@microsoft/terraform-cdk-constructs 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +54846 -26661
- package/API.md +72091 -23784
- package/lib/azure-actiongroup/index.d.ts +0 -10
- package/lib/azure-actiongroup/index.js +1 -11
- package/lib/azure-actiongroup/lib/action-group.d.ts +0 -10
- package/lib/azure-actiongroup/lib/action-group.js +6 -32
- package/lib/azure-actiongroup/lib/index.d.ts +1 -4
- package/lib/azure-actiongroup/lib/index.js +2 -5
- package/lib/azure-activitylogalert/index.d.ts +0 -10
- package/lib/azure-activitylogalert/index.js +1 -11
- package/lib/azure-activitylogalert/lib/activity-log-alert.d.ts +0 -10
- package/lib/azure-activitylogalert/lib/activity-log-alert.js +6 -32
- package/lib/azure-activitylogalert/lib/index.d.ts +1 -4
- package/lib/azure-activitylogalert/lib/index.js +2 -5
- package/lib/azure-aks/index.d.ts +0 -8
- package/lib/azure-aks/index.js +1 -11
- package/lib/azure-aks/lib/aks-cluster.d.ts +4 -13
- package/lib/azure-aks/lib/aks-cluster.js +13 -36
- package/lib/azure-aks/lib/index.d.ts +1 -10
- package/lib/azure-aks/lib/index.js +2 -21
- package/lib/azure-diagnosticsettings/index.d.ts +0 -6
- package/lib/azure-diagnosticsettings/index.js +1 -7
- package/lib/azure-diagnosticsettings/lib/diagnostic-settings.d.ts +0 -10
- package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +6 -32
- package/lib/azure-diagnosticsettings/lib/index.d.ts +1 -7
- package/lib/azure-diagnosticsettings/lib/index.js +2 -8
- package/lib/azure-dnsforwardingruleset/index.d.ts +1 -0
- package/lib/azure-dnsforwardingruleset/index.js +18 -0
- package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset-schemas.d.ts +24 -0
- package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset-schemas.js +206 -0
- package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.d.ts +174 -0
- package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +214 -0
- package/lib/azure-dnsforwardingruleset/lib/forwarding-rule-schemas.d.ts +24 -0
- package/lib/azure-dnsforwardingruleset/lib/forwarding-rule-schemas.js +242 -0
- package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.d.ts +193 -0
- package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +193 -0
- package/lib/azure-dnsforwardingruleset/lib/index.d.ts +6 -0
- package/lib/azure-dnsforwardingruleset/lib/index.js +23 -0
- package/lib/azure-dnsforwardingruleset/lib/virtual-network-link-schemas.d.ts +24 -0
- package/lib/azure-dnsforwardingruleset/lib/virtual-network-link-schemas.js +199 -0
- package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.d.ts +160 -0
- package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +178 -0
- package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.d.ts +9 -0
- package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.js +133 -0
- package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.spec.d.ts +9 -0
- package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.spec.js +350 -0
- package/lib/azure-dnsforwardingruleset/test/forwarding-rule.spec.d.ts +9 -0
- package/lib/azure-dnsforwardingruleset/test/forwarding-rule.spec.js +397 -0
- package/lib/azure-dnsforwardingruleset/test/virtual-network-link.spec.d.ts +9 -0
- package/lib/azure-dnsforwardingruleset/test/virtual-network-link.spec.js +285 -0
- package/lib/azure-dnsresolver/index.d.ts +1 -0
- package/lib/azure-dnsresolver/index.js +18 -0
- package/lib/azure-dnsresolver/lib/dns-resolver-schemas.d.ts +24 -0
- package/lib/azure-dnsresolver/lib/dns-resolver-schemas.js +218 -0
- package/lib/azure-dnsresolver/lib/dns-resolver.d.ts +170 -0
- package/lib/azure-dnsresolver/lib/dns-resolver.js +236 -0
- package/lib/azure-dnsresolver/lib/inbound-endpoint-schemas.d.ts +24 -0
- package/lib/azure-dnsresolver/lib/inbound-endpoint-schemas.js +261 -0
- package/lib/azure-dnsresolver/lib/inbound-endpoint.d.ts +189 -0
- package/lib/azure-dnsresolver/lib/inbound-endpoint.js +243 -0
- package/lib/azure-dnsresolver/lib/index.d.ts +6 -0
- package/lib/azure-dnsresolver/lib/index.js +23 -0
- package/lib/azure-dnsresolver/lib/outbound-endpoint-schemas.d.ts +24 -0
- package/lib/azure-dnsresolver/lib/outbound-endpoint-schemas.js +231 -0
- package/lib/azure-dnsresolver/lib/outbound-endpoint.d.ts +175 -0
- package/lib/azure-dnsresolver/lib/outbound-endpoint.js +234 -0
- package/lib/azure-dnsresolver/test/dns-resolver.integ.d.ts +14 -0
- package/lib/azure-dnsresolver/test/dns-resolver.integ.js +117 -0
- package/lib/azure-dnsresolver/test/dns-resolver.spec.d.ts +9 -0
- package/lib/azure-dnsresolver/test/dns-resolver.spec.js +353 -0
- package/lib/azure-dnsresolver/test/inbound-endpoint.integ.d.ts +9 -0
- package/lib/azure-dnsresolver/test/inbound-endpoint.integ.js +151 -0
- package/lib/azure-dnsresolver/test/inbound-endpoint.spec.d.ts +9 -0
- package/lib/azure-dnsresolver/test/inbound-endpoint.spec.js +441 -0
- package/lib/azure-dnsresolver/test/outbound-endpoint.integ.d.ts +9 -0
- package/lib/azure-dnsresolver/test/outbound-endpoint.integ.js +149 -0
- package/lib/azure-dnsresolver/test/outbound-endpoint.spec.d.ts +9 -0
- package/lib/azure-dnsresolver/test/outbound-endpoint.spec.js +301 -0
- package/lib/azure-dnszone/index.d.ts +1 -0
- package/lib/azure-dnszone/index.js +18 -0
- package/lib/azure-dnszone/lib/dns-zone-schemas.d.ts +24 -0
- package/lib/azure-dnszone/lib/dns-zone-schemas.js +191 -0
- package/lib/azure-dnszone/lib/dns-zone.d.ts +182 -0
- package/lib/azure-dnszone/lib/dns-zone.js +228 -0
- package/lib/azure-dnszone/lib/index.d.ts +2 -0
- package/lib/azure-dnszone/lib/index.js +19 -0
- package/lib/azure-dnszone/test/dns-zone.integ.d.ts +9 -0
- package/lib/azure-dnszone/test/dns-zone.integ.js +85 -0
- package/lib/azure-dnszone/test/dns-zone.spec.d.ts +9 -0
- package/lib/azure-dnszone/test/dns-zone.spec.js +285 -0
- package/lib/azure-metricalert/index.d.ts +0 -10
- package/lib/azure-metricalert/index.js +1 -11
- package/lib/azure-metricalert/lib/index.d.ts +1 -4
- package/lib/azure-metricalert/lib/index.js +2 -5
- package/lib/azure-metricalert/lib/metric-alert.d.ts +0 -10
- package/lib/azure-metricalert/lib/metric-alert.js +6 -32
- package/lib/azure-networkinterface/index.d.ts +0 -3
- package/lib/azure-networkinterface/index.js +1 -4
- package/lib/azure-networkinterface/lib/index.d.ts +1 -5
- package/lib/azure-networkinterface/lib/index.js +2 -5
- package/lib/azure-networkinterface/lib/network-interface.d.ts +4 -9
- package/lib/azure-networkinterface/lib/network-interface.js +14 -29
- package/lib/azure-networkinterface/test/network-interface.integ.js +20 -6
- package/lib/azure-networksecuritygroup/index.d.ts +0 -5
- package/lib/azure-networksecuritygroup/index.js +1 -6
- package/lib/azure-networksecuritygroup/lib/index.d.ts +2 -5
- package/lib/azure-networksecuritygroup/lib/index.js +17 -14
- package/lib/azure-networksecuritygroup/lib/network-security-group.d.ts +4 -13
- package/lib/azure-networksecuritygroup/lib/network-security-group.js +14 -36
- package/lib/azure-policyassignment/index.d.ts +1 -0
- package/lib/azure-policyassignment/index.js +18 -0
- package/lib/azure-policyassignment/lib/index.d.ts +2 -0
- package/lib/azure-policyassignment/lib/index.js +19 -0
- package/lib/azure-policyassignment/lib/policy-assignment-schemas.d.ts +25 -0
- package/lib/azure-policyassignment/lib/policy-assignment-schemas.js +260 -0
- package/lib/azure-policyassignment/lib/policy-assignment.d.ts +342 -0
- package/lib/azure-policyassignment/lib/policy-assignment.js +228 -0
- package/lib/azure-policyassignment/test/policy-assignment.integ.d.ts +13 -0
- package/lib/azure-policyassignment/test/policy-assignment.integ.js +153 -0
- package/lib/azure-policyassignment/test/policy-assignment.spec.d.ts +9 -0
- package/lib/azure-policyassignment/test/policy-assignment.spec.js +651 -0
- package/lib/azure-policydefinition/index.d.ts +1 -0
- package/lib/azure-policydefinition/index.js +18 -0
- package/lib/azure-policydefinition/lib/index.d.ts +2 -0
- package/lib/azure-policydefinition/lib/index.js +19 -0
- package/lib/azure-policydefinition/lib/policy-definition-schemas.d.ts +25 -0
- package/lib/azure-policydefinition/lib/policy-definition-schemas.js +210 -0
- package/lib/azure-policydefinition/lib/policy-definition.d.ts +260 -0
- package/lib/azure-policydefinition/lib/policy-definition.js +199 -0
- package/lib/azure-policydefinition/test/policy-definition.integ.d.ts +9 -0
- package/lib/azure-policydefinition/test/policy-definition.integ.js +137 -0
- package/lib/azure-policydefinition/test/policy-definition.spec.d.ts +9 -0
- package/lib/azure-policydefinition/test/policy-definition.spec.js +596 -0
- package/lib/azure-privatednszone/index.d.ts +1 -0
- package/lib/azure-privatednszone/index.js +18 -0
- package/lib/azure-privatednszone/lib/index.d.ts +2 -0
- package/lib/azure-privatednszone/lib/index.js +19 -0
- package/lib/azure-privatednszone/lib/private-dns-zone-schemas.d.ts +24 -0
- package/lib/azure-privatednszone/lib/private-dns-zone-schemas.js +254 -0
- package/lib/azure-privatednszone/lib/private-dns-zone.d.ts +178 -0
- package/lib/azure-privatednszone/lib/private-dns-zone.js +272 -0
- package/lib/azure-privatednszone/test/private-dns-zone.integ.d.ts +9 -0
- package/lib/azure-privatednszone/test/private-dns-zone.integ.js +84 -0
- package/lib/azure-privatednszone/test/private-dns-zone.spec.d.ts +9 -0
- package/lib/azure-privatednszone/test/private-dns-zone.spec.js +341 -0
- package/lib/azure-privatednszonelink/index.d.ts +1 -0
- package/lib/azure-privatednszonelink/index.js +18 -0
- package/lib/azure-privatednszonelink/lib/index.d.ts +2 -0
- package/lib/azure-privatednszonelink/lib/index.js +19 -0
- package/lib/azure-privatednszonelink/lib/private-dns-zone-link-schemas.d.ts +24 -0
- package/lib/azure-privatednszonelink/lib/private-dns-zone-link-schemas.js +262 -0
- package/lib/azure-privatednszonelink/lib/private-dns-zone-link.d.ts +202 -0
- package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +250 -0
- package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.d.ts +9 -0
- package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.js +110 -0
- package/lib/azure-privatednszonelink/test/private-dns-zone-link.spec.d.ts +9 -0
- package/lib/azure-privatednszonelink/test/private-dns-zone-link.spec.js +465 -0
- package/lib/azure-publicipaddress/index.d.ts +0 -5
- package/lib/azure-publicipaddress/index.js +1 -6
- package/lib/azure-publicipaddress/lib/index.d.ts +2 -9
- package/lib/azure-publicipaddress/lib/index.js +17 -17
- package/lib/azure-publicipaddress/lib/public-ip-address.d.ts +4 -13
- package/lib/azure-publicipaddress/lib/public-ip-address.js +14 -36
- package/lib/azure-resourcegroup/index.d.ts +0 -37
- package/lib/azure-resourcegroup/index.js +1 -39
- package/lib/azure-resourcegroup/lib/index.d.ts +1 -44
- package/lib/azure-resourcegroup/lib/index.js +2 -43
- package/lib/azure-resourcegroup/lib/resource-group.d.ts +9 -23
- package/lib/azure-resourcegroup/lib/resource-group.js +23 -56
- package/lib/azure-resourcegroup/test/resource-group.spec.js +13 -19
- package/lib/azure-roleassignment/index.d.ts +1 -0
- package/lib/azure-roleassignment/index.js +18 -0
- package/lib/azure-roleassignment/lib/index.d.ts +2 -0
- package/lib/azure-roleassignment/lib/index.js +19 -0
- package/lib/azure-roleassignment/lib/role-assignment-schemas.d.ts +25 -0
- package/lib/azure-roleassignment/lib/role-assignment-schemas.js +238 -0
- package/lib/azure-roleassignment/lib/role-assignment.d.ts +294 -0
- package/lib/azure-roleassignment/lib/role-assignment.js +257 -0
- package/lib/azure-roleassignment/test/role-assignment.integ.d.ts +12 -0
- package/lib/azure-roleassignment/test/role-assignment.integ.js +101 -0
- package/lib/azure-roleassignment/test/role-assignment.spec.d.ts +9 -0
- package/lib/azure-roleassignment/test/role-assignment.spec.js +633 -0
- package/lib/azure-roledefinition/index.d.ts +1 -0
- package/lib/azure-roledefinition/index.js +18 -0
- package/lib/azure-roledefinition/lib/index.d.ts +2 -0
- package/lib/azure-roledefinition/lib/index.js +19 -0
- package/lib/azure-roledefinition/lib/role-definition-schemas.d.ts +25 -0
- package/lib/azure-roledefinition/lib/role-definition-schemas.js +195 -0
- package/lib/azure-roledefinition/lib/role-definition.d.ts +236 -0
- package/lib/azure-roledefinition/lib/role-definition.js +192 -0
- package/lib/azure-roledefinition/test/role-definition.integ.d.ts +12 -0
- package/lib/azure-roledefinition/test/role-definition.integ.js +142 -0
- package/lib/azure-roledefinition/test/role-definition.spec.d.ts +9 -0
- package/lib/azure-roledefinition/test/role-definition.spec.js +946 -0
- package/lib/azure-storageaccount/index.d.ts +0 -19
- package/lib/azure-storageaccount/index.js +1 -20
- package/lib/azure-storageaccount/lib/index.d.ts +1 -7
- package/lib/azure-storageaccount/lib/index.js +2 -8
- package/lib/azure-storageaccount/lib/storage-account.d.ts +4 -9
- package/lib/azure-storageaccount/lib/storage-account.js +15 -29
- package/lib/azure-subnet/index.d.ts +0 -3
- package/lib/azure-subnet/index.js +1 -4
- package/lib/azure-subnet/lib/index.d.ts +1 -4
- package/lib/azure-subnet/lib/index.js +2 -5
- package/lib/azure-subnet/lib/subnet.d.ts +3 -14
- package/lib/azure-subnet/lib/subnet.js +28 -47
- package/lib/azure-subnet/test/subnet.integ.js +19 -7
- package/lib/azure-subnet/test/subnet.spec.js +1 -2
- package/lib/azure-virtualmachine/index.d.ts +0 -6
- package/lib/azure-virtualmachine/index.js +1 -7
- package/lib/azure-virtualmachine/lib/index.d.ts +1 -10
- package/lib/azure-virtualmachine/lib/index.js +2 -21
- package/lib/azure-virtualmachine/lib/virtual-machine.d.ts +4 -13
- package/lib/azure-virtualmachine/lib/virtual-machine.js +15 -36
- package/lib/azure-virtualnetwork/index.d.ts +0 -9
- package/lib/azure-virtualnetwork/index.js +1 -11
- package/lib/azure-virtualnetwork/lib/index.d.ts +2 -9
- package/lib/azure-virtualnetwork/lib/index.js +17 -20
- package/lib/azure-virtualnetwork/lib/virtual-network.d.ts +4 -13
- package/lib/azure-virtualnetwork/lib/virtual-network.js +15 -36
- package/lib/azure-virtualnetworkmanager/index.d.ts +1 -0
- package/lib/azure-virtualnetworkmanager/index.js +18 -0
- package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration-schemas.d.ts +48 -0
- package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration-schemas.js +265 -0
- package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.d.ts +185 -0
- package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +206 -0
- package/lib/azure-virtualnetworkmanager/lib/index.d.ts +14 -0
- package/lib/azure-virtualnetworkmanager/lib/index.js +31 -0
- package/lib/azure-virtualnetworkmanager/lib/network-group-schemas.d.ts +32 -0
- package/lib/azure-virtualnetworkmanager/lib/network-group-schemas.js +189 -0
- package/lib/azure-virtualnetworkmanager/lib/network-group-static-member-schemas.d.ts +32 -0
- package/lib/azure-virtualnetworkmanager/lib/network-group-static-member-schemas.js +201 -0
- package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.d.ts +135 -0
- package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +163 -0
- package/lib/azure-virtualnetworkmanager/lib/network-group.d.ts +139 -0
- package/lib/azure-virtualnetworkmanager/lib/network-group.js +158 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration-schemas.d.ts +32 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration-schemas.js +182 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.d.ts +144 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +164 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection-schemas.d.ts +38 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection-schemas.js +206 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.d.ts +142 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +162 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-schemas.d.ts +39 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-schemas.js +359 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.d.ts +221 -0
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +204 -0
- package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager-schemas.d.ts +32 -0
- package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager-schemas.js +236 -0
- package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.d.ts +337 -0
- package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +283 -0
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.d.ts +25 -0
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.js +402 -0
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.spec.d.ts +9 -0
- package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.spec.js +1652 -0
- package/lib/azure-vmss/index.d.ts +0 -5
- package/lib/azure-vmss/index.js +1 -6
- package/lib/azure-vmss/lib/index.d.ts +0 -7
- package/lib/azure-vmss/lib/index.js +1 -21
- package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +5 -13
- package/lib/azure-vmss/lib/virtual-machine-scale-set.js +29 -53
- package/lib/core-azure/lib/azapi/azapi-resource-tags.spec.d.ts +10 -0
- package/lib/core-azure/lib/azapi/azapi-resource-tags.spec.js +218 -0
- package/lib/core-azure/lib/azapi/azapi-resource.d.ts +178 -26
- package/lib/core-azure/lib/azapi/azapi-resource.js +328 -90
- package/lib/core-azure/lib/azapi/azapi-resource.spec.js +2 -2
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +2 -2
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +5 -5
- package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +5 -3
- package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +5 -5
- package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +3 -3
- package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +3 -3
- package/lib/core-azure/lib/azapi/resource-schema-validator.d.ts +118 -0
- package/lib/core-azure/lib/azapi/resource-schema-validator.js +236 -0
- package/lib/core-azure/lib/azapi/resource-version-manager.d.ts +103 -0
- package/lib/core-azure/lib/azapi/resource-version-manager.js +168 -0
- package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +11 -6
- package/lib/core-azure/lib/index.d.ts +2 -2
- package/lib/core-azure/lib/index.js +5 -5
- package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
- package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
- package/lib/index.d.ts +19 -0
- package/lib/index.js +21 -2
- package/lib/testing/index.js +2 -2
- package/lib/testing/lib/cleanup.d.ts +1 -0
- package/lib/testing/lib/cleanup.js +19 -12
- package/lib/testing/lib/metadata.js +19 -16
- package/package.json +1 -1
- package/scripts/cleanup-test-resources.ts +22 -4
- package/scripts/generate-index.js +25 -8
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Azure Virtual Network Manager implementation using AzapiResource framework
|
|
3
|
+
*
|
|
4
|
+
* This class provides a unified implementation for Azure Virtual Network Managers that
|
|
5
|
+
* automatically handles version management, schema validation, and property
|
|
6
|
+
* transformation across all supported API versions.
|
|
7
|
+
*
|
|
8
|
+
* Supported API Versions:
|
|
9
|
+
* - 2023-11-01 (Maintenance)
|
|
10
|
+
* - 2024-05-01 (Active, Latest)
|
|
11
|
+
*
|
|
12
|
+
* Features:
|
|
13
|
+
* - Automatic latest version resolution when no version is specified
|
|
14
|
+
* - Explicit version pinning for stability requirements
|
|
15
|
+
* - Schema-driven validation and transformation
|
|
16
|
+
* - Full backward compatibility
|
|
17
|
+
* - JSII compliance for multi-language support
|
|
18
|
+
* - Convenience methods for creating child resources
|
|
19
|
+
*/
|
|
20
|
+
import * as cdktf from "cdktf";
|
|
21
|
+
import { Construct } from "constructs";
|
|
22
|
+
import { ConnectivityConfiguration } from "./connectivity-configuration";
|
|
23
|
+
import { ConnectivityGroupItem, Hub } from "./connectivity-configuration-schemas";
|
|
24
|
+
import { NetworkGroup } from "./network-group";
|
|
25
|
+
import { SecurityAdminConfiguration } from "./security-admin-configuration";
|
|
26
|
+
import { AzapiResource, AzapiResourceProps } from "../../core-azure/lib/azapi/azapi-resource";
|
|
27
|
+
import { ApiSchema } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
|
|
28
|
+
/**
|
|
29
|
+
* Scope configuration for Virtual Network Manager
|
|
30
|
+
*/
|
|
31
|
+
export interface NetworkManagerScopes {
|
|
32
|
+
/**
|
|
33
|
+
* Array of management group IDs that define the scope
|
|
34
|
+
* @example ["/providers/Microsoft.Management/managementGroups/mg1"]
|
|
35
|
+
*/
|
|
36
|
+
readonly managementGroups?: string[];
|
|
37
|
+
/**
|
|
38
|
+
* Array of subscription IDs that define the scope
|
|
39
|
+
* @example ["/subscriptions/00000000-0000-0000-0000-000000000000"]
|
|
40
|
+
*/
|
|
41
|
+
readonly subscriptions?: string[];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Properties for the Azure Virtual Network Manager
|
|
45
|
+
*
|
|
46
|
+
* Extends AzapiResourceProps with Virtual Network Manager specific properties
|
|
47
|
+
*/
|
|
48
|
+
export interface VirtualNetworkManagerProps extends AzapiResourceProps {
|
|
49
|
+
/**
|
|
50
|
+
* Resource ID of the resource group where the network manager will be created
|
|
51
|
+
* @example "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/my-rg"
|
|
52
|
+
*/
|
|
53
|
+
readonly resourceGroupId: string;
|
|
54
|
+
/**
|
|
55
|
+
* Defines the scope of management (management groups and/or subscriptions)
|
|
56
|
+
* At least one of managementGroups or subscriptions must be specified
|
|
57
|
+
*/
|
|
58
|
+
readonly networkManagerScopes: NetworkManagerScopes;
|
|
59
|
+
/**
|
|
60
|
+
* Array of features enabled for the network manager
|
|
61
|
+
* Valid values: "Connectivity", "SecurityAdmin", "Routing"
|
|
62
|
+
* @example ["Connectivity", "SecurityAdmin"]
|
|
63
|
+
*/
|
|
64
|
+
readonly networkManagerScopeAccesses: ("Connectivity" | "SecurityAdmin" | "Routing")[];
|
|
65
|
+
/**
|
|
66
|
+
* Optional description of the network manager
|
|
67
|
+
* @example "Central network management for production workloads"
|
|
68
|
+
*/
|
|
69
|
+
readonly description?: string;
|
|
70
|
+
/**
|
|
71
|
+
* The lifecycle rules to ignore changes
|
|
72
|
+
* Useful for properties that are externally managed
|
|
73
|
+
* @example ["tags"]
|
|
74
|
+
*/
|
|
75
|
+
readonly ignoreChanges?: string[];
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Properties for adding a NetworkGroup via the convenience method
|
|
79
|
+
* This interface excludes networkManagerId as it's automatically set
|
|
80
|
+
*/
|
|
81
|
+
export interface AddNetworkGroupProps extends AzapiResourceProps {
|
|
82
|
+
/**
|
|
83
|
+
* Optional description of the network group
|
|
84
|
+
* @example "Production virtual networks for region East US"
|
|
85
|
+
*/
|
|
86
|
+
readonly description?: string;
|
|
87
|
+
/**
|
|
88
|
+
* Type of members in this network group
|
|
89
|
+
* @default undefined (can contain both VirtualNetwork and Subnet members)
|
|
90
|
+
* @example "VirtualNetwork"
|
|
91
|
+
* @example "Subnet"
|
|
92
|
+
*/
|
|
93
|
+
readonly memberType?: "VirtualNetwork" | "Subnet";
|
|
94
|
+
/**
|
|
95
|
+
* The lifecycle rules to ignore changes
|
|
96
|
+
* @example ["tags"]
|
|
97
|
+
*/
|
|
98
|
+
readonly ignoreChanges?: string[];
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Properties for adding a ConnectivityConfiguration via the convenience method
|
|
102
|
+
* This interface excludes networkManagerId as it's automatically set
|
|
103
|
+
*/
|
|
104
|
+
export interface AddConnectivityConfigurationProps extends AzapiResourceProps {
|
|
105
|
+
/**
|
|
106
|
+
* Optional description of the connectivity configuration
|
|
107
|
+
* @example "Hub-and-spoke topology for production workloads"
|
|
108
|
+
*/
|
|
109
|
+
readonly description?: string;
|
|
110
|
+
/**
|
|
111
|
+
* Connectivity topology type
|
|
112
|
+
* - HubAndSpoke: Central hub with spoke VNets
|
|
113
|
+
* - Mesh: All VNets can communicate directly
|
|
114
|
+
* @example "HubAndSpoke"
|
|
115
|
+
* @example "Mesh"
|
|
116
|
+
*/
|
|
117
|
+
readonly connectivityTopology: "HubAndSpoke" | "Mesh";
|
|
118
|
+
/**
|
|
119
|
+
* Network groups to apply this configuration to
|
|
120
|
+
* Each item specifies a network group and how it should connect
|
|
121
|
+
*/
|
|
122
|
+
readonly appliesToGroups: ConnectivityGroupItem[];
|
|
123
|
+
/**
|
|
124
|
+
* Hub VNets for hub-and-spoke topology
|
|
125
|
+
* Required when connectivityTopology is "HubAndSpoke"
|
|
126
|
+
* @example [{ resourceId: "/subscriptions/.../virtualNetworks/hub-vnet", resourceType: "Microsoft.Network/virtualNetworks" }]
|
|
127
|
+
*/
|
|
128
|
+
readonly hubs?: Hub[];
|
|
129
|
+
/**
|
|
130
|
+
* Enable global mesh connectivity
|
|
131
|
+
* Allows mesh connectivity across regions
|
|
132
|
+
* @default false
|
|
133
|
+
*/
|
|
134
|
+
readonly isGlobal?: boolean;
|
|
135
|
+
/**
|
|
136
|
+
* Delete existing peerings when applying this configuration
|
|
137
|
+
* @default false
|
|
138
|
+
*/
|
|
139
|
+
readonly deleteExistingPeering?: boolean;
|
|
140
|
+
/**
|
|
141
|
+
* The lifecycle rules to ignore changes
|
|
142
|
+
* @example ["tags"]
|
|
143
|
+
*/
|
|
144
|
+
readonly ignoreChanges?: string[];
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Properties for adding a SecurityAdminConfiguration via the convenience method
|
|
148
|
+
* This interface excludes networkManagerId as it's automatically set
|
|
149
|
+
*/
|
|
150
|
+
export interface AddSecurityAdminConfigurationProps extends AzapiResourceProps {
|
|
151
|
+
/**
|
|
152
|
+
* Optional description of the security admin configuration
|
|
153
|
+
* @example "Organization-wide security rules for production workloads"
|
|
154
|
+
*/
|
|
155
|
+
readonly description?: string;
|
|
156
|
+
/**
|
|
157
|
+
* Services to apply the security admin configuration on
|
|
158
|
+
* @example ["None"]
|
|
159
|
+
* @example ["All"]
|
|
160
|
+
*/
|
|
161
|
+
readonly applyOnNetworkIntentPolicyBasedServices?: string[];
|
|
162
|
+
/**
|
|
163
|
+
* The lifecycle rules to ignore changes
|
|
164
|
+
* @example ["tags"]
|
|
165
|
+
*/
|
|
166
|
+
readonly ignoreChanges?: string[];
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Properties for Virtual Network Manager body
|
|
170
|
+
*/
|
|
171
|
+
export interface VirtualNetworkManagerProperties {
|
|
172
|
+
readonly networkManagerScopes: NetworkManagerScopes;
|
|
173
|
+
readonly networkManagerScopeAccesses: string[];
|
|
174
|
+
readonly description?: string;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* The resource body interface for Azure Virtual Network Manager API calls
|
|
178
|
+
*/
|
|
179
|
+
export interface VirtualNetworkManagerBody {
|
|
180
|
+
readonly location: string;
|
|
181
|
+
readonly tags?: {
|
|
182
|
+
[key: string]: string;
|
|
183
|
+
};
|
|
184
|
+
readonly properties: VirtualNetworkManagerProperties;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Azure Virtual Network Manager implementation
|
|
188
|
+
*
|
|
189
|
+
* This class provides a single, version-aware implementation that handles
|
|
190
|
+
* version resolution, schema validation, and property transformation while maintaining
|
|
191
|
+
* full backward compatibility.
|
|
192
|
+
*
|
|
193
|
+
* @example
|
|
194
|
+
* // Basic usage with automatic version resolution:
|
|
195
|
+
* const networkManager = new VirtualNetworkManager(this, "manager", {
|
|
196
|
+
* name: "my-network-manager",
|
|
197
|
+
* location: "eastus",
|
|
198
|
+
* resourceGroupId: resourceGroup.id,
|
|
199
|
+
* networkManagerScopes: {
|
|
200
|
+
* subscriptions: ["/subscriptions/00000000-0000-0000-0000-000000000000"]
|
|
201
|
+
* },
|
|
202
|
+
* networkManagerScopeAccesses: ["Connectivity", "SecurityAdmin"]
|
|
203
|
+
* });
|
|
204
|
+
*
|
|
205
|
+
* @example
|
|
206
|
+
* // Usage with explicit version pinning:
|
|
207
|
+
* const networkManager = new VirtualNetworkManager(this, "manager", {
|
|
208
|
+
* name: "my-network-manager",
|
|
209
|
+
* location: "eastus",
|
|
210
|
+
* resourceGroupId: resourceGroup.id,
|
|
211
|
+
* apiVersion: "2024-05-01",
|
|
212
|
+
* networkManagerScopes: {
|
|
213
|
+
* subscriptions: ["/subscriptions/00000000-0000-0000-0000-000000000000"]
|
|
214
|
+
* },
|
|
215
|
+
* networkManagerScopeAccesses: ["Connectivity", "SecurityAdmin"]
|
|
216
|
+
* });
|
|
217
|
+
*
|
|
218
|
+
* @stability stable
|
|
219
|
+
*/
|
|
220
|
+
export declare class VirtualNetworkManager extends AzapiResource {
|
|
221
|
+
/**
|
|
222
|
+
* The input properties for this Virtual Network Manager instance
|
|
223
|
+
*/
|
|
224
|
+
readonly props: VirtualNetworkManagerProps;
|
|
225
|
+
readonly idOutput: cdktf.TerraformOutput;
|
|
226
|
+
readonly nameOutput: cdktf.TerraformOutput;
|
|
227
|
+
readonly locationOutput: cdktf.TerraformOutput;
|
|
228
|
+
readonly tagsOutput: cdktf.TerraformOutput;
|
|
229
|
+
readonly scopeOutput: cdktf.TerraformOutput;
|
|
230
|
+
readonly scopeAccessesOutput: cdktf.TerraformOutput;
|
|
231
|
+
readonly resourceName: string;
|
|
232
|
+
/**
|
|
233
|
+
* Creates a new Azure Virtual Network Manager using the AzapiResource framework
|
|
234
|
+
*
|
|
235
|
+
* The constructor automatically handles version resolution, schema registration,
|
|
236
|
+
* validation, and resource creation. It maintains full backward compatibility
|
|
237
|
+
* with existing Virtual Network Manager implementations.
|
|
238
|
+
*
|
|
239
|
+
* @param scope - The scope in which to define this construct
|
|
240
|
+
* @param id - The unique identifier for this instance
|
|
241
|
+
* @param props - Configuration properties for the Virtual Network Manager
|
|
242
|
+
*/
|
|
243
|
+
constructor(scope: Construct, id: string, props: VirtualNetworkManagerProps);
|
|
244
|
+
/**
|
|
245
|
+
* Resolves the parent resource ID for the Network Manager
|
|
246
|
+
* Network Managers are scoped to resource groups
|
|
247
|
+
*/
|
|
248
|
+
protected resolveParentId(props: any): string;
|
|
249
|
+
/**
|
|
250
|
+
* Gets the default API version to use when no explicit version is specified
|
|
251
|
+
* Returns the most recent stable version as the default
|
|
252
|
+
*/
|
|
253
|
+
protected defaultVersion(): string;
|
|
254
|
+
/**
|
|
255
|
+
* Gets the Azure resource type for Virtual Network Managers
|
|
256
|
+
*/
|
|
257
|
+
protected resourceType(): string;
|
|
258
|
+
/**
|
|
259
|
+
* Gets the API schema for the resolved version
|
|
260
|
+
* Uses the framework's schema resolution to get the appropriate schema
|
|
261
|
+
*/
|
|
262
|
+
protected apiSchema(): ApiSchema;
|
|
263
|
+
/**
|
|
264
|
+
* Creates the resource body for the Azure API call
|
|
265
|
+
* Transforms the input properties into the JSON format expected by Azure REST API
|
|
266
|
+
*/
|
|
267
|
+
protected createResourceBody(props: any): any;
|
|
268
|
+
/**
|
|
269
|
+
* Add a tag to the Virtual Network Manager
|
|
270
|
+
* Note: This modifies the construct props but requires a new deployment to take effect
|
|
271
|
+
*/
|
|
272
|
+
addTag(key: string, value: string): void;
|
|
273
|
+
/**
|
|
274
|
+
* Remove a tag from the Virtual Network Manager
|
|
275
|
+
* Note: This modifies the construct props but requires a new deployment to take effect
|
|
276
|
+
*/
|
|
277
|
+
removeTag(key: string): void;
|
|
278
|
+
/**
|
|
279
|
+
* Convenience method to create a NetworkGroup
|
|
280
|
+
*
|
|
281
|
+
* This is a helper method that creates a NetworkGroup with the networkManagerId
|
|
282
|
+
* automatically set to this Network Manager's ID. You can also create NetworkGroups
|
|
283
|
+
* directly using: new NetworkGroup(scope, id, { networkManagerId: vnm.id, ...props })
|
|
284
|
+
*
|
|
285
|
+
* @param id - The unique identifier for the network group construct
|
|
286
|
+
* @param props - NetworkGroup properties (networkManagerId will be set automatically)
|
|
287
|
+
* @returns The created NetworkGroup instance
|
|
288
|
+
*
|
|
289
|
+
* @example
|
|
290
|
+
* const prodGroup = networkManager.addNetworkGroup("prod-group", {
|
|
291
|
+
* name: "production-vnets",
|
|
292
|
+
* description: "Production virtual networks",
|
|
293
|
+
* memberType: "VirtualNetwork"
|
|
294
|
+
* });
|
|
295
|
+
*/
|
|
296
|
+
addNetworkGroup(id: string, props: AddNetworkGroupProps): NetworkGroup;
|
|
297
|
+
/**
|
|
298
|
+
* Convenience method to create a ConnectivityConfiguration
|
|
299
|
+
*
|
|
300
|
+
* This is a helper method that creates a ConnectivityConfiguration with the
|
|
301
|
+
* networkManagerId automatically set to this Network Manager's ID.
|
|
302
|
+
*
|
|
303
|
+
* @param id - The unique identifier for the connectivity configuration construct
|
|
304
|
+
* @param props - ConnectivityConfiguration properties (networkManagerId will be set automatically)
|
|
305
|
+
* @returns The created ConnectivityConfiguration instance
|
|
306
|
+
*
|
|
307
|
+
* @example
|
|
308
|
+
* const hubSpoke = networkManager.addConnectivityConfiguration("hub-spoke", {
|
|
309
|
+
* name: "production-hub-spoke",
|
|
310
|
+
* connectivityTopology: "HubAndSpoke",
|
|
311
|
+
* appliesToGroups: [{ networkGroupId: prodGroup.id }],
|
|
312
|
+
* hubs: [{ resourceId: hubVnet.id, resourceType: "Microsoft.Network/virtualNetworks" }]
|
|
313
|
+
* });
|
|
314
|
+
*/
|
|
315
|
+
addConnectivityConfiguration(id: string, props: AddConnectivityConfigurationProps): ConnectivityConfiguration;
|
|
316
|
+
/**
|
|
317
|
+
* Convenience method to create a SecurityAdminConfiguration
|
|
318
|
+
*
|
|
319
|
+
* This is a helper method that creates a SecurityAdminConfiguration with the
|
|
320
|
+
* networkManagerId automatically set to this Network Manager's ID.
|
|
321
|
+
*
|
|
322
|
+
* @param id - The unique identifier for the security admin configuration construct
|
|
323
|
+
* @param props - SecurityAdminConfiguration properties (networkManagerId will be set automatically)
|
|
324
|
+
* @returns The created SecurityAdminConfiguration instance
|
|
325
|
+
*
|
|
326
|
+
* @example
|
|
327
|
+
* const securityConfig = networkManager.addSecurityAdminConfiguration("security", {
|
|
328
|
+
* name: "production-security",
|
|
329
|
+
* description: "High-priority security rules for production"
|
|
330
|
+
* });
|
|
331
|
+
*/
|
|
332
|
+
addSecurityAdminConfiguration(id: string, props: AddSecurityAdminConfigurationProps): SecurityAdminConfiguration;
|
|
333
|
+
/**
|
|
334
|
+
* Applies ignore changes lifecycle rules if specified in props
|
|
335
|
+
*/
|
|
336
|
+
private _applyIgnoreChanges;
|
|
337
|
+
}
|