@cloudfleet/sdk 0.0.1-93502b6 → 0.0.1-93f1e5c

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.
@@ -93,12 +93,17 @@ export const BillingContactSchema = {
93
93
  'at_vat',
94
94
  'au_abn',
95
95
  'au_arn',
96
+ 'aw_tin',
97
+ 'az_tin',
96
98
  'ba_tin',
97
99
  'bb_tin',
100
+ 'bd_bin',
98
101
  'be_vat',
102
+ 'bf_ifu',
99
103
  'bg_uic',
100
104
  'bg_vat',
101
105
  'bh_vat',
106
+ 'bj_ifu',
102
107
  'bo_tin',
103
108
  'br_cnpj',
104
109
  'br_cpf',
@@ -114,9 +119,11 @@ export const BillingContactSchema = {
114
119
  'ch_uid',
115
120
  'ch_vat',
116
121
  'cl_tin',
122
+ 'cm_niu',
117
123
  'cn_tin',
118
124
  'co_nit',
119
125
  'cr_tin',
126
+ 'cv_nif',
120
127
  'cy_vat',
121
128
  'cz_vat',
122
129
  'de_stn',
@@ -128,6 +135,7 @@ export const BillingContactSchema = {
128
135
  'eg_tin',
129
136
  'es_cif',
130
137
  'es_vat',
138
+ 'et_tin',
131
139
  'eu_oss_vat',
132
140
  'fi_vat',
133
141
  'fr_vat',
@@ -150,11 +158,14 @@ export const BillingContactSchema = {
150
158
  'jp_rn',
151
159
  'jp_trn',
152
160
  'ke_pin',
161
+ 'kg_tin',
153
162
  'kh_tin',
154
163
  'kr_brn',
155
164
  'kz_bin',
165
+ 'la_tin',
156
166
  'li_uid',
157
167
  'li_vat',
168
+ 'lk_vat',
158
169
  'lt_vat',
159
170
  'lu_vat',
160
171
  'lv_vat',
@@ -582,6 +593,11 @@ export const ClusterJoinInformationSchema = {
582
593
  description: 'Authentication key for the cluster.',
583
594
  example: 'tskey-auth-kBV8wr1dk911CNTRL-...'
584
595
  },
596
+ login_server: {
597
+ type: 'string',
598
+ 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.',
599
+ example: 'https://415026b6-f00f-44f8-968d-fc6ef4d0fc6d.fabric.europe-central-1a.cfke.io'
600
+ },
585
601
  bootstrap_token: {
586
602
  type: 'string',
587
603
  description: 'Bootstrap token for the cluster.',
@@ -654,6 +670,7 @@ export const ClusterJoinInformationSchema = {
654
670
  'cluster_dns',
655
671
  'pod_cidr',
656
672
  'auth_key',
673
+ 'login_server',
657
674
  'bootstrap_token',
658
675
  'versions',
659
676
  'third_party_api_access_config'
@@ -1336,6 +1353,44 @@ export const FleetCreateInputSchema = {
1336
1353
  'conservative'
1337
1354
  ]
1338
1355
  },
1356
+ taints: {
1357
+ type: 'array',
1358
+ items: {
1359
+ type: 'object',
1360
+ properties: {
1361
+ key: {
1362
+ type: 'string',
1363
+ 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.',
1364
+ example: 'dedicated'
1365
+ },
1366
+ value: {
1367
+ type: 'string',
1368
+ maxLength: 63,
1369
+ pattern: '^([A-Za-z0-9]([-A-Za-z0-9_.]*[A-Za-z0-9])?)?$',
1370
+ description: 'Taint value. Optional.',
1371
+ example: 'ci'
1372
+ },
1373
+ effect: {
1374
+ type: 'string',
1375
+ description: 'Taint effect.',
1376
+ example: 'NoSchedule',
1377
+ enum: [
1378
+ 'NoSchedule',
1379
+ 'PreferNoSchedule',
1380
+ 'NoExecute'
1381
+ ]
1382
+ }
1383
+ },
1384
+ required: [
1385
+ 'key',
1386
+ 'effect'
1387
+ ],
1388
+ additionalProperties: false
1389
+ },
1390
+ maxItems: 50,
1391
+ 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.',
1392
+ default: []
1393
+ },
1339
1394
  id: {
1340
1395
  type: 'string',
1341
1396
  maxLength: 63,
@@ -1725,6 +1780,44 @@ export const FleetSchema = {
1725
1780
  'conservative'
1726
1781
  ]
1727
1782
  },
1783
+ taints: {
1784
+ type: 'array',
1785
+ items: {
1786
+ type: 'object',
1787
+ properties: {
1788
+ key: {
1789
+ type: 'string',
1790
+ 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.',
1791
+ example: 'dedicated'
1792
+ },
1793
+ value: {
1794
+ type: 'string',
1795
+ maxLength: 63,
1796
+ pattern: '^([A-Za-z0-9]([-A-Za-z0-9_.]*[A-Za-z0-9])?)?$',
1797
+ description: 'Taint value. Optional.',
1798
+ example: 'ci'
1799
+ },
1800
+ effect: {
1801
+ type: 'string',
1802
+ description: 'Taint effect.',
1803
+ example: 'NoSchedule',
1804
+ enum: [
1805
+ 'NoSchedule',
1806
+ 'PreferNoSchedule',
1807
+ 'NoExecute'
1808
+ ]
1809
+ }
1810
+ },
1811
+ required: [
1812
+ 'key',
1813
+ 'effect'
1814
+ ],
1815
+ additionalProperties: false
1816
+ },
1817
+ maxItems: 50,
1818
+ 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.',
1819
+ default: []
1820
+ },
1728
1821
  id: {
1729
1822
  type: 'string',
1730
1823
  maxLength: 63,
@@ -1757,6 +1850,7 @@ export const FleetSchema = {
1757
1850
  required: [
1758
1851
  'constraints',
1759
1852
  'scalingProfile',
1853
+ 'taints',
1760
1854
  'id',
1761
1855
  'ready',
1762
1856
  'created_at',
@@ -2136,6 +2230,44 @@ export const FleetUpdateInputSchema = {
2136
2230
  'aggressive',
2137
2231
  'conservative'
2138
2232
  ]
2233
+ },
2234
+ taints: {
2235
+ type: 'array',
2236
+ items: {
2237
+ type: 'object',
2238
+ properties: {
2239
+ key: {
2240
+ type: 'string',
2241
+ 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.',
2242
+ example: 'dedicated'
2243
+ },
2244
+ value: {
2245
+ type: 'string',
2246
+ maxLength: 63,
2247
+ pattern: '^([A-Za-z0-9]([-A-Za-z0-9_.]*[A-Za-z0-9])?)?$',
2248
+ description: 'Taint value. Optional.',
2249
+ example: 'ci'
2250
+ },
2251
+ effect: {
2252
+ type: 'string',
2253
+ description: 'Taint effect.',
2254
+ example: 'NoSchedule',
2255
+ enum: [
2256
+ 'NoSchedule',
2257
+ 'PreferNoSchedule',
2258
+ 'NoExecute'
2259
+ ]
2260
+ }
2261
+ },
2262
+ required: [
2263
+ 'key',
2264
+ 'effect'
2265
+ ],
2266
+ additionalProperties: false
2267
+ },
2268
+ maxItems: 50,
2269
+ 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.',
2270
+ default: []
2139
2271
  }
2140
2272
  },
2141
2273
  additionalProperties: false,
@@ -2213,6 +2345,170 @@ export const InviteSchema = {
2213
2345
  ],
2214
2346
  additionalProperties: false
2215
2347
  };
2348
+ export const InvoicePaymentAttemptSchema = {
2349
+ type: 'object',
2350
+ properties: {
2351
+ invoice_id: {
2352
+ type: 'string',
2353
+ description: 'Identifier of the invoice.',
2354
+ example: 'in_1234567890xCrwxghOTj1234'
2355
+ },
2356
+ number: {
2357
+ type: 'string',
2358
+ nullable: true,
2359
+ description: 'Invoice number. Null if the invoice has no number.',
2360
+ example: 'CF-0042'
2361
+ },
2362
+ amount: {
2363
+ type: 'number',
2364
+ format: 'float',
2365
+ description: 'Amount outstanding when the charge was attempted, in the smallest currency unit.',
2366
+ example: 4200
2367
+ },
2368
+ currency: {
2369
+ type: 'string',
2370
+ description: 'Currency of the invoice.',
2371
+ example: 'eur'
2372
+ },
2373
+ status: {
2374
+ type: 'string',
2375
+ description: 'Outcome for this invoice: `paid`, `processing` (accepted, not yet settled), `requires_action` (awaiting customer authentication), or `failed` (declined).',
2376
+ example: 'paid',
2377
+ enum: [
2378
+ 'paid',
2379
+ 'processing',
2380
+ 'requires_action',
2381
+ 'failed'
2382
+ ]
2383
+ },
2384
+ client_secret: {
2385
+ type: 'string',
2386
+ nullable: true,
2387
+ description: 'Client secret used to complete customer authentication. Set only when `status` is `requires_action`.',
2388
+ example: 'pi_3MtwBwLkdIwHu7ix28a3tqPa_secret_YrKJUKribcBjcG8HVhfZluoGH'
2389
+ },
2390
+ failure_code: {
2391
+ type: 'string',
2392
+ nullable: true,
2393
+ description: 'Decline code. Set only when `status` is `failed`.',
2394
+ example: 'insufficient_funds'
2395
+ },
2396
+ failure_message: {
2397
+ type: 'string',
2398
+ nullable: true,
2399
+ description: 'Explanation of the decline, suitable for display. Set only when `status` is `failed`.',
2400
+ example: 'Your card has insufficient funds.'
2401
+ }
2402
+ },
2403
+ required: [
2404
+ 'invoice_id',
2405
+ 'number',
2406
+ 'amount',
2407
+ 'currency',
2408
+ 'status',
2409
+ 'client_secret',
2410
+ 'failure_code',
2411
+ 'failure_message'
2412
+ ],
2413
+ additionalProperties: false
2414
+ };
2415
+ export const InvoicePaymentResultSchema = {
2416
+ type: 'object',
2417
+ properties: {
2418
+ code: {
2419
+ type: 'string',
2420
+ 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).',
2421
+ example: 'partially_paid',
2422
+ enum: [
2423
+ 'paid',
2424
+ 'processing',
2425
+ 'action_required',
2426
+ 'partially_paid',
2427
+ 'failed',
2428
+ 'nothing_due',
2429
+ 'bank_transfer_due'
2430
+ ]
2431
+ },
2432
+ message: {
2433
+ type: 'string',
2434
+ description: 'Summary of the outcome, suitable for display.',
2435
+ example: '1 of 2 open invoices was paid. Invoice CF-0043 was declined: Your card has insufficient funds.'
2436
+ },
2437
+ results: {
2438
+ type: 'array',
2439
+ items: {
2440
+ type: 'object',
2441
+ properties: {
2442
+ invoice_id: {
2443
+ type: 'string',
2444
+ description: 'Identifier of the invoice.',
2445
+ example: 'in_1234567890xCrwxghOTj1234'
2446
+ },
2447
+ number: {
2448
+ type: 'string',
2449
+ description: 'Invoice number. Null if the invoice has no number.',
2450
+ example: 'CF-0042'
2451
+ },
2452
+ amount: {
2453
+ type: 'number',
2454
+ format: 'float',
2455
+ description: 'Amount outstanding when the charge was attempted, in the smallest currency unit.',
2456
+ example: 4200
2457
+ },
2458
+ currency: {
2459
+ type: 'string',
2460
+ description: 'Currency of the invoice.',
2461
+ example: 'eur'
2462
+ },
2463
+ status: {
2464
+ type: 'string',
2465
+ description: 'Outcome for this invoice: `paid`, `processing` (accepted, not yet settled), `requires_action` (awaiting customer authentication), or `failed` (declined).',
2466
+ example: 'paid',
2467
+ enum: [
2468
+ 'paid',
2469
+ 'processing',
2470
+ 'requires_action',
2471
+ 'failed'
2472
+ ]
2473
+ },
2474
+ client_secret: {
2475
+ type: 'string',
2476
+ description: 'Client secret used to complete customer authentication. Set only when `status` is `requires_action`.',
2477
+ example: 'pi_3MtwBwLkdIwHu7ix28a3tqPa_secret_YrKJUKribcBjcG8HVhfZluoGH'
2478
+ },
2479
+ failure_code: {
2480
+ type: 'string',
2481
+ description: 'Decline code. Set only when `status` is `failed`.',
2482
+ example: 'insufficient_funds'
2483
+ },
2484
+ failure_message: {
2485
+ type: 'string',
2486
+ description: 'Explanation of the decline, suitable for display. Set only when `status` is `failed`.',
2487
+ example: 'Your card has insufficient funds.'
2488
+ }
2489
+ },
2490
+ required: [
2491
+ 'invoice_id',
2492
+ 'number',
2493
+ 'amount',
2494
+ 'currency',
2495
+ 'status',
2496
+ 'client_secret',
2497
+ 'failure_code',
2498
+ 'failure_message'
2499
+ ],
2500
+ additionalProperties: false
2501
+ },
2502
+ description: 'One entry per invoice charged, oldest first.'
2503
+ }
2504
+ },
2505
+ required: [
2506
+ 'code',
2507
+ 'message',
2508
+ 'results'
2509
+ ],
2510
+ additionalProperties: false
2511
+ };
2216
2512
  export const InvoiceSchema = {
2217
2513
  type: 'object',
2218
2514
  properties: {
@@ -3114,6 +3410,73 @@ export const RegistryTagSchema = {
3114
3410
  ],
3115
3411
  additionalProperties: false
3116
3412
  };
3413
+ export const RoadmapItemCreateInputSchema = {
3414
+ type: 'object',
3415
+ properties: {
3416
+ text: {
3417
+ type: 'string',
3418
+ maxLength: 500,
3419
+ minLength: 1,
3420
+ description: 'Your suggestion in one or two sentences. It is reviewed before it appears on the roadmap.',
3421
+ example: 'Support for ARM nodes on Hetzner.'
3422
+ }
3423
+ },
3424
+ required: [
3425
+ 'text'
3426
+ ],
3427
+ additionalProperties: false
3428
+ };
3429
+ export const RoadmapItemSchema = {
3430
+ type: 'object',
3431
+ properties: {
3432
+ id: {
3433
+ type: 'string',
3434
+ description: 'Unique identifier of the roadmap item (Mongo ObjectId).',
3435
+ example: '60c72b2f9f1b2c001f8e4d3a'
3436
+ },
3437
+ text: {
3438
+ type: 'string',
3439
+ description: 'Short description of the roadmap item.',
3440
+ example: 'Support for ARM nodes on Hetzner.'
3441
+ },
3442
+ vote: {
3443
+ type: 'integer',
3444
+ nullable: true,
3445
+ description: 'The caller\'s vote on this item: -1 (down), 1 (up), 2 (double up), or null if the caller has not voted.',
3446
+ example: 1,
3447
+ enum: [
3448
+ -1,
3449
+ 1,
3450
+ 2
3451
+ ]
3452
+ }
3453
+ },
3454
+ required: [
3455
+ 'id',
3456
+ 'text',
3457
+ 'vote'
3458
+ ],
3459
+ additionalProperties: false
3460
+ };
3461
+ export const RoadmapVoteInputSchema = {
3462
+ type: 'object',
3463
+ properties: {
3464
+ value: {
3465
+ type: 'integer',
3466
+ description: 'Vote value: -1 (down), 1 (up), or 2 (double up).',
3467
+ example: 1,
3468
+ enum: [
3469
+ -1,
3470
+ 1,
3471
+ 2
3472
+ ]
3473
+ }
3474
+ },
3475
+ required: [
3476
+ 'value'
3477
+ ],
3478
+ additionalProperties: false
3479
+ };
3117
3480
  export const TicketAttachmentSchema = {
3118
3481
  type: 'object',
3119
3482
  properties: {
@@ -3175,6 +3538,11 @@ export const TicketCreateInputSchema = {
3175
3538
  subcategory: 'cluster-question',
3176
3539
  cluster_id: '60c72b2f9f1b2c001f8e4d3a'
3177
3540
  }
3541
+ },
3542
+ grant_support_access: {
3543
+ type: 'boolean',
3544
+ 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.',
3545
+ example: true
3178
3546
  }
3179
3547
  },
3180
3548
  required: [
@@ -3183,172 +3551,6 @@ export const TicketCreateInputSchema = {
3183
3551
  ],
3184
3552
  additionalProperties: false
3185
3553
  };
3186
- export const TicketListResponseSchema = {
3187
- type: 'object',
3188
- properties: {
3189
- items: {
3190
- type: 'array',
3191
- items: {
3192
- type: 'object',
3193
- properties: {
3194
- id: {
3195
- type: 'string',
3196
- description: 'Unique identifier of the ticket (Mongo ObjectId).',
3197
- example: '60c72b2f9f1b2c001f8e4d3a'
3198
- },
3199
- status: {
3200
- type: 'string',
3201
- description: 'Current state of the ticket.',
3202
- example: 'waiting_on_us',
3203
- enum: [
3204
- 'waiting_on_us',
3205
- 'waiting_on_user',
3206
- 'closed'
3207
- ]
3208
- },
3209
- category: {
3210
- type: 'string',
3211
- description: 'Ticket category.',
3212
- example: 'technical',
3213
- enum: [
3214
- 'billing',
3215
- 'technical',
3216
- 'general'
3217
- ]
3218
- },
3219
- summary: {
3220
- type: 'string',
3221
- description: 'First 128 characters of the initial message body, with markdown formatting and newlines stripped. Used for ticket list previews.',
3222
- example: 'My cluster cannot reach the registry. Logs attached.'
3223
- },
3224
- closed_at: {
3225
- type: 'string',
3226
- format: 'date-time',
3227
- nullable: true,
3228
- description: 'Closure timestamp. Null while the ticket is open.',
3229
- example: '2026-05-18T16:08:14.338Z'
3230
- },
3231
- date_created: {
3232
- type: 'string',
3233
- format: 'date-time',
3234
- description: 'Creation date of the ticket. ISO 8601 UTC.',
3235
- example: '2026-05-11T16:08:14.338Z'
3236
- },
3237
- date_updated: {
3238
- type: 'string',
3239
- format: 'date-time',
3240
- description: 'Last update date of the ticket. ISO 8601 UTC.',
3241
- example: '2026-05-11T16:08:14.338Z'
3242
- },
3243
- messages: {
3244
- type: 'array',
3245
- items: {
3246
- type: 'object',
3247
- properties: {
3248
- id: {
3249
- type: 'string',
3250
- description: 'Unique identifier of the message (Mongo ObjectId).',
3251
- example: '60c72b2f9f1b2c001f8e4d3b'
3252
- },
3253
- type: {
3254
- type: 'string',
3255
- description: 'Message type. Internal notes are filtered out of customer-facing responses.',
3256
- example: 'customer_reply',
3257
- enum: [
3258
- 'customer_reply',
3259
- 'agent_reply'
3260
- ]
3261
- },
3262
- body: {
3263
- type: 'string',
3264
- description: 'Message body in markdown.',
3265
- example: 'Thanks — that resolved it on my side.'
3266
- },
3267
- author_first_name: {
3268
- type: 'string',
3269
- nullable: true,
3270
- description: 'First name of the author. Null when not provided.',
3271
- example: 'Jane'
3272
- },
3273
- author_last_name: {
3274
- type: 'string',
3275
- nullable: true,
3276
- description: 'Last name of the author. Null when not provided.',
3277
- example: 'Doe'
3278
- },
3279
- attachments: {
3280
- type: 'array',
3281
- items: {
3282
- type: 'object',
3283
- properties: {
3284
- id: {
3285
- type: 'string',
3286
- description: 'Unique identifier of the attachment (Mongo ObjectId).',
3287
- example: '60c72b2f9f1b2c001f8e4d3c'
3288
- },
3289
- filename: {
3290
- type: 'string',
3291
- description: 'Original filename as uploaded.',
3292
- example: 'debug.log'
3293
- },
3294
- content_type: {
3295
- type: 'string',
3296
- description: 'MIME content type of the attachment.',
3297
- example: 'text/plain'
3298
- },
3299
- size: {
3300
- type: 'integer',
3301
- description: 'Size of the attachment in bytes.',
3302
- example: 12345
3303
- }
3304
- },
3305
- required: [
3306
- 'id',
3307
- 'filename',
3308
- 'content_type',
3309
- 'size'
3310
- ],
3311
- additionalProperties: false
3312
- },
3313
- description: 'Attachments associated with this message.',
3314
- example: []
3315
- },
3316
- date_created: {
3317
- type: 'string',
3318
- format: 'date-time',
3319
- description: 'Creation date of the message. ISO 8601 UTC.',
3320
- example: '2026-05-11T16:08:14.338Z'
3321
- }
3322
- },
3323
- required: [
3324
- 'id',
3325
- 'type',
3326
- 'body',
3327
- 'date_created'
3328
- ],
3329
- additionalProperties: false
3330
- },
3331
- description: 'Messages on the ticket in chronological order. Internal notes are excluded. Returned by the detail endpoint only.'
3332
- }
3333
- },
3334
- required: [
3335
- 'id',
3336
- 'status',
3337
- 'category',
3338
- 'summary',
3339
- 'date_created',
3340
- 'date_updated'
3341
- ],
3342
- additionalProperties: false
3343
- },
3344
- description: 'Tickets for the organization, ordered newest first. Messages are omitted from list responses.'
3345
- }
3346
- },
3347
- required: [
3348
- 'items'
3349
- ],
3350
- additionalProperties: false
3351
- };
3352
3554
  export const TicketMessageInputSchema = {
3353
3555
  type: 'object',
3354
3556
  properties: {
@@ -3390,11 +3592,13 @@ export const TicketMessageSchema = {
3390
3592
  },
3391
3593
  author_first_name: {
3392
3594
  type: 'string',
3595
+ nullable: true,
3393
3596
  description: 'First name of the author. Null when not provided.',
3394
3597
  example: 'Jane'
3395
3598
  },
3396
3599
  author_last_name: {
3397
3600
  type: 'string',
3601
+ nullable: true,
3398
3602
  description: 'Last name of the author. Null when not provided.',
3399
3603
  example: 'Doe'
3400
3604
  },
@@ -3483,9 +3687,22 @@ export const TicketSchema = {
3483
3687
  description: 'First 128 characters of the initial message body, with markdown formatting and newlines stripped. Used for ticket list previews.',
3484
3688
  example: 'My cluster cannot reach the registry. Logs attached.'
3485
3689
  },
3690
+ support_access_granted: {
3691
+ type: 'boolean',
3692
+ description: 'Whether Cloudfleet support staff currently have access to the organization\'s resources. True once access is granted and until the ticket is closed.',
3693
+ example: true
3694
+ },
3695
+ support_access_granted_at: {
3696
+ type: 'string',
3697
+ format: 'date-time',
3698
+ nullable: true,
3699
+ description: 'When support access was granted. Null if it never was. Kept after the ticket is closed.',
3700
+ example: '2026-05-11T16:08:14.338Z'
3701
+ },
3486
3702
  closed_at: {
3487
3703
  type: 'string',
3488
3704
  format: 'date-time',
3705
+ nullable: true,
3489
3706
  description: 'Closure timestamp. Null while the ticket is open.',
3490
3707
  example: '2026-05-18T16:08:14.338Z'
3491
3708
  },
@@ -3595,6 +3812,8 @@ export const TicketSchema = {
3595
3812
  'status',
3596
3813
  'category',
3597
3814
  'summary',
3815
+ 'support_access_granted',
3816
+ 'support_access_granted_at',
3598
3817
  'date_created',
3599
3818
  'date_updated'
3600
3819
  ],
@@ -3710,12 +3929,21 @@ export const UsageFacetsSchema = {
3710
3929
  product: {
3711
3930
  type: 'array',
3712
3931
  items: {
3713
- type: 'string'
3932
+ type: 'string',
3933
+ enum: [
3934
+ 'cfke_controlplane_basic',
3935
+ 'cfke_controlplane_pro',
3936
+ 'cfke_controlplane_enterprise',
3937
+ 'cfke_connected_nodes_basic',
3938
+ 'cfke_connected_nodes_pro',
3939
+ 'cfke_connected_nodes_enterprise',
3940
+ 'cfcr_storage'
3941
+ ]
3714
3942
  },
3715
3943
  description: 'List of unique products',
3716
3944
  example: [
3717
- 'cfke_controlplane',
3718
- 'cfke_connected_nodes'
3945
+ 'cfke_controlplane_pro',
3946
+ 'cfke_connected_nodes_pro'
3719
3947
  ]
3720
3948
  }
3721
3949
  },
@@ -3742,7 +3970,16 @@ export const UsageResponseSchema = {
3742
3970
  product: {
3743
3971
  type: 'string',
3744
3972
  description: 'The product the usage is associated with',
3745
- example: 'cfke_controlplane'
3973
+ example: 'cfke_controlplane_pro',
3974
+ enum: [
3975
+ 'cfke_controlplane_basic',
3976
+ 'cfke_controlplane_pro',
3977
+ 'cfke_controlplane_enterprise',
3978
+ 'cfke_connected_nodes_basic',
3979
+ 'cfke_connected_nodes_pro',
3980
+ 'cfke_connected_nodes_enterprise',
3981
+ 'cfcr_storage'
3982
+ ]
3746
3983
  },
3747
3984
  value: {
3748
3985
  type: 'number',
@@ -3790,12 +4027,21 @@ export const UsageResponseSchema = {
3790
4027
  product: {
3791
4028
  type: 'array',
3792
4029
  items: {
3793
- type: 'string'
4030
+ type: 'string',
4031
+ enum: [
4032
+ 'cfke_controlplane_basic',
4033
+ 'cfke_controlplane_pro',
4034
+ 'cfke_controlplane_enterprise',
4035
+ 'cfke_connected_nodes_basic',
4036
+ 'cfke_connected_nodes_pro',
4037
+ 'cfke_connected_nodes_enterprise',
4038
+ 'cfcr_storage'
4039
+ ]
3794
4040
  },
3795
4041
  description: 'List of unique products',
3796
4042
  example: [
3797
- 'cfke_controlplane',
3798
- 'cfke_connected_nodes'
4043
+ 'cfke_controlplane_pro',
4044
+ 'cfke_connected_nodes_pro'
3799
4045
  ]
3800
4046
  }
3801
4047
  },
@@ -3825,7 +4071,16 @@ export const UsageSchema = {
3825
4071
  product: {
3826
4072
  type: 'string',
3827
4073
  description: 'The product the usage is associated with',
3828
- example: 'cfke_controlplane'
4074
+ example: 'cfke_controlplane_pro',
4075
+ enum: [
4076
+ 'cfke_controlplane_basic',
4077
+ 'cfke_controlplane_pro',
4078
+ 'cfke_controlplane_enterprise',
4079
+ 'cfke_connected_nodes_basic',
4080
+ 'cfke_connected_nodes_pro',
4081
+ 'cfke_connected_nodes_enterprise',
4082
+ 'cfcr_storage'
4083
+ ]
3829
4084
  },
3830
4085
  value: {
3831
4086
  type: 'number',