@microsoft/terraform-cdk-constructs 1.0.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (577) hide show
  1. package/.jsii +89270 -15866
  2. package/API.md +103201 -10557
  3. package/README.md +72 -36
  4. package/docs/monitoring-guide.md +206 -0
  5. package/docs/testing.md +84 -1
  6. package/lib/azure-actiongroup/index.d.ts +1 -0
  7. package/lib/azure-actiongroup/index.js +18 -0
  8. package/lib/azure-actiongroup/lib/action-group-schemas.d.ts +24 -0
  9. package/lib/azure-actiongroup/lib/action-group-schemas.js +201 -0
  10. package/lib/azure-actiongroup/lib/action-group.d.ts +302 -0
  11. package/lib/azure-actiongroup/lib/action-group.js +175 -0
  12. package/lib/azure-actiongroup/lib/index.d.ts +2 -0
  13. package/lib/azure-actiongroup/lib/index.js +19 -0
  14. package/lib/azure-actiongroup/test/action-group.integ.d.ts +9 -0
  15. package/lib/azure-actiongroup/test/action-group.integ.js +79 -0
  16. package/lib/azure-actiongroup/test/action-group.spec.d.ts +8 -0
  17. package/lib/azure-actiongroup/test/action-group.spec.js +602 -0
  18. package/lib/azure-activitylogalert/index.d.ts +1 -0
  19. package/lib/azure-activitylogalert/index.js +18 -0
  20. package/lib/azure-activitylogalert/lib/activity-log-alert-schemas.d.ts +24 -0
  21. package/lib/azure-activitylogalert/lib/activity-log-alert-schemas.js +182 -0
  22. package/lib/azure-activitylogalert/lib/activity-log-alert.d.ts +226 -0
  23. package/lib/azure-activitylogalert/lib/activity-log-alert.js +186 -0
  24. package/lib/azure-activitylogalert/lib/index.d.ts +2 -0
  25. package/lib/azure-activitylogalert/lib/index.js +19 -0
  26. package/lib/azure-activitylogalert/test/activity-log-alert.integ.d.ts +9 -0
  27. package/lib/azure-activitylogalert/test/activity-log-alert.integ.js +98 -0
  28. package/lib/azure-activitylogalert/test/activity-log-alert.spec.d.ts +9 -0
  29. package/lib/azure-activitylogalert/test/activity-log-alert.spec.js +1101 -0
  30. package/lib/azure-aks/index.d.ts +1 -0
  31. package/lib/azure-aks/index.js +18 -0
  32. package/lib/azure-aks/lib/aks-cluster-schemas.d.ts +505 -0
  33. package/lib/azure-aks/lib/aks-cluster-schemas.js +572 -0
  34. package/lib/azure-aks/lib/aks-cluster.d.ts +386 -0
  35. package/lib/azure-aks/lib/aks-cluster.js +466 -0
  36. package/lib/azure-aks/lib/index.d.ts +2 -0
  37. package/lib/azure-aks/lib/index.js +19 -0
  38. package/lib/azure-aks/test/aks-cluster.integ.d.ts +9 -0
  39. package/lib/azure-aks/test/aks-cluster.integ.js +260 -0
  40. package/lib/azure-aks/test/aks-cluster.spec.d.ts +8 -0
  41. package/lib/azure-aks/test/aks-cluster.spec.js +1396 -0
  42. package/lib/azure-diagnosticsettings/index.d.ts +1 -0
  43. package/lib/azure-diagnosticsettings/index.js +18 -0
  44. package/lib/azure-diagnosticsettings/lib/diagnostic-settings-schemas.d.ts +50 -0
  45. package/lib/azure-diagnosticsettings/lib/diagnostic-settings-schemas.js +207 -0
  46. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.d.ts +183 -0
  47. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +174 -0
  48. package/lib/azure-diagnosticsettings/lib/index.d.ts +2 -0
  49. package/lib/azure-diagnosticsettings/lib/index.js +19 -0
  50. package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.d.ts +8 -0
  51. package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.js +432 -0
  52. package/lib/azure-dnsforwardingruleset/index.d.ts +1 -0
  53. package/lib/azure-dnsforwardingruleset/index.js +18 -0
  54. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset-schemas.d.ts +24 -0
  55. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset-schemas.js +206 -0
  56. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.d.ts +174 -0
  57. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +214 -0
  58. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule-schemas.d.ts +24 -0
  59. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule-schemas.js +242 -0
  60. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.d.ts +193 -0
  61. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +193 -0
  62. package/lib/azure-dnsforwardingruleset/lib/index.d.ts +6 -0
  63. package/lib/azure-dnsforwardingruleset/lib/index.js +23 -0
  64. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link-schemas.d.ts +24 -0
  65. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link-schemas.js +199 -0
  66. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.d.ts +160 -0
  67. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +178 -0
  68. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.d.ts +9 -0
  69. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.js +133 -0
  70. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.spec.d.ts +9 -0
  71. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.spec.js +350 -0
  72. package/lib/azure-dnsforwardingruleset/test/forwarding-rule.spec.d.ts +9 -0
  73. package/lib/azure-dnsforwardingruleset/test/forwarding-rule.spec.js +397 -0
  74. package/lib/azure-dnsforwardingruleset/test/virtual-network-link.spec.d.ts +9 -0
  75. package/lib/azure-dnsforwardingruleset/test/virtual-network-link.spec.js +285 -0
  76. package/lib/azure-dnsresolver/index.d.ts +1 -0
  77. package/lib/azure-dnsresolver/index.js +18 -0
  78. package/lib/azure-dnsresolver/lib/dns-resolver-schemas.d.ts +24 -0
  79. package/lib/azure-dnsresolver/lib/dns-resolver-schemas.js +218 -0
  80. package/lib/azure-dnsresolver/lib/dns-resolver.d.ts +170 -0
  81. package/lib/azure-dnsresolver/lib/dns-resolver.js +236 -0
  82. package/lib/azure-dnsresolver/lib/inbound-endpoint-schemas.d.ts +24 -0
  83. package/lib/azure-dnsresolver/lib/inbound-endpoint-schemas.js +261 -0
  84. package/lib/azure-dnsresolver/lib/inbound-endpoint.d.ts +189 -0
  85. package/lib/azure-dnsresolver/lib/inbound-endpoint.js +243 -0
  86. package/lib/azure-dnsresolver/lib/index.d.ts +6 -0
  87. package/lib/azure-dnsresolver/lib/index.js +23 -0
  88. package/lib/azure-dnsresolver/lib/outbound-endpoint-schemas.d.ts +24 -0
  89. package/lib/azure-dnsresolver/lib/outbound-endpoint-schemas.js +231 -0
  90. package/lib/azure-dnsresolver/lib/outbound-endpoint.d.ts +175 -0
  91. package/lib/azure-dnsresolver/lib/outbound-endpoint.js +234 -0
  92. package/lib/azure-dnsresolver/test/dns-resolver.integ.d.ts +14 -0
  93. package/lib/azure-dnsresolver/test/dns-resolver.integ.js +117 -0
  94. package/lib/azure-dnsresolver/test/dns-resolver.spec.d.ts +9 -0
  95. package/lib/azure-dnsresolver/test/dns-resolver.spec.js +353 -0
  96. package/lib/azure-dnsresolver/test/inbound-endpoint.integ.d.ts +9 -0
  97. package/lib/azure-dnsresolver/test/inbound-endpoint.integ.js +151 -0
  98. package/lib/azure-dnsresolver/test/inbound-endpoint.spec.d.ts +9 -0
  99. package/lib/azure-dnsresolver/test/inbound-endpoint.spec.js +441 -0
  100. package/lib/azure-dnsresolver/test/outbound-endpoint.integ.d.ts +9 -0
  101. package/lib/azure-dnsresolver/test/outbound-endpoint.integ.js +149 -0
  102. package/lib/azure-dnsresolver/test/outbound-endpoint.spec.d.ts +9 -0
  103. package/lib/azure-dnsresolver/test/outbound-endpoint.spec.js +301 -0
  104. package/lib/azure-dnszone/index.d.ts +1 -0
  105. package/lib/azure-dnszone/index.js +18 -0
  106. package/lib/azure-dnszone/lib/dns-zone-schemas.d.ts +24 -0
  107. package/lib/azure-dnszone/lib/dns-zone-schemas.js +191 -0
  108. package/lib/azure-dnszone/lib/dns-zone.d.ts +182 -0
  109. package/lib/azure-dnszone/lib/dns-zone.js +228 -0
  110. package/lib/azure-dnszone/lib/index.d.ts +2 -0
  111. package/lib/azure-dnszone/lib/index.js +19 -0
  112. package/lib/azure-dnszone/test/dns-zone.integ.d.ts +9 -0
  113. package/lib/azure-dnszone/test/dns-zone.integ.js +85 -0
  114. package/lib/azure-dnszone/test/dns-zone.spec.d.ts +9 -0
  115. package/lib/azure-dnszone/test/dns-zone.spec.js +285 -0
  116. package/lib/azure-metricalert/index.d.ts +1 -0
  117. package/lib/azure-metricalert/index.js +18 -0
  118. package/lib/azure-metricalert/lib/index.d.ts +2 -0
  119. package/lib/azure-metricalert/lib/index.js +19 -0
  120. package/lib/azure-metricalert/lib/metric-alert-schemas.d.ts +24 -0
  121. package/lib/azure-metricalert/lib/metric-alert-schemas.js +242 -0
  122. package/lib/azure-metricalert/lib/metric-alert.d.ts +334 -0
  123. package/lib/azure-metricalert/lib/metric-alert.js +226 -0
  124. package/lib/azure-metricalert/test/metric-alert.integ.d.ts +9 -0
  125. package/lib/azure-metricalert/test/metric-alert.integ.js +123 -0
  126. package/lib/azure-metricalert/test/metric-alert.spec.d.ts +9 -0
  127. package/lib/azure-metricalert/test/metric-alert.spec.js +1266 -0
  128. package/lib/azure-networkinterface/index.d.ts +1 -0
  129. package/lib/azure-networkinterface/index.js +18 -0
  130. package/lib/azure-networkinterface/lib/index.d.ts +2 -0
  131. package/lib/azure-networkinterface/lib/index.js +19 -0
  132. package/lib/azure-networkinterface/lib/network-interface-schemas.d.ts +32 -0
  133. package/lib/azure-networkinterface/lib/network-interface-schemas.js +222 -0
  134. package/lib/azure-networkinterface/lib/network-interface.d.ts +260 -0
  135. package/lib/azure-networkinterface/lib/network-interface.js +213 -0
  136. package/lib/azure-networkinterface/test/network-interface.integ.d.ts +9 -0
  137. package/lib/azure-networkinterface/test/network-interface.integ.js +116 -0
  138. package/lib/azure-networkinterface/test/network-interface.spec.d.ts +8 -0
  139. package/lib/azure-networkinterface/test/network-interface.spec.js +655 -0
  140. package/lib/azure-networksecuritygroup/index.d.ts +1 -0
  141. package/lib/azure-networksecuritygroup/index.js +18 -0
  142. package/lib/azure-networksecuritygroup/lib/index.d.ts +2 -0
  143. package/lib/azure-networksecuritygroup/lib/index.js +19 -0
  144. package/lib/azure-networksecuritygroup/lib/network-security-group-schemas.d.ts +32 -0
  145. package/lib/azure-networksecuritygroup/lib/network-security-group-schemas.js +198 -0
  146. package/lib/azure-networksecuritygroup/lib/network-security-group.d.ts +259 -0
  147. package/lib/azure-networksecuritygroup/lib/network-security-group.js +226 -0
  148. package/lib/azure-networksecuritygroup/test/network-security-group.integ.d.ts +9 -0
  149. package/lib/azure-networksecuritygroup/test/network-security-group.integ.js +151 -0
  150. package/lib/azure-networksecuritygroup/test/network-security-group.spec.d.ts +8 -0
  151. package/lib/azure-networksecuritygroup/test/network-security-group.spec.js +652 -0
  152. package/lib/azure-policyassignment/index.d.ts +1 -0
  153. package/lib/azure-policyassignment/index.js +18 -0
  154. package/lib/azure-policyassignment/lib/index.d.ts +2 -0
  155. package/lib/azure-policyassignment/lib/index.js +19 -0
  156. package/lib/azure-policyassignment/lib/policy-assignment-schemas.d.ts +25 -0
  157. package/lib/azure-policyassignment/lib/policy-assignment-schemas.js +260 -0
  158. package/lib/azure-policyassignment/lib/policy-assignment.d.ts +342 -0
  159. package/lib/azure-policyassignment/lib/policy-assignment.js +228 -0
  160. package/lib/azure-policyassignment/test/policy-assignment.integ.d.ts +13 -0
  161. package/lib/azure-policyassignment/test/policy-assignment.integ.js +153 -0
  162. package/lib/azure-policyassignment/test/policy-assignment.spec.d.ts +9 -0
  163. package/lib/azure-policyassignment/test/policy-assignment.spec.js +651 -0
  164. package/lib/azure-policydefinition/index.d.ts +1 -0
  165. package/lib/azure-policydefinition/index.js +18 -0
  166. package/lib/azure-policydefinition/lib/index.d.ts +2 -0
  167. package/lib/azure-policydefinition/lib/index.js +19 -0
  168. package/lib/azure-policydefinition/lib/policy-definition-schemas.d.ts +25 -0
  169. package/lib/azure-policydefinition/lib/policy-definition-schemas.js +210 -0
  170. package/lib/azure-policydefinition/lib/policy-definition.d.ts +260 -0
  171. package/lib/azure-policydefinition/lib/policy-definition.js +199 -0
  172. package/lib/azure-policydefinition/test/policy-definition.integ.d.ts +9 -0
  173. package/lib/azure-policydefinition/test/policy-definition.integ.js +137 -0
  174. package/lib/azure-policydefinition/test/policy-definition.spec.d.ts +9 -0
  175. package/lib/azure-policydefinition/test/policy-definition.spec.js +596 -0
  176. package/lib/azure-privatednszone/index.d.ts +1 -0
  177. package/lib/azure-privatednszone/index.js +18 -0
  178. package/lib/azure-privatednszone/lib/index.d.ts +2 -0
  179. package/lib/azure-privatednszone/lib/index.js +19 -0
  180. package/lib/azure-privatednszone/lib/private-dns-zone-schemas.d.ts +24 -0
  181. package/lib/azure-privatednszone/lib/private-dns-zone-schemas.js +254 -0
  182. package/lib/azure-privatednszone/lib/private-dns-zone.d.ts +178 -0
  183. package/lib/azure-privatednszone/lib/private-dns-zone.js +272 -0
  184. package/lib/azure-privatednszone/test/private-dns-zone.integ.d.ts +9 -0
  185. package/lib/azure-privatednszone/test/private-dns-zone.integ.js +84 -0
  186. package/lib/azure-privatednszone/test/private-dns-zone.spec.d.ts +9 -0
  187. package/lib/azure-privatednszone/test/private-dns-zone.spec.js +341 -0
  188. package/lib/azure-privatednszonelink/index.d.ts +1 -0
  189. package/lib/azure-privatednszonelink/index.js +18 -0
  190. package/lib/azure-privatednszonelink/lib/index.d.ts +2 -0
  191. package/lib/azure-privatednszonelink/lib/index.js +19 -0
  192. package/lib/azure-privatednszonelink/lib/private-dns-zone-link-schemas.d.ts +24 -0
  193. package/lib/azure-privatednszonelink/lib/private-dns-zone-link-schemas.js +262 -0
  194. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.d.ts +202 -0
  195. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +250 -0
  196. package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.d.ts +9 -0
  197. package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.js +110 -0
  198. package/lib/azure-privatednszonelink/test/private-dns-zone-link.spec.d.ts +9 -0
  199. package/lib/azure-privatednszonelink/test/private-dns-zone-link.spec.js +465 -0
  200. package/lib/azure-publicipaddress/index.d.ts +1 -0
  201. package/lib/azure-publicipaddress/index.js +18 -0
  202. package/lib/azure-publicipaddress/lib/index.d.ts +2 -0
  203. package/lib/azure-publicipaddress/lib/index.js +19 -0
  204. package/lib/azure-publicipaddress/lib/public-ip-address-schemas.d.ts +32 -0
  205. package/lib/azure-publicipaddress/lib/public-ip-address-schemas.js +227 -0
  206. package/lib/azure-publicipaddress/lib/public-ip-address.d.ts +247 -0
  207. package/lib/azure-publicipaddress/lib/public-ip-address.js +245 -0
  208. package/lib/azure-publicipaddress/test/public-ip-address.integ.d.ts +9 -0
  209. package/lib/azure-publicipaddress/test/public-ip-address.integ.js +75 -0
  210. package/lib/azure-publicipaddress/test/public-ip-address.spec.d.ts +15 -0
  211. package/lib/azure-publicipaddress/test/public-ip-address.spec.js +498 -0
  212. package/lib/azure-resourcegroup/index.d.ts +0 -37
  213. package/lib/azure-resourcegroup/index.js +1 -39
  214. package/lib/azure-resourcegroup/lib/index.d.ts +1 -44
  215. package/lib/azure-resourcegroup/lib/index.js +2 -43
  216. package/lib/azure-resourcegroup/lib/resource-group.d.ts +9 -23
  217. package/lib/azure-resourcegroup/lib/resource-group.js +23 -56
  218. package/lib/azure-resourcegroup/test/resource-group.integ.js +23 -11
  219. package/lib/azure-resourcegroup/test/resource-group.spec.js +13 -19
  220. package/lib/azure-roleassignment/index.d.ts +1 -0
  221. package/lib/azure-roleassignment/index.js +18 -0
  222. package/lib/azure-roleassignment/lib/index.d.ts +2 -0
  223. package/lib/azure-roleassignment/lib/index.js +19 -0
  224. package/lib/azure-roleassignment/lib/role-assignment-schemas.d.ts +25 -0
  225. package/lib/azure-roleassignment/lib/role-assignment-schemas.js +238 -0
  226. package/lib/azure-roleassignment/lib/role-assignment.d.ts +294 -0
  227. package/lib/azure-roleassignment/lib/role-assignment.js +257 -0
  228. package/lib/azure-roleassignment/test/role-assignment.integ.d.ts +12 -0
  229. package/lib/azure-roleassignment/test/role-assignment.integ.js +101 -0
  230. package/lib/azure-roleassignment/test/role-assignment.spec.d.ts +9 -0
  231. package/lib/azure-roleassignment/test/role-assignment.spec.js +633 -0
  232. package/lib/azure-roledefinition/index.d.ts +1 -0
  233. package/lib/azure-roledefinition/index.js +18 -0
  234. package/lib/azure-roledefinition/lib/index.d.ts +2 -0
  235. package/lib/azure-roledefinition/lib/index.js +19 -0
  236. package/lib/azure-roledefinition/lib/role-definition-schemas.d.ts +25 -0
  237. package/lib/azure-roledefinition/lib/role-definition-schemas.js +195 -0
  238. package/lib/azure-roledefinition/lib/role-definition.d.ts +236 -0
  239. package/lib/azure-roledefinition/lib/role-definition.js +192 -0
  240. package/lib/azure-roledefinition/test/role-definition.integ.d.ts +12 -0
  241. package/lib/azure-roledefinition/test/role-definition.integ.js +142 -0
  242. package/lib/azure-roledefinition/test/role-definition.spec.d.ts +9 -0
  243. package/lib/azure-roledefinition/test/role-definition.spec.js +946 -0
  244. package/lib/azure-storageaccount/index.d.ts +0 -19
  245. package/lib/azure-storageaccount/index.js +1 -20
  246. package/lib/azure-storageaccount/lib/index.d.ts +1 -7
  247. package/lib/azure-storageaccount/lib/index.js +2 -8
  248. package/lib/azure-storageaccount/lib/storage-account-schemas.d.ts +98 -0
  249. package/lib/azure-storageaccount/lib/storage-account-schemas.js +1 -1
  250. package/lib/azure-storageaccount/lib/storage-account.d.ts +40 -8
  251. package/lib/azure-storageaccount/lib/storage-account.js +145 -23
  252. package/lib/azure-storageaccount/test/storage-account.integ.js +91 -12
  253. package/lib/azure-subnet/index.d.ts +1 -0
  254. package/lib/azure-subnet/index.js +18 -0
  255. package/lib/azure-subnet/lib/index.d.ts +2 -0
  256. package/lib/azure-subnet/lib/index.js +19 -0
  257. package/lib/azure-subnet/lib/subnet-schemas.d.ts +32 -0
  258. package/lib/azure-subnet/lib/subnet-schemas.js +237 -0
  259. package/lib/azure-subnet/lib/subnet.d.ts +274 -0
  260. package/lib/azure-subnet/lib/subnet.js +235 -0
  261. package/lib/azure-subnet/test/subnet.integ.d.ts +11 -0
  262. package/lib/azure-subnet/test/subnet.integ.js +92 -0
  263. package/lib/azure-subnet/test/subnet.spec.d.ts +8 -0
  264. package/lib/azure-subnet/test/subnet.spec.js +395 -0
  265. package/lib/azure-virtualmachine/index.d.ts +1 -0
  266. package/lib/azure-virtualmachine/index.js +18 -0
  267. package/lib/azure-virtualmachine/lib/index.d.ts +2 -0
  268. package/lib/azure-virtualmachine/lib/index.js +19 -0
  269. package/lib/azure-virtualmachine/lib/virtual-machine-schemas.d.ts +327 -0
  270. package/lib/azure-virtualmachine/lib/virtual-machine-schemas.js +544 -0
  271. package/lib/azure-virtualmachine/lib/virtual-machine.d.ts +368 -0
  272. package/lib/azure-virtualmachine/lib/virtual-machine.js +441 -0
  273. package/lib/azure-virtualmachine/test/virtual-machine.integ.d.ts +9 -0
  274. package/lib/azure-virtualmachine/test/virtual-machine.integ.js +220 -0
  275. package/lib/azure-virtualmachine/test/virtual-machine.spec.d.ts +9 -0
  276. package/lib/azure-virtualmachine/test/virtual-machine.spec.js +1032 -0
  277. package/lib/azure-virtualnetwork/index.d.ts +1 -0
  278. package/lib/azure-virtualnetwork/index.js +18 -0
  279. package/lib/azure-virtualnetwork/lib/index.d.ts +2 -0
  280. package/lib/azure-virtualnetwork/lib/index.js +19 -0
  281. package/lib/azure-virtualnetwork/lib/virtual-network-schemas.d.ts +32 -0
  282. package/lib/azure-virtualnetwork/lib/virtual-network-schemas.js +236 -0
  283. package/lib/azure-virtualnetwork/lib/virtual-network.d.ts +204 -0
  284. package/lib/azure-virtualnetwork/lib/virtual-network.js +224 -0
  285. package/lib/azure-virtualnetwork/test/virtual-network.integ.d.ts +9 -0
  286. package/lib/azure-virtualnetwork/test/virtual-network.integ.js +91 -0
  287. package/lib/azure-virtualnetwork/test/virtual-network.spec.d.ts +8 -0
  288. package/lib/azure-virtualnetwork/test/virtual-network.spec.js +398 -0
  289. package/lib/azure-virtualnetworkmanager/index.d.ts +1 -0
  290. package/lib/azure-virtualnetworkmanager/index.js +18 -0
  291. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration-schemas.d.ts +48 -0
  292. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration-schemas.js +265 -0
  293. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.d.ts +185 -0
  294. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +206 -0
  295. package/lib/azure-virtualnetworkmanager/lib/index.d.ts +14 -0
  296. package/lib/azure-virtualnetworkmanager/lib/index.js +31 -0
  297. package/lib/azure-virtualnetworkmanager/lib/network-group-schemas.d.ts +32 -0
  298. package/lib/azure-virtualnetworkmanager/lib/network-group-schemas.js +189 -0
  299. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member-schemas.d.ts +32 -0
  300. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member-schemas.js +201 -0
  301. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.d.ts +135 -0
  302. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +163 -0
  303. package/lib/azure-virtualnetworkmanager/lib/network-group.d.ts +139 -0
  304. package/lib/azure-virtualnetworkmanager/lib/network-group.js +158 -0
  305. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration-schemas.d.ts +32 -0
  306. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration-schemas.js +182 -0
  307. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.d.ts +144 -0
  308. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +164 -0
  309. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection-schemas.d.ts +38 -0
  310. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection-schemas.js +206 -0
  311. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.d.ts +142 -0
  312. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +162 -0
  313. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-schemas.d.ts +39 -0
  314. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-schemas.js +359 -0
  315. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.d.ts +221 -0
  316. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +204 -0
  317. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager-schemas.d.ts +32 -0
  318. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager-schemas.js +236 -0
  319. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.d.ts +337 -0
  320. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +283 -0
  321. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.d.ts +25 -0
  322. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.js +402 -0
  323. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.spec.d.ts +9 -0
  324. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.spec.js +1652 -0
  325. package/lib/azure-vmss/index.d.ts +1 -0
  326. package/lib/azure-vmss/index.js +18 -0
  327. package/lib/azure-vmss/lib/index.d.ts +2 -0
  328. package/lib/azure-vmss/lib/index.js +19 -0
  329. package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +250 -0
  330. package/lib/azure-vmss/lib/virtual-machine-scale-set.js +479 -0
  331. package/lib/azure-vmss/lib/vmss-schemas.d.ts +472 -0
  332. package/lib/azure-vmss/lib/vmss-schemas.js +444 -0
  333. package/lib/azure-vmss/test/virtual-machine-scale-set.integ.d.ts +15 -0
  334. package/lib/azure-vmss/test/virtual-machine-scale-set.integ.js +261 -0
  335. package/lib/azure-vmss/test/virtual-machine-scale-set.spec.d.ts +8 -0
  336. package/lib/azure-vmss/test/virtual-machine-scale-set.spec.js +997 -0
  337. package/lib/core-azure/lib/azapi/azapi-resource-tags.spec.d.ts +10 -0
  338. package/lib/core-azure/lib/azapi/azapi-resource-tags.spec.js +218 -0
  339. package/lib/core-azure/lib/azapi/azapi-resource.d.ts +268 -48
  340. package/lib/core-azure/lib/azapi/azapi-resource.js +411 -136
  341. package/lib/core-azure/lib/azapi/azapi-resource.spec.js +2 -2
  342. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.d.ts +33 -21
  343. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +69 -27
  344. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.d.ts +134 -120
  345. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +209 -59
  346. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.d.ts +141 -128
  347. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.js +183 -36
  348. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.d.ts +55 -43
  349. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.js +94 -26
  350. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.d.ts +129 -116
  351. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.js +155 -32
  352. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.d.ts +187 -174
  353. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.js +267 -48
  354. package/lib/core-azure/lib/azapi/providers-azapi/index.d.ts +10 -10
  355. package/lib/core-azure/lib/azapi/providers-azapi/index.js +1 -1
  356. package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.d.ts +0 -0
  357. package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.js +13 -0
  358. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.d.ts +174 -162
  359. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +278 -16
  360. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.d.ts +239 -225
  361. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +360 -76
  362. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.d.ts +163 -150
  363. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +221 -46
  364. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.d.ts +162 -149
  365. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +249 -50
  366. package/lib/core-azure/lib/azapi/resource-schema-validator.d.ts +118 -0
  367. package/lib/core-azure/lib/azapi/resource-schema-validator.js +236 -0
  368. package/lib/core-azure/lib/azapi/resource-version-manager.d.ts +103 -0
  369. package/lib/core-azure/lib/azapi/resource-version-manager.js +168 -0
  370. package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +13 -6
  371. package/lib/core-azure/lib/index.d.ts +2 -2
  372. package/lib/core-azure/lib/index.js +5 -5
  373. package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
  374. package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
  375. package/lib/index.d.ts +56 -0
  376. package/lib/index.js +59 -2
  377. package/lib/testing/index.d.ts +92 -2
  378. package/lib/testing/index.js +258 -18
  379. package/lib/testing/lib/cleanup.d.ts +230 -0
  380. package/lib/testing/lib/cleanup.js +338 -0
  381. package/lib/testing/lib/metadata.d.ts +151 -0
  382. package/lib/testing/lib/metadata.js +183 -0
  383. package/lib/testing/lib/naming.d.ts +96 -0
  384. package/lib/testing/lib/naming.js +336 -0
  385. package/node_modules/uuid/LICENSE.md +9 -0
  386. package/node_modules/uuid/README.md +510 -0
  387. package/node_modules/uuid/dist/cjs/index.d.ts +15 -0
  388. package/node_modules/uuid/dist/cjs/index.js +31 -0
  389. package/node_modules/uuid/dist/cjs/max.d.ts +2 -0
  390. package/node_modules/uuid/dist/cjs/max.js +3 -0
  391. package/node_modules/uuid/dist/cjs/md5.d.ts +4 -0
  392. package/node_modules/uuid/dist/cjs/md5.js +13 -0
  393. package/node_modules/uuid/dist/cjs/native.d.ts +6 -0
  394. package/node_modules/uuid/dist/cjs/native.js +4 -0
  395. package/node_modules/uuid/dist/cjs/nil.d.ts +2 -0
  396. package/node_modules/uuid/dist/cjs/nil.js +3 -0
  397. package/node_modules/uuid/dist/cjs/package.json +1 -0
  398. package/node_modules/uuid/dist/cjs/parse.d.ts +2 -0
  399. package/node_modules/uuid/dist/cjs/parse.js +11 -0
  400. package/node_modules/uuid/dist/cjs/regex.d.ts +2 -0
  401. package/node_modules/uuid/dist/cjs/regex.js +3 -0
  402. package/node_modules/uuid/dist/cjs/rng.d.ts +1 -0
  403. package/node_modules/uuid/dist/cjs/rng.js +13 -0
  404. package/node_modules/uuid/dist/cjs/sha1.d.ts +4 -0
  405. package/node_modules/uuid/dist/cjs/sha1.js +13 -0
  406. package/node_modules/uuid/dist/cjs/stringify.d.ts +3 -0
  407. package/node_modules/uuid/dist/cjs/stringify.js +39 -0
  408. package/node_modules/uuid/dist/cjs/types.d.ts +21 -0
  409. package/node_modules/uuid/dist/cjs/types.js +2 -0
  410. package/node_modules/uuid/dist/cjs/uuid-bin.d.ts +1 -0
  411. package/node_modules/uuid/dist/cjs/uuid-bin.js +72 -0
  412. package/node_modules/uuid/dist/cjs/v1.d.ts +11 -0
  413. package/node_modules/uuid/dist/cjs/v1.js +87 -0
  414. package/node_modules/uuid/dist/cjs/v1ToV6.d.ts +2 -0
  415. package/node_modules/uuid/dist/cjs/v1ToV6.js +13 -0
  416. package/node_modules/uuid/dist/cjs/v3.d.ts +9 -0
  417. package/node_modules/uuid/dist/cjs/v3.js +14 -0
  418. package/node_modules/uuid/dist/cjs/v35.d.ts +7 -0
  419. package/node_modules/uuid/dist/cjs/v35.js +41 -0
  420. package/node_modules/uuid/dist/cjs/v4.d.ts +4 -0
  421. package/node_modules/uuid/dist/cjs/v4.js +29 -0
  422. package/node_modules/uuid/dist/cjs/v5.d.ts +9 -0
  423. package/node_modules/uuid/dist/cjs/v5.js +14 -0
  424. package/node_modules/uuid/dist/cjs/v6.d.ts +4 -0
  425. package/node_modules/uuid/dist/cjs/v6.js +19 -0
  426. package/node_modules/uuid/dist/cjs/v6ToV1.d.ts +2 -0
  427. package/node_modules/uuid/dist/cjs/v6ToV1.js +13 -0
  428. package/node_modules/uuid/dist/cjs/v7.d.ts +9 -0
  429. package/node_modules/uuid/dist/cjs/v7.js +69 -0
  430. package/node_modules/uuid/dist/cjs/validate.d.ts +2 -0
  431. package/node_modules/uuid/dist/cjs/validate.js +7 -0
  432. package/node_modules/uuid/dist/cjs/version.d.ts +2 -0
  433. package/node_modules/uuid/dist/cjs/version.js +10 -0
  434. package/node_modules/uuid/dist/cjs-browser/index.d.ts +15 -0
  435. package/node_modules/uuid/dist/cjs-browser/index.js +31 -0
  436. package/node_modules/uuid/dist/cjs-browser/max.d.ts +2 -0
  437. package/node_modules/uuid/dist/cjs-browser/max.js +3 -0
  438. package/node_modules/uuid/dist/cjs-browser/md5.d.ts +2 -0
  439. package/node_modules/uuid/dist/cjs-browser/md5.js +137 -0
  440. package/node_modules/uuid/dist/cjs-browser/native.d.ts +4 -0
  441. package/node_modules/uuid/dist/cjs-browser/native.js +4 -0
  442. package/node_modules/uuid/dist/cjs-browser/nil.d.ts +2 -0
  443. package/node_modules/uuid/dist/cjs-browser/nil.js +3 -0
  444. package/node_modules/uuid/dist/cjs-browser/package.json +1 -0
  445. package/node_modules/uuid/dist/cjs-browser/parse.d.ts +2 -0
  446. package/node_modules/uuid/dist/cjs-browser/parse.js +11 -0
  447. package/node_modules/uuid/dist/cjs-browser/regex.d.ts +2 -0
  448. package/node_modules/uuid/dist/cjs-browser/regex.js +3 -0
  449. package/node_modules/uuid/dist/cjs-browser/rng.d.ts +1 -0
  450. package/node_modules/uuid/dist/cjs-browser/rng.js +14 -0
  451. package/node_modules/uuid/dist/cjs-browser/sha1.d.ts +2 -0
  452. package/node_modules/uuid/dist/cjs-browser/sha1.js +72 -0
  453. package/node_modules/uuid/dist/cjs-browser/stringify.d.ts +3 -0
  454. package/node_modules/uuid/dist/cjs-browser/stringify.js +39 -0
  455. package/node_modules/uuid/dist/cjs-browser/types.d.ts +21 -0
  456. package/node_modules/uuid/dist/cjs-browser/types.js +2 -0
  457. package/node_modules/uuid/dist/cjs-browser/uuid-bin.d.ts +1 -0
  458. package/node_modules/uuid/dist/cjs-browser/uuid-bin.js +72 -0
  459. package/node_modules/uuid/dist/cjs-browser/v1.d.ts +11 -0
  460. package/node_modules/uuid/dist/cjs-browser/v1.js +87 -0
  461. package/node_modules/uuid/dist/cjs-browser/v1ToV6.d.ts +2 -0
  462. package/node_modules/uuid/dist/cjs-browser/v1ToV6.js +13 -0
  463. package/node_modules/uuid/dist/cjs-browser/v3.d.ts +9 -0
  464. package/node_modules/uuid/dist/cjs-browser/v3.js +14 -0
  465. package/node_modules/uuid/dist/cjs-browser/v35.d.ts +7 -0
  466. package/node_modules/uuid/dist/cjs-browser/v35.js +41 -0
  467. package/node_modules/uuid/dist/cjs-browser/v4.d.ts +4 -0
  468. package/node_modules/uuid/dist/cjs-browser/v4.js +29 -0
  469. package/node_modules/uuid/dist/cjs-browser/v5.d.ts +9 -0
  470. package/node_modules/uuid/dist/cjs-browser/v5.js +14 -0
  471. package/node_modules/uuid/dist/cjs-browser/v6.d.ts +4 -0
  472. package/node_modules/uuid/dist/cjs-browser/v6.js +19 -0
  473. package/node_modules/uuid/dist/cjs-browser/v6ToV1.d.ts +2 -0
  474. package/node_modules/uuid/dist/cjs-browser/v6ToV1.js +13 -0
  475. package/node_modules/uuid/dist/cjs-browser/v7.d.ts +9 -0
  476. package/node_modules/uuid/dist/cjs-browser/v7.js +69 -0
  477. package/node_modules/uuid/dist/cjs-browser/validate.d.ts +2 -0
  478. package/node_modules/uuid/dist/cjs-browser/validate.js +7 -0
  479. package/node_modules/uuid/dist/cjs-browser/version.d.ts +2 -0
  480. package/node_modules/uuid/dist/cjs-browser/version.js +10 -0
  481. package/node_modules/uuid/dist/esm/bin/uuid +2 -0
  482. package/node_modules/uuid/dist/esm/index.d.ts +15 -0
  483. package/node_modules/uuid/dist/esm/index.js +14 -0
  484. package/node_modules/uuid/dist/esm/max.d.ts +2 -0
  485. package/node_modules/uuid/dist/esm/max.js +1 -0
  486. package/node_modules/uuid/dist/esm/md5.d.ts +4 -0
  487. package/node_modules/uuid/dist/esm/md5.js +11 -0
  488. package/node_modules/uuid/dist/esm/native.d.ts +6 -0
  489. package/node_modules/uuid/dist/esm/native.js +2 -0
  490. package/node_modules/uuid/dist/esm/nil.d.ts +2 -0
  491. package/node_modules/uuid/dist/esm/nil.js +1 -0
  492. package/node_modules/uuid/dist/esm/parse.d.ts +2 -0
  493. package/node_modules/uuid/dist/esm/parse.js +9 -0
  494. package/node_modules/uuid/dist/esm/regex.d.ts +2 -0
  495. package/node_modules/uuid/dist/esm/regex.js +1 -0
  496. package/node_modules/uuid/dist/esm/rng.d.ts +1 -0
  497. package/node_modules/uuid/dist/esm/rng.js +10 -0
  498. package/node_modules/uuid/dist/esm/sha1.d.ts +4 -0
  499. package/node_modules/uuid/dist/esm/sha1.js +11 -0
  500. package/node_modules/uuid/dist/esm/stringify.d.ts +3 -0
  501. package/node_modules/uuid/dist/esm/stringify.js +35 -0
  502. package/node_modules/uuid/dist/esm/types.d.ts +21 -0
  503. package/node_modules/uuid/dist/esm/types.js +1 -0
  504. package/node_modules/uuid/dist/esm/uuid-bin.d.ts +1 -0
  505. package/node_modules/uuid/dist/esm/uuid-bin.js +70 -0
  506. package/node_modules/uuid/dist/esm/v1.d.ts +11 -0
  507. package/node_modules/uuid/dist/esm/v1.js +83 -0
  508. package/node_modules/uuid/dist/esm/v1ToV6.d.ts +2 -0
  509. package/node_modules/uuid/dist/esm/v1ToV6.js +10 -0
  510. package/node_modules/uuid/dist/esm/v3.d.ts +9 -0
  511. package/node_modules/uuid/dist/esm/v3.js +9 -0
  512. package/node_modules/uuid/dist/esm/v35.d.ts +7 -0
  513. package/node_modules/uuid/dist/esm/v35.js +36 -0
  514. package/node_modules/uuid/dist/esm/v4.d.ts +4 -0
  515. package/node_modules/uuid/dist/esm/v4.js +27 -0
  516. package/node_modules/uuid/dist/esm/v5.d.ts +9 -0
  517. package/node_modules/uuid/dist/esm/v5.js +9 -0
  518. package/node_modules/uuid/dist/esm/v6.d.ts +4 -0
  519. package/node_modules/uuid/dist/esm/v6.js +17 -0
  520. package/node_modules/uuid/dist/esm/v6ToV1.d.ts +2 -0
  521. package/node_modules/uuid/dist/esm/v6ToV1.js +10 -0
  522. package/node_modules/uuid/dist/esm/v7.d.ts +9 -0
  523. package/node_modules/uuid/dist/esm/v7.js +65 -0
  524. package/node_modules/uuid/dist/esm/validate.d.ts +2 -0
  525. package/node_modules/uuid/dist/esm/validate.js +5 -0
  526. package/node_modules/uuid/dist/esm/version.d.ts +2 -0
  527. package/node_modules/uuid/dist/esm/version.js +8 -0
  528. package/node_modules/uuid/dist/esm-browser/index.d.ts +15 -0
  529. package/node_modules/uuid/dist/esm-browser/index.js +14 -0
  530. package/node_modules/uuid/dist/esm-browser/max.d.ts +2 -0
  531. package/node_modules/uuid/dist/esm-browser/max.js +1 -0
  532. package/node_modules/uuid/dist/esm-browser/md5.d.ts +2 -0
  533. package/node_modules/uuid/dist/esm-browser/md5.js +135 -0
  534. package/node_modules/uuid/dist/esm-browser/native.d.ts +4 -0
  535. package/node_modules/uuid/dist/esm-browser/native.js +2 -0
  536. package/node_modules/uuid/dist/esm-browser/nil.d.ts +2 -0
  537. package/node_modules/uuid/dist/esm-browser/nil.js +1 -0
  538. package/node_modules/uuid/dist/esm-browser/parse.d.ts +2 -0
  539. package/node_modules/uuid/dist/esm-browser/parse.js +9 -0
  540. package/node_modules/uuid/dist/esm-browser/regex.d.ts +2 -0
  541. package/node_modules/uuid/dist/esm-browser/regex.js +1 -0
  542. package/node_modules/uuid/dist/esm-browser/rng.d.ts +1 -0
  543. package/node_modules/uuid/dist/esm-browser/rng.js +11 -0
  544. package/node_modules/uuid/dist/esm-browser/sha1.d.ts +2 -0
  545. package/node_modules/uuid/dist/esm-browser/sha1.js +70 -0
  546. package/node_modules/uuid/dist/esm-browser/stringify.d.ts +3 -0
  547. package/node_modules/uuid/dist/esm-browser/stringify.js +35 -0
  548. package/node_modules/uuid/dist/esm-browser/types.d.ts +21 -0
  549. package/node_modules/uuid/dist/esm-browser/types.js +1 -0
  550. package/node_modules/uuid/dist/esm-browser/uuid-bin.d.ts +1 -0
  551. package/node_modules/uuid/dist/esm-browser/uuid-bin.js +70 -0
  552. package/node_modules/uuid/dist/esm-browser/v1.d.ts +11 -0
  553. package/node_modules/uuid/dist/esm-browser/v1.js +83 -0
  554. package/node_modules/uuid/dist/esm-browser/v1ToV6.d.ts +2 -0
  555. package/node_modules/uuid/dist/esm-browser/v1ToV6.js +10 -0
  556. package/node_modules/uuid/dist/esm-browser/v3.d.ts +9 -0
  557. package/node_modules/uuid/dist/esm-browser/v3.js +9 -0
  558. package/node_modules/uuid/dist/esm-browser/v35.d.ts +7 -0
  559. package/node_modules/uuid/dist/esm-browser/v35.js +36 -0
  560. package/node_modules/uuid/dist/esm-browser/v4.d.ts +4 -0
  561. package/node_modules/uuid/dist/esm-browser/v4.js +27 -0
  562. package/node_modules/uuid/dist/esm-browser/v5.d.ts +9 -0
  563. package/node_modules/uuid/dist/esm-browser/v5.js +9 -0
  564. package/node_modules/uuid/dist/esm-browser/v6.d.ts +4 -0
  565. package/node_modules/uuid/dist/esm-browser/v6.js +17 -0
  566. package/node_modules/uuid/dist/esm-browser/v6ToV1.d.ts +2 -0
  567. package/node_modules/uuid/dist/esm-browser/v6ToV1.js +10 -0
  568. package/node_modules/uuid/dist/esm-browser/v7.d.ts +9 -0
  569. package/node_modules/uuid/dist/esm-browser/v7.js +65 -0
  570. package/node_modules/uuid/dist/esm-browser/validate.d.ts +2 -0
  571. package/node_modules/uuid/dist/esm-browser/validate.js +5 -0
  572. package/node_modules/uuid/dist/esm-browser/version.d.ts +2 -0
  573. package/node_modules/uuid/dist/esm-browser/version.js +8 -0
  574. package/node_modules/uuid/package.json +132 -0
  575. package/package.json +17 -12
  576. package/scripts/cleanup-test-resources.ts +387 -0
  577. package/scripts/generate-index.js +25 -8
@@ -25,7 +25,6 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
25
25
  const cdktf = require("cdktf");
26
26
  const storage_account_schemas_1 = require("./storage-account-schemas");
27
27
  const azapi_resource_1 = require("../../core-azure/lib/azapi/azapi-resource");
28
- const api_version_manager_1 = require("../../core-azure/lib/version-manager/api-version-manager");
29
28
  /**
30
29
  * Unified Azure Storage Account implementation
31
30
  *
@@ -57,24 +56,142 @@ const api_version_manager_1 = require("../../core-azure/lib/version-manager/api-
57
56
  */
58
57
  class StorageAccount extends azapi_resource_1.AzapiResource {
59
58
  /**
60
- * Ensures that Storage Account schemas are registered with the ApiVersionManager
59
+ * Returns a production-ready monitoring configuration for Storage Accounts
60
+ *
61
+ * This static factory method provides a complete MonitoringConfig with sensible defaults
62
+ * for storage account monitoring including availability, egress, transactions alerts, and deletion tracking.
63
+ *
64
+ * @param actionGroupId - The resource ID of the action group for alert notifications
65
+ * @param workspaceId - Optional Log Analytics workspace ID for diagnostic settings
66
+ * @param options - Optional configuration to customize thresholds and enable/disable specific alerts
67
+ * @returns A complete MonitoringConfig object ready to use in StorageAccount props
68
+ *
69
+ * @example
70
+ * // Basic usage with all defaults
71
+ * const storageAccount = new StorageAccount(this, "storage", {
72
+ * // ... other properties ...
73
+ * monitoring: StorageAccount.defaultMonitoring(actionGroup.id, workspace.id)
74
+ * });
75
+ *
76
+ * @example
77
+ * // Custom thresholds
78
+ * const storageAccount = new StorageAccount(this, "storage", {
79
+ * // ... other properties ...
80
+ * monitoring: StorageAccount.defaultMonitoring(
81
+ * actionGroup.id,
82
+ * workspace.id,
83
+ * {
84
+ * availabilityThreshold: 99.5,
85
+ * egressThreshold: 21474836480, // 20GB
86
+ * enableTransactionsAlert: false
87
+ * }
88
+ * )
89
+ * });
90
+ *
91
+ * @stability stable
61
92
  */
62
- static ensureSchemasRegistered() {
63
- if (StorageAccount.schemasRegistered) {
64
- return;
93
+ static defaultMonitoring(actionGroupId, workspaceId, options) {
94
+ const metricAlerts = [];
95
+ // Low Availability Alert
96
+ if (options?.enableAvailabilityAlert !== false) {
97
+ metricAlerts.push({
98
+ name: "low-availability-alert",
99
+ description: "Alert when storage account availability drops below threshold",
100
+ severity: (options?.availabilityAlertSeverity ?? 1),
101
+ scopes: [], // Will be set automatically by base class
102
+ evaluationFrequency: "PT5M",
103
+ windowSize: "PT15M",
104
+ criteria: {
105
+ type: "StaticThreshold",
106
+ metricName: "Availability",
107
+ metricNamespace: "Microsoft.Storage/storageAccounts",
108
+ operator: "LessThan",
109
+ threshold: options?.availabilityThreshold ?? 99.9,
110
+ timeAggregation: "Average",
111
+ },
112
+ actions: [{ actionGroupId }],
113
+ });
65
114
  }
66
- const apiVersionManager = api_version_manager_1.ApiVersionManager.instance();
67
- try {
68
- apiVersionManager.registerResourceType(storage_account_schemas_1.STORAGE_ACCOUNT_TYPE, storage_account_schemas_1.ALL_STORAGE_ACCOUNT_VERSIONS);
69
- StorageAccount.schemasRegistered = true;
70
- console.log(`Registered ${storage_account_schemas_1.ALL_STORAGE_ACCOUNT_VERSIONS.length} API versions for ${storage_account_schemas_1.STORAGE_ACCOUNT_TYPE}`);
115
+ // High Egress Alert
116
+ if (options?.enableEgressAlert !== false) {
117
+ metricAlerts.push({
118
+ name: "high-egress-alert",
119
+ description: "Alert when storage account egress exceeds threshold",
120
+ severity: (options?.egressAlertSeverity ?? 2),
121
+ scopes: [], // Will be set automatically by base class
122
+ evaluationFrequency: "PT5M",
123
+ windowSize: "PT1H",
124
+ criteria: {
125
+ type: "StaticThreshold",
126
+ metricName: "Egress",
127
+ metricNamespace: "Microsoft.Storage/storageAccounts",
128
+ operator: "GreaterThan",
129
+ threshold: options?.egressThreshold ?? 10737418240,
130
+ timeAggregation: "Total",
131
+ },
132
+ actions: [{ actionGroupId }],
133
+ });
71
134
  }
72
- catch (error) {
73
- console.warn(`Failed to register Storage Account schemas: ${error}. ` +
74
- `This may indicate the schemas are already registered or there's a configuration issue.`);
75
- StorageAccount.schemasRegistered = true;
135
+ // High Transactions Alert
136
+ if (options?.enableTransactionsAlert !== false) {
137
+ metricAlerts.push({
138
+ name: "high-transactions-alert",
139
+ description: "Alert when storage account transactions exceed threshold",
140
+ severity: (options?.transactionsAlertSeverity ?? 2),
141
+ scopes: [], // Will be set automatically by base class
142
+ evaluationFrequency: "PT5M",
143
+ windowSize: "PT15M",
144
+ criteria: {
145
+ type: "StaticThreshold",
146
+ metricName: "Transactions",
147
+ metricNamespace: "Microsoft.Storage/storageAccounts",
148
+ operator: "GreaterThan",
149
+ threshold: options?.transactionsThreshold ?? 100000,
150
+ timeAggregation: "Total",
151
+ },
152
+ actions: [{ actionGroupId }],
153
+ });
76
154
  }
155
+ // Build diagnostic settings if workspace ID is provided
156
+ const diagnosticSettings = workspaceId
157
+ ? {
158
+ name: "storage-account-diagnostics",
159
+ targetResourceId: "", // Will be set automatically by base class
160
+ workspaceId: workspaceId,
161
+ logs: [{ categoryGroup: "allLogs", enabled: true }],
162
+ metrics: [{ category: "AllMetrics", enabled: true }],
163
+ }
164
+ : undefined;
165
+ // Build activity log alerts
166
+ const activityLogAlerts = options?.enableDeletionAlert !== false
167
+ ? [
168
+ {
169
+ name: "storage-account-deletion-alert",
170
+ description: "Alert when storage account is deleted",
171
+ scopes: [], // Will be set automatically by base class
172
+ condition: {
173
+ allOf: [
174
+ {
175
+ field: "operationName",
176
+ equalsValue: "Microsoft.Storage/storageAccounts/delete",
177
+ },
178
+ ],
179
+ },
180
+ actions: {
181
+ actionGroups: [{ actionGroupId }],
182
+ },
183
+ },
184
+ ]
185
+ : undefined;
186
+ // Return complete config object
187
+ return {
188
+ enabled: true,
189
+ diagnosticSettings: diagnosticSettings,
190
+ metricAlerts: metricAlerts,
191
+ activityLogAlerts: activityLogAlerts,
192
+ };
77
193
  }
194
+ // Public properties
78
195
  /**
79
196
  * Creates a new Azure Storage Account using the VersionedAzapiResource framework
80
197
  *
@@ -83,13 +200,9 @@ class StorageAccount extends azapi_resource_1.AzapiResource {
83
200
  * @param props - Configuration properties for the Storage Account
84
201
  */
85
202
  constructor(scope, id, props) {
86
- // Ensure schemas are registered before calling super
87
- StorageAccount.ensureSchemasRegistered();
88
203
  super(scope, id, props);
89
204
  this.props = props;
90
205
  // Extract properties from the AZAPI resource outputs
91
- this.id = `\${${this.terraformResource.fqn}.id}`;
92
- this.tags = props.tags || {};
93
206
  // Create Terraform outputs
94
207
  this.idOutput = new cdktf.TerraformOutput(this, "id", {
95
208
  value: this.id,
@@ -141,14 +254,20 @@ class StorageAccount extends azapi_resource_1.AzapiResource {
141
254
  apiSchema() {
142
255
  return this.resolveSchema();
143
256
  }
257
+ /**
258
+ * Indicates that location is required for Storage Accounts
259
+ */
260
+ requiresLocation() {
261
+ return true;
262
+ }
144
263
  /**
145
264
  * Creates the resource body for the Azure API call
146
265
  */
147
266
  createResourceBody(props) {
148
267
  const typedProps = props;
149
268
  return {
150
- location: typedProps.location || "eastus",
151
- tags: typedProps.tags || {},
269
+ location: this.location,
270
+ tags: this.allTags(),
152
271
  sku: typedProps.sku,
153
272
  kind: typedProps.kind || "StorageV2",
154
273
  properties: {
@@ -224,6 +343,9 @@ class StorageAccount extends azapi_resource_1.AzapiResource {
224
343
  }
225
344
  exports.StorageAccount = StorageAccount;
226
345
  _a = JSII_RTTI_SYMBOL_1;
227
- StorageAccount[_a] = { fqn: "@microsoft/terraform-cdk-constructs.StorageAccount", version: "1.0.0" };
228
- StorageAccount.schemasRegistered = false;
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1hY2NvdW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLXN0b3JhZ2VhY2NvdW50L2xpYi9zdG9yYWdlLWFjY291bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBRUgsK0JBQStCO0FBRS9CLHVFQUdtQztBQUNuQyw4RUFHbUQ7QUFDbkQsa0dBQTZGO0FBME43Rjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCRztBQUNILE1BQWEsY0FBZSxTQUFRLDhCQUFhO0lBRy9DOztPQUVHO0lBQ0ssTUFBTSxDQUFDLHVCQUF1QjtRQUNwQyxJQUFJLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3JDLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxpQkFBaUIsR0FBRyx1Q0FBaUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUV2RCxJQUFJLENBQUM7WUFDSCxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FDcEMsOENBQW9CLEVBQ3BCLHNEQUE0QixDQUM3QixDQUFDO1lBRUYsY0FBYyxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztZQUV4QyxPQUFPLENBQUMsR0FBRyxDQUNULGNBQWMsc0RBQTRCLENBQUMsTUFBTSxxQkFBcUIsOENBQW9CLEVBQUUsQ0FDN0YsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLElBQUksQ0FDViwrQ0FBK0MsS0FBSyxJQUFJO2dCQUN0RCx3RkFBd0YsQ0FDM0YsQ0FBQztZQUNGLGNBQWMsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7SUFlRDs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCO1FBQ2xFLHFEQUFxRDtRQUNyRCxjQUFjLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUV6QyxL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QyxLQUFLLENBQUMsSUFBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTLENBQUMsR0FBVztRQUMxQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDNUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQUVELGdGQUFnRjtJQUNoRix5QkFBeUI7SUFDekIsZ0ZBQWdGO0lBRWhGOztPQUVHO0lBQ0ssbUJBQW1CO1FBQ3pCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3BFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFO2dCQUM5QztvQkFDRSxjQUFjLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhO2lCQUN6QzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOztBQTNOSCx3Q0E0TkM7OztBQTNOZ0IsZ0NBQWlCLEdBQUcsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVbmlmaWVkIEF6dXJlIFN0b3JhZ2UgQWNjb3VudCBpbXBsZW1lbnRhdGlvbiB1c2luZyBWZXJzaW9uZWRBemFwaVJlc291cmNlIGZyYW1ld29ya1xuICpcbiAqIFRoaXMgY2xhc3MgcmVwbGFjZXMgYWxsIHZlcnNpb24tc3BlY2lmaWMgU3RvcmFnZSBBY2NvdW50IGltcGxlbWVudGF0aW9ucyB3aXRoIGEgc2luZ2xlXG4gKiB1bmlmaWVkIGNsYXNzIHRoYXQgYXV0b21hdGljYWxseSBoYW5kbGVzIHZlcnNpb24gbWFuYWdlbWVudCwgc2NoZW1hIHZhbGlkYXRpb24sIGFuZFxuICogcHJvcGVydHkgdHJhbnNmb3JtYXRpb24gYWNyb3NzIGFsbCBzdXBwb3J0ZWQgQVBJIHZlcnNpb25zLlxuICpcbiAqIFN1cHBvcnRlZCBBUEkgVmVyc2lvbnM6XG4gKiAtIDIwMjMtMDEtMDEgKEFjdGl2ZSlcbiAqIC0gMjAyMy0wNS0wMSAoQWN0aXZlKVxuICogLSAyMDI0LTAxLTAxIChBY3RpdmUsIExhdGVzdClcbiAqXG4gKiBGZWF0dXJlczpcbiAqIC0gQXV0b21hdGljIGxhdGVzdCB2ZXJzaW9uIHJlc29sdXRpb24gd2hlbiBubyB2ZXJzaW9uIGlzIHNwZWNpZmllZFxuICogLSBFeHBsaWNpdCB2ZXJzaW9uIHBpbm5pbmcgZm9yIHN0YWJpbGl0eSByZXF1aXJlbWVudHNcbiAqIC0gU2NoZW1hLWRyaXZlbiB2YWxpZGF0aW9uIGFuZCB0cmFuc2Zvcm1hdGlvblxuICogLSBGdWxsIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCBleGlzdGluZyBTdG9yYWdlIEFjY291bnQgaW50ZXJmYWNlXG4gKiAtIEpTSUkgY29tcGxpYW5jZSBmb3IgbXVsdGktbGFuZ3VhZ2Ugc3VwcG9ydFxuICovXG5cbmltcG9ydCAqIGFzIGNka3RmIGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIEFMTF9TVE9SQUdFX0FDQ09VTlRfVkVSU0lPTlMsXG4gIFNUT1JBR0VfQUNDT1VOVF9UWVBFLFxufSBmcm9tIFwiLi9zdG9yYWdlLWFjY291bnQtc2NoZW1hc1wiO1xuaW1wb3J0IHtcbiAgQXphcGlSZXNvdXJjZSxcbiAgQXphcGlSZXNvdXJjZVByb3BzLFxufSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvYXphcGkvYXphcGktcmVzb3VyY2VcIjtcbmltcG9ydCB7IEFwaVZlcnNpb25NYW5hZ2VyIH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL3ZlcnNpb24tbWFuYWdlci9hcGktdmVyc2lvbi1tYW5hZ2VyXCI7XG5pbXBvcnQgeyBBcGlTY2hlbWEgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvdmVyc2lvbi1tYW5hZ2VyL2ludGVyZmFjZXMvdmVyc2lvbi1pbnRlcmZhY2VzXCI7XG5cbi8qKlxuICogU0tVIGNvbmZpZ3VyYXRpb24gZm9yIFN0b3JhZ2UgQWNjb3VudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JhZ2VBY2NvdW50U2t1IHtcbiAgLyoqXG4gICAqIFRoZSBTS1UgbmFtZSAoU3RhbmRhcmRfTFJTLCBTdGFuZGFyZF9HUlMsIFN0YW5kYXJkX1JBR1JTLCBTdGFuZGFyZF9aUlMsIFByZW1pdW1fTFJTLCBQcmVtaXVtX1pSUylcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBJUCBydWxlIGZvciBuZXR3b3JrIEFDTHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdG9yYWdlQWNjb3VudElwUnVsZSB7XG4gIC8qKlxuICAgKiBJUCBhZGRyZXNzIG9yIENJRFIgcmFuZ2VcbiAgICovXG4gIHJlYWRvbmx5IHZhbHVlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVmlydHVhbCBuZXR3b3JrIHJ1bGUgZm9yIG5ldHdvcmsgQUNMc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JhZ2VBY2NvdW50VmlydHVhbE5ldHdvcmtSdWxlIHtcbiAgLyoqXG4gICAqIFZpcnR1YWwgbmV0d29yayByZXNvdXJjZSBJRFxuICAgKi9cbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBOZXR3b3JrIEFDTCBjb25maWd1cmF0aW9uIGZvciBTdG9yYWdlIEFjY291bnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdG9yYWdlQWNjb3VudE5ldHdvcmtBY2xzIHtcbiAgLyoqXG4gICAqIERlZmF1bHQgYWN0aW9uIHdoZW4gbm8gcnVsZSBtYXRjaGVzIChBbGxvdyBvciBEZW55KVxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdEFjdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogSVAgcnVsZXMgZm9yIHRoZSBzdG9yYWdlIGFjY291bnRcbiAgICovXG4gIHJlYWRvbmx5IGlwUnVsZXM/OiBTdG9yYWdlQWNjb3VudElwUnVsZVtdO1xuXG4gIC8qKlxuICAgKiBWaXJ0dWFsIG5ldHdvcmsgcnVsZXMgZm9yIHRoZSBzdG9yYWdlIGFjY291bnRcbiAgICovXG4gIHJlYWRvbmx5IHZpcnR1YWxOZXR3b3JrUnVsZXM/OiBTdG9yYWdlQWNjb3VudFZpcnR1YWxOZXR3b3JrUnVsZVtdO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGJ5cGFzcyBuZXR3b3JrIHJ1bGVzIGZvciBBenVyZSBzZXJ2aWNlc1xuICAgKi9cbiAgcmVhZG9ubHkgYnlwYXNzPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIElkZW50aXR5IGNvbmZpZ3VyYXRpb24gZm9yIFN0b3JhZ2UgQWNjb3VudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JhZ2VBY2NvdW50SWRlbnRpdHkge1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgaWRlbnRpdHkgKFN5c3RlbUFzc2lnbmVkLCBVc2VyQXNzaWduZWQsIFN5c3RlbUFzc2lnbmVkLFVzZXJBc3NpZ25lZClcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogVXNlciBhc3NpZ25lZCBpZGVudGl0eSBJRHNcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJBc3NpZ25lZElkZW50aXRpZXM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xufVxuXG4vKipcbiAqIEVuY3J5cHRpb24gc2VydmljZSBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmFnZUFjY291bnRFbmNyeXB0aW9uU2VydmljZSB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIGVuY3J5cHRpb24gaXMgZW5hYmxlZFxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRW5jcnlwdGlvbiBzZXJ2aWNlcyBjb25maWd1cmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmFnZUFjY291bnRFbmNyeXB0aW9uU2VydmljZXMge1xuICAvKipcbiAgICogQmxvYiBzZXJ2aWNlIGVuY3J5cHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGJsb2I/OiBTdG9yYWdlQWNjb3VudEVuY3J5cHRpb25TZXJ2aWNlO1xuXG4gIC8qKlxuICAgKiBGaWxlIHNlcnZpY2UgZW5jcnlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZmlsZT86IFN0b3JhZ2VBY2NvdW50RW5jcnlwdGlvblNlcnZpY2U7XG5cbiAgLyoqXG4gICAqIFRhYmxlIHNlcnZpY2UgZW5jcnlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgdGFibGU/OiBTdG9yYWdlQWNjb3VudEVuY3J5cHRpb25TZXJ2aWNlO1xuXG4gIC8qKlxuICAgKiBRdWV1ZSBzZXJ2aWNlIGVuY3J5cHRpb25cbiAgICovXG4gIHJlYWRvbmx5IHF1ZXVlPzogU3RvcmFnZUFjY291bnRFbmNyeXB0aW9uU2VydmljZTtcbn1cblxuLyoqXG4gKiBFbmNyeXB0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIFN0b3JhZ2UgQWNjb3VudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JhZ2VBY2NvdW50RW5jcnlwdGlvbiB7XG4gIC8qKlxuICAgKiBFbmNyeXB0aW9uIHNlcnZpY2VzIChibG9iLCBmaWxlLCB0YWJsZSwgcXVldWUpXG4gICAqL1xuICByZWFkb25seSBzZXJ2aWNlcz86IFN0b3JhZ2VBY2NvdW50RW5jcnlwdGlvblNlcnZpY2VzO1xuXG4gIC8qKlxuICAgKiBLZXkgc291cmNlIChNaWNyb3NvZnQuU3RvcmFnZSBvciBNaWNyb3NvZnQuS2V5dmF1bHQpXG4gICAqL1xuICByZWFkb25seSBrZXlTb3VyY2U/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgdGhlIHVuaWZpZWQgQXp1cmUgU3RvcmFnZSBBY2NvdW50XG4gKlxuICogRXh0ZW5kcyBWZXJzaW9uZWRBemFwaVJlc291cmNlUHJvcHMgd2l0aCBTdG9yYWdlIEFjY291bnQgc3BlY2lmaWMgcHJvcGVydGllc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JhZ2VBY2NvdW50UHJvcHMgZXh0ZW5kcyBBemFwaVJlc291cmNlUHJvcHMge1xuICAvKipcbiAgICogVGhlIFNLVSAocHJpY2luZyB0aWVyKSBmb3IgdGhlIFN0b3JhZ2UgQWNjb3VudFxuICAgKiBAZXhhbXBsZSB7IG5hbWU6IFwiU3RhbmRhcmRfTFJTXCIgfVxuICAgKi9cbiAgcmVhZG9ubHkgc2t1OiBTdG9yYWdlQWNjb3VudFNrdTtcblxuICAvKipcbiAgICogVGhlIGtpbmQgb2YgU3RvcmFnZSBBY2NvdW50XG4gICAqIEBkZWZhdWx0IFwiU3RvcmFnZVYyXCJcbiAgICogQGV4YW1wbGUgXCJTdG9yYWdlVjJcIiwgXCJCbG9iU3RvcmFnZVwiLCBcIkJsb2NrQmxvYlN0b3JhZ2VcIiwgXCJGaWxlU3RvcmFnZVwiXG4gICAqL1xuICByZWFkb25seSBraW5kPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYWNjZXNzIHRpZXIgZm9yIGJsb2Igc3RvcmFnZVxuICAgKiBAZGVmYXVsdCBcIkhvdFwiXG4gICAqIEBleGFtcGxlIFwiSG90XCIsIFwiQ29vbFwiXG4gICAqL1xuICByZWFkb25seSBhY2Nlc3NUaWVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGFsbG93IG9ubHkgSFRUUFMgdHJhZmZpY1xuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVIdHRwc1RyYWZmaWNPbmx5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG1pbmltdW0gVExTIHZlcnNpb24gcmVxdWlyZWRcbiAgICogQGRlZmF1bHQgXCJUTFMxXzJcIlxuICAgKi9cbiAgcmVhZG9ubHkgbWluaW11bVRsc1ZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYWxsb3cgcHVibGljIGFjY2VzcyB0byBibG9ic1xuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dCbG9iUHVibGljQWNjZXNzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTmV0d29yayBBQ0wgcnVsZXMgZm9yIHRoZSBzdG9yYWdlIGFjY291bnRcbiAgICovXG4gIHJlYWRvbmx5IG5ldHdvcmtBY2xzPzogU3RvcmFnZUFjY291bnROZXR3b3JrQWNscztcblxuICAvKipcbiAgICogTWFuYWdlZCBpZGVudGl0eSBjb25maWd1cmF0aW9uXG4gICAqL1xuICByZWFkb25seSBpZGVudGl0eT86IFN0b3JhZ2VBY2NvdW50SWRlbnRpdHk7XG5cbiAgLyoqXG4gICAqIEVuY3J5cHRpb24gc2V0dGluZ3NcbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb24/OiBTdG9yYWdlQWNjb3VudEVuY3J5cHRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBsaWZlY3ljbGUgcnVsZXMgdG8gaWdub3JlIGNoYW5nZXNcbiAgICogQGV4YW1wbGUgW1widGFnc1wiXVxuICAgKi9cbiAgcmVhZG9ubHkgaWdub3JlQ2hhbmdlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZSBncm91cCBJRCB3aGVyZSB0aGUgc3RvcmFnZSBhY2NvdW50IHdpbGwgYmUgY3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VHcm91cElkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFN0b3JhZ2UgQWNjb3VudCBwcm9wZXJ0aWVzIGZvciB0aGUgcmVxdWVzdCBib2R5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmFnZUFjY291bnRCb2R5UHJvcGVydGllcyB7XG4gIHJlYWRvbmx5IGFjY2Vzc1RpZXI/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHN1cHBvcnRzSHR0cHNUcmFmZmljT25seT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IG1pbmltdW1UbHNWZXJzaW9uPzogc3RyaW5nO1xuICByZWFkb25seSBhbGxvd0Jsb2JQdWJsaWNBY2Nlc3M/OiBib29sZWFuO1xuICByZWFkb25seSBuZXR3b3JrQWNscz86IFN0b3JhZ2VBY2NvdW50TmV0d29ya0FjbHM7XG4gIHJlYWRvbmx5IGVuY3J5cHRpb24/OiBTdG9yYWdlQWNjb3VudEVuY3J5cHRpb247XG59XG5cbi8qKlxuICogVGhlIHJlc291cmNlIGJvZHkgaW50ZXJmYWNlIGZvciBBenVyZSBTdG9yYWdlIEFjY291bnQgQVBJIGNhbGxzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmFnZUFjY291bnRCb2R5IHtcbiAgcmVhZG9ubHkgbG9jYXRpb246IHN0cmluZztcbiAgcmVhZG9ubHkgdGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIHJlYWRvbmx5IHNrdTogU3RvcmFnZUFjY291bnRTa3U7XG4gIHJlYWRvbmx5IGtpbmQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcHJvcGVydGllcz86IFN0b3JhZ2VBY2NvdW50Qm9keVByb3BlcnRpZXM7XG4gIHJlYWRvbmx5IGlkZW50aXR5PzogU3RvcmFnZUFjY291bnRJZGVudGl0eTtcbn1cblxuLyoqXG4gKiBVbmlmaWVkIEF6dXJlIFN0b3JhZ2UgQWNjb3VudCBpbXBsZW1lbnRhdGlvblxuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSBzaW5nbGUsIHZlcnNpb24tYXdhcmUgaW1wbGVtZW50YXRpb24gdGhhdCByZXBsYWNlcyBhbGxcbiAqIHZlcnNpb24tc3BlY2lmaWMgU3RvcmFnZSBBY2NvdW50IGNsYXNzZXMuIEl0IGF1dG9tYXRpY2FsbHkgaGFuZGxlcyB2ZXJzaW9uXG4gKiByZXNvbHV0aW9uLCBzY2hlbWEgdmFsaWRhdGlvbiwgYW5kIHByb3BlcnR5IHRyYW5zZm9ybWF0aW9uIHdoaWxlIG1haW50YWluaW5nXG4gKiBmdWxsIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEJhc2ljIHVzYWdlIHdpdGggYXV0b21hdGljIHZlcnNpb24gcmVzb2x1dGlvbjpcbiAqIGNvbnN0IHN0b3JhZ2VBY2NvdW50ID0gbmV3IFN0b3JhZ2VBY2NvdW50KHRoaXMsIFwic3RvcmFnZVwiLCB7XG4gKiAgIG5hbWU6IFwibXlzdG9yYWdlYWNjb3VudFwiLFxuICogICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAqICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICogICBza3U6IHsgbmFtZTogXCJTdGFuZGFyZF9MUlNcIiB9LFxuICogfSk7XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFVzYWdlIHdpdGggZXhwbGljaXQgdmVyc2lvbiBwaW5uaW5nOlxuICogY29uc3Qgc3RvcmFnZUFjY291bnQgPSBuZXcgU3RvcmFnZUFjY291bnQodGhpcywgXCJzdG9yYWdlXCIsIHtcbiAqICAgbmFtZTogXCJteXN0b3JhZ2VhY2NvdW50XCIsXG4gKiAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICogICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gKiAgIHNrdTogeyBuYW1lOiBcIlN0YW5kYXJkX0xSU1wiIH0sXG4gKiAgIGFwaVZlcnNpb246IFwiMjAyMy0wNS0wMVwiLFxuICogfSk7XG4gKlxuICogQHN0YWJpbGl0eSBzdGFibGVcbiAqL1xuZXhwb3J0IGNsYXNzIFN0b3JhZ2VBY2NvdW50IGV4dGVuZHMgQXphcGlSZXNvdXJjZSB7XG4gIHByaXZhdGUgc3RhdGljIHNjaGVtYXNSZWdpc3RlcmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEVuc3VyZXMgdGhhdCBTdG9yYWdlIEFjY291bnQgc2NoZW1hcyBhcmUgcmVnaXN0ZXJlZCB3aXRoIHRoZSBBcGlWZXJzaW9uTWFuYWdlclxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgZW5zdXJlU2NoZW1hc1JlZ2lzdGVyZWQoKTogdm9pZCB7XG4gICAgaWYgKFN0b3JhZ2VBY2NvdW50LnNjaGVtYXNSZWdpc3RlcmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgYXBpVmVyc2lvbk1hbmFnZXIgPSBBcGlWZXJzaW9uTWFuYWdlci5pbnN0YW5jZSgpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGFwaVZlcnNpb25NYW5hZ2VyLnJlZ2lzdGVyUmVzb3VyY2VUeXBlKFxuICAgICAgICBTVE9SQUdFX0FDQ09VTlRfVFlQRSxcbiAgICAgICAgQUxMX1NUT1JBR0VfQUNDT1VOVF9WRVJTSU9OUyxcbiAgICAgICk7XG5cbiAgICAgIFN0b3JhZ2VBY2NvdW50LnNjaGVtYXNSZWdpc3RlcmVkID0gdHJ1ZTtcblxuICAgICAgY29uc29sZS5sb2coXG4gICAgICAgIGBSZWdpc3RlcmVkICR7QUxMX1NUT1JBR0VfQUNDT1VOVF9WRVJTSU9OUy5sZW5ndGh9IEFQSSB2ZXJzaW9ucyBmb3IgJHtTVE9SQUdFX0FDQ09VTlRfVFlQRX1gLFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgRmFpbGVkIHRvIHJlZ2lzdGVyIFN0b3JhZ2UgQWNjb3VudCBzY2hlbWFzOiAke2Vycm9yfS4gYCArXG4gICAgICAgICAgYFRoaXMgbWF5IGluZGljYXRlIHRoZSBzY2hlbWFzIGFyZSBhbHJlYWR5IHJlZ2lzdGVyZWQgb3IgdGhlcmUncyBhIGNvbmZpZ3VyYXRpb24gaXNzdWUuYCxcbiAgICAgICk7XG4gICAgICBTdG9yYWdlQWNjb3VudC5zY2hlbWFzUmVnaXN0ZXJlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHByb3BzOiBTdG9yYWdlQWNjb3VudFByb3BzO1xuXG4gIC8vIE91dHB1dCBwcm9wZXJ0aWVzIGZvciBlYXN5IGFjY2VzcyBhbmQgcmVmZXJlbmNpbmdcbiAgcHVibGljIHJlYWRvbmx5IGlkT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSBsb2NhdGlvbk91dHB1dDogY2RrdGYuVGVycmFmb3JtT3V0cHV0O1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZU91dHB1dDogY2RrdGYuVGVycmFmb3JtT3V0cHV0O1xuICBwdWJsaWMgcmVhZG9ubHkgdGFnc091dHB1dDogY2RrdGYuVGVycmFmb3JtT3V0cHV0O1xuICBwdWJsaWMgcmVhZG9ubHkgcHJpbWFyeUVuZHBvaW50c091dHB1dDogY2RrdGYuVGVycmFmb3JtT3V0cHV0O1xuXG4gIC8vIFB1YmxpYyBwcm9wZXJ0aWVzXG4gIHB1YmxpYyByZWFkb25seSBpZDogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgdGFnczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBBenVyZSBTdG9yYWdlIEFjY291bnQgdXNpbmcgdGhlIFZlcnNpb25lZEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIFN0b3JhZ2UgQWNjb3VudFxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFN0b3JhZ2VBY2NvdW50UHJvcHMpIHtcbiAgICAvLyBFbnN1cmUgc2NoZW1hcyBhcmUgcmVnaXN0ZXJlZCBiZWZvcmUgY2FsbGluZyBzdXBlclxuICAgIFN0b3JhZ2VBY2NvdW50LmVuc3VyZVNjaGVtYXNSZWdpc3RlcmVkKCk7XG5cbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIC8vIEV4dHJhY3QgcHJvcGVydGllcyBmcm9tIHRoZSBBWkFQSSByZXNvdXJjZSBvdXRwdXRzXG4gICAgdGhpcy5pZCA9IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0uaWR9YDtcbiAgICB0aGlzLnRhZ3MgPSBwcm9wcy50YWdzIHx8IHt9O1xuXG4gICAgLy8gQ3JlYXRlIFRlcnJhZm9ybSBvdXRwdXRzXG4gICAgdGhpcy5pZE91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJpZFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5pZCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBJRCBvZiB0aGUgU3RvcmFnZSBBY2NvdW50XCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLmxvY2F0aW9uT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcImxvY2F0aW9uXCIsIHtcbiAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59LmxvY2F0aW9ufWAsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgbG9jYXRpb24gb2YgdGhlIFN0b3JhZ2UgQWNjb3VudFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5uYW1lT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcIm5hbWVcIiwge1xuICAgICAgdmFsdWU6IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ubmFtZX1gLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIG5hbWUgb2YgdGhlIFN0b3JhZ2UgQWNjb3VudFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy50YWdzT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcInRhZ3NcIiwge1xuICAgICAgdmFsdWU6IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0udGFnc31gLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIHRhZ3MgYXNzaWduZWQgdG8gdGhlIFN0b3JhZ2UgQWNjb3VudFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5wcmltYXJ5RW5kcG9pbnRzT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBcInByaW1hcnlfZW5kcG9pbnRzXCIsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLnByaW1hcnlFbmRwb2ludHN9YCxcbiAgICAgICAgZGVzY3JpcHRpb246IFwiVGhlIHByaW1hcnkgZW5kcG9pbnRzIG9mIHRoZSBTdG9yYWdlIEFjY291bnRcIixcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIC8vIE92ZXJyaWRlIGxvZ2ljYWwgSURzXG4gICAgdGhpcy5pZE91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcImlkXCIpO1xuICAgIHRoaXMubG9jYXRpb25PdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJsb2NhdGlvblwiKTtcbiAgICB0aGlzLm5hbWVPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJuYW1lXCIpO1xuICAgIHRoaXMudGFnc091dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcInRhZ3NcIik7XG4gICAgdGhpcy5wcmltYXJ5RW5kcG9pbnRzT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwicHJpbWFyeV9lbmRwb2ludHNcIik7XG5cbiAgICAvLyBBcHBseSBpZ25vcmUgY2hhbmdlcyBpZiBzcGVjaWZpZWRcbiAgICB0aGlzLl9hcHBseUlnbm9yZUNoYW5nZXMoKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFJFUVVJUkVEIEFCU1RSQUNUIE1FVEhPRFMgRlJPTSBWZXJzaW9uZWRBemFwaVJlc291cmNlXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGRlZmF1bHQgQVBJIHZlcnNpb24gdG8gdXNlIHdoZW4gbm8gZXhwbGljaXQgdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAgICovXG4gIHByb3RlY3RlZCBkZWZhdWx0VmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIjIwMjQtMDEtMDFcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBenVyZSByZXNvdXJjZSB0eXBlIGZvciBTdG9yYWdlIEFjY291bnRzXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVzb3VyY2VUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFNUT1JBR0VfQUNDT1VOVF9UWVBFO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIEFQSSBzY2hlbWEgZm9yIHRoZSByZXNvbHZlZCB2ZXJzaW9uXG4gICAqL1xuICBwcm90ZWN0ZWQgYXBpU2NoZW1hKCk6IEFwaVNjaGVtYSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZVNjaGVtYSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIHJlc291cmNlIGJvZHkgZm9yIHRoZSBBenVyZSBBUEkgY2FsbFxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZVJlc291cmNlQm9keShwcm9wczogYW55KTogYW55IHtcbiAgICBjb25zdCB0eXBlZFByb3BzID0gcHJvcHMgYXMgU3RvcmFnZUFjY291bnRQcm9wcztcbiAgICByZXR1cm4ge1xuICAgICAgbG9jYXRpb246IHR5cGVkUHJvcHMubG9jYXRpb24gfHwgXCJlYXN0dXNcIixcbiAgICAgIHRhZ3M6IHR5cGVkUHJvcHMudGFncyB8fCB7fSxcbiAgICAgIHNrdTogdHlwZWRQcm9wcy5za3UsXG4gICAgICBraW5kOiB0eXBlZFByb3BzLmtpbmQgfHwgXCJTdG9yYWdlVjJcIixcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgYWNjZXNzVGllcjogdHlwZWRQcm9wcy5hY2Nlc3NUaWVyIHx8IFwiSG90XCIsXG4gICAgICAgIHN1cHBvcnRzSHR0cHNUcmFmZmljT25seTogdHlwZWRQcm9wcy5lbmFibGVIdHRwc1RyYWZmaWNPbmx5ICE9PSBmYWxzZSxcbiAgICAgICAgbWluaW11bVRsc1ZlcnNpb246IHR5cGVkUHJvcHMubWluaW11bVRsc1ZlcnNpb24gfHwgXCJUTFMxXzJcIixcbiAgICAgICAgYWxsb3dCbG9iUHVibGljQWNjZXNzOiB0eXBlZFByb3BzLmFsbG93QmxvYlB1YmxpY0FjY2VzcyB8fCBmYWxzZSxcbiAgICAgICAgbmV0d29ya0FjbHM6IHR5cGVkUHJvcHMubmV0d29ya0FjbHMsXG4gICAgICAgIGVuY3J5cHRpb246IHR5cGVkUHJvcHMuZW5jcnlwdGlvbixcbiAgICAgIH0sXG4gICAgICBpZGVudGl0eTogdHlwZWRQcm9wcy5pZGVudGl0eSxcbiAgICB9O1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUFVCTElDIE1FVEhPRFMgRk9SIFNUT1JBR0UgQUNDT1VOVCBPUEVSQVRJT05TXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcHJpbWFyeSBibG9iIGVuZHBvaW50XG4gICAqL1xuICBwdWJsaWMgZ2V0IHByaW1hcnlCbG9iRW5kcG9pbnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5vdXRwdXQucHJvcGVydGllcy5wcmltYXJ5RW5kcG9pbnRzLmJsb2J9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHByaW1hcnkgZmlsZSBlbmRwb2ludFxuICAgKi9cbiAgcHVibGljIGdldCBwcmltYXJ5RmlsZUVuZHBvaW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ub3V0cHV0LnByb3BlcnRpZXMucHJpbWFyeUVuZHBvaW50cy5maWxlfWA7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBwcmltYXJ5IHF1ZXVlIGVuZHBvaW50XG4gICAqL1xuICBwdWJsaWMgZ2V0IHByaW1hcnlRdWV1ZUVuZHBvaW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ub3V0cHV0LnByb3BlcnRpZXMucHJpbWFyeUVuZHBvaW50cy5xdWV1ZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcHJpbWFyeSB0YWJsZSBlbmRwb2ludFxuICAgKi9cbiAgcHVibGljIGdldCBwcmltYXJ5VGFibGVFbmRwb2ludCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLnByaW1hcnlFbmRwb2ludHMudGFibGV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSB0YWcgdG8gdGhlIFN0b3JhZ2UgQWNjb3VudFxuICAgKi9cbiAgcHVibGljIGFkZFRhZyhrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wcm9wcy50YWdzKSB7XG4gICAgICAodGhpcy5wcm9wcyBhcyBhbnkpLnRhZ3MgPSB7fTtcbiAgICB9XG4gICAgdGhpcy5wcm9wcy50YWdzIVtrZXldID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgdGFnIGZyb20gdGhlIFN0b3JhZ2UgQWNjb3VudFxuICAgKi9cbiAgcHVibGljIHJlbW92ZVRhZyhrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByb3BzLnRhZ3MgJiYgdGhpcy5wcm9wcy50YWdzW2tleV0pIHtcbiAgICAgIGRlbGV0ZSB0aGlzLnByb3BzLnRhZ3Nba2V5XTtcbiAgICB9XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQUklWQVRFIEhFTFBFUiBNRVRIT0RTXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgaWdub3JlIGNoYW5nZXMgbGlmZWN5Y2xlIHJ1bGVzIGlmIHNwZWNpZmllZCBpbiBwcm9wc1xuICAgKi9cbiAgcHJpdmF0ZSBfYXBwbHlJZ25vcmVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByb3BzLmlnbm9yZUNoYW5nZXMgJiYgdGhpcy5wcm9wcy5pZ25vcmVDaGFuZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudGVycmFmb3JtUmVzb3VyY2UuYWRkT3ZlcnJpZGUoXCJsaWZlY3ljbGVcIiwgW1xuICAgICAgICB7XG4gICAgICAgICAgaWdub3JlX2NoYW5nZXM6IHRoaXMucHJvcHMuaWdub3JlQ2hhbmdlcyxcbiAgICAgICAgfSxcbiAgICAgIF0pO1xuICAgIH1cbiAgfVxufVxuIl19
346
+ StorageAccount[_a] = { fqn: "@microsoft/terraform-cdk-constructs.StorageAccount", version: "1.3.0" };
347
+ // Static initializer runs once when the class is first loaded
348
+ (() => {
349
+ azapi_resource_1.AzapiResource.registerSchemas(storage_account_schemas_1.STORAGE_ACCOUNT_TYPE, storage_account_schemas_1.ALL_STORAGE_ACCOUNT_VERSIONS);
350
+ })();
351
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1hY2NvdW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLXN0b3JhZ2VhY2NvdW50L2xpYi9zdG9yYWdlLWFjY291bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBRUgsK0JBQStCO0FBRS9CLHVFQUltQztBQUNuQyw4RUFJbUQ7QUEwTm5EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBNEJHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsOEJBQWE7SUFTL0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FrQ0c7SUFDSSxNQUFNLENBQUMsaUJBQWlCLENBQzdCLGFBQXFCLEVBQ3JCLFdBQW9CLEVBQ3BCLE9BQXlDO1FBRXpDLE1BQU0sWUFBWSxHQUFVLEVBQUUsQ0FBQztRQUUvQix5QkFBeUI7UUFDekIsSUFBSSxPQUFPLEVBQUUsdUJBQXVCLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDL0MsWUFBWSxDQUFDLElBQUksQ0FBQztnQkFDaEIsSUFBSSxFQUFFLHdCQUF3QjtnQkFDOUIsV0FBVyxFQUNULCtEQUErRDtnQkFDakUsUUFBUSxFQUFFLENBQUMsT0FBTyxFQUFFLHlCQUF5QixJQUFJLENBQUMsQ0FLN0M7Z0JBQ0wsTUFBTSxFQUFFLEVBQUUsRUFBRSwwQ0FBMEM7Z0JBQ3RELG1CQUFtQixFQUFFLE1BQU07Z0JBQzNCLFVBQVUsRUFBRSxPQUFPO2dCQUNuQixRQUFRLEVBQUU7b0JBQ1IsSUFBSSxFQUFFLGlCQUEwQjtvQkFDaEMsVUFBVSxFQUFFLGNBQWM7b0JBQzFCLGVBQWUsRUFBRSxtQ0FBbUM7b0JBQ3BELFFBQVEsRUFBRSxVQUFtQjtvQkFDN0IsU0FBUyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsSUFBSSxJQUFJO29CQUNqRCxlQUFlLEVBQUUsU0FBa0I7aUJBQ3BDO2dCQUNELE9BQU8sRUFBRSxDQUFDLEVBQUUs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QUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLEtBQWEsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksU0FBUyxDQUFDLEdBQVc7UUFDMUIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzVDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFRCxnRkFBZ0Y7SUFDaEYseUJBQXlCO0lBQ3pCLGdGQUFnRjtJQUVoRjs7T0FFRztJQUNLLG1CQUFtQjtRQUN6QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRTtnQkFDOUM7b0JBQ0UsY0FBYyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYTtpQkFDekM7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzs7QUFsV0gsd0NBbVdDOzs7QUFsV0MsOERBQThEO0FBQzlEO0lBQ0UsOEJBQWEsQ0FBQyxlQUFlLENBQzNCLDhDQUFvQixFQUNwQixzREFBNEIsQ0FDN0IsQ0FBQztBQUNKLENBQUMsR0FBQSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVbmlmaWVkIEF6dXJlIFN0b3JhZ2UgQWNjb3VudCBpbXBsZW1lbnRhdGlvbiB1c2luZyBWZXJzaW9uZWRBemFwaVJlc291cmNlIGZyYW1ld29ya1xuICpcbiAqIFRoaXMgY2xhc3MgcmVwbGFjZXMgYWxsIHZlcnNpb24tc3BlY2lmaWMgU3RvcmFnZSBBY2NvdW50IGltcGxlbWVudGF0aW9ucyB3aXRoIGEgc2luZ2xlXG4gKiB1bmlmaWVkIGNsYXNzIHRoYXQgYXV0b21hdGljYWxseSBoYW5kbGVzIHZlcnNpb24gbWFuYWdlbWVudCwgc2NoZW1hIHZhbGlkYXRpb24sIGFuZFxuICogcHJvcGVydHkgdHJhbnNmb3JtYXRpb24gYWNyb3NzIGFsbCBzdXBwb3J0ZWQgQVBJIHZlcnNpb25zLlxuICpcbiAqIFN1cHBvcnRlZCBBUEkgVmVyc2lvbnM6XG4gKiAtIDIwMjMtMDEtMDEgKEFjdGl2ZSlcbiAqIC0gMjAyMy0wNS0wMSAoQWN0aXZlKVxuICogLSAyMDI0LTAxLTAxIChBY3RpdmUsIExhdGVzdClcbiAqXG4gKiBGZWF0dXJlczpcbiAqIC0gQXV0b21hdGljIGxhdGVzdCB2ZXJzaW9uIHJlc29sdXRpb24gd2hlbiBubyB2ZXJzaW9uIGlzIHNwZWNpZmllZFxuICogLSBFeHBsaWNpdCB2ZXJzaW9uIHBpbm5pbmcgZm9yIHN0YWJpbGl0eSByZXF1aXJlbWVudHNcbiAqIC0gU2NoZW1hLWRyaXZlbiB2YWxpZGF0aW9uIGFuZCB0cmFuc2Zvcm1hdGlvblxuICogLSBGdWxsIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCBleGlzdGluZyBTdG9yYWdlIEFjY291bnQgaW50ZXJmYWNlXG4gKiAtIEpTSUkgY29tcGxpYW5jZSBmb3IgbXVsdGktbGFuZ3VhZ2Ugc3VwcG9ydFxuICovXG5cbmltcG9ydCAqIGFzIGNka3RmIGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIEFMTF9TVE9SQUdFX0FDQ09VTlRfVkVSU0lPTlMsXG4gIFNUT1JBR0VfQUNDT1VOVF9UWVBFLFxuICBTdG9yYWdlQWNjb3VudE1vbml0b3JpbmdPcHRpb25zLFxufSBmcm9tIFwiLi9zdG9yYWdlLWFjY291bnQtc2NoZW1hc1wiO1xuaW1wb3J0IHtcbiAgQXphcGlSZXNvdXJjZSxcbiAgQXphcGlSZXNvdXJjZVByb3BzLFxuICBNb25pdG9yaW5nQ29uZmlnLFxufSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvYXphcGkvYXphcGktcmVzb3VyY2VcIjtcbmltcG9ydCB7IEFwaVNjaGVtYSB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcblxuLyoqXG4gKiBTS1UgY29uZmlndXJhdGlvbiBmb3IgU3RvcmFnZSBBY2NvdW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmFnZUFjY291bnRTa3Uge1xuICAvKipcbiAgICogVGhlIFNLVSBuYW1lIChTdGFuZGFyZF9MUlMsIFN0YW5kYXJkX0dSUywgU3RhbmRhcmRfUkFHUlMsIFN0YW5kYXJkX1pSUywgUHJlbWl1bV9MUlMsIFByZW1pdW1fWlJTKVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIElQIHJ1bGUgZm9yIG5ldHdvcmsgQUNMc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JhZ2VBY2NvdW50SXBSdWxlIHtcbiAgLyoqXG4gICAqIElQIGFkZHJlc3Mgb3IgQ0lEUiByYW5nZVxuICAgKi9cbiAgcmVhZG9ubHkgdmFsdWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBWaXJ0dWFsIG5ldHdvcmsgcnVsZSBmb3IgbmV0d29yayBBQ0xzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmFnZUFjY291bnRWaXJ0dWFsTmV0d29ya1J1bGUge1xuICAvKipcbiAgICogVmlydHVhbCBuZXR3b3JrIHJlc291cmNlIElEXG4gICAqL1xuICByZWFkb25seSBpZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIE5ldHdvcmsgQUNMIGNvbmZpZ3VyYXRpb24gZm9yIFN0b3JhZ2UgQWNjb3VudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JhZ2VBY2NvdW50TmV0d29ya0FjbHMge1xuICAvKipcbiAgICogRGVmYXVsdCBhY3Rpb24gd2hlbiBubyBydWxlIG1hdGNoZXMgKEFsbG93IG9yIERlbnkpXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0QWN0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJUCBydWxlcyBmb3IgdGhlIHN0b3JhZ2UgYWNjb3VudFxuICAgKi9cbiAgcmVhZG9ubHkgaXBSdWxlcz86IFN0b3JhZ2VBY2NvdW50SXBSdWxlW107XG5cbiAgLyoqXG4gICAqIFZpcnR1YWwgbmV0d29yayBydWxlcyBmb3IgdGhlIHN0b3JhZ2UgYWNjb3VudFxuICAgKi9cbiAgcmVhZG9ubHkgdmlydHVhbE5ldHdvcmtSdWxlcz86IFN0b3JhZ2VBY2NvdW50VmlydHVhbE5ldHdvcmtSdWxlW107XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYnlwYXNzIG5ldHdvcmsgcnVsZXMgZm9yIEF6dXJlIHNlcnZpY2VzXG4gICAqL1xuICByZWFkb25seSBieXBhc3M/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogSWRlbnRpdHkgY29uZmlndXJhdGlvbiBmb3IgU3RvcmFnZSBBY2NvdW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmFnZUFjY291bnRJZGVudGl0eSB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBpZGVudGl0eSAoU3lzdGVtQXNzaWduZWQsIFVzZXJBc3NpZ25lZCwgU3lzdGVtQXNzaWduZWQsVXNlckFzc2lnbmVkKVxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBVc2VyIGFzc2lnbmVkIGlkZW50aXR5IElEc1xuICAgKi9cbiAgcmVhZG9ubHkgdXNlckFzc2lnbmVkSWRlbnRpdGllcz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG59XG5cbi8qKlxuICogRW5jcnlwdGlvbiBzZXJ2aWNlIGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdG9yYWdlQWNjb3VudEVuY3J5cHRpb25TZXJ2aWNlIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgZW5jcnlwdGlvbiBpcyBlbmFibGVkXG4gICAqL1xuICByZWFkb25seSBlbmFibGVkPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBFbmNyeXB0aW9uIHNlcnZpY2VzIGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdG9yYWdlQWNjb3VudEVuY3J5cHRpb25TZXJ2aWNlcyB7XG4gIC8qKlxuICAgKiBCbG9iIHNlcnZpY2UgZW5jcnlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgYmxvYj86IFN0b3JhZ2VBY2NvdW50RW5jcnlwdGlvblNlcnZpY2U7XG5cbiAgLyoqXG4gICAqIEZpbGUgc2VydmljZSBlbmNyeXB0aW9uXG4gICAqL1xuICByZWFkb25seSBmaWxlPzogU3RvcmFnZUFjY291bnRFbmNyeXB0aW9uU2VydmljZTtcblxuICAvKipcbiAgICogVGFibGUgc2VydmljZSBlbmNyeXB0aW9uXG4gICAqL1xuICByZWFkb25seSB0YWJsZT86IFN0b3JhZ2VBY2NvdW50RW5jcnlwdGlvblNlcnZpY2U7XG5cbiAgLyoqXG4gICAqIFF1ZXVlIHNlcnZpY2UgZW5jcnlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgcXVldWU/OiBTdG9yYWdlQWNjb3VudEVuY3J5cHRpb25TZXJ2aWNlO1xufVxuXG4vKipcbiAqIEVuY3J5cHRpb24gY29uZmlndXJhdGlvbiBmb3IgU3RvcmFnZSBBY2NvdW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmFnZUFjY291bnRFbmNyeXB0aW9uIHtcbiAgLyoqXG4gICAqIEVuY3J5cHRpb24gc2VydmljZXMgKGJsb2IsIGZpbGUsIHRhYmxlLCBxdWV1ZSlcbiAgICovXG4gIHJlYWRvbmx5IHNlcnZpY2VzPzogU3RvcmFnZUFjY291bnRFbmNyeXB0aW9uU2VydmljZXM7XG5cbiAgLyoqXG4gICAqIEtleSBzb3VyY2UgKE1pY3Jvc29mdC5TdG9yYWdlIG9yIE1pY3Jvc29mdC5LZXl2YXVsdClcbiAgICovXG4gIHJlYWRvbmx5IGtleVNvdXJjZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0aGUgdW5pZmllZCBBenVyZSBTdG9yYWdlIEFjY291bnRcbiAqXG4gKiBFeHRlbmRzIFZlcnNpb25lZEF6YXBpUmVzb3VyY2VQcm9wcyB3aXRoIFN0b3JhZ2UgQWNjb3VudCBzcGVjaWZpYyBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmFnZUFjY291bnRQcm9wcyBleHRlbmRzIEF6YXBpUmVzb3VyY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgU0tVIChwcmljaW5nIHRpZXIpIGZvciB0aGUgU3RvcmFnZSBBY2NvdW50XG4gICAqIEBleGFtcGxlIHsgbmFtZTogXCJTdGFuZGFyZF9MUlNcIiB9XG4gICAqL1xuICByZWFkb25seSBza3U6IFN0b3JhZ2VBY2NvdW50U2t1O1xuXG4gIC8qKlxuICAgKiBUaGUga2luZCBvZiBTdG9yYWdlIEFjY291bnRcbiAgICogQGRlZmF1bHQgXCJTdG9yYWdlVjJcIlxuICAgKiBAZXhhbXBsZSBcIlN0b3JhZ2VWMlwiLCBcIkJsb2JTdG9yYWdlXCIsIFwiQmxvY2tCbG9iU3RvcmFnZVwiLCBcIkZpbGVTdG9yYWdlXCJcbiAgICovXG4gIHJlYWRvbmx5IGtpbmQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhY2Nlc3MgdGllciBmb3IgYmxvYiBzdG9yYWdlXG4gICAqIEBkZWZhdWx0IFwiSG90XCJcbiAgICogQGV4YW1wbGUgXCJIb3RcIiwgXCJDb29sXCJcbiAgICovXG4gIHJlYWRvbmx5IGFjY2Vzc1RpZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gYWxsb3cgb25seSBIVFRQUyB0cmFmZmljXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZUh0dHBzVHJhZmZpY09ubHk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBUTFMgdmVyc2lvbiByZXF1aXJlZFxuICAgKiBAZGVmYXVsdCBcIlRMUzFfMlwiXG4gICAqL1xuICByZWFkb25seSBtaW5pbXVtVGxzVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBhbGxvdyBwdWJsaWMgYWNjZXNzIHRvIGJsb2JzXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBhbGxvd0Jsb2JQdWJsaWNBY2Nlc3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBOZXR3b3JrIEFDTCBydWxlcyBmb3IgdGhlIHN0b3JhZ2UgYWNjb3VudFxuICAgKi9cbiAgcmVhZG9ubHkgbmV0d29ya0FjbHM/OiBTdG9yYWdlQWNjb3VudE5ldHdvcmtBY2xzO1xuXG4gIC8qKlxuICAgKiBNYW5hZ2VkIGlkZW50aXR5IGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGlkZW50aXR5PzogU3RvcmFnZUFjY291bnRJZGVudGl0eTtcblxuICAvKipcbiAgICogRW5jcnlwdGlvbiBzZXR0aW5nc1xuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbj86IFN0b3JhZ2VBY2NvdW50RW5jcnlwdGlvbjtcblxuICAvKipcbiAgICogVGhlIGxpZmVjeWNsZSBydWxlcyB0byBpZ25vcmUgY2hhbmdlc1xuICAgKiBAZXhhbXBsZSBbXCJ0YWdzXCJdXG4gICAqL1xuICByZWFkb25seSBpZ25vcmVDaGFuZ2VzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFJlc291cmNlIGdyb3VwIElEIHdoZXJlIHRoZSBzdG9yYWdlIGFjY291bnQgd2lsbCBiZSBjcmVhdGVkXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZUdyb3VwSWQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogU3RvcmFnZSBBY2NvdW50IHByb3BlcnRpZXMgZm9yIHRoZSByZXF1ZXN0IGJvZHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdG9yYWdlQWNjb3VudEJvZHlQcm9wZXJ0aWVzIHtcbiAgcmVhZG9ubHkgYWNjZXNzVGllcj86IHN0cmluZztcbiAgcmVhZG9ubHkgc3VwcG9ydHNIdHRwc1RyYWZmaWNPbmx5PzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgbWluaW11bVRsc1ZlcnNpb24/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGFsbG93QmxvYlB1YmxpY0FjY2Vzcz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IG5ldHdvcmtBY2xzPzogU3RvcmFnZUFjY291bnROZXR3b3JrQWNscztcbiAgcmVhZG9ubHkgZW5jcnlwdGlvbj86IFN0b3JhZ2VBY2NvdW50RW5jcnlwdGlvbjtcbn1cblxuLyoqXG4gKiBUaGUgcmVzb3VyY2UgYm9keSBpbnRlcmZhY2UgZm9yIEF6dXJlIFN0b3JhZ2UgQWNjb3VudCBBUEkgY2FsbHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdG9yYWdlQWNjb3VudEJvZHkge1xuICByZWFkb25seSBsb2NhdGlvbjogc3RyaW5nO1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgcmVhZG9ubHkgc2t1OiBTdG9yYWdlQWNjb3VudFNrdTtcbiAgcmVhZG9ubHkga2luZDogc3RyaW5nO1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogU3RvcmFnZUFjY291bnRCb2R5UHJvcGVydGllcztcbiAgcmVhZG9ubHkgaWRlbnRpdHk/OiBTdG9yYWdlQWNjb3VudElkZW50aXR5O1xufVxuXG4vKipcbiAqIFVuaWZpZWQgQXp1cmUgU3RvcmFnZSBBY2NvdW50IGltcGxlbWVudGF0aW9uXG4gKlxuICogVGhpcyBjbGFzcyBwcm92aWRlcyBhIHNpbmdsZSwgdmVyc2lvbi1hd2FyZSBpbXBsZW1lbnRhdGlvbiB0aGF0IHJlcGxhY2VzIGFsbFxuICogdmVyc2lvbi1zcGVjaWZpYyBTdG9yYWdlIEFjY291bnQgY2xhc3Nlcy4gSXQgYXV0b21hdGljYWxseSBoYW5kbGVzIHZlcnNpb25cbiAqIHJlc29sdXRpb24sIHNjaGVtYSB2YWxpZGF0aW9uLCBhbmQgcHJvcGVydHkgdHJhbnNmb3JtYXRpb24gd2hpbGUgbWFpbnRhaW5pbmdcbiAqIGZ1bGwgYmFja3dhcmQgY29tcGF0aWJpbGl0eS5cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQmFzaWMgdXNhZ2Ugd2l0aCBhdXRvbWF0aWMgdmVyc2lvbiByZXNvbHV0aW9uOlxuICogY29uc3Qgc3RvcmFnZUFjY291bnQgPSBuZXcgU3RvcmFnZUFjY291bnQodGhpcywgXCJzdG9yYWdlXCIsIHtcbiAqICAgbmFtZTogXCJteXN0b3JhZ2VhY2NvdW50XCIsXG4gKiAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICogICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gKiAgIHNrdTogeyBuYW1lOiBcIlN0YW5kYXJkX0xSU1wiIH0sXG4gKiB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gVXNhZ2Ugd2l0aCBleHBsaWNpdCB2ZXJzaW9uIHBpbm5pbmc6XG4gKiBjb25zdCBzdG9yYWdlQWNjb3VudCA9IG5ldyBTdG9yYWdlQWNjb3VudCh0aGlzLCBcInN0b3JhZ2VcIiwge1xuICogICBuYW1lOiBcIm15c3RvcmFnZWFjY291bnRcIixcbiAqICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gKiAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAqICAgc2t1OiB7IG5hbWU6IFwiU3RhbmRhcmRfTFJTXCIgfSxcbiAqICAgYXBpVmVyc2lvbjogXCIyMDIzLTA1LTAxXCIsXG4gKiB9KTtcbiAqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgY2xhc3MgU3RvcmFnZUFjY291bnQgZXh0ZW5kcyBBemFwaVJlc291cmNlIHtcbiAgLy8gU3RhdGljIGluaXRpYWxpemVyIHJ1bnMgb25jZSB3aGVuIHRoZSBjbGFzcyBpcyBmaXJzdCBsb2FkZWRcbiAgc3RhdGljIHtcbiAgICBBemFwaVJlc291cmNlLnJlZ2lzdGVyU2NoZW1hcyhcbiAgICAgIFNUT1JBR0VfQUNDT1VOVF9UWVBFLFxuICAgICAgQUxMX1NUT1JBR0VfQUNDT1VOVF9WRVJTSU9OUyxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBwcm9kdWN0aW9uLXJlYWR5IG1vbml0b3JpbmcgY29uZmlndXJhdGlvbiBmb3IgU3RvcmFnZSBBY2NvdW50c1xuICAgKlxuICAgKiBUaGlzIHN0YXRpYyBmYWN0b3J5IG1ldGhvZCBwcm92aWRlcyBhIGNvbXBsZXRlIE1vbml0b3JpbmdDb25maWcgd2l0aCBzZW5zaWJsZSBkZWZhdWx0c1xuICAgKiBmb3Igc3RvcmFnZSBhY2NvdW50IG1vbml0b3JpbmcgaW5jbHVkaW5nIGF2YWlsYWJpbGl0eSwgZWdyZXNzLCB0cmFuc2FjdGlvbnMgYWxlcnRzLCBhbmQgZGVsZXRpb24gdHJhY2tpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBhY3Rpb25Hcm91cElkIC0gVGhlIHJlc291cmNlIElEIG9mIHRoZSBhY3Rpb24gZ3JvdXAgZm9yIGFsZXJ0IG5vdGlmaWNhdGlvbnNcbiAgICogQHBhcmFtIHdvcmtzcGFjZUlkIC0gT3B0aW9uYWwgTG9nIEFuYWx5dGljcyB3b3Jrc3BhY2UgSUQgZm9yIGRpYWdub3N0aWMgc2V0dGluZ3NcbiAgICogQHBhcmFtIG9wdGlvbnMgLSBPcHRpb25hbCBjb25maWd1cmF0aW9uIHRvIGN1c3RvbWl6ZSB0aHJlc2hvbGRzIGFuZCBlbmFibGUvZGlzYWJsZSBzcGVjaWZpYyBhbGVydHNcbiAgICogQHJldHVybnMgQSBjb21wbGV0ZSBNb25pdG9yaW5nQ29uZmlnIG9iamVjdCByZWFkeSB0byB1c2UgaW4gU3RvcmFnZUFjY291bnQgcHJvcHNcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gQmFzaWMgdXNhZ2Ugd2l0aCBhbGwgZGVmYXVsdHNcbiAgICogY29uc3Qgc3RvcmFnZUFjY291bnQgPSBuZXcgU3RvcmFnZUFjY291bnQodGhpcywgXCJzdG9yYWdlXCIsIHtcbiAgICogICAvLyAuLi4gb3RoZXIgcHJvcGVydGllcyAuLi5cbiAgICogICBtb25pdG9yaW5nOiBTdG9yYWdlQWNjb3VudC5kZWZhdWx0TW9uaXRvcmluZyhhY3Rpb25Hcm91cC5pZCwgd29ya3NwYWNlLmlkKVxuICAgKiB9KTtcbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogLy8gQ3VzdG9tIHRocmVzaG9sZHNcbiAgICogY29uc3Qgc3RvcmFnZUFjY291bnQgPSBuZXcgU3RvcmFnZUFjY291bnQodGhpcywgXCJzdG9yYWdlXCIsIHtcbiAgICogICAvLyAuLi4gb3RoZXIgcHJvcGVydGllcyAuLi5cbiAgICogICBtb25pdG9yaW5nOiBTdG9yYWdlQWNjb3VudC5kZWZhdWx0TW9uaXRvcmluZyhcbiAgICogICAgIGFjdGlvbkdyb3VwLmlkLFxuICAgKiAgICAgd29ya3NwYWNlLmlkLFxuICAgKiAgICAge1xuICAgKiAgICAgICBhdmFpbGFiaWxpdHlUaHJlc2hvbGQ6IDk5LjUsXG4gICAqICAgICAgIGVncmVzc1RocmVzaG9sZDogMjE0NzQ4MzY0ODAsIC8vIDIwR0JcbiAgICogICAgICAgZW5hYmxlVHJhbnNhY3Rpb25zQWxlcnQ6IGZhbHNlXG4gICAqICAgICB9XG4gICAqICAgKVxuICAgKiB9KTtcbiAgICpcbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZGVmYXVsdE1vbml0b3JpbmcoXG4gICAgYWN0aW9uR3JvdXBJZDogc3RyaW5nLFxuICAgIHdvcmtzcGFjZUlkPzogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBTdG9yYWdlQWNjb3VudE1vbml0b3JpbmdPcHRpb25zLFxuICApOiBNb25pdG9yaW5nQ29uZmlnIHtcbiAgICBjb25zdCBtZXRyaWNBbGVydHM6IGFueVtdID0gW107XG5cbiAgICAvLyBMb3cgQXZhaWxhYmlsaXR5IEFsZXJ0XG4gICAgaWYgKG9wdGlvbnM/LmVuYWJsZUF2YWlsYWJpbGl0eUFsZXJ0ICE9PSBmYWxzZSkge1xuICAgICAgbWV0cmljQWxlcnRzLnB1c2goe1xuICAgICAgICBuYW1lOiBcImxvdy1hdmFpbGFiaWxpdHktYWxlcnRcIixcbiAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgXCJBbGVydCB3aGVuIHN0b3JhZ2UgYWNjb3VudCBhdmFpbGFiaWxpdHkgZHJvcHMgYmVsb3cgdGhyZXNob2xkXCIsXG4gICAgICAgIHNldmVyaXR5OiAob3B0aW9ucz8uYXZhaWxhYmlsaXR5QWxlcnRTZXZlcml0eSA/PyAxKSBhc1xuICAgICAgICAgIHwgMFxuICAgICAgICAgIHwgMVxuICAgICAgICAgIHwgMlxuICAgICAgICAgIHwgM1xuICAgICAgICAgIHwgNCxcbiAgICAgICAgc2NvcGVzOiBbXSwgLy8gV2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSBieSBiYXNlIGNsYXNzXG4gICAgICAgIGV2YWx1YXRpb25GcmVxdWVuY3k6IFwiUFQ1TVwiLFxuICAgICAgICB3aW5kb3dTaXplOiBcIlBUMTVNXCIsXG4gICAgICAgIGNyaXRlcmlhOiB7XG4gICAgICAgICAgdHlwZTogXCJTdGF0aWNUaHJlc2hvbGRcIiBhcyBjb25zdCxcbiAgICAgICAgICBtZXRyaWNOYW1lOiBcIkF2YWlsYWJpbGl0eVwiLFxuICAgICAgICAgIG1ldHJpY05hbWVzcGFjZTogXCJNaWNyb3NvZnQuU3RvcmFnZS9zdG9yYWdlQWNjb3VudHNcIixcbiAgICAgICAgICBvcGVyYXRvcjogXCJMZXNzVGhhblwiIGFzIGNvbnN0LFxuICAgICAgICAgIHRocmVzaG9sZDogb3B0aW9ucz8uYXZhaWxhYmlsaXR5VGhyZXNob2xkID8/IDk5LjksXG4gICAgICAgICAgdGltZUFnZ3JlZ2F0aW9uOiBcIkF2ZXJhZ2VcIiBhcyBjb25zdCxcbiAgICAgICAgfSxcbiAgICAgICAgYWN0aW9uczogW3sgYWN0aW9uR3JvdXBJZCB9XSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIEhpZ2ggRWdyZXNzIEFsZXJ0XG4gICAgaWYgKG9wdGlvbnM/LmVuYWJsZUVncmVzc0FsZXJ0ICE9PSBmYWxzZSkge1xuICAgICAgbWV0cmljQWxlcnRzLnB1c2goe1xuICAgICAgICBuYW1lOiBcImhpZ2gtZWdyZXNzLWFsZXJ0XCIsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIkFsZXJ0IHdoZW4gc3RvcmFnZSBhY2NvdW50IGVncmVzcyBleGNlZWRzIHRocmVzaG9sZFwiLFxuICAgICAgICBzZXZlcml0eTogKG9wdGlvbnM/LmVncmVzc0FsZXJ0U2V2ZXJpdHkgPz8gMikgYXMgMCB8IDEgfCAyIHwgMyB8IDQsXG4gICAgICAgIHNjb3BlczogW10sIC8vIFdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYnkgYmFzZSBjbGFzc1xuICAgICAgICBldmFsdWF0aW9uRnJlcXVlbmN5OiBcIlBUNU1cIixcbiAgICAgICAgd2luZG93U2l6ZTogXCJQVDFIXCIsXG4gICAgICAgIGNyaXRlcmlhOiB7XG4gICAgICAgICAgdHlwZTogXCJTdGF0aWNUaHJlc2hvbGRcIiBhcyBjb25zdCxcbiAgICAgICAgICBtZXRyaWNOYW1lOiBcIkVncmVzc1wiLFxuICAgICAgICAgIG1ldHJpY05hbWVzcGFjZTogXCJNaWNyb3NvZnQuU3RvcmFnZS9zdG9yYWdlQWNjb3VudHNcIixcbiAgICAgICAgICBvcGVyYXRvcjogXCJHcmVhdGVyVGhhblwiIGFzIGNvbnN0LFxuICAgICAgICAgIHRocmVzaG9sZDogb3B0aW9ucz8uZWdyZXNzVGhyZXNob2xkID8/IDEwNzM3NDE4MjQwLFxuICAgICAgICAgIHRpbWVBZ2dyZWdhdGlvbjogXCJUb3RhbFwiIGFzIGNvbnN0LFxuICAgICAgICB9LFxuICAgICAgICBhY3Rpb25zOiBbeyBhY3Rpb25Hcm91cElkIH1dLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gSGlnaCBUcmFuc2FjdGlvbnMgQWxlcnRcbiAgICBpZiAob3B0aW9ucz8uZW5hYmxlVHJhbnNhY3Rpb25zQWxlcnQgIT09IGZhbHNlKSB7XG4gICAgICBtZXRyaWNBbGVydHMucHVzaCh7XG4gICAgICAgIG5hbWU6IFwiaGlnaC10cmFuc2FjdGlvbnMtYWxlcnRcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiQWxlcnQgd2hlbiBzdG9yYWdlIGFjY291bnQgdHJhbnNhY3Rpb25zIGV4Y2VlZCB0aHJlc2hvbGRcIixcbiAgICAgICAgc2V2ZXJpdHk6IChvcHRpb25zPy50cmFuc2FjdGlvbnNBbGVydFNldmVyaXR5ID8/IDIpIGFzXG4gICAgICAgICAgfCAwXG4gICAgICAgICAgfCAxXG4gICAgICAgICAgfCAyXG4gICAgICAgICAgfCAzXG4gICAgICAgICAgfCA0LFxuICAgICAgICBzY29wZXM6IFtdLCAvLyBXaWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IGJ5IGJhc2UgY2xhc3NcbiAgICAgICAgZXZhbHVhdGlvbkZyZXF1ZW5jeTogXCJQVDVNXCIsXG4gICAgICAgIHdpbmRvd1NpemU6IFwiUFQxNU1cIixcbiAgICAgICAgY3JpdGVyaWE6IHtcbiAgICAgICAgICB0eXBlOiBcIlN0YXRpY1RocmVzaG9sZFwiIGFzIGNvbnN0LFxuICAgICAgICAgIG1ldHJpY05hbWU6IFwiVHJhbnNhY3Rpb25zXCIsXG4gICAgICAgICAgbWV0cmljTmFtZXNwYWNlOiBcIk1pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50c1wiLFxuICAgICAgICAgIG9wZXJhdG9yOiBcIkdyZWF0ZXJUaGFuXCIgYXMgY29uc3QsXG4gICAgICAgICAgdGhyZXNob2xkOiBvcHRpb25zPy50cmFuc2FjdGlvbnNUaHJlc2hvbGQgPz8gMTAwMDAwLFxuICAgICAgICAgIHRpbWVBZ2dyZWdhdGlvbjogXCJUb3RhbFwiIGFzIGNvbnN0LFxuICAgICAgICB9LFxuICAgICAgICBhY3Rpb25zOiBbeyBhY3Rpb25Hcm91cElkIH1dLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gQnVpbGQgZGlhZ25vc3RpYyBzZXR0aW5ncyBpZiB3b3Jrc3BhY2UgSUQgaXMgcHJvdmlkZWRcbiAgICBjb25zdCBkaWFnbm9zdGljU2V0dGluZ3MgPSB3b3Jrc3BhY2VJZFxuICAgICAgPyB7XG4gICAgICAgICAgbmFtZTogXCJzdG9yYWdlLWFjY291bnQtZGlhZ25vc3RpY3NcIixcbiAgICAgICAgICB0YXJnZXRSZXNvdXJjZUlkOiBcIlwiLCAvLyBXaWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IGJ5IGJhc2UgY2xhc3NcbiAgICAgICAgICB3b3Jrc3BhY2VJZDogd29ya3NwYWNlSWQsXG4gICAgICAgICAgbG9nczogW3sgY2F0ZWdvcnlHcm91cDogXCJhbGxMb2dzXCIsIGVuYWJsZWQ6IHRydWUgfV0sXG4gICAgICAgICAgbWV0cmljczogW3sgY2F0ZWdvcnk6IFwiQWxsTWV0cmljc1wiLCBlbmFibGVkOiB0cnVlIH1dLFxuICAgICAgICB9XG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIC8vIEJ1aWxkIGFjdGl2aXR5IGxvZyBhbGVydHNcbiAgICBjb25zdCBhY3Rpdml0eUxvZ0FsZXJ0cyA9XG4gICAgICBvcHRpb25zPy5lbmFibGVEZWxldGlvbkFsZXJ0ICE9PSBmYWxzZVxuICAgICAgICA/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogXCJzdG9yYWdlLWFjY291bnQtZGVsZXRpb24tYWxlcnRcIixcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiQWxlcnQgd2hlbiBzdG9yYWdlIGFjY291bnQgaXMgZGVsZXRlZFwiLFxuICAgICAgICAgICAgICBzY29wZXM6IFtdLCAvLyBXaWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IGJ5IGJhc2UgY2xhc3NcbiAgICAgICAgICAgICAgY29uZGl0aW9uOiB7XG4gICAgICAgICAgICAgICAgYWxsT2Y6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGQ6IFwib3BlcmF0aW9uTmFtZVwiLFxuICAgICAgICAgICAgICAgICAgICBlcXVhbHNWYWx1ZTogXCJNaWNyb3NvZnQuU3RvcmFnZS9zdG9yYWdlQWNjb3VudHMvZGVsZXRlXCIsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGFjdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25Hcm91cHM6IFt7IGFjdGlvbkdyb3VwSWQgfV0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF1cbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAvLyBSZXR1cm4gY29tcGxldGUgY29uZmlnIG9iamVjdFxuICAgIHJldHVybiB7XG4gICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgZGlhZ25vc3RpY1NldHRpbmdzOiBkaWFnbm9zdGljU2V0dGluZ3MsXG4gICAgICBtZXRyaWNBbGVydHM6IG1ldHJpY0FsZXJ0cyxcbiAgICAgIGFjdGl2aXR5TG9nQWxlcnRzOiBhY3Rpdml0eUxvZ0FsZXJ0cyxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHByb3BzOiBTdG9yYWdlQWNjb3VudFByb3BzO1xuXG4gIC8vIE91dHB1dCBwcm9wZXJ0aWVzIGZvciBlYXN5IGFjY2VzcyBhbmQgcmVmZXJlbmNpbmdcbiAgcHVibGljIHJlYWRvbmx5IGlkT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSBsb2NhdGlvbk91dHB1dDogY2RrdGYuVGVycmFmb3JtT3V0cHV0O1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZU91dHB1dDogY2RrdGYuVGVycmFmb3JtT3V0cHV0O1xuICBwdWJsaWMgcmVhZG9ubHkgdGFnc091dHB1dDogY2RrdGYuVGVycmFmb3JtT3V0cHV0O1xuICBwdWJsaWMgcmVhZG9ubHkgcHJpbWFyeUVuZHBvaW50c091dHB1dDogY2RrdGYuVGVycmFmb3JtT3V0cHV0O1xuXG4gIC8vIFB1YmxpYyBwcm9wZXJ0aWVzXG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgQXp1cmUgU3RvcmFnZSBBY2NvdW50IHVzaW5nIHRoZSBWZXJzaW9uZWRBemFwaVJlc291cmNlIGZyYW1ld29ya1xuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBpbnN0YW5jZVxuICAgKiBAcGFyYW0gcHJvcHMgLSBDb25maWd1cmF0aW9uIHByb3BlcnRpZXMgZm9yIHRoZSBTdG9yYWdlIEFjY291bnRcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTdG9yYWdlQWNjb3VudFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG5cbiAgICAvLyBFeHRyYWN0IHByb3BlcnRpZXMgZnJvbSB0aGUgQVpBUEkgcmVzb3VyY2Ugb3V0cHV0c1xuXG4gICAgLy8gQ3JlYXRlIFRlcnJhZm9ybSBvdXRwdXRzXG4gICAgdGhpcy5pZE91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJpZFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5pZCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBJRCBvZiB0aGUgU3RvcmFnZSBBY2NvdW50XCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLmxvY2F0aW9uT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcImxvY2F0aW9uXCIsIHtcbiAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59LmxvY2F0aW9ufWAsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgbG9jYXRpb24gb2YgdGhlIFN0b3JhZ2UgQWNjb3VudFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5uYW1lT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcIm5hbWVcIiwge1xuICAgICAgdmFsdWU6IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ubmFtZX1gLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIG5hbWUgb2YgdGhlIFN0b3JhZ2UgQWNjb3VudFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy50YWdzT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcInRhZ3NcIiwge1xuICAgICAgdmFsdWU6IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0udGFnc31gLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIHRhZ3MgYXNzaWduZWQgdG8gdGhlIFN0b3JhZ2UgQWNjb3VudFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5wcmltYXJ5RW5kcG9pbnRzT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBcInByaW1hcnlfZW5kcG9pbnRzXCIsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLnByaW1hcnlFbmRwb2ludHN9YCxcbiAgICAgICAgZGVzY3JpcHRpb246IFwiVGhlIHByaW1hcnkgZW5kcG9pbnRzIG9mIHRoZSBTdG9yYWdlIEFjY291bnRcIixcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIC8vIE92ZXJyaWRlIGxvZ2ljYWwgSURzXG4gICAgdGhpcy5pZE91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcImlkXCIpO1xuICAgIHRoaXMubG9jYXRpb25PdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJsb2NhdGlvblwiKTtcbiAgICB0aGlzLm5hbWVPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJuYW1lXCIpO1xuICAgIHRoaXMudGFnc091dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcInRhZ3NcIik7XG4gICAgdGhpcy5wcmltYXJ5RW5kcG9pbnRzT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwicHJpbWFyeV9lbmRwb2ludHNcIik7XG5cbiAgICAvLyBBcHBseSBpZ25vcmUgY2hhbmdlcyBpZiBzcGVjaWZpZWRcbiAgICB0aGlzLl9hcHBseUlnbm9yZUNoYW5nZXMoKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFJFUVVJUkVEIEFCU1RSQUNUIE1FVEhPRFMgRlJPTSBWZXJzaW9uZWRBemFwaVJlc291cmNlXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGRlZmF1bHQgQVBJIHZlcnNpb24gdG8gdXNlIHdoZW4gbm8gZXhwbGljaXQgdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAgICovXG4gIHByb3RlY3RlZCBkZWZhdWx0VmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIjIwMjQtMDEtMDFcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBenVyZSByZXNvdXJjZSB0eXBlIGZvciBTdG9yYWdlIEFjY291bnRzXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVzb3VyY2VUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFNUT1JBR0VfQUNDT1VOVF9UWVBFO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIEFQSSBzY2hlbWEgZm9yIHRoZSByZXNvbHZlZCB2ZXJzaW9uXG4gICAqL1xuICBwcm90ZWN0ZWQgYXBpU2NoZW1hKCk6IEFwaVNjaGVtYSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZVNjaGVtYSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IGxvY2F0aW9uIGlzIHJlcXVpcmVkIGZvciBTdG9yYWdlIEFjY291bnRzXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVxdWlyZXNMb2NhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSByZXNvdXJjZSBib2R5IGZvciB0aGUgQXp1cmUgQVBJIGNhbGxcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVSZXNvdXJjZUJvZHkocHJvcHM6IGFueSk6IGFueSB7XG4gICAgY29uc3QgdHlwZWRQcm9wcyA9IHByb3BzIGFzIFN0b3JhZ2VBY2NvdW50UHJvcHM7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvY2F0aW9uOiB0aGlzLmxvY2F0aW9uLFxuICAgICAgdGFnczogdGhpcy5hbGxUYWdzKCksXG4gICAgICBza3U6IHR5cGVkUHJvcHMuc2t1LFxuICAgICAga2luZDogdHlwZWRQcm9wcy5raW5kIHx8IFwiU3RvcmFnZVYyXCIsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIGFjY2Vzc1RpZXI6IHR5cGVkUHJvcHMuYWNjZXNzVGllciB8fCBcIkhvdFwiLFxuICAgICAgICBzdXBwb3J0c0h0dHBzVHJhZmZpY09ubHk6IHR5cGVkUHJvcHMuZW5hYmxlSHR0cHNUcmFmZmljT25seSAhPT0gZmFsc2UsXG4gICAgICAgIG1pbmltdW1UbHNWZXJzaW9uOiB0eXBlZFByb3BzLm1pbmltdW1UbHNWZXJzaW9uIHx8IFwiVExTMV8yXCIsXG4gICAgICAgIGFsbG93QmxvYlB1YmxpY0FjY2VzczogdHlwZWRQcm9wcy5hbGxvd0Jsb2JQdWJsaWNBY2Nlc3MgfHwgZmFsc2UsXG4gICAgICAgIG5ldHdvcmtBY2xzOiB0eXBlZFByb3BzLm5ldHdvcmtBY2xzLFxuICAgICAgICBlbmNyeXB0aW9uOiB0eXBlZFByb3BzLmVuY3J5cHRpb24sXG4gICAgICB9LFxuICAgICAgaWRlbnRpdHk6IHR5cGVkUHJvcHMuaWRlbnRpdHksXG4gICAgfTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFBVQkxJQyBNRVRIT0RTIEZPUiBTVE9SQUdFIEFDQ09VTlQgT1BFUkFUSU9OU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHByaW1hcnkgYmxvYiBlbmRwb2ludFxuICAgKi9cbiAgcHVibGljIGdldCBwcmltYXJ5QmxvYkVuZHBvaW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ub3V0cHV0LnByb3BlcnRpZXMucHJpbWFyeUVuZHBvaW50cy5ibG9ifWA7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBwcmltYXJ5IGZpbGUgZW5kcG9pbnRcbiAgICovXG4gIHB1YmxpYyBnZXQgcHJpbWFyeUZpbGVFbmRwb2ludCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLnByaW1hcnlFbmRwb2ludHMuZmlsZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcHJpbWFyeSBxdWV1ZSBlbmRwb2ludFxuICAgKi9cbiAgcHVibGljIGdldCBwcmltYXJ5UXVldWVFbmRwb2ludCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLnByaW1hcnlFbmRwb2ludHMucXVldWV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHByaW1hcnkgdGFibGUgZW5kcG9pbnRcbiAgICovXG4gIHB1YmxpYyBnZXQgcHJpbWFyeVRhYmxlRW5kcG9pbnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5vdXRwdXQucHJvcGVydGllcy5wcmltYXJ5RW5kcG9pbnRzLnRhYmxlfWA7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgdGFnIHRvIHRoZSBTdG9yYWdlIEFjY291bnRcbiAgICovXG4gIHB1YmxpYyBhZGRUYWcoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucHJvcHMudGFncykge1xuICAgICAgKHRoaXMucHJvcHMgYXMgYW55KS50YWdzID0ge307XG4gICAgfVxuICAgIHRoaXMucHJvcHMudGFncyFba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIHRhZyBmcm9tIHRoZSBTdG9yYWdlIEFjY291bnRcbiAgICovXG4gIHB1YmxpYyByZW1vdmVUYWcoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy50YWdzICYmIHRoaXMucHJvcHMudGFnc1trZXldKSB7XG4gICAgICBkZWxldGUgdGhpcy5wcm9wcy50YWdzW2tleV07XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUFJJVkFURSBIRUxQRVIgTUVUSE9EU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIGlnbm9yZSBjaGFuZ2VzIGxpZmVjeWNsZSBydWxlcyBpZiBzcGVjaWZpZWQgaW4gcHJvcHNcbiAgICovXG4gIHByaXZhdGUgX2FwcGx5SWdub3JlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy5pZ25vcmVDaGFuZ2VzICYmIHRoaXMucHJvcHMuaWdub3JlQ2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnRlcnJhZm9ybVJlc291cmNlLmFkZE92ZXJyaWRlKFwibGlmZWN5Y2xlXCIsIFtcbiAgICAgICAge1xuICAgICAgICAgIGlnbm9yZV9jaGFuZ2VzOiB0aGlzLnByb3BzLmlnbm9yZUNoYW5nZXMsXG4gICAgICAgIH0sXG4gICAgICBdKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -10,54 +10,133 @@
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
11
  const cdktf_1 = require("cdktf");
12
12
  require("cdktf/lib/testing/adapters/jest");
13
+ const azure_actiongroup_1 = require("../../azure-actiongroup");
13
14
  const azure_resourcegroup_1 = require("../../azure-resourcegroup");
14
15
  const provider_1 = require("../../core-azure/lib/azapi/providers-azapi/provider");
15
16
  const testing_1 = require("../../testing");
17
+ const metadata_1 = require("../../testing/lib/metadata");
16
18
  const storage_account_1 = require("../lib/storage-account");
19
+ // Generate unique test run metadata for this test suite
20
+ const testMetadata = new metadata_1.TestRunMetadata("storage-account-integration", {
21
+ maxAgeHours: 4,
22
+ });
17
23
  /**
18
24
  * Example stack demonstrating Storage Account usage
19
25
  */
20
- class StorageAccountExampleStack extends cdktf_1.TerraformStack {
26
+ class StorageAccountExampleStack extends testing_1.BaseTestStack {
21
27
  constructor(scope, id) {
22
- super(scope, id);
28
+ super(scope, id, {
29
+ testRunOptions: {
30
+ maxAgeHours: testMetadata.maxAgeHours,
31
+ autoCleanup: testMetadata.autoCleanup,
32
+ cleanupPolicy: testMetadata.cleanupPolicy,
33
+ },
34
+ });
23
35
  // Configure AZAPI provider
24
36
  new provider_1.AzapiProvider(this, "azapi", {});
37
+ // Generate unique names
38
+ const rgName = this.generateResourceName("Microsoft.Resources/resourceGroups", "storage");
25
39
  // Create a resource group
26
40
  const resourceGroup = new azure_resourcegroup_1.ResourceGroup(this, "example-rg", {
27
- name: "storage-example-rg",
41
+ name: rgName,
28
42
  location: "eastus",
29
43
  tags: {
30
- environment: "example",
31
- purpose: "integration-test",
44
+ ...this.systemTags(),
32
45
  },
33
46
  });
47
+ // Create an action group for monitoring alerts
48
+ const actionGroup = new azure_actiongroup_1.ActionGroup(this, "example-action-group", {
49
+ name: "storage-monitoring-ag",
50
+ location: "global",
51
+ resourceGroupId: resourceGroup.id,
52
+ groupShortName: "stralert",
53
+ emailReceivers: [
54
+ {
55
+ name: "admin-email",
56
+ emailAddress: "admin@example.com",
57
+ },
58
+ ],
59
+ });
60
+ // Generate unique storage account names (must be globally unique, lowercase, no hyphens)
61
+ const basicStorageName = this.generateResourceName("Microsoft.Storage/storageAccounts", "basic");
62
+ const versionedStorageName = this.generateResourceName("Microsoft.Storage/storageAccounts", "versioned");
63
+ const monitoredStorageName = this.generateResourceName("Microsoft.Storage/storageAccounts", "monitored");
64
+ const customMonitoredStorageName = this.generateResourceName("Microsoft.Storage/storageAccounts", "custmon");
65
+ const selectiveMonitoredStorageName = this.generateResourceName("Microsoft.Storage/storageAccounts", "selmon");
34
66
  // Example 1: Basic storage account
35
67
  new storage_account_1.StorageAccount(this, "basic-storage", {
36
- name: "basicstorageexample",
68
+ name: basicStorageName,
37
69
  location: resourceGroup.props.location,
38
70
  resourceGroupId: resourceGroup.id,
39
71
  sku: { name: "Standard_LRS" },
40
72
  tags: {
73
+ ...this.systemTags(),
41
74
  example: "basic",
42
75
  },
43
76
  });
44
77
  // Example 2: Storage account with specific version
45
78
  new storage_account_1.StorageAccount(this, "versioned-storage", {
46
- name: "versionedstorageex",
79
+ name: versionedStorageName,
47
80
  location: resourceGroup.props.location,
48
81
  resourceGroupId: resourceGroup.id,
49
82
  sku: { name: "Standard_GRS" },
50
83
  apiVersion: "2023-05-01",
51
84
  tags: {
85
+ ...this.systemTags(),
52
86
  example: "versioned",
53
87
  },
54
88
  });
89
+ // Example 3: Storage account with monitoring
90
+ new storage_account_1.StorageAccount(this, "monitored-storage", {
91
+ name: monitoredStorageName,
92
+ location: resourceGroup.props.location,
93
+ resourceGroupId: resourceGroup.id,
94
+ sku: { name: "Standard_LRS" },
95
+ monitoring: storage_account_1.StorageAccount.defaultMonitoring(actionGroup.id),
96
+ tags: {
97
+ ...this.systemTags(),
98
+ example: "monitored",
99
+ },
100
+ });
101
+ // Example 4: Storage account with custom monitoring thresholds
102
+ new storage_account_1.StorageAccount(this, "custom-monitored-storage", {
103
+ name: customMonitoredStorageName,
104
+ location: resourceGroup.props.location,
105
+ resourceGroupId: resourceGroup.id,
106
+ sku: { name: "Standard_GRS" },
107
+ monitoring: storage_account_1.StorageAccount.defaultMonitoring(actionGroup.id, undefined, {
108
+ availabilityThreshold: 99.5,
109
+ egressThreshold: 21474836480, // 20GB
110
+ transactionsThreshold: 200000,
111
+ availabilityAlertSeverity: 0, // Critical
112
+ egressAlertSeverity: 1, // Error
113
+ transactionsAlertSeverity: 2, // Warning
114
+ }),
115
+ tags: {
116
+ ...this.systemTags(),
117
+ example: "custom-monitored",
118
+ },
119
+ });
120
+ // Example 5: Storage account with selective monitoring
121
+ new storage_account_1.StorageAccount(this, "selective-monitored-storage", {
122
+ name: selectiveMonitoredStorageName,
123
+ location: resourceGroup.props.location,
124
+ resourceGroupId: resourceGroup.id,
125
+ sku: { name: "Standard_RAGRS" },
126
+ monitoring: storage_account_1.StorageAccount.defaultMonitoring(actionGroup.id, undefined, {
127
+ enableAvailabilityAlert: true,
128
+ enableEgressAlert: false, // Disable egress alert
129
+ enableTransactionsAlert: true,
130
+ enableDeletionAlert: false, // Disable deletion alert
131
+ }),
132
+ tags: {
133
+ ...this.systemTags(),
134
+ example: "selective-monitored",
135
+ },
136
+ });
55
137
  }
56
138
  }
57
139
  describe("Storage Account Integration Test", () => {
58
- afterAll(() => {
59
- (0, testing_1.cleanupCdkTfOutDirs)();
60
- });
61
140
  it("should deploy, validate idempotency, and cleanup storage account resources", () => {
62
141
  const app = cdktf_1.Testing.app();
63
142
  const stack = new StorageAccountExampleStack(app, "test-storage-account");
@@ -66,7 +145,7 @@ describe("Storage Account Integration Test", () => {
66
145
  // 1. Run terraform apply to deploy resources
67
146
  // 2. Run terraform plan to check idempotency (no changes expected)
68
147
  // 3. Run terraform destroy to cleanup resources
69
- (0, testing_1.TerraformApplyCheckAndDestroy)(synthesized);
148
+ (0, testing_1.TerraformApplyCheckAndDestroy)(synthesized, { verifyCleanup: true });
70
149
  }, 600000); // 10 minute timeout for deployment and cleanup
71
150
  });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1hY2NvdW50LmludGVnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLXN0b3JhZ2VhY2NvdW50L3Rlc3Qvc3RvcmFnZS1hY2NvdW50LmludGVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7OztHQU9HOztBQUVILGlDQUFnRDtBQUVoRCwyQ0FBeUM7QUFDekMsbUVBQTBEO0FBQzFELGtGQUFvRjtBQUNwRiwyQ0FHdUI7QUFDdkIsNERBQXdEO0FBRXhEOztHQUVHO0FBQ0gsTUFBTSwwQkFBMkIsU0FBUSxzQkFBYztJQUNyRCxZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUN0QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLDJCQUEyQjtRQUMzQixJQUFJLHdCQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVyQywwQkFBMEI7UUFDMUIsTUFBTSxhQUFhLEdBQUcsSUFBSSxtQ0FBYSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUU7WUFDMUQsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixRQUFRLEVBQUUsUUFBUTtZQUNsQixJQUFJLEVBQUU7Z0JBQ0osV0FBVyxFQUFFLFNBQVM7Z0JBQ3RCLE9BQU8sRUFBRSxrQkFBa0I7YUFDNUI7U0FDRixDQUFDLENBQUM7UUFFSCxtQ0FBbUM7UUFDbkMsSUFBSSxnQ0FBYyxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUU7WUFDeEMsSUFBSSxFQUFFLHFCQUFxQjtZQUMzQixRQUFRLEVBQUUsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFTO1lBQ3ZDLGVBQWUsRUFBRSxhQUFhLENBQUMsRUFBRTtZQUNqQyxHQUFHLEVBQUUsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFO1lBQzdCLElBQUksRUFBRTtnQkFDSixPQUFPLEVBQUUsT0FBTzthQUNqQjtTQUNGLENBQUMsQ0FBQztRQUVILG1EQUFtRDtRQUNuRCxJQUFJLGdDQUFjLENBQUMsSUFBSSxFQUFFLG1CQUFtQixFQUFFO1lBQzVDLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsUUFBUztZQUN2QyxlQUFlLEVBQUUsYUFBYSxDQUFDLEVBQUU7WUFDakMsR0FBRyxFQUFFLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRTtZQUM3QixVQUFVLEVBQUUsWUFBWTtZQUN4QixJQUFJLEVBQUU7Z0JBQ0osT0FBTyxFQUFFLFdBQVc7YUFDckI7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFFRCxRQUFRLENBQUMsa0NBQWtDLEVBQUUsR0FBRyxFQUFFO0lBQ2hELFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDWixJQUFBLDZCQUFtQixHQUFFLENBQUM7SUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsNEVBQTRFLEVBQUUsR0FBRyxFQUFFO1FBQ3BGLE1BQU0sR0FBRyxHQUFHLGVBQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUMxQixNQUFNLEtBQUssR0FBRyxJQUFJLDBCQUEwQixDQUFDLEdBQUcsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sV0FBVyxHQUFHLGVBQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFN0MsYUFBYTtRQUNiLDZDQUE2QztRQUM3QyxtRUFBbUU7UUFDbkUsZ0RBQWdEO1FBQ2hELElBQUEsdUNBQTZCLEVBQUMsV0FBVyxDQUFDLENBQUM7SUFDN0MsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsK0NBQStDO0FBQzdELENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJbnRlZ3JhdGlvbiB0ZXN0IGZvciBBenVyZSBTdG9yYWdlIEFjY291bnRcbiAqXG4gKiBUaGlzIHRlc3QgZGVtb25zdHJhdGVzIGJhc2ljIHVzYWdlIG9mIHRoZSBTdG9yYWdlQWNjb3VudCBjb25zdHJ1Y3RcbiAqIGFuZCB2YWxpZGF0ZXMgZGVwbG95bWVudCwgaWRlbXBvdGVuY3ksIGFuZCBjbGVhbnVwLlxuICpcbiAqIFJ1biB3aXRoOiBucG0gcnVuIGludGVncmF0aW9uOm5vc3RyZWFtXG4gKi9cblxuaW1wb3J0IHsgVGVzdGluZywgVGVycmFmb3JtU3RhY2sgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgXCJjZGt0Zi9saWIvdGVzdGluZy9hZGFwdGVycy9qZXN0XCI7XG5pbXBvcnQgeyBSZXNvdXJjZUdyb3VwIH0gZnJvbSBcIi4uLy4uL2F6dXJlLXJlc291cmNlZ3JvdXBcIjtcbmltcG9ydCB7IEF6YXBpUHJvdmlkZXIgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvYXphcGkvcHJvdmlkZXJzLWF6YXBpL3Byb3ZpZGVyXCI7XG5pbXBvcnQge1xuICBUZXJyYWZvcm1BcHBseUNoZWNrQW5kRGVzdHJveSxcbiAgY2xlYW51cENka1RmT3V0RGlycyxcbn0gZnJvbSBcIi4uLy4uL3Rlc3RpbmdcIjtcbmltcG9ydCB7IFN0b3JhZ2VBY2NvdW50IH0gZnJvbSBcIi4uL2xpYi9zdG9yYWdlLWFjY291bnRcIjtcblxuLyoqXG4gKiBFeGFtcGxlIHN0YWNrIGRlbW9uc3RyYXRpbmcgU3RvcmFnZSBBY2NvdW50IHVzYWdlXG4gKi9cbmNsYXNzIFN0b3JhZ2VBY2NvdW50RXhhbXBsZVN0YWNrIGV4dGVuZHMgVGVycmFmb3JtU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vIENvbmZpZ3VyZSBBWkFQSSBwcm92aWRlclxuICAgIG5ldyBBemFwaVByb3ZpZGVyKHRoaXMsIFwiYXphcGlcIiwge30pO1xuXG4gICAgLy8gQ3JlYXRlIGEgcmVzb3VyY2UgZ3JvdXBcbiAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAodGhpcywgXCJleGFtcGxlLXJnXCIsIHtcbiAgICAgIG5hbWU6IFwic3RvcmFnZS1leGFtcGxlLXJnXCIsXG4gICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgZW52aXJvbm1lbnQ6IFwiZXhhbXBsZVwiLFxuICAgICAgICBwdXJwb3NlOiBcImludGVncmF0aW9uLXRlc3RcIixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBFeGFtcGxlIDE6IEJhc2ljIHN0b3JhZ2UgYWNjb3VudFxuICAgIG5ldyBTdG9yYWdlQWNjb3VudCh0aGlzLCBcImJhc2ljLXN0b3JhZ2VcIiwge1xuICAgICAgbmFtZTogXCJiYXNpY3N0b3JhZ2VleGFtcGxlXCIsXG4gICAgICBsb2NhdGlvbjogcmVzb3VyY2VHcm91cC5wcm9wcy5sb2NhdGlvbiEsXG4gICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICBza3U6IHsgbmFtZTogXCJTdGFuZGFyZF9MUlNcIiB9LFxuICAgICAgdGFnczoge1xuICAgICAgICBleGFtcGxlOiBcImJhc2ljXCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gRXhhbXBsZSAyOiBTdG9yYWdlIGFjY291bnQgd2l0aCBzcGVjaWZpYyB2ZXJzaW9uXG4gICAgbmV3IFN0b3JhZ2VBY2NvdW50KHRoaXMsIFwidmVyc2lvbmVkLXN0b3JhZ2VcIiwge1xuICAgICAgbmFtZTogXCJ2ZXJzaW9uZWRzdG9yYWdlZXhcIixcbiAgICAgIGxvY2F0aW9uOiByZXNvdXJjZUdyb3VwLnByb3BzLmxvY2F0aW9uISxcbiAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgIHNrdTogeyBuYW1lOiBcIlN0YW5kYXJkX0dSU1wiIH0sXG4gICAgICBhcGlWZXJzaW9uOiBcIjIwMjMtMDUtMDFcIixcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgZXhhbXBsZTogXCJ2ZXJzaW9uZWRcIixcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cblxuZGVzY3JpYmUoXCJTdG9yYWdlIEFjY291bnQgSW50ZWdyYXRpb24gVGVzdFwiLCAoKSA9PiB7XG4gIGFmdGVyQWxsKCgpID0+IHtcbiAgICBjbGVhbnVwQ2RrVGZPdXREaXJzKCk7XG4gIH0pO1xuXG4gIGl0KFwic2hvdWxkIGRlcGxveSwgdmFsaWRhdGUgaWRlbXBvdGVuY3ksIGFuZCBjbGVhbnVwIHN0b3JhZ2UgYWNjb3VudCByZXNvdXJjZXNcIiwgKCkgPT4ge1xuICAgIGNvbnN0IGFwcCA9IFRlc3RpbmcuYXBwKCk7XG4gICAgY29uc3Qgc3RhY2sgPSBuZXcgU3RvcmFnZUFjY291bnRFeGFtcGxlU3RhY2soYXBwLCBcInRlc3Qtc3RvcmFnZS1hY2NvdW50XCIpO1xuICAgIGNvbnN0IHN5bnRoZXNpemVkID0gVGVzdGluZy5mdWxsU3ludGgoc3RhY2spO1xuXG4gICAgLy8gVGhpcyB3aWxsOlxuICAgIC8vIDEuIFJ1biB0ZXJyYWZvcm0gYXBwbHkgdG8gZGVwbG95IHJlc291cmNlc1xuICAgIC8vIDIuIFJ1biB0ZXJyYWZvcm0gcGxhbiB0byBjaGVjayBpZGVtcG90ZW5jeSAobm8gY2hhbmdlcyBleHBlY3RlZClcbiAgICAvLyAzLiBSdW4gdGVycmFmb3JtIGRlc3Ryb3kgdG8gY2xlYW51cCByZXNvdXJjZXNcbiAgICBUZXJyYWZvcm1BcHBseUNoZWNrQW5kRGVzdHJveShzeW50aGVzaXplZCk7XG4gIH0sIDYwMDAwMCk7IC8vIDEwIG1pbnV0ZSB0aW1lb3V0IGZvciBkZXBsb3ltZW50IGFuZCBjbGVhbnVwXG59KTtcbiJdfQ==
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1hY2NvdW50LmludGVnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLXN0b3JhZ2VhY2NvdW50L3Rlc3Qvc3RvcmFnZS1hY2NvdW50LmludGVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7OztHQU9HOztBQUVILGlDQUFnQztBQUVoQywyQ0FBeUM7QUFDekMsK0RBQXNEO0FBQ3RELG1FQUEwRDtBQUMxRCxrRkFBb0Y7QUFDcEYsMkNBQTZFO0FBQzdFLHlEQUE2RDtBQUM3RCw0REFBd0Q7QUFFeEQsd0RBQXdEO0FBQ3hELE1BQU0sWUFBWSxHQUFHLElBQUksMEJBQWUsQ0FBQyw2QkFBNkIsRUFBRTtJQUN0RSxXQUFXLEVBQUUsQ0FBQztDQUNmLENBQUMsQ0FBQztBQUVIOztHQUVHO0FBQ0gsTUFBTSwwQkFBMkIsU0FBUSx1QkFBYTtJQUNwRCxZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUN0QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRTtZQUNmLGNBQWMsRUFBRTtnQkFDZCxXQUFXLEVBQUUsWUFBWSxDQUFDLFdBQVc7Z0JBQ3JDLFdBQVcsRUFBRSxZQUFZLENBQUMsV0FBVztnQkFDckMsYUFBYSxFQUFFLFlBQVksQ0FBQyxhQUFhO2FBQzFDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsMkJBQTJCO1FBQzNCLElBQUksd0JBQWEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXJDLHdCQUF3QjtRQUN4QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQ3RDLG9DQUFvQyxFQUNwQyxTQUFTLENBQ1YsQ0FBQztRQUVGLDBCQUEwQjtRQUMxQixNQUFNLGFBQWEsR0FBRyxJQUFJLG1DQUFhLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUMxRCxJQUFJLEVBQUUsTUFBTTtZQUNaLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLElBQUksRUFBRTtnQkFD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QUFFLENBQUMsNEVBQTRFLEVBQUUsR0FBRyxFQUFFO1FBQ3BGLE1BQU0sR0FBRyxHQUFHLGVBQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUMxQixNQUFNLEtBQUssR0FBRyxJQUFJLDBCQUEwQixDQUFDLEdBQUcsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1FBQzFFLE1BQU0sV0FBVyxHQUFHLGVBQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFN0MsYUFBYTtRQUNiLDZDQUE2QztRQUM3QyxtRUFBbUU7UUFDbkUsZ0RBQWdEO1FBQ2hELElBQUEsdUNBQTZCLEVBQUMsV0FBVyxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsK0NBQStDO0FBQzdELENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJbnRlZ3JhdGlvbiB0ZXN0IGZvciBBenVyZSBTdG9yYWdlIEFjY291bnRcbiAqXG4gKiBUaGlzIHRlc3QgZGVtb25zdHJhdGVzIGJhc2ljIHVzYWdlIG9mIHRoZSBTdG9yYWdlQWNjb3VudCBjb25zdHJ1Y3RcbiAqIGFuZCB2YWxpZGF0ZXMgZGVwbG95bWVudCwgaWRlbXBvdGVuY3ksIGFuZCBjbGVhbnVwLlxuICpcbiAqIFJ1biB3aXRoOiBucG0gcnVuIGludGVncmF0aW9uOm5vc3RyZWFtXG4gKi9cblxuaW1wb3J0IHsgVGVzdGluZyB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCBcImNka3RmL2xpYi90ZXN0aW5nL2FkYXB0ZXJzL2plc3RcIjtcbmltcG9ydCB7IEFjdGlvbkdyb3VwIH0gZnJvbSBcIi4uLy4uL2F6dXJlLWFjdGlvbmdyb3VwXCI7XG5pbXBvcnQgeyBSZXNvdXJjZUdyb3VwIH0gZnJvbSBcIi4uLy4uL2F6dXJlLXJlc291cmNlZ3JvdXBcIjtcbmltcG9ydCB7IEF6YXBpUHJvdmlkZXIgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvYXphcGkvcHJvdmlkZXJzLWF6YXBpL3Byb3ZpZGVyXCI7XG5pbXBvcnQgeyBCYXNlVGVzdFN0YWNrLCBUZXJyYWZvcm1BcHBseUNoZWNrQW5kRGVzdHJveSB9IGZyb20gXCIuLi8uLi90ZXN0aW5nXCI7XG5pbXBvcnQgeyBUZXN0UnVuTWV0YWRhdGEgfSBmcm9tIFwiLi4vLi4vdGVzdGluZy9saWIvbWV0YWRhdGFcIjtcbmltcG9ydCB7IFN0b3JhZ2VBY2NvdW50IH0gZnJvbSBcIi4uL2xpYi9zdG9yYWdlLWFjY291bnRcIjtcblxuLy8gR2VuZXJhdGUgdW5pcXVlIHRlc3QgcnVuIG1ldGFkYXRhIGZvciB0aGlzIHRlc3Qgc3VpdGVcbmNvbnN0IHRlc3RNZXRhZGF0YSA9IG5ldyBUZXN0UnVuTWV0YWRhdGEoXCJzdG9yYWdlLWFjY291bnQtaW50ZWdyYXRpb25cIiwge1xuICBtYXhBZ2VIb3VyczogNCxcbn0pO1xuXG4vKipcbiAqIEV4YW1wbGUgc3RhY2sgZGVtb25zdHJhdGluZyBTdG9yYWdlIEFjY291bnQgdXNhZ2VcbiAqL1xuY2xhc3MgU3RvcmFnZUFjY291bnRFeGFtcGxlU3RhY2sgZXh0ZW5kcyBCYXNlVGVzdFN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgdGVzdFJ1bk9wdGlvbnM6IHtcbiAgICAgICAgbWF4QWdlSG91cnM6IHRlc3RNZXRhZGF0YS5tYXhBZ2VIb3VycyxcbiAgICAgICAgYXV0b0NsZWFudXA6IHRlc3RNZXRhZGF0YS5hdXRvQ2xlYW51cCxcbiAgICAgICAgY2xlYW51cFBvbGljeTogdGVzdE1ldGFkYXRhLmNsZWFudXBQb2xpY3ksXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gQ29uZmlndXJlIEFaQVBJIHByb3ZpZGVyXG4gICAgbmV3IEF6YXBpUHJvdmlkZXIodGhpcywgXCJhemFwaVwiLCB7fSk7XG5cbiAgICAvLyBHZW5lcmF0ZSB1bmlxdWUgbmFtZXNcbiAgICBjb25zdCByZ05hbWUgPSB0aGlzLmdlbmVyYXRlUmVzb3VyY2VOYW1lKFxuICAgICAgXCJNaWNyb3NvZnQuUmVzb3VyY2VzL3Jlc291cmNlR3JvdXBzXCIsXG4gICAgICBcInN0b3JhZ2VcIixcbiAgICApO1xuXG4gICAgLy8gQ3JlYXRlIGEgcmVzb3VyY2UgZ3JvdXBcbiAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAodGhpcywgXCJleGFtcGxlLXJnXCIsIHtcbiAgICAgIG5hbWU6IHJnTmFtZSxcbiAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgdGFnczoge1xuICAgICAgICAuLi50aGlzLnN5c3RlbVRhZ3MoKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBDcmVhdGUgYW4gYWN0aW9uIGdyb3VwIGZvciBtb25pdG9yaW5nIGFsZXJ0c1xuICAgIGNvbnN0IGFjdGlvbkdyb3VwID0gbmV3IEFjdGlvbkdyb3VwKHRoaXMsIFwiZXhhbXBsZS1hY3Rpb24tZ3JvdXBcIiwge1xuICAgICAgbmFtZTogXCJzdG9yYWdlLW1vbml0b3JpbmctYWdcIixcbiAgICAgIGxvY2F0aW9uOiBcImdsb2JhbFwiLFxuICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgZ3JvdXBTaG9ydE5hbWU6IFwic3RyYWxlcnRcIixcbiAgICAgIGVtYWlsUmVjZWl2ZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcImFkbWluLWVtYWlsXCIsXG4gICAgICAgICAgZW1haWxBZGRyZXNzOiBcImFkbWluQGV4YW1wbGUuY29tXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgLy8gR2VuZXJhdGUgdW5pcXVlIHN0b3JhZ2UgYWNjb3VudCBuYW1lcyAobXVzdCBiZSBnbG9iYWxseSB1bmlxdWUsIGxvd2VyY2FzZSwgbm8gaHlwaGVucylcbiAgICBjb25zdCBiYXNpY1N0b3JhZ2VOYW1lID0gdGhpcy5nZW5lcmF0ZVJlc291cmNlTmFtZShcbiAgICAgIFwiTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzXCIsXG4gICAgICBcImJhc2ljXCIsXG4gICAgKTtcbiAgICBjb25zdCB2ZXJzaW9uZWRTdG9yYWdlTmFtZSA9IHRoaXMuZ2VuZXJhdGVSZXNvdXJjZU5hbWUoXG4gICAgICBcIk1pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50c1wiLFxuICAgICAgXCJ2ZXJzaW9uZWRcIixcbiAgICApO1xuICAgIGNvbnN0IG1vbml0b3JlZFN0b3JhZ2VOYW1lID0gdGhpcy5nZW5lcmF0ZVJlc291cmNlTmFtZShcbiAgICAgIFwiTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzXCIsXG4gICAgICBcIm1vbml0b3JlZFwiLFxuICAgICk7XG4gICAgY29uc3QgY3VzdG9tTW9uaXRvcmVkU3RvcmFnZU5hbWUgPSB0aGlzLmdlbmVyYXRlUmVzb3VyY2VOYW1lKFxuICAgICAgXCJNaWNyb3NvZnQuU3RvcmFnZS9zdG9yYWdlQWNjb3VudHNcIixcbiAgICAgIFwiY3VzdG1vblwiLFxuICAgICk7XG4gICAgY29uc3Qgc2VsZWN0aXZlTW9uaXRvcmVkU3RvcmFnZU5hbWUgPSB0aGlzLmdlbmVyYXRlUmVzb3VyY2VOYW1lKFxuICAgICAgXCJNaWNyb3NvZnQuU3RvcmFnZS9zdG9yYWdlQWNjb3VudHNcIixcbiAgICAgIFwic2VsbW9uXCIsXG4gICAgKTtcblxuICAgIC8vIEV4YW1wbGUgMTogQmFzaWMgc3RvcmFnZSBhY2NvdW50XG4gICAgbmV3IFN0b3JhZ2VBY2NvdW50KHRoaXMsIFwiYmFzaWMtc3RvcmFnZVwiLCB7XG4gICAgICBuYW1lOiBiYXNpY1N0b3JhZ2VOYW1lLFxuICAgICAgbG9jYXRpb246IHJlc291cmNlR3JvdXAucHJvcHMubG9jYXRpb24hLFxuICAgICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICAgICAgc2t1OiB7IG5hbWU6IFwiU3RhbmRhcmRfTFJTXCIgfSxcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgLi4udGhpcy5zeXN0ZW1UYWdzKCksXG4gICAgICAgIGV4YW1wbGU6IFwiYmFzaWNcIixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBFeGFtcGxlIDI6IFN0b3JhZ2UgYWNjb3VudCB3aXRoIHNwZWNpZmljIHZlcnNpb25cbiAgICBuZXcgU3RvcmFnZUFjY291bnQodGhpcywgXCJ2ZXJzaW9uZWQtc3RvcmFnZVwiLCB7XG4gICAgICBuYW1lOiB2ZXJzaW9uZWRTdG9yYWdlTmFtZSxcbiAgICAgIGxvY2F0aW9uOiByZXNvdXJjZUdyb3VwLnByb3BzLmxvY2F0aW9uISxcbiAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgIHNrdTogeyBuYW1lOiBcIlN0YW5kYXJkX0dSU1wiIH0sXG4gICAgICBhcGlWZXJzaW9uOiBcIjIwMjMtMDUtMDFcIixcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgLi4udGhpcy5zeXN0ZW1UYWdzKCksXG4gICAgICAgIGV4YW1wbGU6IFwidmVyc2lvbmVkXCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gRXhhbXBsZSAzOiBTdG9yYWdlIGFjY291bnQgd2l0aCBtb25pdG9yaW5nXG4gICAgbmV3IFN0b3JhZ2VBY2NvdW50KHRoaXMsIFwibW9uaXRvcmVkLXN0b3JhZ2VcIiwge1xuICAgICAgbmFtZTogbW9uaXRvcmVkU3RvcmFnZU5hbWUsXG4gICAgICBsb2NhdGlvbjogcmVzb3VyY2VHcm91cC5wcm9wcy5sb2NhdGlvbiEsXG4gICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICBza3U6IHsgbmFtZTogXCJTdGFuZGFyZF9MUlNcIiB9LFxuICAgICAgbW9uaXRvcmluZzogU3RvcmFnZUFjY291bnQuZGVmYXVsdE1vbml0b3JpbmcoYWN0aW9uR3JvdXAuaWQpLFxuICAgICAgdGFnczoge1xuICAgICAgICAuLi50aGlzLnN5c3RlbVRhZ3MoKSxcbiAgICAgICAgZXhhbXBsZTogXCJtb25pdG9yZWRcIixcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBFeGFtcGxlIDQ6IFN0b3JhZ2UgYWNjb3VudCB3aXRoIGN1c3RvbSBtb25pdG9yaW5nIHRocmVzaG9sZHNcbiAgICBuZXcgU3RvcmFnZUFjY291bnQodGhpcywgXCJjdXN0b20tbW9uaXRvcmVkLXN0b3JhZ2VcIiwge1xuICAgICAgbmFtZTogY3VzdG9tTW9uaXRvcmVkU3RvcmFnZU5hbWUsXG4gICAgICBsb2NhdGlvbjogcmVzb3VyY2VHcm91cC5wcm9wcy5sb2NhdGlvbiEsXG4gICAgICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gICAgICBza3U6IHsgbmFtZTogXCJTdGFuZGFyZF9HUlNcIiB9LFxuICAgICAgbW9uaXRvcmluZzogU3RvcmFnZUFjY291bnQuZGVmYXVsdE1vbml0b3JpbmcoYWN0aW9uR3JvdXAuaWQsIHVuZGVmaW5lZCwge1xuICAgICAgICBhdmFpbGFiaWxpdHlUaHJlc2hvbGQ6IDk5LjUsXG4gICAgICAgIGVncmVzc1RocmVzaG9sZDogMjE0NzQ4MzY0ODAsIC8vIDIwR0JcbiAgICAgICAgdHJhbnNhY3Rpb25zVGhyZXNob2xkOiAyMDAwMDAsXG4gICAgICAgIGF2YWlsYWJpbGl0eUFsZXJ0U2V2ZXJpdHk6IDAsIC8vIENyaXRpY2FsXG4gICAgICAgIGVncmVzc0FsZXJ0U2V2ZXJpdHk6IDEsIC8vIEVycm9yXG4gICAgICAgIHRyYW5zYWN0aW9uc0FsZXJ0U2V2ZXJpdHk6IDIsIC8vIFdhcm5pbmdcbiAgICAgIH0pLFxuICAgICAgdGFnczoge1xuICAgICAgICAuLi50aGlzLnN5c3RlbVRhZ3MoKSxcbiAgICAgICAgZXhhbXBsZTogXCJjdXN0b20tbW9uaXRvcmVkXCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gRXhhbXBsZSA1OiBTdG9yYWdlIGFjY291bnQgd2l0aCBzZWxlY3RpdmUgbW9uaXRvcmluZ1xuICAgIG5ldyBTdG9yYWdlQWNjb3VudCh0aGlzLCBcInNlbGVjdGl2ZS1tb25pdG9yZWQtc3RvcmFnZVwiLCB7XG4gICAgICBuYW1lOiBzZWxlY3RpdmVNb25pdG9yZWRTdG9yYWdlTmFtZSxcbiAgICAgIGxvY2F0aW9uOiByZXNvdXJjZUdyb3VwLnByb3BzLmxvY2F0aW9uISxcbiAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgIHNrdTogeyBuYW1lOiBcIlN0YW5kYXJkX1JBR1JTXCIgfSxcbiAgICAgIG1vbml0b3Jpbmc6IFN0b3JhZ2VBY2NvdW50LmRlZmF1bHRNb25pdG9yaW5nKGFjdGlvbkdyb3VwLmlkLCB1bmRlZmluZWQsIHtcbiAgICAgICAgZW5hYmxlQXZhaWxhYmlsaXR5QWxlcnQ6IHRydWUsXG4gICAgICAgIGVuYWJsZUVncmVzc0FsZXJ0OiBmYWxzZSwgLy8gRGlzYWJsZSBlZ3Jlc3MgYWxlcnRcbiAgICAgICAgZW5hYmxlVHJhbnNhY3Rpb25zQWxlcnQ6IHRydWUsXG4gICAgICAgIGVuYWJsZURlbGV0aW9uQWxlcnQ6IGZhbHNlLCAvLyBEaXNhYmxlIGRlbGV0aW9uIGFsZXJ0XG4gICAgICB9KSxcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgLi4udGhpcy5zeXN0ZW1UYWdzKCksXG4gICAgICAgIGV4YW1wbGU6IFwic2VsZWN0aXZlLW1vbml0b3JlZFwiLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuXG5kZXNjcmliZShcIlN0b3JhZ2UgQWNjb3VudCBJbnRlZ3JhdGlvbiBUZXN0XCIsICgpID0+IHtcbiAgaXQoXCJzaG91bGQgZGVwbG95LCB2YWxpZGF0ZSBpZGVtcG90ZW5jeSwgYW5kIGNsZWFudXAgc3RvcmFnZSBhY2NvdW50IHJlc291cmNlc1wiLCAoKSA9PiB7XG4gICAgY29uc3QgYXBwID0gVGVzdGluZy5hcHAoKTtcbiAgICBjb25zdCBzdGFjayA9IG5ldyBTdG9yYWdlQWNjb3VudEV4YW1wbGVTdGFjayhhcHAsIFwidGVzdC1zdG9yYWdlLWFjY291bnRcIik7XG4gICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLmZ1bGxTeW50aChzdGFjayk7XG5cbiAgICAvLyBUaGlzIHdpbGw6XG4gICAgLy8gMS4gUnVuIHRlcnJhZm9ybSBhcHBseSB0byBkZXBsb3kgcmVzb3VyY2VzXG4gICAgLy8gMi4gUnVuIHRlcnJhZm9ybSBwbGFuIHRvIGNoZWNrIGlkZW1wb3RlbmN5IChubyBjaGFuZ2VzIGV4cGVjdGVkKVxuICAgIC8vIDMuIFJ1biB0ZXJyYWZvcm0gZGVzdHJveSB0byBjbGVhbnVwIHJlc291cmNlc1xuICAgIFRlcnJhZm9ybUFwcGx5Q2hlY2tBbmREZXN0cm95KHN5bnRoZXNpemVkLCB7IHZlcmlmeUNsZWFudXA6IHRydWUgfSk7XG4gIH0sIDYwMDAwMCk7IC8vIDEwIG1pbnV0ZSB0aW1lb3V0IGZvciBkZXBsb3ltZW50IGFuZCBjbGVhbnVwXG59KTtcbiJdfQ==
@@ -0,0 +1 @@
1
+ export * from "./lib";
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./lib"), exports);
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp1cmUtc3VibmV0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx3Q0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9saWJcIjtcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from "./subnet-schemas";
2
+ export * from "./subnet";
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./subnet-schemas"), exports);
18
+ __exportStar(require("./subnet"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtc3VibmV0L2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBQWlDO0FBQ2pDLDJDQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3N1Ym5ldC1zY2hlbWFzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdWJuZXRcIjtcbiJdfQ==
@@ -0,0 +1,32 @@
1
+ /**
2
+ * API schemas for Azure Subnet across all supported versions
3
+ *
4
+ * This file defines the complete API schemas for Microsoft.Network/virtualNetworks/subnets
5
+ * across all supported API versions. The schemas are used by the AzapiResource
6
+ * framework for validation, transformation, and version management.
7
+ */
8
+ import { ApiSchema, VersionConfig } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
9
+ /**
10
+ * API Schema for Subnet version 2024-07-01
11
+ */
12
+ export declare const SUBNET_SCHEMA_2024_07_01: ApiSchema;
13
+ /**
14
+ * API Schema for Subnet version 2024-10-01
15
+ */
16
+ export declare const SUBNET_SCHEMA_2024_10_01: ApiSchema;
17
+ /**
18
+ * Version configuration for Subnet 2024-07-01
19
+ */
20
+ export declare const SUBNET_VERSION_2024_07_01: VersionConfig;
21
+ /**
22
+ * Version configuration for Subnet 2024-10-01
23
+ */
24
+ export declare const SUBNET_VERSION_2024_10_01: VersionConfig;
25
+ /**
26
+ * All supported Subnet versions for registration
27
+ */
28
+ export declare const ALL_SUBNET_VERSIONS: VersionConfig[];
29
+ /**
30
+ * Resource type constant
31
+ */
32
+ export declare const SUBNET_TYPE = "Microsoft.Network/virtualNetworks/subnets";