@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.
- package/.jsii +54630 -26185
- 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 +349 -0
- package/lib/azure-policyassignment/lib/policy-assignment.js +237 -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 +281 -0
- package/lib/azure-policydefinition/lib/policy-definition.js +236 -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 +806 -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 +206 -26
- package/lib/core-azure/lib/azapi/azapi-resource.js +379 -91
- 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,163 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.NetworkGroupStaticMember = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
/**
|
|
7
|
+
* Azure Virtual Network Manager Network Group Static Member implementation using AzapiResource framework
|
|
8
|
+
*
|
|
9
|
+
* This class provides a unified implementation for explicitly adding virtual networks or subnets
|
|
10
|
+
* to a network group. Static members allow precise control over which resources receive
|
|
11
|
+
* configurations applied to the network group.
|
|
12
|
+
*
|
|
13
|
+
* Supported API Versions:
|
|
14
|
+
* - 2023-11-01 (Maintenance)
|
|
15
|
+
* - 2024-05-01 (Active, Latest)
|
|
16
|
+
*
|
|
17
|
+
* Features:
|
|
18
|
+
* - Automatic latest version resolution when no version is specified
|
|
19
|
+
* - Explicit version pinning for stability requirements
|
|
20
|
+
* - Schema-driven validation and transformation
|
|
21
|
+
* - Full backward compatibility
|
|
22
|
+
* - JSII compliance for multi-language support
|
|
23
|
+
*/
|
|
24
|
+
const cdktf = require("cdktf");
|
|
25
|
+
const network_group_static_member_schemas_1 = require("./network-group-static-member-schemas");
|
|
26
|
+
const azapi_resource_1 = require("../../core-azure/lib/azapi/azapi-resource");
|
|
27
|
+
/**
|
|
28
|
+
* Azure Virtual Network Manager Network Group Static Member implementation
|
|
29
|
+
*
|
|
30
|
+
* Static members explicitly add virtual networks or subnets to a network group,
|
|
31
|
+
* providing precise control over which resources receive configurations applied
|
|
32
|
+
* to the network group. This is in contrast to dynamic membership via Azure Policy.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* // Add a VNet to a network group:
|
|
36
|
+
* const vnetMember = new NetworkGroupStaticMember(this, "vnet-member", {
|
|
37
|
+
* name: "prod-vnet1-member",
|
|
38
|
+
* networkGroupId: productionGroup.id,
|
|
39
|
+
* resourceId: vnet.id
|
|
40
|
+
* });
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* // Add a subnet to a network group:
|
|
44
|
+
* const subnetMember = new NetworkGroupStaticMember(this, "subnet-member", {
|
|
45
|
+
* name: "prod-subnet1-member",
|
|
46
|
+
* networkGroupId: productionGroup.id,
|
|
47
|
+
* resourceId: subnet.id,
|
|
48
|
+
* apiVersion: "2024-05-01"
|
|
49
|
+
* });
|
|
50
|
+
*
|
|
51
|
+
* @stability stable
|
|
52
|
+
*/
|
|
53
|
+
class NetworkGroupStaticMember extends azapi_resource_1.AzapiResource {
|
|
54
|
+
/**
|
|
55
|
+
* Creates a new Azure Virtual Network Manager Network Group Static Member using the AzapiResource framework
|
|
56
|
+
*
|
|
57
|
+
* @param scope - The scope in which to define this construct
|
|
58
|
+
* @param id - The unique identifier for this instance
|
|
59
|
+
* @param props - Configuration properties for the Static Member
|
|
60
|
+
*/
|
|
61
|
+
constructor(scope, id, props) {
|
|
62
|
+
super(scope, id, props);
|
|
63
|
+
this.props = props;
|
|
64
|
+
// Extract properties from the AZAPI resource outputs using Terraform interpolation
|
|
65
|
+
this.resourceName = `\${${this.terraformResource.fqn}.name}`;
|
|
66
|
+
// Create Terraform outputs for easy access and referencing from other resources
|
|
67
|
+
this.idOutput = new cdktf.TerraformOutput(this, "id", {
|
|
68
|
+
value: this.id,
|
|
69
|
+
description: "The ID of the Static Member",
|
|
70
|
+
});
|
|
71
|
+
this.nameOutput = new cdktf.TerraformOutput(this, "name", {
|
|
72
|
+
value: this.resourceName,
|
|
73
|
+
description: "The name of the Static Member",
|
|
74
|
+
});
|
|
75
|
+
// Use input resourceId since Azure API doesn't return it in the response
|
|
76
|
+
this.resourceIdOutput = new cdktf.TerraformOutput(this, "resourceId", {
|
|
77
|
+
value: props.resourceId,
|
|
78
|
+
description: "The resource ID of the member VNet or Subnet",
|
|
79
|
+
});
|
|
80
|
+
// Override logical IDs to match naming convention
|
|
81
|
+
this.idOutput.overrideLogicalId("id");
|
|
82
|
+
this.nameOutput.overrideLogicalId("name");
|
|
83
|
+
this.resourceIdOutput.overrideLogicalId("resourceId");
|
|
84
|
+
// Apply ignore changes if specified
|
|
85
|
+
this._applyIgnoreChanges();
|
|
86
|
+
}
|
|
87
|
+
// =============================================================================
|
|
88
|
+
// REQUIRED ABSTRACT METHODS FROM AzapiResource
|
|
89
|
+
// =============================================================================
|
|
90
|
+
/**
|
|
91
|
+
* Resolves the parent resource ID for the Static Member
|
|
92
|
+
* Static Members are scoped to Network Groups
|
|
93
|
+
*/
|
|
94
|
+
resolveParentId(props) {
|
|
95
|
+
const typedProps = props;
|
|
96
|
+
return typedProps.networkGroupId;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Gets the default API version to use when no explicit version is specified
|
|
100
|
+
*/
|
|
101
|
+
defaultVersion() {
|
|
102
|
+
return "2024-05-01";
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Gets the Azure resource type for Static Members
|
|
106
|
+
*/
|
|
107
|
+
resourceType() {
|
|
108
|
+
return network_group_static_member_schemas_1.STATIC_MEMBER_TYPE;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Gets the API schema for the resolved version
|
|
112
|
+
*/
|
|
113
|
+
apiSchema() {
|
|
114
|
+
return this.resolveSchema();
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Creates the resource body for the Azure API call
|
|
118
|
+
*/
|
|
119
|
+
createResourceBody(props) {
|
|
120
|
+
const typedProps = props;
|
|
121
|
+
return {
|
|
122
|
+
properties: {
|
|
123
|
+
resourceId: typedProps.resourceId,
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
// =============================================================================
|
|
128
|
+
// PUBLIC METHODS FOR STATIC MEMBER OPERATIONS
|
|
129
|
+
// =============================================================================
|
|
130
|
+
/**
|
|
131
|
+
* Get the resource ID of the member VNet or Subnet
|
|
132
|
+
* Returns the input resourceId since Azure API doesn't return it in the response
|
|
133
|
+
*/
|
|
134
|
+
get memberResourceId() {
|
|
135
|
+
return this.props.resourceId;
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Get the region of the member resource
|
|
139
|
+
*/
|
|
140
|
+
get region() {
|
|
141
|
+
return `\${${this.terraformResource.fqn}.output.properties.region}`;
|
|
142
|
+
}
|
|
143
|
+
// =============================================================================
|
|
144
|
+
// PRIVATE HELPER METHODS
|
|
145
|
+
// =============================================================================
|
|
146
|
+
/**
|
|
147
|
+
* Applies ignore changes lifecycle rules if specified in props
|
|
148
|
+
*/
|
|
149
|
+
_applyIgnoreChanges() {
|
|
150
|
+
if (this.props.ignoreChanges && this.props.ignoreChanges.length > 0) {
|
|
151
|
+
this.terraformResource.addOverride("lifecycle", {
|
|
152
|
+
ignore_changes: this.props.ignoreChanges,
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
exports.NetworkGroupStaticMember = NetworkGroupStaticMember;
|
|
158
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
159
|
+
NetworkGroupStaticMember[_a] = { fqn: "@microsoft/terraform-cdk-constructs.NetworkGroupStaticMember", version: "1.3.1" };
|
|
160
|
+
(() => {
|
|
161
|
+
azapi_resource_1.AzapiResource.registerSchemas(network_group_static_member_schemas_1.STATIC_MEMBER_TYPE, network_group_static_member_schemas_1.ALL_STATIC_MEMBER_VERSIONS);
|
|
162
|
+
})();
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1ncm91cC1zdGF0aWMtbWVtYmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLXZpcnR1YWxuZXR3b3JrbWFuYWdlci9saWIvbmV0d29yay1ncm91cC1zdGF0aWMtbWVtYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBRUgsK0JBQStCO0FBRS9CLCtGQUcrQztBQUMvQyw4RUFHbUQ7QUEyQ25EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUJHO0FBQ0gsTUFBYSx3QkFBeUIsU0FBUSw4QkFBYTtJQXFCekQ7Ozs7OztPQU1HO0lBQ0gsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBb0M7UUFFcEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsbUZBQW1GO1FBQ25GLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxRQUFRLENBQUM7UUFFN0QsZ0ZBQWdGO1FBQ2hGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUU7WUFDcEQsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ2QsV0FBVyxFQUFFLDZCQUE2QjtTQUMzQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ3hELEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWTtZQUN4QixXQUFXLEVBQUUsK0JBQStCO1NBQzdDLENBQUMsQ0FBQztRQUVILHlFQUF5RTtRQUN6RSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUU7WUFDcEUsS0FBSyxFQUFFLEtBQUssQ0FBQyxVQUFVO1lBQ3ZCLFdBQVcsRUFBRSw4Q0FBOEM7U0FDNUQsQ0FBQyxDQUFDO1FBRUgsa0RBQWtEO1FBQ2xELElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFdEQsb0NBQW9DO1FBQ3BDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxnRkFBZ0Y7SUFDaEYsK0NBQStDO0lBQy9DLGdGQUFnRjtJQUVoRjs7O09BR0c7SUFDTyxlQUFlLENBQUMsS0FBVTtRQUNsQyxNQUFNLFVBQVUsR0FBRyxLQUFzQyxDQUFDO1FBQzFELE9BQU8sVUFBVSxDQUFDLGNBQWMsQ0FBQztJQUNuQyxDQUFDO0lBRUQ7O09BRUc7SUFDTyxjQUFjO1FBQ3RCLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7T0FFRztJQUNPLFlBQVk7UUFDcEIsT0FBTyx3REFBa0IsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDTyxTQUFTO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRDs7T0FFRztJQUNPLGtCQUFrQixDQUFDLEtBQVU7UUFDckMsTUFBTSxVQUFVLEdBQUcsS0FBc0MsQ0FBQztRQUMxRCxPQUFPO1lBQ0wsVUFBVSxFQUFFO2dCQUNWLFVBQVUsRUFBRSxVQUFVLENBQUMsVUFBVTthQUNsQztTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsZ0ZBQWdGO0lBQ2hGLDhDQUE4QztJQUM5QyxnRkFBZ0Y7SUFFaEY7OztPQUdHO0lBQ0gsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLE1BQU07UUFDZixPQUFPLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsNEJBQTRCLENBQUM7SUFDdEUsQ0FBQztJQUVELGdGQUFnRjtJQUNoRix5QkFBeUI7SUFDekIsZ0ZBQWdGO0lBRWhGOztPQUVHO0lBQ0ssbUJBQW1CO1FBQ3pCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3BFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFO2dCQUM5QyxjQUFjLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhO2FBQ3pDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOztBQWhKSCw0REFpSkM7OztBQWhKQztJQUNFLDhCQUFhLENBQUMsZUFBZSxDQUMzQix3REFBa0IsRUFDbEIsZ0VBQTBCLENBQzNCLENBQUM7QUFDSixDQUFDLEdBQUEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQXp1cmUgVmlydHVhbCBOZXR3b3JrIE1hbmFnZXIgTmV0d29yayBHcm91cCBTdGF0aWMgTWVtYmVyIGltcGxlbWVudGF0aW9uIHVzaW5nIEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gKlxuICogVGhpcyBjbGFzcyBwcm92aWRlcyBhIHVuaWZpZWQgaW1wbGVtZW50YXRpb24gZm9yIGV4cGxpY2l0bHkgYWRkaW5nIHZpcnR1YWwgbmV0d29ya3Mgb3Igc3VibmV0c1xuICogdG8gYSBuZXR3b3JrIGdyb3VwLiBTdGF0aWMgbWVtYmVycyBhbGxvdyBwcmVjaXNlIGNvbnRyb2wgb3ZlciB3aGljaCByZXNvdXJjZXMgcmVjZWl2ZVxuICogY29uZmlndXJhdGlvbnMgYXBwbGllZCB0byB0aGUgbmV0d29yayBncm91cC5cbiAqXG4gKiBTdXBwb3J0ZWQgQVBJIFZlcnNpb25zOlxuICogLSAyMDIzLTExLTAxIChNYWludGVuYW5jZSlcbiAqIC0gMjAyNC0wNS0wMSAoQWN0aXZlLCBMYXRlc3QpXG4gKlxuICogRmVhdHVyZXM6XG4gKiAtIEF1dG9tYXRpYyBsYXRlc3QgdmVyc2lvbiByZXNvbHV0aW9uIHdoZW4gbm8gdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAqIC0gRXhwbGljaXQgdmVyc2lvbiBwaW5uaW5nIGZvciBzdGFiaWxpdHkgcmVxdWlyZW1lbnRzXG4gKiAtIFNjaGVtYS1kcml2ZW4gdmFsaWRhdGlvbiBhbmQgdHJhbnNmb3JtYXRpb25cbiAqIC0gRnVsbCBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XG4gKiAtIEpTSUkgY29tcGxpYW5jZSBmb3IgbXVsdGktbGFuZ3VhZ2Ugc3VwcG9ydFxuICovXG5cbmltcG9ydCAqIGFzIGNka3RmIGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIEFMTF9TVEFUSUNfTUVNQkVSX1ZFUlNJT05TLFxuICBTVEFUSUNfTUVNQkVSX1RZUEUsXG59IGZyb20gXCIuL25ldHdvcmstZ3JvdXAtc3RhdGljLW1lbWJlci1zY2hlbWFzXCI7XG5pbXBvcnQge1xuICBBemFwaVJlc291cmNlLFxuICBBemFwaVJlc291cmNlUHJvcHMsXG59IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi9hemFwaS9hemFwaS1yZXNvdXJjZVwiO1xuaW1wb3J0IHsgQXBpU2NoZW1hIH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL3ZlcnNpb24tbWFuYWdlci9pbnRlcmZhY2VzL3ZlcnNpb24taW50ZXJmYWNlc1wiO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHRoZSBBenVyZSBWaXJ0dWFsIE5ldHdvcmsgTWFuYWdlciBOZXR3b3JrIEdyb3VwIFN0YXRpYyBNZW1iZXJcbiAqXG4gKiBFeHRlbmRzIEF6YXBpUmVzb3VyY2VQcm9wcyB3aXRoIFN0YXRpYyBNZW1iZXIgc3BlY2lmaWMgcHJvcGVydGllc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtHcm91cFN0YXRpY01lbWJlclByb3BzIGV4dGVuZHMgQXphcGlSZXNvdXJjZVByb3BzIHtcbiAgLyoqXG4gICAqIFJlc291cmNlIElEIG9mIHRoZSBwYXJlbnQgTmV0d29yayBHcm91cFxuICAgKiBAZXhhbXBsZSBcIi9zdWJzY3JpcHRpb25zLzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvbmV0d29ya01hbmFnZXJzL3ZubS9uZXR3b3JrR3JvdXBzL3Byb2QtZ3JvdXBcIlxuICAgKi9cbiAgcmVhZG9ubHkgbmV0d29ya0dyb3VwSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogRnVsbCByZXNvdXJjZSBJRCBvZiB0aGUgVk5ldCBvciBTdWJuZXQgdG8gYWRkIHRvIHRoZSBncm91cFxuICAgKiBAZXhhbXBsZSBcIi9zdWJzY3JpcHRpb25zLzAwMDAwMDAwLTAwMDAtMDAwMC0wMDAwLTAwMDAwMDAwMDAwMC9yZXNvdXJjZUdyb3Vwcy9yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvdmlydHVhbE5ldHdvcmtzL3ZuZXQxXCJcbiAgICogQGV4YW1wbGUgXCIvc3Vic2NyaXB0aW9ucy8wMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAvcmVzb3VyY2VHcm91cHMvcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3Jrcy92bmV0MS9zdWJuZXRzL3N1Ym5ldDFcIlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlmZWN5Y2xlIHJ1bGVzIHRvIGlnbm9yZSBjaGFuZ2VzXG4gICAqIEBleGFtcGxlIFtcInRhZ3NcIl1cbiAgICovXG4gIHJlYWRvbmx5IGlnbm9yZUNoYW5nZXM/OiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBTdGF0aWMgTWVtYmVyIGJvZHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrR3JvdXBTdGF0aWNNZW1iZXJQcm9wZXJ0aWVzIHtcbiAgcmVhZG9ubHkgcmVzb3VyY2VJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSByZXNvdXJjZSBib2R5IGludGVyZmFjZSBmb3IgQXp1cmUgU3RhdGljIE1lbWJlciBBUEkgY2FsbHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrR3JvdXBTdGF0aWNNZW1iZXJCb2R5IHtcbiAgcmVhZG9ubHkgcHJvcGVydGllczogTmV0d29ya0dyb3VwU3RhdGljTWVtYmVyUHJvcGVydGllcztcbn1cblxuLyoqXG4gKiBBenVyZSBWaXJ0dWFsIE5ldHdvcmsgTWFuYWdlciBOZXR3b3JrIEdyb3VwIFN0YXRpYyBNZW1iZXIgaW1wbGVtZW50YXRpb25cbiAqXG4gKiBTdGF0aWMgbWVtYmVycyBleHBsaWNpdGx5IGFkZCB2aXJ0dWFsIG5ldHdvcmtzIG9yIHN1Ym5ldHMgdG8gYSBuZXR3b3JrIGdyb3VwLFxuICogcHJvdmlkaW5nIHByZWNpc2UgY29udHJvbCBvdmVyIHdoaWNoIHJlc291cmNlcyByZWNlaXZlIGNvbmZpZ3VyYXRpb25zIGFwcGxpZWRcbiAqIHRvIHRoZSBuZXR3b3JrIGdyb3VwLiBUaGlzIGlzIGluIGNvbnRyYXN0IHRvIGR5bmFtaWMgbWVtYmVyc2hpcCB2aWEgQXp1cmUgUG9saWN5LlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBZGQgYSBWTmV0IHRvIGEgbmV0d29yayBncm91cDpcbiAqIGNvbnN0IHZuZXRNZW1iZXIgPSBuZXcgTmV0d29ya0dyb3VwU3RhdGljTWVtYmVyKHRoaXMsIFwidm5ldC1tZW1iZXJcIiwge1xuICogICBuYW1lOiBcInByb2Qtdm5ldDEtbWVtYmVyXCIsXG4gKiAgIG5ldHdvcmtHcm91cElkOiBwcm9kdWN0aW9uR3JvdXAuaWQsXG4gKiAgIHJlc291cmNlSWQ6IHZuZXQuaWRcbiAqIH0pO1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBZGQgYSBzdWJuZXQgdG8gYSBuZXR3b3JrIGdyb3VwOlxuICogY29uc3Qgc3VibmV0TWVtYmVyID0gbmV3IE5ldHdvcmtHcm91cFN0YXRpY01lbWJlcih0aGlzLCBcInN1Ym5ldC1tZW1iZXJcIiwge1xuICogICBuYW1lOiBcInByb2Qtc3VibmV0MS1tZW1iZXJcIixcbiAqICAgbmV0d29ya0dyb3VwSWQ6IHByb2R1Y3Rpb25Hcm91cC5pZCxcbiAqICAgcmVzb3VyY2VJZDogc3VibmV0LmlkLFxuICogICBhcGlWZXJzaW9uOiBcIjIwMjQtMDUtMDFcIlxuICogfSk7XG4gKlxuICogQHN0YWJpbGl0eSBzdGFibGVcbiAqL1xuZXhwb3J0IGNsYXNzIE5ldHdvcmtHcm91cFN0YXRpY01lbWJlciBleHRlbmRzIEF6YXBpUmVzb3VyY2Uge1xuICBzdGF0aWMge1xuICAgIEF6YXBpUmVzb3VyY2UucmVnaXN0ZXJTY2hlbWFzKFxuICAgICAgU1RBVElDX01FTUJFUl9UWVBFLFxuICAgICAgQUxMX1NUQVRJQ19NRU1CRVJfVkVSU0lPTlMsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgaW5wdXQgcHJvcGVydGllcyBmb3IgdGhpcyBTdGF0aWMgTWVtYmVyIGluc3RhbmNlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvcHM6IE5ldHdvcmtHcm91cFN0YXRpY01lbWJlclByb3BzO1xuXG4gIC8vIE91dHB1dCBwcm9wZXJ0aWVzIGZvciBlYXN5IGFjY2VzcyBhbmQgcmVmZXJlbmNpbmdcbiAgcHVibGljIHJlYWRvbmx5IGlkT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZUlkT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG5cbiAgLy8gUHVibGljIHByb3BlcnRpZXNcbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEF6dXJlIFZpcnR1YWwgTmV0d29yayBNYW5hZ2VyIE5ldHdvcmsgR3JvdXAgU3RhdGljIE1lbWJlciB1c2luZyB0aGUgQXphcGlSZXNvdXJjZSBmcmFtZXdvcmtcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gVGhlIHNjb3BlIGluIHdoaWNoIHRvIGRlZmluZSB0aGlzIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgaW5zdGFuY2VcbiAgICogQHBhcmFtIHByb3BzIC0gQ29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGZvciB0aGUgU3RhdGljIE1lbWJlclxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBOZXR3b3JrR3JvdXBTdGF0aWNNZW1iZXJQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG5cbiAgICAvLyBFeHRyYWN0IHByb3BlcnRpZXMgZnJvbSB0aGUgQVpBUEkgcmVzb3VyY2Ugb3V0cHV0cyB1c2luZyBUZXJyYWZvcm0gaW50ZXJwb2xhdGlvblxuICAgIHRoaXMucmVzb3VyY2VOYW1lID0gYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5uYW1lfWA7XG5cbiAgICAvLyBDcmVhdGUgVGVycmFmb3JtIG91dHB1dHMgZm9yIGVhc3kgYWNjZXNzIGFuZCByZWZlcmVuY2luZyBmcm9tIG90aGVyIHJlc291cmNlc1xuICAgIHRoaXMuaWRPdXRwdXQgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwiaWRcIiwge1xuICAgICAgdmFsdWU6IHRoaXMuaWQsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgSUQgb2YgdGhlIFN0YXRpYyBNZW1iZXJcIixcbiAgICB9KTtcblxuICAgIHRoaXMubmFtZU91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJuYW1lXCIsIHtcbiAgICAgIHZhbHVlOiB0aGlzLnJlc291cmNlTmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBuYW1lIG9mIHRoZSBTdGF0aWMgTWVtYmVyXCIsXG4gICAgfSk7XG5cbiAgICAvLyBVc2UgaW5wdXQgcmVzb3VyY2VJZCBzaW5jZSBBenVyZSBBUEkgZG9lc24ndCByZXR1cm4gaXQgaW4gdGhlIHJlc3BvbnNlXG4gICAgdGhpcy5yZXNvdXJjZUlkT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcInJlc291cmNlSWRcIiwge1xuICAgICAgdmFsdWU6IHByb3BzLnJlc291cmNlSWQsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgcmVzb3VyY2UgSUQgb2YgdGhlIG1lbWJlciBWTmV0IG9yIFN1Ym5ldFwiLFxuICAgIH0pO1xuXG4gICAgLy8gT3ZlcnJpZGUgbG9naWNhbCBJRHMgdG8gbWF0Y2ggbmFtaW5nIGNvbnZlbnRpb25cbiAgICB0aGlzLmlkT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwiaWRcIik7XG4gICAgdGhpcy5uYW1lT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwibmFtZVwiKTtcbiAgICB0aGlzLnJlc291cmNlSWRPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJyZXNvdXJjZUlkXCIpO1xuXG4gICAgLy8gQXBwbHkgaWdub3JlIGNoYW5nZXMgaWYgc3BlY2lmaWVkXG4gICAgdGhpcy5fYXBwbHlJZ25vcmVDaGFuZ2VzKCk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBSRVFVSVJFRCBBQlNUUkFDVCBNRVRIT0RTIEZST00gQXphcGlSZXNvdXJjZVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyB0aGUgcGFyZW50IHJlc291cmNlIElEIGZvciB0aGUgU3RhdGljIE1lbWJlclxuICAgKiBTdGF0aWMgTWVtYmVycyBhcmUgc2NvcGVkIHRvIE5ldHdvcmsgR3JvdXBzXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVzb2x2ZVBhcmVudElkKHByb3BzOiBhbnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IHR5cGVkUHJvcHMgPSBwcm9wcyBhcyBOZXR3b3JrR3JvdXBTdGF0aWNNZW1iZXJQcm9wcztcbiAgICByZXR1cm4gdHlwZWRQcm9wcy5uZXR3b3JrR3JvdXBJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBkZWZhdWx0IEFQSSB2ZXJzaW9uIHRvIHVzZSB3aGVuIG5vIGV4cGxpY2l0IHZlcnNpb24gaXMgc3BlY2lmaWVkXG4gICAqL1xuICBwcm90ZWN0ZWQgZGVmYXVsdFZlcnNpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCIyMDI0LTA1LTAxXCI7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgQXp1cmUgcmVzb3VyY2UgdHlwZSBmb3IgU3RhdGljIE1lbWJlcnNcbiAgICovXG4gIHByb3RlY3RlZCByZXNvdXJjZVR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gU1RBVElDX01FTUJFUl9UWVBFO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIEFQSSBzY2hlbWEgZm9yIHRoZSByZXNvbHZlZCB2ZXJzaW9uXG4gICAqL1xuICBwcm90ZWN0ZWQgYXBpU2NoZW1hKCk6IEFwaVNjaGVtYSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZVNjaGVtYSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIHJlc291cmNlIGJvZHkgZm9yIHRoZSBBenVyZSBBUEkgY2FsbFxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZVJlc291cmNlQm9keShwcm9wczogYW55KTogYW55IHtcbiAgICBjb25zdCB0eXBlZFByb3BzID0gcHJvcHMgYXMgTmV0d29ya0dyb3VwU3RhdGljTWVtYmVyUHJvcHM7XG4gICAgcmV0dXJuIHtcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgcmVzb3VyY2VJZDogdHlwZWRQcm9wcy5yZXNvdXJjZUlkLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUFVCTElDIE1FVEhPRFMgRk9SIFNUQVRJQyBNRU1CRVIgT1BFUkFUSU9OU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHJlc291cmNlIElEIG9mIHRoZSBtZW1iZXIgVk5ldCBvciBTdWJuZXRcbiAgICogUmV0dXJucyB0aGUgaW5wdXQgcmVzb3VyY2VJZCBzaW5jZSBBenVyZSBBUEkgZG9lc24ndCByZXR1cm4gaXQgaW4gdGhlIHJlc3BvbnNlXG4gICAqL1xuICBwdWJsaWMgZ2V0IG1lbWJlclJlc291cmNlSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5yZXNvdXJjZUlkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcmVnaW9uIG9mIHRoZSBtZW1iZXIgcmVzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBnZXQgcmVnaW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ub3V0cHV0LnByb3BlcnRpZXMucmVnaW9ufWA7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQUklWQVRFIEhFTFBFUiBNRVRIT0RTXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgaWdub3JlIGNoYW5nZXMgbGlmZWN5Y2xlIHJ1bGVzIGlmIHNwZWNpZmllZCBpbiBwcm9wc1xuICAgKi9cbiAgcHJpdmF0ZSBfYXBwbHlJZ25vcmVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByb3BzLmlnbm9yZUNoYW5nZXMgJiYgdGhpcy5wcm9wcy5pZ25vcmVDaGFuZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudGVycmFmb3JtUmVzb3VyY2UuYWRkT3ZlcnJpZGUoXCJsaWZlY3ljbGVcIiwge1xuICAgICAgICBpZ25vcmVfY2hhbmdlczogdGhpcy5wcm9wcy5pZ25vcmVDaGFuZ2VzLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Azure Virtual Network Manager Network Group implementation using AzapiResource framework
|
|
3
|
+
*
|
|
4
|
+
* This class provides a unified implementation for Azure Virtual Network Manager Network Groups
|
|
5
|
+
* that automatically handles version management, schema validation, and property transformation
|
|
6
|
+
* 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
|
+
*/
|
|
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
|
+
* Properties for the Azure Virtual Network Manager Network Group
|
|
25
|
+
*
|
|
26
|
+
* Extends AzapiResourceProps with Network Group specific properties
|
|
27
|
+
*/
|
|
28
|
+
export interface NetworkGroupProps extends AzapiResourceProps {
|
|
29
|
+
/**
|
|
30
|
+
* Resource ID of the parent Network Manager
|
|
31
|
+
* @example "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/rg/providers/Microsoft.Network/networkManagers/vnm"
|
|
32
|
+
*/
|
|
33
|
+
readonly networkManagerId: string;
|
|
34
|
+
/**
|
|
35
|
+
* Optional description of the network group
|
|
36
|
+
* @example "Production virtual networks for region East US"
|
|
37
|
+
*/
|
|
38
|
+
readonly description?: string;
|
|
39
|
+
/**
|
|
40
|
+
* Type of members in this network group
|
|
41
|
+
* @default undefined (can contain both VirtualNetwork and Subnet members)
|
|
42
|
+
* @example "VirtualNetwork"
|
|
43
|
+
* @example "Subnet"
|
|
44
|
+
*/
|
|
45
|
+
readonly memberType?: "VirtualNetwork" | "Subnet";
|
|
46
|
+
/**
|
|
47
|
+
* The lifecycle rules to ignore changes
|
|
48
|
+
* @example ["tags"]
|
|
49
|
+
*/
|
|
50
|
+
readonly ignoreChanges?: string[];
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Properties for Network Group body
|
|
54
|
+
*/
|
|
55
|
+
export interface NetworkGroupProperties {
|
|
56
|
+
readonly description?: string;
|
|
57
|
+
readonly memberType?: string;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* The resource body interface for Azure Network Group API calls
|
|
61
|
+
*/
|
|
62
|
+
export interface NetworkGroupBody {
|
|
63
|
+
readonly properties?: NetworkGroupProperties;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Azure Virtual Network Manager Network Group implementation
|
|
67
|
+
*
|
|
68
|
+
* Network Groups are logical containers for virtual networks or subnets that allow you to
|
|
69
|
+
* apply connectivity, security, or routing configurations at scale. They are a foundational
|
|
70
|
+
* component required by connectivity configurations, security admin configurations, and
|
|
71
|
+
* routing configurations.
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* // Basic network group for production VNets:
|
|
75
|
+
* const productionGroup = new NetworkGroup(this, "prod-group", {
|
|
76
|
+
* name: "production-vnets",
|
|
77
|
+
* networkManagerId: networkManager.id,
|
|
78
|
+
* description: "Production virtual networks",
|
|
79
|
+
* memberType: "VirtualNetwork"
|
|
80
|
+
* });
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* // Network group with explicit version pinning:
|
|
84
|
+
* const devGroup = new NetworkGroup(this, "dev-group", {
|
|
85
|
+
* name: "development-vnets",
|
|
86
|
+
* networkManagerId: networkManager.id,
|
|
87
|
+
* apiVersion: "2024-05-01",
|
|
88
|
+
* description: "Development virtual networks"
|
|
89
|
+
* });
|
|
90
|
+
*
|
|
91
|
+
* @stability stable
|
|
92
|
+
*/
|
|
93
|
+
export declare class NetworkGroup extends AzapiResource {
|
|
94
|
+
/**
|
|
95
|
+
* The input properties for this Network Group instance
|
|
96
|
+
*/
|
|
97
|
+
readonly props: NetworkGroupProps;
|
|
98
|
+
readonly idOutput: cdktf.TerraformOutput;
|
|
99
|
+
readonly nameOutput: cdktf.TerraformOutput;
|
|
100
|
+
readonly provisioningStateOutput: cdktf.TerraformOutput;
|
|
101
|
+
readonly resourceName: string;
|
|
102
|
+
/**
|
|
103
|
+
* Creates a new Azure Virtual Network Manager Network Group using the AzapiResource framework
|
|
104
|
+
*
|
|
105
|
+
* @param scope - The scope in which to define this construct
|
|
106
|
+
* @param id - The unique identifier for this instance
|
|
107
|
+
* @param props - Configuration properties for the Network Group
|
|
108
|
+
*/
|
|
109
|
+
constructor(scope: Construct, id: string, props: NetworkGroupProps);
|
|
110
|
+
/**
|
|
111
|
+
* Resolves the parent resource ID for the Network Group
|
|
112
|
+
* Network Groups are scoped to Network Managers
|
|
113
|
+
*/
|
|
114
|
+
protected resolveParentId(props: any): string;
|
|
115
|
+
/**
|
|
116
|
+
* Gets the default API version to use when no explicit version is specified
|
|
117
|
+
*/
|
|
118
|
+
protected defaultVersion(): string;
|
|
119
|
+
/**
|
|
120
|
+
* Gets the Azure resource type for Network Groups
|
|
121
|
+
*/
|
|
122
|
+
protected resourceType(): string;
|
|
123
|
+
/**
|
|
124
|
+
* Gets the API schema for the resolved version
|
|
125
|
+
*/
|
|
126
|
+
protected apiSchema(): ApiSchema;
|
|
127
|
+
/**
|
|
128
|
+
* Creates the resource body for the Azure API call
|
|
129
|
+
*/
|
|
130
|
+
protected createResourceBody(props: any): any;
|
|
131
|
+
/**
|
|
132
|
+
* Get the provisioning state of the Network Group
|
|
133
|
+
*/
|
|
134
|
+
get provisioningState(): string;
|
|
135
|
+
/**
|
|
136
|
+
* Applies ignore changes lifecycle rules if specified in props
|
|
137
|
+
*/
|
|
138
|
+
private _applyIgnoreChanges;
|
|
139
|
+
}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.NetworkGroup = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
/**
|
|
7
|
+
* Azure Virtual Network Manager Network Group implementation using AzapiResource framework
|
|
8
|
+
*
|
|
9
|
+
* This class provides a unified implementation for Azure Virtual Network Manager Network Groups
|
|
10
|
+
* that automatically handles version management, schema validation, and property transformation
|
|
11
|
+
* across all supported API versions.
|
|
12
|
+
*
|
|
13
|
+
* Supported API Versions:
|
|
14
|
+
* - 2023-11-01 (Maintenance)
|
|
15
|
+
* - 2024-05-01 (Active, Latest)
|
|
16
|
+
*
|
|
17
|
+
* Features:
|
|
18
|
+
* - Automatic latest version resolution when no version is specified
|
|
19
|
+
* - Explicit version pinning for stability requirements
|
|
20
|
+
* - Schema-driven validation and transformation
|
|
21
|
+
* - Full backward compatibility
|
|
22
|
+
* - JSII compliance for multi-language support
|
|
23
|
+
*/
|
|
24
|
+
const cdktf = require("cdktf");
|
|
25
|
+
const network_group_schemas_1 = require("./network-group-schemas");
|
|
26
|
+
const azapi_resource_1 = require("../../core-azure/lib/azapi/azapi-resource");
|
|
27
|
+
/**
|
|
28
|
+
* Azure Virtual Network Manager Network Group implementation
|
|
29
|
+
*
|
|
30
|
+
* Network Groups are logical containers for virtual networks or subnets that allow you to
|
|
31
|
+
* apply connectivity, security, or routing configurations at scale. They are a foundational
|
|
32
|
+
* component required by connectivity configurations, security admin configurations, and
|
|
33
|
+
* routing configurations.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* // Basic network group for production VNets:
|
|
37
|
+
* const productionGroup = new NetworkGroup(this, "prod-group", {
|
|
38
|
+
* name: "production-vnets",
|
|
39
|
+
* networkManagerId: networkManager.id,
|
|
40
|
+
* description: "Production virtual networks",
|
|
41
|
+
* memberType: "VirtualNetwork"
|
|
42
|
+
* });
|
|
43
|
+
*
|
|
44
|
+
* @example
|
|
45
|
+
* // Network group with explicit version pinning:
|
|
46
|
+
* const devGroup = new NetworkGroup(this, "dev-group", {
|
|
47
|
+
* name: "development-vnets",
|
|
48
|
+
* networkManagerId: networkManager.id,
|
|
49
|
+
* apiVersion: "2024-05-01",
|
|
50
|
+
* description: "Development virtual networks"
|
|
51
|
+
* });
|
|
52
|
+
*
|
|
53
|
+
* @stability stable
|
|
54
|
+
*/
|
|
55
|
+
class NetworkGroup extends azapi_resource_1.AzapiResource {
|
|
56
|
+
/**
|
|
57
|
+
* Creates a new Azure Virtual Network Manager Network Group using the AzapiResource framework
|
|
58
|
+
*
|
|
59
|
+
* @param scope - The scope in which to define this construct
|
|
60
|
+
* @param id - The unique identifier for this instance
|
|
61
|
+
* @param props - Configuration properties for the Network Group
|
|
62
|
+
*/
|
|
63
|
+
constructor(scope, id, props) {
|
|
64
|
+
super(scope, id, props);
|
|
65
|
+
this.props = props;
|
|
66
|
+
// Extract properties from the AZAPI resource outputs using Terraform interpolation
|
|
67
|
+
this.resourceName = `\${${this.terraformResource.fqn}.name}`;
|
|
68
|
+
// Create Terraform outputs for easy access and referencing from other resources
|
|
69
|
+
this.idOutput = new cdktf.TerraformOutput(this, "id", {
|
|
70
|
+
value: this.id,
|
|
71
|
+
description: "The ID of the Network Group",
|
|
72
|
+
});
|
|
73
|
+
this.nameOutput = new cdktf.TerraformOutput(this, "name", {
|
|
74
|
+
value: this.resourceName,
|
|
75
|
+
description: "The name of the Network Group",
|
|
76
|
+
});
|
|
77
|
+
this.provisioningStateOutput = new cdktf.TerraformOutput(this, "provisioningState", {
|
|
78
|
+
value: `\${${this.terraformResource.fqn}.output.properties.provisioningState}`,
|
|
79
|
+
description: "The provisioning state of the Network Group",
|
|
80
|
+
});
|
|
81
|
+
// Override logical IDs to match naming convention
|
|
82
|
+
this.idOutput.overrideLogicalId("id");
|
|
83
|
+
this.nameOutput.overrideLogicalId("name");
|
|
84
|
+
this.provisioningStateOutput.overrideLogicalId("provisioningState");
|
|
85
|
+
// Apply ignore changes if specified
|
|
86
|
+
this._applyIgnoreChanges();
|
|
87
|
+
}
|
|
88
|
+
// =============================================================================
|
|
89
|
+
// REQUIRED ABSTRACT METHODS FROM AzapiResource
|
|
90
|
+
// =============================================================================
|
|
91
|
+
/**
|
|
92
|
+
* Resolves the parent resource ID for the Network Group
|
|
93
|
+
* Network Groups are scoped to Network Managers
|
|
94
|
+
*/
|
|
95
|
+
resolveParentId(props) {
|
|
96
|
+
const typedProps = props;
|
|
97
|
+
return typedProps.networkManagerId;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Gets the default API version to use when no explicit version is specified
|
|
101
|
+
*/
|
|
102
|
+
defaultVersion() {
|
|
103
|
+
return "2024-05-01";
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Gets the Azure resource type for Network Groups
|
|
107
|
+
*/
|
|
108
|
+
resourceType() {
|
|
109
|
+
return network_group_schemas_1.NETWORK_GROUP_TYPE;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Gets the API schema for the resolved version
|
|
113
|
+
*/
|
|
114
|
+
apiSchema() {
|
|
115
|
+
return this.resolveSchema();
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Creates the resource body for the Azure API call
|
|
119
|
+
*/
|
|
120
|
+
createResourceBody(props) {
|
|
121
|
+
const typedProps = props;
|
|
122
|
+
return {
|
|
123
|
+
properties: {
|
|
124
|
+
description: typedProps.description,
|
|
125
|
+
memberType: typedProps.memberType,
|
|
126
|
+
},
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
// =============================================================================
|
|
130
|
+
// PUBLIC METHODS FOR NETWORK GROUP OPERATIONS
|
|
131
|
+
// =============================================================================
|
|
132
|
+
/**
|
|
133
|
+
* Get the provisioning state of the Network Group
|
|
134
|
+
*/
|
|
135
|
+
get provisioningState() {
|
|
136
|
+
return `\${${this.terraformResource.fqn}.output.properties.provisioningState}`;
|
|
137
|
+
}
|
|
138
|
+
// =============================================================================
|
|
139
|
+
// PRIVATE HELPER METHODS
|
|
140
|
+
// =============================================================================
|
|
141
|
+
/**
|
|
142
|
+
* Applies ignore changes lifecycle rules if specified in props
|
|
143
|
+
*/
|
|
144
|
+
_applyIgnoreChanges() {
|
|
145
|
+
if (this.props.ignoreChanges && this.props.ignoreChanges.length > 0) {
|
|
146
|
+
this.terraformResource.addOverride("lifecycle", {
|
|
147
|
+
ignore_changes: this.props.ignoreChanges,
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
exports.NetworkGroup = NetworkGroup;
|
|
153
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
154
|
+
NetworkGroup[_a] = { fqn: "@microsoft/terraform-cdk-constructs.NetworkGroup", version: "1.3.1" };
|
|
155
|
+
(() => {
|
|
156
|
+
azapi_resource_1.AzapiResource.registerSchemas(network_group_schemas_1.NETWORK_GROUP_TYPE, network_group_schemas_1.ALL_NETWORK_GROUP_VERSIONS);
|
|
157
|
+
})();
|
|
158
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1ncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS12aXJ0dWFsbmV0d29ya21hbmFnZXIvbGliL25ldHdvcmstZ3JvdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFFSCwrQkFBK0I7QUFFL0IsbUVBR2lDO0FBQ2pDLDhFQUdtRDtBQW1EbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUNILE1BQWEsWUFBYSxTQUFRLDhCQUFhO0lBcUI3Qzs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXdCO1FBQ2hFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRW5CLG1GQUFtRjtRQUNuRixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsUUFBUSxDQUFDO1FBRTdELGdGQUFnRjtRQUNoRixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ3BELEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNkLFdBQVcsRUFBRSw2QkFBNkI7U0FDM0MsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUN4RCxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVk7WUFDeEIsV0FBVyxFQUFFLCtCQUErQjtTQUM3QyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUN0RCxJQUFJLEVBQ0osbUJBQW1CLEVBQ25CO1lBQ0UsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsdUNBQXVDO1lBQzlFLFdBQVcsRUFBRSw2Q0FBNkM7U0FDM0QsQ0FDRixDQUFDO1FBRUYsa0RBQWtEO1FBQ2xELElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUVwRSxvQ0FBb0M7UUFDcEMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGdGQUFnRjtJQUNoRiwrQ0FBK0M7SUFDL0MsZ0ZBQWdGO0lBRWhGOzs7T0FHRztJQUNPLGVBQWUsQ0FBQyxLQUFVO1FBQ2xDLE1BQU0sVUFBVSxHQUFHLEtBQTBCLENBQUM7UUFDOUMsT0FBTyxVQUFVLENBQUMsZ0JBQWdCLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ08sY0FBYztRQUN0QixPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDTyxZQUFZO1FBQ3BCLE9BQU8sMENBQWtCLENBQUM7SUFDNUIsQ0FBQztJQUVEOztPQUVHO0lBQ08sU0FBUztRQUNqQixPQUFPLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDTyxrQkFBa0IsQ0FBQyxLQUFVO1FBQ3JDLE1BQU0sVUFBVSxHQUFHLEtBQTBCLENBQUM7UUFDOUMsT0FBTztZQUNMLFVBQVUsRUFBRTtnQkFDVixXQUFXLEVBQUUsVUFBVSxDQUFDLFdBQVc7Z0JBQ25DLFVBQVUsRUFBRSxVQUFVLENBQUMsVUFBVTthQUNsQztTQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsZ0ZBQWdGO0lBQ2hGLDhDQUE4QztJQUM5QyxnRkFBZ0Y7SUFFaEY7O09BRUc7SUFDSCxJQUFXLGlCQUFpQjtRQUMxQixPQUFPLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsdUNBQXVDLENBQUM7SUFDakYsQ0FBQztJQUVELGdGQUFnRjtJQUNoRix5QkFBeUI7SUFDekIsZ0ZBQWdGO0lBRWhGOztPQUVHO0lBQ0ssbUJBQW1CO1FBQ3pCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3BFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFO2dCQUM5QyxjQUFjLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhO2FBQ3pDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOztBQXhJSCxvQ0F5SUM7OztBQXhJQztJQUNFLDhCQUFhLENBQUMsZUFBZSxDQUMzQiwwQ0FBa0IsRUFDbEIsa0RBQTBCLENBQzNCLENBQUM7QUFDSixDQUFDLEdBQUEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQXp1cmUgVmlydHVhbCBOZXR3b3JrIE1hbmFnZXIgTmV0d29yayBHcm91cCBpbXBsZW1lbnRhdGlvbiB1c2luZyBBemFwaVJlc291cmNlIGZyYW1ld29ya1xuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSB1bmlmaWVkIGltcGxlbWVudGF0aW9uIGZvciBBenVyZSBWaXJ0dWFsIE5ldHdvcmsgTWFuYWdlciBOZXR3b3JrIEdyb3Vwc1xuICogdGhhdCBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvbiBtYW5hZ2VtZW50LCBzY2hlbWEgdmFsaWRhdGlvbiwgYW5kIHByb3BlcnR5IHRyYW5zZm9ybWF0aW9uXG4gKiBhY3Jvc3MgYWxsIHN1cHBvcnRlZCBBUEkgdmVyc2lvbnMuXG4gKlxuICogU3VwcG9ydGVkIEFQSSBWZXJzaW9uczpcbiAqIC0gMjAyMy0xMS0wMSAoTWFpbnRlbmFuY2UpXG4gKiAtIDIwMjQtMDUtMDEgKEFjdGl2ZSwgTGF0ZXN0KVxuICpcbiAqIEZlYXR1cmVzOlxuICogLSBBdXRvbWF0aWMgbGF0ZXN0IHZlcnNpb24gcmVzb2x1dGlvbiB3aGVuIG5vIHZlcnNpb24gaXMgc3BlY2lmaWVkXG4gKiAtIEV4cGxpY2l0IHZlcnNpb24gcGlubmluZyBmb3Igc3RhYmlsaXR5IHJlcXVpcmVtZW50c1xuICogLSBTY2hlbWEtZHJpdmVuIHZhbGlkYXRpb24gYW5kIHRyYW5zZm9ybWF0aW9uXG4gKiAtIEZ1bGwgYmFja3dhcmQgY29tcGF0aWJpbGl0eVxuICogLSBKU0lJIGNvbXBsaWFuY2UgZm9yIG11bHRpLWxhbmd1YWdlIHN1cHBvcnRcbiAqL1xuXG5pbXBvcnQgKiBhcyBjZGt0ZiBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBBTExfTkVUV09SS19HUk9VUF9WRVJTSU9OUyxcbiAgTkVUV09SS19HUk9VUF9UWVBFLFxufSBmcm9tIFwiLi9uZXR3b3JrLWdyb3VwLXNjaGVtYXNcIjtcbmltcG9ydCB7XG4gIEF6YXBpUmVzb3VyY2UsXG4gIEF6YXBpUmVzb3VyY2VQcm9wcyxcbn0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL2F6YXBpL2F6YXBpLXJlc291cmNlXCI7XG5pbXBvcnQgeyBBcGlTY2hlbWEgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvdmVyc2lvbi1tYW5hZ2VyL2ludGVyZmFjZXMvdmVyc2lvbi1pbnRlcmZhY2VzXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgdGhlIEF6dXJlIFZpcnR1YWwgTmV0d29yayBNYW5hZ2VyIE5ldHdvcmsgR3JvdXBcbiAqXG4gKiBFeHRlbmRzIEF6YXBpUmVzb3VyY2VQcm9wcyB3aXRoIE5ldHdvcmsgR3JvdXAgc3BlY2lmaWMgcHJvcGVydGllc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtHcm91cFByb3BzIGV4dGVuZHMgQXphcGlSZXNvdXJjZVByb3BzIHtcbiAgLyoqXG4gICAqIFJlc291cmNlIElEIG9mIHRoZSBwYXJlbnQgTmV0d29yayBNYW5hZ2VyXG4gICAqIEBleGFtcGxlIFwiL3N1YnNjcmlwdGlvbnMvMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwL3Jlc291cmNlR3JvdXBzL3JnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9uZXR3b3JrTWFuYWdlcnMvdm5tXCJcbiAgICovXG4gIHJlYWRvbmx5IG5ldHdvcmtNYW5hZ2VySWQ6IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgZGVzY3JpcHRpb24gb2YgdGhlIG5ldHdvcmsgZ3JvdXBcbiAgICogQGV4YW1wbGUgXCJQcm9kdWN0aW9uIHZpcnR1YWwgbmV0d29ya3MgZm9yIHJlZ2lvbiBFYXN0IFVTXCJcbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUeXBlIG9mIG1lbWJlcnMgaW4gdGhpcyBuZXR3b3JrIGdyb3VwXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZCAoY2FuIGNvbnRhaW4gYm90aCBWaXJ0dWFsTmV0d29yayBhbmQgU3VibmV0IG1lbWJlcnMpXG4gICAqIEBleGFtcGxlIFwiVmlydHVhbE5ldHdvcmtcIlxuICAgKiBAZXhhbXBsZSBcIlN1Ym5ldFwiXG4gICAqL1xuICByZWFkb25seSBtZW1iZXJUeXBlPzogXCJWaXJ0dWFsTmV0d29ya1wiIHwgXCJTdWJuZXRcIjtcblxuICAvKipcbiAgICogVGhlIGxpZmVjeWNsZSBydWxlcyB0byBpZ25vcmUgY2hhbmdlc1xuICAgKiBAZXhhbXBsZSBbXCJ0YWdzXCJdXG4gICAqL1xuICByZWFkb25seSBpZ25vcmVDaGFuZ2VzPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgTmV0d29yayBHcm91cCBib2R5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29ya0dyb3VwUHJvcGVydGllcyB7XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICByZWFkb25seSBtZW1iZXJUeXBlPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSByZXNvdXJjZSBib2R5IGludGVyZmFjZSBmb3IgQXp1cmUgTmV0d29yayBHcm91cCBBUEkgY2FsbHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrR3JvdXBCb2R5IHtcbiAgcmVhZG9ubHkgcHJvcGVydGllcz86IE5ldHdvcmtHcm91cFByb3BlcnRpZXM7XG59XG5cbi8qKlxuICogQXp1cmUgVmlydHVhbCBOZXR3b3JrIE1hbmFnZXIgTmV0d29yayBHcm91cCBpbXBsZW1lbnRhdGlvblxuICpcbiAqIE5ldHdvcmsgR3JvdXBzIGFyZSBsb2dpY2FsIGNvbnRhaW5lcnMgZm9yIHZpcnR1YWwgbmV0d29ya3Mgb3Igc3VibmV0cyB0aGF0IGFsbG93IHlvdSB0b1xuICogYXBwbHkgY29ubmVjdGl2aXR5LCBzZWN1cml0eSwgb3Igcm91dGluZyBjb25maWd1cmF0aW9ucyBhdCBzY2FsZS4gVGhleSBhcmUgYSBmb3VuZGF0aW9uYWxcbiAqIGNvbXBvbmVudCByZXF1aXJlZCBieSBjb25uZWN0aXZpdHkgY29uZmlndXJhdGlvbnMsIHNlY3VyaXR5IGFkbWluIGNvbmZpZ3VyYXRpb25zLCBhbmRcbiAqIHJvdXRpbmcgY29uZmlndXJhdGlvbnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEJhc2ljIG5ldHdvcmsgZ3JvdXAgZm9yIHByb2R1Y3Rpb24gVk5ldHM6XG4gKiBjb25zdCBwcm9kdWN0aW9uR3JvdXAgPSBuZXcgTmV0d29ya0dyb3VwKHRoaXMsIFwicHJvZC1ncm91cFwiLCB7XG4gKiAgIG5hbWU6IFwicHJvZHVjdGlvbi12bmV0c1wiLFxuICogICBuZXR3b3JrTWFuYWdlcklkOiBuZXR3b3JrTWFuYWdlci5pZCxcbiAqICAgZGVzY3JpcHRpb246IFwiUHJvZHVjdGlvbiB2aXJ0dWFsIG5ldHdvcmtzXCIsXG4gKiAgIG1lbWJlclR5cGU6IFwiVmlydHVhbE5ldHdvcmtcIlxuICogfSk7XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIE5ldHdvcmsgZ3JvdXAgd2l0aCBleHBsaWNpdCB2ZXJzaW9uIHBpbm5pbmc6XG4gKiBjb25zdCBkZXZHcm91cCA9IG5ldyBOZXR3b3JrR3JvdXAodGhpcywgXCJkZXYtZ3JvdXBcIiwge1xuICogICBuYW1lOiBcImRldmVsb3BtZW50LXZuZXRzXCIsXG4gKiAgIG5ldHdvcmtNYW5hZ2VySWQ6IG5ldHdvcmtNYW5hZ2VyLmlkLFxuICogICBhcGlWZXJzaW9uOiBcIjIwMjQtMDUtMDFcIixcbiAqICAgZGVzY3JpcHRpb246IFwiRGV2ZWxvcG1lbnQgdmlydHVhbCBuZXR3b3Jrc1wiXG4gKiB9KTtcbiAqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgY2xhc3MgTmV0d29ya0dyb3VwIGV4dGVuZHMgQXphcGlSZXNvdXJjZSB7XG4gIHN0YXRpYyB7XG4gICAgQXphcGlSZXNvdXJjZS5yZWdpc3RlclNjaGVtYXMoXG4gICAgICBORVRXT1JLX0dST1VQX1RZUEUsXG4gICAgICBBTExfTkVUV09SS19HUk9VUF9WRVJTSU9OUyxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBpbnB1dCBwcm9wZXJ0aWVzIGZvciB0aGlzIE5ldHdvcmsgR3JvdXAgaW5zdGFuY2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcm9wczogTmV0d29ya0dyb3VwUHJvcHM7XG5cbiAgLy8gT3V0cHV0IHByb3BlcnRpZXMgZm9yIGVhc3kgYWNjZXNzIGFuZCByZWZlcmVuY2luZ1xuICBwdWJsaWMgcmVhZG9ubHkgaWRPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IHByb3Zpc2lvbmluZ1N0YXRlT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG5cbiAgLy8gUHVibGljIHByb3BlcnRpZXNcbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEF6dXJlIFZpcnR1YWwgTmV0d29yayBNYW5hZ2VyIE5ldHdvcmsgR3JvdXAgdXNpbmcgdGhlIEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIE5ldHdvcmsgR3JvdXBcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBOZXR3b3JrR3JvdXBQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuXG4gICAgLy8gRXh0cmFjdCBwcm9wZXJ0aWVzIGZyb20gdGhlIEFaQVBJIHJlc291cmNlIG91dHB1dHMgdXNpbmcgVGVycmFmb3JtIGludGVycG9sYXRpb25cbiAgICB0aGlzLnJlc291cmNlTmFtZSA9IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ubmFtZX1gO1xuXG4gICAgLy8gQ3JlYXRlIFRlcnJhZm9ybSBvdXRwdXRzIGZvciBlYXN5IGFjY2VzcyBhbmQgcmVmZXJlbmNpbmcgZnJvbSBvdGhlciByZXNvdXJjZXNcbiAgICB0aGlzLmlkT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcImlkXCIsIHtcbiAgICAgIHZhbHVlOiB0aGlzLmlkLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIElEIG9mIHRoZSBOZXR3b3JrIEdyb3VwXCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLm5hbWVPdXRwdXQgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwibmFtZVwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5yZXNvdXJjZU5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgbmFtZSBvZiB0aGUgTmV0d29yayBHcm91cFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5wcm92aXNpb25pbmdTdGF0ZU91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQoXG4gICAgICB0aGlzLFxuICAgICAgXCJwcm92aXNpb25pbmdTdGF0ZVwiLFxuICAgICAge1xuICAgICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5vdXRwdXQucHJvcGVydGllcy5wcm92aXNpb25pbmdTdGF0ZX1gLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJUaGUgcHJvdmlzaW9uaW5nIHN0YXRlIG9mIHRoZSBOZXR3b3JrIEdyb3VwXCIsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICAvLyBPdmVycmlkZSBsb2dpY2FsIElEcyB0byBtYXRjaCBuYW1pbmcgY29udmVudGlvblxuICAgIHRoaXMuaWRPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJpZFwiKTtcbiAgICB0aGlzLm5hbWVPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJuYW1lXCIpO1xuICAgIHRoaXMucHJvdmlzaW9uaW5nU3RhdGVPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJwcm92aXNpb25pbmdTdGF0ZVwiKTtcblxuICAgIC8vIEFwcGx5IGlnbm9yZSBjaGFuZ2VzIGlmIHNwZWNpZmllZFxuICAgIHRoaXMuX2FwcGx5SWdub3JlQ2hhbmdlcygpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUkVRVUlSRUQgQUJTVFJBQ1QgTUVUSE9EUyBGUk9NIEF6YXBpUmVzb3VyY2VcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgdGhlIHBhcmVudCByZXNvdXJjZSBJRCBmb3IgdGhlIE5ldHdvcmsgR3JvdXBcbiAgICogTmV0d29yayBHcm91cHMgYXJlIHNjb3BlZCB0byBOZXR3b3JrIE1hbmFnZXJzXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVzb2x2ZVBhcmVudElkKHByb3BzOiBhbnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IHR5cGVkUHJvcHMgPSBwcm9wcyBhcyBOZXR3b3JrR3JvdXBQcm9wcztcbiAgICByZXR1cm4gdHlwZWRQcm9wcy5uZXR3b3JrTWFuYWdlcklkO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGRlZmF1bHQgQVBJIHZlcnNpb24gdG8gdXNlIHdoZW4gbm8gZXhwbGljaXQgdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAgICovXG4gIHByb3RlY3RlZCBkZWZhdWx0VmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIjIwMjQtMDUtMDFcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBenVyZSByZXNvdXJjZSB0eXBlIGZvciBOZXR3b3JrIEdyb3Vwc1xuICAgKi9cbiAgcHJvdGVjdGVkIHJlc291cmNlVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBORVRXT1JLX0dST1VQX1RZUEU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgQVBJIHNjaGVtYSBmb3IgdGhlIHJlc29sdmVkIHZlcnNpb25cbiAgICovXG4gIHByb3RlY3RlZCBhcGlTY2hlbWEoKTogQXBpU2NoZW1hIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlU2NoZW1hKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgcmVzb3VyY2UgYm9keSBmb3IgdGhlIEF6dXJlIEFQSSBjYWxsXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlUmVzb3VyY2VCb2R5KHByb3BzOiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IHR5cGVkUHJvcHMgPSBwcm9wcyBhcyBOZXR3b3JrR3JvdXBQcm9wcztcbiAgICByZXR1cm4ge1xuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBkZXNjcmlwdGlvbjogdHlwZWRQcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgICAgbWVtYmVyVHlwZTogdHlwZWRQcm9wcy5tZW1iZXJUeXBlLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUFVCTElDIE1FVEhPRFMgRk9SIE5FVFdPUksgR1JPVVAgT1BFUkFUSU9OU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHByb3Zpc2lvbmluZyBzdGF0ZSBvZiB0aGUgTmV0d29yayBHcm91cFxuICAgKi9cbiAgcHVibGljIGdldCBwcm92aXNpb25pbmdTdGF0ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLnByb3Zpc2lvbmluZ1N0YXRlfWA7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQUklWQVRFIEhFTFBFUiBNRVRIT0RTXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgaWdub3JlIGNoYW5nZXMgbGlmZWN5Y2xlIHJ1bGVzIGlmIHNwZWNpZmllZCBpbiBwcm9wc1xuICAgKi9cbiAgcHJpdmF0ZSBfYXBwbHlJZ25vcmVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByb3BzLmlnbm9yZUNoYW5nZXMgJiYgdGhpcy5wcm9wcy5pZ25vcmVDaGFuZ2VzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudGVycmFmb3JtUmVzb3VyY2UuYWRkT3ZlcnJpZGUoXCJsaWZlY3ljbGVcIiwge1xuICAgICAgICBpZ25vcmVfY2hhbmdlczogdGhpcy5wcm9wcy5pZ25vcmVDaGFuZ2VzLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API schemas for Azure Virtual Network Manager Security Admin Configurations across all supported versions
|
|
3
|
+
*
|
|
4
|
+
* This file defines the complete API schemas for Microsoft.Network/networkManagers/securityAdminConfigurations
|
|
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 Security Admin Configuration version 2024-05-01
|
|
11
|
+
*/
|
|
12
|
+
export declare const SECURITY_ADMIN_CONFIGURATION_SCHEMA_2024_05_01: ApiSchema;
|
|
13
|
+
/**
|
|
14
|
+
* API Schema for Security Admin Configuration version 2023-11-01
|
|
15
|
+
*/
|
|
16
|
+
export declare const SECURITY_ADMIN_CONFIGURATION_SCHEMA_2023_11_01: ApiSchema;
|
|
17
|
+
/**
|
|
18
|
+
* Version configuration for Security Admin Configuration 2024-05-01
|
|
19
|
+
*/
|
|
20
|
+
export declare const SECURITY_ADMIN_CONFIGURATION_VERSION_2024_05_01: VersionConfig;
|
|
21
|
+
/**
|
|
22
|
+
* Version configuration for Security Admin Configuration 2023-11-01
|
|
23
|
+
*/
|
|
24
|
+
export declare const SECURITY_ADMIN_CONFIGURATION_VERSION_2023_11_01: VersionConfig;
|
|
25
|
+
/**
|
|
26
|
+
* All supported Security Admin Configuration versions for registration
|
|
27
|
+
*/
|
|
28
|
+
export declare const ALL_SECURITY_ADMIN_CONFIGURATION_VERSIONS: VersionConfig[];
|
|
29
|
+
/**
|
|
30
|
+
* Resource type constant
|
|
31
|
+
*/
|
|
32
|
+
export declare const SECURITY_ADMIN_CONFIGURATION_TYPE = "Microsoft.Network/networkManagers/securityAdminConfigurations";
|