@cloudfleet/sdk 0.0.1-081916a → 0.0.1-092d0b4

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
  */
@@ -129,9 +133,9 @@ export type Chart = {
129
133
  */
130
134
  chart: string;
131
135
  /**
132
- * Status of the chart deployment.
136
+ * Status of the chart deployment (Flux HelmRelease Ready condition reason, e.g. InstallSucceeded, UpgradeFailed, Progressing).
133
137
  */
134
- status: 'InstallSucceeded' | 'InstallFailed' | 'UpgradeSucceeded' | 'UpgradeFailed' | 'TestSucceeded' | 'TestFailed' | 'RollbackSucceeded' | 'RollbackFailed' | 'UninstallSucceeded' | 'UninstallFailed' | 'ArtifactFailed' | 'DependencyNotReady' | 'Progressing' | 'SourceNotReady';
138
+ status: string;
135
139
  /**
136
140
  * Current version of the chart deployment.
137
141
  */
@@ -169,13 +173,13 @@ export type ClusterCreateInput = {
169
173
  */
170
174
  tier: 'basic' | 'pro';
171
175
  /**
172
- * Cloudfleet control plane region. One of "staging-1a", "northamerica-central-1", "europe-central-1a", "northamerica-central-1a". This field can not be updated after creation.
176
+ * Cloudfleet control plane region. This field can not be updated after creation.
173
177
  */
174
- region?: 'staging-1a' | 'northamerica-central-1' | 'europe-central-1a' | 'northamerica-central-1a';
178
+ region: string;
175
179
  /**
176
180
  * Version of the kubernetes cluster.
177
181
  */
178
- version_channel?: '1.x.x-cfke.x' | '1.31.x-cfke.x' | '1.32.x-cfke.x' | '1.33.x-cfke.x';
182
+ version_channel?: string;
179
183
  };
180
184
  export type ClusterJoinInformation = {
181
185
  /**
@@ -190,6 +194,10 @@ export type ClusterJoinInformation = {
190
194
  * Cluster DNS IP address. This is the IP address of the kube-dns service in the cluster.
191
195
  */
192
196
  cluster_dns: string;
197
+ /**
198
+ * Pod CIDR for the cluster. Used to configure iptables rules on nodes to prevent Tailscale routing loops.
199
+ */
200
+ pod_cidr: string;
193
201
  /**
194
202
  * Authentication key for the cluster.
195
203
  */
@@ -247,9 +255,9 @@ export type Cluster = {
247
255
  */
248
256
  tier: 'basic' | 'pro';
249
257
  /**
250
- * Cloudfleet control plane region. One of "staging-1a", "northamerica-central-1", "europe-central-1a", "northamerica-central-1a". This field can not be updated after creation.
258
+ * Cloudfleet control plane region. This field can not be updated after creation.
251
259
  */
252
- region?: 'staging-1a' | 'northamerica-central-1' | 'europe-central-1a' | 'northamerica-central-1a';
260
+ region: string;
253
261
  /**
254
262
  * Unique identifier of the kubernetes cluster. UUID v4 string in canonical form
255
263
  */
@@ -259,6 +267,7 @@ export type Cluster = {
259
267
  */
260
268
  status: 'active' | 'disabled' | 'deleted' | 'creating' | 'deployed' | 'failed' | 'updating';
261
269
  endpoint?: string | '';
270
+ endpoint_public?: string | '';
262
271
  /**
263
272
  * Certificate authority data for the kubernetes cluster. This is the root certificate authority for the cluster.
264
273
  */
@@ -304,31 +313,56 @@ export type FleetCreateInput = {
304
313
  */
305
314
  limits?: {
306
315
  /**
307
- * CPU limit in cores.
316
+ * CPU limit in cores. Maximum 100,000.
308
317
  */
309
- cpu: number;
318
+ cpu?: number;
310
319
  };
311
320
  gcp?: {
312
- enabled?: boolean;
321
+ enabled: boolean;
313
322
  /**
314
- * Project GCP Project id to deploy instances into
323
+ * 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
324
  */
316
- project: string;
325
+ project?: string;
317
326
  };
318
327
  hetzner?: {
319
- enabled?: boolean;
328
+ enabled: boolean;
320
329
  /**
321
- * Hetzner Cloud API key with read / write access
330
+ * Hetzner Cloud API token with read / write access (64 alphanumeric characters). Omit this field to keep the existing value.
322
331
  */
323
- apiKey: string;
332
+ apiKey?: string;
324
333
  };
325
334
  aws?: {
326
- enabled?: boolean;
335
+ enabled: boolean;
336
+ /**
337
+ * AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.
338
+ */
339
+ controllerRoleArn?: string;
340
+ };
341
+ /**
342
+ * 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.
343
+ */
344
+ constraints?: {
327
345
  /**
328
- * ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.
346
+ * Allowed values for `karpenter.sh/capacity-type`.
329
347
  */
330
- controllerRoleArn: string;
348
+ 'karpenter.sh/capacity-type'?: Array<'on-demand' | 'spot'>;
349
+ /**
350
+ * Allowed values for `kubernetes.io/arch`.
351
+ */
352
+ 'kubernetes.io/arch'?: Array<'amd64' | 'arm64'>;
353
+ /**
354
+ * Allowed values for `cfke.io/instance-family`.
355
+ */
356
+ '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'>;
357
+ /**
358
+ * Allowed values for `topology.kubernetes.io/region`.
359
+ */
360
+ '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
361
  };
362
+ /**
363
+ * Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.
364
+ */
365
+ scalingProfile?: 'aggressive' | 'conservative';
332
366
  /**
333
367
  * Unique identifier of the kubernetes fleet.
334
368
  */
@@ -340,31 +374,56 @@ export type Fleet = {
340
374
  */
341
375
  limits?: {
342
376
  /**
343
- * CPU limit in cores.
377
+ * CPU limit in cores. Maximum 100,000.
344
378
  */
345
- cpu: number;
379
+ cpu?: number;
346
380
  };
347
381
  gcp?: {
348
- enabled?: boolean;
382
+ enabled: boolean;
349
383
  /**
350
- * Project GCP Project id to deploy instances into
384
+ * 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
385
  */
352
- project: string;
386
+ project?: string;
353
387
  };
354
388
  hetzner?: {
355
- enabled?: boolean;
389
+ enabled: boolean;
356
390
  /**
357
- * Hetzner Cloud API key with read / write access
391
+ * 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
392
  */
359
- apiKey: string;
393
+ apiKey?: string;
360
394
  };
361
395
  aws?: {
362
- enabled?: boolean;
396
+ enabled: boolean;
397
+ /**
398
+ * AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.
399
+ */
400
+ controllerRoleArn?: string;
401
+ };
402
+ /**
403
+ * 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.
404
+ */
405
+ constraints?: {
406
+ /**
407
+ * Allowed values for `karpenter.sh/capacity-type`.
408
+ */
409
+ 'karpenter.sh/capacity-type'?: Array<'on-demand' | 'spot'>;
410
+ /**
411
+ * Allowed values for `kubernetes.io/arch`.
412
+ */
413
+ 'kubernetes.io/arch'?: Array<'amd64' | 'arm64'>;
414
+ /**
415
+ * Allowed values for `cfke.io/instance-family`.
416
+ */
417
+ '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'>;
363
418
  /**
364
- * ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.
419
+ * Allowed values for `topology.kubernetes.io/region`.
365
420
  */
366
- controllerRoleArn: string;
421
+ '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
422
  };
423
+ /**
424
+ * Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.
425
+ */
426
+ scalingProfile: 'aggressive' | 'conservative';
368
427
  /**
369
428
  * Unique identifier of the kubernetes fleet.
370
429
  */
@@ -376,31 +435,66 @@ export type FleetUpdateInput = {
376
435
  */
377
436
  limits?: {
378
437
  /**
379
- * CPU limit in cores.
438
+ * CPU limit in cores. Maximum 100,000.
380
439
  */
381
- cpu: number;
440
+ cpu?: number;
382
441
  };
383
442
  gcp?: {
384
- enabled?: boolean;
443
+ enabled: boolean;
385
444
  /**
386
- * Project GCP Project id to deploy instances into
445
+ * 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
446
  */
388
- project: string;
447
+ project?: string;
389
448
  };
390
449
  hetzner?: {
391
- enabled?: boolean;
450
+ enabled: boolean;
392
451
  /**
393
- * Hetzner Cloud API key with read / write access
452
+ * Hetzner Cloud API token with read / write access (64 alphanumeric characters). Omit this field to keep the existing value.
394
453
  */
395
- apiKey: string;
454
+ apiKey?: string;
396
455
  };
397
456
  aws?: {
398
- enabled?: boolean;
457
+ enabled: boolean;
458
+ /**
459
+ * AWS IAM role ARN that Karpenter uses to manage resources. Omit when AWS is disabled.
460
+ */
461
+ controllerRoleArn?: string;
462
+ };
463
+ /**
464
+ * 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.
465
+ */
466
+ constraints?: {
467
+ /**
468
+ * Allowed values for `karpenter.sh/capacity-type`.
469
+ */
470
+ 'karpenter.sh/capacity-type'?: Array<'on-demand' | 'spot'>;
471
+ /**
472
+ * Allowed values for `kubernetes.io/arch`.
473
+ */
474
+ 'kubernetes.io/arch'?: Array<'amd64' | 'arm64'>;
399
475
  /**
400
- * ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.
476
+ * Allowed values for `cfke.io/instance-family`.
401
477
  */
402
- controllerRoleArn: string;
478
+ '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'>;
479
+ /**
480
+ * Allowed values for `topology.kubernetes.io/region`.
481
+ */
482
+ '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'>;
403
483
  };
484
+ /**
485
+ * Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.
486
+ */
487
+ scalingProfile: 'aggressive' | 'conservative';
488
+ };
489
+ export type InviteCreateInput = {
490
+ /**
491
+ * Email address of the user to invite.
492
+ */
493
+ email: string;
494
+ /**
495
+ * Role the invited user will be assigned on redemption. Can be 'Administrator' or 'User'.
496
+ */
497
+ role?: 'Administrator' | 'User';
404
498
  };
405
499
  export type Invite = {
406
500
  /**
@@ -423,6 +517,10 @@ export type Invite = {
423
517
  * Generated unique invite code.
424
518
  */
425
519
  code?: string;
520
+ /**
521
+ * Role the invited user will be assigned on redemption. Can be 'Administrator' or 'User'.
522
+ */
523
+ role?: 'Administrator' | 'User';
426
524
  };
427
525
  export type Invoice = {
428
526
  /**
@@ -543,6 +641,10 @@ export type MarketplaceListing = {
543
641
  };
544
642
  };
545
643
  export type OrganizationCreateInput = {
644
+ /**
645
+ * Type of the organization. `business` for legal entities, `personal` for individuals.
646
+ */
647
+ type: 'business' | 'personal';
546
648
  /**
547
649
  * Email address used for billing as a string.
548
650
  */
@@ -564,6 +666,12 @@ export type OrganizationCreateInput = {
564
666
  */
565
667
  password: string;
566
668
  };
669
+ export type OrganizationCreateOutput = {
670
+ /**
671
+ * Unique identifier of the newly created organization. Generated by the API and safe to use for client-side tracking immediately.
672
+ */
673
+ id: string;
674
+ };
567
675
  export type Organization = {
568
676
  /**
569
677
  * Unique identifier of the organization. UUID v4 string in canonical form
@@ -573,6 +681,10 @@ export type Organization = {
573
681
  * Name of the legal entity. This name will be used in invoices. Use your first and last name for individual accounts.
574
682
  */
575
683
  name?: string;
684
+ /**
685
+ * Type of the organization. `business` for legal entities, `personal` for individuals.
686
+ */
687
+ type: 'business' | 'personal';
576
688
  /**
577
689
  * Creation date of the organization. ISO 8601 date string in UTC timezone
578
690
  */
@@ -631,36 +743,52 @@ export type Organization = {
631
743
  * Status of the organization. Can be `active` or `closed`, or `suspended`.
632
744
  */
633
745
  status: 'active' | 'closed' | 'suspended';
746
+ /**
747
+ * 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.
748
+ */
749
+ verification: 'none' | 'submitted' | 'verified';
634
750
  };
635
751
  export type PaymentMethod = {
636
752
  /**
637
- * Unique identifier of the organization. UUID v4 string in canonical form.
753
+ * Payment method identifier. Stripe payment method id for cards/SEPA; the constant `bank_transfer` for the invoice/bank-transfer method. Used to set as default or delete the payment method.
638
754
  */
639
755
  id: string;
640
756
  /**
641
- * Whether organization payment method was set up and ready to use for payments.
757
+ * Payment method type. `card`, `sepa_debit` for SEPA Direct Debit (business accounts only), or `bank_transfer` for paying invoices by bank transfer.
642
758
  */
643
- setup: boolean;
759
+ type: 'card' | 'sepa_debit' | 'bank_transfer';
644
760
  /**
645
- * Payment method type type. Only `card` payments supported at the moment.
646
- */
647
- type: 'card';
648
- /**
649
- * Last 4 digits of the payment card number.
761
+ * Last 4 digits of the payment card number, of the bank account (IBAN) for SEPA Direct Debit, or of the destination IBAN for bank transfer.
650
762
  */
651
763
  last4: string;
652
764
  /**
653
- * Two-digit number representing the card's expiration month.
765
+ * Two-digit number representing the card's expiration month. Null for SEPA Direct Debit and bank transfer.
654
766
  */
655
767
  exp_month: number;
656
768
  /**
657
- * Four-digit number representing the card's expiration year.
769
+ * Four-digit number representing the card's expiration year. May be in the past for an expired card still on file. Null for SEPA Direct Debit and bank transfer.
658
770
  */
659
771
  exp_year: number;
660
772
  /**
661
- * Payment card brand. Can be `amex`, `diners`, `discover`, `eftpos_au`, `jcb`, `mastercard`, `unionpay`, `visa`, or `unknown`.
773
+ * Payment card brand as reported by Stripe, e.g. `visa`, `mastercard`, `amex`, `cartes_bancaires`, or `unknown`. Null for SEPA Direct Debit and bank transfer.
774
+ */
775
+ brand: string;
776
+ /**
777
+ * Full destination IBAN to send bank transfers to. Set only for `bank_transfer`; null otherwise. This is Cloudfleet's virtual receiving account, shown in full so the customer can pay into it.
778
+ */
779
+ iban: string;
780
+ /**
781
+ * BIC/SWIFT of the destination bank for bank transfers. Set only for `bank_transfer`; null otherwise.
662
782
  */
663
- brand: 'amex' | 'diners' | 'discover' | 'eftpos_au' | 'jcb' | 'mastercard' | 'unionpay' | 'visa' | 'unknown';
783
+ bic: string;
784
+ /**
785
+ * Account holder name of the destination bank account for bank transfers. Set only for `bank_transfer`; null otherwise.
786
+ */
787
+ account_holder_name: string;
788
+ /**
789
+ * Whether this payment method is the default used for invoices and active subscriptions. Always false for `bank_transfer` (it cannot be a Stripe default payment method).
790
+ */
791
+ is_default: boolean;
664
792
  };
665
793
  export type PlatformQuota = {
666
794
  /**
@@ -857,6 +985,258 @@ export type RegistryTag = {
857
985
  */
858
986
  uri: string;
859
987
  };
988
+ export type TicketAttachment = {
989
+ /**
990
+ * Unique identifier of the attachment (Mongo ObjectId).
991
+ */
992
+ id: string;
993
+ /**
994
+ * Original filename as uploaded.
995
+ */
996
+ filename: string;
997
+ /**
998
+ * MIME content type of the attachment.
999
+ */
1000
+ content_type: string;
1001
+ /**
1002
+ * Size of the attachment in bytes.
1003
+ */
1004
+ size: number;
1005
+ };
1006
+ export type TicketCreateInput = {
1007
+ /**
1008
+ * Ticket category. Drives auto-assignment and may carry a subcategory in `properties`.
1009
+ */
1010
+ category: 'billing' | 'technical' | 'general';
1011
+ /**
1012
+ * Initial message body in markdown. There is no separate subject — the first message body is the description.
1013
+ */
1014
+ body: string;
1015
+ /**
1016
+ * Free-form key/value bag set by the UI (e.g. `subcategory`, `cluster_id`, `cluster_name`, `region`).
1017
+ */
1018
+ properties?: {
1019
+ [key: string]: unknown;
1020
+ };
1021
+ };
1022
+ export type TicketListResponse = {
1023
+ /**
1024
+ * Tickets for the organization, ordered newest first. Messages are omitted from list responses.
1025
+ */
1026
+ items: Array<{
1027
+ /**
1028
+ * Unique identifier of the ticket (Mongo ObjectId).
1029
+ */
1030
+ id: string;
1031
+ /**
1032
+ * Current state of the ticket.
1033
+ */
1034
+ status: 'waiting_on_us' | 'waiting_on_user' | 'closed';
1035
+ /**
1036
+ * Ticket category.
1037
+ */
1038
+ category: 'billing' | 'technical' | 'general';
1039
+ /**
1040
+ * First 128 characters of the initial message body, with markdown formatting and newlines stripped. Used for ticket list previews.
1041
+ */
1042
+ summary: string;
1043
+ /**
1044
+ * Closure timestamp. Null while the ticket is open.
1045
+ */
1046
+ closed_at?: string;
1047
+ /**
1048
+ * Creation date of the ticket. ISO 8601 UTC.
1049
+ */
1050
+ date_created: string;
1051
+ /**
1052
+ * Last update date of the ticket. ISO 8601 UTC.
1053
+ */
1054
+ date_updated: string;
1055
+ /**
1056
+ * Messages on the ticket in chronological order. Internal notes are excluded. Returned by the detail endpoint only.
1057
+ */
1058
+ messages?: Array<{
1059
+ /**
1060
+ * Unique identifier of the message (Mongo ObjectId).
1061
+ */
1062
+ id: string;
1063
+ /**
1064
+ * Message type. Internal notes are filtered out of customer-facing responses.
1065
+ */
1066
+ type: 'customer_reply' | 'agent_reply';
1067
+ /**
1068
+ * Message body in markdown.
1069
+ */
1070
+ body: string;
1071
+ /**
1072
+ * First name of the author. Null when not provided.
1073
+ */
1074
+ author_first_name?: string;
1075
+ /**
1076
+ * Last name of the author. Null when not provided.
1077
+ */
1078
+ author_last_name?: string;
1079
+ /**
1080
+ * Attachments associated with this message.
1081
+ */
1082
+ attachments?: Array<{
1083
+ /**
1084
+ * Unique identifier of the attachment (Mongo ObjectId).
1085
+ */
1086
+ id: string;
1087
+ /**
1088
+ * Original filename as uploaded.
1089
+ */
1090
+ filename: string;
1091
+ /**
1092
+ * MIME content type of the attachment.
1093
+ */
1094
+ content_type: string;
1095
+ /**
1096
+ * Size of the attachment in bytes.
1097
+ */
1098
+ size: number;
1099
+ }>;
1100
+ /**
1101
+ * Creation date of the message. ISO 8601 UTC.
1102
+ */
1103
+ date_created: string;
1104
+ }>;
1105
+ }>;
1106
+ };
1107
+ export type TicketMessageInput = {
1108
+ /**
1109
+ * Reply body in markdown.
1110
+ */
1111
+ body: string;
1112
+ };
1113
+ export type TicketMessage = {
1114
+ /**
1115
+ * Unique identifier of the message (Mongo ObjectId).
1116
+ */
1117
+ id: string;
1118
+ /**
1119
+ * Message type. Internal notes are filtered out of customer-facing responses.
1120
+ */
1121
+ type: 'customer_reply' | 'agent_reply';
1122
+ /**
1123
+ * Message body in markdown.
1124
+ */
1125
+ body: string;
1126
+ /**
1127
+ * First name of the author. Null when not provided.
1128
+ */
1129
+ author_first_name?: string;
1130
+ /**
1131
+ * Last name of the author. Null when not provided.
1132
+ */
1133
+ author_last_name?: string;
1134
+ /**
1135
+ * Attachments associated with this message.
1136
+ */
1137
+ attachments?: Array<{
1138
+ /**
1139
+ * Unique identifier of the attachment (Mongo ObjectId).
1140
+ */
1141
+ id: string;
1142
+ /**
1143
+ * Original filename as uploaded.
1144
+ */
1145
+ filename: string;
1146
+ /**
1147
+ * MIME content type of the attachment.
1148
+ */
1149
+ content_type: string;
1150
+ /**
1151
+ * Size of the attachment in bytes.
1152
+ */
1153
+ size: number;
1154
+ }>;
1155
+ /**
1156
+ * Creation date of the message. ISO 8601 UTC.
1157
+ */
1158
+ date_created: string;
1159
+ };
1160
+ export type Ticket = {
1161
+ /**
1162
+ * Unique identifier of the ticket (Mongo ObjectId).
1163
+ */
1164
+ id: string;
1165
+ /**
1166
+ * Current state of the ticket.
1167
+ */
1168
+ status: 'waiting_on_us' | 'waiting_on_user' | 'closed';
1169
+ /**
1170
+ * Ticket category.
1171
+ */
1172
+ category: 'billing' | 'technical' | 'general';
1173
+ /**
1174
+ * First 128 characters of the initial message body, with markdown formatting and newlines stripped. Used for ticket list previews.
1175
+ */
1176
+ summary: string;
1177
+ /**
1178
+ * Closure timestamp. Null while the ticket is open.
1179
+ */
1180
+ closed_at?: string;
1181
+ /**
1182
+ * Creation date of the ticket. ISO 8601 UTC.
1183
+ */
1184
+ date_created: string;
1185
+ /**
1186
+ * Last update date of the ticket. ISO 8601 UTC.
1187
+ */
1188
+ date_updated: string;
1189
+ /**
1190
+ * Messages on the ticket in chronological order. Internal notes are excluded. Returned by the detail endpoint only.
1191
+ */
1192
+ messages?: Array<{
1193
+ /**
1194
+ * Unique identifier of the message (Mongo ObjectId).
1195
+ */
1196
+ id: string;
1197
+ /**
1198
+ * Message type. Internal notes are filtered out of customer-facing responses.
1199
+ */
1200
+ type: 'customer_reply' | 'agent_reply';
1201
+ /**
1202
+ * Message body in markdown.
1203
+ */
1204
+ body: string;
1205
+ /**
1206
+ * First name of the author. Null when not provided.
1207
+ */
1208
+ author_first_name?: string;
1209
+ /**
1210
+ * Last name of the author. Null when not provided.
1211
+ */
1212
+ author_last_name?: string;
1213
+ /**
1214
+ * Attachments associated with this message.
1215
+ */
1216
+ attachments?: Array<{
1217
+ /**
1218
+ * Unique identifier of the attachment (Mongo ObjectId).
1219
+ */
1220
+ id: string;
1221
+ /**
1222
+ * Original filename as uploaded.
1223
+ */
1224
+ filename: string;
1225
+ /**
1226
+ * MIME content type of the attachment.
1227
+ */
1228
+ content_type: string;
1229
+ /**
1230
+ * Size of the attachment in bytes.
1231
+ */
1232
+ size: number;
1233
+ }>;
1234
+ /**
1235
+ * Creation date of the message. ISO 8601 UTC.
1236
+ */
1237
+ date_created: string;
1238
+ }>;
1239
+ };
860
1240
  export type TokenCreateInput = {
861
1241
  /**
862
1242
  * Human readable access token name.
@@ -1000,14 +1380,6 @@ export type UserCreateInput = {
1000
1380
  * User password. Must be at least 8 characters long.
1001
1381
  */
1002
1382
  password: string;
1003
- /**
1004
- * Status of the user. Can be `active` or `inactive`. Inactive users cannot log in or manage organization resources.
1005
- */
1006
- status?: 'active' | 'inactive';
1007
- /**
1008
- * User role. Can be 'Administrator', 'User'.
1009
- */
1010
- role?: 'Administrator' | 'User';
1011
1383
  };
1012
1384
  export type User = {
1013
1385
  /**
@@ -1085,44 +1457,112 @@ export type GetUsageResponses = {
1085
1457
  200: UsageResponse;
1086
1458
  };
1087
1459
  export type GetUsageResponse = GetUsageResponses[keyof GetUsageResponses];
1088
- export type GetPaymentMethodData = {
1460
+ export type GetPaymentMethodSecretData = {
1089
1461
  body?: never;
1090
1462
  path?: never;
1091
1463
  query?: never;
1092
1464
  url: '/billing/payment-method';
1093
1465
  };
1094
- export type GetPaymentMethodErrors = {
1466
+ export type GetPaymentMethodSecretResponses = {
1095
1467
  /**
1096
- * Returns 404 Not Found if the organization does not have a payment method set up.
1468
+ * 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.
1469
+ *
1097
1470
  */
1098
- 404: unknown;
1471
+ 200: {
1472
+ /**
1473
+ * The client secret.
1474
+ */
1475
+ id?: string;
1476
+ };
1477
+ };
1478
+ export type GetPaymentMethodSecretResponse = GetPaymentMethodSecretResponses[keyof GetPaymentMethodSecretResponses];
1479
+ export type ListPaymentMethodsData = {
1480
+ body?: never;
1481
+ path?: never;
1482
+ query?: never;
1483
+ url: '/billing/payment-methods';
1099
1484
  };
1100
- export type GetPaymentMethodResponses = {
1485
+ export type ListPaymentMethodsErrors = {
1101
1486
  /**
1102
- * Redacted payment card information.
1487
+ * Not authenticated
1103
1488
  */
1104
- 200: PaymentMethod;
1489
+ 401: unknown;
1105
1490
  };
1106
- export type GetPaymentMethodResponse = GetPaymentMethodResponses[keyof GetPaymentMethodResponses];
1107
- export type GetPaymentMethodSecretData = {
1491
+ export type ListPaymentMethodsResponses = {
1492
+ /**
1493
+ * An array of payment methods.
1494
+ */
1495
+ 200: Array<PaymentMethod>;
1496
+ };
1497
+ export type ListPaymentMethodsResponse = ListPaymentMethodsResponses[keyof ListPaymentMethodsResponses];
1498
+ export type SetDefaultPaymentMethodData = {
1108
1499
  body?: never;
1109
- path?: never;
1500
+ path: {
1501
+ /**
1502
+ * Stripe payment method identifier.
1503
+ */
1504
+ paymentMethodId: string;
1505
+ };
1110
1506
  query?: never;
1111
- url: '/billing/payment-method';
1507
+ url: '/billing/payment-methods/{paymentMethodId}/default';
1112
1508
  };
1113
- export type GetPaymentMethodSecretResponses = {
1509
+ export type SetDefaultPaymentMethodErrors = {
1114
1510
  /**
1115
- * 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.
1116
- *
1511
+ * The bank transfer payment method cannot be set as the default.
1117
1512
  */
1118
- 200: {
1513
+ 400: unknown;
1514
+ /**
1515
+ * Not authenticated
1516
+ */
1517
+ 401: unknown;
1518
+ /**
1519
+ * Payment method not found.
1520
+ */
1521
+ 404: unknown;
1522
+ };
1523
+ export type SetDefaultPaymentMethodResponses = {
1524
+ /**
1525
+ * Default payment method updated.
1526
+ */
1527
+ 204: void;
1528
+ };
1529
+ export type SetDefaultPaymentMethodResponse = SetDefaultPaymentMethodResponses[keyof SetDefaultPaymentMethodResponses];
1530
+ export type DeletePaymentMethodData = {
1531
+ body?: never;
1532
+ path: {
1119
1533
  /**
1120
- * The client secret.
1534
+ * Stripe payment method identifier.
1121
1535
  */
1122
- id?: string;
1536
+ paymentMethodId: string;
1123
1537
  };
1538
+ query?: never;
1539
+ url: '/billing/payment-methods/{paymentMethodId}';
1124
1540
  };
1125
- export type GetPaymentMethodSecretResponse = GetPaymentMethodSecretResponses[keyof GetPaymentMethodSecretResponses];
1541
+ export type DeletePaymentMethodErrors = {
1542
+ /**
1543
+ * The bank transfer payment method cannot be removed.
1544
+ */
1545
+ 400: unknown;
1546
+ /**
1547
+ * Not authenticated
1548
+ */
1549
+ 401: unknown;
1550
+ /**
1551
+ * Payment method not found.
1552
+ */
1553
+ 404: unknown;
1554
+ /**
1555
+ * Cannot delete the only remaining payment method.
1556
+ */
1557
+ 409: unknown;
1558
+ };
1559
+ export type DeletePaymentMethodResponses = {
1560
+ /**
1561
+ * Payment method deleted.
1562
+ */
1563
+ 204: void;
1564
+ };
1565
+ export type DeletePaymentMethodResponse = DeletePaymentMethodResponses[keyof DeletePaymentMethodResponses];
1126
1566
  export type ListInvoicesData = {
1127
1567
  body?: never;
1128
1568
  path?: never;
@@ -1513,9 +1953,20 @@ export type DeleteClusterData = {
1513
1953
  query?: never;
1514
1954
  url: '/clusters/{cluster_id}';
1515
1955
  };
1956
+ export type DeleteClusterErrors = {
1957
+ /**
1958
+ * Cluster not found — it does not exist or has already been deleted.
1959
+ */
1960
+ 404: unknown;
1961
+ /**
1962
+ * The cluster could not be torn down due to a transient failure. The cluster is left intact; retry the request.
1963
+ *
1964
+ */
1965
+ 503: unknown;
1966
+ };
1516
1967
  export type DeleteClusterResponses = {
1517
1968
  /**
1518
- * Successfully deleted.
1969
+ * Successfully deleted. The cluster has been torn down.
1519
1970
  */
1520
1971
  200: string;
1521
1972
  };
@@ -1556,30 +2007,6 @@ export type UpdateClusterResponses = {
1556
2007
  200: Cluster;
1557
2008
  };
1558
2009
  export type UpdateClusterResponse = UpdateClusterResponses[keyof UpdateClusterResponses];
1559
- export type GetClusterCaData = {
1560
- body?: never;
1561
- path: {
1562
- /**
1563
- * Unique identifier of the cluster. UUID v4 string in canonical form
1564
- */
1565
- cluster_id: string;
1566
- };
1567
- query?: never;
1568
- url: '/clusters/{cluster_id}/ca';
1569
- };
1570
- export type GetClusterCaErrors = {
1571
- /**
1572
- * Cluster not found, or its certificate authority is not available yet.
1573
- */
1574
- 404: unknown;
1575
- };
1576
- export type GetClusterCaResponses = {
1577
- /**
1578
- * PEM-encoded certificate authority of the cluster.
1579
- */
1580
- 200: string;
1581
- };
1582
- export type GetClusterCaResponse = GetClusterCaResponses[keyof GetClusterCaResponses];
1583
2010
  export type GetJoinInformationData = {
1584
2011
  body?: never;
1585
2012
  path: {
@@ -1624,12 +2051,7 @@ export type ListInvitesResponses = {
1624
2051
  };
1625
2052
  export type ListInvitesResponse = ListInvitesResponses[keyof ListInvitesResponses];
1626
2053
  export type CreateInviteData = {
1627
- body: {
1628
- /**
1629
- * User email address
1630
- */
1631
- email?: string;
1632
- };
2054
+ body: InviteCreateInput;
1633
2055
  path?: never;
1634
2056
  query?: never;
1635
2057
  url: '/invites';
@@ -1654,9 +2076,18 @@ export type GetInviteData = {
1654
2076
  };
1655
2077
  export type GetInviteResponses = {
1656
2078
  /**
1657
- * Returns a single object containing invite details.
2079
+ * The invitation code is valid. Returns the invited email and organization.
1658
2080
  */
1659
- 200: Invite;
2081
+ 200: {
2082
+ /**
2083
+ * Email address the invite was issued to.
2084
+ */
2085
+ email?: string;
2086
+ /**
2087
+ * Identifier of the organization the invite grants access to.
2088
+ */
2089
+ organization_id?: string;
2090
+ };
1660
2091
  };
1661
2092
  export type GetInviteResponse = GetInviteResponses[keyof GetInviteResponses];
1662
2093
  export type DeleteInviteData = {
@@ -1786,10 +2217,12 @@ export type CreateOrganizationData = {
1786
2217
  };
1787
2218
  export type CreateOrganizationResponses = {
1788
2219
  /**
1789
- * Successfully created a new organization.
2220
+ * Organization signup accepted. Returns the generated organization id immediately; provisioning (billing, Keycloak realm, user) continues asynchronously in the background.
2221
+ *
1790
2222
  */
1791
- 200: unknown;
2223
+ 200: OrganizationCreateOutput;
1792
2224
  };
2225
+ export type CreateOrganizationResponse = CreateOrganizationResponses[keyof CreateOrganizationResponses];
1793
2226
  export type ListRepositoriesData = {
1794
2227
  body?: never;
1795
2228
  path?: never;
@@ -1928,6 +2361,111 @@ export type GetTagResponses = {
1928
2361
  200: RegistryTag;
1929
2362
  };
1930
2363
  export type GetTagResponse = GetTagResponses[keyof GetTagResponses];
2364
+ export type ListTicketsData = {
2365
+ body?: never;
2366
+ path?: never;
2367
+ query?: never;
2368
+ url: '/tickets';
2369
+ };
2370
+ export type ListTicketsResponses = {
2371
+ /**
2372
+ * Tickets for the organization.
2373
+ */
2374
+ 200: TicketListResponse;
2375
+ };
2376
+ export type ListTicketsResponse = ListTicketsResponses[keyof ListTicketsResponses];
2377
+ export type CreateTicketData = {
2378
+ body: {
2379
+ /**
2380
+ * JSON-encoded TicketCreateInput.
2381
+ */
2382
+ payload?: string;
2383
+ attachments?: Array<Blob | File>;
2384
+ };
2385
+ path?: never;
2386
+ query?: never;
2387
+ url: '/tickets';
2388
+ };
2389
+ export type CreateTicketResponses = {
2390
+ /**
2391
+ * Ticket created.
2392
+ */
2393
+ 200: Ticket;
2394
+ };
2395
+ export type CreateTicketResponse = CreateTicketResponses[keyof CreateTicketResponses];
2396
+ export type CloseTicketData = {
2397
+ body?: never;
2398
+ path: {
2399
+ ticket_id: string;
2400
+ };
2401
+ query?: never;
2402
+ url: '/tickets/{ticket_id}';
2403
+ };
2404
+ export type CloseTicketResponses = {
2405
+ /**
2406
+ * Ticket closed.
2407
+ */
2408
+ 200: Ticket;
2409
+ };
2410
+ export type CloseTicketResponse = CloseTicketResponses[keyof CloseTicketResponses];
2411
+ export type GetTicketData = {
2412
+ body?: never;
2413
+ path: {
2414
+ ticket_id: string;
2415
+ };
2416
+ query?: never;
2417
+ url: '/tickets/{ticket_id}';
2418
+ };
2419
+ export type GetTicketResponses = {
2420
+ /**
2421
+ * Ticket with messages (internal notes excluded).
2422
+ */
2423
+ 200: Ticket;
2424
+ };
2425
+ export type GetTicketResponse = GetTicketResponses[keyof GetTicketResponses];
2426
+ export type ReplyTicketData = {
2427
+ body: {
2428
+ /**
2429
+ * JSON-encoded TicketMessageInput.
2430
+ */
2431
+ payload?: string;
2432
+ attachments?: Array<Blob | File>;
2433
+ };
2434
+ path: {
2435
+ ticket_id: string;
2436
+ };
2437
+ query?: never;
2438
+ url: '/tickets/{ticket_id}/messages';
2439
+ };
2440
+ export type ReplyTicketErrors = {
2441
+ /**
2442
+ * Ticket is closed. Open a new ticket instead.
2443
+ */
2444
+ 409: unknown;
2445
+ };
2446
+ export type ReplyTicketResponses = {
2447
+ /**
2448
+ * Reply appended.
2449
+ */
2450
+ 200: TicketMessage;
2451
+ };
2452
+ export type ReplyTicketResponse = ReplyTicketResponses[keyof ReplyTicketResponses];
2453
+ export type GetTicketAttachmentData = {
2454
+ body?: never;
2455
+ path: {
2456
+ ticket_id: string;
2457
+ attachment_id: string;
2458
+ };
2459
+ query?: never;
2460
+ url: '/tickets/{ticket_id}/attachments/{attachment_id}';
2461
+ };
2462
+ export type GetTicketAttachmentResponses = {
2463
+ /**
2464
+ * Attachment binary stream.
2465
+ */
2466
+ 200: Blob | File;
2467
+ };
2468
+ export type GetTicketAttachmentResponse = GetTicketAttachmentResponses[keyof GetTicketAttachmentResponses];
1931
2469
  export type ListTokensData = {
1932
2470
  body?: never;
1933
2471
  path?: never;