@cloudfleet/sdk 0.0.1-08e325d

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 (74) hide show
  1. package/README.md +9 -0
  2. package/dist/client/client.d.ts +3 -0
  3. package/dist/client/client.d.ts.map +1 -0
  4. package/dist/client/client.js +144 -0
  5. package/dist/client/client.js.map +1 -0
  6. package/dist/client/index.d.ts +8 -0
  7. package/dist/client/index.d.ts.map +1 -0
  8. package/dist/client/index.js +5 -0
  9. package/dist/client/index.js.map +1 -0
  10. package/dist/client/types.d.ts +120 -0
  11. package/dist/client/types.d.ts.map +1 -0
  12. package/dist/client/types.js +2 -0
  13. package/dist/client/types.js.map +1 -0
  14. package/dist/client/utils.d.ts +46 -0
  15. package/dist/client/utils.d.ts.map +1 -0
  16. package/dist/client/utils.js +285 -0
  17. package/dist/client/utils.js.map +1 -0
  18. package/dist/client.gen.d.ts +13 -0
  19. package/dist/client.gen.d.ts.map +1 -0
  20. package/dist/client.gen.js +6 -0
  21. package/dist/client.gen.js.map +1 -0
  22. package/dist/core/auth.d.ts +19 -0
  23. package/dist/core/auth.d.ts.map +1 -0
  24. package/dist/core/auth.js +14 -0
  25. package/dist/core/auth.js.map +1 -0
  26. package/dist/core/bodySerializer.d.ts +18 -0
  27. package/dist/core/bodySerializer.d.ts.map +1 -0
  28. package/dist/core/bodySerializer.js +54 -0
  29. package/dist/core/bodySerializer.js.map +1 -0
  30. package/dist/core/params.d.ts +24 -0
  31. package/dist/core/params.d.ts.map +1 -0
  32. package/dist/core/params.js +88 -0
  33. package/dist/core/params.js.map +1 -0
  34. package/dist/core/pathSerializer.d.ts +34 -0
  35. package/dist/core/pathSerializer.d.ts.map +1 -0
  36. package/dist/core/pathSerializer.js +114 -0
  37. package/dist/core/pathSerializer.js.map +1 -0
  38. package/dist/core/types.d.ts +74 -0
  39. package/dist/core/types.d.ts.map +1 -0
  40. package/dist/core/types.js +2 -0
  41. package/dist/core/types.js.map +1 -0
  42. package/dist/index.d.ts +8 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +8 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/schemas.gen.d.ts +1667 -0
  47. package/dist/schemas.gen.d.ts.map +1 -0
  48. package/dist/schemas.gen.js +1698 -0
  49. package/dist/schemas.gen.js.map +1 -0
  50. package/dist/sdk.gen.d.ts +356 -0
  51. package/dist/sdk.gen.d.ts.map +1 -0
  52. package/dist/sdk.gen.js +634 -0
  53. package/dist/sdk.gen.js.map +1 -0
  54. package/dist/services/kubernetes/api.d.ts +196 -0
  55. package/dist/services/kubernetes/api.d.ts.map +1 -0
  56. package/dist/services/kubernetes/api.js +140 -0
  57. package/dist/services/kubernetes/api.js.map +1 -0
  58. package/dist/services/kubernetes/index.d.ts +44 -0
  59. package/dist/services/kubernetes/index.d.ts.map +1 -0
  60. package/dist/services/kubernetes/index.js +68 -0
  61. package/dist/services/kubernetes/index.js.map +1 -0
  62. package/dist/services/kubernetes/types.d.ts +1335 -0
  63. package/dist/services/kubernetes/types.d.ts.map +1 -0
  64. package/dist/services/kubernetes/types.js +2 -0
  65. package/dist/services/kubernetes/types.js.map +1 -0
  66. package/dist/types.gen.d.ts +1924 -0
  67. package/dist/types.gen.d.ts.map +1 -0
  68. package/dist/types.gen.js +3 -0
  69. package/dist/types.gen.js.map +1 -0
  70. package/dist/zod.gen.d.ts +4015 -0
  71. package/dist/zod.gen.d.ts.map +1 -0
  72. package/dist/zod.gen.js +1581 -0
  73. package/dist/zod.gen.js.map +1 -0
  74. package/package.json +38 -0
@@ -0,0 +1,1698 @@
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
+ first_name: {
62
+ type: 'string',
63
+ description: 'First name of the billing contact person.',
64
+ example: 'John'
65
+ },
66
+ last_name: {
67
+ type: 'string',
68
+ description: 'Last name of the billing contact person.',
69
+ example: 'Doe'
70
+ },
71
+ tax_id: {
72
+ type: 'string',
73
+ nullable: true,
74
+ description: 'Tax ID of the organization.',
75
+ example: 'DE123456789'
76
+ },
77
+ tax_id_type: {
78
+ type: 'string',
79
+ nullable: true,
80
+ description: 'Type of the tax ID.',
81
+ example: 'de_vat',
82
+ enum: ['ad_nrt', 'ae_trn', 'al_tin', 'am_tin', 'ao_tin', 'ar_cuit', 'at_vat', 'au_abn', 'au_arn', 'ba_tin', 'bb_tin', 'be_vat', 'bg_uic', 'bg_vat', 'bh_vat', 'bo_tin', 'br_cnpj', 'br_cpf', 'bs_tin', 'by_tin', 'ca_bn', 'ca_gst_hst', 'ca_pst_bc', 'ca_pst_mb', 'ca_pst_sk', 'ca_qst', 'cd_nif', 'ch_uid', 'ch_vat', 'cl_tin', 'cn_tin', 'co_nit', 'cr_tin', 'cy_vat', 'cz_vat', 'de_stn', 'de_vat', 'dk_vat', 'do_rcn', 'ec_ruc', 'ee_vat', 'eg_tin', 'es_cif', 'es_vat', 'eu_oss_vat', 'fi_vat', 'fr_vat', 'gb_vat', 'ge_vat', 'gn_nif', 'gr_vat', 'hk_br', 'hr_oib', 'hr_vat', 'hu_tin', 'hu_vat', 'id_npwp', 'ie_vat', 'il_vat', 'in_gst', 'is_vat', 'it_vat', 'jp_cn', 'jp_rn', 'jp_trn', 'ke_pin', 'kh_tin', 'kr_brn', 'kz_bin', 'li_uid', 'li_vat', 'lt_vat', 'lu_vat', 'lv_vat', 'ma_vat', 'md_vat', 'me_pib', 'mk_vat', 'mr_nif', 'mt_vat', 'mx_rfc', 'my_frp', 'my_itn', 'my_sst', 'ng_tin', 'nl_vat', 'no_vat', 'no_voec', 'np_pan', 'nz_gst', 'om_vat', 'pe_ruc', 'ph_tin', 'pl_vat', 'pt_vat', 'ro_tin', 'ro_vat', 'rs_pib', 'ru_inn', 'ru_kpp', 'sa_vat', 'se_vat', 'sg_gst', 'sg_uen', 'si_tin', 'si_vat', 'sk_vat', 'sn_ninea', 'sr_fin', 'sv_nit', 'th_vat', 'tj_tin', 'tr_tin', 'tw_vat', 'tz_vat', 'ua_vat', 'ug_tin', 'us_ein', 'uy_ruc', 'uz_tin', 'uz_vat', 've_rif', 'vn_tin', 'xi_vat', 'za_vat', 'zm_tin', 'zw_tin', '']
83
+ }
84
+ },
85
+ required: ['email', 'first_name', 'last_name'],
86
+ additionalProperties: false
87
+ };
88
+ export const BillingCreditsSchema = {
89
+ type: 'object',
90
+ properties: {
91
+ id: {
92
+ type: 'string',
93
+ description: 'Generated unique identifier of the promotional code.',
94
+ example: '7kUZnH7nnKUFfvc4NK2KQF'
95
+ },
96
+ date_created: {
97
+ type: 'string',
98
+ format: 'date-time',
99
+ description: 'Date of the credit application. ISO 8601 date string in the UTC timezone.',
100
+ example: '2023-12-20T13:53:32.000Z'
101
+ },
102
+ code: {
103
+ type: 'string',
104
+ description: 'Promotional code used by the customer.',
105
+ example: 'VQ4SCMB'
106
+ },
107
+ description: {
108
+ type: 'string',
109
+ description: 'Description of the promotional code.',
110
+ example: '10% off on all products'
111
+ },
112
+ products: {
113
+ type: 'array',
114
+ items: {
115
+ type: 'string'
116
+ },
117
+ description: 'List of product SKUs that the promotional code can be used on.',
118
+ example: ['cfke_controlplane', 'cfke_connected_nodes', 'infra_compute', 'infra_storage', 'infra_loadbalancing', 'infra_traffic', 'cfcr_storage']
119
+ },
120
+ type: {
121
+ type: 'string',
122
+ description: 'Type of the promotional code.',
123
+ example: 'credit',
124
+ enum: ['credit', 'discount']
125
+ },
126
+ value: {
127
+ type: 'number',
128
+ format: 'float',
129
+ description: 'Value of the promotional code.',
130
+ example: 10
131
+ },
132
+ billing_period: {
133
+ type: 'string',
134
+ format: 'date-time',
135
+ description: 'Date of the billing cycle. An ISO 8601 date string in the UTC timezone.',
136
+ example: '2023-12-20T13:53:32.000Z'
137
+ },
138
+ value_remaining: {
139
+ type: 'number',
140
+ format: 'float',
141
+ description: 'Value of the promotional code.',
142
+ example: 10
143
+ }
144
+ },
145
+ required: ['date_created', 'code', 'type', 'value', 'billing_period'],
146
+ additionalProperties: false
147
+ };
148
+ export const ChartCreateInputSchema = {
149
+ type: 'object',
150
+ properties: {
151
+ values: {
152
+ type: 'string',
153
+ description: 'Values to be used in the chart encoded as a JSON string.'
154
+ },
155
+ version_channel: {
156
+ type: 'string',
157
+ 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-]+)*))?$',
158
+ description: 'Desired version range or channel for the chart.',
159
+ example: '2.x.x-cfke.x'
160
+ },
161
+ name: {
162
+ type: 'string',
163
+ maxLength: 63,
164
+ minLength: 1,
165
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
166
+ description: 'Unique identifier of the chart deployment aka name of the helm release.',
167
+ example: 'postgresql-0'
168
+ },
169
+ namespace: {
170
+ type: 'string',
171
+ maxLength: 63,
172
+ minLength: 1,
173
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
174
+ description: 'Namespace of the chart deployment',
175
+ example: 'default'
176
+ },
177
+ chart: {
178
+ type: 'string',
179
+ maxLength: 63,
180
+ minLength: 1,
181
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
182
+ description: 'Name of the chart listing',
183
+ example: 'postgresql'
184
+ }
185
+ },
186
+ required: ['values', 'version_channel', 'name', 'namespace', 'chart'],
187
+ additionalProperties: false
188
+ };
189
+ export const ChartSchema = {
190
+ type: 'object',
191
+ properties: {
192
+ values: {
193
+ type: 'string',
194
+ description: 'Values to be used in the chart encoded as a JSON string.'
195
+ },
196
+ version_channel: {
197
+ type: 'string',
198
+ 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-]+)*))?$',
199
+ description: 'Desired version range or channel for the chart.',
200
+ example: '2.x.x-cfke.x'
201
+ },
202
+ name: {
203
+ type: 'string',
204
+ maxLength: 63,
205
+ minLength: 1,
206
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
207
+ description: 'Unique identifier of the chart deployment aka name of the helm release.',
208
+ example: 'postgresql-0'
209
+ },
210
+ namespace: {
211
+ type: 'string',
212
+ maxLength: 63,
213
+ minLength: 1,
214
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
215
+ description: 'Namespace of the chart deployment',
216
+ example: 'default'
217
+ },
218
+ chart: {
219
+ type: 'string',
220
+ maxLength: 63,
221
+ minLength: 1,
222
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
223
+ description: 'Name of the chart listing',
224
+ example: 'postgresql'
225
+ },
226
+ status: {
227
+ type: 'string',
228
+ description: 'Status of the chart deployment.',
229
+ example: 'active',
230
+ enum: ['InstallSucceeded', 'InstallFailed', 'UpgradeSucceeded', 'UpgradeFailed', 'TestSucceeded', 'TestFailed', 'RollbackSucceeded', 'RollbackFailed', 'UninstallSucceeded', 'UninstallFailed', 'ArtifactFailed', 'DependencyNotReady', 'Progressing', 'SourceNotReady']
231
+ },
232
+ version_current: {
233
+ type: 'string',
234
+ description: 'Current version of the chart deployment.',
235
+ example: '2.1.33-cfke.11'
236
+ },
237
+ created_at: {
238
+ type: 'string',
239
+ description: 'Creation date and time of the chart deployment.',
240
+ example: '2024-09-12T09:11:27Z'
241
+ },
242
+ updated_at: {
243
+ type: 'string',
244
+ description: 'Last update date and time of the chart deployment.',
245
+ example: '2024-09-12T09:11:27Z'
246
+ },
247
+ ready: {
248
+ type: 'boolean',
249
+ description: 'Indicates if the chart deployment is ready to be used.',
250
+ example: true
251
+ }
252
+ },
253
+ required: ['values', 'version_channel', 'name', 'namespace', 'chart', 'status', 'version_current', 'created_at', 'updated_at', 'ready'],
254
+ additionalProperties: false
255
+ };
256
+ export const ChartUpdateInputSchema = {
257
+ type: 'object',
258
+ properties: {
259
+ values: {
260
+ type: 'string',
261
+ description: 'Values to be used in the chart encoded as a JSON string.'
262
+ },
263
+ version_channel: {
264
+ type: 'string',
265
+ 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-]+)*))?$',
266
+ description: 'Desired version range or channel for the chart.',
267
+ example: '2.x.x-cfke.x'
268
+ }
269
+ },
270
+ required: ['values', 'version_channel'],
271
+ additionalProperties: false
272
+ };
273
+ export const ClusterCreateInputSchema = {
274
+ type: 'object',
275
+ properties: {
276
+ name: {
277
+ type: 'string',
278
+ maxLength: 63,
279
+ minLength: 1,
280
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
281
+ description: 'Name of the cluster.',
282
+ example: 'production-cluster'
283
+ },
284
+ tier: {
285
+ type: 'string',
286
+ description: 'Tier of the cluster.',
287
+ example: 'pro',
288
+ enum: ['basic', 'pro']
289
+ },
290
+ region: {
291
+ type: 'string',
292
+ description: 'Cloudfleet control plane region. One of "staging", "northamerica-central-1", "europe-central-1a". This field can not be updated after creation.',
293
+ default: 'staging',
294
+ example: 'northamerica-central-1',
295
+ enum: ['staging', 'northamerica-central-1', 'europe-central-1a']
296
+ },
297
+ version_channel: {
298
+ type: 'string',
299
+ 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-]+)*))?$',
300
+ description: 'Version of the kubernetes cluster.',
301
+ default: '1.x.x-cfke.x',
302
+ example: '1.29.x-cfke.x'
303
+ }
304
+ },
305
+ required: ['name', 'tier'],
306
+ additionalProperties: false
307
+ };
308
+ export const ClusterJoinInformationSchema = {
309
+ type: 'object',
310
+ properties: {
311
+ certificate_authority: {
312
+ type: 'string',
313
+ description: 'Certificate authority data for the kubernetes cluster. This is the root certificate authority for the cluster.',
314
+ example: `-----BEGIN CERTIFICATE-----
315
+ MIIC0DCCAbigAwIBAgI...`
316
+ },
317
+ endpoint: {
318
+ type: 'string',
319
+ format: 'uri',
320
+ description: 'Internal URL of the Kubernetes cluster control plane. This is the endpoint that kubelet uses to connect to the cluster.',
321
+ example: 'https://10.31.64.7:6443'
322
+ },
323
+ auth_key: {
324
+ type: 'string',
325
+ description: 'Authentication key for the cluster.',
326
+ example: 'tskey-auth-kBV8wr1dk911CNTRL-...'
327
+ },
328
+ bootstrap_token: {
329
+ type: 'string',
330
+ description: 'Bootstrap token for the cluster.',
331
+ example: 'a797d6df6babc2cfdb202ba7.....'
332
+ },
333
+ versions: {
334
+ type: 'object',
335
+ properties: {
336
+ kubernetes: {
337
+ type: 'string',
338
+ description: 'Kubernetes version of the cluster.',
339
+ example: '1.29.3'
340
+ },
341
+ tailscale: {
342
+ type: 'string',
343
+ description: 'Tailscale version of the cluster.',
344
+ example: '1.74.1'
345
+ },
346
+ containerd: {
347
+ type: 'string',
348
+ description: 'Containerd version of the cluster.',
349
+ example: '1.7.19'
350
+ },
351
+ nvidia_driver: {
352
+ type: 'string',
353
+ description: 'NVIDIA driver version of the cluster.',
354
+ example: '565.0.0'
355
+ }
356
+ },
357
+ required: ['kubernetes', 'tailscale', 'containerd', 'nvidia_driver'],
358
+ additionalProperties: false,
359
+ description: 'Versions of the different components of the cluster.'
360
+ },
361
+ third_party_api_access_config: {
362
+ type: 'object',
363
+ properties: {
364
+ metadata_url: {
365
+ type: 'string',
366
+ description: 'Kubernetes metadata server.',
367
+ example: 'https://10.31.64.4'
368
+ },
369
+ aws_role_arn: {
370
+ type: 'string',
371
+ description: 'AWS Role ARN.',
372
+ example: 'arn:aws:iam::891376988828:role/0371f8fd-e164-48e1-b9e7-c3bdc3b4f403'
373
+ },
374
+ gcp_workload_identity_provider: {
375
+ type: 'string',
376
+ description: 'GCP Workload Identity provider.',
377
+ example: '//iam.googleapis.com/projects/89014267864/locations/global/workloadIdentityPools/cfke/providers/oidc'
378
+ }
379
+ },
380
+ required: ['metadata_url', 'aws_role_arn', 'gcp_workload_identity_provider'],
381
+ additionalProperties: false,
382
+ description: "OIDC Information for hosts to access to third party API's."
383
+ }
384
+ },
385
+ required: ['certificate_authority', 'endpoint', 'auth_key', 'bootstrap_token', 'versions', 'third_party_api_access_config'],
386
+ additionalProperties: false
387
+ };
388
+ export const ClusterSchema = {
389
+ type: 'object',
390
+ properties: {
391
+ name: {
392
+ type: 'string',
393
+ maxLength: 63,
394
+ minLength: 1,
395
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
396
+ description: 'Name of the cluster.',
397
+ example: 'production-cluster'
398
+ },
399
+ tier: {
400
+ type: 'string',
401
+ description: 'Tier of the cluster.',
402
+ example: 'pro',
403
+ enum: ['basic', 'pro']
404
+ },
405
+ region: {
406
+ type: 'string',
407
+ description: 'Cloudfleet control plane region. One of "staging", "northamerica-central-1", "europe-central-1a". This field can not be updated after creation.',
408
+ default: 'staging',
409
+ example: 'northamerica-central-1',
410
+ enum: ['staging', 'northamerica-central-1', 'europe-central-1a']
411
+ },
412
+ version_channel: {
413
+ type: 'string',
414
+ 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-]+)*))?$',
415
+ description: 'Version of the kubernetes cluster.',
416
+ default: '1.x.x-cfke.x',
417
+ example: '1.29.x-cfke.x'
418
+ },
419
+ id: {
420
+ type: 'string',
421
+ format: 'uuid',
422
+ description: 'Unique identifier of the kubernetes cluster. UUID v4 string in canonical form',
423
+ example: '6b5439b1-923a-4f2b-a371-d554e5ea23fa'
424
+ },
425
+ status: {
426
+ type: 'string',
427
+ description: 'Status of the cluster. When creating a new cluster, set to `active`. When deleting a clusters, set to `deleted`.',
428
+ example: 'active',
429
+ enum: ['active', 'deleted', 'creating', 'deployed', 'failed', 'updating']
430
+ },
431
+ endpoint: {
432
+ anyOf: [
433
+ {
434
+ type: 'string',
435
+ format: 'uri',
436
+ description: 'URL of the Kubernetes cluster control plane. This is the endpoint that kubectl uses to connect to the cluster.',
437
+ example: 'https://2ae6557c-c61f-49c6-b4c1-a65473470a03.staging.cfke.cloudfleet.dev:6443'
438
+ },
439
+ {
440
+ type: 'string',
441
+ enum: ['']
442
+ }
443
+ ]
444
+ },
445
+ certificate_ca: {
446
+ type: 'string',
447
+ description: 'Certificate authority data for the kubernetes cluster. This is the root certificate authority for the cluster.',
448
+ example: `-----BEGIN CERTIFICATE-----
449
+ MIIC0DCCAbigAwIBAgI...`
450
+ },
451
+ version_current: {
452
+ type: 'string',
453
+ description: 'Current version of the cluster.',
454
+ example: '1.29.3-cfke.52'
455
+ },
456
+ created_at: {
457
+ type: 'string',
458
+ description: 'Creation date and time of the cluster.',
459
+ example: '2024-09-12T09:11:27Z'
460
+ },
461
+ updated_at: {
462
+ type: 'string',
463
+ description: 'Last update date and time of the cluster.',
464
+ example: '2024-09-12T09:11:27Z'
465
+ },
466
+ ready: {
467
+ type: 'boolean',
468
+ description: 'Indicates if the cluster is ready to be used.',
469
+ example: true
470
+ }
471
+ },
472
+ required: ['name', 'tier', 'id', 'status'],
473
+ additionalProperties: false
474
+ };
475
+ export const ClusterUpdateInputSchema = {
476
+ type: 'object',
477
+ properties: {
478
+ name: {
479
+ type: 'string',
480
+ maxLength: 63,
481
+ minLength: 1,
482
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
483
+ description: 'Name of the cluster.',
484
+ example: 'production-cluster'
485
+ },
486
+ tier: {
487
+ type: 'string',
488
+ description: 'Tier of the cluster.',
489
+ example: 'pro',
490
+ enum: ['basic', 'pro']
491
+ },
492
+ version_channel: {
493
+ type: 'string',
494
+ 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-]+)*))?$',
495
+ description: 'Version of the kubernetes cluster.',
496
+ example: '1.29.x-cfke.x'
497
+ }
498
+ },
499
+ required: ['tier'],
500
+ additionalProperties: false
501
+ };
502
+ export const FleetCreateInputSchema = {
503
+ type: 'object',
504
+ properties: {
505
+ limits: {
506
+ type: 'object',
507
+ properties: {
508
+ cpu: {
509
+ type: 'number',
510
+ format: 'float',
511
+ minimum: 0,
512
+ description: 'CPU limit in cores.'
513
+ }
514
+ },
515
+ required: ['cpu'],
516
+ additionalProperties: false,
517
+ description: 'Limits define a set of bounds for provisioning capacity.'
518
+ },
519
+ gcp: {
520
+ type: 'object',
521
+ properties: {
522
+ enabled: {
523
+ type: 'boolean',
524
+ default: true
525
+ },
526
+ project: {
527
+ type: 'string',
528
+ description: 'Project GCP Project id to deploy instances into'
529
+ }
530
+ },
531
+ required: ['project'],
532
+ additionalProperties: false
533
+ },
534
+ hetzner: {
535
+ type: 'object',
536
+ properties: {
537
+ enabled: {
538
+ type: 'boolean',
539
+ default: true
540
+ },
541
+ apiKey: {
542
+ type: 'string',
543
+ description: 'Hetzner Cloud API key with read / write access'
544
+ }
545
+ },
546
+ required: ['apiKey'],
547
+ additionalProperties: false
548
+ },
549
+ aws: {
550
+ type: 'object',
551
+ properties: {
552
+ enabled: {
553
+ type: 'boolean',
554
+ default: true
555
+ },
556
+ controllerRoleArn: {
557
+ type: 'string',
558
+ description: 'ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.'
559
+ }
560
+ },
561
+ required: ['controllerRoleArn'],
562
+ additionalProperties: false
563
+ },
564
+ id: {
565
+ type: 'string',
566
+ maxLength: 63,
567
+ minLength: 1,
568
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
569
+ description: 'Unique identifier of the kubernetes fleet.',
570
+ example: 'new-clouds-fleet'
571
+ }
572
+ },
573
+ required: ['id'],
574
+ additionalProperties: false
575
+ };
576
+ export const FleetSchema = {
577
+ type: 'object',
578
+ properties: {
579
+ limits: {
580
+ type: 'object',
581
+ properties: {
582
+ cpu: {
583
+ type: 'number',
584
+ format: 'float',
585
+ minimum: 0,
586
+ description: 'CPU limit in cores.'
587
+ }
588
+ },
589
+ required: ['cpu'],
590
+ additionalProperties: false,
591
+ description: 'Limits define a set of bounds for provisioning capacity.'
592
+ },
593
+ gcp: {
594
+ type: 'object',
595
+ properties: {
596
+ enabled: {
597
+ type: 'boolean',
598
+ default: true
599
+ },
600
+ project: {
601
+ type: 'string',
602
+ description: 'Project GCP Project id to deploy instances into'
603
+ }
604
+ },
605
+ required: ['project'],
606
+ additionalProperties: false
607
+ },
608
+ hetzner: {
609
+ type: 'object',
610
+ properties: {
611
+ enabled: {
612
+ type: 'boolean',
613
+ default: true
614
+ },
615
+ apiKey: {
616
+ type: 'string',
617
+ description: 'Hetzner Cloud API key with read / write access'
618
+ }
619
+ },
620
+ required: ['apiKey'],
621
+ additionalProperties: false
622
+ },
623
+ aws: {
624
+ type: 'object',
625
+ properties: {
626
+ enabled: {
627
+ type: 'boolean',
628
+ default: true
629
+ },
630
+ controllerRoleArn: {
631
+ type: 'string',
632
+ description: 'ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.'
633
+ }
634
+ },
635
+ required: ['controllerRoleArn'],
636
+ additionalProperties: false
637
+ },
638
+ id: {
639
+ type: 'string',
640
+ maxLength: 63,
641
+ minLength: 1,
642
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
643
+ description: 'Unique identifier of the kubernetes fleet.',
644
+ example: 'new-clouds-fleet'
645
+ }
646
+ },
647
+ required: ['id'],
648
+ additionalProperties: false
649
+ };
650
+ export const FleetUpdateInputSchema = {
651
+ type: 'object',
652
+ properties: {
653
+ limits: {
654
+ type: 'object',
655
+ properties: {
656
+ cpu: {
657
+ type: 'number',
658
+ format: 'float',
659
+ minimum: 0,
660
+ description: 'CPU limit in cores.'
661
+ }
662
+ },
663
+ required: ['cpu'],
664
+ additionalProperties: false,
665
+ description: 'Limits define a set of bounds for provisioning capacity.'
666
+ },
667
+ gcp: {
668
+ type: 'object',
669
+ properties: {
670
+ enabled: {
671
+ type: 'boolean',
672
+ default: true
673
+ },
674
+ project: {
675
+ type: 'string',
676
+ description: 'Project GCP Project id to deploy instances into'
677
+ }
678
+ },
679
+ required: ['project'],
680
+ additionalProperties: false
681
+ },
682
+ hetzner: {
683
+ type: 'object',
684
+ properties: {
685
+ enabled: {
686
+ type: 'boolean',
687
+ default: true
688
+ },
689
+ apiKey: {
690
+ type: 'string',
691
+ description: 'Hetzner Cloud API key with read / write access'
692
+ }
693
+ },
694
+ required: ['apiKey'],
695
+ additionalProperties: false
696
+ },
697
+ aws: {
698
+ type: 'object',
699
+ properties: {
700
+ enabled: {
701
+ type: 'boolean',
702
+ default: true
703
+ },
704
+ controllerRoleArn: {
705
+ type: 'string',
706
+ description: 'ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.'
707
+ }
708
+ },
709
+ required: ['controllerRoleArn'],
710
+ additionalProperties: false
711
+ }
712
+ },
713
+ additionalProperties: false
714
+ };
715
+ export const InviteSchema = {
716
+ type: 'object',
717
+ properties: {
718
+ id: {
719
+ type: 'string',
720
+ description: 'Unique identifier of the invitation.',
721
+ example: '65831dd20d20165489cbb868'
722
+ },
723
+ organization_id: {
724
+ type: 'string',
725
+ format: 'uuid',
726
+ description: 'Unique identifier of the organization the project belongs to. UUID v4 string in canonical form',
727
+ example: 'e94d30ec-a2dd-4dcb-832c-ac2be144ba91'
728
+ },
729
+ date_created: {
730
+ type: 'string',
731
+ format: 'date-time',
732
+ description: 'Creation date of the project. ISO 8601 date string in UTC timezone',
733
+ example: '2023-11-02T16:08:14.338Z'
734
+ },
735
+ email: {
736
+ type: 'string',
737
+ format: 'email',
738
+ description: 'User email address.',
739
+ example: 'email@example.com'
740
+ },
741
+ code: {
742
+ type: 'string',
743
+ description: 'Generated unique invite code.',
744
+ example: '7kUZnH7nnKUFfvc4NK2KQF'
745
+ }
746
+ },
747
+ required: ['date_created'],
748
+ additionalProperties: false
749
+ };
750
+ export const InvoiceSchema = {
751
+ type: 'object',
752
+ properties: {
753
+ id: {
754
+ type: 'string',
755
+ format: 'uuid',
756
+ description: 'Unique identifier of the invoice. UUID v4 string in canonical form',
757
+ example: '415026b6-f00f-44f8-968d-fc6ef4d0fc6d'
758
+ },
759
+ organizationId: {
760
+ type: 'string',
761
+ format: 'uuid',
762
+ description: 'Unique identifier of the organization. UUID v4 string in canonical form',
763
+ example: '415026b6-f00f-44f8-968d-fc6ef4d0fc6d'
764
+ },
765
+ status: {
766
+ type: 'string',
767
+ description: 'Status of the invoice',
768
+ example: 'DRAFT',
769
+ enum: ['DRAFT', 'COMMITTED', 'VOID']
770
+ },
771
+ amount: {
772
+ type: 'number',
773
+ format: 'float',
774
+ description: 'Total amount of the invoice',
775
+ example: 100
776
+ },
777
+ currency: {
778
+ type: 'string',
779
+ description: 'Currency of the invoice',
780
+ example: 'USD',
781
+ 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']
782
+ },
783
+ creditAdj: {
784
+ type: 'number',
785
+ format: 'float',
786
+ description: 'Total amount of credit adjustments',
787
+ example: 0
788
+ },
789
+ refundAdj: {
790
+ type: 'number',
791
+ format: 'float',
792
+ description: 'Total amount of refund adjustments',
793
+ example: 0
794
+ },
795
+ invoiceDate: {
796
+ type: 'string',
797
+ description: 'Date of the invoice',
798
+ example: '2019-01-01T00:00:00.000Z'
799
+ },
800
+ targetDate: {
801
+ type: 'string',
802
+ description: 'Target date of the invoice',
803
+ example: '2019-01-01T00:00:00.000Z'
804
+ },
805
+ invoiceNumber: {
806
+ type: 'string',
807
+ description: 'Number of the invoice',
808
+ example: 'INV-0001'
809
+ },
810
+ balance: {
811
+ type: 'number',
812
+ format: 'float',
813
+ description: 'Balance of the invoice',
814
+ example: 100
815
+ },
816
+ bundleKeys: {
817
+ type: 'string',
818
+ description: 'Bundle keys of the invoice',
819
+ example: 'bundleKey1,bundleKey2'
820
+ },
821
+ credits: {
822
+ type: 'array',
823
+ items: {
824
+ type: 'object',
825
+ properties: {
826
+ id: {
827
+ type: 'string',
828
+ format: 'uuid',
829
+ description: 'Unique identifier of the invoice item. UUID v4 string in canonical form',
830
+ example: '415026b6-f00f-44f8-968d-fc6ef4d0fc6d'
831
+ },
832
+ linkedInvoiceItemId: {
833
+ type: 'string',
834
+ format: 'uuid',
835
+ description: 'Unique identifier of the linked invoice item. UUID v4 string in canonical form',
836
+ example: '415026b6-f00f-44f8-968d-fc6ef4d0fc6d'
837
+ },
838
+ productName: {
839
+ type: 'string',
840
+ description: 'Name of the product',
841
+ example: 'Research team'
842
+ },
843
+ planName: {
844
+ type: 'string',
845
+ description: 'Name of the plan',
846
+ example: 'Plan A'
847
+ },
848
+ phaseName: {
849
+ type: 'string',
850
+ description: 'Name of the phase',
851
+ example: 'Phase A'
852
+ },
853
+ usageName: {
854
+ type: 'string',
855
+ description: 'Name of the usage',
856
+ example: 'Usage A'
857
+ },
858
+ prettyProductName: {
859
+ type: 'string',
860
+ description: 'Pretty name of the product',
861
+ example: 'Research team'
862
+ },
863
+ prettyPlanName: {
864
+ type: 'string',
865
+ description: 'Pretty name of the plan',
866
+ example: 'Plan A'
867
+ },
868
+ prettyPhaseName: {
869
+ type: 'string',
870
+ description: 'Pretty name of the phase',
871
+ example: 'Phase A'
872
+ },
873
+ prettyUsageName: {
874
+ type: 'string',
875
+ description: 'Pretty name of the usage',
876
+ example: 'Usage A'
877
+ },
878
+ itemType: {
879
+ type: 'string',
880
+ description: 'Type of the invoice item',
881
+ example: 'EXTERNAL_CHARGE',
882
+ enum: ['EXTERNAL_CHARGE', 'FIXED', 'RECURRING', 'REPAIR_ADJ', 'CBA_ADJ', 'CREDIT_ADJ', 'ITEM_ADJ', 'USAGE', 'TAX', 'PARENT_SUMMARY']
883
+ },
884
+ description: {
885
+ type: 'string',
886
+ description: 'Description of the invoice item',
887
+ example: 'Description of the invoice item'
888
+ },
889
+ startDate: {
890
+ type: 'string',
891
+ description: 'Start date of the invoice item',
892
+ example: '2019-01-01T00:00:00.000Z'
893
+ },
894
+ endDate: {
895
+ type: 'string',
896
+ description: 'End date of the invoice item',
897
+ example: '2019-01-01T00:00:00.000Z'
898
+ },
899
+ amount: {
900
+ type: 'number',
901
+ format: 'float',
902
+ description: 'Amount of the invoice item',
903
+ example: 100
904
+ },
905
+ rate: {
906
+ type: 'number',
907
+ format: 'float',
908
+ description: 'Rate of the invoice item',
909
+ example: 100
910
+ },
911
+ currency: {
912
+ type: 'string',
913
+ description: 'Currency of the invoice item',
914
+ example: 'USD',
915
+ 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']
916
+ },
917
+ quantity: {
918
+ type: 'number',
919
+ format: 'float',
920
+ description: 'Quantity of the invoice item',
921
+ example: 1
922
+ },
923
+ itemDetails: {
924
+ type: 'string',
925
+ description: 'Details of the invoice item',
926
+ example: 'Details of the invoice item'
927
+ },
928
+ catalogEffectiveDate: {
929
+ type: 'string',
930
+ description: 'Effective date of the catalog',
931
+ example: '2019-01-01T00:00:00.000Z'
932
+ },
933
+ childItems: {
934
+ type: 'array',
935
+ items: {
936
+ oneOf: [
937
+ {
938
+ type: 'array'
939
+ },
940
+ {
941
+ type: 'boolean'
942
+ },
943
+ {
944
+ type: 'number'
945
+ },
946
+ {
947
+ type: 'object',
948
+ additionalProperties: true
949
+ },
950
+ {
951
+ type: 'string'
952
+ }
953
+ ]
954
+ },
955
+ description: 'Child items of the invoice item'
956
+ }
957
+ },
958
+ additionalProperties: false
959
+ },
960
+ description: 'Credits of the invoice'
961
+ },
962
+ items: {
963
+ type: 'array',
964
+ items: {
965
+ type: 'object',
966
+ properties: {
967
+ id: {
968
+ type: 'string',
969
+ format: 'uuid',
970
+ description: 'Unique identifier of the invoice item. UUID v4 string in canonical form',
971
+ example: '415026b6-f00f-44f8-968d-fc6ef4d0fc6d'
972
+ },
973
+ linkedInvoiceItemId: {
974
+ type: 'string',
975
+ format: 'uuid',
976
+ description: 'Unique identifier of the linked invoice item. UUID v4 string in canonical form',
977
+ example: '415026b6-f00f-44f8-968d-fc6ef4d0fc6d'
978
+ },
979
+ productName: {
980
+ type: 'string',
981
+ description: 'Name of the product',
982
+ example: 'Research team'
983
+ },
984
+ planName: {
985
+ type: 'string',
986
+ description: 'Name of the plan',
987
+ example: 'Plan A'
988
+ },
989
+ phaseName: {
990
+ type: 'string',
991
+ description: 'Name of the phase',
992
+ example: 'Phase A'
993
+ },
994
+ usageName: {
995
+ type: 'string',
996
+ description: 'Name of the usage',
997
+ example: 'Usage A'
998
+ },
999
+ prettyProductName: {
1000
+ type: 'string',
1001
+ description: 'Pretty name of the product',
1002
+ example: 'Research team'
1003
+ },
1004
+ prettyPlanName: {
1005
+ type: 'string',
1006
+ description: 'Pretty name of the plan',
1007
+ example: 'Plan A'
1008
+ },
1009
+ prettyPhaseName: {
1010
+ type: 'string',
1011
+ description: 'Pretty name of the phase',
1012
+ example: 'Phase A'
1013
+ },
1014
+ prettyUsageName: {
1015
+ type: 'string',
1016
+ description: 'Pretty name of the usage',
1017
+ example: 'Usage A'
1018
+ },
1019
+ itemType: {
1020
+ type: 'string',
1021
+ description: 'Type of the invoice item',
1022
+ example: 'EXTERNAL_CHARGE',
1023
+ enum: ['EXTERNAL_CHARGE', 'FIXED', 'RECURRING', 'REPAIR_ADJ', 'CBA_ADJ', 'CREDIT_ADJ', 'ITEM_ADJ', 'USAGE', 'TAX', 'PARENT_SUMMARY']
1024
+ },
1025
+ description: {
1026
+ type: 'string',
1027
+ description: 'Description of the invoice item',
1028
+ example: 'Description of the invoice item'
1029
+ },
1030
+ startDate: {
1031
+ type: 'string',
1032
+ description: 'Start date of the invoice item',
1033
+ example: '2019-01-01T00:00:00.000Z'
1034
+ },
1035
+ endDate: {
1036
+ type: 'string',
1037
+ description: 'End date of the invoice item',
1038
+ example: '2019-01-01T00:00:00.000Z'
1039
+ },
1040
+ amount: {
1041
+ type: 'number',
1042
+ format: 'float',
1043
+ description: 'Amount of the invoice item',
1044
+ example: 100
1045
+ },
1046
+ rate: {
1047
+ type: 'number',
1048
+ format: 'float',
1049
+ description: 'Rate of the invoice item',
1050
+ example: 100
1051
+ },
1052
+ currency: {
1053
+ type: 'string',
1054
+ description: 'Currency of the invoice item',
1055
+ example: 'USD',
1056
+ 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']
1057
+ },
1058
+ quantity: {
1059
+ type: 'number',
1060
+ format: 'float',
1061
+ description: 'Quantity of the invoice item',
1062
+ example: 1
1063
+ },
1064
+ itemDetails: {
1065
+ type: 'string',
1066
+ description: 'Details of the invoice item',
1067
+ example: 'Details of the invoice item'
1068
+ },
1069
+ catalogEffectiveDate: {
1070
+ type: 'string',
1071
+ description: 'Effective date of the catalog',
1072
+ example: '2019-01-01T00:00:00.000Z'
1073
+ },
1074
+ childItems: {
1075
+ type: 'array',
1076
+ items: {
1077
+ oneOf: [
1078
+ {
1079
+ type: 'array'
1080
+ },
1081
+ {
1082
+ type: 'boolean'
1083
+ },
1084
+ {
1085
+ type: 'number'
1086
+ },
1087
+ {
1088
+ type: 'object',
1089
+ additionalProperties: true
1090
+ },
1091
+ {
1092
+ type: 'string'
1093
+ }
1094
+ ]
1095
+ },
1096
+ description: 'Child items of the invoice item'
1097
+ }
1098
+ },
1099
+ additionalProperties: false
1100
+ },
1101
+ description: 'Items of the invoice'
1102
+ }
1103
+ },
1104
+ additionalProperties: false
1105
+ };
1106
+ export const MarketplaceListingSchema = {
1107
+ type: 'object',
1108
+ properties: {
1109
+ id: {
1110
+ type: 'string',
1111
+ maxLength: 63,
1112
+ minLength: 1,
1113
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
1114
+ description: 'Id of the chart listing',
1115
+ example: 'portworx-enterprise-disaster-recovery-baremetal'
1116
+ },
1117
+ name: {
1118
+ type: 'string',
1119
+ description: 'Name of the chart listing',
1120
+ example: 'Portworx Enterprise + Disaster Recovery - Baremetal'
1121
+ },
1122
+ developer: {
1123
+ type: 'string',
1124
+ description: 'Author of the chart listing',
1125
+ example: 'Portworx'
1126
+ },
1127
+ description: {
1128
+ type: 'string',
1129
+ description: 'Short description of the chart listing',
1130
+ example: 'Run Kubernetes with unmatched scalability, availability, and self-service access to any storage'
1131
+ },
1132
+ logoUrl: {
1133
+ type: 'string',
1134
+ description: 'Logo of the chart listing',
1135
+ example: 'https://portworx.com/wp-content/themes/portworx/assets/images/header/portworx-logo.png'
1136
+ },
1137
+ longDescription: {
1138
+ type: 'string',
1139
+ description: 'Long description of the chart listing',
1140
+ example: 'Portworx-Enterprise is the complete multi-cloud ready Kubernetes storage platform for running mission-critical apps in production....'
1141
+ },
1142
+ categories: {
1143
+ type: 'array',
1144
+ items: {
1145
+ type: 'string',
1146
+ example: 'AI & Machine Learning'
1147
+ },
1148
+ description: 'Tags of the chart'
1149
+ },
1150
+ version_channels: {
1151
+ type: 'array',
1152
+ items: {
1153
+ type: 'string',
1154
+ 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-]+)*))?$',
1155
+ description: 'Version of the chart.',
1156
+ example: '2.x.x-cfke.x'
1157
+ }
1158
+ },
1159
+ value_schemas: {
1160
+ type: 'array',
1161
+ items: {
1162
+ type: 'object',
1163
+ properties: {
1164
+ version: {
1165
+ type: 'string',
1166
+ 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-]+)*))?$',
1167
+ description: 'Version of the chart.',
1168
+ example: '2.1.1-cfke.123'
1169
+ },
1170
+ schema: {
1171
+ type: 'string',
1172
+ description: 'Schema of the chart values. JSON Schema as string'
1173
+ },
1174
+ placeholder: {
1175
+ type: 'string',
1176
+ description: 'Schema of the chart values',
1177
+ example: `foo: 1
1178
+ bar: example`
1179
+ }
1180
+ },
1181
+ required: ['version', 'schema', 'placeholder'],
1182
+ additionalProperties: false
1183
+ }
1184
+ }
1185
+ },
1186
+ required: ['id', 'name', 'developer', 'description', 'logoUrl', 'longDescription', 'categories', 'version_channels', 'value_schemas'],
1187
+ additionalProperties: false
1188
+ };
1189
+ export const OrganizationCreateInputSchema = {
1190
+ type: 'object',
1191
+ properties: {
1192
+ email: {
1193
+ type: 'string',
1194
+ format: 'email',
1195
+ description: 'Email address used for billing as a string.',
1196
+ example: 'email@example.com'
1197
+ },
1198
+ first_name: {
1199
+ type: 'string',
1200
+ description: 'First name of the billing contact person.',
1201
+ example: 'John'
1202
+ },
1203
+ last_name: {
1204
+ type: 'string',
1205
+ description: 'Last name of the billing contact person.',
1206
+ example: 'Doe'
1207
+ },
1208
+ company_name: {
1209
+ type: 'string',
1210
+ maxLength: 120,
1211
+ minLength: 2,
1212
+ 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,}$',
1213
+ description: 'Name of the legal entity. This name will be used in invoices. Use your first and last name for individual accounts.',
1214
+ example: 'ACME Corp.'
1215
+ },
1216
+ password: {
1217
+ type: 'string',
1218
+ minLength: 8,
1219
+ 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.'
1220
+ }
1221
+ },
1222
+ required: ['email', 'first_name', 'last_name', 'company_name', 'password'],
1223
+ additionalProperties: false
1224
+ };
1225
+ export const OrganizationSchema = {
1226
+ type: 'object',
1227
+ properties: {
1228
+ id: {
1229
+ type: 'string',
1230
+ format: 'uuid',
1231
+ description: 'Unique identifier of the organization. UUID v4 string in canonical form',
1232
+ example: 'e94d30ec-a2dd-4dcb-832c-ac2be144ba91'
1233
+ },
1234
+ name: {
1235
+ type: 'string',
1236
+ maxLength: 120,
1237
+ minLength: 2,
1238
+ description: 'Name of the legal entity. This name will be used in invoices. Use your first and last name for individual accounts.',
1239
+ example: 'ACME Corp.'
1240
+ },
1241
+ date_created: {
1242
+ type: 'string',
1243
+ format: 'date-time',
1244
+ description: 'Creation date of the organization. ISO 8601 date string in UTC timezone',
1245
+ example: '2023-11-02T16:08:14.338Z'
1246
+ },
1247
+ quota: {
1248
+ type: 'object',
1249
+ properties: {
1250
+ basic_clusters_max: {
1251
+ type: 'integer',
1252
+ minimum: 0,
1253
+ description: 'Maximum number of Basic clusters that can be created.',
1254
+ example: 999
1255
+ },
1256
+ basic_clusters_available: {
1257
+ type: 'integer',
1258
+ description: 'Available number of Basic clusters that can be created.',
1259
+ example: 999
1260
+ },
1261
+ pro_clusters_max: {
1262
+ type: 'integer',
1263
+ minimum: 0,
1264
+ description: 'Maximum number of Pro clusters that can be created.',
1265
+ example: 999
1266
+ },
1267
+ pro_clusters_available: {
1268
+ type: 'integer',
1269
+ description: 'Available number of Pro clusters that can be created.',
1270
+ example: 999
1271
+ },
1272
+ fleets_max: {
1273
+ type: 'integer',
1274
+ minimum: 0,
1275
+ description: 'Maximum number of fleets that can be created per cluster.',
1276
+ example: 999
1277
+ },
1278
+ cluster_tiers: {
1279
+ type: 'array',
1280
+ items: {
1281
+ type: 'string',
1282
+ example: 'basic'
1283
+ },
1284
+ minItems: 0,
1285
+ description: 'List of Cloudfleet cluster tiers available for the organization.'
1286
+ },
1287
+ regions: {
1288
+ type: 'array',
1289
+ items: {
1290
+ type: 'string',
1291
+ example: 'northamerica-central-1'
1292
+ },
1293
+ minItems: 1,
1294
+ description: 'List of Cloudfleet control plane regions available for the organization.'
1295
+ },
1296
+ versions: {
1297
+ type: 'array',
1298
+ items: {
1299
+ type: 'object',
1300
+ properties: {
1301
+ id: {
1302
+ type: 'string',
1303
+ description: 'Id of the control plane version. Used in API calls.',
1304
+ example: '1.29.x-cfke.x'
1305
+ },
1306
+ label: {
1307
+ type: 'string',
1308
+ description: 'Label of the control plane version. Used in frontent UI.',
1309
+ example: '1.29.x (Always latest 1.29 patch version)'
1310
+ }
1311
+ },
1312
+ required: ['id', 'label'],
1313
+ additionalProperties: false
1314
+ },
1315
+ minItems: 1,
1316
+ description: 'List of CFKE control plane versions available for the organization.'
1317
+ }
1318
+ },
1319
+ required: ['basic_clusters_max', 'basic_clusters_available', 'pro_clusters_max', 'pro_clusters_available', 'fleets_max', 'cluster_tiers', 'regions', 'versions'],
1320
+ additionalProperties: false,
1321
+ 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.'
1322
+ },
1323
+ status: {
1324
+ type: 'string',
1325
+ description: 'Status of the organization. Can be `active` or `closed`, or `suspended`.',
1326
+ enum: ['active', 'closed', 'suspended']
1327
+ }
1328
+ },
1329
+ required: ['id', 'date_created', 'quota', 'status'],
1330
+ additionalProperties: false
1331
+ };
1332
+ export const PaymentMethodSchema = {
1333
+ type: 'object',
1334
+ properties: {
1335
+ id: {
1336
+ type: 'string',
1337
+ format: 'uuid',
1338
+ description: 'Unique identifier of the organization. UUID v4 string in canonical form.',
1339
+ example: 'e94d30ec-a2dd-4dcb-832c-ac2be144ba91'
1340
+ },
1341
+ setup: {
1342
+ type: 'boolean',
1343
+ description: 'Whether organization payment method was set up and ready to use for payments.',
1344
+ example: true
1345
+ },
1346
+ type: {
1347
+ type: 'string',
1348
+ nullable: true,
1349
+ description: 'Payment method type type. Only `card` payments supported at the moment.',
1350
+ example: 'card',
1351
+ enum: ['card']
1352
+ },
1353
+ last4: {
1354
+ type: 'string',
1355
+ nullable: true,
1356
+ description: 'Last 4 digits of the payment card number.',
1357
+ example: '4242'
1358
+ },
1359
+ exp_month: {
1360
+ type: 'integer',
1361
+ minimum: 1,
1362
+ maximum: 12,
1363
+ nullable: true,
1364
+ description: "Two-digit number representing the card's expiration month.",
1365
+ example: '12'
1366
+ },
1367
+ exp_year: {
1368
+ type: 'integer',
1369
+ minimum: 2024,
1370
+ nullable: true,
1371
+ description: "Four-digit number representing the card's expiration year.",
1372
+ example: '2028'
1373
+ },
1374
+ brand: {
1375
+ type: 'string',
1376
+ nullable: true,
1377
+ description: 'Payment card brand. Can be `amex`, `diners`, `discover`, `eftpos_au`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown`.',
1378
+ example: 'visa',
1379
+ enum: ['amex', 'diners', 'discover', 'eftpos_au', 'jcb', 'mastercard', 'unionpay', 'visa', 'unknown']
1380
+ }
1381
+ },
1382
+ required: ['id', 'setup', 'type', 'last4', 'exp_month', 'exp_year', 'brand'],
1383
+ additionalProperties: false
1384
+ };
1385
+ export const TokenCreateInputSchema = {
1386
+ type: 'object',
1387
+ properties: {
1388
+ name: {
1389
+ type: 'string',
1390
+ maxLength: 63,
1391
+ minLength: 1,
1392
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
1393
+ description: 'Human readable access token name.',
1394
+ example: 'deployment-token'
1395
+ },
1396
+ role: {
1397
+ type: 'string',
1398
+ description: 'Role assumed by the token.',
1399
+ example: 'User',
1400
+ enum: ['Administrator', 'User']
1401
+ }
1402
+ },
1403
+ required: ['name', 'role'],
1404
+ additionalProperties: false
1405
+ };
1406
+ export const TokenSchema = {
1407
+ type: 'object',
1408
+ properties: {
1409
+ name: {
1410
+ type: 'string',
1411
+ maxLength: 63,
1412
+ minLength: 1,
1413
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
1414
+ description: 'Human readable access token name.',
1415
+ example: 'deployment-token'
1416
+ },
1417
+ role: {
1418
+ type: 'string',
1419
+ description: 'Role assumed by the token.',
1420
+ example: 'User',
1421
+ enum: ['Administrator', 'User']
1422
+ },
1423
+ id: {
1424
+ type: 'string',
1425
+ description: 'Generated unique identifier of the access token.',
1426
+ example: '7kUZnH7nnKUFfvc4NK2KQF'
1427
+ },
1428
+ secret: {
1429
+ type: 'string',
1430
+ description: 'Access token secret. Unmasked only during creation.',
1431
+ example: 'vq4SCMBsrgmBxbax80WDXuXoFNZAckI8'
1432
+ },
1433
+ date_created: {
1434
+ type: 'string',
1435
+ format: 'date-time',
1436
+ description: 'Creation date of the access token. ISO 8601 date string in UTC timezone',
1437
+ example: '2023-12-20T13:53:32.000Z'
1438
+ }
1439
+ },
1440
+ required: ['name', 'role', 'date_created'],
1441
+ additionalProperties: false
1442
+ };
1443
+ export const TokenUpdateInputSchema = {
1444
+ type: 'object',
1445
+ properties: {
1446
+ name: {
1447
+ type: 'string',
1448
+ maxLength: 63,
1449
+ minLength: 1,
1450
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
1451
+ description: 'Human readable access token name.',
1452
+ example: 'deployment-token'
1453
+ },
1454
+ role: {
1455
+ type: 'string',
1456
+ description: 'Role assumed by the token.',
1457
+ example: 'User',
1458
+ enum: ['Administrator', 'User']
1459
+ }
1460
+ },
1461
+ additionalProperties: false
1462
+ };
1463
+ export const UsageSchema = {
1464
+ type: 'object',
1465
+ properties: {
1466
+ hour: {
1467
+ type: 'string',
1468
+ description: 'Hour of the usage',
1469
+ example: '2019-01-01T00:00:00.000Z'
1470
+ },
1471
+ cluster_id: {
1472
+ type: 'string',
1473
+ format: 'uuid',
1474
+ description: 'Unique identifier of the kubernetes cluster. UUID v4 string in canonical form',
1475
+ example: '6b5439b1-923a-4f2b-a371-d554e5ea23fa'
1476
+ },
1477
+ cluster_tier: {
1478
+ type: 'string',
1479
+ description: 'Tier of the cluster.',
1480
+ example: 'pro',
1481
+ enum: ['basic', 'pro', '']
1482
+ },
1483
+ product: {
1484
+ type: 'string',
1485
+ description: 'The product the usage is associated with',
1486
+ example: 'cfke_controlplane',
1487
+ enum: ['cfke_controlplane', 'cfke_connected_nodes', 'infra_compute', 'infra_storage', 'infra_loadbalancing', 'infra_traffic', 'cfcr_storage']
1488
+ },
1489
+ node_name: {
1490
+ type: 'string',
1491
+ description: 'Name of the Kubernetes node',
1492
+ example: 'flexible-moth-956037384'
1493
+ },
1494
+ sku: {
1495
+ type: 'string',
1496
+ description: 'SKU of the Kubernetes node',
1497
+ example: 'GCP-NORTHAMERICA-NORTHEAST1-A-G1-SMALL-SPOT'
1498
+ },
1499
+ cpu: {
1500
+ anyOf: [
1501
+ {
1502
+ type: 'number',
1503
+ format: 'float',
1504
+ description: 'CPU core count of the node',
1505
+ example: 4
1506
+ },
1507
+ {
1508
+ type: 'string',
1509
+ enum: ['']
1510
+ }
1511
+ ]
1512
+ },
1513
+ price: {
1514
+ anyOf: [
1515
+ {
1516
+ type: 'number',
1517
+ format: 'float',
1518
+ description: 'Price',
1519
+ example: 4
1520
+ },
1521
+ {
1522
+ type: 'string',
1523
+ enum: ['']
1524
+ }
1525
+ ]
1526
+ },
1527
+ value: {
1528
+ anyOf: [
1529
+ {
1530
+ type: 'number',
1531
+ format: 'float',
1532
+ description: 'Value',
1533
+ example: 4
1534
+ },
1535
+ {
1536
+ type: 'string',
1537
+ enum: ['']
1538
+ }
1539
+ ]
1540
+ },
1541
+ total: {
1542
+ anyOf: [
1543
+ {
1544
+ type: 'number',
1545
+ format: 'float',
1546
+ description: 'Total',
1547
+ example: 4
1548
+ },
1549
+ {
1550
+ type: 'string',
1551
+ enum: ['']
1552
+ }
1553
+ ]
1554
+ }
1555
+ },
1556
+ required: ['cluster_id', 'cluster_tier', 'product', 'node_name', 'sku', 'cpu', 'price', 'value', 'total'],
1557
+ additionalProperties: false
1558
+ };
1559
+ export const UserCreateInputSchema = {
1560
+ type: 'object',
1561
+ properties: {
1562
+ email: {
1563
+ type: 'string',
1564
+ format: 'email',
1565
+ description: 'User email address.',
1566
+ example: 'email@example.com'
1567
+ },
1568
+ first_name: {
1569
+ type: 'string',
1570
+ maxLength: 50,
1571
+ minLength: 1,
1572
+ description: 'User first name.',
1573
+ example: 'John'
1574
+ },
1575
+ last_name: {
1576
+ type: 'string',
1577
+ maxLength: 50,
1578
+ minLength: 1,
1579
+ description: 'User last name.',
1580
+ example: 'Doe'
1581
+ },
1582
+ code: {
1583
+ type: 'string',
1584
+ length: 22,
1585
+ description: 'Generated unique invite code.',
1586
+ example: '7kUZnH7nnKUFfvc4NK2KQF'
1587
+ },
1588
+ password: {
1589
+ type: 'string',
1590
+ minLength: 8,
1591
+ description: 'User password. Must be at least 8 characters long.'
1592
+ },
1593
+ status: {
1594
+ type: 'string',
1595
+ description: 'Status of the user. Can be `active` or `inactive`. Inactive users cannot log in or manage organization resources.',
1596
+ example: 'active',
1597
+ enum: ['active', 'inactive']
1598
+ },
1599
+ role: {
1600
+ type: 'string',
1601
+ description: "User role. Can be 'Administrator', 'User'.",
1602
+ example: 'User',
1603
+ enum: ['Administrator', 'User']
1604
+ }
1605
+ },
1606
+ required: ['email', 'first_name', 'last_name', 'code', 'password'],
1607
+ additionalProperties: false
1608
+ };
1609
+ export const UserSchema = {
1610
+ type: 'object',
1611
+ properties: {
1612
+ email: {
1613
+ type: 'string',
1614
+ format: 'email',
1615
+ description: 'User email address.',
1616
+ example: 'email@example.com'
1617
+ },
1618
+ first_name: {
1619
+ type: 'string',
1620
+ maxLength: 50,
1621
+ minLength: 1,
1622
+ description: 'User first name.',
1623
+ example: 'John'
1624
+ },
1625
+ last_name: {
1626
+ type: 'string',
1627
+ maxLength: 50,
1628
+ minLength: 1,
1629
+ description: 'User last name.',
1630
+ example: 'Doe'
1631
+ },
1632
+ role: {
1633
+ type: 'string',
1634
+ description: "User role. Can be 'Administrator', 'User'.",
1635
+ example: 'User',
1636
+ enum: ['Administrator', 'User']
1637
+ },
1638
+ status: {
1639
+ type: 'string',
1640
+ description: 'Status of the user. Can be `active` or `inactive`. Inactive users cannot log in or manage organization resources.',
1641
+ example: 'active',
1642
+ enum: ['active', 'inactive']
1643
+ },
1644
+ id: {
1645
+ type: 'string',
1646
+ format: 'uuid',
1647
+ description: 'Unique identifier of the user. UUID v4 string in canonical form',
1648
+ example: 'e94d30ec-a2dd-4dcb-832c-ac2be144ba91'
1649
+ },
1650
+ date_created: {
1651
+ type: 'string',
1652
+ format: 'date-time',
1653
+ description: 'Creation date of the user. ISO 8601 date string in UTC timezone',
1654
+ example: '2023-11-02T16:08:14.338Z'
1655
+ }
1656
+ },
1657
+ required: ['email', 'first_name', 'last_name', 'role', 'status', 'id', 'date_created'],
1658
+ additionalProperties: false
1659
+ };
1660
+ export const UserUpdateInputSchema = {
1661
+ type: 'object',
1662
+ properties: {
1663
+ email: {
1664
+ type: 'string',
1665
+ format: 'email',
1666
+ description: 'User email address.',
1667
+ example: 'email@example.com'
1668
+ },
1669
+ first_name: {
1670
+ type: 'string',
1671
+ maxLength: 50,
1672
+ minLength: 1,
1673
+ description: 'User first name.',
1674
+ example: 'John'
1675
+ },
1676
+ last_name: {
1677
+ type: 'string',
1678
+ maxLength: 50,
1679
+ minLength: 1,
1680
+ description: 'User last name.',
1681
+ example: 'Doe'
1682
+ },
1683
+ role: {
1684
+ type: 'string',
1685
+ description: "User role. Can be 'Administrator', 'User'.",
1686
+ example: 'User',
1687
+ enum: ['Administrator', 'User']
1688
+ },
1689
+ status: {
1690
+ type: 'string',
1691
+ description: 'Status of the user. Can be `active` or `inactive`. Inactive users cannot log in or manage organization resources.',
1692
+ example: 'active',
1693
+ enum: ['active', 'inactive']
1694
+ }
1695
+ },
1696
+ additionalProperties: false
1697
+ };
1698
+ //# sourceMappingURL=schemas.gen.js.map