@greatwait/contracts 0.1.0-alpha.7 → 0.1.0-alpha.8

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 (36) hide show
  1. package/dist/billing.d.ts +2 -1
  2. package/dist/billing.js +8 -1
  3. package/dist/index.d.ts +1 -0
  4. package/dist/index.js +1 -0
  5. package/dist/operations.d.ts +42 -5
  6. package/dist/operations.js +3 -1
  7. package/dist/policy.d.ts +5 -4
  8. package/dist/policy.js +5 -4
  9. package/dist/project-notifications.d.ts +238 -0
  10. package/dist/project-notifications.js +236 -0
  11. package/dist/scheduling.js +5 -4
  12. package/dist/workspace.d.ts +4 -4
  13. package/generated/v1/examples/projectnotifications.read.response.json +12 -0
  14. package/generated/v1/examples/projectnotifications.rotateSigningKey.request.json +3 -0
  15. package/generated/v1/examples/projectnotifications.rotateSigningKey.response.json +25 -0
  16. package/generated/v1/examples/projectnotifications.update.request.json +10 -0
  17. package/generated/v1/examples/projectnotifications.update.response.json +12 -0
  18. package/generated/v1/examples/statusdeliveries.list.response.json +3 -0
  19. package/generated/v1/manifest.json +110 -0
  20. package/generated/v1/openapi.json +2525 -3
  21. package/generated/v1/policy-matrix.json +28 -0
  22. package/generated/v1/schemas/billing.notices.response.json +3 -2
  23. package/generated/v1/schemas/billing.purchase.request.json +4 -0
  24. package/generated/v1/schemas/projectnotifications.read.response.json +101 -0
  25. package/generated/v1/schemas/projectnotifications.rotateSigningKey.request.json +13 -0
  26. package/generated/v1/schemas/projectnotifications.rotateSigningKey.response.json +119 -0
  27. package/generated/v1/schemas/projectnotifications.update.request-headers.json +13 -0
  28. package/generated/v1/schemas/projectnotifications.update.request.json +90 -0
  29. package/generated/v1/schemas/projectnotifications.update.response.json +101 -0
  30. package/generated/v1/schemas/statusdeliveries.list.query.json +16 -0
  31. package/generated/v1/schemas/statusdeliveries.list.response.json +82 -0
  32. package/generated/v1/snippets/projectnotifications.read.json +6 -0
  33. package/generated/v1/snippets/projectnotifications.rotateSigningKey.json +6 -0
  34. package/generated/v1/snippets/projectnotifications.update.json +6 -0
  35. package/generated/v1/snippets/statusdeliveries.list.json +6 -0
  36. package/package.json +1 -1
@@ -526,6 +526,27 @@
526
526
  "roles": ["admin"],
527
527
  "scopes": ["members:manage"]
528
528
  },
529
+ {
530
+ "mutates": false,
531
+ "operation": "projectnotifications.read",
532
+ "principals": ["api-credential", "oauth", "session"],
533
+ "roles": ["admin", "billing", "member"],
534
+ "scopes": ["projects:read"]
535
+ },
536
+ {
537
+ "mutates": true,
538
+ "operation": "projectnotifications.rotateSigningKey",
539
+ "principals": ["api-credential", "oauth", "session"],
540
+ "roles": ["admin"],
541
+ "scopes": ["projects:administer"]
542
+ },
543
+ {
544
+ "mutates": true,
545
+ "operation": "projectnotifications.update",
546
+ "principals": ["api-credential", "oauth", "session"],
547
+ "roles": ["admin"],
548
+ "scopes": ["projects:administer"]
549
+ },
529
550
  {
530
551
  "mutates": true,
531
552
  "operation": "projects.archive",
@@ -633,6 +654,13 @@
633
654
  "roles": ["admin", "billing", "member"],
634
655
  "scopes": ["endpoints:read"]
635
656
  },
657
+ {
658
+ "mutates": false,
659
+ "operation": "statusdeliveries.list",
660
+ "principals": ["api-credential", "oauth", "session"],
661
+ "roles": ["admin", "billing", "member"],
662
+ "scopes": ["occurrences:read"]
663
+ },
636
664
  {
637
665
  "mutates": true,
638
666
  "operation": "testsinks.configure",
@@ -138,7 +138,8 @@
138
138
  "payment-authentication-required",
139
139
  "payment-outcome-unresolved",
140
140
  "service-restored",
141
- "schedule-auto-paused"
141
+ "schedule-auto-paused",
142
+ "delivery-failed"
142
143
  ]
143
144
  },
144
145
  "occurredAt": {
@@ -190,7 +191,7 @@
190
191
  {
191
192
  "type": "string",
192
193
  "maxLength": 1024,
193
- "pattern": "^\\/o\\/[A-Za-z0-9_%.-]+\\/p\\/proj_[0-9abcdefghjkmnpqrstvwxyz]{26}\\/(?:live|test)\\/schedules\\/sch_[0-9abcdefghjkmnpqrstvwxyz]{26}$"
194
+ "pattern": "^\\/o\\/[A-Za-z0-9_%.-]+\\/p\\/proj_[0-9abcdefghjkmnpqrstvwxyz]{26}\\/(?:live|test)\\/schedules(?:\\/sch_[0-9abcdefghjkmnpqrstvwxyz]{26}(?:\\/occurrences\\/occ_[0-9abcdefghjkmnpqrstvwxyz]{26})?)?$"
194
195
  }
195
196
  ]
196
197
  },
@@ -19,6 +19,10 @@
19
19
  "type": "string",
20
20
  "minLength": 1,
21
21
  "maxLength": 128
22
+ },
23
+ "savePaymentMethod": {
24
+ "type": "boolean",
25
+ "description": "true: the customer also asks to keep the payment method they pay with, for automatic top-up and for projects past the free one. The hosted payment then saves it for later charges made without the customer present (it offers every method the account enables except Klarna, which cannot be charged that way), and once the provider confirms this payment paid, that method becomes the organization's saved payment method if it has none. An existing saved payment method is never replaced, and saving one never turns automatic top-up on. Omitted or false: the purchase does exactly what it always did."
22
26
  }
23
27
  },
24
28
  "required": ["confirmed", "expectedRevision", "quote"],
@@ -0,0 +1,101 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "project": {
6
+ "type": "string",
7
+ "pattern": "^proj_[0-9abcdefghjkmnpqrstvwxyz]{26}$"
8
+ },
9
+ "environmentKind": {
10
+ "type": "string",
11
+ "enum": ["test", "live"]
12
+ },
13
+ "revision": {
14
+ "type": "integer",
15
+ "exclusiveMinimum": 0,
16
+ "maximum": 9007199254740991
17
+ },
18
+ "email": {
19
+ "type": "object",
20
+ "properties": {
21
+ "enabled": {
22
+ "type": "boolean"
23
+ },
24
+ "recipients": {
25
+ "oneOf": [
26
+ {
27
+ "type": "object",
28
+ "properties": {
29
+ "kind": {
30
+ "type": "string",
31
+ "const": "admins"
32
+ }
33
+ },
34
+ "required": ["kind"]
35
+ },
36
+ {
37
+ "type": "object",
38
+ "properties": {
39
+ "kind": {
40
+ "type": "string",
41
+ "const": "members"
42
+ },
43
+ "memberIds": {
44
+ "minItems": 1,
45
+ "maxItems": 100,
46
+ "type": "array",
47
+ "items": {
48
+ "type": "string",
49
+ "pattern": "^mem_[0-9a-f]{26}$"
50
+ }
51
+ }
52
+ },
53
+ "required": ["kind", "memberIds"]
54
+ }
55
+ ]
56
+ },
57
+ "scheduleKinds": {
58
+ "type": "string",
59
+ "enum": ["both", "one-shot", "recurring"]
60
+ }
61
+ },
62
+ "required": ["enabled", "recipients", "scheduleKinds"]
63
+ },
64
+ "statusWebhook": {
65
+ "type": "object",
66
+ "properties": {
67
+ "url": {
68
+ "type": "string",
69
+ "maxLength": 2048,
70
+ "format": "uri"
71
+ },
72
+ "events": {
73
+ "minItems": 1,
74
+ "maxItems": 1,
75
+ "type": "array",
76
+ "items": {
77
+ "type": "string",
78
+ "enum": ["failed"]
79
+ }
80
+ },
81
+ "signingKey": {
82
+ "type": "object",
83
+ "properties": {
84
+ "id": {
85
+ "type": "string",
86
+ "pattern": "^csk_[0-9abcdefghjkmnpqrstvwxyz]{26}$"
87
+ }
88
+ },
89
+ "required": ["id"]
90
+ },
91
+ "revision": {
92
+ "type": "integer",
93
+ "exclusiveMinimum": 0,
94
+ "maximum": 9007199254740991
95
+ }
96
+ },
97
+ "required": ["url", "events", "revision"]
98
+ }
99
+ },
100
+ "required": ["project", "environmentKind", "revision", "email"]
101
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "expectedRevision": {
6
+ "type": "integer",
7
+ "exclusiveMinimum": 0,
8
+ "maximum": 9007199254740991
9
+ }
10
+ },
11
+ "required": ["expectedRevision"],
12
+ "additionalProperties": false
13
+ }
@@ -0,0 +1,119 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "settings": {
6
+ "type": "object",
7
+ "properties": {
8
+ "project": {
9
+ "type": "string",
10
+ "pattern": "^proj_[0-9abcdefghjkmnpqrstvwxyz]{26}$"
11
+ },
12
+ "environmentKind": {
13
+ "type": "string",
14
+ "enum": ["test", "live"]
15
+ },
16
+ "revision": {
17
+ "type": "integer",
18
+ "exclusiveMinimum": 0,
19
+ "maximum": 9007199254740991
20
+ },
21
+ "email": {
22
+ "type": "object",
23
+ "properties": {
24
+ "enabled": {
25
+ "type": "boolean"
26
+ },
27
+ "recipients": {
28
+ "oneOf": [
29
+ {
30
+ "type": "object",
31
+ "properties": {
32
+ "kind": {
33
+ "type": "string",
34
+ "const": "admins"
35
+ }
36
+ },
37
+ "required": ["kind"]
38
+ },
39
+ {
40
+ "type": "object",
41
+ "properties": {
42
+ "kind": {
43
+ "type": "string",
44
+ "const": "members"
45
+ },
46
+ "memberIds": {
47
+ "minItems": 1,
48
+ "maxItems": 100,
49
+ "type": "array",
50
+ "items": {
51
+ "type": "string",
52
+ "pattern": "^mem_[0-9a-f]{26}$"
53
+ }
54
+ }
55
+ },
56
+ "required": ["kind", "memberIds"]
57
+ }
58
+ ]
59
+ },
60
+ "scheduleKinds": {
61
+ "type": "string",
62
+ "enum": ["both", "one-shot", "recurring"]
63
+ }
64
+ },
65
+ "required": ["enabled", "recipients", "scheduleKinds"]
66
+ },
67
+ "statusWebhook": {
68
+ "type": "object",
69
+ "properties": {
70
+ "url": {
71
+ "type": "string",
72
+ "maxLength": 2048,
73
+ "format": "uri"
74
+ },
75
+ "events": {
76
+ "minItems": 1,
77
+ "maxItems": 1,
78
+ "type": "array",
79
+ "items": {
80
+ "type": "string",
81
+ "enum": ["failed"]
82
+ }
83
+ },
84
+ "signingKey": {
85
+ "type": "object",
86
+ "properties": {
87
+ "id": {
88
+ "type": "string",
89
+ "pattern": "^csk_[0-9abcdefghjkmnpqrstvwxyz]{26}$"
90
+ }
91
+ },
92
+ "required": ["id"]
93
+ },
94
+ "revision": {
95
+ "type": "integer",
96
+ "exclusiveMinimum": 0,
97
+ "maximum": 9007199254740991
98
+ }
99
+ },
100
+ "required": ["url", "events", "revision"]
101
+ }
102
+ },
103
+ "required": ["project", "environmentKind", "revision", "email"]
104
+ },
105
+ "keyId": {
106
+ "type": "string",
107
+ "pattern": "^csk_[0-9abcdefghjkmnpqrstvwxyz]{26}$"
108
+ },
109
+ "secret": {
110
+ "type": "string",
111
+ "minLength": 1
112
+ },
113
+ "shownOnce": {
114
+ "type": "boolean",
115
+ "const": true
116
+ }
117
+ },
118
+ "required": ["settings", "keyId", "secret", "shownOnce"]
119
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "Idempotency-Key": {
6
+ "type": "string",
7
+ "minLength": 16,
8
+ "maxLength": 255,
9
+ "pattern": "^[\\x20-\\x7e]+$"
10
+ }
11
+ },
12
+ "required": ["Idempotency-Key"]
13
+ }
@@ -0,0 +1,90 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "expectedRevision": {
6
+ "type": "integer",
7
+ "exclusiveMinimum": 0,
8
+ "maximum": 9007199254740991
9
+ },
10
+ "email": {
11
+ "type": "object",
12
+ "properties": {
13
+ "enabled": {
14
+ "type": "boolean"
15
+ },
16
+ "recipients": {
17
+ "oneOf": [
18
+ {
19
+ "type": "object",
20
+ "properties": {
21
+ "kind": {
22
+ "type": "string",
23
+ "const": "admins"
24
+ }
25
+ },
26
+ "required": ["kind"],
27
+ "additionalProperties": false
28
+ },
29
+ {
30
+ "type": "object",
31
+ "properties": {
32
+ "kind": {
33
+ "type": "string",
34
+ "const": "members"
35
+ },
36
+ "memberIds": {
37
+ "minItems": 1,
38
+ "maxItems": 100,
39
+ "type": "array",
40
+ "items": {
41
+ "type": "string",
42
+ "pattern": "^mem_[0-9a-f]{26}$"
43
+ }
44
+ }
45
+ },
46
+ "required": ["kind", "memberIds"],
47
+ "additionalProperties": false
48
+ }
49
+ ]
50
+ },
51
+ "scheduleKinds": {
52
+ "type": "string",
53
+ "enum": ["both", "one-shot", "recurring"]
54
+ }
55
+ },
56
+ "required": ["enabled", "recipients", "scheduleKinds"],
57
+ "additionalProperties": false
58
+ },
59
+ "statusWebhook": {
60
+ "anyOf": [
61
+ {
62
+ "type": "object",
63
+ "properties": {
64
+ "url": {
65
+ "type": "string",
66
+ "maxLength": 2048,
67
+ "format": "uri"
68
+ },
69
+ "events": {
70
+ "minItems": 1,
71
+ "maxItems": 1,
72
+ "type": "array",
73
+ "items": {
74
+ "type": "string",
75
+ "enum": ["failed"]
76
+ }
77
+ }
78
+ },
79
+ "required": ["url", "events"],
80
+ "additionalProperties": false
81
+ },
82
+ {
83
+ "type": "null"
84
+ }
85
+ ]
86
+ }
87
+ },
88
+ "required": ["expectedRevision"],
89
+ "additionalProperties": false
90
+ }
@@ -0,0 +1,101 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "project": {
6
+ "type": "string",
7
+ "pattern": "^proj_[0-9abcdefghjkmnpqrstvwxyz]{26}$"
8
+ },
9
+ "environmentKind": {
10
+ "type": "string",
11
+ "enum": ["test", "live"]
12
+ },
13
+ "revision": {
14
+ "type": "integer",
15
+ "exclusiveMinimum": 0,
16
+ "maximum": 9007199254740991
17
+ },
18
+ "email": {
19
+ "type": "object",
20
+ "properties": {
21
+ "enabled": {
22
+ "type": "boolean"
23
+ },
24
+ "recipients": {
25
+ "oneOf": [
26
+ {
27
+ "type": "object",
28
+ "properties": {
29
+ "kind": {
30
+ "type": "string",
31
+ "const": "admins"
32
+ }
33
+ },
34
+ "required": ["kind"]
35
+ },
36
+ {
37
+ "type": "object",
38
+ "properties": {
39
+ "kind": {
40
+ "type": "string",
41
+ "const": "members"
42
+ },
43
+ "memberIds": {
44
+ "minItems": 1,
45
+ "maxItems": 100,
46
+ "type": "array",
47
+ "items": {
48
+ "type": "string",
49
+ "pattern": "^mem_[0-9a-f]{26}$"
50
+ }
51
+ }
52
+ },
53
+ "required": ["kind", "memberIds"]
54
+ }
55
+ ]
56
+ },
57
+ "scheduleKinds": {
58
+ "type": "string",
59
+ "enum": ["both", "one-shot", "recurring"]
60
+ }
61
+ },
62
+ "required": ["enabled", "recipients", "scheduleKinds"]
63
+ },
64
+ "statusWebhook": {
65
+ "type": "object",
66
+ "properties": {
67
+ "url": {
68
+ "type": "string",
69
+ "maxLength": 2048,
70
+ "format": "uri"
71
+ },
72
+ "events": {
73
+ "minItems": 1,
74
+ "maxItems": 1,
75
+ "type": "array",
76
+ "items": {
77
+ "type": "string",
78
+ "enum": ["failed"]
79
+ }
80
+ },
81
+ "signingKey": {
82
+ "type": "object",
83
+ "properties": {
84
+ "id": {
85
+ "type": "string",
86
+ "pattern": "^csk_[0-9abcdefghjkmnpqrstvwxyz]{26}$"
87
+ }
88
+ },
89
+ "required": ["id"]
90
+ },
91
+ "revision": {
92
+ "type": "integer",
93
+ "exclusiveMinimum": 0,
94
+ "maximum": 9007199254740991
95
+ }
96
+ },
97
+ "required": ["url", "events", "revision"]
98
+ }
99
+ },
100
+ "required": ["project", "environmentKind", "revision", "email"]
101
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "cursor": {
6
+ "type": "string",
7
+ "minLength": 1
8
+ },
9
+ "limit": {
10
+ "default": 25,
11
+ "type": "integer",
12
+ "minimum": 1,
13
+ "maximum": 100
14
+ }
15
+ }
16
+ }
@@ -0,0 +1,82 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "data": {
6
+ "type": "array",
7
+ "items": {
8
+ "type": "object",
9
+ "properties": {
10
+ "id": {
11
+ "type": "string",
12
+ "minLength": 1,
13
+ "maxLength": 255
14
+ },
15
+ "event": {
16
+ "type": "string",
17
+ "enum": ["failed"]
18
+ },
19
+ "schedule": {
20
+ "type": "string",
21
+ "pattern": "^sch_[0-9abcdefghjkmnpqrstvwxyz]{26}$"
22
+ },
23
+ "occurrence": {
24
+ "type": "string",
25
+ "pattern": "^occ_[0-9abcdefghjkmnpqrstvwxyz]{26}$"
26
+ },
27
+ "occurredAt": {
28
+ "type": "string",
29
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
30
+ },
31
+ "url": {
32
+ "type": "string",
33
+ "format": "uri"
34
+ },
35
+ "state": {
36
+ "type": "string",
37
+ "enum": [
38
+ "pending",
39
+ "delivering",
40
+ "delivered",
41
+ "failed",
42
+ "suppressed"
43
+ ]
44
+ },
45
+ "attempts": {
46
+ "type": "integer",
47
+ "minimum": 0,
48
+ "maximum": 9007199254740991
49
+ },
50
+ "nextAttemptAt": {
51
+ "type": "string",
52
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
53
+ },
54
+ "lastStatus": {
55
+ "type": "integer",
56
+ "minimum": 100,
57
+ "maximum": 599
58
+ },
59
+ "lastError": {
60
+ "type": "string",
61
+ "maxLength": 128
62
+ }
63
+ },
64
+ "required": [
65
+ "id",
66
+ "event",
67
+ "schedule",
68
+ "occurrence",
69
+ "occurredAt",
70
+ "url",
71
+ "state",
72
+ "attempts"
73
+ ]
74
+ }
75
+ },
76
+ "nextCursor": {
77
+ "type": "string",
78
+ "minLength": 1
79
+ }
80
+ },
81
+ "required": ["data"]
82
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "curl": "curl -sS -X GET \"$GREATWAIT_API_URL/v1/projects/$GREATWAIT_PROJECTID/notification-settings\" \\\n --variable %GREATWAIT_API_KEY \\\n --expand-header \"Authorization: Bearer {{GREATWAIT_API_KEY}}\"",
3
+ "environments": ["test", "live"],
4
+ "javascript": "import { createGreatwaitClient } from \"@greatwait/api-client\";\n\nconst greatwait = createGreatwaitClient({\n baseUrl: process.env.GREATWAIT_API_URL,\n credential: process.env.GREATWAIT_API_KEY,\n fetch,\n});\n\nconst projectId = process.env.GREATWAIT_PROJECTID;\n\nconst result = await greatwait.request(\"projectnotifications_read\", projectId);",
5
+ "mcp": "// Any MCP client, against $GREATWAIT_API_URL/mcp.\n{\n \"arguments\": {\n \"projectId\": \"$PROJECTID\"\n },\n \"name\": \"projectnotifications_read\"\n}"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "curl": "curl -sS -X POST \"$GREATWAIT_API_URL/v1/projects/$GREATWAIT_PROJECTID/notification-settings/status-signing-key\" \\\n --variable %GREATWAIT_API_KEY \\\n --expand-header \"Authorization: Bearer {{GREATWAIT_API_KEY}}\" \\\n -H 'Content-Type: application/json' \\\n --data-binary '{\"expectedRevision\":1}'",
3
+ "environments": ["test", "live"],
4
+ "javascript": "import { createGreatwaitClient } from \"@greatwait/api-client\";\n\nconst greatwait = createGreatwaitClient({\n baseUrl: process.env.GREATWAIT_API_URL,\n credential: process.env.GREATWAIT_API_KEY,\n fetch,\n});\n\nconst projectId = process.env.GREATWAIT_PROJECTID;\n\nconst body = {\n \"expectedRevision\": 1\n};\n\nconst result = await greatwait.request(\"projectnotifications_rotateSigningKey\", projectId, body);",
5
+ "mcp": "// projectnotifications.rotateSigningKey is not on the MCP surface.\n// Minting or rotating returns a one-time signing secret. MCP has no negotiated secure-result channel that keeps it out of ordinary tool history. Configure preferences with projectnotifications_update, then use the dashboard or an authenticated REST/SDK/CLI client for the secret."
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "curl": "curl -sS -X PATCH \"$GREATWAIT_API_URL/v1/projects/$GREATWAIT_PROJECTID/notification-settings\" \\\n --variable %GREATWAIT_API_KEY \\\n --expand-header \"Authorization: Bearer {{GREATWAIT_API_KEY}}\" \\\n -H 'Content-Type: application/json' \\\n -H 'Idempotency-Key: $GREATWAIT_IDEMPOTENCY_KEY' \\\n --data-binary '{\"expectedRevision\":1,\"email\":{\"enabled\":true,\"recipients\":{\"kind\":\"admins\"},\"scheduleKinds\":\"both\"}}'",
3
+ "environments": ["test", "live"],
4
+ "javascript": "import { createGreatwaitClient } from \"@greatwait/api-client\";\n\nconst greatwait = createGreatwaitClient({\n baseUrl: process.env.GREATWAIT_API_URL,\n credential: process.env.GREATWAIT_API_KEY,\n fetch,\n});\n\nconst projectId = process.env.GREATWAIT_PROJECTID;\n\nconst body = {\n \"expectedRevision\": 1,\n \"email\": {\n \"enabled\": true,\n \"recipients\": {\n \"kind\": \"admins\"\n },\n \"scheduleKinds\": \"both\"\n }\n};\n\nconst result = await greatwait.request(\"projectnotifications_update\", projectId, body, { \"Idempotency-Key\": process.env.GREATWAIT_IDEMPOTENCY_KEY });",
5
+ "mcp": "// Any MCP client, against $GREATWAIT_API_URL/mcp.\n{\n \"arguments\": {\n \"Idempotency-Key\": \"$IDEMPOTENCY_KEY\",\n \"expectedRevision\": 1,\n \"projectId\": \"$PROJECTID\",\n \"email\": {\n \"enabled\": true,\n \"recipients\": {\n \"kind\": \"admins\"\n },\n \"scheduleKinds\": \"both\"\n }\n },\n \"name\": \"projectnotifications_update\"\n}"
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "curl": "curl -sS -X GET \"$GREATWAIT_API_URL/v1/projects/$GREATWAIT_PROJECTID/status-deliveries\" \\\n --variable %GREATWAIT_API_KEY \\\n --expand-header \"Authorization: Bearer {{GREATWAIT_API_KEY}}\"",
3
+ "environments": ["test", "live"],
4
+ "javascript": "import { createGreatwaitClient } from \"@greatwait/api-client\";\n\nconst greatwait = createGreatwaitClient({\n baseUrl: process.env.GREATWAIT_API_URL,\n credential: process.env.GREATWAIT_API_KEY,\n fetch,\n});\n\nconst projectId = process.env.GREATWAIT_PROJECTID;\n\nconst result = await greatwait.request(\"statusdeliveries_list\", projectId);",
5
+ "mcp": "// Any MCP client, against $GREATWAIT_API_URL/mcp.\n{\n \"arguments\": {\n \"projectId\": \"$PROJECTID\"\n },\n \"name\": \"statusdeliveries_list\"\n}"
6
+ }
package/package.json CHANGED
@@ -154,5 +154,5 @@
154
154
  },
155
155
  "sideEffects": false,
156
156
  "type": "module",
157
- "version": "0.1.0-alpha.7"
157
+ "version": "0.1.0-alpha.8"
158
158
  }