@cloudfleet/sdk 0.0.1-cdd334c → 0.0.1-cfddf24

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.
@@ -259,6 +259,7 @@ export type Cluster = {
259
259
  */
260
260
  status: 'active' | 'disabled' | 'deleted' | 'creating' | 'deployed' | 'failed' | 'updating';
261
261
  endpoint?: string | '';
262
+ endpoint_public?: string | '';
262
263
  /**
263
264
  * Certificate authority data for the kubernetes cluster. This is the root certificate authority for the cluster.
264
265
  */
@@ -304,31 +305,56 @@ export type FleetCreateInput = {
304
305
  */
305
306
  limits?: {
306
307
  /**
307
- * CPU limit in cores.
308
+ * CPU limit in cores. Maximum 100,000.
308
309
  */
309
- cpu: number;
310
+ cpu?: number;
310
311
  };
311
312
  gcp?: {
312
- enabled?: boolean;
313
+ enabled: boolean;
313
314
  /**
314
- * Project GCP Project id to deploy instances into
315
+ * 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
316
  */
316
- project: string;
317
+ project?: string;
317
318
  };
318
319
  hetzner?: {
319
- enabled?: boolean;
320
+ enabled: boolean;
320
321
  /**
321
- * Hetzner Cloud API key with read / write access
322
+ * Hetzner Cloud API token with read / write access (64 alphanumeric characters). Omit this field to keep the existing value.
322
323
  */
323
- apiKey: string;
324
+ apiKey?: string;
324
325
  };
325
326
  aws?: {
326
- enabled?: boolean;
327
+ enabled: boolean;
327
328
  /**
328
- * ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.
329
+ * AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.
329
330
  */
330
- controllerRoleArn: string;
331
+ controllerRoleArn?: string;
331
332
  };
333
+ /**
334
+ * 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.
335
+ */
336
+ constraints?: {
337
+ /**
338
+ * Allowed values for `karpenter.sh/capacity-type`.
339
+ */
340
+ 'karpenter.sh/capacity-type'?: Array<'on-demand' | 'spot'>;
341
+ /**
342
+ * Allowed values for `kubernetes.io/arch`.
343
+ */
344
+ 'kubernetes.io/arch'?: Array<'amd64' | 'arm64'>;
345
+ /**
346
+ * Allowed values for `cfke.io/instance-family`.
347
+ */
348
+ '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'>;
349
+ /**
350
+ * Allowed values for `topology.kubernetes.io/region`.
351
+ */
352
+ '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'>;
353
+ };
354
+ /**
355
+ * Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.
356
+ */
357
+ scalingProfile?: 'aggressive' | 'conservative';
332
358
  /**
333
359
  * Unique identifier of the kubernetes fleet.
334
360
  */
@@ -340,31 +366,56 @@ export type Fleet = {
340
366
  */
341
367
  limits?: {
342
368
  /**
343
- * CPU limit in cores.
369
+ * CPU limit in cores. Maximum 100,000.
344
370
  */
345
- cpu: number;
371
+ cpu?: number;
346
372
  };
347
373
  gcp?: {
348
- enabled?: boolean;
374
+ enabled: boolean;
349
375
  /**
350
- * Project GCP Project id to deploy instances into
376
+ * 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
377
  */
352
- project: string;
378
+ project?: string;
353
379
  };
354
380
  hetzner?: {
355
- enabled?: boolean;
381
+ enabled: boolean;
356
382
  /**
357
- * Hetzner Cloud API key with read / write access
383
+ * 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
384
  */
359
- apiKey: string;
385
+ apiKey?: string;
360
386
  };
361
387
  aws?: {
362
- enabled?: boolean;
388
+ enabled: boolean;
389
+ /**
390
+ * AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.
391
+ */
392
+ controllerRoleArn?: string;
393
+ };
394
+ /**
395
+ * 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.
396
+ */
397
+ constraints?: {
398
+ /**
399
+ * Allowed values for `karpenter.sh/capacity-type`.
400
+ */
401
+ 'karpenter.sh/capacity-type'?: Array<'on-demand' | 'spot'>;
402
+ /**
403
+ * Allowed values for `kubernetes.io/arch`.
404
+ */
405
+ 'kubernetes.io/arch'?: Array<'amd64' | 'arm64'>;
363
406
  /**
364
- * ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.
407
+ * Allowed values for `cfke.io/instance-family`.
365
408
  */
366
- controllerRoleArn: string;
409
+ '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'>;
410
+ /**
411
+ * Allowed values for `topology.kubernetes.io/region`.
412
+ */
413
+ '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
414
  };
415
+ /**
416
+ * Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.
417
+ */
418
+ scalingProfile: 'aggressive' | 'conservative';
368
419
  /**
369
420
  * Unique identifier of the kubernetes fleet.
370
421
  */
@@ -376,31 +427,56 @@ export type FleetUpdateInput = {
376
427
  */
377
428
  limits?: {
378
429
  /**
379
- * CPU limit in cores.
430
+ * CPU limit in cores. Maximum 100,000.
380
431
  */
381
- cpu: number;
432
+ cpu?: number;
382
433
  };
383
434
  gcp?: {
384
- enabled?: boolean;
435
+ enabled: boolean;
385
436
  /**
386
- * Project GCP Project id to deploy instances into
437
+ * 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
438
  */
388
- project: string;
439
+ project?: string;
389
440
  };
390
441
  hetzner?: {
391
- enabled?: boolean;
442
+ enabled: boolean;
392
443
  /**
393
- * Hetzner Cloud API key with read / write access
444
+ * Hetzner Cloud API token with read / write access (64 alphanumeric characters). Omit this field to keep the existing value.
394
445
  */
395
- apiKey: string;
446
+ apiKey?: string;
396
447
  };
397
448
  aws?: {
398
- enabled?: boolean;
449
+ enabled: boolean;
399
450
  /**
400
- * ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.
451
+ * AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.
401
452
  */
402
- controllerRoleArn: string;
453
+ controllerRoleArn?: string;
403
454
  };
455
+ /**
456
+ * 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.
457
+ */
458
+ constraints?: {
459
+ /**
460
+ * Allowed values for `karpenter.sh/capacity-type`.
461
+ */
462
+ 'karpenter.sh/capacity-type'?: Array<'on-demand' | 'spot'>;
463
+ /**
464
+ * Allowed values for `kubernetes.io/arch`.
465
+ */
466
+ 'kubernetes.io/arch'?: Array<'amd64' | 'arm64'>;
467
+ /**
468
+ * Allowed values for `cfke.io/instance-family`.
469
+ */
470
+ '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'>;
471
+ /**
472
+ * Allowed values for `topology.kubernetes.io/region`.
473
+ */
474
+ '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'>;
475
+ };
476
+ /**
477
+ * Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.
478
+ */
479
+ scalingProfile: 'aggressive' | 'conservative';
404
480
  };
405
481
  export type Invite = {
406
482
  /**
@@ -622,14 +698,6 @@ export type Organization = {
622
698
  */
623
699
  label: string;
624
700
  }>;
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
701
  /**
634
702
  * Organization-level maximum CFCR storage volume in GB. -1 means no limit.
635
703
  */
@@ -712,14 +780,6 @@ export type PlatformQuota = {
712
780
  */
713
781
  label: string;
714
782
  }>;
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
783
  /**
724
784
  * Organization-level maximum CFCR storage volume in GB. -1 means no limit.
725
785
  */
@@ -873,6 +933,258 @@ export type RegistryTag = {
873
933
  */
874
934
  uri: string;
875
935
  };
936
+ export type TicketAttachment = {
937
+ /**
938
+ * Unique identifier of the attachment (Mongo ObjectId).
939
+ */
940
+ id: string;
941
+ /**
942
+ * Original filename as uploaded.
943
+ */
944
+ filename: string;
945
+ /**
946
+ * MIME content type of the attachment.
947
+ */
948
+ content_type: string;
949
+ /**
950
+ * Size of the attachment in bytes.
951
+ */
952
+ size: number;
953
+ };
954
+ export type TicketCreateInput = {
955
+ /**
956
+ * Ticket category. Drives auto-assignment and may carry a subcategory in `properties`.
957
+ */
958
+ category: 'billing' | 'technical' | 'general';
959
+ /**
960
+ * Initial message body in markdown. There is no separate subject — the first message body is the description.
961
+ */
962
+ body: string;
963
+ /**
964
+ * Free-form key/value bag set by the UI (e.g. `subcategory`, `cluster_id`, `cluster_name`, `region`).
965
+ */
966
+ properties?: {
967
+ [key: string]: unknown;
968
+ };
969
+ };
970
+ export type TicketListResponse = {
971
+ /**
972
+ * Tickets for the organization, ordered newest first. Messages are omitted from list responses.
973
+ */
974
+ items: Array<{
975
+ /**
976
+ * Unique identifier of the ticket (Mongo ObjectId).
977
+ */
978
+ id: string;
979
+ /**
980
+ * Current state of the ticket.
981
+ */
982
+ status: 'waiting_on_us' | 'waiting_on_user' | 'closed';
983
+ /**
984
+ * Ticket category.
985
+ */
986
+ category: 'billing' | 'technical' | 'general';
987
+ /**
988
+ * First 128 characters of the initial message body, with markdown formatting and newlines stripped. Used for ticket list previews.
989
+ */
990
+ summary: string;
991
+ /**
992
+ * Closure timestamp. Null while the ticket is open.
993
+ */
994
+ closed_at?: string;
995
+ /**
996
+ * Creation date of the ticket. ISO 8601 UTC.
997
+ */
998
+ date_created: string;
999
+ /**
1000
+ * Last update date of the ticket. ISO 8601 UTC.
1001
+ */
1002
+ date_updated: string;
1003
+ /**
1004
+ * Messages on the ticket in chronological order. Internal notes are excluded. Returned by the detail endpoint only.
1005
+ */
1006
+ messages?: Array<{
1007
+ /**
1008
+ * Unique identifier of the message (Mongo ObjectId).
1009
+ */
1010
+ id: string;
1011
+ /**
1012
+ * Message type. Internal notes are filtered out of customer-facing responses.
1013
+ */
1014
+ type: 'customer_reply' | 'agent_reply';
1015
+ /**
1016
+ * Message body in markdown.
1017
+ */
1018
+ body: string;
1019
+ /**
1020
+ * First name of the author. Null when not provided.
1021
+ */
1022
+ author_first_name?: string;
1023
+ /**
1024
+ * Last name of the author. Null when not provided.
1025
+ */
1026
+ author_last_name?: string;
1027
+ /**
1028
+ * Attachments associated with this message.
1029
+ */
1030
+ attachments?: Array<{
1031
+ /**
1032
+ * Unique identifier of the attachment (Mongo ObjectId).
1033
+ */
1034
+ id: string;
1035
+ /**
1036
+ * Original filename as uploaded.
1037
+ */
1038
+ filename: string;
1039
+ /**
1040
+ * MIME content type of the attachment.
1041
+ */
1042
+ content_type: string;
1043
+ /**
1044
+ * Size of the attachment in bytes.
1045
+ */
1046
+ size: number;
1047
+ }>;
1048
+ /**
1049
+ * Creation date of the message. ISO 8601 UTC.
1050
+ */
1051
+ date_created: string;
1052
+ }>;
1053
+ }>;
1054
+ };
1055
+ export type TicketMessageInput = {
1056
+ /**
1057
+ * Reply body in markdown.
1058
+ */
1059
+ body: string;
1060
+ };
1061
+ export type TicketMessage = {
1062
+ /**
1063
+ * Unique identifier of the message (Mongo ObjectId).
1064
+ */
1065
+ id: string;
1066
+ /**
1067
+ * Message type. Internal notes are filtered out of customer-facing responses.
1068
+ */
1069
+ type: 'customer_reply' | 'agent_reply';
1070
+ /**
1071
+ * Message body in markdown.
1072
+ */
1073
+ body: string;
1074
+ /**
1075
+ * First name of the author. Null when not provided.
1076
+ */
1077
+ author_first_name?: string;
1078
+ /**
1079
+ * Last name of the author. Null when not provided.
1080
+ */
1081
+ author_last_name?: string;
1082
+ /**
1083
+ * Attachments associated with this message.
1084
+ */
1085
+ attachments?: Array<{
1086
+ /**
1087
+ * Unique identifier of the attachment (Mongo ObjectId).
1088
+ */
1089
+ id: string;
1090
+ /**
1091
+ * Original filename as uploaded.
1092
+ */
1093
+ filename: string;
1094
+ /**
1095
+ * MIME content type of the attachment.
1096
+ */
1097
+ content_type: string;
1098
+ /**
1099
+ * Size of the attachment in bytes.
1100
+ */
1101
+ size: number;
1102
+ }>;
1103
+ /**
1104
+ * Creation date of the message. ISO 8601 UTC.
1105
+ */
1106
+ date_created: string;
1107
+ };
1108
+ export type Ticket = {
1109
+ /**
1110
+ * Unique identifier of the ticket (Mongo ObjectId).
1111
+ */
1112
+ id: string;
1113
+ /**
1114
+ * Current state of the ticket.
1115
+ */
1116
+ status: 'waiting_on_us' | 'waiting_on_user' | 'closed';
1117
+ /**
1118
+ * Ticket category.
1119
+ */
1120
+ category: 'billing' | 'technical' | 'general';
1121
+ /**
1122
+ * First 128 characters of the initial message body, with markdown formatting and newlines stripped. Used for ticket list previews.
1123
+ */
1124
+ summary: string;
1125
+ /**
1126
+ * Closure timestamp. Null while the ticket is open.
1127
+ */
1128
+ closed_at?: string;
1129
+ /**
1130
+ * Creation date of the ticket. ISO 8601 UTC.
1131
+ */
1132
+ date_created: string;
1133
+ /**
1134
+ * Last update date of the ticket. ISO 8601 UTC.
1135
+ */
1136
+ date_updated: string;
1137
+ /**
1138
+ * Messages on the ticket in chronological order. Internal notes are excluded. Returned by the detail endpoint only.
1139
+ */
1140
+ messages?: Array<{
1141
+ /**
1142
+ * Unique identifier of the message (Mongo ObjectId).
1143
+ */
1144
+ id: string;
1145
+ /**
1146
+ * Message type. Internal notes are filtered out of customer-facing responses.
1147
+ */
1148
+ type: 'customer_reply' | 'agent_reply';
1149
+ /**
1150
+ * Message body in markdown.
1151
+ */
1152
+ body: string;
1153
+ /**
1154
+ * First name of the author. Null when not provided.
1155
+ */
1156
+ author_first_name?: string;
1157
+ /**
1158
+ * Last name of the author. Null when not provided.
1159
+ */
1160
+ author_last_name?: string;
1161
+ /**
1162
+ * Attachments associated with this message.
1163
+ */
1164
+ attachments?: Array<{
1165
+ /**
1166
+ * Unique identifier of the attachment (Mongo ObjectId).
1167
+ */
1168
+ id: string;
1169
+ /**
1170
+ * Original filename as uploaded.
1171
+ */
1172
+ filename: string;
1173
+ /**
1174
+ * MIME content type of the attachment.
1175
+ */
1176
+ content_type: string;
1177
+ /**
1178
+ * Size of the attachment in bytes.
1179
+ */
1180
+ size: number;
1181
+ }>;
1182
+ /**
1183
+ * Creation date of the message. ISO 8601 UTC.
1184
+ */
1185
+ date_created: string;
1186
+ }>;
1187
+ };
876
1188
  export type TokenCreateInput = {
877
1189
  /**
878
1190
  * Human readable access token name.
@@ -1920,6 +2232,111 @@ export type GetTagResponses = {
1920
2232
  200: RegistryTag;
1921
2233
  };
1922
2234
  export type GetTagResponse = GetTagResponses[keyof GetTagResponses];
2235
+ export type ListTicketsData = {
2236
+ body?: never;
2237
+ path?: never;
2238
+ query?: never;
2239
+ url: '/tickets';
2240
+ };
2241
+ export type ListTicketsResponses = {
2242
+ /**
2243
+ * Tickets for the organization.
2244
+ */
2245
+ 200: TicketListResponse;
2246
+ };
2247
+ export type ListTicketsResponse = ListTicketsResponses[keyof ListTicketsResponses];
2248
+ export type CreateTicketData = {
2249
+ body: {
2250
+ /**
2251
+ * JSON-encoded TicketCreateInput.
2252
+ */
2253
+ payload?: string;
2254
+ attachments?: Array<Blob | File>;
2255
+ };
2256
+ path?: never;
2257
+ query?: never;
2258
+ url: '/tickets';
2259
+ };
2260
+ export type CreateTicketResponses = {
2261
+ /**
2262
+ * Ticket created.
2263
+ */
2264
+ 200: Ticket;
2265
+ };
2266
+ export type CreateTicketResponse = CreateTicketResponses[keyof CreateTicketResponses];
2267
+ export type CloseTicketData = {
2268
+ body?: never;
2269
+ path: {
2270
+ ticket_id: string;
2271
+ };
2272
+ query?: never;
2273
+ url: '/tickets/{ticket_id}';
2274
+ };
2275
+ export type CloseTicketResponses = {
2276
+ /**
2277
+ * Ticket closed.
2278
+ */
2279
+ 200: Ticket;
2280
+ };
2281
+ export type CloseTicketResponse = CloseTicketResponses[keyof CloseTicketResponses];
2282
+ export type GetTicketData = {
2283
+ body?: never;
2284
+ path: {
2285
+ ticket_id: string;
2286
+ };
2287
+ query?: never;
2288
+ url: '/tickets/{ticket_id}';
2289
+ };
2290
+ export type GetTicketResponses = {
2291
+ /**
2292
+ * Ticket with messages (internal notes excluded).
2293
+ */
2294
+ 200: Ticket;
2295
+ };
2296
+ export type GetTicketResponse = GetTicketResponses[keyof GetTicketResponses];
2297
+ export type ReplyTicketData = {
2298
+ body: {
2299
+ /**
2300
+ * JSON-encoded TicketMessageInput.
2301
+ */
2302
+ payload?: string;
2303
+ attachments?: Array<Blob | File>;
2304
+ };
2305
+ path: {
2306
+ ticket_id: string;
2307
+ };
2308
+ query?: never;
2309
+ url: '/tickets/{ticket_id}/messages';
2310
+ };
2311
+ export type ReplyTicketErrors = {
2312
+ /**
2313
+ * Ticket is closed. Open a new ticket instead.
2314
+ */
2315
+ 409: unknown;
2316
+ };
2317
+ export type ReplyTicketResponses = {
2318
+ /**
2319
+ * Reply appended.
2320
+ */
2321
+ 200: TicketMessage;
2322
+ };
2323
+ export type ReplyTicketResponse = ReplyTicketResponses[keyof ReplyTicketResponses];
2324
+ export type GetTicketAttachmentData = {
2325
+ body?: never;
2326
+ path: {
2327
+ ticket_id: string;
2328
+ attachment_id: string;
2329
+ };
2330
+ query?: never;
2331
+ url: '/tickets/{ticket_id}/attachments/{attachment_id}';
2332
+ };
2333
+ export type GetTicketAttachmentResponses = {
2334
+ /**
2335
+ * Attachment binary stream.
2336
+ */
2337
+ 200: Blob | File;
2338
+ };
2339
+ export type GetTicketAttachmentResponse = GetTicketAttachmentResponses[keyof GetTicketAttachmentResponses];
1923
2340
  export type ListTokensData = {
1924
2341
  body?: never;
1925
2342
  path?: never;