@cloudfleet/sdk 0.7.0 → 0.8.6

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.
@@ -286,7 +286,8 @@ export const ClusterCreateInputSchema = {
286
286
  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-]+)*))?$',
287
287
  description: 'Version of the kubernetes cluster.',
288
288
  default: '1.x.x-cfke.x',
289
- example: '1.29.x-cfke.x'
289
+ example: '1.x.x-cfke.x',
290
+ enum: ['1.x.x-cfke.x', '1.31.x-cfke.x', '1.32.x-cfke.x', '1.33.x-cfke.x']
290
291
  }
291
292
  },
292
293
  required: ['name', 'tier'],
@@ -323,7 +324,7 @@ MIIC0DCCAbigAwIBAgI...`
323
324
  kubernetes: {
324
325
  type: 'string',
325
326
  description: 'Kubernetes version of the cluster.',
326
- example: '1.29.3'
327
+ example: '1.33.7'
327
328
  },
328
329
  tailscale: {
329
330
  type: 'string',
@@ -396,13 +397,6 @@ export const ClusterSchema = {
396
397
  example: 'northamerica-central-1a',
397
398
  enum: ['staging', 'northamerica-central-1', 'europe-central-1a', 'northamerica-central-1a']
398
399
  },
399
- version_channel: {
400
- type: 'string',
401
- 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-]+)*))?$',
402
- description: 'Version of the kubernetes cluster.',
403
- default: '1.x.x-cfke.x',
404
- example: '1.29.x-cfke.x'
405
- },
406
400
  id: {
407
401
  type: 'string',
408
402
  format: 'uuid',
@@ -438,7 +432,7 @@ MIIC0DCCAbigAwIBAgI...`
438
432
  version_current: {
439
433
  type: 'string',
440
434
  description: 'Current version of the cluster.',
441
- example: '1.29.3-cfke.52'
435
+ example: '1.33.7-cfke.264'
442
436
  },
443
437
  created_at: {
444
438
  type: 'string',
@@ -454,6 +448,12 @@ MIIC0DCCAbigAwIBAgI...`
454
448
  type: 'boolean',
455
449
  description: 'Indicates if the cluster is ready to be used.',
456
450
  example: true
451
+ },
452
+ version_channel: {
453
+ type: 'string',
454
+ 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-]+)*))?$',
455
+ description: 'Version of the kubernetes cluster.',
456
+ example: '1.x.x-cfke.x'
457
457
  }
458
458
  },
459
459
  required: ['name', 'tier', 'id', 'status'],
@@ -480,7 +480,7 @@ export const ClusterUpdateInputSchema = {
480
480
  type: 'string',
481
481
  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-]+)*))?$',
482
482
  description: 'Version of the kubernetes cluster.',
483
- example: '1.29.x-cfke.x'
483
+ example: '1.x.x-cfke.x'
484
484
  }
485
485
  },
486
486
  required: ['tier'],
@@ -787,87 +787,143 @@ export const InvoiceSchema = {
787
787
  required: ['created', 'period_start', 'period_end'],
788
788
  additionalProperties: false
789
789
  };
790
- export const MarketplaceListingSchema = {
790
+ export const MarketplaceListingFilesSchema = {
791
791
  type: 'object',
792
792
  properties: {
793
- id: {
794
- type: 'string',
795
- maxLength: 63,
796
- minLength: 1,
797
- pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
798
- description: 'Id of the chart listing',
799
- example: 'portworx-enterprise-disaster-recovery-baremetal'
800
- },
801
- name: {
802
- type: 'string',
803
- description: 'Name of the chart listing',
804
- example: 'Portworx Enterprise + Disaster Recovery - Baremetal'
805
- },
806
- developer: {
793
+ chartYaml: {
807
794
  type: 'string',
808
- description: 'Author of the chart listing',
809
- example: 'Portworx'
795
+ description: 'Raw Chart.yaml content from the Helm chart',
796
+ example: `apiVersion: v2
797
+ name: nginx-ingress
798
+ version: 1.18.2-cfke.45
799
+ appVersion: 1.9.4`
810
800
  },
811
- description: {
801
+ valuesYaml: {
812
802
  type: 'string',
813
- description: 'Short description of the chart listing',
814
- example: 'Run Kubernetes with unmatched scalability, availability, and self-service access to any storage'
803
+ description: 'Raw values.yaml content from the Helm chart',
804
+ example: `replicaCount: 1
805
+ image:
806
+ repository: nginx
807
+ tag: latest`
815
808
  },
816
- logoUrl: {
809
+ valuesSchemaJson: {
817
810
  type: 'string',
818
- description: 'Logo of the chart listing',
819
- example: 'https://portworx.com/wp-content/themes/portworx/assets/images/header/portworx-logo.png'
820
- },
821
- longDescription: {
811
+ description: 'JSON schema for values.yaml as a string',
812
+ example: '{"type":"object","properties":{"replicaCount":{"type":"number"}}}'
813
+ }
814
+ },
815
+ additionalProperties: false
816
+ };
817
+ export const MarketplaceListingSchema = {
818
+ type: 'object',
819
+ properties: {
820
+ name: {
822
821
  type: 'string',
823
- description: 'Long description of the chart listing',
824
- example: 'Portworx-Enterprise is the complete multi-cloud ready Kubernetes storage platform for running mission-critical apps in production....'
822
+ description: 'Name of the chart',
823
+ example: 'nginx-ingress'
825
824
  },
826
- categories: {
825
+ versions: {
827
826
  type: 'array',
828
827
  items: {
829
828
  type: 'string',
830
- example: 'AI & Machine Learning'
829
+ pattern: '^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(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-]+)*))?$',
830
+ description: 'Specific version of the chart',
831
+ example: '1.18.2-cfke.45'
831
832
  },
832
- description: 'Tags of the chart'
833
+ description: 'Available versions of the chart'
833
834
  },
834
835
  version_channels: {
835
836
  type: 'array',
836
837
  items: {
837
838
  type: 'string',
838
839
  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-]+)*))?$',
839
- description: 'Version of the chart.',
840
- example: '2.x.x-cfke.x'
841
- }
840
+ description: 'Version channel pattern',
841
+ example: '1.18.x-cfke.x'
842
+ },
843
+ description: 'Version channels for the chart'
842
844
  },
843
- value_schemas: {
844
- type: 'array',
845
- items: {
846
- type: 'object',
847
- properties: {
848
- version: {
849
- type: 'string',
850
- 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-]+)*))?$',
851
- description: 'Version of the chart.',
852
- example: '2.1.1-cfke.123'
845
+ latestVersion: {
846
+ type: 'string',
847
+ description: 'Latest version of the chart',
848
+ example: '1.18.2-cfke.45'
849
+ },
850
+ metadata: {
851
+ type: 'object',
852
+ properties: {
853
+ name: {
854
+ type: 'string',
855
+ description: 'Chart name from metadata',
856
+ example: 'nginx-ingress'
857
+ },
858
+ version: {
859
+ type: 'string',
860
+ description: 'Chart version from metadata',
861
+ example: '1.18.2-cfke.45'
862
+ },
863
+ description: {
864
+ type: 'string',
865
+ description: 'Chart description',
866
+ example: 'NGINX Ingress Controller for Kubernetes'
867
+ },
868
+ appVersion: {
869
+ type: 'string',
870
+ description: 'Application version',
871
+ example: '1.9.4'
872
+ },
873
+ apiVersion: {
874
+ type: 'string',
875
+ description: 'Helm API version',
876
+ example: 'v2'
877
+ },
878
+ keywords: {
879
+ type: 'array',
880
+ items: {
881
+ type: 'string'
853
882
  },
854
- schema: {
855
- type: 'string',
856
- description: 'Schema of the chart values. JSON Schema as string'
883
+ description: 'Chart keywords',
884
+ example: ['ingress', 'nginx', 'load-balancer']
885
+ },
886
+ home: {
887
+ type: 'string',
888
+ description: 'Chart home URL',
889
+ example: 'https://kubernetes.github.io/ingress-nginx/'
890
+ },
891
+ sources: {
892
+ type: 'array',
893
+ items: {
894
+ type: 'string'
857
895
  },
858
- placeholder: {
859
- type: 'string',
860
- description: 'Schema of the chart values',
861
- example: `foo: 1
862
- bar: example`
863
- }
896
+ description: 'Chart source URLs',
897
+ example: ['https://github.com/kubernetes/ingress-nginx']
864
898
  },
865
- required: ['version', 'schema', 'placeholder'],
866
- additionalProperties: false
867
- }
899
+ maintainers: {
900
+ type: 'array',
901
+ items: {
902
+ type: 'object',
903
+ properties: {
904
+ name: {
905
+ type: 'string',
906
+ description: 'Maintainer name',
907
+ example: 'NGINX Team'
908
+ },
909
+ email: {
910
+ type: 'string',
911
+ description: 'Maintainer email',
912
+ example: 'support@nginx.org'
913
+ }
914
+ },
915
+ required: ['name'],
916
+ additionalProperties: false
917
+ },
918
+ description: 'Chart maintainers'
919
+ }
920
+ },
921
+ required: ['name', 'version'],
922
+ additionalProperties: false,
923
+ description: 'Chart metadata'
868
924
  }
869
925
  },
870
- required: ['id', 'name', 'developer', 'description', 'logoUrl', 'longDescription', 'categories', 'version_channels', 'value_schemas'],
926
+ required: ['name', 'versions', 'version_channels', 'latestVersion'],
871
927
  additionalProperties: false
872
928
  };
873
929
  export const OrganizationCreateInputSchema = {
@@ -985,12 +1041,12 @@ export const OrganizationSchema = {
985
1041
  id: {
986
1042
  type: 'string',
987
1043
  description: 'Id of the control plane version. Used in API calls.',
988
- example: '1.29.x-cfke.x'
1044
+ example: '1.33.x-cfke.x'
989
1045
  },
990
1046
  label: {
991
1047
  type: 'string',
992
1048
  description: 'Label of the control plane version. Used in frontent UI.',
993
- example: '1.29.x (Always latest 1.29 patch version)'
1049
+ example: '1.33.x (Always latest 1.33 patch version)'
994
1050
  }
995
1051
  },
996
1052
  required: ['id', 'label'],
@@ -998,9 +1054,21 @@ export const OrganizationSchema = {
998
1054
  },
999
1055
  minItems: 1,
1000
1056
  description: 'List of CFKE control plane versions available for the organization.'
1057
+ },
1058
+ copilot_user_hourly_tokens: {
1059
+ type: 'integer',
1060
+ minimum: 0,
1061
+ description: 'User-level maximum number of tokens Cloudfleet Copilot can process per hour.',
1062
+ example: 42000
1063
+ },
1064
+ copilot_organization_hourly_tokens: {
1065
+ type: 'integer',
1066
+ minimum: 0,
1067
+ description: 'Organization-level maximum number of tokens Cloudfleet Copilot can process per hour.',
1068
+ example: 242000
1001
1069
  }
1002
1070
  },
1003
- required: ['basic_clusters_max', 'basic_clusters_available', 'pro_clusters_max', 'pro_clusters_available', 'fleets_max', 'cluster_tiers', 'regions', 'versions'],
1071
+ required: ['basic_clusters_max', 'basic_clusters_available', 'pro_clusters_max', 'pro_clusters_available', 'fleets_max', 'cluster_tiers', 'regions', 'versions', 'copilot_user_hourly_tokens', 'copilot_organization_hourly_tokens'],
1004
1072
  additionalProperties: false,
1005
1073
  description: 'For security reasons, platform quota is controlled by Cloudfleet and can be updated only by Cloudfleet administrators. Please open a support ticket if you need to change the platform quota.'
1006
1074
  },
@@ -1066,6 +1134,273 @@ export const PaymentMethodSchema = {
1066
1134
  required: ['id', 'setup', 'type', 'last4', 'exp_month', 'exp_year', 'brand'],
1067
1135
  additionalProperties: false
1068
1136
  };
1137
+ export const PlatformQuotaSchema = {
1138
+ type: 'object',
1139
+ properties: {
1140
+ basic_clusters_max: {
1141
+ type: 'integer',
1142
+ minimum: 0,
1143
+ description: 'Maximum number of Basic clusters that can be created.',
1144
+ example: 999
1145
+ },
1146
+ basic_clusters_available: {
1147
+ type: 'integer',
1148
+ description: 'Available number of Basic clusters that can be created.',
1149
+ example: 999
1150
+ },
1151
+ pro_clusters_max: {
1152
+ type: 'integer',
1153
+ minimum: 0,
1154
+ description: 'Maximum number of Pro clusters that can be created.',
1155
+ example: 999
1156
+ },
1157
+ pro_clusters_available: {
1158
+ type: 'integer',
1159
+ description: 'Available number of Pro clusters that can be created.',
1160
+ example: 999
1161
+ },
1162
+ fleets_max: {
1163
+ type: 'integer',
1164
+ minimum: 0,
1165
+ description: 'Maximum number of fleets that can be created per cluster.',
1166
+ example: 999
1167
+ },
1168
+ cluster_tiers: {
1169
+ type: 'array',
1170
+ items: {
1171
+ type: 'string',
1172
+ example: 'basic'
1173
+ },
1174
+ minItems: 0,
1175
+ description: 'List of Cloudfleet cluster tiers available for the organization.'
1176
+ },
1177
+ regions: {
1178
+ type: 'array',
1179
+ items: {
1180
+ type: 'string',
1181
+ example: 'northamerica-central-1'
1182
+ },
1183
+ minItems: 1,
1184
+ description: 'List of Cloudfleet control plane regions available for the organization.'
1185
+ },
1186
+ versions: {
1187
+ type: 'array',
1188
+ items: {
1189
+ type: 'object',
1190
+ properties: {
1191
+ id: {
1192
+ type: 'string',
1193
+ description: 'Id of the control plane version. Used in API calls.',
1194
+ example: '1.33.x-cfke.x'
1195
+ },
1196
+ label: {
1197
+ type: 'string',
1198
+ description: 'Label of the control plane version. Used in frontent UI.',
1199
+ example: '1.33.x (Always latest 1.33 patch version)'
1200
+ }
1201
+ },
1202
+ required: ['id', 'label'],
1203
+ additionalProperties: false
1204
+ },
1205
+ minItems: 1,
1206
+ description: 'List of CFKE control plane versions available for the organization.'
1207
+ },
1208
+ copilot_user_hourly_tokens: {
1209
+ type: 'integer',
1210
+ minimum: 0,
1211
+ description: 'User-level maximum number of tokens Cloudfleet Copilot can process per hour.',
1212
+ example: 42000
1213
+ },
1214
+ copilot_organization_hourly_tokens: {
1215
+ type: 'integer',
1216
+ minimum: 0,
1217
+ description: 'Organization-level maximum number of tokens Cloudfleet Copilot can process per hour.',
1218
+ example: 242000
1219
+ }
1220
+ },
1221
+ required: ['basic_clusters_max', 'basic_clusters_available', 'pro_clusters_max', 'pro_clusters_available', 'fleets_max', 'cluster_tiers', 'regions', 'versions', 'copilot_user_hourly_tokens', 'copilot_organization_hourly_tokens'],
1222
+ additionalProperties: false
1223
+ };
1224
+ export const RegistryRepositorySchema = {
1225
+ type: 'object',
1226
+ properties: {
1227
+ name: {
1228
+ type: 'string',
1229
+ description: 'Repository name.',
1230
+ example: 'my-app'
1231
+ },
1232
+ region: {
1233
+ type: 'string',
1234
+ description: 'Registry region.',
1235
+ example: 'northamerica'
1236
+ },
1237
+ uri: {
1238
+ type: 'string',
1239
+ description: 'Full URI of the repository.',
1240
+ example: 'ssds123e-6651-4e5d-9c04-079f6532989b.northamerica.registry.cloudfleet.dev/v2/my-app'
1241
+ }
1242
+ },
1243
+ required: ['name', 'region', 'uri'],
1244
+ additionalProperties: false
1245
+ };
1246
+ export const RegistryRepositoryWithTagsSchema = {
1247
+ type: 'object',
1248
+ properties: {
1249
+ name: {
1250
+ type: 'string',
1251
+ description: 'Repository name.',
1252
+ example: 'my-app'
1253
+ },
1254
+ region: {
1255
+ type: 'string',
1256
+ description: 'Registry region.',
1257
+ example: 'northamerica'
1258
+ },
1259
+ uri: {
1260
+ type: 'string',
1261
+ description: 'Full URI of the repository.',
1262
+ example: 'ssds123e-6651-4e5d-9c04-079f6532989b.northamerica.registry.cloudfleet.dev/v2/my-app'
1263
+ },
1264
+ tags: {
1265
+ type: 'array',
1266
+ items: {
1267
+ type: 'object',
1268
+ properties: {
1269
+ name: {
1270
+ type: 'string',
1271
+ description: 'Tag name.',
1272
+ example: 'latest'
1273
+ },
1274
+ size: {
1275
+ type: 'number',
1276
+ format: 'float',
1277
+ description: 'Size of the tag in bytes.',
1278
+ example: 123456789
1279
+ },
1280
+ mediaType: {
1281
+ type: 'string',
1282
+ description: 'Media type of the manifest.',
1283
+ example: 'application/vnd.docker.distribution.manifest.v2+json'
1284
+ }
1285
+ },
1286
+ required: ['name', 'size'],
1287
+ additionalProperties: false
1288
+ },
1289
+ description: 'Array of tags in the repository.'
1290
+ },
1291
+ totalSize: {
1292
+ type: 'number',
1293
+ format: 'float',
1294
+ description: 'Total size of all tags in the repository in bytes.',
1295
+ example: 987654321
1296
+ }
1297
+ },
1298
+ required: ['name', 'region', 'uri', 'tags', 'totalSize'],
1299
+ additionalProperties: false
1300
+ };
1301
+ export const RegistryTagSchema = {
1302
+ type: 'object',
1303
+ properties: {
1304
+ name: {
1305
+ type: 'string',
1306
+ description: 'Tag name.',
1307
+ example: 'latest'
1308
+ },
1309
+ mediaType: {
1310
+ type: 'string',
1311
+ description: 'Media type of the manifest.',
1312
+ example: 'application/vnd.docker.distribution.manifest.v2+json'
1313
+ },
1314
+ config: {
1315
+ type: 'object',
1316
+ properties: {
1317
+ size: {
1318
+ type: 'number',
1319
+ format: 'float',
1320
+ description: 'Size of the config in bytes.',
1321
+ example: 1234
1322
+ }
1323
+ },
1324
+ required: ['size'],
1325
+ additionalProperties: false,
1326
+ description: 'Manifest config metadata.'
1327
+ },
1328
+ layers: {
1329
+ type: 'array',
1330
+ items: {
1331
+ type: 'object',
1332
+ properties: {
1333
+ size: {
1334
+ type: 'number',
1335
+ format: 'float',
1336
+ description: 'Size of the layer in bytes.',
1337
+ example: 5678
1338
+ }
1339
+ },
1340
+ required: ['size'],
1341
+ additionalProperties: false
1342
+ },
1343
+ description: 'Array of layer metadata.'
1344
+ },
1345
+ manifests: {
1346
+ type: 'array',
1347
+ items: {
1348
+ type: 'object',
1349
+ properties: {
1350
+ digest: {
1351
+ type: 'string',
1352
+ description: 'Digest of the manifest.',
1353
+ example: 'sha256:abcd1234ef567890abcd1234ef567890abcd1234ef567890abcd1234ef567890'
1354
+ },
1355
+ platform: {
1356
+ type: 'object',
1357
+ properties: {
1358
+ architecture: {
1359
+ type: 'string',
1360
+ description: 'Architecture of the platform.',
1361
+ example: 'amd64'
1362
+ },
1363
+ os: {
1364
+ type: 'string',
1365
+ description: 'Operating system of the platform.',
1366
+ example: 'linux'
1367
+ }
1368
+ },
1369
+ required: ['architecture', 'os'],
1370
+ additionalProperties: false,
1371
+ description: 'Platform information for the manifest.'
1372
+ }
1373
+ },
1374
+ required: ['digest'],
1375
+ additionalProperties: false
1376
+ },
1377
+ description: 'Array of manifests for multi-arch images.'
1378
+ },
1379
+ size: {
1380
+ type: 'number',
1381
+ format: 'float',
1382
+ description: 'Total size of the tag in bytes.',
1383
+ example: 123456789
1384
+ },
1385
+ region: {
1386
+ type: 'string',
1387
+ description: 'Registry region.',
1388
+ example: 'northamerica'
1389
+ },
1390
+ repository: {
1391
+ type: 'string',
1392
+ description: 'Repository name.',
1393
+ example: 'my-app'
1394
+ },
1395
+ uri: {
1396
+ type: 'string',
1397
+ description: 'Full URI of the tag.',
1398
+ example: 'ssds123e-6651-4e5d-9c04-079f6532989b.northamerica.registry.cloudfleet.dev/my-app:latest'
1399
+ }
1400
+ },
1401
+ required: ['name', 'size', 'region', 'repository', 'uri'],
1402
+ additionalProperties: false
1403
+ };
1069
1404
  export const TokenCreateInputSchema = {
1070
1405
  type: 'object',
1071
1406
  properties: {
@@ -1144,6 +1479,101 @@ export const TokenUpdateInputSchema = {
1144
1479
  },
1145
1480
  additionalProperties: false
1146
1481
  };
1482
+ export const UsageFacetsSchema = {
1483
+ type: 'object',
1484
+ properties: {
1485
+ cluster_id: {
1486
+ type: 'array',
1487
+ items: {
1488
+ type: 'string'
1489
+ },
1490
+ description: 'List of unique cluster IDs',
1491
+ example: ['6b5439b1-923a-4f2b-a371-d554e5ea23fa']
1492
+ },
1493
+ product: {
1494
+ type: 'array',
1495
+ items: {
1496
+ type: 'string'
1497
+ },
1498
+ description: 'List of unique products',
1499
+ example: ['cfke_controlplane', 'cfke_connected_nodes']
1500
+ }
1501
+ },
1502
+ additionalProperties: false
1503
+ };
1504
+ export const UsageResponseSchema = {
1505
+ type: 'object',
1506
+ properties: {
1507
+ data: {
1508
+ type: 'array',
1509
+ items: {
1510
+ type: 'object',
1511
+ properties: {
1512
+ hour: {
1513
+ type: 'string',
1514
+ description: 'Hour of the usage',
1515
+ example: '2019-01-01T00:00:00.000Z'
1516
+ },
1517
+ cluster_id: {
1518
+ type: 'string',
1519
+ description: 'Unique identifier of the kubernetes cluster. UUID v4 string in canonical form',
1520
+ example: '6b5439b1-923a-4f2b-a371-d554e5ea23fa'
1521
+ },
1522
+ product: {
1523
+ type: 'string',
1524
+ description: 'The product the usage is associated with',
1525
+ example: 'cfke_controlplane'
1526
+ },
1527
+ value: {
1528
+ type: 'number',
1529
+ format: 'float',
1530
+ description: 'Consumption',
1531
+ example: 4
1532
+ },
1533
+ price: {
1534
+ type: 'number',
1535
+ format: 'float',
1536
+ description: 'Price per unit',
1537
+ example: 0.01
1538
+ },
1539
+ total: {
1540
+ type: 'number',
1541
+ format: 'float',
1542
+ description: 'Total cost'
1543
+ }
1544
+ },
1545
+ required: ['hour', 'cluster_id', 'product', 'value', 'price', 'total'],
1546
+ additionalProperties: false
1547
+ },
1548
+ description: 'Usage data'
1549
+ },
1550
+ facets: {
1551
+ type: 'object',
1552
+ properties: {
1553
+ cluster_id: {
1554
+ type: 'array',
1555
+ items: {
1556
+ type: 'string'
1557
+ },
1558
+ description: 'List of unique cluster IDs',
1559
+ example: ['6b5439b1-923a-4f2b-a371-d554e5ea23fa']
1560
+ },
1561
+ product: {
1562
+ type: 'array',
1563
+ items: {
1564
+ type: 'string'
1565
+ },
1566
+ description: 'List of unique products',
1567
+ example: ['cfke_controlplane', 'cfke_connected_nodes']
1568
+ }
1569
+ },
1570
+ additionalProperties: false,
1571
+ description: 'Facets for filtering'
1572
+ }
1573
+ },
1574
+ required: ['data', 'facets'],
1575
+ additionalProperties: false
1576
+ };
1147
1577
  export const UsageSchema = {
1148
1578
  type: 'object',
1149
1579
  properties: {
@@ -1154,90 +1584,33 @@ export const UsageSchema = {
1154
1584
  },
1155
1585
  cluster_id: {
1156
1586
  type: 'string',
1157
- format: 'uuid',
1158
1587
  description: 'Unique identifier of the kubernetes cluster. UUID v4 string in canonical form',
1159
1588
  example: '6b5439b1-923a-4f2b-a371-d554e5ea23fa'
1160
1589
  },
1161
- cluster_tier: {
1162
- type: 'string',
1163
- description: 'Tier of the cluster.',
1164
- example: 'pro',
1165
- enum: ['basic', 'pro', '']
1166
- },
1167
1590
  product: {
1168
1591
  type: 'string',
1169
1592
  description: 'The product the usage is associated with',
1170
- example: 'cfke_controlplane',
1171
- enum: ['cfke_controlplane', 'cfke_connected_nodes', 'infra_compute', 'infra_storage', 'infra_loadbalancing', 'infra_traffic', 'cfcr_storage']
1172
- },
1173
- node_name: {
1174
- type: 'string',
1175
- description: 'Name of the Kubernetes node',
1176
- example: 'flexible-moth-956037384'
1593
+ example: 'cfke_controlplane'
1177
1594
  },
1178
- sku: {
1179
- type: 'string',
1180
- description: 'SKU of the Kubernetes node',
1181
- example: 'GCP-NORTHAMERICA-NORTHEAST1-A-G1-SMALL-SPOT'
1182
- },
1183
- cpu: {
1184
- anyOf: [
1185
- {
1186
- type: 'number',
1187
- format: 'float',
1188
- description: 'CPU core count of the node',
1189
- example: 4
1190
- },
1191
- {
1192
- type: 'string',
1193
- enum: ['']
1194
- }
1195
- ]
1595
+ value: {
1596
+ type: 'number',
1597
+ format: 'float',
1598
+ description: 'Consumption',
1599
+ example: 4
1196
1600
  },
1197
1601
  price: {
1198
- anyOf: [
1199
- {
1200
- type: 'number',
1201
- format: 'float',
1202
- description: 'Price',
1203
- example: 4
1204
- },
1205
- {
1206
- type: 'string',
1207
- enum: ['']
1208
- }
1209
- ]
1210
- },
1211
- value: {
1212
- anyOf: [
1213
- {
1214
- type: 'number',
1215
- format: 'float',
1216
- description: 'Value',
1217
- example: 4
1218
- },
1219
- {
1220
- type: 'string',
1221
- enum: ['']
1222
- }
1223
- ]
1602
+ type: 'number',
1603
+ format: 'float',
1604
+ description: 'Price per unit',
1605
+ example: 0.01
1224
1606
  },
1225
1607
  total: {
1226
- anyOf: [
1227
- {
1228
- type: 'number',
1229
- format: 'float',
1230
- description: 'Total',
1231
- example: 4
1232
- },
1233
- {
1234
- type: 'string',
1235
- enum: ['']
1236
- }
1237
- ]
1608
+ type: 'number',
1609
+ format: 'float',
1610
+ description: 'Total cost'
1238
1611
  }
1239
1612
  },
1240
- required: ['cluster_id', 'cluster_tier', 'product', 'node_name', 'sku', 'cpu', 'price', 'value', 'total'],
1613
+ required: ['hour', 'cluster_id', 'product', 'value', 'price', 'total'],
1241
1614
  additionalProperties: false
1242
1615
  };
1243
1616
  export const UserCreateInputSchema = {