latitudesh-typescript-sdk 0.3.7 → 0.3.8

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 (108) hide show
  1. package/README.md +5 -3
  2. package/bin/mcp-server.js +377 -219
  3. package/bin/mcp-server.js.map +15 -12
  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 +2 -2
  13. package/dist/commonjs/lib/config.js +2 -2
  14. package/dist/commonjs/mcp-server/mcp-server.js +1 -1
  15. package/dist/commonjs/mcp-server/server.d.ts.map +1 -1
  16. package/dist/commonjs/mcp-server/server.js +3 -1
  17. package/dist/commonjs/mcp-server/server.js.map +1 -1
  18. package/dist/commonjs/mcp-server/tools/kubernetesClustersListKubernetesAvailableVersions.d.ts +3 -0
  19. package/dist/commonjs/mcp-server/tools/kubernetesClustersListKubernetesAvailableVersions.d.ts.map +1 -0
  20. package/dist/commonjs/mcp-server/tools/kubernetesClustersListKubernetesAvailableVersions.js +33 -0
  21. package/dist/commonjs/mcp-server/tools/kubernetesClustersListKubernetesAvailableVersions.js.map +1 -0
  22. package/dist/commonjs/mcp-server/tools/kubernetesClustersUpdateKubernetesCluster.d.ts.map +1 -1
  23. package/dist/commonjs/mcp-server/tools/kubernetesClustersUpdateKubernetesCluster.js +14 -3
  24. package/dist/commonjs/mcp-server/tools/kubernetesClustersUpdateKubernetesCluster.js.map +1 -1
  25. package/dist/commonjs/models/index.d.ts +1 -0
  26. package/dist/commonjs/models/index.d.ts.map +1 -1
  27. package/dist/commonjs/models/index.js +1 -0
  28. package/dist/commonjs/models/index.js.map +1 -1
  29. package/dist/commonjs/models/kubernetesavailableversions.d.ts +41 -0
  30. package/dist/commonjs/models/kubernetesavailableversions.d.ts.map +1 -0
  31. package/dist/commonjs/models/kubernetesavailableversions.js +78 -0
  32. package/dist/commonjs/models/kubernetesavailableversions.js.map +1 -0
  33. package/dist/commonjs/models/kubernetesclusterdata.d.ts +27 -0
  34. package/dist/commonjs/models/kubernetesclusterdata.d.ts.map +1 -1
  35. package/dist/commonjs/models/kubernetesclusterdata.js +22 -1
  36. package/dist/commonjs/models/kubernetesclusterdata.js.map +1 -1
  37. package/dist/commonjs/models/kubernetesclusterupdateresponse.d.ts +9 -3
  38. package/dist/commonjs/models/kubernetesclusterupdateresponse.d.ts.map +1 -1
  39. package/dist/commonjs/models/kubernetesclusterupdateresponse.js +6 -1
  40. package/dist/commonjs/models/kubernetesclusterupdateresponse.js.map +1 -1
  41. package/dist/commonjs/models/updatekubernetescluster.d.ts +9 -4
  42. package/dist/commonjs/models/updatekubernetescluster.d.ts.map +1 -1
  43. package/dist/commonjs/models/updatekubernetescluster.js +4 -0
  44. package/dist/commonjs/models/updatekubernetescluster.js.map +1 -1
  45. package/dist/commonjs/sdk/kubernetesclusters.d.ts +27 -3
  46. package/dist/commonjs/sdk/kubernetesclusters.d.ts.map +1 -1
  47. package/dist/commonjs/sdk/kubernetesclusters.js +30 -3
  48. package/dist/commonjs/sdk/kubernetesclusters.js.map +1 -1
  49. package/dist/esm/funcs/kubernetesClustersListKubernetesAvailableVersions.d.ts +24 -0
  50. package/dist/esm/funcs/kubernetesClustersListKubernetesAvailableVersions.d.ts.map +1 -0
  51. package/dist/esm/funcs/kubernetesClustersListKubernetesAvailableVersions.js +82 -0
  52. package/dist/esm/funcs/kubernetesClustersListKubernetesAvailableVersions.js.map +1 -0
  53. package/dist/esm/funcs/kubernetesClustersUpdateKubernetesCluster.d.ts +14 -3
  54. package/dist/esm/funcs/kubernetesClustersUpdateKubernetesCluster.d.ts.map +1 -1
  55. package/dist/esm/funcs/kubernetesClustersUpdateKubernetesCluster.js +14 -3
  56. package/dist/esm/funcs/kubernetesClustersUpdateKubernetesCluster.js.map +1 -1
  57. package/dist/esm/lib/config.d.ts +2 -2
  58. package/dist/esm/lib/config.js +2 -2
  59. package/dist/esm/mcp-server/mcp-server.js +1 -1
  60. package/dist/esm/mcp-server/server.d.ts.map +1 -1
  61. package/dist/esm/mcp-server/server.js +3 -1
  62. package/dist/esm/mcp-server/server.js.map +1 -1
  63. package/dist/esm/mcp-server/tools/kubernetesClustersListKubernetesAvailableVersions.d.ts +3 -0
  64. package/dist/esm/mcp-server/tools/kubernetesClustersListKubernetesAvailableVersions.d.ts.map +1 -0
  65. package/dist/esm/mcp-server/tools/kubernetesClustersListKubernetesAvailableVersions.js +30 -0
  66. package/dist/esm/mcp-server/tools/kubernetesClustersListKubernetesAvailableVersions.js.map +1 -0
  67. package/dist/esm/mcp-server/tools/kubernetesClustersUpdateKubernetesCluster.d.ts.map +1 -1
  68. package/dist/esm/mcp-server/tools/kubernetesClustersUpdateKubernetesCluster.js +14 -3
  69. package/dist/esm/mcp-server/tools/kubernetesClustersUpdateKubernetesCluster.js.map +1 -1
  70. package/dist/esm/models/index.d.ts +1 -0
  71. package/dist/esm/models/index.d.ts.map +1 -1
  72. package/dist/esm/models/index.js +1 -0
  73. package/dist/esm/models/index.js.map +1 -1
  74. package/dist/esm/models/kubernetesavailableversions.d.ts +41 -0
  75. package/dist/esm/models/kubernetesavailableversions.d.ts.map +1 -0
  76. package/dist/esm/models/kubernetesavailableversions.js +38 -0
  77. package/dist/esm/models/kubernetesavailableversions.js.map +1 -0
  78. package/dist/esm/models/kubernetesclusterdata.d.ts +27 -0
  79. package/dist/esm/models/kubernetesclusterdata.d.ts.map +1 -1
  80. package/dist/esm/models/kubernetesclusterdata.js +21 -0
  81. package/dist/esm/models/kubernetesclusterdata.js.map +1 -1
  82. package/dist/esm/models/kubernetesclusterupdateresponse.d.ts +9 -3
  83. package/dist/esm/models/kubernetesclusterupdateresponse.d.ts.map +1 -1
  84. package/dist/esm/models/kubernetesclusterupdateresponse.js +6 -1
  85. package/dist/esm/models/kubernetesclusterupdateresponse.js.map +1 -1
  86. package/dist/esm/models/updatekubernetescluster.d.ts +9 -4
  87. package/dist/esm/models/updatekubernetescluster.d.ts.map +1 -1
  88. package/dist/esm/models/updatekubernetescluster.js +4 -0
  89. package/dist/esm/models/updatekubernetescluster.js.map +1 -1
  90. package/dist/esm/sdk/kubernetesclusters.d.ts +27 -3
  91. package/dist/esm/sdk/kubernetesclusters.d.ts.map +1 -1
  92. package/dist/esm/sdk/kubernetesclusters.js +30 -3
  93. package/dist/esm/sdk/kubernetesclusters.js.map +1 -1
  94. package/jsr.json +1 -1
  95. package/package.json +3 -3
  96. package/src/funcs/kubernetesClustersListKubernetesAvailableVersions.ts +161 -0
  97. package/src/funcs/kubernetesClustersUpdateKubernetesCluster.ts +14 -3
  98. package/src/lib/config.ts +2 -2
  99. package/src/mcp-server/mcp-server.ts +1 -1
  100. package/src/mcp-server/server.ts +3 -1
  101. package/src/mcp-server/tools/kubernetesClustersListKubernetesAvailableVersions.ts +39 -0
  102. package/src/mcp-server/tools/kubernetesClustersUpdateKubernetesCluster.ts +14 -3
  103. package/src/models/index.ts +1 -0
  104. package/src/models/kubernetesavailableversions.ts +113 -0
  105. package/src/models/kubernetesclusterdata.ts +41 -0
  106. package/src/models/kubernetesclusterupdateresponse.ts +13 -3
  107. package/src/models/updatekubernetescluster.ts +13 -4
  108. package/src/sdk/kubernetesclusters.ts +36 -3
@@ -5,6 +5,7 @@ import { kubernetesClustersCreateKubernetesCluster } from "../funcs/kubernetesCl
5
5
  import { kubernetesClustersDeleteKubernetesCluster } from "../funcs/kubernetesClustersDeleteKubernetesCluster.js";
6
6
  import { kubernetesClustersGetKubernetesCluster } from "../funcs/kubernetesClustersGetKubernetesCluster.js";
7
7
  import { kubernetesClustersGetKubernetesClusterKubeconfig } from "../funcs/kubernetesClustersGetKubernetesClusterKubeconfig.js";
8
+ import { kubernetesClustersListKubernetesAvailableVersions } from "../funcs/kubernetesClustersListKubernetesAvailableVersions.js";
8
9
  import { kubernetesClustersListKubernetesClusters } from "../funcs/kubernetesClustersListKubernetesClusters.js";
9
10
  import { kubernetesClustersUpdateKubernetesCluster } from "../funcs/kubernetesClustersUpdateKubernetesCluster.js";
10
11
  import { ClientSDK } from "../lib/sdks.js";
@@ -30,6 +31,21 @@ export class KubernetesClusters extends ClientSDK {
30
31
  async createKubernetesCluster(request, options) {
31
32
  return unwrapAsync(kubernetesClustersCreateKubernetesCluster(this, request, options));
32
33
  }
34
+ /**
35
+ * List Available Kubernetes Versions
36
+ *
37
+ * @remarks
38
+ * 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.
39
+ *
40
+ * Each version object includes:
41
+ * - `version`: The full version string (e.g., `v1.35.3+rke2r1`)
42
+ * - `minor`: The minor version number (e.g., `1.35`)
43
+ *
44
+ * 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).
45
+ */
46
+ async listKubernetesAvailableVersions(options) {
47
+ return unwrapAsync(kubernetesClustersListKubernetesAvailableVersions(this, options));
48
+ }
33
49
  /**
34
50
  * Get a Kubernetes Cluster
35
51
  *
@@ -49,10 +65,12 @@ export class KubernetesClusters extends ClientSDK {
49
65
  return unwrapAsync(kubernetesClustersDeleteKubernetesCluster(this, request, options));
50
66
  }
51
67
  /**
52
- * Scale Kubernetes Cluster
68
+ * Update Kubernetes Cluster
53
69
  *
54
70
  * @remarks
55
- * Scales the worker nodes or control plane nodes of a Kubernetes cluster. The cluster must be in `Provisioned` phase to accept updates.
71
+ * Updates a Kubernetes cluster by scaling nodes or upgrading the Kubernetes version. The cluster must be in `Provisioned` phase to accept updates.
72
+ *
73
+ * ## Scaling Operations
56
74
  *
57
75
  * 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.
58
76
  *
@@ -62,7 +80,16 @@ export class KubernetesClusters extends ClientSDK {
62
80
  *
63
81
  * Control plane scaling has a minimum of 1 node. You cannot scale control plane nodes to zero.
64
82
  *
65
- * 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).
83
+ * ## Version Upgrades
84
+ *
85
+ * Provide a `kubernetes_version` parameter to upgrade the cluster to a new Kubernetes version. Version upgrades follow these rules:
86
+ *
87
+ * - **No downgrades**: You cannot downgrade to a lower version than currently installed
88
+ * - **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)
89
+ * - **Mutually exclusive**: Version upgrades cannot be combined with scaling operations in the same request
90
+ * - **Available versions only**: The target version must be in the list returned by `GET /kubernetes_clusters/available_versions`
91
+ *
92
+ * 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).
66
93
  */
67
94
  async updateKubernetesCluster(request, options) {
68
95
  return unwrapAsync(kubernetesClustersUpdateKubernetesCluster(this, request, options));
@@ -1 +1 @@
1
- {"version":3,"file":"kubernetesclusters.js","sourceRoot":"","sources":["../../../src/sdk/kubernetesclusters.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,yCAAyC,EAAE,MAAM,uDAAuD,CAAC;AAClH,OAAO,EAAE,yCAAyC,EAAE,MAAM,uDAAuD,CAAC;AAClH,OAAO,EAAE,sCAAsC,EAAE,MAAM,oDAAoD,CAAC;AAC5G,OAAO,EAAE,gDAAgD,EAAE,MAAM,8DAA8D,CAAC;AAChI,OAAO,EAAE,wCAAwC,EAAE,MAAM,sDAAsD,CAAC;AAChH,OAAO,EAAE,yCAAyC,EAAE,MAAM,uDAAuD,CAAC;AAClH,OAAO,EAAE,SAAS,EAAkB,MAAM,gBAAgB,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,OAAO,kBAAmB,SAAQ,SAAS;IAC/C;;;;;OAKG;IACH,KAAK,CAAC,sBAAsB,CAC1B,OAAiD,EACjD,OAAwB;QAExB,OAAO,WAAW,CAAC,wCAAwC,CACzD,IAAI,EACJ,OAAO,EACP,OAAO,CACR,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,uBAAuB,CAC3B,OAAuC,EACvC,OAAwB;QAExB,OAAO,WAAW,CAAC,yCAAyC,CAC1D,IAAI,EACJ,OAAO,EACP,OAAO,CACR,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,oBAAoB,CACxB,OAA+C,EAC/C,OAAwB;QAExB,OAAO,WAAW,CAAC,sCAAsC,CACvD,IAAI,EACJ,OAAO,EACP,OAAO,CACR,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,uBAAuB,CAC3B,OAAkD,EAClD,OAAwB;QAExB,OAAO,WAAW,CAAC,yCAAyC,CAC1D,IAAI,EACJ,OAAO,EACP,OAAO,CACR,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACH,KAAK,CAAC,uBAAuB,CAC3B,OAAkD,EAClD,OAAwB;QAExB,OAAO,WAAW,CAAC,yCAAyC,CAC1D,IAAI,EACJ,OAAO,EACP,OAAO,CACR,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,8BAA8B,CAClC,OAAyD,EACzD,OAAwB;QAExB,OAAO,WAAW,CAAC,gDAAgD,CACjE,IAAI,EACJ,OAAO,EACP,OAAO,CACR,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"kubernetesclusters.js","sourceRoot":"","sources":["../../../src/sdk/kubernetesclusters.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,yCAAyC,EAAE,MAAM,uDAAuD,CAAC;AAClH,OAAO,EAAE,yCAAyC,EAAE,MAAM,uDAAuD,CAAC;AAClH,OAAO,EAAE,sCAAsC,EAAE,MAAM,oDAAoD,CAAC;AAC5G,OAAO,EAAE,gDAAgD,EAAE,MAAM,8DAA8D,CAAC;AAChI,OAAO,EAAE,iDAAiD,EAAE,MAAM,+DAA+D,CAAC;AAClI,OAAO,EAAE,wCAAwC,EAAE,MAAM,sDAAsD,CAAC;AAChH,OAAO,EAAE,yCAAyC,EAAE,MAAM,uDAAuD,CAAC;AAClH,OAAO,EAAE,SAAS,EAAkB,MAAM,gBAAgB,CAAC;AAG3D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,MAAM,OAAO,kBAAmB,SAAQ,SAAS;IAC/C;;;;;OAKG;IACH,KAAK,CAAC,sBAAsB,CAC1B,OAAiD,EACjD,OAAwB;QAExB,OAAO,WAAW,CAAC,wCAAwC,CACzD,IAAI,EACJ,OAAO,EACP,OAAO,CACR,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,uBAAuB,CAC3B,OAAuC,EACvC,OAAwB;QAExB,OAAO,WAAW,CAAC,yCAAyC,CAC1D,IAAI,EACJ,OAAO,EACP,OAAO,CACR,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,+BAA+B,CACnC,OAAwB;QAExB,OAAO,WAAW,CAAC,iDAAiD,CAClE,IAAI,EACJ,OAAO,CACR,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,oBAAoB,CACxB,OAA+C,EAC/C,OAAwB;QAExB,OAAO,WAAW,CAAC,sCAAsC,CACvD,IAAI,EACJ,OAAO,EACP,OAAO,CACR,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,uBAAuB,CAC3B,OAAkD,EAClD,OAAwB;QAExB,OAAO,WAAW,CAAC,yCAAyC,CAC1D,IAAI,EACJ,OAAO,EACP,OAAO,CACR,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,KAAK,CAAC,uBAAuB,CAC3B,OAAkD,EAClD,OAAwB;QAExB,OAAO,WAAW,CAAC,yCAAyC,CAC1D,IAAI,EACJ,OAAO,EACP,OAAO,CACR,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,8BAA8B,CAClC,OAAyD,EACzD,OAAwB;QAExB,OAAO,WAAW,CAAC,gDAAgD,CACjE,IAAI,EACJ,OAAO,EACP,OAAO,CACR,CAAC,CAAC;IACL,CAAC;CACF"}
package/jsr.json CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  {
4
4
  "name": "latitudesh-typescript-sdk",
5
- "version": "0.3.7",
5
+ "version": "0.3.8",
6
6
  "exports": {
7
7
  ".": "./src/index.ts",
8
8
  "./models/errors": "./src/models/errors/index.ts",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "latitudesh-typescript-sdk",
3
- "version": "0.3.7",
3
+ "version": "0.3.8",
4
4
  "author": "Speakeasy",
5
5
  "type": "module",
6
6
  "bin": {
@@ -31,8 +31,8 @@
31
31
  "build:mcp": "bun src/mcp-server/build.mts",
32
32
  "build": "npm run build:mcp && tshy",
33
33
  "prepublishOnly": "npm run build",
34
- "test:coverage": "bun test --coverage tests/integration",
35
- "test:integration": "bun test tests/integration"
34
+ "test:integration": "bun test tests/integration",
35
+ "test:coverage": "bun test --coverage tests/integration"
36
36
  },
37
37
  "peerDependencies": {},
38
38
  "devDependencies": {
@@ -0,0 +1,161 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { LatitudeshCore } from "../core.js";
6
+ import * as M from "../lib/matchers.js";
7
+ import { compactMap } from "../lib/primitives.js";
8
+ import { RequestOptions } from "../lib/sdks.js";
9
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
10
+ import { pathToFunc } from "../lib/url.js";
11
+ import {
12
+ ConnectionError,
13
+ InvalidRequestError,
14
+ RequestAbortedError,
15
+ RequestTimeoutError,
16
+ UnexpectedClientError,
17
+ } from "../models/errors/httpclienterrors.js";
18
+ import * as errors from "../models/errors/index.js";
19
+ import { LatitudeshError } from "../models/errors/latitudesherror.js";
20
+ import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
21
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
22
+ import * as models from "../models/index.js";
23
+ import { APICall, APIPromise } from "../types/async.js";
24
+ import { Result } from "../types/fp.js";
25
+
26
+ /**
27
+ * List Available Kubernetes Versions
28
+ *
29
+ * @remarks
30
+ * 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.
31
+ *
32
+ * Each version object includes:
33
+ * - `version`: The full version string (e.g., `v1.35.3+rke2r1`)
34
+ * - `minor`: The minor version number (e.g., `1.35`)
35
+ *
36
+ * 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).
37
+ */
38
+ export function kubernetesClustersListKubernetesAvailableVersions(
39
+ client: LatitudeshCore,
40
+ options?: RequestOptions,
41
+ ): APIPromise<
42
+ Result<
43
+ models.KubernetesAvailableVersions,
44
+ | errors.ErrorObject
45
+ | LatitudeshError
46
+ | ResponseValidationError
47
+ | ConnectionError
48
+ | RequestAbortedError
49
+ | RequestTimeoutError
50
+ | InvalidRequestError
51
+ | UnexpectedClientError
52
+ | SDKValidationError
53
+ >
54
+ > {
55
+ return new APIPromise($do(
56
+ client,
57
+ options,
58
+ ));
59
+ }
60
+
61
+ async function $do(
62
+ client: LatitudeshCore,
63
+ options?: RequestOptions,
64
+ ): Promise<
65
+ [
66
+ Result<
67
+ models.KubernetesAvailableVersions,
68
+ | errors.ErrorObject
69
+ | LatitudeshError
70
+ | ResponseValidationError
71
+ | ConnectionError
72
+ | RequestAbortedError
73
+ | RequestTimeoutError
74
+ | InvalidRequestError
75
+ | UnexpectedClientError
76
+ | SDKValidationError
77
+ >,
78
+ APICall,
79
+ ]
80
+ > {
81
+ const path = pathToFunc("/kubernetes_clusters/available_versions")();
82
+
83
+ const headers = new Headers(compactMap({
84
+ Accept: "application/vnd.api+json",
85
+ }));
86
+
87
+ const secConfig = await extractSecurity(client._options.bearer);
88
+ const securityInput = secConfig == null ? {} : { bearer: secConfig };
89
+ const requestSecurity = resolveGlobalSecurity(securityInput);
90
+
91
+ const context = {
92
+ options: client._options,
93
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
94
+ operationID: "list-kubernetes-available-versions",
95
+ oAuth2Scopes: null,
96
+
97
+ resolvedSecurity: requestSecurity,
98
+
99
+ securitySource: client._options.bearer,
100
+ retryConfig: options?.retries
101
+ || client._options.retryConfig
102
+ || { strategy: "none" },
103
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
104
+ };
105
+
106
+ const requestRes = client._createRequest(context, {
107
+ security: requestSecurity,
108
+ method: "GET",
109
+ baseURL: options?.serverURL,
110
+ path: path,
111
+ headers: headers,
112
+ userAgent: client._options.userAgent,
113
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
114
+ }, options);
115
+ if (!requestRes.ok) {
116
+ return [requestRes, { status: "invalid" }];
117
+ }
118
+ const req = requestRes.value;
119
+
120
+ const doResult = await client._do(req, {
121
+ context,
122
+ errorCodes: ["401", "403", "4XX", "5XX"],
123
+ retryConfig: context.retryConfig,
124
+ retryCodes: context.retryCodes,
125
+ });
126
+ if (!doResult.ok) {
127
+ return [doResult, { status: "request-error", request: req }];
128
+ }
129
+ const response = doResult.value;
130
+
131
+ const responseFields = {
132
+ HttpMeta: { Response: response, Request: req },
133
+ };
134
+
135
+ const [result] = await M.match<
136
+ models.KubernetesAvailableVersions,
137
+ | errors.ErrorObject
138
+ | LatitudeshError
139
+ | ResponseValidationError
140
+ | ConnectionError
141
+ | RequestAbortedError
142
+ | RequestTimeoutError
143
+ | InvalidRequestError
144
+ | UnexpectedClientError
145
+ | SDKValidationError
146
+ >(
147
+ M.json(200, models.KubernetesAvailableVersions$inboundSchema, {
148
+ ctype: "application/vnd.api+json",
149
+ }),
150
+ M.jsonErr([401, 403], errors.ErrorObject$inboundSchema, {
151
+ ctype: "application/vnd.api+json",
152
+ }),
153
+ M.fail("4XX"),
154
+ M.fail("5XX"),
155
+ )(response, req, { extraFields: responseFields });
156
+ if (!result.ok) {
157
+ return [result, { status: "complete", request: req, response }];
158
+ }
159
+
160
+ return [result, { status: "complete", request: req, response }];
161
+ }
@@ -27,10 +27,12 @@ import { APICall, APIPromise } from "../types/async.js";
27
27
  import { Result } from "../types/fp.js";
28
28
 
29
29
  /**
30
- * Scale Kubernetes Cluster
30
+ * Update Kubernetes Cluster
31
31
  *
32
32
  * @remarks
33
- * Scales the worker nodes or control plane nodes of a Kubernetes cluster. The cluster must be in `Provisioned` phase to accept updates.
33
+ * Updates a Kubernetes cluster by scaling nodes or upgrading the Kubernetes version. The cluster must be in `Provisioned` phase to accept updates.
34
+ *
35
+ * ## Scaling Operations
34
36
  *
35
37
  * 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.
36
38
  *
@@ -40,7 +42,16 @@ import { Result } from "../types/fp.js";
40
42
  *
41
43
  * Control plane scaling has a minimum of 1 node. You cannot scale control plane nodes to zero.
42
44
  *
43
- * 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).
45
+ * ## Version Upgrades
46
+ *
47
+ * Provide a `kubernetes_version` parameter to upgrade the cluster to a new Kubernetes version. Version upgrades follow these rules:
48
+ *
49
+ * - **No downgrades**: You cannot downgrade to a lower version than currently installed
50
+ * - **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)
51
+ * - **Mutually exclusive**: Version upgrades cannot be combined with scaling operations in the same request
52
+ * - **Available versions only**: The target version must be in the list returned by `GET /kubernetes_clusters/available_versions`
53
+ *
54
+ * 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).
44
55
  */
45
56
  export function kubernetesClustersUpdateKubernetesCluster(
46
57
  client: LatitudeshCore,
package/src/lib/config.ts CHANGED
@@ -74,8 +74,8 @@ export function serverURLFromOptions(options: SDKOptions): URL | null {
74
74
  export const SDK_METADATA = {
75
75
  language: "typescript",
76
76
  openapiDocVersion: "2023-06-01",
77
- sdkVersion: "0.3.7",
77
+ sdkVersion: "0.3.8",
78
78
  genVersion: "2.879.6",
79
79
  userAgent:
80
- "speakeasy-sdk/typescript 0.3.7 2.879.6 2023-06-01 latitudesh-typescript-sdk",
80
+ "speakeasy-sdk/typescript 0.3.8 2.879.6 2023-06-01 latitudesh-typescript-sdk",
81
81
  } as const;
@@ -19,7 +19,7 @@ const routes = buildRouteMap({
19
19
  export const app = buildApplication(routes, {
20
20
  name: "mcp",
21
21
  versionInfo: {
22
- currentVersion: "0.3.7",
22
+ currentVersion: "0.3.8",
23
23
  },
24
24
  });
25
25
 
@@ -40,6 +40,7 @@ import { tool$kubernetesClustersCreateKubernetesCluster } from "./tools/kubernet
40
40
  import { tool$kubernetesClustersDeleteKubernetesCluster } from "./tools/kubernetesClustersDeleteKubernetesCluster.js";
41
41
  import { tool$kubernetesClustersGetKubernetesCluster } from "./tools/kubernetesClustersGetKubernetesCluster.js";
42
42
  import { tool$kubernetesClustersGetKubernetesClusterKubeconfig } from "./tools/kubernetesClustersGetKubernetesClusterKubeconfig.js";
43
+ import { tool$kubernetesClustersListKubernetesAvailableVersions } from "./tools/kubernetesClustersListKubernetesAvailableVersions.js";
43
44
  import { tool$kubernetesClustersListKubernetesClusters } from "./tools/kubernetesClustersListKubernetesClusters.js";
44
45
  import { tool$kubernetesClustersUpdateKubernetesCluster } from "./tools/kubernetesClustersUpdateKubernetesCluster.js";
45
46
  import { tool$operatingSystemsListPlans } from "./tools/operatingSystemsListPlans.js";
@@ -153,7 +154,7 @@ export function createMCPServer(deps: {
153
154
  }) {
154
155
  const server = new McpServer({
155
156
  name: "Latitudesh",
156
- version: "0.3.7",
157
+ version: "0.3.8",
157
158
  });
158
159
 
159
160
  const client = new LatitudeshCore({
@@ -214,6 +215,7 @@ export function createMCPServer(deps: {
214
215
  tool(tool$operatingSystemsListPlans);
215
216
  tool(tool$kubernetesClustersListKubernetesClusters);
216
217
  tool(tool$kubernetesClustersCreateKubernetesCluster);
218
+ tool(tool$kubernetesClustersListKubernetesAvailableVersions);
217
219
  tool(tool$kubernetesClustersGetKubernetesCluster);
218
220
  tool(tool$kubernetesClustersDeleteKubernetesCluster);
219
221
  tool(tool$kubernetesClustersUpdateKubernetesCluster);
@@ -0,0 +1,39 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { kubernetesClustersListKubernetesAvailableVersions } from "../../funcs/kubernetesClustersListKubernetesAvailableVersions.js";
6
+ import { formatResult, ToolDefinition } from "../tools.js";
7
+
8
+ export const tool$kubernetesClustersListKubernetesAvailableVersions:
9
+ ToolDefinition = {
10
+ name: "kubernetes-clusters-list-kubernetes-available-versions",
11
+ description: `List Available Kubernetes Versions
12
+
13
+ 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.
14
+
15
+ Each version object includes:
16
+ - \`version\`: The full version string (e.g., \`v1.35.3+rke2r1\`)
17
+ - \`minor\`: The minor version number (e.g., \`1.35\`)
18
+
19
+ 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).
20
+ `,
21
+ tool: async (client, ctx) => {
22
+ const [result, apiCall] =
23
+ await kubernetesClustersListKubernetesAvailableVersions(
24
+ client,
25
+ { fetchOptions: { signal: ctx.signal } },
26
+ ).$inspect();
27
+
28
+ if (!result.ok) {
29
+ return {
30
+ content: [{ type: "text", text: result.error.message }],
31
+ isError: true,
32
+ };
33
+ }
34
+
35
+ const value = result.value;
36
+
37
+ return formatResult(value, apiCall);
38
+ },
39
+ };
@@ -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 full Kubernetes version string (e.g., v1.35.3+rke2r1)
13
+ */
14
+ version?: 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
+ version: z.string().optional(),
35
+ minor: z.string().optional(),
36
+ });
37
+ /** @internal */
38
+ export type KubernetesAvailableVersionsData$Outbound = {
39
+ version?: 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
+ version: 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",