@takeshape/schema 11.45.5 → 11.46.0

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