@cloudfleet/sdk 0.0.1-8857c7b → 0.0.1-88d52bb

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.
@@ -1,7 +1,65 @@
1
1
  // This file is auto-generated by @hey-api/openapi-ts
2
+ export const BasicPriceConsentInputSchema = {
3
+ type: 'object',
4
+ properties: {
5
+ decision: {
6
+ type: 'string',
7
+ description: 'The administrator\'s decision on the new Basic price. `accepted` continues to paid billing when the signup credit runs out; `rejected` opts out (clusters are suspended, never charged). A `rejected` org can later be flipped back to `accepted`.',
8
+ example: 'accepted',
9
+ enum: [
10
+ 'accepted',
11
+ 'rejected'
12
+ ]
13
+ }
14
+ },
15
+ required: [
16
+ 'decision'
17
+ ],
18
+ additionalProperties: false
19
+ };
20
+ export const BasicPriceConsentSchema = {
21
+ type: 'object',
22
+ properties: {
23
+ status: {
24
+ type: 'string',
25
+ description: 'Consent status for the new Basic price. `not_applicable` when the organization is not in scope for the migration. `pending` when the organization must opt in but no admin has decided yet. `accepted` / `rejected` reflect the recorded decision.',
26
+ example: 'pending',
27
+ enum: [
28
+ 'not_applicable',
29
+ 'pending',
30
+ 'accepted',
31
+ 'rejected'
32
+ ]
33
+ },
34
+ decided_at: {
35
+ type: 'string',
36
+ format: 'date-time',
37
+ description: 'When the current decision was recorded. Absent while `not_applicable` or `pending`.',
38
+ example: '2026-09-05T10:12:00.000Z'
39
+ },
40
+ decided_by: {
41
+ type: 'string',
42
+ description: 'User id of the administrator who recorded the current decision. Absent while `not_applicable` or `pending`.',
43
+ example: '2b7a5c9e-1f4d-4a1b-9c3e-8d2f6a0b1c2d'
44
+ }
45
+ },
46
+ required: [
47
+ 'status'
48
+ ],
49
+ additionalProperties: false
50
+ };
2
51
  export const BillingContactSchema = {
3
52
  type: 'object',
4
53
  properties: {
54
+ type: {
55
+ type: 'string',
56
+ description: 'Type of the organization. `business` for legal entities, `personal` for individuals.',
57
+ example: 'business',
58
+ enum: [
59
+ 'business',
60
+ 'personal'
61
+ ]
62
+ },
5
63
  company: {
6
64
  type: 'string',
7
65
  maxLength: 120,
@@ -207,6 +265,7 @@ export const BillingContactSchema = {
207
265
  }
208
266
  },
209
267
  required: [
268
+ 'type',
210
269
  'email',
211
270
  'individual_name'
212
271
  ],
@@ -358,24 +417,8 @@ export const ChartSchema = {
358
417
  },
359
418
  status: {
360
419
  type: 'string',
361
- description: 'Status of the chart deployment.',
362
- example: 'active',
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
- ]
420
+ description: 'Status of the chart deployment (Flux HelmRelease Ready condition reason, e.g. InstallSucceeded, UpgradeFailed, Progressing).',
421
+ example: 'InstallSucceeded'
379
422
  },
380
423
  version_current: {
381
424
  type: 'string',
@@ -446,22 +489,12 @@ export const ClusterCreateInputSchema = {
446
489
  tier: {
447
490
  type: 'string',
448
491
  description: 'Tier of the cluster.',
492
+ default: 'basic',
449
493
  example: 'pro',
450
494
  enum: [
451
495
  'basic',
452
- 'pro'
453
- ]
454
- },
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'
496
+ 'pro',
497
+ 'enterprise'
465
498
  ]
466
499
  },
467
500
  version_channel: {
@@ -469,20 +502,105 @@ export const ClusterCreateInputSchema = {
469
502
  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
503
  description: 'Version of the kubernetes cluster.',
471
504
  default: '1.x.x-cfke.x',
472
- example: '1.x.x-cfke.x',
505
+ example: '1.x.x-cfke.x'
506
+ },
507
+ release_channel: {
508
+ type: 'string',
509
+ description: 'Release channel for the cluster\'s control plane.',
510
+ default: 'rapid',
511
+ example: 'rapid',
473
512
  enum: [
474
- '1.x.x-cfke.x',
475
- '1.31.x-cfke.x',
476
- '1.32.x-cfke.x',
477
- '1.33.x-cfke.x'
513
+ 'rapid',
514
+ 'stable',
515
+ 'extended'
478
516
  ]
517
+ },
518
+ features: {
519
+ type: 'object',
520
+ properties: {
521
+ gpu_sharing_strategy: {
522
+ type: 'string',
523
+ description: 'GPU sharing strategy.',
524
+ default: 'none',
525
+ example: 'none',
526
+ enum: [
527
+ 'none',
528
+ 'mps',
529
+ 'time_slicing'
530
+ ]
531
+ },
532
+ gpu_max_shared_clients_per_gpu: {
533
+ type: 'integer',
534
+ minimum: 2,
535
+ maximum: 48,
536
+ description: 'Maximum number of pods that may share a single GPU.',
537
+ default: 4,
538
+ example: 10
539
+ },
540
+ cilium_socket_lb_host_namespace_only: {
541
+ type: 'boolean',
542
+ description: 'Restrict Cilium socket load-balancing to the host namespace. Required for the Tailscale operator and Istio.',
543
+ example: false
544
+ }
545
+ },
546
+ additionalProperties: false,
547
+ description: 'Cluster feature toggles.',
548
+ default: {
549
+ gpu_sharing_strategy: 'none',
550
+ gpu_max_shared_clients_per_gpu: 4,
551
+ cilium_socket_lb_host_namespace_only: false
552
+ }
553
+ },
554
+ region: {
555
+ type: 'string',
556
+ description: 'Cloudfleet control plane region. This field can not be updated after creation.',
557
+ example: 'europe-central-1a'
558
+ },
559
+ networking: {
560
+ type: 'object',
561
+ properties: {
562
+ pod_cidr: {
563
+ type: 'string',
564
+ description: 'CIDR block for pod IPs.',
565
+ default: '10.244.0.0/16'
566
+ },
567
+ service_cidr: {
568
+ type: 'string',
569
+ description: 'CIDR block for service IPs.',
570
+ default: '10.96.0.0/12'
571
+ },
572
+ dual_stack: {
573
+ type: 'boolean',
574
+ description: 'Enable IPv4+IPv6 dual-stack networking.'
575
+ },
576
+ pod_cidr_v6: {
577
+ type: 'string',
578
+ description: 'IPv6 pod CIDR. Requires dual_stack.',
579
+ default: '2001:db8:1:2::/48'
580
+ },
581
+ service_cidr_v6: {
582
+ type: 'string',
583
+ description: 'IPv6 service CIDR. Requires dual_stack.',
584
+ default: '2001:db8:1:1::/112'
585
+ }
586
+ },
587
+ additionalProperties: false,
588
+ description: 'Cluster networking configuration. Immutable after creation.',
589
+ default: {
590
+ pod_cidr: '10.244.0.0/16',
591
+ service_cidr: '10.96.0.0/12',
592
+ dual_stack: false,
593
+ pod_cidr_v6: '2001:db8:1:2::/48',
594
+ service_cidr_v6: '2001:db8:1:1::/112'
595
+ }
479
596
  }
480
597
  },
481
598
  required: [
482
599
  'name',
483
- 'tier'
600
+ 'region'
484
601
  ],
485
- additionalProperties: false
602
+ additionalProperties: false,
603
+ description: 'Mutable cluster configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
486
604
  };
487
605
  export const ClusterJoinInformationSchema = {
488
606
  type: 'object',
@@ -503,11 +621,21 @@ export const ClusterJoinInformationSchema = {
503
621
  description: 'Cluster DNS IP address. This is the IP address of the kube-dns service in the cluster.',
504
622
  example: '10.96.0.10'
505
623
  },
624
+ pod_cidr: {
625
+ type: 'string',
626
+ description: 'Pod CIDR for the cluster. Used to configure iptables rules on nodes to prevent Tailscale routing loops.',
627
+ example: '10.244.0.0/16'
628
+ },
506
629
  auth_key: {
507
630
  type: 'string',
508
631
  description: 'Authentication key for the cluster.',
509
632
  example: 'tskey-auth-kBV8wr1dk911CNTRL-...'
510
633
  },
634
+ login_server: {
635
+ type: 'string',
636
+ description: 'Coordination server the node registers against. Empty on data plane v1 clusters, where the node advertises its own tag instead. A non-empty value requires a client that declares the dataplane-v2 capability.',
637
+ example: 'https://415026b6-f00f-44f8-968d-fc6ef4d0fc6d.fabric.europe-central-1a.cfke.io'
638
+ },
511
639
  bootstrap_token: {
512
640
  type: 'string',
513
641
  description: 'Bootstrap token for the cluster.',
@@ -578,7 +706,9 @@ export const ClusterJoinInformationSchema = {
578
706
  'certificate_authority',
579
707
  'endpoint',
580
708
  'cluster_dns',
709
+ 'pod_cidr',
581
710
  'auth_key',
711
+ 'login_server',
582
712
  'bootstrap_token',
583
713
  'versions',
584
714
  'third_party_api_access_config'
@@ -599,24 +729,123 @@ export const ClusterSchema = {
599
729
  tier: {
600
730
  type: 'string',
601
731
  description: 'Tier of the cluster.',
732
+ default: 'basic',
602
733
  example: 'pro',
603
734
  enum: [
604
735
  'basic',
605
- 'pro'
736
+ 'pro',
737
+ 'enterprise'
606
738
  ]
607
739
  },
608
- region: {
740
+ version_channel: {
741
+ type: 'string',
742
+ 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-]+)*))?$',
743
+ description: 'Version of the kubernetes cluster.',
744
+ default: '1.x.x-cfke.x',
745
+ example: '1.x.x-cfke.x'
746
+ },
747
+ release_channel: {
609
748
  type: 'string',
610
- 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.',
611
- default: 'staging-1a',
612
- example: 'northamerica-central-1a',
749
+ description: 'Release channel for the cluster\'s control plane.',
750
+ default: 'rapid',
751
+ example: 'rapid',
613
752
  enum: [
614
- 'staging-1a',
615
- 'northamerica-central-1',
616
- 'europe-central-1a',
617
- 'northamerica-central-1a'
753
+ 'rapid',
754
+ 'stable',
755
+ 'extended'
618
756
  ]
619
757
  },
758
+ features: {
759
+ type: 'object',
760
+ properties: {
761
+ gpu_sharing_strategy: {
762
+ type: 'string',
763
+ description: 'GPU sharing strategy.',
764
+ default: 'none',
765
+ example: 'none',
766
+ enum: [
767
+ 'none',
768
+ 'mps',
769
+ 'time_slicing'
770
+ ]
771
+ },
772
+ gpu_max_shared_clients_per_gpu: {
773
+ type: 'integer',
774
+ minimum: 2,
775
+ maximum: 48,
776
+ description: 'Maximum number of pods that may share a single GPU.',
777
+ default: 4,
778
+ example: 10
779
+ },
780
+ cilium_socket_lb_host_namespace_only: {
781
+ type: 'boolean',
782
+ description: 'Restrict Cilium socket load-balancing to the host namespace. Required for the Tailscale operator and Istio.',
783
+ example: false
784
+ }
785
+ },
786
+ required: [
787
+ 'gpu_sharing_strategy',
788
+ 'gpu_max_shared_clients_per_gpu',
789
+ 'cilium_socket_lb_host_namespace_only'
790
+ ],
791
+ additionalProperties: false,
792
+ description: 'Cluster feature toggles.',
793
+ default: {
794
+ gpu_sharing_strategy: 'none',
795
+ gpu_max_shared_clients_per_gpu: 4,
796
+ cilium_socket_lb_host_namespace_only: false
797
+ }
798
+ },
799
+ region: {
800
+ type: 'string',
801
+ description: 'Cloudfleet control plane region. This field can not be updated after creation.',
802
+ example: 'europe-central-1a'
803
+ },
804
+ networking: {
805
+ type: 'object',
806
+ properties: {
807
+ pod_cidr: {
808
+ type: 'string',
809
+ description: 'CIDR block for pod IPs.',
810
+ default: '10.244.0.0/16'
811
+ },
812
+ service_cidr: {
813
+ type: 'string',
814
+ description: 'CIDR block for service IPs.',
815
+ default: '10.96.0.0/12'
816
+ },
817
+ dual_stack: {
818
+ type: 'boolean',
819
+ description: 'Enable IPv4+IPv6 dual-stack networking.'
820
+ },
821
+ pod_cidr_v6: {
822
+ type: 'string',
823
+ description: 'IPv6 pod CIDR. Requires dual_stack.',
824
+ default: '2001:db8:1:2::/48'
825
+ },
826
+ service_cidr_v6: {
827
+ type: 'string',
828
+ description: 'IPv6 service CIDR. Requires dual_stack.',
829
+ default: '2001:db8:1:1::/112'
830
+ }
831
+ },
832
+ required: [
833
+ 'pod_cidr',
834
+ 'service_cidr',
835
+ 'dual_stack',
836
+ 'pod_cidr_v6',
837
+ 'service_cidr_v6'
838
+ ],
839
+ additionalProperties: false,
840
+ description: 'Cluster networking configuration. Immutable after creation.',
841
+ default: {
842
+ pod_cidr: '10.244.0.0/16',
843
+ service_cidr: '10.96.0.0/12',
844
+ dual_stack: false,
845
+ pod_cidr_v6: '2001:db8:1:2::/48',
846
+ service_cidr_v6: '2001:db8:1:1::/112'
847
+ }
848
+ },
620
849
  id: {
621
850
  type: 'string',
622
851
  format: 'uuid',
@@ -625,16 +854,13 @@ export const ClusterSchema = {
625
854
  },
626
855
  status: {
627
856
  type: 'string',
628
- description: 'Status of the cluster. When creating a new cluster, set to `active`. When deleting a clusters, set to `deleted`.',
629
- example: 'active',
857
+ description: 'Status of the cluster.',
858
+ example: 'deployed',
630
859
  enum: [
631
- 'active',
632
- 'disabled',
633
- 'deleted',
634
860
  'creating',
635
861
  'deployed',
636
- 'failed',
637
- 'updating'
862
+ 'updating',
863
+ 'disabled'
638
864
  ]
639
865
  },
640
866
  endpoint: {
@@ -642,8 +868,8 @@ export const ClusterSchema = {
642
868
  {
643
869
  type: 'string',
644
870
  format: 'uri',
645
- description: 'URL signed by the private CA of the Kubernetes cluster control plane. This is the endpoint that kubectl uses to connect to the cluster. (Deprecated, use endpoint_public instead)',
646
- example: 'https://2ae6557c-c61f-49c6-b4c1-a65473470a03.staging.cfke.cloudfleet.dev:6443'
871
+ 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.',
872
+ example: 'https://2ae6557c-c61f-49c6-b4c1-a65473470a03.staging.cfke.io'
647
873
  },
648
874
  {
649
875
  type: 'string',
@@ -658,7 +884,7 @@ export const ClusterSchema = {
658
884
  {
659
885
  type: 'string',
660
886
  format: 'uri',
661
- 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.',
887
+ description: 'Deprecated alias of `endpoint`; retained for backward compatibility.',
662
888
  example: 'https://2ae6557c-c61f-49c6-b4c1-a65473470a03.staging.cfke.io'
663
889
  },
664
890
  {
@@ -693,21 +919,22 @@ export const ClusterSchema = {
693
919
  type: 'boolean',
694
920
  description: 'Indicates if the cluster is ready to be used.',
695
921
  example: true
696
- },
697
- version_channel: {
698
- type: 'string',
699
- 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-]+)*))?$',
700
- description: 'Version of the kubernetes cluster.',
701
- example: '1.x.x-cfke.x'
702
922
  }
703
923
  },
704
924
  required: [
705
925
  'name',
706
926
  'tier',
927
+ 'version_channel',
928
+ 'release_channel',
929
+ 'features',
930
+ 'region',
931
+ 'networking',
707
932
  'id',
708
- 'status'
933
+ 'status',
934
+ 'ready'
709
935
  ],
710
- additionalProperties: false
936
+ additionalProperties: false,
937
+ description: 'Mutable cluster configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
711
938
  };
712
939
  export const ClusterUpdateInputSchema = {
713
940
  type: 'object',
@@ -723,23 +950,74 @@ export const ClusterUpdateInputSchema = {
723
950
  tier: {
724
951
  type: 'string',
725
952
  description: 'Tier of the cluster.',
953
+ default: 'basic',
726
954
  example: 'pro',
727
955
  enum: [
728
956
  'basic',
729
- 'pro'
957
+ 'pro',
958
+ 'enterprise'
730
959
  ]
731
960
  },
732
961
  version_channel: {
733
962
  type: 'string',
734
963
  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-]+)*))?$',
735
964
  description: 'Version of the kubernetes cluster.',
965
+ default: '1.x.x-cfke.x',
736
966
  example: '1.x.x-cfke.x'
967
+ },
968
+ release_channel: {
969
+ type: 'string',
970
+ description: 'Release channel for the cluster\'s control plane.',
971
+ default: 'rapid',
972
+ example: 'rapid',
973
+ enum: [
974
+ 'rapid',
975
+ 'stable',
976
+ 'extended'
977
+ ]
978
+ },
979
+ features: {
980
+ type: 'object',
981
+ properties: {
982
+ gpu_sharing_strategy: {
983
+ type: 'string',
984
+ description: 'GPU sharing strategy.',
985
+ default: 'none',
986
+ example: 'none',
987
+ enum: [
988
+ 'none',
989
+ 'mps',
990
+ 'time_slicing'
991
+ ]
992
+ },
993
+ gpu_max_shared_clients_per_gpu: {
994
+ type: 'integer',
995
+ minimum: 2,
996
+ maximum: 48,
997
+ description: 'Maximum number of pods that may share a single GPU.',
998
+ default: 4,
999
+ example: 10
1000
+ },
1001
+ cilium_socket_lb_host_namespace_only: {
1002
+ type: 'boolean',
1003
+ description: 'Restrict Cilium socket load-balancing to the host namespace. Required for the Tailscale operator and Istio.',
1004
+ example: false
1005
+ }
1006
+ },
1007
+ additionalProperties: false,
1008
+ description: 'Cluster feature toggles.',
1009
+ default: {
1010
+ gpu_sharing_strategy: 'none',
1011
+ gpu_max_shared_clients_per_gpu: 4,
1012
+ cilium_socket_lb_host_namespace_only: false
1013
+ }
737
1014
  }
738
1015
  },
739
1016
  required: [
740
- 'tier'
1017
+ 'name'
741
1018
  ],
742
- additionalProperties: false
1019
+ additionalProperties: false,
1020
+ description: 'Mutable cluster configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
743
1021
  };
744
1022
  export const FleetCreateInputSchema = {
745
1023
  type: 'object',
@@ -748,10 +1026,10 @@ export const FleetCreateInputSchema = {
748
1026
  type: 'object',
749
1027
  properties: {
750
1028
  cpu: {
751
- type: 'number',
752
- format: 'float',
1029
+ type: 'integer',
753
1030
  minimum: 0,
754
- description: 'CPU limit in cores.'
1031
+ maximum: 100000,
1032
+ description: 'CPU limit in cores. Maximum 100,000.'
755
1033
  }
756
1034
  },
757
1035
  additionalProperties: false,
@@ -761,8 +1039,7 @@ export const FleetCreateInputSchema = {
761
1039
  type: 'object',
762
1040
  properties: {
763
1041
  enabled: {
764
- type: 'boolean',
765
- default: true
1042
+ type: 'boolean'
766
1043
  },
767
1044
  project: {
768
1045
  type: 'string',
@@ -771,31 +1048,35 @@ export const FleetCreateInputSchema = {
771
1048
  example: 'my-cloudfleet-project'
772
1049
  }
773
1050
  },
1051
+ required: [
1052
+ 'enabled'
1053
+ ],
774
1054
  additionalProperties: false
775
1055
  },
776
1056
  hetzner: {
777
1057
  type: 'object',
778
1058
  properties: {
779
1059
  enabled: {
780
- type: 'boolean',
781
- default: true
1060
+ type: 'boolean'
782
1061
  },
783
1062
  apiKey: {
784
1063
  type: 'string',
785
1064
  maxLength: 64,
786
1065
  minLength: 64,
787
- pattern: '^[A-Za-z0-9]+$',
788
- description: 'Hetzner Cloud API token with read / write access (64 alphanumeric characters). Omit this field to keep the existing value.'
1066
+ pattern: '^([A-Za-z0-9]{64}|\\*{64})$',
1067
+ 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.'
789
1068
  }
790
1069
  },
1070
+ required: [
1071
+ 'enabled'
1072
+ ],
791
1073
  additionalProperties: false
792
1074
  },
793
1075
  aws: {
794
1076
  type: 'object',
795
1077
  properties: {
796
1078
  enabled: {
797
- type: 'boolean',
798
- default: true
1079
+ type: 'boolean'
799
1080
  },
800
1081
  controllerRoleArn: {
801
1082
  type: 'string',
@@ -804,6 +1085,9 @@ export const FleetCreateInputSchema = {
804
1085
  example: 'arn:aws:iam::123456789012:role/Cloudfleet'
805
1086
  }
806
1087
  },
1088
+ required: [
1089
+ 'enabled'
1090
+ ],
807
1091
  additionalProperties: false
808
1092
  },
809
1093
  constraints: {
@@ -818,7 +1102,12 @@ export const FleetCreateInputSchema = {
818
1102
  'spot'
819
1103
  ]
820
1104
  },
821
- description: 'Allowed values for `karpenter.sh/capacity-type`.'
1105
+ minItems: 1,
1106
+ description: 'Allowed values for `karpenter.sh/capacity-type`.',
1107
+ default: [
1108
+ 'on-demand',
1109
+ 'spot'
1110
+ ]
822
1111
  },
823
1112
  'kubernetes.io/arch': {
824
1113
  type: 'array',
@@ -829,7 +1118,11 @@ export const FleetCreateInputSchema = {
829
1118
  'arm64'
830
1119
  ]
831
1120
  },
832
- description: 'Allowed values for `kubernetes.io/arch`.'
1121
+ minItems: 1,
1122
+ description: 'Allowed values for `kubernetes.io/arch`.',
1123
+ default: [
1124
+ 'amd64'
1125
+ ]
833
1126
  },
834
1127
  'cfke.io/instance-family': {
835
1128
  type: 'array',
@@ -996,7 +1289,8 @@ export const FleetCreateInputSchema = {
996
1289
  'z3'
997
1290
  ]
998
1291
  },
999
- description: 'Allowed values for `cfke.io/instance-family`.'
1292
+ description: 'Allowed values for `cfke.io/instance-family`.',
1293
+ default: []
1000
1294
  },
1001
1295
  'topology.kubernetes.io/region': {
1002
1296
  type: 'array',
@@ -1069,15 +1363,28 @@ export const FleetCreateInputSchema = {
1069
1363
  'us-west4'
1070
1364
  ]
1071
1365
  },
1072
- description: 'Allowed values for `topology.kubernetes.io/region`.'
1366
+ description: 'Allowed values for `topology.kubernetes.io/region`.',
1367
+ default: []
1073
1368
  }
1074
1369
  },
1075
1370
  additionalProperties: false,
1076
- 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. Omit a field to place no restriction on that key.'
1371
+ 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.',
1372
+ default: {
1373
+ 'karpenter.sh/capacity-type': [
1374
+ 'on-demand',
1375
+ 'spot'
1376
+ ],
1377
+ 'kubernetes.io/arch': [
1378
+ 'amd64'
1379
+ ],
1380
+ 'cfke.io/instance-family': [],
1381
+ 'topology.kubernetes.io/region': []
1382
+ }
1077
1383
  },
1078
1384
  scalingProfile: {
1079
1385
  type: 'string',
1080
- description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.',
1386
+ 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`).',
1387
+ default: 'conservative',
1081
1388
  example: 'conservative',
1082
1389
  enum: [
1083
1390
  'aggressive',
@@ -1096,7 +1403,8 @@ export const FleetCreateInputSchema = {
1096
1403
  required: [
1097
1404
  'id'
1098
1405
  ],
1099
- additionalProperties: false
1406
+ additionalProperties: false,
1407
+ description: 'Mutable fleet configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
1100
1408
  };
1101
1409
  export const FleetSchema = {
1102
1410
  type: 'object',
@@ -1105,10 +1413,10 @@ export const FleetSchema = {
1105
1413
  type: 'object',
1106
1414
  properties: {
1107
1415
  cpu: {
1108
- type: 'number',
1109
- format: 'float',
1416
+ type: 'integer',
1110
1417
  minimum: 0,
1111
- description: 'CPU limit in cores.'
1418
+ maximum: 100000,
1419
+ description: 'CPU limit in cores. Maximum 100,000.'
1112
1420
  }
1113
1421
  },
1114
1422
  additionalProperties: false,
@@ -1118,8 +1426,7 @@ export const FleetSchema = {
1118
1426
  type: 'object',
1119
1427
  properties: {
1120
1428
  enabled: {
1121
- type: 'boolean',
1122
- default: true
1429
+ type: 'boolean'
1123
1430
  },
1124
1431
  project: {
1125
1432
  type: 'string',
@@ -1128,14 +1435,16 @@ export const FleetSchema = {
1128
1435
  example: 'my-cloudfleet-project'
1129
1436
  }
1130
1437
  },
1438
+ required: [
1439
+ 'enabled'
1440
+ ],
1131
1441
  additionalProperties: false
1132
1442
  },
1133
1443
  hetzner: {
1134
1444
  type: 'object',
1135
1445
  properties: {
1136
1446
  enabled: {
1137
- type: 'boolean',
1138
- default: true
1447
+ type: 'boolean'
1139
1448
  },
1140
1449
  apiKey: {
1141
1450
  type: 'string',
@@ -1143,14 +1452,16 @@ export const FleetSchema = {
1143
1452
  description: 'Redacted Hetzner API token. Returned as 64 asterisks when a token is configured; omitted otherwise. The real value is never echoed by the API.'
1144
1453
  }
1145
1454
  },
1455
+ required: [
1456
+ 'enabled'
1457
+ ],
1146
1458
  additionalProperties: false
1147
1459
  },
1148
1460
  aws: {
1149
1461
  type: 'object',
1150
1462
  properties: {
1151
1463
  enabled: {
1152
- type: 'boolean',
1153
- default: true
1464
+ type: 'boolean'
1154
1465
  },
1155
1466
  controllerRoleArn: {
1156
1467
  type: 'string',
@@ -1159,6 +1470,9 @@ export const FleetSchema = {
1159
1470
  example: 'arn:aws:iam::123456789012:role/Cloudfleet'
1160
1471
  }
1161
1472
  },
1473
+ required: [
1474
+ 'enabled'
1475
+ ],
1162
1476
  additionalProperties: false
1163
1477
  },
1164
1478
  constraints: {
@@ -1173,7 +1487,12 @@ export const FleetSchema = {
1173
1487
  'spot'
1174
1488
  ]
1175
1489
  },
1176
- description: 'Allowed values for `karpenter.sh/capacity-type`.'
1490
+ minItems: 1,
1491
+ description: 'Allowed values for `karpenter.sh/capacity-type`.',
1492
+ default: [
1493
+ 'on-demand',
1494
+ 'spot'
1495
+ ]
1177
1496
  },
1178
1497
  'kubernetes.io/arch': {
1179
1498
  type: 'array',
@@ -1184,7 +1503,11 @@ export const FleetSchema = {
1184
1503
  'arm64'
1185
1504
  ]
1186
1505
  },
1187
- description: 'Allowed values for `kubernetes.io/arch`.'
1506
+ minItems: 1,
1507
+ description: 'Allowed values for `kubernetes.io/arch`.',
1508
+ default: [
1509
+ 'amd64'
1510
+ ]
1188
1511
  },
1189
1512
  'cfke.io/instance-family': {
1190
1513
  type: 'array',
@@ -1351,7 +1674,8 @@ export const FleetSchema = {
1351
1674
  'z3'
1352
1675
  ]
1353
1676
  },
1354
- description: 'Allowed values for `cfke.io/instance-family`.'
1677
+ description: 'Allowed values for `cfke.io/instance-family`.',
1678
+ default: []
1355
1679
  },
1356
1680
  'topology.kubernetes.io/region': {
1357
1681
  type: 'array',
@@ -1424,15 +1748,32 @@ export const FleetSchema = {
1424
1748
  'us-west4'
1425
1749
  ]
1426
1750
  },
1427
- description: 'Allowed values for `topology.kubernetes.io/region`.'
1751
+ description: 'Allowed values for `topology.kubernetes.io/region`.',
1752
+ default: []
1428
1753
  }
1429
1754
  },
1755
+ required: [
1756
+ 'karpenter.sh/capacity-type',
1757
+ 'kubernetes.io/arch'
1758
+ ],
1430
1759
  additionalProperties: false,
1431
- 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. Omit a field to place no restriction on that key.'
1760
+ description: 'Constraints define scheduling and provisioning requirements for the fleet. Each field restricts the values allowed for a given Kubernetes label key. Multiple constraints are ANDed together.',
1761
+ default: {
1762
+ 'karpenter.sh/capacity-type': [
1763
+ 'on-demand',
1764
+ 'spot'
1765
+ ],
1766
+ 'kubernetes.io/arch': [
1767
+ 'amd64'
1768
+ ],
1769
+ 'cfke.io/instance-family': [],
1770
+ 'topology.kubernetes.io/region': []
1771
+ }
1432
1772
  },
1433
1773
  scalingProfile: {
1434
1774
  type: 'string',
1435
- description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.',
1775
+ description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet. Full-overwrite: omit to reset to the default (`conservative`).',
1776
+ default: 'conservative',
1436
1777
  example: 'conservative',
1437
1778
  enum: [
1438
1779
  'aggressive',
@@ -1446,12 +1787,38 @@ export const FleetSchema = {
1446
1787
  pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
1447
1788
  description: 'Unique identifier of the kubernetes fleet.',
1448
1789
  example: 'new-clouds-fleet'
1790
+ },
1791
+ ready: {
1792
+ type: 'boolean',
1793
+ description: 'Indicates whether the fleet configuration is healthy.',
1794
+ example: true
1795
+ },
1796
+ status_message: {
1797
+ type: 'string',
1798
+ description: 'Human-readable reason the fleet is not ready. Present only when `ready` is false.',
1799
+ example: 'Invalid provider permissions.'
1800
+ },
1801
+ created_at: {
1802
+ type: 'string',
1803
+ description: 'Creation date and time of the fleet.',
1804
+ example: '2024-09-12T09:11:27Z'
1805
+ },
1806
+ updated_at: {
1807
+ type: 'string',
1808
+ description: 'Date and time the fleet was last updated.',
1809
+ example: '2024-09-12T09:11:27Z'
1449
1810
  }
1450
1811
  },
1451
1812
  required: [
1452
- 'id'
1813
+ 'constraints',
1814
+ 'scalingProfile',
1815
+ 'id',
1816
+ 'ready',
1817
+ 'created_at',
1818
+ 'updated_at'
1453
1819
  ],
1454
- additionalProperties: false
1820
+ additionalProperties: false,
1821
+ description: 'Mutable fleet configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
1455
1822
  };
1456
1823
  export const FleetUpdateInputSchema = {
1457
1824
  type: 'object',
@@ -1460,10 +1827,10 @@ export const FleetUpdateInputSchema = {
1460
1827
  type: 'object',
1461
1828
  properties: {
1462
1829
  cpu: {
1463
- type: 'number',
1464
- format: 'float',
1830
+ type: 'integer',
1465
1831
  minimum: 0,
1466
- description: 'CPU limit in cores.'
1832
+ maximum: 100000,
1833
+ description: 'CPU limit in cores. Maximum 100,000.'
1467
1834
  }
1468
1835
  },
1469
1836
  additionalProperties: false,
@@ -1473,8 +1840,7 @@ export const FleetUpdateInputSchema = {
1473
1840
  type: 'object',
1474
1841
  properties: {
1475
1842
  enabled: {
1476
- type: 'boolean',
1477
- default: true
1843
+ type: 'boolean'
1478
1844
  },
1479
1845
  project: {
1480
1846
  type: 'string',
@@ -1483,31 +1849,35 @@ export const FleetUpdateInputSchema = {
1483
1849
  example: 'my-cloudfleet-project'
1484
1850
  }
1485
1851
  },
1852
+ required: [
1853
+ 'enabled'
1854
+ ],
1486
1855
  additionalProperties: false
1487
1856
  },
1488
1857
  hetzner: {
1489
1858
  type: 'object',
1490
1859
  properties: {
1491
1860
  enabled: {
1492
- type: 'boolean',
1493
- default: true
1861
+ type: 'boolean'
1494
1862
  },
1495
1863
  apiKey: {
1496
1864
  type: 'string',
1497
1865
  maxLength: 64,
1498
1866
  minLength: 64,
1499
- pattern: '^[A-Za-z0-9]+$',
1500
- description: 'Hetzner Cloud API token with read / write access (64 alphanumeric characters). Omit this field to keep the existing value.'
1867
+ pattern: '^([A-Za-z0-9]{64}|\\*{64})$',
1868
+ 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.'
1501
1869
  }
1502
1870
  },
1871
+ required: [
1872
+ 'enabled'
1873
+ ],
1503
1874
  additionalProperties: false
1504
1875
  },
1505
1876
  aws: {
1506
1877
  type: 'object',
1507
1878
  properties: {
1508
1879
  enabled: {
1509
- type: 'boolean',
1510
- default: true
1880
+ type: 'boolean'
1511
1881
  },
1512
1882
  controllerRoleArn: {
1513
1883
  type: 'string',
@@ -1516,6 +1886,9 @@ export const FleetUpdateInputSchema = {
1516
1886
  example: 'arn:aws:iam::123456789012:role/Cloudfleet'
1517
1887
  }
1518
1888
  },
1889
+ required: [
1890
+ 'enabled'
1891
+ ],
1519
1892
  additionalProperties: false
1520
1893
  },
1521
1894
  constraints: {
@@ -1530,7 +1903,12 @@ export const FleetUpdateInputSchema = {
1530
1903
  'spot'
1531
1904
  ]
1532
1905
  },
1533
- description: 'Allowed values for `karpenter.sh/capacity-type`.'
1906
+ minItems: 1,
1907
+ description: 'Allowed values for `karpenter.sh/capacity-type`.',
1908
+ default: [
1909
+ 'on-demand',
1910
+ 'spot'
1911
+ ]
1534
1912
  },
1535
1913
  'kubernetes.io/arch': {
1536
1914
  type: 'array',
@@ -1541,7 +1919,11 @@ export const FleetUpdateInputSchema = {
1541
1919
  'arm64'
1542
1920
  ]
1543
1921
  },
1544
- description: 'Allowed values for `kubernetes.io/arch`.'
1922
+ minItems: 1,
1923
+ description: 'Allowed values for `kubernetes.io/arch`.',
1924
+ default: [
1925
+ 'amd64'
1926
+ ]
1545
1927
  },
1546
1928
  'cfke.io/instance-family': {
1547
1929
  type: 'array',
@@ -1708,7 +2090,8 @@ export const FleetUpdateInputSchema = {
1708
2090
  'z3'
1709
2091
  ]
1710
2092
  },
1711
- description: 'Allowed values for `cfke.io/instance-family`.'
2093
+ description: 'Allowed values for `cfke.io/instance-family`.',
2094
+ default: []
1712
2095
  },
1713
2096
  'topology.kubernetes.io/region': {
1714
2097
  type: 'array',
@@ -1781,15 +2164,28 @@ export const FleetUpdateInputSchema = {
1781
2164
  'us-west4'
1782
2165
  ]
1783
2166
  },
1784
- description: 'Allowed values for `topology.kubernetes.io/region`.'
2167
+ description: 'Allowed values for `topology.kubernetes.io/region`.',
2168
+ default: []
1785
2169
  }
1786
2170
  },
1787
2171
  additionalProperties: false,
1788
- 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. Omit a field to place no restriction on that key.'
2172
+ 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.',
2173
+ default: {
2174
+ 'karpenter.sh/capacity-type': [
2175
+ 'on-demand',
2176
+ 'spot'
2177
+ ],
2178
+ 'kubernetes.io/arch': [
2179
+ 'amd64'
2180
+ ],
2181
+ 'cfke.io/instance-family': [],
2182
+ 'topology.kubernetes.io/region': []
2183
+ }
1789
2184
  },
1790
2185
  scalingProfile: {
1791
2186
  type: 'string',
1792
- description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.',
2187
+ 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`).',
2188
+ default: 'conservative',
1793
2189
  example: 'conservative',
1794
2190
  enum: [
1795
2191
  'aggressive',
@@ -1797,6 +2193,32 @@ export const FleetUpdateInputSchema = {
1797
2193
  ]
1798
2194
  }
1799
2195
  },
2196
+ additionalProperties: false,
2197
+ description: 'Mutable fleet configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
2198
+ };
2199
+ export const InviteCreateInputSchema = {
2200
+ type: 'object',
2201
+ properties: {
2202
+ email: {
2203
+ type: 'string',
2204
+ format: 'email',
2205
+ description: 'Email address of the user to invite.',
2206
+ example: 'email@example.com'
2207
+ },
2208
+ role: {
2209
+ type: 'string',
2210
+ description: 'Role the invited user will be assigned on redemption. Can be \'Administrator\' or \'User\'.',
2211
+ default: 'User',
2212
+ example: 'User',
2213
+ enum: [
2214
+ 'Administrator',
2215
+ 'User'
2216
+ ]
2217
+ }
2218
+ },
2219
+ required: [
2220
+ 'email'
2221
+ ],
1800
2222
  additionalProperties: false
1801
2223
  };
1802
2224
  export const InviteSchema = {
@@ -1829,6 +2251,16 @@ export const InviteSchema = {
1829
2251
  type: 'string',
1830
2252
  description: 'Generated unique invite code.',
1831
2253
  example: '7kUZnH7nnKUFfvc4NK2KQF'
2254
+ },
2255
+ role: {
2256
+ type: 'string',
2257
+ description: 'Role the invited user will be assigned on redemption. Can be \'Administrator\' or \'User\'.',
2258
+ default: 'User',
2259
+ example: 'User',
2260
+ enum: [
2261
+ 'Administrator',
2262
+ 'User'
2263
+ ]
1832
2264
  }
1833
2265
  },
1834
2266
  required: [
@@ -2049,6 +2481,15 @@ export const MarketplaceListingSchema = {
2049
2481
  export const OrganizationCreateInputSchema = {
2050
2482
  type: 'object',
2051
2483
  properties: {
2484
+ type: {
2485
+ type: 'string',
2486
+ description: 'Type of the organization. `business` for legal entities, `personal` for individuals.',
2487
+ example: 'business',
2488
+ enum: [
2489
+ 'business',
2490
+ 'personal'
2491
+ ]
2492
+ },
2052
2493
  email: {
2053
2494
  type: 'string',
2054
2495
  format: 'email',
@@ -2057,11 +2498,13 @@ export const OrganizationCreateInputSchema = {
2057
2498
  },
2058
2499
  first_name: {
2059
2500
  type: 'string',
2501
+ minLength: 1,
2060
2502
  description: 'First name of the billing contact person.',
2061
2503
  example: 'John'
2062
2504
  },
2063
2505
  last_name: {
2064
2506
  type: 'string',
2507
+ minLength: 1,
2065
2508
  description: 'Last name of the billing contact person.',
2066
2509
  example: 'Doe'
2067
2510
  },
@@ -2080,6 +2523,7 @@ export const OrganizationCreateInputSchema = {
2080
2523
  }
2081
2524
  },
2082
2525
  required: [
2526
+ 'type',
2083
2527
  'email',
2084
2528
  'first_name',
2085
2529
  'last_name',
@@ -2088,6 +2532,20 @@ export const OrganizationCreateInputSchema = {
2088
2532
  ],
2089
2533
  additionalProperties: false
2090
2534
  };
2535
+ export const OrganizationCreateOutputSchema = {
2536
+ type: 'object',
2537
+ properties: {
2538
+ id: {
2539
+ type: 'string',
2540
+ description: 'Unique identifier of the newly created organization. Generated by the API and safe to use for client-side tracking immediately.',
2541
+ example: 'organization-id'
2542
+ }
2543
+ },
2544
+ required: [
2545
+ 'id'
2546
+ ],
2547
+ additionalProperties: false
2548
+ };
2091
2549
  export const OrganizationSchema = {
2092
2550
  type: 'object',
2093
2551
  properties: {
@@ -2104,6 +2562,15 @@ export const OrganizationSchema = {
2104
2562
  description: 'Name of the legal entity. This name will be used in invoices. Use your first and last name for individual accounts.',
2105
2563
  example: 'ACME Corp.'
2106
2564
  },
2565
+ type: {
2566
+ type: 'string',
2567
+ description: 'Type of the organization. `business` for legal entities, `personal` for individuals.',
2568
+ example: 'business',
2569
+ enum: [
2570
+ 'business',
2571
+ 'personal'
2572
+ ]
2573
+ },
2107
2574
  date_created: {
2108
2575
  type: 'string',
2109
2576
  format: 'date-time',
@@ -2135,6 +2602,17 @@ export const OrganizationSchema = {
2135
2602
  description: 'Available number of Pro clusters that can be created.',
2136
2603
  example: 999
2137
2604
  },
2605
+ enterprise_clusters_max: {
2606
+ type: 'integer',
2607
+ minimum: 0,
2608
+ description: 'Maximum number of Enterprise clusters that can be created.',
2609
+ example: 999
2610
+ },
2611
+ enterprise_clusters_available: {
2612
+ type: 'integer',
2613
+ description: 'Available number of Enterprise clusters that can be created.',
2614
+ example: 999
2615
+ },
2138
2616
  fleets_max: {
2139
2617
  type: 'integer',
2140
2618
  minimum: 0,
@@ -2154,7 +2632,7 @@ export const OrganizationSchema = {
2154
2632
  type: 'array',
2155
2633
  items: {
2156
2634
  type: 'string',
2157
- example: 'northamerica-central-1'
2635
+ example: 'northamerica-central-1a'
2158
2636
  },
2159
2637
  minItems: 1,
2160
2638
  description: 'List of Cloudfleet control plane regions available for the organization.'
@@ -2196,6 +2674,8 @@ export const OrganizationSchema = {
2196
2674
  'basic_clusters_available',
2197
2675
  'pro_clusters_max',
2198
2676
  'pro_clusters_available',
2677
+ 'enterprise_clusters_max',
2678
+ 'enterprise_clusters_available',
2199
2679
  'fleets_max',
2200
2680
  'cluster_tiers',
2201
2681
  'regions',
@@ -2213,13 +2693,25 @@ export const OrganizationSchema = {
2213
2693
  'closed',
2214
2694
  'suspended'
2215
2695
  ]
2696
+ },
2697
+ verification: {
2698
+ type: 'string',
2699
+ 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.',
2700
+ example: 'verified',
2701
+ enum: [
2702
+ 'none',
2703
+ 'submitted',
2704
+ 'verified'
2705
+ ]
2216
2706
  }
2217
2707
  },
2218
2708
  required: [
2219
2709
  'id',
2710
+ 'type',
2220
2711
  'date_created',
2221
2712
  'quota',
2222
- 'status'
2713
+ 'status',
2714
+ 'verification'
2223
2715
  ],
2224
2716
  additionalProperties: false
2225
2717
  };
@@ -2228,28 +2720,23 @@ export const PaymentMethodSchema = {
2228
2720
  properties: {
2229
2721
  id: {
2230
2722
  type: 'string',
2231
- format: 'uuid',
2232
- description: 'Unique identifier of the organization. UUID v4 string in canonical form.',
2233
- example: 'e94d30ec-a2dd-4dcb-832c-ac2be144ba91'
2234
- },
2235
- setup: {
2236
- type: 'boolean',
2237
- description: 'Whether organization payment method was set up and ready to use for payments.',
2238
- example: true
2723
+ 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.',
2724
+ example: 'pm_1MtwBwLkdIwHu7ix28a3tqPa'
2239
2725
  },
2240
2726
  type: {
2241
2727
  type: 'string',
2242
- nullable: true,
2243
- description: 'Payment method type type. Only `card` payments supported at the moment.',
2728
+ description: 'Payment method type. `card`, `sepa_debit` for SEPA Direct Debit (business accounts only), or `bank_transfer` for paying invoices by bank transfer.',
2244
2729
  example: 'card',
2245
2730
  enum: [
2246
- 'card'
2731
+ 'card',
2732
+ 'sepa_debit',
2733
+ 'bank_transfer'
2247
2734
  ]
2248
2735
  },
2249
2736
  last4: {
2250
2737
  type: 'string',
2251
2738
  nullable: true,
2252
- description: 'Last 4 digits of the payment card number.',
2739
+ 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.',
2253
2740
  example: '4242'
2254
2741
  },
2255
2742
  exp_month: {
@@ -2257,42 +2744,56 @@ export const PaymentMethodSchema = {
2257
2744
  minimum: 1,
2258
2745
  maximum: 12,
2259
2746
  nullable: true,
2260
- description: 'Two-digit number representing the card\'s expiration month.',
2261
- example: '12'
2747
+ description: 'Two-digit number representing the card\'s expiration month. Null for SEPA Direct Debit and bank transfer.',
2748
+ example: 12
2262
2749
  },
2263
2750
  exp_year: {
2264
2751
  type: 'integer',
2265
- minimum: 2024,
2266
2752
  nullable: true,
2267
- description: 'Four-digit number representing the card\'s expiration year.',
2268
- example: '2028'
2753
+ 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.',
2754
+ example: 2028
2269
2755
  },
2270
2756
  brand: {
2271
2757
  type: 'string',
2272
2758
  nullable: true,
2273
- description: 'Payment card brand. Can be `amex`, `diners`, `discover`, `eftpos_au`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown`.',
2274
- example: 'visa',
2275
- enum: [
2276
- 'amex',
2277
- 'diners',
2278
- 'discover',
2279
- 'eftpos_au',
2280
- 'jcb',
2281
- 'mastercard',
2282
- 'unionpay',
2283
- 'visa',
2284
- 'unknown'
2285
- ]
2759
+ 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.',
2760
+ example: 'visa'
2761
+ },
2762
+ iban: {
2763
+ type: 'string',
2764
+ nullable: true,
2765
+ 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.',
2766
+ example: 'DE11243015658023127510'
2767
+ },
2768
+ bic: {
2769
+ type: 'string',
2770
+ nullable: true,
2771
+ description: 'BIC/SWIFT of the destination bank for bank transfers. Set only for `bank_transfer`; null otherwise.',
2772
+ example: 'SOGEDEFFXXX'
2773
+ },
2774
+ account_holder_name: {
2775
+ type: 'string',
2776
+ nullable: true,
2777
+ description: 'Account holder name of the destination bank account for bank transfers. Set only for `bank_transfer`; null otherwise.',
2778
+ example: 'Cloudfleet GmbH'
2779
+ },
2780
+ is_default: {
2781
+ type: 'boolean',
2782
+ 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).',
2783
+ example: true
2286
2784
  }
2287
2785
  },
2288
2786
  required: [
2289
2787
  'id',
2290
- 'setup',
2291
2788
  'type',
2292
2789
  'last4',
2293
2790
  'exp_month',
2294
2791
  'exp_year',
2295
- 'brand'
2792
+ 'brand',
2793
+ 'iban',
2794
+ 'bic',
2795
+ 'account_holder_name',
2796
+ 'is_default'
2296
2797
  ],
2297
2798
  additionalProperties: false
2298
2799
  };
@@ -2321,6 +2822,17 @@ export const PlatformQuotaSchema = {
2321
2822
  description: 'Available number of Pro clusters that can be created.',
2322
2823
  example: 999
2323
2824
  },
2825
+ enterprise_clusters_max: {
2826
+ type: 'integer',
2827
+ minimum: 0,
2828
+ description: 'Maximum number of Enterprise clusters that can be created.',
2829
+ example: 999
2830
+ },
2831
+ enterprise_clusters_available: {
2832
+ type: 'integer',
2833
+ description: 'Available number of Enterprise clusters that can be created.',
2834
+ example: 999
2835
+ },
2324
2836
  fleets_max: {
2325
2837
  type: 'integer',
2326
2838
  minimum: 0,
@@ -2340,7 +2852,7 @@ export const PlatformQuotaSchema = {
2340
2852
  type: 'array',
2341
2853
  items: {
2342
2854
  type: 'string',
2343
- example: 'northamerica-central-1'
2855
+ example: 'northamerica-central-1a'
2344
2856
  },
2345
2857
  minItems: 1,
2346
2858
  description: 'List of Cloudfleet control plane regions available for the organization.'
@@ -2382,6 +2894,8 @@ export const PlatformQuotaSchema = {
2382
2894
  'basic_clusters_available',
2383
2895
  'pro_clusters_max',
2384
2896
  'pro_clusters_available',
2897
+ 'enterprise_clusters_max',
2898
+ 'enterprise_clusters_available',
2385
2899
  'fleets_max',
2386
2900
  'cluster_tiers',
2387
2901
  'regions',
@@ -2724,172 +3238,6 @@ export const TicketCreateInputSchema = {
2724
3238
  ],
2725
3239
  additionalProperties: false
2726
3240
  };
2727
- export const TicketListResponseSchema = {
2728
- type: 'object',
2729
- properties: {
2730
- items: {
2731
- type: 'array',
2732
- items: {
2733
- type: 'object',
2734
- properties: {
2735
- id: {
2736
- type: 'string',
2737
- description: 'Unique identifier of the ticket (Mongo ObjectId).',
2738
- example: '60c72b2f9f1b2c001f8e4d3a'
2739
- },
2740
- status: {
2741
- type: 'string',
2742
- description: 'Current state of the ticket.',
2743
- example: 'waiting_on_us',
2744
- enum: [
2745
- 'waiting_on_us',
2746
- 'waiting_on_user',
2747
- 'closed'
2748
- ]
2749
- },
2750
- category: {
2751
- type: 'string',
2752
- description: 'Ticket category.',
2753
- example: 'technical',
2754
- enum: [
2755
- 'billing',
2756
- 'technical',
2757
- 'general'
2758
- ]
2759
- },
2760
- summary: {
2761
- type: 'string',
2762
- description: 'First 128 characters of the initial message body, with markdown formatting and newlines stripped. Used for ticket list previews.',
2763
- example: 'My cluster cannot reach the registry. Logs attached.'
2764
- },
2765
- closed_at: {
2766
- type: 'string',
2767
- format: 'date-time',
2768
- nullable: true,
2769
- description: 'Closure timestamp. Null while the ticket is open.',
2770
- example: '2026-05-18T16:08:14.338Z'
2771
- },
2772
- date_created: {
2773
- type: 'string',
2774
- format: 'date-time',
2775
- description: 'Creation date of the ticket. ISO 8601 UTC.',
2776
- example: '2026-05-11T16:08:14.338Z'
2777
- },
2778
- date_updated: {
2779
- type: 'string',
2780
- format: 'date-time',
2781
- description: 'Last update date of the ticket. ISO 8601 UTC.',
2782
- example: '2026-05-11T16:08:14.338Z'
2783
- },
2784
- messages: {
2785
- type: 'array',
2786
- items: {
2787
- type: 'object',
2788
- properties: {
2789
- id: {
2790
- type: 'string',
2791
- description: 'Unique identifier of the message (Mongo ObjectId).',
2792
- example: '60c72b2f9f1b2c001f8e4d3b'
2793
- },
2794
- type: {
2795
- type: 'string',
2796
- description: 'Message type. Internal notes are filtered out of customer-facing responses.',
2797
- example: 'customer_reply',
2798
- enum: [
2799
- 'customer_reply',
2800
- 'agent_reply'
2801
- ]
2802
- },
2803
- body: {
2804
- type: 'string',
2805
- description: 'Message body in markdown.',
2806
- example: 'Thanks — that resolved it on my side.'
2807
- },
2808
- author_first_name: {
2809
- type: 'string',
2810
- nullable: true,
2811
- description: 'First name of the author. Null when not provided.',
2812
- example: 'Jane'
2813
- },
2814
- author_last_name: {
2815
- type: 'string',
2816
- nullable: true,
2817
- description: 'Last name of the author. Null when not provided.',
2818
- example: 'Doe'
2819
- },
2820
- attachments: {
2821
- type: 'array',
2822
- items: {
2823
- type: 'object',
2824
- properties: {
2825
- id: {
2826
- type: 'string',
2827
- description: 'Unique identifier of the attachment (Mongo ObjectId).',
2828
- example: '60c72b2f9f1b2c001f8e4d3c'
2829
- },
2830
- filename: {
2831
- type: 'string',
2832
- description: 'Original filename as uploaded.',
2833
- example: 'debug.log'
2834
- },
2835
- content_type: {
2836
- type: 'string',
2837
- description: 'MIME content type of the attachment.',
2838
- example: 'text/plain'
2839
- },
2840
- size: {
2841
- type: 'integer',
2842
- description: 'Size of the attachment in bytes.',
2843
- example: 12345
2844
- }
2845
- },
2846
- required: [
2847
- 'id',
2848
- 'filename',
2849
- 'content_type',
2850
- 'size'
2851
- ],
2852
- additionalProperties: false
2853
- },
2854
- description: 'Attachments associated with this message.',
2855
- example: []
2856
- },
2857
- date_created: {
2858
- type: 'string',
2859
- format: 'date-time',
2860
- description: 'Creation date of the message. ISO 8601 UTC.',
2861
- example: '2026-05-11T16:08:14.338Z'
2862
- }
2863
- },
2864
- required: [
2865
- 'id',
2866
- 'type',
2867
- 'body',
2868
- 'date_created'
2869
- ],
2870
- additionalProperties: false
2871
- },
2872
- description: 'Messages on the ticket in chronological order. Internal notes are excluded. Returned by the detail endpoint only.'
2873
- }
2874
- },
2875
- required: [
2876
- 'id',
2877
- 'status',
2878
- 'category',
2879
- 'summary',
2880
- 'date_created',
2881
- 'date_updated'
2882
- ],
2883
- additionalProperties: false
2884
- },
2885
- description: 'Tickets for the organization, ordered newest first. Messages are omitted from list responses.'
2886
- }
2887
- },
2888
- required: [
2889
- 'items'
2890
- ],
2891
- additionalProperties: false
2892
- };
2893
3241
  export const TicketMessageInputSchema = {
2894
3242
  type: 'object',
2895
3243
  properties: {
@@ -2931,11 +3279,13 @@ export const TicketMessageSchema = {
2931
3279
  },
2932
3280
  author_first_name: {
2933
3281
  type: 'string',
3282
+ nullable: true,
2934
3283
  description: 'First name of the author. Null when not provided.',
2935
3284
  example: 'Jane'
2936
3285
  },
2937
3286
  author_last_name: {
2938
3287
  type: 'string',
3288
+ nullable: true,
2939
3289
  description: 'Last name of the author. Null when not provided.',
2940
3290
  example: 'Doe'
2941
3291
  },
@@ -3027,6 +3377,7 @@ export const TicketSchema = {
3027
3377
  closed_at: {
3028
3378
  type: 'string',
3029
3379
  format: 'date-time',
3380
+ nullable: true,
3030
3381
  description: 'Closure timestamp. Null while the ticket is open.',
3031
3382
  example: '2026-05-18T16:08:14.338Z'
3032
3383
  },
@@ -3251,12 +3602,21 @@ export const UsageFacetsSchema = {
3251
3602
  product: {
3252
3603
  type: 'array',
3253
3604
  items: {
3254
- type: 'string'
3605
+ type: 'string',
3606
+ enum: [
3607
+ 'cfke_controlplane_basic',
3608
+ 'cfke_controlplane_pro',
3609
+ 'cfke_controlplane_enterprise',
3610
+ 'cfke_connected_nodes_basic',
3611
+ 'cfke_connected_nodes_pro',
3612
+ 'cfke_connected_nodes_enterprise',
3613
+ 'cfcr_storage'
3614
+ ]
3255
3615
  },
3256
3616
  description: 'List of unique products',
3257
3617
  example: [
3258
- 'cfke_controlplane',
3259
- 'cfke_connected_nodes'
3618
+ 'cfke_controlplane_pro',
3619
+ 'cfke_connected_nodes_pro'
3260
3620
  ]
3261
3621
  }
3262
3622
  },
@@ -3283,7 +3643,16 @@ export const UsageResponseSchema = {
3283
3643
  product: {
3284
3644
  type: 'string',
3285
3645
  description: 'The product the usage is associated with',
3286
- example: 'cfke_controlplane'
3646
+ example: 'cfke_controlplane_pro',
3647
+ enum: [
3648
+ 'cfke_controlplane_basic',
3649
+ 'cfke_controlplane_pro',
3650
+ 'cfke_controlplane_enterprise',
3651
+ 'cfke_connected_nodes_basic',
3652
+ 'cfke_connected_nodes_pro',
3653
+ 'cfke_connected_nodes_enterprise',
3654
+ 'cfcr_storage'
3655
+ ]
3287
3656
  },
3288
3657
  value: {
3289
3658
  type: 'number',
@@ -3331,12 +3700,21 @@ export const UsageResponseSchema = {
3331
3700
  product: {
3332
3701
  type: 'array',
3333
3702
  items: {
3334
- type: 'string'
3703
+ type: 'string',
3704
+ enum: [
3705
+ 'cfke_controlplane_basic',
3706
+ 'cfke_controlplane_pro',
3707
+ 'cfke_controlplane_enterprise',
3708
+ 'cfke_connected_nodes_basic',
3709
+ 'cfke_connected_nodes_pro',
3710
+ 'cfke_connected_nodes_enterprise',
3711
+ 'cfcr_storage'
3712
+ ]
3335
3713
  },
3336
3714
  description: 'List of unique products',
3337
3715
  example: [
3338
- 'cfke_controlplane',
3339
- 'cfke_connected_nodes'
3716
+ 'cfke_controlplane_pro',
3717
+ 'cfke_connected_nodes_pro'
3340
3718
  ]
3341
3719
  }
3342
3720
  },
@@ -3366,7 +3744,16 @@ export const UsageSchema = {
3366
3744
  product: {
3367
3745
  type: 'string',
3368
3746
  description: 'The product the usage is associated with',
3369
- example: 'cfke_controlplane'
3747
+ example: 'cfke_controlplane_pro',
3748
+ enum: [
3749
+ 'cfke_controlplane_basic',
3750
+ 'cfke_controlplane_pro',
3751
+ 'cfke_controlplane_enterprise',
3752
+ 'cfke_connected_nodes_basic',
3753
+ 'cfke_connected_nodes_pro',
3754
+ 'cfke_connected_nodes_enterprise',
3755
+ 'cfcr_storage'
3756
+ ]
3370
3757
  },
3371
3758
  value: {
3372
3759
  type: 'number',
@@ -3429,24 +3816,6 @@ export const UserCreateInputSchema = {
3429
3816
  type: 'string',
3430
3817
  minLength: 8,
3431
3818
  description: 'User password. Must be at least 8 characters long.'
3432
- },
3433
- status: {
3434
- type: 'string',
3435
- description: 'Status of the user. Can be `active` or `inactive`. Inactive users cannot log in or manage organization resources.',
3436
- example: 'active',
3437
- enum: [
3438
- 'active',
3439
- 'inactive'
3440
- ]
3441
- },
3442
- role: {
3443
- type: 'string',
3444
- description: 'User role. Can be \'Administrator\', \'User\'.',
3445
- example: 'User',
3446
- enum: [
3447
- 'Administrator',
3448
- 'User'
3449
- ]
3450
3819
  }
3451
3820
  },
3452
3821
  required: [