@cloudfleet/sdk 0.0.1-8e907c6 → 0.0.1-9095a30

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,4 +1,53 @@
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: {
@@ -368,24 +417,8 @@ export const ChartSchema = {
368
417
  },
369
418
  status: {
370
419
  type: 'string',
371
- description: 'Status of the chart deployment.',
372
- example: 'active',
373
- enum: [
374
- 'InstallSucceeded',
375
- 'InstallFailed',
376
- 'UpgradeSucceeded',
377
- 'UpgradeFailed',
378
- 'TestSucceeded',
379
- 'TestFailed',
380
- 'RollbackSucceeded',
381
- 'RollbackFailed',
382
- 'UninstallSucceeded',
383
- 'UninstallFailed',
384
- 'ArtifactFailed',
385
- 'DependencyNotReady',
386
- 'Progressing',
387
- 'SourceNotReady'
388
- ]
420
+ description: 'Status of the chart deployment (Flux HelmRelease Ready condition reason, e.g. InstallSucceeded, UpgradeFailed, Progressing).',
421
+ example: 'InstallSucceeded'
389
422
  },
390
423
  version_current: {
391
424
  type: 'string',
@@ -456,22 +489,12 @@ export const ClusterCreateInputSchema = {
456
489
  tier: {
457
490
  type: 'string',
458
491
  description: 'Tier of the cluster.',
492
+ default: 'basic',
459
493
  example: 'pro',
460
494
  enum: [
461
495
  'basic',
462
- 'pro'
463
- ]
464
- },
465
- region: {
466
- type: 'string',
467
- 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.',
468
- default: 'staging-1a',
469
- example: 'northamerica-central-1a',
470
- enum: [
471
- 'staging-1a',
472
- 'northamerica-central-1',
473
- 'europe-central-1a',
474
- 'northamerica-central-1a'
496
+ 'pro',
497
+ 'enterprise'
475
498
  ]
476
499
  },
477
500
  version_channel: {
@@ -479,20 +502,105 @@ export const ClusterCreateInputSchema = {
479
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-]+)*))?$',
480
503
  description: 'Version of the kubernetes cluster.',
481
504
  default: '1.x.x-cfke.x',
482
- 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',
483
512
  enum: [
484
- '1.x.x-cfke.x',
485
- '1.31.x-cfke.x',
486
- '1.32.x-cfke.x',
487
- '1.33.x-cfke.x'
513
+ 'rapid',
514
+ 'stable',
515
+ 'extended'
488
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
+ }
489
596
  }
490
597
  },
491
598
  required: [
492
599
  'name',
493
- 'tier'
600
+ 'region'
494
601
  ],
495
- 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.'
496
604
  };
497
605
  export const ClusterJoinInformationSchema = {
498
606
  type: 'object',
@@ -513,11 +621,21 @@ export const ClusterJoinInformationSchema = {
513
621
  description: 'Cluster DNS IP address. This is the IP address of the kube-dns service in the cluster.',
514
622
  example: '10.96.0.10'
515
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
+ },
516
629
  auth_key: {
517
630
  type: 'string',
518
631
  description: 'Authentication key for the cluster.',
519
632
  example: 'tskey-auth-kBV8wr1dk911CNTRL-...'
520
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
+ },
521
639
  bootstrap_token: {
522
640
  type: 'string',
523
641
  description: 'Bootstrap token for the cluster.',
@@ -588,7 +706,9 @@ export const ClusterJoinInformationSchema = {
588
706
  'certificate_authority',
589
707
  'endpoint',
590
708
  'cluster_dns',
709
+ 'pod_cidr',
591
710
  'auth_key',
711
+ 'login_server',
592
712
  'bootstrap_token',
593
713
  'versions',
594
714
  'third_party_api_access_config'
@@ -609,24 +729,123 @@ export const ClusterSchema = {
609
729
  tier: {
610
730
  type: 'string',
611
731
  description: 'Tier of the cluster.',
732
+ default: 'basic',
612
733
  example: 'pro',
613
734
  enum: [
614
735
  'basic',
615
- 'pro'
736
+ 'pro',
737
+ 'enterprise'
616
738
  ]
617
739
  },
618
- 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: {
619
748
  type: 'string',
620
- 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.',
621
- default: 'staging-1a',
622
- example: 'northamerica-central-1a',
749
+ description: 'Release channel for the cluster\'s control plane.',
750
+ default: 'rapid',
751
+ example: 'rapid',
623
752
  enum: [
624
- 'staging-1a',
625
- 'northamerica-central-1',
626
- 'europe-central-1a',
627
- 'northamerica-central-1a'
753
+ 'rapid',
754
+ 'stable',
755
+ 'extended'
628
756
  ]
629
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
+ },
630
849
  id: {
631
850
  type: 'string',
632
851
  format: 'uuid',
@@ -635,16 +854,13 @@ export const ClusterSchema = {
635
854
  },
636
855
  status: {
637
856
  type: 'string',
638
- description: 'Status of the cluster. When creating a new cluster, set to `active`. When deleting a clusters, set to `deleted`.',
639
- example: 'active',
857
+ description: 'Status of the cluster.',
858
+ example: 'deployed',
640
859
  enum: [
641
- 'active',
642
- 'disabled',
643
- 'deleted',
644
860
  'creating',
645
861
  'deployed',
646
- 'failed',
647
- 'updating'
862
+ 'updating',
863
+ 'disabled'
648
864
  ]
649
865
  },
650
866
  endpoint: {
@@ -652,8 +868,8 @@ export const ClusterSchema = {
652
868
  {
653
869
  type: 'string',
654
870
  format: 'uri',
655
- 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)',
656
- 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'
657
873
  },
658
874
  {
659
875
  type: 'string',
@@ -668,7 +884,7 @@ export const ClusterSchema = {
668
884
  {
669
885
  type: 'string',
670
886
  format: 'uri',
671
- 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.',
672
888
  example: 'https://2ae6557c-c61f-49c6-b4c1-a65473470a03.staging.cfke.io'
673
889
  },
674
890
  {
@@ -703,21 +919,22 @@ export const ClusterSchema = {
703
919
  type: 'boolean',
704
920
  description: 'Indicates if the cluster is ready to be used.',
705
921
  example: true
706
- },
707
- version_channel: {
708
- type: 'string',
709
- 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-]+)*))?$',
710
- description: 'Version of the kubernetes cluster.',
711
- example: '1.x.x-cfke.x'
712
922
  }
713
923
  },
714
924
  required: [
715
925
  'name',
716
926
  'tier',
927
+ 'version_channel',
928
+ 'release_channel',
929
+ 'features',
930
+ 'region',
931
+ 'networking',
717
932
  'id',
718
- 'status'
933
+ 'status',
934
+ 'ready'
719
935
  ],
720
- 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.'
721
938
  };
722
939
  export const ClusterUpdateInputSchema = {
723
940
  type: 'object',
@@ -733,23 +950,74 @@ export const ClusterUpdateInputSchema = {
733
950
  tier: {
734
951
  type: 'string',
735
952
  description: 'Tier of the cluster.',
953
+ default: 'basic',
736
954
  example: 'pro',
737
955
  enum: [
738
956
  'basic',
739
- 'pro'
957
+ 'pro',
958
+ 'enterprise'
740
959
  ]
741
960
  },
742
961
  version_channel: {
743
962
  type: 'string',
744
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-]+)*))?$',
745
964
  description: 'Version of the kubernetes cluster.',
965
+ default: '1.x.x-cfke.x',
746
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
+ }
747
1014
  }
748
1015
  },
749
1016
  required: [
750
- 'tier'
1017
+ 'name'
751
1018
  ],
752
- 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.'
753
1021
  };
754
1022
  export const FleetCreateInputSchema = {
755
1023
  type: 'object',
@@ -795,8 +1063,8 @@ export const FleetCreateInputSchema = {
795
1063
  type: 'string',
796
1064
  maxLength: 64,
797
1065
  minLength: 64,
798
- pattern: '^[A-Za-z0-9]+$',
799
- 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.'
800
1068
  }
801
1069
  },
802
1070
  required: [
@@ -1021,7 +1289,8 @@ export const FleetCreateInputSchema = {
1021
1289
  'z3'
1022
1290
  ]
1023
1291
  },
1024
- description: 'Allowed values for `cfke.io/instance-family`.'
1292
+ description: 'Allowed values for `cfke.io/instance-family`.',
1293
+ default: []
1025
1294
  },
1026
1295
  'topology.kubernetes.io/region': {
1027
1296
  type: 'array',
@@ -1094,15 +1363,27 @@ export const FleetCreateInputSchema = {
1094
1363
  'us-west4'
1095
1364
  ]
1096
1365
  },
1097
- description: 'Allowed values for `topology.kubernetes.io/region`.'
1366
+ description: 'Allowed values for `topology.kubernetes.io/region`.',
1367
+ default: []
1098
1368
  }
1099
1369
  },
1100
1370
  additionalProperties: false,
1101
- 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
+ }
1102
1383
  },
1103
1384
  scalingProfile: {
1104
1385
  type: 'string',
1105
- 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`).',
1106
1387
  default: 'conservative',
1107
1388
  example: 'conservative',
1108
1389
  enum: [
@@ -1122,7 +1403,8 @@ export const FleetCreateInputSchema = {
1122
1403
  required: [
1123
1404
  'id'
1124
1405
  ],
1125
- 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.'
1126
1408
  };
1127
1409
  export const FleetSchema = {
1128
1410
  type: 'object',
@@ -1392,7 +1674,8 @@ export const FleetSchema = {
1392
1674
  'z3'
1393
1675
  ]
1394
1676
  },
1395
- description: 'Allowed values for `cfke.io/instance-family`.'
1677
+ description: 'Allowed values for `cfke.io/instance-family`.',
1678
+ default: []
1396
1679
  },
1397
1680
  'topology.kubernetes.io/region': {
1398
1681
  type: 'array',
@@ -1465,15 +1748,31 @@ export const FleetSchema = {
1465
1748
  'us-west4'
1466
1749
  ]
1467
1750
  },
1468
- description: 'Allowed values for `topology.kubernetes.io/region`.'
1751
+ description: 'Allowed values for `topology.kubernetes.io/region`.',
1752
+ default: []
1469
1753
  }
1470
1754
  },
1755
+ required: [
1756
+ 'karpenter.sh/capacity-type',
1757
+ 'kubernetes.io/arch'
1758
+ ],
1471
1759
  additionalProperties: false,
1472
- 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
+ }
1473
1772
  },
1474
1773
  scalingProfile: {
1475
1774
  type: 'string',
1476
- 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`).',
1477
1776
  default: 'conservative',
1478
1777
  example: 'conservative',
1479
1778
  enum: [
@@ -1488,13 +1787,38 @@ export const FleetSchema = {
1488
1787
  pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
1489
1788
  description: 'Unique identifier of the kubernetes fleet.',
1490
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'
1491
1810
  }
1492
1811
  },
1493
1812
  required: [
1813
+ 'constraints',
1494
1814
  'scalingProfile',
1495
- 'id'
1815
+ 'id',
1816
+ 'ready',
1817
+ 'created_at',
1818
+ 'updated_at'
1496
1819
  ],
1497
- 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.'
1498
1822
  };
1499
1823
  export const FleetUpdateInputSchema = {
1500
1824
  type: 'object',
@@ -1540,8 +1864,8 @@ export const FleetUpdateInputSchema = {
1540
1864
  type: 'string',
1541
1865
  maxLength: 64,
1542
1866
  minLength: 64,
1543
- pattern: '^[A-Za-z0-9]+$',
1544
- 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.'
1545
1869
  }
1546
1870
  },
1547
1871
  required: [
@@ -1580,7 +1904,11 @@ export const FleetUpdateInputSchema = {
1580
1904
  ]
1581
1905
  },
1582
1906
  minItems: 1,
1583
- description: 'Allowed values for `karpenter.sh/capacity-type`.'
1907
+ description: 'Allowed values for `karpenter.sh/capacity-type`.',
1908
+ default: [
1909
+ 'on-demand',
1910
+ 'spot'
1911
+ ]
1584
1912
  },
1585
1913
  'kubernetes.io/arch': {
1586
1914
  type: 'array',
@@ -1592,7 +1920,10 @@ export const FleetUpdateInputSchema = {
1592
1920
  ]
1593
1921
  },
1594
1922
  minItems: 1,
1595
- description: 'Allowed values for `kubernetes.io/arch`.'
1923
+ description: 'Allowed values for `kubernetes.io/arch`.',
1924
+ default: [
1925
+ 'amd64'
1926
+ ]
1596
1927
  },
1597
1928
  'cfke.io/instance-family': {
1598
1929
  type: 'array',
@@ -1759,7 +2090,8 @@ export const FleetUpdateInputSchema = {
1759
2090
  'z3'
1760
2091
  ]
1761
2092
  },
1762
- description: 'Allowed values for `cfke.io/instance-family`.'
2093
+ description: 'Allowed values for `cfke.io/instance-family`.',
2094
+ default: []
1763
2095
  },
1764
2096
  'topology.kubernetes.io/region': {
1765
2097
  type: 'array',
@@ -1832,15 +2164,28 @@ export const FleetUpdateInputSchema = {
1832
2164
  'us-west4'
1833
2165
  ]
1834
2166
  },
1835
- description: 'Allowed values for `topology.kubernetes.io/region`.'
2167
+ description: 'Allowed values for `topology.kubernetes.io/region`.',
2168
+ default: []
1836
2169
  }
1837
2170
  },
1838
2171
  additionalProperties: false,
1839
- 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
+ }
1840
2184
  },
1841
2185
  scalingProfile: {
1842
2186
  type: 'string',
1843
- 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',
1844
2189
  example: 'conservative',
1845
2190
  enum: [
1846
2191
  'aggressive',
@@ -1848,10 +2193,8 @@ export const FleetUpdateInputSchema = {
1848
2193
  ]
1849
2194
  }
1850
2195
  },
1851
- required: [
1852
- 'scalingProfile'
1853
- ],
1854
- additionalProperties: false
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.'
1855
2198
  };
1856
2199
  export const InviteCreateInputSchema = {
1857
2200
  type: 'object',
@@ -2259,6 +2602,17 @@ export const OrganizationSchema = {
2259
2602
  description: 'Available number of Pro clusters that can be created.',
2260
2603
  example: 999
2261
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
+ },
2262
2616
  fleets_max: {
2263
2617
  type: 'integer',
2264
2618
  minimum: 0,
@@ -2278,7 +2632,7 @@ export const OrganizationSchema = {
2278
2632
  type: 'array',
2279
2633
  items: {
2280
2634
  type: 'string',
2281
- example: 'northamerica-central-1'
2635
+ example: 'northamerica-central-1a'
2282
2636
  },
2283
2637
  minItems: 1,
2284
2638
  description: 'List of Cloudfleet control plane regions available for the organization.'
@@ -2320,6 +2674,8 @@ export const OrganizationSchema = {
2320
2674
  'basic_clusters_available',
2321
2675
  'pro_clusters_max',
2322
2676
  'pro_clusters_available',
2677
+ 'enterprise_clusters_max',
2678
+ 'enterprise_clusters_available',
2323
2679
  'fleets_max',
2324
2680
  'cluster_tiers',
2325
2681
  'regions',
@@ -2466,6 +2822,17 @@ export const PlatformQuotaSchema = {
2466
2822
  description: 'Available number of Pro clusters that can be created.',
2467
2823
  example: 999
2468
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
+ },
2469
2836
  fleets_max: {
2470
2837
  type: 'integer',
2471
2838
  minimum: 0,
@@ -2485,7 +2852,7 @@ export const PlatformQuotaSchema = {
2485
2852
  type: 'array',
2486
2853
  items: {
2487
2854
  type: 'string',
2488
- example: 'northamerica-central-1'
2855
+ example: 'northamerica-central-1a'
2489
2856
  },
2490
2857
  minItems: 1,
2491
2858
  description: 'List of Cloudfleet control plane regions available for the organization.'
@@ -2527,6 +2894,8 @@ export const PlatformQuotaSchema = {
2527
2894
  'basic_clusters_available',
2528
2895
  'pro_clusters_max',
2529
2896
  'pro_clusters_available',
2897
+ 'enterprise_clusters_max',
2898
+ 'enterprise_clusters_available',
2530
2899
  'fleets_max',
2531
2900
  'cluster_tiers',
2532
2901
  'regions',
@@ -2869,172 +3238,6 @@ export const TicketCreateInputSchema = {
2869
3238
  ],
2870
3239
  additionalProperties: false
2871
3240
  };
2872
- export const TicketListResponseSchema = {
2873
- type: 'object',
2874
- properties: {
2875
- items: {
2876
- type: 'array',
2877
- items: {
2878
- type: 'object',
2879
- properties: {
2880
- id: {
2881
- type: 'string',
2882
- description: 'Unique identifier of the ticket (Mongo ObjectId).',
2883
- example: '60c72b2f9f1b2c001f8e4d3a'
2884
- },
2885
- status: {
2886
- type: 'string',
2887
- description: 'Current state of the ticket.',
2888
- example: 'waiting_on_us',
2889
- enum: [
2890
- 'waiting_on_us',
2891
- 'waiting_on_user',
2892
- 'closed'
2893
- ]
2894
- },
2895
- category: {
2896
- type: 'string',
2897
- description: 'Ticket category.',
2898
- example: 'technical',
2899
- enum: [
2900
- 'billing',
2901
- 'technical',
2902
- 'general'
2903
- ]
2904
- },
2905
- summary: {
2906
- type: 'string',
2907
- description: 'First 128 characters of the initial message body, with markdown formatting and newlines stripped. Used for ticket list previews.',
2908
- example: 'My cluster cannot reach the registry. Logs attached.'
2909
- },
2910
- closed_at: {
2911
- type: 'string',
2912
- format: 'date-time',
2913
- nullable: true,
2914
- description: 'Closure timestamp. Null while the ticket is open.',
2915
- example: '2026-05-18T16:08:14.338Z'
2916
- },
2917
- date_created: {
2918
- type: 'string',
2919
- format: 'date-time',
2920
- description: 'Creation date of the ticket. ISO 8601 UTC.',
2921
- example: '2026-05-11T16:08:14.338Z'
2922
- },
2923
- date_updated: {
2924
- type: 'string',
2925
- format: 'date-time',
2926
- description: 'Last update date of the ticket. ISO 8601 UTC.',
2927
- example: '2026-05-11T16:08:14.338Z'
2928
- },
2929
- messages: {
2930
- type: 'array',
2931
- items: {
2932
- type: 'object',
2933
- properties: {
2934
- id: {
2935
- type: 'string',
2936
- description: 'Unique identifier of the message (Mongo ObjectId).',
2937
- example: '60c72b2f9f1b2c001f8e4d3b'
2938
- },
2939
- type: {
2940
- type: 'string',
2941
- description: 'Message type. Internal notes are filtered out of customer-facing responses.',
2942
- example: 'customer_reply',
2943
- enum: [
2944
- 'customer_reply',
2945
- 'agent_reply'
2946
- ]
2947
- },
2948
- body: {
2949
- type: 'string',
2950
- description: 'Message body in markdown.',
2951
- example: 'Thanks — that resolved it on my side.'
2952
- },
2953
- author_first_name: {
2954
- type: 'string',
2955
- nullable: true,
2956
- description: 'First name of the author. Null when not provided.',
2957
- example: 'Jane'
2958
- },
2959
- author_last_name: {
2960
- type: 'string',
2961
- nullable: true,
2962
- description: 'Last name of the author. Null when not provided.',
2963
- example: 'Doe'
2964
- },
2965
- attachments: {
2966
- type: 'array',
2967
- items: {
2968
- type: 'object',
2969
- properties: {
2970
- id: {
2971
- type: 'string',
2972
- description: 'Unique identifier of the attachment (Mongo ObjectId).',
2973
- example: '60c72b2f9f1b2c001f8e4d3c'
2974
- },
2975
- filename: {
2976
- type: 'string',
2977
- description: 'Original filename as uploaded.',
2978
- example: 'debug.log'
2979
- },
2980
- content_type: {
2981
- type: 'string',
2982
- description: 'MIME content type of the attachment.',
2983
- example: 'text/plain'
2984
- },
2985
- size: {
2986
- type: 'integer',
2987
- description: 'Size of the attachment in bytes.',
2988
- example: 12345
2989
- }
2990
- },
2991
- required: [
2992
- 'id',
2993
- 'filename',
2994
- 'content_type',
2995
- 'size'
2996
- ],
2997
- additionalProperties: false
2998
- },
2999
- description: 'Attachments associated with this message.',
3000
- example: []
3001
- },
3002
- date_created: {
3003
- type: 'string',
3004
- format: 'date-time',
3005
- description: 'Creation date of the message. ISO 8601 UTC.',
3006
- example: '2026-05-11T16:08:14.338Z'
3007
- }
3008
- },
3009
- required: [
3010
- 'id',
3011
- 'type',
3012
- 'body',
3013
- 'date_created'
3014
- ],
3015
- additionalProperties: false
3016
- },
3017
- description: 'Messages on the ticket in chronological order. Internal notes are excluded. Returned by the detail endpoint only.'
3018
- }
3019
- },
3020
- required: [
3021
- 'id',
3022
- 'status',
3023
- 'category',
3024
- 'summary',
3025
- 'date_created',
3026
- 'date_updated'
3027
- ],
3028
- additionalProperties: false
3029
- },
3030
- description: 'Tickets for the organization, ordered newest first. Messages are omitted from list responses.'
3031
- }
3032
- },
3033
- required: [
3034
- 'items'
3035
- ],
3036
- additionalProperties: false
3037
- };
3038
3241
  export const TicketMessageInputSchema = {
3039
3242
  type: 'object',
3040
3243
  properties: {
@@ -3076,11 +3279,13 @@ export const TicketMessageSchema = {
3076
3279
  },
3077
3280
  author_first_name: {
3078
3281
  type: 'string',
3282
+ nullable: true,
3079
3283
  description: 'First name of the author. Null when not provided.',
3080
3284
  example: 'Jane'
3081
3285
  },
3082
3286
  author_last_name: {
3083
3287
  type: 'string',
3288
+ nullable: true,
3084
3289
  description: 'Last name of the author. Null when not provided.',
3085
3290
  example: 'Doe'
3086
3291
  },
@@ -3172,6 +3377,7 @@ export const TicketSchema = {
3172
3377
  closed_at: {
3173
3378
  type: 'string',
3174
3379
  format: 'date-time',
3380
+ nullable: true,
3175
3381
  description: 'Closure timestamp. Null while the ticket is open.',
3176
3382
  example: '2026-05-18T16:08:14.338Z'
3177
3383
  },
@@ -3396,12 +3602,21 @@ export const UsageFacetsSchema = {
3396
3602
  product: {
3397
3603
  type: 'array',
3398
3604
  items: {
3399
- 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
+ ]
3400
3615
  },
3401
3616
  description: 'List of unique products',
3402
3617
  example: [
3403
- 'cfke_controlplane',
3404
- 'cfke_connected_nodes'
3618
+ 'cfke_controlplane_pro',
3619
+ 'cfke_connected_nodes_pro'
3405
3620
  ]
3406
3621
  }
3407
3622
  },
@@ -3428,7 +3643,16 @@ export const UsageResponseSchema = {
3428
3643
  product: {
3429
3644
  type: 'string',
3430
3645
  description: 'The product the usage is associated with',
3431
- 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
+ ]
3432
3656
  },
3433
3657
  value: {
3434
3658
  type: 'number',
@@ -3476,12 +3700,21 @@ export const UsageResponseSchema = {
3476
3700
  product: {
3477
3701
  type: 'array',
3478
3702
  items: {
3479
- 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
+ ]
3480
3713
  },
3481
3714
  description: 'List of unique products',
3482
3715
  example: [
3483
- 'cfke_controlplane',
3484
- 'cfke_connected_nodes'
3716
+ 'cfke_controlplane_pro',
3717
+ 'cfke_connected_nodes_pro'
3485
3718
  ]
3486
3719
  }
3487
3720
  },
@@ -3511,7 +3744,16 @@ export const UsageSchema = {
3511
3744
  product: {
3512
3745
  type: 'string',
3513
3746
  description: 'The product the usage is associated with',
3514
- 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
+ ]
3515
3757
  },
3516
3758
  value: {
3517
3759
  type: 'number',