@cloudfleet/sdk 0.0.1-4943b4e → 0.0.1-4adea55

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.
package/dist/zod.gen.js CHANGED
@@ -1,6 +1,7 @@
1
1
  // This file is auto-generated by @hey-api/openapi-ts
2
2
  import * as z from 'zod';
3
3
  export const zBillingContact = z.object({
4
+ type: z.enum(['business', 'personal']),
4
5
  company: z.string().min(2).max(120).regex(/^(?!\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,}$/).optional(),
5
6
  address1: z.string().optional(),
6
7
  address2: z.string().optional(),
@@ -166,22 +167,7 @@ export const zChart = z.object({
166
167
  name: z.string().min(1).max(63).regex(/^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/),
167
168
  namespace: z.string().min(1).max(63).regex(/^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/),
168
169
  chart: z.string().min(1).max(63).regex(/^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/),
169
- status: z.enum([
170
- 'InstallSucceeded',
171
- 'InstallFailed',
172
- 'UpgradeSucceeded',
173
- 'UpgradeFailed',
174
- 'TestSucceeded',
175
- 'TestFailed',
176
- 'RollbackSucceeded',
177
- 'RollbackFailed',
178
- 'UninstallSucceeded',
179
- 'UninstallFailed',
180
- 'ArtifactFailed',
181
- 'DependencyNotReady',
182
- 'Progressing',
183
- 'SourceNotReady'
184
- ]),
170
+ status: z.string(),
185
171
  version_current: z.string(),
186
172
  created_at: z.string(),
187
173
  updated_at: z.string(),
@@ -191,26 +177,55 @@ export const zChartUpdateInput = z.object({
191
177
  values: z.string(),
192
178
  version_channel: z.string().regex(/^(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-]+)*))?$/)
193
179
  });
180
+ /**
181
+ * Mutable cluster configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.
182
+ */
194
183
  export const zClusterCreateInput = z.object({
195
184
  name: z.string().min(1).max(63).regex(/^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/),
196
- tier: z.enum(['basic', 'pro']),
197
- region: z.enum([
198
- 'staging-1a',
199
- 'northamerica-central-1',
200
- 'europe-central-1a',
201
- 'northamerica-central-1a'
202
- ]).optional().default('staging-1a'),
203
- version_channel: z.enum([
204
- '1.x.x-cfke.x',
205
- '1.31.x-cfke.x',
206
- '1.32.x-cfke.x',
207
- '1.33.x-cfke.x'
208
- ]).optional().default('1.x.x-cfke.x')
185
+ tier: z.enum([
186
+ 'basic',
187
+ 'pro',
188
+ 'enterprise'
189
+ ]).optional().default('basic'),
190
+ version_channel: z.string().regex(/^(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-]+)*))?$/).optional().default('1.x.x-cfke.x'),
191
+ release_channel: z.enum([
192
+ 'rapid',
193
+ 'stable',
194
+ 'extended'
195
+ ]).optional().default('rapid'),
196
+ features: z.object({
197
+ gpu_sharing_strategy: z.enum([
198
+ 'none',
199
+ 'mps',
200
+ 'time_slicing'
201
+ ]).optional().default('none'),
202
+ gpu_max_shared_clients_per_gpu: z.int().gte(2).lte(48).optional().default(4),
203
+ cilium_socket_lb_host_namespace_only: z.boolean().optional()
204
+ }).optional().default({
205
+ gpu_sharing_strategy: 'none',
206
+ gpu_max_shared_clients_per_gpu: 4,
207
+ cilium_socket_lb_host_namespace_only: false
208
+ }),
209
+ region: z.string(),
210
+ networking: z.object({
211
+ pod_cidr: z.string().optional().default('10.244.0.0/16'),
212
+ service_cidr: z.string().optional().default('10.96.0.0/12'),
213
+ dual_stack: z.boolean().optional(),
214
+ pod_cidr_v6: z.string().optional().default('2001:db8:1:2::/48'),
215
+ service_cidr_v6: z.string().optional().default('2001:db8:1:1::/112')
216
+ }).optional().default({
217
+ pod_cidr: '10.244.0.0/16',
218
+ service_cidr: '10.96.0.0/12',
219
+ dual_stack: false,
220
+ pod_cidr_v6: '2001:db8:1:2::/48',
221
+ service_cidr_v6: '2001:db8:1:1::/112'
222
+ })
209
223
  });
210
224
  export const zClusterJoinInformation = z.object({
211
225
  certificate_authority: z.string(),
212
226
  endpoint: z.url(),
213
227
  cluster_dns: z.string(),
228
+ pod_cidr: z.string(),
214
229
  auth_key: z.string(),
215
230
  bootstrap_token: z.string(),
216
231
  versions: z.object({
@@ -225,100 +240,885 @@ export const zClusterJoinInformation = z.object({
225
240
  gcp_workload_identity_provider: z.string()
226
241
  })
227
242
  });
243
+ /**
244
+ * Mutable cluster configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.
245
+ */
228
246
  export const zCluster = z.object({
229
247
  name: z.string().min(1).max(63).regex(/^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/),
230
- tier: z.enum(['basic', 'pro']),
231
- region: z.enum([
232
- 'staging-1a',
233
- 'northamerica-central-1',
234
- 'europe-central-1a',
235
- 'northamerica-central-1a'
236
- ]).optional().default('staging-1a'),
248
+ tier: z.enum([
249
+ 'basic',
250
+ 'pro',
251
+ 'enterprise'
252
+ ]).default('basic'),
253
+ version_channel: z.string().regex(/^(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-]+)*))?$/).default('1.x.x-cfke.x'),
254
+ release_channel: z.enum([
255
+ 'rapid',
256
+ 'stable',
257
+ 'extended'
258
+ ]).default('rapid'),
259
+ features: z.object({
260
+ gpu_sharing_strategy: z.enum([
261
+ 'none',
262
+ 'mps',
263
+ 'time_slicing'
264
+ ]).default('none'),
265
+ gpu_max_shared_clients_per_gpu: z.int().gte(2).lte(48).default(4),
266
+ cilium_socket_lb_host_namespace_only: z.boolean()
267
+ }).default({
268
+ gpu_sharing_strategy: 'none',
269
+ gpu_max_shared_clients_per_gpu: 4,
270
+ cilium_socket_lb_host_namespace_only: false
271
+ }),
272
+ region: z.string(),
273
+ networking: z.object({
274
+ pod_cidr: z.string().default('10.244.0.0/16'),
275
+ service_cidr: z.string().default('10.96.0.0/12'),
276
+ dual_stack: z.boolean(),
277
+ pod_cidr_v6: z.string().default('2001:db8:1:2::/48'),
278
+ service_cidr_v6: z.string().default('2001:db8:1:1::/112')
279
+ }).default({
280
+ pod_cidr: '10.244.0.0/16',
281
+ service_cidr: '10.96.0.0/12',
282
+ dual_stack: false,
283
+ pod_cidr_v6: '2001:db8:1:2::/48',
284
+ service_cidr_v6: '2001:db8:1:1::/112'
285
+ }),
237
286
  id: z.uuid(),
238
287
  status: z.enum([
239
- 'active',
240
- 'disabled',
241
- 'deleted',
242
288
  'creating',
243
289
  'deployed',
244
- 'failed',
245
- 'updating'
290
+ 'updating',
291
+ 'disabled'
246
292
  ]),
247
293
  endpoint: z.union([
248
294
  z.url(),
249
295
  z.enum([''])
250
296
  ]).optional(),
297
+ endpoint_public: z.union([
298
+ z.url(),
299
+ z.enum([''])
300
+ ]).optional(),
251
301
  certificate_ca: z.string().optional(),
252
302
  version_current: z.string().optional(),
253
303
  created_at: z.string().optional(),
254
304
  updated_at: z.string().optional(),
255
- ready: z.boolean().optional(),
256
- version_channel: z.string().regex(/^(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-]+)*))?$/).optional()
305
+ ready: z.boolean()
257
306
  });
307
+ /**
308
+ * Mutable cluster configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.
309
+ */
258
310
  export const zClusterUpdateInput = z.object({
259
- name: z.string().min(1).max(63).regex(/^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/).optional(),
260
- tier: z.enum(['basic', 'pro']),
261
- version_channel: z.string().regex(/^(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-]+)*))?$/).optional()
311
+ name: z.string().min(1).max(63).regex(/^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/),
312
+ tier: z.enum([
313
+ 'basic',
314
+ 'pro',
315
+ 'enterprise'
316
+ ]).optional().default('basic'),
317
+ version_channel: z.string().regex(/^(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-]+)*))?$/).optional().default('1.x.x-cfke.x'),
318
+ release_channel: z.enum([
319
+ 'rapid',
320
+ 'stable',
321
+ 'extended'
322
+ ]).optional().default('rapid'),
323
+ features: z.object({
324
+ gpu_sharing_strategy: z.enum([
325
+ 'none',
326
+ 'mps',
327
+ 'time_slicing'
328
+ ]).optional().default('none'),
329
+ gpu_max_shared_clients_per_gpu: z.int().gte(2).lte(48).optional().default(4),
330
+ cilium_socket_lb_host_namespace_only: z.boolean().optional()
331
+ }).optional().default({
332
+ gpu_sharing_strategy: 'none',
333
+ gpu_max_shared_clients_per_gpu: 4,
334
+ cilium_socket_lb_host_namespace_only: false
335
+ })
262
336
  });
337
+ /**
338
+ * Mutable fleet configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.
339
+ */
263
340
  export const zFleetCreateInput = z.object({
264
341
  limits: z.object({
265
- cpu: z.number().gte(0)
342
+ cpu: z.int().gte(0).lte(100000).optional()
266
343
  }).optional(),
267
344
  gcp: z.object({
268
- enabled: z.boolean().optional().default(true),
269
- project: z.string()
345
+ enabled: z.boolean(),
346
+ project: z.string().regex(/^[a-z][a-z0-9-]{4,28}[a-z0-9]$/).optional()
270
347
  }).optional(),
271
348
  hetzner: z.object({
272
- enabled: z.boolean().optional().default(true),
273
- apiKey: z.string()
349
+ enabled: z.boolean(),
350
+ apiKey: z.string().length(64).regex(/^([A-Za-z0-9]{64}|\*{64})$/).optional()
274
351
  }).optional(),
275
352
  aws: z.object({
276
- enabled: z.boolean().optional().default(true),
277
- controllerRoleArn: z.string()
353
+ enabled: z.boolean(),
354
+ controllerRoleArn: z.string().regex(/^arn:aws(-[a-z]+)*:iam::\d{12}:role\/[\w+=,.@\/-]+$/).optional()
278
355
  }).optional(),
356
+ constraints: z.object({
357
+ 'karpenter.sh/capacity-type': z.array(z.enum(['on-demand', 'spot'])).min(1).optional().default(['on-demand', 'spot']),
358
+ 'kubernetes.io/arch': z.array(z.enum(['amd64', 'arm64'])).min(1).optional().default(['amd64']),
359
+ 'cfke.io/instance-family': z.array(z.enum([
360
+ 'a1',
361
+ 'a2',
362
+ 'a3',
363
+ 'a4',
364
+ 'c1',
365
+ 'c2',
366
+ 'c2d',
367
+ 'c3',
368
+ 'c3d',
369
+ 'c4',
370
+ 'c4a',
371
+ 'c4d',
372
+ 'c5',
373
+ 'c5a',
374
+ 'c5ad',
375
+ 'c5d',
376
+ 'c5n',
377
+ 'c6a',
378
+ 'c6g',
379
+ 'c6gd',
380
+ 'c6gn',
381
+ 'c6i',
382
+ 'c6id',
383
+ 'c6in',
384
+ 'c7a',
385
+ 'c7g',
386
+ 'c7gd',
387
+ 'c7gn',
388
+ 'c7i',
389
+ 'c7i-flex',
390
+ 'c8g',
391
+ 'c8gd',
392
+ 'cax',
393
+ 'ccx',
394
+ 'cpx',
395
+ 'cx',
396
+ 'd2',
397
+ 'd3',
398
+ 'd3en',
399
+ 'dl1',
400
+ 'dl2q',
401
+ 'e2',
402
+ 'f1',
403
+ 'f2',
404
+ 'g1',
405
+ 'g2',
406
+ 'g4ad',
407
+ 'g4dn',
408
+ 'g5',
409
+ 'g5g',
410
+ 'g6',
411
+ 'g6e',
412
+ 'gr6',
413
+ 'h1',
414
+ 'h3',
415
+ 'hpc6a',
416
+ 'hpc6id',
417
+ 'hpc7a',
418
+ 'hpc7g',
419
+ 'i2',
420
+ 'i3',
421
+ 'i3en',
422
+ 'i4g',
423
+ 'i4i',
424
+ 'i7i',
425
+ 'i7ie',
426
+ 'i8g',
427
+ 'im4gn',
428
+ 'inf1',
429
+ 'inf2',
430
+ 'is4gen',
431
+ 'm1',
432
+ 'm2',
433
+ 'm3',
434
+ 'm4',
435
+ 'm5',
436
+ 'm5a',
437
+ 'm5ad',
438
+ 'm5d',
439
+ 'm5dn',
440
+ 'm5n',
441
+ 'm5zn',
442
+ 'm6a',
443
+ 'm6g',
444
+ 'm6gd',
445
+ 'm6i',
446
+ 'm6id',
447
+ 'm6idn',
448
+ 'm6in',
449
+ 'm7a',
450
+ 'm7g',
451
+ 'm7gd',
452
+ 'm7i',
453
+ 'm7i-flex',
454
+ 'm8g',
455
+ 'm8gd',
456
+ 'n1',
457
+ 'n2',
458
+ 'n2d',
459
+ 'n4',
460
+ 'p3',
461
+ 'p3dn',
462
+ 'p4d',
463
+ 'p4de',
464
+ 'p5',
465
+ 'p5e',
466
+ 'p5en',
467
+ 'p6-b200',
468
+ 'r3',
469
+ 'r4',
470
+ 'r5',
471
+ 'r5a',
472
+ 'r5ad',
473
+ 'r5b',
474
+ 'r5d',
475
+ 'r5dn',
476
+ 'r5n',
477
+ 'r6a',
478
+ 'r6g',
479
+ 'r6gd',
480
+ 'r6i',
481
+ 'r6id',
482
+ 'r6idn',
483
+ 'r6in',
484
+ 'r7a',
485
+ 'r7g',
486
+ 'r7gd',
487
+ 'r7i',
488
+ 'r7iz',
489
+ 'r8g',
490
+ 'r8gd',
491
+ 't2',
492
+ 't2a',
493
+ 't2d',
494
+ 't3',
495
+ 't3a',
496
+ 't4g',
497
+ 'trn1',
498
+ 'trn1n',
499
+ 'u-3tb1',
500
+ 'u-6tb1',
501
+ 'u7i-12tb',
502
+ 'u7i-6tb',
503
+ 'u7i-8tb',
504
+ 'u7in-16tb',
505
+ 'u7in-24tb',
506
+ 'u7in-32tb',
507
+ 'vt1',
508
+ 'x1',
509
+ 'x1e',
510
+ 'x2gd',
511
+ 'x2idn',
512
+ 'x2iedn',
513
+ 'x2iezn',
514
+ 'x4',
515
+ 'x8g',
516
+ 'z1d',
517
+ 'z3'
518
+ ])).optional().default([]),
519
+ 'topology.kubernetes.io/region': z.array(z.enum([
520
+ 'africa-south1',
521
+ 'ap-northeast-1',
522
+ 'ap-northeast-2',
523
+ 'ap-northeast-3',
524
+ 'ap-south-1',
525
+ 'ap-southeast-1',
526
+ 'ap-southeast-2',
527
+ 'ash',
528
+ 'asia-east1',
529
+ 'asia-east2',
530
+ 'asia-northeast1',
531
+ 'asia-northeast2',
532
+ 'asia-northeast3',
533
+ 'asia-south1',
534
+ 'asia-south2',
535
+ 'asia-southeast1',
536
+ 'asia-southeast2',
537
+ 'australia-southeast1',
538
+ 'australia-southeast2',
539
+ 'ca-central-1',
540
+ 'eu-central-1',
541
+ 'eu-central-2',
542
+ 'eu-north-1',
543
+ 'eu-west-1',
544
+ 'eu-west-2',
545
+ 'eu-west-3',
546
+ 'europe-central2',
547
+ 'europe-north1',
548
+ 'europe-southwest1',
549
+ 'europe-west1',
550
+ 'europe-west10',
551
+ 'europe-west12',
552
+ 'europe-west2',
553
+ 'europe-west3',
554
+ 'europe-west4',
555
+ 'europe-west6',
556
+ 'europe-west8',
557
+ 'europe-west9',
558
+ 'fsn1',
559
+ 'hel1',
560
+ 'hil',
561
+ 'me-central1',
562
+ 'me-central2',
563
+ 'me-west1',
564
+ 'nbg1',
565
+ 'northamerica-northeast1',
566
+ 'northamerica-northeast2',
567
+ 'sa-east-1',
568
+ 'sin',
569
+ 'southamerica-east1',
570
+ 'southamerica-west1',
571
+ 'us-central1',
572
+ 'us-east-1',
573
+ 'us-east-2',
574
+ 'us-east1',
575
+ 'us-east4',
576
+ 'us-east5',
577
+ 'us-south1',
578
+ 'us-west-1',
579
+ 'us-west-2',
580
+ 'us-west1',
581
+ 'us-west2',
582
+ 'us-west3',
583
+ 'us-west4'
584
+ ])).optional().default([])
585
+ }).optional().default({
586
+ 'karpenter.sh/capacity-type': ['on-demand', 'spot'],
587
+ 'kubernetes.io/arch': ['amd64'],
588
+ 'cfke.io/instance-family': [],
589
+ 'topology.kubernetes.io/region': []
590
+ }),
591
+ scalingProfile: z.enum(['aggressive', 'conservative']).optional().default('conservative'),
279
592
  id: z.string().min(1).max(63).regex(/^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/)
280
593
  });
594
+ /**
595
+ * Mutable fleet configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.
596
+ */
281
597
  export const zFleet = z.object({
282
598
  limits: z.object({
283
- cpu: z.number().gte(0)
599
+ cpu: z.int().gte(0).lte(100000).optional()
284
600
  }).optional(),
285
601
  gcp: z.object({
286
- enabled: z.boolean().optional().default(true),
287
- project: z.string()
602
+ enabled: z.boolean(),
603
+ project: z.string().regex(/^[a-z][a-z0-9-]{4,28}[a-z0-9]$/).optional()
288
604
  }).optional(),
289
605
  hetzner: z.object({
290
- enabled: z.boolean().optional().default(true),
291
- apiKey: z.string()
606
+ enabled: z.boolean(),
607
+ apiKey: z.string().regex(/^\*{64}$/).optional()
292
608
  }).optional(),
293
609
  aws: z.object({
294
- enabled: z.boolean().optional().default(true),
295
- controllerRoleArn: z.string()
610
+ enabled: z.boolean(),
611
+ controllerRoleArn: z.string().regex(/^arn:aws(-[a-z]+)*:iam::\d{12}:role\/[\w+=,.@\/-]+$/).optional()
296
612
  }).optional(),
297
- id: z.string().min(1).max(63).regex(/^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/)
613
+ constraints: z.object({
614
+ 'karpenter.sh/capacity-type': z.array(z.enum(['on-demand', 'spot'])).min(1).default(['on-demand', 'spot']),
615
+ 'kubernetes.io/arch': z.array(z.enum(['amd64', 'arm64'])).min(1).default(['amd64']),
616
+ 'cfke.io/instance-family': z.array(z.enum([
617
+ 'a1',
618
+ 'a2',
619
+ 'a3',
620
+ 'a4',
621
+ 'c1',
622
+ 'c2',
623
+ 'c2d',
624
+ 'c3',
625
+ 'c3d',
626
+ 'c4',
627
+ 'c4a',
628
+ 'c4d',
629
+ 'c5',
630
+ 'c5a',
631
+ 'c5ad',
632
+ 'c5d',
633
+ 'c5n',
634
+ 'c6a',
635
+ 'c6g',
636
+ 'c6gd',
637
+ 'c6gn',
638
+ 'c6i',
639
+ 'c6id',
640
+ 'c6in',
641
+ 'c7a',
642
+ 'c7g',
643
+ 'c7gd',
644
+ 'c7gn',
645
+ 'c7i',
646
+ 'c7i-flex',
647
+ 'c8g',
648
+ 'c8gd',
649
+ 'cax',
650
+ 'ccx',
651
+ 'cpx',
652
+ 'cx',
653
+ 'd2',
654
+ 'd3',
655
+ 'd3en',
656
+ 'dl1',
657
+ 'dl2q',
658
+ 'e2',
659
+ 'f1',
660
+ 'f2',
661
+ 'g1',
662
+ 'g2',
663
+ 'g4ad',
664
+ 'g4dn',
665
+ 'g5',
666
+ 'g5g',
667
+ 'g6',
668
+ 'g6e',
669
+ 'gr6',
670
+ 'h1',
671
+ 'h3',
672
+ 'hpc6a',
673
+ 'hpc6id',
674
+ 'hpc7a',
675
+ 'hpc7g',
676
+ 'i2',
677
+ 'i3',
678
+ 'i3en',
679
+ 'i4g',
680
+ 'i4i',
681
+ 'i7i',
682
+ 'i7ie',
683
+ 'i8g',
684
+ 'im4gn',
685
+ 'inf1',
686
+ 'inf2',
687
+ 'is4gen',
688
+ 'm1',
689
+ 'm2',
690
+ 'm3',
691
+ 'm4',
692
+ 'm5',
693
+ 'm5a',
694
+ 'm5ad',
695
+ 'm5d',
696
+ 'm5dn',
697
+ 'm5n',
698
+ 'm5zn',
699
+ 'm6a',
700
+ 'm6g',
701
+ 'm6gd',
702
+ 'm6i',
703
+ 'm6id',
704
+ 'm6idn',
705
+ 'm6in',
706
+ 'm7a',
707
+ 'm7g',
708
+ 'm7gd',
709
+ 'm7i',
710
+ 'm7i-flex',
711
+ 'm8g',
712
+ 'm8gd',
713
+ 'n1',
714
+ 'n2',
715
+ 'n2d',
716
+ 'n4',
717
+ 'p3',
718
+ 'p3dn',
719
+ 'p4d',
720
+ 'p4de',
721
+ 'p5',
722
+ 'p5e',
723
+ 'p5en',
724
+ 'p6-b200',
725
+ 'r3',
726
+ 'r4',
727
+ 'r5',
728
+ 'r5a',
729
+ 'r5ad',
730
+ 'r5b',
731
+ 'r5d',
732
+ 'r5dn',
733
+ 'r5n',
734
+ 'r6a',
735
+ 'r6g',
736
+ 'r6gd',
737
+ 'r6i',
738
+ 'r6id',
739
+ 'r6idn',
740
+ 'r6in',
741
+ 'r7a',
742
+ 'r7g',
743
+ 'r7gd',
744
+ 'r7i',
745
+ 'r7iz',
746
+ 'r8g',
747
+ 'r8gd',
748
+ 't2',
749
+ 't2a',
750
+ 't2d',
751
+ 't3',
752
+ 't3a',
753
+ 't4g',
754
+ 'trn1',
755
+ 'trn1n',
756
+ 'u-3tb1',
757
+ 'u-6tb1',
758
+ 'u7i-12tb',
759
+ 'u7i-6tb',
760
+ 'u7i-8tb',
761
+ 'u7in-16tb',
762
+ 'u7in-24tb',
763
+ 'u7in-32tb',
764
+ 'vt1',
765
+ 'x1',
766
+ 'x1e',
767
+ 'x2gd',
768
+ 'x2idn',
769
+ 'x2iedn',
770
+ 'x2iezn',
771
+ 'x4',
772
+ 'x8g',
773
+ 'z1d',
774
+ 'z3'
775
+ ])).optional().default([]),
776
+ 'topology.kubernetes.io/region': z.array(z.enum([
777
+ 'africa-south1',
778
+ 'ap-northeast-1',
779
+ 'ap-northeast-2',
780
+ 'ap-northeast-3',
781
+ 'ap-south-1',
782
+ 'ap-southeast-1',
783
+ 'ap-southeast-2',
784
+ 'ash',
785
+ 'asia-east1',
786
+ 'asia-east2',
787
+ 'asia-northeast1',
788
+ 'asia-northeast2',
789
+ 'asia-northeast3',
790
+ 'asia-south1',
791
+ 'asia-south2',
792
+ 'asia-southeast1',
793
+ 'asia-southeast2',
794
+ 'australia-southeast1',
795
+ 'australia-southeast2',
796
+ 'ca-central-1',
797
+ 'eu-central-1',
798
+ 'eu-central-2',
799
+ 'eu-north-1',
800
+ 'eu-west-1',
801
+ 'eu-west-2',
802
+ 'eu-west-3',
803
+ 'europe-central2',
804
+ 'europe-north1',
805
+ 'europe-southwest1',
806
+ 'europe-west1',
807
+ 'europe-west10',
808
+ 'europe-west12',
809
+ 'europe-west2',
810
+ 'europe-west3',
811
+ 'europe-west4',
812
+ 'europe-west6',
813
+ 'europe-west8',
814
+ 'europe-west9',
815
+ 'fsn1',
816
+ 'hel1',
817
+ 'hil',
818
+ 'me-central1',
819
+ 'me-central2',
820
+ 'me-west1',
821
+ 'nbg1',
822
+ 'northamerica-northeast1',
823
+ 'northamerica-northeast2',
824
+ 'sa-east-1',
825
+ 'sin',
826
+ 'southamerica-east1',
827
+ 'southamerica-west1',
828
+ 'us-central1',
829
+ 'us-east-1',
830
+ 'us-east-2',
831
+ 'us-east1',
832
+ 'us-east4',
833
+ 'us-east5',
834
+ 'us-south1',
835
+ 'us-west-1',
836
+ 'us-west-2',
837
+ 'us-west1',
838
+ 'us-west2',
839
+ 'us-west3',
840
+ 'us-west4'
841
+ ])).optional().default([])
842
+ }).default({
843
+ 'karpenter.sh/capacity-type': ['on-demand', 'spot'],
844
+ 'kubernetes.io/arch': ['amd64'],
845
+ 'cfke.io/instance-family': [],
846
+ 'topology.kubernetes.io/region': []
847
+ }),
848
+ scalingProfile: z.enum(['aggressive', 'conservative']).default('conservative'),
849
+ id: z.string().min(1).max(63).regex(/^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/),
850
+ ready: z.boolean(),
851
+ status_message: z.string().optional(),
852
+ created_at: z.string(),
853
+ updated_at: z.string()
298
854
  });
855
+ /**
856
+ * Mutable fleet configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.
857
+ */
299
858
  export const zFleetUpdateInput = z.object({
300
859
  limits: z.object({
301
- cpu: z.number().gte(0)
860
+ cpu: z.int().gte(0).lte(100000).optional()
302
861
  }).optional(),
303
862
  gcp: z.object({
304
- enabled: z.boolean().optional().default(true),
305
- project: z.string()
863
+ enabled: z.boolean(),
864
+ project: z.string().regex(/^[a-z][a-z0-9-]{4,28}[a-z0-9]$/).optional()
306
865
  }).optional(),
307
866
  hetzner: z.object({
308
- enabled: z.boolean().optional().default(true),
309
- apiKey: z.string()
867
+ enabled: z.boolean(),
868
+ apiKey: z.string().length(64).regex(/^([A-Za-z0-9]{64}|\*{64})$/).optional()
310
869
  }).optional(),
311
870
  aws: z.object({
312
- enabled: z.boolean().optional().default(true),
313
- controllerRoleArn: z.string()
314
- }).optional()
871
+ enabled: z.boolean(),
872
+ controllerRoleArn: z.string().regex(/^arn:aws(-[a-z]+)*:iam::\d{12}:role\/[\w+=,.@\/-]+$/).optional()
873
+ }).optional(),
874
+ constraints: z.object({
875
+ 'karpenter.sh/capacity-type': z.array(z.enum(['on-demand', 'spot'])).min(1).optional().default(['on-demand', 'spot']),
876
+ 'kubernetes.io/arch': z.array(z.enum(['amd64', 'arm64'])).min(1).optional().default(['amd64']),
877
+ 'cfke.io/instance-family': z.array(z.enum([
878
+ 'a1',
879
+ 'a2',
880
+ 'a3',
881
+ 'a4',
882
+ 'c1',
883
+ 'c2',
884
+ 'c2d',
885
+ 'c3',
886
+ 'c3d',
887
+ 'c4',
888
+ 'c4a',
889
+ 'c4d',
890
+ 'c5',
891
+ 'c5a',
892
+ 'c5ad',
893
+ 'c5d',
894
+ 'c5n',
895
+ 'c6a',
896
+ 'c6g',
897
+ 'c6gd',
898
+ 'c6gn',
899
+ 'c6i',
900
+ 'c6id',
901
+ 'c6in',
902
+ 'c7a',
903
+ 'c7g',
904
+ 'c7gd',
905
+ 'c7gn',
906
+ 'c7i',
907
+ 'c7i-flex',
908
+ 'c8g',
909
+ 'c8gd',
910
+ 'cax',
911
+ 'ccx',
912
+ 'cpx',
913
+ 'cx',
914
+ 'd2',
915
+ 'd3',
916
+ 'd3en',
917
+ 'dl1',
918
+ 'dl2q',
919
+ 'e2',
920
+ 'f1',
921
+ 'f2',
922
+ 'g1',
923
+ 'g2',
924
+ 'g4ad',
925
+ 'g4dn',
926
+ 'g5',
927
+ 'g5g',
928
+ 'g6',
929
+ 'g6e',
930
+ 'gr6',
931
+ 'h1',
932
+ 'h3',
933
+ 'hpc6a',
934
+ 'hpc6id',
935
+ 'hpc7a',
936
+ 'hpc7g',
937
+ 'i2',
938
+ 'i3',
939
+ 'i3en',
940
+ 'i4g',
941
+ 'i4i',
942
+ 'i7i',
943
+ 'i7ie',
944
+ 'i8g',
945
+ 'im4gn',
946
+ 'inf1',
947
+ 'inf2',
948
+ 'is4gen',
949
+ 'm1',
950
+ 'm2',
951
+ 'm3',
952
+ 'm4',
953
+ 'm5',
954
+ 'm5a',
955
+ 'm5ad',
956
+ 'm5d',
957
+ 'm5dn',
958
+ 'm5n',
959
+ 'm5zn',
960
+ 'm6a',
961
+ 'm6g',
962
+ 'm6gd',
963
+ 'm6i',
964
+ 'm6id',
965
+ 'm6idn',
966
+ 'm6in',
967
+ 'm7a',
968
+ 'm7g',
969
+ 'm7gd',
970
+ 'm7i',
971
+ 'm7i-flex',
972
+ 'm8g',
973
+ 'm8gd',
974
+ 'n1',
975
+ 'n2',
976
+ 'n2d',
977
+ 'n4',
978
+ 'p3',
979
+ 'p3dn',
980
+ 'p4d',
981
+ 'p4de',
982
+ 'p5',
983
+ 'p5e',
984
+ 'p5en',
985
+ 'p6-b200',
986
+ 'r3',
987
+ 'r4',
988
+ 'r5',
989
+ 'r5a',
990
+ 'r5ad',
991
+ 'r5b',
992
+ 'r5d',
993
+ 'r5dn',
994
+ 'r5n',
995
+ 'r6a',
996
+ 'r6g',
997
+ 'r6gd',
998
+ 'r6i',
999
+ 'r6id',
1000
+ 'r6idn',
1001
+ 'r6in',
1002
+ 'r7a',
1003
+ 'r7g',
1004
+ 'r7gd',
1005
+ 'r7i',
1006
+ 'r7iz',
1007
+ 'r8g',
1008
+ 'r8gd',
1009
+ 't2',
1010
+ 't2a',
1011
+ 't2d',
1012
+ 't3',
1013
+ 't3a',
1014
+ 't4g',
1015
+ 'trn1',
1016
+ 'trn1n',
1017
+ 'u-3tb1',
1018
+ 'u-6tb1',
1019
+ 'u7i-12tb',
1020
+ 'u7i-6tb',
1021
+ 'u7i-8tb',
1022
+ 'u7in-16tb',
1023
+ 'u7in-24tb',
1024
+ 'u7in-32tb',
1025
+ 'vt1',
1026
+ 'x1',
1027
+ 'x1e',
1028
+ 'x2gd',
1029
+ 'x2idn',
1030
+ 'x2iedn',
1031
+ 'x2iezn',
1032
+ 'x4',
1033
+ 'x8g',
1034
+ 'z1d',
1035
+ 'z3'
1036
+ ])).optional().default([]),
1037
+ 'topology.kubernetes.io/region': z.array(z.enum([
1038
+ 'africa-south1',
1039
+ 'ap-northeast-1',
1040
+ 'ap-northeast-2',
1041
+ 'ap-northeast-3',
1042
+ 'ap-south-1',
1043
+ 'ap-southeast-1',
1044
+ 'ap-southeast-2',
1045
+ 'ash',
1046
+ 'asia-east1',
1047
+ 'asia-east2',
1048
+ 'asia-northeast1',
1049
+ 'asia-northeast2',
1050
+ 'asia-northeast3',
1051
+ 'asia-south1',
1052
+ 'asia-south2',
1053
+ 'asia-southeast1',
1054
+ 'asia-southeast2',
1055
+ 'australia-southeast1',
1056
+ 'australia-southeast2',
1057
+ 'ca-central-1',
1058
+ 'eu-central-1',
1059
+ 'eu-central-2',
1060
+ 'eu-north-1',
1061
+ 'eu-west-1',
1062
+ 'eu-west-2',
1063
+ 'eu-west-3',
1064
+ 'europe-central2',
1065
+ 'europe-north1',
1066
+ 'europe-southwest1',
1067
+ 'europe-west1',
1068
+ 'europe-west10',
1069
+ 'europe-west12',
1070
+ 'europe-west2',
1071
+ 'europe-west3',
1072
+ 'europe-west4',
1073
+ 'europe-west6',
1074
+ 'europe-west8',
1075
+ 'europe-west9',
1076
+ 'fsn1',
1077
+ 'hel1',
1078
+ 'hil',
1079
+ 'me-central1',
1080
+ 'me-central2',
1081
+ 'me-west1',
1082
+ 'nbg1',
1083
+ 'northamerica-northeast1',
1084
+ 'northamerica-northeast2',
1085
+ 'sa-east-1',
1086
+ 'sin',
1087
+ 'southamerica-east1',
1088
+ 'southamerica-west1',
1089
+ 'us-central1',
1090
+ 'us-east-1',
1091
+ 'us-east-2',
1092
+ 'us-east1',
1093
+ 'us-east4',
1094
+ 'us-east5',
1095
+ 'us-south1',
1096
+ 'us-west-1',
1097
+ 'us-west-2',
1098
+ 'us-west1',
1099
+ 'us-west2',
1100
+ 'us-west3',
1101
+ 'us-west4'
1102
+ ])).optional().default([])
1103
+ }).optional().default({
1104
+ 'karpenter.sh/capacity-type': ['on-demand', 'spot'],
1105
+ 'kubernetes.io/arch': ['amd64'],
1106
+ 'cfke.io/instance-family': [],
1107
+ 'topology.kubernetes.io/region': []
1108
+ }),
1109
+ scalingProfile: z.enum(['aggressive', 'conservative']).optional().default('conservative')
1110
+ });
1111
+ export const zInviteCreateInput = z.object({
1112
+ email: z.email(),
1113
+ role: z.enum(['Administrator', 'User']).optional().default('User')
315
1114
  });
316
1115
  export const zInvite = z.object({
317
1116
  id: z.string().optional(),
318
1117
  organization_id: z.uuid().optional(),
319
1118
  date_created: z.iso.datetime(),
320
1119
  email: z.email().optional(),
321
- code: z.string().optional()
1120
+ code: z.string().optional(),
1121
+ role: z.enum(['Administrator', 'User']).optional().default('User')
322
1122
  });
323
1123
  export const zInvoice = z.object({
324
1124
  id: z.string().optional(),
@@ -358,21 +1158,28 @@ export const zMarketplaceListing = z.object({
358
1158
  }).optional()
359
1159
  });
360
1160
  export const zOrganizationCreateInput = z.object({
1161
+ type: z.enum(['business', 'personal']),
361
1162
  email: z.email(),
362
- first_name: z.string(),
363
- last_name: z.string(),
1163
+ first_name: z.string().min(1),
1164
+ last_name: z.string().min(1),
364
1165
  company_name: z.string().min(2).max(120).regex(/^(?!\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,}$/),
365
1166
  password: z.string().min(8)
366
1167
  });
1168
+ export const zOrganizationCreateOutput = z.object({
1169
+ id: z.string()
1170
+ });
367
1171
  export const zOrganization = z.object({
368
1172
  id: z.uuid(),
369
1173
  name: z.string().min(2).max(120).optional(),
1174
+ type: z.enum(['business', 'personal']),
370
1175
  date_created: z.iso.datetime(),
371
1176
  quota: z.object({
372
1177
  basic_clusters_max: z.int().gte(0),
373
1178
  basic_clusters_available: z.int(),
374
1179
  pro_clusters_max: z.int().gte(0),
375
1180
  pro_clusters_available: z.int(),
1181
+ enterprise_clusters_max: z.int().gte(0),
1182
+ enterprise_clusters_available: z.int(),
376
1183
  fleets_max: z.int().gte(0),
377
1184
  cluster_tiers: z.array(z.string()).min(0),
378
1185
  regions: z.array(z.string()).min(1),
@@ -386,32 +1193,36 @@ export const zOrganization = z.object({
386
1193
  'active',
387
1194
  'closed',
388
1195
  'suspended'
1196
+ ]),
1197
+ verification: z.enum([
1198
+ 'none',
1199
+ 'submitted',
1200
+ 'verified'
389
1201
  ])
390
1202
  });
391
1203
  export const zPaymentMethod = z.object({
392
- id: z.uuid(),
393
- setup: z.boolean(),
394
- type: z.enum(['card']),
1204
+ id: z.string(),
1205
+ type: z.enum([
1206
+ 'card',
1207
+ 'sepa_debit',
1208
+ 'bank_transfer'
1209
+ ]),
395
1210
  last4: z.string(),
396
1211
  exp_month: z.int().gte(1).lte(12),
397
- exp_year: z.int().gte(2024),
398
- brand: z.enum([
399
- 'amex',
400
- 'diners',
401
- 'discover',
402
- 'eftpos_au',
403
- 'jcb',
404
- 'mastercard',
405
- 'unionpay',
406
- 'visa',
407
- 'unknown'
408
- ])
1212
+ exp_year: z.int(),
1213
+ brand: z.string(),
1214
+ iban: z.string(),
1215
+ bic: z.string(),
1216
+ account_holder_name: z.string(),
1217
+ is_default: z.boolean()
409
1218
  });
410
1219
  export const zPlatformQuota = z.object({
411
1220
  basic_clusters_max: z.int().gte(0),
412
1221
  basic_clusters_available: z.int(),
413
1222
  pro_clusters_max: z.int().gte(0),
414
1223
  pro_clusters_available: z.int(),
1224
+ enterprise_clusters_max: z.int().gte(0),
1225
+ enterprise_clusters_available: z.int(),
415
1226
  fleets_max: z.int().gte(0),
416
1227
  cluster_tiers: z.array(z.string()).min(0),
417
1228
  regions: z.array(z.string()).min(1),
@@ -467,6 +1278,102 @@ export const zRegistryTag = z.object({
467
1278
  repository: z.string(),
468
1279
  uri: z.string()
469
1280
  });
1281
+ export const zTicketAttachment = z.object({
1282
+ id: z.string(),
1283
+ filename: z.string(),
1284
+ content_type: z.string(),
1285
+ size: z.int()
1286
+ });
1287
+ export const zTicketCreateInput = z.object({
1288
+ category: z.enum([
1289
+ 'billing',
1290
+ 'technical',
1291
+ 'general'
1292
+ ]),
1293
+ body: z.string().min(1).max(50000).regex(/\S/),
1294
+ properties: z.record(z.string(), z.unknown()).optional()
1295
+ });
1296
+ export const zTicketListResponse = z.object({
1297
+ items: z.array(z.object({
1298
+ id: z.string(),
1299
+ status: z.enum([
1300
+ 'waiting_on_us',
1301
+ 'waiting_on_user',
1302
+ 'closed'
1303
+ ]),
1304
+ category: z.enum([
1305
+ 'billing',
1306
+ 'technical',
1307
+ 'general'
1308
+ ]),
1309
+ summary: z.string(),
1310
+ closed_at: z.iso.datetime().optional(),
1311
+ date_created: z.iso.datetime(),
1312
+ date_updated: z.iso.datetime(),
1313
+ messages: z.array(z.object({
1314
+ id: z.string(),
1315
+ type: z.enum(['customer_reply', 'agent_reply']),
1316
+ body: z.string(),
1317
+ author_first_name: z.string().optional(),
1318
+ author_last_name: z.string().optional(),
1319
+ attachments: z.array(z.object({
1320
+ id: z.string(),
1321
+ filename: z.string(),
1322
+ content_type: z.string(),
1323
+ size: z.int()
1324
+ })).optional(),
1325
+ date_created: z.iso.datetime()
1326
+ })).optional()
1327
+ }))
1328
+ });
1329
+ export const zTicketMessageInput = z.object({
1330
+ body: z.string().min(1).max(50000).regex(/\S/)
1331
+ });
1332
+ export const zTicketMessage = z.object({
1333
+ id: z.string(),
1334
+ type: z.enum(['customer_reply', 'agent_reply']),
1335
+ body: z.string(),
1336
+ author_first_name: z.string().optional(),
1337
+ author_last_name: z.string().optional(),
1338
+ attachments: z.array(z.object({
1339
+ id: z.string(),
1340
+ filename: z.string(),
1341
+ content_type: z.string(),
1342
+ size: z.int()
1343
+ })).optional(),
1344
+ date_created: z.iso.datetime()
1345
+ });
1346
+ export const zTicket = z.object({
1347
+ id: z.string(),
1348
+ status: z.enum([
1349
+ 'waiting_on_us',
1350
+ 'waiting_on_user',
1351
+ 'closed'
1352
+ ]),
1353
+ category: z.enum([
1354
+ 'billing',
1355
+ 'technical',
1356
+ 'general'
1357
+ ]),
1358
+ summary: z.string(),
1359
+ closed_at: z.iso.datetime().optional(),
1360
+ date_created: z.iso.datetime(),
1361
+ date_updated: z.iso.datetime(),
1362
+ messages: z.array(z.object({
1363
+ id: z.string(),
1364
+ type: z.enum(['customer_reply', 'agent_reply']),
1365
+ body: z.string(),
1366
+ author_first_name: z.string().optional(),
1367
+ author_last_name: z.string().optional(),
1368
+ attachments: z.array(z.object({
1369
+ id: z.string(),
1370
+ filename: z.string(),
1371
+ content_type: z.string(),
1372
+ size: z.int()
1373
+ })).optional(),
1374
+ date_created: z.iso.datetime()
1375
+ })).optional()
1376
+ });
470
1377
  export const zTokenCreateInput = z.object({
471
1378
  name: z.string().min(1).max(63).regex(/^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/),
472
1379
  role: z.enum(['Administrator', 'User'])
@@ -513,9 +1420,7 @@ export const zUserCreateInput = z.object({
513
1420
  first_name: z.string().min(1).max(50),
514
1421
  last_name: z.string().min(1).max(50),
515
1422
  code: z.string(),
516
- password: z.string().min(8),
517
- status: z.enum(['active', 'inactive']).optional(),
518
- role: z.enum(['Administrator', 'User']).optional()
1423
+ password: z.string().min(8)
519
1424
  });
520
1425
  export const zUser = z.object({
521
1426
  email: z.email(),
@@ -533,88 +1438,226 @@ export const zUserUpdateInput = z.object({
533
1438
  role: z.enum(['Administrator', 'User']).optional(),
534
1439
  status: z.enum(['active', 'inactive']).optional()
535
1440
  });
536
- export const zGetUsageQuery = z.object({
537
- granularity: z.enum([
538
- 'hourly',
539
- 'daily',
540
- 'monthly'
541
- ]).optional().default('daily')
1441
+ export const zListUserOrganizationsPath = z.object({
1442
+ email: z.string()
542
1443
  });
543
1444
  /**
544
- * Usage data with facets for filtering
1445
+ * An array of organizations the user belongs to.
545
1446
  */
546
- export const zGetUsageResponse = zUsageResponse;
1447
+ export const zListUserOrganizationsResponse = z.array(z.object({
1448
+ realm: z.string().optional(),
1449
+ displayName: z.string().optional()
1450
+ }));
547
1451
  /**
548
- * Redacted payment card information.
1452
+ * An array of users
549
1453
  */
550
- export const zGetPaymentMethodResponse = zPaymentMethod;
1454
+ export const zListUsersResponse = z.array(zUser);
1455
+ export const zCreateUserBody = zUserCreateInput;
551
1456
  /**
552
- * The client secret. Used for client-side retrieval using a publishable key. The client secret can be used to complete a payment from your frontend. It should not be stored, logged, or exposed to anyone other than the customer. Make sure that you have TLS enabled on any page that includes the client secret.
553
- *
1457
+ * Successfully created. Returns created user details.
554
1458
  */
555
- export const zGetPaymentMethodSecretResponse = z.object({
556
- id: z.string().optional()
1459
+ export const zCreateUserResponse = zUser;
1460
+ export const zDeleteUserPath = z.object({
1461
+ user_id: z.string()
557
1462
  });
558
1463
  /**
559
- * An array of usage records.
1464
+ * User profile information
560
1465
  */
561
- export const zListInvoicesResponse = z.array(zInvoice);
1466
+ export const zDeleteUserResponse = zUser;
1467
+ export const zGetUserPath = z.object({
1468
+ user_id: z.string()
1469
+ });
562
1470
  /**
563
- * Returns a single object containing organization contact and billing address details.
1471
+ * User profile information
564
1472
  */
565
- export const zGetContactResponse = zBillingContact;
566
- export const zUpdateContactBody = zBillingContact;
1473
+ export const zGetUserResponse = zUser;
1474
+ export const zUpdateUserBody = zUserUpdateInput;
1475
+ export const zUpdateUserPath = z.object({
1476
+ user_id: z.string()
1477
+ });
567
1478
  /**
568
- * Successfully updated. Returns updated organization details.
1479
+ * Successfully created. Returns created user details.
569
1480
  */
570
- export const zUpdateContactResponse = zBillingContact;
1481
+ export const zUpdateUserResponse = zUser;
571
1482
  /**
572
- * An array of the applied promotional credits records.
1483
+ * Returns a list of access token details with masked secrets.
573
1484
  */
574
- export const zGetCreditsResponse = z.array(zBillingCredits);
575
- export const zRedeemCreditsBody = z.object({
576
- code: z.string().optional()
1485
+ export const zListTokensResponse = z.array(zToken);
1486
+ export const zCreateTokenBody = zTokenCreateInput;
1487
+ /**
1488
+ * Successfully created. Returns created token details with unmasked/raw secret.
1489
+ */
1490
+ export const zCreateTokenResponse = zToken;
1491
+ export const zDeleteTokenPath = z.object({
1492
+ token_id: z.string()
577
1493
  });
578
- export const zListChartsPath = z.object({
579
- cluster_id: z.string()
1494
+ export const zGetTokenPath = z.object({
1495
+ token_id: z.string()
580
1496
  });
581
1497
  /**
582
- * An array of charts
1498
+ * Returns access token details with masked secret.
583
1499
  */
584
- export const zListChartsResponse = z.array(zChart);
585
- export const zCreateChartBody = zChartCreateInput;
586
- export const zCreateChartPath = z.object({
587
- cluster_id: z.string()
1500
+ export const zGetTokenResponse = zToken;
1501
+ export const zUpdateTokenBody = zTokenUpdateInput;
1502
+ export const zUpdateTokenPath = z.object({
1503
+ token_id: z.string()
588
1504
  });
589
1505
  /**
590
- * Successfully created. Returns created Chart ID.
1506
+ * Successfully updated. Returns updated token details with masked secret.
591
1507
  */
592
- export const zCreateChartResponse = z.string();
593
- export const zDeleteChartPath = z.object({
594
- cluster_id: z.string(),
595
- chart_name: z.string()
1508
+ export const zUpdateTokenResponse = zToken;
1509
+ export const zRegenerateTokenPath = z.object({
1510
+ token_id: z.string()
596
1511
  });
597
1512
  /**
598
- * Successfully deleted.
1513
+ * Successfully updated. Returns updated token details with unmasked / raw secret.
599
1514
  */
600
- export const zDeleteChartResponse = z.string();
601
- export const zGetChartPath = z.object({
602
- cluster_id: z.string(),
603
- chart_name: z.string()
1515
+ export const zRegenerateTokenResponse = zToken;
1516
+ /**
1517
+ * Tickets for the organization.
1518
+ */
1519
+ export const zListTicketsResponse = zTicketListResponse;
1520
+ export const zCreateTicketBody = z.object({
1521
+ payload: z.string().optional(),
1522
+ attachments: z.array(z.string()).optional()
604
1523
  });
605
1524
  /**
606
- * Returns a single object containing chart details.
1525
+ * Ticket created.
607
1526
  */
608
- export const zGetChartResponse = zChart;
609
- export const zUpdateChartBody = zChartUpdateInput;
610
- export const zUpdateChartPath = z.object({
611
- cluster_id: z.string(),
612
- chart_name: z.string()
1527
+ export const zCreateTicketResponse = zTicket;
1528
+ export const zCloseTicketPath = z.object({
1529
+ ticket_id: z.string()
613
1530
  });
614
1531
  /**
615
- * Successfully updated.
1532
+ * Ticket closed.
616
1533
  */
617
- export const zUpdateChartResponse = z.string();
1534
+ export const zCloseTicketResponse = zTicket;
1535
+ export const zGetTicketPath = z.object({
1536
+ ticket_id: z.string()
1537
+ });
1538
+ /**
1539
+ * Ticket with messages (internal notes excluded).
1540
+ */
1541
+ export const zGetTicketResponse = zTicket;
1542
+ export const zReplyTicketBody = z.object({
1543
+ payload: z.string().optional(),
1544
+ attachments: z.array(z.string()).optional()
1545
+ });
1546
+ export const zReplyTicketPath = z.object({
1547
+ ticket_id: z.string()
1548
+ });
1549
+ /**
1550
+ * Reply appended.
1551
+ */
1552
+ export const zReplyTicketResponse = zTicketMessage;
1553
+ export const zGetTicketAttachmentPath = z.object({
1554
+ ticket_id: z.string(),
1555
+ attachment_id: z.string()
1556
+ });
1557
+ /**
1558
+ * Attachment binary stream.
1559
+ */
1560
+ export const zGetTicketAttachmentResponse = z.string();
1561
+ /**
1562
+ * List of repositories
1563
+ */
1564
+ export const zListRepositoriesResponse = z.array(zRegistryRepository);
1565
+ export const zListTagsPath = z.object({
1566
+ region: z.string(),
1567
+ repository: z.string()
1568
+ });
1569
+ /**
1570
+ * Repository with tags
1571
+ */
1572
+ export const zListTagsResponse = zRegistryRepositoryWithTags;
1573
+ export const zDeleteTagPath = z.object({
1574
+ region: z.string(),
1575
+ repository: z.string(),
1576
+ tag: z.string()
1577
+ });
1578
+ export const zGetTagPath = z.object({
1579
+ region: z.string(),
1580
+ repository: z.string(),
1581
+ tag: z.string()
1582
+ });
1583
+ /**
1584
+ * Tag details
1585
+ */
1586
+ export const zGetTagResponse = zRegistryTag;
1587
+ /**
1588
+ * Returns a single object containing organization details.
1589
+ */
1590
+ export const zGetOrganizationResponse = zOrganization;
1591
+ export const zCreateOrganizationBody = zOrganizationCreateInput;
1592
+ /**
1593
+ * Organization signup accepted. Returns the generated organization id immediately; provisioning (billing, Keycloak realm, user) continues asynchronously in the background.
1594
+ *
1595
+ */
1596
+ export const zCreateOrganizationResponse = zOrganizationCreateOutput;
1597
+ /**
1598
+ * JSON-RPC 2.0 request payload
1599
+ */
1600
+ export const zPostMcpBody = z.object({
1601
+ jsonrpc: z.string().optional(),
1602
+ method: z.string().optional(),
1603
+ id: z.union([
1604
+ z.string(),
1605
+ z.number()
1606
+ ]).optional(),
1607
+ params: z.record(z.string(), z.unknown()).optional()
1608
+ });
1609
+ /**
1610
+ * JSON-RPC 2.0 success or error response
1611
+ */
1612
+ export const zPostMcpResponse = z.object({
1613
+ jsonrpc: z.string().optional(),
1614
+ id: z.union([
1615
+ z.string(),
1616
+ z.number()
1617
+ ]).optional(),
1618
+ result: z.record(z.string(), z.unknown()).optional(),
1619
+ error: z.object({
1620
+ code: z.int().optional(),
1621
+ message: z.string().optional()
1622
+ }).optional()
1623
+ });
1624
+ /**
1625
+ * An array of chart listings in the marketplace.
1626
+ */
1627
+ export const zListMarketplaceChartsResponse = z.array(zMarketplaceListing);
1628
+ export const zGetMarketplaceChartFilesPath = z.object({
1629
+ chart_name: z.string(),
1630
+ version_channel: z.string()
1631
+ });
1632
+ /**
1633
+ * Returns an object containing the chart files for the latest matching version.
1634
+ */
1635
+ export const zGetMarketplaceChartFilesResponse = zMarketplaceListingFiles;
1636
+ /**
1637
+ * An array of invites
1638
+ */
1639
+ export const zListInvitesResponse = z.array(zInvite);
1640
+ export const zCreateInviteBody = zInviteCreateInput;
1641
+ /**
1642
+ * Successfully created. Returns created invite details.
1643
+ */
1644
+ export const zCreateInviteResponse = zInvite;
1645
+ export const zGetInvitePath = z.object({
1646
+ code: z.string()
1647
+ });
1648
+ /**
1649
+ * The invitation code is valid. Returns the invited email and organization.
1650
+ */
1651
+ export const zGetInviteResponse = z.object({
1652
+ email: z.email().optional(),
1653
+ organization_id: z.string().optional()
1654
+ });
1655
+ export const zDeleteInvitePath = z.object({
1656
+ email: z.email()
1657
+ });
1658
+ export const zQueryClusterPath = z.object({
1659
+ cluster_id: z.string()
1660
+ });
618
1661
  export const zListFleetsPath = z.object({
619
1662
  cluster_id: z.string()
620
1663
  });
@@ -655,9 +1698,46 @@ export const zUpdateFleetPath = z.object({
655
1698
  * Successfully updated.
656
1699
  */
657
1700
  export const zUpdateFleetResponse = z.string();
658
- export const zQueryClusterPath = z.object({
1701
+ export const zListChartsPath = z.object({
659
1702
  cluster_id: z.string()
660
1703
  });
1704
+ /**
1705
+ * An array of charts
1706
+ */
1707
+ export const zListChartsResponse = z.array(zChart);
1708
+ export const zCreateChartBody = zChartCreateInput;
1709
+ export const zCreateChartPath = z.object({
1710
+ cluster_id: z.string()
1711
+ });
1712
+ /**
1713
+ * Successfully created. Returns created Chart ID.
1714
+ */
1715
+ export const zCreateChartResponse = z.string();
1716
+ export const zDeleteChartPath = z.object({
1717
+ cluster_id: z.string(),
1718
+ chart_name: z.string()
1719
+ });
1720
+ /**
1721
+ * Successfully deleted.
1722
+ */
1723
+ export const zDeleteChartResponse = z.string();
1724
+ export const zGetChartPath = z.object({
1725
+ cluster_id: z.string(),
1726
+ chart_name: z.string()
1727
+ });
1728
+ /**
1729
+ * Returns a single object containing chart details.
1730
+ */
1731
+ export const zGetChartResponse = zChart;
1732
+ export const zUpdateChartBody = zChartUpdateInput;
1733
+ export const zUpdateChartPath = z.object({
1734
+ cluster_id: z.string(),
1735
+ chart_name: z.string()
1736
+ });
1737
+ /**
1738
+ * Successfully updated.
1739
+ */
1740
+ export const zUpdateChartResponse = z.string();
661
1741
  /**
662
1742
  * An array of clusters
663
1743
  */
@@ -671,7 +1751,7 @@ export const zDeleteClusterPath = z.object({
671
1751
  cluster_id: z.string()
672
1752
  });
673
1753
  /**
674
- * Successfully deleted.
1754
+ * Successfully deleted. The cluster has been torn down.
675
1755
  */
676
1756
  export const zDeleteClusterResponse = z.string();
677
1757
  export const zGetClusterPath = z.object({
@@ -689,13 +1769,6 @@ export const zUpdateClusterPath = z.object({
689
1769
  * Successfully updated. Returns updated cluster details.
690
1770
  */
691
1771
  export const zUpdateClusterResponse = zCluster;
692
- export const zGetClusterCaPath = z.object({
693
- cluster_id: z.string()
694
- });
695
- /**
696
- * PEM-encoded certificate authority of the cluster.
697
- */
698
- export const zGetClusterCaResponse = z.string();
699
1772
  export const zGetJoinInformationPath = z.object({
700
1773
  cluster_id: z.string()
701
1774
  });
@@ -703,170 +1776,60 @@ export const zGetJoinInformationPath = z.object({
703
1776
  * An object of cluster join information
704
1777
  */
705
1778
  export const zGetJoinInformationResponse = zClusterJoinInformation;
706
- /**
707
- * An array of invites
708
- */
709
- export const zListInvitesResponse = z.array(zInvite);
710
- export const zCreateInviteBody = z.object({
711
- email: z.string().optional()
712
- });
713
- /**
714
- * Successfully created. Returns created invite details.
715
- */
716
- export const zCreateInviteResponse = zInvite;
717
- export const zGetInvitePath = z.object({
718
- code: z.string()
719
- });
720
- /**
721
- * Returns a single object containing invite details.
722
- */
723
- export const zGetInviteResponse = zInvite;
724
- export const zDeleteInvitePath = z.object({
725
- email: z.string()
726
- });
727
- /**
728
- * An array of chart listings in the marketplace.
729
- */
730
- export const zListMarketplaceChartsResponse = z.array(zMarketplaceListing);
731
- export const zGetMarketplaceChartFilesPath = z.object({
732
- chart_name: z.string(),
733
- version_channel: z.string()
734
- });
735
- /**
736
- * Returns an object containing the chart files for the latest matching version.
737
- */
738
- export const zGetMarketplaceChartFilesResponse = zMarketplaceListingFiles;
739
- /**
740
- * JSON-RPC 2.0 request payload
741
- */
742
- export const zPostMcpBody = z.object({
743
- jsonrpc: z.string().optional(),
744
- method: z.string().optional(),
745
- id: z.union([
746
- z.string(),
747
- z.number()
748
- ]).optional(),
749
- params: z.record(z.string(), z.unknown()).optional()
750
- });
751
- /**
752
- * JSON-RPC 2.0 success or error response
753
- */
754
- export const zPostMcpResponse = z.object({
755
- jsonrpc: z.string().optional(),
756
- id: z.union([
757
- z.string(),
758
- z.number()
759
- ]).optional(),
760
- result: z.record(z.string(), z.unknown()).optional(),
761
- error: z.object({
762
- code: z.int().optional(),
763
- message: z.string().optional()
764
- }).optional()
765
- });
766
- /**
767
- * Returns a single object containing organization details.
768
- */
769
- export const zGetOrganizationResponse = zOrganization;
770
- export const zCreateOrganizationBody = zOrganizationCreateInput;
771
- /**
772
- * List of repositories
773
- */
774
- export const zListRepositoriesResponse = z.array(zRegistryRepository);
775
- export const zListTagsPath = z.object({
776
- region: z.string(),
777
- repository: z.string()
778
- });
779
- /**
780
- * Repository with tags
781
- */
782
- export const zListTagsResponse = zRegistryRepositoryWithTags;
783
- export const zDeleteTagPath = z.object({
784
- region: z.string(),
785
- repository: z.string(),
786
- tag: z.string()
787
- });
788
- export const zGetTagPath = z.object({
789
- region: z.string(),
790
- repository: z.string(),
791
- tag: z.string()
1779
+ export const zGetUsageQuery = z.object({
1780
+ granularity: z.enum([
1781
+ 'hourly',
1782
+ 'daily',
1783
+ 'monthly'
1784
+ ]).optional().default('daily')
792
1785
  });
793
1786
  /**
794
- * Tag details
795
- */
796
- export const zGetTagResponse = zRegistryTag;
797
- /**
798
- * Returns a list of access token details with masked secrets.
799
- */
800
- export const zListTokensResponse = z.array(zToken);
801
- export const zCreateTokenBody = zTokenCreateInput;
802
- /**
803
- * Successfully created. Returns created token details with unmasked/raw secret.
1787
+ * Usage data with facets for filtering
804
1788
  */
805
- export const zCreateTokenResponse = zToken;
806
- export const zDeleteTokenPath = z.object({
807
- token_id: z.string()
808
- });
809
- export const zGetTokenPath = z.object({
810
- token_id: z.string()
811
- });
1789
+ export const zGetUsageResponse = zUsageResponse;
812
1790
  /**
813
- * Returns access token details with masked secret.
1791
+ * The client secret. Used for client-side retrieval using a publishable key. The client secret can be used to complete a payment from your frontend. It should not be stored, logged, or exposed to anyone other than the customer. Make sure that you have TLS enabled on any page that includes the client secret.
1792
+ *
814
1793
  */
815
- export const zGetTokenResponse = zToken;
816
- export const zUpdateTokenBody = zTokenUpdateInput;
817
- export const zUpdateTokenPath = z.object({
818
- token_id: z.string()
1794
+ export const zGetPaymentMethodSecretResponse = z.object({
1795
+ id: z.string().optional()
819
1796
  });
820
1797
  /**
821
- * Successfully updated. Returns updated token details with masked secret.
1798
+ * An array of payment methods.
822
1799
  */
823
- export const zUpdateTokenResponse = zToken;
824
- export const zRegenerateTokenPath = z.object({
825
- token_id: z.string()
1800
+ export const zListPaymentMethodsResponse = z.array(zPaymentMethod);
1801
+ export const zSetDefaultPaymentMethodPath = z.object({
1802
+ paymentMethodId: z.string()
826
1803
  });
827
1804
  /**
828
- * Successfully updated. Returns updated token details with unmasked / raw secret.
1805
+ * Default payment method updated.
829
1806
  */
830
- export const zRegenerateTokenResponse = zToken;
831
- export const zListUserOrganizationsPath = z.object({
832
- email: z.string()
1807
+ export const zSetDefaultPaymentMethodResponse = z.void();
1808
+ export const zDeletePaymentMethodPath = z.object({
1809
+ paymentMethodId: z.string()
833
1810
  });
834
1811
  /**
835
- * An array of organizations the user belongs to.
1812
+ * Payment method deleted.
836
1813
  */
837
- export const zListUserOrganizationsResponse = z.array(z.object({
838
- realm: z.string().optional(),
839
- displayName: z.string().optional()
840
- }));
1814
+ export const zDeletePaymentMethodResponse = z.void();
841
1815
  /**
842
- * An array of users
1816
+ * An array of usage records.
843
1817
  */
844
- export const zListUsersResponse = z.array(zUser);
845
- export const zCreateUserBody = zUserCreateInput;
1818
+ export const zListInvoicesResponse = z.array(zInvoice);
846
1819
  /**
847
- * Successfully created. Returns created user details.
1820
+ * Returns a single object containing organization contact and billing address details.
848
1821
  */
849
- export const zCreateUserResponse = zUser;
850
- export const zDeleteUserPath = z.object({
851
- user_id: z.string()
852
- });
1822
+ export const zGetContactResponse = zBillingContact;
1823
+ export const zUpdateContactBody = zBillingContact;
853
1824
  /**
854
- * User profile information
1825
+ * Successfully updated. Returns updated organization details.
855
1826
  */
856
- export const zDeleteUserResponse = zUser;
857
- export const zGetUserPath = z.object({
858
- user_id: z.string()
859
- });
1827
+ export const zUpdateContactResponse = zBillingContact;
860
1828
  /**
861
- * User profile information
1829
+ * An array of the applied promotional credits records.
862
1830
  */
863
- export const zGetUserResponse = zUser;
864
- export const zUpdateUserBody = zUserUpdateInput;
865
- export const zUpdateUserPath = z.object({
866
- user_id: z.string()
1831
+ export const zGetCreditsResponse = z.array(zBillingCredits);
1832
+ export const zRedeemCreditsBody = z.object({
1833
+ code: z.string().optional()
867
1834
  });
868
- /**
869
- * Successfully created. Returns created user details.
870
- */
871
- export const zUpdateUserResponse = zUser;
872
1835
  //# sourceMappingURL=zod.gen.js.map