@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,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Azure DNS Private Resolver implementation using VersionedAzapiResource framework
|
|
3
|
+
*
|
|
4
|
+
* This class provides a single, version-aware implementation that automatically handles
|
|
5
|
+
* version management, schema validation, and property transformation across all
|
|
6
|
+
* supported API versions.
|
|
7
|
+
*
|
|
8
|
+
* Supported API Versions:
|
|
9
|
+
* - 2022-07-01 (Active, Latest)
|
|
10
|
+
*
|
|
11
|
+
* Features:
|
|
12
|
+
* - Automatic latest version resolution when no version is specified
|
|
13
|
+
* - Explicit version pinning for stability requirements
|
|
14
|
+
* - Schema-driven validation and transformation
|
|
15
|
+
* - Full backward compatibility with existing interface
|
|
16
|
+
* - JSII compliance for multi-language support
|
|
17
|
+
* - Hybrid DNS scenarios with conditional forwarding
|
|
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 unified Azure DNS Resolver
|
|
25
|
+
*
|
|
26
|
+
* Extends AzapiResourceProps with DNS Resolver specific properties
|
|
27
|
+
*/
|
|
28
|
+
export interface DnsResolverProps extends AzapiResourceProps {
|
|
29
|
+
/**
|
|
30
|
+
* The resource ID of the virtual network where the DNS Resolver will be deployed
|
|
31
|
+
* The resolver requires a dedicated subnet with delegation to Microsoft.Network/dnsResolvers
|
|
32
|
+
*/
|
|
33
|
+
readonly virtualNetworkId: string;
|
|
34
|
+
/**
|
|
35
|
+
* The lifecycle rules to ignore changes
|
|
36
|
+
* @example ["tags"]
|
|
37
|
+
*/
|
|
38
|
+
readonly ignoreChanges?: string[];
|
|
39
|
+
/**
|
|
40
|
+
* Resource group ID where the DNS Resolver will be created
|
|
41
|
+
*/
|
|
42
|
+
readonly resourceGroupId?: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* The resource body interface for Azure DNS Resolver API calls
|
|
46
|
+
* This matches the Azure REST API schema
|
|
47
|
+
*/
|
|
48
|
+
export interface DnsResolverBody {
|
|
49
|
+
readonly location: string;
|
|
50
|
+
readonly tags?: {
|
|
51
|
+
[key: string]: string;
|
|
52
|
+
};
|
|
53
|
+
readonly properties?: any;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Unified Azure DNS Resolver implementation
|
|
57
|
+
*
|
|
58
|
+
* This class provides a single, version-aware implementation that replaces all
|
|
59
|
+
* version-specific DNS Resolver classes. It automatically handles version
|
|
60
|
+
* resolution, schema validation, and property transformation while maintaining
|
|
61
|
+
* full backward compatibility.
|
|
62
|
+
*
|
|
63
|
+
* Azure DNS Private Resolvers enable hybrid DNS scenarios, allowing conditional
|
|
64
|
+
* forwarding between Azure, on-premises, and other cloud providers. They provide
|
|
65
|
+
* DNS resolution for resources in Azure virtual networks.
|
|
66
|
+
*
|
|
67
|
+
* Key Requirements:
|
|
68
|
+
* - Requires a dedicated subnet with delegation to Microsoft.Network/dnsResolvers
|
|
69
|
+
* - Subnet must be between /28 and /24 in size
|
|
70
|
+
* - Each subscription can have up to 15 DNS resolvers
|
|
71
|
+
* - Regional resource (unlike DNS zones which are global)
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* // Basic DNS resolver with automatic version resolution:
|
|
75
|
+
* const dnsResolver = new DnsResolver(this, "resolver", {
|
|
76
|
+
* name: "my-dns-resolver",
|
|
77
|
+
* location: "eastus",
|
|
78
|
+
* resourceGroupId: resourceGroup.id,
|
|
79
|
+
* virtualNetworkId: vnet.id,
|
|
80
|
+
* });
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* // DNS resolver with tags:
|
|
84
|
+
* const dnsResolver = new DnsResolver(this, "resolver", {
|
|
85
|
+
* name: "my-dns-resolver",
|
|
86
|
+
* location: "eastus",
|
|
87
|
+
* resourceGroupId: resourceGroup.id,
|
|
88
|
+
* virtualNetworkId: vnet.id,
|
|
89
|
+
* tags: {
|
|
90
|
+
* environment: "production",
|
|
91
|
+
* purpose: "hybrid-dns"
|
|
92
|
+
* }
|
|
93
|
+
* });
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* // DNS resolver with explicit version pinning:
|
|
97
|
+
* const dnsResolver = new DnsResolver(this, "resolver", {
|
|
98
|
+
* name: "my-dns-resolver",
|
|
99
|
+
* location: "eastus",
|
|
100
|
+
* resourceGroupId: resourceGroup.id,
|
|
101
|
+
* virtualNetworkId: vnet.id,
|
|
102
|
+
* apiVersion: "2022-07-01",
|
|
103
|
+
* });
|
|
104
|
+
*
|
|
105
|
+
* @stability stable
|
|
106
|
+
*/
|
|
107
|
+
export declare class DnsResolver extends AzapiResource {
|
|
108
|
+
readonly props: DnsResolverProps;
|
|
109
|
+
readonly idOutput: cdktf.TerraformOutput;
|
|
110
|
+
readonly locationOutput: cdktf.TerraformOutput;
|
|
111
|
+
readonly nameOutput: cdktf.TerraformOutput;
|
|
112
|
+
readonly tagsOutput: cdktf.TerraformOutput;
|
|
113
|
+
readonly dnsResolverStateOutput: cdktf.TerraformOutput;
|
|
114
|
+
readonly provisioningStateOutput: cdktf.TerraformOutput;
|
|
115
|
+
readonly resourceGuidOutput: cdktf.TerraformOutput;
|
|
116
|
+
readonly virtualNetworkId: string;
|
|
117
|
+
/**
|
|
118
|
+
* Creates a new Azure DNS Resolver using the VersionedAzapiResource framework
|
|
119
|
+
*
|
|
120
|
+
* @param scope - The scope in which to define this construct
|
|
121
|
+
* @param id - The unique identifier for this instance
|
|
122
|
+
* @param props - Configuration properties for the DNS Resolver
|
|
123
|
+
*/
|
|
124
|
+
constructor(scope: Construct, id: string, props: DnsResolverProps);
|
|
125
|
+
/**
|
|
126
|
+
* Gets the default API version to use when no explicit version is specified
|
|
127
|
+
*/
|
|
128
|
+
protected defaultVersion(): string;
|
|
129
|
+
/**
|
|
130
|
+
* Gets the Azure resource type for DNS Resolvers
|
|
131
|
+
*/
|
|
132
|
+
protected resourceType(): string;
|
|
133
|
+
/**
|
|
134
|
+
* Gets the API schema for the resolved version
|
|
135
|
+
*/
|
|
136
|
+
protected apiSchema(): ApiSchema;
|
|
137
|
+
/**
|
|
138
|
+
* Indicates that location is required for DNS Resolvers
|
|
139
|
+
*/
|
|
140
|
+
protected requiresLocation(): boolean;
|
|
141
|
+
/**
|
|
142
|
+
* Creates the resource body for the Azure API call
|
|
143
|
+
*/
|
|
144
|
+
protected createResourceBody(props: any): any;
|
|
145
|
+
/**
|
|
146
|
+
* Get the state of the DNS Resolver
|
|
147
|
+
* Returns either "Connected" (resolver operational) or "Disconnected" (resolver not functioning)
|
|
148
|
+
*/
|
|
149
|
+
get dnsResolverState(): string;
|
|
150
|
+
/**
|
|
151
|
+
* Get the provisioning state of the DNS Resolver
|
|
152
|
+
*/
|
|
153
|
+
get provisioningState(): string;
|
|
154
|
+
/**
|
|
155
|
+
* Get the unique identifier for the DNS Resolver resource
|
|
156
|
+
*/
|
|
157
|
+
get resourceGuid(): string;
|
|
158
|
+
/**
|
|
159
|
+
* Add a tag to the DNS Resolver
|
|
160
|
+
*/
|
|
161
|
+
addTag(key: string, value: string): void;
|
|
162
|
+
/**
|
|
163
|
+
* Remove a tag from the DNS Resolver
|
|
164
|
+
*/
|
|
165
|
+
removeTag(key: string): void;
|
|
166
|
+
/**
|
|
167
|
+
* Applies ignore changes lifecycle rules if specified in props
|
|
168
|
+
*/
|
|
169
|
+
private _applyIgnoreChanges;
|
|
170
|
+
}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.DnsResolver = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
/**
|
|
7
|
+
* Unified Azure DNS Private Resolver implementation using VersionedAzapiResource framework
|
|
8
|
+
*
|
|
9
|
+
* This class provides a single, version-aware implementation that automatically handles
|
|
10
|
+
* version management, schema validation, and property transformation across all
|
|
11
|
+
* supported API versions.
|
|
12
|
+
*
|
|
13
|
+
* Supported API Versions:
|
|
14
|
+
* - 2022-07-01 (Active, Latest)
|
|
15
|
+
*
|
|
16
|
+
* Features:
|
|
17
|
+
* - Automatic latest version resolution when no version is specified
|
|
18
|
+
* - Explicit version pinning for stability requirements
|
|
19
|
+
* - Schema-driven validation and transformation
|
|
20
|
+
* - Full backward compatibility with existing interface
|
|
21
|
+
* - JSII compliance for multi-language support
|
|
22
|
+
* - Hybrid DNS scenarios with conditional forwarding
|
|
23
|
+
*/
|
|
24
|
+
const cdktf = require("cdktf");
|
|
25
|
+
const dns_resolver_schemas_1 = require("./dns-resolver-schemas");
|
|
26
|
+
const azapi_resource_1 = require("../../core-azure/lib/azapi/azapi-resource");
|
|
27
|
+
/**
|
|
28
|
+
* Unified Azure DNS Resolver implementation
|
|
29
|
+
*
|
|
30
|
+
* This class provides a single, version-aware implementation that replaces all
|
|
31
|
+
* version-specific DNS Resolver classes. It automatically handles version
|
|
32
|
+
* resolution, schema validation, and property transformation while maintaining
|
|
33
|
+
* full backward compatibility.
|
|
34
|
+
*
|
|
35
|
+
* Azure DNS Private Resolvers enable hybrid DNS scenarios, allowing conditional
|
|
36
|
+
* forwarding between Azure, on-premises, and other cloud providers. They provide
|
|
37
|
+
* DNS resolution for resources in Azure virtual networks.
|
|
38
|
+
*
|
|
39
|
+
* Key Requirements:
|
|
40
|
+
* - Requires a dedicated subnet with delegation to Microsoft.Network/dnsResolvers
|
|
41
|
+
* - Subnet must be between /28 and /24 in size
|
|
42
|
+
* - Each subscription can have up to 15 DNS resolvers
|
|
43
|
+
* - Regional resource (unlike DNS zones which are global)
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* // Basic DNS resolver with automatic version resolution:
|
|
47
|
+
* const dnsResolver = new DnsResolver(this, "resolver", {
|
|
48
|
+
* name: "my-dns-resolver",
|
|
49
|
+
* location: "eastus",
|
|
50
|
+
* resourceGroupId: resourceGroup.id,
|
|
51
|
+
* virtualNetworkId: vnet.id,
|
|
52
|
+
* });
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* // DNS resolver with tags:
|
|
56
|
+
* const dnsResolver = new DnsResolver(this, "resolver", {
|
|
57
|
+
* name: "my-dns-resolver",
|
|
58
|
+
* location: "eastus",
|
|
59
|
+
* resourceGroupId: resourceGroup.id,
|
|
60
|
+
* virtualNetworkId: vnet.id,
|
|
61
|
+
* tags: {
|
|
62
|
+
* environment: "production",
|
|
63
|
+
* purpose: "hybrid-dns"
|
|
64
|
+
* }
|
|
65
|
+
* });
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* // DNS resolver with explicit version pinning:
|
|
69
|
+
* const dnsResolver = new DnsResolver(this, "resolver", {
|
|
70
|
+
* name: "my-dns-resolver",
|
|
71
|
+
* location: "eastus",
|
|
72
|
+
* resourceGroupId: resourceGroup.id,
|
|
73
|
+
* virtualNetworkId: vnet.id,
|
|
74
|
+
* apiVersion: "2022-07-01",
|
|
75
|
+
* });
|
|
76
|
+
*
|
|
77
|
+
* @stability stable
|
|
78
|
+
*/
|
|
79
|
+
class DnsResolver extends azapi_resource_1.AzapiResource {
|
|
80
|
+
/**
|
|
81
|
+
* Creates a new Azure DNS Resolver using the VersionedAzapiResource framework
|
|
82
|
+
*
|
|
83
|
+
* @param scope - The scope in which to define this construct
|
|
84
|
+
* @param id - The unique identifier for this instance
|
|
85
|
+
* @param props - Configuration properties for the DNS Resolver
|
|
86
|
+
*/
|
|
87
|
+
constructor(scope, id, props) {
|
|
88
|
+
super(scope, id, props);
|
|
89
|
+
this.props = props;
|
|
90
|
+
// Extract properties from the AZAPI resource outputs
|
|
91
|
+
this.virtualNetworkId = props.virtualNetworkId;
|
|
92
|
+
// Create Terraform outputs
|
|
93
|
+
this.idOutput = new cdktf.TerraformOutput(this, "id", {
|
|
94
|
+
value: this.id,
|
|
95
|
+
description: "The ID of the DNS Resolver",
|
|
96
|
+
});
|
|
97
|
+
this.locationOutput = new cdktf.TerraformOutput(this, "location", {
|
|
98
|
+
value: `\${${this.terraformResource.fqn}.location}`,
|
|
99
|
+
description: "The location of the DNS Resolver",
|
|
100
|
+
});
|
|
101
|
+
this.nameOutput = new cdktf.TerraformOutput(this, "name", {
|
|
102
|
+
value: `\${${this.terraformResource.fqn}.name}`,
|
|
103
|
+
description: "The name of the DNS Resolver",
|
|
104
|
+
});
|
|
105
|
+
this.tagsOutput = new cdktf.TerraformOutput(this, "tags", {
|
|
106
|
+
value: `\${${this.terraformResource.fqn}.tags}`,
|
|
107
|
+
description: "The tags assigned to the DNS Resolver",
|
|
108
|
+
});
|
|
109
|
+
this.dnsResolverStateOutput = new cdktf.TerraformOutput(this, "dns_resolver_state", {
|
|
110
|
+
value: `\${${this.terraformResource.fqn}.output.properties.dnsResolverState}`,
|
|
111
|
+
description: "The state of the DNS Resolver (Connected or Disconnected)",
|
|
112
|
+
});
|
|
113
|
+
this.provisioningStateOutput = new cdktf.TerraformOutput(this, "provisioning_state", {
|
|
114
|
+
value: `\${${this.terraformResource.fqn}.output.properties.provisioningState}`,
|
|
115
|
+
description: "The provisioning state of the DNS Resolver resource",
|
|
116
|
+
});
|
|
117
|
+
this.resourceGuidOutput = new cdktf.TerraformOutput(this, "resource_guid", {
|
|
118
|
+
value: `\${${this.terraformResource.fqn}.output.properties.resourceGuid}`,
|
|
119
|
+
description: "The unique identifier for the DNS Resolver resource",
|
|
120
|
+
});
|
|
121
|
+
// Override logical IDs
|
|
122
|
+
this.idOutput.overrideLogicalId("id");
|
|
123
|
+
this.locationOutput.overrideLogicalId("location");
|
|
124
|
+
this.nameOutput.overrideLogicalId("name");
|
|
125
|
+
this.tagsOutput.overrideLogicalId("tags");
|
|
126
|
+
this.dnsResolverStateOutput.overrideLogicalId("dns_resolver_state");
|
|
127
|
+
this.provisioningStateOutput.overrideLogicalId("provisioning_state");
|
|
128
|
+
this.resourceGuidOutput.overrideLogicalId("resource_guid");
|
|
129
|
+
// Apply ignore changes if specified
|
|
130
|
+
this._applyIgnoreChanges();
|
|
131
|
+
}
|
|
132
|
+
// =============================================================================
|
|
133
|
+
// REQUIRED ABSTRACT METHODS FROM AzapiResource
|
|
134
|
+
// =============================================================================
|
|
135
|
+
/**
|
|
136
|
+
* Gets the default API version to use when no explicit version is specified
|
|
137
|
+
*/
|
|
138
|
+
defaultVersion() {
|
|
139
|
+
return "2022-07-01";
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Gets the Azure resource type for DNS Resolvers
|
|
143
|
+
*/
|
|
144
|
+
resourceType() {
|
|
145
|
+
return dns_resolver_schemas_1.DNS_RESOLVER_TYPE;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Gets the API schema for the resolved version
|
|
149
|
+
*/
|
|
150
|
+
apiSchema() {
|
|
151
|
+
return this.resolveSchema();
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Indicates that location is required for DNS Resolvers
|
|
155
|
+
*/
|
|
156
|
+
requiresLocation() {
|
|
157
|
+
return true;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Creates the resource body for the Azure API call
|
|
161
|
+
*/
|
|
162
|
+
createResourceBody(props) {
|
|
163
|
+
const typedProps = props;
|
|
164
|
+
const body = {
|
|
165
|
+
location: this.location,
|
|
166
|
+
tags: this.allTags(),
|
|
167
|
+
properties: {
|
|
168
|
+
virtualNetwork: {
|
|
169
|
+
id: typedProps.virtualNetworkId,
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
};
|
|
173
|
+
return body;
|
|
174
|
+
}
|
|
175
|
+
// =============================================================================
|
|
176
|
+
// PUBLIC METHODS FOR DNS RESOLVER OPERATIONS
|
|
177
|
+
// =============================================================================
|
|
178
|
+
/**
|
|
179
|
+
* Get the state of the DNS Resolver
|
|
180
|
+
* Returns either "Connected" (resolver operational) or "Disconnected" (resolver not functioning)
|
|
181
|
+
*/
|
|
182
|
+
get dnsResolverState() {
|
|
183
|
+
return `\${${this.terraformResource.fqn}.output.properties.dnsResolverState}`;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Get the provisioning state of the DNS Resolver
|
|
187
|
+
*/
|
|
188
|
+
get provisioningState() {
|
|
189
|
+
return `\${${this.terraformResource.fqn}.output.properties.provisioningState}`;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Get the unique identifier for the DNS Resolver resource
|
|
193
|
+
*/
|
|
194
|
+
get resourceGuid() {
|
|
195
|
+
return `\${${this.terraformResource.fqn}.output.properties.resourceGuid}`;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Add a tag to the DNS Resolver
|
|
199
|
+
*/
|
|
200
|
+
addTag(key, value) {
|
|
201
|
+
if (!this.props.tags) {
|
|
202
|
+
this.props.tags = {};
|
|
203
|
+
}
|
|
204
|
+
this.props.tags[key] = value;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Remove a tag from the DNS Resolver
|
|
208
|
+
*/
|
|
209
|
+
removeTag(key) {
|
|
210
|
+
if (this.props.tags && this.props.tags[key]) {
|
|
211
|
+
delete this.props.tags[key];
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
// =============================================================================
|
|
215
|
+
// PRIVATE HELPER METHODS
|
|
216
|
+
// =============================================================================
|
|
217
|
+
/**
|
|
218
|
+
* Applies ignore changes lifecycle rules if specified in props
|
|
219
|
+
*/
|
|
220
|
+
_applyIgnoreChanges() {
|
|
221
|
+
if (this.props.ignoreChanges && this.props.ignoreChanges.length > 0) {
|
|
222
|
+
this.terraformResource.addOverride("lifecycle", [
|
|
223
|
+
{
|
|
224
|
+
ignore_changes: this.props.ignoreChanges,
|
|
225
|
+
},
|
|
226
|
+
]);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
exports.DnsResolver = DnsResolver;
|
|
231
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
232
|
+
DnsResolver[_a] = { fqn: "@microsoft/terraform-cdk-constructs.DnsResolver", version: "1.3.1" };
|
|
233
|
+
(() => {
|
|
234
|
+
azapi_resource_1.AzapiResource.registerSchemas(dns_resolver_schemas_1.DNS_RESOLVER_TYPE, dns_resolver_schemas_1.ALL_DNS_RESOLVER_VERSIONS);
|
|
235
|
+
})();
|
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zLXJlc29sdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLWRuc3Jlc29sdmVyL2xpYi9kbnMtcmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFFSCwrQkFBK0I7QUFFL0IsaUVBR2dDO0FBQ2hDLDhFQUdtRDtBQXFDbkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1ERztBQUNILE1BQWEsV0FBWSxTQUFRLDhCQUFhO0lBbUI1Qzs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXVCO1FBQy9ELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRW5CLHFEQUFxRDtRQUNyRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDO1FBRS9DLDJCQUEyQjtRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ3BELEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNkLFdBQVcsRUFBRSw0QkFBNEI7U0FDMUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNoRSxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxZQUFZO1lBQ25ELFdBQVcsRUFBRSxrQ0FBa0M7U0FDaEQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUN4RCxLQUFL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LEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhO2lCQUN6QzthQUNGLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOztBQTNNSCxrQ0E0TUM7OztBQTNNQztJQUNFLDhCQUFhLENBQUMsZUFBZSxDQUFDLHdDQUFpQixFQUFFLGdEQUF5QixDQUFDLENBQUM7QUFDOUUsQ0FBQyxHQUFBLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFVuaWZpZWQgQXp1cmUgRE5TIFByaXZhdGUgUmVzb2x2ZXIgaW1wbGVtZW50YXRpb24gdXNpbmcgVmVyc2lvbmVkQXphcGlSZXNvdXJjZSBmcmFtZXdvcmtcbiAqXG4gKiBUaGlzIGNsYXNzIHByb3ZpZGVzIGEgc2luZ2xlLCB2ZXJzaW9uLWF3YXJlIGltcGxlbWVudGF0aW9uIHRoYXQgYXV0b21hdGljYWxseSBoYW5kbGVzXG4gKiB2ZXJzaW9uIG1hbmFnZW1lbnQsIHNjaGVtYSB2YWxpZGF0aW9uLCBhbmQgcHJvcGVydHkgdHJhbnNmb3JtYXRpb24gYWNyb3NzIGFsbFxuICogc3VwcG9ydGVkIEFQSSB2ZXJzaW9ucy5cbiAqXG4gKiBTdXBwb3J0ZWQgQVBJIFZlcnNpb25zOlxuICogLSAyMDIyLTA3LTAxIChBY3RpdmUsIExhdGVzdClcbiAqXG4gKiBGZWF0dXJlczpcbiAqIC0gQXV0b21hdGljIGxhdGVzdCB2ZXJzaW9uIHJlc29sdXRpb24gd2hlbiBubyB2ZXJzaW9uIGlzIHNwZWNpZmllZFxuICogLSBFeHBsaWNpdCB2ZXJzaW9uIHBpbm5pbmcgZm9yIHN0YWJpbGl0eSByZXF1aXJlbWVudHNcbiAqIC0gU2NoZW1hLWRyaXZlbiB2YWxpZGF0aW9uIGFuZCB0cmFuc2Zvcm1hdGlvblxuICogLSBGdWxsIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCBleGlzdGluZyBpbnRlcmZhY2VcbiAqIC0gSlNJSSBjb21wbGlhbmNlIGZvciBtdWx0aS1sYW5ndWFnZSBzdXBwb3J0XG4gKiAtIEh5YnJpZCBETlMgc2NlbmFyaW9zIHdpdGggY29uZGl0aW9uYWwgZm9yd2FyZGluZ1xuICovXG5cbmltcG9ydCAqIGFzIGNka3RmIGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIEFMTF9ETlNfUkVTT0xWRVJfVkVSU0lPTlMsXG4gIEROU19SRVNPTFZFUl9UWVBFLFxufSBmcm9tIFwiLi9kbnMtcmVzb2x2ZXItc2NoZW1hc1wiO1xuaW1wb3J0IHtcbiAgQXphcGlSZXNvdXJjZSxcbiAgQXphcGlSZXNvdXJjZVByb3BzLFxufSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvYXphcGkvYXphcGktcmVzb3VyY2VcIjtcbmltcG9ydCB7IEFwaVNjaGVtYSB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0aGUgdW5pZmllZCBBenVyZSBETlMgUmVzb2x2ZXJcbiAqXG4gKiBFeHRlbmRzIEF6YXBpUmVzb3VyY2VQcm9wcyB3aXRoIEROUyBSZXNvbHZlciBzcGVjaWZpYyBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG5zUmVzb2x2ZXJQcm9wcyBleHRlbmRzIEF6YXBpUmVzb3VyY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UgSUQgb2YgdGhlIHZpcnR1YWwgbmV0d29yayB3aGVyZSB0aGUgRE5TIFJlc29sdmVyIHdpbGwgYmUgZGVwbG95ZWRcbiAgICogVGhlIHJlc29sdmVyIHJlcXVpcmVzIGEgZGVkaWNhdGVkIHN1Ym5ldCB3aXRoIGRlbGVnYXRpb24gdG8gTWljcm9zb2Z0Lk5ldHdvcmsvZG5zUmVzb2x2ZXJzXG4gICAqL1xuICByZWFkb25seSB2aXJ0dWFsTmV0d29ya0lkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsaWZlY3ljbGUgcnVsZXMgdG8gaWdub3JlIGNoYW5nZXNcbiAgICogQGV4YW1wbGUgW1widGFnc1wiXVxuICAgKi9cbiAgcmVhZG9ubHkgaWdub3JlQ2hhbmdlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZSBncm91cCBJRCB3aGVyZSB0aGUgRE5TIFJlc29sdmVyIHdpbGwgYmUgY3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VHcm91cElkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSByZXNvdXJjZSBib2R5IGludGVyZmFjZSBmb3IgQXp1cmUgRE5TIFJlc29sdmVyIEFQSSBjYWxsc1xuICogVGhpcyBtYXRjaGVzIHRoZSBBenVyZSBSRVNUIEFQSSBzY2hlbWFcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEbnNSZXNvbHZlckJvZHkge1xuICByZWFkb25seSBsb2NhdGlvbjogc3RyaW5nO1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgcmVhZG9ubHkgcHJvcGVydGllcz86IGFueTtcbn1cblxuLyoqXG4gKiBVbmlmaWVkIEF6dXJlIEROUyBSZXNvbHZlciBpbXBsZW1lbnRhdGlvblxuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSBzaW5nbGUsIHZlcnNpb24tYXdhcmUgaW1wbGVtZW50YXRpb24gdGhhdCByZXBsYWNlcyBhbGxcbiAqIHZlcnNpb24tc3BlY2lmaWMgRE5TIFJlc29sdmVyIGNsYXNzZXMuIEl0IGF1dG9tYXRpY2FsbHkgaGFuZGxlcyB2ZXJzaW9uXG4gKiByZXNvbHV0aW9uLCBzY2hlbWEgdmFsaWRhdGlvbiwgYW5kIHByb3BlcnR5IHRyYW5zZm9ybWF0aW9uIHdoaWxlIG1haW50YWluaW5nXG4gKiBmdWxsIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gKlxuICogQXp1cmUgRE5TIFByaXZhdGUgUmVzb2x2ZXJzIGVuYWJsZSBoeWJyaWQgRE5TIHNjZW5hcmlvcywgYWxsb3dpbmcgY29uZGl0aW9uYWxcbiAqIGZvcndhcmRpbmcgYmV0d2VlbiBBenVyZSwgb24tcHJlbWlzZXMsIGFuZCBvdGhlciBjbG91ZCBwcm92aWRlcnMuIFRoZXkgcHJvdmlkZVxuICogRE5TIHJlc29sdXRpb24gZm9yIHJlc291cmNlcyBpbiBBenVyZSB2aXJ0dWFsIG5ldHdvcmtzLlxuICpcbiAqIEtleSBSZXF1aXJlbWVudHM6XG4gKiAtIFJlcXVpcmVzIGEgZGVkaWNhdGVkIHN1Ym5ldCB3aXRoIGRlbGVnYXRpb24gdG8gTWljcm9zb2Z0Lk5ldHdvcmsvZG5zUmVzb2x2ZXJzXG4gKiAtIFN1Ym5ldCBtdXN0IGJlIGJldHdlZW4gLzI4IGFuZCAvMjQgaW4gc2l6ZVxuICogLSBFYWNoIHN1YnNjcmlwdGlvbiBjYW4gaGF2ZSB1cCB0byAxNSBETlMgcmVzb2x2ZXJzXG4gKiAtIFJlZ2lvbmFsIHJlc291cmNlICh1bmxpa2UgRE5TIHpvbmVzIHdoaWNoIGFyZSBnbG9iYWwpXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEJhc2ljIEROUyByZXNvbHZlciB3aXRoIGF1dG9tYXRpYyB2ZXJzaW9uIHJlc29sdXRpb246XG4gKiBjb25zdCBkbnNSZXNvbHZlciA9IG5ldyBEbnNSZXNvbHZlcih0aGlzLCBcInJlc29sdmVyXCIsIHtcbiAqICAgbmFtZTogXCJteS1kbnMtcmVzb2x2ZXJcIixcbiAqICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gKiAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAqICAgdmlydHVhbE5ldHdvcmtJZDogdm5ldC5pZCxcbiAqIH0pO1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBETlMgcmVzb2x2ZXIgd2l0aCB0YWdzOlxuICogY29uc3QgZG5zUmVzb2x2ZXIgPSBuZXcgRG5zUmVzb2x2ZXIodGhpcywgXCJyZXNvbHZlclwiLCB7XG4gKiAgIG5hbWU6IFwibXktZG5zLXJlc29sdmVyXCIsXG4gKiAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICogICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gKiAgIHZpcnR1YWxOZXR3b3JrSWQ6IHZuZXQuaWQsXG4gKiAgIHRhZ3M6IHtcbiAqICAgICBlbnZpcm9ubWVudDogXCJwcm9kdWN0aW9uXCIsXG4gKiAgICAgcHVycG9zZTogXCJoeWJyaWQtZG5zXCJcbiAqICAgfVxuICogfSk7XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEROUyByZXNvbHZlciB3aXRoIGV4cGxpY2l0IHZlcnNpb24gcGlubmluZzpcbiAqIGNvbnN0IGRuc1Jlc29sdmVyID0gbmV3IERuc1Jlc29sdmVyKHRoaXMsIFwicmVzb2x2ZXJcIiwge1xuICogICBuYW1lOiBcIm15LWRucy1yZXNvbHZlclwiLFxuICogICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAqICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICogICB2aXJ0dWFsTmV0d29ya0lkOiB2bmV0LmlkLFxuICogICBhcGlWZXJzaW9uOiBcIjIwMjItMDctMDFcIixcbiAqIH0pO1xuICpcbiAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gKi9cbmV4cG9ydCBjbGFzcyBEbnNSZXNvbHZlciBleHRlbmRzIEF6YXBpUmVzb3VyY2Uge1xuICBzdGF0aWMge1xuICAgIEF6YXBpUmVzb3VyY2UucmVnaXN0ZXJTY2hlbWFzKEROU19SRVNPTFZFUl9UWVBFLCBBTExfRE5TX1JFU09MVkVSX1ZFUlNJT05TKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBwcm9wczogRG5zUmVzb2x2ZXJQcm9wcztcblxuICAvLyBPdXRwdXQgcHJvcGVydGllcyBmb3IgZWFzeSBhY2Nlc3MgYW5kIHJlZmVyZW5jaW5nXG4gIHB1YmxpYyByZWFkb25seSBpZE91dHB1dDogY2RrdGYuVGVycmFmb3JtT3V0cHV0O1xuICBwdWJsaWMgcmVhZG9ubHkgbG9jYXRpb25PdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IHRhZ3NPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IGRuc1Jlc29sdmVyU3RhdGVPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IHByb3Zpc2lvbmluZ1N0YXRlT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZUd1aWRPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcblxuICAvLyBQdWJsaWMgcHJvcGVydGllc1xuICBwdWJsaWMgcmVhZG9ubHkgdmlydHVhbE5ldHdvcmtJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IEF6dXJlIEROUyBSZXNvbHZlciB1c2luZyB0aGUgVmVyc2lvbmVkQXphcGlSZXNvdXJjZSBmcmFtZXdvcmtcbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gVGhlIHNjb3BlIGluIHdoaWNoIHRvIGRlZmluZSB0aGlzIGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgaW5zdGFuY2VcbiAgICogQHBhcmFtIHByb3BzIC0gQ29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGZvciB0aGUgRE5TIFJlc29sdmVyXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRG5zUmVzb2x2ZXJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuXG4gICAgLy8gRXh0cmFjdCBwcm9wZXJ0aWVzIGZyb20gdGhlIEFaQVBJIHJlc291cmNlIG91dHB1dHNcbiAgICB0aGlzLnZpcnR1YWxOZXR3b3JrSWQgPSBwcm9wcy52aXJ0dWFsTmV0d29ya0lkO1xuXG4gICAgLy8gQ3JlYXRlIFRlcnJhZm9ybSBvdXRwdXRzXG4gICAgdGhpcy5pZE91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJpZFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5pZCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBJRCBvZiB0aGUgRE5TIFJlc29sdmVyXCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLmxvY2F0aW9uT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcImxvY2F0aW9uXCIsIHtcbiAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59LmxvY2F0aW9ufWAsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgbG9jYXRpb24gb2YgdGhlIEROUyBSZXNvbHZlclwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5uYW1lT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcIm5hbWVcIiwge1xuICAgICAgdmFsdWU6IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ubmFtZX1gLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIG5hbWUgb2YgdGhlIEROUyBSZXNvbHZlclwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy50YWdzT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcInRhZ3NcIiwge1xuICAgICAgdmFsdWU6IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0udGFnc31gLFxuICAgICAgZGVzY3JpcHRpb246IFwiVGhlIHRhZ3MgYXNzaWduZWQgdG8gdGhlIEROUyBSZXNvbHZlclwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5kbnNSZXNvbHZlclN0YXRlT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBcImRuc19yZXNvbHZlcl9zdGF0ZVwiLFxuICAgICAge1xuICAgICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5vdXRwdXQucHJvcGVydGllcy5kbnNSZXNvbHZlclN0YXRlfWAsXG4gICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgIFwiVGhlIHN0YXRlIG9mIHRoZSBETlMgUmVzb2x2ZXIgKENvbm5lY3RlZCBvciBEaXNjb25uZWN0ZWQpXCIsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICB0aGlzLnByb3Zpc2lvbmluZ1N0YXRlT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBcInByb3Zpc2lvbmluZ19zdGF0ZVwiLFxuICAgICAge1xuICAgICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5vdXRwdXQucHJvcGVydGllcy5wcm92aXNpb25pbmdTdGF0ZX1gLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJUaGUgcHJvdmlzaW9uaW5nIHN0YXRlIG9mIHRoZSBETlMgUmVzb2x2ZXIgcmVzb3VyY2VcIixcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMucmVzb3VyY2VHdWlkT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcInJlc291cmNlX2d1aWRcIiwge1xuICAgICAgdmFsdWU6IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ub3V0cHV0LnByb3BlcnRpZXMucmVzb3VyY2VHdWlkfWAsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBETlMgUmVzb2x2ZXIgcmVzb3VyY2VcIixcbiAgICB9KTtcblxuICAgIC8vIE92ZXJyaWRlIGxvZ2ljYWwgSURzXG4gICAgdGhpcy5pZE91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcImlkXCIpO1xuICAgIHRoaXMubG9jYXRpb25PdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJsb2NhdGlvblwiKTtcbiAgICB0aGlzLm5hbWVPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJuYW1lXCIpO1xuICAgIHRoaXMudGFnc091dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcInRhZ3NcIik7XG4gICAgdGhpcy5kbnNSZXNvbHZlclN0YXRlT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwiZG5zX3Jlc29sdmVyX3N0YXRlXCIpO1xuICAgIHRoaXMucHJvdmlzaW9uaW5nU3RhdGVPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJwcm92aXNpb25pbmdfc3RhdGVcIik7XG4gICAgdGhpcy5yZXNvdXJjZUd1aWRPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJyZXNvdXJjZV9ndWlkXCIpO1xuXG4gICAgLy8gQXBwbHkgaWdub3JlIGNoYW5nZXMgaWYgc3BlY2lmaWVkXG4gICAgdGhpcy5fYXBwbHlJZ25vcmVDaGFuZ2VzKCk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBSRVFVSVJFRCBBQlNUUkFDVCBNRVRIT0RTIEZST00gQXphcGlSZXNvdXJjZVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBkZWZhdWx0IEFQSSB2ZXJzaW9uIHRvIHVzZSB3aGVuIG5vIGV4cGxpY2l0IHZlcnNpb24gaXMgc3BlY2lmaWVkXG4gICAqL1xuICBwcm90ZWN0ZWQgZGVmYXVsdFZlcnNpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gXCIyMDIyLTA3LTAxXCI7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgQXp1cmUgcmVzb3VyY2UgdHlwZSBmb3IgRE5TIFJlc29sdmVyc1xuICAgKi9cbiAgcHJvdGVjdGVkIHJlc291cmNlVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBETlNfUkVTT0xWRVJfVFlQRTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBUEkgc2NoZW1hIGZvciB0aGUgcmVzb2x2ZWQgdmVyc2lvblxuICAgKi9cbiAgcHJvdGVjdGVkIGFwaVNjaGVtYSgpOiBBcGlTY2hlbWEge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVTY2hlbWEoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhhdCBsb2NhdGlvbiBpcyByZXF1aXJlZCBmb3IgRE5TIFJlc29sdmVyc1xuICAgKi9cbiAgcHJvdGVjdGVkIHJlcXVpcmVzTG9jYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgcmVzb3VyY2UgYm9keSBmb3IgdGhlIEF6dXJlIEFQSSBjYWxsXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlUmVzb3VyY2VCb2R5KHByb3BzOiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IHR5cGVkUHJvcHMgPSBwcm9wcyBhcyBEbnNSZXNvbHZlclByb3BzO1xuXG4gICAgY29uc3QgYm9keTogRG5zUmVzb2x2ZXJCb2R5ID0ge1xuICAgICAgbG9jYXRpb246IHRoaXMubG9jYXRpb24hLFxuICAgICAgdGFnczogdGhpcy5hbGxUYWdzKCksXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIHZpcnR1YWxOZXR3b3JrOiB7XG4gICAgICAgICAgaWQ6IHR5cGVkUHJvcHMudmlydHVhbE5ldHdvcmtJZCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIHJldHVybiBib2R5O1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUFVCTElDIE1FVEhPRFMgRk9SIEROUyBSRVNPTFZFUiBPUEVSQVRJT05TXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgc3RhdGUgb2YgdGhlIEROUyBSZXNvbHZlclxuICAgKiBSZXR1cm5zIGVpdGhlciBcIkNvbm5lY3RlZFwiIChyZXNvbHZlciBvcGVyYXRpb25hbCkgb3IgXCJEaXNjb25uZWN0ZWRcIiAocmVzb2x2ZXIgbm90IGZ1bmN0aW9uaW5nKVxuICAgKi9cbiAgcHVibGljIGdldCBkbnNSZXNvbHZlclN0YXRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ub3V0cHV0LnByb3BlcnRpZXMuZG5zUmVzb2x2ZXJTdGF0ZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcHJvdmlzaW9uaW5nIHN0YXRlIG9mIHRoZSBETlMgUmVzb2x2ZXJcbiAgICovXG4gIHB1YmxpYyBnZXQgcHJvdmlzaW9uaW5nU3RhdGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5vdXRwdXQucHJvcGVydGllcy5wcm92aXNpb25pbmdTdGF0ZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBETlMgUmVzb2x2ZXIgcmVzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBnZXQgcmVzb3VyY2VHdWlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ub3V0cHV0LnByb3BlcnRpZXMucmVzb3VyY2VHdWlkfWA7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgdGFnIHRvIHRoZSBETlMgUmVzb2x2ZXJcbiAgICovXG4gIHB1YmxpYyBhZGRUYWcoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucHJvcHMudGFncykge1xuICAgICAgKHRoaXMucHJvcHMgYXMgYW55KS50YWdzID0ge307XG4gICAgfVxuICAgIHRoaXMucHJvcHMudGFncyFba2V5XSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhIHRhZyBmcm9tIHRoZSBETlMgUmVzb2x2ZXJcbiAgICovXG4gIHB1YmxpYyByZW1vdmVUYWcoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy50YWdzICYmIHRoaXMucHJvcHMudGFnc1trZXldKSB7XG4gICAgICBkZWxldGUgdGhpcy5wcm9wcy50YWdzW2tleV07XG4gICAgfVxuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUFJJVkFURSBIRUxQRVIgTUVUSE9EU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIGlnbm9yZSBjaGFuZ2VzIGxpZmVjeWNsZSBydWxlcyBpZiBzcGVjaWZpZWQgaW4gcHJvcHNcbiAgICovXG4gIHByaXZhdGUgX2FwcGx5SWdub3JlQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcm9wcy5pZ25vcmVDaGFuZ2VzICYmIHRoaXMucHJvcHMuaWdub3JlQ2hhbmdlcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnRlcnJhZm9ybVJlc291cmNlLmFkZE92ZXJyaWRlKFwibGlmZWN5Y2xlXCIsIFtcbiAgICAgICAge1xuICAgICAgICAgIGlnbm9yZV9jaGFuZ2VzOiB0aGlzLnByb3BzLmlnbm9yZUNoYW5nZXMsXG4gICAgICAgIH0sXG4gICAgICBdKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API schemas for Azure DNS Resolver Inbound Endpoints across all supported versions
|
|
3
|
+
*
|
|
4
|
+
* This file defines the complete API schemas for Microsoft.Network/dnsResolvers/inboundEndpoints
|
|
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 DNS Resolver Inbound Endpoint version 2022-07-01
|
|
11
|
+
*/
|
|
12
|
+
export declare const DNS_RESOLVER_INBOUND_ENDPOINT_SCHEMA_2022_07_01: ApiSchema;
|
|
13
|
+
/**
|
|
14
|
+
* Version configuration for DNS Resolver Inbound Endpoint 2022-07-01
|
|
15
|
+
*/
|
|
16
|
+
export declare const DNS_RESOLVER_INBOUND_ENDPOINT_VERSION_2022_07_01: VersionConfig;
|
|
17
|
+
/**
|
|
18
|
+
* All supported DNS Resolver Inbound Endpoint versions for registration
|
|
19
|
+
*/
|
|
20
|
+
export declare const ALL_DNS_RESOLVER_INBOUND_ENDPOINT_VERSIONS: VersionConfig[];
|
|
21
|
+
/**
|
|
22
|
+
* Resource type constant
|
|
23
|
+
*/
|
|
24
|
+
export declare const DNS_RESOLVER_INBOUND_ENDPOINT_TYPE = "Microsoft.Network/dnsResolvers/inboundEndpoints";
|