@cloudfleet/sdk 0.0.1-bbca6e3 → 0.0.1-bc8a6a1

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: {
@@ -440,31 +489,118 @@ export const ClusterCreateInputSchema = {
440
489
  tier: {
441
490
  type: 'string',
442
491
  description: 'Tier of the cluster.',
492
+ default: 'basic',
443
493
  example: 'pro',
444
494
  enum: [
445
495
  'basic',
446
- 'pro'
496
+ 'pro',
497
+ 'enterprise'
447
498
  ]
448
499
  },
449
- region: {
450
- type: 'string',
451
- description: 'Cloudfleet control plane region. This field can not be updated after creation.',
452
- example: 'europe-central-1a'
453
- },
454
500
  version_channel: {
455
501
  type: 'string',
456
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-]+)*))?$',
457
503
  description: 'Version of the kubernetes cluster.',
458
504
  default: '1.x.x-cfke.x',
459
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',
512
+ enum: [
513
+ 'rapid',
514
+ 'stable',
515
+ 'extended'
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
+ }
460
596
  }
461
597
  },
462
598
  required: [
463
599
  'name',
464
- 'tier',
465
600
  'region'
466
601
  ],
467
- 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.'
468
604
  };
469
605
  export const ClusterJoinInformationSchema = {
470
606
  type: 'object',
@@ -495,6 +631,11 @@ export const ClusterJoinInformationSchema = {
495
631
  description: 'Authentication key for the cluster.',
496
632
  example: 'tskey-auth-kBV8wr1dk911CNTRL-...'
497
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
+ },
498
639
  bootstrap_token: {
499
640
  type: 'string',
500
641
  description: 'Bootstrap token for the cluster.',
@@ -567,6 +708,7 @@ export const ClusterJoinInformationSchema = {
567
708
  'cluster_dns',
568
709
  'pod_cidr',
569
710
  'auth_key',
711
+ 'login_server',
570
712
  'bootstrap_token',
571
713
  'versions',
572
714
  'third_party_api_access_config'
@@ -587,17 +729,123 @@ export const ClusterSchema = {
587
729
  tier: {
588
730
  type: 'string',
589
731
  description: 'Tier of the cluster.',
732
+ default: 'basic',
590
733
  example: 'pro',
591
734
  enum: [
592
735
  'basic',
593
- 'pro'
736
+ 'pro',
737
+ 'enterprise'
594
738
  ]
595
739
  },
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: {
748
+ type: 'string',
749
+ description: 'Release channel for the cluster\'s control plane.',
750
+ default: 'rapid',
751
+ example: 'rapid',
752
+ enum: [
753
+ 'rapid',
754
+ 'stable',
755
+ 'extended'
756
+ ]
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
+ },
596
799
  region: {
597
800
  type: 'string',
598
801
  description: 'Cloudfleet control plane region. This field can not be updated after creation.',
599
802
  example: 'europe-central-1a'
600
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
+ },
601
849
  id: {
602
850
  type: 'string',
603
851
  format: 'uuid',
@@ -606,16 +854,13 @@ export const ClusterSchema = {
606
854
  },
607
855
  status: {
608
856
  type: 'string',
609
- description: 'Status of the cluster. When creating a new cluster, set to `active`. When deleting a clusters, set to `deleted`.',
610
- example: 'active',
857
+ description: 'Status of the cluster.',
858
+ example: 'deployed',
611
859
  enum: [
612
- 'active',
613
- 'disabled',
614
- 'deleted',
615
860
  'creating',
616
861
  'deployed',
617
- 'failed',
618
- 'updating'
862
+ 'updating',
863
+ 'disabled'
619
864
  ]
620
865
  },
621
866
  endpoint: {
@@ -623,8 +868,8 @@ export const ClusterSchema = {
623
868
  {
624
869
  type: 'string',
625
870
  format: 'uri',
626
- 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)',
627
- 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'
628
873
  },
629
874
  {
630
875
  type: 'string',
@@ -639,7 +884,7 @@ export const ClusterSchema = {
639
884
  {
640
885
  type: 'string',
641
886
  format: 'uri',
642
- 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.',
643
888
  example: 'https://2ae6557c-c61f-49c6-b4c1-a65473470a03.staging.cfke.io'
644
889
  },
645
890
  {
@@ -674,22 +919,22 @@ export const ClusterSchema = {
674
919
  type: 'boolean',
675
920
  description: 'Indicates if the cluster is ready to be used.',
676
921
  example: true
677
- },
678
- version_channel: {
679
- type: 'string',
680
- 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-]+)*))?$',
681
- description: 'Version of the kubernetes cluster.',
682
- example: '1.x.x-cfke.x'
683
922
  }
684
923
  },
685
924
  required: [
686
925
  'name',
687
926
  'tier',
927
+ 'version_channel',
928
+ 'release_channel',
929
+ 'features',
688
930
  'region',
931
+ 'networking',
689
932
  'id',
690
- 'status'
933
+ 'status',
934
+ 'ready'
691
935
  ],
692
- 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.'
693
938
  };
694
939
  export const ClusterUpdateInputSchema = {
695
940
  type: 'object',
@@ -705,23 +950,74 @@ export const ClusterUpdateInputSchema = {
705
950
  tier: {
706
951
  type: 'string',
707
952
  description: 'Tier of the cluster.',
953
+ default: 'basic',
708
954
  example: 'pro',
709
955
  enum: [
710
956
  'basic',
711
- 'pro'
957
+ 'pro',
958
+ 'enterprise'
712
959
  ]
713
960
  },
714
961
  version_channel: {
715
962
  type: 'string',
716
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-]+)*))?$',
717
964
  description: 'Version of the kubernetes cluster.',
965
+ default: '1.x.x-cfke.x',
718
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
+ }
719
1014
  }
720
1015
  },
721
1016
  required: [
722
- 'tier'
1017
+ 'name'
723
1018
  ],
724
- 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.'
725
1021
  };
726
1022
  export const FleetCreateInputSchema = {
727
1023
  type: 'object',
@@ -767,8 +1063,8 @@ export const FleetCreateInputSchema = {
767
1063
  type: 'string',
768
1064
  maxLength: 64,
769
1065
  minLength: 64,
770
- pattern: '^[A-Za-z0-9]+$',
771
- 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.'
772
1068
  }
773
1069
  },
774
1070
  required: [
@@ -993,7 +1289,8 @@ export const FleetCreateInputSchema = {
993
1289
  'z3'
994
1290
  ]
995
1291
  },
996
- description: 'Allowed values for `cfke.io/instance-family`.'
1292
+ description: 'Allowed values for `cfke.io/instance-family`.',
1293
+ default: []
997
1294
  },
998
1295
  'topology.kubernetes.io/region': {
999
1296
  type: 'array',
@@ -1066,15 +1363,27 @@ export const FleetCreateInputSchema = {
1066
1363
  'us-west4'
1067
1364
  ]
1068
1365
  },
1069
- description: 'Allowed values for `topology.kubernetes.io/region`.'
1366
+ description: 'Allowed values for `topology.kubernetes.io/region`.',
1367
+ default: []
1070
1368
  }
1071
1369
  },
1072
1370
  additionalProperties: false,
1073
- 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
+ }
1074
1383
  },
1075
1384
  scalingProfile: {
1076
1385
  type: 'string',
1077
- 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`).',
1078
1387
  default: 'conservative',
1079
1388
  example: 'conservative',
1080
1389
  enum: [
@@ -1094,7 +1403,8 @@ export const FleetCreateInputSchema = {
1094
1403
  required: [
1095
1404
  'id'
1096
1405
  ],
1097
- 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.'
1098
1408
  };
1099
1409
  export const FleetSchema = {
1100
1410
  type: 'object',
@@ -1364,7 +1674,8 @@ export const FleetSchema = {
1364
1674
  'z3'
1365
1675
  ]
1366
1676
  },
1367
- description: 'Allowed values for `cfke.io/instance-family`.'
1677
+ description: 'Allowed values for `cfke.io/instance-family`.',
1678
+ default: []
1368
1679
  },
1369
1680
  'topology.kubernetes.io/region': {
1370
1681
  type: 'array',
@@ -1437,15 +1748,31 @@ export const FleetSchema = {
1437
1748
  'us-west4'
1438
1749
  ]
1439
1750
  },
1440
- description: 'Allowed values for `topology.kubernetes.io/region`.'
1751
+ description: 'Allowed values for `topology.kubernetes.io/region`.',
1752
+ default: []
1441
1753
  }
1442
1754
  },
1755
+ required: [
1756
+ 'karpenter.sh/capacity-type',
1757
+ 'kubernetes.io/arch'
1758
+ ],
1443
1759
  additionalProperties: false,
1444
- 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
+ }
1445
1772
  },
1446
1773
  scalingProfile: {
1447
1774
  type: 'string',
1448
- 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`).',
1449
1776
  default: 'conservative',
1450
1777
  example: 'conservative',
1451
1778
  enum: [
@@ -1460,13 +1787,38 @@ export const FleetSchema = {
1460
1787
  pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
1461
1788
  description: 'Unique identifier of the kubernetes fleet.',
1462
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'
1463
1810
  }
1464
1811
  },
1465
1812
  required: [
1813
+ 'constraints',
1466
1814
  'scalingProfile',
1467
- 'id'
1815
+ 'id',
1816
+ 'ready',
1817
+ 'created_at',
1818
+ 'updated_at'
1468
1819
  ],
1469
- 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.'
1470
1822
  };
1471
1823
  export const FleetUpdateInputSchema = {
1472
1824
  type: 'object',
@@ -1512,8 +1864,8 @@ export const FleetUpdateInputSchema = {
1512
1864
  type: 'string',
1513
1865
  maxLength: 64,
1514
1866
  minLength: 64,
1515
- pattern: '^[A-Za-z0-9]+$',
1516
- 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.'
1517
1869
  }
1518
1870
  },
1519
1871
  required: [
@@ -1552,7 +1904,11 @@ export const FleetUpdateInputSchema = {
1552
1904
  ]
1553
1905
  },
1554
1906
  minItems: 1,
1555
- 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
+ ]
1556
1912
  },
1557
1913
  'kubernetes.io/arch': {
1558
1914
  type: 'array',
@@ -1564,7 +1920,10 @@ export const FleetUpdateInputSchema = {
1564
1920
  ]
1565
1921
  },
1566
1922
  minItems: 1,
1567
- description: 'Allowed values for `kubernetes.io/arch`.'
1923
+ description: 'Allowed values for `kubernetes.io/arch`.',
1924
+ default: [
1925
+ 'amd64'
1926
+ ]
1568
1927
  },
1569
1928
  'cfke.io/instance-family': {
1570
1929
  type: 'array',
@@ -1731,7 +2090,8 @@ export const FleetUpdateInputSchema = {
1731
2090
  'z3'
1732
2091
  ]
1733
2092
  },
1734
- description: 'Allowed values for `cfke.io/instance-family`.'
2093
+ description: 'Allowed values for `cfke.io/instance-family`.',
2094
+ default: []
1735
2095
  },
1736
2096
  'topology.kubernetes.io/region': {
1737
2097
  type: 'array',
@@ -1804,15 +2164,28 @@ export const FleetUpdateInputSchema = {
1804
2164
  'us-west4'
1805
2165
  ]
1806
2166
  },
1807
- description: 'Allowed values for `topology.kubernetes.io/region`.'
2167
+ description: 'Allowed values for `topology.kubernetes.io/region`.',
2168
+ default: []
1808
2169
  }
1809
2170
  },
1810
2171
  additionalProperties: false,
1811
- 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
+ }
1812
2184
  },
1813
2185
  scalingProfile: {
1814
2186
  type: 'string',
1815
- 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',
1816
2189
  example: 'conservative',
1817
2190
  enum: [
1818
2191
  'aggressive',
@@ -1820,10 +2193,8 @@ export const FleetUpdateInputSchema = {
1820
2193
  ]
1821
2194
  }
1822
2195
  },
1823
- required: [
1824
- 'scalingProfile'
1825
- ],
1826
- 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.'
1827
2198
  };
1828
2199
  export const InviteCreateInputSchema = {
1829
2200
  type: 'object',
@@ -2231,6 +2602,17 @@ export const OrganizationSchema = {
2231
2602
  description: 'Available number of Pro clusters that can be created.',
2232
2603
  example: 999
2233
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
+ },
2234
2616
  fleets_max: {
2235
2617
  type: 'integer',
2236
2618
  minimum: 0,
@@ -2292,6 +2674,8 @@ export const OrganizationSchema = {
2292
2674
  'basic_clusters_available',
2293
2675
  'pro_clusters_max',
2294
2676
  'pro_clusters_available',
2677
+ 'enterprise_clusters_max',
2678
+ 'enterprise_clusters_available',
2295
2679
  'fleets_max',
2296
2680
  'cluster_tiers',
2297
2681
  'regions',
@@ -2438,6 +2822,17 @@ export const PlatformQuotaSchema = {
2438
2822
  description: 'Available number of Pro clusters that can be created.',
2439
2823
  example: 999
2440
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
+ },
2441
2836
  fleets_max: {
2442
2837
  type: 'integer',
2443
2838
  minimum: 0,
@@ -2499,6 +2894,8 @@ export const PlatformQuotaSchema = {
2499
2894
  'basic_clusters_available',
2500
2895
  'pro_clusters_max',
2501
2896
  'pro_clusters_available',
2897
+ 'enterprise_clusters_max',
2898
+ 'enterprise_clusters_available',
2502
2899
  'fleets_max',
2503
2900
  'cluster_tiers',
2504
2901
  'regions',
@@ -2841,172 +3238,6 @@ export const TicketCreateInputSchema = {
2841
3238
  ],
2842
3239
  additionalProperties: false
2843
3240
  };
2844
- export const TicketListResponseSchema = {
2845
- type: 'object',
2846
- properties: {
2847
- items: {
2848
- type: 'array',
2849
- items: {
2850
- type: 'object',
2851
- properties: {
2852
- id: {
2853
- type: 'string',
2854
- description: 'Unique identifier of the ticket (Mongo ObjectId).',
2855
- example: '60c72b2f9f1b2c001f8e4d3a'
2856
- },
2857
- status: {
2858
- type: 'string',
2859
- description: 'Current state of the ticket.',
2860
- example: 'waiting_on_us',
2861
- enum: [
2862
- 'waiting_on_us',
2863
- 'waiting_on_user',
2864
- 'closed'
2865
- ]
2866
- },
2867
- category: {
2868
- type: 'string',
2869
- description: 'Ticket category.',
2870
- example: 'technical',
2871
- enum: [
2872
- 'billing',
2873
- 'technical',
2874
- 'general'
2875
- ]
2876
- },
2877
- summary: {
2878
- type: 'string',
2879
- description: 'First 128 characters of the initial message body, with markdown formatting and newlines stripped. Used for ticket list previews.',
2880
- example: 'My cluster cannot reach the registry. Logs attached.'
2881
- },
2882
- closed_at: {
2883
- type: 'string',
2884
- format: 'date-time',
2885
- nullable: true,
2886
- description: 'Closure timestamp. Null while the ticket is open.',
2887
- example: '2026-05-18T16:08:14.338Z'
2888
- },
2889
- date_created: {
2890
- type: 'string',
2891
- format: 'date-time',
2892
- description: 'Creation date of the ticket. ISO 8601 UTC.',
2893
- example: '2026-05-11T16:08:14.338Z'
2894
- },
2895
- date_updated: {
2896
- type: 'string',
2897
- format: 'date-time',
2898
- description: 'Last update date of the ticket. ISO 8601 UTC.',
2899
- example: '2026-05-11T16:08:14.338Z'
2900
- },
2901
- messages: {
2902
- type: 'array',
2903
- items: {
2904
- type: 'object',
2905
- properties: {
2906
- id: {
2907
- type: 'string',
2908
- description: 'Unique identifier of the message (Mongo ObjectId).',
2909
- example: '60c72b2f9f1b2c001f8e4d3b'
2910
- },
2911
- type: {
2912
- type: 'string',
2913
- description: 'Message type. Internal notes are filtered out of customer-facing responses.',
2914
- example: 'customer_reply',
2915
- enum: [
2916
- 'customer_reply',
2917
- 'agent_reply'
2918
- ]
2919
- },
2920
- body: {
2921
- type: 'string',
2922
- description: 'Message body in markdown.',
2923
- example: 'Thanks — that resolved it on my side.'
2924
- },
2925
- author_first_name: {
2926
- type: 'string',
2927
- nullable: true,
2928
- description: 'First name of the author. Null when not provided.',
2929
- example: 'Jane'
2930
- },
2931
- author_last_name: {
2932
- type: 'string',
2933
- nullable: true,
2934
- description: 'Last name of the author. Null when not provided.',
2935
- example: 'Doe'
2936
- },
2937
- attachments: {
2938
- type: 'array',
2939
- items: {
2940
- type: 'object',
2941
- properties: {
2942
- id: {
2943
- type: 'string',
2944
- description: 'Unique identifier of the attachment (Mongo ObjectId).',
2945
- example: '60c72b2f9f1b2c001f8e4d3c'
2946
- },
2947
- filename: {
2948
- type: 'string',
2949
- description: 'Original filename as uploaded.',
2950
- example: 'debug.log'
2951
- },
2952
- content_type: {
2953
- type: 'string',
2954
- description: 'MIME content type of the attachment.',
2955
- example: 'text/plain'
2956
- },
2957
- size: {
2958
- type: 'integer',
2959
- description: 'Size of the attachment in bytes.',
2960
- example: 12345
2961
- }
2962
- },
2963
- required: [
2964
- 'id',
2965
- 'filename',
2966
- 'content_type',
2967
- 'size'
2968
- ],
2969
- additionalProperties: false
2970
- },
2971
- description: 'Attachments associated with this message.',
2972
- example: []
2973
- },
2974
- date_created: {
2975
- type: 'string',
2976
- format: 'date-time',
2977
- description: 'Creation date of the message. ISO 8601 UTC.',
2978
- example: '2026-05-11T16:08:14.338Z'
2979
- }
2980
- },
2981
- required: [
2982
- 'id',
2983
- 'type',
2984
- 'body',
2985
- 'date_created'
2986
- ],
2987
- additionalProperties: false
2988
- },
2989
- description: 'Messages on the ticket in chronological order. Internal notes are excluded. Returned by the detail endpoint only.'
2990
- }
2991
- },
2992
- required: [
2993
- 'id',
2994
- 'status',
2995
- 'category',
2996
- 'summary',
2997
- 'date_created',
2998
- 'date_updated'
2999
- ],
3000
- additionalProperties: false
3001
- },
3002
- description: 'Tickets for the organization, ordered newest first. Messages are omitted from list responses.'
3003
- }
3004
- },
3005
- required: [
3006
- 'items'
3007
- ],
3008
- additionalProperties: false
3009
- };
3010
3241
  export const TicketMessageInputSchema = {
3011
3242
  type: 'object',
3012
3243
  properties: {
@@ -3048,11 +3279,13 @@ export const TicketMessageSchema = {
3048
3279
  },
3049
3280
  author_first_name: {
3050
3281
  type: 'string',
3282
+ nullable: true,
3051
3283
  description: 'First name of the author. Null when not provided.',
3052
3284
  example: 'Jane'
3053
3285
  },
3054
3286
  author_last_name: {
3055
3287
  type: 'string',
3288
+ nullable: true,
3056
3289
  description: 'Last name of the author. Null when not provided.',
3057
3290
  example: 'Doe'
3058
3291
  },
@@ -3144,6 +3377,7 @@ export const TicketSchema = {
3144
3377
  closed_at: {
3145
3378
  type: 'string',
3146
3379
  format: 'date-time',
3380
+ nullable: true,
3147
3381
  description: 'Closure timestamp. Null while the ticket is open.',
3148
3382
  example: '2026-05-18T16:08:14.338Z'
3149
3383
  },
@@ -3368,12 +3602,21 @@ export const UsageFacetsSchema = {
3368
3602
  product: {
3369
3603
  type: 'array',
3370
3604
  items: {
3371
- 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
+ ]
3372
3615
  },
3373
3616
  description: 'List of unique products',
3374
3617
  example: [
3375
- 'cfke_controlplane',
3376
- 'cfke_connected_nodes'
3618
+ 'cfke_controlplane_pro',
3619
+ 'cfke_connected_nodes_pro'
3377
3620
  ]
3378
3621
  }
3379
3622
  },
@@ -3400,7 +3643,16 @@ export const UsageResponseSchema = {
3400
3643
  product: {
3401
3644
  type: 'string',
3402
3645
  description: 'The product the usage is associated with',
3403
- 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
+ ]
3404
3656
  },
3405
3657
  value: {
3406
3658
  type: 'number',
@@ -3448,12 +3700,21 @@ export const UsageResponseSchema = {
3448
3700
  product: {
3449
3701
  type: 'array',
3450
3702
  items: {
3451
- 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
+ ]
3452
3713
  },
3453
3714
  description: 'List of unique products',
3454
3715
  example: [
3455
- 'cfke_controlplane',
3456
- 'cfke_connected_nodes'
3716
+ 'cfke_controlplane_pro',
3717
+ 'cfke_connected_nodes_pro'
3457
3718
  ]
3458
3719
  }
3459
3720
  },
@@ -3483,7 +3744,16 @@ export const UsageSchema = {
3483
3744
  product: {
3484
3745
  type: 'string',
3485
3746
  description: 'The product the usage is associated with',
3486
- 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
+ ]
3487
3757
  },
3488
3758
  value: {
3489
3759
  type: 'number',