@nosana/api 2.11.2 → 2.13.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.
Files changed (222) hide show
  1. package/README.md +37 -0
  2. package/dist/client/createClient.d.ts +5 -3
  3. package/dist/client/createClient.d.ts.map +1 -1
  4. package/dist/client/createClient.js +4 -2
  5. package/dist/client/createClient.js.map +1 -1
  6. package/dist/client/deployment-manager/schema.d.ts +268 -41
  7. package/dist/client/deployment-manager/schema.d.ts.map +1 -1
  8. package/dist/client/index.d.ts +1 -0
  9. package/dist/client/index.d.ts.map +1 -1
  10. package/dist/client/index.js +1 -0
  11. package/dist/client/index.js.map +1 -1
  12. package/dist/client/node/index.d.ts +23 -0
  13. package/dist/client/node/index.d.ts.map +1 -0
  14. package/dist/client/node/index.js +24 -0
  15. package/dist/client/node/index.js.map +1 -0
  16. package/dist/defaults/index.d.ts.map +1 -1
  17. package/dist/defaults/index.js +3 -0
  18. package/dist/defaults/index.js.map +1 -1
  19. package/dist/index.d.ts +32 -8
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +26 -7
  22. package/dist/index.js.map +1 -1
  23. package/dist/routes/auth/index.d.ts.map +1 -1
  24. package/dist/routes/auth/index.js +12 -0
  25. package/dist/routes/auth/index.js.map +1 -1
  26. package/dist/routes/auth/types.d.ts +8 -0
  27. package/dist/routes/auth/types.d.ts.map +1 -1
  28. package/dist/routes/deployments/deployment/actions/deploymentAddSshKeys.d.ts +9 -0
  29. package/dist/routes/deployments/deployment/actions/deploymentAddSshKeys.d.ts.map +1 -0
  30. package/dist/routes/deployments/deployment/actions/deploymentAddSshKeys.js +17 -0
  31. package/dist/routes/deployments/deployment/actions/deploymentAddSshKeys.js.map +1 -0
  32. package/dist/routes/deployments/deployment/actions/deploymentDuplicate.d.ts +17 -0
  33. package/dist/routes/deployments/deployment/actions/deploymentDuplicate.d.ts.map +1 -0
  34. package/dist/routes/deployments/deployment/actions/deploymentDuplicate.js +22 -0
  35. package/dist/routes/deployments/deployment/actions/deploymentDuplicate.js.map +1 -0
  36. package/dist/routes/deployments/deployment/actions/deploymentGetSshKeys.d.ts +7 -0
  37. package/dist/routes/deployments/deployment/actions/deploymentGetSshKeys.d.ts.map +1 -0
  38. package/dist/routes/deployments/deployment/actions/deploymentGetSshKeys.js +14 -0
  39. package/dist/routes/deployments/deployment/actions/deploymentGetSshKeys.js.map +1 -0
  40. package/dist/routes/deployments/deployment/actions/deploymentRemoveSshKeys.d.ts +9 -0
  41. package/dist/routes/deployments/deployment/actions/deploymentRemoveSshKeys.d.ts.map +1 -0
  42. package/dist/routes/deployments/deployment/actions/deploymentRemoveSshKeys.js +17 -0
  43. package/dist/routes/deployments/deployment/actions/deploymentRemoveSshKeys.js.map +1 -0
  44. package/dist/routes/deployments/deployment/actions/deploymentStream.d.ts.map +1 -1
  45. package/dist/routes/deployments/deployment/actions/deploymentStream.js +10 -30
  46. package/dist/routes/deployments/deployment/actions/deploymentStream.js.map +1 -1
  47. package/dist/routes/deployments/deployment/actions/deploymentUpdateMarket.d.ts +13 -0
  48. package/dist/routes/deployments/deployment/actions/deploymentUpdateMarket.d.ts.map +1 -0
  49. package/dist/routes/deployments/deployment/actions/deploymentUpdateMarket.js +24 -0
  50. package/dist/routes/deployments/deployment/actions/deploymentUpdateMarket.js.map +1 -0
  51. package/dist/routes/deployments/deployment/actions/index.d.ts +5 -0
  52. package/dist/routes/deployments/deployment/actions/index.d.ts.map +1 -1
  53. package/dist/routes/deployments/deployment/actions/index.js +5 -0
  54. package/dist/routes/deployments/deployment/actions/index.js.map +1 -1
  55. package/dist/routes/deployments/deployment/createDeployment.d.ts.map +1 -1
  56. package/dist/routes/deployments/deployment/createDeployment.js +95 -12
  57. package/dist/routes/deployments/deployment/createDeployment.js.map +1 -1
  58. package/dist/routes/deployments/types.d.ts +51 -11
  59. package/dist/routes/deployments/types.d.ts.map +1 -1
  60. package/dist/routes/index.d.ts +1 -0
  61. package/dist/routes/index.d.ts.map +1 -1
  62. package/dist/routes/index.js +1 -0
  63. package/dist/routes/index.js.map +1 -1
  64. package/dist/routes/jobs/index.d.ts +8 -2
  65. package/dist/routes/jobs/index.d.ts.map +1 -1
  66. package/dist/routes/jobs/index.js +28 -14
  67. package/dist/routes/jobs/index.js.map +1 -1
  68. package/dist/routes/jobs/types.d.ts +16 -1
  69. package/dist/routes/jobs/types.d.ts.map +1 -1
  70. package/dist/routes/node/__tests__/fixtures.d.ts +30 -0
  71. package/dist/routes/node/__tests__/fixtures.d.ts.map +1 -0
  72. package/dist/routes/node/__tests__/fixtures.js +38 -0
  73. package/dist/routes/node/__tests__/fixtures.js.map +1 -0
  74. package/dist/routes/node/actions/authorization.d.ts +4 -0
  75. package/dist/routes/node/actions/authorization.d.ts.map +1 -0
  76. package/dist/routes/node/actions/authorization.js +9 -0
  77. package/dist/routes/node/actions/authorization.js.map +1 -0
  78. package/dist/routes/node/actions/nodeInfo.d.ts +4 -0
  79. package/dist/routes/node/actions/nodeInfo.d.ts.map +1 -0
  80. package/dist/routes/node/actions/nodeInfo.js +9 -0
  81. package/dist/routes/node/actions/nodeInfo.js.map +1 -0
  82. package/dist/routes/node/actions/nodeJob/index.d.ts +14 -0
  83. package/dist/routes/node/actions/nodeJob/index.d.ts.map +1 -0
  84. package/dist/routes/node/actions/nodeJob/index.js +14 -0
  85. package/dist/routes/node/actions/nodeJob/index.js.map +1 -0
  86. package/dist/routes/node/actions/nodeJob/nodeJobDefinition.d.ts +4 -0
  87. package/dist/routes/node/actions/nodeJob/nodeJobDefinition.d.ts.map +1 -0
  88. package/dist/routes/node/actions/nodeJob/nodeJobDefinition.js +9 -0
  89. package/dist/routes/node/actions/nodeJob/nodeJobDefinition.js.map +1 -0
  90. package/dist/routes/node/actions/nodeJob/nodeJobEndpoints.d.ts +4 -0
  91. package/dist/routes/node/actions/nodeJob/nodeJobEndpoints.d.ts.map +1 -0
  92. package/dist/routes/node/actions/nodeJob/nodeJobEndpoints.js +9 -0
  93. package/dist/routes/node/actions/nodeJob/nodeJobEndpoints.js.map +1 -0
  94. package/dist/routes/node/actions/nodeJob/nodeJobGroup.d.ts +4 -0
  95. package/dist/routes/node/actions/nodeJob/nodeJobGroup.d.ts.map +1 -0
  96. package/dist/routes/node/actions/nodeJob/nodeJobGroup.js +11 -0
  97. package/dist/routes/node/actions/nodeJob/nodeJobGroup.js.map +1 -0
  98. package/dist/routes/node/actions/nodeJob/nodeJobOperation.d.ts +3 -0
  99. package/dist/routes/node/actions/nodeJob/nodeJobOperation.d.ts.map +1 -0
  100. package/dist/routes/node/actions/nodeJob/nodeJobOperation.js +9 -0
  101. package/dist/routes/node/actions/nodeJob/nodeJobOperation.js.map +1 -0
  102. package/dist/routes/node/actions/nodeJob/nodeJobOperations.d.ts +4 -0
  103. package/dist/routes/node/actions/nodeJob/nodeJobOperations.d.ts.map +1 -0
  104. package/dist/routes/node/actions/nodeJob/nodeJobOperations.js +9 -0
  105. package/dist/routes/node/actions/nodeJob/nodeJobOperations.js.map +1 -0
  106. package/dist/routes/node/actions/nodeJob/nodeJobResults.d.ts +4 -0
  107. package/dist/routes/node/actions/nodeJob/nodeJobResults.d.ts.map +1 -0
  108. package/dist/routes/node/actions/nodeJob/nodeJobResults.js +9 -0
  109. package/dist/routes/node/actions/nodeJob/nodeJobResults.js.map +1 -0
  110. package/dist/routes/node/actions/nodeJob/nodeJobStats.d.ts +4 -0
  111. package/dist/routes/node/actions/nodeJob/nodeJobStats.d.ts.map +1 -0
  112. package/dist/routes/node/actions/nodeJob/nodeJobStats.js +9 -0
  113. package/dist/routes/node/actions/nodeJob/nodeJobStats.js.map +1 -0
  114. package/dist/routes/node/actions/nodeJob/restartNodeJobGroup.d.ts +3 -0
  115. package/dist/routes/node/actions/nodeJob/restartNodeJobGroup.d.ts.map +1 -0
  116. package/dist/routes/node/actions/nodeJob/restartNodeJobGroup.js +10 -0
  117. package/dist/routes/node/actions/nodeJob/restartNodeJobGroup.js.map +1 -0
  118. package/dist/routes/node/actions/nodeJob/restartNodeJobOperation.d.ts +3 -0
  119. package/dist/routes/node/actions/nodeJob/restartNodeJobOperation.d.ts.map +1 -0
  120. package/dist/routes/node/actions/nodeJob/restartNodeJobOperation.js +10 -0
  121. package/dist/routes/node/actions/nodeJob/restartNodeJobOperation.js.map +1 -0
  122. package/dist/routes/node/actions/nodeJob/setNodeJobDefinition.d.ts +4 -0
  123. package/dist/routes/node/actions/nodeJob/setNodeJobDefinition.d.ts.map +1 -0
  124. package/dist/routes/node/actions/nodeJob/setNodeJobDefinition.js +12 -0
  125. package/dist/routes/node/actions/nodeJob/setNodeJobDefinition.js.map +1 -0
  126. package/dist/routes/node/actions/nodeJob/stopNodeJob.d.ts +3 -0
  127. package/dist/routes/node/actions/nodeJob/stopNodeJob.d.ts.map +1 -0
  128. package/dist/routes/node/actions/nodeJob/stopNodeJob.js +11 -0
  129. package/dist/routes/node/actions/nodeJob/stopNodeJob.js.map +1 -0
  130. package/dist/routes/node/actions/nodeJob/stopNodeJobGroup.d.ts +3 -0
  131. package/dist/routes/node/actions/nodeJob/stopNodeJobGroup.d.ts.map +1 -0
  132. package/dist/routes/node/actions/nodeJob/stopNodeJobGroup.js +10 -0
  133. package/dist/routes/node/actions/nodeJob/stopNodeJobGroup.js.map +1 -0
  134. package/dist/routes/node/actions/nodeJob/stopNodeJobOperation.d.ts +3 -0
  135. package/dist/routes/node/actions/nodeJob/stopNodeJobOperation.d.ts.map +1 -0
  136. package/dist/routes/node/actions/nodeJob/stopNodeJobOperation.js +10 -0
  137. package/dist/routes/node/actions/nodeJob/stopNodeJobOperation.js.map +1 -0
  138. package/dist/routes/node/actions/nodeJobSsh/index.d.ts +4 -0
  139. package/dist/routes/node/actions/nodeJobSsh/index.d.ts.map +1 -0
  140. package/dist/routes/node/actions/nodeJobSsh/index.js +4 -0
  141. package/dist/routes/node/actions/nodeJobSsh/index.js.map +1 -0
  142. package/dist/routes/node/actions/nodeJobSsh/nodeJobSshAdd.d.ts +5 -0
  143. package/dist/routes/node/actions/nodeJobSsh/nodeJobSshAdd.d.ts.map +1 -0
  144. package/dist/routes/node/actions/nodeJobSsh/nodeJobSshAdd.js +25 -0
  145. package/dist/routes/node/actions/nodeJobSsh/nodeJobSshAdd.js.map +1 -0
  146. package/dist/routes/node/actions/nodeJobSsh/nodeJobSshKeys.d.ts +4 -0
  147. package/dist/routes/node/actions/nodeJobSsh/nodeJobSshKeys.d.ts.map +1 -0
  148. package/dist/routes/node/actions/nodeJobSsh/nodeJobSshKeys.js +12 -0
  149. package/dist/routes/node/actions/nodeJobSsh/nodeJobSshKeys.js.map +1 -0
  150. package/dist/routes/node/actions/nodeJobSsh/nodeJobSshRemove.d.ts +4 -0
  151. package/dist/routes/node/actions/nodeJobSsh/nodeJobSshRemove.d.ts.map +1 -0
  152. package/dist/routes/node/actions/nodeJobSsh/nodeJobSshRemove.js +14 -0
  153. package/dist/routes/node/actions/nodeJobSsh/nodeJobSshRemove.js.map +1 -0
  154. package/dist/routes/node/actions/nodeJobStreams/index.d.ts +3 -0
  155. package/dist/routes/node/actions/nodeJobStreams/index.d.ts.map +1 -0
  156. package/dist/routes/node/actions/nodeJobStreams/index.js +3 -0
  157. package/dist/routes/node/actions/nodeJobStreams/index.js.map +1 -0
  158. package/dist/routes/node/actions/nodeJobStreams/nodeJobInfoStream.d.ts +4 -0
  159. package/dist/routes/node/actions/nodeJobStreams/nodeJobInfoStream.d.ts.map +1 -0
  160. package/dist/routes/node/actions/nodeJobStreams/nodeJobInfoStream.js +5 -0
  161. package/dist/routes/node/actions/nodeJobStreams/nodeJobInfoStream.js.map +1 -0
  162. package/dist/routes/node/actions/nodeJobStreams/nodeJobStatsStream.d.ts +4 -0
  163. package/dist/routes/node/actions/nodeJobStreams/nodeJobStatsStream.d.ts.map +1 -0
  164. package/dist/routes/node/actions/nodeJobStreams/nodeJobStatsStream.js +6 -0
  165. package/dist/routes/node/actions/nodeJobStreams/nodeJobStatsStream.js.map +1 -0
  166. package/dist/routes/node/actions/nodeJobStreams/nodeStream.d.ts +5 -0
  167. package/dist/routes/node/actions/nodeJobStreams/nodeStream.d.ts.map +1 -0
  168. package/dist/routes/node/actions/nodeJobStreams/nodeStream.js +10 -0
  169. package/dist/routes/node/actions/nodeJobStreams/nodeStream.js.map +1 -0
  170. package/dist/routes/node/actions/nodeSocket/index.d.ts +4 -0
  171. package/dist/routes/node/actions/nodeSocket/index.d.ts.map +1 -0
  172. package/dist/routes/node/actions/nodeSocket/index.js +4 -0
  173. package/dist/routes/node/actions/nodeSocket/index.js.map +1 -0
  174. package/dist/routes/node/actions/nodeSocket/nodeJobLogs.d.ts +3 -0
  175. package/dist/routes/node/actions/nodeSocket/nodeJobLogs.d.ts.map +1 -0
  176. package/dist/routes/node/actions/nodeSocket/nodeJobLogs.js +10 -0
  177. package/dist/routes/node/actions/nodeSocket/nodeJobLogs.js.map +1 -0
  178. package/dist/routes/node/actions/nodeSocket/nodeJobStatus.d.ts +3 -0
  179. package/dist/routes/node/actions/nodeSocket/nodeJobStatus.d.ts.map +1 -0
  180. package/dist/routes/node/actions/nodeSocket/nodeJobStatus.js +5 -0
  181. package/dist/routes/node/actions/nodeSocket/nodeJobStatus.js.map +1 -0
  182. package/dist/routes/node/actions/nodeSocket/socket.d.ts +19 -0
  183. package/dist/routes/node/actions/nodeSocket/socket.d.ts.map +1 -0
  184. package/dist/routes/node/actions/nodeSocket/socket.js +38 -0
  185. package/dist/routes/node/actions/nodeSocket/socket.js.map +1 -0
  186. package/dist/routes/node/actions/terminal/grant.d.ts +21 -0
  187. package/dist/routes/node/actions/terminal/grant.d.ts.map +1 -0
  188. package/dist/routes/node/actions/terminal/grant.js +28 -0
  189. package/dist/routes/node/actions/terminal/grant.js.map +1 -0
  190. package/dist/routes/node/actions/terminal/openTerminal.d.ts +4 -0
  191. package/dist/routes/node/actions/terminal/openTerminal.d.ts.map +1 -0
  192. package/dist/routes/node/actions/terminal/openTerminal.js +22 -0
  193. package/dist/routes/node/actions/terminal/openTerminal.js.map +1 -0
  194. package/dist/routes/node/actions/terminal/session.d.ts +7 -0
  195. package/dist/routes/node/actions/terminal/session.d.ts.map +1 -0
  196. package/dist/routes/node/actions/terminal/session.js +133 -0
  197. package/dist/routes/node/actions/terminal/session.js.map +1 -0
  198. package/dist/routes/node/createNodeJob.d.ts +3 -0
  199. package/dist/routes/node/createNodeJob.d.ts.map +1 -0
  200. package/dist/routes/node/createNodeJob.js +39 -0
  201. package/dist/routes/node/createNodeJob.js.map +1 -0
  202. package/dist/routes/node/index.d.ts +8 -0
  203. package/dist/routes/node/index.d.ts.map +1 -0
  204. package/dist/routes/node/index.js +21 -0
  205. package/dist/routes/node/index.js.map +1 -0
  206. package/dist/routes/node/types.d.ts +148 -0
  207. package/dist/routes/node/types.d.ts.map +1 -0
  208. package/dist/routes/node/types.js +2 -0
  209. package/dist/routes/node/types.js.map +1 -0
  210. package/dist/types.d.ts +31 -2
  211. package/dist/types.d.ts.map +1 -1
  212. package/dist/types.js +2 -1
  213. package/dist/types.js.map +1 -1
  214. package/dist/utils/eventStream.d.ts +15 -0
  215. package/dist/utils/eventStream.d.ts.map +1 -0
  216. package/dist/utils/eventStream.js +36 -0
  217. package/dist/utils/eventStream.js.map +1 -0
  218. package/dist/utils/json.d.ts +3 -0
  219. package/dist/utils/json.d.ts.map +1 -0
  220. package/dist/utils/json.js +10 -0
  221. package/dist/utils/json.js.map +1 -0
  222. package/package.json +7 -3
package/README.md CHANGED
@@ -148,7 +148,12 @@ await vault.topup({ NOS: 100 });
148
148
  | `updateTimeout` | `timeout: number` | `Promise<void>` |
149
149
  | `updateActiveRevision` | `active_revision: number` | `Promise<void>` |
150
150
  | `updateSchedule` | `schedule: string` | `Promise<void>` |
151
+ | `updateMarket` | `market: string` | `Promise<void>` |
152
+ | `duplicate` | `options: DeploymentDuplicateOptions` | `Promise<Deployment>` |
151
153
  | `generateAuthHeader` | — | `Promise<unknown>` |
154
+ | `ssh.keys` | — | `Promise<string[]>` |
155
+ | `ssh.add` | `publicKeys: string \| string[]` | `Promise<DeploymentUpdateSshKeysResult>` |
156
+ | `ssh.remove` | `publicKeys: string \| string[]` | `Promise<DeploymentUpdateSshKeysResult>` |
152
157
 
153
158
  ### `api.templates` — Deployment Templates
154
159
 
@@ -177,6 +182,38 @@ await vault.topup({ NOS: 100 });
177
182
  | `getTemplatePerformance` | `nodeId: string` | `Promise<Record<string, unknown>>` |
178
183
  | `getBenchmarkSummary` | `request?: BenchmarkSummaryRequest` | `Promise<Record<string, unknown>>` |
179
184
 
185
+ ### `api.node` / `api.jobs(job)` — Node access
186
+
187
+ A node verifies the job owner's signature, and the client manager signs on the
188
+ caller's behalf — so node access works under both wallet and API-key auth, and is
189
+ absent only when unauthenticated.
190
+
191
+ | Call | Parameters | Returns |
192
+ |--------|-----------|---------|
193
+ | `node(address)` | `address: string` | `Promise<NodeInfo>` — a node's public info |
194
+ | `jobs(job)` | `job: string` | `Promise<Job & NodeJobApi>` — the job's current indexer state flat-merged with its node job API |
195
+
196
+ `jobs` is callable **and** an object: the indexer query methods (`get`, `getAll`,
197
+ `list`, …) hang off it, so `(await api.jobs(id)).ssh.add(key)` and `api.jobs.list(...)`
198
+ both work.
199
+
200
+ **Node job methods** (on `await api.jobs(job)`, alongside the job's indexer fields):
201
+
202
+ | Method | Parameters | Returns |
203
+ |--------|-----------|---------|
204
+ | `definition` / `setDefinition` | — / `definition: JobDefinition` | `Promise<JobDefinition>` / `Promise<void>` |
205
+ | `results` | — | `Promise<FlowState>` |
206
+ | `operations` / `operation` / `group` | — / `op: string` / `group?: string` | `Promise<NodeOperationStatuses>` |
207
+ | `restartGroup` / `restartOperation` | `group: string` / `group: string, op: string` | `Promise<void>` |
208
+ | `stopGroup` / `stopOperation` / `stop` | `group: string` / `group: string, op: string` / — | `Promise<void>` |
209
+ | `endpoints` | — | `Promise<NodeJobEndpoints>` |
210
+ | `stats` | `query?: NodeStatsQuery` | `Promise<NodeTaskStat[]>` |
211
+ | `streamInfo` / `streamStats` | `handlers, query?` | `NodeStreamSubscription` |
212
+ | `logs` / `status` | `handlers, filter?, options?` | `NodeStreamSubscription` |
213
+ | `ssh.keys` / `ssh.add` / `ssh.remove` | — / `publicKey, { expiresAt? }` / `publicKey` | see `NodeJobSsh` |
214
+ | `ssh.command` | `options?: SshCommandOptions` | `SshConnectionDescriptor` |
215
+ | `terminal` | `options: NodeTerminalOptions` | `Promise<TerminalSession>` |
216
+
180
217
  ### `api.stats` — Platform Statistics
181
218
 
182
219
  | Method | Parameters | Returns |
@@ -1,10 +1,12 @@
1
1
  import type { AuthenticatedClient, ClientConnection } from './type.utils.js';
2
- import type { ApiKeyAuth, SignerAuth, CreateNosanaApiOptions } from '../types.js';
2
+ import type { ApiKeyAuth, SignedHeaderAuth, CreateNosanaApiOptions } from '../types.js';
3
+ /** The message signer auth signs on every request; nodes accept it on their sockets too. */
4
+ export declare const NOSANA_API_AUTH_MESSAGE = "NosanaApiAuthentication";
3
5
  /**
4
6
  * The headers the client sends on every request. Resolved per call: signer auth
5
7
  * signs a fresh message each time.
6
8
  */
7
- export declare function authHeaders(authParams: ApiKeyAuth | SignerAuth | undefined): Promise<Record<string, string>>;
9
+ export declare function authHeaders(authParams: ApiKeyAuth | SignedHeaderAuth | undefined): Promise<Record<string, string>>;
8
10
  /**
9
11
  * Creates an authenticated OpenAPI client with shared auth middleware.
10
12
  * Used as the base factory for all service-specific API clients.
@@ -14,7 +16,7 @@ export declare function authHeaders(authParams: ApiKeyAuth | SignerAuth | undefi
14
16
  * differently from an ordinary request. Services that never stream simply
15
17
  * leave it unexposed in their return types.
16
18
  */
17
- export declare function createAuthenticatedClient<Paths extends Record<string, any>>(baseUrl: string, authParams: ApiKeyAuth | SignerAuth | undefined, options?: Pick<CreateNosanaApiOptions, 'include_credentials'>, defaultHeaders?: Record<string, string>): AuthenticatedClient<Paths> & {
19
+ export declare function createAuthenticatedClient<Paths extends Record<string, any>>(baseUrl: string, authParams: ApiKeyAuth | SignedHeaderAuth | undefined, options?: Pick<CreateNosanaApiOptions, 'include_credentials'>, defaultHeaders?: Record<string, string>): AuthenticatedClient<Paths> & {
18
20
  connection: ClientConnection;
19
21
  };
20
22
  //# sourceMappingURL=createClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createClient.d.ts","sourceRoot":"","sources":["../../src/client/createClient.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,mBAAmB,EAEnB,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAElF;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,GAC9C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAWjC;AAED;;;;;;;;GAQG;AAEH,wBAAgB,yBAAyB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzE,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,EAC/C,OAAO,CAAC,EAAE,IAAI,CAAC,sBAAsB,EAAE,qBAAqB,CAAC,EAC7D,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,mBAAmB,CAAC,KAAK,CAAC,GAAG;IAAE,UAAU,EAAE,gBAAgB,CAAA;CAAE,CAgC/D"}
1
+ {"version":3,"file":"createClient.d.ts","sourceRoot":"","sources":["../../src/client/createClient.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,mBAAmB,EAEnB,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAExF,4FAA4F;AAC5F,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AAEjE;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,UAAU,EAAE,UAAU,GAAG,gBAAgB,GAAG,SAAS,GACpD,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAWjC;AAED;;;;;;;;GAQG;AAEH,wBAAgB,yBAAyB,CAAC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzE,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,UAAU,GAAG,gBAAgB,GAAG,SAAS,EACrD,OAAO,CAAC,EAAE,IAAI,CAAC,sBAAsB,EAAE,qBAAqB,CAAC,EAC7D,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,mBAAmB,CAAC,KAAK,CAAC,GAAG;IAAE,UAAU,EAAE,gBAAgB,CAAA;CAAE,CAgC/D"}
@@ -1,4 +1,6 @@
1
1
  import createClient from 'openapi-fetch';
2
+ /** The message signer auth signs on every request; nodes accept it on their sockets too. */
3
+ export const NOSANA_API_AUTH_MESSAGE = 'NosanaApiAuthentication';
2
4
  /**
3
5
  * The headers the client sends on every request. Resolved per call: signer auth
4
6
  * signs a fresh message each time.
@@ -10,8 +12,8 @@ export async function authHeaders(authParams) {
10
12
  return { Authorization: `Bearer ${authParams}` };
11
13
  }
12
14
  return {
13
- 'x-user-id': authParams.identifier,
14
- Authorization: await authParams.generate('NosanaApiAuthentication'),
15
+ ...(authParams.identifier ? { 'x-user-id': authParams.identifier } : {}),
16
+ Authorization: await authParams.generate(NOSANA_API_AUTH_MESSAGE),
15
17
  };
16
18
  }
17
19
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"createClient.js","sourceRoot":"","sources":["../../src/client/createClient.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AAUzC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,UAA+C;IAE/C,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAE3B,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,EAAE,aAAa,EAAE,UAAU,UAAU,EAAE,EAAE,CAAC;IACnD,CAAC;IAED,OAAO;QACL,WAAW,EAAE,UAAU,CAAC,UAAU;QAClC,aAAa,EAAE,MAAM,UAAU,CAAC,QAAQ,CAAC,yBAAyB,CAAC;KACpE,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,8DAA8D;AAC9D,MAAM,UAAU,yBAAyB,CACvC,OAAe,EACf,UAA+C,EAC/C,OAA6D,EAC7D,cAAuC;IAEvC,MAAM,cAAc,GAAe;QACjC,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE;YACzB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,WAAW,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;gBAC1E,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;KACF,CAAC;IAEF,MAAM,MAAM,GAAG,YAAY,CAA4B;QACrD,OAAO;QACP,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvD,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,mBAAmB,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;QAC3B,UAAU,EAAE;YACV,OAAO;YACP,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;gBACpB,GAAG,cAAc;gBACjB,sEAAsE;gBACtE,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,UAAU,CAAC,CAAC;aACvE,CAAC;YACF,GAAG,CAAC,OAAO,EAAE,mBAAmB;gBAC9B,CAAC,CAAC,EAAE,WAAW,EAAE,SAAkB,EAAE;gBACrC,CAAC,CAAC,EAAE,CAAC;SACR;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"createClient.js","sourceRoot":"","sources":["../../src/client/createClient.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AAUzC,4FAA4F;AAC5F,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAEjE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,UAAqD;IAErD,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,CAAC;IAE3B,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,EAAE,aAAa,EAAE,UAAU,UAAU,EAAE,EAAE,CAAC;IACnD,CAAC;IAED,OAAO;QACL,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,aAAa,EAAE,MAAM,UAAU,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KAClE,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,8DAA8D;AAC9D,MAAM,UAAU,yBAAyB,CACvC,OAAe,EACf,UAAqD,EACrD,OAA6D,EAC7D,cAAuC;IAEvC,MAAM,cAAc,GAAe;QACjC,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE;YACzB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,WAAW,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;gBAC1E,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;KACF,CAAC;IAEF,MAAM,MAAM,GAAG,YAAY,CAA4B;QACrD,OAAO;QACP,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACvD,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO,EAAE,mBAAmB,EAAE,CAAC;QAClC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE;QAC3B,UAAU,EAAE;YACV,OAAO;YACP,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;gBACpB,GAAG,cAAc;gBACjB,sEAAsE;gBACtE,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,WAAW,CAAC,UAAU,CAAC,CAAC;aACvE,CAAC;YACF,GAAG,CAAC,OAAO,EAAE,mBAAmB;gBAC9B,CAAC,CAAC,EAAE,WAAW,EAAE,SAAkB,EAAE;gBACrC,CAAC,CAAC,EAAE,CAAC;SACR;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -1001,8 +1001,172 @@ export interface paths {
1001
1001
  };
1002
1002
  };
1003
1003
  put?: never;
1004
- post?: never;
1005
- delete?: never;
1004
+ /** @description Grant one or more SSH public keys access to the deployment's jobs. */
1005
+ post: {
1006
+ parameters: {
1007
+ query?: never;
1008
+ header: {
1009
+ "x-user-id": string;
1010
+ /** @description Signed authentication message, */
1011
+ authorization: string;
1012
+ /** @description Nosana API key */
1013
+ "x-nosana-api"?: string;
1014
+ };
1015
+ path: {
1016
+ deployment: components["schemas"]["PublicKey"];
1017
+ };
1018
+ cookie?: never;
1019
+ };
1020
+ requestBody: {
1021
+ content: {
1022
+ "application/json": {
1023
+ /** @description SSH public keys to grant. Keys already present (same type and material) are left as they are; the deployment holds at most 10. */
1024
+ public_keys: string[];
1025
+ };
1026
+ };
1027
+ };
1028
+ responses: {
1029
+ /** @description The deployment's SSH keys after the change. Check `jobs` for nodes that rejected or did not receive the new keys. */
1030
+ 200: {
1031
+ headers: {
1032
+ [name: string]: unknown;
1033
+ };
1034
+ content: {
1035
+ "application/json": {
1036
+ public_keys: string[];
1037
+ /** Format: date-time */
1038
+ updated_at: string;
1039
+ /** @description Per running job whose node was contacted to apply the change. Empty when nothing changed or nothing is running. */
1040
+ jobs: {
1041
+ job: string;
1042
+ node: string;
1043
+ status: "authorized" | "revoked" | "failed";
1044
+ error?: string;
1045
+ }[];
1046
+ };
1047
+ };
1048
+ };
1049
+ /** @description Bad Request. A key is not a valid OpenSSH public key, or the set exceeds the limits. */
1050
+ 400: {
1051
+ headers: {
1052
+ [name: string]: unknown;
1053
+ };
1054
+ content: {
1055
+ "application/json": components["schemas"]["Error"];
1056
+ };
1057
+ };
1058
+ /** @description Unauthorized. Invalid or missing authentication. */
1059
+ 401: {
1060
+ headers: {
1061
+ [name: string]: unknown;
1062
+ };
1063
+ content: {
1064
+ "application/json": components["schemas"]["Error"];
1065
+ };
1066
+ };
1067
+ /** @description Deployment not found. */
1068
+ 404: {
1069
+ headers: {
1070
+ [name: string]: unknown;
1071
+ };
1072
+ content: {
1073
+ "application/json": components["schemas"]["Error"];
1074
+ };
1075
+ };
1076
+ /** @description Internal Server Error. */
1077
+ 500: {
1078
+ headers: {
1079
+ [name: string]: unknown;
1080
+ };
1081
+ content: {
1082
+ "application/json": components["schemas"]["Error"];
1083
+ };
1084
+ };
1085
+ };
1086
+ };
1087
+ /** @description Revoke one or more SSH public keys from the deployment's jobs. */
1088
+ delete: {
1089
+ parameters: {
1090
+ query?: never;
1091
+ header: {
1092
+ "x-user-id": string;
1093
+ /** @description Signed authentication message, */
1094
+ authorization: string;
1095
+ /** @description Nosana API key */
1096
+ "x-nosana-api"?: string;
1097
+ };
1098
+ path: {
1099
+ deployment: components["schemas"]["PublicKey"];
1100
+ };
1101
+ cookie?: never;
1102
+ };
1103
+ requestBody: {
1104
+ content: {
1105
+ "application/json": {
1106
+ /** @description SSH public keys to revoke. A key is matched by type and material, so a differing comment still revokes it. */
1107
+ public_keys: string[];
1108
+ };
1109
+ };
1110
+ };
1111
+ responses: {
1112
+ /** @description The deployment's SSH keys after the change. Check `jobs` for nodes that did not apply the revocation. */
1113
+ 200: {
1114
+ headers: {
1115
+ [name: string]: unknown;
1116
+ };
1117
+ content: {
1118
+ "application/json": {
1119
+ public_keys: string[];
1120
+ /** Format: date-time */
1121
+ updated_at: string;
1122
+ /** @description Per running job whose node was contacted to apply the change. Empty when nothing changed or nothing is running. */
1123
+ jobs: {
1124
+ job: string;
1125
+ node: string;
1126
+ status: "authorized" | "revoked" | "failed";
1127
+ error?: string;
1128
+ }[];
1129
+ };
1130
+ };
1131
+ };
1132
+ /** @description Bad Request. A key is not a valid OpenSSH public key. */
1133
+ 400: {
1134
+ headers: {
1135
+ [name: string]: unknown;
1136
+ };
1137
+ content: {
1138
+ "application/json": components["schemas"]["Error"];
1139
+ };
1140
+ };
1141
+ /** @description Unauthorized. Invalid or missing authentication. */
1142
+ 401: {
1143
+ headers: {
1144
+ [name: string]: unknown;
1145
+ };
1146
+ content: {
1147
+ "application/json": components["schemas"]["Error"];
1148
+ };
1149
+ };
1150
+ /** @description Deployment not found. */
1151
+ 404: {
1152
+ headers: {
1153
+ [name: string]: unknown;
1154
+ };
1155
+ content: {
1156
+ "application/json": components["schemas"]["Error"];
1157
+ };
1158
+ };
1159
+ /** @description Internal Server Error. */
1160
+ 500: {
1161
+ headers: {
1162
+ [name: string]: unknown;
1163
+ };
1164
+ content: {
1165
+ "application/json": components["schemas"]["Error"];
1166
+ };
1167
+ };
1168
+ };
1169
+ };
1006
1170
  options?: never;
1007
1171
  head?: never;
1008
1172
  patch?: never;
@@ -1175,6 +1339,86 @@ export interface paths {
1175
1339
  patch?: never;
1176
1340
  trace?: never;
1177
1341
  };
1342
+ "/deployments/{deployment}/duplicate": {
1343
+ parameters: {
1344
+ query?: never;
1345
+ header?: never;
1346
+ path?: never;
1347
+ cookie?: never;
1348
+ };
1349
+ get?: never;
1350
+ put?: never;
1351
+ /** @description Duplicate a deployment. Creates a new DRAFT deployment (or starts it right away with `autostart`) with the same vault, market, replicas, timeout, strategy, confidentiality and SSH keys, and the source's active revision as its first revision. The source is left untouched. */
1352
+ post: {
1353
+ parameters: {
1354
+ query?: never;
1355
+ header: {
1356
+ "x-user-id": string;
1357
+ /** @description Signed authentication message, */
1358
+ authorization: string;
1359
+ /** @description Nosana API key */
1360
+ "x-nosana-api"?: string;
1361
+ };
1362
+ path: {
1363
+ deployment: components["schemas"]["PublicKey"];
1364
+ };
1365
+ cookie?: never;
1366
+ };
1367
+ requestBody: {
1368
+ content: {
1369
+ "application/json": {
1370
+ /** @description Name of the new deployment. */
1371
+ name: string;
1372
+ /** @description If true, the new deployment is started immediately after creation instead of being left as a DRAFT. */
1373
+ autostart?: boolean;
1374
+ };
1375
+ };
1376
+ };
1377
+ responses: {
1378
+ /** @description Deployment duplicated successfully. */
1379
+ 200: {
1380
+ headers: {
1381
+ [name: string]: unknown;
1382
+ };
1383
+ content: {
1384
+ "application/json": components["schemas"]["Deployment"];
1385
+ };
1386
+ };
1387
+ /** @description Unauthorized. Invalid or missing authentication. */
1388
+ 401: {
1389
+ headers: {
1390
+ [name: string]: unknown;
1391
+ };
1392
+ content: {
1393
+ "application/json": "Unauthorized";
1394
+ };
1395
+ };
1396
+ /** @description Deployment not found. */
1397
+ 404: {
1398
+ headers: {
1399
+ [name: string]: unknown;
1400
+ };
1401
+ content: {
1402
+ "application/json": components["schemas"]["Error"];
1403
+ };
1404
+ };
1405
+ /** @description Internal Server Error. */
1406
+ 500: {
1407
+ headers: {
1408
+ [name: string]: unknown;
1409
+ };
1410
+ content: {
1411
+ "application/json": components["schemas"]["Error"];
1412
+ };
1413
+ };
1414
+ };
1415
+ };
1416
+ delete?: never;
1417
+ options?: never;
1418
+ head?: never;
1419
+ patch?: never;
1420
+ trace?: never;
1421
+ };
1178
1422
  "/deployments/{deployment}/start": {
1179
1423
  parameters: {
1180
1424
  query?: never;
@@ -1565,7 +1809,7 @@ export interface paths {
1565
1809
  };
1566
1810
  trace?: never;
1567
1811
  };
1568
- "/deployments/{deployment}/update-replica-count": {
1812
+ "/deployments/{deployment}/update-market": {
1569
1813
  parameters: {
1570
1814
  query?: never;
1571
1815
  header?: never;
@@ -1578,7 +1822,7 @@ export interface paths {
1578
1822
  delete?: never;
1579
1823
  options?: never;
1580
1824
  head?: never;
1581
- /** @description Update the replica count of a deployment */
1825
+ /** @description Update the market of a deployment. A RUNNING deployment's current jobs are stopped and relisted on the new market: SIMPLE and SIMPLE-EXTEND relist the stopped count immediately, INFINITE refills each stopped replica, and SCHEDULED lists on its next scheduled run. */
1582
1826
  patch: {
1583
1827
  parameters: {
1584
1828
  query?: never;
@@ -1597,19 +1841,19 @@ export interface paths {
1597
1841
  requestBody: {
1598
1842
  content: {
1599
1843
  "application/json": {
1600
- replicas: number;
1844
+ market: string;
1601
1845
  };
1602
1846
  };
1603
1847
  };
1604
1848
  responses: {
1605
- /** @description Deployment replica count updated successfully. */
1849
+ /** @description Deployment market updated successfully. */
1606
1850
  200: {
1607
1851
  headers: {
1608
1852
  [name: string]: unknown;
1609
1853
  };
1610
1854
  content: {
1611
1855
  "application/json": {
1612
- replicas: number;
1856
+ market: string;
1613
1857
  /** Format: date-time */
1614
1858
  updated_at: string;
1615
1859
  };
@@ -1646,7 +1890,7 @@ export interface paths {
1646
1890
  };
1647
1891
  trace?: never;
1648
1892
  };
1649
- "/deployments/{deployment}/update-schedule": {
1893
+ "/deployments/{deployment}/update-replica-count": {
1650
1894
  parameters: {
1651
1895
  query?: never;
1652
1896
  header?: never;
@@ -1659,7 +1903,7 @@ export interface paths {
1659
1903
  delete?: never;
1660
1904
  options?: never;
1661
1905
  head?: never;
1662
- /** @description Update deployment schedule. */
1906
+ /** @description Update the replica count of a deployment */
1663
1907
  patch: {
1664
1908
  parameters: {
1665
1909
  query?: never;
@@ -1678,32 +1922,31 @@ export interface paths {
1678
1922
  requestBody: {
1679
1923
  content: {
1680
1924
  "application/json": {
1681
- /** @description Cron expression for scheduled deployments */
1682
- schedule: string;
1925
+ replicas: number;
1683
1926
  };
1684
1927
  };
1685
1928
  };
1686
1929
  responses: {
1687
- /** @description Deployment schedule updated successfully. */
1930
+ /** @description Deployment replica count updated successfully. */
1688
1931
  200: {
1689
1932
  headers: {
1690
1933
  [name: string]: unknown;
1691
1934
  };
1692
1935
  content: {
1693
1936
  "application/json": {
1694
- /** @description Cron expression for scheduled deployments */
1695
- schedule: string;
1937
+ replicas: number;
1938
+ /** Format: date-time */
1696
1939
  updated_at: string;
1697
1940
  };
1698
1941
  };
1699
1942
  };
1700
- /** @description Bad Request. Invalid input data. */
1701
- 400: {
1943
+ /** @description Unauthorized. Invalid or missing authentication. */
1944
+ 401: {
1702
1945
  headers: {
1703
1946
  [name: string]: unknown;
1704
1947
  };
1705
1948
  content: {
1706
- "application/json": components["schemas"]["Error"];
1949
+ "application/json": "Unauthorized";
1707
1950
  };
1708
1951
  };
1709
1952
  /** @description Deployment not found. */
@@ -1728,7 +1971,7 @@ export interface paths {
1728
1971
  };
1729
1972
  trace?: never;
1730
1973
  };
1731
- "/deployments/{deployment}/update-ssh-keys": {
1974
+ "/deployments/{deployment}/update-schedule": {
1732
1975
  parameters: {
1733
1976
  query?: never;
1734
1977
  header?: never;
@@ -1741,7 +1984,7 @@ export interface paths {
1741
1984
  delete?: never;
1742
1985
  options?: never;
1743
1986
  head?: never;
1744
- /** @description Replace the deployment's SSH public keys. The new set is stored on the deployment (not on a revision — no new revision or restart) and injected into every job posted from now on. New keys are also authorized on the node of every job currently running; removed keys stop working only when a job restarts. */
1987
+ /** @description Update deployment schedule. */
1745
1988
  patch: {
1746
1989
  parameters: {
1747
1990
  query?: never;
@@ -1760,33 +2003,26 @@ export interface paths {
1760
2003
  requestBody: {
1761
2004
  content: {
1762
2005
  "application/json": {
1763
- /** @description The complete set of SSH public keys allowed to reach this deployment's jobs (at most 10). Replaces the current set; an empty array revokes SSH access. */
1764
- public_keys: string[];
2006
+ /** @description Cron expression for scheduled deployments */
2007
+ schedule: string;
1765
2008
  };
1766
2009
  };
1767
2010
  };
1768
2011
  responses: {
1769
- /** @description SSH keys updated. Check `jobs` for nodes that rejected or did not receive the new keys. */
2012
+ /** @description Deployment schedule updated successfully. */
1770
2013
  200: {
1771
2014
  headers: {
1772
2015
  [name: string]: unknown;
1773
2016
  };
1774
2017
  content: {
1775
2018
  "application/json": {
1776
- public_keys: string[];
1777
- /** Format: date-time */
2019
+ /** @description Cron expression for scheduled deployments */
2020
+ schedule: string;
1778
2021
  updated_at: string;
1779
- /** @description Per running job: whether its node authorized the new keys. Empty when the new set is empty — a revocation cannot reach running jobs. */
1780
- jobs: {
1781
- job: string;
1782
- node: string;
1783
- status: "authorized" | "failed";
1784
- error?: string;
1785
- }[];
1786
2022
  };
1787
2023
  };
1788
2024
  };
1789
- /** @description Bad Request. A key is not a valid OpenSSH public key, or the set exceeds the limits. */
2025
+ /** @description Bad Request. Invalid input data. */
1790
2026
  400: {
1791
2027
  headers: {
1792
2028
  [name: string]: unknown;
@@ -1795,15 +2031,6 @@ export interface paths {
1795
2031
  "application/json": components["schemas"]["Error"];
1796
2032
  };
1797
2033
  };
1798
- /** @description Unauthorized. Invalid or missing authentication. */
1799
- 401: {
1800
- headers: {
1801
- [name: string]: unknown;
1802
- };
1803
- content: {
1804
- "application/json": "Unauthorized";
1805
- };
1806
- };
1807
2034
  /** @description Deployment not found. */
1808
2035
  404: {
1809
2036
  headers: {