@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,162 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import { ClusterProps, Cluster } from "./cluster";
|
|
3
|
+
export interface DatabaseProps {
|
|
4
|
+
/**
|
|
5
|
+
* The Azure Kusto cluster to which this database belongs.
|
|
6
|
+
*/
|
|
7
|
+
readonly kusto: Cluster;
|
|
8
|
+
/**
|
|
9
|
+
* The name of the Kusto Database to create.
|
|
10
|
+
*/
|
|
11
|
+
readonly name: string;
|
|
12
|
+
/**
|
|
13
|
+
* The time the data that should be kept in cache for fast queries as ISO 8601 timespan.
|
|
14
|
+
* Default is unlimited.
|
|
15
|
+
*/
|
|
16
|
+
readonly hotCachePeriod?: string;
|
|
17
|
+
/**
|
|
18
|
+
* The time the data should be kept before it stops being accessible to queries as ISO 8601 timespan.
|
|
19
|
+
* Default is unlimited.
|
|
20
|
+
*/
|
|
21
|
+
readonly softDeletePeriod?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface DatabaseAccessProps {
|
|
24
|
+
/**
|
|
25
|
+
* The name of the kusto principal assignment.
|
|
26
|
+
*/
|
|
27
|
+
readonly name: string;
|
|
28
|
+
/**
|
|
29
|
+
* The tenant id in which the principal resides.
|
|
30
|
+
*/
|
|
31
|
+
readonly tenantId: string;
|
|
32
|
+
/**
|
|
33
|
+
* The object id of the principal to assign to Kusto Database.
|
|
34
|
+
*/
|
|
35
|
+
readonly principalId: string;
|
|
36
|
+
/**
|
|
37
|
+
* The type of the principal. Valid values include App, Group, User.
|
|
38
|
+
*/
|
|
39
|
+
readonly principalType: string;
|
|
40
|
+
/**
|
|
41
|
+
* The database role assigned to the principal.
|
|
42
|
+
* Valid values include Admin, Ingestor, Monitor, UnrestrictedViewer, User and Viewer.
|
|
43
|
+
*/
|
|
44
|
+
readonly role: string;
|
|
45
|
+
}
|
|
46
|
+
export interface TableSchemaProps {
|
|
47
|
+
readonly columnName: string;
|
|
48
|
+
readonly columnType: string;
|
|
49
|
+
}
|
|
50
|
+
export declare class Database extends Construct {
|
|
51
|
+
readonly kustoDbProps: DatabaseProps;
|
|
52
|
+
readonly kustoProps: ClusterProps;
|
|
53
|
+
readonly rg: string;
|
|
54
|
+
readonly id: string;
|
|
55
|
+
/**
|
|
56
|
+
* Represents a Kusto Database within an Azure Kusto Cluster.
|
|
57
|
+
*
|
|
58
|
+
* This class is responsible for the creation and management of a database in Azure Data Explorer (Kusto),
|
|
59
|
+
* which stores data tables and provides a query engine. A Kusto database is a logical group of tables
|
|
60
|
+
* and is associated with a specific Kusto cluster. The database supports configurations such as
|
|
61
|
+
* hot cache period and soft delete period to optimize performance and data retention according to
|
|
62
|
+
* specific workload requirements.
|
|
63
|
+
*
|
|
64
|
+
* @param scope - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) stack.
|
|
65
|
+
* @param id - The unique identifier for this instance of the Kusto database.
|
|
66
|
+
* @param kustoDbProps - The properties required to configure the Kusto database. These include:
|
|
67
|
+
* - `kusto`: Reference to the Kusto cluster to which the database will belong.
|
|
68
|
+
* - `name`: The name of the database to be created within the Kusto cluster.
|
|
69
|
+
* - `hotCachePeriod`: Optional. Specifies the duration that data should be kept in cache for faster query performance.
|
|
70
|
+
* Expressed in ISO 8601 duration format.
|
|
71
|
+
* - `softDeletePeriod`: Optional. Specifies the duration that data should be retained before it stops being accessible.
|
|
72
|
+
* Expressed in ISO 8601 duration format.
|
|
73
|
+
*
|
|
74
|
+
* Example usage:
|
|
75
|
+
* ```typescript
|
|
76
|
+
* const myDatabase = new Database(this, 'MyKustoDatabase', {
|
|
77
|
+
* kusto: myKustoCluster,
|
|
78
|
+
* name: 'AnalyticsDB',
|
|
79
|
+
* hotCachePeriod: 'P30D', // 30 days
|
|
80
|
+
* softDeletePeriod: 'P365D' // 365 days
|
|
81
|
+
* });
|
|
82
|
+
* ```
|
|
83
|
+
*
|
|
84
|
+
* This class sets up the database configurations and integrates it within the specified Kusto cluster,
|
|
85
|
+
* providing capabilities to manage and query large datasets effectively.
|
|
86
|
+
*/
|
|
87
|
+
constructor(scope: Construct, id: string, kustoDbProps: DatabaseProps);
|
|
88
|
+
/**
|
|
89
|
+
* Adds a database principal assignment in the Kusto cluster, assigning specified access rights to a principal.
|
|
90
|
+
*
|
|
91
|
+
* This method is used to grant access permissions to a specific user, group, or service principal within an Azure Active Directory.
|
|
92
|
+
* These permissions determine the level of access that the principal has over the Kusto database, such as viewing, ingesting, or managing data.
|
|
93
|
+
* The assignment is made by creating a KustoDatabasePrincipalAssignment resource, specifying the principal details and the type of role
|
|
94
|
+
* they should assume.
|
|
95
|
+
*
|
|
96
|
+
* @param kustoDatabaseAccessProps - The properties defining the principal assignment. This includes:
|
|
97
|
+
* - `name`: A unique name identifying this principal assignment.
|
|
98
|
+
* - `tenantId`: The Azure Active Directory tenant ID where the principal resides.
|
|
99
|
+
* - `principalId`: The object ID of the principal (user, group, or service principal) in Azure AD.
|
|
100
|
+
* - `principalType`: The type of principal (e.g., User, Group, App).
|
|
101
|
+
* - `role`: The database role assigned to the principal. Roles can include Admin, User, Viewer, among others.
|
|
102
|
+
*
|
|
103
|
+
* Example usage:
|
|
104
|
+
* ```typescript
|
|
105
|
+
* myDatabase.addPermission({
|
|
106
|
+
* name: 'DataScienceTeamAccess',
|
|
107
|
+
* tenantId: 'tenant-id',
|
|
108
|
+
* principalId: 'principal-id',
|
|
109
|
+
* principalType: 'Group',
|
|
110
|
+
* role: 'Viewer'
|
|
111
|
+
* });
|
|
112
|
+
* ```
|
|
113
|
+
* This method creates a new principal assignment, enabling specified access controls for the principal
|
|
114
|
+
* on the Kusto database based on the role assigned. It is crucial for managing security and access
|
|
115
|
+
* governance within the Kusto environment.
|
|
116
|
+
*/
|
|
117
|
+
addPermission(kustoDatabaseAccessProps: DatabaseAccessProps): void;
|
|
118
|
+
/**
|
|
119
|
+
* Adds a new table to an existing Azure Kusto database.
|
|
120
|
+
*
|
|
121
|
+
* This method creates a table within the specified Kusto database using a given schema. Tables in Kusto store structured data with
|
|
122
|
+
* defined columns and types, which are crucial for storing and querying large datasets efficiently. The method constructs a Kusto
|
|
123
|
+
* Data Explorer control command to create the table and then executes this command within the context of the database.
|
|
124
|
+
*
|
|
125
|
+
* @param tableName - The name of the table to create, which must be unique within the database.
|
|
126
|
+
* @param tableSchema - An array of schema properties defining the columns of the table, including column names and their data types.
|
|
127
|
+
*
|
|
128
|
+
* Example usage:
|
|
129
|
+
* ```typescript
|
|
130
|
+
* myDatabase.addTable('SalesData', [
|
|
131
|
+
* { columnName: 'TransactionId', columnType: 'int' },
|
|
132
|
+
* { columnName: 'TransactionDate', columnType: 'datetime' },
|
|
133
|
+
* { columnName: 'Amount', columnType: 'real' }
|
|
134
|
+
* ]);
|
|
135
|
+
* ```
|
|
136
|
+
* This method constructs the command to create the table and applies it directly within the Kusto database,
|
|
137
|
+
* ensuring the table is ready for data ingestion and querying.
|
|
138
|
+
*/
|
|
139
|
+
addTable(tableName: string, tableSchema: TableSchemaProps[]): void;
|
|
140
|
+
/**
|
|
141
|
+
* Adds and executes a control command or script within the Kusto database.
|
|
142
|
+
*
|
|
143
|
+
* This method facilitates the execution of Kusto Query Language (KQL) scripts or control commands within the specified
|
|
144
|
+
* Kusto database. Scripts can perform a variety of functions, from schema modifications, like adding new tables or altering
|
|
145
|
+
* existing ones, to data management operations, such as data ingestion or cleanup tasks. Each script is executed as a
|
|
146
|
+
* KustoScript resource, which ensures that the script is applied correctly and atomically to the database.
|
|
147
|
+
*
|
|
148
|
+
* @param scriptName - A unique name for the script, which helps in identifying the script resource within the deployment.
|
|
149
|
+
* @param scriptContent - The KQL script or control command to be executed. This should be a valid KQL command string.
|
|
150
|
+
*
|
|
151
|
+
* Example usage:
|
|
152
|
+
* ```typescript
|
|
153
|
+
* myDatabase.addScript('InitializeSalesTable', `
|
|
154
|
+
* .create table SalesData (TransactionId: int, TransactionDate: datetime, Amount: real)
|
|
155
|
+
* .alter-merge table SalesData policy retentionsoftdelete = 365d
|
|
156
|
+
* `);
|
|
157
|
+
* ```
|
|
158
|
+
* This method will create a `KustoScript` resource that encapsulates the command, ensuring it is executed against the
|
|
159
|
+
* database, and is tracked as part of the resource management within Azure.
|
|
160
|
+
*/
|
|
161
|
+
addScript(scriptName: string, scriptContent: string): void;
|
|
162
|
+
}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Database = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const kusto_database_1 = require("@cdktf/provider-azurerm/lib/kusto-database");
|
|
7
|
+
const kusto_database_principal_assignment_1 = require("@cdktf/provider-azurerm/lib/kusto-database-principal-assignment");
|
|
8
|
+
const kusto_script_1 = require("@cdktf/provider-azurerm/lib/kusto-script");
|
|
9
|
+
const cdktf = require("cdktf");
|
|
10
|
+
const constructs_1 = require("constructs");
|
|
11
|
+
const ts_md5_1 = require("ts-md5");
|
|
12
|
+
class Database extends constructs_1.Construct {
|
|
13
|
+
/**
|
|
14
|
+
* Represents a Kusto Database within an Azure Kusto Cluster.
|
|
15
|
+
*
|
|
16
|
+
* This class is responsible for the creation and management of a database in Azure Data Explorer (Kusto),
|
|
17
|
+
* which stores data tables and provides a query engine. A Kusto database is a logical group of tables
|
|
18
|
+
* and is associated with a specific Kusto cluster. The database supports configurations such as
|
|
19
|
+
* hot cache period and soft delete period to optimize performance and data retention according to
|
|
20
|
+
* specific workload requirements.
|
|
21
|
+
*
|
|
22
|
+
* @param scope - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) stack.
|
|
23
|
+
* @param id - The unique identifier for this instance of the Kusto database.
|
|
24
|
+
* @param kustoDbProps - The properties required to configure the Kusto database. These include:
|
|
25
|
+
* - `kusto`: Reference to the Kusto cluster to which the database will belong.
|
|
26
|
+
* - `name`: The name of the database to be created within the Kusto cluster.
|
|
27
|
+
* - `hotCachePeriod`: Optional. Specifies the duration that data should be kept in cache for faster query performance.
|
|
28
|
+
* Expressed in ISO 8601 duration format.
|
|
29
|
+
* - `softDeletePeriod`: Optional. Specifies the duration that data should be retained before it stops being accessible.
|
|
30
|
+
* Expressed in ISO 8601 duration format.
|
|
31
|
+
*
|
|
32
|
+
* Example usage:
|
|
33
|
+
* ```typescript
|
|
34
|
+
* const myDatabase = new Database(this, 'MyKustoDatabase', {
|
|
35
|
+
* kusto: myKustoCluster,
|
|
36
|
+
* name: 'AnalyticsDB',
|
|
37
|
+
* hotCachePeriod: 'P30D', // 30 days
|
|
38
|
+
* softDeletePeriod: 'P365D' // 365 days
|
|
39
|
+
* });
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* This class sets up the database configurations and integrates it within the specified Kusto cluster,
|
|
43
|
+
* providing capabilities to manage and query large datasets effectively.
|
|
44
|
+
*/
|
|
45
|
+
constructor(scope, id, kustoDbProps) {
|
|
46
|
+
super(scope, id);
|
|
47
|
+
this.kustoDbProps = kustoDbProps;
|
|
48
|
+
this.kustoProps = kustoDbProps.kusto.kustoProps;
|
|
49
|
+
this.rg = kustoDbProps.kusto.kustoProps.resourceGroup.name;
|
|
50
|
+
const kustoDatabase = new kusto_database_1.KustoDatabase(this, `kusto-db-${this.kustoDbProps.name}`, {
|
|
51
|
+
name: this.kustoDbProps.name,
|
|
52
|
+
location: kustoDbProps.kusto.kustoProps.resourceGroup.location,
|
|
53
|
+
resourceGroupName: kustoDbProps.kusto.kustoProps.resourceGroup.name,
|
|
54
|
+
clusterName: kustoDbProps.kusto.kustoProps.name,
|
|
55
|
+
});
|
|
56
|
+
if (this.kustoDbProps.hotCachePeriod) {
|
|
57
|
+
kustoDatabase.addOverride("hot_cache_period", this.kustoDbProps.hotCachePeriod);
|
|
58
|
+
}
|
|
59
|
+
if (this.kustoDbProps.softDeletePeriod) {
|
|
60
|
+
kustoDatabase.addOverride("soft_delete_period", this.kustoDbProps.softDeletePeriod);
|
|
61
|
+
}
|
|
62
|
+
// Outputs
|
|
63
|
+
this.id = kustoDatabase.id;
|
|
64
|
+
const cdktfTerraformOutputKustoDbId = new cdktf.TerraformOutput(this, "id", {
|
|
65
|
+
value: this.id,
|
|
66
|
+
});
|
|
67
|
+
cdktfTerraformOutputKustoDbId.overrideLogicalId("id");
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Adds a database principal assignment in the Kusto cluster, assigning specified access rights to a principal.
|
|
71
|
+
*
|
|
72
|
+
* This method is used to grant access permissions to a specific user, group, or service principal within an Azure Active Directory.
|
|
73
|
+
* These permissions determine the level of access that the principal has over the Kusto database, such as viewing, ingesting, or managing data.
|
|
74
|
+
* The assignment is made by creating a KustoDatabasePrincipalAssignment resource, specifying the principal details and the type of role
|
|
75
|
+
* they should assume.
|
|
76
|
+
*
|
|
77
|
+
* @param kustoDatabaseAccessProps - The properties defining the principal assignment. This includes:
|
|
78
|
+
* - `name`: A unique name identifying this principal assignment.
|
|
79
|
+
* - `tenantId`: The Azure Active Directory tenant ID where the principal resides.
|
|
80
|
+
* - `principalId`: The object ID of the principal (user, group, or service principal) in Azure AD.
|
|
81
|
+
* - `principalType`: The type of principal (e.g., User, Group, App).
|
|
82
|
+
* - `role`: The database role assigned to the principal. Roles can include Admin, User, Viewer, among others.
|
|
83
|
+
*
|
|
84
|
+
* Example usage:
|
|
85
|
+
* ```typescript
|
|
86
|
+
* myDatabase.addPermission({
|
|
87
|
+
* name: 'DataScienceTeamAccess',
|
|
88
|
+
* tenantId: 'tenant-id',
|
|
89
|
+
* principalId: 'principal-id',
|
|
90
|
+
* principalType: 'Group',
|
|
91
|
+
* role: 'Viewer'
|
|
92
|
+
* });
|
|
93
|
+
* ```
|
|
94
|
+
* This method creates a new principal assignment, enabling specified access controls for the principal
|
|
95
|
+
* on the Kusto database based on the role assigned. It is crucial for managing security and access
|
|
96
|
+
* governance within the Kusto environment.
|
|
97
|
+
*/
|
|
98
|
+
addPermission(kustoDatabaseAccessProps) {
|
|
99
|
+
new kusto_database_principal_assignment_1.KustoDatabasePrincipalAssignment(this, `kusto-db-${kustoDatabaseAccessProps.name}-access`, {
|
|
100
|
+
name: kustoDatabaseAccessProps.name,
|
|
101
|
+
resourceGroupName: this.rg,
|
|
102
|
+
clusterName: this.kustoProps.name,
|
|
103
|
+
databaseName: this.kustoDbProps.name,
|
|
104
|
+
tenantId: kustoDatabaseAccessProps.tenantId,
|
|
105
|
+
principalId: kustoDatabaseAccessProps.principalId,
|
|
106
|
+
principalType: kustoDatabaseAccessProps.principalType,
|
|
107
|
+
role: kustoDatabaseAccessProps.role,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Adds a new table to an existing Azure Kusto database.
|
|
112
|
+
*
|
|
113
|
+
* This method creates a table within the specified Kusto database using a given schema. Tables in Kusto store structured data with
|
|
114
|
+
* defined columns and types, which are crucial for storing and querying large datasets efficiently. The method constructs a Kusto
|
|
115
|
+
* Data Explorer control command to create the table and then executes this command within the context of the database.
|
|
116
|
+
*
|
|
117
|
+
* @param tableName - The name of the table to create, which must be unique within the database.
|
|
118
|
+
* @param tableSchema - An array of schema properties defining the columns of the table, including column names and their data types.
|
|
119
|
+
*
|
|
120
|
+
* Example usage:
|
|
121
|
+
* ```typescript
|
|
122
|
+
* myDatabase.addTable('SalesData', [
|
|
123
|
+
* { columnName: 'TransactionId', columnType: 'int' },
|
|
124
|
+
* { columnName: 'TransactionDate', columnType: 'datetime' },
|
|
125
|
+
* { columnName: 'Amount', columnType: 'real' }
|
|
126
|
+
* ]);
|
|
127
|
+
* ```
|
|
128
|
+
* This method constructs the command to create the table and applies it directly within the Kusto database,
|
|
129
|
+
* ensuring the table is ready for data ingestion and querying.
|
|
130
|
+
*/
|
|
131
|
+
addTable(tableName, tableSchema) {
|
|
132
|
+
const schemaContent = tableSchema
|
|
133
|
+
.map((column) => {
|
|
134
|
+
return `${column.columnName}:${column.columnType}`;
|
|
135
|
+
})
|
|
136
|
+
.join(", ");
|
|
137
|
+
const scriptContent = `.create table ${tableName} ( ${schemaContent} )`;
|
|
138
|
+
new kusto_script_1.KustoScript(this, `kusto-db-${this.kustoDbProps.name}-table-${tableName}`, {
|
|
139
|
+
name: tableName,
|
|
140
|
+
databaseId: this.id,
|
|
141
|
+
scriptContent: scriptContent,
|
|
142
|
+
continueOnErrorsEnabled: false,
|
|
143
|
+
forceAnUpdateWhenValueChanged: ts_md5_1.Md5.hashStr(scriptContent),
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Adds and executes a control command or script within the Kusto database.
|
|
148
|
+
*
|
|
149
|
+
* This method facilitates the execution of Kusto Query Language (KQL) scripts or control commands within the specified
|
|
150
|
+
* Kusto database. Scripts can perform a variety of functions, from schema modifications, like adding new tables or altering
|
|
151
|
+
* existing ones, to data management operations, such as data ingestion or cleanup tasks. Each script is executed as a
|
|
152
|
+
* KustoScript resource, which ensures that the script is applied correctly and atomically to the database.
|
|
153
|
+
*
|
|
154
|
+
* @param scriptName - A unique name for the script, which helps in identifying the script resource within the deployment.
|
|
155
|
+
* @param scriptContent - The KQL script or control command to be executed. This should be a valid KQL command string.
|
|
156
|
+
*
|
|
157
|
+
* Example usage:
|
|
158
|
+
* ```typescript
|
|
159
|
+
* myDatabase.addScript('InitializeSalesTable', `
|
|
160
|
+
* .create table SalesData (TransactionId: int, TransactionDate: datetime, Amount: real)
|
|
161
|
+
* .alter-merge table SalesData policy retentionsoftdelete = 365d
|
|
162
|
+
* `);
|
|
163
|
+
* ```
|
|
164
|
+
* This method will create a `KustoScript` resource that encapsulates the command, ensuring it is executed against the
|
|
165
|
+
* database, and is tracked as part of the resource management within Azure.
|
|
166
|
+
*/
|
|
167
|
+
addScript(scriptName, scriptContent) {
|
|
168
|
+
new kusto_script_1.KustoScript(this, `kusto-db-${this.kustoDbProps.name}-script-${scriptName}`, {
|
|
169
|
+
name: `script-${scriptName}`,
|
|
170
|
+
databaseId: this.id,
|
|
171
|
+
scriptContent: scriptContent,
|
|
172
|
+
continueOnErrorsEnabled: false,
|
|
173
|
+
forceAnUpdateWhenValueChanged: ts_md5_1.Md5.hashStr(scriptContent),
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
exports.Database = Database;
|
|
178
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
179
|
+
Database[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_kusto.Database", version: "0.0.3-pre.10" };
|
|
180
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUta3VzdG8vbGliL2RhdGFiYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0VBQTJFO0FBQzNFLHlIQUFtSDtBQUNuSCwyRUFBdUU7QUFDdkUsK0JBQStCO0FBQy9CLDJDQUF1QztBQUN2QyxtQ0FBNkI7QUFxRDdCLE1BQWEsUUFBUyxTQUFRLHNCQUFTO0lBTXJDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BK0JHO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxZQUEyQjtRQUNuRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxVQUFVLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFDaEQsSUFBSSxDQUFDLEVBQUUsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO1FBRTNELE1BQU0sYUFBYSxHQUFHLElBQUksOEJBQWEsQ0FDckMsSUFBSSxFQUNKLFlBQVksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsRUFDcEM7WUFDRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJO1lBQzVCLFFBQVEsRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsUUFBUTtZQUM5RCxpQkFBaUIsRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSTtZQUNuRSxXQUFXLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSTtTQUNoRCxDQUNGLENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFO1lBQ3BDLGFBQWEsQ0FBQyxXQUFXLENBQ3ZCLGtCQUFrQixFQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FDakMsQ0FBQztTQUNIO1FBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFFO1lBQ3RDLGFBQWEsQ0FBQyxXQUFXLENBQ3ZCLG9CQUFvQixFQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUNuQyxDQUFDO1NBQ0g7UUFFRCxVQUFVO1FBQ1YsSUFBSSxDQUFDLEVBQUUsR0FBRyxhQUFhLENBQUMsRUFBRSxDQUFDO1FBQzNCLE1BQU0sNkJBQTZCLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUM3RCxJQUFJLEVBQ0osSUFBSSxFQUNKO1lBQ0UsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFO1NBQ2YsQ0FDRixDQUFDO1FBQ0YsNkJBQTZCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BNEJHO0lBQ0ksYUFBYSxDQUFDLHdCQUE2QztRQUNoRSxJQUFJLHNFQUFnQyxDQUNsQyxJQUFJLEVBQ0osWUFBWSx3QkFBd0IsQ0FBQyxJQUFJLFNBQVMsRUFDbEQ7WUFDRSxJQUFJLEVBQUUsd0JBQXdCLENBQUMsSUFBSTtZQUNuQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUMxQixXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJO1lBQ2pDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUk7WUFDcEMsUUFBUSxFQUFFLHdCQUF3QixDQUFDLFFBQVE7WUFDM0MsV0FBVyxFQUFFLHdCQUF3QixDQUFDLFdBQVc7WUFDakQsYUFBYSxFQUFFLHdCQUF3QixDQUFDLGFBQWE7WUFDckQsSUFBSSxFQUFFLHdCQUF3QixDQUFDLElBQUk7U0FDcEMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQW9CRztJQUNJLFFBQVEsQ0FBQyxTQUFpQixFQUFFLFdBQStCO1FBQ2hFLE1BQU0sYUFBYSxHQUFHLFdBQVc7YUFDOUIsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDZCxPQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDckQsQ0FBQyxDQUFDO2FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2QsTUFBTSxhQUFhLEdBQUcsaUJBQWlCLFNBQVMsTUFBTSxhQUFhLElBQUksQ0FBQztRQUV4RSxJQUFJLDBCQUFXLENBQ2IsSUFBSSxFQUNKLFlBQVksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLFVBQVUsU0FBUyxFQUFFLEVBQ3ZEO1lBQ0UsSUFBSSxFQUFFLFNBQVM7WUFDZixVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDbkIsYUFBYSxFQUFFLGFBQWE7WUFDNUIsdUJBQXVCLEVBQUUsS0FBSztZQUM5Qiw2QkFBNkIsRUFBRSxZQUFHLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztTQUMxRCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bb0JHO0lBQ0ksU0FBUyxDQUFDLFVBQWtCLEVBQUUsYUFBcUI7UUFDeEQsSUFBSSwwQkFBVyxDQUNiLElBQUksRUFDSixZQUFZLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxXQUFXLFVBQVUsRUFBRSxFQUN6RDtZQUNFLElBQUksRUFBRSxVQUFVLFVBQVUsRUFBRTtZQUM1QixVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDbkIsYUFBYSxFQUFFLGFBQWE7WUFDNUIsdUJBQXVCLEVBQUUsS0FBSztZQUM5Qiw2QkFBNkIsRUFBRSxZQUFHLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztTQUMxRCxDQUNGLENBQUM7SUFDSixDQUFDOztBQXpNSCw0QkEwTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLdXN0b0RhdGFiYXNlIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9rdXN0by1kYXRhYmFzZVwiO1xuaW1wb3J0IHsgS3VzdG9EYXRhYmFzZVByaW5jaXBhbEFzc2lnbm1lbnQgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL2t1c3RvLWRhdGFiYXNlLXByaW5jaXBhbC1hc3NpZ25tZW50XCI7XG5pbXBvcnQgeyBLdXN0b1NjcmlwdCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIva3VzdG8tc2NyaXB0XCI7XG5pbXBvcnQgKiBhcyBjZGt0ZiBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBNZDUgfSBmcm9tIFwidHMtbWQ1XCI7XG5pbXBvcnQgeyBDbHVzdGVyUHJvcHMsIENsdXN0ZXIgfSBmcm9tIFwiLi9jbHVzdGVyXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgQXp1cmUgS3VzdG8gY2x1c3RlciB0byB3aGljaCB0aGlzIGRhdGFiYXNlIGJlbG9uZ3MuXG4gICAqL1xuICByZWFkb25seSBrdXN0bzogQ2x1c3RlcjtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBLdXN0byBEYXRhYmFzZSB0byBjcmVhdGUuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdGltZSB0aGUgZGF0YSB0aGF0IHNob3VsZCBiZSBrZXB0IGluIGNhY2hlIGZvciBmYXN0IHF1ZXJpZXMgYXMgSVNPIDg2MDEgdGltZXNwYW4uXG4gICAqIERlZmF1bHQgaXMgdW5saW1pdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgaG90Q2FjaGVQZXJpb2Q/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdGltZSB0aGUgZGF0YSBzaG91bGQgYmUga2VwdCBiZWZvcmUgaXQgc3RvcHMgYmVpbmcgYWNjZXNzaWJsZSB0byBxdWVyaWVzIGFzIElTTyA4NjAxIHRpbWVzcGFuLlxuICAgKiBEZWZhdWx0IGlzIHVubGltaXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNvZnREZWxldGVQZXJpb2Q/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VBY2Nlc3NQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUga3VzdG8gcHJpbmNpcGFsIGFzc2lnbm1lbnQuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdGVuYW50IGlkIGluIHdoaWNoIHRoZSBwcmluY2lwYWwgcmVzaWRlcy5cbiAgICovXG4gIHJlYWRvbmx5IHRlbmFudElkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgb2JqZWN0IGlkIG9mIHRoZSBwcmluY2lwYWwgdG8gYXNzaWduIHRvIEt1c3RvIERhdGFiYXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJpbmNpcGFsSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSBwcmluY2lwYWwuIFZhbGlkIHZhbHVlcyBpbmNsdWRlIEFwcCwgR3JvdXAsIFVzZXIuXG4gICAqL1xuICByZWFkb25seSBwcmluY2lwYWxUeXBlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZGF0YWJhc2Ugcm9sZSBhc3NpZ25lZCB0byB0aGUgcHJpbmNpcGFsLlxuICAgKiBWYWxpZCB2YWx1ZXMgaW5jbHVkZSBBZG1pbiwgSW5nZXN0b3IsIE1vbml0b3IsIFVucmVzdHJpY3RlZFZpZXdlciwgVXNlciBhbmQgVmlld2VyLlxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlU2NoZW1hUHJvcHMge1xuICByZWFkb25seSBjb2x1bW5OYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvbHVtblR5cGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIERhdGFiYXNlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGt1c3RvRGJQcm9wczogRGF0YWJhc2VQcm9wcztcbiAgcHVibGljIHJlYWRvbmx5IGt1c3RvUHJvcHM6IENsdXN0ZXJQcm9wcztcbiAgcHVibGljIHJlYWRvbmx5IHJnOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIGEgS3VzdG8gRGF0YWJhc2Ugd2l0aGluIGFuIEF6dXJlIEt1c3RvIENsdXN0ZXIuXG4gICAqXG4gICAqIFRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIHRoZSBjcmVhdGlvbiBhbmQgbWFuYWdlbWVudCBvZiBhIGRhdGFiYXNlIGluIEF6dXJlIERhdGEgRXhwbG9yZXIgKEt1c3RvKSxcbiAgICogd2hpY2ggc3RvcmVzIGRhdGEgdGFibGVzIGFuZCBwcm92aWRlcyBhIHF1ZXJ5IGVuZ2luZS4gQSBLdXN0byBkYXRhYmFzZSBpcyBhIGxvZ2ljYWwgZ3JvdXAgb2YgdGFibGVzXG4gICAqIGFuZCBpcyBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyBLdXN0byBjbHVzdGVyLiBUaGUgZGF0YWJhc2Ugc3VwcG9ydHMgY29uZmlndXJhdGlvbnMgc3VjaCBhc1xuICAgKiBob3QgY2FjaGUgcGVyaW9kIGFuZCBzb2Z0IGRlbGV0ZSBwZXJpb2QgdG8gb3B0aW1pemUgcGVyZm9ybWFuY2UgYW5kIGRhdGEgcmV0ZW50aW9uIGFjY29yZGluZyB0b1xuICAgKiBzcGVjaWZpYyB3b3JrbG9hZCByZXF1aXJlbWVudHMuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3QsIHR5cGljYWxseSByZXByZXNlbnRpbmcgdGhlIENsb3VkIERldmVsb3BtZW50IEtpdCAoQ0RLKSBzdGFjay5cbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlIG9mIHRoZSBLdXN0byBkYXRhYmFzZS5cbiAgICogQHBhcmFtIGt1c3RvRGJQcm9wcyAtIFRoZSBwcm9wZXJ0aWVzIHJlcXVpcmVkIHRvIGNvbmZpZ3VyZSB0aGUgS3VzdG8gZGF0YWJhc2UuIFRoZXNlIGluY2x1ZGU6XG4gICAqICAgICAgICAgICAgICAgICAgICAgICAtIGBrdXN0b2A6IFJlZmVyZW5jZSB0byB0aGUgS3VzdG8gY2x1c3RlciB0byB3aGljaCB0aGUgZGF0YWJhc2Ugd2lsbCBiZWxvbmcuXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAtIGBuYW1lYDogVGhlIG5hbWUgb2YgdGhlIGRhdGFiYXNlIHRvIGJlIGNyZWF0ZWQgd2l0aGluIHRoZSBLdXN0byBjbHVzdGVyLlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgLSBgaG90Q2FjaGVQZXJpb2RgOiBPcHRpb25hbC4gU3BlY2lmaWVzIHRoZSBkdXJhdGlvbiB0aGF0IGRhdGEgc2hvdWxkIGJlIGtlcHQgaW4gY2FjaGUgZm9yIGZhc3RlciBxdWVyeSBwZXJmb3JtYW5jZS5cbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhwcmVzc2VkIGluIElTTyA4NjAxIGR1cmF0aW9uIGZvcm1hdC5cbiAgICogICAgICAgICAgICAgICAgICAgICAgIC0gYHNvZnREZWxldGVQZXJpb2RgOiBPcHRpb25hbC4gU3BlY2lmaWVzIHRoZSBkdXJhdGlvbiB0aGF0IGRhdGEgc2hvdWxkIGJlIHJldGFpbmVkIGJlZm9yZSBpdCBzdG9wcyBiZWluZyBhY2Nlc3NpYmxlLlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4cHJlc3NlZCBpbiBJU08gODYwMSBkdXJhdGlvbiBmb3JtYXQuXG4gICAqXG4gICAqIEV4YW1wbGUgdXNhZ2U6XG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgbXlEYXRhYmFzZSA9IG5ldyBEYXRhYmFzZSh0aGlzLCAnTXlLdXN0b0RhdGFiYXNlJywge1xuICAgKiAgIGt1c3RvOiBteUt1c3RvQ2x1c3RlcixcbiAgICogICBuYW1lOiAnQW5hbHl0aWNzREInLFxuICAgKiAgIGhvdENhY2hlUGVyaW9kOiAnUDMwRCcsICAvLyAzMCBkYXlzXG4gICAqICAgc29mdERlbGV0ZVBlcmlvZDogJ1AzNjVEJyAvLyAzNjUgZGF5c1xuICAgKiB9KTtcbiAgICogYGBgXG4gICAqXG4gICAqIFRoaXMgY2xhc3Mgc2V0cyB1cCB0aGUgZGF0YWJhc2UgY29uZmlndXJhdGlvbnMgYW5kIGludGVncmF0ZXMgaXQgd2l0aGluIHRoZSBzcGVjaWZpZWQgS3VzdG8gY2x1c3RlcixcbiAgICogcHJvdmlkaW5nIGNhcGFiaWxpdGllcyB0byBtYW5hZ2UgYW5kIHF1ZXJ5IGxhcmdlIGRhdGFzZXRzIGVmZmVjdGl2ZWx5LlxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywga3VzdG9EYlByb3BzOiBEYXRhYmFzZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLmt1c3RvRGJQcm9wcyA9IGt1c3RvRGJQcm9wcztcbiAgICB0aGlzLmt1c3RvUHJvcHMgPSBrdXN0b0RiUHJvcHMua3VzdG8ua3VzdG9Qcm9wcztcbiAgICB0aGlzLnJnID0ga3VzdG9EYlByb3BzLmt1c3RvLmt1c3RvUHJvcHMucmVzb3VyY2VHcm91cC5uYW1lO1xuXG4gICAgY29uc3Qga3VzdG9EYXRhYmFzZSA9IG5ldyBLdXN0b0RhdGFiYXNlKFxuICAgICAgdGhpcyxcbiAgICAgIGBrdXN0by1kYi0ke3RoaXMua3VzdG9EYlByb3BzLm5hbWV9YCxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogdGhpcy5rdXN0b0RiUHJvcHMubmFtZSxcbiAgICAgICAgbG9jYXRpb246IGt1c3RvRGJQcm9wcy5rdXN0by5rdXN0b1Byb3BzLnJlc291cmNlR3JvdXAubG9jYXRpb24sXG4gICAgICAgIHJlc291cmNlR3JvdXBOYW1lOiBrdXN0b0RiUHJvcHMua3VzdG8ua3VzdG9Qcm9wcy5yZXNvdXJjZUdyb3VwLm5hbWUsXG4gICAgICAgIGNsdXN0ZXJOYW1lOiBrdXN0b0RiUHJvcHMua3VzdG8ua3VzdG9Qcm9wcy5uYW1lLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgaWYgKHRoaXMua3VzdG9EYlByb3BzLmhvdENhY2hlUGVyaW9kKSB7XG4gICAgICBrdXN0b0RhdGFiYXNlLmFkZE92ZXJyaWRlKFxuICAgICAgICBcImhvdF9jYWNoZV9wZXJpb2RcIixcbiAgICAgICAgdGhpcy5rdXN0b0RiUHJvcHMuaG90Q2FjaGVQZXJpb2QsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGhpcy5rdXN0b0RiUHJvcHMuc29mdERlbGV0ZVBlcmlvZCkge1xuICAgICAga3VzdG9EYXRhYmFzZS5hZGRPdmVycmlkZShcbiAgICAgICAgXCJzb2Z0X2RlbGV0ZV9wZXJpb2RcIixcbiAgICAgICAgdGhpcy5rdXN0b0RiUHJvcHMuc29mdERlbGV0ZVBlcmlvZCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gT3V0cHV0c1xuICAgIHRoaXMuaWQgPSBrdXN0b0RhdGFiYXNlLmlkO1xuICAgIGNvbnN0IGNka3RmVGVycmFmb3JtT3V0cHV0S3VzdG9EYklkID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBcImlkXCIsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiB0aGlzLmlkLFxuICAgICAgfSxcbiAgICApO1xuICAgIGNka3RmVGVycmFmb3JtT3V0cHV0S3VzdG9EYklkLm92ZXJyaWRlTG9naWNhbElkKFwiaWRcIik7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGRhdGFiYXNlIHByaW5jaXBhbCBhc3NpZ25tZW50IGluIHRoZSBLdXN0byBjbHVzdGVyLCBhc3NpZ25pbmcgc3BlY2lmaWVkIGFjY2VzcyByaWdodHMgdG8gYSBwcmluY2lwYWwuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gZ3JhbnQgYWNjZXNzIHBlcm1pc3Npb25zIHRvIGEgc3BlY2lmaWMgdXNlciwgZ3JvdXAsIG9yIHNlcnZpY2UgcHJpbmNpcGFsIHdpdGhpbiBhbiBBenVyZSBBY3RpdmUgRGlyZWN0b3J5LlxuICAgKiBUaGVzZSBwZXJtaXNzaW9ucyBkZXRlcm1pbmUgdGhlIGxldmVsIG9mIGFjY2VzcyB0aGF0IHRoZSBwcmluY2lwYWwgaGFzIG92ZXIgdGhlIEt1c3RvIGRhdGFiYXNlLCBzdWNoIGFzIHZpZXdpbmcsIGluZ2VzdGluZywgb3IgbWFuYWdpbmcgZGF0YS5cbiAgICogVGhlIGFzc2lnbm1lbnQgaXMgbWFkZSBieSBjcmVhdGluZyBhIEt1c3RvRGF0YWJhc2VQcmluY2lwYWxBc3NpZ25tZW50IHJlc291cmNlLCBzcGVjaWZ5aW5nIHRoZSBwcmluY2lwYWwgZGV0YWlscyBhbmQgdGhlIHR5cGUgb2Ygcm9sZVxuICAgKiB0aGV5IHNob3VsZCBhc3N1bWUuXG4gICAqXG4gICAqIEBwYXJhbSBrdXN0b0RhdGFiYXNlQWNjZXNzUHJvcHMgLSBUaGUgcHJvcGVydGllcyBkZWZpbmluZyB0aGUgcHJpbmNpcGFsIGFzc2lnbm1lbnQuIFRoaXMgaW5jbHVkZXM6XG4gICAqICAgLSBgbmFtZWA6IEEgdW5pcXVlIG5hbWUgaWRlbnRpZnlpbmcgdGhpcyBwcmluY2lwYWwgYXNzaWdubWVudC5cbiAgICogICAtIGB0ZW5hbnRJZGA6IFRoZSBBenVyZSBBY3RpdmUgRGlyZWN0b3J5IHRlbmFudCBJRCB3aGVyZSB0aGUgcHJpbmNpcGFsIHJlc2lkZXMuXG4gICAqICAgLSBgcHJpbmNpcGFsSWRgOiBUaGUgb2JqZWN0IElEIG9mIHRoZSBwcmluY2lwYWwgKHVzZXIsIGdyb3VwLCBvciBzZXJ2aWNlIHByaW5jaXBhbCkgaW4gQXp1cmUgQUQuXG4gICAqICAgLSBgcHJpbmNpcGFsVHlwZWA6IFRoZSB0eXBlIG9mIHByaW5jaXBhbCAoZS5nLiwgVXNlciwgR3JvdXAsIEFwcCkuXG4gICAqICAgLSBgcm9sZWA6IFRoZSBkYXRhYmFzZSByb2xlIGFzc2lnbmVkIHRvIHRoZSBwcmluY2lwYWwuIFJvbGVzIGNhbiBpbmNsdWRlIEFkbWluLCBVc2VyLCBWaWV3ZXIsIGFtb25nIG90aGVycy5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBteURhdGFiYXNlLmFkZFBlcm1pc3Npb24oe1xuICAgKiAgIG5hbWU6ICdEYXRhU2NpZW5jZVRlYW1BY2Nlc3MnLFxuICAgKiAgIHRlbmFudElkOiAndGVuYW50LWlkJyxcbiAgICogICBwcmluY2lwYWxJZDogJ3ByaW5jaXBhbC1pZCcsXG4gICAqICAgcHJpbmNpcGFsVHlwZTogJ0dyb3VwJyxcbiAgICogICByb2xlOiAnVmlld2VyJ1xuICAgKiB9KTtcbiAgICogYGBgXG4gICAqIFRoaXMgbWV0aG9kIGNyZWF0ZXMgYSBuZXcgcHJpbmNpcGFsIGFzc2lnbm1lbnQsIGVuYWJsaW5nIHNwZWNpZmllZCBhY2Nlc3MgY29udHJvbHMgZm9yIHRoZSBwcmluY2lwYWxcbiAgICogb24gdGhlIEt1c3RvIGRhdGFiYXNlIGJhc2VkIG9uIHRoZSByb2xlIGFzc2lnbmVkLiBJdCBpcyBjcnVjaWFsIGZvciBtYW5hZ2luZyBzZWN1cml0eSBhbmQgYWNjZXNzXG4gICAqIGdvdmVybmFuY2Ugd2l0aGluIHRoZSBLdXN0byBlbnZpcm9ubWVudC5cbiAgICovXG4gIHB1YmxpYyBhZGRQZXJtaXNzaW9uKGt1c3RvRGF0YWJhc2VBY2Nlc3NQcm9wczogRGF0YWJhc2VBY2Nlc3NQcm9wcykge1xuICAgIG5ldyBLdXN0b0RhdGFiYXNlUHJpbmNpcGFsQXNzaWdubWVudChcbiAgICAgIHRoaXMsXG4gICAgICBga3VzdG8tZGItJHtrdXN0b0RhdGFiYXNlQWNjZXNzUHJvcHMubmFtZX0tYWNjZXNzYCxcbiAgICAgIHtcbiAgICAgICAgbmFtZToga3VzdG9EYXRhYmFzZUFjY2Vzc1Byb3BzLm5hbWUsXG4gICAgICAgIHJlc291cmNlR3JvdXBOYW1lOiB0aGlzLnJnLFxuICAgICAgICBjbHVzdGVyTmFtZTogdGhpcy5rdXN0b1Byb3BzLm5hbWUsXG4gICAgICAgIGRhdGFiYXNlTmFtZTogdGhpcy5rdXN0b0RiUHJvcHMubmFtZSxcbiAgICAgICAgdGVuYW50SWQ6IGt1c3RvRGF0YWJhc2VBY2Nlc3NQcm9wcy50ZW5hbnRJZCxcbiAgICAgICAgcHJpbmNpcGFsSWQ6IGt1c3RvRGF0YWJhc2VBY2Nlc3NQcm9wcy5wcmluY2lwYWxJZCxcbiAgICAgICAgcHJpbmNpcGFsVHlwZToga3VzdG9EYXRhYmFzZUFjY2Vzc1Byb3BzLnByaW5jaXBhbFR5cGUsXG4gICAgICAgIHJvbGU6IGt1c3RvRGF0YWJhc2VBY2Nlc3NQcm9wcy5yb2xlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBuZXcgdGFibGUgdG8gYW4gZXhpc3RpbmcgQXp1cmUgS3VzdG8gZGF0YWJhc2UuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGNyZWF0ZXMgYSB0YWJsZSB3aXRoaW4gdGhlIHNwZWNpZmllZCBLdXN0byBkYXRhYmFzZSB1c2luZyBhIGdpdmVuIHNjaGVtYS4gVGFibGVzIGluIEt1c3RvIHN0b3JlIHN0cnVjdHVyZWQgZGF0YSB3aXRoXG4gICAqIGRlZmluZWQgY29sdW1ucyBhbmQgdHlwZXMsIHdoaWNoIGFyZSBjcnVjaWFsIGZvciBzdG9yaW5nIGFuZCBxdWVyeWluZyBsYXJnZSBkYXRhc2V0cyBlZmZpY2llbnRseS4gVGhlIG1ldGhvZCBjb25zdHJ1Y3RzIGEgS3VzdG9cbiAgICogRGF0YSBFeHBsb3JlciBjb250cm9sIGNvbW1hbmQgdG8gY3JlYXRlIHRoZSB0YWJsZSBhbmQgdGhlbiBleGVjdXRlcyB0aGlzIGNvbW1hbmQgd2l0aGluIHRoZSBjb250ZXh0IG9mIHRoZSBkYXRhYmFzZS5cbiAgICpcbiAgICogQHBhcmFtIHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZSB0byBjcmVhdGUsIHdoaWNoIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgZGF0YWJhc2UuXG4gICAqIEBwYXJhbSB0YWJsZVNjaGVtYSAtIEFuIGFycmF5IG9mIHNjaGVtYSBwcm9wZXJ0aWVzIGRlZmluaW5nIHRoZSBjb2x1bW5zIG9mIHRoZSB0YWJsZSwgaW5jbHVkaW5nIGNvbHVtbiBuYW1lcyBhbmQgdGhlaXIgZGF0YSB0eXBlcy5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBteURhdGFiYXNlLmFkZFRhYmxlKCdTYWxlc0RhdGEnLCBbXG4gICAqICAgeyBjb2x1bW5OYW1lOiAnVHJhbnNhY3Rpb25JZCcsIGNvbHVtblR5cGU6ICdpbnQnIH0sXG4gICAqICAgeyBjb2x1bW5OYW1lOiAnVHJhbnNhY3Rpb25EYXRlJywgY29sdW1uVHlwZTogJ2RhdGV0aW1lJyB9LFxuICAgKiAgIHsgY29sdW1uTmFtZTogJ0Ftb3VudCcsIGNvbHVtblR5cGU6ICdyZWFsJyB9XG4gICAqIF0pO1xuICAgKiBgYGBcbiAgICogVGhpcyBtZXRob2QgY29uc3RydWN0cyB0aGUgY29tbWFuZCB0byBjcmVhdGUgdGhlIHRhYmxlIGFuZCBhcHBsaWVzIGl0IGRpcmVjdGx5IHdpdGhpbiB0aGUgS3VzdG8gZGF0YWJhc2UsXG4gICAqIGVuc3VyaW5nIHRoZSB0YWJsZSBpcyByZWFkeSBmb3IgZGF0YSBpbmdlc3Rpb24gYW5kIHF1ZXJ5aW5nLlxuICAgKi9cbiAgcHVibGljIGFkZFRhYmxlKHRhYmxlTmFtZTogc3RyaW5nLCB0YWJsZVNjaGVtYTogVGFibGVTY2hlbWFQcm9wc1tdKSB7XG4gICAgY29uc3Qgc2NoZW1hQ29udGVudCA9IHRhYmxlU2NoZW1hXG4gICAgICAubWFwKChjb2x1bW4pID0+IHtcbiAgICAgICAgcmV0dXJuIGAke2NvbHVtbi5jb2x1bW5OYW1lfToke2NvbHVtbi5jb2x1bW5UeXBlfWA7XG4gICAgICB9KVxuICAgICAgLmpvaW4oXCIsIFwiKTtcbiAgICBjb25zdCBzY3JpcHRDb250ZW50ID0gYC5jcmVhdGUgdGFibGUgJHt0YWJsZU5hbWV9ICggJHtzY2hlbWFDb250ZW50fSApYDtcblxuICAgIG5ldyBLdXN0b1NjcmlwdChcbiAgICAgIHRoaXMsXG4gICAgICBga3VzdG8tZGItJHt0aGlzLmt1c3RvRGJQcm9wcy5uYW1lfS10YWJsZS0ke3RhYmxlTmFtZX1gLFxuICAgICAge1xuICAgICAgICBuYW1lOiB0YWJsZU5hbWUsXG4gICAgICAgIGRhdGFiYXNlSWQ6IHRoaXMuaWQsXG4gICAgICAgIHNjcmlwdENvbnRlbnQ6IHNjcmlwdENvbnRlbnQsXG4gICAgICAgIGNvbnRpbnVlT25FcnJvcnNFbmFibGVkOiBmYWxzZSxcbiAgICAgICAgZm9yY2VBblVwZGF0ZVdoZW5WYWx1ZUNoYW5nZWQ6IE1kNS5oYXNoU3RyKHNjcmlwdENvbnRlbnQpLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYW5kIGV4ZWN1dGVzIGEgY29udHJvbCBjb21tYW5kIG9yIHNjcmlwdCB3aXRoaW4gdGhlIEt1c3RvIGRhdGFiYXNlLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBmYWNpbGl0YXRlcyB0aGUgZXhlY3V0aW9uIG9mIEt1c3RvIFF1ZXJ5IExhbmd1YWdlIChLUUwpIHNjcmlwdHMgb3IgY29udHJvbCBjb21tYW5kcyB3aXRoaW4gdGhlIHNwZWNpZmllZFxuICAgKiBLdXN0byBkYXRhYmFzZS4gU2NyaXB0cyBjYW4gcGVyZm9ybSBhIHZhcmlldHkgb2YgZnVuY3Rpb25zLCBmcm9tIHNjaGVtYSBtb2RpZmljYXRpb25zLCBsaWtlIGFkZGluZyBuZXcgdGFibGVzIG9yIGFsdGVyaW5nXG4gICAqIGV4aXN0aW5nIG9uZXMsIHRvIGRhdGEgbWFuYWdlbWVudCBvcGVyYXRpb25zLCBzdWNoIGFzIGRhdGEgaW5nZXN0aW9uIG9yIGNsZWFudXAgdGFza3MuIEVhY2ggc2NyaXB0IGlzIGV4ZWN1dGVkIGFzIGFcbiAgICogS3VzdG9TY3JpcHQgcmVzb3VyY2UsIHdoaWNoIGVuc3VyZXMgdGhhdCB0aGUgc2NyaXB0IGlzIGFwcGxpZWQgY29ycmVjdGx5IGFuZCBhdG9taWNhbGx5IHRvIHRoZSBkYXRhYmFzZS5cbiAgICpcbiAgICogQHBhcmFtIHNjcmlwdE5hbWUgLSBBIHVuaXF1ZSBuYW1lIGZvciB0aGUgc2NyaXB0LCB3aGljaCBoZWxwcyBpbiBpZGVudGlmeWluZyB0aGUgc2NyaXB0IHJlc291cmNlIHdpdGhpbiB0aGUgZGVwbG95bWVudC5cbiAgICogQHBhcmFtIHNjcmlwdENvbnRlbnQgLSBUaGUgS1FMIHNjcmlwdCBvciBjb250cm9sIGNvbW1hbmQgdG8gYmUgZXhlY3V0ZWQuIFRoaXMgc2hvdWxkIGJlIGEgdmFsaWQgS1FMIGNvbW1hbmQgc3RyaW5nLlxuICAgKlxuICAgKiBFeGFtcGxlIHVzYWdlOlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIG15RGF0YWJhc2UuYWRkU2NyaXB0KCdJbml0aWFsaXplU2FsZXNUYWJsZScsIGBcbiAgICogICAuY3JlYXRlIHRhYmxlIFNhbGVzRGF0YSAoVHJhbnNhY3Rpb25JZDogaW50LCBUcmFuc2FjdGlvbkRhdGU6IGRhdGV0aW1lLCBBbW91bnQ6IHJlYWwpXG4gICAqICAgLmFsdGVyLW1lcmdlIHRhYmxlIFNhbGVzRGF0YSBwb2xpY3kgcmV0ZW50aW9uc29mdGRlbGV0ZSA9IDM2NWRcbiAgICogYCk7XG4gICAqIGBgYFxuICAgKiBUaGlzIG1ldGhvZCB3aWxsIGNyZWF0ZSBhIGBLdXN0b1NjcmlwdGAgcmVzb3VyY2UgdGhhdCBlbmNhcHN1bGF0ZXMgdGhlIGNvbW1hbmQsIGVuc3VyaW5nIGl0IGlzIGV4ZWN1dGVkIGFnYWluc3QgdGhlXG4gICAqIGRhdGFiYXNlLCBhbmQgaXMgdHJhY2tlZCBhcyBwYXJ0IG9mIHRoZSByZXNvdXJjZSBtYW5hZ2VtZW50IHdpdGhpbiBBenVyZS5cbiAgICovXG4gIHB1YmxpYyBhZGRTY3JpcHQoc2NyaXB0TmFtZTogc3RyaW5nLCBzY3JpcHRDb250ZW50OiBzdHJpbmcpIHtcbiAgICBuZXcgS3VzdG9TY3JpcHQoXG4gICAgICB0aGlzLFxuICAgICAgYGt1c3RvLWRiLSR7dGhpcy5rdXN0b0RiUHJvcHMubmFtZX0tc2NyaXB0LSR7c2NyaXB0TmFtZX1gLFxuICAgICAge1xuICAgICAgICBuYW1lOiBgc2NyaXB0LSR7c2NyaXB0TmFtZX1gLFxuICAgICAgICBkYXRhYmFzZUlkOiB0aGlzLmlkLFxuICAgICAgICBzY3JpcHRDb250ZW50OiBzY3JpcHRDb250ZW50LFxuICAgICAgICBjb250aW51ZU9uRXJyb3JzRW5hYmxlZDogZmFsc2UsXG4gICAgICAgIGZvcmNlQW5VcGRhdGVXaGVuVmFsdWVDaGFuZ2VkOiBNZDUuaGFzaFN0cihzY3JpcHRDb250ZW50KSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./cluster"), exports);
|
|
18
|
+
__exportStar(require("./compute-specification"), exports);
|
|
19
|
+
__exportStar(require("./database"), exports);
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUta3VzdG8vbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0Q0FBMEI7QUFDMUIsMERBQXdDO0FBQ3hDLDZDQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2NsdXN0ZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXB1dGUtc3BlY2lmaWNhdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGF0YWJhc2VcIjtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "cdktf/lib/testing/adapters/jest";
|
|
@@ -0,0 +1,50 @@
|
|
|
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
|
+
require("cdktf/lib/testing/adapters/jest");
|
|
7
|
+
const ExampleAzureKusto_1 = require("./ExampleAzureKusto");
|
|
8
|
+
const kusto = require("..");
|
|
9
|
+
describe("Kusto With Defaults", () => {
|
|
10
|
+
let stack;
|
|
11
|
+
let fullSynthResult;
|
|
12
|
+
beforeEach(() => {
|
|
13
|
+
const app = cdktf_1.Testing.app();
|
|
14
|
+
stack = new cdktf_1.TerraformStack(app, "test");
|
|
15
|
+
new provider_1.AzurermProvider(stack, "azureFeature", { features: {} });
|
|
16
|
+
const rg = new resource_group_1.ResourceGroup(stack, "MyResourceGroup", {
|
|
17
|
+
name: "rg-test",
|
|
18
|
+
location: "eastus",
|
|
19
|
+
});
|
|
20
|
+
new kusto.Cluster(stack, "testAzureKustoDefaults", {
|
|
21
|
+
resourceGroup: rg,
|
|
22
|
+
name: "kustotest",
|
|
23
|
+
sku: kusto.ComputeSpecification.devtestExtraSmallEav4,
|
|
24
|
+
});
|
|
25
|
+
fullSynthResult = cdktf_1.Testing.fullSynth(stack); // Save the result for reuse
|
|
26
|
+
});
|
|
27
|
+
it("renders an Kusto with defaults and checks snapshot", () => {
|
|
28
|
+
expect(cdktf_1.Testing.synth(stack)).toMatchSnapshot(); // Compare the already prepared stack
|
|
29
|
+
});
|
|
30
|
+
it("check if the produced terraform configuration is valid", () => {
|
|
31
|
+
expect(fullSynthResult).toBeValidTerraform(); // Use the saved result
|
|
32
|
+
});
|
|
33
|
+
it("check if this can be planned", () => {
|
|
34
|
+
expect(fullSynthResult).toPlanSuccessfully(); // Use the saved result
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
describe("Kusto Example", () => {
|
|
38
|
+
it("renders the Azure Kusto Example and checks snapshot", () => {
|
|
39
|
+
expect(cdktf_1.Testing.synth(new ExampleAzureKusto_1.exampleAzureKusto(cdktf_1.Testing.app(), "testAzureKusto"))).toMatchSnapshot();
|
|
40
|
+
});
|
|
41
|
+
it("check if the produced terraform configuration is valid", () => {
|
|
42
|
+
// We need to do a full synth to plan the terraform configuration
|
|
43
|
+
expect(cdktf_1.Testing.fullSynth(new ExampleAzureKusto_1.exampleAzureKusto(cdktf_1.Testing.app(), "testAzureKusto"))).toBeValidTerraform();
|
|
44
|
+
});
|
|
45
|
+
it("check if this can be planned", () => {
|
|
46
|
+
// We need to do a full synth to plan the terraform configuration
|
|
47
|
+
expect(cdktf_1.Testing.fullSynth(new ExampleAzureKusto_1.exampleAzureKusto(cdktf_1.Testing.app(), "testAzureKusto"))).toPlanSuccessfully();
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXp1cmVLdXN0by5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLWt1c3RvL3Rlc3QvQXp1cmVLdXN0by5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbUVBQXVFO0FBQ3ZFLCtFQUEyRTtBQUMzRSxpQ0FBZ0Q7QUFDaEQsMkNBQXlDO0FBQ3pDLDJEQUF3RDtBQUN4RCw0QkFBNEI7QUFFNUIsUUFBUSxDQUFDLHFCQUFxQixFQUFFLEdBQUcsRUFBRTtJQUNuQyxJQUFJLEtBQXFCLENBQUM7SUFDMUIsSUFBSSxlQUFvQixDQUFDO0lBRXpCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxNQUFNLEdBQUcsR0FBRyxlQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDMUIsS0FBSyxHQUFHLElBQUksc0JBQWMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFeEMsSUFBSSwwQkFBZSxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU3RCxNQUFNLEVBQUUsR0FBRyxJQUFJLDhCQUFhLENBQUMsS0FBSyxFQUFFLGlCQUFpQixFQUFFO1lBQ3JELElBQUksRUFBRSxTQUFTO1lBQ2YsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSx3QkFBd0IsRUFBRTtZQUNqRCxhQUFhLEVBQUUsRUFBRTtZQUNqQixJQUFJLEVBQUUsV0FBVztZQUNqQixHQUFHLEVBQUUsS0FBSyxDQUFDLG9CQUFvQixDQUFDLHFCQUFxQjtTQUN0RCxDQUFDLENBQUM7UUFFSCxlQUFlLEdBQUcsZUFBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLDRCQUE0QjtJQUMxRSxDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyxvREFBb0QsRUFBRSxHQUFHLEVBQUU7UUFDNUQsTUFBTSxDQUFDLGVBQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQUFDLHFDQUFxQztJQUN2RixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx3REFBd0QsRUFBRSxHQUFHLEVBQUU7UUFDaEUsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyx1QkFBdUI7SUFDdkUsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsOEJBQThCLEVBQUUsR0FBRyxFQUFFO1FBQ3RDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsdUJBQXVCO0lBQ3ZFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUM7QUFFSCxRQUFRLENBQUMsZUFBZSxFQUFFLEdBQUcsRUFBRTtJQUM3QixFQUFFLENBQUMscURBQXFELEVBQUUsR0FBRyxFQUFFO1FBQzdELE1BQU0sQ0FDSixlQUFPLENBQUMsS0FBSyxDQUFDLElBQUkscUNBQWlCLENBQUMsZUFBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FDdEUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUN0QixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyx3REFBd0QsRUFBRSxHQUFHLEVBQUU7UUFDaEUsaUVBQWlFO1FBQ2pFLE1BQU0sQ0FDSixlQUFPLENBQUMsU0FBUyxDQUFDLElBQUkscUNBQWlCLENBQUMsZUFBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FDMUUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLDhCQUE4QixFQUFFLEdBQUcsRUFBRTtRQUN0QyxpRUFBaUU7UUFDakUsTUFBTSxDQUNKLGVBQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxxQ0FBaUIsQ0FBQyxlQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUMxRSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDekIsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF6dXJlcm1Qcm92aWRlciB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvcHJvdmlkZXJcIjtcbmltcG9ydCB7IFJlc291cmNlR3JvdXAgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3Jlc291cmNlLWdyb3VwXCI7XG5pbXBvcnQgeyBUZXN0aW5nLCBUZXJyYWZvcm1TdGFjayB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IFwiY2RrdGYvbGliL3Rlc3RpbmcvYWRhcHRlcnMvamVzdFwiO1xuaW1wb3J0IHsgZXhhbXBsZUF6dXJlS3VzdG8gfSBmcm9tIFwiLi9FeGFtcGxlQXp1cmVLdXN0b1wiO1xuaW1wb3J0ICogYXMga3VzdG8gZnJvbSBcIi4uXCI7XG5cbmRlc2NyaWJlKFwiS3VzdG8gV2l0aCBEZWZhdWx0c1wiLCAoKSA9PiB7XG4gIGxldCBzdGFjazogVGVycmFmb3JtU3RhY2s7XG4gIGxldCBmdWxsU3ludGhSZXN1bHQ6IGFueTtcblxuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBjb25zdCBhcHAgPSBUZXN0aW5nLmFwcCgpO1xuICAgIHN0YWNrID0gbmV3IFRlcnJhZm9ybVN0YWNrKGFwcCwgXCJ0ZXN0XCIpO1xuXG4gICAgbmV3IEF6dXJlcm1Qcm92aWRlcihzdGFjaywgXCJhenVyZUZlYXR1cmVcIiwgeyBmZWF0dXJlczoge30gfSk7XG5cbiAgICBjb25zdCByZyA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIk15UmVzb3VyY2VHcm91cFwiLCB7XG4gICAgICBuYW1lOiBcInJnLXRlc3RcIixcbiAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgIH0pO1xuXG4gICAgbmV3IGt1c3RvLkNsdXN0ZXIoc3RhY2ssIFwidGVzdEF6dXJlS3VzdG9EZWZhdWx0c1wiLCB7XG4gICAgICByZXNvdXJjZUdyb3VwOiByZyxcbiAgICAgIG5hbWU6IFwia3VzdG90ZXN0XCIsXG4gICAgICBza3U6IGt1c3RvLkNvbXB1dGVTcGVjaWZpY2F0aW9uLmRldnRlc3RFeHRyYVNtYWxsRWF2NCxcbiAgICB9KTtcblxuICAgIGZ1bGxTeW50aFJlc3VsdCA9IFRlc3RpbmcuZnVsbFN5bnRoKHN0YWNrKTsgLy8gU2F2ZSB0aGUgcmVzdWx0IGZvciByZXVzZVxuICB9KTtcblxuICBpdChcInJlbmRlcnMgYW4gS3VzdG8gd2l0aCBkZWZhdWx0cyBhbmQgY2hlY2tzIHNuYXBzaG90XCIsICgpID0+IHtcbiAgICBleHBlY3QoVGVzdGluZy5zeW50aChzdGFjaykpLnRvTWF0Y2hTbmFwc2hvdCgpOyAvLyBDb21wYXJlIHRoZSBhbHJlYWR5IHByZXBhcmVkIHN0YWNrXG4gIH0pO1xuXG4gIGl0KFwiY2hlY2sgaWYgdGhlIHByb2R1Y2VkIHRlcnJhZm9ybSBjb25maWd1cmF0aW9uIGlzIHZhbGlkXCIsICgpID0+IHtcbiAgICBleHBlY3QoZnVsbFN5bnRoUmVzdWx0KS50b0JlVmFsaWRUZXJyYWZvcm0oKTsgLy8gVXNlIHRoZSBzYXZlZCByZXN1bHRcbiAgfSk7XG5cbiAgaXQoXCJjaGVjayBpZiB0aGlzIGNhbiBiZSBwbGFubmVkXCIsICgpID0+IHtcbiAgICBleHBlY3QoZnVsbFN5bnRoUmVzdWx0KS50b1BsYW5TdWNjZXNzZnVsbHkoKTsgLy8gVXNlIHRoZSBzYXZlZCByZXN1bHRcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoXCJLdXN0byBFeGFtcGxlXCIsICgpID0+IHtcbiAgaXQoXCJyZW5kZXJzIHRoZSBBenVyZSBLdXN0byBFeGFtcGxlIGFuZCBjaGVja3Mgc25hcHNob3RcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIFRlc3Rpbmcuc3ludGgobmV3IGV4YW1wbGVBenVyZUt1c3RvKFRlc3RpbmcuYXBwKCksIFwidGVzdEF6dXJlS3VzdG9cIikpLFxuICAgICkudG9NYXRjaFNuYXBzaG90KCk7XG4gIH0pO1xuXG4gIGl0KFwiY2hlY2sgaWYgdGhlIHByb2R1Y2VkIHRlcnJhZm9ybSBjb25maWd1cmF0aW9uIGlzIHZhbGlkXCIsICgpID0+IHtcbiAgICAvLyBXZSBuZWVkIHRvIGRvIGEgZnVsbCBzeW50aCB0byBwbGFuIHRoZSB0ZXJyYWZvcm0gY29uZmlndXJhdGlvblxuICAgIGV4cGVjdChcbiAgICAgIFRlc3RpbmcuZnVsbFN5bnRoKG5ldyBleGFtcGxlQXp1cmVLdXN0byhUZXN0aW5nLmFwcCgpLCBcInRlc3RBenVyZUt1c3RvXCIpKSxcbiAgICApLnRvQmVWYWxpZFRlcnJhZm9ybSgpO1xuICB9KTtcblxuICBpdChcImNoZWNrIGlmIHRoaXMgY2FuIGJlIHBsYW5uZWRcIiwgKCkgPT4ge1xuICAgIC8vIFdlIG5lZWQgdG8gZG8gYSBmdWxsIHN5bnRoIHRvIHBsYW4gdGhlIHRlcnJhZm9ybSBjb25maWd1cmF0aW9uXG4gICAgZXhwZWN0KFxuICAgICAgVGVzdGluZy5mdWxsU3ludGgobmV3IGV4YW1wbGVBenVyZUt1c3RvKFRlc3RpbmcuYXBwKCksIFwidGVzdEF6dXJlS3VzdG9cIikpLFxuICAgICkudG9QbGFuU3VjY2Vzc2Z1bGx5KCk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.exampleAzureKusto = void 0;
|
|
4
|
+
const data_azurerm_client_config_1 = require("@cdktf/provider-azurerm/lib/data-azurerm-client-config");
|
|
5
|
+
const provider_1 = require("@cdktf/provider-azurerm/lib/provider");
|
|
6
|
+
const resource_group_1 = require("@cdktf/provider-azurerm/lib/resource-group");
|
|
7
|
+
const cdktf_1 = require("cdktf");
|
|
8
|
+
const kusto = require("..");
|
|
9
|
+
const testing_1 = require("../../testing");
|
|
10
|
+
const compute_specification_1 = require("../lib/compute-specification");
|
|
11
|
+
const app = new cdktf_1.App();
|
|
12
|
+
class exampleAzureKusto extends testing_1.BaseTestStack {
|
|
13
|
+
constructor(scope, id) {
|
|
14
|
+
super(scope, id);
|
|
15
|
+
const clientConfig = new data_azurerm_client_config_1.DataAzurermClientConfig(this, "CurrentClientConfig", {});
|
|
16
|
+
new provider_1.AzurermProvider(this, "azureFeature", {
|
|
17
|
+
features: {
|
|
18
|
+
resourceGroup: {
|
|
19
|
+
preventDeletionIfContainsResources: false,
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
const resourceGroup = new resource_group_1.ResourceGroup(this, "rg", {
|
|
24
|
+
name: `rg-${this.name}`,
|
|
25
|
+
location: "eastus",
|
|
26
|
+
});
|
|
27
|
+
// Create Kusto Cluster
|
|
28
|
+
const kustoCluster = new kusto.Cluster(this, "kusto", {
|
|
29
|
+
resourceGroup: resourceGroup,
|
|
30
|
+
name: `kusto${this.name}`,
|
|
31
|
+
sku: compute_specification_1.ComputeSpecification.devtestExtraSmallEav4,
|
|
32
|
+
});
|
|
33
|
+
// Add RBAC to Kusto Cluster
|
|
34
|
+
kustoCluster.addAccess(clientConfig.objectId, "Contributor");
|
|
35
|
+
// Create Database
|
|
36
|
+
const testDB1 = kustoCluster.addDatabase({
|
|
37
|
+
kusto: kustoCluster,
|
|
38
|
+
name: "testDB1",
|
|
39
|
+
hotCachePeriod: "P7D",
|
|
40
|
+
softDeletePeriod: "P31D",
|
|
41
|
+
});
|
|
42
|
+
// Add Permision to Kusto Database
|
|
43
|
+
testDB1.addPermission({
|
|
44
|
+
name: "User1Admin",
|
|
45
|
+
tenantId: clientConfig.tenantId,
|
|
46
|
+
principalId: clientConfig.clientId,
|
|
47
|
+
principalType: "User",
|
|
48
|
+
role: "Admin",
|
|
49
|
+
});
|
|
50
|
+
// Create Table in Kusto Database
|
|
51
|
+
testDB1.addTable("MyTestTable", [
|
|
52
|
+
{
|
|
53
|
+
columnName: "Timestamp",
|
|
54
|
+
columnType: "datetime",
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
columnName: "User",
|
|
58
|
+
columnType: "string",
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
columnName: "Value",
|
|
62
|
+
columnType: "int32",
|
|
63
|
+
},
|
|
64
|
+
]);
|
|
65
|
+
testDB1.addScript("MyTestScript", ".create table MyTestTable2 ( Timestamp:datetime, User:string, Value:int32 )");
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.exampleAzureKusto = exampleAzureKusto;
|
|
69
|
+
new exampleAzureKusto(app, "testAzureKusto");
|
|
70
|
+
app.synth();
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhhbXBsZUF6dXJlS3VzdG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUta3VzdG8vdGVzdC9FeGFtcGxlQXp1cmVLdXN0by50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1R0FBaUc7QUFDakcsbUVBQXVFO0FBQ3ZFLCtFQUEyRTtBQUMzRSxpQ0FBNEI7QUFFNUIsNEJBQTRCO0FBQzVCLDJDQUE4QztBQUM5Qyx3RUFBb0U7QUFFcEUsTUFBTSxHQUFHLEdBQUcsSUFBSSxXQUFHLEVBQUUsQ0FBQztBQUV0QixNQUFhLGlCQUFrQixTQUFRLHVCQUFhO0lBQ2xELFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxZQUFZLEdBQUcsSUFBSSxvREFBdUIsQ0FDOUMsSUFBSSxFQUNKLHFCQUFxQixFQUNyQixFQUFFLENBQ0gsQ0FBQztRQUVGLElBQUksMEJBQWUsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFO1lBQ3hDLFFBQVEsRUFBRTtnQkFDUixhQUFhLEVBQUU7b0JBQ2Isa0NBQWtDLEVBQUUsS0FBSztpQkFDMUM7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUVILE1BQU0sYUFBYSxHQUFHLElBQUksOEJBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ2xELElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDdkIsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQyxDQUFDO1FBRUgsdUJBQXVCO1FBQ3ZCLE1BQU0sWUFBWSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQ3BELGFBQWEsRUFBRSxhQUFhO1lBQzVCLElBQUksRUFBRSxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDekIsR0FBRyxFQUFFLDRDQUFvQixDQUFDLHFCQUFxQjtTQUNoRCxDQUFDLENBQUM7UUFFSCw0QkFBNEI7UUFDNUIsWUFBWSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBRTdELGtCQUFrQjtRQUNsQixNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUMsV0FBVyxDQUFDO1lBQ3ZDLEtBQUssRUFBRSxZQUFZO1lBQ25CLElBQUksRUFBRSxTQUFTO1lBQ2YsY0FBYyxFQUFFLEtBQUs7WUFDckIsZ0JBQWdCLEVBQUUsTUFBTTtTQUN6QixDQUFDLENBQUM7UUFFSCxrQ0FBa0M7UUFDbEMsT0FBTyxDQUFDLGFBQWEsQ0FBQztZQUNwQixJQUFJLEVBQUUsWUFBWTtZQUNsQixRQUFRLEVBQUUsWUFBWSxDQUFDLFFBQVE7WUFDL0IsV0FBVyxFQUFFLFlBQVksQ0FBQyxRQUFRO1lBQ2xDLGFBQWEsRUFBRSxNQUFNO1lBQ3JCLElBQUksRUFBRSxPQUFPO1NBQ2QsQ0FBQyxDQUFDO1FBRUgsaUNBQWlDO1FBQ2pDLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFO1lBQzlCO2dCQUNFLFVBQVUsRUFBRSxXQUFXO2dCQUN2QixVQUFVLEVBQUUsVUFBVTthQUN2QjtZQUNEO2dCQUNFLFVBQVUsRUFBRSxNQUFNO2dCQUNsQixVQUFVLEVBQUUsUUFBUTthQUNyQjtZQUNEO2dCQUNFLFVBQVUsRUFBRSxPQUFPO2dCQUNuQixVQUFVLEVBQUUsT0FBTzthQUNwQjtTQUNGLENBQUMsQ0FBQztRQUVILE9BQU8sQ0FBQyxTQUFTLENBQ2YsY0FBYyxFQUNkLDZFQUE2RSxDQUM5RSxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBdkVELDhDQXVFQztBQUVELElBQUksaUJBQWlCLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFFN0MsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YUF6dXJlcm1DbGllbnRDb25maWcgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL2RhdGEtYXp1cmVybS1jbGllbnQtY29uZmlnXCI7XG5pbXBvcnQgeyBBenVyZXJtUHJvdmlkZXIgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3Byb3ZpZGVyXCI7XG5pbXBvcnQgeyBSZXNvdXJjZUdyb3VwIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9yZXNvdXJjZS1ncm91cFwiO1xuaW1wb3J0IHsgQXBwIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMga3VzdG8gZnJvbSBcIi4uXCI7XG5pbXBvcnQgeyBCYXNlVGVzdFN0YWNrIH0gZnJvbSBcIi4uLy4uL3Rlc3RpbmdcIjtcbmltcG9ydCB7IENvbXB1dGVTcGVjaWZpY2F0aW9uIH0gZnJvbSBcIi4uL2xpYi9jb21wdXRlLXNwZWNpZmljYXRpb25cIjtcblxuY29uc3QgYXBwID0gbmV3IEFwcCgpO1xuXG5leHBvcnQgY2xhc3MgZXhhbXBsZUF6dXJlS3VzdG8gZXh0ZW5kcyBCYXNlVGVzdFN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBjbGllbnRDb25maWcgPSBuZXcgRGF0YUF6dXJlcm1DbGllbnRDb25maWcoXG4gICAgICB0aGlzLFxuICAgICAgXCJDdXJyZW50Q2xpZW50Q29uZmlnXCIsXG4gICAgICB7fSxcbiAgICApO1xuXG4gICAgbmV3IEF6dXJlcm1Qcm92aWRlcih0aGlzLCBcImF6dXJlRmVhdHVyZVwiLCB7XG4gICAgICBmZWF0dXJlczoge1xuICAgICAgICByZXNvdXJjZUdyb3VwOiB7XG4gICAgICAgICAgcHJldmVudERlbGV0aW9uSWZDb250YWluc1Jlc291cmNlczogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzb3VyY2VHcm91cCA9IG5ldyBSZXNvdXJjZUdyb3VwKHRoaXMsIFwicmdcIiwge1xuICAgICAgbmFtZTogYHJnLSR7dGhpcy5uYW1lfWAsXG4gICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICB9KTtcblxuICAgIC8vIENyZWF0ZSBLdXN0byBDbHVzdGVyXG4gICAgY29uc3Qga3VzdG9DbHVzdGVyID0gbmV3IGt1c3RvLkNsdXN0ZXIodGhpcywgXCJrdXN0b1wiLCB7XG4gICAgICByZXNvdXJjZUdyb3VwOiByZXNvdXJjZUdyb3VwLFxuICAgICAgbmFtZTogYGt1c3RvJHt0aGlzLm5hbWV9YCwgLy8gT25seSBsb3dlcmNhc2UgQWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYWxsb3dlZC5cbiAgICAgIHNrdTogQ29tcHV0ZVNwZWNpZmljYXRpb24uZGV2dGVzdEV4dHJhU21hbGxFYXY0LFxuICAgIH0pO1xuXG4gICAgLy8gQWRkIFJCQUMgdG8gS3VzdG8gQ2x1c3RlclxuICAgIGt1c3RvQ2x1c3Rlci5hZGRBY2Nlc3MoY2xpZW50Q29uZmlnLm9iamVjdElkLCBcIkNvbnRyaWJ1dG9yXCIpO1xuXG4gICAgLy8gQ3JlYXRlIERhdGFiYXNlXG4gICAgY29uc3QgdGVzdERCMSA9IGt1c3RvQ2x1c3Rlci5hZGREYXRhYmFzZSh7XG4gICAgICBrdXN0bzoga3VzdG9DbHVzdGVyLFxuICAgICAgbmFtZTogXCJ0ZXN0REIxXCIsXG4gICAgICBob3RDYWNoZVBlcmlvZDogXCJQN0RcIixcbiAgICAgIHNvZnREZWxldGVQZXJpb2Q6IFwiUDMxRFwiLFxuICAgIH0pO1xuXG4gICAgLy8gQWRkIFBlcm1pc2lvbiB0byBLdXN0byBEYXRhYmFzZVxuICAgIHRlc3REQjEuYWRkUGVybWlzc2lvbih7XG4gICAgICBuYW1lOiBcIlVzZXIxQWRtaW5cIixcbiAgICAgIHRlbmFudElkOiBjbGllbnRDb25maWcudGVuYW50SWQsXG4gICAgICBwcmluY2lwYWxJZDogY2xpZW50Q29uZmlnLmNsaWVudElkLFxuICAgICAgcHJpbmNpcGFsVHlwZTogXCJVc2VyXCIsXG4gICAgICByb2xlOiBcIkFkbWluXCIsXG4gICAgfSk7XG5cbiAgICAvLyBDcmVhdGUgVGFibGUgaW4gS3VzdG8gRGF0YWJhc2VcbiAgICB0ZXN0REIxLmFkZFRhYmxlKFwiTXlUZXN0VGFibGVcIiwgW1xuICAgICAge1xuICAgICAgICBjb2x1bW5OYW1lOiBcIlRpbWVzdGFtcFwiLFxuICAgICAgICBjb2x1bW5UeXBlOiBcImRhdGV0aW1lXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBjb2x1bW5OYW1lOiBcIlVzZXJcIixcbiAgICAgICAgY29sdW1uVHlwZTogXCJzdHJpbmdcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGNvbHVtbk5hbWU6IFwiVmFsdWVcIixcbiAgICAgICAgY29sdW1uVHlwZTogXCJpbnQzMlwiLFxuICAgICAgfSxcbiAgICBdKTtcblxuICAgIHRlc3REQjEuYWRkU2NyaXB0KFxuICAgICAgXCJNeVRlc3RTY3JpcHRcIixcbiAgICAgIFwiLmNyZWF0ZSB0YWJsZSBNeVRlc3RUYWJsZTIgKCBUaW1lc3RhbXA6ZGF0ZXRpbWUsIFVzZXI6c3RyaW5nLCBWYWx1ZTppbnQzMiApXCIsXG4gICAgKTtcbiAgfVxufVxuXG5uZXcgZXhhbXBsZUF6dXJlS3VzdG8oYXBwLCBcInRlc3RBenVyZUt1c3RvXCIpO1xuXG5hcHAuc3ludGgoKTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./lib";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./lib"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp1cmUtbG9nYW5hbHl0aWNzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx3Q0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9saWJcIjtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./workspace";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./workspace"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtbG9nYW5hbHl0aWNzL2xpYi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsOENBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vd29ya3NwYWNlXCI7XG4iXX0=
|