@cloudfleet/sdk 0.0.1-ac77333 → 0.0.1-aca000f

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.
@@ -2,6 +2,15 @@
2
2
  export const BillingContactSchema = {
3
3
  type: 'object',
4
4
  properties: {
5
+ type: {
6
+ type: 'string',
7
+ description: 'Type of the organization. `business` for legal entities, `personal` for individuals.',
8
+ example: 'business',
9
+ enum: [
10
+ 'business',
11
+ 'personal'
12
+ ]
13
+ },
5
14
  company: {
6
15
  type: 'string',
7
16
  maxLength: 120,
@@ -207,6 +216,7 @@ export const BillingContactSchema = {
207
216
  }
208
217
  },
209
218
  required: [
219
+ 'type',
210
220
  'email',
211
221
  'individual_name'
212
222
  ],
@@ -748,15 +758,12 @@ export const FleetCreateInputSchema = {
748
758
  type: 'object',
749
759
  properties: {
750
760
  cpu: {
751
- type: 'number',
752
- format: 'float',
761
+ type: 'integer',
753
762
  minimum: 0,
754
- description: 'CPU limit in cores.'
763
+ maximum: 100000,
764
+ description: 'CPU limit in cores. Maximum 100,000.'
755
765
  }
756
766
  },
757
- required: [
758
- 'cpu'
759
- ],
760
767
  additionalProperties: false,
761
768
  description: 'Limits define a set of bounds for provisioning capacity.'
762
769
  },
@@ -764,16 +771,17 @@ export const FleetCreateInputSchema = {
764
771
  type: 'object',
765
772
  properties: {
766
773
  enabled: {
767
- type: 'boolean',
768
- default: true
774
+ type: 'boolean'
769
775
  },
770
776
  project: {
771
777
  type: 'string',
772
- description: 'Project GCP Project id to deploy instances into'
778
+ pattern: '^[a-z][a-z0-9-]{4,28}[a-z0-9]$',
779
+ 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.',
780
+ example: 'my-cloudfleet-project'
773
781
  }
774
782
  },
775
783
  required: [
776
- 'project'
784
+ 'enabled'
777
785
  ],
778
786
  additionalProperties: false
779
787
  },
@@ -781,16 +789,18 @@ export const FleetCreateInputSchema = {
781
789
  type: 'object',
782
790
  properties: {
783
791
  enabled: {
784
- type: 'boolean',
785
- default: true
792
+ type: 'boolean'
786
793
  },
787
794
  apiKey: {
788
795
  type: 'string',
789
- description: 'Hetzner Cloud API key with read / write access'
796
+ maxLength: 64,
797
+ 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.'
790
800
  }
791
801
  },
792
802
  required: [
793
- 'apiKey'
803
+ 'enabled'
794
804
  ],
795
805
  additionalProperties: false
796
806
  },
@@ -798,19 +808,308 @@ export const FleetCreateInputSchema = {
798
808
  type: 'object',
799
809
  properties: {
800
810
  enabled: {
801
- type: 'boolean',
802
- default: true
811
+ type: 'boolean'
803
812
  },
804
813
  controllerRoleArn: {
805
814
  type: 'string',
806
- description: 'ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.'
815
+ pattern: '^arn:aws(-[a-z]+)*:iam::\\d{12}:role\\/[\\w+=,.@/-]+$',
816
+ description: 'AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.',
817
+ example: 'arn:aws:iam::123456789012:role/Cloudfleet'
807
818
  }
808
819
  },
809
820
  required: [
810
- 'controllerRoleArn'
821
+ 'enabled'
811
822
  ],
812
823
  additionalProperties: false
813
824
  },
825
+ constraints: {
826
+ type: 'object',
827
+ properties: {
828
+ 'karpenter.sh/capacity-type': {
829
+ type: 'array',
830
+ items: {
831
+ type: 'string',
832
+ enum: [
833
+ 'on-demand',
834
+ 'spot'
835
+ ]
836
+ },
837
+ minItems: 1,
838
+ description: 'Allowed values for `karpenter.sh/capacity-type`.',
839
+ default: [
840
+ 'on-demand',
841
+ 'spot'
842
+ ]
843
+ },
844
+ 'kubernetes.io/arch': {
845
+ type: 'array',
846
+ items: {
847
+ type: 'string',
848
+ enum: [
849
+ 'amd64',
850
+ 'arm64'
851
+ ]
852
+ },
853
+ minItems: 1,
854
+ description: 'Allowed values for `kubernetes.io/arch`.',
855
+ default: [
856
+ 'amd64'
857
+ ]
858
+ },
859
+ 'cfke.io/instance-family': {
860
+ type: 'array',
861
+ items: {
862
+ type: 'string',
863
+ enum: [
864
+ 'a1',
865
+ 'a2',
866
+ 'a3',
867
+ 'a4',
868
+ 'c1',
869
+ 'c2',
870
+ 'c2d',
871
+ 'c3',
872
+ 'c3d',
873
+ 'c4',
874
+ 'c4a',
875
+ 'c4d',
876
+ 'c5',
877
+ 'c5a',
878
+ 'c5ad',
879
+ 'c5d',
880
+ 'c5n',
881
+ 'c6a',
882
+ 'c6g',
883
+ 'c6gd',
884
+ 'c6gn',
885
+ 'c6i',
886
+ 'c6id',
887
+ 'c6in',
888
+ 'c7a',
889
+ 'c7g',
890
+ 'c7gd',
891
+ 'c7gn',
892
+ 'c7i',
893
+ 'c7i-flex',
894
+ 'c8g',
895
+ 'c8gd',
896
+ 'cax',
897
+ 'ccx',
898
+ 'cpx',
899
+ 'cx',
900
+ 'd2',
901
+ 'd3',
902
+ 'd3en',
903
+ 'dl1',
904
+ 'dl2q',
905
+ 'e2',
906
+ 'f1',
907
+ 'f2',
908
+ 'g1',
909
+ 'g2',
910
+ 'g4ad',
911
+ 'g4dn',
912
+ 'g5',
913
+ 'g5g',
914
+ 'g6',
915
+ 'g6e',
916
+ 'gr6',
917
+ 'h1',
918
+ 'h3',
919
+ 'hpc6a',
920
+ 'hpc6id',
921
+ 'hpc7a',
922
+ 'hpc7g',
923
+ 'i2',
924
+ 'i3',
925
+ 'i3en',
926
+ 'i4g',
927
+ 'i4i',
928
+ 'i7i',
929
+ 'i7ie',
930
+ 'i8g',
931
+ 'im4gn',
932
+ 'inf1',
933
+ 'inf2',
934
+ 'is4gen',
935
+ 'm1',
936
+ 'm2',
937
+ 'm3',
938
+ 'm4',
939
+ 'm5',
940
+ 'm5a',
941
+ 'm5ad',
942
+ 'm5d',
943
+ 'm5dn',
944
+ 'm5n',
945
+ 'm5zn',
946
+ 'm6a',
947
+ 'm6g',
948
+ 'm6gd',
949
+ 'm6i',
950
+ 'm6id',
951
+ 'm6idn',
952
+ 'm6in',
953
+ 'm7a',
954
+ 'm7g',
955
+ 'm7gd',
956
+ 'm7i',
957
+ 'm7i-flex',
958
+ 'm8g',
959
+ 'm8gd',
960
+ 'n1',
961
+ 'n2',
962
+ 'n2d',
963
+ 'n4',
964
+ 'p3',
965
+ 'p3dn',
966
+ 'p4d',
967
+ 'p4de',
968
+ 'p5',
969
+ 'p5e',
970
+ 'p5en',
971
+ 'p6-b200',
972
+ 'r3',
973
+ 'r4',
974
+ 'r5',
975
+ 'r5a',
976
+ 'r5ad',
977
+ 'r5b',
978
+ 'r5d',
979
+ 'r5dn',
980
+ 'r5n',
981
+ 'r6a',
982
+ 'r6g',
983
+ 'r6gd',
984
+ 'r6i',
985
+ 'r6id',
986
+ 'r6idn',
987
+ 'r6in',
988
+ 'r7a',
989
+ 'r7g',
990
+ 'r7gd',
991
+ 'r7i',
992
+ 'r7iz',
993
+ 'r8g',
994
+ 'r8gd',
995
+ 't2',
996
+ 't2a',
997
+ 't2d',
998
+ 't3',
999
+ 't3a',
1000
+ 't4g',
1001
+ 'trn1',
1002
+ 'trn1n',
1003
+ 'u-3tb1',
1004
+ 'u-6tb1',
1005
+ 'u7i-12tb',
1006
+ 'u7i-6tb',
1007
+ 'u7i-8tb',
1008
+ 'u7in-16tb',
1009
+ 'u7in-24tb',
1010
+ 'u7in-32tb',
1011
+ 'vt1',
1012
+ 'x1',
1013
+ 'x1e',
1014
+ 'x2gd',
1015
+ 'x2idn',
1016
+ 'x2iedn',
1017
+ 'x2iezn',
1018
+ 'x4',
1019
+ 'x8g',
1020
+ 'z1d',
1021
+ 'z3'
1022
+ ]
1023
+ },
1024
+ description: 'Allowed values for `cfke.io/instance-family`.'
1025
+ },
1026
+ 'topology.kubernetes.io/region': {
1027
+ type: 'array',
1028
+ items: {
1029
+ type: 'string',
1030
+ enum: [
1031
+ 'africa-south1',
1032
+ 'ap-northeast-1',
1033
+ 'ap-northeast-2',
1034
+ 'ap-northeast-3',
1035
+ 'ap-south-1',
1036
+ 'ap-southeast-1',
1037
+ 'ap-southeast-2',
1038
+ 'ash',
1039
+ 'asia-east1',
1040
+ 'asia-east2',
1041
+ 'asia-northeast1',
1042
+ 'asia-northeast2',
1043
+ 'asia-northeast3',
1044
+ 'asia-south1',
1045
+ 'asia-south2',
1046
+ 'asia-southeast1',
1047
+ 'asia-southeast2',
1048
+ 'australia-southeast1',
1049
+ 'australia-southeast2',
1050
+ 'ca-central-1',
1051
+ 'eu-central-1',
1052
+ 'eu-central-2',
1053
+ 'eu-north-1',
1054
+ 'eu-west-1',
1055
+ 'eu-west-2',
1056
+ 'eu-west-3',
1057
+ 'europe-central2',
1058
+ 'europe-north1',
1059
+ 'europe-southwest1',
1060
+ 'europe-west1',
1061
+ 'europe-west10',
1062
+ 'europe-west12',
1063
+ 'europe-west2',
1064
+ 'europe-west3',
1065
+ 'europe-west4',
1066
+ 'europe-west6',
1067
+ 'europe-west8',
1068
+ 'europe-west9',
1069
+ 'fsn1',
1070
+ 'hel1',
1071
+ 'hil',
1072
+ 'me-central1',
1073
+ 'me-central2',
1074
+ 'me-west1',
1075
+ 'nbg1',
1076
+ 'northamerica-northeast1',
1077
+ 'northamerica-northeast2',
1078
+ 'sa-east-1',
1079
+ 'sin',
1080
+ 'southamerica-east1',
1081
+ 'southamerica-west1',
1082
+ 'us-central1',
1083
+ 'us-east-1',
1084
+ 'us-east-2',
1085
+ 'us-east1',
1086
+ 'us-east4',
1087
+ 'us-east5',
1088
+ 'us-south1',
1089
+ 'us-west-1',
1090
+ 'us-west-2',
1091
+ 'us-west1',
1092
+ 'us-west2',
1093
+ 'us-west3',
1094
+ 'us-west4'
1095
+ ]
1096
+ },
1097
+ description: 'Allowed values for `topology.kubernetes.io/region`.'
1098
+ }
1099
+ },
1100
+ 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.'
1102
+ },
1103
+ scalingProfile: {
1104
+ type: 'string',
1105
+ description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.',
1106
+ default: 'conservative',
1107
+ example: 'conservative',
1108
+ enum: [
1109
+ 'aggressive',
1110
+ 'conservative'
1111
+ ]
1112
+ },
814
1113
  id: {
815
1114
  type: 'string',
816
1115
  maxLength: 63,
@@ -832,15 +1131,12 @@ export const FleetSchema = {
832
1131
  type: 'object',
833
1132
  properties: {
834
1133
  cpu: {
835
- type: 'number',
836
- format: 'float',
1134
+ type: 'integer',
837
1135
  minimum: 0,
838
- description: 'CPU limit in cores.'
1136
+ maximum: 100000,
1137
+ description: 'CPU limit in cores. Maximum 100,000.'
839
1138
  }
840
1139
  },
841
- required: [
842
- 'cpu'
843
- ],
844
1140
  additionalProperties: false,
845
1141
  description: 'Limits define a set of bounds for provisioning capacity.'
846
1142
  },
@@ -848,16 +1144,17 @@ export const FleetSchema = {
848
1144
  type: 'object',
849
1145
  properties: {
850
1146
  enabled: {
851
- type: 'boolean',
852
- default: true
1147
+ type: 'boolean'
853
1148
  },
854
1149
  project: {
855
1150
  type: 'string',
856
- description: 'Project GCP Project id to deploy instances into'
1151
+ pattern: '^[a-z][a-z0-9-]{4,28}[a-z0-9]$',
1152
+ 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.',
1153
+ example: 'my-cloudfleet-project'
857
1154
  }
858
1155
  },
859
1156
  required: [
860
- 'project'
1157
+ 'enabled'
861
1158
  ],
862
1159
  additionalProperties: false
863
1160
  },
@@ -865,16 +1162,16 @@ export const FleetSchema = {
865
1162
  type: 'object',
866
1163
  properties: {
867
1164
  enabled: {
868
- type: 'boolean',
869
- default: true
1165
+ type: 'boolean'
870
1166
  },
871
1167
  apiKey: {
872
1168
  type: 'string',
873
- description: 'Hetzner Cloud API key with read / write access'
1169
+ pattern: '^\\*{64}$',
1170
+ 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.'
874
1171
  }
875
1172
  },
876
1173
  required: [
877
- 'apiKey'
1174
+ 'enabled'
878
1175
  ],
879
1176
  additionalProperties: false
880
1177
  },
@@ -882,19 +1179,308 @@ export const FleetSchema = {
882
1179
  type: 'object',
883
1180
  properties: {
884
1181
  enabled: {
885
- type: 'boolean',
886
- default: true
1182
+ type: 'boolean'
887
1183
  },
888
1184
  controllerRoleArn: {
889
1185
  type: 'string',
890
- description: 'ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.'
1186
+ pattern: '^arn:aws(-[a-z]+)*:iam::\\d{12}:role\\/[\\w+=,.@/-]+$',
1187
+ description: 'AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.',
1188
+ example: 'arn:aws:iam::123456789012:role/Cloudfleet'
891
1189
  }
892
1190
  },
893
1191
  required: [
894
- 'controllerRoleArn'
1192
+ 'enabled'
895
1193
  ],
896
1194
  additionalProperties: false
897
1195
  },
1196
+ constraints: {
1197
+ type: 'object',
1198
+ properties: {
1199
+ 'karpenter.sh/capacity-type': {
1200
+ type: 'array',
1201
+ items: {
1202
+ type: 'string',
1203
+ enum: [
1204
+ 'on-demand',
1205
+ 'spot'
1206
+ ]
1207
+ },
1208
+ minItems: 1,
1209
+ description: 'Allowed values for `karpenter.sh/capacity-type`.',
1210
+ default: [
1211
+ 'on-demand',
1212
+ 'spot'
1213
+ ]
1214
+ },
1215
+ 'kubernetes.io/arch': {
1216
+ type: 'array',
1217
+ items: {
1218
+ type: 'string',
1219
+ enum: [
1220
+ 'amd64',
1221
+ 'arm64'
1222
+ ]
1223
+ },
1224
+ minItems: 1,
1225
+ description: 'Allowed values for `kubernetes.io/arch`.',
1226
+ default: [
1227
+ 'amd64'
1228
+ ]
1229
+ },
1230
+ 'cfke.io/instance-family': {
1231
+ type: 'array',
1232
+ items: {
1233
+ type: 'string',
1234
+ enum: [
1235
+ 'a1',
1236
+ 'a2',
1237
+ 'a3',
1238
+ 'a4',
1239
+ 'c1',
1240
+ 'c2',
1241
+ 'c2d',
1242
+ 'c3',
1243
+ 'c3d',
1244
+ 'c4',
1245
+ 'c4a',
1246
+ 'c4d',
1247
+ 'c5',
1248
+ 'c5a',
1249
+ 'c5ad',
1250
+ 'c5d',
1251
+ 'c5n',
1252
+ 'c6a',
1253
+ 'c6g',
1254
+ 'c6gd',
1255
+ 'c6gn',
1256
+ 'c6i',
1257
+ 'c6id',
1258
+ 'c6in',
1259
+ 'c7a',
1260
+ 'c7g',
1261
+ 'c7gd',
1262
+ 'c7gn',
1263
+ 'c7i',
1264
+ 'c7i-flex',
1265
+ 'c8g',
1266
+ 'c8gd',
1267
+ 'cax',
1268
+ 'ccx',
1269
+ 'cpx',
1270
+ 'cx',
1271
+ 'd2',
1272
+ 'd3',
1273
+ 'd3en',
1274
+ 'dl1',
1275
+ 'dl2q',
1276
+ 'e2',
1277
+ 'f1',
1278
+ 'f2',
1279
+ 'g1',
1280
+ 'g2',
1281
+ 'g4ad',
1282
+ 'g4dn',
1283
+ 'g5',
1284
+ 'g5g',
1285
+ 'g6',
1286
+ 'g6e',
1287
+ 'gr6',
1288
+ 'h1',
1289
+ 'h3',
1290
+ 'hpc6a',
1291
+ 'hpc6id',
1292
+ 'hpc7a',
1293
+ 'hpc7g',
1294
+ 'i2',
1295
+ 'i3',
1296
+ 'i3en',
1297
+ 'i4g',
1298
+ 'i4i',
1299
+ 'i7i',
1300
+ 'i7ie',
1301
+ 'i8g',
1302
+ 'im4gn',
1303
+ 'inf1',
1304
+ 'inf2',
1305
+ 'is4gen',
1306
+ 'm1',
1307
+ 'm2',
1308
+ 'm3',
1309
+ 'm4',
1310
+ 'm5',
1311
+ 'm5a',
1312
+ 'm5ad',
1313
+ 'm5d',
1314
+ 'm5dn',
1315
+ 'm5n',
1316
+ 'm5zn',
1317
+ 'm6a',
1318
+ 'm6g',
1319
+ 'm6gd',
1320
+ 'm6i',
1321
+ 'm6id',
1322
+ 'm6idn',
1323
+ 'm6in',
1324
+ 'm7a',
1325
+ 'm7g',
1326
+ 'm7gd',
1327
+ 'm7i',
1328
+ 'm7i-flex',
1329
+ 'm8g',
1330
+ 'm8gd',
1331
+ 'n1',
1332
+ 'n2',
1333
+ 'n2d',
1334
+ 'n4',
1335
+ 'p3',
1336
+ 'p3dn',
1337
+ 'p4d',
1338
+ 'p4de',
1339
+ 'p5',
1340
+ 'p5e',
1341
+ 'p5en',
1342
+ 'p6-b200',
1343
+ 'r3',
1344
+ 'r4',
1345
+ 'r5',
1346
+ 'r5a',
1347
+ 'r5ad',
1348
+ 'r5b',
1349
+ 'r5d',
1350
+ 'r5dn',
1351
+ 'r5n',
1352
+ 'r6a',
1353
+ 'r6g',
1354
+ 'r6gd',
1355
+ 'r6i',
1356
+ 'r6id',
1357
+ 'r6idn',
1358
+ 'r6in',
1359
+ 'r7a',
1360
+ 'r7g',
1361
+ 'r7gd',
1362
+ 'r7i',
1363
+ 'r7iz',
1364
+ 'r8g',
1365
+ 'r8gd',
1366
+ 't2',
1367
+ 't2a',
1368
+ 't2d',
1369
+ 't3',
1370
+ 't3a',
1371
+ 't4g',
1372
+ 'trn1',
1373
+ 'trn1n',
1374
+ 'u-3tb1',
1375
+ 'u-6tb1',
1376
+ 'u7i-12tb',
1377
+ 'u7i-6tb',
1378
+ 'u7i-8tb',
1379
+ 'u7in-16tb',
1380
+ 'u7in-24tb',
1381
+ 'u7in-32tb',
1382
+ 'vt1',
1383
+ 'x1',
1384
+ 'x1e',
1385
+ 'x2gd',
1386
+ 'x2idn',
1387
+ 'x2iedn',
1388
+ 'x2iezn',
1389
+ 'x4',
1390
+ 'x8g',
1391
+ 'z1d',
1392
+ 'z3'
1393
+ ]
1394
+ },
1395
+ description: 'Allowed values for `cfke.io/instance-family`.'
1396
+ },
1397
+ 'topology.kubernetes.io/region': {
1398
+ type: 'array',
1399
+ items: {
1400
+ type: 'string',
1401
+ enum: [
1402
+ 'africa-south1',
1403
+ 'ap-northeast-1',
1404
+ 'ap-northeast-2',
1405
+ 'ap-northeast-3',
1406
+ 'ap-south-1',
1407
+ 'ap-southeast-1',
1408
+ 'ap-southeast-2',
1409
+ 'ash',
1410
+ 'asia-east1',
1411
+ 'asia-east2',
1412
+ 'asia-northeast1',
1413
+ 'asia-northeast2',
1414
+ 'asia-northeast3',
1415
+ 'asia-south1',
1416
+ 'asia-south2',
1417
+ 'asia-southeast1',
1418
+ 'asia-southeast2',
1419
+ 'australia-southeast1',
1420
+ 'australia-southeast2',
1421
+ 'ca-central-1',
1422
+ 'eu-central-1',
1423
+ 'eu-central-2',
1424
+ 'eu-north-1',
1425
+ 'eu-west-1',
1426
+ 'eu-west-2',
1427
+ 'eu-west-3',
1428
+ 'europe-central2',
1429
+ 'europe-north1',
1430
+ 'europe-southwest1',
1431
+ 'europe-west1',
1432
+ 'europe-west10',
1433
+ 'europe-west12',
1434
+ 'europe-west2',
1435
+ 'europe-west3',
1436
+ 'europe-west4',
1437
+ 'europe-west6',
1438
+ 'europe-west8',
1439
+ 'europe-west9',
1440
+ 'fsn1',
1441
+ 'hel1',
1442
+ 'hil',
1443
+ 'me-central1',
1444
+ 'me-central2',
1445
+ 'me-west1',
1446
+ 'nbg1',
1447
+ 'northamerica-northeast1',
1448
+ 'northamerica-northeast2',
1449
+ 'sa-east-1',
1450
+ 'sin',
1451
+ 'southamerica-east1',
1452
+ 'southamerica-west1',
1453
+ 'us-central1',
1454
+ 'us-east-1',
1455
+ 'us-east-2',
1456
+ 'us-east1',
1457
+ 'us-east4',
1458
+ 'us-east5',
1459
+ 'us-south1',
1460
+ 'us-west-1',
1461
+ 'us-west-2',
1462
+ 'us-west1',
1463
+ 'us-west2',
1464
+ 'us-west3',
1465
+ 'us-west4'
1466
+ ]
1467
+ },
1468
+ description: 'Allowed values for `topology.kubernetes.io/region`.'
1469
+ }
1470
+ },
1471
+ 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.'
1473
+ },
1474
+ scalingProfile: {
1475
+ type: 'string',
1476
+ description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.',
1477
+ default: 'conservative',
1478
+ example: 'conservative',
1479
+ enum: [
1480
+ 'aggressive',
1481
+ 'conservative'
1482
+ ]
1483
+ },
898
1484
  id: {
899
1485
  type: 'string',
900
1486
  maxLength: 63,
@@ -905,6 +1491,7 @@ export const FleetSchema = {
905
1491
  }
906
1492
  },
907
1493
  required: [
1494
+ 'scalingProfile',
908
1495
  'id'
909
1496
  ],
910
1497
  additionalProperties: false
@@ -916,15 +1503,12 @@ export const FleetUpdateInputSchema = {
916
1503
  type: 'object',
917
1504
  properties: {
918
1505
  cpu: {
919
- type: 'number',
920
- format: 'float',
1506
+ type: 'integer',
921
1507
  minimum: 0,
922
- description: 'CPU limit in cores.'
1508
+ maximum: 100000,
1509
+ description: 'CPU limit in cores. Maximum 100,000.'
923
1510
  }
924
1511
  },
925
- required: [
926
- 'cpu'
927
- ],
928
1512
  additionalProperties: false,
929
1513
  description: 'Limits define a set of bounds for provisioning capacity.'
930
1514
  },
@@ -932,16 +1516,17 @@ export const FleetUpdateInputSchema = {
932
1516
  type: 'object',
933
1517
  properties: {
934
1518
  enabled: {
935
- type: 'boolean',
936
- default: true
1519
+ type: 'boolean'
937
1520
  },
938
1521
  project: {
939
1522
  type: 'string',
940
- description: 'Project GCP Project id to deploy instances into'
1523
+ pattern: '^[a-z][a-z0-9-]{4,28}[a-z0-9]$',
1524
+ 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.',
1525
+ example: 'my-cloudfleet-project'
941
1526
  }
942
1527
  },
943
1528
  required: [
944
- 'project'
1529
+ 'enabled'
945
1530
  ],
946
1531
  additionalProperties: false
947
1532
  },
@@ -949,16 +1534,18 @@ export const FleetUpdateInputSchema = {
949
1534
  type: 'object',
950
1535
  properties: {
951
1536
  enabled: {
952
- type: 'boolean',
953
- default: true
1537
+ type: 'boolean'
954
1538
  },
955
1539
  apiKey: {
956
1540
  type: 'string',
957
- description: 'Hetzner Cloud API key with read / write access'
1541
+ maxLength: 64,
1542
+ 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.'
958
1545
  }
959
1546
  },
960
1547
  required: [
961
- 'apiKey'
1548
+ 'enabled'
962
1549
  ],
963
1550
  additionalProperties: false
964
1551
  },
@@ -966,20 +1553,304 @@ export const FleetUpdateInputSchema = {
966
1553
  type: 'object',
967
1554
  properties: {
968
1555
  enabled: {
969
- type: 'boolean',
970
- default: true
1556
+ type: 'boolean'
971
1557
  },
972
1558
  controllerRoleArn: {
973
1559
  type: 'string',
974
- description: 'ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.'
1560
+ pattern: '^arn:aws(-[a-z]+)*:iam::\\d{12}:role\\/[\\w+=,.@/-]+$',
1561
+ description: 'AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.',
1562
+ example: 'arn:aws:iam::123456789012:role/Cloudfleet'
975
1563
  }
976
1564
  },
977
1565
  required: [
978
- 'controllerRoleArn'
1566
+ 'enabled'
979
1567
  ],
980
1568
  additionalProperties: false
1569
+ },
1570
+ constraints: {
1571
+ type: 'object',
1572
+ properties: {
1573
+ 'karpenter.sh/capacity-type': {
1574
+ type: 'array',
1575
+ items: {
1576
+ type: 'string',
1577
+ enum: [
1578
+ 'on-demand',
1579
+ 'spot'
1580
+ ]
1581
+ },
1582
+ minItems: 1,
1583
+ description: 'Allowed values for `karpenter.sh/capacity-type`.'
1584
+ },
1585
+ 'kubernetes.io/arch': {
1586
+ type: 'array',
1587
+ items: {
1588
+ type: 'string',
1589
+ enum: [
1590
+ 'amd64',
1591
+ 'arm64'
1592
+ ]
1593
+ },
1594
+ minItems: 1,
1595
+ description: 'Allowed values for `kubernetes.io/arch`.'
1596
+ },
1597
+ 'cfke.io/instance-family': {
1598
+ type: 'array',
1599
+ items: {
1600
+ type: 'string',
1601
+ enum: [
1602
+ 'a1',
1603
+ 'a2',
1604
+ 'a3',
1605
+ 'a4',
1606
+ 'c1',
1607
+ 'c2',
1608
+ 'c2d',
1609
+ 'c3',
1610
+ 'c3d',
1611
+ 'c4',
1612
+ 'c4a',
1613
+ 'c4d',
1614
+ 'c5',
1615
+ 'c5a',
1616
+ 'c5ad',
1617
+ 'c5d',
1618
+ 'c5n',
1619
+ 'c6a',
1620
+ 'c6g',
1621
+ 'c6gd',
1622
+ 'c6gn',
1623
+ 'c6i',
1624
+ 'c6id',
1625
+ 'c6in',
1626
+ 'c7a',
1627
+ 'c7g',
1628
+ 'c7gd',
1629
+ 'c7gn',
1630
+ 'c7i',
1631
+ 'c7i-flex',
1632
+ 'c8g',
1633
+ 'c8gd',
1634
+ 'cax',
1635
+ 'ccx',
1636
+ 'cpx',
1637
+ 'cx',
1638
+ 'd2',
1639
+ 'd3',
1640
+ 'd3en',
1641
+ 'dl1',
1642
+ 'dl2q',
1643
+ 'e2',
1644
+ 'f1',
1645
+ 'f2',
1646
+ 'g1',
1647
+ 'g2',
1648
+ 'g4ad',
1649
+ 'g4dn',
1650
+ 'g5',
1651
+ 'g5g',
1652
+ 'g6',
1653
+ 'g6e',
1654
+ 'gr6',
1655
+ 'h1',
1656
+ 'h3',
1657
+ 'hpc6a',
1658
+ 'hpc6id',
1659
+ 'hpc7a',
1660
+ 'hpc7g',
1661
+ 'i2',
1662
+ 'i3',
1663
+ 'i3en',
1664
+ 'i4g',
1665
+ 'i4i',
1666
+ 'i7i',
1667
+ 'i7ie',
1668
+ 'i8g',
1669
+ 'im4gn',
1670
+ 'inf1',
1671
+ 'inf2',
1672
+ 'is4gen',
1673
+ 'm1',
1674
+ 'm2',
1675
+ 'm3',
1676
+ 'm4',
1677
+ 'm5',
1678
+ 'm5a',
1679
+ 'm5ad',
1680
+ 'm5d',
1681
+ 'm5dn',
1682
+ 'm5n',
1683
+ 'm5zn',
1684
+ 'm6a',
1685
+ 'm6g',
1686
+ 'm6gd',
1687
+ 'm6i',
1688
+ 'm6id',
1689
+ 'm6idn',
1690
+ 'm6in',
1691
+ 'm7a',
1692
+ 'm7g',
1693
+ 'm7gd',
1694
+ 'm7i',
1695
+ 'm7i-flex',
1696
+ 'm8g',
1697
+ 'm8gd',
1698
+ 'n1',
1699
+ 'n2',
1700
+ 'n2d',
1701
+ 'n4',
1702
+ 'p3',
1703
+ 'p3dn',
1704
+ 'p4d',
1705
+ 'p4de',
1706
+ 'p5',
1707
+ 'p5e',
1708
+ 'p5en',
1709
+ 'p6-b200',
1710
+ 'r3',
1711
+ 'r4',
1712
+ 'r5',
1713
+ 'r5a',
1714
+ 'r5ad',
1715
+ 'r5b',
1716
+ 'r5d',
1717
+ 'r5dn',
1718
+ 'r5n',
1719
+ 'r6a',
1720
+ 'r6g',
1721
+ 'r6gd',
1722
+ 'r6i',
1723
+ 'r6id',
1724
+ 'r6idn',
1725
+ 'r6in',
1726
+ 'r7a',
1727
+ 'r7g',
1728
+ 'r7gd',
1729
+ 'r7i',
1730
+ 'r7iz',
1731
+ 'r8g',
1732
+ 'r8gd',
1733
+ 't2',
1734
+ 't2a',
1735
+ 't2d',
1736
+ 't3',
1737
+ 't3a',
1738
+ 't4g',
1739
+ 'trn1',
1740
+ 'trn1n',
1741
+ 'u-3tb1',
1742
+ 'u-6tb1',
1743
+ 'u7i-12tb',
1744
+ 'u7i-6tb',
1745
+ 'u7i-8tb',
1746
+ 'u7in-16tb',
1747
+ 'u7in-24tb',
1748
+ 'u7in-32tb',
1749
+ 'vt1',
1750
+ 'x1',
1751
+ 'x1e',
1752
+ 'x2gd',
1753
+ 'x2idn',
1754
+ 'x2iedn',
1755
+ 'x2iezn',
1756
+ 'x4',
1757
+ 'x8g',
1758
+ 'z1d',
1759
+ 'z3'
1760
+ ]
1761
+ },
1762
+ description: 'Allowed values for `cfke.io/instance-family`.'
1763
+ },
1764
+ 'topology.kubernetes.io/region': {
1765
+ type: 'array',
1766
+ items: {
1767
+ type: 'string',
1768
+ enum: [
1769
+ 'africa-south1',
1770
+ 'ap-northeast-1',
1771
+ 'ap-northeast-2',
1772
+ 'ap-northeast-3',
1773
+ 'ap-south-1',
1774
+ 'ap-southeast-1',
1775
+ 'ap-southeast-2',
1776
+ 'ash',
1777
+ 'asia-east1',
1778
+ 'asia-east2',
1779
+ 'asia-northeast1',
1780
+ 'asia-northeast2',
1781
+ 'asia-northeast3',
1782
+ 'asia-south1',
1783
+ 'asia-south2',
1784
+ 'asia-southeast1',
1785
+ 'asia-southeast2',
1786
+ 'australia-southeast1',
1787
+ 'australia-southeast2',
1788
+ 'ca-central-1',
1789
+ 'eu-central-1',
1790
+ 'eu-central-2',
1791
+ 'eu-north-1',
1792
+ 'eu-west-1',
1793
+ 'eu-west-2',
1794
+ 'eu-west-3',
1795
+ 'europe-central2',
1796
+ 'europe-north1',
1797
+ 'europe-southwest1',
1798
+ 'europe-west1',
1799
+ 'europe-west10',
1800
+ 'europe-west12',
1801
+ 'europe-west2',
1802
+ 'europe-west3',
1803
+ 'europe-west4',
1804
+ 'europe-west6',
1805
+ 'europe-west8',
1806
+ 'europe-west9',
1807
+ 'fsn1',
1808
+ 'hel1',
1809
+ 'hil',
1810
+ 'me-central1',
1811
+ 'me-central2',
1812
+ 'me-west1',
1813
+ 'nbg1',
1814
+ 'northamerica-northeast1',
1815
+ 'northamerica-northeast2',
1816
+ 'sa-east-1',
1817
+ 'sin',
1818
+ 'southamerica-east1',
1819
+ 'southamerica-west1',
1820
+ 'us-central1',
1821
+ 'us-east-1',
1822
+ 'us-east-2',
1823
+ 'us-east1',
1824
+ 'us-east4',
1825
+ 'us-east5',
1826
+ 'us-south1',
1827
+ 'us-west-1',
1828
+ 'us-west-2',
1829
+ 'us-west1',
1830
+ 'us-west2',
1831
+ 'us-west3',
1832
+ 'us-west4'
1833
+ ]
1834
+ },
1835
+ description: 'Allowed values for `topology.kubernetes.io/region`.'
1836
+ }
1837
+ },
1838
+ 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.'
1840
+ },
1841
+ scalingProfile: {
1842
+ type: 'string',
1843
+ description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.',
1844
+ example: 'conservative',
1845
+ enum: [
1846
+ 'aggressive',
1847
+ 'conservative'
1848
+ ]
981
1849
  }
982
1850
  },
1851
+ required: [
1852
+ 'scalingProfile'
1853
+ ],
983
1854
  additionalProperties: false
984
1855
  };
985
1856
  export const InviteSchema = {
@@ -1232,6 +2103,15 @@ export const MarketplaceListingSchema = {
1232
2103
  export const OrganizationCreateInputSchema = {
1233
2104
  type: 'object',
1234
2105
  properties: {
2106
+ type: {
2107
+ type: 'string',
2108
+ description: 'Type of the organization. `business` for legal entities, `personal` for individuals.',
2109
+ example: 'business',
2110
+ enum: [
2111
+ 'business',
2112
+ 'personal'
2113
+ ]
2114
+ },
1235
2115
  email: {
1236
2116
  type: 'string',
1237
2117
  format: 'email',
@@ -1240,11 +2120,13 @@ export const OrganizationCreateInputSchema = {
1240
2120
  },
1241
2121
  first_name: {
1242
2122
  type: 'string',
2123
+ minLength: 1,
1243
2124
  description: 'First name of the billing contact person.',
1244
2125
  example: 'John'
1245
2126
  },
1246
2127
  last_name: {
1247
2128
  type: 'string',
2129
+ minLength: 1,
1248
2130
  description: 'Last name of the billing contact person.',
1249
2131
  example: 'Doe'
1250
2132
  },
@@ -1263,6 +2145,7 @@ export const OrganizationCreateInputSchema = {
1263
2145
  }
1264
2146
  },
1265
2147
  required: [
2148
+ 'type',
1266
2149
  'email',
1267
2150
  'first_name',
1268
2151
  'last_name',
@@ -1287,6 +2170,15 @@ export const OrganizationSchema = {
1287
2170
  description: 'Name of the legal entity. This name will be used in invoices. Use your first and last name for individual accounts.',
1288
2171
  example: 'ACME Corp.'
1289
2172
  },
2173
+ type: {
2174
+ type: 'string',
2175
+ description: 'Type of the organization. `business` for legal entities, `personal` for individuals.',
2176
+ example: 'business',
2177
+ enum: [
2178
+ 'business',
2179
+ 'personal'
2180
+ ]
2181
+ },
1290
2182
  date_created: {
1291
2183
  type: 'string',
1292
2184
  format: 'date-time',
@@ -1396,13 +2288,25 @@ export const OrganizationSchema = {
1396
2288
  'closed',
1397
2289
  'suspended'
1398
2290
  ]
2291
+ },
2292
+ verification: {
2293
+ type: 'string',
2294
+ description: 'Verification status of the organization, which determines the assigned quota. `none` when billing information is incomplete, `submitted` when billing information is complete but the organization is not yet verified, `verified` when the organization is verified.',
2295
+ example: 'verified',
2296
+ enum: [
2297
+ 'none',
2298
+ 'submitted',
2299
+ 'verified'
2300
+ ]
1399
2301
  }
1400
2302
  },
1401
2303
  required: [
1402
2304
  'id',
2305
+ 'type',
1403
2306
  'date_created',
1404
2307
  'quota',
1405
- 'status'
2308
+ 'status',
2309
+ 'verification'
1406
2310
  ],
1407
2311
  additionalProperties: false
1408
2312
  };