@greatwait/contracts 0.1.0-alpha.4 → 0.1.0-alpha.5

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 (84) hide show
  1. package/README.md +1 -1
  2. package/dist/billing.d.ts +231 -1
  3. package/dist/billing.js +150 -1
  4. package/dist/callback-safety.js +13 -3
  5. package/dist/configuration-bounds.d.ts +13 -0
  6. package/dist/configuration-bounds.js +13 -0
  7. package/dist/effective-limits.d.ts +40 -0
  8. package/dist/effective-limits.js +42 -0
  9. package/dist/endpoints.d.ts +5 -5
  10. package/dist/endpoints.js +5 -5
  11. package/dist/first-value-journey.d.ts +1 -1
  12. package/dist/first-value-journey.js +11 -7
  13. package/dist/forecast.d.ts +111 -21
  14. package/dist/forecast.js +87 -24
  15. package/dist/index.d.ts +5 -4
  16. package/dist/index.js +5 -4
  17. package/dist/mcp.js +1 -1
  18. package/dist/operational-config.d.ts +101 -0
  19. package/dist/operational-config.js +341 -0
  20. package/dist/operations.d.ts +597 -16
  21. package/dist/operations.js +384 -23
  22. package/dist/partition.d.ts +17 -9
  23. package/dist/partition.js +3 -3
  24. package/dist/problems.d.ts +25 -2
  25. package/dist/problems.js +49 -1
  26. package/dist/protocol.d.ts +5 -5
  27. package/dist/protocol.js +2 -1
  28. package/dist/scheduling-records.d.ts +6 -0
  29. package/dist/scheduling.d.ts +37 -1
  30. package/dist/scheduling.js +60 -4
  31. package/dist/usage.js +6 -21
  32. package/generated/v1/examples/attempts.list.response.json +2 -0
  33. package/generated/v1/examples/attempts.read.response.json +2 -0
  34. package/generated/v1/examples/billing.fundingconfirm.response.json +120 -0
  35. package/generated/v1/examples/billing.invoicehistory.response.json +6 -0
  36. package/generated/v1/examples/billing.invoices.response.json +15 -0
  37. package/generated/v1/examples/billing.paymenthistory.response.json +6 -0
  38. package/generated/v1/examples/billing.paymentmethod.response.json +16 -0
  39. package/generated/v1/examples/billing.paymentmethodconfirm.request.json +3 -0
  40. package/generated/v1/examples/billing.paymentmethodconfirm.response.json +16 -0
  41. package/generated/v1/examples/billing.paymentmethodremove.request.json +3 -0
  42. package/generated/v1/examples/billing.paymentmethodremove.response.json +4 -0
  43. package/generated/v1/examples/billing.paymentmethodsetup.request.json +1 -0
  44. package/generated/v1/examples/billing.paymentmethodsetup.response.json +3 -0
  45. package/generated/v1/examples/limits.read.response.json +16 -0
  46. package/generated/v1/examples/occurrences.redeliver.response.json +2 -0
  47. package/generated/v1/first-value-journey.json +24 -8
  48. package/generated/v1/manifest.json +342 -10
  49. package/generated/v1/openapi.json +12395 -6543
  50. package/generated/v1/policy-matrix.json +65 -2
  51. package/generated/v1/schemas/attempts.list.response.json +15 -0
  52. package/generated/v1/schemas/attempts.read.response.json +15 -0
  53. package/generated/v1/schemas/billing.fundingconfirm.response.json +552 -0
  54. package/generated/v1/schemas/billing.invoicehistory.query.json +16 -0
  55. package/generated/v1/schemas/billing.invoicehistory.response.json +88 -0
  56. package/generated/v1/schemas/billing.invoices.response.json +51 -0
  57. package/generated/v1/schemas/billing.ledger.response.json +5 -0
  58. package/generated/v1/schemas/billing.notificationsettingsupdate.request.json +24 -17
  59. package/generated/v1/schemas/billing.paymenthistory.query.json +16 -0
  60. package/generated/v1/schemas/billing.paymenthistory.response.json +182 -0
  61. package/generated/v1/schemas/billing.paymentmethod.response.json +137 -0
  62. package/generated/v1/schemas/billing.paymentmethodconfirm.request.json +14 -0
  63. package/generated/v1/schemas/billing.paymentmethodconfirm.response.json +137 -0
  64. package/generated/v1/schemas/billing.paymentmethodremove.request.json +12 -0
  65. package/generated/v1/schemas/billing.paymentmethodremove.response.json +137 -0
  66. package/generated/v1/schemas/billing.paymentmethodsetup.request.json +12 -0
  67. package/generated/v1/schemas/billing.paymentmethodsetup.response.json +11 -0
  68. package/generated/v1/schemas/billing.purchase.request.json +4 -0
  69. package/generated/v1/schemas/forecast.read.request-headers.json +10 -0
  70. package/generated/v1/schemas/forecast.read.response.json +148 -0
  71. package/generated/v1/schemas/limits.read.response.json +79 -0
  72. package/generated/v1/schemas/occurrences.redeliver.response.json +15 -0
  73. package/generated/v1/snippets/billing.fundingconfirm.json +6 -0
  74. package/generated/v1/snippets/billing.invoicehistory.json +6 -0
  75. package/generated/v1/snippets/billing.invoices.json +6 -0
  76. package/generated/v1/snippets/billing.notificationsettingsupdate.json +1 -1
  77. package/generated/v1/snippets/billing.paymenthistory.json +6 -0
  78. package/generated/v1/snippets/billing.paymentmethod.json +6 -0
  79. package/generated/v1/snippets/billing.paymentmethodconfirm.json +6 -0
  80. package/generated/v1/snippets/billing.paymentmethodremove.json +6 -0
  81. package/generated/v1/snippets/billing.paymentmethodsetup.json +6 -0
  82. package/generated/v1/snippets/forecast.windows.json +1 -1
  83. package/generated/v1/snippets/limits.read.json +6 -0
  84. package/package.json +7 -2
@@ -11,7 +11,8 @@
11
11
  "docs/quickstarts/mcp-reference.md",
12
12
  "docs/quickstarts/mcp.md",
13
13
  "packages/api-client/src/operations.generated.ts",
14
- "packages/mcp-tools/src/schemas.generated.ts"
14
+ "packages/mcp-tools/src/schemas.generated.ts",
15
+ "packages/postgres-scheduling/migrations/0047_layered_configuration.sql"
15
16
  ],
16
17
  "files": [
17
18
  "callback-delivery-signature.json",
@@ -29,13 +30,24 @@
29
30
  "examples/billing.change.request.json",
30
31
  "examples/billing.change.response.json",
31
32
  "examples/billing.funding.response.json",
33
+ "examples/billing.fundingconfirm.response.json",
32
34
  "examples/billing.fundingquote.request.json",
33
35
  "examples/billing.fundingquote.response.json",
36
+ "examples/billing.invoicehistory.response.json",
37
+ "examples/billing.invoices.response.json",
34
38
  "examples/billing.ledger.response.json",
35
39
  "examples/billing.notices.response.json",
36
40
  "examples/billing.notificationsettings.response.json",
37
41
  "examples/billing.notificationsettingsupdate.request.json",
38
42
  "examples/billing.notificationsettingsupdate.response.json",
43
+ "examples/billing.paymenthistory.response.json",
44
+ "examples/billing.paymentmethod.response.json",
45
+ "examples/billing.paymentmethodconfirm.request.json",
46
+ "examples/billing.paymentmethodconfirm.response.json",
47
+ "examples/billing.paymentmethodremove.request.json",
48
+ "examples/billing.paymentmethodremove.response.json",
49
+ "examples/billing.paymentmethodsetup.request.json",
50
+ "examples/billing.paymentmethodsetup.response.json",
39
51
  "examples/billing.portal.response.json",
40
52
  "examples/billing.projects.response.json",
41
53
  "examples/billing.purchase.request.json",
@@ -78,6 +90,7 @@
78
90
  "examples/forecast.windows.response.json",
79
91
  "examples/grants.list.response.json",
80
92
  "examples/grants.revoke.response.json",
93
+ "examples/limits.read.response.json",
81
94
  "examples/meta.scaffold.response.json",
82
95
  "examples/meta.version.response.json",
83
96
  "examples/mock/mock.getFixture.response.json",
@@ -147,8 +160,12 @@
147
160
  "schemas/billing.change.request.json",
148
161
  "schemas/billing.change.response.json",
149
162
  "schemas/billing.funding.response.json",
163
+ "schemas/billing.fundingconfirm.response.json",
150
164
  "schemas/billing.fundingquote.request.json",
151
165
  "schemas/billing.fundingquote.response.json",
166
+ "schemas/billing.invoicehistory.query.json",
167
+ "schemas/billing.invoicehistory.response.json",
168
+ "schemas/billing.invoices.response.json",
152
169
  "schemas/billing.ledger.query.json",
153
170
  "schemas/billing.ledger.response.json",
154
171
  "schemas/billing.notices.query.json",
@@ -158,6 +175,15 @@
158
175
  "schemas/billing.notificationsettingsupdate.request.json",
159
176
  "schemas/billing.notificationsettingsupdate.response-headers.json",
160
177
  "schemas/billing.notificationsettingsupdate.response.json",
178
+ "schemas/billing.paymenthistory.query.json",
179
+ "schemas/billing.paymenthistory.response.json",
180
+ "schemas/billing.paymentmethod.response.json",
181
+ "schemas/billing.paymentmethodconfirm.request.json",
182
+ "schemas/billing.paymentmethodconfirm.response.json",
183
+ "schemas/billing.paymentmethodremove.request.json",
184
+ "schemas/billing.paymentmethodremove.response.json",
185
+ "schemas/billing.paymentmethodsetup.request.json",
186
+ "schemas/billing.paymentmethodsetup.response.json",
161
187
  "schemas/billing.portal.response.json",
162
188
  "schemas/billing.projects.response.json",
163
189
  "schemas/billing.purchase.request-headers.json",
@@ -216,11 +242,13 @@
216
242
  "schemas/exports.part.response.json",
217
243
  "schemas/exports.read.response.json",
218
244
  "schemas/forecast.read.query.json",
245
+ "schemas/forecast.read.request-headers.json",
219
246
  "schemas/forecast.read.response.json",
220
247
  "schemas/forecast.windows.query.json",
221
248
  "schemas/forecast.windows.response.json",
222
249
  "schemas/grants.list.response.json",
223
250
  "schemas/grants.revoke.response.json",
251
+ "schemas/limits.read.response.json",
224
252
  "schemas/meta.scaffold.response.json",
225
253
  "schemas/meta.version.response.json",
226
254
  "schemas/mock/mock.getFixture.response.json",
@@ -297,11 +325,19 @@
297
325
  "snippets/billing.ceiling.json",
298
326
  "snippets/billing.change.json",
299
327
  "snippets/billing.funding.json",
328
+ "snippets/billing.fundingconfirm.json",
300
329
  "snippets/billing.fundingquote.json",
330
+ "snippets/billing.invoicehistory.json",
331
+ "snippets/billing.invoices.json",
301
332
  "snippets/billing.ledger.json",
302
333
  "snippets/billing.notices.json",
303
334
  "snippets/billing.notificationsettings.json",
304
335
  "snippets/billing.notificationsettingsupdate.json",
336
+ "snippets/billing.paymenthistory.json",
337
+ "snippets/billing.paymentmethod.json",
338
+ "snippets/billing.paymentmethodconfirm.json",
339
+ "snippets/billing.paymentmethodremove.json",
340
+ "snippets/billing.paymentmethodsetup.json",
305
341
  "snippets/billing.portal.json",
306
342
  "snippets/billing.projects.json",
307
343
  "snippets/billing.purchase.json",
@@ -343,6 +379,7 @@
343
379
  "snippets/journey/read-attempt.json",
344
380
  "snippets/journey/read-schedule.json",
345
381
  "snippets/journey/replay-one-shot.json",
382
+ "snippets/limits.read.json",
346
383
  "snippets/meta.scaffold.json",
347
384
  "snippets/meta.version.json",
348
385
  "snippets/mock/mock.getFixture.json",
@@ -378,6 +415,48 @@
378
415
  "snippets/usage.read.json"
379
416
  ],
380
417
  "operations": [
418
+ {
419
+ "id": "billing.paymenthistory",
420
+ "method": "GET",
421
+ "mutates": false,
422
+ "path": "/v1/billing/payment-history",
423
+ "principals": ["api-credential", "oauth", "session"],
424
+ "problems": [
425
+ "authentication_required",
426
+ "capability_not_configured",
427
+ "credential_expired",
428
+ "credential_revoked",
429
+ "invalid_request",
430
+ "project_archived",
431
+ "rate_limited",
432
+ "scope_missing",
433
+ "service_unavailable"
434
+ ],
435
+ "scopes": ["usage:read"],
436
+ "sessionAuthority": "headers",
437
+ "surfaces": ["api", "mock"]
438
+ },
439
+ {
440
+ "id": "billing.invoicehistory",
441
+ "method": "GET",
442
+ "mutates": false,
443
+ "path": "/v1/billing/invoice-history",
444
+ "principals": ["api-credential", "oauth", "session"],
445
+ "problems": [
446
+ "authentication_required",
447
+ "capability_not_configured",
448
+ "credential_expired",
449
+ "credential_revoked",
450
+ "invalid_request",
451
+ "project_archived",
452
+ "rate_limited",
453
+ "scope_missing",
454
+ "service_unavailable"
455
+ ],
456
+ "scopes": ["usage:read"],
457
+ "sessionAuthority": "headers",
458
+ "surfaces": ["api", "mock"]
459
+ },
381
460
  {
382
461
  "id": "exports.create",
383
462
  "method": "POST",
@@ -386,6 +465,7 @@
386
465
  "principals": ["api-credential", "oauth", "session"],
387
466
  "problems": [
388
467
  "authentication_required",
468
+ "capability_not_configured",
389
469
  "credential_expired",
390
470
  "credential_revoked",
391
471
  "invalid_request",
@@ -408,6 +488,7 @@
408
488
  "principals": ["api-credential", "oauth", "session"],
409
489
  "problems": [
410
490
  "authentication_required",
491
+ "capability_not_configured",
411
492
  "credential_expired",
412
493
  "credential_revoked",
413
494
  "not_found",
@@ -429,6 +510,7 @@
429
510
  "principals": ["api-credential", "oauth", "session"],
430
511
  "problems": [
431
512
  "authentication_required",
513
+ "capability_not_configured",
432
514
  "credential_expired",
433
515
  "credential_revoked",
434
516
  "invalid_request",
@@ -451,6 +533,7 @@
451
533
  "principals": ["api-credential", "oauth", "session"],
452
534
  "problems": [
453
535
  "authentication_required",
536
+ "capability_not_configured",
454
537
  "credential_expired",
455
538
  "credential_revoked",
456
539
  "not_found",
@@ -472,6 +555,7 @@
472
555
  "principals": ["session"],
473
556
  "problems": [
474
557
  "authentication_required",
558
+ "capability_not_configured",
475
559
  "credential_expired",
476
560
  "credential_revoked",
477
561
  "not_found",
@@ -491,6 +575,7 @@
491
575
  "principals": ["session"],
492
576
  "problems": [
493
577
  "authentication_required",
578
+ "capability_not_configured",
494
579
  "credential_expired",
495
580
  "credential_revoked",
496
581
  "invalid_request",
@@ -513,6 +598,7 @@
513
598
  "principals": ["session"],
514
599
  "problems": [
515
600
  "authentication_required",
601
+ "capability_not_configured",
516
602
  "credential_expired",
517
603
  "credential_revoked",
518
604
  "invalid_request",
@@ -533,7 +619,11 @@
533
619
  "mutates": false,
534
620
  "path": "/__greatwait/version",
535
621
  "principals": [],
536
- "problems": ["rate_limited", "service_unavailable"],
622
+ "problems": [
623
+ "capability_not_configured",
624
+ "rate_limited",
625
+ "service_unavailable"
626
+ ],
537
627
  "scopes": [],
538
628
  "surfaces": ["api", "mock"]
539
629
  },
@@ -543,7 +633,11 @@
543
633
  "mutates": false,
544
634
  "path": "/_scaffold",
545
635
  "principals": [],
546
- "problems": ["rate_limited", "service_unavailable"],
636
+ "problems": [
637
+ "capability_not_configured",
638
+ "rate_limited",
639
+ "service_unavailable"
640
+ ],
547
641
  "scopes": [],
548
642
  "surfaces": ["api", "mock"]
549
643
  },
@@ -553,7 +647,11 @@
553
647
  "mutates": false,
554
648
  "path": "/_contract/fixtures",
555
649
  "principals": [],
556
- "problems": ["rate_limited", "service_unavailable"],
650
+ "problems": [
651
+ "capability_not_configured",
652
+ "rate_limited",
653
+ "service_unavailable"
654
+ ],
557
655
  "scopes": [],
558
656
  "surfaces": ["mock"]
559
657
  },
@@ -563,7 +661,12 @@
563
661
  "mutates": false,
564
662
  "path": "/_contract/fixtures/{fixtureId}",
565
663
  "principals": [],
566
- "problems": ["not_found", "rate_limited", "service_unavailable"],
664
+ "problems": [
665
+ "capability_not_configured",
666
+ "not_found",
667
+ "rate_limited",
668
+ "service_unavailable"
669
+ ],
567
670
  "scopes": [],
568
671
  "surfaces": ["mock"]
569
672
  },
@@ -575,6 +678,7 @@
575
678
  "principals": ["api-credential", "oauth", "session"],
576
679
  "problems": [
577
680
  "authentication_required",
681
+ "capability_not_configured",
578
682
  "credential_expired",
579
683
  "credential_revoked",
580
684
  "invalid_request",
@@ -597,6 +701,7 @@
597
701
  "principals": ["api-credential", "oauth", "session"],
598
702
  "problems": [
599
703
  "authentication_required",
704
+ "capability_not_configured",
600
705
  "credential_expired",
601
706
  "credential_revoked",
602
707
  "invalid_request",
@@ -617,6 +722,7 @@
617
722
  "principals": ["api-credential", "oauth", "session"],
618
723
  "problems": [
619
724
  "authentication_required",
725
+ "capability_not_configured",
620
726
  "credential_expired",
621
727
  "credential_revoked",
622
728
  "invalid_request",
@@ -638,6 +744,7 @@
638
744
  "principals": ["api-credential", "oauth", "session"],
639
745
  "problems": [
640
746
  "authentication_required",
747
+ "capability_not_configured",
641
748
  "credential_expired",
642
749
  "credential_revoked",
643
750
  "invalid_request",
@@ -661,6 +768,7 @@
661
768
  "principals": ["api-credential", "oauth", "session"],
662
769
  "problems": [
663
770
  "authentication_required",
771
+ "capability_not_configured",
664
772
  "credential_expired",
665
773
  "credential_revoked",
666
774
  "invalid_request",
@@ -684,6 +792,7 @@
684
792
  "principals": ["api-credential", "oauth", "session"],
685
793
  "problems": [
686
794
  "authentication_required",
795
+ "capability_not_configured",
687
796
  "credential_expired",
688
797
  "credential_revoked",
689
798
  "invalid_request",
@@ -707,6 +816,7 @@
707
816
  "principals": ["session"],
708
817
  "problems": [
709
818
  "authentication_required",
819
+ "capability_not_configured",
710
820
  "credential_expired",
711
821
  "credential_revoked",
712
822
  "invalid_request",
@@ -729,6 +839,7 @@
729
839
  "principals": ["api-credential", "oauth", "session"],
730
840
  "problems": [
731
841
  "authentication_required",
842
+ "capability_not_configured",
732
843
  "credential_expired",
733
844
  "credential_revoked",
734
845
  "invalid_request",
@@ -750,6 +861,7 @@
750
861
  "principals": ["api-credential", "oauth", "session"],
751
862
  "problems": [
752
863
  "authentication_required",
864
+ "capability_not_configured",
753
865
  "credential_expired",
754
866
  "credential_revoked",
755
867
  "invalid_request",
@@ -772,6 +884,7 @@
772
884
  "principals": ["api-credential", "oauth", "session"],
773
885
  "problems": [
774
886
  "authentication_required",
887
+ "capability_not_configured",
775
888
  "credential_expired",
776
889
  "credential_revoked",
777
890
  "invalid_request",
@@ -795,6 +908,7 @@
795
908
  "principals": ["api-credential", "oauth", "session"],
796
909
  "problems": [
797
910
  "authentication_required",
911
+ "capability_not_configured",
798
912
  "credential_expired",
799
913
  "credential_revoked",
800
914
  "invalid_request",
@@ -816,6 +930,7 @@
816
930
  "principals": ["api-credential", "oauth", "session"],
817
931
  "problems": [
818
932
  "authentication_required",
933
+ "capability_not_configured",
819
934
  "credential_expired",
820
935
  "credential_revoked",
821
936
  "invalid_request",
@@ -838,6 +953,7 @@
838
953
  "principals": ["api-credential", "oauth", "session"],
839
954
  "problems": [
840
955
  "authentication_required",
956
+ "capability_not_configured",
841
957
  "credential_expired",
842
958
  "credential_revoked",
843
959
  "invalid_request",
@@ -860,6 +976,7 @@
860
976
  "principals": ["api-credential", "oauth", "session"],
861
977
  "problems": [
862
978
  "authentication_required",
979
+ "capability_not_configured",
863
980
  "credential_expired",
864
981
  "credential_revoked",
865
982
  "invalid_request",
@@ -882,6 +999,7 @@
882
999
  "principals": ["api-credential", "oauth", "session"],
883
1000
  "problems": [
884
1001
  "authentication_required",
1002
+ "capability_not_configured",
885
1003
  "credential_expired",
886
1004
  "credential_revoked",
887
1005
  "invalid_request",
@@ -904,6 +1022,7 @@
904
1022
  "principals": ["api-credential", "oauth", "session"],
905
1023
  "problems": [
906
1024
  "authentication_required",
1025
+ "capability_not_configured",
907
1026
  "credential_expired",
908
1027
  "credential_revoked",
909
1028
  "invalid_request",
@@ -924,7 +1043,12 @@
924
1043
  "mutates": true,
925
1044
  "path": "/_contract/scenarios",
926
1045
  "principals": [],
927
- "problems": ["invalid_request", "rate_limited", "service_unavailable"],
1046
+ "problems": [
1047
+ "capability_not_configured",
1048
+ "invalid_request",
1049
+ "rate_limited",
1050
+ "service_unavailable"
1051
+ ],
928
1052
  "scopes": [],
929
1053
  "surfaces": ["mock"]
930
1054
  },
@@ -936,6 +1060,7 @@
936
1060
  "principals": ["api-credential", "oauth"],
937
1061
  "problems": [
938
1062
  "authentication_required",
1063
+ "capability_not_configured",
939
1064
  "credential_expired",
940
1065
  "credential_revoked",
941
1066
  "project_archived",
@@ -953,6 +1078,7 @@
953
1078
  "principals": ["session"],
954
1079
  "problems": [
955
1080
  "authentication_required",
1081
+ "capability_not_configured",
956
1082
  "credential_expired",
957
1083
  "credential_revoked",
958
1084
  "invalid_request",
@@ -974,6 +1100,7 @@
974
1100
  "principals": ["api-credential", "oauth", "session"],
975
1101
  "problems": [
976
1102
  "authentication_required",
1103
+ "capability_not_configured",
977
1104
  "credential_expired",
978
1105
  "credential_revoked",
979
1106
  "invalid_request",
@@ -994,6 +1121,7 @@
994
1121
  "principals": ["session"],
995
1122
  "problems": [
996
1123
  "authentication_required",
1124
+ "capability_not_configured",
997
1125
  "credential_expired",
998
1126
  "credential_revoked",
999
1127
  "not_found",
@@ -1014,6 +1142,7 @@
1014
1142
  "principals": ["session"],
1015
1143
  "problems": [
1016
1144
  "authentication_required",
1145
+ "capability_not_configured",
1017
1146
  "credential_expired",
1018
1147
  "credential_revoked",
1019
1148
  "rate_limited",
@@ -1032,6 +1161,7 @@
1032
1161
  "principals": ["session"],
1033
1162
  "problems": [
1034
1163
  "authentication_required",
1164
+ "capability_not_configured",
1035
1165
  "credential_expired",
1036
1166
  "credential_revoked",
1037
1167
  "invalid_request",
@@ -1053,6 +1183,7 @@
1053
1183
  "principals": ["api-credential", "oauth", "session"],
1054
1184
  "problems": [
1055
1185
  "authentication_required",
1186
+ "capability_not_configured",
1056
1187
  "credential_expired",
1057
1188
  "credential_revoked",
1058
1189
  "invalid_request",
@@ -1075,6 +1206,7 @@
1075
1206
  "principals": ["api-credential", "oauth", "session"],
1076
1207
  "problems": [
1077
1208
  "authentication_required",
1209
+ "capability_not_configured",
1078
1210
  "credential_expired",
1079
1211
  "credential_revoked",
1080
1212
  "invalid_request",
@@ -1097,6 +1229,7 @@
1097
1229
  "principals": ["api-credential", "oauth", "session"],
1098
1230
  "problems": [
1099
1231
  "authentication_required",
1232
+ "capability_not_configured",
1100
1233
  "credential_expired",
1101
1234
  "credential_revoked",
1102
1235
  "not_found",
@@ -1118,6 +1251,7 @@
1118
1251
  "principals": ["session"],
1119
1252
  "problems": [
1120
1253
  "authentication_required",
1254
+ "capability_not_configured",
1121
1255
  "credential_expired",
1122
1256
  "credential_revoked",
1123
1257
  "rate_limited",
@@ -1136,6 +1270,7 @@
1136
1270
  "principals": ["session"],
1137
1271
  "problems": [
1138
1272
  "authentication_required",
1273
+ "capability_not_configured",
1139
1274
  "credential_expired",
1140
1275
  "credential_revoked",
1141
1276
  "not_found",
@@ -1155,6 +1290,7 @@
1155
1290
  "principals": ["api-credential", "oauth", "session"],
1156
1291
  "problems": [
1157
1292
  "authentication_required",
1293
+ "capability_not_configured",
1158
1294
  "credential_expired",
1159
1295
  "credential_revoked",
1160
1296
  "invalid_request",
@@ -1176,6 +1312,7 @@
1176
1312
  "principals": ["api-credential", "oauth", "session"],
1177
1313
  "problems": [
1178
1314
  "authentication_required",
1315
+ "capability_not_configured",
1179
1316
  "credential_expired",
1180
1317
  "credential_revoked",
1181
1318
  "invalid_request",
@@ -1197,6 +1334,7 @@
1197
1334
  "principals": ["api-credential", "oauth", "session"],
1198
1335
  "problems": [
1199
1336
  "authentication_required",
1337
+ "capability_not_configured",
1200
1338
  "credential_expired",
1201
1339
  "credential_revoked",
1202
1340
  "idempotency_key_reused",
@@ -1221,6 +1359,7 @@
1221
1359
  "principals": ["api-credential", "oauth", "session"],
1222
1360
  "problems": [
1223
1361
  "authentication_required",
1362
+ "capability_not_configured",
1224
1363
  "credential_expired",
1225
1364
  "credential_revoked",
1226
1365
  "invalid_request",
@@ -1242,6 +1381,7 @@
1242
1381
  "principals": ["api-credential", "oauth", "session"],
1243
1382
  "problems": [
1244
1383
  "authentication_required",
1384
+ "capability_not_configured",
1245
1385
  "credential_expired",
1246
1386
  "credential_revoked",
1247
1387
  "invalid_request",
@@ -1262,6 +1402,7 @@
1262
1402
  "principals": ["api-credential", "oauth", "session"],
1263
1403
  "problems": [
1264
1404
  "authentication_required",
1405
+ "capability_not_configured",
1265
1406
  "credential_expired",
1266
1407
  "credential_revoked",
1267
1408
  "invalid_request",
@@ -1282,6 +1423,8 @@
1282
1423
  "principals": ["api-credential", "oauth", "session"],
1283
1424
  "problems": [
1284
1425
  "authentication_required",
1426
+ "billing_not_ready",
1427
+ "capability_not_configured",
1285
1428
  "credential_expired",
1286
1429
  "credential_revoked",
1287
1430
  "project_archived",
@@ -1301,6 +1444,7 @@
1301
1444
  "principals": ["api-credential", "oauth", "session"],
1302
1445
  "problems": [
1303
1446
  "authentication_required",
1447
+ "capability_not_configured",
1304
1448
  "credential_expired",
1305
1449
  "credential_revoked",
1306
1450
  "invalid_request",
@@ -1321,6 +1465,7 @@
1321
1465
  "principals": ["api-credential", "oauth", "session"],
1322
1466
  "problems": [
1323
1467
  "authentication_required",
1468
+ "capability_not_configured",
1324
1469
  "credential_expired",
1325
1470
  "credential_revoked",
1326
1471
  "project_archived",
@@ -1340,6 +1485,7 @@
1340
1485
  "principals": ["api-credential", "oauth", "session"],
1341
1486
  "problems": [
1342
1487
  "authentication_required",
1488
+ "capability_not_configured",
1343
1489
  "credential_expired",
1344
1490
  "credential_revoked",
1345
1491
  "idempotency_key_reused",
@@ -1363,6 +1509,7 @@
1363
1509
  "principals": ["api-credential", "oauth", "session"],
1364
1510
  "problems": [
1365
1511
  "authentication_required",
1512
+ "capability_not_configured",
1366
1513
  "credential_expired",
1367
1514
  "credential_revoked",
1368
1515
  "project_archived",
@@ -1382,6 +1529,7 @@
1382
1529
  "principals": ["api-credential", "oauth", "session"],
1383
1530
  "problems": [
1384
1531
  "authentication_required",
1532
+ "capability_not_configured",
1385
1533
  "credential_expired",
1386
1534
  "credential_revoked",
1387
1535
  "invalid_request",
@@ -1405,6 +1553,7 @@
1405
1553
  "principals": ["api-credential", "oauth", "session"],
1406
1554
  "problems": [
1407
1555
  "authentication_required",
1556
+ "capability_not_configured",
1408
1557
  "credential_expired",
1409
1558
  "credential_revoked",
1410
1559
  "idempotency_key_reused",
@@ -1422,6 +1571,29 @@
1422
1571
  "sessionAuthority": "headers",
1423
1572
  "surfaces": ["api", "mock"]
1424
1573
  },
1574
+ {
1575
+ "id": "billing.fundingconfirm",
1576
+ "method": "POST",
1577
+ "mutates": true,
1578
+ "path": "/v1/billing/funding/{paymentOperation}/confirm",
1579
+ "principals": ["api-credential", "oauth", "session"],
1580
+ "problems": [
1581
+ "authentication_required",
1582
+ "capability_not_configured",
1583
+ "credential_expired",
1584
+ "credential_revoked",
1585
+ "not_found",
1586
+ "project_archived",
1587
+ "rate_limited",
1588
+ "scope_missing",
1589
+ "service_unavailable",
1590
+ "state_conflict",
1591
+ "test_to_live_escalation"
1592
+ ],
1593
+ "scopes": ["billing:write"],
1594
+ "sessionAuthority": "headers",
1595
+ "surfaces": ["api", "mock"]
1596
+ },
1425
1597
  {
1426
1598
  "id": "billing.ceiling",
1427
1599
  "method": "PATCH",
@@ -1430,6 +1602,7 @@
1430
1602
  "principals": ["api-credential", "oauth", "session"],
1431
1603
  "problems": [
1432
1604
  "authentication_required",
1605
+ "capability_not_configured",
1433
1606
  "credential_expired",
1434
1607
  "credential_revoked",
1435
1608
  "idempotency_key_reused",
@@ -1454,6 +1627,7 @@
1454
1627
  "principals": ["api-credential", "oauth", "session"],
1455
1628
  "problems": [
1456
1629
  "authentication_required",
1630
+ "capability_not_configured",
1457
1631
  "credential_expired",
1458
1632
  "credential_revoked",
1459
1633
  "invalid_request",
@@ -1477,6 +1651,7 @@
1477
1651
  "principals": ["api-credential", "oauth", "session"],
1478
1652
  "problems": [
1479
1653
  "authentication_required",
1654
+ "capability_not_configured",
1480
1655
  "credential_expired",
1481
1656
  "credential_revoked",
1482
1657
  "idempotency_key_reused",
@@ -1498,9 +1673,10 @@
1498
1673
  "method": "POST",
1499
1674
  "mutates": true,
1500
1675
  "path": "/v1/billing/funding/refunds",
1501
- "principals": ["api-credential", "oauth", "session"],
1676
+ "principals": ["api-credential", "oauth"],
1502
1677
  "problems": [
1503
1678
  "authentication_required",
1679
+ "capability_not_configured",
1504
1680
  "credential_expired",
1505
1681
  "credential_revoked",
1506
1682
  "idempotency_key_reused",
@@ -1514,7 +1690,6 @@
1514
1690
  "test_to_live_escalation"
1515
1691
  ],
1516
1692
  "scopes": ["billing:write"],
1517
- "sessionAuthority": "headers",
1518
1693
  "surfaces": ["api", "mock"]
1519
1694
  },
1520
1695
  {
@@ -1522,9 +1697,10 @@
1522
1697
  "method": "PATCH",
1523
1698
  "mutates": true,
1524
1699
  "path": "/v1/billing/funding/refunds/{refundRequest}",
1525
- "principals": ["api-credential", "oauth", "session"],
1700
+ "principals": ["api-credential", "oauth"],
1526
1701
  "problems": [
1527
1702
  "authentication_required",
1703
+ "capability_not_configured",
1528
1704
  "credential_expired",
1529
1705
  "credential_revoked",
1530
1706
  "idempotency_key_reused",
@@ -1538,7 +1714,6 @@
1538
1714
  "test_to_live_escalation"
1539
1715
  ],
1540
1716
  "scopes": ["billing:write"],
1541
- "sessionAuthority": "headers",
1542
1717
  "surfaces": ["api", "mock"]
1543
1718
  },
1544
1719
  {
@@ -1549,6 +1724,7 @@
1549
1724
  "principals": ["api-credential", "oauth", "session"],
1550
1725
  "problems": [
1551
1726
  "authentication_required",
1727
+ "capability_not_configured",
1552
1728
  "credential_expired",
1553
1729
  "credential_revoked",
1554
1730
  "not_found",
@@ -1572,6 +1748,7 @@
1572
1748
  "principals": ["api-credential", "oauth", "session"],
1573
1749
  "problems": [
1574
1750
  "authentication_required",
1751
+ "capability_not_configured",
1575
1752
  "credential_expired",
1576
1753
  "credential_revoked",
1577
1754
  "not_found",
@@ -1595,6 +1772,7 @@
1595
1772
  "principals": ["api-credential", "oauth", "session"],
1596
1773
  "problems": [
1597
1774
  "authentication_required",
1775
+ "capability_not_configured",
1598
1776
  "credential_expired",
1599
1777
  "credential_revoked",
1600
1778
  "idempotency_key_reused",
@@ -1619,6 +1797,7 @@
1619
1797
  "principals": ["api-credential", "oauth", "session"],
1620
1798
  "problems": [
1621
1799
  "authentication_required",
1800
+ "capability_not_configured",
1622
1801
  "credential_expired",
1623
1802
  "credential_revoked",
1624
1803
  "not_found",
@@ -1634,6 +1813,121 @@
1634
1813
  "sessionAuthority": "headers",
1635
1814
  "surfaces": ["api", "mock"]
1636
1815
  },
1816
+ {
1817
+ "id": "billing.paymentmethod",
1818
+ "method": "GET",
1819
+ "mutates": false,
1820
+ "path": "/v1/billing/payment-method",
1821
+ "principals": ["api-credential", "oauth", "session"],
1822
+ "problems": [
1823
+ "authentication_required",
1824
+ "capability_not_configured",
1825
+ "credential_expired",
1826
+ "credential_revoked",
1827
+ "project_archived",
1828
+ "rate_limited",
1829
+ "scope_missing",
1830
+ "service_unavailable"
1831
+ ],
1832
+ "scopes": ["usage:read"],
1833
+ "sessionAuthority": "headers",
1834
+ "surfaces": ["api", "mock"]
1835
+ },
1836
+ {
1837
+ "id": "billing.invoices",
1838
+ "method": "GET",
1839
+ "mutates": false,
1840
+ "path": "/v1/billing/invoices",
1841
+ "principals": ["api-credential", "oauth", "session"],
1842
+ "problems": [
1843
+ "authentication_required",
1844
+ "capability_not_configured",
1845
+ "credential_expired",
1846
+ "credential_revoked",
1847
+ "project_archived",
1848
+ "rate_limited",
1849
+ "scope_missing",
1850
+ "service_unavailable"
1851
+ ],
1852
+ "scopes": ["usage:read"],
1853
+ "sessionAuthority": "headers",
1854
+ "surfaces": ["api", "mock"]
1855
+ },
1856
+ {
1857
+ "id": "billing.paymentmethodsetup",
1858
+ "method": "POST",
1859
+ "mutates": true,
1860
+ "path": "/v1/billing/payment-method/setup",
1861
+ "principals": ["api-credential", "oauth", "session"],
1862
+ "problems": [
1863
+ "authentication_required",
1864
+ "capability_not_configured",
1865
+ "credential_expired",
1866
+ "credential_revoked",
1867
+ "invalid_request",
1868
+ "not_found",
1869
+ "project_archived",
1870
+ "rate_limited",
1871
+ "revision_conflict",
1872
+ "scope_missing",
1873
+ "service_unavailable",
1874
+ "state_conflict",
1875
+ "test_to_live_escalation"
1876
+ ],
1877
+ "scopes": ["billing:write"],
1878
+ "sessionAuthority": "headers",
1879
+ "surfaces": ["api", "mock"]
1880
+ },
1881
+ {
1882
+ "id": "billing.paymentmethodconfirm",
1883
+ "method": "POST",
1884
+ "mutates": true,
1885
+ "path": "/v1/billing/payment-method/confirm",
1886
+ "principals": ["api-credential", "oauth", "session"],
1887
+ "problems": [
1888
+ "authentication_required",
1889
+ "capability_not_configured",
1890
+ "credential_expired",
1891
+ "credential_revoked",
1892
+ "invalid_request",
1893
+ "not_found",
1894
+ "project_archived",
1895
+ "rate_limited",
1896
+ "revision_conflict",
1897
+ "scope_missing",
1898
+ "service_unavailable",
1899
+ "state_conflict",
1900
+ "test_to_live_escalation"
1901
+ ],
1902
+ "scopes": ["billing:write"],
1903
+ "sessionAuthority": "headers",
1904
+ "surfaces": ["api", "mock"]
1905
+ },
1906
+ {
1907
+ "id": "billing.paymentmethodremove",
1908
+ "method": "POST",
1909
+ "mutates": true,
1910
+ "path": "/v1/billing/payment-method/remove",
1911
+ "principals": ["api-credential", "oauth", "session"],
1912
+ "problems": [
1913
+ "authentication_required",
1914
+ "capability_not_configured",
1915
+ "credential_expired",
1916
+ "credential_revoked",
1917
+ "invalid_request",
1918
+ "not_found",
1919
+ "project_archived",
1920
+ "rate_limited",
1921
+ "revision_conflict",
1922
+ "scope_missing",
1923
+ "service_unavailable",
1924
+ "state_conflict",
1925
+ "test_to_live_escalation"
1926
+ ],
1927
+ "scopes": ["billing:write"],
1928
+ "sessionAuthority": "headers",
1929
+ "surfaces": ["api", "mock"]
1930
+ },
1637
1931
  {
1638
1932
  "id": "billing.reconcile",
1639
1933
  "method": "POST",
@@ -1642,6 +1936,8 @@
1642
1936
  "principals": ["api-credential", "oauth", "session"],
1643
1937
  "problems": [
1644
1938
  "authentication_required",
1939
+ "billing_not_ready",
1940
+ "capability_not_configured",
1645
1941
  "credential_expired",
1646
1942
  "credential_revoked",
1647
1943
  "project_archived",
@@ -1662,6 +1958,7 @@
1662
1958
  "principals": ["api-credential", "oauth", "session"],
1663
1959
  "problems": [
1664
1960
  "authentication_required",
1961
+ "capability_not_configured",
1665
1962
  "credential_expired",
1666
1963
  "credential_revoked",
1667
1964
  "idempotency_key_reused",
@@ -1685,6 +1982,7 @@
1685
1982
  "principals": ["api-credential", "oauth", "session"],
1686
1983
  "problems": [
1687
1984
  "authentication_required",
1985
+ "capability_not_configured",
1688
1986
  "credential_expired",
1689
1987
  "credential_revoked",
1690
1988
  "invalid_request",
@@ -1697,6 +1995,26 @@
1697
1995
  "sessionAuthority": "headers",
1698
1996
  "surfaces": ["api", "mock"]
1699
1997
  },
1998
+ {
1999
+ "id": "limits.read",
2000
+ "method": "GET",
2001
+ "mutates": false,
2002
+ "path": "/v1/limits",
2003
+ "principals": ["api-credential", "oauth", "session"],
2004
+ "problems": [
2005
+ "authentication_required",
2006
+ "capability_not_configured",
2007
+ "credential_expired",
2008
+ "credential_revoked",
2009
+ "project_archived",
2010
+ "rate_limited",
2011
+ "scope_missing",
2012
+ "service_unavailable"
2013
+ ],
2014
+ "scopes": ["schedules:read"],
2015
+ "sessionAuthority": "headers",
2016
+ "surfaces": ["api", "mock"]
2017
+ },
1700
2018
  {
1701
2019
  "id": "usage.read",
1702
2020
  "method": "GET",
@@ -1705,6 +2023,7 @@
1705
2023
  "principals": ["api-credential", "oauth", "session"],
1706
2024
  "problems": [
1707
2025
  "authentication_required",
2026
+ "capability_not_configured",
1708
2027
  "credential_expired",
1709
2028
  "credential_revoked",
1710
2029
  "invalid_request",
@@ -1725,6 +2044,7 @@
1725
2044
  "principals": ["api-credential", "oauth", "session"],
1726
2045
  "problems": [
1727
2046
  "authentication_required",
2047
+ "capability_not_configured",
1728
2048
  "credential_expired",
1729
2049
  "credential_revoked",
1730
2050
  "project_archived",
@@ -1744,6 +2064,7 @@
1744
2064
  "principals": ["api-credential", "oauth", "session"],
1745
2065
  "problems": [
1746
2066
  "authentication_required",
2067
+ "capability_not_configured",
1747
2068
  "credential_expired",
1748
2069
  "credential_revoked",
1749
2070
  "invalid_request",
@@ -1764,6 +2085,7 @@
1764
2085
  "principals": ["api-credential", "oauth", "session"],
1765
2086
  "problems": [
1766
2087
  "authentication_required",
2088
+ "capability_not_configured",
1767
2089
  "credential_expired",
1768
2090
  "credential_revoked",
1769
2091
  "invalid_request",
@@ -1785,6 +2107,7 @@
1785
2107
  "principals": ["api-credential", "oauth", "session"],
1786
2108
  "problems": [
1787
2109
  "authentication_required",
2110
+ "capability_not_configured",
1788
2111
  "credential_expired",
1789
2112
  "credential_revoked",
1790
2113
  "invalid_request",
@@ -1805,6 +2128,7 @@
1805
2128
  "principals": ["api-credential", "oauth", "session"],
1806
2129
  "problems": [
1807
2130
  "authentication_required",
2131
+ "capability_not_configured",
1808
2132
  "credential_expired",
1809
2133
  "credential_revoked",
1810
2134
  "invalid_request",
@@ -1826,6 +2150,7 @@
1826
2150
  "principals": ["api-credential", "oauth", "session"],
1827
2151
  "problems": [
1828
2152
  "authentication_required",
2153
+ "capability_not_configured",
1829
2154
  "credential_expired",
1830
2155
  "credential_revoked",
1831
2156
  "invalid_request",
@@ -1847,6 +2172,7 @@
1847
2172
  "principals": ["api-credential", "oauth", "session"],
1848
2173
  "problems": [
1849
2174
  "authentication_required",
2175
+ "capability_not_configured",
1850
2176
  "credential_expired",
1851
2177
  "credential_revoked",
1852
2178
  "invalid_request",
@@ -1868,6 +2194,7 @@
1868
2194
  "principals": ["api-credential", "oauth", "session"],
1869
2195
  "problems": [
1870
2196
  "authentication_required",
2197
+ "capability_not_configured",
1871
2198
  "credential_expired",
1872
2199
  "credential_revoked",
1873
2200
  "idempotency_key_reused",
@@ -1891,6 +2218,7 @@
1891
2218
  "principals": ["api-credential", "oauth", "session"],
1892
2219
  "problems": [
1893
2220
  "authentication_required",
2221
+ "capability_not_configured",
1894
2222
  "credential_expired",
1895
2223
  "credential_revoked",
1896
2224
  "invalid_request",
@@ -1915,6 +2243,7 @@
1915
2243
  "principals": ["api-credential", "oauth", "session"],
1916
2244
  "problems": [
1917
2245
  "authentication_required",
2246
+ "capability_not_configured",
1918
2247
  "credential_expired",
1919
2248
  "credential_revoked",
1920
2249
  "invalid_request",
@@ -1938,6 +2267,7 @@
1938
2267
  "principals": ["api-credential", "oauth", "session"],
1939
2268
  "problems": [
1940
2269
  "authentication_required",
2270
+ "capability_not_configured",
1941
2271
  "credential_expired",
1942
2272
  "credential_revoked",
1943
2273
  "invalid_request",
@@ -1961,6 +2291,7 @@
1961
2291
  "principals": ["api-credential", "oauth", "session"],
1962
2292
  "problems": [
1963
2293
  "authentication_required",
2294
+ "capability_not_configured",
1964
2295
  "credential_expired",
1965
2296
  "credential_revoked",
1966
2297
  "invalid_request",
@@ -1984,6 +2315,7 @@
1984
2315
  "principals": ["api-credential", "oauth", "session"],
1985
2316
  "problems": [
1986
2317
  "authentication_required",
2318
+ "capability_not_configured",
1987
2319
  "credential_expired",
1988
2320
  "credential_revoked",
1989
2321
  "invalid_request",