@cloudfleet/sdk 0.0.1-2791829 → 0.0.1-279de9d
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 +1771 -274
- package/dist/schemas.gen.d.ts.map +1 -1
- package/dist/schemas.gen.js +3192 -308
- package/dist/schemas.gen.js.map +1 -1
- package/dist/sdk.gen.d.ts +305 -164
- package/dist/sdk.gen.d.ts.map +1 -1
- package/dist/sdk.gen.js +447 -323
- package/dist/sdk.gen.js.map +1 -1
- package/dist/services/kubernetes/api.d.ts +8 -8
- package/dist/types.gen.d.ts +2055 -580
- package/dist/types.gen.d.ts.map +1 -1
- package/dist/zod.gen.d.ts +3736 -1312
- package/dist/zod.gen.d.ts.map +1 -1
- package/dist/zod.gen.js +1570 -570
- 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,26 +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.
|
|
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
|
+
}
|
|
290
558
|
}
|
|
291
559
|
},
|
|
292
|
-
required: [
|
|
293
|
-
|
|
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.'
|
|
294
566
|
};
|
|
295
567
|
export const ClusterJoinInformationSchema = {
|
|
296
568
|
type: 'object',
|
|
@@ -298,8 +570,7 @@ export const ClusterJoinInformationSchema = {
|
|
|
298
570
|
certificate_authority: {
|
|
299
571
|
type: 'string',
|
|
300
572
|
description: 'Certificate authority data for the kubernetes cluster. This is the root certificate authority for the cluster.',
|
|
301
|
-
example:
|
|
302
|
-
MIIC0DCCAbigAwIBAgI...`
|
|
573
|
+
example: '-----BEGIN CERTIFICATE-----\nMIIC0DCCAbigAwIBAgI...'
|
|
303
574
|
},
|
|
304
575
|
endpoint: {
|
|
305
576
|
type: 'string',
|
|
@@ -307,11 +578,26 @@ MIIC0DCCAbigAwIBAgI...`
|
|
|
307
578
|
description: 'Internal URL of the Kubernetes cluster control plane. This is the endpoint that kubelet uses to connect to the cluster.',
|
|
308
579
|
example: 'https://10.31.64.7:6443'
|
|
309
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
|
+
},
|
|
310
591
|
auth_key: {
|
|
311
592
|
type: 'string',
|
|
312
593
|
description: 'Authentication key for the cluster.',
|
|
313
594
|
example: 'tskey-auth-kBV8wr1dk911CNTRL-...'
|
|
314
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
|
+
},
|
|
315
601
|
bootstrap_token: {
|
|
316
602
|
type: 'string',
|
|
317
603
|
description: 'Bootstrap token for the cluster.',
|
|
@@ -323,7 +609,7 @@ MIIC0DCCAbigAwIBAgI...`
|
|
|
323
609
|
kubernetes: {
|
|
324
610
|
type: 'string',
|
|
325
611
|
description: 'Kubernetes version of the cluster.',
|
|
326
|
-
example: '1.
|
|
612
|
+
example: '1.33.7'
|
|
327
613
|
},
|
|
328
614
|
tailscale: {
|
|
329
615
|
type: 'string',
|
|
@@ -341,7 +627,12 @@ MIIC0DCCAbigAwIBAgI...`
|
|
|
341
627
|
example: '565.0.0'
|
|
342
628
|
}
|
|
343
629
|
},
|
|
344
|
-
required: [
|
|
630
|
+
required: [
|
|
631
|
+
'kubernetes',
|
|
632
|
+
'tailscale',
|
|
633
|
+
'containerd',
|
|
634
|
+
'nvidia_driver'
|
|
635
|
+
],
|
|
345
636
|
additionalProperties: false,
|
|
346
637
|
description: 'Versions of the different components of the cluster.'
|
|
347
638
|
},
|
|
@@ -364,12 +655,26 @@ MIIC0DCCAbigAwIBAgI...`
|
|
|
364
655
|
example: '//iam.googleapis.com/projects/89014267864/locations/global/workloadIdentityPools/cfke/providers/oidc'
|
|
365
656
|
}
|
|
366
657
|
},
|
|
367
|
-
required: [
|
|
658
|
+
required: [
|
|
659
|
+
'metadata_url',
|
|
660
|
+
'aws_role_arn',
|
|
661
|
+
'gcp_workload_identity_provider'
|
|
662
|
+
],
|
|
368
663
|
additionalProperties: false,
|
|
369
|
-
description:
|
|
664
|
+
description: 'OIDC Information for hosts to access to third party API\'s.'
|
|
370
665
|
}
|
|
371
666
|
},
|
|
372
|
-
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
|
+
],
|
|
373
678
|
additionalProperties: false
|
|
374
679
|
};
|
|
375
680
|
export const ClusterSchema = {
|
|
@@ -386,22 +691,122 @@ export const ClusterSchema = {
|
|
|
386
691
|
tier: {
|
|
387
692
|
type: 'string',
|
|
388
693
|
description: 'Tier of the cluster.',
|
|
694
|
+
default: 'basic',
|
|
389
695
|
example: 'pro',
|
|
390
|
-
enum: [
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
default: 'staging',
|
|
396
|
-
example: 'northamerica-central-1a',
|
|
397
|
-
enum: ['staging', 'northamerica-central-1', 'europe-central-1a', 'northamerica-central-1a']
|
|
696
|
+
enum: [
|
|
697
|
+
'basic',
|
|
698
|
+
'pro',
|
|
699
|
+
'enterprise'
|
|
700
|
+
]
|
|
398
701
|
},
|
|
399
702
|
version_channel: {
|
|
400
703
|
type: 'string',
|
|
401
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-]+)*))?$',
|
|
402
705
|
description: 'Version of the kubernetes cluster.',
|
|
403
706
|
default: '1.x.x-cfke.x',
|
|
404
|
-
example: '1.
|
|
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
|
+
}
|
|
760
|
+
},
|
|
761
|
+
region: {
|
|
762
|
+
type: 'string',
|
|
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
|
+
}
|
|
405
810
|
},
|
|
406
811
|
id: {
|
|
407
812
|
type: 'string',
|
|
@@ -411,34 +816,56 @@ export const ClusterSchema = {
|
|
|
411
816
|
},
|
|
412
817
|
status: {
|
|
413
818
|
type: 'string',
|
|
414
|
-
description: 'Status of the cluster.
|
|
415
|
-
example: '
|
|
416
|
-
enum: [
|
|
819
|
+
description: 'Status of the cluster.',
|
|
820
|
+
example: 'deployed',
|
|
821
|
+
enum: [
|
|
822
|
+
'creating',
|
|
823
|
+
'deployed',
|
|
824
|
+
'updating',
|
|
825
|
+
'disabled'
|
|
826
|
+
]
|
|
417
827
|
},
|
|
418
828
|
endpoint: {
|
|
419
829
|
anyOf: [
|
|
420
830
|
{
|
|
421
831
|
type: 'string',
|
|
422
832
|
format: 'uri',
|
|
423
|
-
description: 'URL of the Kubernetes cluster control plane. This is the endpoint that kubectl uses to connect to the cluster.',
|
|
424
|
-
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'
|
|
425
851
|
},
|
|
426
852
|
{
|
|
427
853
|
type: 'string',
|
|
428
|
-
enum: [
|
|
854
|
+
enum: [
|
|
855
|
+
''
|
|
856
|
+
]
|
|
429
857
|
}
|
|
430
858
|
]
|
|
431
859
|
},
|
|
432
860
|
certificate_ca: {
|
|
433
861
|
type: 'string',
|
|
434
862
|
description: 'Certificate authority data for the kubernetes cluster. This is the root certificate authority for the cluster.',
|
|
435
|
-
example:
|
|
436
|
-
MIIC0DCCAbigAwIBAgI...`
|
|
863
|
+
example: '-----BEGIN CERTIFICATE-----\nMIIC0DCCAbigAwIBAgI...'
|
|
437
864
|
},
|
|
438
865
|
version_current: {
|
|
439
866
|
type: 'string',
|
|
440
867
|
description: 'Current version of the cluster.',
|
|
441
|
-
example: '1.
|
|
868
|
+
example: '1.33.7-cfke.264'
|
|
442
869
|
},
|
|
443
870
|
created_at: {
|
|
444
871
|
type: 'string',
|
|
@@ -456,8 +883,20 @@ MIIC0DCCAbigAwIBAgI...`
|
|
|
456
883
|
example: true
|
|
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.',
|
|
483
|
-
|
|
927
|
+
default: '1.x.x-cfke.x',
|
|
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,57 +1879,432 @@ 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
|
|
698
|
-
}
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
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: []
|
|
2271
|
+
}
|
|
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
|
+
],
|
|
2299
|
+
additionalProperties: false
|
|
2300
|
+
};
|
|
2301
|
+
export const InviteSchema = {
|
|
2302
|
+
type: 'object',
|
|
2303
|
+
properties: {
|
|
2304
|
+
id: {
|
|
2305
|
+
type: 'string',
|
|
2306
|
+
description: 'Unique identifier of the invitation.',
|
|
2307
|
+
example: '65831dd20d20165489cbb868'
|
|
709
2308
|
},
|
|
710
2309
|
organization_id: {
|
|
711
2310
|
type: 'string',
|
|
@@ -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
|
+
]
|
|
2341
|
+
}
|
|
2342
|
+
},
|
|
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.'
|
|
732
2503
|
}
|
|
733
2504
|
},
|
|
734
|
-
required: [
|
|
2505
|
+
required: [
|
|
2506
|
+
'code',
|
|
2507
|
+
'message',
|
|
2508
|
+
'results'
|
|
2509
|
+
],
|
|
735
2510
|
additionalProperties: false
|
|
736
2511
|
};
|
|
737
2512
|
export const InvoiceSchema = {
|
|
@@ -739,9 +2514,8 @@ export const InvoiceSchema = {
|
|
|
739
2514
|
properties: {
|
|
740
2515
|
id: {
|
|
741
2516
|
type: 'string',
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
example: '415026b6-f00f-44f8-968d-fc6ef4d0fc6d'
|
|
2517
|
+
description: 'Unique identifier of the invoice.',
|
|
2518
|
+
example: 'in_1234567890xCrwxghOTj1234'
|
|
745
2519
|
},
|
|
746
2520
|
number: {
|
|
747
2521
|
type: 'string'
|
|
@@ -784,95 +2558,179 @@ export const InvoiceSchema = {
|
|
|
784
2558
|
type: 'string'
|
|
785
2559
|
}
|
|
786
2560
|
},
|
|
787
|
-
required: [
|
|
2561
|
+
required: [
|
|
2562
|
+
'created',
|
|
2563
|
+
'period_start',
|
|
2564
|
+
'period_end'
|
|
2565
|
+
],
|
|
788
2566
|
additionalProperties: false
|
|
789
2567
|
};
|
|
790
|
-
export const
|
|
2568
|
+
export const MarketplaceListingFilesSchema = {
|
|
791
2569
|
type: 'object',
|
|
792
2570
|
properties: {
|
|
793
|
-
|
|
794
|
-
type: 'string',
|
|
795
|
-
maxLength: 63,
|
|
796
|
-
minLength: 1,
|
|
797
|
-
pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
|
|
798
|
-
description: 'Id of the chart listing',
|
|
799
|
-
example: 'portworx-enterprise-disaster-recovery-baremetal'
|
|
800
|
-
},
|
|
801
|
-
name: {
|
|
2571
|
+
chartYaml: {
|
|
802
2572
|
type: 'string',
|
|
803
|
-
description: '
|
|
804
|
-
example: '
|
|
805
|
-
},
|
|
806
|
-
developer: {
|
|
807
|
-
type: 'string',
|
|
808
|
-
description: 'Author of the chart listing',
|
|
809
|
-
example: 'Portworx'
|
|
2573
|
+
description: 'Raw Chart.yaml content from the Helm chart',
|
|
2574
|
+
example: 'apiVersion: v2\nname: nginx-ingress\nversion: 1.18.2-cfke.45\nappVersion: 1.9.4'
|
|
810
2575
|
},
|
|
811
|
-
|
|
2576
|
+
valuesYaml: {
|
|
812
2577
|
type: 'string',
|
|
813
|
-
description: '
|
|
814
|
-
example: '
|
|
2578
|
+
description: 'Raw values.yaml content from the Helm chart',
|
|
2579
|
+
example: 'replicaCount: 1\nimage:\n repository: nginx\n tag: latest'
|
|
815
2580
|
},
|
|
816
|
-
|
|
2581
|
+
valuesSchemaJson: {
|
|
817
2582
|
type: 'string',
|
|
818
|
-
description: '
|
|
819
|
-
example: '
|
|
820
|
-
}
|
|
821
|
-
|
|
2583
|
+
description: 'JSON schema for values.yaml as a string',
|
|
2584
|
+
example: '{"type":"object","properties":{"replicaCount":{"type":"number"}}}'
|
|
2585
|
+
}
|
|
2586
|
+
},
|
|
2587
|
+
additionalProperties: false
|
|
2588
|
+
};
|
|
2589
|
+
export const MarketplaceListingSchema = {
|
|
2590
|
+
type: 'object',
|
|
2591
|
+
properties: {
|
|
2592
|
+
name: {
|
|
822
2593
|
type: 'string',
|
|
823
|
-
description: '
|
|
824
|
-
example: '
|
|
2594
|
+
description: 'Name of the chart',
|
|
2595
|
+
example: 'nginx-ingress'
|
|
825
2596
|
},
|
|
826
|
-
|
|
2597
|
+
versions: {
|
|
827
2598
|
type: 'array',
|
|
828
2599
|
items: {
|
|
829
2600
|
type: 'string',
|
|
830
|
-
|
|
2601
|
+
pattern: '^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(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-]+)*))?$',
|
|
2602
|
+
description: 'Specific version of the chart',
|
|
2603
|
+
example: '1.18.2-cfke.45'
|
|
831
2604
|
},
|
|
832
|
-
description: '
|
|
2605
|
+
description: 'Available versions of the chart'
|
|
833
2606
|
},
|
|
834
2607
|
version_channels: {
|
|
835
2608
|
type: 'array',
|
|
836
2609
|
items: {
|
|
837
2610
|
type: 'string',
|
|
838
2611
|
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-]+)*))?$',
|
|
839
|
-
description: 'Version
|
|
840
|
-
example: '
|
|
841
|
-
}
|
|
2612
|
+
description: 'Version channel pattern',
|
|
2613
|
+
example: '1.18.x-cfke.x'
|
|
2614
|
+
},
|
|
2615
|
+
description: 'Version channels for the chart'
|
|
842
2616
|
},
|
|
843
|
-
|
|
844
|
-
type: '
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
2617
|
+
latestVersion: {
|
|
2618
|
+
type: 'string',
|
|
2619
|
+
description: 'Latest version of the chart',
|
|
2620
|
+
example: '1.18.2-cfke.45'
|
|
2621
|
+
},
|
|
2622
|
+
metadata: {
|
|
2623
|
+
type: 'object',
|
|
2624
|
+
properties: {
|
|
2625
|
+
name: {
|
|
2626
|
+
type: 'string',
|
|
2627
|
+
description: 'Chart name from metadata',
|
|
2628
|
+
example: 'nginx-ingress'
|
|
2629
|
+
},
|
|
2630
|
+
version: {
|
|
2631
|
+
type: 'string',
|
|
2632
|
+
description: 'Chart version from metadata',
|
|
2633
|
+
example: '1.18.2-cfke.45'
|
|
2634
|
+
},
|
|
2635
|
+
description: {
|
|
2636
|
+
type: 'string',
|
|
2637
|
+
description: 'Chart description',
|
|
2638
|
+
example: 'NGINX Ingress Controller for Kubernetes'
|
|
2639
|
+
},
|
|
2640
|
+
appVersion: {
|
|
2641
|
+
type: 'string',
|
|
2642
|
+
description: 'Application version',
|
|
2643
|
+
example: '1.9.4'
|
|
2644
|
+
},
|
|
2645
|
+
apiVersion: {
|
|
2646
|
+
type: 'string',
|
|
2647
|
+
description: 'Helm API version',
|
|
2648
|
+
example: 'v2'
|
|
2649
|
+
},
|
|
2650
|
+
keywords: {
|
|
2651
|
+
type: 'array',
|
|
2652
|
+
items: {
|
|
2653
|
+
type: 'string'
|
|
853
2654
|
},
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
2655
|
+
description: 'Chart keywords',
|
|
2656
|
+
example: [
|
|
2657
|
+
'ingress',
|
|
2658
|
+
'nginx',
|
|
2659
|
+
'load-balancer'
|
|
2660
|
+
]
|
|
2661
|
+
},
|
|
2662
|
+
home: {
|
|
2663
|
+
type: 'string',
|
|
2664
|
+
description: 'Chart home URL',
|
|
2665
|
+
example: 'https://kubernetes.github.io/ingress-nginx/'
|
|
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
|
+
},
|
|
2672
|
+
sources: {
|
|
2673
|
+
type: 'array',
|
|
2674
|
+
items: {
|
|
2675
|
+
type: 'string'
|
|
857
2676
|
},
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
bar: example`
|
|
863
|
-
}
|
|
2677
|
+
description: 'Chart source URLs',
|
|
2678
|
+
example: [
|
|
2679
|
+
'https://github.com/kubernetes/ingress-nginx'
|
|
2680
|
+
]
|
|
864
2681
|
},
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
2682
|
+
maintainers: {
|
|
2683
|
+
type: 'array',
|
|
2684
|
+
items: {
|
|
2685
|
+
type: 'object',
|
|
2686
|
+
properties: {
|
|
2687
|
+
name: {
|
|
2688
|
+
type: 'string',
|
|
2689
|
+
description: 'Maintainer name',
|
|
2690
|
+
example: 'NGINX Team'
|
|
2691
|
+
},
|
|
2692
|
+
email: {
|
|
2693
|
+
type: 'string',
|
|
2694
|
+
description: 'Maintainer email',
|
|
2695
|
+
example: 'support@nginx.org'
|
|
2696
|
+
}
|
|
2697
|
+
},
|
|
2698
|
+
required: [
|
|
2699
|
+
'name'
|
|
2700
|
+
],
|
|
2701
|
+
additionalProperties: false
|
|
2702
|
+
},
|
|
2703
|
+
description: 'Chart maintainers'
|
|
2704
|
+
}
|
|
2705
|
+
},
|
|
2706
|
+
required: [
|
|
2707
|
+
'name',
|
|
2708
|
+
'version'
|
|
2709
|
+
],
|
|
2710
|
+
additionalProperties: false,
|
|
2711
|
+
description: 'Chart metadata'
|
|
868
2712
|
}
|
|
869
2713
|
},
|
|
870
|
-
required: [
|
|
2714
|
+
required: [
|
|
2715
|
+
'name',
|
|
2716
|
+
'versions',
|
|
2717
|
+
'version_channels',
|
|
2718
|
+
'latestVersion'
|
|
2719
|
+
],
|
|
871
2720
|
additionalProperties: false
|
|
872
2721
|
};
|
|
873
2722
|
export const OrganizationCreateInputSchema = {
|
|
874
2723
|
type: 'object',
|
|
875
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
|
+
},
|
|
876
2734
|
email: {
|
|
877
2735
|
type: 'string',
|
|
878
2736
|
format: 'email',
|
|
@@ -881,11 +2739,13 @@ export const OrganizationCreateInputSchema = {
|
|
|
881
2739
|
},
|
|
882
2740
|
first_name: {
|
|
883
2741
|
type: 'string',
|
|
2742
|
+
minLength: 1,
|
|
884
2743
|
description: 'First name of the billing contact person.',
|
|
885
2744
|
example: 'John'
|
|
886
2745
|
},
|
|
887
2746
|
last_name: {
|
|
888
2747
|
type: 'string',
|
|
2748
|
+
minLength: 1,
|
|
889
2749
|
description: 'Last name of the billing contact person.',
|
|
890
2750
|
example: 'Doe'
|
|
891
2751
|
},
|
|
@@ -903,7 +2763,28 @@ export const OrganizationCreateInputSchema = {
|
|
|
903
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.'
|
|
904
2764
|
}
|
|
905
2765
|
},
|
|
906
|
-
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
|
+
],
|
|
907
2788
|
additionalProperties: false
|
|
908
2789
|
};
|
|
909
2790
|
export const OrganizationSchema = {
|
|
@@ -922,6 +2803,15 @@ export const OrganizationSchema = {
|
|
|
922
2803
|
description: 'Name of the legal entity. This name will be used in invoices. Use your first and last name for individual accounts.',
|
|
923
2804
|
example: 'ACME Corp.'
|
|
924
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
|
+
},
|
|
925
2815
|
date_created: {
|
|
926
2816
|
type: 'string',
|
|
927
2817
|
format: 'date-time',
|
|
@@ -953,6 +2843,17 @@ export const OrganizationSchema = {
|
|
|
953
2843
|
description: 'Available number of Pro clusters that can be created.',
|
|
954
2844
|
example: 999
|
|
955
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
|
+
},
|
|
956
2857
|
fleets_max: {
|
|
957
2858
|
type: 'integer',
|
|
958
2859
|
minimum: 0,
|
|
@@ -972,7 +2873,7 @@ export const OrganizationSchema = {
|
|
|
972
2873
|
type: 'array',
|
|
973
2874
|
items: {
|
|
974
2875
|
type: 'string',
|
|
975
|
-
example: 'northamerica-central-
|
|
2876
|
+
example: 'northamerica-central-1a'
|
|
976
2877
|
},
|
|
977
2878
|
minItems: 1,
|
|
978
2879
|
description: 'List of Cloudfleet control plane regions available for the organization.'
|
|
@@ -985,32 +2886,74 @@ export const OrganizationSchema = {
|
|
|
985
2886
|
id: {
|
|
986
2887
|
type: 'string',
|
|
987
2888
|
description: 'Id of the control plane version. Used in API calls.',
|
|
988
|
-
example: '1.
|
|
2889
|
+
example: '1.33.x-cfke.x'
|
|
989
2890
|
},
|
|
990
2891
|
label: {
|
|
991
2892
|
type: 'string',
|
|
992
2893
|
description: 'Label of the control plane version. Used in frontent UI.',
|
|
993
|
-
example: '1.
|
|
2894
|
+
example: '1.33.x (Always latest 1.33 patch version)'
|
|
994
2895
|
}
|
|
995
2896
|
},
|
|
996
|
-
required: [
|
|
2897
|
+
required: [
|
|
2898
|
+
'id',
|
|
2899
|
+
'label'
|
|
2900
|
+
],
|
|
997
2901
|
additionalProperties: false
|
|
998
2902
|
},
|
|
999
2903
|
minItems: 1,
|
|
1000
2904
|
description: 'List of CFKE control plane versions available for the organization.'
|
|
2905
|
+
},
|
|
2906
|
+
cfcr_storage_gb: {
|
|
2907
|
+
type: 'integer',
|
|
2908
|
+
minimum: -1,
|
|
2909
|
+
description: 'Organization-level maximum CFCR storage volume in GB. -1 means no limit.',
|
|
2910
|
+
example: 500
|
|
1001
2911
|
}
|
|
1002
2912
|
},
|
|
1003
|
-
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
|
+
],
|
|
1004
2926
|
additionalProperties: false,
|
|
1005
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.'
|
|
1006
2928
|
},
|
|
1007
2929
|
status: {
|
|
1008
2930
|
type: 'string',
|
|
1009
2931
|
description: 'Status of the organization. Can be `active` or `closed`, or `suspended`.',
|
|
1010
|
-
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
|
+
]
|
|
1011
2947
|
}
|
|
1012
2948
|
},
|
|
1013
|
-
required: [
|
|
2949
|
+
required: [
|
|
2950
|
+
'id',
|
|
2951
|
+
'type',
|
|
2952
|
+
'date_created',
|
|
2953
|
+
'quota',
|
|
2954
|
+
'status',
|
|
2955
|
+
'verification'
|
|
2956
|
+
],
|
|
1014
2957
|
additionalProperties: false
|
|
1015
2958
|
};
|
|
1016
2959
|
export const PaymentMethodSchema = {
|
|
@@ -1018,26 +2961,23 @@ export const PaymentMethodSchema = {
|
|
|
1018
2961
|
properties: {
|
|
1019
2962
|
id: {
|
|
1020
2963
|
type: 'string',
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
example: 'e94d30ec-a2dd-4dcb-832c-ac2be144ba91'
|
|
1024
|
-
},
|
|
1025
|
-
setup: {
|
|
1026
|
-
type: 'boolean',
|
|
1027
|
-
description: 'Whether organization payment method was set up and ready to use for payments.',
|
|
1028
|
-
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'
|
|
1029
2966
|
},
|
|
1030
2967
|
type: {
|
|
1031
2968
|
type: 'string',
|
|
1032
|
-
|
|
1033
|
-
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.',
|
|
1034
2970
|
example: 'card',
|
|
1035
|
-
enum: [
|
|
2971
|
+
enum: [
|
|
2972
|
+
'card',
|
|
2973
|
+
'sepa_debit',
|
|
2974
|
+
'bank_transfer'
|
|
2975
|
+
]
|
|
1036
2976
|
},
|
|
1037
2977
|
last4: {
|
|
1038
2978
|
type: 'string',
|
|
1039
2979
|
nullable: true,
|
|
1040
|
-
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.',
|
|
1041
2981
|
example: '4242'
|
|
1042
2982
|
},
|
|
1043
2983
|
exp_month: {
|
|
@@ -1045,30 +2985,843 @@ export const PaymentMethodSchema = {
|
|
|
1045
2985
|
minimum: 1,
|
|
1046
2986
|
maximum: 12,
|
|
1047
2987
|
nullable: true,
|
|
1048
|
-
description:
|
|
1049
|
-
example:
|
|
2988
|
+
description: 'Two-digit number representing the card\'s expiration month. Null for SEPA Direct Debit and bank transfer.',
|
|
2989
|
+
example: 12
|
|
1050
2990
|
},
|
|
1051
2991
|
exp_year: {
|
|
1052
2992
|
type: 'integer',
|
|
1053
|
-
minimum: 2024,
|
|
1054
2993
|
nullable: true,
|
|
1055
|
-
description:
|
|
1056
|
-
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
|
|
1057
2996
|
},
|
|
1058
2997
|
brand: {
|
|
1059
2998
|
type: 'string',
|
|
1060
2999
|
nullable: true,
|
|
1061
|
-
description: 'Payment card brand
|
|
1062
|
-
example: 'visa'
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
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
|
|
3025
|
+
}
|
|
3026
|
+
},
|
|
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
|
+
],
|
|
3039
|
+
additionalProperties: false
|
|
3040
|
+
};
|
|
3041
|
+
export const PlatformQuotaSchema = {
|
|
3042
|
+
type: 'object',
|
|
3043
|
+
properties: {
|
|
3044
|
+
basic_clusters_max: {
|
|
3045
|
+
type: 'integer',
|
|
3046
|
+
minimum: 0,
|
|
3047
|
+
description: 'Maximum number of Basic clusters that can be created.',
|
|
3048
|
+
example: 999
|
|
3049
|
+
},
|
|
3050
|
+
basic_clusters_available: {
|
|
3051
|
+
type: 'integer',
|
|
3052
|
+
description: 'Available number of Basic clusters that can be created.',
|
|
3053
|
+
example: 999
|
|
3054
|
+
},
|
|
3055
|
+
pro_clusters_max: {
|
|
3056
|
+
type: 'integer',
|
|
3057
|
+
minimum: 0,
|
|
3058
|
+
description: 'Maximum number of Pro clusters that can be created.',
|
|
3059
|
+
example: 999
|
|
3060
|
+
},
|
|
3061
|
+
pro_clusters_available: {
|
|
3062
|
+
type: 'integer',
|
|
3063
|
+
description: 'Available number of Pro clusters that can be created.',
|
|
3064
|
+
example: 999
|
|
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
|
+
},
|
|
3077
|
+
fleets_max: {
|
|
3078
|
+
type: 'integer',
|
|
3079
|
+
minimum: 0,
|
|
3080
|
+
description: 'Maximum number of fleets that can be created per cluster.',
|
|
3081
|
+
example: 999
|
|
3082
|
+
},
|
|
3083
|
+
cluster_tiers: {
|
|
3084
|
+
type: 'array',
|
|
3085
|
+
items: {
|
|
3086
|
+
type: 'string',
|
|
3087
|
+
example: 'basic'
|
|
3088
|
+
},
|
|
3089
|
+
minItems: 0,
|
|
3090
|
+
description: 'List of Cloudfleet cluster tiers available for the organization.'
|
|
3091
|
+
},
|
|
3092
|
+
regions: {
|
|
3093
|
+
type: 'array',
|
|
3094
|
+
items: {
|
|
3095
|
+
type: 'string',
|
|
3096
|
+
example: 'northamerica-central-1a'
|
|
3097
|
+
},
|
|
3098
|
+
minItems: 1,
|
|
3099
|
+
description: 'List of Cloudfleet control plane regions available for the organization.'
|
|
3100
|
+
},
|
|
3101
|
+
versions: {
|
|
3102
|
+
type: 'array',
|
|
3103
|
+
items: {
|
|
3104
|
+
type: 'object',
|
|
3105
|
+
properties: {
|
|
3106
|
+
id: {
|
|
3107
|
+
type: 'string',
|
|
3108
|
+
description: 'Id of the control plane version. Used in API calls.',
|
|
3109
|
+
example: '1.33.x-cfke.x'
|
|
3110
|
+
},
|
|
3111
|
+
label: {
|
|
3112
|
+
type: 'string',
|
|
3113
|
+
description: 'Label of the control plane version. Used in frontent UI.',
|
|
3114
|
+
example: '1.33.x (Always latest 1.33 patch version)'
|
|
3115
|
+
}
|
|
3116
|
+
},
|
|
3117
|
+
required: [
|
|
3118
|
+
'id',
|
|
3119
|
+
'label'
|
|
3120
|
+
],
|
|
3121
|
+
additionalProperties: false
|
|
3122
|
+
},
|
|
3123
|
+
minItems: 1,
|
|
3124
|
+
description: 'List of CFKE control plane versions available for the organization.'
|
|
3125
|
+
},
|
|
3126
|
+
cfcr_storage_gb: {
|
|
3127
|
+
type: 'integer',
|
|
3128
|
+
minimum: -1,
|
|
3129
|
+
description: 'Organization-level maximum CFCR storage volume in GB. -1 means no limit.',
|
|
3130
|
+
example: 500
|
|
3131
|
+
}
|
|
3132
|
+
},
|
|
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
|
+
],
|
|
3146
|
+
additionalProperties: false
|
|
3147
|
+
};
|
|
3148
|
+
export const RegistryRepositorySchema = {
|
|
3149
|
+
type: 'object',
|
|
3150
|
+
properties: {
|
|
3151
|
+
name: {
|
|
3152
|
+
type: 'string',
|
|
3153
|
+
description: 'Repository name.',
|
|
3154
|
+
example: 'my-app'
|
|
3155
|
+
},
|
|
3156
|
+
region: {
|
|
3157
|
+
type: 'string',
|
|
3158
|
+
description: 'Registry region.',
|
|
3159
|
+
example: 'northamerica'
|
|
3160
|
+
},
|
|
3161
|
+
uri: {
|
|
3162
|
+
type: 'string',
|
|
3163
|
+
description: 'Full URI of the repository.',
|
|
3164
|
+
example: 'ssds123e-6651-4e5d-9c04-079f6532989b.northamerica.registry.cloudfleet.dev/my-app'
|
|
3165
|
+
}
|
|
3166
|
+
},
|
|
3167
|
+
required: [
|
|
3168
|
+
'name',
|
|
3169
|
+
'region',
|
|
3170
|
+
'uri'
|
|
3171
|
+
],
|
|
3172
|
+
additionalProperties: false
|
|
3173
|
+
};
|
|
3174
|
+
export const RegistryRepositoryWithTagsSchema = {
|
|
3175
|
+
type: 'object',
|
|
3176
|
+
properties: {
|
|
3177
|
+
name: {
|
|
3178
|
+
type: 'string',
|
|
3179
|
+
description: 'Repository name.',
|
|
3180
|
+
example: 'my-app'
|
|
3181
|
+
},
|
|
3182
|
+
region: {
|
|
3183
|
+
type: 'string',
|
|
3184
|
+
description: 'Registry region.',
|
|
3185
|
+
example: 'northamerica'
|
|
3186
|
+
},
|
|
3187
|
+
uri: {
|
|
3188
|
+
type: 'string',
|
|
3189
|
+
description: 'Full URI of the repository.',
|
|
3190
|
+
example: 'ssds123e-6651-4e5d-9c04-079f6532989b.northamerica.registry.cloudfleet.dev/my-app'
|
|
3191
|
+
},
|
|
3192
|
+
tags: {
|
|
3193
|
+
type: 'array',
|
|
3194
|
+
items: {
|
|
3195
|
+
type: 'object',
|
|
3196
|
+
properties: {
|
|
3197
|
+
name: {
|
|
3198
|
+
type: 'string',
|
|
3199
|
+
description: 'Tag name.',
|
|
3200
|
+
example: 'latest'
|
|
3201
|
+
},
|
|
3202
|
+
size: {
|
|
3203
|
+
type: 'number',
|
|
3204
|
+
format: 'float',
|
|
3205
|
+
description: 'Size of the tag in bytes.',
|
|
3206
|
+
example: 123456789
|
|
3207
|
+
},
|
|
3208
|
+
mediaType: {
|
|
3209
|
+
type: 'string',
|
|
3210
|
+
description: 'Media type of the manifest.',
|
|
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
|
+
]
|
|
3223
|
+
}
|
|
3224
|
+
},
|
|
3225
|
+
required: [
|
|
3226
|
+
'name',
|
|
3227
|
+
'size'
|
|
3228
|
+
],
|
|
3229
|
+
additionalProperties: false
|
|
3230
|
+
},
|
|
3231
|
+
description: 'Array of tags in the repository.'
|
|
3232
|
+
},
|
|
3233
|
+
totalSize: {
|
|
3234
|
+
type: 'number',
|
|
3235
|
+
format: 'float',
|
|
3236
|
+
description: 'Total size of all tags in the repository in bytes.',
|
|
3237
|
+
example: 987654321
|
|
3238
|
+
}
|
|
3239
|
+
},
|
|
3240
|
+
required: [
|
|
3241
|
+
'name',
|
|
3242
|
+
'region',
|
|
3243
|
+
'uri',
|
|
3244
|
+
'tags',
|
|
3245
|
+
'totalSize'
|
|
3246
|
+
],
|
|
3247
|
+
additionalProperties: false
|
|
3248
|
+
};
|
|
3249
|
+
export const RegistryTagSchema = {
|
|
3250
|
+
type: 'object',
|
|
3251
|
+
properties: {
|
|
3252
|
+
name: {
|
|
3253
|
+
type: 'string',
|
|
3254
|
+
description: 'Tag name.',
|
|
3255
|
+
example: 'latest'
|
|
3256
|
+
},
|
|
3257
|
+
digest: {
|
|
3258
|
+
type: 'string',
|
|
3259
|
+
description: 'Manifest digest for pulling by digest.',
|
|
3260
|
+
example: 'sha256:abcd1234ef567890abcd1234ef567890abcd1234ef567890abcd1234ef567890'
|
|
3261
|
+
},
|
|
3262
|
+
mediaType: {
|
|
3263
|
+
type: 'string',
|
|
3264
|
+
description: 'Media type of the manifest.',
|
|
3265
|
+
example: 'application/vnd.docker.distribution.manifest.v2+json'
|
|
3266
|
+
},
|
|
3267
|
+
config: {
|
|
3268
|
+
type: 'object',
|
|
3269
|
+
properties: {
|
|
3270
|
+
size: {
|
|
3271
|
+
type: 'number',
|
|
3272
|
+
format: 'float',
|
|
3273
|
+
description: 'Size of the config in bytes.',
|
|
3274
|
+
example: 1234
|
|
3275
|
+
}
|
|
3276
|
+
},
|
|
3277
|
+
required: [
|
|
3278
|
+
'size'
|
|
3279
|
+
],
|
|
3280
|
+
additionalProperties: false,
|
|
3281
|
+
description: 'Manifest config metadata.'
|
|
3282
|
+
},
|
|
3283
|
+
layers: {
|
|
3284
|
+
type: 'array',
|
|
3285
|
+
items: {
|
|
3286
|
+
type: 'object',
|
|
3287
|
+
properties: {
|
|
3288
|
+
digest: {
|
|
3289
|
+
type: 'string',
|
|
3290
|
+
description: 'Digest of the layer.',
|
|
3291
|
+
example: 'sha256:abcd1234ef567890abcd1234ef567890abcd1234ef567890abcd1234ef567890'
|
|
3292
|
+
},
|
|
3293
|
+
size: {
|
|
3294
|
+
type: 'number',
|
|
3295
|
+
format: 'float',
|
|
3296
|
+
description: 'Size of the layer in bytes.',
|
|
3297
|
+
example: 5678
|
|
3298
|
+
}
|
|
3299
|
+
},
|
|
3300
|
+
required: [
|
|
3301
|
+
'size'
|
|
3302
|
+
],
|
|
3303
|
+
additionalProperties: false
|
|
3304
|
+
},
|
|
3305
|
+
description: 'Array of layer metadata.'
|
|
3306
|
+
},
|
|
3307
|
+
manifests: {
|
|
3308
|
+
type: 'array',
|
|
3309
|
+
items: {
|
|
3310
|
+
type: 'object',
|
|
3311
|
+
properties: {
|
|
3312
|
+
digest: {
|
|
3313
|
+
type: 'string',
|
|
3314
|
+
description: 'Digest of the manifest.',
|
|
3315
|
+
example: 'sha256:abcd1234ef567890abcd1234ef567890abcd1234ef567890abcd1234ef567890'
|
|
3316
|
+
},
|
|
3317
|
+
platform: {
|
|
3318
|
+
type: 'object',
|
|
3319
|
+
properties: {
|
|
3320
|
+
architecture: {
|
|
3321
|
+
type: 'string',
|
|
3322
|
+
description: 'Architecture of the platform.',
|
|
3323
|
+
example: 'amd64'
|
|
3324
|
+
},
|
|
3325
|
+
os: {
|
|
3326
|
+
type: 'string',
|
|
3327
|
+
description: 'Operating system of the platform.',
|
|
3328
|
+
example: 'linux'
|
|
3329
|
+
},
|
|
3330
|
+
variant: {
|
|
3331
|
+
type: 'string',
|
|
3332
|
+
description: 'Variant of the platform (e.g., v7, v8 for ARM).',
|
|
3333
|
+
example: 'v8'
|
|
3334
|
+
}
|
|
3335
|
+
},
|
|
3336
|
+
required: [
|
|
3337
|
+
'architecture',
|
|
3338
|
+
'os'
|
|
3339
|
+
],
|
|
3340
|
+
additionalProperties: false,
|
|
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
|
|
3372
|
+
}
|
|
3373
|
+
},
|
|
3374
|
+
required: [
|
|
3375
|
+
'digest'
|
|
3376
|
+
],
|
|
3377
|
+
additionalProperties: false
|
|
3378
|
+
},
|
|
3379
|
+
description: 'Array of manifests for multi-arch images.'
|
|
3380
|
+
},
|
|
3381
|
+
size: {
|
|
3382
|
+
type: 'number',
|
|
3383
|
+
format: 'float',
|
|
3384
|
+
description: 'Total size of the tag in bytes.',
|
|
3385
|
+
example: 123456789
|
|
3386
|
+
},
|
|
3387
|
+
region: {
|
|
3388
|
+
type: 'string',
|
|
3389
|
+
description: 'Registry region.',
|
|
3390
|
+
example: 'northamerica'
|
|
3391
|
+
},
|
|
3392
|
+
repository: {
|
|
3393
|
+
type: 'string',
|
|
3394
|
+
description: 'Repository name.',
|
|
3395
|
+
example: 'my-app'
|
|
3396
|
+
},
|
|
3397
|
+
uri: {
|
|
3398
|
+
type: 'string',
|
|
3399
|
+
description: 'Full URI of the tag.',
|
|
3400
|
+
example: 'ssds123e-6651-4e5d-9c04-079f6532989b.northamerica.registry.cloudfleet.dev/my-app:latest'
|
|
3401
|
+
}
|
|
3402
|
+
},
|
|
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
|
+
],
|
|
3820
|
+
additionalProperties: false
|
|
3821
|
+
};
|
|
3822
|
+
export const TokenCreateInputSchema = {
|
|
3823
|
+
type: 'object',
|
|
3824
|
+
properties: {
|
|
1072
3825
|
name: {
|
|
1073
3826
|
type: 'string',
|
|
1074
3827
|
maxLength: 63,
|
|
@@ -1081,10 +3834,16 @@ export const TokenCreateInputSchema = {
|
|
|
1081
3834
|
type: 'string',
|
|
1082
3835
|
description: 'Role assumed by the token.',
|
|
1083
3836
|
example: 'User',
|
|
1084
|
-
enum: [
|
|
3837
|
+
enum: [
|
|
3838
|
+
'Administrator',
|
|
3839
|
+
'User'
|
|
3840
|
+
]
|
|
1085
3841
|
}
|
|
1086
3842
|
},
|
|
1087
|
-
required: [
|
|
3843
|
+
required: [
|
|
3844
|
+
'name',
|
|
3845
|
+
'role'
|
|
3846
|
+
],
|
|
1088
3847
|
additionalProperties: false
|
|
1089
3848
|
};
|
|
1090
3849
|
export const TokenSchema = {
|
|
@@ -1102,7 +3861,10 @@ export const TokenSchema = {
|
|
|
1102
3861
|
type: 'string',
|
|
1103
3862
|
description: 'Role assumed by the token.',
|
|
1104
3863
|
example: 'User',
|
|
1105
|
-
enum: [
|
|
3864
|
+
enum: [
|
|
3865
|
+
'Administrator',
|
|
3866
|
+
'User'
|
|
3867
|
+
]
|
|
1106
3868
|
},
|
|
1107
3869
|
id: {
|
|
1108
3870
|
type: 'string',
|
|
@@ -1121,7 +3883,11 @@ export const TokenSchema = {
|
|
|
1121
3883
|
example: '2023-12-20T13:53:32.000Z'
|
|
1122
3884
|
}
|
|
1123
3885
|
},
|
|
1124
|
-
required: [
|
|
3886
|
+
required: [
|
|
3887
|
+
'name',
|
|
3888
|
+
'role',
|
|
3889
|
+
'date_created'
|
|
3890
|
+
],
|
|
1125
3891
|
additionalProperties: false
|
|
1126
3892
|
};
|
|
1127
3893
|
export const TokenUpdateInputSchema = {
|
|
@@ -1139,9 +3905,154 @@ export const TokenUpdateInputSchema = {
|
|
|
1139
3905
|
type: 'string',
|
|
1140
3906
|
description: 'Role assumed by the token.',
|
|
1141
3907
|
example: 'User',
|
|
1142
|
-
enum: [
|
|
3908
|
+
enum: [
|
|
3909
|
+
'Administrator',
|
|
3910
|
+
'User'
|
|
3911
|
+
]
|
|
3912
|
+
}
|
|
3913
|
+
},
|
|
3914
|
+
additionalProperties: false
|
|
3915
|
+
};
|
|
3916
|
+
export const UsageFacetsSchema = {
|
|
3917
|
+
type: 'object',
|
|
3918
|
+
properties: {
|
|
3919
|
+
cluster_id: {
|
|
3920
|
+
type: 'array',
|
|
3921
|
+
items: {
|
|
3922
|
+
type: 'string'
|
|
3923
|
+
},
|
|
3924
|
+
description: 'List of unique cluster IDs',
|
|
3925
|
+
example: [
|
|
3926
|
+
'6b5439b1-923a-4f2b-a371-d554e5ea23fa'
|
|
3927
|
+
]
|
|
3928
|
+
},
|
|
3929
|
+
product: {
|
|
3930
|
+
type: 'array',
|
|
3931
|
+
items: {
|
|
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
|
+
]
|
|
3942
|
+
},
|
|
3943
|
+
description: 'List of unique products',
|
|
3944
|
+
example: [
|
|
3945
|
+
'cfke_controlplane_pro',
|
|
3946
|
+
'cfke_connected_nodes_pro'
|
|
3947
|
+
]
|
|
3948
|
+
}
|
|
3949
|
+
},
|
|
3950
|
+
additionalProperties: false
|
|
3951
|
+
};
|
|
3952
|
+
export const UsageResponseSchema = {
|
|
3953
|
+
type: 'object',
|
|
3954
|
+
properties: {
|
|
3955
|
+
data: {
|
|
3956
|
+
type: 'array',
|
|
3957
|
+
items: {
|
|
3958
|
+
type: 'object',
|
|
3959
|
+
properties: {
|
|
3960
|
+
hour: {
|
|
3961
|
+
type: 'string',
|
|
3962
|
+
description: 'Hour of the usage',
|
|
3963
|
+
example: '2019-01-01T00:00:00.000Z'
|
|
3964
|
+
},
|
|
3965
|
+
cluster_id: {
|
|
3966
|
+
type: 'string',
|
|
3967
|
+
description: 'Unique identifier of the kubernetes cluster. UUID v4 string in canonical form',
|
|
3968
|
+
example: '6b5439b1-923a-4f2b-a371-d554e5ea23fa'
|
|
3969
|
+
},
|
|
3970
|
+
product: {
|
|
3971
|
+
type: 'string',
|
|
3972
|
+
description: 'The product the usage is associated with',
|
|
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
|
+
]
|
|
3983
|
+
},
|
|
3984
|
+
value: {
|
|
3985
|
+
type: 'number',
|
|
3986
|
+
format: 'float',
|
|
3987
|
+
description: 'Consumption',
|
|
3988
|
+
example: 4
|
|
3989
|
+
},
|
|
3990
|
+
price: {
|
|
3991
|
+
type: 'number',
|
|
3992
|
+
format: 'float',
|
|
3993
|
+
description: 'Price per unit',
|
|
3994
|
+
example: 0.01
|
|
3995
|
+
},
|
|
3996
|
+
total: {
|
|
3997
|
+
type: 'number',
|
|
3998
|
+
format: 'float',
|
|
3999
|
+
description: 'Total cost'
|
|
4000
|
+
}
|
|
4001
|
+
},
|
|
4002
|
+
required: [
|
|
4003
|
+
'hour',
|
|
4004
|
+
'cluster_id',
|
|
4005
|
+
'product',
|
|
4006
|
+
'value',
|
|
4007
|
+
'price',
|
|
4008
|
+
'total'
|
|
4009
|
+
],
|
|
4010
|
+
additionalProperties: false
|
|
4011
|
+
},
|
|
4012
|
+
description: 'Usage data'
|
|
4013
|
+
},
|
|
4014
|
+
facets: {
|
|
4015
|
+
type: 'object',
|
|
4016
|
+
properties: {
|
|
4017
|
+
cluster_id: {
|
|
4018
|
+
type: 'array',
|
|
4019
|
+
items: {
|
|
4020
|
+
type: 'string'
|
|
4021
|
+
},
|
|
4022
|
+
description: 'List of unique cluster IDs',
|
|
4023
|
+
example: [
|
|
4024
|
+
'6b5439b1-923a-4f2b-a371-d554e5ea23fa'
|
|
4025
|
+
]
|
|
4026
|
+
},
|
|
4027
|
+
product: {
|
|
4028
|
+
type: 'array',
|
|
4029
|
+
items: {
|
|
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
|
+
]
|
|
4040
|
+
},
|
|
4041
|
+
description: 'List of unique products',
|
|
4042
|
+
example: [
|
|
4043
|
+
'cfke_controlplane_pro',
|
|
4044
|
+
'cfke_connected_nodes_pro'
|
|
4045
|
+
]
|
|
4046
|
+
}
|
|
4047
|
+
},
|
|
4048
|
+
additionalProperties: false,
|
|
4049
|
+
description: 'Facets for filtering'
|
|
1143
4050
|
}
|
|
1144
4051
|
},
|
|
4052
|
+
required: [
|
|
4053
|
+
'data',
|
|
4054
|
+
'facets'
|
|
4055
|
+
],
|
|
1145
4056
|
additionalProperties: false
|
|
1146
4057
|
};
|
|
1147
4058
|
export const UsageSchema = {
|
|
@@ -1154,90 +4065,49 @@ export const UsageSchema = {
|
|
|
1154
4065
|
},
|
|
1155
4066
|
cluster_id: {
|
|
1156
4067
|
type: 'string',
|
|
1157
|
-
format: 'uuid',
|
|
1158
4068
|
description: 'Unique identifier of the kubernetes cluster. UUID v4 string in canonical form',
|
|
1159
4069
|
example: '6b5439b1-923a-4f2b-a371-d554e5ea23fa'
|
|
1160
4070
|
},
|
|
1161
|
-
cluster_tier: {
|
|
1162
|
-
type: 'string',
|
|
1163
|
-
description: 'Tier of the cluster.',
|
|
1164
|
-
example: 'pro',
|
|
1165
|
-
enum: ['basic', 'pro', '']
|
|
1166
|
-
},
|
|
1167
4071
|
product: {
|
|
1168
4072
|
type: 'string',
|
|
1169
4073
|
description: 'The product the usage is associated with',
|
|
1170
|
-
example: '
|
|
1171
|
-
enum: [
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
type: 'string',
|
|
1180
|
-
description: 'SKU of the Kubernetes node',
|
|
1181
|
-
example: 'GCP-NORTHAMERICA-NORTHEAST1-A-G1-SMALL-SPOT'
|
|
1182
|
-
},
|
|
1183
|
-
cpu: {
|
|
1184
|
-
anyOf: [
|
|
1185
|
-
{
|
|
1186
|
-
type: 'number',
|
|
1187
|
-
format: 'float',
|
|
1188
|
-
description: 'CPU core count of the node',
|
|
1189
|
-
example: 4
|
|
1190
|
-
},
|
|
1191
|
-
{
|
|
1192
|
-
type: 'string',
|
|
1193
|
-
enum: ['']
|
|
1194
|
-
}
|
|
1195
|
-
]
|
|
1196
|
-
},
|
|
1197
|
-
price: {
|
|
1198
|
-
anyOf: [
|
|
1199
|
-
{
|
|
1200
|
-
type: 'number',
|
|
1201
|
-
format: 'float',
|
|
1202
|
-
description: 'Price',
|
|
1203
|
-
example: 4
|
|
1204
|
-
},
|
|
1205
|
-
{
|
|
1206
|
-
type: 'string',
|
|
1207
|
-
enum: ['']
|
|
1208
|
-
}
|
|
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'
|
|
1209
4083
|
]
|
|
1210
4084
|
},
|
|
1211
4085
|
value: {
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
}
|
|
1223
|
-
]
|
|
4086
|
+
type: 'number',
|
|
4087
|
+
format: 'float',
|
|
4088
|
+
description: 'Consumption',
|
|
4089
|
+
example: 4
|
|
4090
|
+
},
|
|
4091
|
+
price: {
|
|
4092
|
+
type: 'number',
|
|
4093
|
+
format: 'float',
|
|
4094
|
+
description: 'Price per unit',
|
|
4095
|
+
example: 0.01
|
|
1224
4096
|
},
|
|
1225
4097
|
total: {
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
format: 'float',
|
|
1230
|
-
description: 'Total',
|
|
1231
|
-
example: 4
|
|
1232
|
-
},
|
|
1233
|
-
{
|
|
1234
|
-
type: 'string',
|
|
1235
|
-
enum: ['']
|
|
1236
|
-
}
|
|
1237
|
-
]
|
|
4098
|
+
type: 'number',
|
|
4099
|
+
format: 'float',
|
|
4100
|
+
description: 'Total cost'
|
|
1238
4101
|
}
|
|
1239
4102
|
},
|
|
1240
|
-
required: [
|
|
4103
|
+
required: [
|
|
4104
|
+
'hour',
|
|
4105
|
+
'cluster_id',
|
|
4106
|
+
'product',
|
|
4107
|
+
'value',
|
|
4108
|
+
'price',
|
|
4109
|
+
'total'
|
|
4110
|
+
],
|
|
1241
4111
|
additionalProperties: false
|
|
1242
4112
|
};
|
|
1243
4113
|
export const UserCreateInputSchema = {
|
|
@@ -1273,21 +4143,15 @@ export const UserCreateInputSchema = {
|
|
|
1273
4143
|
type: 'string',
|
|
1274
4144
|
minLength: 8,
|
|
1275
4145
|
description: 'User password. Must be at least 8 characters long.'
|
|
1276
|
-
},
|
|
1277
|
-
status: {
|
|
1278
|
-
type: 'string',
|
|
1279
|
-
description: 'Status of the user. Can be `active` or `inactive`. Inactive users cannot log in or manage organization resources.',
|
|
1280
|
-
example: 'active',
|
|
1281
|
-
enum: ['active', 'inactive']
|
|
1282
|
-
},
|
|
1283
|
-
role: {
|
|
1284
|
-
type: 'string',
|
|
1285
|
-
description: "User role. Can be 'Administrator', 'User'.",
|
|
1286
|
-
example: 'User',
|
|
1287
|
-
enum: ['Administrator', 'User']
|
|
1288
4146
|
}
|
|
1289
4147
|
},
|
|
1290
|
-
required: [
|
|
4148
|
+
required: [
|
|
4149
|
+
'email',
|
|
4150
|
+
'first_name',
|
|
4151
|
+
'last_name',
|
|
4152
|
+
'code',
|
|
4153
|
+
'password'
|
|
4154
|
+
],
|
|
1291
4155
|
additionalProperties: false
|
|
1292
4156
|
};
|
|
1293
4157
|
export const UserSchema = {
|
|
@@ -1315,15 +4179,21 @@ export const UserSchema = {
|
|
|
1315
4179
|
},
|
|
1316
4180
|
role: {
|
|
1317
4181
|
type: 'string',
|
|
1318
|
-
description:
|
|
4182
|
+
description: 'User role. Can be \'Administrator\', \'User\'.',
|
|
1319
4183
|
example: 'User',
|
|
1320
|
-
enum: [
|
|
4184
|
+
enum: [
|
|
4185
|
+
'Administrator',
|
|
4186
|
+
'User'
|
|
4187
|
+
]
|
|
1321
4188
|
},
|
|
1322
4189
|
status: {
|
|
1323
4190
|
type: 'string',
|
|
1324
4191
|
description: 'Status of the user. Can be `active` or `inactive`. Inactive users cannot log in or manage organization resources.',
|
|
1325
4192
|
example: 'active',
|
|
1326
|
-
enum: [
|
|
4193
|
+
enum: [
|
|
4194
|
+
'active',
|
|
4195
|
+
'inactive'
|
|
4196
|
+
]
|
|
1327
4197
|
},
|
|
1328
4198
|
id: {
|
|
1329
4199
|
type: 'string',
|
|
@@ -1338,7 +4208,15 @@ export const UserSchema = {
|
|
|
1338
4208
|
example: '2023-11-02T16:08:14.338Z'
|
|
1339
4209
|
}
|
|
1340
4210
|
},
|
|
1341
|
-
required: [
|
|
4211
|
+
required: [
|
|
4212
|
+
'email',
|
|
4213
|
+
'first_name',
|
|
4214
|
+
'last_name',
|
|
4215
|
+
'role',
|
|
4216
|
+
'status',
|
|
4217
|
+
'id',
|
|
4218
|
+
'date_created'
|
|
4219
|
+
],
|
|
1342
4220
|
additionalProperties: false
|
|
1343
4221
|
};
|
|
1344
4222
|
export const UserUpdateInputSchema = {
|
|
@@ -1366,15 +4244,21 @@ export const UserUpdateInputSchema = {
|
|
|
1366
4244
|
},
|
|
1367
4245
|
role: {
|
|
1368
4246
|
type: 'string',
|
|
1369
|
-
description:
|
|
4247
|
+
description: 'User role. Can be \'Administrator\', \'User\'.',
|
|
1370
4248
|
example: 'User',
|
|
1371
|
-
enum: [
|
|
4249
|
+
enum: [
|
|
4250
|
+
'Administrator',
|
|
4251
|
+
'User'
|
|
4252
|
+
]
|
|
1372
4253
|
},
|
|
1373
4254
|
status: {
|
|
1374
4255
|
type: 'string',
|
|
1375
4256
|
description: 'Status of the user. Can be `active` or `inactive`. Inactive users cannot log in or manage organization resources.',
|
|
1376
4257
|
example: 'active',
|
|
1377
|
-
enum: [
|
|
4258
|
+
enum: [
|
|
4259
|
+
'active',
|
|
4260
|
+
'inactive'
|
|
4261
|
+
]
|
|
1378
4262
|
}
|
|
1379
4263
|
},
|
|
1380
4264
|
additionalProperties: false
|