@claudexor/schema 3.24.0 → 3.25.1

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.
Files changed (37) hide show
  1. package/dist/account-resources.d.ts +5842 -0
  2. package/dist/account-resources.d.ts.map +1 -0
  3. package/dist/account-resources.js +161 -0
  4. package/dist/account-resources.js.map +1 -0
  5. package/dist/account-target.d.ts +39 -0
  6. package/dist/account-target.d.ts.map +1 -0
  7. package/dist/account-target.js +16 -0
  8. package/dist/account-target.js.map +1 -0
  9. package/dist/credential-profile-snapshot.d.ts +5987 -126
  10. package/dist/credential-profile-snapshot.d.ts.map +1 -1
  11. package/dist/credential-profile-snapshot.js +9 -1
  12. package/dist/credential-profile-snapshot.js.map +1 -1
  13. package/dist/harness-quota.d.ts +81 -0
  14. package/dist/harness-quota.d.ts.map +1 -0
  15. package/dist/harness-quota.js +20 -0
  16. package/dist/harness-quota.js.map +1 -0
  17. package/dist/harness.d.ts +116 -99
  18. package/dist/harness.d.ts.map +1 -1
  19. package/dist/harness.js +2 -12
  20. package/dist/harness.js.map +1 -1
  21. package/dist/index.d.ts +1 -0
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +1 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/quota.d.ts +1 -8
  26. package/dist/quota.d.ts.map +1 -1
  27. package/dist/quota.js +1 -10
  28. package/dist/quota.js.map +1 -1
  29. package/generated/ControlAccountResetRequest.schema.json +42 -0
  30. package/generated/ControlAccountResetResponse.schema.json +1024 -0
  31. package/generated/ControlAccountResourcesResponse.schema.json +912 -0
  32. package/generated/ControlCredentialProfilesQueryResponse.schema.json +600 -0
  33. package/generated/ControlCredentialProfilesResourcesResponse.schema.json +2324 -0
  34. package/generated/ControlQuotaQueryResponse.schema.json +939 -0
  35. package/generated/ControlQuotaRefreshRequest.schema.json +18 -0
  36. package/generated/HarnessEvent.schema.json +23 -0
  37. package/package.json +2 -2
@@ -0,0 +1,1024 @@
1
+ {
2
+ "$ref": "#/definitions/ControlAccountResetResponse",
3
+ "definitions": {
4
+ "ControlAccountResetResponse": {
5
+ "type": "object",
6
+ "properties": {
7
+ "id": {
8
+ "type": "string"
9
+ },
10
+ "request": {
11
+ "type": "object",
12
+ "properties": {
13
+ "target": {
14
+ "type": "object",
15
+ "properties": {
16
+ "harness": {
17
+ "type": "string",
18
+ "minLength": 1
19
+ },
20
+ "profile_id": {
21
+ "type": "string",
22
+ "minLength": 1
23
+ }
24
+ },
25
+ "required": [
26
+ "harness",
27
+ "profile_id"
28
+ ],
29
+ "additionalProperties": false
30
+ },
31
+ "offer_id": {
32
+ "type": "string",
33
+ "minLength": 1
34
+ },
35
+ "grant_id": {
36
+ "type": "string",
37
+ "minLength": 1
38
+ }
39
+ },
40
+ "required": [
41
+ "target",
42
+ "offer_id"
43
+ ],
44
+ "additionalProperties": false
45
+ },
46
+ "state": {
47
+ "type": "string",
48
+ "enum": [
49
+ "running",
50
+ "completed"
51
+ ]
52
+ },
53
+ "created_at": {
54
+ "type": "string",
55
+ "format": "date-time"
56
+ },
57
+ "completed_at": {
58
+ "anyOf": [
59
+ {
60
+ "type": "string",
61
+ "format": "date-time"
62
+ },
63
+ {
64
+ "type": "null"
65
+ }
66
+ ]
67
+ },
68
+ "outcome": {
69
+ "type": "string",
70
+ "enum": [
71
+ "pending",
72
+ "reset",
73
+ "already_redeemed",
74
+ "already_used",
75
+ "nothing_to_reset",
76
+ "no_credit",
77
+ "not_eligible",
78
+ "cooldown",
79
+ "unavailable",
80
+ "unknown"
81
+ ]
82
+ },
83
+ "detail": {
84
+ "type": [
85
+ "string",
86
+ "null"
87
+ ]
88
+ },
89
+ "readback": {
90
+ "type": "object",
91
+ "properties": {
92
+ "state": {
93
+ "type": "string",
94
+ "enum": [
95
+ "pending",
96
+ "fresh",
97
+ "failed"
98
+ ]
99
+ },
100
+ "attempted_at": {
101
+ "$ref": "#/definitions/ControlAccountResetResponse/properties/completed_at"
102
+ },
103
+ "detail": {
104
+ "type": [
105
+ "string",
106
+ "null"
107
+ ]
108
+ }
109
+ },
110
+ "required": [
111
+ "state",
112
+ "attempted_at",
113
+ "detail"
114
+ ],
115
+ "additionalProperties": false
116
+ },
117
+ "resources": {
118
+ "anyOf": [
119
+ {
120
+ "type": "object",
121
+ "properties": {
122
+ "snapshots": {
123
+ "type": "array",
124
+ "items": {
125
+ "type": "object",
126
+ "properties": {
127
+ "subject": {
128
+ "type": "object",
129
+ "properties": {
130
+ "harness": {
131
+ "type": "string",
132
+ "minLength": 1,
133
+ "description": "Non-empty identifier string."
134
+ },
135
+ "credential_route": {
136
+ "type": "string",
137
+ "enum": [
138
+ "vendor_native",
139
+ "managed_api_key",
140
+ "local"
141
+ ]
142
+ },
143
+ "plan_label": {
144
+ "type": [
145
+ "string",
146
+ "null"
147
+ ],
148
+ "default": null
149
+ },
150
+ "subject_id": {
151
+ "type": [
152
+ "string",
153
+ "null"
154
+ ],
155
+ "default": null
156
+ }
157
+ },
158
+ "required": [
159
+ "harness",
160
+ "credential_route"
161
+ ],
162
+ "additionalProperties": false,
163
+ "description": "Quota owner and credential route; subject_id is the credential-profile id (null = the engine-default credential)."
164
+ },
165
+ "constraints": {
166
+ "type": "array",
167
+ "items": {
168
+ "type": "object",
169
+ "properties": {
170
+ "id": {
171
+ "$ref": "#/definitions/ControlAccountResetResponse/properties/resources/anyOf/0/properties/snapshots/items/properties/subject/properties/harness"
172
+ },
173
+ "label": {
174
+ "type": "string",
175
+ "minLength": 1
176
+ },
177
+ "applies_to_models": {
178
+ "anyOf": [
179
+ {
180
+ "type": "array",
181
+ "items": {
182
+ "$ref": "#/definitions/ControlAccountResetResponse/properties/resources/anyOf/0/properties/snapshots/items/properties/subject/properties/harness"
183
+ }
184
+ },
185
+ {
186
+ "type": "null"
187
+ }
188
+ ]
189
+ },
190
+ "applies_to_model_prefixes": {
191
+ "type": "array",
192
+ "items": {
193
+ "$ref": "#/definitions/ControlAccountResetResponse/properties/resources/anyOf/0/properties/snapshots/items/properties/subject/properties/harness"
194
+ }
195
+ },
196
+ "applies_to_unspecified_model": {
197
+ "type": "boolean"
198
+ },
199
+ "used_ratio": {
200
+ "anyOf": [
201
+ {
202
+ "type": "number",
203
+ "minimum": 0,
204
+ "maximum": 1
205
+ },
206
+ {
207
+ "type": "null"
208
+ }
209
+ ]
210
+ },
211
+ "window_seconds": {
212
+ "anyOf": [
213
+ {
214
+ "type": "number",
215
+ "exclusiveMinimum": 0
216
+ },
217
+ {
218
+ "type": "null"
219
+ }
220
+ ]
221
+ },
222
+ "resets_at": {
223
+ "anyOf": [
224
+ {
225
+ "type": "string",
226
+ "format": "date-time"
227
+ },
228
+ {
229
+ "type": "null"
230
+ }
231
+ ]
232
+ },
233
+ "cooldown_until": {
234
+ "anyOf": [
235
+ {
236
+ "type": "string",
237
+ "format": "date-time"
238
+ },
239
+ {
240
+ "type": "null"
241
+ }
242
+ ],
243
+ "default": null
244
+ }
245
+ },
246
+ "required": [
247
+ "id",
248
+ "label",
249
+ "used_ratio",
250
+ "window_seconds",
251
+ "resets_at"
252
+ ],
253
+ "additionalProperties": false,
254
+ "description": "One independent vendor quota window; without model ids or declared prefixes it applies to every model, and null usage stays unknown."
255
+ }
256
+ },
257
+ "source": {
258
+ "type": "string",
259
+ "enum": [
260
+ "codex_app_server",
261
+ "codex_rollout",
262
+ "claude_statusline",
263
+ "claude_api_retry",
264
+ "claude_oauth_usage",
265
+ "agy_command_usage",
266
+ "cursor_rate_limit",
267
+ "claude_rate_limit_event",
268
+ "codex_app_server_event"
269
+ ],
270
+ "description": "Machine-readable source of quota evidence, classified by schema-owned traits."
271
+ },
272
+ "observed_at": {
273
+ "type": "string",
274
+ "format": "date-time"
275
+ },
276
+ "freshness": {
277
+ "type": "string",
278
+ "enum": [
279
+ "fresh",
280
+ "stale",
281
+ "unknown"
282
+ ],
283
+ "description": "Freshness of a quota snapshot at read time."
284
+ },
285
+ "snapshot_id": {
286
+ "type": "string",
287
+ "minLength": 1,
288
+ "description": "Server-derived stable snapshot identity for consumers; absent from raw journal evidence and optional for legacy responses."
289
+ },
290
+ "availability": {
291
+ "type": "object",
292
+ "properties": {
293
+ "state": {
294
+ "type": "string",
295
+ "enum": [
296
+ "available",
297
+ "exhausted",
298
+ "cooldown"
299
+ ],
300
+ "description": "Spendability verdict for one snapshot: exhausted = a spent window blocks every applicable request; cooldown = an applicable window is only rate-limit-cooling; available = nothing applicable blocks."
301
+ },
302
+ "blocking_constraints": {
303
+ "type": "array",
304
+ "items": {
305
+ "$ref": "#/definitions/ControlAccountResetResponse/properties/resources/anyOf/0/properties/snapshots/items/properties/subject/properties/harness"
306
+ },
307
+ "description": "Ids of the constraints that produced a non-available state."
308
+ },
309
+ "resets_at": {
310
+ "anyOf": [
311
+ {
312
+ "type": "string",
313
+ "format": "date-time"
314
+ },
315
+ {
316
+ "type": "null"
317
+ }
318
+ ],
319
+ "description": "Earliest known instant at which any blocking constraint may release; null when nothing blocks or no reset is known."
320
+ },
321
+ "model_scoped_exhaustions": {
322
+ "type": "array",
323
+ "items": {
324
+ "type": "object",
325
+ "properties": {
326
+ "constraint_id": {
327
+ "$ref": "#/definitions/ControlAccountResetResponse/properties/resources/anyOf/0/properties/snapshots/items/properties/subject/properties/harness"
328
+ },
329
+ "applies_to_models": {
330
+ "type": "array",
331
+ "items": {
332
+ "$ref": "#/definitions/ControlAccountResetResponse/properties/resources/anyOf/0/properties/snapshots/items/properties/subject/properties/harness"
333
+ }
334
+ },
335
+ "applies_to_model_prefixes": {
336
+ "type": "array",
337
+ "items": {
338
+ "$ref": "#/definitions/ControlAccountResetResponse/properties/resources/anyOf/0/properties/snapshots/items/properties/subject/properties/harness"
339
+ }
340
+ },
341
+ "resets_at": {
342
+ "anyOf": [
343
+ {
344
+ "type": "string",
345
+ "format": "date-time"
346
+ },
347
+ {
348
+ "type": "null"
349
+ }
350
+ ]
351
+ }
352
+ },
353
+ "required": [
354
+ "constraint_id",
355
+ "applies_to_models",
356
+ "resets_at"
357
+ ],
358
+ "additionalProperties": false,
359
+ "description": "A spent or cooling window that applies only to the named models or declared model-id prefixes. Without a requested model only a window that DECLARES it governs the unspecified-model route can exhaust the subject; when the request names a model it covers, it blocks that request too (and is then also listed in blocking_constraints). resets_at is its earliest known release instant (null = unknown)."
360
+ },
361
+ "description": "Every spent/cooling model-scoped window, listed regardless of state so consumers see partial exhaustion without re-deriving constraint scope."
362
+ }
363
+ },
364
+ "required": [
365
+ "state",
366
+ "blocking_constraints",
367
+ "resets_at",
368
+ "model_scoped_exhaustions"
369
+ ],
370
+ "additionalProperties": false,
371
+ "description": "Typed server-owned availability projection derived at the /v2/quota and atomic Accounts response boundaries; absent from raw journal/projection storage."
372
+ }
373
+ },
374
+ "required": [
375
+ "subject",
376
+ "constraints",
377
+ "source",
378
+ "observed_at",
379
+ "freshness"
380
+ ],
381
+ "additionalProperties": false,
382
+ "description": "One vendor-owned quota snapshot plus its derived availability projection."
383
+ }
384
+ },
385
+ "absences": {
386
+ "type": "array",
387
+ "items": {
388
+ "type": "object",
389
+ "properties": {
390
+ "subject": {
391
+ "$ref": "#/definitions/ControlAccountResetResponse/properties/resources/anyOf/0/properties/snapshots/items/properties/subject"
392
+ },
393
+ "reason": {
394
+ "type": "string",
395
+ "enum": [
396
+ "not_logged_in",
397
+ "transport_unavailable",
398
+ "platform_unsupported",
399
+ "refresh_failed",
400
+ "no_source",
401
+ "auth_revoked",
402
+ "rate_limited",
403
+ "probe_skipped_rate_limited",
404
+ "poll_paced",
405
+ "credential_profile_ambiguous"
406
+ ],
407
+ "description": "Why a registered subject has no fresh quota snapshot, in the source's own vocabulary."
408
+ },
409
+ "detail": {
410
+ "type": [
411
+ "string",
412
+ "null"
413
+ ],
414
+ "default": null
415
+ },
416
+ "observed_at": {
417
+ "type": "string",
418
+ "format": "date-time"
419
+ },
420
+ "retry_after_ms": {
421
+ "type": "integer",
422
+ "minimum": 0
423
+ }
424
+ },
425
+ "required": [
426
+ "subject",
427
+ "reason",
428
+ "observed_at"
429
+ ],
430
+ "additionalProperties": false,
431
+ "description": "A registered subject's typed quota observation gap; may accompany stale last-known data."
432
+ },
433
+ "default": [],
434
+ "description": "Every registered subject reports a snapshot or a typed absence; a refresh gap may coexist with a stale last-known snapshot."
435
+ },
436
+ "refreshed_at": {
437
+ "anyOf": [
438
+ {
439
+ "type": "string",
440
+ "format": "date-time"
441
+ },
442
+ {
443
+ "type": "null"
444
+ }
445
+ ]
446
+ },
447
+ "refresh_skipped": {
448
+ "type": "array",
449
+ "items": {
450
+ "type": "object",
451
+ "properties": {
452
+ "vendor": {
453
+ "$ref": "#/definitions/ControlAccountResetResponse/properties/resources/anyOf/0/properties/snapshots/items/properties/subject/properties/harness"
454
+ },
455
+ "subject": {
456
+ "$ref": "#/definitions/ControlAccountResetResponse/properties/resources/anyOf/0/properties/snapshots/items/properties/subject",
457
+ "description": "The exact paused subject; omitted only for an existing vendor-wide floor."
458
+ },
459
+ "not_before": {
460
+ "type": "string",
461
+ "format": "date-time"
462
+ }
463
+ },
464
+ "required": [
465
+ "vendor",
466
+ "not_before"
467
+ ],
468
+ "additionalProperties": false,
469
+ "description": "One subject a refresh cycle did not re-fetch because its poll rate-limit cooldown is active, or a retained legacy vendor floor when subject is absent; its snapshots/absences in the same response are last-known registry data."
470
+ }
471
+ },
472
+ "resources": {
473
+ "type": "array",
474
+ "items": {
475
+ "type": "object",
476
+ "properties": {
477
+ "target": {
478
+ "$ref": "#/definitions/ControlAccountResetResponse/properties/request/properties/target"
479
+ },
480
+ "balances": {
481
+ "type": "object",
482
+ "properties": {
483
+ "value": {
484
+ "anyOf": [
485
+ {
486
+ "type": "array",
487
+ "items": {
488
+ "type": "object",
489
+ "properties": {
490
+ "id": {
491
+ "type": "string"
492
+ },
493
+ "label": {
494
+ "type": "string"
495
+ },
496
+ "amount": {
497
+ "type": [
498
+ "string",
499
+ "null"
500
+ ]
501
+ },
502
+ "unit": {
503
+ "type": "string"
504
+ },
505
+ "currency": {
506
+ "type": [
507
+ "string",
508
+ "null"
509
+ ]
510
+ },
511
+ "decimal_places": {
512
+ "anyOf": [
513
+ {
514
+ "type": "integer",
515
+ "minimum": 0
516
+ },
517
+ {
518
+ "type": "null"
519
+ }
520
+ ]
521
+ },
522
+ "has_balance": {
523
+ "type": [
524
+ "boolean",
525
+ "null"
526
+ ]
527
+ },
528
+ "unlimited": {
529
+ "type": [
530
+ "boolean",
531
+ "null"
532
+ ]
533
+ }
534
+ },
535
+ "required": [
536
+ "id",
537
+ "label",
538
+ "amount",
539
+ "unit",
540
+ "currency",
541
+ "decimal_places",
542
+ "has_balance",
543
+ "unlimited"
544
+ ],
545
+ "additionalProperties": false
546
+ }
547
+ },
548
+ {
549
+ "type": "null"
550
+ }
551
+ ]
552
+ },
553
+ "source": {
554
+ "type": [
555
+ "string",
556
+ "null"
557
+ ]
558
+ },
559
+ "observed_at": {
560
+ "$ref": "#/definitions/ControlAccountResetResponse/properties/completed_at"
561
+ },
562
+ "freshness": {
563
+ "type": "string",
564
+ "enum": [
565
+ "fresh",
566
+ "stale",
567
+ "unknown"
568
+ ]
569
+ },
570
+ "last_attempt_at": {
571
+ "$ref": "#/definitions/ControlAccountResetResponse/properties/completed_at"
572
+ },
573
+ "last_error": {
574
+ "type": [
575
+ "string",
576
+ "null"
577
+ ]
578
+ }
579
+ },
580
+ "required": [
581
+ "value",
582
+ "source",
583
+ "observed_at",
584
+ "freshness",
585
+ "last_attempt_at",
586
+ "last_error"
587
+ ],
588
+ "additionalProperties": false
589
+ },
590
+ "spending": {
591
+ "type": "object",
592
+ "properties": {
593
+ "value": {
594
+ "anyOf": [
595
+ {
596
+ "type": "array",
597
+ "items": {
598
+ "type": "object",
599
+ "properties": {
600
+ "id": {
601
+ "type": "string"
602
+ },
603
+ "label": {
604
+ "type": "string"
605
+ },
606
+ "enabled": {
607
+ "type": [
608
+ "boolean",
609
+ "null"
610
+ ]
611
+ },
612
+ "used": {
613
+ "type": [
614
+ "string",
615
+ "null"
616
+ ]
617
+ },
618
+ "limit": {
619
+ "type": [
620
+ "string",
621
+ "null"
622
+ ]
623
+ },
624
+ "unit": {
625
+ "type": "string"
626
+ },
627
+ "currency": {
628
+ "type": [
629
+ "string",
630
+ "null"
631
+ ]
632
+ },
633
+ "decimal_places": {
634
+ "anyOf": [
635
+ {
636
+ "type": "integer",
637
+ "minimum": 0
638
+ },
639
+ {
640
+ "type": "null"
641
+ }
642
+ ]
643
+ },
644
+ "resets_at": {
645
+ "$ref": "#/definitions/ControlAccountResetResponse/properties/completed_at"
646
+ },
647
+ "reason": {
648
+ "type": [
649
+ "string",
650
+ "null"
651
+ ]
652
+ }
653
+ },
654
+ "required": [
655
+ "id",
656
+ "label",
657
+ "enabled",
658
+ "used",
659
+ "limit",
660
+ "unit",
661
+ "currency",
662
+ "decimal_places",
663
+ "resets_at",
664
+ "reason"
665
+ ],
666
+ "additionalProperties": false
667
+ }
668
+ },
669
+ {
670
+ "type": "null"
671
+ }
672
+ ]
673
+ },
674
+ "source": {
675
+ "type": [
676
+ "string",
677
+ "null"
678
+ ]
679
+ },
680
+ "observed_at": {
681
+ "$ref": "#/definitions/ControlAccountResetResponse/properties/completed_at"
682
+ },
683
+ "freshness": {
684
+ "type": "string",
685
+ "enum": [
686
+ "fresh",
687
+ "stale",
688
+ "unknown"
689
+ ]
690
+ },
691
+ "last_attempt_at": {
692
+ "$ref": "#/definitions/ControlAccountResetResponse/properties/completed_at"
693
+ },
694
+ "last_error": {
695
+ "type": [
696
+ "string",
697
+ "null"
698
+ ]
699
+ }
700
+ },
701
+ "required": [
702
+ "value",
703
+ "source",
704
+ "observed_at",
705
+ "freshness",
706
+ "last_attempt_at",
707
+ "last_error"
708
+ ],
709
+ "additionalProperties": false
710
+ },
711
+ "resets": {
712
+ "type": "object",
713
+ "properties": {
714
+ "value": {
715
+ "anyOf": [
716
+ {
717
+ "type": "array",
718
+ "items": {
719
+ "type": "object",
720
+ "properties": {
721
+ "id": {
722
+ "type": "string"
723
+ },
724
+ "kind": {
725
+ "type": "string",
726
+ "enum": [
727
+ "granted_reset",
728
+ "session_refill"
729
+ ]
730
+ },
731
+ "label": {
732
+ "type": "string"
733
+ },
734
+ "description": {
735
+ "type": [
736
+ "string",
737
+ "null"
738
+ ]
739
+ },
740
+ "available_count": {
741
+ "anyOf": [
742
+ {
743
+ "type": "integer",
744
+ "minimum": 0
745
+ },
746
+ {
747
+ "type": "null"
748
+ }
749
+ ]
750
+ },
751
+ "eligible": {
752
+ "type": [
753
+ "boolean",
754
+ "null"
755
+ ]
756
+ },
757
+ "usable_now": {
758
+ "type": [
759
+ "boolean",
760
+ "null"
761
+ ]
762
+ },
763
+ "reason": {
764
+ "type": [
765
+ "string",
766
+ "null"
767
+ ]
768
+ },
769
+ "resets_at": {
770
+ "$ref": "#/definitions/ControlAccountResetResponse/properties/completed_at"
771
+ },
772
+ "weekly_limit_applies": {
773
+ "type": "boolean"
774
+ },
775
+ "grants": {
776
+ "anyOf": [
777
+ {
778
+ "type": "array",
779
+ "items": {
780
+ "type": "object",
781
+ "properties": {
782
+ "id": {
783
+ "type": "string"
784
+ },
785
+ "label": {
786
+ "type": "string"
787
+ },
788
+ "description": {
789
+ "type": [
790
+ "string",
791
+ "null"
792
+ ]
793
+ },
794
+ "available_count": {
795
+ "anyOf": [
796
+ {
797
+ "type": "integer",
798
+ "minimum": 0
799
+ },
800
+ {
801
+ "type": "null"
802
+ }
803
+ ]
804
+ },
805
+ "total_count": {
806
+ "anyOf": [
807
+ {
808
+ "type": "integer",
809
+ "minimum": 0
810
+ },
811
+ {
812
+ "type": "null"
813
+ }
814
+ ]
815
+ },
816
+ "usable_now": {
817
+ "type": [
818
+ "boolean",
819
+ "null"
820
+ ]
821
+ },
822
+ "starts_at": {
823
+ "$ref": "#/definitions/ControlAccountResetResponse/properties/completed_at"
824
+ },
825
+ "expires_at": {
826
+ "$ref": "#/definitions/ControlAccountResetResponse/properties/completed_at"
827
+ },
828
+ "clears": {
829
+ "type": "array",
830
+ "items": {
831
+ "type": "string"
832
+ }
833
+ }
834
+ },
835
+ "required": [
836
+ "id",
837
+ "label",
838
+ "description",
839
+ "available_count",
840
+ "total_count",
841
+ "usable_now",
842
+ "starts_at",
843
+ "expires_at",
844
+ "clears"
845
+ ],
846
+ "additionalProperties": false
847
+ }
848
+ },
849
+ {
850
+ "type": "null"
851
+ }
852
+ ]
853
+ }
854
+ },
855
+ "required": [
856
+ "id",
857
+ "kind",
858
+ "label",
859
+ "description",
860
+ "available_count",
861
+ "eligible",
862
+ "usable_now",
863
+ "reason",
864
+ "resets_at",
865
+ "weekly_limit_applies",
866
+ "grants"
867
+ ],
868
+ "additionalProperties": false
869
+ }
870
+ },
871
+ {
872
+ "type": "null"
873
+ }
874
+ ]
875
+ },
876
+ "source": {
877
+ "type": [
878
+ "string",
879
+ "null"
880
+ ]
881
+ },
882
+ "observed_at": {
883
+ "$ref": "#/definitions/ControlAccountResetResponse/properties/completed_at"
884
+ },
885
+ "freshness": {
886
+ "type": "string",
887
+ "enum": [
888
+ "fresh",
889
+ "stale",
890
+ "unknown"
891
+ ]
892
+ },
893
+ "last_attempt_at": {
894
+ "$ref": "#/definitions/ControlAccountResetResponse/properties/completed_at"
895
+ },
896
+ "last_error": {
897
+ "type": [
898
+ "string",
899
+ "null"
900
+ ]
901
+ }
902
+ },
903
+ "required": [
904
+ "value",
905
+ "source",
906
+ "observed_at",
907
+ "freshness",
908
+ "last_attempt_at",
909
+ "last_error"
910
+ ],
911
+ "additionalProperties": false
912
+ },
913
+ "diagnostics": {
914
+ "type": "object",
915
+ "properties": {
916
+ "value": {
917
+ "anyOf": [
918
+ {
919
+ "type": "array",
920
+ "items": {
921
+ "type": "object",
922
+ "properties": {
923
+ "code": {
924
+ "type": "string"
925
+ },
926
+ "detail": {
927
+ "type": [
928
+ "string",
929
+ "null"
930
+ ]
931
+ }
932
+ },
933
+ "required": [
934
+ "code",
935
+ "detail"
936
+ ],
937
+ "additionalProperties": false
938
+ }
939
+ },
940
+ {
941
+ "type": "null"
942
+ }
943
+ ]
944
+ },
945
+ "source": {
946
+ "type": [
947
+ "string",
948
+ "null"
949
+ ]
950
+ },
951
+ "observed_at": {
952
+ "$ref": "#/definitions/ControlAccountResetResponse/properties/completed_at"
953
+ },
954
+ "freshness": {
955
+ "type": "string",
956
+ "enum": [
957
+ "fresh",
958
+ "stale",
959
+ "unknown"
960
+ ]
961
+ },
962
+ "last_attempt_at": {
963
+ "$ref": "#/definitions/ControlAccountResetResponse/properties/completed_at"
964
+ },
965
+ "last_error": {
966
+ "type": [
967
+ "string",
968
+ "null"
969
+ ]
970
+ }
971
+ },
972
+ "required": [
973
+ "value",
974
+ "source",
975
+ "observed_at",
976
+ "freshness",
977
+ "last_attempt_at",
978
+ "last_error"
979
+ ],
980
+ "additionalProperties": false
981
+ }
982
+ },
983
+ "required": [
984
+ "target",
985
+ "balances",
986
+ "spending",
987
+ "resets",
988
+ "diagnostics"
989
+ ],
990
+ "additionalProperties": false
991
+ }
992
+ }
993
+ },
994
+ "required": [
995
+ "snapshots",
996
+ "refreshed_at",
997
+ "resources"
998
+ ],
999
+ "additionalProperties": false,
1000
+ "description": "Current quota snapshots without a fabricated aggregate."
1001
+ },
1002
+ {
1003
+ "type": "null"
1004
+ }
1005
+ ],
1006
+ "description": "Current quota snapshots without a fabricated aggregate."
1007
+ }
1008
+ },
1009
+ "required": [
1010
+ "id",
1011
+ "request",
1012
+ "state",
1013
+ "created_at",
1014
+ "completed_at",
1015
+ "outcome",
1016
+ "detail",
1017
+ "readback",
1018
+ "resources"
1019
+ ],
1020
+ "additionalProperties": false
1021
+ }
1022
+ },
1023
+ "$schema": "http://json-schema.org/draft-07/schema#"
1024
+ }