@cloudfleet/sdk 0.0.1-685f6cc → 0.0.1-69278d7

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 (83) hide show
  1. package/dist/client/client.gen.d.ts +3 -0
  2. package/dist/client/client.gen.d.ts.map +1 -0
  3. package/dist/client/client.gen.js +236 -0
  4. package/dist/client/client.gen.js.map +1 -0
  5. package/dist/client/index.d.ts +9 -0
  6. package/dist/client/index.d.ts.map +1 -0
  7. package/dist/client/index.js +7 -0
  8. package/dist/client/index.js.map +1 -0
  9. package/dist/client/types.gen.d.ts +118 -0
  10. package/dist/client/types.gen.d.ts.map +1 -0
  11. package/dist/client/types.gen.js +3 -0
  12. package/dist/client/types.gen.js.map +1 -0
  13. package/dist/client/utils.gen.d.ts +34 -0
  14. package/dist/client/utils.gen.d.ts.map +1 -0
  15. package/dist/client/utils.gen.js +229 -0
  16. package/dist/client/utils.gen.js.map +1 -0
  17. package/dist/client.gen.d.ts +13 -0
  18. package/dist/client.gen.d.ts.map +1 -0
  19. package/dist/client.gen.js +4 -0
  20. package/dist/client.gen.js.map +1 -0
  21. package/dist/core/auth.gen.d.ts +19 -0
  22. package/dist/core/auth.gen.d.ts.map +1 -0
  23. package/dist/core/auth.gen.js +15 -0
  24. package/dist/core/auth.gen.js.map +1 -0
  25. package/dist/core/bodySerializer.gen.d.ts +26 -0
  26. package/dist/core/bodySerializer.gen.d.ts.map +1 -0
  27. package/dist/core/bodySerializer.gen.js +58 -0
  28. package/dist/core/bodySerializer.gen.js.map +1 -0
  29. package/dist/core/params.gen.d.ts +44 -0
  30. package/dist/core/params.gen.d.ts.map +1 -0
  31. package/dist/core/params.gen.js +101 -0
  32. package/dist/core/params.gen.js.map +1 -0
  33. package/dist/core/pathSerializer.gen.d.ts +34 -0
  34. package/dist/core/pathSerializer.gen.d.ts.map +1 -0
  35. package/dist/core/pathSerializer.gen.js +107 -0
  36. package/dist/core/pathSerializer.gen.js.map +1 -0
  37. package/dist/core/queryKeySerializer.gen.d.ts +19 -0
  38. package/dist/core/queryKeySerializer.gen.d.ts.map +1 -0
  39. package/dist/core/queryKeySerializer.gen.js +93 -0
  40. package/dist/core/queryKeySerializer.gen.js.map +1 -0
  41. package/dist/core/serverSentEvents.gen.d.ts +72 -0
  42. package/dist/core/serverSentEvents.gen.d.ts.map +1 -0
  43. package/dist/core/serverSentEvents.gen.js +134 -0
  44. package/dist/core/serverSentEvents.gen.js.map +1 -0
  45. package/dist/core/types.gen.d.ts +79 -0
  46. package/dist/core/types.gen.d.ts.map +1 -0
  47. package/dist/core/types.gen.js +3 -0
  48. package/dist/core/types.gen.js.map +1 -0
  49. package/dist/core/utils.gen.d.ts +20 -0
  50. package/dist/core/utils.gen.d.ts.map +1 -0
  51. package/dist/core/utils.gen.js +88 -0
  52. package/dist/core/utils.gen.js.map +1 -0
  53. package/dist/index.d.ts +3 -0
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +3 -0
  56. package/dist/index.js.map +1 -1
  57. package/dist/schemas.gen.d.ts +1044 -1047
  58. package/dist/schemas.gen.d.ts.map +1 -1
  59. package/dist/schemas.gen.js +1510 -1076
  60. package/dist/schemas.gen.js.map +1 -1
  61. package/dist/sdk.gen.d.ts +220 -142
  62. package/dist/sdk.gen.d.ts.map +1 -1
  63. package/dist/sdk.gen.js +279 -227
  64. package/dist/sdk.gen.js.map +1 -1
  65. package/dist/services/kubernetes/api.d.ts +196 -0
  66. package/dist/services/kubernetes/api.d.ts.map +1 -0
  67. package/dist/services/kubernetes/api.js +140 -0
  68. package/dist/services/kubernetes/api.js.map +1 -0
  69. package/dist/services/kubernetes/index.d.ts +44 -0
  70. package/dist/services/kubernetes/index.d.ts.map +1 -0
  71. package/dist/services/kubernetes/index.js +68 -0
  72. package/dist/services/kubernetes/index.js.map +1 -0
  73. package/dist/services/kubernetes/types.d.ts +1335 -0
  74. package/dist/services/kubernetes/types.d.ts.map +1 -0
  75. package/dist/services/kubernetes/types.js +2 -0
  76. package/dist/services/kubernetes/types.js.map +1 -0
  77. package/dist/types.gen.d.ts +989 -954
  78. package/dist/types.gen.d.ts.map +1 -1
  79. package/dist/zod.gen.d.ts +1712 -2836
  80. package/dist/zod.gen.d.ts.map +1 -1
  81. package/dist/zod.gen.js +691 -863
  82. package/dist/zod.gen.js.map +1 -1
  83. package/package.json +12 -5
@@ -1,4 +1,437 @@
1
1
  // This file is auto-generated by @hey-api/openapi-ts
2
+ export const BillingContactSchema = {
3
+ type: 'object',
4
+ properties: {
5
+ company: {
6
+ type: 'string',
7
+ maxLength: 120,
8
+ minLength: 2,
9
+ pattern: '^(?!\\s)(?!.*\\s$)(?=.*[a-zA-ZÆÐƎƏƐƔIJŊŒẞÞǷȜæðǝəɛɣijŋœĸſßþƿȝĄƁÇĐƊĘĦĮƘŁØƠŞȘŢȚŦŲƯY̨Ƴąɓçđɗęħįƙłøơşșţțŧųưy̨ƴÁÀÂÄǍĂĀÃÅǺĄÆǼǢƁĆĊĈČÇĎḌĐƊÐÉÈĖÊËĚĔĒĘẸƎƏƐĠĜǦĞĢƔáàâäǎăāãåǻąæǽǣɓćċĉčçďḍđɗðéèėêëěĕēęẹǝəɛġĝǧğģɣĤḤĦIÍÌİÎÏǏĬĪĨĮỊIJĴĶƘĹĻŁĽĿʼNŃN̈ŇÑŅŊÓÒÔÖǑŎŌÕŐỌØǾƠŒĥḥħıíìiîïǐĭīĩįịijĵķƙĸĺļłľŀʼnńn̈ňñņŋóòôöǒŏōõőọøǿơœŔŘŖŚŜŠŞȘṢẞŤŢṬŦÞÚÙÛÜǓŬŪŨŰŮŲỤƯẂẀŴẄǷÝỲŶŸȲỸƳŹŻŽẒŕřŗſśŝšşșṣßťţṭŧþúùûüǔŭūũűůųụưẃẁŵẅƿýỳŷÿȳỹƴźżžẓ0-9])[a-zA-ZÆÐƎƏƐƔIJŊŒẞÞǷȜæðǝəɛɣijŋœĸſßþƿȝĄƁÇĐƊĘĦĮƘŁØƠŞȘŢȚŦŲƯY̨Ƴąɓçđɗęħįƙłøơşșţțŧųưy̨ƴÁÀÂÄǍĂĀÃÅǺĄÆǼǢƁĆĊĈČÇĎḌĐƊÐÉÈĖÊËĚĔĒĘẸƎƏƐĠĜǦĞĢƔáàâäǎăāãåǻąæǽǣɓćċĉčçďḍđɗðéèėêëěĕēęẹǝəɛġĝǧğģɣĤḤĦIÍÌİÎÏǏĬĪĨĮỊIJĴĶƘĹĻŁĽĿʼNŃN̈ŇÑŅŊÓÒÔÖǑŎŌÕŐỌØǾƠŒĥḥħıíìiîïǐĭīĩįịijĵķƙĸĺļłľŀʼnńn̈ňñņŋóòôöǒŏōõőọøǿơœŔŘŖŚŜŠŞȘṢẞŤŢṬŦÞÚÙÛÜǓŬŪŨŰŮŲỤƯẂẀŴẄǷÝỲŶŸȲỸƳŹŻŽẒŕřŗſśŝšşșṣßťţṭŧþúùûüǔŭūũűůųụưẃẁŵẅƿýỳŷÿȳỹƴźżžẓ0-9 -.]{2,}$',
10
+ description: 'Name of the legal entity. This name will be used in invoices. Use your first and last name for individual accounts.',
11
+ example: 'ACME Corp.'
12
+ },
13
+ address1: {
14
+ type: 'string',
15
+ nullable: true,
16
+ description: 'Street address, P.O. box, c/o',
17
+ example: '123 Main St.'
18
+ },
19
+ address2: {
20
+ type: 'string',
21
+ nullable: true,
22
+ description: 'Apartment, suite, unit, building, floor, etc.',
23
+ example: 'Suite 100'
24
+ },
25
+ postalCode: {
26
+ type: 'string',
27
+ nullable: true,
28
+ description: 'Postal code as a string.',
29
+ example: '94105'
30
+ },
31
+ city: {
32
+ type: 'string',
33
+ nullable: true,
34
+ description: 'City or town name.',
35
+ example: 'San Francisco'
36
+ },
37
+ state: {
38
+ type: 'string',
39
+ nullable: true,
40
+ description: 'State, province, or region name.',
41
+ example: 'CA'
42
+ },
43
+ country: {
44
+ type: 'string',
45
+ nullable: true,
46
+ description: 'Country as a ISO 3166-1 alpha-2 country code.',
47
+ example: 'US'
48
+ },
49
+ phone: {
50
+ type: 'string',
51
+ nullable: true,
52
+ description: 'Phone number as a string.',
53
+ example: '+1 555 555 5555'
54
+ },
55
+ email: {
56
+ type: 'string',
57
+ format: 'email',
58
+ description: 'Email address used for billing as a string.',
59
+ example: 'email@example.com'
60
+ },
61
+ individual_name: {
62
+ type: 'string',
63
+ description: 'Name of the billing contact person.',
64
+ example: 'John Doe'
65
+ },
66
+ tax_id: {
67
+ type: 'string',
68
+ nullable: true,
69
+ description: 'Tax ID of the organization.',
70
+ example: 'DE123456789'
71
+ },
72
+ tax_id_type: {
73
+ type: 'string',
74
+ nullable: true,
75
+ description: 'Type of the tax ID.',
76
+ example: 'de_vat',
77
+ enum: [
78
+ 'ad_nrt',
79
+ 'ae_trn',
80
+ 'al_tin',
81
+ 'am_tin',
82
+ 'ao_tin',
83
+ 'ar_cuit',
84
+ 'at_vat',
85
+ 'au_abn',
86
+ 'au_arn',
87
+ 'ba_tin',
88
+ 'bb_tin',
89
+ 'be_vat',
90
+ 'bg_uic',
91
+ 'bg_vat',
92
+ 'bh_vat',
93
+ 'bo_tin',
94
+ 'br_cnpj',
95
+ 'br_cpf',
96
+ 'bs_tin',
97
+ 'by_tin',
98
+ 'ca_bn',
99
+ 'ca_gst_hst',
100
+ 'ca_pst_bc',
101
+ 'ca_pst_mb',
102
+ 'ca_pst_sk',
103
+ 'ca_qst',
104
+ 'cd_nif',
105
+ 'ch_uid',
106
+ 'ch_vat',
107
+ 'cl_tin',
108
+ 'cn_tin',
109
+ 'co_nit',
110
+ 'cr_tin',
111
+ 'cy_vat',
112
+ 'cz_vat',
113
+ 'de_stn',
114
+ 'de_vat',
115
+ 'dk_vat',
116
+ 'do_rcn',
117
+ 'ec_ruc',
118
+ 'ee_vat',
119
+ 'eg_tin',
120
+ 'es_cif',
121
+ 'es_vat',
122
+ 'eu_oss_vat',
123
+ 'fi_vat',
124
+ 'fr_vat',
125
+ 'gb_vat',
126
+ 'ge_vat',
127
+ 'gn_nif',
128
+ 'gr_vat',
129
+ 'hk_br',
130
+ 'hr_oib',
131
+ 'hr_vat',
132
+ 'hu_tin',
133
+ 'hu_vat',
134
+ 'id_npwp',
135
+ 'ie_vat',
136
+ 'il_vat',
137
+ 'in_gst',
138
+ 'is_vat',
139
+ 'it_vat',
140
+ 'jp_cn',
141
+ 'jp_rn',
142
+ 'jp_trn',
143
+ 'ke_pin',
144
+ 'kh_tin',
145
+ 'kr_brn',
146
+ 'kz_bin',
147
+ 'li_uid',
148
+ 'li_vat',
149
+ 'lt_vat',
150
+ 'lu_vat',
151
+ 'lv_vat',
152
+ 'ma_vat',
153
+ 'md_vat',
154
+ 'me_pib',
155
+ 'mk_vat',
156
+ 'mr_nif',
157
+ 'mt_vat',
158
+ 'mx_rfc',
159
+ 'my_frp',
160
+ 'my_itn',
161
+ 'my_sst',
162
+ 'ng_tin',
163
+ 'nl_vat',
164
+ 'no_vat',
165
+ 'no_voec',
166
+ 'np_pan',
167
+ 'nz_gst',
168
+ 'om_vat',
169
+ 'pe_ruc',
170
+ 'ph_tin',
171
+ 'pl_vat',
172
+ 'pt_vat',
173
+ 'ro_tin',
174
+ 'ro_vat',
175
+ 'rs_pib',
176
+ 'ru_inn',
177
+ 'ru_kpp',
178
+ 'sa_vat',
179
+ 'se_vat',
180
+ 'sg_gst',
181
+ 'sg_uen',
182
+ 'si_tin',
183
+ 'si_vat',
184
+ 'sk_vat',
185
+ 'sn_ninea',
186
+ 'sr_fin',
187
+ 'sv_nit',
188
+ 'th_vat',
189
+ 'tj_tin',
190
+ 'tr_tin',
191
+ 'tw_vat',
192
+ 'tz_vat',
193
+ 'ua_vat',
194
+ 'ug_tin',
195
+ 'us_ein',
196
+ 'uy_ruc',
197
+ 'uz_tin',
198
+ 'uz_vat',
199
+ 've_rif',
200
+ 'vn_tin',
201
+ 'xi_vat',
202
+ 'za_vat',
203
+ 'zm_tin',
204
+ 'zw_tin',
205
+ ''
206
+ ]
207
+ }
208
+ },
209
+ required: [
210
+ 'email',
211
+ 'individual_name'
212
+ ],
213
+ additionalProperties: false
214
+ };
215
+ export const BillingCreditsSchema = {
216
+ type: 'object',
217
+ properties: {
218
+ id: {
219
+ type: 'string',
220
+ description: 'Generated unique identifier of the promotional code.',
221
+ example: '7kUZnH7nnKUFfvc4NK2KQF'
222
+ },
223
+ type: {
224
+ type: 'string',
225
+ description: 'Type of the promotional code.',
226
+ example: 'credit',
227
+ enum: [
228
+ 'credit',
229
+ 'discount'
230
+ ]
231
+ },
232
+ date_start: {
233
+ type: 'string',
234
+ format: 'date-time',
235
+ description: 'Timestamp when the credit becomes active. ISO 8601 date string in the UTC timezone.',
236
+ example: '2023-12-20T13:53:32.000Z'
237
+ },
238
+ date_end: {
239
+ type: 'string',
240
+ format: 'date-time',
241
+ description: 'Timestamp when the credit expires or becomes inactive. ISO 8601 date string in the UTC timezone.',
242
+ example: '2023-12-20T13:53:32.000Z'
243
+ },
244
+ code: {
245
+ type: 'string',
246
+ description: 'Promotional code used by the customer.',
247
+ example: 'VQ4SCMB'
248
+ },
249
+ description: {
250
+ type: 'string',
251
+ description: 'Description of the promotional code.',
252
+ example: '10% off on all products'
253
+ },
254
+ value_total: {
255
+ type: 'number',
256
+ format: 'float',
257
+ description: 'Total value of the promotional code.',
258
+ example: 10
259
+ },
260
+ value_remaining: {
261
+ type: 'number',
262
+ format: 'float',
263
+ description: 'Remaining value of the promotional code.',
264
+ example: 8
265
+ }
266
+ },
267
+ required: [
268
+ 'type',
269
+ 'date_start',
270
+ 'code',
271
+ 'value_total'
272
+ ],
273
+ additionalProperties: false
274
+ };
275
+ export const ChartCreateInputSchema = {
276
+ type: 'object',
277
+ properties: {
278
+ values: {
279
+ type: 'string',
280
+ description: 'Values to be used in the chart encoded as a JSON string.'
281
+ },
282
+ version_channel: {
283
+ type: 'string',
284
+ 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-]+)*))?$',
285
+ description: 'Desired version range or channel for the chart.',
286
+ example: '2.x.x-cfke.x'
287
+ },
288
+ name: {
289
+ type: 'string',
290
+ maxLength: 63,
291
+ minLength: 1,
292
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
293
+ description: 'Unique identifier of the chart deployment aka name of the helm release.',
294
+ example: 'postgresql-0'
295
+ },
296
+ namespace: {
297
+ type: 'string',
298
+ maxLength: 63,
299
+ minLength: 1,
300
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
301
+ description: 'Namespace of the chart deployment',
302
+ example: 'default'
303
+ },
304
+ chart: {
305
+ type: 'string',
306
+ maxLength: 63,
307
+ minLength: 1,
308
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
309
+ description: 'Name of the chart listing',
310
+ example: 'postgresql'
311
+ }
312
+ },
313
+ required: [
314
+ 'values',
315
+ 'version_channel',
316
+ 'name',
317
+ 'namespace',
318
+ 'chart'
319
+ ],
320
+ additionalProperties: false
321
+ };
322
+ export const ChartSchema = {
323
+ type: 'object',
324
+ properties: {
325
+ values: {
326
+ type: 'string',
327
+ description: 'Values to be used in the chart encoded as a JSON string.'
328
+ },
329
+ version_channel: {
330
+ type: 'string',
331
+ 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-]+)*))?$',
332
+ description: 'Desired version range or channel for the chart.',
333
+ example: '2.x.x-cfke.x'
334
+ },
335
+ name: {
336
+ type: 'string',
337
+ maxLength: 63,
338
+ minLength: 1,
339
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
340
+ description: 'Unique identifier of the chart deployment aka name of the helm release.',
341
+ example: 'postgresql-0'
342
+ },
343
+ namespace: {
344
+ type: 'string',
345
+ maxLength: 63,
346
+ minLength: 1,
347
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
348
+ description: 'Namespace of the chart deployment',
349
+ example: 'default'
350
+ },
351
+ chart: {
352
+ type: 'string',
353
+ maxLength: 63,
354
+ minLength: 1,
355
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
356
+ description: 'Name of the chart listing',
357
+ example: 'postgresql'
358
+ },
359
+ status: {
360
+ type: 'string',
361
+ description: 'Status of the chart deployment.',
362
+ example: 'active',
363
+ enum: [
364
+ 'InstallSucceeded',
365
+ 'InstallFailed',
366
+ 'UpgradeSucceeded',
367
+ 'UpgradeFailed',
368
+ 'TestSucceeded',
369
+ 'TestFailed',
370
+ 'RollbackSucceeded',
371
+ 'RollbackFailed',
372
+ 'UninstallSucceeded',
373
+ 'UninstallFailed',
374
+ 'ArtifactFailed',
375
+ 'DependencyNotReady',
376
+ 'Progressing',
377
+ 'SourceNotReady'
378
+ ]
379
+ },
380
+ version_current: {
381
+ type: 'string',
382
+ description: 'Current version of the chart deployment.',
383
+ example: '2.1.33-cfke.11'
384
+ },
385
+ created_at: {
386
+ type: 'string',
387
+ description: 'Creation date and time of the chart deployment.',
388
+ example: '2024-09-12T09:11:27Z'
389
+ },
390
+ updated_at: {
391
+ type: 'string',
392
+ description: 'Last update date and time of the chart deployment.',
393
+ example: '2024-09-12T09:11:27Z'
394
+ },
395
+ ready: {
396
+ type: 'boolean',
397
+ description: 'Indicates if the chart deployment is ready to be used.',
398
+ example: true
399
+ }
400
+ },
401
+ required: [
402
+ 'values',
403
+ 'version_channel',
404
+ 'name',
405
+ 'namespace',
406
+ 'chart',
407
+ 'status',
408
+ 'version_current',
409
+ 'created_at',
410
+ 'updated_at',
411
+ 'ready'
412
+ ],
413
+ additionalProperties: false
414
+ };
415
+ export const ChartUpdateInputSchema = {
416
+ type: 'object',
417
+ properties: {
418
+ values: {
419
+ type: 'string',
420
+ description: 'Values to be used in the chart encoded as a JSON string.'
421
+ },
422
+ version_channel: {
423
+ type: 'string',
424
+ 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-]+)*))?$',
425
+ description: 'Desired version range or channel for the chart.',
426
+ example: '2.x.x-cfke.x'
427
+ }
428
+ },
429
+ required: [
430
+ 'values',
431
+ 'version_channel'
432
+ ],
433
+ additionalProperties: false
434
+ };
2
435
  export const ClusterCreateInputSchema = {
3
436
  type: 'object',
4
437
  properties: {
@@ -10,28 +443,45 @@ export const ClusterCreateInputSchema = {
10
443
  description: 'Name of the cluster.',
11
444
  example: 'production-cluster'
12
445
  },
13
- region: {
14
- type: 'string',
15
- description: 'Cloudfleet control plane region. One of "staging", "northamerica-central-1". This field can not be updated after creation.',
16
- default: 'staging',
17
- example: 'northamerica-central-1',
18
- enum: ['staging', 'northamerica-central-1']
19
- },
20
446
  tier: {
21
447
  type: 'string',
22
448
  description: 'Tier of the cluster.',
23
449
  example: 'pro',
24
- enum: ['basic', 'pro']
450
+ enum: [
451
+ 'basic',
452
+ 'pro'
453
+ ]
454
+ },
455
+ region: {
456
+ type: 'string',
457
+ description: 'Cloudfleet control plane region. One of "staging-1a", "northamerica-central-1", "europe-central-1a", "northamerica-central-1a". This field can not be updated after creation.',
458
+ default: 'staging-1a',
459
+ example: 'northamerica-central-1a',
460
+ enum: [
461
+ 'staging-1a',
462
+ 'northamerica-central-1',
463
+ 'europe-central-1a',
464
+ 'northamerica-central-1a'
465
+ ]
25
466
  },
26
467
  version_channel: {
27
468
  type: 'string',
28
469
  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-]+)*))?$',
29
470
  description: 'Version of the kubernetes cluster.',
30
471
  default: '1.x.x-cfke.x',
31
- example: '1.29.x-cfke.x'
472
+ example: '1.x.x-cfke.x',
473
+ enum: [
474
+ '1.x.x-cfke.x',
475
+ '1.31.x-cfke.x',
476
+ '1.32.x-cfke.x',
477
+ '1.33.x-cfke.x'
478
+ ]
32
479
  }
33
480
  },
34
- required: ['name', 'tier'],
481
+ required: [
482
+ 'name',
483
+ 'tier'
484
+ ],
35
485
  additionalProperties: false
36
486
  };
37
487
  export const ClusterJoinInformationSchema = {
@@ -40,8 +490,7 @@ export const ClusterJoinInformationSchema = {
40
490
  certificate_authority: {
41
491
  type: 'string',
42
492
  description: 'Certificate authority data for the kubernetes cluster. This is the root certificate authority for the cluster.',
43
- example: `-----BEGIN CERTIFICATE-----
44
- MIIC0DCCAbigAwIBAgI...`
493
+ example: '-----BEGIN CERTIFICATE-----\nMIIC0DCCAbigAwIBAgI...'
45
494
  },
46
495
  endpoint: {
47
496
  type: 'string',
@@ -49,6 +498,11 @@ MIIC0DCCAbigAwIBAgI...`
49
498
  description: 'Internal URL of the Kubernetes cluster control plane. This is the endpoint that kubelet uses to connect to the cluster.',
50
499
  example: 'https://10.31.64.7:6443'
51
500
  },
501
+ cluster_dns: {
502
+ type: 'string',
503
+ description: 'Cluster DNS IP address. This is the IP address of the kube-dns service in the cluster.',
504
+ example: '10.96.0.10'
505
+ },
52
506
  auth_key: {
53
507
  type: 'string',
54
508
  description: 'Authentication key for the cluster.',
@@ -65,7 +519,7 @@ MIIC0DCCAbigAwIBAgI...`
65
519
  kubernetes: {
66
520
  type: 'string',
67
521
  description: 'Kubernetes version of the cluster.',
68
- example: '1.29.3'
522
+ example: '1.33.7'
69
523
  },
70
524
  tailscale: {
71
525
  type: 'string',
@@ -76,14 +530,59 @@ MIIC0DCCAbigAwIBAgI...`
76
530
  type: 'string',
77
531
  description: 'Containerd version of the cluster.',
78
532
  example: '1.7.19'
533
+ },
534
+ nvidia_driver: {
535
+ type: 'string',
536
+ description: 'NVIDIA driver version of the cluster.',
537
+ example: '565.0.0'
79
538
  }
80
539
  },
81
- required: ['kubernetes', 'tailscale', 'containerd'],
540
+ required: [
541
+ 'kubernetes',
542
+ 'tailscale',
543
+ 'containerd',
544
+ 'nvidia_driver'
545
+ ],
82
546
  additionalProperties: false,
83
547
  description: 'Versions of the different components of the cluster.'
548
+ },
549
+ third_party_api_access_config: {
550
+ type: 'object',
551
+ properties: {
552
+ metadata_url: {
553
+ type: 'string',
554
+ description: 'Kubernetes metadata server.',
555
+ example: 'https://10.31.64.4'
556
+ },
557
+ aws_role_arn: {
558
+ type: 'string',
559
+ description: 'AWS Role ARN.',
560
+ example: 'arn:aws:iam::891376988828:role/0371f8fd-e164-48e1-b9e7-c3bdc3b4f403'
561
+ },
562
+ gcp_workload_identity_provider: {
563
+ type: 'string',
564
+ description: 'GCP Workload Identity provider.',
565
+ example: '//iam.googleapis.com/projects/89014267864/locations/global/workloadIdentityPools/cfke/providers/oidc'
566
+ }
567
+ },
568
+ required: [
569
+ 'metadata_url',
570
+ 'aws_role_arn',
571
+ 'gcp_workload_identity_provider'
572
+ ],
573
+ additionalProperties: false,
574
+ description: 'OIDC Information for hosts to access to third party API\'s.'
84
575
  }
85
576
  },
86
- required: ['certificate_authority', 'endpoint', 'auth_key', 'bootstrap_token', 'versions'],
577
+ required: [
578
+ 'certificate_authority',
579
+ 'endpoint',
580
+ 'cluster_dns',
581
+ 'auth_key',
582
+ 'bootstrap_token',
583
+ 'versions',
584
+ 'third_party_api_access_config'
585
+ ],
87
586
  additionalProperties: false
88
587
  };
89
588
  export const ClusterSchema = {
@@ -97,25 +596,26 @@ export const ClusterSchema = {
97
596
  description: 'Name of the cluster.',
98
597
  example: 'production-cluster'
99
598
  },
100
- region: {
101
- type: 'string',
102
- description: 'Cloudfleet control plane region. One of "staging", "northamerica-central-1". This field can not be updated after creation.',
103
- default: 'staging',
104
- example: 'northamerica-central-1',
105
- enum: ['staging', 'northamerica-central-1']
106
- },
107
599
  tier: {
108
600
  type: 'string',
109
601
  description: 'Tier of the cluster.',
110
602
  example: 'pro',
111
- enum: ['basic', 'pro']
603
+ enum: [
604
+ 'basic',
605
+ 'pro'
606
+ ]
112
607
  },
113
- version_channel: {
608
+ region: {
114
609
  type: 'string',
115
- 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-]+)*))?$',
116
- description: 'Version of the kubernetes cluster.',
117
- default: '1.x.x-cfke.x',
118
- example: '1.29.x-cfke.x'
610
+ description: 'Cloudfleet control plane region. One of "staging-1a", "northamerica-central-1", "europe-central-1a", "northamerica-central-1a". This field can not be updated after creation.',
611
+ default: 'staging-1a',
612
+ example: 'northamerica-central-1a',
613
+ enum: [
614
+ 'staging-1a',
615
+ 'northamerica-central-1',
616
+ 'europe-central-1a',
617
+ 'northamerica-central-1a'
618
+ ]
119
619
  },
120
620
  id: {
121
621
  type: 'string',
@@ -127,7 +627,15 @@ export const ClusterSchema = {
127
627
  type: 'string',
128
628
  description: 'Status of the cluster. When creating a new cluster, set to `active`. When deleting a clusters, set to `deleted`.',
129
629
  example: 'active',
130
- enum: ['active', 'deleted', 'creating', 'deployed', 'failed', 'updating']
630
+ enum: [
631
+ 'active',
632
+ 'disabled',
633
+ 'deleted',
634
+ 'creating',
635
+ 'deployed',
636
+ 'failed',
637
+ 'updating'
638
+ ]
131
639
  },
132
640
  endpoint: {
133
641
  anyOf: [
@@ -139,20 +647,21 @@ export const ClusterSchema = {
139
647
  },
140
648
  {
141
649
  type: 'string',
142
- enum: ['']
650
+ enum: [
651
+ ''
652
+ ]
143
653
  }
144
654
  ]
145
655
  },
146
656
  certificate_ca: {
147
657
  type: 'string',
148
658
  description: 'Certificate authority data for the kubernetes cluster. This is the root certificate authority for the cluster.',
149
- example: `-----BEGIN CERTIFICATE-----
150
- MIIC0DCCAbigAwIBAgI...`
659
+ example: '-----BEGIN CERTIFICATE-----\nMIIC0DCCAbigAwIBAgI...'
151
660
  },
152
661
  version_current: {
153
662
  type: 'string',
154
663
  description: 'Current version of the cluster.',
155
- example: '1.29.3-cfke.52'
664
+ example: '1.33.7-cfke.264'
156
665
  },
157
666
  created_at: {
158
667
  type: 'string',
@@ -168,9 +677,20 @@ MIIC0DCCAbigAwIBAgI...`
168
677
  type: 'boolean',
169
678
  description: 'Indicates if the cluster is ready to be used.',
170
679
  example: true
680
+ },
681
+ version_channel: {
682
+ type: 'string',
683
+ 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-]+)*))?$',
684
+ description: 'Version of the kubernetes cluster.',
685
+ example: '1.x.x-cfke.x'
171
686
  }
172
687
  },
173
- required: ['name', 'tier', 'id', 'status'],
688
+ required: [
689
+ 'name',
690
+ 'tier',
691
+ 'id',
692
+ 'status'
693
+ ],
174
694
  additionalProperties: false
175
695
  };
176
696
  export const ClusterUpdateInputSchema = {
@@ -184,13 +704,25 @@ export const ClusterUpdateInputSchema = {
184
704
  description: 'Name of the cluster.',
185
705
  example: 'production-cluster'
186
706
  },
707
+ tier: {
708
+ type: 'string',
709
+ description: 'Tier of the cluster.',
710
+ example: 'pro',
711
+ enum: [
712
+ 'basic',
713
+ 'pro'
714
+ ]
715
+ },
187
716
  version_channel: {
188
717
  type: 'string',
189
718
  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-]+)*))?$',
190
719
  description: 'Version of the kubernetes cluster.',
191
- example: '1.29.x-cfke.x'
720
+ example: '1.x.x-cfke.x'
192
721
  }
193
722
  },
723
+ required: [
724
+ 'tier'
725
+ ],
194
726
  additionalProperties: false
195
727
  };
196
728
  export const FleetCreateInputSchema = {
@@ -206,7 +738,9 @@ export const FleetCreateInputSchema = {
206
738
  description: 'CPU limit in cores.'
207
739
  }
208
740
  },
209
- required: ['cpu'],
741
+ required: [
742
+ 'cpu'
743
+ ],
210
744
  additionalProperties: false,
211
745
  description: 'Limits define a set of bounds for provisioning capacity.'
212
746
  },
@@ -222,38 +756,27 @@ export const FleetCreateInputSchema = {
222
756
  description: 'Project GCP Project id to deploy instances into'
223
757
  }
224
758
  },
225
- required: ['project'],
759
+ required: [
760
+ 'project'
761
+ ],
226
762
  additionalProperties: false
227
763
  },
228
764
  hetzner: {
229
- oneOf: [
230
- {
231
- type: 'object',
232
- properties: {
233
- enabled: {
234
- type: 'boolean',
235
- default: true
236
- },
237
- apiKey: {
238
- type: 'string'
239
- }
240
- },
241
- additionalProperties: false
765
+ type: 'object',
766
+ properties: {
767
+ enabled: {
768
+ type: 'boolean',
769
+ default: true
242
770
  },
243
- {
244
- type: 'object',
245
- properties: {
246
- apiKey: {
247
- type: 'string'
248
- },
249
- enabled: {
250
- type: 'boolean',
251
- default: true
252
- }
253
- },
254
- additionalProperties: false
771
+ apiKey: {
772
+ type: 'string',
773
+ description: 'Hetzner Cloud API key with read / write access'
255
774
  }
256
- ]
775
+ },
776
+ required: [
777
+ 'apiKey'
778
+ ],
779
+ additionalProperties: false
257
780
  },
258
781
  aws: {
259
782
  type: 'object',
@@ -267,7 +790,9 @@ export const FleetCreateInputSchema = {
267
790
  description: 'ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.'
268
791
  }
269
792
  },
270
- required: ['controllerRoleArn'],
793
+ required: [
794
+ 'controllerRoleArn'
795
+ ],
271
796
  additionalProperties: false
272
797
  },
273
798
  id: {
@@ -277,14 +802,11 @@ export const FleetCreateInputSchema = {
277
802
  pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
278
803
  description: 'Unique identifier of the kubernetes fleet.',
279
804
  example: 'new-clouds-fleet'
280
- },
281
- type: {
282
- type: 'string',
283
- description: 'Specifies the fleet type: infrastructure managed by Cloudfleet or Connected Fleets.',
284
- enum: ['managed', 'connected']
285
805
  }
286
806
  },
287
- required: ['id', 'type'],
807
+ required: [
808
+ 'id'
809
+ ],
288
810
  additionalProperties: false
289
811
  };
290
812
  export const FleetSchema = {
@@ -300,7 +822,9 @@ export const FleetSchema = {
300
822
  description: 'CPU limit in cores.'
301
823
  }
302
824
  },
303
- required: ['cpu'],
825
+ required: [
826
+ 'cpu'
827
+ ],
304
828
  additionalProperties: false,
305
829
  description: 'Limits define a set of bounds for provisioning capacity.'
306
830
  },
@@ -316,38 +840,27 @@ export const FleetSchema = {
316
840
  description: 'Project GCP Project id to deploy instances into'
317
841
  }
318
842
  },
319
- required: ['project'],
843
+ required: [
844
+ 'project'
845
+ ],
320
846
  additionalProperties: false
321
847
  },
322
848
  hetzner: {
323
- oneOf: [
324
- {
325
- type: 'object',
326
- properties: {
327
- enabled: {
328
- type: 'boolean',
329
- default: true
330
- },
331
- apiKey: {
332
- type: 'string'
333
- }
334
- },
335
- additionalProperties: false
849
+ type: 'object',
850
+ properties: {
851
+ enabled: {
852
+ type: 'boolean',
853
+ default: true
336
854
  },
337
- {
338
- type: 'object',
339
- properties: {
340
- apiKey: {
341
- type: 'string'
342
- },
343
- enabled: {
344
- type: 'boolean',
345
- default: true
346
- }
347
- },
348
- additionalProperties: false
855
+ apiKey: {
856
+ type: 'string',
857
+ description: 'Hetzner Cloud API key with read / write access'
349
858
  }
350
- ]
859
+ },
860
+ required: [
861
+ 'apiKey'
862
+ ],
863
+ additionalProperties: false
351
864
  },
352
865
  aws: {
353
866
  type: 'object',
@@ -361,7 +874,9 @@ export const FleetSchema = {
361
874
  description: 'ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.'
362
875
  }
363
876
  },
364
- required: ['controllerRoleArn'],
877
+ required: [
878
+ 'controllerRoleArn'
879
+ ],
365
880
  additionalProperties: false
366
881
  },
367
882
  id: {
@@ -371,14 +886,11 @@ export const FleetSchema = {
371
886
  pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
372
887
  description: 'Unique identifier of the kubernetes fleet.',
373
888
  example: 'new-clouds-fleet'
374
- },
375
- type: {
376
- type: 'string',
377
- description: 'Specifies the fleet type: infrastructure managed by Cloudfleet or Connected Fleets.',
378
- enum: ['managed', 'connected']
379
889
  }
380
890
  },
381
- required: ['id', 'type'],
891
+ required: [
892
+ 'id'
893
+ ],
382
894
  additionalProperties: false
383
895
  };
384
896
  export const FleetUpdateInputSchema = {
@@ -394,7 +906,9 @@ export const FleetUpdateInputSchema = {
394
906
  description: 'CPU limit in cores.'
395
907
  }
396
908
  },
397
- required: ['cpu'],
909
+ required: [
910
+ 'cpu'
911
+ ],
398
912
  additionalProperties: false,
399
913
  description: 'Limits define a set of bounds for provisioning capacity.'
400
914
  },
@@ -410,38 +924,27 @@ export const FleetUpdateInputSchema = {
410
924
  description: 'Project GCP Project id to deploy instances into'
411
925
  }
412
926
  },
413
- required: ['project'],
927
+ required: [
928
+ 'project'
929
+ ],
414
930
  additionalProperties: false
415
931
  },
416
932
  hetzner: {
417
- oneOf: [
418
- {
419
- type: 'object',
420
- properties: {
421
- enabled: {
422
- type: 'boolean',
423
- default: true
424
- },
425
- apiKey: {
426
- type: 'string'
427
- }
428
- },
429
- additionalProperties: false
933
+ type: 'object',
934
+ properties: {
935
+ enabled: {
936
+ type: 'boolean',
937
+ default: true
430
938
  },
431
- {
432
- type: 'object',
433
- properties: {
434
- apiKey: {
435
- type: 'string'
436
- },
437
- enabled: {
438
- type: 'boolean',
439
- default: true
440
- }
441
- },
442
- additionalProperties: false
939
+ apiKey: {
940
+ type: 'string',
941
+ description: 'Hetzner Cloud API key with read / write access'
443
942
  }
444
- ]
943
+ },
944
+ required: [
945
+ 'apiKey'
946
+ ],
947
+ additionalProperties: false
445
948
  },
446
949
  aws: {
447
950
  type: 'object',
@@ -455,282 +958,14 @@ export const FleetUpdateInputSchema = {
455
958
  description: 'ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.'
456
959
  }
457
960
  },
458
- required: ['controllerRoleArn'],
961
+ required: [
962
+ 'controllerRoleArn'
963
+ ],
459
964
  additionalProperties: false
460
965
  }
461
966
  },
462
967
  additionalProperties: false
463
968
  };
464
- export const InfrastructureFilterSchema = {
465
- type: 'object',
466
- properties: {
467
- version: {
468
- type: 'integer',
469
- description: 'Version of the infrastructure filter definition. Currently only version 1 is supported.',
470
- default: 1,
471
- example: 1,
472
- enum: [1]
473
- },
474
- provider: {
475
- type: 'array',
476
- items: {
477
- type: 'string'
478
- },
479
- description: 'Limit selection of cloud providers to this list. For the full list of supported providers, see [Providers](https://cloudfleet.ai/docs/cloud-infrastructure/providers/)',
480
- example: 'AWS'
481
- },
482
- region: {
483
- type: 'array',
484
- items: {
485
- type: 'string'
486
- },
487
- description: 'Limits selection of cloud regions to this list of Cloudfleet regions. For the full list of normalized regions and their mapping to CSP regions, see [Regions](https://cloudfleet.ai/docs/cloud-infrastructure/node-regions/)',
488
- example: 'northamerica'
489
- },
490
- sub_region: {
491
- type: 'array',
492
- items: {
493
- type: 'string'
494
- },
495
- description: 'Limits selection of cloud regions to this list of Cloudfleet regions. For the full list of normalized regions and their mapping to CSP regions, see [Regions](https://cloudfleet.ai/docs/cloud-infrastructure/node-regions/)',
496
- example: 'west'
497
- },
498
- csp_region: {
499
- type: 'array',
500
- items: {
501
- type: 'string'
502
- },
503
- description: 'Limits selection of cloud regions to this list of canonical provider regions',
504
- example: 'eu-west-1'
505
- },
506
- instance_type: {
507
- type: 'array',
508
- items: {
509
- type: 'string'
510
- },
511
- description: 'Limits selection of instance types to this list. Instance / VM type as defined by the cloud service provider',
512
- example: 'p4d.24xlarge'
513
- },
514
- accelerator_name: {
515
- type: 'array',
516
- items: {
517
- type: 'string'
518
- },
519
- description: "List of Normalized accelerator model names. For example, all variations of Nvidia A100 GPUs will have 'A100' as accelerator name with various memory configurations set in accelerator_memory field",
520
- example: 'A100'
521
- },
522
- accelerator_manufacturer: {
523
- type: 'array',
524
- items: {
525
- type: 'string'
526
- },
527
- description: "List of normalized accelerator manufacturer names. For example, all Nvidia GPUs will have 'NVIDIA' as accelerator manufacturer",
528
- example: 'NVIDIA'
529
- },
530
- accelerator_count_min: {
531
- type: 'integer',
532
- minimum: 0,
533
- description: 'Minimum number of accelerators available on the instance. Some cloud providers support shared accelerators, so the number of accelerators may be a fraction of the number of physical accelerators.',
534
- example: 1
535
- },
536
- accelerator_count_max: {
537
- type: 'integer',
538
- minimum: 0,
539
- description: 'Maximum number of accelerators available on the instance. Some cloud providers support shared accelerators, so the number of accelerators may be a fraction of the number of physical accelerators.',
540
- example: 8
541
- },
542
- accelerator_memory_min: {
543
- type: 'number',
544
- format: 'float',
545
- description: "Minimum amount of accelerator memory available to each accelerator. For example, Nvidia A100 GPUs will typically have '40.0' gibibytes (GiB) of memory, while A100 GPUs with HBM2E memory will have '80.0' gibibytes (GiB) of memory",
546
- example: 40
547
- },
548
- accelerator_memory_max: {
549
- type: 'number',
550
- format: 'float',
551
- description: "Maximum amount of accelerator memory available to each accelerator. For example, Nvidia A100 GPUs will typically have '40.0' gibibytes (GiB) of memory, while A100 GPUs with HBM2E memory will have '80.0' gibibytes (GiB) of memory",
552
- example: 80
553
- },
554
- memory_min: {
555
- type: 'integer',
556
- minimum: 0,
557
- description: 'Minimum amount of RAM in gibibytes (GiB)',
558
- example: 32
559
- },
560
- memory_max: {
561
- type: 'integer',
562
- minimum: 0,
563
- description: 'Maximum amount of RAM in gibibytes (GiB)',
564
- example: 64
565
- },
566
- vcpu_min: {
567
- type: 'integer',
568
- minimum: 1,
569
- description: 'Minimum number of vCPUs as defined by the cloud service provider. Some cloud providers use hyperthreading, so the number of vCPUs may be twice as high as the number of physical cores.',
570
- example: 32
571
- },
572
- vcpu_max: {
573
- type: 'integer',
574
- minimum: 1,
575
- description: 'Maximum number of vCPUs as defined by the cloud service provider. Some cloud providers use hyperthreading, so the number of vCPUs may be twice as high as the number of physical cores.',
576
- example: 128
577
- },
578
- storage_total_min: {
579
- type: 'number',
580
- format: 'float',
581
- minimum: 10,
582
- description: 'Minimum total storage in GiB (attached and local)',
583
- example: 128
584
- },
585
- storage_total_max: {
586
- type: 'number',
587
- format: 'float',
588
- minimum: 10,
589
- description: 'Maximum total storage in GiB (attached and local)',
590
- example: 256
591
- },
592
- storage_local_min: {
593
- type: 'number',
594
- format: 'float',
595
- description: 'Minimum volume of directly attached, block-device local storage in gibibytes (GiB)',
596
- example: 24
597
- },
598
- storage_local_max: {
599
- type: 'number',
600
- format: 'float',
601
- description: 'Maximum volume of directly attached, block-device local storage in gibibytes (GiB)',
602
- example: 128
603
- },
604
- price_min: {
605
- type: 'number',
606
- format: 'float',
607
- description: 'Minimum price of running the inctance per hour in USD as defined by the cloud service provider. The cheapest instance will be selected.',
608
- example: 10
609
- },
610
- price_max: {
611
- type: 'number',
612
- format: 'float',
613
- description: 'Maximum price of running the inctance per hour in USD as defined by the cloud service provider. The cheapest instance will be selected.',
614
- example: 50
615
- }
616
- },
617
- additionalProperties: false
618
- };
619
- export const InfrastructureInstanceSchema = {
620
- type: 'object',
621
- properties: {
622
- sku: {
623
- type: 'string',
624
- description: 'Cloudfleet instance SKU. Has a format of <provider>-<csp_region>-<instance_type>.',
625
- example: 'AWS-EU-WEST-1C-P4D.24XLARGE'
626
- },
627
- provider: {
628
- type: 'string',
629
- description: 'Normalized cloud service provider name. For the full list of supported providers, see [Providers](https://cloudfleet.ai/docs/cloud-infrastructure/providers/)',
630
- example: 'AWS'
631
- },
632
- region: {
633
- type: 'string',
634
- description: 'Normalized region. For the full list of normalized regions and their mapping to CSP regions, see [Regions](https://cloudfleet.ai/docs/cloud-infrastructure/node-regions/)',
635
- example: 'europe'
636
- },
637
- sub_region: {
638
- type: 'string',
639
- description: 'Normalized sub-region. For the full list of normalized regions and their mapping to CSP regions, see [Regions](https://cloudfleet.ai/docs/cloud-infrastructure/node-regions/)',
640
- example: 'west'
641
- },
642
- csp_region: {
643
- type: 'string',
644
- description: 'Region as defined by the cloud service provider',
645
- example: 'eu-west-1'
646
- },
647
- csp_zone: {
648
- type: 'string',
649
- description: 'Availability zone as defined by the cloud service provider',
650
- example: 'eu-west-1a'
651
- },
652
- instance_type: {
653
- type: 'string',
654
- description: 'Instance / VM type as defined by the cloud service provider',
655
- example: 'p4d.24xlarge'
656
- },
657
- architecture: {
658
- type: 'string',
659
- description: 'Instance CPU architecture',
660
- example: 'amd64'
661
- },
662
- os: {
663
- type: 'string',
664
- description: 'Instance operating system',
665
- example: 'linux'
666
- },
667
- vcpu: {
668
- type: 'number',
669
- format: 'float',
670
- minimum: 1,
671
- description: 'CPU count as defined by the cloud service provider. Some cloud providers use hyperthreading, so the number of vCPUs may be twice as high as the number of physical cores.',
672
- example: 96
673
- },
674
- memory: {
675
- type: 'number',
676
- format: 'float',
677
- minimum: 1,
678
- description: 'Total amount of RAM in gibibytes (GiB)',
679
- example: 1152
680
- },
681
- local_storage: {
682
- type: 'number',
683
- format: 'float',
684
- description: 'Volume of directly attached, block-device local storage in gibibytes (GiB)',
685
- example: 8000
686
- },
687
- accelerator_name: {
688
- type: 'string',
689
- description: "Normalized model name of accelerator. For example, all variations of Nvidia A100 GPUs will have 'A100' as accelerator name with various memory configurations set in accelerator_memory field",
690
- example: 'A100'
691
- },
692
- accelerator_manufacturer: {
693
- type: 'string',
694
- description: "Normalized manufacturer name of accelerator. For example, all Nvidia GPUs will have 'NVIDIA' as accelerator manufacturer",
695
- example: 'NVIDIA'
696
- },
697
- accelerator_count: {
698
- type: 'integer',
699
- description: 'Number of accelerators available on the instance. Some cloud providers support shared accelerators, so the number of accelerators may be a fraction of the number of physical accelerators.',
700
- example: 8
701
- },
702
- accelerator_memory: {
703
- type: 'number',
704
- format: 'float',
705
- description: "Ammount of accelerator memory available to each accelerator. For example, Nvidia A100 GPUs will typically have '40.0' gibibytes (GiB) of memory, while A100 GPUs with HBM2E memory will have '80.0' gibibytes (GiB) of memory",
706
- example: 40
707
- },
708
- pods_capacity: {
709
- type: 'number',
710
- format: 'float',
711
- description: 'Maximum number of pods that can be run on this instance type.',
712
- example: 110
713
- },
714
- capacity_type: {
715
- type: 'string',
716
- description: 'Capacity type of the instance. E.g. `on-demand`, `spot`.',
717
- example: 'on-demand'
718
- },
719
- price: {
720
- type: 'number',
721
- format: 'float',
722
- description: 'Price of running the inctance per hour in USD as defined by the cloud service provider',
723
- example: 35.39655
724
- },
725
- available: {
726
- type: 'boolean',
727
- description: 'Whether this instance type is available.',
728
- example: true
729
- }
730
- },
731
- required: ['sku', 'provider', 'region', 'sub_region', 'csp_region', 'csp_zone', 'instance_type', 'architecture', 'os', 'vcpu', 'memory', 'local_storage', 'price'],
732
- additionalProperties: false
733
- };
734
969
  export const InviteSchema = {
735
970
  type: 'object',
736
971
  properties: {
@@ -763,7 +998,9 @@ export const InviteSchema = {
763
998
  example: '7kUZnH7nnKUFfvc4NK2KQF'
764
999
  }
765
1000
  },
766
- required: ['date_created'],
1001
+ required: [
1002
+ 'date_created'
1003
+ ],
767
1004
  additionalProperties: false
768
1005
  };
769
1006
  export const InvoiceSchema = {
@@ -771,23 +1008,18 @@ export const InvoiceSchema = {
771
1008
  properties: {
772
1009
  id: {
773
1010
  type: 'string',
774
- format: 'uuid',
775
- description: 'Unique identifier of the invoice. UUID v4 string in canonical form',
776
- example: '415026b6-f00f-44f8-968d-fc6ef4d0fc6d'
1011
+ description: 'Unique identifier of the invoice.',
1012
+ example: 'in_1234567890xCrwxghOTj1234'
777
1013
  },
778
- organizationId: {
779
- type: 'string',
780
- format: 'uuid',
781
- description: 'Unique identifier of the organization. UUID v4 string in canonical form',
782
- example: '415026b6-f00f-44f8-968d-fc6ef4d0fc6d'
1014
+ number: {
1015
+ type: 'string'
783
1016
  },
784
1017
  status: {
785
1018
  type: 'string',
786
1019
  description: 'Status of the invoice',
787
- example: 'DRAFT',
788
- enum: ['DRAFT', 'COMMITTED', 'VOID']
1020
+ example: 'paid'
789
1021
  },
790
- amount: {
1022
+ total: {
791
1023
  type: 'number',
792
1024
  format: 'float',
793
1025
  description: 'Total amount of the invoice',
@@ -796,377 +1028,194 @@ export const InvoiceSchema = {
796
1028
  currency: {
797
1029
  type: 'string',
798
1030
  description: 'Currency of the invoice',
799
- example: 'USD',
800
- enum: ['AED', 'AFN', 'ALL', 'AMD', 'ANG', 'AOA', 'ARS', 'AUD', 'AWG', 'AZN', 'BAM', 'BBD', 'BDT', 'BGN', 'BHD', 'BIF', 'BMD', 'BND', 'BOB', 'BRL', 'BSD', 'BTN', 'BWP', 'BYR', 'BZD', 'CAD', 'CDF', 'CHF', 'CLP', 'CNY', 'COP', 'CRC', 'CUC', 'CUP', 'CVE', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD', 'EGP', 'ERN', 'ETB', 'EUR', 'FJD', 'FKP', 'GBP', 'GEL', 'GGP', 'GHS', 'GIP', 'GMD', 'GNF', 'GTQ', 'GYD', 'HKD', 'HNL', 'HRK', 'HTG', 'HUF', 'IDR', 'ILS', 'IMP', 'INR', 'IQD', 'IRR', 'ISK', 'JEP', 'JMD', 'JOD', 'JPY', 'KES', 'KGS', 'KHR', 'KMF', 'KPW', 'KRW', 'KWD', 'KYD', 'KZT', 'LAK', 'LBP', 'LKR', 'LRD', 'LSL', 'LTL', 'LVL', 'LYD', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MNT', 'MOP', 'MRO', 'MUR', 'MVR', 'MWK', 'MXN', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO', 'NOK', 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PGK', 'PHP', 'PKR', 'PLN', 'PYG', 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SBD', 'SCR', 'SDG', 'SEK', 'SGD', 'SHP', 'SLL', 'SOS', 'SPL', 'SRD', 'STD', 'SVC', 'SYP', 'SZL', 'THB', 'TJS', 'TMT', 'TND', 'TOP', 'TRY', 'TTD', 'TVD', 'TWD', 'TZS', 'UAH', 'UGX', 'USD', 'UYU', 'UZS', 'VEF', 'VND', 'VUV', 'WST', 'XAF', 'XCD', 'XDR', 'XOF', 'XPF', 'YER', 'ZAR', 'ZMW', 'ZWD', 'BTC']
801
- },
802
- creditAdj: {
803
- type: 'number',
804
- format: 'float',
805
- description: 'Total amount of credit adjustments',
806
- example: 0
1031
+ example: 'usd'
807
1032
  },
808
- refundAdj: {
809
- type: 'number',
810
- format: 'float',
811
- description: 'Total amount of refund adjustments',
812
- example: 0
1033
+ created: {
1034
+ type: 'string',
1035
+ format: 'date-time',
1036
+ description: 'Timestamp when the invoice was issued. ISO 8601 date string in the UTC timezone.',
1037
+ example: '2023-12-20T13:53:32.000Z'
813
1038
  },
814
- invoiceDate: {
1039
+ period_start: {
815
1040
  type: 'string',
816
- description: 'Date of the invoice',
817
- example: '2019-01-01T00:00:00.000Z'
1041
+ format: 'date-time',
1042
+ description: 'Billing period start timestamp. ISO 8601 date string in the UTC timezone.',
1043
+ example: '2023-12-20T13:53:32.000Z'
818
1044
  },
819
- targetDate: {
1045
+ period_end: {
820
1046
  type: 'string',
821
- description: 'Target date of the invoice',
822
- example: '2019-01-01T00:00:00.000Z'
1047
+ format: 'date-time',
1048
+ description: 'Billing period end timestamp. ISO 8601 date string in the UTC timezone.',
1049
+ example: '2023-12-20T13:53:32.000Z'
823
1050
  },
824
- invoiceNumber: {
1051
+ invoice_pdf: {
1052
+ type: 'string'
1053
+ }
1054
+ },
1055
+ required: [
1056
+ 'created',
1057
+ 'period_start',
1058
+ 'period_end'
1059
+ ],
1060
+ additionalProperties: false
1061
+ };
1062
+ export const MarketplaceListingFilesSchema = {
1063
+ type: 'object',
1064
+ properties: {
1065
+ chartYaml: {
825
1066
  type: 'string',
826
- description: 'Number of the invoice',
827
- example: 'INV-0001'
1067
+ description: 'Raw Chart.yaml content from the Helm chart',
1068
+ example: 'apiVersion: v2\nname: nginx-ingress\nversion: 1.18.2-cfke.45\nappVersion: 1.9.4'
828
1069
  },
829
- balance: {
830
- type: 'number',
831
- format: 'float',
832
- description: 'Balance of the invoice',
833
- example: 100
1070
+ valuesYaml: {
1071
+ type: 'string',
1072
+ description: 'Raw values.yaml content from the Helm chart',
1073
+ example: 'replicaCount: 1\nimage:\n repository: nginx\n tag: latest'
834
1074
  },
835
- bundleKeys: {
1075
+ valuesSchemaJson: {
1076
+ type: 'string',
1077
+ description: 'JSON schema for values.yaml as a string',
1078
+ example: '{"type":"object","properties":{"replicaCount":{"type":"number"}}}'
1079
+ }
1080
+ },
1081
+ additionalProperties: false
1082
+ };
1083
+ export const MarketplaceListingSchema = {
1084
+ type: 'object',
1085
+ properties: {
1086
+ name: {
836
1087
  type: 'string',
837
- description: 'Bundle keys of the invoice',
838
- example: 'bundleKey1,bundleKey2'
1088
+ description: 'Name of the chart',
1089
+ example: 'nginx-ingress'
839
1090
  },
840
- credits: {
1091
+ versions: {
841
1092
  type: 'array',
842
1093
  items: {
843
- type: 'object',
844
- properties: {
845
- id: {
846
- type: 'string',
847
- format: 'uuid',
848
- description: 'Unique identifier of the invoice item. UUID v4 string in canonical form',
849
- example: '415026b6-f00f-44f8-968d-fc6ef4d0fc6d'
850
- },
851
- linkedInvoiceItemId: {
852
- type: 'string',
853
- format: 'uuid',
854
- description: 'Unique identifier of the linked invoice item. UUID v4 string in canonical form',
855
- example: '415026b6-f00f-44f8-968d-fc6ef4d0fc6d'
856
- },
857
- productName: {
858
- type: 'string',
859
- description: 'Name of the product',
860
- example: 'Research team'
1094
+ type: 'string',
1095
+ 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-]+)*))?$',
1096
+ description: 'Specific version of the chart',
1097
+ example: '1.18.2-cfke.45'
1098
+ },
1099
+ description: 'Available versions of the chart'
1100
+ },
1101
+ version_channels: {
1102
+ type: 'array',
1103
+ items: {
1104
+ type: 'string',
1105
+ 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-]+)*))?$',
1106
+ description: 'Version channel pattern',
1107
+ example: '1.18.x-cfke.x'
1108
+ },
1109
+ description: 'Version channels for the chart'
1110
+ },
1111
+ latestVersion: {
1112
+ type: 'string',
1113
+ description: 'Latest version of the chart',
1114
+ example: '1.18.2-cfke.45'
1115
+ },
1116
+ metadata: {
1117
+ type: 'object',
1118
+ properties: {
1119
+ name: {
1120
+ type: 'string',
1121
+ description: 'Chart name from metadata',
1122
+ example: 'nginx-ingress'
1123
+ },
1124
+ version: {
1125
+ type: 'string',
1126
+ description: 'Chart version from metadata',
1127
+ example: '1.18.2-cfke.45'
1128
+ },
1129
+ description: {
1130
+ type: 'string',
1131
+ description: 'Chart description',
1132
+ example: 'NGINX Ingress Controller for Kubernetes'
1133
+ },
1134
+ appVersion: {
1135
+ type: 'string',
1136
+ description: 'Application version',
1137
+ example: '1.9.4'
1138
+ },
1139
+ apiVersion: {
1140
+ type: 'string',
1141
+ description: 'Helm API version',
1142
+ example: 'v2'
1143
+ },
1144
+ keywords: {
1145
+ type: 'array',
1146
+ items: {
1147
+ type: 'string'
861
1148
  },
862
- planName: {
863
- type: 'string',
864
- description: 'Name of the plan',
865
- example: 'Plan A'
1149
+ description: 'Chart keywords',
1150
+ example: [
1151
+ 'ingress',
1152
+ 'nginx',
1153
+ 'load-balancer'
1154
+ ]
1155
+ },
1156
+ home: {
1157
+ type: 'string',
1158
+ description: 'Chart home URL',
1159
+ example: 'https://kubernetes.github.io/ingress-nginx/'
1160
+ },
1161
+ icon: {
1162
+ type: 'string',
1163
+ description: 'A URL to an SVG or PNG image to be used as an icon',
1164
+ example: 'https://cloudfleet.ai/images/marketplace/icons/ingress-nginx.png'
1165
+ },
1166
+ sources: {
1167
+ type: 'array',
1168
+ items: {
1169
+ type: 'string'
866
1170
  },
867
- phaseName: {
868
- type: 'string',
869
- description: 'Name of the phase',
870
- example: 'Phase A'
871
- },
872
- usageName: {
873
- type: 'string',
874
- description: 'Name of the usage',
875
- example: 'Usage A'
876
- },
877
- prettyProductName: {
878
- type: 'string',
879
- description: 'Pretty name of the product',
880
- example: 'Research team'
881
- },
882
- prettyPlanName: {
883
- type: 'string',
884
- description: 'Pretty name of the plan',
885
- example: 'Plan A'
886
- },
887
- prettyPhaseName: {
888
- type: 'string',
889
- description: 'Pretty name of the phase',
890
- example: 'Phase A'
891
- },
892
- prettyUsageName: {
893
- type: 'string',
894
- description: 'Pretty name of the usage',
895
- example: 'Usage A'
896
- },
897
- itemType: {
898
- type: 'string',
899
- description: 'Type of the invoice item',
900
- example: 'EXTERNAL_CHARGE',
901
- enum: ['EXTERNAL_CHARGE', 'FIXED', 'RECURRING', 'REPAIR_ADJ', 'CBA_ADJ', 'CREDIT_ADJ', 'ITEM_ADJ', 'USAGE', 'TAX', 'PARENT_SUMMARY']
902
- },
903
- description: {
904
- type: 'string',
905
- description: 'Description of the invoice item',
906
- example: 'Description of the invoice item'
907
- },
908
- startDate: {
909
- type: 'string',
910
- description: 'Start date of the invoice item',
911
- example: '2019-01-01T00:00:00.000Z'
912
- },
913
- endDate: {
914
- type: 'string',
915
- description: 'End date of the invoice item',
916
- example: '2019-01-01T00:00:00.000Z'
917
- },
918
- amount: {
919
- type: 'number',
920
- format: 'float',
921
- description: 'Amount of the invoice item',
922
- example: 100
923
- },
924
- rate: {
925
- type: 'number',
926
- format: 'float',
927
- description: 'Rate of the invoice item',
928
- example: 100
929
- },
930
- currency: {
931
- type: 'string',
932
- description: 'Currency of the invoice item',
933
- example: 'USD',
934
- enum: ['AED', 'AFN', 'ALL', 'AMD', 'ANG', 'AOA', 'ARS', 'AUD', 'AWG', 'AZN', 'BAM', 'BBD', 'BDT', 'BGN', 'BHD', 'BIF', 'BMD', 'BND', 'BOB', 'BRL', 'BSD', 'BTN', 'BWP', 'BYR', 'BZD', 'CAD', 'CDF', 'CHF', 'CLP', 'CNY', 'COP', 'CRC', 'CUC', 'CUP', 'CVE', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD', 'EGP', 'ERN', 'ETB', 'EUR', 'FJD', 'FKP', 'GBP', 'GEL', 'GGP', 'GHS', 'GIP', 'GMD', 'GNF', 'GTQ', 'GYD', 'HKD', 'HNL', 'HRK', 'HTG', 'HUF', 'IDR', 'ILS', 'IMP', 'INR', 'IQD', 'IRR', 'ISK', 'JEP', 'JMD', 'JOD', 'JPY', 'KES', 'KGS', 'KHR', 'KMF', 'KPW', 'KRW', 'KWD', 'KYD', 'KZT', 'LAK', 'LBP', 'LKR', 'LRD', 'LSL', 'LTL', 'LVL', 'LYD', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MNT', 'MOP', 'MRO', 'MUR', 'MVR', 'MWK', 'MXN', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO', 'NOK', 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PGK', 'PHP', 'PKR', 'PLN', 'PYG', 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SBD', 'SCR', 'SDG', 'SEK', 'SGD', 'SHP', 'SLL', 'SOS', 'SPL', 'SRD', 'STD', 'SVC', 'SYP', 'SZL', 'THB', 'TJS', 'TMT', 'TND', 'TOP', 'TRY', 'TTD', 'TVD', 'TWD', 'TZS', 'UAH', 'UGX', 'USD', 'UYU', 'UZS', 'VEF', 'VND', 'VUV', 'WST', 'XAF', 'XCD', 'XDR', 'XOF', 'XPF', 'YER', 'ZAR', 'ZMW', 'ZWD', 'BTC']
935
- },
936
- quantity: {
937
- type: 'number',
938
- format: 'float',
939
- description: 'Quantity of the invoice item',
940
- example: 1
941
- },
942
- itemDetails: {
943
- type: 'string',
944
- description: 'Details of the invoice item',
945
- example: 'Details of the invoice item'
946
- },
947
- catalogEffectiveDate: {
948
- type: 'string',
949
- description: 'Effective date of the catalog',
950
- example: '2019-01-01T00:00:00.000Z'
951
- },
952
- childItems: {
953
- type: 'array',
954
- items: {
955
- oneOf: [
956
- {
957
- type: 'array'
958
- },
959
- {
960
- type: 'boolean'
961
- },
962
- {
963
- type: 'number'
964
- },
965
- {
966
- type: 'object',
967
- additionalProperties: true
968
- },
969
- {
970
- type: 'string'
971
- }
972
- ]
973
- },
974
- description: 'Child items of the invoice item'
975
- }
1171
+ description: 'Chart source URLs',
1172
+ example: [
1173
+ 'https://github.com/kubernetes/ingress-nginx'
1174
+ ]
976
1175
  },
977
- additionalProperties: false
978
- },
979
- description: 'Credits of the invoice'
980
- },
981
- items: {
982
- type: 'array',
983
- items: {
984
- type: 'object',
985
- properties: {
986
- id: {
987
- type: 'string',
988
- format: 'uuid',
989
- description: 'Unique identifier of the invoice item. UUID v4 string in canonical form',
990
- example: '415026b6-f00f-44f8-968d-fc6ef4d0fc6d'
991
- },
992
- linkedInvoiceItemId: {
993
- type: 'string',
994
- format: 'uuid',
995
- description: 'Unique identifier of the linked invoice item. UUID v4 string in canonical form',
996
- example: '415026b6-f00f-44f8-968d-fc6ef4d0fc6d'
997
- },
998
- productName: {
999
- type: 'string',
1000
- description: 'Name of the product',
1001
- example: 'Research team'
1002
- },
1003
- planName: {
1004
- type: 'string',
1005
- description: 'Name of the plan',
1006
- example: 'Plan A'
1007
- },
1008
- phaseName: {
1009
- type: 'string',
1010
- description: 'Name of the phase',
1011
- example: 'Phase A'
1012
- },
1013
- usageName: {
1014
- type: 'string',
1015
- description: 'Name of the usage',
1016
- example: 'Usage A'
1017
- },
1018
- prettyProductName: {
1019
- type: 'string',
1020
- description: 'Pretty name of the product',
1021
- example: 'Research team'
1022
- },
1023
- prettyPlanName: {
1024
- type: 'string',
1025
- description: 'Pretty name of the plan',
1026
- example: 'Plan A'
1027
- },
1028
- prettyPhaseName: {
1029
- type: 'string',
1030
- description: 'Pretty name of the phase',
1031
- example: 'Phase A'
1032
- },
1033
- prettyUsageName: {
1034
- type: 'string',
1035
- description: 'Pretty name of the usage',
1036
- example: 'Usage A'
1037
- },
1038
- itemType: {
1039
- type: 'string',
1040
- description: 'Type of the invoice item',
1041
- example: 'EXTERNAL_CHARGE',
1042
- enum: ['EXTERNAL_CHARGE', 'FIXED', 'RECURRING', 'REPAIR_ADJ', 'CBA_ADJ', 'CREDIT_ADJ', 'ITEM_ADJ', 'USAGE', 'TAX', 'PARENT_SUMMARY']
1043
- },
1044
- description: {
1045
- type: 'string',
1046
- description: 'Description of the invoice item',
1047
- example: 'Description of the invoice item'
1048
- },
1049
- startDate: {
1050
- type: 'string',
1051
- description: 'Start date of the invoice item',
1052
- example: '2019-01-01T00:00:00.000Z'
1053
- },
1054
- endDate: {
1055
- type: 'string',
1056
- description: 'End date of the invoice item',
1057
- example: '2019-01-01T00:00:00.000Z'
1058
- },
1059
- amount: {
1060
- type: 'number',
1061
- format: 'float',
1062
- description: 'Amount of the invoice item',
1063
- example: 100
1064
- },
1065
- rate: {
1066
- type: 'number',
1067
- format: 'float',
1068
- description: 'Rate of the invoice item',
1069
- example: 100
1070
- },
1071
- currency: {
1072
- type: 'string',
1073
- description: 'Currency of the invoice item',
1074
- example: 'USD',
1075
- enum: ['AED', 'AFN', 'ALL', 'AMD', 'ANG', 'AOA', 'ARS', 'AUD', 'AWG', 'AZN', 'BAM', 'BBD', 'BDT', 'BGN', 'BHD', 'BIF', 'BMD', 'BND', 'BOB', 'BRL', 'BSD', 'BTN', 'BWP', 'BYR', 'BZD', 'CAD', 'CDF', 'CHF', 'CLP', 'CNY', 'COP', 'CRC', 'CUC', 'CUP', 'CVE', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD', 'EGP', 'ERN', 'ETB', 'EUR', 'FJD', 'FKP', 'GBP', 'GEL', 'GGP', 'GHS', 'GIP', 'GMD', 'GNF', 'GTQ', 'GYD', 'HKD', 'HNL', 'HRK', 'HTG', 'HUF', 'IDR', 'ILS', 'IMP', 'INR', 'IQD', 'IRR', 'ISK', 'JEP', 'JMD', 'JOD', 'JPY', 'KES', 'KGS', 'KHR', 'KMF', 'KPW', 'KRW', 'KWD', 'KYD', 'KZT', 'LAK', 'LBP', 'LKR', 'LRD', 'LSL', 'LTL', 'LVL', 'LYD', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MNT', 'MOP', 'MRO', 'MUR', 'MVR', 'MWK', 'MXN', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO', 'NOK', 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PGK', 'PHP', 'PKR', 'PLN', 'PYG', 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SBD', 'SCR', 'SDG', 'SEK', 'SGD', 'SHP', 'SLL', 'SOS', 'SPL', 'SRD', 'STD', 'SVC', 'SYP', 'SZL', 'THB', 'TJS', 'TMT', 'TND', 'TOP', 'TRY', 'TTD', 'TVD', 'TWD', 'TZS', 'UAH', 'UGX', 'USD', 'UYU', 'UZS', 'VEF', 'VND', 'VUV', 'WST', 'XAF', 'XCD', 'XDR', 'XOF', 'XPF', 'YER', 'ZAR', 'ZMW', 'ZWD', 'BTC']
1076
- },
1077
- quantity: {
1078
- type: 'number',
1079
- format: 'float',
1080
- description: 'Quantity of the invoice item',
1081
- example: 1
1082
- },
1083
- itemDetails: {
1084
- type: 'string',
1085
- description: 'Details of the invoice item',
1086
- example: 'Details of the invoice item'
1087
- },
1088
- catalogEffectiveDate: {
1089
- type: 'string',
1090
- description: 'Effective date of the catalog',
1091
- example: '2019-01-01T00:00:00.000Z'
1092
- },
1093
- childItems: {
1094
- type: 'array',
1095
- items: {
1096
- oneOf: [
1097
- {
1098
- type: 'array'
1099
- },
1100
- {
1101
- type: 'boolean'
1102
- },
1103
- {
1104
- type: 'number'
1105
- },
1106
- {
1107
- type: 'object',
1108
- additionalProperties: true
1109
- },
1110
- {
1111
- type: 'string'
1112
- }
1113
- ]
1176
+ maintainers: {
1177
+ type: 'array',
1178
+ items: {
1179
+ type: 'object',
1180
+ properties: {
1181
+ name: {
1182
+ type: 'string',
1183
+ description: 'Maintainer name',
1184
+ example: 'NGINX Team'
1185
+ },
1186
+ email: {
1187
+ type: 'string',
1188
+ description: 'Maintainer email',
1189
+ example: 'support@nginx.org'
1190
+ }
1114
1191
  },
1115
- description: 'Child items of the invoice item'
1116
- }
1117
- },
1118
- additionalProperties: false
1192
+ required: [
1193
+ 'name'
1194
+ ],
1195
+ additionalProperties: false
1196
+ },
1197
+ description: 'Chart maintainers'
1198
+ }
1119
1199
  },
1120
- description: 'Items of the invoice'
1200
+ required: [
1201
+ 'name',
1202
+ 'version'
1203
+ ],
1204
+ additionalProperties: false,
1205
+ description: 'Chart metadata'
1121
1206
  }
1122
1207
  },
1208
+ required: [
1209
+ 'name',
1210
+ 'versions',
1211
+ 'version_channels',
1212
+ 'latestVersion'
1213
+ ],
1123
1214
  additionalProperties: false
1124
1215
  };
1125
- export const OrganizationContactInfoSchema = {
1216
+ export const OrganizationCreateInputSchema = {
1126
1217
  type: 'object',
1127
1218
  properties: {
1128
- address1: {
1129
- type: 'string',
1130
- nullable: true,
1131
- description: 'Street address, P.O. box, c/o',
1132
- example: '123 Main St.'
1133
- },
1134
- address2: {
1135
- type: 'string',
1136
- nullable: true,
1137
- description: 'Apartment, suite, unit, building, floor, etc.',
1138
- example: 'Suite 100'
1139
- },
1140
- postalCode: {
1141
- type: 'string',
1142
- nullable: true,
1143
- description: 'Postal code as a string.',
1144
- example: '94105'
1145
- },
1146
- city: {
1147
- type: 'string',
1148
- nullable: true,
1149
- description: 'City or town name.',
1150
- example: 'San Francisco'
1151
- },
1152
- state: {
1153
- type: 'string',
1154
- nullable: true,
1155
- description: 'State, province, or region name.',
1156
- example: 'CA'
1157
- },
1158
- country: {
1159
- type: 'string',
1160
- nullable: true,
1161
- description: 'Country as a ISO 3166-1 alpha-2 country code.',
1162
- example: 'US'
1163
- },
1164
- phone: {
1165
- type: 'string',
1166
- nullable: true,
1167
- description: 'Phone number as a string.',
1168
- example: '+1 555 555 5555'
1169
- },
1170
1219
  email: {
1171
1220
  type: 'string',
1172
1221
  format: 'email',
@@ -1182,166 +1231,46 @@ export const OrganizationContactInfoSchema = {
1182
1231
  type: 'string',
1183
1232
  description: 'Last name of the billing contact person.',
1184
1233
  example: 'Doe'
1185
- }
1186
- },
1187
- required: ['email', 'first_name', 'last_name'],
1188
- additionalProperties: false
1189
- };
1190
- export const OrganizationCreateInputSchema = {
1191
- type: 'object',
1192
- properties: {
1193
- name: {
1234
+ },
1235
+ company_name: {
1194
1236
  type: 'string',
1195
1237
  maxLength: 120,
1196
- minLength: 5,
1238
+ minLength: 2,
1197
1239
  pattern: '^(?!\\s)(?!.*\\s$)(?=.*[a-zA-ZÆÐƎƏƐƔIJŊŒẞÞǷȜæðǝəɛɣijŋœĸſßþƿȝĄƁÇĐƊĘĦĮƘŁØƠŞȘŢȚŦŲƯY̨Ƴąɓçđɗęħįƙłøơşșţțŧųưy̨ƴÁÀÂÄǍĂĀÃÅǺĄÆǼǢƁĆĊĈČÇĎḌĐƊÐÉÈĖÊËĚĔĒĘẸƎƏƐĠĜǦĞĢƔáàâäǎăāãåǻąæǽǣɓćċĉčçďḍđɗðéèėêëěĕēęẹǝəɛġĝǧğģɣĤḤĦIÍÌİÎÏǏĬĪĨĮỊIJĴĶƘĹĻŁĽĿʼNŃN̈ŇÑŅŊÓÒÔÖǑŎŌÕŐỌØǾƠŒĥḥħıíìiîïǐĭīĩįịijĵķƙĸĺļłľŀʼnńn̈ňñņŋóòôöǒŏōõőọøǿơœŔŘŖŚŜŠŞȘṢẞŤŢṬŦÞÚÙÛÜǓŬŪŨŰŮŲỤƯẂẀŴẄǷÝỲŶŸȲỸƳŹŻŽẒŕřŗſśŝšşșṣßťţṭŧþúùûüǔŭūũűůųụưẃẁŵẅƿýỳŷÿȳỹƴźżžẓ0-9])[a-zA-ZÆÐƎƏƐƔIJŊŒẞÞǷȜæðǝəɛɣijŋœĸſßþƿȝĄƁÇĐƊĘĦĮƘŁØƠŞȘŢȚŦŲƯY̨Ƴąɓçđɗęħįƙłøơşșţțŧųưy̨ƴÁÀÂÄǍĂĀÃÅǺĄÆǼǢƁĆĊĈČÇĎḌĐƊÐÉÈĖÊËĚĔĒĘẸƎƏƐĠĜǦĞĢƔáàâäǎăāãåǻąæǽǣɓćċĉčçďḍđɗðéèėêëěĕēęẹǝəɛġĝǧğģɣĤḤĦIÍÌİÎÏǏĬĪĨĮỊIJĴĶƘĹĻŁĽĿʼNŃN̈ŇÑŅŊÓÒÔÖǑŎŌÕŐỌØǾƠŒĥḥħıíìiîïǐĭīĩįịijĵķƙĸĺļłľŀʼnńn̈ňñņŋóòôöǒŏōõőọøǿơœŔŘŖŚŜŠŞȘṢẞŤŢṬŦÞÚÙÛÜǓŬŪŨŰŮŲỤƯẂẀŴẄǷÝỲŶŸȲỸƳŹŻŽẒŕřŗſśŝšşșṣßťţṭŧþúùûüǔŭūũűůųụưẃẁŵẅƿýỳŷÿȳỹƴźżžẓ0-9 -.]{2,}$',
1198
1240
  description: 'Name of the legal entity. This name will be used in invoices. Use your first and last name for individual accounts.',
1199
1241
  example: 'ACME Corp.'
1200
1242
  },
1201
- contactInfo: {
1202
- type: 'object',
1203
- properties: {
1204
- address1: {
1205
- type: 'string',
1206
- description: 'Street address, P.O. box, c/o',
1207
- example: '123 Main St.'
1208
- },
1209
- address2: {
1210
- type: 'string',
1211
- description: 'Apartment, suite, unit, building, floor, etc.',
1212
- example: 'Suite 100'
1213
- },
1214
- postalCode: {
1215
- type: 'string',
1216
- description: 'Postal code as a string.',
1217
- example: '94105'
1218
- },
1219
- city: {
1220
- type: 'string',
1221
- description: 'City or town name.',
1222
- example: 'San Francisco'
1223
- },
1224
- state: {
1225
- type: 'string',
1226
- description: 'State, province, or region name.',
1227
- example: 'CA'
1228
- },
1229
- country: {
1230
- type: 'string',
1231
- description: 'Country as a ISO 3166-1 alpha-2 country code.',
1232
- example: 'US'
1233
- },
1234
- phone: {
1235
- type: 'string',
1236
- description: 'Phone number as a string.',
1237
- example: '+1 555 555 5555'
1238
- },
1239
- email: {
1240
- type: 'string',
1241
- format: 'email',
1242
- description: 'Email address used for billing as a string.',
1243
- example: 'email@example.com'
1244
- },
1245
- first_name: {
1246
- type: 'string',
1247
- description: 'First name of the billing contact person.',
1248
- example: 'John'
1249
- },
1250
- last_name: {
1251
- type: 'string',
1252
- description: 'Last name of the billing contact person.',
1253
- example: 'Doe'
1254
- }
1255
- },
1256
- required: ['email', 'first_name', 'last_name'],
1257
- additionalProperties: false,
1258
- description: 'Organization contact information and billing address.'
1259
- },
1260
1243
  password: {
1261
1244
  type: 'string',
1262
1245
  minLength: 8,
1263
1246
  description: 'Password for the root account. Must be at least 8 characters long and contain at least one uppercase letter, one lowercase letter, one number and one special character.'
1264
1247
  }
1265
1248
  },
1266
- required: ['name', 'contactInfo', 'password'],
1249
+ required: [
1250
+ 'email',
1251
+ 'first_name',
1252
+ 'last_name',
1253
+ 'company_name',
1254
+ 'password'
1255
+ ],
1267
1256
  additionalProperties: false
1268
1257
  };
1269
1258
  export const OrganizationSchema = {
1270
1259
  type: 'object',
1271
1260
  properties: {
1272
- name: {
1273
- type: 'string',
1274
- maxLength: 120,
1275
- minLength: 5,
1276
- pattern: '^(?!\\s)(?!.*\\s$)(?=.*[a-zA-ZÆÐƎƏƐƔIJŊŒẞÞǷȜæðǝəɛɣijŋœĸſßþƿȝĄƁÇĐƊĘĦĮƘŁØƠŞȘŢȚŦŲƯY̨Ƴąɓçđɗęħįƙłøơşșţțŧųưy̨ƴÁÀÂÄǍĂĀÃÅǺĄÆǼǢƁĆĊĈČÇĎḌĐƊÐÉÈĖÊËĚĔĒĘẸƎƏƐĠĜǦĞĢƔáàâäǎăāãåǻąæǽǣɓćċĉčçďḍđɗðéèėêëěĕēęẹǝəɛġĝǧğģɣĤḤĦIÍÌİÎÏǏĬĪĨĮỊIJĴĶƘĹĻŁĽĿʼNŃN̈ŇÑŅŊÓÒÔÖǑŎŌÕŐỌØǾƠŒĥḥħıíìiîïǐĭīĩįịijĵķƙĸĺļłľŀʼnńn̈ňñņŋóòôöǒŏōõőọøǿơœŔŘŖŚŜŠŞȘṢẞŤŢṬŦÞÚÙÛÜǓŬŪŨŰŮŲỤƯẂẀŴẄǷÝỲŶŸȲỸƳŹŻŽẒŕřŗſśŝšşșṣßťţṭŧþúùûüǔŭūũűůųụưẃẁŵẅƿýỳŷÿȳỹƴźżžẓ0-9])[a-zA-ZÆÐƎƏƐƔIJŊŒẞÞǷȜæðǝəɛɣijŋœĸſßþƿȝĄƁÇĐƊĘĦĮƘŁØƠŞȘŢȚŦŲƯY̨Ƴąɓçđɗęħįƙłøơşșţțŧųưy̨ƴÁÀÂÄǍĂĀÃÅǺĄÆǼǢƁĆĊĈČÇĎḌĐƊÐÉÈĖÊËĚĔĒĘẸƎƏƐĠĜǦĞĢƔáàâäǎăāãåǻąæǽǣɓćċĉčçďḍđɗðéèėêëěĕēęẹǝəɛġĝǧğģɣĤḤĦIÍÌİÎÏǏĬĪĨĮỊIJĴĶƘĹĻŁĽĿʼNŃN̈ŇÑŅŊÓÒÔÖǑŎŌÕŐỌØǾƠŒĥḥħıíìiîïǐĭīĩįịijĵķƙĸĺļłľŀʼnńn̈ňñņŋóòôöǒŏōõőọøǿơœŔŘŖŚŜŠŞȘṢẞŤŢṬŦÞÚÙÛÜǓŬŪŨŰŮŲỤƯẂẀŴẄǷÝỲŶŸȲỸƳŹŻŽẒŕřŗſśŝšşșṣßťţṭŧþúùûüǔŭūũűůųụưẃẁŵẅƿýỳŷÿȳỹƴźżžẓ0-9 -.]{2,}$',
1277
- description: 'Name of the legal entity. This name will be used in invoices. Use your first and last name for individual accounts.',
1278
- example: 'ACME Corp.'
1279
- },
1280
- contactInfo: {
1281
- type: 'object',
1282
- properties: {
1283
- address1: {
1284
- type: 'string',
1285
- description: 'Street address, P.O. box, c/o',
1286
- example: '123 Main St.'
1287
- },
1288
- address2: {
1289
- type: 'string',
1290
- description: 'Apartment, suite, unit, building, floor, etc.',
1291
- example: 'Suite 100'
1292
- },
1293
- postalCode: {
1294
- type: 'string',
1295
- description: 'Postal code as a string.',
1296
- example: '94105'
1297
- },
1298
- city: {
1299
- type: 'string',
1300
- description: 'City or town name.',
1301
- example: 'San Francisco'
1302
- },
1303
- state: {
1304
- type: 'string',
1305
- description: 'State, province, or region name.',
1306
- example: 'CA'
1307
- },
1308
- country: {
1309
- type: 'string',
1310
- description: 'Country as a ISO 3166-1 alpha-2 country code.',
1311
- example: 'US'
1312
- },
1313
- phone: {
1314
- type: 'string',
1315
- description: 'Phone number as a string.',
1316
- example: '+1 555 555 5555'
1317
- },
1318
- email: {
1319
- type: 'string',
1320
- format: 'email',
1321
- description: 'Email address used for billing as a string.',
1322
- example: 'email@example.com'
1323
- },
1324
- first_name: {
1325
- type: 'string',
1326
- description: 'First name of the billing contact person.',
1327
- example: 'John'
1328
- },
1329
- last_name: {
1330
- type: 'string',
1331
- description: 'Last name of the billing contact person.',
1332
- example: 'Doe'
1333
- }
1334
- },
1335
- required: ['email', 'first_name', 'last_name'],
1336
- additionalProperties: false,
1337
- description: 'Organization contact information and billing address.'
1338
- },
1339
1261
  id: {
1340
1262
  type: 'string',
1341
1263
  format: 'uuid',
1342
1264
  description: 'Unique identifier of the organization. UUID v4 string in canonical form',
1343
1265
  example: 'e94d30ec-a2dd-4dcb-832c-ac2be144ba91'
1344
1266
  },
1267
+ name: {
1268
+ type: 'string',
1269
+ maxLength: 120,
1270
+ minLength: 2,
1271
+ description: 'Name of the legal entity. This name will be used in invoices. Use your first and last name for individual accounts.',
1272
+ example: 'ACME Corp.'
1273
+ },
1345
1274
  date_created: {
1346
1275
  type: 'string',
1347
1276
  format: 'date-time',
@@ -1379,12 +1308,6 @@ export const OrganizationSchema = {
1379
1308
  description: 'Maximum number of fleets that can be created per cluster.',
1380
1309
  example: 999
1381
1310
  },
1382
- managed_fleets_cpu_max: {
1383
- type: 'integer',
1384
- minimum: 0,
1385
- description: 'Maximum number of CPU cores per managed fleet.',
1386
- example: 999
1387
- },
1388
1311
  cluster_tiers: {
1389
1312
  type: 'array',
1390
1313
  items: {
@@ -1411,168 +1334,520 @@ export const OrganizationSchema = {
1411
1334
  id: {
1412
1335
  type: 'string',
1413
1336
  description: 'Id of the control plane version. Used in API calls.',
1414
- example: '1.29.x-cfke.x'
1337
+ example: '1.33.x-cfke.x'
1415
1338
  },
1416
1339
  label: {
1417
1340
  type: 'string',
1418
1341
  description: 'Label of the control plane version. Used in frontent UI.',
1419
- example: '1.29.x (Always latest 1.29 patch version)'
1342
+ example: '1.33.x (Always latest 1.33 patch version)'
1420
1343
  }
1421
1344
  },
1422
- required: ['id', 'label'],
1345
+ required: [
1346
+ 'id',
1347
+ 'label'
1348
+ ],
1423
1349
  additionalProperties: false
1424
1350
  },
1425
1351
  minItems: 1,
1426
1352
  description: 'List of CFKE control plane versions available for the organization.'
1353
+ },
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
+ cfcr_storage_gb: {
1367
+ type: 'integer',
1368
+ minimum: -1,
1369
+ description: 'Organization-level maximum CFCR storage volume in GB. -1 means no limit.',
1370
+ example: 500
1427
1371
  }
1428
1372
  },
1429
- required: ['basic_clusters_max', 'basic_clusters_available', 'pro_clusters_max', 'pro_clusters_available', 'fleets_max', 'managed_fleets_cpu_max', 'cluster_tiers', 'regions', 'versions'],
1373
+ required: [
1374
+ 'basic_clusters_max',
1375
+ 'basic_clusters_available',
1376
+ 'pro_clusters_max',
1377
+ 'pro_clusters_available',
1378
+ 'fleets_max',
1379
+ 'cluster_tiers',
1380
+ 'regions',
1381
+ 'versions',
1382
+ 'copilot_user_hourly_tokens',
1383
+ 'copilot_organization_hourly_tokens',
1384
+ 'cfcr_storage_gb'
1385
+ ],
1430
1386
  additionalProperties: false,
1431
1387
  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.'
1432
1388
  },
1433
- pending_actions: {
1434
- type: 'array',
1435
- items: {
1436
- type: 'string',
1437
- example: 'signup-payment-method',
1438
- enum: ['signup-billing-address', 'signup-payment-method', 'signup-invite-team', 'signup-create-cluster']
1439
- },
1440
- description: 'List of pending actions that the user needs to complete. Used in Cloudfleet console to guide the user through the onboarding process.'
1389
+ status: {
1390
+ type: 'string',
1391
+ description: 'Status of the organization. Can be `active` or `closed`, or `suspended`.',
1392
+ enum: [
1393
+ 'active',
1394
+ 'closed',
1395
+ 'suspended'
1396
+ ]
1397
+ }
1398
+ },
1399
+ required: [
1400
+ 'id',
1401
+ 'date_created',
1402
+ 'quota',
1403
+ 'status'
1404
+ ],
1405
+ additionalProperties: false
1406
+ };
1407
+ export const PaymentMethodSchema = {
1408
+ type: 'object',
1409
+ properties: {
1410
+ id: {
1411
+ type: 'string',
1412
+ format: 'uuid',
1413
+ description: 'Unique identifier of the organization. UUID v4 string in canonical form.',
1414
+ example: 'e94d30ec-a2dd-4dcb-832c-ac2be144ba91'
1415
+ },
1416
+ setup: {
1417
+ type: 'boolean',
1418
+ description: 'Whether organization payment method was set up and ready to use for payments.',
1419
+ example: true
1420
+ },
1421
+ type: {
1422
+ type: 'string',
1423
+ nullable: true,
1424
+ description: 'Payment method type type. Only `card` payments supported at the moment.',
1425
+ example: 'card',
1426
+ enum: [
1427
+ 'card'
1428
+ ]
1429
+ },
1430
+ last4: {
1431
+ type: 'string',
1432
+ nullable: true,
1433
+ description: 'Last 4 digits of the payment card number.',
1434
+ example: '4242'
1435
+ },
1436
+ exp_month: {
1437
+ type: 'integer',
1438
+ minimum: 1,
1439
+ maximum: 12,
1440
+ nullable: true,
1441
+ description: 'Two-digit number representing the card\'s expiration month.',
1442
+ example: '12'
1443
+ },
1444
+ exp_year: {
1445
+ type: 'integer',
1446
+ minimum: 2024,
1447
+ nullable: true,
1448
+ description: 'Four-digit number representing the card\'s expiration year.',
1449
+ example: '2028'
1450
+ },
1451
+ brand: {
1452
+ type: 'string',
1453
+ nullable: true,
1454
+ description: 'Payment card brand. Can be `amex`, `diners`, `discover`, `eftpos_au`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown`.',
1455
+ example: 'visa',
1456
+ enum: [
1457
+ 'amex',
1458
+ 'diners',
1459
+ 'discover',
1460
+ 'eftpos_au',
1461
+ 'jcb',
1462
+ 'mastercard',
1463
+ 'unionpay',
1464
+ 'visa',
1465
+ 'unknown'
1466
+ ]
1467
+ }
1468
+ },
1469
+ required: [
1470
+ 'id',
1471
+ 'setup',
1472
+ 'type',
1473
+ 'last4',
1474
+ 'exp_month',
1475
+ 'exp_year',
1476
+ 'brand'
1477
+ ],
1478
+ additionalProperties: false
1479
+ };
1480
+ export const PlatformQuotaSchema = {
1481
+ type: 'object',
1482
+ properties: {
1483
+ basic_clusters_max: {
1484
+ type: 'integer',
1485
+ minimum: 0,
1486
+ description: 'Maximum number of Basic clusters that can be created.',
1487
+ example: 999
1488
+ },
1489
+ basic_clusters_available: {
1490
+ type: 'integer',
1491
+ description: 'Available number of Basic clusters that can be created.',
1492
+ example: 999
1493
+ },
1494
+ pro_clusters_max: {
1495
+ type: 'integer',
1496
+ minimum: 0,
1497
+ description: 'Maximum number of Pro clusters that can be created.',
1498
+ example: 999
1499
+ },
1500
+ pro_clusters_available: {
1501
+ type: 'integer',
1502
+ description: 'Available number of Pro clusters that can be created.',
1503
+ example: 999
1504
+ },
1505
+ fleets_max: {
1506
+ type: 'integer',
1507
+ minimum: 0,
1508
+ description: 'Maximum number of fleets that can be created per cluster.',
1509
+ example: 999
1510
+ },
1511
+ cluster_tiers: {
1512
+ type: 'array',
1513
+ items: {
1514
+ type: 'string',
1515
+ example: 'basic'
1516
+ },
1517
+ minItems: 0,
1518
+ description: 'List of Cloudfleet cluster tiers available for the organization.'
1519
+ },
1520
+ regions: {
1521
+ type: 'array',
1522
+ items: {
1523
+ type: 'string',
1524
+ example: 'northamerica-central-1'
1525
+ },
1526
+ minItems: 1,
1527
+ description: 'List of Cloudfleet control plane regions available for the organization.'
1528
+ },
1529
+ versions: {
1530
+ type: 'array',
1531
+ items: {
1532
+ type: 'object',
1533
+ properties: {
1534
+ id: {
1535
+ type: 'string',
1536
+ description: 'Id of the control plane version. Used in API calls.',
1537
+ example: '1.33.x-cfke.x'
1538
+ },
1539
+ label: {
1540
+ type: 'string',
1541
+ description: 'Label of the control plane version. Used in frontent UI.',
1542
+ example: '1.33.x (Always latest 1.33 patch version)'
1543
+ }
1544
+ },
1545
+ required: [
1546
+ 'id',
1547
+ 'label'
1548
+ ],
1549
+ additionalProperties: false
1550
+ },
1551
+ minItems: 1,
1552
+ description: 'List of CFKE control plane versions available for the organization.'
1553
+ },
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
+ cfcr_storage_gb: {
1567
+ type: 'integer',
1568
+ minimum: -1,
1569
+ description: 'Organization-level maximum CFCR storage volume in GB. -1 means no limit.',
1570
+ example: 500
1571
+ }
1572
+ },
1573
+ required: [
1574
+ 'basic_clusters_max',
1575
+ 'basic_clusters_available',
1576
+ 'pro_clusters_max',
1577
+ 'pro_clusters_available',
1578
+ 'fleets_max',
1579
+ 'cluster_tiers',
1580
+ 'regions',
1581
+ 'versions',
1582
+ 'copilot_user_hourly_tokens',
1583
+ 'copilot_organization_hourly_tokens',
1584
+ 'cfcr_storage_gb'
1585
+ ],
1586
+ additionalProperties: false
1587
+ };
1588
+ export const RegistryRepositorySchema = {
1589
+ type: 'object',
1590
+ properties: {
1591
+ name: {
1592
+ type: 'string',
1593
+ description: 'Repository name.',
1594
+ example: 'my-app'
1595
+ },
1596
+ region: {
1597
+ type: 'string',
1598
+ description: 'Registry region.',
1599
+ example: 'northamerica'
1441
1600
  },
1442
- status: {
1601
+ uri: {
1443
1602
  type: 'string',
1444
- description: 'Status of the organization. Can be `active` or `closed`, or `suspended`.',
1445
- enum: ['active', 'closed', 'suspended']
1603
+ description: 'Full URI of the repository.',
1604
+ example: 'ssds123e-6651-4e5d-9c04-079f6532989b.northamerica.registry.cloudfleet.dev/my-app'
1446
1605
  }
1447
1606
  },
1448
- required: ['name', 'contactInfo', 'id', 'date_created', 'quota', 'pending_actions', 'status'],
1607
+ required: [
1608
+ 'name',
1609
+ 'region',
1610
+ 'uri'
1611
+ ],
1449
1612
  additionalProperties: false
1450
1613
  };
1451
- export const OrganizationUpdateInputSchema = {
1614
+ export const RegistryRepositoryWithTagsSchema = {
1452
1615
  type: 'object',
1453
1616
  properties: {
1454
1617
  name: {
1455
1618
  type: 'string',
1456
- maxLength: 120,
1457
- minLength: 5,
1458
- pattern: '^(?!\\s)(?!.*\\s$)(?=.*[a-zA-ZÆÐƎƏƐƔIJŊŒẞÞǷȜæðǝəɛɣijŋœĸſßþƿȝĄƁÇĐƊĘĦĮƘŁØƠŞȘŢȚŦŲƯY̨Ƴąɓçđɗęħįƙłøơşșţțŧųưy̨ƴÁÀÂÄǍĂĀÃÅǺĄÆǼǢƁĆĊĈČÇĎḌĐƊÐÉÈĖÊËĚĔĒĘẸƎƏƐĠĜǦĞĢƔáàâäǎăāãåǻąæǽǣɓćċĉčçďḍđɗðéèėêëěĕēęẹǝəɛġĝǧğģɣĤḤĦIÍÌİÎÏǏĬĪĨĮỊIJĴĶƘĹĻŁĽĿʼNŃN̈ŇÑŅŊÓÒÔÖǑŎŌÕŐỌØǾƠŒĥḥħıíìiîïǐĭīĩįịijĵķƙĸĺļłľŀʼnńn̈ňñņŋóòôöǒŏōõőọøǿơœŔŘŖŚŜŠŞȘṢẞŤŢṬŦÞÚÙÛÜǓŬŪŨŰŮŲỤƯẂẀŴẄǷÝỲŶŸȲỸƳŹŻŽẒŕřŗſśŝšşșṣßťţṭŧþúùûüǔŭūũűůųụưẃẁŵẅƿýỳŷÿȳỹƴźżžẓ0-9])[a-zA-ZÆÐƎƏƐƔIJŊŒẞÞǷȜæðǝəɛɣijŋœĸſßþƿȝĄƁÇĐƊĘĦĮƘŁØƠŞȘŢȚŦŲƯY̨Ƴąɓçđɗęħįƙłøơşșţțŧųưy̨ƴÁÀÂÄǍĂĀÃÅǺĄÆǼǢƁĆĊĈČÇĎḌĐƊÐÉÈĖÊËĚĔĒĘẸƎƏƐĠĜǦĞĢƔáàâäǎăāãåǻąæǽǣɓćċĉčçďḍđɗðéèėêëěĕēęẹǝəɛġĝǧğģɣĤḤĦIÍÌİÎÏǏĬĪĨĮỊIJĴĶƘĹĻŁĽĿʼNŃN̈ŇÑŅŊÓÒÔÖǑŎŌÕŐỌØǾƠŒĥḥħıíìiîïǐĭīĩįịijĵķƙĸĺļłľŀʼnńn̈ňñņŋóòôöǒŏōõőọøǿơœŔŘŖŚŜŠŞȘṢẞŤŢṬŦÞÚÙÛÜǓŬŪŨŰŮŲỤƯẂẀŴẄǷÝỲŶŸȲỸƳŹŻŽẒŕřŗſśŝšşșṣßťţṭŧþúùûüǔŭūũűůųụưẃẁŵẅƿýỳŷÿȳỹƴźżžẓ0-9 -.]{2,}$',
1459
- description: 'Name of the legal entity. This name will be used in invoices. Use your first and last name for individual accounts.',
1460
- example: 'ACME Corp.'
1619
+ description: 'Repository name.',
1620
+ example: 'my-app'
1461
1621
  },
1462
- contactInfo: {
1463
- type: 'object',
1464
- properties: {
1465
- address1: {
1466
- type: 'string',
1467
- description: 'Street address, P.O. box, c/o',
1468
- example: '123 Main St.'
1469
- },
1470
- address2: {
1471
- type: 'string',
1472
- description: 'Apartment, suite, unit, building, floor, etc.',
1473
- example: 'Suite 100'
1474
- },
1475
- postalCode: {
1476
- type: 'string',
1477
- description: 'Postal code as a string.',
1478
- example: '94105'
1479
- },
1480
- city: {
1481
- type: 'string',
1482
- description: 'City or town name.',
1483
- example: 'San Francisco'
1484
- },
1485
- state: {
1486
- type: 'string',
1487
- description: 'State, province, or region name.',
1488
- example: 'CA'
1489
- },
1490
- country: {
1491
- type: 'string',
1492
- description: 'Country as a ISO 3166-1 alpha-2 country code.',
1493
- example: 'US'
1494
- },
1495
- phone: {
1496
- type: 'string',
1497
- description: 'Phone number as a string.',
1498
- example: '+1 555 555 5555'
1499
- },
1500
- email: {
1501
- type: 'string',
1502
- format: 'email',
1503
- description: 'Email address used for billing as a string.',
1504
- example: 'email@example.com'
1505
- },
1506
- first_name: {
1507
- type: 'string',
1508
- description: 'First name of the billing contact person.',
1509
- example: 'John'
1622
+ region: {
1623
+ type: 'string',
1624
+ description: 'Registry region.',
1625
+ example: 'northamerica'
1626
+ },
1627
+ uri: {
1628
+ type: 'string',
1629
+ description: 'Full URI of the repository.',
1630
+ example: 'ssds123e-6651-4e5d-9c04-079f6532989b.northamerica.registry.cloudfleet.dev/my-app'
1631
+ },
1632
+ tags: {
1633
+ type: 'array',
1634
+ items: {
1635
+ type: 'object',
1636
+ properties: {
1637
+ name: {
1638
+ type: 'string',
1639
+ description: 'Tag name.',
1640
+ example: 'latest'
1641
+ },
1642
+ size: {
1643
+ type: 'number',
1644
+ format: 'float',
1645
+ description: 'Size of the tag in bytes.',
1646
+ example: 123456789
1647
+ },
1648
+ mediaType: {
1649
+ type: 'string',
1650
+ description: 'Media type of the manifest.',
1651
+ example: 'application/vnd.docker.distribution.manifest.v2+json'
1652
+ },
1653
+ platforms: {
1654
+ type: 'array',
1655
+ items: {
1656
+ type: 'string'
1657
+ },
1658
+ description: 'Array of platform strings for multi-arch images (e.g., linux/amd64, linux/arm64).',
1659
+ example: [
1660
+ 'linux/amd64',
1661
+ 'linux/arm64'
1662
+ ]
1663
+ }
1510
1664
  },
1511
- last_name: {
1512
- type: 'string',
1513
- description: 'Last name of the billing contact person.',
1514
- example: 'Doe'
1515
- }
1665
+ required: [
1666
+ 'name',
1667
+ 'size'
1668
+ ],
1669
+ additionalProperties: false
1516
1670
  },
1517
- required: ['email', 'first_name', 'last_name'],
1518
- additionalProperties: false,
1519
- description: 'Organization contact information and billing address.'
1671
+ description: 'Array of tags in the repository.'
1672
+ },
1673
+ totalSize: {
1674
+ type: 'number',
1675
+ format: 'float',
1676
+ description: 'Total size of all tags in the repository in bytes.',
1677
+ example: 987654321
1520
1678
  }
1521
1679
  },
1522
- required: ['contactInfo'],
1680
+ required: [
1681
+ 'name',
1682
+ 'region',
1683
+ 'uri',
1684
+ 'tags',
1685
+ 'totalSize'
1686
+ ],
1523
1687
  additionalProperties: false
1524
1688
  };
1525
- export const PaymentMethodSchema = {
1689
+ export const RegistryTagSchema = {
1526
1690
  type: 'object',
1527
1691
  properties: {
1528
- id: {
1692
+ name: {
1529
1693
  type: 'string',
1530
- format: 'uuid',
1531
- description: 'Unique identifier of the organization. UUID v4 string in canonical form.',
1532
- example: 'e94d30ec-a2dd-4dcb-832c-ac2be144ba91'
1533
- },
1534
- setup: {
1535
- type: 'boolean',
1536
- description: 'Whether organization payment method was set up and ready to use for payments.',
1537
- example: true
1694
+ description: 'Tag name.',
1695
+ example: 'latest'
1538
1696
  },
1539
- type: {
1697
+ digest: {
1540
1698
  type: 'string',
1541
- nullable: true,
1542
- description: 'Payment method type type. Only `card` payments supported at the moment.',
1543
- example: 'card',
1544
- enum: ['card']
1699
+ description: 'Manifest digest for pulling by digest.',
1700
+ example: 'sha256:abcd1234ef567890abcd1234ef567890abcd1234ef567890abcd1234ef567890'
1545
1701
  },
1546
- last4: {
1702
+ mediaType: {
1547
1703
  type: 'string',
1548
- nullable: true,
1549
- description: 'Last 4 digits of the payment card number.',
1550
- example: '4242'
1704
+ description: 'Media type of the manifest.',
1705
+ example: 'application/vnd.docker.distribution.manifest.v2+json'
1551
1706
  },
1552
- exp_month: {
1553
- type: 'integer',
1554
- minimum: 1,
1555
- maximum: 12,
1556
- nullable: true,
1557
- description: "Two-digit number representing the card's expiration month.",
1558
- example: '12'
1707
+ config: {
1708
+ type: 'object',
1709
+ properties: {
1710
+ size: {
1711
+ type: 'number',
1712
+ format: 'float',
1713
+ description: 'Size of the config in bytes.',
1714
+ example: 1234
1715
+ }
1716
+ },
1717
+ required: [
1718
+ 'size'
1719
+ ],
1720
+ additionalProperties: false,
1721
+ description: 'Manifest config metadata.'
1559
1722
  },
1560
- exp_year: {
1561
- type: 'integer',
1562
- minimum: 2024,
1563
- nullable: true,
1564
- description: "Four-digit number representing the card's expiration year.",
1565
- example: '2028'
1723
+ layers: {
1724
+ type: 'array',
1725
+ items: {
1726
+ type: 'object',
1727
+ properties: {
1728
+ digest: {
1729
+ type: 'string',
1730
+ description: 'Digest of the layer.',
1731
+ example: 'sha256:abcd1234ef567890abcd1234ef567890abcd1234ef567890abcd1234ef567890'
1732
+ },
1733
+ size: {
1734
+ type: 'number',
1735
+ format: 'float',
1736
+ description: 'Size of the layer in bytes.',
1737
+ example: 5678
1738
+ }
1739
+ },
1740
+ required: [
1741
+ 'size'
1742
+ ],
1743
+ additionalProperties: false
1744
+ },
1745
+ description: 'Array of layer metadata.'
1566
1746
  },
1567
- brand: {
1747
+ manifests: {
1748
+ type: 'array',
1749
+ items: {
1750
+ type: 'object',
1751
+ properties: {
1752
+ digest: {
1753
+ type: 'string',
1754
+ description: 'Digest of the manifest.',
1755
+ example: 'sha256:abcd1234ef567890abcd1234ef567890abcd1234ef567890abcd1234ef567890'
1756
+ },
1757
+ platform: {
1758
+ type: 'object',
1759
+ properties: {
1760
+ architecture: {
1761
+ type: 'string',
1762
+ description: 'Architecture of the platform.',
1763
+ example: 'amd64'
1764
+ },
1765
+ os: {
1766
+ type: 'string',
1767
+ description: 'Operating system of the platform.',
1768
+ example: 'linux'
1769
+ },
1770
+ variant: {
1771
+ type: 'string',
1772
+ description: 'Variant of the platform (e.g., v7, v8 for ARM).',
1773
+ example: 'v8'
1774
+ }
1775
+ },
1776
+ required: [
1777
+ 'architecture',
1778
+ 'os'
1779
+ ],
1780
+ additionalProperties: false,
1781
+ description: 'Platform information for the manifest.'
1782
+ },
1783
+ layers: {
1784
+ type: 'array',
1785
+ items: {
1786
+ type: 'object',
1787
+ properties: {
1788
+ digest: {
1789
+ type: 'string',
1790
+ description: 'Digest of the layer.',
1791
+ example: 'sha256:abcd1234ef567890abcd1234ef567890abcd1234ef567890abcd1234ef567890'
1792
+ },
1793
+ size: {
1794
+ type: 'number',
1795
+ format: 'float',
1796
+ description: 'Size of the layer in bytes.',
1797
+ example: 5678
1798
+ }
1799
+ },
1800
+ required: [
1801
+ 'size'
1802
+ ],
1803
+ additionalProperties: false
1804
+ },
1805
+ description: 'Layers for this platform.'
1806
+ },
1807
+ size: {
1808
+ type: 'number',
1809
+ format: 'float',
1810
+ description: 'Total size of this platform manifest in bytes.',
1811
+ example: 12345678
1812
+ }
1813
+ },
1814
+ required: [
1815
+ 'digest'
1816
+ ],
1817
+ additionalProperties: false
1818
+ },
1819
+ description: 'Array of manifests for multi-arch images.'
1820
+ },
1821
+ size: {
1822
+ type: 'number',
1823
+ format: 'float',
1824
+ description: 'Total size of the tag in bytes.',
1825
+ example: 123456789
1826
+ },
1827
+ region: {
1568
1828
  type: 'string',
1569
- nullable: true,
1570
- description: 'Payment card brand. Can be `amex`, `diners`, `discover`, `eftpos_au`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown`.',
1571
- example: 'visa',
1572
- enum: ['amex', 'diners', 'discover', 'eftpos_au', 'jcb', 'mastercard', 'unionpay', 'visa', 'unknown']
1829
+ description: 'Registry region.',
1830
+ example: 'northamerica'
1831
+ },
1832
+ repository: {
1833
+ type: 'string',
1834
+ description: 'Repository name.',
1835
+ example: 'my-app'
1836
+ },
1837
+ uri: {
1838
+ type: 'string',
1839
+ description: 'Full URI of the tag.',
1840
+ example: 'ssds123e-6651-4e5d-9c04-079f6532989b.northamerica.registry.cloudfleet.dev/my-app:latest'
1573
1841
  }
1574
1842
  },
1575
- required: ['id', 'setup', 'type', 'last4', 'exp_month', 'exp_year', 'brand'],
1843
+ required: [
1844
+ 'name',
1845
+ 'digest',
1846
+ 'size',
1847
+ 'region',
1848
+ 'repository',
1849
+ 'uri'
1850
+ ],
1576
1851
  additionalProperties: false
1577
1852
  };
1578
1853
  export const TokenCreateInputSchema = {
@@ -1590,10 +1865,16 @@ export const TokenCreateInputSchema = {
1590
1865
  type: 'string',
1591
1866
  description: 'Role assumed by the token.',
1592
1867
  example: 'User',
1593
- enum: ['Administrator', 'User']
1868
+ enum: [
1869
+ 'Administrator',
1870
+ 'User'
1871
+ ]
1594
1872
  }
1595
1873
  },
1596
- required: ['name', 'role'],
1874
+ required: [
1875
+ 'name',
1876
+ 'role'
1877
+ ],
1597
1878
  additionalProperties: false
1598
1879
  };
1599
1880
  export const TokenSchema = {
@@ -1611,7 +1892,10 @@ export const TokenSchema = {
1611
1892
  type: 'string',
1612
1893
  description: 'Role assumed by the token.',
1613
1894
  example: 'User',
1614
- enum: ['Administrator', 'User']
1895
+ enum: [
1896
+ 'Administrator',
1897
+ 'User'
1898
+ ]
1615
1899
  },
1616
1900
  id: {
1617
1901
  type: 'string',
@@ -1630,7 +1914,11 @@ export const TokenSchema = {
1630
1914
  example: '2023-12-20T13:53:32.000Z'
1631
1915
  }
1632
1916
  },
1633
- required: ['name', 'role', 'date_created'],
1917
+ required: [
1918
+ 'name',
1919
+ 'role',
1920
+ 'date_created'
1921
+ ],
1634
1922
  additionalProperties: false
1635
1923
  };
1636
1924
  export const TokenUpdateInputSchema = {
@@ -1648,37 +1936,173 @@ export const TokenUpdateInputSchema = {
1648
1936
  type: 'string',
1649
1937
  description: 'Role assumed by the token.',
1650
1938
  example: 'User',
1651
- enum: ['Administrator', 'User']
1939
+ enum: [
1940
+ 'Administrator',
1941
+ 'User'
1942
+ ]
1943
+ }
1944
+ },
1945
+ additionalProperties: false
1946
+ };
1947
+ export const UsageFacetsSchema = {
1948
+ type: 'object',
1949
+ properties: {
1950
+ cluster_id: {
1951
+ type: 'array',
1952
+ items: {
1953
+ type: 'string'
1954
+ },
1955
+ description: 'List of unique cluster IDs',
1956
+ example: [
1957
+ '6b5439b1-923a-4f2b-a371-d554e5ea23fa'
1958
+ ]
1959
+ },
1960
+ product: {
1961
+ type: 'array',
1962
+ items: {
1963
+ type: 'string'
1964
+ },
1965
+ description: 'List of unique products',
1966
+ example: [
1967
+ 'cfke_controlplane',
1968
+ 'cfke_connected_nodes'
1969
+ ]
1970
+ }
1971
+ },
1972
+ additionalProperties: false
1973
+ };
1974
+ export const UsageResponseSchema = {
1975
+ type: 'object',
1976
+ properties: {
1977
+ data: {
1978
+ type: 'array',
1979
+ items: {
1980
+ type: 'object',
1981
+ properties: {
1982
+ hour: {
1983
+ type: 'string',
1984
+ description: 'Hour of the usage',
1985
+ example: '2019-01-01T00:00:00.000Z'
1986
+ },
1987
+ cluster_id: {
1988
+ type: 'string',
1989
+ description: 'Unique identifier of the kubernetes cluster. UUID v4 string in canonical form',
1990
+ example: '6b5439b1-923a-4f2b-a371-d554e5ea23fa'
1991
+ },
1992
+ product: {
1993
+ type: 'string',
1994
+ description: 'The product the usage is associated with',
1995
+ example: 'cfke_controlplane'
1996
+ },
1997
+ value: {
1998
+ type: 'number',
1999
+ format: 'float',
2000
+ description: 'Consumption',
2001
+ example: 4
2002
+ },
2003
+ price: {
2004
+ type: 'number',
2005
+ format: 'float',
2006
+ description: 'Price per unit',
2007
+ example: 0.01
2008
+ },
2009
+ total: {
2010
+ type: 'number',
2011
+ format: 'float',
2012
+ description: 'Total cost'
2013
+ }
2014
+ },
2015
+ required: [
2016
+ 'hour',
2017
+ 'cluster_id',
2018
+ 'product',
2019
+ 'value',
2020
+ 'price',
2021
+ 'total'
2022
+ ],
2023
+ additionalProperties: false
2024
+ },
2025
+ description: 'Usage data'
2026
+ },
2027
+ facets: {
2028
+ type: 'object',
2029
+ properties: {
2030
+ cluster_id: {
2031
+ type: 'array',
2032
+ items: {
2033
+ type: 'string'
2034
+ },
2035
+ description: 'List of unique cluster IDs',
2036
+ example: [
2037
+ '6b5439b1-923a-4f2b-a371-d554e5ea23fa'
2038
+ ]
2039
+ },
2040
+ product: {
2041
+ type: 'array',
2042
+ items: {
2043
+ type: 'string'
2044
+ },
2045
+ description: 'List of unique products',
2046
+ example: [
2047
+ 'cfke_controlplane',
2048
+ 'cfke_connected_nodes'
2049
+ ]
2050
+ }
2051
+ },
2052
+ additionalProperties: false,
2053
+ description: 'Facets for filtering'
1652
2054
  }
1653
2055
  },
2056
+ required: [
2057
+ 'data',
2058
+ 'facets'
2059
+ ],
1654
2060
  additionalProperties: false
1655
2061
  };
1656
2062
  export const UsageSchema = {
1657
2063
  type: 'object',
1658
2064
  properties: {
1659
- id: {
2065
+ hour: {
1660
2066
  type: 'string',
1661
- format: 'uuid',
1662
- description: 'Unique identifier of the Usage object, equal to subscription id of the task . UUID v4 string in canonical form',
1663
- example: '8897e84c-2ba1-42fa-9d35-964c80a4ff0f'
2067
+ description: 'Hour of the usage',
2068
+ example: '2019-01-01T00:00:00.000Z'
1664
2069
  },
1665
- task_id: {
2070
+ cluster_id: {
1666
2071
  type: 'string',
1667
- format: 'uuid',
1668
- description: 'Unique identifier of the project. UUID v4 string in canonical form',
1669
- example: '415026b6-f00f-44f8-968d-fc6ef4d0fc6d'
2072
+ description: 'Unique identifier of the kubernetes cluster. UUID v4 string in canonical form',
2073
+ example: '6b5439b1-923a-4f2b-a371-d554e5ea23fa'
1670
2074
  },
1671
- unit: {
2075
+ product: {
1672
2076
  type: 'string',
1673
- description: 'Unit of measurement. E.g. GiB, seconds, etc',
1674
- example: 'second'
2077
+ description: 'The product the usage is associated with',
2078
+ example: 'cfke_controlplane'
2079
+ },
2080
+ value: {
2081
+ type: 'number',
2082
+ format: 'float',
2083
+ description: 'Consumption',
2084
+ example: 4
2085
+ },
2086
+ price: {
2087
+ type: 'number',
2088
+ format: 'float',
2089
+ description: 'Price per unit',
2090
+ example: 0.01
1675
2091
  },
1676
- amount: {
2092
+ total: {
1677
2093
  type: 'number',
1678
- format: 'float'
2094
+ format: 'float',
2095
+ description: 'Total cost'
1679
2096
  }
1680
2097
  },
1681
- required: ['id', 'task_id', 'unit', 'amount'],
2098
+ required: [
2099
+ 'hour',
2100
+ 'cluster_id',
2101
+ 'product',
2102
+ 'value',
2103
+ 'price',
2104
+ 'total'
2105
+ ],
1682
2106
  additionalProperties: false
1683
2107
  };
1684
2108
  export const UserCreateInputSchema = {
@@ -1713,22 +2137,34 @@ export const UserCreateInputSchema = {
1713
2137
  password: {
1714
2138
  type: 'string',
1715
2139
  minLength: 8,
1716
- description: 'User password. Must be at least 8 characters long and contain at least one uppercase letter, one lowercase letter, one number and one special character.'
2140
+ description: 'User password. Must be at least 8 characters long.'
1717
2141
  },
1718
2142
  status: {
1719
2143
  type: 'string',
1720
2144
  description: 'Status of the user. Can be `active` or `inactive`. Inactive users cannot log in or manage organization resources.',
1721
2145
  example: 'active',
1722
- enum: ['active', 'inactive']
2146
+ enum: [
2147
+ 'active',
2148
+ 'inactive'
2149
+ ]
1723
2150
  },
1724
2151
  role: {
1725
2152
  type: 'string',
1726
- description: "User role. Can be 'Administrator', 'User'.",
2153
+ description: 'User role. Can be \'Administrator\', \'User\'.',
1727
2154
  example: 'User',
1728
- enum: ['Administrator', 'User']
2155
+ enum: [
2156
+ 'Administrator',
2157
+ 'User'
2158
+ ]
1729
2159
  }
1730
2160
  },
1731
- required: ['email', 'first_name', 'last_name', 'code', 'password'],
2161
+ required: [
2162
+ 'email',
2163
+ 'first_name',
2164
+ 'last_name',
2165
+ 'code',
2166
+ 'password'
2167
+ ],
1732
2168
  additionalProperties: false
1733
2169
  };
1734
2170
  export const UserSchema = {
@@ -1756,15 +2192,21 @@ export const UserSchema = {
1756
2192
  },
1757
2193
  role: {
1758
2194
  type: 'string',
1759
- description: "User role. Can be 'Administrator', 'User'.",
2195
+ description: 'User role. Can be \'Administrator\', \'User\'.',
1760
2196
  example: 'User',
1761
- enum: ['Administrator', 'User']
2197
+ enum: [
2198
+ 'Administrator',
2199
+ 'User'
2200
+ ]
1762
2201
  },
1763
2202
  status: {
1764
2203
  type: 'string',
1765
2204
  description: 'Status of the user. Can be `active` or `inactive`. Inactive users cannot log in or manage organization resources.',
1766
2205
  example: 'active',
1767
- enum: ['active', 'inactive']
2206
+ enum: [
2207
+ 'active',
2208
+ 'inactive'
2209
+ ]
1768
2210
  },
1769
2211
  id: {
1770
2212
  type: 'string',
@@ -1777,31 +2219,17 @@ export const UserSchema = {
1777
2219
  format: 'date-time',
1778
2220
  description: 'Creation date of the user. ISO 8601 date string in UTC timezone',
1779
2221
  example: '2023-11-02T16:08:14.338Z'
1780
- },
1781
- cluster_permissions: {
1782
- type: 'array',
1783
- items: {
1784
- type: 'object',
1785
- properties: {
1786
- cluster_id: {
1787
- type: 'string',
1788
- format: 'uuid',
1789
- description: 'Unique identifier of the cluster. UUID v4 string in canonical form',
1790
- example: '035ce46d-44d8-4e58-a8a2-b0192d1c27df'
1791
- },
1792
- permissions: {
1793
- type: 'string',
1794
- description: 'User permissions to access the cluster. Can be `readwrite` or `readonly`.',
1795
- example: 'readwrite',
1796
- enum: ['readwrite', 'readonly']
1797
- }
1798
- },
1799
- required: ['cluster_id', 'permissions'],
1800
- additionalProperties: false
1801
- }
1802
2222
  }
1803
2223
  },
1804
- required: ['email', 'first_name', 'last_name', 'role', 'status', 'id', 'date_created'],
2224
+ required: [
2225
+ 'email',
2226
+ 'first_name',
2227
+ 'last_name',
2228
+ 'role',
2229
+ 'status',
2230
+ 'id',
2231
+ 'date_created'
2232
+ ],
1805
2233
  additionalProperties: false
1806
2234
  };
1807
2235
  export const UserUpdateInputSchema = {
@@ -1829,15 +2257,21 @@ export const UserUpdateInputSchema = {
1829
2257
  },
1830
2258
  role: {
1831
2259
  type: 'string',
1832
- description: "User role. Can be 'Administrator', 'User'.",
2260
+ description: 'User role. Can be \'Administrator\', \'User\'.',
1833
2261
  example: 'User',
1834
- enum: ['Administrator', 'User']
2262
+ enum: [
2263
+ 'Administrator',
2264
+ 'User'
2265
+ ]
1835
2266
  },
1836
2267
  status: {
1837
2268
  type: 'string',
1838
2269
  description: 'Status of the user. Can be `active` or `inactive`. Inactive users cannot log in or manage organization resources.',
1839
2270
  example: 'active',
1840
- enum: ['active', 'inactive']
2271
+ enum: [
2272
+ 'active',
2273
+ 'inactive'
2274
+ ]
1841
2275
  }
1842
2276
  },
1843
2277
  additionalProperties: false