@azure/provisioning-core 1.0.0-beta.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 (440) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/LICENSE +21 -0
  3. package/README.md +40 -0
  4. package/dist/browser/constructs/built-in-resources/resource-group.d.ts +50 -0
  5. package/dist/browser/constructs/built-in-resources/resource-group.d.ts.map +1 -0
  6. package/dist/browser/constructs/built-in-resources/resource-group.js +100 -0
  7. package/dist/browser/constructs/built-in-resources/resource-group.js.map +1 -0
  8. package/dist/browser/constructs/output.d.ts +80 -0
  9. package/dist/browser/constructs/output.d.ts.map +1 -0
  10. package/dist/browser/constructs/output.js +75 -0
  11. package/dist/browser/constructs/output.js.map +1 -0
  12. package/dist/browser/constructs/parameter.d.ts +77 -0
  13. package/dist/browser/constructs/parameter.d.ts.map +1 -0
  14. package/dist/browser/constructs/parameter.js +93 -0
  15. package/dist/browser/constructs/parameter.js.map +1 -0
  16. package/dist/browser/constructs/provisioning-component.d.ts +91 -0
  17. package/dist/browser/constructs/provisioning-component.d.ts.map +1 -0
  18. package/dist/browser/constructs/provisioning-component.js +150 -0
  19. package/dist/browser/constructs/provisioning-component.js.map +1 -0
  20. package/dist/browser/constructs/resource/resource-proxy.d.ts +134 -0
  21. package/dist/browser/constructs/resource/resource-proxy.d.ts.map +1 -0
  22. package/dist/browser/constructs/resource/resource-proxy.js +517 -0
  23. package/dist/browser/constructs/resource/resource-proxy.js.map +1 -0
  24. package/dist/browser/constructs/resource/resource-query.d.ts +23 -0
  25. package/dist/browser/constructs/resource/resource-query.d.ts.map +1 -0
  26. package/dist/browser/constructs/resource/resource-query.js +69 -0
  27. package/dist/browser/constructs/resource/resource-query.js.map +1 -0
  28. package/dist/browser/constructs/resource/resource-registry.d.ts +99 -0
  29. package/dist/browser/constructs/resource/resource-registry.d.ts.map +1 -0
  30. package/dist/browser/constructs/resource/resource-registry.js +51 -0
  31. package/dist/browser/constructs/resource/resource-registry.js.map +1 -0
  32. package/dist/browser/constructs/resource/resource-type-registry.d.ts +46 -0
  33. package/dist/browser/constructs/resource/resource-type-registry.d.ts.map +1 -0
  34. package/dist/browser/constructs/resource/resource-type-registry.js +156 -0
  35. package/dist/browser/constructs/resource/resource-type-registry.js.map +1 -0
  36. package/dist/browser/constructs/resource/resource-utils.d.ts +60 -0
  37. package/dist/browser/constructs/resource/resource-utils.d.ts.map +1 -0
  38. package/dist/browser/constructs/resource/resource-utils.js +75 -0
  39. package/dist/browser/constructs/resource/resource-utils.js.map +1 -0
  40. package/dist/browser/constructs/resource/resource.d.ts +460 -0
  41. package/dist/browser/constructs/resource/resource.d.ts.map +1 -0
  42. package/dist/browser/constructs/resource/resource.js +582 -0
  43. package/dist/browser/constructs/resource/resource.js.map +1 -0
  44. package/dist/browser/constructs/stack.d.ts +110 -0
  45. package/dist/browser/constructs/stack.d.ts.map +1 -0
  46. package/dist/browser/constructs/stack.js +110 -0
  47. package/dist/browser/constructs/stack.js.map +1 -0
  48. package/dist/browser/constructs/variable.d.ts +63 -0
  49. package/dist/browser/constructs/variable.d.ts.map +1 -0
  50. package/dist/browser/constructs/variable.js +74 -0
  51. package/dist/browser/constructs/variable.js.map +1 -0
  52. package/dist/browser/deployment-context/deployment-context.d.ts +27 -0
  53. package/dist/browser/deployment-context/deployment-context.d.ts.map +1 -0
  54. package/dist/browser/deployment-context/deployment-context.js +4 -0
  55. package/dist/browser/deployment-context/deployment-context.js.map +1 -0
  56. package/dist/browser/expression/ast-nodes.d.ts +100 -0
  57. package/dist/browser/expression/ast-nodes.d.ts.map +1 -0
  58. package/dist/browser/expression/ast-nodes.js +125 -0
  59. package/dist/browser/expression/ast-nodes.js.map +1 -0
  60. package/dist/browser/expression/expressions.d.ts +164 -0
  61. package/dist/browser/expression/expressions.d.ts.map +1 -0
  62. package/dist/browser/expression/expressions.js +211 -0
  63. package/dist/browser/expression/expressions.js.map +1 -0
  64. package/dist/browser/fn.d.ts +194 -0
  65. package/dist/browser/fn.d.ts.map +1 -0
  66. package/dist/browser/fn.js +334 -0
  67. package/dist/browser/fn.js.map +1 -0
  68. package/dist/browser/index.d.ts +25 -0
  69. package/dist/browser/index.d.ts.map +1 -0
  70. package/dist/browser/index.js +17 -0
  71. package/dist/browser/index.js.map +1 -0
  72. package/dist/browser/internal.d.ts +13 -0
  73. package/dist/browser/internal.d.ts.map +1 -0
  74. package/dist/browser/internal.js +10 -0
  75. package/dist/browser/internal.js.map +1 -0
  76. package/dist/browser/naming/naming-policy.d.ts +56 -0
  77. package/dist/browser/naming/naming-policy.d.ts.map +1 -0
  78. package/dist/browser/naming/naming-policy.js +97 -0
  79. package/dist/browser/naming/naming-policy.js.map +1 -0
  80. package/dist/browser/naming/naming-rules.d.ts +15 -0
  81. package/dist/browser/naming/naming-rules.d.ts.map +1 -0
  82. package/dist/browser/naming/naming-rules.js +15 -0
  83. package/dist/browser/naming/naming-rules.js.map +1 -0
  84. package/dist/browser/package.json +8 -0
  85. package/dist/browser/serialization/contract/generated/ast.d.ts +508 -0
  86. package/dist/browser/serialization/contract/generated/ast.d.ts.map +1 -0
  87. package/dist/browser/serialization/contract/generated/ast.js +23 -0
  88. package/dist/browser/serialization/contract/generated/ast.js.map +1 -0
  89. package/dist/browser/serialization/contract/index.d.ts +2 -0
  90. package/dist/browser/serialization/contract/index.d.ts.map +1 -0
  91. package/dist/browser/serialization/contract/index.js +4 -0
  92. package/dist/browser/serialization/contract/index.js.map +1 -0
  93. package/dist/browser/serialization/index.d.ts +4 -0
  94. package/dist/browser/serialization/index.d.ts.map +1 -0
  95. package/dist/browser/serialization/index.js +5 -0
  96. package/dist/browser/serialization/index.js.map +1 -0
  97. package/dist/browser/serialization/json/deserialize.d.ts +24 -0
  98. package/dist/browser/serialization/json/deserialize.d.ts.map +1 -0
  99. package/dist/browser/serialization/json/deserialize.js +437 -0
  100. package/dist/browser/serialization/json/deserialize.js.map +1 -0
  101. package/dist/browser/serialization/json/encoding.d.ts +4 -0
  102. package/dist/browser/serialization/json/encoding.d.ts.map +1 -0
  103. package/dist/browser/serialization/json/encoding.js +319 -0
  104. package/dist/browser/serialization/json/encoding.js.map +1 -0
  105. package/dist/browser/serialization/json/expression.d.ts +32 -0
  106. package/dist/browser/serialization/json/expression.d.ts.map +1 -0
  107. package/dist/browser/serialization/json/expression.js +494 -0
  108. package/dist/browser/serialization/json/expression.js.map +1 -0
  109. package/dist/browser/serialization/json/lower.d.ts +41 -0
  110. package/dist/browser/serialization/json/lower.d.ts.map +1 -0
  111. package/dist/browser/serialization/json/lower.js +334 -0
  112. package/dist/browser/serialization/json/lower.js.map +1 -0
  113. package/dist/browser/serialization/json/pluralize-config.d.ts +3 -0
  114. package/dist/browser/serialization/json/pluralize-config.d.ts.map +1 -0
  115. package/dist/browser/serialization/json/pluralize-config.js +7 -0
  116. package/dist/browser/serialization/json/pluralize-config.js.map +1 -0
  117. package/dist/browser/serialization/json/serialize.d.ts +12 -0
  118. package/dist/browser/serialization/json/serialize.d.ts.map +1 -0
  119. package/dist/browser/serialization/json/serialize.js +389 -0
  120. package/dist/browser/serialization/json/serialize.js.map +1 -0
  121. package/dist/browser/serialization/json/util.d.ts +2 -0
  122. package/dist/browser/serialization/json/util.d.ts.map +1 -0
  123. package/dist/browser/serialization/json/util.js +19 -0
  124. package/dist/browser/serialization/json/util.js.map +1 -0
  125. package/dist/browser/serialization/utils.d.ts +3 -0
  126. package/dist/browser/serialization/utils.d.ts.map +1 -0
  127. package/dist/browser/serialization/utils.js +146 -0
  128. package/dist/browser/serialization/utils.js.map +1 -0
  129. package/dist/browser/shape/shape-registry.d.ts +51 -0
  130. package/dist/browser/shape/shape-registry.d.ts.map +1 -0
  131. package/dist/browser/shape/shape-registry.js +41 -0
  132. package/dist/browser/shape/shape-registry.js.map +1 -0
  133. package/dist/browser/shape/shape.d.ts +407 -0
  134. package/dist/browser/shape/shape.d.ts.map +1 -0
  135. package/dist/browser/shape/shape.js +424 -0
  136. package/dist/browser/shape/shape.js.map +1 -0
  137. package/dist/browser/shape/value-encoding.d.ts +121 -0
  138. package/dist/browser/shape/value-encoding.d.ts.map +1 -0
  139. package/dist/browser/shape/value-encoding.js +32 -0
  140. package/dist/browser/shape/value-encoding.js.map +1 -0
  141. package/dist/browser/types.d.ts +9 -0
  142. package/dist/browser/types.d.ts.map +1 -0
  143. package/dist/browser/types.js +4 -0
  144. package/dist/browser/types.js.map +1 -0
  145. package/dist/browser/util.d.ts +33 -0
  146. package/dist/browser/util.d.ts.map +1 -0
  147. package/dist/browser/util.js +74 -0
  148. package/dist/browser/util.js.map +1 -0
  149. package/dist/commonjs/constructs/built-in-resources/resource-group.d.ts +50 -0
  150. package/dist/commonjs/constructs/built-in-resources/resource-group.d.ts.map +1 -0
  151. package/dist/commonjs/constructs/built-in-resources/resource-group.js +114 -0
  152. package/dist/commonjs/constructs/built-in-resources/resource-group.js.map +7 -0
  153. package/dist/commonjs/constructs/output.d.ts +80 -0
  154. package/dist/commonjs/constructs/output.d.ts.map +1 -0
  155. package/dist/commonjs/constructs/output.js +75 -0
  156. package/dist/commonjs/constructs/output.js.map +7 -0
  157. package/dist/commonjs/constructs/parameter.d.ts +77 -0
  158. package/dist/commonjs/constructs/parameter.d.ts.map +1 -0
  159. package/dist/commonjs/constructs/parameter.js +95 -0
  160. package/dist/commonjs/constructs/parameter.js.map +7 -0
  161. package/dist/commonjs/constructs/provisioning-component.d.ts +91 -0
  162. package/dist/commonjs/constructs/provisioning-component.d.ts.map +1 -0
  163. package/dist/commonjs/constructs/provisioning-component.js +130 -0
  164. package/dist/commonjs/constructs/provisioning-component.js.map +7 -0
  165. package/dist/commonjs/constructs/resource/resource-proxy.d.ts +134 -0
  166. package/dist/commonjs/constructs/resource/resource-proxy.d.ts.map +1 -0
  167. package/dist/commonjs/constructs/resource/resource-proxy.js +456 -0
  168. package/dist/commonjs/constructs/resource/resource-proxy.js.map +7 -0
  169. package/dist/commonjs/constructs/resource/resource-query.d.ts +23 -0
  170. package/dist/commonjs/constructs/resource/resource-query.d.ts.map +1 -0
  171. package/dist/commonjs/constructs/resource/resource-query.js +68 -0
  172. package/dist/commonjs/constructs/resource/resource-query.js.map +7 -0
  173. package/dist/commonjs/constructs/resource/resource-registry.d.ts +99 -0
  174. package/dist/commonjs/constructs/resource/resource-registry.d.ts.map +1 -0
  175. package/dist/commonjs/constructs/resource/resource-registry.js +49 -0
  176. package/dist/commonjs/constructs/resource/resource-registry.js.map +7 -0
  177. package/dist/commonjs/constructs/resource/resource-type-registry.d.ts +46 -0
  178. package/dist/commonjs/constructs/resource/resource-type-registry.d.ts.map +1 -0
  179. package/dist/commonjs/constructs/resource/resource-type-registry.js +178 -0
  180. package/dist/commonjs/constructs/resource/resource-type-registry.js.map +7 -0
  181. package/dist/commonjs/constructs/resource/resource-utils.d.ts +60 -0
  182. package/dist/commonjs/constructs/resource/resource-utils.d.ts.map +1 -0
  183. package/dist/commonjs/constructs/resource/resource-utils.js +51 -0
  184. package/dist/commonjs/constructs/resource/resource-utils.js.map +7 -0
  185. package/dist/commonjs/constructs/resource/resource.d.ts +460 -0
  186. package/dist/commonjs/constructs/resource/resource.d.ts.map +1 -0
  187. package/dist/commonjs/constructs/resource/resource.js +455 -0
  188. package/dist/commonjs/constructs/resource/resource.js.map +7 -0
  189. package/dist/commonjs/constructs/stack.d.ts +110 -0
  190. package/dist/commonjs/constructs/stack.d.ts.map +1 -0
  191. package/dist/commonjs/constructs/stack.js +101 -0
  192. package/dist/commonjs/constructs/stack.js.map +7 -0
  193. package/dist/commonjs/constructs/variable.d.ts +63 -0
  194. package/dist/commonjs/constructs/variable.d.ts.map +1 -0
  195. package/dist/commonjs/constructs/variable.js +85 -0
  196. package/dist/commonjs/constructs/variable.js.map +7 -0
  197. package/dist/commonjs/deployment-context/deployment-context.d.ts +27 -0
  198. package/dist/commonjs/deployment-context/deployment-context.d.ts.map +1 -0
  199. package/dist/commonjs/deployment-context/deployment-context.js +16 -0
  200. package/dist/commonjs/deployment-context/deployment-context.js.map +7 -0
  201. package/dist/commonjs/expression/ast-nodes.d.ts +100 -0
  202. package/dist/commonjs/expression/ast-nodes.d.ts.map +1 -0
  203. package/dist/commonjs/expression/ast-nodes.js +152 -0
  204. package/dist/commonjs/expression/ast-nodes.js.map +7 -0
  205. package/dist/commonjs/expression/expressions.d.ts +164 -0
  206. package/dist/commonjs/expression/expressions.d.ts.map +1 -0
  207. package/dist/commonjs/expression/expressions.js +171 -0
  208. package/dist/commonjs/expression/expressions.js.map +7 -0
  209. package/dist/commonjs/fn.d.ts +194 -0
  210. package/dist/commonjs/fn.d.ts.map +1 -0
  211. package/dist/commonjs/fn.js +382 -0
  212. package/dist/commonjs/fn.js.map +7 -0
  213. package/dist/commonjs/index.d.ts +25 -0
  214. package/dist/commonjs/index.d.ts.map +1 -0
  215. package/dist/commonjs/index.js +93 -0
  216. package/dist/commonjs/index.js.map +7 -0
  217. package/dist/commonjs/internal.d.ts +13 -0
  218. package/dist/commonjs/internal.d.ts.map +1 -0
  219. package/dist/commonjs/internal.js +88 -0
  220. package/dist/commonjs/internal.js.map +7 -0
  221. package/dist/commonjs/naming/naming-policy.d.ts +56 -0
  222. package/dist/commonjs/naming/naming-policy.d.ts.map +1 -0
  223. package/dist/commonjs/naming/naming-policy.js +99 -0
  224. package/dist/commonjs/naming/naming-policy.js.map +7 -0
  225. package/dist/commonjs/naming/naming-rules.d.ts +15 -0
  226. package/dist/commonjs/naming/naming-rules.d.ts.map +1 -0
  227. package/dist/commonjs/naming/naming-rules.js +39 -0
  228. package/dist/commonjs/naming/naming-rules.js.map +7 -0
  229. package/dist/commonjs/package.json +8 -0
  230. package/dist/commonjs/serialization/contract/generated/ast.d.ts +508 -0
  231. package/dist/commonjs/serialization/contract/generated/ast.d.ts.map +1 -0
  232. package/dist/commonjs/serialization/contract/generated/ast.js +40 -0
  233. package/dist/commonjs/serialization/contract/generated/ast.js.map +7 -0
  234. package/dist/commonjs/serialization/contract/index.d.ts +2 -0
  235. package/dist/commonjs/serialization/contract/index.d.ts.map +1 -0
  236. package/dist/commonjs/serialization/contract/index.js +22 -0
  237. package/dist/commonjs/serialization/contract/index.js.map +7 -0
  238. package/dist/commonjs/serialization/index.d.ts +4 -0
  239. package/dist/commonjs/serialization/index.d.ts.map +1 -0
  240. package/dist/commonjs/serialization/index.js +31 -0
  241. package/dist/commonjs/serialization/index.js.map +7 -0
  242. package/dist/commonjs/serialization/json/deserialize.d.ts +24 -0
  243. package/dist/commonjs/serialization/json/deserialize.d.ts.map +1 -0
  244. package/dist/commonjs/serialization/json/deserialize.js +385 -0
  245. package/dist/commonjs/serialization/json/deserialize.js.map +7 -0
  246. package/dist/commonjs/serialization/json/encoding.d.ts +4 -0
  247. package/dist/commonjs/serialization/json/encoding.d.ts.map +1 -0
  248. package/dist/commonjs/serialization/json/encoding.js +306 -0
  249. package/dist/commonjs/serialization/json/encoding.js.map +7 -0
  250. package/dist/commonjs/serialization/json/expression.d.ts +32 -0
  251. package/dist/commonjs/serialization/json/expression.d.ts.map +1 -0
  252. package/dist/commonjs/serialization/json/expression.js +509 -0
  253. package/dist/commonjs/serialization/json/expression.js.map +7 -0
  254. package/dist/commonjs/serialization/json/lower.d.ts +41 -0
  255. package/dist/commonjs/serialization/json/lower.d.ts.map +1 -0
  256. package/dist/commonjs/serialization/json/lower.js +272 -0
  257. package/dist/commonjs/serialization/json/lower.js.map +7 -0
  258. package/dist/commonjs/serialization/json/pluralize-config.d.ts +3 -0
  259. package/dist/commonjs/serialization/json/pluralize-config.d.ts.map +1 -0
  260. package/dist/commonjs/serialization/json/pluralize-config.js +37 -0
  261. package/dist/commonjs/serialization/json/pluralize-config.js.map +7 -0
  262. package/dist/commonjs/serialization/json/serialize.d.ts +12 -0
  263. package/dist/commonjs/serialization/json/serialize.d.ts.map +1 -0
  264. package/dist/commonjs/serialization/json/serialize.js +352 -0
  265. package/dist/commonjs/serialization/json/serialize.js.map +7 -0
  266. package/dist/commonjs/serialization/json/util.d.ts +2 -0
  267. package/dist/commonjs/serialization/json/util.d.ts.map +1 -0
  268. package/dist/commonjs/serialization/json/util.js +37 -0
  269. package/dist/commonjs/serialization/json/util.js.map +7 -0
  270. package/dist/commonjs/serialization/utils.d.ts +3 -0
  271. package/dist/commonjs/serialization/utils.d.ts.map +1 -0
  272. package/dist/commonjs/serialization/utils.js +169 -0
  273. package/dist/commonjs/serialization/utils.js.map +7 -0
  274. package/dist/commonjs/shape/shape-registry.d.ts +51 -0
  275. package/dist/commonjs/shape/shape-registry.d.ts.map +1 -0
  276. package/dist/commonjs/shape/shape-registry.js +40 -0
  277. package/dist/commonjs/shape/shape-registry.js.map +7 -0
  278. package/dist/commonjs/shape/shape.d.ts +407 -0
  279. package/dist/commonjs/shape/shape.d.ts.map +1 -0
  280. package/dist/commonjs/shape/shape.js +290 -0
  281. package/dist/commonjs/shape/shape.js.map +7 -0
  282. package/dist/commonjs/shape/value-encoding.d.ts +121 -0
  283. package/dist/commonjs/shape/value-encoding.d.ts.map +1 -0
  284. package/dist/commonjs/shape/value-encoding.js +62 -0
  285. package/dist/commonjs/shape/value-encoding.js.map +7 -0
  286. package/dist/commonjs/tsdoc-metadata.json +11 -0
  287. package/dist/commonjs/types.d.ts +9 -0
  288. package/dist/commonjs/types.d.ts.map +1 -0
  289. package/dist/commonjs/types.js +16 -0
  290. package/dist/commonjs/types.js.map +7 -0
  291. package/dist/commonjs/util.d.ts +33 -0
  292. package/dist/commonjs/util.d.ts.map +1 -0
  293. package/dist/commonjs/util.js +73 -0
  294. package/dist/commonjs/util.js.map +7 -0
  295. package/dist/esm/constructs/built-in-resources/resource-group.d.ts +50 -0
  296. package/dist/esm/constructs/built-in-resources/resource-group.d.ts.map +1 -0
  297. package/dist/esm/constructs/built-in-resources/resource-group.js +100 -0
  298. package/dist/esm/constructs/built-in-resources/resource-group.js.map +1 -0
  299. package/dist/esm/constructs/output.d.ts +80 -0
  300. package/dist/esm/constructs/output.d.ts.map +1 -0
  301. package/dist/esm/constructs/output.js +75 -0
  302. package/dist/esm/constructs/output.js.map +1 -0
  303. package/dist/esm/constructs/parameter.d.ts +77 -0
  304. package/dist/esm/constructs/parameter.d.ts.map +1 -0
  305. package/dist/esm/constructs/parameter.js +93 -0
  306. package/dist/esm/constructs/parameter.js.map +1 -0
  307. package/dist/esm/constructs/provisioning-component.d.ts +91 -0
  308. package/dist/esm/constructs/provisioning-component.d.ts.map +1 -0
  309. package/dist/esm/constructs/provisioning-component.js +150 -0
  310. package/dist/esm/constructs/provisioning-component.js.map +1 -0
  311. package/dist/esm/constructs/resource/resource-proxy.d.ts +134 -0
  312. package/dist/esm/constructs/resource/resource-proxy.d.ts.map +1 -0
  313. package/dist/esm/constructs/resource/resource-proxy.js +517 -0
  314. package/dist/esm/constructs/resource/resource-proxy.js.map +1 -0
  315. package/dist/esm/constructs/resource/resource-query.d.ts +23 -0
  316. package/dist/esm/constructs/resource/resource-query.d.ts.map +1 -0
  317. package/dist/esm/constructs/resource/resource-query.js +69 -0
  318. package/dist/esm/constructs/resource/resource-query.js.map +1 -0
  319. package/dist/esm/constructs/resource/resource-registry.d.ts +99 -0
  320. package/dist/esm/constructs/resource/resource-registry.d.ts.map +1 -0
  321. package/dist/esm/constructs/resource/resource-registry.js +51 -0
  322. package/dist/esm/constructs/resource/resource-registry.js.map +1 -0
  323. package/dist/esm/constructs/resource/resource-type-registry.d.ts +46 -0
  324. package/dist/esm/constructs/resource/resource-type-registry.d.ts.map +1 -0
  325. package/dist/esm/constructs/resource/resource-type-registry.js +156 -0
  326. package/dist/esm/constructs/resource/resource-type-registry.js.map +1 -0
  327. package/dist/esm/constructs/resource/resource-utils.d.ts +60 -0
  328. package/dist/esm/constructs/resource/resource-utils.d.ts.map +1 -0
  329. package/dist/esm/constructs/resource/resource-utils.js +75 -0
  330. package/dist/esm/constructs/resource/resource-utils.js.map +1 -0
  331. package/dist/esm/constructs/resource/resource.d.ts +460 -0
  332. package/dist/esm/constructs/resource/resource.d.ts.map +1 -0
  333. package/dist/esm/constructs/resource/resource.js +582 -0
  334. package/dist/esm/constructs/resource/resource.js.map +1 -0
  335. package/dist/esm/constructs/stack.d.ts +110 -0
  336. package/dist/esm/constructs/stack.d.ts.map +1 -0
  337. package/dist/esm/constructs/stack.js +110 -0
  338. package/dist/esm/constructs/stack.js.map +1 -0
  339. package/dist/esm/constructs/variable.d.ts +63 -0
  340. package/dist/esm/constructs/variable.d.ts.map +1 -0
  341. package/dist/esm/constructs/variable.js +74 -0
  342. package/dist/esm/constructs/variable.js.map +1 -0
  343. package/dist/esm/deployment-context/deployment-context.d.ts +27 -0
  344. package/dist/esm/deployment-context/deployment-context.d.ts.map +1 -0
  345. package/dist/esm/deployment-context/deployment-context.js +4 -0
  346. package/dist/esm/deployment-context/deployment-context.js.map +1 -0
  347. package/dist/esm/expression/ast-nodes.d.ts +100 -0
  348. package/dist/esm/expression/ast-nodes.d.ts.map +1 -0
  349. package/dist/esm/expression/ast-nodes.js +125 -0
  350. package/dist/esm/expression/ast-nodes.js.map +1 -0
  351. package/dist/esm/expression/expressions.d.ts +164 -0
  352. package/dist/esm/expression/expressions.d.ts.map +1 -0
  353. package/dist/esm/expression/expressions.js +211 -0
  354. package/dist/esm/expression/expressions.js.map +1 -0
  355. package/dist/esm/fn.d.ts +194 -0
  356. package/dist/esm/fn.d.ts.map +1 -0
  357. package/dist/esm/fn.js +334 -0
  358. package/dist/esm/fn.js.map +1 -0
  359. package/dist/esm/index.d.ts +25 -0
  360. package/dist/esm/index.d.ts.map +1 -0
  361. package/dist/esm/index.js +17 -0
  362. package/dist/esm/index.js.map +1 -0
  363. package/dist/esm/internal.d.ts +13 -0
  364. package/dist/esm/internal.d.ts.map +1 -0
  365. package/dist/esm/internal.js +10 -0
  366. package/dist/esm/internal.js.map +1 -0
  367. package/dist/esm/naming/naming-policy.d.ts +56 -0
  368. package/dist/esm/naming/naming-policy.d.ts.map +1 -0
  369. package/dist/esm/naming/naming-policy.js +97 -0
  370. package/dist/esm/naming/naming-policy.js.map +1 -0
  371. package/dist/esm/naming/naming-rules.d.ts +15 -0
  372. package/dist/esm/naming/naming-rules.d.ts.map +1 -0
  373. package/dist/esm/naming/naming-rules.js +15 -0
  374. package/dist/esm/naming/naming-rules.js.map +1 -0
  375. package/dist/esm/package.json +8 -0
  376. package/dist/esm/serialization/contract/generated/ast.d.ts +508 -0
  377. package/dist/esm/serialization/contract/generated/ast.d.ts.map +1 -0
  378. package/dist/esm/serialization/contract/generated/ast.js +23 -0
  379. package/dist/esm/serialization/contract/generated/ast.js.map +1 -0
  380. package/dist/esm/serialization/contract/index.d.ts +2 -0
  381. package/dist/esm/serialization/contract/index.d.ts.map +1 -0
  382. package/dist/esm/serialization/contract/index.js +4 -0
  383. package/dist/esm/serialization/contract/index.js.map +1 -0
  384. package/dist/esm/serialization/index.d.ts +4 -0
  385. package/dist/esm/serialization/index.d.ts.map +1 -0
  386. package/dist/esm/serialization/index.js +5 -0
  387. package/dist/esm/serialization/index.js.map +1 -0
  388. package/dist/esm/serialization/json/deserialize.d.ts +24 -0
  389. package/dist/esm/serialization/json/deserialize.d.ts.map +1 -0
  390. package/dist/esm/serialization/json/deserialize.js +437 -0
  391. package/dist/esm/serialization/json/deserialize.js.map +1 -0
  392. package/dist/esm/serialization/json/encoding.d.ts +4 -0
  393. package/dist/esm/serialization/json/encoding.d.ts.map +1 -0
  394. package/dist/esm/serialization/json/encoding.js +319 -0
  395. package/dist/esm/serialization/json/encoding.js.map +1 -0
  396. package/dist/esm/serialization/json/expression.d.ts +32 -0
  397. package/dist/esm/serialization/json/expression.d.ts.map +1 -0
  398. package/dist/esm/serialization/json/expression.js +494 -0
  399. package/dist/esm/serialization/json/expression.js.map +1 -0
  400. package/dist/esm/serialization/json/lower.d.ts +41 -0
  401. package/dist/esm/serialization/json/lower.d.ts.map +1 -0
  402. package/dist/esm/serialization/json/lower.js +334 -0
  403. package/dist/esm/serialization/json/lower.js.map +1 -0
  404. package/dist/esm/serialization/json/pluralize-config.d.ts +3 -0
  405. package/dist/esm/serialization/json/pluralize-config.d.ts.map +1 -0
  406. package/dist/esm/serialization/json/pluralize-config.js +7 -0
  407. package/dist/esm/serialization/json/pluralize-config.js.map +1 -0
  408. package/dist/esm/serialization/json/serialize.d.ts +12 -0
  409. package/dist/esm/serialization/json/serialize.d.ts.map +1 -0
  410. package/dist/esm/serialization/json/serialize.js +389 -0
  411. package/dist/esm/serialization/json/serialize.js.map +1 -0
  412. package/dist/esm/serialization/json/util.d.ts +2 -0
  413. package/dist/esm/serialization/json/util.d.ts.map +1 -0
  414. package/dist/esm/serialization/json/util.js +19 -0
  415. package/dist/esm/serialization/json/util.js.map +1 -0
  416. package/dist/esm/serialization/utils.d.ts +3 -0
  417. package/dist/esm/serialization/utils.d.ts.map +1 -0
  418. package/dist/esm/serialization/utils.js +146 -0
  419. package/dist/esm/serialization/utils.js.map +1 -0
  420. package/dist/esm/shape/shape-registry.d.ts +51 -0
  421. package/dist/esm/shape/shape-registry.d.ts.map +1 -0
  422. package/dist/esm/shape/shape-registry.js +41 -0
  423. package/dist/esm/shape/shape-registry.js.map +1 -0
  424. package/dist/esm/shape/shape.d.ts +407 -0
  425. package/dist/esm/shape/shape.d.ts.map +1 -0
  426. package/dist/esm/shape/shape.js +424 -0
  427. package/dist/esm/shape/shape.js.map +1 -0
  428. package/dist/esm/shape/value-encoding.d.ts +121 -0
  429. package/dist/esm/shape/value-encoding.d.ts.map +1 -0
  430. package/dist/esm/shape/value-encoding.js +32 -0
  431. package/dist/esm/shape/value-encoding.js.map +1 -0
  432. package/dist/esm/types.d.ts +9 -0
  433. package/dist/esm/types.d.ts.map +1 -0
  434. package/dist/esm/types.js +4 -0
  435. package/dist/esm/types.js.map +1 -0
  436. package/dist/esm/util.d.ts +33 -0
  437. package/dist/esm/util.d.ts.map +1 -0
  438. package/dist/esm/util.js +74 -0
  439. package/dist/esm/util.js.map +1 -0
  440. package/package.json +117 -0
@@ -0,0 +1,460 @@
1
+ import { ProvisioningComponent } from "../provisioning-component.js";
2
+ import { type Expression, type ExpressionOrValue } from "../../expression/expressions.js";
3
+ import type { ExpressionNode } from "../../expression/ast-nodes.js";
4
+ import type { PropertySegment } from "../../types.js";
5
+ import type { ResourceNamingRules } from "../../naming/naming-rules.js";
6
+ import { RAW_RESOURCE_HANDLE, RESOURCE_BRAND, RESOURCE_DECLARATION_BRAND, LOOPED_RESOURCE_BRAND } from "./resource-proxy.js";
7
+ import type { FlatModelShape } from "../../shape/shape.js";
8
+ import { type ResourceCtor } from "./resource-registry.js";
9
+ import type { FlatVariantSelector } from "./resource-type-registry.js";
10
+ /**
11
+ * A Bicep `scope:` expression. Used on `existing` resource references for
12
+ * cross-RG / cross-subscription / cross-MG / cross-tenant lookups, and on
13
+ * modules to set the nested deployment scope.
14
+ *
15
+ * Typed as `Expression<unknown>` because the natural producers are the
16
+ * scope-function helpers in `fn` (`fn.resourceGroup(...)`,
17
+ * `fn.subscription(...)`, `fn.managementGroup(...)`, `fn.tenant()`), all
18
+ * of which return `Expression<TScope>` proxies. Narrowing further isn't
19
+ * worthwhile today since the set of acceptable scope-producing
20
+ * expressions isn't closed and Bicep validates the actual call shape
21
+ * downstream.
22
+ */
23
+ export type ScopeExpression = Expression<unknown>;
24
+ /**
25
+ * Internal representation used to construct resource handle objects.
26
+ * The proxy converts these into the public Resource shape.
27
+ */
28
+ export interface ResourceState<TType extends string = string> {
29
+ name: ExpressionOrValue<string>;
30
+ readonly type: TType;
31
+ readonly apiVersion: string;
32
+ readonly existing?: boolean | undefined;
33
+ /**
34
+ * Optional Bicep `scope:` expression. Currently emitted only on `existing`
35
+ * resource references (e.g. `scope: resourceGroup('shared')` for a
36
+ * cross-RG lookup). Future scope-hoisted resource types may emit it on
37
+ * deployable resources too — for example, deploying a
38
+ * `Microsoft.Management/managementGroups` from a subscription-targeted
39
+ * file requires `scope: tenant()`. See `contributing/bicep/bicep-scope.md` section 2.2.
40
+ *
41
+ * For ordinary deployable resources this field is `undefined` — their
42
+ * deployment scope is determined by the file's `targetScope` (or by the
43
+ * containing `ResourceGroup` / module the resource lives in).
44
+ *
45
+ * Stored as a raw `ExpressionNode` (the user-facing `ScopeExpression`
46
+ * proxy is unwrapped at the constructor boundary, matching the
47
+ * "`state` holds normalized raw nodes" invariant that
48
+ * `normalizeAssignedValue` maintains for every other field).
49
+ */
50
+ readonly scope?: ExpressionNode | undefined;
51
+ readonly condition?: ExpressionOrValue<boolean> | undefined;
52
+ }
53
+ /**
54
+ * Public-facing props for a reference to an existing (pre-deployed) Azure
55
+ * resource. This is strictly narrower than the deployable resource props —
56
+ * Bicep `existing` declarations only accept `name` and optional `scope:`.
57
+ *
58
+ * Read-side access on the returned resource handle is unrestricted —
59
+ * `kv.properties.vaultUri`, `sa.id`, etc. all work and compile to symbolic
60
+ * references that ARM resolves at deployment time.
61
+ *
62
+ * Symbolic parent/extension scopes are expressed by passing the parent
63
+ * resource as the ProvisioningComponent `context` argument to the resource constructor
64
+ * (with `{ existing: true }`), not via this `scope` field.
65
+ */
66
+ export interface ExistingResourceProps {
67
+ /** Required. The actual Azure name of the existing resource. */
68
+ readonly name: ExpressionOrValue<string>;
69
+ /**
70
+ * Optional. The scope at which to look up the resource. Used when the
71
+ * resource lives outside the current deployment's scope (different RG,
72
+ * subscription, management group, or tenant).
73
+ *
74
+ * Pass a scope-function call expression (e.g. `resourceGroup("name")`,
75
+ * `subscription()`, `managementGroup("mg")`, `tenant()`).
76
+ */
77
+ readonly scope?: ScopeExpression;
78
+ }
79
+ /**
80
+ * `ExistingResourceProps` for singleton child resources — `name` is omitted
81
+ * because singleton children have a fixed name (e.g. `"default"`).
82
+ */
83
+ export type SingletonExistingResourceProps = Omit<ExistingResourceProps, "name">;
84
+ /**
85
+ * Internal props accepted by the base `Resource` constructor. A loose
86
+ * superset of both the deployable and existing public shapes — the runtime
87
+ * constructor branches on `props.existing` to decide which fields are
88
+ * honored. Generated CDK resource classes expose a discriminated union
89
+ * `(Deployable & { existing?: false }) | (Existing & { existing: true })`;
90
+ * passing `{ ...existingProps, existing: true }` selects the existing arm and
91
+ * emits a Bicep `existing` reference instead of a new declaration.
92
+ */
93
+ export interface ResourceProps<TType extends string> {
94
+ readonly name?: ExpressionOrValue<string> | undefined;
95
+ readonly apiVersion: string;
96
+ readonly type: TType;
97
+ readonly existing?: boolean;
98
+ /**
99
+ * Optional Bicep `scope:` value for an existing resource reference.
100
+ * Only honored when `existing === true`. Ignored on deployable resources
101
+ * (non-existing resources have no per-resource scope in Bicep).
102
+ */
103
+ readonly scope?: ScopeExpression;
104
+ }
105
+ /**
106
+ * Optional third-argument bag passed to every resource constructor. Holds
107
+ * authoring flags that affect how the resource declaration is emitted but are
108
+ * not ARM-modeled properties of the resource body.
109
+ *
110
+ * Fields:
111
+ * - `condition` — an `if(...)` guard on the declaration. A boolean
112
+ * expression (typically produced by `fn.eq`, `fn.and`, etc.) or a
113
+ * plain `boolean`. Bind it to a `const` to reuse the same predicate
114
+ * across multiple resources.
115
+ *
116
+ * `existing` is deliberately **not** an option — it is the discriminant of
117
+ * the generated props union (`{ existing?: false } | { existing: true }`)
118
+ * and lives on `props`. Routing it through options too would allow
119
+ * contradictory settings between the two channels.
120
+ *
121
+ * `namingRules` is deliberately **not** an option either — it is
122
+ * per-resource-type metadata declared as a `protected static namingRules`
123
+ * field on each concrete `Resource` subclass and consumed by the base
124
+ * constructor reflectively, so it stays off the user-facing surface.
125
+ *
126
+ */
127
+ export interface ResourceOptions {
128
+ readonly condition?: ExpressionOrValue<boolean>;
129
+ readonly dependsOn?: readonly ResourceDeclaration[];
130
+ }
131
+ /**
132
+ * Shared base for resource declaration implementations.
133
+ *
134
+ * @remarks
135
+ *
136
+ * Both represent one Bicep resource declaration in the component tree and
137
+ * share the same declaration-level state layout: identity fields
138
+ * (`type`, `apiVersion`, `existing`), the `if(...)` guard (`condition`),
139
+ * the optional cross-scope reference (`scope`), and the raw prop bag that
140
+ * becomes the resource body.
141
+ *
142
+ * This class owns the common declaration state layout, raw-handle escape
143
+ * hatch, and identity accessors. Subclasses supply their construction and
144
+ * access behavior.
145
+ */
146
+ export declare abstract class ResourceDeclaration<TType extends string = string> extends ProvisioningComponent {
147
+ /**
148
+ * Brand marker for cross-realm `isResourceDeclaration()` checks. Uses
149
+ * `Symbol.for` so it survives multiple copies of `@azure/provisioning-core`.
150
+ * Inherited by every resource declaration implementation.
151
+ */
152
+ readonly [RESOURCE_DECLARATION_BRAND]: true;
153
+ protected state: ResourceState<TType> & Record<string, unknown>;
154
+ /**
155
+ * Base constructor for every Bicep resource declaration.
156
+ *
157
+ * @remarks
158
+ *
159
+ * Responsibilities:
160
+ * 1. Register in the component tree (`super(context)`).
161
+ * 2. Enforce a deployment context ancestor.
162
+ * 3. Unwrap `context` if it's an indexed proxy from `.at(i)` /
163
+ * `parent.at(loop.index)`, and stash `parentIndex` on `state` so the
164
+ * serializer can emit `parent: parentSym[index]` on the child.
165
+ * 4. Inherit `condition` from the immediate parent resource
166
+ * declaration when the caller doesn't supply one (Bicep requires
167
+ * children of a conditional resource to share the same guard).
168
+ * 5. Populate `state` — existing arm records only identity fields;
169
+ * deployable arm runs the naming policy and applies
170
+ * `DeploymentContext` defaults for `location` / `tags` per the
171
+ * shape descriptor.
172
+ *
173
+ * Subclasses supply the last mile, including their public handle behavior.
174
+ *
175
+ * @param namingRules - per-resource-type constraints for the naming
176
+ * policy. `Resource` reads this reflectively off the concrete subclass
177
+ * constructor; internal declaration implementations receive it from
178
+ * the concrete resource constructor they represent.
179
+ */
180
+ constructor(context: ProvisioningComponent, props: ResourceProps<TType> & Record<string, unknown>, options?: ResourceOptions, namingRules?: ResourceNamingRules);
181
+ /**
182
+ * Core-internal escape hatch: exposes the raw `state` backing object to
183
+ * the proxy layer (`resource-proxy.ts`) so it can read/unwrap the
184
+ * declaration's data across module boundaries. Keyed by the
185
+ * module-scoped {@link RAW_RESOURCE_HANDLE} symbol, which is **not**
186
+ * exported from `@azure/provisioning-core`, so package consumers can't name it.
187
+ *
188
+ * `protected` (not `private`) because the accessors that read it use
189
+ * `Reflect.get` / structural casts that bypass TS visibility anyway;
190
+ * the modifier just keeps it off the public type surface. It can't be a
191
+ * `#private` field because the proxy layer lives in a different class.
192
+ *
193
+ * @internal
194
+ */
195
+ protected get [RAW_RESOURCE_HANDLE](): ResourceState<TType> & Record<string, unknown>;
196
+ get type(): TType;
197
+ get apiVersion(): string;
198
+ get existing(): boolean | undefined;
199
+ get condition(): ExpressionOrValue<boolean> | undefined;
200
+ get dependsOn(): readonly ResourceDeclaration[] | undefined;
201
+ protected expr<TValue>(...path: readonly PropertySegment[]): Expression<TValue> & TValue;
202
+ protected setProperty(key: string, value: unknown): void;
203
+ }
204
+ /**
205
+ * Base class for all Azure resources.
206
+ *
207
+ * @remarks
208
+ * Resources are fully initialized at construction time. Pass a parent
209
+ * `ProvisioningComponent` (typically a `Stack` or `ResourceGroup`) as the first
210
+ * argument — the resource registers itself in the tree automatically.
211
+ *
212
+ * Properties use expression-backed proxies: reading `resource.name`
213
+ * returns an `Expression` that compiles to a Bicep symbolic reference,
214
+ * not a plain string. Use `this.expr()` in subclasses to create
215
+ * property getters and `this.setProperty()` for setters.
216
+ *
217
+ * @example
218
+ * ```typescript snippet:ignore
219
+ * import { ResourceGroup, Stack } from "@azure/provisioning-core";
220
+ * import { KeyVault } from "@azure/provisioning-keyvault";
221
+ *
222
+ * const stack = new Stack("my-app", { targetScope: "subscription" });
223
+ * const rg = new ResourceGroup(stack, { name: "rg-my-app", location: "eastus" });
224
+ * const vault = new KeyVault(rg, {
225
+ * name: "kv-my-app",
226
+ * properties: {
227
+ * tenantId: "11111111-1111-1111-1111-111111111111",
228
+ * sku: { family: "A", name: "standard" },
229
+ * },
230
+ * });
231
+ *
232
+ * // vault.name is an Expression, not a string
233
+ * // vault.id compiles to resourceId(...)
234
+ * ```
235
+ */
236
+ export declare class Resource<TType extends string = string> extends ResourceDeclaration<TType> {
237
+ /**
238
+ * Brand marker for cross-realm `isResource()` checks.
239
+ * Uses `Symbol.for` so it survives multiple copies of `@azure/provisioning-core`.
240
+ */
241
+ readonly [RESOURCE_BRAND]: true;
242
+ /**
243
+ * Register a {@link FlatModelShape} for this resource class's
244
+ * `(resourceType, apiVersion)` pair. Intended to be invoked from a
245
+ * `static {}` initializer in generated subclasses so the registration
246
+ * happens at module load.
247
+ *
248
+ * The static method reads `resourceType` and `apiVersion` off `this`
249
+ * (the subclass that called it), so callers don't repeat the literals.
250
+ */
251
+ static registerShape(this: {
252
+ readonly resourceType: string;
253
+ readonly apiVersion: string;
254
+ }, shape: FlatModelShape, variantSelector?: FlatVariantSelector): void;
255
+ /**
256
+ * Register this class with the global resource registry so the
257
+ * deserializer can reconstruct instances of it (instead of falling
258
+ * back to base `Resource`) for matching `(resourceType, apiVersion)`
259
+ * pairs. Intended to be invoked from a `static {}` initializer in
260
+ * generated classes alongside {@link Resource.registerShape}.
261
+ *
262
+ * Pass an ordered discriminator path for concrete resource variants. A
263
+ * singleton is one segment (`name=signin`); model-discriminated resources
264
+ * may use `kind` or several nested segments. Omit for ordinary resources.
265
+ */
266
+ protected static register(this: ResourceCtor, variantSelector?: FlatVariantSelector): void;
267
+ /**
268
+ * Assemble the base-`Resource` constructor payload (the second `super(...)`
269
+ * argument) from the user-facing props. This is a **static "virtual"**:
270
+ * it runs before an instance exists (to compute the `super` argument), so
271
+ * it can't be an instance method — but it still dispatches through the
272
+ * calling constructor, so a subclass's override wins.
273
+ *
274
+ * Every emitter-generated resource overrides this to inject its fixed
275
+ * identity (`type` / `apiVersion`), the singleton `name`, and its explicit
276
+ * writable-field copy. Both ordinary construction and internal resource
277
+ * reconstruction funnel through this method so prop shaping remains
278
+ * consistent.
279
+ *
280
+ * This base default is the fallback used when the wrapped constructor is
281
+ * base `Resource` itself — the deserialize path for an unregistered
282
+ * `(type, apiVersion)` pair, where `type` / `apiVersion` are threaded in
283
+ * through `props` rather than read off statics. Keeping the default here
284
+ * guarantees the method is always present for internal reconstruction.
285
+ */
286
+ protected static buildResourceProps(props?: unknown): ResourceProps<string> & Record<string, unknown>;
287
+ /**
288
+ * Per-resource-type naming constraints, consumed by the active
289
+ * {@link NamingPolicy} when a resource is created without an explicit
290
+ * `name`. Generated CDK subclasses override this with a concrete value;
291
+ * the base default of `undefined` yields `MOST_RESTRICTIVE` behavior.
292
+ *
293
+ * This is type metadata, not user input, so it is kept off the public
294
+ * props surface and read reflectively in the constructor via
295
+ * `this.constructor` rather than being threaded through `ResourceProps`.
296
+ */
297
+ protected static namingRules?: ResourceNamingRules;
298
+ protected _selfProxy: this | undefined;
299
+ constructor(context: ProvisioningComponent, props: ResourceProps<TType> & Record<string, unknown>, options?: ResourceOptions);
300
+ get self(): this;
301
+ /**
302
+ * The Azure resource name as a Bicep symbolic-reference expression.
303
+ *
304
+ * The value is established at construction time (either user-supplied
305
+ * via `props.name` or filled in by the naming policy) and stored on
306
+ * `state.name`. The setter routes through `setProperty` so post-
307
+ * construction edits flow through the same proxy/expression machinery
308
+ * as any other property — useful when working with a base `Resource`
309
+ * reference and re-binding the name dynamically. Singleton subclasses
310
+ * override this getter to narrow the return type to the literal
311
+ * `Expression<"<singletonName>">`; non-singleton subclasses inherit
312
+ * this accessor pair as-is.
313
+ */
314
+ get name(): Expression<string>;
315
+ set name(value: ExpressionOrValue<string>);
316
+ get id(): Expression<string>;
317
+ }
318
+ /**
319
+ * Metadata describing a Bicep `[for … in …]` loop and the concrete
320
+ * variable names used inside it. Stored publicly on {@link LoopedResource.loop}
321
+ * once a looped resource declaration has been created.
322
+ */
323
+ export interface LoopContext {
324
+ readonly collection: unknown;
325
+ readonly itemVariable: string;
326
+ readonly indexVariable?: string;
327
+ readonly batchSize?: number;
328
+ }
329
+ /**
330
+ * Options accepted by `new Loop(collection, options?)`. All fields are
331
+ * optional overrides; the constructor supplies defaults. Derived from
332
+ * {@link LoopContext} so there is exactly one source of truth for the
333
+ * shape of loop metadata.
334
+ */
335
+ export type LoopOptions = Partial<Omit<LoopContext, "collection">>;
336
+ /**
337
+ * Describes a Bicep `[for item in collection: ...]` loop as a plain data
338
+ * object. Construct one and pass it to
339
+ * `Ctor.fromLoop(loop, context, props, options?)` (e.g.
340
+ * `StorageAccount.fromLoop(...)`) to expand a resource declaration into a
341
+ * resource-copy loop.
342
+ *
343
+ * The item and index variable names default to `item` / `i`. Bicep
344
+ * for-expressions bind their loop variables only within their own body,
345
+ * so two sibling `[for item in xs: …]` / `[for item in ys: …]` in the
346
+ * same file do **not** collide — each `item` is scoped to its own
347
+ * expression. If you nest a `Loop` inside another loop's body (rare),
348
+ * pass `{ itemVariable, indexVariable }` explicitly on the inner one to
349
+ * disambiguate. `batchSize` on the loop renders as `@batchSize(n)` on
350
+ * the resource that consumes it.
351
+ *
352
+ * The `indexVariable` name is always materialized on read (never
353
+ * `undefined`), but whether the wire actually **records** it — and
354
+ * therefore whether the renderer emits the `[for (item, i) in …]` tuple
355
+ * binding — is decided by whether anyone accessed `loop.index` (or the
356
+ * caller supplied `{ indexVariable }` explicitly). A loop whose body
357
+ * never mentions an index emits a bare `[for item in xs: …]`.
358
+ *
359
+ * `Loop` instances are pure data — creating one has no side effect.
360
+ */
361
+ export declare class Loop<T> {
362
+ #private;
363
+ readonly collection: ExpressionOrValue<T[]>;
364
+ readonly itemVariable: string;
365
+ readonly item: Expression<T>;
366
+ readonly batchSize?: number;
367
+ constructor(collection: ExpressionOrValue<T[]>, options?: LoopOptions);
368
+ /**
369
+ * Name of the loop's index variable. Always defined — reading it
370
+ * materializes the default (`i`) if the caller neither passed
371
+ * `{ indexVariable }` nor accessed `.index` yet.
372
+ *
373
+ * Reading `.indexVariable` also marks the index as requested (same as
374
+ * reading `.index`), because a caller who wants the variable name is
375
+ * almost certainly going to use it. If the wire-omit optimization
376
+ * (bare `[for item in …]` with no index binding) matters, callers
377
+ * should gate on `.indexRequested` first before touching this getter.
378
+ */
379
+ get indexVariable(): string;
380
+ /**
381
+ * Expression referencing the current iteration's index. Reading this the
382
+ * first time marks the index as requested, which causes the wire to
383
+ * include `indexVariable` on the `for-expression` node and the renderer
384
+ * to emit `[for (item, i) in …]`. Callers who never touch `.index` get
385
+ * the cleaner index-less form.
386
+ */
387
+ get index(): Expression<number>;
388
+ /**
389
+ * Framework-internal signal used by `Resource.fromLoop` to decide
390
+ * whether the wire should include the index binding. `true` when the
391
+ * caller either supplied `{ indexVariable }` explicitly or has accessed
392
+ * `.index` / `.indexVariable` at least once. Not exported from
393
+ * `@azure/provisioning-core`.
394
+ *
395
+ * @internal
396
+ */
397
+ get indexRequested(): boolean;
398
+ }
399
+ /**
400
+ * A `LoopedResource<T>` represents a single Bicep resource declaration
401
+ * expanded across a loop (`[for x in xs: {...}]`). It is a real
402
+ * `ProvisioningComponent` in the tree — one node per emitted declaration — and
403
+ * exposes indexed access into individual iterations via
404
+ * {@link LoopedResource.at}.
405
+ *
406
+ * @remarks
407
+ *
408
+ * Property access on a `LoopedResource` is deliberately not exposed at
409
+ * the type level: pick an index (`at`) to obtain a proxy that emits
410
+ * `sym[i].prop`. This mirrors Bicep's requirement that individual
411
+ * iterations be accessed by index.
412
+ *
413
+ * `.at(i)` returns the concrete resource type `T`. The returned proxy
414
+ * exposes the essential ARM surface — the property getters/setters that
415
+ * funnel through `this.expr(...)` (`.id`, `.name`, `.sku`,
416
+ * `.properties.*`, …) rooted at `sym[i]` — as well as the child
417
+ * accessors (`keyVault.secrets`, singleton getter/setters), which are
418
+ * derived from the parent's `children` scoped to element `i`. To attach
419
+ * per-iteration children, parent them to `parent.at(loop.index)` — e.g.
420
+ * `Child.fromLoop(loop, parent.at(loop.index), ...)`.
421
+ *
422
+ * Projection over the loop (Bicep `map(sym, x => body)`) is tracked as
423
+ * a follow-up effort — see the "lambda + fn.map" issue.
424
+ */
425
+ export declare class LoopedResource<T extends Resource = Resource> extends ResourceDeclaration<T["type"]> {
426
+ #private;
427
+ /**
428
+ * Cross-realm brand — same technique as the scalar `RESOURCE_BRAND`.
429
+ * Use {@link isLoopedResource} instead of `instanceof`
430
+ * when multiple copies of `@azure/provisioning-core` may be loaded.
431
+ */
432
+ readonly [LOOPED_RESOURCE_BRAND]: true;
433
+ /** Metadata describing the loop that produced this declaration. */
434
+ readonly loop: LoopContext;
435
+ private constructor();
436
+ /**
437
+ * The concrete `Resource` subclass this looped declaration wraps.
438
+ * Used by query machinery to answer "which subclass is this looped
439
+ * resource" — the analogue of `instanceof T` for `LoopedResource<T>`.
440
+ *
441
+ * This is always the full subclass the user constructed via
442
+ * `Xxx.fromLoop(...)` — query identity matches on that class, and it is
443
+ * the prototype the `.at(i)` proxy uses to resolve ARM accessors.
444
+ */
445
+ get wrappedCtor(): new (context: ProvisioningComponent, props: unknown, options?: ResourceOptions) => T;
446
+ /**
447
+ * Reference the element at `index`. Emits `sym[index].<...>` for
448
+ * subsequent property access.
449
+ *
450
+ * Returns the concrete resource type `T`. At runtime an indexed proxy is
451
+ * spliced over the full class prototype (`#wrappedCtor.prototype`):
452
+ * prototype getters that funnel through `this.expr(...)` (`.id`, `.name`,
453
+ * `.properties.*`, …) resolve rooted at `sym[index]`. A child created with
454
+ * `parent.at(i)` is stamped with that index for serialization.
455
+ */
456
+ at(index: ExpressionOrValue<number>): T;
457
+ }
458
+ /** @internal */
459
+ export declare function createLoopedResource<T extends Resource, C extends ProvisioningComponent, P, Item>(wrappedCtor: new (context: C, props: P, options?: ResourceOptions) => T, loop: Loop<Item>, context: C, ...rest: undefined extends P ? [props?: P, options?: ResourceOptions] : [props: P, options?: ResourceOptions]): LoopedResource<T>;
460
+ //# sourceMappingURL=resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../../../../src/constructs/resource/resource.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,iBAAiB,EACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAExE,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,0BAA0B,EAC1B,qBAAqB,EAStB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAMvE;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;AAElD;;;GAGG;AACH,MAAM,WAAW,aAAa,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM;IAC1D,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACxC;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAC5C,QAAQ,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;CAC7D;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,qBAAqB;IACpC,gEAAgE;IAChE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAEzC;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,MAAM,8BAA8B,GAAG,IAAI,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAEjF;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa,CAAC,KAAK,SAAS,MAAM;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IAErB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAE5B;;;;OAIG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,SAAS,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAChD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACrD;AAED;;;;;;;;;;;;;;GAcG;AACH,8BAAsB,mBAAmB,CACvC,KAAK,SAAS,MAAM,GAAG,MAAM,CAC7B,SAAQ,qBAAqB;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,CAAC,0BAA0B,CAAC,EAAG,IAAI,CAAU;IAMtD,SAAS,CAAC,KAAK,EAAG,aAAa,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjE;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;gBAED,OAAO,EAAE,qBAAqB,EAC9B,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrD,OAAO,CAAC,EAAE,eAAe,EACzB,WAAW,CAAC,EAAE,mBAAmB;IA6InC;;;;;;;;;;;;;OAaG;IACH,SAAS,KAAK,CAAC,mBAAmB,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEpF;IAED,IAAI,IAAI,IAAI,KAAK,CAEhB;IAED,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,IAAI,QAAQ,IAAI,OAAO,GAAG,SAAS,CAElC;IAED,IAAI,SAAS,IAAI,iBAAiB,CAAC,OAAO,CAAC,GAAG,SAAS,CAEtD;IAED,IAAI,SAAS,IAAI,SAAS,mBAAmB,EAAE,GAAG,SAAS,CAE1D;IAED,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,EAAE,SAAS,eAAe,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,MAAM;IAaxF,SAAS,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;CAGzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,QAAQ,CAAC,KAAK,SAAS,MAAM,GAAG,MAAM,CAAE,SAAQ,mBAAmB,CAAC,KAAK,CAAC;IACrF;;;OAGG;IACH,QAAQ,CAAC,CAAC,cAAc,CAAC,EAAG,IAAI,CAAU;IAE1C;;;;;;;;OAQG;IACH,MAAM,CAAC,aAAa,CAClB,IAAI,EAAE;QAAE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;KAAE,EACpE,KAAK,EAAE,cAAc,EACrB,eAAe,CAAC,EAAE,mBAAmB,GACpC,IAAI;IAIP;;;;;;;;;;OAUG;IACH,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,eAAe,CAAC,EAAE,mBAAmB,GAAG,IAAI;IAI1F;;;;;;;;;;;;;;;;;;OAkBG;IACH,SAAS,CAAC,MAAM,CAAC,kBAAkB,CACjC,KAAK,CAAC,EAAE,OAAO,GACd,aAAa,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAalD;;;;;;;;;OASG;IACH,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAEnD,SAAS,CAAC,UAAU,EAAE,IAAI,GAAG,SAAS,CAAC;gBAGrC,OAAO,EAAE,qBAAqB,EAC9B,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrD,OAAO,CAAC,EAAE,eAAe;IA+B3B,IAAa,IAAI,IAAI,IAAI,CAExB;IAED;;;;;;;;;;;;OAYG;IACH,IAAI,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,CAE7B;IACD,IAAI,IAAI,CAAC,KAAK,EAAE,iBAAiB,CAAC,MAAM,CAAC,EAExC;IAED,IAAI,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,CAE3B;CACF;AAMD;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,IAAI,CAAC,CAAC;;IACjB,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;gBAShB,UAAU,EAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW;IAmBrE;;;;;;;;;;OAUG;IACH,IAAI,aAAa,IAAI,MAAM,CAM1B;IAED;;;;;;OAMG;IACH,IAAI,KAAK,IAAI,UAAU,CAAC,MAAM,CAAC,CAO9B;IAED;;;;;;;;OAQG;IACH,IAAI,cAAc,IAAI,OAAO,CAE5B;CACF;AAQD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,cAAc,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,CAAE,SAAQ,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;;IAC/F;;;;OAIG;IACH,QAAQ,CAAC,CAAC,qBAAqB,CAAC,EAAG,IAAI,CAAU;IAEjD,mEAAmE;IACnE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAQ3B,OAAO;IAmDP;;;;;;;;OAQG;IACH,IAAI,WAAW,IAAI,KACjB,OAAO,EAAE,qBAAqB,EAC9B,KAAK,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,eAAe,KACtB,CAAC,CAEL;IAED;;;;;;;;;OASG;IACH,EAAE,CAAC,KAAK,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC;CAOxC;AAED,gBAAgB;AAChB,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,SAAS,qBAAqB,EAAE,CAAC,EAAE,IAAI,EAC/F,WAAW,EAAE,KAAK,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,KAAK,CAAC,EACvE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAChB,OAAO,EAAE,CAAC,EACV,GAAG,IAAI,EAAE,SAAS,SAAS,CAAC,GACxB,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,GACtC,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,GACxC,cAAc,CAAC,CAAC,CAAC,CA0BnB"}