@cloudfleet/sdk 0.0.1-be6a4aa → 0.0.1-c144916

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.
@@ -642,7 +642,7 @@ export const ClusterSchema = {
642
642
  {
643
643
  type: 'string',
644
644
  format: 'uri',
645
- description: 'URL of the Kubernetes cluster control plane. This is the endpoint that kubectl uses to connect to the cluster.',
645
+ 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)',
646
646
  example: 'https://2ae6557c-c61f-49c6-b4c1-a65473470a03.staging.cfke.cloudfleet.dev:6443'
647
647
  },
648
648
  {
@@ -653,6 +653,22 @@ export const ClusterSchema = {
653
653
  }
654
654
  ]
655
655
  },
656
+ endpoint_public: {
657
+ anyOf: [
658
+ {
659
+ type: 'string',
660
+ format: 'uri',
661
+ 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.',
662
+ example: 'https://2ae6557c-c61f-49c6-b4c1-a65473470a03.staging.cfke.io'
663
+ },
664
+ {
665
+ type: 'string',
666
+ enum: [
667
+ ''
668
+ ]
669
+ }
670
+ ]
671
+ },
656
672
  certificate_ca: {
657
673
  type: 'string',
658
674
  description: 'Certificate authority data for the kubernetes cluster. This is the root certificate authority for the cluster.',
@@ -732,15 +748,12 @@ export const FleetCreateInputSchema = {
732
748
  type: 'object',
733
749
  properties: {
734
750
  cpu: {
735
- type: 'number',
736
- format: 'float',
751
+ type: 'integer',
737
752
  minimum: 0,
738
- description: 'CPU limit in cores.'
753
+ maximum: 100000,
754
+ description: 'CPU limit in cores. Maximum 100,000.'
739
755
  }
740
756
  },
741
- required: [
742
- 'cpu'
743
- ],
744
757
  additionalProperties: false,
745
758
  description: 'Limits define a set of bounds for provisioning capacity.'
746
759
  },
@@ -748,16 +761,17 @@ export const FleetCreateInputSchema = {
748
761
  type: 'object',
749
762
  properties: {
750
763
  enabled: {
751
- type: 'boolean',
752
- default: true
764
+ type: 'boolean'
753
765
  },
754
766
  project: {
755
767
  type: 'string',
756
- description: 'Project GCP Project id to deploy instances into'
768
+ pattern: '^[a-z][a-z0-9-]{4,28}[a-z0-9]$',
769
+ description: 'GCP project ID to deploy instances into. 6-30 chars, lowercase letters/digits/hyphens, must start with a letter and not end with a hyphen. Omit when GCP is disabled.',
770
+ example: 'my-cloudfleet-project'
757
771
  }
758
772
  },
759
773
  required: [
760
- 'project'
774
+ 'enabled'
761
775
  ],
762
776
  additionalProperties: false
763
777
  },
@@ -765,16 +779,18 @@ export const FleetCreateInputSchema = {
765
779
  type: 'object',
766
780
  properties: {
767
781
  enabled: {
768
- type: 'boolean',
769
- default: true
782
+ type: 'boolean'
770
783
  },
771
784
  apiKey: {
772
785
  type: 'string',
773
- description: 'Hetzner Cloud API key with read / write access'
786
+ maxLength: 64,
787
+ minLength: 64,
788
+ pattern: '^[A-Za-z0-9]+$',
789
+ description: 'Hetzner Cloud API token with read / write access (64 alphanumeric characters). Omit this field to keep the existing value.'
774
790
  }
775
791
  },
776
792
  required: [
777
- 'apiKey'
793
+ 'enabled'
778
794
  ],
779
795
  additionalProperties: false
780
796
  },
@@ -782,19 +798,299 @@ export const FleetCreateInputSchema = {
782
798
  type: 'object',
783
799
  properties: {
784
800
  enabled: {
785
- type: 'boolean',
786
- default: true
801
+ type: 'boolean'
787
802
  },
788
803
  controllerRoleArn: {
789
804
  type: 'string',
790
- description: 'ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.'
805
+ pattern: '^arn:aws(-[a-z]+)*:iam::\\d{12}:role\\/[\\w+=,.@/-]+$',
806
+ description: 'AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.',
807
+ example: 'arn:aws:iam::123456789012:role/Cloudfleet'
791
808
  }
792
809
  },
793
810
  required: [
794
- 'controllerRoleArn'
811
+ 'enabled'
795
812
  ],
796
813
  additionalProperties: false
797
814
  },
815
+ constraints: {
816
+ type: 'object',
817
+ properties: {
818
+ 'karpenter.sh/capacity-type': {
819
+ type: 'array',
820
+ items: {
821
+ type: 'string',
822
+ enum: [
823
+ 'on-demand',
824
+ 'spot'
825
+ ]
826
+ },
827
+ description: 'Allowed values for `karpenter.sh/capacity-type`.'
828
+ },
829
+ 'kubernetes.io/arch': {
830
+ type: 'array',
831
+ items: {
832
+ type: 'string',
833
+ enum: [
834
+ 'amd64',
835
+ 'arm64'
836
+ ]
837
+ },
838
+ description: 'Allowed values for `kubernetes.io/arch`.'
839
+ },
840
+ 'cfke.io/instance-family': {
841
+ type: 'array',
842
+ items: {
843
+ type: 'string',
844
+ enum: [
845
+ 'a1',
846
+ 'a2',
847
+ 'a3',
848
+ 'a4',
849
+ 'c1',
850
+ 'c2',
851
+ 'c2d',
852
+ 'c3',
853
+ 'c3d',
854
+ 'c4',
855
+ 'c4a',
856
+ 'c4d',
857
+ 'c5',
858
+ 'c5a',
859
+ 'c5ad',
860
+ 'c5d',
861
+ 'c5n',
862
+ 'c6a',
863
+ 'c6g',
864
+ 'c6gd',
865
+ 'c6gn',
866
+ 'c6i',
867
+ 'c6id',
868
+ 'c6in',
869
+ 'c7a',
870
+ 'c7g',
871
+ 'c7gd',
872
+ 'c7gn',
873
+ 'c7i',
874
+ 'c7i-flex',
875
+ 'c8g',
876
+ 'c8gd',
877
+ 'cax',
878
+ 'ccx',
879
+ 'cpx',
880
+ 'cx',
881
+ 'd2',
882
+ 'd3',
883
+ 'd3en',
884
+ 'dl1',
885
+ 'dl2q',
886
+ 'e2',
887
+ 'f1',
888
+ 'f2',
889
+ 'g1',
890
+ 'g2',
891
+ 'g4ad',
892
+ 'g4dn',
893
+ 'g5',
894
+ 'g5g',
895
+ 'g6',
896
+ 'g6e',
897
+ 'gr6',
898
+ 'h1',
899
+ 'h3',
900
+ 'hpc6a',
901
+ 'hpc6id',
902
+ 'hpc7a',
903
+ 'hpc7g',
904
+ 'i2',
905
+ 'i3',
906
+ 'i3en',
907
+ 'i4g',
908
+ 'i4i',
909
+ 'i7i',
910
+ 'i7ie',
911
+ 'i8g',
912
+ 'im4gn',
913
+ 'inf1',
914
+ 'inf2',
915
+ 'is4gen',
916
+ 'm1',
917
+ 'm2',
918
+ 'm3',
919
+ 'm4',
920
+ 'm5',
921
+ 'm5a',
922
+ 'm5ad',
923
+ 'm5d',
924
+ 'm5dn',
925
+ 'm5n',
926
+ 'm5zn',
927
+ 'm6a',
928
+ 'm6g',
929
+ 'm6gd',
930
+ 'm6i',
931
+ 'm6id',
932
+ 'm6idn',
933
+ 'm6in',
934
+ 'm7a',
935
+ 'm7g',
936
+ 'm7gd',
937
+ 'm7i',
938
+ 'm7i-flex',
939
+ 'm8g',
940
+ 'm8gd',
941
+ 'n1',
942
+ 'n2',
943
+ 'n2d',
944
+ 'n4',
945
+ 'p3',
946
+ 'p3dn',
947
+ 'p4d',
948
+ 'p4de',
949
+ 'p5',
950
+ 'p5e',
951
+ 'p5en',
952
+ 'p6-b200',
953
+ 'r3',
954
+ 'r4',
955
+ 'r5',
956
+ 'r5a',
957
+ 'r5ad',
958
+ 'r5b',
959
+ 'r5d',
960
+ 'r5dn',
961
+ 'r5n',
962
+ 'r6a',
963
+ 'r6g',
964
+ 'r6gd',
965
+ 'r6i',
966
+ 'r6id',
967
+ 'r6idn',
968
+ 'r6in',
969
+ 'r7a',
970
+ 'r7g',
971
+ 'r7gd',
972
+ 'r7i',
973
+ 'r7iz',
974
+ 'r8g',
975
+ 'r8gd',
976
+ 't2',
977
+ 't2a',
978
+ 't2d',
979
+ 't3',
980
+ 't3a',
981
+ 't4g',
982
+ 'trn1',
983
+ 'trn1n',
984
+ 'u-3tb1',
985
+ 'u-6tb1',
986
+ 'u7i-12tb',
987
+ 'u7i-6tb',
988
+ 'u7i-8tb',
989
+ 'u7in-16tb',
990
+ 'u7in-24tb',
991
+ 'u7in-32tb',
992
+ 'vt1',
993
+ 'x1',
994
+ 'x1e',
995
+ 'x2gd',
996
+ 'x2idn',
997
+ 'x2iedn',
998
+ 'x2iezn',
999
+ 'x4',
1000
+ 'x8g',
1001
+ 'z1d',
1002
+ 'z3'
1003
+ ]
1004
+ },
1005
+ description: 'Allowed values for `cfke.io/instance-family`.'
1006
+ },
1007
+ 'topology.kubernetes.io/region': {
1008
+ type: 'array',
1009
+ items: {
1010
+ type: 'string',
1011
+ enum: [
1012
+ 'africa-south1',
1013
+ 'ap-northeast-1',
1014
+ 'ap-northeast-2',
1015
+ 'ap-northeast-3',
1016
+ 'ap-south-1',
1017
+ 'ap-southeast-1',
1018
+ 'ap-southeast-2',
1019
+ 'ash',
1020
+ 'asia-east1',
1021
+ 'asia-east2',
1022
+ 'asia-northeast1',
1023
+ 'asia-northeast2',
1024
+ 'asia-northeast3',
1025
+ 'asia-south1',
1026
+ 'asia-south2',
1027
+ 'asia-southeast1',
1028
+ 'asia-southeast2',
1029
+ 'australia-southeast1',
1030
+ 'australia-southeast2',
1031
+ 'ca-central-1',
1032
+ 'eu-central-1',
1033
+ 'eu-central-2',
1034
+ 'eu-north-1',
1035
+ 'eu-west-1',
1036
+ 'eu-west-2',
1037
+ 'eu-west-3',
1038
+ 'europe-central2',
1039
+ 'europe-north1',
1040
+ 'europe-southwest1',
1041
+ 'europe-west1',
1042
+ 'europe-west10',
1043
+ 'europe-west12',
1044
+ 'europe-west2',
1045
+ 'europe-west3',
1046
+ 'europe-west4',
1047
+ 'europe-west6',
1048
+ 'europe-west8',
1049
+ 'europe-west9',
1050
+ 'fsn1',
1051
+ 'hel1',
1052
+ 'hil',
1053
+ 'me-central1',
1054
+ 'me-central2',
1055
+ 'me-west1',
1056
+ 'nbg1',
1057
+ 'northamerica-northeast1',
1058
+ 'northamerica-northeast2',
1059
+ 'sa-east-1',
1060
+ 'sin',
1061
+ 'southamerica-east1',
1062
+ 'southamerica-west1',
1063
+ 'us-central1',
1064
+ 'us-east-1',
1065
+ 'us-east-2',
1066
+ 'us-east1',
1067
+ 'us-east4',
1068
+ 'us-east5',
1069
+ 'us-south1',
1070
+ 'us-west-1',
1071
+ 'us-west-2',
1072
+ 'us-west1',
1073
+ 'us-west2',
1074
+ 'us-west3',
1075
+ 'us-west4'
1076
+ ]
1077
+ },
1078
+ description: 'Allowed values for `topology.kubernetes.io/region`.'
1079
+ }
1080
+ },
1081
+ additionalProperties: false,
1082
+ 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.'
1083
+ },
1084
+ scalingProfile: {
1085
+ type: 'string',
1086
+ description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.',
1087
+ default: 'conservative',
1088
+ example: 'conservative',
1089
+ enum: [
1090
+ 'aggressive',
1091
+ 'conservative'
1092
+ ]
1093
+ },
798
1094
  id: {
799
1095
  type: 'string',
800
1096
  maxLength: 63,
@@ -816,15 +1112,12 @@ export const FleetSchema = {
816
1112
  type: 'object',
817
1113
  properties: {
818
1114
  cpu: {
819
- type: 'number',
820
- format: 'float',
1115
+ type: 'integer',
821
1116
  minimum: 0,
822
- description: 'CPU limit in cores.'
1117
+ maximum: 100000,
1118
+ description: 'CPU limit in cores. Maximum 100,000.'
823
1119
  }
824
1120
  },
825
- required: [
826
- 'cpu'
827
- ],
828
1121
  additionalProperties: false,
829
1122
  description: 'Limits define a set of bounds for provisioning capacity.'
830
1123
  },
@@ -832,16 +1125,17 @@ export const FleetSchema = {
832
1125
  type: 'object',
833
1126
  properties: {
834
1127
  enabled: {
835
- type: 'boolean',
836
- default: true
1128
+ type: 'boolean'
837
1129
  },
838
1130
  project: {
839
1131
  type: 'string',
840
- description: 'Project GCP Project id to deploy instances into'
1132
+ pattern: '^[a-z][a-z0-9-]{4,28}[a-z0-9]$',
1133
+ description: 'GCP project ID to deploy instances into. 6-30 chars, lowercase letters/digits/hyphens, must start with a letter and not end with a hyphen. Omit when GCP is disabled.',
1134
+ example: 'my-cloudfleet-project'
841
1135
  }
842
1136
  },
843
1137
  required: [
844
- 'project'
1138
+ 'enabled'
845
1139
  ],
846
1140
  additionalProperties: false
847
1141
  },
@@ -849,16 +1143,16 @@ export const FleetSchema = {
849
1143
  type: 'object',
850
1144
  properties: {
851
1145
  enabled: {
852
- type: 'boolean',
853
- default: true
1146
+ type: 'boolean'
854
1147
  },
855
1148
  apiKey: {
856
1149
  type: 'string',
857
- description: 'Hetzner Cloud API key with read / write access'
1150
+ pattern: '^\\*{64}$',
1151
+ description: 'Redacted Hetzner API token. Returned as 64 asterisks when a token is configured; omitted otherwise. The real value is never echoed by the API.'
858
1152
  }
859
1153
  },
860
1154
  required: [
861
- 'apiKey'
1155
+ 'enabled'
862
1156
  ],
863
1157
  additionalProperties: false
864
1158
  },
@@ -866,19 +1160,299 @@ export const FleetSchema = {
866
1160
  type: 'object',
867
1161
  properties: {
868
1162
  enabled: {
869
- type: 'boolean',
870
- default: true
1163
+ type: 'boolean'
871
1164
  },
872
1165
  controllerRoleArn: {
873
1166
  type: 'string',
874
- description: 'ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.'
1167
+ pattern: '^arn:aws(-[a-z]+)*:iam::\\d{12}:role\\/[\\w+=,.@/-]+$',
1168
+ description: 'AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.',
1169
+ example: 'arn:aws:iam::123456789012:role/Cloudfleet'
875
1170
  }
876
1171
  },
877
1172
  required: [
878
- 'controllerRoleArn'
1173
+ 'enabled'
879
1174
  ],
880
1175
  additionalProperties: false
881
1176
  },
1177
+ constraints: {
1178
+ type: 'object',
1179
+ properties: {
1180
+ 'karpenter.sh/capacity-type': {
1181
+ type: 'array',
1182
+ items: {
1183
+ type: 'string',
1184
+ enum: [
1185
+ 'on-demand',
1186
+ 'spot'
1187
+ ]
1188
+ },
1189
+ description: 'Allowed values for `karpenter.sh/capacity-type`.'
1190
+ },
1191
+ 'kubernetes.io/arch': {
1192
+ type: 'array',
1193
+ items: {
1194
+ type: 'string',
1195
+ enum: [
1196
+ 'amd64',
1197
+ 'arm64'
1198
+ ]
1199
+ },
1200
+ description: 'Allowed values for `kubernetes.io/arch`.'
1201
+ },
1202
+ 'cfke.io/instance-family': {
1203
+ type: 'array',
1204
+ items: {
1205
+ type: 'string',
1206
+ enum: [
1207
+ 'a1',
1208
+ 'a2',
1209
+ 'a3',
1210
+ 'a4',
1211
+ 'c1',
1212
+ 'c2',
1213
+ 'c2d',
1214
+ 'c3',
1215
+ 'c3d',
1216
+ 'c4',
1217
+ 'c4a',
1218
+ 'c4d',
1219
+ 'c5',
1220
+ 'c5a',
1221
+ 'c5ad',
1222
+ 'c5d',
1223
+ 'c5n',
1224
+ 'c6a',
1225
+ 'c6g',
1226
+ 'c6gd',
1227
+ 'c6gn',
1228
+ 'c6i',
1229
+ 'c6id',
1230
+ 'c6in',
1231
+ 'c7a',
1232
+ 'c7g',
1233
+ 'c7gd',
1234
+ 'c7gn',
1235
+ 'c7i',
1236
+ 'c7i-flex',
1237
+ 'c8g',
1238
+ 'c8gd',
1239
+ 'cax',
1240
+ 'ccx',
1241
+ 'cpx',
1242
+ 'cx',
1243
+ 'd2',
1244
+ 'd3',
1245
+ 'd3en',
1246
+ 'dl1',
1247
+ 'dl2q',
1248
+ 'e2',
1249
+ 'f1',
1250
+ 'f2',
1251
+ 'g1',
1252
+ 'g2',
1253
+ 'g4ad',
1254
+ 'g4dn',
1255
+ 'g5',
1256
+ 'g5g',
1257
+ 'g6',
1258
+ 'g6e',
1259
+ 'gr6',
1260
+ 'h1',
1261
+ 'h3',
1262
+ 'hpc6a',
1263
+ 'hpc6id',
1264
+ 'hpc7a',
1265
+ 'hpc7g',
1266
+ 'i2',
1267
+ 'i3',
1268
+ 'i3en',
1269
+ 'i4g',
1270
+ 'i4i',
1271
+ 'i7i',
1272
+ 'i7ie',
1273
+ 'i8g',
1274
+ 'im4gn',
1275
+ 'inf1',
1276
+ 'inf2',
1277
+ 'is4gen',
1278
+ 'm1',
1279
+ 'm2',
1280
+ 'm3',
1281
+ 'm4',
1282
+ 'm5',
1283
+ 'm5a',
1284
+ 'm5ad',
1285
+ 'm5d',
1286
+ 'm5dn',
1287
+ 'm5n',
1288
+ 'm5zn',
1289
+ 'm6a',
1290
+ 'm6g',
1291
+ 'm6gd',
1292
+ 'm6i',
1293
+ 'm6id',
1294
+ 'm6idn',
1295
+ 'm6in',
1296
+ 'm7a',
1297
+ 'm7g',
1298
+ 'm7gd',
1299
+ 'm7i',
1300
+ 'm7i-flex',
1301
+ 'm8g',
1302
+ 'm8gd',
1303
+ 'n1',
1304
+ 'n2',
1305
+ 'n2d',
1306
+ 'n4',
1307
+ 'p3',
1308
+ 'p3dn',
1309
+ 'p4d',
1310
+ 'p4de',
1311
+ 'p5',
1312
+ 'p5e',
1313
+ 'p5en',
1314
+ 'p6-b200',
1315
+ 'r3',
1316
+ 'r4',
1317
+ 'r5',
1318
+ 'r5a',
1319
+ 'r5ad',
1320
+ 'r5b',
1321
+ 'r5d',
1322
+ 'r5dn',
1323
+ 'r5n',
1324
+ 'r6a',
1325
+ 'r6g',
1326
+ 'r6gd',
1327
+ 'r6i',
1328
+ 'r6id',
1329
+ 'r6idn',
1330
+ 'r6in',
1331
+ 'r7a',
1332
+ 'r7g',
1333
+ 'r7gd',
1334
+ 'r7i',
1335
+ 'r7iz',
1336
+ 'r8g',
1337
+ 'r8gd',
1338
+ 't2',
1339
+ 't2a',
1340
+ 't2d',
1341
+ 't3',
1342
+ 't3a',
1343
+ 't4g',
1344
+ 'trn1',
1345
+ 'trn1n',
1346
+ 'u-3tb1',
1347
+ 'u-6tb1',
1348
+ 'u7i-12tb',
1349
+ 'u7i-6tb',
1350
+ 'u7i-8tb',
1351
+ 'u7in-16tb',
1352
+ 'u7in-24tb',
1353
+ 'u7in-32tb',
1354
+ 'vt1',
1355
+ 'x1',
1356
+ 'x1e',
1357
+ 'x2gd',
1358
+ 'x2idn',
1359
+ 'x2iedn',
1360
+ 'x2iezn',
1361
+ 'x4',
1362
+ 'x8g',
1363
+ 'z1d',
1364
+ 'z3'
1365
+ ]
1366
+ },
1367
+ description: 'Allowed values for `cfke.io/instance-family`.'
1368
+ },
1369
+ 'topology.kubernetes.io/region': {
1370
+ type: 'array',
1371
+ items: {
1372
+ type: 'string',
1373
+ enum: [
1374
+ 'africa-south1',
1375
+ 'ap-northeast-1',
1376
+ 'ap-northeast-2',
1377
+ 'ap-northeast-3',
1378
+ 'ap-south-1',
1379
+ 'ap-southeast-1',
1380
+ 'ap-southeast-2',
1381
+ 'ash',
1382
+ 'asia-east1',
1383
+ 'asia-east2',
1384
+ 'asia-northeast1',
1385
+ 'asia-northeast2',
1386
+ 'asia-northeast3',
1387
+ 'asia-south1',
1388
+ 'asia-south2',
1389
+ 'asia-southeast1',
1390
+ 'asia-southeast2',
1391
+ 'australia-southeast1',
1392
+ 'australia-southeast2',
1393
+ 'ca-central-1',
1394
+ 'eu-central-1',
1395
+ 'eu-central-2',
1396
+ 'eu-north-1',
1397
+ 'eu-west-1',
1398
+ 'eu-west-2',
1399
+ 'eu-west-3',
1400
+ 'europe-central2',
1401
+ 'europe-north1',
1402
+ 'europe-southwest1',
1403
+ 'europe-west1',
1404
+ 'europe-west10',
1405
+ 'europe-west12',
1406
+ 'europe-west2',
1407
+ 'europe-west3',
1408
+ 'europe-west4',
1409
+ 'europe-west6',
1410
+ 'europe-west8',
1411
+ 'europe-west9',
1412
+ 'fsn1',
1413
+ 'hel1',
1414
+ 'hil',
1415
+ 'me-central1',
1416
+ 'me-central2',
1417
+ 'me-west1',
1418
+ 'nbg1',
1419
+ 'northamerica-northeast1',
1420
+ 'northamerica-northeast2',
1421
+ 'sa-east-1',
1422
+ 'sin',
1423
+ 'southamerica-east1',
1424
+ 'southamerica-west1',
1425
+ 'us-central1',
1426
+ 'us-east-1',
1427
+ 'us-east-2',
1428
+ 'us-east1',
1429
+ 'us-east4',
1430
+ 'us-east5',
1431
+ 'us-south1',
1432
+ 'us-west-1',
1433
+ 'us-west-2',
1434
+ 'us-west1',
1435
+ 'us-west2',
1436
+ 'us-west3',
1437
+ 'us-west4'
1438
+ ]
1439
+ },
1440
+ description: 'Allowed values for `topology.kubernetes.io/region`.'
1441
+ }
1442
+ },
1443
+ 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.'
1445
+ },
1446
+ scalingProfile: {
1447
+ type: 'string',
1448
+ description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.',
1449
+ default: 'conservative',
1450
+ example: 'conservative',
1451
+ enum: [
1452
+ 'aggressive',
1453
+ 'conservative'
1454
+ ]
1455
+ },
882
1456
  id: {
883
1457
  type: 'string',
884
1458
  maxLength: 63,
@@ -889,6 +1463,7 @@ export const FleetSchema = {
889
1463
  }
890
1464
  },
891
1465
  required: [
1466
+ 'scalingProfile',
892
1467
  'id'
893
1468
  ],
894
1469
  additionalProperties: false
@@ -900,15 +1475,12 @@ export const FleetUpdateInputSchema = {
900
1475
  type: 'object',
901
1476
  properties: {
902
1477
  cpu: {
903
- type: 'number',
904
- format: 'float',
1478
+ type: 'integer',
905
1479
  minimum: 0,
906
- description: 'CPU limit in cores.'
1480
+ maximum: 100000,
1481
+ description: 'CPU limit in cores. Maximum 100,000.'
907
1482
  }
908
1483
  },
909
- required: [
910
- 'cpu'
911
- ],
912
1484
  additionalProperties: false,
913
1485
  description: 'Limits define a set of bounds for provisioning capacity.'
914
1486
  },
@@ -916,16 +1488,17 @@ export const FleetUpdateInputSchema = {
916
1488
  type: 'object',
917
1489
  properties: {
918
1490
  enabled: {
919
- type: 'boolean',
920
- default: true
1491
+ type: 'boolean'
921
1492
  },
922
1493
  project: {
923
1494
  type: 'string',
924
- description: 'Project GCP Project id to deploy instances into'
1495
+ pattern: '^[a-z][a-z0-9-]{4,28}[a-z0-9]$',
1496
+ description: 'GCP project ID to deploy instances into. 6-30 chars, lowercase letters/digits/hyphens, must start with a letter and not end with a hyphen. Omit when GCP is disabled.',
1497
+ example: 'my-cloudfleet-project'
925
1498
  }
926
1499
  },
927
1500
  required: [
928
- 'project'
1501
+ 'enabled'
929
1502
  ],
930
1503
  additionalProperties: false
931
1504
  },
@@ -933,16 +1506,18 @@ export const FleetUpdateInputSchema = {
933
1506
  type: 'object',
934
1507
  properties: {
935
1508
  enabled: {
936
- type: 'boolean',
937
- default: true
1509
+ type: 'boolean'
938
1510
  },
939
1511
  apiKey: {
940
1512
  type: 'string',
941
- description: 'Hetzner Cloud API key with read / write access'
1513
+ maxLength: 64,
1514
+ 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.'
942
1517
  }
943
1518
  },
944
1519
  required: [
945
- 'apiKey'
1520
+ 'enabled'
946
1521
  ],
947
1522
  additionalProperties: false
948
1523
  },
@@ -950,20 +1525,302 @@ export const FleetUpdateInputSchema = {
950
1525
  type: 'object',
951
1526
  properties: {
952
1527
  enabled: {
953
- type: 'boolean',
954
- default: true
1528
+ type: 'boolean'
955
1529
  },
956
1530
  controllerRoleArn: {
957
1531
  type: 'string',
958
- description: 'ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.'
1532
+ pattern: '^arn:aws(-[a-z]+)*:iam::\\d{12}:role\\/[\\w+=,.@/-]+$',
1533
+ description: 'AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.',
1534
+ example: 'arn:aws:iam::123456789012:role/Cloudfleet'
959
1535
  }
960
1536
  },
961
1537
  required: [
962
- 'controllerRoleArn'
1538
+ 'enabled'
963
1539
  ],
964
1540
  additionalProperties: false
1541
+ },
1542
+ constraints: {
1543
+ type: 'object',
1544
+ properties: {
1545
+ 'karpenter.sh/capacity-type': {
1546
+ type: 'array',
1547
+ items: {
1548
+ type: 'string',
1549
+ enum: [
1550
+ 'on-demand',
1551
+ 'spot'
1552
+ ]
1553
+ },
1554
+ description: 'Allowed values for `karpenter.sh/capacity-type`.'
1555
+ },
1556
+ 'kubernetes.io/arch': {
1557
+ type: 'array',
1558
+ items: {
1559
+ type: 'string',
1560
+ enum: [
1561
+ 'amd64',
1562
+ 'arm64'
1563
+ ]
1564
+ },
1565
+ description: 'Allowed values for `kubernetes.io/arch`.'
1566
+ },
1567
+ 'cfke.io/instance-family': {
1568
+ type: 'array',
1569
+ items: {
1570
+ type: 'string',
1571
+ enum: [
1572
+ 'a1',
1573
+ 'a2',
1574
+ 'a3',
1575
+ 'a4',
1576
+ 'c1',
1577
+ 'c2',
1578
+ 'c2d',
1579
+ 'c3',
1580
+ 'c3d',
1581
+ 'c4',
1582
+ 'c4a',
1583
+ 'c4d',
1584
+ 'c5',
1585
+ 'c5a',
1586
+ 'c5ad',
1587
+ 'c5d',
1588
+ 'c5n',
1589
+ 'c6a',
1590
+ 'c6g',
1591
+ 'c6gd',
1592
+ 'c6gn',
1593
+ 'c6i',
1594
+ 'c6id',
1595
+ 'c6in',
1596
+ 'c7a',
1597
+ 'c7g',
1598
+ 'c7gd',
1599
+ 'c7gn',
1600
+ 'c7i',
1601
+ 'c7i-flex',
1602
+ 'c8g',
1603
+ 'c8gd',
1604
+ 'cax',
1605
+ 'ccx',
1606
+ 'cpx',
1607
+ 'cx',
1608
+ 'd2',
1609
+ 'd3',
1610
+ 'd3en',
1611
+ 'dl1',
1612
+ 'dl2q',
1613
+ 'e2',
1614
+ 'f1',
1615
+ 'f2',
1616
+ 'g1',
1617
+ 'g2',
1618
+ 'g4ad',
1619
+ 'g4dn',
1620
+ 'g5',
1621
+ 'g5g',
1622
+ 'g6',
1623
+ 'g6e',
1624
+ 'gr6',
1625
+ 'h1',
1626
+ 'h3',
1627
+ 'hpc6a',
1628
+ 'hpc6id',
1629
+ 'hpc7a',
1630
+ 'hpc7g',
1631
+ 'i2',
1632
+ 'i3',
1633
+ 'i3en',
1634
+ 'i4g',
1635
+ 'i4i',
1636
+ 'i7i',
1637
+ 'i7ie',
1638
+ 'i8g',
1639
+ 'im4gn',
1640
+ 'inf1',
1641
+ 'inf2',
1642
+ 'is4gen',
1643
+ 'm1',
1644
+ 'm2',
1645
+ 'm3',
1646
+ 'm4',
1647
+ 'm5',
1648
+ 'm5a',
1649
+ 'm5ad',
1650
+ 'm5d',
1651
+ 'm5dn',
1652
+ 'm5n',
1653
+ 'm5zn',
1654
+ 'm6a',
1655
+ 'm6g',
1656
+ 'm6gd',
1657
+ 'm6i',
1658
+ 'm6id',
1659
+ 'm6idn',
1660
+ 'm6in',
1661
+ 'm7a',
1662
+ 'm7g',
1663
+ 'm7gd',
1664
+ 'm7i',
1665
+ 'm7i-flex',
1666
+ 'm8g',
1667
+ 'm8gd',
1668
+ 'n1',
1669
+ 'n2',
1670
+ 'n2d',
1671
+ 'n4',
1672
+ 'p3',
1673
+ 'p3dn',
1674
+ 'p4d',
1675
+ 'p4de',
1676
+ 'p5',
1677
+ 'p5e',
1678
+ 'p5en',
1679
+ 'p6-b200',
1680
+ 'r3',
1681
+ 'r4',
1682
+ 'r5',
1683
+ 'r5a',
1684
+ 'r5ad',
1685
+ 'r5b',
1686
+ 'r5d',
1687
+ 'r5dn',
1688
+ 'r5n',
1689
+ 'r6a',
1690
+ 'r6g',
1691
+ 'r6gd',
1692
+ 'r6i',
1693
+ 'r6id',
1694
+ 'r6idn',
1695
+ 'r6in',
1696
+ 'r7a',
1697
+ 'r7g',
1698
+ 'r7gd',
1699
+ 'r7i',
1700
+ 'r7iz',
1701
+ 'r8g',
1702
+ 'r8gd',
1703
+ 't2',
1704
+ 't2a',
1705
+ 't2d',
1706
+ 't3',
1707
+ 't3a',
1708
+ 't4g',
1709
+ 'trn1',
1710
+ 'trn1n',
1711
+ 'u-3tb1',
1712
+ 'u-6tb1',
1713
+ 'u7i-12tb',
1714
+ 'u7i-6tb',
1715
+ 'u7i-8tb',
1716
+ 'u7in-16tb',
1717
+ 'u7in-24tb',
1718
+ 'u7in-32tb',
1719
+ 'vt1',
1720
+ 'x1',
1721
+ 'x1e',
1722
+ 'x2gd',
1723
+ 'x2idn',
1724
+ 'x2iedn',
1725
+ 'x2iezn',
1726
+ 'x4',
1727
+ 'x8g',
1728
+ 'z1d',
1729
+ 'z3'
1730
+ ]
1731
+ },
1732
+ description: 'Allowed values for `cfke.io/instance-family`.'
1733
+ },
1734
+ 'topology.kubernetes.io/region': {
1735
+ type: 'array',
1736
+ items: {
1737
+ type: 'string',
1738
+ enum: [
1739
+ 'africa-south1',
1740
+ 'ap-northeast-1',
1741
+ 'ap-northeast-2',
1742
+ 'ap-northeast-3',
1743
+ 'ap-south-1',
1744
+ 'ap-southeast-1',
1745
+ 'ap-southeast-2',
1746
+ 'ash',
1747
+ 'asia-east1',
1748
+ 'asia-east2',
1749
+ 'asia-northeast1',
1750
+ 'asia-northeast2',
1751
+ 'asia-northeast3',
1752
+ 'asia-south1',
1753
+ 'asia-south2',
1754
+ 'asia-southeast1',
1755
+ 'asia-southeast2',
1756
+ 'australia-southeast1',
1757
+ 'australia-southeast2',
1758
+ 'ca-central-1',
1759
+ 'eu-central-1',
1760
+ 'eu-central-2',
1761
+ 'eu-north-1',
1762
+ 'eu-west-1',
1763
+ 'eu-west-2',
1764
+ 'eu-west-3',
1765
+ 'europe-central2',
1766
+ 'europe-north1',
1767
+ 'europe-southwest1',
1768
+ 'europe-west1',
1769
+ 'europe-west10',
1770
+ 'europe-west12',
1771
+ 'europe-west2',
1772
+ 'europe-west3',
1773
+ 'europe-west4',
1774
+ 'europe-west6',
1775
+ 'europe-west8',
1776
+ 'europe-west9',
1777
+ 'fsn1',
1778
+ 'hel1',
1779
+ 'hil',
1780
+ 'me-central1',
1781
+ 'me-central2',
1782
+ 'me-west1',
1783
+ 'nbg1',
1784
+ 'northamerica-northeast1',
1785
+ 'northamerica-northeast2',
1786
+ 'sa-east-1',
1787
+ 'sin',
1788
+ 'southamerica-east1',
1789
+ 'southamerica-west1',
1790
+ 'us-central1',
1791
+ 'us-east-1',
1792
+ 'us-east-2',
1793
+ 'us-east1',
1794
+ 'us-east4',
1795
+ 'us-east5',
1796
+ 'us-south1',
1797
+ 'us-west-1',
1798
+ 'us-west-2',
1799
+ 'us-west1',
1800
+ 'us-west2',
1801
+ 'us-west3',
1802
+ 'us-west4'
1803
+ ]
1804
+ },
1805
+ description: 'Allowed values for `topology.kubernetes.io/region`.'
1806
+ }
1807
+ },
1808
+ additionalProperties: false,
1809
+ 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.'
1810
+ },
1811
+ scalingProfile: {
1812
+ type: 'string',
1813
+ description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.',
1814
+ example: 'conservative',
1815
+ enum: [
1816
+ 'aggressive',
1817
+ 'conservative'
1818
+ ]
965
1819
  }
966
1820
  },
1821
+ required: [
1822
+ 'scalingProfile'
1823
+ ],
967
1824
  additionalProperties: false
968
1825
  };
969
1826
  export const InviteSchema = {