@takeshape/schema 8.143.2 → 8.144.1

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 (61) hide show
  1. package/dist/migration/index.d.ts +1 -0
  2. package/dist/migration/index.d.ts.map +1 -1
  3. package/dist/migration/index.js +4 -1
  4. package/dist/migration/to/v3.17.1.d.ts +5 -0
  5. package/dist/migration/to/v3.17.1.d.ts.map +1 -0
  6. package/dist/migration/to/v3.17.1.js +18 -0
  7. package/dist/project-schema/index.d.ts +4 -1
  8. package/dist/project-schema/index.d.ts.map +1 -1
  9. package/dist/project-schema/index.js +20 -3
  10. package/dist/project-schema/latest.d.ts +2 -1
  11. package/dist/project-schema/latest.d.ts.map +1 -1
  12. package/dist/project-schema/migrate.d.ts.map +1 -1
  13. package/dist/project-schema/migrate.js +4 -0
  14. package/dist/project-schema/v3.17.1.d.ts +1469 -0
  15. package/dist/project-schema/v3.17.1.d.ts.map +1 -0
  16. package/dist/project-schema/v3.17.1.js +5 -0
  17. package/dist/schemas/index.d.ts +2 -2
  18. package/dist/schemas/index.d.ts.map +1 -1
  19. package/dist/schemas/index.js +6 -4
  20. package/dist/schemas/index.ts +4 -2
  21. package/dist/schemas/project-schema/latest.json +2195 -2191
  22. package/dist/schemas/project-schema/v3.17.1.json +2370 -0
  23. package/dist/schemas/project-schema.json +3 -0
  24. package/dist/types/types.d.ts +2 -2
  25. package/dist/types/types.d.ts.map +1 -1
  26. package/es/migration/index.js +3 -1
  27. package/es/migration/to/v3.17.1.js +10 -0
  28. package/es/project-schema/index.js +3 -1
  29. package/es/project-schema/migrate.js +5 -1
  30. package/es/project-schema/v3.17.1.js +1 -0
  31. package/es/schemas/index.js +4 -3
  32. package/es/schemas/index.ts +4 -2
  33. package/es/schemas/project-schema/latest.json +2195 -2191
  34. package/es/schemas/project-schema/v3.17.1.json +2370 -0
  35. package/es/schemas/project-schema.json +3 -0
  36. package/examples/latest/betzino.json +1 -1
  37. package/examples/latest/blog-schema.json +1 -1
  38. package/examples/latest/brewery-schema.json +1 -1
  39. package/examples/latest/complex-project-schema.json +1 -1
  40. package/examples/latest/fabric-ecommerce.json +1 -1
  41. package/examples/latest/frank-and-fred-schema.json +1 -1
  42. package/examples/latest/massive-schema.json +1 -1
  43. package/examples/latest/mill-components-schema.json +1 -1
  44. package/examples/latest/pet-oneof-array.json +1 -1
  45. package/examples/latest/post-schema.json +1 -1
  46. package/examples/latest/pruned-shopify-product-schema.json +1 -1
  47. package/examples/latest/real-world-schema.json +1 -1
  48. package/examples/latest/recursive-repeater-schema.json +1 -1
  49. package/examples/latest/recursive-schema.json +1 -1
  50. package/examples/latest/rick-and-morty-ast.json +1 -1
  51. package/examples/latest/rick-and-morty-graphql.json +1 -1
  52. package/examples/latest/rick-and-morty-rest.json +1 -1
  53. package/examples/latest/schema-with-repeater-draftjs.json +1 -1
  54. package/examples/latest/shape-books-v3_2_0.json +1 -1
  55. package/examples/latest/shape-books.json +1 -1
  56. package/examples/latest/shopify-lookbook.json +1 -1
  57. package/examples/latest/shopify-store-with-widget.json +1 -1
  58. package/examples/latest/stripe-starter-resolved.json +1 -1
  59. package/examples/latest/user-schema-no-required.json +1 -1
  60. package/examples/latest/user-schema-with-defaults.json +1 -1
  61. package/package.json +4 -4
@@ -1,2366 +1,2370 @@
1
1
  {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "https://schema.takeshape.io/project-schema/v3.17.0#",
4
- "title": "Project Schema",
5
- "definitions": {
6
- "schemaArray": {
7
- "title": "Schema Array",
8
- "type": "array",
9
- "minItems": 1,
10
- "items": {
11
- "$ref": "#/definitions/propertySchema"
12
- }
13
- },
14
- "nonNegativeInteger": {
15
- "title": "Non Negative Integer",
16
- "type": "integer",
17
- "minimum": 0
18
- },
19
- "nonNegativeIntegerDefault0": {
20
- "title": "Non Negative Integer Default 0",
21
- "allOf": [
22
- {
23
- "$ref": "#/definitions/nonNegativeInteger"
24
- },
25
- {
26
- "default": 0
27
- }
28
- ]
29
- },
30
- "simpleTypes": {
31
- "title": "Simple Types",
32
- "enum": ["array", "boolean", "integer", "null", "number", "object", "string"]
33
- },
34
- "stringArray": {
35
- "title": "String Array",
36
- "type": "array",
37
- "items": {
38
- "type": "string"
39
- },
40
- "uniqueItems": true,
41
- "default": []
42
- },
43
- "relationship": {
44
- "title": "Relationship",
45
- "type": "object",
46
- "properties": {
47
- "shapeIds": {
48
- "type": "array",
49
- "items": {
50
- "type": "string"
51
- },
52
- "minItems": 1
53
- },
54
- "type": {
55
- "type": "string"
56
- },
57
- "relatedName": {
58
- "type": "string",
59
- "pattern": "^[_a-zA-Z][_a-zA-Z0-9]*$"
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://schema.takeshape.io/project-schema/v3.17.1#",
4
+ "title": "Project Schema",
5
+ "definitions": {
6
+ "schemaArray": {
7
+ "title": "Schema Array",
8
+ "type": "array",
9
+ "minItems": 1,
10
+ "items": {
11
+ "$ref": "#/definitions/propertySchema"
60
12
  }
61
13
  },
62
- "required": ["shapeIds"],
63
- "additionalProperties": false
64
- },
65
- "backreference": {
66
- "title": "Back Reference",
67
- "description": "A configuration object for a reverse reference in a relationship.",
68
- "type": "object",
69
- "properties": {
70
- "enabled": {
71
- "type": "boolean"
72
- },
73
- "name": {
74
- "type": "string",
75
- "pattern": "^[_a-zA-Z][_a-zA-Z0-9]*$"
76
- }
14
+ "nonNegativeInteger": {
15
+ "title": "Non Negative Integer",
16
+ "type": "integer",
17
+ "minimum": 0
77
18
  },
78
- "additionalProperties": false,
79
- "required": ["enabled"]
80
- },
81
- "input": {
82
- "title": "Input",
83
- "description": "A PropertySchema providing an alternative shape for a GraphQL input type.",
84
- "$ref": "#/definitions/propertySchema"
85
- },
86
- "mappingString": {
87
- "title": "Mapping String",
88
- "type": "string",
89
- "pattern": "^[\\w-]+(?::[\\w-]+)+(?:\\.[\\w-]+)+$"
90
- },
91
- "fieldMapping": {
92
- "title": "Field Mapping",
93
- "oneOf": [
94
- {
95
- "$ref": "#/definitions/mappingString"
96
- },
97
- {
98
- "type": "array",
99
- "items": {
100
- "$ref": "#/definitions/mappingString"
19
+ "nonNegativeIntegerDefault0": {
20
+ "title": "Non Negative Integer Default 0",
21
+ "allOf": [
22
+ {
23
+ "$ref": "#/definitions/nonNegativeInteger"
24
+ },
25
+ {
26
+ "default": 0
101
27
  }
102
- }
103
- ]
104
- },
105
- "refSchema": {
106
- "title": "Ref Schema",
107
- "type": "object",
108
- "properties": {
109
- "@ref": {
110
- "$ref": "#/definitions/ref"
111
- }
112
- },
113
- "required": ["@ref"]
114
- },
115
- "refSchemaLegacy": {
116
- "title": "Ref Schema Legacy",
117
- "type": "object",
118
- "properties": {
119
- "$ref": {
120
- "$ref": "#/definitions/ref"
121
- }
28
+ ]
122
29
  },
123
- "required": ["$ref"]
124
- },
125
- "shapeSchemaEnum": {
126
- "title": "Shape Schema Enum",
127
- "type": "object",
128
- "properties": {
129
- "enum": {
130
- "type": "array",
131
- "items": {
132
- "type": "string"
133
- },
134
- "minItems": 1
135
- }
30
+ "simpleTypes": {
31
+ "title": "Simple Types",
32
+ "enum": ["array", "boolean", "integer", "null", "number", "object", "string"]
136
33
  },
137
- "additionalProperties": false,
138
- "required": ["enum"]
139
- },
140
- "objectSchema": {
141
- "title": "Object Schema",
142
- "type": "object",
143
- "allOf": [
144
- {
145
- "$ref": "#/definitions/propertySchema"
34
+ "stringArray": {
35
+ "title": "String Array",
36
+ "type": "array",
37
+ "items": {
38
+ "type": "string"
146
39
  },
147
- {
148
- "properties": {
149
- "type": {
150
- "type": "string",
151
- "const": "object"
40
+ "uniqueItems": true,
41
+ "default": []
42
+ },
43
+ "relationship": {
44
+ "title": "Relationship",
45
+ "type": "object",
46
+ "properties": {
47
+ "shapeIds": {
48
+ "type": "array",
49
+ "items": {
50
+ "type": "string"
152
51
  },
153
- "properties": {
154
- "type": "object",
155
- "additionalProperties": {
156
- "$ref": "#/definitions/propertySchema"
157
- }
158
- }
52
+ "minItems": 1
159
53
  },
160
- "required": ["type", "properties"]
161
- }
162
- ]
163
- },
164
- "returnShapeArraySchema": {
165
- "title": "Return Shape Array Schema",
166
- "type": "object",
167
- "allOf": [
168
- {
169
- "$ref": "#/definitions/propertySchema"
54
+ "type": {
55
+ "type": "string"
56
+ },
57
+ "relatedName": {
58
+ "type": "string",
59
+ "pattern": "^[_a-zA-Z][_a-zA-Z0-9]*$"
60
+ }
170
61
  },
171
- {
172
- "properties": {
173
- "type": {
174
- "type": "string",
175
- "const": "array"
176
- },
177
- "items": {
178
- "oneOf": [
179
- {"$ref": "#/definitions/refSchema"},
180
- {
181
- "type": "object",
182
- "properties": {
183
- "type": {
184
- "enum": ["boolean", "integer", "number", "string"]
185
- }
186
- },
187
- "required": ["type"]
188
- }
189
- ]
190
- }
62
+ "required": ["shapeIds"],
63
+ "additionalProperties": false
64
+ },
65
+ "backreference": {
66
+ "title": "Back Reference",
67
+ "description": "A configuration object for a reverse reference in a relationship.",
68
+ "type": "object",
69
+ "properties": {
70
+ "enabled": {
71
+ "type": "boolean"
191
72
  },
192
- "required": ["type", "items"]
193
- }
194
- ]
195
- },
196
- "objectOrRefArray": {
197
- "title": "ObjectOrRefArray",
198
- "type": "array",
199
- "items": {
73
+ "name": {
74
+ "type": "string",
75
+ "pattern": "^[_a-zA-Z][_a-zA-Z0-9]*$"
76
+ }
77
+ },
78
+ "additionalProperties": false,
79
+ "required": ["enabled"]
80
+ },
81
+ "input": {
82
+ "title": "Input",
83
+ "description": "A PropertySchema providing an alternative shape for a GraphQL input type.",
84
+ "$ref": "#/definitions/propertySchema"
85
+ },
86
+ "mappingString": {
87
+ "title": "Mapping String",
88
+ "type": "string",
89
+ "pattern": "^[\\w-]+(?::[\\w-]+)+(?:\\.[\\w-]+)+$"
90
+ },
91
+ "fieldMapping": {
92
+ "title": "Field Mapping",
200
93
  "oneOf": [
201
94
  {
202
- "$ref": "#/definitions/refSchema"
203
- },
204
- {
205
- "$ref": "#/definitions/refSchemaLegacy"
95
+ "$ref": "#/definitions/mappingString"
206
96
  },
207
97
  {
208
- "$ref": "#/definitions/objectSchema"
209
- }
210
- ],
211
- "unevaluatedProperties": true
212
- }
213
- },
214
- "shapeSchemaAllOf": {
215
- "title": "Shape Schema All Of",
216
- "type": "object",
217
- "properties": {
218
- "allOf": {"$ref": "#/definitions/objectOrRefArray"}
219
- },
220
- "required": ["allOf"],
221
- "additionalProperties": false
222
- },
223
- "allOfSchema": {
224
- "title": "AllOfSchema",
225
- "allOf": [
226
- {"$ref": "#/definitions/propertySchema"},
227
- {
228
- "type": "object",
229
- "properties": {
230
- "allOf": {"$ref": "#/definitions/objectOrRefArray"}
231
- },
232
- "required": ["allOf"]
233
- }
234
- ]
235
- },
236
- "shapeSchemaExtends": {
237
- "title": "ShapeSchemaExtends",
238
- "type": "object",
239
- "properties": {
240
- "extends": {"$ref": "#/definitions/objectOrRefArray"}
241
- },
242
- "required": ["extends"],
243
- "additionalProperties": false
244
- },
245
- "extendsSchema": {
246
- "title": "ExtendsSchema",
247
- "allOf": [
248
- {"$ref": "#/definitions/propertySchema"},
249
- {
250
- "type": "object",
251
- "properties": {
252
- "extends": {"$ref": "#/definitions/objectOrRefArray"}
253
- },
254
- "required": ["extends"]
255
- }
256
- ]
257
- },
258
- "shapeSchemaOneOf": {
259
- "title": "Shape Schema One Of",
260
- "type": "object",
261
- "properties": {
262
- "oneOf": {"$ref": "#/definitions/objectOrRefArray"}
263
- },
264
- "required": ["oneOf"],
265
- "additionalProperties": false
266
- },
267
- "oneOfSchema": {
268
- "title": "OneOfSchema",
269
- "allOf": [
270
- {"$ref": "#/definitions/propertySchema"},
271
- {
272
- "type": "object",
273
- "properties": {
274
- "oneOf": {"$ref": "#/definitions/objectOrRefArray"}
275
- },
276
- "required": ["oneOf"],
277
- "additionalProperties": false
278
- }
279
- ]
280
- },
281
- "shapeSchema": {
282
- "title": "Shape Schema",
283
- "type": "object",
284
- "oneOf": [
285
- {"$ref": "#/definitions/shapeSchemaAllOf"},
286
- {"$ref": "#/definitions/shapeSchemaExtends"},
287
- {"$ref": "#/definitions/shapeSchemaOneOf"},
288
- {"$ref": "#/definitions/shapeSchemaEnum"},
289
- {"$ref": "#/definitions/objectSchema"}
290
- ]
291
- },
292
- "queryMap": {
293
- "title": "Query Map",
294
- "type": "object",
295
- "patternProperties": {
296
- "[0-9A-Za-z_-]+": {
297
- "$ref": "#/definitions/query"
298
- }
299
- }
300
- },
301
- "args": {
302
- "title": "Args",
303
- "oneOf": [{"type": "string"}, {"$ref": "#/definitions/objectSchema"}]
304
- },
305
- "returnShape": {
306
- "title": "Return Shape",
307
- "oneOf": [{"type": "string"}, {"$ref": "#/definitions/returnShapeArraySchema"}]
308
- },
309
- "directiveConfigItem": {
310
- "title": "Directive Config Item",
311
- "description": "A tuple with a string directive name, and options to pass to the directive",
312
- "type": "array",
313
- "items": [
314
- {
315
- "title": "Directive Name",
316
- "type": "string"
317
- },
318
- {
319
- "title": "Directive Options",
320
- "type": "object",
321
- "propertyNames": {
322
- "pattern": "[0-9A-Za-z_-]+"
98
+ "type": "array",
99
+ "items": {
100
+ "$ref": "#/definitions/mappingString"
101
+ }
323
102
  }
324
- }
325
- ]
326
- },
327
- "parameterSerializeStyleOptions": {
328
- "title": "Parameter Serialize Style Options",
329
- "description": "All possible options for the more specific ParameterSerializeStyleOptions types.",
330
- "type": "object",
331
- "properties": {
332
- "style": {
333
- "type": "string",
334
- "enum": ["simple", "label", "matrix", "form", "spaceDelimited", "pipeDelimited", "deepObject", "none"]
335
- },
336
- "explode": {
337
- "type": "boolean"
338
- },
339
- "allowEmptyValue": {
340
- "type": "boolean"
341
- },
342
- "allowReserved": {
343
- "description": "The allowReserved keyword specifies whether the reserved characters :/?#[]@!$&'()*+,;= in parameter values are allowed to be sent as they are.",
344
- "type": "boolean"
345
- },
346
- "skipEncoding": {
347
- "type": "boolean"
348
- }
349
- },
350
- "required": ["style"],
351
- "additionalProperties": false
352
- },
353
- "parameterSerializeStyleOptionsForPathParams": {
354
- "title": "Parameter Serialize Style Options For Path Params",
355
- "description": "Options to be passed to the serialization routine.",
356
- "type": "object",
357
- "properties": {
358
- "style": {
359
- "type": "string",
360
- "enum": ["simple", "label", "matrix", "none"]
361
- },
362
- "explode": {
363
- "type": "boolean"
364
- },
365
- "allowEmptyValue": {
366
- "type": "boolean"
367
- },
368
- "allowReserved": {
369
- "description": "The allowReserved keyword specifies whether the reserved characters :/?#[]@!$&'()*+,;= in parameter values are allowed to be sent as they are.",
370
- "type": "boolean"
371
- },
372
- "skipEncoding": {
373
- "type": "boolean"
374
- }
103
+ ]
375
104
  },
376
- "required": ["style"],
377
- "additionalProperties": false
378
- },
379
- "parameterSerializeStyleOptionsForSearchParams": {
380
- "title": "Parameter Serialize Style Options For Search Params",
381
- "description": "Options to be passed to the serialization routine.",
382
- "type": "object",
383
- "properties": {
384
- "style": {
385
- "type": "string",
386
- "enum": ["form", "spaceDelimited", "pipeDelimited", "deepObject", "none"]
387
- },
388
- "explode": {
389
- "type": "boolean"
390
- },
391
- "allowEmptyValue": {
392
- "type": "boolean"
393
- },
394
- "allowReserved": {
395
- "description": "The allowReserved keyword specifies whether the reserved characters :/?#[]@!$&'()*+,;= in parameter values are allowed to be sent as they are.",
396
- "type": "boolean"
105
+ "refSchema": {
106
+ "title": "Ref Schema",
107
+ "type": "object",
108
+ "properties": {
109
+ "@ref": {
110
+ "$ref": "#/definitions/ref"
111
+ }
397
112
  },
398
- "skipEncoding": {
399
- "type": "boolean"
400
- }
113
+ "required": ["@ref"]
401
114
  },
402
- "required": ["style"],
403
- "additionalProperties": false
404
- },
405
- "parameterSerializeStyleOptionsForHeaders": {
406
- "title": "Parameter Serialize Style Options For Headers",
407
- "description": "Options to be passed to the serialization routine.",
408
- "type": "object",
409
- "properties": {
410
- "style": {
411
- "type": "string",
412
- "enum": ["simple", "none"]
115
+ "refSchemaLegacy": {
116
+ "title": "Ref Schema Legacy",
117
+ "type": "object",
118
+ "properties": {
119
+ "$ref": {
120
+ "$ref": "#/definitions/ref"
121
+ }
413
122
  },
414
- "explode": {
415
- "type": "boolean"
416
- }
123
+ "required": ["$ref"]
417
124
  },
418
- "required": ["style"],
419
- "additionalProperties": false
420
- },
421
- "parameterSerializeContentOptions": {
422
- "title": "Parameter Serialize Content Options",
423
- "description": "Options to be passed to the serialization routine.",
424
- "type": "object",
425
- "properties": {
426
- "contentType": {
427
- "type": "string"
428
- },
429
- "allowReserved": {
430
- "description": "The allowReserved keyword specifies whether the reserved characters :/?#[]@!$&'()*+,;= in parameter values are allowed to be sent as they are.",
431
- "type": "boolean"
432
- },
433
- "skipEncoding": {
434
- "type": "boolean"
125
+ "shapeSchemaEnum": {
126
+ "title": "Shape Schema Enum",
127
+ "type": "object",
128
+ "properties": {
129
+ "enum": {
130
+ "type": "array",
131
+ "items": {
132
+ "type": "string"
133
+ },
134
+ "minItems": 1
135
+ }
435
136
  },
436
- "options": {
437
- "description": "Options to be passed directly to the content serializer library. Valid options depend upon your contentType.",
438
- "type": "object"
439
- }
137
+ "additionalProperties": false,
138
+ "required": ["enum"]
440
139
  },
441
- "required": ["contentType"],
442
- "additionalProperties": false
443
- },
444
- "parameterSerializeOptions": {
445
- "title": "Parameter Serialize Options",
446
- "description": "Options to be passed to the serialization routine.",
447
- "type": "object",
448
- "oneOf": [
449
- {
450
- "$ref": "#/definitions/parameterSerializeStyleOptions"
451
- },
452
- {
453
- "$ref": "#/definitions/parameterSerializeContentOptions"
454
- }
455
- ]
456
- },
457
- "parameterSerializeConfig": {
458
- "title": "Parameter Serialize Config",
459
- "description": "All possible options for the more specific ParameterSerializeConfig types.",
460
- "type": "object",
461
- "properties": {
462
- "content": {
463
- "$ref": "#/definitions/parameterSerializeContentOptions"
464
- },
465
- "defaults": {
466
- "$ref": "#/definitions/parameterSerializeOptions"
467
- },
468
- "paths": {
469
- "type": "object",
470
- "patternProperties": {
471
- "^[^\\n\\r]*$": {"$ref": "#/definitions/parameterSerializeOptions"}
140
+ "objectSchema": {
141
+ "title": "Object Schema",
142
+ "type": "object",
143
+ "allOf": [
144
+ {
145
+ "$ref": "#/definitions/propertySchema"
146
+ },
147
+ {
148
+ "properties": {
149
+ "type": {
150
+ "type": "string",
151
+ "const": "object"
152
+ },
153
+ "properties": {
154
+ "type": "object",
155
+ "additionalProperties": {
156
+ "$ref": "#/definitions/propertySchema"
157
+ }
158
+ }
159
+ },
160
+ "required": ["type", "properties"]
472
161
  }
473
- }
474
- },
475
- "additionalProperties": false
476
- },
477
- "parameterSerializeConfigForBody": {
478
- "title": "Parameter Serialize Config For Body",
479
- "description": "Top-level paths to use serialization options for.",
480
- "type": "object",
481
- "properties": {
482
- "content": {
483
- "$ref": "#/definitions/parameterSerializeContentOptions"
484
- }
162
+ ]
485
163
  },
486
- "additionalProperties": false
487
- },
488
- "parameterSerializeConfigForPathParams": {
489
- "title": "Parameter Serialize Config For Path Params",
490
- "description": "Top-level paths to use path params serialization options for.",
491
- "type": "object",
492
- "properties": {
493
- "template": {
494
- "description": "For generating the path using tokens frpm the ParameterOps, e.g., '/products/{productId}'",
495
- "type": "string"
496
- },
497
- "defaults": {
498
- "oneOf": [
499
- {
500
- "$ref": "#/definitions/parameterSerializeStyleOptionsForPathParams"
164
+ "returnShapeArraySchema": {
165
+ "title": "Return Shape Array Schema",
166
+ "type": "object",
167
+ "allOf": [
168
+ {
169
+ "$ref": "#/definitions/propertySchema"
170
+ },
171
+ {
172
+ "properties": {
173
+ "type": {
174
+ "type": "string",
175
+ "const": "array"
176
+ },
177
+ "items": {
178
+ "oneOf": [
179
+ {"$ref": "#/definitions/refSchema"},
180
+ {
181
+ "type": "object",
182
+ "properties": {
183
+ "type": {
184
+ "enum": ["boolean", "integer", "number", "string"]
185
+ }
186
+ },
187
+ "required": ["type"]
188
+ }
189
+ ]
190
+ }
501
191
  },
502
- {
503
- "$ref": "#/definitions/parameterSerializeContentOptions"
504
- }
505
- ]
506
- },
507
- "paths": {
508
- "type": "object",
509
- "patternProperties": {
510
- "^[^\\n\\r]*$": {
511
- "oneOf": [
512
- {
513
- "$ref": "#/definitions/parameterSerializeStyleOptionsForPathParams"
514
- },
515
- {
516
- "$ref": "#/definitions/parameterSerializeContentOptions"
517
- }
518
- ]
519
- }
192
+ "required": ["type", "items"]
520
193
  }
521
- }
194
+ ]
522
195
  },
523
- "required": ["template"],
524
- "additionalProperties": false
525
- },
526
- "parameterSerializeConfigForSearchParams": {
527
- "title": "Parameter Serialize Config For Search Params",
528
- "description": "Top-level paths to use search params serialization options for.",
529
- "type": "object",
530
- "properties": {
531
- "defaults": {
196
+ "objectOrRefArray": {
197
+ "title": "ObjectOrRefArray",
198
+ "type": "array",
199
+ "items": {
532
200
  "oneOf": [
533
201
  {
534
- "$ref": "#/definitions/parameterSerializeStyleOptionsForSearchParams"
202
+ "$ref": "#/definitions/refSchema"
535
203
  },
536
204
  {
537
- "$ref": "#/definitions/parameterSerializeContentOptions"
538
- }
539
- ]
540
- },
541
- "paths": {
542
- "type": "object",
543
- "patternProperties": {
544
- "^[^\\n\\r]*$": {
545
- "oneOf": [
546
- {
547
- "$ref": "#/definitions/parameterSerializeStyleOptionsForSearchParams"
548
- },
549
- {
550
- "$ref": "#/definitions/parameterSerializeContentOptions"
551
- }
552
- ]
553
- }
554
- }
555
- }
556
- },
557
- "additionalProperties": false
558
- },
559
- "parameterSerializeConfigForHeaders": {
560
- "title": "Parameter Serialize Config For Headers",
561
- "description": "Top-level paths to use headers serialization options for.",
562
- "type": "object",
563
- "properties": {
564
- "defaults": {
565
- "oneOf": [
566
- {
567
- "$ref": "#/definitions/parameterSerializeStyleOptionsForHeaders"
205
+ "$ref": "#/definitions/refSchemaLegacy"
568
206
  },
569
207
  {
570
- "$ref": "#/definitions/parameterSerializeContentOptions"
571
- }
572
- ]
573
- },
574
- "paths": {
575
- "type": "object",
576
- "patternProperties": {
577
- "^[^\\n\\r]*$": {
578
- "oneOf": [
579
- {
580
- "$ref": "#/definitions/parameterSerializeStyleOptionsForHeaders"
581
- },
582
- {
583
- "$ref": "#/definitions/parameterSerializeContentOptions"
584
- }
585
- ]
208
+ "$ref": "#/definitions/objectSchema"
586
209
  }
587
- }
210
+ ],
211
+ "unevaluatedProperties": true
588
212
  }
589
213
  },
590
- "additionalProperties": false
591
- },
592
- "parameterOpNested": {
593
- "title": "Parameter Op Nested",
594
- "description": "An object describing an operation to generate a parameter, using a nested OpList.",
595
- "type": "object",
596
- "properties": {
597
- "path": {
598
- "description": "A path to the parameter for this operation.",
599
- "type": "string",
600
- "minLength": 1,
601
- "pattern": "^[^\\n\\r]*$"
602
- },
603
- "op": {
604
- "description": "A mode for this parameter's operation.",
605
- "type": "string",
606
- "enum": ["set", "concat", "extend", "remove"]
214
+ "shapeSchemaAllOf": {
215
+ "title": "Shape Schema All Of",
216
+ "type": "object",
217
+ "properties": {
218
+ "allOf": {"$ref": "#/definitions/objectOrRefArray"}
607
219
  },
608
- "ops": {
609
- "description": "A nested op list.",
610
- "$ref": "#/definitions/parameterOpList"
611
- }
220
+ "required": ["allOf"],
221
+ "additionalProperties": false
612
222
  },
613
- "required": ["path", "ops"],
614
- "additionalProperties": false
615
- },
616
- "parameterOpValue": {
617
- "title": "Parameter Op Value",
618
- "description": "An object describing an operation to generate a parameter using a value.",
619
- "type": "object",
620
- "properties": {
621
- "path": {
622
- "description": "A path to the parameter for this operation.",
623
- "type": "string",
624
- "minLength": 1,
625
- "pattern": "^[^\\n\\r]*$"
626
- },
627
- "op": {
628
- "description": "A mode for this parameter's operation.",
629
- "type": "string",
630
- "enum": ["set", "concat", "extend", "remove"]
631
- },
632
- "value": {
633
- "description": "A value to set directly at this path.",
634
- "type": ["number", "string", "boolean", "object", "array", "null"]
635
- }
223
+ "allOfSchema": {
224
+ "title": "AllOfSchema",
225
+ "allOf": [
226
+ {"$ref": "#/definitions/propertySchema"},
227
+ {
228
+ "type": "object",
229
+ "properties": {
230
+ "allOf": {"$ref": "#/definitions/objectOrRefArray"}
231
+ },
232
+ "required": ["allOf"]
233
+ }
234
+ ]
636
235
  },
637
- "required": ["path", "value"],
638
- "additionalProperties": false
639
- },
640
- "parameterOpMapping": {
641
- "title": "Parameter Op Mapping",
642
- "description": "An object describing an operation to generate a parameter using a mapping.",
643
- "type": "object",
644
- "properties": {
645
- "path": {
646
- "description": "A path to the parameter for this operation.",
647
- "type": "string",
648
- "minLength": 1,
649
- "pattern": "^[^\\n\\r]*$"
650
- },
651
- "op": {
652
- "description": "A mode for this parameter's operation.",
653
- "type": "string",
654
- "enum": ["set", "concat", "extend", "remove"]
236
+ "shapeSchemaExtends": {
237
+ "title": "ShapeSchemaExtends",
238
+ "type": "object",
239
+ "properties": {
240
+ "extends": {"$ref": "#/definitions/objectOrRefArray"}
655
241
  },
656
- "mapping": {
657
- "description": "Either a valid JSONPath or a directive pipeline to evaluate against the query context.",
658
- "oneOf": [
659
- {
660
- "type": "string",
661
- "minLength": 1
242
+ "required": ["extends"],
243
+ "additionalProperties": false
244
+ },
245
+ "extendsSchema": {
246
+ "title": "ExtendsSchema",
247
+ "allOf": [
248
+ {"$ref": "#/definitions/propertySchema"},
249
+ {
250
+ "type": "object",
251
+ "properties": {
252
+ "extends": {"$ref": "#/definitions/objectOrRefArray"}
662
253
  },
663
- {
664
- "$ref": "#/definitions/directiveConfig"
665
- }
666
- ]
667
- }
254
+ "required": ["extends"]
255
+ }
256
+ ]
668
257
  },
669
- "required": ["path", "mapping"],
670
- "additionalProperties": false
671
- },
672
- "parameterOpOp": {
673
- "title": "Parameter Op Op",
674
- "description": "An object describing an operation to generate a parameter using a mapping.",
675
- "type": "object",
676
- "properties": {
677
- "path": {
678
- "description": "A path to the parameter for this operation.",
679
- "type": "string",
680
- "minLength": 1,
681
- "pattern": "^[^\\n\\r]*$"
258
+ "shapeSchemaOneOf": {
259
+ "title": "Shape Schema One Of",
260
+ "type": "object",
261
+ "properties": {
262
+ "oneOf": {"$ref": "#/definitions/objectOrRefArray"}
682
263
  },
683
- "op": {
684
- "description": "A mode for this parameter's operation.",
685
- "type": "string",
686
- "enum": ["set", "concat", "extend", "remove"]
687
- }
264
+ "required": ["oneOf"],
265
+ "additionalProperties": false
688
266
  },
689
- "required": ["path", "op"],
690
- "additionalProperties": false
691
- },
692
- "parameterOp": {
693
- "title": "Parameter Op",
694
- "description": "An object describing an operation to generate a parameter.",
695
- "oneOf": [
696
- {
697
- "$ref": "#/definitions/parameterOpNested"
698
- },
699
- {
700
- "$ref": "#/definitions/parameterOpValue"
701
- },
702
- {
703
- "$ref": "#/definitions/parameterOpMapping"
704
- },
705
- {
706
- "$ref": "#/definitions/parameterOpOp"
707
- }
708
- ]
709
- },
710
- "parameterOpList": {
711
- "title": "Parameter Op List",
712
- "type": "array",
713
- "items": {
714
- "$ref": "#/definitions/parameterOp"
267
+ "oneOfSchema": {
268
+ "title": "OneOfSchema",
269
+ "allOf": [
270
+ {"$ref": "#/definitions/propertySchema"},
271
+ {
272
+ "type": "object",
273
+ "properties": {
274
+ "oneOf": {"$ref": "#/definitions/objectOrRefArray"}
275
+ },
276
+ "required": ["oneOf"],
277
+ "additionalProperties": false
278
+ }
279
+ ]
715
280
  },
716
- "minItems": 1
717
- },
718
- "parameterConfig": {
719
- "title": "Parameter Config",
720
- "description": "All possible options for the more specific ParameterConfig types.",
721
- "type": "object",
722
- "properties": {
723
- "ops": {
724
- "$ref": "#/definitions/parameterOpList"
725
- },
726
- "serialize": {
727
- "$ref": "#/definitions/parameterSerializeConfig"
281
+ "shapeSchema": {
282
+ "title": "Shape Schema",
283
+ "type": "object",
284
+ "oneOf": [
285
+ {"$ref": "#/definitions/shapeSchemaAllOf"},
286
+ {"$ref": "#/definitions/shapeSchemaExtends"},
287
+ {"$ref": "#/definitions/shapeSchemaOneOf"},
288
+ {"$ref": "#/definitions/shapeSchemaEnum"},
289
+ {"$ref": "#/definitions/objectSchema"}
290
+ ]
291
+ },
292
+ "queryMap": {
293
+ "title": "Query Map",
294
+ "type": "object",
295
+ "patternProperties": {
296
+ "[0-9A-Za-z_-]+": {
297
+ "$ref": "#/definitions/query"
298
+ }
728
299
  }
729
300
  },
730
- "required": ["ops"],
731
- "additionalProperties": false
732
- },
733
- "parameterConfigForBody": {
734
- "title": "Parameter Config For Body",
735
- "type": "object",
736
- "properties": {
737
- "ops": {
738
- "$ref": "#/definitions/parameterOpList"
739
- },
740
- "serialize": {
741
- "$ref": "#/definitions/parameterSerializeConfigForBody"
742
- }
301
+ "args": {
302
+ "title": "Args",
303
+ "oneOf": [{"type": "string"}, {"$ref": "#/definitions/objectSchema"}]
743
304
  },
744
- "required": ["ops"],
745
- "additionalProperties": false
746
- },
747
- "parameterConfigForPathParams": {
748
- "title": "Parameter Config For Path Params",
749
- "type": "object",
750
- "properties": {
751
- "ops": {
752
- "$ref": "#/definitions/parameterOpList"
753
- },
754
- "serialize": {
755
- "$ref": "#/definitions/parameterSerializeConfigForPathParams"
756
- }
305
+ "returnShape": {
306
+ "title": "Return Shape",
307
+ "oneOf": [{"type": "string"}, {"$ref": "#/definitions/returnShapeArraySchema"}]
757
308
  },
758
- "required": ["ops", "serialize"],
759
- "additionalProperties": false
760
- },
761
- "parameterConfigForAwsLambda": {
762
- "title": "ParameterConfigForAwsLambda",
763
- "type": "object",
764
- "properties": {
765
- "ops": {
766
- "$ref": "#/definitions/parameterOpList"
767
- },
768
- "serialize": {
769
- "$ref": "#/definitions/parameterSerializeConfigForPathParams"
770
- }
771
- },
772
- "required": ["ops", "serialize"],
773
- "additionalProperties": false
774
- },
775
- "parameterConfigForSearchParams": {
776
- "title": "Parameter Config For Search Params",
777
- "type": "object",
778
- "properties": {
779
- "ops": {
780
- "$ref": "#/definitions/parameterOpList"
781
- },
782
- "serialize": {
783
- "$ref": "#/definitions/parameterSerializeConfigForSearchParams"
784
- }
785
- },
786
- "required": ["ops"],
787
- "additionalProperties": false
788
- },
789
- "parameterConfigForHeaders": {
790
- "title": "Parameter Config For Headers",
791
- "type": "object",
792
- "properties": {
793
- "ops": {
794
- "$ref": "#/definitions/parameterOpList"
795
- },
796
- "serialize": {
797
- "$ref": "#/definitions/parameterSerializeConfigForHeaders"
798
- }
799
- },
800
- "required": ["ops"],
801
- "additionalProperties": false
802
- },
803
- "parameterConfigForJson": {
804
- "title": "Parameter Config For Json",
805
- "type": "object",
806
- "properties": {
807
- "ops": {
808
- "$ref": "#/definitions/parameterOpList"
809
- }
309
+ "directiveConfigItem": {
310
+ "title": "Directive Config Item",
311
+ "description": "A tuple with a string directive name, and options to pass to the directive",
312
+ "type": "array",
313
+ "items": [
314
+ {
315
+ "title": "Directive Name",
316
+ "type": "string"
317
+ },
318
+ {
319
+ "title": "Directive Options",
320
+ "type": "object",
321
+ "propertyNames": {
322
+ "pattern": "[0-9A-Za-z_-]+"
323
+ }
324
+ }
325
+ ]
810
326
  },
811
- "required": ["ops"],
812
- "additionalProperties": false
813
- },
814
- "directiveConfig": {
815
- "title": "Directive Config",
816
- "description": "An array of individual directive config items to process in order",
817
- "type": "array",
818
- "items": {
819
- "$ref": "#/definitions/directiveConfigItem"
820
- },
821
- "minItems": 1
822
- },
823
- "directiveMappingMap": {
824
- "title": "Directive Mapping Map",
825
- "description": "An map of object keys / key paths to directive configs",
826
- "type": "object",
827
- "patternProperties": {
828
- "[0-9A-Za-z_-]+": {
829
- "$ref": "#/definitions/directiveConfig"
830
- }
831
- }
832
- },
833
- "directiveMappingArrayItem": {
834
- "title": "Directive Mapping Array Item",
835
- "description": "A tuple with a string key and a directive config to evaluate",
836
- "type": "array",
837
- "items": [{"type": "string"}, {"$ref": "#/definitions/directiveConfig"}]
838
- },
839
- "directiveMappingArray": {
840
- "title": "Directive Mapping Array",
841
- "description": "An array of key / value or directive config tuples",
842
- "type": "array",
843
- "items": {"$ref": "#/definitions/directiveMappingArrayItem"}
844
- },
845
- "basicResolver": {
846
- "title": "BasicResolver",
847
- "description": "A single resolver, can be composed with the ComposeResolver.",
848
- "oneOf": [
849
- {
850
- "$ref": "#/definitions/utilResolver"
851
- },
852
- {
853
- "$ref": "#/definitions/takeshapeResolver"
854
- },
855
- {
856
- "$ref": "#/definitions/internalTakeshapeResolver"
857
- },
858
- {
859
- "$ref": "#/definitions/graphqlResolver"
860
- },
861
- {
862
- "$ref": "#/definitions/restResolver"
863
- },
864
- {
865
- "$ref": "#/definitions/awsLambdaResolver"
866
- }
867
- ]
868
- },
869
- "argsMapping": {
870
- "title": "ArgsMapping",
871
- "description": "Maps a query's input args to the input expected by the service's endpoint.",
872
- "oneOf": [
873
- {
874
- "$ref": "#/definitions/directiveMappingMap"
875
- },
876
- {
877
- "$ref": "#/definitions/directiveConfig"
878
- }
879
- ]
880
- },
881
- "searchParamsMapping": {
882
- "title": "SearchParamsMapping",
883
- "description": "Set or evaluate directives to generate searchParams for the service endpoint.",
884
- "$ref": "#/definitions/directiveMappingArray"
885
- },
886
- "resultsMapping": {
887
- "title": "ResultsMapping",
888
- "description": "Maps a service endpoint's response results to the expected shape of the query's response.",
889
- "oneOf": [
890
- {
891
- "$ref": "#/definitions/directiveMappingMap"
892
- },
893
- {
894
- "$ref": "#/definitions/directiveConfig"
895
- }
896
- ]
897
- },
898
- "utilResolver": {
899
- "title": "UtilResolver",
900
- "type": "object",
901
- "properties": {
902
- "if": {
903
- "type": "string"
904
- },
905
- "id": {
906
- "type": "string",
907
- "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
908
- },
909
- "name": {
910
- "title": "UtilResolverName",
911
- "type": "string",
912
- "description": "Name of the resolver function.",
913
- "enum": ["debug:noop", "util:wrap"]
914
- },
915
- "service": {
916
- "type": "string",
917
- "description": "Configuration for a service to use with this resolver."
918
- },
919
- "options": {
920
- "title": "UtilResolverOptions",
921
- "type": "object",
922
- "additionalProperties": true
923
- },
924
- "args": {
925
- "description": "Mapping and serialization configuration for args.",
926
- "$ref": "#/definitions/parameterConfigForJson"
927
- },
928
- "results": {
929
- "description": "Mapping configuration for the results of this resolver step.",
930
- "$ref": "#/definitions/parameterConfigForJson"
931
- },
932
- "argsMapping": {
933
- "$ref": "#/definitions/argsMapping"
327
+ "parameterSerializeStyleOptions": {
328
+ "title": "Parameter Serialize Style Options",
329
+ "description": "All possible options for the more specific ParameterSerializeStyleOptions types.",
330
+ "type": "object",
331
+ "properties": {
332
+ "style": {
333
+ "type": "string",
334
+ "enum": ["simple", "label", "matrix", "form", "spaceDelimited", "pipeDelimited", "deepObject", "none"]
335
+ },
336
+ "explode": {
337
+ "type": "boolean"
338
+ },
339
+ "allowEmptyValue": {
340
+ "type": "boolean"
341
+ },
342
+ "allowReserved": {
343
+ "description": "The allowReserved keyword specifies whether the reserved characters :/?#[]@!$&'()*+,;= in parameter values are allowed to be sent as they are.",
344
+ "type": "boolean"
345
+ },
346
+ "skipEncoding": {
347
+ "type": "boolean"
348
+ }
934
349
  },
935
- "resultsMapping": {
936
- "$ref": "#/definitions/resultsMapping"
937
- }
350
+ "required": ["style"],
351
+ "additionalProperties": false
938
352
  },
939
- "required": ["name", "service"],
940
- "additionalProperties": false
941
- },
942
- "takeshapeResolver": {
943
- "title": "TakeshapeResolver",
944
- "type": "object",
945
- "properties": {
946
- "if": {"type": "string"},
947
- "id": {
948
- "type": "string",
949
- "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
950
- },
951
- "name": {
952
- "title": "TakeshapeResolverName",
953
- "type": "string",
954
- "description": "Name of the resolver function.",
955
- "enum": [
956
- "takeshape:get",
957
- "takeshape:create",
958
- "takeshape:update",
959
- "takeshape:delete",
960
- "takeshape:duplicate",
961
- "takeshape:find",
962
- "takeshape:queryApiIndex"
963
- ]
964
- },
965
- "service": {
966
- "type": "string",
967
- "description": "Internal service identifier.",
968
- "enum": ["takeshape:local"]
969
- },
970
- "options": {
971
- "title": "TakeshapeResolverOptions",
972
- "type": "object",
973
- "additionalProperties": true
974
- },
975
- "argsMapping": {
976
- "$ref": "#/definitions/argsMapping"
977
- },
978
- "resultsMapping": {
979
- "$ref": "#/definitions/resultsMapping"
980
- },
981
- "shapeName": {
982
- "description": "A Shape name for the resolver to use.",
983
- "type": "string",
984
- "minLength": 1
985
- },
986
- "args": {
987
- "description": "Mapping and serialization configuration for args.",
988
- "$ref": "#/definitions/parameterConfigForJson"
353
+ "parameterSerializeStyleOptionsForPathParams": {
354
+ "title": "Parameter Serialize Style Options For Path Params",
355
+ "description": "Options to be passed to the serialization routine.",
356
+ "type": "object",
357
+ "properties": {
358
+ "style": {
359
+ "type": "string",
360
+ "enum": ["simple", "label", "matrix", "none"]
361
+ },
362
+ "explode": {
363
+ "type": "boolean"
364
+ },
365
+ "allowEmptyValue": {
366
+ "type": "boolean"
367
+ },
368
+ "allowReserved": {
369
+ "description": "The allowReserved keyword specifies whether the reserved characters :/?#[]@!$&'()*+,;= in parameter values are allowed to be sent as they are.",
370
+ "type": "boolean"
371
+ },
372
+ "skipEncoding": {
373
+ "type": "boolean"
374
+ }
989
375
  },
990
- "results": {
991
- "description": "Mapping configuration for the results of this resolver step.",
992
- "$ref": "#/definitions/parameterConfigForJson"
993
- }
376
+ "required": ["style"],
377
+ "additionalProperties": false
994
378
  },
995
- "required": ["name", "service", "shapeName"],
996
- "additionalProperties": false
997
- },
998
- "internalTakeshapeResolver": {
999
- "title": "InternalTakeshapeResolver",
1000
- "type": "object",
1001
- "properties": {
1002
- "if": {
1003
- "type": "string"
1004
- },
1005
- "id": {
1006
- "type": "string",
1007
- "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
1008
- },
1009
- "name": {
1010
- "title": "InternalTakeshapeResolverName",
1011
- "type": "string",
1012
- "description": "Name of the resolver function.",
1013
- "enum": ["takeshape:getRelationship", "takeshape:taxonomySuggest", "takeshape:list", "takeshape:search", "takeshape:getUser"]
1014
- },
1015
- "service": {
1016
- "type": "string",
1017
- "description": "Internal service identifier.",
1018
- "enum": ["takeshape:local"]
1019
- },
1020
- "options": {
1021
- "title": "TakeshapeResolverOptions",
1022
- "type": "object",
1023
- "additionalProperties": true
1024
- },
1025
- "shapeName": {
1026
- "description": "An optional Shape name for the resolver.",
1027
- "type": "string",
1028
- "minLength": 1
1029
- },
1030
- "args": {
1031
- "description": "Mapping and serialization configuration for args.",
1032
- "$ref": "#/definitions/parameterConfigForJson"
1033
- },
1034
- "results": {
1035
- "description": "Mapping configuration for the results of this resolver step.",
1036
- "$ref": "#/definitions/parameterConfigForJson"
1037
- },
1038
- "argsMapping": {
1039
- "$ref": "#/definitions/argsMapping"
379
+ "parameterSerializeStyleOptionsForSearchParams": {
380
+ "title": "Parameter Serialize Style Options For Search Params",
381
+ "description": "Options to be passed to the serialization routine.",
382
+ "type": "object",
383
+ "properties": {
384
+ "style": {
385
+ "type": "string",
386
+ "enum": ["form", "spaceDelimited", "pipeDelimited", "deepObject", "none"]
387
+ },
388
+ "explode": {
389
+ "type": "boolean"
390
+ },
391
+ "allowEmptyValue": {
392
+ "type": "boolean"
393
+ },
394
+ "allowReserved": {
395
+ "description": "The allowReserved keyword specifies whether the reserved characters :/?#[]@!$&'()*+,;= in parameter values are allowed to be sent as they are.",
396
+ "type": "boolean"
397
+ },
398
+ "skipEncoding": {
399
+ "type": "boolean"
400
+ }
1040
401
  },
1041
- "resultsMapping": {
1042
- "$ref": "#/definitions/resultsMapping"
1043
- }
402
+ "required": ["style"],
403
+ "additionalProperties": false
1044
404
  },
1045
- "required": ["name", "service"],
1046
- "additionalProperties": false
1047
- },
1048
- "graphqlResolver": {
1049
- "title": "GraphqlResolver",
1050
- "type": "object",
1051
- "properties": {
1052
- "if": {"type": "string"},
1053
- "id": {
1054
- "type": "string",
1055
- "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
1056
- },
1057
- "name": {
1058
- "title": "GraphqlResolverName",
1059
- "type": "string",
1060
- "description": "Name of the resolver function.",
1061
- "enum": ["graphql:query", "graphql:mutation"]
1062
- },
1063
- "service": {
1064
- "type": "string",
1065
- "description": "Configuration for a service to use with this resolver."
1066
- },
1067
- "argsMapping": {
1068
- "$ref": "#/definitions/argsMapping"
1069
- },
1070
- "resultsMapping": {
1071
- "$ref": "#/definitions/resultsMapping"
1072
- },
1073
- "options": {
1074
- "title": "GraphqlResolverOptions",
1075
- "type": "object",
1076
- "properties": {
1077
- "selectionSet": {"type": "string"},
1078
- "unboxParentSelectionSet": {"type": "boolean"},
1079
- "ignoreErrors": {"type": "boolean"},
1080
- "skipWhenMissingArgs": {"type": "boolean"},
1081
- "ttl": {"type": "number"},
1082
- "timeout": {"type": "number"},
1083
- "retry": {"oneOf": [{"type": "number"}, {"type": "object"}]}
1084
- },
1085
- "additionalProperties": true
1086
- },
1087
- "fieldName": {
1088
- "description": "A fieldname to use in queries.",
1089
- "type": "string"
1090
- },
1091
- "headers": {
1092
- "description": "Mapping and serialization configuration for headers.",
1093
- "$ref": "#/definitions/parameterConfigForHeaders"
1094
- },
1095
- "searchParams": {
1096
- "description": "Mapping and serialization configuration for searchParams.",
1097
- "$ref": "#/definitions/parameterConfigForSearchParams"
1098
- },
1099
- "args": {
1100
- "description": "Mapping and serialization configuration for args.",
1101
- "$ref": "#/definitions/parameterConfigForJson"
405
+ "parameterSerializeStyleOptionsForHeaders": {
406
+ "title": "Parameter Serialize Style Options For Headers",
407
+ "description": "Options to be passed to the serialization routine.",
408
+ "type": "object",
409
+ "properties": {
410
+ "style": {
411
+ "type": "string",
412
+ "enum": ["simple", "none"]
413
+ },
414
+ "explode": {
415
+ "type": "boolean"
416
+ }
1102
417
  },
1103
- "results": {
1104
- "description": "Mapping configuration for the results of this resolver step.",
1105
- "$ref": "#/definitions/parameterConfigForJson"
1106
- }
418
+ "required": ["style"],
419
+ "additionalProperties": false
1107
420
  },
1108
- "required": ["name", "service", "fieldName"],
1109
- "additionalProperties": false
1110
- },
1111
- "restResolver": {
1112
- "title": "RestResolver",
1113
- "type": "object",
1114
- "properties": {
1115
- "if": {"type": "string"},
1116
- "id": {
1117
- "type": "string",
1118
- "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
1119
- },
1120
- "name": {
1121
- "title": "RestResolverName",
1122
- "type": "string",
1123
- "description": "Name of the resolver function.",
1124
- "enum": ["rest:get", "rest:head", "rest:post", "rest:put", "rest:patch", "rest:delete"]
1125
- },
1126
- "service": {
1127
- "type": "string",
1128
- "description": "Configuration for a service to use with this resolver."
1129
- },
1130
- "argsMapping": {
1131
- "$ref": "#/definitions/argsMapping"
1132
- },
1133
- "searchParamsMapping": {
1134
- "$ref": "#/definitions/searchParamsMapping"
1135
- },
1136
- "resultsMapping": {
1137
- "$ref": "#/definitions/resultsMapping"
1138
- },
1139
- "options": {
1140
- "title": "RestResolverOptions",
1141
- "type": "object",
1142
- "properties": {
1143
- "trailingSlash": {"type": "boolean"},
1144
- "ttl": {"type": "number"},
1145
- "timeout": {"type": "number"},
1146
- "retry": {"oneOf": [{"type": "number"}, {"type": "object"}]}
421
+ "parameterSerializeContentOptions": {
422
+ "title": "Parameter Serialize Content Options",
423
+ "description": "Options to be passed to the serialization routine.",
424
+ "type": "object",
425
+ "properties": {
426
+ "contentType": {
427
+ "type": "string"
1147
428
  },
1148
- "additionalProperties": true
1149
- },
1150
- "body": {
1151
- "description": "Mapping and serialization configuration for a request body.",
1152
- "$ref": "#/definitions/parameterConfigForBody"
1153
- },
1154
- "form": {
1155
- "description": "Mapping and serialization configuration for form data.",
1156
- "$ref": "#/definitions/parameterConfigForSearchParams"
429
+ "allowReserved": {
430
+ "description": "The allowReserved keyword specifies whether the reserved characters :/?#[]@!$&'()*+,;= in parameter values are allowed to be sent as they are.",
431
+ "type": "boolean"
432
+ },
433
+ "skipEncoding": {
434
+ "type": "boolean"
435
+ },
436
+ "options": {
437
+ "description": "Options to be passed directly to the content serializer library. Valid options depend upon your contentType.",
438
+ "type": "object"
439
+ }
1157
440
  },
1158
- "headers": {
1159
- "description": "Mapping and serialization configuration for headers.",
1160
- "$ref": "#/definitions/parameterConfigForHeaders"
441
+ "required": ["contentType"],
442
+ "additionalProperties": false
443
+ },
444
+ "parameterSerializeOptions": {
445
+ "title": "Parameter Serialize Options",
446
+ "description": "Options to be passed to the serialization routine.",
447
+ "type": "object",
448
+ "oneOf": [
449
+ {
450
+ "$ref": "#/definitions/parameterSerializeStyleOptions"
451
+ },
452
+ {
453
+ "$ref": "#/definitions/parameterSerializeContentOptions"
454
+ }
455
+ ]
456
+ },
457
+ "parameterSerializeConfig": {
458
+ "title": "Parameter Serialize Config",
459
+ "description": "All possible options for the more specific ParameterSerializeConfig types.",
460
+ "type": "object",
461
+ "properties": {
462
+ "content": {
463
+ "$ref": "#/definitions/parameterSerializeContentOptions"
464
+ },
465
+ "defaults": {
466
+ "$ref": "#/definitions/parameterSerializeOptions"
467
+ },
468
+ "paths": {
469
+ "type": "object",
470
+ "patternProperties": {
471
+ "^[^\\n\\r]*$": {"$ref": "#/definitions/parameterSerializeOptions"}
472
+ }
473
+ }
1161
474
  },
1162
- "json": {
1163
- "description": "Mapping and serialization configuration for a json request body.",
1164
- "$ref": "#/definitions/parameterConfigForJson"
475
+ "additionalProperties": false
476
+ },
477
+ "parameterSerializeConfigForBody": {
478
+ "title": "Parameter Serialize Config For Body",
479
+ "description": "Top-level paths to use serialization options for.",
480
+ "type": "object",
481
+ "properties": {
482
+ "content": {
483
+ "$ref": "#/definitions/parameterSerializeContentOptions"
484
+ }
1165
485
  },
1166
- "path": {
1167
- "description": "Mapping and serialization configuration for the path, or a simple string.",
1168
- "oneOf": [
1169
- {
1170
- "$ref": "#/definitions/parameterConfigForPathParams"
1171
- },
1172
- {
1173
- "type": "string"
486
+ "additionalProperties": false
487
+ },
488
+ "parameterSerializeConfigForPathParams": {
489
+ "title": "Parameter Serialize Config For Path Params",
490
+ "description": "Top-level paths to use path params serialization options for.",
491
+ "type": "object",
492
+ "properties": {
493
+ "template": {
494
+ "description": "For generating the path using tokens frpm the ParameterOps, e.g., '/products/{productId}'",
495
+ "type": "string"
496
+ },
497
+ "defaults": {
498
+ "oneOf": [
499
+ {
500
+ "$ref": "#/definitions/parameterSerializeStyleOptionsForPathParams"
501
+ },
502
+ {
503
+ "$ref": "#/definitions/parameterSerializeContentOptions"
504
+ }
505
+ ]
506
+ },
507
+ "paths": {
508
+ "type": "object",
509
+ "patternProperties": {
510
+ "^[^\\n\\r]*$": {
511
+ "oneOf": [
512
+ {
513
+ "$ref": "#/definitions/parameterSerializeStyleOptionsForPathParams"
514
+ },
515
+ {
516
+ "$ref": "#/definitions/parameterSerializeContentOptions"
517
+ }
518
+ ]
519
+ }
1174
520
  }
1175
- ]
521
+ }
1176
522
  },
1177
- "searchParams": {
1178
- "description": "Mapping and serialization configuration for searchParams.",
1179
- "$ref": "#/definitions/parameterConfigForSearchParams"
523
+ "required": ["template"],
524
+ "additionalProperties": false
525
+ },
526
+ "parameterSerializeConfigForSearchParams": {
527
+ "title": "Parameter Serialize Config For Search Params",
528
+ "description": "Top-level paths to use search params serialization options for.",
529
+ "type": "object",
530
+ "properties": {
531
+ "defaults": {
532
+ "oneOf": [
533
+ {
534
+ "$ref": "#/definitions/parameterSerializeStyleOptionsForSearchParams"
535
+ },
536
+ {
537
+ "$ref": "#/definitions/parameterSerializeContentOptions"
538
+ }
539
+ ]
540
+ },
541
+ "paths": {
542
+ "type": "object",
543
+ "patternProperties": {
544
+ "^[^\\n\\r]*$": {
545
+ "oneOf": [
546
+ {
547
+ "$ref": "#/definitions/parameterSerializeStyleOptionsForSearchParams"
548
+ },
549
+ {
550
+ "$ref": "#/definitions/parameterSerializeContentOptions"
551
+ }
552
+ ]
553
+ }
554
+ }
555
+ }
1180
556
  },
1181
- "args": {
1182
- "description": "Mapping and serialization configuration for args.",
1183
- "$ref": "#/definitions/parameterConfigForJson"
557
+ "additionalProperties": false
558
+ },
559
+ "parameterSerializeConfigForHeaders": {
560
+ "title": "Parameter Serialize Config For Headers",
561
+ "description": "Top-level paths to use headers serialization options for.",
562
+ "type": "object",
563
+ "properties": {
564
+ "defaults": {
565
+ "oneOf": [
566
+ {
567
+ "$ref": "#/definitions/parameterSerializeStyleOptionsForHeaders"
568
+ },
569
+ {
570
+ "$ref": "#/definitions/parameterSerializeContentOptions"
571
+ }
572
+ ]
573
+ },
574
+ "paths": {
575
+ "type": "object",
576
+ "patternProperties": {
577
+ "^[^\\n\\r]*$": {
578
+ "oneOf": [
579
+ {
580
+ "$ref": "#/definitions/parameterSerializeStyleOptionsForHeaders"
581
+ },
582
+ {
583
+ "$ref": "#/definitions/parameterSerializeContentOptions"
584
+ }
585
+ ]
586
+ }
587
+ }
588
+ }
1184
589
  },
1185
- "results": {
1186
- "description": "Mapping configuration for the results of this resolver step.",
1187
- "$ref": "#/definitions/parameterConfigForJson"
1188
- }
590
+ "additionalProperties": false
1189
591
  },
1190
- "required": ["name", "service", "path"],
1191
- "additionalProperties": false
1192
- },
1193
- "awsLambdaResolver": {
1194
- "title": "AwsLambdaResolver",
1195
- "type": "object",
1196
- "properties": {
1197
- "if": {"type": "string"},
1198
- "id": {
1199
- "type": "string",
1200
- "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
592
+ "parameterOpNested": {
593
+ "title": "Parameter Op Nested",
594
+ "description": "An object describing an operation to generate a parameter, using a nested OpList.",
595
+ "type": "object",
596
+ "properties": {
597
+ "path": {
598
+ "description": "A path to the parameter for this operation.",
599
+ "type": "string",
600
+ "minLength": 1,
601
+ "pattern": "^[^\\n\\r]*$"
602
+ },
603
+ "op": {
604
+ "description": "A mode for this parameter's operation.",
605
+ "type": "string",
606
+ "enum": ["set", "concat", "extend", "remove"]
607
+ },
608
+ "ops": {
609
+ "description": "A nested op list.",
610
+ "$ref": "#/definitions/parameterOpList"
611
+ }
1201
612
  },
1202
- "name": {
1203
- "title": "AwsLambdaResolverName",
1204
- "type": "string",
1205
- "description": "Name of the resolver function.",
1206
- "enum": ["awsLambda:invoke"]
613
+ "required": ["path", "ops"],
614
+ "additionalProperties": false
615
+ },
616
+ "parameterOpValue": {
617
+ "title": "Parameter Op Value",
618
+ "description": "An object describing an operation to generate a parameter using a value.",
619
+ "type": "object",
620
+ "properties": {
621
+ "path": {
622
+ "description": "A path to the parameter for this operation.",
623
+ "type": "string",
624
+ "minLength": 1,
625
+ "pattern": "^[^\\n\\r]*$"
626
+ },
627
+ "op": {
628
+ "description": "A mode for this parameter's operation.",
629
+ "type": "string",
630
+ "enum": ["set", "concat", "extend", "remove"]
631
+ },
632
+ "value": {
633
+ "description": "A value to set directly at this path.",
634
+ "type": ["number", "string", "boolean", "object", "array", "null"]
635
+ }
1207
636
  },
1208
- "service": {
1209
- "type": "string",
1210
- "description": "Configuration for a service to use with this resolver."
637
+ "required": ["path", "value"],
638
+ "additionalProperties": false
639
+ },
640
+ "parameterOpMapping": {
641
+ "title": "Parameter Op Mapping",
642
+ "description": "An object describing an operation to generate a parameter using a mapping.",
643
+ "type": "object",
644
+ "properties": {
645
+ "path": {
646
+ "description": "A path to the parameter for this operation.",
647
+ "type": "string",
648
+ "minLength": 1,
649
+ "pattern": "^[^\\n\\r]*$"
650
+ },
651
+ "op": {
652
+ "description": "A mode for this parameter's operation.",
653
+ "type": "string",
654
+ "enum": ["set", "concat", "extend", "remove"]
655
+ },
656
+ "mapping": {
657
+ "description": "Either a valid JSONPath or a directive pipeline to evaluate against the query context.",
658
+ "oneOf": [
659
+ {
660
+ "type": "string",
661
+ "minLength": 1
662
+ },
663
+ {
664
+ "$ref": "#/definitions/directiveConfig"
665
+ }
666
+ ]
667
+ }
1211
668
  },
1212
- "options": {
1213
- "title": "AwsLambdaResolverOptions",
1214
- "type": "object",
1215
- "additionalProperties": true
669
+ "required": ["path", "mapping"],
670
+ "additionalProperties": false
671
+ },
672
+ "parameterOpOp": {
673
+ "title": "Parameter Op Op",
674
+ "description": "An object describing an operation to generate a parameter using a mapping.",
675
+ "type": "object",
676
+ "properties": {
677
+ "path": {
678
+ "description": "A path to the parameter for this operation.",
679
+ "type": "string",
680
+ "minLength": 1,
681
+ "pattern": "^[^\\n\\r]*$"
682
+ },
683
+ "op": {
684
+ "description": "A mode for this parameter's operation.",
685
+ "type": "string",
686
+ "enum": ["set", "concat", "extend", "remove"]
687
+ }
1216
688
  },
1217
- "payload": {
1218
- "description": "Mapping configuration the Payload.",
1219
- "$ref": "#/definitions/parameterConfigForJson"
689
+ "required": ["path", "op"],
690
+ "additionalProperties": false
691
+ },
692
+ "parameterOp": {
693
+ "title": "Parameter Op",
694
+ "description": "An object describing an operation to generate a parameter.",
695
+ "oneOf": [
696
+ {
697
+ "$ref": "#/definitions/parameterOpNested"
698
+ },
699
+ {
700
+ "$ref": "#/definitions/parameterOpValue"
701
+ },
702
+ {
703
+ "$ref": "#/definitions/parameterOpMapping"
704
+ },
705
+ {
706
+ "$ref": "#/definitions/parameterOpOp"
707
+ }
708
+ ]
709
+ },
710
+ "parameterOpList": {
711
+ "title": "Parameter Op List",
712
+ "type": "array",
713
+ "items": {
714
+ "$ref": "#/definitions/parameterOp"
1220
715
  },
1221
- "functionName": {
1222
- "description": "Mapping configuration for the FunctionName.",
1223
- "oneOf": [
1224
- {
1225
- "type": "string"
1226
- },
1227
- {
1228
- "$ref": "#/definitions/parameterConfigForAwsLambda"
1229
- }
1230
- ]
716
+ "minItems": 1
717
+ },
718
+ "parameterConfig": {
719
+ "title": "Parameter Config",
720
+ "description": "All possible options for the more specific ParameterConfig types.",
721
+ "type": "object",
722
+ "properties": {
723
+ "ops": {
724
+ "$ref": "#/definitions/parameterOpList"
725
+ },
726
+ "serialize": {
727
+ "$ref": "#/definitions/parameterSerializeConfig"
728
+ }
1231
729
  },
1232
- "clientContext": {
1233
- "description": "Mapping configuration for the ClientContext.",
1234
- "$ref": "#/definitions/parameterConfigForJson"
730
+ "required": ["ops"],
731
+ "additionalProperties": false
732
+ },
733
+ "parameterConfigForBody": {
734
+ "title": "Parameter Config For Body",
735
+ "type": "object",
736
+ "properties": {
737
+ "ops": {
738
+ "$ref": "#/definitions/parameterOpList"
739
+ },
740
+ "serialize": {
741
+ "$ref": "#/definitions/parameterSerializeConfigForBody"
742
+ }
1235
743
  },
1236
- "args": {
1237
- "description": "Mapping and serialization configuration for args.",
1238
- "$ref": "#/definitions/parameterConfigForJson"
744
+ "required": ["ops"],
745
+ "additionalProperties": false
746
+ },
747
+ "parameterConfigForPathParams": {
748
+ "title": "Parameter Config For Path Params",
749
+ "type": "object",
750
+ "properties": {
751
+ "ops": {
752
+ "$ref": "#/definitions/parameterOpList"
753
+ },
754
+ "serialize": {
755
+ "$ref": "#/definitions/parameterSerializeConfigForPathParams"
756
+ }
1239
757
  },
1240
- "results": {
1241
- "description": "Mapping configuration for the results of this resolver step.",
1242
- "$ref": "#/definitions/parameterConfigForJson"
758
+ "required": ["ops", "serialize"],
759
+ "additionalProperties": false
760
+ },
761
+ "parameterConfigForAwsLambda": {
762
+ "title": "ParameterConfigForAwsLambda",
763
+ "type": "object",
764
+ "properties": {
765
+ "ops": {
766
+ "$ref": "#/definitions/parameterOpList"
767
+ },
768
+ "serialize": {
769
+ "$ref": "#/definitions/parameterSerializeConfigForPathParams"
770
+ }
1243
771
  },
1244
- "argsMapping": {
1245
- "$ref": "#/definitions/argsMapping"
772
+ "required": ["ops", "serialize"],
773
+ "additionalProperties": false
774
+ },
775
+ "parameterConfigForSearchParams": {
776
+ "title": "Parameter Config For Search Params",
777
+ "type": "object",
778
+ "properties": {
779
+ "ops": {
780
+ "$ref": "#/definitions/parameterOpList"
781
+ },
782
+ "serialize": {
783
+ "$ref": "#/definitions/parameterSerializeConfigForSearchParams"
784
+ }
1246
785
  },
1247
- "searchParamsMapping": {
1248
- "description": "Set or evaluate directives to generate searchParams for the service endpoint.",
1249
- "$ref": "#/definitions/searchParamsMapping"
786
+ "required": ["ops"],
787
+ "additionalProperties": false
788
+ },
789
+ "parameterConfigForHeaders": {
790
+ "title": "Parameter Config For Headers",
791
+ "type": "object",
792
+ "properties": {
793
+ "ops": {
794
+ "$ref": "#/definitions/parameterOpList"
795
+ },
796
+ "serialize": {
797
+ "$ref": "#/definitions/parameterSerializeConfigForHeaders"
798
+ }
1250
799
  },
1251
- "resultsMapping": {
1252
- "$ref": "#/definitions/resultsMapping"
1253
- }
800
+ "required": ["ops"],
801
+ "additionalProperties": false
1254
802
  },
1255
- "required": ["name", "service", "functionName"],
1256
- "additionalProperties": false
1257
- },
1258
- "composeResolver": {
1259
- "title": "ComposeResolver",
1260
- "type": "object",
1261
- "properties": {
1262
- "compose": {
1263
- "type": "array",
1264
- "items": {
1265
- "$ref": "#/definitions/basicResolver"
803
+ "parameterConfigForJson": {
804
+ "title": "Parameter Config For Json",
805
+ "type": "object",
806
+ "properties": {
807
+ "ops": {
808
+ "$ref": "#/definitions/parameterOpList"
1266
809
  }
1267
810
  },
1268
- "resultsMapping": {
1269
- "oneOf": [
1270
- {
1271
- "$ref": "#/definitions/directiveMappingMap"
1272
- },
1273
- {
1274
- "$ref": "#/definitions/directiveConfig"
1275
- }
1276
- ]
811
+ "required": ["ops"],
812
+ "additionalProperties": false
813
+ },
814
+ "directiveConfig": {
815
+ "title": "Directive Config",
816
+ "description": "An array of individual directive config items to process in order",
817
+ "type": "array",
818
+ "items": {
819
+ "$ref": "#/definitions/directiveConfigItem"
1277
820
  },
1278
- "results": {
1279
- "description": "Mapping configuration for final query results.",
1280
- "$ref": "#/definitions/parameterConfigForJson"
821
+ "minItems": 1
822
+ },
823
+ "directiveMappingMap": {
824
+ "title": "Directive Mapping Map",
825
+ "description": "An map of object keys / key paths to directive configs",
826
+ "type": "object",
827
+ "patternProperties": {
828
+ "[0-9A-Za-z_-]+": {
829
+ "$ref": "#/definitions/directiveConfig"
830
+ }
1281
831
  }
1282
832
  },
1283
- "required": ["compose"],
1284
- "additionalProperties": false
1285
- },
1286
- "resolver": {
1287
- "title": "Resolver",
1288
- "oneOf": [{"$ref": "#/definitions/basicResolver"}, {"$ref": "#/definitions/composeResolver"}]
1289
- },
1290
- "ref": {
1291
- "title": "Ref",
1292
- "type": "string"
1293
- },
1294
- "query": {
1295
- "title": "Query",
1296
- "type": "object",
1297
- "properties": {
1298
- "args": {
1299
- "description": "The args field specifies the name of a Shape for the input arguments required by your resolver.",
1300
- "$ref": "#/definitions/args"
1301
- },
1302
- "resolver": {
1303
- "description": "Configures the resolver for your query or mutation.",
1304
- "$ref": "#/definitions/resolver"
1305
- },
1306
- "shape": {
1307
- "$ref": "#/definitions/returnShape",
1308
- "description": "Specifies which shape is returned by the query or mutation. The shape can refer to a shape in the schema's \"shapes\" object or a shape that's available on a service schema."
1309
- },
1310
- "description": {
1311
- "type": "string",
1312
- "description": "Provides more detail about what the query or mutation is for. This will be displayed in the automatically-generated GraphQL API docs."
1313
- }
833
+ "directiveMappingArrayItem": {
834
+ "title": "Directive Mapping Array Item",
835
+ "description": "A tuple with a string key and a directive config to evaluate",
836
+ "type": "array",
837
+ "items": [{"type": "string"}, {"$ref": "#/definitions/directiveConfig"}]
1314
838
  },
1315
- "required": ["resolver", "shape"]
1316
- },
1317
- "propertySchema": {
1318
- "title": "PropertySchema",
1319
- "type": "object",
1320
- "properties": {
1321
- "$ref": {
1322
- "type": "string",
1323
- "format": "uri-reference"
1324
- },
1325
- "title": {
1326
- "type": "string"
1327
- },
1328
- "description": {
1329
- "type": "string"
1330
- },
1331
- "default": {},
1332
- "readOnly": {
1333
- "type": "boolean",
1334
- "default": false
1335
- },
1336
- "multipleOf": {
1337
- "type": "number",
1338
- "exclusiveMinimum": 0
1339
- },
1340
- "maximum": {
1341
- "type": "number"
1342
- },
1343
- "exclusiveMaximum": {
1344
- "type": "number"
1345
- },
1346
- "minimum": {
1347
- "type": "number"
1348
- },
1349
- "exclusiveMinimum": {
1350
- "type": "number"
839
+ "directiveMappingArray": {
840
+ "title": "Directive Mapping Array",
841
+ "description": "An array of key / value or directive config tuples",
842
+ "type": "array",
843
+ "items": {"$ref": "#/definitions/directiveMappingArrayItem"}
844
+ },
845
+ "basicResolver": {
846
+ "title": "BasicResolver",
847
+ "description": "A single resolver, can be composed with the ComposeResolver.",
848
+ "oneOf": [
849
+ {
850
+ "$ref": "#/definitions/utilResolver"
851
+ },
852
+ {
853
+ "$ref": "#/definitions/takeshapeResolver"
854
+ },
855
+ {
856
+ "$ref": "#/definitions/internalTakeshapeResolver"
857
+ },
858
+ {
859
+ "$ref": "#/definitions/graphqlResolver"
860
+ },
861
+ {
862
+ "$ref": "#/definitions/restResolver"
863
+ },
864
+ {
865
+ "$ref": "#/definitions/awsLambdaResolver"
866
+ }
867
+ ]
868
+ },
869
+ "argsMapping": {
870
+ "title": "ArgsMapping",
871
+ "description": "Maps a query's input args to the input expected by the service's endpoint.",
872
+ "oneOf": [
873
+ {
874
+ "$ref": "#/definitions/directiveMappingMap"
875
+ },
876
+ {
877
+ "$ref": "#/definitions/directiveConfig"
878
+ }
879
+ ]
880
+ },
881
+ "searchParamsMapping": {
882
+ "title": "SearchParamsMapping",
883
+ "description": "Set or evaluate directives to generate searchParams for the service endpoint.",
884
+ "$ref": "#/definitions/directiveMappingArray"
885
+ },
886
+ "resultsMapping": {
887
+ "title": "ResultsMapping",
888
+ "description": "Maps a service endpoint's response results to the expected shape of the query's response.",
889
+ "oneOf": [
890
+ {
891
+ "$ref": "#/definitions/directiveMappingMap"
892
+ },
893
+ {
894
+ "$ref": "#/definitions/directiveConfig"
895
+ }
896
+ ]
897
+ },
898
+ "utilResolver": {
899
+ "title": "UtilResolver",
900
+ "type": "object",
901
+ "properties": {
902
+ "if": {
903
+ "type": "string"
904
+ },
905
+ "id": {
906
+ "type": "string",
907
+ "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
908
+ },
909
+ "name": {
910
+ "title": "UtilResolverName",
911
+ "type": "string",
912
+ "description": "Name of the resolver function.",
913
+ "enum": ["debug:noop", "util:wrap"]
914
+ },
915
+ "service": {
916
+ "type": "string",
917
+ "description": "Configuration for a service to use with this resolver."
918
+ },
919
+ "options": {
920
+ "title": "UtilResolverOptions",
921
+ "type": "object",
922
+ "additionalProperties": true
923
+ },
924
+ "args": {
925
+ "description": "Mapping and serialization configuration for args.",
926
+ "$ref": "#/definitions/parameterConfigForJson"
927
+ },
928
+ "results": {
929
+ "description": "Mapping configuration for the results of this resolver step.",
930
+ "$ref": "#/definitions/parameterConfigForJson"
931
+ },
932
+ "argsMapping": {
933
+ "$ref": "#/definitions/argsMapping"
934
+ },
935
+ "resultsMapping": {
936
+ "$ref": "#/definitions/resultsMapping"
937
+ }
1351
938
  },
1352
- "maxLength": {
1353
- "$ref": "#/definitions/nonNegativeInteger"
939
+ "required": ["name", "service"],
940
+ "additionalProperties": false
941
+ },
942
+ "takeshapeResolver": {
943
+ "title": "TakeshapeResolver",
944
+ "type": "object",
945
+ "properties": {
946
+ "if": {"type": "string"},
947
+ "id": {
948
+ "type": "string",
949
+ "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
950
+ },
951
+ "name": {
952
+ "title": "TakeshapeResolverName",
953
+ "type": "string",
954
+ "description": "Name of the resolver function.",
955
+ "enum": [
956
+ "takeshape:get",
957
+ "takeshape:create",
958
+ "takeshape:update",
959
+ "takeshape:delete",
960
+ "takeshape:duplicate",
961
+ "takeshape:find",
962
+ "takeshape:queryApiIndex"
963
+ ]
964
+ },
965
+ "service": {
966
+ "type": "string",
967
+ "description": "Internal service identifier.",
968
+ "enum": ["takeshape:local"]
969
+ },
970
+ "options": {
971
+ "title": "TakeshapeResolverOptions",
972
+ "type": "object",
973
+ "additionalProperties": true
974
+ },
975
+ "argsMapping": {
976
+ "$ref": "#/definitions/argsMapping"
977
+ },
978
+ "resultsMapping": {
979
+ "$ref": "#/definitions/resultsMapping"
980
+ },
981
+ "shapeName": {
982
+ "description": "A Shape name for the resolver to use.",
983
+ "type": "string",
984
+ "minLength": 1
985
+ },
986
+ "args": {
987
+ "description": "Mapping and serialization configuration for args.",
988
+ "$ref": "#/definitions/parameterConfigForJson"
989
+ },
990
+ "results": {
991
+ "description": "Mapping configuration for the results of this resolver step.",
992
+ "$ref": "#/definitions/parameterConfigForJson"
993
+ }
1354
994
  },
1355
- "minLength": {
1356
- "$ref": "#/definitions/nonNegativeIntegerDefault0"
995
+ "required": ["name", "service", "shapeName"],
996
+ "additionalProperties": false
997
+ },
998
+ "internalTakeshapeResolver": {
999
+ "title": "InternalTakeshapeResolver",
1000
+ "type": "object",
1001
+ "properties": {
1002
+ "if": {
1003
+ "type": "string"
1004
+ },
1005
+ "id": {
1006
+ "type": "string",
1007
+ "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
1008
+ },
1009
+ "name": {
1010
+ "title": "InternalTakeshapeResolverName",
1011
+ "type": "string",
1012
+ "description": "Name of the resolver function.",
1013
+ "enum": ["takeshape:getRelationship", "takeshape:taxonomySuggest", "takeshape:list", "takeshape:search", "takeshape:getUser"]
1014
+ },
1015
+ "service": {
1016
+ "type": "string",
1017
+ "description": "Internal service identifier.",
1018
+ "enum": ["takeshape:local"]
1019
+ },
1020
+ "options": {
1021
+ "title": "TakeshapeResolverOptions",
1022
+ "type": "object",
1023
+ "additionalProperties": true
1024
+ },
1025
+ "shapeName": {
1026
+ "description": "An optional Shape name for the resolver.",
1027
+ "type": "string",
1028
+ "minLength": 1
1029
+ },
1030
+ "args": {
1031
+ "description": "Mapping and serialization configuration for args.",
1032
+ "$ref": "#/definitions/parameterConfigForJson"
1033
+ },
1034
+ "results": {
1035
+ "description": "Mapping configuration for the results of this resolver step.",
1036
+ "$ref": "#/definitions/parameterConfigForJson"
1037
+ },
1038
+ "argsMapping": {
1039
+ "$ref": "#/definitions/argsMapping"
1040
+ },
1041
+ "resultsMapping": {
1042
+ "$ref": "#/definitions/resultsMapping"
1043
+ }
1357
1044
  },
1358
- "pattern": {
1359
- "type": "string",
1360
- "format": "regex"
1045
+ "required": ["name", "service"],
1046
+ "additionalProperties": false
1047
+ },
1048
+ "graphqlResolver": {
1049
+ "title": "GraphqlResolver",
1050
+ "type": "object",
1051
+ "properties": {
1052
+ "if": {"type": "string"},
1053
+ "id": {
1054
+ "type": "string",
1055
+ "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
1056
+ },
1057
+ "name": {
1058
+ "title": "GraphqlResolverName",
1059
+ "type": "string",
1060
+ "description": "Name of the resolver function.",
1061
+ "enum": ["graphql:query", "graphql:mutation"]
1062
+ },
1063
+ "service": {
1064
+ "type": "string",
1065
+ "description": "Configuration for a service to use with this resolver."
1066
+ },
1067
+ "argsMapping": {
1068
+ "$ref": "#/definitions/argsMapping"
1069
+ },
1070
+ "resultsMapping": {
1071
+ "$ref": "#/definitions/resultsMapping"
1072
+ },
1073
+ "options": {
1074
+ "title": "GraphqlResolverOptions",
1075
+ "type": "object",
1076
+ "properties": {
1077
+ "selectionSet": {"type": "string"},
1078
+ "unboxParentSelectionSet": {"type": "boolean"},
1079
+ "ignoreErrors": {"type": "boolean"},
1080
+ "skipWhenMissingArgs": {"type": "boolean"},
1081
+ "ttl": {"type": "number"},
1082
+ "timeout": {"type": "number"},
1083
+ "retry": {"oneOf": [{"type": "number"}, {"type": "object"}]}
1084
+ },
1085
+ "additionalProperties": true
1086
+ },
1087
+ "fieldName": {
1088
+ "description": "A fieldname to use in queries.",
1089
+ "type": "string"
1090
+ },
1091
+ "headers": {
1092
+ "description": "Mapping and serialization configuration for headers.",
1093
+ "$ref": "#/definitions/parameterConfigForHeaders"
1094
+ },
1095
+ "searchParams": {
1096
+ "description": "Mapping and serialization configuration for searchParams.",
1097
+ "$ref": "#/definitions/parameterConfigForSearchParams"
1098
+ },
1099
+ "args": {
1100
+ "description": "Mapping and serialization configuration for args.",
1101
+ "$ref": "#/definitions/parameterConfigForJson"
1102
+ },
1103
+ "results": {
1104
+ "description": "Mapping configuration for the results of this resolver step.",
1105
+ "$ref": "#/definitions/parameterConfigForJson"
1106
+ }
1361
1107
  },
1362
- "additionalItems": {
1363
- "$ref": "#/definitions/propertySchema"
1108
+ "required": ["name", "service", "fieldName"],
1109
+ "additionalProperties": false
1110
+ },
1111
+ "restResolver": {
1112
+ "title": "RestResolver",
1113
+ "type": "object",
1114
+ "properties": {
1115
+ "if": {"type": "string"},
1116
+ "id": {
1117
+ "type": "string",
1118
+ "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
1119
+ },
1120
+ "name": {
1121
+ "title": "RestResolverName",
1122
+ "type": "string",
1123
+ "description": "Name of the resolver function.",
1124
+ "enum": ["rest:get", "rest:head", "rest:post", "rest:put", "rest:patch", "rest:delete"]
1125
+ },
1126
+ "service": {
1127
+ "type": "string",
1128
+ "description": "Configuration for a service to use with this resolver."
1129
+ },
1130
+ "argsMapping": {
1131
+ "$ref": "#/definitions/argsMapping"
1132
+ },
1133
+ "searchParamsMapping": {
1134
+ "$ref": "#/definitions/searchParamsMapping"
1135
+ },
1136
+ "resultsMapping": {
1137
+ "$ref": "#/definitions/resultsMapping"
1138
+ },
1139
+ "options": {
1140
+ "title": "RestResolverOptions",
1141
+ "type": "object",
1142
+ "properties": {
1143
+ "trailingSlash": {"type": "boolean"},
1144
+ "ttl": {"type": "number"},
1145
+ "timeout": {"type": "number"},
1146
+ "retry": {"oneOf": [{"type": "number"}, {"type": "object"}]}
1147
+ },
1148
+ "additionalProperties": true
1149
+ },
1150
+ "body": {
1151
+ "description": "Mapping and serialization configuration for a request body.",
1152
+ "$ref": "#/definitions/parameterConfigForBody"
1153
+ },
1154
+ "form": {
1155
+ "description": "Mapping and serialization configuration for form data.",
1156
+ "$ref": "#/definitions/parameterConfigForSearchParams"
1157
+ },
1158
+ "headers": {
1159
+ "description": "Mapping and serialization configuration for headers.",
1160
+ "$ref": "#/definitions/parameterConfigForHeaders"
1161
+ },
1162
+ "json": {
1163
+ "description": "Mapping and serialization configuration for a json request body.",
1164
+ "$ref": "#/definitions/parameterConfigForJson"
1165
+ },
1166
+ "path": {
1167
+ "description": "Mapping and serialization configuration for the path, or a simple string.",
1168
+ "oneOf": [
1169
+ {
1170
+ "$ref": "#/definitions/parameterConfigForPathParams"
1171
+ },
1172
+ {
1173
+ "type": "string"
1174
+ }
1175
+ ]
1176
+ },
1177
+ "searchParams": {
1178
+ "description": "Mapping and serialization configuration for searchParams.",
1179
+ "$ref": "#/definitions/parameterConfigForSearchParams"
1180
+ },
1181
+ "args": {
1182
+ "description": "Mapping and serialization configuration for args.",
1183
+ "$ref": "#/definitions/parameterConfigForJson"
1184
+ },
1185
+ "results": {
1186
+ "description": "Mapping configuration for the results of this resolver step.",
1187
+ "$ref": "#/definitions/parameterConfigForJson"
1188
+ }
1364
1189
  },
1365
- "items": {
1366
- "$ref": "#/definitions/propertySchema"
1190
+ "required": ["name", "service", "path"],
1191
+ "additionalProperties": false
1192
+ },
1193
+ "awsLambdaResolver": {
1194
+ "title": "AwsLambdaResolver",
1195
+ "type": "object",
1196
+ "properties": {
1197
+ "if": {"type": "string"},
1198
+ "id": {
1199
+ "type": "string",
1200
+ "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
1201
+ },
1202
+ "name": {
1203
+ "title": "AwsLambdaResolverName",
1204
+ "type": "string",
1205
+ "description": "Name of the resolver function.",
1206
+ "enum": ["awsLambda:invoke"]
1207
+ },
1208
+ "service": {
1209
+ "type": "string",
1210
+ "description": "Configuration for a service to use with this resolver."
1211
+ },
1212
+ "options": {
1213
+ "title": "AwsLambdaResolverOptions",
1214
+ "type": "object",
1215
+ "additionalProperties": true
1216
+ },
1217
+ "payload": {
1218
+ "description": "Mapping configuration the Payload.",
1219
+ "$ref": "#/definitions/parameterConfigForJson"
1220
+ },
1221
+ "functionName": {
1222
+ "description": "Mapping configuration for the FunctionName.",
1223
+ "oneOf": [
1224
+ {
1225
+ "type": "string"
1226
+ },
1227
+ {
1228
+ "$ref": "#/definitions/parameterConfigForAwsLambda"
1229
+ }
1230
+ ]
1231
+ },
1232
+ "clientContext": {
1233
+ "description": "Mapping configuration for the ClientContext.",
1234
+ "$ref": "#/definitions/parameterConfigForJson"
1235
+ },
1236
+ "args": {
1237
+ "description": "Mapping and serialization configuration for args.",
1238
+ "$ref": "#/definitions/parameterConfigForJson"
1239
+ },
1240
+ "results": {
1241
+ "description": "Mapping configuration for the results of this resolver step.",
1242
+ "$ref": "#/definitions/parameterConfigForJson"
1243
+ },
1244
+ "argsMapping": {
1245
+ "$ref": "#/definitions/argsMapping"
1246
+ },
1247
+ "searchParamsMapping": {
1248
+ "description": "Set or evaluate directives to generate searchParams for the service endpoint.",
1249
+ "$ref": "#/definitions/searchParamsMapping"
1250
+ },
1251
+ "resultsMapping": {
1252
+ "$ref": "#/definitions/resultsMapping"
1253
+ }
1367
1254
  },
1368
- "maxItems": {
1369
- "$ref": "#/definitions/nonNegativeInteger"
1255
+ "required": ["name", "service", "functionName"],
1256
+ "additionalProperties": false
1257
+ },
1258
+ "composeResolver": {
1259
+ "title": "ComposeResolver",
1260
+ "type": "object",
1261
+ "properties": {
1262
+ "compose": {
1263
+ "type": "array",
1264
+ "items": {
1265
+ "$ref": "#/definitions/basicResolver"
1266
+ }
1267
+ },
1268
+ "resultsMapping": {
1269
+ "oneOf": [
1270
+ {
1271
+ "$ref": "#/definitions/directiveMappingMap"
1272
+ },
1273
+ {
1274
+ "$ref": "#/definitions/directiveConfig"
1275
+ }
1276
+ ]
1277
+ },
1278
+ "results": {
1279
+ "description": "Mapping configuration for final query results.",
1280
+ "$ref": "#/definitions/parameterConfigForJson"
1281
+ }
1370
1282
  },
1371
- "minItems": {
1372
- "$ref": "#/definitions/nonNegativeIntegerDefault0"
1283
+ "required": ["compose"],
1284
+ "additionalProperties": false
1285
+ },
1286
+ "resolver": {
1287
+ "title": "Resolver",
1288
+ "oneOf": [{"$ref": "#/definitions/basicResolver"}, {"$ref": "#/definitions/composeResolver"}]
1289
+ },
1290
+ "ref": {
1291
+ "title": "Ref",
1292
+ "type": "string"
1293
+ },
1294
+ "query": {
1295
+ "title": "Query",
1296
+ "type": "object",
1297
+ "properties": {
1298
+ "args": {
1299
+ "description": "The args field specifies the name of a Shape for the input arguments required by your resolver.",
1300
+ "$ref": "#/definitions/args"
1301
+ },
1302
+ "resolver": {
1303
+ "description": "Configures the resolver for your query or mutation.",
1304
+ "$ref": "#/definitions/resolver"
1305
+ },
1306
+ "shape": {
1307
+ "$ref": "#/definitions/returnShape",
1308
+ "description": "Specifies which shape is returned by the query or mutation. The shape can refer to a shape in the schema's \"shapes\" object or a shape that's available on a service schema."
1309
+ },
1310
+ "description": {
1311
+ "type": "string",
1312
+ "description": "Provides more detail about what the query or mutation is for. This will be displayed in the automatically-generated GraphQL API docs."
1313
+ }
1373
1314
  },
1374
- "uniqueItems": {
1375
- "type": "boolean",
1376
- "default": false
1315
+ "required": ["resolver", "shape"]
1316
+ },
1317
+ "propertySchema": {
1318
+ "title": "PropertySchema",
1319
+ "type": "object",
1320
+ "properties": {
1321
+ "$ref": {
1322
+ "type": "string",
1323
+ "format": "uri-reference"
1324
+ },
1325
+ "title": {
1326
+ "type": "string"
1327
+ },
1328
+ "description": {
1329
+ "type": "string"
1330
+ },
1331
+ "default": {},
1332
+ "readOnly": {
1333
+ "type": "boolean",
1334
+ "default": false
1335
+ },
1336
+ "multipleOf": {
1337
+ "type": "number",
1338
+ "exclusiveMinimum": 0
1339
+ },
1340
+ "maximum": {
1341
+ "type": "number"
1342
+ },
1343
+ "exclusiveMaximum": {
1344
+ "type": "number"
1345
+ },
1346
+ "minimum": {
1347
+ "type": "number"
1348
+ },
1349
+ "exclusiveMinimum": {
1350
+ "type": "number"
1351
+ },
1352
+ "maxLength": {
1353
+ "$ref": "#/definitions/nonNegativeInteger"
1354
+ },
1355
+ "minLength": {
1356
+ "$ref": "#/definitions/nonNegativeIntegerDefault0"
1357
+ },
1358
+ "pattern": {
1359
+ "type": "string",
1360
+ "format": "regex"
1361
+ },
1362
+ "additionalItems": {
1363
+ "$ref": "#/definitions/propertySchema"
1364
+ },
1365
+ "items": {
1366
+ "$ref": "#/definitions/propertySchema"
1367
+ },
1368
+ "maxItems": {
1369
+ "$ref": "#/definitions/nonNegativeInteger"
1370
+ },
1371
+ "minItems": {
1372
+ "$ref": "#/definitions/nonNegativeIntegerDefault0"
1373
+ },
1374
+ "uniqueItems": {
1375
+ "type": "boolean",
1376
+ "default": false
1377
+ },
1378
+ "contains": {
1379
+ "$ref": "#/definitions/propertySchema"
1380
+ },
1381
+ "maxProperties": {
1382
+ "$ref": "#/definitions/nonNegativeInteger"
1383
+ },
1384
+ "minProperties": {
1385
+ "$ref": "#/definitions/nonNegativeIntegerDefault0"
1386
+ },
1387
+ "required": {
1388
+ "$ref": "#/definitions/stringArray"
1389
+ },
1390
+ "additionalProperties": {
1391
+ "oneOf": [{"$ref": "#/definitions/propertySchema"}, {"enum": [false]}]
1392
+ },
1393
+ "definitions": {
1394
+ "type": "object",
1395
+ "additionalProperties": {
1396
+ "$ref": "#/definitions/propertySchema"
1397
+ },
1398
+ "default": {}
1399
+ },
1400
+ "properties": {
1401
+ "type": "object",
1402
+ "additionalProperties": {
1403
+ "$ref": "#/definitions/propertySchema"
1404
+ },
1405
+ "default": {}
1406
+ },
1407
+ "const": {},
1408
+ "enum": {
1409
+ "type": "array",
1410
+ "minItems": 1,
1411
+ "uniqueItems": true
1412
+ },
1413
+ "type": {
1414
+ "anyOf": [
1415
+ {
1416
+ "$ref": "#/definitions/simpleTypes"
1417
+ },
1418
+ {
1419
+ "type": "array",
1420
+ "items": {
1421
+ "$ref": "#/definitions/simpleTypes"
1422
+ },
1423
+ "minItems": 1,
1424
+ "uniqueItems": true
1425
+ }
1426
+ ]
1427
+ },
1428
+ "format": {
1429
+ "type": "string"
1430
+ },
1431
+ "contentMediaType": {
1432
+ "type": "string"
1433
+ },
1434
+ "contentEncoding": {
1435
+ "type": "string"
1436
+ },
1437
+ "allOf": {
1438
+ "$ref": "#/definitions/schemaArray"
1439
+ },
1440
+ "discriminator": {
1441
+ "type": "object",
1442
+ "properties": {
1443
+ "propertyName": {
1444
+ "type": "string"
1445
+ }
1446
+ }
1447
+ },
1448
+ "oneOf": {
1449
+ "$ref": "#/definitions/schemaArray"
1450
+ },
1451
+ "extends": {
1452
+ "$ref": "#/definitions/objectOrRefArray"
1453
+ },
1454
+ "@relationship": {
1455
+ "$ref": "#/definitions/relationship"
1456
+ },
1457
+ "@backreference": {
1458
+ "$ref": "#/definitions/backreference"
1459
+ },
1460
+ "@input": {
1461
+ "$ref": "#/definitions/input"
1462
+ },
1463
+ "@syncLocaleStructure": {
1464
+ "type": "boolean"
1465
+ },
1466
+ "@sensitive": {
1467
+ "type": "boolean"
1468
+ },
1469
+ "@draftjs": {
1470
+ "type": "boolean"
1471
+ },
1472
+ "@l10n": {
1473
+ "type": "boolean"
1474
+ },
1475
+ "@key": {
1476
+ "type": "string",
1477
+ "pattern": "^[-_a-zA-Z0-9]+$"
1478
+ },
1479
+ "@workflow": {
1480
+ "type": "string"
1481
+ },
1482
+ "@mapping": {
1483
+ "$ref": "#/definitions/fieldMapping"
1484
+ },
1485
+ "@tag": {
1486
+ "type": "string"
1487
+ },
1488
+ "@tags": {
1489
+ "type": "array",
1490
+ "items": {
1491
+ "type": "string"
1492
+ }
1493
+ },
1494
+ "@deprecationReason": {
1495
+ "type": "string"
1496
+ },
1497
+ "@args": {
1498
+ "$ref": "#/definitions/args"
1499
+ },
1500
+ "@resolver": {
1501
+ "$ref": "#/definitions/resolver"
1502
+ },
1503
+ "@ref": {
1504
+ "$ref": "#/definitions/ref"
1505
+ },
1506
+ "@derivedFrom": {
1507
+ "type": "string"
1508
+ }
1377
1509
  },
1378
- "contains": {
1379
- "$ref": "#/definitions/propertySchema"
1510
+ "additionalProperties": false
1511
+ },
1512
+ "shape": {
1513
+ "title": "Shape",
1514
+ "description": "A Shape is a schema object for structuring and storing data from one or more sources, including the TakeShape data store and connected services",
1515
+ "type": "object",
1516
+ "properties": {
1517
+ "name": {
1518
+ "type": "string",
1519
+ "pattern": "^[_a-zA-Z][_a-zA-Z0-9]*$",
1520
+ "description": "The Pascal-cased human-readable id for a Shape. This value should match the shape's key in the shapes object. This value is used in @ref and @mapping annotations"
1521
+ },
1522
+ "id": {
1523
+ "type": "string",
1524
+ "pattern": "[0-9A-Za-z_-]+",
1525
+ "description": "The machine-readable id for a Shape which should never change. When using TakeShape's built-in database to store Shape data, this value is used database as a stable \"table name\" and changing it will result in orphaning that data."
1526
+ },
1527
+ "title": {
1528
+ "type": "string",
1529
+ "description": "The human-readable name for a Shape for use in a UI."
1530
+ },
1531
+ "description": {
1532
+ "type": "string"
1533
+ },
1534
+ "model": {
1535
+ "description": "Specifying a model type allows Shape data to be stored in TakeShape's built-in database",
1536
+ "type": "object",
1537
+ "properties": {
1538
+ "type": {
1539
+ "title": "Model Type",
1540
+ "type": "string",
1541
+ "enum": ["single", "multiple", "taxonomy"]
1542
+ }
1543
+ },
1544
+ "required": ["type"],
1545
+ "additionalProperties": false
1546
+ },
1547
+ "workflow": {
1548
+ "type": "string"
1549
+ },
1550
+ "schema": {
1551
+ "$ref": "#/definitions/shapeSchema"
1552
+ }
1380
1553
  },
1381
- "maxProperties": {
1382
- "$ref": "#/definitions/nonNegativeInteger"
1554
+ "required": ["name", "title", "id", "schema"],
1555
+ "additionalProperties": false
1556
+ },
1557
+ "shapeWithObjectSchema": {
1558
+ "title": "Shape With Object Schema",
1559
+ "type": "object",
1560
+ "allOf": [
1561
+ {
1562
+ "$ref": "#/definitions/shape"
1563
+ },
1564
+ {
1565
+ "type": "object",
1566
+ "properties": {
1567
+ "schema": {
1568
+ "$ref": "#/definitions/objectSchema"
1569
+ }
1570
+ },
1571
+ "required": ["schema"],
1572
+ "additionalProperties": false
1573
+ }
1574
+ ]
1575
+ },
1576
+ "shapeMap": {
1577
+ "title": "Shape Map",
1578
+ "type": "object",
1579
+ "patternProperties": {
1580
+ "[0-9A-Za-z_-]+": {"$ref": "#/definitions/shape"}
1581
+ }
1582
+ },
1583
+ "formMap": {
1584
+ "title": "Form Map",
1585
+ "type": "object",
1586
+ "patternProperties": {
1587
+ "[0-9A-Za-z_-]+": {
1588
+ "$ref": "#/definitions/formsConfig"
1589
+ }
1590
+ }
1591
+ },
1592
+ "indexedShapeMap": {
1593
+ "title": "Indexed Shape Map",
1594
+ "type": "object",
1595
+ "patternProperties": {
1596
+ "[0-9A-Za-z_-]+": {
1597
+ "$ref": "#/definitions/indexedShapeConfig"
1598
+ }
1599
+ }
1600
+ },
1601
+ "indexedShapeConfig": {
1602
+ "title": "Indexed Shape Config",
1603
+ "type": "object",
1604
+ "properties": {
1605
+ "idField": {
1606
+ "type": "string"
1607
+ },
1608
+ "searchSummaryField": {
1609
+ "type": "string"
1610
+ },
1611
+ "queries": {
1612
+ "$ref": "#/definitions/indexedShapeQueriesConfig"
1613
+ },
1614
+ "triggers": {
1615
+ "type": "array",
1616
+ "items": {
1617
+ "$ref": "#/definitions/indexedShapeTriggersConfig"
1618
+ }
1619
+ }
1383
1620
  },
1384
- "minProperties": {
1385
- "$ref": "#/definitions/nonNegativeIntegerDefault0"
1621
+ "additionalProperties": false,
1622
+ "required": ["queries", "triggers"]
1623
+ },
1624
+ "indexedShapeQueriesConfig": {
1625
+ "title": "Indexed Shape Queries Config",
1626
+ "type": "object",
1627
+ "properties": {
1628
+ "list": {
1629
+ "$ref": "#/definitions/indexedShapeListQueryConfig"
1630
+ },
1631
+ "get": {
1632
+ "$ref": "#/definitions/indexedShapeGetQueryConfig"
1633
+ }
1386
1634
  },
1387
- "required": {
1388
- "$ref": "#/definitions/stringArray"
1635
+ "additionalProperties": false
1636
+ },
1637
+ "indexedShapeListQueryConfig": {
1638
+ "title": "Indexed Shape Query All Config",
1639
+ "type": "object",
1640
+ "properties": {
1641
+ "name": {
1642
+ "type": "string"
1643
+ },
1644
+ "ignoreFields": {
1645
+ "type": "array",
1646
+ "items": {
1647
+ "type": "string"
1648
+ }
1649
+ },
1650
+ "objectDepthLimit": {
1651
+ "type": "number"
1652
+ },
1653
+ "pagination": {
1654
+ "$ref": "#/definitions/paginationConfig"
1655
+ }
1389
1656
  },
1390
- "additionalProperties": {
1391
- "oneOf": [{"$ref": "#/definitions/propertySchema"}, {"enum": [false]}]
1657
+ "additionalProperties": false,
1658
+ "required": ["name"]
1659
+ },
1660
+ "indexedShapeGetQueryConfig": {
1661
+ "title": "Indexed Shape Query Single Config",
1662
+ "type": "object",
1663
+ "properties": {
1664
+ "name": {
1665
+ "type": "string"
1666
+ },
1667
+ "ignoreFields": {
1668
+ "type": "array",
1669
+ "items": {
1670
+ "type": "string"
1671
+ }
1672
+ },
1673
+ "objectDepthLimit": {
1674
+ "type": "number"
1675
+ },
1676
+ "idArg": {
1677
+ "type": "string"
1678
+ }
1392
1679
  },
1393
- "definitions": {
1394
- "type": "object",
1395
- "additionalProperties": {
1396
- "$ref": "#/definitions/propertySchema"
1680
+ "additionalProperties": false,
1681
+ "required": ["name"]
1682
+ },
1683
+ "paginationConfig": {
1684
+ "title": "Pagination Config",
1685
+ "oneOf": [
1686
+ {
1687
+ "$ref": "#/definitions/paginationCursorConfig"
1688
+ },
1689
+ {
1690
+ "$ref": "#/definitions/paginationPageConfig"
1691
+ },
1692
+ {
1693
+ "$ref": "#/definitions/paginationOffsetConfig"
1694
+ }
1695
+ ]
1696
+ },
1697
+ "paginationCursorConfig": {
1698
+ "title": "Pagination Cursor Config",
1699
+ "type": "object",
1700
+ "properties": {
1701
+ "type": {
1702
+ "type": "string",
1703
+ "enum": ["cursor"]
1704
+ },
1705
+ "cursorArg": {
1706
+ "type": "string"
1707
+ },
1708
+ "cursorPath": {
1709
+ "type": "string"
1710
+ },
1711
+ "pageSize": {
1712
+ "type": "number"
1713
+ },
1714
+ "pageSizeArg": {
1715
+ "type": "string"
1716
+ },
1717
+ "hasMorePath": {
1718
+ "type": "string"
1397
1719
  },
1398
- "default": {}
1720
+ "itemsToIndexPath": {
1721
+ "type": "string"
1722
+ }
1399
1723
  },
1724
+ "additionalProperties": false,
1725
+ "required": ["type", "cursorArg", "cursorPath", "pageSizeArg", "hasMorePath", "itemsToIndexPath"]
1726
+ },
1727
+ "paginationPageConfig": {
1728
+ "title": "Pagination Page Config",
1729
+ "type": "object",
1400
1730
  "properties": {
1401
- "type": "object",
1402
- "additionalProperties": {
1403
- "$ref": "#/definitions/propertySchema"
1731
+ "type": {
1732
+ "type": "string",
1733
+ "enum": ["page"]
1404
1734
  },
1405
- "default": {}
1406
- },
1407
- "const": {},
1408
- "enum": {
1409
- "type": "array",
1410
- "minItems": 1,
1411
- "uniqueItems": true
1412
- },
1413
- "type": {
1414
- "anyOf": [
1415
- {
1416
- "$ref": "#/definitions/simpleTypes"
1417
- },
1418
- {
1419
- "type": "array",
1420
- "items": {
1421
- "$ref": "#/definitions/simpleTypes"
1422
- },
1423
- "minItems": 1,
1424
- "uniqueItems": true
1425
- }
1426
- ]
1427
- },
1428
- "format": {
1429
- "type": "string"
1430
- },
1431
- "contentMediaType": {
1432
- "type": "string"
1735
+ "pageArg": {
1736
+ "type": "string"
1737
+ },
1738
+ "itemsToIndexPath": {
1739
+ "type": "string"
1740
+ },
1741
+ "pageTotalPath": {
1742
+ "type": "string"
1743
+ }
1433
1744
  },
1434
- "contentEncoding": {
1435
- "type": "string"
1745
+ "additionalProperties": false,
1746
+ "required": ["type", "pageArg", "itemsToIndexPath", "pageTotalPath"]
1747
+ },
1748
+ "paginationOffsetConfig": {
1749
+ "title": "Pagination Offset Config",
1750
+ "type": "object",
1751
+ "properties": {
1752
+ "type": {
1753
+ "type": "string",
1754
+ "enum": ["offset"]
1755
+ },
1756
+ "offsetArg": {
1757
+ "type": "string"
1758
+ },
1759
+ "itemsToIndexPath": {
1760
+ "type": "string"
1761
+ },
1762
+ "itemTotalPath": {
1763
+ "type": "string"
1764
+ }
1436
1765
  },
1437
- "allOf": {
1438
- "$ref": "#/definitions/schemaArray"
1766
+ "additionalProperties": false,
1767
+ "required": ["type", "offsetArg", "itemsToIndexPath", "itemTotalPath"]
1768
+ },
1769
+ "indexedShapeTriggersConfig": {
1770
+ "title": "Indexed Shape Triggers Config",
1771
+ "oneOf": [
1772
+ {
1773
+ "$ref": "#/definitions/indexedShapeScheduleTriggerConfig"
1774
+ },
1775
+ {
1776
+ "$ref": "#/definitions/indexedShapeWebhookTriggerConfig"
1777
+ }
1778
+ ]
1779
+ },
1780
+ "indexedShapeScheduleTriggerConfig": {
1781
+ "title": "Indexed Shape Schedule Trigger Config",
1782
+ "type": "object",
1783
+ "properties": {
1784
+ "type": {
1785
+ "type": "string",
1786
+ "enum": ["schedule"]
1787
+ },
1788
+ "query": {
1789
+ "enum": ["get", "list"]
1790
+ },
1791
+ "interval": {
1792
+ "type": "number"
1793
+ }
1439
1794
  },
1440
- "discriminator": {
1441
- "type": "object",
1442
- "properties": {
1443
- "propertyName": {
1795
+ "additionalProperties": false,
1796
+ "required": ["type", "query", "interval"]
1797
+ },
1798
+ "indexedShapeWebhookTriggerConfig": {
1799
+ "title": "Indexed Shape Webhook Trigger Config",
1800
+ "type": "object",
1801
+ "properties": {
1802
+ "type": {
1803
+ "type": "string",
1804
+ "enum": ["webhook"]
1805
+ },
1806
+ "query": {
1807
+ "enum": ["get", "list"]
1808
+ },
1809
+ "service": {
1810
+ "type": "string"
1811
+ },
1812
+ "events": {
1813
+ "type": "array",
1814
+ "items": {
1444
1815
  "type": "string"
1445
1816
  }
1446
1817
  }
1447
1818
  },
1448
- "oneOf": {
1449
- "$ref": "#/definitions/schemaArray"
1450
- },
1451
- "extends": {
1452
- "$ref": "#/definitions/objectOrRefArray"
1453
- },
1454
- "@relationship": {
1455
- "$ref": "#/definitions/relationship"
1456
- },
1457
- "@backreference": {
1458
- "$ref": "#/definitions/backreference"
1459
- },
1460
- "@input": {
1461
- "$ref": "#/definitions/input"
1462
- },
1463
- "@syncLocaleStructure": {
1464
- "type": "boolean"
1465
- },
1466
- "@sensitive": {
1467
- "type": "boolean"
1468
- },
1469
- "@draftjs": {
1470
- "type": "boolean"
1471
- },
1472
- "@l10n": {
1473
- "type": "boolean"
1474
- },
1475
- "@key": {
1476
- "type": "string",
1477
- "pattern": "^[-_a-zA-Z0-9]+$"
1478
- },
1479
- "@workflow": {
1480
- "type": "string"
1481
- },
1482
- "@mapping": {
1483
- "$ref": "#/definitions/fieldMapping"
1484
- },
1485
- "@tag": {
1486
- "type": "string"
1487
- },
1488
- "@tags": {
1489
- "type": "array",
1490
- "items": {
1819
+ "additionalProperties": false,
1820
+ "required": ["type", "query", "service", "events"]
1821
+ },
1822
+ "formScalarConfig": {
1823
+ "title": "Form Scalar Config",
1824
+ "type": "object",
1825
+ "properties": {
1826
+ "widget": {
1491
1827
  "type": "string"
1492
1828
  }
1493
1829
  },
1494
- "@deprecationReason": {
1495
- "type": "string"
1496
- },
1497
- "@args": {
1498
- "$ref": "#/definitions/args"
1499
- },
1500
- "@resolver": {
1501
- "$ref": "#/definitions/resolver"
1502
- },
1503
- "@ref": {
1504
- "$ref": "#/definitions/ref"
1505
- },
1506
- "@derivedFrom": {
1507
- "type": "string"
1508
- }
1830
+ "additionalProperties": false,
1831
+ "required": ["widget"]
1509
1832
  },
1510
- "additionalProperties": false
1511
- },
1512
- "shape": {
1513
- "title": "Shape",
1514
- "description": "A Shape is a schema object for structuring and storing data from one or more sources, including the TakeShape data store and connected services",
1515
- "type": "object",
1516
- "properties": {
1517
- "name": {
1518
- "type": "string",
1519
- "pattern": "^[_a-zA-Z][_a-zA-Z0-9]*$",
1520
- "description": "The Pascal-cased human-readable id for a Shape. This value should match the shape's key in the shapes object. This value is used in @ref and @mapping annotations"
1521
- },
1522
- "id": {
1523
- "type": "string",
1524
- "pattern": "[0-9A-Za-z_-]+",
1525
- "description": "The machine-readable id for a Shape which should never change. When using TakeShape's built-in database to store Shape data, this value is used database as a stable \"table name\" and changing it will result in orphaning that data."
1526
- },
1527
- "title": {
1528
- "type": "string",
1529
- "description": "The human-readable name for a Shape for use in a UI."
1530
- },
1531
- "description": {
1532
- "type": "string"
1533
- },
1534
- "model": {
1535
- "description": "Specifying a model type allows Shape data to be stored in TakeShape's built-in database",
1536
- "type": "object",
1537
- "properties": {
1538
- "type": {
1539
- "title": "Model Type",
1540
- "type": "string",
1541
- "enum": ["single", "multiple", "taxonomy"]
1833
+ "formObjectConfig": {
1834
+ "title": "Form Object Config",
1835
+ "type": "object",
1836
+ "properties": {
1837
+ "widget": {
1838
+ "type": "string"
1839
+ },
1840
+ "order": {
1841
+ "type": "array",
1842
+ "items": {
1843
+ "type": "string"
1542
1844
  }
1543
1845
  },
1544
- "required": ["type"],
1545
- "additionalProperties": false
1546
- },
1547
- "workflow": {
1548
- "type": "string"
1549
- },
1550
- "schema": {
1551
- "$ref": "#/definitions/shapeSchema"
1552
- }
1553
- },
1554
- "required": ["name", "title", "id", "schema"],
1555
- "additionalProperties": false
1556
- },
1557
- "shapeWithObjectSchema": {
1558
- "title": "Shape With Object Schema",
1559
- "type": "object",
1560
- "allOf": [
1561
- {
1562
- "$ref": "#/definitions/shape"
1563
- },
1564
- {
1565
- "type": "object",
1566
1846
  "properties": {
1567
- "schema": {
1568
- "$ref": "#/definitions/objectSchema"
1847
+ "patternProperties": {
1848
+ "[0-9A-Za-z_-]+": {
1849
+ "$ref": "#/definitions/formConfig"
1850
+ }
1569
1851
  }
1570
- },
1571
- "required": ["schema"],
1572
- "additionalProperties": false
1573
- }
1574
- ]
1575
- },
1576
- "shapeMap": {
1577
- "title": "Shape Map",
1578
- "type": "object",
1579
- "patternProperties": {
1580
- "[0-9A-Za-z_-]+": {"$ref": "#/definitions/shape"}
1581
- }
1582
- },
1583
- "formMap": {
1584
- "title": "Form Map",
1585
- "type": "object",
1586
- "patternProperties": {
1587
- "[0-9A-Za-z_-]+": {
1588
- "$ref": "#/definitions/formsConfig"
1589
- }
1590
- }
1591
- },
1592
- "indexedShapeMap": {
1593
- "title": "Indexed Shape Map",
1594
- "type": "object",
1595
- "patternProperties": {
1596
- "[0-9A-Za-z_-]+": {
1597
- "$ref": "#/definitions/indexedShapeConfig"
1598
- }
1599
- }
1600
- },
1601
- "indexedShapeConfig": {
1602
- "title": "Indexed Shape Config",
1603
- "type": "object",
1604
- "properties": {
1605
- "idField": {
1606
- "type": "string"
1607
- },
1608
- "searchSummaryField": {
1609
- "type": "string"
1610
- },
1611
- "queries": {
1612
- "$ref": "#/definitions/indexedShapeQueriesConfig"
1852
+ }
1613
1853
  },
1614
- "triggers": {
1615
- "type": "array",
1854
+ "additionalProperties": false
1855
+ },
1856
+ "formArrayConfig": {
1857
+ "title": "Form Array Config",
1858
+ "type": "object",
1859
+ "properties": {
1860
+ "widget": {
1861
+ "type": "string"
1862
+ },
1616
1863
  "items": {
1617
- "$ref": "#/definitions/indexedShapeTriggersConfig"
1864
+ "$ref": "#/definitions/formConfig"
1618
1865
  }
1619
- }
1866
+ },
1867
+ "additionalProperties": false,
1868
+ "required": ["widget", "items"]
1620
1869
  },
1621
- "additionalProperties": false,
1622
- "required": ["queries", "triggers"]
1623
- },
1624
- "indexedShapeQueriesConfig": {
1625
- "title": "Indexed Shape Queries Config",
1626
- "type": "object",
1627
- "properties": {
1628
- "list": {
1629
- "$ref": "#/definitions/indexedShapeListQueryConfig"
1630
- },
1631
- "get": {
1632
- "$ref": "#/definitions/indexedShapeGetQueryConfig"
1633
- }
1870
+ "customAuthentication": {
1871
+ "title": "Custom Authentication",
1872
+ "description": "For use with a custom auth handler on a service provider.",
1873
+ "type": "object",
1874
+ "properties": {
1875
+ "type": {
1876
+ "type": "string",
1877
+ "enum": ["custom"]
1878
+ }
1879
+ },
1880
+ "additionalProperties": true,
1881
+ "required": ["type"]
1634
1882
  },
1635
- "additionalProperties": false
1636
- },
1637
- "indexedShapeListQueryConfig": {
1638
- "title": "Indexed Shape Query All Config",
1639
- "type": "object",
1640
- "properties": {
1641
- "name": {
1642
- "type": "string"
1883
+ "searchParamsAuthentication": {
1884
+ "title": "Search Params Authentication",
1885
+ "type": "object",
1886
+ "properties": {
1887
+ "type": {
1888
+ "type": "string",
1889
+ "enum": ["searchParams"]
1890
+ },
1891
+ "params": {
1892
+ "type": "array",
1893
+ "items": {
1894
+ "properties": {
1895
+ "name": {
1896
+ "type": "string"
1897
+ },
1898
+ "value": {
1899
+ "type": "string"
1900
+ }
1901
+ },
1902
+ "required": ["name", "value"],
1903
+ "additionalProperties": false
1904
+ }
1905
+ }
1643
1906
  },
1644
- "ignoreFields": {
1645
- "type": "array",
1646
- "items": {
1907
+ "additionalProperties": false,
1908
+ "required": ["type", "params"]
1909
+ },
1910
+ "bearerAuthentication": {
1911
+ "title": "Bearer Authentication",
1912
+ "type": "object",
1913
+ "properties": {
1914
+ "type": {
1915
+ "type": "string",
1916
+ "enum": ["bearer"]
1917
+ },
1918
+ "token": {
1919
+ "type": "string"
1920
+ },
1921
+ "prefix": {
1922
+ "type": "string"
1923
+ },
1924
+ "header": {
1647
1925
  "type": "string"
1648
1926
  }
1649
1927
  },
1650
- "objectDepthLimit": {
1651
- "type": "number"
1652
- },
1653
- "pagination": {
1654
- "$ref": "#/definitions/paginationConfig"
1655
- }
1928
+ "additionalProperties": false,
1929
+ "required": ["type", "token"]
1656
1930
  },
1657
- "additionalProperties": false,
1658
- "required": ["name"]
1659
- },
1660
- "indexedShapeGetQueryConfig": {
1661
- "title": "Indexed Shape Query Single Config",
1662
- "type": "object",
1663
- "properties": {
1664
- "name": {
1665
- "type": "string"
1666
- },
1667
- "ignoreFields": {
1668
- "type": "array",
1669
- "items": {
1931
+ "oauth2BearerAuthentication": {
1932
+ "title": "OAuth 2 Bearer Authentication",
1933
+ "type": "object",
1934
+ "properties": {
1935
+ "type": {
1936
+ "type": "string",
1937
+ "enum": ["oauth2Bearer"]
1938
+ },
1939
+ "token": {
1940
+ "type": "string"
1941
+ },
1942
+ "prefix": {
1943
+ "type": "string"
1944
+ },
1945
+ "header": {
1946
+ "type": "string"
1947
+ },
1948
+ "scope": {
1949
+ "type": "string"
1950
+ },
1951
+ "expiresAt": {
1670
1952
  "type": "string"
1671
1953
  }
1672
1954
  },
1673
- "objectDepthLimit": {
1674
- "type": "number"
1675
- }
1955
+ "additionalProperties": false,
1956
+ "required": ["type", "token"]
1676
1957
  },
1677
- "additionalProperties": false,
1678
- "required": ["name"]
1679
- },
1680
- "paginationConfig": {
1681
- "title": "Pagination Config",
1682
- "oneOf": [
1683
- {
1684
- "$ref": "#/definitions/paginationCursorConfig"
1685
- },
1686
- {
1687
- "$ref": "#/definitions/paginationPageConfig"
1688
- },
1689
- {
1690
- "$ref": "#/definitions/paginationOffsetConfig"
1691
- }
1692
- ]
1693
- },
1694
- "paginationCursorConfig": {
1695
- "title": "Pagination Cursor Config",
1696
- "type": "object",
1697
- "properties": {
1698
- "type": {
1699
- "type": "string",
1700
- "enum": ["cursor"]
1701
- },
1702
- "cursorArg": {
1703
- "type": "string"
1704
- },
1705
- "cursorPath": {
1706
- "type": "string"
1707
- },
1708
- "pageSize": {
1709
- "type": "number"
1710
- },
1711
- "pageSizeArg": {
1712
- "type": "string"
1713
- },
1714
- "hasMorePath": {
1715
- "type": "string"
1958
+ "basicAuthentication": {
1959
+ "title": "Basic Authentication",
1960
+ "type": "object",
1961
+ "properties": {
1962
+ "type": {
1963
+ "type": "string",
1964
+ "enum": ["basic"]
1965
+ },
1966
+ "username": {
1967
+ "type": "string"
1968
+ },
1969
+ "password": {
1970
+ "type": "string"
1971
+ },
1972
+ "useIso8859": {
1973
+ "type": "boolean"
1974
+ }
1716
1975
  },
1717
- "itemsToIndexPath": {
1718
- "type": "string"
1719
- }
1976
+ "additionalProperties": false,
1977
+ "required": ["type", "username", "password"]
1720
1978
  },
1721
- "additionalProperties": false,
1722
- "required": ["type", "cursorArg", "cursorPath", "pageSizeArg", "hasMorePath", "itemsToIndexPath"]
1723
- },
1724
- "paginationPageConfig": {
1725
- "title": "Pagination Page Config",
1726
- "type": "object",
1727
- "properties": {
1728
- "type": {
1729
- "type": "string",
1730
- "enum": ["page"]
1731
- },
1732
- "pageArg": {
1733
- "type": "string"
1734
- },
1735
- "itemsToIndexPath": {
1736
- "type": "string"
1979
+ "oauth2Authentication": {
1980
+ "title": "OAuth 2 Authentication",
1981
+ "type": "object",
1982
+ "properties": {
1983
+ "type": {
1984
+ "type": "string",
1985
+ "enum": ["oauth2"]
1986
+ },
1987
+ "grantType": {
1988
+ "type": "string",
1989
+ "enum": ["authorizationCode", "clientCredentials"]
1990
+ },
1991
+ "authorizationUrl": {
1992
+ "type": "string"
1993
+ },
1994
+ "accessTokenUrl": {
1995
+ "type": "string"
1996
+ },
1997
+ "clientId": {
1998
+ "type": "string"
1999
+ },
2000
+ "clientSecret": {
2001
+ "type": "string"
2002
+ },
2003
+ "scope": {
2004
+ "type": "string"
2005
+ },
2006
+ "usePkce": {
2007
+ "type": "boolean"
2008
+ },
2009
+ "redirectUrl": {
2010
+ "type": "string"
2011
+ },
2012
+ "headerPrefix": {
2013
+ "type": "string"
2014
+ },
2015
+ "audience": {
2016
+ "type": "string"
2017
+ },
2018
+ "resource": {
2019
+ "type": "string"
2020
+ }
1737
2021
  },
1738
- "pageTotalPath": {
1739
- "type": "string"
1740
- }
2022
+ "additionalProperties": false,
2023
+ "required": ["type", "grantType", "clientId"]
1741
2024
  },
1742
- "additionalProperties": false,
1743
- "required": ["type", "pageArg", "itemsToIndexPath", "pageTotalPath"]
1744
- },
1745
- "paginationOffsetConfig": {
1746
- "title": "Pagination Offset Config",
1747
- "type": "object",
1748
- "properties": {
1749
- "type": {
1750
- "type": "string",
1751
- "enum": ["offset"]
1752
- },
1753
- "offsetArg": {
1754
- "type": "string"
1755
- },
1756
- "itemsToIndexPath": {
1757
- "type": "string"
2025
+ "awsAuthentication": {
2026
+ "title": "AWS Authentication",
2027
+ "type": "object",
2028
+ "properties": {
2029
+ "type": {
2030
+ "type": "string",
2031
+ "enum": ["aws"]
2032
+ },
2033
+ "awsAccessKeyId": {
2034
+ "type": "string"
2035
+ },
2036
+ "awsSecretAccessKey": {
2037
+ "type": "string"
2038
+ }
1758
2039
  },
1759
- "itemTotalPath": {
1760
- "type": "string"
1761
- }
2040
+ "additionalProperties": false,
2041
+ "required": ["type", "awsAccessKeyId", "awsSecretAccessKey"]
2042
+ },
2043
+ "serviceAuthentication": {
2044
+ "title": "Service Authentication",
2045
+ "oneOf": [
2046
+ {
2047
+ "$ref": "#/definitions/oauth2Authentication"
2048
+ },
2049
+ {
2050
+ "$ref": "#/definitions/oauth2BearerAuthentication"
2051
+ },
2052
+ {
2053
+ "$ref": "#/definitions/bearerAuthentication"
2054
+ },
2055
+ {
2056
+ "$ref": "#/definitions/basicAuthentication"
2057
+ },
2058
+ {
2059
+ "$ref": "#/definitions/searchParamsAuthentication"
2060
+ },
2061
+ {
2062
+ "$ref": "#/definitions/awsAuthentication"
2063
+ },
2064
+ {
2065
+ "$ref": "#/definitions/customAuthentication"
2066
+ }
2067
+ ]
1762
2068
  },
1763
- "additionalProperties": false,
1764
- "required": ["type", "offsetArg", "itemsToIndexPath", "itemTotalPath"]
1765
- },
1766
- "indexedShapeTriggersConfig": {
1767
- "title": "Indexed Shape Triggers Config",
1768
- "oneOf": [
1769
- {
1770
- "$ref": "#/definitions/indexedShapeScheduleTriggerConfig"
1771
- },
1772
- {
1773
- "$ref": "#/definitions/indexedShapeWebhookTriggerConfig"
1774
- }
1775
- ]
1776
- },
1777
- "indexedShapeScheduleTriggerConfig": {
1778
- "title": "Indexed Shape Schedule Trigger Config",
1779
- "type": "object",
1780
- "properties": {
1781
- "type": {
1782
- "type": "string",
1783
- "enum": ["schedule"]
1784
- },
1785
- "query": {
1786
- "enum": ["get", "list"]
1787
- },
1788
- "interval": {
1789
- "type": "number"
1790
- }
2069
+ "serviceType": {
2070
+ "title": "Service Type",
2071
+ "description": "The general type of this service, specifying how and where it will be utilized.",
2072
+ "type": "string",
2073
+ "enum": ["deployment", "authentication", "takeshape", "rest", "graphql", "openapi", "aws", "unknown"]
1791
2074
  },
1792
- "additionalProperties": false,
1793
- "required": ["type", "query", "interval"]
1794
- },
1795
- "indexedShapeWebhookTriggerConfig": {
1796
- "title": "Indexed Shape Webhook Trigger Config",
1797
- "type": "object",
1798
- "properties": {
1799
- "type": {
1800
- "type": "string",
1801
- "enum": ["webhook"]
1802
- },
1803
- "query": {
1804
- "enum": ["get", "list"]
1805
- },
1806
- "service": {
1807
- "type": "string"
2075
+ "serviceConfig": {
2076
+ "title": "Service Config",
2077
+ "type": "object",
2078
+ "properties": {
2079
+ "id": {
2080
+ "type": "string",
2081
+ "description": "Machine-readable identifier, should typically be the same as the property name on the services object."
2082
+ },
2083
+ "title": {
2084
+ "type": "string",
2085
+ "description": "Human-readable name for this service."
2086
+ },
2087
+ "provider": {
2088
+ "description": "The service provider id.",
2089
+ "type": "string"
2090
+ },
2091
+ "namespace": {
2092
+ "type": "string",
2093
+ "description": "A namespace to use for the imported types tied to this service."
2094
+ },
2095
+ "serviceType": {
2096
+ "$ref": "#/definitions/serviceType"
2097
+ },
2098
+ "authenticationType": {
2099
+ "type": "string",
2100
+ "enum": ["oauth2", "basic", "bearer", "searchParams", "oauth2Bearer", "custom", "aws", "none", "unknown"]
2101
+ },
2102
+ "authentication": {
2103
+ "$ref": "#/definitions/serviceAuthentication"
2104
+ },
2105
+ "webhookId": {
2106
+ "type": "string"
2107
+ },
2108
+ "options": {
2109
+ "type": "object",
2110
+ "description": "Configuration options passed to and handled by the provider."
2111
+ }
1808
2112
  },
1809
- "events": {
1810
- "type": "array",
1811
- "items": {
2113
+ "required": ["id", "title", "provider", "serviceType", "authenticationType"],
2114
+ "additionalProperties": false
2115
+ },
2116
+ "storedServiceConfig": {
2117
+ "title": "Stored Service Config",
2118
+ "type": "object",
2119
+ "properties": {
2120
+ "id": {
2121
+ "type": "string",
2122
+ "description": "Machine-readable identifier, should typically be the same as the property name on the services object."
2123
+ },
2124
+ "title": {
2125
+ "type": "string",
2126
+ "description": "Human-readable name for this service."
2127
+ },
2128
+ "provider": {
2129
+ "type": "string",
2130
+ "description": "The service provider id."
2131
+ },
2132
+ "namespace": {
2133
+ "type": "string",
2134
+ "description": "A namespace to use for the imported types tied to this service."
2135
+ },
2136
+ "serviceType": {
2137
+ "$ref": "#/definitions/serviceType"
2138
+ },
2139
+ "authenticationType": {
2140
+ "type": "string",
2141
+ "enum": ["oauth2", "basic", "bearer", "searchParams", "oauth2Bearer", "custom", "aws", "none", "unknown"]
2142
+ },
2143
+ "authentication": {
2144
+ "type": "string"
2145
+ },
2146
+ "webhookId": {
1812
2147
  "type": "string"
2148
+ },
2149
+ "options": {
2150
+ "type": "object",
2151
+ "description": "Configuration options passed to and handled by the provider."
1813
2152
  }
1814
- }
2153
+ },
2154
+ "required": ["id", "title", "provider", "serviceType", "authenticationType"],
2155
+ "additionalProperties": false
1815
2156
  },
1816
- "additionalProperties": false,
1817
- "required": ["type", "query", "service", "events"]
1818
- },
1819
- "formScalarConfig": {
1820
- "title": "Form Scalar Config",
1821
- "type": "object",
1822
- "properties": {
1823
- "widget": {
1824
- "type": "string"
2157
+ "anyServiceConfig": {
2158
+ "title": "Any Service Config",
2159
+ "oneOf": [
2160
+ {
2161
+ "$ref": "#/definitions/storedServiceConfig"
2162
+ },
2163
+ {
2164
+ "$ref": "#/definitions/serviceConfig"
2165
+ }
2166
+ ]
2167
+ },
2168
+ "storedServiceMap": {
2169
+ "title": "Stored Service Map",
2170
+ "type": "object",
2171
+ "patternProperties": {
2172
+ "[0-9A-Za-z_-]+": {
2173
+ "$ref": "#/definitions/storedServiceConfig"
2174
+ }
1825
2175
  }
1826
2176
  },
1827
- "additionalProperties": false,
1828
- "required": ["widget"]
1829
- },
1830
- "formObjectConfig": {
1831
- "title": "Form Object Config",
1832
- "type": "object",
1833
- "properties": {
1834
- "widget": {
1835
- "type": "string"
1836
- },
1837
- "order": {
1838
- "type": "array",
1839
- "items": {
2177
+ "workflowStep": {
2178
+ "title": "Workflow Step",
2179
+ "type": "object",
2180
+ "properties": {
2181
+ "name": {
2182
+ "type": "string",
2183
+ "title": "Name",
2184
+ "pattern": "^[_a-zA-Z][_a-zA-Z0-9]*$",
2185
+ "description": "machine-readable slug"
2186
+ },
2187
+ "title": {
2188
+ "title": "Title",
2189
+ "type": "string",
2190
+ "description": "Human-readable id for use in the UI"
2191
+ },
2192
+ "description": {
2193
+ "title": "Description",
1840
2194
  "type": "string"
2195
+ },
2196
+ "color": {
2197
+ "title": "Color",
2198
+ "type": "string",
2199
+ "description": "Hex color code"
2200
+ },
2201
+ "live": {
2202
+ "title": "Live",
2203
+ "type": "boolean",
2204
+ "description": "Value to indicate whether items in the state should be returned in list queries"
2205
+ },
2206
+ "key": {
2207
+ "title": "Key",
2208
+ "type": "string",
2209
+ "description": "machine-readable id"
1841
2210
  }
1842
2211
  },
2212
+ "required": ["name", "title", "color", "live", "key"],
2213
+ "additionalProperties": false
2214
+ },
2215
+ "workflow": {
2216
+ "title": "Workflow",
2217
+ "type": "object",
1843
2218
  "properties": {
1844
- "patternProperties": {
1845
- "[0-9A-Za-z_-]+": {
1846
- "$ref": "#/definitions/formConfig"
1847
- }
2219
+ "name": {
2220
+ "type": "string",
2221
+ "pattern": "^[_a-zA-Z][_a-zA-Z0-9]*$",
2222
+ "description": "machine-readable id"
2223
+ },
2224
+ "title": {
2225
+ "type": "string",
2226
+ "title": "Workflow Name",
2227
+ "minLength": 1,
2228
+ "description": "Human-readable id for use in the UI"
2229
+ },
2230
+ "steps": {
2231
+ "type": "array",
2232
+ "title": "Steps",
2233
+ "items": {
2234
+ "$ref": "#/definitions/workflowStep"
2235
+ },
2236
+ "minItems": 1
1848
2237
  }
1849
- }
1850
- },
1851
- "additionalProperties": false
1852
- },
1853
- "formArrayConfig": {
1854
- "title": "Form Array Config",
1855
- "type": "object",
1856
- "properties": {
1857
- "widget": {
1858
- "type": "string"
1859
2238
  },
1860
- "items": {
1861
- "$ref": "#/definitions/formConfig"
1862
- }
2239
+ "required": ["name", "title", "steps"]
1863
2240
  },
1864
- "additionalProperties": false,
1865
- "required": ["widget", "items"]
1866
- },
1867
- "customAuthentication": {
1868
- "title": "Custom Authentication",
1869
- "description": "For use with a custom auth handler on a service provider.",
1870
- "type": "object",
1871
- "properties": {
1872
- "type": {
1873
- "type": "string",
1874
- "enum": ["custom"]
2241
+ "workflowMap": {
2242
+ "title": "Workflow Map",
2243
+ "type": "object",
2244
+ "patternProperties": {
2245
+ "[0-9A-Za-z_-]+": {"$ref": "#/definitions/workflow"}
1875
2246
  }
1876
2247
  },
1877
- "additionalProperties": true,
1878
- "required": ["type"]
1879
- },
1880
- "searchParamsAuthentication": {
1881
- "title": "Search Params Authentication",
1882
- "type": "object",
1883
- "properties": {
1884
- "type": {
1885
- "type": "string",
1886
- "enum": ["searchParams"]
1887
- },
1888
- "params": {
1889
- "type": "array",
1890
- "items": {
1891
- "properties": {
1892
- "name": {
1893
- "type": "string"
1894
- },
1895
- "value": {
1896
- "type": "string"
1897
- }
1898
- },
1899
- "required": ["name", "value"],
1900
- "additionalProperties": false
1901
- }
1902
- }
2248
+ "formConfig": {
2249
+ "title": "Form Config",
2250
+ "type": "object"
1903
2251
  },
1904
- "additionalProperties": false,
1905
- "required": ["type", "params"]
1906
- },
1907
- "bearerAuthentication": {
1908
- "title": "Bearer Authentication",
1909
- "type": "object",
1910
- "properties": {
1911
- "type": {
1912
- "type": "string",
1913
- "enum": ["bearer"]
1914
- },
1915
- "token": {
1916
- "type": "string"
2252
+ "formsConfig": {
2253
+ "title": "Forms Config",
2254
+ "type": "object",
2255
+ "properties": {
2256
+ "default": {
2257
+ "$ref": "#/definitions/formConfig"
2258
+ }
1917
2259
  },
1918
- "prefix": {
1919
- "type": "string"
2260
+ "patternProperties": {
2261
+ "[0-9A-Za-z_-]+": {
2262
+ "$ref": "#/definitions/formConfig"
2263
+ }
1920
2264
  },
1921
- "header": {
1922
- "type": "string"
1923
- }
1924
- },
1925
- "additionalProperties": false,
1926
- "required": ["type", "token"]
2265
+ "required": ["default"]
2266
+ }
1927
2267
  },
1928
- "oauth2BearerAuthentication": {
1929
- "title": "OAuth 2 Bearer Authentication",
1930
- "type": "object",
1931
- "properties": {
1932
- "type": {
1933
- "type": "string",
1934
- "enum": ["oauth2Bearer"]
1935
- },
1936
- "token": {
1937
- "type": "string"
1938
- },
1939
- "prefix": {
1940
- "type": "string"
1941
- },
1942
- "header": {
1943
- "type": "string"
1944
- },
1945
- "scope": {
1946
- "type": "string"
1947
- },
1948
- "expiresAt": {
1949
- "type": "string"
1950
- }
2268
+ "properties": {
2269
+ "$schema": {
2270
+ "type": "string"
1951
2271
  },
1952
- "additionalProperties": false,
1953
- "required": ["type", "token"]
1954
- },
1955
- "basicAuthentication": {
1956
- "title": "Basic Authentication",
1957
- "type": "object",
1958
- "properties": {
1959
- "type": {
1960
- "type": "string",
1961
- "enum": ["basic"]
1962
- },
1963
- "username": {
1964
- "type": "string"
1965
- },
1966
- "password": {
1967
- "type": "string"
1968
- },
1969
- "useIso8859": {
1970
- "type": "boolean"
1971
- }
2272
+ "version": {
2273
+ "type": "number",
2274
+ "description": "This is the revision number of your schema. Every time your project schema is updated, this value should be incremented."
1972
2275
  },
1973
- "additionalProperties": false,
1974
- "required": ["type", "username", "password"]
1975
- },
1976
- "oauth2Authentication": {
1977
- "title": "OAuth 2 Authentication",
1978
- "type": "object",
1979
- "properties": {
1980
- "type": {
1981
- "type": "string",
1982
- "enum": ["oauth2"]
1983
- },
1984
- "grantType": {
1985
- "type": "string",
1986
- "enum": ["authorizationCode", "clientCredentials"]
1987
- },
1988
- "authorizationUrl": {
1989
- "type": "string"
1990
- },
1991
- "accessTokenUrl": {
1992
- "type": "string"
1993
- },
1994
- "clientId": {
1995
- "type": "string"
1996
- },
1997
- "clientSecret": {
1998
- "type": "string"
1999
- },
2000
- "scope": {
2001
- "type": "string"
2002
- },
2003
- "usePkce": {
2004
- "type": "boolean"
2005
- },
2006
- "redirectUrl": {
2007
- "type": "string"
2008
- },
2009
- "headerPrefix": {
2010
- "type": "string"
2011
- },
2012
- "audience": {
2013
- "type": "string"
2014
- },
2015
- "resource": {
2016
- "type": "string"
2017
- }
2276
+ "apiVersion": {
2277
+ "type": "string",
2278
+ "description": "The version of the TakeShape API your project is using. We increase the version as we make breaking changes to the API endpoints."
2018
2279
  },
2019
- "additionalProperties": false,
2020
- "required": ["type", "grantType", "clientId"]
2021
- },
2022
- "awsAuthentication": {
2023
- "title": "AWS Authentication",
2024
- "type": "object",
2025
- "properties": {
2026
- "type": {
2027
- "type": "string",
2028
- "enum": ["aws"]
2029
- },
2030
- "awsAccessKeyId": {
2031
- "type": "string"
2032
- },
2033
- "awsSecretAccessKey": {
2034
- "type": "string"
2035
- }
2280
+ "schemaVersion": {
2281
+ "type": "string",
2282
+ "enum": ["3.17.1"],
2283
+ "description": "The version of the schema format your project is using. We increase the version as we make breaking changes to the schema format."
2036
2284
  },
2037
- "additionalProperties": false,
2038
- "required": ["type", "awsAccessKeyId", "awsSecretAccessKey"]
2039
- },
2040
- "serviceAuthentication": {
2041
- "title": "Service Authentication",
2042
- "oneOf": [
2043
- {
2044
- "$ref": "#/definitions/oauth2Authentication"
2045
- },
2046
- {
2047
- "$ref": "#/definitions/oauth2BearerAuthentication"
2048
- },
2049
- {
2050
- "$ref": "#/definitions/bearerAuthentication"
2051
- },
2052
- {
2053
- "$ref": "#/definitions/basicAuthentication"
2054
- },
2055
- {
2056
- "$ref": "#/definitions/searchParamsAuthentication"
2057
- },
2058
- {
2059
- "$ref": "#/definitions/awsAuthentication"
2060
- },
2061
- {
2062
- "$ref": "#/definitions/customAuthentication"
2063
- }
2064
- ]
2065
- },
2066
- "serviceType": {
2067
- "title": "Service Type",
2068
- "description": "The general type of this service, specifying how and where it will be utilized.",
2069
- "type": "string",
2070
- "enum": ["deployment", "authentication", "takeshape", "rest", "graphql", "openapi", "aws", "unknown"]
2071
- },
2072
- "serviceConfig": {
2073
- "title": "Service Config",
2074
- "type": "object",
2075
- "properties": {
2076
- "id": {
2077
- "type": "string",
2078
- "description": "Machine-readable identifier, should typically be the same as the property name on the services object."
2079
- },
2080
- "title": {
2081
- "type": "string",
2082
- "description": "Human-readable name for this service."
2083
- },
2084
- "provider": {
2085
- "description": "The service provider id.",
2086
- "type": "string"
2087
- },
2088
- "namespace": {
2089
- "type": "string",
2090
- "description": "A namespace to use for the imported types tied to this service."
2091
- },
2092
- "serviceType": {
2093
- "$ref": "#/definitions/serviceType"
2094
- },
2095
- "authenticationType": {
2096
- "type": "string",
2097
- "enum": ["oauth2", "basic", "bearer", "searchParams", "oauth2Bearer", "custom", "aws", "none", "unknown"]
2098
- },
2099
- "authentication": {
2100
- "$ref": "#/definitions/serviceAuthentication"
2101
- },
2102
- "webhookId": {
2103
- "type": "string"
2104
- },
2105
- "options": {
2106
- "type": "object",
2107
- "description": "Configuration options passed to and handled by the provider."
2108
- }
2285
+ "projectId": {
2286
+ "type": "string",
2287
+ "description": "The ID of the TakeShape project this schema belongs to."
2109
2288
  },
2110
- "required": ["id", "title", "provider", "serviceType", "authenticationType"],
2111
- "additionalProperties": false
2112
- },
2113
- "storedServiceConfig": {
2114
- "title": "Stored Service Config",
2115
- "type": "object",
2116
- "properties": {
2117
- "id": {
2118
- "type": "string",
2119
- "description": "Machine-readable identifier, should typically be the same as the property name on the services object."
2120
- },
2121
- "title": {
2122
- "type": "string",
2123
- "description": "Human-readable name for this service."
2124
- },
2125
- "provider": {
2126
- "type": "string",
2127
- "description": "The service provider id."
2128
- },
2129
- "namespace": {
2130
- "type": "string",
2131
- "description": "A namespace to use for the imported types tied to this service."
2132
- },
2133
- "serviceType": {
2134
- "$ref": "#/definitions/serviceType"
2135
- },
2136
- "authenticationType": {
2137
- "type": "string",
2138
- "enum": ["oauth2", "basic", "bearer", "searchParams", "oauth2Bearer", "custom", "aws", "none", "unknown"]
2139
- },
2140
- "authentication": {
2141
- "type": "string"
2142
- },
2143
- "webhookId": {
2144
- "type": "string"
2145
- },
2146
- "options": {
2147
- "type": "object",
2148
- "description": "Configuration options passed to and handled by the provider."
2149
- }
2289
+ "author": {
2290
+ "type": "string",
2291
+ "description": "The ID of the TakeShape user who created the schema."
2150
2292
  },
2151
- "required": ["id", "title", "provider", "serviceType", "authenticationType"],
2152
- "additionalProperties": false
2153
- },
2154
- "anyServiceConfig": {
2155
- "title": "Any Service Config",
2156
- "oneOf": [
2157
- {
2158
- "$ref": "#/definitions/storedServiceConfig"
2159
- },
2160
- {
2161
- "$ref": "#/definitions/serviceConfig"
2162
- }
2163
- ]
2164
- },
2165
- "storedServiceMap": {
2166
- "title": "Stored Service Map",
2167
- "type": "object",
2168
- "patternProperties": {
2169
- "[0-9A-Za-z_-]+": {
2170
- "$ref": "#/definitions/storedServiceConfig"
2171
- }
2172
- }
2173
- },
2174
- "workflowStep": {
2175
- "title": "Workflow Step",
2176
- "type": "object",
2177
- "properties": {
2178
- "name": {
2179
- "type": "string",
2180
- "title": "Name",
2181
- "pattern": "^[_a-zA-Z][_a-zA-Z0-9]*$",
2182
- "description": "machine-readable slug"
2183
- },
2184
- "title": {
2185
- "title": "Title",
2186
- "type": "string",
2187
- "description": "Human-readable id for use in the UI"
2188
- },
2189
- "description": {
2190
- "title": "Description",
2191
- "type": "string"
2192
- },
2193
- "color": {
2194
- "title": "Color",
2195
- "type": "string",
2196
- "description": "Hex color code"
2197
- },
2198
- "live": {
2199
- "title": "Live",
2200
- "type": "boolean",
2201
- "description": "Value to indicate whether items in the state should be returned in list queries"
2202
- },
2203
- "key": {
2204
- "title": "Key",
2205
- "type": "string",
2206
- "description": "machine-readable id"
2207
- }
2293
+ "created": {
2294
+ "type": "string",
2295
+ "format": "date-time",
2296
+ "description": "The date the schema was created"
2208
2297
  },
2209
- "required": ["name", "title", "color", "live", "key"],
2210
- "additionalProperties": false
2211
- },
2212
- "workflow": {
2213
- "title": "Workflow",
2214
- "type": "object",
2215
- "properties": {
2216
- "name": {
2217
- "type": "string",
2218
- "pattern": "^[_a-zA-Z][_a-zA-Z0-9]*$",
2219
- "description": "machine-readable id"
2220
- },
2221
- "title": {
2298
+ "updated": {
2299
+ "type": "string",
2300
+ "format": "date-time",
2301
+ "description": "The date the schema was last updated"
2302
+ },
2303
+ "deactivated": {
2304
+ "type": "number"
2305
+ },
2306
+ "defaultLocale": {
2307
+ "type": "string",
2308
+ "minLength": 1,
2309
+ "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{2,3})?$",
2310
+ "description": "The locale that should be preferred when creating new Shape items. This must be an entry in the locales array."
2311
+ },
2312
+ "locales": {
2313
+ "type": "array",
2314
+ "minItems": 1,
2315
+ "items": {
2222
2316
  "type": "string",
2223
- "title": "Workflow Name",
2224
2317
  "minLength": 1,
2225
- "description": "Human-readable id for use in the UI"
2226
- },
2227
- "steps": {
2228
- "type": "array",
2229
- "title": "Steps",
2230
- "items": {
2231
- "$ref": "#/definitions/workflowStep"
2232
- },
2233
- "minItems": 1
2318
+ "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{2,3})?$"
2234
2319
  }
2235
2320
  },
2236
- "required": ["name", "title", "steps"]
2237
- },
2238
- "workflowMap": {
2239
- "title": "Workflow Map",
2240
- "type": "object",
2241
- "patternProperties": {
2242
- "[0-9A-Za-z_-]+": {"$ref": "#/definitions/workflow"}
2243
- }
2244
- },
2245
- "formConfig": {
2246
- "title": "Form Config",
2247
- "type": "object"
2248
- },
2249
- "formsConfig": {
2250
- "title": "Forms Config",
2251
- "type": "object",
2252
- "properties": {
2253
- "default": {
2254
- "$ref": "#/definitions/formConfig"
2255
- }
2321
+ "queries": {
2322
+ "$ref": "#/definitions/queryMap",
2323
+ "description": "Queries map directly to queries your project's GraphQL API"
2256
2324
  },
2257
- "patternProperties": {
2258
- "[0-9A-Za-z_-]+": {
2259
- "$ref": "#/definitions/formConfig"
2260
- }
2325
+ "mutations": {
2326
+ "$ref": "#/definitions/queryMap",
2327
+ "description": "Mutations map directly to mutations your project's GraphQL API"
2261
2328
  },
2262
- "required": ["default"]
2263
- }
2264
- },
2265
- "properties": {
2266
- "$schema": {
2267
- "type": "string"
2268
- },
2269
- "version": {
2270
- "type": "number",
2271
- "description": "This is the revision number of your schema. Every time your project schema is updated, this value should be incremented."
2272
- },
2273
- "apiVersion": {
2274
- "type": "string",
2275
- "description": "The version of the TakeShape API your project is using. We increase the version as we make breaking changes to the API endpoints."
2276
- },
2277
- "schemaVersion": {
2278
- "type": "string",
2279
- "enum": ["3.17.0"],
2280
- "description": "The version of the schema format your project is using. We increase the version as we make breaking changes to the schema format."
2281
- },
2282
- "projectId": {
2283
- "type": "string",
2284
- "description": "The ID of the TakeShape project this schema belongs to."
2285
- },
2286
- "author": {
2287
- "type": "string",
2288
- "description": "The ID of the TakeShape user who created the schema."
2289
- },
2290
- "created": {
2291
- "type": "string",
2292
- "format": "date-time",
2293
- "description": "The date the schema was created"
2294
- },
2295
- "updated": {
2296
- "type": "string",
2297
- "format": "date-time",
2298
- "description": "The date the schema was last updated"
2299
- },
2300
- "deactivated": {
2301
- "type": "number"
2302
- },
2303
- "defaultLocale": {
2304
- "type": "string",
2305
- "minLength": 1,
2306
- "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{2,3})?$",
2307
- "description": "The locale that should be preferred when creating new Shape items. This must be an entry in the locales array."
2308
- },
2309
- "locales": {
2310
- "type": "array",
2311
- "minItems": 1,
2312
- "items": {
2313
- "type": "string",
2314
- "minLength": 1,
2315
- "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{2,3})?$"
2329
+ "shapes": {
2330
+ "$ref": "#/definitions/shapeMap",
2331
+ "description": "A Shape is a schema object for structuring and storing data from one or more sources, including the TakeShape data store and connected services."
2332
+ },
2333
+ "indexedShapes": {
2334
+ "$ref": "#/definitions/indexedShapeMap",
2335
+ "description": "Experimental shape indexing configuration if you are curious about learning more message @asprouse in the TakeShape Slack"
2336
+ },
2337
+ "forms": {
2338
+ "$ref": "#/definitions/formMap",
2339
+ "description": "Forms define a visual interface for editing Shapes in the TakeShape UI."
2340
+ },
2341
+ "workflows": {
2342
+ "$ref": "#/definitions/workflowMap",
2343
+ "description": "Workflows describe the status of a shape item. Every schema starts with a default workflow with two steps, Disabled and Enabled"
2344
+ },
2345
+ "dataKey": {
2346
+ "type": "string"
2347
+ },
2348
+ "services": {
2349
+ "$ref": "#/definitions/storedServiceMap",
2350
+ "description": "By connecting new Services to your project schema, you can add shapes, queries, and mutations from 3rd party sources to your API in TakeShape. This allows you to mesh together exactly the API you need to interact with all of the services your app or business depends upon. Services use an encrypted configuration to keep auth tokens secret. For this reason, services can only be added to a schema through the web client or through the Admin API."
2316
2351
  }
2317
2352
  },
2318
- "queries": {
2319
- "$ref": "#/definitions/queryMap",
2320
- "description": "Queries map directly to queries your project's GraphQL API"
2321
- },
2322
- "mutations": {
2323
- "$ref": "#/definitions/queryMap",
2324
- "description": "Mutations map directly to mutations your project's GraphQL API"
2325
- },
2326
- "shapes": {
2327
- "$ref": "#/definitions/shapeMap",
2328
- "description": "A Shape is a schema object for structuring and storing data from one or more sources, including the TakeShape data store and connected services."
2329
- },
2330
- "indexedShapes": {
2331
- "$ref": "#/definitions/indexedShapeMap",
2332
- "description": "Experimental shape indexing configuration if you are curious about learning more message @asprouse in the TakeShape Slack"
2333
- },
2334
- "forms": {
2335
- "$ref": "#/definitions/formMap",
2336
- "description": "Forms define a visual interface for editing Shapes in the TakeShape UI."
2337
- },
2338
- "workflows": {
2339
- "$ref": "#/definitions/workflowMap",
2340
- "description": "Workflows describe the status of a shape item. Every schema starts with a default workflow with two steps, Disabled and Enabled"
2341
- },
2342
- "dataKey": {
2343
- "type": "string"
2344
- },
2345
- "services": {
2346
- "$ref": "#/definitions/storedServiceMap",
2347
- "description": "By connecting new Services to your project schema, you can add shapes, queries, and mutations from 3rd party sources to your API in TakeShape. This allows you to mesh together exactly the API you need to interact with all of the services your app or business depends upon. Services use an encrypted configuration to keep auth tokens secret. For this reason, services can only be added to a schema through the web client or through the Admin API."
2348
- }
2349
- },
2350
- "additionalProperties": false,
2351
- "required": [
2352
- "projectId",
2353
- "created",
2354
- "updated",
2355
- "apiVersion",
2356
- "schemaVersion",
2357
- "version",
2358
- "defaultLocale",
2359
- "locales",
2360
- "shapes",
2361
- "queries",
2362
- "mutations",
2363
- "workflows",
2364
- "dataKey"
2365
- ]
2366
- }
2353
+ "additionalProperties": false,
2354
+ "required": [
2355
+ "projectId",
2356
+ "created",
2357
+ "updated",
2358
+ "apiVersion",
2359
+ "schemaVersion",
2360
+ "version",
2361
+ "defaultLocale",
2362
+ "locales",
2363
+ "shapes",
2364
+ "queries",
2365
+ "mutations",
2366
+ "workflows",
2367
+ "dataKey"
2368
+ ]
2369
+ }
2370
+