@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,285 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Comprehensive tests for the DnsForwardingRulesetVirtualNetworkLink implementation
|
|
4
|
+
*
|
|
5
|
+
* This test suite validates the DnsForwardingRulesetVirtualNetworkLink class using the
|
|
6
|
+
* AzapiResource framework. Tests cover automatic version resolution,
|
|
7
|
+
* explicit version pinning, schema validation, property transformation,
|
|
8
|
+
* parent-child resource relationships, and full backward compatibility.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
const cdktf_1 = require("cdktf");
|
|
12
|
+
const cdktf = require("cdktf");
|
|
13
|
+
const api_version_manager_1 = require("../../core-azure/lib/version-manager/api-version-manager");
|
|
14
|
+
const version_interfaces_1 = require("../../core-azure/lib/version-manager/interfaces/version-interfaces");
|
|
15
|
+
const virtual_network_link_1 = require("../lib/virtual-network-link");
|
|
16
|
+
const virtual_network_link_schemas_1 = require("../lib/virtual-network-link-schemas");
|
|
17
|
+
describe("DnsForwardingRulesetVirtualNetworkLink - Implementation", () => {
|
|
18
|
+
let app;
|
|
19
|
+
let stack;
|
|
20
|
+
let manager;
|
|
21
|
+
const mockRulesetId = "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/test-rg/providers/Microsoft.Network/dnsForwardingRulesets/test-ruleset";
|
|
22
|
+
const mockVirtualNetworkId = "/subscriptions/12345678-1234-1234-1234-123456789012/resourceGroups/test-rg/providers/Microsoft.Network/virtualNetworks/test-vnet";
|
|
23
|
+
beforeEach(() => {
|
|
24
|
+
app = cdktf_1.Testing.app();
|
|
25
|
+
stack = new cdktf.TerraformStack(app, "TestStack");
|
|
26
|
+
manager = api_version_manager_1.ApiVersionManager.instance();
|
|
27
|
+
// Ensure schemas are registered
|
|
28
|
+
try {
|
|
29
|
+
manager.registerResourceType(virtual_network_link_schemas_1.VIRTUAL_NETWORK_LINK_TYPE, virtual_network_link_schemas_1.ALL_VIRTUAL_NETWORK_LINK_VERSIONS);
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
// Ignore if already registered
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
describe("Constructor and Basic Properties", () => {
|
|
36
|
+
it("should create Virtual Network Link with automatic latest version resolution", () => {
|
|
37
|
+
const props = {
|
|
38
|
+
name: "my-vnet-link",
|
|
39
|
+
dnsForwardingRulesetId: mockRulesetId,
|
|
40
|
+
virtualNetworkId: mockVirtualNetworkId,
|
|
41
|
+
};
|
|
42
|
+
const link = new virtual_network_link_1.DnsForwardingRulesetVirtualNetworkLink(stack, "TestLink", props);
|
|
43
|
+
expect(link).toBeInstanceOf(virtual_network_link_1.DnsForwardingRulesetVirtualNetworkLink);
|
|
44
|
+
expect(link.resolvedApiVersion).toBe("2022-07-01");
|
|
45
|
+
expect(link.props).toBe(props);
|
|
46
|
+
});
|
|
47
|
+
it("should create Virtual Network Link with explicit version pinning", () => {
|
|
48
|
+
const props = {
|
|
49
|
+
name: "my-vnet-link",
|
|
50
|
+
dnsForwardingRulesetId: mockRulesetId,
|
|
51
|
+
virtualNetworkId: mockVirtualNetworkId,
|
|
52
|
+
apiVersion: "2022-07-01",
|
|
53
|
+
};
|
|
54
|
+
const link = new virtual_network_link_1.DnsForwardingRulesetVirtualNetworkLink(stack, "TestLink", props);
|
|
55
|
+
expect(link.resolvedApiVersion).toBe("2022-07-01");
|
|
56
|
+
});
|
|
57
|
+
it("should create Virtual Network Link with metadata", () => {
|
|
58
|
+
const props = {
|
|
59
|
+
name: "my-vnet-link",
|
|
60
|
+
dnsForwardingRulesetId: mockRulesetId,
|
|
61
|
+
virtualNetworkId: mockVirtualNetworkId,
|
|
62
|
+
metadata: {
|
|
63
|
+
environment: "production",
|
|
64
|
+
team: "platform",
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
const link = new virtual_network_link_1.DnsForwardingRulesetVirtualNetworkLink(stack, "TestLink", props);
|
|
68
|
+
expect(link).toBeDefined();
|
|
69
|
+
expect(link.props.metadata).toEqual({
|
|
70
|
+
environment: "production",
|
|
71
|
+
team: "platform",
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
describe("Framework Integration", () => {
|
|
76
|
+
it("should resolve latest API version automatically", () => {
|
|
77
|
+
const link = new virtual_network_link_1.DnsForwardingRulesetVirtualNetworkLink(stack, "TestLink", {
|
|
78
|
+
name: "my-vnet-link",
|
|
79
|
+
dnsForwardingRulesetId: mockRulesetId,
|
|
80
|
+
virtualNetworkId: mockVirtualNetworkId,
|
|
81
|
+
});
|
|
82
|
+
expect(link.resolvedApiVersion).toBe("2022-07-01");
|
|
83
|
+
expect(link.latestVersion()).toBe("2022-07-01");
|
|
84
|
+
});
|
|
85
|
+
it("should provide version configuration", () => {
|
|
86
|
+
const link = new virtual_network_link_1.DnsForwardingRulesetVirtualNetworkLink(stack, "TestLink", {
|
|
87
|
+
name: "my-vnet-link",
|
|
88
|
+
dnsForwardingRulesetId: mockRulesetId,
|
|
89
|
+
virtualNetworkId: mockVirtualNetworkId,
|
|
90
|
+
});
|
|
91
|
+
expect(link.versionConfig).toBeDefined();
|
|
92
|
+
expect(link.versionConfig.version).toBe("2022-07-01");
|
|
93
|
+
expect(link.versionConfig.supportLevel).toBe(version_interfaces_1.VersionSupportLevel.ACTIVE);
|
|
94
|
+
});
|
|
95
|
+
it("should provide supported versions", () => {
|
|
96
|
+
const link = new virtual_network_link_1.DnsForwardingRulesetVirtualNetworkLink(stack, "TestLink", {
|
|
97
|
+
name: "my-vnet-link",
|
|
98
|
+
dnsForwardingRulesetId: mockRulesetId,
|
|
99
|
+
virtualNetworkId: mockVirtualNetworkId,
|
|
100
|
+
});
|
|
101
|
+
const versions = link.supportedVersions();
|
|
102
|
+
expect(versions).toContain("2022-07-01");
|
|
103
|
+
expect(versions.length).toBeGreaterThan(0);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
describe("Parent-Child Resource Relationship", () => {
|
|
107
|
+
it("should use dnsForwardingRulesetId as parent ID", () => {
|
|
108
|
+
const link = new virtual_network_link_1.DnsForwardingRulesetVirtualNetworkLink(stack, "TestLink", {
|
|
109
|
+
name: "my-vnet-link",
|
|
110
|
+
dnsForwardingRulesetId: mockRulesetId,
|
|
111
|
+
virtualNetworkId: mockVirtualNetworkId,
|
|
112
|
+
});
|
|
113
|
+
// Verify the link was created successfully with proper parent
|
|
114
|
+
expect(link).toBeDefined();
|
|
115
|
+
expect(link.props.dnsForwardingRulesetId).toBe(mockRulesetId);
|
|
116
|
+
});
|
|
117
|
+
it("should correctly handle child resource in Terraform synthesis", () => {
|
|
118
|
+
new virtual_network_link_1.DnsForwardingRulesetVirtualNetworkLink(stack, "TestLink", {
|
|
119
|
+
name: "my-vnet-link",
|
|
120
|
+
dnsForwardingRulesetId: mockRulesetId,
|
|
121
|
+
virtualNetworkId: mockVirtualNetworkId,
|
|
122
|
+
});
|
|
123
|
+
const synthesized = cdktf_1.Testing.synth(stack);
|
|
124
|
+
expect(synthesized).toContain("virtualNetworkLinks");
|
|
125
|
+
expect(synthesized).toContain(mockRulesetId);
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
describe("Public Methods - Virtual Network Link Properties", () => {
|
|
129
|
+
it("should provide provisioning state", () => {
|
|
130
|
+
const link = new virtual_network_link_1.DnsForwardingRulesetVirtualNetworkLink(stack, "TestLink", {
|
|
131
|
+
name: "my-vnet-link",
|
|
132
|
+
dnsForwardingRulesetId: mockRulesetId,
|
|
133
|
+
virtualNetworkId: mockVirtualNetworkId,
|
|
134
|
+
});
|
|
135
|
+
expect(link.provisioningState).toBeDefined();
|
|
136
|
+
expect(typeof link.provisioningState).toBe("string");
|
|
137
|
+
});
|
|
138
|
+
it("should provide metadata", () => {
|
|
139
|
+
const link = new virtual_network_link_1.DnsForwardingRulesetVirtualNetworkLink(stack, "TestLink", {
|
|
140
|
+
name: "my-vnet-link",
|
|
141
|
+
dnsForwardingRulesetId: mockRulesetId,
|
|
142
|
+
virtualNetworkId: mockVirtualNetworkId,
|
|
143
|
+
metadata: { key: "value" },
|
|
144
|
+
});
|
|
145
|
+
expect(link.metadata).toBeDefined();
|
|
146
|
+
expect(typeof link.metadata).toBe("string");
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
describe("Outputs", () => {
|
|
150
|
+
it("should create all required outputs", () => {
|
|
151
|
+
const link = new virtual_network_link_1.DnsForwardingRulesetVirtualNetworkLink(stack, "TestLink", {
|
|
152
|
+
name: "my-vnet-link",
|
|
153
|
+
dnsForwardingRulesetId: mockRulesetId,
|
|
154
|
+
virtualNetworkId: mockVirtualNetworkId,
|
|
155
|
+
});
|
|
156
|
+
expect(link.idOutput).toBeDefined();
|
|
157
|
+
expect(link.nameOutput).toBeDefined();
|
|
158
|
+
expect(link.provisioningStateOutput).toBeDefined();
|
|
159
|
+
});
|
|
160
|
+
it("should have correct logical IDs for outputs", () => {
|
|
161
|
+
new virtual_network_link_1.DnsForwardingRulesetVirtualNetworkLink(stack, "TestLink", {
|
|
162
|
+
name: "my-vnet-link",
|
|
163
|
+
dnsForwardingRulesetId: mockRulesetId,
|
|
164
|
+
virtualNetworkId: mockVirtualNetworkId,
|
|
165
|
+
});
|
|
166
|
+
const synthesized = cdktf_1.Testing.synth(stack);
|
|
167
|
+
expect(synthesized).toContain('"id"');
|
|
168
|
+
expect(synthesized).toContain('"name"');
|
|
169
|
+
expect(synthesized).toContain('"provisioning_state"');
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
describe("Ignore Changes Configuration", () => {
|
|
173
|
+
it("should apply ignore changes lifecycle rules", () => {
|
|
174
|
+
new virtual_network_link_1.DnsForwardingRulesetVirtualNetworkLink(stack, "TestLink", {
|
|
175
|
+
name: "my-vnet-link",
|
|
176
|
+
dnsForwardingRulesetId: mockRulesetId,
|
|
177
|
+
virtualNetworkId: mockVirtualNetworkId,
|
|
178
|
+
ignoreChanges: ["metadata"],
|
|
179
|
+
});
|
|
180
|
+
const synthesized = cdktf_1.Testing.synth(stack);
|
|
181
|
+
expect(synthesized).toContain("ignore_changes");
|
|
182
|
+
});
|
|
183
|
+
it("should handle multiple ignore changes properties", () => {
|
|
184
|
+
new virtual_network_link_1.DnsForwardingRulesetVirtualNetworkLink(stack, "TestLink", {
|
|
185
|
+
name: "my-vnet-link",
|
|
186
|
+
dnsForwardingRulesetId: mockRulesetId,
|
|
187
|
+
virtualNetworkId: mockVirtualNetworkId,
|
|
188
|
+
ignoreChanges: ["metadata", "name"],
|
|
189
|
+
});
|
|
190
|
+
const synthesized = cdktf_1.Testing.synth(stack);
|
|
191
|
+
expect(synthesized).toBeDefined();
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
describe("CDK Terraform Integration", () => {
|
|
195
|
+
it("should synthesize to valid Terraform configuration", () => {
|
|
196
|
+
new virtual_network_link_1.DnsForwardingRulesetVirtualNetworkLink(stack, "SynthTest", {
|
|
197
|
+
name: "my-vnet-link",
|
|
198
|
+
dnsForwardingRulesetId: mockRulesetId,
|
|
199
|
+
virtualNetworkId: mockVirtualNetworkId,
|
|
200
|
+
});
|
|
201
|
+
const synthesized = cdktf_1.Testing.synth(stack);
|
|
202
|
+
expect(synthesized).toBeDefined();
|
|
203
|
+
const stackConfig = JSON.parse(synthesized);
|
|
204
|
+
expect(stackConfig.resource).toBeDefined();
|
|
205
|
+
});
|
|
206
|
+
it("should generate correct resource type in Terraform", () => {
|
|
207
|
+
new virtual_network_link_1.DnsForwardingRulesetVirtualNetworkLink(stack, "SynthTest", {
|
|
208
|
+
name: "my-vnet-link",
|
|
209
|
+
dnsForwardingRulesetId: mockRulesetId,
|
|
210
|
+
virtualNetworkId: mockVirtualNetworkId,
|
|
211
|
+
});
|
|
212
|
+
const synthesized = cdktf_1.Testing.synth(stack);
|
|
213
|
+
expect(synthesized).toContain("virtualNetworkLinks");
|
|
214
|
+
expect(synthesized).toContain("2022-07-01");
|
|
215
|
+
});
|
|
216
|
+
it("should include all properties in Terraform body", () => {
|
|
217
|
+
new virtual_network_link_1.DnsForwardingRulesetVirtualNetworkLink(stack, "SynthTest", {
|
|
218
|
+
name: "my-vnet-link",
|
|
219
|
+
dnsForwardingRulesetId: mockRulesetId,
|
|
220
|
+
virtualNetworkId: mockVirtualNetworkId,
|
|
221
|
+
metadata: { env: "test" },
|
|
222
|
+
});
|
|
223
|
+
const synthesized = cdktf_1.Testing.synth(stack);
|
|
224
|
+
expect(synthesized).toContain(mockVirtualNetworkId);
|
|
225
|
+
});
|
|
226
|
+
});
|
|
227
|
+
describe("Resource Identification", () => {
|
|
228
|
+
it("should provide resource ID", () => {
|
|
229
|
+
const link = new virtual_network_link_1.DnsForwardingRulesetVirtualNetworkLink(stack, "TestLink", {
|
|
230
|
+
name: "my-vnet-link",
|
|
231
|
+
dnsForwardingRulesetId: mockRulesetId,
|
|
232
|
+
virtualNetworkId: mockVirtualNetworkId,
|
|
233
|
+
});
|
|
234
|
+
expect(link.id).toBeDefined();
|
|
235
|
+
expect(typeof link.id).toBe("string");
|
|
236
|
+
});
|
|
237
|
+
it("should provide resource name from props when specified", () => {
|
|
238
|
+
const link = new virtual_network_link_1.DnsForwardingRulesetVirtualNetworkLink(stack, "TestLink", {
|
|
239
|
+
name: "my-vnet-link",
|
|
240
|
+
dnsForwardingRulesetId: mockRulesetId,
|
|
241
|
+
virtualNetworkId: mockVirtualNetworkId,
|
|
242
|
+
});
|
|
243
|
+
expect(link.name).toBe("my-vnet-link");
|
|
244
|
+
});
|
|
245
|
+
});
|
|
246
|
+
describe("JSII Compliance", () => {
|
|
247
|
+
it("should have proper return types for all public methods", () => {
|
|
248
|
+
const link = new virtual_network_link_1.DnsForwardingRulesetVirtualNetworkLink(stack, "TestLink", {
|
|
249
|
+
name: "my-vnet-link",
|
|
250
|
+
dnsForwardingRulesetId: mockRulesetId,
|
|
251
|
+
virtualNetworkId: mockVirtualNetworkId,
|
|
252
|
+
});
|
|
253
|
+
// All getter methods should return strings for Terraform interpolations
|
|
254
|
+
expect(typeof link.provisioningState).toBe("string");
|
|
255
|
+
expect(typeof link.metadata).toBe("string");
|
|
256
|
+
});
|
|
257
|
+
});
|
|
258
|
+
describe("Schema Registration", () => {
|
|
259
|
+
it("should register schemas successfully", () => {
|
|
260
|
+
const link = new virtual_network_link_1.DnsForwardingRulesetVirtualNetworkLink(stack, "TestLink", {
|
|
261
|
+
name: "my-vnet-link",
|
|
262
|
+
dnsForwardingRulesetId: mockRulesetId,
|
|
263
|
+
virtualNetworkId: mockVirtualNetworkId,
|
|
264
|
+
});
|
|
265
|
+
// If the link was created successfully, schemas were registered
|
|
266
|
+
expect(link).toBeDefined();
|
|
267
|
+
expect(link.resolvedApiVersion).toBe("2022-07-01");
|
|
268
|
+
});
|
|
269
|
+
it("should handle multiple instantiations without errors", () => {
|
|
270
|
+
new virtual_network_link_1.DnsForwardingRulesetVirtualNetworkLink(stack, "TestLink1", {
|
|
271
|
+
name: "my-vnet-link-1",
|
|
272
|
+
dnsForwardingRulesetId: mockRulesetId,
|
|
273
|
+
virtualNetworkId: mockVirtualNetworkId,
|
|
274
|
+
});
|
|
275
|
+
// Second instantiation should not throw an error even if schemas are already registered
|
|
276
|
+
const link2 = new virtual_network_link_1.DnsForwardingRulesetVirtualNetworkLink(stack, "TestLink2", {
|
|
277
|
+
name: "my-vnet-link-2",
|
|
278
|
+
dnsForwardingRulesetId: mockRulesetId,
|
|
279
|
+
virtualNetworkId: mockVirtualNetworkId,
|
|
280
|
+
});
|
|
281
|
+
expect(link2).toBeDefined();
|
|
282
|
+
});
|
|
283
|
+
});
|
|
284
|
+
});
|
|
285
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlydHVhbC1uZXR3b3JrLWxpbmsuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1kbnNmb3J3YXJkaW5ncnVsZXNldC90ZXN0L3ZpcnR1YWwtbmV0d29yay1saW5rLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7O0dBT0c7O0FBRUgsaUNBQWdDO0FBQ2hDLCtCQUErQjtBQUMvQixrR0FBNkY7QUFDN0YsMkdBQXlHO0FBQ3pHLHNFQUdxQztBQUNyQyxzRkFHNkM7QUFFN0MsUUFBUSxDQUFDLHlEQUF5RCxFQUFFLEdBQUcsRUFBRTtJQUN2RSxJQUFJLEdBQWMsQ0FBQztJQUNuQixJQUFJLEtBQTJCLENBQUM7SUFDaEMsSUFBSSxPQUEwQixDQUFDO0lBRS9CLE1BQU0sYUFBYSxHQUNqQiwySUFBMkksQ0FBQztJQUM5SSxNQUFNLG9CQUFvQixHQUN4QixrSUFBa0ksQ0FBQztJQUVySSxVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsR0FBRyxHQUFHLGVBQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNwQixLQUFLLEdBQUcsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNuRCxPQUFPLEdBQUcsdUNBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFdkMsZ0NBQWdDO1FBQ2hDLElBQUksQ0FBQztZQUNILE9BQU8sQ0FBQyxvQkFBb0IsQ0FDMUIsd0RBQXlCLEVBQ3pCLGdFQUFpQyxDQUNsQyxDQUFDO1FBQ0osQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZiwrQkFBK0I7UUFDakMsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGtDQUFrQyxFQUFFLEdBQUcsRUFBRTtRQUNoRCxFQUFFLENBQUMsNkVBQTZFLEVBQUUsR0FBRyxFQUFFO1lBQ3JGLE1BQU0sS0FBSyxHQUFnRDtnQkFDekQsSUFBSSxFQUFF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NkRBQXNDLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRTtnQkFDN0QsSUFBSSxFQUFFLGdCQUFnQjtnQkFDdEIsc0JBQXNCLEVBQUUsYUFBYTtnQkFDckMsZ0JBQWdCLEVBQUUsb0JBQW9CO2FBQ3ZDLENBQUMsQ0FBQztZQUVILHdGQUF3RjtZQUN4RixNQUFNLEtBQUssR0FBRyxJQUFJLDZEQUFzQyxDQUN0RCxLQUFLLEVBQ0wsV0FBVyxFQUNYO2dCQUNFLElBQUksRUFBRSxnQkFBZ0I7Z0JBQ3RCLHNCQUFzQixFQUFFLGFBQWE7Z0JBQ3JDLGdCQUFnQixFQUFFLG9CQUFvQjthQUN2QyxDQUNGLENBQUM7WUFFRixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb21wcmVoZW5zaXZlIHRlc3RzIGZvciB0aGUgRG5zRm9yd2FyZGluZ1J1bGVzZXRWaXJ0dWFsTmV0d29ya0xpbmsgaW1wbGVtZW50YXRpb25cbiAqXG4gKiBUaGlzIHRlc3Qgc3VpdGUgdmFsaWRhdGVzIHRoZSBEbnNGb3J3YXJkaW5nUnVsZXNldFZpcnR1YWxOZXR3b3JrTGluayBjbGFzcyB1c2luZyB0aGVcbiAqIEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrLiBUZXN0cyBjb3ZlciBhdXRvbWF0aWMgdmVyc2lvbiByZXNvbHV0aW9uLFxuICogZXhwbGljaXQgdmVyc2lvbiBwaW5uaW5nLCBzY2hlbWEgdmFsaWRhdGlvbiwgcHJvcGVydHkgdHJhbnNmb3JtYXRpb24sXG4gKiBwYXJlbnQtY2hpbGQgcmVzb3VyY2UgcmVsYXRpb25zaGlwcywgYW5kIGZ1bGwgYmFja3dhcmQgY29tcGF0aWJpbGl0eS5cbiAqL1xuXG5pbXBvcnQgeyBUZXN0aW5nIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgKiBhcyBjZGt0ZiBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IEFwaVZlcnNpb25NYW5hZ2VyIH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL3ZlcnNpb24tbWFuYWdlci9hcGktdmVyc2lvbi1tYW5hZ2VyXCI7XG5pbXBvcnQgeyBWZXJzaW9uU3VwcG9ydExldmVsIH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL3ZlcnNpb24tbWFuYWdlci9pbnRlcmZhY2VzL3ZlcnNpb24taW50ZXJmYWNlc1wiO1xuaW1wb3J0IHtcbiAgRG5zRm9yd2FyZGluZ1J1bGVzZXRWaXJ0dWFsTmV0d29ya0xpbmssXG4gIERuc0ZvcndhcmRpbmdSdWxlc2V0VmlydHVhbE5ldHdvcmtMaW5rUHJvcHMsXG59IGZyb20gXCIuLi9saWIvdmlydHVhbC1uZXR3b3JrLWxpbmtcIjtcbmltcG9ydCB7XG4gIEFMTF9WSVJUVUFMX05FVFdPUktfTElOS19WRVJTSU9OUyxcbiAgVklSVFVBTF9ORVRXT1JLX0xJTktfVFlQRSxcbn0gZnJvbSBcIi4uL2xpYi92aXJ0dWFsLW5ldHdvcmstbGluay1zY2hlbWFzXCI7XG5cbmRlc2NyaWJlKFwiRG5zRm9yd2FyZGluZ1J1bGVzZXRWaXJ0dWFsTmV0d29ya0xpbmsgLSBJbXBsZW1lbnRhdGlvblwiLCAoKSA9PiB7XG4gIGxldCBhcHA6IGNka3RmLkFwcDtcbiAgbGV0IHN0YWNrOiBjZGt0Zi5UZXJyYWZvcm1TdGFjaztcbiAgbGV0IG1hbmFnZXI6IEFwaVZlcnNpb25NYW5hZ2VyO1xuXG4gIGNvbnN0IG1vY2tSdWxlc2V0SWQgPVxuICAgIFwiL3N1YnNjcmlwdGlvbnMvMTIzNDU2NzgtMTIzNC0xMjM0LTEyMzQtMTIzNDU2Nzg5MDEyL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL2Ruc0ZvcndhcmRpbmdSdWxlc2V0cy90ZXN0LXJ1bGVzZXRcIjtcbiAgY29uc3QgbW9ja1ZpcnR1YWxOZXR3b3JrSWQgPVxuICAgIFwiL3N1YnNjcmlwdGlvbnMvMTIzNDU2NzgtMTIzNC0xMjM0LTEyMzQtMTIzNDU2Nzg5MDEyL3Jlc291cmNlR3JvdXBzL3Rlc3QtcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3Jrcy90ZXN0LXZuZXRcIjtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBhcHAgPSBUZXN0aW5nLmFwcCgpO1xuICAgIHN0YWNrID0gbmV3IGNka3RmLlRlcnJhZm9ybVN0YWNrKGFwcCwgXCJUZXN0U3RhY2tcIik7XG4gICAgbWFuYWdlciA9IEFwaVZlcnNpb25NYW5hZ2VyLmluc3RhbmNlKCk7XG5cbiAgICAvLyBFbnN1cmUgc2NoZW1hcyBhcmUgcmVnaXN0ZXJlZFxuICAgIHRyeSB7XG4gICAgICBtYW5hZ2VyLnJlZ2lzdGVyUmVzb3VyY2VUeXBlKFxuICAgICAgICBWSVJUVUFMX05FVFdPUktfTElOS19UWVBFLFxuICAgICAgICBBTExfVklSVFVBTF9ORVRXT1JLX0xJTktfVkVSU0lPTlMsXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAvLyBJZ25vcmUgaWYgYWxyZWFkeSByZWdpc3RlcmVkXG4gICAgfVxuICB9KTtcblxuICBkZXNjcmliZShcIkNvbnN0cnVjdG9yIGFuZCBCYXNpYyBQcm9wZXJ0aWVzXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjcmVhdGUgVmlydHVhbCBOZXR3b3JrIExpbmsgd2l0aCBhdXRvbWF0aWMgbGF0ZXN0IHZlcnNpb24gcmVzb2x1dGlvblwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogRG5zRm9yd2FyZGluZ1J1bGVzZXRWaXJ0dWFsTmV0d29ya0xpbmtQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJteS12bmV0LWxpbmtcIixcbiAgICAgICAgZG5zRm9yd2FyZGluZ1J1bGVzZXRJZDogbW9ja1J1bGVzZXRJZCxcbiAgICAgICAgdmlydHVhbE5ldHdvcmtJZDogbW9ja1ZpcnR1YWxOZXR3b3JrSWQsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBsaW5rID0gbmV3IERuc0ZvcndhcmRpbmdSdWxlc2V0VmlydHVhbE5ldHdvcmtMaW5rKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJUZXN0TGlua1wiLFxuICAgICAgICBwcm9wcyxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChsaW5rKS50b0JlSW5zdGFuY2VPZihEbnNGb3J3YXJkaW5nUnVsZXNldFZpcnR1YWxOZXR3b3JrTGluayk7XG4gICAgICBleHBlY3QobGluay5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDIyLTA3LTAxXCIpO1xuICAgICAgZXhwZWN0KGxpbmsucHJvcHMpLnRvQmUocHJvcHMpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIFZpcnR1YWwgTmV0d29yayBMaW5rIHdpdGggZXhwbGljaXQgdmVyc2lvbiBwaW5uaW5nXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHByb3BzOiBEbnNGb3J3YXJkaW5nUnVsZXNldFZpcnR1YWxOZXR3b3JrTGlua1Byb3BzID0ge1xuICAgICAgICBuYW1lOiBcIm15LXZuZXQtbGlua1wiLFxuICAgICAgICBkbnNGb3J3YXJkaW5nUnVsZXNldElkOiBtb2NrUnVsZXNldElkLFxuICAgICAgICB2aXJ0dWFsTmV0d29ya0lkOiBtb2NrVmlydHVhbE5ldHdvcmtJZCxcbiAgICAgICAgYXBpVmVyc2lvbjogXCIyMDIyLTA3LTAxXCIsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBsaW5rID0gbmV3IERuc0ZvcndhcmRpbmdSdWxlc2V0VmlydHVhbE5ldHdvcmtMaW5rKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJUZXN0TGlua1wiLFxuICAgICAgICBwcm9wcyxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChsaW5rLnJlc29sdmVkQXBpVmVyc2lvbikudG9CZShcIjIwMjItMDctMDFcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjcmVhdGUgVmlydHVhbCBOZXR3b3JrIExpbmsgd2l0aCBtZXRhZGF0YVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wczogRG5zRm9yd2FyZGluZ1J1bGVzZXRWaXJ0dWFsTmV0d29ya0xpbmtQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJteS12bmV0LWxpbmtcIixcbiAgICAgICAgZG5zRm9yd2FyZGluZ1J1bGVzZXRJZDogbW9ja1J1bGVzZXRJZCxcbiAgICAgICAgdmlydHVhbE5ldHdvcmtJZDogbW9ja1ZpcnR1YWxOZXR3b3JrSWQsXG4gICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgZW52aXJvbm1lbnQ6IFwicHJvZHVjdGlvblwiLFxuICAgICAgICAgIHRlYW06IFwicGxhdGZvcm1cIixcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGxpbmsgPSBuZXcgRG5zRm9yd2FyZGluZ1J1bGVzZXRWaXJ0dWFsTmV0d29ya0xpbmsoXG4gICAgICAgIHN0YWNrLFxuICAgICAgICBcIlRlc3RMaW5rXCIsXG4gICAgICAgIHByb3BzLFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGxpbmspLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QobGluay5wcm9wcy5tZXRhZGF0YSkudG9FcXVhbCh7XG4gICAgICAgIGVudmlyb25tZW50OiBcInByb2R1Y3Rpb25cIixcbiAgICAgICAgdGVhbTogXCJwbGF0Zm9ybVwiLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiRnJhbWV3b3JrIEludGVncmF0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCByZXNvbHZlIGxhdGVzdCBBUEkgdmVyc2lvbiBhdXRvbWF0aWNhbGx5XCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGxpbmsgPSBuZXcgRG5zRm9yd2FyZGluZ1J1bGVzZXRWaXJ0dWFsTmV0d29ya0xpbmsoXG4gICAgICAgIHN0YWNrLFxuICAgICAgICBcIlRlc3RMaW5rXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcIm15LXZuZXQtbGlua1wiLFxuICAgICAgICAgIGRuc0ZvcndhcmRpbmdSdWxlc2V0SWQ6IG1vY2tSdWxlc2V0SWQsXG4gICAgICAgICAgdmlydHVhbE5ldHdvcmtJZDogbW9ja1ZpcnR1YWxOZXR3b3JrSWQsXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICBleHBlY3QobGluay5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDIyLTA3LTAxXCIpO1xuICAgICAgZXhwZWN0KGxpbmsubGF0ZXN0VmVyc2lvbigpKS50b0JlKFwiMjAyMi0wNy0wMVwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHByb3ZpZGUgdmVyc2lvbiBjb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGxpbmsgPSBuZXcgRG5zRm9yd2FyZGluZ1J1bGVzZXRWaXJ0dWFsTmV0d29ya0xpbmsoXG4gICAgICAgIHN0YWNrLFxuICAgICAgICBcIlRlc3RMaW5rXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcIm15LXZuZXQtbGlua1wiLFxuICAgICAgICAgIGRuc0ZvcndhcmRpbmdSdWxlc2V0SWQ6IG1vY2tSdWxlc2V0SWQsXG4gICAgICAgICAgdmlydHVhbE5ldHdvcmtJZDogbW9ja1ZpcnR1YWxOZXR3b3JrSWQsXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICBleHBlY3QobGluay52ZXJzaW9uQ29uZmlnKS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KGxpbmsudmVyc2lvbkNvbmZpZy52ZXJzaW9uKS50b0JlKFwiMjAyMi0wNy0wMVwiKTtcbiAgICAgIGV4cGVjdChsaW5rLnZlcnNpb25Db25maWcuc3VwcG9ydExldmVsKS50b0JlKFZlcnNpb25TdXBwb3J0TGV2ZWwuQUNUSVZFKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHByb3ZpZGUgc3VwcG9ydGVkIHZlcnNpb25zXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGxpbmsgPSBuZXcgRG5zRm9yd2FyZGluZ1J1bGVzZXRWaXJ0dWFsTmV0d29ya0xpbmsoXG4gICAgICAgIHN0YWNrLFxuICAgICAgICBcIlRlc3RMaW5rXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcIm15LXZuZXQtbGlua1wiLFxuICAgICAgICAgIGRuc0ZvcndhcmRpbmdSdWxlc2V0SWQ6IG1vY2tSdWxlc2V0SWQsXG4gICAgICAgICAgdmlydHVhbE5ldHdvcmtJZDogbW9ja1ZpcnR1YWxOZXR3b3JrSWQsXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICBjb25zdCB2ZXJzaW9ucyA9IGxpbmsuc3VwcG9ydGVkVmVyc2lvbnMoKTtcbiAgICAgIGV4cGVjdCh2ZXJzaW9ucykudG9Db250YWluKFwiMjAyMi0wNy0wMVwiKTtcbiAgICAgIGV4cGVjdCh2ZXJzaW9ucy5sZW5ndGgpLnRvQmVHcmVhdGVyVGhhbigwKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJQYXJlbnQtQ2hpbGQgUmVzb3VyY2UgUmVsYXRpb25zaGlwXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCB1c2UgZG5zRm9yd2FyZGluZ1J1bGVzZXRJZCBhcyBwYXJlbnQgSURcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgbGluayA9IG5ldyBEbnNGb3J3YXJkaW5nUnVsZXNldFZpcnR1YWxOZXR3b3JrTGluayhcbiAgICAgICAgc3RhY2ssXG4gICAgICAgIFwiVGVzdExpbmtcIixcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwibXktdm5ldC1saW5rXCIsXG4gICAgICAgICAgZG5zRm9yd2FyZGluZ1J1bGVzZXRJZDogbW9ja1J1bGVzZXRJZCxcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0lkOiBtb2NrVmlydHVhbE5ldHdvcmtJZCxcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIC8vIFZlcmlmeSB0aGUgbGluayB3YXMgY3JlYXRlZCBzdWNjZXNzZnVsbHkgd2l0aCBwcm9wZXIgcGFyZW50XG4gICAgICBleHBlY3QobGluaykudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChsaW5rLnByb3BzLmRuc0ZvcndhcmRpbmdSdWxlc2V0SWQpLnRvQmUobW9ja1J1bGVzZXRJZCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjb3JyZWN0bHkgaGFuZGxlIGNoaWxkIHJlc291cmNlIGluIFRlcnJhZm9ybSBzeW50aGVzaXNcIiwgKCkgPT4ge1xuICAgICAgbmV3IERuc0ZvcndhcmRpbmdSdWxlc2V0VmlydHVhbE5ldHdvcmtMaW5rKHN0YWNrLCBcIlRlc3RMaW5rXCIsIHtcbiAgICAgICAgbmFtZTogXCJteS12bmV0LWxpbmtcIixcbiAgICAgICAgZG5zRm9yd2FyZGluZ1J1bGVzZXRJZDogbW9ja1J1bGVzZXRJZCxcbiAgICAgICAgdmlydHVhbE5ldHdvcmtJZDogbW9ja1ZpcnR1YWxOZXR3b3JrSWQsXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHN0YWNrKTtcbiAgICAgIGV4cGVjdChzeW50aGVzaXplZCkudG9Db250YWluKFwidmlydHVhbE5ldHdvcmtMaW5rc1wiKTtcbiAgICAgIGV4cGVjdChzeW50aGVzaXplZCkudG9Db250YWluKG1vY2tSdWxlc2V0SWQpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIlB1YmxpYyBNZXRob2RzIC0gVmlydHVhbCBOZXR3b3JrIExpbmsgUHJvcGVydGllc1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgcHJvdmlkZSBwcm92aXNpb25pbmcgc3RhdGVcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgbGluayA9IG5ldyBEbnNGb3J3YXJkaW5nUnVsZXNldFZpcnR1YWxOZXR3b3JrTGluayhcbiAgICAgICAgc3RhY2ssXG4gICAgICAgIFwiVGVzdExpbmtcIixcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwibXktdm5ldC1saW5rXCIsXG4gICAgICAgICAgZG5zRm9yd2FyZGluZ1J1bGVzZXRJZDogbW9ja1J1bGVzZXRJZCxcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0lkOiBtb2NrVmlydHVhbE5ldHdvcmtJZCxcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChsaW5rLnByb3Zpc2lvbmluZ1N0YXRlKS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KHR5cGVvZiBsaW5rLnByb3Zpc2lvbmluZ1N0YXRlKS50b0JlKFwic3RyaW5nXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgcHJvdmlkZSBtZXRhZGF0YVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBsaW5rID0gbmV3IERuc0ZvcndhcmRpbmdSdWxlc2V0VmlydHVhbE5ldHdvcmtMaW5rKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJUZXN0TGlua1wiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJteS12bmV0LWxpbmtcIixcbiAgICAgICAgICBkbnNGb3J3YXJkaW5nUnVsZXNldElkOiBtb2NrUnVsZXNldElkLFxuICAgICAgICAgIHZpcnR1YWxOZXR3b3JrSWQ6IG1vY2tWaXJ0dWFsTmV0d29ya0lkLFxuICAgICAgICAgIG1ldGFkYXRhOiB7IGtleTogXCJ2YWx1ZVwiIH0sXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICBleHBlY3QobGluay5tZXRhZGF0YSkudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdCh0eXBlb2YgbGluay5tZXRhZGF0YSkudG9CZShcInN0cmluZ1wiKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJPdXRwdXRzXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjcmVhdGUgYWxsIHJlcXVpcmVkIG91dHB1dHNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgbGluayA9IG5ldyBEbnNGb3J3YXJkaW5nUnVsZXNldFZpcnR1YWxOZXR3b3JrTGluayhcbiAgICAgICAgc3RhY2ssXG4gICAgICAgIFwiVGVzdExpbmtcIixcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwibXktdm5ldC1saW5rXCIsXG4gICAgICAgICAgZG5zRm9yd2FyZGluZ1J1bGVzZXRJZDogbW9ja1J1bGVzZXRJZCxcbiAgICAgICAgICB2aXJ0dWFsTmV0d29ya0lkOiBtb2NrVmlydHVhbE5ldHdvcmtJZCxcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIGV4cGVjdChsaW5rLmlkT3V0cHV0KS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KGxpbmsubmFtZU91dHB1dCkudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChsaW5rLnByb3Zpc2lvbmluZ1N0YXRlT3V0cHV0KS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGF2ZSBjb3JyZWN0IGxvZ2ljYWwgSURzIGZvciBvdXRwdXRzXCIsICgpID0+IHtcbiAgICAgIG5ldyBEbnNGb3J3YXJkaW5nUnVsZXNldFZpcnR1YWxOZXR3b3JrTGluayhzdGFjaywgXCJUZXN0TGlua1wiLCB7XG4gICAgICAgIG5hbWU6IFwibXktdm5ldC1saW5rXCIsXG4gICAgICAgIGRuc0ZvcndhcmRpbmdSdWxlc2V0SWQ6IG1vY2tSdWxlc2V0SWQsXG4gICAgICAgIHZpcnR1YWxOZXR3b3JrSWQ6IG1vY2tWaXJ0dWFsTmV0d29ya0lkLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHN5bnRoZXNpemVkID0gVGVzdGluZy5zeW50aChzdGFjayk7XG4gICAgICBleHBlY3Qoc3ludGhlc2l6ZWQpLnRvQ29udGFpbignXCJpZFwiJyk7XG4gICAgICBleHBlY3Qoc3ludGhlc2l6ZWQpLnRvQ29udGFpbignXCJuYW1lXCInKTtcbiAgICAgIGV4cGVjdChzeW50aGVzaXplZCkudG9Db250YWluKCdcInByb3Zpc2lvbmluZ19zdGF0ZVwiJyk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiSWdub3JlIENoYW5nZXMgQ29uZmlndXJhdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgYXBwbHkgaWdub3JlIGNoYW5nZXMgbGlmZWN5Y2xlIHJ1bGVzXCIsICgpID0+IHtcbiAgICAgIG5ldyBEbnNGb3J3YXJkaW5nUnVsZXNldFZpcnR1YWxOZXR3b3JrTGluayhzdGFjaywgXCJUZXN0TGlua1wiLCB7XG4gICAgICAgIG5hbWU6IFwibXktdm5ldC1saW5rXCIsXG4gICAgICAgIGRuc0ZvcndhcmRpbmdSdWxlc2V0SWQ6IG1vY2tSdWxlc2V0SWQsXG4gICAgICAgIHZpcnR1YWxOZXR3b3JrSWQ6IG1vY2tWaXJ0dWFsTmV0d29ya0lkLFxuICAgICAgICBpZ25vcmVDaGFuZ2VzOiBbXCJtZXRhZGF0YVwiXSxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzeW50aGVzaXplZCA9IFRlc3Rpbmcuc3ludGgoc3RhY2spO1xuICAgICAgZXhwZWN0KHN5bnRoZXNpemVkKS50b0NvbnRhaW4oXCJpZ25vcmVfY2hhbmdlc1wiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGhhbmRsZSBtdWx0aXBsZSBpZ25vcmUgY2hhbmdlcyBwcm9wZXJ0aWVzXCIsICgpID0+IHtcbiAgICAgIG5ldyBEbnNGb3J3YXJkaW5nUnVsZXNldFZpcnR1YWxOZXR3b3JrTGluayhzdGFjaywgXCJUZXN0TGlua1wiLCB7XG4gICAgICAgIG5hbWU6IFwibXktdm5ldC1saW5rXCIsXG4gICAgICAgIGRuc0ZvcndhcmRpbmdSdWxlc2V0SWQ6IG1vY2tSdWxlc2V0SWQsXG4gICAgICAgIHZpcnR1YWxOZXR3b3JrSWQ6IG1vY2tWaXJ0dWFsTmV0d29ya0lkLFxuICAgICAgICBpZ25vcmVDaGFuZ2VzOiBbXCJtZXRhZGF0YVwiLCBcIm5hbWVcIl0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHN0YWNrKTtcbiAgICAgIGV4cGVjdChzeW50aGVzaXplZCkudG9CZURlZmluZWQoKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJDREsgVGVycmFmb3JtIEludGVncmF0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBzeW50aGVzaXplIHRvIHZhbGlkIFRlcnJhZm9ybSBjb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICAgIG5ldyBEbnNGb3J3YXJkaW5nUnVsZXNldFZpcnR1YWxOZXR3b3JrTGluayhzdGFjaywgXCJTeW50aFRlc3RcIiwge1xuICAgICAgICBuYW1lOiBcIm15LXZuZXQtbGlua1wiLFxuICAgICAgICBkbnNGb3J3YXJkaW5nUnVsZXNldElkOiBtb2NrUnVsZXNldElkLFxuICAgICAgICB2aXJ0dWFsTmV0d29ya0lkOiBtb2NrVmlydHVhbE5ldHdvcmtJZCxcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBzeW50aGVzaXplZCA9IFRlc3Rpbmcuc3ludGgoc3RhY2spO1xuICAgICAgZXhwZWN0KHN5bnRoZXNpemVkKS50b0JlRGVmaW5lZCgpO1xuXG4gICAgICBjb25zdCBzdGFja0NvbmZpZyA9IEpTT04ucGFyc2Uoc3ludGhlc2l6ZWQpO1xuICAgICAgZXhwZWN0KHN0YWNrQ29uZmlnLnJlc291cmNlKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgZ2VuZXJhdGUgY29ycmVjdCByZXNvdXJjZSB0eXBlIGluIFRlcnJhZm9ybVwiLCAoKSA9PiB7XG4gICAgICBuZXcgRG5zRm9yd2FyZGluZ1J1bGVzZXRWaXJ0dWFsTmV0d29ya0xpbmsoc3RhY2ssIFwiU3ludGhUZXN0XCIsIHtcbiAgICAgICAgbmFtZTogXCJteS12bmV0LWxpbmtcIixcbiAgICAgICAgZG5zRm9yd2FyZGluZ1J1bGVzZXRJZDogbW9ja1J1bGVzZXRJZCxcbiAgICAgICAgdmlydHVhbE5ldHdvcmtJZDogbW9ja1ZpcnR1YWxOZXR3b3JrSWQsXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHN0YWNrKTtcbiAgICAgIGV4cGVjdChzeW50aGVzaXplZCkudG9Db250YWluKFwidmlydHVhbE5ldHdvcmtMaW5rc1wiKTtcbiAgICAgIGV4cGVjdChzeW50aGVzaXplZCkudG9Db250YWluKFwiMjAyMi0wNy0wMVwiKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGluY2x1ZGUgYWxsIHByb3BlcnRpZXMgaW4gVGVycmFmb3JtIGJvZHlcIiwgKCkgPT4ge1xuICAgICAgbmV3IERuc0ZvcndhcmRpbmdSdWxlc2V0VmlydHVhbE5ldHdvcmtMaW5rKHN0YWNrLCBcIlN5bnRoVGVzdFwiLCB7XG4gICAgICAgIG5hbWU6IFwibXktdm5ldC1saW5rXCIsXG4gICAgICAgIGRuc0ZvcndhcmRpbmdSdWxlc2V0SWQ6IG1vY2tSdWxlc2V0SWQsXG4gICAgICAgIHZpcnR1YWxOZXR3b3JrSWQ6IG1vY2tWaXJ0dWFsTmV0d29ya0lkLFxuICAgICAgICBtZXRhZGF0YTogeyBlbnY6IFwidGVzdFwiIH0sXG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLnN5bnRoKHN0YWNrKTtcbiAgICAgIGV4cGVjdChzeW50aGVzaXplZCkudG9Db250YWluKG1vY2tWaXJ0dWFsTmV0d29ya0lkKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJSZXNvdXJjZSBJZGVudGlmaWNhdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgcHJvdmlkZSByZXNvdXJjZSBJRFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBsaW5rID0gbmV3IERuc0ZvcndhcmRpbmdSdWxlc2V0VmlydHVhbE5ldHdvcmtMaW5rKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJUZXN0TGlua1wiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJteS12bmV0LWxpbmtcIixcbiAgICAgICAgICBkbnNGb3J3YXJkaW5nUnVsZXNldElkOiBtb2NrUnVsZXNldElkLFxuICAgICAgICAgIHZpcnR1YWxOZXR3b3JrSWQ6IG1vY2tWaXJ0dWFsTmV0d29ya0lkLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGxpbmsuaWQpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QodHlwZW9mIGxpbmsuaWQpLnRvQmUoXCJzdHJpbmdcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBwcm92aWRlIHJlc291cmNlIG5hbWUgZnJvbSBwcm9wcyB3aGVuIHNwZWNpZmllZFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBsaW5rID0gbmV3IERuc0ZvcndhcmRpbmdSdWxlc2V0VmlydHVhbE5ldHdvcmtMaW5rKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJUZXN0TGlua1wiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJteS12bmV0LWxpbmtcIixcbiAgICAgICAgICBkbnNGb3J3YXJkaW5nUnVsZXNldElkOiBtb2NrUnVsZXNldElkLFxuICAgICAgICAgIHZpcnR1YWxOZXR3b3JrSWQ6IG1vY2tWaXJ0dWFsTmV0d29ya0lkLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGxpbmsubmFtZSkudG9CZShcIm15LXZuZXQtbGlua1wiKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJKU0lJIENvbXBsaWFuY2VcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGhhdmUgcHJvcGVyIHJldHVybiB0eXBlcyBmb3IgYWxsIHB1YmxpYyBtZXRob2RzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IGxpbmsgPSBuZXcgRG5zRm9yd2FyZGluZ1J1bGVzZXRWaXJ0dWFsTmV0d29ya0xpbmsoXG4gICAgICAgIHN0YWNrLFxuICAgICAgICBcIlRlc3RMaW5rXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcIm15LXZuZXQtbGlua1wiLFxuICAgICAgICAgIGRuc0ZvcndhcmRpbmdSdWxlc2V0SWQ6IG1vY2tSdWxlc2V0SWQsXG4gICAgICAgICAgdmlydHVhbE5ldHdvcmtJZDogbW9ja1ZpcnR1YWxOZXR3b3JrSWQsXG4gICAgICAgIH0sXG4gICAgICApO1xuXG4gICAgICAvLyBBbGwgZ2V0dGVyIG1ldGhvZHMgc2hvdWxkIHJldHVybiBzdHJpbmdzIGZvciBUZXJyYWZvcm0gaW50ZXJwb2xhdGlvbnNcbiAgICAgIGV4cGVjdCh0eXBlb2YgbGluay5wcm92aXNpb25pbmdTdGF0ZSkudG9CZShcInN0cmluZ1wiKTtcbiAgICAgIGV4cGVjdCh0eXBlb2YgbGluay5tZXRhZGF0YSkudG9CZShcInN0cmluZ1wiKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJTY2hlbWEgUmVnaXN0cmF0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCByZWdpc3RlciBzY2hlbWFzIHN1Y2Nlc3NmdWxseVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCBsaW5rID0gbmV3IERuc0ZvcndhcmRpbmdSdWxlc2V0VmlydHVhbE5ldHdvcmtMaW5rKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJUZXN0TGlua1wiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJteS12bmV0LWxpbmtcIixcbiAgICAgICAgICBkbnNGb3J3YXJkaW5nUnVsZXNldElkOiBtb2NrUnVsZXNldElkLFxuICAgICAgICAgIHZpcnR1YWxOZXR3b3JrSWQ6IG1vY2tWaXJ0dWFsTmV0d29ya0lkLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgLy8gSWYgdGhlIGxpbmsgd2FzIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LCBzY2hlbWFzIHdlcmUgcmVnaXN0ZXJlZFxuICAgICAgZXhwZWN0KGxpbmspLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QobGluay5yZXNvbHZlZEFwaVZlcnNpb24pLnRvQmUoXCIyMDIyLTA3LTAxXCIpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgaGFuZGxlIG11bHRpcGxlIGluc3RhbnRpYXRpb25zIHdpdGhvdXQgZXJyb3JzXCIsICgpID0+IHtcbiAgICAgIG5ldyBEbnNGb3J3YXJkaW5nUnVsZXNldFZpcnR1YWxOZXR3b3JrTGluayhzdGFjaywgXCJUZXN0TGluazFcIiwge1xuICAgICAgICBuYW1lOiBcIm15LXZuZXQtbGluay0xXCIsXG4gICAgICAgIGRuc0ZvcndhcmRpbmdSdWxlc2V0SWQ6IG1vY2tSdWxlc2V0SWQsXG4gICAgICAgIHZpcnR1YWxOZXR3b3JrSWQ6IG1vY2tWaXJ0dWFsTmV0d29ya0lkLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFNlY29uZCBpbnN0YW50aWF0aW9uIHNob3VsZCBub3QgdGhyb3cgYW4gZXJyb3IgZXZlbiBpZiBzY2hlbWFzIGFyZSBhbHJlYWR5IHJlZ2lzdGVyZWRcbiAgICAgIGNvbnN0IGxpbmsyID0gbmV3IERuc0ZvcndhcmRpbmdSdWxlc2V0VmlydHVhbE5ldHdvcmtMaW5rKFxuICAgICAgICBzdGFjayxcbiAgICAgICAgXCJUZXN0TGluazJcIixcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwibXktdm5ldC1saW5rLTJcIixcbiAgICAgICAgICBkbnNGb3J3YXJkaW5nUnVsZXNldElkOiBtb2NrUnVsZXNldElkLFxuICAgICAgICAgIHZpcnR1YWxOZXR3b3JrSWQ6IG1vY2tWaXJ0dWFsTmV0d29ya0lkLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgZXhwZWN0KGxpbmsyKS50b0JlRGVmaW5lZCgpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./lib";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./lib"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp1cmUtZG5zcmVzb2x2ZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHdDQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2xpYlwiO1xuIl19
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API schemas for Azure DNS Private Resolver across all supported versions
|
|
3
|
+
*
|
|
4
|
+
* This file defines the complete API schemas for Microsoft.Network/dnsResolvers
|
|
5
|
+
* across all supported API versions. The schemas are used by the VersionedAzapiResource
|
|
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 version 2022-07-01
|
|
11
|
+
*/
|
|
12
|
+
export declare const DNS_RESOLVER_SCHEMA_2022_07_01: ApiSchema;
|
|
13
|
+
/**
|
|
14
|
+
* Version configuration for DNS Resolver 2022-07-01
|
|
15
|
+
*/
|
|
16
|
+
export declare const DNS_RESOLVER_VERSION_2022_07_01: VersionConfig;
|
|
17
|
+
/**
|
|
18
|
+
* All supported DNS Resolver versions for registration
|
|
19
|
+
*/
|
|
20
|
+
export declare const ALL_DNS_RESOLVER_VERSIONS: VersionConfig[];
|
|
21
|
+
/**
|
|
22
|
+
* Resource type constant
|
|
23
|
+
*/
|
|
24
|
+
export declare const DNS_RESOLVER_TYPE = "Microsoft.Network/dnsResolvers";
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* API schemas for Azure DNS Private Resolver across all supported versions
|
|
4
|
+
*
|
|
5
|
+
* This file defines the complete API schemas for Microsoft.Network/dnsResolvers
|
|
6
|
+
* across all supported API versions. The schemas are used by the VersionedAzapiResource
|
|
7
|
+
* framework for validation, transformation, and version management.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.DNS_RESOLVER_TYPE = exports.ALL_DNS_RESOLVER_VERSIONS = exports.DNS_RESOLVER_VERSION_2022_07_01 = exports.DNS_RESOLVER_SCHEMA_2022_07_01 = void 0;
|
|
11
|
+
const version_interfaces_1 = require("../../core-azure/lib/version-manager/interfaces/version-interfaces");
|
|
12
|
+
// =============================================================================
|
|
13
|
+
// COMMON PROPERTY DEFINITIONS
|
|
14
|
+
// =============================================================================
|
|
15
|
+
/**
|
|
16
|
+
* Common property definitions shared across all DNS Resolver versions
|
|
17
|
+
*/
|
|
18
|
+
const COMMON_PROPERTIES = {
|
|
19
|
+
location: {
|
|
20
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
21
|
+
required: true,
|
|
22
|
+
description: "The Azure region where the DNS Resolver will be created. DNS Resolvers are regional resources.",
|
|
23
|
+
validation: [
|
|
24
|
+
{
|
|
25
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
26
|
+
message: "Location is required for DNS Resolvers",
|
|
27
|
+
},
|
|
28
|
+
],
|
|
29
|
+
},
|
|
30
|
+
tags: {
|
|
31
|
+
dataType: version_interfaces_1.PropertyType.OBJECT,
|
|
32
|
+
required: false,
|
|
33
|
+
defaultValue: {},
|
|
34
|
+
description: "A dictionary of tags to apply to the DNS Resolver for organizational, billing, or other purposes",
|
|
35
|
+
validation: [
|
|
36
|
+
{
|
|
37
|
+
ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
|
|
38
|
+
value: version_interfaces_1.PropertyType.OBJECT,
|
|
39
|
+
message: "Tags must be an object with string key-value pairs",
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
},
|
|
43
|
+
name: {
|
|
44
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
45
|
+
required: true,
|
|
46
|
+
description: "The name of the DNS Resolver. Must be unique within the resource group.",
|
|
47
|
+
validation: [
|
|
48
|
+
{
|
|
49
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
50
|
+
message: "DNS Resolver name is required",
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
|
|
54
|
+
value: "^[a-zA-Z0-9]([a-zA-Z0-9-]*[a-zA-Z0-9])?$",
|
|
55
|
+
message: "DNS Resolver name must start and end with alphanumeric characters and can contain hyphens",
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
ruleType: version_interfaces_1.ValidationRuleType.VALUE_RANGE,
|
|
59
|
+
value: { minLength: 1, maxLength: 80 },
|
|
60
|
+
message: "DNS Resolver name must be between 1 and 80 characters",
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
},
|
|
64
|
+
virtualNetworkId: {
|
|
65
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
66
|
+
required: true,
|
|
67
|
+
description: "The resource ID of the virtual network where the DNS Resolver will be deployed. The resolver requires a dedicated subnet.",
|
|
68
|
+
validation: [
|
|
69
|
+
{
|
|
70
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
71
|
+
message: "Virtual Network ID is required for DNS Resolvers",
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
|
|
75
|
+
value: "^/subscriptions/[^/]+/resourceGroups/[^/]+/providers/Microsoft.Network/virtualNetworks/[^/]+$",
|
|
76
|
+
message: "Virtual Network ID must be a valid Azure resource ID",
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
},
|
|
80
|
+
ignoreChanges: {
|
|
81
|
+
dataType: version_interfaces_1.PropertyType.ARRAY,
|
|
82
|
+
required: false,
|
|
83
|
+
description: "Array of property names to ignore during updates",
|
|
84
|
+
validation: [
|
|
85
|
+
{
|
|
86
|
+
ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
|
|
87
|
+
value: version_interfaces_1.PropertyType.ARRAY,
|
|
88
|
+
message: "IgnoreChanges must be an array of strings",
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
// =============================================================================
|
|
94
|
+
// READ-ONLY PROPERTY DEFINITIONS
|
|
95
|
+
// =============================================================================
|
|
96
|
+
/**
|
|
97
|
+
* Read-only properties that are populated by Azure after creation
|
|
98
|
+
* These properties should not be included in the request body
|
|
99
|
+
*/
|
|
100
|
+
const READ_ONLY_PROPERTIES = {
|
|
101
|
+
dnsResolverState: {
|
|
102
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
103
|
+
required: false,
|
|
104
|
+
description: "The state of the DNS Resolver. Can be 'Connected' or 'Disconnected' (read-only)",
|
|
105
|
+
validation: [
|
|
106
|
+
{
|
|
107
|
+
ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
|
|
108
|
+
value: version_interfaces_1.PropertyType.STRING,
|
|
109
|
+
message: "DnsResolverState must be a string",
|
|
110
|
+
},
|
|
111
|
+
],
|
|
112
|
+
},
|
|
113
|
+
provisioningState: {
|
|
114
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
115
|
+
required: false,
|
|
116
|
+
description: "The provisioning state of the DNS Resolver resource (read-only)",
|
|
117
|
+
validation: [
|
|
118
|
+
{
|
|
119
|
+
ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
|
|
120
|
+
value: version_interfaces_1.PropertyType.STRING,
|
|
121
|
+
message: "ProvisioningState must be a string",
|
|
122
|
+
},
|
|
123
|
+
],
|
|
124
|
+
},
|
|
125
|
+
resourceGuid: {
|
|
126
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
127
|
+
required: false,
|
|
128
|
+
description: "The unique identifier for the DNS Resolver resource (read-only)",
|
|
129
|
+
validation: [
|
|
130
|
+
{
|
|
131
|
+
ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
|
|
132
|
+
value: version_interfaces_1.PropertyType.STRING,
|
|
133
|
+
message: "ResourceGuid must be a string",
|
|
134
|
+
},
|
|
135
|
+
],
|
|
136
|
+
},
|
|
137
|
+
};
|
|
138
|
+
// =============================================================================
|
|
139
|
+
// VERSION-SPECIFIC SCHEMAS
|
|
140
|
+
// =============================================================================
|
|
141
|
+
/**
|
|
142
|
+
* API Schema for DNS Resolver version 2022-07-01
|
|
143
|
+
*/
|
|
144
|
+
exports.DNS_RESOLVER_SCHEMA_2022_07_01 = {
|
|
145
|
+
resourceType: "Microsoft.Network/dnsResolvers",
|
|
146
|
+
version: "2022-07-01",
|
|
147
|
+
properties: {
|
|
148
|
+
...COMMON_PROPERTIES,
|
|
149
|
+
...READ_ONLY_PROPERTIES,
|
|
150
|
+
},
|
|
151
|
+
required: ["location", "name", "virtualNetworkId"],
|
|
152
|
+
optional: ["tags", "ignoreChanges"],
|
|
153
|
+
deprecated: [],
|
|
154
|
+
transformationRules: {},
|
|
155
|
+
validationRules: [
|
|
156
|
+
{
|
|
157
|
+
property: "location",
|
|
158
|
+
rules: [
|
|
159
|
+
{
|
|
160
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
161
|
+
message: "Location is required for DNS Resolvers",
|
|
162
|
+
},
|
|
163
|
+
],
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
property: "name",
|
|
167
|
+
rules: [
|
|
168
|
+
{
|
|
169
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
170
|
+
message: "Name is required for DNS Resolvers",
|
|
171
|
+
},
|
|
172
|
+
],
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
property: "virtualNetworkId",
|
|
176
|
+
rules: [
|
|
177
|
+
{
|
|
178
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
179
|
+
message: "Virtual Network ID is required for DNS Resolvers",
|
|
180
|
+
},
|
|
181
|
+
],
|
|
182
|
+
},
|
|
183
|
+
],
|
|
184
|
+
};
|
|
185
|
+
// =============================================================================
|
|
186
|
+
// VERSION CONFIGURATIONS
|
|
187
|
+
// =============================================================================
|
|
188
|
+
/**
|
|
189
|
+
* Version configuration for DNS Resolver 2022-07-01
|
|
190
|
+
*/
|
|
191
|
+
exports.DNS_RESOLVER_VERSION_2022_07_01 = {
|
|
192
|
+
version: "2022-07-01",
|
|
193
|
+
schema: exports.DNS_RESOLVER_SCHEMA_2022_07_01,
|
|
194
|
+
supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
|
|
195
|
+
releaseDate: "2022-07-01",
|
|
196
|
+
deprecationDate: undefined,
|
|
197
|
+
sunsetDate: undefined,
|
|
198
|
+
breakingChanges: [],
|
|
199
|
+
migrationGuide: "/docs/dns-resolver/migration-2022-07-01",
|
|
200
|
+
changeLog: [
|
|
201
|
+
{
|
|
202
|
+
changeType: "added",
|
|
203
|
+
description: "Stable release of DNS Resolver API with support for hybrid DNS scenarios and conditional forwarding",
|
|
204
|
+
breaking: false,
|
|
205
|
+
},
|
|
206
|
+
],
|
|
207
|
+
};
|
|
208
|
+
/**
|
|
209
|
+
* All supported DNS Resolver versions for registration
|
|
210
|
+
*/
|
|
211
|
+
exports.ALL_DNS_RESOLVER_VERSIONS = [
|
|
212
|
+
exports.DNS_RESOLVER_VERSION_2022_07_01,
|
|
213
|
+
];
|
|
214
|
+
/**
|
|
215
|
+
* Resource type constant
|
|
216
|
+
*/
|
|
217
|
+
exports.DNS_RESOLVER_TYPE = "Microsoft.Network/dnsResolvers";
|
|
218
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zLXJlc29sdmVyLXNjaGVtYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtZG5zcmVzb2x2ZXIvbGliL2Rucy1yZXNvbHZlci1zY2hlbWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUVILDJHQU80RTtBQUU1RSxnRkFBZ0Y7QUFDaEYsOEJBQThCO0FBQzlCLGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQU0saUJBQWlCLEdBQTBDO0lBQy9ELFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLElBQUk7UUFDZCxXQUFXLEVBQ1QsZ0dBQWdHO1FBQ2xHLFVBQVUsRUFBRTtZQUNWO2dCQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxRQUFRO2dCQUNyQyxPQUFPLEVBQUUsd0NBQXdDO2FBQ2xEO1NBQ0Y7S0FDRjtJQUNELElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLEtBQUs7UUFDZixZQUFZLEVBQUUsRUFBRTtRQUNoQixXQUFXLEVBQ1Qsa0dBQWtHO1FBQ3BHLFVBQVUsRUFBRTtZQUNWO2dCQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxVQUFVO2dCQUN2QyxLQUFLLEVBQUUsaUNBQVksQ0FBQyxNQUFNO2dCQUMxQixPQUFPLEVBQUUsb0RBQW9EO2FBQzlEO1NBQ0Y7S0FDRjtJQUNELElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLElBQUk7UUFDZCxXQUFXLEVBQ1QseUVBQXlFO1FBQzNFLFVBQVUsRUFBRTtZQUNWO2dCQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxRQUFRO2dCQUNyQyxPQUFPLEVBQUUsK0JBQStCO2FBQ3pDO1lBQ0Q7Z0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLGFBQWE7Z0JBQzFD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Q0w7b0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLFFBQVE7b0JBQ3JDLE9BQU8sRUFBRSx3Q0FBd0M7aUJBQ2xEO2FBQ0Y7U0FDRjtRQUNEO1lBQ0UsUUFBUSxFQUFFLE1BQU07WUFDaEIsS0FBSyxFQUFFO2dCQUNMO29CQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxRQUFRO29CQUNyQyxPQUFPLEVBQUUsb0NBQW9DO2lCQUM5QzthQUNGO1NBQ0Y7UUFDRDtZQUNFLFFBQVEsRUFBRSxrQkFBa0I7WUFDNUIsS0FBSyxFQUFFO2dCQUNMO29CQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxRQUFRO29CQUNyQyxPQUFPLEVBQUUsa0RBQWtEO2lCQUM1RDthQUNGO1NBQ0Y7S0FDRjtDQUNGLENBQUM7QUFFRixnRkFBZ0Y7QUFDaEYseUJBQXlCO0FBQ3pCLGdGQUFnRjtBQUVoRjs7R0FFRztBQUNVLFFBQUEsK0JBQStCLEdBQWtCO0lBQzVELE9BQU8sRUFBRSxZQUFZO0lBQ3JCLE1BQU0sRUFBRSxzQ0FBOEI7SUFDdEMsWUFBWSxFQUFFLHdDQUFtQixDQUFDLE1BQU07SUFDeEMsV0FBVyxFQUFFLFlBQVk7SUFDekIsZUFBZSxFQUFFLFNBQVM7SUFDMUIsVUFBVSxFQUFFLFNBQVM7SUFDckIsZUFBZSxFQUFFLEVBQUU7SUFDbkIsY0FBYyxFQUFFLHlDQUF5QztJQUN6RCxTQUFTLEVBQUU7UUFDVDtZQUNFLFVBQVUsRUFBRSxPQUFPO1lBQ25CLFdBQVcsRUFDVCxxR0FBcUc7WUFDdkcsUUFBUSxFQUFFLEtBQUs7U0FDaEI7S0FDRjtDQUNGLENBQUM7QUFFRjs7R0FFRztBQUNVLFFBQUEseUJBQXlCLEdBQW9CO0lBQ3hELHVDQUErQjtDQUNoQyxDQUFDO0FBRUY7O0dBRUc7QUFDVSxRQUFBLGlCQUFpQixHQUFHLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBUEkgc2NoZW1hcyBmb3IgQXp1cmUgRE5TIFByaXZhdGUgUmVzb2x2ZXIgYWNyb3NzIGFsbCBzdXBwb3J0ZWQgdmVyc2lvbnNcbiAqXG4gKiBUaGlzIGZpbGUgZGVmaW5lcyB0aGUgY29tcGxldGUgQVBJIHNjaGVtYXMgZm9yIE1pY3Jvc29mdC5OZXR3b3JrL2Ruc1Jlc29sdmVyc1xuICogYWNyb3NzIGFsbCBzdXBwb3J0ZWQgQVBJIHZlcnNpb25zLiBUaGUgc2NoZW1hcyBhcmUgdXNlZCBieSB0aGUgVmVyc2lvbmVkQXphcGlSZXNvdXJjZVxuICogZnJhbWV3b3JrIGZvciB2YWxpZGF0aW9uLCB0cmFuc2Zvcm1hdGlvbiwgYW5kIHZlcnNpb24gbWFuYWdlbWVudC5cbiAqL1xuXG5pbXBvcnQge1xuICBBcGlTY2hlbWEsXG4gIFByb3BlcnR5RGVmaW5pdGlvbixcbiAgUHJvcGVydHlUeXBlLFxuICBWYWxpZGF0aW9uUnVsZVR5cGUsXG4gIFZlcnNpb25Db25maWcsXG4gIFZlcnNpb25TdXBwb3J0TGV2ZWwsXG59IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENPTU1PTiBQUk9QRVJUWSBERUZJTklUSU9OU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDb21tb24gcHJvcGVydHkgZGVmaW5pdGlvbnMgc2hhcmVkIGFjcm9zcyBhbGwgRE5TIFJlc29sdmVyIHZlcnNpb25zXG4gKi9cbmNvbnN0IENPTU1PTl9QUk9QRVJUSUVTOiB7IFtrZXk6IHN0cmluZ106IFByb3BlcnR5RGVmaW5pdGlvbiB9ID0ge1xuICBsb2NhdGlvbjoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJUaGUgQXp1cmUgcmVnaW9uIHdoZXJlIHRoZSBETlMgUmVzb2x2ZXIgd2lsbCBiZSBjcmVhdGVkLiBETlMgUmVzb2x2ZXJzIGFyZSByZWdpb25hbCByZXNvdXJjZXMuXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICBtZXNzYWdlOiBcIkxvY2F0aW9uIGlzIHJlcXVpcmVkIGZvciBETlMgUmVzb2x2ZXJzXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHRhZ3M6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVmYXVsdFZhbHVlOiB7fSxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiQSBkaWN0aW9uYXJ5IG9mIHRhZ3MgdG8gYXBwbHkgdG8gdGhlIEROUyBSZXNvbHZlciBmb3Igb3JnYW5pemF0aW9uYWwsIGJpbGxpbmcsIG9yIG90aGVyIHB1cnBvc2VzXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlRZUEVfQ0hFQ0ssXG4gICAgICAgIHZhbHVlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgICAgICBtZXNzYWdlOiBcIlRhZ3MgbXVzdCBiZSBhbiBvYmplY3Qgd2l0aCBzdHJpbmcga2V5LXZhbHVlIHBhaXJzXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIG5hbWU6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiVGhlIG5hbWUgb2YgdGhlIEROUyBSZXNvbHZlci4gTXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSByZXNvdXJjZSBncm91cC5cIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgIG1lc3NhZ2U6IFwiRE5TIFJlc29sdmVyIG5hbWUgaXMgcmVxdWlyZWRcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUEFUVEVSTl9NQVRDSCxcbiAgICAgICAgdmFsdWU6IFwiXlthLXpBLVowLTldKFthLXpBLVowLTktXSpbYS16QS1aMC05XSk/JFwiLFxuICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgIFwiRE5TIFJlc29sdmVyIG5hbWUgbXVzdCBzdGFydCBhbmQgZW5kIHdpdGggYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYW5kIGNhbiBjb250YWluIGh5cGhlbnNcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuVkFMVUVfUkFOR0UsXG4gICAgICAgIHZhbHVlOiB7IG1pbkxlbmd0aDogMSwgbWF4TGVuZ3RoOiA4MCB9LFxuICAgICAgICBtZXNzYWdlOiBcIkROUyBSZXNvbHZlciBuYW1lIG11c3QgYmUgYmV0d2VlbiAxIGFuZCA4MCBjaGFyYWN0ZXJzXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHZpcnR1YWxOZXR3b3JrSWQ6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiVGhlIHJlc291cmNlIElEIG9mIHRoZSB2aXJ0dWFsIG5ldHdvcmsgd2hlcmUgdGhlIEROUyBSZXNvbHZlciB3aWxsIGJlIGRlcGxveWVkLiBUaGUgcmVzb2x2ZXIgcmVxdWlyZXMgYSBkZWRpY2F0ZWQgc3VibmV0LlwiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgbWVzc2FnZTogXCJWaXJ0dWFsIE5ldHdvcmsgSUQgaXMgcmVxdWlyZWQgZm9yIEROUyBSZXNvbHZlcnNcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUEFUVEVSTl9NQVRDSCxcbiAgICAgICAgdmFsdWU6XG4gICAgICAgICAgXCJeL3N1YnNjcmlwdGlvbnMvW14vXSsvcmVzb3VyY2VHcm91cHMvW14vXSsvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ZpcnR1YWxOZXR3b3Jrcy9bXi9dKyRcIixcbiAgICAgICAgbWVzc2FnZTogXCJWaXJ0dWFsIE5ldHdvcmsgSUQgbXVzdCBiZSBhIHZhbGlkIEF6dXJlIHJlc291cmNlIElEXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGlnbm9yZUNoYW5nZXM6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLkFSUkFZLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJBcnJheSBvZiBwcm9wZXJ0eSBuYW1lcyB0byBpZ25vcmUgZHVyaW5nIHVwZGF0ZXNcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuVFlQRV9DSEVDSyxcbiAgICAgICAgdmFsdWU6IFByb3BlcnR5VHlwZS5BUlJBWSxcbiAgICAgICAgbWVzc2FnZTogXCJJZ25vcmVDaGFuZ2VzIG11c3QgYmUgYW4gYXJyYXkgb2Ygc3RyaW5nc1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFJFQUQtT05MWSBQUk9QRVJUWSBERUZJTklUSU9OU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBSZWFkLW9ubHkgcHJvcGVydGllcyB0aGF0IGFyZSBwb3B1bGF0ZWQgYnkgQXp1cmUgYWZ0ZXIgY3JlYXRpb25cbiAqIFRoZXNlIHByb3BlcnRpZXMgc2hvdWxkIG5vdCBiZSBpbmNsdWRlZCBpbiB0aGUgcmVxdWVzdCBib2R5XG4gKi9cbmNvbnN0IFJFQURfT05MWV9QUk9QRVJUSUVTOiB7IFtrZXk6IHN0cmluZ106IFByb3BlcnR5RGVmaW5pdGlvbiB9ID0ge1xuICBkbnNSZXNvbHZlclN0YXRlOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJUaGUgc3RhdGUgb2YgdGhlIEROUyBSZXNvbHZlci4gQ2FuIGJlICdDb25uZWN0ZWQnIG9yICdEaXNjb25uZWN0ZWQnIChyZWFkLW9ubHkpXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlRZUEVfQ0hFQ0ssXG4gICAgICAgIHZhbHVlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgICAgICBtZXNzYWdlOiBcIkRuc1Jlc29sdmVyU3RhdGUgbXVzdCBiZSBhIHN0cmluZ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBwcm92aXNpb25pbmdTdGF0ZToge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiVGhlIHByb3Zpc2lvbmluZyBzdGF0ZSBvZiB0aGUgRE5TIFJlc29sdmVyIHJlc291cmNlIChyZWFkLW9ubHkpXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlRZUEVfQ0hFQ0ssXG4gICAgICAgIHZhbHVlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgICAgICBtZXNzYWdlOiBcIlByb3Zpc2lvbmluZ1N0YXRlIG11c3QgYmUgYSBzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgcmVzb3VyY2VHdWlkOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBETlMgUmVzb2x2ZXIgcmVzb3VyY2UgKHJlYWQtb25seSlcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuVFlQRV9DSEVDSyxcbiAgICAgICAgdmFsdWU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgICAgIG1lc3NhZ2U6IFwiUmVzb3VyY2VHdWlkIG11c3QgYmUgYSBzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBWRVJTSU9OLVNQRUNJRklDIFNDSEVNQVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQVBJIFNjaGVtYSBmb3IgRE5TIFJlc29sdmVyIHZlcnNpb24gMjAyMi0wNy0wMVxuICovXG5leHBvcnQgY29uc3QgRE5TX1JFU09MVkVSX1NDSEVNQV8yMDIyXzA3XzAxOiBBcGlTY2hlbWEgPSB7XG4gIHJlc291cmNlVHlwZTogXCJNaWNyb3NvZnQuTmV0d29yay9kbnNSZXNvbHZlcnNcIixcbiAgdmVyc2lvbjogXCIyMDIyLTA3LTAxXCIsXG4gIHByb3BlcnRpZXM6IHtcbiAgICAuLi5DT01NT05fUFJPUEVSVElFUyxcbiAgICAuLi5SRUFEX09OTFlfUFJPUEVSVElFUyxcbiAgfSxcbiAgcmVxdWlyZWQ6IFtcImxvY2F0aW9uXCIsIFwibmFtZVwiLCBcInZpcnR1YWxOZXR3b3JrSWRcIl0sXG4gIG9wdGlvbmFsOiBbXCJ0YWdzXCIsIFwiaWdub3JlQ2hhbmdlc1wiXSxcbiAgZGVwcmVjYXRlZDogW10sXG4gIHRyYW5zZm9ybWF0aW9uUnVsZXM6IHt9LFxuICB2YWxpZGF0aW9uUnVsZXM6IFtcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJsb2NhdGlvblwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJMb2NhdGlvbiBpcyByZXF1aXJlZCBmb3IgRE5TIFJlc29sdmVyc1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3BlcnR5OiBcIm5hbWVcIixcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICAgIG1lc3NhZ2U6IFwiTmFtZSBpcyByZXF1aXJlZCBmb3IgRE5TIFJlc29sdmVyc1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3BlcnR5OiBcInZpcnR1YWxOZXR3b3JrSWRcIixcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICAgIG1lc3NhZ2U6IFwiVmlydHVhbCBOZXR3b3JrIElEIGlzIHJlcXVpcmVkIGZvciBETlMgUmVzb2x2ZXJzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF0sXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVkVSU0lPTiBDT05GSUdVUkFUSU9OU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBWZXJzaW9uIGNvbmZpZ3VyYXRpb24gZm9yIEROUyBSZXNvbHZlciAyMDIyLTA3LTAxXG4gKi9cbmV4cG9ydCBjb25zdCBETlNfUkVTT0xWRVJfVkVSU0lPTl8yMDIyXzA3XzAxOiBWZXJzaW9uQ29uZmlnID0ge1xuICB2ZXJzaW9uOiBcIjIwMjItMDctMDFcIixcbiAgc2NoZW1hOiBETlNfUkVTT0xWRVJfU0NIRU1BXzIwMjJfMDdfMDEsXG4gIHN1cHBvcnRMZXZlbDogVmVyc2lvblN1cHBvcnRMZXZlbC5BQ1RJVkUsXG4gIHJlbGVhc2VEYXRlOiBcIjIwMjItMDctMDFcIixcbiAgZGVwcmVjYXRpb25EYXRlOiB1bmRlZmluZWQsXG4gIHN1bnNldERhdGU6IHVuZGVmaW5lZCxcbiAgYnJlYWtpbmdDaGFuZ2VzOiBbXSxcbiAgbWlncmF0aW9uR3VpZGU6IFwiL2RvY3MvZG5zLXJlc29sdmVyL21pZ3JhdGlvbi0yMDIyLTA3LTAxXCIsXG4gIGNoYW5nZUxvZzogW1xuICAgIHtcbiAgICAgIGNoYW5nZVR5cGU6IFwiYWRkZWRcIixcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIlN0YWJsZSByZWxlYXNlIG9mIEROUyBSZXNvbHZlciBBUEkgd2l0aCBzdXBwb3J0IGZvciBoeWJyaWQgRE5TIHNjZW5hcmlvcyBhbmQgY29uZGl0aW9uYWwgZm9yd2FyZGluZ1wiLFxuICAgICAgYnJlYWtpbmc6IGZhbHNlLFxuICAgIH0sXG4gIF0sXG59O1xuXG4vKipcbiAqIEFsbCBzdXBwb3J0ZWQgRE5TIFJlc29sdmVyIHZlcnNpb25zIGZvciByZWdpc3RyYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IEFMTF9ETlNfUkVTT0xWRVJfVkVSU0lPTlM6IFZlcnNpb25Db25maWdbXSA9IFtcbiAgRE5TX1JFU09MVkVSX1ZFUlNJT05fMjAyMl8wN18wMSxcbl07XG5cbi8qKlxuICogUmVzb3VyY2UgdHlwZSBjb25zdGFudFxuICovXG5leHBvcnQgY29uc3QgRE5TX1JFU09MVkVSX1RZUEUgPSBcIk1pY3Jvc29mdC5OZXR3b3JrL2Ruc1Jlc29sdmVyc1wiO1xuIl19
|