@takeshape/schema 11.45.5 → 11.47.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (465) hide show
  1. package/dist/cjs/src/agents.js +6 -6
  2. package/dist/cjs/src/api-version.js +1 -1
  3. package/dist/cjs/src/content-schema-transform.js +12 -12
  4. package/dist/cjs/src/create-input-schema.js +1 -1
  5. package/dist/cjs/src/enum.js +1 -1
  6. package/dist/cjs/src/flatten-templates.js +4 -4
  7. package/dist/cjs/src/get-is-leaf.js +1 -1
  8. package/dist/cjs/src/interfaces.js +11 -9
  9. package/dist/cjs/src/layers/layers.js +11 -5
  10. package/dist/cjs/src/layers/refs.js +3 -3
  11. package/dist/cjs/src/layers/type-utils.js +1 -1
  12. package/dist/cjs/src/migration/index.js +3 -1
  13. package/dist/cjs/src/migration/to/v3.0.0.js +20 -8
  14. package/dist/cjs/src/migration/to/v3.1.0.js +6 -4
  15. package/dist/cjs/src/migration/to/v3.10.0.js +1 -1
  16. package/dist/cjs/src/migration/to/v3.13.0.js +1 -1
  17. package/dist/cjs/src/migration/to/v3.17.0.js +1 -1
  18. package/dist/cjs/src/migration/to/v3.18.0.js +4 -4
  19. package/dist/cjs/src/migration/to/v3.18.1.js +1 -1
  20. package/dist/cjs/src/migration/to/v3.18.2.js +1 -1
  21. package/dist/cjs/src/migration/to/v3.20.0.js +5 -2
  22. package/dist/cjs/src/migration/to/v3.22.0.js +1 -1
  23. package/dist/cjs/src/migration/to/v3.31.0.js +2 -2
  24. package/dist/cjs/src/migration/to/v3.32.0.js +3 -1
  25. package/dist/cjs/src/migration/to/v3.34.0.js +6 -9
  26. package/dist/cjs/src/migration/to/v3.36.0.js +1 -1
  27. package/dist/cjs/src/migration/to/v3.39.0.js +8 -8
  28. package/dist/cjs/src/migration/to/v3.40.0.js +1 -1
  29. package/dist/cjs/src/migration/to/v3.46.0.js +1 -1
  30. package/dist/cjs/src/migration/to/v3.51.0.js +12 -0
  31. package/dist/cjs/src/migration/to/v3.9.0.js +3 -3
  32. package/dist/cjs/src/models/project-schema.js +4 -4
  33. package/dist/cjs/src/models/shape.js +2 -2
  34. package/dist/cjs/src/project-schema/index.js +4 -2
  35. package/dist/cjs/src/project-schema/migrate.js +3 -1
  36. package/dist/cjs/src/project-schema/v3.51.0.js +8 -0
  37. package/dist/cjs/src/refs.js +28 -18
  38. package/dist/cjs/src/relationships.js +25 -20
  39. package/dist/cjs/src/runtime-schema.js +16 -9
  40. package/dist/cjs/src/schema-transform.js +3 -3
  41. package/dist/cjs/src/schema-util.js +38 -30
  42. package/dist/cjs/src/schemas/auth-schemas.json +18 -78
  43. package/dist/cjs/src/schemas/index.js +7 -5
  44. package/dist/cjs/src/schemas/project-schema/experimental.json +7 -20
  45. package/dist/cjs/src/schemas/project-schema/latest.json +166 -566
  46. package/dist/cjs/src/schemas/project-schema/meta-schema-v1.0.0.json +3 -17
  47. package/dist/cjs/src/schemas/project-schema/meta-schema-v3.0.0.json +4 -4
  48. package/dist/cjs/src/schemas/project-schema/meta-schema-v3.1.0.json +4 -4
  49. package/dist/cjs/src/schemas/project-schema/meta-schema-v3.2.0.json +5 -5
  50. package/dist/cjs/src/schemas/project-schema/meta-schema-v3.3.0.json +5 -5
  51. package/dist/cjs/src/schemas/project-schema/meta-schema-v3.4.0.json +11 -43
  52. package/dist/cjs/src/schemas/project-schema/meta-schema-v3.5.0.json +7 -7
  53. package/dist/cjs/src/schemas/project-schema/meta-schema-v3.5.1.json +8 -11
  54. package/dist/cjs/src/schemas/project-schema/meta-schema-v3.6.0.json +8 -11
  55. package/dist/cjs/src/schemas/project-schema/meta-schema-v3.7.0.json +11 -9
  56. package/dist/cjs/src/schemas/project-schema/meta-schema-v3.8.0.json +11 -9
  57. package/dist/cjs/src/schemas/project-schema/meta-schema-v3.9.0.json +24 -22
  58. package/dist/cjs/src/schemas/project-schema/v1.0.0.json +3 -3
  59. package/dist/cjs/src/schemas/project-schema/v3.0.0.json +1 -1
  60. package/dist/cjs/src/schemas/project-schema/v3.1.0.json +2 -2
  61. package/dist/cjs/src/schemas/project-schema/v3.10.0.json +32 -30
  62. package/dist/cjs/src/schemas/project-schema/v3.11.0.json +32 -30
  63. package/dist/cjs/src/schemas/project-schema/v3.12.0.json +33 -36
  64. package/dist/cjs/src/schemas/project-schema/v3.12.1.json +33 -36
  65. package/dist/cjs/src/schemas/project-schema/v3.12.2.json +2122 -2125
  66. package/dist/cjs/src/schemas/project-schema/v3.12.3.json +2175 -2178
  67. package/dist/cjs/src/schemas/project-schema/v3.13.0.json +32 -30
  68. package/dist/cjs/src/schemas/project-schema/v3.14.0.json +32 -30
  69. package/dist/cjs/src/schemas/project-schema/v3.15.0.json +40 -38
  70. package/dist/cjs/src/schemas/project-schema/v3.16.0.json +40 -38
  71. package/dist/cjs/src/schemas/project-schema/v3.17.0.json +47 -39
  72. package/dist/cjs/src/schemas/project-schema/v3.17.1.json +2204 -2196
  73. package/dist/cjs/src/schemas/project-schema/v3.18.0.json +40 -38
  74. package/dist/cjs/src/schemas/project-schema/v3.18.1.json +40 -38
  75. package/dist/cjs/src/schemas/project-schema/v3.18.2.json +40 -38
  76. package/dist/cjs/src/schemas/project-schema/v3.19.0.json +40 -38
  77. package/dist/cjs/src/schemas/project-schema/v3.2.0.json +1 -1
  78. package/dist/cjs/src/schemas/project-schema/v3.20.0.json +40 -38
  79. package/dist/cjs/src/schemas/project-schema/v3.21.0.json +41 -39
  80. package/dist/cjs/src/schemas/project-schema/v3.22.0.json +41 -39
  81. package/dist/cjs/src/schemas/project-schema/v3.23.0.json +43 -43
  82. package/dist/cjs/src/schemas/project-schema/v3.24.0.json +105 -458
  83. package/dist/cjs/src/schemas/project-schema/v3.25.0.json +105 -458
  84. package/dist/cjs/src/schemas/project-schema/v3.26.0.json +107 -466
  85. package/dist/cjs/src/schemas/project-schema/v3.27.0.json +107 -466
  86. package/dist/cjs/src/schemas/project-schema/v3.28.0.json +112 -471
  87. package/dist/cjs/src/schemas/project-schema/v3.29.0.json +112 -471
  88. package/dist/cjs/src/schemas/project-schema/v3.3.0.json +1 -1
  89. package/dist/cjs/src/schemas/project-schema/v3.30.0.json +112 -472
  90. package/dist/cjs/src/schemas/project-schema/v3.31.0.json +112 -486
  91. package/dist/cjs/src/schemas/project-schema/v3.32.0.json +113 -488
  92. package/dist/cjs/src/schemas/project-schema/v3.33.0.json +113 -488
  93. package/dist/cjs/src/schemas/project-schema/v3.34.0.json +113 -488
  94. package/dist/cjs/src/schemas/project-schema/v3.35.0.json +114 -491
  95. package/dist/cjs/src/schemas/project-schema/v3.36.0.json +114 -491
  96. package/dist/cjs/src/schemas/project-schema/v3.37.0.json +118 -511
  97. package/dist/cjs/src/schemas/project-schema/v3.38.0.json +118 -511
  98. package/dist/cjs/src/schemas/project-schema/v3.39.0.json +118 -511
  99. package/dist/cjs/src/schemas/project-schema/v3.4.0.json +1 -1
  100. package/dist/cjs/src/schemas/project-schema/v3.40.0.json +118 -512
  101. package/dist/cjs/src/schemas/project-schema/v3.41.0.json +118 -512
  102. package/dist/cjs/src/schemas/project-schema/v3.42.0.json +118 -512
  103. package/dist/cjs/src/schemas/project-schema/v3.43.0.json +118 -512
  104. package/dist/cjs/src/schemas/project-schema/v3.44.0.json +125 -540
  105. package/dist/cjs/src/schemas/project-schema/v3.45.0.json +128 -554
  106. package/dist/cjs/src/schemas/project-schema/v3.46.0.json +129 -560
  107. package/dist/cjs/src/schemas/project-schema/v3.47.0.json +131 -568
  108. package/dist/cjs/src/schemas/project-schema/v3.48.0.json +132 -572
  109. package/dist/cjs/src/schemas/project-schema/v3.49.0.json +132 -558
  110. package/dist/cjs/src/schemas/project-schema/v3.5.0.json +1 -1
  111. package/dist/cjs/src/schemas/project-schema/v3.5.1.json +1 -1
  112. package/dist/cjs/src/schemas/project-schema/v3.50.0.json +165 -565
  113. package/dist/cjs/src/schemas/project-schema/v3.51.0.json +3320 -0
  114. package/dist/cjs/src/schemas/project-schema/v3.6.0.json +1 -1
  115. package/dist/cjs/src/schemas/project-schema/v3.7.0.json +1 -1
  116. package/dist/cjs/src/schemas/project-schema/v3.8.0.json +1 -1
  117. package/dist/cjs/src/schemas/project-schema/v3.9.0.json +1 -1
  118. package/dist/cjs/src/schemas/project-schema/v4.0.0.json +31 -29
  119. package/dist/cjs/src/schemas/project-schema.json +3 -0
  120. package/dist/cjs/src/schemas/user-schema.json +2 -9
  121. package/dist/cjs/src/service-dependencies.js +15 -9
  122. package/dist/cjs/src/services/services.js +12 -11
  123. package/dist/cjs/src/services/util.js +4 -4
  124. package/dist/cjs/src/template-shapes/templates.js +18 -12
  125. package/dist/cjs/src/template-shapes/where.js +23 -14
  126. package/dist/cjs/src/types/utils.js +3 -3
  127. package/dist/cjs/src/unions.js +6 -8
  128. package/dist/cjs/src/util/api-indexing.js +4 -4
  129. package/dist/cjs/src/util/detect-cycles.js +2 -2
  130. package/dist/cjs/src/util/find-shape-at-path.js +1 -1
  131. package/dist/cjs/src/util/form-config.js +0 -1
  132. package/dist/cjs/src/util/get-conflicting-properties.js +1 -1
  133. package/dist/cjs/src/util/merge.js +22 -13
  134. package/dist/cjs/src/util/patch-schema.js +2 -2
  135. package/dist/cjs/src/util/shapes.js +2 -2
  136. package/dist/cjs/src/validate.js +64 -47
  137. package/dist/cjs/src/workflows.js +4 -4
  138. package/dist/esm/src/agents.js +6 -6
  139. package/dist/esm/src/api-version.js +1 -1
  140. package/dist/esm/src/content-schema-transform.js +12 -12
  141. package/dist/esm/src/create-input-schema.js +1 -1
  142. package/dist/esm/src/enum.js +1 -1
  143. package/dist/esm/src/flatten-templates.js +4 -4
  144. package/dist/esm/src/get-is-leaf.js +1 -1
  145. package/dist/esm/src/interfaces.js +12 -10
  146. package/dist/esm/src/layers/layers.js +12 -6
  147. package/dist/esm/src/layers/refs.js +3 -3
  148. package/dist/esm/src/layers/type-utils.js +1 -1
  149. package/dist/esm/src/migration/index.js +3 -1
  150. package/dist/esm/src/migration/to/v3.0.0.js +20 -8
  151. package/dist/esm/src/migration/to/v3.1.0.js +6 -4
  152. package/dist/esm/src/migration/to/v3.10.0.js +1 -1
  153. package/dist/esm/src/migration/to/v3.13.0.js +1 -1
  154. package/dist/esm/src/migration/to/v3.17.0.js +1 -1
  155. package/dist/esm/src/migration/to/v3.18.0.js +4 -4
  156. package/dist/esm/src/migration/to/v3.18.1.js +1 -1
  157. package/dist/esm/src/migration/to/v3.18.2.js +1 -1
  158. package/dist/esm/src/migration/to/v3.20.0.js +5 -2
  159. package/dist/esm/src/migration/to/v3.22.0.js +1 -1
  160. package/dist/esm/src/migration/to/v3.31.0.js +2 -2
  161. package/dist/esm/src/migration/to/v3.32.0.js +3 -1
  162. package/dist/esm/src/migration/to/v3.34.0.js +6 -9
  163. package/dist/esm/src/migration/to/v3.36.0.js +1 -1
  164. package/dist/esm/src/migration/to/v3.39.0.js +8 -8
  165. package/dist/esm/src/migration/to/v3.40.0.js +1 -1
  166. package/dist/esm/src/migration/to/v3.46.0.js +1 -1
  167. package/dist/esm/src/migration/to/v3.51.0.js +10 -0
  168. package/dist/esm/src/migration/to/v3.9.0.js +3 -3
  169. package/dist/esm/src/mocks.js +1 -1
  170. package/dist/esm/src/models/project-schema.js +4 -4
  171. package/dist/esm/src/models/shape.js +2 -2
  172. package/dist/esm/src/project-schema/index.js +3 -1
  173. package/dist/esm/src/project-schema/migrate.js +4 -2
  174. package/dist/esm/src/project-schema/v3.51.0.js +7 -0
  175. package/dist/esm/src/refs.js +29 -19
  176. package/dist/esm/src/relationships.js +26 -21
  177. package/dist/esm/src/runtime-schema.js +16 -9
  178. package/dist/esm/src/schema-transform.js +3 -3
  179. package/dist/esm/src/schema-util.js +40 -32
  180. package/dist/esm/src/schemas/auth-schemas.json +18 -78
  181. package/dist/esm/src/schemas/index.js +4 -2
  182. package/dist/esm/src/schemas/project-schema/experimental.json +7 -20
  183. package/dist/esm/src/schemas/project-schema/latest.json +166 -566
  184. package/dist/esm/src/schemas/project-schema/meta-schema-v1.0.0.json +3 -17
  185. package/dist/esm/src/schemas/project-schema/meta-schema-v3.0.0.json +4 -4
  186. package/dist/esm/src/schemas/project-schema/meta-schema-v3.1.0.json +4 -4
  187. package/dist/esm/src/schemas/project-schema/meta-schema-v3.2.0.json +5 -5
  188. package/dist/esm/src/schemas/project-schema/meta-schema-v3.3.0.json +5 -5
  189. package/dist/esm/src/schemas/project-schema/meta-schema-v3.4.0.json +11 -43
  190. package/dist/esm/src/schemas/project-schema/meta-schema-v3.5.0.json +7 -7
  191. package/dist/esm/src/schemas/project-schema/meta-schema-v3.5.1.json +8 -11
  192. package/dist/esm/src/schemas/project-schema/meta-schema-v3.6.0.json +8 -11
  193. package/dist/esm/src/schemas/project-schema/meta-schema-v3.7.0.json +11 -9
  194. package/dist/esm/src/schemas/project-schema/meta-schema-v3.8.0.json +11 -9
  195. package/dist/esm/src/schemas/project-schema/meta-schema-v3.9.0.json +24 -22
  196. package/dist/esm/src/schemas/project-schema/v1.0.0.json +3 -3
  197. package/dist/esm/src/schemas/project-schema/v3.0.0.json +1 -1
  198. package/dist/esm/src/schemas/project-schema/v3.1.0.json +2 -2
  199. package/dist/esm/src/schemas/project-schema/v3.10.0.json +32 -30
  200. package/dist/esm/src/schemas/project-schema/v3.11.0.json +32 -30
  201. package/dist/esm/src/schemas/project-schema/v3.12.0.json +33 -36
  202. package/dist/esm/src/schemas/project-schema/v3.12.1.json +33 -36
  203. package/dist/esm/src/schemas/project-schema/v3.12.2.json +2122 -2125
  204. package/dist/esm/src/schemas/project-schema/v3.12.3.json +2175 -2178
  205. package/dist/esm/src/schemas/project-schema/v3.13.0.json +32 -30
  206. package/dist/esm/src/schemas/project-schema/v3.14.0.json +32 -30
  207. package/dist/esm/src/schemas/project-schema/v3.15.0.json +40 -38
  208. package/dist/esm/src/schemas/project-schema/v3.16.0.json +40 -38
  209. package/dist/esm/src/schemas/project-schema/v3.17.0.json +47 -39
  210. package/dist/esm/src/schemas/project-schema/v3.17.1.json +2204 -2196
  211. package/dist/esm/src/schemas/project-schema/v3.18.0.json +40 -38
  212. package/dist/esm/src/schemas/project-schema/v3.18.1.json +40 -38
  213. package/dist/esm/src/schemas/project-schema/v3.18.2.json +40 -38
  214. package/dist/esm/src/schemas/project-schema/v3.19.0.json +40 -38
  215. package/dist/esm/src/schemas/project-schema/v3.2.0.json +1 -1
  216. package/dist/esm/src/schemas/project-schema/v3.20.0.json +40 -38
  217. package/dist/esm/src/schemas/project-schema/v3.21.0.json +41 -39
  218. package/dist/esm/src/schemas/project-schema/v3.22.0.json +41 -39
  219. package/dist/esm/src/schemas/project-schema/v3.23.0.json +43 -43
  220. package/dist/esm/src/schemas/project-schema/v3.24.0.json +105 -458
  221. package/dist/esm/src/schemas/project-schema/v3.25.0.json +105 -458
  222. package/dist/esm/src/schemas/project-schema/v3.26.0.json +107 -466
  223. package/dist/esm/src/schemas/project-schema/v3.27.0.json +107 -466
  224. package/dist/esm/src/schemas/project-schema/v3.28.0.json +112 -471
  225. package/dist/esm/src/schemas/project-schema/v3.29.0.json +112 -471
  226. package/dist/esm/src/schemas/project-schema/v3.3.0.json +1 -1
  227. package/dist/esm/src/schemas/project-schema/v3.30.0.json +112 -472
  228. package/dist/esm/src/schemas/project-schema/v3.31.0.json +112 -486
  229. package/dist/esm/src/schemas/project-schema/v3.32.0.json +113 -488
  230. package/dist/esm/src/schemas/project-schema/v3.33.0.json +113 -488
  231. package/dist/esm/src/schemas/project-schema/v3.34.0.json +113 -488
  232. package/dist/esm/src/schemas/project-schema/v3.35.0.json +114 -491
  233. package/dist/esm/src/schemas/project-schema/v3.36.0.json +114 -491
  234. package/dist/esm/src/schemas/project-schema/v3.37.0.json +118 -511
  235. package/dist/esm/src/schemas/project-schema/v3.38.0.json +118 -511
  236. package/dist/esm/src/schemas/project-schema/v3.39.0.json +118 -511
  237. package/dist/esm/src/schemas/project-schema/v3.4.0.json +1 -1
  238. package/dist/esm/src/schemas/project-schema/v3.40.0.json +118 -512
  239. package/dist/esm/src/schemas/project-schema/v3.41.0.json +118 -512
  240. package/dist/esm/src/schemas/project-schema/v3.42.0.json +118 -512
  241. package/dist/esm/src/schemas/project-schema/v3.43.0.json +118 -512
  242. package/dist/esm/src/schemas/project-schema/v3.44.0.json +125 -540
  243. package/dist/esm/src/schemas/project-schema/v3.45.0.json +128 -554
  244. package/dist/esm/src/schemas/project-schema/v3.46.0.json +129 -560
  245. package/dist/esm/src/schemas/project-schema/v3.47.0.json +131 -568
  246. package/dist/esm/src/schemas/project-schema/v3.48.0.json +132 -572
  247. package/dist/esm/src/schemas/project-schema/v3.49.0.json +132 -558
  248. package/dist/esm/src/schemas/project-schema/v3.5.0.json +1 -1
  249. package/dist/esm/src/schemas/project-schema/v3.5.1.json +1 -1
  250. package/dist/esm/src/schemas/project-schema/v3.50.0.json +165 -565
  251. package/dist/esm/src/schemas/project-schema/v3.51.0.json +3320 -0
  252. package/dist/esm/src/schemas/project-schema/v3.6.0.json +1 -1
  253. package/dist/esm/src/schemas/project-schema/v3.7.0.json +1 -1
  254. package/dist/esm/src/schemas/project-schema/v3.8.0.json +1 -1
  255. package/dist/esm/src/schemas/project-schema/v3.9.0.json +1 -1
  256. package/dist/esm/src/schemas/project-schema/v4.0.0.json +31 -29
  257. package/dist/esm/src/schemas/project-schema.json +3 -0
  258. package/dist/esm/src/schemas/user-schema.json +2 -9
  259. package/dist/esm/src/service-dependencies.js +17 -11
  260. package/dist/esm/src/services/services.js +12 -11
  261. package/dist/esm/src/services/util.js +4 -4
  262. package/dist/esm/src/template-shapes/templates.js +18 -12
  263. package/dist/esm/src/template-shapes/where.js +24 -15
  264. package/dist/esm/src/types/utils.js +3 -3
  265. package/dist/esm/src/unions.js +6 -8
  266. package/dist/esm/src/util/api-indexing.js +4 -4
  267. package/dist/esm/src/util/detect-cycles.js +2 -2
  268. package/dist/esm/src/util/find-shape-at-path.js +1 -1
  269. package/dist/esm/src/util/form-config.js +0 -1
  270. package/dist/esm/src/util/get-conflicting-properties.js +1 -1
  271. package/dist/esm/src/util/merge.js +23 -14
  272. package/dist/esm/src/util/patch-schema.js +2 -2
  273. package/dist/esm/src/util/shapes.js +2 -2
  274. package/dist/esm/src/validate.js +64 -47
  275. package/dist/esm/src/workflows.js +4 -4
  276. package/dist/types/src/agents.d.ts +1 -1
  277. package/dist/types/src/builtin-schema.d.ts +2 -2
  278. package/dist/types/src/content-schema-transform.d.ts +1 -1
  279. package/dist/types/src/create-input-schema.d.ts +1 -1
  280. package/dist/types/src/enum.d.ts +1 -1
  281. package/dist/types/src/flatten-templates.d.ts +1 -1
  282. package/dist/types/src/layers/layers.d.ts +1 -1
  283. package/dist/types/src/layers/refs.d.ts +1 -1
  284. package/dist/types/src/layers/type-utils.d.ts +1 -1
  285. package/dist/types/src/layers/visitor.d.ts +2 -2
  286. package/dist/types/src/migration/index.d.ts +1 -0
  287. package/dist/types/src/migration/to/v3.17.1.d.ts +1 -1
  288. package/dist/types/src/migration/to/v3.19.0.d.ts +1 -1
  289. package/dist/types/src/migration/to/v3.21.0.d.ts +1 -1
  290. package/dist/types/src/migration/to/v3.22.0.d.ts +1 -1
  291. package/dist/types/src/migration/to/v3.23.0.d.ts +1 -1
  292. package/dist/types/src/migration/to/v3.24.0.d.ts +1 -1
  293. package/dist/types/src/migration/to/v3.25.0.d.ts +1 -1
  294. package/dist/types/src/migration/to/v3.26.0.d.ts +1 -1
  295. package/dist/types/src/migration/to/v3.27.0.d.ts +1 -1
  296. package/dist/types/src/migration/to/v3.28.0.d.ts +1 -1
  297. package/dist/types/src/migration/to/v3.29.0.d.ts +1 -1
  298. package/dist/types/src/migration/to/v3.30.0.d.ts +1 -1
  299. package/dist/types/src/migration/to/v3.31.0.d.ts +1 -1
  300. package/dist/types/src/migration/to/v3.32.0.d.ts +1 -1
  301. package/dist/types/src/migration/to/v3.33.0.d.ts +1 -1
  302. package/dist/types/src/migration/to/v3.34.0.d.ts +1 -1
  303. package/dist/types/src/migration/to/v3.35.0.d.ts +1 -1
  304. package/dist/types/src/migration/to/v3.36.0.d.ts +1 -1
  305. package/dist/types/src/migration/to/v3.37.0.d.ts +1 -1
  306. package/dist/types/src/migration/to/v3.38.0.d.ts +1 -1
  307. package/dist/types/src/migration/to/v3.39.0.d.ts +1 -1
  308. package/dist/types/src/migration/to/v3.40.0.d.ts +1 -1
  309. package/dist/types/src/migration/to/v3.41.0.d.ts +1 -1
  310. package/dist/types/src/migration/to/v3.42.0.d.ts +1 -1
  311. package/dist/types/src/migration/to/v3.43.0.d.ts +1 -1
  312. package/dist/types/src/migration/to/v3.44.0.d.ts +1 -1
  313. package/dist/types/src/migration/to/v3.45.0.d.ts +1 -1
  314. package/dist/types/src/migration/to/v3.46.0.d.ts +1 -1
  315. package/dist/types/src/migration/to/v3.47.0.d.ts +1 -1
  316. package/dist/types/src/migration/to/v3.48.0.d.ts +1 -1
  317. package/dist/types/src/migration/to/v3.49.0.d.ts +1 -1
  318. package/dist/types/src/migration/to/v3.50.0.d.ts +1 -1
  319. package/dist/types/src/migration/to/v3.51.0.d.ts +4 -0
  320. package/dist/types/src/migration/types.d.ts +1 -1
  321. package/dist/types/src/mocks.d.ts +1 -1
  322. package/dist/types/src/models/project-schema.d.ts +3 -3
  323. package/dist/types/src/models/query.d.ts +2 -2
  324. package/dist/types/src/models/service.d.ts +2 -2
  325. package/dist/types/src/models/shape.d.ts +2 -2
  326. package/dist/types/src/project-schema/index.d.ts +4 -1
  327. package/dist/types/src/project-schema/latest.d.ts +28 -10
  328. package/dist/types/src/project-schema/v3.50.0.d.ts +27 -9
  329. package/dist/types/src/project-schema/v3.51.0.d.ts +2189 -0
  330. package/dist/types/src/refs.d.ts +1 -1
  331. package/dist/types/src/relationships.d.ts +2 -2
  332. package/dist/types/src/runtime-schema.d.ts +1 -1
  333. package/dist/types/src/schema-transform.d.ts +1 -1
  334. package/dist/types/src/schema-util.d.ts +2 -2
  335. package/dist/types/src/schemas/index.d.ts +2 -2
  336. package/dist/types/src/service-dependencies.d.ts +2 -2
  337. package/dist/types/src/services/services.d.ts +3 -3
  338. package/dist/types/src/services/util.d.ts +2 -2
  339. package/dist/types/src/template-shapes/index.d.ts +2 -2
  340. package/dist/types/src/template-shapes/names.d.ts +1 -1
  341. package/dist/types/src/template-shapes/types.d.ts +2 -2
  342. package/dist/types/src/template-shapes/where.d.ts +1 -1
  343. package/dist/types/src/types/transforms.d.ts +1 -1
  344. package/dist/types/src/types/types.d.ts +4 -4
  345. package/dist/types/src/types/utils.d.ts +2 -2
  346. package/dist/types/src/unions.d.ts +2 -2
  347. package/dist/types/src/util/ai-tools.d.ts +1 -1
  348. package/dist/types/src/util/api-indexing.d.ts +1 -1
  349. package/dist/types/src/util/detect-cycles.d.ts +1 -1
  350. package/dist/types/src/util/find-shape-at-path.d.ts +1 -1
  351. package/dist/types/src/util/form-config.d.ts +1 -1
  352. package/dist/types/src/util/get-conflicting-properties.d.ts +1 -1
  353. package/dist/types/src/util/get-return-shape.d.ts +1 -1
  354. package/dist/types/src/util/has-arg.d.ts +2 -2
  355. package/dist/types/src/util/merge.d.ts +1 -1
  356. package/dist/types/src/util/patch-schema.d.ts +2 -2
  357. package/dist/types/src/util/shapes.d.ts +1 -1
  358. package/dist/types/src/validate.d.ts +4 -4
  359. package/dist/types/src/workflows.d.ts +1 -1
  360. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  361. package/examples/latest/agent-schema.json +5 -13
  362. package/examples/latest/all-fields-shapes-inline.json +19 -53
  363. package/examples/latest/all-fields-shapes.json +27 -77
  364. package/examples/latest/betzino.json +903 -3140
  365. package/examples/latest/blog-schema.json +9 -29
  366. package/examples/latest/brewery-schema.json +8 -26
  367. package/examples/latest/clear-cache-schema.json +4 -8
  368. package/examples/latest/complex-project-schema.json +99 -360
  369. package/examples/latest/complex-schema.json +487 -1754
  370. package/examples/latest/edit-schema.json +5 -12
  371. package/examples/latest/fabric-ecommerce.json +188 -839
  372. package/examples/latest/frank-and-fred-schema.json +489 -1756
  373. package/examples/latest/klirr-schema.json +683 -2412
  374. package/examples/latest/layers/rick-and-morty-layer.json +12 -33
  375. package/examples/latest/layers/shopify-layer-2023-01.json +2207 -8638
  376. package/examples/latest/layers/shopify-storefront-2023-04.json +403 -1713
  377. package/examples/latest/layers/wordpress-2024-01.json +689 -2744
  378. package/examples/latest/massive-schema.json +132 -585
  379. package/examples/latest/mill-components-schema.json +30 -126
  380. package/examples/latest/nested-shape-arrays.json +8 -20
  381. package/examples/latest/one-earth.json +237 -1114
  382. package/examples/latest/pet-oneof-array.json +8 -23
  383. package/examples/latest/post-schema.json +7 -21
  384. package/examples/latest/pruned-shopify-product-schema.json +186 -831
  385. package/examples/latest/rag-example.json +6 -16
  386. package/examples/latest/real-world-schema.json +15 -57
  387. package/examples/latest/recursive-repeater-schema.json +5 -12
  388. package/examples/latest/recursive-schema.json +5 -12
  389. package/examples/latest/rick-and-morty-ast.json +46 -175
  390. package/examples/latest/rick-and-morty-graphql.json +26 -101
  391. package/examples/latest/rick-and-morty-rest.json +4 -8
  392. package/examples/latest/rick-and-morty-with-indexing.json +6 -14
  393. package/examples/latest/schema-where-filter.json +12 -41
  394. package/examples/latest/schema-with-repeater-draftjs.json +4 -9
  395. package/examples/latest/schema-with-rick-and-morty.json +3 -5
  396. package/examples/latest/shape-books-v3_2_0.json +18 -72
  397. package/examples/latest/shape-books.json +18 -72
  398. package/examples/latest/shape-editor-schema-edited.json +24 -70
  399. package/examples/latest/shape-editor-schema-initial.json +11 -29
  400. package/examples/latest/shapedb-crud-every-prop-type.json +9 -23
  401. package/examples/latest/shopify-lookbook.json +6 -20
  402. package/examples/latest/shopify-product-2022-07.json +727 -3218
  403. package/examples/latest/shopify-product-2023-04.json +1013 -4497
  404. package/examples/latest/shopify-store-with-widget.json +214 -943
  405. package/examples/latest/stripe-product-runtime-schema.json +82 -278
  406. package/examples/latest/stripe-starter-resolved.json +477 -1954
  407. package/examples/latest/user-schema-no-required.json +4 -14
  408. package/examples/latest/user-schema-with-defaults.json +6 -28
  409. package/examples/latest/valvoline-ai-demo.json +18 -70
  410. package/examples/latest/vector-search-schema.json +9 -25
  411. package/examples/source/agent-schema.json +29 -16
  412. package/examples/source/all-fields-shapes-inline.json +21 -30
  413. package/examples/source/all-fields-shapes.json +26 -76
  414. package/examples/source/betzino.json +1501 -4960
  415. package/examples/source/blog-schema.json +1 -1
  416. package/examples/source/brewery-schema.json +1 -1
  417. package/examples/source/clear-cache-schema.json +4 -4
  418. package/examples/source/complex-project-schema.json +196 -688
  419. package/examples/source/edit-schema.json +3 -3
  420. package/examples/source/fabric-ecommerce.json +186 -837
  421. package/examples/source/frank-and-fred-schema.json +1136 -3929
  422. package/examples/source/layers/rick-and-morty-layer.json +10 -31
  423. package/examples/source/layers/shopify-layer-2023-01.json +2205 -8636
  424. package/examples/source/layers/shopify-storefront-2023-04.json +401 -1711
  425. package/examples/source/layers/wordpress-2024-01.json +689 -2743
  426. package/examples/source/massive-schema.json +386 -1455
  427. package/examples/source/nested-shape-arrays.json +12 -12
  428. package/examples/source/pet-oneof-array.json +31 -29
  429. package/examples/source/post-schema.json +1 -1
  430. package/examples/source/pruned-shopify-product-schema.json +184 -829
  431. package/examples/source/rag-example.json +5 -15
  432. package/examples/source/real-world-schema.json +32 -119
  433. package/examples/source/recursive-repeater-schema.json +3 -8
  434. package/examples/source/recursive-schema.json +1 -1
  435. package/examples/source/rick-and-morty-ast.json +66 -251
  436. package/examples/source/rick-and-morty-graphql.json +41 -162
  437. package/examples/source/rick-and-morty-rest.json +24 -6
  438. package/examples/source/rick-and-morty-with-indexing.json +25 -25
  439. package/examples/source/schema-where-filter.json +29 -50
  440. package/examples/source/schema-with-repeater-draftjs.json +9 -31
  441. package/examples/source/schema-with-rick-and-morty.json +4 -4
  442. package/examples/source/shape-books.json +49 -181
  443. package/examples/source/shape-editor-schema-edited.json +22 -68
  444. package/examples/source/shape-editor-schema-initial.json +9 -27
  445. package/examples/source/shapedb-crud-every-prop-type.json +20 -29
  446. package/examples/source/shopify-product-2022-07.json +736 -3261
  447. package/examples/source/shopify-product-2023-04.json +1022 -4540
  448. package/examples/source/shopify-store-with-widget.json +212 -941
  449. package/examples/source/stripe-product-runtime-schema.json +91 -321
  450. package/examples/source/stripe-starter-resolved.json +475 -1952
  451. package/examples/source/user-schema-with-defaults.json +1 -9
  452. package/examples/source/valvoline-ai-demo.json +175 -219
  453. package/examples/source/vector-search-schema.json +37 -38
  454. package/examples/v4_0_0/rick-and-morty-notes/flattened-schema.json +15 -49
  455. package/examples/v4_0_0/rick-and-morty-notes/layers/character-notes.json +8 -8
  456. package/examples/v4_0_0/rick-and-morty-notes/layers/takeshape-builtins.json +1 -3
  457. package/examples/v4_0_0/rick-and-morty-notes/layers/takeshape-static-sites.json +19 -79
  458. package/examples/v4_0_0/rick-and-morty-notes/schema.json +8 -5
  459. package/examples/v4_0_0/shopify-lookbook/flattened-schema.json +190 -851
  460. package/examples/v4_0_0/shopify-lookbook/layers/andrews-store.json +1103 -4431
  461. package/examples/v4_0_0/shopify-lookbook/layers/lookbook.json +64 -56
  462. package/examples/v4_0_0/shopify-lookbook/layers/takeshape-assets.json +1 -4
  463. package/examples/v4_0_0/shopify-lookbook/layers/takeshape-builtins.json +1 -3
  464. package/examples/v4_0_0/shopify-lookbook/schema.json +3 -10
  465. package/package.json +12 -9
@@ -0,0 +1,3320 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://schema.takeshape.io/project-schema/v3.51.0#",
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
27
+ }
28
+ ]
29
+ },
30
+ "simpleTypes": {
31
+ "title": "Simple Types",
32
+ "enum": ["array", "boolean", "integer", "null", "number", "object", "string"]
33
+ },
34
+ "stringArray": {
35
+ "title": "String Array",
36
+ "type": "array",
37
+ "items": {
38
+ "type": "string"
39
+ },
40
+ "uniqueItems": true,
41
+ "default": []
42
+ },
43
+ "backreference": {
44
+ "title": "Back Reference",
45
+ "description": "A configuration object for a reverse reference in a relationship.",
46
+ "type": "object",
47
+ "properties": {
48
+ "enabled": {
49
+ "type": "boolean"
50
+ },
51
+ "name": {
52
+ "type": "string",
53
+ "pattern": "^[_a-zA-Z][_a-zA-Z0-9]*$"
54
+ }
55
+ },
56
+ "additionalProperties": false,
57
+ "required": ["enabled"]
58
+ },
59
+ "mappingString": {
60
+ "title": "Mapping String",
61
+ "type": "string",
62
+ "pattern": "^[\\w-]+(?::[\\w-]+)+(?:\\.[\\w%-]+)+$"
63
+ },
64
+ "fieldMapping": {
65
+ "title": "Field Mapping",
66
+ "oneOf": [
67
+ {
68
+ "$ref": "#/definitions/mappingString"
69
+ },
70
+ {
71
+ "type": "array",
72
+ "items": {
73
+ "$ref": "#/definitions/mappingString"
74
+ }
75
+ }
76
+ ]
77
+ },
78
+ "refSchema": {
79
+ "title": "Ref Schema",
80
+ "type": "object",
81
+ "properties": {
82
+ "@ref": {
83
+ "$ref": "#/definitions/ref"
84
+ }
85
+ },
86
+ "required": ["@ref"]
87
+ },
88
+ "refSchemaLegacy": {
89
+ "title": "Ref Schema Legacy",
90
+ "type": "object",
91
+ "properties": {
92
+ "$ref": {
93
+ "$ref": "#/definitions/ref"
94
+ }
95
+ },
96
+ "required": ["$ref"]
97
+ },
98
+ "shapeSchemaEnum": {
99
+ "title": "Shape Schema Enum",
100
+ "type": "object",
101
+ "properties": {
102
+ "enum": {
103
+ "type": "array",
104
+ "minItems": 1,
105
+ "uniqueItems": true
106
+ }
107
+ },
108
+ "additionalProperties": false,
109
+ "required": ["enum"]
110
+ },
111
+ "objectSchema": {
112
+ "title": "Object Schema",
113
+ "type": "object",
114
+ "allOf": [
115
+ {
116
+ "$ref": "#/definitions/propertySchema"
117
+ },
118
+ {
119
+ "properties": {
120
+ "type": {
121
+ "type": "string",
122
+ "const": "object"
123
+ },
124
+ "properties": {
125
+ "type": "object",
126
+ "additionalProperties": {
127
+ "$ref": "#/definitions/propertySchema"
128
+ }
129
+ }
130
+ },
131
+ "required": ["type", "properties"]
132
+ }
133
+ ]
134
+ },
135
+ "returnShapeArraySchema": {
136
+ "title": "Return Shape Array Schema",
137
+ "type": "object",
138
+ "allOf": [
139
+ {
140
+ "$ref": "#/definitions/propertySchema"
141
+ },
142
+ {
143
+ "properties": {
144
+ "type": {
145
+ "type": "string",
146
+ "const": "array"
147
+ },
148
+ "items": {
149
+ "oneOf": [
150
+ {
151
+ "$ref": "#/definitions/refSchema"
152
+ },
153
+ {
154
+ "type": "object",
155
+ "properties": {
156
+ "type": {
157
+ "enum": ["boolean", "integer", "number", "string", "object"]
158
+ }
159
+ },
160
+ "required": ["type"]
161
+ }
162
+ ]
163
+ }
164
+ },
165
+ "required": ["type", "items"]
166
+ }
167
+ ]
168
+ },
169
+ "objectOrRefArray": {
170
+ "title": "ObjectOrRefArray",
171
+ "type": "array",
172
+ "items": {
173
+ "oneOf": [
174
+ {
175
+ "$ref": "#/definitions/refSchema"
176
+ },
177
+ {
178
+ "$ref": "#/definitions/refSchemaLegacy"
179
+ },
180
+ {
181
+ "$ref": "#/definitions/objectSchema"
182
+ }
183
+ ],
184
+ "unevaluatedProperties": true
185
+ }
186
+ },
187
+ "shapeSchemaAllOf": {
188
+ "title": "Shape Schema All Of",
189
+ "type": "object",
190
+ "properties": {
191
+ "allOf": {
192
+ "$ref": "#/definitions/objectOrRefArray"
193
+ }
194
+ },
195
+ "required": ["allOf"],
196
+ "additionalProperties": false
197
+ },
198
+ "allOfSchema": {
199
+ "title": "AllOfSchema",
200
+ "allOf": [
201
+ {
202
+ "$ref": "#/definitions/propertySchema"
203
+ },
204
+ {
205
+ "type": "object",
206
+ "properties": {
207
+ "allOf": {
208
+ "$ref": "#/definitions/objectOrRefArray"
209
+ }
210
+ },
211
+ "required": ["allOf"]
212
+ }
213
+ ]
214
+ },
215
+ "shapeSchemaExtends": {
216
+ "title": "ShapeSchemaExtends",
217
+ "type": "object",
218
+ "properties": {
219
+ "extends": {
220
+ "$ref": "#/definitions/objectOrRefArray"
221
+ }
222
+ },
223
+ "required": ["extends"],
224
+ "additionalProperties": false
225
+ },
226
+ "extendsSchema": {
227
+ "title": "ExtendsSchema",
228
+ "allOf": [
229
+ {
230
+ "$ref": "#/definitions/propertySchema"
231
+ },
232
+ {
233
+ "type": "object",
234
+ "properties": {
235
+ "extends": {
236
+ "$ref": "#/definitions/objectOrRefArray"
237
+ }
238
+ },
239
+ "required": ["extends"]
240
+ }
241
+ ]
242
+ },
243
+ "shapeSchemaOneOf": {
244
+ "title": "Shape Schema One Of",
245
+ "type": "object",
246
+ "properties": {
247
+ "oneOf": {
248
+ "$ref": "#/definitions/objectOrRefArray"
249
+ }
250
+ },
251
+ "required": ["oneOf"],
252
+ "additionalProperties": false
253
+ },
254
+ "oneOfSchema": {
255
+ "title": "OneOfSchema",
256
+ "allOf": [
257
+ {
258
+ "$ref": "#/definitions/propertySchema"
259
+ },
260
+ {
261
+ "type": "object",
262
+ "properties": {
263
+ "oneOf": {
264
+ "$ref": "#/definitions/objectOrRefArray"
265
+ }
266
+ },
267
+ "required": ["oneOf"],
268
+ "additionalProperties": false
269
+ }
270
+ ]
271
+ },
272
+ "shapeSchemaAny": {
273
+ "type": "object",
274
+ "title": "ShapeSchemaAny",
275
+ "additionalProperties": false
276
+ },
277
+ "shapeSchema": {
278
+ "title": "Shape Schema",
279
+ "type": "object",
280
+ "oneOf": [
281
+ {
282
+ "$ref": "#/definitions/shapeSchemaAllOf"
283
+ },
284
+ {
285
+ "$ref": "#/definitions/shapeSchemaExtends"
286
+ },
287
+ {
288
+ "$ref": "#/definitions/shapeSchemaOneOf"
289
+ },
290
+ {
291
+ "$ref": "#/definitions/shapeSchemaEnum"
292
+ },
293
+ {
294
+ "$ref": "#/definitions/objectSchema"
295
+ },
296
+ {
297
+ "$ref": "#/definitions/shapeSchemaAny"
298
+ }
299
+ ]
300
+ },
301
+ "queryMap": {
302
+ "title": "Query Map",
303
+ "type": "object",
304
+ "patternProperties": {
305
+ "^[0-9A-Za-z_]+$": {
306
+ "$ref": "#/definitions/query"
307
+ }
308
+ },
309
+ "additionalProperties": false
310
+ },
311
+ "args": {
312
+ "title": "Args",
313
+ "oneOf": [
314
+ {
315
+ "type": "string"
316
+ },
317
+ {
318
+ "$ref": "#/definitions/objectSchema"
319
+ }
320
+ ]
321
+ },
322
+ "returnShape": {
323
+ "title": "Return Shape",
324
+ "oneOf": [
325
+ {
326
+ "type": "string"
327
+ },
328
+ {
329
+ "$ref": "#/definitions/returnShapeArraySchema"
330
+ }
331
+ ]
332
+ },
333
+ "directiveConfigItem": {
334
+ "title": "Directive Config Item",
335
+ "description": "A tuple with a string directive name, and options to pass to the directive",
336
+ "type": "array",
337
+ "items": [
338
+ {
339
+ "title": "Directive Name",
340
+ "type": "string"
341
+ },
342
+ {
343
+ "title": "Directive Options",
344
+ "type": "object",
345
+ "propertyNames": {
346
+ "pattern": "[0-9A-Za-z_-]+"
347
+ }
348
+ }
349
+ ]
350
+ },
351
+ "parameterSerializeStyleOptions": {
352
+ "title": "Parameter Serialize Style Options",
353
+ "description": "All possible options for the more specific ParameterSerializeStyleOptions types.",
354
+ "type": "object",
355
+ "properties": {
356
+ "style": {
357
+ "type": "string",
358
+ "enum": ["simple", "label", "matrix", "form", "spaceDelimited", "pipeDelimited", "deepObject", "none"]
359
+ },
360
+ "explode": {
361
+ "type": "boolean"
362
+ },
363
+ "allowEmptyValue": {
364
+ "type": "boolean"
365
+ },
366
+ "allowReserved": {
367
+ "description": "The allowReserved keyword specifies whether the reserved characters :/?#[]@!$&'()*+,;= in parameter values are allowed to be sent as they are.",
368
+ "type": "boolean"
369
+ },
370
+ "skipEncoding": {
371
+ "type": "boolean"
372
+ }
373
+ },
374
+ "required": ["style"],
375
+ "additionalProperties": false
376
+ },
377
+ "parameterSerializeStyleOptionsForPathParams": {
378
+ "title": "Parameter Serialize Style Options For Path Params",
379
+ "description": "Options to be passed to the serialization routine.",
380
+ "type": "object",
381
+ "properties": {
382
+ "style": {
383
+ "type": "string",
384
+ "enum": ["simple", "label", "matrix", "none"]
385
+ },
386
+ "explode": {
387
+ "type": "boolean"
388
+ },
389
+ "allowEmptyValue": {
390
+ "type": "boolean"
391
+ },
392
+ "allowReserved": {
393
+ "description": "The allowReserved keyword specifies whether the reserved characters :/?#[]@!$&'()*+,;= in parameter values are allowed to be sent as they are.",
394
+ "type": "boolean"
395
+ },
396
+ "skipEncoding": {
397
+ "type": "boolean"
398
+ }
399
+ },
400
+ "required": ["style"],
401
+ "additionalProperties": false
402
+ },
403
+ "parameterSerializeStyleOptionsForSearchParams": {
404
+ "title": "Parameter Serialize Style Options For Search Params",
405
+ "description": "Options to be passed to the serialization routine.",
406
+ "type": "object",
407
+ "properties": {
408
+ "style": {
409
+ "type": "string",
410
+ "enum": ["form", "spaceDelimited", "pipeDelimited", "deepObject", "none"]
411
+ },
412
+ "explode": {
413
+ "type": "boolean"
414
+ },
415
+ "allowEmptyValue": {
416
+ "type": "boolean"
417
+ },
418
+ "allowReserved": {
419
+ "description": "The allowReserved keyword specifies whether the reserved characters :/?#[]@!$&'()*+,;= in parameter values are allowed to be sent as they are.",
420
+ "type": "boolean"
421
+ },
422
+ "skipEncoding": {
423
+ "type": "boolean"
424
+ }
425
+ },
426
+ "required": ["style"],
427
+ "additionalProperties": false
428
+ },
429
+ "parameterSerializeStyleOptionsForHeaders": {
430
+ "title": "Parameter Serialize Style Options For Headers",
431
+ "description": "Options to be passed to the serialization routine.",
432
+ "type": "object",
433
+ "properties": {
434
+ "style": {
435
+ "type": "string",
436
+ "enum": ["simple", "none"]
437
+ },
438
+ "explode": {
439
+ "type": "boolean"
440
+ }
441
+ },
442
+ "required": ["style"],
443
+ "additionalProperties": false
444
+ },
445
+ "parameterSerializeContentOptions": {
446
+ "title": "Parameter Serialize Content Options",
447
+ "description": "Options to be passed to the serialization routine.",
448
+ "type": "object",
449
+ "properties": {
450
+ "contentType": {
451
+ "type": "string"
452
+ },
453
+ "allowReserved": {
454
+ "description": "The allowReserved keyword specifies whether the reserved characters :/?#[]@!$&'()*+,;= in parameter values are allowed to be sent as they are.",
455
+ "type": "boolean"
456
+ },
457
+ "skipEncoding": {
458
+ "type": "boolean"
459
+ },
460
+ "options": {
461
+ "description": "Options to be passed directly to the content serializer library. Valid options depend upon your contentType.",
462
+ "type": "object"
463
+ }
464
+ },
465
+ "required": ["contentType"],
466
+ "additionalProperties": false
467
+ },
468
+ "parameterSerializeOptions": {
469
+ "title": "Parameter Serialize Options",
470
+ "description": "Options to be passed to the serialization routine.",
471
+ "type": "object",
472
+ "oneOf": [
473
+ {
474
+ "$ref": "#/definitions/parameterSerializeStyleOptions"
475
+ },
476
+ {
477
+ "$ref": "#/definitions/parameterSerializeContentOptions"
478
+ }
479
+ ]
480
+ },
481
+ "parameterSerializeConfig": {
482
+ "title": "Parameter Serialize Config",
483
+ "description": "All possible options for the more specific ParameterSerializeConfig types.",
484
+ "type": "object",
485
+ "properties": {
486
+ "content": {
487
+ "$ref": "#/definitions/parameterSerializeContentOptions"
488
+ },
489
+ "defaults": {
490
+ "$ref": "#/definitions/parameterSerializeOptions"
491
+ },
492
+ "paths": {
493
+ "type": "object",
494
+ "patternProperties": {
495
+ "^[^\\n\\r]*$": {
496
+ "$ref": "#/definitions/parameterSerializeOptions"
497
+ }
498
+ }
499
+ }
500
+ },
501
+ "additionalProperties": false
502
+ },
503
+ "parameterSerializeConfigForBody": {
504
+ "title": "Parameter Serialize Config For Body",
505
+ "description": "Top-level paths to use serialization options for.",
506
+ "type": "object",
507
+ "properties": {
508
+ "content": {
509
+ "$ref": "#/definitions/parameterSerializeContentOptions"
510
+ }
511
+ },
512
+ "additionalProperties": false
513
+ },
514
+ "parameterSerializeConfigForPathParams": {
515
+ "title": "Parameter Serialize Config For Path Params",
516
+ "description": "Top-level paths to use path params serialization options for.",
517
+ "type": "object",
518
+ "properties": {
519
+ "template": {
520
+ "description": "For generating the path using tokens frpm the ParameterOps, e.g., '/products/{productId}'",
521
+ "type": "string"
522
+ },
523
+ "defaults": {
524
+ "oneOf": [
525
+ {
526
+ "$ref": "#/definitions/parameterSerializeStyleOptionsForPathParams"
527
+ },
528
+ {
529
+ "$ref": "#/definitions/parameterSerializeContentOptions"
530
+ }
531
+ ]
532
+ },
533
+ "paths": {
534
+ "type": "object",
535
+ "patternProperties": {
536
+ "^[^\\n\\r]*$": {
537
+ "oneOf": [
538
+ {
539
+ "$ref": "#/definitions/parameterSerializeStyleOptionsForPathParams"
540
+ },
541
+ {
542
+ "$ref": "#/definitions/parameterSerializeContentOptions"
543
+ }
544
+ ]
545
+ }
546
+ }
547
+ }
548
+ },
549
+ "required": ["template"],
550
+ "additionalProperties": false
551
+ },
552
+ "parameterSerializeConfigForSearchParams": {
553
+ "title": "Parameter Serialize Config For Search Params",
554
+ "description": "Top-level paths to use search params serialization options for.",
555
+ "type": "object",
556
+ "properties": {
557
+ "defaults": {
558
+ "oneOf": [
559
+ {
560
+ "$ref": "#/definitions/parameterSerializeStyleOptionsForSearchParams"
561
+ },
562
+ {
563
+ "$ref": "#/definitions/parameterSerializeContentOptions"
564
+ }
565
+ ]
566
+ },
567
+ "paths": {
568
+ "type": "object",
569
+ "patternProperties": {
570
+ "^[^\\n\\r]*$": {
571
+ "oneOf": [
572
+ {
573
+ "$ref": "#/definitions/parameterSerializeStyleOptionsForSearchParams"
574
+ },
575
+ {
576
+ "$ref": "#/definitions/parameterSerializeContentOptions"
577
+ }
578
+ ]
579
+ }
580
+ }
581
+ }
582
+ },
583
+ "additionalProperties": false
584
+ },
585
+ "parameterSerializeConfigForHeaders": {
586
+ "title": "Parameter Serialize Config For Headers",
587
+ "description": "Top-level paths to use headers serialization options for.",
588
+ "type": "object",
589
+ "properties": {
590
+ "defaults": {
591
+ "oneOf": [
592
+ {
593
+ "$ref": "#/definitions/parameterSerializeStyleOptionsForHeaders"
594
+ },
595
+ {
596
+ "$ref": "#/definitions/parameterSerializeContentOptions"
597
+ }
598
+ ]
599
+ },
600
+ "paths": {
601
+ "type": "object",
602
+ "patternProperties": {
603
+ "^[^\\n\\r]*$": {
604
+ "oneOf": [
605
+ {
606
+ "$ref": "#/definitions/parameterSerializeStyleOptionsForHeaders"
607
+ },
608
+ {
609
+ "$ref": "#/definitions/parameterSerializeContentOptions"
610
+ }
611
+ ]
612
+ }
613
+ }
614
+ }
615
+ },
616
+ "additionalProperties": false
617
+ },
618
+ "parameterOpNested": {
619
+ "title": "Parameter Op Nested",
620
+ "description": "An object describing an operation to generate a parameter, using a nested OpList.",
621
+ "type": "object",
622
+ "properties": {
623
+ "path": {
624
+ "description": "A path to the parameter for this operation.",
625
+ "type": "string",
626
+ "minLength": 1,
627
+ "pattern": "^[^\\n\\r]*$"
628
+ },
629
+ "op": {
630
+ "description": "A mode for this parameter's operation.",
631
+ "type": "string",
632
+ "enum": ["set", "concat", "extend", "remove"]
633
+ },
634
+ "ops": {
635
+ "description": "A nested op list.",
636
+ "$ref": "#/definitions/parameterOpList"
637
+ }
638
+ },
639
+ "required": ["path", "ops"],
640
+ "additionalProperties": false
641
+ },
642
+ "parameterOpValue": {
643
+ "title": "Parameter Op Value",
644
+ "description": "An object describing an operation to generate a parameter using a value.",
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
+ "value": {
659
+ "description": "A value to set directly at this path.",
660
+ "type": ["number", "string", "boolean", "object", "array", "null"]
661
+ }
662
+ },
663
+ "required": ["path", "value"],
664
+ "additionalProperties": false
665
+ },
666
+ "parameterOpMapping": {
667
+ "title": "Parameter Op Mapping",
668
+ "description": "An object describing an operation to generate a parameter using a mapping.",
669
+ "type": "object",
670
+ "properties": {
671
+ "path": {
672
+ "description": "A path to the parameter for this operation.",
673
+ "type": "string",
674
+ "minLength": 1,
675
+ "pattern": "^[^\\n\\r]*$"
676
+ },
677
+ "op": {
678
+ "description": "A mode for this parameter's operation.",
679
+ "type": "string",
680
+ "enum": ["set", "concat", "extend", "remove"]
681
+ },
682
+ "mapping": {
683
+ "description": "Either a valid JSONPath or a directive pipeline to evaluate against the query context.",
684
+ "oneOf": [
685
+ {
686
+ "type": "string",
687
+ "minLength": 1
688
+ },
689
+ {
690
+ "$ref": "#/definitions/directiveConfig"
691
+ }
692
+ ]
693
+ }
694
+ },
695
+ "required": ["path", "mapping"],
696
+ "additionalProperties": false
697
+ },
698
+ "parameterOpOp": {
699
+ "title": "Parameter Op Op",
700
+ "description": "An object describing an operation to generate a parameter using a mapping.",
701
+ "type": "object",
702
+ "properties": {
703
+ "path": {
704
+ "description": "A path to the parameter for this operation.",
705
+ "type": "string",
706
+ "minLength": 1,
707
+ "pattern": "^[^\\n\\r]*$"
708
+ },
709
+ "op": {
710
+ "description": "A mode for this parameter's operation.",
711
+ "type": "string",
712
+ "enum": ["set", "concat", "extend", "remove"]
713
+ }
714
+ },
715
+ "required": ["path", "op"],
716
+ "additionalProperties": false
717
+ },
718
+ "parameterOp": {
719
+ "title": "Parameter Op",
720
+ "description": "An object describing an operation to generate a parameter.",
721
+ "oneOf": [
722
+ {
723
+ "$ref": "#/definitions/parameterOpNested"
724
+ },
725
+ {
726
+ "$ref": "#/definitions/parameterOpValue"
727
+ },
728
+ {
729
+ "$ref": "#/definitions/parameterOpMapping"
730
+ },
731
+ {
732
+ "$ref": "#/definitions/parameterOpOp"
733
+ }
734
+ ]
735
+ },
736
+ "parameterOpList": {
737
+ "title": "Parameter Op List",
738
+ "type": "array",
739
+ "items": {
740
+ "$ref": "#/definitions/parameterOp"
741
+ },
742
+ "minItems": 1
743
+ },
744
+ "parameterConfig": {
745
+ "title": "Parameter Config",
746
+ "description": "All possible options for the more specific ParameterConfig types.",
747
+ "type": "object",
748
+ "properties": {
749
+ "ops": {
750
+ "$ref": "#/definitions/parameterOpList"
751
+ },
752
+ "serialize": {
753
+ "$ref": "#/definitions/parameterSerializeConfig"
754
+ }
755
+ },
756
+ "required": ["ops"],
757
+ "additionalProperties": false
758
+ },
759
+ "parameterConfigForBody": {
760
+ "title": "Parameter Config For Body",
761
+ "type": "object",
762
+ "properties": {
763
+ "ops": {
764
+ "$ref": "#/definitions/parameterOpList"
765
+ },
766
+ "serialize": {
767
+ "$ref": "#/definitions/parameterSerializeConfigForBody"
768
+ }
769
+ },
770
+ "required": ["ops"],
771
+ "additionalProperties": false
772
+ },
773
+ "parameterConfigForPathParams": {
774
+ "title": "Parameter Config For Path Params",
775
+ "type": "object",
776
+ "properties": {
777
+ "ops": {
778
+ "$ref": "#/definitions/parameterOpList"
779
+ },
780
+ "serialize": {
781
+ "$ref": "#/definitions/parameterSerializeConfigForPathParams"
782
+ }
783
+ },
784
+ "required": ["ops", "serialize"],
785
+ "additionalProperties": false
786
+ },
787
+ "parameterConfigForAwsLambda": {
788
+ "title": "ParameterConfigForAwsLambda",
789
+ "type": "object",
790
+ "properties": {
791
+ "ops": {
792
+ "$ref": "#/definitions/parameterOpList"
793
+ },
794
+ "serialize": {
795
+ "$ref": "#/definitions/parameterSerializeConfigForPathParams"
796
+ }
797
+ },
798
+ "required": ["ops", "serialize"],
799
+ "additionalProperties": false
800
+ },
801
+ "parameterConfigForSearchParams": {
802
+ "title": "Parameter Config For Search Params",
803
+ "type": "object",
804
+ "properties": {
805
+ "ops": {
806
+ "$ref": "#/definitions/parameterOpList"
807
+ },
808
+ "serialize": {
809
+ "$ref": "#/definitions/parameterSerializeConfigForSearchParams"
810
+ }
811
+ },
812
+ "required": ["ops"],
813
+ "additionalProperties": false
814
+ },
815
+ "parameterConfigForHeaders": {
816
+ "title": "Parameter Config For Headers",
817
+ "type": "object",
818
+ "properties": {
819
+ "ops": {
820
+ "$ref": "#/definitions/parameterOpList"
821
+ },
822
+ "serialize": {
823
+ "$ref": "#/definitions/parameterSerializeConfigForHeaders"
824
+ }
825
+ },
826
+ "required": ["ops"],
827
+ "additionalProperties": false
828
+ },
829
+ "parameterConfigForJson": {
830
+ "title": "Parameter Config For Json",
831
+ "type": "object",
832
+ "properties": {
833
+ "ops": {
834
+ "$ref": "#/definitions/parameterOpList"
835
+ }
836
+ },
837
+ "required": ["ops"],
838
+ "additionalProperties": false
839
+ },
840
+ "directiveConfig": {
841
+ "title": "Directive Config",
842
+ "description": "An array of individual directive config items to process in order",
843
+ "type": "array",
844
+ "items": {
845
+ "$ref": "#/definitions/directiveConfigItem"
846
+ },
847
+ "minItems": 1
848
+ },
849
+ "directiveMappingMap": {
850
+ "title": "Directive Mapping Map",
851
+ "description": "An map of object keys / key paths to directive configs",
852
+ "type": "object",
853
+ "patternProperties": {
854
+ "[0-9A-Za-z_-]+": {
855
+ "$ref": "#/definitions/directiveConfig"
856
+ }
857
+ }
858
+ },
859
+ "directiveMappingArrayItem": {
860
+ "title": "Directive Mapping Array Item",
861
+ "description": "A tuple with a string key and a directive config to evaluate",
862
+ "type": "array",
863
+ "items": [
864
+ {
865
+ "type": "string"
866
+ },
867
+ {
868
+ "$ref": "#/definitions/directiveConfig"
869
+ }
870
+ ]
871
+ },
872
+ "directiveMappingArray": {
873
+ "title": "Directive Mapping Array",
874
+ "description": "An array of key / value or directive config tuples",
875
+ "type": "array",
876
+ "items": {
877
+ "$ref": "#/definitions/directiveMappingArrayItem"
878
+ }
879
+ },
880
+ "basicResolver": {
881
+ "title": "BasicResolver",
882
+ "description": "A single resolver, can be composed with the ComposeResolver.",
883
+ "discriminator": {
884
+ "propertyName": "name"
885
+ },
886
+ "oneOf": [
887
+ {
888
+ "$ref": "#/definitions/utilResolver"
889
+ },
890
+ {
891
+ "$ref": "#/definitions/delegateResolver"
892
+ },
893
+ {
894
+ "$ref": "#/definitions/takeshapeResolver"
895
+ },
896
+ {
897
+ "$ref": "#/definitions/shapedbResolver"
898
+ },
899
+ {
900
+ "$ref": "#/definitions/shapedbResolverShapeNameNotRequired"
901
+ },
902
+ {
903
+ "$ref": "#/definitions/graphqlResolver"
904
+ },
905
+ {
906
+ "$ref": "#/definitions/restResolver"
907
+ },
908
+ {
909
+ "$ref": "#/definitions/awsLambdaResolver"
910
+ },
911
+ {
912
+ "$ref": "#/definitions/salsifyResolver"
913
+ },
914
+ {
915
+ "$ref": "#/definitions/syndigoResolver"
916
+ },
917
+ {
918
+ "$ref": "#/definitions/functionResolver"
919
+ },
920
+ {
921
+ "$ref": "#/definitions/aiGenerateTextResolver"
922
+ },
923
+ {
924
+ "$ref": "#/definitions/aiGeneratePropertyResolver"
925
+ },
926
+ {
927
+ "$ref": "#/definitions/aiEmbeddingResolver"
928
+ },
929
+ {
930
+ "$ref": "#/definitions/aiParseFileResolver"
931
+ },
932
+ {
933
+ "$ref": "https://schema.takeshape.io/project-schema/experimental#/definitions/aiRunAgentResolver"
934
+ },
935
+ {
936
+ "$ref": "https://schema.takeshape.io/project-schema/experimental#/definitions/aiInspectAgentResolver"
937
+ }
938
+ ]
939
+ },
940
+ "serviceResolver": {
941
+ "title": "ServiceResolver",
942
+ "description": "A resolver which references a specific service",
943
+ "discriminator": {
944
+ "propertyName": "name"
945
+ },
946
+ "oneOf": [
947
+ {
948
+ "$ref": "#/definitions/takeshapeResolver"
949
+ },
950
+ {
951
+ "$ref": "#/definitions/shapedbResolverShapeNameNotRequired"
952
+ },
953
+ {
954
+ "$ref": "#/definitions/shapedbResolver"
955
+ },
956
+ {
957
+ "$ref": "#/definitions/graphqlResolver"
958
+ },
959
+ {
960
+ "$ref": "#/definitions/restResolver"
961
+ },
962
+ {
963
+ "$ref": "#/definitions/awsLambdaResolver"
964
+ }
965
+ ]
966
+ },
967
+ "argsMapping": {
968
+ "title": "ArgsMapping",
969
+ "description": "Maps a query's input args to the input expected by the service's endpoint.",
970
+ "oneOf": [
971
+ {
972
+ "$ref": "#/definitions/directiveMappingMap"
973
+ },
974
+ {
975
+ "$ref": "#/definitions/directiveConfig"
976
+ }
977
+ ]
978
+ },
979
+ "searchParamsMapping": {
980
+ "title": "SearchParamsMapping",
981
+ "description": "Set or evaluate directives to generate searchParams for the service endpoint.",
982
+ "$ref": "#/definitions/directiveMappingArray"
983
+ },
984
+ "resultsMapping": {
985
+ "title": "ResultsMapping",
986
+ "description": "Maps a service endpoint's response results to the expected shape of the query's response.",
987
+ "oneOf": [
988
+ {
989
+ "$ref": "#/definitions/directiveMappingMap"
990
+ },
991
+ {
992
+ "$ref": "#/definitions/directiveConfig"
993
+ }
994
+ ]
995
+ },
996
+ "utilResolver": {
997
+ "title": "UtilResolver",
998
+ "type": "object",
999
+ "properties": {
1000
+ "if": {
1001
+ "type": "string"
1002
+ },
1003
+ "id": {
1004
+ "type": "string",
1005
+ "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
1006
+ },
1007
+ "name": {
1008
+ "title": "UtilResolverName",
1009
+ "type": "string",
1010
+ "description": "Name of the resolver function.",
1011
+ "enum": ["util:noop", "util:wrap"]
1012
+ },
1013
+ "options": {
1014
+ "title": "UtilResolverOptions",
1015
+ "type": "object",
1016
+ "additionalProperties": true
1017
+ },
1018
+ "value": {
1019
+ "description": "Optional value to return from the noop resolver.",
1020
+ "type": ["number", "string", "boolean", "object", "array", "null"]
1021
+ },
1022
+ "args": {
1023
+ "description": "Mapping and serialization configuration for args.",
1024
+ "$ref": "#/definitions/parameterConfigForJson"
1025
+ },
1026
+ "results": {
1027
+ "description": "Mapping configuration for the results of this resolver step.",
1028
+ "$ref": "#/definitions/parameterConfigForJson"
1029
+ },
1030
+ "argsMapping": {
1031
+ "$ref": "#/definitions/argsMapping"
1032
+ },
1033
+ "resultsMapping": {
1034
+ "$ref": "#/definitions/resultsMapping"
1035
+ }
1036
+ },
1037
+ "required": ["name"],
1038
+ "additionalProperties": false
1039
+ },
1040
+ "functionResolver": {
1041
+ "title": "FunctionResolver",
1042
+ "type": "object",
1043
+ "properties": {
1044
+ "if": {
1045
+ "type": "string"
1046
+ },
1047
+ "id": {
1048
+ "type": "string",
1049
+ "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
1050
+ },
1051
+ "name": {
1052
+ "title": "FunctionResolverName",
1053
+ "type": "string",
1054
+ "description": "Name of the resolver function.",
1055
+ "enum": ["function:run"]
1056
+ },
1057
+ "options": {
1058
+ "title": "FunctionResolverOptions",
1059
+ "type": "object",
1060
+ "additionalProperties": true
1061
+ },
1062
+ "args": {
1063
+ "description": "Mapping and serialization configuration for args.",
1064
+ "$ref": "#/definitions/parameterConfigForJson"
1065
+ },
1066
+ "results": {
1067
+ "description": "Mapping configuration for the results of this resolver step.",
1068
+ "$ref": "#/definitions/parameterConfigForJson"
1069
+ },
1070
+ "argsMapping": {
1071
+ "$ref": "#/definitions/argsMapping"
1072
+ },
1073
+ "resultsMapping": {
1074
+ "$ref": "#/definitions/resultsMapping"
1075
+ },
1076
+ "javascript": {
1077
+ "title": "FunctionResolverJavascript",
1078
+ "type": "string"
1079
+ }
1080
+ },
1081
+ "required": ["name"],
1082
+ "additionalProperties": false
1083
+ },
1084
+ "delegateResolver": {
1085
+ "title": "DelegateResolver",
1086
+ "type": "object",
1087
+ "properties": {
1088
+ "if": {
1089
+ "type": "string"
1090
+ },
1091
+ "id": {
1092
+ "type": "string",
1093
+ "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
1094
+ },
1095
+ "name": {
1096
+ "title": "Delegate Resolver Name",
1097
+ "type": "string",
1098
+ "description": "Name of the resolver function.",
1099
+ "enum": ["delegate"]
1100
+ },
1101
+ "options": {
1102
+ "title": "DelegateResolverOptions",
1103
+ "type": "object",
1104
+ "additionalProperties": true
1105
+ },
1106
+ "argsMapping": {
1107
+ "$ref": "#/definitions/argsMapping"
1108
+ },
1109
+ "resultsMapping": {
1110
+ "$ref": "#/definitions/resultsMapping"
1111
+ },
1112
+ "to": {
1113
+ "description": "A ref to a query/mutation/property to delegate to.",
1114
+ "type": "string",
1115
+ "minLength": 1
1116
+ },
1117
+ "args": {
1118
+ "description": "Mapping and serialization configuration for args.",
1119
+ "$ref": "#/definitions/parameterConfigForJson"
1120
+ },
1121
+ "results": {
1122
+ "description": "Mapping configuration for the results of this resolver step.",
1123
+ "$ref": "#/definitions/parameterConfigForJson"
1124
+ }
1125
+ },
1126
+ "required": ["name", "to"],
1127
+ "additionalProperties": false
1128
+ },
1129
+ "salsifyResolver": {
1130
+ "title": "SalsifyResolver",
1131
+ "type": "object",
1132
+ "properties": {
1133
+ "if": {
1134
+ "type": "string"
1135
+ },
1136
+ "id": {
1137
+ "type": "string",
1138
+ "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
1139
+ },
1140
+ "name": {
1141
+ "title": "Salsify Resolver Name",
1142
+ "type": "string",
1143
+ "description": "Name of the resolver function.",
1144
+ "enum": ["salsify:listChannelProducts"]
1145
+ },
1146
+ "service": {
1147
+ "type": "string",
1148
+ "description": "Configuration for a service to use with this resolver."
1149
+ },
1150
+ "options": {
1151
+ "title": "SalsifyResolverOptions",
1152
+ "type": "object",
1153
+ "additionalProperties": true
1154
+ },
1155
+ "args": {
1156
+ "description": "Mapping and serialization configuration for args.",
1157
+ "$ref": "#/definitions/parameterConfigForJson"
1158
+ },
1159
+ "results": {
1160
+ "description": "Mapping configuration for the results of this resolver step.",
1161
+ "$ref": "#/definitions/parameterConfigForJson"
1162
+ },
1163
+ "argsMapping": {
1164
+ "$ref": "#/definitions/argsMapping"
1165
+ },
1166
+ "resultsMapping": {
1167
+ "$ref": "#/definitions/resultsMapping"
1168
+ }
1169
+ },
1170
+ "required": ["name", "service"],
1171
+ "additionalProperties": false
1172
+ },
1173
+ "syndigoResolver": {
1174
+ "title": "SyndigoResolver",
1175
+ "type": "object",
1176
+ "properties": {
1177
+ "if": {
1178
+ "type": "string"
1179
+ },
1180
+ "id": {
1181
+ "type": "string",
1182
+ "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
1183
+ },
1184
+ "name": {
1185
+ "title": "Syndigo Resolver Name",
1186
+ "type": "string",
1187
+ "description": "Name of the resolver function.",
1188
+ "enum": ["syndigo:searchProducts"]
1189
+ },
1190
+ "service": {
1191
+ "type": "string",
1192
+ "description": "Configuration for a service to use with this resolver."
1193
+ },
1194
+ "options": {
1195
+ "title": "SyndigoResolverOptions",
1196
+ "type": "object",
1197
+ "additionalProperties": true
1198
+ },
1199
+ "args": {
1200
+ "description": "Mapping and serialization configuration for args.",
1201
+ "$ref": "#/definitions/parameterConfigForJson"
1202
+ },
1203
+ "results": {
1204
+ "description": "Mapping configuration for the results of this resolver step.",
1205
+ "$ref": "#/definitions/parameterConfigForJson"
1206
+ },
1207
+ "argsMapping": {
1208
+ "$ref": "#/definitions/argsMapping"
1209
+ },
1210
+ "resultsMapping": {
1211
+ "$ref": "#/definitions/resultsMapping"
1212
+ }
1213
+ },
1214
+ "required": ["name", "service"],
1215
+ "additionalProperties": false
1216
+ },
1217
+ "shapedbResolver": {
1218
+ "title": "ShapedbResolver",
1219
+ "type": "object",
1220
+ "properties": {
1221
+ "if": {
1222
+ "type": "string"
1223
+ },
1224
+ "id": {
1225
+ "type": "string",
1226
+ "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
1227
+ },
1228
+ "name": {
1229
+ "title": "ShapedbResolverName",
1230
+ "type": "string",
1231
+ "description": "Name of the resolver function.",
1232
+ "enum": [
1233
+ "shapedb:get",
1234
+ "shapedb:create",
1235
+ "shapedb:update",
1236
+ "shapedb:delete",
1237
+ "shapedb:duplicate",
1238
+ "shapedb:find"
1239
+ ]
1240
+ },
1241
+ "service": {
1242
+ "type": "string",
1243
+ "description": "Internal service identifier.",
1244
+ "enum": ["shapedb"]
1245
+ },
1246
+ "options": {
1247
+ "title": "ShapedbResolverOptions",
1248
+ "type": "object",
1249
+ "additionalProperties": true
1250
+ },
1251
+ "argsMapping": {
1252
+ "$ref": "#/definitions/argsMapping"
1253
+ },
1254
+ "resultsMapping": {
1255
+ "$ref": "#/definitions/resultsMapping"
1256
+ },
1257
+ "shapeName": {
1258
+ "description": "A Shape name for the resolver to use.",
1259
+ "type": "string",
1260
+ "minLength": 1
1261
+ },
1262
+ "args": {
1263
+ "description": "Mapping and serialization configuration for args.",
1264
+ "$ref": "#/definitions/parameterConfigForJson"
1265
+ },
1266
+ "results": {
1267
+ "description": "Mapping configuration for the results of this resolver step.",
1268
+ "$ref": "#/definitions/parameterConfigForJson"
1269
+ }
1270
+ },
1271
+ "required": ["name", "service", "shapeName"],
1272
+ "additionalProperties": false
1273
+ },
1274
+ "shapedbResolverShapeNameNotRequired": {
1275
+ "title": "ShapedbResolverShapeNameNotRequired",
1276
+ "type": "object",
1277
+ "properties": {
1278
+ "if": {
1279
+ "type": "string"
1280
+ },
1281
+ "id": {
1282
+ "type": "string",
1283
+ "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
1284
+ },
1285
+ "name": {
1286
+ "title": "ShapedbResolverShapeNameNotRequiredName",
1287
+ "type": "string",
1288
+ "description": "Name of the resolver function.",
1289
+ "enum": ["shapedb:list", "shapedb:taxonomySuggest", "shapedb:getRelated"]
1290
+ },
1291
+ "service": {
1292
+ "type": "string",
1293
+ "description": "Internal service identifier.",
1294
+ "enum": ["shapedb"]
1295
+ },
1296
+ "options": {
1297
+ "title": "ShapedbResolverShapeNameNotRequiredOptions",
1298
+ "type": "object",
1299
+ "additionalProperties": true
1300
+ },
1301
+ "shapeName": {
1302
+ "description": "An optional Shape name for the resolver.",
1303
+ "type": "string",
1304
+ "minLength": 1
1305
+ },
1306
+ "args": {
1307
+ "description": "Mapping and serialization configuration for args.",
1308
+ "$ref": "#/definitions/parameterConfigForJson"
1309
+ },
1310
+ "results": {
1311
+ "description": "Mapping configuration for the results of this resolver step.",
1312
+ "$ref": "#/definitions/parameterConfigForJson"
1313
+ },
1314
+ "argsMapping": {
1315
+ "$ref": "#/definitions/argsMapping"
1316
+ },
1317
+ "resultsMapping": {
1318
+ "$ref": "#/definitions/resultsMapping"
1319
+ }
1320
+ },
1321
+ "required": ["name", "service"],
1322
+ "additionalProperties": false
1323
+ },
1324
+ "aiToolConfig": {
1325
+ "title": "AIToolConfig",
1326
+ "type": "object",
1327
+ "properties": {
1328
+ "ref": {
1329
+ "type": "string"
1330
+ },
1331
+ "selectionSet": {
1332
+ "type": "string"
1333
+ }
1334
+ },
1335
+ "required": ["ref"],
1336
+ "additionalProperties": false
1337
+ },
1338
+ "aiSimilarityGuardrail": {
1339
+ "title": "AISimilarityGuardrail",
1340
+ "type": "object",
1341
+ "properties": {
1342
+ "name": {
1343
+ "enum": ["similarity"]
1344
+ },
1345
+ "shape": {
1346
+ "type": "string"
1347
+ },
1348
+ "defaultResponse": {
1349
+ "type": "string"
1350
+ },
1351
+ "threshold": {
1352
+ "type": "number"
1353
+ }
1354
+ },
1355
+ "required": ["name", "shape", "defaultResponse"],
1356
+ "additionalProperties": false
1357
+ },
1358
+ "aiGuardrail": {
1359
+ "title": "AIGuardrail",
1360
+ "discriminator": {
1361
+ "propertyName": "name"
1362
+ },
1363
+ "oneOf": [
1364
+ {
1365
+ "$ref": "#/definitions/aiSimilarityGuardrail"
1366
+ }
1367
+ ]
1368
+ },
1369
+ "aiGenerateTextResolverOptions": {
1370
+ "title": "AIGenerateTextResolverOptions",
1371
+ "type": "object",
1372
+ "properties": {
1373
+ "history": {
1374
+ "title": "history",
1375
+ "type": "boolean"
1376
+ },
1377
+ "maxTokens": {
1378
+ "type": "integer",
1379
+ "title": "Maximum Tokens",
1380
+ "description": "Maximum number of tokens to generate."
1381
+ },
1382
+ "temperature": {
1383
+ "type": "number",
1384
+ "title": "Temperature",
1385
+ "description": "This is a number between 0 (almost no randomness) and 1 (very random). It is recommended to set either `temperature` or `topP`, but not both. Defaults to 0",
1386
+ "minimum": 0,
1387
+ "maximum": 1
1388
+ },
1389
+ "topP": {
1390
+ "type": "number",
1391
+ "title": "Top P",
1392
+ "description": "Nucleus sampling. This is a number between 0 and 1. E.g. 0.1 would mean that only tokens with the top 10% probability mass are considered. It is recommended to set either `temperature` or `topP`, but not both.",
1393
+ "minimum": 0,
1394
+ "maximum": 1
1395
+ },
1396
+ "topK": {
1397
+ "type": "number",
1398
+ "title": "Top K",
1399
+ "description": "Only sample from the top K options for each subsequent token. Used to remove \"long tail\" low probability responses. Recommended for advanced use cases only. You usually only need to use temperature."
1400
+ },
1401
+ "presencePenalty": {
1402
+ "type": "number",
1403
+ "title": "Presence penalty setting",
1404
+ "description": "It affects the likelihood of the model to repeat information that is already in the prompt. The presence penalty is a number between -1 (increase repetition) and 1 (maximum penalty, decrease repetition). 0 means no penalty.",
1405
+ "minimum": -1,
1406
+ "maximum": 1
1407
+ },
1408
+ "frequencyPenalty": {
1409
+ "type": "number",
1410
+ "title": "Frequency penalty setting",
1411
+ "description": "It affects the likelihood of the model to repeatedly use the same words or phrases. The frequency penalty is a number between -1 (increase repetition) and 1 (maximum penalty, decrease repetition). 0 means no penalty.",
1412
+ "minimum": -1,
1413
+ "maximum": 1
1414
+ },
1415
+ "stopSequences": {
1416
+ "title": "Stop sequences",
1417
+ "description": "If set, the model will stop generating text when one of the stop sequences is generated.",
1418
+ "type": "array",
1419
+ "items": {
1420
+ "type": "string"
1421
+ }
1422
+ },
1423
+ "seed": {
1424
+ "type": "integer",
1425
+ "title": "Seed",
1426
+ "description": " The seed (integer) to use for random sampling. If set and supported by the model, calls will generate deterministic results."
1427
+ },
1428
+ "maxRetries": {
1429
+ "type": "integer",
1430
+ "description": "Maximum number of retries. Set to 0 to disable retries. Defaults to 2"
1431
+ },
1432
+ "toolChoice": {
1433
+ "type": "string",
1434
+ "description": "The tool choice strategy. Default: 'auto'",
1435
+ "anyOf": [
1436
+ {
1437
+ "enum": ["auto", "none", "required"]
1438
+ },
1439
+ {
1440
+ "type": "string"
1441
+ }
1442
+ ]
1443
+ },
1444
+ "maxToolRoundtrips": {
1445
+ "type": "integer",
1446
+ "description": "Maximal number of automatic roundtrips for tool calls."
1447
+ }
1448
+ }
1449
+ },
1450
+ "aiGenerateTextResolver": {
1451
+ "title": "AIGenerateTextResolver",
1452
+ "type": "object",
1453
+ "properties": {
1454
+ "if": {
1455
+ "type": "string"
1456
+ },
1457
+ "id": {
1458
+ "type": "string",
1459
+ "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
1460
+ },
1461
+ "name": {
1462
+ "title": "AI Resolver Name",
1463
+ "type": "string",
1464
+ "description": "Name of the resolver function.",
1465
+ "enum": ["ai:generateText", "ai:chat"]
1466
+ },
1467
+ "service": {
1468
+ "type": "string",
1469
+ "description": "Configuration for a service to use with this resolver."
1470
+ },
1471
+ "options": {
1472
+ "$ref": "#/definitions/aiGenerateTextResolverOptions"
1473
+ },
1474
+ "systemPrompt": {
1475
+ "type": "string"
1476
+ },
1477
+ "inputTemplate": {
1478
+ "type": "string"
1479
+ },
1480
+ "model": {
1481
+ "type": "string"
1482
+ },
1483
+ "tools": {
1484
+ "type": "array",
1485
+ "items": {
1486
+ "oneOf": [
1487
+ {
1488
+ "type": "string"
1489
+ },
1490
+ {
1491
+ "$ref": "#/definitions/aiToolConfig"
1492
+ }
1493
+ ]
1494
+ }
1495
+ },
1496
+ "guardrails": {
1497
+ "type": "array",
1498
+ "items": {
1499
+ "$ref": "#/definitions/aiGuardrail"
1500
+ }
1501
+ },
1502
+ "context": {
1503
+ "description": "Mapping and serialization configuration for prompt context.",
1504
+ "$ref": "#/definitions/parameterConfigForJson"
1505
+ },
1506
+ "results": {
1507
+ "description": "Mapping configuration for the results of this resolver step.",
1508
+ "$ref": "#/definitions/parameterConfigForJson"
1509
+ }
1510
+ },
1511
+ "required": ["name", "service", "model", "systemPrompt"],
1512
+ "additionalProperties": false
1513
+ },
1514
+ "aiGeneratePropertyResolver": {
1515
+ "title": "AIGeneratePropertyResolver",
1516
+ "type": "object",
1517
+ "properties": {
1518
+ "id": {
1519
+ "type": "string",
1520
+ "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
1521
+ },
1522
+ "name": {
1523
+ "title": "AI Resolver Name",
1524
+ "type": "string",
1525
+ "description": "Name of the resolver function.",
1526
+ "enum": ["ai:generateProperty"]
1527
+ },
1528
+ "service": {
1529
+ "type": "string",
1530
+ "description": "Configuration for a service to use with this resolver."
1531
+ },
1532
+ "model": {
1533
+ "type": "string"
1534
+ },
1535
+ "systemPrompt": {
1536
+ "type": "string"
1537
+ }
1538
+ },
1539
+ "required": ["name", "service", "model"],
1540
+ "additionalProperties": false
1541
+ },
1542
+ "aiEmbeddingResolverOptions": {
1543
+ "title": "AIEmbeddingResolverOptions",
1544
+ "type": "object",
1545
+ "properties": {
1546
+ "useDependencies": {
1547
+ "type": "boolean"
1548
+ }
1549
+ }
1550
+ },
1551
+ "aiEmbeddingResolver": {
1552
+ "title": "AIEmbeddingResolver",
1553
+ "type": "object",
1554
+ "properties": {
1555
+ "if": {
1556
+ "type": "string"
1557
+ },
1558
+ "id": {
1559
+ "type": "string",
1560
+ "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
1561
+ },
1562
+ "name": {
1563
+ "title": "AI Resolver Name",
1564
+ "type": "string",
1565
+ "description": "Name of the resolver function.",
1566
+ "enum": ["ai:createEmbedding"]
1567
+ },
1568
+ "service": {
1569
+ "type": "string",
1570
+ "description": "Configuration for a service to use with this resolver."
1571
+ },
1572
+ "options": {
1573
+ "$ref": "#/definitions/aiEmbeddingResolverOptions"
1574
+ },
1575
+ "model": {
1576
+ "type": "string"
1577
+ },
1578
+ "args": {
1579
+ "description": "Mapping and serialization configuration for prompt context.",
1580
+ "$ref": "#/definitions/parameterConfigForJson"
1581
+ },
1582
+ "results": {
1583
+ "description": "Mapping configuration for the results of this resolver step.",
1584
+ "$ref": "#/definitions/parameterConfigForJson"
1585
+ }
1586
+ },
1587
+ "required": ["name", "service", "model"],
1588
+ "additionalProperties": false
1589
+ },
1590
+ "aiParseFileResolverOptions": {
1591
+ "title": "AIParseFileResolverOptions",
1592
+ "type": "object"
1593
+ },
1594
+ "aiParseFileResolver": {
1595
+ "title": "AIParseFileResolver",
1596
+ "type": "object",
1597
+ "properties": {
1598
+ "if": {
1599
+ "type": "string"
1600
+ },
1601
+ "id": {
1602
+ "type": "string",
1603
+ "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
1604
+ },
1605
+ "name": {
1606
+ "title": "AI Resolver Name",
1607
+ "type": "string",
1608
+ "description": "Name of the resolver function.",
1609
+ "enum": ["ai:parseFile"]
1610
+ },
1611
+ "service": {
1612
+ "type": "string",
1613
+ "description": "Configuration for a service to use with this resolver."
1614
+ },
1615
+ "options": {
1616
+ "$ref": "#/definitions/aiEmbeddingResolverOptions"
1617
+ },
1618
+ "args": {
1619
+ "description": "Mapping and serialization configuration for prompt context.",
1620
+ "$ref": "#/definitions/parameterConfigForJson"
1621
+ },
1622
+ "results": {
1623
+ "description": "Mapping configuration for the results of this resolver step.",
1624
+ "$ref": "#/definitions/parameterConfigForJson"
1625
+ }
1626
+ },
1627
+ "required": ["name", "service"],
1628
+ "additionalProperties": false
1629
+ },
1630
+ "takeshapeResolver": {
1631
+ "title": "TakeshapeResolver",
1632
+ "type": "object",
1633
+ "properties": {
1634
+ "if": {
1635
+ "type": "string"
1636
+ },
1637
+ "id": {
1638
+ "type": "string",
1639
+ "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
1640
+ },
1641
+ "name": {
1642
+ "title": "TakeshapeResolverName",
1643
+ "type": "string",
1644
+ "description": "Name of the resolver function.",
1645
+ "enum": ["takeshape:getUser", "takeshape:search", "takeshape:vectorSearch", "takeshape:queryApiIndex"]
1646
+ },
1647
+ "service": {
1648
+ "type": "string",
1649
+ "description": "Internal service identifier.",
1650
+ "enum": ["takeshape"]
1651
+ },
1652
+ "options": {
1653
+ "title": "TakeshapeResolverOptions",
1654
+ "type": "object",
1655
+ "additionalProperties": true
1656
+ },
1657
+ "shapeName": {
1658
+ "description": "An optional Shape name for the resolver.",
1659
+ "type": "string",
1660
+ "minLength": 1
1661
+ },
1662
+ "args": {
1663
+ "description": "Mapping and serialization configuration for args.",
1664
+ "$ref": "#/definitions/parameterConfigForJson"
1665
+ },
1666
+ "results": {
1667
+ "description": "Mapping configuration for the results of this resolver step.",
1668
+ "$ref": "#/definitions/parameterConfigForJson"
1669
+ },
1670
+ "argsMapping": {
1671
+ "$ref": "#/definitions/argsMapping"
1672
+ },
1673
+ "resultsMapping": {
1674
+ "$ref": "#/definitions/resultsMapping"
1675
+ }
1676
+ },
1677
+ "required": ["name", "service"],
1678
+ "additionalProperties": false
1679
+ },
1680
+ "graphqlResolver": {
1681
+ "title": "GraphqlResolver",
1682
+ "type": "object",
1683
+ "properties": {
1684
+ "if": {
1685
+ "type": "string"
1686
+ },
1687
+ "id": {
1688
+ "type": "string",
1689
+ "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
1690
+ },
1691
+ "name": {
1692
+ "title": "GraphqlResolverName",
1693
+ "type": "string",
1694
+ "description": "Name of the resolver function.",
1695
+ "enum": ["graphql:query", "graphql:mutation", "shopify:bulkQuery"]
1696
+ },
1697
+ "service": {
1698
+ "type": "string",
1699
+ "description": "Configuration for a service to use with this resolver."
1700
+ },
1701
+ "argsMapping": {
1702
+ "$ref": "#/definitions/argsMapping"
1703
+ },
1704
+ "resultsMapping": {
1705
+ "$ref": "#/definitions/resultsMapping"
1706
+ },
1707
+ "options": {
1708
+ "title": "GraphqlResolverOptions",
1709
+ "type": "object",
1710
+ "properties": {
1711
+ "selectionSet": {
1712
+ "type": "string"
1713
+ },
1714
+ "unboxParentSelectionSet": {
1715
+ "type": "boolean"
1716
+ },
1717
+ "ignoreErrors": {
1718
+ "type": "boolean"
1719
+ },
1720
+ "skipWhenMissingArgs": {
1721
+ "type": "boolean"
1722
+ },
1723
+ "ttl": {
1724
+ "type": "number"
1725
+ },
1726
+ "timeout": {
1727
+ "type": "number"
1728
+ },
1729
+ "allowStream": {
1730
+ "type": "boolean"
1731
+ },
1732
+ "retry": {
1733
+ "oneOf": [
1734
+ {
1735
+ "type": "number"
1736
+ },
1737
+ {
1738
+ "type": "object"
1739
+ }
1740
+ ]
1741
+ }
1742
+ },
1743
+ "additionalProperties": true
1744
+ },
1745
+ "fieldName": {
1746
+ "description": "A fieldname to use in queries.",
1747
+ "type": "string"
1748
+ },
1749
+ "headers": {
1750
+ "description": "Mapping and serialization configuration for headers.",
1751
+ "$ref": "#/definitions/parameterConfigForHeaders"
1752
+ },
1753
+ "searchParams": {
1754
+ "description": "Mapping and serialization configuration for searchParams.",
1755
+ "$ref": "#/definitions/parameterConfigForSearchParams"
1756
+ },
1757
+ "args": {
1758
+ "description": "Mapping and serialization configuration for args.",
1759
+ "$ref": "#/definitions/parameterConfigForJson"
1760
+ },
1761
+ "results": {
1762
+ "description": "Mapping configuration for the results of this resolver step.",
1763
+ "$ref": "#/definitions/parameterConfigForJson"
1764
+ }
1765
+ },
1766
+ "required": ["name", "service", "fieldName"],
1767
+ "additionalProperties": false
1768
+ },
1769
+ "restResolver": {
1770
+ "title": "RestResolver",
1771
+ "type": "object",
1772
+ "properties": {
1773
+ "if": {
1774
+ "type": "string"
1775
+ },
1776
+ "id": {
1777
+ "type": "string",
1778
+ "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
1779
+ },
1780
+ "name": {
1781
+ "title": "RestResolverName",
1782
+ "type": "string",
1783
+ "description": "Name of the resolver function.",
1784
+ "enum": ["rest:get", "rest:head", "rest:post", "rest:put", "rest:patch", "rest:delete"]
1785
+ },
1786
+ "service": {
1787
+ "type": "string",
1788
+ "description": "Configuration for a service to use with this resolver."
1789
+ },
1790
+ "argsMapping": {
1791
+ "$ref": "#/definitions/argsMapping"
1792
+ },
1793
+ "searchParamsMapping": {
1794
+ "$ref": "#/definitions/searchParamsMapping"
1795
+ },
1796
+ "resultsMapping": {
1797
+ "$ref": "#/definitions/resultsMapping"
1798
+ },
1799
+ "options": {
1800
+ "title": "RestResolverOptions",
1801
+ "type": "object",
1802
+ "properties": {
1803
+ "trailingSlash": {
1804
+ "type": "boolean"
1805
+ },
1806
+ "allowStream": {
1807
+ "type": "boolean"
1808
+ },
1809
+ "ttl": {
1810
+ "type": "number"
1811
+ },
1812
+ "timeout": {
1813
+ "type": "number"
1814
+ },
1815
+ "retry": {
1816
+ "oneOf": [
1817
+ {
1818
+ "type": "number"
1819
+ },
1820
+ {
1821
+ "type": "object"
1822
+ }
1823
+ ]
1824
+ }
1825
+ },
1826
+ "additionalProperties": true
1827
+ },
1828
+ "body": {
1829
+ "description": "Mapping and serialization configuration for a request body.",
1830
+ "$ref": "#/definitions/parameterConfigForBody"
1831
+ },
1832
+ "form": {
1833
+ "description": "Mapping and serialization configuration for form data.",
1834
+ "$ref": "#/definitions/parameterConfigForSearchParams"
1835
+ },
1836
+ "headers": {
1837
+ "description": "Mapping and serialization configuration for headers.",
1838
+ "$ref": "#/definitions/parameterConfigForHeaders"
1839
+ },
1840
+ "json": {
1841
+ "description": "Mapping and serialization configuration for a json request body.",
1842
+ "$ref": "#/definitions/parameterConfigForJson"
1843
+ },
1844
+ "path": {
1845
+ "description": "Mapping and serialization configuration for the path, or a simple string.",
1846
+ "oneOf": [
1847
+ {
1848
+ "$ref": "#/definitions/parameterConfigForPathParams"
1849
+ },
1850
+ {
1851
+ "type": "string"
1852
+ }
1853
+ ]
1854
+ },
1855
+ "searchParams": {
1856
+ "description": "Mapping and serialization configuration for searchParams.",
1857
+ "$ref": "#/definitions/parameterConfigForSearchParams"
1858
+ },
1859
+ "args": {
1860
+ "description": "Mapping and serialization configuration for args.",
1861
+ "$ref": "#/definitions/parameterConfigForJson"
1862
+ },
1863
+ "results": {
1864
+ "description": "Mapping configuration for the results of this resolver step.",
1865
+ "$ref": "#/definitions/parameterConfigForJson"
1866
+ }
1867
+ },
1868
+ "required": ["name", "service", "path"],
1869
+ "additionalProperties": false
1870
+ },
1871
+ "awsLambdaResolver": {
1872
+ "title": "AwsLambdaResolver",
1873
+ "type": "object",
1874
+ "properties": {
1875
+ "if": {
1876
+ "type": "string"
1877
+ },
1878
+ "id": {
1879
+ "type": "string",
1880
+ "pattern": "^(?=[a-zA-Z])[-_a-zA-Z0-9]+$"
1881
+ },
1882
+ "name": {
1883
+ "title": "AwsLambdaResolverName",
1884
+ "type": "string",
1885
+ "description": "Name of the resolver function.",
1886
+ "enum": ["awsLambda:invoke"]
1887
+ },
1888
+ "service": {
1889
+ "type": "string",
1890
+ "description": "Configuration for a service to use with this resolver."
1891
+ },
1892
+ "options": {
1893
+ "title": "AwsLambdaResolverOptions",
1894
+ "type": "object",
1895
+ "additionalProperties": true
1896
+ },
1897
+ "payload": {
1898
+ "description": "Mapping configuration the Payload.",
1899
+ "$ref": "#/definitions/parameterConfigForJson"
1900
+ },
1901
+ "functionName": {
1902
+ "description": "Mapping configuration for the FunctionName.",
1903
+ "oneOf": [
1904
+ {
1905
+ "type": "string"
1906
+ },
1907
+ {
1908
+ "$ref": "#/definitions/parameterConfigForAwsLambda"
1909
+ }
1910
+ ]
1911
+ },
1912
+ "clientContext": {
1913
+ "description": "Mapping configuration for the ClientContext.",
1914
+ "$ref": "#/definitions/parameterConfigForJson"
1915
+ },
1916
+ "args": {
1917
+ "description": "Mapping and serialization configuration for args.",
1918
+ "$ref": "#/definitions/parameterConfigForJson"
1919
+ },
1920
+ "results": {
1921
+ "description": "Mapping configuration for the results of this resolver step.",
1922
+ "$ref": "#/definitions/parameterConfigForJson"
1923
+ },
1924
+ "argsMapping": {
1925
+ "$ref": "#/definitions/argsMapping"
1926
+ },
1927
+ "searchParamsMapping": {
1928
+ "description": "Set or evaluate directives to generate searchParams for the service endpoint.",
1929
+ "$ref": "#/definitions/searchParamsMapping"
1930
+ },
1931
+ "resultsMapping": {
1932
+ "$ref": "#/definitions/resultsMapping"
1933
+ }
1934
+ },
1935
+ "required": ["name", "service", "functionName"],
1936
+ "additionalProperties": false
1937
+ },
1938
+ "composeResolver": {
1939
+ "title": "ComposeResolver",
1940
+ "type": "object",
1941
+ "properties": {
1942
+ "compose": {
1943
+ "type": "array",
1944
+ "items": {
1945
+ "$ref": "#/definitions/basicResolver"
1946
+ }
1947
+ },
1948
+ "resultsMapping": {
1949
+ "oneOf": [
1950
+ {
1951
+ "$ref": "#/definitions/directiveMappingMap"
1952
+ },
1953
+ {
1954
+ "$ref": "#/definitions/directiveConfig"
1955
+ }
1956
+ ]
1957
+ },
1958
+ "results": {
1959
+ "description": "Mapping configuration for final query results.",
1960
+ "$ref": "#/definitions/parameterConfigForJson"
1961
+ }
1962
+ },
1963
+ "required": ["compose"],
1964
+ "additionalProperties": false
1965
+ },
1966
+ "resolver": {
1967
+ "title": "Resolver",
1968
+ "oneOf": [
1969
+ {
1970
+ "$ref": "#/definitions/basicResolver"
1971
+ },
1972
+ {
1973
+ "$ref": "#/definitions/composeResolver"
1974
+ }
1975
+ ]
1976
+ },
1977
+ "dependencies": {
1978
+ "title": "Dependencies",
1979
+ "type": "string"
1980
+ },
1981
+ "ref": {
1982
+ "title": "Ref",
1983
+ "type": "string"
1984
+ },
1985
+ "indexed": {
1986
+ "title": "Indexed",
1987
+ "type": "object",
1988
+ "properties": {
1989
+ "nested": {
1990
+ "type": "boolean"
1991
+ }
1992
+ },
1993
+ "additionalProperties": false
1994
+ },
1995
+ "graphql": {
1996
+ "title": "GraphQLConfig",
1997
+ "type": "object",
1998
+ "properties": {
1999
+ "json": {
2000
+ "type": "boolean"
2001
+ }
2002
+ },
2003
+ "additionalProperties": false
2004
+ },
2005
+ "query": {
2006
+ "title": "Query JSON",
2007
+ "type": "object",
2008
+ "properties": {
2009
+ "args": {
2010
+ "description": "The args field specifies the name of a Shape for the input arguments required by your resolver.",
2011
+ "$ref": "#/definitions/args"
2012
+ },
2013
+ "resolver": {
2014
+ "description": "Configures the resolver for your query or mutation.",
2015
+ "$ref": "#/definitions/resolver"
2016
+ },
2017
+ "shape": {
2018
+ "$ref": "#/definitions/returnShape",
2019
+ "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."
2020
+ },
2021
+ "description": {
2022
+ "type": "string",
2023
+ "description": "Provides more detail about what the query or mutation is for. This will be displayed in the automatically-generated GraphQL API docs."
2024
+ }
2025
+ },
2026
+ "required": ["resolver", "shape"],
2027
+ "additionalProperties": false
2028
+ },
2029
+ "propertySchema": {
2030
+ "title": "PropertySchema",
2031
+ "type": "object",
2032
+ "properties": {
2033
+ "$ref": {
2034
+ "type": "string",
2035
+ "format": "uri-reference"
2036
+ },
2037
+ "title": {
2038
+ "type": "string"
2039
+ },
2040
+ "description": {
2041
+ "type": "string"
2042
+ },
2043
+ "default": {},
2044
+ "readOnly": {
2045
+ "type": "boolean",
2046
+ "default": false
2047
+ },
2048
+ "multipleOf": {
2049
+ "type": "number",
2050
+ "exclusiveMinimum": 0
2051
+ },
2052
+ "maximum": {
2053
+ "type": "number"
2054
+ },
2055
+ "exclusiveMaximum": {
2056
+ "type": "number"
2057
+ },
2058
+ "minimum": {
2059
+ "type": "number"
2060
+ },
2061
+ "exclusiveMinimum": {
2062
+ "type": "number"
2063
+ },
2064
+ "maxLength": {
2065
+ "$ref": "#/definitions/nonNegativeInteger"
2066
+ },
2067
+ "minLength": {
2068
+ "$ref": "#/definitions/nonNegativeIntegerDefault0"
2069
+ },
2070
+ "pattern": {
2071
+ "type": "string",
2072
+ "format": "regex"
2073
+ },
2074
+ "additionalItems": {
2075
+ "$ref": "#/definitions/propertySchema"
2076
+ },
2077
+ "items": {
2078
+ "$ref": "#/definitions/propertySchema"
2079
+ },
2080
+ "maxItems": {
2081
+ "$ref": "#/definitions/nonNegativeInteger"
2082
+ },
2083
+ "minItems": {
2084
+ "$ref": "#/definitions/nonNegativeIntegerDefault0"
2085
+ },
2086
+ "uniqueItems": {
2087
+ "type": "boolean",
2088
+ "default": false
2089
+ },
2090
+ "contains": {
2091
+ "$ref": "#/definitions/propertySchema"
2092
+ },
2093
+ "maxProperties": {
2094
+ "$ref": "#/definitions/nonNegativeInteger"
2095
+ },
2096
+ "minProperties": {
2097
+ "$ref": "#/definitions/nonNegativeIntegerDefault0"
2098
+ },
2099
+ "required": {
2100
+ "$ref": "#/definitions/stringArray"
2101
+ },
2102
+ "additionalProperties": {
2103
+ "oneOf": [
2104
+ {
2105
+ "$ref": "#/definitions/propertySchema"
2106
+ },
2107
+ {
2108
+ "enum": [false]
2109
+ }
2110
+ ]
2111
+ },
2112
+ "definitions": {
2113
+ "type": "object",
2114
+ "additionalProperties": {
2115
+ "$ref": "#/definitions/propertySchema"
2116
+ },
2117
+ "default": {}
2118
+ },
2119
+ "properties": {
2120
+ "type": "object",
2121
+ "additionalProperties": {
2122
+ "$ref": "#/definitions/propertySchema"
2123
+ },
2124
+ "default": {}
2125
+ },
2126
+ "const": {},
2127
+ "enum": {
2128
+ "type": "array",
2129
+ "minItems": 1,
2130
+ "uniqueItems": true
2131
+ },
2132
+ "type": {
2133
+ "anyOf": [
2134
+ {
2135
+ "$ref": "#/definitions/simpleTypes"
2136
+ },
2137
+ {
2138
+ "type": "array",
2139
+ "items": {
2140
+ "$ref": "#/definitions/simpleTypes"
2141
+ },
2142
+ "minItems": 1,
2143
+ "uniqueItems": true
2144
+ }
2145
+ ]
2146
+ },
2147
+ "format": {
2148
+ "type": "string"
2149
+ },
2150
+ "contentMediaType": {
2151
+ "type": "string"
2152
+ },
2153
+ "contentEncoding": {
2154
+ "type": "string"
2155
+ },
2156
+ "allOf": {
2157
+ "$ref": "#/definitions/schemaArray"
2158
+ },
2159
+ "discriminator": {
2160
+ "type": "object",
2161
+ "properties": {
2162
+ "propertyName": {
2163
+ "type": "string"
2164
+ }
2165
+ }
2166
+ },
2167
+ "oneOf": {
2168
+ "$ref": "#/definitions/schemaArray"
2169
+ },
2170
+ "extends": {
2171
+ "$ref": "#/definitions/objectOrRefArray"
2172
+ },
2173
+ "@backreference": {
2174
+ "$ref": "#/definitions/backreference"
2175
+ },
2176
+ "@input": {
2177
+ "description": "A PropertySchema providing an alternative shape for a GraphQL input type.",
2178
+ "$ref": "#/definitions/propertySchema"
2179
+ },
2180
+ "@output": {
2181
+ "description": "A PropertySchema which is original output.",
2182
+ "$ref": "#/definitions/propertySchema"
2183
+ },
2184
+ "@syncLocaleStructure": {
2185
+ "type": "boolean"
2186
+ },
2187
+ "@sensitive": {
2188
+ "type": "boolean"
2189
+ },
2190
+ "@draftjs": {
2191
+ "type": "boolean"
2192
+ },
2193
+ "@l10n": {
2194
+ "type": "boolean"
2195
+ },
2196
+ "@key": {
2197
+ "type": "string",
2198
+ "pattern": "^[-_a-zA-Z0-9]+$"
2199
+ },
2200
+ "@workflow": {
2201
+ "type": "string"
2202
+ },
2203
+ "@mapping": {
2204
+ "$ref": "#/definitions/fieldMapping"
2205
+ },
2206
+ "@tag": {
2207
+ "type": "string"
2208
+ },
2209
+ "@tags": {
2210
+ "type": "array",
2211
+ "items": {
2212
+ "type": "string"
2213
+ }
2214
+ },
2215
+ "@deprecationReason": {
2216
+ "type": "string"
2217
+ },
2218
+ "@args": {
2219
+ "$ref": "#/definitions/args"
2220
+ },
2221
+ "@resolver": {
2222
+ "$ref": "#/definitions/resolver"
2223
+ },
2224
+ "@dependencies": {
2225
+ "$ref": "#/definitions/dependencies"
2226
+ },
2227
+ "@ref": {
2228
+ "$ref": "#/definitions/ref"
2229
+ },
2230
+ "@derivedFrom": {
2231
+ "type": "string"
2232
+ },
2233
+ "@indexed": {
2234
+ "$ref": "#/definitions/indexed"
2235
+ },
2236
+ "@graphql": {
2237
+ "$ref": "#/definitions/graphql"
2238
+ }
2239
+ },
2240
+ "additionalProperties": false
2241
+ },
2242
+ "shape": {
2243
+ "title": "Shape JSON",
2244
+ "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",
2245
+ "type": "object",
2246
+ "properties": {
2247
+ "name": {
2248
+ "type": "string",
2249
+ "pattern": "^[_a-zA-Z][_a-zA-Z0-9]*$",
2250
+ "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"
2251
+ },
2252
+ "id": {
2253
+ "type": "string",
2254
+ "pattern": "[0-9A-Za-z_-]+",
2255
+ "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."
2256
+ },
2257
+ "title": {
2258
+ "type": "string",
2259
+ "description": "The human-readable name for a Shape for use in a UI."
2260
+ },
2261
+ "description": {
2262
+ "type": "string"
2263
+ },
2264
+ "type": {
2265
+ "enum": ["interface", "input", "output"]
2266
+ },
2267
+ "interfaces": {
2268
+ "type": "array",
2269
+ "items": {
2270
+ "type": "string"
2271
+ }
2272
+ },
2273
+ "model": {
2274
+ "description": "Specifying a model type allows Shape data to be stored in TakeShape's built-in database",
2275
+ "type": "object",
2276
+ "properties": {
2277
+ "type": {
2278
+ "title": "Model Type",
2279
+ "type": "string",
2280
+ "enum": ["single", "multiple", "taxonomy"]
2281
+ }
2282
+ },
2283
+ "required": ["type"],
2284
+ "additionalProperties": false
2285
+ },
2286
+ "workflow": {
2287
+ "type": "string"
2288
+ },
2289
+ "loaders": {
2290
+ "$ref": "#/definitions/shapeLoaders"
2291
+ },
2292
+ "joins": {
2293
+ "$ref": "#/definitions/shapeJoins"
2294
+ },
2295
+ "cache": {
2296
+ "$ref": "#/definitions/shapeCacheConfig"
2297
+ },
2298
+ "schema": {
2299
+ "$ref": "#/definitions/shapeSchema"
2300
+ }
2301
+ },
2302
+ "required": ["name", "title", "id", "schema"],
2303
+ "additionalProperties": false
2304
+ },
2305
+ "shapeWithObjectSchema": {
2306
+ "title": "Shape With Object Schema",
2307
+ "type": "object",
2308
+ "allOf": [
2309
+ {
2310
+ "$ref": "#/definitions/shape"
2311
+ },
2312
+ {
2313
+ "type": "object",
2314
+ "properties": {
2315
+ "schema": {
2316
+ "$ref": "#/definitions/objectSchema"
2317
+ }
2318
+ },
2319
+ "required": ["schema"],
2320
+ "additionalProperties": false
2321
+ }
2322
+ ]
2323
+ },
2324
+ "shapeMap": {
2325
+ "title": "Shape Map",
2326
+ "type": "object",
2327
+ "patternProperties": {
2328
+ "^[0-9A-Za-z_]+$": {
2329
+ "$ref": "#/definitions/shape"
2330
+ }
2331
+ },
2332
+ "additionalProperties": false
2333
+ },
2334
+ "formMap": {
2335
+ "title": "Form Map",
2336
+ "type": "object",
2337
+ "patternProperties": {
2338
+ "[0-9A-Za-z_-]+": {
2339
+ "$ref": "#/definitions/formsConfig"
2340
+ }
2341
+ }
2342
+ },
2343
+ "shapeCacheConfig": {
2344
+ "title": "ShapeCacheConfig",
2345
+ "type": "object",
2346
+ "properties": {
2347
+ "enabled": {
2348
+ "type": "boolean"
2349
+ },
2350
+ "idField": {
2351
+ "type": "string"
2352
+ },
2353
+ "searchSummaryField": {
2354
+ "type": "string"
2355
+ },
2356
+ "fragment": {
2357
+ "$ref": "#/definitions/cachedFragmentConfig"
2358
+ },
2359
+ "triggers": {
2360
+ "type": "array",
2361
+ "items": {
2362
+ "$ref": "#/definitions/cacheTriggerConfig"
2363
+ }
2364
+ },
2365
+ "maxAge": {
2366
+ "description": "Number of seconds this Shape should be cached. Default 0.",
2367
+ "type": "number",
2368
+ "minimum": 0
2369
+ }
2370
+ },
2371
+ "additionalProperties": false,
2372
+ "required": ["enabled"]
2373
+ },
2374
+ "shapeJoin": {
2375
+ "title": "ShapeJoin",
2376
+ "type": "object",
2377
+ "properties": {
2378
+ "resolver": {
2379
+ "oneOf": [
2380
+ {
2381
+ "$ref": "#/definitions/delegateResolver"
2382
+ },
2383
+ {
2384
+ "$ref": "#/definitions/shapedbResolver"
2385
+ }
2386
+ ]
2387
+ },
2388
+ "dependencies": {
2389
+ "type": "string"
2390
+ }
2391
+ },
2392
+ "required": ["resolver"],
2393
+ "additionalProperties": false
2394
+ },
2395
+ "shapeJoins": {
2396
+ "title": "ShapeJoins",
2397
+ "type": "object",
2398
+ "patternProperties": {
2399
+ "[:0-9A-Za-z_-]+": {
2400
+ "$ref": "#/definitions/shapeJoin"
2401
+ }
2402
+ }
2403
+ },
2404
+ "shapeLoaders": {
2405
+ "title": "ShapeLoaders",
2406
+ "type": "object",
2407
+ "properties": {
2408
+ "list": {
2409
+ "oneOf": [
2410
+ {
2411
+ "$ref": "#/definitions/storedListQueryLoaderConfig"
2412
+ },
2413
+ {
2414
+ "type": "array",
2415
+ "items": {
2416
+ "$ref": "#/definitions/storedListQueryLoaderConfig"
2417
+ }
2418
+ }
2419
+ ]
2420
+ },
2421
+ "get": {
2422
+ "$ref": "#/definitions/getQueryLoaderConfig"
2423
+ }
2424
+ },
2425
+ "additionalProperties": false,
2426
+ "required": ["list"]
2427
+ },
2428
+ "cachedFragmentConfig": {
2429
+ "title": "Cached Fragment Config",
2430
+ "type": "object",
2431
+ "properties": {
2432
+ "ignoreFields": {
2433
+ "type": "array",
2434
+ "items": {
2435
+ "type": "string"
2436
+ }
2437
+ },
2438
+ "maxDepth": {
2439
+ "type": "number"
2440
+ },
2441
+ "selectionSet": {
2442
+ "type": "string"
2443
+ },
2444
+ "includeDeprecated": {
2445
+ "type": "boolean"
2446
+ }
2447
+ },
2448
+ "additionalProperties": false
2449
+ },
2450
+ "listQueryLoaderConfig": {
2451
+ "title": "ListQueryLoaderConfig",
2452
+ "type": "object",
2453
+ "properties": {
2454
+ "query": {
2455
+ "type": "string"
2456
+ },
2457
+ "args": {
2458
+ "type": "object",
2459
+ "additionalProperties": true
2460
+ },
2461
+ "pagination": {
2462
+ "$ref": "#/definitions/paginationConfig"
2463
+ }
2464
+ },
2465
+ "additionalProperties": false,
2466
+ "required": ["query"]
2467
+ },
2468
+ "storedListQueryLoaderConfig": {
2469
+ "title": "StoredListQueryLoaderConfig",
2470
+ "type": "object",
2471
+ "properties": {
2472
+ "query": {
2473
+ "type": "string"
2474
+ },
2475
+ "args": {
2476
+ "oneOf": [
2477
+ {
2478
+ "type": "object",
2479
+ "additionalProperties": true
2480
+ },
2481
+ {
2482
+ "type": "array",
2483
+ "items": {
2484
+ "type": "object",
2485
+ "additionalProperties": true
2486
+ }
2487
+ }
2488
+ ]
2489
+ },
2490
+ "pagination": {
2491
+ "$ref": "#/definitions/paginationConfig"
2492
+ }
2493
+ },
2494
+ "additionalProperties": false,
2495
+ "required": ["query"]
2496
+ },
2497
+ "getQueryLoaderConfig": {
2498
+ "title": "GetQueryLoaderConfig",
2499
+ "type": "object",
2500
+ "properties": {
2501
+ "query": {
2502
+ "type": "string"
2503
+ },
2504
+ "args": {
2505
+ "type": "object",
2506
+ "additionalProperties": true
2507
+ },
2508
+ "idArg": {
2509
+ "type": "string"
2510
+ }
2511
+ },
2512
+ "additionalProperties": false,
2513
+ "required": ["query"]
2514
+ },
2515
+ "paginationConfig": {
2516
+ "title": "Pagination Config",
2517
+ "oneOf": [
2518
+ {
2519
+ "$ref": "#/definitions/paginationCursorConfig"
2520
+ },
2521
+ {
2522
+ "$ref": "#/definitions/paginationPageConfig"
2523
+ },
2524
+ {
2525
+ "$ref": "#/definitions/paginationOffsetConfig"
2526
+ }
2527
+ ]
2528
+ },
2529
+ "paginationCursorConfig": {
2530
+ "title": "Pagination Cursor Config",
2531
+ "type": "object",
2532
+ "properties": {
2533
+ "type": {
2534
+ "type": "string",
2535
+ "enum": ["cursor"]
2536
+ },
2537
+ "cursorArg": {
2538
+ "type": "string"
2539
+ },
2540
+ "cursorPath": {
2541
+ "type": "string"
2542
+ },
2543
+ "pageSize": {
2544
+ "type": "number"
2545
+ },
2546
+ "pageSizeArg": {
2547
+ "type": "string"
2548
+ },
2549
+ "hasMorePath": {
2550
+ "type": "string"
2551
+ },
2552
+ "itemsPath": {
2553
+ "type": "string"
2554
+ }
2555
+ },
2556
+ "additionalProperties": false,
2557
+ "required": ["type", "cursorArg", "cursorPath", "pageSizeArg", "hasMorePath", "itemsPath"]
2558
+ },
2559
+ "paginationPageConfig": {
2560
+ "title": "Pagination Page Config",
2561
+ "type": "object",
2562
+ "properties": {
2563
+ "type": {
2564
+ "type": "string",
2565
+ "enum": ["page"]
2566
+ },
2567
+ "pageArg": {
2568
+ "type": "string"
2569
+ },
2570
+ "pageSize": {
2571
+ "type": "number"
2572
+ },
2573
+ "pageSizeArg": {
2574
+ "type": "string"
2575
+ },
2576
+ "itemsPath": {
2577
+ "type": "string"
2578
+ },
2579
+ "pageTotalPath": {
2580
+ "type": "string"
2581
+ }
2582
+ },
2583
+ "additionalProperties": false,
2584
+ "required": ["type", "pageArg", "itemsPath", "pageTotalPath"]
2585
+ },
2586
+ "paginationOffsetConfig": {
2587
+ "title": "Pagination Offset Config",
2588
+ "type": "object",
2589
+ "properties": {
2590
+ "type": {
2591
+ "type": "string",
2592
+ "enum": ["offset"]
2593
+ },
2594
+ "offsetArg": {
2595
+ "type": "string"
2596
+ },
2597
+ "pageSize": {
2598
+ "type": "number"
2599
+ },
2600
+ "pageSizeArg": {
2601
+ "type": "string"
2602
+ },
2603
+ "itemsPath": {
2604
+ "type": "string"
2605
+ },
2606
+ "itemTotalPath": {
2607
+ "type": "string"
2608
+ }
2609
+ },
2610
+ "additionalProperties": false,
2611
+ "required": ["type", "offsetArg", "itemsPath", "itemTotalPath"]
2612
+ },
2613
+ "cacheTriggerConfig": {
2614
+ "title": "CacheTriggerConfig",
2615
+ "oneOf": [
2616
+ {
2617
+ "$ref": "#/definitions/cacheScheduleTriggerConfig"
2618
+ },
2619
+ {
2620
+ "$ref": "#/definitions/cacheWebhookTriggerConfig"
2621
+ }
2622
+ ]
2623
+ },
2624
+ "cacheScheduleTriggerConfig": {
2625
+ "title": "CacheScheduleTriggerConfig",
2626
+ "type": "object",
2627
+ "properties": {
2628
+ "type": {
2629
+ "type": "string",
2630
+ "enum": ["schedule"]
2631
+ },
2632
+ "loader": {
2633
+ "enum": ["get", "list"]
2634
+ },
2635
+ "interval": {
2636
+ "type": "number"
2637
+ }
2638
+ },
2639
+ "additionalProperties": false,
2640
+ "required": ["type", "loader", "interval"]
2641
+ },
2642
+ "cacheWebhookTriggerConfig": {
2643
+ "title": "CacheWebhookTriggerConfig",
2644
+ "type": "object",
2645
+ "properties": {
2646
+ "type": {
2647
+ "type": "string",
2648
+ "enum": ["webhook"]
2649
+ },
2650
+ "loader": {
2651
+ "enum": ["get", "list"]
2652
+ },
2653
+ "service": {
2654
+ "type": "string"
2655
+ },
2656
+ "events": {
2657
+ "type": "array",
2658
+ "items": {
2659
+ "type": "string"
2660
+ }
2661
+ }
2662
+ },
2663
+ "additionalProperties": false,
2664
+ "required": ["type", "loader", "service", "events"]
2665
+ },
2666
+ "formScalarConfig": {
2667
+ "title": "Form Scalar Config",
2668
+ "type": "object",
2669
+ "properties": {
2670
+ "widget": {
2671
+ "type": "string"
2672
+ }
2673
+ },
2674
+ "additionalProperties": false,
2675
+ "required": ["widget"]
2676
+ },
2677
+ "formObjectConfig": {
2678
+ "title": "Form Object Config",
2679
+ "type": "object",
2680
+ "properties": {
2681
+ "widget": {
2682
+ "type": "string"
2683
+ },
2684
+ "order": {
2685
+ "type": "array",
2686
+ "items": {
2687
+ "type": "string"
2688
+ }
2689
+ },
2690
+ "properties": {
2691
+ "patternProperties": {
2692
+ "[0-9A-Za-z_-]+": {
2693
+ "$ref": "#/definitions/formConfig"
2694
+ }
2695
+ }
2696
+ }
2697
+ },
2698
+ "additionalProperties": false
2699
+ },
2700
+ "formArrayConfig": {
2701
+ "title": "Form Array Config",
2702
+ "type": "object",
2703
+ "properties": {
2704
+ "widget": {
2705
+ "type": "string"
2706
+ },
2707
+ "items": {
2708
+ "$ref": "#/definitions/formConfig"
2709
+ }
2710
+ },
2711
+ "additionalProperties": false,
2712
+ "required": ["widget", "items"]
2713
+ },
2714
+ "customAuthentication": {
2715
+ "title": "Custom Authentication",
2716
+ "description": "For use with a custom auth handler on a service provider.",
2717
+ "type": "object",
2718
+ "properties": {
2719
+ "type": {
2720
+ "type": "string",
2721
+ "enum": ["custom"]
2722
+ }
2723
+ },
2724
+ "additionalProperties": true,
2725
+ "required": ["type"]
2726
+ },
2727
+ "searchParamsAuthentication": {
2728
+ "title": "Search Params Authentication",
2729
+ "type": "object",
2730
+ "properties": {
2731
+ "type": {
2732
+ "type": "string",
2733
+ "enum": ["searchParams"]
2734
+ },
2735
+ "params": {
2736
+ "type": "array",
2737
+ "items": {
2738
+ "properties": {
2739
+ "name": {
2740
+ "type": "string"
2741
+ },
2742
+ "value": {
2743
+ "type": "string"
2744
+ }
2745
+ },
2746
+ "required": ["name", "value"],
2747
+ "additionalProperties": false
2748
+ }
2749
+ }
2750
+ },
2751
+ "additionalProperties": false,
2752
+ "required": ["type", "params"]
2753
+ },
2754
+ "bearerAuthentication": {
2755
+ "title": "Bearer Authentication",
2756
+ "type": "object",
2757
+ "properties": {
2758
+ "type": {
2759
+ "type": "string",
2760
+ "enum": ["bearer"]
2761
+ },
2762
+ "token": {
2763
+ "type": "string"
2764
+ },
2765
+ "prefix": {
2766
+ "type": "string"
2767
+ },
2768
+ "header": {
2769
+ "type": "string"
2770
+ }
2771
+ },
2772
+ "additionalProperties": false,
2773
+ "required": ["type", "token"]
2774
+ },
2775
+ "oauth2BearerAuthentication": {
2776
+ "title": "OAuth 2 Bearer Authentication",
2777
+ "type": "object",
2778
+ "properties": {
2779
+ "type": {
2780
+ "type": "string",
2781
+ "enum": ["oauth2Bearer"]
2782
+ },
2783
+ "token": {
2784
+ "type": "string"
2785
+ },
2786
+ "prefix": {
2787
+ "type": "string"
2788
+ },
2789
+ "header": {
2790
+ "type": "string"
2791
+ },
2792
+ "scope": {
2793
+ "type": "string"
2794
+ },
2795
+ "expiresAt": {
2796
+ "type": "string"
2797
+ }
2798
+ },
2799
+ "additionalProperties": false,
2800
+ "required": ["type", "token"]
2801
+ },
2802
+ "basicAuthentication": {
2803
+ "title": "Basic Authentication",
2804
+ "type": "object",
2805
+ "properties": {
2806
+ "type": {
2807
+ "type": "string",
2808
+ "enum": ["basic"]
2809
+ },
2810
+ "username": {
2811
+ "type": "string"
2812
+ },
2813
+ "password": {
2814
+ "type": "string"
2815
+ },
2816
+ "useIso8859": {
2817
+ "type": "boolean"
2818
+ }
2819
+ },
2820
+ "additionalProperties": false,
2821
+ "required": ["type", "username", "password"]
2822
+ },
2823
+ "oauth2Authentication": {
2824
+ "title": "OAuth 2 Authentication",
2825
+ "type": "object",
2826
+ "properties": {
2827
+ "type": {
2828
+ "type": "string",
2829
+ "enum": ["oauth2"]
2830
+ },
2831
+ "grantType": {
2832
+ "type": "string",
2833
+ "enum": ["authorizationCode", "clientCredentials"]
2834
+ },
2835
+ "authorizationUrl": {
2836
+ "type": "string"
2837
+ },
2838
+ "accessTokenUrl": {
2839
+ "type": "string"
2840
+ },
2841
+ "clientId": {
2842
+ "type": "string"
2843
+ },
2844
+ "clientSecret": {
2845
+ "type": "string"
2846
+ },
2847
+ "scope": {
2848
+ "type": "string"
2849
+ },
2850
+ "usePkce": {
2851
+ "type": "boolean"
2852
+ },
2853
+ "redirectUrl": {
2854
+ "type": "string"
2855
+ },
2856
+ "headerPrefix": {
2857
+ "type": "string"
2858
+ },
2859
+ "audience": {
2860
+ "type": "string"
2861
+ },
2862
+ "resource": {
2863
+ "type": "string"
2864
+ }
2865
+ },
2866
+ "additionalProperties": false,
2867
+ "required": ["type", "grantType", "clientId"]
2868
+ },
2869
+ "awsAuthentication": {
2870
+ "title": "AWS Authentication",
2871
+ "type": "object",
2872
+ "properties": {
2873
+ "type": {
2874
+ "type": "string",
2875
+ "enum": ["aws"]
2876
+ },
2877
+ "awsAccessKeyId": {
2878
+ "type": "string"
2879
+ },
2880
+ "awsSecretAccessKey": {
2881
+ "type": "string"
2882
+ }
2883
+ },
2884
+ "additionalProperties": false,
2885
+ "required": ["type", "awsAccessKeyId", "awsSecretAccessKey"]
2886
+ },
2887
+ "googleAuthentication": {
2888
+ "title": "Google Authentication",
2889
+ "type": "object",
2890
+ "properties": {
2891
+ "type": {
2892
+ "type": "string",
2893
+ "enum": ["google"]
2894
+ },
2895
+ "clientEmail": {
2896
+ "type": "string"
2897
+ },
2898
+ "privateKey": {
2899
+ "type": "string"
2900
+ }
2901
+ },
2902
+ "additionalProperties": false,
2903
+ "required": ["type", "clientEmail", "privateKey"]
2904
+ },
2905
+ "serviceAuthentication": {
2906
+ "title": "Service Authentication",
2907
+ "oneOf": [
2908
+ {
2909
+ "$ref": "#/definitions/oauth2Authentication"
2910
+ },
2911
+ {
2912
+ "$ref": "#/definitions/oauth2BearerAuthentication"
2913
+ },
2914
+ {
2915
+ "$ref": "#/definitions/bearerAuthentication"
2916
+ },
2917
+ {
2918
+ "$ref": "#/definitions/basicAuthentication"
2919
+ },
2920
+ {
2921
+ "$ref": "#/definitions/searchParamsAuthentication"
2922
+ },
2923
+ {
2924
+ "$ref": "#/definitions/awsAuthentication"
2925
+ },
2926
+ {
2927
+ "$ref": "#/definitions/googleAuthentication"
2928
+ },
2929
+ {
2930
+ "$ref": "#/definitions/customAuthentication"
2931
+ }
2932
+ ]
2933
+ },
2934
+ "serviceHealthCheckTrigger": {
2935
+ "title": "Service Health Check Trigger",
2936
+ "enum": ["manual", "schedule"]
2937
+ },
2938
+ "serviceHealthCheck": {
2939
+ "title": "Service Health Check",
2940
+ "description": "Configuration for ping health checks.",
2941
+ "type": "object",
2942
+ "properties": {
2943
+ "checkName": {
2944
+ "title": "Check Name",
2945
+ "description": "The name of a health check to run",
2946
+ "type": "string",
2947
+ "enum": ["graphqlIntrospection", "ping", "none"]
2948
+ },
2949
+ "endpoint": {
2950
+ "title": "Endpoint",
2951
+ "description": "The endpoint to use when checking the service health.",
2952
+ "type": "string"
2953
+ },
2954
+ "requestMethod": {
2955
+ "title": "Request Method",
2956
+ "description": "A custom method to use for the health check request.",
2957
+ "type": "string",
2958
+ "enum": ["GET", "POST", "PUT", "PATCH", "DELETE"]
2959
+ },
2960
+ "requestHeaders": {
2961
+ "title": "Request Headers",
2962
+ "description": "Any custom headers to set with the health check request.",
2963
+ "type": "object",
2964
+ "propertyNames": {
2965
+ "pattern": "[0-9A-Za-z_-]+"
2966
+ }
2967
+ },
2968
+ "requestSearchParams": {
2969
+ "title": "Request Search Params",
2970
+ "description": "Any custom search params to set with the health check request.",
2971
+ "type": "object",
2972
+ "propertyNames": {
2973
+ "pattern": "[0-9A-Za-z_-]+"
2974
+ }
2975
+ },
2976
+ "requestBody": {
2977
+ "title": "Request Body",
2978
+ "description": "A custom body to send along with the ping request.",
2979
+ "type": "string"
2980
+ },
2981
+ "requestBodyFormat": {
2982
+ "title": "Request Body Format",
2983
+ "description": "A custom body to send along with the ping request.",
2984
+ "type": "string",
2985
+ "enum": ["string", "form", "json", "form-data"]
2986
+ },
2987
+ "requestTimeout": {
2988
+ "title": "Request Timeout",
2989
+ "description": "The amount of time to wait when receiving a response from the health check, in seconds.",
2990
+ "type": "number",
2991
+ "minimum": 2,
2992
+ "maximum": 60
2993
+ },
2994
+ "healthyResponseStatusCode": {
2995
+ "title": "Healthy Response Status Code",
2996
+ "description": "The response status code that qualifies as healthy.",
2997
+ "type": "number",
2998
+ "minimum": 200,
2999
+ "maximum": 399
3000
+ },
3001
+ "triggers": {
3002
+ "type": "array",
3003
+ "items": {
3004
+ "$ref": "#/definitions/serviceHealthCheckTrigger"
3005
+ }
3006
+ }
3007
+ },
3008
+ "required": ["checkName"],
3009
+ "additionalProperties": false
3010
+ },
3011
+ "serviceType": {
3012
+ "title": "Service Type",
3013
+ "description": "The general type of this service, specifying how and where it will be utilized.",
3014
+ "type": "string",
3015
+ "enum": ["deployment", "authentication", "takeshape", "rest", "graphql", "openapi", "aws", "unknown"]
3016
+ },
3017
+ "serviceConfig": {
3018
+ "title": "Service Config",
3019
+ "type": "object",
3020
+ "properties": {
3021
+ "id": {
3022
+ "type": "string",
3023
+ "description": "Machine-readable identifier, should typically be the same as the property name on the services object."
3024
+ },
3025
+ "title": {
3026
+ "type": "string",
3027
+ "description": "Human-readable name for this service."
3028
+ },
3029
+ "provider": {
3030
+ "description": "The service provider id.",
3031
+ "type": "string"
3032
+ },
3033
+ "namespace": {
3034
+ "type": "string",
3035
+ "description": "A namespace to use for the imported types tied to this service."
3036
+ },
3037
+ "serviceType": {
3038
+ "$ref": "#/definitions/serviceType"
3039
+ },
3040
+ "authenticationType": {
3041
+ "type": "string",
3042
+ "enum": [
3043
+ "oauth2",
3044
+ "basic",
3045
+ "bearer",
3046
+ "searchParams",
3047
+ "oauth2Bearer",
3048
+ "custom",
3049
+ "aws",
3050
+ "google",
3051
+ "none",
3052
+ "unknown"
3053
+ ]
3054
+ },
3055
+ "authentication": {
3056
+ "$ref": "#/definitions/serviceAuthentication"
3057
+ },
3058
+ "healthCheck": {
3059
+ "$ref": "#/definitions/serviceHealthCheck"
3060
+ },
3061
+ "webhookId": {
3062
+ "type": "string"
3063
+ },
3064
+ "options": {
3065
+ "type": "object",
3066
+ "description": "Configuration options passed to and handled by the provider."
3067
+ }
3068
+ },
3069
+ "required": ["id", "title", "provider", "serviceType", "authenticationType"],
3070
+ "additionalProperties": false
3071
+ },
3072
+ "storedServiceConfig": {
3073
+ "title": "Service Config JSON",
3074
+ "type": "object",
3075
+ "properties": {
3076
+ "id": {
3077
+ "type": "string",
3078
+ "description": "Machine-readable identifier, should typically be the same as the property name on the services object."
3079
+ },
3080
+ "title": {
3081
+ "type": "string",
3082
+ "description": "Human-readable name for this service."
3083
+ },
3084
+ "provider": {
3085
+ "type": "string",
3086
+ "description": "The service provider id."
3087
+ },
3088
+ "namespace": {
3089
+ "type": "string",
3090
+ "description": "A namespace to use for the imported types tied to this service."
3091
+ },
3092
+ "serviceType": {
3093
+ "$ref": "#/definitions/serviceType"
3094
+ },
3095
+ "authenticationType": {
3096
+ "type": "string",
3097
+ "enum": [
3098
+ "oauth2",
3099
+ "basic",
3100
+ "bearer",
3101
+ "searchParams",
3102
+ "oauth2Bearer",
3103
+ "custom",
3104
+ "aws",
3105
+ "google",
3106
+ "none",
3107
+ "unknown"
3108
+ ]
3109
+ },
3110
+ "authentication": {
3111
+ "type": "string"
3112
+ },
3113
+ "healthCheck": {
3114
+ "$ref": "#/definitions/serviceHealthCheck"
3115
+ },
3116
+ "webhookId": {
3117
+ "type": "string"
3118
+ },
3119
+ "options": {
3120
+ "type": "object",
3121
+ "description": "Configuration options passed to and handled by the provider."
3122
+ }
3123
+ },
3124
+ "required": ["id", "title", "provider", "serviceType", "authenticationType"],
3125
+ "additionalProperties": false
3126
+ },
3127
+ "anyServiceConfig": {
3128
+ "title": "Any Service Config",
3129
+ "oneOf": [
3130
+ {
3131
+ "$ref": "#/definitions/storedServiceConfig"
3132
+ },
3133
+ {
3134
+ "$ref": "#/definitions/serviceConfig"
3135
+ }
3136
+ ]
3137
+ },
3138
+ "storedServiceMap": {
3139
+ "title": "Service Map JSON",
3140
+ "type": "object",
3141
+ "patternProperties": {
3142
+ "[0-9A-Za-z_-]+": {
3143
+ "$ref": "#/definitions/storedServiceConfig"
3144
+ }
3145
+ }
3146
+ },
3147
+ "workflowStep": {
3148
+ "title": "Workflow Step",
3149
+ "type": "object",
3150
+ "properties": {
3151
+ "name": {
3152
+ "type": "string",
3153
+ "title": "Name",
3154
+ "pattern": "^[_a-zA-Z][_a-zA-Z0-9]*$",
3155
+ "description": "machine-readable slug"
3156
+ },
3157
+ "title": {
3158
+ "title": "Title",
3159
+ "type": "string",
3160
+ "description": "Human-readable id for use in the UI"
3161
+ },
3162
+ "description": {
3163
+ "title": "Description",
3164
+ "type": "string"
3165
+ },
3166
+ "color": {
3167
+ "title": "Color",
3168
+ "type": "string",
3169
+ "description": "Hex color code"
3170
+ },
3171
+ "live": {
3172
+ "title": "Live",
3173
+ "type": "boolean",
3174
+ "description": "Value to indicate whether items in the state should be returned in list queries"
3175
+ },
3176
+ "key": {
3177
+ "title": "Key",
3178
+ "type": "string",
3179
+ "description": "machine-readable id"
3180
+ }
3181
+ },
3182
+ "required": ["name", "title", "color", "live", "key"],
3183
+ "additionalProperties": false
3184
+ },
3185
+ "workflow": {
3186
+ "title": "Workflow",
3187
+ "type": "object",
3188
+ "properties": {
3189
+ "name": {
3190
+ "type": "string",
3191
+ "pattern": "^[_a-zA-Z][_a-zA-Z0-9]*$",
3192
+ "description": "machine-readable id"
3193
+ },
3194
+ "title": {
3195
+ "type": "string",
3196
+ "title": "Workflow Name",
3197
+ "minLength": 1,
3198
+ "description": "Human-readable id for use in the UI"
3199
+ },
3200
+ "steps": {
3201
+ "type": "array",
3202
+ "title": "Steps",
3203
+ "items": {
3204
+ "$ref": "#/definitions/workflowStep"
3205
+ },
3206
+ "minItems": 1
3207
+ }
3208
+ },
3209
+ "required": ["name", "title", "steps"]
3210
+ },
3211
+ "workflowMap": {
3212
+ "title": "Workflow Map",
3213
+ "type": "object",
3214
+ "patternProperties": {
3215
+ "[0-9A-Za-z_-]+": {
3216
+ "$ref": "#/definitions/workflow"
3217
+ }
3218
+ }
3219
+ },
3220
+ "formConfig": {
3221
+ "title": "Form Config",
3222
+ "type": "object"
3223
+ },
3224
+ "formsConfig": {
3225
+ "title": "Forms Config",
3226
+ "type": "object",
3227
+ "properties": {
3228
+ "default": {
3229
+ "$ref": "#/definitions/formConfig"
3230
+ }
3231
+ },
3232
+ "patternProperties": {
3233
+ "[0-9A-Za-z_-]+": {
3234
+ "$ref": "#/definitions/formConfig"
3235
+ }
3236
+ },
3237
+ "required": ["default"]
3238
+ }
3239
+ },
3240
+ "properties": {
3241
+ "$schema": {
3242
+ "type": "string"
3243
+ },
3244
+ "apiVersion": {
3245
+ "type": "string",
3246
+ "description": "The version of the TakeShape API your project is using. We increase the version as we make breaking changes to the API endpoints."
3247
+ },
3248
+ "schemaVersion": {
3249
+ "type": "string",
3250
+ "enum": ["3.51.0"],
3251
+ "description": "The version of the schema format your project is using. We increase the version as we make breaking changes to the schema format."
3252
+ },
3253
+ "projectId": {
3254
+ "type": "string",
3255
+ "description": "The ID of the TakeShape project this schema belongs to."
3256
+ },
3257
+ "author": {
3258
+ "type": "string",
3259
+ "description": "The ID of the TakeShape user who created the schema."
3260
+ },
3261
+ "deactivated": {
3262
+ "type": "number"
3263
+ },
3264
+ "defaultLocale": {
3265
+ "type": "string",
3266
+ "minLength": 1,
3267
+ "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{2,3})?$",
3268
+ "description": "The locale that should be preferred when creating new Shape items. This must be an entry in the locales array."
3269
+ },
3270
+ "locales": {
3271
+ "type": "array",
3272
+ "minItems": 1,
3273
+ "items": {
3274
+ "type": "string",
3275
+ "minLength": 1,
3276
+ "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{2,3})?$"
3277
+ }
3278
+ },
3279
+ "queries": {
3280
+ "$ref": "#/definitions/queryMap",
3281
+ "description": "Queries map directly to queries your project's GraphQL API"
3282
+ },
3283
+ "mutations": {
3284
+ "$ref": "#/definitions/queryMap",
3285
+ "description": "Mutations map directly to mutations your project's GraphQL API"
3286
+ },
3287
+ "shapes": {
3288
+ "$ref": "#/definitions/shapeMap",
3289
+ "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."
3290
+ },
3291
+ "ai-experimental": {
3292
+ "$ref": "https://schema.takeshape.io/project-schema/experimental#/definitions/aiExperimental",
3293
+ "description": "Unstable AI features that will not be migrated when removed. Not suitable for production use."
3294
+ },
3295
+ "forms": {
3296
+ "$ref": "#/definitions/formMap",
3297
+ "description": "Forms define a visual interface for editing Shapes in the TakeShape UI."
3298
+ },
3299
+ "workflows": {
3300
+ "$ref": "#/definitions/workflowMap",
3301
+ "description": "Workflows describe the status of a shape item. Every schema starts with a default workflow with two steps, Disabled and Enabled"
3302
+ },
3303
+ "services": {
3304
+ "$ref": "#/definitions/storedServiceMap",
3305
+ "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."
3306
+ }
3307
+ },
3308
+ "additionalProperties": false,
3309
+ "required": [
3310
+ "projectId",
3311
+ "apiVersion",
3312
+ "schemaVersion",
3313
+ "defaultLocale",
3314
+ "locales",
3315
+ "shapes",
3316
+ "queries",
3317
+ "mutations",
3318
+ "workflows"
3319
+ ]
3320
+ }