@cloudfleet/sdk 0.0.3

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.
@@ -0,0 +1,1553 @@
1
+ // This file is auto-generated by @hey-api/openapi-ts
2
+ export const ClusterCreateInputSchema = {
3
+ type: 'object',
4
+ properties: {
5
+ name: {
6
+ type: 'string',
7
+ maxLength: 63,
8
+ minLength: 1,
9
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
10
+ description: 'Name of the cluster.',
11
+ example: 'production-cluster'
12
+ },
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
+ tier: {
21
+ type: 'string',
22
+ description: 'Tier of the cluster.',
23
+ example: 'pro',
24
+ enum: ['basic', 'pro']
25
+ },
26
+ version_channel: {
27
+ type: 'string',
28
+ 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
+ description: 'Version of the kubernetes cluster.',
30
+ default: '1.x.x-cfke.x',
31
+ example: '1.29.x-cfke.x'
32
+ }
33
+ },
34
+ required: ['name', 'tier'],
35
+ additionalProperties: false
36
+ };
37
+ export const ClusterJoinInformationSchema = {
38
+ type: 'object',
39
+ properties: {
40
+ certificate_authority: {
41
+ type: 'string',
42
+ description: 'Certificate authority data for the kubernetes cluster. This is the root certificate authority for the cluster.',
43
+ example: `-----BEGIN CERTIFICATE-----
44
+ MIIC0DCCAbigAwIBAgI...`
45
+ },
46
+ endpoint: {
47
+ type: 'string',
48
+ format: 'uri',
49
+ description: 'Internal URL of the Kubernetes cluster control plane. This is the endpoint that kubelet uses to connect to the cluster.',
50
+ example: 'https://10.31.64.7:6443'
51
+ },
52
+ auth_key: {
53
+ type: 'string',
54
+ description: 'Authentication key for the cluster.',
55
+ example: 'tskey-auth-kBV8wr1dk911CNTRL-...'
56
+ },
57
+ bootstrap_token: {
58
+ type: 'string',
59
+ description: 'Bootstrap token for the cluster.',
60
+ example: 'a797d6df6babc2cfdb202ba7.....'
61
+ },
62
+ versions: {
63
+ type: 'object',
64
+ properties: {
65
+ kubernetes: {
66
+ type: 'string',
67
+ description: 'Kubernetes version of the cluster.',
68
+ example: '1.29.3'
69
+ },
70
+ tailscale: {
71
+ type: 'string',
72
+ description: 'Tailscale version of the cluster.',
73
+ example: '1.74.1'
74
+ },
75
+ containerd: {
76
+ type: 'string',
77
+ description: 'Containerd version of the cluster.',
78
+ example: '1.7.19'
79
+ }
80
+ },
81
+ required: ['kubernetes', 'tailscale', 'containerd'],
82
+ additionalProperties: false,
83
+ description: 'Versions of the different components of the cluster.'
84
+ }
85
+ },
86
+ required: ['certificate_authority', 'endpoint', 'auth_key', 'bootstrap_token', 'versions'],
87
+ additionalProperties: false
88
+ };
89
+ export const ClusterSchema = {
90
+ type: 'object',
91
+ properties: {
92
+ name: {
93
+ type: 'string',
94
+ maxLength: 63,
95
+ minLength: 1,
96
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
97
+ description: 'Name of the cluster.',
98
+ example: 'production-cluster'
99
+ },
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
+ tier: {
108
+ type: 'string',
109
+ description: 'Tier of the cluster.',
110
+ example: 'pro',
111
+ enum: ['basic', 'pro']
112
+ },
113
+ version_channel: {
114
+ 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'
119
+ },
120
+ id: {
121
+ type: 'string',
122
+ format: 'uuid',
123
+ description: 'Unique identifier of the kubernetes cluster. UUID v4 string in canonical form',
124
+ example: '6b5439b1-923a-4f2b-a371-d554e5ea23fa'
125
+ },
126
+ status: {
127
+ type: 'string',
128
+ description: 'Status of the cluster. When creating a new cluster, set to `active`. When deleting a clusters, set to `deleted`.',
129
+ example: 'active',
130
+ enum: ['active', 'deleted', 'creating', 'deployed', 'failed', 'updating']
131
+ },
132
+ endpoint: {
133
+ anyOf: [
134
+ {
135
+ type: 'string',
136
+ format: 'uri',
137
+ description: 'URL of the Kubernetes cluster control plane. This is the endpoint that kubectl uses to connect to the cluster.',
138
+ example: 'https://2ae6557c-c61f-49c6-b4c1-a65473470a03.staging.cfke.cloudfleet.dev:6443'
139
+ },
140
+ {
141
+ type: 'string',
142
+ enum: ['']
143
+ }
144
+ ]
145
+ },
146
+ certificate_ca: {
147
+ type: 'string',
148
+ description: 'Certificate authority data for the kubernetes cluster. This is the root certificate authority for the cluster.',
149
+ example: `-----BEGIN CERTIFICATE-----
150
+ MIIC0DCCAbigAwIBAgI...`
151
+ },
152
+ version_current: {
153
+ type: 'string',
154
+ description: 'Current version of the cluster.',
155
+ example: '1.29.3-cfke.52'
156
+ },
157
+ created_at: {
158
+ type: 'string',
159
+ description: 'Creation date and time of the cluster.',
160
+ example: '2024-09-12T09:11:27Z'
161
+ },
162
+ updated_at: {
163
+ type: 'string',
164
+ description: 'Last update date and time of the cluster.',
165
+ example: '2024-09-12T09:11:27Z'
166
+ },
167
+ ready: {
168
+ type: 'boolean',
169
+ description: 'Indicates if the cluster is ready to be used.',
170
+ example: true
171
+ }
172
+ },
173
+ required: ['name', 'tier', 'id', 'status'],
174
+ additionalProperties: false
175
+ };
176
+ export const ClusterUpdateInputSchema = {
177
+ type: 'object',
178
+ properties: {
179
+ name: {
180
+ type: 'string',
181
+ maxLength: 63,
182
+ minLength: 1,
183
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
184
+ description: 'Name of the cluster.',
185
+ example: 'production-cluster'
186
+ },
187
+ version_channel: {
188
+ type: 'string',
189
+ 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
+ description: 'Version of the kubernetes cluster.',
191
+ example: '1.29.x-cfke.x'
192
+ }
193
+ },
194
+ additionalProperties: false
195
+ };
196
+ export const FleetCreateInputSchema = {
197
+ type: 'object',
198
+ properties: {
199
+ limits: {
200
+ type: 'object',
201
+ properties: {
202
+ cpu: {
203
+ type: 'number',
204
+ format: 'float',
205
+ minimum: 0,
206
+ description: 'CPU limit in cores.'
207
+ }
208
+ },
209
+ required: ['cpu'],
210
+ additionalProperties: false,
211
+ description: 'Limits define a set of bounds for provisioning capacity.'
212
+ },
213
+ gcp: {
214
+ type: 'object',
215
+ properties: {
216
+ enabled: {
217
+ type: 'boolean',
218
+ default: true
219
+ },
220
+ project: {
221
+ type: 'string',
222
+ description: 'Project GCP Project id to deploy instances into'
223
+ }
224
+ },
225
+ required: ['project'],
226
+ additionalProperties: false
227
+ },
228
+ 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
242
+ },
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
255
+ }
256
+ ]
257
+ },
258
+ aws: {
259
+ type: 'object',
260
+ properties: {
261
+ enabled: {
262
+ type: 'boolean',
263
+ default: true
264
+ },
265
+ controllerRoleArn: {
266
+ type: 'string',
267
+ description: 'ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.'
268
+ }
269
+ },
270
+ required: ['controllerRoleArn'],
271
+ additionalProperties: false
272
+ },
273
+ id: {
274
+ type: 'string',
275
+ maxLength: 63,
276
+ minLength: 1,
277
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
278
+ description: 'Unique identifier of the kubernetes fleet.',
279
+ 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
+ }
286
+ },
287
+ required: ['id', 'type'],
288
+ additionalProperties: false
289
+ };
290
+ export const FleetSchema = {
291
+ type: 'object',
292
+ properties: {
293
+ limits: {
294
+ type: 'object',
295
+ properties: {
296
+ cpu: {
297
+ type: 'number',
298
+ format: 'float',
299
+ minimum: 0,
300
+ description: 'CPU limit in cores.'
301
+ }
302
+ },
303
+ required: ['cpu'],
304
+ additionalProperties: false,
305
+ description: 'Limits define a set of bounds for provisioning capacity.'
306
+ },
307
+ gcp: {
308
+ type: 'object',
309
+ properties: {
310
+ enabled: {
311
+ type: 'boolean',
312
+ default: true
313
+ },
314
+ project: {
315
+ type: 'string',
316
+ description: 'Project GCP Project id to deploy instances into'
317
+ }
318
+ },
319
+ required: ['project'],
320
+ additionalProperties: false
321
+ },
322
+ 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
336
+ },
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
349
+ }
350
+ ]
351
+ },
352
+ aws: {
353
+ type: 'object',
354
+ properties: {
355
+ enabled: {
356
+ type: 'boolean',
357
+ default: true
358
+ },
359
+ controllerRoleArn: {
360
+ type: 'string',
361
+ description: 'ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.'
362
+ }
363
+ },
364
+ required: ['controllerRoleArn'],
365
+ additionalProperties: false
366
+ },
367
+ id: {
368
+ type: 'string',
369
+ maxLength: 63,
370
+ minLength: 1,
371
+ pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
372
+ description: 'Unique identifier of the kubernetes fleet.',
373
+ 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
+ }
380
+ },
381
+ required: ['id', 'type'],
382
+ additionalProperties: false
383
+ };
384
+ export const FleetUpdateInputSchema = {
385
+ type: 'object',
386
+ properties: {
387
+ limits: {
388
+ type: 'object',
389
+ properties: {
390
+ cpu: {
391
+ type: 'number',
392
+ format: 'float',
393
+ minimum: 0,
394
+ description: 'CPU limit in cores.'
395
+ }
396
+ },
397
+ required: ['cpu'],
398
+ additionalProperties: false,
399
+ description: 'Limits define a set of bounds for provisioning capacity.'
400
+ },
401
+ gcp: {
402
+ type: 'object',
403
+ properties: {
404
+ enabled: {
405
+ type: 'boolean',
406
+ default: true
407
+ },
408
+ project: {
409
+ type: 'string',
410
+ description: 'Project GCP Project id to deploy instances into'
411
+ }
412
+ },
413
+ required: ['project'],
414
+ additionalProperties: false
415
+ },
416
+ 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
430
+ },
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
443
+ }
444
+ ]
445
+ },
446
+ aws: {
447
+ type: 'object',
448
+ properties: {
449
+ enabled: {
450
+ type: 'boolean',
451
+ default: true
452
+ },
453
+ controllerRoleArn: {
454
+ type: 'string',
455
+ description: 'ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.'
456
+ }
457
+ },
458
+ required: ['controllerRoleArn'],
459
+ additionalProperties: false
460
+ }
461
+ },
462
+ additionalProperties: false
463
+ };
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
+ export const InviteSchema = {
735
+ type: 'object',
736
+ properties: {
737
+ id: {
738
+ type: 'string',
739
+ description: 'Unique identifier of the invitation.',
740
+ example: '65831dd20d20165489cbb868'
741
+ },
742
+ organization_id: {
743
+ type: 'string',
744
+ format: 'uuid',
745
+ description: 'Unique identifier of the organization the project belongs to. UUID v4 string in canonical form',
746
+ example: 'e94d30ec-a2dd-4dcb-832c-ac2be144ba91'
747
+ },
748
+ date_created: {
749
+ type: 'string',
750
+ format: 'date-time',
751
+ description: 'Creationg date of the project. ISO 8601 date string in UTC timezone',
752
+ example: '2023-11-02T16:08:14.338Z'
753
+ },
754
+ email: {
755
+ type: 'string',
756
+ format: 'email',
757
+ description: 'User email address.',
758
+ example: 'email@example.com'
759
+ },
760
+ code: {
761
+ type: 'string',
762
+ description: 'Generated unique invite code.',
763
+ example: '7kUZnH7nnKUFfvc4NK2KQF'
764
+ }
765
+ },
766
+ required: ['date_created'],
767
+ additionalProperties: false
768
+ };
769
+ export const InvoiceSchema = {
770
+ type: 'object',
771
+ properties: {
772
+ id: {
773
+ 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'
777
+ },
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'
783
+ },
784
+ status: {
785
+ type: 'string',
786
+ description: 'Status of the invoice',
787
+ example: 'DRAFT',
788
+ enum: ['DRAFT', 'COMMITTED', 'VOID']
789
+ },
790
+ amount: {
791
+ type: 'number',
792
+ format: 'float',
793
+ description: 'Total amount of the invoice',
794
+ example: 100
795
+ },
796
+ currency: {
797
+ type: 'string',
798
+ 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
807
+ },
808
+ refundAdj: {
809
+ type: 'number',
810
+ format: 'float',
811
+ description: 'Total amount of refund adjustments',
812
+ example: 0
813
+ },
814
+ invoiceDate: {
815
+ type: 'string',
816
+ description: 'Date of the invoice',
817
+ example: '2019-01-01T00:00:00.000Z'
818
+ },
819
+ targetDate: {
820
+ type: 'string',
821
+ description: 'Target date of the invoice',
822
+ example: '2019-01-01T00:00:00.000Z'
823
+ },
824
+ invoiceNumber: {
825
+ type: 'string',
826
+ description: 'Number of the invoice',
827
+ example: 'INV-0001'
828
+ },
829
+ balance: {
830
+ type: 'number',
831
+ format: 'float',
832
+ description: 'Balance of the invoice',
833
+ example: 100
834
+ },
835
+ bundleKeys: {
836
+ type: 'string',
837
+ description: 'Bundle keys of the invoice',
838
+ example: 'bundleKey1,bundleKey2'
839
+ },
840
+ credits: {
841
+ type: 'array',
842
+ 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'
861
+ },
862
+ planName: {
863
+ type: 'string',
864
+ description: 'Name of the plan',
865
+ example: 'Plan A'
866
+ },
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
+ }
976
+ },
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
+ ]
1114
+ },
1115
+ description: 'Child items of the invoice item'
1116
+ }
1117
+ },
1118
+ additionalProperties: false
1119
+ },
1120
+ description: 'Items of the invoice'
1121
+ }
1122
+ },
1123
+ additionalProperties: false
1124
+ };
1125
+ export const OrganizationContactInfoSchema = {
1126
+ type: 'object',
1127
+ 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
+ email: {
1171
+ type: 'string',
1172
+ format: 'email',
1173
+ description: 'Email address used for billing as a string.',
1174
+ example: 'email@example.com'
1175
+ },
1176
+ first_name: {
1177
+ type: 'string',
1178
+ description: 'First name of the billing contact person.',
1179
+ example: 'John'
1180
+ },
1181
+ last_name: {
1182
+ type: 'string',
1183
+ description: 'Last name of the billing contact person.',
1184
+ example: 'Doe'
1185
+ }
1186
+ },
1187
+ required: ['email', 'first_name', 'last_name'],
1188
+ additionalProperties: false
1189
+ };
1190
+ export const OrganizationSchema = {
1191
+ type: 'object',
1192
+ properties: {
1193
+ id: {
1194
+ type: 'string',
1195
+ format: 'uuid',
1196
+ description: 'Unique identifier of the organization. UUID v4 string in canonical form',
1197
+ example: 'e94d30ec-a2dd-4dcb-832c-ac2be144ba91'
1198
+ },
1199
+ date_created: {
1200
+ type: 'string',
1201
+ format: 'date-time',
1202
+ description: 'Creationg date of the organization. ISO 8601 date string in UTC timezone',
1203
+ example: '2023-11-02T16:08:14.338Z'
1204
+ },
1205
+ name: {
1206
+ type: 'string',
1207
+ description: 'Name of the legal entity. This name will be used in invoices. Use your first and last name for individual accounts.',
1208
+ example: 'ACME Corp.'
1209
+ },
1210
+ contactInfo: {
1211
+ type: 'object',
1212
+ properties: {
1213
+ address1: {
1214
+ type: 'string',
1215
+ description: 'Street address, P.O. box, c/o',
1216
+ example: '123 Main St.'
1217
+ },
1218
+ address2: {
1219
+ type: 'string',
1220
+ description: 'Apartment, suite, unit, building, floor, etc.',
1221
+ example: 'Suite 100'
1222
+ },
1223
+ postalCode: {
1224
+ type: 'string',
1225
+ description: 'Postal code as a string.',
1226
+ example: '94105'
1227
+ },
1228
+ city: {
1229
+ type: 'string',
1230
+ description: 'City or town name.',
1231
+ example: 'San Francisco'
1232
+ },
1233
+ state: {
1234
+ type: 'string',
1235
+ description: 'State, province, or region name.',
1236
+ example: 'CA'
1237
+ },
1238
+ country: {
1239
+ type: 'string',
1240
+ description: 'Country as a ISO 3166-1 alpha-2 country code.',
1241
+ example: 'US'
1242
+ },
1243
+ phone: {
1244
+ type: 'string',
1245
+ description: 'Phone number as a string.',
1246
+ example: '+1 555 555 5555'
1247
+ },
1248
+ email: {
1249
+ type: 'string',
1250
+ format: 'email',
1251
+ description: 'Email address used for billing as a string.',
1252
+ example: 'email@example.com'
1253
+ },
1254
+ first_name: {
1255
+ type: 'string',
1256
+ description: 'First name of the billing contact person.',
1257
+ example: 'John'
1258
+ },
1259
+ last_name: {
1260
+ type: 'string',
1261
+ description: 'Last name of the billing contact person.',
1262
+ example: 'Doe'
1263
+ }
1264
+ },
1265
+ required: ['email', 'first_name', 'last_name'],
1266
+ additionalProperties: false,
1267
+ description: 'Organization contact information and billing address.'
1268
+ },
1269
+ quota: {
1270
+ type: 'object',
1271
+ properties: {
1272
+ basic_clusters_max: {
1273
+ type: 'integer',
1274
+ minimum: 0,
1275
+ description: 'Maximum number of Basic clusters that can be created.',
1276
+ example: 999
1277
+ },
1278
+ basic_clusters_available: {
1279
+ type: 'integer',
1280
+ description: 'Available number of Basic clusters that can be created.',
1281
+ example: 999
1282
+ },
1283
+ pro_clusters_max: {
1284
+ type: 'integer',
1285
+ minimum: 0,
1286
+ description: 'Maximum number of Pro clusters that can be created.',
1287
+ example: 999
1288
+ },
1289
+ pro_clusters_available: {
1290
+ type: 'integer',
1291
+ description: 'Available number of Pro clusters that can be created.',
1292
+ example: 999
1293
+ },
1294
+ fleets_max: {
1295
+ type: 'integer',
1296
+ minimum: 0,
1297
+ description: 'Maximum number of fleets that can be created per cluster.',
1298
+ example: 999
1299
+ },
1300
+ managed_fleets_cpu_max: {
1301
+ type: 'integer',
1302
+ minimum: 0,
1303
+ description: 'Maximum number of CPU cores per managed fleet.',
1304
+ example: 999
1305
+ },
1306
+ cluster_tiers: {
1307
+ type: 'array',
1308
+ items: {
1309
+ type: 'string',
1310
+ example: 'basic'
1311
+ },
1312
+ minItems: 0,
1313
+ description: 'List of Cloudfleet cluster tiers available for the organization.'
1314
+ },
1315
+ regions: {
1316
+ type: 'array',
1317
+ items: {
1318
+ type: 'string',
1319
+ example: 'northamerica-central-1'
1320
+ },
1321
+ minItems: 1,
1322
+ description: 'List of Cloudfleet control plane regions available for the organization.'
1323
+ },
1324
+ versions: {
1325
+ type: 'array',
1326
+ items: {
1327
+ type: 'object',
1328
+ properties: {
1329
+ id: {
1330
+ type: 'string',
1331
+ description: 'Id of the control plane version. Used in API calls.',
1332
+ example: '1.29.x-cfke.x'
1333
+ },
1334
+ label: {
1335
+ type: 'string',
1336
+ description: 'Label of the control plane version. Used in frontent UI.',
1337
+ example: '1.29.x (Always latest 1.29 patch version)'
1338
+ }
1339
+ },
1340
+ required: ['id', 'label'],
1341
+ additionalProperties: false
1342
+ },
1343
+ minItems: 1,
1344
+ description: 'List of CFKE control plane versions available for the organization.'
1345
+ }
1346
+ },
1347
+ required: ['basic_clusters_max', 'basic_clusters_available', 'pro_clusters_max', 'pro_clusters_available', 'fleets_max', 'managed_fleets_cpu_max', 'cluster_tiers', 'regions', 'versions'],
1348
+ additionalProperties: false,
1349
+ 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.'
1350
+ },
1351
+ pending_actions: {
1352
+ type: 'array',
1353
+ items: {
1354
+ type: 'string',
1355
+ example: 'signup-payment-method',
1356
+ enum: ['signup-billing-address', 'signup-payment-method', 'signup-invite-team', 'signup-create-cluster']
1357
+ },
1358
+ description: 'List of pending actions that the user needs to complete. Used in Cloudfleet console to guide the user through the onboarding process.'
1359
+ },
1360
+ status: {
1361
+ type: 'string',
1362
+ description: 'Status of the organization. Can be `active` or `closed`, or `suspended`.',
1363
+ enum: ['active', 'closed', 'suspended']
1364
+ }
1365
+ },
1366
+ required: ['date_created', 'contactInfo', 'quota'],
1367
+ additionalProperties: false
1368
+ };
1369
+ export const PaymentMethodSchema = {
1370
+ type: 'object',
1371
+ properties: {
1372
+ id: {
1373
+ type: 'string',
1374
+ format: 'uuid',
1375
+ description: 'Unique identifier of the organization. UUID v4 string in canonical form.',
1376
+ example: 'e94d30ec-a2dd-4dcb-832c-ac2be144ba91'
1377
+ },
1378
+ setup: {
1379
+ type: 'boolean',
1380
+ description: 'Whether organization payment method was set up and ready to use for payments.',
1381
+ example: true
1382
+ },
1383
+ type: {
1384
+ type: 'string',
1385
+ nullable: true,
1386
+ description: 'Payment method type type. Only `card` payments supported at the moment.',
1387
+ example: 'card',
1388
+ enum: ['card']
1389
+ },
1390
+ last4: {
1391
+ type: 'string',
1392
+ nullable: true,
1393
+ description: 'Last 4 digits of the payment card number.',
1394
+ example: '4242'
1395
+ },
1396
+ exp_month: {
1397
+ type: 'integer',
1398
+ minimum: 1,
1399
+ maximum: 12,
1400
+ nullable: true,
1401
+ description: "Two-digit number representing the card's expiration month.",
1402
+ example: '12'
1403
+ },
1404
+ exp_year: {
1405
+ type: 'integer',
1406
+ minimum: 2024,
1407
+ nullable: true,
1408
+ description: "Four-digit number representing the card's expiration year.",
1409
+ example: '2028'
1410
+ },
1411
+ brand: {
1412
+ type: 'string',
1413
+ nullable: true,
1414
+ description: 'Payment card brand. Can be `amex`, `diners`, `discover`, `eftpos_au`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown`.',
1415
+ example: 'visa',
1416
+ enum: ['amex', 'diners', 'discover', 'eftpos_au', 'jcb', 'mastercard', 'unionpay', 'visa', 'unknown']
1417
+ }
1418
+ },
1419
+ required: ['id', 'setup', 'type', 'last4', 'exp_month', 'exp_year', 'brand'],
1420
+ additionalProperties: false
1421
+ };
1422
+ export const TokenSchema = {
1423
+ type: 'object',
1424
+ properties: {
1425
+ id: {
1426
+ type: 'string',
1427
+ description: 'Generated unique identifier of the access token.',
1428
+ example: '7kUZnH7nnKUFfvc4NK2KQF'
1429
+ },
1430
+ secret: {
1431
+ type: 'string',
1432
+ format: 'uuid',
1433
+ description: 'Access token secret. Unmasked only during creation.',
1434
+ example: 'vq4SCMBsrgmBxbax80WDXuXoFNZAckI8'
1435
+ },
1436
+ name: {
1437
+ type: 'string',
1438
+ description: 'Human readable access token name.',
1439
+ example: 'CI/CD token'
1440
+ },
1441
+ date_created: {
1442
+ type: 'string',
1443
+ format: 'date-time',
1444
+ description: 'Creationg date of the access token. ISO 8601 date string in UTC timezone',
1445
+ example: '2023-12-20T13:53:32.000Z'
1446
+ },
1447
+ role: {
1448
+ type: 'string',
1449
+ description: 'Role assumed by the token.',
1450
+ enum: ['Administrator', 'User']
1451
+ }
1452
+ },
1453
+ required: ['date_created'],
1454
+ additionalProperties: false
1455
+ };
1456
+ export const UsageSchema = {
1457
+ type: 'object',
1458
+ properties: {
1459
+ id: {
1460
+ type: 'string',
1461
+ format: 'uuid',
1462
+ description: 'Unique identifier of the Usage object, equal to subscription id of the task . UUID v4 string in canonical form',
1463
+ example: '8897e84c-2ba1-42fa-9d35-964c80a4ff0f'
1464
+ },
1465
+ task_id: {
1466
+ type: 'string',
1467
+ format: 'uuid',
1468
+ description: 'Unique identifier of the project. UUID v4 string in canonical form',
1469
+ example: '415026b6-f00f-44f8-968d-fc6ef4d0fc6d'
1470
+ },
1471
+ unit: {
1472
+ type: 'string',
1473
+ description: 'Unit of measurement. E.g. GiB, seconds, etc',
1474
+ example: 'second'
1475
+ },
1476
+ amount: {
1477
+ type: 'number',
1478
+ format: 'float'
1479
+ }
1480
+ },
1481
+ required: ['id', 'task_id', 'unit', 'amount'],
1482
+ additionalProperties: false
1483
+ };
1484
+ export const UserSchema = {
1485
+ type: 'object',
1486
+ properties: {
1487
+ id: {
1488
+ type: 'string',
1489
+ format: 'uuid',
1490
+ description: 'Unique identifier of the user. UUID v4 string in canonical form',
1491
+ example: 'e94d30ec-a2dd-4dcb-832c-ac2be144ba91'
1492
+ },
1493
+ date_created: {
1494
+ type: 'string',
1495
+ format: 'date-time',
1496
+ description: 'Creationg date of the user. ISO 8601 date string in UTC timezone',
1497
+ example: '2023-11-02T16:08:14.338Z'
1498
+ },
1499
+ email: {
1500
+ type: 'string',
1501
+ format: 'email',
1502
+ description: 'User email address.',
1503
+ example: 'email@example.com'
1504
+ },
1505
+ first_name: {
1506
+ type: 'string',
1507
+ description: 'User first name.',
1508
+ example: 'John'
1509
+ },
1510
+ last_name: {
1511
+ type: 'string',
1512
+ description: 'User last name.',
1513
+ example: 'Doe'
1514
+ },
1515
+ role: {
1516
+ type: 'string',
1517
+ description: "User role. Can be 'Administrator', 'User'.",
1518
+ example: 'User',
1519
+ enum: ['Administrator', 'User']
1520
+ },
1521
+ cluster_permissions: {
1522
+ type: 'array',
1523
+ items: {
1524
+ type: 'object',
1525
+ properties: {
1526
+ cluster_id: {
1527
+ type: 'string',
1528
+ format: 'uuid',
1529
+ description: 'Unique identifier of the cluster. UUID v4 string in canonical form',
1530
+ example: '035ce46d-44d8-4e58-a8a2-b0192d1c27df'
1531
+ },
1532
+ permissions: {
1533
+ type: 'string',
1534
+ description: 'User permissions to access the cluster. Can be `readwrite` or `readonly`.',
1535
+ example: 'readwrite',
1536
+ enum: ['readwrite', 'readonly']
1537
+ }
1538
+ },
1539
+ required: ['cluster_id', 'permissions'],
1540
+ additionalProperties: false
1541
+ }
1542
+ },
1543
+ status: {
1544
+ type: 'string',
1545
+ description: 'Status of the user. Can be `active` or `inactive`. Inactive users cannot log in or manage organization resources.',
1546
+ example: 'active',
1547
+ enum: ['active', 'inactive']
1548
+ }
1549
+ },
1550
+ required: ['date_created'],
1551
+ additionalProperties: false
1552
+ };
1553
+ //# sourceMappingURL=schemas.gen.js.map