@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,193 @@
1
+ /**
2
+ * Azure DNS Forwarding Rule implementation using AzapiResource framework
3
+ *
4
+ * This class provides a unified implementation for creating forwarding rules within
5
+ * DNS Forwarding Rulesets. Forwarding rules define conditional forwarding behavior
6
+ * based on domain names.
7
+ *
8
+ * Supported API Versions:
9
+ * - 2022-07-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
+ * - Up to 6 target DNS servers per rule
18
+ */
19
+ import * as cdktf from "cdktf";
20
+ import { Construct } from "constructs";
21
+ import { AzapiResource, AzapiResourceProps } from "../../core-azure/lib/azapi/azapi-resource";
22
+ import { ApiSchema } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
23
+ /**
24
+ * Target DNS server configuration
25
+ */
26
+ export interface TargetDnsServer {
27
+ /**
28
+ * IP address of the target DNS server
29
+ * @example "10.0.0.4"
30
+ */
31
+ readonly ipAddress: string;
32
+ /**
33
+ * Port number for the target DNS server
34
+ * @defaultValue 53
35
+ */
36
+ readonly port?: number;
37
+ }
38
+ /**
39
+ * Properties for the Azure DNS Forwarding Rule
40
+ *
41
+ * Extends AzapiResourceProps with Forwarding Rule specific properties
42
+ */
43
+ export interface ForwardingRuleProps extends AzapiResourceProps {
44
+ /**
45
+ * Resource ID of the parent DNS Forwarding Ruleset
46
+ * @example "/subscriptions/.../resourceGroups/rg/providers/Microsoft.Network/dnsForwardingRulesets/ruleset1"
47
+ */
48
+ readonly dnsForwardingRulesetId: string;
49
+ /**
50
+ * The domain name to forward (must end with a dot for FQDN)
51
+ * @example "contoso.com."
52
+ * @example "internal.corp."
53
+ */
54
+ readonly domainName: string;
55
+ /**
56
+ * Array of target DNS servers to forward queries to
57
+ * Maximum of 6 servers per rule
58
+ * @example [{ ipAddress: "10.0.0.4", port: 53 }, { ipAddress: "10.0.0.5" }]
59
+ */
60
+ readonly targetDnsServers: TargetDnsServer[];
61
+ /**
62
+ * The state of the forwarding rule
63
+ * @defaultValue "Enabled"
64
+ */
65
+ readonly forwardingRuleState?: "Enabled" | "Disabled";
66
+ /**
67
+ * Metadata attached to the forwarding rule as key-value pairs
68
+ */
69
+ readonly metadata?: {
70
+ [key: string]: string;
71
+ };
72
+ /**
73
+ * The lifecycle rules to ignore changes
74
+ * @example ["metadata"]
75
+ */
76
+ readonly ignoreChanges?: string[];
77
+ }
78
+ /**
79
+ * Properties for Forwarding Rule body
80
+ */
81
+ export interface ForwardingRuleProperties {
82
+ readonly domainName: string;
83
+ readonly targetDnsServers: TargetDnsServer[];
84
+ readonly forwardingRuleState?: string;
85
+ readonly metadata?: {
86
+ [key: string]: string;
87
+ };
88
+ }
89
+ /**
90
+ * The resource body interface for Azure Forwarding Rule API calls
91
+ */
92
+ export interface ForwardingRuleBody {
93
+ readonly properties: ForwardingRuleProperties;
94
+ }
95
+ /**
96
+ * Azure DNS Forwarding Rule implementation
97
+ *
98
+ * Forwarding rules define conditional DNS forwarding behavior. When a DNS query
99
+ * matches the domain name pattern, it's forwarded to the specified target DNS servers.
100
+ * Up to 1000 rules can be configured per ruleset, with up to 6 target servers per rule.
101
+ *
102
+ * @example
103
+ * // Basic forwarding rule:
104
+ * const rule = new ForwardingRule(this, "rule", {
105
+ * name: "contoso-rule",
106
+ * dnsForwardingRulesetId: ruleset.id,
107
+ * domainName: "contoso.com.",
108
+ * targetDnsServers: [
109
+ * { ipAddress: "10.0.0.4", port: 53 },
110
+ * { ipAddress: "10.0.0.5" }
111
+ * ]
112
+ * });
113
+ *
114
+ * @example
115
+ * // Forwarding rule with metadata:
116
+ * const rule = new ForwardingRule(this, "rule", {
117
+ * name: "contoso-rule",
118
+ * dnsForwardingRulesetId: ruleset.id,
119
+ * domainName: "contoso.com.",
120
+ * targetDnsServers: [{ ipAddress: "10.0.0.4" }],
121
+ * metadata: {
122
+ * environment: "production",
123
+ * owner: "platform-team"
124
+ * }
125
+ * });
126
+ *
127
+ * @example
128
+ * // Disabled forwarding rule:
129
+ * const rule = new ForwardingRule(this, "rule", {
130
+ * name: "temp-rule",
131
+ * dnsForwardingRulesetId: ruleset.id,
132
+ * domainName: "temp.local.",
133
+ * targetDnsServers: [{ ipAddress: "10.0.0.4" }],
134
+ * forwardingRuleState: "Disabled"
135
+ * });
136
+ *
137
+ * @stability stable
138
+ */
139
+ export declare class ForwardingRule extends AzapiResource {
140
+ /**
141
+ * The input properties for this Forwarding Rule instance
142
+ */
143
+ readonly props: ForwardingRuleProps;
144
+ readonly idOutput: cdktf.TerraformOutput;
145
+ readonly nameOutput: cdktf.TerraformOutput;
146
+ readonly provisioningStateOutput: cdktf.TerraformOutput;
147
+ readonly resourceName: string;
148
+ /**
149
+ * Creates a new Azure DNS Forwarding Rule using the AzapiResource framework
150
+ *
151
+ * @param scope - The scope in which to define this construct
152
+ * @param id - The unique identifier for this instance
153
+ * @param props - Configuration properties for the Forwarding Rule
154
+ */
155
+ constructor(scope: Construct, id: string, props: ForwardingRuleProps);
156
+ /**
157
+ * Resolves the parent resource ID for the Forwarding Rule
158
+ * Forwarding Rules are child resources of DNS Forwarding Rulesets
159
+ */
160
+ protected resolveParentId(props: any): string;
161
+ /**
162
+ * Gets the default API version to use when no explicit version is specified
163
+ */
164
+ protected defaultVersion(): string;
165
+ /**
166
+ * Gets the Azure resource type for Forwarding Rules
167
+ */
168
+ protected resourceType(): string;
169
+ /**
170
+ * Gets the API schema for the resolved version
171
+ */
172
+ protected apiSchema(): ApiSchema;
173
+ /**
174
+ * Creates the resource body for the Azure API call
175
+ */
176
+ protected createResourceBody(props: any): any;
177
+ /**
178
+ * Get the provisioning state of the Forwarding Rule
179
+ */
180
+ get provisioningState(): string;
181
+ /**
182
+ * Get the target DNS servers
183
+ */
184
+ get targetDnsServers(): string;
185
+ /**
186
+ * Get the metadata
187
+ */
188
+ get metadata(): string;
189
+ /**
190
+ * Applies ignore changes lifecycle rules if specified in props
191
+ */
192
+ private _applyIgnoreChanges;
193
+ }
@@ -0,0 +1,193 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.ForwardingRule = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ /**
7
+ * Azure DNS Forwarding Rule implementation using AzapiResource framework
8
+ *
9
+ * This class provides a unified implementation for creating forwarding rules within
10
+ * DNS Forwarding Rulesets. Forwarding rules define conditional forwarding behavior
11
+ * based on domain names.
12
+ *
13
+ * Supported API Versions:
14
+ * - 2022-07-01 (Active, Latest)
15
+ *
16
+ * Features:
17
+ * - Automatic latest version resolution when no version is specified
18
+ * - Explicit version pinning for stability requirements
19
+ * - Schema-driven validation and transformation
20
+ * - Full backward compatibility
21
+ * - JSII compliance for multi-language support
22
+ * - Up to 6 target DNS servers per rule
23
+ */
24
+ const cdktf = require("cdktf");
25
+ const forwarding_rule_schemas_1 = require("./forwarding-rule-schemas");
26
+ const azapi_resource_1 = require("../../core-azure/lib/azapi/azapi-resource");
27
+ /**
28
+ * Azure DNS Forwarding Rule implementation
29
+ *
30
+ * Forwarding rules define conditional DNS forwarding behavior. When a DNS query
31
+ * matches the domain name pattern, it's forwarded to the specified target DNS servers.
32
+ * Up to 1000 rules can be configured per ruleset, with up to 6 target servers per rule.
33
+ *
34
+ * @example
35
+ * // Basic forwarding rule:
36
+ * const rule = new ForwardingRule(this, "rule", {
37
+ * name: "contoso-rule",
38
+ * dnsForwardingRulesetId: ruleset.id,
39
+ * domainName: "contoso.com.",
40
+ * targetDnsServers: [
41
+ * { ipAddress: "10.0.0.4", port: 53 },
42
+ * { ipAddress: "10.0.0.5" }
43
+ * ]
44
+ * });
45
+ *
46
+ * @example
47
+ * // Forwarding rule with metadata:
48
+ * const rule = new ForwardingRule(this, "rule", {
49
+ * name: "contoso-rule",
50
+ * dnsForwardingRulesetId: ruleset.id,
51
+ * domainName: "contoso.com.",
52
+ * targetDnsServers: [{ ipAddress: "10.0.0.4" }],
53
+ * metadata: {
54
+ * environment: "production",
55
+ * owner: "platform-team"
56
+ * }
57
+ * });
58
+ *
59
+ * @example
60
+ * // Disabled forwarding rule:
61
+ * const rule = new ForwardingRule(this, "rule", {
62
+ * name: "temp-rule",
63
+ * dnsForwardingRulesetId: ruleset.id,
64
+ * domainName: "temp.local.",
65
+ * targetDnsServers: [{ ipAddress: "10.0.0.4" }],
66
+ * forwardingRuleState: "Disabled"
67
+ * });
68
+ *
69
+ * @stability stable
70
+ */
71
+ class ForwardingRule extends azapi_resource_1.AzapiResource {
72
+ /**
73
+ * Creates a new Azure DNS Forwarding Rule using the AzapiResource framework
74
+ *
75
+ * @param scope - The scope in which to define this construct
76
+ * @param id - The unique identifier for this instance
77
+ * @param props - Configuration properties for the Forwarding Rule
78
+ */
79
+ constructor(scope, id, props) {
80
+ super(scope, id, props);
81
+ this.props = props;
82
+ // Extract properties from the AZAPI resource outputs using Terraform interpolation
83
+ this.resourceName = `\${${this.terraformResource.fqn}.name}`;
84
+ // Create Terraform outputs for easy access and referencing from other resources
85
+ this.idOutput = new cdktf.TerraformOutput(this, "id", {
86
+ value: this.id,
87
+ description: "The ID of the Forwarding Rule",
88
+ });
89
+ this.nameOutput = new cdktf.TerraformOutput(this, "name", {
90
+ value: this.resourceName,
91
+ description: "The name of the Forwarding Rule",
92
+ });
93
+ this.provisioningStateOutput = new cdktf.TerraformOutput(this, "provisioning_state", {
94
+ value: `\${${this.terraformResource.fqn}.output.properties.provisioningState}`,
95
+ description: "The provisioning state of the Forwarding Rule",
96
+ });
97
+ // Override logical IDs to match naming convention
98
+ this.idOutput.overrideLogicalId("id");
99
+ this.nameOutput.overrideLogicalId("name");
100
+ this.provisioningStateOutput.overrideLogicalId("provisioning_state");
101
+ // Apply ignore changes if specified
102
+ this._applyIgnoreChanges();
103
+ }
104
+ // =============================================================================
105
+ // REQUIRED ABSTRACT METHODS FROM AzapiResource
106
+ // =============================================================================
107
+ /**
108
+ * Resolves the parent resource ID for the Forwarding Rule
109
+ * Forwarding Rules are child resources of DNS Forwarding Rulesets
110
+ */
111
+ resolveParentId(props) {
112
+ const typedProps = props;
113
+ return typedProps.dnsForwardingRulesetId;
114
+ }
115
+ /**
116
+ * Gets the default API version to use when no explicit version is specified
117
+ */
118
+ defaultVersion() {
119
+ return "2022-07-01";
120
+ }
121
+ /**
122
+ * Gets the Azure resource type for Forwarding Rules
123
+ */
124
+ resourceType() {
125
+ return forwarding_rule_schemas_1.FORWARDING_RULE_TYPE;
126
+ }
127
+ /**
128
+ * Gets the API schema for the resolved version
129
+ */
130
+ apiSchema() {
131
+ return this.resolveSchema();
132
+ }
133
+ /**
134
+ * Creates the resource body for the Azure API call
135
+ */
136
+ createResourceBody(props) {
137
+ const typedProps = props;
138
+ const properties = {
139
+ domainName: typedProps.domainName,
140
+ targetDnsServers: typedProps.targetDnsServers.map((server) => ({
141
+ ipAddress: server.ipAddress,
142
+ port: server.port ?? 53,
143
+ })),
144
+ forwardingRuleState: typedProps.forwardingRuleState,
145
+ metadata: typedProps.metadata,
146
+ };
147
+ const body = {
148
+ properties,
149
+ };
150
+ return body;
151
+ }
152
+ // =============================================================================
153
+ // PUBLIC METHODS FOR FORWARDING RULE OPERATIONS
154
+ // =============================================================================
155
+ /**
156
+ * Get the provisioning state of the Forwarding Rule
157
+ */
158
+ get provisioningState() {
159
+ return `\${${this.terraformResource.fqn}.output.properties.provisioningState}`;
160
+ }
161
+ /**
162
+ * Get the target DNS servers
163
+ */
164
+ get targetDnsServers() {
165
+ return `\${${this.terraformResource.fqn}.output.properties.targetDnsServers}`;
166
+ }
167
+ /**
168
+ * Get the metadata
169
+ */
170
+ get metadata() {
171
+ return `\${${this.terraformResource.fqn}.output.properties.metadata}`;
172
+ }
173
+ // =============================================================================
174
+ // PRIVATE HELPER METHODS
175
+ // =============================================================================
176
+ /**
177
+ * Applies ignore changes lifecycle rules if specified in props
178
+ */
179
+ _applyIgnoreChanges() {
180
+ if (this.props.ignoreChanges && this.props.ignoreChanges.length > 0) {
181
+ this.terraformResource.addOverride("lifecycle", {
182
+ ignore_changes: this.props.ignoreChanges,
183
+ });
184
+ }
185
+ }
186
+ }
187
+ exports.ForwardingRule = ForwardingRule;
188
+ _a = JSII_RTTI_SYMBOL_1;
189
+ ForwardingRule[_a] = { fqn: "@microsoft/terraform-cdk-constructs.ForwardingRule", version: "1.3.1" };
190
+ (() => {
191
+ azapi_resource_1.AzapiResource.registerSchemas(forwarding_rule_schemas_1.FORWARDING_RULE_TYPE, forwarding_rule_schemas_1.ALL_FORWARDING_RULE_VERSIONS);
192
+ })();
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yd2FyZGluZy1ydWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLWRuc2ZvcndhcmRpbmdydWxlc2V0L2xpYi9mb3J3YXJkaW5nLXJ1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFFSCwrQkFBK0I7QUFFL0IsdUVBR21DO0FBQ25DLDhFQUdtRDtBQWlGbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQ0c7QUFDSCxNQUFhLGNBQWUsU0FBUSw4QkFBYTtJQXFCL0M7Ozs7OztPQU1HO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjtRQUNsRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQixtRkFBbUY7UUFDbkYsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLFFBQVEsQ0FBQztRQUU3RCxnRkFBZ0Y7UUFDaEYsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtZQUNwRCxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDZCxXQUFXLEVBQUUsK0JBQStCO1NBQzdDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDeEQsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQ3hCLFdBQVcsRUFBRSxpQ0FBaUM7U0FDL0MsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FDdEQsSUFBSSxFQUNKLG9CQUFvQixFQUNwQjtZ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bnQiOlsiLyoqXG4gKiBBenVyZSBETlMgRm9yd2FyZGluZyBSdWxlIGltcGxlbWVudGF0aW9uIHVzaW5nIEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gKlxuICogVGhpcyBjbGFzcyBwcm92aWRlcyBhIHVuaWZpZWQgaW1wbGVtZW50YXRpb24gZm9yIGNyZWF0aW5nIGZvcndhcmRpbmcgcnVsZXMgd2l0aGluXG4gKiBETlMgRm9yd2FyZGluZyBSdWxlc2V0cy4gRm9yd2FyZGluZyBydWxlcyBkZWZpbmUgY29uZGl0aW9uYWwgZm9yd2FyZGluZyBiZWhhdmlvclxuICogYmFzZWQgb24gZG9tYWluIG5hbWVzLlxuICpcbiAqIFN1cHBvcnRlZCBBUEkgVmVyc2lvbnM6XG4gKiAtIDIwMjItMDctMDEgKEFjdGl2ZSwgTGF0ZXN0KVxuICpcbiAqIEZlYXR1cmVzOlxuICogLSBBdXRvbWF0aWMgbGF0ZXN0IHZlcnNpb24gcmVzb2x1dGlvbiB3aGVuIG5vIHZlcnNpb24gaXMgc3BlY2lmaWVkXG4gKiAtIEV4cGxpY2l0IHZlcnNpb24gcGlubmluZyBmb3Igc3RhYmlsaXR5IHJlcXVpcmVtZW50c1xuICogLSBTY2hlbWEtZHJpdmVuIHZhbGlkYXRpb24gYW5kIHRyYW5zZm9ybWF0aW9uXG4gKiAtIEZ1bGwgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICogLSBKU0lJIGNvbXBsaWFuY2UgZm9yIG11bHRpLWxhbmd1YWdlIHN1cHBvcnRcbiAqIC0gVXAgdG8gNiB0YXJnZXQgRE5TIHNlcnZlcnMgcGVyIHJ1bGVcbiAqL1xuXG5pbXBvcnQgKiBhcyBjZGt0ZiBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBBTExfRk9SV0FSRElOR19SVUxFX1ZFUlNJT05TLFxuICBGT1JXQVJESU5HX1JVTEVfVFlQRSxcbn0gZnJvbSBcIi4vZm9yd2FyZGluZy1ydWxlLXNjaGVtYXNcIjtcbmltcG9ydCB7XG4gIEF6YXBpUmVzb3VyY2UsXG4gIEF6YXBpUmVzb3VyY2VQcm9wcyxcbn0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL2F6YXBpL2F6YXBpLXJlc291cmNlXCI7XG5pbXBvcnQgeyBBcGlTY2hlbWEgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvdmVyc2lvbi1tYW5hZ2VyL2ludGVyZmFjZXMvdmVyc2lvbi1pbnRlcmZhY2VzXCI7XG5cbi8qKlxuICogVGFyZ2V0IEROUyBzZXJ2ZXIgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldERuc1NlcnZlciB7XG4gIC8qKlxuICAgKiBJUCBhZGRyZXNzIG9mIHRoZSB0YXJnZXQgRE5TIHNlcnZlclxuICAgKiBAZXhhbXBsZSBcIjEwLjAuMC40XCJcbiAgICovXG4gIHJlYWRvbmx5IGlwQWRkcmVzczogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQb3J0IG51bWJlciBmb3IgdGhlIHRhcmdldCBETlMgc2VydmVyXG4gICAqIEBkZWZhdWx0VmFsdWUgNTNcbiAgICovXG4gIHJlYWRvbmx5IHBvcnQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgdGhlIEF6dXJlIEROUyBGb3J3YXJkaW5nIFJ1bGVcbiAqXG4gKiBFeHRlbmRzIEF6YXBpUmVzb3VyY2VQcm9wcyB3aXRoIEZvcndhcmRpbmcgUnVsZSBzcGVjaWZpYyBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm9yd2FyZGluZ1J1bGVQcm9wcyBleHRlbmRzIEF6YXBpUmVzb3VyY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBSZXNvdXJjZSBJRCBvZiB0aGUgcGFyZW50IEROUyBGb3J3YXJkaW5nIFJ1bGVzZXRcbiAgICogQGV4YW1wbGUgXCIvc3Vic2NyaXB0aW9ucy8uLi4vcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL2Ruc0ZvcndhcmRpbmdSdWxlc2V0cy9ydWxlc2V0MVwiXG4gICAqL1xuICByZWFkb25seSBkbnNGb3J3YXJkaW5nUnVsZXNldElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkb21haW4gbmFtZSB0byBmb3J3YXJkIChtdXN0IGVuZCB3aXRoIGEgZG90IGZvciBGUUROKVxuICAgKiBAZXhhbXBsZSBcImNvbnRvc28uY29tLlwiXG4gICAqIEBleGFtcGxlIFwiaW50ZXJuYWwuY29ycC5cIlxuICAgKi9cbiAgcmVhZG9ubHkgZG9tYWluTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBcnJheSBvZiB0YXJnZXQgRE5TIHNlcnZlcnMgdG8gZm9yd2FyZCBxdWVyaWVzIHRvXG4gICAqIE1heGltdW0gb2YgNiBzZXJ2ZXJzIHBlciBydWxlXG4gICAqIEBleGFtcGxlIFt7IGlwQWRkcmVzczogXCIxMC4wLjAuNFwiLCBwb3J0OiA1MyB9LCB7IGlwQWRkcmVzczogXCIxMC4wLjAuNVwiIH1dXG4gICAqL1xuICByZWFkb25seSB0YXJnZXREbnNTZXJ2ZXJzOiBUYXJnZXREbnNTZXJ2ZXJbXTtcblxuICAvKipcbiAgICogVGhlIHN0YXRlIG9mIHRoZSBmb3J3YXJkaW5nIHJ1bGVcbiAgICogQGRlZmF1bHRWYWx1ZSBcIkVuYWJsZWRcIlxuICAgKi9cbiAgcmVhZG9ubHkgZm9yd2FyZGluZ1J1bGVTdGF0ZT86IFwiRW5hYmxlZFwiIHwgXCJEaXNhYmxlZFwiO1xuXG4gIC8qKlxuICAgKiBNZXRhZGF0YSBhdHRhY2hlZCB0byB0aGUgZm9yd2FyZGluZyBydWxlIGFzIGtleS12YWx1ZSBwYWlyc1xuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBUaGUgbGlmZWN5Y2xlIHJ1bGVzIHRvIGlnbm9yZSBjaGFuZ2VzXG4gICAqIEBleGFtcGxlIFtcIm1ldGFkYXRhXCJdXG4gICAqL1xuICByZWFkb25seSBpZ25vcmVDaGFuZ2VzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgRm9yd2FyZGluZyBSdWxlIGJvZHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGb3J3YXJkaW5nUnVsZVByb3BlcnRpZXMge1xuICByZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHRhcmdldERuc1NlcnZlcnM6IFRhcmdldERuc1NlcnZlcltdO1xuICByZWFkb25seSBmb3J3YXJkaW5nUnVsZVN0YXRlPzogc3RyaW5nO1xuICByZWFkb25seSBtZXRhZGF0YT86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbi8qKlxuICogVGhlIHJlc291cmNlIGJvZHkgaW50ZXJmYWNlIGZvciBBenVyZSBGb3J3YXJkaW5nIFJ1bGUgQVBJIGNhbGxzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm9yd2FyZGluZ1J1bGVCb2R5IHtcbiAgcmVhZG9ubHkgcHJvcGVydGllczogRm9yd2FyZGluZ1J1bGVQcm9wZXJ0aWVzO1xufVxuXG4vKipcbiAqIEF6dXJlIEROUyBGb3J3YXJkaW5nIFJ1bGUgaW1wbGVtZW50YXRpb25cbiAqXG4gKiBGb3J3YXJkaW5nIHJ1bGVzIGRlZmluZSBjb25kaXRpb25hbCBETlMgZm9yd2FyZGluZyBiZWhhdmlvci4gV2hlbiBhIEROUyBxdWVyeVxuICogbWF0Y2hlcyB0aGUgZG9tYWluIG5hbWUgcGF0dGVybiwgaXQncyBmb3J3YXJkZWQgdG8gdGhlIHNwZWNpZmllZCB0YXJnZXQgRE5TIHNlcnZlcnMuXG4gKiBVcCB0byAxMDAwIHJ1bGVzIGNhbiBiZSBjb25maWd1cmVkIHBlciBydWxlc2V0LCB3aXRoIHVwIHRvIDYgdGFyZ2V0IHNlcnZlcnMgcGVyIHJ1bGUuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEJhc2ljIGZvcndhcmRpbmcgcnVsZTpcbiAqIGNvbnN0IHJ1bGUgPSBuZXcgRm9yd2FyZGluZ1J1bGUodGhpcywgXCJydWxlXCIsIHtcbiAqICAgbmFtZTogXCJjb250b3NvLXJ1bGVcIixcbiAqICAgZG5zRm9yd2FyZGluZ1J1bGVzZXRJZDogcnVsZXNldC5pZCxcbiAqICAgZG9tYWluTmFtZTogXCJjb250b3NvLmNvbS5cIixcbiAqICAgdGFyZ2V0RG5zU2VydmVyczogW1xuICogICAgIHsgaXBBZGRyZXNzOiBcIjEwLjAuMC40XCIsIHBvcnQ6IDUzIH0sXG4gKiAgICAgeyBpcEFkZHJlc3M6IFwiMTAuMC4wLjVcIiB9XG4gKiAgIF1cbiAqIH0pO1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBGb3J3YXJkaW5nIHJ1bGUgd2l0aCBtZXRhZGF0YTpcbiAqIGNvbnN0IHJ1bGUgPSBuZXcgRm9yd2FyZGluZ1J1bGUodGhpcywgXCJydWxlXCIsIHtcbiAqICAgbmFtZTogXCJjb250b3NvLXJ1bGVcIixcbiAqICAgZG5zRm9yd2FyZGluZ1J1bGVzZXRJZDogcnVsZXNldC5pZCxcbiAqICAgZG9tYWluTmFtZTogXCJjb250b3NvLmNvbS5cIixcbiAqICAgdGFyZ2V0RG5zU2VydmVyczogW3sgaXBBZGRyZXNzOiBcIjEwLjAuMC40XCIgfV0sXG4gKiAgIG1ldGFkYXRhOiB7XG4gKiAgICAgZW52aXJvbm1lbnQ6IFwicHJvZHVjdGlvblwiLFxuICogICAgIG93bmVyOiBcInBsYXRmb3JtLXRlYW1cIlxuICogICB9XG4gKiB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRGlzYWJsZWQgZm9yd2FyZGluZyBydWxlOlxuICogY29uc3QgcnVsZSA9IG5ldyBGb3J3YXJkaW5nUnVsZSh0aGlzLCBcInJ1bGVcIiwge1xuICogICBuYW1lOiBcInRlbXAtcnVsZVwiLFxuICogICBkbnNGb3J3YXJkaW5nUnVsZXNldElkOiBydWxlc2V0LmlkLFxuICogICBkb21haW5OYW1lOiBcInRlbXAubG9jYWwuXCIsXG4gKiAgIHRhcmdldERuc1NlcnZlcnM6IFt7IGlwQWRkcmVzczogXCIxMC4wLjAuNFwiIH1dLFxuICogICBmb3J3YXJkaW5nUnVsZVN0YXRlOiBcIkRpc2FibGVkXCJcbiAqIH0pO1xuICpcbiAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gKi9cbmV4cG9ydCBjbGFzcyBGb3J3YXJkaW5nUnVsZSBleHRlbmRzIEF6YXBpUmVzb3VyY2Uge1xuICBzdGF0aWMge1xuICAgIEF6YXBpUmVzb3VyY2UucmVnaXN0ZXJTY2hlbWFzKFxuICAgICAgRk9SV0FSRElOR19SVUxFX1RZUEUsXG4gICAgICBBTExfRk9SV0FSRElOR19SVUxFX1ZFUlNJT05TLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGlucHV0IHByb3BlcnRpZXMgZm9yIHRoaXMgRm9yd2FyZGluZyBSdWxlIGluc3RhbmNlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvcHM6IEZvcndhcmRpbmdSdWxlUHJvcHM7XG5cbiAgLy8gT3V0cHV0IHByb3BlcnRpZXMgZm9yIGVhc3kgYWNjZXNzIGFuZCByZWZlcmVuY2luZ1xuICBwdWJsaWMgcmVhZG9ubHkgaWRPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IHByb3Zpc2lvbmluZ1N0YXRlT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG5cbiAgLy8gUHVibGljIHByb3BlcnRpZXNcbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEF6dXJlIEROUyBGb3J3YXJkaW5nIFJ1bGUgdXNpbmcgdGhlIEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIEZvcndhcmRpbmcgUnVsZVxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEZvcndhcmRpbmdSdWxlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIC8vIEV4dHJhY3QgcHJvcGVydGllcyBmcm9tIHRoZSBBWkFQSSByZXNvdXJjZSBvdXRwdXRzIHVzaW5nIFRlcnJhZm9ybSBpbnRlcnBvbGF0aW9uXG4gICAgdGhpcy5yZXNvdXJjZU5hbWUgPSBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm5hbWV9YDtcblxuICAgIC8vIENyZWF0ZSBUZXJyYWZvcm0gb3V0cHV0cyBmb3IgZWFzeSBhY2Nlc3MgYW5kIHJlZmVyZW5jaW5nIGZyb20gb3RoZXIgcmVzb3VyY2VzXG4gICAgdGhpcy5pZE91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJpZFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5pZCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBJRCBvZiB0aGUgRm9yd2FyZGluZyBSdWxlXCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLm5hbWVPdXRwdXQgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwibmFtZVwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5yZXNvdXJjZU5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgbmFtZSBvZiB0aGUgRm9yd2FyZGluZyBSdWxlXCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLnByb3Zpc2lvbmluZ1N0YXRlT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBcInByb3Zpc2lvbmluZ19zdGF0ZVwiLFxuICAgICAge1xuICAgICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5vdXRwdXQucHJvcGVydGllcy5wcm92aXNpb25pbmdTdGF0ZX1gLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJUaGUgcHJvdmlzaW9uaW5nIHN0YXRlIG9mIHRoZSBGb3J3YXJkaW5nIFJ1bGVcIixcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIC8vIE92ZXJyaWRlIGxvZ2ljYWwgSURzIHRvIG1hdGNoIG5hbWluZyBjb252ZW50aW9uXG4gICAgdGhpcy5pZE91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcImlkXCIpO1xuICAgIHRoaXMubmFtZU91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcIm5hbWVcIik7XG4gICAgdGhpcy5wcm92aXNpb25pbmdTdGF0ZU91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcInByb3Zpc2lvbmluZ19zdGF0ZVwiKTtcblxuICAgIC8vIEFwcGx5IGlnbm9yZSBjaGFuZ2VzIGlmIHNwZWNpZmllZFxuICAgIHRoaXMuX2FwcGx5SWdub3JlQ2hhbmdlcygpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUkVRVUlSRUQgQUJTVFJBQ1QgTUVUSE9EUyBGUk9NIEF6YXBpUmVzb3VyY2VcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgdGhlIHBhcmVudCByZXNvdXJjZSBJRCBmb3IgdGhlIEZvcndhcmRpbmcgUnVsZVxuICAgKiBGb3J3YXJkaW5nIFJ1bGVzIGFyZSBjaGlsZCByZXNvdXJjZXMgb2YgRE5TIEZvcndhcmRpbmcgUnVsZXNldHNcbiAgICovXG4gIHByb3RlY3RlZCByZXNvbHZlUGFyZW50SWQocHJvcHM6IGFueSk6IHN0cmluZyB7XG4gICAgY29uc3QgdHlwZWRQcm9wcyA9IHByb3BzIGFzIEZvcndhcmRpbmdSdWxlUHJvcHM7XG4gICAgcmV0dXJuIHR5cGVkUHJvcHMuZG5zRm9yd2FyZGluZ1J1bGVzZXRJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBkZWZhdWx0IEFQSSB2ZXJzaW9uIHRvIHVzZSB3aGVuIG5vIGV4cGxpY2l0IHZlcnNpb24gaXMgc3BlY2lmaWVkXG4gICAqL1xuICBwcm90ZWN0ZWQgZGVmYXVsdFZlcnNpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCIyMDIyLTA3LTAxXCI7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgQXp1cmUgcmVzb3VyY2UgdHlwZSBmb3IgRm9yd2FyZGluZyBSdWxlc1xuICAgKi9cbiAgcHJvdGVjdGVkIHJlc291cmNlVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBGT1JXQVJESU5HX1JVTEVfVFlQRTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBUEkgc2NoZW1hIGZvciB0aGUgcmVzb2x2ZWQgdmVyc2lvblxuICAgKi9cbiAgcHJvdGVjdGVkIGFwaVNjaGVtYSgpOiBBcGlTY2hlbWEge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVTY2hlbWEoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSByZXNvdXJjZSBib2R5IGZvciB0aGUgQXp1cmUgQVBJIGNhbGxcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVSZXNvdXJjZUJvZHkocHJvcHM6IGFueSk6IGFueSB7XG4gICAgY29uc3QgdHlwZWRQcm9wcyA9IHByb3BzIGFzIEZvcndhcmRpbmdSdWxlUHJvcHM7XG5cbiAgICBjb25zdCBwcm9wZXJ0aWVzOiBGb3J3YXJkaW5nUnVsZVByb3BlcnRpZXMgPSB7XG4gICAgICBkb21haW5OYW1lOiB0eXBlZFByb3BzLmRvbWFpbk5hbWUsXG4gICAgICB0YXJnZXREbnNTZXJ2ZXJzOiB0eXBlZFByb3BzLnRhcmdldERuc1NlcnZlcnMubWFwKChzZXJ2ZXIpID0+ICh7XG4gICAgICAgIGlwQWRkcmVzczogc2VydmVyLmlwQWRkcmVzcyxcbiAgICAgICAgcG9ydDogc2VydmVyLnBvcnQgPz8gNTMsXG4gICAgICB9KSksXG4gICAgICBmb3J3YXJkaW5nUnVsZVN0YXRlOiB0eXBlZFByb3BzLmZvcndhcmRpbmdSdWxlU3RhdGUsXG4gICAgICBtZXRhZGF0YTogdHlwZWRQcm9wcy5tZXRhZGF0YSxcbiAgICB9O1xuXG4gICAgY29uc3QgYm9keTogRm9yd2FyZGluZ1J1bGVCb2R5ID0ge1xuICAgICAgcHJvcGVydGllcyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGJvZHk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQVUJMSUMgTUVUSE9EUyBGT1IgRk9SV0FSRElORyBSVUxFIE9QRVJBVElPTlNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogR2V0IHRoZSBwcm92aXNpb25pbmcgc3RhdGUgb2YgdGhlIEZvcndhcmRpbmcgUnVsZVxuICAgKi9cbiAgcHVibGljIGdldCBwcm92aXNpb25pbmdTdGF0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLnByb3Zpc2lvbmluZ1N0YXRlfWA7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB0YXJnZXQgRE5TIHNlcnZlcnNcbiAgICovXG4gIHB1YmxpYyBnZXQgdGFyZ2V0RG5zU2VydmVycygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLnRhcmdldERuc1NlcnZlcnN9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIG1ldGFkYXRhXG4gICAqL1xuICBwdWJsaWMgZ2V0IG1ldGFkYXRhKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ub3V0cHV0LnByb3BlcnRpZXMubWV0YWRhdGF9YDtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFBSSVZBVEUgSEVMUEVSIE1FVEhPRFNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogQXBwbGllcyBpZ25vcmUgY2hhbmdlcyBsaWZlY3ljbGUgcnVsZXMgaWYgc3BlY2lmaWVkIGluIHByb3BzXG4gICAqL1xuICBwcml2YXRlIF9hcHBseUlnbm9yZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvcHMuaWdub3JlQ2hhbmdlcyAmJiB0aGlzLnByb3BzLmlnbm9yZUNoYW5nZXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5hZGRPdmVycmlkZShcImxpZmVjeWNsZVwiLCB7XG4gICAgICAgIGlnbm9yZV9jaGFuZ2VzOiB0aGlzLnByb3BzLmlnbm9yZUNoYW5nZXMsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ export * from "./dns-forwarding-ruleset-schemas";
2
+ export * from "./dns-forwarding-ruleset";
3
+ export * from "./forwarding-rule-schemas";
4
+ export * from "./forwarding-rule";
5
+ export * from "./virtual-network-link-schemas";
6
+ export * from "./virtual-network-link";
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./dns-forwarding-ruleset-schemas"), exports);
18
+ __exportStar(require("./dns-forwarding-ruleset"), exports);
19
+ __exportStar(require("./forwarding-rule-schemas"), exports);
20
+ __exportStar(require("./forwarding-rule"), exports);
21
+ __exportStar(require("./virtual-network-link-schemas"), exports);
22
+ __exportStar(require("./virtual-network-link"), exports);
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtZG5zZm9yd2FyZGluZ3J1bGVzZXQvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxtRUFBaUQ7QUFDakQsMkRBQXlDO0FBQ3pDLDREQUEwQztBQUMxQyxvREFBa0M7QUFDbEMsaUVBQStDO0FBQy9DLHlEQUF1QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2Rucy1mb3J3YXJkaW5nLXJ1bGVzZXQtc2NoZW1hc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZG5zLWZvcndhcmRpbmctcnVsZXNldFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZm9yd2FyZGluZy1ydWxlLXNjaGVtYXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2ZvcndhcmRpbmctcnVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdmlydHVhbC1uZXR3b3JrLWxpbmstc2NoZW1hc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vdmlydHVhbC1uZXR3b3JrLWxpbmtcIjtcbiJdfQ==
@@ -0,0 +1,24 @@
1
+ /**
2
+ * API schemas for Azure DNS Forwarding Ruleset Virtual Network Link across all supported versions
3
+ *
4
+ * This file defines the complete API schemas for Microsoft.Network/dnsForwardingRulesets/virtualNetworkLinks
5
+ * across all supported API versions. The schemas are used by the AzapiResource
6
+ * framework for validation, transformation, and version management.
7
+ */
8
+ import { ApiSchema, VersionConfig } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
9
+ /**
10
+ * API Schema for Virtual Network Link version 2022-07-01
11
+ */
12
+ export declare const VIRTUAL_NETWORK_LINK_SCHEMA_2022_07_01: ApiSchema;
13
+ /**
14
+ * Version configuration for Virtual Network Link 2022-07-01
15
+ */
16
+ export declare const VIRTUAL_NETWORK_LINK_VERSION_2022_07_01: VersionConfig;
17
+ /**
18
+ * All supported Virtual Network Link versions for registration
19
+ */
20
+ export declare const ALL_VIRTUAL_NETWORK_LINK_VERSIONS: VersionConfig[];
21
+ /**
22
+ * Resource type constant
23
+ */
24
+ export declare const VIRTUAL_NETWORK_LINK_TYPE = "Microsoft.Network/dnsForwardingRulesets/virtualNetworkLinks";