@microsoft/terraform-cdk-constructs 0.0.3-pre.10
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/.devcontainer/devcontainer.json +62 -0
- package/.jsii +18296 -0
- package/API.md +19698 -0
- package/CODE_OF_CONDUCT.md +9 -0
- package/CONTRIBUTING.md +85 -0
- package/LICENSE +19 -0
- package/README.md +152 -0
- package/SECURITY.md +41 -0
- package/SUPPORT.md +25 -0
- package/cdktf.json +11 -0
- package/cdktf.out/manifest.json +13 -0
- package/cdktf.out/stacks/testAzureActionGroup/cdk.tf.json +111 -0
- package/cdktf.out/stacks/testAzureApplicationGateway/cdk.tf.json +588 -0
- package/cdktf.out/stacks/testAzureApplicationInsights/cdk.tf.json +245 -0
- package/cdktf.out/stacks/testAzureContainerRegistry/cdk.tf.json +179 -0
- package/cdktf.out/stacks/testAzureEventhub/cdk.tf.json +236 -0
- package/cdktf.out/stacks/testAzureKeyVault/cdk.tf.json +436 -0
- package/cdktf.out/stacks/testAzureKubernetesCluster/cdk.tf.json +152 -0
- package/cdktf.out/stacks/testAzureKusto/cdk.tf.json +209 -0
- package/cdktf.out/stacks/testAzureLinuxFunctionApp/cdk.tf.json +439 -0
- package/cdktf.out/stacks/testAzureLinuxVirtualMachineExample/cdk.tf.json +283 -0
- package/cdktf.out/stacks/testAzureLinuxVirtualMachineScaleSetExample/cdk.tf.json +261 -0
- package/cdktf.out/stacks/testAzureLogAnalytics/cdk.tf.json +309 -0
- package/cdktf.out/stacks/testAzureMetricAlert/cdk.tf.json +161 -0
- package/cdktf.out/stacks/testAzureNetworkSecurityGroup/cdk.tf.json +271 -0
- package/cdktf.out/stacks/testAzureQueryRuleAlert/cdk.tf.json +122 -0
- package/cdktf.out/stacks/testAzureResourceGroup/cdk.tf.json +88 -0
- package/cdktf.out/stacks/testAzureStorageAccount/cdk.tf.json +339 -0
- package/cdktf.out/stacks/testAzureVirtualNetwork/cdk.tf.json +264 -0
- package/cdktf.out/stacks/testAzureWindowVirtualMachineScaleSetExample/cdk.tf.json +261 -0
- package/cdktf.out/stacks/testAzureWindowsVirtualMachineExample/cdk.tf.json +280 -0
- package/cdktf.out/stacks/testExampleAzureResource/cdk.tf.json +167 -0
- package/docs/design_guide.md +309 -0
- package/docs/images/ide-documentation.png +0 -0
- package/docs/testing.md +347 -0
- package/go.mod +73 -0
- package/go.sum +1006 -0
- package/help +51 -0
- package/jest.config.js.old +187 -0
- package/lib/azure-actiongroup/index.d.ts +1 -0
- package/lib/azure-actiongroup/index.js +18 -0
- package/lib/azure-actiongroup/lib/actiongroup.d.ts +49 -0
- package/lib/azure-actiongroup/lib/actiongroup.js +85 -0
- package/lib/azure-actiongroup/lib/index.d.ts +1 -0
- package/lib/azure-actiongroup/lib/index.js +18 -0
- package/lib/azure-actiongroup/model/action-group-props.d.ts +47 -0
- package/lib/azure-actiongroup/model/action-group-props.js +3 -0
- package/lib/azure-actiongroup/model/arm-role-receiver-props.d.ts +20 -0
- package/lib/azure-actiongroup/model/arm-role-receiver-props.js +3 -0
- package/lib/azure-actiongroup/model/azure-app-push-receiver-props.d.ts +14 -0
- package/lib/azure-actiongroup/model/azure-app-push-receiver-props.js +3 -0
- package/lib/azure-actiongroup/model/email-receiver-props.d.ts +19 -0
- package/lib/azure-actiongroup/model/email-receiver-props.js +3 -0
- package/lib/azure-actiongroup/model/eventhub-receiver-props.d.ts +23 -0
- package/lib/azure-actiongroup/model/eventhub-receiver-props.js +3 -0
- package/lib/azure-actiongroup/model/function.d.ts +40 -0
- package/lib/azure-actiongroup/model/function.js +118 -0
- package/lib/azure-actiongroup/model/index.d.ts +10 -0
- package/lib/azure-actiongroup/model/index.js +27 -0
- package/lib/azure-actiongroup/model/logic-app-receiver-props.d.ts +23 -0
- package/lib/azure-actiongroup/model/logic-app-receiver-props.js +3 -0
- package/lib/azure-actiongroup/model/sms-receiver-props.d.ts +18 -0
- package/lib/azure-actiongroup/model/sms-receiver-props.js +3 -0
- package/lib/azure-actiongroup/model/voice-receiver-props.d.ts +18 -0
- package/lib/azure-actiongroup/model/voice-receiver-props.js +3 -0
- package/lib/azure-actiongroup/model/webhook-receiver-props.d.ts +18 -0
- package/lib/azure-actiongroup/model/webhook-receiver-props.js +3 -0
- package/lib/azure-actiongroup/test/AzureActionGroup.spec.d.ts +1 -0
- package/lib/azure-actiongroup/test/AzureActionGroup.spec.js +294 -0
- package/lib/azure-actiongroup/test/ExampleAzureActionGroup.d.ts +5 -0
- package/lib/azure-actiongroup/test/ExampleAzureActionGroup.js +66 -0
- package/lib/azure-applicationgateway/index.d.ts +1 -0
- package/lib/azure-applicationgateway/index.js +18 -0
- package/lib/azure-applicationgateway/lib/gateway.d.ts +248 -0
- package/lib/azure-applicationgateway/lib/gateway.js +199 -0
- package/lib/azure-applicationgateway/lib/index.d.ts +1 -0
- package/lib/azure-applicationgateway/lib/index.js +18 -0
- package/lib/azure-applicationgateway/test/AzureApplicationGateway.spec.d.ts +1 -0
- package/lib/azure-applicationgateway/test/AzureApplicationGateway.spec.js +106 -0
- package/lib/azure-applicationgateway/test/ExampleAzureApplicationGateway.d.ts +5 -0
- package/lib/azure-applicationgateway/test/ExampleAzureApplicationGateway.js +267 -0
- package/lib/azure-applicationinsights/index.d.ts +1 -0
- package/lib/azure-applicationinsights/index.js +18 -0
- package/lib/azure-applicationinsights/lib/appinsights.d.ts +110 -0
- package/lib/azure-applicationinsights/lib/appinsights.js +134 -0
- package/lib/azure-applicationinsights/lib/index.d.ts +1 -0
- package/lib/azure-applicationinsights/lib/index.js +18 -0
- package/lib/azure-applicationinsights/test/AzureAppInsights.spec.d.ts +1 -0
- package/lib/azure-applicationinsights/test/AzureAppInsights.spec.js +55 -0
- package/lib/azure-applicationinsights/test/ExampleAzureApplicationInsights.d.ts +5 -0
- package/lib/azure-applicationinsights/test/ExampleAzureApplicationInsights.js +87 -0
- package/lib/azure-containerregistry/index.d.ts +1 -0
- package/lib/azure-containerregistry/index.js +18 -0
- package/lib/azure-containerregistry/lib/index.d.ts +1 -0
- package/lib/azure-containerregistry/lib/index.js +18 -0
- package/lib/azure-containerregistry/lib/registry.d.ts +70 -0
- package/lib/azure-containerregistry/lib/registry.js +76 -0
- package/lib/azure-containerregistry/test/AzureContainerRegistry.spec.d.ts +1 -0
- package/lib/azure-containerregistry/test/AzureContainerRegistry.spec.js +50 -0
- package/lib/azure-containerregistry/test/ExampleAzureContainerRegistry.d.ts +5 -0
- package/lib/azure-containerregistry/test/ExampleAzureContainerRegistry.js +57 -0
- package/lib/azure-datalake/index.d.ts +1 -0
- package/lib/azure-datalake/index.js +18 -0
- package/lib/azure-datalake/lib/datalake.d.ts +64 -0
- package/lib/azure-datalake/lib/datalake.js +92 -0
- package/lib/azure-datalake/lib/filesystem.d.ts +70 -0
- package/lib/azure-datalake/lib/filesystem.js +83 -0
- package/lib/azure-datalake/lib/index.d.ts +3 -0
- package/lib/azure-datalake/lib/index.js +20 -0
- package/lib/azure-datalake/lib/path.d.ts +49 -0
- package/lib/azure-datalake/lib/path.js +51 -0
- package/lib/azure-eventhub/index.d.ts +1 -0
- package/lib/azure-eventhub/index.js +18 -0
- package/lib/azure-eventhub/lib/authorization.d.ts +58 -0
- package/lib/azure-eventhub/lib/authorization.js +84 -0
- package/lib/azure-eventhub/lib/cluster.d.ts +56 -0
- package/lib/azure-eventhub/lib/cluster.js +64 -0
- package/lib/azure-eventhub/lib/consumer.d.ts +54 -0
- package/lib/azure-eventhub/lib/consumer.js +59 -0
- package/lib/azure-eventhub/lib/index.d.ts +6 -0
- package/lib/azure-eventhub/lib/index.js +23 -0
- package/lib/azure-eventhub/lib/instance.d.ts +164 -0
- package/lib/azure-eventhub/lib/instance.js +184 -0
- package/lib/azure-eventhub/lib/kusto-connection.d.ts +109 -0
- package/lib/azure-eventhub/lib/kusto-connection.js +76 -0
- package/lib/azure-eventhub/lib/namespace.d.ts +151 -0
- package/lib/azure-eventhub/lib/namespace.js +131 -0
- package/lib/azure-eventhub/test/AzureEventhub.spec.d.ts +1 -0
- package/lib/azure-eventhub/test/AzureEventhub.spec.js +56 -0
- package/lib/azure-eventhub/test/ExampleAzureEventhub.d.ts +5 -0
- package/lib/azure-eventhub/test/ExampleAzureEventhub.js +72 -0
- package/lib/azure-functionapp/index.d.ts +1 -0
- package/lib/azure-functionapp/index.js +18 -0
- package/lib/azure-functionapp/lib/functionapplinux.d.ts +211 -0
- package/lib/azure-functionapp/lib/functionapplinux.js +141 -0
- package/lib/azure-functionapp/lib/index.d.ts +1 -0
- package/lib/azure-functionapp/lib/index.js +18 -0
- package/lib/azure-functionapp/serviceplanskus.d.ts +70 -0
- package/lib/azure-functionapp/serviceplanskus.js +81 -0
- package/lib/azure-functionapp/test/AzureLinuxFunctionApp.spec.d.ts +1 -0
- package/lib/azure-functionapp/test/AzureLinuxFunctionApp.spec.js +48 -0
- package/lib/azure-functionapp/test/ExampleAzureLinuxFunctionApp.d.ts +5 -0
- package/lib/azure-functionapp/test/ExampleAzureLinuxFunctionApp.js +123 -0
- package/lib/azure-keyvault/index.d.ts +1 -0
- package/lib/azure-keyvault/index.js +18 -0
- package/lib/azure-keyvault/lib/certificate.d.ts +133 -0
- package/lib/azure-keyvault/lib/certificate.js +146 -0
- package/lib/azure-keyvault/lib/index.d.ts +5 -0
- package/lib/azure-keyvault/lib/index.js +22 -0
- package/lib/azure-keyvault/lib/key.d.ts +72 -0
- package/lib/azure-keyvault/lib/key.js +69 -0
- package/lib/azure-keyvault/lib/policy.d.ts +76 -0
- package/lib/azure-keyvault/lib/policy.js +56 -0
- package/lib/azure-keyvault/lib/secret.d.ts +70 -0
- package/lib/azure-keyvault/lib/secret.js +64 -0
- package/lib/azure-keyvault/lib/vault.d.ts +282 -0
- package/lib/azure-keyvault/lib/vault.js +392 -0
- package/lib/azure-keyvault/test/AzureKeyVault.spec.d.ts +1 -0
- package/lib/azure-keyvault/test/AzureKeyVault.spec.js +63 -0
- package/lib/azure-keyvault/test/ExampleAzureKeyVault.d.ts +5 -0
- package/lib/azure-keyvault/test/ExampleAzureKeyVault.js +112 -0
- package/lib/azure-kubernetes/index.d.ts +1 -0
- package/lib/azure-kubernetes/index.js +18 -0
- package/lib/azure-kubernetes/lib/cluster.d.ts +93 -0
- package/lib/azure-kubernetes/lib/cluster.js +63 -0
- package/lib/azure-kubernetes/lib/index.d.ts +1 -0
- package/lib/azure-kubernetes/lib/index.js +18 -0
- package/lib/azure-kubernetes/test/AzureKubernetesCluster.spec.d.ts +1 -0
- package/lib/azure-kubernetes/test/AzureKubernetesCluster.spec.js +56 -0
- package/lib/azure-kubernetes/test/ExampleAzureKubernetesCluster.d.ts +5 -0
- package/lib/azure-kubernetes/test/ExampleAzureKubernetesCluster.js +65 -0
- package/lib/azure-kusto/index.d.ts +1 -0
- package/lib/azure-kusto/index.js +18 -0
- package/lib/azure-kusto/lib/cluster.d.ts +136 -0
- package/lib/azure-kusto/lib/cluster.js +138 -0
- package/lib/azure-kusto/lib/compute-specification.d.ts +71 -0
- package/lib/azure-kusto/lib/compute-specification.js +651 -0
- package/lib/azure-kusto/lib/database.d.ts +162 -0
- package/lib/azure-kusto/lib/database.js +180 -0
- package/lib/azure-kusto/lib/index.d.ts +3 -0
- package/lib/azure-kusto/lib/index.js +20 -0
- package/lib/azure-kusto/test/AzureKusto.spec.d.ts +1 -0
- package/lib/azure-kusto/test/AzureKusto.spec.js +50 -0
- package/lib/azure-kusto/test/ExampleAzureKusto.d.ts +5 -0
- package/lib/azure-kusto/test/ExampleAzureKusto.js +71 -0
- package/lib/azure-loganalytics/index.d.ts +1 -0
- package/lib/azure-loganalytics/index.js +18 -0
- package/lib/azure-loganalytics/lib/index.d.ts +1 -0
- package/lib/azure-loganalytics/lib/index.js +18 -0
- package/lib/azure-loganalytics/lib/workspace.d.ts +163 -0
- package/lib/azure-loganalytics/lib/workspace.js +126 -0
- package/lib/azure-loganalytics/test/AzureLogAnalytics.spec.d.ts +1 -0
- package/lib/azure-loganalytics/test/AzureLogAnalytics.spec.js +50 -0
- package/lib/azure-loganalytics/test/ExampleAzureLogAnalytics.d.ts +5 -0
- package/lib/azure-loganalytics/test/ExampleAzureLogAnalytics.js +115 -0
- package/lib/azure-metricalert/index.d.ts +2 -0
- package/lib/azure-metricalert/index.js +19 -0
- package/lib/azure-metricalert/lib/index.d.ts +1 -0
- package/lib/azure-metricalert/lib/index.js +18 -0
- package/lib/azure-metricalert/lib/metric-alert.d.ts +56 -0
- package/lib/azure-metricalert/lib/metric-alert.js +128 -0
- package/lib/azure-metricalert/model/action-props.d.ts +11 -0
- package/lib/azure-metricalert/model/action-props.js +3 -0
- package/lib/azure-metricalert/model/criteria-base-props.d.ts +38 -0
- package/lib/azure-metricalert/model/criteria-base-props.js +3 -0
- package/lib/azure-metricalert/model/criteria-dimension-props.d.ts +21 -0
- package/lib/azure-metricalert/model/criteria-dimension-props.js +3 -0
- package/lib/azure-metricalert/model/criteria-props.d.ts +12 -0
- package/lib/azure-metricalert/model/criteria-props.js +3 -0
- package/lib/azure-metricalert/model/dynamic-criteria-props.d.ts +29 -0
- package/lib/azure-metricalert/model/dynamic-criteria-props.js +3 -0
- package/lib/azure-metricalert/model/function.d.ts +28 -0
- package/lib/azure-metricalert/model/function.js +78 -0
- package/lib/azure-metricalert/model/index.d.ts +7 -0
- package/lib/azure-metricalert/model/index.js +24 -0
- package/lib/azure-metricalert/model/metric-alert-props.d.ts +86 -0
- package/lib/azure-metricalert/model/metric-alert-props.js +3 -0
- package/lib/azure-metricalert/test/AzureMetricAlert.spec.d.ts +1 -0
- package/lib/azure-metricalert/test/AzureMetricAlert.spec.js +63 -0
- package/lib/azure-metricalert/test/ExampleAzureMetricAlert.d.ts +5 -0
- package/lib/azure-metricalert/test/ExampleAzureMetricAlert.js +81 -0
- package/lib/azure-networksecuritygroup/index.d.ts +1 -0
- package/lib/azure-networksecuritygroup/index.js +18 -0
- package/lib/azure-networksecuritygroup/lib/index.d.ts +2 -0
- package/lib/azure-networksecuritygroup/lib/index.js +19 -0
- package/lib/azure-networksecuritygroup/lib/preconfigured-rules.d.ts +77 -0
- package/lib/azure-networksecuritygroup/lib/preconfigured-rules.js +608 -0
- package/lib/azure-networksecuritygroup/lib/securitygroup.d.ts +190 -0
- package/lib/azure-networksecuritygroup/lib/securitygroup.js +172 -0
- package/lib/azure-networksecuritygroup/test/AzureNetworkSecurityGroup.spec.d.ts +1 -0
- package/lib/azure-networksecuritygroup/test/AzureNetworkSecurityGroup.spec.js +54 -0
- package/lib/azure-networksecuritygroup/test/ExampleAzureNetworkSecurityGroup.d.ts +5 -0
- package/lib/azure-networksecuritygroup/test/ExampleAzureNetworkSecurityGroup.js +97 -0
- package/lib/azure-queryrulealert/index.d.ts +1 -0
- package/lib/azure-queryrulealert/index.js +18 -0
- package/lib/azure-queryrulealert/lib/index.d.ts +1 -0
- package/lib/azure-queryrulealert/lib/index.js +18 -0
- package/lib/azure-queryrulealert/lib/query-rule-alert.d.ts +175 -0
- package/lib/azure-queryrulealert/lib/query-rule-alert.js +205 -0
- package/lib/azure-queryrulealert/test/AzureQueryRuleAlert.spec.d.ts +1 -0
- package/lib/azure-queryrulealert/test/AzureQueryRuleAlert.spec.js +67 -0
- package/lib/azure-queryrulealert/test/ExampleAzureQueryRuleAlert.d.ts +5 -0
- package/lib/azure-queryrulealert/test/ExampleAzureQueryRuleAlert.js +67 -0
- package/lib/azure-resourcegroup/index.d.ts +1 -0
- package/lib/azure-resourcegroup/index.js +18 -0
- package/lib/azure-resourcegroup/lib/index.d.ts +1 -0
- package/lib/azure-resourcegroup/lib/index.js +18 -0
- package/lib/azure-resourcegroup/lib/resource-group.d.ts +66 -0
- package/lib/azure-resourcegroup/lib/resource-group.js +77 -0
- package/lib/azure-resourcegroup/test/AzureResourceGroup.spec.d.ts +1 -0
- package/lib/azure-resourcegroup/test/AzureResourceGroup.spec.js +41 -0
- package/lib/azure-resourcegroup/test/ExampleAzureResourceGroup.d.ts +5 -0
- package/lib/azure-resourcegroup/test/ExampleAzureResourceGroup.js +29 -0
- package/lib/azure-storageaccount/index.d.ts +1 -0
- package/lib/azure-storageaccount/index.js +18 -0
- package/lib/azure-storageaccount/lib/account.d.ts +232 -0
- package/lib/azure-storageaccount/lib/account.js +225 -0
- package/lib/azure-storageaccount/lib/container.d.ts +122 -0
- package/lib/azure-storageaccount/lib/container.js +167 -0
- package/lib/azure-storageaccount/lib/fileshare.d.ts +105 -0
- package/lib/azure-storageaccount/lib/fileshare.js +126 -0
- package/lib/azure-storageaccount/lib/index.d.ts +5 -0
- package/lib/azure-storageaccount/lib/index.js +22 -0
- package/lib/azure-storageaccount/lib/queue.d.ts +35 -0
- package/lib/azure-storageaccount/lib/queue.js +52 -0
- package/lib/azure-storageaccount/lib/table.d.ts +38 -0
- package/lib/azure-storageaccount/lib/table.js +55 -0
- package/lib/azure-storageaccount/test/AzureStorageAccount.spec.d.ts +1 -0
- package/lib/azure-storageaccount/test/AzureStorageAccount.spec.js +45 -0
- package/lib/azure-storageaccount/test/ExampleAzureStorageAccount.d.ts +5 -0
- package/lib/azure-storageaccount/test/ExampleAzureStorageAccount.js +102 -0
- package/lib/azure-virtualmachine/index.d.ts +1 -0
- package/lib/azure-virtualmachine/index.js +18 -0
- package/lib/azure-virtualmachine/lib/image-references.d.ts +22 -0
- package/lib/azure-virtualmachine/lib/image-references.js +128 -0
- package/lib/azure-virtualmachine/lib/index.d.ts +2 -0
- package/lib/azure-virtualmachine/lib/index.js +19 -0
- package/lib/azure-virtualmachine/lib/vm.d.ts +281 -0
- package/lib/azure-virtualmachine/lib/vm.js +283 -0
- package/lib/azure-virtualmachine/test/AzureLinuxVirtualMachine.spec.d.ts +1 -0
- package/lib/azure-virtualmachine/test/AzureLinuxVirtualMachine.spec.js +48 -0
- package/lib/azure-virtualmachine/test/AzureWindowsVirtualMachine.spec.d.ts +1 -0
- package/lib/azure-virtualmachine/test/AzureWindowsVirtualMachine.spec.js +50 -0
- package/lib/azure-virtualmachine/test/ExampleAzureLinuxVirtualMachine.d.ts +5 -0
- package/lib/azure-virtualmachine/test/ExampleAzureLinuxVirtualMachine.js +106 -0
- package/lib/azure-virtualmachine/test/ExampleAzureWindowsVirtualMachine.d.ts +5 -0
- package/lib/azure-virtualmachine/test/ExampleAzureWindowsVirtualMachine.js +102 -0
- package/lib/azure-virtualmachinescaleset/index.d.ts +1 -0
- package/lib/azure-virtualmachinescaleset/index.js +18 -0
- package/lib/azure-virtualmachinescaleset/lib/cluster.d.ts +324 -0
- package/lib/azure-virtualmachinescaleset/lib/cluster.js +264 -0
- package/lib/azure-virtualmachinescaleset/lib/index.d.ts +1 -0
- package/lib/azure-virtualmachinescaleset/lib/index.js +18 -0
- package/lib/azure-virtualmachinescaleset/test/AzureLinuxVirtualMachineScaleSet.spec.d.ts +1 -0
- package/lib/azure-virtualmachinescaleset/test/AzureLinuxVirtualMachineScaleSet.spec.js +48 -0
- package/lib/azure-virtualmachinescaleset/test/AzureWindowsVirtualMachineScaleSet.spec.d.ts +1 -0
- package/lib/azure-virtualmachinescaleset/test/AzureWindowsVirtualMachineScaleSet.spec.js +50 -0
- package/lib/azure-virtualmachinescaleset/test/ExampleAzureLinuxVirtualMachineScaleSet.d.ts +5 -0
- package/lib/azure-virtualmachinescaleset/test/ExampleAzureLinuxVirtualMachineScaleSet.js +107 -0
- package/lib/azure-virtualmachinescaleset/test/ExampleAzureWindowsVirtualMachineScaleSet.d.ts +5 -0
- package/lib/azure-virtualmachinescaleset/test/ExampleAzureWindowsVirtualMachineScaleSet.js +103 -0
- package/lib/azure-virtualnetwork/index.d.ts +1 -0
- package/lib/azure-virtualnetwork/index.js +18 -0
- package/lib/azure-virtualnetwork/lib/index.d.ts +2 -0
- package/lib/azure-virtualnetwork/lib/index.js +19 -0
- package/lib/azure-virtualnetwork/lib/network.d.ts +122 -0
- package/lib/azure-virtualnetwork/lib/network.js +120 -0
- package/lib/azure-virtualnetwork/lib/peering.d.ts +90 -0
- package/lib/azure-virtualnetwork/lib/peering.js +71 -0
- package/lib/azure-virtualnetwork/test/AzureVirtualNetwork.spec.d.ts +1 -0
- package/lib/azure-virtualnetwork/test/AzureVirtualNetwork.spec.js +48 -0
- package/lib/azure-virtualnetwork/test/ExampleAzureVirtualNetwork.d.ts +5 -0
- package/lib/azure-virtualnetwork/test/ExampleAzureVirtualNetwork.js +88 -0
- package/lib/core-azure/index.d.ts +1 -0
- package/lib/core-azure/index.js +18 -0
- package/lib/core-azure/lib/diagsettings.d.ts +89 -0
- package/lib/core-azure/lib/diagsettings.js +83 -0
- package/lib/core-azure/lib/index.d.ts +3 -0
- package/lib/core-azure/lib/index.js +20 -0
- package/lib/core-azure/lib/rbac.d.ts +50 -0
- package/lib/core-azure/lib/rbac.js +48 -0
- package/lib/core-azure/lib/resource.d.ts +62 -0
- package/lib/core-azure/lib/resource.js +118 -0
- package/lib/core-azure/test/AzureResource.spec.d.ts +1 -0
- package/lib/core-azure/test/AzureResource.spec.js +19 -0
- package/lib/core-azure/test/ExampleAzureResource.d.ts +5 -0
- package/lib/core-azure/test/ExampleAzureResource.js +67 -0
- package/lib/index.d.ts +18 -0
- package/lib/index.js +22 -0
- package/lib/testing/index.d.ts +6 -0
- package/lib/testing/index.js +18 -0
- package/lib/util/azureTenantIdHelpers.d.ts +2 -0
- package/lib/util/azureTenantIdHelpers.js +34 -0
- package/lib/util/randomName.d.ts +1 -0
- package/lib/util/randomName.js +13 -0
- package/node_modules/moment/CHANGELOG.md +996 -0
- package/node_modules/moment/LICENSE +22 -0
- package/node_modules/moment/README.md +55 -0
- package/node_modules/moment/dist/locale/af.js +71 -0
- package/node_modules/moment/dist/locale/ar-dz.js +156 -0
- package/node_modules/moment/dist/locale/ar-kw.js +55 -0
- package/node_modules/moment/dist/locale/ar-ly.js +171 -0
- package/node_modules/moment/dist/locale/ar-ma.js +56 -0
- package/node_modules/moment/dist/locale/ar-ps.js +112 -0
- package/node_modules/moment/dist/locale/ar-sa.js +105 -0
- package/node_modules/moment/dist/locale/ar-tn.js +55 -0
- package/node_modules/moment/dist/locale/ar.js +189 -0
- package/node_modules/moment/dist/locale/az.js +102 -0
- package/node_modules/moment/dist/locale/be.js +142 -0
- package/node_modules/moment/dist/locale/bg.js +87 -0
- package/node_modules/moment/dist/locale/bm.js +52 -0
- package/node_modules/moment/dist/locale/bn-bd.js +129 -0
- package/node_modules/moment/dist/locale/bn.js +119 -0
- package/node_modules/moment/dist/locale/bo.js +124 -0
- package/node_modules/moment/dist/locale/br.js +168 -0
- package/node_modules/moment/dist/locale/bs.js +160 -0
- package/node_modules/moment/dist/locale/ca.js +100 -0
- package/node_modules/moment/dist/locale/cs.js +181 -0
- package/node_modules/moment/dist/locale/cv.js +63 -0
- package/node_modules/moment/dist/locale/cy.js +98 -0
- package/node_modules/moment/dist/locale/da.js +53 -0
- package/node_modules/moment/dist/locale/de-at.js +79 -0
- package/node_modules/moment/dist/locale/de-ch.js +78 -0
- package/node_modules/moment/dist/locale/de.js +78 -0
- package/node_modules/moment/dist/locale/dv.js +90 -0
- package/node_modules/moment/dist/locale/el.js +106 -0
- package/node_modules/moment/dist/locale/en-au.js +68 -0
- package/node_modules/moment/dist/locale/en-ca.js +64 -0
- package/node_modules/moment/dist/locale/en-gb.js +68 -0
- package/node_modules/moment/dist/locale/en-ie.js +68 -0
- package/node_modules/moment/dist/locale/en-il.js +64 -0
- package/node_modules/moment/dist/locale/en-in.js +68 -0
- package/node_modules/moment/dist/locale/en-nz.js +68 -0
- package/node_modules/moment/dist/locale/en-sg.js +68 -0
- package/node_modules/moment/dist/locale/eo.js +68 -0
- package/node_modules/moment/dist/locale/es-do.js +108 -0
- package/node_modules/moment/dist/locale/es-mx.js +110 -0
- package/node_modules/moment/dist/locale/es-us.js +110 -0
- package/node_modules/moment/dist/locale/es.js +110 -0
- package/node_modules/moment/dist/locale/et.js +78 -0
- package/node_modules/moment/dist/locale/eu.js +65 -0
- package/node_modules/moment/dist/locale/fa.js +113 -0
- package/node_modules/moment/dist/locale/fi.js +124 -0
- package/node_modules/moment/dist/locale/fil.js +58 -0
- package/node_modules/moment/dist/locale/fo.js +57 -0
- package/node_modules/moment/dist/locale/fr-ca.js +70 -0
- package/node_modules/moment/dist/locale/fr-ch.js +74 -0
- package/node_modules/moment/dist/locale/fr.js +108 -0
- package/node_modules/moment/dist/locale/fy.js +75 -0
- package/node_modules/moment/dist/locale/ga.js +95 -0
- package/node_modules/moment/dist/locale/gd.js +95 -0
- package/node_modules/moment/dist/locale/gl.js +75 -0
- package/node_modules/moment/dist/locale/gom-deva.js +126 -0
- package/node_modules/moment/dist/locale/gom-latn.js +124 -0
- package/node_modules/moment/dist/locale/gu.js +122 -0
- package/node_modules/moment/dist/locale/he.js +94 -0
- package/node_modules/moment/dist/locale/hi.js +168 -0
- package/node_modules/moment/dist/locale/hr.js +156 -0
- package/node_modules/moment/dist/locale/hu.js +118 -0
- package/node_modules/moment/dist/locale/hy-am.js +94 -0
- package/node_modules/moment/dist/locale/id.js +76 -0
- package/node_modules/moment/dist/locale/is.js +140 -0
- package/node_modules/moment/dist/locale/it-ch.js +64 -0
- package/node_modules/moment/dist/locale/it.js +106 -0
- package/node_modules/moment/dist/locale/ja.js +148 -0
- package/node_modules/moment/dist/locale/jv.js +76 -0
- package/node_modules/moment/dist/locale/ka.js +92 -0
- package/node_modules/moment/dist/locale/kk.js +82 -0
- package/node_modules/moment/dist/locale/km.js +103 -0
- package/node_modules/moment/dist/locale/kn.js +124 -0
- package/node_modules/moment/dist/locale/ko.js +75 -0
- package/node_modules/moment/dist/locale/ku-kmr.js +121 -0
- package/node_modules/moment/dist/locale/ku.js +118 -0
- package/node_modules/moment/dist/locale/ky.js +84 -0
- package/node_modules/moment/dist/locale/lb.js +137 -0
- package/node_modules/moment/dist/locale/lo.js +66 -0
- package/node_modules/moment/dist/locale/lt.js +125 -0
- package/node_modules/moment/dist/locale/lv.js +94 -0
- package/node_modules/moment/dist/locale/me.js +117 -0
- package/node_modules/moment/dist/locale/mi.js +60 -0
- package/node_modules/moment/dist/locale/mk.js +85 -0
- package/node_modules/moment/dist/locale/ml.js +82 -0
- package/node_modules/moment/dist/locale/mn.js +100 -0
- package/node_modules/moment/dist/locale/mr.js +203 -0
- package/node_modules/moment/dist/locale/ms-my.js +76 -0
- package/node_modules/moment/dist/locale/ms.js +75 -0
- package/node_modules/moment/dist/locale/mt.js +56 -0
- package/node_modules/moment/dist/locale/my.js +91 -0
- package/node_modules/moment/dist/locale/nb.js +60 -0
- package/node_modules/moment/dist/locale/ne.js +121 -0
- package/node_modules/moment/dist/locale/nl-be.js +102 -0
- package/node_modules/moment/dist/locale/nl.js +104 -0
- package/node_modules/moment/dist/locale/nn.js +59 -0
- package/node_modules/moment/dist/locale/oc-lnc.js +85 -0
- package/node_modules/moment/dist/locale/pa-in.js +122 -0
- package/node_modules/moment/dist/locale/pl.js +140 -0
- package/node_modules/moment/dist/locale/pt-br.js +58 -0
- package/node_modules/moment/dist/locale/pt.js +63 -0
- package/node_modules/moment/dist/locale/ro.js +76 -0
- package/node_modules/moment/dist/locale/ru.js +213 -0
- package/node_modules/moment/dist/locale/sd.js +81 -0
- package/node_modules/moment/dist/locale/se.js +57 -0
- package/node_modules/moment/dist/locale/si.js +69 -0
- package/node_modules/moment/dist/locale/sk.js +145 -0
- package/node_modules/moment/dist/locale/sl.js +171 -0
- package/node_modules/moment/dist/locale/sq.js +65 -0
- package/node_modules/moment/dist/locale/sr-cyrl.js +127 -0
- package/node_modules/moment/dist/locale/sr.js +129 -0
- package/node_modules/moment/dist/locale/ss.js +84 -0
- package/node_modules/moment/dist/locale/sv.js +68 -0
- package/node_modules/moment/dist/locale/sw.js +55 -0
- package/node_modules/moment/dist/locale/ta.js +131 -0
- package/node_modules/moment/dist/locale/te.js +88 -0
- package/node_modules/moment/dist/locale/tet.js +68 -0
- package/node_modules/moment/dist/locale/tg.js +117 -0
- package/node_modules/moment/dist/locale/th.js +65 -0
- package/node_modules/moment/dist/locale/tk.js +91 -0
- package/node_modules/moment/dist/locale/tl-ph.js +57 -0
- package/node_modules/moment/dist/locale/tlh.js +124 -0
- package/node_modules/moment/dist/locale/tr.js +106 -0
- package/node_modules/moment/dist/locale/tzl.js +89 -0
- package/node_modules/moment/dist/locale/tzm-latn.js +54 -0
- package/node_modules/moment/dist/locale/tzm.js +54 -0
- package/node_modules/moment/dist/locale/ug-cn.js +111 -0
- package/node_modules/moment/dist/locale/uk.js +167 -0
- package/node_modules/moment/dist/locale/ur.js +82 -0
- package/node_modules/moment/dist/locale/uz-latn.js +54 -0
- package/node_modules/moment/dist/locale/uz.js +51 -0
- package/node_modules/moment/dist/locale/vi.js +80 -0
- package/node_modules/moment/dist/locale/x-pseudo.js +73 -0
- package/node_modules/moment/dist/locale/yo.js +53 -0
- package/node_modules/moment/dist/locale/zh-cn.js +120 -0
- package/node_modules/moment/dist/locale/zh-hk.js +101 -0
- package/node_modules/moment/dist/locale/zh-mo.js +100 -0
- package/node_modules/moment/dist/locale/zh-tw.js +99 -0
- package/node_modules/moment/dist/moment.js +5680 -0
- package/node_modules/moment/ender.js +1 -0
- package/node_modules/moment/locale/af.js +82 -0
- package/node_modules/moment/locale/ar-dz.js +167 -0
- package/node_modules/moment/locale/ar-kw.js +66 -0
- package/node_modules/moment/locale/ar-ly.js +182 -0
- package/node_modules/moment/locale/ar-ma.js +67 -0
- package/node_modules/moment/locale/ar-ps.js +123 -0
- package/node_modules/moment/locale/ar-sa.js +116 -0
- package/node_modules/moment/locale/ar-tn.js +66 -0
- package/node_modules/moment/locale/ar.js +200 -0
- package/node_modules/moment/locale/az.js +113 -0
- package/node_modules/moment/locale/be.js +153 -0
- package/node_modules/moment/locale/bg.js +98 -0
- package/node_modules/moment/locale/bm.js +62 -0
- package/node_modules/moment/locale/bn-bd.js +140 -0
- package/node_modules/moment/locale/bn.js +130 -0
- package/node_modules/moment/locale/bo.js +135 -0
- package/node_modules/moment/locale/br.js +179 -0
- package/node_modules/moment/locale/bs.js +171 -0
- package/node_modules/moment/locale/ca.js +111 -0
- package/node_modules/moment/locale/cs.js +192 -0
- package/node_modules/moment/locale/cv.js +74 -0
- package/node_modules/moment/locale/cy.js +109 -0
- package/node_modules/moment/locale/da.js +64 -0
- package/node_modules/moment/locale/de-at.js +90 -0
- package/node_modules/moment/locale/de-ch.js +87 -0
- package/node_modules/moment/locale/de.js +89 -0
- package/node_modules/moment/locale/dv.js +101 -0
- package/node_modules/moment/locale/el.js +117 -0
- package/node_modules/moment/locale/en-au.js +79 -0
- package/node_modules/moment/locale/en-ca.js +75 -0
- package/node_modules/moment/locale/en-gb.js +79 -0
- package/node_modules/moment/locale/en-ie.js +79 -0
- package/node_modules/moment/locale/en-il.js +75 -0
- package/node_modules/moment/locale/en-in.js +79 -0
- package/node_modules/moment/locale/en-nz.js +79 -0
- package/node_modules/moment/locale/en-sg.js +79 -0
- package/node_modules/moment/locale/eo.js +79 -0
- package/node_modules/moment/locale/es-do.js +119 -0
- package/node_modules/moment/locale/es-mx.js +121 -0
- package/node_modules/moment/locale/es-us.js +121 -0
- package/node_modules/moment/locale/es.js +121 -0
- package/node_modules/moment/locale/et.js +89 -0
- package/node_modules/moment/locale/eu.js +76 -0
- package/node_modules/moment/locale/fa.js +124 -0
- package/node_modules/moment/locale/fi.js +135 -0
- package/node_modules/moment/locale/fil.js +69 -0
- package/node_modules/moment/locale/fo.js +68 -0
- package/node_modules/moment/locale/fr-ca.js +81 -0
- package/node_modules/moment/locale/fr-ch.js +85 -0
- package/node_modules/moment/locale/fr.js +119 -0
- package/node_modules/moment/locale/fy.js +86 -0
- package/node_modules/moment/locale/ga.js +106 -0
- package/node_modules/moment/locale/gd.js +106 -0
- package/node_modules/moment/locale/gl.js +86 -0
- package/node_modules/moment/locale/gom-deva.js +137 -0
- package/node_modules/moment/locale/gom-latn.js +135 -0
- package/node_modules/moment/locale/gu.js +133 -0
- package/node_modules/moment/locale/he.js +105 -0
- package/node_modules/moment/locale/hi.js +179 -0
- package/node_modules/moment/locale/hr.js +167 -0
- package/node_modules/moment/locale/hu.js +129 -0
- package/node_modules/moment/locale/hy-am.js +105 -0
- package/node_modules/moment/locale/id.js +87 -0
- package/node_modules/moment/locale/is.js +151 -0
- package/node_modules/moment/locale/it-ch.js +75 -0
- package/node_modules/moment/locale/it.js +117 -0
- package/node_modules/moment/locale/ja.js +159 -0
- package/node_modules/moment/locale/jv.js +87 -0
- package/node_modules/moment/locale/ka.js +103 -0
- package/node_modules/moment/locale/kk.js +93 -0
- package/node_modules/moment/locale/km.js +114 -0
- package/node_modules/moment/locale/kn.js +135 -0
- package/node_modules/moment/locale/ko.js +86 -0
- package/node_modules/moment/locale/ku-kmr.js +125 -0
- package/node_modules/moment/locale/ku.js +129 -0
- package/node_modules/moment/locale/ky.js +95 -0
- package/node_modules/moment/locale/lb.js +148 -0
- package/node_modules/moment/locale/lo.js +77 -0
- package/node_modules/moment/locale/lt.js +136 -0
- package/node_modules/moment/locale/lv.js +105 -0
- package/node_modules/moment/locale/me.js +128 -0
- package/node_modules/moment/locale/mi.js +71 -0
- package/node_modules/moment/locale/mk.js +97 -0
- package/node_modules/moment/locale/ml.js +93 -0
- package/node_modules/moment/locale/mn.js +111 -0
- package/node_modules/moment/locale/mr.js +214 -0
- package/node_modules/moment/locale/ms-my.js +87 -0
- package/node_modules/moment/locale/ms.js +86 -0
- package/node_modules/moment/locale/mt.js +67 -0
- package/node_modules/moment/locale/my.js +102 -0
- package/node_modules/moment/locale/nb.js +71 -0
- package/node_modules/moment/locale/ne.js +132 -0
- package/node_modules/moment/locale/nl-be.js +113 -0
- package/node_modules/moment/locale/nl.js +115 -0
- package/node_modules/moment/locale/nn.js +70 -0
- package/node_modules/moment/locale/oc-lnc.js +96 -0
- package/node_modules/moment/locale/pa-in.js +133 -0
- package/node_modules/moment/locale/pl.js +151 -0
- package/node_modules/moment/locale/pt-br.js +69 -0
- package/node_modules/moment/locale/pt.js +74 -0
- package/node_modules/moment/locale/ro.js +87 -0
- package/node_modules/moment/locale/ru.js +224 -0
- package/node_modules/moment/locale/sd.js +92 -0
- package/node_modules/moment/locale/se.js +68 -0
- package/node_modules/moment/locale/si.js +80 -0
- package/node_modules/moment/locale/sk.js +156 -0
- package/node_modules/moment/locale/sl.js +182 -0
- package/node_modules/moment/locale/sq.js +76 -0
- package/node_modules/moment/locale/sr-cyrl.js +138 -0
- package/node_modules/moment/locale/sr.js +140 -0
- package/node_modules/moment/locale/ss.js +95 -0
- package/node_modules/moment/locale/sv.js +79 -0
- package/node_modules/moment/locale/sw.js +66 -0
- package/node_modules/moment/locale/ta.js +142 -0
- package/node_modules/moment/locale/te.js +99 -0
- package/node_modules/moment/locale/tet.js +79 -0
- package/node_modules/moment/locale/tg.js +128 -0
- package/node_modules/moment/locale/th.js +76 -0
- package/node_modules/moment/locale/tk.js +102 -0
- package/node_modules/moment/locale/tl-ph.js +68 -0
- package/node_modules/moment/locale/tlh.js +135 -0
- package/node_modules/moment/locale/tr.js +117 -0
- package/node_modules/moment/locale/tzl.js +100 -0
- package/node_modules/moment/locale/tzm-latn.js +65 -0
- package/node_modules/moment/locale/tzm.js +65 -0
- package/node_modules/moment/locale/ug-cn.js +122 -0
- package/node_modules/moment/locale/uk.js +178 -0
- package/node_modules/moment/locale/ur.js +93 -0
- package/node_modules/moment/locale/uz-latn.js +65 -0
- package/node_modules/moment/locale/uz.js +62 -0
- package/node_modules/moment/locale/vi.js +91 -0
- package/node_modules/moment/locale/x-pseudo.js +84 -0
- package/node_modules/moment/locale/yo.js +64 -0
- package/node_modules/moment/locale/zh-cn.js +131 -0
- package/node_modules/moment/locale/zh-hk.js +112 -0
- package/node_modules/moment/locale/zh-mo.js +111 -0
- package/node_modules/moment/locale/zh-tw.js +110 -0
- package/node_modules/moment/min/locales.js +12800 -0
- package/node_modules/moment/min/locales.min.js +2 -0
- package/node_modules/moment/min/locales.min.js.map +1 -0
- package/node_modules/moment/min/moment-with-locales.js +18472 -0
- package/node_modules/moment/min/moment-with-locales.min.js +2 -0
- package/node_modules/moment/min/moment-with-locales.min.js.map +1 -0
- package/node_modules/moment/min/moment.min.js +2 -0
- package/node_modules/moment/min/moment.min.js.map +1 -0
- package/node_modules/moment/moment.d.ts +796 -0
- package/node_modules/moment/moment.js +5688 -0
- package/node_modules/moment/package.js +11 -0
- package/node_modules/moment/package.json +116 -0
- package/node_modules/moment/src/lib/create/check-overflow.js +57 -0
- package/node_modules/moment/src/lib/create/date-from-array.js +35 -0
- package/node_modules/moment/src/lib/create/from-anything.js +117 -0
- package/node_modules/moment/src/lib/create/from-array.js +187 -0
- package/node_modules/moment/src/lib/create/from-object.js +20 -0
- package/node_modules/moment/src/lib/create/from-string-and-array.js +67 -0
- package/node_modules/moment/src/lib/create/from-string-and-format.js +135 -0
- package/node_modules/moment/src/lib/create/from-string.js +258 -0
- package/node_modules/moment/src/lib/create/local.js +5 -0
- package/node_modules/moment/src/lib/create/parsing-flags.js +28 -0
- package/node_modules/moment/src/lib/create/utc.js +5 -0
- package/node_modules/moment/src/lib/create/valid.js +51 -0
- package/node_modules/moment/src/lib/duration/abs.js +18 -0
- package/node_modules/moment/src/lib/duration/add-subtract.js +21 -0
- package/node_modules/moment/src/lib/duration/as.js +76 -0
- package/node_modules/moment/src/lib/duration/bubble.js +68 -0
- package/node_modules/moment/src/lib/duration/clone.js +5 -0
- package/node_modules/moment/src/lib/duration/constructor.js +42 -0
- package/node_modules/moment/src/lib/duration/create.js +133 -0
- package/node_modules/moment/src/lib/duration/duration.js +16 -0
- package/node_modules/moment/src/lib/duration/get.js +27 -0
- package/node_modules/moment/src/lib/duration/humanize.js +114 -0
- package/node_modules/moment/src/lib/duration/iso-string.js +68 -0
- package/node_modules/moment/src/lib/duration/prototype.js +78 -0
- package/node_modules/moment/src/lib/duration/valid.js +55 -0
- package/node_modules/moment/src/lib/format/format.js +104 -0
- package/node_modules/moment/src/lib/locale/base-config.js +41 -0
- package/node_modules/moment/src/lib/locale/calendar.js +15 -0
- package/node_modules/moment/src/lib/locale/constructor.js +5 -0
- package/node_modules/moment/src/lib/locale/en.js +39 -0
- package/node_modules/moment/src/lib/locale/formats.js +36 -0
- package/node_modules/moment/src/lib/locale/invalid.js +5 -0
- package/node_modules/moment/src/lib/locale/lists.js +93 -0
- package/node_modules/moment/src/lib/locale/locale.js +45 -0
- package/node_modules/moment/src/lib/locale/locales.js +249 -0
- package/node_modules/moment/src/lib/locale/ordinal.js +8 -0
- package/node_modules/moment/src/lib/locale/pre-post-format.js +3 -0
- package/node_modules/moment/src/lib/locale/prototype.js +88 -0
- package/node_modules/moment/src/lib/locale/relative.js +32 -0
- package/node_modules/moment/src/lib/locale/set.js +56 -0
- package/node_modules/moment/src/lib/moment/add-subtract.js +61 -0
- package/node_modules/moment/src/lib/moment/calendar.js +53 -0
- package/node_modules/moment/src/lib/moment/clone.js +5 -0
- package/node_modules/moment/src/lib/moment/compare.js +72 -0
- package/node_modules/moment/src/lib/moment/constructor.js +80 -0
- package/node_modules/moment/src/lib/moment/creation-data.js +9 -0
- package/node_modules/moment/src/lib/moment/diff.js +79 -0
- package/node_modules/moment/src/lib/moment/format.js +78 -0
- package/node_modules/moment/src/lib/moment/from.js +20 -0
- package/node_modules/moment/src/lib/moment/get-set.js +117 -0
- package/node_modules/moment/src/lib/moment/locale.js +34 -0
- package/node_modules/moment/src/lib/moment/min-max.js +62 -0
- package/node_modules/moment/src/lib/moment/moment.js +28 -0
- package/node_modules/moment/src/lib/moment/now.js +3 -0
- package/node_modules/moment/src/lib/moment/prototype.js +197 -0
- package/node_modules/moment/src/lib/moment/start-end-of.js +164 -0
- package/node_modules/moment/src/lib/moment/to-type.js +42 -0
- package/node_modules/moment/src/lib/moment/to.js +20 -0
- package/node_modules/moment/src/lib/moment/valid.js +15 -0
- package/node_modules/moment/src/lib/parse/regex.js +84 -0
- package/node_modules/moment/src/lib/parse/token.js +36 -0
- package/node_modules/moment/src/lib/units/aliases.js +75 -0
- package/node_modules/moment/src/lib/units/constants.js +9 -0
- package/node_modules/moment/src/lib/units/day-of-month.js +35 -0
- package/node_modules/moment/src/lib/units/day-of-week.js +432 -0
- package/node_modules/moment/src/lib/units/day-of-year.js +28 -0
- package/node_modules/moment/src/lib/units/era.js +293 -0
- package/node_modules/moment/src/lib/units/hour.js +152 -0
- package/node_modules/moment/src/lib/units/millisecond.js +66 -0
- package/node_modules/moment/src/lib/units/minute.js +24 -0
- package/node_modules/moment/src/lib/units/month.js +340 -0
- package/node_modules/moment/src/lib/units/offset.js +249 -0
- package/node_modules/moment/src/lib/units/priorities.js +34 -0
- package/node_modules/moment/src/lib/units/quarter.js +24 -0
- package/node_modules/moment/src/lib/units/second.js +24 -0
- package/node_modules/moment/src/lib/units/timestamp.js +20 -0
- package/node_modules/moment/src/lib/units/timezone.js +16 -0
- package/node_modules/moment/src/lib/units/units.js +20 -0
- package/node_modules/moment/src/lib/units/week-calendar-utils.js +66 -0
- package/node_modules/moment/src/lib/units/week-year.js +128 -0
- package/node_modules/moment/src/lib/units/week.js +62 -0
- package/node_modules/moment/src/lib/units/year.js +75 -0
- package/node_modules/moment/src/lib/utils/abs-ceil.js +7 -0
- package/node_modules/moment/src/lib/utils/abs-floor.js +8 -0
- package/node_modules/moment/src/lib/utils/abs-round.js +7 -0
- package/node_modules/moment/src/lib/utils/compare-arrays.js +18 -0
- package/node_modules/moment/src/lib/utils/defaults.js +10 -0
- package/node_modules/moment/src/lib/utils/deprecate.js +69 -0
- package/node_modules/moment/src/lib/utils/extend.js +19 -0
- package/node_modules/moment/src/lib/utils/has-own-prop.js +3 -0
- package/node_modules/moment/src/lib/utils/hooks.js +13 -0
- package/node_modules/moment/src/lib/utils/index-of.js +18 -0
- package/node_modules/moment/src/lib/utils/is-array.js +6 -0
- package/node_modules/moment/src/lib/utils/is-calendar-spec.js +25 -0
- package/node_modules/moment/src/lib/utils/is-date.js +6 -0
- package/node_modules/moment/src/lib/utils/is-function.js +6 -0
- package/node_modules/moment/src/lib/utils/is-leap-year.js +3 -0
- package/node_modules/moment/src/lib/utils/is-moment-input.js +75 -0
- package/node_modules/moment/src/lib/utils/is-number.js +6 -0
- package/node_modules/moment/src/lib/utils/is-object-empty.js +15 -0
- package/node_modules/moment/src/lib/utils/is-object.js +8 -0
- package/node_modules/moment/src/lib/utils/is-string.js +3 -0
- package/node_modules/moment/src/lib/utils/is-undefined.js +3 -0
- package/node_modules/moment/src/lib/utils/keys.js +20 -0
- package/node_modules/moment/src/lib/utils/map.js +9 -0
- package/node_modules/moment/src/lib/utils/mod.js +3 -0
- package/node_modules/moment/src/lib/utils/some.js +20 -0
- package/node_modules/moment/src/lib/utils/to-int.js +12 -0
- package/node_modules/moment/src/lib/utils/zero-fill.js +10 -0
- package/node_modules/moment/src/locale/af.js +71 -0
- package/node_modules/moment/src/locale/ar-dz.js +156 -0
- package/node_modules/moment/src/locale/ar-kw.js +55 -0
- package/node_modules/moment/src/locale/ar-ly.js +171 -0
- package/node_modules/moment/src/locale/ar-ma.js +56 -0
- package/node_modules/moment/src/locale/ar-ps.js +112 -0
- package/node_modules/moment/src/locale/ar-sa.js +105 -0
- package/node_modules/moment/src/locale/ar-tn.js +55 -0
- package/node_modules/moment/src/locale/ar.js +189 -0
- package/node_modules/moment/src/locale/az.js +102 -0
- package/node_modules/moment/src/locale/be.js +142 -0
- package/node_modules/moment/src/locale/bg.js +87 -0
- package/node_modules/moment/src/locale/bm.js +52 -0
- package/node_modules/moment/src/locale/bn-bd.js +129 -0
- package/node_modules/moment/src/locale/bn.js +119 -0
- package/node_modules/moment/src/locale/bo.js +124 -0
- package/node_modules/moment/src/locale/br.js +168 -0
- package/node_modules/moment/src/locale/bs.js +160 -0
- package/node_modules/moment/src/locale/ca.js +100 -0
- package/node_modules/moment/src/locale/cs.js +181 -0
- package/node_modules/moment/src/locale/cv.js +63 -0
- package/node_modules/moment/src/locale/cy.js +98 -0
- package/node_modules/moment/src/locale/da.js +53 -0
- package/node_modules/moment/src/locale/de-at.js +79 -0
- package/node_modules/moment/src/locale/de-ch.js +78 -0
- package/node_modules/moment/src/locale/de.js +78 -0
- package/node_modules/moment/src/locale/dv.js +90 -0
- package/node_modules/moment/src/locale/el.js +106 -0
- package/node_modules/moment/src/locale/en-au.js +68 -0
- package/node_modules/moment/src/locale/en-ca.js +64 -0
- package/node_modules/moment/src/locale/en-gb.js +68 -0
- package/node_modules/moment/src/locale/en-ie.js +68 -0
- package/node_modules/moment/src/locale/en-il.js +64 -0
- package/node_modules/moment/src/locale/en-in.js +68 -0
- package/node_modules/moment/src/locale/en-nz.js +68 -0
- package/node_modules/moment/src/locale/en-sg.js +68 -0
- package/node_modules/moment/src/locale/eo.js +68 -0
- package/node_modules/moment/src/locale/es-do.js +108 -0
- package/node_modules/moment/src/locale/es-mx.js +110 -0
- package/node_modules/moment/src/locale/es-us.js +110 -0
- package/node_modules/moment/src/locale/es.js +110 -0
- package/node_modules/moment/src/locale/et.js +78 -0
- package/node_modules/moment/src/locale/eu.js +65 -0
- package/node_modules/moment/src/locale/fa.js +113 -0
- package/node_modules/moment/src/locale/fi.js +124 -0
- package/node_modules/moment/src/locale/fil.js +58 -0
- package/node_modules/moment/src/locale/fo.js +57 -0
- package/node_modules/moment/src/locale/fr-ca.js +70 -0
- package/node_modules/moment/src/locale/fr-ch.js +74 -0
- package/node_modules/moment/src/locale/fr.js +108 -0
- package/node_modules/moment/src/locale/fy.js +75 -0
- package/node_modules/moment/src/locale/ga.js +95 -0
- package/node_modules/moment/src/locale/gd.js +95 -0
- package/node_modules/moment/src/locale/gl.js +75 -0
- package/node_modules/moment/src/locale/gom-deva.js +126 -0
- package/node_modules/moment/src/locale/gom-latn.js +124 -0
- package/node_modules/moment/src/locale/gu.js +122 -0
- package/node_modules/moment/src/locale/he.js +94 -0
- package/node_modules/moment/src/locale/hi.js +168 -0
- package/node_modules/moment/src/locale/hr.js +156 -0
- package/node_modules/moment/src/locale/hu.js +118 -0
- package/node_modules/moment/src/locale/hy-am.js +94 -0
- package/node_modules/moment/src/locale/id.js +76 -0
- package/node_modules/moment/src/locale/is.js +140 -0
- package/node_modules/moment/src/locale/it-ch.js +64 -0
- package/node_modules/moment/src/locale/it.js +106 -0
- package/node_modules/moment/src/locale/ja.js +148 -0
- package/node_modules/moment/src/locale/jv.js +76 -0
- package/node_modules/moment/src/locale/ka.js +92 -0
- package/node_modules/moment/src/locale/kk.js +82 -0
- package/node_modules/moment/src/locale/km.js +103 -0
- package/node_modules/moment/src/locale/kn.js +124 -0
- package/node_modules/moment/src/locale/ko.js +75 -0
- package/node_modules/moment/src/locale/ku-kmr.js +121 -0
- package/node_modules/moment/src/locale/ku.js +118 -0
- package/node_modules/moment/src/locale/ky.js +84 -0
- package/node_modules/moment/src/locale/lb.js +137 -0
- package/node_modules/moment/src/locale/lo.js +66 -0
- package/node_modules/moment/src/locale/lt.js +125 -0
- package/node_modules/moment/src/locale/lv.js +94 -0
- package/node_modules/moment/src/locale/me.js +117 -0
- package/node_modules/moment/src/locale/mi.js +60 -0
- package/node_modules/moment/src/locale/mk.js +85 -0
- package/node_modules/moment/src/locale/ml.js +82 -0
- package/node_modules/moment/src/locale/mn.js +100 -0
- package/node_modules/moment/src/locale/mr.js +203 -0
- package/node_modules/moment/src/locale/ms-my.js +76 -0
- package/node_modules/moment/src/locale/ms.js +75 -0
- package/node_modules/moment/src/locale/mt.js +56 -0
- package/node_modules/moment/src/locale/my.js +91 -0
- package/node_modules/moment/src/locale/nb.js +60 -0
- package/node_modules/moment/src/locale/ne.js +121 -0
- package/node_modules/moment/src/locale/nl-be.js +102 -0
- package/node_modules/moment/src/locale/nl.js +104 -0
- package/node_modules/moment/src/locale/nn.js +59 -0
- package/node_modules/moment/src/locale/oc-lnc.js +85 -0
- package/node_modules/moment/src/locale/pa-in.js +122 -0
- package/node_modules/moment/src/locale/pl.js +140 -0
- package/node_modules/moment/src/locale/pt-br.js +58 -0
- package/node_modules/moment/src/locale/pt.js +63 -0
- package/node_modules/moment/src/locale/ro.js +76 -0
- package/node_modules/moment/src/locale/ru.js +213 -0
- package/node_modules/moment/src/locale/sd.js +81 -0
- package/node_modules/moment/src/locale/se.js +57 -0
- package/node_modules/moment/src/locale/si.js +69 -0
- package/node_modules/moment/src/locale/sk.js +145 -0
- package/node_modules/moment/src/locale/sl.js +171 -0
- package/node_modules/moment/src/locale/sq.js +65 -0
- package/node_modules/moment/src/locale/sr-cyrl.js +127 -0
- package/node_modules/moment/src/locale/sr.js +129 -0
- package/node_modules/moment/src/locale/ss.js +84 -0
- package/node_modules/moment/src/locale/sv.js +68 -0
- package/node_modules/moment/src/locale/sw.js +55 -0
- package/node_modules/moment/src/locale/ta.js +131 -0
- package/node_modules/moment/src/locale/te.js +88 -0
- package/node_modules/moment/src/locale/tet.js +68 -0
- package/node_modules/moment/src/locale/tg.js +117 -0
- package/node_modules/moment/src/locale/th.js +65 -0
- package/node_modules/moment/src/locale/tk.js +91 -0
- package/node_modules/moment/src/locale/tl-ph.js +57 -0
- package/node_modules/moment/src/locale/tlh.js +124 -0
- package/node_modules/moment/src/locale/tr.js +106 -0
- package/node_modules/moment/src/locale/tzl.js +89 -0
- package/node_modules/moment/src/locale/tzm-latn.js +54 -0
- package/node_modules/moment/src/locale/tzm.js +54 -0
- package/node_modules/moment/src/locale/ug-cn.js +111 -0
- package/node_modules/moment/src/locale/uk.js +167 -0
- package/node_modules/moment/src/locale/ur.js +82 -0
- package/node_modules/moment/src/locale/uz-latn.js +54 -0
- package/node_modules/moment/src/locale/uz.js +51 -0
- package/node_modules/moment/src/locale/vi.js +80 -0
- package/node_modules/moment/src/locale/x-pseudo.js +73 -0
- package/node_modules/moment/src/locale/yo.js +53 -0
- package/node_modules/moment/src/locale/zh-cn.js +120 -0
- package/node_modules/moment/src/locale/zh-hk.js +101 -0
- package/node_modules/moment/src/locale/zh-mo.js +100 -0
- package/node_modules/moment/src/locale/zh-tw.js +99 -0
- package/node_modules/moment/src/moment.js +93 -0
- package/node_modules/moment/ts3.1-typings/moment.d.ts +785 -0
- package/node_modules/nanoid/LICENSE +20 -0
- package/node_modules/nanoid/README.md +38 -0
- package/node_modules/nanoid/async/index.browser.js +33 -0
- package/node_modules/nanoid/async/index.d.ts +56 -0
- package/node_modules/nanoid/async/index.js +34 -0
- package/node_modules/nanoid/async/index.native.js +25 -0
- package/node_modules/nanoid/bin/nanoid.js +46 -0
- package/node_modules/nanoid/index.browser.js +33 -0
- package/node_modules/nanoid/index.d.ts +91 -0
- package/node_modules/nanoid/index.js +45 -0
- package/node_modules/nanoid/nanoid.js +1 -0
- package/node_modules/nanoid/non-secure/index.d.ts +33 -0
- package/node_modules/nanoid/non-secure/index.js +20 -0
- package/node_modules/nanoid/package.json +46 -0
- package/node_modules/nanoid/url-alphabet/index.js +2 -0
- package/node_modules/ts-md5/LICENSE +21 -0
- package/node_modules/ts-md5/README.md +101 -0
- package/node_modules/ts-md5/dist/cjs/index.d.ts +3 -0
- package/node_modules/ts-md5/dist/cjs/index.js +10 -0
- package/node_modules/ts-md5/dist/cjs/index.js.map +1 -0
- package/node_modules/ts-md5/dist/cjs/md5.d.ts +70 -0
- package/node_modules/ts-md5/dist/cjs/md5.js +429 -0
- package/node_modules/ts-md5/dist/cjs/md5.js.map +1 -0
- package/node_modules/ts-md5/dist/cjs/md5_file_hasher.d.ts +25 -0
- package/node_modules/ts-md5/dist/cjs/md5_file_hasher.js +96 -0
- package/node_modules/ts-md5/dist/cjs/md5_file_hasher.js.map +1 -0
- package/node_modules/ts-md5/dist/cjs/parallel_hasher.d.ts +22 -0
- package/node_modules/ts-md5/dist/cjs/parallel_hasher.js +69 -0
- package/node_modules/ts-md5/dist/cjs/parallel_hasher.js.map +1 -0
- package/node_modules/ts-md5/dist/esm/index.d.ts +3 -0
- package/node_modules/ts-md5/dist/esm/index.js +4 -0
- package/node_modules/ts-md5/dist/esm/index.js.map +1 -0
- package/node_modules/ts-md5/dist/esm/md5.d.ts +70 -0
- package/node_modules/ts-md5/dist/esm/md5.js +421 -0
- package/node_modules/ts-md5/dist/esm/md5.js.map +1 -0
- package/node_modules/ts-md5/dist/esm/md5_file_hasher.d.ts +25 -0
- package/node_modules/ts-md5/dist/esm/md5_file_hasher.js +89 -0
- package/node_modules/ts-md5/dist/esm/md5_file_hasher.js.map +1 -0
- package/node_modules/ts-md5/dist/esm/parallel_hasher.d.ts +22 -0
- package/node_modules/ts-md5/dist/esm/parallel_hasher.js +64 -0
- package/node_modules/ts-md5/dist/esm/parallel_hasher.js.map +1 -0
- package/node_modules/ts-md5/dist/md5.js +429 -0
- package/node_modules/ts-md5/dist/md5_worker.js +523 -0
- package/node_modules/ts-md5/package.json +82 -0
- package/node_modules/ts-md5/src/index.ts +4 -0
- package/node_modules/ts-md5/src/md5.ts +473 -0
- package/node_modules/ts-md5/src/md5_file_hasher.ts +110 -0
- package/node_modules/ts-md5/src/parallel_hasher.ts +90 -0
- package/node_modules/ts-md5/src/worker.js +20 -0
- package/package.json +160 -0
- package/scripts/generate-index.js +52 -0
- package/setup.js +2 -0
- package/tfsec.json +4 -0
- package/util/compute.go +106 -0
- package/util/terraform.go +213 -0
- package/util/util.go +100 -0
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Vault = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const key_vault_1 = require("@cdktf/provider-azurerm/lib/key-vault");
|
|
7
|
+
const cdktf = require("cdktf");
|
|
8
|
+
const certificate_1 = require("./certificate");
|
|
9
|
+
const key_1 = require("./key");
|
|
10
|
+
const policy_1 = require("./policy");
|
|
11
|
+
const secret_1 = require("./secret");
|
|
12
|
+
const lib_1 = require("../../core-azure/lib");
|
|
13
|
+
class Vault extends lib_1.AzureResource {
|
|
14
|
+
/**
|
|
15
|
+
* Constructs a new Azure Key Vault resource.
|
|
16
|
+
*
|
|
17
|
+
* This class creates and configures an Azure Key Vault, a secure store for managing secrets, keys, certificates, and other sensitive data.
|
|
18
|
+
* It supports advanced configurations such as access policies, network rules, and data retention policies.
|
|
19
|
+
*
|
|
20
|
+
* @param scope - The scope in which to define this construct, usually representing the Cloud Development Kit (CDK) stack.
|
|
21
|
+
* @param id - The unique identifier for this instance of the Key Vault.
|
|
22
|
+
* @param props - The properties for creating the Key Vault as defined in VaultProps. These include settings for location, SKU, tenant ID, etc.
|
|
23
|
+
*
|
|
24
|
+
* Example usage:
|
|
25
|
+
* ```typescript
|
|
26
|
+
* new Vault(this, 'MyKeyVault', {
|
|
27
|
+
* name: 'mySecureVault',
|
|
28
|
+
* location: 'East US',
|
|
29
|
+
* resourceGroup: myResourceGroup,
|
|
30
|
+
* sku: 'premium',
|
|
31
|
+
* tenantId: 'my-tenant-id',
|
|
32
|
+
* softDeleteRetentionDays: 90,
|
|
33
|
+
* purgeProtection: true,
|
|
34
|
+
* tags: {
|
|
35
|
+
* project: 'My Application'
|
|
36
|
+
* }
|
|
37
|
+
* });
|
|
38
|
+
* ```
|
|
39
|
+
*/
|
|
40
|
+
constructor(scope, id, props) {
|
|
41
|
+
super(scope, id);
|
|
42
|
+
this.accessPolicies = [];
|
|
43
|
+
this.props = props;
|
|
44
|
+
this.resourceGroup = props.resourceGroup;
|
|
45
|
+
// Provide default values
|
|
46
|
+
const purgeProtection = props.purgeProtection ?? true;
|
|
47
|
+
const sku = props.sku ?? "standard";
|
|
48
|
+
const softDeleteRetentionDays = props.softDeleteRetentionDays ?? 90;
|
|
49
|
+
const azurermKeyVault = new key_vault_1.KeyVault(this, "key_vault", {
|
|
50
|
+
name: props.name,
|
|
51
|
+
location: props.location,
|
|
52
|
+
resourceGroupName: props.resourceGroup.name,
|
|
53
|
+
tags: props.tags,
|
|
54
|
+
skuName: sku,
|
|
55
|
+
tenantId: props.tenantId,
|
|
56
|
+
networkAcls: props.networkAcls,
|
|
57
|
+
purgeProtectionEnabled: purgeProtection,
|
|
58
|
+
softDeleteRetentionDays: softDeleteRetentionDays,
|
|
59
|
+
});
|
|
60
|
+
this.id = azurermKeyVault.id;
|
|
61
|
+
this.keyVault = azurermKeyVault;
|
|
62
|
+
// Terraform Outputs
|
|
63
|
+
const cdktfTerraformOutputKeyVaultid = new cdktf.TerraformOutput(this, "id", {
|
|
64
|
+
value: azurermKeyVault.id,
|
|
65
|
+
});
|
|
66
|
+
/*This allows the Terraform resource name to match the original name. You can remove the call if you don't need them to match.*/
|
|
67
|
+
cdktfTerraformOutputKeyVaultid.overrideLogicalId("id");
|
|
68
|
+
const cdktfTerraformOutputKeyVaultname = new cdktf.TerraformOutput(this, "key_vault_name", {
|
|
69
|
+
value: azurermKeyVault.name,
|
|
70
|
+
});
|
|
71
|
+
/*This allows the Terraform resource name to match the original name. You can remove the call if you don't need them to match.*/
|
|
72
|
+
cdktfTerraformOutputKeyVaultname.overrideLogicalId("key_vault_name");
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Grants read-only access to secrets stored in the Key Vault to a specified Azure AD group.
|
|
76
|
+
*
|
|
77
|
+
* @param azureAdGroupId - The Azure Active Directory group ID that will receive read access to secrets.
|
|
78
|
+
*/
|
|
79
|
+
grantSecretReaderAccess(azureAdGroupId) {
|
|
80
|
+
const policyProps = {
|
|
81
|
+
keyVaultId: this,
|
|
82
|
+
tenantId: this.props.tenantId,
|
|
83
|
+
objectId: azureAdGroupId,
|
|
84
|
+
secretPermissions: ["Get", "List"],
|
|
85
|
+
};
|
|
86
|
+
const policy = new policy_1.AccessPolicy(this, `kv_secret_reader_access_${azureAdGroupId}`, policyProps);
|
|
87
|
+
this.accessPolicies.push(policy);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Grants administrative access to secrets stored in the Key Vault to a specified Azure AD group.
|
|
91
|
+
*
|
|
92
|
+
* @param azureAdGroupId - The Azure Active Directory group ID that will receive administrative access to secrets.
|
|
93
|
+
*/
|
|
94
|
+
grantSecretAdminAccess(azureAdGroupId) {
|
|
95
|
+
const policyProps = {
|
|
96
|
+
keyVaultId: this,
|
|
97
|
+
tenantId: this.props.tenantId,
|
|
98
|
+
objectId: azureAdGroupId,
|
|
99
|
+
secretPermissions: [
|
|
100
|
+
"Get",
|
|
101
|
+
"List",
|
|
102
|
+
"Set",
|
|
103
|
+
"Delete",
|
|
104
|
+
"Backup",
|
|
105
|
+
"Restore",
|
|
106
|
+
"Recover",
|
|
107
|
+
],
|
|
108
|
+
};
|
|
109
|
+
const policy = new policy_1.AccessPolicy(this, `kv_secret_admin_access_${azureAdGroupId}`, policyProps);
|
|
110
|
+
this.accessPolicies.push(policy);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Grants administrative access to certificates stored in the Key Vault to a specified Azure AD group.
|
|
114
|
+
*
|
|
115
|
+
* @param azureAdGroupId - The Azure Active Directory group ID that will receive administrative access to certificates.
|
|
116
|
+
*/
|
|
117
|
+
grantCertAdminAccess(azureAdGroupId) {
|
|
118
|
+
const policyProps = {
|
|
119
|
+
keyVaultId: this,
|
|
120
|
+
tenantId: this.props.tenantId,
|
|
121
|
+
objectId: azureAdGroupId,
|
|
122
|
+
certificatePermissions: [
|
|
123
|
+
"Get",
|
|
124
|
+
"List",
|
|
125
|
+
"Set",
|
|
126
|
+
"Delete",
|
|
127
|
+
"Backup",
|
|
128
|
+
"Restore",
|
|
129
|
+
"Recover",
|
|
130
|
+
],
|
|
131
|
+
};
|
|
132
|
+
const policy = new policy_1.AccessPolicy(this, `kv_cert_admin_access_${azureAdGroupId}`, policyProps);
|
|
133
|
+
this.accessPolicies.push(policy);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Grants read-only access to certificates stored in the Key Vault to a specified Azure AD group.
|
|
137
|
+
*
|
|
138
|
+
* @param azureAdGroupId - The Azure Active Directory group ID that will receive read access to certificates.
|
|
139
|
+
*/
|
|
140
|
+
grantCertReaderAccess(azureAdGroupId) {
|
|
141
|
+
const policyProps = {
|
|
142
|
+
keyVaultId: this,
|
|
143
|
+
tenantId: this.props.tenantId,
|
|
144
|
+
objectId: azureAdGroupId,
|
|
145
|
+
certificatePermissions: ["Get", "List"],
|
|
146
|
+
};
|
|
147
|
+
const policy = new policy_1.AccessPolicy(this, `kv_cert_reader_access_${azureAdGroupId}`, policyProps);
|
|
148
|
+
this.accessPolicies.push(policy);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Grants administrative access to keys stored in the Key Vault to a specified Azure AD group.
|
|
152
|
+
*
|
|
153
|
+
* @param azureAdGroupId - The Azure Active Directory group ID that will receive administrative access to keys.
|
|
154
|
+
*/
|
|
155
|
+
grantKeyAdminAccess(azureAdGroupId) {
|
|
156
|
+
const policyProps = {
|
|
157
|
+
keyVaultId: this,
|
|
158
|
+
tenantId: this.props.tenantId,
|
|
159
|
+
objectId: azureAdGroupId,
|
|
160
|
+
keyPermissions: [
|
|
161
|
+
"Get",
|
|
162
|
+
"List",
|
|
163
|
+
"Set",
|
|
164
|
+
"Delete",
|
|
165
|
+
"Backup",
|
|
166
|
+
"Restore",
|
|
167
|
+
"Recover",
|
|
168
|
+
],
|
|
169
|
+
};
|
|
170
|
+
const policy = new policy_1.AccessPolicy(this, `kv_key_admin_access_${azureAdGroupId}`, policyProps);
|
|
171
|
+
this.accessPolicies.push(policy);
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Grants read-only access to keys stored in the Key Vault to a specified Azure AD group.
|
|
175
|
+
*
|
|
176
|
+
* @param azureAdGroupId - The Azure Active Directory group ID that will receive read access to keys.
|
|
177
|
+
*/
|
|
178
|
+
grantKeyReaderAccess(azureAdGroupId) {
|
|
179
|
+
const policyProps = {
|
|
180
|
+
keyVaultId: this,
|
|
181
|
+
tenantId: this.props.tenantId,
|
|
182
|
+
objectId: azureAdGroupId,
|
|
183
|
+
keyPermissions: ["Get", "List"],
|
|
184
|
+
};
|
|
185
|
+
const policy = new policy_1.AccessPolicy(this, `kv_key_reader_access_${azureAdGroupId}`, policyProps);
|
|
186
|
+
this.accessPolicies.push(policy);
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Grants custom access based on specified options to an Azure AD group in the Key Vault.
|
|
190
|
+
*
|
|
191
|
+
* @param azureAdGroupId - The Azure Active Directory group ID that will receive the custom access.
|
|
192
|
+
* @param options - Custom access options specifying various permissions for secrets, keys, certificates, and storage.
|
|
193
|
+
*/
|
|
194
|
+
grantCustomAccess(azureAdGroupId, options) {
|
|
195
|
+
const policyProps = {
|
|
196
|
+
keyVaultId: this,
|
|
197
|
+
tenantId: this.props.tenantId,
|
|
198
|
+
objectId: azureAdGroupId,
|
|
199
|
+
...options,
|
|
200
|
+
};
|
|
201
|
+
const policy = new policy_1.AccessPolicy(this, `kv_custom_policy_access_${azureAdGroupId}`, policyProps);
|
|
202
|
+
this.accessPolicies.push(policy);
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Creates a new secret within the Azure Key Vault.
|
|
206
|
+
*
|
|
207
|
+
* This method facilitates the storage of sensitive information in the form of a secret within the Key Vault.
|
|
208
|
+
* Secrets are protected items such as passwords, database connection strings, or any other piece of information
|
|
209
|
+
* that needs to be securely stored and accessed. This method allows setting additional properties such as
|
|
210
|
+
* expiration date and content type for better management and compliance.
|
|
211
|
+
*
|
|
212
|
+
* @param keyVaultSecretName - The unique name for the secret within the Key Vault.
|
|
213
|
+
* @param secretValue - The sensitive information or data that needs to be securely stored as a secret.
|
|
214
|
+
* @param expirationDate - Optional. The expiration date of the secret in ISO 8601 format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ).
|
|
215
|
+
* If provided, the secret will no longer be valid after this date.
|
|
216
|
+
* @param contentType - Optional. A description of the type of information the secret contains (e.g., 'password', 'connectionString').
|
|
217
|
+
* This can be used by applications to handle the secret appropriately.
|
|
218
|
+
*
|
|
219
|
+
* Example usage:
|
|
220
|
+
* ```typescript
|
|
221
|
+
* vault.addSecret(
|
|
222
|
+
* 'myDatabasePassword',
|
|
223
|
+
* 'p@ssw0rd123!',
|
|
224
|
+
* '2030-01-01',
|
|
225
|
+
* 'databasePassword'
|
|
226
|
+
* );
|
|
227
|
+
* ```
|
|
228
|
+
* This method does not return a value. It creates a secret within the Key Vault with the specified properties.
|
|
229
|
+
*/
|
|
230
|
+
addSecret(keyVaultSecretName, secretValue, expirationDate, contentType) {
|
|
231
|
+
const secretProps = {
|
|
232
|
+
keyVaultId: this,
|
|
233
|
+
name: keyVaultSecretName,
|
|
234
|
+
value: secretValue,
|
|
235
|
+
expirationDate: expirationDate,
|
|
236
|
+
contentType: contentType,
|
|
237
|
+
accessPolicies: this.accessPolicies,
|
|
238
|
+
};
|
|
239
|
+
new secret_1.Secret(this, keyVaultSecretName, secretProps);
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Creates an RSA cryptographic key within the Azure Key Vault.
|
|
243
|
+
*
|
|
244
|
+
* This method facilitates the creation of an RSA key, which is useful for a variety of cryptographic operations such as
|
|
245
|
+
* encryption, decryption, digital signature verification, and more. The RSA key created by this method is configurable
|
|
246
|
+
* with an optional expiration date and a default key size of 2048 bits. The key operations allowed include decryption,
|
|
247
|
+
* encryption, signing, verifying signatures, and key wrapping/unwrapping.
|
|
248
|
+
*
|
|
249
|
+
* @param keyVaultKeyName - The unique name for the RSA key within the Key Vault.
|
|
250
|
+
* @param expirationDate - Optional. The expiration date of the key in ISO 8601 format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ).
|
|
251
|
+
* If provided, the key will no longer be valid after this date.
|
|
252
|
+
* @returns A KeyVaultKey object representing the newly created RSA key within the vault.
|
|
253
|
+
*
|
|
254
|
+
* Example usage:
|
|
255
|
+
* ```typescript
|
|
256
|
+
* const rsaKey = vault.addRSAKey(
|
|
257
|
+
* 'myRSAKey',
|
|
258
|
+
* '2030-01-01'
|
|
259
|
+
* );
|
|
260
|
+
* ```
|
|
261
|
+
* This method returns the created KeyVaultKey object, allowing further operations or references to the key.
|
|
262
|
+
*/
|
|
263
|
+
addRSAKey(keyVaultKeyName, expirationDate) {
|
|
264
|
+
const keyProps = {
|
|
265
|
+
keyVaultId: this,
|
|
266
|
+
name: keyVaultKeyName,
|
|
267
|
+
keyType: "RSA",
|
|
268
|
+
keySize: 2048,
|
|
269
|
+
keyOpts: ["decrypt", "encrypt", "sign", "unwrapKey", "verify", "wrapKey"],
|
|
270
|
+
expires: expirationDate,
|
|
271
|
+
accessPolicies: this.accessPolicies,
|
|
272
|
+
};
|
|
273
|
+
const key = new key_1.Key(this, keyVaultKeyName, keyProps);
|
|
274
|
+
return key.vaultKey;
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Creates a cryptographic key within the Azure Key Vault.
|
|
278
|
+
*
|
|
279
|
+
* This method allows the creation of a cryptographic key of specified type and size within the Key Vault. The key can be
|
|
280
|
+
* configured with specific operations it can perform, such as encryption, decryption, signing, etc. An optional expiration
|
|
281
|
+
* date can also be set to control the key's lifecycle. This method is flexible, supporting various key types and sizes,
|
|
282
|
+
* making it suitable for a wide range of cryptographic needs.
|
|
283
|
+
*
|
|
284
|
+
* @param keyVaultKeyName - The unique name for the cryptographic key within the Key Vault.
|
|
285
|
+
* @param keyType - The type of cryptographic key to create (e.g., 'RSA', 'EC', 'oct-HSM').
|
|
286
|
+
* @param keySize - The size of the cryptographic key in bits (e.g., 2048, 3072, 4096 for RSA).
|
|
287
|
+
* @param keyOpts - A list of cryptographic operations that the key is allowed to perform. Possible values might include
|
|
288
|
+
* 'encrypt', 'decrypt', 'sign', 'verify', 'wrapKey', 'unwrapKey'.
|
|
289
|
+
* @param expirationDate - Optional. The expiration date of the key in ISO 8601 format (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ).
|
|
290
|
+
* If provided, the key will no longer be valid after this date, aligning with best practices for key management.
|
|
291
|
+
* @returns A KeyVaultKey object representing the newly created cryptographic key within the vault.
|
|
292
|
+
*
|
|
293
|
+
* Example usage:
|
|
294
|
+
* ```typescript
|
|
295
|
+
* const myKey = vault.addKey(
|
|
296
|
+
* 'myKey',
|
|
297
|
+
* 'RSA',
|
|
298
|
+
* 2048,
|
|
299
|
+
* ['encrypt', 'decrypt', 'sign', 'verify'],
|
|
300
|
+
* '2030-12-31'
|
|
301
|
+
* );
|
|
302
|
+
* ```
|
|
303
|
+
* This method returns the created KeyVaultKey object, enabling immediate use within the application for cryptographic operations.
|
|
304
|
+
*/
|
|
305
|
+
addKey(keyVaultKeyName, keyType, keySize, keyOpts, expirationDate) {
|
|
306
|
+
const keyProps = {
|
|
307
|
+
keyVaultId: this,
|
|
308
|
+
name: keyVaultKeyName,
|
|
309
|
+
keyType: keyType,
|
|
310
|
+
keySize: keySize,
|
|
311
|
+
keyOpts: keyOpts,
|
|
312
|
+
expires: expirationDate,
|
|
313
|
+
accessPolicies: this.accessPolicies,
|
|
314
|
+
};
|
|
315
|
+
const key = new key_1.Key(this, keyVaultKeyName, keyProps);
|
|
316
|
+
return key.vaultKey;
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Creates a self-signed certificate within the Azure Key Vault.
|
|
320
|
+
*
|
|
321
|
+
* This method facilitates the creation of a self-signed certificate, which is a digital certificate that is signed by
|
|
322
|
+
* its own creator rather than a trusted authority. Self-signed certificates can be useful for testing, internal
|
|
323
|
+
* communications, or any scenario where public trust is not required. The method allows specifying subject details,
|
|
324
|
+
* DNS names for the certificate, and managing its lifecycle with action types and expiry.
|
|
325
|
+
*
|
|
326
|
+
* @param certName - The unique name for the certificate within the Key Vault.
|
|
327
|
+
* @param subject - The subject name of the certificate, typically formatted as an X.500 Distinguished Name (e.g., "CN=example.com").
|
|
328
|
+
* @param dnsNames - An array of DNS names that should be associated with this certificate. This is useful for certificates
|
|
329
|
+
* that need to be valid for multiple hostnames.
|
|
330
|
+
* @param actionType - Optional. Specifies the action to be performed with the certificate, such as 'create' or 'renew'.
|
|
331
|
+
* @param daysBeforeExpiry - Optional. Number of days before expiry when an action should be taken, useful for auto-renewal scenarios.
|
|
332
|
+
* @returns A KeyVaultCertificate object representing the newly created self-signed certificate.
|
|
333
|
+
*
|
|
334
|
+
* Example usage:
|
|
335
|
+
* ```typescript
|
|
336
|
+
* const myCertificate = vault.addSelfSignedCert(
|
|
337
|
+
* 'myCert',
|
|
338
|
+
* 'CN=mydomain.com',
|
|
339
|
+
* ['mydomain.com', 'www.mydomain.com'],
|
|
340
|
+
* 'create',
|
|
341
|
+
* 30
|
|
342
|
+
* );
|
|
343
|
+
* ```
|
|
344
|
+
* This method returns the KeyVaultCertificate object, enabling it to be used immediately within the application or stored for future use.
|
|
345
|
+
*/
|
|
346
|
+
addSelfSignedCert(certName, subject, dnsNames, actionType, daysBeforeExpiry) {
|
|
347
|
+
const keyProps = {
|
|
348
|
+
keyVaultId: this,
|
|
349
|
+
name: certName,
|
|
350
|
+
subject: subject,
|
|
351
|
+
dnsNames: dnsNames,
|
|
352
|
+
actionType: actionType,
|
|
353
|
+
daysBeforeExpiry: daysBeforeExpiry,
|
|
354
|
+
accessPolicies: this.accessPolicies,
|
|
355
|
+
};
|
|
356
|
+
const cert = new certificate_1.SelfSignedCertificate(this, certName, keyProps);
|
|
357
|
+
return cert.certificate;
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* Adds a certificate issuer to the Azure Key Vault.
|
|
361
|
+
*
|
|
362
|
+
* This method configures a certificate issuer within the Key Vault, allowing the Key Vault to issue certificates
|
|
363
|
+
* through external providers. Configuring an issuer is essential for enabling automated certificate management
|
|
364
|
+
* processes, such as issuance and renewal, directly through the Key Vault with a specified Certificate Authority (CA).
|
|
365
|
+
*
|
|
366
|
+
* @param name - The unique name for the certificate issuer within the Key Vault.
|
|
367
|
+
* @param provider - The name of the external provider that will issue the certificates, such as 'DigiCert' or 'GlobalSign'.
|
|
368
|
+
*
|
|
369
|
+
* Example usage:
|
|
370
|
+
* ```typescript
|
|
371
|
+
* vault.addCertIssuer(
|
|
372
|
+
* 'myCertIssuer',
|
|
373
|
+
* 'DigiCert'
|
|
374
|
+
* );
|
|
375
|
+
* ```
|
|
376
|
+
* This method configures a certificate issuer but does not return any value. The issuer details, including provider name
|
|
377
|
+
* and any necessary credentials (managed externally or through additional method parameters), are set up in the Key Vault
|
|
378
|
+
* for future certificate operations.
|
|
379
|
+
*/
|
|
380
|
+
addCertIssuer(name, provider) {
|
|
381
|
+
new certificate_1.CertificateIssuer(this, name, {
|
|
382
|
+
name: name,
|
|
383
|
+
providerName: provider,
|
|
384
|
+
keyVaultId: this,
|
|
385
|
+
accessPolicies: this.accessPolicies,
|
|
386
|
+
});
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
exports.Vault = Vault;
|
|
390
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
391
|
+
Vault[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_keyvault.Vault", version: "0.0.3-pre.10" };
|
|
392
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmF1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUta2V5dmF1bHQvbGliL3ZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscUVBRytDO0FBSy9DLCtCQUErQjtBQUUvQiwrQ0FJdUI7QUFDdkIsK0JBQXNDO0FBQ3RDLHFDQUEyRDtBQUMzRCxxQ0FBK0M7QUFDL0MsOENBQXFEO0FBNEVyRCxNQUFhLEtBQU0sU0FBUSxtQkFBYTtJQU90Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXlCRztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUI7UUFDekQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQTdCWCxtQkFBYyxHQUFtQixFQUFFLENBQUM7UUErQjFDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUV6Qyx5QkFBeUI7UUFDekIsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUM7UUFDdEQsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxVQUFVLENBQUM7UUFDcEMsTUFBTSx1QkFBdUIsR0FBRyxLQUFLLENBQUMsdUJBQXVCLElBQUksRUFBRSxDQUFDO1FBRXBFLE1BQU0sZUFBZSxHQUFHLElBQUksb0JBQVEsQ0FBQyxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQ3RELElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFDeEIsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJO1lBQzNDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixPQUFPLEVBQUUsR0FBRztZQUNaLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUN4QixXQUFXLEVB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QUFjLEVBQUUsSUFBSSxDQUFDLGNBQWM7U0FDcEMsQ0FBQztRQUNGLE1BQU0sSUFBSSxHQUFHLElBQUksbUNBQXFCLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNqRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQW9CRztJQUNJLGFBQWEsQ0FBQyxJQUFZLEVBQUUsUUFBZ0I7UUFDakQsSUFBSSwrQkFBaUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ2hDLElBQUksRUFBRSxJQUFJO1lBQ1YsWUFBWSxFQUFFLFFBQVE7WUFDdEIsVUFBVSxFQUFFLElBQUk7WUFDaEIsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjO1NBQ3BDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBbmRILHNCQW9kQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEtleVZhdWx0LFxuICBLZXlWYXVsdE5ldHdvcmtBY2xzLFxufSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL2tleS12YXVsdFwiO1xuaW1wb3J0IHsgS2V5VmF1bHRDZXJ0aWZpY2F0ZSB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIva2V5LXZhdWx0LWNlcnRpZmljYXRlXCI7IC8vIEFkanVzdCB0aGUgaW1wb3J0IHBhdGggYmFzZWQgb24gdGhlIGFjdHVhbCBtb2R1bGUgbG9jYXRpb24uXG5pbXBvcnQgeyBLZXlWYXVsdEtleSB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIva2V5LXZhdWx0LWtleVwiO1xuaW1wb3J0IHsgUmVzb3VyY2VHcm91cCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvcmVzb3VyY2UtZ3JvdXBcIjtcblxuaW1wb3J0ICogYXMgY2RrdGYgZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgQ2VydGlmaWNhdGVJc3N1ZXIsXG4gIFNlbGZTaWduZWRDZXJ0aWZpY2F0ZSxcbiAgU2VsZlNpZ25lZENlcnRpZmljYXRlUHJvcHMsXG59IGZyb20gXCIuL2NlcnRpZmljYXRlXCI7XG5pbXBvcnQgeyBLZXksIEtleVByb3BzIH0gZnJvbSBcIi4va2V5XCI7XG5pbXBvcnQgeyBBY2Nlc3NQb2xpY3ksIEFjY2Vzc1BvbGljeVByb3BzIH0gZnJvbSBcIi4vcG9saWN5XCI7XG5pbXBvcnQgeyBTZWNyZXQsIFNlY3JldFByb3BzIH0gZnJvbSBcIi4vc2VjcmV0XCI7XG5pbXBvcnQgeyBBenVyZVJlc291cmNlIH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmF1bHRQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgS2V5IFZhdWx0LlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEF6dXJlIFJlZ2lvbiB0byBkZXBsb3kgdGhlIEtleSBWYXVsdC5cbiAgICovXG4gIHJlYWRvbmx5IGxvY2F0aW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgQXp1cmUgUmVzb3VyY2UgR3JvdXAuXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZUdyb3VwOiBSZXNvdXJjZUdyb3VwO1xuICAvKipcbiAgICogVGhlIHRhZ3MgdG8gYXNzaWduIHRvIHRoZSBLZXkgVmF1bHQuXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgLyoqXG4gICAqIFRoZSB0YWdzIHRvIGFzc2lnbiB0byB0aGUgS2V5IFZhdWx0LlxuICAgKi9cbiAgcmVhZG9ubHkgc2t1Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIE5hbWUgb2YgdGhlIFNLVSB1c2VkIGZvciB0aGlzIEtleSBWYXVsdC4gUG9zc2libGUgdmFsdWVzIGFyZSBzdGFuZGFyZCBhbmQgcHJlbWl1bS5cbiAgICovXG4gIHJlYWRvbmx5IHRlbmFudElkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgQXp1cmUgQWN0aXZlIERpcmVjdG9yeSB0ZW5hbnQgSUQgdGhhdCBzaG91bGQgYmUgdXNlZCBmb3IgYXV0aGVudGljYXRpbmcgcmVxdWVzdHMgdG8gdGhlIGtleSB2YXVsdC5cbiAgICovXG4gIHJlYWRvbmx5IG5ldHdvcmtBY2xzPzogS2V5VmF1bHROZXR3b3JrQWNscztcbiAgLyoqXG4gICAqIEEgbWFwIG9mIElQIG5ldHdvcmsgQUNMIHJ1bGVzLiBUaGUga2V5IGlzIHRoZSBJUCBvciBJUCByYW5nZSBpbiBDSURSIG5vdGF0aW9uLlxuICAgKiBUaGUgdmFsdWUgaXMgYSBkZXNjcmlwdGlvbiBvZiB0aGF0IElQIHJhbmdlLlxuICAgKi9cbiAgcmVhZG9ubHkgcHVyZ2VQcm90ZWN0aW9uPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqICBTcGVjaWZpZXMgd2hldGhlciBwcm90ZWN0aW9uIGFnYWluc3QgcHVyZ2UgaXMgZW5hYmxlZCBmb3IgdGhpcyBLZXkgVmF1bHQuXG4gICAqIFNldHRpbmcgdGhpcyBwcm9wZXJ0eSB0byB0cnVlIGFjdGl2YXRlcyBwcm90ZWN0aW9uIGFnYWluc3QgZGVsZXRpb24gb2YgYW55IGFjdGl2ZSBrZXksIHNlY3JldCBvciBjZXJ0aWZpY2F0ZSBpbiB0aGUgdmF1bHQuIFRoZSBzZXR0aW5nIGlzIGVmZmVjdGl2ZSBvbmx5IGlmIHNvZnQgZGVsZXRlIGlzIGFsc28gZW5hYmxlZC4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UuXG4gICAqIE9uY2UgYWN0aXZhdGVkLCB0aGUgcHJvcGVydHkgY2Fubm90IGJlIHJldmVydGVkIHRvIGZhbHNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc29mdERlbGV0ZVJldGVudGlvbkRheXM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGRheXMgdGhhdCBpdGVtcyBzaG91bGQgYmUgcmV0YWluZWQgZm9yIG9uY2Ugc29mdC1kZWxldGVkLlxuICAgKi9cbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBncmFudGluZyBjdXN0b20gYWNjZXNzIHBlcm1pc3Npb25zIGluIEF6dXJlIEtleSBWYXVsdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHcmFudEN1c3RvbUFjY2Vzc09wdGlvbnMge1xuICAvKipcbiAgICogT3B0aW9uYWw6IEEgbGlzdCBvZiBwZXJtaXNzaW9ucyB0byBncmFudCBmb3Igc2VjcmV0cyBpbiB0aGUgS2V5IFZhdWx0LlxuICAgKiBFeGFtcGxlIHBlcm1pc3Npb25zIGluY2x1ZGUgJ2dldCcsICdsaXN0JywgJ3NldCcsICdkZWxldGUnLCBldGMuXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRQZXJtaXNzaW9ucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbDogQSBsaXN0IG9mIHBlcm1pc3Npb25zIHRvIGdyYW50IGZvciBjZXJ0aWZpY2F0ZXMgaW4gdGhlIEtleSBWYXVsdC5cbiAgICogRXhhbXBsZSBwZXJtaXNzaW9ucyBpbmNsdWRlICdnZXQnLCAnbGlzdCcsICdjcmVhdGUnLCAnZGVsZXRlJywgZXRjLlxuICAgKi9cbiAgcmVhZG9ubHkgY2VydGlmaWNhdGVQZXJtaXNzaW9ucz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbDogQSBsaXN0IG9mIHBlcm1pc3Npb25zIHRvIGdyYW50IGZvciBrZXlzIGluIHRoZSBLZXkgVmF1bHQuXG4gICAqIEV4YW1wbGUgcGVybWlzc2lvbnMgaW5jbHVkZSAnZW5jcnlwdCcsICdkZWNyeXB0JywgJ3dyYXBLZXknLCAndW53cmFwS2V5JywgZXRjLlxuICAgKi9cbiAgcmVhZG9ubHkga2V5UGVybWlzc2lvbnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogT3B0aW9uYWw6IEEgbGlzdCBvZiBwZXJtaXNzaW9ucyB0byBncmFudCBmb3Igc3RvcmFnZSBhY2NvdW50cyBpbiB0aGUgS2V5IFZhdWx0LlxuICAgKiBFeGFtcGxlIHBlcm1pc3Npb25zIGluY2x1ZGUgJ2dldCcsICdsaXN0JywgJ2RlbGV0ZScsICdzZXQnLCAndXBkYXRlJywgZXRjLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RvcmFnZVBlcm1pc3Npb25zPzogc3RyaW5nW107XG59XG5cbmV4cG9ydCBjbGFzcyBWYXVsdCBleHRlbmRzIEF6dXJlUmVzb3VyY2Uge1xuICByZWFkb25seSBwcm9wczogVmF1bHRQcm9wcztcbiAgcHVibGljIGtleVZhdWx0OiBLZXlWYXVsdDtcbiAgcHVibGljIHJlc291cmNlR3JvdXA6IFJlc291cmNlR3JvdXA7XG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuICBwcml2YXRlIGFjY2Vzc1BvbGljaWVzOiBBY2Nlc3NQb2xpY3lbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgbmV3IEF6dXJlIEtleSBWYXVsdCByZXNvdXJjZS5cbiAgICpcbiAgICogVGhpcyBjbGFzcyBjcmVhdGVzIGFuZCBjb25maWd1cmVzIGFuIEF6dXJlIEtleSBWYXVsdCwgYSBzZWN1cmUgc3RvcmUgZm9yIG1hbmFnaW5nIHNlY3JldHMsIGtleXMsIGNlcnRpZmljYXRlcywgYW5kIG90aGVyIHNlbnNpdGl2ZSBkYXRhLlxuICAgKiBJdCBzdXBwb3J0cyBhZHZhbmNlZCBjb25maWd1cmF0aW9ucyBzdWNoIGFzIGFjY2VzcyBwb2xpY2llcywgbmV0d29yayBydWxlcywgYW5kIGRhdGEgcmV0ZW50aW9uIHBvbGljaWVzLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0LCB1c3VhbGx5IHJlcHJlc2VudGluZyB0aGUgQ2xvdWQgRGV2ZWxvcG1lbnQgS2l0IChDREspIHN0YWNrLlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgaW5zdGFuY2Ugb2YgdGhlIEtleSBWYXVsdC5cbiAgICogQHBhcmFtIHByb3BzIC0gVGhlIHByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIHRoZSBLZXkgVmF1bHQgYXMgZGVmaW5lZCBpbiBWYXVsdFByb3BzLiBUaGVzZSBpbmNsdWRlIHNldHRpbmdzIGZvciBsb2NhdGlvbiwgU0tVLCB0ZW5hbnQgSUQsIGV0Yy5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBuZXcgVmF1bHQodGhpcywgJ015S2V5VmF1bHQnLCB7XG4gICAqICAgbmFtZTogJ215U2VjdXJlVmF1bHQnLFxuICAgKiAgIGxvY2F0aW9uOiAnRWFzdCBVUycsXG4gICAqICAgcmVzb3VyY2VHcm91cDogbXlSZXNvdXJjZUdyb3VwLFxuICAgKiAgIHNrdTogJ3ByZW1pdW0nLFxuICAgKiAgIHRlbmFudElkOiAnbXktdGVuYW50LWlkJyxcbiAgICogICBzb2Z0RGVsZXRlUmV0ZW50aW9uRGF5czogOTAsXG4gICAqICAgcHVyZ2VQcm90ZWN0aW9uOiB0cnVlLFxuICAgKiAgIHRhZ3M6IHtcbiAgICogICAgIHByb2plY3Q6ICdNeSBBcHBsaWNhdGlvbidcbiAgICogICB9XG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBWYXVsdFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgICB0aGlzLnJlc291cmNlR3JvdXAgPSBwcm9wcy5yZXNvdXJjZUdyb3VwO1xuXG4gICAgLy8gUHJvdmlkZSBkZWZhdWx0IHZhbHVlc1xuICAgIGNvbnN0IHB1cmdlUHJvdGVjdGlvbiA9IHByb3BzLnB1cmdlUHJvdGVjdGlvbiA/PyB0cnVlO1xuICAgIGNvbnN0IHNrdSA9IHByb3BzLnNrdSA/PyBcInN0YW5kYXJkXCI7XG4gICAgY29uc3Qgc29mdERlbGV0ZVJldGVudGlvbkRheXMgPSBwcm9wcy5zb2Z0RGVsZXRlUmV0ZW50aW9uRGF5cyA/PyA5MDtcblxuICAgIGNvbnN0IGF6dXJlcm1LZXlWYXVsdCA9IG5ldyBLZXlWYXVsdCh0aGlzLCBcImtleV92YXVsdFwiLCB7XG4gICAgICBuYW1lOiBwcm9wcy5uYW1lLFxuICAgICAgbG9jYXRpb246IHByb3BzLmxvY2F0aW9uLFxuICAgICAgcmVzb3VyY2VHcm91cE5hbWU6IHByb3BzLnJlc291cmNlR3JvdXAubmFtZSxcbiAgICAgIHRhZ3M6IHByb3BzLnRhZ3MsXG4gICAgICBza3VOYW1lOiBza3UsXG4gICAgICB0ZW5hbnRJZDogcHJvcHMudGVuYW50SWQsXG4gICAgICBuZXR3b3JrQWNsczogcHJvcHMubmV0d29ya0FjbHMsXG4gICAgICBwdXJnZVByb3RlY3Rpb25FbmFibGVkOiBwdXJnZVByb3RlY3Rpb24sXG4gICAgICBzb2Z0RGVsZXRlUmV0ZW50aW9uRGF5czogc29mdERlbGV0ZVJldGVudGlvbkRheXMsXG4gICAgfSk7XG4gICAgdGhpcy5pZCA9IGF6dXJlcm1LZXlWYXVsdC5pZDtcbiAgICB0aGlzLmtleVZhdWx0ID0gYXp1cmVybUtleVZhdWx0O1xuXG4gICAgLy8gVGVycmFmb3JtIE91dHB1dHNcbiAgICBjb25zdCBjZGt0ZlRlcnJhZm9ybU91dHB1dEtleVZhdWx0aWQgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KFxuICAgICAgdGhpcyxcbiAgICAgIFwiaWRcIixcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IGF6dXJlcm1LZXlWYXVsdC5pZCxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIC8qVGhpcyBhbGxvd3MgdGhlIFRlcnJhZm9ybSByZXNvdXJjZSBuYW1lIHRvIG1hdGNoIHRoZSBvcmlnaW5hbCBuYW1lLiBZb3UgY2FuIHJlbW92ZSB0aGUgY2FsbCBpZiB5b3UgZG9uJ3QgbmVlZCB0aGVtIHRvIG1hdGNoLiovXG4gICAgY2RrdGZUZXJyYWZvcm1PdXRwdXRLZXlWYXVsdGlkLm92ZXJyaWRlTG9naWNhbElkKFwiaWRcIik7XG5cbiAgICBjb25zdCBjZGt0ZlRlcnJhZm9ybU91dHB1dEtleVZhdWx0bmFtZSA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQoXG4gICAgICB0aGlzLFxuICAgICAgXCJrZXlfdmF1bHRfbmFtZVwiLFxuICAgICAge1xuICAgICAgICB2YWx1ZTogYXp1cmVybUtleVZhdWx0Lm5hbWUsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICAvKlRoaXMgYWxsb3dzIHRoZSBUZXJyYWZvcm0gcmVzb3VyY2UgbmFtZSB0byBtYXRjaCB0aGUgb3JpZ2luYWwgbmFtZS4gWW91IGNhbiByZW1vdmUgdGhlIGNhbGwgaWYgeW91IGRvbid0IG5lZWQgdGhlbSB0byBtYXRjaC4qL1xuICAgIGNka3RmVGVycmFmb3JtT3V0cHV0S2V5VmF1bHRuYW1lLm92ZXJyaWRlTG9naWNhbElkKFwia2V5X3ZhdWx0X25hbWVcIik7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHJlYWQtb25seSBhY2Nlc3MgdG8gc2VjcmV0cyBzdG9yZWQgaW4gdGhlIEtleSBWYXVsdCB0byBhIHNwZWNpZmllZCBBenVyZSBBRCBncm91cC5cbiAgICpcbiAgICogQHBhcmFtIGF6dXJlQWRHcm91cElkIC0gVGhlIEF6dXJlIEFjdGl2ZSBEaXJlY3RvcnkgZ3JvdXAgSUQgdGhhdCB3aWxsIHJlY2VpdmUgcmVhZCBhY2Nlc3MgdG8gc2VjcmV0cy5cbiAgICovXG4gIHB1YmxpYyBncmFudFNlY3JldFJlYWRlckFjY2VzcyhhenVyZUFkR3JvdXBJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgcG9saWN5UHJvcHM6IEFjY2Vzc1BvbGljeVByb3BzID0ge1xuICAgICAga2V5VmF1bHRJZDogdGhpcyxcbiAgICAgIHRlbmFudElkOiB0aGlzLnByb3BzLnRlbmFudElkLFxuICAgICAgb2JqZWN0SWQ6IGF6dXJlQWRHcm91cElkLFxuICAgICAgc2VjcmV0UGVybWlzc2lvbnM6IFtcIkdldFwiLCBcIkxpc3RcIl0sXG4gICAgfTtcblxuICAgIGNvbnN0IHBvbGljeSA9IG5ldyBBY2Nlc3NQb2xpY3koXG4gICAgICB0aGlzLFxuICAgICAgYGt2X3NlY3JldF9yZWFkZXJfYWNjZXNzXyR7YXp1cmVBZEdyb3VwSWR9YCxcbiAgICAgIHBvbGljeVByb3BzLFxuICAgICk7XG4gICAgdGhpcy5hY2Nlc3NQb2xpY2llcy5wdXNoKHBvbGljeSk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIGFkbWluaXN0cmF0aXZlIGFjY2VzcyB0byBzZWNyZXRzIHN0b3JlZCBpbiB0aGUgS2V5IFZhdWx0IHRvIGEgc3BlY2lmaWVkIEF6dXJlIEFEIGdyb3VwLlxuICAgKlxuICAgKiBAcGFyYW0gYXp1cmVBZEdyb3VwSWQgLSBUaGUgQXp1cmUgQWN0aXZlIERpcmVjdG9yeSBncm91cCBJRCB0aGF0IHdpbGwgcmVjZWl2ZSBhZG1pbmlzdHJhdGl2ZSBhY2Nlc3MgdG8gc2VjcmV0cy5cbiAgICovXG4gIHB1YmxpYyBncmFudFNlY3JldEFkbWluQWNjZXNzKGF6dXJlQWRHcm91cElkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwb2xpY3lQcm9wczogQWNjZXNzUG9saWN5UHJvcHMgPSB7XG4gICAgICBrZXlWYXVsdElkOiB0aGlzLFxuICAgICAgdGVuYW50SWQ6IHRoaXMucHJvcHMudGVuYW50SWQsXG4gICAgICBvYmplY3RJZDogYXp1cmVBZEdyb3VwSWQsXG4gICAgICBzZWNyZXRQZXJtaXNzaW9uczogW1xuICAgICAgICBcIkdldFwiLFxuICAgICAgICBcIkxpc3RcIixcbiAgICAgICAgXCJTZXRcIixcbiAgICAgICAgXCJEZWxldGVcIixcbiAgICAgICAgXCJCYWNrdXBcIixcbiAgICAgICAgXCJSZXN0b3JlXCIsXG4gICAgICAgIFwiUmVjb3ZlclwiLFxuICAgICAgXSxcbiAgICB9O1xuXG4gICAgY29uc3QgcG9saWN5ID0gbmV3IEFjY2Vzc1BvbGljeShcbiAgICAgIHRoaXMsXG4gICAgICBga3Zfc2VjcmV0X2FkbWluX2FjY2Vzc18ke2F6dXJlQWRHcm91cElkfWAsXG4gICAgICBwb2xpY3lQcm9wcyxcbiAgICApO1xuICAgIHRoaXMuYWNjZXNzUG9saWNpZXMucHVzaChwb2xpY3kpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBhZG1pbmlzdHJhdGl2ZSBhY2Nlc3MgdG8gY2VydGlmaWNhdGVzIHN0b3JlZCBpbiB0aGUgS2V5IFZhdWx0IHRvIGEgc3BlY2lmaWVkIEF6dXJlIEFEIGdyb3VwLlxuICAgKlxuICAgKiBAcGFyYW0gYXp1cmVBZEdyb3VwSWQgLSBUaGUgQXp1cmUgQWN0aXZlIERpcmVjdG9yeSBncm91cCBJRCB0aGF0IHdpbGwgcmVjZWl2ZSBhZG1pbmlzdHJhdGl2ZSBhY2Nlc3MgdG8gY2VydGlmaWNhdGVzLlxuICAgKi9cbiAgcHVibGljIGdyYW50Q2VydEFkbWluQWNjZXNzKGF6dXJlQWRHcm91cElkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwb2xpY3lQcm9wczogQWNjZXNzUG9saWN5UHJvcHMgPSB7XG4gICAgICBrZXlWYXVsdElkOiB0aGlzLFxuICAgICAgdGVuYW50SWQ6IHRoaXMucHJvcHMudGVuYW50SWQsXG4gICAgICBvYmplY3RJZDogYXp1cmVBZEdyb3VwSWQsXG4gICAgICBjZXJ0aWZpY2F0ZVBlcm1pc3Npb25zOiBbXG4gICAgICAgIFwiR2V0XCIsXG4gICAgICAgIFwiTGlzdFwiLFxuICAgICAgICBcIlNldFwiLFxuICAgICAgICBcIkRlbGV0ZVwiLFxuICAgICAgICBcIkJhY2t1cFwiLFxuICAgICAgICBcIlJlc3RvcmVcIixcbiAgICAgICAgXCJSZWNvdmVyXCIsXG4gICAgICBdLFxuICAgIH07XG5cbiAgICBjb25zdCBwb2xpY3kgPSBuZXcgQWNjZXNzUG9saWN5KFxuICAgICAgdGhpcyxcbiAgICAgIGBrdl9jZXJ0X2FkbWluX2FjY2Vzc18ke2F6dXJlQWRHcm91cElkfWAsXG4gICAgICBwb2xpY3lQcm9wcyxcbiAgICApO1xuICAgIHRoaXMuYWNjZXNzUG9saWNpZXMucHVzaChwb2xpY3kpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyByZWFkLW9ubHkgYWNjZXNzIHRvIGNlcnRpZmljYXRlcyBzdG9yZWQgaW4gdGhlIEtleSBWYXVsdCB0byBhIHNwZWNpZmllZCBBenVyZSBBRCBncm91cC5cbiAgICpcbiAgICogQHBhcmFtIGF6dXJlQWRHcm91cElkIC0gVGhlIEF6dXJlIEFjdGl2ZSBEaXJlY3RvcnkgZ3JvdXAgSUQgdGhhdCB3aWxsIHJlY2VpdmUgcmVhZCBhY2Nlc3MgdG8gY2VydGlmaWNhdGVzLlxuICAgKi9cbiAgcHVibGljIGdyYW50Q2VydFJlYWRlckFjY2VzcyhhenVyZUFkR3JvdXBJZDogc3RyaW5nKSB7XG4gICAgY29uc3QgcG9saWN5UHJvcHM6IEFjY2Vzc1BvbGljeVByb3BzID0ge1xuICAgICAga2V5VmF1bHRJZDogdGhpcyxcbiAgICAgIHRlbmFudElkOiB0aGlzLnByb3BzLnRlbmFudElkLFxuICAgICAgb2JqZWN0SWQ6IGF6dXJlQWRHcm91cElkLFxuICAgICAgY2VydGlmaWNhdGVQZXJtaXNzaW9uczogW1wiR2V0XCIsIFwiTGlzdFwiXSxcbiAgICB9O1xuXG4gICAgY29uc3QgcG9saWN5ID0gbmV3IEFjY2Vzc1BvbGljeShcbiAgICAgIHRoaXMsXG4gICAgICBga3ZfY2VydF9yZWFkZXJfYWNjZXNzXyR7YXp1cmVBZEdyb3VwSWR9YCxcbiAgICAgIHBvbGljeVByb3BzLFxuICAgICk7XG4gICAgdGhpcy5hY2Nlc3NQb2xpY2llcy5wdXNoKHBvbGljeSk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIGFkbWluaXN0cmF0aXZlIGFjY2VzcyB0byBrZXlzIHN0b3JlZCBpbiB0aGUgS2V5IFZhdWx0IHRvIGEgc3BlY2lmaWVkIEF6dXJlIEFEIGdyb3VwLlxuICAgKlxuICAgKiBAcGFyYW0gYXp1cmVBZEdyb3VwSWQgLSBUaGUgQXp1cmUgQWN0aXZlIERpcmVjdG9yeSBncm91cCBJRCB0aGF0IHdpbGwgcmVjZWl2ZSBhZG1pbmlzdHJhdGl2ZSBhY2Nlc3MgdG8ga2V5cy5cbiAgICovXG4gIHB1YmxpYyBncmFudEtleUFkbWluQWNjZXNzKGF6dXJlQWRHcm91cElkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwb2xpY3lQcm9wczogQWNjZXNzUG9saWN5UHJvcHMgPSB7XG4gICAgICBrZXlWYXVsdElkOiB0aGlzLFxuICAgICAgdGVuYW50SWQ6IHRoaXMucHJvcHMudGVuYW50SWQsXG4gICAgICBvYmplY3RJZDogYXp1cmVBZEdyb3VwSWQsXG4gICAgICBrZXlQZXJtaXNzaW9uczogW1xuICAgICAgICBcIkdldFwiLFxuICAgICAgICBcIkxpc3RcIixcbiAgICAgICAgXCJTZXRcIixcbiAgICAgICAgXCJEZWxldGVcIixcbiAgICAgICAgXCJCYWNrdXBcIixcbiAgICAgICAgXCJSZXN0b3JlXCIsXG4gICAgICAgIFwiUmVjb3ZlclwiLFxuICAgICAgXSxcbiAgICB9O1xuXG4gICAgY29uc3QgcG9saWN5ID0gbmV3IEFjY2Vzc1BvbGljeShcbiAgICAgIHRoaXMsXG4gICAgICBga3Zfa2V5X2FkbWluX2FjY2Vzc18ke2F6dXJlQWRHcm91cElkfWAsXG4gICAgICBwb2xpY3lQcm9wcyxcbiAgICApO1xuICAgIHRoaXMuYWNjZXNzUG9saWNpZXMucHVzaChwb2xpY3kpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyByZWFkLW9ubHkgYWNjZXNzIHRvIGtleXMgc3RvcmVkIGluIHRoZSBLZXkgVmF1bHQgdG8gYSBzcGVjaWZpZWQgQXp1cmUgQUQgZ3JvdXAuXG4gICAqXG4gICAqIEBwYXJhbSBhenVyZUFkR3JvdXBJZCAtIFRoZSBBenVyZSBBY3RpdmUgRGlyZWN0b3J5IGdyb3VwIElEIHRoYXQgd2lsbCByZWNlaXZlIHJlYWQgYWNjZXNzIHRvIGtleXMuXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRLZXlSZWFkZXJBY2Nlc3MoYXp1cmVBZEdyb3VwSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IHBvbGljeVByb3BzOiBBY2Nlc3NQb2xpY3lQcm9wcyA9IHtcbiAgICAgIGtleVZhdWx0SWQ6IHRoaXMsXG4gICAgICB0ZW5hbnRJZDogdGhpcy5wcm9wcy50ZW5hbnRJZCxcbiAgICAgIG9iamVjdElkOiBhenVyZUFkR3JvdXBJZCxcbiAgICAgIGtleVBlcm1pc3Npb25zOiBbXCJHZXRcIiwgXCJMaXN0XCJdLFxuICAgIH07XG5cbiAgICBjb25zdCBwb2xpY3kgPSBuZXcgQWNjZXNzUG9saWN5KFxuICAgICAgdGhpcyxcbiAgICAgIGBrdl9rZXlfcmVhZGVyX2FjY2Vzc18ke2F6dXJlQWRHcm91cElkfWAsXG4gICAgICBwb2xpY3lQcm9wcyxcbiAgICApO1xuICAgIHRoaXMuYWNjZXNzUG9saWNpZXMucHVzaChwb2xpY3kpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBjdXN0b20gYWNjZXNzIGJhc2VkIG9uIHNwZWNpZmllZCBvcHRpb25zIHRvIGFuIEF6dXJlIEFEIGdyb3VwIGluIHRoZSBLZXkgVmF1bHQuXG4gICAqXG4gICAqIEBwYXJhbSBhenVyZUFkR3JvdXBJZCAtIFRoZSBBenVyZSBBY3RpdmUgRGlyZWN0b3J5IGdyb3VwIElEIHRoYXQgd2lsbCByZWNlaXZlIHRoZSBjdXN0b20gYWNjZXNzLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIEN1c3RvbSBhY2Nlc3Mgb3B0aW9ucyBzcGVjaWZ5aW5nIHZhcmlvdXMgcGVybWlzc2lvbnMgZm9yIHNlY3JldHMsIGtleXMsIGNlcnRpZmljYXRlcywgYW5kIHN0b3JhZ2UuXG4gICAqL1xuICBwdWJsaWMgZ3JhbnRDdXN0b21BY2Nlc3MoXG4gICAgYXp1cmVBZEdyb3VwSWQ6IHN0cmluZyxcbiAgICBvcHRpb25zOiBHcmFudEN1c3RvbUFjY2Vzc09wdGlvbnMsXG4gICkge1xuICAgIGNvbnN0IHBvbGljeVByb3BzOiBBY2Nlc3NQb2xpY3lQcm9wcyA9IHtcbiAgICAgIGtleVZhdWx0SWQ6IHRoaXMsXG4gICAgICB0ZW5hbnRJZDogdGhpcy5wcm9wcy50ZW5hbnRJZCxcbiAgICAgIG9iamVjdElkOiBhenVyZUFkR3JvdXBJZCxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfTtcblxuICAgIGNvbnN0IHBvbGljeSA9IG5ldyBBY2Nlc3NQb2xpY3koXG4gICAgICB0aGlzLFxuICAgICAgYGt2X2N1c3RvbV9wb2xpY3lfYWNjZXNzXyR7YXp1cmVBZEdyb3VwSWR9YCxcbiAgICAgIHBvbGljeVByb3BzLFxuICAgICk7XG4gICAgdGhpcy5hY2Nlc3NQb2xpY2llcy5wdXNoKHBvbGljeSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBzZWNyZXQgd2l0aGluIHRoZSBBenVyZSBLZXkgVmF1bHQuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGZhY2lsaXRhdGVzIHRoZSBzdG9yYWdlIG9mIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiBpbiB0aGUgZm9ybSBvZiBhIHNlY3JldCB3aXRoaW4gdGhlIEtleSBWYXVsdC5cbiAgICogU2VjcmV0cyBhcmUgcHJvdGVjdGVkIGl0ZW1zIHN1Y2ggYXMgcGFzc3dvcmRzLCBkYXRhYmFzZSBjb25uZWN0aW9uIHN0cmluZ3MsIG9yIGFueSBvdGhlciBwaWVjZSBvZiBpbmZvcm1hdGlvblxuICAgKiB0aGF0IG5lZWRzIHRvIGJlIHNlY3VyZWx5IHN0b3JlZCBhbmQgYWNjZXNzZWQuIFRoaXMgbWV0aG9kIGFsbG93cyBzZXR0aW5nIGFkZGl0aW9uYWwgcHJvcGVydGllcyBzdWNoIGFzXG4gICAqIGV4cGlyYXRpb24gZGF0ZSBhbmQgY29udGVudCB0eXBlIGZvciBiZXR0ZXIgbWFuYWdlbWVudCBhbmQgY29tcGxpYW5jZS5cbiAgICpcbiAgICogQHBhcmFtIGtleVZhdWx0U2VjcmV0TmFtZSAtIFRoZSB1bmlxdWUgbmFtZSBmb3IgdGhlIHNlY3JldCB3aXRoaW4gdGhlIEtleSBWYXVsdC5cbiAgICogQHBhcmFtIHNlY3JldFZhbHVlIC0gVGhlIHNlbnNpdGl2ZSBpbmZvcm1hdGlvbiBvciBkYXRhIHRoYXQgbmVlZHMgdG8gYmUgc2VjdXJlbHkgc3RvcmVkIGFzIGEgc2VjcmV0LlxuICAgKiBAcGFyYW0gZXhwaXJhdGlvbkRhdGUgLSBPcHRpb25hbC4gVGhlIGV4cGlyYXRpb24gZGF0ZSBvZiB0aGUgc2VjcmV0IGluIElTTyA4NjAxIGZvcm1hdCAoWVlZWS1NTS1ERCBvciBZWVlZLU1NLUREVEhIOk1NOlNTWikuXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgIElmIHByb3ZpZGVkLCB0aGUgc2VjcmV0IHdpbGwgbm8gbG9uZ2VyIGJlIHZhbGlkIGFmdGVyIHRoaXMgZGF0ZS5cbiAgICogQHBhcmFtIGNvbnRlbnRUeXBlIC0gT3B0aW9uYWwuIEEgZGVzY3JpcHRpb24gb2YgdGhlIHR5cGUgb2YgaW5mb3JtYXRpb24gdGhlIHNlY3JldCBjb250YWlucyAoZS5nLiwgJ3Bhc3N3b3JkJywgJ2Nvbm5lY3Rpb25TdHJpbmcnKS5cbiAgICogICAgICAgICAgICAgICAgICAgICAgVGhpcyBjYW4gYmUgdXNlZCBieSBhcHBsaWNhdGlvbnMgdG8gaGFuZGxlIHRoZSBzZWNyZXQgYXBwcm9wcmlhdGVseS5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiB2YXVsdC5hZGRTZWNyZXQoXG4gICAqICAgJ215RGF0YWJhc2VQYXNzd29yZCcsXG4gICAqICAgJ3BAc3N3MHJkMTIzIScsXG4gICAqICAgJzIwMzAtMDEtMDEnLFxuICAgKiAgICdkYXRhYmFzZVBhc3N3b3JkJ1xuICAgKiApO1xuICAgKiBgYGBcbiAgICogVGhpcyBtZXRob2QgZG9lcyBub3QgcmV0dXJuIGEgdmFsdWUuIEl0IGNyZWF0ZXMgYSBzZWNyZXQgd2l0aGluIHRoZSBLZXkgVmF1bHQgd2l0aCB0aGUgc3BlY2lmaWVkIHByb3BlcnRpZXMuXG4gICAqL1xuICBwdWJsaWMgYWRkU2VjcmV0KFxuICAgIGtleVZhdWx0U2VjcmV0TmFtZTogc3RyaW5nLFxuICAgIHNlY3JldFZhbHVlOiBzdHJpbmcsXG4gICAgZXhwaXJhdGlvbkRhdGU/OiBzdHJpbmcsXG4gICAgY29udGVudFR5cGU/OiBzdHJpbmcsXG4gICkge1xuICAgIGNvbnN0IHNlY3JldFByb3BzOiBTZWNyZXRQcm9wcyA9IHtcbiAgICAgIGtleVZhdWx0SWQ6IHRoaXMsXG4gICAgICBuYW1lOiBrZXlWYXVsdFNlY3JldE5hbWUsXG4gICAgICB2YWx1ZTogc2VjcmV0VmFsdWUsXG4gICAgICBleHBpcmF0aW9uRGF0ZTogZXhwaXJhdGlvbkRhdGUsXG4gICAgICBjb250ZW50VHlwZTogY29udGVudFR5cGUsXG4gICAgICBhY2Nlc3NQb2xpY2llczogdGhpcy5hY2Nlc3NQb2xpY2llcyxcbiAgICB9O1xuXG4gICAgbmV3IFNlY3JldCh0aGlzLCBrZXlWYXVsdFNlY3JldE5hbWUsIHNlY3JldFByb3BzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIFJTQSBjcnlwdG9ncmFwaGljIGtleSB3aXRoaW4gdGhlIEF6dXJlIEtleSBWYXVsdC5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgZmFjaWxpdGF0ZXMgdGhlIGNyZWF0aW9uIG9mIGFuIFJTQSBrZXksIHdoaWNoIGlzIHVzZWZ1bCBmb3IgYSB2YXJpZXR5IG9mIGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9ucyBzdWNoIGFzXG4gICAqIGVuY3J5cHRpb24sIGRlY3J5cHRpb24sIGRpZ2l0YWwgc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiwgYW5kIG1vcmUuIFRoZSBSU0Ega2V5IGNyZWF0ZWQgYnkgdGhpcyBtZXRob2QgaXMgY29uZmlndXJhYmxlXG4gICAqIHdpdGggYW4gb3B0aW9uYWwgZXhwaXJhdGlvbiBkYXRlIGFuZCBhIGRlZmF1bHQga2V5IHNpemUgb2YgMjA0OCBiaXRzLiBUaGUga2V5IG9wZXJhdGlvbnMgYWxsb3dlZCBpbmNsdWRlIGRlY3J5cHRpb24sXG4gICAqIGVuY3J5cHRpb24sIHNpZ25pbmcsIHZlcmlmeWluZyBzaWduYXR1cmVzLCBhbmQga2V5IHdyYXBwaW5nL3Vud3JhcHBpbmcuXG4gICAqXG4gICAqIEBwYXJhbSBrZXlWYXVsdEtleU5hbWUgLSBUaGUgdW5pcXVlIG5hbWUgZm9yIHRoZSBSU0Ega2V5IHdpdGhpbiB0aGUgS2V5IFZhdWx0LlxuICAgKiBAcGFyYW0gZXhwaXJhdGlvbkRhdGUgLSBPcHRpb25hbC4gVGhlIGV4cGlyYXRpb24gZGF0ZSBvZiB0aGUga2V5IGluIElTTyA4NjAxIGZvcm1hdCAoWVlZWS1NTS1ERCBvciBZWVlZLU1NLUREVEhIOk1NOlNTWikuXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgIElmIHByb3ZpZGVkLCB0aGUga2V5IHdpbGwgbm8gbG9uZ2VyIGJlIHZhbGlkIGFmdGVyIHRoaXMgZGF0ZS5cbiAgICogQHJldHVybnMgQSBLZXlWYXVsdEtleSBvYmplY3QgcmVwcmVzZW50aW5nIHRoZSBuZXdseSBjcmVhdGVkIFJTQSBrZXkgd2l0aGluIHRoZSB2YXVsdC5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCByc2FLZXkgPSB2YXVsdC5hZGRSU0FLZXkoXG4gICAqICAgJ215UlNBS2V5JyxcbiAgICogICAnMjAzMC0wMS0wMSdcbiAgICogKTtcbiAgICogYGBgXG4gICAqIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGNyZWF0ZWQgS2V5VmF1bHRLZXkgb2JqZWN0LCBhbGxvd2luZyBmdXJ0aGVyIG9wZXJhdGlvbnMgb3IgcmVmZXJlbmNlcyB0byB0aGUga2V5LlxuICAgKi9cbiAgcHVibGljIGFkZFJTQUtleShcbiAgICBrZXlWYXVsdEtleU5hbWU6IHN0cmluZyxcbiAgICBleHBpcmF0aW9uRGF0ZT86IHN0cmluZyxcbiAgKTogS2V5VmF1bHRLZXkge1xuICAgIGNvbnN0IGtleVByb3BzOiBLZXlQcm9wcyA9IHtcbiAgICAgIGtleVZhdWx0SWQ6IHRoaXMsXG4gICAgICBuYW1lOiBrZXlWYXVsdEtleU5hbWUsXG4gICAgICBrZXlUeXBlOiBcIlJTQVwiLFxuICAgICAga2V5U2l6ZTogMjA0OCxcbiAgICAgIGtleU9wdHM6IFtcImRlY3J5cHRcIiwgXCJlbmNyeXB0XCIsIFwic2lnblwiLCBcInVud3JhcEtleVwiLCBcInZlcmlmeVwiLCBcIndyYXBLZXlcIl0sXG4gICAgICBleHBpcmVzOiBleHBpcmF0aW9uRGF0ZSxcbiAgICAgIGFjY2Vzc1BvbGljaWVzOiB0aGlzLmFjY2Vzc1BvbGljaWVzLFxuICAgIH07XG5cbiAgICBjb25zdCBrZXkgPSBuZXcgS2V5KHRoaXMsIGtleVZhdWx0S2V5TmFtZSwga2V5UHJvcHMpO1xuICAgIHJldHVybiBrZXkudmF1bHRLZXk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGNyeXB0b2dyYXBoaWMga2V5IHdpdGhpbiB0aGUgQXp1cmUgS2V5IFZhdWx0LlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBhbGxvd3MgdGhlIGNyZWF0aW9uIG9mIGEgY3J5cHRvZ3JhcGhpYyBrZXkgb2Ygc3BlY2lmaWVkIHR5cGUgYW5kIHNpemUgd2l0aGluIHRoZSBLZXkgVmF1bHQuIFRoZSBrZXkgY2FuIGJlXG4gICAqIGNvbmZpZ3VyZWQgd2l0aCBzcGVjaWZpYyBvcGVyYXRpb25zIGl0IGNhbiBwZXJmb3JtLCBzdWNoIGFzIGVuY3J5cHRpb24sIGRlY3J5cHRpb24sIHNpZ25pbmcsIGV0Yy4gQW4gb3B0aW9uYWwgZXhwaXJhdGlvblxuICAgKiBkYXRlIGNhbiBhbHNvIGJlIHNldCB0byBjb250cm9sIHRoZSBrZXkncyBsaWZlY3ljbGUuIFRoaXMgbWV0aG9kIGlzIGZsZXhpYmxlLCBzdXBwb3J0aW5nIHZhcmlvdXMga2V5IHR5cGVzIGFuZCBzaXplcyxcbiAgICogbWFraW5nIGl0IHN1aXRhYmxlIGZvciBhIHdpZGUgcmFuZ2Ugb2YgY3J5cHRvZ3JhcGhpYyBuZWVkcy5cbiAgICpcbiAgICogQHBhcmFtIGtleVZhdWx0S2V5TmFtZSAtIFRoZSB1bmlxdWUgbmFtZSBmb3IgdGhlIGNyeXB0b2dyYXBoaWMga2V5IHdpdGhpbiB0aGUgS2V5IFZhdWx0LlxuICAgKiBAcGFyYW0ga2V5VHlwZSAtIFRoZSB0eXBlIG9mIGNyeXB0b2dyYXBoaWMga2V5IHRvIGNyZWF0ZSAoZS5nLiwgJ1JTQScsICdFQycsICdvY3QtSFNNJykuXG4gICAqIEBwYXJhbSBrZXlTaXplIC0gVGhlIHNpemUgb2YgdGhlIGNyeXB0b2dyYXBoaWMga2V5IGluIGJpdHMgKGUuZy4sIDIwNDgsIDMwNzIsIDQwOTYgZm9yIFJTQSkuXG4gICAqIEBwYXJhbSBrZXlPcHRzIC0gQSBsaXN0IG9mIGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9ucyB0aGF0IHRoZSBrZXkgaXMgYWxsb3dlZCB0byBwZXJmb3JtLiBQb3NzaWJsZSB2YWx1ZXMgbWlnaHQgaW5jbHVkZVxuICAgKiAgICAgICAgICAgICAgICAgICdlbmNyeXB0JywgJ2RlY3J5cHQnLCAnc2lnbicsICd2ZXJpZnknLCAnd3JhcEtleScsICd1bndyYXBLZXknLlxuICAgKiBAcGFyYW0gZXhwaXJhdGlvbkRhdGUgLSBPcHRpb25hbC4gVGhlIGV4cGlyYXRpb24gZGF0ZSBvZiB0aGUga2V5IGluIElTTyA4NjAxIGZvcm1hdCAoWVlZWS1NTS1ERCBvciBZWVlZLU1NLUREVEhIOk1NOlNTWikuXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgIElmIHByb3ZpZGVkLCB0aGUga2V5IHdpbGwgbm8gbG9uZ2VyIGJlIHZhbGlkIGFmdGVyIHRoaXMgZGF0ZSwgYWxpZ25pbmcgd2l0aCBiZXN0IHByYWN0aWNlcyBmb3Iga2V5IG1hbmFnZW1lbnQuXG4gICAqIEByZXR1cm5zIEEgS2V5VmF1bHRLZXkgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgbmV3bHkgY3JlYXRlZCBjcnlwdG9ncmFwaGljIGtleSB3aXRoaW4gdGhlIHZhdWx0LlxuICAgKlxuICAgKiBFeGFtcGxlIHVzYWdlOlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IG15S2V5ID0gdmF1bHQuYWRkS2V5KFxuICAgKiAgICdteUtleScsXG4gICAqICAgJ1JTQScsXG4gICAqICAgMjA0OCxcbiAgICogICBbJ2VuY3J5cHQnLCAnZGVjcnlwdCcsICdzaWduJywgJ3ZlcmlmeSddLFxuICAgKiAgICcyMDMwLTEyLTMxJ1xuICAgKiApO1xuICAgKiBgYGBcbiAgICogVGhpcyBtZXRob2QgcmV0dXJucyB0aGUgY3JlYXRlZCBLZXlWYXVsdEtleSBvYmplY3QsIGVuYWJsaW5nIGltbWVkaWF0ZSB1c2Ugd2l0aGluIHRoZSBhcHBsaWNhdGlvbiBmb3IgY3J5cHRvZ3JhcGhpYyBvcGVyYXRpb25zLlxuICAgKi9cbiAgcHVibGljIGFkZEtleShcbiAgICBrZXlWYXVsdEtleU5hbWU6IHN0cmluZyxcbiAgICBrZXlUeXBlOiBzdHJpbmcsXG4gICAga2V5U2l6ZTogbnVtYmVyLFxuICAgIGtleU9wdHM6IHN0cmluZ1tdLFxuICAgIGV4cGlyYXRpb25EYXRlPzogc3RyaW5nLFxuICApOiBLZXlWYXVsdEtleSB7XG4gICAgY29uc3Qga2V5UHJvcHM6IEtleVByb3BzID0ge1xuICAgICAga2V5VmF1bHRJZDogdGhpcyxcbiAgICAgIG5hbWU6IGtleVZhdWx0S2V5TmFtZSxcbiAgICAgIGtleVR5cGU6IGtleVR5cGUsXG4gICAgICBrZXlTaXplOiBrZXlTaXplLFxuICAgICAga2V5T3B0czoga2V5T3B0cyxcbiAgICAgIGV4cGlyZXM6IGV4cGlyYXRpb25EYXRlLFxuICAgICAgYWNjZXNzUG9saWNpZXM6IHRoaXMuYWNjZXNzUG9saWNpZXMsXG4gICAgfTtcblxuICAgIGNvbnN0IGtleSA9IG5ldyBLZXkodGhpcywga2V5VmF1bHRLZXlOYW1lLCBrZXlQcm9wcyk7XG4gICAgcmV0dXJuIGtleS52YXVsdEtleTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgc2VsZi1zaWduZWQgY2VydGlmaWNhdGUgd2l0aGluIHRoZSBBenVyZSBLZXkgVmF1bHQuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGZhY2lsaXRhdGVzIHRoZSBjcmVhdGlvbiBvZiBhIHNlbGYtc2lnbmVkIGNlcnRpZmljYXRlLCB3aGljaCBpcyBhIGRpZ2l0YWwgY2VydGlmaWNhdGUgdGhhdCBpcyBzaWduZWQgYnlcbiAgICogaXRzIG93biBjcmVhdG9yIHJhdGhlciB0aGFuIGEgdHJ1c3RlZCBhdXRob3JpdHkuIFNlbGYtc2lnbmVkIGNlcnRpZmljYXRlcyBjYW4gYmUgdXNlZnVsIGZvciB0ZXN0aW5nLCBpbnRlcm5hbFxuICAgKiBjb21tdW5pY2F0aW9ucywgb3IgYW55IHNjZW5hcmlvIHdoZXJlIHB1YmxpYyB0cnVzdCBpcyBub3QgcmVxdWlyZWQuIFRoZSBtZXRob2QgYWxsb3dzIHNwZWNpZnlpbmcgc3ViamVjdCBkZXRhaWxzLFxuICAgKiBETlMgbmFtZXMgZm9yIHRoZSBjZXJ0aWZpY2F0ZSwgYW5kIG1hbmFnaW5nIGl0cyBsaWZlY3ljbGUgd2l0aCBhY3Rpb24gdHlwZXMgYW5kIGV4cGlyeS5cbiAgICpcbiAgICogQHBhcmFtIGNlcnROYW1lIC0gVGhlIHVuaXF1ZSBuYW1lIGZvciB0aGUgY2VydGlmaWNhdGUgd2l0aGluIHRoZSBLZXkgVmF1bHQuXG4gICAqIEBwYXJhbSBzdWJqZWN0IC0gVGhlIHN1YmplY3QgbmFtZSBvZiB0aGUgY2VydGlmaWNhdGUsIHR5cGljYWxseSBmb3JtYXR0ZWQgYXMgYW4gWC41MDAgRGlzdGluZ3Vpc2hlZCBOYW1lIChlLmcuLCBcIkNOPWV4YW1wbGUuY29tXCIpLlxuICAgKiBAcGFyYW0gZG5zTmFtZXMgLSBBbiBhcnJheSBvZiBETlMgbmFtZXMgdGhhdCBzaG91bGQgYmUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgY2VydGlmaWNhdGUuIFRoaXMgaXMgdXNlZnVsIGZvciBjZXJ0aWZpY2F0ZXNcbiAgICogICAgICAgICAgICAgICAgICAgdGhhdCBuZWVkIHRvIGJlIHZhbGlkIGZvciBtdWx0aXBsZSBob3N0bmFtZXMuXG4gICAqIEBwYXJhbSBhY3Rpb25UeXBlIC0gT3B0aW9uYWwuIFNwZWNpZmllcyB0aGUgYWN0aW9uIHRvIGJlIHBlcmZvcm1lZCB3aXRoIHRoZSBjZXJ0aWZpY2F0ZSwgc3VjaCBhcyAnY3JlYXRlJyBvciAncmVuZXcnLlxuICAgKiBAcGFyYW0gZGF5c0JlZm9yZUV4cGlyeSAtIE9wdGlvbmFsLiBOdW1iZXIgb2YgZGF5cyBiZWZvcmUgZXhwaXJ5IHdoZW4gYW4gYWN0aW9uIHNob3VsZCBiZSB0YWtlbiwgdXNlZnVsIGZvciBhdXRvLXJlbmV3YWwgc2NlbmFyaW9zLlxuICAgKiBAcmV0dXJucyBBIEtleVZhdWx0Q2VydGlmaWNhdGUgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgbmV3bHkgY3JlYXRlZCBzZWxmLXNpZ25lZCBjZXJ0aWZpY2F0ZS5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBteUNlcnRpZmljYXRlID0gdmF1bHQuYWRkU2VsZlNpZ25lZENlcnQoXG4gICAqICAgJ215Q2VydCcsXG4gICAqICAgJ0NOPW15ZG9tYWluLmNvbScsXG4gICAqICAgWydteWRvbWFpbi5jb20nLCAnd3d3Lm15ZG9tYWluLmNvbSddLFxuICAgKiAgICdjcmVhdGUnLFxuICAgKiAgIDMwXG4gICAqICk7XG4gICAqIGBgYFxuICAgKiBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBLZXlWYXVsdENlcnRpZmljYXRlIG9iamVjdCwgZW5hYmxpbmcgaXQgdG8gYmUgdXNlZCBpbW1lZGlhdGVseSB3aXRoaW4gdGhlIGFwcGxpY2F0aW9uIG9yIHN0b3JlZCBmb3IgZnV0dXJlIHVzZS5cbiAgICovXG4gIHB1YmxpYyBhZGRTZWxmU2lnbmVkQ2VydChcbiAgICBjZXJ0TmFtZTogc3RyaW5nLFxuICAgIHN1YmplY3Q6IHN0cmluZyxcbiAgICBkbnNOYW1lczogc3RyaW5nW10sXG4gICAgYWN0aW9uVHlwZT86IHN0cmluZyxcbiAgICBkYXlzQmVmb3JlRXhwaXJ5PzogbnVtYmVyLFxuICApOiBLZXlWYXVsdENlcnRpZmljYXRlIHtcbiAgICBjb25zdCBrZXlQcm9wczogU2VsZlNpZ25lZENlcnRpZmljYXRlUHJvcHMgPSB7XG4gICAgICBrZXlWYXVsdElkOiB0aGlzLFxuICAgICAgbmFtZTogY2VydE5hbWUsXG4gICAgICBzdWJqZWN0OiBzdWJqZWN0LFxuICAgICAgZG5zTmFtZXM6IGRuc05hbWVzLFxuICAgICAgYWN0aW9uVHlwZTogYWN0aW9uVHlwZSxcbiAgICAgIGRheXNCZWZvcmVFeHBpcnk6IGRheXNCZWZvcmVFeHBpcnksXG4gICAgICBhY2Nlc3NQb2xpY2llczogdGhpcy5hY2Nlc3NQb2xpY2llcyxcbiAgICB9O1xuICAgIGNvbnN0IGNlcnQgPSBuZXcgU2VsZlNpZ25lZENlcnRpZmljYXRlKHRoaXMsIGNlcnROYW1lLCBrZXlQcm9wcyk7XG4gICAgcmV0dXJuIGNlcnQuY2VydGlmaWNhdGU7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGNlcnRpZmljYXRlIGlzc3VlciB0byB0aGUgQXp1cmUgS2V5IFZhdWx0LlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBjb25maWd1cmVzIGEgY2VydGlmaWNhdGUgaXNzdWVyIHdpdGhpbiB0aGUgS2V5IFZhdWx0LCBhbGxvd2luZyB0aGUgS2V5IFZhdWx0IHRvIGlzc3VlIGNlcnRpZmljYXRlc1xuICAgKiB0aHJvdWdoIGV4dGVybmFsIHByb3ZpZGVycy4gQ29uZmlndXJpbmcgYW4gaXNzdWVyIGlzIGVzc2VudGlhbCBmb3IgZW5hYmxpbmcgYXV0b21hdGVkIGNlcnRpZmljYXRlIG1hbmFnZW1lbnRcbiAgICogcHJvY2Vzc2VzLCBzdWNoIGFzIGlzc3VhbmNlIGFuZCByZW5ld2FsLCBkaXJlY3RseSB0aHJvdWdoIHRoZSBLZXkgVmF1bHQgd2l0aCBhIHNwZWNpZmllZCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgKENBKS5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgLSBUaGUgdW5pcXVlIG5hbWUgZm9yIHRoZSBjZXJ0aWZpY2F0ZSBpc3N1ZXIgd2l0aGluIHRoZSBLZXkgVmF1bHQuXG4gICAqIEBwYXJhbSBwcm92aWRlciAtIFRoZSBuYW1lIG9mIHRoZSBleHRlcm5hbCBwcm92aWRlciB0aGF0IHdpbGwgaXNzdWUgdGhlIGNlcnRpZmljYXRlcywgc3VjaCBhcyAnRGlnaUNlcnQnIG9yICdHbG9iYWxTaWduJy5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiB2YXVsdC5hZGRDZXJ0SXNzdWVyKFxuICAgKiAgICdteUNlcnRJc3N1ZXInLFxuICAgKiAgICdEaWdpQ2VydCdcbiAgICogKTtcbiAgICogYGBgXG4gICAqIFRoaXMgbWV0aG9kIGNvbmZpZ3VyZXMgYSBjZXJ0aWZpY2F0ZSBpc3N1ZXIgYnV0IGRvZXMgbm90IHJldHVybiBhbnkgdmFsdWUuIFRoZSBpc3N1ZXIgZGV0YWlscywgaW5jbHVkaW5nIHByb3ZpZGVyIG5hbWVcbiAgICogYW5kIGFueSBuZWNlc3NhcnkgY3JlZGVudGlhbHMgKG1hbmFnZWQgZXh0ZXJuYWxseSBvciB0aHJvdWdoIGFkZGl0aW9uYWwgbWV0aG9kIHBhcmFtZXRlcnMpLCBhcmUgc2V0IHVwIGluIHRoZSBLZXkgVmF1bHRcbiAgICogZm9yIGZ1dHVyZSBjZXJ0aWZpY2F0ZSBvcGVyYXRpb25zLlxuICAgKi9cbiAgcHVibGljIGFkZENlcnRJc3N1ZXIobmFtZTogc3RyaW5nLCBwcm92aWRlcjogc3RyaW5nKSB7XG4gICAgbmV3IENlcnRpZmljYXRlSXNzdWVyKHRoaXMsIG5hbWUsIHtcbiAgICAgIG5hbWU6IG5hbWUsXG4gICAgICBwcm92aWRlck5hbWU6IHByb3ZpZGVyLFxuICAgICAga2V5VmF1bHRJZDogdGhpcyxcbiAgICAgIGFjY2Vzc1BvbGljaWVzOiB0aGlzLmFjY2Vzc1BvbGljaWVzLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "cdktf/lib/testing/adapters/jest";
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const provider_1 = require("@cdktf/provider-azurerm/lib/provider");
|
|
4
|
+
const resource_group_1 = require("@cdktf/provider-azurerm/lib/resource-group");
|
|
5
|
+
const cdktf_1 = require("cdktf");
|
|
6
|
+
const ExampleAzureKeyVault_1 = require("./ExampleAzureKeyVault");
|
|
7
|
+
require("cdktf/lib/testing/adapters/jest");
|
|
8
|
+
const kv = require("..");
|
|
9
|
+
const util = require("../../util/azureTenantIdHelpers");
|
|
10
|
+
describe("Azure Key Vault With Defaults", () => {
|
|
11
|
+
let stack;
|
|
12
|
+
let fullSynthResult;
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
const app = cdktf_1.Testing.app();
|
|
15
|
+
stack = new cdktf_1.TerraformStack(app, "test");
|
|
16
|
+
new provider_1.AzurermProvider(stack, "azureFeature", { features: {} });
|
|
17
|
+
const rg = new resource_group_1.ResourceGroup(stack, "MyResourceGroup", {
|
|
18
|
+
name: "rg-test",
|
|
19
|
+
location: "eastus",
|
|
20
|
+
});
|
|
21
|
+
new kv.Vault(stack, "testAzureKeyVaultDefaults", {
|
|
22
|
+
name: "kv-test",
|
|
23
|
+
location: "eastus",
|
|
24
|
+
resourceGroup: rg,
|
|
25
|
+
tenantId: "123e4567-e89b-12d3-a456-426614174000",
|
|
26
|
+
});
|
|
27
|
+
fullSynthResult = cdktf_1.Testing.fullSynth(stack); // Save the result for reuse
|
|
28
|
+
});
|
|
29
|
+
it("renders an Azure Key Vault with defaults and checks snapshot", () => {
|
|
30
|
+
expect(cdktf_1.Testing.synth(stack)).toMatchSnapshot(); // Compare the already prepared stack
|
|
31
|
+
});
|
|
32
|
+
it("check if the produced terraform configuration is valid", () => {
|
|
33
|
+
expect(fullSynthResult).toBeValidTerraform(); // Use the saved result
|
|
34
|
+
});
|
|
35
|
+
it("check if this can be planned", () => {
|
|
36
|
+
expect(fullSynthResult).toPlanSuccessfully(); // Use the saved result
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
describe("Azure Key Vault Example", () => {
|
|
40
|
+
//let stack: TerraformStack;
|
|
41
|
+
// beforeEach(() => {
|
|
42
|
+
// const app = Testing.app();
|
|
43
|
+
// stack = new TerraformStack(app, "test");
|
|
44
|
+
// Testing.synthScope((stack) => {
|
|
45
|
+
// new exampleAzureKeyVault(stack, "testAzureKeyVault");
|
|
46
|
+
// });
|
|
47
|
+
// });
|
|
48
|
+
it("renders the Example Azure KeyVault and checks snapshot", () => {
|
|
49
|
+
// Need to remove the tenant_id from the snapshot as it will change wherever the test is run
|
|
50
|
+
const output = cdktf_1.Testing.synth(new ExampleAzureKeyVault_1.exampleAzureKeyVault(cdktf_1.Testing.app(), "testAzureKeyVault"));
|
|
51
|
+
const myObject = JSON.parse(output);
|
|
52
|
+
expect(util.removeTenantIdFromSnapshot(myObject)).toMatchSnapshot();
|
|
53
|
+
});
|
|
54
|
+
it("check if the produced terraform configuration is valid", () => {
|
|
55
|
+
// We need to do a full synth to plan the terraform configuration
|
|
56
|
+
expect(cdktf_1.Testing.fullSynth(new ExampleAzureKeyVault_1.exampleAzureKeyVault(cdktf_1.Testing.app(), "testAzureKeyVault"))).toBeValidTerraform();
|
|
57
|
+
});
|
|
58
|
+
it("check if this can be planned", () => {
|
|
59
|
+
// We need to do a full synth to plan the terraform configuration
|
|
60
|
+
expect(cdktf_1.Testing.fullSynth(new ExampleAzureKeyVault_1.exampleAzureKeyVault(cdktf_1.Testing.app(), "testAzureKeyVault"))).toPlanSuccessfully();
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXp1cmVLZXlWYXVsdC5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLWtleXZhdWx0L3Rlc3QvQXp1cmVLZXlWYXVsdC5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbUVBQXVFO0FBQ3ZFLCtFQUEyRTtBQUMzRSxpQ0FBZ0Q7QUFDaEQsaUVBQThEO0FBQzlELDJDQUF5QztBQUN6Qyx5QkFBeUI7QUFDekIsd0RBQXdEO0FBRXhELFFBQVEsQ0FBQywrQkFBK0IsRUFBRSxHQUFHLEVBQUU7SUFDN0MsSUFBSSxLQUFxQixDQUFDO0lBQzFCLElBQUksZUFBb0IsQ0FBQztJQUV6QixVQUFVLENBQUMsR0FBRyxFQUFFO1FBQ2QsTUFBTSxHQUFHLEdBQUcsZUFBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzFCLEtBQUssR0FBRyxJQUFJLHNCQUFjLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXhDLElBQUksMEJBQWUsQ0FBQyxLQUFLLEVBQUUsY0FBYyxFQUFFLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFN0QsTUFBTSxFQUFFLEdBQUcsSUFBSSw4QkFBYSxDQUFDLEtBQUssRUFBRSxpQkFBaUIsRUFBRTtZQUNyRCxJQUFJLEVBQUUsU0FBUztZQUNmLFFBQVEsRUFBRSxRQUFRO1NBQ25CLENBQUMsQ0FBQztRQUVILElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsMkJBQTJCLEVBQUU7WUFDL0MsSUFBSSxFQUFFLFNBQVM7WUFDZixRQUFRLEVBQUUsUUFBUTtZQUNsQixhQUFhLEVBQUUsRUFBRTtZQUNqQixRQUFRLEVBQUUsc0NBQXNDO1NBQ2pELENBQUMsQ0FBQztRQUVILGVBQWUsR0FBRyxlQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsNEJBQTRCO0lBQzFFLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDhEQUE4RCxFQUFFLEdBQUcsRUFBRTtRQUN0RSxNQUFNLENBQUMsZUFBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDLENBQUMscUNBQXFDO0lBQ3ZGLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHdEQUF3RCxFQUFFLEdBQUcsRUFBRTtRQUNoRSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLHVCQUF1QjtJQUN2RSxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSxHQUFHLEVBQUU7UUFDdEMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyx1QkFBdUI7SUFDdkUsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQztBQUVILFFBQVEsQ0FBQyx5QkFBeUIsRUFBRSxHQUFHLEVBQUU7SUFDdkMsNEJBQTRCO0lBRTVCLHFCQUFxQjtJQUNyQiwrQkFBK0I7SUFDL0IsNkNBQTZDO0lBRTdDLG9DQUFvQztJQUNwQyw0REFBNEQ7SUFDNUQsUUFBUTtJQUNSLE1BQU07SUFFTixFQUFFLENBQUMsd0RBQXdELEVBQUUsR0FBRyxFQUFFO1FBQ2hFLDRGQUE0RjtRQUM1RixNQUFNLE1BQU0sR0FBRyxlQUFPLENBQUMsS0FBSyxDQUMxQixJQUFJLDJDQUFvQixDQUFDLGVBQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxtQkFBbUIsQ0FBQyxDQUM3RCxDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQXdCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFekQsTUFBTSxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3RFLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLHdEQUF3RCxFQUFFLEdBQUcsRUFBRTtRQUNoRSxpRUFBaUU7UUFDakUsTUFBTSxDQUNKLGVBQU8sQ0FBQyxTQUFTLENBQ2YsSUFBSSwyQ0FBb0IsQ0FBQyxlQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsbUJBQW1CLENBQUMsQ0FDN0QsQ0FDRixDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDekIsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsOEJBQThCLEVBQUUsR0FBRyxFQUFFO1FBQ3RDLGlFQUFpRTtRQUNqRSxNQUFNLENBQ0osZUFBTyxDQUFDLFNBQVMsQ0FDZixJQUFJLDJDQUFvQixDQUFDLGVBQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxtQkFBbUIsQ0FBQyxDQUM3RCxDQUNGLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUN6QixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXp1cmVybVByb3ZpZGVyIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9wcm92aWRlclwiO1xuaW1wb3J0IHsgUmVzb3VyY2VHcm91cCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvcmVzb3VyY2UtZ3JvdXBcIjtcbmltcG9ydCB7IFRlc3RpbmcsIFRlcnJhZm9ybVN0YWNrIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBleGFtcGxlQXp1cmVLZXlWYXVsdCB9IGZyb20gXCIuL0V4YW1wbGVBenVyZUtleVZhdWx0XCI7XG5pbXBvcnQgXCJjZGt0Zi9saWIvdGVzdGluZy9hZGFwdGVycy9qZXN0XCI7XG5pbXBvcnQgKiBhcyBrdiBmcm9tIFwiLi5cIjtcbmltcG9ydCAqIGFzIHV0aWwgZnJvbSBcIi4uLy4uL3V0aWwvYXp1cmVUZW5hbnRJZEhlbHBlcnNcIjtcblxuZGVzY3JpYmUoXCJBenVyZSBLZXkgVmF1bHQgV2l0aCBEZWZhdWx0c1wiLCAoKSA9PiB7XG4gIGxldCBzdGFjazogVGVycmFmb3JtU3RhY2s7XG4gIGxldCBmdWxsU3ludGhSZXN1bHQ6IGFueTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBjb25zdCBhcHAgPSBUZXN0aW5nLmFwcCgpO1xuICAgIHN0YWNrID0gbmV3IFRlcnJhZm9ybVN0YWNrKGFwcCwgXCJ0ZXN0XCIpO1xuXG4gICAgbmV3IEF6dXJlcm1Qcm92aWRlcihzdGFjaywgXCJhenVyZUZlYXR1cmVcIiwgeyBmZWF0dXJlczoge30gfSk7XG5cbiAgICBjb25zdCByZyA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIk15UmVzb3VyY2VHcm91cFwiLCB7XG4gICAgICBuYW1lOiBcInJnLXRlc3RcIixcbiAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgIH0pO1xuXG4gICAgbmV3IGt2LlZhdWx0KHN0YWNrLCBcInRlc3RBenVyZUtleVZhdWx0RGVmYXVsdHNcIiwge1xuICAgICAgbmFtZTogXCJrdi10ZXN0XCIsXG4gICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIHJlc291cmNlR3JvdXA6IHJnLFxuICAgICAgdGVuYW50SWQ6IFwiMTIzZTQ1NjctZTg5Yi0xMmQzLWE0NTYtNDI2NjE0MTc0MDAwXCIsXG4gICAgfSk7XG5cbiAgICBmdWxsU3ludGhSZXN1bHQgPSBUZXN0aW5nLmZ1bGxTeW50aChzdGFjayk7IC8vIFNhdmUgdGhlIHJlc3VsdCBmb3IgcmV1c2VcbiAgfSk7XG5cbiAgaXQoXCJyZW5kZXJzIGFuIEF6dXJlIEtleSBWYXVsdCB3aXRoIGRlZmF1bHRzIGFuZCBjaGVja3Mgc25hcHNob3RcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChUZXN0aW5nLnN5bnRoKHN0YWNrKSkudG9NYXRjaFNuYXBzaG90KCk7IC8vIENvbXBhcmUgdGhlIGFscmVhZHkgcHJlcGFyZWQgc3RhY2tcbiAgfSk7XG5cbiAgaXQoXCJjaGVjayBpZiB0aGUgcHJvZHVjZWQgdGVycmFmb3JtIGNvbmZpZ3VyYXRpb24gaXMgdmFsaWRcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChmdWxsU3ludGhSZXN1bHQpLnRvQmVWYWxpZFRlcnJhZm9ybSgpOyAvLyBVc2UgdGhlIHNhdmVkIHJlc3VsdFxuICB9KTtcblxuICBpdChcImNoZWNrIGlmIHRoaXMgY2FuIGJlIHBsYW5uZWRcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChmdWxsU3ludGhSZXN1bHQpLnRvUGxhblN1Y2Nlc3NmdWxseSgpOyAvLyBVc2UgdGhlIHNhdmVkIHJlc3VsdFxuICB9KTtcbn0pO1xuXG5kZXNjcmliZShcIkF6dXJlIEtleSBWYXVsdCBFeGFtcGxlXCIsICgpID0+IHtcbiAgLy9sZXQgc3RhY2s6IFRlcnJhZm9ybVN0YWNrO1xuXG4gIC8vIGJlZm9yZUVhY2goKCkgPT4ge1xuICAvLyAgIGNvbnN0IGFwcCA9IFRlc3RpbmcuYXBwKCk7XG4gIC8vICAgc3RhY2sgPSBuZXcgVGVycmFmb3JtU3RhY2soYXBwLCBcInRlc3RcIik7XG5cbiAgLy8gICBUZXN0aW5nLnN5bnRoU2NvcGUoKHN0YWNrKSA9PiB7XG4gIC8vICAgICBuZXcgZXhhbXBsZUF6dXJlS2V5VmF1bHQoc3RhY2ssIFwidGVzdEF6dXJlS2V5VmF1bHRcIik7XG4gIC8vICAgfSk7XG4gIC8vIH0pO1xuXG4gIGl0KFwicmVuZGVycyB0aGUgRXhhbXBsZSBBenVyZSBLZXlWYXVsdCBhbmQgY2hlY2tzIHNuYXBzaG90XCIsICgpID0+IHtcbiAgICAvLyBOZWVkIHRvIHJlbW92ZSB0aGUgdGVuYW50X2lkIGZyb20gdGhlIHNuYXBzaG90IGFzIGl0IHdpbGwgY2hhbmdlIHdoZXJldmVyIHRoZSB0ZXN0IGlzIHJ1blxuICAgIGNvbnN0IG91dHB1dCA9IFRlc3Rpbmcuc3ludGgoXG4gICAgICBuZXcgZXhhbXBsZUF6dXJlS2V5VmF1bHQoVGVzdGluZy5hcHAoKSwgXCJ0ZXN0QXp1cmVLZXlWYXVsdFwiKSxcbiAgICApO1xuICAgIGNvbnN0IG15T2JqZWN0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gSlNPTi5wYXJzZShvdXRwdXQpO1xuXG4gICAgZXhwZWN0KHV0aWwucmVtb3ZlVGVuYW50SWRGcm9tU25hcHNob3QobXlPYmplY3QpKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSk7XG5cbiAgaXQoXCJjaGVjayBpZiB0aGUgcHJvZHVjZWQgdGVycmFmb3JtIGNvbmZpZ3VyYXRpb24gaXMgdmFsaWRcIiwgKCkgPT4ge1xuICAgIC8vIFdlIG5lZWQgdG8gZG8gYSBmdWxsIHN5bnRoIHRvIHBsYW4gdGhlIHRlcnJhZm9ybSBjb25maWd1cmF0aW9uXG4gICAgZXhwZWN0KFxuICAgICAgVGVzdGluZy5mdWxsU3ludGgoXG4gICAgICAgIG5ldyBleGFtcGxlQXp1cmVLZXlWYXVsdChUZXN0aW5nLmFwcCgpLCBcInRlc3RBenVyZUtleVZhdWx0XCIpLFxuICAgICAgKSxcbiAgICApLnRvQmVWYWxpZFRlcnJhZm9ybSgpO1xuICB9KTtcblxuICBpdChcImNoZWNrIGlmIHRoaXMgY2FuIGJlIHBsYW5uZWRcIiwgKCkgPT4ge1xuICAgIC8vIFdlIG5lZWQgdG8gZG8gYSBmdWxsIHN5bnRoIHRvIHBsYW4gdGhlIHRlcnJhZm9ybSBjb25maWd1cmF0aW9uXG4gICAgZXhwZWN0KFxuICAgICAgVGVzdGluZy5mdWxsU3ludGgoXG4gICAgICAgIG5ldyBleGFtcGxlQXp1cmVLZXlWYXVsdChUZXN0aW5nLmFwcCgpLCBcInRlc3RBenVyZUtleVZhdWx0XCIpLFxuICAgICAgKSxcbiAgICApLnRvUGxhblN1Y2Nlc3NmdWxseSgpO1xuICB9KTtcbn0pO1xuIl19
|