@cloudfleet/sdk 0.0.1-4e71ce0 → 0.0.1-4ee2c6f

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