@cloudfleet/sdk 0.0.1-7aa2bb2 → 0.0.1-7cc6159

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.
@@ -368,24 +368,8 @@ export const ChartSchema = {
368
368
  },
369
369
  status: {
370
370
  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
- ]
371
+ description: 'Status of the chart deployment (Flux HelmRelease Ready condition reason, e.g. InstallSucceeded, UpgradeFailed, Progressing).',
372
+ example: 'InstallSucceeded'
389
373
  },
390
374
  version_current: {
391
375
  type: 'string',
@@ -456,22 +440,12 @@ export const ClusterCreateInputSchema = {
456
440
  tier: {
457
441
  type: 'string',
458
442
  description: 'Tier of the cluster.',
443
+ default: 'basic',
459
444
  example: 'pro',
460
445
  enum: [
461
446
  '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'
447
+ 'pro',
448
+ 'enterprise'
475
449
  ]
476
450
  },
477
451
  version_channel: {
@@ -479,20 +453,105 @@ export const ClusterCreateInputSchema = {
479
453
  pattern: '^(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$',
480
454
  description: 'Version of the kubernetes cluster.',
481
455
  default: '1.x.x-cfke.x',
482
- example: '1.x.x-cfke.x',
456
+ example: '1.x.x-cfke.x'
457
+ },
458
+ release_channel: {
459
+ type: 'string',
460
+ description: 'Release channel for the cluster\'s control plane.',
461
+ default: 'rapid',
462
+ example: 'rapid',
483
463
  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'
464
+ 'rapid',
465
+ 'stable',
466
+ 'extended'
488
467
  ]
468
+ },
469
+ features: {
470
+ type: 'object',
471
+ properties: {
472
+ gpu_sharing_strategy: {
473
+ type: 'string',
474
+ description: 'GPU sharing strategy.',
475
+ default: 'none',
476
+ example: 'none',
477
+ enum: [
478
+ 'none',
479
+ 'mps',
480
+ 'time_slicing'
481
+ ]
482
+ },
483
+ gpu_max_shared_clients_per_gpu: {
484
+ type: 'integer',
485
+ minimum: 2,
486
+ maximum: 48,
487
+ description: 'Maximum number of pods that may share a single GPU.',
488
+ default: 4,
489
+ example: 10
490
+ },
491
+ cilium_socket_lb_host_namespace_only: {
492
+ type: 'boolean',
493
+ description: 'Restrict Cilium socket load-balancing to the host namespace. Required for the Tailscale operator and Istio.',
494
+ example: false
495
+ }
496
+ },
497
+ additionalProperties: false,
498
+ description: 'Cluster feature toggles.',
499
+ default: {
500
+ gpu_sharing_strategy: 'none',
501
+ gpu_max_shared_clients_per_gpu: 4,
502
+ cilium_socket_lb_host_namespace_only: false
503
+ }
504
+ },
505
+ region: {
506
+ type: 'string',
507
+ description: 'Cloudfleet control plane region. This field can not be updated after creation.',
508
+ example: 'europe-central-1a'
509
+ },
510
+ networking: {
511
+ type: 'object',
512
+ properties: {
513
+ pod_cidr: {
514
+ type: 'string',
515
+ description: 'CIDR block for pod IPs.',
516
+ default: '10.244.0.0/16'
517
+ },
518
+ service_cidr: {
519
+ type: 'string',
520
+ description: 'CIDR block for service IPs.',
521
+ default: '10.96.0.0/12'
522
+ },
523
+ dual_stack: {
524
+ type: 'boolean',
525
+ description: 'Enable IPv4+IPv6 dual-stack networking.'
526
+ },
527
+ pod_cidr_v6: {
528
+ type: 'string',
529
+ description: 'IPv6 pod CIDR. Requires dual_stack.',
530
+ default: '2001:db8:1:2::/48'
531
+ },
532
+ service_cidr_v6: {
533
+ type: 'string',
534
+ description: 'IPv6 service CIDR. Requires dual_stack.',
535
+ default: '2001:db8:1:1::/112'
536
+ }
537
+ },
538
+ additionalProperties: false,
539
+ description: 'Cluster networking configuration. Immutable after creation.',
540
+ default: {
541
+ pod_cidr: '10.244.0.0/16',
542
+ service_cidr: '10.96.0.0/12',
543
+ dual_stack: false,
544
+ pod_cidr_v6: '2001:db8:1:2::/48',
545
+ service_cidr_v6: '2001:db8:1:1::/112'
546
+ }
489
547
  }
490
548
  },
491
549
  required: [
492
550
  'name',
493
- 'tier'
551
+ 'region'
494
552
  ],
495
- additionalProperties: false
553
+ additionalProperties: false,
554
+ description: 'Mutable cluster configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
496
555
  };
497
556
  export const ClusterJoinInformationSchema = {
498
557
  type: 'object',
@@ -615,24 +674,123 @@ export const ClusterSchema = {
615
674
  tier: {
616
675
  type: 'string',
617
676
  description: 'Tier of the cluster.',
677
+ default: 'basic',
618
678
  example: 'pro',
619
679
  enum: [
620
680
  'basic',
621
- 'pro'
681
+ 'pro',
682
+ 'enterprise'
622
683
  ]
623
684
  },
624
- region: {
685
+ version_channel: {
625
686
  type: 'string',
626
- 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.',
627
- default: 'staging-1a',
628
- example: 'northamerica-central-1a',
687
+ pattern: '^(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$',
688
+ description: 'Version of the kubernetes cluster.',
689
+ default: '1.x.x-cfke.x',
690
+ example: '1.x.x-cfke.x'
691
+ },
692
+ release_channel: {
693
+ type: 'string',
694
+ description: 'Release channel for the cluster\'s control plane.',
695
+ default: 'rapid',
696
+ example: 'rapid',
629
697
  enum: [
630
- 'staging-1a',
631
- 'northamerica-central-1',
632
- 'europe-central-1a',
633
- 'northamerica-central-1a'
698
+ 'rapid',
699
+ 'stable',
700
+ 'extended'
634
701
  ]
635
702
  },
703
+ features: {
704
+ type: 'object',
705
+ properties: {
706
+ gpu_sharing_strategy: {
707
+ type: 'string',
708
+ description: 'GPU sharing strategy.',
709
+ default: 'none',
710
+ example: 'none',
711
+ enum: [
712
+ 'none',
713
+ 'mps',
714
+ 'time_slicing'
715
+ ]
716
+ },
717
+ gpu_max_shared_clients_per_gpu: {
718
+ type: 'integer',
719
+ minimum: 2,
720
+ maximum: 48,
721
+ description: 'Maximum number of pods that may share a single GPU.',
722
+ default: 4,
723
+ example: 10
724
+ },
725
+ cilium_socket_lb_host_namespace_only: {
726
+ type: 'boolean',
727
+ description: 'Restrict Cilium socket load-balancing to the host namespace. Required for the Tailscale operator and Istio.',
728
+ example: false
729
+ }
730
+ },
731
+ required: [
732
+ 'gpu_sharing_strategy',
733
+ 'gpu_max_shared_clients_per_gpu',
734
+ 'cilium_socket_lb_host_namespace_only'
735
+ ],
736
+ additionalProperties: false,
737
+ description: 'Cluster feature toggles.',
738
+ default: {
739
+ gpu_sharing_strategy: 'none',
740
+ gpu_max_shared_clients_per_gpu: 4,
741
+ cilium_socket_lb_host_namespace_only: false
742
+ }
743
+ },
744
+ region: {
745
+ type: 'string',
746
+ description: 'Cloudfleet control plane region. This field can not be updated after creation.',
747
+ example: 'europe-central-1a'
748
+ },
749
+ networking: {
750
+ type: 'object',
751
+ properties: {
752
+ pod_cidr: {
753
+ type: 'string',
754
+ description: 'CIDR block for pod IPs.',
755
+ default: '10.244.0.0/16'
756
+ },
757
+ service_cidr: {
758
+ type: 'string',
759
+ description: 'CIDR block for service IPs.',
760
+ default: '10.96.0.0/12'
761
+ },
762
+ dual_stack: {
763
+ type: 'boolean',
764
+ description: 'Enable IPv4+IPv6 dual-stack networking.'
765
+ },
766
+ pod_cidr_v6: {
767
+ type: 'string',
768
+ description: 'IPv6 pod CIDR. Requires dual_stack.',
769
+ default: '2001:db8:1:2::/48'
770
+ },
771
+ service_cidr_v6: {
772
+ type: 'string',
773
+ description: 'IPv6 service CIDR. Requires dual_stack.',
774
+ default: '2001:db8:1:1::/112'
775
+ }
776
+ },
777
+ required: [
778
+ 'pod_cidr',
779
+ 'service_cidr',
780
+ 'dual_stack',
781
+ 'pod_cidr_v6',
782
+ 'service_cidr_v6'
783
+ ],
784
+ additionalProperties: false,
785
+ description: 'Cluster networking configuration. Immutable after creation.',
786
+ default: {
787
+ pod_cidr: '10.244.0.0/16',
788
+ service_cidr: '10.96.0.0/12',
789
+ dual_stack: false,
790
+ pod_cidr_v6: '2001:db8:1:2::/48',
791
+ service_cidr_v6: '2001:db8:1:1::/112'
792
+ }
793
+ },
636
794
  id: {
637
795
  type: 'string',
638
796
  format: 'uuid',
@@ -641,16 +799,13 @@ export const ClusterSchema = {
641
799
  },
642
800
  status: {
643
801
  type: 'string',
644
- description: 'Status of the cluster. When creating a new cluster, set to `active`. When deleting a clusters, set to `deleted`.',
645
- example: 'active',
802
+ description: 'Status of the cluster.',
803
+ example: 'deployed',
646
804
  enum: [
647
- 'active',
648
- 'disabled',
649
- 'deleted',
650
805
  'creating',
651
806
  'deployed',
652
- 'failed',
653
- 'updating'
807
+ 'updating',
808
+ 'disabled'
654
809
  ]
655
810
  },
656
811
  endpoint: {
@@ -658,8 +813,8 @@ export const ClusterSchema = {
658
813
  {
659
814
  type: 'string',
660
815
  format: 'uri',
661
- 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)',
662
- example: 'https://2ae6557c-c61f-49c6-b4c1-a65473470a03.staging.cfke.cloudfleet.dev:6443'
816
+ description: 'URL signed by a public CA of the Kubernetes cluster control plane. This is the endpoint that kubectl uses to connect to the cluster.',
817
+ example: 'https://2ae6557c-c61f-49c6-b4c1-a65473470a03.staging.cfke.io'
663
818
  },
664
819
  {
665
820
  type: 'string',
@@ -674,7 +829,7 @@ export const ClusterSchema = {
674
829
  {
675
830
  type: 'string',
676
831
  format: 'uri',
677
- 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.',
832
+ description: 'Deprecated alias of `endpoint`; retained for backward compatibility.',
678
833
  example: 'https://2ae6557c-c61f-49c6-b4c1-a65473470a03.staging.cfke.io'
679
834
  },
680
835
  {
@@ -709,21 +864,22 @@ export const ClusterSchema = {
709
864
  type: 'boolean',
710
865
  description: 'Indicates if the cluster is ready to be used.',
711
866
  example: true
712
- },
713
- version_channel: {
714
- type: 'string',
715
- 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-]+)*))?$',
716
- description: 'Version of the kubernetes cluster.',
717
- example: '1.x.x-cfke.x'
718
867
  }
719
868
  },
720
869
  required: [
721
870
  'name',
722
871
  'tier',
872
+ 'version_channel',
873
+ 'release_channel',
874
+ 'features',
875
+ 'region',
876
+ 'networking',
723
877
  'id',
724
- 'status'
878
+ 'status',
879
+ 'ready'
725
880
  ],
726
- additionalProperties: false
881
+ additionalProperties: false,
882
+ description: 'Mutable cluster configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
727
883
  };
728
884
  export const ClusterUpdateInputSchema = {
729
885
  type: 'object',
@@ -739,23 +895,74 @@ export const ClusterUpdateInputSchema = {
739
895
  tier: {
740
896
  type: 'string',
741
897
  description: 'Tier of the cluster.',
898
+ default: 'basic',
742
899
  example: 'pro',
743
900
  enum: [
744
901
  'basic',
745
- 'pro'
902
+ 'pro',
903
+ 'enterprise'
746
904
  ]
747
905
  },
748
906
  version_channel: {
749
907
  type: 'string',
750
908
  pattern: '^(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$',
751
909
  description: 'Version of the kubernetes cluster.',
910
+ default: '1.x.x-cfke.x',
752
911
  example: '1.x.x-cfke.x'
912
+ },
913
+ release_channel: {
914
+ type: 'string',
915
+ description: 'Release channel for the cluster\'s control plane.',
916
+ default: 'rapid',
917
+ example: 'rapid',
918
+ enum: [
919
+ 'rapid',
920
+ 'stable',
921
+ 'extended'
922
+ ]
923
+ },
924
+ features: {
925
+ type: 'object',
926
+ properties: {
927
+ gpu_sharing_strategy: {
928
+ type: 'string',
929
+ description: 'GPU sharing strategy.',
930
+ default: 'none',
931
+ example: 'none',
932
+ enum: [
933
+ 'none',
934
+ 'mps',
935
+ 'time_slicing'
936
+ ]
937
+ },
938
+ gpu_max_shared_clients_per_gpu: {
939
+ type: 'integer',
940
+ minimum: 2,
941
+ maximum: 48,
942
+ description: 'Maximum number of pods that may share a single GPU.',
943
+ default: 4,
944
+ example: 10
945
+ },
946
+ cilium_socket_lb_host_namespace_only: {
947
+ type: 'boolean',
948
+ description: 'Restrict Cilium socket load-balancing to the host namespace. Required for the Tailscale operator and Istio.',
949
+ example: false
950
+ }
951
+ },
952
+ additionalProperties: false,
953
+ description: 'Cluster feature toggles.',
954
+ default: {
955
+ gpu_sharing_strategy: 'none',
956
+ gpu_max_shared_clients_per_gpu: 4,
957
+ cilium_socket_lb_host_namespace_only: false
958
+ }
753
959
  }
754
960
  },
755
961
  required: [
756
- 'tier'
962
+ 'name'
757
963
  ],
758
- additionalProperties: false
964
+ additionalProperties: false,
965
+ description: 'Mutable cluster configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
759
966
  };
760
967
  export const FleetCreateInputSchema = {
761
968
  type: 'object',
@@ -801,8 +1008,8 @@ export const FleetCreateInputSchema = {
801
1008
  type: 'string',
802
1009
  maxLength: 64,
803
1010
  minLength: 64,
804
- pattern: '^[A-Za-z0-9]+$',
805
- description: 'Hetzner Cloud API token with read / write access (64 alphanumeric characters). Omit this field to keep the existing value.'
1011
+ pattern: '^([A-Za-z0-9]{64}|\\*{64})$',
1012
+ description: 'Hetzner Cloud API token with read/write access (64 alphanumeric characters). Write-only: reads return a redacted placeholder, never the token. Omit the field, or send the placeholder back unchanged, to keep the existing key. Send a new value to rotate it.'
806
1013
  }
807
1014
  },
808
1015
  required: [
@@ -1027,7 +1234,8 @@ export const FleetCreateInputSchema = {
1027
1234
  'z3'
1028
1235
  ]
1029
1236
  },
1030
- description: 'Allowed values for `cfke.io/instance-family`.'
1237
+ description: 'Allowed values for `cfke.io/instance-family`.',
1238
+ default: []
1031
1239
  },
1032
1240
  'topology.kubernetes.io/region': {
1033
1241
  type: 'array',
@@ -1100,15 +1308,27 @@ export const FleetCreateInputSchema = {
1100
1308
  'us-west4'
1101
1309
  ]
1102
1310
  },
1103
- description: 'Allowed values for `topology.kubernetes.io/region`.'
1311
+ description: 'Allowed values for `topology.kubernetes.io/region`.',
1312
+ default: []
1104
1313
  }
1105
1314
  },
1106
1315
  additionalProperties: false,
1107
- 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.'
1316
+ description: 'Constraints define scheduling and provisioning requirements for the fleet. Each field restricts the values allowed for a given Kubernetes label key. Multiple constraints are ANDed together.',
1317
+ default: {
1318
+ 'karpenter.sh/capacity-type': [
1319
+ 'on-demand',
1320
+ 'spot'
1321
+ ],
1322
+ 'kubernetes.io/arch': [
1323
+ 'amd64'
1324
+ ],
1325
+ 'cfke.io/instance-family': [],
1326
+ 'topology.kubernetes.io/region': []
1327
+ }
1108
1328
  },
1109
1329
  scalingProfile: {
1110
1330
  type: 'string',
1111
- description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.',
1331
+ description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet. Full-overwrite: omit to reset to the default (`conservative`).',
1112
1332
  default: 'conservative',
1113
1333
  example: 'conservative',
1114
1334
  enum: [
@@ -1128,7 +1348,8 @@ export const FleetCreateInputSchema = {
1128
1348
  required: [
1129
1349
  'id'
1130
1350
  ],
1131
- additionalProperties: false
1351
+ additionalProperties: false,
1352
+ description: 'Mutable fleet configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
1132
1353
  };
1133
1354
  export const FleetSchema = {
1134
1355
  type: 'object',
@@ -1398,7 +1619,8 @@ export const FleetSchema = {
1398
1619
  'z3'
1399
1620
  ]
1400
1621
  },
1401
- description: 'Allowed values for `cfke.io/instance-family`.'
1622
+ description: 'Allowed values for `cfke.io/instance-family`.',
1623
+ default: []
1402
1624
  },
1403
1625
  'topology.kubernetes.io/region': {
1404
1626
  type: 'array',
@@ -1471,15 +1693,31 @@ export const FleetSchema = {
1471
1693
  'us-west4'
1472
1694
  ]
1473
1695
  },
1474
- description: 'Allowed values for `topology.kubernetes.io/region`.'
1696
+ description: 'Allowed values for `topology.kubernetes.io/region`.',
1697
+ default: []
1475
1698
  }
1476
1699
  },
1700
+ required: [
1701
+ 'karpenter.sh/capacity-type',
1702
+ 'kubernetes.io/arch'
1703
+ ],
1477
1704
  additionalProperties: false,
1478
- 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.'
1705
+ description: 'Constraints define scheduling and provisioning requirements for the fleet. Each field restricts the values allowed for a given Kubernetes label key. Multiple constraints are ANDed together.',
1706
+ default: {
1707
+ 'karpenter.sh/capacity-type': [
1708
+ 'on-demand',
1709
+ 'spot'
1710
+ ],
1711
+ 'kubernetes.io/arch': [
1712
+ 'amd64'
1713
+ ],
1714
+ 'cfke.io/instance-family': [],
1715
+ 'topology.kubernetes.io/region': []
1716
+ }
1479
1717
  },
1480
1718
  scalingProfile: {
1481
1719
  type: 'string',
1482
- description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.',
1720
+ description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet. Full-overwrite: omit to reset to the default (`conservative`).',
1483
1721
  default: 'conservative',
1484
1722
  example: 'conservative',
1485
1723
  enum: [
@@ -1494,13 +1732,38 @@ export const FleetSchema = {
1494
1732
  pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
1495
1733
  description: 'Unique identifier of the kubernetes fleet.',
1496
1734
  example: 'new-clouds-fleet'
1735
+ },
1736
+ ready: {
1737
+ type: 'boolean',
1738
+ description: 'Indicates whether the fleet configuration is healthy.',
1739
+ example: true
1740
+ },
1741
+ status_message: {
1742
+ type: 'string',
1743
+ description: 'Human-readable reason the fleet is not ready. Present only when `ready` is false.',
1744
+ example: 'Invalid provider permissions.'
1745
+ },
1746
+ created_at: {
1747
+ type: 'string',
1748
+ description: 'Creation date and time of the fleet.',
1749
+ example: '2024-09-12T09:11:27Z'
1750
+ },
1751
+ updated_at: {
1752
+ type: 'string',
1753
+ description: 'Date and time the fleet was last updated.',
1754
+ example: '2024-09-12T09:11:27Z'
1497
1755
  }
1498
1756
  },
1499
1757
  required: [
1758
+ 'constraints',
1500
1759
  'scalingProfile',
1501
- 'id'
1760
+ 'id',
1761
+ 'ready',
1762
+ 'created_at',
1763
+ 'updated_at'
1502
1764
  ],
1503
- additionalProperties: false
1765
+ additionalProperties: false,
1766
+ description: 'Mutable fleet configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
1504
1767
  };
1505
1768
  export const FleetUpdateInputSchema = {
1506
1769
  type: 'object',
@@ -1546,8 +1809,8 @@ export const FleetUpdateInputSchema = {
1546
1809
  type: 'string',
1547
1810
  maxLength: 64,
1548
1811
  minLength: 64,
1549
- pattern: '^[A-Za-z0-9]+$',
1550
- description: 'Hetzner Cloud API token with read / write access (64 alphanumeric characters). Omit this field to keep the existing value.'
1812
+ pattern: '^([A-Za-z0-9]{64}|\\*{64})$',
1813
+ description: 'Hetzner Cloud API token with read/write access (64 alphanumeric characters). Write-only: reads return a redacted placeholder, never the token. Omit the field, or send the placeholder back unchanged, to keep the existing key. Send a new value to rotate it.'
1551
1814
  }
1552
1815
  },
1553
1816
  required: [
@@ -1586,7 +1849,11 @@ export const FleetUpdateInputSchema = {
1586
1849
  ]
1587
1850
  },
1588
1851
  minItems: 1,
1589
- description: 'Allowed values for `karpenter.sh/capacity-type`.'
1852
+ description: 'Allowed values for `karpenter.sh/capacity-type`.',
1853
+ default: [
1854
+ 'on-demand',
1855
+ 'spot'
1856
+ ]
1590
1857
  },
1591
1858
  'kubernetes.io/arch': {
1592
1859
  type: 'array',
@@ -1598,7 +1865,10 @@ export const FleetUpdateInputSchema = {
1598
1865
  ]
1599
1866
  },
1600
1867
  minItems: 1,
1601
- description: 'Allowed values for `kubernetes.io/arch`.'
1868
+ description: 'Allowed values for `kubernetes.io/arch`.',
1869
+ default: [
1870
+ 'amd64'
1871
+ ]
1602
1872
  },
1603
1873
  'cfke.io/instance-family': {
1604
1874
  type: 'array',
@@ -1765,7 +2035,8 @@ export const FleetUpdateInputSchema = {
1765
2035
  'z3'
1766
2036
  ]
1767
2037
  },
1768
- description: 'Allowed values for `cfke.io/instance-family`.'
2038
+ description: 'Allowed values for `cfke.io/instance-family`.',
2039
+ default: []
1769
2040
  },
1770
2041
  'topology.kubernetes.io/region': {
1771
2042
  type: 'array',
@@ -1838,15 +2109,28 @@ export const FleetUpdateInputSchema = {
1838
2109
  'us-west4'
1839
2110
  ]
1840
2111
  },
1841
- description: 'Allowed values for `topology.kubernetes.io/region`.'
2112
+ description: 'Allowed values for `topology.kubernetes.io/region`.',
2113
+ default: []
1842
2114
  }
1843
2115
  },
1844
2116
  additionalProperties: false,
1845
- 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.'
2117
+ description: 'Constraints define scheduling and provisioning requirements for the fleet. Each field restricts the values allowed for a given Kubernetes label key. Multiple constraints are ANDed together.',
2118
+ default: {
2119
+ 'karpenter.sh/capacity-type': [
2120
+ 'on-demand',
2121
+ 'spot'
2122
+ ],
2123
+ 'kubernetes.io/arch': [
2124
+ 'amd64'
2125
+ ],
2126
+ 'cfke.io/instance-family': [],
2127
+ 'topology.kubernetes.io/region': []
2128
+ }
1846
2129
  },
1847
2130
  scalingProfile: {
1848
2131
  type: 'string',
1849
- description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.',
2132
+ description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet. Full-overwrite: omit to reset to the default (`conservative`).',
2133
+ default: 'conservative',
1850
2134
  example: 'conservative',
1851
2135
  enum: [
1852
2136
  'aggressive',
@@ -1854,10 +2138,8 @@ export const FleetUpdateInputSchema = {
1854
2138
  ]
1855
2139
  }
1856
2140
  },
1857
- required: [
1858
- 'scalingProfile'
1859
- ],
1860
- additionalProperties: false
2141
+ additionalProperties: false,
2142
+ description: 'Mutable fleet configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
1861
2143
  };
1862
2144
  export const InviteCreateInputSchema = {
1863
2145
  type: 'object',
@@ -2265,6 +2547,17 @@ export const OrganizationSchema = {
2265
2547
  description: 'Available number of Pro clusters that can be created.',
2266
2548
  example: 999
2267
2549
  },
2550
+ enterprise_clusters_max: {
2551
+ type: 'integer',
2552
+ minimum: 0,
2553
+ description: 'Maximum number of Enterprise clusters that can be created.',
2554
+ example: 999
2555
+ },
2556
+ enterprise_clusters_available: {
2557
+ type: 'integer',
2558
+ description: 'Available number of Enterprise clusters that can be created.',
2559
+ example: 999
2560
+ },
2268
2561
  fleets_max: {
2269
2562
  type: 'integer',
2270
2563
  minimum: 0,
@@ -2284,7 +2577,7 @@ export const OrganizationSchema = {
2284
2577
  type: 'array',
2285
2578
  items: {
2286
2579
  type: 'string',
2287
- example: 'northamerica-central-1'
2580
+ example: 'northamerica-central-1a'
2288
2581
  },
2289
2582
  minItems: 1,
2290
2583
  description: 'List of Cloudfleet control plane regions available for the organization.'
@@ -2326,6 +2619,8 @@ export const OrganizationSchema = {
2326
2619
  'basic_clusters_available',
2327
2620
  'pro_clusters_max',
2328
2621
  'pro_clusters_available',
2622
+ 'enterprise_clusters_max',
2623
+ 'enterprise_clusters_available',
2329
2624
  'fleets_max',
2330
2625
  'cluster_tiers',
2331
2626
  'regions',
@@ -2472,6 +2767,17 @@ export const PlatformQuotaSchema = {
2472
2767
  description: 'Available number of Pro clusters that can be created.',
2473
2768
  example: 999
2474
2769
  },
2770
+ enterprise_clusters_max: {
2771
+ type: 'integer',
2772
+ minimum: 0,
2773
+ description: 'Maximum number of Enterprise clusters that can be created.',
2774
+ example: 999
2775
+ },
2776
+ enterprise_clusters_available: {
2777
+ type: 'integer',
2778
+ description: 'Available number of Enterprise clusters that can be created.',
2779
+ example: 999
2780
+ },
2475
2781
  fleets_max: {
2476
2782
  type: 'integer',
2477
2783
  minimum: 0,
@@ -2491,7 +2797,7 @@ export const PlatformQuotaSchema = {
2491
2797
  type: 'array',
2492
2798
  items: {
2493
2799
  type: 'string',
2494
- example: 'northamerica-central-1'
2800
+ example: 'northamerica-central-1a'
2495
2801
  },
2496
2802
  minItems: 1,
2497
2803
  description: 'List of Cloudfleet control plane regions available for the organization.'
@@ -2533,6 +2839,8 @@ export const PlatformQuotaSchema = {
2533
2839
  'basic_clusters_available',
2534
2840
  'pro_clusters_max',
2535
2841
  'pro_clusters_available',
2842
+ 'enterprise_clusters_max',
2843
+ 'enterprise_clusters_available',
2536
2844
  'fleets_max',
2537
2845
  'cluster_tiers',
2538
2846
  'regions',