@cloudfleet/sdk 0.0.1-4e38512 → 0.0.1-4ee2c6f

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.
Files changed (41) hide show
  1. package/dist/@tanstack/react-query.gen.d.ts +1125 -0
  2. package/dist/@tanstack/react-query.gen.d.ts.map +1 -0
  3. package/dist/@tanstack/react-query.gen.js +1129 -0
  4. package/dist/@tanstack/react-query.gen.js.map +1 -0
  5. package/dist/client/client.gen.d.ts.map +1 -1
  6. package/dist/client/client.gen.js +108 -123
  7. package/dist/client/client.gen.js.map +1 -1
  8. package/dist/client/types.gen.d.ts +7 -4
  9. package/dist/client/types.gen.d.ts.map +1 -1
  10. package/dist/client/utils.gen.d.ts +5 -1
  11. package/dist/client/utils.gen.d.ts.map +1 -1
  12. package/dist/client/utils.gen.js +1 -1
  13. package/dist/client/utils.gen.js.map +1 -1
  14. package/dist/client.gen.d.ts +1 -1
  15. package/dist/client.gen.d.ts.map +1 -1
  16. package/dist/core/bodySerializer.gen.d.ts +4 -4
  17. package/dist/core/bodySerializer.gen.d.ts.map +1 -1
  18. package/dist/core/bodySerializer.gen.js.map +1 -1
  19. package/dist/core/serverSentEvents.gen.d.ts +1 -1
  20. package/dist/core/serverSentEvents.gen.d.ts.map +1 -1
  21. package/dist/core/serverSentEvents.gen.js +3 -4
  22. package/dist/core/serverSentEvents.gen.js.map +1 -1
  23. package/dist/core/types.gen.d.ts +1 -1
  24. package/dist/core/utils.gen.js +1 -1
  25. package/dist/core/utils.gen.js.map +1 -1
  26. package/dist/schemas.gen.d.ts +544 -38
  27. package/dist/schemas.gen.d.ts.map +1 -1
  28. package/dist/schemas.gen.js +1326 -52
  29. package/dist/schemas.gen.js.map +1 -1
  30. package/dist/sdk.gen.d.ts +41 -3
  31. package/dist/sdk.gen.d.ts.map +1 -1
  32. package/dist/sdk.gen.js +67 -0
  33. package/dist/sdk.gen.js.map +1 -1
  34. package/dist/services/kubernetes/api.d.ts +8 -8
  35. package/dist/types.gen.d.ts +441 -25
  36. package/dist/types.gen.d.ts.map +1 -1
  37. package/dist/zod.gen.d.ts +2350 -578
  38. package/dist/zod.gen.d.ts.map +1 -1
  39. package/dist/zod.gen.js +947 -319
  40. package/dist/zod.gen.js.map +1 -1
  41. package/package.json +23 -4
@@ -734,13 +734,10 @@ export const FleetCreateInputSchema = {
734
734
  cpu: {
735
735
  type: 'number',
736
736
  format: 'float',
737
- minimum: 0,
737
+ minimum: 8,
738
738
  description: 'CPU limit in cores.'
739
739
  }
740
740
  },
741
- required: [
742
- 'cpu'
743
- ],
744
741
  additionalProperties: false,
745
742
  description: 'Limits define a set of bounds for provisioning capacity.'
746
743
  },
@@ -770,12 +767,9 @@ export const FleetCreateInputSchema = {
770
767
  },
771
768
  apiKey: {
772
769
  type: 'string',
773
- description: 'Hetzner Cloud API key with read / write access'
770
+ description: 'Hetzner Cloud API key with read / write access. On update, omit this field to keep the existing value.'
774
771
  }
775
772
  },
776
- required: [
777
- 'apiKey'
778
- ],
779
773
  additionalProperties: false
780
774
  },
781
775
  aws: {
@@ -795,6 +789,284 @@ export const FleetCreateInputSchema = {
795
789
  ],
796
790
  additionalProperties: false
797
791
  },
792
+ constraints: {
793
+ type: 'object',
794
+ properties: {
795
+ 'karpenter.sh/capacity-type': {
796
+ type: 'array',
797
+ items: {
798
+ type: 'string',
799
+ enum: [
800
+ 'on-demand',
801
+ 'spot'
802
+ ]
803
+ },
804
+ description: 'Allowed values for `karpenter.sh/capacity-type`.'
805
+ },
806
+ 'kubernetes.io/arch': {
807
+ type: 'array',
808
+ items: {
809
+ type: 'string',
810
+ enum: [
811
+ 'amd64',
812
+ 'arm64'
813
+ ]
814
+ },
815
+ description: 'Allowed values for `kubernetes.io/arch`.'
816
+ },
817
+ 'cfke.io/instance-family': {
818
+ type: 'array',
819
+ items: {
820
+ type: 'string',
821
+ enum: [
822
+ 'a1',
823
+ 'a2',
824
+ 'a3',
825
+ 'a4',
826
+ 'c1',
827
+ 'c2',
828
+ 'c2d',
829
+ 'c3',
830
+ 'c3d',
831
+ 'c4',
832
+ 'c4a',
833
+ 'c4d',
834
+ 'c5',
835
+ 'c5a',
836
+ 'c5ad',
837
+ 'c5d',
838
+ 'c5n',
839
+ 'c6a',
840
+ 'c6g',
841
+ 'c6gd',
842
+ 'c6gn',
843
+ 'c6i',
844
+ 'c6id',
845
+ 'c6in',
846
+ 'c7a',
847
+ 'c7g',
848
+ 'c7gd',
849
+ 'c7gn',
850
+ 'c7i',
851
+ 'c7i-flex',
852
+ 'c8g',
853
+ 'c8gd',
854
+ 'cax',
855
+ 'ccx',
856
+ 'cpx',
857
+ 'cx',
858
+ 'd2',
859
+ 'd3',
860
+ 'd3en',
861
+ 'dl1',
862
+ 'dl2q',
863
+ 'e2',
864
+ 'f1',
865
+ 'f2',
866
+ 'g1',
867
+ 'g2',
868
+ 'g4ad',
869
+ 'g4dn',
870
+ 'g5',
871
+ 'g5g',
872
+ 'g6',
873
+ 'g6e',
874
+ 'gr6',
875
+ 'h1',
876
+ 'h3',
877
+ 'hpc6a',
878
+ 'hpc6id',
879
+ 'hpc7a',
880
+ 'hpc7g',
881
+ 'i2',
882
+ 'i3',
883
+ 'i3en',
884
+ 'i4g',
885
+ 'i4i',
886
+ 'i7i',
887
+ 'i7ie',
888
+ 'i8g',
889
+ 'im4gn',
890
+ 'inf1',
891
+ 'inf2',
892
+ 'is4gen',
893
+ 'm1',
894
+ 'm2',
895
+ 'm3',
896
+ 'm4',
897
+ 'm5',
898
+ 'm5a',
899
+ 'm5ad',
900
+ 'm5d',
901
+ 'm5dn',
902
+ 'm5n',
903
+ 'm5zn',
904
+ 'm6a',
905
+ 'm6g',
906
+ 'm6gd',
907
+ 'm6i',
908
+ 'm6id',
909
+ 'm6idn',
910
+ 'm6in',
911
+ 'm7a',
912
+ 'm7g',
913
+ 'm7gd',
914
+ 'm7i',
915
+ 'm7i-flex',
916
+ 'm8g',
917
+ 'm8gd',
918
+ 'n1',
919
+ 'n2',
920
+ 'n2d',
921
+ 'n4',
922
+ 'p3',
923
+ 'p3dn',
924
+ 'p4d',
925
+ 'p4de',
926
+ 'p5',
927
+ 'p5e',
928
+ 'p5en',
929
+ 'p6-b200',
930
+ 'r3',
931
+ 'r4',
932
+ 'r5',
933
+ 'r5a',
934
+ 'r5ad',
935
+ 'r5b',
936
+ 'r5d',
937
+ 'r5dn',
938
+ 'r5n',
939
+ 'r6a',
940
+ 'r6g',
941
+ 'r6gd',
942
+ 'r6i',
943
+ 'r6id',
944
+ 'r6idn',
945
+ 'r6in',
946
+ 'r7a',
947
+ 'r7g',
948
+ 'r7gd',
949
+ 'r7i',
950
+ 'r7iz',
951
+ 'r8g',
952
+ 'r8gd',
953
+ 't2',
954
+ 't2a',
955
+ 't2d',
956
+ 't3',
957
+ 't3a',
958
+ 't4g',
959
+ 'trn1',
960
+ 'trn1n',
961
+ 'u-3tb1',
962
+ 'u-6tb1',
963
+ 'u7i-12tb',
964
+ 'u7i-6tb',
965
+ 'u7i-8tb',
966
+ 'u7in-16tb',
967
+ 'u7in-24tb',
968
+ 'u7in-32tb',
969
+ 'vt1',
970
+ 'x1',
971
+ 'x1e',
972
+ 'x2gd',
973
+ 'x2idn',
974
+ 'x2iedn',
975
+ 'x2iezn',
976
+ 'x4',
977
+ 'x8g',
978
+ 'z1d',
979
+ 'z3'
980
+ ]
981
+ },
982
+ description: 'Allowed values for `cfke.io/instance-family`.'
983
+ },
984
+ 'topology.kubernetes.io/region': {
985
+ type: 'array',
986
+ items: {
987
+ type: 'string',
988
+ enum: [
989
+ 'africa-south1',
990
+ 'ap-northeast-1',
991
+ 'ap-northeast-2',
992
+ 'ap-northeast-3',
993
+ 'ap-south-1',
994
+ 'ap-southeast-1',
995
+ 'ap-southeast-2',
996
+ 'ash',
997
+ 'asia-east1',
998
+ 'asia-east2',
999
+ 'asia-northeast1',
1000
+ 'asia-northeast2',
1001
+ 'asia-northeast3',
1002
+ 'asia-south1',
1003
+ 'asia-south2',
1004
+ 'asia-southeast1',
1005
+ 'asia-southeast2',
1006
+ 'australia-southeast1',
1007
+ 'australia-southeast2',
1008
+ 'ca-central-1',
1009
+ 'eu-central-1',
1010
+ 'eu-central-2',
1011
+ 'eu-north-1',
1012
+ 'eu-west-1',
1013
+ 'eu-west-2',
1014
+ 'eu-west-3',
1015
+ 'europe-central2',
1016
+ 'europe-north1',
1017
+ 'europe-southwest1',
1018
+ 'europe-west1',
1019
+ 'europe-west10',
1020
+ 'europe-west12',
1021
+ 'europe-west2',
1022
+ 'europe-west3',
1023
+ 'europe-west4',
1024
+ 'europe-west6',
1025
+ 'europe-west8',
1026
+ 'europe-west9',
1027
+ 'fsn1',
1028
+ 'hel1',
1029
+ 'hil',
1030
+ 'me-central1',
1031
+ 'me-central2',
1032
+ 'me-west1',
1033
+ 'nbg1',
1034
+ 'northamerica-northeast1',
1035
+ 'northamerica-northeast2',
1036
+ 'sa-east-1',
1037
+ 'sin',
1038
+ 'southamerica-east1',
1039
+ 'southamerica-west1',
1040
+ 'us-central1',
1041
+ 'us-east-1',
1042
+ 'us-east-2',
1043
+ 'us-east1',
1044
+ 'us-east4',
1045
+ 'us-east5',
1046
+ 'us-south1',
1047
+ 'us-west-1',
1048
+ 'us-west-2',
1049
+ 'us-west1',
1050
+ 'us-west2',
1051
+ 'us-west3',
1052
+ 'us-west4'
1053
+ ]
1054
+ },
1055
+ description: 'Allowed values for `topology.kubernetes.io/region`.'
1056
+ }
1057
+ },
1058
+ additionalProperties: false,
1059
+ 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.'
1060
+ },
1061
+ scalingProfile: {
1062
+ type: 'string',
1063
+ description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.',
1064
+ example: 'conservative',
1065
+ enum: [
1066
+ 'aggressive',
1067
+ 'conservative'
1068
+ ]
1069
+ },
798
1070
  id: {
799
1071
  type: 'string',
800
1072
  maxLength: 63,
@@ -818,13 +1090,10 @@ export const FleetSchema = {
818
1090
  cpu: {
819
1091
  type: 'number',
820
1092
  format: 'float',
821
- minimum: 0,
1093
+ minimum: 8,
822
1094
  description: 'CPU limit in cores.'
823
1095
  }
824
1096
  },
825
- required: [
826
- 'cpu'
827
- ],
828
1097
  additionalProperties: false,
829
1098
  description: 'Limits define a set of bounds for provisioning capacity.'
830
1099
  },
@@ -854,12 +1123,9 @@ export const FleetSchema = {
854
1123
  },
855
1124
  apiKey: {
856
1125
  type: 'string',
857
- description: 'Hetzner Cloud API key with read / write access'
1126
+ description: 'Hetzner Cloud API key with read / write access. On update, omit this field to keep the existing value.'
858
1127
  }
859
1128
  },
860
- required: [
861
- 'apiKey'
862
- ],
863
1129
  additionalProperties: false
864
1130
  },
865
1131
  aws: {
@@ -879,6 +1145,284 @@ export const FleetSchema = {
879
1145
  ],
880
1146
  additionalProperties: false
881
1147
  },
1148
+ constraints: {
1149
+ type: 'object',
1150
+ properties: {
1151
+ 'karpenter.sh/capacity-type': {
1152
+ type: 'array',
1153
+ items: {
1154
+ type: 'string',
1155
+ enum: [
1156
+ 'on-demand',
1157
+ 'spot'
1158
+ ]
1159
+ },
1160
+ description: 'Allowed values for `karpenter.sh/capacity-type`.'
1161
+ },
1162
+ 'kubernetes.io/arch': {
1163
+ type: 'array',
1164
+ items: {
1165
+ type: 'string',
1166
+ enum: [
1167
+ 'amd64',
1168
+ 'arm64'
1169
+ ]
1170
+ },
1171
+ description: 'Allowed values for `kubernetes.io/arch`.'
1172
+ },
1173
+ 'cfke.io/instance-family': {
1174
+ type: 'array',
1175
+ items: {
1176
+ type: 'string',
1177
+ enum: [
1178
+ 'a1',
1179
+ 'a2',
1180
+ 'a3',
1181
+ 'a4',
1182
+ 'c1',
1183
+ 'c2',
1184
+ 'c2d',
1185
+ 'c3',
1186
+ 'c3d',
1187
+ 'c4',
1188
+ 'c4a',
1189
+ 'c4d',
1190
+ 'c5',
1191
+ 'c5a',
1192
+ 'c5ad',
1193
+ 'c5d',
1194
+ 'c5n',
1195
+ 'c6a',
1196
+ 'c6g',
1197
+ 'c6gd',
1198
+ 'c6gn',
1199
+ 'c6i',
1200
+ 'c6id',
1201
+ 'c6in',
1202
+ 'c7a',
1203
+ 'c7g',
1204
+ 'c7gd',
1205
+ 'c7gn',
1206
+ 'c7i',
1207
+ 'c7i-flex',
1208
+ 'c8g',
1209
+ 'c8gd',
1210
+ 'cax',
1211
+ 'ccx',
1212
+ 'cpx',
1213
+ 'cx',
1214
+ 'd2',
1215
+ 'd3',
1216
+ 'd3en',
1217
+ 'dl1',
1218
+ 'dl2q',
1219
+ 'e2',
1220
+ 'f1',
1221
+ 'f2',
1222
+ 'g1',
1223
+ 'g2',
1224
+ 'g4ad',
1225
+ 'g4dn',
1226
+ 'g5',
1227
+ 'g5g',
1228
+ 'g6',
1229
+ 'g6e',
1230
+ 'gr6',
1231
+ 'h1',
1232
+ 'h3',
1233
+ 'hpc6a',
1234
+ 'hpc6id',
1235
+ 'hpc7a',
1236
+ 'hpc7g',
1237
+ 'i2',
1238
+ 'i3',
1239
+ 'i3en',
1240
+ 'i4g',
1241
+ 'i4i',
1242
+ 'i7i',
1243
+ 'i7ie',
1244
+ 'i8g',
1245
+ 'im4gn',
1246
+ 'inf1',
1247
+ 'inf2',
1248
+ 'is4gen',
1249
+ 'm1',
1250
+ 'm2',
1251
+ 'm3',
1252
+ 'm4',
1253
+ 'm5',
1254
+ 'm5a',
1255
+ 'm5ad',
1256
+ 'm5d',
1257
+ 'm5dn',
1258
+ 'm5n',
1259
+ 'm5zn',
1260
+ 'm6a',
1261
+ 'm6g',
1262
+ 'm6gd',
1263
+ 'm6i',
1264
+ 'm6id',
1265
+ 'm6idn',
1266
+ 'm6in',
1267
+ 'm7a',
1268
+ 'm7g',
1269
+ 'm7gd',
1270
+ 'm7i',
1271
+ 'm7i-flex',
1272
+ 'm8g',
1273
+ 'm8gd',
1274
+ 'n1',
1275
+ 'n2',
1276
+ 'n2d',
1277
+ 'n4',
1278
+ 'p3',
1279
+ 'p3dn',
1280
+ 'p4d',
1281
+ 'p4de',
1282
+ 'p5',
1283
+ 'p5e',
1284
+ 'p5en',
1285
+ 'p6-b200',
1286
+ 'r3',
1287
+ 'r4',
1288
+ 'r5',
1289
+ 'r5a',
1290
+ 'r5ad',
1291
+ 'r5b',
1292
+ 'r5d',
1293
+ 'r5dn',
1294
+ 'r5n',
1295
+ 'r6a',
1296
+ 'r6g',
1297
+ 'r6gd',
1298
+ 'r6i',
1299
+ 'r6id',
1300
+ 'r6idn',
1301
+ 'r6in',
1302
+ 'r7a',
1303
+ 'r7g',
1304
+ 'r7gd',
1305
+ 'r7i',
1306
+ 'r7iz',
1307
+ 'r8g',
1308
+ 'r8gd',
1309
+ 't2',
1310
+ 't2a',
1311
+ 't2d',
1312
+ 't3',
1313
+ 't3a',
1314
+ 't4g',
1315
+ 'trn1',
1316
+ 'trn1n',
1317
+ 'u-3tb1',
1318
+ 'u-6tb1',
1319
+ 'u7i-12tb',
1320
+ 'u7i-6tb',
1321
+ 'u7i-8tb',
1322
+ 'u7in-16tb',
1323
+ 'u7in-24tb',
1324
+ 'u7in-32tb',
1325
+ 'vt1',
1326
+ 'x1',
1327
+ 'x1e',
1328
+ 'x2gd',
1329
+ 'x2idn',
1330
+ 'x2iedn',
1331
+ 'x2iezn',
1332
+ 'x4',
1333
+ 'x8g',
1334
+ 'z1d',
1335
+ 'z3'
1336
+ ]
1337
+ },
1338
+ description: 'Allowed values for `cfke.io/instance-family`.'
1339
+ },
1340
+ 'topology.kubernetes.io/region': {
1341
+ type: 'array',
1342
+ items: {
1343
+ type: 'string',
1344
+ enum: [
1345
+ 'africa-south1',
1346
+ 'ap-northeast-1',
1347
+ 'ap-northeast-2',
1348
+ 'ap-northeast-3',
1349
+ 'ap-south-1',
1350
+ 'ap-southeast-1',
1351
+ 'ap-southeast-2',
1352
+ 'ash',
1353
+ 'asia-east1',
1354
+ 'asia-east2',
1355
+ 'asia-northeast1',
1356
+ 'asia-northeast2',
1357
+ 'asia-northeast3',
1358
+ 'asia-south1',
1359
+ 'asia-south2',
1360
+ 'asia-southeast1',
1361
+ 'asia-southeast2',
1362
+ 'australia-southeast1',
1363
+ 'australia-southeast2',
1364
+ 'ca-central-1',
1365
+ 'eu-central-1',
1366
+ 'eu-central-2',
1367
+ 'eu-north-1',
1368
+ 'eu-west-1',
1369
+ 'eu-west-2',
1370
+ 'eu-west-3',
1371
+ 'europe-central2',
1372
+ 'europe-north1',
1373
+ 'europe-southwest1',
1374
+ 'europe-west1',
1375
+ 'europe-west10',
1376
+ 'europe-west12',
1377
+ 'europe-west2',
1378
+ 'europe-west3',
1379
+ 'europe-west4',
1380
+ 'europe-west6',
1381
+ 'europe-west8',
1382
+ 'europe-west9',
1383
+ 'fsn1',
1384
+ 'hel1',
1385
+ 'hil',
1386
+ 'me-central1',
1387
+ 'me-central2',
1388
+ 'me-west1',
1389
+ 'nbg1',
1390
+ 'northamerica-northeast1',
1391
+ 'northamerica-northeast2',
1392
+ 'sa-east-1',
1393
+ 'sin',
1394
+ 'southamerica-east1',
1395
+ 'southamerica-west1',
1396
+ 'us-central1',
1397
+ 'us-east-1',
1398
+ 'us-east-2',
1399
+ 'us-east1',
1400
+ 'us-east4',
1401
+ 'us-east5',
1402
+ 'us-south1',
1403
+ 'us-west-1',
1404
+ 'us-west-2',
1405
+ 'us-west1',
1406
+ 'us-west2',
1407
+ 'us-west3',
1408
+ 'us-west4'
1409
+ ]
1410
+ },
1411
+ description: 'Allowed values for `topology.kubernetes.io/region`.'
1412
+ }
1413
+ },
1414
+ additionalProperties: false,
1415
+ 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.'
1416
+ },
1417
+ scalingProfile: {
1418
+ type: 'string',
1419
+ description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.',
1420
+ example: 'conservative',
1421
+ enum: [
1422
+ 'aggressive',
1423
+ 'conservative'
1424
+ ]
1425
+ },
882
1426
  id: {
883
1427
  type: 'string',
884
1428
  maxLength: 63,
@@ -902,13 +1446,10 @@ export const FleetUpdateInputSchema = {
902
1446
  cpu: {
903
1447
  type: 'number',
904
1448
  format: 'float',
905
- minimum: 0,
1449
+ minimum: 8,
906
1450
  description: 'CPU limit in cores.'
907
1451
  }
908
1452
  },
909
- required: [
910
- 'cpu'
911
- ],
912
1453
  additionalProperties: false,
913
1454
  description: 'Limits define a set of bounds for provisioning capacity.'
914
1455
  },
@@ -938,12 +1479,9 @@ export const FleetUpdateInputSchema = {
938
1479
  },
939
1480
  apiKey: {
940
1481
  type: 'string',
941
- description: 'Hetzner Cloud API key with read / write access'
1482
+ description: 'Hetzner Cloud API key with read / write access. On update, omit this field to keep the existing value.'
942
1483
  }
943
1484
  },
944
- required: [
945
- 'apiKey'
946
- ],
947
1485
  additionalProperties: false
948
1486
  },
949
1487
  aws: {
@@ -962,6 +1500,284 @@ export const FleetUpdateInputSchema = {
962
1500
  'controllerRoleArn'
963
1501
  ],
964
1502
  additionalProperties: false
1503
+ },
1504
+ constraints: {
1505
+ type: 'object',
1506
+ properties: {
1507
+ 'karpenter.sh/capacity-type': {
1508
+ type: 'array',
1509
+ items: {
1510
+ type: 'string',
1511
+ enum: [
1512
+ 'on-demand',
1513
+ 'spot'
1514
+ ]
1515
+ },
1516
+ description: 'Allowed values for `karpenter.sh/capacity-type`.'
1517
+ },
1518
+ 'kubernetes.io/arch': {
1519
+ type: 'array',
1520
+ items: {
1521
+ type: 'string',
1522
+ enum: [
1523
+ 'amd64',
1524
+ 'arm64'
1525
+ ]
1526
+ },
1527
+ description: 'Allowed values for `kubernetes.io/arch`.'
1528
+ },
1529
+ 'cfke.io/instance-family': {
1530
+ type: 'array',
1531
+ items: {
1532
+ type: 'string',
1533
+ enum: [
1534
+ 'a1',
1535
+ 'a2',
1536
+ 'a3',
1537
+ 'a4',
1538
+ 'c1',
1539
+ 'c2',
1540
+ 'c2d',
1541
+ 'c3',
1542
+ 'c3d',
1543
+ 'c4',
1544
+ 'c4a',
1545
+ 'c4d',
1546
+ 'c5',
1547
+ 'c5a',
1548
+ 'c5ad',
1549
+ 'c5d',
1550
+ 'c5n',
1551
+ 'c6a',
1552
+ 'c6g',
1553
+ 'c6gd',
1554
+ 'c6gn',
1555
+ 'c6i',
1556
+ 'c6id',
1557
+ 'c6in',
1558
+ 'c7a',
1559
+ 'c7g',
1560
+ 'c7gd',
1561
+ 'c7gn',
1562
+ 'c7i',
1563
+ 'c7i-flex',
1564
+ 'c8g',
1565
+ 'c8gd',
1566
+ 'cax',
1567
+ 'ccx',
1568
+ 'cpx',
1569
+ 'cx',
1570
+ 'd2',
1571
+ 'd3',
1572
+ 'd3en',
1573
+ 'dl1',
1574
+ 'dl2q',
1575
+ 'e2',
1576
+ 'f1',
1577
+ 'f2',
1578
+ 'g1',
1579
+ 'g2',
1580
+ 'g4ad',
1581
+ 'g4dn',
1582
+ 'g5',
1583
+ 'g5g',
1584
+ 'g6',
1585
+ 'g6e',
1586
+ 'gr6',
1587
+ 'h1',
1588
+ 'h3',
1589
+ 'hpc6a',
1590
+ 'hpc6id',
1591
+ 'hpc7a',
1592
+ 'hpc7g',
1593
+ 'i2',
1594
+ 'i3',
1595
+ 'i3en',
1596
+ 'i4g',
1597
+ 'i4i',
1598
+ 'i7i',
1599
+ 'i7ie',
1600
+ 'i8g',
1601
+ 'im4gn',
1602
+ 'inf1',
1603
+ 'inf2',
1604
+ 'is4gen',
1605
+ 'm1',
1606
+ 'm2',
1607
+ 'm3',
1608
+ 'm4',
1609
+ 'm5',
1610
+ 'm5a',
1611
+ 'm5ad',
1612
+ 'm5d',
1613
+ 'm5dn',
1614
+ 'm5n',
1615
+ 'm5zn',
1616
+ 'm6a',
1617
+ 'm6g',
1618
+ 'm6gd',
1619
+ 'm6i',
1620
+ 'm6id',
1621
+ 'm6idn',
1622
+ 'm6in',
1623
+ 'm7a',
1624
+ 'm7g',
1625
+ 'm7gd',
1626
+ 'm7i',
1627
+ 'm7i-flex',
1628
+ 'm8g',
1629
+ 'm8gd',
1630
+ 'n1',
1631
+ 'n2',
1632
+ 'n2d',
1633
+ 'n4',
1634
+ 'p3',
1635
+ 'p3dn',
1636
+ 'p4d',
1637
+ 'p4de',
1638
+ 'p5',
1639
+ 'p5e',
1640
+ 'p5en',
1641
+ 'p6-b200',
1642
+ 'r3',
1643
+ 'r4',
1644
+ 'r5',
1645
+ 'r5a',
1646
+ 'r5ad',
1647
+ 'r5b',
1648
+ 'r5d',
1649
+ 'r5dn',
1650
+ 'r5n',
1651
+ 'r6a',
1652
+ 'r6g',
1653
+ 'r6gd',
1654
+ 'r6i',
1655
+ 'r6id',
1656
+ 'r6idn',
1657
+ 'r6in',
1658
+ 'r7a',
1659
+ 'r7g',
1660
+ 'r7gd',
1661
+ 'r7i',
1662
+ 'r7iz',
1663
+ 'r8g',
1664
+ 'r8gd',
1665
+ 't2',
1666
+ 't2a',
1667
+ 't2d',
1668
+ 't3',
1669
+ 't3a',
1670
+ 't4g',
1671
+ 'trn1',
1672
+ 'trn1n',
1673
+ 'u-3tb1',
1674
+ 'u-6tb1',
1675
+ 'u7i-12tb',
1676
+ 'u7i-6tb',
1677
+ 'u7i-8tb',
1678
+ 'u7in-16tb',
1679
+ 'u7in-24tb',
1680
+ 'u7in-32tb',
1681
+ 'vt1',
1682
+ 'x1',
1683
+ 'x1e',
1684
+ 'x2gd',
1685
+ 'x2idn',
1686
+ 'x2iedn',
1687
+ 'x2iezn',
1688
+ 'x4',
1689
+ 'x8g',
1690
+ 'z1d',
1691
+ 'z3'
1692
+ ]
1693
+ },
1694
+ description: 'Allowed values for `cfke.io/instance-family`.'
1695
+ },
1696
+ 'topology.kubernetes.io/region': {
1697
+ type: 'array',
1698
+ items: {
1699
+ type: 'string',
1700
+ enum: [
1701
+ 'africa-south1',
1702
+ 'ap-northeast-1',
1703
+ 'ap-northeast-2',
1704
+ 'ap-northeast-3',
1705
+ 'ap-south-1',
1706
+ 'ap-southeast-1',
1707
+ 'ap-southeast-2',
1708
+ 'ash',
1709
+ 'asia-east1',
1710
+ 'asia-east2',
1711
+ 'asia-northeast1',
1712
+ 'asia-northeast2',
1713
+ 'asia-northeast3',
1714
+ 'asia-south1',
1715
+ 'asia-south2',
1716
+ 'asia-southeast1',
1717
+ 'asia-southeast2',
1718
+ 'australia-southeast1',
1719
+ 'australia-southeast2',
1720
+ 'ca-central-1',
1721
+ 'eu-central-1',
1722
+ 'eu-central-2',
1723
+ 'eu-north-1',
1724
+ 'eu-west-1',
1725
+ 'eu-west-2',
1726
+ 'eu-west-3',
1727
+ 'europe-central2',
1728
+ 'europe-north1',
1729
+ 'europe-southwest1',
1730
+ 'europe-west1',
1731
+ 'europe-west10',
1732
+ 'europe-west12',
1733
+ 'europe-west2',
1734
+ 'europe-west3',
1735
+ 'europe-west4',
1736
+ 'europe-west6',
1737
+ 'europe-west8',
1738
+ 'europe-west9',
1739
+ 'fsn1',
1740
+ 'hel1',
1741
+ 'hil',
1742
+ 'me-central1',
1743
+ 'me-central2',
1744
+ 'me-west1',
1745
+ 'nbg1',
1746
+ 'northamerica-northeast1',
1747
+ 'northamerica-northeast2',
1748
+ 'sa-east-1',
1749
+ 'sin',
1750
+ 'southamerica-east1',
1751
+ 'southamerica-west1',
1752
+ 'us-central1',
1753
+ 'us-east-1',
1754
+ 'us-east-2',
1755
+ 'us-east1',
1756
+ 'us-east4',
1757
+ 'us-east5',
1758
+ 'us-south1',
1759
+ 'us-west-1',
1760
+ 'us-west-2',
1761
+ 'us-west1',
1762
+ 'us-west2',
1763
+ 'us-west3',
1764
+ 'us-west4'
1765
+ ]
1766
+ },
1767
+ description: 'Allowed values for `topology.kubernetes.io/region`.'
1768
+ }
1769
+ },
1770
+ additionalProperties: false,
1771
+ 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.'
1772
+ },
1773
+ scalingProfile: {
1774
+ type: 'string',
1775
+ description: 'Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.',
1776
+ example: 'conservative',
1777
+ enum: [
1778
+ 'aggressive',
1779
+ 'conservative'
1780
+ ]
965
1781
  }
966
1782
  },
967
1783
  additionalProperties: false
@@ -1351,18 +2167,6 @@ export const OrganizationSchema = {
1351
2167
  minItems: 1,
1352
2168
  description: 'List of CFKE control plane versions available for the organization.'
1353
2169
  },
1354
- copilot_user_hourly_tokens: {
1355
- type: 'integer',
1356
- minimum: 0,
1357
- description: 'User-level maximum number of tokens Cloudfleet Copilot can process per hour.',
1358
- example: 42000
1359
- },
1360
- copilot_organization_hourly_tokens: {
1361
- type: 'integer',
1362
- minimum: 0,
1363
- description: 'Organization-level maximum number of tokens Cloudfleet Copilot can process per hour.',
1364
- example: 242000
1365
- },
1366
2170
  cfcr_storage_gb: {
1367
2171
  type: 'integer',
1368
2172
  minimum: -1,
@@ -1379,8 +2183,6 @@ export const OrganizationSchema = {
1379
2183
  'cluster_tiers',
1380
2184
  'regions',
1381
2185
  'versions',
1382
- 'copilot_user_hourly_tokens',
1383
- 'copilot_organization_hourly_tokens',
1384
2186
  'cfcr_storage_gb'
1385
2187
  ],
1386
2188
  additionalProperties: false,
@@ -1551,18 +2353,6 @@ export const PlatformQuotaSchema = {
1551
2353
  minItems: 1,
1552
2354
  description: 'List of CFKE control plane versions available for the organization.'
1553
2355
  },
1554
- copilot_user_hourly_tokens: {
1555
- type: 'integer',
1556
- minimum: 0,
1557
- description: 'User-level maximum number of tokens Cloudfleet Copilot can process per hour.',
1558
- example: 42000
1559
- },
1560
- copilot_organization_hourly_tokens: {
1561
- type: 'integer',
1562
- minimum: 0,
1563
- description: 'Organization-level maximum number of tokens Cloudfleet Copilot can process per hour.',
1564
- example: 242000
1565
- },
1566
2356
  cfcr_storage_gb: {
1567
2357
  type: 'integer',
1568
2358
  minimum: -1,
@@ -1579,8 +2369,6 @@ export const PlatformQuotaSchema = {
1579
2369
  'cluster_tiers',
1580
2370
  'regions',
1581
2371
  'versions',
1582
- 'copilot_user_hourly_tokens',
1583
- 'copilot_organization_hourly_tokens',
1584
2372
  'cfcr_storage_gb'
1585
2373
  ],
1586
2374
  additionalProperties: false
@@ -1850,6 +2638,492 @@ export const RegistryTagSchema = {
1850
2638
  ],
1851
2639
  additionalProperties: false
1852
2640
  };
2641
+ export const TicketAttachmentSchema = {
2642
+ type: 'object',
2643
+ properties: {
2644
+ id: {
2645
+ type: 'string',
2646
+ description: 'Unique identifier of the attachment (Mongo ObjectId).',
2647
+ example: '60c72b2f9f1b2c001f8e4d3c'
2648
+ },
2649
+ filename: {
2650
+ type: 'string',
2651
+ description: 'Original filename as uploaded.',
2652
+ example: 'debug.log'
2653
+ },
2654
+ content_type: {
2655
+ type: 'string',
2656
+ description: 'MIME content type of the attachment.',
2657
+ example: 'text/plain'
2658
+ },
2659
+ size: {
2660
+ type: 'integer',
2661
+ description: 'Size of the attachment in bytes.',
2662
+ example: 12345
2663
+ }
2664
+ },
2665
+ required: [
2666
+ 'id',
2667
+ 'filename',
2668
+ 'content_type',
2669
+ 'size'
2670
+ ],
2671
+ additionalProperties: false
2672
+ };
2673
+ export const TicketCreateInputSchema = {
2674
+ type: 'object',
2675
+ properties: {
2676
+ category: {
2677
+ type: 'string',
2678
+ description: 'Ticket category. Drives auto-assignment and may carry a subcategory in `properties`.',
2679
+ example: 'technical',
2680
+ enum: [
2681
+ 'billing',
2682
+ 'technical',
2683
+ 'general'
2684
+ ]
2685
+ },
2686
+ body: {
2687
+ type: 'string',
2688
+ maxLength: 50000,
2689
+ minLength: 1,
2690
+ pattern: '\\S',
2691
+ description: 'Initial message body in markdown. There is no separate subject — the first message body is the description.',
2692
+ example: 'My cluster cannot reach the registry. Logs attached.'
2693
+ },
2694
+ properties: {
2695
+ type: 'object',
2696
+ additionalProperties: true,
2697
+ description: 'Free-form key/value bag set by the UI (e.g. `subcategory`, `cluster_id`, `cluster_name`, `region`).',
2698
+ example: {
2699
+ subcategory: 'cluster-question',
2700
+ cluster_id: '60c72b2f9f1b2c001f8e4d3a'
2701
+ }
2702
+ }
2703
+ },
2704
+ required: [
2705
+ 'category',
2706
+ 'body'
2707
+ ],
2708
+ additionalProperties: false
2709
+ };
2710
+ export const TicketListResponseSchema = {
2711
+ type: 'object',
2712
+ properties: {
2713
+ items: {
2714
+ type: 'array',
2715
+ items: {
2716
+ type: 'object',
2717
+ properties: {
2718
+ id: {
2719
+ type: 'string',
2720
+ description: 'Unique identifier of the ticket (Mongo ObjectId).',
2721
+ example: '60c72b2f9f1b2c001f8e4d3a'
2722
+ },
2723
+ status: {
2724
+ type: 'string',
2725
+ description: 'Current state of the ticket.',
2726
+ example: 'waiting_on_us',
2727
+ enum: [
2728
+ 'waiting_on_us',
2729
+ 'waiting_on_user',
2730
+ 'closed'
2731
+ ]
2732
+ },
2733
+ category: {
2734
+ type: 'string',
2735
+ description: 'Ticket category.',
2736
+ example: 'technical',
2737
+ enum: [
2738
+ 'billing',
2739
+ 'technical',
2740
+ 'general'
2741
+ ]
2742
+ },
2743
+ summary: {
2744
+ type: 'string',
2745
+ description: 'First 128 characters of the initial message body, with markdown formatting and newlines stripped. Used for ticket list previews.',
2746
+ example: 'My cluster cannot reach the registry. Logs attached.'
2747
+ },
2748
+ closed_at: {
2749
+ type: 'string',
2750
+ format: 'date-time',
2751
+ nullable: true,
2752
+ description: 'Closure timestamp. Null while the ticket is open.',
2753
+ example: '2026-05-18T16:08:14.338Z'
2754
+ },
2755
+ date_created: {
2756
+ type: 'string',
2757
+ format: 'date-time',
2758
+ description: 'Creation date of the ticket. ISO 8601 UTC.',
2759
+ example: '2026-05-11T16:08:14.338Z'
2760
+ },
2761
+ date_updated: {
2762
+ type: 'string',
2763
+ format: 'date-time',
2764
+ description: 'Last update date of the ticket. ISO 8601 UTC.',
2765
+ example: '2026-05-11T16:08:14.338Z'
2766
+ },
2767
+ messages: {
2768
+ type: 'array',
2769
+ items: {
2770
+ type: 'object',
2771
+ properties: {
2772
+ id: {
2773
+ type: 'string',
2774
+ description: 'Unique identifier of the message (Mongo ObjectId).',
2775
+ example: '60c72b2f9f1b2c001f8e4d3b'
2776
+ },
2777
+ type: {
2778
+ type: 'string',
2779
+ description: 'Message type. Internal notes are filtered out of customer-facing responses.',
2780
+ example: 'customer_reply',
2781
+ enum: [
2782
+ 'customer_reply',
2783
+ 'agent_reply'
2784
+ ]
2785
+ },
2786
+ body: {
2787
+ type: 'string',
2788
+ description: 'Message body in markdown.',
2789
+ example: 'Thanks — that resolved it on my side.'
2790
+ },
2791
+ author_first_name: {
2792
+ type: 'string',
2793
+ nullable: true,
2794
+ description: 'First name of the author. Null when not provided.',
2795
+ example: 'Jane'
2796
+ },
2797
+ author_last_name: {
2798
+ type: 'string',
2799
+ nullable: true,
2800
+ description: 'Last name of the author. Null when not provided.',
2801
+ example: 'Doe'
2802
+ },
2803
+ attachments: {
2804
+ type: 'array',
2805
+ items: {
2806
+ type: 'object',
2807
+ properties: {
2808
+ id: {
2809
+ type: 'string',
2810
+ description: 'Unique identifier of the attachment (Mongo ObjectId).',
2811
+ example: '60c72b2f9f1b2c001f8e4d3c'
2812
+ },
2813
+ filename: {
2814
+ type: 'string',
2815
+ description: 'Original filename as uploaded.',
2816
+ example: 'debug.log'
2817
+ },
2818
+ content_type: {
2819
+ type: 'string',
2820
+ description: 'MIME content type of the attachment.',
2821
+ example: 'text/plain'
2822
+ },
2823
+ size: {
2824
+ type: 'integer',
2825
+ description: 'Size of the attachment in bytes.',
2826
+ example: 12345
2827
+ }
2828
+ },
2829
+ required: [
2830
+ 'id',
2831
+ 'filename',
2832
+ 'content_type',
2833
+ 'size'
2834
+ ],
2835
+ additionalProperties: false
2836
+ },
2837
+ description: 'Attachments associated with this message.',
2838
+ example: []
2839
+ },
2840
+ date_created: {
2841
+ type: 'string',
2842
+ format: 'date-time',
2843
+ description: 'Creation date of the message. ISO 8601 UTC.',
2844
+ example: '2026-05-11T16:08:14.338Z'
2845
+ }
2846
+ },
2847
+ required: [
2848
+ 'id',
2849
+ 'type',
2850
+ 'body',
2851
+ 'date_created'
2852
+ ],
2853
+ additionalProperties: false
2854
+ },
2855
+ description: 'Messages on the ticket in chronological order. Internal notes are excluded. Returned by the detail endpoint only.'
2856
+ }
2857
+ },
2858
+ required: [
2859
+ 'id',
2860
+ 'status',
2861
+ 'category',
2862
+ 'summary',
2863
+ 'date_created',
2864
+ 'date_updated'
2865
+ ],
2866
+ additionalProperties: false
2867
+ },
2868
+ description: 'Tickets for the organization, ordered newest first. Messages are omitted from list responses.'
2869
+ }
2870
+ },
2871
+ required: [
2872
+ 'items'
2873
+ ],
2874
+ additionalProperties: false
2875
+ };
2876
+ export const TicketMessageInputSchema = {
2877
+ type: 'object',
2878
+ properties: {
2879
+ body: {
2880
+ type: 'string',
2881
+ maxLength: 50000,
2882
+ minLength: 1,
2883
+ pattern: '\\S',
2884
+ description: 'Reply body in markdown.',
2885
+ example: 'Thanks — that resolved it on my side.'
2886
+ }
2887
+ },
2888
+ required: [
2889
+ 'body'
2890
+ ],
2891
+ additionalProperties: false
2892
+ };
2893
+ export const TicketMessageSchema = {
2894
+ type: 'object',
2895
+ properties: {
2896
+ id: {
2897
+ type: 'string',
2898
+ description: 'Unique identifier of the message (Mongo ObjectId).',
2899
+ example: '60c72b2f9f1b2c001f8e4d3b'
2900
+ },
2901
+ type: {
2902
+ type: 'string',
2903
+ description: 'Message type. Internal notes are filtered out of customer-facing responses.',
2904
+ example: 'customer_reply',
2905
+ enum: [
2906
+ 'customer_reply',
2907
+ 'agent_reply'
2908
+ ]
2909
+ },
2910
+ body: {
2911
+ type: 'string',
2912
+ description: 'Message body in markdown.',
2913
+ example: 'Thanks — that resolved it on my side.'
2914
+ },
2915
+ author_first_name: {
2916
+ type: 'string',
2917
+ description: 'First name of the author. Null when not provided.',
2918
+ example: 'Jane'
2919
+ },
2920
+ author_last_name: {
2921
+ type: 'string',
2922
+ description: 'Last name of the author. Null when not provided.',
2923
+ example: 'Doe'
2924
+ },
2925
+ attachments: {
2926
+ type: 'array',
2927
+ items: {
2928
+ type: 'object',
2929
+ properties: {
2930
+ id: {
2931
+ type: 'string',
2932
+ description: 'Unique identifier of the attachment (Mongo ObjectId).',
2933
+ example: '60c72b2f9f1b2c001f8e4d3c'
2934
+ },
2935
+ filename: {
2936
+ type: 'string',
2937
+ description: 'Original filename as uploaded.',
2938
+ example: 'debug.log'
2939
+ },
2940
+ content_type: {
2941
+ type: 'string',
2942
+ description: 'MIME content type of the attachment.',
2943
+ example: 'text/plain'
2944
+ },
2945
+ size: {
2946
+ type: 'integer',
2947
+ description: 'Size of the attachment in bytes.',
2948
+ example: 12345
2949
+ }
2950
+ },
2951
+ required: [
2952
+ 'id',
2953
+ 'filename',
2954
+ 'content_type',
2955
+ 'size'
2956
+ ],
2957
+ additionalProperties: false
2958
+ },
2959
+ description: 'Attachments associated with this message.',
2960
+ example: []
2961
+ },
2962
+ date_created: {
2963
+ type: 'string',
2964
+ format: 'date-time',
2965
+ description: 'Creation date of the message. ISO 8601 UTC.',
2966
+ example: '2026-05-11T16:08:14.338Z'
2967
+ }
2968
+ },
2969
+ required: [
2970
+ 'id',
2971
+ 'type',
2972
+ 'body',
2973
+ 'date_created'
2974
+ ],
2975
+ additionalProperties: false
2976
+ };
2977
+ export const TicketSchema = {
2978
+ type: 'object',
2979
+ properties: {
2980
+ id: {
2981
+ type: 'string',
2982
+ description: 'Unique identifier of the ticket (Mongo ObjectId).',
2983
+ example: '60c72b2f9f1b2c001f8e4d3a'
2984
+ },
2985
+ status: {
2986
+ type: 'string',
2987
+ description: 'Current state of the ticket.',
2988
+ example: 'waiting_on_us',
2989
+ enum: [
2990
+ 'waiting_on_us',
2991
+ 'waiting_on_user',
2992
+ 'closed'
2993
+ ]
2994
+ },
2995
+ category: {
2996
+ type: 'string',
2997
+ description: 'Ticket category.',
2998
+ example: 'technical',
2999
+ enum: [
3000
+ 'billing',
3001
+ 'technical',
3002
+ 'general'
3003
+ ]
3004
+ },
3005
+ summary: {
3006
+ type: 'string',
3007
+ description: 'First 128 characters of the initial message body, with markdown formatting and newlines stripped. Used for ticket list previews.',
3008
+ example: 'My cluster cannot reach the registry. Logs attached.'
3009
+ },
3010
+ closed_at: {
3011
+ type: 'string',
3012
+ format: 'date-time',
3013
+ description: 'Closure timestamp. Null while the ticket is open.',
3014
+ example: '2026-05-18T16:08:14.338Z'
3015
+ },
3016
+ date_created: {
3017
+ type: 'string',
3018
+ format: 'date-time',
3019
+ description: 'Creation date of the ticket. ISO 8601 UTC.',
3020
+ example: '2026-05-11T16:08:14.338Z'
3021
+ },
3022
+ date_updated: {
3023
+ type: 'string',
3024
+ format: 'date-time',
3025
+ description: 'Last update date of the ticket. ISO 8601 UTC.',
3026
+ example: '2026-05-11T16:08:14.338Z'
3027
+ },
3028
+ messages: {
3029
+ type: 'array',
3030
+ items: {
3031
+ type: 'object',
3032
+ properties: {
3033
+ id: {
3034
+ type: 'string',
3035
+ description: 'Unique identifier of the message (Mongo ObjectId).',
3036
+ example: '60c72b2f9f1b2c001f8e4d3b'
3037
+ },
3038
+ type: {
3039
+ type: 'string',
3040
+ description: 'Message type. Internal notes are filtered out of customer-facing responses.',
3041
+ example: 'customer_reply',
3042
+ enum: [
3043
+ 'customer_reply',
3044
+ 'agent_reply'
3045
+ ]
3046
+ },
3047
+ body: {
3048
+ type: 'string',
3049
+ description: 'Message body in markdown.',
3050
+ example: 'Thanks — that resolved it on my side.'
3051
+ },
3052
+ author_first_name: {
3053
+ type: 'string',
3054
+ description: 'First name of the author. Null when not provided.',
3055
+ example: 'Jane'
3056
+ },
3057
+ author_last_name: {
3058
+ type: 'string',
3059
+ description: 'Last name of the author. Null when not provided.',
3060
+ example: 'Doe'
3061
+ },
3062
+ attachments: {
3063
+ type: 'array',
3064
+ items: {
3065
+ type: 'object',
3066
+ properties: {
3067
+ id: {
3068
+ type: 'string',
3069
+ description: 'Unique identifier of the attachment (Mongo ObjectId).',
3070
+ example: '60c72b2f9f1b2c001f8e4d3c'
3071
+ },
3072
+ filename: {
3073
+ type: 'string',
3074
+ description: 'Original filename as uploaded.',
3075
+ example: 'debug.log'
3076
+ },
3077
+ content_type: {
3078
+ type: 'string',
3079
+ description: 'MIME content type of the attachment.',
3080
+ example: 'text/plain'
3081
+ },
3082
+ size: {
3083
+ type: 'integer',
3084
+ description: 'Size of the attachment in bytes.',
3085
+ example: 12345
3086
+ }
3087
+ },
3088
+ required: [
3089
+ 'id',
3090
+ 'filename',
3091
+ 'content_type',
3092
+ 'size'
3093
+ ],
3094
+ additionalProperties: false
3095
+ },
3096
+ description: 'Attachments associated with this message.',
3097
+ example: []
3098
+ },
3099
+ date_created: {
3100
+ type: 'string',
3101
+ format: 'date-time',
3102
+ description: 'Creation date of the message. ISO 8601 UTC.',
3103
+ example: '2026-05-11T16:08:14.338Z'
3104
+ }
3105
+ },
3106
+ required: [
3107
+ 'id',
3108
+ 'type',
3109
+ 'body',
3110
+ 'date_created'
3111
+ ],
3112
+ additionalProperties: false
3113
+ },
3114
+ description: 'Messages on the ticket in chronological order. Internal notes are excluded. Returned by the detail endpoint only.'
3115
+ }
3116
+ },
3117
+ required: [
3118
+ 'id',
3119
+ 'status',
3120
+ 'category',
3121
+ 'summary',
3122
+ 'date_created',
3123
+ 'date_updated'
3124
+ ],
3125
+ additionalProperties: false
3126
+ };
1853
3127
  export const TokenCreateInputSchema = {
1854
3128
  type: 'object',
1855
3129
  properties: {