@microsoft/terraform-cdk-constructs 1.2.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 (291) hide show
  1. package/.jsii +54846 -26661
  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 +342 -0
  117. package/lib/azure-policyassignment/lib/policy-assignment.js +228 -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 +260 -0
  129. package/lib/azure-policydefinition/lib/policy-definition.js +199 -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 +596 -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 +178 -26
  266. package/lib/core-azure/lib/azapi/azapi-resource.js +328 -90
  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
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ /**
3
+ * Integration test for Azure Policy Assignment
4
+ *
5
+ * This test demonstrates basic usage of the PolicyAssignment construct
6
+ * and validates deployment, idempotency, and cleanup.
7
+ *
8
+ * Note: This test requires a policy definition to exist before assigning it.
9
+ * It creates a simple policy definition first, then creates assignments
10
+ * that reference it.
11
+ *
12
+ * Run with: npm run integration:nostream
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const cdktf_1 = require("cdktf");
16
+ require("cdktf/lib/testing/adapters/jest");
17
+ const azure_policydefinition_1 = require("../../azure-policydefinition");
18
+ const data_azapi_client_config_1 = require("../../core-azure/lib/azapi/providers-azapi/data-azapi-client-config");
19
+ const provider_1 = require("../../core-azure/lib/azapi/providers-azapi/provider");
20
+ const testing_1 = require("../../testing");
21
+ const metadata_1 = require("../../testing/lib/metadata");
22
+ const policy_assignment_1 = require("../lib/policy-assignment");
23
+ // Generate unique test run metadata for this test suite
24
+ const testMetadata = new metadata_1.TestRunMetadata("policy-assignment-integration", {
25
+ maxAgeHours: 4,
26
+ });
27
+ /**
28
+ * Example stack demonstrating Policy Assignment usage
29
+ */
30
+ class PolicyAssignmentExampleStack extends testing_1.BaseTestStack {
31
+ constructor(scope, id) {
32
+ super(scope, id, {
33
+ testRunOptions: {
34
+ maxAgeHours: testMetadata.maxAgeHours,
35
+ autoCleanup: testMetadata.autoCleanup,
36
+ cleanupPolicy: testMetadata.cleanupPolicy,
37
+ },
38
+ });
39
+ // Configure AZAPI provider
40
+ new provider_1.AzapiProvider(this, "azapi", {});
41
+ // Get the current subscription ID from Azure
42
+ const clientConfig = new data_azapi_client_config_1.DataAzapiClientConfig(this, "client_config_default");
43
+ // Generate unique names
44
+ const policyDefinitionName = this.generateResourceName("Microsoft.Authorization/policyDefinitions", "testpolicy");
45
+ const basicAssignmentName = this.generateResourceName("Microsoft.Authorization/policyAssignments", "basic");
46
+ const advancedAssignmentName = this.generateResourceName("Microsoft.Authorization/policyAssignments", "advanced");
47
+ // First, create a policy definition to assign
48
+ const policyDefinition = new azure_policydefinition_1.PolicyDefinition(this, "test-policy", {
49
+ name: policyDefinitionName,
50
+ displayName: "Test Policy for Assignment",
51
+ description: "A simple test policy used to validate policy assignments",
52
+ policyType: "Custom",
53
+ mode: "Indexed",
54
+ policyRule: {
55
+ if: {
56
+ field: "[concat('tags[''', parameters('tagName'), ''']')]",
57
+ exists: "false",
58
+ },
59
+ then: {
60
+ effect: "audit",
61
+ },
62
+ },
63
+ parameters: {
64
+ tagName: {
65
+ type: "String",
66
+ metadata: {
67
+ displayName: "Tag Name",
68
+ description: "Name of the tag to check",
69
+ },
70
+ defaultValue: "TestTag",
71
+ },
72
+ },
73
+ metadata: {
74
+ category: "Testing",
75
+ version: "1.0.0",
76
+ },
77
+ tags: {
78
+ ...this.systemTags(),
79
+ purpose: "integration-test",
80
+ },
81
+ });
82
+ // Use the actual subscription ID from the client config data source
83
+ const subscriptionScope = `/subscriptions/${clientConfig.subscriptionId}`;
84
+ // Example 1: Basic policy assignment at subscription scope
85
+ // Add explicit dependsOn for proper destroy ordering
86
+ new policy_assignment_1.PolicyAssignment(this, "basic-assignment", {
87
+ name: basicAssignmentName,
88
+ displayName: "Basic Policy Assignment",
89
+ description: "A basic policy assignment for testing",
90
+ policyDefinitionId: policyDefinition.id,
91
+ scope: subscriptionScope,
92
+ enforcementMode: "Default",
93
+ tags: {
94
+ ...this.systemTags(),
95
+ example: "basic",
96
+ },
97
+ // IMPORTANT: Add explicit dependency on policy definition to ensure:
98
+ // 1. Policy definition is created before assignment (apply)
99
+ // 2. Policy assignment is destroyed before definition (destroy)
100
+ // Azure RBAC/Policy has eventual consistency - explicit deps help ordering
101
+ dependsOn: [policyDefinition.resource],
102
+ });
103
+ // Example 2: Advanced policy assignment with parameters, identity, and non-compliance messages
104
+ // Add explicit dependsOn for proper destroy ordering
105
+ new policy_assignment_1.PolicyAssignment(this, "advanced-assignment", {
106
+ name: advancedAssignmentName,
107
+ location: "eastus", // Required when identity is specified
108
+ displayName: "Advanced Policy Assignment",
109
+ description: "An advanced policy assignment with parameters and identity",
110
+ policyDefinitionId: policyDefinition.id,
111
+ scope: subscriptionScope,
112
+ enforcementMode: "DoNotEnforce", // Audit mode
113
+ parameters: {
114
+ tagName: {
115
+ value: "Environment",
116
+ },
117
+ },
118
+ metadata: {
119
+ assignedBy: "integration-test",
120
+ assignmentDate: new Date().toISOString(),
121
+ },
122
+ identity: {
123
+ type: "SystemAssigned",
124
+ },
125
+ nonComplianceMessages: [
126
+ {
127
+ message: "Resources must have the required tag. This is a test policy assignment.",
128
+ },
129
+ ],
130
+ tags: {
131
+ ...this.systemTags(),
132
+ example: "advanced",
133
+ },
134
+ // IMPORTANT: Add explicit dependency on policy definition to ensure:
135
+ // 1. Policy definition is created before assignment (apply)
136
+ // 2. Policy assignment is destroyed before definition (destroy)
137
+ dependsOn: [policyDefinition.resource],
138
+ });
139
+ }
140
+ }
141
+ describe("Policy Assignment Integration Test", () => {
142
+ it("should deploy, validate idempotency, and cleanup policy assignment resources", () => {
143
+ const app = cdktf_1.Testing.app();
144
+ const stack = new PolicyAssignmentExampleStack(app, "test-policy-assignment");
145
+ const synthesized = cdktf_1.Testing.fullSynth(stack);
146
+ // This will:
147
+ // 1. Run terraform apply to deploy resources (policy definition and assignments)
148
+ // 2. Run terraform plan to check idempotency (no changes expected)
149
+ // 3. Run terraform destroy to cleanup resources
150
+ (0, testing_1.TerraformApplyCheckAndDestroy)(synthesized, { verifyCleanup: true });
151
+ }, 600000); // 10 minute timeout for deployment and cleanup
152
+ });
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9saWN5LWFzc2lnbm1lbnQuaW50ZWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtcG9saWN5YXNzaWdubWVudC90ZXN0L3BvbGljeS1hc3NpZ25tZW50LmludGVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7QUFFSCxpQ0FBZ0M7QUFFaEMsMkNBQXlDO0FBQ3pDLHlFQUFnRTtBQUNoRSxrSEFBNEc7QUFDNUcsa0ZBQW9GO0FBQ3BGLDJDQUE2RTtBQUM3RSx5REFBNkQ7QUFDN0QsZ0VBQTREO0FBRTVELHdEQUF3RDtBQUN4RCxNQUFNLFlBQVksR0FBRyxJQUFJLDBCQUFlLENBQUMsK0JBQStCLEVBQUU7SUFDeEUsV0FBVyxFQUFFLENBQUM7Q0FDZixDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0sNEJBQTZCLFNBQVEsdUJBQWE7SUFDdEQsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixjQUFjLEVBQUU7Z0JBQ2QsV0FBVyxFQUFFLFlBQVksQ0FBQyxXQUFXO2dCQUNyQyxXQUFXLEVBQUUsWUFBWSxDQUFDLFdBQVc7Z0JBQ3JDLGFBQWEsRUFBRSxZQUFZLENBQUMsYUFBYTthQUMxQztTQUNGLENBQUMsQ0FBQztRQUVILDJCQUEyQjtRQUMzQixJQUFJLHdCQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVyQyw2Q0FBNkM7UUFDN0MsTUFBTSxZQUFZLEdBQUcsSUFBSSxnREFBcUIsQ0FDNUMsSUFBSSxFQUNKLHVCQUF1QixDQUN4QixDQUFDO1FBRUYsd0JBQXdCO1FBQ3hCLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUNwRCwyQ0FBMkMsRUFDM0MsWUFBWSxDQUNiLENBQUM7UUFDRixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxvQkFBb0Is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cUVBQXFFO1lBQ3JFLDREQUE0RDtZQUM1RCxnRUFBZ0U7WUFDaEUsU0FBUyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO1NBQ3ZDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQUVELFFBQVEsQ0FBQyxvQ0FBb0MsRUFBRSxHQUFHLEVBQUU7SUFDbEQsRUFBRSxDQUFDLDhFQUE4RSxFQUFFLEdBQUcsRUFBRTtRQUN0RixNQUFNLEdBQUcsR0FBRyxlQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDMUIsTUFBTSxLQUFLLEdBQUcsSUFBSSw0QkFBNEIsQ0FDNUMsR0FBRyxFQUNILHdCQUF3QixDQUN6QixDQUFDO1FBQ0YsTUFBTSxXQUFXLEdBQUcsZUFBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3QyxhQUFhO1FBQ2IsaUZBQWlGO1FBQ2pGLG1FQUFtRTtRQUNuRSxnREFBZ0Q7UUFDaEQsSUFBQSx1Q0FBNkIsRUFBQyxXQUFXLEVBQUUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQywrQ0FBK0M7QUFDN0QsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEludGVncmF0aW9uIHRlc3QgZm9yIEF6dXJlIFBvbGljeSBBc3NpZ25tZW50XG4gKlxuICogVGhpcyB0ZXN0IGRlbW9uc3RyYXRlcyBiYXNpYyB1c2FnZSBvZiB0aGUgUG9saWN5QXNzaWdubWVudCBjb25zdHJ1Y3RcbiAqIGFuZCB2YWxpZGF0ZXMgZGVwbG95bWVudCwgaWRlbXBvdGVuY3ksIGFuZCBjbGVhbnVwLlxuICpcbiAqIE5vdGU6IFRoaXMgdGVzdCByZXF1aXJlcyBhIHBvbGljeSBkZWZpbml0aW9uIHRvIGV4aXN0IGJlZm9yZSBhc3NpZ25pbmcgaXQuXG4gKiBJdCBjcmVhdGVzIGEgc2ltcGxlIHBvbGljeSBkZWZpbml0aW9uIGZpcnN0LCB0aGVuIGNyZWF0ZXMgYXNzaWdubWVudHNcbiAqIHRoYXQgcmVmZXJlbmNlIGl0LlxuICpcbiAqIFJ1biB3aXRoOiBucG0gcnVuIGludGVncmF0aW9uOm5vc3RyZWFtXG4gKi9cblxuaW1wb3J0IHsgVGVzdGluZyB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCBcImNka3RmL2xpYi90ZXN0aW5nL2FkYXB0ZXJzL2plc3RcIjtcbmltcG9ydCB7IFBvbGljeURlZmluaXRpb24gfSBmcm9tIFwiLi4vLi4vYXp1cmUtcG9saWN5ZGVmaW5pdGlvblwiO1xuaW1wb3J0IHsgRGF0YUF6YXBpQ2xpZW50Q29uZmlnIH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL2F6YXBpL3Byb3ZpZGVycy1hemFwaS9kYXRhLWF6YXBpLWNsaWVudC1jb25maWdcIjtcbmltcG9ydCB7IEF6YXBpUHJvdmlkZXIgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvYXphcGkvcHJvdmlkZXJzLWF6YXBpL3Byb3ZpZGVyXCI7XG5pbXBvcnQgeyBCYXNlVGVzdFN0YWNrLCBUZXJyYWZvcm1BcHBseUNoZWNrQW5kRGVzdHJveSB9IGZyb20gXCIuLi8uLi90ZXN0aW5nXCI7XG5pbXBvcnQgeyBUZXN0UnVuTWV0YWRhdGEgfSBmcm9tIFwiLi4vLi4vdGVzdGluZy9saWIvbWV0YWRhdGFcIjtcbmltcG9ydCB7IFBvbGljeUFzc2lnbm1lbnQgfSBmcm9tIFwiLi4vbGliL3BvbGljeS1hc3NpZ25tZW50XCI7XG5cbi8vIEdlbmVyYXRlIHVuaXF1ZSB0ZXN0IHJ1biBtZXRhZGF0YSBmb3IgdGhpcyB0ZXN0IHN1aXRlXG5jb25zdCB0ZXN0TWV0YWRhdGEgPSBuZXcgVGVzdFJ1bk1ldGFkYXRhKFwicG9saWN5LWFzc2lnbm1lbnQtaW50ZWdyYXRpb25cIiwge1xuICBtYXhBZ2VIb3VyczogNCxcbn0pO1xuXG4vKipcbiAqIEV4YW1wbGUgc3RhY2sgZGVtb25zdHJhdGluZyBQb2xpY3kgQXNzaWdubWVudCB1c2FnZVxuICovXG5jbGFzcyBQb2xpY3lBc3NpZ25tZW50RXhhbXBsZVN0YWNrIGV4dGVuZHMgQmFzZVRlc3RTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHRlc3RSdW5PcHRpb25zOiB7XG4gICAgICAgIG1heEFnZUhvdXJzOiB0ZXN0TWV0YWRhdGEubWF4QWdlSG91cnMsXG4gICAgICAgIGF1dG9DbGVhbnVwOiB0ZXN0TWV0YWRhdGEuYXV0b0NsZWFudXAsXG4gICAgICAgIGNsZWFudXBQb2xpY3k6IHRlc3RNZXRhZGF0YS5jbGVhbnVwUG9saWN5LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIENvbmZpZ3VyZSBBWkFQSSBwcm92aWRlclxuICAgIG5ldyBBemFwaVByb3ZpZGVyKHRoaXMsIFwiYXphcGlcIiwge30pO1xuXG4gICAgLy8gR2V0IHRoZSBjdXJyZW50IHN1YnNjcmlwdGlvbiBJRCBmcm9tIEF6dXJlXG4gICAgY29uc3QgY2xpZW50Q29uZmlnID0gbmV3IERhdGFBemFwaUNsaWVudENvbmZpZyhcbiAgICAgIHRoaXMsXG4gICAgICBcImNsaWVudF9jb25maWdfZGVmYXVsdFwiLFxuICAgICk7XG5cbiAgICAvLyBHZW5lcmF0ZSB1bmlxdWUgbmFtZXNcbiAgICBjb25zdCBwb2xpY3lEZWZpbml0aW9uTmFtZSA9IHRoaXMuZ2VuZXJhdGVSZXNvdXJjZU5hbWUoXG4gICAgICBcIk1pY3Jvc29mdC5BdXRob3JpemF0aW9uL3BvbGljeURlZmluaXRpb25zXCIsXG4gICAgICBcInRlc3Rwb2xpY3lcIixcbiAgICApO1xuICAgIGNvbnN0IGJhc2ljQXNzaWdubWVudE5hbWUgPSB0aGlzLmdlbmVyYXRlUmVzb3VyY2VOYW1lKFxuICAgICAgXCJNaWNyb3NvZnQuQXV0aG9yaXphdGlvbi9wb2xpY3lBc3NpZ25tZW50c1wiLFxuICAgICAgXCJiYXNpY1wiLFxuICAgICk7XG4gICAgY29uc3QgYWR2YW5jZWRBc3NpZ25tZW50TmFtZSA9IHRoaXMuZ2VuZXJhdGVSZXNvdXJjZU5hbWUoXG4gICAgICBcIk1pY3Jvc29mdC5BdXRob3JpemF0aW9uL3BvbGljeUFzc2lnbm1lbnRzXCIsXG4gICAgICBcImFkdmFuY2VkXCIsXG4gICAgKTtcblxuICAgIC8vIEZpcnN0LCBjcmVhdGUgYSBwb2xpY3kgZGVmaW5pdGlvbiB0byBhc3NpZ25cbiAgICBjb25zdCBwb2xpY3lEZWZpbml0aW9uID0gbmV3IFBvbGljeURlZmluaXRpb24odGhpcywgXCJ0ZXN0LXBvbGljeVwiLCB7XG4gICAgICBuYW1lOiBwb2xpY3lEZWZpbml0aW9uTmFtZSxcbiAgICAgIGRpc3BsYXlOYW1lOiBcIlRlc3QgUG9saWN5IGZvciBBc3NpZ25tZW50XCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJBIHNpbXBsZSB0ZXN0IHBvbGljeSB1c2VkIHRvIHZhbGlkYXRlIHBvbGljeSBhc3NpZ25tZW50c1wiLFxuICAgICAgcG9saWN5VHlwZTogXCJDdXN0b21cIixcbiAgICAgIG1vZGU6IFwiSW5kZXhlZFwiLFxuICAgICAgcG9saWN5UnVsZToge1xuICAgICAgICBpZjoge1xuICAgICAgICAgIGZpZWxkOiBcIltjb25jYXQoJ3RhZ3NbJycnLCBwYXJhbWV0ZXJzKCd0YWdOYW1lJyksICcnJ10nKV1cIixcbiAgICAgICAgICBleGlzdHM6IFwiZmFsc2VcIixcbiAgICAgICAgfSxcbiAgICAgICAgdGhlbjoge1xuICAgICAgICAgIGVmZmVjdDogXCJhdWRpdFwiLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgdGFnTmFtZToge1xuICAgICAgICAgIHR5cGU6IFwiU3RyaW5nXCIsXG4gICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiBcIlRhZyBOYW1lXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJOYW1lIG9mIHRoZSB0YWcgdG8gY2hlY2tcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGRlZmF1bHRWYWx1ZTogXCJUZXN0VGFnXCIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgY2F0ZWdvcnk6IFwiVGVzdGluZ1wiLFxuICAgICAgICB2ZXJzaW9uOiBcIjEuMC4wXCIsXG4gICAgICB9LFxuICAgICAgdGFnczoge1xuICAgICAgICAuLi50aGlzLnN5c3RlbVRhZ3MoKSxcbiAgICAgICAgcHVycG9zZTogXCJpbnRlZ3JhdGlvbi10ZXN0XCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gVXNlIHRoZSBhY3R1YWwgc3Vic2NyaXB0aW9uIElEIGZyb20gdGhlIGNsaWVudCBjb25maWcgZGF0YSBzb3VyY2VcbiAgICBjb25zdCBzdWJzY3JpcHRpb25TY29wZSA9IGAvc3Vic2NyaXB0aW9ucy8ke2NsaWVudENvbmZpZy5zdWJzY3JpcHRpb25JZH1gO1xuXG4gICAgLy8gRXhhbXBsZSAxOiBCYXNpYyBwb2xpY3kgYXNzaWdubWVudCBhdCBzdWJzY3JpcHRpb24gc2NvcGVcbiAgICAvLyBBZGQgZXhwbGljaXQgZGVwZW5kc09uIGZvciBwcm9wZXIgZGVzdHJveSBvcmRlcmluZ1xuICAgIG5ldyBQb2xpY3lBc3NpZ25tZW50KHRoaXMsIFwiYmFzaWMtYXNzaWdubWVudFwiLCB7XG4gICAgICBuYW1lOiBiYXNpY0Fzc2lnbm1lbnROYW1lLFxuICAgICAgZGlzcGxheU5hbWU6IFwiQmFzaWMgUG9saWN5IEFzc2lnbm1lbnRcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkEgYmFzaWMgcG9saWN5IGFzc2lnbm1lbnQgZm9yIHRlc3RpbmdcIixcbiAgICAgIHBvbGljeURlZmluaXRpb25JZDogcG9saWN5RGVmaW5pdGlvbi5pZCxcbiAgICAgIHNjb3BlOiBzdWJzY3JpcHRpb25TY29wZSxcbiAgICAgIGVuZm9yY2VtZW50TW9kZTogXCJEZWZhdWx0XCIsXG4gICAgICB0YWdzOiB7XG4gICAgICAgIC4uLnRoaXMuc3lzdGVtVGFncygpLFxuICAgICAgICBleGFtcGxlOiBcImJhc2ljXCIsXG4gICAgICB9LFxuICAgICAgLy8gSU1QT1JUQU5UOiBBZGQgZXhwbGljaXQgZGVwZW5kZW5jeSBvbiBwb2xpY3kgZGVmaW5pdGlvbiB0byBlbnN1cmU6XG4gICAgICAvLyAxLiBQb2xpY3kgZGVmaW5pdGlvbiBpcyBjcmVhdGVkIGJlZm9yZSBhc3NpZ25tZW50IChhcHBseSlcbiAgICAgIC8vIDIuIFBvbGljeSBhc3NpZ25tZW50IGlzIGRlc3Ryb3llZCBiZWZvcmUgZGVmaW5pdGlvbiAoZGVzdHJveSlcbiAgICAgIC8vIEF6dXJlIFJCQUMvUG9saWN5IGhhcyBldmVudHVhbCBjb25zaXN0ZW5jeSAtIGV4cGxpY2l0IGRlcHMgaGVscCBvcmRlcmluZ1xuICAgICAgZGVwZW5kc09uOiBbcG9saWN5RGVmaW5pdGlvbi5yZXNvdXJjZV0sXG4gICAgfSk7XG5cbiAgICAvLyBFeGFtcGxlIDI6IEFkdmFuY2VkIHBvbGljeSBhc3NpZ25tZW50IHdpdGggcGFyYW1ldGVycywgaWRlbnRpdHksIGFuZCBub24tY29tcGxpYW5jZSBtZXNzYWdlc1xuICAgIC8vIEFkZCBleHBsaWNpdCBkZXBlbmRzT24gZm9yIHByb3BlciBkZXN0cm95IG9yZGVyaW5nXG4gICAgbmV3IFBvbGljeUFzc2lnbm1lbnQodGhpcywgXCJhZHZhbmNlZC1hc3NpZ25tZW50XCIsIHtcbiAgICAgIG5hbWU6IGFkdmFuY2VkQXNzaWdubWVudE5hbWUsXG4gICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIiwgLy8gUmVxdWlyZWQgd2hlbiBpZGVudGl0eSBpcyBzcGVjaWZpZWRcbiAgICAgIGRpc3BsYXlOYW1lOiBcIkFkdmFuY2VkIFBvbGljeSBBc3NpZ25tZW50XCIsXG4gICAgICBkZXNjcmlwdGlvbjogXCJBbiBhZHZhbmNlZCBwb2xpY3kgYXNzaWdubWVudCB3aXRoIHBhcmFtZXRlcnMgYW5kIGlkZW50aXR5XCIsXG4gICAgICBwb2xpY3lEZWZpbml0aW9uSWQ6IHBvbGljeURlZmluaXRpb24uaWQsXG4gICAgICBzY29wZTogc3Vic2NyaXB0aW9uU2NvcGUsXG4gICAgICBlbmZvcmNlbWVudE1vZGU6IFwiRG9Ob3RFbmZvcmNlXCIsIC8vIEF1ZGl0IG1vZGVcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgdGFnTmFtZToge1xuICAgICAgICAgIHZhbHVlOiBcIkVudmlyb25tZW50XCIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgYXNzaWduZWRCeTogXCJpbnRlZ3JhdGlvbi10ZXN0XCIsXG4gICAgICAgIGFzc2lnbm1lbnREYXRlOiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gICAgICB9LFxuICAgICAgaWRlbnRpdHk6IHtcbiAgICAgICAgdHlwZTogXCJTeXN0ZW1Bc3NpZ25lZFwiLFxuICAgICAgfSxcbiAgICAgIG5vbkNvbXBsaWFuY2VNZXNzYWdlczogW1xuICAgICAgICB7XG4gICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgIFwiUmVzb3VyY2VzIG11c3QgaGF2ZSB0aGUgcmVxdWlyZWQgdGFnLiBUaGlzIGlzIGEgdGVzdCBwb2xpY3kgYXNzaWdubWVudC5cIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICB0YWdzOiB7XG4gICAgICAgIC4uLnRoaXMuc3lzdGVtVGFncygpLFxuICAgICAgICBleGFtcGxlOiBcImFkdmFuY2VkXCIsXG4gICAgICB9LFxuICAgICAgLy8gSU1QT1JUQU5UOiBBZGQgZXhwbGljaXQgZGVwZW5kZW5jeSBvbiBwb2xpY3kgZGVmaW5pdGlvbiB0byBlbnN1cmU6XG4gICAgICAvLyAxLiBQb2xpY3kgZGVmaW5pdGlvbiBpcyBjcmVhdGVkIGJlZm9yZSBhc3NpZ25tZW50IChhcHBseSlcbiAgICAgIC8vIDIuIFBvbGljeSBhc3NpZ25tZW50IGlzIGRlc3Ryb3llZCBiZWZvcmUgZGVmaW5pdGlvbiAoZGVzdHJveSlcbiAgICAgIGRlcGVuZHNPbjogW3BvbGljeURlZmluaXRpb24ucmVzb3VyY2VdLFxuICAgIH0pO1xuICB9XG59XG5cbmRlc2NyaWJlKFwiUG9saWN5IEFzc2lnbm1lbnQgSW50ZWdyYXRpb24gVGVzdFwiLCAoKSA9PiB7XG4gIGl0KFwic2hvdWxkIGRlcGxveSwgdmFsaWRhdGUgaWRlbXBvdGVuY3ksIGFuZCBjbGVhbnVwIHBvbGljeSBhc3NpZ25tZW50IHJlc291cmNlc1wiLCAoKSA9PiB7XG4gICAgY29uc3QgYXBwID0gVGVzdGluZy5hcHAoKTtcbiAgICBjb25zdCBzdGFjayA9IG5ldyBQb2xpY3lBc3NpZ25tZW50RXhhbXBsZVN0YWNrKFxuICAgICAgYXBwLFxuICAgICAgXCJ0ZXN0LXBvbGljeS1hc3NpZ25tZW50XCIsXG4gICAgKTtcbiAgICBjb25zdCBzeW50aGVzaXplZCA9IFRlc3RpbmcuZnVsbFN5bnRoKHN0YWNrKTtcblxuICAgIC8vIFRoaXMgd2lsbDpcbiAgICAvLyAxLiBSdW4gdGVycmFmb3JtIGFwcGx5IHRvIGRlcGxveSByZXNvdXJjZXMgKHBvbGljeSBkZWZpbml0aW9uIGFuZCBhc3NpZ25tZW50cylcbiAgICAvLyAyLiBSdW4gdGVycmFmb3JtIHBsYW4gdG8gY2hlY2sgaWRlbXBvdGVuY3kgKG5vIGNoYW5nZXMgZXhwZWN0ZWQpXG4gICAgLy8gMy4gUnVuIHRlcnJhZm9ybSBkZXN0cm95IHRvIGNsZWFudXAgcmVzb3VyY2VzXG4gICAgVGVycmFmb3JtQXBwbHlDaGVja0FuZERlc3Ryb3koc3ludGhlc2l6ZWQsIHsgdmVyaWZ5Q2xlYW51cDogdHJ1ZSB9KTtcbiAgfSwgNjAwMDAwKTsgLy8gMTAgbWludXRlIHRpbWVvdXQgZm9yIGRlcGxveW1lbnQgYW5kIGNsZWFudXBcbn0pO1xuIl19
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Comprehensive tests for the unified PolicyAssignment implementation
3
+ *
4
+ * This test suite validates the unified PolicyAssignment class that uses
5
+ * the VersionedAzapiResource framework. Tests cover automatic version resolution,
6
+ * explicit version pinning, schema validation, property transformation, and
7
+ * policy assignment-specific functionality.
8
+ */
9
+ export {};