@cloudfleet/sdk 0.0.1-aca000f → 0.0.1-af2f3f9

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',
@@ -513,6 +572,11 @@ export const ClusterJoinInformationSchema = {
513
572
  description: 'Cluster DNS IP address. This is the IP address of the kube-dns service in the cluster.',
514
573
  example: '10.96.0.10'
515
574
  },
575
+ pod_cidr: {
576
+ type: 'string',
577
+ description: 'Pod CIDR for the cluster. Used to configure iptables rules on nodes to prevent Tailscale routing loops.',
578
+ example: '10.244.0.0/16'
579
+ },
516
580
  auth_key: {
517
581
  type: 'string',
518
582
  description: 'Authentication key for the cluster.',
@@ -588,6 +652,7 @@ export const ClusterJoinInformationSchema = {
588
652
  'certificate_authority',
589
653
  'endpoint',
590
654
  'cluster_dns',
655
+ 'pod_cidr',
591
656
  'auth_key',
592
657
  'bootstrap_token',
593
658
  'versions',
@@ -609,24 +674,123 @@ export const ClusterSchema = {
609
674
  tier: {
610
675
  type: 'string',
611
676
  description: 'Tier of the cluster.',
677
+ default: 'basic',
612
678
  example: 'pro',
613
679
  enum: [
614
680
  'basic',
615
- 'pro'
681
+ 'pro',
682
+ 'enterprise'
616
683
  ]
617
684
  },
618
- region: {
685
+ version_channel: {
619
686
  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',
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',
623
697
  enum: [
624
- 'staging-1a',
625
- 'northamerica-central-1',
626
- 'europe-central-1a',
627
- 'northamerica-central-1a'
698
+ 'rapid',
699
+ 'stable',
700
+ 'extended'
628
701
  ]
629
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
+ },
630
794
  id: {
631
795
  type: 'string',
632
796
  format: 'uuid',
@@ -635,16 +799,13 @@ export const ClusterSchema = {
635
799
  },
636
800
  status: {
637
801
  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',
802
+ description: 'Status of the cluster.',
803
+ example: 'deployed',
640
804
  enum: [
641
- 'active',
642
- 'disabled',
643
- 'deleted',
644
805
  'creating',
645
806
  'deployed',
646
- 'failed',
647
- 'updating'
807
+ 'updating',
808
+ 'disabled'
648
809
  ]
649
810
  },
650
811
  endpoint: {
@@ -652,8 +813,8 @@ export const ClusterSchema = {
652
813
  {
653
814
  type: 'string',
654
815
  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'
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'
657
818
  },
658
819
  {
659
820
  type: 'string',
@@ -668,7 +829,7 @@ export const ClusterSchema = {
668
829
  {
669
830
  type: 'string',
670
831
  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.',
832
+ description: 'Deprecated alias of `endpoint`; retained for backward compatibility.',
672
833
  example: 'https://2ae6557c-c61f-49c6-b4c1-a65473470a03.staging.cfke.io'
673
834
  },
674
835
  {
@@ -703,21 +864,22 @@ export const ClusterSchema = {
703
864
  type: 'boolean',
704
865
  description: 'Indicates if the cluster is ready to be used.',
705
866
  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
867
  }
713
868
  },
714
869
  required: [
715
870
  'name',
716
871
  'tier',
872
+ 'version_channel',
873
+ 'release_channel',
874
+ 'features',
875
+ 'region',
876
+ 'networking',
717
877
  'id',
718
- 'status'
878
+ 'status',
879
+ 'ready'
719
880
  ],
720
- 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.'
721
883
  };
722
884
  export const ClusterUpdateInputSchema = {
723
885
  type: 'object',
@@ -733,23 +895,74 @@ export const ClusterUpdateInputSchema = {
733
895
  tier: {
734
896
  type: 'string',
735
897
  description: 'Tier of the cluster.',
898
+ default: 'basic',
736
899
  example: 'pro',
737
900
  enum: [
738
901
  'basic',
739
- 'pro'
902
+ 'pro',
903
+ 'enterprise'
740
904
  ]
741
905
  },
742
906
  version_channel: {
743
907
  type: 'string',
744
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-]+)*))?$',
745
909
  description: 'Version of the kubernetes cluster.',
910
+ default: '1.x.x-cfke.x',
746
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
+ }
747
959
  }
748
960
  },
749
961
  required: [
750
- 'tier'
962
+ 'name'
751
963
  ],
752
- 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.'
753
966
  };
754
967
  export const FleetCreateInputSchema = {
755
968
  type: 'object',
@@ -795,8 +1008,8 @@ export const FleetCreateInputSchema = {
795
1008
  type: 'string',
796
1009
  maxLength: 64,
797
1010
  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.'
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.'
800
1013
  }
801
1014
  },
802
1015
  required: [
@@ -1021,7 +1234,8 @@ export const FleetCreateInputSchema = {
1021
1234
  'z3'
1022
1235
  ]
1023
1236
  },
1024
- description: 'Allowed values for `cfke.io/instance-family`.'
1237
+ description: 'Allowed values for `cfke.io/instance-family`.',
1238
+ default: []
1025
1239
  },
1026
1240
  'topology.kubernetes.io/region': {
1027
1241
  type: 'array',
@@ -1094,15 +1308,27 @@ export const FleetCreateInputSchema = {
1094
1308
  'us-west4'
1095
1309
  ]
1096
1310
  },
1097
- description: 'Allowed values for `topology.kubernetes.io/region`.'
1311
+ description: 'Allowed values for `topology.kubernetes.io/region`.',
1312
+ default: []
1098
1313
  }
1099
1314
  },
1100
1315
  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.'
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
+ }
1102
1328
  },
1103
1329
  scalingProfile: {
1104
1330
  type: 'string',
1105
- 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`).',
1106
1332
  default: 'conservative',
1107
1333
  example: 'conservative',
1108
1334
  enum: [
@@ -1122,7 +1348,8 @@ export const FleetCreateInputSchema = {
1122
1348
  required: [
1123
1349
  'id'
1124
1350
  ],
1125
- 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.'
1126
1353
  };
1127
1354
  export const FleetSchema = {
1128
1355
  type: 'object',
@@ -1392,7 +1619,8 @@ export const FleetSchema = {
1392
1619
  'z3'
1393
1620
  ]
1394
1621
  },
1395
- description: 'Allowed values for `cfke.io/instance-family`.'
1622
+ description: 'Allowed values for `cfke.io/instance-family`.',
1623
+ default: []
1396
1624
  },
1397
1625
  'topology.kubernetes.io/region': {
1398
1626
  type: 'array',
@@ -1465,15 +1693,31 @@ export const FleetSchema = {
1465
1693
  'us-west4'
1466
1694
  ]
1467
1695
  },
1468
- description: 'Allowed values for `topology.kubernetes.io/region`.'
1696
+ description: 'Allowed values for `topology.kubernetes.io/region`.',
1697
+ default: []
1469
1698
  }
1470
1699
  },
1700
+ required: [
1701
+ 'karpenter.sh/capacity-type',
1702
+ 'kubernetes.io/arch'
1703
+ ],
1471
1704
  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.'
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
+ }
1473
1717
  },
1474
1718
  scalingProfile: {
1475
1719
  type: 'string',
1476
- 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`).',
1477
1721
  default: 'conservative',
1478
1722
  example: 'conservative',
1479
1723
  enum: [
@@ -1488,13 +1732,38 @@ export const FleetSchema = {
1488
1732
  pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
1489
1733
  description: 'Unique identifier of the kubernetes fleet.',
1490
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'
1491
1755
  }
1492
1756
  },
1493
1757
  required: [
1758
+ 'constraints',
1494
1759
  'scalingProfile',
1495
- 'id'
1760
+ 'id',
1761
+ 'ready',
1762
+ 'created_at',
1763
+ 'updated_at'
1496
1764
  ],
1497
- 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.'
1498
1767
  };
1499
1768
  export const FleetUpdateInputSchema = {
1500
1769
  type: 'object',
@@ -1540,8 +1809,8 @@ export const FleetUpdateInputSchema = {
1540
1809
  type: 'string',
1541
1810
  maxLength: 64,
1542
1811
  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.'
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.'
1545
1814
  }
1546
1815
  },
1547
1816
  required: [
@@ -1580,7 +1849,11 @@ export const FleetUpdateInputSchema = {
1580
1849
  ]
1581
1850
  },
1582
1851
  minItems: 1,
1583
- 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
+ ]
1584
1857
  },
1585
1858
  'kubernetes.io/arch': {
1586
1859
  type: 'array',
@@ -1592,7 +1865,10 @@ export const FleetUpdateInputSchema = {
1592
1865
  ]
1593
1866
  },
1594
1867
  minItems: 1,
1595
- description: 'Allowed values for `kubernetes.io/arch`.'
1868
+ description: 'Allowed values for `kubernetes.io/arch`.',
1869
+ default: [
1870
+ 'amd64'
1871
+ ]
1596
1872
  },
1597
1873
  'cfke.io/instance-family': {
1598
1874
  type: 'array',
@@ -1759,7 +2035,8 @@ export const FleetUpdateInputSchema = {
1759
2035
  'z3'
1760
2036
  ]
1761
2037
  },
1762
- description: 'Allowed values for `cfke.io/instance-family`.'
2038
+ description: 'Allowed values for `cfke.io/instance-family`.',
2039
+ default: []
1763
2040
  },
1764
2041
  'topology.kubernetes.io/region': {
1765
2042
  type: 'array',
@@ -1832,15 +2109,28 @@ export const FleetUpdateInputSchema = {
1832
2109
  'us-west4'
1833
2110
  ]
1834
2111
  },
1835
- description: 'Allowed values for `topology.kubernetes.io/region`.'
2112
+ description: 'Allowed values for `topology.kubernetes.io/region`.',
2113
+ default: []
1836
2114
  }
1837
2115
  },
1838
2116
  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.'
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
+ }
1840
2129
  },
1841
2130
  scalingProfile: {
1842
2131
  type: 'string',
1843
- 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',
1844
2134
  example: 'conservative',
1845
2135
  enum: [
1846
2136
  'aggressive',
@@ -1848,8 +2138,31 @@ export const FleetUpdateInputSchema = {
1848
2138
  ]
1849
2139
  }
1850
2140
  },
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.'
2143
+ };
2144
+ export const InviteCreateInputSchema = {
2145
+ type: 'object',
2146
+ properties: {
2147
+ email: {
2148
+ type: 'string',
2149
+ format: 'email',
2150
+ description: 'Email address of the user to invite.',
2151
+ example: 'email@example.com'
2152
+ },
2153
+ role: {
2154
+ type: 'string',
2155
+ description: 'Role the invited user will be assigned on redemption. Can be \'Administrator\' or \'User\'.',
2156
+ default: 'User',
2157
+ example: 'User',
2158
+ enum: [
2159
+ 'Administrator',
2160
+ 'User'
2161
+ ]
2162
+ }
2163
+ },
1851
2164
  required: [
1852
- 'scalingProfile'
2165
+ 'email'
1853
2166
  ],
1854
2167
  additionalProperties: false
1855
2168
  };
@@ -1883,6 +2196,16 @@ export const InviteSchema = {
1883
2196
  type: 'string',
1884
2197
  description: 'Generated unique invite code.',
1885
2198
  example: '7kUZnH7nnKUFfvc4NK2KQF'
2199
+ },
2200
+ role: {
2201
+ type: 'string',
2202
+ description: 'Role the invited user will be assigned on redemption. Can be \'Administrator\' or \'User\'.',
2203
+ default: 'User',
2204
+ example: 'User',
2205
+ enum: [
2206
+ 'Administrator',
2207
+ 'User'
2208
+ ]
1886
2209
  }
1887
2210
  },
1888
2211
  required: [
@@ -2154,6 +2477,20 @@ export const OrganizationCreateInputSchema = {
2154
2477
  ],
2155
2478
  additionalProperties: false
2156
2479
  };
2480
+ export const OrganizationCreateOutputSchema = {
2481
+ type: 'object',
2482
+ properties: {
2483
+ id: {
2484
+ type: 'string',
2485
+ description: 'Unique identifier of the newly created organization. Generated by the API and safe to use for client-side tracking immediately.',
2486
+ example: 'organization-id'
2487
+ }
2488
+ },
2489
+ required: [
2490
+ 'id'
2491
+ ],
2492
+ additionalProperties: false
2493
+ };
2157
2494
  export const OrganizationSchema = {
2158
2495
  type: 'object',
2159
2496
  properties: {
@@ -2210,6 +2547,17 @@ export const OrganizationSchema = {
2210
2547
  description: 'Available number of Pro clusters that can be created.',
2211
2548
  example: 999
2212
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
+ },
2213
2561
  fleets_max: {
2214
2562
  type: 'integer',
2215
2563
  minimum: 0,
@@ -2229,7 +2577,7 @@ export const OrganizationSchema = {
2229
2577
  type: 'array',
2230
2578
  items: {
2231
2579
  type: 'string',
2232
- example: 'northamerica-central-1'
2580
+ example: 'northamerica-central-1a'
2233
2581
  },
2234
2582
  minItems: 1,
2235
2583
  description: 'List of Cloudfleet control plane regions available for the organization.'
@@ -2271,6 +2619,8 @@ export const OrganizationSchema = {
2271
2619
  'basic_clusters_available',
2272
2620
  'pro_clusters_max',
2273
2621
  'pro_clusters_available',
2622
+ 'enterprise_clusters_max',
2623
+ 'enterprise_clusters_available',
2274
2624
  'fleets_max',
2275
2625
  'cluster_tiers',
2276
2626
  'regions',
@@ -2315,28 +2665,23 @@ export const PaymentMethodSchema = {
2315
2665
  properties: {
2316
2666
  id: {
2317
2667
  type: 'string',
2318
- format: 'uuid',
2319
- description: 'Unique identifier of the organization. UUID v4 string in canonical form.',
2320
- example: 'e94d30ec-a2dd-4dcb-832c-ac2be144ba91'
2321
- },
2322
- setup: {
2323
- type: 'boolean',
2324
- description: 'Whether organization payment method was set up and ready to use for payments.',
2325
- example: true
2668
+ description: 'Payment method identifier. Stripe payment method id for cards/SEPA; the constant `bank_transfer` for the invoice/bank-transfer method. Used to set as default or delete the payment method.',
2669
+ example: 'pm_1MtwBwLkdIwHu7ix28a3tqPa'
2326
2670
  },
2327
2671
  type: {
2328
2672
  type: 'string',
2329
- nullable: true,
2330
- description: 'Payment method type type. Only `card` payments supported at the moment.',
2673
+ description: 'Payment method type. `card`, `sepa_debit` for SEPA Direct Debit (business accounts only), or `bank_transfer` for paying invoices by bank transfer.',
2331
2674
  example: 'card',
2332
2675
  enum: [
2333
- 'card'
2676
+ 'card',
2677
+ 'sepa_debit',
2678
+ 'bank_transfer'
2334
2679
  ]
2335
2680
  },
2336
2681
  last4: {
2337
2682
  type: 'string',
2338
2683
  nullable: true,
2339
- description: 'Last 4 digits of the payment card number.',
2684
+ description: 'Last 4 digits of the payment card number, of the bank account (IBAN) for SEPA Direct Debit, or of the destination IBAN for bank transfer.',
2340
2685
  example: '4242'
2341
2686
  },
2342
2687
  exp_month: {
@@ -2344,42 +2689,56 @@ export const PaymentMethodSchema = {
2344
2689
  minimum: 1,
2345
2690
  maximum: 12,
2346
2691
  nullable: true,
2347
- description: 'Two-digit number representing the card\'s expiration month.',
2348
- example: '12'
2692
+ description: 'Two-digit number representing the card\'s expiration month. Null for SEPA Direct Debit and bank transfer.',
2693
+ example: 12
2349
2694
  },
2350
2695
  exp_year: {
2351
2696
  type: 'integer',
2352
- minimum: 2024,
2353
2697
  nullable: true,
2354
- description: 'Four-digit number representing the card\'s expiration year.',
2355
- example: '2028'
2698
+ description: 'Four-digit number representing the card\'s expiration year. May be in the past for an expired card still on file. Null for SEPA Direct Debit and bank transfer.',
2699
+ example: 2028
2356
2700
  },
2357
2701
  brand: {
2358
2702
  type: 'string',
2359
2703
  nullable: true,
2360
- description: 'Payment card brand. Can be `amex`, `diners`, `discover`, `eftpos_au`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown`.',
2361
- example: 'visa',
2362
- enum: [
2363
- 'amex',
2364
- 'diners',
2365
- 'discover',
2366
- 'eftpos_au',
2367
- 'jcb',
2368
- 'mastercard',
2369
- 'unionpay',
2370
- 'visa',
2371
- 'unknown'
2372
- ]
2704
+ description: 'Payment card brand as reported by Stripe, e.g. `visa`, `mastercard`, `amex`, `cartes_bancaires`, or `unknown`. Null for SEPA Direct Debit and bank transfer.',
2705
+ example: 'visa'
2706
+ },
2707
+ iban: {
2708
+ type: 'string',
2709
+ nullable: true,
2710
+ description: 'Full destination IBAN to send bank transfers to. Set only for `bank_transfer`; null otherwise. This is Cloudfleet\'s virtual receiving account, shown in full so the customer can pay into it.',
2711
+ example: 'DE11243015658023127510'
2712
+ },
2713
+ bic: {
2714
+ type: 'string',
2715
+ nullable: true,
2716
+ description: 'BIC/SWIFT of the destination bank for bank transfers. Set only for `bank_transfer`; null otherwise.',
2717
+ example: 'SOGEDEFFXXX'
2718
+ },
2719
+ account_holder_name: {
2720
+ type: 'string',
2721
+ nullable: true,
2722
+ description: 'Account holder name of the destination bank account for bank transfers. Set only for `bank_transfer`; null otherwise.',
2723
+ example: 'Cloudfleet GmbH'
2724
+ },
2725
+ is_default: {
2726
+ type: 'boolean',
2727
+ description: 'Whether this payment method is the default used for invoices and active subscriptions. Always false for `bank_transfer` (it cannot be a Stripe default payment method).',
2728
+ example: true
2373
2729
  }
2374
2730
  },
2375
2731
  required: [
2376
2732
  'id',
2377
- 'setup',
2378
2733
  'type',
2379
2734
  'last4',
2380
2735
  'exp_month',
2381
2736
  'exp_year',
2382
- 'brand'
2737
+ 'brand',
2738
+ 'iban',
2739
+ 'bic',
2740
+ 'account_holder_name',
2741
+ 'is_default'
2383
2742
  ],
2384
2743
  additionalProperties: false
2385
2744
  };
@@ -2408,6 +2767,17 @@ export const PlatformQuotaSchema = {
2408
2767
  description: 'Available number of Pro clusters that can be created.',
2409
2768
  example: 999
2410
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
+ },
2411
2781
  fleets_max: {
2412
2782
  type: 'integer',
2413
2783
  minimum: 0,
@@ -2427,7 +2797,7 @@ export const PlatformQuotaSchema = {
2427
2797
  type: 'array',
2428
2798
  items: {
2429
2799
  type: 'string',
2430
- example: 'northamerica-central-1'
2800
+ example: 'northamerica-central-1a'
2431
2801
  },
2432
2802
  minItems: 1,
2433
2803
  description: 'List of Cloudfleet control plane regions available for the organization.'
@@ -2469,6 +2839,8 @@ export const PlatformQuotaSchema = {
2469
2839
  'basic_clusters_available',
2470
2840
  'pro_clusters_max',
2471
2841
  'pro_clusters_available',
2842
+ 'enterprise_clusters_max',
2843
+ 'enterprise_clusters_available',
2472
2844
  'fleets_max',
2473
2845
  'cluster_tiers',
2474
2846
  'regions',
@@ -3516,24 +3888,6 @@ export const UserCreateInputSchema = {
3516
3888
  type: 'string',
3517
3889
  minLength: 8,
3518
3890
  description: 'User password. Must be at least 8 characters long.'
3519
- },
3520
- status: {
3521
- type: 'string',
3522
- description: 'Status of the user. Can be `active` or `inactive`. Inactive users cannot log in or manage organization resources.',
3523
- example: 'active',
3524
- enum: [
3525
- 'active',
3526
- 'inactive'
3527
- ]
3528
- },
3529
- role: {
3530
- type: 'string',
3531
- description: 'User role. Can be \'Administrator\', \'User\'.',
3532
- example: 'User',
3533
- enum: [
3534
- 'Administrator',
3535
- 'User'
3536
- ]
3537
3891
  }
3538
3892
  },
3539
3893
  required: [