berget 2.2.6 → 2.2.7
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.
- package/.github/workflows/publish.yml +6 -6
- package/.github/workflows/test.yml +11 -5
- package/.husky/pre-commit +1 -0
- package/.prettierignore +15 -0
- package/.prettierrc +5 -3
- package/CONTRIBUTING.md +38 -0
- package/README.md +2 -148
- package/dist/index.js +21 -21
- package/dist/package.json +28 -2
- package/dist/src/agents/app.js +28 -0
- package/dist/src/agents/backend.js +25 -0
- package/dist/src/agents/devops.js +34 -0
- package/dist/src/agents/frontend.js +25 -0
- package/dist/src/agents/fullstack.js +25 -0
- package/dist/src/agents/index.js +61 -0
- package/dist/src/agents/quality.js +70 -0
- package/dist/src/agents/security.js +26 -0
- package/dist/src/agents/types.js +2 -0
- package/dist/src/client.js +54 -62
- package/dist/src/commands/api-keys.js +132 -140
- package/dist/src/commands/auth.js +9 -9
- package/dist/src/commands/autocomplete.js +9 -9
- package/dist/src/commands/billing.js +7 -9
- package/dist/src/commands/chat.js +90 -92
- package/dist/src/commands/clusters.js +12 -12
- package/dist/src/commands/code/__tests__/auth-sync.test.js +348 -0
- package/dist/src/commands/code/__tests__/fake-api-key-service.js +23 -0
- package/dist/src/commands/code/__tests__/fake-auth-service.js +55 -0
- package/dist/src/commands/code/__tests__/fake-command-runner.js +5 -7
- package/dist/src/commands/code/__tests__/fake-file-store.js +9 -0
- package/dist/src/commands/code/__tests__/fake-prompter.js +60 -18
- package/dist/src/commands/code/__tests__/setup-flow.test.js +374 -107
- package/dist/src/commands/code/adapters/clack-prompter.js +10 -0
- package/dist/src/commands/code/adapters/fs-file-store.js +8 -3
- package/dist/src/commands/code/adapters/spawn-command-runner.js +15 -11
- package/dist/src/commands/code/auth-sync.js +283 -0
- package/dist/src/commands/code/errors.js +4 -4
- package/dist/src/commands/code/ports/auth-services.js +2 -0
- package/dist/src/commands/code/setup.js +234 -93
- package/dist/src/commands/code.js +139 -251
- package/dist/src/commands/models.js +13 -15
- package/dist/src/commands/users.js +6 -8
- package/dist/src/constants/command-structure.js +116 -116
- package/dist/src/services/api-key-service.js +43 -48
- package/dist/src/services/auth-service.js +60 -299
- package/dist/src/services/browser-auth.js +278 -0
- package/dist/src/services/chat-service.js +78 -91
- package/dist/src/services/cluster-service.js +6 -6
- package/dist/src/services/collaborator-service.js +5 -8
- package/dist/src/services/flux-service.js +5 -8
- package/dist/src/services/helm-service.js +5 -8
- package/dist/src/services/kubectl-service.js +7 -10
- package/dist/src/utils/config-checker.js +5 -5
- package/dist/src/utils/config-loader.js +25 -25
- package/dist/src/utils/default-api-key.js +23 -23
- package/dist/src/utils/env-manager.js +7 -7
- package/dist/src/utils/error-handler.js +60 -61
- package/dist/src/utils/logger.js +7 -7
- package/dist/src/utils/markdown-renderer.js +2 -2
- package/dist/src/utils/opencode-validator.js +17 -20
- package/dist/src/utils/token-manager.js +38 -11
- package/dist/tests/commands/chat.test.js +24 -24
- package/dist/tests/commands/code.test.js +147 -147
- package/dist/tests/utils/config-loader.test.js +114 -114
- package/dist/tests/utils/env-manager.test.js +57 -57
- package/dist/tests/utils/opencode-validator.test.js +33 -33
- package/dist/vitest.config.js +1 -1
- package/eslint.config.mjs +47 -0
- package/index.ts +42 -48
- package/package.json +28 -2
- package/src/agents/app.ts +27 -0
- package/src/agents/backend.ts +24 -0
- package/src/agents/devops.ts +33 -0
- package/src/agents/frontend.ts +24 -0
- package/src/agents/fullstack.ts +24 -0
- package/src/agents/index.ts +71 -0
- package/src/agents/quality.ts +69 -0
- package/src/agents/security.ts +26 -0
- package/src/agents/types.ts +17 -0
- package/src/client.ts +125 -167
- package/src/commands/api-keys.ts +261 -358
- package/src/commands/auth.ts +24 -30
- package/src/commands/autocomplete.ts +12 -12
- package/src/commands/billing.ts +22 -27
- package/src/commands/chat.ts +230 -323
- package/src/commands/clusters.ts +33 -33
- package/src/commands/code/__tests__/auth-sync.test.ts +481 -0
- package/src/commands/code/__tests__/fake-api-key-service.ts +13 -0
- package/src/commands/code/__tests__/fake-auth-service.ts +50 -0
- package/src/commands/code/__tests__/fake-command-runner.ts +39 -42
- package/src/commands/code/__tests__/fake-file-store.ts +32 -23
- package/src/commands/code/__tests__/fake-prompter.ts +107 -69
- package/src/commands/code/__tests__/setup-flow.test.ts +624 -270
- package/src/commands/code/adapters/clack-prompter.ts +50 -38
- package/src/commands/code/adapters/fs-file-store.ts +31 -27
- package/src/commands/code/adapters/spawn-command-runner.ts +33 -29
- package/src/commands/code/auth-sync.ts +329 -0
- package/src/commands/code/errors.ts +15 -15
- package/src/commands/code/ports/auth-services.ts +14 -0
- package/src/commands/code/ports/command-runner.ts +8 -4
- package/src/commands/code/ports/file-store.ts +5 -4
- package/src/commands/code/ports/prompter.ts +24 -18
- package/src/commands/code/setup.ts +545 -317
- package/src/commands/code.ts +271 -473
- package/src/commands/index.ts +19 -19
- package/src/commands/models.ts +32 -37
- package/src/commands/users.ts +15 -22
- package/src/constants/command-structure.ts +119 -142
- package/src/services/api-key-service.ts +96 -113
- package/src/services/auth-service.ts +92 -339
- package/src/services/browser-auth.ts +296 -0
- package/src/services/chat-service.ts +246 -279
- package/src/services/cluster-service.ts +29 -32
- package/src/services/collaborator-service.ts +13 -18
- package/src/services/flux-service.ts +16 -18
- package/src/services/helm-service.ts +16 -18
- package/src/services/kubectl-service.ts +12 -14
- package/src/types/api.d.ts +924 -926
- package/src/types/json.d.ts +3 -3
- package/src/utils/config-checker.ts +10 -10
- package/src/utils/config-loader.ts +110 -127
- package/src/utils/default-api-key.ts +81 -93
- package/src/utils/env-manager.ts +36 -40
- package/src/utils/error-handler.ts +83 -78
- package/src/utils/logger.ts +41 -41
- package/src/utils/markdown-renderer.ts +11 -11
- package/src/utils/opencode-validator.ts +51 -56
- package/src/utils/token-manager.ts +84 -64
- package/templates/agents/app.md +1 -0
- package/templates/agents/backend.md +1 -0
- package/templates/agents/devops.md +2 -0
- package/templates/agents/frontend.md +1 -0
- package/templates/agents/fullstack.md +1 -0
- package/templates/agents/quality.md +45 -40
- package/templates/agents/security.md +1 -0
- package/tests/commands/chat.test.ts +60 -70
- package/tests/commands/code.test.ts +330 -376
- package/tests/utils/config-loader.test.ts +260 -260
- package/tests/utils/env-manager.test.ts +127 -134
- package/tests/utils/opencode-validator.test.ts +58 -63
- package/tsconfig.json +2 -2
- package/vitest.config.ts +3 -3
- package/AGENTS.md +0 -374
- package/TODO.md +0 -19
package/src/types/api.d.ts
CHANGED
|
@@ -4,18 +4,16 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
/** OneOf type helpers */
|
|
7
|
-
type Without<T, U> = { [P in Exclude<keyof T, keyof U>]?: never }
|
|
8
|
-
type XOR<T, U> = T | U extends object
|
|
9
|
-
? (Without<T, U> & U) | (Without<U, T> & T)
|
|
10
|
-
: T | U
|
|
7
|
+
type Without<T, U> = { [P in Exclude<keyof T, keyof U>]?: never };
|
|
8
|
+
type XOR<T, U> = T | U extends object ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;
|
|
11
9
|
type OneOf<T extends any[]> = T extends [infer Only]
|
|
12
10
|
? Only
|
|
13
11
|
: T extends [infer A, infer B, ...infer Rest]
|
|
14
12
|
? OneOf<[XOR<A, B>, ...Rest]>
|
|
15
|
-
: never
|
|
13
|
+
: never;
|
|
16
14
|
|
|
17
15
|
export interface paths {
|
|
18
|
-
|
|
16
|
+
"/v1/api-keys": {
|
|
19
17
|
/**
|
|
20
18
|
* List all API keys
|
|
21
19
|
* @description Lists all API keys for the authenticated user's organization.
|
|
@@ -39,19 +37,19 @@ export interface paths {
|
|
|
39
37
|
/** @description List of API keys */
|
|
40
38
|
200: {
|
|
41
39
|
content: {
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
}
|
|
40
|
+
"application/json": components["schemas"]["ApiKeyListResponse"];
|
|
41
|
+
};
|
|
42
|
+
};
|
|
45
43
|
/** @description Unauthorized */
|
|
46
44
|
401: {
|
|
47
|
-
content: never
|
|
48
|
-
}
|
|
45
|
+
content: never;
|
|
46
|
+
};
|
|
49
47
|
/** @description Server error */
|
|
50
48
|
500: {
|
|
51
|
-
content: never
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
49
|
+
content: never;
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
};
|
|
55
53
|
/**
|
|
56
54
|
* Create a new API key
|
|
57
55
|
* @description Creates a new API key for the authenticated user's organization. The full API key is only returned once at creation time.
|
|
@@ -70,28 +68,28 @@ export interface paths {
|
|
|
70
68
|
post: {
|
|
71
69
|
requestBody: {
|
|
72
70
|
content: {
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
}
|
|
71
|
+
"application/json": components["schemas"]["CreateApiKey"];
|
|
72
|
+
};
|
|
73
|
+
};
|
|
76
74
|
responses: {
|
|
77
75
|
/** @description API key created successfully */
|
|
78
76
|
201: {
|
|
79
77
|
content: {
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
}
|
|
78
|
+
"application/json": components["schemas"]["CreateApiKeyResponse"];
|
|
79
|
+
};
|
|
80
|
+
};
|
|
83
81
|
/** @description Unauthorized */
|
|
84
82
|
401: {
|
|
85
|
-
content: never
|
|
86
|
-
}
|
|
83
|
+
content: never;
|
|
84
|
+
};
|
|
87
85
|
/** @description Server error */
|
|
88
86
|
500: {
|
|
89
|
-
content: never
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
87
|
+
content: never;
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
"/v1/api-keys/{id}": {
|
|
95
93
|
/**
|
|
96
94
|
* Delete an API key
|
|
97
95
|
* @description Permanently deletes an API key
|
|
@@ -100,30 +98,30 @@ export interface paths {
|
|
|
100
98
|
parameters: {
|
|
101
99
|
path: {
|
|
102
100
|
/** @description API key ID */
|
|
103
|
-
id: string
|
|
104
|
-
}
|
|
105
|
-
}
|
|
101
|
+
id: string;
|
|
102
|
+
};
|
|
103
|
+
};
|
|
106
104
|
responses: {
|
|
107
105
|
/** @description API key deleted successfully */
|
|
108
106
|
204: {
|
|
109
|
-
content: never
|
|
110
|
-
}
|
|
107
|
+
content: never;
|
|
108
|
+
};
|
|
111
109
|
/** @description Unauthorized */
|
|
112
110
|
401: {
|
|
113
|
-
content: never
|
|
114
|
-
}
|
|
111
|
+
content: never;
|
|
112
|
+
};
|
|
115
113
|
/** @description API key not found */
|
|
116
114
|
404: {
|
|
117
|
-
content: never
|
|
118
|
-
}
|
|
115
|
+
content: never;
|
|
116
|
+
};
|
|
119
117
|
/** @description Server error */
|
|
120
118
|
500: {
|
|
121
|
-
content: never
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
119
|
+
content: never;
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
"/v1/api-keys/{id}/rotate": {
|
|
127
125
|
/**
|
|
128
126
|
* Rotate an API key
|
|
129
127
|
* @description Rotates an API key by invalidating the old key and generating a new one. The new key is returned in the response and is only shown once.
|
|
@@ -147,32 +145,32 @@ export interface paths {
|
|
|
147
145
|
parameters: {
|
|
148
146
|
path: {
|
|
149
147
|
/** @description API key ID */
|
|
150
|
-
id: string
|
|
151
|
-
}
|
|
152
|
-
}
|
|
148
|
+
id: string;
|
|
149
|
+
};
|
|
150
|
+
};
|
|
153
151
|
responses: {
|
|
154
152
|
/** @description API key rotated successfully */
|
|
155
153
|
200: {
|
|
156
154
|
content: {
|
|
157
|
-
|
|
158
|
-
}
|
|
159
|
-
}
|
|
155
|
+
"application/json": components["schemas"]["CreateApiKeyResponse"];
|
|
156
|
+
};
|
|
157
|
+
};
|
|
160
158
|
/** @description Unauthorized */
|
|
161
159
|
401: {
|
|
162
|
-
content: never
|
|
163
|
-
}
|
|
160
|
+
content: never;
|
|
161
|
+
};
|
|
164
162
|
/** @description API key not found */
|
|
165
163
|
404: {
|
|
166
|
-
content: never
|
|
167
|
-
}
|
|
164
|
+
content: never;
|
|
165
|
+
};
|
|
168
166
|
/** @description Server error */
|
|
169
167
|
500: {
|
|
170
|
-
content: never
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
|
|
168
|
+
content: never;
|
|
169
|
+
};
|
|
170
|
+
};
|
|
171
|
+
};
|
|
172
|
+
};
|
|
173
|
+
"/v1/api-keys/{id}/usage": {
|
|
176
174
|
/**
|
|
177
175
|
* Get API key usage statistics
|
|
178
176
|
* @description Returns usage statistics for a specific API key including request count, daily breakdown, model-specific usage, and token consumption.
|
|
@@ -195,38 +193,38 @@ export interface paths {
|
|
|
195
193
|
parameters: {
|
|
196
194
|
query?: {
|
|
197
195
|
/** @description Start date in YYYY-MM-DD format */
|
|
198
|
-
start_date?: string
|
|
196
|
+
start_date?: string;
|
|
199
197
|
/** @description End date in YYYY-MM-DD format */
|
|
200
|
-
end_date?: string
|
|
201
|
-
}
|
|
198
|
+
end_date?: string;
|
|
199
|
+
};
|
|
202
200
|
path: {
|
|
203
201
|
/** @description API key ID */
|
|
204
|
-
id: string
|
|
205
|
-
}
|
|
206
|
-
}
|
|
202
|
+
id: string;
|
|
203
|
+
};
|
|
204
|
+
};
|
|
207
205
|
responses: {
|
|
208
206
|
/** @description API key usage statistics */
|
|
209
207
|
200: {
|
|
210
208
|
content: {
|
|
211
|
-
|
|
212
|
-
}
|
|
213
|
-
}
|
|
209
|
+
"application/json": components["schemas"]["ApiKeyUsageResponse"];
|
|
210
|
+
};
|
|
211
|
+
};
|
|
214
212
|
/** @description Unauthorized */
|
|
215
213
|
401: {
|
|
216
|
-
content: never
|
|
217
|
-
}
|
|
214
|
+
content: never;
|
|
215
|
+
};
|
|
218
216
|
/** @description API key not found */
|
|
219
217
|
404: {
|
|
220
|
-
content: never
|
|
221
|
-
}
|
|
218
|
+
content: never;
|
|
219
|
+
};
|
|
222
220
|
/** @description Server error */
|
|
223
221
|
500: {
|
|
224
|
-
content: never
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
|
|
222
|
+
content: never;
|
|
223
|
+
};
|
|
224
|
+
};
|
|
225
|
+
};
|
|
226
|
+
};
|
|
227
|
+
"/v1/apps/templates": {
|
|
230
228
|
/**
|
|
231
229
|
* List app templates
|
|
232
230
|
* @description Retrieves a list of all available application templates that can be installed in your cluster
|
|
@@ -236,21 +234,21 @@ export interface paths {
|
|
|
236
234
|
/** @description List of app templates */
|
|
237
235
|
200: {
|
|
238
236
|
content: {
|
|
239
|
-
|
|
240
|
-
}
|
|
241
|
-
}
|
|
237
|
+
"application/json": components["schemas"]["AppTemplateList"];
|
|
238
|
+
};
|
|
239
|
+
};
|
|
242
240
|
/** @description Unauthorized */
|
|
243
241
|
401: {
|
|
244
|
-
content: never
|
|
245
|
-
}
|
|
242
|
+
content: never;
|
|
243
|
+
};
|
|
246
244
|
/** @description Server error */
|
|
247
245
|
500: {
|
|
248
|
-
content: never
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
|
|
246
|
+
content: never;
|
|
247
|
+
};
|
|
248
|
+
};
|
|
249
|
+
};
|
|
250
|
+
};
|
|
251
|
+
"/v1/apps/templates/{appId}": {
|
|
254
252
|
/**
|
|
255
253
|
* Get app template details
|
|
256
254
|
* @description Retrieves detailed information about a specific app template
|
|
@@ -259,32 +257,32 @@ export interface paths {
|
|
|
259
257
|
parameters: {
|
|
260
258
|
path: {
|
|
261
259
|
/** @description App template ID */
|
|
262
|
-
appId: string
|
|
263
|
-
}
|
|
264
|
-
}
|
|
260
|
+
appId: string;
|
|
261
|
+
};
|
|
262
|
+
};
|
|
265
263
|
responses: {
|
|
266
264
|
/** @description App template details */
|
|
267
265
|
200: {
|
|
268
266
|
content: {
|
|
269
|
-
|
|
270
|
-
}
|
|
271
|
-
}
|
|
267
|
+
"application/json": components["schemas"]["AppTemplate"];
|
|
268
|
+
};
|
|
269
|
+
};
|
|
272
270
|
/** @description Unauthorized */
|
|
273
271
|
401: {
|
|
274
|
-
content: never
|
|
275
|
-
}
|
|
272
|
+
content: never;
|
|
273
|
+
};
|
|
276
274
|
/** @description App template not found */
|
|
277
275
|
404: {
|
|
278
|
-
content: never
|
|
279
|
-
}
|
|
276
|
+
content: never;
|
|
277
|
+
};
|
|
280
278
|
/** @description Server error */
|
|
281
279
|
500: {
|
|
282
|
-
content: never
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
}
|
|
287
|
-
|
|
280
|
+
content: never;
|
|
281
|
+
};
|
|
282
|
+
};
|
|
283
|
+
};
|
|
284
|
+
};
|
|
285
|
+
"/v1/apps/installations": {
|
|
288
286
|
/**
|
|
289
287
|
* List app installations
|
|
290
288
|
* @description Retrieves a list of all installed applications in your clusters
|
|
@@ -294,19 +292,19 @@ export interface paths {
|
|
|
294
292
|
/** @description List of app installations */
|
|
295
293
|
200: {
|
|
296
294
|
content: {
|
|
297
|
-
|
|
298
|
-
}
|
|
299
|
-
}
|
|
295
|
+
"application/json": components["schemas"]["AppInstallationList"];
|
|
296
|
+
};
|
|
297
|
+
};
|
|
300
298
|
/** @description Unauthorized */
|
|
301
299
|
401: {
|
|
302
|
-
content: never
|
|
303
|
-
}
|
|
300
|
+
content: never;
|
|
301
|
+
};
|
|
304
302
|
/** @description Server error */
|
|
305
303
|
500: {
|
|
306
|
-
content: never
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
}
|
|
304
|
+
content: never;
|
|
305
|
+
};
|
|
306
|
+
};
|
|
307
|
+
};
|
|
310
308
|
/**
|
|
311
309
|
* Install an app
|
|
312
310
|
* @description Installs an application from a template into your cluster
|
|
@@ -314,36 +312,36 @@ export interface paths {
|
|
|
314
312
|
post: {
|
|
315
313
|
requestBody: {
|
|
316
314
|
content: {
|
|
317
|
-
|
|
318
|
-
}
|
|
319
|
-
}
|
|
315
|
+
"application/json": components["schemas"]["AppInstallRequest"];
|
|
316
|
+
};
|
|
317
|
+
};
|
|
320
318
|
responses: {
|
|
321
319
|
/** @description App installation initiated */
|
|
322
320
|
201: {
|
|
323
321
|
content: {
|
|
324
|
-
|
|
325
|
-
}
|
|
326
|
-
}
|
|
322
|
+
"application/json": components["schemas"]["AppInstallation"];
|
|
323
|
+
};
|
|
324
|
+
};
|
|
327
325
|
/** @description Invalid request */
|
|
328
326
|
400: {
|
|
329
|
-
content: never
|
|
330
|
-
}
|
|
327
|
+
content: never;
|
|
328
|
+
};
|
|
331
329
|
/** @description Unauthorized */
|
|
332
330
|
401: {
|
|
333
|
-
content: never
|
|
334
|
-
}
|
|
331
|
+
content: never;
|
|
332
|
+
};
|
|
335
333
|
/** @description App template not found */
|
|
336
334
|
404: {
|
|
337
|
-
content: never
|
|
338
|
-
}
|
|
335
|
+
content: never;
|
|
336
|
+
};
|
|
339
337
|
/** @description Server error */
|
|
340
338
|
500: {
|
|
341
|
-
content: never
|
|
342
|
-
}
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
|
|
339
|
+
content: never;
|
|
340
|
+
};
|
|
341
|
+
};
|
|
342
|
+
};
|
|
343
|
+
};
|
|
344
|
+
"/v1/apps/installations/{installationId}": {
|
|
347
345
|
/**
|
|
348
346
|
* Get installation details
|
|
349
347
|
* @description Retrieves detailed information about a specific app installation
|
|
@@ -352,30 +350,30 @@ export interface paths {
|
|
|
352
350
|
parameters: {
|
|
353
351
|
path: {
|
|
354
352
|
/** @description Installation ID */
|
|
355
|
-
installationId: string
|
|
356
|
-
}
|
|
357
|
-
}
|
|
353
|
+
installationId: string;
|
|
354
|
+
};
|
|
355
|
+
};
|
|
358
356
|
responses: {
|
|
359
357
|
/** @description Installation details */
|
|
360
358
|
200: {
|
|
361
359
|
content: {
|
|
362
|
-
|
|
363
|
-
}
|
|
364
|
-
}
|
|
360
|
+
"application/json": components["schemas"]["AppInstallation"];
|
|
361
|
+
};
|
|
362
|
+
};
|
|
365
363
|
/** @description Unauthorized */
|
|
366
364
|
401: {
|
|
367
|
-
content: never
|
|
368
|
-
}
|
|
365
|
+
content: never;
|
|
366
|
+
};
|
|
369
367
|
/** @description Installation not found */
|
|
370
368
|
404: {
|
|
371
|
-
content: never
|
|
372
|
-
}
|
|
369
|
+
content: never;
|
|
370
|
+
};
|
|
373
371
|
/** @description Server error */
|
|
374
372
|
500: {
|
|
375
|
-
content: never
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
}
|
|
373
|
+
content: never;
|
|
374
|
+
};
|
|
375
|
+
};
|
|
376
|
+
};
|
|
379
377
|
/**
|
|
380
378
|
* Uninstall an app
|
|
381
379
|
* @description Removes an installed application from your cluster
|
|
@@ -384,30 +382,30 @@ export interface paths {
|
|
|
384
382
|
parameters: {
|
|
385
383
|
path: {
|
|
386
384
|
/** @description Installation ID */
|
|
387
|
-
installationId: string
|
|
388
|
-
}
|
|
389
|
-
}
|
|
385
|
+
installationId: string;
|
|
386
|
+
};
|
|
387
|
+
};
|
|
390
388
|
responses: {
|
|
391
389
|
/** @description App uninstallation initiated */
|
|
392
390
|
204: {
|
|
393
|
-
content: never
|
|
394
|
-
}
|
|
391
|
+
content: never;
|
|
392
|
+
};
|
|
395
393
|
/** @description Unauthorized */
|
|
396
394
|
401: {
|
|
397
|
-
content: never
|
|
398
|
-
}
|
|
395
|
+
content: never;
|
|
396
|
+
};
|
|
399
397
|
/** @description Installation not found */
|
|
400
398
|
404: {
|
|
401
|
-
content: never
|
|
402
|
-
}
|
|
399
|
+
content: never;
|
|
400
|
+
};
|
|
403
401
|
/** @description Server error */
|
|
404
402
|
500: {
|
|
405
|
-
content: never
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
|
|
403
|
+
content: never;
|
|
404
|
+
};
|
|
405
|
+
};
|
|
406
|
+
};
|
|
407
|
+
};
|
|
408
|
+
"/v1/auth/login": {
|
|
411
409
|
/**
|
|
412
410
|
* OAuth login
|
|
413
411
|
* @description Initiates OAuth login flow via Keycloak.
|
|
@@ -428,20 +426,20 @@ export interface paths {
|
|
|
428
426
|
parameters: {
|
|
429
427
|
query?: {
|
|
430
428
|
/** @description URL to redirect to after successful login */
|
|
431
|
-
redirect_uri?: string
|
|
429
|
+
redirect_uri?: string;
|
|
432
430
|
/** @description How to return the token after successful login (default is redirect) */
|
|
433
|
-
response_type?:
|
|
434
|
-
}
|
|
435
|
-
}
|
|
431
|
+
response_type?: "redirect" | "json";
|
|
432
|
+
};
|
|
433
|
+
};
|
|
436
434
|
responses: {
|
|
437
435
|
/** @description Redirects to Keycloak for login */
|
|
438
436
|
302: {
|
|
439
|
-
content: never
|
|
440
|
-
}
|
|
441
|
-
}
|
|
442
|
-
}
|
|
443
|
-
}
|
|
444
|
-
|
|
437
|
+
content: never;
|
|
438
|
+
};
|
|
439
|
+
};
|
|
440
|
+
};
|
|
441
|
+
};
|
|
442
|
+
"/v1/auth/callback": {
|
|
445
443
|
/**
|
|
446
444
|
* OAuth callback
|
|
447
445
|
* @description Handles Keycloak login callback and exchanges token
|
|
@@ -449,19 +447,19 @@ export interface paths {
|
|
|
449
447
|
get: {
|
|
450
448
|
parameters: {
|
|
451
449
|
query: {
|
|
452
|
-
code: string
|
|
453
|
-
state: string
|
|
454
|
-
}
|
|
455
|
-
}
|
|
450
|
+
code: string;
|
|
451
|
+
state: string;
|
|
452
|
+
};
|
|
453
|
+
};
|
|
456
454
|
responses: {
|
|
457
455
|
/** @description Redirects to frontend */
|
|
458
456
|
302: {
|
|
459
|
-
content: never
|
|
460
|
-
}
|
|
461
|
-
}
|
|
462
|
-
}
|
|
463
|
-
}
|
|
464
|
-
|
|
457
|
+
content: never;
|
|
458
|
+
};
|
|
459
|
+
};
|
|
460
|
+
};
|
|
461
|
+
};
|
|
462
|
+
"/v1/auth/device": {
|
|
465
463
|
/**
|
|
466
464
|
* Initiate device authorization flow
|
|
467
465
|
* @description Initiates the device authorization flow, returning a device code and user verification URL.
|
|
@@ -480,13 +478,13 @@ export interface paths {
|
|
|
480
478
|
/** @description Device authorization initiated */
|
|
481
479
|
200: {
|
|
482
480
|
content: {
|
|
483
|
-
|
|
484
|
-
}
|
|
485
|
-
}
|
|
486
|
-
}
|
|
487
|
-
}
|
|
488
|
-
}
|
|
489
|
-
|
|
481
|
+
"application/json": components["schemas"]["DeviceAuthInitResponse"];
|
|
482
|
+
};
|
|
483
|
+
};
|
|
484
|
+
};
|
|
485
|
+
};
|
|
486
|
+
};
|
|
487
|
+
"/v1/auth/device/token": {
|
|
490
488
|
/**
|
|
491
489
|
* Poll for device token
|
|
492
490
|
* @description Polls for the status of a device authorization flow. The client should poll this endpoint
|
|
@@ -510,34 +508,34 @@ export interface paths {
|
|
|
510
508
|
post: {
|
|
511
509
|
requestBody: {
|
|
512
510
|
content: {
|
|
513
|
-
|
|
514
|
-
}
|
|
515
|
-
}
|
|
511
|
+
"application/json": components["schemas"]["DeviceAuthRequest"];
|
|
512
|
+
};
|
|
513
|
+
};
|
|
516
514
|
responses: {
|
|
517
515
|
/** @description Token returned or pending status */
|
|
518
516
|
200: {
|
|
519
517
|
content: {
|
|
520
|
-
|
|
521
|
-
| components[
|
|
522
|
-
| components[
|
|
523
|
-
}
|
|
524
|
-
}
|
|
518
|
+
"application/json":
|
|
519
|
+
| components["schemas"]["DeviceAuthPendingResponse"]
|
|
520
|
+
| components["schemas"]["DeviceAuthTokenResponse"];
|
|
521
|
+
};
|
|
522
|
+
};
|
|
525
523
|
/** @description Invalid device code or expired token */
|
|
526
524
|
400: {
|
|
527
|
-
content: never
|
|
528
|
-
}
|
|
525
|
+
content: never;
|
|
526
|
+
};
|
|
529
527
|
/** @description Polling too frequently */
|
|
530
528
|
429: {
|
|
531
|
-
content: never
|
|
532
|
-
}
|
|
529
|
+
content: never;
|
|
530
|
+
};
|
|
533
531
|
/** @description Server error during authentication */
|
|
534
532
|
500: {
|
|
535
|
-
content: never
|
|
536
|
-
}
|
|
537
|
-
}
|
|
538
|
-
}
|
|
539
|
-
}
|
|
540
|
-
|
|
533
|
+
content: never;
|
|
534
|
+
};
|
|
535
|
+
};
|
|
536
|
+
};
|
|
537
|
+
};
|
|
538
|
+
"/v1/auth/refresh": {
|
|
541
539
|
/**
|
|
542
540
|
* Refresh access token
|
|
543
541
|
* @description Refreshes an access token using a refresh token. This endpoint can be used to obtain a new
|
|
@@ -554,39 +552,39 @@ export interface paths {
|
|
|
554
552
|
post: {
|
|
555
553
|
requestBody: {
|
|
556
554
|
content: {
|
|
557
|
-
|
|
558
|
-
}
|
|
559
|
-
}
|
|
555
|
+
"application/json": components["schemas"]["RefreshTokenRequest"];
|
|
556
|
+
};
|
|
557
|
+
};
|
|
560
558
|
responses: {
|
|
561
559
|
/** @description New access and refresh tokens */
|
|
562
560
|
200: {
|
|
563
561
|
content: {
|
|
564
|
-
|
|
565
|
-
}
|
|
566
|
-
}
|
|
562
|
+
"application/json": components["schemas"]["RefreshTokenResponse"];
|
|
563
|
+
};
|
|
564
|
+
};
|
|
567
565
|
/** @description Invalid or expired refresh token */
|
|
568
566
|
401: {
|
|
569
|
-
content: never
|
|
570
|
-
}
|
|
571
|
-
}
|
|
572
|
-
}
|
|
573
|
-
}
|
|
574
|
-
|
|
567
|
+
content: never;
|
|
568
|
+
};
|
|
569
|
+
};
|
|
570
|
+
};
|
|
571
|
+
};
|
|
572
|
+
"/v1/auth/register-url": {
|
|
575
573
|
/** Get Keycloak registration URL */
|
|
576
574
|
get: {
|
|
577
575
|
responses: {
|
|
578
576
|
/** @description Registration URL returned */
|
|
579
577
|
200: {
|
|
580
578
|
content: {
|
|
581
|
-
|
|
582
|
-
url?: string
|
|
583
|
-
}
|
|
584
|
-
}
|
|
585
|
-
}
|
|
586
|
-
}
|
|
587
|
-
}
|
|
588
|
-
}
|
|
589
|
-
|
|
579
|
+
"application/json": {
|
|
580
|
+
url?: string;
|
|
581
|
+
};
|
|
582
|
+
};
|
|
583
|
+
};
|
|
584
|
+
};
|
|
585
|
+
};
|
|
586
|
+
};
|
|
587
|
+
"/v1/auth/logout": {
|
|
590
588
|
/**
|
|
591
589
|
* Logout
|
|
592
590
|
* @description Clears cookies and redirects to Keycloak logout
|
|
@@ -594,18 +592,18 @@ export interface paths {
|
|
|
594
592
|
get: {
|
|
595
593
|
parameters: {
|
|
596
594
|
query?: {
|
|
597
|
-
redirect_uri?: string
|
|
598
|
-
}
|
|
599
|
-
}
|
|
595
|
+
redirect_uri?: string;
|
|
596
|
+
};
|
|
597
|
+
};
|
|
600
598
|
responses: {
|
|
601
599
|
/** @description Redirects to logout page */
|
|
602
600
|
302: {
|
|
603
|
-
content: never
|
|
604
|
-
}
|
|
605
|
-
}
|
|
606
|
-
}
|
|
607
|
-
}
|
|
608
|
-
|
|
601
|
+
content: never;
|
|
602
|
+
};
|
|
603
|
+
};
|
|
604
|
+
};
|
|
605
|
+
};
|
|
606
|
+
"/v1/billing/usage": {
|
|
609
607
|
/**
|
|
610
608
|
* Get current usage
|
|
611
609
|
* @description Retrieves current billing period usage metrics and costs. Shows detailed breakdown of API calls, compute resources, and other billable items. This helps you understand your current billing status.
|
|
@@ -615,13 +613,13 @@ export interface paths {
|
|
|
615
613
|
/** @description Current usage metrics */
|
|
616
614
|
200: {
|
|
617
615
|
content: {
|
|
618
|
-
|
|
619
|
-
}
|
|
620
|
-
}
|
|
621
|
-
}
|
|
622
|
-
}
|
|
623
|
-
}
|
|
624
|
-
|
|
616
|
+
"application/json": components["schemas"]["Usage"];
|
|
617
|
+
};
|
|
618
|
+
};
|
|
619
|
+
};
|
|
620
|
+
};
|
|
621
|
+
};
|
|
622
|
+
"/v1/billing/invoices": {
|
|
625
623
|
/**
|
|
626
624
|
* List invoices
|
|
627
625
|
* @description Retrieves all invoices for the authenticated user
|
|
@@ -631,15 +629,15 @@ export interface paths {
|
|
|
631
629
|
/** @description List of invoices */
|
|
632
630
|
200: {
|
|
633
631
|
content: {
|
|
634
|
-
|
|
635
|
-
invoices?: components[
|
|
636
|
-
}
|
|
637
|
-
}
|
|
638
|
-
}
|
|
639
|
-
}
|
|
640
|
-
}
|
|
641
|
-
}
|
|
642
|
-
|
|
632
|
+
"application/json": {
|
|
633
|
+
invoices?: components["schemas"]["Invoice"][];
|
|
634
|
+
};
|
|
635
|
+
};
|
|
636
|
+
};
|
|
637
|
+
};
|
|
638
|
+
};
|
|
639
|
+
};
|
|
640
|
+
"/v1/billing/invoices/{id}": {
|
|
643
641
|
/**
|
|
644
642
|
* Get invoice details
|
|
645
643
|
* @description Retrieves details for a specific invoice
|
|
@@ -647,20 +645,20 @@ export interface paths {
|
|
|
647
645
|
get: {
|
|
648
646
|
parameters: {
|
|
649
647
|
path: {
|
|
650
|
-
id: string
|
|
651
|
-
}
|
|
652
|
-
}
|
|
648
|
+
id: string;
|
|
649
|
+
};
|
|
650
|
+
};
|
|
653
651
|
responses: {
|
|
654
652
|
/** @description Invoice details */
|
|
655
653
|
200: {
|
|
656
654
|
content: {
|
|
657
|
-
|
|
658
|
-
}
|
|
659
|
-
}
|
|
660
|
-
}
|
|
661
|
-
}
|
|
662
|
-
}
|
|
663
|
-
|
|
655
|
+
"application/json": components["schemas"]["Invoice"];
|
|
656
|
+
};
|
|
657
|
+
};
|
|
658
|
+
};
|
|
659
|
+
};
|
|
660
|
+
};
|
|
661
|
+
"/v1/billing/payment-methods": {
|
|
664
662
|
/**
|
|
665
663
|
* List payment methods
|
|
666
664
|
* @description Retrieves all payment methods for the authenticated user
|
|
@@ -670,13 +668,13 @@ export interface paths {
|
|
|
670
668
|
/** @description List of payment methods */
|
|
671
669
|
200: {
|
|
672
670
|
content: {
|
|
673
|
-
|
|
674
|
-
paymentMethods?: components[
|
|
675
|
-
}
|
|
676
|
-
}
|
|
677
|
-
}
|
|
678
|
-
}
|
|
679
|
-
}
|
|
671
|
+
"application/json": {
|
|
672
|
+
paymentMethods?: components["schemas"]["PaymentMethod"][];
|
|
673
|
+
};
|
|
674
|
+
};
|
|
675
|
+
};
|
|
676
|
+
};
|
|
677
|
+
};
|
|
680
678
|
/**
|
|
681
679
|
* Add payment method
|
|
682
680
|
* @description Adds a new payment method for the authenticated user
|
|
@@ -684,20 +682,20 @@ export interface paths {
|
|
|
684
682
|
post: {
|
|
685
683
|
requestBody: {
|
|
686
684
|
content: {
|
|
687
|
-
|
|
688
|
-
}
|
|
689
|
-
}
|
|
685
|
+
"application/json": components["schemas"]["CreatePaymentMethod"];
|
|
686
|
+
};
|
|
687
|
+
};
|
|
690
688
|
responses: {
|
|
691
689
|
/** @description Payment method added */
|
|
692
690
|
201: {
|
|
693
691
|
content: {
|
|
694
|
-
|
|
695
|
-
}
|
|
696
|
-
}
|
|
697
|
-
}
|
|
698
|
-
}
|
|
699
|
-
}
|
|
700
|
-
|
|
692
|
+
"application/json": components["schemas"]["PaymentMethod"];
|
|
693
|
+
};
|
|
694
|
+
};
|
|
695
|
+
};
|
|
696
|
+
};
|
|
697
|
+
};
|
|
698
|
+
"/v1/billing/payment-methods/{id}": {
|
|
701
699
|
/**
|
|
702
700
|
* Remove payment method
|
|
703
701
|
* @description Removes a payment method for the authenticated user
|
|
@@ -705,18 +703,18 @@ export interface paths {
|
|
|
705
703
|
delete: {
|
|
706
704
|
parameters: {
|
|
707
705
|
path: {
|
|
708
|
-
id: string
|
|
709
|
-
}
|
|
710
|
-
}
|
|
706
|
+
id: string;
|
|
707
|
+
};
|
|
708
|
+
};
|
|
711
709
|
responses: {
|
|
712
710
|
/** @description Payment method removed */
|
|
713
711
|
204: {
|
|
714
|
-
content: never
|
|
715
|
-
}
|
|
716
|
-
}
|
|
717
|
-
}
|
|
718
|
-
}
|
|
719
|
-
|
|
712
|
+
content: never;
|
|
713
|
+
};
|
|
714
|
+
};
|
|
715
|
+
};
|
|
716
|
+
};
|
|
717
|
+
"/v1/billing/subscription": {
|
|
720
718
|
/**
|
|
721
719
|
* Update subscription
|
|
722
720
|
* @description Updates the subscription plan for the authenticated user
|
|
@@ -724,18 +722,18 @@ export interface paths {
|
|
|
724
722
|
put: {
|
|
725
723
|
requestBody: {
|
|
726
724
|
content: {
|
|
727
|
-
|
|
728
|
-
}
|
|
729
|
-
}
|
|
725
|
+
"application/json": components["schemas"]["UpdateSubscription"];
|
|
726
|
+
};
|
|
727
|
+
};
|
|
730
728
|
responses: {
|
|
731
729
|
/** @description Subscription updated */
|
|
732
730
|
200: {
|
|
733
|
-
content: never
|
|
734
|
-
}
|
|
735
|
-
}
|
|
736
|
-
}
|
|
737
|
-
}
|
|
738
|
-
|
|
731
|
+
content: never;
|
|
732
|
+
};
|
|
733
|
+
};
|
|
734
|
+
};
|
|
735
|
+
};
|
|
736
|
+
"/v1/chat/completions": {
|
|
739
737
|
/**
|
|
740
738
|
* Create a chat completion
|
|
741
739
|
* @description Creates a model response for the given chat conversation.
|
|
@@ -780,28 +778,28 @@ export interface paths {
|
|
|
780
778
|
post: {
|
|
781
779
|
requestBody: {
|
|
782
780
|
content: {
|
|
783
|
-
|
|
784
|
-
}
|
|
785
|
-
}
|
|
781
|
+
"application/json": components["schemas"]["ChatCompletionRequest"];
|
|
782
|
+
};
|
|
783
|
+
};
|
|
786
784
|
responses: {
|
|
787
785
|
/** @description Successful completion */
|
|
788
786
|
200: {
|
|
789
787
|
content: {
|
|
790
|
-
|
|
791
|
-
}
|
|
792
|
-
}
|
|
788
|
+
"application/json": components["schemas"]["ChatCompletionResponse"];
|
|
789
|
+
};
|
|
790
|
+
};
|
|
793
791
|
/** @description Invalid request */
|
|
794
792
|
400: {
|
|
795
|
-
content: never
|
|
796
|
-
}
|
|
793
|
+
content: never;
|
|
794
|
+
};
|
|
797
795
|
/** @description Unauthorized */
|
|
798
796
|
401: {
|
|
799
|
-
content: never
|
|
800
|
-
}
|
|
801
|
-
}
|
|
802
|
-
}
|
|
803
|
-
}
|
|
804
|
-
|
|
797
|
+
content: never;
|
|
798
|
+
};
|
|
799
|
+
};
|
|
800
|
+
};
|
|
801
|
+
};
|
|
802
|
+
"/v1/clusters": {
|
|
805
803
|
/**
|
|
806
804
|
* List all clusters
|
|
807
805
|
* @description Retrieves a list of all Kubernetes clusters in the customer's namespace
|
|
@@ -811,21 +809,21 @@ export interface paths {
|
|
|
811
809
|
/** @description List of clusters */
|
|
812
810
|
200: {
|
|
813
811
|
content: {
|
|
814
|
-
|
|
815
|
-
}
|
|
816
|
-
}
|
|
812
|
+
"application/json": components["schemas"]["ClusterList"];
|
|
813
|
+
};
|
|
814
|
+
};
|
|
817
815
|
/** @description Unauthorized */
|
|
818
816
|
401: {
|
|
819
|
-
content: never
|
|
820
|
-
}
|
|
817
|
+
content: never;
|
|
818
|
+
};
|
|
821
819
|
/** @description Server error */
|
|
822
820
|
500: {
|
|
823
|
-
content: never
|
|
824
|
-
}
|
|
825
|
-
}
|
|
826
|
-
}
|
|
827
|
-
}
|
|
828
|
-
|
|
821
|
+
content: never;
|
|
822
|
+
};
|
|
823
|
+
};
|
|
824
|
+
};
|
|
825
|
+
};
|
|
826
|
+
"/v1/clusters/usage": {
|
|
829
827
|
/**
|
|
830
828
|
* Get cluster usage
|
|
831
829
|
* @description Retrieves resource usage and cost data across all Kubernetes clusters for the current billing period
|
|
@@ -835,21 +833,21 @@ export interface paths {
|
|
|
835
833
|
/** @description Cluster usage data */
|
|
836
834
|
200: {
|
|
837
835
|
content: {
|
|
838
|
-
|
|
839
|
-
}
|
|
840
|
-
}
|
|
836
|
+
"application/json": components["schemas"]["ClustersUsageResponse"];
|
|
837
|
+
};
|
|
838
|
+
};
|
|
841
839
|
/** @description Unauthorized */
|
|
842
840
|
401: {
|
|
843
|
-
content: never
|
|
844
|
-
}
|
|
841
|
+
content: never;
|
|
842
|
+
};
|
|
845
843
|
/** @description Server error */
|
|
846
844
|
500: {
|
|
847
|
-
content: never
|
|
848
|
-
}
|
|
849
|
-
}
|
|
850
|
-
}
|
|
851
|
-
}
|
|
852
|
-
|
|
845
|
+
content: never;
|
|
846
|
+
};
|
|
847
|
+
};
|
|
848
|
+
};
|
|
849
|
+
};
|
|
850
|
+
"/v1/clusters/{clusterId}/usage": {
|
|
853
851
|
/**
|
|
854
852
|
* Get detailed usage for a specific cluster
|
|
855
853
|
* @description Retrieves detailed resource usage and cost data for a specific Kubernetes cluster
|
|
@@ -858,32 +856,32 @@ export interface paths {
|
|
|
858
856
|
parameters: {
|
|
859
857
|
path: {
|
|
860
858
|
/** @description The cluster identifier */
|
|
861
|
-
clusterId: string
|
|
862
|
-
}
|
|
863
|
-
}
|
|
859
|
+
clusterId: string;
|
|
860
|
+
};
|
|
861
|
+
};
|
|
864
862
|
responses: {
|
|
865
863
|
/** @description Detailed cluster usage data */
|
|
866
864
|
200: {
|
|
867
865
|
content: {
|
|
868
|
-
|
|
869
|
-
}
|
|
870
|
-
}
|
|
866
|
+
"application/json": components["schemas"]["ClusterDetailedUsage"];
|
|
867
|
+
};
|
|
868
|
+
};
|
|
871
869
|
/** @description Unauthorized */
|
|
872
870
|
401: {
|
|
873
|
-
content: never
|
|
874
|
-
}
|
|
871
|
+
content: never;
|
|
872
|
+
};
|
|
875
873
|
/** @description Cluster not found */
|
|
876
874
|
404: {
|
|
877
|
-
content: never
|
|
878
|
-
}
|
|
875
|
+
content: never;
|
|
876
|
+
};
|
|
879
877
|
/** @description Server error */
|
|
880
878
|
500: {
|
|
881
|
-
content: never
|
|
882
|
-
}
|
|
883
|
-
}
|
|
884
|
-
}
|
|
885
|
-
}
|
|
886
|
-
|
|
879
|
+
content: never;
|
|
880
|
+
};
|
|
881
|
+
};
|
|
882
|
+
};
|
|
883
|
+
};
|
|
884
|
+
"/v1/models": {
|
|
887
885
|
/**
|
|
888
886
|
* List available models
|
|
889
887
|
* @description Retrieves a list of all available AI models with their specifications, capabilities, and pricing information. Use this endpoint to discover which models are available for your chat completion API calls.
|
|
@@ -893,17 +891,17 @@ export interface paths {
|
|
|
893
891
|
/** @description List of available models */
|
|
894
892
|
200: {
|
|
895
893
|
content: {
|
|
896
|
-
|
|
897
|
-
}
|
|
898
|
-
}
|
|
894
|
+
"application/json": components["schemas"]["ModelList"];
|
|
895
|
+
};
|
|
896
|
+
};
|
|
899
897
|
/** @description Server error */
|
|
900
898
|
500: {
|
|
901
|
-
content: never
|
|
902
|
-
}
|
|
903
|
-
}
|
|
904
|
-
}
|
|
905
|
-
}
|
|
906
|
-
|
|
899
|
+
content: never;
|
|
900
|
+
};
|
|
901
|
+
};
|
|
902
|
+
};
|
|
903
|
+
};
|
|
904
|
+
"/v1/models/{modelId}": {
|
|
907
905
|
/**
|
|
908
906
|
* Retrieve model information
|
|
909
907
|
* @description Get detailed information about a specific model
|
|
@@ -911,28 +909,28 @@ export interface paths {
|
|
|
911
909
|
get: {
|
|
912
910
|
parameters: {
|
|
913
911
|
path: {
|
|
914
|
-
modelId: string
|
|
915
|
-
}
|
|
916
|
-
}
|
|
912
|
+
modelId: string;
|
|
913
|
+
};
|
|
914
|
+
};
|
|
917
915
|
responses: {
|
|
918
916
|
/** @description Model details */
|
|
919
917
|
200: {
|
|
920
918
|
content: {
|
|
921
|
-
|
|
922
|
-
}
|
|
923
|
-
}
|
|
919
|
+
"application/json": components["schemas"]["Model"];
|
|
920
|
+
};
|
|
921
|
+
};
|
|
924
922
|
/** @description Model not found */
|
|
925
923
|
404: {
|
|
926
|
-
content: never
|
|
927
|
-
}
|
|
924
|
+
content: never;
|
|
925
|
+
};
|
|
928
926
|
/** @description Server error */
|
|
929
927
|
500: {
|
|
930
|
-
content: never
|
|
931
|
-
}
|
|
932
|
-
}
|
|
933
|
-
}
|
|
934
|
-
}
|
|
935
|
-
|
|
928
|
+
content: never;
|
|
929
|
+
};
|
|
930
|
+
};
|
|
931
|
+
};
|
|
932
|
+
};
|
|
933
|
+
"/v1/usage/tokens": {
|
|
936
934
|
/**
|
|
937
935
|
* Get token usage
|
|
938
936
|
* @description Retrieves token usage data across all models for the current billing period. This helps you track your API usage and associated costs.
|
|
@@ -942,21 +940,21 @@ export interface paths {
|
|
|
942
940
|
/** @description Token usage data */
|
|
943
941
|
200: {
|
|
944
942
|
content: {
|
|
945
|
-
|
|
946
|
-
}
|
|
947
|
-
}
|
|
943
|
+
"application/json": components["schemas"]["TokenUsageResponse"];
|
|
944
|
+
};
|
|
945
|
+
};
|
|
948
946
|
/** @description Unauthorized */
|
|
949
947
|
401: {
|
|
950
|
-
content: never
|
|
951
|
-
}
|
|
948
|
+
content: never;
|
|
949
|
+
};
|
|
952
950
|
/** @description Server error */
|
|
953
951
|
500: {
|
|
954
|
-
content: never
|
|
955
|
-
}
|
|
956
|
-
}
|
|
957
|
-
}
|
|
958
|
-
}
|
|
959
|
-
|
|
952
|
+
content: never;
|
|
953
|
+
};
|
|
954
|
+
};
|
|
955
|
+
};
|
|
956
|
+
};
|
|
957
|
+
"/v1/usage/tokens/{modelId}": {
|
|
960
958
|
/**
|
|
961
959
|
* Get token usage for a specific model
|
|
962
960
|
* @description Retrieves token usage data for a specific model in the current billing period
|
|
@@ -965,32 +963,32 @@ export interface paths {
|
|
|
965
963
|
parameters: {
|
|
966
964
|
path: {
|
|
967
965
|
/** @description The model identifier */
|
|
968
|
-
modelId: string
|
|
969
|
-
}
|
|
970
|
-
}
|
|
966
|
+
modelId: string;
|
|
967
|
+
};
|
|
968
|
+
};
|
|
971
969
|
responses: {
|
|
972
970
|
/** @description Model token usage data */
|
|
973
971
|
200: {
|
|
974
972
|
content: {
|
|
975
|
-
|
|
976
|
-
}
|
|
977
|
-
}
|
|
973
|
+
"application/json": components["schemas"]["ModelTokenUsageResponse"];
|
|
974
|
+
};
|
|
975
|
+
};
|
|
978
976
|
/** @description Unauthorized */
|
|
979
977
|
401: {
|
|
980
|
-
content: never
|
|
981
|
-
}
|
|
978
|
+
content: never;
|
|
979
|
+
};
|
|
982
980
|
/** @description Model not found */
|
|
983
981
|
404: {
|
|
984
|
-
content: never
|
|
985
|
-
}
|
|
982
|
+
content: never;
|
|
983
|
+
};
|
|
986
984
|
/** @description Server error */
|
|
987
985
|
500: {
|
|
988
|
-
content: never
|
|
989
|
-
}
|
|
990
|
-
}
|
|
991
|
-
}
|
|
992
|
-
}
|
|
993
|
-
|
|
986
|
+
content: never;
|
|
987
|
+
};
|
|
988
|
+
};
|
|
989
|
+
};
|
|
990
|
+
};
|
|
991
|
+
"/v1/users": {
|
|
994
992
|
/**
|
|
995
993
|
* List team members
|
|
996
994
|
* @description Retrieves a list of all users in your organization
|
|
@@ -1000,25 +998,25 @@ export interface paths {
|
|
|
1000
998
|
/** @description List of team members */
|
|
1001
999
|
200: {
|
|
1002
1000
|
content: {
|
|
1003
|
-
|
|
1004
|
-
}
|
|
1005
|
-
}
|
|
1001
|
+
"application/json": components["schemas"]["UserProfile"][];
|
|
1002
|
+
};
|
|
1003
|
+
};
|
|
1006
1004
|
/** @description Unauthorized */
|
|
1007
1005
|
401: {
|
|
1008
1006
|
content: {
|
|
1009
|
-
|
|
1010
|
-
}
|
|
1011
|
-
}
|
|
1007
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1008
|
+
};
|
|
1009
|
+
};
|
|
1012
1010
|
/** @description Server error */
|
|
1013
1011
|
500: {
|
|
1014
1012
|
content: {
|
|
1015
|
-
|
|
1016
|
-
}
|
|
1017
|
-
}
|
|
1018
|
-
}
|
|
1019
|
-
}
|
|
1020
|
-
}
|
|
1021
|
-
|
|
1013
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1014
|
+
};
|
|
1015
|
+
};
|
|
1016
|
+
};
|
|
1017
|
+
};
|
|
1018
|
+
};
|
|
1019
|
+
"/v1/users/me": {
|
|
1022
1020
|
/**
|
|
1023
1021
|
* Get current user profile
|
|
1024
1022
|
* @description Retrieves the profile of the currently authenticated user
|
|
@@ -1028,19 +1026,19 @@ export interface paths {
|
|
|
1028
1026
|
/** @description User profile */
|
|
1029
1027
|
200: {
|
|
1030
1028
|
content: {
|
|
1031
|
-
|
|
1032
|
-
}
|
|
1033
|
-
}
|
|
1029
|
+
"application/json": components["schemas"]["UserProfile"];
|
|
1030
|
+
};
|
|
1031
|
+
};
|
|
1034
1032
|
/** @description Unauthorized */
|
|
1035
1033
|
401: {
|
|
1036
1034
|
content: {
|
|
1037
|
-
|
|
1038
|
-
}
|
|
1039
|
-
}
|
|
1040
|
-
}
|
|
1041
|
-
}
|
|
1042
|
-
}
|
|
1043
|
-
|
|
1035
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1036
|
+
};
|
|
1037
|
+
};
|
|
1038
|
+
};
|
|
1039
|
+
};
|
|
1040
|
+
};
|
|
1041
|
+
"/v1/users/{id}": {
|
|
1044
1042
|
/**
|
|
1045
1043
|
* Get user details
|
|
1046
1044
|
* @description Retrieves details for a specific user
|
|
@@ -1048,30 +1046,30 @@ export interface paths {
|
|
|
1048
1046
|
get: {
|
|
1049
1047
|
parameters: {
|
|
1050
1048
|
path: {
|
|
1051
|
-
id: string
|
|
1052
|
-
}
|
|
1053
|
-
}
|
|
1049
|
+
id: string;
|
|
1050
|
+
};
|
|
1051
|
+
};
|
|
1054
1052
|
responses: {
|
|
1055
1053
|
/** @description User details */
|
|
1056
1054
|
200: {
|
|
1057
1055
|
content: {
|
|
1058
|
-
|
|
1059
|
-
}
|
|
1060
|
-
}
|
|
1056
|
+
"application/json": components["schemas"]["UserProfile"];
|
|
1057
|
+
};
|
|
1058
|
+
};
|
|
1061
1059
|
/** @description Unauthorized */
|
|
1062
1060
|
401: {
|
|
1063
1061
|
content: {
|
|
1064
|
-
|
|
1065
|
-
}
|
|
1066
|
-
}
|
|
1062
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1063
|
+
};
|
|
1064
|
+
};
|
|
1067
1065
|
/** @description User not found */
|
|
1068
1066
|
404: {
|
|
1069
1067
|
content: {
|
|
1070
|
-
|
|
1071
|
-
}
|
|
1072
|
-
}
|
|
1073
|
-
}
|
|
1074
|
-
}
|
|
1068
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1069
|
+
};
|
|
1070
|
+
};
|
|
1071
|
+
};
|
|
1072
|
+
};
|
|
1075
1073
|
/**
|
|
1076
1074
|
* Update user
|
|
1077
1075
|
* @description Updates an existing user
|
|
@@ -1079,41 +1077,41 @@ export interface paths {
|
|
|
1079
1077
|
put: {
|
|
1080
1078
|
parameters: {
|
|
1081
1079
|
path: {
|
|
1082
|
-
id: string
|
|
1083
|
-
}
|
|
1084
|
-
}
|
|
1080
|
+
id: string;
|
|
1081
|
+
};
|
|
1082
|
+
};
|
|
1085
1083
|
requestBody: {
|
|
1086
1084
|
content: {
|
|
1087
|
-
|
|
1088
|
-
}
|
|
1089
|
-
}
|
|
1085
|
+
"application/json": components["schemas"]["UpdateUser"];
|
|
1086
|
+
};
|
|
1087
|
+
};
|
|
1090
1088
|
responses: {
|
|
1091
1089
|
/** @description User updated */
|
|
1092
1090
|
200: {
|
|
1093
1091
|
content: {
|
|
1094
|
-
|
|
1095
|
-
}
|
|
1096
|
-
}
|
|
1092
|
+
"application/json": components["schemas"]["UserProfile"];
|
|
1093
|
+
};
|
|
1094
|
+
};
|
|
1097
1095
|
/** @description Invalid request */
|
|
1098
1096
|
400: {
|
|
1099
1097
|
content: {
|
|
1100
|
-
|
|
1101
|
-
}
|
|
1102
|
-
}
|
|
1098
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1099
|
+
};
|
|
1100
|
+
};
|
|
1103
1101
|
/** @description Unauthorized */
|
|
1104
1102
|
401: {
|
|
1105
1103
|
content: {
|
|
1106
|
-
|
|
1107
|
-
}
|
|
1108
|
-
}
|
|
1104
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1105
|
+
};
|
|
1106
|
+
};
|
|
1109
1107
|
/** @description Forbidden */
|
|
1110
1108
|
403: {
|
|
1111
1109
|
content: {
|
|
1112
|
-
|
|
1113
|
-
}
|
|
1114
|
-
}
|
|
1115
|
-
}
|
|
1116
|
-
}
|
|
1110
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1111
|
+
};
|
|
1112
|
+
};
|
|
1113
|
+
};
|
|
1114
|
+
};
|
|
1117
1115
|
/**
|
|
1118
1116
|
* Delete user
|
|
1119
1117
|
* @description Deletes your own user account
|
|
@@ -1121,30 +1119,30 @@ export interface paths {
|
|
|
1121
1119
|
delete: {
|
|
1122
1120
|
parameters: {
|
|
1123
1121
|
path: {
|
|
1124
|
-
id: string
|
|
1125
|
-
}
|
|
1126
|
-
}
|
|
1122
|
+
id: string;
|
|
1123
|
+
};
|
|
1124
|
+
};
|
|
1127
1125
|
responses: {
|
|
1128
1126
|
/** @description User deleted */
|
|
1129
1127
|
204: {
|
|
1130
|
-
content: never
|
|
1131
|
-
}
|
|
1128
|
+
content: never;
|
|
1129
|
+
};
|
|
1132
1130
|
/** @description Unauthorized */
|
|
1133
1131
|
401: {
|
|
1134
1132
|
content: {
|
|
1135
|
-
|
|
1136
|
-
}
|
|
1137
|
-
}
|
|
1133
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1134
|
+
};
|
|
1135
|
+
};
|
|
1138
1136
|
/** @description Cannot delete other users */
|
|
1139
1137
|
403: {
|
|
1140
1138
|
content: {
|
|
1141
|
-
|
|
1142
|
-
}
|
|
1143
|
-
}
|
|
1144
|
-
}
|
|
1145
|
-
}
|
|
1146
|
-
}
|
|
1147
|
-
|
|
1139
|
+
"application/json": components["schemas"]["ErrorResponse"];
|
|
1140
|
+
};
|
|
1141
|
+
};
|
|
1142
|
+
};
|
|
1143
|
+
};
|
|
1144
|
+
};
|
|
1145
|
+
"/v1/users/invite": {
|
|
1148
1146
|
/**
|
|
1149
1147
|
* Invite team member
|
|
1150
1148
|
* @description Invites a new team member to join your organization. They will receive an email with instructions to set up their account.
|
|
@@ -1152,968 +1150,968 @@ export interface paths {
|
|
|
1152
1150
|
post: {
|
|
1153
1151
|
requestBody: {
|
|
1154
1152
|
content: {
|
|
1155
|
-
|
|
1156
|
-
}
|
|
1157
|
-
}
|
|
1153
|
+
"application/json": components["schemas"]["InviteUser"];
|
|
1154
|
+
};
|
|
1155
|
+
};
|
|
1158
1156
|
responses: {
|
|
1159
1157
|
/** @description Invitation sent successfully */
|
|
1160
1158
|
200: {
|
|
1161
|
-
content: never
|
|
1162
|
-
}
|
|
1159
|
+
content: never;
|
|
1160
|
+
};
|
|
1163
1161
|
/** @description Unauthorized */
|
|
1164
1162
|
401: {
|
|
1165
|
-
content: never
|
|
1166
|
-
}
|
|
1163
|
+
content: never;
|
|
1164
|
+
};
|
|
1167
1165
|
/** @description Forbidden - insufficient permissions */
|
|
1168
1166
|
403: {
|
|
1169
|
-
content: never
|
|
1170
|
-
}
|
|
1171
|
-
}
|
|
1172
|
-
}
|
|
1173
|
-
}
|
|
1167
|
+
content: never;
|
|
1168
|
+
};
|
|
1169
|
+
};
|
|
1170
|
+
};
|
|
1171
|
+
};
|
|
1174
1172
|
}
|
|
1175
1173
|
|
|
1176
|
-
export type webhooks = Record<string, never
|
|
1174
|
+
export type webhooks = Record<string, never>;
|
|
1177
1175
|
|
|
1178
1176
|
export interface components {
|
|
1179
1177
|
schemas: {
|
|
1180
1178
|
ApiKey: {
|
|
1181
1179
|
/** @description Unique identifier for the API key */
|
|
1182
|
-
id: number
|
|
1180
|
+
id: number;
|
|
1183
1181
|
/** @description Name of the API key */
|
|
1184
|
-
name: string
|
|
1182
|
+
name: string;
|
|
1185
1183
|
/** @description Description of the API key */
|
|
1186
|
-
description: string | null
|
|
1184
|
+
description: string | null;
|
|
1187
1185
|
/** @description Whether the API key is active */
|
|
1188
|
-
active: boolean
|
|
1186
|
+
active: boolean;
|
|
1189
1187
|
/**
|
|
1190
1188
|
* Format: date-time
|
|
1191
1189
|
* @description Creation timestamp
|
|
1192
1190
|
*/
|
|
1193
|
-
created: string
|
|
1191
|
+
created: string;
|
|
1194
1192
|
/**
|
|
1195
1193
|
* Format: date-time
|
|
1196
1194
|
* @description Last modification timestamp
|
|
1197
1195
|
*/
|
|
1198
|
-
modified: string
|
|
1196
|
+
modified: string;
|
|
1199
1197
|
/**
|
|
1200
1198
|
* Format: date-time
|
|
1201
1199
|
* @description Last usage timestamp
|
|
1202
1200
|
*/
|
|
1203
|
-
lastUsed: string | null
|
|
1201
|
+
lastUsed: string | null;
|
|
1204
1202
|
/** @description API key prefix (for display purposes) */
|
|
1205
|
-
prefix: string
|
|
1206
|
-
}
|
|
1203
|
+
prefix: string;
|
|
1204
|
+
};
|
|
1207
1205
|
ApiKeyResponse: {
|
|
1208
1206
|
/** @description Unique identifier for the API key */
|
|
1209
|
-
id: number
|
|
1207
|
+
id: number;
|
|
1210
1208
|
/** @description Name of the API key */
|
|
1211
|
-
name: string
|
|
1209
|
+
name: string;
|
|
1212
1210
|
/** @description Description of the API key */
|
|
1213
|
-
description: string | null
|
|
1211
|
+
description: string | null;
|
|
1214
1212
|
/** @description Whether the API key is active */
|
|
1215
|
-
active: boolean
|
|
1213
|
+
active: boolean;
|
|
1216
1214
|
/**
|
|
1217
1215
|
* Format: date-time
|
|
1218
1216
|
* @description Creation timestamp
|
|
1219
1217
|
*/
|
|
1220
|
-
created: string
|
|
1218
|
+
created: string;
|
|
1221
1219
|
/**
|
|
1222
1220
|
* Format: date-time
|
|
1223
1221
|
* @description Last modification timestamp
|
|
1224
1222
|
*/
|
|
1225
|
-
modified: string
|
|
1223
|
+
modified: string;
|
|
1226
1224
|
/**
|
|
1227
1225
|
* Format: date-time
|
|
1228
1226
|
* @description Last usage timestamp
|
|
1229
1227
|
*/
|
|
1230
|
-
lastUsed: string | null
|
|
1228
|
+
lastUsed: string | null;
|
|
1231
1229
|
/** @description API key prefix (for display purposes) */
|
|
1232
|
-
prefix: string
|
|
1233
|
-
}
|
|
1230
|
+
prefix: string;
|
|
1231
|
+
};
|
|
1234
1232
|
CreateApiKey: {
|
|
1235
1233
|
/** @description Name of the API key */
|
|
1236
|
-
name: string
|
|
1234
|
+
name: string;
|
|
1237
1235
|
/** @description Description of the API key */
|
|
1238
|
-
description?: string
|
|
1239
|
-
}
|
|
1236
|
+
description?: string;
|
|
1237
|
+
};
|
|
1240
1238
|
CreateApiKeyResponse: {
|
|
1241
1239
|
/** @description Unique identifier for the API key */
|
|
1242
|
-
id: number
|
|
1240
|
+
id: number;
|
|
1243
1241
|
/** @description Name of the API key */
|
|
1244
|
-
name: string
|
|
1242
|
+
name: string;
|
|
1245
1243
|
/** @description Description of the API key */
|
|
1246
|
-
description: string | null
|
|
1244
|
+
description: string | null;
|
|
1247
1245
|
/** @description The API key - only returned once at creation */
|
|
1248
|
-
key: string
|
|
1246
|
+
key: string;
|
|
1249
1247
|
/**
|
|
1250
1248
|
* Format: date-time
|
|
1251
1249
|
* @description Creation timestamp
|
|
1252
1250
|
*/
|
|
1253
|
-
created: string
|
|
1254
|
-
}
|
|
1251
|
+
created: string;
|
|
1252
|
+
};
|
|
1255
1253
|
ApiKeyUsageEntry: {
|
|
1256
1254
|
/** @description Date in YYYY-MM-DD format */
|
|
1257
|
-
date: string
|
|
1255
|
+
date: string;
|
|
1258
1256
|
/** @description Number of requests on this date */
|
|
1259
|
-
count: number
|
|
1260
|
-
}
|
|
1257
|
+
count: number;
|
|
1258
|
+
};
|
|
1261
1259
|
ApiKeyModelUsage: {
|
|
1262
1260
|
/** @description Model identifier */
|
|
1263
|
-
id: string
|
|
1261
|
+
id: string;
|
|
1264
1262
|
/** @description Model display name */
|
|
1265
|
-
name: string
|
|
1263
|
+
name: string;
|
|
1266
1264
|
/** @description Total number of requests to this model */
|
|
1267
|
-
requests: number
|
|
1265
|
+
requests: number;
|
|
1268
1266
|
/** @description Token usage statistics */
|
|
1269
1267
|
tokens: {
|
|
1270
1268
|
/** @description Total input tokens */
|
|
1271
|
-
input: number
|
|
1269
|
+
input: number;
|
|
1272
1270
|
/** @description Total output tokens */
|
|
1273
|
-
output: number
|
|
1271
|
+
output: number;
|
|
1274
1272
|
/** @description Total tokens (input + output) */
|
|
1275
|
-
total: number
|
|
1276
|
-
}
|
|
1277
|
-
}
|
|
1273
|
+
total: number;
|
|
1274
|
+
};
|
|
1275
|
+
};
|
|
1278
1276
|
ApiKeyUsageResponse: {
|
|
1279
1277
|
/** @description API key ID */
|
|
1280
|
-
id: number
|
|
1278
|
+
id: number;
|
|
1281
1279
|
/** @description API key name */
|
|
1282
|
-
name: string
|
|
1280
|
+
name: string;
|
|
1283
1281
|
/** @description Request statistics */
|
|
1284
1282
|
requests: {
|
|
1285
1283
|
/** @description Total number of requests */
|
|
1286
|
-
total: number
|
|
1284
|
+
total: number;
|
|
1287
1285
|
/** @description Daily request counts */
|
|
1288
|
-
daily: components[
|
|
1289
|
-
}
|
|
1286
|
+
daily: components["schemas"]["ApiKeyUsageEntry"][];
|
|
1287
|
+
};
|
|
1290
1288
|
/** @description Usage statistics per model */
|
|
1291
|
-
models: components[
|
|
1289
|
+
models: components["schemas"]["ApiKeyModelUsage"][];
|
|
1292
1290
|
/** @description Time period for the usage data */
|
|
1293
1291
|
period: {
|
|
1294
1292
|
/** @description Start date of the period (YYYY-MM-DD) */
|
|
1295
|
-
start: string
|
|
1293
|
+
start: string;
|
|
1296
1294
|
/** @description End date of the period (YYYY-MM-DD) */
|
|
1297
|
-
end: string
|
|
1298
|
-
}
|
|
1299
|
-
}
|
|
1300
|
-
ApiKeyListResponse: components[
|
|
1295
|
+
end: string;
|
|
1296
|
+
};
|
|
1297
|
+
};
|
|
1298
|
+
ApiKeyListResponse: components["schemas"]["ApiKey"][];
|
|
1301
1299
|
AppTemplate: {
|
|
1302
1300
|
/** @description Unique identifier for the app */
|
|
1303
|
-
id: string
|
|
1301
|
+
id: string;
|
|
1304
1302
|
/** @description Display name of the app */
|
|
1305
|
-
name: string
|
|
1303
|
+
name: string;
|
|
1306
1304
|
/** @description Category the app belongs to */
|
|
1307
|
-
category: string
|
|
1305
|
+
category: string;
|
|
1308
1306
|
/** @description Short description of the app */
|
|
1309
|
-
description: string
|
|
1307
|
+
description: string;
|
|
1310
1308
|
/** @description Number of installations */
|
|
1311
|
-
installs: string
|
|
1309
|
+
installs: string;
|
|
1312
1310
|
/** @description User rating */
|
|
1313
|
-
rating: number
|
|
1311
|
+
rating: number;
|
|
1314
1312
|
/** @description Icon identifier */
|
|
1315
|
-
icon: string
|
|
1313
|
+
icon: string;
|
|
1316
1314
|
/** @description List of key features */
|
|
1317
|
-
features: string[]
|
|
1315
|
+
features: string[];
|
|
1318
1316
|
/** @description Resource requirements */
|
|
1319
1317
|
requirements: {
|
|
1320
1318
|
/** @description Required CPU cores */
|
|
1321
|
-
cpu: number
|
|
1319
|
+
cpu: number;
|
|
1322
1320
|
/** @description Required memory in GB */
|
|
1323
|
-
memory: number
|
|
1321
|
+
memory: number;
|
|
1324
1322
|
/** @description Required storage in GB */
|
|
1325
|
-
storage: number
|
|
1326
|
-
}
|
|
1323
|
+
storage: number;
|
|
1324
|
+
};
|
|
1327
1325
|
/** @description Configuration options */
|
|
1328
1326
|
configuration: OneOf<
|
|
1329
1327
|
[
|
|
1330
1328
|
{
|
|
1331
1329
|
/** @description Configuration field name */
|
|
1332
|
-
name: string
|
|
1330
|
+
name: string;
|
|
1333
1331
|
/**
|
|
1334
1332
|
* @description String input type
|
|
1335
1333
|
* @enum {string}
|
|
1336
1334
|
*/
|
|
1337
|
-
type:
|
|
1335
|
+
type: "string";
|
|
1338
1336
|
/** @description Whether this field is required */
|
|
1339
|
-
required: boolean
|
|
1337
|
+
required: boolean;
|
|
1340
1338
|
/** @description Default value if any */
|
|
1341
|
-
default?: string
|
|
1339
|
+
default?: string;
|
|
1342
1340
|
},
|
|
1343
1341
|
{
|
|
1344
1342
|
/** @description Configuration field name */
|
|
1345
|
-
name: string
|
|
1343
|
+
name: string;
|
|
1346
1344
|
/**
|
|
1347
1345
|
* @description Number input type
|
|
1348
1346
|
* @enum {string}
|
|
1349
1347
|
*/
|
|
1350
|
-
type:
|
|
1348
|
+
type: "number";
|
|
1351
1349
|
/** @description Whether this field is required */
|
|
1352
|
-
required: boolean
|
|
1350
|
+
required: boolean;
|
|
1353
1351
|
/** @description Default value if any */
|
|
1354
|
-
default?: number
|
|
1352
|
+
default?: number;
|
|
1355
1353
|
},
|
|
1356
1354
|
{
|
|
1357
1355
|
/** @description Configuration field name */
|
|
1358
|
-
name: string
|
|
1356
|
+
name: string;
|
|
1359
1357
|
/**
|
|
1360
1358
|
* @description Boolean toggle type
|
|
1361
1359
|
* @enum {string}
|
|
1362
1360
|
*/
|
|
1363
|
-
type:
|
|
1361
|
+
type: "boolean";
|
|
1364
1362
|
/** @description Whether this field is required */
|
|
1365
|
-
required: boolean
|
|
1363
|
+
required: boolean;
|
|
1366
1364
|
/** @description Default value if any */
|
|
1367
|
-
default?: boolean
|
|
1365
|
+
default?: boolean;
|
|
1368
1366
|
},
|
|
1369
1367
|
{
|
|
1370
1368
|
/** @description Configuration field name */
|
|
1371
|
-
name: string
|
|
1369
|
+
name: string;
|
|
1372
1370
|
/**
|
|
1373
1371
|
* @description Dropdown select type
|
|
1374
1372
|
* @enum {string}
|
|
1375
1373
|
*/
|
|
1376
|
-
type:
|
|
1374
|
+
type: "select";
|
|
1377
1375
|
/** @description Whether this field is required */
|
|
1378
|
-
required: boolean
|
|
1376
|
+
required: boolean;
|
|
1379
1377
|
/** @description Default selected option */
|
|
1380
|
-
default?: string
|
|
1378
|
+
default?: string;
|
|
1381
1379
|
/** @description Available options to select from */
|
|
1382
|
-
options: string[]
|
|
1380
|
+
options: string[];
|
|
1383
1381
|
},
|
|
1384
1382
|
{
|
|
1385
1383
|
/** @description Configuration field name */
|
|
1386
|
-
name: string
|
|
1384
|
+
name: string;
|
|
1387
1385
|
/**
|
|
1388
1386
|
* @description Password input type
|
|
1389
1387
|
* @enum {string}
|
|
1390
1388
|
*/
|
|
1391
|
-
type:
|
|
1389
|
+
type: "password";
|
|
1392
1390
|
/** @description Whether this field is required */
|
|
1393
|
-
required: boolean
|
|
1391
|
+
required: boolean;
|
|
1394
1392
|
/** @description Default value if any */
|
|
1395
|
-
default?: string
|
|
1393
|
+
default?: string;
|
|
1396
1394
|
},
|
|
1397
1395
|
]
|
|
1398
|
-
>[]
|
|
1396
|
+
>[];
|
|
1399
1397
|
/** @description Ingress configuration if applicable */
|
|
1400
1398
|
ingress?: {
|
|
1401
1399
|
/** @description Whether ingress is enabled for this app */
|
|
1402
|
-
enabled: boolean
|
|
1400
|
+
enabled: boolean;
|
|
1403
1401
|
/** @description Hostname pattern for the ingress */
|
|
1404
|
-
hostname: string
|
|
1402
|
+
hostname: string;
|
|
1405
1403
|
/** @description Path for the ingress */
|
|
1406
|
-
path: string
|
|
1404
|
+
path: string;
|
|
1407
1405
|
/** @description Whether TLS is enabled */
|
|
1408
|
-
tls: boolean
|
|
1409
|
-
}
|
|
1410
|
-
}
|
|
1406
|
+
tls: boolean;
|
|
1407
|
+
};
|
|
1408
|
+
};
|
|
1411
1409
|
AppTemplateList: {
|
|
1412
1410
|
data: {
|
|
1413
1411
|
/** @description Unique identifier for the app */
|
|
1414
|
-
id: string
|
|
1412
|
+
id: string;
|
|
1415
1413
|
/** @description Display name of the app */
|
|
1416
|
-
name: string
|
|
1414
|
+
name: string;
|
|
1417
1415
|
/** @description Category the app belongs to */
|
|
1418
|
-
category: string
|
|
1416
|
+
category: string;
|
|
1419
1417
|
/** @description Short description of the app */
|
|
1420
|
-
description: string
|
|
1418
|
+
description: string;
|
|
1421
1419
|
/** @description Number of installations */
|
|
1422
|
-
installs: string
|
|
1420
|
+
installs: string;
|
|
1423
1421
|
/** @description User rating */
|
|
1424
|
-
rating: number
|
|
1422
|
+
rating: number;
|
|
1425
1423
|
/** @description Icon identifier */
|
|
1426
|
-
icon: string
|
|
1424
|
+
icon: string;
|
|
1427
1425
|
/** @description List of key features */
|
|
1428
|
-
features: string[]
|
|
1426
|
+
features: string[];
|
|
1429
1427
|
/** @description Resource requirements */
|
|
1430
1428
|
requirements: {
|
|
1431
1429
|
/** @description Required CPU cores */
|
|
1432
|
-
cpu: number
|
|
1430
|
+
cpu: number;
|
|
1433
1431
|
/** @description Required memory in GB */
|
|
1434
|
-
memory: number
|
|
1432
|
+
memory: number;
|
|
1435
1433
|
/** @description Required storage in GB */
|
|
1436
|
-
storage: number
|
|
1437
|
-
}
|
|
1434
|
+
storage: number;
|
|
1435
|
+
};
|
|
1438
1436
|
/** @description Configuration options */
|
|
1439
1437
|
configuration: OneOf<
|
|
1440
1438
|
[
|
|
1441
1439
|
{
|
|
1442
1440
|
/** @description Configuration field name */
|
|
1443
|
-
name: string
|
|
1441
|
+
name: string;
|
|
1444
1442
|
/**
|
|
1445
1443
|
* @description String input type
|
|
1446
1444
|
* @enum {string}
|
|
1447
1445
|
*/
|
|
1448
|
-
type:
|
|
1446
|
+
type: "string";
|
|
1449
1447
|
/** @description Whether this field is required */
|
|
1450
|
-
required: boolean
|
|
1448
|
+
required: boolean;
|
|
1451
1449
|
/** @description Default value if any */
|
|
1452
|
-
default?: string
|
|
1450
|
+
default?: string;
|
|
1453
1451
|
},
|
|
1454
1452
|
{
|
|
1455
1453
|
/** @description Configuration field name */
|
|
1456
|
-
name: string
|
|
1454
|
+
name: string;
|
|
1457
1455
|
/**
|
|
1458
1456
|
* @description Number input type
|
|
1459
1457
|
* @enum {string}
|
|
1460
1458
|
*/
|
|
1461
|
-
type:
|
|
1459
|
+
type: "number";
|
|
1462
1460
|
/** @description Whether this field is required */
|
|
1463
|
-
required: boolean
|
|
1461
|
+
required: boolean;
|
|
1464
1462
|
/** @description Default value if any */
|
|
1465
|
-
default?: number
|
|
1463
|
+
default?: number;
|
|
1466
1464
|
},
|
|
1467
1465
|
{
|
|
1468
1466
|
/** @description Configuration field name */
|
|
1469
|
-
name: string
|
|
1467
|
+
name: string;
|
|
1470
1468
|
/**
|
|
1471
1469
|
* @description Boolean toggle type
|
|
1472
1470
|
* @enum {string}
|
|
1473
1471
|
*/
|
|
1474
|
-
type:
|
|
1472
|
+
type: "boolean";
|
|
1475
1473
|
/** @description Whether this field is required */
|
|
1476
|
-
required: boolean
|
|
1474
|
+
required: boolean;
|
|
1477
1475
|
/** @description Default value if any */
|
|
1478
|
-
default?: boolean
|
|
1476
|
+
default?: boolean;
|
|
1479
1477
|
},
|
|
1480
1478
|
{
|
|
1481
1479
|
/** @description Configuration field name */
|
|
1482
|
-
name: string
|
|
1480
|
+
name: string;
|
|
1483
1481
|
/**
|
|
1484
1482
|
* @description Dropdown select type
|
|
1485
1483
|
* @enum {string}
|
|
1486
1484
|
*/
|
|
1487
|
-
type:
|
|
1485
|
+
type: "select";
|
|
1488
1486
|
/** @description Whether this field is required */
|
|
1489
|
-
required: boolean
|
|
1487
|
+
required: boolean;
|
|
1490
1488
|
/** @description Default selected option */
|
|
1491
|
-
default?: string
|
|
1489
|
+
default?: string;
|
|
1492
1490
|
/** @description Available options to select from */
|
|
1493
|
-
options: string[]
|
|
1491
|
+
options: string[];
|
|
1494
1492
|
},
|
|
1495
1493
|
{
|
|
1496
1494
|
/** @description Configuration field name */
|
|
1497
|
-
name: string
|
|
1495
|
+
name: string;
|
|
1498
1496
|
/**
|
|
1499
1497
|
* @description Password input type
|
|
1500
1498
|
* @enum {string}
|
|
1501
1499
|
*/
|
|
1502
|
-
type:
|
|
1500
|
+
type: "password";
|
|
1503
1501
|
/** @description Whether this field is required */
|
|
1504
|
-
required: boolean
|
|
1502
|
+
required: boolean;
|
|
1505
1503
|
/** @description Default value if any */
|
|
1506
|
-
default?: string
|
|
1504
|
+
default?: string;
|
|
1507
1505
|
},
|
|
1508
1506
|
]
|
|
1509
|
-
>[]
|
|
1507
|
+
>[];
|
|
1510
1508
|
/** @description Ingress configuration if applicable */
|
|
1511
1509
|
ingress?: {
|
|
1512
1510
|
/** @description Whether ingress is enabled for this app */
|
|
1513
|
-
enabled: boolean
|
|
1511
|
+
enabled: boolean;
|
|
1514
1512
|
/** @description Hostname pattern for the ingress */
|
|
1515
|
-
hostname: string
|
|
1513
|
+
hostname: string;
|
|
1516
1514
|
/** @description Path for the ingress */
|
|
1517
|
-
path: string
|
|
1515
|
+
path: string;
|
|
1518
1516
|
/** @description Whether TLS is enabled */
|
|
1519
|
-
tls: boolean
|
|
1520
|
-
}
|
|
1521
|
-
}[]
|
|
1517
|
+
tls: boolean;
|
|
1518
|
+
};
|
|
1519
|
+
}[];
|
|
1522
1520
|
/** @enum {string} */
|
|
1523
|
-
object:
|
|
1524
|
-
}
|
|
1521
|
+
object: "list";
|
|
1522
|
+
};
|
|
1525
1523
|
AppInstallRequest: {
|
|
1526
1524
|
/** @description ID of the app to install */
|
|
1527
|
-
appId: string
|
|
1525
|
+
appId: string;
|
|
1528
1526
|
/** @description Kubernetes namespace to install into */
|
|
1529
|
-
namespace: string
|
|
1527
|
+
namespace: string;
|
|
1530
1528
|
/** @description Configuration values */
|
|
1531
1529
|
configuration: {
|
|
1532
|
-
[key: string]: string | number | boolean
|
|
1533
|
-
}
|
|
1534
|
-
}
|
|
1530
|
+
[key: string]: string | number | boolean;
|
|
1531
|
+
};
|
|
1532
|
+
};
|
|
1535
1533
|
AppInstallation: {
|
|
1536
1534
|
/** @description Installation ID */
|
|
1537
|
-
id: string
|
|
1535
|
+
id: string;
|
|
1538
1536
|
/** @description App template ID */
|
|
1539
|
-
appId: string
|
|
1537
|
+
appId: string;
|
|
1540
1538
|
/** @description App name */
|
|
1541
|
-
name: string
|
|
1539
|
+
name: string;
|
|
1542
1540
|
/** @description Kubernetes namespace */
|
|
1543
|
-
namespace: string
|
|
1541
|
+
namespace: string;
|
|
1544
1542
|
/**
|
|
1545
1543
|
* @description Installation status
|
|
1546
1544
|
* @enum {string}
|
|
1547
1545
|
*/
|
|
1548
|
-
status:
|
|
1546
|
+
status: "pending" | "installing" | "running" | "failed";
|
|
1549
1547
|
/** @description Creation timestamp */
|
|
1550
|
-
created: string
|
|
1548
|
+
created: string;
|
|
1551
1549
|
/** @description Status message or error */
|
|
1552
|
-
message?: string
|
|
1550
|
+
message?: string;
|
|
1553
1551
|
/** @description Access URL if available */
|
|
1554
|
-
url?: string
|
|
1552
|
+
url?: string;
|
|
1555
1553
|
/** @description Applied configuration */
|
|
1556
1554
|
configuration: {
|
|
1557
|
-
[key: string]: string | number | boolean
|
|
1558
|
-
}
|
|
1559
|
-
}
|
|
1555
|
+
[key: string]: string | number | boolean;
|
|
1556
|
+
};
|
|
1557
|
+
};
|
|
1560
1558
|
AppInstallationList: {
|
|
1561
1559
|
data: {
|
|
1562
1560
|
/** @description Installation ID */
|
|
1563
|
-
id: string
|
|
1561
|
+
id: string;
|
|
1564
1562
|
/** @description App template ID */
|
|
1565
|
-
appId: string
|
|
1563
|
+
appId: string;
|
|
1566
1564
|
/** @description App name */
|
|
1567
|
-
name: string
|
|
1565
|
+
name: string;
|
|
1568
1566
|
/** @description Kubernetes namespace */
|
|
1569
|
-
namespace: string
|
|
1567
|
+
namespace: string;
|
|
1570
1568
|
/**
|
|
1571
1569
|
* @description Installation status
|
|
1572
1570
|
* @enum {string}
|
|
1573
1571
|
*/
|
|
1574
|
-
status:
|
|
1572
|
+
status: "pending" | "installing" | "running" | "failed";
|
|
1575
1573
|
/** @description Creation timestamp */
|
|
1576
|
-
created: string
|
|
1574
|
+
created: string;
|
|
1577
1575
|
/** @description Status message or error */
|
|
1578
|
-
message?: string
|
|
1576
|
+
message?: string;
|
|
1579
1577
|
/** @description Access URL if available */
|
|
1580
|
-
url?: string
|
|
1578
|
+
url?: string;
|
|
1581
1579
|
/** @description Applied configuration */
|
|
1582
1580
|
configuration: {
|
|
1583
|
-
[key: string]: string | number | boolean
|
|
1584
|
-
}
|
|
1585
|
-
}[]
|
|
1581
|
+
[key: string]: string | number | boolean;
|
|
1582
|
+
};
|
|
1583
|
+
}[];
|
|
1586
1584
|
/** @enum {string} */
|
|
1587
|
-
object:
|
|
1588
|
-
}
|
|
1585
|
+
object: "list";
|
|
1586
|
+
};
|
|
1589
1587
|
AuthToken: {
|
|
1590
|
-
accessToken: string
|
|
1591
|
-
expiresIn: number
|
|
1588
|
+
accessToken: string;
|
|
1589
|
+
expiresIn: number;
|
|
1592
1590
|
user?: {
|
|
1593
|
-
id: string
|
|
1594
|
-
name: string
|
|
1591
|
+
id: string;
|
|
1592
|
+
name: string;
|
|
1595
1593
|
/** Format: email */
|
|
1596
|
-
email: string
|
|
1597
|
-
}
|
|
1598
|
-
}
|
|
1594
|
+
email: string;
|
|
1595
|
+
};
|
|
1596
|
+
};
|
|
1599
1597
|
User: {
|
|
1600
|
-
id: string
|
|
1601
|
-
login: string
|
|
1602
|
-
name: string | null
|
|
1598
|
+
id: string;
|
|
1599
|
+
login: string;
|
|
1600
|
+
name: string | null;
|
|
1603
1601
|
/** Format: email */
|
|
1604
|
-
email: string | null
|
|
1602
|
+
email: string | null;
|
|
1605
1603
|
/** Format: uri */
|
|
1606
|
-
avatarUrl: string
|
|
1607
|
-
}
|
|
1604
|
+
avatarUrl: string;
|
|
1605
|
+
};
|
|
1608
1606
|
RefreshTokenRequest: {
|
|
1609
1607
|
/** @description The refresh token to use */
|
|
1610
|
-
refresh_token: string
|
|
1608
|
+
refresh_token: string;
|
|
1611
1609
|
/** @description Whether this is a device token */
|
|
1612
|
-
is_device_token?: boolean
|
|
1613
|
-
}
|
|
1610
|
+
is_device_token?: boolean;
|
|
1611
|
+
};
|
|
1614
1612
|
RefreshTokenResponse: {
|
|
1615
1613
|
/** @description The new access token */
|
|
1616
|
-
token: string
|
|
1614
|
+
token: string;
|
|
1617
1615
|
/** @description The new refresh token */
|
|
1618
|
-
refresh_token: string
|
|
1616
|
+
refresh_token: string;
|
|
1619
1617
|
/** @description Seconds until the access token expires */
|
|
1620
|
-
expires_in: number
|
|
1618
|
+
expires_in: number;
|
|
1621
1619
|
/** @description Seconds until the refresh token expires */
|
|
1622
|
-
refresh_expires_in: number
|
|
1623
|
-
}
|
|
1620
|
+
refresh_expires_in: number;
|
|
1621
|
+
};
|
|
1624
1622
|
DeviceAuthRequest: {
|
|
1625
1623
|
/** @description The device code obtained from the device authorization request */
|
|
1626
|
-
device_code: string
|
|
1627
|
-
}
|
|
1624
|
+
device_code: string;
|
|
1625
|
+
};
|
|
1628
1626
|
DeviceAuthInitResponse: {
|
|
1629
1627
|
/** @description Code used by the device to poll for authentication status */
|
|
1630
|
-
device_code: string
|
|
1628
|
+
device_code: string;
|
|
1631
1629
|
/** @description Code displayed to the user for authentication */
|
|
1632
|
-
user_code: string
|
|
1630
|
+
user_code: string;
|
|
1633
1631
|
/** @description URL where the user should enter the user_code */
|
|
1634
|
-
verification_url: string
|
|
1632
|
+
verification_url: string;
|
|
1635
1633
|
/** @description Expiration time in seconds */
|
|
1636
|
-
expires_in: number
|
|
1634
|
+
expires_in: number;
|
|
1637
1635
|
/** @description Polling interval in seconds */
|
|
1638
|
-
interval: number
|
|
1639
|
-
}
|
|
1636
|
+
interval: number;
|
|
1637
|
+
};
|
|
1640
1638
|
DeviceAuthPendingResponse: {
|
|
1641
1639
|
/**
|
|
1642
1640
|
* @description Authentication is still pending
|
|
1643
1641
|
* @enum {string}
|
|
1644
1642
|
*/
|
|
1645
|
-
status:
|
|
1646
|
-
}
|
|
1643
|
+
status: "pending";
|
|
1644
|
+
};
|
|
1647
1645
|
DeviceAuthTokenResponse: {
|
|
1648
1646
|
/** @description Access token */
|
|
1649
|
-
token: string
|
|
1647
|
+
token: string;
|
|
1650
1648
|
/** @description Refresh token */
|
|
1651
|
-
refresh_token: string
|
|
1649
|
+
refresh_token: string;
|
|
1652
1650
|
/** @description Access token expiration time in seconds */
|
|
1653
|
-
expires_in: number
|
|
1651
|
+
expires_in: number;
|
|
1654
1652
|
/** @description Refresh token expiration time in seconds */
|
|
1655
|
-
refresh_expires_in: number
|
|
1656
|
-
}
|
|
1653
|
+
refresh_expires_in: number;
|
|
1654
|
+
};
|
|
1657
1655
|
Usage: {
|
|
1658
1656
|
current_period: {
|
|
1659
1657
|
/** Format: date-time */
|
|
1660
|
-
start_date: string
|
|
1658
|
+
start_date: string;
|
|
1661
1659
|
/** Format: date-time */
|
|
1662
|
-
end_date: string
|
|
1663
|
-
}
|
|
1660
|
+
end_date: string;
|
|
1661
|
+
};
|
|
1664
1662
|
metrics: {
|
|
1665
|
-
name: string
|
|
1666
|
-
value: number
|
|
1667
|
-
unit: string
|
|
1668
|
-
cost: number
|
|
1669
|
-
currency: string
|
|
1670
|
-
}[]
|
|
1663
|
+
name: string;
|
|
1664
|
+
value: number;
|
|
1665
|
+
unit: string;
|
|
1666
|
+
cost: number;
|
|
1667
|
+
currency: string;
|
|
1668
|
+
}[];
|
|
1671
1669
|
total: {
|
|
1672
|
-
amount: number
|
|
1673
|
-
currency: string
|
|
1674
|
-
}
|
|
1675
|
-
}
|
|
1670
|
+
amount: number;
|
|
1671
|
+
currency: string;
|
|
1672
|
+
};
|
|
1673
|
+
};
|
|
1676
1674
|
Invoice: {
|
|
1677
|
-
id: string
|
|
1678
|
-
number: string
|
|
1675
|
+
id: string;
|
|
1676
|
+
number: string;
|
|
1679
1677
|
/** Format: date-time */
|
|
1680
|
-
issuingDate: string
|
|
1678
|
+
issuingDate: string;
|
|
1681
1679
|
/** @enum {string} */
|
|
1682
|
-
paymentStatus:
|
|
1683
|
-
amount: number
|
|
1684
|
-
currency: string
|
|
1685
|
-
customerId: string
|
|
1680
|
+
paymentStatus: "pending" | "succeeded" | "failed";
|
|
1681
|
+
amount: number;
|
|
1682
|
+
currency: string;
|
|
1683
|
+
customerId: string;
|
|
1686
1684
|
customer: {
|
|
1687
|
-
id: string
|
|
1688
|
-
name: string
|
|
1685
|
+
id: string;
|
|
1686
|
+
name: string;
|
|
1689
1687
|
/** Format: email */
|
|
1690
|
-
email: string
|
|
1688
|
+
email: string;
|
|
1691
1689
|
/** Format: date-time */
|
|
1692
|
-
createdAt: string
|
|
1693
|
-
}
|
|
1694
|
-
}
|
|
1690
|
+
createdAt: string;
|
|
1691
|
+
};
|
|
1692
|
+
};
|
|
1695
1693
|
PaymentMethod: {
|
|
1696
|
-
id: string
|
|
1694
|
+
id: string;
|
|
1697
1695
|
/** @enum {string} */
|
|
1698
|
-
type:
|
|
1699
|
-
last4: string
|
|
1700
|
-
expMonth?: number
|
|
1701
|
-
expYear?: number
|
|
1702
|
-
brand?: string
|
|
1703
|
-
isDefault: boolean
|
|
1704
|
-
}
|
|
1696
|
+
type: "card" | "sepa";
|
|
1697
|
+
last4: string;
|
|
1698
|
+
expMonth?: number;
|
|
1699
|
+
expYear?: number;
|
|
1700
|
+
brand?: string;
|
|
1701
|
+
isDefault: boolean;
|
|
1702
|
+
};
|
|
1705
1703
|
CreatePaymentMethod: {
|
|
1706
1704
|
/** @enum {string} */
|
|
1707
|
-
type:
|
|
1708
|
-
token: string
|
|
1709
|
-
setDefault?: boolean
|
|
1710
|
-
}
|
|
1705
|
+
type: "card" | "sepa";
|
|
1706
|
+
token: string;
|
|
1707
|
+
setDefault?: boolean;
|
|
1708
|
+
};
|
|
1711
1709
|
UpdateSubscription: {
|
|
1712
|
-
planId: string
|
|
1713
|
-
quantity?: number
|
|
1714
|
-
}
|
|
1710
|
+
planId: string;
|
|
1711
|
+
quantity?: number;
|
|
1712
|
+
};
|
|
1715
1713
|
ChatMessage: {
|
|
1716
1714
|
/**
|
|
1717
1715
|
* @default user
|
|
1718
1716
|
* @enum {string}
|
|
1719
1717
|
*/
|
|
1720
|
-
role?:
|
|
1721
|
-
content: string
|
|
1722
|
-
}
|
|
1718
|
+
role?: "system" | "user" | "assistant";
|
|
1719
|
+
content: string;
|
|
1720
|
+
};
|
|
1723
1721
|
ChatCompletionRequest: {
|
|
1724
|
-
model: string
|
|
1725
|
-
messages: components[
|
|
1726
|
-
temperature?: number
|
|
1722
|
+
model: string;
|
|
1723
|
+
messages: components["schemas"]["ChatMessage"][];
|
|
1724
|
+
temperature?: number;
|
|
1727
1725
|
/** @default 4096 */
|
|
1728
|
-
max_tokens?: number
|
|
1726
|
+
max_tokens?: number;
|
|
1729
1727
|
/** @default false */
|
|
1730
|
-
stream?: boolean
|
|
1728
|
+
stream?: boolean;
|
|
1731
1729
|
/** @default 1 */
|
|
1732
|
-
top_p?: number
|
|
1733
|
-
}
|
|
1730
|
+
top_p?: number;
|
|
1731
|
+
};
|
|
1734
1732
|
ChatCompletionResponse: {
|
|
1735
1733
|
/** @description Unique identifier for this completion */
|
|
1736
|
-
id: string
|
|
1734
|
+
id: string;
|
|
1737
1735
|
/** @enum {string} */
|
|
1738
|
-
object:
|
|
1736
|
+
object: "chat.completion";
|
|
1739
1737
|
/** @description Unix timestamp of when the completion was created */
|
|
1740
|
-
created: number
|
|
1738
|
+
created: number;
|
|
1741
1739
|
/** @description The model used for completion */
|
|
1742
|
-
model: string
|
|
1740
|
+
model: string;
|
|
1743
1741
|
choices: {
|
|
1744
1742
|
message: {
|
|
1745
1743
|
/** @enum {string} */
|
|
1746
|
-
role:
|
|
1744
|
+
role: "assistant";
|
|
1747
1745
|
/** @description The model's response */
|
|
1748
|
-
content: string
|
|
1749
|
-
}
|
|
1746
|
+
content: string;
|
|
1747
|
+
};
|
|
1750
1748
|
/** @enum {string} */
|
|
1751
|
-
finish_reason:
|
|
1752
|
-
index: number
|
|
1753
|
-
}[]
|
|
1749
|
+
finish_reason: "stop" | "length" | "content_filter";
|
|
1750
|
+
index: number;
|
|
1751
|
+
}[];
|
|
1754
1752
|
usage: {
|
|
1755
|
-
prompt_tokens: number
|
|
1756
|
-
completion_tokens: number
|
|
1757
|
-
total_tokens: number
|
|
1758
|
-
}
|
|
1759
|
-
}
|
|
1753
|
+
prompt_tokens: number;
|
|
1754
|
+
completion_tokens: number;
|
|
1755
|
+
total_tokens: number;
|
|
1756
|
+
};
|
|
1757
|
+
};
|
|
1760
1758
|
Cluster: {
|
|
1761
1759
|
/** @description Unique identifier for the cluster */
|
|
1762
|
-
id: string
|
|
1760
|
+
id: string;
|
|
1763
1761
|
/** @description Display name of the cluster */
|
|
1764
|
-
name: string
|
|
1762
|
+
name: string;
|
|
1765
1763
|
/** @description Cloud provider (AWS, GCP, Azure, etc.) */
|
|
1766
|
-
provider: string
|
|
1764
|
+
provider: string;
|
|
1767
1765
|
/** @description Cloud region where the cluster is deployed */
|
|
1768
|
-
region: string
|
|
1766
|
+
region: string;
|
|
1769
1767
|
/** @description Kubernetes version */
|
|
1770
|
-
version: string
|
|
1768
|
+
version: string;
|
|
1771
1769
|
/** @description Number of nodes in the cluster */
|
|
1772
|
-
nodes: number
|
|
1770
|
+
nodes: number;
|
|
1773
1771
|
/**
|
|
1774
1772
|
* @description Current status of the cluster
|
|
1775
1773
|
* @enum {string}
|
|
1776
1774
|
*/
|
|
1777
|
-
status:
|
|
1775
|
+
status: "healthy" | "degraded" | "unhealthy" | "unknown";
|
|
1778
1776
|
/**
|
|
1779
1777
|
* Format: date-time
|
|
1780
1778
|
* @description Creation timestamp
|
|
1781
1779
|
*/
|
|
1782
|
-
created: string
|
|
1783
|
-
}
|
|
1780
|
+
created: string;
|
|
1781
|
+
};
|
|
1784
1782
|
ClusterList: {
|
|
1785
|
-
data: components[
|
|
1783
|
+
data: components["schemas"]["Cluster"][];
|
|
1786
1784
|
/** @enum {string} */
|
|
1787
|
-
object:
|
|
1788
|
-
}
|
|
1785
|
+
object: "list";
|
|
1786
|
+
};
|
|
1789
1787
|
ResourceMetric: {
|
|
1790
1788
|
/** @description Total allocated resources */
|
|
1791
|
-
allocated: number
|
|
1789
|
+
allocated: number;
|
|
1792
1790
|
/** @description Currently used resources */
|
|
1793
|
-
used: number
|
|
1791
|
+
used: number;
|
|
1794
1792
|
/** @description Available resources */
|
|
1795
|
-
available: number
|
|
1793
|
+
available: number;
|
|
1796
1794
|
/** @description Unit of measurement (e.g., cores, GB) */
|
|
1797
|
-
unit: string
|
|
1798
|
-
}
|
|
1795
|
+
unit: string;
|
|
1796
|
+
};
|
|
1799
1797
|
/** @description Cost breakdown */
|
|
1800
1798
|
ClusterCost: {
|
|
1801
1799
|
/** @description Cost for CPU resources */
|
|
1802
|
-
cpu: number
|
|
1800
|
+
cpu: number;
|
|
1803
1801
|
/** @description Cost for memory resources */
|
|
1804
|
-
memory: number
|
|
1802
|
+
memory: number;
|
|
1805
1803
|
/** @description Cost for storage resources */
|
|
1806
|
-
storage: number
|
|
1804
|
+
storage: number;
|
|
1807
1805
|
/** @description Cost for network resources */
|
|
1808
|
-
network: number
|
|
1806
|
+
network: number;
|
|
1809
1807
|
/** @description Total cost */
|
|
1810
|
-
total: number
|
|
1808
|
+
total: number;
|
|
1811
1809
|
/** @description Currency code (e.g., USD, EUR) */
|
|
1812
|
-
currency: string
|
|
1813
|
-
}
|
|
1810
|
+
currency: string;
|
|
1811
|
+
};
|
|
1814
1812
|
ClusterUsage: {
|
|
1815
1813
|
/** @description Unique cluster identifier */
|
|
1816
|
-
id: string
|
|
1814
|
+
id: string;
|
|
1817
1815
|
/** @description Cluster name */
|
|
1818
|
-
name: string
|
|
1816
|
+
name: string;
|
|
1819
1817
|
/** @description Resource usage metrics */
|
|
1820
1818
|
resources: {
|
|
1821
|
-
cpu: components[
|
|
1822
|
-
memory: components[
|
|
1823
|
-
storage: components[
|
|
1824
|
-
}
|
|
1825
|
-
cost: components[
|
|
1819
|
+
cpu: components["schemas"]["ResourceMetric"];
|
|
1820
|
+
memory: components["schemas"]["ResourceMetric"];
|
|
1821
|
+
storage: components["schemas"]["ResourceMetric"];
|
|
1822
|
+
};
|
|
1823
|
+
cost: components["schemas"]["ClusterCost"];
|
|
1826
1824
|
/** @description Number of nodes in the cluster */
|
|
1827
|
-
nodes: number
|
|
1825
|
+
nodes: number;
|
|
1828
1826
|
/** @description Current cluster status */
|
|
1829
|
-
status: string
|
|
1830
|
-
}
|
|
1831
|
-
ResourceMetricWithTrend: components[
|
|
1827
|
+
status: string;
|
|
1828
|
+
};
|
|
1829
|
+
ResourceMetricWithTrend: components["schemas"]["ResourceMetric"] & {
|
|
1832
1830
|
/** @description Historical usage trend data */
|
|
1833
1831
|
usage_trend: {
|
|
1834
1832
|
/** @description Date in YYYY-MM-DD format */
|
|
1835
|
-
date: string
|
|
1833
|
+
date: string;
|
|
1836
1834
|
/** @description Resource usage value for this date */
|
|
1837
|
-
value: number
|
|
1838
|
-
}[]
|
|
1839
|
-
}
|
|
1835
|
+
value: number;
|
|
1836
|
+
}[];
|
|
1837
|
+
};
|
|
1840
1838
|
DailyCost: {
|
|
1841
1839
|
/** @description Date in YYYY-MM-DD format */
|
|
1842
|
-
date: string
|
|
1840
|
+
date: string;
|
|
1843
1841
|
/** @description CPU cost for this day */
|
|
1844
|
-
cpu: number
|
|
1842
|
+
cpu: number;
|
|
1845
1843
|
/** @description Memory cost for this day */
|
|
1846
|
-
memory: number
|
|
1844
|
+
memory: number;
|
|
1847
1845
|
/** @description Storage cost for this day */
|
|
1848
|
-
storage: number
|
|
1846
|
+
storage: number;
|
|
1849
1847
|
/** @description Network cost for this day */
|
|
1850
|
-
network: number
|
|
1848
|
+
network: number;
|
|
1851
1849
|
/** @description Total cost for this day */
|
|
1852
|
-
total: number
|
|
1853
|
-
}
|
|
1850
|
+
total: number;
|
|
1851
|
+
};
|
|
1854
1852
|
/** @description Detailed cost breakdown with daily data */
|
|
1855
|
-
ClusterCostWithDaily: components[
|
|
1853
|
+
ClusterCostWithDaily: components["schemas"]["ClusterCost"] & {
|
|
1856
1854
|
/** @description Daily cost breakdown */
|
|
1857
|
-
daily: components[
|
|
1858
|
-
}
|
|
1855
|
+
daily: components["schemas"]["DailyCost"][];
|
|
1856
|
+
};
|
|
1859
1857
|
ClusterDetailedUsage: {
|
|
1860
1858
|
/** @description Unique cluster identifier */
|
|
1861
|
-
id: string
|
|
1859
|
+
id: string;
|
|
1862
1860
|
/** @description Cluster name */
|
|
1863
|
-
name: string
|
|
1861
|
+
name: string;
|
|
1864
1862
|
/** @description Detailed resource usage metrics with trends */
|
|
1865
1863
|
resources: {
|
|
1866
|
-
cpu: components[
|
|
1867
|
-
memory: components[
|
|
1868
|
-
storage: components[
|
|
1869
|
-
}
|
|
1870
|
-
cost: components[
|
|
1864
|
+
cpu: components["schemas"]["ResourceMetricWithTrend"];
|
|
1865
|
+
memory: components["schemas"]["ResourceMetricWithTrend"];
|
|
1866
|
+
storage: components["schemas"]["ResourceMetricWithTrend"];
|
|
1867
|
+
};
|
|
1868
|
+
cost: components["schemas"]["ClusterCostWithDaily"];
|
|
1871
1869
|
/** @description Number of nodes in the cluster */
|
|
1872
|
-
nodes: number
|
|
1870
|
+
nodes: number;
|
|
1873
1871
|
/** @description Current cluster status */
|
|
1874
|
-
status: string
|
|
1872
|
+
status: string;
|
|
1875
1873
|
/** @description Time period for the usage data */
|
|
1876
1874
|
period: {
|
|
1877
1875
|
/** @description Start date of the period (YYYY-MM-DD) */
|
|
1878
|
-
start: string
|
|
1876
|
+
start: string;
|
|
1879
1877
|
/** @description End date of the period (YYYY-MM-DD) */
|
|
1880
|
-
end: string
|
|
1881
|
-
}
|
|
1882
|
-
}
|
|
1878
|
+
end: string;
|
|
1879
|
+
};
|
|
1880
|
+
};
|
|
1883
1881
|
ClustersUsageResponse: {
|
|
1884
1882
|
/** @description List of clusters with usage data */
|
|
1885
|
-
clusters: components[
|
|
1883
|
+
clusters: components["schemas"]["ClusterUsage"][];
|
|
1886
1884
|
/** @description Time period for the usage data */
|
|
1887
1885
|
period: {
|
|
1888
1886
|
/** @description Start date of the period (YYYY-MM-DD) */
|
|
1889
|
-
start: string
|
|
1887
|
+
start: string;
|
|
1890
1888
|
/** @description End date of the period (YYYY-MM-DD) */
|
|
1891
|
-
end: string
|
|
1892
|
-
}
|
|
1889
|
+
end: string;
|
|
1890
|
+
};
|
|
1893
1891
|
/** @description Aggregated totals */
|
|
1894
1892
|
total: {
|
|
1895
1893
|
/** @description Total cost breakdown across all clusters */
|
|
1896
1894
|
cost: {
|
|
1897
1895
|
/** @description Total CPU cost across all clusters */
|
|
1898
|
-
cpu: number
|
|
1896
|
+
cpu: number;
|
|
1899
1897
|
/** @description Total memory cost across all clusters */
|
|
1900
|
-
memory: number
|
|
1898
|
+
memory: number;
|
|
1901
1899
|
/** @description Total storage cost across all clusters */
|
|
1902
|
-
storage: number
|
|
1900
|
+
storage: number;
|
|
1903
1901
|
/** @description Total network cost across all clusters */
|
|
1904
|
-
network: number
|
|
1902
|
+
network: number;
|
|
1905
1903
|
/** @description Total cost across all clusters */
|
|
1906
|
-
total: number
|
|
1904
|
+
total: number;
|
|
1907
1905
|
/** @description Currency code (e.g., USD, EUR) */
|
|
1908
|
-
currency: string
|
|
1909
|
-
}
|
|
1910
|
-
}
|
|
1911
|
-
}
|
|
1906
|
+
currency: string;
|
|
1907
|
+
};
|
|
1908
|
+
};
|
|
1909
|
+
};
|
|
1912
1910
|
Model: {
|
|
1913
1911
|
/** @description Unique identifier for the model */
|
|
1914
|
-
id: string
|
|
1912
|
+
id: string;
|
|
1915
1913
|
/** @description Name of the model */
|
|
1916
|
-
name: string
|
|
1914
|
+
name: string;
|
|
1917
1915
|
/** @description Description of the model */
|
|
1918
|
-
description: string
|
|
1916
|
+
description: string;
|
|
1919
1917
|
/** @description Whether the model is active */
|
|
1920
|
-
active: boolean
|
|
1921
|
-
}
|
|
1922
|
-
ModelList: components[
|
|
1918
|
+
active: boolean;
|
|
1919
|
+
};
|
|
1920
|
+
ModelList: components["schemas"]["Model"][];
|
|
1923
1921
|
/** @description Cost information for this usage */
|
|
1924
1922
|
TokenCost: {
|
|
1925
1923
|
/** @description Cost amount */
|
|
1926
|
-
amount: number
|
|
1924
|
+
amount: number;
|
|
1927
1925
|
/** @description Currency code (e.g., USD, EUR) */
|
|
1928
|
-
currency: string
|
|
1929
|
-
}
|
|
1926
|
+
currency: string;
|
|
1927
|
+
};
|
|
1930
1928
|
DailyTokenUsage: {
|
|
1931
1929
|
/** @description Usage date in YYYY-MM-DD format */
|
|
1932
|
-
date: string
|
|
1930
|
+
date: string;
|
|
1933
1931
|
/** @description Model identifier */
|
|
1934
|
-
model?: string
|
|
1932
|
+
model?: string;
|
|
1935
1933
|
/** @description Number of input tokens used */
|
|
1936
|
-
input_tokens: number
|
|
1934
|
+
input_tokens: number;
|
|
1937
1935
|
/** @description Number of output tokens generated */
|
|
1938
|
-
output_tokens: number
|
|
1936
|
+
output_tokens: number;
|
|
1939
1937
|
/** @description Total tokens (input + output) */
|
|
1940
|
-
total_tokens: number
|
|
1941
|
-
cost: components[
|
|
1942
|
-
}
|
|
1938
|
+
total_tokens: number;
|
|
1939
|
+
cost: components["schemas"]["TokenCost"];
|
|
1940
|
+
};
|
|
1943
1941
|
/** @description Aggregated usage totals */
|
|
1944
1942
|
TokenUsageTotal: {
|
|
1945
1943
|
/** @description Total input tokens for the period */
|
|
1946
|
-
input_tokens: number
|
|
1944
|
+
input_tokens: number;
|
|
1947
1945
|
/** @description Total output tokens for the period */
|
|
1948
|
-
output_tokens: number
|
|
1946
|
+
output_tokens: number;
|
|
1949
1947
|
/** @description Total tokens for the period */
|
|
1950
|
-
total_tokens: number
|
|
1951
|
-
cost: components[
|
|
1952
|
-
}
|
|
1948
|
+
total_tokens: number;
|
|
1949
|
+
cost: components["schemas"]["TokenCost"];
|
|
1950
|
+
};
|
|
1953
1951
|
/** @description Time period for the usage data */
|
|
1954
1952
|
TokenUsagePeriod: {
|
|
1955
1953
|
/** @description Start date of the period (YYYY-MM-DD) */
|
|
1956
|
-
start: string
|
|
1954
|
+
start: string;
|
|
1957
1955
|
/** @description End date of the period (YYYY-MM-DD) */
|
|
1958
|
-
end: string
|
|
1959
|
-
}
|
|
1956
|
+
end: string;
|
|
1957
|
+
};
|
|
1960
1958
|
TokenUsageResponse: {
|
|
1961
1959
|
/** @description Daily token usage data */
|
|
1962
|
-
usage: components[
|
|
1963
|
-
total: components[
|
|
1964
|
-
period: components[
|
|
1965
|
-
}
|
|
1960
|
+
usage: components["schemas"]["DailyTokenUsage"][];
|
|
1961
|
+
total: components["schemas"]["TokenUsageTotal"];
|
|
1962
|
+
period: components["schemas"]["TokenUsagePeriod"];
|
|
1963
|
+
};
|
|
1966
1964
|
ModelTokenUsageResponse: {
|
|
1967
1965
|
/** @description Model identifier */
|
|
1968
|
-
model: string
|
|
1966
|
+
model: string;
|
|
1969
1967
|
/** @description Daily token usage data */
|
|
1970
|
-
usage: components[
|
|
1971
|
-
total: components[
|
|
1972
|
-
period: components[
|
|
1973
|
-
}
|
|
1968
|
+
usage: components["schemas"]["DailyTokenUsage"][];
|
|
1969
|
+
total: components["schemas"]["TokenUsageTotal"];
|
|
1970
|
+
period: components["schemas"]["TokenUsagePeriod"];
|
|
1971
|
+
};
|
|
1974
1972
|
/** @description Complete user profile including company details */
|
|
1975
1973
|
UserProfile: {
|
|
1976
1974
|
/** @description Unique identifier for the user */
|
|
1977
|
-
id: string
|
|
1975
|
+
id: string;
|
|
1978
1976
|
/**
|
|
1979
1977
|
* Format: email
|
|
1980
1978
|
* @description User's email address
|
|
1981
1979
|
*/
|
|
1982
|
-
email: string
|
|
1980
|
+
email: string;
|
|
1983
1981
|
/** @description Full name of the user */
|
|
1984
|
-
name: string
|
|
1982
|
+
name: string;
|
|
1985
1983
|
/** @description Contact phone number */
|
|
1986
|
-
phone: string | null
|
|
1984
|
+
phone: string | null;
|
|
1987
1985
|
/** @description ID of the company the user belongs to */
|
|
1988
|
-
company_id: number
|
|
1986
|
+
company_id: number;
|
|
1989
1987
|
/** @description Username for login */
|
|
1990
|
-
login: string
|
|
1988
|
+
login: string;
|
|
1991
1989
|
/**
|
|
1992
1990
|
* @description User role determining permissions
|
|
1993
1991
|
* @enum {string}
|
|
1994
1992
|
*/
|
|
1995
|
-
role:
|
|
1993
|
+
role: "admin" | "member";
|
|
1996
1994
|
/** @description Whether the user account is active */
|
|
1997
|
-
active: boolean | null
|
|
1995
|
+
active: boolean | null;
|
|
1998
1996
|
/**
|
|
1999
1997
|
* Format: date-time
|
|
2000
1998
|
* @description When the user was created
|
|
2001
1999
|
*/
|
|
2002
|
-
createdAt: string | null
|
|
2000
|
+
createdAt: string | null;
|
|
2003
2001
|
/**
|
|
2004
2002
|
* Format: date-time
|
|
2005
2003
|
* @description Last update timestamp
|
|
2006
2004
|
*/
|
|
2007
|
-
updatedAt: string | null
|
|
2005
|
+
updatedAt: string | null;
|
|
2008
2006
|
/** @description User preferences and settings */
|
|
2009
2007
|
settings?: {
|
|
2010
2008
|
/** @description Email notification preferences */
|
|
2011
|
-
notifications: boolean
|
|
2009
|
+
notifications: boolean;
|
|
2012
2010
|
/** @description User's preferred timezone */
|
|
2013
|
-
timezone: string
|
|
2011
|
+
timezone: string;
|
|
2014
2012
|
/** @description Preferred interface language */
|
|
2015
|
-
language?: string
|
|
2013
|
+
language?: string;
|
|
2016
2014
|
/**
|
|
2017
2015
|
* @description UI theme preference
|
|
2018
2016
|
* @enum {string}
|
|
2019
2017
|
*/
|
|
2020
|
-
theme?:
|
|
2021
|
-
}
|
|
2018
|
+
theme?: "light" | "dark" | "system";
|
|
2019
|
+
};
|
|
2022
2020
|
/** @description Associated company details */
|
|
2023
2021
|
company?: {
|
|
2024
2022
|
/** @description Company unique identifier */
|
|
2025
|
-
id: number
|
|
2023
|
+
id: number;
|
|
2026
2024
|
/** @description Legal company name */
|
|
2027
|
-
name: string
|
|
2025
|
+
name: string;
|
|
2028
2026
|
/** @description VAT identification number */
|
|
2029
|
-
vat: string
|
|
2027
|
+
vat: string;
|
|
2030
2028
|
/**
|
|
2031
2029
|
* Format: email
|
|
2032
2030
|
* @description Company email address
|
|
2033
2031
|
*/
|
|
2034
|
-
email: string
|
|
2032
|
+
email: string;
|
|
2035
2033
|
/** @description Company phone number */
|
|
2036
|
-
phone: string | null
|
|
2034
|
+
phone: string | null;
|
|
2037
2035
|
/** @description Street address */
|
|
2038
|
-
street: string | null
|
|
2036
|
+
street: string | null;
|
|
2039
2037
|
/** @description City */
|
|
2040
|
-
city: string | null
|
|
2038
|
+
city: string | null;
|
|
2041
2039
|
/** @description Company country information */
|
|
2042
2040
|
country: {
|
|
2043
2041
|
/** @description Country ID */
|
|
2044
|
-
id: number
|
|
2042
|
+
id: number;
|
|
2045
2043
|
/** @description Country name */
|
|
2046
|
-
name: string
|
|
2044
|
+
name: string;
|
|
2047
2045
|
/** @description ISO country code */
|
|
2048
|
-
code: string
|
|
2049
|
-
} | null
|
|
2050
|
-
}
|
|
2051
|
-
}
|
|
2046
|
+
code: string;
|
|
2047
|
+
} | null;
|
|
2048
|
+
};
|
|
2049
|
+
};
|
|
2052
2050
|
CreateUser: {
|
|
2053
|
-
name: string
|
|
2051
|
+
name: string;
|
|
2054
2052
|
/** Format: email */
|
|
2055
|
-
email: string
|
|
2056
|
-
phone: string | null
|
|
2057
|
-
company_id: number
|
|
2053
|
+
email: string;
|
|
2054
|
+
phone: string | null;
|
|
2055
|
+
company_id: number;
|
|
2058
2056
|
/** @enum {string} */
|
|
2059
|
-
role:
|
|
2057
|
+
role: "admin" | "member";
|
|
2060
2058
|
settings?: {
|
|
2061
|
-
notifications: boolean
|
|
2062
|
-
timezone: string
|
|
2063
|
-
language?: string
|
|
2059
|
+
notifications: boolean;
|
|
2060
|
+
timezone: string;
|
|
2061
|
+
language?: string;
|
|
2064
2062
|
/** @enum {string} */
|
|
2065
|
-
theme?:
|
|
2066
|
-
}
|
|
2067
|
-
}
|
|
2063
|
+
theme?: "light" | "dark" | "system";
|
|
2064
|
+
};
|
|
2065
|
+
};
|
|
2068
2066
|
UpdateUser: {
|
|
2069
|
-
name?: string
|
|
2067
|
+
name?: string;
|
|
2070
2068
|
/** Format: email */
|
|
2071
|
-
email?: string
|
|
2072
|
-
phone?: string | null
|
|
2069
|
+
email?: string;
|
|
2070
|
+
phone?: string | null;
|
|
2073
2071
|
settings?: {
|
|
2074
|
-
notifications: boolean
|
|
2075
|
-
timezone: string
|
|
2076
|
-
language?: string
|
|
2072
|
+
notifications: boolean;
|
|
2073
|
+
timezone: string;
|
|
2074
|
+
language?: string;
|
|
2077
2075
|
/** @enum {string} */
|
|
2078
|
-
theme?:
|
|
2079
|
-
}
|
|
2080
|
-
}
|
|
2076
|
+
theme?: "light" | "dark" | "system";
|
|
2077
|
+
};
|
|
2078
|
+
};
|
|
2081
2079
|
InviteUser: {
|
|
2082
2080
|
/**
|
|
2083
2081
|
* Format: email
|
|
2084
2082
|
* @description Email address of the person to invite
|
|
2085
2083
|
*/
|
|
2086
|
-
email: string
|
|
2084
|
+
email: string;
|
|
2087
2085
|
/**
|
|
2088
2086
|
* @description Role to assign to the new team member
|
|
2089
2087
|
* @enum {string}
|
|
2090
2088
|
*/
|
|
2091
|
-
role:
|
|
2089
|
+
role: "admin" | "member";
|
|
2092
2090
|
/** @description Company ID to invite the user to (defaults to current user's company) */
|
|
2093
|
-
companyId?: number
|
|
2094
|
-
}
|
|
2091
|
+
companyId?: number;
|
|
2092
|
+
};
|
|
2095
2093
|
ErrorResponse: {
|
|
2096
|
-
error: string
|
|
2097
|
-
code?: string
|
|
2098
|
-
details?: unknown
|
|
2099
|
-
}
|
|
2094
|
+
error: string;
|
|
2095
|
+
code?: string;
|
|
2096
|
+
details?: unknown;
|
|
2097
|
+
};
|
|
2100
2098
|
HealthCheck: {
|
|
2101
|
-
status: string
|
|
2102
|
-
timestamp: string
|
|
2103
|
-
version: string
|
|
2104
|
-
npmVersion: string
|
|
2105
|
-
environment: string
|
|
2106
|
-
}
|
|
2107
|
-
}
|
|
2108
|
-
responses: never
|
|
2109
|
-
parameters: {}
|
|
2110
|
-
requestBodies: never
|
|
2111
|
-
headers: never
|
|
2112
|
-
pathItems: never
|
|
2099
|
+
status: string;
|
|
2100
|
+
timestamp: string;
|
|
2101
|
+
version: string;
|
|
2102
|
+
npmVersion: string;
|
|
2103
|
+
environment: string;
|
|
2104
|
+
};
|
|
2105
|
+
};
|
|
2106
|
+
responses: never;
|
|
2107
|
+
parameters: {};
|
|
2108
|
+
requestBodies: never;
|
|
2109
|
+
headers: never;
|
|
2110
|
+
pathItems: never;
|
|
2113
2111
|
}
|
|
2114
2112
|
|
|
2115
|
-
export type $defs = Record<string, never
|
|
2113
|
+
export type $defs = Record<string, never>;
|
|
2116
2114
|
|
|
2117
|
-
export type external = Record<string, never
|
|
2115
|
+
export type external = Record<string, never>;
|
|
2118
2116
|
|
|
2119
|
-
export type operations = Record<string, never
|
|
2117
|
+
export type operations = Record<string, never>;
|