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

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 (119) hide show
  1. package/dist/authority.d.ts +4 -1
  2. package/dist/authority.js +1 -0
  3. package/dist/data-export.d.ts +2 -0
  4. package/dist/delivery.d.ts +26 -0
  5. package/dist/delivery.js +2 -0
  6. package/dist/endpoints.d.ts +168 -0
  7. package/dist/endpoints.js +72 -1
  8. package/dist/http-request.d.ts +193 -0
  9. package/dist/http-request.js +305 -0
  10. package/dist/identity.d.ts +4 -4
  11. package/dist/index.d.ts +5 -3
  12. package/dist/index.js +4 -2
  13. package/dist/mcp.d.ts +2 -1
  14. package/dist/members.d.ts +141 -0
  15. package/dist/members.js +223 -0
  16. package/dist/oauth.d.ts +7 -0
  17. package/dist/operation-definitions.d.ts +20 -4
  18. package/dist/operation-definitions.js +9 -1
  19. package/dist/operations.d.ts +705 -39
  20. package/dist/operations.js +83 -10
  21. package/dist/organization-lifecycle.d.ts +10 -0
  22. package/dist/policy.js +5 -2
  23. package/dist/scheduling-records.d.ts +220 -0
  24. package/dist/scheduling-records.js +5 -0
  25. package/dist/scheduling.d.ts +236 -0
  26. package/dist/scheduling.js +31 -0
  27. package/dist/secrets.d.ts +7 -0
  28. package/dist/tenancy.d.ts +1 -1
  29. package/dist/tenancy.js +1 -1
  30. package/dist/zod-values.d.ts +2 -2
  31. package/dist/zod-values.js +1 -1
  32. package/generated/v1/examples/endpoints.ensure.request.json +3 -0
  33. package/generated/v1/examples/endpoints.ensure.response.json +20 -0
  34. package/generated/v1/examples/invitations.create.request.json +5 -0
  35. package/generated/v1/examples/invitations.create.response.json +7 -0
  36. package/generated/v1/examples/invitations.list.response.json +11 -0
  37. package/generated/v1/examples/invitations.resend.request.json +1 -0
  38. package/generated/v1/examples/invitations.resend.response.json +4 -0
  39. package/generated/v1/examples/invitations.revoke.request.json +3 -0
  40. package/generated/v1/examples/invitations.revoke.response.json +4 -0
  41. package/generated/v1/examples/members.list.response.json +13 -0
  42. package/generated/v1/examples/members.remove.request.json +3 -0
  43. package/generated/v1/examples/members.remove.response.json +4 -0
  44. package/generated/v1/examples/members.role.request.json +3 -0
  45. package/generated/v1/examples/members.role.response.json +4 -0
  46. package/generated/v1/examples/projectmembers.add.request.json +1 -0
  47. package/generated/v1/examples/projectmembers.add.response.json +4 -0
  48. package/generated/v1/examples/projectmembers.remove.request.json +3 -0
  49. package/generated/v1/examples/projectmembers.remove.response.json +4 -0
  50. package/generated/v1/manifest.json +285 -0
  51. package/generated/v1/openapi.json +8339 -773
  52. package/generated/v1/policy-matrix.json +72 -0
  53. package/generated/v1/schemas/context.read.response.json +1 -0
  54. package/generated/v1/schemas/credentials.connection.response.json +1 -0
  55. package/generated/v1/schemas/credentials.create.request.json +1 -0
  56. package/generated/v1/schemas/credentials.create.response.json +1 -0
  57. package/generated/v1/schemas/credentials.list.response.json +1 -0
  58. package/generated/v1/schemas/credentials.revoke.response.json +1 -0
  59. package/generated/v1/schemas/credentials.rotate.response.json +2 -0
  60. package/generated/v1/schemas/endpoints.acknowledgeSigningKeyRotation.response.json +59 -0
  61. package/generated/v1/schemas/endpoints.create.request.json +74 -0
  62. package/generated/v1/schemas/endpoints.create.response.json +59 -0
  63. package/generated/v1/schemas/endpoints.disable.response.json +59 -0
  64. package/generated/v1/schemas/endpoints.enable.response.json +59 -0
  65. package/generated/v1/schemas/endpoints.ensure.request.json +91 -0
  66. package/generated/v1/schemas/endpoints.ensure.response.json +169 -0
  67. package/generated/v1/schemas/endpoints.list.response.json +59 -0
  68. package/generated/v1/schemas/endpoints.read.response.json +59 -0
  69. package/generated/v1/schemas/endpoints.rotateSigningKey.response.json +59 -0
  70. package/generated/v1/schemas/endpoints.update.request.json +74 -0
  71. package/generated/v1/schemas/endpoints.update.response.json +59 -0
  72. package/generated/v1/schemas/grants.list.response.json +1 -0
  73. package/generated/v1/schemas/grants.revoke.response.json +1 -0
  74. package/generated/v1/schemas/invitations.create.request-headers.json +13 -0
  75. package/generated/v1/schemas/invitations.create.request.json +24 -0
  76. package/generated/v1/schemas/invitations.create.response.json +31 -0
  77. package/generated/v1/schemas/invitations.list.response.json +40 -0
  78. package/generated/v1/schemas/invitations.resend.request-headers.json +13 -0
  79. package/generated/v1/schemas/invitations.resend.request.json +6 -0
  80. package/generated/v1/schemas/invitations.resend.response.json +27 -0
  81. package/generated/v1/schemas/invitations.revoke.request-headers.json +13 -0
  82. package/generated/v1/schemas/invitations.revoke.request.json +12 -0
  83. package/generated/v1/schemas/invitations.revoke.response.json +27 -0
  84. package/generated/v1/schemas/members.list.response.json +53 -0
  85. package/generated/v1/schemas/members.remove.request-headers.json +13 -0
  86. package/generated/v1/schemas/members.remove.request.json +12 -0
  87. package/generated/v1/schemas/members.remove.response.json +27 -0
  88. package/generated/v1/schemas/members.role.request-headers.json +13 -0
  89. package/generated/v1/schemas/members.role.request.json +12 -0
  90. package/generated/v1/schemas/members.role.response.json +27 -0
  91. package/generated/v1/schemas/projectmembers.add.request-headers.json +13 -0
  92. package/generated/v1/schemas/projectmembers.add.request.json +6 -0
  93. package/generated/v1/schemas/projectmembers.add.response.json +27 -0
  94. package/generated/v1/schemas/projectmembers.remove.request-headers.json +13 -0
  95. package/generated/v1/schemas/projectmembers.remove.request.json +12 -0
  96. package/generated/v1/schemas/projectmembers.remove.response.json +27 -0
  97. package/generated/v1/schemas/schedules.archive.response.json +138 -1
  98. package/generated/v1/schemas/schedules.cancel.response.json +138 -1
  99. package/generated/v1/schemas/schedules.create.request.json +150 -1
  100. package/generated/v1/schemas/schedules.create.response.json +156 -1
  101. package/generated/v1/schemas/schedules.list.response.json +138 -1
  102. package/generated/v1/schemas/schedules.pause.response.json +138 -1
  103. package/generated/v1/schemas/schedules.read.response.json +138 -1
  104. package/generated/v1/schemas/schedules.replace.request.json +150 -1
  105. package/generated/v1/schemas/schedules.replace.response.json +156 -1
  106. package/generated/v1/schemas/schedules.resume.response.json +138 -1
  107. package/generated/v1/snippets/endpoints.create.json +1 -1
  108. package/generated/v1/snippets/endpoints.ensure.json +6 -0
  109. package/generated/v1/snippets/invitations.create.json +6 -0
  110. package/generated/v1/snippets/invitations.list.json +6 -0
  111. package/generated/v1/snippets/invitations.resend.json +6 -0
  112. package/generated/v1/snippets/invitations.revoke.json +6 -0
  113. package/generated/v1/snippets/journey/create-destination.json +1 -1
  114. package/generated/v1/snippets/members.list.json +6 -0
  115. package/generated/v1/snippets/members.remove.json +6 -0
  116. package/generated/v1/snippets/members.role.json +6 -0
  117. package/generated/v1/snippets/projectmembers.add.json +6 -0
  118. package/generated/v1/snippets/projectmembers.remove.json +6 -0
  119. package/package.json +1 -1
@@ -0,0 +1,169 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "headers": {
6
+ "type": "array",
7
+ "items": {
8
+ "anyOf": [
9
+ {
10
+ "type": "object",
11
+ "properties": {
12
+ "name": {
13
+ "type": "string",
14
+ "minLength": 1
15
+ },
16
+ "secret": {
17
+ "type": "boolean",
18
+ "const": false
19
+ },
20
+ "value": {
21
+ "type": "string"
22
+ }
23
+ },
24
+ "required": ["name", "secret", "value"]
25
+ },
26
+ {
27
+ "type": "object",
28
+ "properties": {
29
+ "name": {
30
+ "type": "string",
31
+ "minLength": 1
32
+ },
33
+ "secret": {
34
+ "type": "boolean",
35
+ "const": true
36
+ },
37
+ "configured": {
38
+ "type": "boolean",
39
+ "const": true
40
+ },
41
+ "value": {
42
+ "not": {}
43
+ }
44
+ },
45
+ "required": ["name", "secret", "configured"]
46
+ },
47
+ {
48
+ "type": "object",
49
+ "properties": {
50
+ "name": {
51
+ "type": "string",
52
+ "minLength": 1
53
+ },
54
+ "suppressed": {
55
+ "type": "boolean",
56
+ "const": true
57
+ }
58
+ },
59
+ "required": ["name", "suppressed"]
60
+ }
61
+ ]
62
+ }
63
+ },
64
+ "createdAt": {
65
+ "type": "string",
66
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
67
+ },
68
+ "disabledAt": {
69
+ "type": "string",
70
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
71
+ },
72
+ "environmentKind": {
73
+ "type": "string",
74
+ "enum": ["test", "live"]
75
+ },
76
+ "id": {
77
+ "type": "string",
78
+ "pattern": "^ep_[0-9abcdefghjkmnpqrstvwxyz]{26}$"
79
+ },
80
+ "name": {
81
+ "type": "string",
82
+ "minLength": 1,
83
+ "maxLength": 2048
84
+ },
85
+ "project": {
86
+ "type": "string",
87
+ "pattern": "^proj_[0-9abcdefghjkmnpqrstvwxyz]{26}$"
88
+ },
89
+ "signingKeys": {
90
+ "type": "object",
91
+ "properties": {
92
+ "current": {
93
+ "type": "string",
94
+ "pattern": "^csk_[0-9abcdefghjkmnpqrstvwxyz]{26}$"
95
+ },
96
+ "next": {
97
+ "type": "object",
98
+ "properties": {
99
+ "acknowledgedAt": {
100
+ "type": "string",
101
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
102
+ },
103
+ "id": {
104
+ "type": "string",
105
+ "pattern": "^csk_[0-9abcdefghjkmnpqrstvwxyz]{26}$"
106
+ },
107
+ "overlapEndsAt": {
108
+ "type": "string",
109
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
110
+ }
111
+ },
112
+ "required": ["id", "overlapEndsAt"]
113
+ }
114
+ },
115
+ "required": ["current"]
116
+ },
117
+ "status": {
118
+ "type": "string",
119
+ "enum": ["active", "disabled"]
120
+ },
121
+ "updatedAt": {
122
+ "type": "string",
123
+ "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
124
+ },
125
+ "url": {
126
+ "type": "string",
127
+ "format": "uri"
128
+ },
129
+ "version": {
130
+ "type": "integer",
131
+ "exclusiveMinimum": 0,
132
+ "maximum": 9007199254740991
133
+ },
134
+ "created": {
135
+ "type": "boolean"
136
+ },
137
+ "signingSecret": {
138
+ "type": "object",
139
+ "properties": {
140
+ "guidance": {
141
+ "type": "string",
142
+ "minLength": 1
143
+ },
144
+ "returned": {
145
+ "type": "boolean",
146
+ "const": false
147
+ },
148
+ "revealUrl": {
149
+ "type": "string",
150
+ "format": "uri"
151
+ }
152
+ },
153
+ "required": ["guidance", "returned"]
154
+ }
155
+ },
156
+ "required": [
157
+ "createdAt",
158
+ "environmentKind",
159
+ "id",
160
+ "project",
161
+ "signingKeys",
162
+ "status",
163
+ "updatedAt",
164
+ "url",
165
+ "version",
166
+ "created",
167
+ "signingSecret"
168
+ ]
169
+ }
@@ -7,6 +7,65 @@
7
7
  "items": {
8
8
  "type": "object",
9
9
  "properties": {
10
+ "headers": {
11
+ "type": "array",
12
+ "items": {
13
+ "anyOf": [
14
+ {
15
+ "type": "object",
16
+ "properties": {
17
+ "name": {
18
+ "type": "string",
19
+ "minLength": 1
20
+ },
21
+ "secret": {
22
+ "type": "boolean",
23
+ "const": false
24
+ },
25
+ "value": {
26
+ "type": "string"
27
+ }
28
+ },
29
+ "required": ["name", "secret", "value"]
30
+ },
31
+ {
32
+ "type": "object",
33
+ "properties": {
34
+ "name": {
35
+ "type": "string",
36
+ "minLength": 1
37
+ },
38
+ "secret": {
39
+ "type": "boolean",
40
+ "const": true
41
+ },
42
+ "configured": {
43
+ "type": "boolean",
44
+ "const": true
45
+ },
46
+ "value": {
47
+ "not": {}
48
+ }
49
+ },
50
+ "required": ["name", "secret", "configured"]
51
+ },
52
+ {
53
+ "type": "object",
54
+ "properties": {
55
+ "name": {
56
+ "type": "string",
57
+ "minLength": 1
58
+ },
59
+ "suppressed": {
60
+ "type": "boolean",
61
+ "const": true
62
+ }
63
+ },
64
+ "required": ["name", "suppressed"]
65
+ }
66
+ ]
67
+ }
68
+ },
10
69
  "createdAt": {
11
70
  "type": "string",
12
71
  "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
@@ -2,6 +2,65 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "type": "object",
4
4
  "properties": {
5
+ "headers": {
6
+ "type": "array",
7
+ "items": {
8
+ "anyOf": [
9
+ {
10
+ "type": "object",
11
+ "properties": {
12
+ "name": {
13
+ "type": "string",
14
+ "minLength": 1
15
+ },
16
+ "secret": {
17
+ "type": "boolean",
18
+ "const": false
19
+ },
20
+ "value": {
21
+ "type": "string"
22
+ }
23
+ },
24
+ "required": ["name", "secret", "value"]
25
+ },
26
+ {
27
+ "type": "object",
28
+ "properties": {
29
+ "name": {
30
+ "type": "string",
31
+ "minLength": 1
32
+ },
33
+ "secret": {
34
+ "type": "boolean",
35
+ "const": true
36
+ },
37
+ "configured": {
38
+ "type": "boolean",
39
+ "const": true
40
+ },
41
+ "value": {
42
+ "not": {}
43
+ }
44
+ },
45
+ "required": ["name", "secret", "configured"]
46
+ },
47
+ {
48
+ "type": "object",
49
+ "properties": {
50
+ "name": {
51
+ "type": "string",
52
+ "minLength": 1
53
+ },
54
+ "suppressed": {
55
+ "type": "boolean",
56
+ "const": true
57
+ }
58
+ },
59
+ "required": ["name", "suppressed"]
60
+ }
61
+ ]
62
+ }
63
+ },
5
64
  "createdAt": {
6
65
  "type": "string",
7
66
  "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
@@ -5,6 +5,65 @@
5
5
  "endpoint": {
6
6
  "type": "object",
7
7
  "properties": {
8
+ "headers": {
9
+ "type": "array",
10
+ "items": {
11
+ "anyOf": [
12
+ {
13
+ "type": "object",
14
+ "properties": {
15
+ "name": {
16
+ "type": "string",
17
+ "minLength": 1
18
+ },
19
+ "secret": {
20
+ "type": "boolean",
21
+ "const": false
22
+ },
23
+ "value": {
24
+ "type": "string"
25
+ }
26
+ },
27
+ "required": ["name", "secret", "value"]
28
+ },
29
+ {
30
+ "type": "object",
31
+ "properties": {
32
+ "name": {
33
+ "type": "string",
34
+ "minLength": 1
35
+ },
36
+ "secret": {
37
+ "type": "boolean",
38
+ "const": true
39
+ },
40
+ "configured": {
41
+ "type": "boolean",
42
+ "const": true
43
+ },
44
+ "value": {
45
+ "not": {}
46
+ }
47
+ },
48
+ "required": ["name", "secret", "configured"]
49
+ },
50
+ {
51
+ "type": "object",
52
+ "properties": {
53
+ "name": {
54
+ "type": "string",
55
+ "minLength": 1
56
+ },
57
+ "suppressed": {
58
+ "type": "boolean",
59
+ "const": true
60
+ }
61
+ },
62
+ "required": ["name", "suppressed"]
63
+ }
64
+ ]
65
+ }
66
+ },
8
67
  "createdAt": {
9
68
  "type": "string",
10
69
  "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
@@ -2,6 +2,80 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "type": "object",
4
4
  "properties": {
5
+ "headers": {
6
+ "maxItems": 64,
7
+ "type": "array",
8
+ "items": {
9
+ "oneOf": [
10
+ {
11
+ "type": "object",
12
+ "properties": {
13
+ "action": {
14
+ "type": "string",
15
+ "const": "set"
16
+ },
17
+ "name": {
18
+ "type": "string",
19
+ "minLength": 1
20
+ },
21
+ "value": {
22
+ "type": "string"
23
+ },
24
+ "secret": {
25
+ "type": "boolean"
26
+ }
27
+ },
28
+ "required": ["action", "name", "value"],
29
+ "additionalProperties": false
30
+ },
31
+ {
32
+ "type": "object",
33
+ "properties": {
34
+ "action": {
35
+ "type": "string",
36
+ "const": "keep"
37
+ },
38
+ "name": {
39
+ "type": "string",
40
+ "minLength": 1
41
+ }
42
+ },
43
+ "required": ["action", "name"],
44
+ "additionalProperties": false
45
+ },
46
+ {
47
+ "type": "object",
48
+ "properties": {
49
+ "action": {
50
+ "type": "string",
51
+ "const": "remove"
52
+ },
53
+ "name": {
54
+ "type": "string",
55
+ "minLength": 1
56
+ }
57
+ },
58
+ "required": ["action", "name"],
59
+ "additionalProperties": false
60
+ },
61
+ {
62
+ "type": "object",
63
+ "properties": {
64
+ "action": {
65
+ "type": "string",
66
+ "const": "suppress"
67
+ },
68
+ "name": {
69
+ "type": "string",
70
+ "minLength": 1
71
+ }
72
+ },
73
+ "required": ["action", "name"],
74
+ "additionalProperties": false
75
+ }
76
+ ]
77
+ }
78
+ },
5
79
  "name": {
6
80
  "type": "string",
7
81
  "minLength": 1,
@@ -2,6 +2,65 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "type": "object",
4
4
  "properties": {
5
+ "headers": {
6
+ "type": "array",
7
+ "items": {
8
+ "anyOf": [
9
+ {
10
+ "type": "object",
11
+ "properties": {
12
+ "name": {
13
+ "type": "string",
14
+ "minLength": 1
15
+ },
16
+ "secret": {
17
+ "type": "boolean",
18
+ "const": false
19
+ },
20
+ "value": {
21
+ "type": "string"
22
+ }
23
+ },
24
+ "required": ["name", "secret", "value"]
25
+ },
26
+ {
27
+ "type": "object",
28
+ "properties": {
29
+ "name": {
30
+ "type": "string",
31
+ "minLength": 1
32
+ },
33
+ "secret": {
34
+ "type": "boolean",
35
+ "const": true
36
+ },
37
+ "configured": {
38
+ "type": "boolean",
39
+ "const": true
40
+ },
41
+ "value": {
42
+ "not": {}
43
+ }
44
+ },
45
+ "required": ["name", "secret", "configured"]
46
+ },
47
+ {
48
+ "type": "object",
49
+ "properties": {
50
+ "name": {
51
+ "type": "string",
52
+ "minLength": 1
53
+ },
54
+ "suppressed": {
55
+ "type": "boolean",
56
+ "const": true
57
+ }
58
+ },
59
+ "required": ["name", "suppressed"]
60
+ }
61
+ ]
62
+ }
63
+ },
5
64
  "createdAt": {
6
65
  "type": "string",
7
66
  "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
@@ -59,6 +59,7 @@
59
59
  "items": {
60
60
  "type": "string",
61
61
  "enum": [
62
+ "members:manage",
62
63
  "credentials:administer",
63
64
  "billing:write",
64
65
  "credentials:read",
@@ -57,6 +57,7 @@
57
57
  "items": {
58
58
  "type": "string",
59
59
  "enum": [
60
+ "members:manage",
60
61
  "credentials:administer",
61
62
  "billing:write",
62
63
  "credentials:read",
@@ -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,24 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "email": {
6
+ "type": "string",
7
+ "format": "email",
8
+ "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
9
+ },
10
+ "role": {
11
+ "type": "string",
12
+ "enum": ["admin", "member"]
13
+ },
14
+ "projects": {
15
+ "type": "array",
16
+ "items": {
17
+ "type": "string",
18
+ "pattern": "^proj_[0-9abcdefghjkmnpqrstvwxyz]{26}$"
19
+ }
20
+ }
21
+ },
22
+ "required": ["email", "role", "projects"],
23
+ "additionalProperties": false
24
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "id": {
6
+ "type": "string",
7
+ "pattern": "^inv_[0-9a-f]{26}$"
8
+ },
9
+ "email": {
10
+ "type": "string",
11
+ "format": "email",
12
+ "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
13
+ },
14
+ "role": {
15
+ "type": "string",
16
+ "enum": ["admin", "member"]
17
+ },
18
+ "projects": {
19
+ "type": "array",
20
+ "items": {
21
+ "type": "string",
22
+ "pattern": "^proj_[0-9abcdefghjkmnpqrstvwxyz]{26}$"
23
+ }
24
+ },
25
+ "status": {
26
+ "type": "string",
27
+ "enum": ["pending", "accepted", "revoked", "expired"]
28
+ }
29
+ },
30
+ "required": ["id", "email", "role", "projects", "status"]
31
+ }
@@ -0,0 +1,40 @@
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
+ "pattern": "^inv_[0-9a-f]{26}$"
13
+ },
14
+ "email": {
15
+ "type": "string",
16
+ "format": "email",
17
+ "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
18
+ },
19
+ "role": {
20
+ "type": "string",
21
+ "enum": ["admin", "member"]
22
+ },
23
+ "projects": {
24
+ "type": "array",
25
+ "items": {
26
+ "type": "string",
27
+ "pattern": "^proj_[0-9abcdefghjkmnpqrstvwxyz]{26}$"
28
+ }
29
+ },
30
+ "status": {
31
+ "type": "string",
32
+ "enum": ["pending", "accepted", "revoked", "expired"]
33
+ }
34
+ },
35
+ "required": ["id", "email", "role", "projects", "status"]
36
+ }
37
+ }
38
+ },
39
+ "required": ["data"]
40
+ }
@@ -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,6 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {},
5
+ "additionalProperties": false
6
+ }