Skip to content

Commit 1cce81c

Browse files
committed
feat: update generated APIs
1 parent a138582 commit 1cce81c

File tree

11 files changed

+2007
-0
lines changed

11 files changed

+2007
-0
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
/**
2+
* This file is automatically generated
3+
* PLEASE DO NOT EDIT HERE
4+
*/
5+
6+
export * as Autoscalingv1alpha1 from './v1alpha1/index.gen'
Lines changed: 378 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,378 @@
1+
// This file was automatically generated. DO NOT EDIT.
2+
// If you have any remark or suggestion do not hesitate to open an issue.
3+
import {
4+
API as ParentAPI,
5+
enrichForPagination,
6+
urlParams,
7+
validatePathParam,
8+
} from '@scaleway/sdk-client'
9+
import {
10+
marshalCreateInstanceGroupRequest,
11+
marshalCreateInstancePolicyRequest,
12+
marshalCreateInstanceTemplateRequest,
13+
marshalUpdateInstanceGroupRequest,
14+
marshalUpdateInstancePolicyRequest,
15+
marshalUpdateInstanceTemplateRequest,
16+
unmarshalInstanceGroup,
17+
unmarshalInstancePolicy,
18+
unmarshalInstanceTemplate,
19+
unmarshalListInstanceGroupEventsResponse,
20+
unmarshalListInstanceGroupsResponse,
21+
unmarshalListInstancePoliciesResponse,
22+
unmarshalListInstanceTemplatesResponse,
23+
} from './marshalling.gen'
24+
import type {
25+
CreateInstanceGroupRequest,
26+
CreateInstancePolicyRequest,
27+
CreateInstanceTemplateRequest,
28+
DeleteInstanceGroupRequest,
29+
DeleteInstancePolicyRequest,
30+
DeleteInstanceTemplateRequest,
31+
GetInstanceGroupRequest,
32+
GetInstancePolicyRequest,
33+
GetInstanceTemplateRequest,
34+
InstanceGroup,
35+
InstancePolicy,
36+
InstanceTemplate,
37+
ListInstanceGroupEventsRequest,
38+
ListInstanceGroupEventsResponse,
39+
ListInstanceGroupsRequest,
40+
ListInstanceGroupsResponse,
41+
ListInstancePoliciesRequest,
42+
ListInstancePoliciesResponse,
43+
ListInstanceTemplatesRequest,
44+
ListInstanceTemplatesResponse,
45+
UpdateInstanceGroupRequest,
46+
UpdateInstancePolicyRequest,
47+
UpdateInstanceTemplateRequest,
48+
} from './types.gen'
49+
50+
const jsonContentHeaders = {
51+
'Content-Type': 'application/json; charset=utf-8',
52+
}
53+
54+
/**
55+
* Instance Scaling Groups API.
56+
*/
57+
export class API extends ParentAPI {
58+
/**
59+
* 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.
60+
*
61+
* @param request - The request {@link GetInstanceGroupRequest}
62+
* @returns A Promise of InstanceGroup
63+
*/
64+
getInstanceGroup = (request: Readonly<GetInstanceGroupRequest>) =>
65+
this.client.fetch<InstanceGroup>(
66+
{
67+
method: 'GET',
68+
path: `/autoscaling/v1alpha1/zones/${validatePathParam('zone', request.zone ?? this.client.settings.defaultZone)}/instance-groups/${validatePathParam('instanceGroupId', request.instanceGroupId)}`,
69+
},
70+
unmarshalInstanceGroup,
71+
)
72+
73+
/**
74+
* Create Instance group. Create a new Instance group. You must specify a `template_id`, capacity and Load Balancer object.
75+
*
76+
* @param request - The request {@link CreateInstanceGroupRequest}
77+
* @returns A Promise of InstanceGroup
78+
*/
79+
createInstanceGroup = (request: Readonly<CreateInstanceGroupRequest>) =>
80+
this.client.fetch<InstanceGroup>(
81+
{
82+
body: JSON.stringify(
83+
marshalCreateInstanceGroupRequest(request, this.client.settings),
84+
),
85+
headers: jsonContentHeaders,
86+
method: 'POST',
87+
path: `/autoscaling/v1alpha1/zones/${validatePathParam('zone', request.zone ?? this.client.settings.defaultZone)}/instance-groups`,
88+
},
89+
unmarshalInstanceGroup,
90+
)
91+
92+
protected pageOfListInstanceGroups = (
93+
request: Readonly<ListInstanceGroupsRequest> = {},
94+
) =>
95+
this.client.fetch<ListInstanceGroupsResponse>(
96+
{
97+
method: 'GET',
98+
path: `/autoscaling/v1alpha1/zones/${validatePathParam('zone', request.zone ?? this.client.settings.defaultZone)}/instance-groups`,
99+
urlParams: urlParams(
100+
['order_by', request.orderBy],
101+
['page', request.page],
102+
[
103+
'page_size',
104+
request.pageSize ?? this.client.settings.defaultPageSize,
105+
],
106+
),
107+
},
108+
unmarshalListInstanceGroupsResponse,
109+
)
110+
111+
/**
112+
* 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.
113+
*
114+
* @param request - The request {@link ListInstanceGroupsRequest}
115+
* @returns A Promise of ListInstanceGroupsResponse
116+
*/
117+
listInstanceGroups = (request: Readonly<ListInstanceGroupsRequest> = {}) =>
118+
enrichForPagination(
119+
'instanceGroups',
120+
this.pageOfListInstanceGroups,
121+
request,
122+
)
123+
124+
/**
125+
* Update Instance group. Update the parameters of an existing Instance group, specified by its `instance_group_id`.
126+
*
127+
* @param request - The request {@link UpdateInstanceGroupRequest}
128+
* @returns A Promise of InstanceGroup
129+
*/
130+
updateInstanceGroup = (request: Readonly<UpdateInstanceGroupRequest>) =>
131+
this.client.fetch<InstanceGroup>(
132+
{
133+
body: JSON.stringify(
134+
marshalUpdateInstanceGroupRequest(request, this.client.settings),
135+
),
136+
headers: jsonContentHeaders,
137+
method: 'PATCH',
138+
path: `/autoscaling/v1alpha1/zones/${validatePathParam('zone', request.zone ?? this.client.settings.defaultZone)}/instance-groups/${validatePathParam('instanceGroupId', request.instanceGroupId)}`,
139+
},
140+
unmarshalInstanceGroup,
141+
)
142+
143+
/**
144+
* Delete Instance group. Delete an existing Instance group, specified by its `instance_group_id`. Deleting an Instance group is permanent, and cannot be undone.
145+
*
146+
* @param request - The request {@link DeleteInstanceGroupRequest}
147+
*/
148+
deleteInstanceGroup = (request: Readonly<DeleteInstanceGroupRequest>) =>
149+
this.client.fetch<void>({
150+
method: 'DELETE',
151+
path: `/autoscaling/v1alpha1/zones/${validatePathParam('zone', request.zone ?? this.client.settings.defaultZone)}/instance-groups/${validatePathParam('instanceGroupId', request.instanceGroupId)}`,
152+
})
153+
154+
/**
155+
* 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.
156+
*
157+
* @param request - The request {@link CreateInstanceTemplateRequest}
158+
* @returns A Promise of InstanceTemplate
159+
*/
160+
createInstanceTemplate = (request: Readonly<CreateInstanceTemplateRequest>) =>
161+
this.client.fetch<InstanceTemplate>(
162+
{
163+
body: JSON.stringify(
164+
marshalCreateInstanceTemplateRequest(request, this.client.settings),
165+
),
166+
headers: jsonContentHeaders,
167+
method: 'POST',
168+
path: `/autoscaling/v1alpha1/zones/${validatePathParam('zone', request.zone ?? this.client.settings.defaultZone)}/instance-templates`,
169+
},
170+
unmarshalInstanceTemplate,
171+
)
172+
173+
/**
174+
* Update Instance template. Update an Instance template, such as its commercial offer type, image or volume template.
175+
*
176+
* @param request - The request {@link UpdateInstanceTemplateRequest}
177+
* @returns A Promise of InstanceTemplate
178+
*/
179+
updateInstanceTemplate = (request: Readonly<UpdateInstanceTemplateRequest>) =>
180+
this.client.fetch<InstanceTemplate>(
181+
{
182+
body: JSON.stringify(
183+
marshalUpdateInstanceTemplateRequest(request, this.client.settings),
184+
),
185+
headers: jsonContentHeaders,
186+
method: 'PATCH',
187+
path: `/autoscaling/v1alpha1/zones/${validatePathParam('zone', request.zone ?? this.client.settings.defaultZone)}/instance-templates/${validatePathParam('templateId', request.templateId)}`,
188+
},
189+
unmarshalInstanceTemplate,
190+
)
191+
192+
/**
193+
* Get Instance template. Get an existing Instance template from its `template_id`.
194+
*
195+
* @param request - The request {@link GetInstanceTemplateRequest}
196+
* @returns A Promise of InstanceTemplate
197+
*/
198+
getInstanceTemplate = (request: Readonly<GetInstanceTemplateRequest>) =>
199+
this.client.fetch<InstanceTemplate>(
200+
{
201+
method: 'GET',
202+
path: `/autoscaling/v1alpha1/zones/${validatePathParam('zone', request.zone ?? this.client.settings.defaultZone)}/instance-templates/${validatePathParam('templateId', request.templateId)}`,
203+
},
204+
unmarshalInstanceTemplate,
205+
)
206+
207+
/**
208+
* Delete Instance template. Delete an existing Instance template. This action is permanent and cannot be undone.
209+
*
210+
* @param request - The request {@link DeleteInstanceTemplateRequest}
211+
*/
212+
deleteInstanceTemplate = (request: Readonly<DeleteInstanceTemplateRequest>) =>
213+
this.client.fetch<void>({
214+
method: 'DELETE',
215+
path: `/autoscaling/v1alpha1/zones/${validatePathParam('zone', request.zone ?? this.client.settings.defaultZone)}/instance-templates/${validatePathParam('templateId', request.templateId)}`,
216+
})
217+
218+
protected pageOfListInstanceTemplates = (
219+
request: Readonly<ListInstanceTemplatesRequest> = {},
220+
) =>
221+
this.client.fetch<ListInstanceTemplatesResponse>(
222+
{
223+
method: 'GET',
224+
path: `/autoscaling/v1alpha1/zones/${validatePathParam('zone', request.zone ?? this.client.settings.defaultZone)}/instance-templates`,
225+
urlParams: urlParams(
226+
['order_by', request.orderBy],
227+
['page', request.page],
228+
[
229+
'page_size',
230+
request.pageSize ?? this.client.settings.defaultPageSize,
231+
],
232+
),
233+
},
234+
unmarshalListInstanceTemplatesResponse,
235+
)
236+
237+
/**
238+
* 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.
239+
*
240+
* @param request - The request {@link ListInstanceTemplatesRequest}
241+
* @returns A Promise of ListInstanceTemplatesResponse
242+
*/
243+
listInstanceTemplates = (
244+
request: Readonly<ListInstanceTemplatesRequest> = {},
245+
) =>
246+
enrichForPagination(
247+
'instanceTemplates',
248+
this.pageOfListInstanceTemplates,
249+
request,
250+
)
251+
252+
/**
253+
* Create scaling policy. Create a new scaling policy. You must specify a `policy_id`, capacity and Load Balancer object.
254+
*
255+
* @param request - The request {@link CreateInstancePolicyRequest}
256+
* @returns A Promise of InstancePolicy
257+
*/
258+
createInstancePolicy = (request: Readonly<CreateInstancePolicyRequest>) =>
259+
this.client.fetch<InstancePolicy>(
260+
{
261+
body: JSON.stringify(
262+
marshalCreateInstancePolicyRequest(request, this.client.settings),
263+
),
264+
headers: jsonContentHeaders,
265+
method: 'POST',
266+
path: `/autoscaling/v1alpha1/zones/${validatePathParam('zone', request.zone ?? this.client.settings.defaultZone)}/instance-policies`,
267+
},
268+
unmarshalInstancePolicy,
269+
)
270+
271+
/**
272+
* Update scaling policy. Update the parameters of an existing scaling policy, specified by its `policy_id`.
273+
*
274+
* @param request - The request {@link UpdateInstancePolicyRequest}
275+
* @returns A Promise of InstancePolicy
276+
*/
277+
updateInstancePolicy = (request: Readonly<UpdateInstancePolicyRequest>) =>
278+
this.client.fetch<InstancePolicy>(
279+
{
280+
body: JSON.stringify(
281+
marshalUpdateInstancePolicyRequest(request, this.client.settings),
282+
),
283+
headers: jsonContentHeaders,
284+
method: 'PATCH',
285+
path: `/autoscaling/v1alpha1/zones/${validatePathParam('zone', request.zone ?? this.client.settings.defaultZone)}/instance-policies/${validatePathParam('policyId', request.policyId)}`,
286+
},
287+
unmarshalInstancePolicy,
288+
)
289+
290+
protected pageOfListInstancePolicies = (
291+
request: Readonly<ListInstancePoliciesRequest>,
292+
) =>
293+
this.client.fetch<ListInstancePoliciesResponse>(
294+
{
295+
method: 'GET',
296+
path: `/autoscaling/v1alpha1/zones/${validatePathParam('zone', request.zone ?? this.client.settings.defaultZone)}/instance-policies`,
297+
urlParams: urlParams(
298+
['instance_group_id', request.instanceGroupId],
299+
['order_by', request.orderBy],
300+
['page', request.page],
301+
[
302+
'page_size',
303+
request.pageSize ?? this.client.settings.defaultPageSize,
304+
],
305+
),
306+
},
307+
unmarshalListInstancePoliciesResponse,
308+
)
309+
310+
/**
311+
* 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.
312+
*
313+
* @param request - The request {@link ListInstancePoliciesRequest}
314+
* @returns A Promise of ListInstancePoliciesResponse
315+
*/
316+
listInstancePolicies = (request: Readonly<ListInstancePoliciesRequest>) =>
317+
enrichForPagination('policies', this.pageOfListInstancePolicies, request)
318+
319+
/**
320+
* Get scaling policy. Retrieve information about an existing scaling policy, specified by its `policy_id`. Its full details are returned in the response object.
321+
*
322+
* @param request - The request {@link GetInstancePolicyRequest}
323+
* @returns A Promise of InstancePolicy
324+
*/
325+
getInstancePolicy = (request: Readonly<GetInstancePolicyRequest>) =>
326+
this.client.fetch<InstancePolicy>(
327+
{
328+
method: 'GET',
329+
path: `/autoscaling/v1alpha1/zones/${validatePathParam('zone', request.zone ?? this.client.settings.defaultZone)}/instance-policies/${validatePathParam('policyId', request.policyId)}`,
330+
},
331+
unmarshalInstancePolicy,
332+
)
333+
334+
/**
335+
* Delete scaling policy. Delete an existing scaling policy, specified by its `policy_id`. Deleting a scaling policy is permanent, and cannot be undone.
336+
*
337+
* @param request - The request {@link DeleteInstancePolicyRequest}
338+
*/
339+
deleteInstancePolicy = (request: Readonly<DeleteInstancePolicyRequest>) =>
340+
this.client.fetch<void>({
341+
method: 'DELETE',
342+
path: `/autoscaling/v1alpha1/zones/${validatePathParam('zone', request.zone ?? this.client.settings.defaultZone)}/instance-policies/${validatePathParam('policyId', request.policyId)}`,
343+
})
344+
345+
protected pageOfListInstanceGroupEvents = (
346+
request: Readonly<ListInstanceGroupEventsRequest>,
347+
) =>
348+
this.client.fetch<ListInstanceGroupEventsResponse>(
349+
{
350+
method: 'GET',
351+
path: `/autoscaling/v1alpha1/zones/${validatePathParam('zone', request.zone ?? this.client.settings.defaultZone)}/instance-groups/${validatePathParam('instanceGroupId', request.instanceGroupId)}/events`,
352+
urlParams: urlParams(
353+
['order_by', request.orderBy],
354+
['page', request.page],
355+
[
356+
'page_size',
357+
request.pageSize ?? this.client.settings.defaultPageSize,
358+
],
359+
),
360+
},
361+
unmarshalListInstanceGroupEventsResponse,
362+
)
363+
364+
/**
365+
* 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.
366+
*
367+
* @param request - The request {@link ListInstanceGroupEventsRequest}
368+
* @returns A Promise of ListInstanceGroupEventsResponse
369+
*/
370+
listInstanceGroupEvents = (
371+
request: Readonly<ListInstanceGroupEventsRequest>,
372+
) =>
373+
enrichForPagination(
374+
'instanceEvents',
375+
this.pageOfListInstanceGroupEvents,
376+
request,
377+
)
378+
}

0 commit comments

Comments
 (0)