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