@scaleway/sdk-autoscaling 1.1.1

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.
@@ -0,0 +1,279 @@
1
+ import { API as API$1, validatePathParam, urlParams, enrichForPagination } from "@scaleway/sdk-client";
2
+ import { unmarshalInstanceGroup, marshalCreateInstanceGroupRequest, unmarshalListInstanceGroupsResponse, marshalUpdateInstanceGroupRequest, marshalCreateInstanceTemplateRequest, unmarshalInstanceTemplate, marshalUpdateInstanceTemplateRequest, unmarshalListInstanceTemplatesResponse, marshalCreateInstancePolicyRequest, unmarshalInstancePolicy, marshalUpdateInstancePolicyRequest, unmarshalListInstancePoliciesResponse, unmarshalListInstanceGroupEventsResponse } from "./marshalling.gen.js";
3
+ const jsonContentHeaders = {
4
+ "Content-Type": "application/json; charset=utf-8"
5
+ };
6
+ class API extends API$1 {
7
+ /**
8
+ * Get Instance group. Retrieve information about an existing Instance group, specified by its `instance_group_id`. Its full details, including errors, are returned in the response object.
9
+ *
10
+ * @param request - The request {@link GetInstanceGroupRequest}
11
+ * @returns A Promise of InstanceGroup
12
+ */
13
+ getInstanceGroup = (request) => this.client.fetch(
14
+ {
15
+ method: "GET",
16
+ path: `/autoscaling/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/instance-groups/${validatePathParam("instanceGroupId", request.instanceGroupId)}`
17
+ },
18
+ unmarshalInstanceGroup
19
+ );
20
+ /**
21
+ * Create Instance group. Create a new Instance group. You must specify a `template_id`, capacity and Load Balancer object.
22
+ *
23
+ * @param request - The request {@link CreateInstanceGroupRequest}
24
+ * @returns A Promise of InstanceGroup
25
+ */
26
+ createInstanceGroup = (request) => this.client.fetch(
27
+ {
28
+ body: JSON.stringify(
29
+ marshalCreateInstanceGroupRequest(request, this.client.settings)
30
+ ),
31
+ headers: jsonContentHeaders,
32
+ method: "POST",
33
+ path: `/autoscaling/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/instance-groups`
34
+ },
35
+ unmarshalInstanceGroup
36
+ );
37
+ pageOfListInstanceGroups = (request = {}) => this.client.fetch(
38
+ {
39
+ method: "GET",
40
+ path: `/autoscaling/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/instance-groups`,
41
+ urlParams: urlParams(
42
+ ["order_by", request.orderBy],
43
+ ["page", request.page],
44
+ [
45
+ "page_size",
46
+ request.pageSize ?? this.client.settings.defaultPageSize
47
+ ]
48
+ )
49
+ },
50
+ unmarshalListInstanceGroupsResponse
51
+ );
52
+ /**
53
+ * List Instance groups. List all Instance groups, for a Scaleway Organization or Scaleway Project. By default, the Instance groups returned in the list are ordered by creation date in ascending order, though this can be modified via the `order_by` field.
54
+ *
55
+ * @param request - The request {@link ListInstanceGroupsRequest}
56
+ * @returns A Promise of ListInstanceGroupsResponse
57
+ */
58
+ listInstanceGroups = (request = {}) => enrichForPagination(
59
+ "instanceGroups",
60
+ this.pageOfListInstanceGroups,
61
+ request
62
+ );
63
+ /**
64
+ * Update Instance group. Update the parameters of an existing Instance group, specified by its `instance_group_id`.
65
+ *
66
+ * @param request - The request {@link UpdateInstanceGroupRequest}
67
+ * @returns A Promise of InstanceGroup
68
+ */
69
+ updateInstanceGroup = (request) => this.client.fetch(
70
+ {
71
+ body: JSON.stringify(
72
+ marshalUpdateInstanceGroupRequest(request, this.client.settings)
73
+ ),
74
+ headers: jsonContentHeaders,
75
+ method: "PATCH",
76
+ path: `/autoscaling/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/instance-groups/${validatePathParam("instanceGroupId", request.instanceGroupId)}`
77
+ },
78
+ unmarshalInstanceGroup
79
+ );
80
+ /**
81
+ * Delete Instance group. Delete an existing Instance group, specified by its `instance_group_id`. Deleting an Instance group is permanent, and cannot be undone.
82
+ *
83
+ * @param request - The request {@link DeleteInstanceGroupRequest}
84
+ */
85
+ deleteInstanceGroup = (request) => this.client.fetch({
86
+ method: "DELETE",
87
+ path: `/autoscaling/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/instance-groups/${validatePathParam("instanceGroupId", request.instanceGroupId)}`
88
+ });
89
+ /**
90
+ * Create Instance template. Create a new Instance template. This specifies the details of the Instance (commercial type, zone, image, volumes etc.) that will be in the Instance group.
91
+ *
92
+ * @param request - The request {@link CreateInstanceTemplateRequest}
93
+ * @returns A Promise of InstanceTemplate
94
+ */
95
+ createInstanceTemplate = (request) => this.client.fetch(
96
+ {
97
+ body: JSON.stringify(
98
+ marshalCreateInstanceTemplateRequest(request, this.client.settings)
99
+ ),
100
+ headers: jsonContentHeaders,
101
+ method: "POST",
102
+ path: `/autoscaling/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/instance-templates`
103
+ },
104
+ unmarshalInstanceTemplate
105
+ );
106
+ /**
107
+ * Update Instance template. Update an Instance template, such as its commercial offer type, image or volume template.
108
+ *
109
+ * @param request - The request {@link UpdateInstanceTemplateRequest}
110
+ * @returns A Promise of InstanceTemplate
111
+ */
112
+ updateInstanceTemplate = (request) => this.client.fetch(
113
+ {
114
+ body: JSON.stringify(
115
+ marshalUpdateInstanceTemplateRequest(request, this.client.settings)
116
+ ),
117
+ headers: jsonContentHeaders,
118
+ method: "PATCH",
119
+ path: `/autoscaling/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/instance-templates/${validatePathParam("templateId", request.templateId)}`
120
+ },
121
+ unmarshalInstanceTemplate
122
+ );
123
+ /**
124
+ * Get Instance template. Get an existing Instance template from its `template_id`.
125
+ *
126
+ * @param request - The request {@link GetInstanceTemplateRequest}
127
+ * @returns A Promise of InstanceTemplate
128
+ */
129
+ getInstanceTemplate = (request) => this.client.fetch(
130
+ {
131
+ method: "GET",
132
+ path: `/autoscaling/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/instance-templates/${validatePathParam("templateId", request.templateId)}`
133
+ },
134
+ unmarshalInstanceTemplate
135
+ );
136
+ /**
137
+ * Delete Instance template. Delete an existing Instance template. This action is permanent and cannot be undone.
138
+ *
139
+ * @param request - The request {@link DeleteInstanceTemplateRequest}
140
+ */
141
+ deleteInstanceTemplate = (request) => this.client.fetch({
142
+ method: "DELETE",
143
+ path: `/autoscaling/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/instance-templates/${validatePathParam("templateId", request.templateId)}`
144
+ });
145
+ pageOfListInstanceTemplates = (request = {}) => this.client.fetch(
146
+ {
147
+ method: "GET",
148
+ path: `/autoscaling/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/instance-templates`,
149
+ urlParams: urlParams(
150
+ ["order_by", request.orderBy],
151
+ ["page", request.page],
152
+ [
153
+ "page_size",
154
+ request.pageSize ?? this.client.settings.defaultPageSize
155
+ ]
156
+ )
157
+ },
158
+ unmarshalListInstanceTemplatesResponse
159
+ );
160
+ /**
161
+ * List Instance templates. List all Instance templates, for a Scaleway Organization or Scaleway Project. By default, the Instance templates returned in the list are ordered by creation date in ascending order, though this can be modified via the `order_by` field.
162
+ *
163
+ * @param request - The request {@link ListInstanceTemplatesRequest}
164
+ * @returns A Promise of ListInstanceTemplatesResponse
165
+ */
166
+ listInstanceTemplates = (request = {}) => enrichForPagination(
167
+ "instanceTemplates",
168
+ this.pageOfListInstanceTemplates,
169
+ request
170
+ );
171
+ /**
172
+ * Create scaling policy. Create a new scaling policy. You must specify a `policy_id`, capacity and Load Balancer object.
173
+ *
174
+ * @param request - The request {@link CreateInstancePolicyRequest}
175
+ * @returns A Promise of InstancePolicy
176
+ */
177
+ createInstancePolicy = (request) => this.client.fetch(
178
+ {
179
+ body: JSON.stringify(
180
+ marshalCreateInstancePolicyRequest(request, this.client.settings)
181
+ ),
182
+ headers: jsonContentHeaders,
183
+ method: "POST",
184
+ path: `/autoscaling/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/instance-policies`
185
+ },
186
+ unmarshalInstancePolicy
187
+ );
188
+ /**
189
+ * Update scaling policy. Update the parameters of an existing scaling policy, specified by its `policy_id`.
190
+ *
191
+ * @param request - The request {@link UpdateInstancePolicyRequest}
192
+ * @returns A Promise of InstancePolicy
193
+ */
194
+ updateInstancePolicy = (request) => this.client.fetch(
195
+ {
196
+ body: JSON.stringify(
197
+ marshalUpdateInstancePolicyRequest(request, this.client.settings)
198
+ ),
199
+ headers: jsonContentHeaders,
200
+ method: "PATCH",
201
+ path: `/autoscaling/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/instance-policies/${validatePathParam("policyId", request.policyId)}`
202
+ },
203
+ unmarshalInstancePolicy
204
+ );
205
+ pageOfListInstancePolicies = (request) => this.client.fetch(
206
+ {
207
+ method: "GET",
208
+ path: `/autoscaling/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/instance-policies`,
209
+ urlParams: urlParams(
210
+ ["instance_group_id", request.instanceGroupId],
211
+ ["order_by", request.orderBy],
212
+ ["page", request.page],
213
+ [
214
+ "page_size",
215
+ request.pageSize ?? this.client.settings.defaultPageSize
216
+ ]
217
+ )
218
+ },
219
+ unmarshalListInstancePoliciesResponse
220
+ );
221
+ /**
222
+ * List scaling policies. List all scaling policies, for a Scaleway Organization or Scaleway Project. By default, the policies returned in the list are ordered by creation date in ascending order, though this can be modified via the `order_by` field.
223
+ *
224
+ * @param request - The request {@link ListInstancePoliciesRequest}
225
+ * @returns A Promise of ListInstancePoliciesResponse
226
+ */
227
+ listInstancePolicies = (request) => enrichForPagination("policies", this.pageOfListInstancePolicies, request);
228
+ /**
229
+ * Get scaling policy. Retrieve information about an existing scaling policy, specified by its `policy_id`. Its full details are returned in the response object.
230
+ *
231
+ * @param request - The request {@link GetInstancePolicyRequest}
232
+ * @returns A Promise of InstancePolicy
233
+ */
234
+ getInstancePolicy = (request) => this.client.fetch(
235
+ {
236
+ method: "GET",
237
+ path: `/autoscaling/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/instance-policies/${validatePathParam("policyId", request.policyId)}`
238
+ },
239
+ unmarshalInstancePolicy
240
+ );
241
+ /**
242
+ * Delete scaling policy. Delete an existing scaling policy, specified by its `policy_id`. Deleting a scaling policy is permanent, and cannot be undone.
243
+ *
244
+ * @param request - The request {@link DeleteInstancePolicyRequest}
245
+ */
246
+ deleteInstancePolicy = (request) => this.client.fetch({
247
+ method: "DELETE",
248
+ path: `/autoscaling/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/instance-policies/${validatePathParam("policyId", request.policyId)}`
249
+ });
250
+ pageOfListInstanceGroupEvents = (request) => this.client.fetch(
251
+ {
252
+ method: "GET",
253
+ path: `/autoscaling/v1alpha1/zones/${validatePathParam("zone", request.zone ?? this.client.settings.defaultZone)}/instance-groups/${validatePathParam("instanceGroupId", request.instanceGroupId)}/events`,
254
+ urlParams: urlParams(
255
+ ["order_by", request.orderBy],
256
+ ["page", request.page],
257
+ [
258
+ "page_size",
259
+ request.pageSize ?? this.client.settings.defaultPageSize
260
+ ]
261
+ )
262
+ },
263
+ unmarshalListInstanceGroupEventsResponse
264
+ );
265
+ /**
266
+ * List events. List all events for a given Instance group. By default, the events are ordered by creation date in descending order, though this can be modified via the `order_by` field.
267
+ *
268
+ * @param request - The request {@link ListInstanceGroupEventsRequest}
269
+ * @returns A Promise of ListInstanceGroupEventsResponse
270
+ */
271
+ listInstanceGroupEvents = (request) => enrichForPagination(
272
+ "instanceEvents",
273
+ this.pageOfListInstanceGroupEvents,
274
+ request
275
+ );
276
+ }
277
+ export {
278
+ API
279
+ };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const api_gen = require("./api.gen.cjs");
4
+ const marshalling_gen = require("./marshalling.gen.cjs");
5
+ const validationRules_gen = require("./validation-rules.gen.cjs");
6
+ exports.API = api_gen.API;
7
+ exports.marshalCreateInstanceGroupRequest = marshalling_gen.marshalCreateInstanceGroupRequest;
8
+ exports.marshalCreateInstancePolicyRequest = marshalling_gen.marshalCreateInstancePolicyRequest;
9
+ exports.marshalCreateInstanceTemplateRequest = marshalling_gen.marshalCreateInstanceTemplateRequest;
10
+ exports.marshalUpdateInstanceGroupRequest = marshalling_gen.marshalUpdateInstanceGroupRequest;
11
+ exports.marshalUpdateInstancePolicyRequest = marshalling_gen.marshalUpdateInstancePolicyRequest;
12
+ exports.marshalUpdateInstanceTemplateRequest = marshalling_gen.marshalUpdateInstanceTemplateRequest;
13
+ exports.unmarshalInstanceGroup = marshalling_gen.unmarshalInstanceGroup;
14
+ exports.unmarshalInstancePolicy = marshalling_gen.unmarshalInstancePolicy;
15
+ exports.unmarshalInstanceTemplate = marshalling_gen.unmarshalInstanceTemplate;
16
+ exports.unmarshalListInstanceGroupEventsResponse = marshalling_gen.unmarshalListInstanceGroupEventsResponse;
17
+ exports.unmarshalListInstanceGroupsResponse = marshalling_gen.unmarshalListInstanceGroupsResponse;
18
+ exports.unmarshalListInstancePoliciesResponse = marshalling_gen.unmarshalListInstancePoliciesResponse;
19
+ exports.unmarshalListInstanceTemplatesResponse = marshalling_gen.unmarshalListInstanceTemplatesResponse;
20
+ exports.ValidationRules = validationRules_gen;
@@ -0,0 +1,4 @@
1
+ export { API } from './api.gen';
2
+ export * from './marshalling.gen';
3
+ export type { Capacity, CreateInstanceGroupRequest, CreateInstancePolicyRequest, CreateInstanceTemplateRequest, DeleteInstanceGroupRequest, DeleteInstancePolicyRequest, DeleteInstanceTemplateRequest, GetInstanceGroupRequest, GetInstancePolicyRequest, GetInstanceTemplateRequest, InstanceGroup, InstanceGroupEvent, InstanceGroupEventLevel, InstanceGroupEventSource, InstancePolicy, InstancePolicyAction, InstancePolicyType, InstanceTemplate, InstanceTemplateStatus, ListInstanceGroupEventsRequest, ListInstanceGroupEventsRequestOrderBy, ListInstanceGroupEventsResponse, ListInstanceGroupsRequest, ListInstanceGroupsRequestOrderBy, ListInstanceGroupsResponse, ListInstancePoliciesRequest, ListInstancePoliciesRequestOrderBy, ListInstancePoliciesResponse, ListInstanceTemplatesRequest, ListInstanceTemplatesRequestOrderBy, ListInstanceTemplatesResponse, Loadbalancer, Metric, MetricAggregate, MetricManagedMetric, MetricOperator, UpdateInstanceGroupRequest, UpdateInstanceGroupRequestCapacity, UpdateInstanceGroupRequestLoadbalancer, UpdateInstancePolicyRequest, UpdateInstancePolicyRequestMetric, UpdateInstancePolicyRequestMetricAggregate, UpdateInstancePolicyRequestMetricManagedMetric, UpdateInstancePolicyRequestMetricOperator, UpdateInstanceTemplateRequest, VolumeInstanceTemplate, VolumeInstanceTemplateFromEmpty, VolumeInstanceTemplateFromSnapshot, VolumeInstanceTemplateVolumeType, } from './types.gen';
4
+ export * as ValidationRules from './validation-rules.gen';
@@ -0,0 +1,20 @@
1
+ import { API } from "./api.gen.js";
2
+ import { marshalCreateInstanceGroupRequest, marshalCreateInstancePolicyRequest, marshalCreateInstanceTemplateRequest, marshalUpdateInstanceGroupRequest, marshalUpdateInstancePolicyRequest, marshalUpdateInstanceTemplateRequest, unmarshalInstanceGroup, unmarshalInstancePolicy, unmarshalInstanceTemplate, unmarshalListInstanceGroupEventsResponse, unmarshalListInstanceGroupsResponse, unmarshalListInstancePoliciesResponse, unmarshalListInstanceTemplatesResponse } from "./marshalling.gen.js";
3
+ import * as validationRules_gen from "./validation-rules.gen.js";
4
+ export {
5
+ API,
6
+ validationRules_gen as ValidationRules,
7
+ marshalCreateInstanceGroupRequest,
8
+ marshalCreateInstancePolicyRequest,
9
+ marshalCreateInstanceTemplateRequest,
10
+ marshalUpdateInstanceGroupRequest,
11
+ marshalUpdateInstancePolicyRequest,
12
+ marshalUpdateInstanceTemplateRequest,
13
+ unmarshalInstanceGroup,
14
+ unmarshalInstancePolicy,
15
+ unmarshalInstanceTemplate,
16
+ unmarshalListInstanceGroupEventsResponse,
17
+ unmarshalListInstanceGroupsResponse,
18
+ unmarshalListInstancePoliciesResponse,
19
+ unmarshalListInstanceTemplatesResponse
20
+ };