@cloudfleet/sdk 0.0.1-028b8fa → 0.0.1-03062e4

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,43 +440,117 @@ 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
447
  'pro'
463
448
  ]
464
449
  },
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'
475
- ]
476
- },
477
450
  version_channel: {
478
451
  type: 'string',
479
452
  pattern: '^(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$',
480
453
  description: 'Version of the kubernetes cluster.',
481
454
  default: '1.x.x-cfke.x',
482
- example: '1.x.x-cfke.x',
455
+ example: '1.x.x-cfke.x'
456
+ },
457
+ release_channel: {
458
+ type: 'string',
459
+ description: 'Release channel for the cluster\'s control plane.',
460
+ default: 'rapid',
461
+ example: 'rapid',
483
462
  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'
463
+ 'rapid',
464
+ 'stable',
465
+ 'extended'
488
466
  ]
467
+ },
468
+ features: {
469
+ type: 'object',
470
+ properties: {
471
+ gpu_sharing_strategy: {
472
+ type: 'string',
473
+ description: 'GPU sharing strategy.',
474
+ default: 'none',
475
+ example: 'none',
476
+ enum: [
477
+ 'none',
478
+ 'mps',
479
+ 'time_slicing'
480
+ ]
481
+ },
482
+ gpu_max_shared_clients_per_gpu: {
483
+ type: 'integer',
484
+ minimum: 2,
485
+ maximum: 48,
486
+ description: 'Maximum number of pods that may share a single GPU.',
487
+ default: 4,
488
+ example: 10
489
+ },
490
+ cilium_socket_lb_host_namespace_only: {
491
+ type: 'boolean',
492
+ description: 'Restrict Cilium socket load-balancing to the host namespace. Required for the Tailscale operator and Istio.',
493
+ example: false
494
+ }
495
+ },
496
+ additionalProperties: false,
497
+ description: 'Cluster feature toggles.',
498
+ default: {
499
+ gpu_sharing_strategy: 'none',
500
+ gpu_max_shared_clients_per_gpu: 4,
501
+ cilium_socket_lb_host_namespace_only: false
502
+ }
503
+ },
504
+ region: {
505
+ type: 'string',
506
+ description: 'Cloudfleet control plane region. This field can not be updated after creation.',
507
+ example: 'europe-central-1a'
508
+ },
509
+ networking: {
510
+ type: 'object',
511
+ properties: {
512
+ pod_cidr: {
513
+ type: 'string',
514
+ description: 'CIDR block for pod IPs.',
515
+ default: '10.244.0.0/16'
516
+ },
517
+ service_cidr: {
518
+ type: 'string',
519
+ description: 'CIDR block for service IPs.',
520
+ default: '10.96.0.0/12'
521
+ },
522
+ dual_stack: {
523
+ type: 'boolean',
524
+ description: 'Enable IPv4+IPv6 dual-stack networking.'
525
+ },
526
+ pod_cidr_v6: {
527
+ type: 'string',
528
+ description: 'IPv6 pod CIDR. Requires dual_stack.',
529
+ default: '2001:db8:1:2::/48'
530
+ },
531
+ service_cidr_v6: {
532
+ type: 'string',
533
+ description: 'IPv6 service CIDR. Requires dual_stack.',
534
+ default: '2001:db8:1:1::/112'
535
+ }
536
+ },
537
+ additionalProperties: false,
538
+ description: 'Cluster networking configuration. Immutable after creation.',
539
+ default: {
540
+ pod_cidr: '10.244.0.0/16',
541
+ service_cidr: '10.96.0.0/12',
542
+ dual_stack: false,
543
+ pod_cidr_v6: '2001:db8:1:2::/48',
544
+ service_cidr_v6: '2001:db8:1:1::/112'
545
+ }
489
546
  }
490
547
  },
491
548
  required: [
492
549
  'name',
493
- 'tier'
550
+ 'region'
494
551
  ],
495
- additionalProperties: false
552
+ additionalProperties: false,
553
+ description: 'Mutable cluster configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
496
554
  };
497
555
  export const ClusterJoinInformationSchema = {
498
556
  type: 'object',
@@ -513,6 +571,11 @@ export const ClusterJoinInformationSchema = {
513
571
  description: 'Cluster DNS IP address. This is the IP address of the kube-dns service in the cluster.',
514
572
  example: '10.96.0.10'
515
573
  },
574
+ pod_cidr: {
575
+ type: 'string',
576
+ description: 'Pod CIDR for the cluster. Used to configure iptables rules on nodes to prevent Tailscale routing loops.',
577
+ example: '10.244.0.0/16'
578
+ },
516
579
  auth_key: {
517
580
  type: 'string',
518
581
  description: 'Authentication key for the cluster.',
@@ -588,6 +651,7 @@ export const ClusterJoinInformationSchema = {
588
651
  'certificate_authority',
589
652
  'endpoint',
590
653
  'cluster_dns',
654
+ 'pod_cidr',
591
655
  'auth_key',
592
656
  'bootstrap_token',
593
657
  'versions',
@@ -609,24 +673,122 @@ export const ClusterSchema = {
609
673
  tier: {
610
674
  type: 'string',
611
675
  description: 'Tier of the cluster.',
676
+ default: 'basic',
612
677
  example: 'pro',
613
678
  enum: [
614
679
  'basic',
615
680
  'pro'
616
681
  ]
617
682
  },
618
- region: {
683
+ version_channel: {
619
684
  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',
685
+ pattern: '^(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$',
686
+ description: 'Version of the kubernetes cluster.',
687
+ default: '1.x.x-cfke.x',
688
+ example: '1.x.x-cfke.x'
689
+ },
690
+ release_channel: {
691
+ type: 'string',
692
+ description: 'Release channel for the cluster\'s control plane.',
693
+ default: 'rapid',
694
+ example: 'rapid',
623
695
  enum: [
624
- 'staging-1a',
625
- 'northamerica-central-1',
626
- 'europe-central-1a',
627
- 'northamerica-central-1a'
696
+ 'rapid',
697
+ 'stable',
698
+ 'extended'
628
699
  ]
629
700
  },
701
+ features: {
702
+ type: 'object',
703
+ properties: {
704
+ gpu_sharing_strategy: {
705
+ type: 'string',
706
+ description: 'GPU sharing strategy.',
707
+ default: 'none',
708
+ example: 'none',
709
+ enum: [
710
+ 'none',
711
+ 'mps',
712
+ 'time_slicing'
713
+ ]
714
+ },
715
+ gpu_max_shared_clients_per_gpu: {
716
+ type: 'integer',
717
+ minimum: 2,
718
+ maximum: 48,
719
+ description: 'Maximum number of pods that may share a single GPU.',
720
+ default: 4,
721
+ example: 10
722
+ },
723
+ cilium_socket_lb_host_namespace_only: {
724
+ type: 'boolean',
725
+ description: 'Restrict Cilium socket load-balancing to the host namespace. Required for the Tailscale operator and Istio.',
726
+ example: false
727
+ }
728
+ },
729
+ required: [
730
+ 'gpu_sharing_strategy',
731
+ 'gpu_max_shared_clients_per_gpu',
732
+ 'cilium_socket_lb_host_namespace_only'
733
+ ],
734
+ additionalProperties: false,
735
+ description: 'Cluster feature toggles.',
736
+ default: {
737
+ gpu_sharing_strategy: 'none',
738
+ gpu_max_shared_clients_per_gpu: 4,
739
+ cilium_socket_lb_host_namespace_only: false
740
+ }
741
+ },
742
+ region: {
743
+ type: 'string',
744
+ description: 'Cloudfleet control plane region. This field can not be updated after creation.',
745
+ example: 'europe-central-1a'
746
+ },
747
+ networking: {
748
+ type: 'object',
749
+ properties: {
750
+ pod_cidr: {
751
+ type: 'string',
752
+ description: 'CIDR block for pod IPs.',
753
+ default: '10.244.0.0/16'
754
+ },
755
+ service_cidr: {
756
+ type: 'string',
757
+ description: 'CIDR block for service IPs.',
758
+ default: '10.96.0.0/12'
759
+ },
760
+ dual_stack: {
761
+ type: 'boolean',
762
+ description: 'Enable IPv4+IPv6 dual-stack networking.'
763
+ },
764
+ pod_cidr_v6: {
765
+ type: 'string',
766
+ description: 'IPv6 pod CIDR. Requires dual_stack.',
767
+ default: '2001:db8:1:2::/48'
768
+ },
769
+ service_cidr_v6: {
770
+ type: 'string',
771
+ description: 'IPv6 service CIDR. Requires dual_stack.',
772
+ default: '2001:db8:1:1::/112'
773
+ }
774
+ },
775
+ required: [
776
+ 'pod_cidr',
777
+ 'service_cidr',
778
+ 'dual_stack',
779
+ 'pod_cidr_v6',
780
+ 'service_cidr_v6'
781
+ ],
782
+ additionalProperties: false,
783
+ description: 'Cluster networking configuration. Immutable after creation.',
784
+ default: {
785
+ pod_cidr: '10.244.0.0/16',
786
+ service_cidr: '10.96.0.0/12',
787
+ dual_stack: false,
788
+ pod_cidr_v6: '2001:db8:1:2::/48',
789
+ service_cidr_v6: '2001:db8:1:1::/112'
790
+ }
791
+ },
630
792
  id: {
631
793
  type: 'string',
632
794
  format: 'uuid',
@@ -635,16 +797,13 @@ export const ClusterSchema = {
635
797
  },
636
798
  status: {
637
799
  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',
800
+ description: 'Status of the cluster.',
801
+ example: 'deployed',
640
802
  enum: [
641
- 'active',
642
- 'disabled',
643
- 'deleted',
644
803
  'creating',
645
804
  'deployed',
646
- 'failed',
647
- 'updating'
805
+ 'updating',
806
+ 'disabled'
648
807
  ]
649
808
  },
650
809
  endpoint: {
@@ -652,8 +811,8 @@ export const ClusterSchema = {
652
811
  {
653
812
  type: 'string',
654
813
  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'
814
+ description: 'URL signed by a public CA of the Kubernetes cluster control plane. This is the endpoint that kubectl uses to connect to the cluster.',
815
+ example: 'https://2ae6557c-c61f-49c6-b4c1-a65473470a03.staging.cfke.io'
657
816
  },
658
817
  {
659
818
  type: 'string',
@@ -668,7 +827,7 @@ export const ClusterSchema = {
668
827
  {
669
828
  type: 'string',
670
829
  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.',
830
+ description: 'Deprecated alias of `endpoint`; retained for backward compatibility.',
672
831
  example: 'https://2ae6557c-c61f-49c6-b4c1-a65473470a03.staging.cfke.io'
673
832
  },
674
833
  {
@@ -703,21 +862,22 @@ export const ClusterSchema = {
703
862
  type: 'boolean',
704
863
  description: 'Indicates if the cluster is ready to be used.',
705
864
  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
865
  }
713
866
  },
714
867
  required: [
715
868
  'name',
716
869
  'tier',
870
+ 'version_channel',
871
+ 'release_channel',
872
+ 'features',
873
+ 'region',
874
+ 'networking',
717
875
  'id',
718
- 'status'
876
+ 'status',
877
+ 'ready'
719
878
  ],
720
- additionalProperties: false
879
+ additionalProperties: false,
880
+ description: 'Mutable cluster configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
721
881
  };
722
882
  export const ClusterUpdateInputSchema = {
723
883
  type: 'object',
@@ -733,6 +893,7 @@ export const ClusterUpdateInputSchema = {
733
893
  tier: {
734
894
  type: 'string',
735
895
  description: 'Tier of the cluster.',
896
+ default: 'basic',
736
897
  example: 'pro',
737
898
  enum: [
738
899
  'basic',
@@ -743,13 +904,62 @@ export const ClusterUpdateInputSchema = {
743
904
  type: 'string',
744
905
  pattern: '^(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$',
745
906
  description: 'Version of the kubernetes cluster.',
907
+ default: '1.x.x-cfke.x',
746
908
  example: '1.x.x-cfke.x'
909
+ },
910
+ release_channel: {
911
+ type: 'string',
912
+ description: 'Release channel for the cluster\'s control plane.',
913
+ default: 'rapid',
914
+ example: 'rapid',
915
+ enum: [
916
+ 'rapid',
917
+ 'stable',
918
+ 'extended'
919
+ ]
920
+ },
921
+ features: {
922
+ type: 'object',
923
+ properties: {
924
+ gpu_sharing_strategy: {
925
+ type: 'string',
926
+ description: 'GPU sharing strategy.',
927
+ default: 'none',
928
+ example: 'none',
929
+ enum: [
930
+ 'none',
931
+ 'mps',
932
+ 'time_slicing'
933
+ ]
934
+ },
935
+ gpu_max_shared_clients_per_gpu: {
936
+ type: 'integer',
937
+ minimum: 2,
938
+ maximum: 48,
939
+ description: 'Maximum number of pods that may share a single GPU.',
940
+ default: 4,
941
+ example: 10
942
+ },
943
+ cilium_socket_lb_host_namespace_only: {
944
+ type: 'boolean',
945
+ description: 'Restrict Cilium socket load-balancing to the host namespace. Required for the Tailscale operator and Istio.',
946
+ example: false
947
+ }
948
+ },
949
+ additionalProperties: false,
950
+ description: 'Cluster feature toggles.',
951
+ default: {
952
+ gpu_sharing_strategy: 'none',
953
+ gpu_max_shared_clients_per_gpu: 4,
954
+ cilium_socket_lb_host_namespace_only: false
955
+ }
747
956
  }
748
957
  },
749
958
  required: [
750
- 'tier'
959
+ 'name'
751
960
  ],
752
- additionalProperties: false
961
+ additionalProperties: false,
962
+ description: 'Mutable cluster configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
753
963
  };
754
964
  export const FleetCreateInputSchema = {
755
965
  type: 'object',
@@ -795,8 +1005,8 @@ export const FleetCreateInputSchema = {
795
1005
  type: 'string',
796
1006
  maxLength: 64,
797
1007
  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.'
1008
+ pattern: '^([A-Za-z0-9]{64}|\\*{64})$',
1009
+ 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
1010
  }
801
1011
  },
802
1012
  required: [
@@ -1021,7 +1231,8 @@ export const FleetCreateInputSchema = {
1021
1231
  'z3'
1022
1232
  ]
1023
1233
  },
1024
- description: 'Allowed values for `cfke.io/instance-family`.'
1234
+ description: 'Allowed values for `cfke.io/instance-family`.',
1235
+ default: []
1025
1236
  },
1026
1237
  'topology.kubernetes.io/region': {
1027
1238
  type: 'array',
@@ -1094,15 +1305,27 @@ export const FleetCreateInputSchema = {
1094
1305
  'us-west4'
1095
1306
  ]
1096
1307
  },
1097
- description: 'Allowed values for `topology.kubernetes.io/region`.'
1308
+ description: 'Allowed values for `topology.kubernetes.io/region`.',
1309
+ default: []
1098
1310
  }
1099
1311
  },
1100
1312
  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.'
1313
+ description: 'Constraints define scheduling and provisioning requirements for the fleet. Each field restricts the values allowed for a given Kubernetes label key. Multiple constraints are ANDed together.',
1314
+ default: {
1315
+ 'karpenter.sh/capacity-type': [
1316
+ 'on-demand',
1317
+ 'spot'
1318
+ ],
1319
+ 'kubernetes.io/arch': [
1320
+ 'amd64'
1321
+ ],
1322
+ 'cfke.io/instance-family': [],
1323
+ 'topology.kubernetes.io/region': []
1324
+ }
1102
1325
  },
1103
1326
  scalingProfile: {
1104
1327
  type: 'string',
1105
- description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.',
1328
+ description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet. Full-overwrite: omit to reset to the default (`conservative`).',
1106
1329
  default: 'conservative',
1107
1330
  example: 'conservative',
1108
1331
  enum: [
@@ -1122,7 +1345,8 @@ export const FleetCreateInputSchema = {
1122
1345
  required: [
1123
1346
  'id'
1124
1347
  ],
1125
- additionalProperties: false
1348
+ additionalProperties: false,
1349
+ description: 'Mutable fleet configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
1126
1350
  };
1127
1351
  export const FleetSchema = {
1128
1352
  type: 'object',
@@ -1392,7 +1616,8 @@ export const FleetSchema = {
1392
1616
  'z3'
1393
1617
  ]
1394
1618
  },
1395
- description: 'Allowed values for `cfke.io/instance-family`.'
1619
+ description: 'Allowed values for `cfke.io/instance-family`.',
1620
+ default: []
1396
1621
  },
1397
1622
  'topology.kubernetes.io/region': {
1398
1623
  type: 'array',
@@ -1465,15 +1690,31 @@ export const FleetSchema = {
1465
1690
  'us-west4'
1466
1691
  ]
1467
1692
  },
1468
- description: 'Allowed values for `topology.kubernetes.io/region`.'
1693
+ description: 'Allowed values for `topology.kubernetes.io/region`.',
1694
+ default: []
1469
1695
  }
1470
1696
  },
1697
+ required: [
1698
+ 'karpenter.sh/capacity-type',
1699
+ 'kubernetes.io/arch'
1700
+ ],
1471
1701
  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.'
1702
+ description: 'Constraints define scheduling and provisioning requirements for the fleet. Each field restricts the values allowed for a given Kubernetes label key. Multiple constraints are ANDed together.',
1703
+ default: {
1704
+ 'karpenter.sh/capacity-type': [
1705
+ 'on-demand',
1706
+ 'spot'
1707
+ ],
1708
+ 'kubernetes.io/arch': [
1709
+ 'amd64'
1710
+ ],
1711
+ 'cfke.io/instance-family': [],
1712
+ 'topology.kubernetes.io/region': []
1713
+ }
1473
1714
  },
1474
1715
  scalingProfile: {
1475
1716
  type: 'string',
1476
- description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.',
1717
+ description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet. Full-overwrite: omit to reset to the default (`conservative`).',
1477
1718
  default: 'conservative',
1478
1719
  example: 'conservative',
1479
1720
  enum: [
@@ -1488,13 +1729,38 @@ export const FleetSchema = {
1488
1729
  pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
1489
1730
  description: 'Unique identifier of the kubernetes fleet.',
1490
1731
  example: 'new-clouds-fleet'
1732
+ },
1733
+ ready: {
1734
+ type: 'boolean',
1735
+ description: 'Indicates whether the fleet configuration is healthy.',
1736
+ example: true
1737
+ },
1738
+ status_message: {
1739
+ type: 'string',
1740
+ description: 'Human-readable reason the fleet is not ready. Present only when `ready` is false.',
1741
+ example: 'Invalid provider permissions.'
1742
+ },
1743
+ created_at: {
1744
+ type: 'string',
1745
+ description: 'Creation date and time of the fleet.',
1746
+ example: '2024-09-12T09:11:27Z'
1747
+ },
1748
+ updated_at: {
1749
+ type: 'string',
1750
+ description: 'Date and time the fleet was last updated.',
1751
+ example: '2024-09-12T09:11:27Z'
1491
1752
  }
1492
1753
  },
1493
1754
  required: [
1755
+ 'constraints',
1494
1756
  'scalingProfile',
1495
- 'id'
1757
+ 'id',
1758
+ 'ready',
1759
+ 'created_at',
1760
+ 'updated_at'
1496
1761
  ],
1497
- additionalProperties: false
1762
+ additionalProperties: false,
1763
+ description: 'Mutable fleet configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
1498
1764
  };
1499
1765
  export const FleetUpdateInputSchema = {
1500
1766
  type: 'object',
@@ -1540,8 +1806,8 @@ export const FleetUpdateInputSchema = {
1540
1806
  type: 'string',
1541
1807
  maxLength: 64,
1542
1808
  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.'
1809
+ pattern: '^([A-Za-z0-9]{64}|\\*{64})$',
1810
+ 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
1811
  }
1546
1812
  },
1547
1813
  required: [
@@ -1580,7 +1846,11 @@ export const FleetUpdateInputSchema = {
1580
1846
  ]
1581
1847
  },
1582
1848
  minItems: 1,
1583
- description: 'Allowed values for `karpenter.sh/capacity-type`.'
1849
+ description: 'Allowed values for `karpenter.sh/capacity-type`.',
1850
+ default: [
1851
+ 'on-demand',
1852
+ 'spot'
1853
+ ]
1584
1854
  },
1585
1855
  'kubernetes.io/arch': {
1586
1856
  type: 'array',
@@ -1592,7 +1862,10 @@ export const FleetUpdateInputSchema = {
1592
1862
  ]
1593
1863
  },
1594
1864
  minItems: 1,
1595
- description: 'Allowed values for `kubernetes.io/arch`.'
1865
+ description: 'Allowed values for `kubernetes.io/arch`.',
1866
+ default: [
1867
+ 'amd64'
1868
+ ]
1596
1869
  },
1597
1870
  'cfke.io/instance-family': {
1598
1871
  type: 'array',
@@ -1759,7 +2032,8 @@ export const FleetUpdateInputSchema = {
1759
2032
  'z3'
1760
2033
  ]
1761
2034
  },
1762
- description: 'Allowed values for `cfke.io/instance-family`.'
2035
+ description: 'Allowed values for `cfke.io/instance-family`.',
2036
+ default: []
1763
2037
  },
1764
2038
  'topology.kubernetes.io/region': {
1765
2039
  type: 'array',
@@ -1832,15 +2106,28 @@ export const FleetUpdateInputSchema = {
1832
2106
  'us-west4'
1833
2107
  ]
1834
2108
  },
1835
- description: 'Allowed values for `topology.kubernetes.io/region`.'
2109
+ description: 'Allowed values for `topology.kubernetes.io/region`.',
2110
+ default: []
1836
2111
  }
1837
2112
  },
1838
2113
  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.'
2114
+ description: 'Constraints define scheduling and provisioning requirements for the fleet. Each field restricts the values allowed for a given Kubernetes label key. Multiple constraints are ANDed together.',
2115
+ default: {
2116
+ 'karpenter.sh/capacity-type': [
2117
+ 'on-demand',
2118
+ 'spot'
2119
+ ],
2120
+ 'kubernetes.io/arch': [
2121
+ 'amd64'
2122
+ ],
2123
+ 'cfke.io/instance-family': [],
2124
+ 'topology.kubernetes.io/region': []
2125
+ }
1840
2126
  },
1841
2127
  scalingProfile: {
1842
2128
  type: 'string',
1843
- description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.',
2129
+ description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet. Full-overwrite: omit to reset to the default (`conservative`).',
2130
+ default: 'conservative',
1844
2131
  example: 'conservative',
1845
2132
  enum: [
1846
2133
  'aggressive',
@@ -1848,8 +2135,31 @@ export const FleetUpdateInputSchema = {
1848
2135
  ]
1849
2136
  }
1850
2137
  },
2138
+ additionalProperties: false,
2139
+ description: 'Mutable fleet configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
2140
+ };
2141
+ export const InviteCreateInputSchema = {
2142
+ type: 'object',
2143
+ properties: {
2144
+ email: {
2145
+ type: 'string',
2146
+ format: 'email',
2147
+ description: 'Email address of the user to invite.',
2148
+ example: 'email@example.com'
2149
+ },
2150
+ role: {
2151
+ type: 'string',
2152
+ description: 'Role the invited user will be assigned on redemption. Can be \'Administrator\' or \'User\'.',
2153
+ default: 'User',
2154
+ example: 'User',
2155
+ enum: [
2156
+ 'Administrator',
2157
+ 'User'
2158
+ ]
2159
+ }
2160
+ },
1851
2161
  required: [
1852
- 'scalingProfile'
2162
+ 'email'
1853
2163
  ],
1854
2164
  additionalProperties: false
1855
2165
  };
@@ -1883,6 +2193,16 @@ export const InviteSchema = {
1883
2193
  type: 'string',
1884
2194
  description: 'Generated unique invite code.',
1885
2195
  example: '7kUZnH7nnKUFfvc4NK2KQF'
2196
+ },
2197
+ role: {
2198
+ type: 'string',
2199
+ description: 'Role the invited user will be assigned on redemption. Can be \'Administrator\' or \'User\'.',
2200
+ default: 'User',
2201
+ example: 'User',
2202
+ enum: [
2203
+ 'Administrator',
2204
+ 'User'
2205
+ ]
1886
2206
  }
1887
2207
  },
1888
2208
  required: [
@@ -2243,7 +2563,7 @@ export const OrganizationSchema = {
2243
2563
  type: 'array',
2244
2564
  items: {
2245
2565
  type: 'string',
2246
- example: 'northamerica-central-1'
2566
+ example: 'northamerica-central-1a'
2247
2567
  },
2248
2568
  minItems: 1,
2249
2569
  description: 'List of Cloudfleet control plane regions available for the organization.'
@@ -2450,7 +2770,7 @@ export const PlatformQuotaSchema = {
2450
2770
  type: 'array',
2451
2771
  items: {
2452
2772
  type: 'string',
2453
- example: 'northamerica-central-1'
2773
+ example: 'northamerica-central-1a'
2454
2774
  },
2455
2775
  minItems: 1,
2456
2776
  description: 'List of Cloudfleet control plane regions available for the organization.'
@@ -3539,24 +3859,6 @@ export const UserCreateInputSchema = {
3539
3859
  type: 'string',
3540
3860
  minLength: 8,
3541
3861
  description: 'User password. Must be at least 8 characters long.'
3542
- },
3543
- status: {
3544
- type: 'string',
3545
- description: 'Status of the user. Can be `active` or `inactive`. Inactive users cannot log in or manage organization resources.',
3546
- example: 'active',
3547
- enum: [
3548
- 'active',
3549
- 'inactive'
3550
- ]
3551
- },
3552
- role: {
3553
- type: 'string',
3554
- description: 'User role. Can be \'Administrator\', \'User\'.',
3555
- example: 'User',
3556
- enum: [
3557
- 'Administrator',
3558
- 'User'
3559
- ]
3560
3862
  }
3561
3863
  },
3562
3864
  required: [