Skip to content

Commit 3680415

Browse files
authored
feat(k8s): add cluster types compatibility (#749)
1 parent 5bee9e2 commit 3680415

File tree

4 files changed

+64
-0
lines changed

4 files changed

+64
-0
lines changed

packages/clients/src/api/k8s/v1/api.gen.ts

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import {
2424
marshalUpgradePoolRequest,
2525
unmarshalCluster,
2626
unmarshalExternalNode,
27+
unmarshalListClusterAvailableTypesResponse,
2728
unmarshalListClusterAvailableVersionsResponse,
2829
unmarshalListClusterTypesResponse,
2930
unmarshalListClustersResponse,
@@ -47,6 +48,8 @@ import type {
4748
GetNodeRequest,
4849
GetPoolRequest,
4950
GetVersionRequest,
51+
ListClusterAvailableTypesRequest,
52+
ListClusterAvailableTypesResponse,
5053
ListClusterAvailableVersionsRequest,
5154
ListClusterAvailableVersionsResponse,
5255
ListClusterTypesRequest,
@@ -305,6 +308,30 @@ export class API extends ParentAPI {
305308
unmarshalListClusterAvailableVersionsResponse,
306309
)
307310

311+
/**
312+
* List available cluster types for a cluster. List the cluster types that a
313+
* specific Kubernetes cluster is allowed to switch to.
314+
*
315+
* @param request - The request {@link ListClusterAvailableTypesRequest}
316+
* @returns A Promise of ListClusterAvailableTypesResponse
317+
*/
318+
listClusterAvailableTypes = (
319+
request: Readonly<ListClusterAvailableTypesRequest>,
320+
) =>
321+
this.client.fetch<ListClusterAvailableTypesResponse>(
322+
{
323+
method: 'GET',
324+
path: `/k8s/v1/regions/${validatePathParam(
325+
'region',
326+
request.region ?? this.client.settings.defaultRegion,
327+
)}/clusters/${validatePathParam(
328+
'clusterId',
329+
request.clusterId,
330+
)}/available-types`,
331+
},
332+
unmarshalListClusterAvailableTypesResponse,
333+
)
334+
308335
protected _getClusterKubeConfig = (
309336
request: Readonly<GetClusterKubeConfigRequest>,
310337
) =>

packages/clients/src/api/k8s/v1/index.gen.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ export type {
3131
GetPoolRequest,
3232
GetVersionRequest,
3333
Ingress,
34+
ListClusterAvailableTypesRequest,
35+
ListClusterAvailableTypesResponse,
3436
ListClusterAvailableVersionsRequest,
3537
ListClusterAvailableVersionsResponse,
3638
ListClusterTypesRequest,

packages/clients/src/api/k8s/v1/marshalling.gen.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import type {
2323
CreatePoolRequest,
2424
CreatePoolRequestUpgradePolicy,
2525
ExternalNode,
26+
ListClusterAvailableTypesResponse,
2627
ListClusterAvailableVersionsResponse,
2728
ListClusterTypesResponse,
2829
ListClustersResponse,
@@ -279,6 +280,22 @@ export const unmarshalExternalNode = (data: unknown) => {
279280
} as ExternalNode
280281
}
281282

283+
export const unmarshalListClusterAvailableTypesResponse = (data: unknown) => {
284+
if (!isJSONObject(data)) {
285+
throw new TypeError(
286+
`Unmarshalling the type 'ListClusterAvailableTypesResponse' failed as data isn't a dictionary.`,
287+
)
288+
}
289+
290+
return {
291+
clusterTypes: unmarshalArrayOfObject(
292+
data.cluster_types,
293+
unmarshalClusterType,
294+
),
295+
totalCount: data.total_count,
296+
} as ListClusterAvailableTypesResponse
297+
}
298+
282299
export const unmarshalListClusterAvailableVersionsResponse = (
283300
data: unknown,
284301
) => {

packages/clients/src/api/k8s/v1/types.gen.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,14 @@ export interface ExternalNode {
443443
externalIp: string
444444
}
445445

446+
/** List cluster available types response. */
447+
export interface ListClusterAvailableTypesResponse {
448+
/** Available cluster types for the cluster. */
449+
clusterTypes: ClusterType[]
450+
/** Total number of types. */
451+
totalCount: number
452+
}
453+
446454
/** List cluster available versions response. */
447455
export interface ListClusterAvailableVersionsResponse {
448456
/** Available Kubernetes versions for the cluster. */
@@ -943,6 +951,16 @@ export type ListClusterAvailableVersionsRequest = {
943951
clusterId: string
944952
}
945953

954+
export type ListClusterAvailableTypesRequest = {
955+
/**
956+
* Region to target. If none is passed will use default region from the
957+
* config.
958+
*/
959+
region?: Region
960+
/** Cluster ID for which the available Kubernetes types will be listed. */
961+
clusterId: string
962+
}
963+
946964
export type ResetClusterAdminTokenRequest = {
947965
/**
948966
* Region to target. If none is passed will use default region from the

0 commit comments

Comments
 (0)