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