@greatwait/contracts 0.3.1 → 0.3.3
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.
- package/dist/attempt-diagnostics.d.ts +1 -1
- package/dist/attempt-diagnostics.js +13 -1
- package/dist/attempt-search.d.ts +2 -0
- package/dist/billing.d.ts +46 -0
- package/dist/billing.js +29 -0
- package/dist/callback-safety.js +5 -1
- package/dist/configuration.d.ts +2 -2
- package/dist/configuration.js +6 -3
- package/dist/delivery.d.ts +12 -1
- package/dist/delivery.js +1 -0
- package/dist/effective-limits.d.ts +4 -4
- package/dist/endpoints.d.ts +29 -0
- package/dist/endpoints.js +32 -1
- package/dist/forecast.d.ts +2 -2
- package/dist/http-request.d.ts +12 -2
- package/dist/http-request.js +31 -1
- package/dist/index.d.ts +8 -7
- package/dist/index.js +8 -7
- package/dist/mcp.js +1 -0
- package/dist/operational-config.d.ts +174 -22
- package/dist/operational-config.js +207 -74
- package/dist/operations.d.ts +334 -52
- package/dist/operations.js +195 -34
- package/dist/project-notifications.d.ts +35 -9
- package/dist/project-notifications.js +43 -12
- package/dist/protocol.d.ts +28 -0
- package/dist/protocol.js +23 -0
- package/dist/scheduling-records.d.ts +106 -16
- package/dist/scheduling-records.js +36 -12
- package/dist/scheduling.d.ts +155 -43
- package/dist/scheduling.js +188 -50
- package/dist/service-mode.d.ts +88 -0
- package/dist/service-mode.js +130 -0
- package/dist/tenancy.d.ts +54 -30
- package/dist/tenancy.js +35 -17
- package/dist/timing.d.ts +39 -0
- package/dist/timing.js +51 -0
- package/dist/zod-values.d.ts +1 -1
- package/dist/zod-values.js +1 -1
- package/dist/zod.d.ts +1 -1
- package/dist/zod.js +1 -1
- package/generated/v1/examples/billing.noticesdismiss.request.json +3 -0
- package/generated/v1/examples/billing.noticesdismiss.response.json +6 -0
- package/generated/v1/examples/billing.reconcile.response.json +12 -0
- package/generated/v1/examples/billing.summary.response.json +12 -0
- package/generated/v1/examples/executions.list.response.json +1 -0
- package/generated/v1/examples/limits.read.response.json +1 -1
- package/generated/v1/examples/projectnotifications.rotateSigningKey.response.json +1 -0
- package/generated/v1/examples/projects.list.response.json +0 -6
- package/generated/v1/examples/projects.read.response.json +14 -0
- package/generated/v1/examples/schedules.list.response.json +1 -3
- package/generated/v1/examples/schedules.summary.response.json +174 -0
- package/generated/v1/examples/timing.summary.response.json +33 -1
- package/generated/v1/manifest.json +79 -2
- package/generated/v1/openapi.json +4084 -2023
- package/generated/v1/policy-matrix.json +22 -1
- package/generated/v1/schemas/attempts.list.response.json +10 -0
- package/generated/v1/schemas/attempts.read.response.json +10 -0
- package/generated/v1/schemas/attempts.search.response.json +4 -0
- package/generated/v1/schemas/billing.notices.query.json +4 -0
- package/generated/v1/schemas/billing.noticesdismiss.request.json +12 -0
- package/generated/v1/schemas/billing.noticesdismiss.response.json +22 -0
- package/generated/v1/schemas/billing.reconcile.response.json +43 -0
- package/generated/v1/schemas/billing.summary.response.json +43 -0
- package/generated/v1/schemas/endpoints.list.query.json +15 -0
- package/generated/v1/schemas/executions.list.response.json +4 -0
- package/generated/v1/schemas/occurrences.list.response.json +4 -0
- package/generated/v1/schemas/occurrences.read.response.json +4 -0
- package/generated/v1/schemas/occurrences.redeliver.response.json +10 -0
- package/generated/v1/schemas/projectnotifications.read.response.json +4 -0
- package/generated/v1/schemas/projectnotifications.rotateSigningKey.response.json +4 -0
- package/generated/v1/schemas/projectnotifications.update.request.json +41 -17
- package/generated/v1/schemas/projectnotifications.update.response.json +4 -0
- package/generated/v1/schemas/projects.list.response.json +0 -27
- package/generated/v1/schemas/projects.read.response-headers.json +11 -0
- package/generated/v1/schemas/projects.read.response.json +79 -0
- package/generated/v1/schemas/schedules.archive.response.json +8 -0
- package/generated/v1/schemas/schedules.cancel.response.json +8 -0
- package/generated/v1/schemas/schedules.create.request.json +1 -1
- package/generated/v1/schemas/schedules.create.response.json +8 -0
- package/generated/v1/schemas/schedules.list.query.json +6 -0
- package/generated/v1/schemas/schedules.list.response.json +4 -0
- package/generated/v1/schemas/schedules.pause.response.json +8 -0
- package/generated/v1/schemas/schedules.read.response.json +8 -0
- package/generated/v1/schemas/schedules.replace.request.json +1 -1
- package/generated/v1/schemas/schedules.replace.response.json +8 -0
- package/generated/v1/schemas/schedules.resume.response.json +8 -0
- package/generated/v1/schemas/schedules.summary.query.json +11 -0
- package/generated/v1/schemas/schedules.summary.response.json +144 -0
- package/generated/v1/schemas/timing.summary.response.json +69 -0
- package/generated/v1/snippets/billing.noticesdismiss.json +6 -0
- package/generated/v1/snippets/projectnotifications.rotateSigningKey.json +1 -1
- package/generated/v1/snippets/projects.read.json +6 -0
- package/generated/v1/snippets/schedules.summary.json +6 -0
- package/package.json +1 -1
|
@@ -104,6 +104,13 @@
|
|
|
104
104
|
"roles": ["admin", "billing", "member"],
|
|
105
105
|
"scopes": ["usage:read"]
|
|
106
106
|
},
|
|
107
|
+
{
|
|
108
|
+
"mutates": true,
|
|
109
|
+
"operation": "billing.noticesdismiss",
|
|
110
|
+
"principals": ["api-credential", "oauth", "session"],
|
|
111
|
+
"roles": ["admin", "billing", "member"],
|
|
112
|
+
"scopes": ["usage:read", "schedules:write"]
|
|
113
|
+
},
|
|
107
114
|
{
|
|
108
115
|
"mutates": false,
|
|
109
116
|
"operation": "billing.notificationsettings",
|
|
@@ -615,7 +622,7 @@
|
|
|
615
622
|
"operation": "projectnotifications.rotateSigningKey",
|
|
616
623
|
"principals": ["api-credential", "oauth", "session"],
|
|
617
624
|
"roles": ["admin"],
|
|
618
|
-
"scopes": ["projects:administer"]
|
|
625
|
+
"scopes": ["projects:administer", "endpoints:write"]
|
|
619
626
|
},
|
|
620
627
|
{
|
|
621
628
|
"mutates": true,
|
|
@@ -652,6 +659,13 @@
|
|
|
652
659
|
"roles": ["admin", "billing", "member"],
|
|
653
660
|
"scopes": ["projects:read"]
|
|
654
661
|
},
|
|
662
|
+
{
|
|
663
|
+
"mutates": false,
|
|
664
|
+
"operation": "projects.read",
|
|
665
|
+
"principals": ["session"],
|
|
666
|
+
"roles": ["admin", "billing", "member"],
|
|
667
|
+
"scopes": ["projects:read"]
|
|
668
|
+
},
|
|
655
669
|
{
|
|
656
670
|
"mutates": true,
|
|
657
671
|
"operation": "projects.rename",
|
|
@@ -717,6 +731,13 @@
|
|
|
717
731
|
"roles": ["admin", "billing", "member"],
|
|
718
732
|
"scopes": ["schedules:write"]
|
|
719
733
|
},
|
|
734
|
+
{
|
|
735
|
+
"mutates": false,
|
|
736
|
+
"operation": "schedules.summary",
|
|
737
|
+
"principals": ["api-credential", "oauth", "session"],
|
|
738
|
+
"roles": ["admin", "billing", "member"],
|
|
739
|
+
"scopes": ["schedules:read"]
|
|
740
|
+
},
|
|
720
741
|
{
|
|
721
742
|
"mutates": false,
|
|
722
743
|
"operation": "sinkdeliveries.list",
|
|
@@ -66,6 +66,7 @@
|
|
|
66
66
|
"maxLength": 128
|
|
67
67
|
},
|
|
68
68
|
"timingPolicyVersion": {
|
|
69
|
+
"description": "Timing policy pinned with trusted first-outbound evidence. Banded occurrences use timing-v2-service-bands (realtime 1000ms, short bulk 10000ms, bulk 60000ms from plannedFor); legacy occurrences without a band retain their recorded policy, including payg-v1, and 5000ms/15000ms thresholds. Absent timing evidence means unknown.",
|
|
69
70
|
"type": "string",
|
|
70
71
|
"minLength": 1,
|
|
71
72
|
"maxLength": 64
|
|
@@ -223,6 +224,15 @@
|
|
|
223
224
|
"type": "string",
|
|
224
225
|
"enum": ["captured", "expired", "not_captured"]
|
|
225
226
|
},
|
|
227
|
+
"requestUnavailable": {
|
|
228
|
+
"type": "string",
|
|
229
|
+
"enum": [
|
|
230
|
+
"schedule_changed",
|
|
231
|
+
"endpoint_changed",
|
|
232
|
+
"endpoint_deleted",
|
|
233
|
+
"payload_deleted"
|
|
234
|
+
]
|
|
235
|
+
},
|
|
226
236
|
"responseHeaders": {
|
|
227
237
|
"maxItems": 8,
|
|
228
238
|
"type": "array",
|
|
@@ -64,6 +64,7 @@
|
|
|
64
64
|
"maxLength": 128
|
|
65
65
|
},
|
|
66
66
|
"timingPolicyVersion": {
|
|
67
|
+
"description": "Timing policy pinned with trusted first-outbound evidence. Banded occurrences use timing-v2-service-bands (realtime 1000ms, short bulk 10000ms, bulk 60000ms from plannedFor); legacy occurrences without a band retain their recorded policy, including payg-v1, and 5000ms/15000ms thresholds. Absent timing evidence means unknown.",
|
|
67
68
|
"type": "string",
|
|
68
69
|
"minLength": 1,
|
|
69
70
|
"maxLength": 64
|
|
@@ -221,6 +222,15 @@
|
|
|
221
222
|
"type": "string",
|
|
222
223
|
"enum": ["captured", "expired", "not_captured"]
|
|
223
224
|
},
|
|
225
|
+
"requestUnavailable": {
|
|
226
|
+
"type": "string",
|
|
227
|
+
"enum": [
|
|
228
|
+
"schedule_changed",
|
|
229
|
+
"endpoint_changed",
|
|
230
|
+
"endpoint_deleted",
|
|
231
|
+
"payload_deleted"
|
|
232
|
+
]
|
|
233
|
+
},
|
|
224
234
|
"responseHeaders": {
|
|
225
235
|
"maxItems": 8,
|
|
226
236
|
"type": "array",
|
|
@@ -143,6 +143,7 @@
|
|
|
143
143
|
"maxLength": 128
|
|
144
144
|
},
|
|
145
145
|
"timingPolicyVersion": {
|
|
146
|
+
"description": "Timing policy pinned with trusted first-outbound evidence. Banded occurrences use timing-v2-service-bands (realtime 1000ms, short bulk 10000ms, bulk 60000ms from plannedFor); legacy occurrences without a band retain their recorded policy, including payg-v1, and 5000ms/15000ms thresholds. Absent timing evidence means unknown.",
|
|
146
147
|
"type": "string",
|
|
147
148
|
"minLength": 1,
|
|
148
149
|
"maxLength": 64
|
|
@@ -164,6 +165,9 @@
|
|
|
164
165
|
"type": "string",
|
|
165
166
|
"pattern": "^sch_[0-9abcdefghjkmnpqrstvwxyz]{26}$"
|
|
166
167
|
},
|
|
168
|
+
"scheduleName": {
|
|
169
|
+
"type": "string"
|
|
170
|
+
},
|
|
167
171
|
"sequence": {
|
|
168
172
|
"type": "integer",
|
|
169
173
|
"exclusiveMinimum": 0,
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"properties": {
|
|
5
|
+
"through": {
|
|
6
|
+
"type": "string",
|
|
7
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
|
|
8
|
+
}
|
|
9
|
+
},
|
|
10
|
+
"required": ["through"],
|
|
11
|
+
"additionalProperties": false
|
|
12
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"properties": {
|
|
5
|
+
"dismissed": {
|
|
6
|
+
"type": "integer",
|
|
7
|
+
"minimum": 0,
|
|
8
|
+
"maximum": 9007199254740991
|
|
9
|
+
},
|
|
10
|
+
"freshness": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"properties": {
|
|
13
|
+
"kind": {
|
|
14
|
+
"type": "string",
|
|
15
|
+
"const": "authoritative"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"required": ["kind"]
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"required": ["dismissed", "freshness"]
|
|
22
|
+
}
|
|
@@ -16,6 +16,49 @@
|
|
|
16
16
|
},
|
|
17
17
|
"required": ["boundary", "mode"]
|
|
18
18
|
},
|
|
19
|
+
"attemptPrice": {
|
|
20
|
+
"type": "object",
|
|
21
|
+
"properties": {
|
|
22
|
+
"bulk": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"properties": {
|
|
25
|
+
"currency": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"const": "USD"
|
|
28
|
+
},
|
|
29
|
+
"microdollars": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"pattern": "^(?:0|[1-9]\\d*)$"
|
|
32
|
+
},
|
|
33
|
+
"scale": {
|
|
34
|
+
"type": "number",
|
|
35
|
+
"const": 6
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"required": ["currency", "microdollars", "scale"]
|
|
39
|
+
},
|
|
40
|
+
"realtime": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"properties": {
|
|
43
|
+
"currency": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"const": "USD"
|
|
46
|
+
},
|
|
47
|
+
"microdollars": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"pattern": "^(?:0|[1-9]\\d*)$"
|
|
50
|
+
},
|
|
51
|
+
"scale": {
|
|
52
|
+
"type": "number",
|
|
53
|
+
"const": 6
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"required": ["currency", "microdollars", "scale"]
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"required": ["bulk", "realtime"],
|
|
60
|
+
"description": "What one billable delivery attempt costs under priceVersion, by latency class: the same tariff the usage meter charges. Retries and failed attempts that reach the receiver are billable; attempts answered with 429 and attempts this service could not start are not."
|
|
61
|
+
},
|
|
19
62
|
"blockingReasons": {
|
|
20
63
|
"type": "array",
|
|
21
64
|
"items": {
|
|
@@ -16,6 +16,49 @@
|
|
|
16
16
|
},
|
|
17
17
|
"required": ["boundary", "mode"]
|
|
18
18
|
},
|
|
19
|
+
"attemptPrice": {
|
|
20
|
+
"type": "object",
|
|
21
|
+
"properties": {
|
|
22
|
+
"bulk": {
|
|
23
|
+
"type": "object",
|
|
24
|
+
"properties": {
|
|
25
|
+
"currency": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"const": "USD"
|
|
28
|
+
},
|
|
29
|
+
"microdollars": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"pattern": "^(?:0|[1-9]\\d*)$"
|
|
32
|
+
},
|
|
33
|
+
"scale": {
|
|
34
|
+
"type": "number",
|
|
35
|
+
"const": 6
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"required": ["currency", "microdollars", "scale"]
|
|
39
|
+
},
|
|
40
|
+
"realtime": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"properties": {
|
|
43
|
+
"currency": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"const": "USD"
|
|
46
|
+
},
|
|
47
|
+
"microdollars": {
|
|
48
|
+
"type": "string",
|
|
49
|
+
"pattern": "^(?:0|[1-9]\\d*)$"
|
|
50
|
+
},
|
|
51
|
+
"scale": {
|
|
52
|
+
"type": "number",
|
|
53
|
+
"const": 6
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"required": ["currency", "microdollars", "scale"]
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"required": ["bulk", "realtime"],
|
|
60
|
+
"description": "What one billable delivery attempt costs under priceVersion, by latency class: the same tariff the usage meter charges. Retries and failed attempts that reach the receiver are billable; attempts answered with 429 and attempts this service could not start are not."
|
|
61
|
+
},
|
|
19
62
|
"blockingReasons": {
|
|
20
63
|
"type": "array",
|
|
21
64
|
"items": {
|
|
@@ -11,6 +11,21 @@
|
|
|
11
11
|
"type": "integer",
|
|
12
12
|
"minimum": 1,
|
|
13
13
|
"maximum": 100
|
|
14
|
+
},
|
|
15
|
+
"text": {
|
|
16
|
+
"description": "Case-insensitive literal substring of the endpoint's name, address or identifier.",
|
|
17
|
+
"type": "string",
|
|
18
|
+
"maxLength": 256
|
|
19
|
+
},
|
|
20
|
+
"status": {
|
|
21
|
+
"description": "Only endpoints in this status.",
|
|
22
|
+
"type": "string",
|
|
23
|
+
"enum": ["active", "disabled"]
|
|
24
|
+
},
|
|
25
|
+
"rotation": {
|
|
26
|
+
"description": "unacknowledged: only endpoints with a signing-key rotation whose server update has not been marked done.",
|
|
27
|
+
"type": "string",
|
|
28
|
+
"enum": ["unacknowledged"]
|
|
14
29
|
}
|
|
15
30
|
}
|
|
16
31
|
}
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
"maxLength": 128
|
|
32
32
|
},
|
|
33
33
|
"timingPolicyVersion": {
|
|
34
|
+
"description": "Timing policy pinned with trusted first-outbound evidence. Banded occurrences use timing-v2-service-bands (realtime 1000ms, short bulk 10000ms, bulk 60000ms from plannedFor); legacy occurrences without a band retain their recorded policy, including payg-v1, and 5000ms/15000ms thresholds. Absent timing evidence means unknown.",
|
|
34
35
|
"type": "string",
|
|
35
36
|
"minLength": 1,
|
|
36
37
|
"maxLength": 64
|
|
@@ -52,6 +53,9 @@
|
|
|
52
53
|
"type": "string",
|
|
53
54
|
"pattern": "^sch_[0-9abcdefghjkmnpqrstvwxyz]{26}$"
|
|
54
55
|
},
|
|
56
|
+
"scheduleName": {
|
|
57
|
+
"type": "string"
|
|
58
|
+
},
|
|
55
59
|
"sequence": {
|
|
56
60
|
"type": "integer",
|
|
57
61
|
"exclusiveMinimum": 0,
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
"maxLength": 128
|
|
32
32
|
},
|
|
33
33
|
"timingPolicyVersion": {
|
|
34
|
+
"description": "Timing policy pinned with trusted first-outbound evidence. Banded occurrences use timing-v2-service-bands (realtime 1000ms, short bulk 10000ms, bulk 60000ms from plannedFor); legacy occurrences without a band retain their recorded policy, including payg-v1, and 5000ms/15000ms thresholds. Absent timing evidence means unknown.",
|
|
34
35
|
"type": "string",
|
|
35
36
|
"minLength": 1,
|
|
36
37
|
"maxLength": 64
|
|
@@ -52,6 +53,9 @@
|
|
|
52
53
|
"type": "string",
|
|
53
54
|
"pattern": "^sch_[0-9abcdefghjkmnpqrstvwxyz]{26}$"
|
|
54
55
|
},
|
|
56
|
+
"scheduleName": {
|
|
57
|
+
"type": "string"
|
|
58
|
+
},
|
|
55
59
|
"sequence": {
|
|
56
60
|
"type": "integer",
|
|
57
61
|
"exclusiveMinimum": 0,
|
|
@@ -39,6 +39,7 @@
|
|
|
39
39
|
"maxLength": 128
|
|
40
40
|
},
|
|
41
41
|
"timingPolicyVersion": {
|
|
42
|
+
"description": "Timing policy pinned with trusted first-outbound evidence. Banded occurrences use timing-v2-service-bands (realtime 1000ms, short bulk 10000ms, bulk 60000ms from plannedFor); legacy occurrences without a band retain their recorded policy, including payg-v1, and 5000ms/15000ms thresholds. Absent timing evidence means unknown.",
|
|
42
43
|
"type": "string",
|
|
43
44
|
"minLength": 1,
|
|
44
45
|
"maxLength": 64
|
|
@@ -60,6 +61,9 @@
|
|
|
60
61
|
"type": "string",
|
|
61
62
|
"pattern": "^sch_[0-9abcdefghjkmnpqrstvwxyz]{26}$"
|
|
62
63
|
},
|
|
64
|
+
"scheduleName": {
|
|
65
|
+
"type": "string"
|
|
66
|
+
},
|
|
63
67
|
"sequence": {
|
|
64
68
|
"type": "integer",
|
|
65
69
|
"exclusiveMinimum": 0,
|
|
@@ -64,6 +64,7 @@
|
|
|
64
64
|
"maxLength": 128
|
|
65
65
|
},
|
|
66
66
|
"timingPolicyVersion": {
|
|
67
|
+
"description": "Timing policy pinned with trusted first-outbound evidence. Banded occurrences use timing-v2-service-bands (realtime 1000ms, short bulk 10000ms, bulk 60000ms from plannedFor); legacy occurrences without a band retain their recorded policy, including payg-v1, and 5000ms/15000ms thresholds. Absent timing evidence means unknown.",
|
|
67
68
|
"type": "string",
|
|
68
69
|
"minLength": 1,
|
|
69
70
|
"maxLength": 64
|
|
@@ -221,6 +222,15 @@
|
|
|
221
222
|
"type": "string",
|
|
222
223
|
"enum": ["captured", "expired", "not_captured"]
|
|
223
224
|
},
|
|
225
|
+
"requestUnavailable": {
|
|
226
|
+
"type": "string",
|
|
227
|
+
"enum": [
|
|
228
|
+
"schedule_changed",
|
|
229
|
+
"endpoint_changed",
|
|
230
|
+
"endpoint_deleted",
|
|
231
|
+
"payload_deleted"
|
|
232
|
+
]
|
|
233
|
+
},
|
|
224
234
|
"responseHeaders": {
|
|
225
235
|
"maxItems": 8,
|
|
226
236
|
"type": "array",
|
|
@@ -59,25 +59,49 @@
|
|
|
59
59
|
"statusWebhook": {
|
|
60
60
|
"anyOf": [
|
|
61
61
|
{
|
|
62
|
-
"
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
"
|
|
66
|
-
|
|
67
|
-
|
|
62
|
+
"anyOf": [
|
|
63
|
+
{
|
|
64
|
+
"type": "object",
|
|
65
|
+
"properties": {
|
|
66
|
+
"endpoint": {
|
|
67
|
+
"type": "string",
|
|
68
|
+
"pattern": "^ep_[0-9abcdefghjkmnpqrstvwxyz]{26}$"
|
|
69
|
+
},
|
|
70
|
+
"events": {
|
|
71
|
+
"minItems": 1,
|
|
72
|
+
"maxItems": 1,
|
|
73
|
+
"type": "array",
|
|
74
|
+
"items": {
|
|
75
|
+
"type": "string",
|
|
76
|
+
"enum": ["failed"]
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"required": ["endpoint", "events"],
|
|
81
|
+
"additionalProperties": false
|
|
68
82
|
},
|
|
69
|
-
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
83
|
+
{
|
|
84
|
+
"type": "object",
|
|
85
|
+
"properties": {
|
|
86
|
+
"url": {
|
|
87
|
+
"type": "string",
|
|
88
|
+
"maxLength": 2048,
|
|
89
|
+
"format": "uri"
|
|
90
|
+
},
|
|
91
|
+
"events": {
|
|
92
|
+
"minItems": 1,
|
|
93
|
+
"maxItems": 1,
|
|
94
|
+
"type": "array",
|
|
95
|
+
"items": {
|
|
96
|
+
"type": "string",
|
|
97
|
+
"enum": ["failed"]
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"required": ["url", "events"],
|
|
102
|
+
"additionalProperties": false
|
|
77
103
|
}
|
|
78
|
-
|
|
79
|
-
"required": ["url", "events"],
|
|
80
|
-
"additionalProperties": false
|
|
104
|
+
]
|
|
81
105
|
},
|
|
82
106
|
{
|
|
83
107
|
"type": "null"
|
|
@@ -19,32 +19,6 @@
|
|
|
19
19
|
}
|
|
20
20
|
]
|
|
21
21
|
},
|
|
22
|
-
"deletionCounts": {
|
|
23
|
-
"type": "object",
|
|
24
|
-
"properties": {
|
|
25
|
-
"endpoints": {
|
|
26
|
-
"type": "integer",
|
|
27
|
-
"minimum": 0,
|
|
28
|
-
"maximum": 9007199254740991
|
|
29
|
-
},
|
|
30
|
-
"keys": {
|
|
31
|
-
"type": "integer",
|
|
32
|
-
"minimum": 0,
|
|
33
|
-
"maximum": 9007199254740991
|
|
34
|
-
},
|
|
35
|
-
"runs": {
|
|
36
|
-
"type": "integer",
|
|
37
|
-
"minimum": 0,
|
|
38
|
-
"maximum": 9007199254740991
|
|
39
|
-
},
|
|
40
|
-
"schedules": {
|
|
41
|
-
"type": "integer",
|
|
42
|
-
"minimum": 0,
|
|
43
|
-
"maximum": 9007199254740991
|
|
44
|
-
}
|
|
45
|
-
},
|
|
46
|
-
"required": ["endpoints", "keys", "runs", "schedules"]
|
|
47
|
-
},
|
|
48
22
|
"environmentKinds": {
|
|
49
23
|
"minItems": 2,
|
|
50
24
|
"maxItems": 2,
|
|
@@ -75,7 +49,6 @@
|
|
|
75
49
|
},
|
|
76
50
|
"required": [
|
|
77
51
|
"createdAt",
|
|
78
|
-
"deletionCounts",
|
|
79
52
|
"environmentKinds",
|
|
80
53
|
"id",
|
|
81
54
|
"name",
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"properties": {
|
|
5
|
+
"createdAt": {
|
|
6
|
+
"anyOf": [
|
|
7
|
+
{
|
|
8
|
+
"type": "string",
|
|
9
|
+
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"type": "null"
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
|
+
},
|
|
16
|
+
"deletionCounts": {
|
|
17
|
+
"type": "object",
|
|
18
|
+
"properties": {
|
|
19
|
+
"endpoints": {
|
|
20
|
+
"type": "integer",
|
|
21
|
+
"minimum": 0,
|
|
22
|
+
"maximum": 9007199254740991
|
|
23
|
+
},
|
|
24
|
+
"keys": {
|
|
25
|
+
"type": "integer",
|
|
26
|
+
"minimum": 0,
|
|
27
|
+
"maximum": 9007199254740991
|
|
28
|
+
},
|
|
29
|
+
"runs": {
|
|
30
|
+
"type": "integer",
|
|
31
|
+
"minimum": 0,
|
|
32
|
+
"maximum": 9007199254740991
|
|
33
|
+
},
|
|
34
|
+
"schedules": {
|
|
35
|
+
"type": "integer",
|
|
36
|
+
"minimum": 0,
|
|
37
|
+
"maximum": 9007199254740991
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"required": ["endpoints", "keys", "runs", "schedules"]
|
|
41
|
+
},
|
|
42
|
+
"environmentKinds": {
|
|
43
|
+
"minItems": 2,
|
|
44
|
+
"maxItems": 2,
|
|
45
|
+
"type": "array",
|
|
46
|
+
"items": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"enum": ["test", "live"]
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"id": {
|
|
52
|
+
"type": "string",
|
|
53
|
+
"pattern": "^proj_[0-9abcdefghjkmnpqrstvwxyz]{26}$"
|
|
54
|
+
},
|
|
55
|
+
"name": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"minLength": 1,
|
|
58
|
+
"maxLength": 120
|
|
59
|
+
},
|
|
60
|
+
"status": {
|
|
61
|
+
"type": "string",
|
|
62
|
+
"enum": ["active", "archived"]
|
|
63
|
+
},
|
|
64
|
+
"version": {
|
|
65
|
+
"type": "integer",
|
|
66
|
+
"exclusiveMinimum": 0,
|
|
67
|
+
"maximum": 9007199254740991
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"required": [
|
|
71
|
+
"createdAt",
|
|
72
|
+
"deletionCounts",
|
|
73
|
+
"environmentKinds",
|
|
74
|
+
"id",
|
|
75
|
+
"name",
|
|
76
|
+
"status",
|
|
77
|
+
"version"
|
|
78
|
+
]
|
|
79
|
+
}
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
"maxLength": 128
|
|
30
30
|
},
|
|
31
31
|
"timingPolicyVersion": {
|
|
32
|
+
"description": "Timing policy pinned with trusted first-outbound evidence. Banded occurrences use timing-v2-service-bands (realtime 1000ms, short bulk 10000ms, bulk 60000ms from plannedFor); legacy occurrences without a band retain their recorded policy, including payg-v1, and 5000ms/15000ms thresholds. Absent timing evidence means unknown.",
|
|
32
33
|
"type": "string",
|
|
33
34
|
"minLength": 1,
|
|
34
35
|
"maxLength": 64
|
|
@@ -50,6 +51,9 @@
|
|
|
50
51
|
"type": "string",
|
|
51
52
|
"pattern": "^sch_[0-9abcdefghjkmnpqrstvwxyz]{26}$"
|
|
52
53
|
},
|
|
54
|
+
"scheduleName": {
|
|
55
|
+
"type": "string"
|
|
56
|
+
},
|
|
53
57
|
"sequence": {
|
|
54
58
|
"type": "integer",
|
|
55
59
|
"exclusiveMinimum": 0,
|
|
@@ -294,6 +298,10 @@
|
|
|
294
298
|
"type": "string",
|
|
295
299
|
"enum": ["realtime", "bulk"]
|
|
296
300
|
},
|
|
301
|
+
"requestedLatencyClass": {
|
|
302
|
+
"type": "string",
|
|
303
|
+
"enum": ["auto", "bulk", "realtime"]
|
|
304
|
+
},
|
|
297
305
|
"lateness": {
|
|
298
306
|
"type": "object",
|
|
299
307
|
"properties": {
|
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
"maxLength": 128
|
|
30
30
|
},
|
|
31
31
|
"timingPolicyVersion": {
|
|
32
|
+
"description": "Timing policy pinned with trusted first-outbound evidence. Banded occurrences use timing-v2-service-bands (realtime 1000ms, short bulk 10000ms, bulk 60000ms from plannedFor); legacy occurrences without a band retain their recorded policy, including payg-v1, and 5000ms/15000ms thresholds. Absent timing evidence means unknown.",
|
|
32
33
|
"type": "string",
|
|
33
34
|
"minLength": 1,
|
|
34
35
|
"maxLength": 64
|
|
@@ -50,6 +51,9 @@
|
|
|
50
51
|
"type": "string",
|
|
51
52
|
"pattern": "^sch_[0-9abcdefghjkmnpqrstvwxyz]{26}$"
|
|
52
53
|
},
|
|
54
|
+
"scheduleName": {
|
|
55
|
+
"type": "string"
|
|
56
|
+
},
|
|
53
57
|
"sequence": {
|
|
54
58
|
"type": "integer",
|
|
55
59
|
"exclusiveMinimum": 0,
|
|
@@ -294,6 +298,10 @@
|
|
|
294
298
|
"type": "string",
|
|
295
299
|
"enum": ["realtime", "bulk"]
|
|
296
300
|
},
|
|
301
|
+
"requestedLatencyClass": {
|
|
302
|
+
"type": "string",
|
|
303
|
+
"enum": ["auto", "bulk", "realtime"]
|
|
304
|
+
},
|
|
297
305
|
"lateness": {
|
|
298
306
|
"type": "object",
|
|
299
307
|
"properties": {
|