@cloudfleet/sdk 0.0.1-91321da → 0.0.1-958f27d

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
  */
@@ -305,31 +313,56 @@ export type FleetCreateInput = {
305
313
  */
306
314
  limits?: {
307
315
  /**
308
- * CPU limit in cores.
316
+ * CPU limit in cores. Maximum 100,000.
309
317
  */
310
- cpu: number;
318
+ cpu?: number;
311
319
  };
312
320
  gcp?: {
313
- enabled?: boolean;
321
+ enabled: boolean;
314
322
  /**
315
- * 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.
316
324
  */
317
- project: string;
325
+ project?: string;
318
326
  };
319
327
  hetzner?: {
320
- enabled?: boolean;
328
+ enabled: boolean;
321
329
  /**
322
- * 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.
323
331
  */
324
- apiKey: string;
332
+ apiKey?: string;
325
333
  };
326
334
  aws?: {
327
- 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?: {
345
+ /**
346
+ * Allowed values for `karpenter.sh/capacity-type`.
347
+ */
348
+ 'karpenter.sh/capacity-type'?: Array<'on-demand' | 'spot'>;
328
349
  /**
329
- * ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.
350
+ * Allowed values for `kubernetes.io/arch`.
330
351
  */
331
- controllerRoleArn: string;
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'>;
332
361
  };
362
+ /**
363
+ * Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.
364
+ */
365
+ scalingProfile?: 'aggressive' | 'conservative';
333
366
  /**
334
367
  * Unique identifier of the kubernetes fleet.
335
368
  */
@@ -341,31 +374,56 @@ export type Fleet = {
341
374
  */
342
375
  limits?: {
343
376
  /**
344
- * CPU limit in cores.
377
+ * CPU limit in cores. Maximum 100,000.
345
378
  */
346
- cpu: number;
379
+ cpu?: number;
347
380
  };
348
381
  gcp?: {
349
- enabled?: boolean;
382
+ enabled: boolean;
350
383
  /**
351
- * 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.
352
385
  */
353
- project: string;
386
+ project?: string;
354
387
  };
355
388
  hetzner?: {
356
- enabled?: boolean;
389
+ enabled: boolean;
357
390
  /**
358
- * 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.
359
392
  */
360
- apiKey: string;
393
+ apiKey?: string;
361
394
  };
362
395
  aws?: {
363
- 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?: {
364
406
  /**
365
- * ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.
407
+ * Allowed values for `karpenter.sh/capacity-type`.
366
408
  */
367
- controllerRoleArn: string;
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'>;
418
+ /**
419
+ * Allowed values for `topology.kubernetes.io/region`.
420
+ */
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'>;
368
422
  };
423
+ /**
424
+ * Controls scale-up / scale-down responsiveness. `aggressive` prioritizes cost-optimization. `conservative` prioritizes stability of the fleet.
425
+ */
426
+ scalingProfile: 'aggressive' | 'conservative';
369
427
  /**
370
428
  * Unique identifier of the kubernetes fleet.
371
429
  */
@@ -377,31 +435,66 @@ export type FleetUpdateInput = {
377
435
  */
378
436
  limits?: {
379
437
  /**
380
- * CPU limit in cores.
438
+ * CPU limit in cores. Maximum 100,000.
381
439
  */
382
- cpu: number;
440
+ cpu?: number;
383
441
  };
384
442
  gcp?: {
385
- enabled?: boolean;
443
+ enabled: boolean;
386
444
  /**
387
- * 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.
388
446
  */
389
- project: string;
447
+ project?: string;
390
448
  };
391
449
  hetzner?: {
392
- enabled?: boolean;
450
+ enabled: boolean;
393
451
  /**
394
- * 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.
395
453
  */
396
- apiKey: string;
454
+ apiKey?: string;
397
455
  };
398
456
  aws?: {
399
- 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'>;
475
+ /**
476
+ * Allowed values for `cfke.io/instance-family`.
477
+ */
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'>;
400
479
  /**
401
- * ControllerRoleArn is the AWS IAM role that Karpenter uses to manage resources.
480
+ * Allowed values for `topology.kubernetes.io/region`.
402
481
  */
403
- controllerRoleArn: string;
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'>;
404
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';
405
498
  };
406
499
  export type Invite = {
407
500
  /**
@@ -424,6 +517,10 @@ export type Invite = {
424
517
  * Generated unique invite code.
425
518
  */
426
519
  code?: string;
520
+ /**
521
+ * Role the invited user will be assigned on redemption. Can be 'Administrator' or 'User'.
522
+ */
523
+ role?: 'Administrator' | 'User';
427
524
  };
428
525
  export type Invoice = {
429
526
  /**
@@ -544,6 +641,10 @@ export type MarketplaceListing = {
544
641
  };
545
642
  };
546
643
  export type OrganizationCreateInput = {
644
+ /**
645
+ * Type of the organization. `business` for legal entities, `personal` for individuals.
646
+ */
647
+ type: 'business' | 'personal';
547
648
  /**
548
649
  * Email address used for billing as a string.
549
650
  */
@@ -565,6 +666,12 @@ export type OrganizationCreateInput = {
565
666
  */
566
667
  password: string;
567
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
+ };
568
675
  export type Organization = {
569
676
  /**
570
677
  * Unique identifier of the organization. UUID v4 string in canonical form
@@ -574,6 +681,10 @@ export type Organization = {
574
681
  * Name of the legal entity. This name will be used in invoices. Use your first and last name for individual accounts.
575
682
  */
576
683
  name?: string;
684
+ /**
685
+ * Type of the organization. `business` for legal entities, `personal` for individuals.
686
+ */
687
+ type: 'business' | 'personal';
577
688
  /**
578
689
  * Creation date of the organization. ISO 8601 date string in UTC timezone
579
690
  */
@@ -632,36 +743,52 @@ export type Organization = {
632
743
  * Status of the organization. Can be `active` or `closed`, or `suspended`.
633
744
  */
634
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';
635
750
  };
636
751
  export type PaymentMethod = {
637
752
  /**
638
- * 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.
639
754
  */
640
755
  id: string;
641
756
  /**
642
- * 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.
643
758
  */
644
- setup: boolean;
759
+ type: 'card' | 'sepa_debit' | 'bank_transfer';
645
760
  /**
646
- * Payment method type type. Only `card` payments supported at the moment.
647
- */
648
- type: 'card';
649
- /**
650
- * 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.
651
762
  */
652
763
  last4: string;
653
764
  /**
654
- * 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.
655
766
  */
656
767
  exp_month: number;
657
768
  /**
658
- * 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.
659
770
  */
660
771
  exp_year: number;
661
772
  /**
662
- * 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.
663
782
  */
664
- 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;
665
792
  };
666
793
  export type PlatformQuota = {
667
794
  /**
@@ -1253,14 +1380,6 @@ export type UserCreateInput = {
1253
1380
  * User password. Must be at least 8 characters long.
1254
1381
  */
1255
1382
  password: string;
1256
- /**
1257
- * Status of the user. Can be `active` or `inactive`. Inactive users cannot log in or manage organization resources.
1258
- */
1259
- status?: 'active' | 'inactive';
1260
- /**
1261
- * User role. Can be 'Administrator', 'User'.
1262
- */
1263
- role?: 'Administrator' | 'User';
1264
1383
  };
1265
1384
  export type User = {
1266
1385
  /**
@@ -1338,44 +1457,112 @@ export type GetUsageResponses = {
1338
1457
  200: UsageResponse;
1339
1458
  };
1340
1459
  export type GetUsageResponse = GetUsageResponses[keyof GetUsageResponses];
1341
- export type GetPaymentMethodData = {
1460
+ export type GetPaymentMethodSecretData = {
1342
1461
  body?: never;
1343
1462
  path?: never;
1344
1463
  query?: never;
1345
1464
  url: '/billing/payment-method';
1346
1465
  };
1347
- export type GetPaymentMethodErrors = {
1466
+ export type GetPaymentMethodSecretResponses = {
1348
1467
  /**
1349
- * 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
+ *
1350
1470
  */
1351
- 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';
1352
1484
  };
1353
- export type GetPaymentMethodResponses = {
1485
+ export type ListPaymentMethodsErrors = {
1354
1486
  /**
1355
- * Redacted payment card information.
1487
+ * Not authenticated
1356
1488
  */
1357
- 200: PaymentMethod;
1489
+ 401: unknown;
1358
1490
  };
1359
- export type GetPaymentMethodResponse = GetPaymentMethodResponses[keyof GetPaymentMethodResponses];
1360
- 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 = {
1361
1499
  body?: never;
1362
- path?: never;
1500
+ path: {
1501
+ /**
1502
+ * Stripe payment method identifier.
1503
+ */
1504
+ paymentMethodId: string;
1505
+ };
1363
1506
  query?: never;
1364
- url: '/billing/payment-method';
1507
+ url: '/billing/payment-methods/{paymentMethodId}/default';
1365
1508
  };
1366
- export type GetPaymentMethodSecretResponses = {
1509
+ export type SetDefaultPaymentMethodErrors = {
1367
1510
  /**
1368
- * 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.
1369
- *
1511
+ * The bank transfer payment method cannot be set as the default.
1370
1512
  */
1371
- 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: {
1372
1533
  /**
1373
- * The client secret.
1534
+ * Stripe payment method identifier.
1374
1535
  */
1375
- id?: string;
1536
+ paymentMethodId: string;
1376
1537
  };
1538
+ query?: never;
1539
+ url: '/billing/payment-methods/{paymentMethodId}';
1377
1540
  };
1378
- 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];
1379
1566
  export type ListInvoicesData = {
1380
1567
  body?: never;
1381
1568
  path?: never;
@@ -1766,9 +1953,19 @@ export type DeleteClusterData = {
1766
1953
  query?: never;
1767
1954
  url: '/clusters/{cluster_id}';
1768
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
+ * Transient failure tearing down the cluster; retry the request.
1963
+ */
1964
+ 503: unknown;
1965
+ };
1769
1966
  export type DeleteClusterResponses = {
1770
1967
  /**
1771
- * Successfully deleted.
1968
+ * Successfully deleted. The cluster has been torn down.
1772
1969
  */
1773
1970
  200: string;
1774
1971
  };
@@ -1853,12 +2050,7 @@ export type ListInvitesResponses = {
1853
2050
  };
1854
2051
  export type ListInvitesResponse = ListInvitesResponses[keyof ListInvitesResponses];
1855
2052
  export type CreateInviteData = {
1856
- body: {
1857
- /**
1858
- * User email address
1859
- */
1860
- email?: string;
1861
- };
2053
+ body: InviteCreateInput;
1862
2054
  path?: never;
1863
2055
  query?: never;
1864
2056
  url: '/invites';
@@ -1883,9 +2075,18 @@ export type GetInviteData = {
1883
2075
  };
1884
2076
  export type GetInviteResponses = {
1885
2077
  /**
1886
- * Returns a single object containing invite details.
2078
+ * The invitation code is valid. Returns the invited email and organization.
1887
2079
  */
1888
- 200: Invite;
2080
+ 200: {
2081
+ /**
2082
+ * Email address the invite was issued to.
2083
+ */
2084
+ email?: string;
2085
+ /**
2086
+ * Identifier of the organization the invite grants access to.
2087
+ */
2088
+ organization_id?: string;
2089
+ };
1889
2090
  };
1890
2091
  export type GetInviteResponse = GetInviteResponses[keyof GetInviteResponses];
1891
2092
  export type DeleteInviteData = {
@@ -2015,10 +2216,12 @@ export type CreateOrganizationData = {
2015
2216
  };
2016
2217
  export type CreateOrganizationResponses = {
2017
2218
  /**
2018
- * Successfully created a new organization.
2219
+ * Organization signup accepted. Returns the generated organization id immediately; provisioning (billing, Keycloak realm, user) continues asynchronously in the background.
2220
+ *
2019
2221
  */
2020
- 200: unknown;
2222
+ 200: OrganizationCreateOutput;
2021
2223
  };
2224
+ export type CreateOrganizationResponse = CreateOrganizationResponses[keyof CreateOrganizationResponses];
2022
2225
  export type ListRepositoriesData = {
2023
2226
  body?: never;
2024
2227
  path?: never;