@microsoft/terraform-cdk-constructs 0.0.3-pre.6 → 0.0.3-pre.7
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 +909 -306
- package/API.md +2488 -255
- package/README.md +112 -18
- package/docs/images/ide-documentation.png +0 -0
- package/lib/azure-actiongroup/lib/actiongroup.d.ts +39 -0
- package/lib/azure-actiongroup/lib/actiongroup.js +40 -1
- package/lib/azure-applicationgateway/lib/gateway.d.ts +76 -0
- package/lib/azure-applicationgateway/lib/gateway.js +78 -2
- package/lib/azure-applicationinsights/lib/appinsights.d.ts +50 -0
- package/lib/azure-applicationinsights/lib/appinsights.js +52 -3
- package/lib/azure-containerregistry/lib/registry.d.ts +29 -0
- package/lib/azure-containerregistry/lib/registry.js +31 -2
- package/lib/azure-datalake/lib/datalake.d.ts +50 -0
- package/lib/azure-datalake/lib/datalake.js +51 -1
- package/lib/azure-datalake/lib/filesystem.d.ts +51 -0
- package/lib/azure-datalake/lib/filesystem.js +52 -1
- package/lib/azure-datalake/lib/path.d.ts +37 -0
- package/lib/azure-datalake/lib/path.js +38 -1
- package/lib/azure-eventhub/lib/authorization.d.ts +30 -0
- package/lib/azure-eventhub/lib/authorization.js +32 -2
- package/lib/azure-eventhub/lib/cluster.d.ts +29 -0
- package/lib/azure-eventhub/lib/cluster.js +31 -2
- package/lib/azure-eventhub/lib/consumer.d.ts +28 -0
- package/lib/azure-eventhub/lib/consumer.js +30 -2
- package/lib/azure-eventhub/lib/instance.d.ts +118 -0
- package/lib/azure-eventhub/lib/instance.js +120 -2
- package/lib/azure-eventhub/lib/kusto-connection.d.ts +41 -0
- package/lib/azure-eventhub/lib/kusto-connection.js +43 -2
- package/lib/azure-eventhub/lib/namespace.d.ts +74 -0
- package/lib/azure-eventhub/lib/namespace.js +76 -3
- package/lib/azure-functionapp/lib/functionapplinux.js +1 -1
- package/lib/azure-keyvault/lib/certificate.d.ts +96 -2
- package/lib/azure-keyvault/lib/certificate.js +55 -3
- package/lib/azure-keyvault/lib/key.d.ts +36 -0
- package/lib/azure-keyvault/lib/key.js +38 -2
- package/lib/azure-keyvault/lib/policy.d.ts +30 -0
- package/lib/azure-keyvault/lib/policy.js +32 -2
- package/lib/azure-keyvault/lib/secret.d.ts +31 -0
- package/lib/azure-keyvault/lib/secret.js +33 -2
- package/lib/azure-keyvault/lib/vault.d.ts +188 -0
- package/lib/azure-keyvault/lib/vault.js +191 -7
- package/lib/azure-kubernetes/lib/cluster.d.ts +25 -4
- package/lib/azure-kubernetes/lib/cluster.js +27 -6
- package/lib/azure-kusto/lib/cluster.d.ts +53 -0
- package/lib/azure-kusto/lib/cluster.js +55 -2
- package/lib/azure-kusto/lib/compute-specification.js +1 -1
- package/lib/azure-kusto/lib/database.d.ts +103 -0
- package/lib/azure-kusto/lib/database.js +105 -2
- package/lib/azure-loganalytics/lib/workspace.d.ts +47 -0
- package/lib/azure-loganalytics/lib/workspace.js +49 -2
- package/lib/azure-metricalert/lib/metric-alert.d.ts +43 -4
- package/lib/azure-metricalert/lib/metric-alert.js +45 -6
- package/lib/azure-networksecuritygroup/lib/preconfigured-rules.js +1 -1
- package/lib/azure-networksecuritygroup/lib/securitygroup.d.ts +92 -0
- package/lib/azure-networksecuritygroup/lib/securitygroup.js +95 -5
- package/lib/azure-queryrulealert/lib/query-rule-alert.d.ts +35 -4
- package/lib/azure-queryrulealert/lib/query-rule-alert.js +37 -6
- package/lib/azure-resourcegroup/lib/resource-group.d.ts +28 -0
- package/lib/azure-resourcegroup/lib/resource-group.js +30 -2
- package/lib/azure-storageaccount/lib/account.d.ts +75 -48
- package/lib/azure-storageaccount/lib/account.js +77 -50
- package/lib/azure-storageaccount/lib/container.d.ts +94 -12
- package/lib/azure-storageaccount/lib/container.js +97 -15
- package/lib/azure-storageaccount/lib/fileshare.d.ts +36 -0
- package/lib/azure-storageaccount/lib/fileshare.js +39 -3
- package/lib/azure-storageaccount/lib/queue.d.ts +29 -0
- package/lib/azure-storageaccount/lib/queue.js +31 -2
- package/lib/azure-storageaccount/lib/table.d.ts +32 -0
- package/lib/azure-storageaccount/lib/table.js +34 -2
- package/lib/azure-virtualmachine/lib/image-references.js +2 -2
- package/lib/azure-virtualmachine/lib/vm.d.ts +84 -8
- package/lib/azure-virtualmachine/lib/vm.js +87 -11
- package/lib/azure-virtualmachinescaleset/lib/cluster.d.ts +98 -8
- package/lib/azure-virtualmachinescaleset/lib/cluster.js +101 -11
- package/lib/azure-virtualnetwork/lib/network.d.ts +61 -0
- package/lib/azure-virtualnetwork/lib/network.js +63 -3
- package/lib/azure-virtualnetwork/lib/peering.d.ts +39 -0
- package/lib/azure-virtualnetwork/lib/peering.js +41 -2
- package/lib/core-azure/lib/diagsettings.d.ts +37 -0
- package/lib/core-azure/lib/diagsettings.js +39 -2
- package/lib/core-azure/lib/rbac.d.ts +22 -4
- package/lib/core-azure/lib/rbac.js +24 -6
- package/lib/core-azure/lib/resource.d.ts +45 -0
- package/lib/core-azure/lib/resource.js +48 -4
- package/package.json +1 -1
|
@@ -11,11 +11,57 @@ const network_1 = require("../../azure-virtualnetwork/lib/network");
|
|
|
11
11
|
const lib_1 = require("../../core-azure/lib");
|
|
12
12
|
class LinuxCluster extends lib_1.AzureResource {
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
14
|
+
* Represents a Linux Virtual Machine Scale Set (VMSS) within Microsoft Azure.
|
|
15
15
|
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
16
|
+
* This class is designed to provision and manage a scale set of Linux virtual machines, providing capabilities such as
|
|
17
|
+
* auto-scaling, high availability, and simplified management. It supports detailed configurations like VM size, operating
|
|
18
|
+
* system image, network settings, and administrative credentials. Additional functionalities include custom data scripts,
|
|
19
|
+
* SSH configurations, and optional features like managed identity and boot diagnostics.
|
|
20
|
+
*
|
|
21
|
+
* @param scope - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) application.
|
|
22
|
+
* @param id - The unique identifier for this instance of the Linux cluster, used within the scope for reference.
|
|
23
|
+
* @param props - Configuration properties for the Linux VM Scale Set, derived from the LinuxClusterProps interface. These include:
|
|
24
|
+
* - `location`: The geographic location where the scale set will be hosted (e.g., "eastus").
|
|
25
|
+
* - `name`: The name of the scale set, which must be unique within the resource group.
|
|
26
|
+
* - `resourceGroup`: The ResourceGroup within which the scale set will be created.
|
|
27
|
+
* - `sku`: The size specification of the VMs (e.g., "Standard_B2s").
|
|
28
|
+
* - `adminUsername`: The administrator username for the VMs.
|
|
29
|
+
* - `adminPassword`: The administrator password for the VMs.
|
|
30
|
+
* - `adminSshKey`: SSH keys for secure access to the VMs.
|
|
31
|
+
* - `zones`: The availability zones for deploying the VMs.
|
|
32
|
+
* - `identity`: Managed identity settings for accessing other Azure services.
|
|
33
|
+
* - `sourceImageReference`: A reference to the specific Linux image to be used for the VMs.
|
|
34
|
+
* - `sourceImageId`: The identifier for a custom image to use for the VMs.
|
|
35
|
+
* - `tags`: Key-value pairs for resource tagging.
|
|
36
|
+
* - `osDisk`: Configuration for the VMs' operating system disks.
|
|
37
|
+
* - `subnet`: Specifies the subnet within which the VMs will be placed.
|
|
38
|
+
* - `publicIPAddress`: Method used to allocate public IP addresses to the VMs.
|
|
39
|
+
* - `customData`: Scripts or commands passed to the VMs at startup.
|
|
40
|
+
* - `instances`: The number of VM instances in the scale set.
|
|
41
|
+
* - `upgradePolicyMode`: The upgrade policy mode for the VMSS.
|
|
42
|
+
* - `overprovision`: Specifies if the VMSS should be overprovisioned to maintain capacity during updates.
|
|
43
|
+
* - `scaleInPolicy`: The scale-in policy for the VMSS.
|
|
44
|
+
* - `bootDiagnosticsStorageURI`: URI for storage where VMSS boot diagnostics are collected.
|
|
45
|
+
* - `enableSshAzureADLogin`: Option to enable Azure AD login for SSH on the VMs.
|
|
46
|
+
*
|
|
47
|
+
* Example usage:
|
|
48
|
+
* ```typescript
|
|
49
|
+
* const linuxCluster = new LinuxCluster(this, 'MyLinuxCluster', {
|
|
50
|
+
* resourceGroup: myResourceGroup,
|
|
51
|
+
* name: 'myCluster',
|
|
52
|
+
* sku: 'Standard_DS1_v2',
|
|
53
|
+
* adminUsername: 'adminuser',
|
|
54
|
+
* adminSshKey: [{ publicKey: 'ssh-rsa AAAAB...' }],
|
|
55
|
+
* sourceImageReference: { publisher: 'Canonical', offer: 'UbuntuServer', sku: '18.04-LTS', version: 'latest' },
|
|
56
|
+
* osDisk: { caching: 'ReadWrite', storageAccountType: 'Standard_LRS' },
|
|
57
|
+
* subnet: mySubnet,
|
|
58
|
+
* instances: 3,
|
|
59
|
+
* tags: { environment: 'production' }
|
|
60
|
+
* });
|
|
61
|
+
* ```
|
|
62
|
+
* This class initializes a Linux VM Scale Set with the specified configurations, handling details like VM creation,
|
|
63
|
+
* scaling policies, network setup, OS installation, and security settings, providing a robust and scalable infrastructure
|
|
64
|
+
* for hosting cloud-based Linux applications.
|
|
19
65
|
*/
|
|
20
66
|
constructor(scope, id, props) {
|
|
21
67
|
super(scope, id);
|
|
@@ -88,14 +134,58 @@ class LinuxCluster extends lib_1.AzureResource {
|
|
|
88
134
|
}
|
|
89
135
|
exports.LinuxCluster = LinuxCluster;
|
|
90
136
|
_a = JSII_RTTI_SYMBOL_1;
|
|
91
|
-
LinuxCluster[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_virtualmachinescaleset.LinuxCluster", version: "0.0.3-pre.
|
|
137
|
+
LinuxCluster[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_virtualmachinescaleset.LinuxCluster", version: "0.0.3-pre.7" };
|
|
92
138
|
class WindowsCluster extends lib_1.AzureResource {
|
|
93
139
|
/**
|
|
94
|
-
*
|
|
140
|
+
* Represents a Windows Virtual Machine Scale Set (VMSS) within Microsoft Azure.
|
|
141
|
+
*
|
|
142
|
+
* This class provides a way to deploy and manage a scale set of Windows virtual machines, allowing for configurations such as
|
|
143
|
+
* auto-scaling, high availability, and simplified patch management. It supports detailed specifications including
|
|
144
|
+
* VM size, the operating system image, network settings, and administrative credentials. Additional capabilities include
|
|
145
|
+
* custom data scripts, automatic OS updates, and optional features like managed identity and boot diagnostics.
|
|
146
|
+
*
|
|
147
|
+
* @param scope - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) application.
|
|
148
|
+
* @param id - The unique identifier for this instance of the Windows cluster, used within the scope for reference.
|
|
149
|
+
* @param props - Configuration properties for the Windows VM Scale Set, derived from the WindowsClusterProps interface. These include:
|
|
150
|
+
* - `location`: The geographic location where the scale set will be hosted (e.g., "eastus").
|
|
151
|
+
* - `name`: The name of the scale set, which must be unique within the resource group.
|
|
152
|
+
* - `resourceGroup`: The ResourceGroup within which the scale set will be created.
|
|
153
|
+
* - `sku`: The size specification of the VMs (e.g., "Standard_B2s").
|
|
154
|
+
* - `adminUsername`: The administrator username for the VMs.
|
|
155
|
+
* - `adminPassword`: The administrator password for the VMs.
|
|
156
|
+
* - `zones`: The availability zones for deploying the VMs.
|
|
157
|
+
* - `instances`: The number of VM instances in the scale set.
|
|
158
|
+
* - `sourceImageReference`: A reference to the specific Windows image to be used for the VMs.
|
|
159
|
+
* - `sourceImageId`: The identifier for a custom image to use for the VMs.
|
|
160
|
+
* - `tags`: Key-value pairs for resource tagging.
|
|
161
|
+
* - `osDisk`: Configuration for the VMs' operating system disks.
|
|
162
|
+
* - `subnet`: Specifies the subnet within which the VMs will be placed.
|
|
163
|
+
* - `publicIPAddress`: Method used to allocate public IP addresses to the VMs.
|
|
164
|
+
* - `customData`: Scripts or commands passed to the VMs at startup.
|
|
165
|
+
* - `upgradePolicyMode`: The upgrade policy mode for the VMSS.
|
|
166
|
+
* - `overprovision`: Specifies if the VMSS should be overprovisioned to maintain capacity during updates.
|
|
167
|
+
* - `scaleInPolicy`: The scale-in policy for the VMSS.
|
|
168
|
+
* - `bootDiagnosticsStorageURI`: URI for storage where VMSS boot diagnostics are collected.
|
|
169
|
+
* - `enableSshAzureADLogin`: Option to enable Azure AD login for SSH on the VMs.
|
|
95
170
|
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
171
|
+
* Example usage:
|
|
172
|
+
* ```typescript
|
|
173
|
+
* const windowsCluster = new WindowsCluster(this, 'MyWindowsCluster', {
|
|
174
|
+
* resourceGroup: myResourceGroup,
|
|
175
|
+
* name: 'myCluster',
|
|
176
|
+
* sku: 'Standard_DS1_v2',
|
|
177
|
+
* adminUsername: 'adminuser',
|
|
178
|
+
* adminPassword: 'securepassword123',
|
|
179
|
+
* sourceImageReference: { publisher: 'MicrosoftWindowsServer', offer: 'WindowsServer', sku: '2019-Datacenter', version: 'latest' },
|
|
180
|
+
* osDisk: { caching: 'ReadWrite', storageAccountType: 'Standard_LRS' },
|
|
181
|
+
* subnet: mySubnet,
|
|
182
|
+
* instances: 3,
|
|
183
|
+
* tags: { environment: 'production' }
|
|
184
|
+
* });
|
|
185
|
+
* ```
|
|
186
|
+
* This class initializes a Windows VM Scale Set with the specified configurations, handling details like VM creation,
|
|
187
|
+
* scaling policies, network setup, OS installation, and security settings, providing a robust and scalable infrastructure
|
|
188
|
+
* for hosting cloud-based Windows applications.
|
|
99
189
|
*/
|
|
100
190
|
constructor(scope, id, props) {
|
|
101
191
|
super(scope, id);
|
|
@@ -170,5 +260,5 @@ class WindowsCluster extends lib_1.AzureResource {
|
|
|
170
260
|
}
|
|
171
261
|
exports.WindowsCluster = WindowsCluster;
|
|
172
262
|
_b = JSII_RTTI_SYMBOL_1;
|
|
173
|
-
WindowsCluster[_b] = { fqn: "@microsoft/terraform-cdk-constructs.azure_virtualmachinescaleset.WindowsCluster", version: "0.0.3-pre.
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS12aXJ0dWFsbWFjaGluZXNjYWxlc2V0L2xpYi9jbHVzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBTUEsaUhBR3FFO0FBR3JFLHlIQUFtSDtBQUtuSCxxSEFHdUU7QUFHdkUscUVBR29DO0FBQ3BDLG9FQUFpRTtBQUNqRSw4Q0FBcUQ7QUErSHJELE1BQWEsWUFBYSxTQUFRLG1CQUFhO0lBTzdDOzs7Ozs7T0FNRztJQUVILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBd0I7UUFDaEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFFekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTlDLE1BQU0sUUFBUSxHQUFHO1lBQ2YsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLElBQUksUUFBUTtZQUM1QixhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWEsSUFBSSxRQUFRLFFBQVEsRUFBRTtZQUN4RCxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsSUFBSSxRQUFRO1lBQ3BDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxJQUFJLGNBQWM7WUFDaEMsU0FBUyxFQUFFLEtBQUssQ0FBQyxTQUFTLElBQUksQ0FBQztZQUMvQixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sSUFBSTtnQkFDdEIsT0FBTyxFQUFFLFdBQVc7Z0JBQ3BCLGtCQUFrQixFQUFFLGNBQWM7YUFDbkM7WUFDRCxvQkFBb0IsRUFDbEIsS0FBSyxDQUFDLG9CQUFvQixJQUFJLDJDQUFvQixDQUFDLG1CQUFt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O1NBQ0o7SUFDSCxDQUFDOztBQWhHSCx3Q0FpR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBMaW51eFZpcnR1YWxNYWNoaW5lU291cmNlSW1hZ2VSZWZlcmVuY2UsXG4gIExpbnV4VmlydHVhbE1hY2hpbmVPc0Rpc2ssXG4gIExpbnV4VmlydHVhbE1hY2hpbmVBZG1pblNzaEtleSxcbiAgTGludXhWaXJ0dWFsTWFjaGluZUlkZW50aXR5LFxufSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL2xpbnV4LXZpcnR1YWwtbWFjaGluZVwiO1xuaW1wb3J0IHtcbiAgTGludXhWaXJ0dWFsTWFjaGluZVNjYWxlU2V0LFxuICBMaW51eFZpcnR1YWxNYWNoaW5lU2NhbGVTZXROZXR3b3JrSW50ZXJmYWNlSXBDb25maWd1cmF0aW9uUHVibGljSXBBZGRyZXNzLFxufSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL2xpbnV4LXZpcnR1YWwtbWFjaGluZS1zY2FsZS1zZXRcIjtcbmltcG9ydCB7IFJlc291cmNlR3JvdXAgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3Jlc291cmNlLWdyb3VwXCI7XG5pbXBvcnQgeyBTdWJuZXQgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3N1Ym5ldFwiO1xuaW1wb3J0IHsgVmlydHVhbE1hY2hpbmVTY2FsZVNldEV4dGVuc2lvbkEgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3ZpcnR1YWwtbWFjaGluZS1zY2FsZS1zZXQtZXh0ZW5zaW9uXCI7XG5pbXBvcnQge1xuICBXaW5kb3dzVmlydHVhbE1hY2hpbmVPc0Rpc2ssXG4gIFdpbmRvd3NWaXJ0dWFsTWFjaGluZVNvdXJjZUltYWdlUmVmZXJlbmNlLFxufSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3dpbmRvd3MtdmlydHVhbC1tYWNoaW5lXCI7XG5pbXBvcnQge1xuICBXaW5kb3dzVmlydHVhbE1hY2hpbmVTY2FsZVNldCxcbiAgV2luZG93c1ZpcnR1YWxNYWNoaW5lU2NhbGVTZXROZXR3b3JrSW50ZXJmYWNlSXBDb25maWd1cmF0aW9uUHVibGljSXBBZGRyZXNzLFxufSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3dpbmRvd3MtdmlydHVhbC1tYWNoaW5lLXNjYWxlLXNldFwiO1xuaW1wb3J0ICogYXMgY2RrdGYgZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgV2luZG93c0ltYWdlUmVmZXJlbmNlcyxcbiAgTGludXhJbWFnZVJlZmVyZW5jZXMsXG59IGZyb20gXCIuLi8uLi9henVyZS12aXJ0dWFsbWFjaGluZVwiO1xuaW1wb3J0IHsgTmV0d29yayB9IGZyb20gXCIuLi8uLi9henVyZS12aXJ0dWFsbmV0d29yay9saWIvbmV0d29ya1wiO1xuaW1wb3J0IHsgQXp1cmVSZXNvdXJjZSB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYlwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIExpbnV4Q2x1c3RlclByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBBenVyZSBsb2NhdGlvbiB3aGVyZSB0aGUgdmlydHVhbCBtYWNoaW5lIHNjYWxlIHNldCBzaG91bGQgYmUgY3JlYXRlZC5cbiAgICogQGRlZmF1bHQgXCJlYXN0dXNcIlxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYXRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB2aXJ0dWFsIG1hY2hpbmUgc2NhbGUgc2V0LlxuICAgKiBAZGVmYXVsdCAtIFVzZXMgdGhlIG5hbWUgZGVyaXZlZCBmcm9tIHRoZSBjb25zdHJ1Y3QgcGF0aC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhZG1pbiB1c2VybmFtZSBmb3IgdGhlIHZpcnR1YWwgbWFjaGluZS5cbiAgICovXG4gIHJlYWRvbmx5IGFkbWluVXNlcm5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhZG1pbiBwYXNzd29yZCBmb3IgdGhlIHZpcnR1YWwgbWFjaGluZS5cbiAgICovXG4gIHJlYWRvbmx5IGFkbWluUGFzc3dvcmQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZSBncm91cCBpbiB3aGljaCB0aGUgdmlydHVhbCBtYWNoaW5lIHNjYWxlIHNldCB3aWxsIGJlIGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZUdyb3VwOiBSZXNvdXJjZUdyb3VwO1xuXG4gIC8qKlxuICAgKiBUaGUgc2l6ZSBvZiB0aGUgdmlydHVhbCBtYWNoaW5lcyBpbiB0aGUgc2NhbGUgc2V0LlxuICAgKiBAZGVmYXVsdCBcIlN0YW5kYXJkX0Iyc1wiXG4gICAqL1xuICByZWFkb25seSBza3U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBkYXRhIHRvIHBhc3MgdG8gdGhlIHZpcnR1YWwgbWFjaGluZXMgdXBvbiBjcmVhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHVzZXJEYXRhPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBTU0gga2V5cyBmb3IgdGhlIGFkbWluIHVzZXIuXG4gICAqL1xuICByZWFkb25seSBhZG1pblNzaEtleT86IExpbnV4VmlydHVhbE1hY2hpbmVBZG1pblNzaEtleVtdIHwgY2RrdGYuSVJlc29sdmFibGU7XG5cbiAgLyoqXG4gICAqIFRoZSBhdmFpbGFiaWxpdHkgem9uZShzKSBpbiB3aGljaCB0aGUgVk1zIHNob3VsZCBiZSBwbGFjZWQuXG4gICAqL1xuICByZWFkb25seSB6b25lcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBNYW5hZ2VkIGlkZW50aXR5IHNldHRpbmdzIGZvciB0aGUgVk1zLlxuICAgKi9cbiAgcmVhZG9ubHkgaWRlbnRpdHk/OiBMaW51eFZpcnR1YWxNYWNoaW5lSWRlbnRpdHk7XG5cbiAgLyoqXG4gICAqIFRoZSBzb3VyY2UgaW1hZ2UgcmVmZXJlbmNlIGZvciB0aGUgdmlydHVhbCBtYWNoaW5lcy5cbiAgICogQGRlZmF1bHQgLSBVc2VzIGEgZGVmYXVsdCBVYnVudHUgaW1hZ2UuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VJbWFnZVJlZmVyZW5jZT86IExpbnV4VmlydHVhbE1hY2hpbmVTb3VyY2VJbWFnZVJlZmVyZW5jZTtcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBzb3VyY2UgaW1hZ2UgZm9yIHRoZSB2aXJ0dWFsIG1hY2hpbmVzLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlSW1hZ2VJZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGFncyB0byBhcHBseSB0byB0aGUgdmlydHVhbCBtYWNoaW5lIHNjYWxlIHNldC5cbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBUaGUgT1MgZGlzayBjb25maWd1cmF0aW9uIGZvciB0aGUgdmlydHVhbCBtYWNoaW5lcy5cbiAgICogQGRlZmF1bHQgLSBVc2VzIGEgZGlzayB3aXRoIGNhY2hpbmcgc2V0IHRvIFwiUmVhZFdyaXRlXCIgYW5kIHN0b3JhZ2UgYWNjb3VudCB0eXBlIFwiU3RhbmRhcmRfTFJTXCIuXG4gICAqL1xuICByZWFkb25seSBvc0Rpc2s/OiBMaW51eFZpcnR1YWxNYWNoaW5lT3NEaXNrO1xuXG4gIC8qKlxuICAgKiBUaGUgc3VibmV0IGluIHdoaWNoIHRoZSB2aXJ0dWFsIG1hY2hpbmVzIHdpbGwgYmUgcGxhY2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0PzogU3VibmV0O1xuXG4gIC8qKlxuICAgKiBUaGUgYWxsb2NhdGlvbiBtZXRob2QgZm9yIHRoZSBwdWJsaWMgSVAuXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNJUEFkZHJlc3M/OiBMaW51eFZpcnR1YWxNYWNoaW5lU2NhbGVTZXROZXR3b3JrSW50ZXJmYWNlSXBDb25maWd1cmF0aW9uUHVibGljSXBBZGRyZXNzW107XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBkYXRhIHRvIHBhc3MgdG8gdGhlIHZpcnR1YWwgbWFjaGluZXMgdXBvbiBjcmVhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGN1c3RvbURhdGE/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgVk0gaW5zdGFuY2VzIGluIHRoZSBzY2FsZSBzZXQuXG4gICAqIEBkZWZhdWx0IDJcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlcz86IG51bWJlcjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBzY2FsZSBzZXQncyB1cGdyYWRlIHBvbGljeSBzZXR0aW5ncy5cbiAgICovXG4gIHJlYWRvbmx5IHVwZ3JhZGVQb2xpY3lNb2RlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgaWYgdGhlIFZNU1Mgc2hvdWxkIGJlIG92ZXJwcm92aXNpb25lZC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgb3ZlcnByb3Zpc2lvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgc2NhbGUtaW4gcG9saWN5IGZvciB0aGUgVk1TUy5cbiAgICovXG4gIHJlYWRvbmx5IHNjYWxlSW5Qb2xpY3k/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJvb3QgZGlhZ25vc3RpY3Mgc2V0dGluZ3MgZm9yIHRoZSBWTVNTLlxuICAgKi9cbiAgcmVhZG9ubHkgYm9vdERpYWdub3N0aWNzU3RvcmFnZVVSST86IHN0cmluZztcblxuICAvKipcbiAgICogRW5hYmxlIFNTSCBBenVyZSBBRCBMb2dpbiwgcmVxdWlyZWQgbWFuYWdlZCBpZGVudGl0eSB0byBiZSBzZXQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVTc2hBenVyZUFETG9naW4/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgTGludXhDbHVzdGVyIGV4dGVuZHMgQXp1cmVSZXNvdXJjZSB7XG4gIHB1YmxpYyByZWFkb25seSBwcm9wczogTGludXhDbHVzdGVyUHJvcHM7XG4gIHB1YmxpYyByZXNvdXJjZUdyb3VwOiBSZXNvdXJjZUdyb3VwO1xuICBwdWJsaWMgaWQ6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGZxbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBBenVyZUxpbnV4VmlydHVhbE1hY2hpbmUgY2xhc3MuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0aGlzIGNvbnN0cnVjdCBpcyBkZWZpbmVkLlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgSUQgb2YgdGhpcyBjb25zdHJ1Y3QuXG4gICAqIEBwYXJhbSBwcm9wcyAtIFRoZSBwcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBhIExpbnV4IFZpcnR1YWwgTWFjaGluZS5cbiAgICovXG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IExpbnV4Q2x1c3RlclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgICB0aGlzLnJlc291cmNlR3JvdXAgPSBwcm9wcy5yZXNvdXJjZUdyb3VwO1xuXG4gICAgY29uc3QgcGF0aE5hbWUgPSB0aGlzLm5vZGUucGF0aC5zcGxpdChcIi9cIilbMF07XG5cbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIG5hbWU6IHByb3BzLm5hbWUgfHwgcGF0aE5hbWUsXG4gICAgICBhZG1pblVzZXJuYW1lOiBwcm9wcy5hZG1pblVzZXJuYW1lIHx8IGBhZG1pbiR7cGF0aE5hbWV9YCxcbiAgICAgIGxvY2F0aW9uOiBwcm9wcy5sb2NhdGlvbiB8fCBcImVhc3R1c1wiLFxuICAgICAgc2t1OiBwcm9wcy5za3UgfHwgXCJTdGFuZGFyZF9CMnNcIixcbiAgICAgIGluc3RhbmNlczogcHJvcHMuaW5zdGFuY2VzIHx8IDEsXG4gICAgICBvc0Rpc2s6IHByb3BzLm9zRGlzayB8fCB7XG4gICAgICAgIGNhY2hpbmc6IFwiUmVhZFdyaXRlXCIsXG4gICAgICAgIHN0b3JhZ2VBY2NvdW50VHlwZTogXCJTdGFuZGFyZF9MUlNcIixcbiAgICAgIH0sXG4gICAgICBzb3VyY2VJbWFnZVJlZmVyZW5jZTpcbiAgICAgICAgcHJvcHMuc291cmNlSW1hZ2VSZWZlcmVuY2UgfHwgTGludXhJbWFnZVJlZmVyZW5jZXMudWJ1bnR1U2VydmVyMjIwNExUUyxcbiAgICAgIHN1Ym5ldDpcbiAgICAgICAgcHJvcHMuc3VibmV0IHx8XG4gICAgICAgIG5ldyBOZXR3b3JrKHRoaXMsIFwidm5ldFwiLCB7XG4gICAgICAgICAgcmVzb3VyY2VHcm91cDogcHJvcHMucmVzb3VyY2VHcm91cCxcbiAgICAgICAgfSkuc3VibmV0cy5kZWZhdWx0LFxuICAgIH07XG5cbiAgICBjb25zdCBhenVyZXJtTGludXhWaXJ0dWFsTWFjaGluZVNjYWxlU2V0ID0gbmV3IExpbnV4VmlydHVhbE1hY2hpbmVTY2FsZVNldChcbiAgICAgIHRoaXMsXG4gICAgICBcInZtc3NcIixcbiAgICAgIHtcbiAgICAgICAgLi4uZGVmYXVsdHMsXG4gICAgICAgIHJlc291cmNlR3JvdXBOYW1lOiBwcm9wcy5yZXNvdXJjZUdyb3VwLm5hbWUsXG4gICAgICAgIGFkbWluUGFzc3dvcmQ6IHByb3BzLmFkbWluUGFzc3dvcmQsXG4gICAgICAgIGRpc2FibGVQYXNzd29yZEF1dGhlbnRpY2F0aW9uOiBwcm9wcy5hZG1pblBhc3N3b3JkID8gZmFsc2UgOiB0cnVlLFxuICAgICAgICB0YWdzOiBwcm9wcy50YWdzLFxuICAgICAgICBuZXR3b3JrSW50ZXJmYWNlOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogYG5pYy0ke2RlZmF1bHRzLm5hbWV9YCxcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgICBpcENvbmZpZ3VyYXRpb246IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwiaW50ZXJuYWxcIixcbiAgICAgICAgICAgICAgICBzdWJuZXRJZDogZGVmYXVsdHMuc3VibmV0LmlkLFxuICAgICAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgICAgICAgcHVibGljSXBBZGRyZXNzOiBwcm9wcy5wdWJsaWNJUEFkZHJlc3MsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIG9zRGlzazoge1xuICAgICAgICAgIC4uLmRlZmF1bHRzLm9zRGlzayxcbiAgICAgICAgfSxcbiAgICAgICAgc291cmNlSW1hZ2VJZDogcHJvcHMuc291cmNlSW1hZ2VJZCxcbiAgICAgICAgY3VzdG9tRGF0YTogcHJvcHMuY3VzdG9tRGF0YVxuICAgICAgICAgID8gQnVmZmVyLmZyb20ocHJvcHMuY3VzdG9tRGF0YSkudG9TdHJpbmcoXCJiYXNlNjRcIilcbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgdXNlckRhdGE6IHByb3BzLnVzZXJEYXRhXG4gICAgICAgICAgPyBCdWZmZXIuZnJvbShwcm9wcy51c2VyRGF0YSkudG9TdHJpbmcoXCJiYXNlNjRcIilcbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgYWRtaW5Tc2hLZXk6IHByb3BzLmFkbWluU3NoS2V5LFxuICAgICAgICBpZGVudGl0eTogcHJvcHMuaWRlbnRpdHksXG4gICAgICB9LFxuICAgICk7XG5cbiAgICB0aGlzLmlkID0gYXp1cmVybUxpbnV4VmlydHVhbE1hY2hpbmVTY2FsZVNldC5pZDtcbiAgICB0aGlzLm5hbWUgPSBhenVyZXJtTGludXhWaXJ0dWFsTWFjaGluZVNjYWxlU2V0Lm5hbWU7XG4gICAgdGhpcy5mcW4gPSBhenVyZXJtTGludXhWaXJ0dWFsTWFjaGluZVNjYWxlU2V0LmZxbjtcblxuICAgIC8vIEVuYWJsZSBTU0ggQXp1cmUgQUQgTG9naW4gaWYgc3BlY2lmaWVkXG4gICAgaWYgKHByb3BzLmVuYWJsZVNzaEF6dXJlQURMb2dpbikge1xuICAgICAgbmV3IFZpcnR1YWxNYWNoaW5lU2NhbGVTZXRFeHRlbnNpb25BKHRoaXMsIFwiQUFEU1NIbG9naW5cIiwge1xuICAgICAgICBuYW1lOiBcIkFBRFNTSExvZ2luRm9yTGludXhcIixcbiAgICAgICAgdmlydHVhbE1hY2hpbmVTY2FsZVNldElkOiB0aGlzLmlkLFxuICAgICAgICBwdWJsaXNoZXI6IFwiTWljcm9zb2Z0LkF6dXJlLkFjdGl2ZURpcmVjdG9yeVwiLFxuICAgICAgICB0eXBlOiBcIkFBRFNTSExvZ2luRm9yTGludXhcIixcbiAgICAgICAgdHlwZUhhbmRsZXJWZXJzaW9uOiBcIjEuMFwiLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2luZG93c0NsdXN0ZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgQXp1cmUgbG9jYXRpb24gd2hlcmUgdGhlIHZpcnR1YWwgbWFjaGluZSBzaG91bGQgYmUgY3JlYXRlZC5cbiAgICogQGRlZmF1bHQgXCJlYXN0dXNcIlxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYXRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB2aXJ0dWFsIG1hY2hpbmUuXG4gICAqIEBkZWZhdWx0IC0gVXNlcyB0aGUgbmFtZSBkZXJpdmVkIGZyb20gdGhlIGNvbnN0cnVjdCBwYXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlIGdyb3VwIGluIHdoaWNoIHRoZSB2aXJ0dWFsIG1hY2hpbmUgd2lsbCBiZSBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VHcm91cDogUmVzb3VyY2VHcm91cDtcblxuICAvKipcbiAgICogVGhlIHNpemUgb2YgdGhlIHZpcnR1YWwgbWFjaGluZS5cbiAgICogQGRlZmF1bHQgXCJTdGFuZGFyZF9CMnNcIlxuICAgKi9cbiAgcmVhZG9ubHkgc2t1Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYWRtaW4gdXNlcm5hbWUgZm9yIHRoZSB2aXJ0dWFsIG1hY2hpbmUuXG4gICAqL1xuICByZWFkb25seSBhZG1pblVzZXJuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhZG1pbiBwYXNzd29yZCBmb3IgdGhlIHZpcnR1YWwgbWFjaGluZS5cbiAgICovXG4gIHJlYWRvbmx5IGFkbWluUGFzc3dvcmQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGF2YWlsYWJpbGl0eSB6b25lKHMpIGluIHdoaWNoIHRoZSBWTXMgc2hvdWxkIGJlIHBsYWNlZC5cbiAgICovXG4gIHJlYWRvbmx5IHpvbmVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgVk0gaW5zdGFuY2VzIGluIHRoZSBzY2FsZSBzZXQuXG4gICAqIEBkZWZhdWx0IDJcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlcz86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBpbWFnZSByZWZlcmVuY2UgZm9yIHRoZSB2aXJ0dWFsIG1hY2hpbmUuXG4gICAqIEBkZWZhdWx0IC0gVXNlcyBXaW5kb3dzU2VydmVyMjAyMkRhdGFjZW50ZXJDb3JlLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlSW1hZ2VSZWZlcmVuY2U/OiBXaW5kb3dzVmlydHVhbE1hY2hpbmVTb3VyY2VJbWFnZVJlZmVyZW5jZTtcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBzb3VyY2UgaW1hZ2UgZm9yIHRoZSB2aXJ0dWFsIG1hY2hpbmUuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VJbWFnZUlkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUYWdzIHRvIGFwcGx5IHRvIHRoZSB2aXJ0dWFsIG1hY2hpbmUuXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogVGhlIE9TIGRpc2sgY29uZmlndXJhdGlvbiBmb3IgdGhlIHZpcnR1YWwgbWFjaGluZS5cbiAgICogQGRlZmF1bHQgLSBVc2VzIGEgZGlzayB3aXRoIGNhY2hpbmcgc2V0IHRvIFwiUmVhZFdyaXRlXCIgYW5kIHN0b3JhZ2UgYWNjb3VudCB0eXBlIFwiU3RhbmRhcmRfTFJTXCIuXG4gICAqL1xuICByZWFkb25seSBvc0Rpc2s/OiBXaW5kb3dzVmlydHVhbE1hY2hpbmVPc0Rpc2s7XG5cbiAgLyoqXG4gICAqIFRoZSBzdWJuZXQgaW4gd2hpY2ggdGhlIHZpcnR1YWwgbWFjaGluZSB3aWxsIGJlIHBsYWNlZC5cbiAgICogQGRlZmF1bHQgLSBVc2VzIHRoZSBkZWZhdWx0IHN1Ym5ldCBmcm9tIGEgbmV3IHZpcnR1YWwgbmV0d29yay5cbiAgICovXG4gIHJlYWRvbmx5IHN1Ym5ldD86IFN1Ym5ldDtcblxuICAvKipcbiAgICogVGhlIGFsbG9jYXRpb24gbWV0aG9kIGZvciB0aGUgcHVibGljIElQLlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljSVBBZGRyZXNzPzogV2luZG93c1ZpcnR1YWxNYWNoaW5lU2NhbGVTZXROZXR3b3JrSW50ZXJmYWNlSXBDb25maWd1cmF0aW9uUHVibGljSXBBZGRyZXNzW107XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgc2NhbGUgc2V0J3MgdXBncmFkZSBwb2xpY3kgc2V0dGluZ3MuXG4gICAqL1xuICByZWFkb25seSB1cGdyYWRlUG9saWN5TW9kZT86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIGRhdGEgdG8gcGFzcyB0byB0aGUgdmlydHVhbCBtYWNoaW5lIHVwb24gY3JlYXRpb24uXG4gICAqL1xuICByZWFkb25seSBjdXN0b21EYXRhPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gZGF0YSB0byBib290c3RyYXAgdGhlIHZpcnR1YWwgbWFjaGluZS4gQXV0b21hdGljYWxseSB0cmlnZ2VycyBBenVyZSBDdXN0b20gU2NyaXB0IGV4dGVuc2lvbiB0byBkZXBsb3kgY29kZSBpbiBjdXN0b20gZGF0YS5cbiAgICovXG4gIHJlYWRvbmx5IGJvb3N0cmFwQ3VzdG9tRGF0YT86IHN0cmluZztcblxuICAvKipcbiAgICogQm9vdGRpYWdub3N0aWNzIHNldHRpbmdzIGZvciB0aGUgVk0uXG4gICAqL1xuICByZWFkb25seSBib290RGlhZ25vc3RpY3NTdG9yYWdlVVJJPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgaWYgdGhlIFZNU1Mgc2hvdWxkIGJlIG92ZXJwcm92aXNpb25lZC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgb3ZlcnByb3Zpc2lvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgc2NhbGUtaW4gcG9saWN5IGZvciB0aGUgVk1TUy5cbiAgICovXG4gIHJlYWRvbmx5IHNjYWxlSW5Qb2xpY3k/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBXaW5kb3dzQ2x1c3RlciBleHRlbmRzIEF6dXJlUmVzb3VyY2Uge1xuICByZWFkb25seSBwcm9wczogV2luZG93c0NsdXN0ZXJQcm9wcztcbiAgcHVibGljIHJlc291cmNlR3JvdXA6IFJlc291cmNlR3JvdXA7XG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBBenVyZVdpbmRvd3NWaXJ0dWFsTWFjaGluZSBjbGFzcy5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gVGhlIHNjb3BlIGluIHdoaWNoIHRoaXMgY29uc3RydWN0IGlzIGRlZmluZWQuXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBJRCBvZiB0aGlzIGNvbnN0cnVjdC5cbiAgICogQHBhcmFtIHByb3BzIC0gVGhlIHByb3BlcnRpZXMgZm9yIGRlZmluaW5nIGEgV2luZG93cyBWaXJ0dWFsIE1hY2hpbmUuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogV2luZG93c0NsdXN0ZXJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gICAgdGhpcy5yZXNvdXJjZUdyb3VwID0gcHJvcHMucmVzb3VyY2VHcm91cDtcblxuICAgIGNvbnN0IHBhdGhOYW1lID0gdGhpcy5ub2RlLnBhdGguc3BsaXQoXCIvXCIpWzBdO1xuXG4gICAgLy8gRGVmYXVsdCBjb25maWd1cmF0aW9ucyBmb3IgdGhlIHZpcnR1YWwgbWFjaGluZS5cbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIG5hbWU6IHByb3BzLm5hbWUgfHwgdGhpcy5ub2RlLnBhdGguc3BsaXQoXCIvXCIpWzBdLFxuICAgICAgYWRtaW5Vc2VybmFtZTogcHJvcHMuYWRtaW5Vc2VybmFtZSB8fCBgYWRtaW4ke3BhdGhOYW1lfWAsXG4gICAgICBsb2NhdGlvbjogcHJvcHMubG9jYXRpb24gfHwgXCJlYXN0dXNcIixcbiAgICAgIHNrdTogcHJvcHMuc2t1IHx8IFwiU3RhbmRhcmRfQjJzXCIsXG4gICAgICBpbnN0YW5jZXM6IHByb3BzLmluc3RhbmNlcyB8fCAxLFxuICAgICAgb3NEaXNrOiBwcm9wcy5vc0Rpc2sgfHwge1xuICAgICAgICBjYWNoaW5nOiBcIlJlYWRXcml0ZVwiLFxuICAgICAgICBzdG9yYWdlQWNjb3VudFR5cGU6IFwiU3RhbmRhcmRfTFJTXCIsXG4gICAgICB9LFxuICAgICAgc291cmNlSW1hZ2VSZWZlcmVuY2U6XG4gICAgICAgIHByb3BzLnNvdXJjZUltYWdlUmVmZXJlbmNlIHx8XG4gICAgICAgIFdpbmRvd3NJbWFnZVJlZmVyZW5jZXMud2luZG93c1NlcnZlcjIwMjJEYXRhY2VudGVyQ29yZSxcbiAgICAgIHN1Ym5ldDpcbiAgICAgICAgcHJvcHMuc3VibmV0IHx8XG4gICAgICAgIG5ldyBOZXR3b3JrKHRoaXMsIFwidm5ldFwiLCB7XG4gICAgICAgICAgcmVzb3VyY2VHcm91cDogcHJvcHMucmVzb3VyY2VHcm91cCxcbiAgICAgICAgfSkuc3VibmV0cy5kZWZhdWx0LFxuICAgIH07XG5cbiAgICAvLyBCYXNlNjQgZW5jb2RlIGN1c3RvbSBkYXRhIGlmIHByb3ZpZGVkLlxuICAgIGNvbnN0IGN1c3RvbURhdGEgPSBwcm9wcy5jdXN0b21EYXRhIHx8IHByb3BzLmJvb3N0cmFwQ3VzdG9tRGF0YTtcbiAgICBjb25zdCBiYXNlNjRDdXN0b21EYXRhID0gY3VzdG9tRGF0YVxuICAgICAgPyBCdWZmZXIuZnJvbShjdXN0b21EYXRhKS50b1N0cmluZyhcImJhc2U2NFwiKVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAvLyBDcmVhdGUgdGhlIFdpbmRvd3MgVmlydHVhbCBNYWNoaW5lLlxuICAgIGNvbnN0IGF6dXJlcm1XaW5kb3dzVmlydHVhbE1hY2hpbmUgPSBuZXcgV2luZG93c1ZpcnR1YWxNYWNoaW5lU2NhbGVTZXQoXG4gICAgICB0aGlzLFxuICAgICAgXCJ2bXNzXCIsXG4gICAgICB7XG4gICAgICAgIC4uLmRlZmF1bHRzLFxuICAgICAgICByZXNvdXJjZUdyb3VwTmFtZTogcHJvcHMucmVzb3VyY2VHcm91cC5uYW1lLFxuICAgICAgICBhZG1pblVzZXJuYW1lOiBwcm9wcy5hZG1pblVzZXJuYW1lLFxuICAgICAgICBhZG1pblBhc3N3b3JkOiBwcm9wcy5hZG1pblBhc3N3b3JkLFxuICAgICAgICB0YWdzOiBwcm9wcy50YWdzLFxuICAgICAgICBuZXR3b3JrSW50ZXJmYWNlOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogYG5pYy0ke2RlZmF1bHRzLm5hbWV9YCxcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgICBpcENvbmZpZ3VyYXRpb246IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwiaW50ZXJuYWxcIixcbiAgICAgICAgICAgICAgICBzdWJuZXRJZDogZGVmYXVsdHMuc3VibmV0LmlkLFxuICAgICAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgICAgICAgcHVibGljSXBBZGRyZXNzOiBwcm9wcy5wdWJsaWNJUEFkZHJlc3MsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIG9zRGlzazoge1xuICAgICAgICAgIC4uLmRlZmF1bHRzLm9zRGlzayxcbiAgICAgICAgfSxcbiAgICAgICAgc291cmNlSW1hZ2VJZDogcHJvcHMuc291cmNlSW1hZ2VJZCxcbiAgICAgICAgY3VzdG9tRGF0YTogYmFzZTY0Q3VzdG9tRGF0YSxcbiAgICAgICAgYm9vdERpYWdub3N0aWNzOiB7IHN0b3JhZ2VBY2NvdW50VXJpOiBwcm9wcy5ib290RGlhZ25vc3RpY3NTdG9yYWdlVVJJIH0sXG4gICAgICB9LFxuICAgICk7XG5cbiAgICB0aGlzLmlkID0gYXp1cmVybVdpbmRvd3NWaXJ0dWFsTWFjaGluZS5pZDtcbiAgICB0aGlzLm5hbWUgPSBhenVyZXJtV2luZG93c1ZpcnR1YWxNYWNoaW5lLm5hbWU7XG5cbiAgICAvLyBCb290c3RyYXAgVk0gd2l0aCBjdXN0b20gc2NyaXB0IGV4dGVuc2lvbiBpZiBib290c3RyYXAgY3VzdG9tIGRhdGEgaXMgcHJvdmlkZWQuXG4gICAgaWYgKHByb3BzLmJvb3N0cmFwQ3VzdG9tRGF0YSkge1xuICAgICAgbmV3IFZpcnR1YWxNYWNoaW5lU2NhbGVTZXRFeHRlbnNpb25BKHRoaXMsIFwic2NyaXB0LWV4dFwiLCB7XG4gICAgICAgIG5hbWU6IGAke3RoaXMubmFtZX0tc2NyaXB0LWV4dGAsXG4gICAgICAgIHZpcnR1YWxNYWNoaW5lU2NhbGVTZXRJZDogdGhpcy5pZCxcbiAgICAgICAgcHVibGlzaGVyOiBcIk1pY3Jvc29mdC5Db21wdXRlXCIsXG4gICAgICAgIHR5cGU6IFwiQ3VzdG9tU2NyaXB0RXh0ZW5zaW9uXCIsXG4gICAgICAgIHR5cGVIYW5kbGVyVmVyc2lvbjogXCIxLjEwXCIsXG4gICAgICAgIHByb3RlY3RlZFNldHRpbmdzOlxuICAgICAgICAgICd7XCJjb21tYW5kVG9FeGVjdXRlXCI6IFwicmVuYW1lICBDOlxcXFxcXFxcQXp1cmVEYXRhXFxcXFxcXFxDdXN0b21EYXRhLmJpbiAgcG9zdGRlcGxveS5wczEgJiBwb3dlcnNoZWxsIC1FeGVjdXRpb25Qb2xpY3kgVW5yZXN0cmljdGVkIC1GaWxlIEM6XFxcXFxcXFxBenVyZURhdGFcXFxcXFxcXHBvc3RkZXBsb3kucHMxXCJ9JyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
263
|
+
WindowsCluster[_b] = { fqn: "@microsoft/terraform-cdk-constructs.azure_virtualmachinescaleset.WindowsCluster", version: "0.0.3-pre.7" };
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS12aXJ0dWFsbWFjaGluZXNjYWxlc2V0L2xpYi9jbHVzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBTUEsaUhBR3FFO0FBR3JFLHlIQUFtSDtBQUtuSCxxSEFHdUU7QUFHdkUscUVBR29DO0FBQ3BDLG9FQUFpRTtBQUNqRSw4Q0FBcUQ7QUErSHJELE1BQWEsWUFBYSxTQUFRLG1CQUFhO0lBTzdDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bb0RHO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF3QjtRQUNoRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUV6QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFOUMsTUFBTSxRQUFRLEdBQUc7WUFDZixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxRQUFRO1lBQzVCLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYSxJQUFJLFFBQVEsUUFBUSxFQUFFO1lBQ3hELFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxJQUFJLFFBQVE7WUFDcEMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHLElBQUksY0FBYztZQUNoQyxTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsSUFBSSxDQUFDO1lBQy9CLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJO2dCQUN0QixPQUFPLEVBQUUsV0FBVztnQkFDcEIsa0JBQWtCLEVBQUUsY0FBYzthQUNuQztZQUNELG9CQUFvQixFQUNsQixLQUFLLENBQUMsb0JBQW9CLElBQUksMkNBQW9CLENBQUMsbUJBQW1CO1lBQ3hFLE1BQU0sRUFDSixLQUFLLENBQUMsTUFBTTtnQkFDWixJQUFJLGlCQUFPLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtvQkFDeEIsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO2lCQUNuQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU87U0FDckIsQ0FBQztRQUVGLE1BQU0sa0NBQWtDLEdBQUcsSUFBSSw2REFBMkIsQ0FDeEUsSUFBSSxFQUNKLE1BQU0sRUFDTjtZQUNFLEdBQUcsUUFBUTtZQUNYLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSTtZQUMzQyxhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWE7WUFDbEMsNkJBQTZCLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ2pFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixnQkFBZ0IsRUFBRTtnQkFDaEI7b0JBQ0UsSUFBSSxFQUFFLE9BQU8sUUFBUSxDQUFDLElBQUksRUFBRTtvQkFDNUIsT0FBTyxFQUFFLElBQUk7b0JBQ2IsZUFBZSxFQUFFO3dCQUNmOzRCQUNFLElBQUksRUFBRSxVQUFVOzRCQUNoQixRQUFRLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFOzRCQUM1QixPQUFPLEVBQUUsSUFBSTs0QkFDYixlQUFlLEVBQUUsS0FBSyxDQUFDLGVBQWU7eUJBQ3ZDO3FCQUNGO2lCQUNGO2FBQ0Y7WUFDRCxNQUFNLEVBQUU7Z0JBQ04sR0FBRyxRQUFRLENBQUMsTUFBTTthQUNuQjtZQUNELGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtZQUNsQyxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7Z0JBQzFCLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO2dCQUNsRCxDQUFDLENBQUMsU0FBUztZQUNiLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtnQkFDdEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7Z0JBQ2hELENBQUMsQ0FBQyxTQUFTO1lBQ2IsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtTQUN6QixDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsRUFBRSxHQUFHLGtDQUFrQyxDQUFDLEVBQUUsQ0FBQztRQUNoRCxJQUFJLENBQUMsSUFBSSxHQUFHLGtDQUFrQyxDQUFDLElBQUksQ0FBQztRQUNwRCxJQUFJLENBQUMsR0FBRyxHQUFHLGtDQUFrQyxDQUFDLEdBQUcsQ0FBQztRQUVsRCx5Q0FBeUM7UUFDekMsSUFBSSxLQUFLLENBQUMscUJBQXFCLEVBQUU7WUFDL0IsSUFBSSxzRUFBZ0MsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO2dCQUN4RCxJQUFJLEVBQUUscUJBQXFCO2dCQUMzQix3QkFBd0IsRUFBRSxJQUFJLENBQUMsRUFBRTtnQkFDakMsU0FBUyxFQUFFLGlDQUFpQztnQkFDNUMsSUFBSSxFQUFFLHFCQUFxQjtnQkFDM0Isa0JBQWtCLEVBQUUsS0FBSzthQUMxQixDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7O0FBM0lILG9DQTRJQzs7O0FBZ0hELE1BQWEsY0FBZSxTQUFRLG1CQUFhO0lBTS9DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQWtERztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFFekMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTlDLGtEQUFrRDtRQUNsRCxNQUFNLFFBQVEsR0FBRztZQUNmLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEQsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhLElBQUksUUFBUSxRQUFRLEVBQUU7WUFDeEQsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLElBQUksUUFBUTtZQUNwQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUcsSUFBSSxjQUFjO1lBQ2hDLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxJQUFJLENBQUM7WUFDL0IsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLElBQUk7Z0JBQ3RCLE9BQU8sRUFBRSxXQUFXO2dCQUNwQixrQkFBa0IsRUFBRSxjQUFjO2FBQ25DO1lBQ0Qsb0JBQW9CLEVBQ2xCLEtBQUssQ0FBQyxvQkFBb0I7Z0JBQzFCLDZDQUFzQixDQUFDLCtCQUErQjtZQUN4RCxNQUFNLEVBQ0osS0FBSyxDQUFDLE1BQU07Z0JBQ1osSUFBSSxpQkFBTyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7b0JBQ3hCLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtpQkFDbkMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPO1NBQ3JCLENBQUM7UUFFRix5Q0FBeUM7UUFDekMsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUM7UUFDaEUsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVO1lBQ2pDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7WUFDNUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUVkLHNDQUFzQztRQUN0QyxNQUFNLDRCQUE0QixHQUFHLElBQUksaUVBQTZCLENBQ3BFLElBQUksRUFDSixNQUFNLEVBQ047WUFDRSxHQUFHLFFBQVE7WUFDWCxpQkFBaUIsRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUk7WUFDM0MsYUFBYSxFQUFFLEtBQUssQ0FBQyxhQUFhO1lBQ2xDLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtZQUNsQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsZ0JBQWdCLEVBQUU7Z0JBQ2hCO29CQUNFLElBQUksRUFBRSxPQUFPLFFBQVEsQ0FBQyxJQUFJLEVBQUU7b0JBQzVCLE9BQU8sRUFBRSxJQUFJO29CQUNiLGVBQWUsRUFBRTt3QkFDZjs0QkFDRSxJQUFJLEVBQUUsVUFBVTs0QkFDaEIsUUFBUSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRTs0QkFDNUIsT0FBTyxFQUFFLElBQUk7NEJBQ2IsZUFBZSxFQUFFLEtBQUssQ0FBQyxlQUFlO3lCQUN2QztxQkFDRjtpQkFDRjthQUNGO1lBQ0QsTUFBTSxFQUFFO2dCQUNOLEdBQUcsUUFBUSxDQUFDLE1BQU07YUFDbkI7WUFDRCxhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWE7WUFDbEMsVUFBVSxFQUFFLGdCQUFnQjtZQUM1QixlQUFlLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLENBQUMseUJBQXlCLEVBQUU7U0FDeEUsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLEVBQUUsR0FBRyw0QkFBNEIsQ0FBQyxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLElBQUksR0FBRyw0QkFBNEIsQ0FBQyxJQUFJLENBQUM7UUFFOUMsa0ZBQWtGO1FBQ2xGLElBQUksS0FBSyxDQUFDLGtCQUFrQixFQUFFO1lBQzVCLElBQUksc0VBQWdDLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtnQkFDdkQsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksYUFBYTtnQkFDL0Isd0JBQXdCLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQ2pDLFNBQVMsRUFBRSxtQkFBbUI7Z0JBQzlCLElBQUksRUFBRSx1QkFBdUI7Z0JBQzdCLGtCQUFrQixFQUFFLE1BQU07Z0JBQzFCLGlCQUFpQixFQUNmLHNLQUFzSzthQUN6SyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7O0FBNUlILHdDQTZJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIExpbnV4VmlydHVhbE1hY2hpbmVTb3VyY2VJbWFnZVJlZmVyZW5jZSxcbiAgTGludXhWaXJ0dWFsTWFjaGluZU9zRGlzayxcbiAgTGludXhWaXJ0dWFsTWFjaGluZUFkbWluU3NoS2V5LFxuICBMaW51eFZpcnR1YWxNYWNoaW5lSWRlbnRpdHksXG59IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvbGludXgtdmlydHVhbC1tYWNoaW5lXCI7XG5pbXBvcnQge1xuICBMaW51eFZpcnR1YWxNYWNoaW5lU2NhbGVTZXQsXG4gIExpbnV4VmlydHVhbE1hY2hpbmVTY2FsZVNldE5ldHdvcmtJbnRlcmZhY2VJcENvbmZpZ3VyYXRpb25QdWJsaWNJcEFkZHJlc3MsXG59IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvbGludXgtdmlydHVhbC1tYWNoaW5lLXNjYWxlLXNldFwiO1xuaW1wb3J0IHsgUmVzb3VyY2VHcm91cCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvcmVzb3VyY2UtZ3JvdXBcIjtcbmltcG9ydCB7IFN1Ym5ldCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvc3VibmV0XCI7XG5pbXBvcnQgeyBWaXJ0dWFsTWFjaGluZVNjYWxlU2V0RXh0ZW5zaW9uQSB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvdmlydHVhbC1tYWNoaW5lLXNjYWxlLXNldC1leHRlbnNpb25cIjtcbmltcG9ydCB7XG4gIFdpbmRvd3NWaXJ0dWFsTWFjaGluZU9zRGlzayxcbiAgV2luZG93c1ZpcnR1YWxNYWNoaW5lU291cmNlSW1hZ2VSZWZlcmVuY2UsXG59IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvd2luZG93cy12aXJ0dWFsLW1hY2hpbmVcIjtcbmltcG9ydCB7XG4gIFdpbmRvd3NWaXJ0dWFsTWFjaGluZVNjYWxlU2V0LFxuICBXaW5kb3dzVmlydHVhbE1hY2hpbmVTY2FsZVNldE5ldHdvcmtJbnRlcmZhY2VJcENvbmZpZ3VyYXRpb25QdWJsaWNJcEFkZHJlc3MsXG59IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvd2luZG93cy12aXJ0dWFsLW1hY2hpbmUtc2NhbGUtc2V0XCI7XG5pbXBvcnQgKiBhcyBjZGt0ZiBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBXaW5kb3dzSW1hZ2VSZWZlcmVuY2VzLFxuICBMaW51eEltYWdlUmVmZXJlbmNlcyxcbn0gZnJvbSBcIi4uLy4uL2F6dXJlLXZpcnR1YWxtYWNoaW5lXCI7XG5pbXBvcnQgeyBOZXR3b3JrIH0gZnJvbSBcIi4uLy4uL2F6dXJlLXZpcnR1YWxuZXR3b3JrL2xpYi9uZXR3b3JrXCI7XG5pbXBvcnQgeyBBenVyZVJlc291cmNlIH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGludXhDbHVzdGVyUHJvcHMge1xuICAvKipcbiAgICogVGhlIEF6dXJlIGxvY2F0aW9uIHdoZXJlIHRoZSB2aXJ0dWFsIG1hY2hpbmUgc2NhbGUgc2V0IHNob3VsZCBiZSBjcmVhdGVkLlxuICAgKiBAZGVmYXVsdCBcImVhc3R1c1wiXG4gICAqL1xuICByZWFkb25seSBsb2NhdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHZpcnR1YWwgbWFjaGluZSBzY2FsZSBzZXQuXG4gICAqIEBkZWZhdWx0IC0gVXNlcyB0aGUgbmFtZSBkZXJpdmVkIGZyb20gdGhlIGNvbnN0cnVjdCBwYXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFkbWluIHVzZXJuYW1lIGZvciB0aGUgdmlydHVhbCBtYWNoaW5lLlxuICAgKi9cbiAgcmVhZG9ubHkgYWRtaW5Vc2VybmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFkbWluIHBhc3N3b3JkIGZvciB0aGUgdmlydHVhbCBtYWNoaW5lLlxuICAgKi9cbiAgcmVhZG9ubHkgYWRtaW5QYXNzd29yZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlIGdyb3VwIGluIHdoaWNoIHRoZSB2aXJ0dWFsIG1hY2hpbmUgc2NhbGUgc2V0IHdpbGwgYmUgY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlR3JvdXA6IFJlc291cmNlR3JvdXA7XG5cbiAgLyoqXG4gICAqIFRoZSBzaXplIG9mIHRoZSB2aXJ0dWFsIG1hY2hpbmVzIGluIHRoZSBzY2FsZSBzZXQuXG4gICAqIEBkZWZhdWx0IFwiU3RhbmRhcmRfQjJzXCJcbiAgICovXG4gIHJlYWRvbmx5IHNrdT86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIGRhdGEgdG8gcGFzcyB0byB0aGUgdmlydHVhbCBtYWNoaW5lcyB1cG9uIGNyZWF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgdXNlckRhdGE/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIFNTSCBrZXlzIGZvciB0aGUgYWRtaW4gdXNlci5cbiAgICovXG4gIHJlYWRvbmx5IGFkbWluU3NoS2V5PzogTGludXhWaXJ0dWFsTWFjaGluZUFkbWluU3NoS2V5W10gfCBjZGt0Zi5JUmVzb2x2YWJsZTtcblxuICAvKipcbiAgICogVGhlIGF2YWlsYWJpbGl0eSB6b25lKHMpIGluIHdoaWNoIHRoZSBWTXMgc2hvdWxkIGJlIHBsYWNlZC5cbiAgICovXG4gIHJlYWRvbmx5IHpvbmVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE1hbmFnZWQgaWRlbnRpdHkgc2V0dGluZ3MgZm9yIHRoZSBWTXMuXG4gICAqL1xuICByZWFkb25seSBpZGVudGl0eT86IExpbnV4VmlydHVhbE1hY2hpbmVJZGVudGl0eTtcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBpbWFnZSByZWZlcmVuY2UgZm9yIHRoZSB2aXJ0dWFsIG1hY2hpbmVzLlxuICAgKiBAZGVmYXVsdCAtIFVzZXMgYSBkZWZhdWx0IFVidW50dSBpbWFnZS5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZUltYWdlUmVmZXJlbmNlPzogTGludXhWaXJ0dWFsTWFjaGluZVNvdXJjZUltYWdlUmVmZXJlbmNlO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIHNvdXJjZSBpbWFnZSBmb3IgdGhlIHZpcnR1YWwgbWFjaGluZXMuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VJbWFnZUlkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUYWdzIHRvIGFwcGx5IHRvIHRoZSB2aXJ0dWFsIG1hY2hpbmUgc2NhbGUgc2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFRoZSBPUyBkaXNrIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSB2aXJ0dWFsIG1hY2hpbmVzLlxuICAgKiBAZGVmYXVsdCAtIFVzZXMgYSBkaXNrIHdpdGggY2FjaGluZyBzZXQgdG8gXCJSZWFkV3JpdGVcIiBhbmQgc3RvcmFnZSBhY2NvdW50IHR5cGUgXCJTdGFuZGFyZF9MUlNcIi5cbiAgICovXG4gIHJlYWRvbmx5IG9zRGlzaz86IExpbnV4VmlydHVhbE1hY2hpbmVPc0Rpc2s7XG5cbiAgLyoqXG4gICAqIFRoZSBzdWJuZXQgaW4gd2hpY2ggdGhlIHZpcnR1YWwgbWFjaGluZXMgd2lsbCBiZSBwbGFjZWQuXG4gICAqL1xuICByZWFkb25seSBzdWJuZXQ/OiBTdWJuZXQ7XG5cbiAgLyoqXG4gICAqIFRoZSBhbGxvY2F0aW9uIG1ldGhvZCBmb3IgdGhlIHB1YmxpYyBJUC5cbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY0lQQWRkcmVzcz86IExpbnV4VmlydHVhbE1hY2hpbmVTY2FsZVNldE5ldHdvcmtJbnRlcmZhY2VJcENvbmZpZ3VyYXRpb25QdWJsaWNJcEFkZHJlc3NbXTtcblxuICAvKipcbiAgICogQ3VzdG9tIGRhdGEgdG8gcGFzcyB0byB0aGUgdmlydHVhbCBtYWNoaW5lcyB1cG9uIGNyZWF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tRGF0YT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBWTSBpbnN0YW5jZXMgaW4gdGhlIHNjYWxlIHNldC5cbiAgICogQGRlZmF1bHQgMlxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHNjYWxlIHNldCdzIHVwZ3JhZGUgcG9saWN5IHNldHRpbmdzLlxuICAgKi9cbiAgcmVhZG9ubHkgdXBncmFkZVBvbGljeU1vZGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBpZiB0aGUgVk1TUyBzaG91bGQgYmUgb3ZlcnByb3Zpc2lvbmVkLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBvdmVycHJvdmlzaW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBzY2FsZS1pbiBwb2xpY3kgZm9yIHRoZSBWTVNTLlxuICAgKi9cbiAgcmVhZG9ubHkgc2NhbGVJblBvbGljeT86IHN0cmluZztcblxuICAvKipcbiAgICogQm9vdCBkaWFnbm9zdGljcyBzZXR0aW5ncyBmb3IgdGhlIFZNU1MuXG4gICAqL1xuICByZWFkb25seSBib290RGlhZ25vc3RpY3NTdG9yYWdlVVJJPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgU1NIIEF6dXJlIEFEIExvZ2luLCByZXF1aXJlZCBtYW5hZ2VkIGlkZW50aXR5IHRvIGJlIHNldC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZVNzaEF6dXJlQURMb2dpbj86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBMaW51eENsdXN0ZXIgZXh0ZW5kcyBBenVyZVJlc291cmNlIHtcbiAgcHVibGljIHJlYWRvbmx5IHByb3BzOiBMaW51eENsdXN0ZXJQcm9wcztcbiAgcHVibGljIHJlc291cmNlR3JvdXA6IFJlc291cmNlR3JvdXA7XG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgZnFuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgYSBMaW51eCBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0IChWTVNTKSB3aXRoaW4gTWljcm9zb2Z0IEF6dXJlLlxuICAgKlxuICAgKiBUaGlzIGNsYXNzIGlzIGRlc2lnbmVkIHRvIHByb3Zpc2lvbiBhbmQgbWFuYWdlIGEgc2NhbGUgc2V0IG9mIExpbnV4IHZpcnR1YWwgbWFjaGluZXMsIHByb3ZpZGluZyBjYXBhYmlsaXRpZXMgc3VjaCBhc1xuICAgKiBhdXRvLXNjYWxpbmcsIGhpZ2ggYXZhaWxhYmlsaXR5LCBhbmQgc2ltcGxpZmllZCBtYW5hZ2VtZW50LiBJdCBzdXBwb3J0cyBkZXRhaWxlZCBjb25maWd1cmF0aW9ucyBsaWtlIFZNIHNpemUsIG9wZXJhdGluZ1xuICAgKiBzeXN0ZW0gaW1hZ2UsIG5ldHdvcmsgc2V0dGluZ3MsIGFuZCBhZG1pbmlzdHJhdGl2ZSBjcmVkZW50aWFscy4gQWRkaXRpb25hbCBmdW5jdGlvbmFsaXRpZXMgaW5jbHVkZSBjdXN0b20gZGF0YSBzY3JpcHRzLFxuICAgKiBTU0ggY29uZmlndXJhdGlvbnMsIGFuZCBvcHRpb25hbCBmZWF0dXJlcyBsaWtlIG1hbmFnZWQgaWRlbnRpdHkgYW5kIGJvb3QgZGlhZ25vc3RpY3MuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3QsIHR5cGljYWxseSByZXByZXNlbnRpbmcgdGhlIENsb3VkIERldmVsb3BtZW50IEtpdCAoQ0RLKSBhcHBsaWNhdGlvbi5cbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlIG9mIHRoZSBMaW51eCBjbHVzdGVyLCB1c2VkIHdpdGhpbiB0aGUgc2NvcGUgZm9yIHJlZmVyZW5jZS5cbiAgICogQHBhcmFtIHByb3BzIC0gQ29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGZvciB0aGUgTGludXggVk0gU2NhbGUgU2V0LCBkZXJpdmVkIGZyb20gdGhlIExpbnV4Q2x1c3RlclByb3BzIGludGVyZmFjZS4gVGhlc2UgaW5jbHVkZTpcbiAgICogICAgICAgICAgICAgICAgLSBgbG9jYXRpb25gOiBUaGUgZ2VvZ3JhcGhpYyBsb2NhdGlvbiB3aGVyZSB0aGUgc2NhbGUgc2V0IHdpbGwgYmUgaG9zdGVkIChlLmcuLCBcImVhc3R1c1wiKS5cbiAgICogICAgICAgICAgICAgICAgLSBgbmFtZWA6IFRoZSBuYW1lIG9mIHRoZSBzY2FsZSBzZXQsIHdoaWNoIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgcmVzb3VyY2UgZ3JvdXAuXG4gICAqICAgICAgICAgICAgICAgIC0gYHJlc291cmNlR3JvdXBgOiBUaGUgUmVzb3VyY2VHcm91cCB3aXRoaW4gd2hpY2ggdGhlIHNjYWxlIHNldCB3aWxsIGJlIGNyZWF0ZWQuXG4gICAqICAgICAgICAgICAgICAgIC0gYHNrdWA6IFRoZSBzaXplIHNwZWNpZmljYXRpb24gb2YgdGhlIFZNcyAoZS5nLiwgXCJTdGFuZGFyZF9CMnNcIikuXG4gICAqICAgICAgICAgICAgICAgIC0gYGFkbWluVXNlcm5hbWVgOiBUaGUgYWRtaW5pc3RyYXRvciB1c2VybmFtZSBmb3IgdGhlIFZNcy5cbiAgICogICAgICAgICAgICAgICAgLSBgYWRtaW5QYXNzd29yZGA6IFRoZSBhZG1pbmlzdHJhdG9yIHBhc3N3b3JkIGZvciB0aGUgVk1zLlxuICAgKiAgICAgICAgICAgICAgICAtIGBhZG1pblNzaEtleWA6IFNTSCBrZXlzIGZvciBzZWN1cmUgYWNjZXNzIHRvIHRoZSBWTXMuXG4gICAqICAgICAgICAgICAgICAgIC0gYHpvbmVzYDogVGhlIGF2YWlsYWJpbGl0eSB6b25lcyBmb3IgZGVwbG95aW5nIHRoZSBWTXMuXG4gICAqICAgICAgICAgICAgICAgIC0gYGlkZW50aXR5YDogTWFuYWdlZCBpZGVudGl0eSBzZXR0aW5ncyBmb3IgYWNjZXNzaW5nIG90aGVyIEF6dXJlIHNlcnZpY2VzLlxuICAgKiAgICAgICAgICAgICAgICAtIGBzb3VyY2VJbWFnZVJlZmVyZW5jZWA6IEEgcmVmZXJlbmNlIHRvIHRoZSBzcGVjaWZpYyBMaW51eCBpbWFnZSB0byBiZSB1c2VkIGZvciB0aGUgVk1zLlxuICAgKiAgICAgICAgICAgICAgICAtIGBzb3VyY2VJbWFnZUlkYDogVGhlIGlkZW50aWZpZXIgZm9yIGEgY3VzdG9tIGltYWdlIHRvIHVzZSBmb3IgdGhlIFZNcy5cbiAgICogICAgICAgICAgICAgICAgLSBgdGFnc2A6IEtleS12YWx1ZSBwYWlycyBmb3IgcmVzb3VyY2UgdGFnZ2luZy5cbiAgICogICAgICAgICAgICAgICAgLSBgb3NEaXNrYDogQ29uZmlndXJhdGlvbiBmb3IgdGhlIFZNcycgb3BlcmF0aW5nIHN5c3RlbSBkaXNrcy5cbiAgICogICAgICAgICAgICAgICAgLSBgc3VibmV0YDogU3BlY2lmaWVzIHRoZSBzdWJuZXQgd2l0aGluIHdoaWNoIHRoZSBWTXMgd2lsbCBiZSBwbGFjZWQuXG4gICAqICAgICAgICAgICAgICAgIC0gYHB1YmxpY0lQQWRkcmVzc2A6IE1ldGhvZCB1c2VkIHRvIGFsbG9jYXRlIHB1YmxpYyBJUCBhZGRyZXNzZXMgdG8gdGhlIFZNcy5cbiAgICogICAgICAgICAgICAgICAgLSBgY3VzdG9tRGF0YWA6IFNjcmlwdHMgb3IgY29tbWFuZHMgcGFzc2VkIHRvIHRoZSBWTXMgYXQgc3RhcnR1cC5cbiAgICogICAgICAgICAgICAgICAgLSBgaW5zdGFuY2VzYDogVGhlIG51bWJlciBvZiBWTSBpbnN0YW5jZXMgaW4gdGhlIHNjYWxlIHNldC5cbiAgICogICAgICAgICAgICAgICAgLSBgdXBncmFkZVBvbGljeU1vZGVgOiBUaGUgdXBncmFkZSBwb2xpY3kgbW9kZSBmb3IgdGhlIFZNU1MuXG4gICAqICAgICAgICAgICAgICAgIC0gYG92ZXJwcm92aXNpb25gOiBTcGVjaWZpZXMgaWYgdGhlIFZNU1Mgc2hvdWxkIGJlIG92ZXJwcm92aXNpb25lZCB0byBtYWludGFpbiBjYXBhY2l0eSBkdXJpbmcgdXBkYXRlcy5cbiAgICogICAgICAgICAgICAgICAgLSBgc2NhbGVJblBvbGljeWA6IFRoZSBzY2FsZS1pbiBwb2xpY3kgZm9yIHRoZSBWTVNTLlxuICAgKiAgICAgICAgICAgICAgICAtIGBib290RGlhZ25vc3RpY3NTdG9yYWdlVVJJYDogVVJJIGZvciBzdG9yYWdlIHdoZXJlIFZNU1MgYm9vdCBkaWFnbm9zdGljcyBhcmUgY29sbGVjdGVkLlxuICAgKiAgICAgICAgICAgICAgICAtIGBlbmFibGVTc2hBenVyZUFETG9naW5gOiBPcHRpb24gdG8gZW5hYmxlIEF6dXJlIEFEIGxvZ2luIGZvciBTU0ggb24gdGhlIFZNcy5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBsaW51eENsdXN0ZXIgPSBuZXcgTGludXhDbHVzdGVyKHRoaXMsICdNeUxpbnV4Q2x1c3RlcicsIHtcbiAgICogICByZXNvdXJjZUdyb3VwOiBteVJlc291cmNlR3JvdXAsXG4gICAqICAgbmFtZTogJ215Q2x1c3RlcicsXG4gICAqICAgc2t1OiAnU3RhbmRhcmRfRFMxX3YyJyxcbiAgICogICBhZG1pblVzZXJuYW1lOiAnYWRtaW51c2VyJyxcbiAgICogICBhZG1pblNzaEtleTogW3sgcHVibGljS2V5OiAnc3NoLXJzYSBBQUFBQi4uLicgfV0sXG4gICAqICAgc291cmNlSW1hZ2VSZWZlcmVuY2U6IHsgcHVibGlzaGVyOiAnQ2Fub25pY2FsJywgb2ZmZXI6ICdVYnVudHVTZXJ2ZXInLCBza3U6ICcxOC4wNC1MVFMnLCB2ZXJzaW9uOiAnbGF0ZXN0JyB9LFxuICAgKiAgIG9zRGlzazogeyBjYWNoaW5nOiAnUmVhZFdyaXRlJywgc3RvcmFnZUFjY291bnRUeXBlOiAnU3RhbmRhcmRfTFJTJyB9LFxuICAgKiAgIHN1Ym5ldDogbXlTdWJuZXQsXG4gICAqICAgaW5zdGFuY2VzOiAzLFxuICAgKiAgIHRhZ3M6IHsgZW52aXJvbm1lbnQ6ICdwcm9kdWN0aW9uJyB9XG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICogVGhpcyBjbGFzcyBpbml0aWFsaXplcyBhIExpbnV4IFZNIFNjYWxlIFNldCB3aXRoIHRoZSBzcGVjaWZpZWQgY29uZmlndXJhdGlvbnMsIGhhbmRsaW5nIGRldGFpbHMgbGlrZSBWTSBjcmVhdGlvbixcbiAgICogc2NhbGluZyBwb2xpY2llcywgbmV0d29yayBzZXR1cCwgT1MgaW5zdGFsbGF0aW9uLCBhbmQgc2VjdXJpdHkgc2V0dGluZ3MsIHByb3ZpZGluZyBhIHJvYnVzdCBhbmQgc2NhbGFibGUgaW5mcmFzdHJ1Y3R1cmVcbiAgICogZm9yIGhvc3RpbmcgY2xvdWQtYmFzZWQgTGludXggYXBwbGljYXRpb25zLlxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IExpbnV4Q2x1c3RlclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgICB0aGlzLnJlc291cmNlR3JvdXAgPSBwcm9wcy5yZXNvdXJjZUdyb3VwO1xuXG4gICAgY29uc3QgcGF0aE5hbWUgPSB0aGlzLm5vZGUucGF0aC5zcGxpdChcIi9cIilbMF07XG5cbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIG5hbWU6IHByb3BzLm5hbWUgfHwgcGF0aE5hbWUsXG4gICAgICBhZG1pblVzZXJuYW1lOiBwcm9wcy5hZG1pblVzZXJuYW1lIHx8IGBhZG1pbiR7cGF0aE5hbWV9YCxcbiAgICAgIGxvY2F0aW9uOiBwcm9wcy5sb2NhdGlvbiB8fCBcImVhc3R1c1wiLFxuICAgICAgc2t1OiBwcm9wcy5za3UgfHwgXCJTdGFuZGFyZF9CMnNcIixcbiAgICAgIGluc3RhbmNlczogcHJvcHMuaW5zdGFuY2VzIHx8IDEsXG4gICAgICBvc0Rpc2s6IHByb3BzLm9zRGlzayB8fCB7XG4gICAgICAgIGNhY2hpbmc6IFwiUmVhZFdyaXRlXCIsXG4gICAgICAgIHN0b3JhZ2VBY2NvdW50VHlwZTogXCJTdGFuZGFyZF9MUlNcIixcbiAgICAgIH0sXG4gICAgICBzb3VyY2VJbWFnZVJlZmVyZW5jZTpcbiAgICAgICAgcHJvcHMuc291cmNlSW1hZ2VSZWZlcmVuY2UgfHwgTGludXhJbWFnZVJlZmVyZW5jZXMudWJ1bnR1U2VydmVyMjIwNExUUyxcbiAgICAgIHN1Ym5ldDpcbiAgICAgICAgcHJvcHMuc3VibmV0IHx8XG4gICAgICAgIG5ldyBOZXR3b3JrKHRoaXMsIFwidm5ldFwiLCB7XG4gICAgICAgICAgcmVzb3VyY2VHcm91cDogcHJvcHMucmVzb3VyY2VHcm91cCxcbiAgICAgICAgfSkuc3VibmV0cy5kZWZhdWx0LFxuICAgIH07XG5cbiAgICBjb25zdCBhenVyZXJtTGludXhWaXJ0dWFsTWFjaGluZVNjYWxlU2V0ID0gbmV3IExpbnV4VmlydHVhbE1hY2hpbmVTY2FsZVNldChcbiAgICAgIHRoaXMsXG4gICAgICBcInZtc3NcIixcbiAgICAgIHtcbiAgICAgICAgLi4uZGVmYXVsdHMsXG4gICAgICAgIHJlc291cmNlR3JvdXBOYW1lOiBwcm9wcy5yZXNvdXJjZUdyb3VwLm5hbWUsXG4gICAgICAgIGFkbWluUGFzc3dvcmQ6IHByb3BzLmFkbWluUGFzc3dvcmQsXG4gICAgICAgIGRpc2FibGVQYXNzd29yZEF1dGhlbnRpY2F0aW9uOiBwcm9wcy5hZG1pblBhc3N3b3JkID8gZmFsc2UgOiB0cnVlLFxuICAgICAgICB0YWdzOiBwcm9wcy50YWdzLFxuICAgICAgICBuZXR3b3JrSW50ZXJmYWNlOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogYG5pYy0ke2RlZmF1bHRzLm5hbWV9YCxcbiAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgICBpcENvbmZpZ3VyYXRpb246IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwiaW50ZXJuYWxcIixcbiAgICAgICAgICAgICAgICBzdWJuZXRJZDogZGVmYXVsdHMuc3VibmV0LmlkLFxuICAgICAgICAgICAgICAgIHByaW1hcnk6IHRydWUsXG4gICAgICAgICAgICAgICAgcHVibGljSXBBZGRyZXNzOiBwcm9wcy5wdWJsaWNJUEFkZHJlc3MsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICAgIG9zRGlzazoge1xuICAgICAgICAgIC4uLmRlZmF1bHRzLm9zRGlzayxcbiAgICAgICAgfSxcbiAgICAgICAgc291cmNlSW1hZ2VJZDogcHJvcHMuc291cmNlSW1hZ2VJZCxcbiAgICAgICAgY3VzdG9tRGF0YTogcHJvcHMuY3VzdG9tRGF0YVxuICAgICAgICAgID8gQnVmZmVyLmZyb20ocHJvcHMuY3VzdG9tRGF0YSkudG9TdHJpbmcoXCJiYXNlNjRcIilcbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgdXNlckRhdGE6IHByb3BzLnVzZXJEYXRhXG4gICAgICAgICAgPyBCdWZmZXIuZnJvbShwcm9wcy51c2VyRGF0YSkudG9TdHJpbmcoXCJiYXNlNjRcIilcbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgYWRtaW5Tc2hLZXk6IHByb3BzLmFkbWluU3NoS2V5LFxuICAgICAgICBpZGVudGl0eTogcHJvcHMuaWRlbnRpdHksXG4gICAgICB9LFxuICAgICk7XG5cbiAgICB0aGlzLmlkID0gYXp1cmVybUxpbnV4VmlydHVhbE1hY2hpbmVTY2FsZVNldC5pZDtcbiAgICB0aGlzLm5hbWUgPSBhenVyZXJtTGludXhWaXJ0dWFsTWFjaGluZVNjYWxlU2V0Lm5hbWU7XG4gICAgdGhpcy5mcW4gPSBhenVyZXJtTGludXhWaXJ0dWFsTWFjaGluZVNjYWxlU2V0LmZxbjtcblxuICAgIC8vIEVuYWJsZSBTU0ggQXp1cmUgQUQgTG9naW4gaWYgc3BlY2lmaWVkXG4gICAgaWYgKHByb3BzLmVuYWJsZVNzaEF6dXJlQURMb2dpbikge1xuICAgICAgbmV3IFZpcnR1YWxNYWNoaW5lU2NhbGVTZXRFeHRlbnNpb25BKHRoaXMsIFwiQUFEU1NIbG9naW5cIiwge1xuICAgICAgICBuYW1lOiBcIkFBRFNTSExvZ2luRm9yTGludXhcIixcbiAgICAgICAgdmlydHVhbE1hY2hpbmVTY2FsZVNldElkOiB0aGlzLmlkLFxuICAgICAgICBwdWJsaXNoZXI6IFwiTWljcm9zb2Z0LkF6dXJlLkFjdGl2ZURpcmVjdG9yeVwiLFxuICAgICAgICB0eXBlOiBcIkFBRFNTSExvZ2luRm9yTGludXhcIixcbiAgICAgICAgdHlwZUhhbmRsZXJWZXJzaW9uOiBcIjEuMFwiLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2luZG93c0NsdXN0ZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgQXp1cmUgbG9jYXRpb24gd2hlcmUgdGhlIHZpcnR1YWwgbWFjaGluZSBzaG91bGQgYmUgY3JlYXRlZC5cbiAgICogQGRlZmF1bHQgXCJlYXN0dXNcIlxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYXRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSB2aXJ0dWFsIG1hY2hpbmUuXG4gICAqIEBkZWZhdWx0IC0gVXNlcyB0aGUgbmFtZSBkZXJpdmVkIGZyb20gdGhlIGNvbnN0cnVjdCBwYXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlIGdyb3VwIGluIHdoaWNoIHRoZSB2aXJ0dWFsIG1hY2hpbmUgd2lsbCBiZSBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VHcm91cDogUmVzb3VyY2VHcm91cDtcblxuICAvKipcbiAgICogVGhlIHNpemUgb2YgdGhlIHZpcnR1YWwgbWFjaGluZS5cbiAgICogQGRlZmF1bHQgXCJTdGFuZGFyZF9CMnNcIlxuICAgKi9cbiAgcmVhZG9ubHkgc2t1Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYWRtaW4gdXNlcm5hbWUgZm9yIHRoZSB2aXJ0dWFsIG1hY2hpbmUuXG4gICAqL1xuICByZWFkb25seSBhZG1pblVzZXJuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhZG1pbiBwYXNzd29yZCBmb3IgdGhlIHZpcnR1YWwgbWFjaGluZS5cbiAgICovXG4gIHJlYWRvbmx5IGFkbWluUGFzc3dvcmQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGF2YWlsYWJpbGl0eSB6b25lKHMpIGluIHdoaWNoIHRoZSBWTXMgc2hvdWxkIGJlIHBsYWNlZC5cbiAgICovXG4gIHJlYWRvbmx5IHpvbmVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgVk0gaW5zdGFuY2VzIGluIHRoZSBzY2FsZSBzZXQuXG4gICAqIEBkZWZhdWx0IDJcbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlcz86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBpbWFnZSByZWZlcmVuY2UgZm9yIHRoZSB2aXJ0dWFsIG1hY2hpbmUuXG4gICAqIEBkZWZhdWx0IC0gVXNlcyBXaW5kb3dzU2VydmVyMjAyMkRhdGFjZW50ZXJDb3JlLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlSW1hZ2VSZWZlcmVuY2U/OiBXaW5kb3dzVmlydHVhbE1hY2hpbmVTb3VyY2VJbWFnZVJlZmVyZW5jZTtcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBzb3VyY2UgaW1hZ2UgZm9yIHRoZSB2aXJ0dWFsIG1hY2hpbmUuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VJbWFnZUlkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUYWdzIHRvIGFwcGx5IHRvIHRoZSB2aXJ0dWFsIG1hY2hpbmUuXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogVGhlIE9TIGRpc2sgY29uZmlndXJhdGlvbiBmb3IgdGhlIHZpcnR1YWwgbWFjaGluZS5cbiAgICogQGRlZmF1bHQgLSBVc2VzIGEgZGlzayB3aXRoIGNhY2hpbmcgc2V0IHRvIFwiUmVhZFdyaXRlXCIgYW5kIHN0b3JhZ2UgYWNjb3VudCB0eXBlIFwiU3RhbmRhcmRfTFJTXCIuXG4gICAqL1xuICByZWFkb25seSBvc0Rpc2s/OiBXaW5kb3dzVmlydHVhbE1hY2hpbmVPc0Rpc2s7XG5cbiAgLyoqXG4gICAqIFRoZSBzdWJuZXQgaW4gd2hpY2ggdGhlIHZpcnR1YWwgbWFjaGluZSB3aWxsIGJlIHBsYWNlZC5cbiAgICogQGRlZmF1bHQgLSBVc2VzIHRoZSBkZWZhdWx0IHN1Ym5ldCBmcm9tIGEgbmV3IHZpcnR1YWwgbmV0d29yay5cbiAgICovXG4gIHJlYWRvbmx5IHN1Ym5ldD86IFN1Ym5ldDtcblxuICAvKipcbiAgICogVGhlIGFsbG9jYXRpb24gbWV0aG9kIGZvciB0aGUgcHVibGljIElQLlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljSVBBZGRyZXNzPzogV2luZG93c1ZpcnR1YWxNYWNoaW5lU2NhbGVTZXROZXR3b3JrSW50ZXJmYWNlSXBDb25maWd1cmF0aW9uUHVibGljSXBBZGRyZXNzW107XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgc2NhbGUgc2V0J3MgdXBncmFkZSBwb2xpY3kgc2V0dGluZ3MuXG4gICAqL1xuICByZWFkb25seSB1cGdyYWRlUG9saWN5TW9kZT86IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIGRhdGEgdG8gcGFzcyB0byB0aGUgdmlydHVhbCBtYWNoaW5lIHVwb24gY3JlYXRpb24uXG4gICAqL1xuICByZWFkb25seSBjdXN0b21EYXRhPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gZGF0YSB0byBib290c3RyYXAgdGhlIHZpcnR1YWwgbWFjaGluZS4gQXV0b21hdGljYWxseSB0cmlnZ2VycyBBenVyZSBDdXN0b20gU2NyaXB0IGV4dGVuc2lvbiB0byBkZXBsb3kgY29kZSBpbiBjdXN0b20gZGF0YS5cbiAgICovXG4gIHJlYWRvbmx5IGJvb3N0cmFwQ3VzdG9tRGF0YT86IHN0cmluZztcblxuICAvKipcbiAgICogQm9vdGRpYWdub3N0aWNzIHNldHRpbmdzIGZvciB0aGUgVk0uXG4gICAqL1xuICByZWFkb25seSBib290RGlhZ25vc3RpY3NTdG9yYWdlVVJJPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgaWYgdGhlIFZNU1Mgc2hvdWxkIGJlIG92ZXJwcm92aXNpb25lZC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgb3ZlcnByb3Zpc2lvbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgc2NhbGUtaW4gcG9saWN5IGZvciB0aGUgVk1TUy5cbiAgICovXG4gIHJlYWRvbmx5IHNjYWxlSW5Qb2xpY3k/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBXaW5kb3dzQ2x1c3RlciBleHRlbmRzIEF6dXJlUmVzb3VyY2Uge1xuICByZWFkb25seSBwcm9wczogV2luZG93c0NsdXN0ZXJQcm9wcztcbiAgcHVibGljIHJlc291cmNlR3JvdXA6IFJlc291cmNlR3JvdXA7XG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIGEgV2luZG93cyBWaXJ0dWFsIE1hY2hpbmUgU2NhbGUgU2V0IChWTVNTKSB3aXRoaW4gTWljcm9zb2Z0IEF6dXJlLlxuICAgKlxuICAgKiBUaGlzIGNsYXNzIHByb3ZpZGVzIGEgd2F5IHRvIGRlcGxveSBhbmQgbWFuYWdlIGEgc2NhbGUgc2V0IG9mIFdpbmRvd3MgdmlydHVhbCBtYWNoaW5lcywgYWxsb3dpbmcgZm9yIGNvbmZpZ3VyYXRpb25zIHN1Y2ggYXNcbiAgICogYXV0by1zY2FsaW5nLCBoaWdoIGF2YWlsYWJpbGl0eSwgYW5kIHNpbXBsaWZpZWQgcGF0Y2ggbWFuYWdlbWVudC4gSXQgc3VwcG9ydHMgZGV0YWlsZWQgc3BlY2lmaWNhdGlvbnMgaW5jbHVkaW5nXG4gICAqIFZNIHNpemUsIHRoZSBvcGVyYXRpbmcgc3lzdGVtIGltYWdlLCBuZXR3b3JrIHNldHRpbmdzLCBhbmQgYWRtaW5pc3RyYXRpdmUgY3JlZGVudGlhbHMuIEFkZGl0aW9uYWwgY2FwYWJpbGl0aWVzIGluY2x1ZGVcbiAgICogY3VzdG9tIGRhdGEgc2NyaXB0cywgYXV0b21hdGljIE9TIHVwZGF0ZXMsIGFuZCBvcHRpb25hbCBmZWF0dXJlcyBsaWtlIG1hbmFnZWQgaWRlbnRpdHkgYW5kIGJvb3QgZGlhZ25vc3RpY3MuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3QsIHR5cGljYWxseSByZXByZXNlbnRpbmcgdGhlIENsb3VkIERldmVsb3BtZW50IEtpdCAoQ0RLKSBhcHBsaWNhdGlvbi5cbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlIG9mIHRoZSBXaW5kb3dzIGNsdXN0ZXIsIHVzZWQgd2l0aGluIHRoZSBzY29wZSBmb3IgcmVmZXJlbmNlLlxuICAgKiBAcGFyYW0gcHJvcHMgLSBDb25maWd1cmF0aW9uIHByb3BlcnRpZXMgZm9yIHRoZSBXaW5kb3dzIFZNIFNjYWxlIFNldCwgZGVyaXZlZCBmcm9tIHRoZSBXaW5kb3dzQ2x1c3RlclByb3BzIGludGVyZmFjZS4gVGhlc2UgaW5jbHVkZTpcbiAgICogICAgICAgICAgICAgICAgLSBgbG9jYXRpb25gOiBUaGUgZ2VvZ3JhcGhpYyBsb2NhdGlvbiB3aGVyZSB0aGUgc2NhbGUgc2V0IHdpbGwgYmUgaG9zdGVkIChlLmcuLCBcImVhc3R1c1wiKS5cbiAgICogICAgICAgICAgICAgICAgLSBgbmFtZWA6IFRoZSBuYW1lIG9mIHRoZSBzY2FsZSBzZXQsIHdoaWNoIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgcmVzb3VyY2UgZ3JvdXAuXG4gICAqICAgICAgICAgICAgICAgIC0gYHJlc291cmNlR3JvdXBgOiBUaGUgUmVzb3VyY2VHcm91cCB3aXRoaW4gd2hpY2ggdGhlIHNjYWxlIHNldCB3aWxsIGJlIGNyZWF0ZWQuXG4gICAqICAgICAgICAgICAgICAgIC0gYHNrdWA6IFRoZSBzaXplIHNwZWNpZmljYXRpb24gb2YgdGhlIFZNcyAoZS5nLiwgXCJTdGFuZGFyZF9CMnNcIikuXG4gICAqICAgICAgICAgICAgICAgIC0gYGFkbWluVXNlcm5hbWVgOiBUaGUgYWRtaW5pc3RyYXRvciB1c2VybmFtZSBmb3IgdGhlIFZNcy5cbiAgICogICAgICAgICAgICAgICAgLSBgYWRtaW5QYXNzd29yZGA6IFRoZSBhZG1pbmlzdHJhdG9yIHBhc3N3b3JkIGZvciB0aGUgVk1zLlxuICAgKiAgICAgICAgICAgICAgICAtIGB6b25lc2A6IFRoZSBhdmFpbGFiaWxpdHkgem9uZXMgZm9yIGRlcGxveWluZyB0aGUgVk1zLlxuICAgKiAgICAgICAgICAgICAgICAtIGBpbnN0YW5jZXNgOiBUaGUgbnVtYmVyIG9mIFZNIGluc3RhbmNlcyBpbiB0aGUgc2NhbGUgc2V0LlxuICAgKiAgICAgICAgICAgICAgICAtIGBzb3VyY2VJbWFnZVJlZmVyZW5jZWA6IEEgcmVmZXJlbmNlIHRvIHRoZSBzcGVjaWZpYyBXaW5kb3dzIGltYWdlIHRvIGJlIHVzZWQgZm9yIHRoZSBWTXMuXG4gICAqICAgICAgICAgICAgICAgIC0gYHNvdXJjZUltYWdlSWRgOiBUaGUgaWRlbnRpZmllciBmb3IgYSBjdXN0b20gaW1hZ2UgdG8gdXNlIGZvciB0aGUgVk1zLlxuICAgKiAgICAgICAgICAgICAgICAtIGB0YWdzYDogS2V5LXZhbHVlIHBhaXJzIGZvciByZXNvdXJjZSB0YWdnaW5nLlxuICAgKiAgICAgICAgICAgICAgICAtIGBvc0Rpc2tgOiBDb25maWd1cmF0aW9uIGZvciB0aGUgVk1zJyBvcGVyYXRpbmcgc3lzdGVtIGRpc2tzLlxuICAgKiAgICAgICAgICAgICAgICAtIGBzdWJuZXRgOiBTcGVjaWZpZXMgdGhlIHN1Ym5ldCB3aXRoaW4gd2hpY2ggdGhlIFZNcyB3aWxsIGJlIHBsYWNlZC5cbiAgICogICAgICAgICAgICAgICAgLSBgcHVibGljSVBBZGRyZXNzYDogTWV0aG9kIHVzZWQgdG8gYWxsb2NhdGUgcHVibGljIElQIGFkZHJlc3NlcyB0byB0aGUgVk1zLlxuICAgKiAgICAgICAgICAgICAgICAtIGBjdXN0b21EYXRhYDogU2NyaXB0cyBvciBjb21tYW5kcyBwYXNzZWQgdG8gdGhlIFZNcyBhdCBzdGFydHVwLlxuICAgKiAgICAgICAgICAgICAgICAtIGB1cGdyYWRlUG9saWN5TW9kZWA6IFRoZSB1cGdyYWRlIHBvbGljeSBtb2RlIGZvciB0aGUgVk1TUy5cbiAgICogICAgICAgICAgICAgICAgLSBgb3ZlcnByb3Zpc2lvbmA6IFNwZWNpZmllcyBpZiB0aGUgVk1TUyBzaG91bGQgYmUgb3ZlcnByb3Zpc2lvbmVkIHRvIG1haW50YWluIGNhcGFjaXR5IGR1cmluZyB1cGRhdGVzLlxuICAgKiAgICAgICAgICAgICAgICAtIGBzY2FsZUluUG9saWN5YDogVGhlIHNjYWxlLWluIHBvbGljeSBmb3IgdGhlIFZNU1MuXG4gICAqICAgICAgICAgICAgICAgIC0gYGJvb3REaWFnbm9zdGljc1N0b3JhZ2VVUklgOiBVUkkgZm9yIHN0b3JhZ2Ugd2hlcmUgVk1TUyBib290IGRpYWdub3N0aWNzIGFyZSBjb2xsZWN0ZWQuXG4gICAqICAgICAgICAgICAgICAgIC0gYGVuYWJsZVNzaEF6dXJlQURMb2dpbmA6IE9wdGlvbiB0byBlbmFibGUgQXp1cmUgQUQgbG9naW4gZm9yIFNTSCBvbiB0aGUgVk1zLlxuICAgKlxuICAgKiBFeGFtcGxlIHVzYWdlOlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IHdpbmRvd3NDbHVzdGVyID0gbmV3IFdpbmRvd3NDbHVzdGVyKHRoaXMsICdNeVdpbmRvd3NDbHVzdGVyJywge1xuICAgKiAgIHJlc291cmNlR3JvdXA6IG15UmVzb3VyY2VHcm91cCxcbiAgICogICBuYW1lOiAnbXlDbHVzdGVyJyxcbiAgICogICBza3U6ICdTdGFuZGFyZF9EUzFfdjInLFxuICAgKiAgIGFkbWluVXNlcm5hbWU6ICdhZG1pbnVzZXInLFxuICAgKiAgIGFkbWluUGFzc3dvcmQ6ICdzZWN1cmVwYXNzd29yZDEyMycsXG4gICAqICAgc291cmNlSW1hZ2VSZWZlcmVuY2U6IHsgcHVibGlzaGVyOiAnTWljcm9zb2Z0V2luZG93c1NlcnZlcicsIG9mZmVyOiAnV2luZG93c1NlcnZlcicsIHNrdTogJzIwMTktRGF0YWNlbnRlcicsIHZlcnNpb246ICdsYXRlc3QnIH0sXG4gICAqICAgb3NEaXNrOiB7IGNhY2hpbmc6ICdSZWFkV3JpdGUnLCBzdG9yYWdlQWNjb3VudFR5cGU6ICdTdGFuZGFyZF9MUlMnIH0sXG4gICAqICAgc3VibmV0OiBteVN1Ym5ldCxcbiAgICogICBpbnN0YW5jZXM6IDMsXG4gICAqICAgdGFnczogeyBlbnZpcm9ubWVudDogJ3Byb2R1Y3Rpb24nIH1cbiAgICogfSk7XG4gICAqIGBgYFxuICAgKiBUaGlzIGNsYXNzIGluaXRpYWxpemVzIGEgV2luZG93cyBWTSBTY2FsZSBTZXQgd2l0aCB0aGUgc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb25zLCBoYW5kbGluZyBkZXRhaWxzIGxpa2UgVk0gY3JlYXRpb24sXG4gICAqIHNjYWxpbmcgcG9saWNpZXMsIG5ldHdvcmsgc2V0dXAsIE9TIGluc3RhbGxhdGlvbiwgYW5kIHNlY3VyaXR5IHNldHRpbmdzLCBwcm92aWRpbmcgYSByb2J1c3QgYW5kIHNjYWxhYmxlIGluZnJhc3RydWN0dXJlXG4gICAqIGZvciBob3N0aW5nIGNsb3VkLWJhc2VkIFdpbmRvd3MgYXBwbGljYXRpb25zLlxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFdpbmRvd3NDbHVzdGVyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICAgIHRoaXMucmVzb3VyY2VHcm91cCA9IHByb3BzLnJlc291cmNlR3JvdXA7XG5cbiAgICBjb25zdCBwYXRoTmFtZSA9IHRoaXMubm9kZS5wYXRoLnNwbGl0KFwiL1wiKVswXTtcblxuICAgIC8vIERlZmF1bHQgY29uZmlndXJhdGlvbnMgZm9yIHRoZSB2aXJ0dWFsIG1hY2hpbmUuXG4gICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICBuYW1lOiBwcm9wcy5uYW1lIHx8IHRoaXMubm9kZS5wYXRoLnNwbGl0KFwiL1wiKVswXSxcbiAgICAgIGFkbWluVXNlcm5hbWU6IHByb3BzLmFkbWluVXNlcm5hbWUgfHwgYGFkbWluJHtwYXRoTmFtZX1gLFxuICAgICAgbG9jYXRpb246IHByb3BzLmxvY2F0aW9uIHx8IFwiZWFzdHVzXCIsXG4gICAgICBza3U6IHByb3BzLnNrdSB8fCBcIlN0YW5kYXJkX0Iyc1wiLFxuICAgICAgaW5zdGFuY2VzOiBwcm9wcy5pbnN0YW5jZXMgfHwgMSxcbiAgICAgIG9zRGlzazogcHJvcHMub3NEaXNrIHx8IHtcbiAgICAgICAgY2FjaGluZzogXCJSZWFkV3JpdGVcIixcbiAgICAgICAgc3RvcmFnZUFjY291bnRUeXBlOiBcIlN0YW5kYXJkX0xSU1wiLFxuICAgICAgfSxcbiAgICAgIHNvdXJjZUltYWdlUmVmZXJlbmNlOlxuICAgICAgICBwcm9wcy5zb3VyY2VJbWFnZVJlZmVyZW5jZSB8fFxuICAgICAgICBXaW5kb3dzSW1hZ2VSZWZlcmVuY2VzLndpbmRvd3NTZXJ2ZXIyMDIyRGF0YWNlbnRlckNvcmUsXG4gICAgICBzdWJuZXQ6XG4gICAgICAgIHByb3BzLnN1Ym5ldCB8fFxuICAgICAgICBuZXcgTmV0d29yayh0aGlzLCBcInZuZXRcIiwge1xuICAgICAgICAgIHJlc291cmNlR3JvdXA6IHByb3BzLnJlc291cmNlR3JvdXAsXG4gICAgICAgIH0pLnN1Ym5ldHMuZGVmYXVsdCxcbiAgICB9O1xuXG4gICAgLy8gQmFzZTY0IGVuY29kZSBjdXN0b20gZGF0YSBpZiBwcm92aWRlZC5cbiAgICBjb25zdCBjdXN0b21EYXRhID0gcHJvcHMuY3VzdG9tRGF0YSB8fCBwcm9wcy5ib29zdHJhcEN1c3RvbURhdGE7XG4gICAgY29uc3QgYmFzZTY0Q3VzdG9tRGF0YSA9IGN1c3RvbURhdGFcbiAgICAgID8gQnVmZmVyLmZyb20oY3VzdG9tRGF0YSkudG9TdHJpbmcoXCJiYXNlNjRcIilcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgLy8gQ3JlYXRlIHRoZSBXaW5kb3dzIFZpcnR1YWwgTWFjaGluZS5cbiAgICBjb25zdCBhenVyZXJtV2luZG93c1ZpcnR1YWxNYWNoaW5lID0gbmV3IFdpbmRvd3NWaXJ0dWFsTWFjaGluZVNjYWxlU2V0KFxuICAgICAgdGhpcyxcbiAgICAgIFwidm1zc1wiLFxuICAgICAge1xuICAgICAgICAuLi5kZWZhdWx0cyxcbiAgICAgICAgcmVzb3VyY2VHcm91cE5hbWU6IHByb3BzLnJlc291cmNlR3JvdXAubmFtZSxcbiAgICAgICAgYWRtaW5Vc2VybmFtZTogcHJvcHMuYWRtaW5Vc2VybmFtZSxcbiAgICAgICAgYWRtaW5QYXNzd29yZDogcHJvcHMuYWRtaW5QYXNzd29yZCxcbiAgICAgICAgdGFnczogcHJvcHMudGFncyxcbiAgICAgICAgbmV0d29ya0ludGVyZmFjZTogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IGBuaWMtJHtkZWZhdWx0cy5uYW1lfWAsXG4gICAgICAgICAgICBwcmltYXJ5OiB0cnVlLFxuICAgICAgICAgICAgaXBDb25maWd1cmF0aW9uOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcImludGVybmFsXCIsXG4gICAgICAgICAgICAgICAgc3VibmV0SWQ6IGRlZmF1bHRzLnN1Ym5ldC5pZCxcbiAgICAgICAgICAgICAgICBwcmltYXJ5OiB0cnVlLFxuICAgICAgICAgICAgICAgIHB1YmxpY0lwQWRkcmVzczogcHJvcHMucHVibGljSVBBZGRyZXNzLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBvc0Rpc2s6IHtcbiAgICAgICAgICAuLi5kZWZhdWx0cy5vc0Rpc2ssXG4gICAgICAgIH0sXG4gICAgICAgIHNvdXJjZUltYWdlSWQ6IHByb3BzLnNvdXJjZUltYWdlSWQsXG4gICAgICAgIGN1c3RvbURhdGE6IGJhc2U2NEN1c3RvbURhdGEsXG4gICAgICAgIGJvb3REaWFnbm9zdGljczogeyBzdG9yYWdlQWNjb3VudFVyaTogcHJvcHMuYm9vdERpYWdub3N0aWNzU3RvcmFnZVVSSSB9LFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgdGhpcy5pZCA9IGF6dXJlcm1XaW5kb3dzVmlydHVhbE1hY2hpbmUuaWQ7XG4gICAgdGhpcy5uYW1lID0gYXp1cmVybVdpbmRvd3NWaXJ0dWFsTWFjaGluZS5uYW1lO1xuXG4gICAgLy8gQm9vdHN0cmFwIFZNIHdpdGggY3VzdG9tIHNjcmlwdCBleHRlbnNpb24gaWYgYm9vdHN0cmFwIGN1c3RvbSBkYXRhIGlzIHByb3ZpZGVkLlxuICAgIGlmIChwcm9wcy5ib29zdHJhcEN1c3RvbURhdGEpIHtcbiAgICAgIG5ldyBWaXJ0dWFsTWFjaGluZVNjYWxlU2V0RXh0ZW5zaW9uQSh0aGlzLCBcInNjcmlwdC1leHRcIiwge1xuICAgICAgICBuYW1lOiBgJHt0aGlzLm5hbWV9LXNjcmlwdC1leHRgLFxuICAgICAgICB2aXJ0dWFsTWFjaGluZVNjYWxlU2V0SWQ6IHRoaXMuaWQsXG4gICAgICAgIHB1Ymxpc2hlcjogXCJNaWNyb3NvZnQuQ29tcHV0ZVwiLFxuICAgICAgICB0eXBlOiBcIkN1c3RvbVNjcmlwdEV4dGVuc2lvblwiLFxuICAgICAgICB0eXBlSGFuZGxlclZlcnNpb246IFwiMS4xMFwiLFxuICAgICAgICBwcm90ZWN0ZWRTZXR0aW5nczpcbiAgICAgICAgICAne1wiY29tbWFuZFRvRXhlY3V0ZVwiOiBcInJlbmFtZSAgQzpcXFxcXFxcXEF6dXJlRGF0YVxcXFxcXFxcQ3VzdG9tRGF0YS5iaW4gIHBvc3RkZXBsb3kucHMxICYgcG93ZXJzaGVsbCAtRXhlY3V0aW9uUG9saWN5IFVucmVzdHJpY3RlZCAtRmlsZSBDOlxcXFxcXFxcQXp1cmVEYXRhXFxcXFxcXFxwb3N0ZGVwbG95LnBzMVwifScsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -56,6 +56,67 @@ export declare class Network extends AzureResource {
|
|
|
56
56
|
readonly subnets: {
|
|
57
57
|
[name: string]: Subnet;
|
|
58
58
|
};
|
|
59
|
+
/**
|
|
60
|
+
* Represents an Azure Virtual Network (VNet) within Microsoft Azure.
|
|
61
|
+
*
|
|
62
|
+
* This class is responsible for the creation and management of a virtual network, which provides an isolated environment
|
|
63
|
+
* where Azure resources, such as VMs and databases, can securely communicate with each other, the internet, and on-premises
|
|
64
|
+
* networks. It supports configurations such as multiple address spaces and subnets, enabling complex networking scenarios.
|
|
65
|
+
*
|
|
66
|
+
* @param scope - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) application.
|
|
67
|
+
* @param id - The unique identifier for this instance of the network, used within the scope for reference.
|
|
68
|
+
* @param props - Configuration properties for the Azure Virtual Network, derived from the NetworkProps interface. These include:
|
|
69
|
+
* - `resourceGroup`: The ResourceGroup within which the virtual network will be created.
|
|
70
|
+
* - `name`: Optional. The name of the virtual network. If not provided, a default name will be assigned.
|
|
71
|
+
* - `location`: Optional. The Azure region where the virtual network will be deployed. Defaults to the resource group's region.
|
|
72
|
+
* - `addressSpace`: Optional. A list of CIDR blocks that define the address spaces of the virtual network.
|
|
73
|
+
* - `subnets`: Optional. An array of subnets to be created within the virtual network, each defined by a name and a CIDR block.
|
|
74
|
+
*
|
|
75
|
+
* Example usage:
|
|
76
|
+
* ```typescript
|
|
77
|
+
* const network = new Network(this, 'MyVirtualNetwork', {
|
|
78
|
+
* resourceGroup: myResourceGroup,
|
|
79
|
+
* name: 'myVNet',
|
|
80
|
+
* location: 'West US',
|
|
81
|
+
* addressSpace: ['10.0.0.0/16'],
|
|
82
|
+
* subnets: [{ name: 'subnet1', addressPrefixes: ['10.0.1.0/24'] }]
|
|
83
|
+
* });
|
|
84
|
+
* ```
|
|
85
|
+
* This class initializes a virtual network with the specified configurations and handles the provisioning of subnets
|
|
86
|
+
* within the network, providing a foundational networking layer for hosting cloud resources.
|
|
87
|
+
*/
|
|
59
88
|
constructor(scope: Construct, id: string, props: NetworkProps);
|
|
89
|
+
/**
|
|
90
|
+
* Establishes a peering connection between this virtual network and another remote virtual network.
|
|
91
|
+
*
|
|
92
|
+
* This method configures a two-way peering connection, allowing resources in both virtual networks to communicate
|
|
93
|
+
* seamlessly. It sets up peering settings such as network access, traffic forwarding, and gateway transit based on
|
|
94
|
+
* provided configurations.
|
|
95
|
+
*
|
|
96
|
+
* @param remoteVirtualNetwork - The remote virtual network with which to establish a peering connection.
|
|
97
|
+
* @param localPeerSettings - Optional settings applied from this virtual network to the remote virtual network.
|
|
98
|
+
* Controls aspects like virtual network access, traffic forwarding, and use of gateways.
|
|
99
|
+
* @param remotePeerSettings - Optional settings applied from the remote virtual network to this virtual network.
|
|
100
|
+
* Allows customization of how the remote network interacts with this one.
|
|
101
|
+
*
|
|
102
|
+
* Example usage:
|
|
103
|
+
* ```typescript
|
|
104
|
+
* // Assuming 'this' is a reference to a local virtual network instance.
|
|
105
|
+
* const partnerVNet = new Network(this, 'PartnerVNet', { ... });
|
|
106
|
+
* this.addVnetPeering(partnerVNet, {
|
|
107
|
+
* allowVirtualNetworkAccess: true,
|
|
108
|
+
* allowForwardedTraffic: false,
|
|
109
|
+
* allowGatewayTransit: true,
|
|
110
|
+
* useRemoteGateways: false
|
|
111
|
+
* }, {
|
|
112
|
+
* allowVirtualNetworkAccess: true,
|
|
113
|
+
* allowForwardedTraffic: true,
|
|
114
|
+
* allowGatewayTransit: false,
|
|
115
|
+
* useRemoteGateways: false
|
|
116
|
+
* });
|
|
117
|
+
* ```
|
|
118
|
+
* This method invokes the `Peer` class to create a peering between 'this' virtual network and 'partnerVNet'.
|
|
119
|
+
* The settings control traffic behavior and access permissions in both directions of the peering.
|
|
120
|
+
*/
|
|
60
121
|
addVnetPeering(remoteVirtualNetwork: Network, localPeerSettings?: PeerSettings, remotePeerSettings?: PeerSettings): void;
|
|
61
122
|
}
|
|
@@ -8,6 +8,35 @@ const virtual_network_1 = require("@cdktf/provider-azurerm/lib/virtual-network")
|
|
|
8
8
|
const peering_1 = require("./peering");
|
|
9
9
|
const lib_1 = require("../../core-azure/lib");
|
|
10
10
|
class Network extends lib_1.AzureResource {
|
|
11
|
+
/**
|
|
12
|
+
* Represents an Azure Virtual Network (VNet) within Microsoft Azure.
|
|
13
|
+
*
|
|
14
|
+
* This class is responsible for the creation and management of a virtual network, which provides an isolated environment
|
|
15
|
+
* where Azure resources, such as VMs and databases, can securely communicate with each other, the internet, and on-premises
|
|
16
|
+
* networks. It supports configurations such as multiple address spaces and subnets, enabling complex networking scenarios.
|
|
17
|
+
*
|
|
18
|
+
* @param scope - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) application.
|
|
19
|
+
* @param id - The unique identifier for this instance of the network, used within the scope for reference.
|
|
20
|
+
* @param props - Configuration properties for the Azure Virtual Network, derived from the NetworkProps interface. These include:
|
|
21
|
+
* - `resourceGroup`: The ResourceGroup within which the virtual network will be created.
|
|
22
|
+
* - `name`: Optional. The name of the virtual network. If not provided, a default name will be assigned.
|
|
23
|
+
* - `location`: Optional. The Azure region where the virtual network will be deployed. Defaults to the resource group's region.
|
|
24
|
+
* - `addressSpace`: Optional. A list of CIDR blocks that define the address spaces of the virtual network.
|
|
25
|
+
* - `subnets`: Optional. An array of subnets to be created within the virtual network, each defined by a name and a CIDR block.
|
|
26
|
+
*
|
|
27
|
+
* Example usage:
|
|
28
|
+
* ```typescript
|
|
29
|
+
* const network = new Network(this, 'MyVirtualNetwork', {
|
|
30
|
+
* resourceGroup: myResourceGroup,
|
|
31
|
+
* name: 'myVNet',
|
|
32
|
+
* location: 'West US',
|
|
33
|
+
* addressSpace: ['10.0.0.0/16'],
|
|
34
|
+
* subnets: [{ name: 'subnet1', addressPrefixes: ['10.0.1.0/24'] }]
|
|
35
|
+
* });
|
|
36
|
+
* ```
|
|
37
|
+
* This class initializes a virtual network with the specified configurations and handles the provisioning of subnets
|
|
38
|
+
* within the network, providing a foundational networking layer for hosting cloud resources.
|
|
39
|
+
*/
|
|
11
40
|
constructor(scope, id, props) {
|
|
12
41
|
super(scope, id);
|
|
13
42
|
this.subnets = {}; // Map of subnet name to Subnet object
|
|
@@ -43,7 +72,38 @@ class Network extends lib_1.AzureResource {
|
|
|
43
72
|
this.subnets[subnetConfig.name] = subnet; // Populate the subnetsMap
|
|
44
73
|
}
|
|
45
74
|
}
|
|
46
|
-
|
|
75
|
+
/**
|
|
76
|
+
* Establishes a peering connection between this virtual network and another remote virtual network.
|
|
77
|
+
*
|
|
78
|
+
* This method configures a two-way peering connection, allowing resources in both virtual networks to communicate
|
|
79
|
+
* seamlessly. It sets up peering settings such as network access, traffic forwarding, and gateway transit based on
|
|
80
|
+
* provided configurations.
|
|
81
|
+
*
|
|
82
|
+
* @param remoteVirtualNetwork - The remote virtual network with which to establish a peering connection.
|
|
83
|
+
* @param localPeerSettings - Optional settings applied from this virtual network to the remote virtual network.
|
|
84
|
+
* Controls aspects like virtual network access, traffic forwarding, and use of gateways.
|
|
85
|
+
* @param remotePeerSettings - Optional settings applied from the remote virtual network to this virtual network.
|
|
86
|
+
* Allows customization of how the remote network interacts with this one.
|
|
87
|
+
*
|
|
88
|
+
* Example usage:
|
|
89
|
+
* ```typescript
|
|
90
|
+
* // Assuming 'this' is a reference to a local virtual network instance.
|
|
91
|
+
* const partnerVNet = new Network(this, 'PartnerVNet', { ... });
|
|
92
|
+
* this.addVnetPeering(partnerVNet, {
|
|
93
|
+
* allowVirtualNetworkAccess: true,
|
|
94
|
+
* allowForwardedTraffic: false,
|
|
95
|
+
* allowGatewayTransit: true,
|
|
96
|
+
* useRemoteGateways: false
|
|
97
|
+
* }, {
|
|
98
|
+
* allowVirtualNetworkAccess: true,
|
|
99
|
+
* allowForwardedTraffic: true,
|
|
100
|
+
* allowGatewayTransit: false,
|
|
101
|
+
* useRemoteGateways: false
|
|
102
|
+
* });
|
|
103
|
+
* ```
|
|
104
|
+
* This method invokes the `Peer` class to create a peering between 'this' virtual network and 'partnerVNet'.
|
|
105
|
+
* The settings control traffic behavior and access permissions in both directions of the peering.
|
|
106
|
+
*/
|
|
47
107
|
addVnetPeering(remoteVirtualNetwork, localPeerSettings, remotePeerSettings) {
|
|
48
108
|
const vnetPeerProps = {
|
|
49
109
|
virtualNetwork: this,
|
|
@@ -56,5 +116,5 @@ class Network extends lib_1.AzureResource {
|
|
|
56
116
|
}
|
|
57
117
|
exports.Network = Network;
|
|
58
118
|
_a = JSII_RTTI_SYMBOL_1;
|
|
59
|
-
Network[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_virtualnetwork.Network", version: "0.0.3-pre.
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS12aXJ0dWFsbmV0d29yay9saWIvbmV0d29yay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLCtEQUE0RDtBQUM1RCxpRkFBNkU7QUFFN0UsdUNBQTBEO0FBQzFELDhDQUFxRDtBQW9EckQsTUFBYSxPQUFRLFNBQVEsbUJBQWE7SUFReEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFtQjtRQUMzRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBSEgsWUFBTyxHQUErQixFQUFFLENBQUMsQ0FBQyxzQ0FBc0M7UUFLOUYsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsTUFBTSxRQUFRLEdBQUc7WUFDZixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMxRCxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVEsSUFBSSxRQUFRO1lBQ3BDLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWSxJQUFJLENBQUMsYUFBYSxDQUFDO1lBQ25ELE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxJQUFJO2dCQUN4QjtvQkFDRSxJQUFJLEVBQUUsU0FBUztvQkFDZixlQUFlLEVBQUUsQ0FBQyxhQUFhLENBQUM7aUJBQ2pDO2FBQ0Y7U0FDRixDQUFDO1FBRUYsMkJBQTJCO1FBQzNCLE1BQU0sSUFBSSxHQUFHLElBQUksZ0NBQWMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQzVDLEdBQUcsUUFBUTtZQUNYLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSTtTQUM1QyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUN6QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUUzQiw0Q0FBNEM7UUFDNUMsS0FBSyxNQUFNLFlBQVksSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFO1lBQzNDLE1BQU0sTUFBTSxHQUFHLElBQUksZUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsSUFBSSxFQUFFO2dCQUNqRCxJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUk7Z0JBQ3ZCLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSTtnQkFDM0Msa0JBQWtCLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQzdCLGVBQWUsRUFBRSxZQUFZLENBQUMsZUFBZTthQUM5QyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQywwQkFBMEI7U0FDckU7SUFDSCxDQUFDO0lBRUQsNkJBQTZCO0lBQ3RCLGNBQWMsQ0FDbkIsb0JBQTZCLEVBQzdCLGlCQUFnQyxFQUNoQyxrQkFBaUM7UUFFakMsTUFBTSxhQUFhLEdBQWM7WUFDL0IsY0FBYyxFQUFFLElBQUk7WUFDcEIsb0JBQW9CLEVBQUUsb0JBQW9CO1lBQzFDLHFCQUFxQixFQUFFLGlCQUFpQjtZQUN4QyxxQkFBcUIsRUFBRSxrQkFBa0I7U0FDMUMsQ0FBQztRQUNGLElBQUksY0FBSSxDQUFDLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxFQUFFLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDekQsQ0FBQzs7QUE5REgsMEJBK0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUmVzb3VyY2VHcm91cCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvcmVzb3VyY2UtZ3JvdXBcIjtcbmltcG9ydCB7IFN1Ym5ldCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvc3VibmV0XCI7XG5pbXBvcnQgeyBWaXJ0dWFsTmV0d29yayB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvdmlydHVhbC1uZXR3b3JrXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgUGVlclByb3BzLCBQZWVyLCBQZWVyU2V0dGluZ3MgfSBmcm9tIFwiLi9wZWVyaW5nXCI7XG5pbXBvcnQgeyBBenVyZVJlc291cmNlIH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliXCI7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBhIHN1Ym5ldCB3aXRoaW4gYW4gQXp1cmUgVmlydHVhbCBOZXR3b3JrLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN1Ym5ldENvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc3VibmV0LiBUaGlzIG5hbWUgbXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSBjb250ZXh0IG9mIHRoZSB2aXJ0dWFsIG5ldHdvcmsuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBhZGRyZXNzIHByZWZpeGVzIGZvciB0aGUgc3VibmV0LiBUaGVzZSBhcmUgZXhwcmVzc2VkIGluIENJRFIgbm90YXRpb24uXG4gICAqIEZvciBleGFtcGxlLCAnMTkyLjE2OC4xLjAvMjQnIHRvIGRlZmluZSBhIHN1Ym5ldCB3aXRoIGEgcmFuZ2Ugb2YgSVAgYWRkcmVzc2VzLlxuICAgKi9cbiAgcmVhZG9ubHkgYWRkcmVzc1ByZWZpeGVzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBhbiBBenVyZSBWaXJ0dWFsIE5ldHdvcmsuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29ya1Byb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZSBncm91cCB1bmRlciB3aGljaCB0aGUgdmlydHVhbCBuZXR3b3JrIHdpbGwgYmUgY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlR3JvdXA6IFJlc291cmNlR3JvdXA7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsOiBUaGUgbmFtZSBvZiB0aGUgdmlydHVhbCBuZXR3b3JrLiBNdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIHJlc291cmNlIGdyb3VwLlxuICAgKiBJZiBub3QgcHJvdmlkZWQsIGEgZGVmYXVsdCBuYW1lIHdpbGwgYmUgYXNzaWduZWQuXG4gICAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbDogVGhlIEF6dXJlIHJlZ2lvbiBpbiB3aGljaCB0byBjcmVhdGUgdGhlIHZpcnR1YWwgbmV0d29yaywgZS5nLiwgJ0Vhc3QgVVMnLCAnV2VzdCBFdXJvcGUnLlxuICAgKiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgcmVnaW9uIG9mIHRoZSByZXNvdXJjZSBncm91cCB3aWxsIGJlIHVzZWQuXG4gICAqL1xuICByZWFkb25seSBsb2NhdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWw6IEEgbGlzdCBvZiBhZGRyZXNzIHNwYWNlcyBmb3IgdGhlIHZpcnR1YWwgbmV0d29yaywgc3BlY2lmaWVkIGluIENJRFIgbm90YXRpb24uXG4gICAqIEZvciBleGFtcGxlLCBbJzEwLjAuMC4wLzE2J10gZGVmaW5lcyBhIHNpbmdsZSBhZGRyZXNzIHNwYWNlLiBNdWx0aXBsZSBhZGRyZXNzIHNwYWNlcyBjYW4gYmUgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBhZGRyZXNzU3BhY2U/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT3B0aW9uYWw6IEFuIGFycmF5IG9mIHN1Ym5ldCBjb25maWd1cmF0aW9ucyB0byBiZSBjcmVhdGVkIHdpdGhpbiB0aGUgdmlydHVhbCBuZXR3b3JrLlxuICAgKiBFYWNoIHN1Ym5ldCBpcyBkZWZpbmVkIGJ5IGl0cyBuYW1lIGFuZCBhZGRyZXNzIHByZWZpeChlcykuXG4gICAqL1xuICByZWFkb25seSBzdWJuZXRzPzogU3VibmV0Q29uZmlnW107XG59XG5cbmV4cG9ydCBjbGFzcyBOZXR3b3JrIGV4dGVuZHMgQXp1cmVSZXNvdXJjZSB7XG4gIHJlYWRvbmx5IHByb3BzOiBOZXR3b3JrUHJvcHM7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZXNvdXJjZUdyb3VwOiBSZXNvdXJjZUdyb3VwO1xuICBwdWJsaWMgaWQ6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHZpcnR1YWxOZXR3b3JrOiBWaXJ0dWFsTmV0d29yaztcbiAgcHVibGljIHJlYWRvbmx5IHN1Ym5ldHM6IHsgW25hbWU6IHN0cmluZ106IFN1Ym5ldCB9ID0ge307IC8vIE1hcCBvZiBzdWJuZXQgbmFtZSB0byBTdWJuZXQgb2JqZWN0XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE5ldHdvcmtQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG5cbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIG5hbWU6IHByb3BzLm5hbWUgfHwgYHZuZXQtJHt0aGlzLm5vZGUucGF0aC5zcGxpdChcIi9cIilbMF19YCxcbiAgICAgIGxvY2F0aW9uOiBwcm9wcy5sb2NhdGlvbiB8fCBcImVhc3R1c1wiLFxuICAgICAgYWRkcmVzc1NwYWNlOiBwcm9wcy5hZGRyZXNzU3BhY2UgfHwgW1wiMTAuMC4wLjAvMTZcIl0sXG4gICAgICBzdWJuZXRzOiBwcm9wcy5zdWJuZXRzIHx8IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgIGFkZHJlc3NQcmVmaXhlczogW1wiMTAuMS4wLjAvMjRcIl0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG5cbiAgICAvLyBDcmVhdGUgYSB2aXJ0dWFsIG5ldHdvcmtcbiAgICBjb25zdCB2bmV0ID0gbmV3IFZpcnR1YWxOZXR3b3JrKHRoaXMsIFwidm5ldFwiLCB7XG4gICAgICAuLi5kZWZhdWx0cyxcbiAgICAgIHJlc291cmNlR3JvdXBOYW1lOiBwcm9wcy5yZXNvdXJjZUdyb3VwLm5hbWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLm5hbWUgPSB2bmV0Lm5hbWU7XG4gICAgdGhpcy5pZCA9IHZuZXQuaWQ7XG4gICAgdGhpcy5yZXNvdXJjZUdyb3VwID0gcHJvcHMucmVzb3VyY2VHcm91cDtcbiAgICB0aGlzLnZpcnR1YWxOZXR3b3JrID0gdm5ldDtcblxuICAgIC8vIENyZWF0ZSBzdWJuZXRzIHdpdGhpbiB0aGUgdmlydHVhbCBuZXR3b3JrXG4gICAgZm9yIChjb25zdCBzdWJuZXRDb25maWcgb2YgZGVmYXVsdHMuc3VibmV0cykge1xuICAgICAgY29uc3Qgc3VibmV0ID0gbmV3IFN1Ym5ldCh0aGlzLCBzdWJuZXRDb25maWcubmFtZSwge1xuICAgICAgICBuYW1lOiBzdWJuZXRDb25maWcubmFtZSxcbiAgICAgICAgcmVzb3VyY2VHcm91cE5hbWU6IHByb3BzLnJlc291cmNlR3JvdXAubmFtZSxcbiAgICAgICAgdmlydHVhbE5ldHdvcmtOYW1lOiB2bmV0Lm5hbWUsXG4gICAgICAgIGFkZHJlc3NQcmVmaXhlczogc3VibmV0Q29uZmlnLmFkZHJlc3NQcmVmaXhlcyxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnN1Ym5ldHNbc3VibmV0Q29uZmlnLm5hbWVdID0gc3VibmV0OyAvLyBQb3B1bGF0ZSB0aGUgc3VibmV0c01hcFxuICAgIH1cbiAgfVxuXG4gIC8vIENyZWF0ZSBWbmV0IFBlZXJpbmcgTWV0aG9kXG4gIHB1YmxpYyBhZGRWbmV0UGVlcmluZyhcbiAgICByZW1vdGVWaXJ0dWFsTmV0d29yazogTmV0d29yayxcbiAgICBsb2NhbFBlZXJTZXR0aW5ncz86IFBlZXJTZXR0aW5ncyxcbiAgICByZW1vdGVQZWVyU2V0dGluZ3M/OiBQZWVyU2V0dGluZ3MsXG4gICkge1xuICAgIGNvbnN0IHZuZXRQZWVyUHJvcHM6IFBlZXJQcm9wcyA9IHtcbiAgICAgIHZpcnR1YWxOZXR3b3JrOiB0aGlzLFxuICAgICAgcmVtb3RlVmlydHVhbE5ldHdvcms6IHJlbW90ZVZpcnR1YWxOZXR3b3JrLFxuICAgICAgbG9jYWxUb1JlbW90ZVNldHRpbmdzOiBsb2NhbFBlZXJTZXR0aW5ncyxcbiAgICAgIHJlbW90ZVRvTG9jYWxTZXR0aW5nczogcmVtb3RlUGVlclNldHRpbmdzLFxuICAgIH07XG4gICAgbmV3IFBlZXIodGhpcywgcmVtb3RlVmlydHVhbE5ldHdvcmsuaWQsIHZuZXRQZWVyUHJvcHMpO1xuICB9XG59XG4iXX0=
|
|
119
|
+
Network[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_virtualnetwork.Network", version: "0.0.3-pre.7" };
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS12aXJ0dWFsbmV0d29yay9saWIvbmV0d29yay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLCtEQUE0RDtBQUM1RCxpRkFBNkU7QUFFN0UsdUNBQTBEO0FBQzFELDhDQUFxRDtBQW9EckQsTUFBYSxPQUFRLFNBQVEsbUJBQWE7SUFPeEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0E0Qkc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW1CO1FBQzNELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUEvQkgsWUFBTyxHQUErQixFQUFFLENBQUMsQ0FBQyxzQ0FBc0M7UUFpQzlGLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRW5CLE1BQU0sUUFBUSxHQUFHO1lBQ2YsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLElBQUksUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDMUQsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRLElBQUksUUFBUTtZQUNwQyxZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVksSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUNuRCxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sSUFBSTtnQkFDeEI7b0JBQ0UsSUFBSSxFQUFFLFNBQVM7b0JBQ2YsZUFBZSxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUNqQzthQUNGO1NBQ0YsQ0FBQztRQUVGLDJCQUEyQjtRQUMzQixNQUFNLElBQUksR0FBRyxJQUFJLGdDQUFjLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUM1QyxHQUFHLFFBQVE7WUFDWCxpQkFBaUIsRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUk7U0FDNUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFDekMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFFM0IsNENBQTRDO1FBQzVDLEtBQUssTUFBTSxZQUFZLElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRTtZQUMzQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUksRUFBRTtnQkFDakQsSUFBSSxFQUFFLFlBQVksQ0FBQyxJQUFJO2dCQUN2QixpQkFBaUIsRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUk7Z0JBQzNDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUM3QixlQUFlLEVBQUUsWUFBWSxDQUFDLGVBQWU7YUFDOUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsMEJBQTBCO1NBQ3JFO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BK0JHO0lBQ0ksY0FBYyxDQUNuQixvQkFBNkIsRUFDN0IsaUJBQWdDLEVBQ2hDLGtCQUFpQztRQUVqQyxNQUFNLGFBQWEsR0FBYztZQUMvQixjQUFjLEVBQUUsSUFBSTtZQUNwQixvQkFBb0IsRUFBRSxvQkFBb0I7WUFDMUMscUJBQXFCLEVBQUUsaUJBQWlCO1lBQ3hDLHFCQUFxQixFQUFFLGtCQUFrQjtTQUMxQyxDQUFDO1FBQ0YsSUFBSSxjQUFJLENBQUMsSUFBSSxFQUFFLG9CQUFvQixDQUFDLEVBQUUsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN6RCxDQUFDOztBQXpISCwwQkEwSEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSZXNvdXJjZUdyb3VwIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9yZXNvdXJjZS1ncm91cFwiO1xuaW1wb3J0IHsgU3VibmV0IH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9zdWJuZXRcIjtcbmltcG9ydCB7IFZpcnR1YWxOZXR3b3JrIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi92aXJ0dWFsLW5ldHdvcmtcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBQZWVyUHJvcHMsIFBlZXIsIFBlZXJTZXR0aW5ncyB9IGZyb20gXCIuL3BlZXJpbmdcIjtcbmltcG9ydCB7IEF6dXJlUmVzb3VyY2UgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWJcIjtcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIHByb3BlcnRpZXMgZm9yIGRlZmluaW5nIGEgc3VibmV0IHdpdGhpbiBhbiBBenVyZSBWaXJ0dWFsIE5ldHdvcmsuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3VibmV0Q29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBzdWJuZXQuIFRoaXMgbmFtZSBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIGNvbnRleHQgb2YgdGhlIHZpcnR1YWwgbmV0d29yay5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQSBsaXN0IG9mIGFkZHJlc3MgcHJlZml4ZXMgZm9yIHRoZSBzdWJuZXQuIFRoZXNlIGFyZSBleHByZXNzZWQgaW4gQ0lEUiBub3RhdGlvbi5cbiAgICogRm9yIGV4YW1wbGUsICcxOTIuMTY4LjEuMC8yNCcgdG8gZGVmaW5lIGEgc3VibmV0IHdpdGggYSByYW5nZSBvZiBJUCBhZGRyZXNzZXMuXG4gICAqL1xuICByZWFkb25seSBhZGRyZXNzUHJlZml4ZXM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIGFuIEF6dXJlIFZpcnR1YWwgTmV0d29yay5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrUHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlIGdyb3VwIHVuZGVyIHdoaWNoIHRoZSB2aXJ0dWFsIG5ldHdvcmsgd2lsbCBiZSBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VHcm91cDogUmVzb3VyY2VHcm91cDtcblxuICAvKipcbiAgICogT3B0aW9uYWw6IFRoZSBuYW1lIG9mIHRoZSB2aXJ0dWFsIG5ldHdvcmsuIE11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgcmVzb3VyY2UgZ3JvdXAuXG4gICAqIElmIG5vdCBwcm92aWRlZCwgYSBkZWZhdWx0IG5hbWUgd2lsbCBiZSBhc3NpZ25lZC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsOiBUaGUgQXp1cmUgcmVnaW9uIGluIHdoaWNoIHRvIGNyZWF0ZSB0aGUgdmlydHVhbCBuZXR3b3JrLCBlLmcuLCAnRWFzdCBVUycsICdXZXN0IEV1cm9wZScuXG4gICAqIElmIG5vdCBzcGVjaWZpZWQsIHRoZSByZWdpb24gb2YgdGhlIHJlc291cmNlIGdyb3VwIHdpbGwgYmUgdXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IGxvY2F0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbDogQSBsaXN0IG9mIGFkZHJlc3Mgc3BhY2VzIGZvciB0aGUgdmlydHVhbCBuZXR3b3JrLCBzcGVjaWZpZWQgaW4gQ0lEUiBub3RhdGlvbi5cbiAgICogRm9yIGV4YW1wbGUsIFsnMTAuMC4wLjAvMTYnXSBkZWZpbmVzIGEgc2luZ2xlIGFkZHJlc3Mgc3BhY2UuIE11bHRpcGxlIGFkZHJlc3Mgc3BhY2VzIGNhbiBiZSBwcm92aWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGFkZHJlc3NTcGFjZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbDogQW4gYXJyYXkgb2Ygc3VibmV0IGNvbmZpZ3VyYXRpb25zIHRvIGJlIGNyZWF0ZWQgd2l0aGluIHRoZSB2aXJ0dWFsIG5ldHdvcmsuXG4gICAqIEVhY2ggc3VibmV0IGlzIGRlZmluZWQgYnkgaXRzIG5hbWUgYW5kIGFkZHJlc3MgcHJlZml4KGVzKS5cbiAgICovXG4gIHJlYWRvbmx5IHN1Ym5ldHM/OiBTdWJuZXRDb25maWdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIE5ldHdvcmsgZXh0ZW5kcyBBenVyZVJlc291cmNlIHtcbiAgcmVhZG9ubHkgcHJvcHM6IE5ldHdvcmtQcm9wcztcbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlc291cmNlR3JvdXA6IFJlc291cmNlR3JvdXA7XG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgdmlydHVhbE5ldHdvcms6IFZpcnR1YWxOZXR3b3JrO1xuICBwdWJsaWMgcmVhZG9ubHkgc3VibmV0czogeyBbbmFtZTogc3RyaW5nXTogU3VibmV0IH0gPSB7fTsgLy8gTWFwIG9mIHN1Ym5ldCBuYW1lIHRvIFN1Ym5ldCBvYmplY3RcbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgYW4gQXp1cmUgVmlydHVhbCBOZXR3b3JrIChWTmV0KSB3aXRoaW4gTWljcm9zb2Z0IEF6dXJlLlxuICAgKlxuICAgKiBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciB0aGUgY3JlYXRpb24gYW5kIG1hbmFnZW1lbnQgb2YgYSB2aXJ0dWFsIG5ldHdvcmssIHdoaWNoIHByb3ZpZGVzIGFuIGlzb2xhdGVkIGVudmlyb25tZW50XG4gICAqIHdoZXJlIEF6dXJlIHJlc291cmNlcywgc3VjaCBhcyBWTXMgYW5kIGRhdGFiYXNlcywgY2FuIHNlY3VyZWx5IGNvbW11bmljYXRlIHdpdGggZWFjaCBvdGhlciwgdGhlIGludGVybmV0LCBhbmQgb24tcHJlbWlzZXNcbiAgICogbmV0d29ya3MuIEl0IHN1cHBvcnRzIGNvbmZpZ3VyYXRpb25zIHN1Y2ggYXMgbXVsdGlwbGUgYWRkcmVzcyBzcGFjZXMgYW5kIHN1Ym5ldHMsIGVuYWJsaW5nIGNvbXBsZXggbmV0d29ya2luZyBzY2VuYXJpb3MuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3QsIHR5cGljYWxseSByZXByZXNlbnRpbmcgdGhlIENsb3VkIERldmVsb3BtZW50IEtpdCAoQ0RLKSBhcHBsaWNhdGlvbi5cbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlIG9mIHRoZSBuZXR3b3JrLCB1c2VkIHdpdGhpbiB0aGUgc2NvcGUgZm9yIHJlZmVyZW5jZS5cbiAgICogQHBhcmFtIHByb3BzIC0gQ29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGZvciB0aGUgQXp1cmUgVmlydHVhbCBOZXR3b3JrLCBkZXJpdmVkIGZyb20gdGhlIE5ldHdvcmtQcm9wcyBpbnRlcmZhY2UuIFRoZXNlIGluY2x1ZGU6XG4gICAqICAgICAgICAgICAgICAgIC0gYHJlc291cmNlR3JvdXBgOiBUaGUgUmVzb3VyY2VHcm91cCB3aXRoaW4gd2hpY2ggdGhlIHZpcnR1YWwgbmV0d29yayB3aWxsIGJlIGNyZWF0ZWQuXG4gICAqICAgICAgICAgICAgICAgIC0gYG5hbWVgOiBPcHRpb25hbC4gVGhlIG5hbWUgb2YgdGhlIHZpcnR1YWwgbmV0d29yay4gSWYgbm90IHByb3ZpZGVkLCBhIGRlZmF1bHQgbmFtZSB3aWxsIGJlIGFzc2lnbmVkLlxuICAgKiAgICAgICAgICAgICAgICAtIGBsb2NhdGlvbmA6IE9wdGlvbmFsLiBUaGUgQXp1cmUgcmVnaW9uIHdoZXJlIHRoZSB2aXJ0dWFsIG5ldHdvcmsgd2lsbCBiZSBkZXBsb3llZC4gRGVmYXVsdHMgdG8gdGhlIHJlc291cmNlIGdyb3VwJ3MgcmVnaW9uLlxuICAgKiAgICAgICAgICAgICAgICAtIGBhZGRyZXNzU3BhY2VgOiBPcHRpb25hbC4gQSBsaXN0IG9mIENJRFIgYmxvY2tzIHRoYXQgZGVmaW5lIHRoZSBhZGRyZXNzIHNwYWNlcyBvZiB0aGUgdmlydHVhbCBuZXR3b3JrLlxuICAgKiAgICAgICAgICAgICAgICAtIGBzdWJuZXRzYDogT3B0aW9uYWwuIEFuIGFycmF5IG9mIHN1Ym5ldHMgdG8gYmUgY3JlYXRlZCB3aXRoaW4gdGhlIHZpcnR1YWwgbmV0d29yaywgZWFjaCBkZWZpbmVkIGJ5IGEgbmFtZSBhbmQgYSBDSURSIGJsb2NrLlxuICAgKlxuICAgKiBFeGFtcGxlIHVzYWdlOlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IG5ldHdvcmsgPSBuZXcgTmV0d29yayh0aGlzLCAnTXlWaXJ0dWFsTmV0d29yaycsIHtcbiAgICogICByZXNvdXJjZUdyb3VwOiBteVJlc291cmNlR3JvdXAsXG4gICAqICAgbmFtZTogJ215Vk5ldCcsXG4gICAqICAgbG9jYXRpb246ICdXZXN0IFVTJyxcbiAgICogICBhZGRyZXNzU3BhY2U6IFsnMTAuMC4wLjAvMTYnXSxcbiAgICogICBzdWJuZXRzOiBbeyBuYW1lOiAnc3VibmV0MScsIGFkZHJlc3NQcmVmaXhlczogWycxMC4wLjEuMC8yNCddIH1dXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICogVGhpcyBjbGFzcyBpbml0aWFsaXplcyBhIHZpcnR1YWwgbmV0d29yayB3aXRoIHRoZSBzcGVjaWZpZWQgY29uZmlndXJhdGlvbnMgYW5kIGhhbmRsZXMgdGhlIHByb3Zpc2lvbmluZyBvZiBzdWJuZXRzXG4gICAqIHdpdGhpbiB0aGUgbmV0d29yaywgcHJvdmlkaW5nIGEgZm91bmRhdGlvbmFsIG5ldHdvcmtpbmcgbGF5ZXIgZm9yIGhvc3RpbmcgY2xvdWQgcmVzb3VyY2VzLlxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE5ldHdvcmtQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG5cbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIG5hbWU6IHByb3BzLm5hbWUgfHwgYHZuZXQtJHt0aGlzLm5vZGUucGF0aC5zcGxpdChcIi9cIilbMF19YCxcbiAgICAgIGxvY2F0aW9uOiBwcm9wcy5sb2NhdGlvbiB8fCBcImVhc3R1c1wiLFxuICAgICAgYWRkcmVzc1NwYWNlOiBwcm9wcy5hZGRyZXNzU3BhY2UgfHwgW1wiMTAuMC4wLjAvMTZcIl0sXG4gICAgICBzdWJuZXRzOiBwcm9wcy5zdWJuZXRzIHx8IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiZGVmYXVsdFwiLFxuICAgICAgICAgIGFkZHJlc3NQcmVmaXhlczogW1wiMTAuMS4wLjAvMjRcIl0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG5cbiAgICAvLyBDcmVhdGUgYSB2aXJ0dWFsIG5ldHdvcmtcbiAgICBjb25zdCB2bmV0ID0gbmV3IFZpcnR1YWxOZXR3b3JrKHRoaXMsIFwidm5ldFwiLCB7XG4gICAgICAuLi5kZWZhdWx0cyxcbiAgICAgIHJlc291cmNlR3JvdXBOYW1lOiBwcm9wcy5yZXNvdXJjZUdyb3VwLm5hbWUsXG4gICAgfSk7XG5cbiAgICB0aGlzLm5hbWUgPSB2bmV0Lm5hbWU7XG4gICAgdGhpcy5pZCA9IHZuZXQuaWQ7XG4gICAgdGhpcy5yZXNvdXJjZUdyb3VwID0gcHJvcHMucmVzb3VyY2VHcm91cDtcbiAgICB0aGlzLnZpcnR1YWxOZXR3b3JrID0gdm5ldDtcblxuICAgIC8vIENyZWF0ZSBzdWJuZXRzIHdpdGhpbiB0aGUgdmlydHVhbCBuZXR3b3JrXG4gICAgZm9yIChjb25zdCBzdWJuZXRDb25maWcgb2YgZGVmYXVsdHMuc3VibmV0cykge1xuICAgICAgY29uc3Qgc3VibmV0ID0gbmV3IFN1Ym5ldCh0aGlzLCBzdWJuZXRDb25maWcubmFtZSwge1xuICAgICAgICBuYW1lOiBzdWJuZXRDb25maWcubmFtZSxcbiAgICAgICAgcmVzb3VyY2VHcm91cE5hbWU6IHByb3BzLnJlc291cmNlR3JvdXAubmFtZSxcbiAgICAgICAgdmlydHVhbE5ldHdvcmtOYW1lOiB2bmV0Lm5hbWUsXG4gICAgICAgIGFkZHJlc3NQcmVmaXhlczogc3VibmV0Q29uZmlnLmFkZHJlc3NQcmVmaXhlcyxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnN1Ym5ldHNbc3VibmV0Q29uZmlnLm5hbWVdID0gc3VibmV0OyAvLyBQb3B1bGF0ZSB0aGUgc3VibmV0c01hcFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFc3RhYmxpc2hlcyBhIHBlZXJpbmcgY29ubmVjdGlvbiBiZXR3ZWVuIHRoaXMgdmlydHVhbCBuZXR3b3JrIGFuZCBhbm90aGVyIHJlbW90ZSB2aXJ0dWFsIG5ldHdvcmsuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGNvbmZpZ3VyZXMgYSB0d28td2F5IHBlZXJpbmcgY29ubmVjdGlvbiwgYWxsb3dpbmcgcmVzb3VyY2VzIGluIGJvdGggdmlydHVhbCBuZXR3b3JrcyB0byBjb21tdW5pY2F0ZVxuICAgKiBzZWFtbGVzc2x5LiBJdCBzZXRzIHVwIHBlZXJpbmcgc2V0dGluZ3Mgc3VjaCBhcyBuZXR3b3JrIGFjY2VzcywgdHJhZmZpYyBmb3J3YXJkaW5nLCBhbmQgZ2F0ZXdheSB0cmFuc2l0IGJhc2VkIG9uXG4gICAqIHByb3ZpZGVkIGNvbmZpZ3VyYXRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gcmVtb3RlVmlydHVhbE5ldHdvcmsgLSBUaGUgcmVtb3RlIHZpcnR1YWwgbmV0d29yayB3aXRoIHdoaWNoIHRvIGVzdGFibGlzaCBhIHBlZXJpbmcgY29ubmVjdGlvbi5cbiAgICogQHBhcmFtIGxvY2FsUGVlclNldHRpbmdzIC0gT3B0aW9uYWwgc2V0dGluZ3MgYXBwbGllZCBmcm9tIHRoaXMgdmlydHVhbCBuZXR3b3JrIHRvIHRoZSByZW1vdGUgdmlydHVhbCBuZXR3b3JrLlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29udHJvbHMgYXNwZWN0cyBsaWtlIHZpcnR1YWwgbmV0d29yayBhY2Nlc3MsIHRyYWZmaWMgZm9yd2FyZGluZywgYW5kIHVzZSBvZiBnYXRld2F5cy5cbiAgICogQHBhcmFtIHJlbW90ZVBlZXJTZXR0aW5ncyAtIE9wdGlvbmFsIHNldHRpbmdzIGFwcGxpZWQgZnJvbSB0aGUgcmVtb3RlIHZpcnR1YWwgbmV0d29yayB0byB0aGlzIHZpcnR1YWwgbmV0d29yay5cbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFsbG93cyBjdXN0b21pemF0aW9uIG9mIGhvdyB0aGUgcmVtb3RlIG5ldHdvcmsgaW50ZXJhY3RzIHdpdGggdGhpcyBvbmUuXG4gICAqXG4gICAqIEV4YW1wbGUgdXNhZ2U6XG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogLy8gQXNzdW1pbmcgJ3RoaXMnIGlzIGEgcmVmZXJlbmNlIHRvIGEgbG9jYWwgdmlydHVhbCBuZXR3b3JrIGluc3RhbmNlLlxuICAgKiBjb25zdCBwYXJ0bmVyVk5ldCA9IG5ldyBOZXR3b3JrKHRoaXMsICdQYXJ0bmVyVk5ldCcsIHsgLi4uIH0pO1xuICAgKiB0aGlzLmFkZFZuZXRQZWVyaW5nKHBhcnRuZXJWTmV0LCB7XG4gICAqICAgYWxsb3dWaXJ0dWFsTmV0d29ya0FjY2VzczogdHJ1ZSxcbiAgICogICBhbGxvd0ZvcndhcmRlZFRyYWZmaWM6IGZhbHNlLFxuICAgKiAgIGFsbG93R2F0ZXdheVRyYW5zaXQ6IHRydWUsXG4gICAqICAgdXNlUmVtb3RlR2F0ZXdheXM6IGZhbHNlXG4gICAqIH0sIHtcbiAgICogICBhbGxvd1ZpcnR1YWxOZXR3b3JrQWNjZXNzOiB0cnVlLFxuICAgKiAgIGFsbG93Rm9yd2FyZGVkVHJhZmZpYzogdHJ1ZSxcbiAgICogICBhbGxvd0dhdGV3YXlUcmFuc2l0OiBmYWxzZSxcbiAgICogICB1c2VSZW1vdGVHYXRld2F5czogZmFsc2VcbiAgICogfSk7XG4gICAqIGBgYFxuICAgKiBUaGlzIG1ldGhvZCBpbnZva2VzIHRoZSBgUGVlcmAgY2xhc3MgdG8gY3JlYXRlIGEgcGVlcmluZyBiZXR3ZWVuICd0aGlzJyB2aXJ0dWFsIG5ldHdvcmsgYW5kICdwYXJ0bmVyVk5ldCcuXG4gICAqIFRoZSBzZXR0aW5ncyBjb250cm9sIHRyYWZmaWMgYmVoYXZpb3IgYW5kIGFjY2VzcyBwZXJtaXNzaW9ucyBpbiBib3RoIGRpcmVjdGlvbnMgb2YgdGhlIHBlZXJpbmcuXG4gICAqL1xuICBwdWJsaWMgYWRkVm5ldFBlZXJpbmcoXG4gICAgcmVtb3RlVmlydHVhbE5ldHdvcms6IE5ldHdvcmssXG4gICAgbG9jYWxQZWVyU2V0dGluZ3M/OiBQZWVyU2V0dGluZ3MsXG4gICAgcmVtb3RlUGVlclNldHRpbmdzPzogUGVlclNldHRpbmdzLFxuICApIHtcbiAgICBjb25zdCB2bmV0UGVlclByb3BzOiBQZWVyUHJvcHMgPSB7XG4gICAgICB2aXJ0dWFsTmV0d29yazogdGhpcyxcbiAgICAgIHJlbW90ZVZpcnR1YWxOZXR3b3JrOiByZW1vdGVWaXJ0dWFsTmV0d29yayxcbiAgICAgIGxvY2FsVG9SZW1vdGVTZXR0aW5nczogbG9jYWxQZWVyU2V0dGluZ3MsXG4gICAgICByZW1vdGVUb0xvY2FsU2V0dGluZ3M6IHJlbW90ZVBlZXJTZXR0aW5ncyxcbiAgICB9O1xuICAgIG5ldyBQZWVyKHRoaXMsIHJlbW90ZVZpcnR1YWxOZXR3b3JrLmlkLCB2bmV0UGVlclByb3BzKTtcbiAgfVxufVxuIl19
|
|
@@ -47,5 +47,44 @@ export interface PeerProps {
|
|
|
47
47
|
readonly remoteToLocalSettings: PeerSettings | undefined;
|
|
48
48
|
}
|
|
49
49
|
export declare class Peer extends Construct {
|
|
50
|
+
/**
|
|
51
|
+
* Represents a Virtual Network Peering within Microsoft Azure.
|
|
52
|
+
*
|
|
53
|
+
* This class facilitates the peering between two virtual networks, allowing resources in either network to communicate
|
|
54
|
+
* with each other as if they were within the same network. It supports advanced configurations such as traffic forwarding,
|
|
55
|
+
* gateway transit, and access settings. This peering does not require a VPN gateway and offers low-latency, high-bandwidth
|
|
56
|
+
* connections between resources in different virtual networks.
|
|
57
|
+
*
|
|
58
|
+
* @param scope - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) application.
|
|
59
|
+
* @param name - The unique name for this instance of the network peering.
|
|
60
|
+
* @param props - Configuration properties for the network peering, derived from the PeerProps interface. These include:
|
|
61
|
+
* - `virtualNetwork`: The local virtual network object.
|
|
62
|
+
* - `remoteVirtualNetwork`: The remote virtual network object.
|
|
63
|
+
* - `localToRemoteSettings`: Configuration settings applied from the local virtual network to the remote virtual network.
|
|
64
|
+
* - `remoteToLocalSettings`: Configuration settings applied from the remote virtual network to the local virtual network.
|
|
65
|
+
*
|
|
66
|
+
* Example usage:
|
|
67
|
+
* ```typescript
|
|
68
|
+
* const vnetPeering = new Peer(this, 'VNetPeering', {
|
|
69
|
+
* virtualNetwork: myVNet,
|
|
70
|
+
* remoteVirtualNetwork: partnerVNet,
|
|
71
|
+
* localToRemoteSettings: {
|
|
72
|
+
* allowVirtualNetworkAccess: true,
|
|
73
|
+
* allowForwardedTraffic: false,
|
|
74
|
+
* allowGatewayTransit: false,
|
|
75
|
+
* useRemoteGateways: false
|
|
76
|
+
* },
|
|
77
|
+
* remoteToLocalSettings: {
|
|
78
|
+
* allowVirtualNetworkAccess: true,
|
|
79
|
+
* allowForwardedTraffic: true,
|
|
80
|
+
* allowGatewayTransit: false,
|
|
81
|
+
* useRemoteGateways: false
|
|
82
|
+
* }
|
|
83
|
+
* });
|
|
84
|
+
* ```
|
|
85
|
+
* This class initializes a VNet peering with the specified configurations, enabling direct connectivity between
|
|
86
|
+
* the specified virtual networks. It manages the creation and configuration of network peering settings, ensuring
|
|
87
|
+
* that both VNets are appropriately linked and configured according to the defined properties.
|
|
88
|
+
*/
|
|
50
89
|
constructor(scope: Construct, name: string, props: PeerProps);
|
|
51
90
|
}
|
|
@@ -6,6 +6,45 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
6
6
|
const virtual_network_peering_1 = require("@cdktf/provider-azurerm/lib/virtual-network-peering");
|
|
7
7
|
const constructs_1 = require("constructs");
|
|
8
8
|
class Peer extends constructs_1.Construct {
|
|
9
|
+
/**
|
|
10
|
+
* Represents a Virtual Network Peering within Microsoft Azure.
|
|
11
|
+
*
|
|
12
|
+
* This class facilitates the peering between two virtual networks, allowing resources in either network to communicate
|
|
13
|
+
* with each other as if they were within the same network. It supports advanced configurations such as traffic forwarding,
|
|
14
|
+
* gateway transit, and access settings. This peering does not require a VPN gateway and offers low-latency, high-bandwidth
|
|
15
|
+
* connections between resources in different virtual networks.
|
|
16
|
+
*
|
|
17
|
+
* @param scope - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) application.
|
|
18
|
+
* @param name - The unique name for this instance of the network peering.
|
|
19
|
+
* @param props - Configuration properties for the network peering, derived from the PeerProps interface. These include:
|
|
20
|
+
* - `virtualNetwork`: The local virtual network object.
|
|
21
|
+
* - `remoteVirtualNetwork`: The remote virtual network object.
|
|
22
|
+
* - `localToRemoteSettings`: Configuration settings applied from the local virtual network to the remote virtual network.
|
|
23
|
+
* - `remoteToLocalSettings`: Configuration settings applied from the remote virtual network to the local virtual network.
|
|
24
|
+
*
|
|
25
|
+
* Example usage:
|
|
26
|
+
* ```typescript
|
|
27
|
+
* const vnetPeering = new Peer(this, 'VNetPeering', {
|
|
28
|
+
* virtualNetwork: myVNet,
|
|
29
|
+
* remoteVirtualNetwork: partnerVNet,
|
|
30
|
+
* localToRemoteSettings: {
|
|
31
|
+
* allowVirtualNetworkAccess: true,
|
|
32
|
+
* allowForwardedTraffic: false,
|
|
33
|
+
* allowGatewayTransit: false,
|
|
34
|
+
* useRemoteGateways: false
|
|
35
|
+
* },
|
|
36
|
+
* remoteToLocalSettings: {
|
|
37
|
+
* allowVirtualNetworkAccess: true,
|
|
38
|
+
* allowForwardedTraffic: true,
|
|
39
|
+
* allowGatewayTransit: false,
|
|
40
|
+
* useRemoteGateways: false
|
|
41
|
+
* }
|
|
42
|
+
* });
|
|
43
|
+
* ```
|
|
44
|
+
* This class initializes a VNet peering with the specified configurations, enabling direct connectivity between
|
|
45
|
+
* the specified virtual networks. It manages the creation and configuration of network peering settings, ensuring
|
|
46
|
+
* that both VNets are appropriately linked and configured according to the defined properties.
|
|
47
|
+
*/
|
|
9
48
|
constructor(scope, name, props) {
|
|
10
49
|
super(scope, name);
|
|
11
50
|
const localtoRemotePeerName = props.virtualNetwork.name + "to" + props.remoteVirtualNetwork.name;
|
|
@@ -28,5 +67,5 @@ class Peer extends constructs_1.Construct {
|
|
|
28
67
|
}
|
|
29
68
|
exports.Peer = Peer;
|
|
30
69
|
_a = JSII_RTTI_SYMBOL_1;
|
|
31
|
-
Peer[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_virtualnetwork.Peer", version: "0.0.3-pre.
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
Peer[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_virtualnetwork.Peer", version: "0.0.3-pre.7" };
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVlcmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS12aXJ0dWFsbmV0d29yay9saWIvcGVlcmluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGlHQUE0RjtBQUM1RiwyQ0FBdUM7QUF5RHZDLE1BQWEsSUFBSyxTQUFRLHNCQUFTO0lBQ2pDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXNDRztJQUNILFlBQVksS0FBZ0IsRUFBRSxJQUFZLEVBQUUsS0FBZ0I7UUFDMUQsS0FBSyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztRQUVuQixNQUFNLHFCQUFxQixHQUN6QixLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksR0FBRyxJQUFJLEdBQUcsS0FBSyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQztRQUVyRSxJQUFJLCtDQUFxQixDQUFDLElBQUksRUFBRSx1QkFBdUIsRUFBRTtZQUN2RCxJQUFJLEVBQUUscUJBQXFCO1lBQzNCLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLElBQUk7WUFDMUQsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJO1lBQzdDLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFO1lBQ3JELEdBQUcsS0FBSyxDQUFDLHFCQUFxQjtTQUMvQixDQUFDLENBQUM7UUFFSCxNQUFNLHFCQUFxQixHQUN6QixLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBSSxHQUFHLElBQUksR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQztRQUVyRSxJQUFJLCtDQUFxQixDQUFDLElBQUksRUFBRSx1QkFBdUIsRUFBRTtZQUN2RCxJQUFJLEVBQUUscUJBQXFCO1lBQzNCLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsSUFBSTtZQUNoRSxrQkFBa0IsRUFBRSxLQUFLLENBQUMsb0JBQW9CLENBQUMsSUFBSTtZQUNuRCxzQkFBc0IsRUFBRSxLQUFLLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDL0MsR0FBRyxLQUFLLENBQUMscUJBQXFCO1NBQy9CLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBaEVILG9CQWlFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZpcnR1YWxOZXR3b3JrUGVlcmluZyB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvdmlydHVhbC1uZXR3b3JrLXBlZXJpbmdcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBOZXR3b3JrIH0gZnJvbSBcIi4vbmV0d29ya1wiO1xuXG4vKipcbiAqIEludGVyZmFjZSBkZWZpbmluZyB0aGUgc2V0dGluZ3MgZm9yIHBlZXIgY29ubmVjdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGVlclNldHRpbmdzIHtcbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHZpcnR1YWwgbmV0d29yayBhY2Nlc3MgaXMgYWxsb3dlZC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dWaXJ0dWFsTmV0d29ya0FjY2Vzcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIGZvcndhcmRlZCB0cmFmZmljIGlzIGFsbG93ZWQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBhbGxvd0ZvcndhcmRlZFRyYWZmaWM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciBnYXRld2F5IHRyYW5zaXQgaXMgYWxsb3dlZC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGFsbG93R2F0ZXdheVRyYW5zaXQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byB1c2UgcmVtb3RlIGdhdGV3YXlzLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlUmVtb3RlR2F0ZXdheXM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSBkZWZpbmluZyB0aGUgcHJvcGVydGllcyBmb3IgdmlydHVhbCBuZXR3b3JrIHBlZXJpbmdzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBlZXJQcm9wcyB7XG4gIC8qKlxuICAgKiBJRCBvZiB0aGUgbG9jYWwgdmlydHVhbCBuZXR3b3JrLlxuICAgKi9cbiAgcmVhZG9ubHkgdmlydHVhbE5ldHdvcms6IE5ldHdvcms7XG5cbiAgLyoqXG4gICAqIElEIG9mIHRoZSByZW1vdGUgdmlydHVhbCBuZXR3b3JrLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3RlVmlydHVhbE5ldHdvcms6IE5ldHdvcms7XG5cbiAgLyoqXG4gICAqIFNldHRpbmdzIGFwcGxpZWQgZnJvbSB0aGUgbG9jYWwgdmlydHVhbCBuZXR3b3JrIHRvIHRoZSByZW1vdGUgdmlydHVhbCBuZXR3b3JrLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYWxUb1JlbW90ZVNldHRpbmdzOiBQZWVyU2V0dGluZ3MgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFNldHRpbmdzIGFwcGxpZWQgZnJvbSB0aGUgcmVtb3RlIHZpcnR1YWwgbmV0d29yayB0byB0aGUgbG9jYWwgdmlydHVhbCBuZXR3b3JrLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3RlVG9Mb2NhbFNldHRpbmdzOiBQZWVyU2V0dGluZ3MgfCB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBjbGFzcyBQZWVyIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgYSBWaXJ0dWFsIE5ldHdvcmsgUGVlcmluZyB3aXRoaW4gTWljcm9zb2Z0IEF6dXJlLlxuICAgKlxuICAgKiBUaGlzIGNsYXNzIGZhY2lsaXRhdGVzIHRoZSBwZWVyaW5nIGJldHdlZW4gdHdvIHZpcnR1YWwgbmV0d29ya3MsIGFsbG93aW5nIHJlc291cmNlcyBpbiBlaXRoZXIgbmV0d29yayB0byBjb21tdW5pY2F0ZVxuICAgKiB3aXRoIGVhY2ggb3RoZXIgYXMgaWYgdGhleSB3ZXJlIHdpdGhpbiB0aGUgc2FtZSBuZXR3b3JrLiBJdCBzdXBwb3J0cyBhZHZhbmNlZCBjb25maWd1cmF0aW9ucyBzdWNoIGFzIHRyYWZmaWMgZm9yd2FyZGluZyxcbiAgICogZ2F0ZXdheSB0cmFuc2l0LCBhbmQgYWNjZXNzIHNldHRpbmdzLiBUaGlzIHBlZXJpbmcgZG9lcyBub3QgcmVxdWlyZSBhIFZQTiBnYXRld2F5IGFuZCBvZmZlcnMgbG93LWxhdGVuY3ksIGhpZ2gtYmFuZHdpZHRoXG4gICAqIGNvbm5lY3Rpb25zIGJldHdlZW4gcmVzb3VyY2VzIGluIGRpZmZlcmVudCB2aXJ0dWFsIG5ldHdvcmtzLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0LCB0eXBpY2FsbHkgcmVwcmVzZW50aW5nIHRoZSBDbG91ZCBEZXZlbG9wbWVudCBLaXQgKENESykgYXBwbGljYXRpb24uXG4gICAqIEBwYXJhbSBuYW1lIC0gVGhlIHVuaXF1ZSBuYW1lIGZvciB0aGlzIGluc3RhbmNlIG9mIHRoZSBuZXR3b3JrIHBlZXJpbmcuXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIG5ldHdvcmsgcGVlcmluZywgZGVyaXZlZCBmcm9tIHRoZSBQZWVyUHJvcHMgaW50ZXJmYWNlLiBUaGVzZSBpbmNsdWRlOlxuICAgKiAgICAgICAgICAgICAgICAtIGB2aXJ0dWFsTmV0d29ya2A6IFRoZSBsb2NhbCB2aXJ0dWFsIG5ldHdvcmsgb2JqZWN0LlxuICAgKiAgICAgICAgICAgICAgICAtIGByZW1vdGVWaXJ0dWFsTmV0d29ya2A6IFRoZSByZW1vdGUgdmlydHVhbCBuZXR3b3JrIG9iamVjdC5cbiAgICogICAgICAgICAgICAgICAgLSBgbG9jYWxUb1JlbW90ZVNldHRpbmdzYDogQ29uZmlndXJhdGlvbiBzZXR0aW5ncyBhcHBsaWVkIGZyb20gdGhlIGxvY2FsIHZpcnR1YWwgbmV0d29yayB0byB0aGUgcmVtb3RlIHZpcnR1YWwgbmV0d29yay5cbiAgICogICAgICAgICAgICAgICAgLSBgcmVtb3RlVG9Mb2NhbFNldHRpbmdzYDogQ29uZmlndXJhdGlvbiBzZXR0aW5ncyBhcHBsaWVkIGZyb20gdGhlIHJlbW90ZSB2aXJ0dWFsIG5ldHdvcmsgdG8gdGhlIGxvY2FsIHZpcnR1YWwgbmV0d29yay5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCB2bmV0UGVlcmluZyA9IG5ldyBQZWVyKHRoaXMsICdWTmV0UGVlcmluZycsIHtcbiAgICogICB2aXJ0dWFsTmV0d29yazogbXlWTmV0LFxuICAgKiAgIHJlbW90ZVZpcnR1YWxOZXR3b3JrOiBwYXJ0bmVyVk5ldCxcbiAgICogICBsb2NhbFRvUmVtb3RlU2V0dGluZ3M6IHtcbiAgICogICAgIGFsbG93VmlydHVhbE5ldHdvcmtBY2Nlc3M6IHRydWUsXG4gICAqICAgICBhbGxvd0ZvcndhcmRlZFRyYWZmaWM6IGZhbHNlLFxuICAgKiAgICAgYWxsb3dHYXRld2F5VHJhbnNpdDogZmFsc2UsXG4gICAqICAgICB1c2VSZW1vdGVHYXRld2F5czogZmFsc2VcbiAgICogICB9LFxuICAgKiAgIHJlbW90ZVRvTG9jYWxTZXR0aW5nczoge1xuICAgKiAgICAgYWxsb3dWaXJ0dWFsTmV0d29ya0FjY2VzczogdHJ1ZSxcbiAgICogICAgIGFsbG93Rm9yd2FyZGVkVHJhZmZpYzogdHJ1ZSxcbiAgICogICAgIGFsbG93R2F0ZXdheVRyYW5zaXQ6IGZhbHNlLFxuICAgKiAgICAgdXNlUmVtb3RlR2F0ZXdheXM6IGZhbHNlXG4gICAqICAgfVxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqIFRoaXMgY2xhc3MgaW5pdGlhbGl6ZXMgYSBWTmV0IHBlZXJpbmcgd2l0aCB0aGUgc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb25zLCBlbmFibGluZyBkaXJlY3QgY29ubmVjdGl2aXR5IGJldHdlZW5cbiAgICogdGhlIHNwZWNpZmllZCB2aXJ0dWFsIG5ldHdvcmtzLiBJdCBtYW5hZ2VzIHRoZSBjcmVhdGlvbiBhbmQgY29uZmlndXJhdGlvbiBvZiBuZXR3b3JrIHBlZXJpbmcgc2V0dGluZ3MsIGVuc3VyaW5nXG4gICAqIHRoYXQgYm90aCBWTmV0cyBhcmUgYXBwcm9wcmlhdGVseSBsaW5rZWQgYW5kIGNvbmZpZ3VyZWQgYWNjb3JkaW5nIHRvIHRoZSBkZWZpbmVkIHByb3BlcnRpZXMuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBuYW1lOiBzdHJpbmcsIHByb3BzOiBQZWVyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgbmFtZSk7XG5cbiAgICBjb25zdCBsb2NhbHRvUmVtb3RlUGVlck5hbWUgPVxuICAgICAgcHJvcHMudmlydHVhbE5ldHdvcmsubmFtZSArIFwidG9cIiArIHByb3BzLnJlbW90ZVZpcnR1YWxOZXR3b3JrLm5hbWU7XG5cbiAgICBuZXcgVmlydHVhbE5ldHdvcmtQZWVyaW5nKHRoaXMsIFwiVk5ldFBlZXJMb2NhbHRvUmVtb3RlXCIsIHtcbiAgICAgIG5hbWU6IGxvY2FsdG9SZW1vdGVQZWVyTmFtZSxcbiAgICAgIHJlc291cmNlR3JvdXBOYW1lOiBwcm9wcy52aXJ0dWFsTmV0d29yay5yZXNvdXJjZUdyb3VwLm5hbWUsXG4gICAgICB2aXJ0dWFsTmV0d29ya05hbWU6IHByb3BzLnZpcnR1YWxOZXR3b3JrLm5hbWUsXG4gICAgICByZW1vdGVWaXJ0dWFsTmV0d29ya0lkOiBwcm9wcy5yZW1vdGVWaXJ0dWFsTmV0d29yay5pZCxcbiAgICAgIC4uLnByb3BzLmxvY2FsVG9SZW1vdGVTZXR0aW5ncyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlbW90ZVRvTG9jYWxQZWVyTmFtZSA9XG4gICAgICBwcm9wcy5yZW1vdGVWaXJ0dWFsTmV0d29yay5uYW1lICsgXCJ0b1wiICsgcHJvcHMudmlydHVhbE5ldHdvcmsubmFtZTtcblxuICAgIG5ldyBWaXJ0dWFsTmV0d29ya1BlZXJpbmcodGhpcywgXCJWTmV0UGVlclJlbW90ZXRvTG9jYWxcIiwge1xuICAgICAgbmFtZTogcmVtb3RlVG9Mb2NhbFBlZXJOYW1lLFxuICAgICAgcmVzb3VyY2VHcm91cE5hbWU6IHByb3BzLnJlbW90ZVZpcnR1YWxOZXR3b3JrLnJlc291cmNlR3JvdXAubmFtZSxcbiAgICAgIHZpcnR1YWxOZXR3b3JrTmFtZTogcHJvcHMucmVtb3RlVmlydHVhbE5ldHdvcmsubmFtZSxcbiAgICAgIHJlbW90ZVZpcnR1YWxOZXR3b3JrSWQ6IHByb3BzLnZpcnR1YWxOZXR3b3JrLmlkLFxuICAgICAgLi4ucHJvcHMucmVtb3RlVG9Mb2NhbFNldHRpbmdzLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|