@cloudfleet/sdk 0.0.1-3d290f0 → 0.0.1-3e55307
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 +1077 -0
- package/dist/@tanstack/react-query.gen.d.ts.map +1 -0
- package/dist/@tanstack/react-query.gen.js +1286 -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 +1258 -140
- package/dist/schemas.gen.d.ts.map +1 -1
- package/dist/schemas.gen.js +2727 -215
- package/dist/schemas.gen.js.map +1 -1
- package/dist/sdk.gen.d.ts +286 -185
- package/dist/sdk.gen.d.ts.map +1 -1
- package/dist/sdk.gen.js +431 -376
- package/dist/sdk.gen.js.map +1 -1
- package/dist/services/kubernetes/api.d.ts +8 -8
- package/dist/types.gen.d.ts +1706 -687
- package/dist/types.gen.d.ts.map +1 -1
- package/dist/zod.gen.d.ts +3690 -1419
- package/dist/zod.gen.d.ts.map +1 -1
- package/dist/zod.gen.js +1500 -629
- 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'
|
|
835
|
+
},
|
|
836
|
+
{
|
|
837
|
+
type: 'string',
|
|
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'
|
|
419
851
|
},
|
|
420
852
|
{
|
|
421
853
|
type: 'string',
|
|
422
|
-
enum: [
|
|
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,18 +912,74 @@ 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: [
|
|
487
|
-
|
|
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.'
|
|
488
983
|
};
|
|
489
984
|
export const FleetCreateInputSchema = {
|
|
490
985
|
type: 'object',
|
|
@@ -493,13 +988,12 @@ export const FleetCreateInputSchema = {
|
|
|
493
988
|
type: 'object',
|
|
494
989
|
properties: {
|
|
495
990
|
cpu: {
|
|
496
|
-
type: '
|
|
497
|
-
format: 'float',
|
|
991
|
+
type: 'integer',
|
|
498
992
|
minimum: 0,
|
|
499
|
-
|
|
993
|
+
maximum: 100000,
|
|
994
|
+
description: 'CPU limit in cores. Maximum 100,000.'
|
|
500
995
|
}
|
|
501
996
|
},
|
|
502
|
-
required: ['cpu'],
|
|
503
997
|
additionalProperties: false,
|
|
504
998
|
description: 'Limits define a set of bounds for provisioning capacity.'
|
|
505
999
|
},
|
|
@@ -507,47 +1001,396 @@ export const FleetCreateInputSchema = {
|
|
|
507
1001
|
type: 'object',
|
|
508
1002
|
properties: {
|
|
509
1003
|
enabled: {
|
|
510
|
-
type: 'boolean'
|
|
511
|
-
default: true
|
|
1004
|
+
type: 'boolean'
|
|
512
1005
|
},
|
|
513
1006
|
project: {
|
|
514
1007
|
type: 'string',
|
|
515
|
-
|
|
1008
|
+
pattern: '^[a-z][a-z0-9-]{4,28}[a-z0-9]$',
|
|
1009
|
+
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.',
|
|
1010
|
+
example: 'my-cloudfleet-project'
|
|
516
1011
|
}
|
|
517
1012
|
},
|
|
518
|
-
required: [
|
|
1013
|
+
required: [
|
|
1014
|
+
'enabled'
|
|
1015
|
+
],
|
|
519
1016
|
additionalProperties: false
|
|
520
1017
|
},
|
|
521
1018
|
hetzner: {
|
|
522
1019
|
type: 'object',
|
|
523
1020
|
properties: {
|
|
524
1021
|
enabled: {
|
|
525
|
-
type: 'boolean'
|
|
526
|
-
default: true
|
|
1022
|
+
type: 'boolean'
|
|
527
1023
|
},
|
|
528
1024
|
apiKey: {
|
|
529
1025
|
type: 'string',
|
|
530
|
-
|
|
1026
|
+
maxLength: 64,
|
|
1027
|
+
minLength: 64,
|
|
1028
|
+
pattern: '^([A-Za-z0-9]{64}|\\*{64})$',
|
|
1029
|
+
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
1030
|
}
|
|
532
1031
|
},
|
|
533
|
-
required: [
|
|
1032
|
+
required: [
|
|
1033
|
+
'enabled'
|
|
1034
|
+
],
|
|
534
1035
|
additionalProperties: false
|
|
535
1036
|
},
|
|
536
1037
|
aws: {
|
|
537
1038
|
type: 'object',
|
|
538
1039
|
properties: {
|
|
539
1040
|
enabled: {
|
|
540
|
-
type: 'boolean'
|
|
541
|
-
default: true
|
|
1041
|
+
type: 'boolean'
|
|
542
1042
|
},
|
|
543
1043
|
controllerRoleArn: {
|
|
544
1044
|
type: 'string',
|
|
545
|
-
|
|
1045
|
+
pattern: '^arn:aws(-[a-z]+)*:iam::\\d{12}:role\\/[\\w+=,.@/-]+$',
|
|
1046
|
+
description: 'AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.',
|
|
1047
|
+
example: 'arn:aws:iam::123456789012:role/Cloudfleet'
|
|
546
1048
|
}
|
|
547
1049
|
},
|
|
548
|
-
required: [
|
|
1050
|
+
required: [
|
|
1051
|
+
'enabled'
|
|
1052
|
+
],
|
|
549
1053
|
additionalProperties: false
|
|
550
1054
|
},
|
|
1055
|
+
constraints: {
|
|
1056
|
+
type: 'object',
|
|
1057
|
+
properties: {
|
|
1058
|
+
'karpenter.sh/capacity-type': {
|
|
1059
|
+
type: 'array',
|
|
1060
|
+
items: {
|
|
1061
|
+
type: 'string',
|
|
1062
|
+
enum: [
|
|
1063
|
+
'on-demand',
|
|
1064
|
+
'spot'
|
|
1065
|
+
]
|
|
1066
|
+
},
|
|
1067
|
+
minItems: 1,
|
|
1068
|
+
description: 'Allowed values for `karpenter.sh/capacity-type`.',
|
|
1069
|
+
default: [
|
|
1070
|
+
'on-demand',
|
|
1071
|
+
'spot'
|
|
1072
|
+
]
|
|
1073
|
+
},
|
|
1074
|
+
'kubernetes.io/arch': {
|
|
1075
|
+
type: 'array',
|
|
1076
|
+
items: {
|
|
1077
|
+
type: 'string',
|
|
1078
|
+
enum: [
|
|
1079
|
+
'amd64',
|
|
1080
|
+
'arm64'
|
|
1081
|
+
]
|
|
1082
|
+
},
|
|
1083
|
+
minItems: 1,
|
|
1084
|
+
description: 'Allowed values for `kubernetes.io/arch`.',
|
|
1085
|
+
default: [
|
|
1086
|
+
'amd64'
|
|
1087
|
+
]
|
|
1088
|
+
},
|
|
1089
|
+
'cfke.io/instance-family': {
|
|
1090
|
+
type: 'array',
|
|
1091
|
+
items: {
|
|
1092
|
+
type: 'string',
|
|
1093
|
+
enum: [
|
|
1094
|
+
'a1',
|
|
1095
|
+
'a2',
|
|
1096
|
+
'a3',
|
|
1097
|
+
'a4',
|
|
1098
|
+
'c1',
|
|
1099
|
+
'c2',
|
|
1100
|
+
'c2d',
|
|
1101
|
+
'c3',
|
|
1102
|
+
'c3d',
|
|
1103
|
+
'c4',
|
|
1104
|
+
'c4a',
|
|
1105
|
+
'c4d',
|
|
1106
|
+
'c5',
|
|
1107
|
+
'c5a',
|
|
1108
|
+
'c5ad',
|
|
1109
|
+
'c5d',
|
|
1110
|
+
'c5n',
|
|
1111
|
+
'c6a',
|
|
1112
|
+
'c6g',
|
|
1113
|
+
'c6gd',
|
|
1114
|
+
'c6gn',
|
|
1115
|
+
'c6i',
|
|
1116
|
+
'c6id',
|
|
1117
|
+
'c6in',
|
|
1118
|
+
'c7a',
|
|
1119
|
+
'c7g',
|
|
1120
|
+
'c7gd',
|
|
1121
|
+
'c7gn',
|
|
1122
|
+
'c7i',
|
|
1123
|
+
'c7i-flex',
|
|
1124
|
+
'c8g',
|
|
1125
|
+
'c8gd',
|
|
1126
|
+
'cax',
|
|
1127
|
+
'ccx',
|
|
1128
|
+
'cpx',
|
|
1129
|
+
'cx',
|
|
1130
|
+
'd2',
|
|
1131
|
+
'd3',
|
|
1132
|
+
'd3en',
|
|
1133
|
+
'dl1',
|
|
1134
|
+
'dl2q',
|
|
1135
|
+
'e2',
|
|
1136
|
+
'f1',
|
|
1137
|
+
'f2',
|
|
1138
|
+
'g1',
|
|
1139
|
+
'g2',
|
|
1140
|
+
'g4ad',
|
|
1141
|
+
'g4dn',
|
|
1142
|
+
'g5',
|
|
1143
|
+
'g5g',
|
|
1144
|
+
'g6',
|
|
1145
|
+
'g6e',
|
|
1146
|
+
'gr6',
|
|
1147
|
+
'h1',
|
|
1148
|
+
'h3',
|
|
1149
|
+
'hpc6a',
|
|
1150
|
+
'hpc6id',
|
|
1151
|
+
'hpc7a',
|
|
1152
|
+
'hpc7g',
|
|
1153
|
+
'i2',
|
|
1154
|
+
'i3',
|
|
1155
|
+
'i3en',
|
|
1156
|
+
'i4g',
|
|
1157
|
+
'i4i',
|
|
1158
|
+
'i7i',
|
|
1159
|
+
'i7ie',
|
|
1160
|
+
'i8g',
|
|
1161
|
+
'im4gn',
|
|
1162
|
+
'inf1',
|
|
1163
|
+
'inf2',
|
|
1164
|
+
'is4gen',
|
|
1165
|
+
'm1',
|
|
1166
|
+
'm2',
|
|
1167
|
+
'm3',
|
|
1168
|
+
'm4',
|
|
1169
|
+
'm5',
|
|
1170
|
+
'm5a',
|
|
1171
|
+
'm5ad',
|
|
1172
|
+
'm5d',
|
|
1173
|
+
'm5dn',
|
|
1174
|
+
'm5n',
|
|
1175
|
+
'm5zn',
|
|
1176
|
+
'm6a',
|
|
1177
|
+
'm6g',
|
|
1178
|
+
'm6gd',
|
|
1179
|
+
'm6i',
|
|
1180
|
+
'm6id',
|
|
1181
|
+
'm6idn',
|
|
1182
|
+
'm6in',
|
|
1183
|
+
'm7a',
|
|
1184
|
+
'm7g',
|
|
1185
|
+
'm7gd',
|
|
1186
|
+
'm7i',
|
|
1187
|
+
'm7i-flex',
|
|
1188
|
+
'm8g',
|
|
1189
|
+
'm8gd',
|
|
1190
|
+
'n1',
|
|
1191
|
+
'n2',
|
|
1192
|
+
'n2d',
|
|
1193
|
+
'n4',
|
|
1194
|
+
'p3',
|
|
1195
|
+
'p3dn',
|
|
1196
|
+
'p4d',
|
|
1197
|
+
'p4de',
|
|
1198
|
+
'p5',
|
|
1199
|
+
'p5e',
|
|
1200
|
+
'p5en',
|
|
1201
|
+
'p6-b200',
|
|
1202
|
+
'r3',
|
|
1203
|
+
'r4',
|
|
1204
|
+
'r5',
|
|
1205
|
+
'r5a',
|
|
1206
|
+
'r5ad',
|
|
1207
|
+
'r5b',
|
|
1208
|
+
'r5d',
|
|
1209
|
+
'r5dn',
|
|
1210
|
+
'r5n',
|
|
1211
|
+
'r6a',
|
|
1212
|
+
'r6g',
|
|
1213
|
+
'r6gd',
|
|
1214
|
+
'r6i',
|
|
1215
|
+
'r6id',
|
|
1216
|
+
'r6idn',
|
|
1217
|
+
'r6in',
|
|
1218
|
+
'r7a',
|
|
1219
|
+
'r7g',
|
|
1220
|
+
'r7gd',
|
|
1221
|
+
'r7i',
|
|
1222
|
+
'r7iz',
|
|
1223
|
+
'r8g',
|
|
1224
|
+
'r8gd',
|
|
1225
|
+
't2',
|
|
1226
|
+
't2a',
|
|
1227
|
+
't2d',
|
|
1228
|
+
't3',
|
|
1229
|
+
't3a',
|
|
1230
|
+
't4g',
|
|
1231
|
+
'trn1',
|
|
1232
|
+
'trn1n',
|
|
1233
|
+
'u-3tb1',
|
|
1234
|
+
'u-6tb1',
|
|
1235
|
+
'u7i-12tb',
|
|
1236
|
+
'u7i-6tb',
|
|
1237
|
+
'u7i-8tb',
|
|
1238
|
+
'u7in-16tb',
|
|
1239
|
+
'u7in-24tb',
|
|
1240
|
+
'u7in-32tb',
|
|
1241
|
+
'vt1',
|
|
1242
|
+
'x1',
|
|
1243
|
+
'x1e',
|
|
1244
|
+
'x2gd',
|
|
1245
|
+
'x2idn',
|
|
1246
|
+
'x2iedn',
|
|
1247
|
+
'x2iezn',
|
|
1248
|
+
'x4',
|
|
1249
|
+
'x8g',
|
|
1250
|
+
'z1d',
|
|
1251
|
+
'z3'
|
|
1252
|
+
]
|
|
1253
|
+
},
|
|
1254
|
+
description: 'Allowed values for `cfke.io/instance-family`.',
|
|
1255
|
+
default: []
|
|
1256
|
+
},
|
|
1257
|
+
'topology.kubernetes.io/region': {
|
|
1258
|
+
type: 'array',
|
|
1259
|
+
items: {
|
|
1260
|
+
type: 'string',
|
|
1261
|
+
enum: [
|
|
1262
|
+
'africa-south1',
|
|
1263
|
+
'ap-northeast-1',
|
|
1264
|
+
'ap-northeast-2',
|
|
1265
|
+
'ap-northeast-3',
|
|
1266
|
+
'ap-south-1',
|
|
1267
|
+
'ap-southeast-1',
|
|
1268
|
+
'ap-southeast-2',
|
|
1269
|
+
'ash',
|
|
1270
|
+
'asia-east1',
|
|
1271
|
+
'asia-east2',
|
|
1272
|
+
'asia-northeast1',
|
|
1273
|
+
'asia-northeast2',
|
|
1274
|
+
'asia-northeast3',
|
|
1275
|
+
'asia-south1',
|
|
1276
|
+
'asia-south2',
|
|
1277
|
+
'asia-southeast1',
|
|
1278
|
+
'asia-southeast2',
|
|
1279
|
+
'australia-southeast1',
|
|
1280
|
+
'australia-southeast2',
|
|
1281
|
+
'ca-central-1',
|
|
1282
|
+
'eu-central-1',
|
|
1283
|
+
'eu-central-2',
|
|
1284
|
+
'eu-north-1',
|
|
1285
|
+
'eu-west-1',
|
|
1286
|
+
'eu-west-2',
|
|
1287
|
+
'eu-west-3',
|
|
1288
|
+
'europe-central2',
|
|
1289
|
+
'europe-north1',
|
|
1290
|
+
'europe-southwest1',
|
|
1291
|
+
'europe-west1',
|
|
1292
|
+
'europe-west10',
|
|
1293
|
+
'europe-west12',
|
|
1294
|
+
'europe-west2',
|
|
1295
|
+
'europe-west3',
|
|
1296
|
+
'europe-west4',
|
|
1297
|
+
'europe-west6',
|
|
1298
|
+
'europe-west8',
|
|
1299
|
+
'europe-west9',
|
|
1300
|
+
'fsn1',
|
|
1301
|
+
'hel1',
|
|
1302
|
+
'hil',
|
|
1303
|
+
'me-central1',
|
|
1304
|
+
'me-central2',
|
|
1305
|
+
'me-west1',
|
|
1306
|
+
'nbg1',
|
|
1307
|
+
'northamerica-northeast1',
|
|
1308
|
+
'northamerica-northeast2',
|
|
1309
|
+
'sa-east-1',
|
|
1310
|
+
'sin',
|
|
1311
|
+
'southamerica-east1',
|
|
1312
|
+
'southamerica-west1',
|
|
1313
|
+
'us-central1',
|
|
1314
|
+
'us-east-1',
|
|
1315
|
+
'us-east-2',
|
|
1316
|
+
'us-east1',
|
|
1317
|
+
'us-east4',
|
|
1318
|
+
'us-east5',
|
|
1319
|
+
'us-south1',
|
|
1320
|
+
'us-west-1',
|
|
1321
|
+
'us-west-2',
|
|
1322
|
+
'us-west1',
|
|
1323
|
+
'us-west2',
|
|
1324
|
+
'us-west3',
|
|
1325
|
+
'us-west4'
|
|
1326
|
+
]
|
|
1327
|
+
},
|
|
1328
|
+
description: 'Allowed values for `topology.kubernetes.io/region`.',
|
|
1329
|
+
default: []
|
|
1330
|
+
}
|
|
1331
|
+
},
|
|
1332
|
+
additionalProperties: false,
|
|
1333
|
+
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.',
|
|
1334
|
+
default: {
|
|
1335
|
+
'karpenter.sh/capacity-type': [
|
|
1336
|
+
'on-demand',
|
|
1337
|
+
'spot'
|
|
1338
|
+
],
|
|
1339
|
+
'kubernetes.io/arch': [
|
|
1340
|
+
'amd64'
|
|
1341
|
+
],
|
|
1342
|
+
'cfke.io/instance-family': [],
|
|
1343
|
+
'topology.kubernetes.io/region': []
|
|
1344
|
+
}
|
|
1345
|
+
},
|
|
1346
|
+
scalingProfile: {
|
|
1347
|
+
type: 'string',
|
|
1348
|
+
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`).',
|
|
1349
|
+
default: 'conservative',
|
|
1350
|
+
example: 'conservative',
|
|
1351
|
+
enum: [
|
|
1352
|
+
'aggressive',
|
|
1353
|
+
'conservative'
|
|
1354
|
+
]
|
|
1355
|
+
},
|
|
1356
|
+
taints: {
|
|
1357
|
+
type: 'array',
|
|
1358
|
+
items: {
|
|
1359
|
+
type: 'object',
|
|
1360
|
+
properties: {
|
|
1361
|
+
key: {
|
|
1362
|
+
type: 'string',
|
|
1363
|
+
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.',
|
|
1364
|
+
example: 'dedicated'
|
|
1365
|
+
},
|
|
1366
|
+
value: {
|
|
1367
|
+
type: 'string',
|
|
1368
|
+
maxLength: 63,
|
|
1369
|
+
pattern: '^([A-Za-z0-9]([-A-Za-z0-9_.]*[A-Za-z0-9])?)?$',
|
|
1370
|
+
description: 'Taint value. Optional.',
|
|
1371
|
+
example: 'ci'
|
|
1372
|
+
},
|
|
1373
|
+
effect: {
|
|
1374
|
+
type: 'string',
|
|
1375
|
+
description: 'Taint effect.',
|
|
1376
|
+
example: 'NoSchedule',
|
|
1377
|
+
enum: [
|
|
1378
|
+
'NoSchedule',
|
|
1379
|
+
'PreferNoSchedule',
|
|
1380
|
+
'NoExecute'
|
|
1381
|
+
]
|
|
1382
|
+
}
|
|
1383
|
+
},
|
|
1384
|
+
required: [
|
|
1385
|
+
'key',
|
|
1386
|
+
'effect'
|
|
1387
|
+
],
|
|
1388
|
+
additionalProperties: false
|
|
1389
|
+
},
|
|
1390
|
+
maxItems: 50,
|
|
1391
|
+
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.',
|
|
1392
|
+
default: []
|
|
1393
|
+
},
|
|
551
1394
|
id: {
|
|
552
1395
|
type: 'string',
|
|
553
1396
|
maxLength: 63,
|
|
@@ -557,8 +1400,11 @@ export const FleetCreateInputSchema = {
|
|
|
557
1400
|
example: 'new-clouds-fleet'
|
|
558
1401
|
}
|
|
559
1402
|
},
|
|
560
|
-
required: [
|
|
561
|
-
|
|
1403
|
+
required: [
|
|
1404
|
+
'id'
|
|
1405
|
+
],
|
|
1406
|
+
additionalProperties: false,
|
|
1407
|
+
description: 'Mutable fleet configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
|
|
562
1408
|
};
|
|
563
1409
|
export const FleetSchema = {
|
|
564
1410
|
type: 'object',
|
|
@@ -567,13 +1413,12 @@ export const FleetSchema = {
|
|
|
567
1413
|
type: 'object',
|
|
568
1414
|
properties: {
|
|
569
1415
|
cpu: {
|
|
570
|
-
type: '
|
|
571
|
-
format: 'float',
|
|
1416
|
+
type: 'integer',
|
|
572
1417
|
minimum: 0,
|
|
573
|
-
|
|
1418
|
+
maximum: 100000,
|
|
1419
|
+
description: 'CPU limit in cores. Maximum 100,000.'
|
|
574
1420
|
}
|
|
575
1421
|
},
|
|
576
|
-
required: ['cpu'],
|
|
577
1422
|
additionalProperties: false,
|
|
578
1423
|
description: 'Limits define a set of bounds for provisioning capacity.'
|
|
579
1424
|
},
|
|
@@ -581,47 +1426,398 @@ export const FleetSchema = {
|
|
|
581
1426
|
type: 'object',
|
|
582
1427
|
properties: {
|
|
583
1428
|
enabled: {
|
|
584
|
-
type: 'boolean'
|
|
585
|
-
default: true
|
|
1429
|
+
type: 'boolean'
|
|
586
1430
|
},
|
|
587
1431
|
project: {
|
|
588
1432
|
type: 'string',
|
|
589
|
-
|
|
1433
|
+
pattern: '^[a-z][a-z0-9-]{4,28}[a-z0-9]$',
|
|
1434
|
+
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.',
|
|
1435
|
+
example: 'my-cloudfleet-project'
|
|
590
1436
|
}
|
|
591
1437
|
},
|
|
592
|
-
required: [
|
|
1438
|
+
required: [
|
|
1439
|
+
'enabled'
|
|
1440
|
+
],
|
|
593
1441
|
additionalProperties: false
|
|
594
1442
|
},
|
|
595
1443
|
hetzner: {
|
|
596
1444
|
type: 'object',
|
|
597
1445
|
properties: {
|
|
598
1446
|
enabled: {
|
|
599
|
-
type: 'boolean'
|
|
600
|
-
default: true
|
|
1447
|
+
type: 'boolean'
|
|
601
1448
|
},
|
|
602
1449
|
apiKey: {
|
|
603
1450
|
type: 'string',
|
|
604
|
-
|
|
1451
|
+
pattern: '^\\*{64}$',
|
|
1452
|
+
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
1453
|
}
|
|
606
1454
|
},
|
|
607
|
-
required: [
|
|
1455
|
+
required: [
|
|
1456
|
+
'enabled'
|
|
1457
|
+
],
|
|
608
1458
|
additionalProperties: false
|
|
609
1459
|
},
|
|
610
1460
|
aws: {
|
|
611
1461
|
type: 'object',
|
|
612
1462
|
properties: {
|
|
613
1463
|
enabled: {
|
|
614
|
-
type: 'boolean'
|
|
615
|
-
default: true
|
|
1464
|
+
type: 'boolean'
|
|
616
1465
|
},
|
|
617
1466
|
controllerRoleArn: {
|
|
618
1467
|
type: 'string',
|
|
619
|
-
|
|
1468
|
+
pattern: '^arn:aws(-[a-z]+)*:iam::\\d{12}:role\\/[\\w+=,.@/-]+$',
|
|
1469
|
+
description: 'AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.',
|
|
1470
|
+
example: 'arn:aws:iam::123456789012:role/Cloudfleet'
|
|
620
1471
|
}
|
|
621
1472
|
},
|
|
622
|
-
required: [
|
|
1473
|
+
required: [
|
|
1474
|
+
'enabled'
|
|
1475
|
+
],
|
|
623
1476
|
additionalProperties: false
|
|
624
1477
|
},
|
|
1478
|
+
constraints: {
|
|
1479
|
+
type: 'object',
|
|
1480
|
+
properties: {
|
|
1481
|
+
'karpenter.sh/capacity-type': {
|
|
1482
|
+
type: 'array',
|
|
1483
|
+
items: {
|
|
1484
|
+
type: 'string',
|
|
1485
|
+
enum: [
|
|
1486
|
+
'on-demand',
|
|
1487
|
+
'spot'
|
|
1488
|
+
]
|
|
1489
|
+
},
|
|
1490
|
+
minItems: 1,
|
|
1491
|
+
description: 'Allowed values for `karpenter.sh/capacity-type`.',
|
|
1492
|
+
default: [
|
|
1493
|
+
'on-demand',
|
|
1494
|
+
'spot'
|
|
1495
|
+
]
|
|
1496
|
+
},
|
|
1497
|
+
'kubernetes.io/arch': {
|
|
1498
|
+
type: 'array',
|
|
1499
|
+
items: {
|
|
1500
|
+
type: 'string',
|
|
1501
|
+
enum: [
|
|
1502
|
+
'amd64',
|
|
1503
|
+
'arm64'
|
|
1504
|
+
]
|
|
1505
|
+
},
|
|
1506
|
+
minItems: 1,
|
|
1507
|
+
description: 'Allowed values for `kubernetes.io/arch`.',
|
|
1508
|
+
default: [
|
|
1509
|
+
'amd64'
|
|
1510
|
+
]
|
|
1511
|
+
},
|
|
1512
|
+
'cfke.io/instance-family': {
|
|
1513
|
+
type: 'array',
|
|
1514
|
+
items: {
|
|
1515
|
+
type: 'string',
|
|
1516
|
+
enum: [
|
|
1517
|
+
'a1',
|
|
1518
|
+
'a2',
|
|
1519
|
+
'a3',
|
|
1520
|
+
'a4',
|
|
1521
|
+
'c1',
|
|
1522
|
+
'c2',
|
|
1523
|
+
'c2d',
|
|
1524
|
+
'c3',
|
|
1525
|
+
'c3d',
|
|
1526
|
+
'c4',
|
|
1527
|
+
'c4a',
|
|
1528
|
+
'c4d',
|
|
1529
|
+
'c5',
|
|
1530
|
+
'c5a',
|
|
1531
|
+
'c5ad',
|
|
1532
|
+
'c5d',
|
|
1533
|
+
'c5n',
|
|
1534
|
+
'c6a',
|
|
1535
|
+
'c6g',
|
|
1536
|
+
'c6gd',
|
|
1537
|
+
'c6gn',
|
|
1538
|
+
'c6i',
|
|
1539
|
+
'c6id',
|
|
1540
|
+
'c6in',
|
|
1541
|
+
'c7a',
|
|
1542
|
+
'c7g',
|
|
1543
|
+
'c7gd',
|
|
1544
|
+
'c7gn',
|
|
1545
|
+
'c7i',
|
|
1546
|
+
'c7i-flex',
|
|
1547
|
+
'c8g',
|
|
1548
|
+
'c8gd',
|
|
1549
|
+
'cax',
|
|
1550
|
+
'ccx',
|
|
1551
|
+
'cpx',
|
|
1552
|
+
'cx',
|
|
1553
|
+
'd2',
|
|
1554
|
+
'd3',
|
|
1555
|
+
'd3en',
|
|
1556
|
+
'dl1',
|
|
1557
|
+
'dl2q',
|
|
1558
|
+
'e2',
|
|
1559
|
+
'f1',
|
|
1560
|
+
'f2',
|
|
1561
|
+
'g1',
|
|
1562
|
+
'g2',
|
|
1563
|
+
'g4ad',
|
|
1564
|
+
'g4dn',
|
|
1565
|
+
'g5',
|
|
1566
|
+
'g5g',
|
|
1567
|
+
'g6',
|
|
1568
|
+
'g6e',
|
|
1569
|
+
'gr6',
|
|
1570
|
+
'h1',
|
|
1571
|
+
'h3',
|
|
1572
|
+
'hpc6a',
|
|
1573
|
+
'hpc6id',
|
|
1574
|
+
'hpc7a',
|
|
1575
|
+
'hpc7g',
|
|
1576
|
+
'i2',
|
|
1577
|
+
'i3',
|
|
1578
|
+
'i3en',
|
|
1579
|
+
'i4g',
|
|
1580
|
+
'i4i',
|
|
1581
|
+
'i7i',
|
|
1582
|
+
'i7ie',
|
|
1583
|
+
'i8g',
|
|
1584
|
+
'im4gn',
|
|
1585
|
+
'inf1',
|
|
1586
|
+
'inf2',
|
|
1587
|
+
'is4gen',
|
|
1588
|
+
'm1',
|
|
1589
|
+
'm2',
|
|
1590
|
+
'm3',
|
|
1591
|
+
'm4',
|
|
1592
|
+
'm5',
|
|
1593
|
+
'm5a',
|
|
1594
|
+
'm5ad',
|
|
1595
|
+
'm5d',
|
|
1596
|
+
'm5dn',
|
|
1597
|
+
'm5n',
|
|
1598
|
+
'm5zn',
|
|
1599
|
+
'm6a',
|
|
1600
|
+
'm6g',
|
|
1601
|
+
'm6gd',
|
|
1602
|
+
'm6i',
|
|
1603
|
+
'm6id',
|
|
1604
|
+
'm6idn',
|
|
1605
|
+
'm6in',
|
|
1606
|
+
'm7a',
|
|
1607
|
+
'm7g',
|
|
1608
|
+
'm7gd',
|
|
1609
|
+
'm7i',
|
|
1610
|
+
'm7i-flex',
|
|
1611
|
+
'm8g',
|
|
1612
|
+
'm8gd',
|
|
1613
|
+
'n1',
|
|
1614
|
+
'n2',
|
|
1615
|
+
'n2d',
|
|
1616
|
+
'n4',
|
|
1617
|
+
'p3',
|
|
1618
|
+
'p3dn',
|
|
1619
|
+
'p4d',
|
|
1620
|
+
'p4de',
|
|
1621
|
+
'p5',
|
|
1622
|
+
'p5e',
|
|
1623
|
+
'p5en',
|
|
1624
|
+
'p6-b200',
|
|
1625
|
+
'r3',
|
|
1626
|
+
'r4',
|
|
1627
|
+
'r5',
|
|
1628
|
+
'r5a',
|
|
1629
|
+
'r5ad',
|
|
1630
|
+
'r5b',
|
|
1631
|
+
'r5d',
|
|
1632
|
+
'r5dn',
|
|
1633
|
+
'r5n',
|
|
1634
|
+
'r6a',
|
|
1635
|
+
'r6g',
|
|
1636
|
+
'r6gd',
|
|
1637
|
+
'r6i',
|
|
1638
|
+
'r6id',
|
|
1639
|
+
'r6idn',
|
|
1640
|
+
'r6in',
|
|
1641
|
+
'r7a',
|
|
1642
|
+
'r7g',
|
|
1643
|
+
'r7gd',
|
|
1644
|
+
'r7i',
|
|
1645
|
+
'r7iz',
|
|
1646
|
+
'r8g',
|
|
1647
|
+
'r8gd',
|
|
1648
|
+
't2',
|
|
1649
|
+
't2a',
|
|
1650
|
+
't2d',
|
|
1651
|
+
't3',
|
|
1652
|
+
't3a',
|
|
1653
|
+
't4g',
|
|
1654
|
+
'trn1',
|
|
1655
|
+
'trn1n',
|
|
1656
|
+
'u-3tb1',
|
|
1657
|
+
'u-6tb1',
|
|
1658
|
+
'u7i-12tb',
|
|
1659
|
+
'u7i-6tb',
|
|
1660
|
+
'u7i-8tb',
|
|
1661
|
+
'u7in-16tb',
|
|
1662
|
+
'u7in-24tb',
|
|
1663
|
+
'u7in-32tb',
|
|
1664
|
+
'vt1',
|
|
1665
|
+
'x1',
|
|
1666
|
+
'x1e',
|
|
1667
|
+
'x2gd',
|
|
1668
|
+
'x2idn',
|
|
1669
|
+
'x2iedn',
|
|
1670
|
+
'x2iezn',
|
|
1671
|
+
'x4',
|
|
1672
|
+
'x8g',
|
|
1673
|
+
'z1d',
|
|
1674
|
+
'z3'
|
|
1675
|
+
]
|
|
1676
|
+
},
|
|
1677
|
+
description: 'Allowed values for `cfke.io/instance-family`.',
|
|
1678
|
+
default: []
|
|
1679
|
+
},
|
|
1680
|
+
'topology.kubernetes.io/region': {
|
|
1681
|
+
type: 'array',
|
|
1682
|
+
items: {
|
|
1683
|
+
type: 'string',
|
|
1684
|
+
enum: [
|
|
1685
|
+
'africa-south1',
|
|
1686
|
+
'ap-northeast-1',
|
|
1687
|
+
'ap-northeast-2',
|
|
1688
|
+
'ap-northeast-3',
|
|
1689
|
+
'ap-south-1',
|
|
1690
|
+
'ap-southeast-1',
|
|
1691
|
+
'ap-southeast-2',
|
|
1692
|
+
'ash',
|
|
1693
|
+
'asia-east1',
|
|
1694
|
+
'asia-east2',
|
|
1695
|
+
'asia-northeast1',
|
|
1696
|
+
'asia-northeast2',
|
|
1697
|
+
'asia-northeast3',
|
|
1698
|
+
'asia-south1',
|
|
1699
|
+
'asia-south2',
|
|
1700
|
+
'asia-southeast1',
|
|
1701
|
+
'asia-southeast2',
|
|
1702
|
+
'australia-southeast1',
|
|
1703
|
+
'australia-southeast2',
|
|
1704
|
+
'ca-central-1',
|
|
1705
|
+
'eu-central-1',
|
|
1706
|
+
'eu-central-2',
|
|
1707
|
+
'eu-north-1',
|
|
1708
|
+
'eu-west-1',
|
|
1709
|
+
'eu-west-2',
|
|
1710
|
+
'eu-west-3',
|
|
1711
|
+
'europe-central2',
|
|
1712
|
+
'europe-north1',
|
|
1713
|
+
'europe-southwest1',
|
|
1714
|
+
'europe-west1',
|
|
1715
|
+
'europe-west10',
|
|
1716
|
+
'europe-west12',
|
|
1717
|
+
'europe-west2',
|
|
1718
|
+
'europe-west3',
|
|
1719
|
+
'europe-west4',
|
|
1720
|
+
'europe-west6',
|
|
1721
|
+
'europe-west8',
|
|
1722
|
+
'europe-west9',
|
|
1723
|
+
'fsn1',
|
|
1724
|
+
'hel1',
|
|
1725
|
+
'hil',
|
|
1726
|
+
'me-central1',
|
|
1727
|
+
'me-central2',
|
|
1728
|
+
'me-west1',
|
|
1729
|
+
'nbg1',
|
|
1730
|
+
'northamerica-northeast1',
|
|
1731
|
+
'northamerica-northeast2',
|
|
1732
|
+
'sa-east-1',
|
|
1733
|
+
'sin',
|
|
1734
|
+
'southamerica-east1',
|
|
1735
|
+
'southamerica-west1',
|
|
1736
|
+
'us-central1',
|
|
1737
|
+
'us-east-1',
|
|
1738
|
+
'us-east-2',
|
|
1739
|
+
'us-east1',
|
|
1740
|
+
'us-east4',
|
|
1741
|
+
'us-east5',
|
|
1742
|
+
'us-south1',
|
|
1743
|
+
'us-west-1',
|
|
1744
|
+
'us-west-2',
|
|
1745
|
+
'us-west1',
|
|
1746
|
+
'us-west2',
|
|
1747
|
+
'us-west3',
|
|
1748
|
+
'us-west4'
|
|
1749
|
+
]
|
|
1750
|
+
},
|
|
1751
|
+
description: 'Allowed values for `topology.kubernetes.io/region`.',
|
|
1752
|
+
default: []
|
|
1753
|
+
}
|
|
1754
|
+
},
|
|
1755
|
+
required: [
|
|
1756
|
+
'karpenter.sh/capacity-type',
|
|
1757
|
+
'kubernetes.io/arch'
|
|
1758
|
+
],
|
|
1759
|
+
additionalProperties: false,
|
|
1760
|
+
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.',
|
|
1761
|
+
default: {
|
|
1762
|
+
'karpenter.sh/capacity-type': [
|
|
1763
|
+
'on-demand',
|
|
1764
|
+
'spot'
|
|
1765
|
+
],
|
|
1766
|
+
'kubernetes.io/arch': [
|
|
1767
|
+
'amd64'
|
|
1768
|
+
],
|
|
1769
|
+
'cfke.io/instance-family': [],
|
|
1770
|
+
'topology.kubernetes.io/region': []
|
|
1771
|
+
}
|
|
1772
|
+
},
|
|
1773
|
+
scalingProfile: {
|
|
1774
|
+
type: 'string',
|
|
1775
|
+
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`).',
|
|
1776
|
+
default: 'conservative',
|
|
1777
|
+
example: 'conservative',
|
|
1778
|
+
enum: [
|
|
1779
|
+
'aggressive',
|
|
1780
|
+
'conservative'
|
|
1781
|
+
]
|
|
1782
|
+
},
|
|
1783
|
+
taints: {
|
|
1784
|
+
type: 'array',
|
|
1785
|
+
items: {
|
|
1786
|
+
type: 'object',
|
|
1787
|
+
properties: {
|
|
1788
|
+
key: {
|
|
1789
|
+
type: 'string',
|
|
1790
|
+
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.',
|
|
1791
|
+
example: 'dedicated'
|
|
1792
|
+
},
|
|
1793
|
+
value: {
|
|
1794
|
+
type: 'string',
|
|
1795
|
+
maxLength: 63,
|
|
1796
|
+
pattern: '^([A-Za-z0-9]([-A-Za-z0-9_.]*[A-Za-z0-9])?)?$',
|
|
1797
|
+
description: 'Taint value. Optional.',
|
|
1798
|
+
example: 'ci'
|
|
1799
|
+
},
|
|
1800
|
+
effect: {
|
|
1801
|
+
type: 'string',
|
|
1802
|
+
description: 'Taint effect.',
|
|
1803
|
+
example: 'NoSchedule',
|
|
1804
|
+
enum: [
|
|
1805
|
+
'NoSchedule',
|
|
1806
|
+
'PreferNoSchedule',
|
|
1807
|
+
'NoExecute'
|
|
1808
|
+
]
|
|
1809
|
+
}
|
|
1810
|
+
},
|
|
1811
|
+
required: [
|
|
1812
|
+
'key',
|
|
1813
|
+
'effect'
|
|
1814
|
+
],
|
|
1815
|
+
additionalProperties: false
|
|
1816
|
+
},
|
|
1817
|
+
maxItems: 50,
|
|
1818
|
+
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.',
|
|
1819
|
+
default: []
|
|
1820
|
+
},
|
|
625
1821
|
id: {
|
|
626
1822
|
type: 'string',
|
|
627
1823
|
maxLength: 63,
|
|
@@ -629,10 +1825,39 @@ export const FleetSchema = {
|
|
|
629
1825
|
pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
|
|
630
1826
|
description: 'Unique identifier of the kubernetes fleet.',
|
|
631
1827
|
example: 'new-clouds-fleet'
|
|
1828
|
+
},
|
|
1829
|
+
ready: {
|
|
1830
|
+
type: 'boolean',
|
|
1831
|
+
description: 'Indicates whether the fleet configuration is healthy.',
|
|
1832
|
+
example: true
|
|
1833
|
+
},
|
|
1834
|
+
status_message: {
|
|
1835
|
+
type: 'string',
|
|
1836
|
+
description: 'Human-readable reason the fleet is not ready. Present only when `ready` is false.',
|
|
1837
|
+
example: 'Invalid provider permissions.'
|
|
1838
|
+
},
|
|
1839
|
+
created_at: {
|
|
1840
|
+
type: 'string',
|
|
1841
|
+
description: 'Creation date and time of the fleet.',
|
|
1842
|
+
example: '2024-09-12T09:11:27Z'
|
|
1843
|
+
},
|
|
1844
|
+
updated_at: {
|
|
1845
|
+
type: 'string',
|
|
1846
|
+
description: 'Date and time the fleet was last updated.',
|
|
1847
|
+
example: '2024-09-12T09:11:27Z'
|
|
632
1848
|
}
|
|
633
1849
|
},
|
|
634
|
-
required: [
|
|
635
|
-
|
|
1850
|
+
required: [
|
|
1851
|
+
'constraints',
|
|
1852
|
+
'scalingProfile',
|
|
1853
|
+
'taints',
|
|
1854
|
+
'id',
|
|
1855
|
+
'ready',
|
|
1856
|
+
'created_at',
|
|
1857
|
+
'updated_at'
|
|
1858
|
+
],
|
|
1859
|
+
additionalProperties: false,
|
|
1860
|
+
description: 'Mutable fleet configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
|
|
636
1861
|
};
|
|
637
1862
|
export const FleetUpdateInputSchema = {
|
|
638
1863
|
type: 'object',
|
|
@@ -641,13 +1866,12 @@ export const FleetUpdateInputSchema = {
|
|
|
641
1866
|
type: 'object',
|
|
642
1867
|
properties: {
|
|
643
1868
|
cpu: {
|
|
644
|
-
type: '
|
|
645
|
-
format: 'float',
|
|
1869
|
+
type: 'integer',
|
|
646
1870
|
minimum: 0,
|
|
647
|
-
|
|
1871
|
+
maximum: 100000,
|
|
1872
|
+
description: 'CPU limit in cores. Maximum 100,000.'
|
|
648
1873
|
}
|
|
649
1874
|
},
|
|
650
|
-
required: ['cpu'],
|
|
651
1875
|
additionalProperties: false,
|
|
652
1876
|
description: 'Limits define a set of bounds for provisioning capacity.'
|
|
653
1877
|
},
|
|
@@ -655,48 +1879,423 @@ export const FleetUpdateInputSchema = {
|
|
|
655
1879
|
type: 'object',
|
|
656
1880
|
properties: {
|
|
657
1881
|
enabled: {
|
|
658
|
-
type: 'boolean'
|
|
659
|
-
default: true
|
|
1882
|
+
type: 'boolean'
|
|
660
1883
|
},
|
|
661
1884
|
project: {
|
|
662
1885
|
type: 'string',
|
|
663
|
-
|
|
1886
|
+
pattern: '^[a-z][a-z0-9-]{4,28}[a-z0-9]$',
|
|
1887
|
+
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.',
|
|
1888
|
+
example: 'my-cloudfleet-project'
|
|
664
1889
|
}
|
|
665
1890
|
},
|
|
666
|
-
required: [
|
|
1891
|
+
required: [
|
|
1892
|
+
'enabled'
|
|
1893
|
+
],
|
|
667
1894
|
additionalProperties: false
|
|
668
1895
|
},
|
|
669
1896
|
hetzner: {
|
|
670
1897
|
type: 'object',
|
|
671
1898
|
properties: {
|
|
672
1899
|
enabled: {
|
|
673
|
-
type: 'boolean'
|
|
674
|
-
default: true
|
|
1900
|
+
type: 'boolean'
|
|
675
1901
|
},
|
|
676
1902
|
apiKey: {
|
|
677
1903
|
type: 'string',
|
|
678
|
-
|
|
1904
|
+
maxLength: 64,
|
|
1905
|
+
minLength: 64,
|
|
1906
|
+
pattern: '^([A-Za-z0-9]{64}|\\*{64})$',
|
|
1907
|
+
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
1908
|
}
|
|
680
1909
|
},
|
|
681
|
-
required: [
|
|
1910
|
+
required: [
|
|
1911
|
+
'enabled'
|
|
1912
|
+
],
|
|
682
1913
|
additionalProperties: false
|
|
683
1914
|
},
|
|
684
1915
|
aws: {
|
|
685
1916
|
type: 'object',
|
|
686
1917
|
properties: {
|
|
687
1918
|
enabled: {
|
|
688
|
-
type: 'boolean'
|
|
689
|
-
default: true
|
|
1919
|
+
type: 'boolean'
|
|
690
1920
|
},
|
|
691
1921
|
controllerRoleArn: {
|
|
692
1922
|
type: 'string',
|
|
693
|
-
|
|
1923
|
+
pattern: '^arn:aws(-[a-z]+)*:iam::\\d{12}:role\\/[\\w+=,.@/-]+$',
|
|
1924
|
+
description: 'AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.',
|
|
1925
|
+
example: 'arn:aws:iam::123456789012:role/Cloudfleet'
|
|
694
1926
|
}
|
|
695
1927
|
},
|
|
696
|
-
required: [
|
|
1928
|
+
required: [
|
|
1929
|
+
'enabled'
|
|
1930
|
+
],
|
|
697
1931
|
additionalProperties: false
|
|
1932
|
+
},
|
|
1933
|
+
constraints: {
|
|
1934
|
+
type: 'object',
|
|
1935
|
+
properties: {
|
|
1936
|
+
'karpenter.sh/capacity-type': {
|
|
1937
|
+
type: 'array',
|
|
1938
|
+
items: {
|
|
1939
|
+
type: 'string',
|
|
1940
|
+
enum: [
|
|
1941
|
+
'on-demand',
|
|
1942
|
+
'spot'
|
|
1943
|
+
]
|
|
1944
|
+
},
|
|
1945
|
+
minItems: 1,
|
|
1946
|
+
description: 'Allowed values for `karpenter.sh/capacity-type`.',
|
|
1947
|
+
default: [
|
|
1948
|
+
'on-demand',
|
|
1949
|
+
'spot'
|
|
1950
|
+
]
|
|
1951
|
+
},
|
|
1952
|
+
'kubernetes.io/arch': {
|
|
1953
|
+
type: 'array',
|
|
1954
|
+
items: {
|
|
1955
|
+
type: 'string',
|
|
1956
|
+
enum: [
|
|
1957
|
+
'amd64',
|
|
1958
|
+
'arm64'
|
|
1959
|
+
]
|
|
1960
|
+
},
|
|
1961
|
+
minItems: 1,
|
|
1962
|
+
description: 'Allowed values for `kubernetes.io/arch`.',
|
|
1963
|
+
default: [
|
|
1964
|
+
'amd64'
|
|
1965
|
+
]
|
|
1966
|
+
},
|
|
1967
|
+
'cfke.io/instance-family': {
|
|
1968
|
+
type: 'array',
|
|
1969
|
+
items: {
|
|
1970
|
+
type: 'string',
|
|
1971
|
+
enum: [
|
|
1972
|
+
'a1',
|
|
1973
|
+
'a2',
|
|
1974
|
+
'a3',
|
|
1975
|
+
'a4',
|
|
1976
|
+
'c1',
|
|
1977
|
+
'c2',
|
|
1978
|
+
'c2d',
|
|
1979
|
+
'c3',
|
|
1980
|
+
'c3d',
|
|
1981
|
+
'c4',
|
|
1982
|
+
'c4a',
|
|
1983
|
+
'c4d',
|
|
1984
|
+
'c5',
|
|
1985
|
+
'c5a',
|
|
1986
|
+
'c5ad',
|
|
1987
|
+
'c5d',
|
|
1988
|
+
'c5n',
|
|
1989
|
+
'c6a',
|
|
1990
|
+
'c6g',
|
|
1991
|
+
'c6gd',
|
|
1992
|
+
'c6gn',
|
|
1993
|
+
'c6i',
|
|
1994
|
+
'c6id',
|
|
1995
|
+
'c6in',
|
|
1996
|
+
'c7a',
|
|
1997
|
+
'c7g',
|
|
1998
|
+
'c7gd',
|
|
1999
|
+
'c7gn',
|
|
2000
|
+
'c7i',
|
|
2001
|
+
'c7i-flex',
|
|
2002
|
+
'c8g',
|
|
2003
|
+
'c8gd',
|
|
2004
|
+
'cax',
|
|
2005
|
+
'ccx',
|
|
2006
|
+
'cpx',
|
|
2007
|
+
'cx',
|
|
2008
|
+
'd2',
|
|
2009
|
+
'd3',
|
|
2010
|
+
'd3en',
|
|
2011
|
+
'dl1',
|
|
2012
|
+
'dl2q',
|
|
2013
|
+
'e2',
|
|
2014
|
+
'f1',
|
|
2015
|
+
'f2',
|
|
2016
|
+
'g1',
|
|
2017
|
+
'g2',
|
|
2018
|
+
'g4ad',
|
|
2019
|
+
'g4dn',
|
|
2020
|
+
'g5',
|
|
2021
|
+
'g5g',
|
|
2022
|
+
'g6',
|
|
2023
|
+
'g6e',
|
|
2024
|
+
'gr6',
|
|
2025
|
+
'h1',
|
|
2026
|
+
'h3',
|
|
2027
|
+
'hpc6a',
|
|
2028
|
+
'hpc6id',
|
|
2029
|
+
'hpc7a',
|
|
2030
|
+
'hpc7g',
|
|
2031
|
+
'i2',
|
|
2032
|
+
'i3',
|
|
2033
|
+
'i3en',
|
|
2034
|
+
'i4g',
|
|
2035
|
+
'i4i',
|
|
2036
|
+
'i7i',
|
|
2037
|
+
'i7ie',
|
|
2038
|
+
'i8g',
|
|
2039
|
+
'im4gn',
|
|
2040
|
+
'inf1',
|
|
2041
|
+
'inf2',
|
|
2042
|
+
'is4gen',
|
|
2043
|
+
'm1',
|
|
2044
|
+
'm2',
|
|
2045
|
+
'm3',
|
|
2046
|
+
'm4',
|
|
2047
|
+
'm5',
|
|
2048
|
+
'm5a',
|
|
2049
|
+
'm5ad',
|
|
2050
|
+
'm5d',
|
|
2051
|
+
'm5dn',
|
|
2052
|
+
'm5n',
|
|
2053
|
+
'm5zn',
|
|
2054
|
+
'm6a',
|
|
2055
|
+
'm6g',
|
|
2056
|
+
'm6gd',
|
|
2057
|
+
'm6i',
|
|
2058
|
+
'm6id',
|
|
2059
|
+
'm6idn',
|
|
2060
|
+
'm6in',
|
|
2061
|
+
'm7a',
|
|
2062
|
+
'm7g',
|
|
2063
|
+
'm7gd',
|
|
2064
|
+
'm7i',
|
|
2065
|
+
'm7i-flex',
|
|
2066
|
+
'm8g',
|
|
2067
|
+
'm8gd',
|
|
2068
|
+
'n1',
|
|
2069
|
+
'n2',
|
|
2070
|
+
'n2d',
|
|
2071
|
+
'n4',
|
|
2072
|
+
'p3',
|
|
2073
|
+
'p3dn',
|
|
2074
|
+
'p4d',
|
|
2075
|
+
'p4de',
|
|
2076
|
+
'p5',
|
|
2077
|
+
'p5e',
|
|
2078
|
+
'p5en',
|
|
2079
|
+
'p6-b200',
|
|
2080
|
+
'r3',
|
|
2081
|
+
'r4',
|
|
2082
|
+
'r5',
|
|
2083
|
+
'r5a',
|
|
2084
|
+
'r5ad',
|
|
2085
|
+
'r5b',
|
|
2086
|
+
'r5d',
|
|
2087
|
+
'r5dn',
|
|
2088
|
+
'r5n',
|
|
2089
|
+
'r6a',
|
|
2090
|
+
'r6g',
|
|
2091
|
+
'r6gd',
|
|
2092
|
+
'r6i',
|
|
2093
|
+
'r6id',
|
|
2094
|
+
'r6idn',
|
|
2095
|
+
'r6in',
|
|
2096
|
+
'r7a',
|
|
2097
|
+
'r7g',
|
|
2098
|
+
'r7gd',
|
|
2099
|
+
'r7i',
|
|
2100
|
+
'r7iz',
|
|
2101
|
+
'r8g',
|
|
2102
|
+
'r8gd',
|
|
2103
|
+
't2',
|
|
2104
|
+
't2a',
|
|
2105
|
+
't2d',
|
|
2106
|
+
't3',
|
|
2107
|
+
't3a',
|
|
2108
|
+
't4g',
|
|
2109
|
+
'trn1',
|
|
2110
|
+
'trn1n',
|
|
2111
|
+
'u-3tb1',
|
|
2112
|
+
'u-6tb1',
|
|
2113
|
+
'u7i-12tb',
|
|
2114
|
+
'u7i-6tb',
|
|
2115
|
+
'u7i-8tb',
|
|
2116
|
+
'u7in-16tb',
|
|
2117
|
+
'u7in-24tb',
|
|
2118
|
+
'u7in-32tb',
|
|
2119
|
+
'vt1',
|
|
2120
|
+
'x1',
|
|
2121
|
+
'x1e',
|
|
2122
|
+
'x2gd',
|
|
2123
|
+
'x2idn',
|
|
2124
|
+
'x2iedn',
|
|
2125
|
+
'x2iezn',
|
|
2126
|
+
'x4',
|
|
2127
|
+
'x8g',
|
|
2128
|
+
'z1d',
|
|
2129
|
+
'z3'
|
|
2130
|
+
]
|
|
2131
|
+
},
|
|
2132
|
+
description: 'Allowed values for `cfke.io/instance-family`.',
|
|
2133
|
+
default: []
|
|
2134
|
+
},
|
|
2135
|
+
'topology.kubernetes.io/region': {
|
|
2136
|
+
type: 'array',
|
|
2137
|
+
items: {
|
|
2138
|
+
type: 'string',
|
|
2139
|
+
enum: [
|
|
2140
|
+
'africa-south1',
|
|
2141
|
+
'ap-northeast-1',
|
|
2142
|
+
'ap-northeast-2',
|
|
2143
|
+
'ap-northeast-3',
|
|
2144
|
+
'ap-south-1',
|
|
2145
|
+
'ap-southeast-1',
|
|
2146
|
+
'ap-southeast-2',
|
|
2147
|
+
'ash',
|
|
2148
|
+
'asia-east1',
|
|
2149
|
+
'asia-east2',
|
|
2150
|
+
'asia-northeast1',
|
|
2151
|
+
'asia-northeast2',
|
|
2152
|
+
'asia-northeast3',
|
|
2153
|
+
'asia-south1',
|
|
2154
|
+
'asia-south2',
|
|
2155
|
+
'asia-southeast1',
|
|
2156
|
+
'asia-southeast2',
|
|
2157
|
+
'australia-southeast1',
|
|
2158
|
+
'australia-southeast2',
|
|
2159
|
+
'ca-central-1',
|
|
2160
|
+
'eu-central-1',
|
|
2161
|
+
'eu-central-2',
|
|
2162
|
+
'eu-north-1',
|
|
2163
|
+
'eu-west-1',
|
|
2164
|
+
'eu-west-2',
|
|
2165
|
+
'eu-west-3',
|
|
2166
|
+
'europe-central2',
|
|
2167
|
+
'europe-north1',
|
|
2168
|
+
'europe-southwest1',
|
|
2169
|
+
'europe-west1',
|
|
2170
|
+
'europe-west10',
|
|
2171
|
+
'europe-west12',
|
|
2172
|
+
'europe-west2',
|
|
2173
|
+
'europe-west3',
|
|
2174
|
+
'europe-west4',
|
|
2175
|
+
'europe-west6',
|
|
2176
|
+
'europe-west8',
|
|
2177
|
+
'europe-west9',
|
|
2178
|
+
'fsn1',
|
|
2179
|
+
'hel1',
|
|
2180
|
+
'hil',
|
|
2181
|
+
'me-central1',
|
|
2182
|
+
'me-central2',
|
|
2183
|
+
'me-west1',
|
|
2184
|
+
'nbg1',
|
|
2185
|
+
'northamerica-northeast1',
|
|
2186
|
+
'northamerica-northeast2',
|
|
2187
|
+
'sa-east-1',
|
|
2188
|
+
'sin',
|
|
2189
|
+
'southamerica-east1',
|
|
2190
|
+
'southamerica-west1',
|
|
2191
|
+
'us-central1',
|
|
2192
|
+
'us-east-1',
|
|
2193
|
+
'us-east-2',
|
|
2194
|
+
'us-east1',
|
|
2195
|
+
'us-east4',
|
|
2196
|
+
'us-east5',
|
|
2197
|
+
'us-south1',
|
|
2198
|
+
'us-west-1',
|
|
2199
|
+
'us-west-2',
|
|
2200
|
+
'us-west1',
|
|
2201
|
+
'us-west2',
|
|
2202
|
+
'us-west3',
|
|
2203
|
+
'us-west4'
|
|
2204
|
+
]
|
|
2205
|
+
},
|
|
2206
|
+
description: 'Allowed values for `topology.kubernetes.io/region`.',
|
|
2207
|
+
default: []
|
|
2208
|
+
}
|
|
2209
|
+
},
|
|
2210
|
+
additionalProperties: false,
|
|
2211
|
+
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.',
|
|
2212
|
+
default: {
|
|
2213
|
+
'karpenter.sh/capacity-type': [
|
|
2214
|
+
'on-demand',
|
|
2215
|
+
'spot'
|
|
2216
|
+
],
|
|
2217
|
+
'kubernetes.io/arch': [
|
|
2218
|
+
'amd64'
|
|
2219
|
+
],
|
|
2220
|
+
'cfke.io/instance-family': [],
|
|
2221
|
+
'topology.kubernetes.io/region': []
|
|
2222
|
+
}
|
|
2223
|
+
},
|
|
2224
|
+
scalingProfile: {
|
|
2225
|
+
type: 'string',
|
|
2226
|
+
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`).',
|
|
2227
|
+
default: 'conservative',
|
|
2228
|
+
example: 'conservative',
|
|
2229
|
+
enum: [
|
|
2230
|
+
'aggressive',
|
|
2231
|
+
'conservative'
|
|
2232
|
+
]
|
|
2233
|
+
},
|
|
2234
|
+
taints: {
|
|
2235
|
+
type: 'array',
|
|
2236
|
+
items: {
|
|
2237
|
+
type: 'object',
|
|
2238
|
+
properties: {
|
|
2239
|
+
key: {
|
|
2240
|
+
type: 'string',
|
|
2241
|
+
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.',
|
|
2242
|
+
example: 'dedicated'
|
|
2243
|
+
},
|
|
2244
|
+
value: {
|
|
2245
|
+
type: 'string',
|
|
2246
|
+
maxLength: 63,
|
|
2247
|
+
pattern: '^([A-Za-z0-9]([-A-Za-z0-9_.]*[A-Za-z0-9])?)?$',
|
|
2248
|
+
description: 'Taint value. Optional.',
|
|
2249
|
+
example: 'ci'
|
|
2250
|
+
},
|
|
2251
|
+
effect: {
|
|
2252
|
+
type: 'string',
|
|
2253
|
+
description: 'Taint effect.',
|
|
2254
|
+
example: 'NoSchedule',
|
|
2255
|
+
enum: [
|
|
2256
|
+
'NoSchedule',
|
|
2257
|
+
'PreferNoSchedule',
|
|
2258
|
+
'NoExecute'
|
|
2259
|
+
]
|
|
2260
|
+
}
|
|
2261
|
+
},
|
|
2262
|
+
required: [
|
|
2263
|
+
'key',
|
|
2264
|
+
'effect'
|
|
2265
|
+
],
|
|
2266
|
+
additionalProperties: false
|
|
2267
|
+
},
|
|
2268
|
+
maxItems: 50,
|
|
2269
|
+
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.',
|
|
2270
|
+
default: []
|
|
698
2271
|
}
|
|
699
2272
|
},
|
|
2273
|
+
additionalProperties: false,
|
|
2274
|
+
description: 'Mutable fleet configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
|
|
2275
|
+
};
|
|
2276
|
+
export const InviteCreateInputSchema = {
|
|
2277
|
+
type: 'object',
|
|
2278
|
+
properties: {
|
|
2279
|
+
email: {
|
|
2280
|
+
type: 'string',
|
|
2281
|
+
format: 'email',
|
|
2282
|
+
description: 'Email address of the user to invite.',
|
|
2283
|
+
example: 'email@example.com'
|
|
2284
|
+
},
|
|
2285
|
+
role: {
|
|
2286
|
+
type: 'string',
|
|
2287
|
+
description: 'Role the invited user will be assigned on redemption. Can be \'Administrator\' or \'User\'.',
|
|
2288
|
+
default: 'User',
|
|
2289
|
+
example: 'User',
|
|
2290
|
+
enum: [
|
|
2291
|
+
'Administrator',
|
|
2292
|
+
'User'
|
|
2293
|
+
]
|
|
2294
|
+
}
|
|
2295
|
+
},
|
|
2296
|
+
required: [
|
|
2297
|
+
'email'
|
|
2298
|
+
],
|
|
700
2299
|
additionalProperties: false
|
|
701
2300
|
};
|
|
702
2301
|
export const InviteSchema = {
|
|
@@ -729,9 +2328,185 @@ export const InviteSchema = {
|
|
|
729
2328
|
type: 'string',
|
|
730
2329
|
description: 'Generated unique invite code.',
|
|
731
2330
|
example: '7kUZnH7nnKUFfvc4NK2KQF'
|
|
2331
|
+
},
|
|
2332
|
+
role: {
|
|
2333
|
+
type: 'string',
|
|
2334
|
+
description: 'Role the invited user will be assigned on redemption. Can be \'Administrator\' or \'User\'.',
|
|
2335
|
+
default: 'User',
|
|
2336
|
+
example: 'User',
|
|
2337
|
+
enum: [
|
|
2338
|
+
'Administrator',
|
|
2339
|
+
'User'
|
|
2340
|
+
]
|
|
732
2341
|
}
|
|
733
2342
|
},
|
|
734
|
-
required: [
|
|
2343
|
+
required: [
|
|
2344
|
+
'date_created'
|
|
2345
|
+
],
|
|
2346
|
+
additionalProperties: false
|
|
2347
|
+
};
|
|
2348
|
+
export const InvoicePaymentAttemptSchema = {
|
|
2349
|
+
type: 'object',
|
|
2350
|
+
properties: {
|
|
2351
|
+
invoice_id: {
|
|
2352
|
+
type: 'string',
|
|
2353
|
+
description: 'Identifier of the invoice.',
|
|
2354
|
+
example: 'in_1234567890xCrwxghOTj1234'
|
|
2355
|
+
},
|
|
2356
|
+
number: {
|
|
2357
|
+
type: 'string',
|
|
2358
|
+
nullable: true,
|
|
2359
|
+
description: 'Invoice number. Null if the invoice has no number.',
|
|
2360
|
+
example: 'CF-0042'
|
|
2361
|
+
},
|
|
2362
|
+
amount: {
|
|
2363
|
+
type: 'number',
|
|
2364
|
+
format: 'float',
|
|
2365
|
+
description: 'Amount outstanding when the charge was attempted, in the smallest currency unit.',
|
|
2366
|
+
example: 4200
|
|
2367
|
+
},
|
|
2368
|
+
currency: {
|
|
2369
|
+
type: 'string',
|
|
2370
|
+
description: 'Currency of the invoice.',
|
|
2371
|
+
example: 'eur'
|
|
2372
|
+
},
|
|
2373
|
+
status: {
|
|
2374
|
+
type: 'string',
|
|
2375
|
+
description: 'Outcome for this invoice: `paid`, `processing` (accepted, not yet settled), `requires_action` (awaiting customer authentication), or `failed` (declined).',
|
|
2376
|
+
example: 'paid',
|
|
2377
|
+
enum: [
|
|
2378
|
+
'paid',
|
|
2379
|
+
'processing',
|
|
2380
|
+
'requires_action',
|
|
2381
|
+
'failed'
|
|
2382
|
+
]
|
|
2383
|
+
},
|
|
2384
|
+
client_secret: {
|
|
2385
|
+
type: 'string',
|
|
2386
|
+
nullable: true,
|
|
2387
|
+
description: 'Client secret used to complete customer authentication. Set only when `status` is `requires_action`.',
|
|
2388
|
+
example: 'pi_3MtwBwLkdIwHu7ix28a3tqPa_secret_YrKJUKribcBjcG8HVhfZluoGH'
|
|
2389
|
+
},
|
|
2390
|
+
failure_code: {
|
|
2391
|
+
type: 'string',
|
|
2392
|
+
nullable: true,
|
|
2393
|
+
description: 'Decline code. Set only when `status` is `failed`.',
|
|
2394
|
+
example: 'insufficient_funds'
|
|
2395
|
+
},
|
|
2396
|
+
failure_message: {
|
|
2397
|
+
type: 'string',
|
|
2398
|
+
nullable: true,
|
|
2399
|
+
description: 'Explanation of the decline, suitable for display. Set only when `status` is `failed`.',
|
|
2400
|
+
example: 'Your card has insufficient funds.'
|
|
2401
|
+
}
|
|
2402
|
+
},
|
|
2403
|
+
required: [
|
|
2404
|
+
'invoice_id',
|
|
2405
|
+
'number',
|
|
2406
|
+
'amount',
|
|
2407
|
+
'currency',
|
|
2408
|
+
'status',
|
|
2409
|
+
'client_secret',
|
|
2410
|
+
'failure_code',
|
|
2411
|
+
'failure_message'
|
|
2412
|
+
],
|
|
2413
|
+
additionalProperties: false
|
|
2414
|
+
};
|
|
2415
|
+
export const InvoicePaymentResultSchema = {
|
|
2416
|
+
type: 'object',
|
|
2417
|
+
properties: {
|
|
2418
|
+
code: {
|
|
2419
|
+
type: 'string',
|
|
2420
|
+
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).',
|
|
2421
|
+
example: 'partially_paid',
|
|
2422
|
+
enum: [
|
|
2423
|
+
'paid',
|
|
2424
|
+
'processing',
|
|
2425
|
+
'action_required',
|
|
2426
|
+
'partially_paid',
|
|
2427
|
+
'failed',
|
|
2428
|
+
'nothing_due',
|
|
2429
|
+
'bank_transfer_due'
|
|
2430
|
+
]
|
|
2431
|
+
},
|
|
2432
|
+
message: {
|
|
2433
|
+
type: 'string',
|
|
2434
|
+
description: 'Summary of the outcome, suitable for display.',
|
|
2435
|
+
example: '1 of 2 open invoices was paid. Invoice CF-0043 was declined: Your card has insufficient funds.'
|
|
2436
|
+
},
|
|
2437
|
+
results: {
|
|
2438
|
+
type: 'array',
|
|
2439
|
+
items: {
|
|
2440
|
+
type: 'object',
|
|
2441
|
+
properties: {
|
|
2442
|
+
invoice_id: {
|
|
2443
|
+
type: 'string',
|
|
2444
|
+
description: 'Identifier of the invoice.',
|
|
2445
|
+
example: 'in_1234567890xCrwxghOTj1234'
|
|
2446
|
+
},
|
|
2447
|
+
number: {
|
|
2448
|
+
type: 'string',
|
|
2449
|
+
description: 'Invoice number. Null if the invoice has no number.',
|
|
2450
|
+
example: 'CF-0042'
|
|
2451
|
+
},
|
|
2452
|
+
amount: {
|
|
2453
|
+
type: 'number',
|
|
2454
|
+
format: 'float',
|
|
2455
|
+
description: 'Amount outstanding when the charge was attempted, in the smallest currency unit.',
|
|
2456
|
+
example: 4200
|
|
2457
|
+
},
|
|
2458
|
+
currency: {
|
|
2459
|
+
type: 'string',
|
|
2460
|
+
description: 'Currency of the invoice.',
|
|
2461
|
+
example: 'eur'
|
|
2462
|
+
},
|
|
2463
|
+
status: {
|
|
2464
|
+
type: 'string',
|
|
2465
|
+
description: 'Outcome for this invoice: `paid`, `processing` (accepted, not yet settled), `requires_action` (awaiting customer authentication), or `failed` (declined).',
|
|
2466
|
+
example: 'paid',
|
|
2467
|
+
enum: [
|
|
2468
|
+
'paid',
|
|
2469
|
+
'processing',
|
|
2470
|
+
'requires_action',
|
|
2471
|
+
'failed'
|
|
2472
|
+
]
|
|
2473
|
+
},
|
|
2474
|
+
client_secret: {
|
|
2475
|
+
type: 'string',
|
|
2476
|
+
description: 'Client secret used to complete customer authentication. Set only when `status` is `requires_action`.',
|
|
2477
|
+
example: 'pi_3MtwBwLkdIwHu7ix28a3tqPa_secret_YrKJUKribcBjcG8HVhfZluoGH'
|
|
2478
|
+
},
|
|
2479
|
+
failure_code: {
|
|
2480
|
+
type: 'string',
|
|
2481
|
+
description: 'Decline code. Set only when `status` is `failed`.',
|
|
2482
|
+
example: 'insufficient_funds'
|
|
2483
|
+
},
|
|
2484
|
+
failure_message: {
|
|
2485
|
+
type: 'string',
|
|
2486
|
+
description: 'Explanation of the decline, suitable for display. Set only when `status` is `failed`.',
|
|
2487
|
+
example: 'Your card has insufficient funds.'
|
|
2488
|
+
}
|
|
2489
|
+
},
|
|
2490
|
+
required: [
|
|
2491
|
+
'invoice_id',
|
|
2492
|
+
'number',
|
|
2493
|
+
'amount',
|
|
2494
|
+
'currency',
|
|
2495
|
+
'status',
|
|
2496
|
+
'client_secret',
|
|
2497
|
+
'failure_code',
|
|
2498
|
+
'failure_message'
|
|
2499
|
+
],
|
|
2500
|
+
additionalProperties: false
|
|
2501
|
+
},
|
|
2502
|
+
description: 'One entry per invoice charged, oldest first.'
|
|
2503
|
+
}
|
|
2504
|
+
},
|
|
2505
|
+
required: [
|
|
2506
|
+
'code',
|
|
2507
|
+
'message',
|
|
2508
|
+
'results'
|
|
2509
|
+
],
|
|
735
2510
|
additionalProperties: false
|
|
736
2511
|
};
|
|
737
2512
|
export const InvoiceSchema = {
|
|
@@ -783,7 +2558,11 @@ export const InvoiceSchema = {
|
|
|
783
2558
|
type: 'string'
|
|
784
2559
|
}
|
|
785
2560
|
},
|
|
786
|
-
required: [
|
|
2561
|
+
required: [
|
|
2562
|
+
'created',
|
|
2563
|
+
'period_start',
|
|
2564
|
+
'period_end'
|
|
2565
|
+
],
|
|
787
2566
|
additionalProperties: false
|
|
788
2567
|
};
|
|
789
2568
|
export const MarketplaceListingFilesSchema = {
|
|
@@ -792,18 +2571,12 @@ export const MarketplaceListingFilesSchema = {
|
|
|
792
2571
|
chartYaml: {
|
|
793
2572
|
type: 'string',
|
|
794
2573
|
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`
|
|
2574
|
+
example: 'apiVersion: v2\nname: nginx-ingress\nversion: 1.18.2-cfke.45\nappVersion: 1.9.4'
|
|
799
2575
|
},
|
|
800
2576
|
valuesYaml: {
|
|
801
2577
|
type: 'string',
|
|
802
2578
|
description: 'Raw values.yaml content from the Helm chart',
|
|
803
|
-
example:
|
|
804
|
-
image:
|
|
805
|
-
repository: nginx
|
|
806
|
-
tag: latest`
|
|
2579
|
+
example: 'replicaCount: 1\nimage:\n repository: nginx\n tag: latest'
|
|
807
2580
|
},
|
|
808
2581
|
valuesSchemaJson: {
|
|
809
2582
|
type: 'string',
|
|
@@ -880,20 +2653,31 @@ export const MarketplaceListingSchema = {
|
|
|
880
2653
|
type: 'string'
|
|
881
2654
|
},
|
|
882
2655
|
description: 'Chart keywords',
|
|
883
|
-
example: [
|
|
2656
|
+
example: [
|
|
2657
|
+
'ingress',
|
|
2658
|
+
'nginx',
|
|
2659
|
+
'load-balancer'
|
|
2660
|
+
]
|
|
884
2661
|
},
|
|
885
2662
|
home: {
|
|
886
2663
|
type: 'string',
|
|
887
2664
|
description: 'Chart home URL',
|
|
888
2665
|
example: 'https://kubernetes.github.io/ingress-nginx/'
|
|
889
2666
|
},
|
|
2667
|
+
icon: {
|
|
2668
|
+
type: 'string',
|
|
2669
|
+
description: 'A URL to an SVG or PNG image to be used as an icon',
|
|
2670
|
+
example: 'https://cloudfleet.ai/images/marketplace/icons/ingress-nginx.png'
|
|
2671
|
+
},
|
|
890
2672
|
sources: {
|
|
891
2673
|
type: 'array',
|
|
892
2674
|
items: {
|
|
893
2675
|
type: 'string'
|
|
894
2676
|
},
|
|
895
2677
|
description: 'Chart source URLs',
|
|
896
|
-
example: [
|
|
2678
|
+
example: [
|
|
2679
|
+
'https://github.com/kubernetes/ingress-nginx'
|
|
2680
|
+
]
|
|
897
2681
|
},
|
|
898
2682
|
maintainers: {
|
|
899
2683
|
type: 'array',
|
|
@@ -911,23 +2695,42 @@ export const MarketplaceListingSchema = {
|
|
|
911
2695
|
example: 'support@nginx.org'
|
|
912
2696
|
}
|
|
913
2697
|
},
|
|
914
|
-
required: [
|
|
2698
|
+
required: [
|
|
2699
|
+
'name'
|
|
2700
|
+
],
|
|
915
2701
|
additionalProperties: false
|
|
916
2702
|
},
|
|
917
2703
|
description: 'Chart maintainers'
|
|
918
2704
|
}
|
|
919
2705
|
},
|
|
920
|
-
required: [
|
|
2706
|
+
required: [
|
|
2707
|
+
'name',
|
|
2708
|
+
'version'
|
|
2709
|
+
],
|
|
921
2710
|
additionalProperties: false,
|
|
922
2711
|
description: 'Chart metadata'
|
|
923
2712
|
}
|
|
924
2713
|
},
|
|
925
|
-
required: [
|
|
2714
|
+
required: [
|
|
2715
|
+
'name',
|
|
2716
|
+
'versions',
|
|
2717
|
+
'version_channels',
|
|
2718
|
+
'latestVersion'
|
|
2719
|
+
],
|
|
926
2720
|
additionalProperties: false
|
|
927
2721
|
};
|
|
928
2722
|
export const OrganizationCreateInputSchema = {
|
|
929
2723
|
type: 'object',
|
|
930
2724
|
properties: {
|
|
2725
|
+
type: {
|
|
2726
|
+
type: 'string',
|
|
2727
|
+
description: 'Type of the organization. `business` for legal entities, `personal` for individuals.',
|
|
2728
|
+
example: 'business',
|
|
2729
|
+
enum: [
|
|
2730
|
+
'business',
|
|
2731
|
+
'personal'
|
|
2732
|
+
]
|
|
2733
|
+
},
|
|
931
2734
|
email: {
|
|
932
2735
|
type: 'string',
|
|
933
2736
|
format: 'email',
|
|
@@ -936,11 +2739,13 @@ export const OrganizationCreateInputSchema = {
|
|
|
936
2739
|
},
|
|
937
2740
|
first_name: {
|
|
938
2741
|
type: 'string',
|
|
2742
|
+
minLength: 1,
|
|
939
2743
|
description: 'First name of the billing contact person.',
|
|
940
2744
|
example: 'John'
|
|
941
2745
|
},
|
|
942
2746
|
last_name: {
|
|
943
2747
|
type: 'string',
|
|
2748
|
+
minLength: 1,
|
|
944
2749
|
description: 'Last name of the billing contact person.',
|
|
945
2750
|
example: 'Doe'
|
|
946
2751
|
},
|
|
@@ -958,7 +2763,28 @@ export const OrganizationCreateInputSchema = {
|
|
|
958
2763
|
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
2764
|
}
|
|
960
2765
|
},
|
|
961
|
-
required: [
|
|
2766
|
+
required: [
|
|
2767
|
+
'type',
|
|
2768
|
+
'email',
|
|
2769
|
+
'first_name',
|
|
2770
|
+
'last_name',
|
|
2771
|
+
'company_name',
|
|
2772
|
+
'password'
|
|
2773
|
+
],
|
|
2774
|
+
additionalProperties: false
|
|
2775
|
+
};
|
|
2776
|
+
export const OrganizationCreateOutputSchema = {
|
|
2777
|
+
type: 'object',
|
|
2778
|
+
properties: {
|
|
2779
|
+
id: {
|
|
2780
|
+
type: 'string',
|
|
2781
|
+
description: 'Unique identifier of the newly created organization. Generated by the API and safe to use for client-side tracking immediately.',
|
|
2782
|
+
example: 'organization-id'
|
|
2783
|
+
}
|
|
2784
|
+
},
|
|
2785
|
+
required: [
|
|
2786
|
+
'id'
|
|
2787
|
+
],
|
|
962
2788
|
additionalProperties: false
|
|
963
2789
|
};
|
|
964
2790
|
export const OrganizationSchema = {
|
|
@@ -977,6 +2803,15 @@ export const OrganizationSchema = {
|
|
|
977
2803
|
description: 'Name of the legal entity. This name will be used in invoices. Use your first and last name for individual accounts.',
|
|
978
2804
|
example: 'ACME Corp.'
|
|
979
2805
|
},
|
|
2806
|
+
type: {
|
|
2807
|
+
type: 'string',
|
|
2808
|
+
description: 'Type of the organization. `business` for legal entities, `personal` for individuals.',
|
|
2809
|
+
example: 'business',
|
|
2810
|
+
enum: [
|
|
2811
|
+
'business',
|
|
2812
|
+
'personal'
|
|
2813
|
+
]
|
|
2814
|
+
},
|
|
980
2815
|
date_created: {
|
|
981
2816
|
type: 'string',
|
|
982
2817
|
format: 'date-time',
|
|
@@ -1008,6 +2843,17 @@ export const OrganizationSchema = {
|
|
|
1008
2843
|
description: 'Available number of Pro clusters that can be created.',
|
|
1009
2844
|
example: 999
|
|
1010
2845
|
},
|
|
2846
|
+
enterprise_clusters_max: {
|
|
2847
|
+
type: 'integer',
|
|
2848
|
+
minimum: 0,
|
|
2849
|
+
description: 'Maximum number of Enterprise clusters that can be created.',
|
|
2850
|
+
example: 999
|
|
2851
|
+
},
|
|
2852
|
+
enterprise_clusters_available: {
|
|
2853
|
+
type: 'integer',
|
|
2854
|
+
description: 'Available number of Enterprise clusters that can be created.',
|
|
2855
|
+
example: 999
|
|
2856
|
+
},
|
|
1011
2857
|
fleets_max: {
|
|
1012
2858
|
type: 'integer',
|
|
1013
2859
|
minimum: 0,
|
|
@@ -1027,7 +2873,7 @@ export const OrganizationSchema = {
|
|
|
1027
2873
|
type: 'array',
|
|
1028
2874
|
items: {
|
|
1029
2875
|
type: 'string',
|
|
1030
|
-
example: 'northamerica-central-
|
|
2876
|
+
example: 'northamerica-central-1a'
|
|
1031
2877
|
},
|
|
1032
2878
|
minItems: 1,
|
|
1033
2879
|
description: 'List of Cloudfleet control plane regions available for the organization.'
|
|
@@ -1048,36 +2894,66 @@ export const OrganizationSchema = {
|
|
|
1048
2894
|
example: '1.33.x (Always latest 1.33 patch version)'
|
|
1049
2895
|
}
|
|
1050
2896
|
},
|
|
1051
|
-
required: [
|
|
2897
|
+
required: [
|
|
2898
|
+
'id',
|
|
2899
|
+
'label'
|
|
2900
|
+
],
|
|
1052
2901
|
additionalProperties: false
|
|
1053
2902
|
},
|
|
1054
2903
|
minItems: 1,
|
|
1055
2904
|
description: 'List of CFKE control plane versions available for the organization.'
|
|
1056
2905
|
},
|
|
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: {
|
|
2906
|
+
cfcr_storage_gb: {
|
|
1064
2907
|
type: 'integer',
|
|
1065
|
-
minimum:
|
|
1066
|
-
description: 'Organization-level maximum
|
|
1067
|
-
example:
|
|
2908
|
+
minimum: -1,
|
|
2909
|
+
description: 'Organization-level maximum CFCR storage volume in GB. -1 means no limit.',
|
|
2910
|
+
example: 500
|
|
1068
2911
|
}
|
|
1069
2912
|
},
|
|
1070
|
-
required: [
|
|
2913
|
+
required: [
|
|
2914
|
+
'basic_clusters_max',
|
|
2915
|
+
'basic_clusters_available',
|
|
2916
|
+
'pro_clusters_max',
|
|
2917
|
+
'pro_clusters_available',
|
|
2918
|
+
'enterprise_clusters_max',
|
|
2919
|
+
'enterprise_clusters_available',
|
|
2920
|
+
'fleets_max',
|
|
2921
|
+
'cluster_tiers',
|
|
2922
|
+
'regions',
|
|
2923
|
+
'versions',
|
|
2924
|
+
'cfcr_storage_gb'
|
|
2925
|
+
],
|
|
1071
2926
|
additionalProperties: false,
|
|
1072
2927
|
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
2928
|
},
|
|
1074
2929
|
status: {
|
|
1075
2930
|
type: 'string',
|
|
1076
2931
|
description: 'Status of the organization. Can be `active` or `closed`, or `suspended`.',
|
|
1077
|
-
enum: [
|
|
2932
|
+
enum: [
|
|
2933
|
+
'active',
|
|
2934
|
+
'closed',
|
|
2935
|
+
'suspended'
|
|
2936
|
+
]
|
|
2937
|
+
},
|
|
2938
|
+
verification: {
|
|
2939
|
+
type: 'string',
|
|
2940
|
+
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.',
|
|
2941
|
+
example: 'verified',
|
|
2942
|
+
enum: [
|
|
2943
|
+
'none',
|
|
2944
|
+
'submitted',
|
|
2945
|
+
'verified'
|
|
2946
|
+
]
|
|
1078
2947
|
}
|
|
1079
2948
|
},
|
|
1080
|
-
required: [
|
|
2949
|
+
required: [
|
|
2950
|
+
'id',
|
|
2951
|
+
'type',
|
|
2952
|
+
'date_created',
|
|
2953
|
+
'quota',
|
|
2954
|
+
'status',
|
|
2955
|
+
'verification'
|
|
2956
|
+
],
|
|
1081
2957
|
additionalProperties: false
|
|
1082
2958
|
};
|
|
1083
2959
|
export const PaymentMethodSchema = {
|
|
@@ -1085,26 +2961,23 @@ export const PaymentMethodSchema = {
|
|
|
1085
2961
|
properties: {
|
|
1086
2962
|
id: {
|
|
1087
2963
|
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
|
|
2964
|
+
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.',
|
|
2965
|
+
example: 'pm_1MtwBwLkdIwHu7ix28a3tqPa'
|
|
1096
2966
|
},
|
|
1097
2967
|
type: {
|
|
1098
2968
|
type: 'string',
|
|
1099
|
-
|
|
1100
|
-
description: 'Payment method type type. Only `card` payments supported at the moment.',
|
|
2969
|
+
description: 'Payment method type. `card`, `sepa_debit` for SEPA Direct Debit (business accounts only), or `bank_transfer` for paying invoices by bank transfer.',
|
|
1101
2970
|
example: 'card',
|
|
1102
|
-
enum: [
|
|
2971
|
+
enum: [
|
|
2972
|
+
'card',
|
|
2973
|
+
'sepa_debit',
|
|
2974
|
+
'bank_transfer'
|
|
2975
|
+
]
|
|
1103
2976
|
},
|
|
1104
2977
|
last4: {
|
|
1105
2978
|
type: 'string',
|
|
1106
2979
|
nullable: true,
|
|
1107
|
-
description: 'Last 4 digits of the payment card number.',
|
|
2980
|
+
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
2981
|
example: '4242'
|
|
1109
2982
|
},
|
|
1110
2983
|
exp_month: {
|
|
@@ -1112,25 +2985,57 @@ export const PaymentMethodSchema = {
|
|
|
1112
2985
|
minimum: 1,
|
|
1113
2986
|
maximum: 12,
|
|
1114
2987
|
nullable: true,
|
|
1115
|
-
description:
|
|
1116
|
-
example:
|
|
2988
|
+
description: 'Two-digit number representing the card\'s expiration month. Null for SEPA Direct Debit and bank transfer.',
|
|
2989
|
+
example: 12
|
|
1117
2990
|
},
|
|
1118
2991
|
exp_year: {
|
|
1119
2992
|
type: 'integer',
|
|
1120
|
-
minimum: 2024,
|
|
1121
2993
|
nullable: true,
|
|
1122
|
-
description:
|
|
1123
|
-
example:
|
|
2994
|
+
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.',
|
|
2995
|
+
example: 2028
|
|
1124
2996
|
},
|
|
1125
2997
|
brand: {
|
|
1126
2998
|
type: 'string',
|
|
1127
2999
|
nullable: true,
|
|
1128
|
-
description: 'Payment card brand
|
|
1129
|
-
example: 'visa'
|
|
1130
|
-
|
|
3000
|
+
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.',
|
|
3001
|
+
example: 'visa'
|
|
3002
|
+
},
|
|
3003
|
+
iban: {
|
|
3004
|
+
type: 'string',
|
|
3005
|
+
nullable: true,
|
|
3006
|
+
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.',
|
|
3007
|
+
example: 'DE11243015658023127510'
|
|
3008
|
+
},
|
|
3009
|
+
bic: {
|
|
3010
|
+
type: 'string',
|
|
3011
|
+
nullable: true,
|
|
3012
|
+
description: 'BIC/SWIFT of the destination bank for bank transfers. Set only for `bank_transfer`; null otherwise.',
|
|
3013
|
+
example: 'SOGEDEFFXXX'
|
|
3014
|
+
},
|
|
3015
|
+
account_holder_name: {
|
|
3016
|
+
type: 'string',
|
|
3017
|
+
nullable: true,
|
|
3018
|
+
description: 'Account holder name of the destination bank account for bank transfers. Set only for `bank_transfer`; null otherwise.',
|
|
3019
|
+
example: 'Cloudfleet GmbH'
|
|
3020
|
+
},
|
|
3021
|
+
is_default: {
|
|
3022
|
+
type: 'boolean',
|
|
3023
|
+
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).',
|
|
3024
|
+
example: true
|
|
1131
3025
|
}
|
|
1132
3026
|
},
|
|
1133
|
-
required: [
|
|
3027
|
+
required: [
|
|
3028
|
+
'id',
|
|
3029
|
+
'type',
|
|
3030
|
+
'last4',
|
|
3031
|
+
'exp_month',
|
|
3032
|
+
'exp_year',
|
|
3033
|
+
'brand',
|
|
3034
|
+
'iban',
|
|
3035
|
+
'bic',
|
|
3036
|
+
'account_holder_name',
|
|
3037
|
+
'is_default'
|
|
3038
|
+
],
|
|
1134
3039
|
additionalProperties: false
|
|
1135
3040
|
};
|
|
1136
3041
|
export const PlatformQuotaSchema = {
|
|
@@ -1158,6 +3063,17 @@ export const PlatformQuotaSchema = {
|
|
|
1158
3063
|
description: 'Available number of Pro clusters that can be created.',
|
|
1159
3064
|
example: 999
|
|
1160
3065
|
},
|
|
3066
|
+
enterprise_clusters_max: {
|
|
3067
|
+
type: 'integer',
|
|
3068
|
+
minimum: 0,
|
|
3069
|
+
description: 'Maximum number of Enterprise clusters that can be created.',
|
|
3070
|
+
example: 999
|
|
3071
|
+
},
|
|
3072
|
+
enterprise_clusters_available: {
|
|
3073
|
+
type: 'integer',
|
|
3074
|
+
description: 'Available number of Enterprise clusters that can be created.',
|
|
3075
|
+
example: 999
|
|
3076
|
+
},
|
|
1161
3077
|
fleets_max: {
|
|
1162
3078
|
type: 'integer',
|
|
1163
3079
|
minimum: 0,
|
|
@@ -1177,7 +3093,7 @@ export const PlatformQuotaSchema = {
|
|
|
1177
3093
|
type: 'array',
|
|
1178
3094
|
items: {
|
|
1179
3095
|
type: 'string',
|
|
1180
|
-
example: 'northamerica-central-
|
|
3096
|
+
example: 'northamerica-central-1a'
|
|
1181
3097
|
},
|
|
1182
3098
|
minItems: 1,
|
|
1183
3099
|
description: 'List of Cloudfleet control plane regions available for the organization.'
|
|
@@ -1198,26 +3114,35 @@ export const PlatformQuotaSchema = {
|
|
|
1198
3114
|
example: '1.33.x (Always latest 1.33 patch version)'
|
|
1199
3115
|
}
|
|
1200
3116
|
},
|
|
1201
|
-
required: [
|
|
3117
|
+
required: [
|
|
3118
|
+
'id',
|
|
3119
|
+
'label'
|
|
3120
|
+
],
|
|
1202
3121
|
additionalProperties: false
|
|
1203
3122
|
},
|
|
1204
3123
|
minItems: 1,
|
|
1205
3124
|
description: 'List of CFKE control plane versions available for the organization.'
|
|
1206
3125
|
},
|
|
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: {
|
|
3126
|
+
cfcr_storage_gb: {
|
|
1214
3127
|
type: 'integer',
|
|
1215
|
-
minimum:
|
|
1216
|
-
description: 'Organization-level maximum
|
|
1217
|
-
example:
|
|
3128
|
+
minimum: -1,
|
|
3129
|
+
description: 'Organization-level maximum CFCR storage volume in GB. -1 means no limit.',
|
|
3130
|
+
example: 500
|
|
1218
3131
|
}
|
|
1219
3132
|
},
|
|
1220
|
-
required: [
|
|
3133
|
+
required: [
|
|
3134
|
+
'basic_clusters_max',
|
|
3135
|
+
'basic_clusters_available',
|
|
3136
|
+
'pro_clusters_max',
|
|
3137
|
+
'pro_clusters_available',
|
|
3138
|
+
'enterprise_clusters_max',
|
|
3139
|
+
'enterprise_clusters_available',
|
|
3140
|
+
'fleets_max',
|
|
3141
|
+
'cluster_tiers',
|
|
3142
|
+
'regions',
|
|
3143
|
+
'versions',
|
|
3144
|
+
'cfcr_storage_gb'
|
|
3145
|
+
],
|
|
1221
3146
|
additionalProperties: false
|
|
1222
3147
|
};
|
|
1223
3148
|
export const RegistryRepositorySchema = {
|
|
@@ -1236,10 +3161,14 @@ export const RegistryRepositorySchema = {
|
|
|
1236
3161
|
uri: {
|
|
1237
3162
|
type: 'string',
|
|
1238
3163
|
description: 'Full URI of the repository.',
|
|
1239
|
-
example: 'ssds123e-6651-4e5d-9c04-079f6532989b.northamerica.registry.cloudfleet.dev/
|
|
3164
|
+
example: 'ssds123e-6651-4e5d-9c04-079f6532989b.northamerica.registry.cloudfleet.dev/my-app'
|
|
1240
3165
|
}
|
|
1241
3166
|
},
|
|
1242
|
-
required: [
|
|
3167
|
+
required: [
|
|
3168
|
+
'name',
|
|
3169
|
+
'region',
|
|
3170
|
+
'uri'
|
|
3171
|
+
],
|
|
1243
3172
|
additionalProperties: false
|
|
1244
3173
|
};
|
|
1245
3174
|
export const RegistryRepositoryWithTagsSchema = {
|
|
@@ -1258,7 +3187,7 @@ export const RegistryRepositoryWithTagsSchema = {
|
|
|
1258
3187
|
uri: {
|
|
1259
3188
|
type: 'string',
|
|
1260
3189
|
description: 'Full URI of the repository.',
|
|
1261
|
-
example: 'ssds123e-6651-4e5d-9c04-079f6532989b.northamerica.registry.cloudfleet.dev/
|
|
3190
|
+
example: 'ssds123e-6651-4e5d-9c04-079f6532989b.northamerica.registry.cloudfleet.dev/my-app'
|
|
1262
3191
|
},
|
|
1263
3192
|
tags: {
|
|
1264
3193
|
type: 'array',
|
|
@@ -1280,9 +3209,23 @@ export const RegistryRepositoryWithTagsSchema = {
|
|
|
1280
3209
|
type: 'string',
|
|
1281
3210
|
description: 'Media type of the manifest.',
|
|
1282
3211
|
example: 'application/vnd.docker.distribution.manifest.v2+json'
|
|
3212
|
+
},
|
|
3213
|
+
platforms: {
|
|
3214
|
+
type: 'array',
|
|
3215
|
+
items: {
|
|
3216
|
+
type: 'string'
|
|
3217
|
+
},
|
|
3218
|
+
description: 'Array of platform strings for multi-arch images (e.g., linux/amd64, linux/arm64).',
|
|
3219
|
+
example: [
|
|
3220
|
+
'linux/amd64',
|
|
3221
|
+
'linux/arm64'
|
|
3222
|
+
]
|
|
1283
3223
|
}
|
|
1284
3224
|
},
|
|
1285
|
-
required: [
|
|
3225
|
+
required: [
|
|
3226
|
+
'name',
|
|
3227
|
+
'size'
|
|
3228
|
+
],
|
|
1286
3229
|
additionalProperties: false
|
|
1287
3230
|
},
|
|
1288
3231
|
description: 'Array of tags in the repository.'
|
|
@@ -1294,7 +3237,13 @@ export const RegistryRepositoryWithTagsSchema = {
|
|
|
1294
3237
|
example: 987654321
|
|
1295
3238
|
}
|
|
1296
3239
|
},
|
|
1297
|
-
required: [
|
|
3240
|
+
required: [
|
|
3241
|
+
'name',
|
|
3242
|
+
'region',
|
|
3243
|
+
'uri',
|
|
3244
|
+
'tags',
|
|
3245
|
+
'totalSize'
|
|
3246
|
+
],
|
|
1298
3247
|
additionalProperties: false
|
|
1299
3248
|
};
|
|
1300
3249
|
export const RegistryTagSchema = {
|
|
@@ -1305,6 +3254,11 @@ export const RegistryTagSchema = {
|
|
|
1305
3254
|
description: 'Tag name.',
|
|
1306
3255
|
example: 'latest'
|
|
1307
3256
|
},
|
|
3257
|
+
digest: {
|
|
3258
|
+
type: 'string',
|
|
3259
|
+
description: 'Manifest digest for pulling by digest.',
|
|
3260
|
+
example: 'sha256:abcd1234ef567890abcd1234ef567890abcd1234ef567890abcd1234ef567890'
|
|
3261
|
+
},
|
|
1308
3262
|
mediaType: {
|
|
1309
3263
|
type: 'string',
|
|
1310
3264
|
description: 'Media type of the manifest.',
|
|
@@ -1320,7 +3274,9 @@ export const RegistryTagSchema = {
|
|
|
1320
3274
|
example: 1234
|
|
1321
3275
|
}
|
|
1322
3276
|
},
|
|
1323
|
-
required: [
|
|
3277
|
+
required: [
|
|
3278
|
+
'size'
|
|
3279
|
+
],
|
|
1324
3280
|
additionalProperties: false,
|
|
1325
3281
|
description: 'Manifest config metadata.'
|
|
1326
3282
|
},
|
|
@@ -1329,6 +3285,11 @@ export const RegistryTagSchema = {
|
|
|
1329
3285
|
items: {
|
|
1330
3286
|
type: 'object',
|
|
1331
3287
|
properties: {
|
|
3288
|
+
digest: {
|
|
3289
|
+
type: 'string',
|
|
3290
|
+
description: 'Digest of the layer.',
|
|
3291
|
+
example: 'sha256:abcd1234ef567890abcd1234ef567890abcd1234ef567890abcd1234ef567890'
|
|
3292
|
+
},
|
|
1332
3293
|
size: {
|
|
1333
3294
|
type: 'number',
|
|
1334
3295
|
format: 'float',
|
|
@@ -1336,7 +3297,9 @@ export const RegistryTagSchema = {
|
|
|
1336
3297
|
example: 5678
|
|
1337
3298
|
}
|
|
1338
3299
|
},
|
|
1339
|
-
required: [
|
|
3300
|
+
required: [
|
|
3301
|
+
'size'
|
|
3302
|
+
],
|
|
1340
3303
|
additionalProperties: false
|
|
1341
3304
|
},
|
|
1342
3305
|
description: 'Array of layer metadata.'
|
|
@@ -1363,14 +3326,54 @@ export const RegistryTagSchema = {
|
|
|
1363
3326
|
type: 'string',
|
|
1364
3327
|
description: 'Operating system of the platform.',
|
|
1365
3328
|
example: 'linux'
|
|
3329
|
+
},
|
|
3330
|
+
variant: {
|
|
3331
|
+
type: 'string',
|
|
3332
|
+
description: 'Variant of the platform (e.g., v7, v8 for ARM).',
|
|
3333
|
+
example: 'v8'
|
|
1366
3334
|
}
|
|
1367
3335
|
},
|
|
1368
|
-
required: [
|
|
3336
|
+
required: [
|
|
3337
|
+
'architecture',
|
|
3338
|
+
'os'
|
|
3339
|
+
],
|
|
1369
3340
|
additionalProperties: false,
|
|
1370
3341
|
description: 'Platform information for the manifest.'
|
|
3342
|
+
},
|
|
3343
|
+
layers: {
|
|
3344
|
+
type: 'array',
|
|
3345
|
+
items: {
|
|
3346
|
+
type: 'object',
|
|
3347
|
+
properties: {
|
|
3348
|
+
digest: {
|
|
3349
|
+
type: 'string',
|
|
3350
|
+
description: 'Digest of the layer.',
|
|
3351
|
+
example: 'sha256:abcd1234ef567890abcd1234ef567890abcd1234ef567890abcd1234ef567890'
|
|
3352
|
+
},
|
|
3353
|
+
size: {
|
|
3354
|
+
type: 'number',
|
|
3355
|
+
format: 'float',
|
|
3356
|
+
description: 'Size of the layer in bytes.',
|
|
3357
|
+
example: 5678
|
|
3358
|
+
}
|
|
3359
|
+
},
|
|
3360
|
+
required: [
|
|
3361
|
+
'size'
|
|
3362
|
+
],
|
|
3363
|
+
additionalProperties: false
|
|
3364
|
+
},
|
|
3365
|
+
description: 'Layers for this platform.'
|
|
3366
|
+
},
|
|
3367
|
+
size: {
|
|
3368
|
+
type: 'number',
|
|
3369
|
+
format: 'float',
|
|
3370
|
+
description: 'Total size of this platform manifest in bytes.',
|
|
3371
|
+
example: 12345678
|
|
1371
3372
|
}
|
|
1372
3373
|
},
|
|
1373
|
-
required: [
|
|
3374
|
+
required: [
|
|
3375
|
+
'digest'
|
|
3376
|
+
],
|
|
1374
3377
|
additionalProperties: false
|
|
1375
3378
|
},
|
|
1376
3379
|
description: 'Array of manifests for multi-arch images.'
|
|
@@ -1397,7 +3400,423 @@ export const RegistryTagSchema = {
|
|
|
1397
3400
|
example: 'ssds123e-6651-4e5d-9c04-079f6532989b.northamerica.registry.cloudfleet.dev/my-app:latest'
|
|
1398
3401
|
}
|
|
1399
3402
|
},
|
|
1400
|
-
required: [
|
|
3403
|
+
required: [
|
|
3404
|
+
'name',
|
|
3405
|
+
'digest',
|
|
3406
|
+
'size',
|
|
3407
|
+
'region',
|
|
3408
|
+
'repository',
|
|
3409
|
+
'uri'
|
|
3410
|
+
],
|
|
3411
|
+
additionalProperties: false
|
|
3412
|
+
};
|
|
3413
|
+
export const RoadmapItemCreateInputSchema = {
|
|
3414
|
+
type: 'object',
|
|
3415
|
+
properties: {
|
|
3416
|
+
text: {
|
|
3417
|
+
type: 'string',
|
|
3418
|
+
maxLength: 500,
|
|
3419
|
+
minLength: 1,
|
|
3420
|
+
description: 'Your suggestion in one or two sentences. It is reviewed before it appears on the roadmap.',
|
|
3421
|
+
example: 'Support for ARM nodes on Hetzner.'
|
|
3422
|
+
}
|
|
3423
|
+
},
|
|
3424
|
+
required: [
|
|
3425
|
+
'text'
|
|
3426
|
+
],
|
|
3427
|
+
additionalProperties: false
|
|
3428
|
+
};
|
|
3429
|
+
export const RoadmapItemSchema = {
|
|
3430
|
+
type: 'object',
|
|
3431
|
+
properties: {
|
|
3432
|
+
id: {
|
|
3433
|
+
type: 'string',
|
|
3434
|
+
description: 'Unique identifier of the roadmap item (Mongo ObjectId).',
|
|
3435
|
+
example: '60c72b2f9f1b2c001f8e4d3a'
|
|
3436
|
+
},
|
|
3437
|
+
text: {
|
|
3438
|
+
type: 'string',
|
|
3439
|
+
description: 'Short description of the roadmap item.',
|
|
3440
|
+
example: 'Support for ARM nodes on Hetzner.'
|
|
3441
|
+
},
|
|
3442
|
+
vote: {
|
|
3443
|
+
type: 'integer',
|
|
3444
|
+
nullable: true,
|
|
3445
|
+
description: 'The caller\'s vote on this item: -1 (down), 1 (up), 2 (double up), or null if the caller has not voted.',
|
|
3446
|
+
example: 1,
|
|
3447
|
+
enum: [
|
|
3448
|
+
-1,
|
|
3449
|
+
1,
|
|
3450
|
+
2
|
|
3451
|
+
]
|
|
3452
|
+
}
|
|
3453
|
+
},
|
|
3454
|
+
required: [
|
|
3455
|
+
'id',
|
|
3456
|
+
'text',
|
|
3457
|
+
'vote'
|
|
3458
|
+
],
|
|
3459
|
+
additionalProperties: false
|
|
3460
|
+
};
|
|
3461
|
+
export const RoadmapVoteInputSchema = {
|
|
3462
|
+
type: 'object',
|
|
3463
|
+
properties: {
|
|
3464
|
+
value: {
|
|
3465
|
+
type: 'integer',
|
|
3466
|
+
description: 'Vote value: -1 (down), 1 (up), or 2 (double up).',
|
|
3467
|
+
example: 1,
|
|
3468
|
+
enum: [
|
|
3469
|
+
-1,
|
|
3470
|
+
1,
|
|
3471
|
+
2
|
|
3472
|
+
]
|
|
3473
|
+
}
|
|
3474
|
+
},
|
|
3475
|
+
required: [
|
|
3476
|
+
'value'
|
|
3477
|
+
],
|
|
3478
|
+
additionalProperties: false
|
|
3479
|
+
};
|
|
3480
|
+
export const TicketAttachmentSchema = {
|
|
3481
|
+
type: 'object',
|
|
3482
|
+
properties: {
|
|
3483
|
+
id: {
|
|
3484
|
+
type: 'string',
|
|
3485
|
+
description: 'Unique identifier of the attachment (Mongo ObjectId).',
|
|
3486
|
+
example: '60c72b2f9f1b2c001f8e4d3c'
|
|
3487
|
+
},
|
|
3488
|
+
filename: {
|
|
3489
|
+
type: 'string',
|
|
3490
|
+
description: 'Original filename as uploaded.',
|
|
3491
|
+
example: 'debug.log'
|
|
3492
|
+
},
|
|
3493
|
+
content_type: {
|
|
3494
|
+
type: 'string',
|
|
3495
|
+
description: 'MIME content type of the attachment.',
|
|
3496
|
+
example: 'text/plain'
|
|
3497
|
+
},
|
|
3498
|
+
size: {
|
|
3499
|
+
type: 'integer',
|
|
3500
|
+
description: 'Size of the attachment in bytes.',
|
|
3501
|
+
example: 12345
|
|
3502
|
+
}
|
|
3503
|
+
},
|
|
3504
|
+
required: [
|
|
3505
|
+
'id',
|
|
3506
|
+
'filename',
|
|
3507
|
+
'content_type',
|
|
3508
|
+
'size'
|
|
3509
|
+
],
|
|
3510
|
+
additionalProperties: false
|
|
3511
|
+
};
|
|
3512
|
+
export const TicketCreateInputSchema = {
|
|
3513
|
+
type: 'object',
|
|
3514
|
+
properties: {
|
|
3515
|
+
category: {
|
|
3516
|
+
type: 'string',
|
|
3517
|
+
description: 'Ticket category. Drives auto-assignment and may carry a subcategory in `properties`.',
|
|
3518
|
+
example: 'technical',
|
|
3519
|
+
enum: [
|
|
3520
|
+
'billing',
|
|
3521
|
+
'technical',
|
|
3522
|
+
'general'
|
|
3523
|
+
]
|
|
3524
|
+
},
|
|
3525
|
+
body: {
|
|
3526
|
+
type: 'string',
|
|
3527
|
+
maxLength: 50000,
|
|
3528
|
+
minLength: 1,
|
|
3529
|
+
pattern: '\\S',
|
|
3530
|
+
description: 'Initial message body in markdown. There is no separate subject — the first message body is the description.',
|
|
3531
|
+
example: 'My cluster cannot reach the registry. Logs attached.'
|
|
3532
|
+
},
|
|
3533
|
+
properties: {
|
|
3534
|
+
type: 'object',
|
|
3535
|
+
additionalProperties: true,
|
|
3536
|
+
description: 'Free-form key/value bag set by the UI (e.g. `subcategory`, `cluster_id`, `cluster_name`, `region`).',
|
|
3537
|
+
example: {
|
|
3538
|
+
subcategory: 'cluster-question',
|
|
3539
|
+
cluster_id: '60c72b2f9f1b2c001f8e4d3a'
|
|
3540
|
+
}
|
|
3541
|
+
},
|
|
3542
|
+
grant_support_access: {
|
|
3543
|
+
type: 'boolean',
|
|
3544
|
+
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.',
|
|
3545
|
+
example: true
|
|
3546
|
+
}
|
|
3547
|
+
},
|
|
3548
|
+
required: [
|
|
3549
|
+
'category',
|
|
3550
|
+
'body'
|
|
3551
|
+
],
|
|
3552
|
+
additionalProperties: false
|
|
3553
|
+
};
|
|
3554
|
+
export const TicketMessageInputSchema = {
|
|
3555
|
+
type: 'object',
|
|
3556
|
+
properties: {
|
|
3557
|
+
body: {
|
|
3558
|
+
type: 'string',
|
|
3559
|
+
maxLength: 50000,
|
|
3560
|
+
minLength: 1,
|
|
3561
|
+
pattern: '\\S',
|
|
3562
|
+
description: 'Reply body in markdown.',
|
|
3563
|
+
example: 'Thanks — that resolved it on my side.'
|
|
3564
|
+
}
|
|
3565
|
+
},
|
|
3566
|
+
required: [
|
|
3567
|
+
'body'
|
|
3568
|
+
],
|
|
3569
|
+
additionalProperties: false
|
|
3570
|
+
};
|
|
3571
|
+
export const TicketMessageSchema = {
|
|
3572
|
+
type: 'object',
|
|
3573
|
+
properties: {
|
|
3574
|
+
id: {
|
|
3575
|
+
type: 'string',
|
|
3576
|
+
description: 'Unique identifier of the message (Mongo ObjectId).',
|
|
3577
|
+
example: '60c72b2f9f1b2c001f8e4d3b'
|
|
3578
|
+
},
|
|
3579
|
+
type: {
|
|
3580
|
+
type: 'string',
|
|
3581
|
+
description: 'Message type. Internal notes are filtered out of customer-facing responses.',
|
|
3582
|
+
example: 'customer_reply',
|
|
3583
|
+
enum: [
|
|
3584
|
+
'customer_reply',
|
|
3585
|
+
'agent_reply'
|
|
3586
|
+
]
|
|
3587
|
+
},
|
|
3588
|
+
body: {
|
|
3589
|
+
type: 'string',
|
|
3590
|
+
description: 'Message body in markdown.',
|
|
3591
|
+
example: 'Thanks — that resolved it on my side.'
|
|
3592
|
+
},
|
|
3593
|
+
author_first_name: {
|
|
3594
|
+
type: 'string',
|
|
3595
|
+
nullable: true,
|
|
3596
|
+
description: 'First name of the author. Null when not provided.',
|
|
3597
|
+
example: 'Jane'
|
|
3598
|
+
},
|
|
3599
|
+
author_last_name: {
|
|
3600
|
+
type: 'string',
|
|
3601
|
+
nullable: true,
|
|
3602
|
+
description: 'Last name of the author. Null when not provided.',
|
|
3603
|
+
example: 'Doe'
|
|
3604
|
+
},
|
|
3605
|
+
attachments: {
|
|
3606
|
+
type: 'array',
|
|
3607
|
+
items: {
|
|
3608
|
+
type: 'object',
|
|
3609
|
+
properties: {
|
|
3610
|
+
id: {
|
|
3611
|
+
type: 'string',
|
|
3612
|
+
description: 'Unique identifier of the attachment (Mongo ObjectId).',
|
|
3613
|
+
example: '60c72b2f9f1b2c001f8e4d3c'
|
|
3614
|
+
},
|
|
3615
|
+
filename: {
|
|
3616
|
+
type: 'string',
|
|
3617
|
+
description: 'Original filename as uploaded.',
|
|
3618
|
+
example: 'debug.log'
|
|
3619
|
+
},
|
|
3620
|
+
content_type: {
|
|
3621
|
+
type: 'string',
|
|
3622
|
+
description: 'MIME content type of the attachment.',
|
|
3623
|
+
example: 'text/plain'
|
|
3624
|
+
},
|
|
3625
|
+
size: {
|
|
3626
|
+
type: 'integer',
|
|
3627
|
+
description: 'Size of the attachment in bytes.',
|
|
3628
|
+
example: 12345
|
|
3629
|
+
}
|
|
3630
|
+
},
|
|
3631
|
+
required: [
|
|
3632
|
+
'id',
|
|
3633
|
+
'filename',
|
|
3634
|
+
'content_type',
|
|
3635
|
+
'size'
|
|
3636
|
+
],
|
|
3637
|
+
additionalProperties: false
|
|
3638
|
+
},
|
|
3639
|
+
description: 'Attachments associated with this message.',
|
|
3640
|
+
example: []
|
|
3641
|
+
},
|
|
3642
|
+
date_created: {
|
|
3643
|
+
type: 'string',
|
|
3644
|
+
format: 'date-time',
|
|
3645
|
+
description: 'Creation date of the message. ISO 8601 UTC.',
|
|
3646
|
+
example: '2026-05-11T16:08:14.338Z'
|
|
3647
|
+
}
|
|
3648
|
+
},
|
|
3649
|
+
required: [
|
|
3650
|
+
'id',
|
|
3651
|
+
'type',
|
|
3652
|
+
'body',
|
|
3653
|
+
'date_created'
|
|
3654
|
+
],
|
|
3655
|
+
additionalProperties: false
|
|
3656
|
+
};
|
|
3657
|
+
export const TicketSchema = {
|
|
3658
|
+
type: 'object',
|
|
3659
|
+
properties: {
|
|
3660
|
+
id: {
|
|
3661
|
+
type: 'string',
|
|
3662
|
+
description: 'Unique identifier of the ticket (Mongo ObjectId).',
|
|
3663
|
+
example: '60c72b2f9f1b2c001f8e4d3a'
|
|
3664
|
+
},
|
|
3665
|
+
status: {
|
|
3666
|
+
type: 'string',
|
|
3667
|
+
description: 'Current state of the ticket.',
|
|
3668
|
+
example: 'waiting_on_us',
|
|
3669
|
+
enum: [
|
|
3670
|
+
'waiting_on_us',
|
|
3671
|
+
'waiting_on_user',
|
|
3672
|
+
'closed'
|
|
3673
|
+
]
|
|
3674
|
+
},
|
|
3675
|
+
category: {
|
|
3676
|
+
type: 'string',
|
|
3677
|
+
description: 'Ticket category.',
|
|
3678
|
+
example: 'technical',
|
|
3679
|
+
enum: [
|
|
3680
|
+
'billing',
|
|
3681
|
+
'technical',
|
|
3682
|
+
'general'
|
|
3683
|
+
]
|
|
3684
|
+
},
|
|
3685
|
+
summary: {
|
|
3686
|
+
type: 'string',
|
|
3687
|
+
description: 'First 128 characters of the initial message body, with markdown formatting and newlines stripped. Used for ticket list previews.',
|
|
3688
|
+
example: 'My cluster cannot reach the registry. Logs attached.'
|
|
3689
|
+
},
|
|
3690
|
+
support_access_granted: {
|
|
3691
|
+
type: 'boolean',
|
|
3692
|
+
description: 'Whether Cloudfleet support staff currently have access to the organization\'s resources. True once access is granted and until the ticket is closed.',
|
|
3693
|
+
example: true
|
|
3694
|
+
},
|
|
3695
|
+
support_access_granted_at: {
|
|
3696
|
+
type: 'string',
|
|
3697
|
+
format: 'date-time',
|
|
3698
|
+
nullable: true,
|
|
3699
|
+
description: 'When support access was granted. Null if it never was. Kept after the ticket is closed.',
|
|
3700
|
+
example: '2026-05-11T16:08:14.338Z'
|
|
3701
|
+
},
|
|
3702
|
+
closed_at: {
|
|
3703
|
+
type: 'string',
|
|
3704
|
+
format: 'date-time',
|
|
3705
|
+
nullable: true,
|
|
3706
|
+
description: 'Closure timestamp. Null while the ticket is open.',
|
|
3707
|
+
example: '2026-05-18T16:08:14.338Z'
|
|
3708
|
+
},
|
|
3709
|
+
date_created: {
|
|
3710
|
+
type: 'string',
|
|
3711
|
+
format: 'date-time',
|
|
3712
|
+
description: 'Creation date of the ticket. ISO 8601 UTC.',
|
|
3713
|
+
example: '2026-05-11T16:08:14.338Z'
|
|
3714
|
+
},
|
|
3715
|
+
date_updated: {
|
|
3716
|
+
type: 'string',
|
|
3717
|
+
format: 'date-time',
|
|
3718
|
+
description: 'Last update date of the ticket. ISO 8601 UTC.',
|
|
3719
|
+
example: '2026-05-11T16:08:14.338Z'
|
|
3720
|
+
},
|
|
3721
|
+
messages: {
|
|
3722
|
+
type: 'array',
|
|
3723
|
+
items: {
|
|
3724
|
+
type: 'object',
|
|
3725
|
+
properties: {
|
|
3726
|
+
id: {
|
|
3727
|
+
type: 'string',
|
|
3728
|
+
description: 'Unique identifier of the message (Mongo ObjectId).',
|
|
3729
|
+
example: '60c72b2f9f1b2c001f8e4d3b'
|
|
3730
|
+
},
|
|
3731
|
+
type: {
|
|
3732
|
+
type: 'string',
|
|
3733
|
+
description: 'Message type. Internal notes are filtered out of customer-facing responses.',
|
|
3734
|
+
example: 'customer_reply',
|
|
3735
|
+
enum: [
|
|
3736
|
+
'customer_reply',
|
|
3737
|
+
'agent_reply'
|
|
3738
|
+
]
|
|
3739
|
+
},
|
|
3740
|
+
body: {
|
|
3741
|
+
type: 'string',
|
|
3742
|
+
description: 'Message body in markdown.',
|
|
3743
|
+
example: 'Thanks — that resolved it on my side.'
|
|
3744
|
+
},
|
|
3745
|
+
author_first_name: {
|
|
3746
|
+
type: 'string',
|
|
3747
|
+
description: 'First name of the author. Null when not provided.',
|
|
3748
|
+
example: 'Jane'
|
|
3749
|
+
},
|
|
3750
|
+
author_last_name: {
|
|
3751
|
+
type: 'string',
|
|
3752
|
+
description: 'Last name of the author. Null when not provided.',
|
|
3753
|
+
example: 'Doe'
|
|
3754
|
+
},
|
|
3755
|
+
attachments: {
|
|
3756
|
+
type: 'array',
|
|
3757
|
+
items: {
|
|
3758
|
+
type: 'object',
|
|
3759
|
+
properties: {
|
|
3760
|
+
id: {
|
|
3761
|
+
type: 'string',
|
|
3762
|
+
description: 'Unique identifier of the attachment (Mongo ObjectId).',
|
|
3763
|
+
example: '60c72b2f9f1b2c001f8e4d3c'
|
|
3764
|
+
},
|
|
3765
|
+
filename: {
|
|
3766
|
+
type: 'string',
|
|
3767
|
+
description: 'Original filename as uploaded.',
|
|
3768
|
+
example: 'debug.log'
|
|
3769
|
+
},
|
|
3770
|
+
content_type: {
|
|
3771
|
+
type: 'string',
|
|
3772
|
+
description: 'MIME content type of the attachment.',
|
|
3773
|
+
example: 'text/plain'
|
|
3774
|
+
},
|
|
3775
|
+
size: {
|
|
3776
|
+
type: 'integer',
|
|
3777
|
+
description: 'Size of the attachment in bytes.',
|
|
3778
|
+
example: 12345
|
|
3779
|
+
}
|
|
3780
|
+
},
|
|
3781
|
+
required: [
|
|
3782
|
+
'id',
|
|
3783
|
+
'filename',
|
|
3784
|
+
'content_type',
|
|
3785
|
+
'size'
|
|
3786
|
+
],
|
|
3787
|
+
additionalProperties: false
|
|
3788
|
+
},
|
|
3789
|
+
description: 'Attachments associated with this message.',
|
|
3790
|
+
example: []
|
|
3791
|
+
},
|
|
3792
|
+
date_created: {
|
|
3793
|
+
type: 'string',
|
|
3794
|
+
format: 'date-time',
|
|
3795
|
+
description: 'Creation date of the message. ISO 8601 UTC.',
|
|
3796
|
+
example: '2026-05-11T16:08:14.338Z'
|
|
3797
|
+
}
|
|
3798
|
+
},
|
|
3799
|
+
required: [
|
|
3800
|
+
'id',
|
|
3801
|
+
'type',
|
|
3802
|
+
'body',
|
|
3803
|
+
'date_created'
|
|
3804
|
+
],
|
|
3805
|
+
additionalProperties: false
|
|
3806
|
+
},
|
|
3807
|
+
description: 'Messages on the ticket in chronological order. Internal notes are excluded. Returned by the detail endpoint only.'
|
|
3808
|
+
}
|
|
3809
|
+
},
|
|
3810
|
+
required: [
|
|
3811
|
+
'id',
|
|
3812
|
+
'status',
|
|
3813
|
+
'category',
|
|
3814
|
+
'summary',
|
|
3815
|
+
'support_access_granted',
|
|
3816
|
+
'support_access_granted_at',
|
|
3817
|
+
'date_created',
|
|
3818
|
+
'date_updated'
|
|
3819
|
+
],
|
|
1401
3820
|
additionalProperties: false
|
|
1402
3821
|
};
|
|
1403
3822
|
export const TokenCreateInputSchema = {
|
|
@@ -1415,10 +3834,16 @@ export const TokenCreateInputSchema = {
|
|
|
1415
3834
|
type: 'string',
|
|
1416
3835
|
description: 'Role assumed by the token.',
|
|
1417
3836
|
example: 'User',
|
|
1418
|
-
enum: [
|
|
3837
|
+
enum: [
|
|
3838
|
+
'Administrator',
|
|
3839
|
+
'User'
|
|
3840
|
+
]
|
|
1419
3841
|
}
|
|
1420
3842
|
},
|
|
1421
|
-
required: [
|
|
3843
|
+
required: [
|
|
3844
|
+
'name',
|
|
3845
|
+
'role'
|
|
3846
|
+
],
|
|
1422
3847
|
additionalProperties: false
|
|
1423
3848
|
};
|
|
1424
3849
|
export const TokenSchema = {
|
|
@@ -1436,7 +3861,10 @@ export const TokenSchema = {
|
|
|
1436
3861
|
type: 'string',
|
|
1437
3862
|
description: 'Role assumed by the token.',
|
|
1438
3863
|
example: 'User',
|
|
1439
|
-
enum: [
|
|
3864
|
+
enum: [
|
|
3865
|
+
'Administrator',
|
|
3866
|
+
'User'
|
|
3867
|
+
]
|
|
1440
3868
|
},
|
|
1441
3869
|
id: {
|
|
1442
3870
|
type: 'string',
|
|
@@ -1455,7 +3883,11 @@ export const TokenSchema = {
|
|
|
1455
3883
|
example: '2023-12-20T13:53:32.000Z'
|
|
1456
3884
|
}
|
|
1457
3885
|
},
|
|
1458
|
-
required: [
|
|
3886
|
+
required: [
|
|
3887
|
+
'name',
|
|
3888
|
+
'role',
|
|
3889
|
+
'date_created'
|
|
3890
|
+
],
|
|
1459
3891
|
additionalProperties: false
|
|
1460
3892
|
};
|
|
1461
3893
|
export const TokenUpdateInputSchema = {
|
|
@@ -1473,7 +3905,10 @@ export const TokenUpdateInputSchema = {
|
|
|
1473
3905
|
type: 'string',
|
|
1474
3906
|
description: 'Role assumed by the token.',
|
|
1475
3907
|
example: 'User',
|
|
1476
|
-
enum: [
|
|
3908
|
+
enum: [
|
|
3909
|
+
'Administrator',
|
|
3910
|
+
'User'
|
|
3911
|
+
]
|
|
1477
3912
|
}
|
|
1478
3913
|
},
|
|
1479
3914
|
additionalProperties: false
|
|
@@ -1487,15 +3922,29 @@ export const UsageFacetsSchema = {
|
|
|
1487
3922
|
type: 'string'
|
|
1488
3923
|
},
|
|
1489
3924
|
description: 'List of unique cluster IDs',
|
|
1490
|
-
example: [
|
|
3925
|
+
example: [
|
|
3926
|
+
'6b5439b1-923a-4f2b-a371-d554e5ea23fa'
|
|
3927
|
+
]
|
|
1491
3928
|
},
|
|
1492
3929
|
product: {
|
|
1493
3930
|
type: 'array',
|
|
1494
3931
|
items: {
|
|
1495
|
-
type: 'string'
|
|
3932
|
+
type: 'string',
|
|
3933
|
+
enum: [
|
|
3934
|
+
'cfke_controlplane_basic',
|
|
3935
|
+
'cfke_controlplane_pro',
|
|
3936
|
+
'cfke_controlplane_enterprise',
|
|
3937
|
+
'cfke_connected_nodes_basic',
|
|
3938
|
+
'cfke_connected_nodes_pro',
|
|
3939
|
+
'cfke_connected_nodes_enterprise',
|
|
3940
|
+
'cfcr_storage'
|
|
3941
|
+
]
|
|
1496
3942
|
},
|
|
1497
3943
|
description: 'List of unique products',
|
|
1498
|
-
example: [
|
|
3944
|
+
example: [
|
|
3945
|
+
'cfke_controlplane_pro',
|
|
3946
|
+
'cfke_connected_nodes_pro'
|
|
3947
|
+
]
|
|
1499
3948
|
}
|
|
1500
3949
|
},
|
|
1501
3950
|
additionalProperties: false
|
|
@@ -1521,7 +3970,16 @@ export const UsageResponseSchema = {
|
|
|
1521
3970
|
product: {
|
|
1522
3971
|
type: 'string',
|
|
1523
3972
|
description: 'The product the usage is associated with',
|
|
1524
|
-
example: '
|
|
3973
|
+
example: 'cfke_controlplane_pro',
|
|
3974
|
+
enum: [
|
|
3975
|
+
'cfke_controlplane_basic',
|
|
3976
|
+
'cfke_controlplane_pro',
|
|
3977
|
+
'cfke_controlplane_enterprise',
|
|
3978
|
+
'cfke_connected_nodes_basic',
|
|
3979
|
+
'cfke_connected_nodes_pro',
|
|
3980
|
+
'cfke_connected_nodes_enterprise',
|
|
3981
|
+
'cfcr_storage'
|
|
3982
|
+
]
|
|
1525
3983
|
},
|
|
1526
3984
|
value: {
|
|
1527
3985
|
type: 'number',
|
|
@@ -1541,7 +3999,14 @@ export const UsageResponseSchema = {
|
|
|
1541
3999
|
description: 'Total cost'
|
|
1542
4000
|
}
|
|
1543
4001
|
},
|
|
1544
|
-
required: [
|
|
4002
|
+
required: [
|
|
4003
|
+
'hour',
|
|
4004
|
+
'cluster_id',
|
|
4005
|
+
'product',
|
|
4006
|
+
'value',
|
|
4007
|
+
'price',
|
|
4008
|
+
'total'
|
|
4009
|
+
],
|
|
1545
4010
|
additionalProperties: false
|
|
1546
4011
|
},
|
|
1547
4012
|
description: 'Usage data'
|
|
@@ -1555,22 +4020,39 @@ export const UsageResponseSchema = {
|
|
|
1555
4020
|
type: 'string'
|
|
1556
4021
|
},
|
|
1557
4022
|
description: 'List of unique cluster IDs',
|
|
1558
|
-
example: [
|
|
4023
|
+
example: [
|
|
4024
|
+
'6b5439b1-923a-4f2b-a371-d554e5ea23fa'
|
|
4025
|
+
]
|
|
1559
4026
|
},
|
|
1560
4027
|
product: {
|
|
1561
4028
|
type: 'array',
|
|
1562
4029
|
items: {
|
|
1563
|
-
type: 'string'
|
|
4030
|
+
type: 'string',
|
|
4031
|
+
enum: [
|
|
4032
|
+
'cfke_controlplane_basic',
|
|
4033
|
+
'cfke_controlplane_pro',
|
|
4034
|
+
'cfke_controlplane_enterprise',
|
|
4035
|
+
'cfke_connected_nodes_basic',
|
|
4036
|
+
'cfke_connected_nodes_pro',
|
|
4037
|
+
'cfke_connected_nodes_enterprise',
|
|
4038
|
+
'cfcr_storage'
|
|
4039
|
+
]
|
|
1564
4040
|
},
|
|
1565
4041
|
description: 'List of unique products',
|
|
1566
|
-
example: [
|
|
4042
|
+
example: [
|
|
4043
|
+
'cfke_controlplane_pro',
|
|
4044
|
+
'cfke_connected_nodes_pro'
|
|
4045
|
+
]
|
|
1567
4046
|
}
|
|
1568
4047
|
},
|
|
1569
4048
|
additionalProperties: false,
|
|
1570
4049
|
description: 'Facets for filtering'
|
|
1571
4050
|
}
|
|
1572
4051
|
},
|
|
1573
|
-
required: [
|
|
4052
|
+
required: [
|
|
4053
|
+
'data',
|
|
4054
|
+
'facets'
|
|
4055
|
+
],
|
|
1574
4056
|
additionalProperties: false
|
|
1575
4057
|
};
|
|
1576
4058
|
export const UsageSchema = {
|
|
@@ -1589,7 +4071,16 @@ export const UsageSchema = {
|
|
|
1589
4071
|
product: {
|
|
1590
4072
|
type: 'string',
|
|
1591
4073
|
description: 'The product the usage is associated with',
|
|
1592
|
-
example: '
|
|
4074
|
+
example: 'cfke_controlplane_pro',
|
|
4075
|
+
enum: [
|
|
4076
|
+
'cfke_controlplane_basic',
|
|
4077
|
+
'cfke_controlplane_pro',
|
|
4078
|
+
'cfke_controlplane_enterprise',
|
|
4079
|
+
'cfke_connected_nodes_basic',
|
|
4080
|
+
'cfke_connected_nodes_pro',
|
|
4081
|
+
'cfke_connected_nodes_enterprise',
|
|
4082
|
+
'cfcr_storage'
|
|
4083
|
+
]
|
|
1593
4084
|
},
|
|
1594
4085
|
value: {
|
|
1595
4086
|
type: 'number',
|
|
@@ -1609,7 +4100,14 @@ export const UsageSchema = {
|
|
|
1609
4100
|
description: 'Total cost'
|
|
1610
4101
|
}
|
|
1611
4102
|
},
|
|
1612
|
-
required: [
|
|
4103
|
+
required: [
|
|
4104
|
+
'hour',
|
|
4105
|
+
'cluster_id',
|
|
4106
|
+
'product',
|
|
4107
|
+
'value',
|
|
4108
|
+
'price',
|
|
4109
|
+
'total'
|
|
4110
|
+
],
|
|
1613
4111
|
additionalProperties: false
|
|
1614
4112
|
};
|
|
1615
4113
|
export const UserCreateInputSchema = {
|
|
@@ -1645,21 +4143,15 @@ export const UserCreateInputSchema = {
|
|
|
1645
4143
|
type: 'string',
|
|
1646
4144
|
minLength: 8,
|
|
1647
4145
|
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
4146
|
}
|
|
1661
4147
|
},
|
|
1662
|
-
required: [
|
|
4148
|
+
required: [
|
|
4149
|
+
'email',
|
|
4150
|
+
'first_name',
|
|
4151
|
+
'last_name',
|
|
4152
|
+
'code',
|
|
4153
|
+
'password'
|
|
4154
|
+
],
|
|
1663
4155
|
additionalProperties: false
|
|
1664
4156
|
};
|
|
1665
4157
|
export const UserSchema = {
|
|
@@ -1687,15 +4179,21 @@ export const UserSchema = {
|
|
|
1687
4179
|
},
|
|
1688
4180
|
role: {
|
|
1689
4181
|
type: 'string',
|
|
1690
|
-
description:
|
|
4182
|
+
description: 'User role. Can be \'Administrator\', \'User\'.',
|
|
1691
4183
|
example: 'User',
|
|
1692
|
-
enum: [
|
|
4184
|
+
enum: [
|
|
4185
|
+
'Administrator',
|
|
4186
|
+
'User'
|
|
4187
|
+
]
|
|
1693
4188
|
},
|
|
1694
4189
|
status: {
|
|
1695
4190
|
type: 'string',
|
|
1696
4191
|
description: 'Status of the user. Can be `active` or `inactive`. Inactive users cannot log in or manage organization resources.',
|
|
1697
4192
|
example: 'active',
|
|
1698
|
-
enum: [
|
|
4193
|
+
enum: [
|
|
4194
|
+
'active',
|
|
4195
|
+
'inactive'
|
|
4196
|
+
]
|
|
1699
4197
|
},
|
|
1700
4198
|
id: {
|
|
1701
4199
|
type: 'string',
|
|
@@ -1710,7 +4208,15 @@ export const UserSchema = {
|
|
|
1710
4208
|
example: '2023-11-02T16:08:14.338Z'
|
|
1711
4209
|
}
|
|
1712
4210
|
},
|
|
1713
|
-
required: [
|
|
4211
|
+
required: [
|
|
4212
|
+
'email',
|
|
4213
|
+
'first_name',
|
|
4214
|
+
'last_name',
|
|
4215
|
+
'role',
|
|
4216
|
+
'status',
|
|
4217
|
+
'id',
|
|
4218
|
+
'date_created'
|
|
4219
|
+
],
|
|
1714
4220
|
additionalProperties: false
|
|
1715
4221
|
};
|
|
1716
4222
|
export const UserUpdateInputSchema = {
|
|
@@ -1738,15 +4244,21 @@ export const UserUpdateInputSchema = {
|
|
|
1738
4244
|
},
|
|
1739
4245
|
role: {
|
|
1740
4246
|
type: 'string',
|
|
1741
|
-
description:
|
|
4247
|
+
description: 'User role. Can be \'Administrator\', \'User\'.',
|
|
1742
4248
|
example: 'User',
|
|
1743
|
-
enum: [
|
|
4249
|
+
enum: [
|
|
4250
|
+
'Administrator',
|
|
4251
|
+
'User'
|
|
4252
|
+
]
|
|
1744
4253
|
},
|
|
1745
4254
|
status: {
|
|
1746
4255
|
type: 'string',
|
|
1747
4256
|
description: 'Status of the user. Can be `active` or `inactive`. Inactive users cannot log in or manage organization resources.',
|
|
1748
4257
|
example: 'active',
|
|
1749
|
-
enum: [
|
|
4258
|
+
enum: [
|
|
4259
|
+
'active',
|
|
4260
|
+
'inactive'
|
|
4261
|
+
]
|
|
1750
4262
|
}
|
|
1751
4263
|
},
|
|
1752
4264
|
additionalProperties: false
|