@microsoft/terraform-cdk-constructs 1.2.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. package/.jsii +54630 -26185
  2. package/API.md +72091 -23784
  3. package/lib/azure-actiongroup/index.d.ts +0 -10
  4. package/lib/azure-actiongroup/index.js +1 -11
  5. package/lib/azure-actiongroup/lib/action-group.d.ts +0 -10
  6. package/lib/azure-actiongroup/lib/action-group.js +6 -32
  7. package/lib/azure-actiongroup/lib/index.d.ts +1 -4
  8. package/lib/azure-actiongroup/lib/index.js +2 -5
  9. package/lib/azure-activitylogalert/index.d.ts +0 -10
  10. package/lib/azure-activitylogalert/index.js +1 -11
  11. package/lib/azure-activitylogalert/lib/activity-log-alert.d.ts +0 -10
  12. package/lib/azure-activitylogalert/lib/activity-log-alert.js +6 -32
  13. package/lib/azure-activitylogalert/lib/index.d.ts +1 -4
  14. package/lib/azure-activitylogalert/lib/index.js +2 -5
  15. package/lib/azure-aks/index.d.ts +0 -8
  16. package/lib/azure-aks/index.js +1 -11
  17. package/lib/azure-aks/lib/aks-cluster.d.ts +4 -13
  18. package/lib/azure-aks/lib/aks-cluster.js +13 -36
  19. package/lib/azure-aks/lib/index.d.ts +1 -10
  20. package/lib/azure-aks/lib/index.js +2 -21
  21. package/lib/azure-diagnosticsettings/index.d.ts +0 -6
  22. package/lib/azure-diagnosticsettings/index.js +1 -7
  23. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.d.ts +0 -10
  24. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +6 -32
  25. package/lib/azure-diagnosticsettings/lib/index.d.ts +1 -7
  26. package/lib/azure-diagnosticsettings/lib/index.js +2 -8
  27. package/lib/azure-dnsforwardingruleset/index.d.ts +1 -0
  28. package/lib/azure-dnsforwardingruleset/index.js +18 -0
  29. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset-schemas.d.ts +24 -0
  30. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset-schemas.js +206 -0
  31. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.d.ts +174 -0
  32. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +214 -0
  33. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule-schemas.d.ts +24 -0
  34. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule-schemas.js +242 -0
  35. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.d.ts +193 -0
  36. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +193 -0
  37. package/lib/azure-dnsforwardingruleset/lib/index.d.ts +6 -0
  38. package/lib/azure-dnsforwardingruleset/lib/index.js +23 -0
  39. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link-schemas.d.ts +24 -0
  40. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link-schemas.js +199 -0
  41. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.d.ts +160 -0
  42. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +178 -0
  43. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.d.ts +9 -0
  44. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.js +133 -0
  45. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.spec.d.ts +9 -0
  46. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.spec.js +350 -0
  47. package/lib/azure-dnsforwardingruleset/test/forwarding-rule.spec.d.ts +9 -0
  48. package/lib/azure-dnsforwardingruleset/test/forwarding-rule.spec.js +397 -0
  49. package/lib/azure-dnsforwardingruleset/test/virtual-network-link.spec.d.ts +9 -0
  50. package/lib/azure-dnsforwardingruleset/test/virtual-network-link.spec.js +285 -0
  51. package/lib/azure-dnsresolver/index.d.ts +1 -0
  52. package/lib/azure-dnsresolver/index.js +18 -0
  53. package/lib/azure-dnsresolver/lib/dns-resolver-schemas.d.ts +24 -0
  54. package/lib/azure-dnsresolver/lib/dns-resolver-schemas.js +218 -0
  55. package/lib/azure-dnsresolver/lib/dns-resolver.d.ts +170 -0
  56. package/lib/azure-dnsresolver/lib/dns-resolver.js +236 -0
  57. package/lib/azure-dnsresolver/lib/inbound-endpoint-schemas.d.ts +24 -0
  58. package/lib/azure-dnsresolver/lib/inbound-endpoint-schemas.js +261 -0
  59. package/lib/azure-dnsresolver/lib/inbound-endpoint.d.ts +189 -0
  60. package/lib/azure-dnsresolver/lib/inbound-endpoint.js +243 -0
  61. package/lib/azure-dnsresolver/lib/index.d.ts +6 -0
  62. package/lib/azure-dnsresolver/lib/index.js +23 -0
  63. package/lib/azure-dnsresolver/lib/outbound-endpoint-schemas.d.ts +24 -0
  64. package/lib/azure-dnsresolver/lib/outbound-endpoint-schemas.js +231 -0
  65. package/lib/azure-dnsresolver/lib/outbound-endpoint.d.ts +175 -0
  66. package/lib/azure-dnsresolver/lib/outbound-endpoint.js +234 -0
  67. package/lib/azure-dnsresolver/test/dns-resolver.integ.d.ts +14 -0
  68. package/lib/azure-dnsresolver/test/dns-resolver.integ.js +117 -0
  69. package/lib/azure-dnsresolver/test/dns-resolver.spec.d.ts +9 -0
  70. package/lib/azure-dnsresolver/test/dns-resolver.spec.js +353 -0
  71. package/lib/azure-dnsresolver/test/inbound-endpoint.integ.d.ts +9 -0
  72. package/lib/azure-dnsresolver/test/inbound-endpoint.integ.js +151 -0
  73. package/lib/azure-dnsresolver/test/inbound-endpoint.spec.d.ts +9 -0
  74. package/lib/azure-dnsresolver/test/inbound-endpoint.spec.js +441 -0
  75. package/lib/azure-dnsresolver/test/outbound-endpoint.integ.d.ts +9 -0
  76. package/lib/azure-dnsresolver/test/outbound-endpoint.integ.js +149 -0
  77. package/lib/azure-dnsresolver/test/outbound-endpoint.spec.d.ts +9 -0
  78. package/lib/azure-dnsresolver/test/outbound-endpoint.spec.js +301 -0
  79. package/lib/azure-dnszone/index.d.ts +1 -0
  80. package/lib/azure-dnszone/index.js +18 -0
  81. package/lib/azure-dnszone/lib/dns-zone-schemas.d.ts +24 -0
  82. package/lib/azure-dnszone/lib/dns-zone-schemas.js +191 -0
  83. package/lib/azure-dnszone/lib/dns-zone.d.ts +182 -0
  84. package/lib/azure-dnszone/lib/dns-zone.js +228 -0
  85. package/lib/azure-dnszone/lib/index.d.ts +2 -0
  86. package/lib/azure-dnszone/lib/index.js +19 -0
  87. package/lib/azure-dnszone/test/dns-zone.integ.d.ts +9 -0
  88. package/lib/azure-dnszone/test/dns-zone.integ.js +85 -0
  89. package/lib/azure-dnszone/test/dns-zone.spec.d.ts +9 -0
  90. package/lib/azure-dnszone/test/dns-zone.spec.js +285 -0
  91. package/lib/azure-metricalert/index.d.ts +0 -10
  92. package/lib/azure-metricalert/index.js +1 -11
  93. package/lib/azure-metricalert/lib/index.d.ts +1 -4
  94. package/lib/azure-metricalert/lib/index.js +2 -5
  95. package/lib/azure-metricalert/lib/metric-alert.d.ts +0 -10
  96. package/lib/azure-metricalert/lib/metric-alert.js +6 -32
  97. package/lib/azure-networkinterface/index.d.ts +0 -3
  98. package/lib/azure-networkinterface/index.js +1 -4
  99. package/lib/azure-networkinterface/lib/index.d.ts +1 -5
  100. package/lib/azure-networkinterface/lib/index.js +2 -5
  101. package/lib/azure-networkinterface/lib/network-interface.d.ts +4 -9
  102. package/lib/azure-networkinterface/lib/network-interface.js +14 -29
  103. package/lib/azure-networkinterface/test/network-interface.integ.js +20 -6
  104. package/lib/azure-networksecuritygroup/index.d.ts +0 -5
  105. package/lib/azure-networksecuritygroup/index.js +1 -6
  106. package/lib/azure-networksecuritygroup/lib/index.d.ts +2 -5
  107. package/lib/azure-networksecuritygroup/lib/index.js +17 -14
  108. package/lib/azure-networksecuritygroup/lib/network-security-group.d.ts +4 -13
  109. package/lib/azure-networksecuritygroup/lib/network-security-group.js +14 -36
  110. package/lib/azure-policyassignment/index.d.ts +1 -0
  111. package/lib/azure-policyassignment/index.js +18 -0
  112. package/lib/azure-policyassignment/lib/index.d.ts +2 -0
  113. package/lib/azure-policyassignment/lib/index.js +19 -0
  114. package/lib/azure-policyassignment/lib/policy-assignment-schemas.d.ts +25 -0
  115. package/lib/azure-policyassignment/lib/policy-assignment-schemas.js +260 -0
  116. package/lib/azure-policyassignment/lib/policy-assignment.d.ts +349 -0
  117. package/lib/azure-policyassignment/lib/policy-assignment.js +237 -0
  118. package/lib/azure-policyassignment/test/policy-assignment.integ.d.ts +13 -0
  119. package/lib/azure-policyassignment/test/policy-assignment.integ.js +153 -0
  120. package/lib/azure-policyassignment/test/policy-assignment.spec.d.ts +9 -0
  121. package/lib/azure-policyassignment/test/policy-assignment.spec.js +651 -0
  122. package/lib/azure-policydefinition/index.d.ts +1 -0
  123. package/lib/azure-policydefinition/index.js +18 -0
  124. package/lib/azure-policydefinition/lib/index.d.ts +2 -0
  125. package/lib/azure-policydefinition/lib/index.js +19 -0
  126. package/lib/azure-policydefinition/lib/policy-definition-schemas.d.ts +25 -0
  127. package/lib/azure-policydefinition/lib/policy-definition-schemas.js +210 -0
  128. package/lib/azure-policydefinition/lib/policy-definition.d.ts +281 -0
  129. package/lib/azure-policydefinition/lib/policy-definition.js +236 -0
  130. package/lib/azure-policydefinition/test/policy-definition.integ.d.ts +9 -0
  131. package/lib/azure-policydefinition/test/policy-definition.integ.js +137 -0
  132. package/lib/azure-policydefinition/test/policy-definition.spec.d.ts +9 -0
  133. package/lib/azure-policydefinition/test/policy-definition.spec.js +806 -0
  134. package/lib/azure-privatednszone/index.d.ts +1 -0
  135. package/lib/azure-privatednszone/index.js +18 -0
  136. package/lib/azure-privatednszone/lib/index.d.ts +2 -0
  137. package/lib/azure-privatednszone/lib/index.js +19 -0
  138. package/lib/azure-privatednszone/lib/private-dns-zone-schemas.d.ts +24 -0
  139. package/lib/azure-privatednszone/lib/private-dns-zone-schemas.js +254 -0
  140. package/lib/azure-privatednszone/lib/private-dns-zone.d.ts +178 -0
  141. package/lib/azure-privatednszone/lib/private-dns-zone.js +272 -0
  142. package/lib/azure-privatednszone/test/private-dns-zone.integ.d.ts +9 -0
  143. package/lib/azure-privatednszone/test/private-dns-zone.integ.js +84 -0
  144. package/lib/azure-privatednszone/test/private-dns-zone.spec.d.ts +9 -0
  145. package/lib/azure-privatednszone/test/private-dns-zone.spec.js +341 -0
  146. package/lib/azure-privatednszonelink/index.d.ts +1 -0
  147. package/lib/azure-privatednszonelink/index.js +18 -0
  148. package/lib/azure-privatednszonelink/lib/index.d.ts +2 -0
  149. package/lib/azure-privatednszonelink/lib/index.js +19 -0
  150. package/lib/azure-privatednszonelink/lib/private-dns-zone-link-schemas.d.ts +24 -0
  151. package/lib/azure-privatednszonelink/lib/private-dns-zone-link-schemas.js +262 -0
  152. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.d.ts +202 -0
  153. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +250 -0
  154. package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.d.ts +9 -0
  155. package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.js +110 -0
  156. package/lib/azure-privatednszonelink/test/private-dns-zone-link.spec.d.ts +9 -0
  157. package/lib/azure-privatednszonelink/test/private-dns-zone-link.spec.js +465 -0
  158. package/lib/azure-publicipaddress/index.d.ts +0 -5
  159. package/lib/azure-publicipaddress/index.js +1 -6
  160. package/lib/azure-publicipaddress/lib/index.d.ts +2 -9
  161. package/lib/azure-publicipaddress/lib/index.js +17 -17
  162. package/lib/azure-publicipaddress/lib/public-ip-address.d.ts +4 -13
  163. package/lib/azure-publicipaddress/lib/public-ip-address.js +14 -36
  164. package/lib/azure-resourcegroup/index.d.ts +0 -37
  165. package/lib/azure-resourcegroup/index.js +1 -39
  166. package/lib/azure-resourcegroup/lib/index.d.ts +1 -44
  167. package/lib/azure-resourcegroup/lib/index.js +2 -43
  168. package/lib/azure-resourcegroup/lib/resource-group.d.ts +9 -23
  169. package/lib/azure-resourcegroup/lib/resource-group.js +23 -56
  170. package/lib/azure-resourcegroup/test/resource-group.spec.js +13 -19
  171. package/lib/azure-roleassignment/index.d.ts +1 -0
  172. package/lib/azure-roleassignment/index.js +18 -0
  173. package/lib/azure-roleassignment/lib/index.d.ts +2 -0
  174. package/lib/azure-roleassignment/lib/index.js +19 -0
  175. package/lib/azure-roleassignment/lib/role-assignment-schemas.d.ts +25 -0
  176. package/lib/azure-roleassignment/lib/role-assignment-schemas.js +238 -0
  177. package/lib/azure-roleassignment/lib/role-assignment.d.ts +294 -0
  178. package/lib/azure-roleassignment/lib/role-assignment.js +257 -0
  179. package/lib/azure-roleassignment/test/role-assignment.integ.d.ts +12 -0
  180. package/lib/azure-roleassignment/test/role-assignment.integ.js +101 -0
  181. package/lib/azure-roleassignment/test/role-assignment.spec.d.ts +9 -0
  182. package/lib/azure-roleassignment/test/role-assignment.spec.js +633 -0
  183. package/lib/azure-roledefinition/index.d.ts +1 -0
  184. package/lib/azure-roledefinition/index.js +18 -0
  185. package/lib/azure-roledefinition/lib/index.d.ts +2 -0
  186. package/lib/azure-roledefinition/lib/index.js +19 -0
  187. package/lib/azure-roledefinition/lib/role-definition-schemas.d.ts +25 -0
  188. package/lib/azure-roledefinition/lib/role-definition-schemas.js +195 -0
  189. package/lib/azure-roledefinition/lib/role-definition.d.ts +236 -0
  190. package/lib/azure-roledefinition/lib/role-definition.js +192 -0
  191. package/lib/azure-roledefinition/test/role-definition.integ.d.ts +12 -0
  192. package/lib/azure-roledefinition/test/role-definition.integ.js +142 -0
  193. package/lib/azure-roledefinition/test/role-definition.spec.d.ts +9 -0
  194. package/lib/azure-roledefinition/test/role-definition.spec.js +946 -0
  195. package/lib/azure-storageaccount/index.d.ts +0 -19
  196. package/lib/azure-storageaccount/index.js +1 -20
  197. package/lib/azure-storageaccount/lib/index.d.ts +1 -7
  198. package/lib/azure-storageaccount/lib/index.js +2 -8
  199. package/lib/azure-storageaccount/lib/storage-account.d.ts +4 -9
  200. package/lib/azure-storageaccount/lib/storage-account.js +15 -29
  201. package/lib/azure-subnet/index.d.ts +0 -3
  202. package/lib/azure-subnet/index.js +1 -4
  203. package/lib/azure-subnet/lib/index.d.ts +1 -4
  204. package/lib/azure-subnet/lib/index.js +2 -5
  205. package/lib/azure-subnet/lib/subnet.d.ts +3 -14
  206. package/lib/azure-subnet/lib/subnet.js +28 -47
  207. package/lib/azure-subnet/test/subnet.integ.js +19 -7
  208. package/lib/azure-subnet/test/subnet.spec.js +1 -2
  209. package/lib/azure-virtualmachine/index.d.ts +0 -6
  210. package/lib/azure-virtualmachine/index.js +1 -7
  211. package/lib/azure-virtualmachine/lib/index.d.ts +1 -10
  212. package/lib/azure-virtualmachine/lib/index.js +2 -21
  213. package/lib/azure-virtualmachine/lib/virtual-machine.d.ts +4 -13
  214. package/lib/azure-virtualmachine/lib/virtual-machine.js +15 -36
  215. package/lib/azure-virtualnetwork/index.d.ts +0 -9
  216. package/lib/azure-virtualnetwork/index.js +1 -11
  217. package/lib/azure-virtualnetwork/lib/index.d.ts +2 -9
  218. package/lib/azure-virtualnetwork/lib/index.js +17 -20
  219. package/lib/azure-virtualnetwork/lib/virtual-network.d.ts +4 -13
  220. package/lib/azure-virtualnetwork/lib/virtual-network.js +15 -36
  221. package/lib/azure-virtualnetworkmanager/index.d.ts +1 -0
  222. package/lib/azure-virtualnetworkmanager/index.js +18 -0
  223. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration-schemas.d.ts +48 -0
  224. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration-schemas.js +265 -0
  225. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.d.ts +185 -0
  226. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +206 -0
  227. package/lib/azure-virtualnetworkmanager/lib/index.d.ts +14 -0
  228. package/lib/azure-virtualnetworkmanager/lib/index.js +31 -0
  229. package/lib/azure-virtualnetworkmanager/lib/network-group-schemas.d.ts +32 -0
  230. package/lib/azure-virtualnetworkmanager/lib/network-group-schemas.js +189 -0
  231. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member-schemas.d.ts +32 -0
  232. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member-schemas.js +201 -0
  233. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.d.ts +135 -0
  234. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +163 -0
  235. package/lib/azure-virtualnetworkmanager/lib/network-group.d.ts +139 -0
  236. package/lib/azure-virtualnetworkmanager/lib/network-group.js +158 -0
  237. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration-schemas.d.ts +32 -0
  238. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration-schemas.js +182 -0
  239. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.d.ts +144 -0
  240. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +164 -0
  241. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection-schemas.d.ts +38 -0
  242. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection-schemas.js +206 -0
  243. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.d.ts +142 -0
  244. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +162 -0
  245. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-schemas.d.ts +39 -0
  246. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-schemas.js +359 -0
  247. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.d.ts +221 -0
  248. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +204 -0
  249. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager-schemas.d.ts +32 -0
  250. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager-schemas.js +236 -0
  251. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.d.ts +337 -0
  252. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +283 -0
  253. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.d.ts +25 -0
  254. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.js +402 -0
  255. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.spec.d.ts +9 -0
  256. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.spec.js +1652 -0
  257. package/lib/azure-vmss/index.d.ts +0 -5
  258. package/lib/azure-vmss/index.js +1 -6
  259. package/lib/azure-vmss/lib/index.d.ts +0 -7
  260. package/lib/azure-vmss/lib/index.js +1 -21
  261. package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +5 -13
  262. package/lib/azure-vmss/lib/virtual-machine-scale-set.js +29 -53
  263. package/lib/core-azure/lib/azapi/azapi-resource-tags.spec.d.ts +10 -0
  264. package/lib/core-azure/lib/azapi/azapi-resource-tags.spec.js +218 -0
  265. package/lib/core-azure/lib/azapi/azapi-resource.d.ts +206 -26
  266. package/lib/core-azure/lib/azapi/azapi-resource.js +379 -91
  267. package/lib/core-azure/lib/azapi/azapi-resource.spec.js +2 -2
  268. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +2 -2
  269. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +5 -5
  270. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +5 -3
  271. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +5 -5
  272. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +3 -3
  273. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +3 -3
  274. package/lib/core-azure/lib/azapi/resource-schema-validator.d.ts +118 -0
  275. package/lib/core-azure/lib/azapi/resource-schema-validator.js +236 -0
  276. package/lib/core-azure/lib/azapi/resource-version-manager.d.ts +103 -0
  277. package/lib/core-azure/lib/azapi/resource-version-manager.js +168 -0
  278. package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +11 -6
  279. package/lib/core-azure/lib/index.d.ts +2 -2
  280. package/lib/core-azure/lib/index.js +5 -5
  281. package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
  282. package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
  283. package/lib/index.d.ts +19 -0
  284. package/lib/index.js +21 -2
  285. package/lib/testing/index.js +2 -2
  286. package/lib/testing/lib/cleanup.d.ts +1 -0
  287. package/lib/testing/lib/cleanup.js +19 -12
  288. package/lib/testing/lib/metadata.js +19 -16
  289. package/package.json +1 -1
  290. package/scripts/cleanup-test-resources.ts +22 -4
  291. package/scripts/generate-index.js +25 -8
@@ -1,20 +1 @@
1
- /**
2
- * Azure Storage Account module
3
- *
4
- * Provides unified, version-aware Azure Storage Account constructs using
5
- * the VersionedAzapiResource framework. This module automatically handles
6
- * API version management, schema validation, and property transformation.
7
- *
8
- * @example
9
- * ```typescript
10
- * import { StorageAccount } from '@cdktf/tf-constructs-azure/azure-storageaccount';
11
- *
12
- * const storage = new StorageAccount(this, 'storage', {
13
- * name: 'mystorageaccount',
14
- * location: 'eastus',
15
- * resourceGroupId: resourceGroup.id,
16
- * sku: { name: 'Standard_LRS' },
17
- * });
18
- * ```
19
- */
20
1
  export * from "./lib";
@@ -1,23 +1,4 @@
1
1
  "use strict";
2
- /**
3
- * Azure Storage Account module
4
- *
5
- * Provides unified, version-aware Azure Storage Account constructs using
6
- * the VersionedAzapiResource framework. This module automatically handles
7
- * API version management, schema validation, and property transformation.
8
- *
9
- * @example
10
- * ```typescript
11
- * import { StorageAccount } from '@cdktf/tf-constructs-azure/azure-storageaccount';
12
- *
13
- * const storage = new StorageAccount(this, 'storage', {
14
- * name: 'mystorageaccount',
15
- * location: 'eastus',
16
- * resourceGroupId: resourceGroup.id,
17
- * sku: { name: 'Standard_LRS' },
18
- * });
19
- * ```
20
- */
21
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
22
3
  if (k2 === undefined) k2 = k;
23
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -34,4 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
34
15
  };
35
16
  Object.defineProperty(exports, "__esModule", { value: true });
36
17
  __exportStar(require("./lib"), exports);
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp1cmUtc3RvcmFnZWFjY291bnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCx3Q0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEF6dXJlIFN0b3JhZ2UgQWNjb3VudCBtb2R1bGVcbiAqXG4gKiBQcm92aWRlcyB1bmlmaWVkLCB2ZXJzaW9uLWF3YXJlIEF6dXJlIFN0b3JhZ2UgQWNjb3VudCBjb25zdHJ1Y3RzIHVzaW5nXG4gKiB0aGUgVmVyc2lvbmVkQXphcGlSZXNvdXJjZSBmcmFtZXdvcmsuIFRoaXMgbW9kdWxlIGF1dG9tYXRpY2FsbHkgaGFuZGxlc1xuICogQVBJIHZlcnNpb24gbWFuYWdlbWVudCwgc2NoZW1hIHZhbGlkYXRpb24sIGFuZCBwcm9wZXJ0eSB0cmFuc2Zvcm1hdGlvbi5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogaW1wb3J0IHsgU3RvcmFnZUFjY291bnQgfSBmcm9tICdAY2RrdGYvdGYtY29uc3RydWN0cy1henVyZS9henVyZS1zdG9yYWdlYWNjb3VudCc7XG4gKlxuICogY29uc3Qgc3RvcmFnZSA9IG5ldyBTdG9yYWdlQWNjb3VudCh0aGlzLCAnc3RvcmFnZScsIHtcbiAqICAgbmFtZTogJ215c3RvcmFnZWFjY291bnQnLFxuICogICBsb2NhdGlvbjogJ2Vhc3R1cycsXG4gKiAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAqICAgc2t1OiB7IG5hbWU6ICdTdGFuZGFyZF9MUlMnIH0sXG4gKiB9KTtcbiAqIGBgYFxuICovXG5cbmV4cG9ydCAqIGZyb20gXCIuL2xpYlwiO1xuIl19
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp1cmUtc3RvcmFnZWFjY291bnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHdDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2xpYlwiO1xuIl19
@@ -1,8 +1,2 @@
1
- /**
2
- * Azure Storage Account module exports
3
- *
4
- * This module provides unified, version-aware Azure Storage Account constructs
5
- * using the VersionedAzapiResource framework.
6
- */
7
- export * from "./storage-account";
8
1
  export * from "./storage-account-schemas";
2
+ export * from "./storage-account";
@@ -1,10 +1,4 @@
1
1
  "use strict";
2
- /**
3
- * Azure Storage Account module exports
4
- *
5
- * This module provides unified, version-aware Azure Storage Account constructs
6
- * using the VersionedAzapiResource framework.
7
- */
8
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
3
  if (k2 === undefined) k2 = k;
10
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -20,6 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
15
  };
22
16
  Object.defineProperty(exports, "__esModule", { value: true });
23
- __exportStar(require("./storage-account"), exports);
24
17
  __exportStar(require("./storage-account-schemas"), exports);
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtc3RvcmFnZWFjY291bnQvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7R0FLRzs7Ozs7Ozs7Ozs7Ozs7OztBQUVILG9EQUFrQztBQUNsQyw0REFBMEMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEF6dXJlIFN0b3JhZ2UgQWNjb3VudCBtb2R1bGUgZXhwb3J0c1xuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIHVuaWZpZWQsIHZlcnNpb24tYXdhcmUgQXp1cmUgU3RvcmFnZSBBY2NvdW50IGNvbnN0cnVjdHNcbiAqIHVzaW5nIHRoZSBWZXJzaW9uZWRBemFwaVJlc291cmNlIGZyYW1ld29yay5cbiAqL1xuXG5leHBvcnQgKiBmcm9tIFwiLi9zdG9yYWdlLWFjY291bnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0b3JhZ2UtYWNjb3VudC1zY2hlbWFzXCI7XG4iXX0=
18
+ __exportStar(require("./storage-account"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtc3RvcmFnZWFjY291bnQvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0REFBMEM7QUFDMUMsb0RBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vc3RvcmFnZS1hY2NvdW50LXNjaGVtYXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N0b3JhZ2UtYWNjb3VudFwiO1xuIl19
@@ -278,21 +278,12 @@ export declare class StorageAccount extends AzapiResource {
278
278
  * @stability stable
279
279
  */
280
280
  static defaultMonitoring(actionGroupId: string, workspaceId?: string, options?: StorageAccountMonitoringOptions): MonitoringConfig;
281
- private static schemasRegistered;
282
- /**
283
- * Ensures that Storage Account schemas are registered with the ApiVersionManager
284
- */
285
- private static ensureSchemasRegistered;
286
281
  readonly props: StorageAccountProps;
287
282
  readonly idOutput: cdktf.TerraformOutput;
288
283
  readonly locationOutput: cdktf.TerraformOutput;
289
284
  readonly nameOutput: cdktf.TerraformOutput;
290
285
  readonly tagsOutput: cdktf.TerraformOutput;
291
286
  readonly primaryEndpointsOutput: cdktf.TerraformOutput;
292
- readonly id: string;
293
- readonly tags: {
294
- [key: string]: string;
295
- };
296
287
  /**
297
288
  * Creates a new Azure Storage Account using the VersionedAzapiResource framework
298
289
  *
@@ -313,6 +304,10 @@ export declare class StorageAccount extends AzapiResource {
313
304
  * Gets the API schema for the resolved version
314
305
  */
315
306
  protected apiSchema(): ApiSchema;
307
+ /**
308
+ * Indicates that location is required for Storage Accounts
309
+ */
310
+ protected requiresLocation(): boolean;
316
311
  /**
317
312
  * Creates the resource body for the Azure API call
318
313
  */
@@ -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
  *
@@ -192,25 +191,7 @@ class StorageAccount extends azapi_resource_1.AzapiResource {
192
191
  activityLogAlerts: activityLogAlerts,
193
192
  };
194
193
  }
195
- /**
196
- * Ensures that Storage Account schemas are registered with the ApiVersionManager
197
- */
198
- static ensureSchemasRegistered() {
199
- if (StorageAccount.schemasRegistered) {
200
- return;
201
- }
202
- const apiVersionManager = api_version_manager_1.ApiVersionManager.instance();
203
- try {
204
- apiVersionManager.registerResourceType(storage_account_schemas_1.STORAGE_ACCOUNT_TYPE, storage_account_schemas_1.ALL_STORAGE_ACCOUNT_VERSIONS);
205
- StorageAccount.schemasRegistered = true;
206
- console.log(`Registered ${storage_account_schemas_1.ALL_STORAGE_ACCOUNT_VERSIONS.length} API versions for ${storage_account_schemas_1.STORAGE_ACCOUNT_TYPE}`);
207
- }
208
- catch (error) {
209
- console.warn(`Failed to register Storage Account schemas: ${error}. ` +
210
- `This may indicate the schemas are already registered or there's a configuration issue.`);
211
- StorageAccount.schemasRegistered = true;
212
- }
213
- }
194
+ // Public properties
214
195
  /**
215
196
  * Creates a new Azure Storage Account using the VersionedAzapiResource framework
216
197
  *
@@ -219,13 +200,9 @@ class StorageAccount extends azapi_resource_1.AzapiResource {
219
200
  * @param props - Configuration properties for the Storage Account
220
201
  */
221
202
  constructor(scope, id, props) {
222
- // Ensure schemas are registered before calling super
223
- StorageAccount.ensureSchemasRegistered();
224
203
  super(scope, id, props);
225
204
  this.props = props;
226
205
  // Extract properties from the AZAPI resource outputs
227
- this.id = `\${${this.terraformResource.fqn}.id}`;
228
- this.tags = props.tags || {};
229
206
  // Create Terraform outputs
230
207
  this.idOutput = new cdktf.TerraformOutput(this, "id", {
231
208
  value: this.id,
@@ -277,14 +254,20 @@ class StorageAccount extends azapi_resource_1.AzapiResource {
277
254
  apiSchema() {
278
255
  return this.resolveSchema();
279
256
  }
257
+ /**
258
+ * Indicates that location is required for Storage Accounts
259
+ */
260
+ requiresLocation() {
261
+ return true;
262
+ }
280
263
  /**
281
264
  * Creates the resource body for the Azure API call
282
265
  */
283
266
  createResourceBody(props) {
284
267
  const typedProps = props;
285
268
  return {
286
- location: typedProps.location || "eastus",
287
- tags: typedProps.tags || {},
269
+ location: this.location,
270
+ tags: this.allTags(),
288
271
  sku: typedProps.sku,
289
272
  kind: typedProps.kind || "StorageV2",
290
273
  properties: {
@@ -360,6 +343,9 @@ class StorageAccount extends azapi_resource_1.AzapiResource {
360
343
  }
361
344
  exports.StorageAccount = StorageAccount;
362
345
  _a = JSII_RTTI_SYMBOL_1;
363
- StorageAccount[_a] = { fqn: "@microsoft/terraform-cdk-constructs.StorageAccount", version: "1.2.0" };
364
- StorageAccount.schemasRegistered = false;
365
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1hY2NvdW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLXN0b3JhZ2VhY2NvdW50L2xpYi9zdG9yYWdlLWFjY291bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBRUgsK0JBQStCO0FBRS9CLHVFQUltQztBQUNuQyw4RUFJbUQ7QUFDbkQsa0dBQTZGO0FBME43Rjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTRCRztBQUNILE1BQWEsY0FBZSxTQUFRLDhCQUFhO0lBQy9DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Ba0NHO0lBQ0ksTUFBTSxDQUFDLGlCQUFpQixDQUM3QixhQUFxQixFQUNyQixXQUFvQixFQUNwQixPQUF5QztRQUV6QyxNQUFNLFlBQVksR0FBVSxFQUFFLENBQUM7UUFFL0IseUJBQXlCO1FBQ3pCLElBQUksT0FBTyxFQUFFLHVCQUF1QixLQUFLLEtBQUssRUFBRSxDQUFDO1lBQy9DLFlBQVksQ0FBQyxJQUFJLENBQUM7Z0JBQ2hCLElBQUksRUFBRSx3QkFBd0I7Z0JBQzlCLFdBQVcsRUFDVCwrREFBK0Q7Z0JBQ2pFLFFBQVEsRUFBRSxDQUFDLE9BQU8sRUFBRSx5QkFBeUIsSUFBSSxDQUFDLENBSzdDO2dCQUNMLE1BQU0sRUFBRSxFQUFFLEVBQUUsMENBQTBDO2dCQUN0RCxtQkFBbUIsRUFBRSxNQUFNO2dCQUMzQixVQUFVLEVBQUUsT0FBTztnQkFDbkIsUUFBUSxFQUFFO29CQUNSLElBQUksRUFBRSxpQkFBMEI7b0JBQ2hDLFVBQVUsRUFBRSxjQUFjO29CQUMxQixlQUFlLEVBQUUsbUNBQW1DO29CQUNwRCxRQUFRLEVBQUUsVUFBbUI7b0JBQzdCLFNBQVMsRUFBRSxPQUFPLEVBQUUscUJBQXFCLElBQUksSUFBSTtvQkFDakQsZUFBZSxFQUFFLFNBQWtCO2lCQUNwQztnQkFDRCxPQUFPLEVB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QUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFRCxnRkFBZ0Y7SUFDaEYseUJBQXlCO0lBQ3pCLGdGQUFnRjtJQUVoRjs7T0FFRztJQUNLLG1CQUFtQjtRQUN6QixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNwRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRTtnQkFDOUM7b0JBQ0UsY0FBYyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYTtpQkFDekM7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzs7QUExWEgsd0NBMlhDOzs7QUEzTmdCLGdDQUFpQixHQUFHLEtBQUssQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVW5pZmllZCBBenVyZSBTdG9yYWdlIEFjY291bnQgaW1wbGVtZW50YXRpb24gdXNpbmcgVmVyc2lvbmVkQXphcGlSZXNvdXJjZSBmcmFtZXdvcmtcbiAqXG4gKiBUaGlzIGNsYXNzIHJlcGxhY2VzIGFsbCB2ZXJzaW9uLXNwZWNpZmljIFN0b3JhZ2UgQWNjb3VudCBpbXBsZW1lbnRhdGlvbnMgd2l0aCBhIHNpbmdsZVxuICogdW5pZmllZCBjbGFzcyB0aGF0IGF1dG9tYXRpY2FsbHkgaGFuZGxlcyB2ZXJzaW9uIG1hbmFnZW1lbnQsIHNjaGVtYSB2YWxpZGF0aW9uLCBhbmRcbiAqIHByb3BlcnR5IHRyYW5zZm9ybWF0aW9uIGFjcm9zcyBhbGwgc3VwcG9ydGVkIEFQSSB2ZXJzaW9ucy5cbiAqXG4gKiBTdXBwb3J0ZWQgQVBJIFZlcnNpb25zOlxuICogLSAyMDIzLTAxLTAxIChBY3RpdmUpXG4gKiAtIDIwMjMtMDUtMDEgKEFjdGl2ZSlcbiAqIC0gMjAyNC0wMS0wMSAoQWN0aXZlLCBMYXRlc3QpXG4gKlxuICogRmVhdHVyZXM6XG4gKiAtIEF1dG9tYXRpYyBsYXRlc3QgdmVyc2lvbiByZXNvbHV0aW9uIHdoZW4gbm8gdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAqIC0gRXhwbGljaXQgdmVyc2lvbiBwaW5uaW5nIGZvciBzdGFiaWxpdHkgcmVxdWlyZW1lbnRzXG4gKiAtIFNjaGVtYS1kcml2ZW4gdmFsaWRhdGlvbiBhbmQgdHJhbnNmb3JtYXRpb25cbiAqIC0gRnVsbCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggZXhpc3RpbmcgU3RvcmFnZSBBY2NvdW50IGludGVyZmFjZVxuICogLSBKU0lJIGNvbXBsaWFuY2UgZm9yIG11bHRpLWxhbmd1YWdlIHN1cHBvcnRcbiAqL1xuXG5pbXBvcnQgKiBhcyBjZGt0ZiBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBBTExfU1RPUkFHRV9BQ0NPVU5UX1ZFUlNJT05TLFxuICBTVE9SQUdFX0FDQ09VTlRfVFlQRSxcbiAgU3RvcmFnZUFjY291bnRNb25pdG9yaW5nT3B0aW9ucyxcbn0gZnJvbSBcIi4vc3RvcmFnZS1hY2NvdW50LXNjaGVtYXNcIjtcbmltcG9ydCB7XG4gIEF6YXBpUmVzb3VyY2UsXG4gIEF6YXBpUmVzb3VyY2VQcm9wcyxcbiAgTW9uaXRvcmluZ0NvbmZpZyxcbn0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL2F6YXBpL2F6YXBpLXJlc291cmNlXCI7XG5pbXBvcnQgeyBBcGlWZXJzaW9uTWFuYWdlciB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvYXBpLXZlcnNpb24tbWFuYWdlclwiO1xuaW1wb3J0IHsgQXBpU2NoZW1hIH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL3ZlcnNpb24tbWFuYWdlci9pbnRlcmZhY2VzL3ZlcnNpb24taW50ZXJmYWNlc1wiO1xuXG4vKipcbiAqIFNLVSBjb25maWd1cmF0aW9uIGZvciBTdG9yYWdlIEFjY291bnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdG9yYWdlQWNjb3VudFNrdSB7XG4gIC8qKlxuICAgKiBUaGUgU0tVIG5hbWUgKFN0YW5kYXJkX0xSUywgU3RhbmRhcmRfR1JTLCBTdGFuZGFyZF9SQUdSUywgU3RhbmRhcmRfWlJTLCBQcmVtaXVtX0xSUywgUHJlbWl1bV9aUlMpXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogSVAgcnVsZSBmb3IgbmV0d29yayBBQ0xzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmFnZUFjY291bnRJcFJ1bGUge1xuICAvKipcbiAgICogSVAgYWRkcmVzcyBvciBDSURSIHJhbmdlXG4gICAqL1xuICByZWFkb25seSB2YWx1ZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFZpcnR1YWwgbmV0d29yayBydWxlIGZvciBuZXR3b3JrIEFDTHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdG9yYWdlQWNjb3VudFZpcnR1YWxOZXR3b3JrUnVsZSB7XG4gIC8qKlxuICAgKiBWaXJ0dWFsIG5ldHdvcmsgcmVzb3VyY2UgSURcbiAgICovXG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogTmV0d29yayBBQ0wgY29uZmlndXJhdGlvbiBmb3IgU3RvcmFnZSBBY2NvdW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmFnZUFjY291bnROZXR3b3JrQWNscyB7XG4gIC8qKlxuICAgKiBEZWZhdWx0IGFjdGlvbiB3aGVuIG5vIHJ1bGUgbWF0Y2hlcyAoQWxsb3cgb3IgRGVueSlcbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRBY3Rpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElQIHJ1bGVzIGZvciB0aGUgc3RvcmFnZSBhY2NvdW50XG4gICAqL1xuICByZWFkb25seSBpcFJ1bGVzPzogU3RvcmFnZUFjY291bnRJcFJ1bGVbXTtcblxuICAvKipcbiAgICogVmlydHVhbCBuZXR3b3JrIHJ1bGVzIGZvciB0aGUgc3RvcmFnZSBhY2NvdW50XG4gICAqL1xuICByZWFkb25seSB2aXJ0dWFsTmV0d29ya1J1bGVzPzogU3RvcmFnZUFjY291bnRWaXJ0dWFsTmV0d29ya1J1bGVbXTtcblxuICAvKipcbiAgICogV2hldGhlciB0byBieXBhc3MgbmV0d29yayBydWxlcyBmb3IgQXp1cmUgc2VydmljZXNcbiAgICovXG4gIHJlYWRvbmx5IGJ5cGFzcz86IHN0cmluZztcbn1cblxuLyoqXG4gKiBJZGVudGl0eSBjb25maWd1cmF0aW9uIGZvciBTdG9yYWdlIEFjY291bnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdG9yYWdlQWNjb3VudElkZW50aXR5IHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIGlkZW50aXR5IChTeXN0ZW1Bc3NpZ25lZCwgVXNlckFzc2lnbmVkLCBTeXN0ZW1Bc3NpZ25lZCxVc2VyQXNzaWduZWQpXG4gICAqL1xuICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFVzZXIgYXNzaWduZWQgaWRlbnRpdHkgSURzXG4gICAqL1xuICByZWFkb25seSB1c2VyQXNzaWduZWRJZGVudGl0aWVzPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuLyoqXG4gKiBFbmNyeXB0aW9uIHNlcnZpY2UgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JhZ2VBY2NvdW50RW5jcnlwdGlvblNlcnZpY2Uge1xuICAvKipcbiAgICogV2hldGhlciBlbmNyeXB0aW9uIGlzIGVuYWJsZWRcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZWQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEVuY3J5cHRpb24gc2VydmljZXMgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JhZ2VBY2NvdW50RW5jcnlwdGlvblNlcnZpY2VzIHtcbiAgLyoqXG4gICAqIEJsb2Igc2VydmljZSBlbmNyeXB0aW9uXG4gICAqL1xuICByZWFkb25seSBibG9iPzogU3RvcmFnZUFjY291bnRFbmNyeXB0aW9uU2VydmljZTtcblxuICAvKipcbiAgICogRmlsZSBzZXJ2aWNlIGVuY3J5cHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGZpbGU/OiBTdG9yYWdlQWNjb3VudEVuY3J5cHRpb25TZXJ2aWNlO1xuXG4gIC8qKlxuICAgKiBUYWJsZSBzZXJ2aWNlIGVuY3J5cHRpb25cbiAgICovXG4gIHJlYWRvbmx5IHRhYmxlPzogU3RvcmFnZUFjY291bnRFbmNyeXB0aW9uU2VydmljZTtcblxuICAvKipcbiAgICogUXVldWUgc2VydmljZSBlbmNyeXB0aW9uXG4gICAqL1xuICByZWFkb25seSBxdWV1ZT86IFN0b3JhZ2VBY2NvdW50RW5jcnlwdGlvblNlcnZpY2U7XG59XG5cbi8qKlxuICogRW5jcnlwdGlvbiBjb25maWd1cmF0aW9uIGZvciBTdG9yYWdlIEFjY291bnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdG9yYWdlQWNjb3VudEVuY3J5cHRpb24ge1xuICAvKipcbiAgICogRW5jcnlwdGlvbiBzZXJ2aWNlcyAoYmxvYiwgZmlsZSwgdGFibGUsIHF1ZXVlKVxuICAgKi9cbiAgcmVhZG9ubHkgc2VydmljZXM/OiBTdG9yYWdlQWNjb3VudEVuY3J5cHRpb25TZXJ2aWNlcztcblxuICAvKipcbiAgICogS2V5IHNvdXJjZSAoTWljcm9zb2Z0LlN0b3JhZ2Ugb3IgTWljcm9zb2Z0LktleXZhdWx0KVxuICAgKi9cbiAgcmVhZG9ubHkga2V5U291cmNlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHRoZSB1bmlmaWVkIEF6dXJlIFN0b3JhZ2UgQWNjb3VudFxuICpcbiAqIEV4dGVuZHMgVmVyc2lvbmVkQXphcGlSZXNvdXJjZVByb3BzIHdpdGggU3RvcmFnZSBBY2NvdW50IHNwZWNpZmljIHByb3BlcnRpZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdG9yYWdlQWNjb3VudFByb3BzIGV4dGVuZHMgQXphcGlSZXNvdXJjZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBTS1UgKHByaWNpbmcgdGllcikgZm9yIHRoZSBTdG9yYWdlIEFjY291bnRcbiAgICogQGV4YW1wbGUgeyBuYW1lOiBcIlN0YW5kYXJkX0xSU1wiIH1cbiAgICovXG4gIHJlYWRvbmx5IHNrdTogU3RvcmFnZUFjY291bnRTa3U7XG5cbiAgLyoqXG4gICAqIFRoZSBraW5kIG9mIFN0b3JhZ2UgQWNjb3VudFxuICAgKiBAZGVmYXVsdCBcIlN0b3JhZ2VWMlwiXG4gICAqIEBleGFtcGxlIFwiU3RvcmFnZVYyXCIsIFwiQmxvYlN0b3JhZ2VcIiwgXCJCbG9ja0Jsb2JTdG9yYWdlXCIsIFwiRmlsZVN0b3JhZ2VcIlxuICAgKi9cbiAgcmVhZG9ubHkga2luZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFjY2VzcyB0aWVyIGZvciBibG9iIHN0b3JhZ2VcbiAgICogQGRlZmF1bHQgXCJIb3RcIlxuICAgKiBAZXhhbXBsZSBcIkhvdFwiLCBcIkNvb2xcIlxuICAgKi9cbiAgcmVhZG9ubHkgYWNjZXNzVGllcj86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBhbGxvdyBvbmx5IEhUVFBTIHRyYWZmaWNcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlSHR0cHNUcmFmZmljT25seT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIFRMUyB2ZXJzaW9uIHJlcXVpcmVkXG4gICAqIEBkZWZhdWx0IFwiVExTMV8yXCJcbiAgICovXG4gIHJlYWRvbmx5IG1pbmltdW1UbHNWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGFsbG93IHB1YmxpYyBhY2Nlc3MgdG8gYmxvYnNcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93QmxvYlB1YmxpY0FjY2Vzcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE5ldHdvcmsgQUNMIHJ1bGVzIGZvciB0aGUgc3RvcmFnZSBhY2NvdW50XG4gICAqL1xuICByZWFkb25seSBuZXR3b3JrQWNscz86IFN0b3JhZ2VBY2NvdW50TmV0d29ya0FjbHM7XG5cbiAgLyoqXG4gICAqIE1hbmFnZWQgaWRlbnRpdHkgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgaWRlbnRpdHk/OiBTdG9yYWdlQWNjb3VudElkZW50aXR5O1xuXG4gIC8qKlxuICAgKiBFbmNyeXB0aW9uIHNldHRpbmdzXG4gICAqL1xuICByZWFkb25seSBlbmNyeXB0aW9uPzogU3RvcmFnZUFjY291bnRFbmNyeXB0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlmZWN5Y2xlIHJ1bGVzIHRvIGlnbm9yZSBjaGFuZ2VzXG4gICAqIEBleGFtcGxlIFtcInRhZ3NcIl1cbiAgICovXG4gIHJlYWRvbmx5IGlnbm9yZUNoYW5nZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUmVzb3VyY2UgZ3JvdXAgSUQgd2hlcmUgdGhlIHN0b3JhZ2UgYWNjb3VudCB3aWxsIGJlIGNyZWF0ZWRcbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlR3JvdXBJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBTdG9yYWdlIEFjY291bnQgcHJvcGVydGllcyBmb3IgdGhlIHJlcXVlc3QgYm9keVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JhZ2VBY2NvdW50Qm9keVByb3BlcnRpZXMge1xuICByZWFkb25seSBhY2Nlc3NUaWVyPzogc3RyaW5nO1xuICByZWFkb25seSBzdXBwb3J0c0h0dHBzVHJhZmZpY09ubHk/OiBib29sZWFuO1xuICByZWFkb25seSBtaW5pbXVtVGxzVmVyc2lvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgYWxsb3dCbG9iUHVibGljQWNjZXNzPzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgbmV0d29ya0FjbHM/OiBTdG9yYWdlQWNjb3VudE5ldHdvcmtBY2xzO1xuICByZWFkb25seSBlbmNyeXB0aW9uPzogU3RvcmFnZUFjY291bnRFbmNyeXB0aW9uO1xufVxuXG4vKipcbiAqIFRoZSByZXNvdXJjZSBib2R5IGludGVyZmFjZSBmb3IgQXp1cmUgU3RvcmFnZSBBY2NvdW50IEFQSSBjYWxsc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0b3JhZ2VBY2NvdW50Qm9keSB7XG4gIHJlYWRvbmx5IGxvY2F0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICByZWFkb25seSBza3U6IFN0b3JhZ2VBY2NvdW50U2t1O1xuICByZWFkb25seSBraW5kOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHByb3BlcnRpZXM/OiBTdG9yYWdlQWNjb3VudEJvZHlQcm9wZXJ0aWVzO1xuICByZWFkb25seSBpZGVudGl0eT86IFN0b3JhZ2VBY2NvdW50SWRlbnRpdHk7XG59XG5cbi8qKlxuICogVW5pZmllZCBBenVyZSBTdG9yYWdlIEFjY291bnQgaW1wbGVtZW50YXRpb25cbiAqXG4gKiBUaGlzIGNsYXNzIHByb3ZpZGVzIGEgc2luZ2xlLCB2ZXJzaW9uLWF3YXJlIGltcGxlbWVudGF0aW9uIHRoYXQgcmVwbGFjZXMgYWxsXG4gKiB2ZXJzaW9uLXNwZWNpZmljIFN0b3JhZ2UgQWNjb3VudCBjbGFzc2VzLiBJdCBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvblxuICogcmVzb2x1dGlvbiwgc2NoZW1hIHZhbGlkYXRpb24sIGFuZCBwcm9wZXJ0eSB0cmFuc2Zvcm1hdGlvbiB3aGlsZSBtYWludGFpbmluZ1xuICogZnVsbCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5LlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBCYXNpYyB1c2FnZSB3aXRoIGF1dG9tYXRpYyB2ZXJzaW9uIHJlc29sdXRpb246XG4gKiBjb25zdCBzdG9yYWdlQWNjb3VudCA9IG5ldyBTdG9yYWdlQWNjb3VudCh0aGlzLCBcInN0b3JhZ2VcIiwge1xuICogICBuYW1lOiBcIm15c3RvcmFnZWFjY291bnRcIixcbiAqICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gKiAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAqICAgc2t1OiB7IG5hbWU6IFwiU3RhbmRhcmRfTFJTXCIgfSxcbiAqIH0pO1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBVc2FnZSB3aXRoIGV4cGxpY2l0IHZlcnNpb24gcGlubmluZzpcbiAqIGNvbnN0IHN0b3JhZ2VBY2NvdW50ID0gbmV3IFN0b3JhZ2VBY2NvdW50KHRoaXMsIFwic3RvcmFnZVwiLCB7XG4gKiAgIG5hbWU6IFwibXlzdG9yYWdlYWNjb3VudFwiLFxuICogICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAqICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICogICBza3U6IHsgbmFtZTogXCJTdGFuZGFyZF9MUlNcIiB9LFxuICogICBhcGlWZXJzaW9uOiBcIjIwMjMtMDUtMDFcIixcbiAqIH0pO1xuICpcbiAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gKi9cbmV4cG9ydCBjbGFzcyBTdG9yYWdlQWNjb3VudCBleHRlbmRzIEF6YXBpUmVzb3VyY2Uge1xuICAvKipcbiAgICogUmV0dXJucyBhIHByb2R1Y3Rpb24tcmVhZHkgbW9uaXRvcmluZyBjb25maWd1cmF0aW9uIGZvciBTdG9yYWdlIEFjY291bnRzXG4gICAqXG4gICAqIFRoaXMgc3RhdGljIGZhY3RvcnkgbWV0aG9kIHByb3ZpZGVzIGEgY29tcGxldGUgTW9uaXRvcmluZ0NvbmZpZyB3aXRoIHNlbnNpYmxlIGRlZmF1bHRzXG4gICAqIGZvciBzdG9yYWdlIGFjY291bnQgbW9uaXRvcmluZyBpbmNsdWRpbmcgYXZhaWxhYmlsaXR5LCBlZ3Jlc3MsIHRyYW5zYWN0aW9ucyBhbGVydHMsIGFuZCBkZWxldGlvbiB0cmFja2luZy5cbiAgICpcbiAgICogQHBhcmFtIGFjdGlvbkdyb3VwSWQgLSBUaGUgcmVzb3VyY2UgSUQgb2YgdGhlIGFjdGlvbiBncm91cCBmb3IgYWxlcnQgbm90aWZpY2F0aW9uc1xuICAgKiBAcGFyYW0gd29ya3NwYWNlSWQgLSBPcHRpb25hbCBMb2cgQW5hbHl0aWNzIHdvcmtzcGFjZSBJRCBmb3IgZGlhZ25vc3RpYyBzZXR0aW5nc1xuICAgKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gdG8gY3VzdG9taXplIHRocmVzaG9sZHMgYW5kIGVuYWJsZS9kaXNhYmxlIHNwZWNpZmljIGFsZXJ0c1xuICAgKiBAcmV0dXJucyBBIGNvbXBsZXRlIE1vbml0b3JpbmdDb25maWcgb2JqZWN0IHJlYWR5IHRvIHVzZSBpbiBTdG9yYWdlQWNjb3VudCBwcm9wc1xuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBCYXNpYyB1c2FnZSB3aXRoIGFsbCBkZWZhdWx0c1xuICAgKiBjb25zdCBzdG9yYWdlQWNjb3VudCA9IG5ldyBTdG9yYWdlQWNjb3VudCh0aGlzLCBcInN0b3JhZ2VcIiwge1xuICAgKiAgIC8vIC4uLiBvdGhlciBwcm9wZXJ0aWVzIC4uLlxuICAgKiAgIG1vbml0b3Jpbmc6IFN0b3JhZ2VBY2NvdW50LmRlZmF1bHRNb25pdG9yaW5nKGFjdGlvbkdyb3VwLmlkLCB3b3Jrc3BhY2UuaWQpXG4gICAqIH0pO1xuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiAvLyBDdXN0b20gdGhyZXNob2xkc1xuICAgKiBjb25zdCBzdG9yYWdlQWNjb3VudCA9IG5ldyBTdG9yYWdlQWNjb3VudCh0aGlzLCBcInN0b3JhZ2VcIiwge1xuICAgKiAgIC8vIC4uLiBvdGhlciBwcm9wZXJ0aWVzIC4uLlxuICAgKiAgIG1vbml0b3Jpbmc6IFN0b3JhZ2VBY2NvdW50LmRlZmF1bHRNb25pdG9yaW5nKFxuICAgKiAgICAgYWN0aW9uR3JvdXAuaWQsXG4gICAqICAgICB3b3Jrc3BhY2UuaWQsXG4gICAqICAgICB7XG4gICAqICAgICAgIGF2YWlsYWJpbGl0eVRocmVzaG9sZDogOTkuNSxcbiAgICogICAgICAgZWdyZXNzVGhyZXNob2xkOiAyMTQ3NDgzNjQ4MCwgLy8gMjBHQlxuICAgKiAgICAgICBlbmFibGVUcmFuc2FjdGlvbnNBbGVydDogZmFsc2VcbiAgICogICAgIH1cbiAgICogICApXG4gICAqIH0pO1xuICAgKlxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBkZWZhdWx0TW9uaXRvcmluZyhcbiAgICBhY3Rpb25Hcm91cElkOiBzdHJpbmcsXG4gICAgd29ya3NwYWNlSWQ/OiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IFN0b3JhZ2VBY2NvdW50TW9uaXRvcmluZ09wdGlvbnMsXG4gICk6IE1vbml0b3JpbmdDb25maWcge1xuICAgIGNvbnN0IG1ldHJpY0FsZXJ0czogYW55W10gPSBbXTtcblxuICAgIC8vIExvdyBBdmFpbGFiaWxpdHkgQWxlcnRcbiAgICBpZiAob3B0aW9ucz8uZW5hYmxlQXZhaWxhYmlsaXR5QWxlcnQgIT09IGZhbHNlKSB7XG4gICAgICBtZXRyaWNBbGVydHMucHVzaCh7XG4gICAgICAgIG5hbWU6IFwibG93LWF2YWlsYWJpbGl0eS1hbGVydFwiLFxuICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICBcIkFsZXJ0IHdoZW4gc3RvcmFnZSBhY2NvdW50IGF2YWlsYWJpbGl0eSBkcm9wcyBiZWxvdyB0aHJlc2hvbGRcIixcbiAgICAgICAgc2V2ZXJpdHk6IChvcHRpb25zPy5hdmFpbGFiaWxpdHlBbGVydFNldmVyaXR5ID8/IDEpIGFzXG4gICAgICAgICAgfCAwXG4gICAgICAgICAgfCAxXG4gICAgICAgICAgfCAyXG4gICAgICAgICAgfCAzXG4gICAgICAgICAgfCA0LFxuICAgICAgICBzY29wZXM6IFtdLCAvLyBXaWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IGJ5IGJhc2UgY2xhc3NcbiAgICAgICAgZXZhbHVhdGlvbkZyZXF1ZW5jeTogXCJQVDVNXCIsXG4gICAgICAgIHdpbmRvd1NpemU6IFwiUFQxNU1cIixcbiAgICAgICAgY3JpdGVyaWE6IHtcbiAgICAgICAgICB0eXBlOiBcIlN0YXRpY1RocmVzaG9sZFwiIGFzIGNvbnN0LFxuICAgICAgICAgIG1ldHJpY05hbWU6IFwiQXZhaWxhYmlsaXR5XCIsXG4gICAgICAgICAgbWV0cmljTmFtZXNwYWNlOiBcIk1pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50c1wiLFxuICAgICAgICAgIG9wZXJhdG9yOiBcIkxlc3NUaGFuXCIgYXMgY29uc3QsXG4gICAgICAgICAgdGhyZXNob2xkOiBvcHRpb25zPy5hdmFpbGFiaWxpdHlUaHJlc2hvbGQgPz8gOTkuOSxcbiAgICAgICAgICB0aW1lQWdncmVnYXRpb246IFwiQXZlcmFnZVwiIGFzIGNvbnN0LFxuICAgICAgICB9LFxuICAgICAgICBhY3Rpb25zOiBbeyBhY3Rpb25Hcm91cElkIH1dLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gSGlnaCBFZ3Jlc3MgQWxlcnRcbiAgICBpZiAob3B0aW9ucz8uZW5hYmxlRWdyZXNzQWxlcnQgIT09IGZhbHNlKSB7XG4gICAgICBtZXRyaWNBbGVydHMucHVzaCh7XG4gICAgICAgIG5hbWU6IFwiaGlnaC1lZ3Jlc3MtYWxlcnRcIixcbiAgICAgICAgZGVzY3JpcHRpb246IFwiQWxlcnQgd2hlbiBzdG9yYWdlIGFjY291bnQgZWdyZXNzIGV4Y2VlZHMgdGhyZXNob2xkXCIsXG4gICAgICAgIHNldmVyaXR5OiAob3B0aW9ucz8uZWdyZXNzQWxlcnRTZXZlcml0eSA/PyAyKSBhcyAwIHwgMSB8IDIgfCAzIHwgNCxcbiAgICAgICAgc2NvcGVzOiBbXSwgLy8gV2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSBieSBiYXNlIGNsYXNzXG4gICAgICAgIGV2YWx1YXRpb25GcmVxdWVuY3k6IFwiUFQ1TVwiLFxuICAgICAgICB3aW5kb3dTaXplOiBcIlBUMUhcIixcbiAgICAgICAgY3JpdGVyaWE6IHtcbiAgICAgICAgICB0eXBlOiBcIlN0YXRpY1RocmVzaG9sZFwiIGFzIGNvbnN0LFxuICAgICAgICAgIG1ldHJpY05hbWU6IFwiRWdyZXNzXCIsXG4gICAgICAgICAgbWV0cmljTmFtZXNwYWNlOiBcIk1pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50c1wiLFxuICAgICAgICAgIG9wZXJhdG9yOiBcIkdyZWF0ZXJUaGFuXCIgYXMgY29uc3QsXG4gICAgICAgICAgdGhyZXNob2xkOiBvcHRpb25zPy5lZ3Jlc3NUaHJlc2hvbGQgPz8gMTA3Mzc0MTgyNDAsXG4gICAgICAgICAgdGltZUFnZ3JlZ2F0aW9uOiBcIlRvdGFsXCIgYXMgY29uc3QsXG4gICAgICAgIH0sXG4gICAgICAgIGFjdGlvbnM6IFt7IGFjdGlvbkdyb3VwSWQgfV0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBIaWdoIFRyYW5zYWN0aW9ucyBBbGVydFxuICAgIGlmIChvcHRpb25zPy5lbmFibGVUcmFuc2FjdGlvbnNBbGVydCAhPT0gZmFsc2UpIHtcbiAgICAgIG1ldHJpY0FsZXJ0cy5wdXNoKHtcbiAgICAgICAgbmFtZTogXCJoaWdoLXRyYW5zYWN0aW9ucy1hbGVydFwiLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJBbGVydCB3aGVuIHN0b3JhZ2UgYWNjb3VudCB0cmFuc2FjdGlvbnMgZXhjZWVkIHRocmVzaG9sZFwiLFxuICAgICAgICBzZXZlcml0eTogKG9wdGlvbnM/LnRyYW5zYWN0aW9uc0FsZXJ0U2V2ZXJpdHkgPz8gMikgYXNcbiAgICAgICAgICB8IDBcbiAgICAgICAgICB8IDFcbiAgICAgICAgICB8IDJcbiAgICAgICAgICB8IDNcbiAgICAgICAgICB8IDQsXG4gICAgICAgIHNjb3BlczogW10sIC8vIFdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYnkgYmFzZSBjbGFzc1xuICAgICAgICBldmFsdWF0aW9uRnJlcXVlbmN5OiBcIlBUNU1cIixcbiAgICAgICAgd2luZG93U2l6ZTogXCJQVDE1TVwiLFxuICAgICAgICBjcml0ZXJpYToge1xuICAgICAgICAgIHR5cGU6IFwiU3RhdGljVGhyZXNob2xkXCIgYXMgY29uc3QsXG4gICAgICAgICAgbWV0cmljTmFtZTogXCJUcmFuc2FjdGlvbnNcIixcbiAgICAgICAgICBtZXRyaWNOYW1lc3BhY2U6IFwiTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzXCIsXG4gICAgICAgICAgb3BlcmF0b3I6IFwiR3JlYXRlclRoYW5cIiBhcyBjb25zdCxcbiAgICAgICAgICB0aHJlc2hvbGQ6IG9wdGlvbnM/LnRyYW5zYWN0aW9uc1RocmVzaG9sZCA/PyAxMDAwMDAsXG4gICAgICAgICAgdGltZUFnZ3JlZ2F0aW9uOiBcIlRvdGFsXCIgYXMgY29uc3QsXG4gICAgICAgIH0sXG4gICAgICAgIGFjdGlvbnM6IFt7IGFjdGlvbkdyb3VwSWQgfV0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBCdWlsZCBkaWFnbm9zdGljIHNldHRpbmdzIGlmIHdvcmtzcGFjZSBJRCBpcyBwcm92aWRlZFxuICAgIGNvbnN0IGRpYWdub3N0aWNTZXR0aW5ncyA9IHdvcmtzcGFjZUlkXG4gICAgICA/IHtcbiAgICAgICAgICBuYW1lOiBcInN0b3JhZ2UtYWNjb3VudC1kaWFnbm9zdGljc1wiLFxuICAgICAgICAgIHRhcmdldFJlc291cmNlSWQ6IFwiXCIsIC8vIFdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYnkgYmFzZSBjbGFzc1xuICAgICAgICAgIHdvcmtzcGFjZUlkOiB3b3Jrc3BhY2VJZCxcbiAgICAgICAgICBsb2dzOiBbeyBjYXRlZ29yeUdyb3VwOiBcImFsbExvZ3NcIiwgZW5hYmxlZDogdHJ1ZSB9XSxcbiAgICAgICAgICBtZXRyaWNzOiBbeyBjYXRlZ29yeTogXCJBbGxNZXRyaWNzXCIsIGVuYWJsZWQ6IHRydWUgfV0sXG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgLy8gQnVpbGQgYWN0aXZpdHkgbG9nIGFsZXJ0c1xuICAgIGNvbnN0IGFjdGl2aXR5TG9nQWxlcnRzID1cbiAgICAgIG9wdGlvbnM/LmVuYWJsZURlbGV0aW9uQWxlcnQgIT09IGZhbHNlXG4gICAgICAgID8gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiBcInN0b3JhZ2UtYWNjb3VudC1kZWxldGlvbi1hbGVydFwiLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJBbGVydCB3aGVuIHN0b3JhZ2UgYWNjb3VudCBpcyBkZWxldGVkXCIsXG4gICAgICAgICAgICAgIHNjb3BlczogW10sIC8vIFdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYnkgYmFzZSBjbGFzc1xuICAgICAgICAgICAgICBjb25kaXRpb246IHtcbiAgICAgICAgICAgICAgICBhbGxPZjogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZDogXCJvcGVyYXRpb25OYW1lXCIsXG4gICAgICAgICAgICAgICAgICAgIGVxdWFsc1ZhbHVlOiBcIk1pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50cy9kZWxldGVcIixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgYWN0aW9uczoge1xuICAgICAgICAgICAgICAgIGFjdGlvbkdyb3VwczogW3sgYWN0aW9uR3JvdXBJZCB9XSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgIC8vIFJldHVybiBjb21wbGV0ZSBjb25maWcgb2JqZWN0XG4gICAgcmV0dXJuIHtcbiAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICBkaWFnbm9zdGljU2V0dGluZ3M6IGRpYWdub3N0aWNTZXR0aW5ncyxcbiAgICAgIG1ldHJpY0FsZXJ0czogbWV0cmljQWxlcnRzLFxuICAgICAgYWN0aXZpdHlMb2dBbGVydHM6IGFjdGl2aXR5TG9nQWxlcnRzLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBzY2hlbWFzUmVnaXN0ZXJlZCA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBFbnN1cmVzIHRoYXQgU3RvcmFnZSBBY2NvdW50IHNjaGVtYXMgYXJlIHJlZ2lzdGVyZWQgd2l0aCB0aGUgQXBpVmVyc2lvbk1hbmFnZXJcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGVuc3VyZVNjaGVtYXNSZWdpc3RlcmVkKCk6IHZvaWQge1xuICAgIGlmIChTdG9yYWdlQWNjb3VudC5zY2hlbWFzUmVnaXN0ZXJlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGFwaVZlcnNpb25NYW5hZ2VyID0gQXBpVmVyc2lvbk1hbmFnZXIuaW5zdGFuY2UoKTtcblxuICAgIHRyeSB7XG4gICAgICBhcGlWZXJzaW9uTWFuYWdlci5yZWdpc3RlclJlc291cmNlVHlwZShcbiAgICAgICAgU1RPUkFHRV9BQ0NPVU5UX1RZUEUsXG4gICAgICAgIEFMTF9TVE9SQUdFX0FDQ09VTlRfVkVSU0lPTlMsXG4gICAgICApO1xuXG4gICAgICBTdG9yYWdlQWNjb3VudC5zY2hlbWFzUmVnaXN0ZXJlZCA9IHRydWU7XG5cbiAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICBgUmVnaXN0ZXJlZCAke0FMTF9TVE9SQUdFX0FDQ09VTlRfVkVSU0lPTlMubGVuZ3RofSBBUEkgdmVyc2lvbnMgZm9yICR7U1RPUkFHRV9BQ0NPVU5UX1RZUEV9YCxcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYEZhaWxlZCB0byByZWdpc3RlciBTdG9yYWdlIEFjY291bnQgc2NoZW1hczogJHtlcnJvcn0uIGAgK1xuICAgICAgICAgIGBUaGlzIG1heSBpbmRpY2F0ZSB0aGUgc2NoZW1hcyBhcmUgYWxyZWFkeSByZWdpc3RlcmVkIG9yIHRoZXJlJ3MgYSBjb25maWd1cmF0aW9uIGlzc3VlLmAsXG4gICAgICApO1xuICAgICAgU3RvcmFnZUFjY291bnQuc2NoZW1hc1JlZ2lzdGVyZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBwcm9wczogU3RvcmFnZUFjY291bnRQcm9wcztcblxuICAvLyBPdXRwdXQgcHJvcGVydGllcyBmb3IgZWFzeSBhY2Nlc3MgYW5kIHJlZmVyZW5jaW5nXG4gIHB1YmxpYyByZWFkb25seSBpZE91dHB1dDogY2RrdGYuVGVycmFmb3JtT3V0cHV0O1xuICBwdWJsaWMgcmVhZG9ubHkgbG9jYXRpb25PdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IHRhZ3NPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IHByaW1hcnlFbmRwb2ludHNPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcblxuICAvLyBQdWJsaWMgcHJvcGVydGllc1xuICBwdWJsaWMgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHRhZ3M6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgQXp1cmUgU3RvcmFnZSBBY2NvdW50IHVzaW5nIHRoZSBWZXJzaW9uZWRBemFwaVJlc291cmNlIGZyYW1ld29ya1xuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBpbnN0YW5jZVxuICAgKiBAcGFyYW0gcHJvcHMgLSBDb25maWd1cmF0aW9uIHByb3BlcnRpZXMgZm9yIHRoZSBTdG9yYWdlIEFjY291bnRcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTdG9yYWdlQWNjb3VudFByb3BzKSB7XG4gICAgLy8gRW5zdXJlIHNjaGVtYXMgYXJlIHJlZ2lzdGVyZWQgYmVmb3JlIGNhbGxpbmcgc3VwZXJcbiAgICBTdG9yYWdlQWNjb3VudC5lbnN1cmVTY2hlbWFzUmVnaXN0ZXJlZCgpO1xuXG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG5cbiAgICAvLyBFeHRyYWN0IHByb3BlcnRpZXMgZnJvbSB0aGUgQVpBUEkgcmVzb3VyY2Ugb3V0cHV0c1xuICAgIHRoaXMuaWQgPSBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59LmlkfWA7XG4gICAgdGhpcy50YWdzID0gcHJvcHMudGFncyB8fCB7fTtcblxuICAgIC8vIENyZWF0ZSBUZXJyYWZvcm0gb3V0cHV0c1xuICAgIHRoaXMuaWRPdXRwdXQgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwiaWRcIiwge1xuICAgICAgdmFsdWU6IHRoaXMuaWQsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgSUQgb2YgdGhlIFN0b3JhZ2UgQWNjb3VudFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5sb2NhdGlvbk91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJsb2NhdGlvblwiLCB7XG4gICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5sb2NhdGlvbn1gLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIGxvY2F0aW9uIG9mIHRoZSBTdG9yYWdlIEFjY291bnRcIixcbiAgICB9KTtcblxuICAgIHRoaXMubmFtZU91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJuYW1lXCIsIHtcbiAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm5hbWV9YCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBuYW1lIG9mIHRoZSBTdG9yYWdlIEFjY291bnRcIixcbiAgICB9KTtcblxuICAgIHRoaXMudGFnc091dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJ0YWdzXCIsIHtcbiAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59LnRhZ3N9YCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSB0YWdzIGFzc2lnbmVkIHRvIHRoZSBTdG9yYWdlIEFjY291bnRcIixcbiAgICB9KTtcblxuICAgIHRoaXMucHJpbWFyeUVuZHBvaW50c091dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQoXG4gICAgICB0aGlzLFxuICAgICAgXCJwcmltYXJ5X2VuZHBvaW50c1wiLFxuICAgICAge1xuICAgICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5vdXRwdXQucHJvcGVydGllcy5wcmltYXJ5RW5kcG9pbnRzfWAsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBwcmltYXJ5IGVuZHBvaW50cyBvZiB0aGUgU3RvcmFnZSBBY2NvdW50XCIsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICAvLyBPdmVycmlkZSBsb2dpY2FsIElEc1xuICAgIHRoaXMuaWRPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJpZFwiKTtcbiAgICB0aGlzLmxvY2F0aW9uT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwibG9jYXRpb25cIik7XG4gICAgdGhpcy5uYW1lT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwibmFtZVwiKTtcbiAgICB0aGlzLnRhZ3NPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJ0YWdzXCIpO1xuICAgIHRoaXMucHJpbWFyeUVuZHBvaW50c091dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcInByaW1hcnlfZW5kcG9pbnRzXCIpO1xuXG4gICAgLy8gQXBwbHkgaWdub3JlIGNoYW5nZXMgaWYgc3BlY2lmaWVkXG4gICAgdGhpcy5fYXBwbHlJZ25vcmVDaGFuZ2VzKCk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBSRVFVSVJFRCBBQlNUUkFDVCBNRVRIT0RTIEZST00gVmVyc2lvbmVkQXphcGlSZXNvdXJjZVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBkZWZhdWx0IEFQSSB2ZXJzaW9uIHRvIHVzZSB3aGVuIG5vIGV4cGxpY2l0IHZlcnNpb24gaXMgc3BlY2lmaWVkXG4gICAqL1xuICBwcm90ZWN0ZWQgZGVmYXVsdFZlcnNpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCIyMDI0LTAxLTAxXCI7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgQXp1cmUgcmVzb3VyY2UgdHlwZSBmb3IgU3RvcmFnZSBBY2NvdW50c1xuICAgKi9cbiAgcHJvdGVjdGVkIHJlc291cmNlVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBTVE9SQUdFX0FDQ09VTlRfVFlQRTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBUEkgc2NoZW1hIGZvciB0aGUgcmVzb2x2ZWQgdmVyc2lvblxuICAgKi9cbiAgcHJvdGVjdGVkIGFwaVNjaGVtYSgpOiBBcGlTY2hlbWEge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVTY2hlbWEoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSByZXNvdXJjZSBib2R5IGZvciB0aGUgQXp1cmUgQVBJIGNhbGxcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVSZXNvdXJjZUJvZHkocHJvcHM6IGFueSk6IGFueSB7XG4gICAgY29uc3QgdHlwZWRQcm9wcyA9IHByb3BzIGFzIFN0b3JhZ2VBY2NvdW50UHJvcHM7XG4gICAgcmV0dXJuIHtcbiAgICAgIGxvY2F0aW9uOiB0eXBlZFByb3BzLmxvY2F0aW9uIHx8IFwiZWFzdHVzXCIsXG4gICAgICB0YWdzOiB0eXBlZFByb3BzLnRhZ3MgfHwge30sXG4gICAgICBza3U6IHR5cGVkUHJvcHMuc2t1LFxuICAgICAga2luZDogdHlwZWRQcm9wcy5raW5kIHx8IFwiU3RvcmFnZVYyXCIsXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIGFjY2Vzc1RpZXI6IHR5cGVkUHJvcHMuYWNjZXNzVGllciB8fCBcIkhvdFwiLFxuICAgICAgICBzdXBwb3J0c0h0dHBzVHJhZmZpY09ubHk6IHR5cGVkUHJvcHMuZW5hYmxlSHR0cHNUcmFmZmljT25seSAhPT0gZmFsc2UsXG4gICAgICAgIG1pbmltdW1UbHNWZXJzaW9uOiB0eXBlZFByb3BzLm1pbmltdW1UbHNWZXJzaW9uIHx8IFwiVExTMV8yXCIsXG4gICAgICAgIGFsbG93QmxvYlB1YmxpY0FjY2VzczogdHlwZWRQcm9wcy5hbGxvd0Jsb2JQdWJsaWNBY2Nlc3MgfHwgZmFsc2UsXG4gICAgICAgIG5ldHdvcmtBY2xzOiB0eXBlZFByb3BzLm5ldHdvcmtBY2xzLFxuICAgICAgICBlbmNyeXB0aW9uOiB0eXBlZFByb3BzLmVuY3J5cHRpb24sXG4gICAgICB9LFxuICAgICAgaWRlbnRpdHk6IHR5cGVkUHJvcHMuaWRlbnRpdHksXG4gICAgfTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFBVQkxJQyBNRVRIT0RTIEZPUiBTVE9SQUdFIEFDQ09VTlQgT1BFUkFUSU9OU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHByaW1hcnkgYmxvYiBlbmRwb2ludFxuICAgKi9cbiAgcHVibGljIGdldCBwcmltYXJ5QmxvYkVuZHBvaW50KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ub3V0cHV0LnByb3BlcnRpZXMucHJpbWFyeUVuZHBvaW50cy5ibG9ifWA7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBwcmltYXJ5IGZpbGUgZW5kcG9pbnRcbiAgICovXG4gIHB1YmxpYyBnZXQgcHJpbWFyeUZpbGVFbmRwb2ludCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLnByaW1hcnlFbmRwb2ludHMuZmlsZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcHJpbWFyeSBxdWV1ZSBlbmRwb2ludFxuICAgKi9cbiAgcHVibGljIGdldCBwcmltYXJ5UXVldWVFbmRwb2ludCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLnByaW1hcnlFbmRwb2ludHMucXVldWV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHByaW1hcnkgdGFibGUgZW5kcG9pbnRcbiAgICovXG4gIHB1YmxpYyBnZXQgcHJpbWFyeVRhYmxlRW5kcG9pbnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5vdXRwdXQucHJvcGVydGllcy5wcmltYXJ5RW5kcG9pbnRzLnRhYmxlfWA7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgdGFnIHRvIHRoZSBTdG9yYWdlIEFjY291bnRcbiAgICovXG4gIHB1YmxpYyBhZGRUYWcoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucHJvcHMudGFncykge1xuICAgICAgKHRoaXMucHJvcHMgYXMgYW55KS50YWdzID0ge307XG4gICAgfVxuICAgIHRoaXMucHJvcHMudGFncyFba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIHRhZyBmcm9tIHRoZSBTdG9yYWdlIEFjY291bnRcbiAgICovXG4gIHB1YmxpYyByZW1vdmVUYWcoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy50YWdzICYmIHRoaXMucHJvcHMudGFnc1trZXldKSB7XG4gICAgICBkZWxldGUgdGhpcy5wcm9wcy50YWdzW2tleV07XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUFJJVkFURSBIRUxQRVIgTUVUSE9EU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIGlnbm9yZSBjaGFuZ2VzIGxpZmVjeWNsZSBydWxlcyBpZiBzcGVjaWZpZWQgaW4gcHJvcHNcbiAgICovXG4gIHByaXZhdGUgX2FwcGx5SWdub3JlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy5pZ25vcmVDaGFuZ2VzICYmIHRoaXMucHJvcHMuaWdub3JlQ2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnRlcnJhZm9ybVJlc291cmNlLmFkZE92ZXJyaWRlKFwibGlmZWN5Y2xlXCIsIFtcbiAgICAgICAge1xuICAgICAgICAgIGlnbm9yZV9jaGFuZ2VzOiB0aGlzLnByb3BzLmlnbm9yZUNoYW5nZXMsXG4gICAgICAgIH0sXG4gICAgICBdKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
346
+ StorageAccount[_a] = { fqn: "@microsoft/terraform-cdk-constructs.StorageAccount", version: "1.3.1" };
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==
@@ -1,4 +1 @@
1
- /**
2
- * Azure Subnet construct - Public API
3
- */
4
1
  export * from "./lib";
@@ -1,7 +1,4 @@
1
1
  "use strict";
2
- /**
3
- * Azure Subnet construct - Public API
4
- */
5
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
3
  if (k2 === undefined) k2 = k;
7
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -18,4 +15,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
18
15
  };
19
16
  Object.defineProperty(exports, "__esModule", { value: true });
20
17
  __exportStar(require("./lib"), exports);
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp1cmUtc3VibmV0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7R0FFRzs7Ozs7Ozs7Ozs7Ozs7OztBQUVILHdDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQXp1cmUgU3VibmV0IGNvbnN0cnVjdCAtIFB1YmxpYyBBUElcbiAqL1xuXG5leHBvcnQgKiBmcm9tIFwiLi9saWJcIjtcbiJdfQ==
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp1cmUtc3VibmV0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx3Q0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9saWJcIjtcbiJdfQ==
@@ -1,5 +1,2 @@
1
- /**
2
- * Azure Subnet construct exports
3
- */
4
- export * from "./subnet";
5
1
  export * from "./subnet-schemas";
2
+ export * from "./subnet";
@@ -1,7 +1,4 @@
1
1
  "use strict";
2
- /**
3
- * Azure Subnet construct exports
4
- */
5
2
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
3
  if (k2 === undefined) k2 = k;
7
4
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -17,6 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
17
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
18
15
  };
19
16
  Object.defineProperty(exports, "__esModule", { value: true });
20
- __exportStar(require("./subnet"), exports);
21
17
  __exportStar(require("./subnet-schemas"), exports);
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtc3VibmV0L2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCwyQ0FBeUI7QUFDekIsbURBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBenVyZSBTdWJuZXQgY29uc3RydWN0IGV4cG9ydHNcbiAqL1xuXG5leHBvcnQgKiBmcm9tIFwiLi9zdWJuZXRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N1Ym5ldC1zY2hlbWFzXCI7XG4iXX0=
18
+ __exportStar(require("./subnet"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtc3VibmV0L2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBQWlDO0FBQ2pDLDJDQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3N1Ym5ldC1zY2hlbWFzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zdWJuZXRcIjtcbiJdfQ==
@@ -195,23 +195,12 @@ export interface SubnetProps extends AzapiResourceProps {
195
195
  * @stability stable
196
196
  */
197
197
  export declare class Subnet extends AzapiResource {
198
- /**
199
- * Static initialization flag to ensure schemas are registered only once
200
- */
201
- private static schemasRegistered;
202
- /**
203
- * Ensures that Subnet schemas are registered with the ApiVersionManager
204
- * This is called once during the first Subnet instantiation
205
- */
206
- private static ensureSchemasRegistered;
207
198
  /**
208
199
  * The input properties for this Subnet instance
209
200
  */
210
201
  readonly props: SubnetProps;
211
202
  readonly idOutput: cdktf.TerraformOutput;
212
203
  readonly nameOutput: cdktf.TerraformOutput;
213
- readonly addressPrefixOutput: cdktf.TerraformOutput;
214
- readonly id: string;
215
204
  /**
216
205
  * Creates a new Azure Subnet using the AzapiResource framework
217
206
  *
@@ -259,10 +248,10 @@ export declare class Subnet extends AzapiResource {
259
248
  */
260
249
  protected resolveParentId(props: any): string;
261
250
  /**
262
- * Override createAzapiResource to explicitly prevent location from being added
263
- * Subnets are child resources and inherit location from their parent VNet
251
+ * Subnets inherit location from their parent VNet, so no parent resource reference needed
252
+ * The Azure API automatically handles location inheritance for child resources
264
253
  */
265
- protected createAzapiResource(properties: Record<string, any>, parentId: string, name: string, _location?: string): cdktf.TerraformResource;
254
+ protected parentResourceForLocation(): AzapiResource | undefined;
266
255
  /**
267
256
  * Get the full resource identifier for use in other Azure resources
268
257
  * Alias for the id property to match original interface