@cloudfleet/sdk 0.0.1-a0f38b2 → 0.0.1-a3b700e
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/README.md +26 -2
- package/dist/@tanstack/react-query.gen.d.ts +1149 -0
- package/dist/@tanstack/react-query.gen.d.ts.map +1 -0
- package/dist/@tanstack/react-query.gen.js +1165 -0
- package/dist/@tanstack/react-query.gen.js.map +1 -0
- package/dist/client/client.gen.d.ts.map +1 -1
- package/dist/client/client.gen.js +114 -102
- package/dist/client/client.gen.js.map +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/client/types.gen.d.ts +9 -13
- package/dist/client/types.gen.d.ts.map +1 -1
- package/dist/client/utils.gen.d.ts +8 -4
- package/dist/client/utils.gen.d.ts.map +1 -1
- package/dist/client/utils.gen.js +13 -15
- package/dist/client/utils.gen.js.map +1 -1
- package/dist/client.gen.d.ts.map +1 -1
- package/dist/client.gen.js +1 -3
- package/dist/client.gen.js.map +1 -1
- package/dist/core/auth.gen.d.ts.map +1 -1
- package/dist/core/auth.gen.js.map +1 -1
- package/dist/core/bodySerializer.gen.d.ts +16 -8
- package/dist/core/bodySerializer.gen.d.ts.map +1 -1
- package/dist/core/bodySerializer.gen.js +1 -1
- package/dist/core/bodySerializer.gen.js.map +1 -1
- package/dist/core/params.gen.d.ts +10 -0
- package/dist/core/params.gen.d.ts.map +1 -1
- package/dist/core/params.gen.js +22 -10
- package/dist/core/params.gen.js.map +1 -1
- package/dist/core/pathSerializer.gen.d.ts.map +1 -1
- package/dist/core/pathSerializer.gen.js +3 -11
- package/dist/core/pathSerializer.gen.js.map +1 -1
- package/dist/core/queryKeySerializer.gen.d.ts.map +1 -1
- package/dist/core/queryKeySerializer.gen.js +4 -11
- package/dist/core/queryKeySerializer.gen.js.map +1 -1
- package/dist/core/serverSentEvents.gen.d.ts +1 -1
- package/dist/core/serverSentEvents.gen.d.ts.map +1 -1
- package/dist/core/serverSentEvents.gen.js +6 -9
- package/dist/core/serverSentEvents.gen.js.map +1 -1
- package/dist/core/types.gen.d.ts +1 -1
- package/dist/core/types.gen.d.ts.map +1 -1
- package/dist/core/utils.gen.d.ts.map +1 -1
- package/dist/core/utils.gen.js +1 -1
- package/dist/core/utils.gen.js.map +1 -1
- package/dist/schemas.gen.d.ts +1067 -132
- package/dist/schemas.gen.d.ts.map +1 -1
- package/dist/schemas.gen.js +2439 -211
- package/dist/schemas.gen.js.map +1 -1
- package/dist/sdk.gen.d.ts +242 -192
- package/dist/sdk.gen.d.ts.map +1 -1
- package/dist/sdk.gen.js +348 -370
- package/dist/sdk.gen.js.map +1 -1
- package/dist/services/kubernetes/api.d.ts +8 -8
- package/dist/types.gen.d.ts +1542 -748
- package/dist/types.gen.d.ts.map +1 -1
- package/dist/zod.gen.d.ts +3387 -1429
- package/dist/zod.gen.d.ts.map +1 -1
- package/dist/zod.gen.js +1353 -635
- package/dist/zod.gen.js.map +1 -1
- package/package.json +28 -8
package/dist/schemas.gen.js
CHANGED
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
export const BillingContactSchema = {
|
|
3
3
|
type: 'object',
|
|
4
4
|
properties: {
|
|
5
|
+
type: {
|
|
6
|
+
type: 'string',
|
|
7
|
+
description: 'Type of the organization. `business` for legal entities, `personal` for individuals.',
|
|
8
|
+
example: 'business',
|
|
9
|
+
enum: [
|
|
10
|
+
'business',
|
|
11
|
+
'personal'
|
|
12
|
+
]
|
|
13
|
+
},
|
|
5
14
|
company: {
|
|
6
15
|
type: 'string',
|
|
7
16
|
maxLength: 120,
|
|
@@ -74,10 +83,143 @@ export const BillingContactSchema = {
|
|
|
74
83
|
nullable: true,
|
|
75
84
|
description: 'Type of the tax ID.',
|
|
76
85
|
example: 'de_vat',
|
|
77
|
-
enum: [
|
|
86
|
+
enum: [
|
|
87
|
+
'ad_nrt',
|
|
88
|
+
'ae_trn',
|
|
89
|
+
'al_tin',
|
|
90
|
+
'am_tin',
|
|
91
|
+
'ao_tin',
|
|
92
|
+
'ar_cuit',
|
|
93
|
+
'at_vat',
|
|
94
|
+
'au_abn',
|
|
95
|
+
'au_arn',
|
|
96
|
+
'ba_tin',
|
|
97
|
+
'bb_tin',
|
|
98
|
+
'be_vat',
|
|
99
|
+
'bg_uic',
|
|
100
|
+
'bg_vat',
|
|
101
|
+
'bh_vat',
|
|
102
|
+
'bo_tin',
|
|
103
|
+
'br_cnpj',
|
|
104
|
+
'br_cpf',
|
|
105
|
+
'bs_tin',
|
|
106
|
+
'by_tin',
|
|
107
|
+
'ca_bn',
|
|
108
|
+
'ca_gst_hst',
|
|
109
|
+
'ca_pst_bc',
|
|
110
|
+
'ca_pst_mb',
|
|
111
|
+
'ca_pst_sk',
|
|
112
|
+
'ca_qst',
|
|
113
|
+
'cd_nif',
|
|
114
|
+
'ch_uid',
|
|
115
|
+
'ch_vat',
|
|
116
|
+
'cl_tin',
|
|
117
|
+
'cn_tin',
|
|
118
|
+
'co_nit',
|
|
119
|
+
'cr_tin',
|
|
120
|
+
'cy_vat',
|
|
121
|
+
'cz_vat',
|
|
122
|
+
'de_stn',
|
|
123
|
+
'de_vat',
|
|
124
|
+
'dk_vat',
|
|
125
|
+
'do_rcn',
|
|
126
|
+
'ec_ruc',
|
|
127
|
+
'ee_vat',
|
|
128
|
+
'eg_tin',
|
|
129
|
+
'es_cif',
|
|
130
|
+
'es_vat',
|
|
131
|
+
'eu_oss_vat',
|
|
132
|
+
'fi_vat',
|
|
133
|
+
'fr_vat',
|
|
134
|
+
'gb_vat',
|
|
135
|
+
'ge_vat',
|
|
136
|
+
'gn_nif',
|
|
137
|
+
'gr_vat',
|
|
138
|
+
'hk_br',
|
|
139
|
+
'hr_oib',
|
|
140
|
+
'hr_vat',
|
|
141
|
+
'hu_tin',
|
|
142
|
+
'hu_vat',
|
|
143
|
+
'id_npwp',
|
|
144
|
+
'ie_vat',
|
|
145
|
+
'il_vat',
|
|
146
|
+
'in_gst',
|
|
147
|
+
'is_vat',
|
|
148
|
+
'it_vat',
|
|
149
|
+
'jp_cn',
|
|
150
|
+
'jp_rn',
|
|
151
|
+
'jp_trn',
|
|
152
|
+
'ke_pin',
|
|
153
|
+
'kh_tin',
|
|
154
|
+
'kr_brn',
|
|
155
|
+
'kz_bin',
|
|
156
|
+
'li_uid',
|
|
157
|
+
'li_vat',
|
|
158
|
+
'lt_vat',
|
|
159
|
+
'lu_vat',
|
|
160
|
+
'lv_vat',
|
|
161
|
+
'ma_vat',
|
|
162
|
+
'md_vat',
|
|
163
|
+
'me_pib',
|
|
164
|
+
'mk_vat',
|
|
165
|
+
'mr_nif',
|
|
166
|
+
'mt_vat',
|
|
167
|
+
'mx_rfc',
|
|
168
|
+
'my_frp',
|
|
169
|
+
'my_itn',
|
|
170
|
+
'my_sst',
|
|
171
|
+
'ng_tin',
|
|
172
|
+
'nl_vat',
|
|
173
|
+
'no_vat',
|
|
174
|
+
'no_voec',
|
|
175
|
+
'np_pan',
|
|
176
|
+
'nz_gst',
|
|
177
|
+
'om_vat',
|
|
178
|
+
'pe_ruc',
|
|
179
|
+
'ph_tin',
|
|
180
|
+
'pl_vat',
|
|
181
|
+
'pt_vat',
|
|
182
|
+
'ro_tin',
|
|
183
|
+
'ro_vat',
|
|
184
|
+
'rs_pib',
|
|
185
|
+
'ru_inn',
|
|
186
|
+
'ru_kpp',
|
|
187
|
+
'sa_vat',
|
|
188
|
+
'se_vat',
|
|
189
|
+
'sg_gst',
|
|
190
|
+
'sg_uen',
|
|
191
|
+
'si_tin',
|
|
192
|
+
'si_vat',
|
|
193
|
+
'sk_vat',
|
|
194
|
+
'sn_ninea',
|
|
195
|
+
'sr_fin',
|
|
196
|
+
'sv_nit',
|
|
197
|
+
'th_vat',
|
|
198
|
+
'tj_tin',
|
|
199
|
+
'tr_tin',
|
|
200
|
+
'tw_vat',
|
|
201
|
+
'tz_vat',
|
|
202
|
+
'ua_vat',
|
|
203
|
+
'ug_tin',
|
|
204
|
+
'us_ein',
|
|
205
|
+
'uy_ruc',
|
|
206
|
+
'uz_tin',
|
|
207
|
+
'uz_vat',
|
|
208
|
+
've_rif',
|
|
209
|
+
'vn_tin',
|
|
210
|
+
'xi_vat',
|
|
211
|
+
'za_vat',
|
|
212
|
+
'zm_tin',
|
|
213
|
+
'zw_tin',
|
|
214
|
+
''
|
|
215
|
+
]
|
|
78
216
|
}
|
|
79
217
|
},
|
|
80
|
-
required: [
|
|
218
|
+
required: [
|
|
219
|
+
'type',
|
|
220
|
+
'email',
|
|
221
|
+
'individual_name'
|
|
222
|
+
],
|
|
81
223
|
additionalProperties: false
|
|
82
224
|
};
|
|
83
225
|
export const BillingCreditsSchema = {
|
|
@@ -92,7 +234,10 @@ export const BillingCreditsSchema = {
|
|
|
92
234
|
type: 'string',
|
|
93
235
|
description: 'Type of the promotional code.',
|
|
94
236
|
example: 'credit',
|
|
95
|
-
enum: [
|
|
237
|
+
enum: [
|
|
238
|
+
'credit',
|
|
239
|
+
'discount'
|
|
240
|
+
]
|
|
96
241
|
},
|
|
97
242
|
date_start: {
|
|
98
243
|
type: 'string',
|
|
@@ -129,7 +274,12 @@ export const BillingCreditsSchema = {
|
|
|
129
274
|
example: 8
|
|
130
275
|
}
|
|
131
276
|
},
|
|
132
|
-
required: [
|
|
277
|
+
required: [
|
|
278
|
+
'type',
|
|
279
|
+
'date_start',
|
|
280
|
+
'code',
|
|
281
|
+
'value_total'
|
|
282
|
+
],
|
|
133
283
|
additionalProperties: false
|
|
134
284
|
};
|
|
135
285
|
export const ChartCreateInputSchema = {
|
|
@@ -170,7 +320,13 @@ export const ChartCreateInputSchema = {
|
|
|
170
320
|
example: 'postgresql'
|
|
171
321
|
}
|
|
172
322
|
},
|
|
173
|
-
required: [
|
|
323
|
+
required: [
|
|
324
|
+
'values',
|
|
325
|
+
'version_channel',
|
|
326
|
+
'name',
|
|
327
|
+
'namespace',
|
|
328
|
+
'chart'
|
|
329
|
+
],
|
|
174
330
|
additionalProperties: false
|
|
175
331
|
};
|
|
176
332
|
export const ChartSchema = {
|
|
@@ -212,9 +368,8 @@ export const ChartSchema = {
|
|
|
212
368
|
},
|
|
213
369
|
status: {
|
|
214
370
|
type: 'string',
|
|
215
|
-
description: 'Status of the chart deployment.',
|
|
216
|
-
example: '
|
|
217
|
-
enum: ['InstallSucceeded', 'InstallFailed', 'UpgradeSucceeded', 'UpgradeFailed', 'TestSucceeded', 'TestFailed', 'RollbackSucceeded', 'RollbackFailed', 'UninstallSucceeded', 'UninstallFailed', 'ArtifactFailed', 'DependencyNotReady', 'Progressing', 'SourceNotReady']
|
|
371
|
+
description: 'Status of the chart deployment (Flux HelmRelease Ready condition reason, e.g. InstallSucceeded, UpgradeFailed, Progressing).',
|
|
372
|
+
example: 'InstallSucceeded'
|
|
218
373
|
},
|
|
219
374
|
version_current: {
|
|
220
375
|
type: 'string',
|
|
@@ -237,7 +392,18 @@ export const ChartSchema = {
|
|
|
237
392
|
example: true
|
|
238
393
|
}
|
|
239
394
|
},
|
|
240
|
-
required: [
|
|
395
|
+
required: [
|
|
396
|
+
'values',
|
|
397
|
+
'version_channel',
|
|
398
|
+
'name',
|
|
399
|
+
'namespace',
|
|
400
|
+
'chart',
|
|
401
|
+
'status',
|
|
402
|
+
'version_current',
|
|
403
|
+
'created_at',
|
|
404
|
+
'updated_at',
|
|
405
|
+
'ready'
|
|
406
|
+
],
|
|
241
407
|
additionalProperties: false
|
|
242
408
|
};
|
|
243
409
|
export const ChartUpdateInputSchema = {
|
|
@@ -254,7 +420,10 @@ export const ChartUpdateInputSchema = {
|
|
|
254
420
|
example: '2.x.x-cfke.x'
|
|
255
421
|
}
|
|
256
422
|
},
|
|
257
|
-
required: [
|
|
423
|
+
required: [
|
|
424
|
+
'values',
|
|
425
|
+
'version_channel'
|
|
426
|
+
],
|
|
258
427
|
additionalProperties: false
|
|
259
428
|
};
|
|
260
429
|
export const ClusterCreateInputSchema = {
|
|
@@ -271,27 +440,117 @@ export const ClusterCreateInputSchema = {
|
|
|
271
440
|
tier: {
|
|
272
441
|
type: 'string',
|
|
273
442
|
description: 'Tier of the cluster.',
|
|
443
|
+
default: 'basic',
|
|
274
444
|
example: 'pro',
|
|
275
|
-
enum: [
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
description: 'Cloudfleet control plane region. One of "staging", "northamerica-central-1", "europe-central-1a", "northamerica-central-1a". This field can not be updated after creation.',
|
|
280
|
-
default: 'staging',
|
|
281
|
-
example: 'northamerica-central-1a',
|
|
282
|
-
enum: ['staging', 'northamerica-central-1', 'europe-central-1a', 'northamerica-central-1a']
|
|
445
|
+
enum: [
|
|
446
|
+
'basic',
|
|
447
|
+
'pro'
|
|
448
|
+
]
|
|
283
449
|
},
|
|
284
450
|
version_channel: {
|
|
285
451
|
type: 'string',
|
|
286
452
|
pattern: '^(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$',
|
|
287
453
|
description: 'Version of the kubernetes cluster.',
|
|
288
454
|
default: '1.x.x-cfke.x',
|
|
289
|
-
example: '1.x.x-cfke.x'
|
|
290
|
-
|
|
455
|
+
example: '1.x.x-cfke.x'
|
|
456
|
+
},
|
|
457
|
+
release_channel: {
|
|
458
|
+
type: 'string',
|
|
459
|
+
description: 'Release channel for the cluster\'s control plane.',
|
|
460
|
+
default: 'rapid',
|
|
461
|
+
example: 'rapid',
|
|
462
|
+
enum: [
|
|
463
|
+
'rapid',
|
|
464
|
+
'stable',
|
|
465
|
+
'extended'
|
|
466
|
+
]
|
|
467
|
+
},
|
|
468
|
+
features: {
|
|
469
|
+
type: 'object',
|
|
470
|
+
properties: {
|
|
471
|
+
gpu_sharing_strategy: {
|
|
472
|
+
type: 'string',
|
|
473
|
+
description: 'GPU sharing strategy.',
|
|
474
|
+
default: 'none',
|
|
475
|
+
example: 'none',
|
|
476
|
+
enum: [
|
|
477
|
+
'none',
|
|
478
|
+
'mps',
|
|
479
|
+
'time_slicing'
|
|
480
|
+
]
|
|
481
|
+
},
|
|
482
|
+
gpu_max_shared_clients_per_gpu: {
|
|
483
|
+
type: 'integer',
|
|
484
|
+
minimum: 2,
|
|
485
|
+
maximum: 48,
|
|
486
|
+
description: 'Maximum number of pods that may share a single GPU.',
|
|
487
|
+
default: 4,
|
|
488
|
+
example: 10
|
|
489
|
+
},
|
|
490
|
+
cilium_socket_lb_host_namespace_only: {
|
|
491
|
+
type: 'boolean',
|
|
492
|
+
description: 'Restrict Cilium socket load-balancing to the host namespace. Required for the Tailscale operator and Istio.',
|
|
493
|
+
example: false
|
|
494
|
+
}
|
|
495
|
+
},
|
|
496
|
+
additionalProperties: false,
|
|
497
|
+
description: 'Cluster feature toggles.',
|
|
498
|
+
default: {
|
|
499
|
+
gpu_sharing_strategy: 'none',
|
|
500
|
+
gpu_max_shared_clients_per_gpu: 4,
|
|
501
|
+
cilium_socket_lb_host_namespace_only: false
|
|
502
|
+
}
|
|
503
|
+
},
|
|
504
|
+
region: {
|
|
505
|
+
type: 'string',
|
|
506
|
+
description: 'Cloudfleet control plane region. This field can not be updated after creation.',
|
|
507
|
+
example: 'europe-central-1a'
|
|
508
|
+
},
|
|
509
|
+
networking: {
|
|
510
|
+
type: 'object',
|
|
511
|
+
properties: {
|
|
512
|
+
pod_cidr: {
|
|
513
|
+
type: 'string',
|
|
514
|
+
description: 'CIDR block for pod IPs.',
|
|
515
|
+
default: '10.244.0.0/16'
|
|
516
|
+
},
|
|
517
|
+
service_cidr: {
|
|
518
|
+
type: 'string',
|
|
519
|
+
description: 'CIDR block for service IPs.',
|
|
520
|
+
default: '10.96.0.0/12'
|
|
521
|
+
},
|
|
522
|
+
dual_stack: {
|
|
523
|
+
type: 'boolean',
|
|
524
|
+
description: 'Enable IPv4+IPv6 dual-stack networking.'
|
|
525
|
+
},
|
|
526
|
+
pod_cidr_v6: {
|
|
527
|
+
type: 'string',
|
|
528
|
+
description: 'IPv6 pod CIDR. Requires dual_stack.',
|
|
529
|
+
default: '2001:db8:1:2::/48'
|
|
530
|
+
},
|
|
531
|
+
service_cidr_v6: {
|
|
532
|
+
type: 'string',
|
|
533
|
+
description: 'IPv6 service CIDR. Requires dual_stack.',
|
|
534
|
+
default: '2001:db8:1:1::/112'
|
|
535
|
+
}
|
|
536
|
+
},
|
|
537
|
+
additionalProperties: false,
|
|
538
|
+
description: 'Cluster networking configuration. Immutable after creation.',
|
|
539
|
+
default: {
|
|
540
|
+
pod_cidr: '10.244.0.0/16',
|
|
541
|
+
service_cidr: '10.96.0.0/12',
|
|
542
|
+
dual_stack: false,
|
|
543
|
+
pod_cidr_v6: '2001:db8:1:2::/48',
|
|
544
|
+
service_cidr_v6: '2001:db8:1:1::/112'
|
|
545
|
+
}
|
|
291
546
|
}
|
|
292
547
|
},
|
|
293
|
-
required: [
|
|
294
|
-
|
|
548
|
+
required: [
|
|
549
|
+
'name',
|
|
550
|
+
'region'
|
|
551
|
+
],
|
|
552
|
+
additionalProperties: false,
|
|
553
|
+
description: 'Mutable cluster configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
|
|
295
554
|
};
|
|
296
555
|
export const ClusterJoinInformationSchema = {
|
|
297
556
|
type: 'object',
|
|
@@ -299,8 +558,7 @@ export const ClusterJoinInformationSchema = {
|
|
|
299
558
|
certificate_authority: {
|
|
300
559
|
type: 'string',
|
|
301
560
|
description: 'Certificate authority data for the kubernetes cluster. This is the root certificate authority for the cluster.',
|
|
302
|
-
example:
|
|
303
|
-
MIIC0DCCAbigAwIBAgI...`
|
|
561
|
+
example: '-----BEGIN CERTIFICATE-----\nMIIC0DCCAbigAwIBAgI...'
|
|
304
562
|
},
|
|
305
563
|
endpoint: {
|
|
306
564
|
type: 'string',
|
|
@@ -308,6 +566,16 @@ MIIC0DCCAbigAwIBAgI...`
|
|
|
308
566
|
description: 'Internal URL of the Kubernetes cluster control plane. This is the endpoint that kubelet uses to connect to the cluster.',
|
|
309
567
|
example: 'https://10.31.64.7:6443'
|
|
310
568
|
},
|
|
569
|
+
cluster_dns: {
|
|
570
|
+
type: 'string',
|
|
571
|
+
description: 'Cluster DNS IP address. This is the IP address of the kube-dns service in the cluster.',
|
|
572
|
+
example: '10.96.0.10'
|
|
573
|
+
},
|
|
574
|
+
pod_cidr: {
|
|
575
|
+
type: 'string',
|
|
576
|
+
description: 'Pod CIDR for the cluster. Used to configure iptables rules on nodes to prevent Tailscale routing loops.',
|
|
577
|
+
example: '10.244.0.0/16'
|
|
578
|
+
},
|
|
311
579
|
auth_key: {
|
|
312
580
|
type: 'string',
|
|
313
581
|
description: 'Authentication key for the cluster.',
|
|
@@ -342,7 +610,12 @@ MIIC0DCCAbigAwIBAgI...`
|
|
|
342
610
|
example: '565.0.0'
|
|
343
611
|
}
|
|
344
612
|
},
|
|
345
|
-
required: [
|
|
613
|
+
required: [
|
|
614
|
+
'kubernetes',
|
|
615
|
+
'tailscale',
|
|
616
|
+
'containerd',
|
|
617
|
+
'nvidia_driver'
|
|
618
|
+
],
|
|
346
619
|
additionalProperties: false,
|
|
347
620
|
description: 'Versions of the different components of the cluster.'
|
|
348
621
|
},
|
|
@@ -365,12 +638,25 @@ MIIC0DCCAbigAwIBAgI...`
|
|
|
365
638
|
example: '//iam.googleapis.com/projects/89014267864/locations/global/workloadIdentityPools/cfke/providers/oidc'
|
|
366
639
|
}
|
|
367
640
|
},
|
|
368
|
-
required: [
|
|
641
|
+
required: [
|
|
642
|
+
'metadata_url',
|
|
643
|
+
'aws_role_arn',
|
|
644
|
+
'gcp_workload_identity_provider'
|
|
645
|
+
],
|
|
369
646
|
additionalProperties: false,
|
|
370
|
-
description:
|
|
647
|
+
description: 'OIDC Information for hosts to access to third party API\'s.'
|
|
371
648
|
}
|
|
372
649
|
},
|
|
373
|
-
required: [
|
|
650
|
+
required: [
|
|
651
|
+
'certificate_authority',
|
|
652
|
+
'endpoint',
|
|
653
|
+
'cluster_dns',
|
|
654
|
+
'pod_cidr',
|
|
655
|
+
'auth_key',
|
|
656
|
+
'bootstrap_token',
|
|
657
|
+
'versions',
|
|
658
|
+
'third_party_api_access_config'
|
|
659
|
+
],
|
|
374
660
|
additionalProperties: false
|
|
375
661
|
};
|
|
376
662
|
export const ClusterSchema = {
|
|
@@ -387,15 +673,121 @@ export const ClusterSchema = {
|
|
|
387
673
|
tier: {
|
|
388
674
|
type: 'string',
|
|
389
675
|
description: 'Tier of the cluster.',
|
|
676
|
+
default: 'basic',
|
|
390
677
|
example: 'pro',
|
|
391
|
-
enum: [
|
|
678
|
+
enum: [
|
|
679
|
+
'basic',
|
|
680
|
+
'pro'
|
|
681
|
+
]
|
|
682
|
+
},
|
|
683
|
+
version_channel: {
|
|
684
|
+
type: 'string',
|
|
685
|
+
pattern: '^(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$',
|
|
686
|
+
description: 'Version of the kubernetes cluster.',
|
|
687
|
+
default: '1.x.x-cfke.x',
|
|
688
|
+
example: '1.x.x-cfke.x'
|
|
689
|
+
},
|
|
690
|
+
release_channel: {
|
|
691
|
+
type: 'string',
|
|
692
|
+
description: 'Release channel for the cluster\'s control plane.',
|
|
693
|
+
default: 'rapid',
|
|
694
|
+
example: 'rapid',
|
|
695
|
+
enum: [
|
|
696
|
+
'rapid',
|
|
697
|
+
'stable',
|
|
698
|
+
'extended'
|
|
699
|
+
]
|
|
700
|
+
},
|
|
701
|
+
features: {
|
|
702
|
+
type: 'object',
|
|
703
|
+
properties: {
|
|
704
|
+
gpu_sharing_strategy: {
|
|
705
|
+
type: 'string',
|
|
706
|
+
description: 'GPU sharing strategy.',
|
|
707
|
+
default: 'none',
|
|
708
|
+
example: 'none',
|
|
709
|
+
enum: [
|
|
710
|
+
'none',
|
|
711
|
+
'mps',
|
|
712
|
+
'time_slicing'
|
|
713
|
+
]
|
|
714
|
+
},
|
|
715
|
+
gpu_max_shared_clients_per_gpu: {
|
|
716
|
+
type: 'integer',
|
|
717
|
+
minimum: 2,
|
|
718
|
+
maximum: 48,
|
|
719
|
+
description: 'Maximum number of pods that may share a single GPU.',
|
|
720
|
+
default: 4,
|
|
721
|
+
example: 10
|
|
722
|
+
},
|
|
723
|
+
cilium_socket_lb_host_namespace_only: {
|
|
724
|
+
type: 'boolean',
|
|
725
|
+
description: 'Restrict Cilium socket load-balancing to the host namespace. Required for the Tailscale operator and Istio.',
|
|
726
|
+
example: false
|
|
727
|
+
}
|
|
728
|
+
},
|
|
729
|
+
required: [
|
|
730
|
+
'gpu_sharing_strategy',
|
|
731
|
+
'gpu_max_shared_clients_per_gpu',
|
|
732
|
+
'cilium_socket_lb_host_namespace_only'
|
|
733
|
+
],
|
|
734
|
+
additionalProperties: false,
|
|
735
|
+
description: 'Cluster feature toggles.',
|
|
736
|
+
default: {
|
|
737
|
+
gpu_sharing_strategy: 'none',
|
|
738
|
+
gpu_max_shared_clients_per_gpu: 4,
|
|
739
|
+
cilium_socket_lb_host_namespace_only: false
|
|
740
|
+
}
|
|
392
741
|
},
|
|
393
742
|
region: {
|
|
394
743
|
type: 'string',
|
|
395
|
-
description: 'Cloudfleet control plane region.
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
744
|
+
description: 'Cloudfleet control plane region. This field can not be updated after creation.',
|
|
745
|
+
example: 'europe-central-1a'
|
|
746
|
+
},
|
|
747
|
+
networking: {
|
|
748
|
+
type: 'object',
|
|
749
|
+
properties: {
|
|
750
|
+
pod_cidr: {
|
|
751
|
+
type: 'string',
|
|
752
|
+
description: 'CIDR block for pod IPs.',
|
|
753
|
+
default: '10.244.0.0/16'
|
|
754
|
+
},
|
|
755
|
+
service_cidr: {
|
|
756
|
+
type: 'string',
|
|
757
|
+
description: 'CIDR block for service IPs.',
|
|
758
|
+
default: '10.96.0.0/12'
|
|
759
|
+
},
|
|
760
|
+
dual_stack: {
|
|
761
|
+
type: 'boolean',
|
|
762
|
+
description: 'Enable IPv4+IPv6 dual-stack networking.'
|
|
763
|
+
},
|
|
764
|
+
pod_cidr_v6: {
|
|
765
|
+
type: 'string',
|
|
766
|
+
description: 'IPv6 pod CIDR. Requires dual_stack.',
|
|
767
|
+
default: '2001:db8:1:2::/48'
|
|
768
|
+
},
|
|
769
|
+
service_cidr_v6: {
|
|
770
|
+
type: 'string',
|
|
771
|
+
description: 'IPv6 service CIDR. Requires dual_stack.',
|
|
772
|
+
default: '2001:db8:1:1::/112'
|
|
773
|
+
}
|
|
774
|
+
},
|
|
775
|
+
required: [
|
|
776
|
+
'pod_cidr',
|
|
777
|
+
'service_cidr',
|
|
778
|
+
'dual_stack',
|
|
779
|
+
'pod_cidr_v6',
|
|
780
|
+
'service_cidr_v6'
|
|
781
|
+
],
|
|
782
|
+
additionalProperties: false,
|
|
783
|
+
description: 'Cluster networking configuration. Immutable after creation.',
|
|
784
|
+
default: {
|
|
785
|
+
pod_cidr: '10.244.0.0/16',
|
|
786
|
+
service_cidr: '10.96.0.0/12',
|
|
787
|
+
dual_stack: false,
|
|
788
|
+
pod_cidr_v6: '2001:db8:1:2::/48',
|
|
789
|
+
service_cidr_v6: '2001:db8:1:1::/112'
|
|
790
|
+
}
|
|
399
791
|
},
|
|
400
792
|
id: {
|
|
401
793
|
type: 'string',
|
|
@@ -405,29 +797,51 @@ export const ClusterSchema = {
|
|
|
405
797
|
},
|
|
406
798
|
status: {
|
|
407
799
|
type: 'string',
|
|
408
|
-
description: 'Status of the cluster.
|
|
409
|
-
example: '
|
|
410
|
-
enum: [
|
|
800
|
+
description: 'Status of the cluster.',
|
|
801
|
+
example: 'deployed',
|
|
802
|
+
enum: [
|
|
803
|
+
'creating',
|
|
804
|
+
'deployed',
|
|
805
|
+
'updating',
|
|
806
|
+
'disabled'
|
|
807
|
+
]
|
|
411
808
|
},
|
|
412
809
|
endpoint: {
|
|
413
810
|
anyOf: [
|
|
414
811
|
{
|
|
415
812
|
type: 'string',
|
|
416
813
|
format: 'uri',
|
|
417
|
-
description: 'URL of the Kubernetes cluster control plane. This is the endpoint that kubectl uses to connect to the cluster.',
|
|
418
|
-
example: 'https://2ae6557c-c61f-49c6-b4c1-a65473470a03.staging.cfke.
|
|
814
|
+
description: 'URL signed by a public CA of the Kubernetes cluster control plane. This is the endpoint that kubectl uses to connect to the cluster.',
|
|
815
|
+
example: 'https://2ae6557c-c61f-49c6-b4c1-a65473470a03.staging.cfke.io'
|
|
419
816
|
},
|
|
420
817
|
{
|
|
421
818
|
type: 'string',
|
|
422
|
-
enum: [
|
|
819
|
+
enum: [
|
|
820
|
+
''
|
|
821
|
+
]
|
|
822
|
+
}
|
|
823
|
+
]
|
|
824
|
+
},
|
|
825
|
+
endpoint_public: {
|
|
826
|
+
anyOf: [
|
|
827
|
+
{
|
|
828
|
+
type: 'string',
|
|
829
|
+
format: 'uri',
|
|
830
|
+
description: 'Deprecated alias of `endpoint`; retained for backward compatibility.',
|
|
831
|
+
example: 'https://2ae6557c-c61f-49c6-b4c1-a65473470a03.staging.cfke.io'
|
|
832
|
+
},
|
|
833
|
+
{
|
|
834
|
+
type: 'string',
|
|
835
|
+
enum: [
|
|
836
|
+
''
|
|
837
|
+
]
|
|
423
838
|
}
|
|
424
839
|
]
|
|
425
840
|
},
|
|
426
841
|
certificate_ca: {
|
|
427
842
|
type: 'string',
|
|
428
843
|
description: 'Certificate authority data for the kubernetes cluster. This is the root certificate authority for the cluster.',
|
|
429
|
-
example:
|
|
430
|
-
MIIC0DCCAbigAwIBAgI...`
|
|
844
|
+
example: '-----BEGIN CERTIFICATE-----\nMIIC0DCCAbigAwIBAgI...'
|
|
431
845
|
},
|
|
432
846
|
version_current: {
|
|
433
847
|
type: 'string',
|
|
@@ -448,16 +862,22 @@ MIIC0DCCAbigAwIBAgI...`
|
|
|
448
862
|
type: 'boolean',
|
|
449
863
|
description: 'Indicates if the cluster is ready to be used.',
|
|
450
864
|
example: true
|
|
451
|
-
},
|
|
452
|
-
version_channel: {
|
|
453
|
-
type: 'string',
|
|
454
|
-
pattern: '^(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$',
|
|
455
|
-
description: 'Version of the kubernetes cluster.',
|
|
456
|
-
example: '1.x.x-cfke.x'
|
|
457
865
|
}
|
|
458
866
|
},
|
|
459
|
-
required: [
|
|
460
|
-
|
|
867
|
+
required: [
|
|
868
|
+
'name',
|
|
869
|
+
'tier',
|
|
870
|
+
'version_channel',
|
|
871
|
+
'release_channel',
|
|
872
|
+
'features',
|
|
873
|
+
'region',
|
|
874
|
+
'networking',
|
|
875
|
+
'id',
|
|
876
|
+
'status',
|
|
877
|
+
'ready'
|
|
878
|
+
],
|
|
879
|
+
additionalProperties: false,
|
|
880
|
+
description: 'Mutable cluster configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
|
|
461
881
|
};
|
|
462
882
|
export const ClusterUpdateInputSchema = {
|
|
463
883
|
type: 'object',
|
|
@@ -473,18 +893,73 @@ export const ClusterUpdateInputSchema = {
|
|
|
473
893
|
tier: {
|
|
474
894
|
type: 'string',
|
|
475
895
|
description: 'Tier of the cluster.',
|
|
896
|
+
default: 'basic',
|
|
476
897
|
example: 'pro',
|
|
477
|
-
enum: [
|
|
898
|
+
enum: [
|
|
899
|
+
'basic',
|
|
900
|
+
'pro'
|
|
901
|
+
]
|
|
478
902
|
},
|
|
479
903
|
version_channel: {
|
|
480
904
|
type: 'string',
|
|
481
905
|
pattern: '^(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$',
|
|
482
906
|
description: 'Version of the kubernetes cluster.',
|
|
907
|
+
default: '1.x.x-cfke.x',
|
|
483
908
|
example: '1.x.x-cfke.x'
|
|
909
|
+
},
|
|
910
|
+
release_channel: {
|
|
911
|
+
type: 'string',
|
|
912
|
+
description: 'Release channel for the cluster\'s control plane.',
|
|
913
|
+
default: 'rapid',
|
|
914
|
+
example: 'rapid',
|
|
915
|
+
enum: [
|
|
916
|
+
'rapid',
|
|
917
|
+
'stable',
|
|
918
|
+
'extended'
|
|
919
|
+
]
|
|
920
|
+
},
|
|
921
|
+
features: {
|
|
922
|
+
type: 'object',
|
|
923
|
+
properties: {
|
|
924
|
+
gpu_sharing_strategy: {
|
|
925
|
+
type: 'string',
|
|
926
|
+
description: 'GPU sharing strategy.',
|
|
927
|
+
default: 'none',
|
|
928
|
+
example: 'none',
|
|
929
|
+
enum: [
|
|
930
|
+
'none',
|
|
931
|
+
'mps',
|
|
932
|
+
'time_slicing'
|
|
933
|
+
]
|
|
934
|
+
},
|
|
935
|
+
gpu_max_shared_clients_per_gpu: {
|
|
936
|
+
type: 'integer',
|
|
937
|
+
minimum: 2,
|
|
938
|
+
maximum: 48,
|
|
939
|
+
description: 'Maximum number of pods that may share a single GPU.',
|
|
940
|
+
default: 4,
|
|
941
|
+
example: 10
|
|
942
|
+
},
|
|
943
|
+
cilium_socket_lb_host_namespace_only: {
|
|
944
|
+
type: 'boolean',
|
|
945
|
+
description: 'Restrict Cilium socket load-balancing to the host namespace. Required for the Tailscale operator and Istio.',
|
|
946
|
+
example: false
|
|
947
|
+
}
|
|
948
|
+
},
|
|
949
|
+
additionalProperties: false,
|
|
950
|
+
description: 'Cluster feature toggles.',
|
|
951
|
+
default: {
|
|
952
|
+
gpu_sharing_strategy: 'none',
|
|
953
|
+
gpu_max_shared_clients_per_gpu: 4,
|
|
954
|
+
cilium_socket_lb_host_namespace_only: false
|
|
955
|
+
}
|
|
484
956
|
}
|
|
485
957
|
},
|
|
486
|
-
required: [
|
|
487
|
-
|
|
958
|
+
required: [
|
|
959
|
+
'name'
|
|
960
|
+
],
|
|
961
|
+
additionalProperties: false,
|
|
962
|
+
description: 'Mutable cluster configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
|
|
488
963
|
};
|
|
489
964
|
export const FleetCreateInputSchema = {
|
|
490
965
|
type: 'object',
|
|
@@ -493,13 +968,12 @@ export const FleetCreateInputSchema = {
|
|
|
493
968
|
type: 'object',
|
|
494
969
|
properties: {
|
|
495
970
|
cpu: {
|
|
496
|
-
type: '
|
|
497
|
-
format: 'float',
|
|
971
|
+
type: 'integer',
|
|
498
972
|
minimum: 0,
|
|
499
|
-
|
|
973
|
+
maximum: 100000,
|
|
974
|
+
description: 'CPU limit in cores. Maximum 100,000.'
|
|
500
975
|
}
|
|
501
976
|
},
|
|
502
|
-
required: ['cpu'],
|
|
503
977
|
additionalProperties: false,
|
|
504
978
|
description: 'Limits define a set of bounds for provisioning capacity.'
|
|
505
979
|
},
|
|
@@ -507,47 +981,358 @@ export const FleetCreateInputSchema = {
|
|
|
507
981
|
type: 'object',
|
|
508
982
|
properties: {
|
|
509
983
|
enabled: {
|
|
510
|
-
type: 'boolean'
|
|
511
|
-
default: true
|
|
984
|
+
type: 'boolean'
|
|
512
985
|
},
|
|
513
986
|
project: {
|
|
514
987
|
type: 'string',
|
|
515
|
-
|
|
988
|
+
pattern: '^[a-z][a-z0-9-]{4,28}[a-z0-9]$',
|
|
989
|
+
description: 'GCP project ID to deploy instances into. 6-30 chars, lowercase letters/digits/hyphens, must start with a letter and not end with a hyphen. Omit when GCP is disabled.',
|
|
990
|
+
example: 'my-cloudfleet-project'
|
|
516
991
|
}
|
|
517
992
|
},
|
|
518
|
-
required: [
|
|
993
|
+
required: [
|
|
994
|
+
'enabled'
|
|
995
|
+
],
|
|
519
996
|
additionalProperties: false
|
|
520
997
|
},
|
|
521
998
|
hetzner: {
|
|
522
999
|
type: 'object',
|
|
523
1000
|
properties: {
|
|
524
1001
|
enabled: {
|
|
525
|
-
type: 'boolean'
|
|
526
|
-
default: true
|
|
1002
|
+
type: 'boolean'
|
|
527
1003
|
},
|
|
528
1004
|
apiKey: {
|
|
529
1005
|
type: 'string',
|
|
530
|
-
|
|
1006
|
+
maxLength: 64,
|
|
1007
|
+
minLength: 64,
|
|
1008
|
+
pattern: '^[A-Za-z0-9]+$',
|
|
1009
|
+
description: 'Hetzner Cloud API token with read / write access (64 alphanumeric characters). Omit this field to keep the existing value.'
|
|
531
1010
|
}
|
|
532
1011
|
},
|
|
533
|
-
required: [
|
|
1012
|
+
required: [
|
|
1013
|
+
'enabled'
|
|
1014
|
+
],
|
|
534
1015
|
additionalProperties: false
|
|
535
1016
|
},
|
|
536
1017
|
aws: {
|
|
537
1018
|
type: 'object',
|
|
538
1019
|
properties: {
|
|
539
1020
|
enabled: {
|
|
540
|
-
type: 'boolean'
|
|
541
|
-
default: true
|
|
1021
|
+
type: 'boolean'
|
|
542
1022
|
},
|
|
543
1023
|
controllerRoleArn: {
|
|
544
1024
|
type: 'string',
|
|
545
|
-
|
|
1025
|
+
pattern: '^arn:aws(-[a-z]+)*:iam::\\d{12}:role\\/[\\w+=,.@/-]+$',
|
|
1026
|
+
description: 'AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.',
|
|
1027
|
+
example: 'arn:aws:iam::123456789012:role/Cloudfleet'
|
|
546
1028
|
}
|
|
547
1029
|
},
|
|
548
|
-
required: [
|
|
1030
|
+
required: [
|
|
1031
|
+
'enabled'
|
|
1032
|
+
],
|
|
549
1033
|
additionalProperties: false
|
|
550
1034
|
},
|
|
1035
|
+
constraints: {
|
|
1036
|
+
type: 'object',
|
|
1037
|
+
properties: {
|
|
1038
|
+
'karpenter.sh/capacity-type': {
|
|
1039
|
+
type: 'array',
|
|
1040
|
+
items: {
|
|
1041
|
+
type: 'string',
|
|
1042
|
+
enum: [
|
|
1043
|
+
'on-demand',
|
|
1044
|
+
'spot'
|
|
1045
|
+
]
|
|
1046
|
+
},
|
|
1047
|
+
minItems: 1,
|
|
1048
|
+
description: 'Allowed values for `karpenter.sh/capacity-type`.',
|
|
1049
|
+
default: [
|
|
1050
|
+
'on-demand',
|
|
1051
|
+
'spot'
|
|
1052
|
+
]
|
|
1053
|
+
},
|
|
1054
|
+
'kubernetes.io/arch': {
|
|
1055
|
+
type: 'array',
|
|
1056
|
+
items: {
|
|
1057
|
+
type: 'string',
|
|
1058
|
+
enum: [
|
|
1059
|
+
'amd64',
|
|
1060
|
+
'arm64'
|
|
1061
|
+
]
|
|
1062
|
+
},
|
|
1063
|
+
minItems: 1,
|
|
1064
|
+
description: 'Allowed values for `kubernetes.io/arch`.',
|
|
1065
|
+
default: [
|
|
1066
|
+
'amd64'
|
|
1067
|
+
]
|
|
1068
|
+
},
|
|
1069
|
+
'cfke.io/instance-family': {
|
|
1070
|
+
type: 'array',
|
|
1071
|
+
items: {
|
|
1072
|
+
type: 'string',
|
|
1073
|
+
enum: [
|
|
1074
|
+
'a1',
|
|
1075
|
+
'a2',
|
|
1076
|
+
'a3',
|
|
1077
|
+
'a4',
|
|
1078
|
+
'c1',
|
|
1079
|
+
'c2',
|
|
1080
|
+
'c2d',
|
|
1081
|
+
'c3',
|
|
1082
|
+
'c3d',
|
|
1083
|
+
'c4',
|
|
1084
|
+
'c4a',
|
|
1085
|
+
'c4d',
|
|
1086
|
+
'c5',
|
|
1087
|
+
'c5a',
|
|
1088
|
+
'c5ad',
|
|
1089
|
+
'c5d',
|
|
1090
|
+
'c5n',
|
|
1091
|
+
'c6a',
|
|
1092
|
+
'c6g',
|
|
1093
|
+
'c6gd',
|
|
1094
|
+
'c6gn',
|
|
1095
|
+
'c6i',
|
|
1096
|
+
'c6id',
|
|
1097
|
+
'c6in',
|
|
1098
|
+
'c7a',
|
|
1099
|
+
'c7g',
|
|
1100
|
+
'c7gd',
|
|
1101
|
+
'c7gn',
|
|
1102
|
+
'c7i',
|
|
1103
|
+
'c7i-flex',
|
|
1104
|
+
'c8g',
|
|
1105
|
+
'c8gd',
|
|
1106
|
+
'cax',
|
|
1107
|
+
'ccx',
|
|
1108
|
+
'cpx',
|
|
1109
|
+
'cx',
|
|
1110
|
+
'd2',
|
|
1111
|
+
'd3',
|
|
1112
|
+
'd3en',
|
|
1113
|
+
'dl1',
|
|
1114
|
+
'dl2q',
|
|
1115
|
+
'e2',
|
|
1116
|
+
'f1',
|
|
1117
|
+
'f2',
|
|
1118
|
+
'g1',
|
|
1119
|
+
'g2',
|
|
1120
|
+
'g4ad',
|
|
1121
|
+
'g4dn',
|
|
1122
|
+
'g5',
|
|
1123
|
+
'g5g',
|
|
1124
|
+
'g6',
|
|
1125
|
+
'g6e',
|
|
1126
|
+
'gr6',
|
|
1127
|
+
'h1',
|
|
1128
|
+
'h3',
|
|
1129
|
+
'hpc6a',
|
|
1130
|
+
'hpc6id',
|
|
1131
|
+
'hpc7a',
|
|
1132
|
+
'hpc7g',
|
|
1133
|
+
'i2',
|
|
1134
|
+
'i3',
|
|
1135
|
+
'i3en',
|
|
1136
|
+
'i4g',
|
|
1137
|
+
'i4i',
|
|
1138
|
+
'i7i',
|
|
1139
|
+
'i7ie',
|
|
1140
|
+
'i8g',
|
|
1141
|
+
'im4gn',
|
|
1142
|
+
'inf1',
|
|
1143
|
+
'inf2',
|
|
1144
|
+
'is4gen',
|
|
1145
|
+
'm1',
|
|
1146
|
+
'm2',
|
|
1147
|
+
'm3',
|
|
1148
|
+
'm4',
|
|
1149
|
+
'm5',
|
|
1150
|
+
'm5a',
|
|
1151
|
+
'm5ad',
|
|
1152
|
+
'm5d',
|
|
1153
|
+
'm5dn',
|
|
1154
|
+
'm5n',
|
|
1155
|
+
'm5zn',
|
|
1156
|
+
'm6a',
|
|
1157
|
+
'm6g',
|
|
1158
|
+
'm6gd',
|
|
1159
|
+
'm6i',
|
|
1160
|
+
'm6id',
|
|
1161
|
+
'm6idn',
|
|
1162
|
+
'm6in',
|
|
1163
|
+
'm7a',
|
|
1164
|
+
'm7g',
|
|
1165
|
+
'm7gd',
|
|
1166
|
+
'm7i',
|
|
1167
|
+
'm7i-flex',
|
|
1168
|
+
'm8g',
|
|
1169
|
+
'm8gd',
|
|
1170
|
+
'n1',
|
|
1171
|
+
'n2',
|
|
1172
|
+
'n2d',
|
|
1173
|
+
'n4',
|
|
1174
|
+
'p3',
|
|
1175
|
+
'p3dn',
|
|
1176
|
+
'p4d',
|
|
1177
|
+
'p4de',
|
|
1178
|
+
'p5',
|
|
1179
|
+
'p5e',
|
|
1180
|
+
'p5en',
|
|
1181
|
+
'p6-b200',
|
|
1182
|
+
'r3',
|
|
1183
|
+
'r4',
|
|
1184
|
+
'r5',
|
|
1185
|
+
'r5a',
|
|
1186
|
+
'r5ad',
|
|
1187
|
+
'r5b',
|
|
1188
|
+
'r5d',
|
|
1189
|
+
'r5dn',
|
|
1190
|
+
'r5n',
|
|
1191
|
+
'r6a',
|
|
1192
|
+
'r6g',
|
|
1193
|
+
'r6gd',
|
|
1194
|
+
'r6i',
|
|
1195
|
+
'r6id',
|
|
1196
|
+
'r6idn',
|
|
1197
|
+
'r6in',
|
|
1198
|
+
'r7a',
|
|
1199
|
+
'r7g',
|
|
1200
|
+
'r7gd',
|
|
1201
|
+
'r7i',
|
|
1202
|
+
'r7iz',
|
|
1203
|
+
'r8g',
|
|
1204
|
+
'r8gd',
|
|
1205
|
+
't2',
|
|
1206
|
+
't2a',
|
|
1207
|
+
't2d',
|
|
1208
|
+
't3',
|
|
1209
|
+
't3a',
|
|
1210
|
+
't4g',
|
|
1211
|
+
'trn1',
|
|
1212
|
+
'trn1n',
|
|
1213
|
+
'u-3tb1',
|
|
1214
|
+
'u-6tb1',
|
|
1215
|
+
'u7i-12tb',
|
|
1216
|
+
'u7i-6tb',
|
|
1217
|
+
'u7i-8tb',
|
|
1218
|
+
'u7in-16tb',
|
|
1219
|
+
'u7in-24tb',
|
|
1220
|
+
'u7in-32tb',
|
|
1221
|
+
'vt1',
|
|
1222
|
+
'x1',
|
|
1223
|
+
'x1e',
|
|
1224
|
+
'x2gd',
|
|
1225
|
+
'x2idn',
|
|
1226
|
+
'x2iedn',
|
|
1227
|
+
'x2iezn',
|
|
1228
|
+
'x4',
|
|
1229
|
+
'x8g',
|
|
1230
|
+
'z1d',
|
|
1231
|
+
'z3'
|
|
1232
|
+
]
|
|
1233
|
+
},
|
|
1234
|
+
description: 'Allowed values for `cfke.io/instance-family`.',
|
|
1235
|
+
default: []
|
|
1236
|
+
},
|
|
1237
|
+
'topology.kubernetes.io/region': {
|
|
1238
|
+
type: 'array',
|
|
1239
|
+
items: {
|
|
1240
|
+
type: 'string',
|
|
1241
|
+
enum: [
|
|
1242
|
+
'africa-south1',
|
|
1243
|
+
'ap-northeast-1',
|
|
1244
|
+
'ap-northeast-2',
|
|
1245
|
+
'ap-northeast-3',
|
|
1246
|
+
'ap-south-1',
|
|
1247
|
+
'ap-southeast-1',
|
|
1248
|
+
'ap-southeast-2',
|
|
1249
|
+
'ash',
|
|
1250
|
+
'asia-east1',
|
|
1251
|
+
'asia-east2',
|
|
1252
|
+
'asia-northeast1',
|
|
1253
|
+
'asia-northeast2',
|
|
1254
|
+
'asia-northeast3',
|
|
1255
|
+
'asia-south1',
|
|
1256
|
+
'asia-south2',
|
|
1257
|
+
'asia-southeast1',
|
|
1258
|
+
'asia-southeast2',
|
|
1259
|
+
'australia-southeast1',
|
|
1260
|
+
'australia-southeast2',
|
|
1261
|
+
'ca-central-1',
|
|
1262
|
+
'eu-central-1',
|
|
1263
|
+
'eu-central-2',
|
|
1264
|
+
'eu-north-1',
|
|
1265
|
+
'eu-west-1',
|
|
1266
|
+
'eu-west-2',
|
|
1267
|
+
'eu-west-3',
|
|
1268
|
+
'europe-central2',
|
|
1269
|
+
'europe-north1',
|
|
1270
|
+
'europe-southwest1',
|
|
1271
|
+
'europe-west1',
|
|
1272
|
+
'europe-west10',
|
|
1273
|
+
'europe-west12',
|
|
1274
|
+
'europe-west2',
|
|
1275
|
+
'europe-west3',
|
|
1276
|
+
'europe-west4',
|
|
1277
|
+
'europe-west6',
|
|
1278
|
+
'europe-west8',
|
|
1279
|
+
'europe-west9',
|
|
1280
|
+
'fsn1',
|
|
1281
|
+
'hel1',
|
|
1282
|
+
'hil',
|
|
1283
|
+
'me-central1',
|
|
1284
|
+
'me-central2',
|
|
1285
|
+
'me-west1',
|
|
1286
|
+
'nbg1',
|
|
1287
|
+
'northamerica-northeast1',
|
|
1288
|
+
'northamerica-northeast2',
|
|
1289
|
+
'sa-east-1',
|
|
1290
|
+
'sin',
|
|
1291
|
+
'southamerica-east1',
|
|
1292
|
+
'southamerica-west1',
|
|
1293
|
+
'us-central1',
|
|
1294
|
+
'us-east-1',
|
|
1295
|
+
'us-east-2',
|
|
1296
|
+
'us-east1',
|
|
1297
|
+
'us-east4',
|
|
1298
|
+
'us-east5',
|
|
1299
|
+
'us-south1',
|
|
1300
|
+
'us-west-1',
|
|
1301
|
+
'us-west-2',
|
|
1302
|
+
'us-west1',
|
|
1303
|
+
'us-west2',
|
|
1304
|
+
'us-west3',
|
|
1305
|
+
'us-west4'
|
|
1306
|
+
]
|
|
1307
|
+
},
|
|
1308
|
+
description: 'Allowed values for `topology.kubernetes.io/region`.',
|
|
1309
|
+
default: []
|
|
1310
|
+
}
|
|
1311
|
+
},
|
|
1312
|
+
additionalProperties: false,
|
|
1313
|
+
description: 'Constraints define scheduling and provisioning requirements for the fleet. Each field restricts the values allowed for a given Kubernetes label key. Multiple constraints are ANDed together.',
|
|
1314
|
+
default: {
|
|
1315
|
+
'karpenter.sh/capacity-type': [
|
|
1316
|
+
'on-demand',
|
|
1317
|
+
'spot'
|
|
1318
|
+
],
|
|
1319
|
+
'kubernetes.io/arch': [
|
|
1320
|
+
'amd64'
|
|
1321
|
+
],
|
|
1322
|
+
'cfke.io/instance-family': [],
|
|
1323
|
+
'topology.kubernetes.io/region': []
|
|
1324
|
+
}
|
|
1325
|
+
},
|
|
1326
|
+
scalingProfile: {
|
|
1327
|
+
type: 'string',
|
|
1328
|
+
description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet. Full-overwrite: omit to reset to the default (`conservative`).',
|
|
1329
|
+
default: 'conservative',
|
|
1330
|
+
example: 'conservative',
|
|
1331
|
+
enum: [
|
|
1332
|
+
'aggressive',
|
|
1333
|
+
'conservative'
|
|
1334
|
+
]
|
|
1335
|
+
},
|
|
551
1336
|
id: {
|
|
552
1337
|
type: 'string',
|
|
553
1338
|
maxLength: 63,
|
|
@@ -557,8 +1342,11 @@ export const FleetCreateInputSchema = {
|
|
|
557
1342
|
example: 'new-clouds-fleet'
|
|
558
1343
|
}
|
|
559
1344
|
},
|
|
560
|
-
required: [
|
|
561
|
-
|
|
1345
|
+
required: [
|
|
1346
|
+
'id'
|
|
1347
|
+
],
|
|
1348
|
+
additionalProperties: false,
|
|
1349
|
+
description: 'Mutable fleet configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
|
|
562
1350
|
};
|
|
563
1351
|
export const FleetSchema = {
|
|
564
1352
|
type: 'object',
|
|
@@ -567,13 +1355,12 @@ export const FleetSchema = {
|
|
|
567
1355
|
type: 'object',
|
|
568
1356
|
properties: {
|
|
569
1357
|
cpu: {
|
|
570
|
-
type: '
|
|
571
|
-
format: 'float',
|
|
1358
|
+
type: 'integer',
|
|
572
1359
|
minimum: 0,
|
|
573
|
-
|
|
1360
|
+
maximum: 100000,
|
|
1361
|
+
description: 'CPU limit in cores. Maximum 100,000.'
|
|
574
1362
|
}
|
|
575
1363
|
},
|
|
576
|
-
required: ['cpu'],
|
|
577
1364
|
additionalProperties: false,
|
|
578
1365
|
description: 'Limits define a set of bounds for provisioning capacity.'
|
|
579
1366
|
},
|
|
@@ -581,47 +1368,360 @@ export const FleetSchema = {
|
|
|
581
1368
|
type: 'object',
|
|
582
1369
|
properties: {
|
|
583
1370
|
enabled: {
|
|
584
|
-
type: 'boolean'
|
|
585
|
-
default: true
|
|
1371
|
+
type: 'boolean'
|
|
586
1372
|
},
|
|
587
1373
|
project: {
|
|
588
1374
|
type: 'string',
|
|
589
|
-
|
|
1375
|
+
pattern: '^[a-z][a-z0-9-]{4,28}[a-z0-9]$',
|
|
1376
|
+
description: 'GCP project ID to deploy instances into. 6-30 chars, lowercase letters/digits/hyphens, must start with a letter and not end with a hyphen. Omit when GCP is disabled.',
|
|
1377
|
+
example: 'my-cloudfleet-project'
|
|
590
1378
|
}
|
|
591
1379
|
},
|
|
592
|
-
required: [
|
|
1380
|
+
required: [
|
|
1381
|
+
'enabled'
|
|
1382
|
+
],
|
|
593
1383
|
additionalProperties: false
|
|
594
1384
|
},
|
|
595
1385
|
hetzner: {
|
|
596
1386
|
type: 'object',
|
|
597
1387
|
properties: {
|
|
598
1388
|
enabled: {
|
|
599
|
-
type: 'boolean'
|
|
600
|
-
default: true
|
|
1389
|
+
type: 'boolean'
|
|
601
1390
|
},
|
|
602
1391
|
apiKey: {
|
|
603
1392
|
type: 'string',
|
|
604
|
-
|
|
1393
|
+
pattern: '^\\*{64}$',
|
|
1394
|
+
description: 'Redacted Hetzner API token. Returned as 64 asterisks when a token is configured; omitted otherwise. The real value is never echoed by the API.'
|
|
605
1395
|
}
|
|
606
1396
|
},
|
|
607
|
-
required: [
|
|
1397
|
+
required: [
|
|
1398
|
+
'enabled'
|
|
1399
|
+
],
|
|
608
1400
|
additionalProperties: false
|
|
609
1401
|
},
|
|
610
1402
|
aws: {
|
|
611
1403
|
type: 'object',
|
|
612
1404
|
properties: {
|
|
613
1405
|
enabled: {
|
|
614
|
-
type: 'boolean'
|
|
615
|
-
default: true
|
|
1406
|
+
type: 'boolean'
|
|
616
1407
|
},
|
|
617
1408
|
controllerRoleArn: {
|
|
618
1409
|
type: 'string',
|
|
619
|
-
|
|
1410
|
+
pattern: '^arn:aws(-[a-z]+)*:iam::\\d{12}:role\\/[\\w+=,.@/-]+$',
|
|
1411
|
+
description: 'AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.',
|
|
1412
|
+
example: 'arn:aws:iam::123456789012:role/Cloudfleet'
|
|
620
1413
|
}
|
|
621
1414
|
},
|
|
622
|
-
required: [
|
|
1415
|
+
required: [
|
|
1416
|
+
'enabled'
|
|
1417
|
+
],
|
|
623
1418
|
additionalProperties: false
|
|
624
1419
|
},
|
|
1420
|
+
constraints: {
|
|
1421
|
+
type: 'object',
|
|
1422
|
+
properties: {
|
|
1423
|
+
'karpenter.sh/capacity-type': {
|
|
1424
|
+
type: 'array',
|
|
1425
|
+
items: {
|
|
1426
|
+
type: 'string',
|
|
1427
|
+
enum: [
|
|
1428
|
+
'on-demand',
|
|
1429
|
+
'spot'
|
|
1430
|
+
]
|
|
1431
|
+
},
|
|
1432
|
+
minItems: 1,
|
|
1433
|
+
description: 'Allowed values for `karpenter.sh/capacity-type`.',
|
|
1434
|
+
default: [
|
|
1435
|
+
'on-demand',
|
|
1436
|
+
'spot'
|
|
1437
|
+
]
|
|
1438
|
+
},
|
|
1439
|
+
'kubernetes.io/arch': {
|
|
1440
|
+
type: 'array',
|
|
1441
|
+
items: {
|
|
1442
|
+
type: 'string',
|
|
1443
|
+
enum: [
|
|
1444
|
+
'amd64',
|
|
1445
|
+
'arm64'
|
|
1446
|
+
]
|
|
1447
|
+
},
|
|
1448
|
+
minItems: 1,
|
|
1449
|
+
description: 'Allowed values for `kubernetes.io/arch`.',
|
|
1450
|
+
default: [
|
|
1451
|
+
'amd64'
|
|
1452
|
+
]
|
|
1453
|
+
},
|
|
1454
|
+
'cfke.io/instance-family': {
|
|
1455
|
+
type: 'array',
|
|
1456
|
+
items: {
|
|
1457
|
+
type: 'string',
|
|
1458
|
+
enum: [
|
|
1459
|
+
'a1',
|
|
1460
|
+
'a2',
|
|
1461
|
+
'a3',
|
|
1462
|
+
'a4',
|
|
1463
|
+
'c1',
|
|
1464
|
+
'c2',
|
|
1465
|
+
'c2d',
|
|
1466
|
+
'c3',
|
|
1467
|
+
'c3d',
|
|
1468
|
+
'c4',
|
|
1469
|
+
'c4a',
|
|
1470
|
+
'c4d',
|
|
1471
|
+
'c5',
|
|
1472
|
+
'c5a',
|
|
1473
|
+
'c5ad',
|
|
1474
|
+
'c5d',
|
|
1475
|
+
'c5n',
|
|
1476
|
+
'c6a',
|
|
1477
|
+
'c6g',
|
|
1478
|
+
'c6gd',
|
|
1479
|
+
'c6gn',
|
|
1480
|
+
'c6i',
|
|
1481
|
+
'c6id',
|
|
1482
|
+
'c6in',
|
|
1483
|
+
'c7a',
|
|
1484
|
+
'c7g',
|
|
1485
|
+
'c7gd',
|
|
1486
|
+
'c7gn',
|
|
1487
|
+
'c7i',
|
|
1488
|
+
'c7i-flex',
|
|
1489
|
+
'c8g',
|
|
1490
|
+
'c8gd',
|
|
1491
|
+
'cax',
|
|
1492
|
+
'ccx',
|
|
1493
|
+
'cpx',
|
|
1494
|
+
'cx',
|
|
1495
|
+
'd2',
|
|
1496
|
+
'd3',
|
|
1497
|
+
'd3en',
|
|
1498
|
+
'dl1',
|
|
1499
|
+
'dl2q',
|
|
1500
|
+
'e2',
|
|
1501
|
+
'f1',
|
|
1502
|
+
'f2',
|
|
1503
|
+
'g1',
|
|
1504
|
+
'g2',
|
|
1505
|
+
'g4ad',
|
|
1506
|
+
'g4dn',
|
|
1507
|
+
'g5',
|
|
1508
|
+
'g5g',
|
|
1509
|
+
'g6',
|
|
1510
|
+
'g6e',
|
|
1511
|
+
'gr6',
|
|
1512
|
+
'h1',
|
|
1513
|
+
'h3',
|
|
1514
|
+
'hpc6a',
|
|
1515
|
+
'hpc6id',
|
|
1516
|
+
'hpc7a',
|
|
1517
|
+
'hpc7g',
|
|
1518
|
+
'i2',
|
|
1519
|
+
'i3',
|
|
1520
|
+
'i3en',
|
|
1521
|
+
'i4g',
|
|
1522
|
+
'i4i',
|
|
1523
|
+
'i7i',
|
|
1524
|
+
'i7ie',
|
|
1525
|
+
'i8g',
|
|
1526
|
+
'im4gn',
|
|
1527
|
+
'inf1',
|
|
1528
|
+
'inf2',
|
|
1529
|
+
'is4gen',
|
|
1530
|
+
'm1',
|
|
1531
|
+
'm2',
|
|
1532
|
+
'm3',
|
|
1533
|
+
'm4',
|
|
1534
|
+
'm5',
|
|
1535
|
+
'm5a',
|
|
1536
|
+
'm5ad',
|
|
1537
|
+
'm5d',
|
|
1538
|
+
'm5dn',
|
|
1539
|
+
'm5n',
|
|
1540
|
+
'm5zn',
|
|
1541
|
+
'm6a',
|
|
1542
|
+
'm6g',
|
|
1543
|
+
'm6gd',
|
|
1544
|
+
'm6i',
|
|
1545
|
+
'm6id',
|
|
1546
|
+
'm6idn',
|
|
1547
|
+
'm6in',
|
|
1548
|
+
'm7a',
|
|
1549
|
+
'm7g',
|
|
1550
|
+
'm7gd',
|
|
1551
|
+
'm7i',
|
|
1552
|
+
'm7i-flex',
|
|
1553
|
+
'm8g',
|
|
1554
|
+
'm8gd',
|
|
1555
|
+
'n1',
|
|
1556
|
+
'n2',
|
|
1557
|
+
'n2d',
|
|
1558
|
+
'n4',
|
|
1559
|
+
'p3',
|
|
1560
|
+
'p3dn',
|
|
1561
|
+
'p4d',
|
|
1562
|
+
'p4de',
|
|
1563
|
+
'p5',
|
|
1564
|
+
'p5e',
|
|
1565
|
+
'p5en',
|
|
1566
|
+
'p6-b200',
|
|
1567
|
+
'r3',
|
|
1568
|
+
'r4',
|
|
1569
|
+
'r5',
|
|
1570
|
+
'r5a',
|
|
1571
|
+
'r5ad',
|
|
1572
|
+
'r5b',
|
|
1573
|
+
'r5d',
|
|
1574
|
+
'r5dn',
|
|
1575
|
+
'r5n',
|
|
1576
|
+
'r6a',
|
|
1577
|
+
'r6g',
|
|
1578
|
+
'r6gd',
|
|
1579
|
+
'r6i',
|
|
1580
|
+
'r6id',
|
|
1581
|
+
'r6idn',
|
|
1582
|
+
'r6in',
|
|
1583
|
+
'r7a',
|
|
1584
|
+
'r7g',
|
|
1585
|
+
'r7gd',
|
|
1586
|
+
'r7i',
|
|
1587
|
+
'r7iz',
|
|
1588
|
+
'r8g',
|
|
1589
|
+
'r8gd',
|
|
1590
|
+
't2',
|
|
1591
|
+
't2a',
|
|
1592
|
+
't2d',
|
|
1593
|
+
't3',
|
|
1594
|
+
't3a',
|
|
1595
|
+
't4g',
|
|
1596
|
+
'trn1',
|
|
1597
|
+
'trn1n',
|
|
1598
|
+
'u-3tb1',
|
|
1599
|
+
'u-6tb1',
|
|
1600
|
+
'u7i-12tb',
|
|
1601
|
+
'u7i-6tb',
|
|
1602
|
+
'u7i-8tb',
|
|
1603
|
+
'u7in-16tb',
|
|
1604
|
+
'u7in-24tb',
|
|
1605
|
+
'u7in-32tb',
|
|
1606
|
+
'vt1',
|
|
1607
|
+
'x1',
|
|
1608
|
+
'x1e',
|
|
1609
|
+
'x2gd',
|
|
1610
|
+
'x2idn',
|
|
1611
|
+
'x2iedn',
|
|
1612
|
+
'x2iezn',
|
|
1613
|
+
'x4',
|
|
1614
|
+
'x8g',
|
|
1615
|
+
'z1d',
|
|
1616
|
+
'z3'
|
|
1617
|
+
]
|
|
1618
|
+
},
|
|
1619
|
+
description: 'Allowed values for `cfke.io/instance-family`.',
|
|
1620
|
+
default: []
|
|
1621
|
+
},
|
|
1622
|
+
'topology.kubernetes.io/region': {
|
|
1623
|
+
type: 'array',
|
|
1624
|
+
items: {
|
|
1625
|
+
type: 'string',
|
|
1626
|
+
enum: [
|
|
1627
|
+
'africa-south1',
|
|
1628
|
+
'ap-northeast-1',
|
|
1629
|
+
'ap-northeast-2',
|
|
1630
|
+
'ap-northeast-3',
|
|
1631
|
+
'ap-south-1',
|
|
1632
|
+
'ap-southeast-1',
|
|
1633
|
+
'ap-southeast-2',
|
|
1634
|
+
'ash',
|
|
1635
|
+
'asia-east1',
|
|
1636
|
+
'asia-east2',
|
|
1637
|
+
'asia-northeast1',
|
|
1638
|
+
'asia-northeast2',
|
|
1639
|
+
'asia-northeast3',
|
|
1640
|
+
'asia-south1',
|
|
1641
|
+
'asia-south2',
|
|
1642
|
+
'asia-southeast1',
|
|
1643
|
+
'asia-southeast2',
|
|
1644
|
+
'australia-southeast1',
|
|
1645
|
+
'australia-southeast2',
|
|
1646
|
+
'ca-central-1',
|
|
1647
|
+
'eu-central-1',
|
|
1648
|
+
'eu-central-2',
|
|
1649
|
+
'eu-north-1',
|
|
1650
|
+
'eu-west-1',
|
|
1651
|
+
'eu-west-2',
|
|
1652
|
+
'eu-west-3',
|
|
1653
|
+
'europe-central2',
|
|
1654
|
+
'europe-north1',
|
|
1655
|
+
'europe-southwest1',
|
|
1656
|
+
'europe-west1',
|
|
1657
|
+
'europe-west10',
|
|
1658
|
+
'europe-west12',
|
|
1659
|
+
'europe-west2',
|
|
1660
|
+
'europe-west3',
|
|
1661
|
+
'europe-west4',
|
|
1662
|
+
'europe-west6',
|
|
1663
|
+
'europe-west8',
|
|
1664
|
+
'europe-west9',
|
|
1665
|
+
'fsn1',
|
|
1666
|
+
'hel1',
|
|
1667
|
+
'hil',
|
|
1668
|
+
'me-central1',
|
|
1669
|
+
'me-central2',
|
|
1670
|
+
'me-west1',
|
|
1671
|
+
'nbg1',
|
|
1672
|
+
'northamerica-northeast1',
|
|
1673
|
+
'northamerica-northeast2',
|
|
1674
|
+
'sa-east-1',
|
|
1675
|
+
'sin',
|
|
1676
|
+
'southamerica-east1',
|
|
1677
|
+
'southamerica-west1',
|
|
1678
|
+
'us-central1',
|
|
1679
|
+
'us-east-1',
|
|
1680
|
+
'us-east-2',
|
|
1681
|
+
'us-east1',
|
|
1682
|
+
'us-east4',
|
|
1683
|
+
'us-east5',
|
|
1684
|
+
'us-south1',
|
|
1685
|
+
'us-west-1',
|
|
1686
|
+
'us-west-2',
|
|
1687
|
+
'us-west1',
|
|
1688
|
+
'us-west2',
|
|
1689
|
+
'us-west3',
|
|
1690
|
+
'us-west4'
|
|
1691
|
+
]
|
|
1692
|
+
},
|
|
1693
|
+
description: 'Allowed values for `topology.kubernetes.io/region`.',
|
|
1694
|
+
default: []
|
|
1695
|
+
}
|
|
1696
|
+
},
|
|
1697
|
+
required: [
|
|
1698
|
+
'karpenter.sh/capacity-type',
|
|
1699
|
+
'kubernetes.io/arch'
|
|
1700
|
+
],
|
|
1701
|
+
additionalProperties: false,
|
|
1702
|
+
description: 'Constraints define scheduling and provisioning requirements for the fleet. Each field restricts the values allowed for a given Kubernetes label key. Multiple constraints are ANDed together.',
|
|
1703
|
+
default: {
|
|
1704
|
+
'karpenter.sh/capacity-type': [
|
|
1705
|
+
'on-demand',
|
|
1706
|
+
'spot'
|
|
1707
|
+
],
|
|
1708
|
+
'kubernetes.io/arch': [
|
|
1709
|
+
'amd64'
|
|
1710
|
+
],
|
|
1711
|
+
'cfke.io/instance-family': [],
|
|
1712
|
+
'topology.kubernetes.io/region': []
|
|
1713
|
+
}
|
|
1714
|
+
},
|
|
1715
|
+
scalingProfile: {
|
|
1716
|
+
type: 'string',
|
|
1717
|
+
description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet. Full-overwrite: omit to reset to the default (`conservative`).',
|
|
1718
|
+
default: 'conservative',
|
|
1719
|
+
example: 'conservative',
|
|
1720
|
+
enum: [
|
|
1721
|
+
'aggressive',
|
|
1722
|
+
'conservative'
|
|
1723
|
+
]
|
|
1724
|
+
},
|
|
625
1725
|
id: {
|
|
626
1726
|
type: 'string',
|
|
627
1727
|
maxLength: 63,
|
|
@@ -629,10 +1729,38 @@ export const FleetSchema = {
|
|
|
629
1729
|
pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
|
|
630
1730
|
description: 'Unique identifier of the kubernetes fleet.',
|
|
631
1731
|
example: 'new-clouds-fleet'
|
|
1732
|
+
},
|
|
1733
|
+
ready: {
|
|
1734
|
+
type: 'boolean',
|
|
1735
|
+
description: 'Indicates whether the fleet configuration is healthy.',
|
|
1736
|
+
example: true
|
|
1737
|
+
},
|
|
1738
|
+
status_message: {
|
|
1739
|
+
type: 'string',
|
|
1740
|
+
description: 'Human-readable reason the fleet is not ready. Present only when `ready` is false.',
|
|
1741
|
+
example: 'Invalid provider permissions.'
|
|
1742
|
+
},
|
|
1743
|
+
created_at: {
|
|
1744
|
+
type: 'string',
|
|
1745
|
+
description: 'Creation date and time of the fleet.',
|
|
1746
|
+
example: '2024-09-12T09:11:27Z'
|
|
1747
|
+
},
|
|
1748
|
+
updated_at: {
|
|
1749
|
+
type: 'string',
|
|
1750
|
+
description: 'Date and time the fleet was last updated.',
|
|
1751
|
+
example: '2024-09-12T09:11:27Z'
|
|
632
1752
|
}
|
|
633
1753
|
},
|
|
634
|
-
required: [
|
|
635
|
-
|
|
1754
|
+
required: [
|
|
1755
|
+
'constraints',
|
|
1756
|
+
'scalingProfile',
|
|
1757
|
+
'id',
|
|
1758
|
+
'ready',
|
|
1759
|
+
'created_at',
|
|
1760
|
+
'updated_at'
|
|
1761
|
+
],
|
|
1762
|
+
additionalProperties: false,
|
|
1763
|
+
description: 'Mutable fleet configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
|
|
636
1764
|
};
|
|
637
1765
|
export const FleetUpdateInputSchema = {
|
|
638
1766
|
type: 'object',
|
|
@@ -641,13 +1769,12 @@ export const FleetUpdateInputSchema = {
|
|
|
641
1769
|
type: 'object',
|
|
642
1770
|
properties: {
|
|
643
1771
|
cpu: {
|
|
644
|
-
type: '
|
|
645
|
-
format: 'float',
|
|
1772
|
+
type: 'integer',
|
|
646
1773
|
minimum: 0,
|
|
647
|
-
|
|
1774
|
+
maximum: 100000,
|
|
1775
|
+
description: 'CPU limit in cores. Maximum 100,000.'
|
|
648
1776
|
}
|
|
649
1777
|
},
|
|
650
|
-
required: ['cpu'],
|
|
651
1778
|
additionalProperties: false,
|
|
652
1779
|
description: 'Limits define a set of bounds for provisioning capacity.'
|
|
653
1780
|
},
|
|
@@ -655,48 +1782,385 @@ export const FleetUpdateInputSchema = {
|
|
|
655
1782
|
type: 'object',
|
|
656
1783
|
properties: {
|
|
657
1784
|
enabled: {
|
|
658
|
-
type: 'boolean'
|
|
659
|
-
default: true
|
|
1785
|
+
type: 'boolean'
|
|
660
1786
|
},
|
|
661
1787
|
project: {
|
|
662
1788
|
type: 'string',
|
|
663
|
-
|
|
1789
|
+
pattern: '^[a-z][a-z0-9-]{4,28}[a-z0-9]$',
|
|
1790
|
+
description: 'GCP project ID to deploy instances into. 6-30 chars, lowercase letters/digits/hyphens, must start with a letter and not end with a hyphen. Omit when GCP is disabled.',
|
|
1791
|
+
example: 'my-cloudfleet-project'
|
|
664
1792
|
}
|
|
665
1793
|
},
|
|
666
|
-
required: [
|
|
1794
|
+
required: [
|
|
1795
|
+
'enabled'
|
|
1796
|
+
],
|
|
667
1797
|
additionalProperties: false
|
|
668
1798
|
},
|
|
669
1799
|
hetzner: {
|
|
670
1800
|
type: 'object',
|
|
671
1801
|
properties: {
|
|
672
1802
|
enabled: {
|
|
673
|
-
type: 'boolean'
|
|
674
|
-
default: true
|
|
1803
|
+
type: 'boolean'
|
|
675
1804
|
},
|
|
676
1805
|
apiKey: {
|
|
677
1806
|
type: 'string',
|
|
678
|
-
|
|
1807
|
+
maxLength: 64,
|
|
1808
|
+
minLength: 64,
|
|
1809
|
+
pattern: '^[A-Za-z0-9]+$',
|
|
1810
|
+
description: 'Hetzner Cloud API token with read / write access (64 alphanumeric characters). Omit this field to keep the existing value.'
|
|
679
1811
|
}
|
|
680
1812
|
},
|
|
681
|
-
required: [
|
|
1813
|
+
required: [
|
|
1814
|
+
'enabled'
|
|
1815
|
+
],
|
|
682
1816
|
additionalProperties: false
|
|
683
1817
|
},
|
|
684
1818
|
aws: {
|
|
685
1819
|
type: 'object',
|
|
686
1820
|
properties: {
|
|
687
1821
|
enabled: {
|
|
688
|
-
type: 'boolean'
|
|
689
|
-
default: true
|
|
1822
|
+
type: 'boolean'
|
|
690
1823
|
},
|
|
691
1824
|
controllerRoleArn: {
|
|
692
1825
|
type: 'string',
|
|
693
|
-
|
|
1826
|
+
pattern: '^arn:aws(-[a-z]+)*:iam::\\d{12}:role\\/[\\w+=,.@/-]+$',
|
|
1827
|
+
description: 'AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.',
|
|
1828
|
+
example: 'arn:aws:iam::123456789012:role/Cloudfleet'
|
|
694
1829
|
}
|
|
695
1830
|
},
|
|
696
|
-
required: [
|
|
1831
|
+
required: [
|
|
1832
|
+
'enabled'
|
|
1833
|
+
],
|
|
697
1834
|
additionalProperties: false
|
|
1835
|
+
},
|
|
1836
|
+
constraints: {
|
|
1837
|
+
type: 'object',
|
|
1838
|
+
properties: {
|
|
1839
|
+
'karpenter.sh/capacity-type': {
|
|
1840
|
+
type: 'array',
|
|
1841
|
+
items: {
|
|
1842
|
+
type: 'string',
|
|
1843
|
+
enum: [
|
|
1844
|
+
'on-demand',
|
|
1845
|
+
'spot'
|
|
1846
|
+
]
|
|
1847
|
+
},
|
|
1848
|
+
minItems: 1,
|
|
1849
|
+
description: 'Allowed values for `karpenter.sh/capacity-type`.',
|
|
1850
|
+
default: [
|
|
1851
|
+
'on-demand',
|
|
1852
|
+
'spot'
|
|
1853
|
+
]
|
|
1854
|
+
},
|
|
1855
|
+
'kubernetes.io/arch': {
|
|
1856
|
+
type: 'array',
|
|
1857
|
+
items: {
|
|
1858
|
+
type: 'string',
|
|
1859
|
+
enum: [
|
|
1860
|
+
'amd64',
|
|
1861
|
+
'arm64'
|
|
1862
|
+
]
|
|
1863
|
+
},
|
|
1864
|
+
minItems: 1,
|
|
1865
|
+
description: 'Allowed values for `kubernetes.io/arch`.',
|
|
1866
|
+
default: [
|
|
1867
|
+
'amd64'
|
|
1868
|
+
]
|
|
1869
|
+
},
|
|
1870
|
+
'cfke.io/instance-family': {
|
|
1871
|
+
type: 'array',
|
|
1872
|
+
items: {
|
|
1873
|
+
type: 'string',
|
|
1874
|
+
enum: [
|
|
1875
|
+
'a1',
|
|
1876
|
+
'a2',
|
|
1877
|
+
'a3',
|
|
1878
|
+
'a4',
|
|
1879
|
+
'c1',
|
|
1880
|
+
'c2',
|
|
1881
|
+
'c2d',
|
|
1882
|
+
'c3',
|
|
1883
|
+
'c3d',
|
|
1884
|
+
'c4',
|
|
1885
|
+
'c4a',
|
|
1886
|
+
'c4d',
|
|
1887
|
+
'c5',
|
|
1888
|
+
'c5a',
|
|
1889
|
+
'c5ad',
|
|
1890
|
+
'c5d',
|
|
1891
|
+
'c5n',
|
|
1892
|
+
'c6a',
|
|
1893
|
+
'c6g',
|
|
1894
|
+
'c6gd',
|
|
1895
|
+
'c6gn',
|
|
1896
|
+
'c6i',
|
|
1897
|
+
'c6id',
|
|
1898
|
+
'c6in',
|
|
1899
|
+
'c7a',
|
|
1900
|
+
'c7g',
|
|
1901
|
+
'c7gd',
|
|
1902
|
+
'c7gn',
|
|
1903
|
+
'c7i',
|
|
1904
|
+
'c7i-flex',
|
|
1905
|
+
'c8g',
|
|
1906
|
+
'c8gd',
|
|
1907
|
+
'cax',
|
|
1908
|
+
'ccx',
|
|
1909
|
+
'cpx',
|
|
1910
|
+
'cx',
|
|
1911
|
+
'd2',
|
|
1912
|
+
'd3',
|
|
1913
|
+
'd3en',
|
|
1914
|
+
'dl1',
|
|
1915
|
+
'dl2q',
|
|
1916
|
+
'e2',
|
|
1917
|
+
'f1',
|
|
1918
|
+
'f2',
|
|
1919
|
+
'g1',
|
|
1920
|
+
'g2',
|
|
1921
|
+
'g4ad',
|
|
1922
|
+
'g4dn',
|
|
1923
|
+
'g5',
|
|
1924
|
+
'g5g',
|
|
1925
|
+
'g6',
|
|
1926
|
+
'g6e',
|
|
1927
|
+
'gr6',
|
|
1928
|
+
'h1',
|
|
1929
|
+
'h3',
|
|
1930
|
+
'hpc6a',
|
|
1931
|
+
'hpc6id',
|
|
1932
|
+
'hpc7a',
|
|
1933
|
+
'hpc7g',
|
|
1934
|
+
'i2',
|
|
1935
|
+
'i3',
|
|
1936
|
+
'i3en',
|
|
1937
|
+
'i4g',
|
|
1938
|
+
'i4i',
|
|
1939
|
+
'i7i',
|
|
1940
|
+
'i7ie',
|
|
1941
|
+
'i8g',
|
|
1942
|
+
'im4gn',
|
|
1943
|
+
'inf1',
|
|
1944
|
+
'inf2',
|
|
1945
|
+
'is4gen',
|
|
1946
|
+
'm1',
|
|
1947
|
+
'm2',
|
|
1948
|
+
'm3',
|
|
1949
|
+
'm4',
|
|
1950
|
+
'm5',
|
|
1951
|
+
'm5a',
|
|
1952
|
+
'm5ad',
|
|
1953
|
+
'm5d',
|
|
1954
|
+
'm5dn',
|
|
1955
|
+
'm5n',
|
|
1956
|
+
'm5zn',
|
|
1957
|
+
'm6a',
|
|
1958
|
+
'm6g',
|
|
1959
|
+
'm6gd',
|
|
1960
|
+
'm6i',
|
|
1961
|
+
'm6id',
|
|
1962
|
+
'm6idn',
|
|
1963
|
+
'm6in',
|
|
1964
|
+
'm7a',
|
|
1965
|
+
'm7g',
|
|
1966
|
+
'm7gd',
|
|
1967
|
+
'm7i',
|
|
1968
|
+
'm7i-flex',
|
|
1969
|
+
'm8g',
|
|
1970
|
+
'm8gd',
|
|
1971
|
+
'n1',
|
|
1972
|
+
'n2',
|
|
1973
|
+
'n2d',
|
|
1974
|
+
'n4',
|
|
1975
|
+
'p3',
|
|
1976
|
+
'p3dn',
|
|
1977
|
+
'p4d',
|
|
1978
|
+
'p4de',
|
|
1979
|
+
'p5',
|
|
1980
|
+
'p5e',
|
|
1981
|
+
'p5en',
|
|
1982
|
+
'p6-b200',
|
|
1983
|
+
'r3',
|
|
1984
|
+
'r4',
|
|
1985
|
+
'r5',
|
|
1986
|
+
'r5a',
|
|
1987
|
+
'r5ad',
|
|
1988
|
+
'r5b',
|
|
1989
|
+
'r5d',
|
|
1990
|
+
'r5dn',
|
|
1991
|
+
'r5n',
|
|
1992
|
+
'r6a',
|
|
1993
|
+
'r6g',
|
|
1994
|
+
'r6gd',
|
|
1995
|
+
'r6i',
|
|
1996
|
+
'r6id',
|
|
1997
|
+
'r6idn',
|
|
1998
|
+
'r6in',
|
|
1999
|
+
'r7a',
|
|
2000
|
+
'r7g',
|
|
2001
|
+
'r7gd',
|
|
2002
|
+
'r7i',
|
|
2003
|
+
'r7iz',
|
|
2004
|
+
'r8g',
|
|
2005
|
+
'r8gd',
|
|
2006
|
+
't2',
|
|
2007
|
+
't2a',
|
|
2008
|
+
't2d',
|
|
2009
|
+
't3',
|
|
2010
|
+
't3a',
|
|
2011
|
+
't4g',
|
|
2012
|
+
'trn1',
|
|
2013
|
+
'trn1n',
|
|
2014
|
+
'u-3tb1',
|
|
2015
|
+
'u-6tb1',
|
|
2016
|
+
'u7i-12tb',
|
|
2017
|
+
'u7i-6tb',
|
|
2018
|
+
'u7i-8tb',
|
|
2019
|
+
'u7in-16tb',
|
|
2020
|
+
'u7in-24tb',
|
|
2021
|
+
'u7in-32tb',
|
|
2022
|
+
'vt1',
|
|
2023
|
+
'x1',
|
|
2024
|
+
'x1e',
|
|
2025
|
+
'x2gd',
|
|
2026
|
+
'x2idn',
|
|
2027
|
+
'x2iedn',
|
|
2028
|
+
'x2iezn',
|
|
2029
|
+
'x4',
|
|
2030
|
+
'x8g',
|
|
2031
|
+
'z1d',
|
|
2032
|
+
'z3'
|
|
2033
|
+
]
|
|
2034
|
+
},
|
|
2035
|
+
description: 'Allowed values for `cfke.io/instance-family`.',
|
|
2036
|
+
default: []
|
|
2037
|
+
},
|
|
2038
|
+
'topology.kubernetes.io/region': {
|
|
2039
|
+
type: 'array',
|
|
2040
|
+
items: {
|
|
2041
|
+
type: 'string',
|
|
2042
|
+
enum: [
|
|
2043
|
+
'africa-south1',
|
|
2044
|
+
'ap-northeast-1',
|
|
2045
|
+
'ap-northeast-2',
|
|
2046
|
+
'ap-northeast-3',
|
|
2047
|
+
'ap-south-1',
|
|
2048
|
+
'ap-southeast-1',
|
|
2049
|
+
'ap-southeast-2',
|
|
2050
|
+
'ash',
|
|
2051
|
+
'asia-east1',
|
|
2052
|
+
'asia-east2',
|
|
2053
|
+
'asia-northeast1',
|
|
2054
|
+
'asia-northeast2',
|
|
2055
|
+
'asia-northeast3',
|
|
2056
|
+
'asia-south1',
|
|
2057
|
+
'asia-south2',
|
|
2058
|
+
'asia-southeast1',
|
|
2059
|
+
'asia-southeast2',
|
|
2060
|
+
'australia-southeast1',
|
|
2061
|
+
'australia-southeast2',
|
|
2062
|
+
'ca-central-1',
|
|
2063
|
+
'eu-central-1',
|
|
2064
|
+
'eu-central-2',
|
|
2065
|
+
'eu-north-1',
|
|
2066
|
+
'eu-west-1',
|
|
2067
|
+
'eu-west-2',
|
|
2068
|
+
'eu-west-3',
|
|
2069
|
+
'europe-central2',
|
|
2070
|
+
'europe-north1',
|
|
2071
|
+
'europe-southwest1',
|
|
2072
|
+
'europe-west1',
|
|
2073
|
+
'europe-west10',
|
|
2074
|
+
'europe-west12',
|
|
2075
|
+
'europe-west2',
|
|
2076
|
+
'europe-west3',
|
|
2077
|
+
'europe-west4',
|
|
2078
|
+
'europe-west6',
|
|
2079
|
+
'europe-west8',
|
|
2080
|
+
'europe-west9',
|
|
2081
|
+
'fsn1',
|
|
2082
|
+
'hel1',
|
|
2083
|
+
'hil',
|
|
2084
|
+
'me-central1',
|
|
2085
|
+
'me-central2',
|
|
2086
|
+
'me-west1',
|
|
2087
|
+
'nbg1',
|
|
2088
|
+
'northamerica-northeast1',
|
|
2089
|
+
'northamerica-northeast2',
|
|
2090
|
+
'sa-east-1',
|
|
2091
|
+
'sin',
|
|
2092
|
+
'southamerica-east1',
|
|
2093
|
+
'southamerica-west1',
|
|
2094
|
+
'us-central1',
|
|
2095
|
+
'us-east-1',
|
|
2096
|
+
'us-east-2',
|
|
2097
|
+
'us-east1',
|
|
2098
|
+
'us-east4',
|
|
2099
|
+
'us-east5',
|
|
2100
|
+
'us-south1',
|
|
2101
|
+
'us-west-1',
|
|
2102
|
+
'us-west-2',
|
|
2103
|
+
'us-west1',
|
|
2104
|
+
'us-west2',
|
|
2105
|
+
'us-west3',
|
|
2106
|
+
'us-west4'
|
|
2107
|
+
]
|
|
2108
|
+
},
|
|
2109
|
+
description: 'Allowed values for `topology.kubernetes.io/region`.',
|
|
2110
|
+
default: []
|
|
2111
|
+
}
|
|
2112
|
+
},
|
|
2113
|
+
additionalProperties: false,
|
|
2114
|
+
description: 'Constraints define scheduling and provisioning requirements for the fleet. Each field restricts the values allowed for a given Kubernetes label key. Multiple constraints are ANDed together.',
|
|
2115
|
+
default: {
|
|
2116
|
+
'karpenter.sh/capacity-type': [
|
|
2117
|
+
'on-demand',
|
|
2118
|
+
'spot'
|
|
2119
|
+
],
|
|
2120
|
+
'kubernetes.io/arch': [
|
|
2121
|
+
'amd64'
|
|
2122
|
+
],
|
|
2123
|
+
'cfke.io/instance-family': [],
|
|
2124
|
+
'topology.kubernetes.io/region': []
|
|
2125
|
+
}
|
|
2126
|
+
},
|
|
2127
|
+
scalingProfile: {
|
|
2128
|
+
type: 'string',
|
|
2129
|
+
description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet. Full-overwrite: omit to reset to the default (`conservative`).',
|
|
2130
|
+
default: 'conservative',
|
|
2131
|
+
example: 'conservative',
|
|
2132
|
+
enum: [
|
|
2133
|
+
'aggressive',
|
|
2134
|
+
'conservative'
|
|
2135
|
+
]
|
|
2136
|
+
}
|
|
2137
|
+
},
|
|
2138
|
+
additionalProperties: false,
|
|
2139
|
+
description: 'Mutable fleet configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
|
|
2140
|
+
};
|
|
2141
|
+
export const InviteCreateInputSchema = {
|
|
2142
|
+
type: 'object',
|
|
2143
|
+
properties: {
|
|
2144
|
+
email: {
|
|
2145
|
+
type: 'string',
|
|
2146
|
+
format: 'email',
|
|
2147
|
+
description: 'Email address of the user to invite.',
|
|
2148
|
+
example: 'email@example.com'
|
|
2149
|
+
},
|
|
2150
|
+
role: {
|
|
2151
|
+
type: 'string',
|
|
2152
|
+
description: 'Role the invited user will be assigned on redemption. Can be \'Administrator\' or \'User\'.',
|
|
2153
|
+
default: 'User',
|
|
2154
|
+
example: 'User',
|
|
2155
|
+
enum: [
|
|
2156
|
+
'Administrator',
|
|
2157
|
+
'User'
|
|
2158
|
+
]
|
|
698
2159
|
}
|
|
699
2160
|
},
|
|
2161
|
+
required: [
|
|
2162
|
+
'email'
|
|
2163
|
+
],
|
|
700
2164
|
additionalProperties: false
|
|
701
2165
|
};
|
|
702
2166
|
export const InviteSchema = {
|
|
@@ -729,9 +2193,21 @@ export const InviteSchema = {
|
|
|
729
2193
|
type: 'string',
|
|
730
2194
|
description: 'Generated unique invite code.',
|
|
731
2195
|
example: '7kUZnH7nnKUFfvc4NK2KQF'
|
|
2196
|
+
},
|
|
2197
|
+
role: {
|
|
2198
|
+
type: 'string',
|
|
2199
|
+
description: 'Role the invited user will be assigned on redemption. Can be \'Administrator\' or \'User\'.',
|
|
2200
|
+
default: 'User',
|
|
2201
|
+
example: 'User',
|
|
2202
|
+
enum: [
|
|
2203
|
+
'Administrator',
|
|
2204
|
+
'User'
|
|
2205
|
+
]
|
|
732
2206
|
}
|
|
733
2207
|
},
|
|
734
|
-
required: [
|
|
2208
|
+
required: [
|
|
2209
|
+
'date_created'
|
|
2210
|
+
],
|
|
735
2211
|
additionalProperties: false
|
|
736
2212
|
};
|
|
737
2213
|
export const InvoiceSchema = {
|
|
@@ -783,7 +2259,11 @@ export const InvoiceSchema = {
|
|
|
783
2259
|
type: 'string'
|
|
784
2260
|
}
|
|
785
2261
|
},
|
|
786
|
-
required: [
|
|
2262
|
+
required: [
|
|
2263
|
+
'created',
|
|
2264
|
+
'period_start',
|
|
2265
|
+
'period_end'
|
|
2266
|
+
],
|
|
787
2267
|
additionalProperties: false
|
|
788
2268
|
};
|
|
789
2269
|
export const MarketplaceListingFilesSchema = {
|
|
@@ -792,18 +2272,12 @@ export const MarketplaceListingFilesSchema = {
|
|
|
792
2272
|
chartYaml: {
|
|
793
2273
|
type: 'string',
|
|
794
2274
|
description: 'Raw Chart.yaml content from the Helm chart',
|
|
795
|
-
example:
|
|
796
|
-
name: nginx-ingress
|
|
797
|
-
version: 1.18.2-cfke.45
|
|
798
|
-
appVersion: 1.9.4`
|
|
2275
|
+
example: 'apiVersion: v2\nname: nginx-ingress\nversion: 1.18.2-cfke.45\nappVersion: 1.9.4'
|
|
799
2276
|
},
|
|
800
2277
|
valuesYaml: {
|
|
801
2278
|
type: 'string',
|
|
802
2279
|
description: 'Raw values.yaml content from the Helm chart',
|
|
803
|
-
example:
|
|
804
|
-
image:
|
|
805
|
-
repository: nginx
|
|
806
|
-
tag: latest`
|
|
2280
|
+
example: 'replicaCount: 1\nimage:\n repository: nginx\n tag: latest'
|
|
807
2281
|
},
|
|
808
2282
|
valuesSchemaJson: {
|
|
809
2283
|
type: 'string',
|
|
@@ -880,20 +2354,31 @@ export const MarketplaceListingSchema = {
|
|
|
880
2354
|
type: 'string'
|
|
881
2355
|
},
|
|
882
2356
|
description: 'Chart keywords',
|
|
883
|
-
example: [
|
|
2357
|
+
example: [
|
|
2358
|
+
'ingress',
|
|
2359
|
+
'nginx',
|
|
2360
|
+
'load-balancer'
|
|
2361
|
+
]
|
|
884
2362
|
},
|
|
885
2363
|
home: {
|
|
886
2364
|
type: 'string',
|
|
887
2365
|
description: 'Chart home URL',
|
|
888
2366
|
example: 'https://kubernetes.github.io/ingress-nginx/'
|
|
889
2367
|
},
|
|
2368
|
+
icon: {
|
|
2369
|
+
type: 'string',
|
|
2370
|
+
description: 'A URL to an SVG or PNG image to be used as an icon',
|
|
2371
|
+
example: 'https://cloudfleet.ai/images/marketplace/icons/ingress-nginx.png'
|
|
2372
|
+
},
|
|
890
2373
|
sources: {
|
|
891
2374
|
type: 'array',
|
|
892
2375
|
items: {
|
|
893
2376
|
type: 'string'
|
|
894
2377
|
},
|
|
895
2378
|
description: 'Chart source URLs',
|
|
896
|
-
example: [
|
|
2379
|
+
example: [
|
|
2380
|
+
'https://github.com/kubernetes/ingress-nginx'
|
|
2381
|
+
]
|
|
897
2382
|
},
|
|
898
2383
|
maintainers: {
|
|
899
2384
|
type: 'array',
|
|
@@ -911,23 +2396,42 @@ export const MarketplaceListingSchema = {
|
|
|
911
2396
|
example: 'support@nginx.org'
|
|
912
2397
|
}
|
|
913
2398
|
},
|
|
914
|
-
required: [
|
|
2399
|
+
required: [
|
|
2400
|
+
'name'
|
|
2401
|
+
],
|
|
915
2402
|
additionalProperties: false
|
|
916
2403
|
},
|
|
917
2404
|
description: 'Chart maintainers'
|
|
918
2405
|
}
|
|
919
2406
|
},
|
|
920
|
-
required: [
|
|
2407
|
+
required: [
|
|
2408
|
+
'name',
|
|
2409
|
+
'version'
|
|
2410
|
+
],
|
|
921
2411
|
additionalProperties: false,
|
|
922
2412
|
description: 'Chart metadata'
|
|
923
2413
|
}
|
|
924
2414
|
},
|
|
925
|
-
required: [
|
|
2415
|
+
required: [
|
|
2416
|
+
'name',
|
|
2417
|
+
'versions',
|
|
2418
|
+
'version_channels',
|
|
2419
|
+
'latestVersion'
|
|
2420
|
+
],
|
|
926
2421
|
additionalProperties: false
|
|
927
2422
|
};
|
|
928
2423
|
export const OrganizationCreateInputSchema = {
|
|
929
2424
|
type: 'object',
|
|
930
2425
|
properties: {
|
|
2426
|
+
type: {
|
|
2427
|
+
type: 'string',
|
|
2428
|
+
description: 'Type of the organization. `business` for legal entities, `personal` for individuals.',
|
|
2429
|
+
example: 'business',
|
|
2430
|
+
enum: [
|
|
2431
|
+
'business',
|
|
2432
|
+
'personal'
|
|
2433
|
+
]
|
|
2434
|
+
},
|
|
931
2435
|
email: {
|
|
932
2436
|
type: 'string',
|
|
933
2437
|
format: 'email',
|
|
@@ -936,11 +2440,13 @@ export const OrganizationCreateInputSchema = {
|
|
|
936
2440
|
},
|
|
937
2441
|
first_name: {
|
|
938
2442
|
type: 'string',
|
|
2443
|
+
minLength: 1,
|
|
939
2444
|
description: 'First name of the billing contact person.',
|
|
940
2445
|
example: 'John'
|
|
941
2446
|
},
|
|
942
2447
|
last_name: {
|
|
943
2448
|
type: 'string',
|
|
2449
|
+
minLength: 1,
|
|
944
2450
|
description: 'Last name of the billing contact person.',
|
|
945
2451
|
example: 'Doe'
|
|
946
2452
|
},
|
|
@@ -958,7 +2464,28 @@ export const OrganizationCreateInputSchema = {
|
|
|
958
2464
|
description: 'Password for the root account. Must be at least 8 characters long and contain at least one uppercase letter, one lowercase letter, one number and one special character.'
|
|
959
2465
|
}
|
|
960
2466
|
},
|
|
961
|
-
required: [
|
|
2467
|
+
required: [
|
|
2468
|
+
'type',
|
|
2469
|
+
'email',
|
|
2470
|
+
'first_name',
|
|
2471
|
+
'last_name',
|
|
2472
|
+
'company_name',
|
|
2473
|
+
'password'
|
|
2474
|
+
],
|
|
2475
|
+
additionalProperties: false
|
|
2476
|
+
};
|
|
2477
|
+
export const OrganizationCreateOutputSchema = {
|
|
2478
|
+
type: 'object',
|
|
2479
|
+
properties: {
|
|
2480
|
+
id: {
|
|
2481
|
+
type: 'string',
|
|
2482
|
+
description: 'Unique identifier of the newly created organization. Generated by the API and safe to use for client-side tracking immediately.',
|
|
2483
|
+
example: 'organization-id'
|
|
2484
|
+
}
|
|
2485
|
+
},
|
|
2486
|
+
required: [
|
|
2487
|
+
'id'
|
|
2488
|
+
],
|
|
962
2489
|
additionalProperties: false
|
|
963
2490
|
};
|
|
964
2491
|
export const OrganizationSchema = {
|
|
@@ -977,6 +2504,15 @@ export const OrganizationSchema = {
|
|
|
977
2504
|
description: 'Name of the legal entity. This name will be used in invoices. Use your first and last name for individual accounts.',
|
|
978
2505
|
example: 'ACME Corp.'
|
|
979
2506
|
},
|
|
2507
|
+
type: {
|
|
2508
|
+
type: 'string',
|
|
2509
|
+
description: 'Type of the organization. `business` for legal entities, `personal` for individuals.',
|
|
2510
|
+
example: 'business',
|
|
2511
|
+
enum: [
|
|
2512
|
+
'business',
|
|
2513
|
+
'personal'
|
|
2514
|
+
]
|
|
2515
|
+
},
|
|
980
2516
|
date_created: {
|
|
981
2517
|
type: 'string',
|
|
982
2518
|
format: 'date-time',
|
|
@@ -1027,7 +2563,7 @@ export const OrganizationSchema = {
|
|
|
1027
2563
|
type: 'array',
|
|
1028
2564
|
items: {
|
|
1029
2565
|
type: 'string',
|
|
1030
|
-
example: 'northamerica-central-
|
|
2566
|
+
example: 'northamerica-central-1a'
|
|
1031
2567
|
},
|
|
1032
2568
|
minItems: 1,
|
|
1033
2569
|
description: 'List of Cloudfleet control plane regions available for the organization.'
|
|
@@ -1048,36 +2584,64 @@ export const OrganizationSchema = {
|
|
|
1048
2584
|
example: '1.33.x (Always latest 1.33 patch version)'
|
|
1049
2585
|
}
|
|
1050
2586
|
},
|
|
1051
|
-
required: [
|
|
2587
|
+
required: [
|
|
2588
|
+
'id',
|
|
2589
|
+
'label'
|
|
2590
|
+
],
|
|
1052
2591
|
additionalProperties: false
|
|
1053
2592
|
},
|
|
1054
2593
|
minItems: 1,
|
|
1055
2594
|
description: 'List of CFKE control plane versions available for the organization.'
|
|
1056
2595
|
},
|
|
1057
|
-
|
|
2596
|
+
cfcr_storage_gb: {
|
|
1058
2597
|
type: 'integer',
|
|
1059
|
-
minimum:
|
|
1060
|
-
description: '
|
|
1061
|
-
example:
|
|
1062
|
-
},
|
|
1063
|
-
copilot_organization_hourly_tokens: {
|
|
1064
|
-
type: 'integer',
|
|
1065
|
-
minimum: 0,
|
|
1066
|
-
description: 'Organization-level maximum number of tokens Cloudfleet Copilot can process per hour.',
|
|
1067
|
-
example: 242000
|
|
2598
|
+
minimum: -1,
|
|
2599
|
+
description: 'Organization-level maximum CFCR storage volume in GB. -1 means no limit.',
|
|
2600
|
+
example: 500
|
|
1068
2601
|
}
|
|
1069
2602
|
},
|
|
1070
|
-
required: [
|
|
2603
|
+
required: [
|
|
2604
|
+
'basic_clusters_max',
|
|
2605
|
+
'basic_clusters_available',
|
|
2606
|
+
'pro_clusters_max',
|
|
2607
|
+
'pro_clusters_available',
|
|
2608
|
+
'fleets_max',
|
|
2609
|
+
'cluster_tiers',
|
|
2610
|
+
'regions',
|
|
2611
|
+
'versions',
|
|
2612
|
+
'cfcr_storage_gb'
|
|
2613
|
+
],
|
|
1071
2614
|
additionalProperties: false,
|
|
1072
2615
|
description: 'For security reasons, platform quota is controlled by Cloudfleet and can be updated only by Cloudfleet administrators. Please open a support ticket if you need to change the platform quota.'
|
|
1073
2616
|
},
|
|
1074
2617
|
status: {
|
|
1075
2618
|
type: 'string',
|
|
1076
2619
|
description: 'Status of the organization. Can be `active` or `closed`, or `suspended`.',
|
|
1077
|
-
enum: [
|
|
2620
|
+
enum: [
|
|
2621
|
+
'active',
|
|
2622
|
+
'closed',
|
|
2623
|
+
'suspended'
|
|
2624
|
+
]
|
|
2625
|
+
},
|
|
2626
|
+
verification: {
|
|
2627
|
+
type: 'string',
|
|
2628
|
+
description: 'Verification status of the organization, which determines the assigned quota. `none` when billing information is incomplete, `submitted` when billing information is complete but the organization is not yet verified, `verified` when the organization is verified.',
|
|
2629
|
+
example: 'verified',
|
|
2630
|
+
enum: [
|
|
2631
|
+
'none',
|
|
2632
|
+
'submitted',
|
|
2633
|
+
'verified'
|
|
2634
|
+
]
|
|
1078
2635
|
}
|
|
1079
2636
|
},
|
|
1080
|
-
required: [
|
|
2637
|
+
required: [
|
|
2638
|
+
'id',
|
|
2639
|
+
'type',
|
|
2640
|
+
'date_created',
|
|
2641
|
+
'quota',
|
|
2642
|
+
'status',
|
|
2643
|
+
'verification'
|
|
2644
|
+
],
|
|
1081
2645
|
additionalProperties: false
|
|
1082
2646
|
};
|
|
1083
2647
|
export const PaymentMethodSchema = {
|
|
@@ -1085,26 +2649,23 @@ export const PaymentMethodSchema = {
|
|
|
1085
2649
|
properties: {
|
|
1086
2650
|
id: {
|
|
1087
2651
|
type: 'string',
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
example: 'e94d30ec-a2dd-4dcb-832c-ac2be144ba91'
|
|
1091
|
-
},
|
|
1092
|
-
setup: {
|
|
1093
|
-
type: 'boolean',
|
|
1094
|
-
description: 'Whether organization payment method was set up and ready to use for payments.',
|
|
1095
|
-
example: true
|
|
2652
|
+
description: 'Payment method identifier. Stripe payment method id for cards/SEPA; the constant `bank_transfer` for the invoice/bank-transfer method. Used to set as default or delete the payment method.',
|
|
2653
|
+
example: 'pm_1MtwBwLkdIwHu7ix28a3tqPa'
|
|
1096
2654
|
},
|
|
1097
2655
|
type: {
|
|
1098
2656
|
type: 'string',
|
|
1099
|
-
|
|
1100
|
-
description: 'Payment method type type. Only `card` payments supported at the moment.',
|
|
2657
|
+
description: 'Payment method type. `card`, `sepa_debit` for SEPA Direct Debit (business accounts only), or `bank_transfer` for paying invoices by bank transfer.',
|
|
1101
2658
|
example: 'card',
|
|
1102
|
-
enum: [
|
|
2659
|
+
enum: [
|
|
2660
|
+
'card',
|
|
2661
|
+
'sepa_debit',
|
|
2662
|
+
'bank_transfer'
|
|
2663
|
+
]
|
|
1103
2664
|
},
|
|
1104
2665
|
last4: {
|
|
1105
2666
|
type: 'string',
|
|
1106
2667
|
nullable: true,
|
|
1107
|
-
description: 'Last 4 digits of the payment card number.',
|
|
2668
|
+
description: 'Last 4 digits of the payment card number, of the bank account (IBAN) for SEPA Direct Debit, or of the destination IBAN for bank transfer.',
|
|
1108
2669
|
example: '4242'
|
|
1109
2670
|
},
|
|
1110
2671
|
exp_month: {
|
|
@@ -1112,25 +2673,57 @@ export const PaymentMethodSchema = {
|
|
|
1112
2673
|
minimum: 1,
|
|
1113
2674
|
maximum: 12,
|
|
1114
2675
|
nullable: true,
|
|
1115
|
-
description:
|
|
1116
|
-
example:
|
|
2676
|
+
description: 'Two-digit number representing the card\'s expiration month. Null for SEPA Direct Debit and bank transfer.',
|
|
2677
|
+
example: 12
|
|
1117
2678
|
},
|
|
1118
2679
|
exp_year: {
|
|
1119
2680
|
type: 'integer',
|
|
1120
|
-
minimum: 2024,
|
|
1121
2681
|
nullable: true,
|
|
1122
|
-
description:
|
|
1123
|
-
example:
|
|
2682
|
+
description: 'Four-digit number representing the card\'s expiration year. May be in the past for an expired card still on file. Null for SEPA Direct Debit and bank transfer.',
|
|
2683
|
+
example: 2028
|
|
1124
2684
|
},
|
|
1125
2685
|
brand: {
|
|
1126
2686
|
type: 'string',
|
|
1127
2687
|
nullable: true,
|
|
1128
|
-
description: 'Payment card brand
|
|
1129
|
-
example: 'visa'
|
|
1130
|
-
|
|
2688
|
+
description: 'Payment card brand as reported by Stripe, e.g. `visa`, `mastercard`, `amex`, `cartes_bancaires`, or `unknown`. Null for SEPA Direct Debit and bank transfer.',
|
|
2689
|
+
example: 'visa'
|
|
2690
|
+
},
|
|
2691
|
+
iban: {
|
|
2692
|
+
type: 'string',
|
|
2693
|
+
nullable: true,
|
|
2694
|
+
description: 'Full destination IBAN to send bank transfers to. Set only for `bank_transfer`; null otherwise. This is Cloudfleet\'s virtual receiving account, shown in full so the customer can pay into it.',
|
|
2695
|
+
example: 'DE11243015658023127510'
|
|
2696
|
+
},
|
|
2697
|
+
bic: {
|
|
2698
|
+
type: 'string',
|
|
2699
|
+
nullable: true,
|
|
2700
|
+
description: 'BIC/SWIFT of the destination bank for bank transfers. Set only for `bank_transfer`; null otherwise.',
|
|
2701
|
+
example: 'SOGEDEFFXXX'
|
|
2702
|
+
},
|
|
2703
|
+
account_holder_name: {
|
|
2704
|
+
type: 'string',
|
|
2705
|
+
nullable: true,
|
|
2706
|
+
description: 'Account holder name of the destination bank account for bank transfers. Set only for `bank_transfer`; null otherwise.',
|
|
2707
|
+
example: 'Cloudfleet GmbH'
|
|
2708
|
+
},
|
|
2709
|
+
is_default: {
|
|
2710
|
+
type: 'boolean',
|
|
2711
|
+
description: 'Whether this payment method is the default used for invoices and active subscriptions. Always false for `bank_transfer` (it cannot be a Stripe default payment method).',
|
|
2712
|
+
example: true
|
|
1131
2713
|
}
|
|
1132
2714
|
},
|
|
1133
|
-
required: [
|
|
2715
|
+
required: [
|
|
2716
|
+
'id',
|
|
2717
|
+
'type',
|
|
2718
|
+
'last4',
|
|
2719
|
+
'exp_month',
|
|
2720
|
+
'exp_year',
|
|
2721
|
+
'brand',
|
|
2722
|
+
'iban',
|
|
2723
|
+
'bic',
|
|
2724
|
+
'account_holder_name',
|
|
2725
|
+
'is_default'
|
|
2726
|
+
],
|
|
1134
2727
|
additionalProperties: false
|
|
1135
2728
|
};
|
|
1136
2729
|
export const PlatformQuotaSchema = {
|
|
@@ -1177,7 +2770,7 @@ export const PlatformQuotaSchema = {
|
|
|
1177
2770
|
type: 'array',
|
|
1178
2771
|
items: {
|
|
1179
2772
|
type: 'string',
|
|
1180
|
-
example: 'northamerica-central-
|
|
2773
|
+
example: 'northamerica-central-1a'
|
|
1181
2774
|
},
|
|
1182
2775
|
minItems: 1,
|
|
1183
2776
|
description: 'List of Cloudfleet control plane regions available for the organization.'
|
|
@@ -1198,26 +2791,33 @@ export const PlatformQuotaSchema = {
|
|
|
1198
2791
|
example: '1.33.x (Always latest 1.33 patch version)'
|
|
1199
2792
|
}
|
|
1200
2793
|
},
|
|
1201
|
-
required: [
|
|
2794
|
+
required: [
|
|
2795
|
+
'id',
|
|
2796
|
+
'label'
|
|
2797
|
+
],
|
|
1202
2798
|
additionalProperties: false
|
|
1203
2799
|
},
|
|
1204
2800
|
minItems: 1,
|
|
1205
2801
|
description: 'List of CFKE control plane versions available for the organization.'
|
|
1206
2802
|
},
|
|
1207
|
-
|
|
2803
|
+
cfcr_storage_gb: {
|
|
1208
2804
|
type: 'integer',
|
|
1209
|
-
minimum:
|
|
1210
|
-
description: '
|
|
1211
|
-
example:
|
|
1212
|
-
},
|
|
1213
|
-
copilot_organization_hourly_tokens: {
|
|
1214
|
-
type: 'integer',
|
|
1215
|
-
minimum: 0,
|
|
1216
|
-
description: 'Organization-level maximum number of tokens Cloudfleet Copilot can process per hour.',
|
|
1217
|
-
example: 242000
|
|
2805
|
+
minimum: -1,
|
|
2806
|
+
description: 'Organization-level maximum CFCR storage volume in GB. -1 means no limit.',
|
|
2807
|
+
example: 500
|
|
1218
2808
|
}
|
|
1219
2809
|
},
|
|
1220
|
-
required: [
|
|
2810
|
+
required: [
|
|
2811
|
+
'basic_clusters_max',
|
|
2812
|
+
'basic_clusters_available',
|
|
2813
|
+
'pro_clusters_max',
|
|
2814
|
+
'pro_clusters_available',
|
|
2815
|
+
'fleets_max',
|
|
2816
|
+
'cluster_tiers',
|
|
2817
|
+
'regions',
|
|
2818
|
+
'versions',
|
|
2819
|
+
'cfcr_storage_gb'
|
|
2820
|
+
],
|
|
1221
2821
|
additionalProperties: false
|
|
1222
2822
|
};
|
|
1223
2823
|
export const RegistryRepositorySchema = {
|
|
@@ -1236,10 +2836,14 @@ export const RegistryRepositorySchema = {
|
|
|
1236
2836
|
uri: {
|
|
1237
2837
|
type: 'string',
|
|
1238
2838
|
description: 'Full URI of the repository.',
|
|
1239
|
-
example: 'ssds123e-6651-4e5d-9c04-079f6532989b.northamerica.registry.cloudfleet.dev/
|
|
2839
|
+
example: 'ssds123e-6651-4e5d-9c04-079f6532989b.northamerica.registry.cloudfleet.dev/my-app'
|
|
1240
2840
|
}
|
|
1241
2841
|
},
|
|
1242
|
-
required: [
|
|
2842
|
+
required: [
|
|
2843
|
+
'name',
|
|
2844
|
+
'region',
|
|
2845
|
+
'uri'
|
|
2846
|
+
],
|
|
1243
2847
|
additionalProperties: false
|
|
1244
2848
|
};
|
|
1245
2849
|
export const RegistryRepositoryWithTagsSchema = {
|
|
@@ -1258,7 +2862,7 @@ export const RegistryRepositoryWithTagsSchema = {
|
|
|
1258
2862
|
uri: {
|
|
1259
2863
|
type: 'string',
|
|
1260
2864
|
description: 'Full URI of the repository.',
|
|
1261
|
-
example: 'ssds123e-6651-4e5d-9c04-079f6532989b.northamerica.registry.cloudfleet.dev/
|
|
2865
|
+
example: 'ssds123e-6651-4e5d-9c04-079f6532989b.northamerica.registry.cloudfleet.dev/my-app'
|
|
1262
2866
|
},
|
|
1263
2867
|
tags: {
|
|
1264
2868
|
type: 'array',
|
|
@@ -1280,9 +2884,23 @@ export const RegistryRepositoryWithTagsSchema = {
|
|
|
1280
2884
|
type: 'string',
|
|
1281
2885
|
description: 'Media type of the manifest.',
|
|
1282
2886
|
example: 'application/vnd.docker.distribution.manifest.v2+json'
|
|
2887
|
+
},
|
|
2888
|
+
platforms: {
|
|
2889
|
+
type: 'array',
|
|
2890
|
+
items: {
|
|
2891
|
+
type: 'string'
|
|
2892
|
+
},
|
|
2893
|
+
description: 'Array of platform strings for multi-arch images (e.g., linux/amd64, linux/arm64).',
|
|
2894
|
+
example: [
|
|
2895
|
+
'linux/amd64',
|
|
2896
|
+
'linux/arm64'
|
|
2897
|
+
]
|
|
1283
2898
|
}
|
|
1284
2899
|
},
|
|
1285
|
-
required: [
|
|
2900
|
+
required: [
|
|
2901
|
+
'name',
|
|
2902
|
+
'size'
|
|
2903
|
+
],
|
|
1286
2904
|
additionalProperties: false
|
|
1287
2905
|
},
|
|
1288
2906
|
description: 'Array of tags in the repository.'
|
|
@@ -1294,7 +2912,13 @@ export const RegistryRepositoryWithTagsSchema = {
|
|
|
1294
2912
|
example: 987654321
|
|
1295
2913
|
}
|
|
1296
2914
|
},
|
|
1297
|
-
required: [
|
|
2915
|
+
required: [
|
|
2916
|
+
'name',
|
|
2917
|
+
'region',
|
|
2918
|
+
'uri',
|
|
2919
|
+
'tags',
|
|
2920
|
+
'totalSize'
|
|
2921
|
+
],
|
|
1298
2922
|
additionalProperties: false
|
|
1299
2923
|
};
|
|
1300
2924
|
export const RegistryTagSchema = {
|
|
@@ -1305,6 +2929,11 @@ export const RegistryTagSchema = {
|
|
|
1305
2929
|
description: 'Tag name.',
|
|
1306
2930
|
example: 'latest'
|
|
1307
2931
|
},
|
|
2932
|
+
digest: {
|
|
2933
|
+
type: 'string',
|
|
2934
|
+
description: 'Manifest digest for pulling by digest.',
|
|
2935
|
+
example: 'sha256:abcd1234ef567890abcd1234ef567890abcd1234ef567890abcd1234ef567890'
|
|
2936
|
+
},
|
|
1308
2937
|
mediaType: {
|
|
1309
2938
|
type: 'string',
|
|
1310
2939
|
description: 'Media type of the manifest.',
|
|
@@ -1320,7 +2949,9 @@ export const RegistryTagSchema = {
|
|
|
1320
2949
|
example: 1234
|
|
1321
2950
|
}
|
|
1322
2951
|
},
|
|
1323
|
-
required: [
|
|
2952
|
+
required: [
|
|
2953
|
+
'size'
|
|
2954
|
+
],
|
|
1324
2955
|
additionalProperties: false,
|
|
1325
2956
|
description: 'Manifest config metadata.'
|
|
1326
2957
|
},
|
|
@@ -1329,6 +2960,11 @@ export const RegistryTagSchema = {
|
|
|
1329
2960
|
items: {
|
|
1330
2961
|
type: 'object',
|
|
1331
2962
|
properties: {
|
|
2963
|
+
digest: {
|
|
2964
|
+
type: 'string',
|
|
2965
|
+
description: 'Digest of the layer.',
|
|
2966
|
+
example: 'sha256:abcd1234ef567890abcd1234ef567890abcd1234ef567890abcd1234ef567890'
|
|
2967
|
+
},
|
|
1332
2968
|
size: {
|
|
1333
2969
|
type: 'number',
|
|
1334
2970
|
format: 'float',
|
|
@@ -1336,7 +2972,9 @@ export const RegistryTagSchema = {
|
|
|
1336
2972
|
example: 5678
|
|
1337
2973
|
}
|
|
1338
2974
|
},
|
|
1339
|
-
required: [
|
|
2975
|
+
required: [
|
|
2976
|
+
'size'
|
|
2977
|
+
],
|
|
1340
2978
|
additionalProperties: false
|
|
1341
2979
|
},
|
|
1342
2980
|
description: 'Array of layer metadata.'
|
|
@@ -1363,14 +3001,54 @@ export const RegistryTagSchema = {
|
|
|
1363
3001
|
type: 'string',
|
|
1364
3002
|
description: 'Operating system of the platform.',
|
|
1365
3003
|
example: 'linux'
|
|
3004
|
+
},
|
|
3005
|
+
variant: {
|
|
3006
|
+
type: 'string',
|
|
3007
|
+
description: 'Variant of the platform (e.g., v7, v8 for ARM).',
|
|
3008
|
+
example: 'v8'
|
|
1366
3009
|
}
|
|
1367
3010
|
},
|
|
1368
|
-
required: [
|
|
3011
|
+
required: [
|
|
3012
|
+
'architecture',
|
|
3013
|
+
'os'
|
|
3014
|
+
],
|
|
1369
3015
|
additionalProperties: false,
|
|
1370
3016
|
description: 'Platform information for the manifest.'
|
|
3017
|
+
},
|
|
3018
|
+
layers: {
|
|
3019
|
+
type: 'array',
|
|
3020
|
+
items: {
|
|
3021
|
+
type: 'object',
|
|
3022
|
+
properties: {
|
|
3023
|
+
digest: {
|
|
3024
|
+
type: 'string',
|
|
3025
|
+
description: 'Digest of the layer.',
|
|
3026
|
+
example: 'sha256:abcd1234ef567890abcd1234ef567890abcd1234ef567890abcd1234ef567890'
|
|
3027
|
+
},
|
|
3028
|
+
size: {
|
|
3029
|
+
type: 'number',
|
|
3030
|
+
format: 'float',
|
|
3031
|
+
description: 'Size of the layer in bytes.',
|
|
3032
|
+
example: 5678
|
|
3033
|
+
}
|
|
3034
|
+
},
|
|
3035
|
+
required: [
|
|
3036
|
+
'size'
|
|
3037
|
+
],
|
|
3038
|
+
additionalProperties: false
|
|
3039
|
+
},
|
|
3040
|
+
description: 'Layers for this platform.'
|
|
3041
|
+
},
|
|
3042
|
+
size: {
|
|
3043
|
+
type: 'number',
|
|
3044
|
+
format: 'float',
|
|
3045
|
+
description: 'Total size of this platform manifest in bytes.',
|
|
3046
|
+
example: 12345678
|
|
1371
3047
|
}
|
|
1372
3048
|
},
|
|
1373
|
-
required: [
|
|
3049
|
+
required: [
|
|
3050
|
+
'digest'
|
|
3051
|
+
],
|
|
1374
3052
|
additionalProperties: false
|
|
1375
3053
|
},
|
|
1376
3054
|
description: 'Array of manifests for multi-arch images.'
|
|
@@ -1397,7 +3075,500 @@ export const RegistryTagSchema = {
|
|
|
1397
3075
|
example: 'ssds123e-6651-4e5d-9c04-079f6532989b.northamerica.registry.cloudfleet.dev/my-app:latest'
|
|
1398
3076
|
}
|
|
1399
3077
|
},
|
|
1400
|
-
required: [
|
|
3078
|
+
required: [
|
|
3079
|
+
'name',
|
|
3080
|
+
'digest',
|
|
3081
|
+
'size',
|
|
3082
|
+
'region',
|
|
3083
|
+
'repository',
|
|
3084
|
+
'uri'
|
|
3085
|
+
],
|
|
3086
|
+
additionalProperties: false
|
|
3087
|
+
};
|
|
3088
|
+
export const TicketAttachmentSchema = {
|
|
3089
|
+
type: 'object',
|
|
3090
|
+
properties: {
|
|
3091
|
+
id: {
|
|
3092
|
+
type: 'string',
|
|
3093
|
+
description: 'Unique identifier of the attachment (Mongo ObjectId).',
|
|
3094
|
+
example: '60c72b2f9f1b2c001f8e4d3c'
|
|
3095
|
+
},
|
|
3096
|
+
filename: {
|
|
3097
|
+
type: 'string',
|
|
3098
|
+
description: 'Original filename as uploaded.',
|
|
3099
|
+
example: 'debug.log'
|
|
3100
|
+
},
|
|
3101
|
+
content_type: {
|
|
3102
|
+
type: 'string',
|
|
3103
|
+
description: 'MIME content type of the attachment.',
|
|
3104
|
+
example: 'text/plain'
|
|
3105
|
+
},
|
|
3106
|
+
size: {
|
|
3107
|
+
type: 'integer',
|
|
3108
|
+
description: 'Size of the attachment in bytes.',
|
|
3109
|
+
example: 12345
|
|
3110
|
+
}
|
|
3111
|
+
},
|
|
3112
|
+
required: [
|
|
3113
|
+
'id',
|
|
3114
|
+
'filename',
|
|
3115
|
+
'content_type',
|
|
3116
|
+
'size'
|
|
3117
|
+
],
|
|
3118
|
+
additionalProperties: false
|
|
3119
|
+
};
|
|
3120
|
+
export const TicketCreateInputSchema = {
|
|
3121
|
+
type: 'object',
|
|
3122
|
+
properties: {
|
|
3123
|
+
category: {
|
|
3124
|
+
type: 'string',
|
|
3125
|
+
description: 'Ticket category. Drives auto-assignment and may carry a subcategory in `properties`.',
|
|
3126
|
+
example: 'technical',
|
|
3127
|
+
enum: [
|
|
3128
|
+
'billing',
|
|
3129
|
+
'technical',
|
|
3130
|
+
'general'
|
|
3131
|
+
]
|
|
3132
|
+
},
|
|
3133
|
+
body: {
|
|
3134
|
+
type: 'string',
|
|
3135
|
+
maxLength: 50000,
|
|
3136
|
+
minLength: 1,
|
|
3137
|
+
pattern: '\\S',
|
|
3138
|
+
description: 'Initial message body in markdown. There is no separate subject — the first message body is the description.',
|
|
3139
|
+
example: 'My cluster cannot reach the registry. Logs attached.'
|
|
3140
|
+
},
|
|
3141
|
+
properties: {
|
|
3142
|
+
type: 'object',
|
|
3143
|
+
additionalProperties: true,
|
|
3144
|
+
description: 'Free-form key/value bag set by the UI (e.g. `subcategory`, `cluster_id`, `cluster_name`, `region`).',
|
|
3145
|
+
example: {
|
|
3146
|
+
subcategory: 'cluster-question',
|
|
3147
|
+
cluster_id: '60c72b2f9f1b2c001f8e4d3a'
|
|
3148
|
+
}
|
|
3149
|
+
}
|
|
3150
|
+
},
|
|
3151
|
+
required: [
|
|
3152
|
+
'category',
|
|
3153
|
+
'body'
|
|
3154
|
+
],
|
|
3155
|
+
additionalProperties: false
|
|
3156
|
+
};
|
|
3157
|
+
export const TicketListResponseSchema = {
|
|
3158
|
+
type: 'object',
|
|
3159
|
+
properties: {
|
|
3160
|
+
items: {
|
|
3161
|
+
type: 'array',
|
|
3162
|
+
items: {
|
|
3163
|
+
type: 'object',
|
|
3164
|
+
properties: {
|
|
3165
|
+
id: {
|
|
3166
|
+
type: 'string',
|
|
3167
|
+
description: 'Unique identifier of the ticket (Mongo ObjectId).',
|
|
3168
|
+
example: '60c72b2f9f1b2c001f8e4d3a'
|
|
3169
|
+
},
|
|
3170
|
+
status: {
|
|
3171
|
+
type: 'string',
|
|
3172
|
+
description: 'Current state of the ticket.',
|
|
3173
|
+
example: 'waiting_on_us',
|
|
3174
|
+
enum: [
|
|
3175
|
+
'waiting_on_us',
|
|
3176
|
+
'waiting_on_user',
|
|
3177
|
+
'closed'
|
|
3178
|
+
]
|
|
3179
|
+
},
|
|
3180
|
+
category: {
|
|
3181
|
+
type: 'string',
|
|
3182
|
+
description: 'Ticket category.',
|
|
3183
|
+
example: 'technical',
|
|
3184
|
+
enum: [
|
|
3185
|
+
'billing',
|
|
3186
|
+
'technical',
|
|
3187
|
+
'general'
|
|
3188
|
+
]
|
|
3189
|
+
},
|
|
3190
|
+
summary: {
|
|
3191
|
+
type: 'string',
|
|
3192
|
+
description: 'First 128 characters of the initial message body, with markdown formatting and newlines stripped. Used for ticket list previews.',
|
|
3193
|
+
example: 'My cluster cannot reach the registry. Logs attached.'
|
|
3194
|
+
},
|
|
3195
|
+
closed_at: {
|
|
3196
|
+
type: 'string',
|
|
3197
|
+
format: 'date-time',
|
|
3198
|
+
nullable: true,
|
|
3199
|
+
description: 'Closure timestamp. Null while the ticket is open.',
|
|
3200
|
+
example: '2026-05-18T16:08:14.338Z'
|
|
3201
|
+
},
|
|
3202
|
+
date_created: {
|
|
3203
|
+
type: 'string',
|
|
3204
|
+
format: 'date-time',
|
|
3205
|
+
description: 'Creation date of the ticket. ISO 8601 UTC.',
|
|
3206
|
+
example: '2026-05-11T16:08:14.338Z'
|
|
3207
|
+
},
|
|
3208
|
+
date_updated: {
|
|
3209
|
+
type: 'string',
|
|
3210
|
+
format: 'date-time',
|
|
3211
|
+
description: 'Last update date of the ticket. ISO 8601 UTC.',
|
|
3212
|
+
example: '2026-05-11T16:08:14.338Z'
|
|
3213
|
+
},
|
|
3214
|
+
messages: {
|
|
3215
|
+
type: 'array',
|
|
3216
|
+
items: {
|
|
3217
|
+
type: 'object',
|
|
3218
|
+
properties: {
|
|
3219
|
+
id: {
|
|
3220
|
+
type: 'string',
|
|
3221
|
+
description: 'Unique identifier of the message (Mongo ObjectId).',
|
|
3222
|
+
example: '60c72b2f9f1b2c001f8e4d3b'
|
|
3223
|
+
},
|
|
3224
|
+
type: {
|
|
3225
|
+
type: 'string',
|
|
3226
|
+
description: 'Message type. Internal notes are filtered out of customer-facing responses.',
|
|
3227
|
+
example: 'customer_reply',
|
|
3228
|
+
enum: [
|
|
3229
|
+
'customer_reply',
|
|
3230
|
+
'agent_reply'
|
|
3231
|
+
]
|
|
3232
|
+
},
|
|
3233
|
+
body: {
|
|
3234
|
+
type: 'string',
|
|
3235
|
+
description: 'Message body in markdown.',
|
|
3236
|
+
example: 'Thanks — that resolved it on my side.'
|
|
3237
|
+
},
|
|
3238
|
+
author_first_name: {
|
|
3239
|
+
type: 'string',
|
|
3240
|
+
nullable: true,
|
|
3241
|
+
description: 'First name of the author. Null when not provided.',
|
|
3242
|
+
example: 'Jane'
|
|
3243
|
+
},
|
|
3244
|
+
author_last_name: {
|
|
3245
|
+
type: 'string',
|
|
3246
|
+
nullable: true,
|
|
3247
|
+
description: 'Last name of the author. Null when not provided.',
|
|
3248
|
+
example: 'Doe'
|
|
3249
|
+
},
|
|
3250
|
+
attachments: {
|
|
3251
|
+
type: 'array',
|
|
3252
|
+
items: {
|
|
3253
|
+
type: 'object',
|
|
3254
|
+
properties: {
|
|
3255
|
+
id: {
|
|
3256
|
+
type: 'string',
|
|
3257
|
+
description: 'Unique identifier of the attachment (Mongo ObjectId).',
|
|
3258
|
+
example: '60c72b2f9f1b2c001f8e4d3c'
|
|
3259
|
+
},
|
|
3260
|
+
filename: {
|
|
3261
|
+
type: 'string',
|
|
3262
|
+
description: 'Original filename as uploaded.',
|
|
3263
|
+
example: 'debug.log'
|
|
3264
|
+
},
|
|
3265
|
+
content_type: {
|
|
3266
|
+
type: 'string',
|
|
3267
|
+
description: 'MIME content type of the attachment.',
|
|
3268
|
+
example: 'text/plain'
|
|
3269
|
+
},
|
|
3270
|
+
size: {
|
|
3271
|
+
type: 'integer',
|
|
3272
|
+
description: 'Size of the attachment in bytes.',
|
|
3273
|
+
example: 12345
|
|
3274
|
+
}
|
|
3275
|
+
},
|
|
3276
|
+
required: [
|
|
3277
|
+
'id',
|
|
3278
|
+
'filename',
|
|
3279
|
+
'content_type',
|
|
3280
|
+
'size'
|
|
3281
|
+
],
|
|
3282
|
+
additionalProperties: false
|
|
3283
|
+
},
|
|
3284
|
+
description: 'Attachments associated with this message.',
|
|
3285
|
+
example: []
|
|
3286
|
+
},
|
|
3287
|
+
date_created: {
|
|
3288
|
+
type: 'string',
|
|
3289
|
+
format: 'date-time',
|
|
3290
|
+
description: 'Creation date of the message. ISO 8601 UTC.',
|
|
3291
|
+
example: '2026-05-11T16:08:14.338Z'
|
|
3292
|
+
}
|
|
3293
|
+
},
|
|
3294
|
+
required: [
|
|
3295
|
+
'id',
|
|
3296
|
+
'type',
|
|
3297
|
+
'body',
|
|
3298
|
+
'date_created'
|
|
3299
|
+
],
|
|
3300
|
+
additionalProperties: false
|
|
3301
|
+
},
|
|
3302
|
+
description: 'Messages on the ticket in chronological order. Internal notes are excluded. Returned by the detail endpoint only.'
|
|
3303
|
+
}
|
|
3304
|
+
},
|
|
3305
|
+
required: [
|
|
3306
|
+
'id',
|
|
3307
|
+
'status',
|
|
3308
|
+
'category',
|
|
3309
|
+
'summary',
|
|
3310
|
+
'date_created',
|
|
3311
|
+
'date_updated'
|
|
3312
|
+
],
|
|
3313
|
+
additionalProperties: false
|
|
3314
|
+
},
|
|
3315
|
+
description: 'Tickets for the organization, ordered newest first. Messages are omitted from list responses.'
|
|
3316
|
+
}
|
|
3317
|
+
},
|
|
3318
|
+
required: [
|
|
3319
|
+
'items'
|
|
3320
|
+
],
|
|
3321
|
+
additionalProperties: false
|
|
3322
|
+
};
|
|
3323
|
+
export const TicketMessageInputSchema = {
|
|
3324
|
+
type: 'object',
|
|
3325
|
+
properties: {
|
|
3326
|
+
body: {
|
|
3327
|
+
type: 'string',
|
|
3328
|
+
maxLength: 50000,
|
|
3329
|
+
minLength: 1,
|
|
3330
|
+
pattern: '\\S',
|
|
3331
|
+
description: 'Reply body in markdown.',
|
|
3332
|
+
example: 'Thanks — that resolved it on my side.'
|
|
3333
|
+
}
|
|
3334
|
+
},
|
|
3335
|
+
required: [
|
|
3336
|
+
'body'
|
|
3337
|
+
],
|
|
3338
|
+
additionalProperties: false
|
|
3339
|
+
};
|
|
3340
|
+
export const TicketMessageSchema = {
|
|
3341
|
+
type: 'object',
|
|
3342
|
+
properties: {
|
|
3343
|
+
id: {
|
|
3344
|
+
type: 'string',
|
|
3345
|
+
description: 'Unique identifier of the message (Mongo ObjectId).',
|
|
3346
|
+
example: '60c72b2f9f1b2c001f8e4d3b'
|
|
3347
|
+
},
|
|
3348
|
+
type: {
|
|
3349
|
+
type: 'string',
|
|
3350
|
+
description: 'Message type. Internal notes are filtered out of customer-facing responses.',
|
|
3351
|
+
example: 'customer_reply',
|
|
3352
|
+
enum: [
|
|
3353
|
+
'customer_reply',
|
|
3354
|
+
'agent_reply'
|
|
3355
|
+
]
|
|
3356
|
+
},
|
|
3357
|
+
body: {
|
|
3358
|
+
type: 'string',
|
|
3359
|
+
description: 'Message body in markdown.',
|
|
3360
|
+
example: 'Thanks — that resolved it on my side.'
|
|
3361
|
+
},
|
|
3362
|
+
author_first_name: {
|
|
3363
|
+
type: 'string',
|
|
3364
|
+
description: 'First name of the author. Null when not provided.',
|
|
3365
|
+
example: 'Jane'
|
|
3366
|
+
},
|
|
3367
|
+
author_last_name: {
|
|
3368
|
+
type: 'string',
|
|
3369
|
+
description: 'Last name of the author. Null when not provided.',
|
|
3370
|
+
example: 'Doe'
|
|
3371
|
+
},
|
|
3372
|
+
attachments: {
|
|
3373
|
+
type: 'array',
|
|
3374
|
+
items: {
|
|
3375
|
+
type: 'object',
|
|
3376
|
+
properties: {
|
|
3377
|
+
id: {
|
|
3378
|
+
type: 'string',
|
|
3379
|
+
description: 'Unique identifier of the attachment (Mongo ObjectId).',
|
|
3380
|
+
example: '60c72b2f9f1b2c001f8e4d3c'
|
|
3381
|
+
},
|
|
3382
|
+
filename: {
|
|
3383
|
+
type: 'string',
|
|
3384
|
+
description: 'Original filename as uploaded.',
|
|
3385
|
+
example: 'debug.log'
|
|
3386
|
+
},
|
|
3387
|
+
content_type: {
|
|
3388
|
+
type: 'string',
|
|
3389
|
+
description: 'MIME content type of the attachment.',
|
|
3390
|
+
example: 'text/plain'
|
|
3391
|
+
},
|
|
3392
|
+
size: {
|
|
3393
|
+
type: 'integer',
|
|
3394
|
+
description: 'Size of the attachment in bytes.',
|
|
3395
|
+
example: 12345
|
|
3396
|
+
}
|
|
3397
|
+
},
|
|
3398
|
+
required: [
|
|
3399
|
+
'id',
|
|
3400
|
+
'filename',
|
|
3401
|
+
'content_type',
|
|
3402
|
+
'size'
|
|
3403
|
+
],
|
|
3404
|
+
additionalProperties: false
|
|
3405
|
+
},
|
|
3406
|
+
description: 'Attachments associated with this message.',
|
|
3407
|
+
example: []
|
|
3408
|
+
},
|
|
3409
|
+
date_created: {
|
|
3410
|
+
type: 'string',
|
|
3411
|
+
format: 'date-time',
|
|
3412
|
+
description: 'Creation date of the message. ISO 8601 UTC.',
|
|
3413
|
+
example: '2026-05-11T16:08:14.338Z'
|
|
3414
|
+
}
|
|
3415
|
+
},
|
|
3416
|
+
required: [
|
|
3417
|
+
'id',
|
|
3418
|
+
'type',
|
|
3419
|
+
'body',
|
|
3420
|
+
'date_created'
|
|
3421
|
+
],
|
|
3422
|
+
additionalProperties: false
|
|
3423
|
+
};
|
|
3424
|
+
export const TicketSchema = {
|
|
3425
|
+
type: 'object',
|
|
3426
|
+
properties: {
|
|
3427
|
+
id: {
|
|
3428
|
+
type: 'string',
|
|
3429
|
+
description: 'Unique identifier of the ticket (Mongo ObjectId).',
|
|
3430
|
+
example: '60c72b2f9f1b2c001f8e4d3a'
|
|
3431
|
+
},
|
|
3432
|
+
status: {
|
|
3433
|
+
type: 'string',
|
|
3434
|
+
description: 'Current state of the ticket.',
|
|
3435
|
+
example: 'waiting_on_us',
|
|
3436
|
+
enum: [
|
|
3437
|
+
'waiting_on_us',
|
|
3438
|
+
'waiting_on_user',
|
|
3439
|
+
'closed'
|
|
3440
|
+
]
|
|
3441
|
+
},
|
|
3442
|
+
category: {
|
|
3443
|
+
type: 'string',
|
|
3444
|
+
description: 'Ticket category.',
|
|
3445
|
+
example: 'technical',
|
|
3446
|
+
enum: [
|
|
3447
|
+
'billing',
|
|
3448
|
+
'technical',
|
|
3449
|
+
'general'
|
|
3450
|
+
]
|
|
3451
|
+
},
|
|
3452
|
+
summary: {
|
|
3453
|
+
type: 'string',
|
|
3454
|
+
description: 'First 128 characters of the initial message body, with markdown formatting and newlines stripped. Used for ticket list previews.',
|
|
3455
|
+
example: 'My cluster cannot reach the registry. Logs attached.'
|
|
3456
|
+
},
|
|
3457
|
+
closed_at: {
|
|
3458
|
+
type: 'string',
|
|
3459
|
+
format: 'date-time',
|
|
3460
|
+
description: 'Closure timestamp. Null while the ticket is open.',
|
|
3461
|
+
example: '2026-05-18T16:08:14.338Z'
|
|
3462
|
+
},
|
|
3463
|
+
date_created: {
|
|
3464
|
+
type: 'string',
|
|
3465
|
+
format: 'date-time',
|
|
3466
|
+
description: 'Creation date of the ticket. ISO 8601 UTC.',
|
|
3467
|
+
example: '2026-05-11T16:08:14.338Z'
|
|
3468
|
+
},
|
|
3469
|
+
date_updated: {
|
|
3470
|
+
type: 'string',
|
|
3471
|
+
format: 'date-time',
|
|
3472
|
+
description: 'Last update date of the ticket. ISO 8601 UTC.',
|
|
3473
|
+
example: '2026-05-11T16:08:14.338Z'
|
|
3474
|
+
},
|
|
3475
|
+
messages: {
|
|
3476
|
+
type: 'array',
|
|
3477
|
+
items: {
|
|
3478
|
+
type: 'object',
|
|
3479
|
+
properties: {
|
|
3480
|
+
id: {
|
|
3481
|
+
type: 'string',
|
|
3482
|
+
description: 'Unique identifier of the message (Mongo ObjectId).',
|
|
3483
|
+
example: '60c72b2f9f1b2c001f8e4d3b'
|
|
3484
|
+
},
|
|
3485
|
+
type: {
|
|
3486
|
+
type: 'string',
|
|
3487
|
+
description: 'Message type. Internal notes are filtered out of customer-facing responses.',
|
|
3488
|
+
example: 'customer_reply',
|
|
3489
|
+
enum: [
|
|
3490
|
+
'customer_reply',
|
|
3491
|
+
'agent_reply'
|
|
3492
|
+
]
|
|
3493
|
+
},
|
|
3494
|
+
body: {
|
|
3495
|
+
type: 'string',
|
|
3496
|
+
description: 'Message body in markdown.',
|
|
3497
|
+
example: 'Thanks — that resolved it on my side.'
|
|
3498
|
+
},
|
|
3499
|
+
author_first_name: {
|
|
3500
|
+
type: 'string',
|
|
3501
|
+
description: 'First name of the author. Null when not provided.',
|
|
3502
|
+
example: 'Jane'
|
|
3503
|
+
},
|
|
3504
|
+
author_last_name: {
|
|
3505
|
+
type: 'string',
|
|
3506
|
+
description: 'Last name of the author. Null when not provided.',
|
|
3507
|
+
example: 'Doe'
|
|
3508
|
+
},
|
|
3509
|
+
attachments: {
|
|
3510
|
+
type: 'array',
|
|
3511
|
+
items: {
|
|
3512
|
+
type: 'object',
|
|
3513
|
+
properties: {
|
|
3514
|
+
id: {
|
|
3515
|
+
type: 'string',
|
|
3516
|
+
description: 'Unique identifier of the attachment (Mongo ObjectId).',
|
|
3517
|
+
example: '60c72b2f9f1b2c001f8e4d3c'
|
|
3518
|
+
},
|
|
3519
|
+
filename: {
|
|
3520
|
+
type: 'string',
|
|
3521
|
+
description: 'Original filename as uploaded.',
|
|
3522
|
+
example: 'debug.log'
|
|
3523
|
+
},
|
|
3524
|
+
content_type: {
|
|
3525
|
+
type: 'string',
|
|
3526
|
+
description: 'MIME content type of the attachment.',
|
|
3527
|
+
example: 'text/plain'
|
|
3528
|
+
},
|
|
3529
|
+
size: {
|
|
3530
|
+
type: 'integer',
|
|
3531
|
+
description: 'Size of the attachment in bytes.',
|
|
3532
|
+
example: 12345
|
|
3533
|
+
}
|
|
3534
|
+
},
|
|
3535
|
+
required: [
|
|
3536
|
+
'id',
|
|
3537
|
+
'filename',
|
|
3538
|
+
'content_type',
|
|
3539
|
+
'size'
|
|
3540
|
+
],
|
|
3541
|
+
additionalProperties: false
|
|
3542
|
+
},
|
|
3543
|
+
description: 'Attachments associated with this message.',
|
|
3544
|
+
example: []
|
|
3545
|
+
},
|
|
3546
|
+
date_created: {
|
|
3547
|
+
type: 'string',
|
|
3548
|
+
format: 'date-time',
|
|
3549
|
+
description: 'Creation date of the message. ISO 8601 UTC.',
|
|
3550
|
+
example: '2026-05-11T16:08:14.338Z'
|
|
3551
|
+
}
|
|
3552
|
+
},
|
|
3553
|
+
required: [
|
|
3554
|
+
'id',
|
|
3555
|
+
'type',
|
|
3556
|
+
'body',
|
|
3557
|
+
'date_created'
|
|
3558
|
+
],
|
|
3559
|
+
additionalProperties: false
|
|
3560
|
+
},
|
|
3561
|
+
description: 'Messages on the ticket in chronological order. Internal notes are excluded. Returned by the detail endpoint only.'
|
|
3562
|
+
}
|
|
3563
|
+
},
|
|
3564
|
+
required: [
|
|
3565
|
+
'id',
|
|
3566
|
+
'status',
|
|
3567
|
+
'category',
|
|
3568
|
+
'summary',
|
|
3569
|
+
'date_created',
|
|
3570
|
+
'date_updated'
|
|
3571
|
+
],
|
|
1401
3572
|
additionalProperties: false
|
|
1402
3573
|
};
|
|
1403
3574
|
export const TokenCreateInputSchema = {
|
|
@@ -1415,10 +3586,16 @@ export const TokenCreateInputSchema = {
|
|
|
1415
3586
|
type: 'string',
|
|
1416
3587
|
description: 'Role assumed by the token.',
|
|
1417
3588
|
example: 'User',
|
|
1418
|
-
enum: [
|
|
3589
|
+
enum: [
|
|
3590
|
+
'Administrator',
|
|
3591
|
+
'User'
|
|
3592
|
+
]
|
|
1419
3593
|
}
|
|
1420
3594
|
},
|
|
1421
|
-
required: [
|
|
3595
|
+
required: [
|
|
3596
|
+
'name',
|
|
3597
|
+
'role'
|
|
3598
|
+
],
|
|
1422
3599
|
additionalProperties: false
|
|
1423
3600
|
};
|
|
1424
3601
|
export const TokenSchema = {
|
|
@@ -1436,7 +3613,10 @@ export const TokenSchema = {
|
|
|
1436
3613
|
type: 'string',
|
|
1437
3614
|
description: 'Role assumed by the token.',
|
|
1438
3615
|
example: 'User',
|
|
1439
|
-
enum: [
|
|
3616
|
+
enum: [
|
|
3617
|
+
'Administrator',
|
|
3618
|
+
'User'
|
|
3619
|
+
]
|
|
1440
3620
|
},
|
|
1441
3621
|
id: {
|
|
1442
3622
|
type: 'string',
|
|
@@ -1455,7 +3635,11 @@ export const TokenSchema = {
|
|
|
1455
3635
|
example: '2023-12-20T13:53:32.000Z'
|
|
1456
3636
|
}
|
|
1457
3637
|
},
|
|
1458
|
-
required: [
|
|
3638
|
+
required: [
|
|
3639
|
+
'name',
|
|
3640
|
+
'role',
|
|
3641
|
+
'date_created'
|
|
3642
|
+
],
|
|
1459
3643
|
additionalProperties: false
|
|
1460
3644
|
};
|
|
1461
3645
|
export const TokenUpdateInputSchema = {
|
|
@@ -1473,7 +3657,10 @@ export const TokenUpdateInputSchema = {
|
|
|
1473
3657
|
type: 'string',
|
|
1474
3658
|
description: 'Role assumed by the token.',
|
|
1475
3659
|
example: 'User',
|
|
1476
|
-
enum: [
|
|
3660
|
+
enum: [
|
|
3661
|
+
'Administrator',
|
|
3662
|
+
'User'
|
|
3663
|
+
]
|
|
1477
3664
|
}
|
|
1478
3665
|
},
|
|
1479
3666
|
additionalProperties: false
|
|
@@ -1487,7 +3674,9 @@ export const UsageFacetsSchema = {
|
|
|
1487
3674
|
type: 'string'
|
|
1488
3675
|
},
|
|
1489
3676
|
description: 'List of unique cluster IDs',
|
|
1490
|
-
example: [
|
|
3677
|
+
example: [
|
|
3678
|
+
'6b5439b1-923a-4f2b-a371-d554e5ea23fa'
|
|
3679
|
+
]
|
|
1491
3680
|
},
|
|
1492
3681
|
product: {
|
|
1493
3682
|
type: 'array',
|
|
@@ -1495,7 +3684,10 @@ export const UsageFacetsSchema = {
|
|
|
1495
3684
|
type: 'string'
|
|
1496
3685
|
},
|
|
1497
3686
|
description: 'List of unique products',
|
|
1498
|
-
example: [
|
|
3687
|
+
example: [
|
|
3688
|
+
'cfke_controlplane',
|
|
3689
|
+
'cfke_connected_nodes'
|
|
3690
|
+
]
|
|
1499
3691
|
}
|
|
1500
3692
|
},
|
|
1501
3693
|
additionalProperties: false
|
|
@@ -1541,7 +3733,14 @@ export const UsageResponseSchema = {
|
|
|
1541
3733
|
description: 'Total cost'
|
|
1542
3734
|
}
|
|
1543
3735
|
},
|
|
1544
|
-
required: [
|
|
3736
|
+
required: [
|
|
3737
|
+
'hour',
|
|
3738
|
+
'cluster_id',
|
|
3739
|
+
'product',
|
|
3740
|
+
'value',
|
|
3741
|
+
'price',
|
|
3742
|
+
'total'
|
|
3743
|
+
],
|
|
1545
3744
|
additionalProperties: false
|
|
1546
3745
|
},
|
|
1547
3746
|
description: 'Usage data'
|
|
@@ -1555,7 +3754,9 @@ export const UsageResponseSchema = {
|
|
|
1555
3754
|
type: 'string'
|
|
1556
3755
|
},
|
|
1557
3756
|
description: 'List of unique cluster IDs',
|
|
1558
|
-
example: [
|
|
3757
|
+
example: [
|
|
3758
|
+
'6b5439b1-923a-4f2b-a371-d554e5ea23fa'
|
|
3759
|
+
]
|
|
1559
3760
|
},
|
|
1560
3761
|
product: {
|
|
1561
3762
|
type: 'array',
|
|
@@ -1563,14 +3764,20 @@ export const UsageResponseSchema = {
|
|
|
1563
3764
|
type: 'string'
|
|
1564
3765
|
},
|
|
1565
3766
|
description: 'List of unique products',
|
|
1566
|
-
example: [
|
|
3767
|
+
example: [
|
|
3768
|
+
'cfke_controlplane',
|
|
3769
|
+
'cfke_connected_nodes'
|
|
3770
|
+
]
|
|
1567
3771
|
}
|
|
1568
3772
|
},
|
|
1569
3773
|
additionalProperties: false,
|
|
1570
3774
|
description: 'Facets for filtering'
|
|
1571
3775
|
}
|
|
1572
3776
|
},
|
|
1573
|
-
required: [
|
|
3777
|
+
required: [
|
|
3778
|
+
'data',
|
|
3779
|
+
'facets'
|
|
3780
|
+
],
|
|
1574
3781
|
additionalProperties: false
|
|
1575
3782
|
};
|
|
1576
3783
|
export const UsageSchema = {
|
|
@@ -1609,7 +3816,14 @@ export const UsageSchema = {
|
|
|
1609
3816
|
description: 'Total cost'
|
|
1610
3817
|
}
|
|
1611
3818
|
},
|
|
1612
|
-
required: [
|
|
3819
|
+
required: [
|
|
3820
|
+
'hour',
|
|
3821
|
+
'cluster_id',
|
|
3822
|
+
'product',
|
|
3823
|
+
'value',
|
|
3824
|
+
'price',
|
|
3825
|
+
'total'
|
|
3826
|
+
],
|
|
1613
3827
|
additionalProperties: false
|
|
1614
3828
|
};
|
|
1615
3829
|
export const UserCreateInputSchema = {
|
|
@@ -1645,21 +3859,15 @@ export const UserCreateInputSchema = {
|
|
|
1645
3859
|
type: 'string',
|
|
1646
3860
|
minLength: 8,
|
|
1647
3861
|
description: 'User password. Must be at least 8 characters long.'
|
|
1648
|
-
},
|
|
1649
|
-
status: {
|
|
1650
|
-
type: 'string',
|
|
1651
|
-
description: 'Status of the user. Can be `active` or `inactive`. Inactive users cannot log in or manage organization resources.',
|
|
1652
|
-
example: 'active',
|
|
1653
|
-
enum: ['active', 'inactive']
|
|
1654
|
-
},
|
|
1655
|
-
role: {
|
|
1656
|
-
type: 'string',
|
|
1657
|
-
description: "User role. Can be 'Administrator', 'User'.",
|
|
1658
|
-
example: 'User',
|
|
1659
|
-
enum: ['Administrator', 'User']
|
|
1660
3862
|
}
|
|
1661
3863
|
},
|
|
1662
|
-
required: [
|
|
3864
|
+
required: [
|
|
3865
|
+
'email',
|
|
3866
|
+
'first_name',
|
|
3867
|
+
'last_name',
|
|
3868
|
+
'code',
|
|
3869
|
+
'password'
|
|
3870
|
+
],
|
|
1663
3871
|
additionalProperties: false
|
|
1664
3872
|
};
|
|
1665
3873
|
export const UserSchema = {
|
|
@@ -1687,15 +3895,21 @@ export const UserSchema = {
|
|
|
1687
3895
|
},
|
|
1688
3896
|
role: {
|
|
1689
3897
|
type: 'string',
|
|
1690
|
-
description:
|
|
3898
|
+
description: 'User role. Can be \'Administrator\', \'User\'.',
|
|
1691
3899
|
example: 'User',
|
|
1692
|
-
enum: [
|
|
3900
|
+
enum: [
|
|
3901
|
+
'Administrator',
|
|
3902
|
+
'User'
|
|
3903
|
+
]
|
|
1693
3904
|
},
|
|
1694
3905
|
status: {
|
|
1695
3906
|
type: 'string',
|
|
1696
3907
|
description: 'Status of the user. Can be `active` or `inactive`. Inactive users cannot log in or manage organization resources.',
|
|
1697
3908
|
example: 'active',
|
|
1698
|
-
enum: [
|
|
3909
|
+
enum: [
|
|
3910
|
+
'active',
|
|
3911
|
+
'inactive'
|
|
3912
|
+
]
|
|
1699
3913
|
},
|
|
1700
3914
|
id: {
|
|
1701
3915
|
type: 'string',
|
|
@@ -1710,7 +3924,15 @@ export const UserSchema = {
|
|
|
1710
3924
|
example: '2023-11-02T16:08:14.338Z'
|
|
1711
3925
|
}
|
|
1712
3926
|
},
|
|
1713
|
-
required: [
|
|
3927
|
+
required: [
|
|
3928
|
+
'email',
|
|
3929
|
+
'first_name',
|
|
3930
|
+
'last_name',
|
|
3931
|
+
'role',
|
|
3932
|
+
'status',
|
|
3933
|
+
'id',
|
|
3934
|
+
'date_created'
|
|
3935
|
+
],
|
|
1714
3936
|
additionalProperties: false
|
|
1715
3937
|
};
|
|
1716
3938
|
export const UserUpdateInputSchema = {
|
|
@@ -1738,15 +3960,21 @@ export const UserUpdateInputSchema = {
|
|
|
1738
3960
|
},
|
|
1739
3961
|
role: {
|
|
1740
3962
|
type: 'string',
|
|
1741
|
-
description:
|
|
3963
|
+
description: 'User role. Can be \'Administrator\', \'User\'.',
|
|
1742
3964
|
example: 'User',
|
|
1743
|
-
enum: [
|
|
3965
|
+
enum: [
|
|
3966
|
+
'Administrator',
|
|
3967
|
+
'User'
|
|
3968
|
+
]
|
|
1744
3969
|
},
|
|
1745
3970
|
status: {
|
|
1746
3971
|
type: 'string',
|
|
1747
3972
|
description: 'Status of the user. Can be `active` or `inactive`. Inactive users cannot log in or manage organization resources.',
|
|
1748
3973
|
example: 'active',
|
|
1749
|
-
enum: [
|
|
3974
|
+
enum: [
|
|
3975
|
+
'active',
|
|
3976
|
+
'inactive'
|
|
3977
|
+
]
|
|
1750
3978
|
}
|
|
1751
3979
|
},
|
|
1752
3980
|
additionalProperties: false
|