@cloudfleet/sdk 0.0.1-3d290f0 → 0.0.1-3dedc4b
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 +1084 -0
- package/dist/@tanstack/react-query.gen.d.ts.map +1 -0
- package/dist/@tanstack/react-query.gen.js +1305 -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 +1309 -140
- package/dist/schemas.gen.d.ts.map +1 -1
- package/dist/schemas.gen.js +2792 -214
- package/dist/schemas.gen.js.map +1 -1
- package/dist/sdk.gen.d.ts +295 -185
- package/dist/sdk.gen.d.ts.map +1 -1
- package/dist/sdk.gen.js +446 -373
- package/dist/sdk.gen.js.map +1 -1
- package/dist/services/kubernetes/api.d.ts +8 -8
- package/dist/types.gen.d.ts +1747 -681
- package/dist/types.gen.d.ts.map +1 -1
- package/dist/zod.gen.d.ts +3733 -1419
- package/dist/zod.gen.d.ts.map +1 -1
- package/dist/zod.gen.js +1523 -627
- 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,154 @@ 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
|
+
'aw_tin',
|
|
97
|
+
'az_tin',
|
|
98
|
+
'ba_tin',
|
|
99
|
+
'bb_tin',
|
|
100
|
+
'bd_bin',
|
|
101
|
+
'be_vat',
|
|
102
|
+
'bf_ifu',
|
|
103
|
+
'bg_uic',
|
|
104
|
+
'bg_vat',
|
|
105
|
+
'bh_vat',
|
|
106
|
+
'bj_ifu',
|
|
107
|
+
'bo_tin',
|
|
108
|
+
'br_cnpj',
|
|
109
|
+
'br_cpf',
|
|
110
|
+
'bs_tin',
|
|
111
|
+
'by_tin',
|
|
112
|
+
'ca_bn',
|
|
113
|
+
'ca_gst_hst',
|
|
114
|
+
'ca_pst_bc',
|
|
115
|
+
'ca_pst_mb',
|
|
116
|
+
'ca_pst_sk',
|
|
117
|
+
'ca_qst',
|
|
118
|
+
'cd_nif',
|
|
119
|
+
'ch_uid',
|
|
120
|
+
'ch_vat',
|
|
121
|
+
'cl_tin',
|
|
122
|
+
'cm_niu',
|
|
123
|
+
'cn_tin',
|
|
124
|
+
'co_nit',
|
|
125
|
+
'cr_tin',
|
|
126
|
+
'cv_nif',
|
|
127
|
+
'cy_vat',
|
|
128
|
+
'cz_vat',
|
|
129
|
+
'de_stn',
|
|
130
|
+
'de_vat',
|
|
131
|
+
'dk_vat',
|
|
132
|
+
'do_rcn',
|
|
133
|
+
'ec_ruc',
|
|
134
|
+
'ee_vat',
|
|
135
|
+
'eg_tin',
|
|
136
|
+
'es_cif',
|
|
137
|
+
'es_vat',
|
|
138
|
+
'et_tin',
|
|
139
|
+
'eu_oss_vat',
|
|
140
|
+
'fi_vat',
|
|
141
|
+
'fr_vat',
|
|
142
|
+
'gb_vat',
|
|
143
|
+
'ge_vat',
|
|
144
|
+
'gn_nif',
|
|
145
|
+
'gr_vat',
|
|
146
|
+
'hk_br',
|
|
147
|
+
'hr_oib',
|
|
148
|
+
'hr_vat',
|
|
149
|
+
'hu_tin',
|
|
150
|
+
'hu_vat',
|
|
151
|
+
'id_npwp',
|
|
152
|
+
'ie_vat',
|
|
153
|
+
'il_vat',
|
|
154
|
+
'in_gst',
|
|
155
|
+
'is_vat',
|
|
156
|
+
'it_vat',
|
|
157
|
+
'jp_cn',
|
|
158
|
+
'jp_rn',
|
|
159
|
+
'jp_trn',
|
|
160
|
+
'ke_pin',
|
|
161
|
+
'kg_tin',
|
|
162
|
+
'kh_tin',
|
|
163
|
+
'kr_brn',
|
|
164
|
+
'kz_bin',
|
|
165
|
+
'la_tin',
|
|
166
|
+
'li_uid',
|
|
167
|
+
'li_vat',
|
|
168
|
+
'lk_vat',
|
|
169
|
+
'lt_vat',
|
|
170
|
+
'lu_vat',
|
|
171
|
+
'lv_vat',
|
|
172
|
+
'ma_vat',
|
|
173
|
+
'md_vat',
|
|
174
|
+
'me_pib',
|
|
175
|
+
'mk_vat',
|
|
176
|
+
'mr_nif',
|
|
177
|
+
'mt_vat',
|
|
178
|
+
'mx_rfc',
|
|
179
|
+
'my_frp',
|
|
180
|
+
'my_itn',
|
|
181
|
+
'my_sst',
|
|
182
|
+
'ng_tin',
|
|
183
|
+
'nl_vat',
|
|
184
|
+
'no_vat',
|
|
185
|
+
'no_voec',
|
|
186
|
+
'np_pan',
|
|
187
|
+
'nz_gst',
|
|
188
|
+
'om_vat',
|
|
189
|
+
'pe_ruc',
|
|
190
|
+
'ph_tin',
|
|
191
|
+
'pl_vat',
|
|
192
|
+
'pt_vat',
|
|
193
|
+
'ro_tin',
|
|
194
|
+
'ro_vat',
|
|
195
|
+
'rs_pib',
|
|
196
|
+
'ru_inn',
|
|
197
|
+
'ru_kpp',
|
|
198
|
+
'sa_vat',
|
|
199
|
+
'se_vat',
|
|
200
|
+
'sg_gst',
|
|
201
|
+
'sg_uen',
|
|
202
|
+
'si_tin',
|
|
203
|
+
'si_vat',
|
|
204
|
+
'sk_vat',
|
|
205
|
+
'sn_ninea',
|
|
206
|
+
'sr_fin',
|
|
207
|
+
'sv_nit',
|
|
208
|
+
'th_vat',
|
|
209
|
+
'tj_tin',
|
|
210
|
+
'tr_tin',
|
|
211
|
+
'tw_vat',
|
|
212
|
+
'tz_vat',
|
|
213
|
+
'ua_vat',
|
|
214
|
+
'ug_tin',
|
|
215
|
+
'us_ein',
|
|
216
|
+
'uy_ruc',
|
|
217
|
+
'uz_tin',
|
|
218
|
+
'uz_vat',
|
|
219
|
+
've_rif',
|
|
220
|
+
'vn_tin',
|
|
221
|
+
'xi_vat',
|
|
222
|
+
'za_vat',
|
|
223
|
+
'zm_tin',
|
|
224
|
+
'zw_tin',
|
|
225
|
+
''
|
|
226
|
+
]
|
|
78
227
|
}
|
|
79
228
|
},
|
|
80
|
-
required: [
|
|
229
|
+
required: [
|
|
230
|
+
'type',
|
|
231
|
+
'email',
|
|
232
|
+
'individual_name'
|
|
233
|
+
],
|
|
81
234
|
additionalProperties: false
|
|
82
235
|
};
|
|
83
236
|
export const BillingCreditsSchema = {
|
|
@@ -92,7 +245,10 @@ export const BillingCreditsSchema = {
|
|
|
92
245
|
type: 'string',
|
|
93
246
|
description: 'Type of the promotional code.',
|
|
94
247
|
example: 'credit',
|
|
95
|
-
enum: [
|
|
248
|
+
enum: [
|
|
249
|
+
'credit',
|
|
250
|
+
'discount'
|
|
251
|
+
]
|
|
96
252
|
},
|
|
97
253
|
date_start: {
|
|
98
254
|
type: 'string',
|
|
@@ -129,7 +285,12 @@ export const BillingCreditsSchema = {
|
|
|
129
285
|
example: 8
|
|
130
286
|
}
|
|
131
287
|
},
|
|
132
|
-
required: [
|
|
288
|
+
required: [
|
|
289
|
+
'type',
|
|
290
|
+
'date_start',
|
|
291
|
+
'code',
|
|
292
|
+
'value_total'
|
|
293
|
+
],
|
|
133
294
|
additionalProperties: false
|
|
134
295
|
};
|
|
135
296
|
export const ChartCreateInputSchema = {
|
|
@@ -170,7 +331,13 @@ export const ChartCreateInputSchema = {
|
|
|
170
331
|
example: 'postgresql'
|
|
171
332
|
}
|
|
172
333
|
},
|
|
173
|
-
required: [
|
|
334
|
+
required: [
|
|
335
|
+
'values',
|
|
336
|
+
'version_channel',
|
|
337
|
+
'name',
|
|
338
|
+
'namespace',
|
|
339
|
+
'chart'
|
|
340
|
+
],
|
|
174
341
|
additionalProperties: false
|
|
175
342
|
};
|
|
176
343
|
export const ChartSchema = {
|
|
@@ -212,9 +379,8 @@ export const ChartSchema = {
|
|
|
212
379
|
},
|
|
213
380
|
status: {
|
|
214
381
|
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']
|
|
382
|
+
description: 'Status of the chart deployment (Flux HelmRelease Ready condition reason, e.g. InstallSucceeded, UpgradeFailed, Progressing).',
|
|
383
|
+
example: 'InstallSucceeded'
|
|
218
384
|
},
|
|
219
385
|
version_current: {
|
|
220
386
|
type: 'string',
|
|
@@ -237,7 +403,18 @@ export const ChartSchema = {
|
|
|
237
403
|
example: true
|
|
238
404
|
}
|
|
239
405
|
},
|
|
240
|
-
required: [
|
|
406
|
+
required: [
|
|
407
|
+
'values',
|
|
408
|
+
'version_channel',
|
|
409
|
+
'name',
|
|
410
|
+
'namespace',
|
|
411
|
+
'chart',
|
|
412
|
+
'status',
|
|
413
|
+
'version_current',
|
|
414
|
+
'created_at',
|
|
415
|
+
'updated_at',
|
|
416
|
+
'ready'
|
|
417
|
+
],
|
|
241
418
|
additionalProperties: false
|
|
242
419
|
};
|
|
243
420
|
export const ChartUpdateInputSchema = {
|
|
@@ -254,7 +431,10 @@ export const ChartUpdateInputSchema = {
|
|
|
254
431
|
example: '2.x.x-cfke.x'
|
|
255
432
|
}
|
|
256
433
|
},
|
|
257
|
-
required: [
|
|
434
|
+
required: [
|
|
435
|
+
'values',
|
|
436
|
+
'version_channel'
|
|
437
|
+
],
|
|
258
438
|
additionalProperties: false
|
|
259
439
|
};
|
|
260
440
|
export const ClusterCreateInputSchema = {
|
|
@@ -271,27 +451,118 @@ export const ClusterCreateInputSchema = {
|
|
|
271
451
|
tier: {
|
|
272
452
|
type: 'string',
|
|
273
453
|
description: 'Tier of the cluster.',
|
|
454
|
+
default: 'basic',
|
|
274
455
|
example: 'pro',
|
|
275
|
-
enum: [
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
default: 'staging',
|
|
281
|
-
example: 'northamerica-central-1a',
|
|
282
|
-
enum: ['staging', 'northamerica-central-1', 'europe-central-1a', 'northamerica-central-1a']
|
|
456
|
+
enum: [
|
|
457
|
+
'basic',
|
|
458
|
+
'pro',
|
|
459
|
+
'enterprise'
|
|
460
|
+
]
|
|
283
461
|
},
|
|
284
462
|
version_channel: {
|
|
285
463
|
type: 'string',
|
|
286
464
|
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
465
|
description: 'Version of the kubernetes cluster.',
|
|
288
466
|
default: '1.x.x-cfke.x',
|
|
289
|
-
example: '1.x.x-cfke.x'
|
|
290
|
-
|
|
467
|
+
example: '1.x.x-cfke.x'
|
|
468
|
+
},
|
|
469
|
+
release_channel: {
|
|
470
|
+
type: 'string',
|
|
471
|
+
description: 'Release channel for the cluster\'s control plane.',
|
|
472
|
+
default: 'rapid',
|
|
473
|
+
example: 'rapid',
|
|
474
|
+
enum: [
|
|
475
|
+
'rapid',
|
|
476
|
+
'stable',
|
|
477
|
+
'extended'
|
|
478
|
+
]
|
|
479
|
+
},
|
|
480
|
+
features: {
|
|
481
|
+
type: 'object',
|
|
482
|
+
properties: {
|
|
483
|
+
gpu_sharing_strategy: {
|
|
484
|
+
type: 'string',
|
|
485
|
+
description: 'GPU sharing strategy.',
|
|
486
|
+
default: 'none',
|
|
487
|
+
example: 'none',
|
|
488
|
+
enum: [
|
|
489
|
+
'none',
|
|
490
|
+
'mps',
|
|
491
|
+
'time_slicing'
|
|
492
|
+
]
|
|
493
|
+
},
|
|
494
|
+
gpu_max_shared_clients_per_gpu: {
|
|
495
|
+
type: 'integer',
|
|
496
|
+
minimum: 2,
|
|
497
|
+
maximum: 48,
|
|
498
|
+
description: 'Maximum number of pods that may share a single GPU.',
|
|
499
|
+
default: 4,
|
|
500
|
+
example: 10
|
|
501
|
+
},
|
|
502
|
+
cilium_socket_lb_host_namespace_only: {
|
|
503
|
+
type: 'boolean',
|
|
504
|
+
description: 'Restrict Cilium socket load-balancing to the host namespace. Required for the Tailscale operator and Istio.',
|
|
505
|
+
example: false
|
|
506
|
+
}
|
|
507
|
+
},
|
|
508
|
+
additionalProperties: false,
|
|
509
|
+
description: 'Cluster feature toggles.',
|
|
510
|
+
default: {
|
|
511
|
+
gpu_sharing_strategy: 'none',
|
|
512
|
+
gpu_max_shared_clients_per_gpu: 4,
|
|
513
|
+
cilium_socket_lb_host_namespace_only: false
|
|
514
|
+
}
|
|
515
|
+
},
|
|
516
|
+
region: {
|
|
517
|
+
type: 'string',
|
|
518
|
+
description: 'Cloudfleet control plane region. This field can not be updated after creation.',
|
|
519
|
+
example: 'europe-central-1a'
|
|
520
|
+
},
|
|
521
|
+
networking: {
|
|
522
|
+
type: 'object',
|
|
523
|
+
properties: {
|
|
524
|
+
pod_cidr: {
|
|
525
|
+
type: 'string',
|
|
526
|
+
description: 'CIDR block for pod IPs.',
|
|
527
|
+
default: '10.244.0.0/16'
|
|
528
|
+
},
|
|
529
|
+
service_cidr: {
|
|
530
|
+
type: 'string',
|
|
531
|
+
description: 'CIDR block for service IPs.',
|
|
532
|
+
default: '10.96.0.0/12'
|
|
533
|
+
},
|
|
534
|
+
dual_stack: {
|
|
535
|
+
type: 'boolean',
|
|
536
|
+
description: 'Enable IPv4+IPv6 dual-stack networking.'
|
|
537
|
+
},
|
|
538
|
+
pod_cidr_v6: {
|
|
539
|
+
type: 'string',
|
|
540
|
+
description: 'IPv6 pod CIDR. Requires dual_stack.',
|
|
541
|
+
default: '2001:db8:1:2::/48'
|
|
542
|
+
},
|
|
543
|
+
service_cidr_v6: {
|
|
544
|
+
type: 'string',
|
|
545
|
+
description: 'IPv6 service CIDR. Requires dual_stack.',
|
|
546
|
+
default: '2001:db8:1:1::/112'
|
|
547
|
+
}
|
|
548
|
+
},
|
|
549
|
+
additionalProperties: false,
|
|
550
|
+
description: 'Cluster networking configuration. Immutable after creation.',
|
|
551
|
+
default: {
|
|
552
|
+
pod_cidr: '10.244.0.0/16',
|
|
553
|
+
service_cidr: '10.96.0.0/12',
|
|
554
|
+
dual_stack: false,
|
|
555
|
+
pod_cidr_v6: '2001:db8:1:2::/48',
|
|
556
|
+
service_cidr_v6: '2001:db8:1:1::/112'
|
|
557
|
+
}
|
|
291
558
|
}
|
|
292
559
|
},
|
|
293
|
-
required: [
|
|
294
|
-
|
|
560
|
+
required: [
|
|
561
|
+
'name',
|
|
562
|
+
'region'
|
|
563
|
+
],
|
|
564
|
+
additionalProperties: false,
|
|
565
|
+
description: 'Mutable cluster configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
|
|
295
566
|
};
|
|
296
567
|
export const ClusterJoinInformationSchema = {
|
|
297
568
|
type: 'object',
|
|
@@ -299,8 +570,7 @@ export const ClusterJoinInformationSchema = {
|
|
|
299
570
|
certificate_authority: {
|
|
300
571
|
type: 'string',
|
|
301
572
|
description: 'Certificate authority data for the kubernetes cluster. This is the root certificate authority for the cluster.',
|
|
302
|
-
example:
|
|
303
|
-
MIIC0DCCAbigAwIBAgI...`
|
|
573
|
+
example: '-----BEGIN CERTIFICATE-----\nMIIC0DCCAbigAwIBAgI...'
|
|
304
574
|
},
|
|
305
575
|
endpoint: {
|
|
306
576
|
type: 'string',
|
|
@@ -308,11 +578,26 @@ MIIC0DCCAbigAwIBAgI...`
|
|
|
308
578
|
description: 'Internal URL of the Kubernetes cluster control plane. This is the endpoint that kubelet uses to connect to the cluster.',
|
|
309
579
|
example: 'https://10.31.64.7:6443'
|
|
310
580
|
},
|
|
581
|
+
cluster_dns: {
|
|
582
|
+
type: 'string',
|
|
583
|
+
description: 'Cluster DNS IP address. This is the IP address of the kube-dns service in the cluster.',
|
|
584
|
+
example: '10.96.0.10'
|
|
585
|
+
},
|
|
586
|
+
pod_cidr: {
|
|
587
|
+
type: 'string',
|
|
588
|
+
description: 'Pod CIDR for the cluster. Used to configure iptables rules on nodes to prevent Tailscale routing loops.',
|
|
589
|
+
example: '10.244.0.0/16'
|
|
590
|
+
},
|
|
311
591
|
auth_key: {
|
|
312
592
|
type: 'string',
|
|
313
593
|
description: 'Authentication key for the cluster.',
|
|
314
594
|
example: 'tskey-auth-kBV8wr1dk911CNTRL-...'
|
|
315
595
|
},
|
|
596
|
+
login_server: {
|
|
597
|
+
type: 'string',
|
|
598
|
+
description: 'Coordination server the node registers against. Empty on data plane v1 clusters, where the node advertises its own tag instead. A non-empty value requires a client that declares the dataplane-v2 capability.',
|
|
599
|
+
example: 'https://415026b6-f00f-44f8-968d-fc6ef4d0fc6d.fabric.europe-central-1a.cfke.io'
|
|
600
|
+
},
|
|
316
601
|
bootstrap_token: {
|
|
317
602
|
type: 'string',
|
|
318
603
|
description: 'Bootstrap token for the cluster.',
|
|
@@ -342,7 +627,12 @@ MIIC0DCCAbigAwIBAgI...`
|
|
|
342
627
|
example: '565.0.0'
|
|
343
628
|
}
|
|
344
629
|
},
|
|
345
|
-
required: [
|
|
630
|
+
required: [
|
|
631
|
+
'kubernetes',
|
|
632
|
+
'tailscale',
|
|
633
|
+
'containerd',
|
|
634
|
+
'nvidia_driver'
|
|
635
|
+
],
|
|
346
636
|
additionalProperties: false,
|
|
347
637
|
description: 'Versions of the different components of the cluster.'
|
|
348
638
|
},
|
|
@@ -365,12 +655,26 @@ MIIC0DCCAbigAwIBAgI...`
|
|
|
365
655
|
example: '//iam.googleapis.com/projects/89014267864/locations/global/workloadIdentityPools/cfke/providers/oidc'
|
|
366
656
|
}
|
|
367
657
|
},
|
|
368
|
-
required: [
|
|
658
|
+
required: [
|
|
659
|
+
'metadata_url',
|
|
660
|
+
'aws_role_arn',
|
|
661
|
+
'gcp_workload_identity_provider'
|
|
662
|
+
],
|
|
369
663
|
additionalProperties: false,
|
|
370
|
-
description:
|
|
664
|
+
description: 'OIDC Information for hosts to access to third party API\'s.'
|
|
371
665
|
}
|
|
372
666
|
},
|
|
373
|
-
required: [
|
|
667
|
+
required: [
|
|
668
|
+
'certificate_authority',
|
|
669
|
+
'endpoint',
|
|
670
|
+
'cluster_dns',
|
|
671
|
+
'pod_cidr',
|
|
672
|
+
'auth_key',
|
|
673
|
+
'login_server',
|
|
674
|
+
'bootstrap_token',
|
|
675
|
+
'versions',
|
|
676
|
+
'third_party_api_access_config'
|
|
677
|
+
],
|
|
374
678
|
additionalProperties: false
|
|
375
679
|
};
|
|
376
680
|
export const ClusterSchema = {
|
|
@@ -387,15 +691,122 @@ export const ClusterSchema = {
|
|
|
387
691
|
tier: {
|
|
388
692
|
type: 'string',
|
|
389
693
|
description: 'Tier of the cluster.',
|
|
694
|
+
default: 'basic',
|
|
390
695
|
example: 'pro',
|
|
391
|
-
enum: [
|
|
696
|
+
enum: [
|
|
697
|
+
'basic',
|
|
698
|
+
'pro',
|
|
699
|
+
'enterprise'
|
|
700
|
+
]
|
|
701
|
+
},
|
|
702
|
+
version_channel: {
|
|
703
|
+
type: 'string',
|
|
704
|
+
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-]+)*))?$',
|
|
705
|
+
description: 'Version of the kubernetes cluster.',
|
|
706
|
+
default: '1.x.x-cfke.x',
|
|
707
|
+
example: '1.x.x-cfke.x'
|
|
708
|
+
},
|
|
709
|
+
release_channel: {
|
|
710
|
+
type: 'string',
|
|
711
|
+
description: 'Release channel for the cluster\'s control plane.',
|
|
712
|
+
default: 'rapid',
|
|
713
|
+
example: 'rapid',
|
|
714
|
+
enum: [
|
|
715
|
+
'rapid',
|
|
716
|
+
'stable',
|
|
717
|
+
'extended'
|
|
718
|
+
]
|
|
719
|
+
},
|
|
720
|
+
features: {
|
|
721
|
+
type: 'object',
|
|
722
|
+
properties: {
|
|
723
|
+
gpu_sharing_strategy: {
|
|
724
|
+
type: 'string',
|
|
725
|
+
description: 'GPU sharing strategy.',
|
|
726
|
+
default: 'none',
|
|
727
|
+
example: 'none',
|
|
728
|
+
enum: [
|
|
729
|
+
'none',
|
|
730
|
+
'mps',
|
|
731
|
+
'time_slicing'
|
|
732
|
+
]
|
|
733
|
+
},
|
|
734
|
+
gpu_max_shared_clients_per_gpu: {
|
|
735
|
+
type: 'integer',
|
|
736
|
+
minimum: 2,
|
|
737
|
+
maximum: 48,
|
|
738
|
+
description: 'Maximum number of pods that may share a single GPU.',
|
|
739
|
+
default: 4,
|
|
740
|
+
example: 10
|
|
741
|
+
},
|
|
742
|
+
cilium_socket_lb_host_namespace_only: {
|
|
743
|
+
type: 'boolean',
|
|
744
|
+
description: 'Restrict Cilium socket load-balancing to the host namespace. Required for the Tailscale operator and Istio.',
|
|
745
|
+
example: false
|
|
746
|
+
}
|
|
747
|
+
},
|
|
748
|
+
required: [
|
|
749
|
+
'gpu_sharing_strategy',
|
|
750
|
+
'gpu_max_shared_clients_per_gpu',
|
|
751
|
+
'cilium_socket_lb_host_namespace_only'
|
|
752
|
+
],
|
|
753
|
+
additionalProperties: false,
|
|
754
|
+
description: 'Cluster feature toggles.',
|
|
755
|
+
default: {
|
|
756
|
+
gpu_sharing_strategy: 'none',
|
|
757
|
+
gpu_max_shared_clients_per_gpu: 4,
|
|
758
|
+
cilium_socket_lb_host_namespace_only: false
|
|
759
|
+
}
|
|
392
760
|
},
|
|
393
761
|
region: {
|
|
394
762
|
type: 'string',
|
|
395
|
-
description: 'Cloudfleet control plane region.
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
763
|
+
description: 'Cloudfleet control plane region. This field can not be updated after creation.',
|
|
764
|
+
example: 'europe-central-1a'
|
|
765
|
+
},
|
|
766
|
+
networking: {
|
|
767
|
+
type: 'object',
|
|
768
|
+
properties: {
|
|
769
|
+
pod_cidr: {
|
|
770
|
+
type: 'string',
|
|
771
|
+
description: 'CIDR block for pod IPs.',
|
|
772
|
+
default: '10.244.0.0/16'
|
|
773
|
+
},
|
|
774
|
+
service_cidr: {
|
|
775
|
+
type: 'string',
|
|
776
|
+
description: 'CIDR block for service IPs.',
|
|
777
|
+
default: '10.96.0.0/12'
|
|
778
|
+
},
|
|
779
|
+
dual_stack: {
|
|
780
|
+
type: 'boolean',
|
|
781
|
+
description: 'Enable IPv4+IPv6 dual-stack networking.'
|
|
782
|
+
},
|
|
783
|
+
pod_cidr_v6: {
|
|
784
|
+
type: 'string',
|
|
785
|
+
description: 'IPv6 pod CIDR. Requires dual_stack.',
|
|
786
|
+
default: '2001:db8:1:2::/48'
|
|
787
|
+
},
|
|
788
|
+
service_cidr_v6: {
|
|
789
|
+
type: 'string',
|
|
790
|
+
description: 'IPv6 service CIDR. Requires dual_stack.',
|
|
791
|
+
default: '2001:db8:1:1::/112'
|
|
792
|
+
}
|
|
793
|
+
},
|
|
794
|
+
required: [
|
|
795
|
+
'pod_cidr',
|
|
796
|
+
'service_cidr',
|
|
797
|
+
'dual_stack',
|
|
798
|
+
'pod_cidr_v6',
|
|
799
|
+
'service_cidr_v6'
|
|
800
|
+
],
|
|
801
|
+
additionalProperties: false,
|
|
802
|
+
description: 'Cluster networking configuration. Immutable after creation.',
|
|
803
|
+
default: {
|
|
804
|
+
pod_cidr: '10.244.0.0/16',
|
|
805
|
+
service_cidr: '10.96.0.0/12',
|
|
806
|
+
dual_stack: false,
|
|
807
|
+
pod_cidr_v6: '2001:db8:1:2::/48',
|
|
808
|
+
service_cidr_v6: '2001:db8:1:1::/112'
|
|
809
|
+
}
|
|
399
810
|
},
|
|
400
811
|
id: {
|
|
401
812
|
type: 'string',
|
|
@@ -405,29 +816,51 @@ export const ClusterSchema = {
|
|
|
405
816
|
},
|
|
406
817
|
status: {
|
|
407
818
|
type: 'string',
|
|
408
|
-
description: 'Status of the cluster.
|
|
409
|
-
example: '
|
|
410
|
-
enum: [
|
|
819
|
+
description: 'Status of the cluster.',
|
|
820
|
+
example: 'deployed',
|
|
821
|
+
enum: [
|
|
822
|
+
'creating',
|
|
823
|
+
'deployed',
|
|
824
|
+
'updating',
|
|
825
|
+
'disabled'
|
|
826
|
+
]
|
|
411
827
|
},
|
|
412
828
|
endpoint: {
|
|
413
829
|
anyOf: [
|
|
414
830
|
{
|
|
415
831
|
type: 'string',
|
|
416
832
|
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.
|
|
833
|
+
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.',
|
|
834
|
+
example: 'https://2ae6557c-c61f-49c6-b4c1-a65473470a03.staging.cfke.io'
|
|
419
835
|
},
|
|
420
836
|
{
|
|
421
837
|
type: 'string',
|
|
422
|
-
enum: [
|
|
838
|
+
enum: [
|
|
839
|
+
''
|
|
840
|
+
]
|
|
841
|
+
}
|
|
842
|
+
]
|
|
843
|
+
},
|
|
844
|
+
endpoint_public: {
|
|
845
|
+
anyOf: [
|
|
846
|
+
{
|
|
847
|
+
type: 'string',
|
|
848
|
+
format: 'uri',
|
|
849
|
+
description: 'Deprecated alias of `endpoint`; retained for backward compatibility.',
|
|
850
|
+
example: 'https://2ae6557c-c61f-49c6-b4c1-a65473470a03.staging.cfke.io'
|
|
851
|
+
},
|
|
852
|
+
{
|
|
853
|
+
type: 'string',
|
|
854
|
+
enum: [
|
|
855
|
+
''
|
|
856
|
+
]
|
|
423
857
|
}
|
|
424
858
|
]
|
|
425
859
|
},
|
|
426
860
|
certificate_ca: {
|
|
427
861
|
type: 'string',
|
|
428
862
|
description: 'Certificate authority data for the kubernetes cluster. This is the root certificate authority for the cluster.',
|
|
429
|
-
example:
|
|
430
|
-
MIIC0DCCAbigAwIBAgI...`
|
|
863
|
+
example: '-----BEGIN CERTIFICATE-----\nMIIC0DCCAbigAwIBAgI...'
|
|
431
864
|
},
|
|
432
865
|
version_current: {
|
|
433
866
|
type: 'string',
|
|
@@ -448,16 +881,22 @@ MIIC0DCCAbigAwIBAgI...`
|
|
|
448
881
|
type: 'boolean',
|
|
449
882
|
description: 'Indicates if the cluster is ready to be used.',
|
|
450
883
|
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
884
|
}
|
|
458
885
|
},
|
|
459
|
-
required: [
|
|
460
|
-
|
|
886
|
+
required: [
|
|
887
|
+
'name',
|
|
888
|
+
'tier',
|
|
889
|
+
'version_channel',
|
|
890
|
+
'release_channel',
|
|
891
|
+
'features',
|
|
892
|
+
'region',
|
|
893
|
+
'networking',
|
|
894
|
+
'id',
|
|
895
|
+
'status',
|
|
896
|
+
'ready'
|
|
897
|
+
],
|
|
898
|
+
additionalProperties: false,
|
|
899
|
+
description: 'Mutable cluster configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
|
|
461
900
|
};
|
|
462
901
|
export const ClusterUpdateInputSchema = {
|
|
463
902
|
type: 'object',
|
|
@@ -473,17 +912,139 @@ export const ClusterUpdateInputSchema = {
|
|
|
473
912
|
tier: {
|
|
474
913
|
type: 'string',
|
|
475
914
|
description: 'Tier of the cluster.',
|
|
915
|
+
default: 'basic',
|
|
476
916
|
example: 'pro',
|
|
477
|
-
enum: [
|
|
917
|
+
enum: [
|
|
918
|
+
'basic',
|
|
919
|
+
'pro',
|
|
920
|
+
'enterprise'
|
|
921
|
+
]
|
|
478
922
|
},
|
|
479
923
|
version_channel: {
|
|
480
924
|
type: 'string',
|
|
481
925
|
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
926
|
description: 'Version of the kubernetes cluster.',
|
|
927
|
+
default: '1.x.x-cfke.x',
|
|
483
928
|
example: '1.x.x-cfke.x'
|
|
929
|
+
},
|
|
930
|
+
release_channel: {
|
|
931
|
+
type: 'string',
|
|
932
|
+
description: 'Release channel for the cluster\'s control plane.',
|
|
933
|
+
default: 'rapid',
|
|
934
|
+
example: 'rapid',
|
|
935
|
+
enum: [
|
|
936
|
+
'rapid',
|
|
937
|
+
'stable',
|
|
938
|
+
'extended'
|
|
939
|
+
]
|
|
940
|
+
},
|
|
941
|
+
features: {
|
|
942
|
+
type: 'object',
|
|
943
|
+
properties: {
|
|
944
|
+
gpu_sharing_strategy: {
|
|
945
|
+
type: 'string',
|
|
946
|
+
description: 'GPU sharing strategy.',
|
|
947
|
+
default: 'none',
|
|
948
|
+
example: 'none',
|
|
949
|
+
enum: [
|
|
950
|
+
'none',
|
|
951
|
+
'mps',
|
|
952
|
+
'time_slicing'
|
|
953
|
+
]
|
|
954
|
+
},
|
|
955
|
+
gpu_max_shared_clients_per_gpu: {
|
|
956
|
+
type: 'integer',
|
|
957
|
+
minimum: 2,
|
|
958
|
+
maximum: 48,
|
|
959
|
+
description: 'Maximum number of pods that may share a single GPU.',
|
|
960
|
+
default: 4,
|
|
961
|
+
example: 10
|
|
962
|
+
},
|
|
963
|
+
cilium_socket_lb_host_namespace_only: {
|
|
964
|
+
type: 'boolean',
|
|
965
|
+
description: 'Restrict Cilium socket load-balancing to the host namespace. Required for the Tailscale operator and Istio.',
|
|
966
|
+
example: false
|
|
967
|
+
}
|
|
968
|
+
},
|
|
969
|
+
additionalProperties: false,
|
|
970
|
+
description: 'Cluster feature toggles.',
|
|
971
|
+
default: {
|
|
972
|
+
gpu_sharing_strategy: 'none',
|
|
973
|
+
gpu_max_shared_clients_per_gpu: 4,
|
|
974
|
+
cilium_socket_lb_host_namespace_only: false
|
|
975
|
+
}
|
|
484
976
|
}
|
|
485
977
|
},
|
|
486
|
-
required: [
|
|
978
|
+
required: [
|
|
979
|
+
'name'
|
|
980
|
+
],
|
|
981
|
+
additionalProperties: false,
|
|
982
|
+
description: 'Mutable cluster configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
|
|
983
|
+
};
|
|
984
|
+
export const FeedbackCreateInputSchema = {
|
|
985
|
+
type: 'object',
|
|
986
|
+
properties: {
|
|
987
|
+
sentiment: {
|
|
988
|
+
type: 'string',
|
|
989
|
+
description: 'Overall sentiment: positive, neutral or negative.',
|
|
990
|
+
example: 'negative',
|
|
991
|
+
enum: [
|
|
992
|
+
'positive',
|
|
993
|
+
'neutral',
|
|
994
|
+
'negative'
|
|
995
|
+
]
|
|
996
|
+
},
|
|
997
|
+
message: {
|
|
998
|
+
type: 'string',
|
|
999
|
+
maxLength: 2000,
|
|
1000
|
+
minLength: 1,
|
|
1001
|
+
description: 'What was useful, confusing, wrong or missing.',
|
|
1002
|
+
example: 'The error for a missing kubeconfig does not say which path it looked in.'
|
|
1003
|
+
},
|
|
1004
|
+
context: {
|
|
1005
|
+
type: 'string',
|
|
1006
|
+
maxLength: 2000,
|
|
1007
|
+
description: 'What you were trying to do when it happened.',
|
|
1008
|
+
example: 'Connecting kubectl to a new cluster.'
|
|
1009
|
+
},
|
|
1010
|
+
source: {
|
|
1011
|
+
type: 'string',
|
|
1012
|
+
description: 'Where the feedback was sent from: cli, mcp, plugin, console or api. Defaults to api.',
|
|
1013
|
+
default: 'api',
|
|
1014
|
+
example: 'cli',
|
|
1015
|
+
enum: [
|
|
1016
|
+
'cli',
|
|
1017
|
+
'mcp',
|
|
1018
|
+
'plugin',
|
|
1019
|
+
'console',
|
|
1020
|
+
'api'
|
|
1021
|
+
]
|
|
1022
|
+
},
|
|
1023
|
+
client: {
|
|
1024
|
+
type: 'string',
|
|
1025
|
+
maxLength: 100,
|
|
1026
|
+
description: 'Name and version of the sending client.',
|
|
1027
|
+
example: 'cloudfleet-plugin-claude/0.5.0'
|
|
1028
|
+
}
|
|
1029
|
+
},
|
|
1030
|
+
required: [
|
|
1031
|
+
'sentiment',
|
|
1032
|
+
'message'
|
|
1033
|
+
],
|
|
1034
|
+
additionalProperties: false
|
|
1035
|
+
};
|
|
1036
|
+
export const FeedbackSchema = {
|
|
1037
|
+
type: 'object',
|
|
1038
|
+
properties: {
|
|
1039
|
+
id: {
|
|
1040
|
+
type: 'string',
|
|
1041
|
+
description: 'Unique identifier of the feedback entry (Mongo ObjectId).',
|
|
1042
|
+
example: '60c72b2f9f1b2c001f8e4d3a'
|
|
1043
|
+
}
|
|
1044
|
+
},
|
|
1045
|
+
required: [
|
|
1046
|
+
'id'
|
|
1047
|
+
],
|
|
487
1048
|
additionalProperties: false
|
|
488
1049
|
};
|
|
489
1050
|
export const FleetCreateInputSchema = {
|
|
@@ -493,13 +1054,12 @@ export const FleetCreateInputSchema = {
|
|
|
493
1054
|
type: 'object',
|
|
494
1055
|
properties: {
|
|
495
1056
|
cpu: {
|
|
496
|
-
type: '
|
|
497
|
-
format: 'float',
|
|
1057
|
+
type: 'integer',
|
|
498
1058
|
minimum: 0,
|
|
499
|
-
|
|
1059
|
+
maximum: 100000,
|
|
1060
|
+
description: 'CPU limit in cores. Maximum 100,000.'
|
|
500
1061
|
}
|
|
501
1062
|
},
|
|
502
|
-
required: ['cpu'],
|
|
503
1063
|
additionalProperties: false,
|
|
504
1064
|
description: 'Limits define a set of bounds for provisioning capacity.'
|
|
505
1065
|
},
|
|
@@ -507,47 +1067,396 @@ export const FleetCreateInputSchema = {
|
|
|
507
1067
|
type: 'object',
|
|
508
1068
|
properties: {
|
|
509
1069
|
enabled: {
|
|
510
|
-
type: 'boolean'
|
|
511
|
-
default: true
|
|
1070
|
+
type: 'boolean'
|
|
512
1071
|
},
|
|
513
1072
|
project: {
|
|
514
1073
|
type: 'string',
|
|
515
|
-
|
|
1074
|
+
pattern: '^[a-z][a-z0-9-]{4,28}[a-z0-9]$',
|
|
1075
|
+
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.',
|
|
1076
|
+
example: 'my-cloudfleet-project'
|
|
516
1077
|
}
|
|
517
1078
|
},
|
|
518
|
-
required: [
|
|
1079
|
+
required: [
|
|
1080
|
+
'enabled'
|
|
1081
|
+
],
|
|
519
1082
|
additionalProperties: false
|
|
520
1083
|
},
|
|
521
1084
|
hetzner: {
|
|
522
1085
|
type: 'object',
|
|
523
1086
|
properties: {
|
|
524
1087
|
enabled: {
|
|
525
|
-
type: 'boolean'
|
|
526
|
-
default: true
|
|
1088
|
+
type: 'boolean'
|
|
527
1089
|
},
|
|
528
1090
|
apiKey: {
|
|
529
1091
|
type: 'string',
|
|
530
|
-
|
|
1092
|
+
maxLength: 64,
|
|
1093
|
+
minLength: 64,
|
|
1094
|
+
pattern: '^([A-Za-z0-9]{64}|\\*{64})$',
|
|
1095
|
+
description: 'Hetzner Cloud API token with read/write access (64 alphanumeric characters). Write-only: reads return a redacted placeholder, never the token. Omit the field, or send the placeholder back unchanged, to keep the existing key. Send a new value to rotate it.'
|
|
531
1096
|
}
|
|
532
1097
|
},
|
|
533
|
-
required: [
|
|
1098
|
+
required: [
|
|
1099
|
+
'enabled'
|
|
1100
|
+
],
|
|
534
1101
|
additionalProperties: false
|
|
535
1102
|
},
|
|
536
1103
|
aws: {
|
|
537
1104
|
type: 'object',
|
|
538
1105
|
properties: {
|
|
539
1106
|
enabled: {
|
|
540
|
-
type: 'boolean'
|
|
541
|
-
default: true
|
|
1107
|
+
type: 'boolean'
|
|
542
1108
|
},
|
|
543
1109
|
controllerRoleArn: {
|
|
544
1110
|
type: 'string',
|
|
545
|
-
|
|
1111
|
+
pattern: '^arn:aws(-[a-z]+)*:iam::\\d{12}:role\\/[\\w+=,.@/-]+$',
|
|
1112
|
+
description: 'AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.',
|
|
1113
|
+
example: 'arn:aws:iam::123456789012:role/Cloudfleet'
|
|
546
1114
|
}
|
|
547
1115
|
},
|
|
548
|
-
required: [
|
|
1116
|
+
required: [
|
|
1117
|
+
'enabled'
|
|
1118
|
+
],
|
|
549
1119
|
additionalProperties: false
|
|
550
1120
|
},
|
|
1121
|
+
constraints: {
|
|
1122
|
+
type: 'object',
|
|
1123
|
+
properties: {
|
|
1124
|
+
'karpenter.sh/capacity-type': {
|
|
1125
|
+
type: 'array',
|
|
1126
|
+
items: {
|
|
1127
|
+
type: 'string',
|
|
1128
|
+
enum: [
|
|
1129
|
+
'on-demand',
|
|
1130
|
+
'spot'
|
|
1131
|
+
]
|
|
1132
|
+
},
|
|
1133
|
+
minItems: 1,
|
|
1134
|
+
description: 'Allowed values for `karpenter.sh/capacity-type`.',
|
|
1135
|
+
default: [
|
|
1136
|
+
'on-demand',
|
|
1137
|
+
'spot'
|
|
1138
|
+
]
|
|
1139
|
+
},
|
|
1140
|
+
'kubernetes.io/arch': {
|
|
1141
|
+
type: 'array',
|
|
1142
|
+
items: {
|
|
1143
|
+
type: 'string',
|
|
1144
|
+
enum: [
|
|
1145
|
+
'amd64',
|
|
1146
|
+
'arm64'
|
|
1147
|
+
]
|
|
1148
|
+
},
|
|
1149
|
+
minItems: 1,
|
|
1150
|
+
description: 'Allowed values for `kubernetes.io/arch`.',
|
|
1151
|
+
default: [
|
|
1152
|
+
'amd64'
|
|
1153
|
+
]
|
|
1154
|
+
},
|
|
1155
|
+
'cfke.io/instance-family': {
|
|
1156
|
+
type: 'array',
|
|
1157
|
+
items: {
|
|
1158
|
+
type: 'string',
|
|
1159
|
+
enum: [
|
|
1160
|
+
'a1',
|
|
1161
|
+
'a2',
|
|
1162
|
+
'a3',
|
|
1163
|
+
'a4',
|
|
1164
|
+
'c1',
|
|
1165
|
+
'c2',
|
|
1166
|
+
'c2d',
|
|
1167
|
+
'c3',
|
|
1168
|
+
'c3d',
|
|
1169
|
+
'c4',
|
|
1170
|
+
'c4a',
|
|
1171
|
+
'c4d',
|
|
1172
|
+
'c5',
|
|
1173
|
+
'c5a',
|
|
1174
|
+
'c5ad',
|
|
1175
|
+
'c5d',
|
|
1176
|
+
'c5n',
|
|
1177
|
+
'c6a',
|
|
1178
|
+
'c6g',
|
|
1179
|
+
'c6gd',
|
|
1180
|
+
'c6gn',
|
|
1181
|
+
'c6i',
|
|
1182
|
+
'c6id',
|
|
1183
|
+
'c6in',
|
|
1184
|
+
'c7a',
|
|
1185
|
+
'c7g',
|
|
1186
|
+
'c7gd',
|
|
1187
|
+
'c7gn',
|
|
1188
|
+
'c7i',
|
|
1189
|
+
'c7i-flex',
|
|
1190
|
+
'c8g',
|
|
1191
|
+
'c8gd',
|
|
1192
|
+
'cax',
|
|
1193
|
+
'ccx',
|
|
1194
|
+
'cpx',
|
|
1195
|
+
'cx',
|
|
1196
|
+
'd2',
|
|
1197
|
+
'd3',
|
|
1198
|
+
'd3en',
|
|
1199
|
+
'dl1',
|
|
1200
|
+
'dl2q',
|
|
1201
|
+
'e2',
|
|
1202
|
+
'f1',
|
|
1203
|
+
'f2',
|
|
1204
|
+
'g1',
|
|
1205
|
+
'g2',
|
|
1206
|
+
'g4ad',
|
|
1207
|
+
'g4dn',
|
|
1208
|
+
'g5',
|
|
1209
|
+
'g5g',
|
|
1210
|
+
'g6',
|
|
1211
|
+
'g6e',
|
|
1212
|
+
'gr6',
|
|
1213
|
+
'h1',
|
|
1214
|
+
'h3',
|
|
1215
|
+
'hpc6a',
|
|
1216
|
+
'hpc6id',
|
|
1217
|
+
'hpc7a',
|
|
1218
|
+
'hpc7g',
|
|
1219
|
+
'i2',
|
|
1220
|
+
'i3',
|
|
1221
|
+
'i3en',
|
|
1222
|
+
'i4g',
|
|
1223
|
+
'i4i',
|
|
1224
|
+
'i7i',
|
|
1225
|
+
'i7ie',
|
|
1226
|
+
'i8g',
|
|
1227
|
+
'im4gn',
|
|
1228
|
+
'inf1',
|
|
1229
|
+
'inf2',
|
|
1230
|
+
'is4gen',
|
|
1231
|
+
'm1',
|
|
1232
|
+
'm2',
|
|
1233
|
+
'm3',
|
|
1234
|
+
'm4',
|
|
1235
|
+
'm5',
|
|
1236
|
+
'm5a',
|
|
1237
|
+
'm5ad',
|
|
1238
|
+
'm5d',
|
|
1239
|
+
'm5dn',
|
|
1240
|
+
'm5n',
|
|
1241
|
+
'm5zn',
|
|
1242
|
+
'm6a',
|
|
1243
|
+
'm6g',
|
|
1244
|
+
'm6gd',
|
|
1245
|
+
'm6i',
|
|
1246
|
+
'm6id',
|
|
1247
|
+
'm6idn',
|
|
1248
|
+
'm6in',
|
|
1249
|
+
'm7a',
|
|
1250
|
+
'm7g',
|
|
1251
|
+
'm7gd',
|
|
1252
|
+
'm7i',
|
|
1253
|
+
'm7i-flex',
|
|
1254
|
+
'm8g',
|
|
1255
|
+
'm8gd',
|
|
1256
|
+
'n1',
|
|
1257
|
+
'n2',
|
|
1258
|
+
'n2d',
|
|
1259
|
+
'n4',
|
|
1260
|
+
'p3',
|
|
1261
|
+
'p3dn',
|
|
1262
|
+
'p4d',
|
|
1263
|
+
'p4de',
|
|
1264
|
+
'p5',
|
|
1265
|
+
'p5e',
|
|
1266
|
+
'p5en',
|
|
1267
|
+
'p6-b200',
|
|
1268
|
+
'r3',
|
|
1269
|
+
'r4',
|
|
1270
|
+
'r5',
|
|
1271
|
+
'r5a',
|
|
1272
|
+
'r5ad',
|
|
1273
|
+
'r5b',
|
|
1274
|
+
'r5d',
|
|
1275
|
+
'r5dn',
|
|
1276
|
+
'r5n',
|
|
1277
|
+
'r6a',
|
|
1278
|
+
'r6g',
|
|
1279
|
+
'r6gd',
|
|
1280
|
+
'r6i',
|
|
1281
|
+
'r6id',
|
|
1282
|
+
'r6idn',
|
|
1283
|
+
'r6in',
|
|
1284
|
+
'r7a',
|
|
1285
|
+
'r7g',
|
|
1286
|
+
'r7gd',
|
|
1287
|
+
'r7i',
|
|
1288
|
+
'r7iz',
|
|
1289
|
+
'r8g',
|
|
1290
|
+
'r8gd',
|
|
1291
|
+
't2',
|
|
1292
|
+
't2a',
|
|
1293
|
+
't2d',
|
|
1294
|
+
't3',
|
|
1295
|
+
't3a',
|
|
1296
|
+
't4g',
|
|
1297
|
+
'trn1',
|
|
1298
|
+
'trn1n',
|
|
1299
|
+
'u-3tb1',
|
|
1300
|
+
'u-6tb1',
|
|
1301
|
+
'u7i-12tb',
|
|
1302
|
+
'u7i-6tb',
|
|
1303
|
+
'u7i-8tb',
|
|
1304
|
+
'u7in-16tb',
|
|
1305
|
+
'u7in-24tb',
|
|
1306
|
+
'u7in-32tb',
|
|
1307
|
+
'vt1',
|
|
1308
|
+
'x1',
|
|
1309
|
+
'x1e',
|
|
1310
|
+
'x2gd',
|
|
1311
|
+
'x2idn',
|
|
1312
|
+
'x2iedn',
|
|
1313
|
+
'x2iezn',
|
|
1314
|
+
'x4',
|
|
1315
|
+
'x8g',
|
|
1316
|
+
'z1d',
|
|
1317
|
+
'z3'
|
|
1318
|
+
]
|
|
1319
|
+
},
|
|
1320
|
+
description: 'Allowed values for `cfke.io/instance-family`.',
|
|
1321
|
+
default: []
|
|
1322
|
+
},
|
|
1323
|
+
'topology.kubernetes.io/region': {
|
|
1324
|
+
type: 'array',
|
|
1325
|
+
items: {
|
|
1326
|
+
type: 'string',
|
|
1327
|
+
enum: [
|
|
1328
|
+
'africa-south1',
|
|
1329
|
+
'ap-northeast-1',
|
|
1330
|
+
'ap-northeast-2',
|
|
1331
|
+
'ap-northeast-3',
|
|
1332
|
+
'ap-south-1',
|
|
1333
|
+
'ap-southeast-1',
|
|
1334
|
+
'ap-southeast-2',
|
|
1335
|
+
'ash',
|
|
1336
|
+
'asia-east1',
|
|
1337
|
+
'asia-east2',
|
|
1338
|
+
'asia-northeast1',
|
|
1339
|
+
'asia-northeast2',
|
|
1340
|
+
'asia-northeast3',
|
|
1341
|
+
'asia-south1',
|
|
1342
|
+
'asia-south2',
|
|
1343
|
+
'asia-southeast1',
|
|
1344
|
+
'asia-southeast2',
|
|
1345
|
+
'australia-southeast1',
|
|
1346
|
+
'australia-southeast2',
|
|
1347
|
+
'ca-central-1',
|
|
1348
|
+
'eu-central-1',
|
|
1349
|
+
'eu-central-2',
|
|
1350
|
+
'eu-north-1',
|
|
1351
|
+
'eu-west-1',
|
|
1352
|
+
'eu-west-2',
|
|
1353
|
+
'eu-west-3',
|
|
1354
|
+
'europe-central2',
|
|
1355
|
+
'europe-north1',
|
|
1356
|
+
'europe-southwest1',
|
|
1357
|
+
'europe-west1',
|
|
1358
|
+
'europe-west10',
|
|
1359
|
+
'europe-west12',
|
|
1360
|
+
'europe-west2',
|
|
1361
|
+
'europe-west3',
|
|
1362
|
+
'europe-west4',
|
|
1363
|
+
'europe-west6',
|
|
1364
|
+
'europe-west8',
|
|
1365
|
+
'europe-west9',
|
|
1366
|
+
'fsn1',
|
|
1367
|
+
'hel1',
|
|
1368
|
+
'hil',
|
|
1369
|
+
'me-central1',
|
|
1370
|
+
'me-central2',
|
|
1371
|
+
'me-west1',
|
|
1372
|
+
'nbg1',
|
|
1373
|
+
'northamerica-northeast1',
|
|
1374
|
+
'northamerica-northeast2',
|
|
1375
|
+
'sa-east-1',
|
|
1376
|
+
'sin',
|
|
1377
|
+
'southamerica-east1',
|
|
1378
|
+
'southamerica-west1',
|
|
1379
|
+
'us-central1',
|
|
1380
|
+
'us-east-1',
|
|
1381
|
+
'us-east-2',
|
|
1382
|
+
'us-east1',
|
|
1383
|
+
'us-east4',
|
|
1384
|
+
'us-east5',
|
|
1385
|
+
'us-south1',
|
|
1386
|
+
'us-west-1',
|
|
1387
|
+
'us-west-2',
|
|
1388
|
+
'us-west1',
|
|
1389
|
+
'us-west2',
|
|
1390
|
+
'us-west3',
|
|
1391
|
+
'us-west4'
|
|
1392
|
+
]
|
|
1393
|
+
},
|
|
1394
|
+
description: 'Allowed values for `topology.kubernetes.io/region`.',
|
|
1395
|
+
default: []
|
|
1396
|
+
}
|
|
1397
|
+
},
|
|
1398
|
+
additionalProperties: false,
|
|
1399
|
+
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.',
|
|
1400
|
+
default: {
|
|
1401
|
+
'karpenter.sh/capacity-type': [
|
|
1402
|
+
'on-demand',
|
|
1403
|
+
'spot'
|
|
1404
|
+
],
|
|
1405
|
+
'kubernetes.io/arch': [
|
|
1406
|
+
'amd64'
|
|
1407
|
+
],
|
|
1408
|
+
'cfke.io/instance-family': [],
|
|
1409
|
+
'topology.kubernetes.io/region': []
|
|
1410
|
+
}
|
|
1411
|
+
},
|
|
1412
|
+
scalingProfile: {
|
|
1413
|
+
type: 'string',
|
|
1414
|
+
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`).',
|
|
1415
|
+
default: 'conservative',
|
|
1416
|
+
example: 'conservative',
|
|
1417
|
+
enum: [
|
|
1418
|
+
'aggressive',
|
|
1419
|
+
'conservative'
|
|
1420
|
+
]
|
|
1421
|
+
},
|
|
1422
|
+
taints: {
|
|
1423
|
+
type: 'array',
|
|
1424
|
+
items: {
|
|
1425
|
+
type: 'object',
|
|
1426
|
+
properties: {
|
|
1427
|
+
key: {
|
|
1428
|
+
type: 'string',
|
|
1429
|
+
description: 'Taint key: a Kubernetes qualified name with an optional DNS subdomain prefix. Keys under `node.kubernetes.io`, `node.cloudprovider.kubernetes.io`, `node.cilium.io`, `karpenter.sh` and `cfke.io` (and their subdomains) are reserved.',
|
|
1430
|
+
example: 'dedicated'
|
|
1431
|
+
},
|
|
1432
|
+
value: {
|
|
1433
|
+
type: 'string',
|
|
1434
|
+
maxLength: 63,
|
|
1435
|
+
pattern: '^([A-Za-z0-9]([-A-Za-z0-9_.]*[A-Za-z0-9])?)?$',
|
|
1436
|
+
description: 'Taint value. Optional.',
|
|
1437
|
+
example: 'ci'
|
|
1438
|
+
},
|
|
1439
|
+
effect: {
|
|
1440
|
+
type: 'string',
|
|
1441
|
+
description: 'Taint effect.',
|
|
1442
|
+
example: 'NoSchedule',
|
|
1443
|
+
enum: [
|
|
1444
|
+
'NoSchedule',
|
|
1445
|
+
'PreferNoSchedule',
|
|
1446
|
+
'NoExecute'
|
|
1447
|
+
]
|
|
1448
|
+
}
|
|
1449
|
+
},
|
|
1450
|
+
required: [
|
|
1451
|
+
'key',
|
|
1452
|
+
'effect'
|
|
1453
|
+
],
|
|
1454
|
+
additionalProperties: false
|
|
1455
|
+
},
|
|
1456
|
+
maxItems: 50,
|
|
1457
|
+
description: 'Taints applied to every node the fleet provisions, so only pods that tolerate them schedule there. Each key and effect pair may appear once. Full-overwrite: omit to remove all taints.',
|
|
1458
|
+
default: []
|
|
1459
|
+
},
|
|
551
1460
|
id: {
|
|
552
1461
|
type: 'string',
|
|
553
1462
|
maxLength: 63,
|
|
@@ -557,8 +1466,11 @@ export const FleetCreateInputSchema = {
|
|
|
557
1466
|
example: 'new-clouds-fleet'
|
|
558
1467
|
}
|
|
559
1468
|
},
|
|
560
|
-
required: [
|
|
561
|
-
|
|
1469
|
+
required: [
|
|
1470
|
+
'id'
|
|
1471
|
+
],
|
|
1472
|
+
additionalProperties: false,
|
|
1473
|
+
description: 'Mutable fleet configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
|
|
562
1474
|
};
|
|
563
1475
|
export const FleetSchema = {
|
|
564
1476
|
type: 'object',
|
|
@@ -567,13 +1479,12 @@ export const FleetSchema = {
|
|
|
567
1479
|
type: 'object',
|
|
568
1480
|
properties: {
|
|
569
1481
|
cpu: {
|
|
570
|
-
type: '
|
|
571
|
-
format: 'float',
|
|
1482
|
+
type: 'integer',
|
|
572
1483
|
minimum: 0,
|
|
573
|
-
|
|
1484
|
+
maximum: 100000,
|
|
1485
|
+
description: 'CPU limit in cores. Maximum 100,000.'
|
|
574
1486
|
}
|
|
575
1487
|
},
|
|
576
|
-
required: ['cpu'],
|
|
577
1488
|
additionalProperties: false,
|
|
578
1489
|
description: 'Limits define a set of bounds for provisioning capacity.'
|
|
579
1490
|
},
|
|
@@ -581,47 +1492,398 @@ export const FleetSchema = {
|
|
|
581
1492
|
type: 'object',
|
|
582
1493
|
properties: {
|
|
583
1494
|
enabled: {
|
|
584
|
-
type: 'boolean'
|
|
585
|
-
default: true
|
|
1495
|
+
type: 'boolean'
|
|
586
1496
|
},
|
|
587
1497
|
project: {
|
|
588
1498
|
type: 'string',
|
|
589
|
-
|
|
1499
|
+
pattern: '^[a-z][a-z0-9-]{4,28}[a-z0-9]$',
|
|
1500
|
+
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.',
|
|
1501
|
+
example: 'my-cloudfleet-project'
|
|
590
1502
|
}
|
|
591
1503
|
},
|
|
592
|
-
required: [
|
|
1504
|
+
required: [
|
|
1505
|
+
'enabled'
|
|
1506
|
+
],
|
|
593
1507
|
additionalProperties: false
|
|
594
1508
|
},
|
|
595
1509
|
hetzner: {
|
|
596
1510
|
type: 'object',
|
|
597
1511
|
properties: {
|
|
598
1512
|
enabled: {
|
|
599
|
-
type: 'boolean'
|
|
600
|
-
default: true
|
|
1513
|
+
type: 'boolean'
|
|
601
1514
|
},
|
|
602
1515
|
apiKey: {
|
|
603
1516
|
type: 'string',
|
|
604
|
-
|
|
1517
|
+
pattern: '^\\*{64}$',
|
|
1518
|
+
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
1519
|
}
|
|
606
1520
|
},
|
|
607
|
-
required: [
|
|
1521
|
+
required: [
|
|
1522
|
+
'enabled'
|
|
1523
|
+
],
|
|
608
1524
|
additionalProperties: false
|
|
609
1525
|
},
|
|
610
1526
|
aws: {
|
|
611
1527
|
type: 'object',
|
|
612
1528
|
properties: {
|
|
613
1529
|
enabled: {
|
|
614
|
-
type: 'boolean'
|
|
615
|
-
default: true
|
|
1530
|
+
type: 'boolean'
|
|
616
1531
|
},
|
|
617
1532
|
controllerRoleArn: {
|
|
618
1533
|
type: 'string',
|
|
619
|
-
|
|
1534
|
+
pattern: '^arn:aws(-[a-z]+)*:iam::\\d{12}:role\\/[\\w+=,.@/-]+$',
|
|
1535
|
+
description: 'AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.',
|
|
1536
|
+
example: 'arn:aws:iam::123456789012:role/Cloudfleet'
|
|
620
1537
|
}
|
|
621
1538
|
},
|
|
622
|
-
required: [
|
|
1539
|
+
required: [
|
|
1540
|
+
'enabled'
|
|
1541
|
+
],
|
|
623
1542
|
additionalProperties: false
|
|
624
1543
|
},
|
|
1544
|
+
constraints: {
|
|
1545
|
+
type: 'object',
|
|
1546
|
+
properties: {
|
|
1547
|
+
'karpenter.sh/capacity-type': {
|
|
1548
|
+
type: 'array',
|
|
1549
|
+
items: {
|
|
1550
|
+
type: 'string',
|
|
1551
|
+
enum: [
|
|
1552
|
+
'on-demand',
|
|
1553
|
+
'spot'
|
|
1554
|
+
]
|
|
1555
|
+
},
|
|
1556
|
+
minItems: 1,
|
|
1557
|
+
description: 'Allowed values for `karpenter.sh/capacity-type`.',
|
|
1558
|
+
default: [
|
|
1559
|
+
'on-demand',
|
|
1560
|
+
'spot'
|
|
1561
|
+
]
|
|
1562
|
+
},
|
|
1563
|
+
'kubernetes.io/arch': {
|
|
1564
|
+
type: 'array',
|
|
1565
|
+
items: {
|
|
1566
|
+
type: 'string',
|
|
1567
|
+
enum: [
|
|
1568
|
+
'amd64',
|
|
1569
|
+
'arm64'
|
|
1570
|
+
]
|
|
1571
|
+
},
|
|
1572
|
+
minItems: 1,
|
|
1573
|
+
description: 'Allowed values for `kubernetes.io/arch`.',
|
|
1574
|
+
default: [
|
|
1575
|
+
'amd64'
|
|
1576
|
+
]
|
|
1577
|
+
},
|
|
1578
|
+
'cfke.io/instance-family': {
|
|
1579
|
+
type: 'array',
|
|
1580
|
+
items: {
|
|
1581
|
+
type: 'string',
|
|
1582
|
+
enum: [
|
|
1583
|
+
'a1',
|
|
1584
|
+
'a2',
|
|
1585
|
+
'a3',
|
|
1586
|
+
'a4',
|
|
1587
|
+
'c1',
|
|
1588
|
+
'c2',
|
|
1589
|
+
'c2d',
|
|
1590
|
+
'c3',
|
|
1591
|
+
'c3d',
|
|
1592
|
+
'c4',
|
|
1593
|
+
'c4a',
|
|
1594
|
+
'c4d',
|
|
1595
|
+
'c5',
|
|
1596
|
+
'c5a',
|
|
1597
|
+
'c5ad',
|
|
1598
|
+
'c5d',
|
|
1599
|
+
'c5n',
|
|
1600
|
+
'c6a',
|
|
1601
|
+
'c6g',
|
|
1602
|
+
'c6gd',
|
|
1603
|
+
'c6gn',
|
|
1604
|
+
'c6i',
|
|
1605
|
+
'c6id',
|
|
1606
|
+
'c6in',
|
|
1607
|
+
'c7a',
|
|
1608
|
+
'c7g',
|
|
1609
|
+
'c7gd',
|
|
1610
|
+
'c7gn',
|
|
1611
|
+
'c7i',
|
|
1612
|
+
'c7i-flex',
|
|
1613
|
+
'c8g',
|
|
1614
|
+
'c8gd',
|
|
1615
|
+
'cax',
|
|
1616
|
+
'ccx',
|
|
1617
|
+
'cpx',
|
|
1618
|
+
'cx',
|
|
1619
|
+
'd2',
|
|
1620
|
+
'd3',
|
|
1621
|
+
'd3en',
|
|
1622
|
+
'dl1',
|
|
1623
|
+
'dl2q',
|
|
1624
|
+
'e2',
|
|
1625
|
+
'f1',
|
|
1626
|
+
'f2',
|
|
1627
|
+
'g1',
|
|
1628
|
+
'g2',
|
|
1629
|
+
'g4ad',
|
|
1630
|
+
'g4dn',
|
|
1631
|
+
'g5',
|
|
1632
|
+
'g5g',
|
|
1633
|
+
'g6',
|
|
1634
|
+
'g6e',
|
|
1635
|
+
'gr6',
|
|
1636
|
+
'h1',
|
|
1637
|
+
'h3',
|
|
1638
|
+
'hpc6a',
|
|
1639
|
+
'hpc6id',
|
|
1640
|
+
'hpc7a',
|
|
1641
|
+
'hpc7g',
|
|
1642
|
+
'i2',
|
|
1643
|
+
'i3',
|
|
1644
|
+
'i3en',
|
|
1645
|
+
'i4g',
|
|
1646
|
+
'i4i',
|
|
1647
|
+
'i7i',
|
|
1648
|
+
'i7ie',
|
|
1649
|
+
'i8g',
|
|
1650
|
+
'im4gn',
|
|
1651
|
+
'inf1',
|
|
1652
|
+
'inf2',
|
|
1653
|
+
'is4gen',
|
|
1654
|
+
'm1',
|
|
1655
|
+
'm2',
|
|
1656
|
+
'm3',
|
|
1657
|
+
'm4',
|
|
1658
|
+
'm5',
|
|
1659
|
+
'm5a',
|
|
1660
|
+
'm5ad',
|
|
1661
|
+
'm5d',
|
|
1662
|
+
'm5dn',
|
|
1663
|
+
'm5n',
|
|
1664
|
+
'm5zn',
|
|
1665
|
+
'm6a',
|
|
1666
|
+
'm6g',
|
|
1667
|
+
'm6gd',
|
|
1668
|
+
'm6i',
|
|
1669
|
+
'm6id',
|
|
1670
|
+
'm6idn',
|
|
1671
|
+
'm6in',
|
|
1672
|
+
'm7a',
|
|
1673
|
+
'm7g',
|
|
1674
|
+
'm7gd',
|
|
1675
|
+
'm7i',
|
|
1676
|
+
'm7i-flex',
|
|
1677
|
+
'm8g',
|
|
1678
|
+
'm8gd',
|
|
1679
|
+
'n1',
|
|
1680
|
+
'n2',
|
|
1681
|
+
'n2d',
|
|
1682
|
+
'n4',
|
|
1683
|
+
'p3',
|
|
1684
|
+
'p3dn',
|
|
1685
|
+
'p4d',
|
|
1686
|
+
'p4de',
|
|
1687
|
+
'p5',
|
|
1688
|
+
'p5e',
|
|
1689
|
+
'p5en',
|
|
1690
|
+
'p6-b200',
|
|
1691
|
+
'r3',
|
|
1692
|
+
'r4',
|
|
1693
|
+
'r5',
|
|
1694
|
+
'r5a',
|
|
1695
|
+
'r5ad',
|
|
1696
|
+
'r5b',
|
|
1697
|
+
'r5d',
|
|
1698
|
+
'r5dn',
|
|
1699
|
+
'r5n',
|
|
1700
|
+
'r6a',
|
|
1701
|
+
'r6g',
|
|
1702
|
+
'r6gd',
|
|
1703
|
+
'r6i',
|
|
1704
|
+
'r6id',
|
|
1705
|
+
'r6idn',
|
|
1706
|
+
'r6in',
|
|
1707
|
+
'r7a',
|
|
1708
|
+
'r7g',
|
|
1709
|
+
'r7gd',
|
|
1710
|
+
'r7i',
|
|
1711
|
+
'r7iz',
|
|
1712
|
+
'r8g',
|
|
1713
|
+
'r8gd',
|
|
1714
|
+
't2',
|
|
1715
|
+
't2a',
|
|
1716
|
+
't2d',
|
|
1717
|
+
't3',
|
|
1718
|
+
't3a',
|
|
1719
|
+
't4g',
|
|
1720
|
+
'trn1',
|
|
1721
|
+
'trn1n',
|
|
1722
|
+
'u-3tb1',
|
|
1723
|
+
'u-6tb1',
|
|
1724
|
+
'u7i-12tb',
|
|
1725
|
+
'u7i-6tb',
|
|
1726
|
+
'u7i-8tb',
|
|
1727
|
+
'u7in-16tb',
|
|
1728
|
+
'u7in-24tb',
|
|
1729
|
+
'u7in-32tb',
|
|
1730
|
+
'vt1',
|
|
1731
|
+
'x1',
|
|
1732
|
+
'x1e',
|
|
1733
|
+
'x2gd',
|
|
1734
|
+
'x2idn',
|
|
1735
|
+
'x2iedn',
|
|
1736
|
+
'x2iezn',
|
|
1737
|
+
'x4',
|
|
1738
|
+
'x8g',
|
|
1739
|
+
'z1d',
|
|
1740
|
+
'z3'
|
|
1741
|
+
]
|
|
1742
|
+
},
|
|
1743
|
+
description: 'Allowed values for `cfke.io/instance-family`.',
|
|
1744
|
+
default: []
|
|
1745
|
+
},
|
|
1746
|
+
'topology.kubernetes.io/region': {
|
|
1747
|
+
type: 'array',
|
|
1748
|
+
items: {
|
|
1749
|
+
type: 'string',
|
|
1750
|
+
enum: [
|
|
1751
|
+
'africa-south1',
|
|
1752
|
+
'ap-northeast-1',
|
|
1753
|
+
'ap-northeast-2',
|
|
1754
|
+
'ap-northeast-3',
|
|
1755
|
+
'ap-south-1',
|
|
1756
|
+
'ap-southeast-1',
|
|
1757
|
+
'ap-southeast-2',
|
|
1758
|
+
'ash',
|
|
1759
|
+
'asia-east1',
|
|
1760
|
+
'asia-east2',
|
|
1761
|
+
'asia-northeast1',
|
|
1762
|
+
'asia-northeast2',
|
|
1763
|
+
'asia-northeast3',
|
|
1764
|
+
'asia-south1',
|
|
1765
|
+
'asia-south2',
|
|
1766
|
+
'asia-southeast1',
|
|
1767
|
+
'asia-southeast2',
|
|
1768
|
+
'australia-southeast1',
|
|
1769
|
+
'australia-southeast2',
|
|
1770
|
+
'ca-central-1',
|
|
1771
|
+
'eu-central-1',
|
|
1772
|
+
'eu-central-2',
|
|
1773
|
+
'eu-north-1',
|
|
1774
|
+
'eu-west-1',
|
|
1775
|
+
'eu-west-2',
|
|
1776
|
+
'eu-west-3',
|
|
1777
|
+
'europe-central2',
|
|
1778
|
+
'europe-north1',
|
|
1779
|
+
'europe-southwest1',
|
|
1780
|
+
'europe-west1',
|
|
1781
|
+
'europe-west10',
|
|
1782
|
+
'europe-west12',
|
|
1783
|
+
'europe-west2',
|
|
1784
|
+
'europe-west3',
|
|
1785
|
+
'europe-west4',
|
|
1786
|
+
'europe-west6',
|
|
1787
|
+
'europe-west8',
|
|
1788
|
+
'europe-west9',
|
|
1789
|
+
'fsn1',
|
|
1790
|
+
'hel1',
|
|
1791
|
+
'hil',
|
|
1792
|
+
'me-central1',
|
|
1793
|
+
'me-central2',
|
|
1794
|
+
'me-west1',
|
|
1795
|
+
'nbg1',
|
|
1796
|
+
'northamerica-northeast1',
|
|
1797
|
+
'northamerica-northeast2',
|
|
1798
|
+
'sa-east-1',
|
|
1799
|
+
'sin',
|
|
1800
|
+
'southamerica-east1',
|
|
1801
|
+
'southamerica-west1',
|
|
1802
|
+
'us-central1',
|
|
1803
|
+
'us-east-1',
|
|
1804
|
+
'us-east-2',
|
|
1805
|
+
'us-east1',
|
|
1806
|
+
'us-east4',
|
|
1807
|
+
'us-east5',
|
|
1808
|
+
'us-south1',
|
|
1809
|
+
'us-west-1',
|
|
1810
|
+
'us-west-2',
|
|
1811
|
+
'us-west1',
|
|
1812
|
+
'us-west2',
|
|
1813
|
+
'us-west3',
|
|
1814
|
+
'us-west4'
|
|
1815
|
+
]
|
|
1816
|
+
},
|
|
1817
|
+
description: 'Allowed values for `topology.kubernetes.io/region`.',
|
|
1818
|
+
default: []
|
|
1819
|
+
}
|
|
1820
|
+
},
|
|
1821
|
+
required: [
|
|
1822
|
+
'karpenter.sh/capacity-type',
|
|
1823
|
+
'kubernetes.io/arch'
|
|
1824
|
+
],
|
|
1825
|
+
additionalProperties: false,
|
|
1826
|
+
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.',
|
|
1827
|
+
default: {
|
|
1828
|
+
'karpenter.sh/capacity-type': [
|
|
1829
|
+
'on-demand',
|
|
1830
|
+
'spot'
|
|
1831
|
+
],
|
|
1832
|
+
'kubernetes.io/arch': [
|
|
1833
|
+
'amd64'
|
|
1834
|
+
],
|
|
1835
|
+
'cfke.io/instance-family': [],
|
|
1836
|
+
'topology.kubernetes.io/region': []
|
|
1837
|
+
}
|
|
1838
|
+
},
|
|
1839
|
+
scalingProfile: {
|
|
1840
|
+
type: 'string',
|
|
1841
|
+
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`).',
|
|
1842
|
+
default: 'conservative',
|
|
1843
|
+
example: 'conservative',
|
|
1844
|
+
enum: [
|
|
1845
|
+
'aggressive',
|
|
1846
|
+
'conservative'
|
|
1847
|
+
]
|
|
1848
|
+
},
|
|
1849
|
+
taints: {
|
|
1850
|
+
type: 'array',
|
|
1851
|
+
items: {
|
|
1852
|
+
type: 'object',
|
|
1853
|
+
properties: {
|
|
1854
|
+
key: {
|
|
1855
|
+
type: 'string',
|
|
1856
|
+
description: 'Taint key: a Kubernetes qualified name with an optional DNS subdomain prefix. Keys under `node.kubernetes.io`, `node.cloudprovider.kubernetes.io`, `node.cilium.io`, `karpenter.sh` and `cfke.io` (and their subdomains) are reserved.',
|
|
1857
|
+
example: 'dedicated'
|
|
1858
|
+
},
|
|
1859
|
+
value: {
|
|
1860
|
+
type: 'string',
|
|
1861
|
+
maxLength: 63,
|
|
1862
|
+
pattern: '^([A-Za-z0-9]([-A-Za-z0-9_.]*[A-Za-z0-9])?)?$',
|
|
1863
|
+
description: 'Taint value. Optional.',
|
|
1864
|
+
example: 'ci'
|
|
1865
|
+
},
|
|
1866
|
+
effect: {
|
|
1867
|
+
type: 'string',
|
|
1868
|
+
description: 'Taint effect.',
|
|
1869
|
+
example: 'NoSchedule',
|
|
1870
|
+
enum: [
|
|
1871
|
+
'NoSchedule',
|
|
1872
|
+
'PreferNoSchedule',
|
|
1873
|
+
'NoExecute'
|
|
1874
|
+
]
|
|
1875
|
+
}
|
|
1876
|
+
},
|
|
1877
|
+
required: [
|
|
1878
|
+
'key',
|
|
1879
|
+
'effect'
|
|
1880
|
+
],
|
|
1881
|
+
additionalProperties: false
|
|
1882
|
+
},
|
|
1883
|
+
maxItems: 50,
|
|
1884
|
+
description: 'Taints applied to every node the fleet provisions, so only pods that tolerate them schedule there. Each key and effect pair may appear once. Full-overwrite: omit to remove all taints.',
|
|
1885
|
+
default: []
|
|
1886
|
+
},
|
|
625
1887
|
id: {
|
|
626
1888
|
type: 'string',
|
|
627
1889
|
maxLength: 63,
|
|
@@ -629,10 +1891,39 @@ export const FleetSchema = {
|
|
|
629
1891
|
pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
|
|
630
1892
|
description: 'Unique identifier of the kubernetes fleet.',
|
|
631
1893
|
example: 'new-clouds-fleet'
|
|
1894
|
+
},
|
|
1895
|
+
ready: {
|
|
1896
|
+
type: 'boolean',
|
|
1897
|
+
description: 'Indicates whether the fleet configuration is healthy.',
|
|
1898
|
+
example: true
|
|
1899
|
+
},
|
|
1900
|
+
status_message: {
|
|
1901
|
+
type: 'string',
|
|
1902
|
+
description: 'Human-readable reason the fleet is not ready. Present only when `ready` is false.',
|
|
1903
|
+
example: 'Invalid provider permissions.'
|
|
1904
|
+
},
|
|
1905
|
+
created_at: {
|
|
1906
|
+
type: 'string',
|
|
1907
|
+
description: 'Creation date and time of the fleet.',
|
|
1908
|
+
example: '2024-09-12T09:11:27Z'
|
|
1909
|
+
},
|
|
1910
|
+
updated_at: {
|
|
1911
|
+
type: 'string',
|
|
1912
|
+
description: 'Date and time the fleet was last updated.',
|
|
1913
|
+
example: '2024-09-12T09:11:27Z'
|
|
632
1914
|
}
|
|
633
1915
|
},
|
|
634
|
-
required: [
|
|
635
|
-
|
|
1916
|
+
required: [
|
|
1917
|
+
'constraints',
|
|
1918
|
+
'scalingProfile',
|
|
1919
|
+
'taints',
|
|
1920
|
+
'id',
|
|
1921
|
+
'ready',
|
|
1922
|
+
'created_at',
|
|
1923
|
+
'updated_at'
|
|
1924
|
+
],
|
|
1925
|
+
additionalProperties: false,
|
|
1926
|
+
description: 'Mutable fleet configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
|
|
636
1927
|
};
|
|
637
1928
|
export const FleetUpdateInputSchema = {
|
|
638
1929
|
type: 'object',
|
|
@@ -641,13 +1932,12 @@ export const FleetUpdateInputSchema = {
|
|
|
641
1932
|
type: 'object',
|
|
642
1933
|
properties: {
|
|
643
1934
|
cpu: {
|
|
644
|
-
type: '
|
|
645
|
-
format: 'float',
|
|
1935
|
+
type: 'integer',
|
|
646
1936
|
minimum: 0,
|
|
647
|
-
|
|
1937
|
+
maximum: 100000,
|
|
1938
|
+
description: 'CPU limit in cores. Maximum 100,000.'
|
|
648
1939
|
}
|
|
649
1940
|
},
|
|
650
|
-
required: ['cpu'],
|
|
651
1941
|
additionalProperties: false,
|
|
652
1942
|
description: 'Limits define a set of bounds for provisioning capacity.'
|
|
653
1943
|
},
|
|
@@ -655,48 +1945,423 @@ export const FleetUpdateInputSchema = {
|
|
|
655
1945
|
type: 'object',
|
|
656
1946
|
properties: {
|
|
657
1947
|
enabled: {
|
|
658
|
-
type: 'boolean'
|
|
659
|
-
default: true
|
|
1948
|
+
type: 'boolean'
|
|
660
1949
|
},
|
|
661
1950
|
project: {
|
|
662
1951
|
type: 'string',
|
|
663
|
-
|
|
1952
|
+
pattern: '^[a-z][a-z0-9-]{4,28}[a-z0-9]$',
|
|
1953
|
+
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.',
|
|
1954
|
+
example: 'my-cloudfleet-project'
|
|
664
1955
|
}
|
|
665
1956
|
},
|
|
666
|
-
required: [
|
|
1957
|
+
required: [
|
|
1958
|
+
'enabled'
|
|
1959
|
+
],
|
|
667
1960
|
additionalProperties: false
|
|
668
1961
|
},
|
|
669
1962
|
hetzner: {
|
|
670
1963
|
type: 'object',
|
|
671
1964
|
properties: {
|
|
672
1965
|
enabled: {
|
|
673
|
-
type: 'boolean'
|
|
674
|
-
default: true
|
|
1966
|
+
type: 'boolean'
|
|
675
1967
|
},
|
|
676
1968
|
apiKey: {
|
|
677
1969
|
type: 'string',
|
|
678
|
-
|
|
1970
|
+
maxLength: 64,
|
|
1971
|
+
minLength: 64,
|
|
1972
|
+
pattern: '^([A-Za-z0-9]{64}|\\*{64})$',
|
|
1973
|
+
description: 'Hetzner Cloud API token with read/write access (64 alphanumeric characters). Write-only: reads return a redacted placeholder, never the token. Omit the field, or send the placeholder back unchanged, to keep the existing key. Send a new value to rotate it.'
|
|
679
1974
|
}
|
|
680
1975
|
},
|
|
681
|
-
required: [
|
|
1976
|
+
required: [
|
|
1977
|
+
'enabled'
|
|
1978
|
+
],
|
|
682
1979
|
additionalProperties: false
|
|
683
1980
|
},
|
|
684
1981
|
aws: {
|
|
685
1982
|
type: 'object',
|
|
686
1983
|
properties: {
|
|
687
1984
|
enabled: {
|
|
688
|
-
type: 'boolean'
|
|
689
|
-
default: true
|
|
1985
|
+
type: 'boolean'
|
|
690
1986
|
},
|
|
691
1987
|
controllerRoleArn: {
|
|
692
1988
|
type: 'string',
|
|
693
|
-
|
|
1989
|
+
pattern: '^arn:aws(-[a-z]+)*:iam::\\d{12}:role\\/[\\w+=,.@/-]+$',
|
|
1990
|
+
description: 'AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.',
|
|
1991
|
+
example: 'arn:aws:iam::123456789012:role/Cloudfleet'
|
|
694
1992
|
}
|
|
695
1993
|
},
|
|
696
|
-
required: [
|
|
1994
|
+
required: [
|
|
1995
|
+
'enabled'
|
|
1996
|
+
],
|
|
697
1997
|
additionalProperties: false
|
|
1998
|
+
},
|
|
1999
|
+
constraints: {
|
|
2000
|
+
type: 'object',
|
|
2001
|
+
properties: {
|
|
2002
|
+
'karpenter.sh/capacity-type': {
|
|
2003
|
+
type: 'array',
|
|
2004
|
+
items: {
|
|
2005
|
+
type: 'string',
|
|
2006
|
+
enum: [
|
|
2007
|
+
'on-demand',
|
|
2008
|
+
'spot'
|
|
2009
|
+
]
|
|
2010
|
+
},
|
|
2011
|
+
minItems: 1,
|
|
2012
|
+
description: 'Allowed values for `karpenter.sh/capacity-type`.',
|
|
2013
|
+
default: [
|
|
2014
|
+
'on-demand',
|
|
2015
|
+
'spot'
|
|
2016
|
+
]
|
|
2017
|
+
},
|
|
2018
|
+
'kubernetes.io/arch': {
|
|
2019
|
+
type: 'array',
|
|
2020
|
+
items: {
|
|
2021
|
+
type: 'string',
|
|
2022
|
+
enum: [
|
|
2023
|
+
'amd64',
|
|
2024
|
+
'arm64'
|
|
2025
|
+
]
|
|
2026
|
+
},
|
|
2027
|
+
minItems: 1,
|
|
2028
|
+
description: 'Allowed values for `kubernetes.io/arch`.',
|
|
2029
|
+
default: [
|
|
2030
|
+
'amd64'
|
|
2031
|
+
]
|
|
2032
|
+
},
|
|
2033
|
+
'cfke.io/instance-family': {
|
|
2034
|
+
type: 'array',
|
|
2035
|
+
items: {
|
|
2036
|
+
type: 'string',
|
|
2037
|
+
enum: [
|
|
2038
|
+
'a1',
|
|
2039
|
+
'a2',
|
|
2040
|
+
'a3',
|
|
2041
|
+
'a4',
|
|
2042
|
+
'c1',
|
|
2043
|
+
'c2',
|
|
2044
|
+
'c2d',
|
|
2045
|
+
'c3',
|
|
2046
|
+
'c3d',
|
|
2047
|
+
'c4',
|
|
2048
|
+
'c4a',
|
|
2049
|
+
'c4d',
|
|
2050
|
+
'c5',
|
|
2051
|
+
'c5a',
|
|
2052
|
+
'c5ad',
|
|
2053
|
+
'c5d',
|
|
2054
|
+
'c5n',
|
|
2055
|
+
'c6a',
|
|
2056
|
+
'c6g',
|
|
2057
|
+
'c6gd',
|
|
2058
|
+
'c6gn',
|
|
2059
|
+
'c6i',
|
|
2060
|
+
'c6id',
|
|
2061
|
+
'c6in',
|
|
2062
|
+
'c7a',
|
|
2063
|
+
'c7g',
|
|
2064
|
+
'c7gd',
|
|
2065
|
+
'c7gn',
|
|
2066
|
+
'c7i',
|
|
2067
|
+
'c7i-flex',
|
|
2068
|
+
'c8g',
|
|
2069
|
+
'c8gd',
|
|
2070
|
+
'cax',
|
|
2071
|
+
'ccx',
|
|
2072
|
+
'cpx',
|
|
2073
|
+
'cx',
|
|
2074
|
+
'd2',
|
|
2075
|
+
'd3',
|
|
2076
|
+
'd3en',
|
|
2077
|
+
'dl1',
|
|
2078
|
+
'dl2q',
|
|
2079
|
+
'e2',
|
|
2080
|
+
'f1',
|
|
2081
|
+
'f2',
|
|
2082
|
+
'g1',
|
|
2083
|
+
'g2',
|
|
2084
|
+
'g4ad',
|
|
2085
|
+
'g4dn',
|
|
2086
|
+
'g5',
|
|
2087
|
+
'g5g',
|
|
2088
|
+
'g6',
|
|
2089
|
+
'g6e',
|
|
2090
|
+
'gr6',
|
|
2091
|
+
'h1',
|
|
2092
|
+
'h3',
|
|
2093
|
+
'hpc6a',
|
|
2094
|
+
'hpc6id',
|
|
2095
|
+
'hpc7a',
|
|
2096
|
+
'hpc7g',
|
|
2097
|
+
'i2',
|
|
2098
|
+
'i3',
|
|
2099
|
+
'i3en',
|
|
2100
|
+
'i4g',
|
|
2101
|
+
'i4i',
|
|
2102
|
+
'i7i',
|
|
2103
|
+
'i7ie',
|
|
2104
|
+
'i8g',
|
|
2105
|
+
'im4gn',
|
|
2106
|
+
'inf1',
|
|
2107
|
+
'inf2',
|
|
2108
|
+
'is4gen',
|
|
2109
|
+
'm1',
|
|
2110
|
+
'm2',
|
|
2111
|
+
'm3',
|
|
2112
|
+
'm4',
|
|
2113
|
+
'm5',
|
|
2114
|
+
'm5a',
|
|
2115
|
+
'm5ad',
|
|
2116
|
+
'm5d',
|
|
2117
|
+
'm5dn',
|
|
2118
|
+
'm5n',
|
|
2119
|
+
'm5zn',
|
|
2120
|
+
'm6a',
|
|
2121
|
+
'm6g',
|
|
2122
|
+
'm6gd',
|
|
2123
|
+
'm6i',
|
|
2124
|
+
'm6id',
|
|
2125
|
+
'm6idn',
|
|
2126
|
+
'm6in',
|
|
2127
|
+
'm7a',
|
|
2128
|
+
'm7g',
|
|
2129
|
+
'm7gd',
|
|
2130
|
+
'm7i',
|
|
2131
|
+
'm7i-flex',
|
|
2132
|
+
'm8g',
|
|
2133
|
+
'm8gd',
|
|
2134
|
+
'n1',
|
|
2135
|
+
'n2',
|
|
2136
|
+
'n2d',
|
|
2137
|
+
'n4',
|
|
2138
|
+
'p3',
|
|
2139
|
+
'p3dn',
|
|
2140
|
+
'p4d',
|
|
2141
|
+
'p4de',
|
|
2142
|
+
'p5',
|
|
2143
|
+
'p5e',
|
|
2144
|
+
'p5en',
|
|
2145
|
+
'p6-b200',
|
|
2146
|
+
'r3',
|
|
2147
|
+
'r4',
|
|
2148
|
+
'r5',
|
|
2149
|
+
'r5a',
|
|
2150
|
+
'r5ad',
|
|
2151
|
+
'r5b',
|
|
2152
|
+
'r5d',
|
|
2153
|
+
'r5dn',
|
|
2154
|
+
'r5n',
|
|
2155
|
+
'r6a',
|
|
2156
|
+
'r6g',
|
|
2157
|
+
'r6gd',
|
|
2158
|
+
'r6i',
|
|
2159
|
+
'r6id',
|
|
2160
|
+
'r6idn',
|
|
2161
|
+
'r6in',
|
|
2162
|
+
'r7a',
|
|
2163
|
+
'r7g',
|
|
2164
|
+
'r7gd',
|
|
2165
|
+
'r7i',
|
|
2166
|
+
'r7iz',
|
|
2167
|
+
'r8g',
|
|
2168
|
+
'r8gd',
|
|
2169
|
+
't2',
|
|
2170
|
+
't2a',
|
|
2171
|
+
't2d',
|
|
2172
|
+
't3',
|
|
2173
|
+
't3a',
|
|
2174
|
+
't4g',
|
|
2175
|
+
'trn1',
|
|
2176
|
+
'trn1n',
|
|
2177
|
+
'u-3tb1',
|
|
2178
|
+
'u-6tb1',
|
|
2179
|
+
'u7i-12tb',
|
|
2180
|
+
'u7i-6tb',
|
|
2181
|
+
'u7i-8tb',
|
|
2182
|
+
'u7in-16tb',
|
|
2183
|
+
'u7in-24tb',
|
|
2184
|
+
'u7in-32tb',
|
|
2185
|
+
'vt1',
|
|
2186
|
+
'x1',
|
|
2187
|
+
'x1e',
|
|
2188
|
+
'x2gd',
|
|
2189
|
+
'x2idn',
|
|
2190
|
+
'x2iedn',
|
|
2191
|
+
'x2iezn',
|
|
2192
|
+
'x4',
|
|
2193
|
+
'x8g',
|
|
2194
|
+
'z1d',
|
|
2195
|
+
'z3'
|
|
2196
|
+
]
|
|
2197
|
+
},
|
|
2198
|
+
description: 'Allowed values for `cfke.io/instance-family`.',
|
|
2199
|
+
default: []
|
|
2200
|
+
},
|
|
2201
|
+
'topology.kubernetes.io/region': {
|
|
2202
|
+
type: 'array',
|
|
2203
|
+
items: {
|
|
2204
|
+
type: 'string',
|
|
2205
|
+
enum: [
|
|
2206
|
+
'africa-south1',
|
|
2207
|
+
'ap-northeast-1',
|
|
2208
|
+
'ap-northeast-2',
|
|
2209
|
+
'ap-northeast-3',
|
|
2210
|
+
'ap-south-1',
|
|
2211
|
+
'ap-southeast-1',
|
|
2212
|
+
'ap-southeast-2',
|
|
2213
|
+
'ash',
|
|
2214
|
+
'asia-east1',
|
|
2215
|
+
'asia-east2',
|
|
2216
|
+
'asia-northeast1',
|
|
2217
|
+
'asia-northeast2',
|
|
2218
|
+
'asia-northeast3',
|
|
2219
|
+
'asia-south1',
|
|
2220
|
+
'asia-south2',
|
|
2221
|
+
'asia-southeast1',
|
|
2222
|
+
'asia-southeast2',
|
|
2223
|
+
'australia-southeast1',
|
|
2224
|
+
'australia-southeast2',
|
|
2225
|
+
'ca-central-1',
|
|
2226
|
+
'eu-central-1',
|
|
2227
|
+
'eu-central-2',
|
|
2228
|
+
'eu-north-1',
|
|
2229
|
+
'eu-west-1',
|
|
2230
|
+
'eu-west-2',
|
|
2231
|
+
'eu-west-3',
|
|
2232
|
+
'europe-central2',
|
|
2233
|
+
'europe-north1',
|
|
2234
|
+
'europe-southwest1',
|
|
2235
|
+
'europe-west1',
|
|
2236
|
+
'europe-west10',
|
|
2237
|
+
'europe-west12',
|
|
2238
|
+
'europe-west2',
|
|
2239
|
+
'europe-west3',
|
|
2240
|
+
'europe-west4',
|
|
2241
|
+
'europe-west6',
|
|
2242
|
+
'europe-west8',
|
|
2243
|
+
'europe-west9',
|
|
2244
|
+
'fsn1',
|
|
2245
|
+
'hel1',
|
|
2246
|
+
'hil',
|
|
2247
|
+
'me-central1',
|
|
2248
|
+
'me-central2',
|
|
2249
|
+
'me-west1',
|
|
2250
|
+
'nbg1',
|
|
2251
|
+
'northamerica-northeast1',
|
|
2252
|
+
'northamerica-northeast2',
|
|
2253
|
+
'sa-east-1',
|
|
2254
|
+
'sin',
|
|
2255
|
+
'southamerica-east1',
|
|
2256
|
+
'southamerica-west1',
|
|
2257
|
+
'us-central1',
|
|
2258
|
+
'us-east-1',
|
|
2259
|
+
'us-east-2',
|
|
2260
|
+
'us-east1',
|
|
2261
|
+
'us-east4',
|
|
2262
|
+
'us-east5',
|
|
2263
|
+
'us-south1',
|
|
2264
|
+
'us-west-1',
|
|
2265
|
+
'us-west-2',
|
|
2266
|
+
'us-west1',
|
|
2267
|
+
'us-west2',
|
|
2268
|
+
'us-west3',
|
|
2269
|
+
'us-west4'
|
|
2270
|
+
]
|
|
2271
|
+
},
|
|
2272
|
+
description: 'Allowed values for `topology.kubernetes.io/region`.',
|
|
2273
|
+
default: []
|
|
2274
|
+
}
|
|
2275
|
+
},
|
|
2276
|
+
additionalProperties: false,
|
|
2277
|
+
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.',
|
|
2278
|
+
default: {
|
|
2279
|
+
'karpenter.sh/capacity-type': [
|
|
2280
|
+
'on-demand',
|
|
2281
|
+
'spot'
|
|
2282
|
+
],
|
|
2283
|
+
'kubernetes.io/arch': [
|
|
2284
|
+
'amd64'
|
|
2285
|
+
],
|
|
2286
|
+
'cfke.io/instance-family': [],
|
|
2287
|
+
'topology.kubernetes.io/region': []
|
|
2288
|
+
}
|
|
2289
|
+
},
|
|
2290
|
+
scalingProfile: {
|
|
2291
|
+
type: 'string',
|
|
2292
|
+
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`).',
|
|
2293
|
+
default: 'conservative',
|
|
2294
|
+
example: 'conservative',
|
|
2295
|
+
enum: [
|
|
2296
|
+
'aggressive',
|
|
2297
|
+
'conservative'
|
|
2298
|
+
]
|
|
2299
|
+
},
|
|
2300
|
+
taints: {
|
|
2301
|
+
type: 'array',
|
|
2302
|
+
items: {
|
|
2303
|
+
type: 'object',
|
|
2304
|
+
properties: {
|
|
2305
|
+
key: {
|
|
2306
|
+
type: 'string',
|
|
2307
|
+
description: 'Taint key: a Kubernetes qualified name with an optional DNS subdomain prefix. Keys under `node.kubernetes.io`, `node.cloudprovider.kubernetes.io`, `node.cilium.io`, `karpenter.sh` and `cfke.io` (and their subdomains) are reserved.',
|
|
2308
|
+
example: 'dedicated'
|
|
2309
|
+
},
|
|
2310
|
+
value: {
|
|
2311
|
+
type: 'string',
|
|
2312
|
+
maxLength: 63,
|
|
2313
|
+
pattern: '^([A-Za-z0-9]([-A-Za-z0-9_.]*[A-Za-z0-9])?)?$',
|
|
2314
|
+
description: 'Taint value. Optional.',
|
|
2315
|
+
example: 'ci'
|
|
2316
|
+
},
|
|
2317
|
+
effect: {
|
|
2318
|
+
type: 'string',
|
|
2319
|
+
description: 'Taint effect.',
|
|
2320
|
+
example: 'NoSchedule',
|
|
2321
|
+
enum: [
|
|
2322
|
+
'NoSchedule',
|
|
2323
|
+
'PreferNoSchedule',
|
|
2324
|
+
'NoExecute'
|
|
2325
|
+
]
|
|
2326
|
+
}
|
|
2327
|
+
},
|
|
2328
|
+
required: [
|
|
2329
|
+
'key',
|
|
2330
|
+
'effect'
|
|
2331
|
+
],
|
|
2332
|
+
additionalProperties: false
|
|
2333
|
+
},
|
|
2334
|
+
maxItems: 50,
|
|
2335
|
+
description: 'Taints applied to every node the fleet provisions, so only pods that tolerate them schedule there. Each key and effect pair may appear once. Full-overwrite: omit to remove all taints.',
|
|
2336
|
+
default: []
|
|
698
2337
|
}
|
|
699
2338
|
},
|
|
2339
|
+
additionalProperties: false,
|
|
2340
|
+
description: 'Mutable fleet configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
|
|
2341
|
+
};
|
|
2342
|
+
export const InviteCreateInputSchema = {
|
|
2343
|
+
type: 'object',
|
|
2344
|
+
properties: {
|
|
2345
|
+
email: {
|
|
2346
|
+
type: 'string',
|
|
2347
|
+
format: 'email',
|
|
2348
|
+
description: 'Email address of the user to invite.',
|
|
2349
|
+
example: 'email@example.com'
|
|
2350
|
+
},
|
|
2351
|
+
role: {
|
|
2352
|
+
type: 'string',
|
|
2353
|
+
description: 'Role the invited user will be assigned on redemption. Can be \'Administrator\' or \'User\'.',
|
|
2354
|
+
default: 'User',
|
|
2355
|
+
example: 'User',
|
|
2356
|
+
enum: [
|
|
2357
|
+
'Administrator',
|
|
2358
|
+
'User'
|
|
2359
|
+
]
|
|
2360
|
+
}
|
|
2361
|
+
},
|
|
2362
|
+
required: [
|
|
2363
|
+
'email'
|
|
2364
|
+
],
|
|
700
2365
|
additionalProperties: false
|
|
701
2366
|
};
|
|
702
2367
|
export const InviteSchema = {
|
|
@@ -729,9 +2394,185 @@ export const InviteSchema = {
|
|
|
729
2394
|
type: 'string',
|
|
730
2395
|
description: 'Generated unique invite code.',
|
|
731
2396
|
example: '7kUZnH7nnKUFfvc4NK2KQF'
|
|
2397
|
+
},
|
|
2398
|
+
role: {
|
|
2399
|
+
type: 'string',
|
|
2400
|
+
description: 'Role the invited user will be assigned on redemption. Can be \'Administrator\' or \'User\'.',
|
|
2401
|
+
default: 'User',
|
|
2402
|
+
example: 'User',
|
|
2403
|
+
enum: [
|
|
2404
|
+
'Administrator',
|
|
2405
|
+
'User'
|
|
2406
|
+
]
|
|
2407
|
+
}
|
|
2408
|
+
},
|
|
2409
|
+
required: [
|
|
2410
|
+
'date_created'
|
|
2411
|
+
],
|
|
2412
|
+
additionalProperties: false
|
|
2413
|
+
};
|
|
2414
|
+
export const InvoicePaymentAttemptSchema = {
|
|
2415
|
+
type: 'object',
|
|
2416
|
+
properties: {
|
|
2417
|
+
invoice_id: {
|
|
2418
|
+
type: 'string',
|
|
2419
|
+
description: 'Identifier of the invoice.',
|
|
2420
|
+
example: 'in_1234567890xCrwxghOTj1234'
|
|
2421
|
+
},
|
|
2422
|
+
number: {
|
|
2423
|
+
type: 'string',
|
|
2424
|
+
nullable: true,
|
|
2425
|
+
description: 'Invoice number. Null if the invoice has no number.',
|
|
2426
|
+
example: 'CF-0042'
|
|
2427
|
+
},
|
|
2428
|
+
amount: {
|
|
2429
|
+
type: 'number',
|
|
2430
|
+
format: 'float',
|
|
2431
|
+
description: 'Amount outstanding when the charge was attempted, in the smallest currency unit.',
|
|
2432
|
+
example: 4200
|
|
2433
|
+
},
|
|
2434
|
+
currency: {
|
|
2435
|
+
type: 'string',
|
|
2436
|
+
description: 'Currency of the invoice.',
|
|
2437
|
+
example: 'eur'
|
|
2438
|
+
},
|
|
2439
|
+
status: {
|
|
2440
|
+
type: 'string',
|
|
2441
|
+
description: 'Outcome for this invoice: `paid`, `processing` (accepted, not yet settled), `requires_action` (awaiting customer authentication), or `failed` (declined).',
|
|
2442
|
+
example: 'paid',
|
|
2443
|
+
enum: [
|
|
2444
|
+
'paid',
|
|
2445
|
+
'processing',
|
|
2446
|
+
'requires_action',
|
|
2447
|
+
'failed'
|
|
2448
|
+
]
|
|
2449
|
+
},
|
|
2450
|
+
client_secret: {
|
|
2451
|
+
type: 'string',
|
|
2452
|
+
nullable: true,
|
|
2453
|
+
description: 'Client secret used to complete customer authentication. Set only when `status` is `requires_action`.',
|
|
2454
|
+
example: 'pi_3MtwBwLkdIwHu7ix28a3tqPa_secret_YrKJUKribcBjcG8HVhfZluoGH'
|
|
2455
|
+
},
|
|
2456
|
+
failure_code: {
|
|
2457
|
+
type: 'string',
|
|
2458
|
+
nullable: true,
|
|
2459
|
+
description: 'Decline code. Set only when `status` is `failed`.',
|
|
2460
|
+
example: 'insufficient_funds'
|
|
2461
|
+
},
|
|
2462
|
+
failure_message: {
|
|
2463
|
+
type: 'string',
|
|
2464
|
+
nullable: true,
|
|
2465
|
+
description: 'Explanation of the decline, suitable for display. Set only when `status` is `failed`.',
|
|
2466
|
+
example: 'Your card has insufficient funds.'
|
|
2467
|
+
}
|
|
2468
|
+
},
|
|
2469
|
+
required: [
|
|
2470
|
+
'invoice_id',
|
|
2471
|
+
'number',
|
|
2472
|
+
'amount',
|
|
2473
|
+
'currency',
|
|
2474
|
+
'status',
|
|
2475
|
+
'client_secret',
|
|
2476
|
+
'failure_code',
|
|
2477
|
+
'failure_message'
|
|
2478
|
+
],
|
|
2479
|
+
additionalProperties: false
|
|
2480
|
+
};
|
|
2481
|
+
export const InvoicePaymentResultSchema = {
|
|
2482
|
+
type: 'object',
|
|
2483
|
+
properties: {
|
|
2484
|
+
code: {
|
|
2485
|
+
type: 'string',
|
|
2486
|
+
description: 'Overall outcome: `paid` (nothing outstanding), `processing` (all accepted, not yet settled), `action_required` (one or more await customer authentication), `partially_paid`, `failed`, `nothing_due`, or `bank_transfer_due` (the organization pays by bank transfer; nothing was charged).',
|
|
2487
|
+
example: 'partially_paid',
|
|
2488
|
+
enum: [
|
|
2489
|
+
'paid',
|
|
2490
|
+
'processing',
|
|
2491
|
+
'action_required',
|
|
2492
|
+
'partially_paid',
|
|
2493
|
+
'failed',
|
|
2494
|
+
'nothing_due',
|
|
2495
|
+
'bank_transfer_due'
|
|
2496
|
+
]
|
|
2497
|
+
},
|
|
2498
|
+
message: {
|
|
2499
|
+
type: 'string',
|
|
2500
|
+
description: 'Summary of the outcome, suitable for display.',
|
|
2501
|
+
example: '1 of 2 open invoices was paid. Invoice CF-0043 was declined: Your card has insufficient funds.'
|
|
2502
|
+
},
|
|
2503
|
+
results: {
|
|
2504
|
+
type: 'array',
|
|
2505
|
+
items: {
|
|
2506
|
+
type: 'object',
|
|
2507
|
+
properties: {
|
|
2508
|
+
invoice_id: {
|
|
2509
|
+
type: 'string',
|
|
2510
|
+
description: 'Identifier of the invoice.',
|
|
2511
|
+
example: 'in_1234567890xCrwxghOTj1234'
|
|
2512
|
+
},
|
|
2513
|
+
number: {
|
|
2514
|
+
type: 'string',
|
|
2515
|
+
description: 'Invoice number. Null if the invoice has no number.',
|
|
2516
|
+
example: 'CF-0042'
|
|
2517
|
+
},
|
|
2518
|
+
amount: {
|
|
2519
|
+
type: 'number',
|
|
2520
|
+
format: 'float',
|
|
2521
|
+
description: 'Amount outstanding when the charge was attempted, in the smallest currency unit.',
|
|
2522
|
+
example: 4200
|
|
2523
|
+
},
|
|
2524
|
+
currency: {
|
|
2525
|
+
type: 'string',
|
|
2526
|
+
description: 'Currency of the invoice.',
|
|
2527
|
+
example: 'eur'
|
|
2528
|
+
},
|
|
2529
|
+
status: {
|
|
2530
|
+
type: 'string',
|
|
2531
|
+
description: 'Outcome for this invoice: `paid`, `processing` (accepted, not yet settled), `requires_action` (awaiting customer authentication), or `failed` (declined).',
|
|
2532
|
+
example: 'paid',
|
|
2533
|
+
enum: [
|
|
2534
|
+
'paid',
|
|
2535
|
+
'processing',
|
|
2536
|
+
'requires_action',
|
|
2537
|
+
'failed'
|
|
2538
|
+
]
|
|
2539
|
+
},
|
|
2540
|
+
client_secret: {
|
|
2541
|
+
type: 'string',
|
|
2542
|
+
description: 'Client secret used to complete customer authentication. Set only when `status` is `requires_action`.',
|
|
2543
|
+
example: 'pi_3MtwBwLkdIwHu7ix28a3tqPa_secret_YrKJUKribcBjcG8HVhfZluoGH'
|
|
2544
|
+
},
|
|
2545
|
+
failure_code: {
|
|
2546
|
+
type: 'string',
|
|
2547
|
+
description: 'Decline code. Set only when `status` is `failed`.',
|
|
2548
|
+
example: 'insufficient_funds'
|
|
2549
|
+
},
|
|
2550
|
+
failure_message: {
|
|
2551
|
+
type: 'string',
|
|
2552
|
+
description: 'Explanation of the decline, suitable for display. Set only when `status` is `failed`.',
|
|
2553
|
+
example: 'Your card has insufficient funds.'
|
|
2554
|
+
}
|
|
2555
|
+
},
|
|
2556
|
+
required: [
|
|
2557
|
+
'invoice_id',
|
|
2558
|
+
'number',
|
|
2559
|
+
'amount',
|
|
2560
|
+
'currency',
|
|
2561
|
+
'status',
|
|
2562
|
+
'client_secret',
|
|
2563
|
+
'failure_code',
|
|
2564
|
+
'failure_message'
|
|
2565
|
+
],
|
|
2566
|
+
additionalProperties: false
|
|
2567
|
+
},
|
|
2568
|
+
description: 'One entry per invoice charged, oldest first.'
|
|
732
2569
|
}
|
|
733
2570
|
},
|
|
734
|
-
required: [
|
|
2571
|
+
required: [
|
|
2572
|
+
'code',
|
|
2573
|
+
'message',
|
|
2574
|
+
'results'
|
|
2575
|
+
],
|
|
735
2576
|
additionalProperties: false
|
|
736
2577
|
};
|
|
737
2578
|
export const InvoiceSchema = {
|
|
@@ -783,7 +2624,11 @@ export const InvoiceSchema = {
|
|
|
783
2624
|
type: 'string'
|
|
784
2625
|
}
|
|
785
2626
|
},
|
|
786
|
-
required: [
|
|
2627
|
+
required: [
|
|
2628
|
+
'created',
|
|
2629
|
+
'period_start',
|
|
2630
|
+
'period_end'
|
|
2631
|
+
],
|
|
787
2632
|
additionalProperties: false
|
|
788
2633
|
};
|
|
789
2634
|
export const MarketplaceListingFilesSchema = {
|
|
@@ -792,18 +2637,12 @@ export const MarketplaceListingFilesSchema = {
|
|
|
792
2637
|
chartYaml: {
|
|
793
2638
|
type: 'string',
|
|
794
2639
|
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`
|
|
2640
|
+
example: 'apiVersion: v2\nname: nginx-ingress\nversion: 1.18.2-cfke.45\nappVersion: 1.9.4'
|
|
799
2641
|
},
|
|
800
2642
|
valuesYaml: {
|
|
801
2643
|
type: 'string',
|
|
802
2644
|
description: 'Raw values.yaml content from the Helm chart',
|
|
803
|
-
example:
|
|
804
|
-
image:
|
|
805
|
-
repository: nginx
|
|
806
|
-
tag: latest`
|
|
2645
|
+
example: 'replicaCount: 1\nimage:\n repository: nginx\n tag: latest'
|
|
807
2646
|
},
|
|
808
2647
|
valuesSchemaJson: {
|
|
809
2648
|
type: 'string',
|
|
@@ -880,20 +2719,31 @@ export const MarketplaceListingSchema = {
|
|
|
880
2719
|
type: 'string'
|
|
881
2720
|
},
|
|
882
2721
|
description: 'Chart keywords',
|
|
883
|
-
example: [
|
|
2722
|
+
example: [
|
|
2723
|
+
'ingress',
|
|
2724
|
+
'nginx',
|
|
2725
|
+
'load-balancer'
|
|
2726
|
+
]
|
|
884
2727
|
},
|
|
885
2728
|
home: {
|
|
886
2729
|
type: 'string',
|
|
887
2730
|
description: 'Chart home URL',
|
|
888
2731
|
example: 'https://kubernetes.github.io/ingress-nginx/'
|
|
889
2732
|
},
|
|
2733
|
+
icon: {
|
|
2734
|
+
type: 'string',
|
|
2735
|
+
description: 'A URL to an SVG or PNG image to be used as an icon',
|
|
2736
|
+
example: 'https://cloudfleet.ai/images/marketplace/icons/ingress-nginx.png'
|
|
2737
|
+
},
|
|
890
2738
|
sources: {
|
|
891
2739
|
type: 'array',
|
|
892
2740
|
items: {
|
|
893
2741
|
type: 'string'
|
|
894
2742
|
},
|
|
895
2743
|
description: 'Chart source URLs',
|
|
896
|
-
example: [
|
|
2744
|
+
example: [
|
|
2745
|
+
'https://github.com/kubernetes/ingress-nginx'
|
|
2746
|
+
]
|
|
897
2747
|
},
|
|
898
2748
|
maintainers: {
|
|
899
2749
|
type: 'array',
|
|
@@ -911,23 +2761,42 @@ export const MarketplaceListingSchema = {
|
|
|
911
2761
|
example: 'support@nginx.org'
|
|
912
2762
|
}
|
|
913
2763
|
},
|
|
914
|
-
required: [
|
|
2764
|
+
required: [
|
|
2765
|
+
'name'
|
|
2766
|
+
],
|
|
915
2767
|
additionalProperties: false
|
|
916
2768
|
},
|
|
917
2769
|
description: 'Chart maintainers'
|
|
918
2770
|
}
|
|
919
2771
|
},
|
|
920
|
-
required: [
|
|
2772
|
+
required: [
|
|
2773
|
+
'name',
|
|
2774
|
+
'version'
|
|
2775
|
+
],
|
|
921
2776
|
additionalProperties: false,
|
|
922
2777
|
description: 'Chart metadata'
|
|
923
2778
|
}
|
|
924
2779
|
},
|
|
925
|
-
required: [
|
|
2780
|
+
required: [
|
|
2781
|
+
'name',
|
|
2782
|
+
'versions',
|
|
2783
|
+
'version_channels',
|
|
2784
|
+
'latestVersion'
|
|
2785
|
+
],
|
|
926
2786
|
additionalProperties: false
|
|
927
2787
|
};
|
|
928
2788
|
export const OrganizationCreateInputSchema = {
|
|
929
2789
|
type: 'object',
|
|
930
2790
|
properties: {
|
|
2791
|
+
type: {
|
|
2792
|
+
type: 'string',
|
|
2793
|
+
description: 'Type of the organization. `business` for legal entities, `personal` for individuals.',
|
|
2794
|
+
example: 'business',
|
|
2795
|
+
enum: [
|
|
2796
|
+
'business',
|
|
2797
|
+
'personal'
|
|
2798
|
+
]
|
|
2799
|
+
},
|
|
931
2800
|
email: {
|
|
932
2801
|
type: 'string',
|
|
933
2802
|
format: 'email',
|
|
@@ -936,11 +2805,13 @@ export const OrganizationCreateInputSchema = {
|
|
|
936
2805
|
},
|
|
937
2806
|
first_name: {
|
|
938
2807
|
type: 'string',
|
|
2808
|
+
minLength: 1,
|
|
939
2809
|
description: 'First name of the billing contact person.',
|
|
940
2810
|
example: 'John'
|
|
941
2811
|
},
|
|
942
2812
|
last_name: {
|
|
943
2813
|
type: 'string',
|
|
2814
|
+
minLength: 1,
|
|
944
2815
|
description: 'Last name of the billing contact person.',
|
|
945
2816
|
example: 'Doe'
|
|
946
2817
|
},
|
|
@@ -958,7 +2829,28 @@ export const OrganizationCreateInputSchema = {
|
|
|
958
2829
|
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
2830
|
}
|
|
960
2831
|
},
|
|
961
|
-
required: [
|
|
2832
|
+
required: [
|
|
2833
|
+
'type',
|
|
2834
|
+
'email',
|
|
2835
|
+
'first_name',
|
|
2836
|
+
'last_name',
|
|
2837
|
+
'company_name',
|
|
2838
|
+
'password'
|
|
2839
|
+
],
|
|
2840
|
+
additionalProperties: false
|
|
2841
|
+
};
|
|
2842
|
+
export const OrganizationCreateOutputSchema = {
|
|
2843
|
+
type: 'object',
|
|
2844
|
+
properties: {
|
|
2845
|
+
id: {
|
|
2846
|
+
type: 'string',
|
|
2847
|
+
description: 'Unique identifier of the newly created organization. Generated by the API and safe to use for client-side tracking immediately.',
|
|
2848
|
+
example: 'organization-id'
|
|
2849
|
+
}
|
|
2850
|
+
},
|
|
2851
|
+
required: [
|
|
2852
|
+
'id'
|
|
2853
|
+
],
|
|
962
2854
|
additionalProperties: false
|
|
963
2855
|
};
|
|
964
2856
|
export const OrganizationSchema = {
|
|
@@ -977,6 +2869,15 @@ export const OrganizationSchema = {
|
|
|
977
2869
|
description: 'Name of the legal entity. This name will be used in invoices. Use your first and last name for individual accounts.',
|
|
978
2870
|
example: 'ACME Corp.'
|
|
979
2871
|
},
|
|
2872
|
+
type: {
|
|
2873
|
+
type: 'string',
|
|
2874
|
+
description: 'Type of the organization. `business` for legal entities, `personal` for individuals.',
|
|
2875
|
+
example: 'business',
|
|
2876
|
+
enum: [
|
|
2877
|
+
'business',
|
|
2878
|
+
'personal'
|
|
2879
|
+
]
|
|
2880
|
+
},
|
|
980
2881
|
date_created: {
|
|
981
2882
|
type: 'string',
|
|
982
2883
|
format: 'date-time',
|
|
@@ -1008,6 +2909,17 @@ export const OrganizationSchema = {
|
|
|
1008
2909
|
description: 'Available number of Pro clusters that can be created.',
|
|
1009
2910
|
example: 999
|
|
1010
2911
|
},
|
|
2912
|
+
enterprise_clusters_max: {
|
|
2913
|
+
type: 'integer',
|
|
2914
|
+
minimum: 0,
|
|
2915
|
+
description: 'Maximum number of Enterprise clusters that can be created.',
|
|
2916
|
+
example: 999
|
|
2917
|
+
},
|
|
2918
|
+
enterprise_clusters_available: {
|
|
2919
|
+
type: 'integer',
|
|
2920
|
+
description: 'Available number of Enterprise clusters that can be created.',
|
|
2921
|
+
example: 999
|
|
2922
|
+
},
|
|
1011
2923
|
fleets_max: {
|
|
1012
2924
|
type: 'integer',
|
|
1013
2925
|
minimum: 0,
|
|
@@ -1027,7 +2939,7 @@ export const OrganizationSchema = {
|
|
|
1027
2939
|
type: 'array',
|
|
1028
2940
|
items: {
|
|
1029
2941
|
type: 'string',
|
|
1030
|
-
example: 'northamerica-central-
|
|
2942
|
+
example: 'northamerica-central-1a'
|
|
1031
2943
|
},
|
|
1032
2944
|
minItems: 1,
|
|
1033
2945
|
description: 'List of Cloudfleet control plane regions available for the organization.'
|
|
@@ -1048,36 +2960,66 @@ export const OrganizationSchema = {
|
|
|
1048
2960
|
example: '1.33.x (Always latest 1.33 patch version)'
|
|
1049
2961
|
}
|
|
1050
2962
|
},
|
|
1051
|
-
required: [
|
|
2963
|
+
required: [
|
|
2964
|
+
'id',
|
|
2965
|
+
'label'
|
|
2966
|
+
],
|
|
1052
2967
|
additionalProperties: false
|
|
1053
2968
|
},
|
|
1054
2969
|
minItems: 1,
|
|
1055
2970
|
description: 'List of CFKE control plane versions available for the organization.'
|
|
1056
2971
|
},
|
|
1057
|
-
|
|
1058
|
-
type: 'integer',
|
|
1059
|
-
minimum: 0,
|
|
1060
|
-
description: 'User-level maximum number of tokens Cloudfleet Copilot can process per hour.',
|
|
1061
|
-
example: 42000
|
|
1062
|
-
},
|
|
1063
|
-
copilot_organization_hourly_tokens: {
|
|
2972
|
+
cfcr_storage_gb: {
|
|
1064
2973
|
type: 'integer',
|
|
1065
|
-
minimum:
|
|
1066
|
-
description: 'Organization-level maximum
|
|
1067
|
-
example:
|
|
2974
|
+
minimum: -1,
|
|
2975
|
+
description: 'Organization-level maximum CFCR storage volume in GB. -1 means no limit.',
|
|
2976
|
+
example: 500
|
|
1068
2977
|
}
|
|
1069
2978
|
},
|
|
1070
|
-
required: [
|
|
2979
|
+
required: [
|
|
2980
|
+
'basic_clusters_max',
|
|
2981
|
+
'basic_clusters_available',
|
|
2982
|
+
'pro_clusters_max',
|
|
2983
|
+
'pro_clusters_available',
|
|
2984
|
+
'enterprise_clusters_max',
|
|
2985
|
+
'enterprise_clusters_available',
|
|
2986
|
+
'fleets_max',
|
|
2987
|
+
'cluster_tiers',
|
|
2988
|
+
'regions',
|
|
2989
|
+
'versions',
|
|
2990
|
+
'cfcr_storage_gb'
|
|
2991
|
+
],
|
|
1071
2992
|
additionalProperties: false,
|
|
1072
2993
|
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
2994
|
},
|
|
1074
2995
|
status: {
|
|
1075
2996
|
type: 'string',
|
|
1076
2997
|
description: 'Status of the organization. Can be `active` or `closed`, or `suspended`.',
|
|
1077
|
-
enum: [
|
|
2998
|
+
enum: [
|
|
2999
|
+
'active',
|
|
3000
|
+
'closed',
|
|
3001
|
+
'suspended'
|
|
3002
|
+
]
|
|
3003
|
+
},
|
|
3004
|
+
verification: {
|
|
3005
|
+
type: 'string',
|
|
3006
|
+
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.',
|
|
3007
|
+
example: 'verified',
|
|
3008
|
+
enum: [
|
|
3009
|
+
'none',
|
|
3010
|
+
'submitted',
|
|
3011
|
+
'verified'
|
|
3012
|
+
]
|
|
1078
3013
|
}
|
|
1079
3014
|
},
|
|
1080
|
-
required: [
|
|
3015
|
+
required: [
|
|
3016
|
+
'id',
|
|
3017
|
+
'type',
|
|
3018
|
+
'date_created',
|
|
3019
|
+
'quota',
|
|
3020
|
+
'status',
|
|
3021
|
+
'verification'
|
|
3022
|
+
],
|
|
1081
3023
|
additionalProperties: false
|
|
1082
3024
|
};
|
|
1083
3025
|
export const PaymentMethodSchema = {
|
|
@@ -1085,26 +3027,23 @@ export const PaymentMethodSchema = {
|
|
|
1085
3027
|
properties: {
|
|
1086
3028
|
id: {
|
|
1087
3029
|
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
|
|
3030
|
+
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.',
|
|
3031
|
+
example: 'pm_1MtwBwLkdIwHu7ix28a3tqPa'
|
|
1096
3032
|
},
|
|
1097
3033
|
type: {
|
|
1098
3034
|
type: 'string',
|
|
1099
|
-
|
|
1100
|
-
description: 'Payment method type type. Only `card` payments supported at the moment.',
|
|
3035
|
+
description: 'Payment method type. `card`, `sepa_debit` for SEPA Direct Debit (business accounts only), or `bank_transfer` for paying invoices by bank transfer.',
|
|
1101
3036
|
example: 'card',
|
|
1102
|
-
enum: [
|
|
3037
|
+
enum: [
|
|
3038
|
+
'card',
|
|
3039
|
+
'sepa_debit',
|
|
3040
|
+
'bank_transfer'
|
|
3041
|
+
]
|
|
1103
3042
|
},
|
|
1104
3043
|
last4: {
|
|
1105
3044
|
type: 'string',
|
|
1106
3045
|
nullable: true,
|
|
1107
|
-
description: 'Last 4 digits of the payment card number.',
|
|
3046
|
+
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
3047
|
example: '4242'
|
|
1109
3048
|
},
|
|
1110
3049
|
exp_month: {
|
|
@@ -1112,25 +3051,57 @@ export const PaymentMethodSchema = {
|
|
|
1112
3051
|
minimum: 1,
|
|
1113
3052
|
maximum: 12,
|
|
1114
3053
|
nullable: true,
|
|
1115
|
-
description:
|
|
1116
|
-
example:
|
|
3054
|
+
description: 'Two-digit number representing the card\'s expiration month. Null for SEPA Direct Debit and bank transfer.',
|
|
3055
|
+
example: 12
|
|
1117
3056
|
},
|
|
1118
3057
|
exp_year: {
|
|
1119
3058
|
type: 'integer',
|
|
1120
|
-
minimum: 2024,
|
|
1121
3059
|
nullable: true,
|
|
1122
|
-
description:
|
|
1123
|
-
example:
|
|
3060
|
+
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.',
|
|
3061
|
+
example: 2028
|
|
1124
3062
|
},
|
|
1125
3063
|
brand: {
|
|
1126
3064
|
type: 'string',
|
|
1127
3065
|
nullable: true,
|
|
1128
|
-
description: 'Payment card brand
|
|
1129
|
-
example: 'visa'
|
|
1130
|
-
|
|
3066
|
+
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.',
|
|
3067
|
+
example: 'visa'
|
|
3068
|
+
},
|
|
3069
|
+
iban: {
|
|
3070
|
+
type: 'string',
|
|
3071
|
+
nullable: true,
|
|
3072
|
+
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.',
|
|
3073
|
+
example: 'DE11243015658023127510'
|
|
3074
|
+
},
|
|
3075
|
+
bic: {
|
|
3076
|
+
type: 'string',
|
|
3077
|
+
nullable: true,
|
|
3078
|
+
description: 'BIC/SWIFT of the destination bank for bank transfers. Set only for `bank_transfer`; null otherwise.',
|
|
3079
|
+
example: 'SOGEDEFFXXX'
|
|
3080
|
+
},
|
|
3081
|
+
account_holder_name: {
|
|
3082
|
+
type: 'string',
|
|
3083
|
+
nullable: true,
|
|
3084
|
+
description: 'Account holder name of the destination bank account for bank transfers. Set only for `bank_transfer`; null otherwise.',
|
|
3085
|
+
example: 'Cloudfleet GmbH'
|
|
3086
|
+
},
|
|
3087
|
+
is_default: {
|
|
3088
|
+
type: 'boolean',
|
|
3089
|
+
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).',
|
|
3090
|
+
example: true
|
|
1131
3091
|
}
|
|
1132
3092
|
},
|
|
1133
|
-
required: [
|
|
3093
|
+
required: [
|
|
3094
|
+
'id',
|
|
3095
|
+
'type',
|
|
3096
|
+
'last4',
|
|
3097
|
+
'exp_month',
|
|
3098
|
+
'exp_year',
|
|
3099
|
+
'brand',
|
|
3100
|
+
'iban',
|
|
3101
|
+
'bic',
|
|
3102
|
+
'account_holder_name',
|
|
3103
|
+
'is_default'
|
|
3104
|
+
],
|
|
1134
3105
|
additionalProperties: false
|
|
1135
3106
|
};
|
|
1136
3107
|
export const PlatformQuotaSchema = {
|
|
@@ -1158,6 +3129,17 @@ export const PlatformQuotaSchema = {
|
|
|
1158
3129
|
description: 'Available number of Pro clusters that can be created.',
|
|
1159
3130
|
example: 999
|
|
1160
3131
|
},
|
|
3132
|
+
enterprise_clusters_max: {
|
|
3133
|
+
type: 'integer',
|
|
3134
|
+
minimum: 0,
|
|
3135
|
+
description: 'Maximum number of Enterprise clusters that can be created.',
|
|
3136
|
+
example: 999
|
|
3137
|
+
},
|
|
3138
|
+
enterprise_clusters_available: {
|
|
3139
|
+
type: 'integer',
|
|
3140
|
+
description: 'Available number of Enterprise clusters that can be created.',
|
|
3141
|
+
example: 999
|
|
3142
|
+
},
|
|
1161
3143
|
fleets_max: {
|
|
1162
3144
|
type: 'integer',
|
|
1163
3145
|
minimum: 0,
|
|
@@ -1177,7 +3159,7 @@ export const PlatformQuotaSchema = {
|
|
|
1177
3159
|
type: 'array',
|
|
1178
3160
|
items: {
|
|
1179
3161
|
type: 'string',
|
|
1180
|
-
example: 'northamerica-central-
|
|
3162
|
+
example: 'northamerica-central-1a'
|
|
1181
3163
|
},
|
|
1182
3164
|
minItems: 1,
|
|
1183
3165
|
description: 'List of Cloudfleet control plane regions available for the organization.'
|
|
@@ -1198,26 +3180,35 @@ export const PlatformQuotaSchema = {
|
|
|
1198
3180
|
example: '1.33.x (Always latest 1.33 patch version)'
|
|
1199
3181
|
}
|
|
1200
3182
|
},
|
|
1201
|
-
required: [
|
|
3183
|
+
required: [
|
|
3184
|
+
'id',
|
|
3185
|
+
'label'
|
|
3186
|
+
],
|
|
1202
3187
|
additionalProperties: false
|
|
1203
3188
|
},
|
|
1204
3189
|
minItems: 1,
|
|
1205
3190
|
description: 'List of CFKE control plane versions available for the organization.'
|
|
1206
3191
|
},
|
|
1207
|
-
|
|
1208
|
-
type: 'integer',
|
|
1209
|
-
minimum: 0,
|
|
1210
|
-
description: 'User-level maximum number of tokens Cloudfleet Copilot can process per hour.',
|
|
1211
|
-
example: 42000
|
|
1212
|
-
},
|
|
1213
|
-
copilot_organization_hourly_tokens: {
|
|
3192
|
+
cfcr_storage_gb: {
|
|
1214
3193
|
type: 'integer',
|
|
1215
|
-
minimum:
|
|
1216
|
-
description: 'Organization-level maximum
|
|
1217
|
-
example:
|
|
3194
|
+
minimum: -1,
|
|
3195
|
+
description: 'Organization-level maximum CFCR storage volume in GB. -1 means no limit.',
|
|
3196
|
+
example: 500
|
|
1218
3197
|
}
|
|
1219
3198
|
},
|
|
1220
|
-
required: [
|
|
3199
|
+
required: [
|
|
3200
|
+
'basic_clusters_max',
|
|
3201
|
+
'basic_clusters_available',
|
|
3202
|
+
'pro_clusters_max',
|
|
3203
|
+
'pro_clusters_available',
|
|
3204
|
+
'enterprise_clusters_max',
|
|
3205
|
+
'enterprise_clusters_available',
|
|
3206
|
+
'fleets_max',
|
|
3207
|
+
'cluster_tiers',
|
|
3208
|
+
'regions',
|
|
3209
|
+
'versions',
|
|
3210
|
+
'cfcr_storage_gb'
|
|
3211
|
+
],
|
|
1221
3212
|
additionalProperties: false
|
|
1222
3213
|
};
|
|
1223
3214
|
export const RegistryRepositorySchema = {
|
|
@@ -1236,10 +3227,14 @@ export const RegistryRepositorySchema = {
|
|
|
1236
3227
|
uri: {
|
|
1237
3228
|
type: 'string',
|
|
1238
3229
|
description: 'Full URI of the repository.',
|
|
1239
|
-
example: 'ssds123e-6651-4e5d-9c04-079f6532989b.northamerica.registry.cloudfleet.dev/
|
|
3230
|
+
example: 'ssds123e-6651-4e5d-9c04-079f6532989b.northamerica.registry.cloudfleet.dev/my-app'
|
|
1240
3231
|
}
|
|
1241
3232
|
},
|
|
1242
|
-
required: [
|
|
3233
|
+
required: [
|
|
3234
|
+
'name',
|
|
3235
|
+
'region',
|
|
3236
|
+
'uri'
|
|
3237
|
+
],
|
|
1243
3238
|
additionalProperties: false
|
|
1244
3239
|
};
|
|
1245
3240
|
export const RegistryRepositoryWithTagsSchema = {
|
|
@@ -1258,7 +3253,7 @@ export const RegistryRepositoryWithTagsSchema = {
|
|
|
1258
3253
|
uri: {
|
|
1259
3254
|
type: 'string',
|
|
1260
3255
|
description: 'Full URI of the repository.',
|
|
1261
|
-
example: 'ssds123e-6651-4e5d-9c04-079f6532989b.northamerica.registry.cloudfleet.dev/
|
|
3256
|
+
example: 'ssds123e-6651-4e5d-9c04-079f6532989b.northamerica.registry.cloudfleet.dev/my-app'
|
|
1262
3257
|
},
|
|
1263
3258
|
tags: {
|
|
1264
3259
|
type: 'array',
|
|
@@ -1280,9 +3275,23 @@ export const RegistryRepositoryWithTagsSchema = {
|
|
|
1280
3275
|
type: 'string',
|
|
1281
3276
|
description: 'Media type of the manifest.',
|
|
1282
3277
|
example: 'application/vnd.docker.distribution.manifest.v2+json'
|
|
3278
|
+
},
|
|
3279
|
+
platforms: {
|
|
3280
|
+
type: 'array',
|
|
3281
|
+
items: {
|
|
3282
|
+
type: 'string'
|
|
3283
|
+
},
|
|
3284
|
+
description: 'Array of platform strings for multi-arch images (e.g., linux/amd64, linux/arm64).',
|
|
3285
|
+
example: [
|
|
3286
|
+
'linux/amd64',
|
|
3287
|
+
'linux/arm64'
|
|
3288
|
+
]
|
|
1283
3289
|
}
|
|
1284
3290
|
},
|
|
1285
|
-
required: [
|
|
3291
|
+
required: [
|
|
3292
|
+
'name',
|
|
3293
|
+
'size'
|
|
3294
|
+
],
|
|
1286
3295
|
additionalProperties: false
|
|
1287
3296
|
},
|
|
1288
3297
|
description: 'Array of tags in the repository.'
|
|
@@ -1294,7 +3303,13 @@ export const RegistryRepositoryWithTagsSchema = {
|
|
|
1294
3303
|
example: 987654321
|
|
1295
3304
|
}
|
|
1296
3305
|
},
|
|
1297
|
-
required: [
|
|
3306
|
+
required: [
|
|
3307
|
+
'name',
|
|
3308
|
+
'region',
|
|
3309
|
+
'uri',
|
|
3310
|
+
'tags',
|
|
3311
|
+
'totalSize'
|
|
3312
|
+
],
|
|
1298
3313
|
additionalProperties: false
|
|
1299
3314
|
};
|
|
1300
3315
|
export const RegistryTagSchema = {
|
|
@@ -1305,6 +3320,11 @@ export const RegistryTagSchema = {
|
|
|
1305
3320
|
description: 'Tag name.',
|
|
1306
3321
|
example: 'latest'
|
|
1307
3322
|
},
|
|
3323
|
+
digest: {
|
|
3324
|
+
type: 'string',
|
|
3325
|
+
description: 'Manifest digest for pulling by digest.',
|
|
3326
|
+
example: 'sha256:abcd1234ef567890abcd1234ef567890abcd1234ef567890abcd1234ef567890'
|
|
3327
|
+
},
|
|
1308
3328
|
mediaType: {
|
|
1309
3329
|
type: 'string',
|
|
1310
3330
|
description: 'Media type of the manifest.',
|
|
@@ -1320,7 +3340,9 @@ export const RegistryTagSchema = {
|
|
|
1320
3340
|
example: 1234
|
|
1321
3341
|
}
|
|
1322
3342
|
},
|
|
1323
|
-
required: [
|
|
3343
|
+
required: [
|
|
3344
|
+
'size'
|
|
3345
|
+
],
|
|
1324
3346
|
additionalProperties: false,
|
|
1325
3347
|
description: 'Manifest config metadata.'
|
|
1326
3348
|
},
|
|
@@ -1329,6 +3351,11 @@ export const RegistryTagSchema = {
|
|
|
1329
3351
|
items: {
|
|
1330
3352
|
type: 'object',
|
|
1331
3353
|
properties: {
|
|
3354
|
+
digest: {
|
|
3355
|
+
type: 'string',
|
|
3356
|
+
description: 'Digest of the layer.',
|
|
3357
|
+
example: 'sha256:abcd1234ef567890abcd1234ef567890abcd1234ef567890abcd1234ef567890'
|
|
3358
|
+
},
|
|
1332
3359
|
size: {
|
|
1333
3360
|
type: 'number',
|
|
1334
3361
|
format: 'float',
|
|
@@ -1336,7 +3363,9 @@ export const RegistryTagSchema = {
|
|
|
1336
3363
|
example: 5678
|
|
1337
3364
|
}
|
|
1338
3365
|
},
|
|
1339
|
-
required: [
|
|
3366
|
+
required: [
|
|
3367
|
+
'size'
|
|
3368
|
+
],
|
|
1340
3369
|
additionalProperties: false
|
|
1341
3370
|
},
|
|
1342
3371
|
description: 'Array of layer metadata.'
|
|
@@ -1363,14 +3392,54 @@ export const RegistryTagSchema = {
|
|
|
1363
3392
|
type: 'string',
|
|
1364
3393
|
description: 'Operating system of the platform.',
|
|
1365
3394
|
example: 'linux'
|
|
3395
|
+
},
|
|
3396
|
+
variant: {
|
|
3397
|
+
type: 'string',
|
|
3398
|
+
description: 'Variant of the platform (e.g., v7, v8 for ARM).',
|
|
3399
|
+
example: 'v8'
|
|
1366
3400
|
}
|
|
1367
3401
|
},
|
|
1368
|
-
required: [
|
|
3402
|
+
required: [
|
|
3403
|
+
'architecture',
|
|
3404
|
+
'os'
|
|
3405
|
+
],
|
|
1369
3406
|
additionalProperties: false,
|
|
1370
3407
|
description: 'Platform information for the manifest.'
|
|
3408
|
+
},
|
|
3409
|
+
layers: {
|
|
3410
|
+
type: 'array',
|
|
3411
|
+
items: {
|
|
3412
|
+
type: 'object',
|
|
3413
|
+
properties: {
|
|
3414
|
+
digest: {
|
|
3415
|
+
type: 'string',
|
|
3416
|
+
description: 'Digest of the layer.',
|
|
3417
|
+
example: 'sha256:abcd1234ef567890abcd1234ef567890abcd1234ef567890abcd1234ef567890'
|
|
3418
|
+
},
|
|
3419
|
+
size: {
|
|
3420
|
+
type: 'number',
|
|
3421
|
+
format: 'float',
|
|
3422
|
+
description: 'Size of the layer in bytes.',
|
|
3423
|
+
example: 5678
|
|
3424
|
+
}
|
|
3425
|
+
},
|
|
3426
|
+
required: [
|
|
3427
|
+
'size'
|
|
3428
|
+
],
|
|
3429
|
+
additionalProperties: false
|
|
3430
|
+
},
|
|
3431
|
+
description: 'Layers for this platform.'
|
|
3432
|
+
},
|
|
3433
|
+
size: {
|
|
3434
|
+
type: 'number',
|
|
3435
|
+
format: 'float',
|
|
3436
|
+
description: 'Total size of this platform manifest in bytes.',
|
|
3437
|
+
example: 12345678
|
|
1371
3438
|
}
|
|
1372
3439
|
},
|
|
1373
|
-
required: [
|
|
3440
|
+
required: [
|
|
3441
|
+
'digest'
|
|
3442
|
+
],
|
|
1374
3443
|
additionalProperties: false
|
|
1375
3444
|
},
|
|
1376
3445
|
description: 'Array of manifests for multi-arch images.'
|
|
@@ -1397,7 +3466,423 @@ export const RegistryTagSchema = {
|
|
|
1397
3466
|
example: 'ssds123e-6651-4e5d-9c04-079f6532989b.northamerica.registry.cloudfleet.dev/my-app:latest'
|
|
1398
3467
|
}
|
|
1399
3468
|
},
|
|
1400
|
-
required: [
|
|
3469
|
+
required: [
|
|
3470
|
+
'name',
|
|
3471
|
+
'digest',
|
|
3472
|
+
'size',
|
|
3473
|
+
'region',
|
|
3474
|
+
'repository',
|
|
3475
|
+
'uri'
|
|
3476
|
+
],
|
|
3477
|
+
additionalProperties: false
|
|
3478
|
+
};
|
|
3479
|
+
export const RoadmapItemCreateInputSchema = {
|
|
3480
|
+
type: 'object',
|
|
3481
|
+
properties: {
|
|
3482
|
+
text: {
|
|
3483
|
+
type: 'string',
|
|
3484
|
+
maxLength: 500,
|
|
3485
|
+
minLength: 1,
|
|
3486
|
+
description: 'Your suggestion in one or two sentences. It is reviewed before it appears on the roadmap.',
|
|
3487
|
+
example: 'Support for ARM nodes on Hetzner.'
|
|
3488
|
+
}
|
|
3489
|
+
},
|
|
3490
|
+
required: [
|
|
3491
|
+
'text'
|
|
3492
|
+
],
|
|
3493
|
+
additionalProperties: false
|
|
3494
|
+
};
|
|
3495
|
+
export const RoadmapItemSchema = {
|
|
3496
|
+
type: 'object',
|
|
3497
|
+
properties: {
|
|
3498
|
+
id: {
|
|
3499
|
+
type: 'string',
|
|
3500
|
+
description: 'Unique identifier of the roadmap item (Mongo ObjectId).',
|
|
3501
|
+
example: '60c72b2f9f1b2c001f8e4d3a'
|
|
3502
|
+
},
|
|
3503
|
+
text: {
|
|
3504
|
+
type: 'string',
|
|
3505
|
+
description: 'Short description of the roadmap item.',
|
|
3506
|
+
example: 'Support for ARM nodes on Hetzner.'
|
|
3507
|
+
},
|
|
3508
|
+
vote: {
|
|
3509
|
+
type: 'integer',
|
|
3510
|
+
nullable: true,
|
|
3511
|
+
description: 'The caller\'s vote on this item: -1 (down), 1 (up), 2 (double up), or null if the caller has not voted.',
|
|
3512
|
+
example: 1,
|
|
3513
|
+
enum: [
|
|
3514
|
+
-1,
|
|
3515
|
+
1,
|
|
3516
|
+
2
|
|
3517
|
+
]
|
|
3518
|
+
}
|
|
3519
|
+
},
|
|
3520
|
+
required: [
|
|
3521
|
+
'id',
|
|
3522
|
+
'text',
|
|
3523
|
+
'vote'
|
|
3524
|
+
],
|
|
3525
|
+
additionalProperties: false
|
|
3526
|
+
};
|
|
3527
|
+
export const RoadmapVoteInputSchema = {
|
|
3528
|
+
type: 'object',
|
|
3529
|
+
properties: {
|
|
3530
|
+
value: {
|
|
3531
|
+
type: 'integer',
|
|
3532
|
+
description: 'Vote value: -1 (down), 1 (up), or 2 (double up).',
|
|
3533
|
+
example: 1,
|
|
3534
|
+
enum: [
|
|
3535
|
+
-1,
|
|
3536
|
+
1,
|
|
3537
|
+
2
|
|
3538
|
+
]
|
|
3539
|
+
}
|
|
3540
|
+
},
|
|
3541
|
+
required: [
|
|
3542
|
+
'value'
|
|
3543
|
+
],
|
|
3544
|
+
additionalProperties: false
|
|
3545
|
+
};
|
|
3546
|
+
export const TicketAttachmentSchema = {
|
|
3547
|
+
type: 'object',
|
|
3548
|
+
properties: {
|
|
3549
|
+
id: {
|
|
3550
|
+
type: 'string',
|
|
3551
|
+
description: 'Unique identifier of the attachment (Mongo ObjectId).',
|
|
3552
|
+
example: '60c72b2f9f1b2c001f8e4d3c'
|
|
3553
|
+
},
|
|
3554
|
+
filename: {
|
|
3555
|
+
type: 'string',
|
|
3556
|
+
description: 'Original filename as uploaded.',
|
|
3557
|
+
example: 'debug.log'
|
|
3558
|
+
},
|
|
3559
|
+
content_type: {
|
|
3560
|
+
type: 'string',
|
|
3561
|
+
description: 'MIME content type of the attachment.',
|
|
3562
|
+
example: 'text/plain'
|
|
3563
|
+
},
|
|
3564
|
+
size: {
|
|
3565
|
+
type: 'integer',
|
|
3566
|
+
description: 'Size of the attachment in bytes.',
|
|
3567
|
+
example: 12345
|
|
3568
|
+
}
|
|
3569
|
+
},
|
|
3570
|
+
required: [
|
|
3571
|
+
'id',
|
|
3572
|
+
'filename',
|
|
3573
|
+
'content_type',
|
|
3574
|
+
'size'
|
|
3575
|
+
],
|
|
3576
|
+
additionalProperties: false
|
|
3577
|
+
};
|
|
3578
|
+
export const TicketCreateInputSchema = {
|
|
3579
|
+
type: 'object',
|
|
3580
|
+
properties: {
|
|
3581
|
+
category: {
|
|
3582
|
+
type: 'string',
|
|
3583
|
+
description: 'Ticket category. Drives auto-assignment and may carry a subcategory in `properties`.',
|
|
3584
|
+
example: 'technical',
|
|
3585
|
+
enum: [
|
|
3586
|
+
'billing',
|
|
3587
|
+
'technical',
|
|
3588
|
+
'general'
|
|
3589
|
+
]
|
|
3590
|
+
},
|
|
3591
|
+
body: {
|
|
3592
|
+
type: 'string',
|
|
3593
|
+
maxLength: 50000,
|
|
3594
|
+
minLength: 1,
|
|
3595
|
+
pattern: '\\S',
|
|
3596
|
+
description: 'Initial message body in markdown. There is no separate subject — the first message body is the description.',
|
|
3597
|
+
example: 'My cluster cannot reach the registry. Logs attached.'
|
|
3598
|
+
},
|
|
3599
|
+
properties: {
|
|
3600
|
+
type: 'object',
|
|
3601
|
+
additionalProperties: true,
|
|
3602
|
+
description: 'Free-form key/value bag set by the UI (e.g. `subcategory`, `cluster_id`, `cluster_name`, `region`).',
|
|
3603
|
+
example: {
|
|
3604
|
+
subcategory: 'cluster-question',
|
|
3605
|
+
cluster_id: '60c72b2f9f1b2c001f8e4d3a'
|
|
3606
|
+
}
|
|
3607
|
+
},
|
|
3608
|
+
grant_support_access: {
|
|
3609
|
+
type: 'boolean',
|
|
3610
|
+
description: 'Grant Cloudfleet support staff access to the organization\'s resources while the ticket is open. Access cannot be revoked; it ends when the ticket is closed.',
|
|
3611
|
+
example: true
|
|
3612
|
+
}
|
|
3613
|
+
},
|
|
3614
|
+
required: [
|
|
3615
|
+
'category',
|
|
3616
|
+
'body'
|
|
3617
|
+
],
|
|
3618
|
+
additionalProperties: false
|
|
3619
|
+
};
|
|
3620
|
+
export const TicketMessageInputSchema = {
|
|
3621
|
+
type: 'object',
|
|
3622
|
+
properties: {
|
|
3623
|
+
body: {
|
|
3624
|
+
type: 'string',
|
|
3625
|
+
maxLength: 50000,
|
|
3626
|
+
minLength: 1,
|
|
3627
|
+
pattern: '\\S',
|
|
3628
|
+
description: 'Reply body in markdown.',
|
|
3629
|
+
example: 'Thanks — that resolved it on my side.'
|
|
3630
|
+
}
|
|
3631
|
+
},
|
|
3632
|
+
required: [
|
|
3633
|
+
'body'
|
|
3634
|
+
],
|
|
3635
|
+
additionalProperties: false
|
|
3636
|
+
};
|
|
3637
|
+
export const TicketMessageSchema = {
|
|
3638
|
+
type: 'object',
|
|
3639
|
+
properties: {
|
|
3640
|
+
id: {
|
|
3641
|
+
type: 'string',
|
|
3642
|
+
description: 'Unique identifier of the message (Mongo ObjectId).',
|
|
3643
|
+
example: '60c72b2f9f1b2c001f8e4d3b'
|
|
3644
|
+
},
|
|
3645
|
+
type: {
|
|
3646
|
+
type: 'string',
|
|
3647
|
+
description: 'Message type. Internal notes are filtered out of customer-facing responses.',
|
|
3648
|
+
example: 'customer_reply',
|
|
3649
|
+
enum: [
|
|
3650
|
+
'customer_reply',
|
|
3651
|
+
'agent_reply'
|
|
3652
|
+
]
|
|
3653
|
+
},
|
|
3654
|
+
body: {
|
|
3655
|
+
type: 'string',
|
|
3656
|
+
description: 'Message body in markdown.',
|
|
3657
|
+
example: 'Thanks — that resolved it on my side.'
|
|
3658
|
+
},
|
|
3659
|
+
author_first_name: {
|
|
3660
|
+
type: 'string',
|
|
3661
|
+
nullable: true,
|
|
3662
|
+
description: 'First name of the author. Null when not provided.',
|
|
3663
|
+
example: 'Jane'
|
|
3664
|
+
},
|
|
3665
|
+
author_last_name: {
|
|
3666
|
+
type: 'string',
|
|
3667
|
+
nullable: true,
|
|
3668
|
+
description: 'Last name of the author. Null when not provided.',
|
|
3669
|
+
example: 'Doe'
|
|
3670
|
+
},
|
|
3671
|
+
attachments: {
|
|
3672
|
+
type: 'array',
|
|
3673
|
+
items: {
|
|
3674
|
+
type: 'object',
|
|
3675
|
+
properties: {
|
|
3676
|
+
id: {
|
|
3677
|
+
type: 'string',
|
|
3678
|
+
description: 'Unique identifier of the attachment (Mongo ObjectId).',
|
|
3679
|
+
example: '60c72b2f9f1b2c001f8e4d3c'
|
|
3680
|
+
},
|
|
3681
|
+
filename: {
|
|
3682
|
+
type: 'string',
|
|
3683
|
+
description: 'Original filename as uploaded.',
|
|
3684
|
+
example: 'debug.log'
|
|
3685
|
+
},
|
|
3686
|
+
content_type: {
|
|
3687
|
+
type: 'string',
|
|
3688
|
+
description: 'MIME content type of the attachment.',
|
|
3689
|
+
example: 'text/plain'
|
|
3690
|
+
},
|
|
3691
|
+
size: {
|
|
3692
|
+
type: 'integer',
|
|
3693
|
+
description: 'Size of the attachment in bytes.',
|
|
3694
|
+
example: 12345
|
|
3695
|
+
}
|
|
3696
|
+
},
|
|
3697
|
+
required: [
|
|
3698
|
+
'id',
|
|
3699
|
+
'filename',
|
|
3700
|
+
'content_type',
|
|
3701
|
+
'size'
|
|
3702
|
+
],
|
|
3703
|
+
additionalProperties: false
|
|
3704
|
+
},
|
|
3705
|
+
description: 'Attachments associated with this message.',
|
|
3706
|
+
example: []
|
|
3707
|
+
},
|
|
3708
|
+
date_created: {
|
|
3709
|
+
type: 'string',
|
|
3710
|
+
format: 'date-time',
|
|
3711
|
+
description: 'Creation date of the message. ISO 8601 UTC.',
|
|
3712
|
+
example: '2026-05-11T16:08:14.338Z'
|
|
3713
|
+
}
|
|
3714
|
+
},
|
|
3715
|
+
required: [
|
|
3716
|
+
'id',
|
|
3717
|
+
'type',
|
|
3718
|
+
'body',
|
|
3719
|
+
'date_created'
|
|
3720
|
+
],
|
|
3721
|
+
additionalProperties: false
|
|
3722
|
+
};
|
|
3723
|
+
export const TicketSchema = {
|
|
3724
|
+
type: 'object',
|
|
3725
|
+
properties: {
|
|
3726
|
+
id: {
|
|
3727
|
+
type: 'string',
|
|
3728
|
+
description: 'Unique identifier of the ticket (Mongo ObjectId).',
|
|
3729
|
+
example: '60c72b2f9f1b2c001f8e4d3a'
|
|
3730
|
+
},
|
|
3731
|
+
status: {
|
|
3732
|
+
type: 'string',
|
|
3733
|
+
description: 'Current state of the ticket.',
|
|
3734
|
+
example: 'waiting_on_us',
|
|
3735
|
+
enum: [
|
|
3736
|
+
'waiting_on_us',
|
|
3737
|
+
'waiting_on_user',
|
|
3738
|
+
'closed'
|
|
3739
|
+
]
|
|
3740
|
+
},
|
|
3741
|
+
category: {
|
|
3742
|
+
type: 'string',
|
|
3743
|
+
description: 'Ticket category.',
|
|
3744
|
+
example: 'technical',
|
|
3745
|
+
enum: [
|
|
3746
|
+
'billing',
|
|
3747
|
+
'technical',
|
|
3748
|
+
'general'
|
|
3749
|
+
]
|
|
3750
|
+
},
|
|
3751
|
+
summary: {
|
|
3752
|
+
type: 'string',
|
|
3753
|
+
description: 'First 128 characters of the initial message body, with markdown formatting and newlines stripped. Used for ticket list previews.',
|
|
3754
|
+
example: 'My cluster cannot reach the registry. Logs attached.'
|
|
3755
|
+
},
|
|
3756
|
+
support_access_granted: {
|
|
3757
|
+
type: 'boolean',
|
|
3758
|
+
description: 'Whether Cloudfleet support staff currently have access to the organization\'s resources. True once access is granted and until the ticket is closed.',
|
|
3759
|
+
example: true
|
|
3760
|
+
},
|
|
3761
|
+
support_access_granted_at: {
|
|
3762
|
+
type: 'string',
|
|
3763
|
+
format: 'date-time',
|
|
3764
|
+
nullable: true,
|
|
3765
|
+
description: 'When support access was granted. Null if it never was. Kept after the ticket is closed.',
|
|
3766
|
+
example: '2026-05-11T16:08:14.338Z'
|
|
3767
|
+
},
|
|
3768
|
+
closed_at: {
|
|
3769
|
+
type: 'string',
|
|
3770
|
+
format: 'date-time',
|
|
3771
|
+
nullable: true,
|
|
3772
|
+
description: 'Closure timestamp. Null while the ticket is open.',
|
|
3773
|
+
example: '2026-05-18T16:08:14.338Z'
|
|
3774
|
+
},
|
|
3775
|
+
date_created: {
|
|
3776
|
+
type: 'string',
|
|
3777
|
+
format: 'date-time',
|
|
3778
|
+
description: 'Creation date of the ticket. ISO 8601 UTC.',
|
|
3779
|
+
example: '2026-05-11T16:08:14.338Z'
|
|
3780
|
+
},
|
|
3781
|
+
date_updated: {
|
|
3782
|
+
type: 'string',
|
|
3783
|
+
format: 'date-time',
|
|
3784
|
+
description: 'Last update date of the ticket. ISO 8601 UTC.',
|
|
3785
|
+
example: '2026-05-11T16:08:14.338Z'
|
|
3786
|
+
},
|
|
3787
|
+
messages: {
|
|
3788
|
+
type: 'array',
|
|
3789
|
+
items: {
|
|
3790
|
+
type: 'object',
|
|
3791
|
+
properties: {
|
|
3792
|
+
id: {
|
|
3793
|
+
type: 'string',
|
|
3794
|
+
description: 'Unique identifier of the message (Mongo ObjectId).',
|
|
3795
|
+
example: '60c72b2f9f1b2c001f8e4d3b'
|
|
3796
|
+
},
|
|
3797
|
+
type: {
|
|
3798
|
+
type: 'string',
|
|
3799
|
+
description: 'Message type. Internal notes are filtered out of customer-facing responses.',
|
|
3800
|
+
example: 'customer_reply',
|
|
3801
|
+
enum: [
|
|
3802
|
+
'customer_reply',
|
|
3803
|
+
'agent_reply'
|
|
3804
|
+
]
|
|
3805
|
+
},
|
|
3806
|
+
body: {
|
|
3807
|
+
type: 'string',
|
|
3808
|
+
description: 'Message body in markdown.',
|
|
3809
|
+
example: 'Thanks — that resolved it on my side.'
|
|
3810
|
+
},
|
|
3811
|
+
author_first_name: {
|
|
3812
|
+
type: 'string',
|
|
3813
|
+
description: 'First name of the author. Null when not provided.',
|
|
3814
|
+
example: 'Jane'
|
|
3815
|
+
},
|
|
3816
|
+
author_last_name: {
|
|
3817
|
+
type: 'string',
|
|
3818
|
+
description: 'Last name of the author. Null when not provided.',
|
|
3819
|
+
example: 'Doe'
|
|
3820
|
+
},
|
|
3821
|
+
attachments: {
|
|
3822
|
+
type: 'array',
|
|
3823
|
+
items: {
|
|
3824
|
+
type: 'object',
|
|
3825
|
+
properties: {
|
|
3826
|
+
id: {
|
|
3827
|
+
type: 'string',
|
|
3828
|
+
description: 'Unique identifier of the attachment (Mongo ObjectId).',
|
|
3829
|
+
example: '60c72b2f9f1b2c001f8e4d3c'
|
|
3830
|
+
},
|
|
3831
|
+
filename: {
|
|
3832
|
+
type: 'string',
|
|
3833
|
+
description: 'Original filename as uploaded.',
|
|
3834
|
+
example: 'debug.log'
|
|
3835
|
+
},
|
|
3836
|
+
content_type: {
|
|
3837
|
+
type: 'string',
|
|
3838
|
+
description: 'MIME content type of the attachment.',
|
|
3839
|
+
example: 'text/plain'
|
|
3840
|
+
},
|
|
3841
|
+
size: {
|
|
3842
|
+
type: 'integer',
|
|
3843
|
+
description: 'Size of the attachment in bytes.',
|
|
3844
|
+
example: 12345
|
|
3845
|
+
}
|
|
3846
|
+
},
|
|
3847
|
+
required: [
|
|
3848
|
+
'id',
|
|
3849
|
+
'filename',
|
|
3850
|
+
'content_type',
|
|
3851
|
+
'size'
|
|
3852
|
+
],
|
|
3853
|
+
additionalProperties: false
|
|
3854
|
+
},
|
|
3855
|
+
description: 'Attachments associated with this message.',
|
|
3856
|
+
example: []
|
|
3857
|
+
},
|
|
3858
|
+
date_created: {
|
|
3859
|
+
type: 'string',
|
|
3860
|
+
format: 'date-time',
|
|
3861
|
+
description: 'Creation date of the message. ISO 8601 UTC.',
|
|
3862
|
+
example: '2026-05-11T16:08:14.338Z'
|
|
3863
|
+
}
|
|
3864
|
+
},
|
|
3865
|
+
required: [
|
|
3866
|
+
'id',
|
|
3867
|
+
'type',
|
|
3868
|
+
'body',
|
|
3869
|
+
'date_created'
|
|
3870
|
+
],
|
|
3871
|
+
additionalProperties: false
|
|
3872
|
+
},
|
|
3873
|
+
description: 'Messages on the ticket in chronological order. Internal notes are excluded. Returned by the detail endpoint only.'
|
|
3874
|
+
}
|
|
3875
|
+
},
|
|
3876
|
+
required: [
|
|
3877
|
+
'id',
|
|
3878
|
+
'status',
|
|
3879
|
+
'category',
|
|
3880
|
+
'summary',
|
|
3881
|
+
'support_access_granted',
|
|
3882
|
+
'support_access_granted_at',
|
|
3883
|
+
'date_created',
|
|
3884
|
+
'date_updated'
|
|
3885
|
+
],
|
|
1401
3886
|
additionalProperties: false
|
|
1402
3887
|
};
|
|
1403
3888
|
export const TokenCreateInputSchema = {
|
|
@@ -1415,10 +3900,16 @@ export const TokenCreateInputSchema = {
|
|
|
1415
3900
|
type: 'string',
|
|
1416
3901
|
description: 'Role assumed by the token.',
|
|
1417
3902
|
example: 'User',
|
|
1418
|
-
enum: [
|
|
3903
|
+
enum: [
|
|
3904
|
+
'Administrator',
|
|
3905
|
+
'User'
|
|
3906
|
+
]
|
|
1419
3907
|
}
|
|
1420
3908
|
},
|
|
1421
|
-
required: [
|
|
3909
|
+
required: [
|
|
3910
|
+
'name',
|
|
3911
|
+
'role'
|
|
3912
|
+
],
|
|
1422
3913
|
additionalProperties: false
|
|
1423
3914
|
};
|
|
1424
3915
|
export const TokenSchema = {
|
|
@@ -1436,7 +3927,10 @@ export const TokenSchema = {
|
|
|
1436
3927
|
type: 'string',
|
|
1437
3928
|
description: 'Role assumed by the token.',
|
|
1438
3929
|
example: 'User',
|
|
1439
|
-
enum: [
|
|
3930
|
+
enum: [
|
|
3931
|
+
'Administrator',
|
|
3932
|
+
'User'
|
|
3933
|
+
]
|
|
1440
3934
|
},
|
|
1441
3935
|
id: {
|
|
1442
3936
|
type: 'string',
|
|
@@ -1455,7 +3949,11 @@ export const TokenSchema = {
|
|
|
1455
3949
|
example: '2023-12-20T13:53:32.000Z'
|
|
1456
3950
|
}
|
|
1457
3951
|
},
|
|
1458
|
-
required: [
|
|
3952
|
+
required: [
|
|
3953
|
+
'name',
|
|
3954
|
+
'role',
|
|
3955
|
+
'date_created'
|
|
3956
|
+
],
|
|
1459
3957
|
additionalProperties: false
|
|
1460
3958
|
};
|
|
1461
3959
|
export const TokenUpdateInputSchema = {
|
|
@@ -1473,7 +3971,10 @@ export const TokenUpdateInputSchema = {
|
|
|
1473
3971
|
type: 'string',
|
|
1474
3972
|
description: 'Role assumed by the token.',
|
|
1475
3973
|
example: 'User',
|
|
1476
|
-
enum: [
|
|
3974
|
+
enum: [
|
|
3975
|
+
'Administrator',
|
|
3976
|
+
'User'
|
|
3977
|
+
]
|
|
1477
3978
|
}
|
|
1478
3979
|
},
|
|
1479
3980
|
additionalProperties: false
|
|
@@ -1487,15 +3988,29 @@ export const UsageFacetsSchema = {
|
|
|
1487
3988
|
type: 'string'
|
|
1488
3989
|
},
|
|
1489
3990
|
description: 'List of unique cluster IDs',
|
|
1490
|
-
example: [
|
|
3991
|
+
example: [
|
|
3992
|
+
'6b5439b1-923a-4f2b-a371-d554e5ea23fa'
|
|
3993
|
+
]
|
|
1491
3994
|
},
|
|
1492
3995
|
product: {
|
|
1493
3996
|
type: 'array',
|
|
1494
3997
|
items: {
|
|
1495
|
-
type: 'string'
|
|
3998
|
+
type: 'string',
|
|
3999
|
+
enum: [
|
|
4000
|
+
'cfke_controlplane_basic',
|
|
4001
|
+
'cfke_controlplane_pro',
|
|
4002
|
+
'cfke_controlplane_enterprise',
|
|
4003
|
+
'cfke_connected_nodes_basic',
|
|
4004
|
+
'cfke_connected_nodes_pro',
|
|
4005
|
+
'cfke_connected_nodes_enterprise',
|
|
4006
|
+
'cfcr_storage'
|
|
4007
|
+
]
|
|
1496
4008
|
},
|
|
1497
4009
|
description: 'List of unique products',
|
|
1498
|
-
example: [
|
|
4010
|
+
example: [
|
|
4011
|
+
'cfke_controlplane_pro',
|
|
4012
|
+
'cfke_connected_nodes_pro'
|
|
4013
|
+
]
|
|
1499
4014
|
}
|
|
1500
4015
|
},
|
|
1501
4016
|
additionalProperties: false
|
|
@@ -1521,7 +4036,16 @@ export const UsageResponseSchema = {
|
|
|
1521
4036
|
product: {
|
|
1522
4037
|
type: 'string',
|
|
1523
4038
|
description: 'The product the usage is associated with',
|
|
1524
|
-
example: '
|
|
4039
|
+
example: 'cfke_controlplane_pro',
|
|
4040
|
+
enum: [
|
|
4041
|
+
'cfke_controlplane_basic',
|
|
4042
|
+
'cfke_controlplane_pro',
|
|
4043
|
+
'cfke_controlplane_enterprise',
|
|
4044
|
+
'cfke_connected_nodes_basic',
|
|
4045
|
+
'cfke_connected_nodes_pro',
|
|
4046
|
+
'cfke_connected_nodes_enterprise',
|
|
4047
|
+
'cfcr_storage'
|
|
4048
|
+
]
|
|
1525
4049
|
},
|
|
1526
4050
|
value: {
|
|
1527
4051
|
type: 'number',
|
|
@@ -1541,7 +4065,14 @@ export const UsageResponseSchema = {
|
|
|
1541
4065
|
description: 'Total cost'
|
|
1542
4066
|
}
|
|
1543
4067
|
},
|
|
1544
|
-
required: [
|
|
4068
|
+
required: [
|
|
4069
|
+
'hour',
|
|
4070
|
+
'cluster_id',
|
|
4071
|
+
'product',
|
|
4072
|
+
'value',
|
|
4073
|
+
'price',
|
|
4074
|
+
'total'
|
|
4075
|
+
],
|
|
1545
4076
|
additionalProperties: false
|
|
1546
4077
|
},
|
|
1547
4078
|
description: 'Usage data'
|
|
@@ -1555,22 +4086,39 @@ export const UsageResponseSchema = {
|
|
|
1555
4086
|
type: 'string'
|
|
1556
4087
|
},
|
|
1557
4088
|
description: 'List of unique cluster IDs',
|
|
1558
|
-
example: [
|
|
4089
|
+
example: [
|
|
4090
|
+
'6b5439b1-923a-4f2b-a371-d554e5ea23fa'
|
|
4091
|
+
]
|
|
1559
4092
|
},
|
|
1560
4093
|
product: {
|
|
1561
4094
|
type: 'array',
|
|
1562
4095
|
items: {
|
|
1563
|
-
type: 'string'
|
|
4096
|
+
type: 'string',
|
|
4097
|
+
enum: [
|
|
4098
|
+
'cfke_controlplane_basic',
|
|
4099
|
+
'cfke_controlplane_pro',
|
|
4100
|
+
'cfke_controlplane_enterprise',
|
|
4101
|
+
'cfke_connected_nodes_basic',
|
|
4102
|
+
'cfke_connected_nodes_pro',
|
|
4103
|
+
'cfke_connected_nodes_enterprise',
|
|
4104
|
+
'cfcr_storage'
|
|
4105
|
+
]
|
|
1564
4106
|
},
|
|
1565
4107
|
description: 'List of unique products',
|
|
1566
|
-
example: [
|
|
4108
|
+
example: [
|
|
4109
|
+
'cfke_controlplane_pro',
|
|
4110
|
+
'cfke_connected_nodes_pro'
|
|
4111
|
+
]
|
|
1567
4112
|
}
|
|
1568
4113
|
},
|
|
1569
4114
|
additionalProperties: false,
|
|
1570
4115
|
description: 'Facets for filtering'
|
|
1571
4116
|
}
|
|
1572
4117
|
},
|
|
1573
|
-
required: [
|
|
4118
|
+
required: [
|
|
4119
|
+
'data',
|
|
4120
|
+
'facets'
|
|
4121
|
+
],
|
|
1574
4122
|
additionalProperties: false
|
|
1575
4123
|
};
|
|
1576
4124
|
export const UsageSchema = {
|
|
@@ -1589,7 +4137,16 @@ export const UsageSchema = {
|
|
|
1589
4137
|
product: {
|
|
1590
4138
|
type: 'string',
|
|
1591
4139
|
description: 'The product the usage is associated with',
|
|
1592
|
-
example: '
|
|
4140
|
+
example: 'cfke_controlplane_pro',
|
|
4141
|
+
enum: [
|
|
4142
|
+
'cfke_controlplane_basic',
|
|
4143
|
+
'cfke_controlplane_pro',
|
|
4144
|
+
'cfke_controlplane_enterprise',
|
|
4145
|
+
'cfke_connected_nodes_basic',
|
|
4146
|
+
'cfke_connected_nodes_pro',
|
|
4147
|
+
'cfke_connected_nodes_enterprise',
|
|
4148
|
+
'cfcr_storage'
|
|
4149
|
+
]
|
|
1593
4150
|
},
|
|
1594
4151
|
value: {
|
|
1595
4152
|
type: 'number',
|
|
@@ -1609,7 +4166,14 @@ export const UsageSchema = {
|
|
|
1609
4166
|
description: 'Total cost'
|
|
1610
4167
|
}
|
|
1611
4168
|
},
|
|
1612
|
-
required: [
|
|
4169
|
+
required: [
|
|
4170
|
+
'hour',
|
|
4171
|
+
'cluster_id',
|
|
4172
|
+
'product',
|
|
4173
|
+
'value',
|
|
4174
|
+
'price',
|
|
4175
|
+
'total'
|
|
4176
|
+
],
|
|
1613
4177
|
additionalProperties: false
|
|
1614
4178
|
};
|
|
1615
4179
|
export const UserCreateInputSchema = {
|
|
@@ -1645,21 +4209,15 @@ export const UserCreateInputSchema = {
|
|
|
1645
4209
|
type: 'string',
|
|
1646
4210
|
minLength: 8,
|
|
1647
4211
|
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
4212
|
}
|
|
1661
4213
|
},
|
|
1662
|
-
required: [
|
|
4214
|
+
required: [
|
|
4215
|
+
'email',
|
|
4216
|
+
'first_name',
|
|
4217
|
+
'last_name',
|
|
4218
|
+
'code',
|
|
4219
|
+
'password'
|
|
4220
|
+
],
|
|
1663
4221
|
additionalProperties: false
|
|
1664
4222
|
};
|
|
1665
4223
|
export const UserSchema = {
|
|
@@ -1687,15 +4245,21 @@ export const UserSchema = {
|
|
|
1687
4245
|
},
|
|
1688
4246
|
role: {
|
|
1689
4247
|
type: 'string',
|
|
1690
|
-
description:
|
|
4248
|
+
description: 'User role. Can be \'Administrator\', \'User\'.',
|
|
1691
4249
|
example: 'User',
|
|
1692
|
-
enum: [
|
|
4250
|
+
enum: [
|
|
4251
|
+
'Administrator',
|
|
4252
|
+
'User'
|
|
4253
|
+
]
|
|
1693
4254
|
},
|
|
1694
4255
|
status: {
|
|
1695
4256
|
type: 'string',
|
|
1696
4257
|
description: 'Status of the user. Can be `active` or `inactive`. Inactive users cannot log in or manage organization resources.',
|
|
1697
4258
|
example: 'active',
|
|
1698
|
-
enum: [
|
|
4259
|
+
enum: [
|
|
4260
|
+
'active',
|
|
4261
|
+
'inactive'
|
|
4262
|
+
]
|
|
1699
4263
|
},
|
|
1700
4264
|
id: {
|
|
1701
4265
|
type: 'string',
|
|
@@ -1710,7 +4274,15 @@ export const UserSchema = {
|
|
|
1710
4274
|
example: '2023-11-02T16:08:14.338Z'
|
|
1711
4275
|
}
|
|
1712
4276
|
},
|
|
1713
|
-
required: [
|
|
4277
|
+
required: [
|
|
4278
|
+
'email',
|
|
4279
|
+
'first_name',
|
|
4280
|
+
'last_name',
|
|
4281
|
+
'role',
|
|
4282
|
+
'status',
|
|
4283
|
+
'id',
|
|
4284
|
+
'date_created'
|
|
4285
|
+
],
|
|
1714
4286
|
additionalProperties: false
|
|
1715
4287
|
};
|
|
1716
4288
|
export const UserUpdateInputSchema = {
|
|
@@ -1738,15 +4310,21 @@ export const UserUpdateInputSchema = {
|
|
|
1738
4310
|
},
|
|
1739
4311
|
role: {
|
|
1740
4312
|
type: 'string',
|
|
1741
|
-
description:
|
|
4313
|
+
description: 'User role. Can be \'Administrator\', \'User\'.',
|
|
1742
4314
|
example: 'User',
|
|
1743
|
-
enum: [
|
|
4315
|
+
enum: [
|
|
4316
|
+
'Administrator',
|
|
4317
|
+
'User'
|
|
4318
|
+
]
|
|
1744
4319
|
},
|
|
1745
4320
|
status: {
|
|
1746
4321
|
type: 'string',
|
|
1747
4322
|
description: 'Status of the user. Can be `active` or `inactive`. Inactive users cannot log in or manage organization resources.',
|
|
1748
4323
|
example: 'active',
|
|
1749
|
-
enum: [
|
|
4324
|
+
enum: [
|
|
4325
|
+
'active',
|
|
4326
|
+
'inactive'
|
|
4327
|
+
]
|
|
1750
4328
|
}
|
|
1751
4329
|
},
|
|
1752
4330
|
additionalProperties: false
|