@cloudfleet/sdk 0.0.1-a64863e → 0.0.1-a9ac9eb

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.
@@ -2,6 +2,10 @@ export type ClientOptions = {
2
2
  baseUrl: 'https://api.cloudfleet.ai/v1' | (string & {});
3
3
  };
4
4
  export type BillingContact = {
5
+ /**
6
+ * Type of the organization. `business` for legal entities, `personal` for individuals.
7
+ */
8
+ type: 'business' | 'personal';
5
9
  /**
6
10
  * Name of the legal entity. This name will be used in invoices. Use your first and last name for individual accounts.
7
11
  */
@@ -259,6 +263,7 @@ export type Cluster = {
259
263
  */
260
264
  status: 'active' | 'disabled' | 'deleted' | 'creating' | 'deployed' | 'failed' | 'updating';
261
265
  endpoint?: string | '';
266
+ endpoint_public?: string | '';
262
267
  /**
263
268
  * Certificate authority data for the kubernetes cluster. This is the root certificate authority for the cluster.
264
269
  */
@@ -304,31 +309,56 @@ export type FleetCreateInput = {
304
309
  */
305
310
  limits?: {
306
311
  /**
307
- * CPU limit in cores.
312
+ * CPU limit in cores. Maximum 100,000.
308
313
  */
309
- cpu: number;
314
+ cpu?: number;
310
315
  };
311
316
  gcp?: {
312
- enabled?: boolean;
317
+ enabled: boolean;
313
318
  /**
314
- * Project GCP Project id to deploy instances into
319
+ * GCP project ID to deploy instances into. 6-30 chars, lowercase letters/digits/hyphens, must start with a letter and not end with a hyphen. Omit when GCP is disabled.
315
320
  */
316
- project: string;
321
+ project?: string;
317
322
  };
318
323
  hetzner?: {
319
- enabled?: boolean;
324
+ enabled: boolean;
320
325
  /**
321
- * Hetzner Cloud API key with read / write access
326
+ * Hetzner Cloud API token with read / write access (64 alphanumeric characters). Omit this field to keep the existing value.
322
327
  */
323
- apiKey: string;
328
+ apiKey?: string;
324
329
  };
325
330
  aws?: {
326
- enabled?: boolean;
331
+ enabled: boolean;
332
+ /**
333
+ * AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.
334
+ */
335
+ controllerRoleArn?: string;
336
+ };
337
+ /**
338
+ * Constraints define scheduling and provisioning requirements for the fleet. Each field restricts the values allowed for a given Kubernetes label key. Multiple constraints are ANDed together. Omit a field to place no restriction on that key.
339
+ */
340
+ constraints?: {
341
+ /**
342
+ * Allowed values for `karpenter.sh/capacity-type`.
343
+ */
344
+ 'karpenter.sh/capacity-type'?: Array<'on-demand' | 'spot'>;
345
+ /**
346
+ * Allowed values for `kubernetes.io/arch`.
347
+ */
348
+ 'kubernetes.io/arch'?: Array<'amd64' | 'arm64'>;
349
+ /**
350
+ * Allowed values for `cfke.io/instance-family`.
351
+ */
352
+ 'cfke.io/instance-family'?: Array<'a1' | 'a2' | 'a3' | 'a4' | 'c1' | 'c2' | 'c2d' | 'c3' | 'c3d' | 'c4' | 'c4a' | 'c4d' | 'c5' | 'c5a' | 'c5ad' | 'c5d' | 'c5n' | 'c6a' | 'c6g' | 'c6gd' | 'c6gn' | 'c6i' | 'c6id' | 'c6in' | 'c7a' | 'c7g' | 'c7gd' | 'c7gn' | 'c7i' | 'c7i-flex' | 'c8g' | 'c8gd' | 'cax' | 'ccx' | 'cpx' | 'cx' | 'd2' | 'd3' | 'd3en' | 'dl1' | 'dl2q' | 'e2' | 'f1' | 'f2' | 'g1' | 'g2' | 'g4ad' | 'g4dn' | 'g5' | 'g5g' | 'g6' | 'g6e' | 'gr6' | 'h1' | 'h3' | 'hpc6a' | 'hpc6id' | 'hpc7a' | 'hpc7g' | 'i2' | 'i3' | 'i3en' | 'i4g' | 'i4i' | 'i7i' | 'i7ie' | 'i8g' | 'im4gn' | 'inf1' | 'inf2' | 'is4gen' | 'm1' | 'm2' | 'm3' | 'm4' | 'm5' | 'm5a' | 'm5ad' | 'm5d' | 'm5dn' | 'm5n' | 'm5zn' | 'm6a' | 'm6g' | 'm6gd' | 'm6i' | 'm6id' | 'm6idn' | 'm6in' | 'm7a' | 'm7g' | 'm7gd' | 'm7i' | 'm7i-flex' | 'm8g' | 'm8gd' | 'n1' | 'n2' | 'n2d' | 'n4' | 'p3' | 'p3dn' | 'p4d' | 'p4de' | 'p5' | 'p5e' | 'p5en' | 'p6-b200' | 'r3' | 'r4' | 'r5' | 'r5a' | 'r5ad' | 'r5b' | 'r5d' | 'r5dn' | 'r5n' | 'r6a' | 'r6g' | 'r6gd' | 'r6i' | 'r6id' | 'r6idn' | 'r6in' | 'r7a' | 'r7g' | 'r7gd' | 'r7i' | 'r7iz' | 'r8g' | 'r8gd' | 't2' | 't2a' | 't2d' | 't3' | 't3a' | 't4g' | 'trn1' | 'trn1n' | 'u-3tb1' | 'u-6tb1' | 'u7i-12tb' | 'u7i-6tb' | 'u7i-8tb' | 'u7in-16tb' | 'u7in-24tb' | 'u7in-32tb' | 'vt1' | 'x1' | 'x1e' | 'x2gd' | 'x2idn' | 'x2iedn' | 'x2iezn' | 'x4' | 'x8g' | 'z1d' | 'z3'>;
327
353
  /**
328
- * ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.
354
+ * Allowed values for `topology.kubernetes.io/region`.
329
355
  */
330
- controllerRoleArn: string;
356
+ 'topology.kubernetes.io/region'?: Array<'africa-south1' | 'ap-northeast-1' | 'ap-northeast-2' | 'ap-northeast-3' | 'ap-south-1' | 'ap-southeast-1' | 'ap-southeast-2' | 'ash' | 'asia-east1' | 'asia-east2' | 'asia-northeast1' | 'asia-northeast2' | 'asia-northeast3' | 'asia-south1' | 'asia-south2' | 'asia-southeast1' | 'asia-southeast2' | 'australia-southeast1' | 'australia-southeast2' | 'ca-central-1' | 'eu-central-1' | 'eu-central-2' | 'eu-north-1' | 'eu-west-1' | 'eu-west-2' | 'eu-west-3' | 'europe-central2' | 'europe-north1' | 'europe-southwest1' | 'europe-west1' | 'europe-west10' | 'europe-west12' | 'europe-west2' | 'europe-west3' | 'europe-west4' | 'europe-west6' | 'europe-west8' | 'europe-west9' | 'fsn1' | 'hel1' | 'hil' | 'me-central1' | 'me-central2' | 'me-west1' | 'nbg1' | 'northamerica-northeast1' | 'northamerica-northeast2' | 'sa-east-1' | 'sin' | 'southamerica-east1' | 'southamerica-west1' | 'us-central1' | 'us-east-1' | 'us-east-2' | 'us-east1' | 'us-east4' | 'us-east5' | 'us-south1' | 'us-west-1' | 'us-west-2' | 'us-west1' | 'us-west2' | 'us-west3' | 'us-west4'>;
331
357
  };
358
+ /**
359
+ * Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.
360
+ */
361
+ scalingProfile?: 'aggressive' | 'conservative';
332
362
  /**
333
363
  * Unique identifier of the kubernetes fleet.
334
364
  */
@@ -340,31 +370,56 @@ export type Fleet = {
340
370
  */
341
371
  limits?: {
342
372
  /**
343
- * CPU limit in cores.
373
+ * CPU limit in cores. Maximum 100,000.
344
374
  */
345
- cpu: number;
375
+ cpu?: number;
346
376
  };
347
377
  gcp?: {
348
- enabled?: boolean;
378
+ enabled: boolean;
349
379
  /**
350
- * Project GCP Project id to deploy instances into
380
+ * GCP project ID to deploy instances into. 6-30 chars, lowercase letters/digits/hyphens, must start with a letter and not end with a hyphen. Omit when GCP is disabled.
351
381
  */
352
- project: string;
382
+ project?: string;
353
383
  };
354
384
  hetzner?: {
355
- enabled?: boolean;
385
+ enabled: boolean;
356
386
  /**
357
- * Hetzner Cloud API key with read / write access
387
+ * Redacted Hetzner API token. Returned as 64 asterisks when a token is configured; omitted otherwise. The real value is never echoed by the API.
358
388
  */
359
- apiKey: string;
389
+ apiKey?: string;
360
390
  };
361
391
  aws?: {
362
- enabled?: boolean;
392
+ enabled: boolean;
393
+ /**
394
+ * AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.
395
+ */
396
+ controllerRoleArn?: string;
397
+ };
398
+ /**
399
+ * Constraints define scheduling and provisioning requirements for the fleet. Each field restricts the values allowed for a given Kubernetes label key. Multiple constraints are ANDed together. Omit a field to place no restriction on that key.
400
+ */
401
+ constraints?: {
402
+ /**
403
+ * Allowed values for `karpenter.sh/capacity-type`.
404
+ */
405
+ 'karpenter.sh/capacity-type'?: Array<'on-demand' | 'spot'>;
406
+ /**
407
+ * Allowed values for `kubernetes.io/arch`.
408
+ */
409
+ 'kubernetes.io/arch'?: Array<'amd64' | 'arm64'>;
363
410
  /**
364
- * ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.
411
+ * Allowed values for `cfke.io/instance-family`.
365
412
  */
366
- controllerRoleArn: string;
413
+ 'cfke.io/instance-family'?: Array<'a1' | 'a2' | 'a3' | 'a4' | 'c1' | 'c2' | 'c2d' | 'c3' | 'c3d' | 'c4' | 'c4a' | 'c4d' | 'c5' | 'c5a' | 'c5ad' | 'c5d' | 'c5n' | 'c6a' | 'c6g' | 'c6gd' | 'c6gn' | 'c6i' | 'c6id' | 'c6in' | 'c7a' | 'c7g' | 'c7gd' | 'c7gn' | 'c7i' | 'c7i-flex' | 'c8g' | 'c8gd' | 'cax' | 'ccx' | 'cpx' | 'cx' | 'd2' | 'd3' | 'd3en' | 'dl1' | 'dl2q' | 'e2' | 'f1' | 'f2' | 'g1' | 'g2' | 'g4ad' | 'g4dn' | 'g5' | 'g5g' | 'g6' | 'g6e' | 'gr6' | 'h1' | 'h3' | 'hpc6a' | 'hpc6id' | 'hpc7a' | 'hpc7g' | 'i2' | 'i3' | 'i3en' | 'i4g' | 'i4i' | 'i7i' | 'i7ie' | 'i8g' | 'im4gn' | 'inf1' | 'inf2' | 'is4gen' | 'm1' | 'm2' | 'm3' | 'm4' | 'm5' | 'm5a' | 'm5ad' | 'm5d' | 'm5dn' | 'm5n' | 'm5zn' | 'm6a' | 'm6g' | 'm6gd' | 'm6i' | 'm6id' | 'm6idn' | 'm6in' | 'm7a' | 'm7g' | 'm7gd' | 'm7i' | 'm7i-flex' | 'm8g' | 'm8gd' | 'n1' | 'n2' | 'n2d' | 'n4' | 'p3' | 'p3dn' | 'p4d' | 'p4de' | 'p5' | 'p5e' | 'p5en' | 'p6-b200' | 'r3' | 'r4' | 'r5' | 'r5a' | 'r5ad' | 'r5b' | 'r5d' | 'r5dn' | 'r5n' | 'r6a' | 'r6g' | 'r6gd' | 'r6i' | 'r6id' | 'r6idn' | 'r6in' | 'r7a' | 'r7g' | 'r7gd' | 'r7i' | 'r7iz' | 'r8g' | 'r8gd' | 't2' | 't2a' | 't2d' | 't3' | 't3a' | 't4g' | 'trn1' | 'trn1n' | 'u-3tb1' | 'u-6tb1' | 'u7i-12tb' | 'u7i-6tb' | 'u7i-8tb' | 'u7in-16tb' | 'u7in-24tb' | 'u7in-32tb' | 'vt1' | 'x1' | 'x1e' | 'x2gd' | 'x2idn' | 'x2iedn' | 'x2iezn' | 'x4' | 'x8g' | 'z1d' | 'z3'>;
414
+ /**
415
+ * Allowed values for `topology.kubernetes.io/region`.
416
+ */
417
+ 'topology.kubernetes.io/region'?: Array<'africa-south1' | 'ap-northeast-1' | 'ap-northeast-2' | 'ap-northeast-3' | 'ap-south-1' | 'ap-southeast-1' | 'ap-southeast-2' | 'ash' | 'asia-east1' | 'asia-east2' | 'asia-northeast1' | 'asia-northeast2' | 'asia-northeast3' | 'asia-south1' | 'asia-south2' | 'asia-southeast1' | 'asia-southeast2' | 'australia-southeast1' | 'australia-southeast2' | 'ca-central-1' | 'eu-central-1' | 'eu-central-2' | 'eu-north-1' | 'eu-west-1' | 'eu-west-2' | 'eu-west-3' | 'europe-central2' | 'europe-north1' | 'europe-southwest1' | 'europe-west1' | 'europe-west10' | 'europe-west12' | 'europe-west2' | 'europe-west3' | 'europe-west4' | 'europe-west6' | 'europe-west8' | 'europe-west9' | 'fsn1' | 'hel1' | 'hil' | 'me-central1' | 'me-central2' | 'me-west1' | 'nbg1' | 'northamerica-northeast1' | 'northamerica-northeast2' | 'sa-east-1' | 'sin' | 'southamerica-east1' | 'southamerica-west1' | 'us-central1' | 'us-east-1' | 'us-east-2' | 'us-east1' | 'us-east4' | 'us-east5' | 'us-south1' | 'us-west-1' | 'us-west-2' | 'us-west1' | 'us-west2' | 'us-west3' | 'us-west4'>;
367
418
  };
419
+ /**
420
+ * Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.
421
+ */
422
+ scalingProfile: 'aggressive' | 'conservative';
368
423
  /**
369
424
  * Unique identifier of the kubernetes fleet.
370
425
  */
@@ -376,31 +431,56 @@ export type FleetUpdateInput = {
376
431
  */
377
432
  limits?: {
378
433
  /**
379
- * CPU limit in cores.
434
+ * CPU limit in cores. Maximum 100,000.
380
435
  */
381
- cpu: number;
436
+ cpu?: number;
382
437
  };
383
438
  gcp?: {
384
- enabled?: boolean;
439
+ enabled: boolean;
385
440
  /**
386
- * Project GCP Project id to deploy instances into
441
+ * GCP project ID to deploy instances into. 6-30 chars, lowercase letters/digits/hyphens, must start with a letter and not end with a hyphen. Omit when GCP is disabled.
387
442
  */
388
- project: string;
443
+ project?: string;
389
444
  };
390
445
  hetzner?: {
391
- enabled?: boolean;
446
+ enabled: boolean;
392
447
  /**
393
- * Hetzner Cloud API key with read / write access
448
+ * Hetzner Cloud API token with read / write access (64 alphanumeric characters). Omit this field to keep the existing value.
394
449
  */
395
- apiKey: string;
450
+ apiKey?: string;
396
451
  };
397
452
  aws?: {
398
- enabled?: boolean;
453
+ enabled: boolean;
399
454
  /**
400
- * ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.
455
+ * AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.
401
456
  */
402
- controllerRoleArn: string;
457
+ controllerRoleArn?: string;
403
458
  };
459
+ /**
460
+ * Constraints define scheduling and provisioning requirements for the fleet. Each field restricts the values allowed for a given Kubernetes label key. Multiple constraints are ANDed together. Omit a field to place no restriction on that key.
461
+ */
462
+ constraints?: {
463
+ /**
464
+ * Allowed values for `karpenter.sh/capacity-type`.
465
+ */
466
+ 'karpenter.sh/capacity-type'?: Array<'on-demand' | 'spot'>;
467
+ /**
468
+ * Allowed values for `kubernetes.io/arch`.
469
+ */
470
+ 'kubernetes.io/arch'?: Array<'amd64' | 'arm64'>;
471
+ /**
472
+ * Allowed values for `cfke.io/instance-family`.
473
+ */
474
+ 'cfke.io/instance-family'?: Array<'a1' | 'a2' | 'a3' | 'a4' | 'c1' | 'c2' | 'c2d' | 'c3' | 'c3d' | 'c4' | 'c4a' | 'c4d' | 'c5' | 'c5a' | 'c5ad' | 'c5d' | 'c5n' | 'c6a' | 'c6g' | 'c6gd' | 'c6gn' | 'c6i' | 'c6id' | 'c6in' | 'c7a' | 'c7g' | 'c7gd' | 'c7gn' | 'c7i' | 'c7i-flex' | 'c8g' | 'c8gd' | 'cax' | 'ccx' | 'cpx' | 'cx' | 'd2' | 'd3' | 'd3en' | 'dl1' | 'dl2q' | 'e2' | 'f1' | 'f2' | 'g1' | 'g2' | 'g4ad' | 'g4dn' | 'g5' | 'g5g' | 'g6' | 'g6e' | 'gr6' | 'h1' | 'h3' | 'hpc6a' | 'hpc6id' | 'hpc7a' | 'hpc7g' | 'i2' | 'i3' | 'i3en' | 'i4g' | 'i4i' | 'i7i' | 'i7ie' | 'i8g' | 'im4gn' | 'inf1' | 'inf2' | 'is4gen' | 'm1' | 'm2' | 'm3' | 'm4' | 'm5' | 'm5a' | 'm5ad' | 'm5d' | 'm5dn' | 'm5n' | 'm5zn' | 'm6a' | 'm6g' | 'm6gd' | 'm6i' | 'm6id' | 'm6idn' | 'm6in' | 'm7a' | 'm7g' | 'm7gd' | 'm7i' | 'm7i-flex' | 'm8g' | 'm8gd' | 'n1' | 'n2' | 'n2d' | 'n4' | 'p3' | 'p3dn' | 'p4d' | 'p4de' | 'p5' | 'p5e' | 'p5en' | 'p6-b200' | 'r3' | 'r4' | 'r5' | 'r5a' | 'r5ad' | 'r5b' | 'r5d' | 'r5dn' | 'r5n' | 'r6a' | 'r6g' | 'r6gd' | 'r6i' | 'r6id' | 'r6idn' | 'r6in' | 'r7a' | 'r7g' | 'r7gd' | 'r7i' | 'r7iz' | 'r8g' | 'r8gd' | 't2' | 't2a' | 't2d' | 't3' | 't3a' | 't4g' | 'trn1' | 'trn1n' | 'u-3tb1' | 'u-6tb1' | 'u7i-12tb' | 'u7i-6tb' | 'u7i-8tb' | 'u7in-16tb' | 'u7in-24tb' | 'u7in-32tb' | 'vt1' | 'x1' | 'x1e' | 'x2gd' | 'x2idn' | 'x2iedn' | 'x2iezn' | 'x4' | 'x8g' | 'z1d' | 'z3'>;
475
+ /**
476
+ * Allowed values for `topology.kubernetes.io/region`.
477
+ */
478
+ 'topology.kubernetes.io/region'?: Array<'africa-south1' | 'ap-northeast-1' | 'ap-northeast-2' | 'ap-northeast-3' | 'ap-south-1' | 'ap-southeast-1' | 'ap-southeast-2' | 'ash' | 'asia-east1' | 'asia-east2' | 'asia-northeast1' | 'asia-northeast2' | 'asia-northeast3' | 'asia-south1' | 'asia-south2' | 'asia-southeast1' | 'asia-southeast2' | 'australia-southeast1' | 'australia-southeast2' | 'ca-central-1' | 'eu-central-1' | 'eu-central-2' | 'eu-north-1' | 'eu-west-1' | 'eu-west-2' | 'eu-west-3' | 'europe-central2' | 'europe-north1' | 'europe-southwest1' | 'europe-west1' | 'europe-west10' | 'europe-west12' | 'europe-west2' | 'europe-west3' | 'europe-west4' | 'europe-west6' | 'europe-west8' | 'europe-west9' | 'fsn1' | 'hel1' | 'hil' | 'me-central1' | 'me-central2' | 'me-west1' | 'nbg1' | 'northamerica-northeast1' | 'northamerica-northeast2' | 'sa-east-1' | 'sin' | 'southamerica-east1' | 'southamerica-west1' | 'us-central1' | 'us-east-1' | 'us-east-2' | 'us-east1' | 'us-east4' | 'us-east5' | 'us-south1' | 'us-west-1' | 'us-west-2' | 'us-west1' | 'us-west2' | 'us-west3' | 'us-west4'>;
479
+ };
480
+ /**
481
+ * Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.
482
+ */
483
+ scalingProfile: 'aggressive' | 'conservative';
404
484
  };
405
485
  export type Invite = {
406
486
  /**
@@ -543,6 +623,10 @@ export type MarketplaceListing = {
543
623
  };
544
624
  };
545
625
  export type OrganizationCreateInput = {
626
+ /**
627
+ * Type of the organization. `business` for legal entities, `personal` for individuals.
628
+ */
629
+ type: 'business' | 'personal';
546
630
  /**
547
631
  * Email address used for billing as a string.
548
632
  */
@@ -564,6 +648,12 @@ export type OrganizationCreateInput = {
564
648
  */
565
649
  password: string;
566
650
  };
651
+ export type OrganizationCreateOutput = {
652
+ /**
653
+ * Unique identifier of the newly created organization. Generated by the API and safe to use for client-side tracking immediately.
654
+ */
655
+ id: string;
656
+ };
567
657
  export type Organization = {
568
658
  /**
569
659
  * Unique identifier of the organization. UUID v4 string in canonical form
@@ -573,6 +663,10 @@ export type Organization = {
573
663
  * Name of the legal entity. This name will be used in invoices. Use your first and last name for individual accounts.
574
664
  */
575
665
  name?: string;
666
+ /**
667
+ * Type of the organization. `business` for legal entities, `personal` for individuals.
668
+ */
669
+ type: 'business' | 'personal';
576
670
  /**
577
671
  * Creation date of the organization. ISO 8601 date string in UTC timezone
578
672
  */
@@ -622,14 +716,6 @@ export type Organization = {
622
716
  */
623
717
  label: string;
624
718
  }>;
625
- /**
626
- * User-level maximum number of tokens Cloudfleet Copilot can process per hour.
627
- */
628
- copilot_user_hourly_tokens: number;
629
- /**
630
- * Organization-level maximum number of tokens Cloudfleet Copilot can process per hour.
631
- */
632
- copilot_organization_hourly_tokens: number;
633
719
  /**
634
720
  * Organization-level maximum CFCR storage volume in GB. -1 means no limit.
635
721
  */
@@ -639,6 +725,10 @@ export type Organization = {
639
725
  * Status of the organization. Can be `active` or `closed`, or `suspended`.
640
726
  */
641
727
  status: 'active' | 'closed' | 'suspended';
728
+ /**
729
+ * Verification status of the organization, which determines the assigned quota. `none` when billing information is incomplete, `submitted` when billing information is complete but the organization is not yet verified, `verified` when the organization is verified.
730
+ */
731
+ verification: 'none' | 'submitted' | 'verified';
642
732
  };
643
733
  export type PaymentMethod = {
644
734
  /**
@@ -712,14 +802,6 @@ export type PlatformQuota = {
712
802
  */
713
803
  label: string;
714
804
  }>;
715
- /**
716
- * User-level maximum number of tokens Cloudfleet Copilot can process per hour.
717
- */
718
- copilot_user_hourly_tokens: number;
719
- /**
720
- * Organization-level maximum number of tokens Cloudfleet Copilot can process per hour.
721
- */
722
- copilot_organization_hourly_tokens: number;
723
805
  /**
724
806
  * Organization-level maximum CFCR storage volume in GB. -1 means no limit.
725
807
  */
@@ -873,6 +955,258 @@ export type RegistryTag = {
873
955
  */
874
956
  uri: string;
875
957
  };
958
+ export type TicketAttachment = {
959
+ /**
960
+ * Unique identifier of the attachment (Mongo ObjectId).
961
+ */
962
+ id: string;
963
+ /**
964
+ * Original filename as uploaded.
965
+ */
966
+ filename: string;
967
+ /**
968
+ * MIME content type of the attachment.
969
+ */
970
+ content_type: string;
971
+ /**
972
+ * Size of the attachment in bytes.
973
+ */
974
+ size: number;
975
+ };
976
+ export type TicketCreateInput = {
977
+ /**
978
+ * Ticket category. Drives auto-assignment and may carry a subcategory in `properties`.
979
+ */
980
+ category: 'billing' | 'technical' | 'general';
981
+ /**
982
+ * Initial message body in markdown. There is no separate subject — the first message body is the description.
983
+ */
984
+ body: string;
985
+ /**
986
+ * Free-form key/value bag set by the UI (e.g. `subcategory`, `cluster_id`, `cluster_name`, `region`).
987
+ */
988
+ properties?: {
989
+ [key: string]: unknown;
990
+ };
991
+ };
992
+ export type TicketListResponse = {
993
+ /**
994
+ * Tickets for the organization, ordered newest first. Messages are omitted from list responses.
995
+ */
996
+ items: Array<{
997
+ /**
998
+ * Unique identifier of the ticket (Mongo ObjectId).
999
+ */
1000
+ id: string;
1001
+ /**
1002
+ * Current state of the ticket.
1003
+ */
1004
+ status: 'waiting_on_us' | 'waiting_on_user' | 'closed';
1005
+ /**
1006
+ * Ticket category.
1007
+ */
1008
+ category: 'billing' | 'technical' | 'general';
1009
+ /**
1010
+ * First 128 characters of the initial message body, with markdown formatting and newlines stripped. Used for ticket list previews.
1011
+ */
1012
+ summary: string;
1013
+ /**
1014
+ * Closure timestamp. Null while the ticket is open.
1015
+ */
1016
+ closed_at?: string;
1017
+ /**
1018
+ * Creation date of the ticket. ISO 8601 UTC.
1019
+ */
1020
+ date_created: string;
1021
+ /**
1022
+ * Last update date of the ticket. ISO 8601 UTC.
1023
+ */
1024
+ date_updated: string;
1025
+ /**
1026
+ * Messages on the ticket in chronological order. Internal notes are excluded. Returned by the detail endpoint only.
1027
+ */
1028
+ messages?: Array<{
1029
+ /**
1030
+ * Unique identifier of the message (Mongo ObjectId).
1031
+ */
1032
+ id: string;
1033
+ /**
1034
+ * Message type. Internal notes are filtered out of customer-facing responses.
1035
+ */
1036
+ type: 'customer_reply' | 'agent_reply';
1037
+ /**
1038
+ * Message body in markdown.
1039
+ */
1040
+ body: string;
1041
+ /**
1042
+ * First name of the author. Null when not provided.
1043
+ */
1044
+ author_first_name?: string;
1045
+ /**
1046
+ * Last name of the author. Null when not provided.
1047
+ */
1048
+ author_last_name?: string;
1049
+ /**
1050
+ * Attachments associated with this message.
1051
+ */
1052
+ attachments?: Array<{
1053
+ /**
1054
+ * Unique identifier of the attachment (Mongo ObjectId).
1055
+ */
1056
+ id: string;
1057
+ /**
1058
+ * Original filename as uploaded.
1059
+ */
1060
+ filename: string;
1061
+ /**
1062
+ * MIME content type of the attachment.
1063
+ */
1064
+ content_type: string;
1065
+ /**
1066
+ * Size of the attachment in bytes.
1067
+ */
1068
+ size: number;
1069
+ }>;
1070
+ /**
1071
+ * Creation date of the message. ISO 8601 UTC.
1072
+ */
1073
+ date_created: string;
1074
+ }>;
1075
+ }>;
1076
+ };
1077
+ export type TicketMessageInput = {
1078
+ /**
1079
+ * Reply body in markdown.
1080
+ */
1081
+ body: string;
1082
+ };
1083
+ export type TicketMessage = {
1084
+ /**
1085
+ * Unique identifier of the message (Mongo ObjectId).
1086
+ */
1087
+ id: string;
1088
+ /**
1089
+ * Message type. Internal notes are filtered out of customer-facing responses.
1090
+ */
1091
+ type: 'customer_reply' | 'agent_reply';
1092
+ /**
1093
+ * Message body in markdown.
1094
+ */
1095
+ body: string;
1096
+ /**
1097
+ * First name of the author. Null when not provided.
1098
+ */
1099
+ author_first_name?: string;
1100
+ /**
1101
+ * Last name of the author. Null when not provided.
1102
+ */
1103
+ author_last_name?: string;
1104
+ /**
1105
+ * Attachments associated with this message.
1106
+ */
1107
+ attachments?: Array<{
1108
+ /**
1109
+ * Unique identifier of the attachment (Mongo ObjectId).
1110
+ */
1111
+ id: string;
1112
+ /**
1113
+ * Original filename as uploaded.
1114
+ */
1115
+ filename: string;
1116
+ /**
1117
+ * MIME content type of the attachment.
1118
+ */
1119
+ content_type: string;
1120
+ /**
1121
+ * Size of the attachment in bytes.
1122
+ */
1123
+ size: number;
1124
+ }>;
1125
+ /**
1126
+ * Creation date of the message. ISO 8601 UTC.
1127
+ */
1128
+ date_created: string;
1129
+ };
1130
+ export type Ticket = {
1131
+ /**
1132
+ * Unique identifier of the ticket (Mongo ObjectId).
1133
+ */
1134
+ id: string;
1135
+ /**
1136
+ * Current state of the ticket.
1137
+ */
1138
+ status: 'waiting_on_us' | 'waiting_on_user' | 'closed';
1139
+ /**
1140
+ * Ticket category.
1141
+ */
1142
+ category: 'billing' | 'technical' | 'general';
1143
+ /**
1144
+ * First 128 characters of the initial message body, with markdown formatting and newlines stripped. Used for ticket list previews.
1145
+ */
1146
+ summary: string;
1147
+ /**
1148
+ * Closure timestamp. Null while the ticket is open.
1149
+ */
1150
+ closed_at?: string;
1151
+ /**
1152
+ * Creation date of the ticket. ISO 8601 UTC.
1153
+ */
1154
+ date_created: string;
1155
+ /**
1156
+ * Last update date of the ticket. ISO 8601 UTC.
1157
+ */
1158
+ date_updated: string;
1159
+ /**
1160
+ * Messages on the ticket in chronological order. Internal notes are excluded. Returned by the detail endpoint only.
1161
+ */
1162
+ messages?: Array<{
1163
+ /**
1164
+ * Unique identifier of the message (Mongo ObjectId).
1165
+ */
1166
+ id: string;
1167
+ /**
1168
+ * Message type. Internal notes are filtered out of customer-facing responses.
1169
+ */
1170
+ type: 'customer_reply' | 'agent_reply';
1171
+ /**
1172
+ * Message body in markdown.
1173
+ */
1174
+ body: string;
1175
+ /**
1176
+ * First name of the author. Null when not provided.
1177
+ */
1178
+ author_first_name?: string;
1179
+ /**
1180
+ * Last name of the author. Null when not provided.
1181
+ */
1182
+ author_last_name?: string;
1183
+ /**
1184
+ * Attachments associated with this message.
1185
+ */
1186
+ attachments?: Array<{
1187
+ /**
1188
+ * Unique identifier of the attachment (Mongo ObjectId).
1189
+ */
1190
+ id: string;
1191
+ /**
1192
+ * Original filename as uploaded.
1193
+ */
1194
+ filename: string;
1195
+ /**
1196
+ * MIME content type of the attachment.
1197
+ */
1198
+ content_type: string;
1199
+ /**
1200
+ * Size of the attachment in bytes.
1201
+ */
1202
+ size: number;
1203
+ }>;
1204
+ /**
1205
+ * Creation date of the message. ISO 8601 UTC.
1206
+ */
1207
+ date_created: string;
1208
+ }>;
1209
+ };
876
1210
  export type TokenCreateInput = {
877
1211
  /**
878
1212
  * Human readable access token name.
@@ -1778,10 +2112,12 @@ export type CreateOrganizationData = {
1778
2112
  };
1779
2113
  export type CreateOrganizationResponses = {
1780
2114
  /**
1781
- * Successfully created a new organization.
2115
+ * Organization signup accepted. Returns the generated organization id immediately; provisioning (billing, Keycloak realm, user) continues asynchronously in the background.
2116
+ *
1782
2117
  */
1783
- 200: unknown;
2118
+ 200: OrganizationCreateOutput;
1784
2119
  };
2120
+ export type CreateOrganizationResponse = CreateOrganizationResponses[keyof CreateOrganizationResponses];
1785
2121
  export type ListRepositoriesData = {
1786
2122
  body?: never;
1787
2123
  path?: never;
@@ -1920,6 +2256,111 @@ export type GetTagResponses = {
1920
2256
  200: RegistryTag;
1921
2257
  };
1922
2258
  export type GetTagResponse = GetTagResponses[keyof GetTagResponses];
2259
+ export type ListTicketsData = {
2260
+ body?: never;
2261
+ path?: never;
2262
+ query?: never;
2263
+ url: '/tickets';
2264
+ };
2265
+ export type ListTicketsResponses = {
2266
+ /**
2267
+ * Tickets for the organization.
2268
+ */
2269
+ 200: TicketListResponse;
2270
+ };
2271
+ export type ListTicketsResponse = ListTicketsResponses[keyof ListTicketsResponses];
2272
+ export type CreateTicketData = {
2273
+ body: {
2274
+ /**
2275
+ * JSON-encoded TicketCreateInput.
2276
+ */
2277
+ payload?: string;
2278
+ attachments?: Array<Blob | File>;
2279
+ };
2280
+ path?: never;
2281
+ query?: never;
2282
+ url: '/tickets';
2283
+ };
2284
+ export type CreateTicketResponses = {
2285
+ /**
2286
+ * Ticket created.
2287
+ */
2288
+ 200: Ticket;
2289
+ };
2290
+ export type CreateTicketResponse = CreateTicketResponses[keyof CreateTicketResponses];
2291
+ export type CloseTicketData = {
2292
+ body?: never;
2293
+ path: {
2294
+ ticket_id: string;
2295
+ };
2296
+ query?: never;
2297
+ url: '/tickets/{ticket_id}';
2298
+ };
2299
+ export type CloseTicketResponses = {
2300
+ /**
2301
+ * Ticket closed.
2302
+ */
2303
+ 200: Ticket;
2304
+ };
2305
+ export type CloseTicketResponse = CloseTicketResponses[keyof CloseTicketResponses];
2306
+ export type GetTicketData = {
2307
+ body?: never;
2308
+ path: {
2309
+ ticket_id: string;
2310
+ };
2311
+ query?: never;
2312
+ url: '/tickets/{ticket_id}';
2313
+ };
2314
+ export type GetTicketResponses = {
2315
+ /**
2316
+ * Ticket with messages (internal notes excluded).
2317
+ */
2318
+ 200: Ticket;
2319
+ };
2320
+ export type GetTicketResponse = GetTicketResponses[keyof GetTicketResponses];
2321
+ export type ReplyTicketData = {
2322
+ body: {
2323
+ /**
2324
+ * JSON-encoded TicketMessageInput.
2325
+ */
2326
+ payload?: string;
2327
+ attachments?: Array<Blob | File>;
2328
+ };
2329
+ path: {
2330
+ ticket_id: string;
2331
+ };
2332
+ query?: never;
2333
+ url: '/tickets/{ticket_id}/messages';
2334
+ };
2335
+ export type ReplyTicketErrors = {
2336
+ /**
2337
+ * Ticket is closed. Open a new ticket instead.
2338
+ */
2339
+ 409: unknown;
2340
+ };
2341
+ export type ReplyTicketResponses = {
2342
+ /**
2343
+ * Reply appended.
2344
+ */
2345
+ 200: TicketMessage;
2346
+ };
2347
+ export type ReplyTicketResponse = ReplyTicketResponses[keyof ReplyTicketResponses];
2348
+ export type GetTicketAttachmentData = {
2349
+ body?: never;
2350
+ path: {
2351
+ ticket_id: string;
2352
+ attachment_id: string;
2353
+ };
2354
+ query?: never;
2355
+ url: '/tickets/{ticket_id}/attachments/{attachment_id}';
2356
+ };
2357
+ export type GetTicketAttachmentResponses = {
2358
+ /**
2359
+ * Attachment binary stream.
2360
+ */
2361
+ 200: Blob | File;
2362
+ };
2363
+ export type GetTicketAttachmentResponse = GetTicketAttachmentResponses[keyof GetTicketAttachmentResponses];
1923
2364
  export type ListTokensData = {
1924
2365
  body?: never;
1925
2366
  path?: never;