latitudesh-typescript-sdk 0.3.7 → 0.3.9

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 (119) hide show
  1. package/README.md +5 -3
  2. package/bin/mcp-server.js +378 -220
  3. package/bin/mcp-server.js.map +16 -13
  4. package/dist/commonjs/funcs/kubernetesClustersListKubernetesAvailableVersions.d.ts +24 -0
  5. package/dist/commonjs/funcs/kubernetesClustersListKubernetesAvailableVersions.d.ts.map +1 -0
  6. package/dist/commonjs/funcs/kubernetesClustersListKubernetesAvailableVersions.js +118 -0
  7. package/dist/commonjs/funcs/kubernetesClustersListKubernetesAvailableVersions.js.map +1 -0
  8. package/dist/commonjs/funcs/kubernetesClustersUpdateKubernetesCluster.d.ts +14 -3
  9. package/dist/commonjs/funcs/kubernetesClustersUpdateKubernetesCluster.d.ts.map +1 -1
  10. package/dist/commonjs/funcs/kubernetesClustersUpdateKubernetesCluster.js +14 -3
  11. package/dist/commonjs/funcs/kubernetesClustersUpdateKubernetesCluster.js.map +1 -1
  12. package/dist/commonjs/lib/config.d.ts +3 -3
  13. package/dist/commonjs/lib/config.js +3 -3
  14. package/dist/commonjs/lib/config.js.map +1 -1
  15. package/dist/commonjs/lib/encodings.d.ts +1 -0
  16. package/dist/commonjs/lib/encodings.d.ts.map +1 -1
  17. package/dist/commonjs/lib/encodings.js +7 -0
  18. package/dist/commonjs/lib/encodings.js.map +1 -1
  19. package/dist/commonjs/mcp-server/mcp-server.js +1 -1
  20. package/dist/commonjs/mcp-server/server.d.ts.map +1 -1
  21. package/dist/commonjs/mcp-server/server.js +3 -1
  22. package/dist/commonjs/mcp-server/server.js.map +1 -1
  23. package/dist/commonjs/mcp-server/tools/kubernetesClustersListKubernetesAvailableVersions.d.ts +3 -0
  24. package/dist/commonjs/mcp-server/tools/kubernetesClustersListKubernetesAvailableVersions.d.ts.map +1 -0
  25. package/dist/commonjs/mcp-server/tools/kubernetesClustersListKubernetesAvailableVersions.js +33 -0
  26. package/dist/commonjs/mcp-server/tools/kubernetesClustersListKubernetesAvailableVersions.js.map +1 -0
  27. package/dist/commonjs/mcp-server/tools/kubernetesClustersUpdateKubernetesCluster.d.ts.map +1 -1
  28. package/dist/commonjs/mcp-server/tools/kubernetesClustersUpdateKubernetesCluster.js +14 -3
  29. package/dist/commonjs/mcp-server/tools/kubernetesClustersUpdateKubernetesCluster.js.map +1 -1
  30. package/dist/commonjs/models/index.d.ts +1 -0
  31. package/dist/commonjs/models/index.d.ts.map +1 -1
  32. package/dist/commonjs/models/index.js +1 -0
  33. package/dist/commonjs/models/index.js.map +1 -1
  34. package/dist/commonjs/models/kubernetesavailableversions.d.ts +41 -0
  35. package/dist/commonjs/models/kubernetesavailableversions.d.ts.map +1 -0
  36. package/dist/commonjs/models/kubernetesavailableversions.js +78 -0
  37. package/dist/commonjs/models/kubernetesavailableversions.js.map +1 -0
  38. package/dist/commonjs/models/kubernetesclusterdata.d.ts +27 -0
  39. package/dist/commonjs/models/kubernetesclusterdata.d.ts.map +1 -1
  40. package/dist/commonjs/models/kubernetesclusterdata.js +22 -1
  41. package/dist/commonjs/models/kubernetesclusterdata.js.map +1 -1
  42. package/dist/commonjs/models/kubernetesclusterupdateresponse.d.ts +9 -3
  43. package/dist/commonjs/models/kubernetesclusterupdateresponse.d.ts.map +1 -1
  44. package/dist/commonjs/models/kubernetesclusterupdateresponse.js +6 -1
  45. package/dist/commonjs/models/kubernetesclusterupdateresponse.js.map +1 -1
  46. package/dist/commonjs/models/updatekubernetescluster.d.ts +9 -4
  47. package/dist/commonjs/models/updatekubernetescluster.d.ts.map +1 -1
  48. package/dist/commonjs/models/updatekubernetescluster.js +4 -0
  49. package/dist/commonjs/models/updatekubernetescluster.js.map +1 -1
  50. package/dist/commonjs/sdk/kubernetesclusters.d.ts +27 -3
  51. package/dist/commonjs/sdk/kubernetesclusters.d.ts.map +1 -1
  52. package/dist/commonjs/sdk/kubernetesclusters.js +30 -3
  53. package/dist/commonjs/sdk/kubernetesclusters.js.map +1 -1
  54. package/dist/esm/funcs/kubernetesClustersListKubernetesAvailableVersions.d.ts +24 -0
  55. package/dist/esm/funcs/kubernetesClustersListKubernetesAvailableVersions.d.ts.map +1 -0
  56. package/dist/esm/funcs/kubernetesClustersListKubernetesAvailableVersions.js +82 -0
  57. package/dist/esm/funcs/kubernetesClustersListKubernetesAvailableVersions.js.map +1 -0
  58. package/dist/esm/funcs/kubernetesClustersUpdateKubernetesCluster.d.ts +14 -3
  59. package/dist/esm/funcs/kubernetesClustersUpdateKubernetesCluster.d.ts.map +1 -1
  60. package/dist/esm/funcs/kubernetesClustersUpdateKubernetesCluster.js +14 -3
  61. package/dist/esm/funcs/kubernetesClustersUpdateKubernetesCluster.js.map +1 -1
  62. package/dist/esm/lib/config.d.ts +3 -3
  63. package/dist/esm/lib/config.js +3 -3
  64. package/dist/esm/lib/config.js.map +1 -1
  65. package/dist/esm/lib/encodings.d.ts +1 -0
  66. package/dist/esm/lib/encodings.d.ts.map +1 -1
  67. package/dist/esm/lib/encodings.js +6 -0
  68. package/dist/esm/lib/encodings.js.map +1 -1
  69. package/dist/esm/mcp-server/mcp-server.js +1 -1
  70. package/dist/esm/mcp-server/server.d.ts.map +1 -1
  71. package/dist/esm/mcp-server/server.js +3 -1
  72. package/dist/esm/mcp-server/server.js.map +1 -1
  73. package/dist/esm/mcp-server/tools/kubernetesClustersListKubernetesAvailableVersions.d.ts +3 -0
  74. package/dist/esm/mcp-server/tools/kubernetesClustersListKubernetesAvailableVersions.d.ts.map +1 -0
  75. package/dist/esm/mcp-server/tools/kubernetesClustersListKubernetesAvailableVersions.js +30 -0
  76. package/dist/esm/mcp-server/tools/kubernetesClustersListKubernetesAvailableVersions.js.map +1 -0
  77. package/dist/esm/mcp-server/tools/kubernetesClustersUpdateKubernetesCluster.d.ts.map +1 -1
  78. package/dist/esm/mcp-server/tools/kubernetesClustersUpdateKubernetesCluster.js +14 -3
  79. package/dist/esm/mcp-server/tools/kubernetesClustersUpdateKubernetesCluster.js.map +1 -1
  80. package/dist/esm/models/index.d.ts +1 -0
  81. package/dist/esm/models/index.d.ts.map +1 -1
  82. package/dist/esm/models/index.js +1 -0
  83. package/dist/esm/models/index.js.map +1 -1
  84. package/dist/esm/models/kubernetesavailableversions.d.ts +41 -0
  85. package/dist/esm/models/kubernetesavailableversions.d.ts.map +1 -0
  86. package/dist/esm/models/kubernetesavailableversions.js +38 -0
  87. package/dist/esm/models/kubernetesavailableversions.js.map +1 -0
  88. package/dist/esm/models/kubernetesclusterdata.d.ts +27 -0
  89. package/dist/esm/models/kubernetesclusterdata.d.ts.map +1 -1
  90. package/dist/esm/models/kubernetesclusterdata.js +21 -0
  91. package/dist/esm/models/kubernetesclusterdata.js.map +1 -1
  92. package/dist/esm/models/kubernetesclusterupdateresponse.d.ts +9 -3
  93. package/dist/esm/models/kubernetesclusterupdateresponse.d.ts.map +1 -1
  94. package/dist/esm/models/kubernetesclusterupdateresponse.js +6 -1
  95. package/dist/esm/models/kubernetesclusterupdateresponse.js.map +1 -1
  96. package/dist/esm/models/updatekubernetescluster.d.ts +9 -4
  97. package/dist/esm/models/updatekubernetescluster.d.ts.map +1 -1
  98. package/dist/esm/models/updatekubernetescluster.js +4 -0
  99. package/dist/esm/models/updatekubernetescluster.js.map +1 -1
  100. package/dist/esm/sdk/kubernetesclusters.d.ts +27 -3
  101. package/dist/esm/sdk/kubernetesclusters.d.ts.map +1 -1
  102. package/dist/esm/sdk/kubernetesclusters.js +30 -3
  103. package/dist/esm/sdk/kubernetesclusters.js.map +1 -1
  104. package/jsr.json +1 -1
  105. package/package.json +1 -1
  106. package/src/funcs/kubernetesClustersListKubernetesAvailableVersions.ts +161 -0
  107. package/src/funcs/kubernetesClustersUpdateKubernetesCluster.ts +14 -3
  108. package/src/lib/config.ts +3 -3
  109. package/src/lib/encodings.ts +9 -0
  110. package/src/mcp-server/mcp-server.ts +1 -1
  111. package/src/mcp-server/server.ts +3 -1
  112. package/src/mcp-server/tools/kubernetesClustersListKubernetesAvailableVersions.ts +39 -0
  113. package/src/mcp-server/tools/kubernetesClustersUpdateKubernetesCluster.ts +14 -3
  114. package/src/models/index.ts +1 -0
  115. package/src/models/kubernetesavailableversions.ts +113 -0
  116. package/src/models/kubernetesclusterdata.ts +41 -0
  117. package/src/models/kubernetesclusterupdateresponse.ts +13 -3
  118. package/src/models/updatekubernetescluster.ts +13 -4
  119. package/src/sdk/kubernetesclusters.ts +36 -3
@@ -14,9 +14,11 @@ export const tool$kubernetesClustersUpdateKubernetesCluster: ToolDefinition<
14
14
  typeof args
15
15
  > = {
16
16
  name: "kubernetes-clusters-update-kubernetes-cluster",
17
- description: `Scale Kubernetes Cluster
17
+ description: `Update Kubernetes Cluster
18
18
 
19
- Scales the worker nodes or control plane nodes of a Kubernetes cluster. The cluster must be in \`Provisioned\` phase to accept updates.
19
+ Updates a Kubernetes cluster by scaling nodes or upgrading the Kubernetes version. The cluster must be in \`Provisioned\` phase to accept updates.
20
+
21
+ ## Scaling Operations
20
22
 
21
23
  Exactly one of \`worker_count\` or \`control_plane_count\` must be provided per request. You cannot scale workers and control plane nodes in the same request.
22
24
 
@@ -26,7 +28,16 @@ When scaling from 0 workers, you must provide a \`worker_plan\` since there is n
26
28
 
27
29
  Control plane scaling has a minimum of 1 node. You cannot scale control plane nodes to zero.
28
30
 
29
- Returns 202 Accepted when a scaling operation is triggered. Poll the GET endpoint to monitor progress. Returns 200 OK if the requested count matches the current count (no-op).
31
+ ## Version Upgrades
32
+
33
+ Provide a \`kubernetes_version\` parameter to upgrade the cluster to a new Kubernetes version. Version upgrades follow these rules:
34
+
35
+ - **No downgrades**: You cannot downgrade to a lower version than currently installed
36
+ - **One minor version at a time**: You can only upgrade one minor version at a time (e.g., from 1.34 to 1.35, not from 1.34 to 1.36)
37
+ - **Mutually exclusive**: Version upgrades cannot be combined with scaling operations in the same request
38
+ - **Available versions only**: The target version must be in the list returned by \`GET /kubernetes_clusters/available_versions\`
39
+
40
+ Returns 202 Accepted when an update operation is triggered. Poll the GET endpoint to monitor progress. Returns 200 OK if no change is needed (no-op).
30
41
  `,
31
42
  args,
32
43
  tool: async (client, args, ctx) => {
@@ -31,6 +31,7 @@ export * from "./firewallserver.js";
31
31
  export * from "./ipaddress.js";
32
32
  export * from "./ipaddresses.js";
33
33
  export * from "./ipmisession.js";
34
+ export * from "./kubernetesavailableversions.js";
34
35
  export * from "./kubernetescluster.js";
35
36
  export * from "./kubernetesclustercreateresponse.js";
36
37
  export * from "./kubernetesclusterdata.js";
@@ -0,0 +1,113 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import * as z from "zod/v3";
6
+ import { safeParse } from "../lib/schemas.js";
7
+ import { Result as SafeParseResult } from "../types/fp.js";
8
+ import { SDKValidationError } from "./errors/sdkvalidationerror.js";
9
+
10
+ export type KubernetesAvailableVersionsData = {
11
+ /**
12
+ * The latest full Kubernetes version string for this minor version (e.g., v1.35.3+rke2r1)
13
+ */
14
+ latest?: string | undefined;
15
+ /**
16
+ * The minor version number (e.g., 1.35)
17
+ */
18
+ minor?: string | undefined;
19
+ };
20
+
21
+ /**
22
+ * Response schema for available Kubernetes versions
23
+ */
24
+ export type KubernetesAvailableVersions = {
25
+ data?: Array<KubernetesAvailableVersionsData> | undefined;
26
+ };
27
+
28
+ /** @internal */
29
+ export const KubernetesAvailableVersionsData$inboundSchema: z.ZodType<
30
+ KubernetesAvailableVersionsData,
31
+ z.ZodTypeDef,
32
+ unknown
33
+ > = z.object({
34
+ latest: z.string().optional(),
35
+ minor: z.string().optional(),
36
+ });
37
+ /** @internal */
38
+ export type KubernetesAvailableVersionsData$Outbound = {
39
+ latest?: string | undefined;
40
+ minor?: string | undefined;
41
+ };
42
+
43
+ /** @internal */
44
+ export const KubernetesAvailableVersionsData$outboundSchema: z.ZodType<
45
+ KubernetesAvailableVersionsData$Outbound,
46
+ z.ZodTypeDef,
47
+ KubernetesAvailableVersionsData
48
+ > = z.object({
49
+ latest: z.string().optional(),
50
+ minor: z.string().optional(),
51
+ });
52
+
53
+ export function kubernetesAvailableVersionsDataToJSON(
54
+ kubernetesAvailableVersionsData: KubernetesAvailableVersionsData,
55
+ ): string {
56
+ return JSON.stringify(
57
+ KubernetesAvailableVersionsData$outboundSchema.parse(
58
+ kubernetesAvailableVersionsData,
59
+ ),
60
+ );
61
+ }
62
+ export function kubernetesAvailableVersionsDataFromJSON(
63
+ jsonString: string,
64
+ ): SafeParseResult<KubernetesAvailableVersionsData, SDKValidationError> {
65
+ return safeParse(
66
+ jsonString,
67
+ (x) => KubernetesAvailableVersionsData$inboundSchema.parse(JSON.parse(x)),
68
+ `Failed to parse 'KubernetesAvailableVersionsData' from JSON`,
69
+ );
70
+ }
71
+
72
+ /** @internal */
73
+ export const KubernetesAvailableVersions$inboundSchema: z.ZodType<
74
+ KubernetesAvailableVersions,
75
+ z.ZodTypeDef,
76
+ unknown
77
+ > = z.object({
78
+ data: z.array(z.lazy(() => KubernetesAvailableVersionsData$inboundSchema))
79
+ .optional(),
80
+ });
81
+ /** @internal */
82
+ export type KubernetesAvailableVersions$Outbound = {
83
+ data?: Array<KubernetesAvailableVersionsData$Outbound> | undefined;
84
+ };
85
+
86
+ /** @internal */
87
+ export const KubernetesAvailableVersions$outboundSchema: z.ZodType<
88
+ KubernetesAvailableVersions$Outbound,
89
+ z.ZodTypeDef,
90
+ KubernetesAvailableVersions
91
+ > = z.object({
92
+ data: z.array(z.lazy(() => KubernetesAvailableVersionsData$outboundSchema))
93
+ .optional(),
94
+ });
95
+
96
+ export function kubernetesAvailableVersionsToJSON(
97
+ kubernetesAvailableVersions: KubernetesAvailableVersions,
98
+ ): string {
99
+ return JSON.stringify(
100
+ KubernetesAvailableVersions$outboundSchema.parse(
101
+ kubernetesAvailableVersions,
102
+ ),
103
+ );
104
+ }
105
+ export function kubernetesAvailableVersionsFromJSON(
106
+ jsonString: string,
107
+ ): SafeParseResult<KubernetesAvailableVersions, SDKValidationError> {
108
+ return safeParse(
109
+ jsonString,
110
+ (x) => KubernetesAvailableVersions$inboundSchema.parse(JSON.parse(x)),
111
+ `Failed to parse 'KubernetesAvailableVersions' from JSON`,
112
+ );
113
+ }
@@ -26,6 +26,20 @@ export type KubernetesClusterDataPhase = ClosedEnum<
26
26
  typeof KubernetesClusterDataPhase
27
27
  >;
28
28
 
29
+ /**
30
+ * The cluster's version status relative to available upgrades
31
+ */
32
+ export const VersionStatus = {
33
+ UpToDate: "up_to_date",
34
+ UpgradeAvailable: "upgrade_available",
35
+ Unsupported: "unsupported",
36
+ Unknown: "unknown",
37
+ } as const;
38
+ /**
39
+ * The cluster's version status relative to available upgrades
40
+ */
41
+ export type VersionStatus = ClosedEnum<typeof VersionStatus>;
42
+
29
43
  /**
30
44
  * Control plane status information
31
45
  */
@@ -230,6 +244,14 @@ export type KubernetesClusterDataAttributes = {
230
244
  * The Kubernetes version running on the cluster
231
245
  */
232
246
  kubernetesVersion?: string | undefined;
247
+ /**
248
+ * The cluster's version status relative to available upgrades
249
+ */
250
+ versionStatus?: VersionStatus | undefined;
251
+ /**
252
+ * The next available Kubernetes version for upgrade. Null if the cluster is already on the latest version, or if version status is unknown or unsupported.
253
+ */
254
+ availableUpgrade?: string | null | undefined;
233
255
  /**
234
256
  * When the cluster was created
235
257
  */
@@ -322,6 +344,15 @@ export const KubernetesClusterDataPhase$outboundSchema: z.ZodNativeEnum<
322
344
  typeof KubernetesClusterDataPhase
323
345
  > = KubernetesClusterDataPhase$inboundSchema;
324
346
 
347
+ /** @internal */
348
+ export const VersionStatus$inboundSchema: z.ZodNativeEnum<
349
+ typeof VersionStatus
350
+ > = z.nativeEnum(VersionStatus);
351
+ /** @internal */
352
+ export const VersionStatus$outboundSchema: z.ZodNativeEnum<
353
+ typeof VersionStatus
354
+ > = VersionStatus$inboundSchema;
355
+
325
356
  /** @internal */
326
357
  export const ControlPlane$inboundSchema: z.ZodType<
327
358
  ControlPlane,
@@ -637,6 +668,8 @@ export const KubernetesClusterDataAttributes$inboundSchema: z.ZodType<
637
668
  location: z.string().optional(),
638
669
  load_balancer_ips: z.array(z.string()).optional(),
639
670
  kubernetes_version: z.string().optional(),
671
+ version_status: VersionStatus$inboundSchema.optional(),
672
+ available_upgrade: z.nullable(z.string()).optional(),
640
673
  created_at: z.string().datetime({ offset: true }).transform(v => new Date(v))
641
674
  .optional(),
642
675
  plan: z.string().optional(),
@@ -666,6 +699,8 @@ export const KubernetesClusterDataAttributes$inboundSchema: z.ZodType<
666
699
  "kubeconfig_url": "kubeconfigUrl",
667
700
  "load_balancer_ips": "loadBalancerIps",
668
701
  "kubernetes_version": "kubernetesVersion",
702
+ "version_status": "versionStatus",
703
+ "available_upgrade": "availableUpgrade",
669
704
  "created_at": "createdAt",
670
705
  "worker_plan": "workerPlan",
671
706
  "control_plane_count": "controlPlaneCount",
@@ -690,6 +725,8 @@ export type KubernetesClusterDataAttributes$Outbound = {
690
725
  location?: string | undefined;
691
726
  load_balancer_ips?: Array<string> | undefined;
692
727
  kubernetes_version?: string | undefined;
728
+ version_status?: string | undefined;
729
+ available_upgrade?: string | null | undefined;
693
730
  created_at?: string | undefined;
694
731
  plan?: string | undefined;
695
732
  worker_plan?: string | null | undefined;
@@ -724,6 +761,8 @@ export const KubernetesClusterDataAttributes$outboundSchema: z.ZodType<
724
761
  location: z.string().optional(),
725
762
  loadBalancerIps: z.array(z.string()).optional(),
726
763
  kubernetesVersion: z.string().optional(),
764
+ versionStatus: VersionStatus$outboundSchema.optional(),
765
+ availableUpgrade: z.nullable(z.string()).optional(),
727
766
  createdAt: z.date().transform(v => v.toISOString()).optional(),
728
767
  plan: z.string().optional(),
729
768
  workerPlan: z.nullable(z.string()).optional(),
@@ -751,6 +790,8 @@ export const KubernetesClusterDataAttributes$outboundSchema: z.ZodType<
751
790
  kubeconfigUrl: "kubeconfig_url",
752
791
  loadBalancerIps: "load_balancer_ips",
753
792
  kubernetesVersion: "kubernetes_version",
793
+ versionStatus: "version_status",
794
+ availableUpgrade: "available_upgrade",
754
795
  createdAt: "created_at",
755
796
  workerPlan: "worker_plan",
756
797
  controlPlaneCount: "control_plane_count",
@@ -17,14 +17,15 @@ export type KubernetesClusterUpdateResponseType = ClosedEnum<
17
17
  >;
18
18
 
19
19
  /**
20
- * The update status. 'scaling' indicates nodes are being added or removed. 'unchanged' indicates the requested count matches the current count.
20
+ * The update status. 'scaling' indicates nodes are being added or removed. 'upgrading' indicates a version upgrade is in progress. 'unchanged' indicates no change was needed.
21
21
  */
22
22
  export const KubernetesClusterUpdateResponseStatus = {
23
23
  Scaling: "scaling",
24
+ Upgrading: "upgrading",
24
25
  Unchanged: "unchanged",
25
26
  } as const;
26
27
  /**
27
- * The update status. 'scaling' indicates nodes are being added or removed. 'unchanged' indicates the requested count matches the current count.
28
+ * The update status. 'scaling' indicates nodes are being added or removed. 'upgrading' indicates a version upgrade is in progress. 'unchanged' indicates no change was needed.
28
29
  */
29
30
  export type KubernetesClusterUpdateResponseStatus = ClosedEnum<
30
31
  typeof KubernetesClusterUpdateResponseStatus
@@ -36,7 +37,7 @@ export type KubernetesClusterUpdateResponseAttributes = {
36
37
  */
37
38
  name?: string | undefined;
38
39
  /**
39
- * The update status. 'scaling' indicates nodes are being added or removed. 'unchanged' indicates the requested count matches the current count.
40
+ * The update status. 'scaling' indicates nodes are being added or removed. 'upgrading' indicates a version upgrade is in progress. 'unchanged' indicates no change was needed.
40
41
  */
41
42
  status?: KubernetesClusterUpdateResponseStatus | undefined;
42
43
  /**
@@ -47,6 +48,10 @@ export type KubernetesClusterUpdateResponseAttributes = {
47
48
  * The requested number of control plane nodes. Present when scaling control plane.
48
49
  */
49
50
  controlPlaneCount?: number | null | undefined;
51
+ /**
52
+ * The target Kubernetes version. Present when upgrading version.
53
+ */
54
+ kubernetesVersion?: string | null | undefined;
50
55
  };
51
56
 
52
57
  export type KubernetesClusterUpdateResponseData = {
@@ -91,10 +96,12 @@ export const KubernetesClusterUpdateResponseAttributes$inboundSchema: z.ZodType<
91
96
  status: KubernetesClusterUpdateResponseStatus$inboundSchema.optional(),
92
97
  worker_count: z.nullable(z.number().int()).optional(),
93
98
  control_plane_count: z.nullable(z.number().int()).optional(),
99
+ kubernetes_version: z.nullable(z.string()).optional(),
94
100
  }).transform((v) => {
95
101
  return remap$(v, {
96
102
  "worker_count": "workerCount",
97
103
  "control_plane_count": "controlPlaneCount",
104
+ "kubernetes_version": "kubernetesVersion",
98
105
  });
99
106
  });
100
107
  /** @internal */
@@ -103,6 +110,7 @@ export type KubernetesClusterUpdateResponseAttributes$Outbound = {
103
110
  status?: string | undefined;
104
111
  worker_count?: number | null | undefined;
105
112
  control_plane_count?: number | null | undefined;
113
+ kubernetes_version?: string | null | undefined;
106
114
  };
107
115
 
108
116
  /** @internal */
@@ -116,10 +124,12 @@ export const KubernetesClusterUpdateResponseAttributes$outboundSchema:
116
124
  status: KubernetesClusterUpdateResponseStatus$outboundSchema.optional(),
117
125
  workerCount: z.nullable(z.number().int()).optional(),
118
126
  controlPlaneCount: z.nullable(z.number().int()).optional(),
127
+ kubernetesVersion: z.nullable(z.string()).optional(),
119
128
  }).transform((v) => {
120
129
  return remap$(v, {
121
130
  workerCount: "worker_count",
122
131
  controlPlaneCount: "control_plane_count",
132
+ kubernetesVersion: "kubernetes_version",
123
133
  });
124
134
  });
125
135
 
@@ -17,27 +17,31 @@ export type UpdateKubernetesClusterType = ClosedEnum<
17
17
  >;
18
18
 
19
19
  /**
20
- * Exactly one of worker_count or control_plane_count must be provided. These parameters are mutually exclusive.
20
+ * Provide one of: worker_count, control_plane_count (for scaling), or kubernetes_version (for upgrades). These are mutually exclusive operations.
21
21
  */
22
22
  export type UpdateKubernetesClusterAttributes = {
23
23
  /**
24
- * Desired number of worker nodes. Must be between 0 and 10. Mutually exclusive with control_plane_count.
24
+ * Desired number of worker nodes. Must be between 0 and 10. Mutually exclusive with control_plane_count and kubernetes_version.
25
25
  */
26
26
  workerCount?: number | undefined;
27
27
  /**
28
- * Desired number of control plane nodes. Minimum 1. Mutually exclusive with worker_count.
28
+ * Desired number of control plane nodes. Minimum 1. Mutually exclusive with worker_count and kubernetes_version.
29
29
  */
30
30
  controlPlaneCount?: number | undefined;
31
31
  /**
32
32
  * Plan slug for worker nodes. Required when scaling from 0 workers. Ignored when scaling an existing deployment.
33
33
  */
34
34
  workerPlan?: string | null | undefined;
35
+ /**
36
+ * Target Kubernetes version for upgrade (e.g., v1.35.0+rke2r1). Mutually exclusive with scaling operations. Must be one minor version higher than current.
37
+ */
38
+ kubernetesVersion?: string | undefined;
35
39
  };
36
40
 
37
41
  export type UpdateKubernetesClusterData = {
38
42
  type: UpdateKubernetesClusterType;
39
43
  /**
40
- * Exactly one of worker_count or control_plane_count must be provided. These parameters are mutually exclusive.
44
+ * Provide one of: worker_count, control_plane_count (for scaling), or kubernetes_version (for upgrades). These are mutually exclusive operations.
41
45
  */
42
46
  attributes: UpdateKubernetesClusterAttributes;
43
47
  };
@@ -64,11 +68,13 @@ export const UpdateKubernetesClusterAttributes$inboundSchema: z.ZodType<
64
68
  worker_count: z.number().int().optional(),
65
69
  control_plane_count: z.number().int().optional(),
66
70
  worker_plan: z.nullable(z.string()).optional(),
71
+ kubernetes_version: z.string().optional(),
67
72
  }).transform((v) => {
68
73
  return remap$(v, {
69
74
  "worker_count": "workerCount",
70
75
  "control_plane_count": "controlPlaneCount",
71
76
  "worker_plan": "workerPlan",
77
+ "kubernetes_version": "kubernetesVersion",
72
78
  });
73
79
  });
74
80
  /** @internal */
@@ -76,6 +82,7 @@ export type UpdateKubernetesClusterAttributes$Outbound = {
76
82
  worker_count?: number | undefined;
77
83
  control_plane_count?: number | undefined;
78
84
  worker_plan?: string | null | undefined;
85
+ kubernetes_version?: string | undefined;
79
86
  };
80
87
 
81
88
  /** @internal */
@@ -87,11 +94,13 @@ export const UpdateKubernetesClusterAttributes$outboundSchema: z.ZodType<
87
94
  workerCount: z.number().int().optional(),
88
95
  controlPlaneCount: z.number().int().optional(),
89
96
  workerPlan: z.nullable(z.string()).optional(),
97
+ kubernetesVersion: z.string().optional(),
90
98
  }).transform((v) => {
91
99
  return remap$(v, {
92
100
  workerCount: "worker_count",
93
101
  controlPlaneCount: "control_plane_count",
94
102
  workerPlan: "worker_plan",
103
+ kubernetesVersion: "kubernetes_version",
95
104
  });
96
105
  });
97
106
 
@@ -6,6 +6,7 @@ import { kubernetesClustersCreateKubernetesCluster } from "../funcs/kubernetesCl
6
6
  import { kubernetesClustersDeleteKubernetesCluster } from "../funcs/kubernetesClustersDeleteKubernetesCluster.js";
7
7
  import { kubernetesClustersGetKubernetesCluster } from "../funcs/kubernetesClustersGetKubernetesCluster.js";
8
8
  import { kubernetesClustersGetKubernetesClusterKubeconfig } from "../funcs/kubernetesClustersGetKubernetesClusterKubeconfig.js";
9
+ import { kubernetesClustersListKubernetesAvailableVersions } from "../funcs/kubernetesClustersListKubernetesAvailableVersions.js";
9
10
  import { kubernetesClustersListKubernetesClusters } from "../funcs/kubernetesClustersListKubernetesClusters.js";
10
11
  import { kubernetesClustersUpdateKubernetesCluster } from "../funcs/kubernetesClustersUpdateKubernetesCluster.js";
11
12
  import { ClientSDK, RequestOptions } from "../lib/sdks.js";
@@ -50,6 +51,27 @@ export class KubernetesClusters extends ClientSDK {
50
51
  ));
51
52
  }
52
53
 
54
+ /**
55
+ * List Available Kubernetes Versions
56
+ *
57
+ * @remarks
58
+ * Returns the list of available Kubernetes versions for cluster creation and upgrades. Versions are sourced from the RKE2 release channels and cached for 24 hours.
59
+ *
60
+ * Each version object includes:
61
+ * - `latest`: The full version string (e.g., `v1.35.3+rke2r1`)
62
+ * - `minor`: The minor version number (e.g., `1.35`)
63
+ *
64
+ * The API returns the latest 5 supported minor versions. When upgrading clusters, you can only upgrade one minor version at a time (e.g., from 1.34 to 1.35).
65
+ */
66
+ async listKubernetesAvailableVersions(
67
+ options?: RequestOptions,
68
+ ): Promise<models.KubernetesAvailableVersions> {
69
+ return unwrapAsync(kubernetesClustersListKubernetesAvailableVersions(
70
+ this,
71
+ options,
72
+ ));
73
+ }
74
+
53
75
  /**
54
76
  * Get a Kubernetes Cluster
55
77
  *
@@ -85,10 +107,12 @@ export class KubernetesClusters extends ClientSDK {
85
107
  }
86
108
 
87
109
  /**
88
- * Scale Kubernetes Cluster
110
+ * Update Kubernetes Cluster
89
111
  *
90
112
  * @remarks
91
- * Scales the worker nodes or control plane nodes of a Kubernetes cluster. The cluster must be in `Provisioned` phase to accept updates.
113
+ * Updates a Kubernetes cluster by scaling nodes or upgrading the Kubernetes version. The cluster must be in `Provisioned` phase to accept updates.
114
+ *
115
+ * ## Scaling Operations
92
116
  *
93
117
  * Exactly one of `worker_count` or `control_plane_count` must be provided per request. You cannot scale workers and control plane nodes in the same request.
94
118
  *
@@ -98,7 +122,16 @@ export class KubernetesClusters extends ClientSDK {
98
122
  *
99
123
  * Control plane scaling has a minimum of 1 node. You cannot scale control plane nodes to zero.
100
124
  *
101
- * Returns 202 Accepted when a scaling operation is triggered. Poll the GET endpoint to monitor progress. Returns 200 OK if the requested count matches the current count (no-op).
125
+ * ## Version Upgrades
126
+ *
127
+ * Provide a `kubernetes_version` parameter to upgrade the cluster to a new Kubernetes version. Version upgrades follow these rules:
128
+ *
129
+ * - **No downgrades**: You cannot downgrade to a lower version than currently installed
130
+ * - **One minor version at a time**: You can only upgrade one minor version at a time (e.g., from 1.34 to 1.35, not from 1.34 to 1.36)
131
+ * - **Mutually exclusive**: Version upgrades cannot be combined with scaling operations in the same request
132
+ * - **Available versions only**: The target version must be in the list returned by `GET /kubernetes_clusters/available_versions`
133
+ *
134
+ * Returns 202 Accepted when an update operation is triggered. Poll the GET endpoint to monitor progress. Returns 200 OK if no change is needed (no-op).
102
135
  */
103
136
  async updateKubernetesCluster(
104
137
  request: operations.UpdateKubernetesClusterRequest,