@scaleway/sdk 2.66.0 → 2.68.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/dist/api/audit_trail/v1alpha1/api.gen.cjs +5 -1
  2. package/dist/api/audit_trail/v1alpha1/api.gen.js +5 -1
  3. package/dist/api/audit_trail/v1alpha1/marshalling.gen.cjs +1 -0
  4. package/dist/api/audit_trail/v1alpha1/marshalling.gen.js +1 -0
  5. package/dist/api/audit_trail/v1alpha1/types.gen.d.ts +6 -2
  6. package/dist/api/baremetal/v1/api.gen.cjs +13 -0
  7. package/dist/api/baremetal/v1/api.gen.d.ts +8 -1
  8. package/dist/api/baremetal/v1/api.gen.js +13 -0
  9. package/dist/api/baremetal/v1/content.gen.cjs +2 -1
  10. package/dist/api/baremetal/v1/content.gen.js +2 -1
  11. package/dist/api/baremetal/v1/index.gen.d.ts +1 -1
  12. package/dist/api/baremetal/v1/marshalling.gen.cjs +1 -0
  13. package/dist/api/baremetal/v1/marshalling.gen.js +1 -0
  14. package/dist/api/baremetal/v1/types.gen.d.ts +9 -1
  15. package/dist/api/block/index.gen.cjs +4 -2
  16. package/dist/api/block/index.gen.d.ts +1 -0
  17. package/dist/api/block/index.gen.js +4 -2
  18. package/dist/api/block/v1/api.gen.cjs +303 -0
  19. package/dist/api/block/v1/api.gen.d.ts +152 -0
  20. package/dist/api/block/v1/api.gen.js +303 -0
  21. package/dist/api/block/v1/content.gen.cjs +22 -0
  22. package/dist/api/block/v1/content.gen.d.ts +7 -0
  23. package/dist/api/block/v1/content.gen.js +22 -0
  24. package/dist/api/block/v1/index.gen.cjs +10 -0
  25. package/dist/api/block/v1/index.gen.d.ts +4 -0
  26. package/dist/api/block/v1/index.gen.js +10 -0
  27. package/dist/api/block/v1/marshalling.gen.cjs +200 -0
  28. package/dist/api/block/v1/marshalling.gen.d.ts +14 -0
  29. package/dist/api/block/v1/marshalling.gen.js +200 -0
  30. package/dist/api/block/v1/types.gen.d.ts +335 -0
  31. package/dist/api/block/v1/validation-rules.gen.cjs +56 -0
  32. package/dist/api/block/v1/validation-rules.gen.d.ts +47 -0
  33. package/dist/api/block/v1/validation-rules.gen.js +56 -0
  34. package/dist/api/block/v1alpha1/api.gen.cjs +1 -0
  35. package/dist/api/block/v1alpha1/api.gen.js +1 -0
  36. package/dist/api/block/v1alpha1/types.gen.d.ts +5 -0
  37. package/dist/api/cockpit/v1/api.gen.cjs +14 -17
  38. package/dist/api/cockpit/v1/api.gen.d.ts +6 -9
  39. package/dist/api/cockpit/v1/api.gen.js +15 -18
  40. package/dist/api/cockpit/v1/index.gen.d.ts +1 -1
  41. package/dist/api/cockpit/v1/marshalling.gen.cjs +29 -26
  42. package/dist/api/cockpit/v1/marshalling.gen.d.ts +2 -2
  43. package/dist/api/cockpit/v1/marshalling.gen.js +29 -26
  44. package/dist/api/cockpit/v1/types.gen.d.ts +49 -34
  45. package/dist/api/cockpit/v1/validation-rules.gen.cjs +0 -10
  46. package/dist/api/cockpit/v1/validation-rules.gen.d.ts +0 -9
  47. package/dist/api/cockpit/v1/validation-rules.gen.js +0 -10
  48. package/dist/api/edge_services/index.gen.cjs +2 -0
  49. package/dist/api/edge_services/index.gen.d.ts +1 -0
  50. package/dist/api/edge_services/index.gen.js +3 -1
  51. package/dist/api/edge_services/v1beta1/api.gen.cjs +941 -0
  52. package/dist/api/edge_services/v1beta1/api.gen.d.ts +454 -0
  53. package/dist/api/edge_services/v1beta1/api.gen.js +941 -0
  54. package/dist/api/edge_services/v1beta1/content.gen.cjs +8 -0
  55. package/dist/api/edge_services/v1beta1/content.gen.d.ts +5 -0
  56. package/dist/api/edge_services/v1beta1/content.gen.js +8 -0
  57. package/dist/api/{webhosting/v1alpha1 → edge_services/v1beta1}/index.gen.cjs +2 -2
  58. package/dist/api/edge_services/v1beta1/index.gen.d.ts +4 -0
  59. package/dist/api/edge_services/v1beta1/index.gen.js +9 -0
  60. package/dist/api/edge_services/v1beta1/marshalling.gen.cjs +808 -0
  61. package/dist/api/edge_services/v1beta1/marshalling.gen.d.ts +53 -0
  62. package/dist/api/edge_services/v1beta1/marshalling.gen.js +808 -0
  63. package/dist/api/edge_services/v1beta1/types.gen.d.ts +1218 -0
  64. package/dist/api/edge_services/v1beta1/validation-rules.gen.cjs +23 -0
  65. package/dist/api/edge_services/v1beta1/validation-rules.gen.d.ts +18 -0
  66. package/dist/api/edge_services/v1beta1/validation-rules.gen.js +23 -0
  67. package/dist/api/instance/v1/api.gen.cjs +18 -0
  68. package/dist/api/instance/v1/api.gen.d.ts +13 -1
  69. package/dist/api/instance/v1/api.gen.js +19 -1
  70. package/dist/api/instance/v1/index.gen.d.ts +1 -1
  71. package/dist/api/instance/v1/marshalling.gen.cjs +12 -0
  72. package/dist/api/instance/v1/marshalling.gen.d.ts +2 -1
  73. package/dist/api/instance/v1/marshalling.gen.js +12 -0
  74. package/dist/api/instance/v1/types.gen.d.ts +12 -0
  75. package/dist/api/lb/v1/marshalling.gen.cjs +7 -0
  76. package/dist/api/lb/v1/marshalling.gen.js +7 -0
  77. package/dist/api/lb/v1/types.gen.d.ts +27 -0
  78. package/dist/api/mongodb/v1alpha1/api.gen.cjs +11 -0
  79. package/dist/api/mongodb/v1alpha1/api.gen.d.ts +2 -1
  80. package/dist/api/mongodb/v1alpha1/api.gen.js +12 -1
  81. package/dist/api/mongodb/v1alpha1/index.gen.d.ts +1 -1
  82. package/dist/api/mongodb/v1alpha1/marshalling.gen.cjs +26 -1
  83. package/dist/api/mongodb/v1alpha1/marshalling.gen.d.ts +2 -1
  84. package/dist/api/mongodb/v1alpha1/marshalling.gen.js +26 -1
  85. package/dist/api/mongodb/v1alpha1/types.gen.d.ts +29 -0
  86. package/dist/api/mongodb/v1alpha1/validation-rules.gen.cjs +8 -0
  87. package/dist/api/mongodb/v1alpha1/validation-rules.gen.d.ts +7 -0
  88. package/dist/api/mongodb/v1alpha1/validation-rules.gen.js +8 -0
  89. package/dist/api/secret/v1beta1/api.gen.cjs +33 -0
  90. package/dist/api/secret/v1beta1/api.gen.d.ts +17 -1
  91. package/dist/api/secret/v1beta1/api.gen.js +33 -0
  92. package/dist/api/secret/v1beta1/index.gen.d.ts +1 -1
  93. package/dist/api/secret/v1beta1/marshalling.gen.cjs +2 -0
  94. package/dist/api/secret/v1beta1/marshalling.gen.js +2 -0
  95. package/dist/api/secret/v1beta1/types.gen.d.ts +30 -3
  96. package/dist/api/vpcgw/v1/api.gen.cjs +6 -0
  97. package/dist/api/vpcgw/v1/api.gen.d.ts +2 -1
  98. package/dist/api/vpcgw/v1/api.gen.js +6 -0
  99. package/dist/api/vpcgw/v1/index.gen.d.ts +1 -1
  100. package/dist/api/vpcgw/v1/types.gen.d.ts +5 -0
  101. package/dist/api/webhosting/index.gen.cjs +0 -2
  102. package/dist/api/webhosting/index.gen.d.ts +0 -1
  103. package/dist/api/webhosting/index.gen.js +1 -3
  104. package/dist/api/webhosting/v1/content.gen.cjs +0 -6
  105. package/dist/api/webhosting/v1/content.gen.d.ts +1 -3
  106. package/dist/api/webhosting/v1/content.gen.js +0 -6
  107. package/dist/api/webhosting/v1/index.gen.cjs +0 -1
  108. package/dist/api/webhosting/v1/index.gen.d.ts +1 -1
  109. package/dist/api/webhosting/v1/index.gen.js +1 -2
  110. package/dist/api/webhosting/v1/marshalling.gen.cjs +5 -2
  111. package/dist/api/webhosting/v1/marshalling.gen.js +5 -2
  112. package/dist/api/webhosting/v1/types.gen.d.ts +12 -7
  113. package/dist/scw/constants.cjs +1 -1
  114. package/dist/scw/constants.d.ts +2 -2
  115. package/dist/scw/constants.js +1 -1
  116. package/package.json +2 -2
  117. package/dist/api/webhosting/v1alpha1/api.gen.cjs +0 -339
  118. package/dist/api/webhosting/v1alpha1/api.gen.d.ts +0 -168
  119. package/dist/api/webhosting/v1alpha1/api.gen.js +0 -339
  120. package/dist/api/webhosting/v1alpha1/content.gen.cjs +0 -8
  121. package/dist/api/webhosting/v1alpha1/content.gen.d.ts +0 -3
  122. package/dist/api/webhosting/v1alpha1/content.gen.js +0 -8
  123. package/dist/api/webhosting/v1alpha1/index.gen.d.ts +0 -4
  124. package/dist/api/webhosting/v1alpha1/index.gen.js +0 -9
  125. package/dist/api/webhosting/v1alpha1/marshalling.gen.cjs +0 -300
  126. package/dist/api/webhosting/v1alpha1/marshalling.gen.d.ts +0 -17
  127. package/dist/api/webhosting/v1alpha1/marshalling.gen.js +0 -300
  128. package/dist/api/webhosting/v1alpha1/types.gen.d.ts +0 -480
  129. package/dist/api/webhosting/v1alpha1/validation-rules.gen.cjs +0 -32
  130. package/dist/api/webhosting/v1alpha1/validation-rules.gen.d.ts +0 -27
  131. package/dist/api/webhosting/v1alpha1/validation-rules.gen.js +0 -32
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const CreateWafStageRequest = {
4
+ paranoiaLevel: {
5
+ greaterThanOrEqual: 1,
6
+ lessThanOrEqual: 4
7
+ }
8
+ };
9
+ const UpdateWafStageRequest = {
10
+ paranoiaLevel: {
11
+ greaterThanOrEqual: 1,
12
+ lessThanOrEqual: 4
13
+ }
14
+ };
15
+ const WafStage = {
16
+ paranoiaLevel: {
17
+ greaterThanOrEqual: 1,
18
+ lessThanOrEqual: 4
19
+ }
20
+ };
21
+ exports.CreateWafStageRequest = CreateWafStageRequest;
22
+ exports.UpdateWafStageRequest = UpdateWafStageRequest;
23
+ exports.WafStage = WafStage;
@@ -0,0 +1,18 @@
1
+ export declare const CreateWafStageRequest: {
2
+ paranoiaLevel: {
3
+ greaterThanOrEqual: number;
4
+ lessThanOrEqual: number;
5
+ };
6
+ };
7
+ export declare const UpdateWafStageRequest: {
8
+ paranoiaLevel: {
9
+ greaterThanOrEqual: number;
10
+ lessThanOrEqual: number;
11
+ };
12
+ };
13
+ export declare const WafStage: {
14
+ paranoiaLevel: {
15
+ greaterThanOrEqual: number;
16
+ lessThanOrEqual: number;
17
+ };
18
+ };
@@ -0,0 +1,23 @@
1
+ const CreateWafStageRequest = {
2
+ paranoiaLevel: {
3
+ greaterThanOrEqual: 1,
4
+ lessThanOrEqual: 4
5
+ }
6
+ };
7
+ const UpdateWafStageRequest = {
8
+ paranoiaLevel: {
9
+ greaterThanOrEqual: 1,
10
+ lessThanOrEqual: 4
11
+ }
12
+ };
13
+ const WafStage = {
14
+ paranoiaLevel: {
15
+ greaterThanOrEqual: 1,
16
+ lessThanOrEqual: 4
17
+ }
18
+ };
19
+ export {
20
+ CreateWafStageRequest,
21
+ UpdateWafStageRequest,
22
+ WafStage
23
+ };
@@ -242,6 +242,24 @@ class API extends api.API {
242
242
  method: "DELETE",
243
243
  path: `/instance/v1/zones/${marshalling.validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/servers/${marshalling.validatePathParam("serverId", request.serverId)}/user_data/${marshalling.validatePathParam("key", request.key)}`
244
244
  });
245
+ /**
246
+ * Get Instance compatible types. Get compatible commercial types that can be
247
+ * used to update the Instance. The compatibility of an Instance offer is
248
+ * based on: the CPU architecture the OS type the required l_ssd storage size
249
+ * the required scratch storage size If the specified Instance offer is
250
+ * flagged as end of service, the best compatible offer is the first
251
+ * returned.
252
+ *
253
+ * @param request - The request {@link GetServerCompatibleTypesRequest}
254
+ * @returns A Promise of ServerCompatibleTypes
255
+ */
256
+ getServerCompatibleTypes = (request) => this.client.fetch(
257
+ {
258
+ method: "GET",
259
+ path: `/instance/v1/zones/${marshalling.validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/servers/${marshalling.validatePathParam("serverId", request.serverId)}/compatible-types`
260
+ },
261
+ marshalling_gen.unmarshalServerCompatibleTypes
262
+ );
245
263
  attachServerVolume = (request) => this.client.fetch(
246
264
  {
247
265
  body: JSON.stringify(
@@ -1,6 +1,6 @@
1
1
  import { API as ParentAPI } from '../../../bridge';
2
2
  import type { Zone as ScwZone } from '../../../bridge';
3
- import type { ApplyBlockMigrationRequest, AttachServerVolumeRequest, AttachServerVolumeResponse, CheckBlockMigrationOrganizationQuotasRequest, CreateImageRequest, CreateImageResponse, CreateIpRequest, CreateIpResponse, CreatePlacementGroupRequest, CreatePlacementGroupResponse, CreatePrivateNICRequest, CreatePrivateNICResponse, CreateSecurityGroupRequest, CreateSecurityGroupResponse, CreateSecurityGroupRuleRequest, CreateSecurityGroupRuleResponse, CreateServerRequest, CreateServerResponse, CreateSnapshotRequest, CreateSnapshotResponse, CreateVolumeRequest, CreateVolumeResponse, DeleteImageRequest, DeleteIpRequest, DeletePlacementGroupRequest, DeletePrivateNICRequest, DeleteSecurityGroupRequest, DeleteSecurityGroupRuleRequest, DeleteServerRequest, DeleteServerUserDataRequest, DeleteSnapshotRequest, DeleteVolumeRequest, DetachServerVolumeRequest, DetachServerVolumeResponse, ExportSnapshotRequest, ExportSnapshotResponse, GetDashboardRequest, GetDashboardResponse, GetImageRequest, GetImageResponse, GetIpRequest, GetIpResponse, GetPlacementGroupRequest, GetPlacementGroupResponse, GetPlacementGroupServersRequest, GetPlacementGroupServersResponse, GetPrivateNICRequest, GetPrivateNICResponse, GetSecurityGroupRequest, GetSecurityGroupResponse, GetSecurityGroupRuleRequest, GetSecurityGroupRuleResponse, GetServerRequest, GetServerResponse, GetServerTypesAvailabilityRequest, GetServerTypesAvailabilityResponse, GetSnapshotRequest, GetSnapshotResponse, GetVolumeRequest, GetVolumeResponse, ListDefaultSecurityGroupRulesRequest, ListImagesRequest, ListImagesResponse, ListIpsRequest, ListIpsResponse, ListPlacementGroupsRequest, ListPlacementGroupsResponse, ListPrivateNICsRequest, ListPrivateNICsResponse, ListSecurityGroupRulesRequest, ListSecurityGroupRulesResponse, ListSecurityGroupsRequest, ListSecurityGroupsResponse, ListServerActionsRequest, ListServerActionsResponse, ListServerUserDataRequest, ListServerUserDataResponse, ListServersRequest, ListServersResponse, ListServersTypesRequest, ListServersTypesResponse, ListSnapshotsRequest, ListSnapshotsResponse, ListVolumesRequest, ListVolumesResponse, ListVolumesTypesRequest, ListVolumesTypesResponse, MigrationPlan, PlanBlockMigrationRequest, PrivateNIC, ServerActionRequest, ServerActionResponse, SetImageRequest, SetPlacementGroupRequest, SetPlacementGroupResponse, SetPlacementGroupServersRequest, SetPlacementGroupServersResponse, SetSecurityGroupRulesRequest, SetSecurityGroupRulesResponse, UpdateImageRequest, UpdateImageResponse, UpdateIpRequest, UpdateIpResponse, UpdatePlacementGroupRequest, UpdatePlacementGroupResponse, UpdatePlacementGroupServersRequest, UpdatePlacementGroupServersResponse, UpdatePrivateNICRequest, UpdateSecurityGroupRequest, UpdateSecurityGroupResponse, UpdateSecurityGroupRuleRequest, UpdateSecurityGroupRuleResponse, UpdateServerRequest, UpdateServerResponse, UpdateSnapshotRequest, UpdateSnapshotResponse, UpdateVolumeRequest, UpdateVolumeResponse } from './types.gen';
3
+ import type { ApplyBlockMigrationRequest, AttachServerVolumeRequest, AttachServerVolumeResponse, CheckBlockMigrationOrganizationQuotasRequest, CreateImageRequest, CreateImageResponse, CreateIpRequest, CreateIpResponse, CreatePlacementGroupRequest, CreatePlacementGroupResponse, CreatePrivateNICRequest, CreatePrivateNICResponse, CreateSecurityGroupRequest, CreateSecurityGroupResponse, CreateSecurityGroupRuleRequest, CreateSecurityGroupRuleResponse, CreateServerRequest, CreateServerResponse, CreateSnapshotRequest, CreateSnapshotResponse, CreateVolumeRequest, CreateVolumeResponse, DeleteImageRequest, DeleteIpRequest, DeletePlacementGroupRequest, DeletePrivateNICRequest, DeleteSecurityGroupRequest, DeleteSecurityGroupRuleRequest, DeleteServerRequest, DeleteServerUserDataRequest, DeleteSnapshotRequest, DeleteVolumeRequest, DetachServerVolumeRequest, DetachServerVolumeResponse, ExportSnapshotRequest, ExportSnapshotResponse, GetDashboardRequest, GetDashboardResponse, GetImageRequest, GetImageResponse, GetIpRequest, GetIpResponse, GetPlacementGroupRequest, GetPlacementGroupResponse, GetPlacementGroupServersRequest, GetPlacementGroupServersResponse, GetPrivateNICRequest, GetPrivateNICResponse, GetSecurityGroupRequest, GetSecurityGroupResponse, GetSecurityGroupRuleRequest, GetSecurityGroupRuleResponse, GetServerCompatibleTypesRequest, GetServerRequest, GetServerResponse, GetServerTypesAvailabilityRequest, GetServerTypesAvailabilityResponse, GetSnapshotRequest, GetSnapshotResponse, GetVolumeRequest, GetVolumeResponse, ListDefaultSecurityGroupRulesRequest, ListImagesRequest, ListImagesResponse, ListIpsRequest, ListIpsResponse, ListPlacementGroupsRequest, ListPlacementGroupsResponse, ListPrivateNICsRequest, ListPrivateNICsResponse, ListSecurityGroupRulesRequest, ListSecurityGroupRulesResponse, ListSecurityGroupsRequest, ListSecurityGroupsResponse, ListServerActionsRequest, ListServerActionsResponse, ListServerUserDataRequest, ListServerUserDataResponse, ListServersRequest, ListServersResponse, ListServersTypesRequest, ListServersTypesResponse, ListSnapshotsRequest, ListSnapshotsResponse, ListVolumesRequest, ListVolumesResponse, ListVolumesTypesRequest, ListVolumesTypesResponse, MigrationPlan, PlanBlockMigrationRequest, PrivateNIC, ServerActionRequest, ServerActionResponse, ServerCompatibleTypes, SetImageRequest, SetPlacementGroupRequest, SetPlacementGroupResponse, SetPlacementGroupServersRequest, SetPlacementGroupServersResponse, SetSecurityGroupRulesRequest, SetSecurityGroupRulesResponse, UpdateImageRequest, UpdateImageResponse, UpdateIpRequest, UpdateIpResponse, UpdatePlacementGroupRequest, UpdatePlacementGroupResponse, UpdatePlacementGroupServersRequest, UpdatePlacementGroupServersResponse, UpdatePrivateNICRequest, UpdateSecurityGroupRequest, UpdateSecurityGroupResponse, UpdateSecurityGroupRuleRequest, UpdateSecurityGroupRuleResponse, UpdateServerRequest, UpdateServerResponse, UpdateSnapshotRequest, UpdateSnapshotResponse, UpdateVolumeRequest, UpdateVolumeResponse } from './types.gen';
4
4
  import type { SetImageResponse, SetSecurityGroupRequest, SetSecurityGroupResponse, SetSecurityGroupRuleRequest, SetSecurityGroupRuleResponse, SetServerRequest, SetServerResponse, SetSnapshotRequest, SetSnapshotResponse } from './types.private.gen';
5
5
  /**
6
6
  * Instance API.
@@ -107,6 +107,18 @@ export declare class API extends ParentAPI {
107
107
  * @param request - The request {@link DeleteServerUserDataRequest}
108
108
  */
109
109
  deleteServerUserData: (request: Readonly<DeleteServerUserDataRequest>) => Promise<void>;
110
+ /**
111
+ * Get Instance compatible types. Get compatible commercial types that can be
112
+ * used to update the Instance. The compatibility of an Instance offer is
113
+ * based on: the CPU architecture the OS type the required l_ssd storage size
114
+ * the required scratch storage size If the specified Instance offer is
115
+ * flagged as end of service, the best compatible offer is the first
116
+ * returned.
117
+ *
118
+ * @param request - The request {@link GetServerCompatibleTypesRequest}
119
+ * @returns A Promise of ServerCompatibleTypes
120
+ */
121
+ getServerCompatibleTypes: (request: Readonly<GetServerCompatibleTypesRequest>) => Promise<ServerCompatibleTypes>;
110
122
  attachServerVolume: (request: Readonly<AttachServerVolumeRequest>) => Promise<AttachServerVolumeResponse>;
111
123
  detachServerVolume: (request: Readonly<DetachServerVolumeRequest>) => Promise<DetachServerVolumeResponse>;
112
124
  protected pageOfListImages: (request?: Readonly<ListImagesRequest>) => Promise<ListImagesResponse>;
@@ -2,7 +2,7 @@ import { API as API$1 } from "../../../scw/api.js";
2
2
  import { validatePathParam, urlParams } from "../../../helpers/marshalling.js";
3
3
  import "../../../vendor/base64/index.js";
4
4
  import { enrichForPagination } from "../../../scw/fetch/resource-paginator.js";
5
- import { unmarshalGetServerTypesAvailabilityResponse, unmarshalListServersTypesResponse, unmarshalListVolumesTypesResponse, unmarshalListServersResponse, marshalCreateServerRequest, unmarshalCreateServerResponse, unmarshalGetServerResponse, marshalSetServerRequest, unmarshalSetServerResponse, marshalUpdateServerRequest, unmarshalUpdateServerResponse, unmarshalListServerActionsResponse, marshalServerActionRequest, unmarshalServerActionResponse, unmarshalListServerUserDataResponse, marshalAttachServerVolumeRequest, unmarshalAttachServerVolumeResponse, marshalDetachServerVolumeRequest, unmarshalDetachServerVolumeResponse, unmarshalListImagesResponse, unmarshalGetImageResponse, marshalCreateImageRequest, unmarshalCreateImageResponse, marshalSetImageRequest, unmarshalSetImageResponse, marshalUpdateImageRequest, unmarshalUpdateImageResponse, unmarshalListSnapshotsResponse, marshalCreateSnapshotRequest, unmarshalCreateSnapshotResponse, unmarshalGetSnapshotResponse, marshalSetSnapshotRequest, unmarshalSetSnapshotResponse, marshalUpdateSnapshotRequest, unmarshalUpdateSnapshotResponse, marshalExportSnapshotRequest, unmarshalExportSnapshotResponse, unmarshalListVolumesResponse, marshalCreateVolumeRequest, unmarshalCreateVolumeResponse, unmarshalGetVolumeResponse, marshalUpdateVolumeRequest, unmarshalUpdateVolumeResponse, unmarshalListSecurityGroupsResponse, marshalCreateSecurityGroupRequest, unmarshalCreateSecurityGroupResponse, unmarshalGetSecurityGroupResponse, marshalSetSecurityGroupRequest, unmarshalSetSecurityGroupResponse, marshalUpdateSecurityGroupRequest, unmarshalUpdateSecurityGroupResponse, unmarshalListSecurityGroupRulesResponse, marshalCreateSecurityGroupRuleRequest, unmarshalCreateSecurityGroupRuleResponse, marshalSetSecurityGroupRulesRequest, unmarshalSetSecurityGroupRulesResponse, unmarshalGetSecurityGroupRuleResponse, marshalSetSecurityGroupRuleRequest, unmarshalSetSecurityGroupRuleResponse, marshalUpdateSecurityGroupRuleRequest, unmarshalUpdateSecurityGroupRuleResponse, unmarshalListPlacementGroupsResponse, marshalCreatePlacementGroupRequest, unmarshalCreatePlacementGroupResponse, unmarshalGetPlacementGroupResponse, marshalSetPlacementGroupRequest, unmarshalSetPlacementGroupResponse, marshalUpdatePlacementGroupRequest, unmarshalUpdatePlacementGroupResponse, unmarshalGetPlacementGroupServersResponse, marshalSetPlacementGroupServersRequest, unmarshalSetPlacementGroupServersResponse, marshalUpdatePlacementGroupServersRequest, unmarshalUpdatePlacementGroupServersResponse, unmarshalListIpsResponse, marshalCreateIpRequest, unmarshalCreateIpResponse, unmarshalGetIpResponse, marshalUpdateIpRequest, unmarshalUpdateIpResponse, unmarshalListPrivateNICsResponse, marshalCreatePrivateNICRequest, unmarshalCreatePrivateNICResponse, unmarshalGetPrivateNICResponse, marshalUpdatePrivateNICRequest, unmarshalPrivateNIC, unmarshalGetDashboardResponse, marshalPlanBlockMigrationRequest, unmarshalMigrationPlan, marshalApplyBlockMigrationRequest, marshalCheckBlockMigrationOrganizationQuotasRequest } from "./marshalling.gen.js";
5
+ import { unmarshalGetServerTypesAvailabilityResponse, unmarshalListServersTypesResponse, unmarshalListVolumesTypesResponse, unmarshalListServersResponse, marshalCreateServerRequest, unmarshalCreateServerResponse, unmarshalGetServerResponse, marshalSetServerRequest, unmarshalSetServerResponse, marshalUpdateServerRequest, unmarshalUpdateServerResponse, unmarshalListServerActionsResponse, marshalServerActionRequest, unmarshalServerActionResponse, unmarshalListServerUserDataResponse, unmarshalServerCompatibleTypes, marshalAttachServerVolumeRequest, unmarshalAttachServerVolumeResponse, marshalDetachServerVolumeRequest, unmarshalDetachServerVolumeResponse, unmarshalListImagesResponse, unmarshalGetImageResponse, marshalCreateImageRequest, unmarshalCreateImageResponse, marshalSetImageRequest, unmarshalSetImageResponse, marshalUpdateImageRequest, unmarshalUpdateImageResponse, unmarshalListSnapshotsResponse, marshalCreateSnapshotRequest, unmarshalCreateSnapshotResponse, unmarshalGetSnapshotResponse, marshalSetSnapshotRequest, unmarshalSetSnapshotResponse, marshalUpdateSnapshotRequest, unmarshalUpdateSnapshotResponse, marshalExportSnapshotRequest, unmarshalExportSnapshotResponse, unmarshalListVolumesResponse, marshalCreateVolumeRequest, unmarshalCreateVolumeResponse, unmarshalGetVolumeResponse, marshalUpdateVolumeRequest, unmarshalUpdateVolumeResponse, unmarshalListSecurityGroupsResponse, marshalCreateSecurityGroupRequest, unmarshalCreateSecurityGroupResponse, unmarshalGetSecurityGroupResponse, marshalSetSecurityGroupRequest, unmarshalSetSecurityGroupResponse, marshalUpdateSecurityGroupRequest, unmarshalUpdateSecurityGroupResponse, unmarshalListSecurityGroupRulesResponse, marshalCreateSecurityGroupRuleRequest, unmarshalCreateSecurityGroupRuleResponse, marshalSetSecurityGroupRulesRequest, unmarshalSetSecurityGroupRulesResponse, unmarshalGetSecurityGroupRuleResponse, marshalSetSecurityGroupRuleRequest, unmarshalSetSecurityGroupRuleResponse, marshalUpdateSecurityGroupRuleRequest, unmarshalUpdateSecurityGroupRuleResponse, unmarshalListPlacementGroupsResponse, marshalCreatePlacementGroupRequest, unmarshalCreatePlacementGroupResponse, unmarshalGetPlacementGroupResponse, marshalSetPlacementGroupRequest, unmarshalSetPlacementGroupResponse, marshalUpdatePlacementGroupRequest, unmarshalUpdatePlacementGroupResponse, unmarshalGetPlacementGroupServersResponse, marshalSetPlacementGroupServersRequest, unmarshalSetPlacementGroupServersResponse, marshalUpdatePlacementGroupServersRequest, unmarshalUpdatePlacementGroupServersResponse, unmarshalListIpsResponse, marshalCreateIpRequest, unmarshalCreateIpResponse, unmarshalGetIpResponse, marshalUpdateIpRequest, unmarshalUpdateIpResponse, unmarshalListPrivateNICsResponse, marshalCreatePrivateNICRequest, unmarshalCreatePrivateNICResponse, unmarshalGetPrivateNICResponse, marshalUpdatePrivateNICRequest, unmarshalPrivateNIC, unmarshalGetDashboardResponse, marshalPlanBlockMigrationRequest, unmarshalMigrationPlan, marshalApplyBlockMigrationRequest, marshalCheckBlockMigrationOrganizationQuotasRequest } from "./marshalling.gen.js";
6
6
  const jsonContentHeaders = {
7
7
  "Content-Type": "application/json; charset=utf-8"
8
8
  };
@@ -240,6 +240,24 @@ class API extends API$1 {
240
240
  method: "DELETE",
241
241
  path: `/instance/v1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/servers/${validatePathParam("serverId", request.serverId)}/user_data/${validatePathParam("key", request.key)}`
242
242
  });
243
+ /**
244
+ * Get Instance compatible types. Get compatible commercial types that can be
245
+ * used to update the Instance. The compatibility of an Instance offer is
246
+ * based on: the CPU architecture the OS type the required l_ssd storage size
247
+ * the required scratch storage size If the specified Instance offer is
248
+ * flagged as end of service, the best compatible offer is the first
249
+ * returned.
250
+ *
251
+ * @param request - The request {@link GetServerCompatibleTypesRequest}
252
+ * @returns A Promise of ServerCompatibleTypes
253
+ */
254
+ getServerCompatibleTypes = (request) => this.client.fetch(
255
+ {
256
+ method: "GET",
257
+ path: `/instance/v1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/servers/${validatePathParam("serverId", request.serverId)}/compatible-types`
258
+ },
259
+ unmarshalServerCompatibleTypes
260
+ );
243
261
  attachServerVolume = (request) => this.client.fetch(
244
262
  {
245
263
  body: JSON.stringify(
@@ -1,4 +1,4 @@
1
1
  export { API } from './api.gen.js';
2
2
  export * from './content.gen.js';
3
- export type { ApplyBlockMigrationRequest, Arch, AttachServerVolumeRequest, AttachServerVolumeRequestVolumeType, AttachServerVolumeResponse, BootType, Bootscript, CheckBlockMigrationOrganizationQuotasRequest, CreateImageRequest, CreateImageResponse, CreateIpRequest, CreateIpResponse, CreatePlacementGroupRequest, CreatePlacementGroupResponse, CreatePrivateNICRequest, CreatePrivateNICResponse, CreateSecurityGroupRequest, CreateSecurityGroupResponse, CreateSecurityGroupRuleRequest, CreateSecurityGroupRuleResponse, CreateServerRequest, CreateServerResponse, CreateSnapshotRequest, CreateSnapshotResponse, CreateVolumeRequest, CreateVolumeResponse, Dashboard, DeleteImageRequest, DeleteIpRequest, DeletePlacementGroupRequest, DeletePrivateNICRequest, DeleteSecurityGroupRequest, DeleteSecurityGroupRuleRequest, DeleteServerRequest, DeleteServerUserDataRequest, DeleteSnapshotRequest, DeleteVolumeRequest, DetachServerVolumeRequest, DetachServerVolumeResponse, ExportSnapshotRequest, ExportSnapshotResponse, GetDashboardRequest, GetDashboardResponse, GetImageRequest, GetImageResponse, GetIpRequest, GetIpResponse, GetPlacementGroupRequest, GetPlacementGroupResponse, GetPlacementGroupServersRequest, GetPlacementGroupServersResponse, GetPrivateNICRequest, GetPrivateNICResponse, GetSecurityGroupRequest, GetSecurityGroupResponse, GetSecurityGroupRuleRequest, GetSecurityGroupRuleResponse, GetServerRequest, GetServerResponse, GetServerTypesAvailabilityRequest, GetServerTypesAvailabilityResponse, GetServerTypesAvailabilityResponseAvailability, GetSnapshotRequest, GetSnapshotResponse, GetVolumeRequest, GetVolumeResponse, Image, ImageState, Ip, IpState, IpType, ListDefaultSecurityGroupRulesRequest, ListImagesRequest, ListImagesResponse, ListIpsRequest, ListIpsResponse, ListPlacementGroupsRequest, ListPlacementGroupsResponse, ListPrivateNICsRequest, ListPrivateNICsResponse, ListSecurityGroupRulesRequest, ListSecurityGroupRulesResponse, ListSecurityGroupsRequest, ListSecurityGroupsResponse, ListServerActionsRequest, ListServerActionsResponse, ListServerUserDataRequest, ListServerUserDataResponse, ListServersRequest, ListServersRequestOrder, ListServersResponse, ListServersTypesRequest, ListServersTypesResponse, ListSnapshotsRequest, ListSnapshotsResponse, ListVolumesRequest, ListVolumesResponse, ListVolumesTypesRequest, ListVolumesTypesResponse, MigrationPlan, PlacementGroup, PlacementGroupPolicyMode, PlacementGroupPolicyType, PlacementGroupServer, PlanBlockMigrationRequest, PrivateNIC, PrivateNICState, SecurityGroup, SecurityGroupPolicy, SecurityGroupRule, SecurityGroupRuleAction, SecurityGroupRuleDirection, SecurityGroupRuleProtocol, SecurityGroupState, SecurityGroupSummary, SecurityGroupTemplate, Server, ServerAction, ServerActionRequest, ServerActionRequestVolumeBackupTemplate, ServerActionResponse, ServerIp, ServerIpIpFamily, ServerIpProvisioningMode, ServerIpState, ServerIpv6, ServerLocation, ServerMaintenance, ServerState, ServerSummary, ServerType, ServerTypeCapabilities, ServerTypeNetwork, ServerTypeNetworkInterface, ServerTypeVolumeConstraintSizes, ServerTypeVolumeConstraintsByType, ServerTypesAvailability, SetImageRequest, SetPlacementGroupRequest, SetPlacementGroupResponse, SetPlacementGroupServersRequest, SetPlacementGroupServersResponse, SetSecurityGroupRulesRequest, SetSecurityGroupRulesRequestRule, SetSecurityGroupRulesResponse, Snapshot, SnapshotBaseVolume, SnapshotState, SnapshotVolumeType, Task, TaskStatus, UpdateImageRequest, UpdateImageResponse, UpdateIpRequest, UpdateIpResponse, UpdatePlacementGroupRequest, UpdatePlacementGroupResponse, UpdatePlacementGroupServersRequest, UpdatePlacementGroupServersResponse, UpdatePrivateNICRequest, UpdateSecurityGroupRequest, UpdateSecurityGroupResponse, UpdateSecurityGroupRuleRequest, UpdateSecurityGroupRuleResponse, UpdateServerRequest, UpdateServerResponse, UpdateSnapshotRequest, UpdateSnapshotResponse, UpdateVolumeRequest, UpdateVolumeResponse, Volume, VolumeImageUpdateTemplate, VolumeServer, VolumeServerState, VolumeServerTemplate, VolumeServerVolumeType, VolumeState, VolumeSummary, VolumeTemplate, VolumeType, VolumeTypeCapabilities, VolumeTypeConstraints, VolumeVolumeType, } from './types.gen';
3
+ export type { ApplyBlockMigrationRequest, Arch, AttachServerVolumeRequest, AttachServerVolumeRequestVolumeType, AttachServerVolumeResponse, BootType, Bootscript, CheckBlockMigrationOrganizationQuotasRequest, CreateImageRequest, CreateImageResponse, CreateIpRequest, CreateIpResponse, CreatePlacementGroupRequest, CreatePlacementGroupResponse, CreatePrivateNICRequest, CreatePrivateNICResponse, CreateSecurityGroupRequest, CreateSecurityGroupResponse, CreateSecurityGroupRuleRequest, CreateSecurityGroupRuleResponse, CreateServerRequest, CreateServerResponse, CreateSnapshotRequest, CreateSnapshotResponse, CreateVolumeRequest, CreateVolumeResponse, Dashboard, DeleteImageRequest, DeleteIpRequest, DeletePlacementGroupRequest, DeletePrivateNICRequest, DeleteSecurityGroupRequest, DeleteSecurityGroupRuleRequest, DeleteServerRequest, DeleteServerUserDataRequest, DeleteSnapshotRequest, DeleteVolumeRequest, DetachServerVolumeRequest, DetachServerVolumeResponse, ExportSnapshotRequest, ExportSnapshotResponse, GetDashboardRequest, GetDashboardResponse, GetImageRequest, GetImageResponse, GetIpRequest, GetIpResponse, GetPlacementGroupRequest, GetPlacementGroupResponse, GetPlacementGroupServersRequest, GetPlacementGroupServersResponse, GetPrivateNICRequest, GetPrivateNICResponse, GetSecurityGroupRequest, GetSecurityGroupResponse, GetSecurityGroupRuleRequest, GetSecurityGroupRuleResponse, GetServerCompatibleTypesRequest, GetServerRequest, GetServerResponse, GetServerTypesAvailabilityRequest, GetServerTypesAvailabilityResponse, GetServerTypesAvailabilityResponseAvailability, GetSnapshotRequest, GetSnapshotResponse, GetVolumeRequest, GetVolumeResponse, Image, ImageState, Ip, IpState, IpType, ListDefaultSecurityGroupRulesRequest, ListImagesRequest, ListImagesResponse, ListIpsRequest, ListIpsResponse, ListPlacementGroupsRequest, ListPlacementGroupsResponse, ListPrivateNICsRequest, ListPrivateNICsResponse, ListSecurityGroupRulesRequest, ListSecurityGroupRulesResponse, ListSecurityGroupsRequest, ListSecurityGroupsResponse, ListServerActionsRequest, ListServerActionsResponse, ListServerUserDataRequest, ListServerUserDataResponse, ListServersRequest, ListServersRequestOrder, ListServersResponse, ListServersTypesRequest, ListServersTypesResponse, ListSnapshotsRequest, ListSnapshotsResponse, ListVolumesRequest, ListVolumesResponse, ListVolumesTypesRequest, ListVolumesTypesResponse, MigrationPlan, PlacementGroup, PlacementGroupPolicyMode, PlacementGroupPolicyType, PlacementGroupServer, PlanBlockMigrationRequest, PrivateNIC, PrivateNICState, SecurityGroup, SecurityGroupPolicy, SecurityGroupRule, SecurityGroupRuleAction, SecurityGroupRuleDirection, SecurityGroupRuleProtocol, SecurityGroupState, SecurityGroupSummary, SecurityGroupTemplate, Server, ServerAction, ServerActionRequest, ServerActionRequestVolumeBackupTemplate, ServerActionResponse, ServerCompatibleTypes, ServerIp, ServerIpIpFamily, ServerIpProvisioningMode, ServerIpState, ServerIpv6, ServerLocation, ServerMaintenance, ServerState, ServerSummary, ServerType, ServerTypeCapabilities, ServerTypeNetwork, ServerTypeNetworkInterface, ServerTypeVolumeConstraintSizes, ServerTypeVolumeConstraintsByType, ServerTypesAvailability, SetImageRequest, SetPlacementGroupRequest, SetPlacementGroupResponse, SetPlacementGroupServersRequest, SetPlacementGroupServersResponse, SetSecurityGroupRulesRequest, SetSecurityGroupRulesRequestRule, SetSecurityGroupRulesResponse, Snapshot, SnapshotBaseVolume, SnapshotState, SnapshotVolumeType, Task, TaskStatus, UpdateImageRequest, UpdateImageResponse, UpdateIpRequest, UpdateIpResponse, UpdatePlacementGroupRequest, UpdatePlacementGroupResponse, UpdatePlacementGroupServersRequest, UpdatePlacementGroupServersResponse, UpdatePrivateNICRequest, UpdateSecurityGroupRequest, UpdateSecurityGroupResponse, UpdateSecurityGroupRuleRequest, UpdateSecurityGroupRuleResponse, UpdateServerRequest, UpdateServerResponse, UpdateSnapshotRequest, UpdateSnapshotResponse, UpdateVolumeRequest, UpdateVolumeResponse, Volume, VolumeImageUpdateTemplate, VolumeServer, VolumeServerState, VolumeServerTemplate, VolumeServerVolumeType, VolumeState, VolumeSummary, VolumeTemplate, VolumeType, VolumeTypeCapabilities, VolumeTypeConstraints, VolumeVolumeType, } from './types.gen';
4
4
  export * as ValidationRules from './validation-rules.gen';
@@ -847,6 +847,7 @@ const unmarshalServerType = (data) => {
847
847
  baremetal: data.baremetal,
848
848
  blockBandwidth: data.block_bandwidth,
849
849
  capabilities: data.capabilities ? unmarshalServerTypeCapabilities(data.capabilities) : void 0,
850
+ endOfService: data.end_of_service,
850
851
  gpu: data.gpu,
851
852
  hourlyPrice: data.hourly_price,
852
853
  monthlyPrice: data.monthly_price,
@@ -957,6 +958,16 @@ const unmarshalServerActionResponse = (data) => {
957
958
  task: data.task ? unmarshalTask(data.task) : void 0
958
959
  };
959
960
  };
961
+ const unmarshalServerCompatibleTypes = (data) => {
962
+ if (!json.isJSONObject(data)) {
963
+ throw new TypeError(
964
+ `Unmarshalling the type 'ServerCompatibleTypes' failed as data isn't a dictionary.`
965
+ );
966
+ }
967
+ return {
968
+ compatibleTypes: data.compatible_types
969
+ };
970
+ };
960
971
  const unmarshalSetImageResponse = (data) => {
961
972
  if (!json.isJSONObject(data)) {
962
973
  throw new TypeError(
@@ -1779,6 +1790,7 @@ exports.unmarshalListVolumesTypesResponse = unmarshalListVolumesTypesResponse;
1779
1790
  exports.unmarshalMigrationPlan = unmarshalMigrationPlan;
1780
1791
  exports.unmarshalPrivateNIC = unmarshalPrivateNIC;
1781
1792
  exports.unmarshalServerActionResponse = unmarshalServerActionResponse;
1793
+ exports.unmarshalServerCompatibleTypes = unmarshalServerCompatibleTypes;
1782
1794
  exports.unmarshalSetImageResponse = unmarshalSetImageResponse;
1783
1795
  exports.unmarshalSetPlacementGroupResponse = unmarshalSetPlacementGroupResponse;
1784
1796
  exports.unmarshalSetPlacementGroupServersResponse = unmarshalSetPlacementGroupServersResponse;
@@ -1,5 +1,5 @@
1
1
  import type { DefaultValues } from '../../../bridge';
2
- import type { ApplyBlockMigrationRequest, AttachServerVolumeRequest, AttachServerVolumeResponse, CheckBlockMigrationOrganizationQuotasRequest, CreateImageRequest, CreateImageResponse, CreateIpRequest, CreateIpResponse, CreatePlacementGroupRequest, CreatePlacementGroupResponse, CreatePrivateNICRequest, CreatePrivateNICResponse, CreateSecurityGroupRequest, CreateSecurityGroupResponse, CreateSecurityGroupRuleRequest, CreateSecurityGroupRuleResponse, CreateServerRequest, CreateServerResponse, CreateSnapshotRequest, CreateSnapshotResponse, CreateVolumeRequest, CreateVolumeResponse, DetachServerVolumeRequest, DetachServerVolumeResponse, ExportSnapshotRequest, ExportSnapshotResponse, GetDashboardResponse, GetImageResponse, GetIpResponse, GetPlacementGroupResponse, GetPlacementGroupServersResponse, GetPrivateNICResponse, GetSecurityGroupResponse, GetSecurityGroupRuleResponse, GetServerResponse, GetServerTypesAvailabilityResponse, GetSnapshotResponse, GetVolumeResponse, ListImagesResponse, ListIpsResponse, ListPlacementGroupsResponse, ListPrivateNICsResponse, ListSecurityGroupRulesResponse, ListSecurityGroupsResponse, ListServerActionsResponse, ListServerUserDataResponse, ListServersResponse, ListServersTypesResponse, ListSnapshotsResponse, ListVolumesResponse, ListVolumesTypesResponse, MigrationPlan, PlanBlockMigrationRequest, PrivateNIC, ServerActionRequest, ServerActionResponse, SetImageRequest, SetPlacementGroupRequest, SetPlacementGroupResponse, SetPlacementGroupServersRequest, SetPlacementGroupServersResponse, SetSecurityGroupRulesRequest, SetSecurityGroupRulesResponse, UpdateImageRequest, UpdateImageResponse, UpdateIpRequest, UpdateIpResponse, UpdatePlacementGroupRequest, UpdatePlacementGroupResponse, UpdatePlacementGroupServersRequest, UpdatePlacementGroupServersResponse, UpdatePrivateNICRequest, UpdateSecurityGroupRequest, UpdateSecurityGroupResponse, UpdateSecurityGroupRuleRequest, UpdateSecurityGroupRuleResponse, UpdateServerRequest, UpdateServerResponse, UpdateSnapshotRequest, UpdateSnapshotResponse, UpdateVolumeRequest, UpdateVolumeResponse } from './types.gen';
2
+ import type { ApplyBlockMigrationRequest, AttachServerVolumeRequest, AttachServerVolumeResponse, CheckBlockMigrationOrganizationQuotasRequest, CreateImageRequest, CreateImageResponse, CreateIpRequest, CreateIpResponse, CreatePlacementGroupRequest, CreatePlacementGroupResponse, CreatePrivateNICRequest, CreatePrivateNICResponse, CreateSecurityGroupRequest, CreateSecurityGroupResponse, CreateSecurityGroupRuleRequest, CreateSecurityGroupRuleResponse, CreateServerRequest, CreateServerResponse, CreateSnapshotRequest, CreateSnapshotResponse, CreateVolumeRequest, CreateVolumeResponse, DetachServerVolumeRequest, DetachServerVolumeResponse, ExportSnapshotRequest, ExportSnapshotResponse, GetDashboardResponse, GetImageResponse, GetIpResponse, GetPlacementGroupResponse, GetPlacementGroupServersResponse, GetPrivateNICResponse, GetSecurityGroupResponse, GetSecurityGroupRuleResponse, GetServerResponse, GetServerTypesAvailabilityResponse, GetSnapshotResponse, GetVolumeResponse, ListImagesResponse, ListIpsResponse, ListPlacementGroupsResponse, ListPrivateNICsResponse, ListSecurityGroupRulesResponse, ListSecurityGroupsResponse, ListServerActionsResponse, ListServerUserDataResponse, ListServersResponse, ListServersTypesResponse, ListSnapshotsResponse, ListVolumesResponse, ListVolumesTypesResponse, MigrationPlan, PlanBlockMigrationRequest, PrivateNIC, ServerActionRequest, ServerActionResponse, ServerCompatibleTypes, SetImageRequest, SetPlacementGroupRequest, SetPlacementGroupResponse, SetPlacementGroupServersRequest, SetPlacementGroupServersResponse, SetSecurityGroupRulesRequest, SetSecurityGroupRulesResponse, UpdateImageRequest, UpdateImageResponse, UpdateIpRequest, UpdateIpResponse, UpdatePlacementGroupRequest, UpdatePlacementGroupResponse, UpdatePlacementGroupServersRequest, UpdatePlacementGroupServersResponse, UpdatePrivateNICRequest, UpdateSecurityGroupRequest, UpdateSecurityGroupResponse, UpdateSecurityGroupRuleRequest, UpdateSecurityGroupRuleResponse, UpdateServerRequest, UpdateServerResponse, UpdateSnapshotRequest, UpdateSnapshotResponse, UpdateVolumeRequest, UpdateVolumeResponse } from './types.gen';
3
3
  import type { SetImageResponse, SetSecurityGroupRequest, SetSecurityGroupResponse, SetSecurityGroupRuleRequest, SetSecurityGroupRuleResponse, SetServerRequest, SetServerResponse, SetSnapshotRequest, SetSnapshotResponse } from './types.private.gen';
4
4
  export declare const unmarshalPrivateNIC: (data: unknown) => PrivateNIC;
5
5
  export declare const unmarshalAttachServerVolumeResponse: (data: unknown) => AttachServerVolumeResponse;
@@ -41,6 +41,7 @@ export declare const unmarshalListVolumesResponse: (data: unknown) => ListVolume
41
41
  export declare const unmarshalListVolumesTypesResponse: (data: unknown) => ListVolumesTypesResponse;
42
42
  export declare const unmarshalMigrationPlan: (data: unknown) => MigrationPlan;
43
43
  export declare const unmarshalServerActionResponse: (data: unknown) => ServerActionResponse;
44
+ export declare const unmarshalServerCompatibleTypes: (data: unknown) => ServerCompatibleTypes;
44
45
  export declare const unmarshalSetImageResponse: (data: unknown) => SetImageResponse;
45
46
  export declare const unmarshalSetPlacementGroupResponse: (data: unknown) => SetPlacementGroupResponse;
46
47
  export declare const unmarshalSetPlacementGroupServersResponse: (data: unknown) => SetPlacementGroupServersResponse;
@@ -845,6 +845,7 @@ const unmarshalServerType = (data) => {
845
845
  baremetal: data.baremetal,
846
846
  blockBandwidth: data.block_bandwidth,
847
847
  capabilities: data.capabilities ? unmarshalServerTypeCapabilities(data.capabilities) : void 0,
848
+ endOfService: data.end_of_service,
848
849
  gpu: data.gpu,
849
850
  hourlyPrice: data.hourly_price,
850
851
  monthlyPrice: data.monthly_price,
@@ -955,6 +956,16 @@ const unmarshalServerActionResponse = (data) => {
955
956
  task: data.task ? unmarshalTask(data.task) : void 0
956
957
  };
957
958
  };
959
+ const unmarshalServerCompatibleTypes = (data) => {
960
+ if (!isJSONObject(data)) {
961
+ throw new TypeError(
962
+ `Unmarshalling the type 'ServerCompatibleTypes' failed as data isn't a dictionary.`
963
+ );
964
+ }
965
+ return {
966
+ compatibleTypes: data.compatible_types
967
+ };
968
+ };
958
969
  const unmarshalSetImageResponse = (data) => {
959
970
  if (!isJSONObject(data)) {
960
971
  throw new TypeError(
@@ -1778,6 +1789,7 @@ export {
1778
1789
  unmarshalMigrationPlan,
1779
1790
  unmarshalPrivateNIC,
1780
1791
  unmarshalServerActionResponse,
1792
+ unmarshalServerCompatibleTypes,
1781
1793
  unmarshalSetImageResponse,
1782
1794
  unmarshalSetPlacementGroupResponse,
1783
1795
  unmarshalSetPlacementGroupServersResponse,
@@ -560,6 +560,8 @@ export interface ServerType {
560
560
  * second).
561
561
  */
562
562
  blockBandwidth?: number;
563
+ /** True if this Instance type has reached end of service. */
564
+ endOfService: boolean;
563
565
  }
564
566
  export interface VolumeType {
565
567
  displayName: string;
@@ -1141,6 +1143,12 @@ export type GetSecurityGroupRuleRequest = {
1141
1143
  export interface GetSecurityGroupRuleResponse {
1142
1144
  rule?: SecurityGroupRule;
1143
1145
  }
1146
+ export type GetServerCompatibleTypesRequest = {
1147
+ /** Zone to target. If none is passed will use default zone from the config. */
1148
+ zone?: ScwZone;
1149
+ /** UUID of the Instance you want to get. */
1150
+ serverId: string;
1151
+ };
1144
1152
  export type GetServerRequest = {
1145
1153
  /** Zone to target. If none is passed will use default zone from the config. */
1146
1154
  zone?: ScwZone;
@@ -1554,6 +1562,10 @@ export type ServerActionRequest = {
1554
1562
  export interface ServerActionResponse {
1555
1563
  task?: Task;
1556
1564
  }
1565
+ export interface ServerCompatibleTypes {
1566
+ /** Instance compatible types. */
1567
+ compatibleTypes: string[];
1568
+ }
1557
1569
  export type SetImageRequest = {
1558
1570
  /** Zone to target. If none is passed will use default zone from the config. */
1559
1571
  zone?: ScwZone;
@@ -259,6 +259,7 @@ const unmarshalFrontend = (data) => {
259
259
  backend: data.backend ? unmarshalBackend(data.backend) : void 0,
260
260
  certificate: data.certificate ? unmarshalCertificate(data.certificate) : void 0,
261
261
  certificateIds: data.certificate_ids,
262
+ connectionRateLimit: data.connection_rate_limit,
262
263
  createdAt: marshalling.unmarshalDate(data.created_at),
263
264
  enableHttp3: data.enable_http3,
264
265
  id: data.id,
@@ -378,6 +379,7 @@ const unmarshalRouteMatch = (data) => {
378
379
  }
379
380
  return {
380
381
  hostHeader: data.host_header,
382
+ matchSubdomains: data.match_subdomains,
381
383
  sni: data.sni
382
384
  };
383
385
  };
@@ -740,6 +742,7 @@ const marshalCreateFrontendRequest = (request, defaults) => ({
740
742
  backend_id: request.backendId,
741
743
  certificate_id: request.certificateId,
742
744
  certificate_ids: request.certificateIds,
745
+ connection_rate_limit: request.connectionRateLimit,
743
746
  enable_http3: request.enableHttp3,
744
747
  inbound_port: request.inboundPort,
745
748
  name: request.name || randomName("lbf"),
@@ -786,6 +789,7 @@ const marshalCreateLbRequest = (request, defaults) => ({
786
789
  ])
787
790
  });
788
791
  const marshalRouteMatch = (request, defaults) => ({
792
+ match_subdomains: request.matchSubdomains,
789
793
  ...marshalling.resolveOneOf([
790
794
  { param: "sni", value: request.sni },
791
795
  { param: "host_header", value: request.hostHeader }
@@ -874,6 +878,7 @@ const marshalUpdateFrontendRequest = (request, defaults) => ({
874
878
  backend_id: request.backendId,
875
879
  certificate_id: request.certificateId,
876
880
  certificate_ids: request.certificateIds,
881
+ connection_rate_limit: request.connectionRateLimit,
877
882
  enable_http3: request.enableHttp3,
878
883
  inbound_port: request.inboundPort,
879
884
  name: request.name,
@@ -1016,6 +1021,7 @@ const marshalZonedApiCreateFrontendRequest = (request, defaults) => ({
1016
1021
  backend_id: request.backendId,
1017
1022
  certificate_id: request.certificateId,
1018
1023
  certificate_ids: request.certificateIds,
1024
+ connection_rate_limit: request.connectionRateLimit,
1019
1025
  enable_http3: request.enableHttp3,
1020
1026
  inbound_port: request.inboundPort,
1021
1027
  name: request.name || randomName("lbf"),
@@ -1148,6 +1154,7 @@ const marshalZonedApiUpdateFrontendRequest = (request, defaults) => ({
1148
1154
  backend_id: request.backendId,
1149
1155
  certificate_id: request.certificateId,
1150
1156
  certificate_ids: request.certificateIds,
1157
+ connection_rate_limit: request.connectionRateLimit,
1151
1158
  enable_http3: request.enableHttp3,
1152
1159
  inbound_port: request.inboundPort,
1153
1160
  name: request.name,
@@ -257,6 +257,7 @@ const unmarshalFrontend = (data) => {
257
257
  backend: data.backend ? unmarshalBackend(data.backend) : void 0,
258
258
  certificate: data.certificate ? unmarshalCertificate(data.certificate) : void 0,
259
259
  certificateIds: data.certificate_ids,
260
+ connectionRateLimit: data.connection_rate_limit,
260
261
  createdAt: unmarshalDate(data.created_at),
261
262
  enableHttp3: data.enable_http3,
262
263
  id: data.id,
@@ -376,6 +377,7 @@ const unmarshalRouteMatch = (data) => {
376
377
  }
377
378
  return {
378
379
  hostHeader: data.host_header,
380
+ matchSubdomains: data.match_subdomains,
379
381
  sni: data.sni
380
382
  };
381
383
  };
@@ -738,6 +740,7 @@ const marshalCreateFrontendRequest = (request, defaults) => ({
738
740
  backend_id: request.backendId,
739
741
  certificate_id: request.certificateId,
740
742
  certificate_ids: request.certificateIds,
743
+ connection_rate_limit: request.connectionRateLimit,
741
744
  enable_http3: request.enableHttp3,
742
745
  inbound_port: request.inboundPort,
743
746
  name: request.name || randomName("lbf"),
@@ -784,6 +787,7 @@ const marshalCreateLbRequest = (request, defaults) => ({
784
787
  ])
785
788
  });
786
789
  const marshalRouteMatch = (request, defaults) => ({
790
+ match_subdomains: request.matchSubdomains,
787
791
  ...resolveOneOf([
788
792
  { param: "sni", value: request.sni },
789
793
  { param: "host_header", value: request.hostHeader }
@@ -872,6 +876,7 @@ const marshalUpdateFrontendRequest = (request, defaults) => ({
872
876
  backend_id: request.backendId,
873
877
  certificate_id: request.certificateId,
874
878
  certificate_ids: request.certificateIds,
879
+ connection_rate_limit: request.connectionRateLimit,
875
880
  enable_http3: request.enableHttp3,
876
881
  inbound_port: request.inboundPort,
877
882
  name: request.name,
@@ -1014,6 +1019,7 @@ const marshalZonedApiCreateFrontendRequest = (request, defaults) => ({
1014
1019
  backend_id: request.backendId,
1015
1020
  certificate_id: request.certificateId,
1016
1021
  certificate_ids: request.certificateIds,
1022
+ connection_rate_limit: request.connectionRateLimit,
1017
1023
  enable_http3: request.enableHttp3,
1018
1024
  inbound_port: request.inboundPort,
1019
1025
  name: request.name || randomName("lbf"),
@@ -1146,6 +1152,7 @@ const marshalZonedApiUpdateFrontendRequest = (request, defaults) => ({
1146
1152
  backend_id: request.backendId,
1147
1153
  certificate_id: request.certificateId,
1148
1154
  certificate_ids: request.certificateIds,
1155
+ connection_rate_limit: request.connectionRateLimit,
1149
1156
  enable_http3: request.enableHttp3,
1150
1157
  inbound_port: request.inboundPort,
1151
1158
  name: request.name,
@@ -448,6 +448,11 @@ export interface Frontend {
448
448
  updatedAt?: Date;
449
449
  /** Defines whether to enable HTTP/3 protocol on the frontend. */
450
450
  enableHttp3: boolean;
451
+ /**
452
+ * Rate limit for new connections established on this frontend. Use 0 value to
453
+ * disable, else value is connections per second.
454
+ */
455
+ connectionRateLimit?: number;
451
456
  }
452
457
  export interface PrivateNetworkDHCPConfig {
453
458
  /** @deprecated */
@@ -478,6 +483,8 @@ export interface RouteMatch {
478
483
  * One-of ('matchType'): at most one of 'sni', 'hostHeader' could be set.
479
484
  */
480
485
  hostHeader?: string;
486
+ /** If true, all subdomains will match. */
487
+ matchSubdomains: boolean;
481
488
  }
482
489
  export interface CreateCertificateRequestCustomCertificate {
483
490
  /**
@@ -835,6 +842,11 @@ export type CreateFrontendRequest = {
835
842
  certificateIds?: string[];
836
843
  /** Defines whether to enable HTTP/3 protocol on the frontend. */
837
844
  enableHttp3: boolean;
845
+ /**
846
+ * Rate limit for new connections established on this frontend. Use 0 value to
847
+ * disable, else value is connections per second.
848
+ */
849
+ connectionRateLimit?: number;
838
850
  };
839
851
  export type CreateIpRequest = {
840
852
  /**
@@ -1629,6 +1641,11 @@ export type UpdateFrontendRequest = {
1629
1641
  certificateIds?: string[];
1630
1642
  /** Defines whether to enable HTTP/3 protocol on the frontend. */
1631
1643
  enableHttp3: boolean;
1644
+ /**
1645
+ * Rate limit for new connections established on this frontend. Use 0 value to
1646
+ * disable, else value is connections per second.
1647
+ */
1648
+ connectionRateLimit?: number;
1632
1649
  };
1633
1650
  export type UpdateHealthCheckRequest = {
1634
1651
  /**
@@ -1991,6 +2008,11 @@ export type ZonedApiCreateFrontendRequest = {
1991
2008
  certificateIds?: string[];
1992
2009
  /** Defines whether to enable HTTP/3 protocol on the frontend. */
1993
2010
  enableHttp3: boolean;
2011
+ /**
2012
+ * Rate limit for new connections established on this frontend. Use 0 value to
2013
+ * disable, else value is connections per second.
2014
+ */
2015
+ connectionRateLimit?: number;
1994
2016
  };
1995
2017
  export type ZonedApiCreateIpRequest = {
1996
2018
  /** Zone to target. If none is passed will use default zone from the config. */
@@ -2594,6 +2616,11 @@ export type ZonedApiUpdateFrontendRequest = {
2594
2616
  certificateIds?: string[];
2595
2617
  /** Defines whether to enable HTTP/3 protocol on the frontend. */
2596
2618
  enableHttp3: boolean;
2619
+ /**
2620
+ * Rate limit for new connections established on this frontend. Use 0 value to
2621
+ * disable, else value is connections per second.
2622
+ */
2623
+ connectionRateLimit?: number;
2597
2624
  };
2598
2625
  export type ZonedApiUpdateHealthCheckRequest = {
2599
2626
  /** Zone to target. If none is passed will use default zone from the config. */
@@ -407,6 +407,17 @@ class API extends api.API {
407
407
  method: "DELETE",
408
408
  path: `/mongodb/v1alpha1/regions/${marshalling.validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/instances/${marshalling.validatePathParam("instanceId", request.instanceId)}/users/${marshalling.validatePathParam("name", request.name)}`
409
409
  });
410
+ setUserRole = (request) => this.client.fetch(
411
+ {
412
+ body: JSON.stringify(
413
+ marshalling_gen.marshalSetUserRoleRequest(request, this.client.settings)
414
+ ),
415
+ headers: jsonContentHeaders,
416
+ method: "PUT",
417
+ path: `/mongodb/v1alpha1/regions/${marshalling.validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/instances/${marshalling.validatePathParam("instanceId", request.instanceId)}/roles`
418
+ },
419
+ marshalling_gen.unmarshalUser
420
+ );
410
421
  /**
411
422
  * Delete a Database Instance endpoint. Delete the endpoint of a Database
412
423
  * Instance. You must specify the `endpoint_id` parameter of the endpoint you
@@ -1,6 +1,6 @@
1
1
  import { API as ParentAPI } from '../../../bridge';
2
2
  import type { Region as ScwRegion, WaitForOptions } from '../../../bridge';
3
- import type { CreateEndpointRequest, CreateInstanceRequest, CreateSnapshotRequest, CreateUserRequest, DeleteEndpointRequest, DeleteInstanceRequest, DeleteSnapshotRequest, DeleteUserRequest, Endpoint, GetInstanceCertificateRequest, GetInstanceRequest, GetSnapshotRequest, Instance, ListInstancesRequest, ListInstancesResponse, ListNodeTypesRequest, ListNodeTypesResponse, ListSnapshotsRequest, ListSnapshotsResponse, ListUsersRequest, ListUsersResponse, ListVersionsRequest, ListVersionsResponse, RestoreSnapshotRequest, Snapshot, UpdateInstanceRequest, UpdateSnapshotRequest, UpdateUserRequest, UpgradeInstanceRequest, User } from './types.gen';
3
+ import type { CreateEndpointRequest, CreateInstanceRequest, CreateSnapshotRequest, CreateUserRequest, DeleteEndpointRequest, DeleteInstanceRequest, DeleteSnapshotRequest, DeleteUserRequest, Endpoint, GetInstanceCertificateRequest, GetInstanceRequest, GetSnapshotRequest, Instance, ListInstancesRequest, ListInstancesResponse, ListNodeTypesRequest, ListNodeTypesResponse, ListSnapshotsRequest, ListSnapshotsResponse, ListUsersRequest, ListUsersResponse, ListVersionsRequest, ListVersionsResponse, RestoreSnapshotRequest, SetUserRoleRequest, Snapshot, UpdateInstanceRequest, UpdateSnapshotRequest, UpdateUserRequest, UpgradeInstanceRequest, User } from './types.gen';
4
4
  /**
5
5
  * Managed MongoDB®.
6
6
  *
@@ -215,6 +215,7 @@ export declare class API extends ParentAPI {
215
215
  * @param request - The request {@link DeleteUserRequest}
216
216
  */
217
217
  deleteUser: (request: Readonly<DeleteUserRequest>) => Promise<void>;
218
+ setUserRole: (request: Readonly<SetUserRoleRequest>) => Promise<User>;
218
219
  /**
219
220
  * Delete a Database Instance endpoint. Delete the endpoint of a Database
220
221
  * Instance. You must specify the `endpoint_id` parameter of the endpoint you
@@ -4,7 +4,7 @@ import { validatePathParam, urlParams } from "../../../helpers/marshalling.js";
4
4
  import "../../../vendor/base64/index.js";
5
5
  import { enrichForPagination } from "../../../scw/fetch/resource-paginator.js";
6
6
  import { INSTANCE_TRANSIENT_STATUSES, SNAPSHOT_TRANSIENT_STATUSES } from "./content.gen.js";
7
- import { unmarshalListNodeTypesResponse, unmarshalListVersionsResponse, unmarshalListInstancesResponse, unmarshalInstance, marshalCreateInstanceRequest, marshalUpdateInstanceRequest, marshalUpgradeInstanceRequest, marshalCreateSnapshotRequest, unmarshalSnapshot, marshalUpdateSnapshotRequest, marshalRestoreSnapshotRequest, unmarshalListSnapshotsResponse, unmarshalListUsersResponse, marshalCreateUserRequest, unmarshalUser, marshalUpdateUserRequest, marshalCreateEndpointRequest, unmarshalEndpoint } from "./marshalling.gen.js";
7
+ import { unmarshalListNodeTypesResponse, unmarshalListVersionsResponse, unmarshalListInstancesResponse, unmarshalInstance, marshalCreateInstanceRequest, marshalUpdateInstanceRequest, marshalUpgradeInstanceRequest, marshalCreateSnapshotRequest, unmarshalSnapshot, marshalUpdateSnapshotRequest, marshalRestoreSnapshotRequest, unmarshalListSnapshotsResponse, unmarshalListUsersResponse, marshalCreateUserRequest, unmarshalUser, marshalUpdateUserRequest, marshalSetUserRoleRequest, marshalCreateEndpointRequest, unmarshalEndpoint } from "./marshalling.gen.js";
8
8
  const jsonContentHeaders = {
9
9
  "Content-Type": "application/json; charset=utf-8"
10
10
  };
@@ -405,6 +405,17 @@ class API extends API$1 {
405
405
  method: "DELETE",
406
406
  path: `/mongodb/v1alpha1/regions/${validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/instances/${validatePathParam("instanceId", request.instanceId)}/users/${validatePathParam("name", request.name)}`
407
407
  });
408
+ setUserRole = (request) => this.client.fetch(
409
+ {
410
+ body: JSON.stringify(
411
+ marshalSetUserRoleRequest(request, this.client.settings)
412
+ ),
413
+ headers: jsonContentHeaders,
414
+ method: "PUT",
415
+ path: `/mongodb/v1alpha1/regions/${validatePathParam("region", request.region ?? this.client.settings.defaultRegion)}/instances/${validatePathParam("instanceId", request.instanceId)}/roles`
416
+ },
417
+ unmarshalUser
418
+ );
408
419
  /**
409
420
  * Delete a Database Instance endpoint. Delete the endpoint of a Database
410
421
  * Instance. You must specify the `endpoint_id` parameter of the endpoint you
@@ -1,4 +1,4 @@
1
1
  export { API } from './api.gen.js';
2
2
  export * from './content.gen.js';
3
- export type { CreateEndpointRequest, CreateInstanceRequest, CreateInstanceRequestVolumeDetails, CreateSnapshotRequest, CreateUserRequest, DeleteEndpointRequest, DeleteInstanceRequest, DeleteSnapshotRequest, DeleteUserRequest, Endpoint, EndpointPrivateNetworkDetails, EndpointPublicDetails, EndpointSpec, EndpointSpecPrivateNetworkDetails, EndpointSpecPublicDetails, GetInstanceCertificateRequest, GetInstanceRequest, GetSnapshotRequest, Instance, InstanceSetting, InstanceStatus, ListInstancesRequest, ListInstancesRequestOrderBy, ListInstancesResponse, ListNodeTypesRequest, ListNodeTypesResponse, ListSnapshotsRequest, ListSnapshotsRequestOrderBy, ListSnapshotsResponse, ListUsersRequest, ListUsersRequestOrderBy, ListUsersResponse, ListVersionsRequest, ListVersionsResponse, NodeType, NodeTypeStock, NodeTypeVolumeType, RestoreSnapshotRequest, RestoreSnapshotRequestVolumeDetails, Setting, SettingPropertyType, Snapshot, SnapshotStatus, SnapshotVolumeType, UpdateInstanceRequest, UpdateSnapshotRequest, UpdateUserRequest, UpgradeInstanceRequest, User, Version, Volume, VolumeType, } from './types.gen';
3
+ export type { CreateEndpointRequest, CreateInstanceRequest, CreateInstanceRequestVolumeDetails, CreateSnapshotRequest, CreateUserRequest, DeleteEndpointRequest, DeleteInstanceRequest, DeleteSnapshotRequest, DeleteUserRequest, Endpoint, EndpointPrivateNetworkDetails, EndpointPublicDetails, EndpointSpec, EndpointSpecPrivateNetworkDetails, EndpointSpecPublicDetails, GetInstanceCertificateRequest, GetInstanceRequest, GetSnapshotRequest, Instance, InstanceSetting, InstanceStatus, ListInstancesRequest, ListInstancesRequestOrderBy, ListInstancesResponse, ListNodeTypesRequest, ListNodeTypesResponse, ListSnapshotsRequest, ListSnapshotsRequestOrderBy, ListSnapshotsResponse, ListUsersRequest, ListUsersRequestOrderBy, ListUsersResponse, ListVersionsRequest, ListVersionsResponse, NodeType, NodeTypeStock, NodeTypeVolumeType, RestoreSnapshotRequest, RestoreSnapshotRequestVolumeDetails, SetUserRoleRequest, Setting, SettingPropertyType, Snapshot, SnapshotStatus, SnapshotVolumeType, UpdateInstanceRequest, UpdateSnapshotRequest, UpdateUserRequest, UpgradeInstanceRequest, User, UserRole, UserRoleRole, Version, Volume, VolumeType, } from './types.gen';
4
4
  export * as ValidationRules from './validation-rules.gen.js';
@@ -112,6 +112,18 @@ const unmarshalSnapshot = (data) => {
112
112
  volumeType: data.volume_type ? unmarshalSnapshotVolumeType(data.volume_type) : void 0
113
113
  };
114
114
  };
115
+ const unmarshalUserRole = (data) => {
116
+ if (!json.isJSONObject(data)) {
117
+ throw new TypeError(
118
+ `Unmarshalling the type 'UserRole' failed as data isn't a dictionary.`
119
+ );
120
+ }
121
+ return {
122
+ anyDatabase: data.any_database,
123
+ database: data.database,
124
+ role: data.role
125
+ };
126
+ };
115
127
  const unmarshalUser = (data) => {
116
128
  if (!json.isJSONObject(data)) {
117
129
  throw new TypeError(
@@ -119,7 +131,8 @@ const unmarshalUser = (data) => {
119
131
  );
120
132
  }
121
133
  return {
122
- name: data.name
134
+ name: data.name,
135
+ roles: marshalling.unmarshalArrayOfObject(data.roles, unmarshalUserRole)
123
136
  };
124
137
  };
125
138
  const unmarshalListInstancesResponse = (data) => {
@@ -302,6 +315,17 @@ const marshalRestoreSnapshotRequest = (request, defaults) => ({
302
315
  node_type: request.nodeType,
303
316
  volume: marshalRestoreSnapshotRequestVolumeDetails(request.volume)
304
317
  });
318
+ const marshalUserRole = (request, defaults) => ({
319
+ role: request.role,
320
+ ...marshalling.resolveOneOf([
321
+ { param: "database", value: request.database },
322
+ { param: "any_database", value: request.anyDatabase }
323
+ ])
324
+ });
325
+ const marshalSetUserRoleRequest = (request, defaults) => ({
326
+ roles: request.roles !== void 0 ? request.roles.map((elt) => marshalUserRole(elt)) : void 0,
327
+ user_name: request.userName
328
+ });
305
329
  const marshalUpdateInstanceRequest = (request, defaults) => ({
306
330
  name: request.name,
307
331
  tags: request.tags
@@ -321,6 +345,7 @@ exports.marshalCreateInstanceRequest = marshalCreateInstanceRequest;
321
345
  exports.marshalCreateSnapshotRequest = marshalCreateSnapshotRequest;
322
346
  exports.marshalCreateUserRequest = marshalCreateUserRequest;
323
347
  exports.marshalRestoreSnapshotRequest = marshalRestoreSnapshotRequest;
348
+ exports.marshalSetUserRoleRequest = marshalSetUserRoleRequest;
324
349
  exports.marshalUpdateInstanceRequest = marshalUpdateInstanceRequest;
325
350
  exports.marshalUpdateSnapshotRequest = marshalUpdateSnapshotRequest;
326
351
  exports.marshalUpdateUserRequest = marshalUpdateUserRequest;