@microsoft/terraform-cdk-constructs 1.0.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (577) hide show
  1. package/.jsii +89270 -15866
  2. package/API.md +103201 -10557
  3. package/README.md +72 -36
  4. package/docs/monitoring-guide.md +206 -0
  5. package/docs/testing.md +84 -1
  6. package/lib/azure-actiongroup/index.d.ts +1 -0
  7. package/lib/azure-actiongroup/index.js +18 -0
  8. package/lib/azure-actiongroup/lib/action-group-schemas.d.ts +24 -0
  9. package/lib/azure-actiongroup/lib/action-group-schemas.js +201 -0
  10. package/lib/azure-actiongroup/lib/action-group.d.ts +302 -0
  11. package/lib/azure-actiongroup/lib/action-group.js +175 -0
  12. package/lib/azure-actiongroup/lib/index.d.ts +2 -0
  13. package/lib/azure-actiongroup/lib/index.js +19 -0
  14. package/lib/azure-actiongroup/test/action-group.integ.d.ts +9 -0
  15. package/lib/azure-actiongroup/test/action-group.integ.js +79 -0
  16. package/lib/azure-actiongroup/test/action-group.spec.d.ts +8 -0
  17. package/lib/azure-actiongroup/test/action-group.spec.js +602 -0
  18. package/lib/azure-activitylogalert/index.d.ts +1 -0
  19. package/lib/azure-activitylogalert/index.js +18 -0
  20. package/lib/azure-activitylogalert/lib/activity-log-alert-schemas.d.ts +24 -0
  21. package/lib/azure-activitylogalert/lib/activity-log-alert-schemas.js +182 -0
  22. package/lib/azure-activitylogalert/lib/activity-log-alert.d.ts +226 -0
  23. package/lib/azure-activitylogalert/lib/activity-log-alert.js +186 -0
  24. package/lib/azure-activitylogalert/lib/index.d.ts +2 -0
  25. package/lib/azure-activitylogalert/lib/index.js +19 -0
  26. package/lib/azure-activitylogalert/test/activity-log-alert.integ.d.ts +9 -0
  27. package/lib/azure-activitylogalert/test/activity-log-alert.integ.js +98 -0
  28. package/lib/azure-activitylogalert/test/activity-log-alert.spec.d.ts +9 -0
  29. package/lib/azure-activitylogalert/test/activity-log-alert.spec.js +1101 -0
  30. package/lib/azure-aks/index.d.ts +1 -0
  31. package/lib/azure-aks/index.js +18 -0
  32. package/lib/azure-aks/lib/aks-cluster-schemas.d.ts +505 -0
  33. package/lib/azure-aks/lib/aks-cluster-schemas.js +572 -0
  34. package/lib/azure-aks/lib/aks-cluster.d.ts +386 -0
  35. package/lib/azure-aks/lib/aks-cluster.js +466 -0
  36. package/lib/azure-aks/lib/index.d.ts +2 -0
  37. package/lib/azure-aks/lib/index.js +19 -0
  38. package/lib/azure-aks/test/aks-cluster.integ.d.ts +9 -0
  39. package/lib/azure-aks/test/aks-cluster.integ.js +260 -0
  40. package/lib/azure-aks/test/aks-cluster.spec.d.ts +8 -0
  41. package/lib/azure-aks/test/aks-cluster.spec.js +1396 -0
  42. package/lib/azure-diagnosticsettings/index.d.ts +1 -0
  43. package/lib/azure-diagnosticsettings/index.js +18 -0
  44. package/lib/azure-diagnosticsettings/lib/diagnostic-settings-schemas.d.ts +50 -0
  45. package/lib/azure-diagnosticsettings/lib/diagnostic-settings-schemas.js +207 -0
  46. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.d.ts +183 -0
  47. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +174 -0
  48. package/lib/azure-diagnosticsettings/lib/index.d.ts +2 -0
  49. package/lib/azure-diagnosticsettings/lib/index.js +19 -0
  50. package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.d.ts +8 -0
  51. package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.js +432 -0
  52. package/lib/azure-dnsforwardingruleset/index.d.ts +1 -0
  53. package/lib/azure-dnsforwardingruleset/index.js +18 -0
  54. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset-schemas.d.ts +24 -0
  55. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset-schemas.js +206 -0
  56. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.d.ts +174 -0
  57. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +214 -0
  58. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule-schemas.d.ts +24 -0
  59. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule-schemas.js +242 -0
  60. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.d.ts +193 -0
  61. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +193 -0
  62. package/lib/azure-dnsforwardingruleset/lib/index.d.ts +6 -0
  63. package/lib/azure-dnsforwardingruleset/lib/index.js +23 -0
  64. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link-schemas.d.ts +24 -0
  65. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link-schemas.js +199 -0
  66. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.d.ts +160 -0
  67. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +178 -0
  68. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.d.ts +9 -0
  69. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.js +133 -0
  70. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.spec.d.ts +9 -0
  71. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.spec.js +350 -0
  72. package/lib/azure-dnsforwardingruleset/test/forwarding-rule.spec.d.ts +9 -0
  73. package/lib/azure-dnsforwardingruleset/test/forwarding-rule.spec.js +397 -0
  74. package/lib/azure-dnsforwardingruleset/test/virtual-network-link.spec.d.ts +9 -0
  75. package/lib/azure-dnsforwardingruleset/test/virtual-network-link.spec.js +285 -0
  76. package/lib/azure-dnsresolver/index.d.ts +1 -0
  77. package/lib/azure-dnsresolver/index.js +18 -0
  78. package/lib/azure-dnsresolver/lib/dns-resolver-schemas.d.ts +24 -0
  79. package/lib/azure-dnsresolver/lib/dns-resolver-schemas.js +218 -0
  80. package/lib/azure-dnsresolver/lib/dns-resolver.d.ts +170 -0
  81. package/lib/azure-dnsresolver/lib/dns-resolver.js +236 -0
  82. package/lib/azure-dnsresolver/lib/inbound-endpoint-schemas.d.ts +24 -0
  83. package/lib/azure-dnsresolver/lib/inbound-endpoint-schemas.js +261 -0
  84. package/lib/azure-dnsresolver/lib/inbound-endpoint.d.ts +189 -0
  85. package/lib/azure-dnsresolver/lib/inbound-endpoint.js +243 -0
  86. package/lib/azure-dnsresolver/lib/index.d.ts +6 -0
  87. package/lib/azure-dnsresolver/lib/index.js +23 -0
  88. package/lib/azure-dnsresolver/lib/outbound-endpoint-schemas.d.ts +24 -0
  89. package/lib/azure-dnsresolver/lib/outbound-endpoint-schemas.js +231 -0
  90. package/lib/azure-dnsresolver/lib/outbound-endpoint.d.ts +175 -0
  91. package/lib/azure-dnsresolver/lib/outbound-endpoint.js +234 -0
  92. package/lib/azure-dnsresolver/test/dns-resolver.integ.d.ts +14 -0
  93. package/lib/azure-dnsresolver/test/dns-resolver.integ.js +117 -0
  94. package/lib/azure-dnsresolver/test/dns-resolver.spec.d.ts +9 -0
  95. package/lib/azure-dnsresolver/test/dns-resolver.spec.js +353 -0
  96. package/lib/azure-dnsresolver/test/inbound-endpoint.integ.d.ts +9 -0
  97. package/lib/azure-dnsresolver/test/inbound-endpoint.integ.js +151 -0
  98. package/lib/azure-dnsresolver/test/inbound-endpoint.spec.d.ts +9 -0
  99. package/lib/azure-dnsresolver/test/inbound-endpoint.spec.js +441 -0
  100. package/lib/azure-dnsresolver/test/outbound-endpoint.integ.d.ts +9 -0
  101. package/lib/azure-dnsresolver/test/outbound-endpoint.integ.js +149 -0
  102. package/lib/azure-dnsresolver/test/outbound-endpoint.spec.d.ts +9 -0
  103. package/lib/azure-dnsresolver/test/outbound-endpoint.spec.js +301 -0
  104. package/lib/azure-dnszone/index.d.ts +1 -0
  105. package/lib/azure-dnszone/index.js +18 -0
  106. package/lib/azure-dnszone/lib/dns-zone-schemas.d.ts +24 -0
  107. package/lib/azure-dnszone/lib/dns-zone-schemas.js +191 -0
  108. package/lib/azure-dnszone/lib/dns-zone.d.ts +182 -0
  109. package/lib/azure-dnszone/lib/dns-zone.js +228 -0
  110. package/lib/azure-dnszone/lib/index.d.ts +2 -0
  111. package/lib/azure-dnszone/lib/index.js +19 -0
  112. package/lib/azure-dnszone/test/dns-zone.integ.d.ts +9 -0
  113. package/lib/azure-dnszone/test/dns-zone.integ.js +85 -0
  114. package/lib/azure-dnszone/test/dns-zone.spec.d.ts +9 -0
  115. package/lib/azure-dnszone/test/dns-zone.spec.js +285 -0
  116. package/lib/azure-metricalert/index.d.ts +1 -0
  117. package/lib/azure-metricalert/index.js +18 -0
  118. package/lib/azure-metricalert/lib/index.d.ts +2 -0
  119. package/lib/azure-metricalert/lib/index.js +19 -0
  120. package/lib/azure-metricalert/lib/metric-alert-schemas.d.ts +24 -0
  121. package/lib/azure-metricalert/lib/metric-alert-schemas.js +242 -0
  122. package/lib/azure-metricalert/lib/metric-alert.d.ts +334 -0
  123. package/lib/azure-metricalert/lib/metric-alert.js +226 -0
  124. package/lib/azure-metricalert/test/metric-alert.integ.d.ts +9 -0
  125. package/lib/azure-metricalert/test/metric-alert.integ.js +123 -0
  126. package/lib/azure-metricalert/test/metric-alert.spec.d.ts +9 -0
  127. package/lib/azure-metricalert/test/metric-alert.spec.js +1266 -0
  128. package/lib/azure-networkinterface/index.d.ts +1 -0
  129. package/lib/azure-networkinterface/index.js +18 -0
  130. package/lib/azure-networkinterface/lib/index.d.ts +2 -0
  131. package/lib/azure-networkinterface/lib/index.js +19 -0
  132. package/lib/azure-networkinterface/lib/network-interface-schemas.d.ts +32 -0
  133. package/lib/azure-networkinterface/lib/network-interface-schemas.js +222 -0
  134. package/lib/azure-networkinterface/lib/network-interface.d.ts +260 -0
  135. package/lib/azure-networkinterface/lib/network-interface.js +213 -0
  136. package/lib/azure-networkinterface/test/network-interface.integ.d.ts +9 -0
  137. package/lib/azure-networkinterface/test/network-interface.integ.js +116 -0
  138. package/lib/azure-networkinterface/test/network-interface.spec.d.ts +8 -0
  139. package/lib/azure-networkinterface/test/network-interface.spec.js +655 -0
  140. package/lib/azure-networksecuritygroup/index.d.ts +1 -0
  141. package/lib/azure-networksecuritygroup/index.js +18 -0
  142. package/lib/azure-networksecuritygroup/lib/index.d.ts +2 -0
  143. package/lib/azure-networksecuritygroup/lib/index.js +19 -0
  144. package/lib/azure-networksecuritygroup/lib/network-security-group-schemas.d.ts +32 -0
  145. package/lib/azure-networksecuritygroup/lib/network-security-group-schemas.js +198 -0
  146. package/lib/azure-networksecuritygroup/lib/network-security-group.d.ts +259 -0
  147. package/lib/azure-networksecuritygroup/lib/network-security-group.js +226 -0
  148. package/lib/azure-networksecuritygroup/test/network-security-group.integ.d.ts +9 -0
  149. package/lib/azure-networksecuritygroup/test/network-security-group.integ.js +151 -0
  150. package/lib/azure-networksecuritygroup/test/network-security-group.spec.d.ts +8 -0
  151. package/lib/azure-networksecuritygroup/test/network-security-group.spec.js +652 -0
  152. package/lib/azure-policyassignment/index.d.ts +1 -0
  153. package/lib/azure-policyassignment/index.js +18 -0
  154. package/lib/azure-policyassignment/lib/index.d.ts +2 -0
  155. package/lib/azure-policyassignment/lib/index.js +19 -0
  156. package/lib/azure-policyassignment/lib/policy-assignment-schemas.d.ts +25 -0
  157. package/lib/azure-policyassignment/lib/policy-assignment-schemas.js +260 -0
  158. package/lib/azure-policyassignment/lib/policy-assignment.d.ts +342 -0
  159. package/lib/azure-policyassignment/lib/policy-assignment.js +228 -0
  160. package/lib/azure-policyassignment/test/policy-assignment.integ.d.ts +13 -0
  161. package/lib/azure-policyassignment/test/policy-assignment.integ.js +153 -0
  162. package/lib/azure-policyassignment/test/policy-assignment.spec.d.ts +9 -0
  163. package/lib/azure-policyassignment/test/policy-assignment.spec.js +651 -0
  164. package/lib/azure-policydefinition/index.d.ts +1 -0
  165. package/lib/azure-policydefinition/index.js +18 -0
  166. package/lib/azure-policydefinition/lib/index.d.ts +2 -0
  167. package/lib/azure-policydefinition/lib/index.js +19 -0
  168. package/lib/azure-policydefinition/lib/policy-definition-schemas.d.ts +25 -0
  169. package/lib/azure-policydefinition/lib/policy-definition-schemas.js +210 -0
  170. package/lib/azure-policydefinition/lib/policy-definition.d.ts +260 -0
  171. package/lib/azure-policydefinition/lib/policy-definition.js +199 -0
  172. package/lib/azure-policydefinition/test/policy-definition.integ.d.ts +9 -0
  173. package/lib/azure-policydefinition/test/policy-definition.integ.js +137 -0
  174. package/lib/azure-policydefinition/test/policy-definition.spec.d.ts +9 -0
  175. package/lib/azure-policydefinition/test/policy-definition.spec.js +596 -0
  176. package/lib/azure-privatednszone/index.d.ts +1 -0
  177. package/lib/azure-privatednszone/index.js +18 -0
  178. package/lib/azure-privatednszone/lib/index.d.ts +2 -0
  179. package/lib/azure-privatednszone/lib/index.js +19 -0
  180. package/lib/azure-privatednszone/lib/private-dns-zone-schemas.d.ts +24 -0
  181. package/lib/azure-privatednszone/lib/private-dns-zone-schemas.js +254 -0
  182. package/lib/azure-privatednszone/lib/private-dns-zone.d.ts +178 -0
  183. package/lib/azure-privatednszone/lib/private-dns-zone.js +272 -0
  184. package/lib/azure-privatednszone/test/private-dns-zone.integ.d.ts +9 -0
  185. package/lib/azure-privatednszone/test/private-dns-zone.integ.js +84 -0
  186. package/lib/azure-privatednszone/test/private-dns-zone.spec.d.ts +9 -0
  187. package/lib/azure-privatednszone/test/private-dns-zone.spec.js +341 -0
  188. package/lib/azure-privatednszonelink/index.d.ts +1 -0
  189. package/lib/azure-privatednszonelink/index.js +18 -0
  190. package/lib/azure-privatednszonelink/lib/index.d.ts +2 -0
  191. package/lib/azure-privatednszonelink/lib/index.js +19 -0
  192. package/lib/azure-privatednszonelink/lib/private-dns-zone-link-schemas.d.ts +24 -0
  193. package/lib/azure-privatednszonelink/lib/private-dns-zone-link-schemas.js +262 -0
  194. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.d.ts +202 -0
  195. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +250 -0
  196. package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.d.ts +9 -0
  197. package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.js +110 -0
  198. package/lib/azure-privatednszonelink/test/private-dns-zone-link.spec.d.ts +9 -0
  199. package/lib/azure-privatednszonelink/test/private-dns-zone-link.spec.js +465 -0
  200. package/lib/azure-publicipaddress/index.d.ts +1 -0
  201. package/lib/azure-publicipaddress/index.js +18 -0
  202. package/lib/azure-publicipaddress/lib/index.d.ts +2 -0
  203. package/lib/azure-publicipaddress/lib/index.js +19 -0
  204. package/lib/azure-publicipaddress/lib/public-ip-address-schemas.d.ts +32 -0
  205. package/lib/azure-publicipaddress/lib/public-ip-address-schemas.js +227 -0
  206. package/lib/azure-publicipaddress/lib/public-ip-address.d.ts +247 -0
  207. package/lib/azure-publicipaddress/lib/public-ip-address.js +245 -0
  208. package/lib/azure-publicipaddress/test/public-ip-address.integ.d.ts +9 -0
  209. package/lib/azure-publicipaddress/test/public-ip-address.integ.js +75 -0
  210. package/lib/azure-publicipaddress/test/public-ip-address.spec.d.ts +15 -0
  211. package/lib/azure-publicipaddress/test/public-ip-address.spec.js +498 -0
  212. package/lib/azure-resourcegroup/index.d.ts +0 -37
  213. package/lib/azure-resourcegroup/index.js +1 -39
  214. package/lib/azure-resourcegroup/lib/index.d.ts +1 -44
  215. package/lib/azure-resourcegroup/lib/index.js +2 -43
  216. package/lib/azure-resourcegroup/lib/resource-group.d.ts +9 -23
  217. package/lib/azure-resourcegroup/lib/resource-group.js +23 -56
  218. package/lib/azure-resourcegroup/test/resource-group.integ.js +23 -11
  219. package/lib/azure-resourcegroup/test/resource-group.spec.js +13 -19
  220. package/lib/azure-roleassignment/index.d.ts +1 -0
  221. package/lib/azure-roleassignment/index.js +18 -0
  222. package/lib/azure-roleassignment/lib/index.d.ts +2 -0
  223. package/lib/azure-roleassignment/lib/index.js +19 -0
  224. package/lib/azure-roleassignment/lib/role-assignment-schemas.d.ts +25 -0
  225. package/lib/azure-roleassignment/lib/role-assignment-schemas.js +238 -0
  226. package/lib/azure-roleassignment/lib/role-assignment.d.ts +294 -0
  227. package/lib/azure-roleassignment/lib/role-assignment.js +257 -0
  228. package/lib/azure-roleassignment/test/role-assignment.integ.d.ts +12 -0
  229. package/lib/azure-roleassignment/test/role-assignment.integ.js +101 -0
  230. package/lib/azure-roleassignment/test/role-assignment.spec.d.ts +9 -0
  231. package/lib/azure-roleassignment/test/role-assignment.spec.js +633 -0
  232. package/lib/azure-roledefinition/index.d.ts +1 -0
  233. package/lib/azure-roledefinition/index.js +18 -0
  234. package/lib/azure-roledefinition/lib/index.d.ts +2 -0
  235. package/lib/azure-roledefinition/lib/index.js +19 -0
  236. package/lib/azure-roledefinition/lib/role-definition-schemas.d.ts +25 -0
  237. package/lib/azure-roledefinition/lib/role-definition-schemas.js +195 -0
  238. package/lib/azure-roledefinition/lib/role-definition.d.ts +236 -0
  239. package/lib/azure-roledefinition/lib/role-definition.js +192 -0
  240. package/lib/azure-roledefinition/test/role-definition.integ.d.ts +12 -0
  241. package/lib/azure-roledefinition/test/role-definition.integ.js +142 -0
  242. package/lib/azure-roledefinition/test/role-definition.spec.d.ts +9 -0
  243. package/lib/azure-roledefinition/test/role-definition.spec.js +946 -0
  244. package/lib/azure-storageaccount/index.d.ts +0 -19
  245. package/lib/azure-storageaccount/index.js +1 -20
  246. package/lib/azure-storageaccount/lib/index.d.ts +1 -7
  247. package/lib/azure-storageaccount/lib/index.js +2 -8
  248. package/lib/azure-storageaccount/lib/storage-account-schemas.d.ts +98 -0
  249. package/lib/azure-storageaccount/lib/storage-account-schemas.js +1 -1
  250. package/lib/azure-storageaccount/lib/storage-account.d.ts +40 -8
  251. package/lib/azure-storageaccount/lib/storage-account.js +145 -23
  252. package/lib/azure-storageaccount/test/storage-account.integ.js +91 -12
  253. package/lib/azure-subnet/index.d.ts +1 -0
  254. package/lib/azure-subnet/index.js +18 -0
  255. package/lib/azure-subnet/lib/index.d.ts +2 -0
  256. package/lib/azure-subnet/lib/index.js +19 -0
  257. package/lib/azure-subnet/lib/subnet-schemas.d.ts +32 -0
  258. package/lib/azure-subnet/lib/subnet-schemas.js +237 -0
  259. package/lib/azure-subnet/lib/subnet.d.ts +274 -0
  260. package/lib/azure-subnet/lib/subnet.js +235 -0
  261. package/lib/azure-subnet/test/subnet.integ.d.ts +11 -0
  262. package/lib/azure-subnet/test/subnet.integ.js +92 -0
  263. package/lib/azure-subnet/test/subnet.spec.d.ts +8 -0
  264. package/lib/azure-subnet/test/subnet.spec.js +395 -0
  265. package/lib/azure-virtualmachine/index.d.ts +1 -0
  266. package/lib/azure-virtualmachine/index.js +18 -0
  267. package/lib/azure-virtualmachine/lib/index.d.ts +2 -0
  268. package/lib/azure-virtualmachine/lib/index.js +19 -0
  269. package/lib/azure-virtualmachine/lib/virtual-machine-schemas.d.ts +327 -0
  270. package/lib/azure-virtualmachine/lib/virtual-machine-schemas.js +544 -0
  271. package/lib/azure-virtualmachine/lib/virtual-machine.d.ts +368 -0
  272. package/lib/azure-virtualmachine/lib/virtual-machine.js +441 -0
  273. package/lib/azure-virtualmachine/test/virtual-machine.integ.d.ts +9 -0
  274. package/lib/azure-virtualmachine/test/virtual-machine.integ.js +220 -0
  275. package/lib/azure-virtualmachine/test/virtual-machine.spec.d.ts +9 -0
  276. package/lib/azure-virtualmachine/test/virtual-machine.spec.js +1032 -0
  277. package/lib/azure-virtualnetwork/index.d.ts +1 -0
  278. package/lib/azure-virtualnetwork/index.js +18 -0
  279. package/lib/azure-virtualnetwork/lib/index.d.ts +2 -0
  280. package/lib/azure-virtualnetwork/lib/index.js +19 -0
  281. package/lib/azure-virtualnetwork/lib/virtual-network-schemas.d.ts +32 -0
  282. package/lib/azure-virtualnetwork/lib/virtual-network-schemas.js +236 -0
  283. package/lib/azure-virtualnetwork/lib/virtual-network.d.ts +204 -0
  284. package/lib/azure-virtualnetwork/lib/virtual-network.js +224 -0
  285. package/lib/azure-virtualnetwork/test/virtual-network.integ.d.ts +9 -0
  286. package/lib/azure-virtualnetwork/test/virtual-network.integ.js +91 -0
  287. package/lib/azure-virtualnetwork/test/virtual-network.spec.d.ts +8 -0
  288. package/lib/azure-virtualnetwork/test/virtual-network.spec.js +398 -0
  289. package/lib/azure-virtualnetworkmanager/index.d.ts +1 -0
  290. package/lib/azure-virtualnetworkmanager/index.js +18 -0
  291. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration-schemas.d.ts +48 -0
  292. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration-schemas.js +265 -0
  293. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.d.ts +185 -0
  294. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +206 -0
  295. package/lib/azure-virtualnetworkmanager/lib/index.d.ts +14 -0
  296. package/lib/azure-virtualnetworkmanager/lib/index.js +31 -0
  297. package/lib/azure-virtualnetworkmanager/lib/network-group-schemas.d.ts +32 -0
  298. package/lib/azure-virtualnetworkmanager/lib/network-group-schemas.js +189 -0
  299. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member-schemas.d.ts +32 -0
  300. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member-schemas.js +201 -0
  301. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.d.ts +135 -0
  302. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +163 -0
  303. package/lib/azure-virtualnetworkmanager/lib/network-group.d.ts +139 -0
  304. package/lib/azure-virtualnetworkmanager/lib/network-group.js +158 -0
  305. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration-schemas.d.ts +32 -0
  306. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration-schemas.js +182 -0
  307. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.d.ts +144 -0
  308. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +164 -0
  309. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection-schemas.d.ts +38 -0
  310. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection-schemas.js +206 -0
  311. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.d.ts +142 -0
  312. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +162 -0
  313. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-schemas.d.ts +39 -0
  314. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-schemas.js +359 -0
  315. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.d.ts +221 -0
  316. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +204 -0
  317. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager-schemas.d.ts +32 -0
  318. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager-schemas.js +236 -0
  319. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.d.ts +337 -0
  320. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +283 -0
  321. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.d.ts +25 -0
  322. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.js +402 -0
  323. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.spec.d.ts +9 -0
  324. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.spec.js +1652 -0
  325. package/lib/azure-vmss/index.d.ts +1 -0
  326. package/lib/azure-vmss/index.js +18 -0
  327. package/lib/azure-vmss/lib/index.d.ts +2 -0
  328. package/lib/azure-vmss/lib/index.js +19 -0
  329. package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +250 -0
  330. package/lib/azure-vmss/lib/virtual-machine-scale-set.js +479 -0
  331. package/lib/azure-vmss/lib/vmss-schemas.d.ts +472 -0
  332. package/lib/azure-vmss/lib/vmss-schemas.js +444 -0
  333. package/lib/azure-vmss/test/virtual-machine-scale-set.integ.d.ts +15 -0
  334. package/lib/azure-vmss/test/virtual-machine-scale-set.integ.js +261 -0
  335. package/lib/azure-vmss/test/virtual-machine-scale-set.spec.d.ts +8 -0
  336. package/lib/azure-vmss/test/virtual-machine-scale-set.spec.js +997 -0
  337. package/lib/core-azure/lib/azapi/azapi-resource-tags.spec.d.ts +10 -0
  338. package/lib/core-azure/lib/azapi/azapi-resource-tags.spec.js +218 -0
  339. package/lib/core-azure/lib/azapi/azapi-resource.d.ts +268 -48
  340. package/lib/core-azure/lib/azapi/azapi-resource.js +411 -136
  341. package/lib/core-azure/lib/azapi/azapi-resource.spec.js +2 -2
  342. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.d.ts +33 -21
  343. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +69 -27
  344. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.d.ts +134 -120
  345. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +209 -59
  346. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.d.ts +141 -128
  347. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.js +183 -36
  348. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.d.ts +55 -43
  349. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.js +94 -26
  350. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.d.ts +129 -116
  351. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.js +155 -32
  352. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.d.ts +187 -174
  353. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.js +267 -48
  354. package/lib/core-azure/lib/azapi/providers-azapi/index.d.ts +10 -10
  355. package/lib/core-azure/lib/azapi/providers-azapi/index.js +1 -1
  356. package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.d.ts +0 -0
  357. package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.js +13 -0
  358. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.d.ts +174 -162
  359. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +278 -16
  360. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.d.ts +239 -225
  361. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +360 -76
  362. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.d.ts +163 -150
  363. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +221 -46
  364. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.d.ts +162 -149
  365. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +249 -50
  366. package/lib/core-azure/lib/azapi/resource-schema-validator.d.ts +118 -0
  367. package/lib/core-azure/lib/azapi/resource-schema-validator.js +236 -0
  368. package/lib/core-azure/lib/azapi/resource-version-manager.d.ts +103 -0
  369. package/lib/core-azure/lib/azapi/resource-version-manager.js +168 -0
  370. package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +13 -6
  371. package/lib/core-azure/lib/index.d.ts +2 -2
  372. package/lib/core-azure/lib/index.js +5 -5
  373. package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
  374. package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
  375. package/lib/index.d.ts +56 -0
  376. package/lib/index.js +59 -2
  377. package/lib/testing/index.d.ts +92 -2
  378. package/lib/testing/index.js +258 -18
  379. package/lib/testing/lib/cleanup.d.ts +230 -0
  380. package/lib/testing/lib/cleanup.js +338 -0
  381. package/lib/testing/lib/metadata.d.ts +151 -0
  382. package/lib/testing/lib/metadata.js +183 -0
  383. package/lib/testing/lib/naming.d.ts +96 -0
  384. package/lib/testing/lib/naming.js +336 -0
  385. package/node_modules/uuid/LICENSE.md +9 -0
  386. package/node_modules/uuid/README.md +510 -0
  387. package/node_modules/uuid/dist/cjs/index.d.ts +15 -0
  388. package/node_modules/uuid/dist/cjs/index.js +31 -0
  389. package/node_modules/uuid/dist/cjs/max.d.ts +2 -0
  390. package/node_modules/uuid/dist/cjs/max.js +3 -0
  391. package/node_modules/uuid/dist/cjs/md5.d.ts +4 -0
  392. package/node_modules/uuid/dist/cjs/md5.js +13 -0
  393. package/node_modules/uuid/dist/cjs/native.d.ts +6 -0
  394. package/node_modules/uuid/dist/cjs/native.js +4 -0
  395. package/node_modules/uuid/dist/cjs/nil.d.ts +2 -0
  396. package/node_modules/uuid/dist/cjs/nil.js +3 -0
  397. package/node_modules/uuid/dist/cjs/package.json +1 -0
  398. package/node_modules/uuid/dist/cjs/parse.d.ts +2 -0
  399. package/node_modules/uuid/dist/cjs/parse.js +11 -0
  400. package/node_modules/uuid/dist/cjs/regex.d.ts +2 -0
  401. package/node_modules/uuid/dist/cjs/regex.js +3 -0
  402. package/node_modules/uuid/dist/cjs/rng.d.ts +1 -0
  403. package/node_modules/uuid/dist/cjs/rng.js +13 -0
  404. package/node_modules/uuid/dist/cjs/sha1.d.ts +4 -0
  405. package/node_modules/uuid/dist/cjs/sha1.js +13 -0
  406. package/node_modules/uuid/dist/cjs/stringify.d.ts +3 -0
  407. package/node_modules/uuid/dist/cjs/stringify.js +39 -0
  408. package/node_modules/uuid/dist/cjs/types.d.ts +21 -0
  409. package/node_modules/uuid/dist/cjs/types.js +2 -0
  410. package/node_modules/uuid/dist/cjs/uuid-bin.d.ts +1 -0
  411. package/node_modules/uuid/dist/cjs/uuid-bin.js +72 -0
  412. package/node_modules/uuid/dist/cjs/v1.d.ts +11 -0
  413. package/node_modules/uuid/dist/cjs/v1.js +87 -0
  414. package/node_modules/uuid/dist/cjs/v1ToV6.d.ts +2 -0
  415. package/node_modules/uuid/dist/cjs/v1ToV6.js +13 -0
  416. package/node_modules/uuid/dist/cjs/v3.d.ts +9 -0
  417. package/node_modules/uuid/dist/cjs/v3.js +14 -0
  418. package/node_modules/uuid/dist/cjs/v35.d.ts +7 -0
  419. package/node_modules/uuid/dist/cjs/v35.js +41 -0
  420. package/node_modules/uuid/dist/cjs/v4.d.ts +4 -0
  421. package/node_modules/uuid/dist/cjs/v4.js +29 -0
  422. package/node_modules/uuid/dist/cjs/v5.d.ts +9 -0
  423. package/node_modules/uuid/dist/cjs/v5.js +14 -0
  424. package/node_modules/uuid/dist/cjs/v6.d.ts +4 -0
  425. package/node_modules/uuid/dist/cjs/v6.js +19 -0
  426. package/node_modules/uuid/dist/cjs/v6ToV1.d.ts +2 -0
  427. package/node_modules/uuid/dist/cjs/v6ToV1.js +13 -0
  428. package/node_modules/uuid/dist/cjs/v7.d.ts +9 -0
  429. package/node_modules/uuid/dist/cjs/v7.js +69 -0
  430. package/node_modules/uuid/dist/cjs/validate.d.ts +2 -0
  431. package/node_modules/uuid/dist/cjs/validate.js +7 -0
  432. package/node_modules/uuid/dist/cjs/version.d.ts +2 -0
  433. package/node_modules/uuid/dist/cjs/version.js +10 -0
  434. package/node_modules/uuid/dist/cjs-browser/index.d.ts +15 -0
  435. package/node_modules/uuid/dist/cjs-browser/index.js +31 -0
  436. package/node_modules/uuid/dist/cjs-browser/max.d.ts +2 -0
  437. package/node_modules/uuid/dist/cjs-browser/max.js +3 -0
  438. package/node_modules/uuid/dist/cjs-browser/md5.d.ts +2 -0
  439. package/node_modules/uuid/dist/cjs-browser/md5.js +137 -0
  440. package/node_modules/uuid/dist/cjs-browser/native.d.ts +4 -0
  441. package/node_modules/uuid/dist/cjs-browser/native.js +4 -0
  442. package/node_modules/uuid/dist/cjs-browser/nil.d.ts +2 -0
  443. package/node_modules/uuid/dist/cjs-browser/nil.js +3 -0
  444. package/node_modules/uuid/dist/cjs-browser/package.json +1 -0
  445. package/node_modules/uuid/dist/cjs-browser/parse.d.ts +2 -0
  446. package/node_modules/uuid/dist/cjs-browser/parse.js +11 -0
  447. package/node_modules/uuid/dist/cjs-browser/regex.d.ts +2 -0
  448. package/node_modules/uuid/dist/cjs-browser/regex.js +3 -0
  449. package/node_modules/uuid/dist/cjs-browser/rng.d.ts +1 -0
  450. package/node_modules/uuid/dist/cjs-browser/rng.js +14 -0
  451. package/node_modules/uuid/dist/cjs-browser/sha1.d.ts +2 -0
  452. package/node_modules/uuid/dist/cjs-browser/sha1.js +72 -0
  453. package/node_modules/uuid/dist/cjs-browser/stringify.d.ts +3 -0
  454. package/node_modules/uuid/dist/cjs-browser/stringify.js +39 -0
  455. package/node_modules/uuid/dist/cjs-browser/types.d.ts +21 -0
  456. package/node_modules/uuid/dist/cjs-browser/types.js +2 -0
  457. package/node_modules/uuid/dist/cjs-browser/uuid-bin.d.ts +1 -0
  458. package/node_modules/uuid/dist/cjs-browser/uuid-bin.js +72 -0
  459. package/node_modules/uuid/dist/cjs-browser/v1.d.ts +11 -0
  460. package/node_modules/uuid/dist/cjs-browser/v1.js +87 -0
  461. package/node_modules/uuid/dist/cjs-browser/v1ToV6.d.ts +2 -0
  462. package/node_modules/uuid/dist/cjs-browser/v1ToV6.js +13 -0
  463. package/node_modules/uuid/dist/cjs-browser/v3.d.ts +9 -0
  464. package/node_modules/uuid/dist/cjs-browser/v3.js +14 -0
  465. package/node_modules/uuid/dist/cjs-browser/v35.d.ts +7 -0
  466. package/node_modules/uuid/dist/cjs-browser/v35.js +41 -0
  467. package/node_modules/uuid/dist/cjs-browser/v4.d.ts +4 -0
  468. package/node_modules/uuid/dist/cjs-browser/v4.js +29 -0
  469. package/node_modules/uuid/dist/cjs-browser/v5.d.ts +9 -0
  470. package/node_modules/uuid/dist/cjs-browser/v5.js +14 -0
  471. package/node_modules/uuid/dist/cjs-browser/v6.d.ts +4 -0
  472. package/node_modules/uuid/dist/cjs-browser/v6.js +19 -0
  473. package/node_modules/uuid/dist/cjs-browser/v6ToV1.d.ts +2 -0
  474. package/node_modules/uuid/dist/cjs-browser/v6ToV1.js +13 -0
  475. package/node_modules/uuid/dist/cjs-browser/v7.d.ts +9 -0
  476. package/node_modules/uuid/dist/cjs-browser/v7.js +69 -0
  477. package/node_modules/uuid/dist/cjs-browser/validate.d.ts +2 -0
  478. package/node_modules/uuid/dist/cjs-browser/validate.js +7 -0
  479. package/node_modules/uuid/dist/cjs-browser/version.d.ts +2 -0
  480. package/node_modules/uuid/dist/cjs-browser/version.js +10 -0
  481. package/node_modules/uuid/dist/esm/bin/uuid +2 -0
  482. package/node_modules/uuid/dist/esm/index.d.ts +15 -0
  483. package/node_modules/uuid/dist/esm/index.js +14 -0
  484. package/node_modules/uuid/dist/esm/max.d.ts +2 -0
  485. package/node_modules/uuid/dist/esm/max.js +1 -0
  486. package/node_modules/uuid/dist/esm/md5.d.ts +4 -0
  487. package/node_modules/uuid/dist/esm/md5.js +11 -0
  488. package/node_modules/uuid/dist/esm/native.d.ts +6 -0
  489. package/node_modules/uuid/dist/esm/native.js +2 -0
  490. package/node_modules/uuid/dist/esm/nil.d.ts +2 -0
  491. package/node_modules/uuid/dist/esm/nil.js +1 -0
  492. package/node_modules/uuid/dist/esm/parse.d.ts +2 -0
  493. package/node_modules/uuid/dist/esm/parse.js +9 -0
  494. package/node_modules/uuid/dist/esm/regex.d.ts +2 -0
  495. package/node_modules/uuid/dist/esm/regex.js +1 -0
  496. package/node_modules/uuid/dist/esm/rng.d.ts +1 -0
  497. package/node_modules/uuid/dist/esm/rng.js +10 -0
  498. package/node_modules/uuid/dist/esm/sha1.d.ts +4 -0
  499. package/node_modules/uuid/dist/esm/sha1.js +11 -0
  500. package/node_modules/uuid/dist/esm/stringify.d.ts +3 -0
  501. package/node_modules/uuid/dist/esm/stringify.js +35 -0
  502. package/node_modules/uuid/dist/esm/types.d.ts +21 -0
  503. package/node_modules/uuid/dist/esm/types.js +1 -0
  504. package/node_modules/uuid/dist/esm/uuid-bin.d.ts +1 -0
  505. package/node_modules/uuid/dist/esm/uuid-bin.js +70 -0
  506. package/node_modules/uuid/dist/esm/v1.d.ts +11 -0
  507. package/node_modules/uuid/dist/esm/v1.js +83 -0
  508. package/node_modules/uuid/dist/esm/v1ToV6.d.ts +2 -0
  509. package/node_modules/uuid/dist/esm/v1ToV6.js +10 -0
  510. package/node_modules/uuid/dist/esm/v3.d.ts +9 -0
  511. package/node_modules/uuid/dist/esm/v3.js +9 -0
  512. package/node_modules/uuid/dist/esm/v35.d.ts +7 -0
  513. package/node_modules/uuid/dist/esm/v35.js +36 -0
  514. package/node_modules/uuid/dist/esm/v4.d.ts +4 -0
  515. package/node_modules/uuid/dist/esm/v4.js +27 -0
  516. package/node_modules/uuid/dist/esm/v5.d.ts +9 -0
  517. package/node_modules/uuid/dist/esm/v5.js +9 -0
  518. package/node_modules/uuid/dist/esm/v6.d.ts +4 -0
  519. package/node_modules/uuid/dist/esm/v6.js +17 -0
  520. package/node_modules/uuid/dist/esm/v6ToV1.d.ts +2 -0
  521. package/node_modules/uuid/dist/esm/v6ToV1.js +10 -0
  522. package/node_modules/uuid/dist/esm/v7.d.ts +9 -0
  523. package/node_modules/uuid/dist/esm/v7.js +65 -0
  524. package/node_modules/uuid/dist/esm/validate.d.ts +2 -0
  525. package/node_modules/uuid/dist/esm/validate.js +5 -0
  526. package/node_modules/uuid/dist/esm/version.d.ts +2 -0
  527. package/node_modules/uuid/dist/esm/version.js +8 -0
  528. package/node_modules/uuid/dist/esm-browser/index.d.ts +15 -0
  529. package/node_modules/uuid/dist/esm-browser/index.js +14 -0
  530. package/node_modules/uuid/dist/esm-browser/max.d.ts +2 -0
  531. package/node_modules/uuid/dist/esm-browser/max.js +1 -0
  532. package/node_modules/uuid/dist/esm-browser/md5.d.ts +2 -0
  533. package/node_modules/uuid/dist/esm-browser/md5.js +135 -0
  534. package/node_modules/uuid/dist/esm-browser/native.d.ts +4 -0
  535. package/node_modules/uuid/dist/esm-browser/native.js +2 -0
  536. package/node_modules/uuid/dist/esm-browser/nil.d.ts +2 -0
  537. package/node_modules/uuid/dist/esm-browser/nil.js +1 -0
  538. package/node_modules/uuid/dist/esm-browser/parse.d.ts +2 -0
  539. package/node_modules/uuid/dist/esm-browser/parse.js +9 -0
  540. package/node_modules/uuid/dist/esm-browser/regex.d.ts +2 -0
  541. package/node_modules/uuid/dist/esm-browser/regex.js +1 -0
  542. package/node_modules/uuid/dist/esm-browser/rng.d.ts +1 -0
  543. package/node_modules/uuid/dist/esm-browser/rng.js +11 -0
  544. package/node_modules/uuid/dist/esm-browser/sha1.d.ts +2 -0
  545. package/node_modules/uuid/dist/esm-browser/sha1.js +70 -0
  546. package/node_modules/uuid/dist/esm-browser/stringify.d.ts +3 -0
  547. package/node_modules/uuid/dist/esm-browser/stringify.js +35 -0
  548. package/node_modules/uuid/dist/esm-browser/types.d.ts +21 -0
  549. package/node_modules/uuid/dist/esm-browser/types.js +1 -0
  550. package/node_modules/uuid/dist/esm-browser/uuid-bin.d.ts +1 -0
  551. package/node_modules/uuid/dist/esm-browser/uuid-bin.js +70 -0
  552. package/node_modules/uuid/dist/esm-browser/v1.d.ts +11 -0
  553. package/node_modules/uuid/dist/esm-browser/v1.js +83 -0
  554. package/node_modules/uuid/dist/esm-browser/v1ToV6.d.ts +2 -0
  555. package/node_modules/uuid/dist/esm-browser/v1ToV6.js +10 -0
  556. package/node_modules/uuid/dist/esm-browser/v3.d.ts +9 -0
  557. package/node_modules/uuid/dist/esm-browser/v3.js +9 -0
  558. package/node_modules/uuid/dist/esm-browser/v35.d.ts +7 -0
  559. package/node_modules/uuid/dist/esm-browser/v35.js +36 -0
  560. package/node_modules/uuid/dist/esm-browser/v4.d.ts +4 -0
  561. package/node_modules/uuid/dist/esm-browser/v4.js +27 -0
  562. package/node_modules/uuid/dist/esm-browser/v5.d.ts +9 -0
  563. package/node_modules/uuid/dist/esm-browser/v5.js +9 -0
  564. package/node_modules/uuid/dist/esm-browser/v6.d.ts +4 -0
  565. package/node_modules/uuid/dist/esm-browser/v6.js +17 -0
  566. package/node_modules/uuid/dist/esm-browser/v6ToV1.d.ts +2 -0
  567. package/node_modules/uuid/dist/esm-browser/v6ToV1.js +10 -0
  568. package/node_modules/uuid/dist/esm-browser/v7.d.ts +9 -0
  569. package/node_modules/uuid/dist/esm-browser/v7.js +65 -0
  570. package/node_modules/uuid/dist/esm-browser/validate.d.ts +2 -0
  571. package/node_modules/uuid/dist/esm-browser/validate.js +5 -0
  572. package/node_modules/uuid/dist/esm-browser/version.d.ts +2 -0
  573. package/node_modules/uuid/dist/esm-browser/version.js +8 -0
  574. package/node_modules/uuid/package.json +132 -0
  575. package/package.json +17 -12
  576. package/scripts/cleanup-test-resources.ts +387 -0
  577. package/scripts/generate-index.js +25 -8
@@ -0,0 +1,342 @@
1
+ /**
2
+ * Unified Azure Policy Assignment implementation using VersionedAzapiResource framework
3
+ *
4
+ * This class provides a version-aware implementation for managing Azure Policy Assignments
5
+ * using the AZAPI provider. Policy assignments apply policy definitions to specific scopes
6
+ * (subscription, resource group, or resource) and can provide parameter values and
7
+ * enforcement settings.
8
+ *
9
+ * Supported API Versions:
10
+ * - 2022-06-01 (Active, Latest)
11
+ *
12
+ * Features:
13
+ * - Automatic latest version resolution when no version is specified
14
+ * - Explicit version pinning for stability requirements
15
+ * - Schema-driven validation and transformation
16
+ * - Support for enforcement modes (Default, DoNotEnforce)
17
+ * - Managed identity support for remediation policies
18
+ * - Custom non-compliance messages
19
+ * - Scope exclusions (notScopes)
20
+ * - JSII compliance for multi-language support
21
+ */
22
+ import * as cdktf from "cdktf";
23
+ import { Construct } from "constructs";
24
+ import { AzapiResource, AzapiResourceProps } from "../../core-azure/lib/azapi/azapi-resource";
25
+ import { ApiSchema } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
26
+ /**
27
+ * Identity configuration for policy assignments
28
+ * Required for policies with deployIfNotExists or modify effects
29
+ */
30
+ export interface PolicyAssignmentIdentity {
31
+ /**
32
+ * The type of managed identity
33
+ * @example "SystemAssigned", "UserAssigned", "None"
34
+ */
35
+ readonly type: string;
36
+ /**
37
+ * The user assigned identities associated with the policy assignment
38
+ * Required when type is UserAssigned
39
+ *
40
+ * @example
41
+ * {
42
+ * "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity": {}
43
+ * }
44
+ */
45
+ readonly userAssignedIdentities?: {
46
+ [key: string]: any;
47
+ };
48
+ }
49
+ /**
50
+ * Non-compliance message configuration
51
+ */
52
+ export interface PolicyAssignmentNonComplianceMessage {
53
+ /**
54
+ * The non-compliance message for the policy assignment
55
+ */
56
+ readonly message: string;
57
+ /**
58
+ * The policy definition reference ID within a policy set definition
59
+ * Optional - if specified, this message applies only to the specified policy within the set
60
+ */
61
+ readonly policyDefinitionReferenceId?: string;
62
+ }
63
+ /**
64
+ * Properties for the unified Azure Policy Assignment
65
+ *
66
+ * Extends AzapiResourceProps with Policy Assignment specific properties
67
+ */
68
+ export interface PolicyAssignmentProps extends AzapiResourceProps {
69
+ /**
70
+ * The policy definition ID to assign
71
+ * This can be a built-in or custom policy definition
72
+ * Required property
73
+ *
74
+ * @example "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Authorization/policyDefinitions/policy-name"
75
+ * @example "/providers/Microsoft.Authorization/policyDefinitions/06a78e20-9358-41c9-923c-fb736d382a4d" (built-in)
76
+ */
77
+ readonly policyDefinitionId: string;
78
+ /**
79
+ * The scope at which the policy assignment is applied
80
+ * Can be a subscription, resource group, or resource
81
+ * Required property
82
+ *
83
+ * @example "/subscriptions/00000000-0000-0000-0000-000000000000"
84
+ * @example "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-name"
85
+ */
86
+ readonly scope: string;
87
+ /**
88
+ * The display name of the policy assignment
89
+ * Provides a human-readable name for the assignment
90
+ *
91
+ * @example "Require tag on resources in production"
92
+ */
93
+ readonly displayName?: string;
94
+ /**
95
+ * The policy assignment description
96
+ * Provides detailed information about the assignment
97
+ *
98
+ * @example "Enforces required tags on all resources in production environment"
99
+ */
100
+ readonly description?: string;
101
+ /**
102
+ * The enforcement mode of the policy assignment
103
+ * @default "Default"
104
+ * @example "Default" - Policy effect is enforced during resource creation/update
105
+ * @example "DoNotEnforce" - Policy effect is not enforced (audit only)
106
+ */
107
+ readonly enforcementMode?: string;
108
+ /**
109
+ * Parameters for the policy assignment
110
+ * Provides values for parameters defined in the policy definition
111
+ *
112
+ * @example
113
+ * {
114
+ * tagName: {
115
+ * value: "Environment"
116
+ * },
117
+ * tagValue: {
118
+ * value: "Production"
119
+ * }
120
+ * }
121
+ */
122
+ readonly parameters?: any;
123
+ /**
124
+ * Metadata for the policy assignment
125
+ * Used to store additional information like assignedBy, parameterScopes, etc.
126
+ *
127
+ * @example
128
+ * {
129
+ * assignedBy: "admin@example.com",
130
+ * parameterScopes: {}
131
+ * }
132
+ */
133
+ readonly metadata?: any;
134
+ /**
135
+ * The managed identity associated with the policy assignment
136
+ * Required for policies with deployIfNotExists or modify effects
137
+ *
138
+ * @example
139
+ * {
140
+ * type: "SystemAssigned"
141
+ * }
142
+ */
143
+ readonly identity?: PolicyAssignmentIdentity;
144
+ /**
145
+ * The policy's excluded scopes
146
+ * Resources within these scopes will not be evaluated by the policy
147
+ *
148
+ * @example ["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/excluded-rg"]
149
+ */
150
+ readonly notScopes?: string[];
151
+ /**
152
+ * The non-compliance messages for the policy assignment
153
+ * Provides custom messages when resources are non-compliant
154
+ *
155
+ * @example
156
+ * [
157
+ * {
158
+ * message: "Resource must have the Environment tag"
159
+ * }
160
+ * ]
161
+ */
162
+ readonly nonComplianceMessages?: PolicyAssignmentNonComplianceMessage[];
163
+ /**
164
+ * The lifecycle rules to ignore changes
165
+ * @example ["metadata"]
166
+ */
167
+ readonly ignoreChanges?: string[];
168
+ }
169
+ /**
170
+ * Properties interface for Azure Policy Assignment
171
+ * This is required for JSII compliance to support multi-language code generation
172
+ */
173
+ export interface PolicyAssignmentProperties {
174
+ /**
175
+ * The policy definition ID
176
+ */
177
+ readonly policyDefinitionId: string;
178
+ /**
179
+ * The scope of the policy assignment
180
+ */
181
+ readonly scope: string;
182
+ /**
183
+ * The display name of the policy assignment
184
+ */
185
+ readonly displayName?: string;
186
+ /**
187
+ * The policy assignment description
188
+ */
189
+ readonly description?: string;
190
+ /**
191
+ * The enforcement mode
192
+ */
193
+ readonly enforcementMode?: string;
194
+ /**
195
+ * Parameters for the policy assignment
196
+ */
197
+ readonly parameters?: any;
198
+ /**
199
+ * Metadata for the policy assignment
200
+ */
201
+ readonly metadata?: any;
202
+ /**
203
+ * The policy's excluded scopes
204
+ */
205
+ readonly notScopes?: string[];
206
+ /**
207
+ * The non-compliance messages
208
+ */
209
+ readonly nonComplianceMessages?: PolicyAssignmentNonComplianceMessage[];
210
+ }
211
+ /**
212
+ * The resource body interface for Azure Policy Assignment API calls
213
+ * This matches the Azure REST API schema for policy assignments
214
+ */
215
+ export interface PolicyAssignmentBody {
216
+ /**
217
+ * The properties of the policy assignment
218
+ */
219
+ readonly properties: PolicyAssignmentProperties;
220
+ /**
221
+ * The managed identity associated with the policy assignment
222
+ */
223
+ readonly identity?: PolicyAssignmentIdentity;
224
+ }
225
+ /**
226
+ * Unified Azure Policy Assignment implementation
227
+ *
228
+ * This class provides a single, version-aware implementation for managing Azure
229
+ * Policy Assignments. It automatically handles version resolution, schema validation,
230
+ * and property transformation.
231
+ *
232
+ * Note: Policy assignments can be deployed at subscription, resource group, or resource scope.
233
+ * Like policy definitions, they do not have a location property as they are not region-specific.
234
+ *
235
+ * @example
236
+ * // Basic policy assignment:
237
+ * const assignment = new PolicyAssignment(this, "assignment", {
238
+ * name: "require-tag-assignment",
239
+ * policyDefinitionId: policyDefinition.id,
240
+ * scope: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-name",
241
+ * displayName: "Require tag on resources",
242
+ * description: "Enforces required tags on resources"
243
+ * });
244
+ *
245
+ * @example
246
+ * // Policy assignment with parameters:
247
+ * const assignment = new PolicyAssignment(this, "assignment", {
248
+ * name: "require-tag-assignment",
249
+ * policyDefinitionId: policyDefinition.id,
250
+ * scope: "/subscriptions/00000000-0000-0000-0000-000000000000",
251
+ * parameters: {
252
+ * tagName: {
253
+ * value: "Environment"
254
+ * },
255
+ * tagValue: {
256
+ * value: "Production"
257
+ * }
258
+ * }
259
+ * });
260
+ *
261
+ * @example
262
+ * // Policy assignment with managed identity:
263
+ * const assignment = new PolicyAssignment(this, "assignment", {
264
+ * name: "deploy-monitoring-assignment",
265
+ * policyDefinitionId: "/providers/Microsoft.Authorization/policyDefinitions/policy-id",
266
+ * scope: "/subscriptions/00000000-0000-0000-0000-000000000000",
267
+ * identity: {
268
+ * type: "SystemAssigned"
269
+ * }
270
+ * });
271
+ *
272
+ * @stability stable
273
+ */
274
+ export declare class PolicyAssignment extends AzapiResource {
275
+ /**
276
+ * The input properties for this Policy Assignment instance
277
+ */
278
+ readonly props: PolicyAssignmentProps;
279
+ readonly idOutput: cdktf.TerraformOutput;
280
+ readonly nameOutput: cdktf.TerraformOutput;
281
+ /**
282
+ * Creates a new Azure Policy Assignment using the VersionedAzapiResource framework
283
+ *
284
+ * The constructor automatically handles version resolution, schema registration,
285
+ * validation, and resource creation.
286
+ *
287
+ * @param scope - The scope in which to define this construct
288
+ * @param id - The unique identifier for this instance
289
+ * @param props - Configuration properties for the Policy Assignment
290
+ */
291
+ constructor(scope: Construct, id: string, props: PolicyAssignmentProps);
292
+ /**
293
+ * Gets the default API version to use when no explicit version is specified
294
+ * Returns the most recent stable version as the default
295
+ */
296
+ protected defaultVersion(): string;
297
+ /**
298
+ * Gets the Azure resource type for Policy Assignments
299
+ */
300
+ protected resourceType(): string;
301
+ /**
302
+ * Gets the API schema for the resolved version
303
+ * Uses the framework's schema resolution to get the appropriate schema
304
+ */
305
+ protected apiSchema(): ApiSchema;
306
+ /**
307
+ * Creates the resource body for the Azure API call
308
+ * Transforms the input properties into the JSON format expected by Azure REST API
309
+ *
310
+ * Note: Policy assignments do not have a location property as they are
311
+ * scoped resources (subscription, resource group, or resource level).
312
+ * The scope property is NOT included in the body as it's read-only and
313
+ * automatically derived from the parentId.
314
+ */
315
+ protected createResourceBody(props: any): any;
316
+ /**
317
+ * Overrides parent ID resolution to use the scope from props
318
+ * Policy assignments are scoped resources where the scope IS the parent
319
+ */
320
+ protected resolveParentId(props: any): string;
321
+ /**
322
+ * Get the full resource identifier for use in other Azure resources
323
+ * Alias for the id property
324
+ */
325
+ get resourceId(): string;
326
+ /**
327
+ * Get the policy definition ID this assignment references
328
+ */
329
+ get policyDefinitionId(): string;
330
+ /**
331
+ * Get the scope of this policy assignment
332
+ */
333
+ get assignmentScope(): string;
334
+ /**
335
+ * Get the enforcement mode
336
+ */
337
+ get enforcementMode(): string;
338
+ /**
339
+ * Applies ignore changes lifecycle rules if specified in props
340
+ */
341
+ private _applyIgnoreChanges;
342
+ }
@@ -0,0 +1,228 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.PolicyAssignment = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ /**
7
+ * Unified Azure Policy Assignment implementation using VersionedAzapiResource framework
8
+ *
9
+ * This class provides a version-aware implementation for managing Azure Policy Assignments
10
+ * using the AZAPI provider. Policy assignments apply policy definitions to specific scopes
11
+ * (subscription, resource group, or resource) and can provide parameter values and
12
+ * enforcement settings.
13
+ *
14
+ * Supported API Versions:
15
+ * - 2022-06-01 (Active, Latest)
16
+ *
17
+ * Features:
18
+ * - Automatic latest version resolution when no version is specified
19
+ * - Explicit version pinning for stability requirements
20
+ * - Schema-driven validation and transformation
21
+ * - Support for enforcement modes (Default, DoNotEnforce)
22
+ * - Managed identity support for remediation policies
23
+ * - Custom non-compliance messages
24
+ * - Scope exclusions (notScopes)
25
+ * - JSII compliance for multi-language support
26
+ */
27
+ const cdktf = require("cdktf");
28
+ const policy_assignment_schemas_1 = require("./policy-assignment-schemas");
29
+ const azapi_resource_1 = require("../../core-azure/lib/azapi/azapi-resource");
30
+ /**
31
+ * Unified Azure Policy Assignment implementation
32
+ *
33
+ * This class provides a single, version-aware implementation for managing Azure
34
+ * Policy Assignments. It automatically handles version resolution, schema validation,
35
+ * and property transformation.
36
+ *
37
+ * Note: Policy assignments can be deployed at subscription, resource group, or resource scope.
38
+ * Like policy definitions, they do not have a location property as they are not region-specific.
39
+ *
40
+ * @example
41
+ * // Basic policy assignment:
42
+ * const assignment = new PolicyAssignment(this, "assignment", {
43
+ * name: "require-tag-assignment",
44
+ * policyDefinitionId: policyDefinition.id,
45
+ * scope: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg-name",
46
+ * displayName: "Require tag on resources",
47
+ * description: "Enforces required tags on resources"
48
+ * });
49
+ *
50
+ * @example
51
+ * // Policy assignment with parameters:
52
+ * const assignment = new PolicyAssignment(this, "assignment", {
53
+ * name: "require-tag-assignment",
54
+ * policyDefinitionId: policyDefinition.id,
55
+ * scope: "/subscriptions/00000000-0000-0000-0000-000000000000",
56
+ * parameters: {
57
+ * tagName: {
58
+ * value: "Environment"
59
+ * },
60
+ * tagValue: {
61
+ * value: "Production"
62
+ * }
63
+ * }
64
+ * });
65
+ *
66
+ * @example
67
+ * // Policy assignment with managed identity:
68
+ * const assignment = new PolicyAssignment(this, "assignment", {
69
+ * name: "deploy-monitoring-assignment",
70
+ * policyDefinitionId: "/providers/Microsoft.Authorization/policyDefinitions/policy-id",
71
+ * scope: "/subscriptions/00000000-0000-0000-0000-000000000000",
72
+ * identity: {
73
+ * type: "SystemAssigned"
74
+ * }
75
+ * });
76
+ *
77
+ * @stability stable
78
+ */
79
+ class PolicyAssignment extends azapi_resource_1.AzapiResource {
80
+ // Public properties
81
+ /**
82
+ * Creates a new Azure Policy Assignment using the VersionedAzapiResource framework
83
+ *
84
+ * The constructor automatically handles version resolution, schema registration,
85
+ * validation, and resource creation.
86
+ *
87
+ * @param scope - The scope in which to define this construct
88
+ * @param id - The unique identifier for this instance
89
+ * @param props - Configuration properties for the Policy Assignment
90
+ */
91
+ constructor(scope, id, props) {
92
+ super(scope, id, props);
93
+ this.props = props;
94
+ // Validate that location is provided when identity is specified
95
+ if (props.identity && !this.location) {
96
+ throw new Error(`Location is required for Policy Assignment "${props.name || id}" when identity is specified. ` +
97
+ `The managed identity must be provisioned in a specific Azure region.`);
98
+ }
99
+ // Extract properties from the AZAPI resource outputs using Terraform interpolation
100
+ // Create Terraform outputs for easy access and referencing from other resources
101
+ this.idOutput = new cdktf.TerraformOutput(this, "id", {
102
+ value: this.id,
103
+ description: "The ID of the Policy Assignment",
104
+ });
105
+ this.nameOutput = new cdktf.TerraformOutput(this, "name", {
106
+ value: `\${${this.terraformResource.fqn}.name}`,
107
+ description: "The name of the Policy Assignment",
108
+ });
109
+ // Override logical IDs to match original naming convention
110
+ this.idOutput.overrideLogicalId("id");
111
+ this.nameOutput.overrideLogicalId("name");
112
+ // Apply ignore changes if specified
113
+ this._applyIgnoreChanges();
114
+ }
115
+ // =============================================================================
116
+ // REQUIRED ABSTRACT METHODS FROM AzapiResource
117
+ // =============================================================================
118
+ /**
119
+ * Gets the default API version to use when no explicit version is specified
120
+ * Returns the most recent stable version as the default
121
+ */
122
+ defaultVersion() {
123
+ return "2022-06-01";
124
+ }
125
+ /**
126
+ * Gets the Azure resource type for Policy Assignments
127
+ */
128
+ resourceType() {
129
+ return policy_assignment_schemas_1.POLICY_ASSIGNMENT_TYPE;
130
+ }
131
+ /**
132
+ * Gets the API schema for the resolved version
133
+ * Uses the framework's schema resolution to get the appropriate schema
134
+ */
135
+ apiSchema() {
136
+ return this.resolveSchema();
137
+ }
138
+ /**
139
+ * Creates the resource body for the Azure API call
140
+ * Transforms the input properties into the JSON format expected by Azure REST API
141
+ *
142
+ * Note: Policy assignments do not have a location property as they are
143
+ * scoped resources (subscription, resource group, or resource level).
144
+ * The scope property is NOT included in the body as it's read-only and
145
+ * automatically derived from the parentId.
146
+ */
147
+ createResourceBody(props) {
148
+ const typedProps = props;
149
+ const body = {
150
+ properties: {
151
+ policyDefinitionId: typedProps.policyDefinitionId,
152
+ // Note: scope is NOT included here - it's read-only and derived from parentId
153
+ displayName: typedProps.displayName,
154
+ description: typedProps.description,
155
+ enforcementMode: typedProps.enforcementMode || "Default",
156
+ parameters: typedProps.parameters,
157
+ metadata: typedProps.metadata,
158
+ notScopes: typedProps.notScopes,
159
+ nonComplianceMessages: typedProps.nonComplianceMessages,
160
+ },
161
+ };
162
+ // Add identity if provided
163
+ if (typedProps.identity) {
164
+ body.identity = typedProps.identity;
165
+ // Azure requires location when identity is specified for managed identity provisioning
166
+ body.location = typedProps.location;
167
+ }
168
+ return body;
169
+ }
170
+ /**
171
+ * Overrides parent ID resolution to use the scope from props
172
+ * Policy assignments are scoped resources where the scope IS the parent
173
+ */
174
+ resolveParentId(props) {
175
+ const typedProps = props;
176
+ return typedProps.scope;
177
+ }
178
+ // =============================================================================
179
+ // PUBLIC METHODS FOR POLICY ASSIGNMENT OPERATIONS
180
+ // =============================================================================
181
+ /**
182
+ * Get the full resource identifier for use in other Azure resources
183
+ * Alias for the id property
184
+ */
185
+ get resourceId() {
186
+ return this.id;
187
+ }
188
+ /**
189
+ * Get the policy definition ID this assignment references
190
+ */
191
+ get policyDefinitionId() {
192
+ return this.props.policyDefinitionId;
193
+ }
194
+ /**
195
+ * Get the scope of this policy assignment
196
+ */
197
+ get assignmentScope() {
198
+ return this.props.scope;
199
+ }
200
+ /**
201
+ * Get the enforcement mode
202
+ */
203
+ get enforcementMode() {
204
+ return this.props.enforcementMode || "Default";
205
+ }
206
+ // =============================================================================
207
+ // PRIVATE HELPER METHODS
208
+ // =============================================================================
209
+ /**
210
+ * Applies ignore changes lifecycle rules if specified in props
211
+ */
212
+ _applyIgnoreChanges() {
213
+ if (this.props.ignoreChanges && this.props.ignoreChanges.length > 0) {
214
+ this.terraformResource.addOverride("lifecycle", [
215
+ {
216
+ ignore_changes: this.props.ignoreChanges,
217
+ },
218
+ ]);
219
+ }
220
+ }
221
+ }
222
+ exports.PolicyAssignment = PolicyAssignment;
223
+ _a = JSII_RTTI_SYMBOL_1;
224
+ PolicyAssignment[_a] = { fqn: "@microsoft/terraform-cdk-constructs.PolicyAssignment", version: "1.3.0" };
225
+ (() => {
226
+ azapi_resource_1.AzapiResource.registerSchemas(policy_assignment_schemas_1.POLICY_ASSIGNMENT_TYPE, policy_assignment_schemas_1.ALL_POLICY_ASSIGNMENT_VERSIONS);
227
+ })();
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LWFzc2lnbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtcG9saWN5YXNzaWdubWVudC9saWIvcG9saWN5LWFzc2lnbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFFSCwrQkFBK0I7QUFFL0IsMkVBR3FDO0FBQ3JDLDhFQUdtRDtBQWtPbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWdERztBQUNILE1BQWEsZ0JBQWlCLFNBQVEsOEJBQWE7SUFpQmpELG9CQUFvQjtJQUVwQjs7Ozs7Ozs7O09BU0c7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRW5CLGdFQUFnRTtRQUNoRSxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckMsTUFBTSxJQUFJLEtBQUssQ0FDYiwrQ0FBK0MsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLGdDQUFnQztnQkFDN0Ysc0VBQXNFLENBQ3pFLENBQUM7UUFDSixDQUFDO1FBRUQsbUZBQW1GO1FBRW5GLGdGQUFnRjtRQUNoRixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ3BELEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNkLFdBQVcsRUFBRSxpQ0FBaUM7U0FDL0MsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUN4RCxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxRQUFRO1lBQy9DLFdBQVcsRUFBRSxtQ0FBbUM7U0FDakQsQ0FBQyxDQUFDO1FBRUgsMkRBQTJEO1FBQzNELElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUxQyxvQ0FBb0M7UUFDcEMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGdGQUFnRjtJQUNoRiwrQ0FBK0M7SUFDL0MsZ0ZBQWdGO0lBRWhGOzs7T0FHRztJQUNPLGNBQWM7UUFDdEIsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ08sWUFBWTtRQUNwQixPQUFPLGtEQUFzQixDQUFDO0lBQ2hDLENBQUM7SUFFRDs7O09BR0c7SUFDTyxTQUFTO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNPLGtCQUFrQixDQUFDLEtBQVU7UUFDckMsTUFBTSxVQUFVLEdBQUcsS0FBOEIsQ0FBQztRQUVsRCxNQUFNLElBQUksR0FBUTtZQUNoQixVQUFVLEVBQUU7Z0JBQ1Ysa0JBQWtCLEVBQUUsVUFBVSxDQUFDLGtCQUFrQjtnQkFDakQsOEVBQThFO2dCQUM5RSxXQUFXLEVBQUUsVUFBVSxDQUFDLFdBQVc7Z0JBQ25DLFdBQVcsRUFBRSxVQUFVLENBQUMsV0FBVztnQkFDbkMsZUFBZSxFQUFFLFVBQVUsQ0FBQyxlQUFlLElBQUksU0FBUztnQkFDeEQsVUFBVSxFQUFFLFVBQVUsQ0FBQyxVQUFVO2dCQUNqQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFFBQVE7Z0JBQzdCLFNBQVMsRUFBRSxVQUFVLENBQUMsU0FBUztnQkFDL0IscUJBQXFCLEVBQUUsVUFBVSxDQUFDLHFCQUFxQjthQUN4RDtTQUNGLENBQUM7UUFFRiwyQkFBMkI7UUFDM0IsSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3BDLHVGQUF1RjtZQUN2RixJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUM7UUFDdEMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNPLGVBQWUsQ0FBQyxLQUFVO1FBQ2xDLE1BQU0sVUFBVSxHQUFHLEtBQThCLENBQUM7UUFDbEQsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDO0lBQzFCLENBQUM7SUFFRCxnRkFBZ0Y7SUFDaEYsa0RBQWtEO0lBQ2xELGdGQUFnRjtJQUVoRjs7O09BR0c7SUFDSCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQVcsa0JBQWtCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsSUFBSSxTQUFTLENBQUM7SUFDakQsQ0FBQztJQUVELGdGQUFnRjtJQUNoRix5QkFBeUI7SUFDekIsZ0ZBQWdGO0lBRWhGOztPQUVHO0lBQ0ssbUJBQW1CO1FBQ3pCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3BFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFO2dCQUM5QztvQkFDRSxjQUFjLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhO2lCQUN6QzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOztBQXZMSCw0Q0F3TEM7OztBQXZMQztJQUNFLDhCQUFhLENBQUMsZUFBZSxDQUMzQixrREFBc0IsRUFDdEIsMERBQThCLENBQy9CLENBQUM7QUFDSixDQUFDLEdBQUEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVW5pZmllZCBBenVyZSBQb2xpY3kgQXNzaWdubWVudCBpbXBsZW1lbnRhdGlvbiB1c2luZyBWZXJzaW9uZWRBemFwaVJlc291cmNlIGZyYW1ld29ya1xuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSB2ZXJzaW9uLWF3YXJlIGltcGxlbWVudGF0aW9uIGZvciBtYW5hZ2luZyBBenVyZSBQb2xpY3kgQXNzaWdubWVudHNcbiAqIHVzaW5nIHRoZSBBWkFQSSBwcm92aWRlci4gUG9saWN5IGFzc2lnbm1lbnRzIGFwcGx5IHBvbGljeSBkZWZpbml0aW9ucyB0byBzcGVjaWZpYyBzY29wZXNcbiAqIChzdWJzY3JpcHRpb24sIHJlc291cmNlIGdyb3VwLCBvciByZXNvdXJjZSkgYW5kIGNhbiBwcm92aWRlIHBhcmFtZXRlciB2YWx1ZXMgYW5kXG4gKiBlbmZvcmNlbWVudCBzZXR0aW5ncy5cbiAqXG4gKiBTdXBwb3J0ZWQgQVBJIFZlcnNpb25zOlxuICogLSAyMDIyLTA2LTAxIChBY3RpdmUsIExhdGVzdClcbiAqXG4gKiBGZWF0dXJlczpcbiAqIC0gQXV0b21hdGljIGxhdGVzdCB2ZXJzaW9uIHJlc29sdXRpb24gd2hlbiBubyB2ZXJzaW9uIGlzIHNwZWNpZmllZFxuICogLSBFeHBsaWNpdCB2ZXJzaW9uIHBpbm5pbmcgZm9yIHN0YWJpbGl0eSByZXF1aXJlbWVudHNcbiAqIC0gU2NoZW1hLWRyaXZlbiB2YWxpZGF0aW9uIGFuZCB0cmFuc2Zvcm1hdGlvblxuICogLSBTdXBwb3J0IGZvciBlbmZvcmNlbWVudCBtb2RlcyAoRGVmYXVsdCwgRG9Ob3RFbmZvcmNlKVxuICogLSBNYW5hZ2VkIGlkZW50aXR5IHN1cHBvcnQgZm9yIHJlbWVkaWF0aW9uIHBvbGljaWVzXG4gKiAtIEN1c3RvbSBub24tY29tcGxpYW5jZSBtZXNzYWdlc1xuICogLSBTY29wZSBleGNsdXNpb25zIChub3RTY29wZXMpXG4gKiAtIEpTSUkgY29tcGxpYW5jZSBmb3IgbXVsdGktbGFuZ3VhZ2Ugc3VwcG9ydFxuICovXG5cbmltcG9ydCAqIGFzIGNka3RmIGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIEFMTF9QT0xJQ1lfQVNTSUdOTUVOVF9WRVJTSU9OUyxcbiAgUE9MSUNZX0FTU0lHTk1FTlRfVFlQRSxcbn0gZnJvbSBcIi4vcG9saWN5LWFzc2lnbm1lbnQtc2NoZW1hc1wiO1xuaW1wb3J0IHtcbiAgQXphcGlSZXNvdXJjZSxcbiAgQXphcGlSZXNvdXJjZVByb3BzLFxufSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvYXphcGkvYXphcGktcmVzb3VyY2VcIjtcbmltcG9ydCB7IEFwaVNjaGVtYSB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcblxuLyoqXG4gKiBJZGVudGl0eSBjb25maWd1cmF0aW9uIGZvciBwb2xpY3kgYXNzaWdubWVudHNcbiAqIFJlcXVpcmVkIGZvciBwb2xpY2llcyB3aXRoIGRlcGxveUlmTm90RXhpc3RzIG9yIG1vZGlmeSBlZmZlY3RzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9saWN5QXNzaWdubWVudElkZW50aXR5IHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIG1hbmFnZWQgaWRlbnRpdHlcbiAgICogQGV4YW1wbGUgXCJTeXN0ZW1Bc3NpZ25lZFwiLCBcIlVzZXJBc3NpZ25lZFwiLCBcIk5vbmVcIlxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdXNlciBhc3NpZ25lZCBpZGVudGl0aWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcG9saWN5IGFzc2lnbm1lbnRcbiAgICogUmVxdWlyZWQgd2hlbiB0eXBlIGlzIFVzZXJBc3NpZ25lZFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiB7XG4gICAqICAgXCIvc3Vic2NyaXB0aW9ucy8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5NYW5hZ2VkSWRlbnRpdHkvdXNlckFzc2lnbmVkSWRlbnRpdGllcy9pZGVudGl0eVwiOiB7fVxuICAgKiB9XG4gICAqL1xuICByZWFkb25seSB1c2VyQXNzaWduZWRJZGVudGl0aWVzPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuLyoqXG4gKiBOb24tY29tcGxpYW5jZSBtZXNzYWdlIGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb2xpY3lBc3NpZ25tZW50Tm9uQ29tcGxpYW5jZU1lc3NhZ2Uge1xuICAvKipcbiAgICogVGhlIG5vbi1jb21wbGlhbmNlIG1lc3NhZ2UgZm9yIHRoZSBwb2xpY3kgYXNzaWdubWVudFxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcG9saWN5IGRlZmluaXRpb24gcmVmZXJlbmNlIElEIHdpdGhpbiBhIHBvbGljeSBzZXQgZGVmaW5pdGlvblxuICAgKiBPcHRpb25hbCAtIGlmIHNwZWNpZmllZCwgdGhpcyBtZXNzYWdlIGFwcGxpZXMgb25seSB0byB0aGUgc3BlY2lmaWVkIHBvbGljeSB3aXRoaW4gdGhlIHNldFxuICAgKi9cbiAgcmVhZG9ubHkgcG9saWN5RGVmaW5pdGlvblJlZmVyZW5jZUlkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHRoZSB1bmlmaWVkIEF6dXJlIFBvbGljeSBBc3NpZ25tZW50XG4gKlxuICogRXh0ZW5kcyBBemFwaVJlc291cmNlUHJvcHMgd2l0aCBQb2xpY3kgQXNzaWdubWVudCBzcGVjaWZpYyBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9saWN5QXNzaWdubWVudFByb3BzIGV4dGVuZHMgQXphcGlSZXNvdXJjZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBwb2xpY3kgZGVmaW5pdGlvbiBJRCB0byBhc3NpZ25cbiAgICogVGhpcyBjYW4gYmUgYSBidWlsdC1pbiBvciBjdXN0b20gcG9saWN5IGRlZmluaXRpb25cbiAgICogUmVxdWlyZWQgcHJvcGVydHlcbiAgICpcbiAgICogQGV4YW1wbGUgXCIvc3Vic2NyaXB0aW9ucy8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAvcHJvdmlkZXJzL01pY3Jvc29mdC5BdXRob3JpemF0aW9uL3BvbGljeURlZmluaXRpb25zL3BvbGljeS1uYW1lXCJcbiAgICogQGV4YW1wbGUgXCIvcHJvdmlkZXJzL01pY3Jvc29mdC5BdXRob3JpemF0aW9uL3BvbGljeURlZmluaXRpb25zLzA2YTc4ZTIwLTkzNTgtNDFjOS05MjNjLWZiNzM2ZDM4MmE0ZFwiIChidWlsdC1pbilcbiAgICovXG4gIHJlYWRvbmx5IHBvbGljeURlZmluaXRpb25JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgc2NvcGUgYXQgd2hpY2ggdGhlIHBvbGljeSBhc3NpZ25tZW50IGlzIGFwcGxpZWRcbiAgICogQ2FuIGJlIGEgc3Vic2NyaXB0aW9uLCByZXNvdXJjZSBncm91cCwgb3IgcmVzb3VyY2VcbiAgICogUmVxdWlyZWQgcHJvcGVydHlcbiAgICpcbiAgICogQGV4YW1wbGUgXCIvc3Vic2NyaXB0aW9ucy8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDBcIlxuICAgKiBAZXhhbXBsZSBcIi9zdWJzY3JpcHRpb25zLzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMC9yZXNvdXJjZUdyb3Vwcy9yZy1uYW1lXCJcbiAgICovXG4gIHJlYWRvbmx5IHNjb3BlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkaXNwbGF5IG5hbWUgb2YgdGhlIHBvbGljeSBhc3NpZ25tZW50XG4gICAqIFByb3ZpZGVzIGEgaHVtYW4tcmVhZGFibGUgbmFtZSBmb3IgdGhlIGFzc2lnbm1lbnRcbiAgICpcbiAgICogQGV4YW1wbGUgXCJSZXF1aXJlIHRhZyBvbiByZXNvdXJjZXMgaW4gcHJvZHVjdGlvblwiXG4gICAqL1xuICByZWFkb25seSBkaXNwbGF5TmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBvbGljeSBhc3NpZ25tZW50IGRlc2NyaXB0aW9uXG4gICAqIFByb3ZpZGVzIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IHRoZSBhc3NpZ25tZW50XG4gICAqXG4gICAqIEBleGFtcGxlIFwiRW5mb3JjZXMgcmVxdWlyZWQgdGFncyBvbiBhbGwgcmVzb3VyY2VzIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRcIlxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBlbmZvcmNlbWVudCBtb2RlIG9mIHRoZSBwb2xpY3kgYXNzaWdubWVudFxuICAgKiBAZGVmYXVsdCBcIkRlZmF1bHRcIlxuICAgKiBAZXhhbXBsZSBcIkRlZmF1bHRcIiAtIFBvbGljeSBlZmZlY3QgaXMgZW5mb3JjZWQgZHVyaW5nIHJlc291cmNlIGNyZWF0aW9uL3VwZGF0ZVxuICAgKiBAZXhhbXBsZSBcIkRvTm90RW5mb3JjZVwiIC0gUG9saWN5IGVmZmVjdCBpcyBub3QgZW5mb3JjZWQgKGF1ZGl0IG9ubHkpXG4gICAqL1xuICByZWFkb25seSBlbmZvcmNlbWVudE1vZGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhcmFtZXRlcnMgZm9yIHRoZSBwb2xpY3kgYXNzaWdubWVudFxuICAgKiBQcm92aWRlcyB2YWx1ZXMgZm9yIHBhcmFtZXRlcnMgZGVmaW5lZCBpbiB0aGUgcG9saWN5IGRlZmluaXRpb25cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICoge1xuICAgKiAgIHRhZ05hbWU6IHtcbiAgICogICAgIHZhbHVlOiBcIkVudmlyb25tZW50XCJcbiAgICogICB9LFxuICAgKiAgIHRhZ1ZhbHVlOiB7XG4gICAqICAgICB2YWx1ZTogXCJQcm9kdWN0aW9uXCJcbiAgICogICB9XG4gICAqIH1cbiAgICovXG4gIHJlYWRvbmx5IHBhcmFtZXRlcnM/OiBhbnk7XG5cbiAgLyoqXG4gICAqIE1ldGFkYXRhIGZvciB0aGUgcG9saWN5IGFzc2lnbm1lbnRcbiAgICogVXNlZCB0byBzdG9yZSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGxpa2UgYXNzaWduZWRCeSwgcGFyYW1ldGVyU2NvcGVzLCBldGMuXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIHtcbiAgICogICBhc3NpZ25lZEJ5OiBcImFkbWluQGV4YW1wbGUuY29tXCIsXG4gICAqICAgcGFyYW1ldGVyU2NvcGVzOiB7fVxuICAgKiB9XG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YT86IGFueTtcblxuICAvKipcbiAgICogVGhlIG1hbmFnZWQgaWRlbnRpdHkgYXNzb2NpYXRlZCB3aXRoIHRoZSBwb2xpY3kgYXNzaWdubWVudFxuICAgKiBSZXF1aXJlZCBmb3IgcG9saWNpZXMgd2l0aCBkZXBsb3lJZk5vdEV4aXN0cyBvciBtb2RpZnkgZWZmZWN0c1xuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiB7XG4gICAqICAgdHlwZTogXCJTeXN0ZW1Bc3NpZ25lZFwiXG4gICAqIH1cbiAgICovXG4gIHJlYWRvbmx5IGlkZW50aXR5PzogUG9saWN5QXNzaWdubWVudElkZW50aXR5O1xuXG4gIC8qKlxuICAgKiBUaGUgcG9saWN5J3MgZXhjbHVkZWQgc2NvcGVzXG4gICAqIFJlc291cmNlcyB3aXRoaW4gdGhlc2Ugc2NvcGVzIHdpbGwgbm90IGJlIGV2YWx1YXRlZCBieSB0aGUgcG9saWN5XG4gICAqXG4gICAqIEBleGFtcGxlIFtcIi9zdWJzY3JpcHRpb25zLzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMC9yZXNvdXJjZUdyb3Vwcy9leGNsdWRlZC1yZ1wiXVxuICAgKi9cbiAgcmVhZG9ubHkgbm90U2NvcGVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBub24tY29tcGxpYW5jZSBtZXNzYWdlcyBmb3IgdGhlIHBvbGljeSBhc3NpZ25tZW50XG4gICAqIFByb3ZpZGVzIGN1c3RvbSBtZXNzYWdlcyB3aGVuIHJlc291cmNlcyBhcmUgbm9uLWNvbXBsaWFudFxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBbXG4gICAqICAge1xuICAgKiAgICAgbWVzc2FnZTogXCJSZXNvdXJjZSBtdXN0IGhhdmUgdGhlIEVudmlyb25tZW50IHRhZ1wiXG4gICAqICAgfVxuICAgKiBdXG4gICAqL1xuICByZWFkb25seSBub25Db21wbGlhbmNlTWVzc2FnZXM/OiBQb2xpY3lBc3NpZ25tZW50Tm9uQ29tcGxpYW5jZU1lc3NhZ2VbXTtcblxuICAvKipcbiAgICogVGhlIGxpZmVjeWNsZSBydWxlcyB0byBpZ25vcmUgY2hhbmdlc1xuICAgKiBAZXhhbXBsZSBbXCJtZXRhZGF0YVwiXVxuICAgKi9cbiAgcmVhZG9ubHkgaWdub3JlQ2hhbmdlcz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgaW50ZXJmYWNlIGZvciBBenVyZSBQb2xpY3kgQXNzaWdubWVudFxuICogVGhpcyBpcyByZXF1aXJlZCBmb3IgSlNJSSBjb21wbGlhbmNlIHRvIHN1cHBvcnQgbXVsdGktbGFuZ3VhZ2UgY29kZSBnZW5lcmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9saWN5QXNzaWdubWVudFByb3BlcnRpZXMge1xuICAvKipcbiAgICogVGhlIHBvbGljeSBkZWZpbml0aW9uIElEXG4gICAqL1xuICByZWFkb25seSBwb2xpY3lEZWZpbml0aW9uSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHNjb3BlIG9mIHRoZSBwb2xpY3kgYXNzaWdubWVudFxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRpc3BsYXkgbmFtZSBvZiB0aGUgcG9saWN5IGFzc2lnbm1lbnRcbiAgICovXG4gIHJlYWRvbmx5IGRpc3BsYXlOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcG9saWN5IGFzc2lnbm1lbnQgZGVzY3JpcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZW5mb3JjZW1lbnQgbW9kZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5mb3JjZW1lbnRNb2RlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQYXJhbWV0ZXJzIGZvciB0aGUgcG9saWN5IGFzc2lnbm1lbnRcbiAgICovXG4gIHJlYWRvbmx5IHBhcmFtZXRlcnM/OiBhbnk7XG5cbiAgLyoqXG4gICAqIE1ldGFkYXRhIGZvciB0aGUgcG9saWN5IGFzc2lnbm1lbnRcbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhPzogYW55O1xuXG4gIC8qKlxuICAgKiBUaGUgcG9saWN5J3MgZXhjbHVkZWQgc2NvcGVzXG4gICAqL1xuICByZWFkb25seSBub3RTY29wZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIG5vbi1jb21wbGlhbmNlIG1lc3NhZ2VzXG4gICAqL1xuICByZWFkb25seSBub25Db21wbGlhbmNlTWVzc2FnZXM/OiBQb2xpY3lBc3NpZ25tZW50Tm9uQ29tcGxpYW5jZU1lc3NhZ2VbXTtcbn1cblxuLyoqXG4gKiBUaGUgcmVzb3VyY2UgYm9keSBpbnRlcmZhY2UgZm9yIEF6dXJlIFBvbGljeSBBc3NpZ25tZW50IEFQSSBjYWxsc1xuICogVGhpcyBtYXRjaGVzIHRoZSBBenVyZSBSRVNUIEFQSSBzY2hlbWEgZm9yIHBvbGljeSBhc3NpZ25tZW50c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvbGljeUFzc2lnbm1lbnRCb2R5IHtcbiAgLyoqXG4gICAqIFRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBwb2xpY3kgYXNzaWdubWVudFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvcGVydGllczogUG9saWN5QXNzaWdubWVudFByb3BlcnRpZXM7XG5cbiAgLyoqXG4gICAqIFRoZSBtYW5hZ2VkIGlkZW50aXR5IGFzc29jaWF0ZWQgd2l0aCB0aGUgcG9saWN5IGFzc2lnbm1lbnRcbiAgICovXG4gIHJlYWRvbmx5IGlkZW50aXR5PzogUG9saWN5QXNzaWdubWVudElkZW50aXR5O1xufVxuXG4vKipcbiAqIFVuaWZpZWQgQXp1cmUgUG9saWN5IEFzc2lnbm1lbnQgaW1wbGVtZW50YXRpb25cbiAqXG4gKiBUaGlzIGNsYXNzIHByb3ZpZGVzIGEgc2luZ2xlLCB2ZXJzaW9uLWF3YXJlIGltcGxlbWVudGF0aW9uIGZvciBtYW5hZ2luZyBBenVyZVxuICogUG9saWN5IEFzc2lnbm1lbnRzLiBJdCBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvbiByZXNvbHV0aW9uLCBzY2hlbWEgdmFsaWRhdGlvbixcbiAqIGFuZCBwcm9wZXJ0eSB0cmFuc2Zvcm1hdGlvbi5cbiAqXG4gKiBOb3RlOiBQb2xpY3kgYXNzaWdubWVudHMgY2FuIGJlIGRlcGxveWVkIGF0IHN1YnNjcmlwdGlvbiwgcmVzb3VyY2UgZ3JvdXAsIG9yIHJlc291cmNlIHNjb3BlLlxuICogTGlrZSBwb2xpY3kgZGVmaW5pdGlvbnMsIHRoZXkgZG8gbm90IGhhdmUgYSBsb2NhdGlvbiBwcm9wZXJ0eSBhcyB0aGV5IGFyZSBub3QgcmVnaW9uLXNwZWNpZmljLlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBCYXNpYyBwb2xpY3kgYXNzaWdubWVudDpcbiAqIGNvbnN0IGFzc2lnbm1lbnQgPSBuZXcgUG9saWN5QXNzaWdubWVudCh0aGlzLCBcImFzc2lnbm1lbnRcIiwge1xuICogICBuYW1lOiBcInJlcXVpcmUtdGFnLWFzc2lnbm1lbnRcIixcbiAqICAgcG9saWN5RGVmaW5pdGlvbklkOiBwb2xpY3lEZWZpbml0aW9uLmlkLFxuICogICBzY29wZTogXCIvc3Vic2NyaXB0aW9ucy8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAvcmVzb3VyY2VHcm91cHMvcmctbmFtZVwiLFxuICogICBkaXNwbGF5TmFtZTogXCJSZXF1aXJlIHRhZyBvbiByZXNvdXJjZXNcIixcbiAqICAgZGVzY3JpcHRpb246IFwiRW5mb3JjZXMgcmVxdWlyZWQgdGFncyBvbiByZXNvdXJjZXNcIlxuICogfSk7XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFBvbGljeSBhc3NpZ25tZW50IHdpdGggcGFyYW1ldGVyczpcbiAqIGNvbnN0IGFzc2lnbm1lbnQgPSBuZXcgUG9saWN5QXNzaWdubWVudCh0aGlzLCBcImFzc2lnbm1lbnRcIiwge1xuICogICBuYW1lOiBcInJlcXVpcmUtdGFnLWFzc2lnbm1lbnRcIixcbiAqICAgcG9saWN5RGVmaW5pdGlvbklkOiBwb2xpY3lEZWZpbml0aW9uLmlkLFxuICogICBzY29wZTogXCIvc3Vic2NyaXB0aW9ucy8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDBcIixcbiAqICAgcGFyYW1ldGVyczoge1xuICogICAgIHRhZ05hbWU6IHtcbiAqICAgICAgIHZhbHVlOiBcIkVudmlyb25tZW50XCJcbiAqICAgICB9LFxuICogICAgIHRhZ1ZhbHVlOiB7XG4gKiAgICAgICB2YWx1ZTogXCJQcm9kdWN0aW9uXCJcbiAqICAgICB9XG4gKiAgIH1cbiAqIH0pO1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBQb2xpY3kgYXNzaWdubWVudCB3aXRoIG1hbmFnZWQgaWRlbnRpdHk6XG4gKiBjb25zdCBhc3NpZ25tZW50ID0gbmV3IFBvbGljeUFzc2lnbm1lbnQodGhpcywgXCJhc3NpZ25tZW50XCIsIHtcbiAqICAgbmFtZTogXCJkZXBsb3ktbW9uaXRvcmluZy1hc3NpZ25tZW50XCIsXG4gKiAgIHBvbGljeURlZmluaXRpb25JZDogXCIvcHJvdmlkZXJzL01pY3Jvc29mdC5BdXRob3JpemF0aW9uL3BvbGljeURlZmluaXRpb25zL3BvbGljeS1pZFwiLFxuICogICBzY29wZTogXCIvc3Vic2NyaXB0aW9ucy8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDBcIixcbiAqICAgaWRlbnRpdHk6IHtcbiAqICAgICB0eXBlOiBcIlN5c3RlbUFzc2lnbmVkXCJcbiAqICAgfVxuICogfSk7XG4gKlxuICogQHN0YWJpbGl0eSBzdGFibGVcbiAqL1xuZXhwb3J0IGNsYXNzIFBvbGljeUFzc2lnbm1lbnQgZXh0ZW5kcyBBemFwaVJlc291cmNlIHtcbiAgc3RhdGljIHtcbiAgICBBemFwaVJlc291cmNlLnJlZ2lzdGVyU2NoZW1hcyhcbiAgICAgIFBPTElDWV9BU1NJR05NRU5UX1RZUEUsXG4gICAgICBBTExfUE9MSUNZX0FTU0lHTk1FTlRfVkVSU0lPTlMsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgcHJvcGVydGllcyBmb3IgdGhpcyBQb2xpY3kgQXNzaWdubWVudCBpbnN0YW5jZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByb3BzOiBQb2xpY3lBc3NpZ25tZW50UHJvcHM7XG5cbiAgLy8gT3V0cHV0IHByb3BlcnRpZXMgZm9yIGVhc3kgYWNjZXNzIGFuZCByZWZlcmVuY2luZ1xuICBwdWJsaWMgcmVhZG9ubHkgaWRPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcblxuICAvLyBQdWJsaWMgcHJvcGVydGllc1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEF6dXJlIFBvbGljeSBBc3NpZ25tZW50IHVzaW5nIHRoZSBWZXJzaW9uZWRBemFwaVJlc291cmNlIGZyYW1ld29ya1xuICAgKlxuICAgKiBUaGUgY29uc3RydWN0b3IgYXV0b21hdGljYWxseSBoYW5kbGVzIHZlcnNpb24gcmVzb2x1dGlvbiwgc2NoZW1hIHJlZ2lzdHJhdGlvbixcbiAgICogdmFsaWRhdGlvbiwgYW5kIHJlc291cmNlIGNyZWF0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBpbnN0YW5jZVxuICAgKiBAcGFyYW0gcHJvcHMgLSBDb25maWd1cmF0aW9uIHByb3BlcnRpZXMgZm9yIHRoZSBQb2xpY3kgQXNzaWdubWVudFxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFBvbGljeUFzc2lnbm1lbnRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuXG4gICAgLy8gVmFsaWRhdGUgdGhhdCBsb2NhdGlvbiBpcyBwcm92aWRlZCB3aGVuIGlkZW50aXR5IGlzIHNwZWNpZmllZFxuICAgIGlmIChwcm9wcy5pZGVudGl0eSAmJiAhdGhpcy5sb2NhdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgTG9jYXRpb24gaXMgcmVxdWlyZWQgZm9yIFBvbGljeSBBc3NpZ25tZW50IFwiJHtwcm9wcy5uYW1lIHx8IGlkfVwiIHdoZW4gaWRlbnRpdHkgaXMgc3BlY2lmaWVkLiBgICtcbiAgICAgICAgICBgVGhlIG1hbmFnZWQgaWRlbnRpdHkgbXVzdCBiZSBwcm92aXNpb25lZCBpbiBhIHNwZWNpZmljIEF6dXJlIHJlZ2lvbi5gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBFeHRyYWN0IHByb3BlcnRpZXMgZnJvbSB0aGUgQVpBUEkgcmVzb3VyY2Ugb3V0cHV0cyB1c2luZyBUZXJyYWZvcm0gaW50ZXJwb2xhdGlvblxuXG4gICAgLy8gQ3JlYXRlIFRlcnJhZm9ybSBvdXRwdXRzIGZvciBlYXN5IGFjY2VzcyBhbmQgcmVmZXJlbmNpbmcgZnJvbSBvdGhlciByZXNvdXJjZXNcbiAgICB0aGlzLmlkT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcImlkXCIsIHtcbiAgICAgIHZhbHVlOiB0aGlzLmlkLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIElEIG9mIHRoZSBQb2xpY3kgQXNzaWdubWVudFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5uYW1lT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcIm5hbWVcIiwge1xuICAgICAgdmFsdWU6IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ubmFtZX1gLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIG5hbWUgb2YgdGhlIFBvbGljeSBBc3NpZ25tZW50XCIsXG4gICAgfSk7XG5cbiAgICAvLyBPdmVycmlkZSBsb2dpY2FsIElEcyB0byBtYXRjaCBvcmlnaW5hbCBuYW1pbmcgY29udmVudGlvblxuICAgIHRoaXMuaWRPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJpZFwiKTtcbiAgICB0aGlzLm5hbWVPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJuYW1lXCIpO1xuXG4gICAgLy8gQXBwbHkgaWdub3JlIGNoYW5nZXMgaWYgc3BlY2lmaWVkXG4gICAgdGhpcy5fYXBwbHlJZ25vcmVDaGFuZ2VzKCk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBSRVFVSVJFRCBBQlNUUkFDVCBNRVRIT0RTIEZST00gQXphcGlSZXNvdXJjZVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBkZWZhdWx0IEFQSSB2ZXJzaW9uIHRvIHVzZSB3aGVuIG5vIGV4cGxpY2l0IHZlcnNpb24gaXMgc3BlY2lmaWVkXG4gICAqIFJldHVybnMgdGhlIG1vc3QgcmVjZW50IHN0YWJsZSB2ZXJzaW9uIGFzIHRoZSBkZWZhdWx0XG4gICAqL1xuICBwcm90ZWN0ZWQgZGVmYXVsdFZlcnNpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCIyMDIyLTA2LTAxXCI7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgQXp1cmUgcmVzb3VyY2UgdHlwZSBmb3IgUG9saWN5IEFzc2lnbm1lbnRzXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVzb3VyY2VUeXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFBPTElDWV9BU1NJR05NRU5UX1RZUEU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgQVBJIHNjaGVtYSBmb3IgdGhlIHJlc29sdmVkIHZlcnNpb25cbiAgICogVXNlcyB0aGUgZnJhbWV3b3JrJ3Mgc2NoZW1hIHJlc29sdXRpb24gdG8gZ2V0IHRoZSBhcHByb3ByaWF0ZSBzY2hlbWFcbiAgICovXG4gIHByb3RlY3RlZCBhcGlTY2hlbWEoKTogQXBpU2NoZW1hIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlU2NoZW1hKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgcmVzb3VyY2UgYm9keSBmb3IgdGhlIEF6dXJlIEFQSSBjYWxsXG4gICAqIFRyYW5zZm9ybXMgdGhlIGlucHV0IHByb3BlcnRpZXMgaW50byB0aGUgSlNPTiBmb3JtYXQgZXhwZWN0ZWQgYnkgQXp1cmUgUkVTVCBBUElcbiAgICpcbiAgICogTm90ZTogUG9saWN5IGFzc2lnbm1lbnRzIGRvIG5vdCBoYXZlIGEgbG9jYXRpb24gcHJvcGVydHkgYXMgdGhleSBhcmVcbiAgICogc2NvcGVkIHJlc291cmNlcyAoc3Vic2NyaXB0aW9uLCByZXNvdXJjZSBncm91cCwgb3IgcmVzb3VyY2UgbGV2ZWwpLlxuICAgKiBUaGUgc2NvcGUgcHJvcGVydHkgaXMgTk9UIGluY2x1ZGVkIGluIHRoZSBib2R5IGFzIGl0J3MgcmVhZC1vbmx5IGFuZFxuICAgKiBhdXRvbWF0aWNhbGx5IGRlcml2ZWQgZnJvbSB0aGUgcGFyZW50SWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlUmVzb3VyY2VCb2R5KHByb3BzOiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IHR5cGVkUHJvcHMgPSBwcm9wcyBhcyBQb2xpY3lBc3NpZ25tZW50UHJvcHM7XG5cbiAgICBjb25zdCBib2R5OiBhbnkgPSB7XG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIHBvbGljeURlZmluaXRpb25JZDogdHlwZWRQcm9wcy5wb2xpY3lEZWZpbml0aW9uSWQsXG4gICAgICAgIC8vIE5vdGU6IHNjb3BlIGlzIE5PVCBpbmNsdWRlZCBoZXJlIC0gaXQncyByZWFkLW9ubHkgYW5kIGRlcml2ZWQgZnJvbSBwYXJlbnRJZFxuICAgICAgICBkaXNwbGF5TmFtZTogdHlwZWRQcm9wcy5kaXNwbGF5TmFtZSxcbiAgICAgICAgZGVzY3JpcHRpb246IHR5cGVkUHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICAgIGVuZm9yY2VtZW50TW9kZTogdHlwZWRQcm9wcy5lbmZvcmNlbWVudE1vZGUgfHwgXCJEZWZhdWx0XCIsXG4gICAgICAgIHBhcmFtZXRlcnM6IHR5cGVkUHJvcHMucGFyYW1ldGVycyxcbiAgICAgICAgbWV0YWRhdGE6IHR5cGVkUHJvcHMubWV0YWRhdGEsXG4gICAgICAgIG5vdFNjb3BlczogdHlwZWRQcm9wcy5ub3RTY29wZXMsXG4gICAgICAgIG5vbkNvbXBsaWFuY2VNZXNzYWdlczogdHlwZWRQcm9wcy5ub25Db21wbGlhbmNlTWVzc2FnZXMsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICAvLyBBZGQgaWRlbnRpdHkgaWYgcHJvdmlkZWRcbiAgICBpZiAodHlwZWRQcm9wcy5pZGVudGl0eSkge1xuICAgICAgYm9keS5pZGVudGl0eSA9IHR5cGVkUHJvcHMuaWRlbnRpdHk7XG4gICAgICAvLyBBenVyZSByZXF1aXJlcyBsb2NhdGlvbiB3aGVuIGlkZW50aXR5IGlzIHNwZWNpZmllZCBmb3IgbWFuYWdlZCBpZGVudGl0eSBwcm92aXNpb25pbmdcbiAgICAgIGJvZHkubG9jYXRpb24gPSB0eXBlZFByb3BzLmxvY2F0aW9uO1xuICAgIH1cblxuICAgIHJldHVybiBib2R5O1xuICB9XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBwYXJlbnQgSUQgcmVzb2x1dGlvbiB0byB1c2UgdGhlIHNjb3BlIGZyb20gcHJvcHNcbiAgICogUG9saWN5IGFzc2lnbm1lbnRzIGFyZSBzY29wZWQgcmVzb3VyY2VzIHdoZXJlIHRoZSBzY29wZSBJUyB0aGUgcGFyZW50XG4gICAqL1xuICBwcm90ZWN0ZWQgcmVzb2x2ZVBhcmVudElkKHByb3BzOiBhbnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IHR5cGVkUHJvcHMgPSBwcm9wcyBhcyBQb2xpY3lBc3NpZ25tZW50UHJvcHM7XG4gICAgcmV0dXJuIHR5cGVkUHJvcHMuc2NvcGU7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQVUJMSUMgTUVUSE9EUyBGT1IgUE9MSUNZIEFTU0lHTk1FTlQgT1BFUkFUSU9OU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGZ1bGwgcmVzb3VyY2UgaWRlbnRpZmllciBmb3IgdXNlIGluIG90aGVyIEF6dXJlIHJlc291cmNlc1xuICAgKiBBbGlhcyBmb3IgdGhlIGlkIHByb3BlcnR5XG4gICAqL1xuICBwdWJsaWMgZ2V0IHJlc291cmNlSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHBvbGljeSBkZWZpbml0aW9uIElEIHRoaXMgYXNzaWdubWVudCByZWZlcmVuY2VzXG4gICAqL1xuICBwdWJsaWMgZ2V0IHBvbGljeURlZmluaXRpb25JZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLnBvbGljeURlZmluaXRpb25JZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHNjb3BlIG9mIHRoaXMgcG9saWN5IGFzc2lnbm1lbnRcbiAgICovXG4gIHB1YmxpYyBnZXQgYXNzaWdubWVudFNjb3BlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuc2NvcGU7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBlbmZvcmNlbWVudCBtb2RlXG4gICAqL1xuICBwdWJsaWMgZ2V0IGVuZm9yY2VtZW50TW9kZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnByb3BzLmVuZm9yY2VtZW50TW9kZSB8fCBcIkRlZmF1bHRcIjtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFBSSVZBVEUgSEVMUEVSIE1FVEhPRFNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogQXBwbGllcyBpZ25vcmUgY2hhbmdlcyBsaWZlY3ljbGUgcnVsZXMgaWYgc3BlY2lmaWVkIGluIHByb3BzXG4gICAqL1xuICBwcml2YXRlIF9hcHBseUlnbm9yZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvcHMuaWdub3JlQ2hhbmdlcyAmJiB0aGlzLnByb3BzLmlnbm9yZUNoYW5nZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5hZGRPdmVycmlkZShcImxpZmVjeWNsZVwiLCBbXG4gICAgICAgIHtcbiAgICAgICAgICBpZ25vcmVfY2hhbmdlczogdGhpcy5wcm9wcy5pZ25vcmVDaGFuZ2VzLFxuICAgICAgICB9LFxuICAgICAgXSk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Integration test for Azure Policy Assignment
3
+ *
4
+ * This test demonstrates basic usage of the PolicyAssignment construct
5
+ * and validates deployment, idempotency, and cleanup.
6
+ *
7
+ * Note: This test requires a policy definition to exist before assigning it.
8
+ * It creates a simple policy definition first, then creates assignments
9
+ * that reference it.
10
+ *
11
+ * Run with: npm run integration:nostream
12
+ */
13
+ import "cdktf/lib/testing/adapters/jest";