|
3 | 3 | "$schema": "https://json-schema.org/draft/2020-12/schema",
|
4 | 4 | "type": "object",
|
5 | 5 | "title": "Endpoint",
|
6 |
| - "description": "Restate endpoint manifest v1", |
| 6 | + "description": "Restate endpoint manifest v3", |
7 | 7 | "properties": {
|
8 | 8 | "protocolMode": {
|
9 | 9 | "title": "ProtocolMode",
|
10 |
| - "enum": ["BIDI_STREAM", "REQUEST_RESPONSE"] |
| 10 | + "enum": [ |
| 11 | + "BIDI_STREAM", |
| 12 | + "REQUEST_RESPONSE" |
| 13 | + ] |
11 | 14 | },
|
12 | 15 | "minProtocolVersion": {
|
13 | 16 | "type": "integer",
|
|
31 | 34 | "type": "string",
|
32 | 35 | "pattern": "^([a-zA-Z]|_[a-zA-Z0-9])[a-zA-Z0-9._-]*$"
|
33 | 36 | },
|
| 37 | + "documentation": { |
| 38 | + "type": "string", |
| 39 | + "description": "Documentation for this service definition. No format is enforced, but generally Markdown is assumed." |
| 40 | + }, |
34 | 41 | "ty": {
|
35 | 42 | "title": "ServiceType",
|
36 |
| - "enum": ["VIRTUAL_OBJECT", "SERVICE", "WORKFLOW"] |
| 43 | + "enum": [ |
| 44 | + "VIRTUAL_OBJECT", |
| 45 | + "SERVICE", |
| 46 | + "WORKFLOW" |
| 47 | + ] |
37 | 48 | },
|
38 | 49 | "handlers": {
|
39 | 50 | "type": "array",
|
|
45 | 56 | "type": "string",
|
46 | 57 | "pattern": "^([a-zA-Z]|_[a-zA-Z0-9])[a-zA-Z0-9_]*$"
|
47 | 58 | },
|
| 59 | + "documentation": { |
| 60 | + "type": "string", |
| 61 | + "description": "Documentation for this handler definition. No format is enforced, but generally Markdown is assumed." |
| 62 | + }, |
48 | 63 | "ty": {
|
49 | 64 | "title": "HandlerType",
|
50 |
| - "enum": ["WORKFLOW", "EXCLUSIVE", "SHARED"], |
| 65 | + "enum": [ |
| 66 | + "WORKFLOW", |
| 67 | + "EXCLUSIVE", |
| 68 | + "SHARED" |
| 69 | + ], |
51 | 70 | "description": "If unspecified, defaults to EXCLUSIVE for Virtual Object or WORKFLOW for Workflows. This should be unset for Services."
|
52 | 71 | },
|
53 | 72 | "input": {
|
|
122 | 141 | "setContentTypeIfEmpty": true
|
123 | 142 | }
|
124 | 143 | }
|
| 144 | + }, |
| 145 | + "inactivityTimeout": { |
| 146 | + "type": "integer", |
| 147 | + "minimum": 0, |
| 148 | + "description": "Inactivity timeout duration, expressed in milliseconds." |
| 149 | + }, |
| 150 | + "abortTimeout": { |
| 151 | + "type": "integer", |
| 152 | + "minimum": 0, |
| 153 | + "description": "Abort timeout duration, expressed in milliseconds." |
| 154 | + }, |
| 155 | + "journalRetention": { |
| 156 | + "type": "integer", |
| 157 | + "minimum": 0, |
| 158 | + "description": "Journal retention duration, expressed in milliseconds." |
| 159 | + }, |
| 160 | + "idempotencyRetention": { |
| 161 | + "type": "integer", |
| 162 | + "minimum": 0, |
| 163 | + "description": "Idempotency retention duration, expressed in milliseconds. This is NOT VALID when HandlerType == WORKFLOW" |
| 164 | + }, |
| 165 | + "workflowCompletionRetention": { |
| 166 | + "type": "integer", |
| 167 | + "minimum": 0, |
| 168 | + "description": "Workflow completion retention duration, expressed in milliseconds. This is valid ONLY when HandlerType == WORKFLOW" |
| 169 | + }, |
| 170 | + "enableLazyState": { |
| 171 | + "type": "boolean", |
| 172 | + "description": "If true, lazy state is enabled." |
| 173 | + }, |
| 174 | + "ingressPrivate": { |
| 175 | + "type": "boolean", |
| 176 | + "description": "If true, the service cannot be invoked from the HTTP nor Kafka ingress." |
| 177 | + }, |
| 178 | + "metadata": { |
| 179 | + "type": "object", |
| 180 | + "description": "Custom metadata of this handler definition. This metadata is shown on the Admin API when querying the service/handler definition.", |
| 181 | + "additionalProperties": { |
| 182 | + "type": "string" |
| 183 | + } |
125 | 184 | }
|
126 | 185 | },
|
127 |
| - "required": ["name"], |
| 186 | + "required": [ |
| 187 | + "name" |
| 188 | + ], |
128 | 189 | "additionalProperties": false
|
129 | 190 | }
|
| 191 | + }, |
| 192 | + "inactivityTimeout": { |
| 193 | + "type": "integer", |
| 194 | + "minimum": 0, |
| 195 | + "description": "Inactivity timeout duration, expressed in milliseconds." |
| 196 | + }, |
| 197 | + "abortTimeout": { |
| 198 | + "type": "integer", |
| 199 | + "minimum": 0, |
| 200 | + "description": "Abort timeout duration, expressed in milliseconds." |
| 201 | + }, |
| 202 | + "journalRetention": { |
| 203 | + "type": "integer", |
| 204 | + "minimum": 0, |
| 205 | + "description": "Journal retention duration, expressed in milliseconds." |
| 206 | + }, |
| 207 | + "idempotencyRetention": { |
| 208 | + "type": "integer", |
| 209 | + "minimum": 0, |
| 210 | + "description": "Idempotency retention duration, expressed in milliseconds. When ServiceType == WORKFLOW, this option will be applied only to the shared handlers. See workflowCompletionRetention for more details." |
| 211 | + }, |
| 212 | + "enableLazyState": { |
| 213 | + "type": "boolean", |
| 214 | + "description": "If true, lazy state is enabled." |
| 215 | + }, |
| 216 | + "ingressPrivate": { |
| 217 | + "type": "boolean", |
| 218 | + "description": "If true, the service cannot be invoked from the HTTP nor Kafka ingress." |
| 219 | + }, |
| 220 | + "metadata": { |
| 221 | + "type": "object", |
| 222 | + "description": "Custom metadata of this service definition. This metadata is shown on the Admin API when querying the service definition.", |
| 223 | + "additionalProperties": { |
| 224 | + "type": "string" |
| 225 | + } |
130 | 226 | }
|
131 | 227 | },
|
132 |
| - "required": ["name", "ty", "handlers"], |
| 228 | + "required": [ |
| 229 | + "name", |
| 230 | + "ty", |
| 231 | + "handlers" |
| 232 | + ], |
133 | 233 | "additionalProperties": false
|
134 | 234 | }
|
135 | 235 | }
|
136 | 236 | },
|
137 |
| - "required": ["minProtocolVersion", "maxProtocolVersion", "services"], |
| 237 | + "required": [ |
| 238 | + "minProtocolVersion", |
| 239 | + "maxProtocolVersion", |
| 240 | + "services" |
| 241 | + ], |
138 | 242 | "additionalProperties": false
|
139 | 243 | }
|
0 commit comments