@cloudfleet/sdk 0.0.1-e9ffb68 → 0.0.1-ea4847c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -2
- package/dist/@tanstack/react-query.gen.d.ts +1149 -0
- package/dist/@tanstack/react-query.gen.d.ts.map +1 -0
- package/dist/@tanstack/react-query.gen.js +1165 -0
- package/dist/@tanstack/react-query.gen.js.map +1 -0
- package/dist/client/client.gen.d.ts.map +1 -1
- package/dist/client/client.gen.js +104 -123
- package/dist/client/client.gen.js.map +1 -1
- package/dist/client/types.gen.d.ts +6 -3
- package/dist/client/types.gen.d.ts.map +1 -1
- package/dist/client/utils.gen.d.ts +7 -3
- package/dist/client/utils.gen.d.ts.map +1 -1
- package/dist/client/utils.gen.js +3 -3
- package/dist/client/utils.gen.js.map +1 -1
- package/dist/core/params.gen.js +4 -4
- package/dist/core/params.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 +3 -4
- package/dist/core/serverSentEvents.gen.js.map +1 -1
- package/dist/schemas.gen.d.ts +993 -107
- package/dist/schemas.gen.d.ts.map +1 -1
- package/dist/schemas.gen.js +1905 -174
- package/dist/schemas.gen.js.map +1 -1
- package/dist/sdk.gen.d.ts +240 -197
- package/dist/sdk.gen.d.ts.map +1 -1
- package/dist/sdk.gen.js +348 -274
- package/dist/sdk.gen.js.map +1 -1
- package/dist/services/kubernetes/api.d.ts +8 -8
- package/dist/types.gen.d.ts +1493 -756
- package/dist/types.gen.d.ts.map +1 -1
- package/dist/zod.gen.d.ts +3339 -1205
- package/dist/zod.gen.d.ts.map +1 -1
- package/dist/zod.gen.js +1239 -292
- package/dist/zod.gen.js.map +1 -1
- package/package.json +27 -11
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,
|
|
@@ -207,6 +216,7 @@ export const BillingContactSchema = {
|
|
|
207
216
|
}
|
|
208
217
|
},
|
|
209
218
|
required: [
|
|
219
|
+
'type',
|
|
210
220
|
'email',
|
|
211
221
|
'individual_name'
|
|
212
222
|
],
|
|
@@ -358,24 +368,8 @@ export const ChartSchema = {
|
|
|
358
368
|
},
|
|
359
369
|
status: {
|
|
360
370
|
type: 'string',
|
|
361
|
-
description: 'Status of the chart deployment.',
|
|
362
|
-
example: '
|
|
363
|
-
enum: [
|
|
364
|
-
'InstallSucceeded',
|
|
365
|
-
'InstallFailed',
|
|
366
|
-
'UpgradeSucceeded',
|
|
367
|
-
'UpgradeFailed',
|
|
368
|
-
'TestSucceeded',
|
|
369
|
-
'TestFailed',
|
|
370
|
-
'RollbackSucceeded',
|
|
371
|
-
'RollbackFailed',
|
|
372
|
-
'UninstallSucceeded',
|
|
373
|
-
'UninstallFailed',
|
|
374
|
-
'ArtifactFailed',
|
|
375
|
-
'DependencyNotReady',
|
|
376
|
-
'Progressing',
|
|
377
|
-
'SourceNotReady'
|
|
378
|
-
]
|
|
371
|
+
description: 'Status of the chart deployment (Flux HelmRelease Ready condition reason, e.g. InstallSucceeded, UpgradeFailed, Progressing).',
|
|
372
|
+
example: 'InstallSucceeded'
|
|
379
373
|
},
|
|
380
374
|
version_current: {
|
|
381
375
|
type: 'string',
|
|
@@ -446,43 +440,117 @@ export const ClusterCreateInputSchema = {
|
|
|
446
440
|
tier: {
|
|
447
441
|
type: 'string',
|
|
448
442
|
description: 'Tier of the cluster.',
|
|
443
|
+
default: 'basic',
|
|
449
444
|
example: 'pro',
|
|
450
445
|
enum: [
|
|
451
446
|
'basic',
|
|
452
447
|
'pro'
|
|
453
448
|
]
|
|
454
449
|
},
|
|
455
|
-
region: {
|
|
456
|
-
type: 'string',
|
|
457
|
-
description: 'Cloudfleet control plane region. One of "staging-1a", "northamerica-central-1", "europe-central-1a", "northamerica-central-1a". This field can not be updated after creation.',
|
|
458
|
-
default: 'staging-1a',
|
|
459
|
-
example: 'northamerica-central-1a',
|
|
460
|
-
enum: [
|
|
461
|
-
'staging-1a',
|
|
462
|
-
'northamerica-central-1',
|
|
463
|
-
'europe-central-1a',
|
|
464
|
-
'northamerica-central-1a'
|
|
465
|
-
]
|
|
466
|
-
},
|
|
467
450
|
version_channel: {
|
|
468
451
|
type: 'string',
|
|
469
452
|
pattern: '^(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$',
|
|
470
453
|
description: 'Version of the kubernetes cluster.',
|
|
471
454
|
default: '1.x.x-cfke.x',
|
|
472
|
-
example: '1.x.x-cfke.x'
|
|
455
|
+
example: '1.x.x-cfke.x'
|
|
456
|
+
},
|
|
457
|
+
release_channel: {
|
|
458
|
+
type: 'string',
|
|
459
|
+
description: 'Release channel for the cluster\'s control plane.',
|
|
460
|
+
default: 'rapid',
|
|
461
|
+
example: 'rapid',
|
|
473
462
|
enum: [
|
|
474
|
-
'
|
|
475
|
-
'
|
|
476
|
-
'
|
|
477
|
-
'1.33.x-cfke.x'
|
|
463
|
+
'rapid',
|
|
464
|
+
'stable',
|
|
465
|
+
'extended'
|
|
478
466
|
]
|
|
467
|
+
},
|
|
468
|
+
features: {
|
|
469
|
+
type: 'object',
|
|
470
|
+
properties: {
|
|
471
|
+
gpu_sharing_strategy: {
|
|
472
|
+
type: 'string',
|
|
473
|
+
description: 'GPU sharing strategy.',
|
|
474
|
+
default: 'none',
|
|
475
|
+
example: 'none',
|
|
476
|
+
enum: [
|
|
477
|
+
'none',
|
|
478
|
+
'mps',
|
|
479
|
+
'time_slicing'
|
|
480
|
+
]
|
|
481
|
+
},
|
|
482
|
+
gpu_max_shared_clients_per_gpu: {
|
|
483
|
+
type: 'integer',
|
|
484
|
+
minimum: 2,
|
|
485
|
+
maximum: 48,
|
|
486
|
+
description: 'Maximum number of pods that may share a single GPU.',
|
|
487
|
+
default: 4,
|
|
488
|
+
example: 10
|
|
489
|
+
},
|
|
490
|
+
cilium_socket_lb_host_namespace_only: {
|
|
491
|
+
type: 'boolean',
|
|
492
|
+
description: 'Restrict Cilium socket load-balancing to the host namespace. Required for the Tailscale operator and Istio.',
|
|
493
|
+
example: false
|
|
494
|
+
}
|
|
495
|
+
},
|
|
496
|
+
additionalProperties: false,
|
|
497
|
+
description: 'Cluster feature toggles.',
|
|
498
|
+
default: {
|
|
499
|
+
gpu_sharing_strategy: 'none',
|
|
500
|
+
gpu_max_shared_clients_per_gpu: 4,
|
|
501
|
+
cilium_socket_lb_host_namespace_only: false
|
|
502
|
+
}
|
|
503
|
+
},
|
|
504
|
+
region: {
|
|
505
|
+
type: 'string',
|
|
506
|
+
description: 'Cloudfleet control plane region. This field can not be updated after creation.',
|
|
507
|
+
example: 'europe-central-1a'
|
|
508
|
+
},
|
|
509
|
+
networking: {
|
|
510
|
+
type: 'object',
|
|
511
|
+
properties: {
|
|
512
|
+
pod_cidr: {
|
|
513
|
+
type: 'string',
|
|
514
|
+
description: 'CIDR block for pod IPs.',
|
|
515
|
+
default: '10.244.0.0/16'
|
|
516
|
+
},
|
|
517
|
+
service_cidr: {
|
|
518
|
+
type: 'string',
|
|
519
|
+
description: 'CIDR block for service IPs.',
|
|
520
|
+
default: '10.96.0.0/12'
|
|
521
|
+
},
|
|
522
|
+
dual_stack: {
|
|
523
|
+
type: 'boolean',
|
|
524
|
+
description: 'Enable IPv4+IPv6 dual-stack networking.'
|
|
525
|
+
},
|
|
526
|
+
pod_cidr_v6: {
|
|
527
|
+
type: 'string',
|
|
528
|
+
description: 'IPv6 pod CIDR. Requires dual_stack.',
|
|
529
|
+
default: '2001:db8:1:2::/48'
|
|
530
|
+
},
|
|
531
|
+
service_cidr_v6: {
|
|
532
|
+
type: 'string',
|
|
533
|
+
description: 'IPv6 service CIDR. Requires dual_stack.',
|
|
534
|
+
default: '2001:db8:1:1::/112'
|
|
535
|
+
}
|
|
536
|
+
},
|
|
537
|
+
additionalProperties: false,
|
|
538
|
+
description: 'Cluster networking configuration. Immutable after creation.',
|
|
539
|
+
default: {
|
|
540
|
+
pod_cidr: '10.244.0.0/16',
|
|
541
|
+
service_cidr: '10.96.0.0/12',
|
|
542
|
+
dual_stack: false,
|
|
543
|
+
pod_cidr_v6: '2001:db8:1:2::/48',
|
|
544
|
+
service_cidr_v6: '2001:db8:1:1::/112'
|
|
545
|
+
}
|
|
479
546
|
}
|
|
480
547
|
},
|
|
481
548
|
required: [
|
|
482
549
|
'name',
|
|
483
|
-
'
|
|
550
|
+
'region'
|
|
484
551
|
],
|
|
485
|
-
additionalProperties: false
|
|
552
|
+
additionalProperties: false,
|
|
553
|
+
description: 'Mutable cluster configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
|
|
486
554
|
};
|
|
487
555
|
export const ClusterJoinInformationSchema = {
|
|
488
556
|
type: 'object',
|
|
@@ -503,6 +571,11 @@ export const ClusterJoinInformationSchema = {
|
|
|
503
571
|
description: 'Cluster DNS IP address. This is the IP address of the kube-dns service in the cluster.',
|
|
504
572
|
example: '10.96.0.10'
|
|
505
573
|
},
|
|
574
|
+
pod_cidr: {
|
|
575
|
+
type: 'string',
|
|
576
|
+
description: 'Pod CIDR for the cluster. Used to configure iptables rules on nodes to prevent Tailscale routing loops.',
|
|
577
|
+
example: '10.244.0.0/16'
|
|
578
|
+
},
|
|
506
579
|
auth_key: {
|
|
507
580
|
type: 'string',
|
|
508
581
|
description: 'Authentication key for the cluster.',
|
|
@@ -578,6 +651,7 @@ export const ClusterJoinInformationSchema = {
|
|
|
578
651
|
'certificate_authority',
|
|
579
652
|
'endpoint',
|
|
580
653
|
'cluster_dns',
|
|
654
|
+
'pod_cidr',
|
|
581
655
|
'auth_key',
|
|
582
656
|
'bootstrap_token',
|
|
583
657
|
'versions',
|
|
@@ -599,24 +673,122 @@ export const ClusterSchema = {
|
|
|
599
673
|
tier: {
|
|
600
674
|
type: 'string',
|
|
601
675
|
description: 'Tier of the cluster.',
|
|
676
|
+
default: 'basic',
|
|
602
677
|
example: 'pro',
|
|
603
678
|
enum: [
|
|
604
679
|
'basic',
|
|
605
680
|
'pro'
|
|
606
681
|
]
|
|
607
682
|
},
|
|
608
|
-
|
|
683
|
+
version_channel: {
|
|
684
|
+
type: 'string',
|
|
685
|
+
pattern: '^(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$',
|
|
686
|
+
description: 'Version of the kubernetes cluster.',
|
|
687
|
+
default: '1.x.x-cfke.x',
|
|
688
|
+
example: '1.x.x-cfke.x'
|
|
689
|
+
},
|
|
690
|
+
release_channel: {
|
|
609
691
|
type: 'string',
|
|
610
|
-
description: '
|
|
611
|
-
default: '
|
|
612
|
-
example: '
|
|
692
|
+
description: 'Release channel for the cluster\'s control plane.',
|
|
693
|
+
default: 'rapid',
|
|
694
|
+
example: 'rapid',
|
|
613
695
|
enum: [
|
|
614
|
-
'
|
|
615
|
-
'
|
|
616
|
-
'
|
|
617
|
-
'northamerica-central-1a'
|
|
696
|
+
'rapid',
|
|
697
|
+
'stable',
|
|
698
|
+
'extended'
|
|
618
699
|
]
|
|
619
700
|
},
|
|
701
|
+
features: {
|
|
702
|
+
type: 'object',
|
|
703
|
+
properties: {
|
|
704
|
+
gpu_sharing_strategy: {
|
|
705
|
+
type: 'string',
|
|
706
|
+
description: 'GPU sharing strategy.',
|
|
707
|
+
default: 'none',
|
|
708
|
+
example: 'none',
|
|
709
|
+
enum: [
|
|
710
|
+
'none',
|
|
711
|
+
'mps',
|
|
712
|
+
'time_slicing'
|
|
713
|
+
]
|
|
714
|
+
},
|
|
715
|
+
gpu_max_shared_clients_per_gpu: {
|
|
716
|
+
type: 'integer',
|
|
717
|
+
minimum: 2,
|
|
718
|
+
maximum: 48,
|
|
719
|
+
description: 'Maximum number of pods that may share a single GPU.',
|
|
720
|
+
default: 4,
|
|
721
|
+
example: 10
|
|
722
|
+
},
|
|
723
|
+
cilium_socket_lb_host_namespace_only: {
|
|
724
|
+
type: 'boolean',
|
|
725
|
+
description: 'Restrict Cilium socket load-balancing to the host namespace. Required for the Tailscale operator and Istio.',
|
|
726
|
+
example: false
|
|
727
|
+
}
|
|
728
|
+
},
|
|
729
|
+
required: [
|
|
730
|
+
'gpu_sharing_strategy',
|
|
731
|
+
'gpu_max_shared_clients_per_gpu',
|
|
732
|
+
'cilium_socket_lb_host_namespace_only'
|
|
733
|
+
],
|
|
734
|
+
additionalProperties: false,
|
|
735
|
+
description: 'Cluster feature toggles.',
|
|
736
|
+
default: {
|
|
737
|
+
gpu_sharing_strategy: 'none',
|
|
738
|
+
gpu_max_shared_clients_per_gpu: 4,
|
|
739
|
+
cilium_socket_lb_host_namespace_only: false
|
|
740
|
+
}
|
|
741
|
+
},
|
|
742
|
+
region: {
|
|
743
|
+
type: 'string',
|
|
744
|
+
description: 'Cloudfleet control plane region. This field can not be updated after creation.',
|
|
745
|
+
example: 'europe-central-1a'
|
|
746
|
+
},
|
|
747
|
+
networking: {
|
|
748
|
+
type: 'object',
|
|
749
|
+
properties: {
|
|
750
|
+
pod_cidr: {
|
|
751
|
+
type: 'string',
|
|
752
|
+
description: 'CIDR block for pod IPs.',
|
|
753
|
+
default: '10.244.0.0/16'
|
|
754
|
+
},
|
|
755
|
+
service_cidr: {
|
|
756
|
+
type: 'string',
|
|
757
|
+
description: 'CIDR block for service IPs.',
|
|
758
|
+
default: '10.96.0.0/12'
|
|
759
|
+
},
|
|
760
|
+
dual_stack: {
|
|
761
|
+
type: 'boolean',
|
|
762
|
+
description: 'Enable IPv4+IPv6 dual-stack networking.'
|
|
763
|
+
},
|
|
764
|
+
pod_cidr_v6: {
|
|
765
|
+
type: 'string',
|
|
766
|
+
description: 'IPv6 pod CIDR. Requires dual_stack.',
|
|
767
|
+
default: '2001:db8:1:2::/48'
|
|
768
|
+
},
|
|
769
|
+
service_cidr_v6: {
|
|
770
|
+
type: 'string',
|
|
771
|
+
description: 'IPv6 service CIDR. Requires dual_stack.',
|
|
772
|
+
default: '2001:db8:1:1::/112'
|
|
773
|
+
}
|
|
774
|
+
},
|
|
775
|
+
required: [
|
|
776
|
+
'pod_cidr',
|
|
777
|
+
'service_cidr',
|
|
778
|
+
'dual_stack',
|
|
779
|
+
'pod_cidr_v6',
|
|
780
|
+
'service_cidr_v6'
|
|
781
|
+
],
|
|
782
|
+
additionalProperties: false,
|
|
783
|
+
description: 'Cluster networking configuration. Immutable after creation.',
|
|
784
|
+
default: {
|
|
785
|
+
pod_cidr: '10.244.0.0/16',
|
|
786
|
+
service_cidr: '10.96.0.0/12',
|
|
787
|
+
dual_stack: false,
|
|
788
|
+
pod_cidr_v6: '2001:db8:1:2::/48',
|
|
789
|
+
service_cidr_v6: '2001:db8:1:1::/112'
|
|
790
|
+
}
|
|
791
|
+
},
|
|
620
792
|
id: {
|
|
621
793
|
type: 'string',
|
|
622
794
|
format: 'uuid',
|
|
@@ -625,16 +797,13 @@ export const ClusterSchema = {
|
|
|
625
797
|
},
|
|
626
798
|
status: {
|
|
627
799
|
type: 'string',
|
|
628
|
-
description: 'Status of the cluster.
|
|
629
|
-
example: '
|
|
800
|
+
description: 'Status of the cluster.',
|
|
801
|
+
example: 'deployed',
|
|
630
802
|
enum: [
|
|
631
|
-
'active',
|
|
632
|
-
'disabled',
|
|
633
|
-
'deleted',
|
|
634
803
|
'creating',
|
|
635
804
|
'deployed',
|
|
636
|
-
'
|
|
637
|
-
'
|
|
805
|
+
'updating',
|
|
806
|
+
'disabled'
|
|
638
807
|
]
|
|
639
808
|
},
|
|
640
809
|
endpoint: {
|
|
@@ -642,8 +811,24 @@ export const ClusterSchema = {
|
|
|
642
811
|
{
|
|
643
812
|
type: 'string',
|
|
644
813
|
format: 'uri',
|
|
645
|
-
description: 'URL of the Kubernetes cluster control plane. This is the endpoint that kubectl uses to connect to the cluster.',
|
|
646
|
-
example: 'https://2ae6557c-c61f-49c6-b4c1-a65473470a03.staging.cfke.
|
|
814
|
+
description: 'URL signed by a public CA of the Kubernetes cluster control plane. This is the endpoint that kubectl uses to connect to the cluster.',
|
|
815
|
+
example: 'https://2ae6557c-c61f-49c6-b4c1-a65473470a03.staging.cfke.io'
|
|
816
|
+
},
|
|
817
|
+
{
|
|
818
|
+
type: 'string',
|
|
819
|
+
enum: [
|
|
820
|
+
''
|
|
821
|
+
]
|
|
822
|
+
}
|
|
823
|
+
]
|
|
824
|
+
},
|
|
825
|
+
endpoint_public: {
|
|
826
|
+
anyOf: [
|
|
827
|
+
{
|
|
828
|
+
type: 'string',
|
|
829
|
+
format: 'uri',
|
|
830
|
+
description: 'Deprecated alias of `endpoint`; retained for backward compatibility.',
|
|
831
|
+
example: 'https://2ae6557c-c61f-49c6-b4c1-a65473470a03.staging.cfke.io'
|
|
647
832
|
},
|
|
648
833
|
{
|
|
649
834
|
type: 'string',
|
|
@@ -677,21 +862,22 @@ export const ClusterSchema = {
|
|
|
677
862
|
type: 'boolean',
|
|
678
863
|
description: 'Indicates if the cluster is ready to be used.',
|
|
679
864
|
example: true
|
|
680
|
-
},
|
|
681
|
-
version_channel: {
|
|
682
|
-
type: 'string',
|
|
683
|
-
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-]+)*))?$',
|
|
684
|
-
description: 'Version of the kubernetes cluster.',
|
|
685
|
-
example: '1.x.x-cfke.x'
|
|
686
865
|
}
|
|
687
866
|
},
|
|
688
867
|
required: [
|
|
689
868
|
'name',
|
|
690
869
|
'tier',
|
|
870
|
+
'version_channel',
|
|
871
|
+
'release_channel',
|
|
872
|
+
'features',
|
|
873
|
+
'region',
|
|
874
|
+
'networking',
|
|
691
875
|
'id',
|
|
692
|
-
'status'
|
|
876
|
+
'status',
|
|
877
|
+
'ready'
|
|
693
878
|
],
|
|
694
|
-
additionalProperties: false
|
|
879
|
+
additionalProperties: false,
|
|
880
|
+
description: 'Mutable cluster configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
|
|
695
881
|
};
|
|
696
882
|
export const ClusterUpdateInputSchema = {
|
|
697
883
|
type: 'object',
|
|
@@ -707,6 +893,7 @@ export const ClusterUpdateInputSchema = {
|
|
|
707
893
|
tier: {
|
|
708
894
|
type: 'string',
|
|
709
895
|
description: 'Tier of the cluster.',
|
|
896
|
+
default: 'basic',
|
|
710
897
|
example: 'pro',
|
|
711
898
|
enum: [
|
|
712
899
|
'basic',
|
|
@@ -717,13 +904,62 @@ export const ClusterUpdateInputSchema = {
|
|
|
717
904
|
type: 'string',
|
|
718
905
|
pattern: '^(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$',
|
|
719
906
|
description: 'Version of the kubernetes cluster.',
|
|
907
|
+
default: '1.x.x-cfke.x',
|
|
720
908
|
example: '1.x.x-cfke.x'
|
|
909
|
+
},
|
|
910
|
+
release_channel: {
|
|
911
|
+
type: 'string',
|
|
912
|
+
description: 'Release channel for the cluster\'s control plane.',
|
|
913
|
+
default: 'rapid',
|
|
914
|
+
example: 'rapid',
|
|
915
|
+
enum: [
|
|
916
|
+
'rapid',
|
|
917
|
+
'stable',
|
|
918
|
+
'extended'
|
|
919
|
+
]
|
|
920
|
+
},
|
|
921
|
+
features: {
|
|
922
|
+
type: 'object',
|
|
923
|
+
properties: {
|
|
924
|
+
gpu_sharing_strategy: {
|
|
925
|
+
type: 'string',
|
|
926
|
+
description: 'GPU sharing strategy.',
|
|
927
|
+
default: 'none',
|
|
928
|
+
example: 'none',
|
|
929
|
+
enum: [
|
|
930
|
+
'none',
|
|
931
|
+
'mps',
|
|
932
|
+
'time_slicing'
|
|
933
|
+
]
|
|
934
|
+
},
|
|
935
|
+
gpu_max_shared_clients_per_gpu: {
|
|
936
|
+
type: 'integer',
|
|
937
|
+
minimum: 2,
|
|
938
|
+
maximum: 48,
|
|
939
|
+
description: 'Maximum number of pods that may share a single GPU.',
|
|
940
|
+
default: 4,
|
|
941
|
+
example: 10
|
|
942
|
+
},
|
|
943
|
+
cilium_socket_lb_host_namespace_only: {
|
|
944
|
+
type: 'boolean',
|
|
945
|
+
description: 'Restrict Cilium socket load-balancing to the host namespace. Required for the Tailscale operator and Istio.',
|
|
946
|
+
example: false
|
|
947
|
+
}
|
|
948
|
+
},
|
|
949
|
+
additionalProperties: false,
|
|
950
|
+
description: 'Cluster feature toggles.',
|
|
951
|
+
default: {
|
|
952
|
+
gpu_sharing_strategy: 'none',
|
|
953
|
+
gpu_max_shared_clients_per_gpu: 4,
|
|
954
|
+
cilium_socket_lb_host_namespace_only: false
|
|
955
|
+
}
|
|
721
956
|
}
|
|
722
957
|
},
|
|
723
958
|
required: [
|
|
724
|
-
'
|
|
959
|
+
'name'
|
|
725
960
|
],
|
|
726
|
-
additionalProperties: false
|
|
961
|
+
additionalProperties: false,
|
|
962
|
+
description: 'Mutable cluster configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
|
|
727
963
|
};
|
|
728
964
|
export const FleetCreateInputSchema = {
|
|
729
965
|
type: 'object',
|
|
@@ -732,15 +968,12 @@ export const FleetCreateInputSchema = {
|
|
|
732
968
|
type: 'object',
|
|
733
969
|
properties: {
|
|
734
970
|
cpu: {
|
|
735
|
-
type: '
|
|
736
|
-
format: 'float',
|
|
971
|
+
type: 'integer',
|
|
737
972
|
minimum: 0,
|
|
738
|
-
|
|
973
|
+
maximum: 100000,
|
|
974
|
+
description: 'CPU limit in cores. Maximum 100,000.'
|
|
739
975
|
}
|
|
740
976
|
},
|
|
741
|
-
required: [
|
|
742
|
-
'cpu'
|
|
743
|
-
],
|
|
744
977
|
additionalProperties: false,
|
|
745
978
|
description: 'Limits define a set of bounds for provisioning capacity.'
|
|
746
979
|
},
|
|
@@ -748,16 +981,17 @@ export const FleetCreateInputSchema = {
|
|
|
748
981
|
type: 'object',
|
|
749
982
|
properties: {
|
|
750
983
|
enabled: {
|
|
751
|
-
type: 'boolean'
|
|
752
|
-
default: true
|
|
984
|
+
type: 'boolean'
|
|
753
985
|
},
|
|
754
986
|
project: {
|
|
755
987
|
type: 'string',
|
|
756
|
-
|
|
988
|
+
pattern: '^[a-z][a-z0-9-]{4,28}[a-z0-9]$',
|
|
989
|
+
description: 'GCP project ID to deploy instances into. 6-30 chars, lowercase letters/digits/hyphens, must start with a letter and not end with a hyphen. Omit when GCP is disabled.',
|
|
990
|
+
example: 'my-cloudfleet-project'
|
|
757
991
|
}
|
|
758
992
|
},
|
|
759
993
|
required: [
|
|
760
|
-
'
|
|
994
|
+
'enabled'
|
|
761
995
|
],
|
|
762
996
|
additionalProperties: false
|
|
763
997
|
},
|
|
@@ -765,16 +999,18 @@ export const FleetCreateInputSchema = {
|
|
|
765
999
|
type: 'object',
|
|
766
1000
|
properties: {
|
|
767
1001
|
enabled: {
|
|
768
|
-
type: 'boolean'
|
|
769
|
-
default: true
|
|
1002
|
+
type: 'boolean'
|
|
770
1003
|
},
|
|
771
1004
|
apiKey: {
|
|
772
1005
|
type: 'string',
|
|
773
|
-
|
|
1006
|
+
maxLength: 64,
|
|
1007
|
+
minLength: 64,
|
|
1008
|
+
pattern: '^[A-Za-z0-9]+$',
|
|
1009
|
+
description: 'Hetzner Cloud API token with read / write access (64 alphanumeric characters). Omit this field to keep the existing value.'
|
|
774
1010
|
}
|
|
775
1011
|
},
|
|
776
1012
|
required: [
|
|
777
|
-
'
|
|
1013
|
+
'enabled'
|
|
778
1014
|
],
|
|
779
1015
|
additionalProperties: false
|
|
780
1016
|
},
|
|
@@ -782,19 +1018,321 @@ export const FleetCreateInputSchema = {
|
|
|
782
1018
|
type: 'object',
|
|
783
1019
|
properties: {
|
|
784
1020
|
enabled: {
|
|
785
|
-
type: 'boolean'
|
|
786
|
-
default: true
|
|
1021
|
+
type: 'boolean'
|
|
787
1022
|
},
|
|
788
1023
|
controllerRoleArn: {
|
|
789
1024
|
type: 'string',
|
|
790
|
-
|
|
1025
|
+
pattern: '^arn:aws(-[a-z]+)*:iam::\\d{12}:role\\/[\\w+=,.@/-]+$',
|
|
1026
|
+
description: 'AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.',
|
|
1027
|
+
example: 'arn:aws:iam::123456789012:role/Cloudfleet'
|
|
791
1028
|
}
|
|
792
1029
|
},
|
|
793
1030
|
required: [
|
|
794
|
-
'
|
|
1031
|
+
'enabled'
|
|
795
1032
|
],
|
|
796
1033
|
additionalProperties: false
|
|
797
1034
|
},
|
|
1035
|
+
constraints: {
|
|
1036
|
+
type: 'object',
|
|
1037
|
+
properties: {
|
|
1038
|
+
'karpenter.sh/capacity-type': {
|
|
1039
|
+
type: 'array',
|
|
1040
|
+
items: {
|
|
1041
|
+
type: 'string',
|
|
1042
|
+
enum: [
|
|
1043
|
+
'on-demand',
|
|
1044
|
+
'spot'
|
|
1045
|
+
]
|
|
1046
|
+
},
|
|
1047
|
+
minItems: 1,
|
|
1048
|
+
description: 'Allowed values for `karpenter.sh/capacity-type`.',
|
|
1049
|
+
default: [
|
|
1050
|
+
'on-demand',
|
|
1051
|
+
'spot'
|
|
1052
|
+
]
|
|
1053
|
+
},
|
|
1054
|
+
'kubernetes.io/arch': {
|
|
1055
|
+
type: 'array',
|
|
1056
|
+
items: {
|
|
1057
|
+
type: 'string',
|
|
1058
|
+
enum: [
|
|
1059
|
+
'amd64',
|
|
1060
|
+
'arm64'
|
|
1061
|
+
]
|
|
1062
|
+
},
|
|
1063
|
+
minItems: 1,
|
|
1064
|
+
description: 'Allowed values for `kubernetes.io/arch`.',
|
|
1065
|
+
default: [
|
|
1066
|
+
'amd64'
|
|
1067
|
+
]
|
|
1068
|
+
},
|
|
1069
|
+
'cfke.io/instance-family': {
|
|
1070
|
+
type: 'array',
|
|
1071
|
+
items: {
|
|
1072
|
+
type: 'string',
|
|
1073
|
+
enum: [
|
|
1074
|
+
'a1',
|
|
1075
|
+
'a2',
|
|
1076
|
+
'a3',
|
|
1077
|
+
'a4',
|
|
1078
|
+
'c1',
|
|
1079
|
+
'c2',
|
|
1080
|
+
'c2d',
|
|
1081
|
+
'c3',
|
|
1082
|
+
'c3d',
|
|
1083
|
+
'c4',
|
|
1084
|
+
'c4a',
|
|
1085
|
+
'c4d',
|
|
1086
|
+
'c5',
|
|
1087
|
+
'c5a',
|
|
1088
|
+
'c5ad',
|
|
1089
|
+
'c5d',
|
|
1090
|
+
'c5n',
|
|
1091
|
+
'c6a',
|
|
1092
|
+
'c6g',
|
|
1093
|
+
'c6gd',
|
|
1094
|
+
'c6gn',
|
|
1095
|
+
'c6i',
|
|
1096
|
+
'c6id',
|
|
1097
|
+
'c6in',
|
|
1098
|
+
'c7a',
|
|
1099
|
+
'c7g',
|
|
1100
|
+
'c7gd',
|
|
1101
|
+
'c7gn',
|
|
1102
|
+
'c7i',
|
|
1103
|
+
'c7i-flex',
|
|
1104
|
+
'c8g',
|
|
1105
|
+
'c8gd',
|
|
1106
|
+
'cax',
|
|
1107
|
+
'ccx',
|
|
1108
|
+
'cpx',
|
|
1109
|
+
'cx',
|
|
1110
|
+
'd2',
|
|
1111
|
+
'd3',
|
|
1112
|
+
'd3en',
|
|
1113
|
+
'dl1',
|
|
1114
|
+
'dl2q',
|
|
1115
|
+
'e2',
|
|
1116
|
+
'f1',
|
|
1117
|
+
'f2',
|
|
1118
|
+
'g1',
|
|
1119
|
+
'g2',
|
|
1120
|
+
'g4ad',
|
|
1121
|
+
'g4dn',
|
|
1122
|
+
'g5',
|
|
1123
|
+
'g5g',
|
|
1124
|
+
'g6',
|
|
1125
|
+
'g6e',
|
|
1126
|
+
'gr6',
|
|
1127
|
+
'h1',
|
|
1128
|
+
'h3',
|
|
1129
|
+
'hpc6a',
|
|
1130
|
+
'hpc6id',
|
|
1131
|
+
'hpc7a',
|
|
1132
|
+
'hpc7g',
|
|
1133
|
+
'i2',
|
|
1134
|
+
'i3',
|
|
1135
|
+
'i3en',
|
|
1136
|
+
'i4g',
|
|
1137
|
+
'i4i',
|
|
1138
|
+
'i7i',
|
|
1139
|
+
'i7ie',
|
|
1140
|
+
'i8g',
|
|
1141
|
+
'im4gn',
|
|
1142
|
+
'inf1',
|
|
1143
|
+
'inf2',
|
|
1144
|
+
'is4gen',
|
|
1145
|
+
'm1',
|
|
1146
|
+
'm2',
|
|
1147
|
+
'm3',
|
|
1148
|
+
'm4',
|
|
1149
|
+
'm5',
|
|
1150
|
+
'm5a',
|
|
1151
|
+
'm5ad',
|
|
1152
|
+
'm5d',
|
|
1153
|
+
'm5dn',
|
|
1154
|
+
'm5n',
|
|
1155
|
+
'm5zn',
|
|
1156
|
+
'm6a',
|
|
1157
|
+
'm6g',
|
|
1158
|
+
'm6gd',
|
|
1159
|
+
'm6i',
|
|
1160
|
+
'm6id',
|
|
1161
|
+
'm6idn',
|
|
1162
|
+
'm6in',
|
|
1163
|
+
'm7a',
|
|
1164
|
+
'm7g',
|
|
1165
|
+
'm7gd',
|
|
1166
|
+
'm7i',
|
|
1167
|
+
'm7i-flex',
|
|
1168
|
+
'm8g',
|
|
1169
|
+
'm8gd',
|
|
1170
|
+
'n1',
|
|
1171
|
+
'n2',
|
|
1172
|
+
'n2d',
|
|
1173
|
+
'n4',
|
|
1174
|
+
'p3',
|
|
1175
|
+
'p3dn',
|
|
1176
|
+
'p4d',
|
|
1177
|
+
'p4de',
|
|
1178
|
+
'p5',
|
|
1179
|
+
'p5e',
|
|
1180
|
+
'p5en',
|
|
1181
|
+
'p6-b200',
|
|
1182
|
+
'r3',
|
|
1183
|
+
'r4',
|
|
1184
|
+
'r5',
|
|
1185
|
+
'r5a',
|
|
1186
|
+
'r5ad',
|
|
1187
|
+
'r5b',
|
|
1188
|
+
'r5d',
|
|
1189
|
+
'r5dn',
|
|
1190
|
+
'r5n',
|
|
1191
|
+
'r6a',
|
|
1192
|
+
'r6g',
|
|
1193
|
+
'r6gd',
|
|
1194
|
+
'r6i',
|
|
1195
|
+
'r6id',
|
|
1196
|
+
'r6idn',
|
|
1197
|
+
'r6in',
|
|
1198
|
+
'r7a',
|
|
1199
|
+
'r7g',
|
|
1200
|
+
'r7gd',
|
|
1201
|
+
'r7i',
|
|
1202
|
+
'r7iz',
|
|
1203
|
+
'r8g',
|
|
1204
|
+
'r8gd',
|
|
1205
|
+
't2',
|
|
1206
|
+
't2a',
|
|
1207
|
+
't2d',
|
|
1208
|
+
't3',
|
|
1209
|
+
't3a',
|
|
1210
|
+
't4g',
|
|
1211
|
+
'trn1',
|
|
1212
|
+
'trn1n',
|
|
1213
|
+
'u-3tb1',
|
|
1214
|
+
'u-6tb1',
|
|
1215
|
+
'u7i-12tb',
|
|
1216
|
+
'u7i-6tb',
|
|
1217
|
+
'u7i-8tb',
|
|
1218
|
+
'u7in-16tb',
|
|
1219
|
+
'u7in-24tb',
|
|
1220
|
+
'u7in-32tb',
|
|
1221
|
+
'vt1',
|
|
1222
|
+
'x1',
|
|
1223
|
+
'x1e',
|
|
1224
|
+
'x2gd',
|
|
1225
|
+
'x2idn',
|
|
1226
|
+
'x2iedn',
|
|
1227
|
+
'x2iezn',
|
|
1228
|
+
'x4',
|
|
1229
|
+
'x8g',
|
|
1230
|
+
'z1d',
|
|
1231
|
+
'z3'
|
|
1232
|
+
]
|
|
1233
|
+
},
|
|
1234
|
+
description: 'Allowed values for `cfke.io/instance-family`.',
|
|
1235
|
+
default: []
|
|
1236
|
+
},
|
|
1237
|
+
'topology.kubernetes.io/region': {
|
|
1238
|
+
type: 'array',
|
|
1239
|
+
items: {
|
|
1240
|
+
type: 'string',
|
|
1241
|
+
enum: [
|
|
1242
|
+
'africa-south1',
|
|
1243
|
+
'ap-northeast-1',
|
|
1244
|
+
'ap-northeast-2',
|
|
1245
|
+
'ap-northeast-3',
|
|
1246
|
+
'ap-south-1',
|
|
1247
|
+
'ap-southeast-1',
|
|
1248
|
+
'ap-southeast-2',
|
|
1249
|
+
'ash',
|
|
1250
|
+
'asia-east1',
|
|
1251
|
+
'asia-east2',
|
|
1252
|
+
'asia-northeast1',
|
|
1253
|
+
'asia-northeast2',
|
|
1254
|
+
'asia-northeast3',
|
|
1255
|
+
'asia-south1',
|
|
1256
|
+
'asia-south2',
|
|
1257
|
+
'asia-southeast1',
|
|
1258
|
+
'asia-southeast2',
|
|
1259
|
+
'australia-southeast1',
|
|
1260
|
+
'australia-southeast2',
|
|
1261
|
+
'ca-central-1',
|
|
1262
|
+
'eu-central-1',
|
|
1263
|
+
'eu-central-2',
|
|
1264
|
+
'eu-north-1',
|
|
1265
|
+
'eu-west-1',
|
|
1266
|
+
'eu-west-2',
|
|
1267
|
+
'eu-west-3',
|
|
1268
|
+
'europe-central2',
|
|
1269
|
+
'europe-north1',
|
|
1270
|
+
'europe-southwest1',
|
|
1271
|
+
'europe-west1',
|
|
1272
|
+
'europe-west10',
|
|
1273
|
+
'europe-west12',
|
|
1274
|
+
'europe-west2',
|
|
1275
|
+
'europe-west3',
|
|
1276
|
+
'europe-west4',
|
|
1277
|
+
'europe-west6',
|
|
1278
|
+
'europe-west8',
|
|
1279
|
+
'europe-west9',
|
|
1280
|
+
'fsn1',
|
|
1281
|
+
'hel1',
|
|
1282
|
+
'hil',
|
|
1283
|
+
'me-central1',
|
|
1284
|
+
'me-central2',
|
|
1285
|
+
'me-west1',
|
|
1286
|
+
'nbg1',
|
|
1287
|
+
'northamerica-northeast1',
|
|
1288
|
+
'northamerica-northeast2',
|
|
1289
|
+
'sa-east-1',
|
|
1290
|
+
'sin',
|
|
1291
|
+
'southamerica-east1',
|
|
1292
|
+
'southamerica-west1',
|
|
1293
|
+
'us-central1',
|
|
1294
|
+
'us-east-1',
|
|
1295
|
+
'us-east-2',
|
|
1296
|
+
'us-east1',
|
|
1297
|
+
'us-east4',
|
|
1298
|
+
'us-east5',
|
|
1299
|
+
'us-south1',
|
|
1300
|
+
'us-west-1',
|
|
1301
|
+
'us-west-2',
|
|
1302
|
+
'us-west1',
|
|
1303
|
+
'us-west2',
|
|
1304
|
+
'us-west3',
|
|
1305
|
+
'us-west4'
|
|
1306
|
+
]
|
|
1307
|
+
},
|
|
1308
|
+
description: 'Allowed values for `topology.kubernetes.io/region`.',
|
|
1309
|
+
default: []
|
|
1310
|
+
}
|
|
1311
|
+
},
|
|
1312
|
+
additionalProperties: false,
|
|
1313
|
+
description: 'Constraints define scheduling and provisioning requirements for the fleet. Each field restricts the values allowed for a given Kubernetes label key. Multiple constraints are ANDed together.',
|
|
1314
|
+
default: {
|
|
1315
|
+
'karpenter.sh/capacity-type': [
|
|
1316
|
+
'on-demand',
|
|
1317
|
+
'spot'
|
|
1318
|
+
],
|
|
1319
|
+
'kubernetes.io/arch': [
|
|
1320
|
+
'amd64'
|
|
1321
|
+
],
|
|
1322
|
+
'cfke.io/instance-family': [],
|
|
1323
|
+
'topology.kubernetes.io/region': []
|
|
1324
|
+
}
|
|
1325
|
+
},
|
|
1326
|
+
scalingProfile: {
|
|
1327
|
+
type: 'string',
|
|
1328
|
+
description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet. Full-overwrite: omit to reset to the default (`conservative`).',
|
|
1329
|
+
default: 'conservative',
|
|
1330
|
+
example: 'conservative',
|
|
1331
|
+
enum: [
|
|
1332
|
+
'aggressive',
|
|
1333
|
+
'conservative'
|
|
1334
|
+
]
|
|
1335
|
+
},
|
|
798
1336
|
id: {
|
|
799
1337
|
type: 'string',
|
|
800
1338
|
maxLength: 63,
|
|
@@ -807,7 +1345,8 @@ export const FleetCreateInputSchema = {
|
|
|
807
1345
|
required: [
|
|
808
1346
|
'id'
|
|
809
1347
|
],
|
|
810
|
-
additionalProperties: false
|
|
1348
|
+
additionalProperties: false,
|
|
1349
|
+
description: 'Mutable fleet configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
|
|
811
1350
|
};
|
|
812
1351
|
export const FleetSchema = {
|
|
813
1352
|
type: 'object',
|
|
@@ -816,15 +1355,12 @@ export const FleetSchema = {
|
|
|
816
1355
|
type: 'object',
|
|
817
1356
|
properties: {
|
|
818
1357
|
cpu: {
|
|
819
|
-
type: '
|
|
820
|
-
format: 'float',
|
|
1358
|
+
type: 'integer',
|
|
821
1359
|
minimum: 0,
|
|
822
|
-
|
|
1360
|
+
maximum: 100000,
|
|
1361
|
+
description: 'CPU limit in cores. Maximum 100,000.'
|
|
823
1362
|
}
|
|
824
1363
|
},
|
|
825
|
-
required: [
|
|
826
|
-
'cpu'
|
|
827
|
-
],
|
|
828
1364
|
additionalProperties: false,
|
|
829
1365
|
description: 'Limits define a set of bounds for provisioning capacity.'
|
|
830
1366
|
},
|
|
@@ -832,16 +1368,17 @@ export const FleetSchema = {
|
|
|
832
1368
|
type: 'object',
|
|
833
1369
|
properties: {
|
|
834
1370
|
enabled: {
|
|
835
|
-
type: 'boolean'
|
|
836
|
-
default: true
|
|
1371
|
+
type: 'boolean'
|
|
837
1372
|
},
|
|
838
1373
|
project: {
|
|
839
1374
|
type: 'string',
|
|
840
|
-
|
|
1375
|
+
pattern: '^[a-z][a-z0-9-]{4,28}[a-z0-9]$',
|
|
1376
|
+
description: 'GCP project ID to deploy instances into. 6-30 chars, lowercase letters/digits/hyphens, must start with a letter and not end with a hyphen. Omit when GCP is disabled.',
|
|
1377
|
+
example: 'my-cloudfleet-project'
|
|
841
1378
|
}
|
|
842
1379
|
},
|
|
843
1380
|
required: [
|
|
844
|
-
'
|
|
1381
|
+
'enabled'
|
|
845
1382
|
],
|
|
846
1383
|
additionalProperties: false
|
|
847
1384
|
},
|
|
@@ -849,16 +1386,16 @@ export const FleetSchema = {
|
|
|
849
1386
|
type: 'object',
|
|
850
1387
|
properties: {
|
|
851
1388
|
enabled: {
|
|
852
|
-
type: 'boolean'
|
|
853
|
-
default: true
|
|
1389
|
+
type: 'boolean'
|
|
854
1390
|
},
|
|
855
1391
|
apiKey: {
|
|
856
1392
|
type: 'string',
|
|
857
|
-
|
|
1393
|
+
pattern: '^\\*{64}$',
|
|
1394
|
+
description: 'Redacted Hetzner API token. Returned as 64 asterisks when a token is configured; omitted otherwise. The real value is never echoed by the API.'
|
|
858
1395
|
}
|
|
859
1396
|
},
|
|
860
1397
|
required: [
|
|
861
|
-
'
|
|
1398
|
+
'enabled'
|
|
862
1399
|
],
|
|
863
1400
|
additionalProperties: false
|
|
864
1401
|
},
|
|
@@ -866,19 +1403,325 @@ export const FleetSchema = {
|
|
|
866
1403
|
type: 'object',
|
|
867
1404
|
properties: {
|
|
868
1405
|
enabled: {
|
|
869
|
-
type: 'boolean'
|
|
870
|
-
default: true
|
|
1406
|
+
type: 'boolean'
|
|
871
1407
|
},
|
|
872
1408
|
controllerRoleArn: {
|
|
873
1409
|
type: 'string',
|
|
874
|
-
|
|
1410
|
+
pattern: '^arn:aws(-[a-z]+)*:iam::\\d{12}:role\\/[\\w+=,.@/-]+$',
|
|
1411
|
+
description: 'AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.',
|
|
1412
|
+
example: 'arn:aws:iam::123456789012:role/Cloudfleet'
|
|
875
1413
|
}
|
|
876
1414
|
},
|
|
877
1415
|
required: [
|
|
878
|
-
'
|
|
1416
|
+
'enabled'
|
|
879
1417
|
],
|
|
880
1418
|
additionalProperties: false
|
|
881
1419
|
},
|
|
1420
|
+
constraints: {
|
|
1421
|
+
type: 'object',
|
|
1422
|
+
properties: {
|
|
1423
|
+
'karpenter.sh/capacity-type': {
|
|
1424
|
+
type: 'array',
|
|
1425
|
+
items: {
|
|
1426
|
+
type: 'string',
|
|
1427
|
+
enum: [
|
|
1428
|
+
'on-demand',
|
|
1429
|
+
'spot'
|
|
1430
|
+
]
|
|
1431
|
+
},
|
|
1432
|
+
minItems: 1,
|
|
1433
|
+
description: 'Allowed values for `karpenter.sh/capacity-type`.',
|
|
1434
|
+
default: [
|
|
1435
|
+
'on-demand',
|
|
1436
|
+
'spot'
|
|
1437
|
+
]
|
|
1438
|
+
},
|
|
1439
|
+
'kubernetes.io/arch': {
|
|
1440
|
+
type: 'array',
|
|
1441
|
+
items: {
|
|
1442
|
+
type: 'string',
|
|
1443
|
+
enum: [
|
|
1444
|
+
'amd64',
|
|
1445
|
+
'arm64'
|
|
1446
|
+
]
|
|
1447
|
+
},
|
|
1448
|
+
minItems: 1,
|
|
1449
|
+
description: 'Allowed values for `kubernetes.io/arch`.',
|
|
1450
|
+
default: [
|
|
1451
|
+
'amd64'
|
|
1452
|
+
]
|
|
1453
|
+
},
|
|
1454
|
+
'cfke.io/instance-family': {
|
|
1455
|
+
type: 'array',
|
|
1456
|
+
items: {
|
|
1457
|
+
type: 'string',
|
|
1458
|
+
enum: [
|
|
1459
|
+
'a1',
|
|
1460
|
+
'a2',
|
|
1461
|
+
'a3',
|
|
1462
|
+
'a4',
|
|
1463
|
+
'c1',
|
|
1464
|
+
'c2',
|
|
1465
|
+
'c2d',
|
|
1466
|
+
'c3',
|
|
1467
|
+
'c3d',
|
|
1468
|
+
'c4',
|
|
1469
|
+
'c4a',
|
|
1470
|
+
'c4d',
|
|
1471
|
+
'c5',
|
|
1472
|
+
'c5a',
|
|
1473
|
+
'c5ad',
|
|
1474
|
+
'c5d',
|
|
1475
|
+
'c5n',
|
|
1476
|
+
'c6a',
|
|
1477
|
+
'c6g',
|
|
1478
|
+
'c6gd',
|
|
1479
|
+
'c6gn',
|
|
1480
|
+
'c6i',
|
|
1481
|
+
'c6id',
|
|
1482
|
+
'c6in',
|
|
1483
|
+
'c7a',
|
|
1484
|
+
'c7g',
|
|
1485
|
+
'c7gd',
|
|
1486
|
+
'c7gn',
|
|
1487
|
+
'c7i',
|
|
1488
|
+
'c7i-flex',
|
|
1489
|
+
'c8g',
|
|
1490
|
+
'c8gd',
|
|
1491
|
+
'cax',
|
|
1492
|
+
'ccx',
|
|
1493
|
+
'cpx',
|
|
1494
|
+
'cx',
|
|
1495
|
+
'd2',
|
|
1496
|
+
'd3',
|
|
1497
|
+
'd3en',
|
|
1498
|
+
'dl1',
|
|
1499
|
+
'dl2q',
|
|
1500
|
+
'e2',
|
|
1501
|
+
'f1',
|
|
1502
|
+
'f2',
|
|
1503
|
+
'g1',
|
|
1504
|
+
'g2',
|
|
1505
|
+
'g4ad',
|
|
1506
|
+
'g4dn',
|
|
1507
|
+
'g5',
|
|
1508
|
+
'g5g',
|
|
1509
|
+
'g6',
|
|
1510
|
+
'g6e',
|
|
1511
|
+
'gr6',
|
|
1512
|
+
'h1',
|
|
1513
|
+
'h3',
|
|
1514
|
+
'hpc6a',
|
|
1515
|
+
'hpc6id',
|
|
1516
|
+
'hpc7a',
|
|
1517
|
+
'hpc7g',
|
|
1518
|
+
'i2',
|
|
1519
|
+
'i3',
|
|
1520
|
+
'i3en',
|
|
1521
|
+
'i4g',
|
|
1522
|
+
'i4i',
|
|
1523
|
+
'i7i',
|
|
1524
|
+
'i7ie',
|
|
1525
|
+
'i8g',
|
|
1526
|
+
'im4gn',
|
|
1527
|
+
'inf1',
|
|
1528
|
+
'inf2',
|
|
1529
|
+
'is4gen',
|
|
1530
|
+
'm1',
|
|
1531
|
+
'm2',
|
|
1532
|
+
'm3',
|
|
1533
|
+
'm4',
|
|
1534
|
+
'm5',
|
|
1535
|
+
'm5a',
|
|
1536
|
+
'm5ad',
|
|
1537
|
+
'm5d',
|
|
1538
|
+
'm5dn',
|
|
1539
|
+
'm5n',
|
|
1540
|
+
'm5zn',
|
|
1541
|
+
'm6a',
|
|
1542
|
+
'm6g',
|
|
1543
|
+
'm6gd',
|
|
1544
|
+
'm6i',
|
|
1545
|
+
'm6id',
|
|
1546
|
+
'm6idn',
|
|
1547
|
+
'm6in',
|
|
1548
|
+
'm7a',
|
|
1549
|
+
'm7g',
|
|
1550
|
+
'm7gd',
|
|
1551
|
+
'm7i',
|
|
1552
|
+
'm7i-flex',
|
|
1553
|
+
'm8g',
|
|
1554
|
+
'm8gd',
|
|
1555
|
+
'n1',
|
|
1556
|
+
'n2',
|
|
1557
|
+
'n2d',
|
|
1558
|
+
'n4',
|
|
1559
|
+
'p3',
|
|
1560
|
+
'p3dn',
|
|
1561
|
+
'p4d',
|
|
1562
|
+
'p4de',
|
|
1563
|
+
'p5',
|
|
1564
|
+
'p5e',
|
|
1565
|
+
'p5en',
|
|
1566
|
+
'p6-b200',
|
|
1567
|
+
'r3',
|
|
1568
|
+
'r4',
|
|
1569
|
+
'r5',
|
|
1570
|
+
'r5a',
|
|
1571
|
+
'r5ad',
|
|
1572
|
+
'r5b',
|
|
1573
|
+
'r5d',
|
|
1574
|
+
'r5dn',
|
|
1575
|
+
'r5n',
|
|
1576
|
+
'r6a',
|
|
1577
|
+
'r6g',
|
|
1578
|
+
'r6gd',
|
|
1579
|
+
'r6i',
|
|
1580
|
+
'r6id',
|
|
1581
|
+
'r6idn',
|
|
1582
|
+
'r6in',
|
|
1583
|
+
'r7a',
|
|
1584
|
+
'r7g',
|
|
1585
|
+
'r7gd',
|
|
1586
|
+
'r7i',
|
|
1587
|
+
'r7iz',
|
|
1588
|
+
'r8g',
|
|
1589
|
+
'r8gd',
|
|
1590
|
+
't2',
|
|
1591
|
+
't2a',
|
|
1592
|
+
't2d',
|
|
1593
|
+
't3',
|
|
1594
|
+
't3a',
|
|
1595
|
+
't4g',
|
|
1596
|
+
'trn1',
|
|
1597
|
+
'trn1n',
|
|
1598
|
+
'u-3tb1',
|
|
1599
|
+
'u-6tb1',
|
|
1600
|
+
'u7i-12tb',
|
|
1601
|
+
'u7i-6tb',
|
|
1602
|
+
'u7i-8tb',
|
|
1603
|
+
'u7in-16tb',
|
|
1604
|
+
'u7in-24tb',
|
|
1605
|
+
'u7in-32tb',
|
|
1606
|
+
'vt1',
|
|
1607
|
+
'x1',
|
|
1608
|
+
'x1e',
|
|
1609
|
+
'x2gd',
|
|
1610
|
+
'x2idn',
|
|
1611
|
+
'x2iedn',
|
|
1612
|
+
'x2iezn',
|
|
1613
|
+
'x4',
|
|
1614
|
+
'x8g',
|
|
1615
|
+
'z1d',
|
|
1616
|
+
'z3'
|
|
1617
|
+
]
|
|
1618
|
+
},
|
|
1619
|
+
description: 'Allowed values for `cfke.io/instance-family`.',
|
|
1620
|
+
default: []
|
|
1621
|
+
},
|
|
1622
|
+
'topology.kubernetes.io/region': {
|
|
1623
|
+
type: 'array',
|
|
1624
|
+
items: {
|
|
1625
|
+
type: 'string',
|
|
1626
|
+
enum: [
|
|
1627
|
+
'africa-south1',
|
|
1628
|
+
'ap-northeast-1',
|
|
1629
|
+
'ap-northeast-2',
|
|
1630
|
+
'ap-northeast-3',
|
|
1631
|
+
'ap-south-1',
|
|
1632
|
+
'ap-southeast-1',
|
|
1633
|
+
'ap-southeast-2',
|
|
1634
|
+
'ash',
|
|
1635
|
+
'asia-east1',
|
|
1636
|
+
'asia-east2',
|
|
1637
|
+
'asia-northeast1',
|
|
1638
|
+
'asia-northeast2',
|
|
1639
|
+
'asia-northeast3',
|
|
1640
|
+
'asia-south1',
|
|
1641
|
+
'asia-south2',
|
|
1642
|
+
'asia-southeast1',
|
|
1643
|
+
'asia-southeast2',
|
|
1644
|
+
'australia-southeast1',
|
|
1645
|
+
'australia-southeast2',
|
|
1646
|
+
'ca-central-1',
|
|
1647
|
+
'eu-central-1',
|
|
1648
|
+
'eu-central-2',
|
|
1649
|
+
'eu-north-1',
|
|
1650
|
+
'eu-west-1',
|
|
1651
|
+
'eu-west-2',
|
|
1652
|
+
'eu-west-3',
|
|
1653
|
+
'europe-central2',
|
|
1654
|
+
'europe-north1',
|
|
1655
|
+
'europe-southwest1',
|
|
1656
|
+
'europe-west1',
|
|
1657
|
+
'europe-west10',
|
|
1658
|
+
'europe-west12',
|
|
1659
|
+
'europe-west2',
|
|
1660
|
+
'europe-west3',
|
|
1661
|
+
'europe-west4',
|
|
1662
|
+
'europe-west6',
|
|
1663
|
+
'europe-west8',
|
|
1664
|
+
'europe-west9',
|
|
1665
|
+
'fsn1',
|
|
1666
|
+
'hel1',
|
|
1667
|
+
'hil',
|
|
1668
|
+
'me-central1',
|
|
1669
|
+
'me-central2',
|
|
1670
|
+
'me-west1',
|
|
1671
|
+
'nbg1',
|
|
1672
|
+
'northamerica-northeast1',
|
|
1673
|
+
'northamerica-northeast2',
|
|
1674
|
+
'sa-east-1',
|
|
1675
|
+
'sin',
|
|
1676
|
+
'southamerica-east1',
|
|
1677
|
+
'southamerica-west1',
|
|
1678
|
+
'us-central1',
|
|
1679
|
+
'us-east-1',
|
|
1680
|
+
'us-east-2',
|
|
1681
|
+
'us-east1',
|
|
1682
|
+
'us-east4',
|
|
1683
|
+
'us-east5',
|
|
1684
|
+
'us-south1',
|
|
1685
|
+
'us-west-1',
|
|
1686
|
+
'us-west-2',
|
|
1687
|
+
'us-west1',
|
|
1688
|
+
'us-west2',
|
|
1689
|
+
'us-west3',
|
|
1690
|
+
'us-west4'
|
|
1691
|
+
]
|
|
1692
|
+
},
|
|
1693
|
+
description: 'Allowed values for `topology.kubernetes.io/region`.',
|
|
1694
|
+
default: []
|
|
1695
|
+
}
|
|
1696
|
+
},
|
|
1697
|
+
required: [
|
|
1698
|
+
'karpenter.sh/capacity-type',
|
|
1699
|
+
'kubernetes.io/arch'
|
|
1700
|
+
],
|
|
1701
|
+
additionalProperties: false,
|
|
1702
|
+
description: 'Constraints define scheduling and provisioning requirements for the fleet. Each field restricts the values allowed for a given Kubernetes label key. Multiple constraints are ANDed together.',
|
|
1703
|
+
default: {
|
|
1704
|
+
'karpenter.sh/capacity-type': [
|
|
1705
|
+
'on-demand',
|
|
1706
|
+
'spot'
|
|
1707
|
+
],
|
|
1708
|
+
'kubernetes.io/arch': [
|
|
1709
|
+
'amd64'
|
|
1710
|
+
],
|
|
1711
|
+
'cfke.io/instance-family': [],
|
|
1712
|
+
'topology.kubernetes.io/region': []
|
|
1713
|
+
}
|
|
1714
|
+
},
|
|
1715
|
+
scalingProfile: {
|
|
1716
|
+
type: 'string',
|
|
1717
|
+
description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet. Full-overwrite: omit to reset to the default (`conservative`).',
|
|
1718
|
+
default: 'conservative',
|
|
1719
|
+
example: 'conservative',
|
|
1720
|
+
enum: [
|
|
1721
|
+
'aggressive',
|
|
1722
|
+
'conservative'
|
|
1723
|
+
]
|
|
1724
|
+
},
|
|
882
1725
|
id: {
|
|
883
1726
|
type: 'string',
|
|
884
1727
|
maxLength: 63,
|
|
@@ -886,12 +1729,38 @@ export const FleetSchema = {
|
|
|
886
1729
|
pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
|
|
887
1730
|
description: 'Unique identifier of the kubernetes fleet.',
|
|
888
1731
|
example: 'new-clouds-fleet'
|
|
1732
|
+
},
|
|
1733
|
+
ready: {
|
|
1734
|
+
type: 'boolean',
|
|
1735
|
+
description: 'Indicates whether the fleet configuration is healthy.',
|
|
1736
|
+
example: true
|
|
1737
|
+
},
|
|
1738
|
+
status_message: {
|
|
1739
|
+
type: 'string',
|
|
1740
|
+
description: 'Human-readable reason the fleet is not ready. Present only when `ready` is false.',
|
|
1741
|
+
example: 'Invalid provider permissions.'
|
|
1742
|
+
},
|
|
1743
|
+
created_at: {
|
|
1744
|
+
type: 'string',
|
|
1745
|
+
description: 'Creation date and time of the fleet.',
|
|
1746
|
+
example: '2024-09-12T09:11:27Z'
|
|
1747
|
+
},
|
|
1748
|
+
updated_at: {
|
|
1749
|
+
type: 'string',
|
|
1750
|
+
description: 'Date and time the fleet was last updated.',
|
|
1751
|
+
example: '2024-09-12T09:11:27Z'
|
|
889
1752
|
}
|
|
890
1753
|
},
|
|
891
1754
|
required: [
|
|
892
|
-
'
|
|
1755
|
+
'constraints',
|
|
1756
|
+
'scalingProfile',
|
|
1757
|
+
'id',
|
|
1758
|
+
'ready',
|
|
1759
|
+
'created_at',
|
|
1760
|
+
'updated_at'
|
|
893
1761
|
],
|
|
894
|
-
additionalProperties: false
|
|
1762
|
+
additionalProperties: false,
|
|
1763
|
+
description: 'Mutable fleet configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
|
|
895
1764
|
};
|
|
896
1765
|
export const FleetUpdateInputSchema = {
|
|
897
1766
|
type: 'object',
|
|
@@ -900,15 +1769,12 @@ export const FleetUpdateInputSchema = {
|
|
|
900
1769
|
type: 'object',
|
|
901
1770
|
properties: {
|
|
902
1771
|
cpu: {
|
|
903
|
-
type: '
|
|
904
|
-
format: 'float',
|
|
1772
|
+
type: 'integer',
|
|
905
1773
|
minimum: 0,
|
|
906
|
-
|
|
1774
|
+
maximum: 100000,
|
|
1775
|
+
description: 'CPU limit in cores. Maximum 100,000.'
|
|
907
1776
|
}
|
|
908
1777
|
},
|
|
909
|
-
required: [
|
|
910
|
-
'cpu'
|
|
911
|
-
],
|
|
912
1778
|
additionalProperties: false,
|
|
913
1779
|
description: 'Limits define a set of bounds for provisioning capacity.'
|
|
914
1780
|
},
|
|
@@ -916,16 +1782,17 @@ export const FleetUpdateInputSchema = {
|
|
|
916
1782
|
type: 'object',
|
|
917
1783
|
properties: {
|
|
918
1784
|
enabled: {
|
|
919
|
-
type: 'boolean'
|
|
920
|
-
default: true
|
|
1785
|
+
type: 'boolean'
|
|
921
1786
|
},
|
|
922
1787
|
project: {
|
|
923
1788
|
type: 'string',
|
|
924
|
-
|
|
1789
|
+
pattern: '^[a-z][a-z0-9-]{4,28}[a-z0-9]$',
|
|
1790
|
+
description: 'GCP project ID to deploy instances into. 6-30 chars, lowercase letters/digits/hyphens, must start with a letter and not end with a hyphen. Omit when GCP is disabled.',
|
|
1791
|
+
example: 'my-cloudfleet-project'
|
|
925
1792
|
}
|
|
926
1793
|
},
|
|
927
1794
|
required: [
|
|
928
|
-
'
|
|
1795
|
+
'enabled'
|
|
929
1796
|
],
|
|
930
1797
|
additionalProperties: false
|
|
931
1798
|
},
|
|
@@ -933,16 +1800,18 @@ export const FleetUpdateInputSchema = {
|
|
|
933
1800
|
type: 'object',
|
|
934
1801
|
properties: {
|
|
935
1802
|
enabled: {
|
|
936
|
-
type: 'boolean'
|
|
937
|
-
default: true
|
|
1803
|
+
type: 'boolean'
|
|
938
1804
|
},
|
|
939
1805
|
apiKey: {
|
|
940
1806
|
type: 'string',
|
|
941
|
-
|
|
1807
|
+
maxLength: 64,
|
|
1808
|
+
minLength: 64,
|
|
1809
|
+
pattern: '^[A-Za-z0-9]+$',
|
|
1810
|
+
description: 'Hetzner Cloud API token with read / write access (64 alphanumeric characters). Omit this field to keep the existing value.'
|
|
942
1811
|
}
|
|
943
1812
|
},
|
|
944
1813
|
required: [
|
|
945
|
-
'
|
|
1814
|
+
'enabled'
|
|
946
1815
|
],
|
|
947
1816
|
additionalProperties: false
|
|
948
1817
|
},
|
|
@@ -950,20 +1819,348 @@ export const FleetUpdateInputSchema = {
|
|
|
950
1819
|
type: 'object',
|
|
951
1820
|
properties: {
|
|
952
1821
|
enabled: {
|
|
953
|
-
type: 'boolean'
|
|
954
|
-
default: true
|
|
1822
|
+
type: 'boolean'
|
|
955
1823
|
},
|
|
956
1824
|
controllerRoleArn: {
|
|
957
1825
|
type: 'string',
|
|
958
|
-
|
|
1826
|
+
pattern: '^arn:aws(-[a-z]+)*:iam::\\d{12}:role\\/[\\w+=,.@/-]+$',
|
|
1827
|
+
description: 'AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.',
|
|
1828
|
+
example: 'arn:aws:iam::123456789012:role/Cloudfleet'
|
|
959
1829
|
}
|
|
960
1830
|
},
|
|
961
1831
|
required: [
|
|
962
|
-
'
|
|
1832
|
+
'enabled'
|
|
963
1833
|
],
|
|
964
1834
|
additionalProperties: false
|
|
1835
|
+
},
|
|
1836
|
+
constraints: {
|
|
1837
|
+
type: 'object',
|
|
1838
|
+
properties: {
|
|
1839
|
+
'karpenter.sh/capacity-type': {
|
|
1840
|
+
type: 'array',
|
|
1841
|
+
items: {
|
|
1842
|
+
type: 'string',
|
|
1843
|
+
enum: [
|
|
1844
|
+
'on-demand',
|
|
1845
|
+
'spot'
|
|
1846
|
+
]
|
|
1847
|
+
},
|
|
1848
|
+
minItems: 1,
|
|
1849
|
+
description: 'Allowed values for `karpenter.sh/capacity-type`.',
|
|
1850
|
+
default: [
|
|
1851
|
+
'on-demand',
|
|
1852
|
+
'spot'
|
|
1853
|
+
]
|
|
1854
|
+
},
|
|
1855
|
+
'kubernetes.io/arch': {
|
|
1856
|
+
type: 'array',
|
|
1857
|
+
items: {
|
|
1858
|
+
type: 'string',
|
|
1859
|
+
enum: [
|
|
1860
|
+
'amd64',
|
|
1861
|
+
'arm64'
|
|
1862
|
+
]
|
|
1863
|
+
},
|
|
1864
|
+
minItems: 1,
|
|
1865
|
+
description: 'Allowed values for `kubernetes.io/arch`.',
|
|
1866
|
+
default: [
|
|
1867
|
+
'amd64'
|
|
1868
|
+
]
|
|
1869
|
+
},
|
|
1870
|
+
'cfke.io/instance-family': {
|
|
1871
|
+
type: 'array',
|
|
1872
|
+
items: {
|
|
1873
|
+
type: 'string',
|
|
1874
|
+
enum: [
|
|
1875
|
+
'a1',
|
|
1876
|
+
'a2',
|
|
1877
|
+
'a3',
|
|
1878
|
+
'a4',
|
|
1879
|
+
'c1',
|
|
1880
|
+
'c2',
|
|
1881
|
+
'c2d',
|
|
1882
|
+
'c3',
|
|
1883
|
+
'c3d',
|
|
1884
|
+
'c4',
|
|
1885
|
+
'c4a',
|
|
1886
|
+
'c4d',
|
|
1887
|
+
'c5',
|
|
1888
|
+
'c5a',
|
|
1889
|
+
'c5ad',
|
|
1890
|
+
'c5d',
|
|
1891
|
+
'c5n',
|
|
1892
|
+
'c6a',
|
|
1893
|
+
'c6g',
|
|
1894
|
+
'c6gd',
|
|
1895
|
+
'c6gn',
|
|
1896
|
+
'c6i',
|
|
1897
|
+
'c6id',
|
|
1898
|
+
'c6in',
|
|
1899
|
+
'c7a',
|
|
1900
|
+
'c7g',
|
|
1901
|
+
'c7gd',
|
|
1902
|
+
'c7gn',
|
|
1903
|
+
'c7i',
|
|
1904
|
+
'c7i-flex',
|
|
1905
|
+
'c8g',
|
|
1906
|
+
'c8gd',
|
|
1907
|
+
'cax',
|
|
1908
|
+
'ccx',
|
|
1909
|
+
'cpx',
|
|
1910
|
+
'cx',
|
|
1911
|
+
'd2',
|
|
1912
|
+
'd3',
|
|
1913
|
+
'd3en',
|
|
1914
|
+
'dl1',
|
|
1915
|
+
'dl2q',
|
|
1916
|
+
'e2',
|
|
1917
|
+
'f1',
|
|
1918
|
+
'f2',
|
|
1919
|
+
'g1',
|
|
1920
|
+
'g2',
|
|
1921
|
+
'g4ad',
|
|
1922
|
+
'g4dn',
|
|
1923
|
+
'g5',
|
|
1924
|
+
'g5g',
|
|
1925
|
+
'g6',
|
|
1926
|
+
'g6e',
|
|
1927
|
+
'gr6',
|
|
1928
|
+
'h1',
|
|
1929
|
+
'h3',
|
|
1930
|
+
'hpc6a',
|
|
1931
|
+
'hpc6id',
|
|
1932
|
+
'hpc7a',
|
|
1933
|
+
'hpc7g',
|
|
1934
|
+
'i2',
|
|
1935
|
+
'i3',
|
|
1936
|
+
'i3en',
|
|
1937
|
+
'i4g',
|
|
1938
|
+
'i4i',
|
|
1939
|
+
'i7i',
|
|
1940
|
+
'i7ie',
|
|
1941
|
+
'i8g',
|
|
1942
|
+
'im4gn',
|
|
1943
|
+
'inf1',
|
|
1944
|
+
'inf2',
|
|
1945
|
+
'is4gen',
|
|
1946
|
+
'm1',
|
|
1947
|
+
'm2',
|
|
1948
|
+
'm3',
|
|
1949
|
+
'm4',
|
|
1950
|
+
'm5',
|
|
1951
|
+
'm5a',
|
|
1952
|
+
'm5ad',
|
|
1953
|
+
'm5d',
|
|
1954
|
+
'm5dn',
|
|
1955
|
+
'm5n',
|
|
1956
|
+
'm5zn',
|
|
1957
|
+
'm6a',
|
|
1958
|
+
'm6g',
|
|
1959
|
+
'm6gd',
|
|
1960
|
+
'm6i',
|
|
1961
|
+
'm6id',
|
|
1962
|
+
'm6idn',
|
|
1963
|
+
'm6in',
|
|
1964
|
+
'm7a',
|
|
1965
|
+
'm7g',
|
|
1966
|
+
'm7gd',
|
|
1967
|
+
'm7i',
|
|
1968
|
+
'm7i-flex',
|
|
1969
|
+
'm8g',
|
|
1970
|
+
'm8gd',
|
|
1971
|
+
'n1',
|
|
1972
|
+
'n2',
|
|
1973
|
+
'n2d',
|
|
1974
|
+
'n4',
|
|
1975
|
+
'p3',
|
|
1976
|
+
'p3dn',
|
|
1977
|
+
'p4d',
|
|
1978
|
+
'p4de',
|
|
1979
|
+
'p5',
|
|
1980
|
+
'p5e',
|
|
1981
|
+
'p5en',
|
|
1982
|
+
'p6-b200',
|
|
1983
|
+
'r3',
|
|
1984
|
+
'r4',
|
|
1985
|
+
'r5',
|
|
1986
|
+
'r5a',
|
|
1987
|
+
'r5ad',
|
|
1988
|
+
'r5b',
|
|
1989
|
+
'r5d',
|
|
1990
|
+
'r5dn',
|
|
1991
|
+
'r5n',
|
|
1992
|
+
'r6a',
|
|
1993
|
+
'r6g',
|
|
1994
|
+
'r6gd',
|
|
1995
|
+
'r6i',
|
|
1996
|
+
'r6id',
|
|
1997
|
+
'r6idn',
|
|
1998
|
+
'r6in',
|
|
1999
|
+
'r7a',
|
|
2000
|
+
'r7g',
|
|
2001
|
+
'r7gd',
|
|
2002
|
+
'r7i',
|
|
2003
|
+
'r7iz',
|
|
2004
|
+
'r8g',
|
|
2005
|
+
'r8gd',
|
|
2006
|
+
't2',
|
|
2007
|
+
't2a',
|
|
2008
|
+
't2d',
|
|
2009
|
+
't3',
|
|
2010
|
+
't3a',
|
|
2011
|
+
't4g',
|
|
2012
|
+
'trn1',
|
|
2013
|
+
'trn1n',
|
|
2014
|
+
'u-3tb1',
|
|
2015
|
+
'u-6tb1',
|
|
2016
|
+
'u7i-12tb',
|
|
2017
|
+
'u7i-6tb',
|
|
2018
|
+
'u7i-8tb',
|
|
2019
|
+
'u7in-16tb',
|
|
2020
|
+
'u7in-24tb',
|
|
2021
|
+
'u7in-32tb',
|
|
2022
|
+
'vt1',
|
|
2023
|
+
'x1',
|
|
2024
|
+
'x1e',
|
|
2025
|
+
'x2gd',
|
|
2026
|
+
'x2idn',
|
|
2027
|
+
'x2iedn',
|
|
2028
|
+
'x2iezn',
|
|
2029
|
+
'x4',
|
|
2030
|
+
'x8g',
|
|
2031
|
+
'z1d',
|
|
2032
|
+
'z3'
|
|
2033
|
+
]
|
|
2034
|
+
},
|
|
2035
|
+
description: 'Allowed values for `cfke.io/instance-family`.',
|
|
2036
|
+
default: []
|
|
2037
|
+
},
|
|
2038
|
+
'topology.kubernetes.io/region': {
|
|
2039
|
+
type: 'array',
|
|
2040
|
+
items: {
|
|
2041
|
+
type: 'string',
|
|
2042
|
+
enum: [
|
|
2043
|
+
'africa-south1',
|
|
2044
|
+
'ap-northeast-1',
|
|
2045
|
+
'ap-northeast-2',
|
|
2046
|
+
'ap-northeast-3',
|
|
2047
|
+
'ap-south-1',
|
|
2048
|
+
'ap-southeast-1',
|
|
2049
|
+
'ap-southeast-2',
|
|
2050
|
+
'ash',
|
|
2051
|
+
'asia-east1',
|
|
2052
|
+
'asia-east2',
|
|
2053
|
+
'asia-northeast1',
|
|
2054
|
+
'asia-northeast2',
|
|
2055
|
+
'asia-northeast3',
|
|
2056
|
+
'asia-south1',
|
|
2057
|
+
'asia-south2',
|
|
2058
|
+
'asia-southeast1',
|
|
2059
|
+
'asia-southeast2',
|
|
2060
|
+
'australia-southeast1',
|
|
2061
|
+
'australia-southeast2',
|
|
2062
|
+
'ca-central-1',
|
|
2063
|
+
'eu-central-1',
|
|
2064
|
+
'eu-central-2',
|
|
2065
|
+
'eu-north-1',
|
|
2066
|
+
'eu-west-1',
|
|
2067
|
+
'eu-west-2',
|
|
2068
|
+
'eu-west-3',
|
|
2069
|
+
'europe-central2',
|
|
2070
|
+
'europe-north1',
|
|
2071
|
+
'europe-southwest1',
|
|
2072
|
+
'europe-west1',
|
|
2073
|
+
'europe-west10',
|
|
2074
|
+
'europe-west12',
|
|
2075
|
+
'europe-west2',
|
|
2076
|
+
'europe-west3',
|
|
2077
|
+
'europe-west4',
|
|
2078
|
+
'europe-west6',
|
|
2079
|
+
'europe-west8',
|
|
2080
|
+
'europe-west9',
|
|
2081
|
+
'fsn1',
|
|
2082
|
+
'hel1',
|
|
2083
|
+
'hil',
|
|
2084
|
+
'me-central1',
|
|
2085
|
+
'me-central2',
|
|
2086
|
+
'me-west1',
|
|
2087
|
+
'nbg1',
|
|
2088
|
+
'northamerica-northeast1',
|
|
2089
|
+
'northamerica-northeast2',
|
|
2090
|
+
'sa-east-1',
|
|
2091
|
+
'sin',
|
|
2092
|
+
'southamerica-east1',
|
|
2093
|
+
'southamerica-west1',
|
|
2094
|
+
'us-central1',
|
|
2095
|
+
'us-east-1',
|
|
2096
|
+
'us-east-2',
|
|
2097
|
+
'us-east1',
|
|
2098
|
+
'us-east4',
|
|
2099
|
+
'us-east5',
|
|
2100
|
+
'us-south1',
|
|
2101
|
+
'us-west-1',
|
|
2102
|
+
'us-west-2',
|
|
2103
|
+
'us-west1',
|
|
2104
|
+
'us-west2',
|
|
2105
|
+
'us-west3',
|
|
2106
|
+
'us-west4'
|
|
2107
|
+
]
|
|
2108
|
+
},
|
|
2109
|
+
description: 'Allowed values for `topology.kubernetes.io/region`.',
|
|
2110
|
+
default: []
|
|
2111
|
+
}
|
|
2112
|
+
},
|
|
2113
|
+
additionalProperties: false,
|
|
2114
|
+
description: 'Constraints define scheduling and provisioning requirements for the fleet. Each field restricts the values allowed for a given Kubernetes label key. Multiple constraints are ANDed together.',
|
|
2115
|
+
default: {
|
|
2116
|
+
'karpenter.sh/capacity-type': [
|
|
2117
|
+
'on-demand',
|
|
2118
|
+
'spot'
|
|
2119
|
+
],
|
|
2120
|
+
'kubernetes.io/arch': [
|
|
2121
|
+
'amd64'
|
|
2122
|
+
],
|
|
2123
|
+
'cfke.io/instance-family': [],
|
|
2124
|
+
'topology.kubernetes.io/region': []
|
|
2125
|
+
}
|
|
2126
|
+
},
|
|
2127
|
+
scalingProfile: {
|
|
2128
|
+
type: 'string',
|
|
2129
|
+
description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet. Full-overwrite: omit to reset to the default (`conservative`).',
|
|
2130
|
+
default: 'conservative',
|
|
2131
|
+
example: 'conservative',
|
|
2132
|
+
enum: [
|
|
2133
|
+
'aggressive',
|
|
2134
|
+
'conservative'
|
|
2135
|
+
]
|
|
965
2136
|
}
|
|
966
2137
|
},
|
|
2138
|
+
additionalProperties: false,
|
|
2139
|
+
description: 'Mutable fleet configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
|
|
2140
|
+
};
|
|
2141
|
+
export const InviteCreateInputSchema = {
|
|
2142
|
+
type: 'object',
|
|
2143
|
+
properties: {
|
|
2144
|
+
email: {
|
|
2145
|
+
type: 'string',
|
|
2146
|
+
format: 'email',
|
|
2147
|
+
description: 'Email address of the user to invite.',
|
|
2148
|
+
example: 'email@example.com'
|
|
2149
|
+
},
|
|
2150
|
+
role: {
|
|
2151
|
+
type: 'string',
|
|
2152
|
+
description: 'Role the invited user will be assigned on redemption. Can be \'Administrator\' or \'User\'.',
|
|
2153
|
+
default: 'User',
|
|
2154
|
+
example: 'User',
|
|
2155
|
+
enum: [
|
|
2156
|
+
'Administrator',
|
|
2157
|
+
'User'
|
|
2158
|
+
]
|
|
2159
|
+
}
|
|
2160
|
+
},
|
|
2161
|
+
required: [
|
|
2162
|
+
'email'
|
|
2163
|
+
],
|
|
967
2164
|
additionalProperties: false
|
|
968
2165
|
};
|
|
969
2166
|
export const InviteSchema = {
|
|
@@ -996,6 +2193,16 @@ export const InviteSchema = {
|
|
|
996
2193
|
type: 'string',
|
|
997
2194
|
description: 'Generated unique invite code.',
|
|
998
2195
|
example: '7kUZnH7nnKUFfvc4NK2KQF'
|
|
2196
|
+
},
|
|
2197
|
+
role: {
|
|
2198
|
+
type: 'string',
|
|
2199
|
+
description: 'Role the invited user will be assigned on redemption. Can be \'Administrator\' or \'User\'.',
|
|
2200
|
+
default: 'User',
|
|
2201
|
+
example: 'User',
|
|
2202
|
+
enum: [
|
|
2203
|
+
'Administrator',
|
|
2204
|
+
'User'
|
|
2205
|
+
]
|
|
999
2206
|
}
|
|
1000
2207
|
},
|
|
1001
2208
|
required: [
|
|
@@ -1216,6 +2423,15 @@ export const MarketplaceListingSchema = {
|
|
|
1216
2423
|
export const OrganizationCreateInputSchema = {
|
|
1217
2424
|
type: 'object',
|
|
1218
2425
|
properties: {
|
|
2426
|
+
type: {
|
|
2427
|
+
type: 'string',
|
|
2428
|
+
description: 'Type of the organization. `business` for legal entities, `personal` for individuals.',
|
|
2429
|
+
example: 'business',
|
|
2430
|
+
enum: [
|
|
2431
|
+
'business',
|
|
2432
|
+
'personal'
|
|
2433
|
+
]
|
|
2434
|
+
},
|
|
1219
2435
|
email: {
|
|
1220
2436
|
type: 'string',
|
|
1221
2437
|
format: 'email',
|
|
@@ -1224,11 +2440,13 @@ export const OrganizationCreateInputSchema = {
|
|
|
1224
2440
|
},
|
|
1225
2441
|
first_name: {
|
|
1226
2442
|
type: 'string',
|
|
2443
|
+
minLength: 1,
|
|
1227
2444
|
description: 'First name of the billing contact person.',
|
|
1228
2445
|
example: 'John'
|
|
1229
2446
|
},
|
|
1230
2447
|
last_name: {
|
|
1231
2448
|
type: 'string',
|
|
2449
|
+
minLength: 1,
|
|
1232
2450
|
description: 'Last name of the billing contact person.',
|
|
1233
2451
|
example: 'Doe'
|
|
1234
2452
|
},
|
|
@@ -1247,6 +2465,7 @@ export const OrganizationCreateInputSchema = {
|
|
|
1247
2465
|
}
|
|
1248
2466
|
},
|
|
1249
2467
|
required: [
|
|
2468
|
+
'type',
|
|
1250
2469
|
'email',
|
|
1251
2470
|
'first_name',
|
|
1252
2471
|
'last_name',
|
|
@@ -1255,6 +2474,20 @@ export const OrganizationCreateInputSchema = {
|
|
|
1255
2474
|
],
|
|
1256
2475
|
additionalProperties: false
|
|
1257
2476
|
};
|
|
2477
|
+
export const OrganizationCreateOutputSchema = {
|
|
2478
|
+
type: 'object',
|
|
2479
|
+
properties: {
|
|
2480
|
+
id: {
|
|
2481
|
+
type: 'string',
|
|
2482
|
+
description: 'Unique identifier of the newly created organization. Generated by the API and safe to use for client-side tracking immediately.',
|
|
2483
|
+
example: 'organization-id'
|
|
2484
|
+
}
|
|
2485
|
+
},
|
|
2486
|
+
required: [
|
|
2487
|
+
'id'
|
|
2488
|
+
],
|
|
2489
|
+
additionalProperties: false
|
|
2490
|
+
};
|
|
1258
2491
|
export const OrganizationSchema = {
|
|
1259
2492
|
type: 'object',
|
|
1260
2493
|
properties: {
|
|
@@ -1271,6 +2504,15 @@ export const OrganizationSchema = {
|
|
|
1271
2504
|
description: 'Name of the legal entity. This name will be used in invoices. Use your first and last name for individual accounts.',
|
|
1272
2505
|
example: 'ACME Corp.'
|
|
1273
2506
|
},
|
|
2507
|
+
type: {
|
|
2508
|
+
type: 'string',
|
|
2509
|
+
description: 'Type of the organization. `business` for legal entities, `personal` for individuals.',
|
|
2510
|
+
example: 'business',
|
|
2511
|
+
enum: [
|
|
2512
|
+
'business',
|
|
2513
|
+
'personal'
|
|
2514
|
+
]
|
|
2515
|
+
},
|
|
1274
2516
|
date_created: {
|
|
1275
2517
|
type: 'string',
|
|
1276
2518
|
format: 'date-time',
|
|
@@ -1321,7 +2563,7 @@ export const OrganizationSchema = {
|
|
|
1321
2563
|
type: 'array',
|
|
1322
2564
|
items: {
|
|
1323
2565
|
type: 'string',
|
|
1324
|
-
example: 'northamerica-central-
|
|
2566
|
+
example: 'northamerica-central-1a'
|
|
1325
2567
|
},
|
|
1326
2568
|
minItems: 1,
|
|
1327
2569
|
description: 'List of Cloudfleet control plane regions available for the organization.'
|
|
@@ -1380,13 +2622,25 @@ export const OrganizationSchema = {
|
|
|
1380
2622
|
'closed',
|
|
1381
2623
|
'suspended'
|
|
1382
2624
|
]
|
|
2625
|
+
},
|
|
2626
|
+
verification: {
|
|
2627
|
+
type: 'string',
|
|
2628
|
+
description: 'Verification status of the organization, which determines the assigned quota. `none` when billing information is incomplete, `submitted` when billing information is complete but the organization is not yet verified, `verified` when the organization is verified.',
|
|
2629
|
+
example: 'verified',
|
|
2630
|
+
enum: [
|
|
2631
|
+
'none',
|
|
2632
|
+
'submitted',
|
|
2633
|
+
'verified'
|
|
2634
|
+
]
|
|
1383
2635
|
}
|
|
1384
2636
|
},
|
|
1385
2637
|
required: [
|
|
1386
2638
|
'id',
|
|
2639
|
+
'type',
|
|
1387
2640
|
'date_created',
|
|
1388
2641
|
'quota',
|
|
1389
|
-
'status'
|
|
2642
|
+
'status',
|
|
2643
|
+
'verification'
|
|
1390
2644
|
],
|
|
1391
2645
|
additionalProperties: false
|
|
1392
2646
|
};
|
|
@@ -1395,28 +2649,23 @@ export const PaymentMethodSchema = {
|
|
|
1395
2649
|
properties: {
|
|
1396
2650
|
id: {
|
|
1397
2651
|
type: 'string',
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
example: 'e94d30ec-a2dd-4dcb-832c-ac2be144ba91'
|
|
1401
|
-
},
|
|
1402
|
-
setup: {
|
|
1403
|
-
type: 'boolean',
|
|
1404
|
-
description: 'Whether organization payment method was set up and ready to use for payments.',
|
|
1405
|
-
example: true
|
|
2652
|
+
description: 'Payment method identifier. Stripe payment method id for cards/SEPA; the constant `bank_transfer` for the invoice/bank-transfer method. Used to set as default or delete the payment method.',
|
|
2653
|
+
example: 'pm_1MtwBwLkdIwHu7ix28a3tqPa'
|
|
1406
2654
|
},
|
|
1407
2655
|
type: {
|
|
1408
2656
|
type: 'string',
|
|
1409
|
-
|
|
1410
|
-
description: 'Payment method type type. Only `card` payments supported at the moment.',
|
|
2657
|
+
description: 'Payment method type. `card`, `sepa_debit` for SEPA Direct Debit (business accounts only), or `bank_transfer` for paying invoices by bank transfer.',
|
|
1411
2658
|
example: 'card',
|
|
1412
2659
|
enum: [
|
|
1413
|
-
'card'
|
|
2660
|
+
'card',
|
|
2661
|
+
'sepa_debit',
|
|
2662
|
+
'bank_transfer'
|
|
1414
2663
|
]
|
|
1415
2664
|
},
|
|
1416
2665
|
last4: {
|
|
1417
2666
|
type: 'string',
|
|
1418
2667
|
nullable: true,
|
|
1419
|
-
description: 'Last 4 digits of the payment card number.',
|
|
2668
|
+
description: 'Last 4 digits of the payment card number, of the bank account (IBAN) for SEPA Direct Debit, or of the destination IBAN for bank transfer.',
|
|
1420
2669
|
example: '4242'
|
|
1421
2670
|
},
|
|
1422
2671
|
exp_month: {
|
|
@@ -1424,42 +2673,56 @@ export const PaymentMethodSchema = {
|
|
|
1424
2673
|
minimum: 1,
|
|
1425
2674
|
maximum: 12,
|
|
1426
2675
|
nullable: true,
|
|
1427
|
-
description: 'Two-digit number representing the card\'s expiration month.',
|
|
1428
|
-
example:
|
|
2676
|
+
description: 'Two-digit number representing the card\'s expiration month. Null for SEPA Direct Debit and bank transfer.',
|
|
2677
|
+
example: 12
|
|
1429
2678
|
},
|
|
1430
2679
|
exp_year: {
|
|
1431
2680
|
type: 'integer',
|
|
1432
|
-
minimum: 2024,
|
|
1433
2681
|
nullable: true,
|
|
1434
|
-
description: 'Four-digit number representing the card\'s expiration year.',
|
|
1435
|
-
example:
|
|
2682
|
+
description: 'Four-digit number representing the card\'s expiration year. May be in the past for an expired card still on file. Null for SEPA Direct Debit and bank transfer.',
|
|
2683
|
+
example: 2028
|
|
1436
2684
|
},
|
|
1437
2685
|
brand: {
|
|
1438
2686
|
type: 'string',
|
|
1439
2687
|
nullable: true,
|
|
1440
|
-
description: 'Payment card brand
|
|
1441
|
-
example: 'visa'
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
2688
|
+
description: 'Payment card brand as reported by Stripe, e.g. `visa`, `mastercard`, `amex`, `cartes_bancaires`, or `unknown`. Null for SEPA Direct Debit and bank transfer.',
|
|
2689
|
+
example: 'visa'
|
|
2690
|
+
},
|
|
2691
|
+
iban: {
|
|
2692
|
+
type: 'string',
|
|
2693
|
+
nullable: true,
|
|
2694
|
+
description: 'Full destination IBAN to send bank transfers to. Set only for `bank_transfer`; null otherwise. This is Cloudfleet\'s virtual receiving account, shown in full so the customer can pay into it.',
|
|
2695
|
+
example: 'DE11243015658023127510'
|
|
2696
|
+
},
|
|
2697
|
+
bic: {
|
|
2698
|
+
type: 'string',
|
|
2699
|
+
nullable: true,
|
|
2700
|
+
description: 'BIC/SWIFT of the destination bank for bank transfers. Set only for `bank_transfer`; null otherwise.',
|
|
2701
|
+
example: 'SOGEDEFFXXX'
|
|
2702
|
+
},
|
|
2703
|
+
account_holder_name: {
|
|
2704
|
+
type: 'string',
|
|
2705
|
+
nullable: true,
|
|
2706
|
+
description: 'Account holder name of the destination bank account for bank transfers. Set only for `bank_transfer`; null otherwise.',
|
|
2707
|
+
example: 'Cloudfleet GmbH'
|
|
2708
|
+
},
|
|
2709
|
+
is_default: {
|
|
2710
|
+
type: 'boolean',
|
|
2711
|
+
description: 'Whether this payment method is the default used for invoices and active subscriptions. Always false for `bank_transfer` (it cannot be a Stripe default payment method).',
|
|
2712
|
+
example: true
|
|
1453
2713
|
}
|
|
1454
2714
|
},
|
|
1455
2715
|
required: [
|
|
1456
2716
|
'id',
|
|
1457
|
-
'setup',
|
|
1458
2717
|
'type',
|
|
1459
2718
|
'last4',
|
|
1460
2719
|
'exp_month',
|
|
1461
2720
|
'exp_year',
|
|
1462
|
-
'brand'
|
|
2721
|
+
'brand',
|
|
2722
|
+
'iban',
|
|
2723
|
+
'bic',
|
|
2724
|
+
'account_holder_name',
|
|
2725
|
+
'is_default'
|
|
1463
2726
|
],
|
|
1464
2727
|
additionalProperties: false
|
|
1465
2728
|
};
|
|
@@ -1507,7 +2770,7 @@ export const PlatformQuotaSchema = {
|
|
|
1507
2770
|
type: 'array',
|
|
1508
2771
|
items: {
|
|
1509
2772
|
type: 'string',
|
|
1510
|
-
example: 'northamerica-central-
|
|
2773
|
+
example: 'northamerica-central-1a'
|
|
1511
2774
|
},
|
|
1512
2775
|
minItems: 1,
|
|
1513
2776
|
description: 'List of Cloudfleet control plane regions available for the organization.'
|
|
@@ -1822,6 +3085,492 @@ export const RegistryTagSchema = {
|
|
|
1822
3085
|
],
|
|
1823
3086
|
additionalProperties: false
|
|
1824
3087
|
};
|
|
3088
|
+
export const TicketAttachmentSchema = {
|
|
3089
|
+
type: 'object',
|
|
3090
|
+
properties: {
|
|
3091
|
+
id: {
|
|
3092
|
+
type: 'string',
|
|
3093
|
+
description: 'Unique identifier of the attachment (Mongo ObjectId).',
|
|
3094
|
+
example: '60c72b2f9f1b2c001f8e4d3c'
|
|
3095
|
+
},
|
|
3096
|
+
filename: {
|
|
3097
|
+
type: 'string',
|
|
3098
|
+
description: 'Original filename as uploaded.',
|
|
3099
|
+
example: 'debug.log'
|
|
3100
|
+
},
|
|
3101
|
+
content_type: {
|
|
3102
|
+
type: 'string',
|
|
3103
|
+
description: 'MIME content type of the attachment.',
|
|
3104
|
+
example: 'text/plain'
|
|
3105
|
+
},
|
|
3106
|
+
size: {
|
|
3107
|
+
type: 'integer',
|
|
3108
|
+
description: 'Size of the attachment in bytes.',
|
|
3109
|
+
example: 12345
|
|
3110
|
+
}
|
|
3111
|
+
},
|
|
3112
|
+
required: [
|
|
3113
|
+
'id',
|
|
3114
|
+
'filename',
|
|
3115
|
+
'content_type',
|
|
3116
|
+
'size'
|
|
3117
|
+
],
|
|
3118
|
+
additionalProperties: false
|
|
3119
|
+
};
|
|
3120
|
+
export const TicketCreateInputSchema = {
|
|
3121
|
+
type: 'object',
|
|
3122
|
+
properties: {
|
|
3123
|
+
category: {
|
|
3124
|
+
type: 'string',
|
|
3125
|
+
description: 'Ticket category. Drives auto-assignment and may carry a subcategory in `properties`.',
|
|
3126
|
+
example: 'technical',
|
|
3127
|
+
enum: [
|
|
3128
|
+
'billing',
|
|
3129
|
+
'technical',
|
|
3130
|
+
'general'
|
|
3131
|
+
]
|
|
3132
|
+
},
|
|
3133
|
+
body: {
|
|
3134
|
+
type: 'string',
|
|
3135
|
+
maxLength: 50000,
|
|
3136
|
+
minLength: 1,
|
|
3137
|
+
pattern: '\\S',
|
|
3138
|
+
description: 'Initial message body in markdown. There is no separate subject — the first message body is the description.',
|
|
3139
|
+
example: 'My cluster cannot reach the registry. Logs attached.'
|
|
3140
|
+
},
|
|
3141
|
+
properties: {
|
|
3142
|
+
type: 'object',
|
|
3143
|
+
additionalProperties: true,
|
|
3144
|
+
description: 'Free-form key/value bag set by the UI (e.g. `subcategory`, `cluster_id`, `cluster_name`, `region`).',
|
|
3145
|
+
example: {
|
|
3146
|
+
subcategory: 'cluster-question',
|
|
3147
|
+
cluster_id: '60c72b2f9f1b2c001f8e4d3a'
|
|
3148
|
+
}
|
|
3149
|
+
}
|
|
3150
|
+
},
|
|
3151
|
+
required: [
|
|
3152
|
+
'category',
|
|
3153
|
+
'body'
|
|
3154
|
+
],
|
|
3155
|
+
additionalProperties: false
|
|
3156
|
+
};
|
|
3157
|
+
export const TicketListResponseSchema = {
|
|
3158
|
+
type: 'object',
|
|
3159
|
+
properties: {
|
|
3160
|
+
items: {
|
|
3161
|
+
type: 'array',
|
|
3162
|
+
items: {
|
|
3163
|
+
type: 'object',
|
|
3164
|
+
properties: {
|
|
3165
|
+
id: {
|
|
3166
|
+
type: 'string',
|
|
3167
|
+
description: 'Unique identifier of the ticket (Mongo ObjectId).',
|
|
3168
|
+
example: '60c72b2f9f1b2c001f8e4d3a'
|
|
3169
|
+
},
|
|
3170
|
+
status: {
|
|
3171
|
+
type: 'string',
|
|
3172
|
+
description: 'Current state of the ticket.',
|
|
3173
|
+
example: 'waiting_on_us',
|
|
3174
|
+
enum: [
|
|
3175
|
+
'waiting_on_us',
|
|
3176
|
+
'waiting_on_user',
|
|
3177
|
+
'closed'
|
|
3178
|
+
]
|
|
3179
|
+
},
|
|
3180
|
+
category: {
|
|
3181
|
+
type: 'string',
|
|
3182
|
+
description: 'Ticket category.',
|
|
3183
|
+
example: 'technical',
|
|
3184
|
+
enum: [
|
|
3185
|
+
'billing',
|
|
3186
|
+
'technical',
|
|
3187
|
+
'general'
|
|
3188
|
+
]
|
|
3189
|
+
},
|
|
3190
|
+
summary: {
|
|
3191
|
+
type: 'string',
|
|
3192
|
+
description: 'First 128 characters of the initial message body, with markdown formatting and newlines stripped. Used for ticket list previews.',
|
|
3193
|
+
example: 'My cluster cannot reach the registry. Logs attached.'
|
|
3194
|
+
},
|
|
3195
|
+
closed_at: {
|
|
3196
|
+
type: 'string',
|
|
3197
|
+
format: 'date-time',
|
|
3198
|
+
nullable: true,
|
|
3199
|
+
description: 'Closure timestamp. Null while the ticket is open.',
|
|
3200
|
+
example: '2026-05-18T16:08:14.338Z'
|
|
3201
|
+
},
|
|
3202
|
+
date_created: {
|
|
3203
|
+
type: 'string',
|
|
3204
|
+
format: 'date-time',
|
|
3205
|
+
description: 'Creation date of the ticket. ISO 8601 UTC.',
|
|
3206
|
+
example: '2026-05-11T16:08:14.338Z'
|
|
3207
|
+
},
|
|
3208
|
+
date_updated: {
|
|
3209
|
+
type: 'string',
|
|
3210
|
+
format: 'date-time',
|
|
3211
|
+
description: 'Last update date of the ticket. ISO 8601 UTC.',
|
|
3212
|
+
example: '2026-05-11T16:08:14.338Z'
|
|
3213
|
+
},
|
|
3214
|
+
messages: {
|
|
3215
|
+
type: 'array',
|
|
3216
|
+
items: {
|
|
3217
|
+
type: 'object',
|
|
3218
|
+
properties: {
|
|
3219
|
+
id: {
|
|
3220
|
+
type: 'string',
|
|
3221
|
+
description: 'Unique identifier of the message (Mongo ObjectId).',
|
|
3222
|
+
example: '60c72b2f9f1b2c001f8e4d3b'
|
|
3223
|
+
},
|
|
3224
|
+
type: {
|
|
3225
|
+
type: 'string',
|
|
3226
|
+
description: 'Message type. Internal notes are filtered out of customer-facing responses.',
|
|
3227
|
+
example: 'customer_reply',
|
|
3228
|
+
enum: [
|
|
3229
|
+
'customer_reply',
|
|
3230
|
+
'agent_reply'
|
|
3231
|
+
]
|
|
3232
|
+
},
|
|
3233
|
+
body: {
|
|
3234
|
+
type: 'string',
|
|
3235
|
+
description: 'Message body in markdown.',
|
|
3236
|
+
example: 'Thanks — that resolved it on my side.'
|
|
3237
|
+
},
|
|
3238
|
+
author_first_name: {
|
|
3239
|
+
type: 'string',
|
|
3240
|
+
nullable: true,
|
|
3241
|
+
description: 'First name of the author. Null when not provided.',
|
|
3242
|
+
example: 'Jane'
|
|
3243
|
+
},
|
|
3244
|
+
author_last_name: {
|
|
3245
|
+
type: 'string',
|
|
3246
|
+
nullable: true,
|
|
3247
|
+
description: 'Last name of the author. Null when not provided.',
|
|
3248
|
+
example: 'Doe'
|
|
3249
|
+
},
|
|
3250
|
+
attachments: {
|
|
3251
|
+
type: 'array',
|
|
3252
|
+
items: {
|
|
3253
|
+
type: 'object',
|
|
3254
|
+
properties: {
|
|
3255
|
+
id: {
|
|
3256
|
+
type: 'string',
|
|
3257
|
+
description: 'Unique identifier of the attachment (Mongo ObjectId).',
|
|
3258
|
+
example: '60c72b2f9f1b2c001f8e4d3c'
|
|
3259
|
+
},
|
|
3260
|
+
filename: {
|
|
3261
|
+
type: 'string',
|
|
3262
|
+
description: 'Original filename as uploaded.',
|
|
3263
|
+
example: 'debug.log'
|
|
3264
|
+
},
|
|
3265
|
+
content_type: {
|
|
3266
|
+
type: 'string',
|
|
3267
|
+
description: 'MIME content type of the attachment.',
|
|
3268
|
+
example: 'text/plain'
|
|
3269
|
+
},
|
|
3270
|
+
size: {
|
|
3271
|
+
type: 'integer',
|
|
3272
|
+
description: 'Size of the attachment in bytes.',
|
|
3273
|
+
example: 12345
|
|
3274
|
+
}
|
|
3275
|
+
},
|
|
3276
|
+
required: [
|
|
3277
|
+
'id',
|
|
3278
|
+
'filename',
|
|
3279
|
+
'content_type',
|
|
3280
|
+
'size'
|
|
3281
|
+
],
|
|
3282
|
+
additionalProperties: false
|
|
3283
|
+
},
|
|
3284
|
+
description: 'Attachments associated with this message.',
|
|
3285
|
+
example: []
|
|
3286
|
+
},
|
|
3287
|
+
date_created: {
|
|
3288
|
+
type: 'string',
|
|
3289
|
+
format: 'date-time',
|
|
3290
|
+
description: 'Creation date of the message. ISO 8601 UTC.',
|
|
3291
|
+
example: '2026-05-11T16:08:14.338Z'
|
|
3292
|
+
}
|
|
3293
|
+
},
|
|
3294
|
+
required: [
|
|
3295
|
+
'id',
|
|
3296
|
+
'type',
|
|
3297
|
+
'body',
|
|
3298
|
+
'date_created'
|
|
3299
|
+
],
|
|
3300
|
+
additionalProperties: false
|
|
3301
|
+
},
|
|
3302
|
+
description: 'Messages on the ticket in chronological order. Internal notes are excluded. Returned by the detail endpoint only.'
|
|
3303
|
+
}
|
|
3304
|
+
},
|
|
3305
|
+
required: [
|
|
3306
|
+
'id',
|
|
3307
|
+
'status',
|
|
3308
|
+
'category',
|
|
3309
|
+
'summary',
|
|
3310
|
+
'date_created',
|
|
3311
|
+
'date_updated'
|
|
3312
|
+
],
|
|
3313
|
+
additionalProperties: false
|
|
3314
|
+
},
|
|
3315
|
+
description: 'Tickets for the organization, ordered newest first. Messages are omitted from list responses.'
|
|
3316
|
+
}
|
|
3317
|
+
},
|
|
3318
|
+
required: [
|
|
3319
|
+
'items'
|
|
3320
|
+
],
|
|
3321
|
+
additionalProperties: false
|
|
3322
|
+
};
|
|
3323
|
+
export const TicketMessageInputSchema = {
|
|
3324
|
+
type: 'object',
|
|
3325
|
+
properties: {
|
|
3326
|
+
body: {
|
|
3327
|
+
type: 'string',
|
|
3328
|
+
maxLength: 50000,
|
|
3329
|
+
minLength: 1,
|
|
3330
|
+
pattern: '\\S',
|
|
3331
|
+
description: 'Reply body in markdown.',
|
|
3332
|
+
example: 'Thanks — that resolved it on my side.'
|
|
3333
|
+
}
|
|
3334
|
+
},
|
|
3335
|
+
required: [
|
|
3336
|
+
'body'
|
|
3337
|
+
],
|
|
3338
|
+
additionalProperties: false
|
|
3339
|
+
};
|
|
3340
|
+
export const TicketMessageSchema = {
|
|
3341
|
+
type: 'object',
|
|
3342
|
+
properties: {
|
|
3343
|
+
id: {
|
|
3344
|
+
type: 'string',
|
|
3345
|
+
description: 'Unique identifier of the message (Mongo ObjectId).',
|
|
3346
|
+
example: '60c72b2f9f1b2c001f8e4d3b'
|
|
3347
|
+
},
|
|
3348
|
+
type: {
|
|
3349
|
+
type: 'string',
|
|
3350
|
+
description: 'Message type. Internal notes are filtered out of customer-facing responses.',
|
|
3351
|
+
example: 'customer_reply',
|
|
3352
|
+
enum: [
|
|
3353
|
+
'customer_reply',
|
|
3354
|
+
'agent_reply'
|
|
3355
|
+
]
|
|
3356
|
+
},
|
|
3357
|
+
body: {
|
|
3358
|
+
type: 'string',
|
|
3359
|
+
description: 'Message body in markdown.',
|
|
3360
|
+
example: 'Thanks — that resolved it on my side.'
|
|
3361
|
+
},
|
|
3362
|
+
author_first_name: {
|
|
3363
|
+
type: 'string',
|
|
3364
|
+
description: 'First name of the author. Null when not provided.',
|
|
3365
|
+
example: 'Jane'
|
|
3366
|
+
},
|
|
3367
|
+
author_last_name: {
|
|
3368
|
+
type: 'string',
|
|
3369
|
+
description: 'Last name of the author. Null when not provided.',
|
|
3370
|
+
example: 'Doe'
|
|
3371
|
+
},
|
|
3372
|
+
attachments: {
|
|
3373
|
+
type: 'array',
|
|
3374
|
+
items: {
|
|
3375
|
+
type: 'object',
|
|
3376
|
+
properties: {
|
|
3377
|
+
id: {
|
|
3378
|
+
type: 'string',
|
|
3379
|
+
description: 'Unique identifier of the attachment (Mongo ObjectId).',
|
|
3380
|
+
example: '60c72b2f9f1b2c001f8e4d3c'
|
|
3381
|
+
},
|
|
3382
|
+
filename: {
|
|
3383
|
+
type: 'string',
|
|
3384
|
+
description: 'Original filename as uploaded.',
|
|
3385
|
+
example: 'debug.log'
|
|
3386
|
+
},
|
|
3387
|
+
content_type: {
|
|
3388
|
+
type: 'string',
|
|
3389
|
+
description: 'MIME content type of the attachment.',
|
|
3390
|
+
example: 'text/plain'
|
|
3391
|
+
},
|
|
3392
|
+
size: {
|
|
3393
|
+
type: 'integer',
|
|
3394
|
+
description: 'Size of the attachment in bytes.',
|
|
3395
|
+
example: 12345
|
|
3396
|
+
}
|
|
3397
|
+
},
|
|
3398
|
+
required: [
|
|
3399
|
+
'id',
|
|
3400
|
+
'filename',
|
|
3401
|
+
'content_type',
|
|
3402
|
+
'size'
|
|
3403
|
+
],
|
|
3404
|
+
additionalProperties: false
|
|
3405
|
+
},
|
|
3406
|
+
description: 'Attachments associated with this message.',
|
|
3407
|
+
example: []
|
|
3408
|
+
},
|
|
3409
|
+
date_created: {
|
|
3410
|
+
type: 'string',
|
|
3411
|
+
format: 'date-time',
|
|
3412
|
+
description: 'Creation date of the message. ISO 8601 UTC.',
|
|
3413
|
+
example: '2026-05-11T16:08:14.338Z'
|
|
3414
|
+
}
|
|
3415
|
+
},
|
|
3416
|
+
required: [
|
|
3417
|
+
'id',
|
|
3418
|
+
'type',
|
|
3419
|
+
'body',
|
|
3420
|
+
'date_created'
|
|
3421
|
+
],
|
|
3422
|
+
additionalProperties: false
|
|
3423
|
+
};
|
|
3424
|
+
export const TicketSchema = {
|
|
3425
|
+
type: 'object',
|
|
3426
|
+
properties: {
|
|
3427
|
+
id: {
|
|
3428
|
+
type: 'string',
|
|
3429
|
+
description: 'Unique identifier of the ticket (Mongo ObjectId).',
|
|
3430
|
+
example: '60c72b2f9f1b2c001f8e4d3a'
|
|
3431
|
+
},
|
|
3432
|
+
status: {
|
|
3433
|
+
type: 'string',
|
|
3434
|
+
description: 'Current state of the ticket.',
|
|
3435
|
+
example: 'waiting_on_us',
|
|
3436
|
+
enum: [
|
|
3437
|
+
'waiting_on_us',
|
|
3438
|
+
'waiting_on_user',
|
|
3439
|
+
'closed'
|
|
3440
|
+
]
|
|
3441
|
+
},
|
|
3442
|
+
category: {
|
|
3443
|
+
type: 'string',
|
|
3444
|
+
description: 'Ticket category.',
|
|
3445
|
+
example: 'technical',
|
|
3446
|
+
enum: [
|
|
3447
|
+
'billing',
|
|
3448
|
+
'technical',
|
|
3449
|
+
'general'
|
|
3450
|
+
]
|
|
3451
|
+
},
|
|
3452
|
+
summary: {
|
|
3453
|
+
type: 'string',
|
|
3454
|
+
description: 'First 128 characters of the initial message body, with markdown formatting and newlines stripped. Used for ticket list previews.',
|
|
3455
|
+
example: 'My cluster cannot reach the registry. Logs attached.'
|
|
3456
|
+
},
|
|
3457
|
+
closed_at: {
|
|
3458
|
+
type: 'string',
|
|
3459
|
+
format: 'date-time',
|
|
3460
|
+
description: 'Closure timestamp. Null while the ticket is open.',
|
|
3461
|
+
example: '2026-05-18T16:08:14.338Z'
|
|
3462
|
+
},
|
|
3463
|
+
date_created: {
|
|
3464
|
+
type: 'string',
|
|
3465
|
+
format: 'date-time',
|
|
3466
|
+
description: 'Creation date of the ticket. ISO 8601 UTC.',
|
|
3467
|
+
example: '2026-05-11T16:08:14.338Z'
|
|
3468
|
+
},
|
|
3469
|
+
date_updated: {
|
|
3470
|
+
type: 'string',
|
|
3471
|
+
format: 'date-time',
|
|
3472
|
+
description: 'Last update date of the ticket. ISO 8601 UTC.',
|
|
3473
|
+
example: '2026-05-11T16:08:14.338Z'
|
|
3474
|
+
},
|
|
3475
|
+
messages: {
|
|
3476
|
+
type: 'array',
|
|
3477
|
+
items: {
|
|
3478
|
+
type: 'object',
|
|
3479
|
+
properties: {
|
|
3480
|
+
id: {
|
|
3481
|
+
type: 'string',
|
|
3482
|
+
description: 'Unique identifier of the message (Mongo ObjectId).',
|
|
3483
|
+
example: '60c72b2f9f1b2c001f8e4d3b'
|
|
3484
|
+
},
|
|
3485
|
+
type: {
|
|
3486
|
+
type: 'string',
|
|
3487
|
+
description: 'Message type. Internal notes are filtered out of customer-facing responses.',
|
|
3488
|
+
example: 'customer_reply',
|
|
3489
|
+
enum: [
|
|
3490
|
+
'customer_reply',
|
|
3491
|
+
'agent_reply'
|
|
3492
|
+
]
|
|
3493
|
+
},
|
|
3494
|
+
body: {
|
|
3495
|
+
type: 'string',
|
|
3496
|
+
description: 'Message body in markdown.',
|
|
3497
|
+
example: 'Thanks — that resolved it on my side.'
|
|
3498
|
+
},
|
|
3499
|
+
author_first_name: {
|
|
3500
|
+
type: 'string',
|
|
3501
|
+
description: 'First name of the author. Null when not provided.',
|
|
3502
|
+
example: 'Jane'
|
|
3503
|
+
},
|
|
3504
|
+
author_last_name: {
|
|
3505
|
+
type: 'string',
|
|
3506
|
+
description: 'Last name of the author. Null when not provided.',
|
|
3507
|
+
example: 'Doe'
|
|
3508
|
+
},
|
|
3509
|
+
attachments: {
|
|
3510
|
+
type: 'array',
|
|
3511
|
+
items: {
|
|
3512
|
+
type: 'object',
|
|
3513
|
+
properties: {
|
|
3514
|
+
id: {
|
|
3515
|
+
type: 'string',
|
|
3516
|
+
description: 'Unique identifier of the attachment (Mongo ObjectId).',
|
|
3517
|
+
example: '60c72b2f9f1b2c001f8e4d3c'
|
|
3518
|
+
},
|
|
3519
|
+
filename: {
|
|
3520
|
+
type: 'string',
|
|
3521
|
+
description: 'Original filename as uploaded.',
|
|
3522
|
+
example: 'debug.log'
|
|
3523
|
+
},
|
|
3524
|
+
content_type: {
|
|
3525
|
+
type: 'string',
|
|
3526
|
+
description: 'MIME content type of the attachment.',
|
|
3527
|
+
example: 'text/plain'
|
|
3528
|
+
},
|
|
3529
|
+
size: {
|
|
3530
|
+
type: 'integer',
|
|
3531
|
+
description: 'Size of the attachment in bytes.',
|
|
3532
|
+
example: 12345
|
|
3533
|
+
}
|
|
3534
|
+
},
|
|
3535
|
+
required: [
|
|
3536
|
+
'id',
|
|
3537
|
+
'filename',
|
|
3538
|
+
'content_type',
|
|
3539
|
+
'size'
|
|
3540
|
+
],
|
|
3541
|
+
additionalProperties: false
|
|
3542
|
+
},
|
|
3543
|
+
description: 'Attachments associated with this message.',
|
|
3544
|
+
example: []
|
|
3545
|
+
},
|
|
3546
|
+
date_created: {
|
|
3547
|
+
type: 'string',
|
|
3548
|
+
format: 'date-time',
|
|
3549
|
+
description: 'Creation date of the message. ISO 8601 UTC.',
|
|
3550
|
+
example: '2026-05-11T16:08:14.338Z'
|
|
3551
|
+
}
|
|
3552
|
+
},
|
|
3553
|
+
required: [
|
|
3554
|
+
'id',
|
|
3555
|
+
'type',
|
|
3556
|
+
'body',
|
|
3557
|
+
'date_created'
|
|
3558
|
+
],
|
|
3559
|
+
additionalProperties: false
|
|
3560
|
+
},
|
|
3561
|
+
description: 'Messages on the ticket in chronological order. Internal notes are excluded. Returned by the detail endpoint only.'
|
|
3562
|
+
}
|
|
3563
|
+
},
|
|
3564
|
+
required: [
|
|
3565
|
+
'id',
|
|
3566
|
+
'status',
|
|
3567
|
+
'category',
|
|
3568
|
+
'summary',
|
|
3569
|
+
'date_created',
|
|
3570
|
+
'date_updated'
|
|
3571
|
+
],
|
|
3572
|
+
additionalProperties: false
|
|
3573
|
+
};
|
|
1825
3574
|
export const TokenCreateInputSchema = {
|
|
1826
3575
|
type: 'object',
|
|
1827
3576
|
properties: {
|
|
@@ -2110,24 +3859,6 @@ export const UserCreateInputSchema = {
|
|
|
2110
3859
|
type: 'string',
|
|
2111
3860
|
minLength: 8,
|
|
2112
3861
|
description: 'User password. Must be at least 8 characters long.'
|
|
2113
|
-
},
|
|
2114
|
-
status: {
|
|
2115
|
-
type: 'string',
|
|
2116
|
-
description: 'Status of the user. Can be `active` or `inactive`. Inactive users cannot log in or manage organization resources.',
|
|
2117
|
-
example: 'active',
|
|
2118
|
-
enum: [
|
|
2119
|
-
'active',
|
|
2120
|
-
'inactive'
|
|
2121
|
-
]
|
|
2122
|
-
},
|
|
2123
|
-
role: {
|
|
2124
|
-
type: 'string',
|
|
2125
|
-
description: 'User role. Can be \'Administrator\', \'User\'.',
|
|
2126
|
-
example: 'User',
|
|
2127
|
-
enum: [
|
|
2128
|
-
'Administrator',
|
|
2129
|
-
'User'
|
|
2130
|
-
]
|
|
2131
3862
|
}
|
|
2132
3863
|
},
|
|
2133
3864
|
required: [
|