@microsoft/terraform-cdk-constructs 1.2.0 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. package/.jsii +54630 -26185
  2. package/API.md +72091 -23784
  3. package/lib/azure-actiongroup/index.d.ts +0 -10
  4. package/lib/azure-actiongroup/index.js +1 -11
  5. package/lib/azure-actiongroup/lib/action-group.d.ts +0 -10
  6. package/lib/azure-actiongroup/lib/action-group.js +6 -32
  7. package/lib/azure-actiongroup/lib/index.d.ts +1 -4
  8. package/lib/azure-actiongroup/lib/index.js +2 -5
  9. package/lib/azure-activitylogalert/index.d.ts +0 -10
  10. package/lib/azure-activitylogalert/index.js +1 -11
  11. package/lib/azure-activitylogalert/lib/activity-log-alert.d.ts +0 -10
  12. package/lib/azure-activitylogalert/lib/activity-log-alert.js +6 -32
  13. package/lib/azure-activitylogalert/lib/index.d.ts +1 -4
  14. package/lib/azure-activitylogalert/lib/index.js +2 -5
  15. package/lib/azure-aks/index.d.ts +0 -8
  16. package/lib/azure-aks/index.js +1 -11
  17. package/lib/azure-aks/lib/aks-cluster.d.ts +4 -13
  18. package/lib/azure-aks/lib/aks-cluster.js +13 -36
  19. package/lib/azure-aks/lib/index.d.ts +1 -10
  20. package/lib/azure-aks/lib/index.js +2 -21
  21. package/lib/azure-diagnosticsettings/index.d.ts +0 -6
  22. package/lib/azure-diagnosticsettings/index.js +1 -7
  23. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.d.ts +0 -10
  24. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +6 -32
  25. package/lib/azure-diagnosticsettings/lib/index.d.ts +1 -7
  26. package/lib/azure-diagnosticsettings/lib/index.js +2 -8
  27. package/lib/azure-dnsforwardingruleset/index.d.ts +1 -0
  28. package/lib/azure-dnsforwardingruleset/index.js +18 -0
  29. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset-schemas.d.ts +24 -0
  30. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset-schemas.js +206 -0
  31. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.d.ts +174 -0
  32. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +214 -0
  33. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule-schemas.d.ts +24 -0
  34. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule-schemas.js +242 -0
  35. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.d.ts +193 -0
  36. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +193 -0
  37. package/lib/azure-dnsforwardingruleset/lib/index.d.ts +6 -0
  38. package/lib/azure-dnsforwardingruleset/lib/index.js +23 -0
  39. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link-schemas.d.ts +24 -0
  40. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link-schemas.js +199 -0
  41. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.d.ts +160 -0
  42. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +178 -0
  43. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.d.ts +9 -0
  44. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.js +133 -0
  45. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.spec.d.ts +9 -0
  46. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.spec.js +350 -0
  47. package/lib/azure-dnsforwardingruleset/test/forwarding-rule.spec.d.ts +9 -0
  48. package/lib/azure-dnsforwardingruleset/test/forwarding-rule.spec.js +397 -0
  49. package/lib/azure-dnsforwardingruleset/test/virtual-network-link.spec.d.ts +9 -0
  50. package/lib/azure-dnsforwardingruleset/test/virtual-network-link.spec.js +285 -0
  51. package/lib/azure-dnsresolver/index.d.ts +1 -0
  52. package/lib/azure-dnsresolver/index.js +18 -0
  53. package/lib/azure-dnsresolver/lib/dns-resolver-schemas.d.ts +24 -0
  54. package/lib/azure-dnsresolver/lib/dns-resolver-schemas.js +218 -0
  55. package/lib/azure-dnsresolver/lib/dns-resolver.d.ts +170 -0
  56. package/lib/azure-dnsresolver/lib/dns-resolver.js +236 -0
  57. package/lib/azure-dnsresolver/lib/inbound-endpoint-schemas.d.ts +24 -0
  58. package/lib/azure-dnsresolver/lib/inbound-endpoint-schemas.js +261 -0
  59. package/lib/azure-dnsresolver/lib/inbound-endpoint.d.ts +189 -0
  60. package/lib/azure-dnsresolver/lib/inbound-endpoint.js +243 -0
  61. package/lib/azure-dnsresolver/lib/index.d.ts +6 -0
  62. package/lib/azure-dnsresolver/lib/index.js +23 -0
  63. package/lib/azure-dnsresolver/lib/outbound-endpoint-schemas.d.ts +24 -0
  64. package/lib/azure-dnsresolver/lib/outbound-endpoint-schemas.js +231 -0
  65. package/lib/azure-dnsresolver/lib/outbound-endpoint.d.ts +175 -0
  66. package/lib/azure-dnsresolver/lib/outbound-endpoint.js +234 -0
  67. package/lib/azure-dnsresolver/test/dns-resolver.integ.d.ts +14 -0
  68. package/lib/azure-dnsresolver/test/dns-resolver.integ.js +117 -0
  69. package/lib/azure-dnsresolver/test/dns-resolver.spec.d.ts +9 -0
  70. package/lib/azure-dnsresolver/test/dns-resolver.spec.js +353 -0
  71. package/lib/azure-dnsresolver/test/inbound-endpoint.integ.d.ts +9 -0
  72. package/lib/azure-dnsresolver/test/inbound-endpoint.integ.js +151 -0
  73. package/lib/azure-dnsresolver/test/inbound-endpoint.spec.d.ts +9 -0
  74. package/lib/azure-dnsresolver/test/inbound-endpoint.spec.js +441 -0
  75. package/lib/azure-dnsresolver/test/outbound-endpoint.integ.d.ts +9 -0
  76. package/lib/azure-dnsresolver/test/outbound-endpoint.integ.js +149 -0
  77. package/lib/azure-dnsresolver/test/outbound-endpoint.spec.d.ts +9 -0
  78. package/lib/azure-dnsresolver/test/outbound-endpoint.spec.js +301 -0
  79. package/lib/azure-dnszone/index.d.ts +1 -0
  80. package/lib/azure-dnszone/index.js +18 -0
  81. package/lib/azure-dnszone/lib/dns-zone-schemas.d.ts +24 -0
  82. package/lib/azure-dnszone/lib/dns-zone-schemas.js +191 -0
  83. package/lib/azure-dnszone/lib/dns-zone.d.ts +182 -0
  84. package/lib/azure-dnszone/lib/dns-zone.js +228 -0
  85. package/lib/azure-dnszone/lib/index.d.ts +2 -0
  86. package/lib/azure-dnszone/lib/index.js +19 -0
  87. package/lib/azure-dnszone/test/dns-zone.integ.d.ts +9 -0
  88. package/lib/azure-dnszone/test/dns-zone.integ.js +85 -0
  89. package/lib/azure-dnszone/test/dns-zone.spec.d.ts +9 -0
  90. package/lib/azure-dnszone/test/dns-zone.spec.js +285 -0
  91. package/lib/azure-metricalert/index.d.ts +0 -10
  92. package/lib/azure-metricalert/index.js +1 -11
  93. package/lib/azure-metricalert/lib/index.d.ts +1 -4
  94. package/lib/azure-metricalert/lib/index.js +2 -5
  95. package/lib/azure-metricalert/lib/metric-alert.d.ts +0 -10
  96. package/lib/azure-metricalert/lib/metric-alert.js +6 -32
  97. package/lib/azure-networkinterface/index.d.ts +0 -3
  98. package/lib/azure-networkinterface/index.js +1 -4
  99. package/lib/azure-networkinterface/lib/index.d.ts +1 -5
  100. package/lib/azure-networkinterface/lib/index.js +2 -5
  101. package/lib/azure-networkinterface/lib/network-interface.d.ts +4 -9
  102. package/lib/azure-networkinterface/lib/network-interface.js +14 -29
  103. package/lib/azure-networkinterface/test/network-interface.integ.js +20 -6
  104. package/lib/azure-networksecuritygroup/index.d.ts +0 -5
  105. package/lib/azure-networksecuritygroup/index.js +1 -6
  106. package/lib/azure-networksecuritygroup/lib/index.d.ts +2 -5
  107. package/lib/azure-networksecuritygroup/lib/index.js +17 -14
  108. package/lib/azure-networksecuritygroup/lib/network-security-group.d.ts +4 -13
  109. package/lib/azure-networksecuritygroup/lib/network-security-group.js +14 -36
  110. package/lib/azure-policyassignment/index.d.ts +1 -0
  111. package/lib/azure-policyassignment/index.js +18 -0
  112. package/lib/azure-policyassignment/lib/index.d.ts +2 -0
  113. package/lib/azure-policyassignment/lib/index.js +19 -0
  114. package/lib/azure-policyassignment/lib/policy-assignment-schemas.d.ts +25 -0
  115. package/lib/azure-policyassignment/lib/policy-assignment-schemas.js +260 -0
  116. package/lib/azure-policyassignment/lib/policy-assignment.d.ts +349 -0
  117. package/lib/azure-policyassignment/lib/policy-assignment.js +237 -0
  118. package/lib/azure-policyassignment/test/policy-assignment.integ.d.ts +13 -0
  119. package/lib/azure-policyassignment/test/policy-assignment.integ.js +153 -0
  120. package/lib/azure-policyassignment/test/policy-assignment.spec.d.ts +9 -0
  121. package/lib/azure-policyassignment/test/policy-assignment.spec.js +651 -0
  122. package/lib/azure-policydefinition/index.d.ts +1 -0
  123. package/lib/azure-policydefinition/index.js +18 -0
  124. package/lib/azure-policydefinition/lib/index.d.ts +2 -0
  125. package/lib/azure-policydefinition/lib/index.js +19 -0
  126. package/lib/azure-policydefinition/lib/policy-definition-schemas.d.ts +25 -0
  127. package/lib/azure-policydefinition/lib/policy-definition-schemas.js +210 -0
  128. package/lib/azure-policydefinition/lib/policy-definition.d.ts +281 -0
  129. package/lib/azure-policydefinition/lib/policy-definition.js +236 -0
  130. package/lib/azure-policydefinition/test/policy-definition.integ.d.ts +9 -0
  131. package/lib/azure-policydefinition/test/policy-definition.integ.js +137 -0
  132. package/lib/azure-policydefinition/test/policy-definition.spec.d.ts +9 -0
  133. package/lib/azure-policydefinition/test/policy-definition.spec.js +806 -0
  134. package/lib/azure-privatednszone/index.d.ts +1 -0
  135. package/lib/azure-privatednszone/index.js +18 -0
  136. package/lib/azure-privatednszone/lib/index.d.ts +2 -0
  137. package/lib/azure-privatednszone/lib/index.js +19 -0
  138. package/lib/azure-privatednszone/lib/private-dns-zone-schemas.d.ts +24 -0
  139. package/lib/azure-privatednszone/lib/private-dns-zone-schemas.js +254 -0
  140. package/lib/azure-privatednszone/lib/private-dns-zone.d.ts +178 -0
  141. package/lib/azure-privatednszone/lib/private-dns-zone.js +272 -0
  142. package/lib/azure-privatednszone/test/private-dns-zone.integ.d.ts +9 -0
  143. package/lib/azure-privatednszone/test/private-dns-zone.integ.js +84 -0
  144. package/lib/azure-privatednszone/test/private-dns-zone.spec.d.ts +9 -0
  145. package/lib/azure-privatednszone/test/private-dns-zone.spec.js +341 -0
  146. package/lib/azure-privatednszonelink/index.d.ts +1 -0
  147. package/lib/azure-privatednszonelink/index.js +18 -0
  148. package/lib/azure-privatednszonelink/lib/index.d.ts +2 -0
  149. package/lib/azure-privatednszonelink/lib/index.js +19 -0
  150. package/lib/azure-privatednszonelink/lib/private-dns-zone-link-schemas.d.ts +24 -0
  151. package/lib/azure-privatednszonelink/lib/private-dns-zone-link-schemas.js +262 -0
  152. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.d.ts +202 -0
  153. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +250 -0
  154. package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.d.ts +9 -0
  155. package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.js +110 -0
  156. package/lib/azure-privatednszonelink/test/private-dns-zone-link.spec.d.ts +9 -0
  157. package/lib/azure-privatednszonelink/test/private-dns-zone-link.spec.js +465 -0
  158. package/lib/azure-publicipaddress/index.d.ts +0 -5
  159. package/lib/azure-publicipaddress/index.js +1 -6
  160. package/lib/azure-publicipaddress/lib/index.d.ts +2 -9
  161. package/lib/azure-publicipaddress/lib/index.js +17 -17
  162. package/lib/azure-publicipaddress/lib/public-ip-address.d.ts +4 -13
  163. package/lib/azure-publicipaddress/lib/public-ip-address.js +14 -36
  164. package/lib/azure-resourcegroup/index.d.ts +0 -37
  165. package/lib/azure-resourcegroup/index.js +1 -39
  166. package/lib/azure-resourcegroup/lib/index.d.ts +1 -44
  167. package/lib/azure-resourcegroup/lib/index.js +2 -43
  168. package/lib/azure-resourcegroup/lib/resource-group.d.ts +9 -23
  169. package/lib/azure-resourcegroup/lib/resource-group.js +23 -56
  170. package/lib/azure-resourcegroup/test/resource-group.spec.js +13 -19
  171. package/lib/azure-roleassignment/index.d.ts +1 -0
  172. package/lib/azure-roleassignment/index.js +18 -0
  173. package/lib/azure-roleassignment/lib/index.d.ts +2 -0
  174. package/lib/azure-roleassignment/lib/index.js +19 -0
  175. package/lib/azure-roleassignment/lib/role-assignment-schemas.d.ts +25 -0
  176. package/lib/azure-roleassignment/lib/role-assignment-schemas.js +238 -0
  177. package/lib/azure-roleassignment/lib/role-assignment.d.ts +294 -0
  178. package/lib/azure-roleassignment/lib/role-assignment.js +257 -0
  179. package/lib/azure-roleassignment/test/role-assignment.integ.d.ts +12 -0
  180. package/lib/azure-roleassignment/test/role-assignment.integ.js +101 -0
  181. package/lib/azure-roleassignment/test/role-assignment.spec.d.ts +9 -0
  182. package/lib/azure-roleassignment/test/role-assignment.spec.js +633 -0
  183. package/lib/azure-roledefinition/index.d.ts +1 -0
  184. package/lib/azure-roledefinition/index.js +18 -0
  185. package/lib/azure-roledefinition/lib/index.d.ts +2 -0
  186. package/lib/azure-roledefinition/lib/index.js +19 -0
  187. package/lib/azure-roledefinition/lib/role-definition-schemas.d.ts +25 -0
  188. package/lib/azure-roledefinition/lib/role-definition-schemas.js +195 -0
  189. package/lib/azure-roledefinition/lib/role-definition.d.ts +236 -0
  190. package/lib/azure-roledefinition/lib/role-definition.js +192 -0
  191. package/lib/azure-roledefinition/test/role-definition.integ.d.ts +12 -0
  192. package/lib/azure-roledefinition/test/role-definition.integ.js +142 -0
  193. package/lib/azure-roledefinition/test/role-definition.spec.d.ts +9 -0
  194. package/lib/azure-roledefinition/test/role-definition.spec.js +946 -0
  195. package/lib/azure-storageaccount/index.d.ts +0 -19
  196. package/lib/azure-storageaccount/index.js +1 -20
  197. package/lib/azure-storageaccount/lib/index.d.ts +1 -7
  198. package/lib/azure-storageaccount/lib/index.js +2 -8
  199. package/lib/azure-storageaccount/lib/storage-account.d.ts +4 -9
  200. package/lib/azure-storageaccount/lib/storage-account.js +15 -29
  201. package/lib/azure-subnet/index.d.ts +0 -3
  202. package/lib/azure-subnet/index.js +1 -4
  203. package/lib/azure-subnet/lib/index.d.ts +1 -4
  204. package/lib/azure-subnet/lib/index.js +2 -5
  205. package/lib/azure-subnet/lib/subnet.d.ts +3 -14
  206. package/lib/azure-subnet/lib/subnet.js +28 -47
  207. package/lib/azure-subnet/test/subnet.integ.js +19 -7
  208. package/lib/azure-subnet/test/subnet.spec.js +1 -2
  209. package/lib/azure-virtualmachine/index.d.ts +0 -6
  210. package/lib/azure-virtualmachine/index.js +1 -7
  211. package/lib/azure-virtualmachine/lib/index.d.ts +1 -10
  212. package/lib/azure-virtualmachine/lib/index.js +2 -21
  213. package/lib/azure-virtualmachine/lib/virtual-machine.d.ts +4 -13
  214. package/lib/azure-virtualmachine/lib/virtual-machine.js +15 -36
  215. package/lib/azure-virtualnetwork/index.d.ts +0 -9
  216. package/lib/azure-virtualnetwork/index.js +1 -11
  217. package/lib/azure-virtualnetwork/lib/index.d.ts +2 -9
  218. package/lib/azure-virtualnetwork/lib/index.js +17 -20
  219. package/lib/azure-virtualnetwork/lib/virtual-network.d.ts +4 -13
  220. package/lib/azure-virtualnetwork/lib/virtual-network.js +15 -36
  221. package/lib/azure-virtualnetworkmanager/index.d.ts +1 -0
  222. package/lib/azure-virtualnetworkmanager/index.js +18 -0
  223. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration-schemas.d.ts +48 -0
  224. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration-schemas.js +265 -0
  225. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.d.ts +185 -0
  226. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +206 -0
  227. package/lib/azure-virtualnetworkmanager/lib/index.d.ts +14 -0
  228. package/lib/azure-virtualnetworkmanager/lib/index.js +31 -0
  229. package/lib/azure-virtualnetworkmanager/lib/network-group-schemas.d.ts +32 -0
  230. package/lib/azure-virtualnetworkmanager/lib/network-group-schemas.js +189 -0
  231. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member-schemas.d.ts +32 -0
  232. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member-schemas.js +201 -0
  233. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.d.ts +135 -0
  234. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +163 -0
  235. package/lib/azure-virtualnetworkmanager/lib/network-group.d.ts +139 -0
  236. package/lib/azure-virtualnetworkmanager/lib/network-group.js +158 -0
  237. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration-schemas.d.ts +32 -0
  238. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration-schemas.js +182 -0
  239. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.d.ts +144 -0
  240. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +164 -0
  241. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection-schemas.d.ts +38 -0
  242. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection-schemas.js +206 -0
  243. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.d.ts +142 -0
  244. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +162 -0
  245. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-schemas.d.ts +39 -0
  246. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-schemas.js +359 -0
  247. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.d.ts +221 -0
  248. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +204 -0
  249. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager-schemas.d.ts +32 -0
  250. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager-schemas.js +236 -0
  251. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.d.ts +337 -0
  252. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +283 -0
  253. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.d.ts +25 -0
  254. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.js +402 -0
  255. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.spec.d.ts +9 -0
  256. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.spec.js +1652 -0
  257. package/lib/azure-vmss/index.d.ts +0 -5
  258. package/lib/azure-vmss/index.js +1 -6
  259. package/lib/azure-vmss/lib/index.d.ts +0 -7
  260. package/lib/azure-vmss/lib/index.js +1 -21
  261. package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +5 -13
  262. package/lib/azure-vmss/lib/virtual-machine-scale-set.js +29 -53
  263. package/lib/core-azure/lib/azapi/azapi-resource-tags.spec.d.ts +10 -0
  264. package/lib/core-azure/lib/azapi/azapi-resource-tags.spec.js +218 -0
  265. package/lib/core-azure/lib/azapi/azapi-resource.d.ts +206 -26
  266. package/lib/core-azure/lib/azapi/azapi-resource.js +379 -91
  267. package/lib/core-azure/lib/azapi/azapi-resource.spec.js +2 -2
  268. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +2 -2
  269. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +5 -5
  270. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +5 -3
  271. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +5 -5
  272. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +3 -3
  273. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +3 -3
  274. package/lib/core-azure/lib/azapi/resource-schema-validator.d.ts +118 -0
  275. package/lib/core-azure/lib/azapi/resource-schema-validator.js +236 -0
  276. package/lib/core-azure/lib/azapi/resource-version-manager.d.ts +103 -0
  277. package/lib/core-azure/lib/azapi/resource-version-manager.js +168 -0
  278. package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +11 -6
  279. package/lib/core-azure/lib/index.d.ts +2 -2
  280. package/lib/core-azure/lib/index.js +5 -5
  281. package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
  282. package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
  283. package/lib/index.d.ts +19 -0
  284. package/lib/index.js +21 -2
  285. package/lib/testing/index.js +2 -2
  286. package/lib/testing/lib/cleanup.d.ts +1 -0
  287. package/lib/testing/lib/cleanup.js +19 -12
  288. package/lib/testing/lib/metadata.js +19 -16
  289. package/package.json +1 -1
  290. package/scripts/cleanup-test-resources.ts +22 -4
  291. package/scripts/generate-index.js +25 -8
@@ -0,0 +1,262 @@
1
+ "use strict";
2
+ /**
3
+ * API schemas for Azure Private DNS Zone Virtual Network Links across all supported versions
4
+ *
5
+ * This file defines the complete API schemas for Microsoft.Network/privateDnsZones/virtualNetworkLinks
6
+ * across all supported API versions. The schemas are used by the AzapiResource
7
+ * framework for validation, transformation, and version management.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.PRIVATE_DNS_ZONE_LINK_TYPE = exports.ALL_PRIVATE_DNS_ZONE_LINK_VERSIONS = exports.PRIVATE_DNS_ZONE_LINK_VERSION_2024_06_01 = exports.PRIVATE_DNS_ZONE_LINK_SCHEMA_2024_06_01 = void 0;
11
+ const version_interfaces_1 = require("../../core-azure/lib/version-manager/interfaces/version-interfaces");
12
+ // =============================================================================
13
+ // COMMON PROPERTY DEFINITIONS
14
+ // =============================================================================
15
+ /**
16
+ * Common property definitions shared across all Private DNS Zone Virtual Network Link versions
17
+ */
18
+ const COMMON_PROPERTIES = {
19
+ location: {
20
+ dataType: version_interfaces_1.PropertyType.STRING,
21
+ required: true,
22
+ defaultValue: "global",
23
+ description: "The Azure region where the Virtual Network Link will be created. Virtual Network Links are typically 'global' resources",
24
+ validation: [
25
+ {
26
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
27
+ message: "Location is required for Virtual Network Links",
28
+ },
29
+ ],
30
+ },
31
+ tags: {
32
+ dataType: version_interfaces_1.PropertyType.OBJECT,
33
+ required: false,
34
+ defaultValue: {},
35
+ description: "A dictionary of tags to apply to the Virtual Network Link for organizational, billing, or other purposes",
36
+ validation: [
37
+ {
38
+ ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
39
+ value: version_interfaces_1.PropertyType.OBJECT,
40
+ message: "Tags must be an object with string key-value pairs",
41
+ },
42
+ ],
43
+ },
44
+ name: {
45
+ dataType: version_interfaces_1.PropertyType.STRING,
46
+ required: true,
47
+ description: "The name of the Virtual Network Link. Must be unique within the Private DNS Zone",
48
+ validation: [
49
+ {
50
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
51
+ message: "Virtual Network Link name is required",
52
+ },
53
+ {
54
+ ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
55
+ value: "^[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?$",
56
+ message: "Virtual Network Link name must start and end with alphanumeric characters and can contain hyphens",
57
+ },
58
+ {
59
+ ruleType: version_interfaces_1.ValidationRuleType.VALUE_RANGE,
60
+ value: { minLength: 1, maxLength: 80 },
61
+ message: "Virtual Network Link name must be between 1 and 80 characters",
62
+ },
63
+ ],
64
+ },
65
+ privateDnsZoneId: {
66
+ dataType: version_interfaces_1.PropertyType.STRING,
67
+ required: true,
68
+ description: "The resource ID of the parent Private DNS Zone to link the virtual network to",
69
+ validation: [
70
+ {
71
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
72
+ message: "Private DNS Zone ID is required",
73
+ },
74
+ {
75
+ ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
76
+ value: "^/subscriptions/[^/]+/resourceGroups/[^/]+/providers/Microsoft.Network/privateDnsZones/[^/]+$",
77
+ message: "Private DNS Zone ID must be a valid resource ID",
78
+ },
79
+ ],
80
+ },
81
+ virtualNetworkId: {
82
+ dataType: version_interfaces_1.PropertyType.STRING,
83
+ required: true,
84
+ description: "The resource ID of the Virtual Network to link to the Private DNS Zone",
85
+ validation: [
86
+ {
87
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
88
+ message: "Virtual Network ID is required",
89
+ },
90
+ {
91
+ ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
92
+ value: "^/subscriptions/[^/]+/resourceGroups/[^/]+/providers/Microsoft.Network/virtualNetworks/[^/]+$",
93
+ message: "Virtual Network ID must be a valid resource ID",
94
+ },
95
+ ],
96
+ },
97
+ registrationEnabled: {
98
+ dataType: version_interfaces_1.PropertyType.BOOLEAN,
99
+ required: false,
100
+ defaultValue: false,
101
+ description: "Whether auto-registration of virtual machine records is enabled in the virtual network in the Private DNS zone",
102
+ validation: [
103
+ {
104
+ ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
105
+ value: version_interfaces_1.PropertyType.BOOLEAN,
106
+ message: "RegistrationEnabled must be a boolean value",
107
+ },
108
+ ],
109
+ },
110
+ resolutionPolicy: {
111
+ dataType: version_interfaces_1.PropertyType.STRING,
112
+ required: false,
113
+ description: "The resolution policy for the virtual network link. Only applicable to Private Link zones (zones ending with 'privatelink.*'). Possible values: 'Default' (standard resolution) or 'NxDomainRedirect' (fallback to Azure DNS for unresolved queries)",
114
+ validation: [
115
+ {
116
+ ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
117
+ value: version_interfaces_1.PropertyType.STRING,
118
+ message: "ResolutionPolicy must be a string",
119
+ },
120
+ ],
121
+ },
122
+ ignoreChanges: {
123
+ dataType: version_interfaces_1.PropertyType.ARRAY,
124
+ required: false,
125
+ description: "Array of property names to ignore during updates",
126
+ validation: [
127
+ {
128
+ ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
129
+ value: version_interfaces_1.PropertyType.ARRAY,
130
+ message: "IgnoreChanges must be an array of strings",
131
+ },
132
+ ],
133
+ },
134
+ };
135
+ // =============================================================================
136
+ // READ-ONLY PROPERTY DEFINITIONS
137
+ // =============================================================================
138
+ /**
139
+ * Read-only properties that are populated by Azure after creation
140
+ * These properties should not be included in the request body
141
+ */
142
+ const READ_ONLY_PROPERTIES = {
143
+ provisioningState: {
144
+ dataType: version_interfaces_1.PropertyType.STRING,
145
+ required: false,
146
+ description: "The provisioning state of the Virtual Network Link resource (read-only)",
147
+ validation: [
148
+ {
149
+ ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
150
+ value: version_interfaces_1.PropertyType.STRING,
151
+ message: "ProvisioningState must be a string",
152
+ },
153
+ ],
154
+ },
155
+ virtualNetworkLinkState: {
156
+ dataType: version_interfaces_1.PropertyType.STRING,
157
+ required: false,
158
+ description: "The state of the virtual network link (read-only). Possible values: 'InProgress', 'Completed'",
159
+ validation: [
160
+ {
161
+ ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
162
+ value: version_interfaces_1.PropertyType.STRING,
163
+ message: "VirtualNetworkLinkState must be a string",
164
+ },
165
+ ],
166
+ },
167
+ };
168
+ // =============================================================================
169
+ // VERSION-SPECIFIC SCHEMAS
170
+ // =============================================================================
171
+ /**
172
+ * API Schema for Private DNS Zone Virtual Network Link version 2024-06-01
173
+ */
174
+ exports.PRIVATE_DNS_ZONE_LINK_SCHEMA_2024_06_01 = {
175
+ resourceType: "Microsoft.Network/privateDnsZones/virtualNetworkLinks",
176
+ version: "2024-06-01",
177
+ properties: {
178
+ ...COMMON_PROPERTIES,
179
+ ...READ_ONLY_PROPERTIES,
180
+ },
181
+ required: ["location", "name", "privateDnsZoneId", "virtualNetworkId"],
182
+ optional: [
183
+ "tags",
184
+ "registrationEnabled",
185
+ "resolutionPolicy",
186
+ "ignoreChanges",
187
+ ],
188
+ deprecated: [],
189
+ transformationRules: {},
190
+ validationRules: [
191
+ {
192
+ property: "location",
193
+ rules: [
194
+ {
195
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
196
+ message: "Location is required for Virtual Network Links",
197
+ },
198
+ ],
199
+ },
200
+ {
201
+ property: "name",
202
+ rules: [
203
+ {
204
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
205
+ message: "Name is required for Virtual Network Links",
206
+ },
207
+ ],
208
+ },
209
+ {
210
+ property: "privateDnsZoneId",
211
+ rules: [
212
+ {
213
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
214
+ message: "Private DNS Zone ID is required for Virtual Network Links",
215
+ },
216
+ ],
217
+ },
218
+ {
219
+ property: "virtualNetworkId",
220
+ rules: [
221
+ {
222
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
223
+ message: "Virtual Network ID is required for Virtual Network Links",
224
+ },
225
+ ],
226
+ },
227
+ ],
228
+ };
229
+ // =============================================================================
230
+ // VERSION CONFIGURATIONS
231
+ // =============================================================================
232
+ /**
233
+ * Version configuration for Private DNS Zone Virtual Network Link 2024-06-01
234
+ */
235
+ exports.PRIVATE_DNS_ZONE_LINK_VERSION_2024_06_01 = {
236
+ version: "2024-06-01",
237
+ schema: exports.PRIVATE_DNS_ZONE_LINK_SCHEMA_2024_06_01,
238
+ supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
239
+ releaseDate: "2024-06-01",
240
+ deprecationDate: undefined,
241
+ sunsetDate: undefined,
242
+ breakingChanges: [],
243
+ migrationGuide: "/docs/private-dns-zone-link/migration-2024-06-01",
244
+ changeLog: [
245
+ {
246
+ changeType: "added",
247
+ description: "Latest stable release of Private DNS Zone Virtual Network Links API with full support for VNet linking and auto-registration",
248
+ breaking: false,
249
+ },
250
+ ],
251
+ };
252
+ /**
253
+ * All supported Private DNS Zone Virtual Network Link versions for registration
254
+ */
255
+ exports.ALL_PRIVATE_DNS_ZONE_LINK_VERSIONS = [
256
+ exports.PRIVATE_DNS_ZONE_LINK_VERSION_2024_06_01,
257
+ ];
258
+ /**
259
+ * Resource type constant
260
+ */
261
+ exports.PRIVATE_DNS_ZONE_LINK_TYPE = "Microsoft.Network/privateDnsZones/virtualNetworkLinks";
262
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZS1kbnMtem9uZS1saW5rLXNjaGVtYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtcHJpdmF0ZWRuc3pvbmVsaW5rL2xpYi9wcml2YXRlLWRucy16b25lLWxpbmstc2NoZW1hcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7QUFFSCwyR0FPNEU7QUFFNUUsZ0ZBQWdGO0FBQ2hGLDhCQUE4QjtBQUM5QixnRkFBZ0Y7QUFFaEY7O0dBRUc7QUFDSCxNQUFNLGlCQUFpQixHQUEwQztJQUMvRCxRQUFRLEVBQUU7UUFDUixRQUFRLEVBQUUsaUNBQVksQ0FBQyxNQUFNO1FBQzdCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsWUFBWSxFQUFFLFFBQVE7UUFDdEIsV0FBVyxFQUNULHlIQUF5SDtRQUMzSCxVQUFVLEVBQUU7WUFDVjtnQkFDRSxRQUFRLEVBQUUsdUNBQWtCLENBQUMsUUFBUTtnQkFDckMsT0FBTyxFQUFFLGdEQUFnRDthQUMxRDtTQUNGO0tBQ0Y7SUFDRCxJQUFJLEVBQUU7UUFDSixRQUFRLEVBQUUsaUNBQVksQ0FBQyxNQUFNO1FBQzdCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsWUFBWSxFQUFFLEVBQUU7UUFDaEIsV0FBVyxFQUNULDBHQUEwRztRQUM1RyxVQUFVLEVBQUU7WUFDVjtnQkFDRSxRQUFRLEVBQUUsdUNBQWtCLENBQUMsVUFBVTtnQkFDdkMsS0FBSyxFQUFFLGlDQUFZLENBQUMsTUFBTTtnQkFDMUIsT0FBTyxFQUFFLG9EQUFvRDthQUM5RDtTQUNGO0tBQ0Y7SUFDRCxJQUFJLEVBQUU7UUFDSixRQUFRLEVBQUUsaUNBQVksQ0FBQyxNQUFNO1FBQzdCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsV0FBVyxFQUNULGtGQUFrRjtRQUNwRixVQUFVLEVBQUU7WUFDVjtnQkFDRSxRQUFRLEVBQUUsdUNBQWtCLENBQUMsUUFBUTtnQkFDckMsT0FBTyxFQUFFLHVDQUF1QzthQUNq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RSwyREFBMkQ7aUJBQ3JFO2FBQ0Y7U0FDRjtRQUNEO1lBQ0UsUUFBUSxFQUFFLGtCQUFrQjtZQUM1QixLQUFLLEVBQUU7Z0JBQ0w7b0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLFFBQVE7b0JBQ3JDLE9BQU8sRUFBRSwwREFBMEQ7aUJBQ3BFO2FBQ0Y7U0FDRjtLQUNGO0NBQ0YsQ0FBQztBQUVGLGdGQUFnRjtBQUNoRix5QkFBeUI7QUFDekIsZ0ZBQWdGO0FBRWhGOztHQUVHO0FBQ1UsUUFBQSx3Q0FBd0MsR0FBa0I7SUFDckUsT0FBTyxFQUFFLFlBQVk7SUFDckIsTUFBTSxFQUFFLCtDQUF1QztJQUMvQyxZQUFZLEVBQUUsd0NBQW1CLENBQUMsTUFBTTtJQUN4QyxXQUFXLEVBQUUsWUFBWTtJQUN6QixlQUFlLEVBQUUsU0FBUztJQUMxQixVQUFVLEVBQUUsU0FBUztJQUNyQixlQUFlLEVBQUUsRUFBRTtJQUNuQixjQUFjLEVBQUUsa0RBQWtEO0lBQ2xFLFNBQVMsRUFBRTtRQUNUO1lBQ0UsVUFBVSxFQUFFLE9BQU87WUFDbkIsV0FBVyxFQUNULDhIQUE4SDtZQUNoSSxRQUFRLEVBQUUsS0FBSztTQUNoQjtLQUNGO0NBQ0YsQ0FBQztBQUVGOztHQUVHO0FBQ1UsUUFBQSxrQ0FBa0MsR0FBb0I7SUFDakUsZ0RBQXdDO0NBQ3pDLENBQUM7QUFFRjs7R0FFRztBQUNVLFFBQUEsMEJBQTBCLEdBQ3JDLHVEQUF1RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBUEkgc2NoZW1hcyBmb3IgQXp1cmUgUHJpdmF0ZSBETlMgWm9uZSBWaXJ0dWFsIE5ldHdvcmsgTGlua3MgYWNyb3NzIGFsbCBzdXBwb3J0ZWQgdmVyc2lvbnNcbiAqXG4gKiBUaGlzIGZpbGUgZGVmaW5lcyB0aGUgY29tcGxldGUgQVBJIHNjaGVtYXMgZm9yIE1pY3Jvc29mdC5OZXR3b3JrL3ByaXZhdGVEbnNab25lcy92aXJ0dWFsTmV0d29ya0xpbmtzXG4gKiBhY3Jvc3MgYWxsIHN1cHBvcnRlZCBBUEkgdmVyc2lvbnMuIFRoZSBzY2hlbWFzIGFyZSB1c2VkIGJ5IHRoZSBBemFwaVJlc291cmNlXG4gKiBmcmFtZXdvcmsgZm9yIHZhbGlkYXRpb24sIHRyYW5zZm9ybWF0aW9uLCBhbmQgdmVyc2lvbiBtYW5hZ2VtZW50LlxuICovXG5cbmltcG9ydCB7XG4gIEFwaVNjaGVtYSxcbiAgUHJvcGVydHlEZWZpbml0aW9uLFxuICBQcm9wZXJ0eVR5cGUsXG4gIFZhbGlkYXRpb25SdWxlVHlwZSxcbiAgVmVyc2lvbkNvbmZpZyxcbiAgVmVyc2lvblN1cHBvcnRMZXZlbCxcbn0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL3ZlcnNpb24tbWFuYWdlci9pbnRlcmZhY2VzL3ZlcnNpb24taW50ZXJmYWNlc1wiO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQ09NTU9OIFBST1BFUlRZIERFRklOSVRJT05TXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIENvbW1vbiBwcm9wZXJ0eSBkZWZpbml0aW9ucyBzaGFyZWQgYWNyb3NzIGFsbCBQcml2YXRlIEROUyBab25lIFZpcnR1YWwgTmV0d29yayBMaW5rIHZlcnNpb25zXG4gKi9cbmNvbnN0IENPTU1PTl9QUk9QRVJUSUVTOiB7IFtrZXk6IHN0cmluZ106IFByb3BlcnR5RGVmaW5pdGlvbiB9ID0ge1xuICBsb2NhdGlvbjoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIGRlZmF1bHRWYWx1ZTogXCJnbG9iYWxcIixcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiVGhlIEF6dXJlIHJlZ2lvbiB3aGVyZSB0aGUgVmlydHVhbCBOZXR3b3JrIExpbmsgd2lsbCBiZSBjcmVhdGVkLiBWaXJ0dWFsIE5ldHdvcmsgTGlua3MgYXJlIHR5cGljYWxseSAnZ2xvYmFsJyByZXNvdXJjZXNcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgIG1lc3NhZ2U6IFwiTG9jYXRpb24gaXMgcmVxdWlyZWQgZm9yIFZpcnR1YWwgTmV0d29yayBMaW5rc1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB0YWdzOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHRWYWx1ZToge30sXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIkEgZGljdGlvbmFyeSBvZiB0YWdzIHRvIGFwcGx5IHRvIHRoZSBWaXJ0dWFsIE5ldHdvcmsgTGluayBmb3Igb3JnYW5pemF0aW9uYWwsIGJpbGxpbmcsIG9yIG90aGVyIHB1cnBvc2VzXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlRZUEVfQ0hFQ0ssXG4gICAgICAgIHZhbHVlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgICAgICBtZXNzYWdlOiBcIlRhZ3MgbXVzdCBiZSBhbiBvYmplY3Qgd2l0aCBzdHJpbmcga2V5LXZhbHVlIHBhaXJzXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIG5hbWU6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiVGhlIG5hbWUgb2YgdGhlIFZpcnR1YWwgTmV0d29yayBMaW5rLiBNdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIFByaXZhdGUgRE5TIFpvbmVcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgIG1lc3NhZ2U6IFwiVmlydHVhbCBOZXR3b3JrIExpbmsgbmFtZSBpcyByZXF1aXJlZFwiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5QQVRURVJOX01BVENILFxuICAgICAgICB2YWx1ZTogXCJeW2EtekEtWjAtOV0oW2EtekEtWjAtOS1dKlthLXpBLVowLTldKT8kXCIsXG4gICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgXCJWaXJ0dWFsIE5ldHdvcmsgTGluayBuYW1lIG11c3Qgc3RhcnQgYW5kIGVuZCB3aXRoIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIGFuZCBjYW4gY29udGFpbiBoeXBoZW5zXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlZBTFVFX1JBTkdFLFxuICAgICAgICB2YWx1ZTogeyBtaW5MZW5ndGg6IDEsIG1heExlbmd0aDogODAgfSxcbiAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICBcIlZpcnR1YWwgTmV0d29yayBMaW5rIG5hbWUgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDgwIGNoYXJhY3RlcnNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgcHJpdmF0ZURuc1pvbmVJZDoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJUaGUgcmVzb3VyY2UgSUQgb2YgdGhlIHBhcmVudCBQcml2YXRlIEROUyBab25lIHRvIGxpbmsgdGhlIHZpcnR1YWwgbmV0d29yayB0b1wiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgbWVzc2FnZTogXCJQcml2YXRlIEROUyBab25lIElEIGlzIHJlcXVpcmVkXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlBBVFRFUk5fTUFUQ0gsXG4gICAgICAgIHZhbHVlOlxuICAgICAgICAgIFwiXi9zdWJzY3JpcHRpb25zL1teL10rL3Jlc291cmNlR3JvdXBzL1teL10rL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9wcml2YXRlRG5zWm9uZXMvW14vXSskXCIsXG4gICAgICAgIG1lc3NhZ2U6IFwiUHJpdmF0ZSBETlMgWm9uZSBJRCBtdXN0IGJlIGEgdmFsaWQgcmVzb3VyY2UgSURcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgdmlydHVhbE5ldHdvcmtJZDoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJUaGUgcmVzb3VyY2UgSUQgb2YgdGhlIFZpcnR1YWwgTmV0d29yayB0byBsaW5rIHRvIHRoZSBQcml2YXRlIEROUyBab25lXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICBtZXNzYWdlOiBcIlZpcnR1YWwgTmV0d29yayBJRCBpcyByZXF1aXJlZFwiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5QQVRURVJOX01BVENILFxuICAgICAgICB2YWx1ZTpcbiAgICAgICAgICBcIl4vc3Vic2NyaXB0aW9ucy9bXi9dKy9yZXNvdXJjZUdyb3Vwcy9bXi9dKy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL1teL10rJFwiLFxuICAgICAgICBtZXNzYWdlOiBcIlZpcnR1YWwgTmV0d29yayBJRCBtdXN0IGJlIGEgdmFsaWQgcmVzb3VyY2UgSURcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgcmVnaXN0cmF0aW9uRW5hYmxlZDoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuQk9PTEVBTixcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiV2hldGhlciBhdXRvLXJlZ2lzdHJhdGlvbiBvZiB2aXJ0dWFsIG1hY2hpbmUgcmVjb3JkcyBpcyBlbmFibGVkIGluIHRoZSB2aXJ0dWFsIG5ldHdvcmsgaW4gdGhlIFByaXZhdGUgRE5TIHpvbmVcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuVFlQRV9DSEVDSyxcbiAgICAgICAgdmFsdWU6IFByb3BlcnR5VHlwZS5CT09MRUFOLFxuICAgICAgICBtZXNzYWdlOiBcIlJlZ2lzdHJhdGlvbkVuYWJsZWQgbXVzdCBiZSBhIGJvb2xlYW4gdmFsdWVcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgcmVzb2x1dGlvblBvbGljeToge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiVGhlIHJlc29sdXRpb24gcG9saWN5IGZvciB0aGUgdmlydHVhbCBuZXR3b3JrIGxpbmsuIE9ubHkgYXBwbGljYWJsZSB0byBQcml2YXRlIExpbmsgem9uZXMgKHpvbmVzIGVuZGluZyB3aXRoICdwcml2YXRlbGluay4qJykuIFBvc3NpYmxlIHZhbHVlczogJ0RlZmF1bHQnIChzdGFuZGFyZCByZXNvbHV0aW9uKSBvciAnTnhEb21haW5SZWRpcmVjdCcgKGZhbGxiYWNrIHRvIEF6dXJlIEROUyBmb3IgdW5yZXNvbHZlZCBxdWVyaWVzKVwiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5UWVBFX0NIRUNLLFxuICAgICAgICB2YWx1ZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICAgICAgbWVzc2FnZTogXCJSZXNvbHV0aW9uUG9saWN5IG11c3QgYmUgYSBzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgaWdub3JlQ2hhbmdlczoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuQVJSQVksXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIkFycmF5IG9mIHByb3BlcnR5IG5hbWVzIHRvIGlnbm9yZSBkdXJpbmcgdXBkYXRlc1wiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5UWVBFX0NIRUNLLFxuICAgICAgICB2YWx1ZTogUHJvcGVydHlUeXBlLkFSUkFZLFxuICAgICAgICBtZXNzYWdlOiBcIklnbm9yZUNoYW5nZXMgbXVzdCBiZSBhbiBhcnJheSBvZiBzdHJpbmdzXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gUkVBRC1PTkxZIFBST1BFUlRZIERFRklOSVRJT05TXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFJlYWQtb25seSBwcm9wZXJ0aWVzIHRoYXQgYXJlIHBvcHVsYXRlZCBieSBBenVyZSBhZnRlciBjcmVhdGlvblxuICogVGhlc2UgcHJvcGVydGllcyBzaG91bGQgbm90IGJlIGluY2x1ZGVkIGluIHRoZSByZXF1ZXN0IGJvZHlcbiAqL1xuY29uc3QgUkVBRF9PTkxZX1BST1BFUlRJRVM6IHsgW2tleTogc3RyaW5nXTogUHJvcGVydHlEZWZpbml0aW9uIH0gPSB7XG4gIHByb3Zpc2lvbmluZ1N0YXRlOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJUaGUgcHJvdmlzaW9uaW5nIHN0YXRlIG9mIHRoZSBWaXJ0dWFsIE5ldHdvcmsgTGluayByZXNvdXJjZSAocmVhZC1vbmx5KVwiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5UWVBFX0NIRUNLLFxuICAgICAgICB2YWx1ZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICAgICAgbWVzc2FnZTogXCJQcm92aXNpb25pbmdTdGF0ZSBtdXN0IGJlIGEgc3RyaW5nXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHZpcnR1YWxOZXR3b3JrTGlua1N0YXRlOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJUaGUgc3RhdGUgb2YgdGhlIHZpcnR1YWwgbmV0d29yayBsaW5rIChyZWFkLW9ubHkpLiBQb3NzaWJsZSB2YWx1ZXM6ICdJblByb2dyZXNzJywgJ0NvbXBsZXRlZCdcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuVFlQRV9DSEVDSyxcbiAgICAgICAgdmFsdWU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgICAgIG1lc3NhZ2U6IFwiVmlydHVhbE5ldHdvcmtMaW5rU3RhdGUgbXVzdCBiZSBhIHN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFZFUlNJT04tU1BFQ0lGSUMgU0NIRU1BU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBBUEkgU2NoZW1hIGZvciBQcml2YXRlIEROUyBab25lIFZpcnR1YWwgTmV0d29yayBMaW5rIHZlcnNpb24gMjAyNC0wNi0wMVxuICovXG5leHBvcnQgY29uc3QgUFJJVkFURV9ETlNfWk9ORV9MSU5LX1NDSEVNQV8yMDI0XzA2XzAxOiBBcGlTY2hlbWEgPSB7XG4gIHJlc291cmNlVHlwZTogXCJNaWNyb3NvZnQuTmV0d29yay9wcml2YXRlRG5zWm9uZXMvdmlydHVhbE5ldHdvcmtMaW5rc1wiLFxuICB2ZXJzaW9uOiBcIjIwMjQtMDYtMDFcIixcbiAgcHJvcGVydGllczoge1xuICAgIC4uLkNPTU1PTl9QUk9QRVJUSUVTLFxuICAgIC4uLlJFQURfT05MWV9QUk9QRVJUSUVTLFxuICB9LFxuICByZXF1aXJlZDogW1wibG9jYXRpb25cIiwgXCJuYW1lXCIsIFwicHJpdmF0ZURuc1pvbmVJZFwiLCBcInZpcnR1YWxOZXR3b3JrSWRcIl0sXG4gIG9wdGlvbmFsOiBbXG4gICAgXCJ0YWdzXCIsXG4gICAgXCJyZWdpc3RyYXRpb25FbmFibGVkXCIsXG4gICAgXCJyZXNvbHV0aW9uUG9saWN5XCIsXG4gICAgXCJpZ25vcmVDaGFuZ2VzXCIsXG4gIF0sXG4gIGRlcHJlY2F0ZWQ6IFtdLFxuICB0cmFuc2Zvcm1hdGlvblJ1bGVzOiB7fSxcbiAgdmFsaWRhdGlvblJ1bGVzOiBbXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwibG9jYXRpb25cIixcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICAgIG1lc3NhZ2U6IFwiTG9jYXRpb24gaXMgcmVxdWlyZWQgZm9yIFZpcnR1YWwgTmV0d29yayBMaW5rc1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3BlcnR5OiBcIm5hbWVcIixcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICAgIG1lc3NhZ2U6IFwiTmFtZSBpcyByZXF1aXJlZCBmb3IgVmlydHVhbCBOZXR3b3JrIExpbmtzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwicHJpdmF0ZURuc1pvbmVJZFwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJQcml2YXRlIEROUyBab25lIElEIGlzIHJlcXVpcmVkIGZvciBWaXJ0dWFsIE5ldHdvcmsgTGlua3NcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJ2aXJ0dWFsTmV0d29ya0lkXCIsXG4gICAgICBydWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgICBtZXNzYWdlOiBcIlZpcnR1YWwgTmV0d29yayBJRCBpcyByZXF1aXJlZCBmb3IgVmlydHVhbCBOZXR3b3JrIExpbmtzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF0sXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVkVSU0lPTiBDT05GSUdVUkFUSU9OU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBWZXJzaW9uIGNvbmZpZ3VyYXRpb24gZm9yIFByaXZhdGUgRE5TIFpvbmUgVmlydHVhbCBOZXR3b3JrIExpbmsgMjAyNC0wNi0wMVxuICovXG5leHBvcnQgY29uc3QgUFJJVkFURV9ETlNfWk9ORV9MSU5LX1ZFUlNJT05fMjAyNF8wNl8wMTogVmVyc2lvbkNvbmZpZyA9IHtcbiAgdmVyc2lvbjogXCIyMDI0LTA2LTAxXCIsXG4gIHNjaGVtYTogUFJJVkFURV9ETlNfWk9ORV9MSU5LX1NDSEVNQV8yMDI0XzA2XzAxLFxuICBzdXBwb3J0TGV2ZWw6IFZlcnNpb25TdXBwb3J0TGV2ZWwuQUNUSVZFLFxuICByZWxlYXNlRGF0ZTogXCIyMDI0LTA2LTAxXCIsXG4gIGRlcHJlY2F0aW9uRGF0ZTogdW5kZWZpbmVkLFxuICBzdW5zZXREYXRlOiB1bmRlZmluZWQsXG4gIGJyZWFraW5nQ2hhbmdlczogW10sXG4gIG1pZ3JhdGlvbkd1aWRlOiBcIi9kb2NzL3ByaXZhdGUtZG5zLXpvbmUtbGluay9taWdyYXRpb24tMjAyNC0wNi0wMVwiLFxuICBjaGFuZ2VMb2c6IFtcbiAgICB7XG4gICAgICBjaGFuZ2VUeXBlOiBcImFkZGVkXCIsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJMYXRlc3Qgc3RhYmxlIHJlbGVhc2Ugb2YgUHJpdmF0ZSBETlMgWm9uZSBWaXJ0dWFsIE5ldHdvcmsgTGlua3MgQVBJIHdpdGggZnVsbCBzdXBwb3J0IGZvciBWTmV0IGxpbmtpbmcgYW5kIGF1dG8tcmVnaXN0cmF0aW9uXCIsXG4gICAgICBicmVha2luZzogZmFsc2UsXG4gICAgfSxcbiAgXSxcbn07XG5cbi8qKlxuICogQWxsIHN1cHBvcnRlZCBQcml2YXRlIEROUyBab25lIFZpcnR1YWwgTmV0d29yayBMaW5rIHZlcnNpb25zIGZvciByZWdpc3RyYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IEFMTF9QUklWQVRFX0ROU19aT05FX0xJTktfVkVSU0lPTlM6IFZlcnNpb25Db25maWdbXSA9IFtcbiAgUFJJVkFURV9ETlNfWk9ORV9MSU5LX1ZFUlNJT05fMjAyNF8wNl8wMSxcbl07XG5cbi8qKlxuICogUmVzb3VyY2UgdHlwZSBjb25zdGFudFxuICovXG5leHBvcnQgY29uc3QgUFJJVkFURV9ETlNfWk9ORV9MSU5LX1RZUEUgPVxuICBcIk1pY3Jvc29mdC5OZXR3b3JrL3ByaXZhdGVEbnNab25lcy92aXJ0dWFsTmV0d29ya0xpbmtzXCI7XG4iXX0=
@@ -0,0 +1,202 @@
1
+ /**
2
+ * Azure Private DNS Zone Virtual Network Link implementation using AzapiResource framework
3
+ *
4
+ * This class provides a unified implementation for linking virtual networks to private DNS zones.
5
+ * Virtual Network Links enable DNS resolution from VNets and optionally support auto-registration
6
+ * of VM records.
7
+ *
8
+ * Supported API Versions:
9
+ * - 2024-06-01 (Active, Latest)
10
+ *
11
+ * Features:
12
+ * - Automatic latest version resolution when no version is specified
13
+ * - Explicit version pinning for stability requirements
14
+ * - Schema-driven validation and transformation
15
+ * - Full backward compatibility
16
+ * - JSII compliance for multi-language support
17
+ * - Auto-registration support for VM DNS records
18
+ * - Resolution policy configuration
19
+ */
20
+ import * as cdktf from "cdktf";
21
+ import { Construct } from "constructs";
22
+ import { AzapiResource, AzapiResourceProps } from "../../core-azure/lib/azapi/azapi-resource";
23
+ import { ApiSchema } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
24
+ /**
25
+ * Properties for the Azure Private DNS Zone Virtual Network Link
26
+ *
27
+ * Extends AzapiResourceProps with Virtual Network Link specific properties
28
+ */
29
+ export interface PrivateDnsZoneLinkProps extends AzapiResourceProps {
30
+ /**
31
+ * Resource ID of the parent Private DNS Zone
32
+ * @example "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.Network/privateDnsZones/internal.contoso.com"
33
+ */
34
+ readonly privateDnsZoneId: string;
35
+ /**
36
+ * Resource ID of the Virtual Network to link
37
+ * @example "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.Network/virtualNetworks/vnet1"
38
+ */
39
+ readonly virtualNetworkId: string;
40
+ /**
41
+ * Whether auto-registration of virtual machine records is enabled
42
+ * When enabled, VMs in the VNet will automatically register DNS records
43
+ * @defaultValue false
44
+ */
45
+ readonly registrationEnabled?: boolean;
46
+ /**
47
+ * The resolution policy for the virtual network link
48
+ * Only applicable to Private Link zones (zones containing "privatelink." in the name)
49
+ * - "Default": Standard DNS resolution
50
+ * - "NxDomainRedirect": Fallback to Azure DNS for unresolved queries
51
+ * Note: This property will be silently ignored if the zone is not a Private Link zone
52
+ */
53
+ readonly resolutionPolicy?: string;
54
+ /**
55
+ * The lifecycle rules to ignore changes
56
+ * @example ["tags"]
57
+ */
58
+ readonly ignoreChanges?: string[];
59
+ }
60
+ /**
61
+ * Virtual Network reference for the Private DNS Zone link
62
+ */
63
+ export interface PrivateDnsZoneLinkVirtualNetworkReference {
64
+ readonly id: string;
65
+ }
66
+ /**
67
+ * Properties for Virtual Network Link body
68
+ */
69
+ export interface PrivateDnsZoneLinkProperties {
70
+ readonly virtualNetwork: PrivateDnsZoneLinkVirtualNetworkReference;
71
+ readonly registrationEnabled?: boolean;
72
+ readonly resolutionPolicy?: string;
73
+ }
74
+ /**
75
+ * The resource body interface for Azure Virtual Network Link API calls
76
+ */
77
+ export interface PrivateDnsZoneLinkBody {
78
+ readonly location: string;
79
+ readonly tags?: {
80
+ [key: string]: string;
81
+ };
82
+ readonly properties: PrivateDnsZoneLinkProperties;
83
+ }
84
+ /**
85
+ * Azure Private DNS Zone Virtual Network Link implementation
86
+ *
87
+ * Virtual Network Links connect private DNS zones to virtual networks, enabling DNS
88
+ * resolution from those VNets. They support auto-registration of VM DNS records and
89
+ * configurable resolution policies.
90
+ *
91
+ * @example
92
+ * // Basic virtual network link:
93
+ * const link = new PrivateDnsZoneLink(this, "vnet-link", {
94
+ * name: "my-vnet-link",
95
+ * privateDnsZoneId: privateDnsZone.id,
96
+ * virtualNetworkId: vnet.id,
97
+ * location: "global"
98
+ * });
99
+ *
100
+ * @example
101
+ * // Virtual network link with auto-registration:
102
+ * const link = new PrivateDnsZoneLink(this, "vnet-link", {
103
+ * name: "my-vnet-link",
104
+ * privateDnsZoneId: privateDnsZone.id,
105
+ * virtualNetworkId: vnet.id,
106
+ * registrationEnabled: true,
107
+ * location: "global"
108
+ * });
109
+ *
110
+ * @example
111
+ * // Virtual network link with resolution policy:
112
+ * const link = new PrivateDnsZoneLink(this, "vnet-link", {
113
+ * name: "my-vnet-link",
114
+ * privateDnsZoneId: privateDnsZone.id,
115
+ * virtualNetworkId: vnet.id,
116
+ * resolutionPolicy: "NxDomainRedirect",
117
+ * location: "global",
118
+ * apiVersion: "2024-06-01"
119
+ * });
120
+ *
121
+ * @stability stable
122
+ */
123
+ export declare class PrivateDnsZoneLink extends AzapiResource {
124
+ /**
125
+ * The input properties for this Virtual Network Link instance
126
+ */
127
+ readonly props: PrivateDnsZoneLinkProps;
128
+ readonly idOutput: cdktf.TerraformOutput;
129
+ readonly nameOutput: cdktf.TerraformOutput;
130
+ readonly locationOutput: cdktf.TerraformOutput;
131
+ readonly provisioningStateOutput: cdktf.TerraformOutput;
132
+ readonly virtualNetworkLinkStateOutput: cdktf.TerraformOutput;
133
+ /**
134
+ * Creates a new Azure Private DNS Zone Virtual Network Link using the AzapiResource framework
135
+ *
136
+ * @param scope - The scope in which to define this construct
137
+ * @param id - The unique identifier for this instance
138
+ * @param props - Configuration properties for the Virtual Network Link
139
+ */
140
+ constructor(scope: Construct, id: string, props: PrivateDnsZoneLinkProps);
141
+ /**
142
+ * Gets the default location for this resource type
143
+ * Private DNS Zone Links use "global" location
144
+ */
145
+ protected defaultLocation(): string;
146
+ /**
147
+ * Resolves the parent resource ID for the Virtual Network Link
148
+ * Virtual Network Links are child resources of Private DNS Zones
149
+ */
150
+ protected resolveParentId(props: any): string;
151
+ /**
152
+ * Gets the default API version to use when no explicit version is specified
153
+ */
154
+ protected defaultVersion(): string;
155
+ /**
156
+ * Gets the Azure resource type for Virtual Network Links
157
+ */
158
+ protected resourceType(): string;
159
+ /**
160
+ * Gets the API schema for the resolved version
161
+ */
162
+ protected apiSchema(): ApiSchema;
163
+ /**
164
+ * Creates the resource body for the Azure API call
165
+ */
166
+ protected createResourceBody(props: any): any;
167
+ /**
168
+ * Get the Virtual Network ID
169
+ * Note: This returns the input value as Azure API doesn't return it in output
170
+ */
171
+ get virtualNetworkId(): string;
172
+ /**
173
+ * Get whether auto-registration is enabled
174
+ * Returns a Terraform interpolation string for JSII compliance
175
+ */
176
+ get registrationEnabled(): string;
177
+ /**
178
+ * Get the resolution policy
179
+ * Returns a Terraform interpolation string for JSII compliance
180
+ */
181
+ get resolutionPolicy(): string;
182
+ /**
183
+ * Get the provisioning state of the Virtual Network Link
184
+ */
185
+ get provisioningState(): string;
186
+ /**
187
+ * Get the state of the Virtual Network Link
188
+ */
189
+ get virtualNetworkLinkState(): string;
190
+ /**
191
+ * Add a tag to the Virtual Network Link
192
+ */
193
+ addTag(key: string, value: string): void;
194
+ /**
195
+ * Remove a tag from the Virtual Network Link
196
+ */
197
+ removeTag(key: string): void;
198
+ /**
199
+ * Applies ignore changes lifecycle rules if specified in props
200
+ */
201
+ private _applyIgnoreChanges;
202
+ }