@cloudfleet/sdk 0.0.1-2854ca2 → 0.0.1-289b770

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.
@@ -1,53 +1,4 @@
1
1
  // This file is auto-generated by @hey-api/openapi-ts
2
- export const BasicPriceConsentInputSchema = {
3
- type: 'object',
4
- properties: {
5
- decision: {
6
- type: 'string',
7
- description: 'The administrator\'s decision on the new Basic price. `accepted` continues to paid billing when the signup credit runs out; `rejected` opts out (clusters are suspended, never charged). A `rejected` org can later be flipped back to `accepted`.',
8
- example: 'accepted',
9
- enum: [
10
- 'accepted',
11
- 'rejected'
12
- ]
13
- }
14
- },
15
- required: [
16
- 'decision'
17
- ],
18
- additionalProperties: false
19
- };
20
- export const BasicPriceConsentSchema = {
21
- type: 'object',
22
- properties: {
23
- status: {
24
- type: 'string',
25
- description: 'Consent status for the new Basic price. `not_applicable` when the organization is not in scope for the migration. `pending` when the organization must opt in but no admin has decided yet. `accepted` / `rejected` reflect the recorded decision.',
26
- example: 'pending',
27
- enum: [
28
- 'not_applicable',
29
- 'pending',
30
- 'accepted',
31
- 'rejected'
32
- ]
33
- },
34
- decided_at: {
35
- type: 'string',
36
- format: 'date-time',
37
- description: 'When the current decision was recorded. Absent while `not_applicable` or `pending`.',
38
- example: '2026-09-05T10:12:00.000Z'
39
- },
40
- decided_by: {
41
- type: 'string',
42
- description: 'User id of the administrator who recorded the current decision. Absent while `not_applicable` or `pending`.',
43
- example: '2b7a5c9e-1f4d-4a1b-9c3e-8d2f6a0b1c2d'
44
- }
45
- },
46
- required: [
47
- 'status'
48
- ],
49
- additionalProperties: false
50
- };
51
2
  export const BillingContactSchema = {
52
3
  type: 'object',
53
4
  properties: {
@@ -142,12 +93,17 @@ export const BillingContactSchema = {
142
93
  'at_vat',
143
94
  'au_abn',
144
95
  'au_arn',
96
+ 'aw_tin',
97
+ 'az_tin',
145
98
  'ba_tin',
146
99
  'bb_tin',
100
+ 'bd_bin',
147
101
  'be_vat',
102
+ 'bf_ifu',
148
103
  'bg_uic',
149
104
  'bg_vat',
150
105
  'bh_vat',
106
+ 'bj_ifu',
151
107
  'bo_tin',
152
108
  'br_cnpj',
153
109
  'br_cpf',
@@ -163,9 +119,11 @@ export const BillingContactSchema = {
163
119
  'ch_uid',
164
120
  'ch_vat',
165
121
  'cl_tin',
122
+ 'cm_niu',
166
123
  'cn_tin',
167
124
  'co_nit',
168
125
  'cr_tin',
126
+ 'cv_nif',
169
127
  'cy_vat',
170
128
  'cz_vat',
171
129
  'de_stn',
@@ -177,6 +135,7 @@ export const BillingContactSchema = {
177
135
  'eg_tin',
178
136
  'es_cif',
179
137
  'es_vat',
138
+ 'et_tin',
180
139
  'eu_oss_vat',
181
140
  'fi_vat',
182
141
  'fr_vat',
@@ -199,11 +158,14 @@ export const BillingContactSchema = {
199
158
  'jp_rn',
200
159
  'jp_trn',
201
160
  'ke_pin',
161
+ 'kg_tin',
202
162
  'kh_tin',
203
163
  'kr_brn',
204
164
  'kz_bin',
165
+ 'la_tin',
205
166
  'li_uid',
206
167
  'li_vat',
168
+ 'lk_vat',
207
169
  'lt_vat',
208
170
  'lu_vat',
209
171
  'lv_vat',
@@ -331,150 +293,6 @@ export const BillingCreditsSchema = {
331
293
  ],
332
294
  additionalProperties: false
333
295
  };
334
- export const ChartCreateInputSchema = {
335
- type: 'object',
336
- properties: {
337
- values: {
338
- type: 'string',
339
- description: 'Values to be used in the chart encoded as a JSON string.'
340
- },
341
- version_channel: {
342
- type: 'string',
343
- pattern: '^(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$',
344
- description: 'Desired version range or channel for the chart.',
345
- example: '2.x.x-cfke.x'
346
- },
347
- name: {
348
- type: 'string',
349
- maxLength: 63,
350
- minLength: 1,
351
- pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
352
- description: 'Unique identifier of the chart deployment aka name of the helm release.',
353
- example: 'postgresql-0'
354
- },
355
- namespace: {
356
- type: 'string',
357
- maxLength: 63,
358
- minLength: 1,
359
- pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
360
- description: 'Namespace of the chart deployment',
361
- example: 'default'
362
- },
363
- chart: {
364
- type: 'string',
365
- maxLength: 63,
366
- minLength: 1,
367
- pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
368
- description: 'Name of the chart listing',
369
- example: 'postgresql'
370
- }
371
- },
372
- required: [
373
- 'values',
374
- 'version_channel',
375
- 'name',
376
- 'namespace',
377
- 'chart'
378
- ],
379
- additionalProperties: false
380
- };
381
- export const ChartSchema = {
382
- type: 'object',
383
- properties: {
384
- values: {
385
- type: 'string',
386
- description: 'Values to be used in the chart encoded as a JSON string.'
387
- },
388
- version_channel: {
389
- type: 'string',
390
- pattern: '^(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$',
391
- description: 'Desired version range or channel for the chart.',
392
- example: '2.x.x-cfke.x'
393
- },
394
- name: {
395
- type: 'string',
396
- maxLength: 63,
397
- minLength: 1,
398
- pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
399
- description: 'Unique identifier of the chart deployment aka name of the helm release.',
400
- example: 'postgresql-0'
401
- },
402
- namespace: {
403
- type: 'string',
404
- maxLength: 63,
405
- minLength: 1,
406
- pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
407
- description: 'Namespace of the chart deployment',
408
- example: 'default'
409
- },
410
- chart: {
411
- type: 'string',
412
- maxLength: 63,
413
- minLength: 1,
414
- pattern: '^[a-z0-9]([-a-z0-9]*[a-z0-9])?$',
415
- description: 'Name of the chart listing',
416
- example: 'postgresql'
417
- },
418
- status: {
419
- type: 'string',
420
- description: 'Status of the chart deployment (Flux HelmRelease Ready condition reason, e.g. InstallSucceeded, UpgradeFailed, Progressing).',
421
- example: 'InstallSucceeded'
422
- },
423
- version_current: {
424
- type: 'string',
425
- description: 'Current version of the chart deployment.',
426
- example: '2.1.33-cfke.11'
427
- },
428
- created_at: {
429
- type: 'string',
430
- description: 'Creation date and time of the chart deployment.',
431
- example: '2024-09-12T09:11:27Z'
432
- },
433
- updated_at: {
434
- type: 'string',
435
- description: 'Last update date and time of the chart deployment.',
436
- example: '2024-09-12T09:11:27Z'
437
- },
438
- ready: {
439
- type: 'boolean',
440
- description: 'Indicates if the chart deployment is ready to be used.',
441
- example: true
442
- }
443
- },
444
- required: [
445
- 'values',
446
- 'version_channel',
447
- 'name',
448
- 'namespace',
449
- 'chart',
450
- 'status',
451
- 'version_current',
452
- 'created_at',
453
- 'updated_at',
454
- 'ready'
455
- ],
456
- additionalProperties: false
457
- };
458
- export const ChartUpdateInputSchema = {
459
- type: 'object',
460
- properties: {
461
- values: {
462
- type: 'string',
463
- description: 'Values to be used in the chart encoded as a JSON string.'
464
- },
465
- version_channel: {
466
- type: 'string',
467
- pattern: '^(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$',
468
- description: 'Desired version range or channel for the chart.',
469
- example: '2.x.x-cfke.x'
470
- }
471
- },
472
- required: [
473
- 'values',
474
- 'version_channel'
475
- ],
476
- additionalProperties: false
477
- };
478
296
  export const ClusterCreateInputSchema = {
479
297
  type: 'object',
480
298
  properties: {
@@ -631,6 +449,11 @@ export const ClusterJoinInformationSchema = {
631
449
  description: 'Authentication key for the cluster.',
632
450
  example: 'tskey-auth-kBV8wr1dk911CNTRL-...'
633
451
  },
452
+ login_server: {
453
+ type: 'string',
454
+ description: 'Coordination server the node registers against. Empty on data plane v1 clusters, where the node advertises its own tag instead. A non-empty value requires a client that declares the dataplane-v2 capability.',
455
+ example: 'https://415026b6-f00f-44f8-968d-fc6ef4d0fc6d.fabric.europe-central-1a.cfke.io'
456
+ },
634
457
  bootstrap_token: {
635
458
  type: 'string',
636
459
  description: 'Bootstrap token for the cluster.',
@@ -703,6 +526,7 @@ export const ClusterJoinInformationSchema = {
703
526
  'cluster_dns',
704
527
  'pod_cidr',
705
528
  'auth_key',
529
+ 'login_server',
706
530
  'bootstrap_token',
707
531
  'versions',
708
532
  'third_party_api_access_config'
@@ -1013,6 +837,72 @@ export const ClusterUpdateInputSchema = {
1013
837
  additionalProperties: false,
1014
838
  description: 'Mutable cluster configuration. Applied as a full overwrite: any omitted field is reset to its default rather than left unchanged.'
1015
839
  };
840
+ export const FeedbackCreateInputSchema = {
841
+ type: 'object',
842
+ properties: {
843
+ sentiment: {
844
+ type: 'string',
845
+ description: 'Overall sentiment: positive, neutral or negative.',
846
+ example: 'negative',
847
+ enum: [
848
+ 'positive',
849
+ 'neutral',
850
+ 'negative'
851
+ ]
852
+ },
853
+ message: {
854
+ type: 'string',
855
+ maxLength: 2000,
856
+ minLength: 1,
857
+ description: 'What was useful, confusing, wrong or missing.',
858
+ example: 'The error for a missing kubeconfig does not say which path it looked in.'
859
+ },
860
+ context: {
861
+ type: 'string',
862
+ maxLength: 2000,
863
+ description: 'What you were trying to do when it happened.',
864
+ example: 'Connecting kubectl to a new cluster.'
865
+ },
866
+ source: {
867
+ type: 'string',
868
+ description: 'Where the feedback was sent from: cli, mcp, plugin, console or api. Defaults to api.',
869
+ default: 'api',
870
+ example: 'cli',
871
+ enum: [
872
+ 'cli',
873
+ 'mcp',
874
+ 'plugin',
875
+ 'console',
876
+ 'api'
877
+ ]
878
+ },
879
+ client: {
880
+ type: 'string',
881
+ maxLength: 100,
882
+ description: 'Name and version of the sending client.',
883
+ example: 'cloudfleet-plugin-claude/0.5.0'
884
+ }
885
+ },
886
+ required: [
887
+ 'sentiment',
888
+ 'message'
889
+ ],
890
+ additionalProperties: false
891
+ };
892
+ export const FeedbackSchema = {
893
+ type: 'object',
894
+ properties: {
895
+ id: {
896
+ type: 'string',
897
+ description: 'Unique identifier of the feedback entry (Mongo ObjectId).',
898
+ example: '60c72b2f9f1b2c001f8e4d3a'
899
+ }
900
+ },
901
+ required: [
902
+ 'id'
903
+ ],
904
+ additionalProperties: false
905
+ };
1016
906
  export const FleetCreateInputSchema = {
1017
907
  type: 'object',
1018
908
  properties: {
@@ -1385,6 +1275,44 @@ export const FleetCreateInputSchema = {
1385
1275
  'conservative'
1386
1276
  ]
1387
1277
  },
1278
+ taints: {
1279
+ type: 'array',
1280
+ items: {
1281
+ type: 'object',
1282
+ properties: {
1283
+ key: {
1284
+ type: 'string',
1285
+ description: 'Taint key: a Kubernetes qualified name with an optional DNS subdomain prefix. Keys under `node.kubernetes.io`, `node.cloudprovider.kubernetes.io`, `node.cilium.io`, `karpenter.sh` and `cfke.io` (and their subdomains) are reserved.',
1286
+ example: 'dedicated'
1287
+ },
1288
+ value: {
1289
+ type: 'string',
1290
+ maxLength: 63,
1291
+ pattern: '^([A-Za-z0-9]([-A-Za-z0-9_.]*[A-Za-z0-9])?)?$',
1292
+ description: 'Taint value. Optional.',
1293
+ example: 'ci'
1294
+ },
1295
+ effect: {
1296
+ type: 'string',
1297
+ description: 'Taint effect.',
1298
+ example: 'NoSchedule',
1299
+ enum: [
1300
+ 'NoSchedule',
1301
+ 'PreferNoSchedule',
1302
+ 'NoExecute'
1303
+ ]
1304
+ }
1305
+ },
1306
+ required: [
1307
+ 'key',
1308
+ 'effect'
1309
+ ],
1310
+ additionalProperties: false
1311
+ },
1312
+ maxItems: 50,
1313
+ description: 'Taints applied to every node the fleet provisions, so only pods that tolerate them schedule there. Each key and effect pair may appear once. Full-overwrite: omit to remove all taints.',
1314
+ default: []
1315
+ },
1388
1316
  id: {
1389
1317
  type: 'string',
1390
1318
  maxLength: 63,
@@ -1774,6 +1702,44 @@ export const FleetSchema = {
1774
1702
  'conservative'
1775
1703
  ]
1776
1704
  },
1705
+ taints: {
1706
+ type: 'array',
1707
+ items: {
1708
+ type: 'object',
1709
+ properties: {
1710
+ key: {
1711
+ type: 'string',
1712
+ description: 'Taint key: a Kubernetes qualified name with an optional DNS subdomain prefix. Keys under `node.kubernetes.io`, `node.cloudprovider.kubernetes.io`, `node.cilium.io`, `karpenter.sh` and `cfke.io` (and their subdomains) are reserved.',
1713
+ example: 'dedicated'
1714
+ },
1715
+ value: {
1716
+ type: 'string',
1717
+ maxLength: 63,
1718
+ pattern: '^([A-Za-z0-9]([-A-Za-z0-9_.]*[A-Za-z0-9])?)?$',
1719
+ description: 'Taint value. Optional.',
1720
+ example: 'ci'
1721
+ },
1722
+ effect: {
1723
+ type: 'string',
1724
+ description: 'Taint effect.',
1725
+ example: 'NoSchedule',
1726
+ enum: [
1727
+ 'NoSchedule',
1728
+ 'PreferNoSchedule',
1729
+ 'NoExecute'
1730
+ ]
1731
+ }
1732
+ },
1733
+ required: [
1734
+ 'key',
1735
+ 'effect'
1736
+ ],
1737
+ additionalProperties: false
1738
+ },
1739
+ maxItems: 50,
1740
+ description: 'Taints applied to every node the fleet provisions, so only pods that tolerate them schedule there. Each key and effect pair may appear once. Full-overwrite: omit to remove all taints.',
1741
+ default: []
1742
+ },
1777
1743
  id: {
1778
1744
  type: 'string',
1779
1745
  maxLength: 63,
@@ -1806,6 +1772,7 @@ export const FleetSchema = {
1806
1772
  required: [
1807
1773
  'constraints',
1808
1774
  'scalingProfile',
1775
+ 'taints',
1809
1776
  'id',
1810
1777
  'ready',
1811
1778
  'created_at',
@@ -2185,6 +2152,44 @@ export const FleetUpdateInputSchema = {
2185
2152
  'aggressive',
2186
2153
  'conservative'
2187
2154
  ]
2155
+ },
2156
+ taints: {
2157
+ type: 'array',
2158
+ items: {
2159
+ type: 'object',
2160
+ properties: {
2161
+ key: {
2162
+ type: 'string',
2163
+ description: 'Taint key: a Kubernetes qualified name with an optional DNS subdomain prefix. Keys under `node.kubernetes.io`, `node.cloudprovider.kubernetes.io`, `node.cilium.io`, `karpenter.sh` and `cfke.io` (and their subdomains) are reserved.',
2164
+ example: 'dedicated'
2165
+ },
2166
+ value: {
2167
+ type: 'string',
2168
+ maxLength: 63,
2169
+ pattern: '^([A-Za-z0-9]([-A-Za-z0-9_.]*[A-Za-z0-9])?)?$',
2170
+ description: 'Taint value. Optional.',
2171
+ example: 'ci'
2172
+ },
2173
+ effect: {
2174
+ type: 'string',
2175
+ description: 'Taint effect.',
2176
+ example: 'NoSchedule',
2177
+ enum: [
2178
+ 'NoSchedule',
2179
+ 'PreferNoSchedule',
2180
+ 'NoExecute'
2181
+ ]
2182
+ }
2183
+ },
2184
+ required: [
2185
+ 'key',
2186
+ 'effect'
2187
+ ],
2188
+ additionalProperties: false
2189
+ },
2190
+ maxItems: 50,
2191
+ description: 'Taints applied to every node the fleet provisions, so only pods that tolerate them schedule there. Each key and effect pair may appear once. Full-overwrite: omit to remove all taints.',
2192
+ default: []
2188
2193
  }
2189
2194
  },
2190
2195
  additionalProperties: false,
@@ -2262,6 +2267,170 @@ export const InviteSchema = {
2262
2267
  ],
2263
2268
  additionalProperties: false
2264
2269
  };
2270
+ export const InvoicePaymentAttemptSchema = {
2271
+ type: 'object',
2272
+ properties: {
2273
+ invoice_id: {
2274
+ type: 'string',
2275
+ description: 'Identifier of the invoice.',
2276
+ example: 'in_1234567890xCrwxghOTj1234'
2277
+ },
2278
+ number: {
2279
+ type: 'string',
2280
+ nullable: true,
2281
+ description: 'Invoice number. Null if the invoice has no number.',
2282
+ example: 'CF-0042'
2283
+ },
2284
+ amount: {
2285
+ type: 'number',
2286
+ format: 'float',
2287
+ description: 'Amount outstanding when the charge was attempted, in the smallest currency unit.',
2288
+ example: 4200
2289
+ },
2290
+ currency: {
2291
+ type: 'string',
2292
+ description: 'Currency of the invoice.',
2293
+ example: 'eur'
2294
+ },
2295
+ status: {
2296
+ type: 'string',
2297
+ description: 'Outcome for this invoice: `paid`, `processing` (accepted, not yet settled), `requires_action` (awaiting customer authentication), or `failed` (declined).',
2298
+ example: 'paid',
2299
+ enum: [
2300
+ 'paid',
2301
+ 'processing',
2302
+ 'requires_action',
2303
+ 'failed'
2304
+ ]
2305
+ },
2306
+ client_secret: {
2307
+ type: 'string',
2308
+ nullable: true,
2309
+ description: 'Client secret used to complete customer authentication. Set only when `status` is `requires_action`.',
2310
+ example: 'pi_3MtwBwLkdIwHu7ix28a3tqPa_secret_YrKJUKribcBjcG8HVhfZluoGH'
2311
+ },
2312
+ failure_code: {
2313
+ type: 'string',
2314
+ nullable: true,
2315
+ description: 'Decline code. Set only when `status` is `failed`.',
2316
+ example: 'insufficient_funds'
2317
+ },
2318
+ failure_message: {
2319
+ type: 'string',
2320
+ nullable: true,
2321
+ description: 'Explanation of the decline, suitable for display. Set only when `status` is `failed`.',
2322
+ example: 'Your card has insufficient funds.'
2323
+ }
2324
+ },
2325
+ required: [
2326
+ 'invoice_id',
2327
+ 'number',
2328
+ 'amount',
2329
+ 'currency',
2330
+ 'status',
2331
+ 'client_secret',
2332
+ 'failure_code',
2333
+ 'failure_message'
2334
+ ],
2335
+ additionalProperties: false
2336
+ };
2337
+ export const InvoicePaymentResultSchema = {
2338
+ type: 'object',
2339
+ properties: {
2340
+ code: {
2341
+ type: 'string',
2342
+ description: 'Overall outcome: `paid` (nothing outstanding), `processing` (all accepted, not yet settled), `action_required` (one or more await customer authentication), `partially_paid`, `failed`, `nothing_due`, or `bank_transfer_due` (the organization pays by bank transfer; nothing was charged).',
2343
+ example: 'partially_paid',
2344
+ enum: [
2345
+ 'paid',
2346
+ 'processing',
2347
+ 'action_required',
2348
+ 'partially_paid',
2349
+ 'failed',
2350
+ 'nothing_due',
2351
+ 'bank_transfer_due'
2352
+ ]
2353
+ },
2354
+ message: {
2355
+ type: 'string',
2356
+ description: 'Summary of the outcome, suitable for display.',
2357
+ example: '1 of 2 open invoices was paid. Invoice CF-0043 was declined: Your card has insufficient funds.'
2358
+ },
2359
+ results: {
2360
+ type: 'array',
2361
+ items: {
2362
+ type: 'object',
2363
+ properties: {
2364
+ invoice_id: {
2365
+ type: 'string',
2366
+ description: 'Identifier of the invoice.',
2367
+ example: 'in_1234567890xCrwxghOTj1234'
2368
+ },
2369
+ number: {
2370
+ type: 'string',
2371
+ description: 'Invoice number. Null if the invoice has no number.',
2372
+ example: 'CF-0042'
2373
+ },
2374
+ amount: {
2375
+ type: 'number',
2376
+ format: 'float',
2377
+ description: 'Amount outstanding when the charge was attempted, in the smallest currency unit.',
2378
+ example: 4200
2379
+ },
2380
+ currency: {
2381
+ type: 'string',
2382
+ description: 'Currency of the invoice.',
2383
+ example: 'eur'
2384
+ },
2385
+ status: {
2386
+ type: 'string',
2387
+ description: 'Outcome for this invoice: `paid`, `processing` (accepted, not yet settled), `requires_action` (awaiting customer authentication), or `failed` (declined).',
2388
+ example: 'paid',
2389
+ enum: [
2390
+ 'paid',
2391
+ 'processing',
2392
+ 'requires_action',
2393
+ 'failed'
2394
+ ]
2395
+ },
2396
+ client_secret: {
2397
+ type: 'string',
2398
+ description: 'Client secret used to complete customer authentication. Set only when `status` is `requires_action`.',
2399
+ example: 'pi_3MtwBwLkdIwHu7ix28a3tqPa_secret_YrKJUKribcBjcG8HVhfZluoGH'
2400
+ },
2401
+ failure_code: {
2402
+ type: 'string',
2403
+ description: 'Decline code. Set only when `status` is `failed`.',
2404
+ example: 'insufficient_funds'
2405
+ },
2406
+ failure_message: {
2407
+ type: 'string',
2408
+ description: 'Explanation of the decline, suitable for display. Set only when `status` is `failed`.',
2409
+ example: 'Your card has insufficient funds.'
2410
+ }
2411
+ },
2412
+ required: [
2413
+ 'invoice_id',
2414
+ 'number',
2415
+ 'amount',
2416
+ 'currency',
2417
+ 'status',
2418
+ 'client_secret',
2419
+ 'failure_code',
2420
+ 'failure_message'
2421
+ ],
2422
+ additionalProperties: false
2423
+ },
2424
+ description: 'One entry per invoice charged, oldest first.'
2425
+ }
2426
+ },
2427
+ required: [
2428
+ 'code',
2429
+ 'message',
2430
+ 'results'
2431
+ ],
2432
+ additionalProperties: false
2433
+ };
2265
2434
  export const InvoiceSchema = {
2266
2435
  type: 'object',
2267
2436
  properties: {
@@ -2318,160 +2487,6 @@ export const InvoiceSchema = {
2318
2487
  ],
2319
2488
  additionalProperties: false
2320
2489
  };
2321
- export const MarketplaceListingFilesSchema = {
2322
- type: 'object',
2323
- properties: {
2324
- chartYaml: {
2325
- type: 'string',
2326
- description: 'Raw Chart.yaml content from the Helm chart',
2327
- example: 'apiVersion: v2\nname: nginx-ingress\nversion: 1.18.2-cfke.45\nappVersion: 1.9.4'
2328
- },
2329
- valuesYaml: {
2330
- type: 'string',
2331
- description: 'Raw values.yaml content from the Helm chart',
2332
- example: 'replicaCount: 1\nimage:\n repository: nginx\n tag: latest'
2333
- },
2334
- valuesSchemaJson: {
2335
- type: 'string',
2336
- description: 'JSON schema for values.yaml as a string',
2337
- example: '{"type":"object","properties":{"replicaCount":{"type":"number"}}}'
2338
- }
2339
- },
2340
- additionalProperties: false
2341
- };
2342
- export const MarketplaceListingSchema = {
2343
- type: 'object',
2344
- properties: {
2345
- name: {
2346
- type: 'string',
2347
- description: 'Name of the chart',
2348
- example: 'nginx-ingress'
2349
- },
2350
- versions: {
2351
- type: 'array',
2352
- items: {
2353
- type: 'string',
2354
- pattern: '^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$',
2355
- description: 'Specific version of the chart',
2356
- example: '1.18.2-cfke.45'
2357
- },
2358
- description: 'Available versions of the chart'
2359
- },
2360
- version_channels: {
2361
- type: 'array',
2362
- items: {
2363
- type: 'string',
2364
- pattern: '^(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)\\.(x|X|0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$',
2365
- description: 'Version channel pattern',
2366
- example: '1.18.x-cfke.x'
2367
- },
2368
- description: 'Version channels for the chart'
2369
- },
2370
- latestVersion: {
2371
- type: 'string',
2372
- description: 'Latest version of the chart',
2373
- example: '1.18.2-cfke.45'
2374
- },
2375
- metadata: {
2376
- type: 'object',
2377
- properties: {
2378
- name: {
2379
- type: 'string',
2380
- description: 'Chart name from metadata',
2381
- example: 'nginx-ingress'
2382
- },
2383
- version: {
2384
- type: 'string',
2385
- description: 'Chart version from metadata',
2386
- example: '1.18.2-cfke.45'
2387
- },
2388
- description: {
2389
- type: 'string',
2390
- description: 'Chart description',
2391
- example: 'NGINX Ingress Controller for Kubernetes'
2392
- },
2393
- appVersion: {
2394
- type: 'string',
2395
- description: 'Application version',
2396
- example: '1.9.4'
2397
- },
2398
- apiVersion: {
2399
- type: 'string',
2400
- description: 'Helm API version',
2401
- example: 'v2'
2402
- },
2403
- keywords: {
2404
- type: 'array',
2405
- items: {
2406
- type: 'string'
2407
- },
2408
- description: 'Chart keywords',
2409
- example: [
2410
- 'ingress',
2411
- 'nginx',
2412
- 'load-balancer'
2413
- ]
2414
- },
2415
- home: {
2416
- type: 'string',
2417
- description: 'Chart home URL',
2418
- example: 'https://kubernetes.github.io/ingress-nginx/'
2419
- },
2420
- icon: {
2421
- type: 'string',
2422
- description: 'A URL to an SVG or PNG image to be used as an icon',
2423
- example: 'https://cloudfleet.ai/images/marketplace/icons/ingress-nginx.png'
2424
- },
2425
- sources: {
2426
- type: 'array',
2427
- items: {
2428
- type: 'string'
2429
- },
2430
- description: 'Chart source URLs',
2431
- example: [
2432
- 'https://github.com/kubernetes/ingress-nginx'
2433
- ]
2434
- },
2435
- maintainers: {
2436
- type: 'array',
2437
- items: {
2438
- type: 'object',
2439
- properties: {
2440
- name: {
2441
- type: 'string',
2442
- description: 'Maintainer name',
2443
- example: 'NGINX Team'
2444
- },
2445
- email: {
2446
- type: 'string',
2447
- description: 'Maintainer email',
2448
- example: 'support@nginx.org'
2449
- }
2450
- },
2451
- required: [
2452
- 'name'
2453
- ],
2454
- additionalProperties: false
2455
- },
2456
- description: 'Chart maintainers'
2457
- }
2458
- },
2459
- required: [
2460
- 'name',
2461
- 'version'
2462
- ],
2463
- additionalProperties: false,
2464
- description: 'Chart metadata'
2465
- }
2466
- },
2467
- required: [
2468
- 'name',
2469
- 'versions',
2470
- 'version_channels',
2471
- 'latestVersion'
2472
- ],
2473
- additionalProperties: false
2474
- };
2475
2490
  export const OrganizationCreateInputSchema = {
2476
2491
  type: 'object',
2477
2492
  properties: {
@@ -3163,6 +3178,73 @@ export const RegistryTagSchema = {
3163
3178
  ],
3164
3179
  additionalProperties: false
3165
3180
  };
3181
+ export const RoadmapItemCreateInputSchema = {
3182
+ type: 'object',
3183
+ properties: {
3184
+ text: {
3185
+ type: 'string',
3186
+ maxLength: 500,
3187
+ minLength: 1,
3188
+ description: 'Your suggestion in one or two sentences. It is reviewed before it appears on the roadmap.',
3189
+ example: 'Support for ARM nodes on Hetzner.'
3190
+ }
3191
+ },
3192
+ required: [
3193
+ 'text'
3194
+ ],
3195
+ additionalProperties: false
3196
+ };
3197
+ export const RoadmapItemSchema = {
3198
+ type: 'object',
3199
+ properties: {
3200
+ id: {
3201
+ type: 'string',
3202
+ description: 'Unique identifier of the roadmap item (Mongo ObjectId).',
3203
+ example: '60c72b2f9f1b2c001f8e4d3a'
3204
+ },
3205
+ text: {
3206
+ type: 'string',
3207
+ description: 'Short description of the roadmap item.',
3208
+ example: 'Support for ARM nodes on Hetzner.'
3209
+ },
3210
+ vote: {
3211
+ type: 'integer',
3212
+ nullable: true,
3213
+ description: 'The caller\'s vote on this item: -1 (down), 1 (up), 2 (double up), or null if the caller has not voted.',
3214
+ example: 1,
3215
+ enum: [
3216
+ -1,
3217
+ 1,
3218
+ 2
3219
+ ]
3220
+ }
3221
+ },
3222
+ required: [
3223
+ 'id',
3224
+ 'text',
3225
+ 'vote'
3226
+ ],
3227
+ additionalProperties: false
3228
+ };
3229
+ export const RoadmapVoteInputSchema = {
3230
+ type: 'object',
3231
+ properties: {
3232
+ value: {
3233
+ type: 'integer',
3234
+ description: 'Vote value: -1 (down), 1 (up), or 2 (double up).',
3235
+ example: 1,
3236
+ enum: [
3237
+ -1,
3238
+ 1,
3239
+ 2
3240
+ ]
3241
+ }
3242
+ },
3243
+ required: [
3244
+ 'value'
3245
+ ],
3246
+ additionalProperties: false
3247
+ };
3166
3248
  export const TicketAttachmentSchema = {
3167
3249
  type: 'object',
3168
3250
  properties: {
@@ -3224,6 +3306,11 @@ export const TicketCreateInputSchema = {
3224
3306
  subcategory: 'cluster-question',
3225
3307
  cluster_id: '60c72b2f9f1b2c001f8e4d3a'
3226
3308
  }
3309
+ },
3310
+ grant_support_access: {
3311
+ type: 'boolean',
3312
+ description: 'Grant Cloudfleet support staff access to the organization\'s resources while the ticket is open. Access cannot be revoked; it ends when the ticket is closed.',
3313
+ example: true
3227
3314
  }
3228
3315
  },
3229
3316
  required: [
@@ -3368,6 +3455,18 @@ export const TicketSchema = {
3368
3455
  description: 'First 128 characters of the initial message body, with markdown formatting and newlines stripped. Used for ticket list previews.',
3369
3456
  example: 'My cluster cannot reach the registry. Logs attached.'
3370
3457
  },
3458
+ support_access_granted: {
3459
+ type: 'boolean',
3460
+ description: 'Whether Cloudfleet support staff currently have access to the organization\'s resources. True once access is granted and until the ticket is closed.',
3461
+ example: true
3462
+ },
3463
+ support_access_granted_at: {
3464
+ type: 'string',
3465
+ format: 'date-time',
3466
+ nullable: true,
3467
+ description: 'When support access was granted. Null if it never was. Kept after the ticket is closed.',
3468
+ example: '2026-05-11T16:08:14.338Z'
3469
+ },
3371
3470
  closed_at: {
3372
3471
  type: 'string',
3373
3472
  format: 'date-time',
@@ -3481,6 +3580,8 @@ export const TicketSchema = {
3481
3580
  'status',
3482
3581
  'category',
3483
3582
  'summary',
3583
+ 'support_access_granted',
3584
+ 'support_access_granted_at',
3484
3585
  'date_created',
3485
3586
  'date_updated'
3486
3587
  ],