Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions packages/clients/src/api/document_db/v1beta1/index.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -114,11 +114,14 @@ export type {
SetPrivilegeRequest,
Snapshot,
SnapshotStatus,
SnapshotVolumeType,
StorageClass,
UpdateInstanceRequest,
UpdateSnapshotRequest,
UpdateUserRequest,
UpgradableVersion,
UpgradeInstanceRequest,
UpgradeInstanceRequestMajorUpgradeWorkflow,
User,
Volume,
VolumeType,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,11 +76,13 @@ import type {
SetInstanceSettingsResponse,
SetPrivilegeRequest,
Snapshot,
SnapshotVolumeType,
UpdateInstanceRequest,
UpdateSnapshotRequest,
UpdateUserRequest,
UpgradableVersion,
UpgradeInstanceRequest,
UpgradeInstanceRequestMajorUpgradeWorkflow,
User,
Volume,
} from './types.gen'
Expand Down Expand Up @@ -279,6 +281,7 @@ const unmarshalVolume = (data: unknown): Volume => {
}

return {
class: data.class,
size: data.size,
type: data.type,
} as Volume
Expand Down Expand Up @@ -347,6 +350,19 @@ export const unmarshalPrivilege = (data: unknown): Privilege => {
} as Privilege
}

const unmarshalSnapshotVolumeType = (data: unknown): SnapshotVolumeType => {
if (!isJSONObject(data)) {
throw new TypeError(
`Unmarshalling the type 'SnapshotVolumeType' failed as data isn't a dictionary.`,
)
}

return {
class: data.class,
type: data.type,
} as SnapshotVolumeType
}

export const unmarshalSnapshot = (data: unknown): Snapshot => {
if (!isJSONObject(data)) {
throw new TypeError(
Expand All @@ -366,6 +382,9 @@ export const unmarshalSnapshot = (data: unknown): Snapshot => {
size: data.size,
status: data.status,
updatedAt: unmarshalDate(data.updated_at),
volumeType: data.volume_type
? unmarshalSnapshotVolumeType(data.volume_type)
: undefined,
} as Snapshot
}

Expand Down Expand Up @@ -661,6 +680,7 @@ const unmarshalNodeTypeVolumeType = (data: unknown): NodeTypeVolumeType => {

return {
chunkSize: data.chunk_size,
class: data.class,
description: data.description,
maxSize: data.max_size,
minSize: data.min_size,
Expand Down Expand Up @@ -1129,15 +1149,33 @@ export const marshalUpdateUserRequest = (
password: request.password,
})

const marshalUpgradeInstanceRequestMajorUpgradeWorkflow = (
request: UpgradeInstanceRequestMajorUpgradeWorkflow,
defaults: DefaultValues,
): Record<string, unknown> => ({
upgradable_version_id: request.upgradableVersionId,
with_endpoints: request.withEndpoints,
})

export const marshalUpgradeInstanceRequest = (
request: UpgradeInstanceRequest,
defaults: DefaultValues,
): Record<string, unknown> => ({
...resolveOneOf<string | boolean | number>([
...resolveOneOf<string | boolean | number | Record<string, unknown>>([
{ param: 'node_type', value: request.nodeType },
{ param: 'enable_ha', value: request.enableHa },
{ param: 'volume_size', value: request.volumeSize },
{ param: 'volume_type', value: request.volumeType },
{ param: 'upgradable_version_id', value: request.upgradableVersionId },
{
param: 'major_upgrade_workflow',
value:
request.majorUpgradeWorkflow !== undefined
? marshalUpgradeInstanceRequestMajorUpgradeWorkflow(
request.majorUpgradeWorkflow,
defaults,
)
: undefined,
},
]),
})
51 changes: 45 additions & 6 deletions packages/clients/src/api/document_db/v1beta1/types.gen.ts
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,9 @@ export type SnapshotStatus =
| 'error'
| 'locked'

export type VolumeType = 'lssd' | 'bssd'
export type StorageClass = 'unknown_storage_class' | 'lssd' | 'bssd' | 'sbs'

export type VolumeType = 'lssd' | 'bssd' | 'sbs_5k' | 'sbs_15k'

export interface EndpointDirectAccessDetails {}

Expand Down Expand Up @@ -316,6 +318,7 @@ export interface UpgradableVersion {
export interface Volume {
type: VolumeType
size: number
class: StorageClass
}

export interface NodeTypeVolumeConstraintSizes {
Expand All @@ -336,6 +339,13 @@ export interface NodeTypeVolumeType {
maxSize: number
/** Minimum increment level for a Block Storage volume size. */
chunkSize: number
/** The storage class of the volume. */
class: StorageClass
}

export interface SnapshotVolumeType {
type: VolumeType
class: StorageClass
}

export interface ACLRuleRequest {
Expand Down Expand Up @@ -546,6 +556,8 @@ export interface Snapshot {
instanceName: string
/** Source node type. */
nodeType: string
/** Type of volume where data is stored (lssd, bssd or sbs). */
volumeType?: SnapshotVolumeType
/** Region of this snapshot. */
region: Region
}
Expand All @@ -564,6 +576,19 @@ export interface User {
isAdmin: boolean
}

export interface UpgradeInstanceRequestMajorUpgradeWorkflow {
/**
* This will create a new Database Instance with same specifications as the
* current one and perform a Database Engine upgrade.
*/
upgradableVersionId: string
/**
* At the end of the migration procedure this option let you migrate all your
* database endpoint to the upgraded instance.
*/
withEndpoints: boolean
}

export type AddInstanceACLRulesRequest = {
/**
* Region to target. If none is passed will use default region from the
Expand Down Expand Up @@ -1349,37 +1374,51 @@ export type UpgradeInstanceRequest = {
* Node type of the Database Instance you want to upgrade to.
*
* One-of ('upgradeTarget'): at most one of 'nodeType', 'enableHa',
* 'volumeSize', 'volumeType', 'upgradableVersionId' could be set.
* 'volumeSize', 'volumeType', 'upgradableVersionId', 'majorUpgradeWorkflow'
* could be set.
*/
nodeType?: string
/**
* Defines whether or not High Availability should be enabled on the Database
* Instance.
*
* One-of ('upgradeTarget'): at most one of 'nodeType', 'enableHa',
* 'volumeSize', 'volumeType', 'upgradableVersionId' could be set.
* 'volumeSize', 'volumeType', 'upgradableVersionId', 'majorUpgradeWorkflow'
* could be set.
*/
enableHa?: boolean
/**
* Increase your Block volume size.
*
* One-of ('upgradeTarget'): at most one of 'nodeType', 'enableHa',
* 'volumeSize', 'volumeType', 'upgradableVersionId' could be set.
* 'volumeSize', 'volumeType', 'upgradableVersionId', 'majorUpgradeWorkflow'
* could be set.
*/
volumeSize?: number
/**
* Change your Database Instance storage type.
*
* One-of ('upgradeTarget'): at most one of 'nodeType', 'enableHa',
* 'volumeSize', 'volumeType', 'upgradableVersionId' could be set.
* 'volumeSize', 'volumeType', 'upgradableVersionId', 'majorUpgradeWorkflow'
* could be set.
*/
volumeType?: VolumeType
/**
* This will create a new Database Instance with same specifications as the
* current one and perform a Database Engine upgrade.
*
* One-of ('upgradeTarget'): at most one of 'nodeType', 'enableHa',
* 'volumeSize', 'volumeType', 'upgradableVersionId' could be set.
* 'volumeSize', 'volumeType', 'upgradableVersionId', 'majorUpgradeWorkflow'
* could be set.
*/
upgradableVersionId?: string
/**
* Upgrade your database engine to a new major version including instance
* endpoints.
*
* One-of ('upgradeTarget'): at most one of 'nodeType', 'enableHa',
* 'volumeSize', 'volumeType', 'upgradableVersionId', 'majorUpgradeWorkflow'
* could be set.
*/
majorUpgradeWorkflow?: UpgradeInstanceRequestMajorUpgradeWorkflow
}