@microsoft/terraform-cdk-constructs 0.0.3-pre.10 → 0.0.3-pre.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +858 -681
- package/API.md +499 -405
- package/README.md +4 -5
- package/docs/testing.md +39 -137
- package/lib/azure-actiongroup/lib/actiongroup.d.ts +1 -1
- package/lib/azure-actiongroup/lib/actiongroup.js +4 -4
- package/lib/azure-actiongroup/model/action-group-props.d.ts +3 -2
- package/lib/azure-actiongroup/model/action-group-props.js +1 -1
- package/lib/azure-actiongroup/test/AzureActionGroup.integ.js +66 -0
- package/lib/azure-actiongroup/test/AzureActionGroup.spec.js +5 -33
- package/lib/azure-applicationgateway/lib/gateway.d.ts +5 -3
- package/lib/azure-applicationgateway/lib/gateway.js +14 -7
- package/lib/azure-applicationgateway/test/AzureApplicationGateway.integ.d.ts +1 -0
- package/lib/azure-applicationgateway/test/AzureApplicationGateway.integ.js +272 -0
- package/lib/azure-applicationgateway/test/AzureApplicationGateway.spec.js +3 -35
- package/lib/azure-applicationinsights/lib/appinsights.d.ts +4 -3
- package/lib/azure-applicationinsights/lib/appinsights.js +6 -6
- package/lib/azure-applicationinsights/test/AzureAppInsights.integ.d.ts +1 -0
- package/lib/azure-applicationinsights/test/AzureAppInsights.integ.js +101 -0
- package/lib/azure-applicationinsights/test/AzureAppInsights.spec.js +4 -27
- package/lib/azure-containerregistry/lib/registry.d.ts +4 -3
- package/lib/azure-containerregistry/lib/registry.js +5 -5
- package/lib/azure-containerregistry/test/AzureContainerRegistry.integ.d.ts +1 -0
- package/lib/azure-containerregistry/test/AzureContainerRegistry.integ.js +68 -0
- package/lib/azure-containerregistry/test/AzureContainerRegistry.spec.js +4 -23
- package/lib/azure-datalake/lib/datalake.d.ts +1 -0
- package/lib/azure-datalake/lib/datalake.js +2 -1
- package/lib/azure-datalake/test/AzureDatalake.spec.d.ts +1 -0
- package/lib/azure-datalake/test/AzureDatalake.spec.js +32 -0
- package/lib/azure-datalake/test/AzureStorageAccount.integ.d.ts +1 -0
- package/lib/azure-datalake/test/AzureStorageAccount.integ.js +60 -0
- package/lib/azure-eventhub/lib/authorization.js +1 -1
- package/lib/azure-eventhub/lib/consumer.js +1 -1
- package/lib/azure-eventhub/lib/{cluster.d.ts → eventhubcluster.d.ts} +11 -7
- package/lib/azure-eventhub/lib/eventhubcluster.js +64 -0
- package/lib/azure-eventhub/lib/index.d.ts +1 -1
- package/lib/azure-eventhub/lib/index.js +2 -2
- package/lib/azure-eventhub/lib/instance.d.ts +1 -0
- package/lib/azure-eventhub/lib/instance.js +5 -4
- package/lib/azure-eventhub/lib/kusto-connection.js +1 -1
- package/lib/azure-eventhub/lib/namespace.d.ts +7 -6
- package/lib/azure-eventhub/lib/namespace.js +24 -26
- package/lib/azure-eventhub/test/AzureEventhub.integ.d.ts +1 -0
- package/lib/azure-eventhub/test/AzureEventhub.integ.js +72 -0
- package/lib/azure-eventhub/test/AzureEventhub.spec.js +4 -27
- package/lib/azure-functionapp/lib/functionapplinux.js +1 -1
- package/lib/azure-functionapp/test/AzureLinuxFunctionApp.integ.d.ts +1 -0
- package/lib/azure-functionapp/test/AzureLinuxFunctionApp.integ.js +117 -0
- package/lib/azure-functionapp/test/AzureLinuxFunctionApp.spec.js +4 -21
- package/lib/azure-keyvault/lib/certificate.js +2 -2
- package/lib/azure-keyvault/lib/key.js +1 -1
- package/lib/azure-keyvault/lib/policy.js +1 -1
- package/lib/azure-keyvault/lib/secret.js +1 -1
- package/lib/azure-keyvault/lib/vault.d.ts +3 -2
- package/lib/azure-keyvault/lib/vault.js +4 -4
- package/lib/azure-keyvault/test/AzureKeyVault.integ.d.ts +1 -0
- package/lib/azure-keyvault/test/AzureKeyVault.integ.js +119 -0
- package/lib/azure-keyvault/test/AzureKeyVault.spec.js +4 -35
- package/lib/azure-kubernetes/lib/cluster.js +1 -1
- package/lib/azure-kubernetes/test/AzureKubernetesCluster.integ.d.ts +1 -0
- package/lib/azure-kubernetes/test/AzureKubernetesCluster.integ.js +75 -0
- package/lib/azure-kubernetes/test/AzureKubernetesCluster.spec.js +4 -21
- package/lib/azure-kusto/lib/cluster.d.ts +9 -5
- package/lib/azure-kusto/lib/cluster.js +66 -42
- package/lib/azure-kusto/lib/compute-specification.js +1 -1
- package/lib/azure-kusto/lib/database.d.ts +7 -8
- package/lib/azure-kusto/lib/database.js +23 -25
- package/lib/azure-kusto/test/AzureKusto.integ.d.ts +1 -0
- package/lib/azure-kusto/test/AzureKusto.integ.js +74 -0
- package/lib/azure-kusto/test/AzureKusto.spec.js +3 -22
- package/lib/azure-loganalytics/lib/workspace.d.ts +6 -3
- package/lib/azure-loganalytics/lib/workspace.js +7 -6
- package/lib/azure-loganalytics/test/AzureLogAnalytics.integ.d.ts +1 -0
- package/lib/azure-loganalytics/test/AzureLogAnalytics.integ.js +117 -0
- package/lib/azure-loganalytics/test/AzureLogAnalytics.spec.js +4 -23
- package/lib/azure-metricalert/lib/metric-alert.js +1 -1
- package/lib/azure-metricalert/test/AzureMetricAlert.integ.d.ts +1 -0
- package/lib/azure-metricalert/test/AzureMetricAlert.integ.js +85 -0
- package/lib/azure-metricalert/test/AzureMetricAlert.spec.js +4 -21
- package/lib/azure-networksecuritygroup/lib/preconfigured-rules.js +1 -1
- package/lib/azure-networksecuritygroup/lib/securitygroup.d.ts +4 -3
- package/lib/azure-networksecuritygroup/lib/securitygroup.js +7 -7
- package/lib/azure-networksecuritygroup/test/AzureNetworkSecurityGroup.integ.d.ts +1 -0
- package/lib/azure-networksecuritygroup/test/AzureNetworkSecurityGroup.integ.js +85 -0
- package/lib/azure-networksecuritygroup/test/AzureNetworkSecurityGroup.spec.js +4 -23
- package/lib/azure-queryrulealert/lib/query-rule-alert.js +1 -1
- package/lib/azure-queryrulealert/test/AzureQueryRuleAlert.integ.d.ts +1 -0
- package/lib/azure-queryrulealert/test/AzureQueryRuleAlert.integ.js +63 -0
- package/lib/azure-queryrulealert/test/AzureQueryRuleAlert.spec.js +4 -21
- package/lib/azure-resourcegroup/lib/resource-group.js +1 -1
- package/lib/azure-resourcegroup/test/AzureResourceGroup.integ.d.ts +1 -0
- package/lib/azure-resourcegroup/test/AzureResourceGroup.integ.js +41 -0
- package/lib/azure-resourcegroup/test/AzureResourceGroup.spec.js +4 -17
- package/lib/azure-storageaccount/lib/account.d.ts +5 -0
- package/lib/azure-storageaccount/lib/account.js +3 -2
- package/lib/azure-storageaccount/lib/container.js +2 -2
- package/lib/azure-storageaccount/lib/fileshare.js +2 -2
- package/lib/azure-storageaccount/lib/queue.js +1 -1
- package/lib/azure-storageaccount/lib/table.js +1 -1
- package/lib/azure-storageaccount/test/AzureStorageAccount.integ.d.ts +1 -0
- package/lib/azure-storageaccount/test/AzureStorageAccount.integ.js +84 -0
- package/lib/azure-storageaccount/test/AzureStorageAccount.spec.js +4 -17
- package/lib/azure-virtualmachine/lib/image-references.js +2 -2
- package/lib/azure-virtualmachine/lib/vm.d.ts +29 -6
- package/lib/azure-virtualmachine/lib/vm.js +17 -15
- package/lib/azure-virtualmachine/test/AzureLinuxVirtualMachine.integ.d.ts +1 -0
- package/lib/azure-virtualmachine/test/AzureLinuxVirtualMachine.integ.js +109 -0
- package/lib/azure-virtualmachine/test/AzureLinuxVirtualMachine.spec.js +5 -25
- package/lib/azure-virtualmachine/test/AzureWindowsVirtualMachine.integ.d.ts +1 -0
- package/lib/azure-virtualmachine/test/AzureWindowsVirtualMachine.integ.js +105 -0
- package/lib/azure-virtualmachine/test/AzureWindowsVirtualMachine.spec.js +4 -23
- package/lib/azure-virtualmachinescaleset/lib/cluster.d.ts +28 -6
- package/lib/azure-virtualmachinescaleset/lib/cluster.js +13 -11
- package/lib/azure-virtualmachinescaleset/test/AzureLinuxVirtualMachineScaleSet.integ.d.ts +1 -0
- package/lib/azure-virtualmachinescaleset/test/AzureLinuxVirtualMachineScaleSet.integ.js +113 -0
- package/lib/azure-virtualmachinescaleset/test/AzureLinuxVirtualMachineScaleSet.spec.js +5 -25
- package/lib/azure-virtualmachinescaleset/test/AzureWindowsVirtualMachineScaleSet.integ.d.ts +1 -0
- package/lib/azure-virtualmachinescaleset/test/AzureWindowsVirtualMachineScaleSet.integ.js +109 -0
- package/lib/azure-virtualmachinescaleset/test/AzureWindowsVirtualMachineScaleSet.spec.js +4 -23
- package/lib/azure-virtualnetwork/lib/network.d.ts +4 -3
- package/lib/azure-virtualnetwork/lib/network.js +7 -6
- package/lib/azure-virtualnetwork/lib/peering.js +1 -1
- package/lib/azure-virtualnetwork/test/AzureVirtualNetwork.integ.d.ts +1 -0
- package/lib/azure-virtualnetwork/test/AzureVirtualNetwork.integ.js +92 -0
- package/lib/azure-virtualnetwork/test/AzureVirtualNetwork.spec.js +5 -25
- package/lib/core-azure/lib/diagsettings.d.ts +3 -2
- package/lib/core-azure/lib/diagsettings.js +15 -21
- package/lib/core-azure/lib/rbac.js +1 -1
- package/lib/core-azure/lib/resource.js +6 -4
- package/lib/core-azure/test/AzureResource.integ.d.ts +1 -0
- package/lib/core-azure/test/AzureResource.integ.js +75 -0
- package/lib/testing/index.d.ts +34 -0
- package/lib/testing/index.js +235 -2
- package/package.json +32 -11
- package/cdktf.out/manifest.json +0 -13
- package/cdktf.out/stacks/testAzureActionGroup/cdk.tf.json +0 -111
- package/cdktf.out/stacks/testAzureApplicationGateway/cdk.tf.json +0 -588
- package/cdktf.out/stacks/testAzureApplicationInsights/cdk.tf.json +0 -245
- package/cdktf.out/stacks/testAzureContainerRegistry/cdk.tf.json +0 -179
- package/cdktf.out/stacks/testAzureEventhub/cdk.tf.json +0 -236
- package/cdktf.out/stacks/testAzureKeyVault/cdk.tf.json +0 -436
- package/cdktf.out/stacks/testAzureKubernetesCluster/cdk.tf.json +0 -152
- package/cdktf.out/stacks/testAzureKusto/cdk.tf.json +0 -209
- package/cdktf.out/stacks/testAzureLinuxFunctionApp/cdk.tf.json +0 -439
- package/cdktf.out/stacks/testAzureLinuxVirtualMachineExample/cdk.tf.json +0 -283
- package/cdktf.out/stacks/testAzureLinuxVirtualMachineScaleSetExample/cdk.tf.json +0 -261
- package/cdktf.out/stacks/testAzureLogAnalytics/cdk.tf.json +0 -309
- package/cdktf.out/stacks/testAzureMetricAlert/cdk.tf.json +0 -161
- package/cdktf.out/stacks/testAzureNetworkSecurityGroup/cdk.tf.json +0 -271
- package/cdktf.out/stacks/testAzureQueryRuleAlert/cdk.tf.json +0 -122
- package/cdktf.out/stacks/testAzureResourceGroup/cdk.tf.json +0 -88
- package/cdktf.out/stacks/testAzureStorageAccount/cdk.tf.json +0 -339
- package/cdktf.out/stacks/testAzureVirtualNetwork/cdk.tf.json +0 -264
- package/cdktf.out/stacks/testAzureWindowVirtualMachineScaleSetExample/cdk.tf.json +0 -261
- package/cdktf.out/stacks/testAzureWindowsVirtualMachineExample/cdk.tf.json +0 -280
- package/cdktf.out/stacks/testExampleAzureResource/cdk.tf.json +0 -167
- package/lib/azure-actiongroup/test/ExampleAzureActionGroup.d.ts +0 -5
- package/lib/azure-actiongroup/test/ExampleAzureActionGroup.js +0 -66
- package/lib/azure-applicationgateway/test/ExampleAzureApplicationGateway.d.ts +0 -5
- package/lib/azure-applicationgateway/test/ExampleAzureApplicationGateway.js +0 -267
- package/lib/azure-applicationinsights/test/ExampleAzureApplicationInsights.d.ts +0 -5
- package/lib/azure-applicationinsights/test/ExampleAzureApplicationInsights.js +0 -87
- package/lib/azure-containerregistry/test/ExampleAzureContainerRegistry.d.ts +0 -5
- package/lib/azure-containerregistry/test/ExampleAzureContainerRegistry.js +0 -57
- package/lib/azure-eventhub/lib/cluster.js +0 -64
- package/lib/azure-eventhub/test/ExampleAzureEventhub.d.ts +0 -5
- package/lib/azure-eventhub/test/ExampleAzureEventhub.js +0 -72
- package/lib/azure-functionapp/test/ExampleAzureLinuxFunctionApp.d.ts +0 -5
- package/lib/azure-functionapp/test/ExampleAzureLinuxFunctionApp.js +0 -123
- package/lib/azure-keyvault/test/ExampleAzureKeyVault.d.ts +0 -5
- package/lib/azure-keyvault/test/ExampleAzureKeyVault.js +0 -112
- package/lib/azure-kubernetes/test/ExampleAzureKubernetesCluster.d.ts +0 -5
- package/lib/azure-kubernetes/test/ExampleAzureKubernetesCluster.js +0 -65
- package/lib/azure-kusto/test/ExampleAzureKusto.d.ts +0 -5
- package/lib/azure-kusto/test/ExampleAzureKusto.js +0 -71
- package/lib/azure-loganalytics/test/ExampleAzureLogAnalytics.d.ts +0 -5
- package/lib/azure-loganalytics/test/ExampleAzureLogAnalytics.js +0 -115
- package/lib/azure-metricalert/test/ExampleAzureMetricAlert.d.ts +0 -5
- package/lib/azure-metricalert/test/ExampleAzureMetricAlert.js +0 -81
- package/lib/azure-networksecuritygroup/test/ExampleAzureNetworkSecurityGroup.d.ts +0 -5
- package/lib/azure-networksecuritygroup/test/ExampleAzureNetworkSecurityGroup.js +0 -97
- package/lib/azure-queryrulealert/test/ExampleAzureQueryRuleAlert.d.ts +0 -5
- package/lib/azure-queryrulealert/test/ExampleAzureQueryRuleAlert.js +0 -67
- package/lib/azure-resourcegroup/test/ExampleAzureResourceGroup.d.ts +0 -5
- package/lib/azure-resourcegroup/test/ExampleAzureResourceGroup.js +0 -29
- package/lib/azure-storageaccount/test/ExampleAzureStorageAccount.d.ts +0 -5
- package/lib/azure-storageaccount/test/ExampleAzureStorageAccount.js +0 -102
- package/lib/azure-virtualmachine/test/ExampleAzureLinuxVirtualMachine.d.ts +0 -5
- package/lib/azure-virtualmachine/test/ExampleAzureLinuxVirtualMachine.js +0 -106
- package/lib/azure-virtualmachine/test/ExampleAzureWindowsVirtualMachine.d.ts +0 -5
- package/lib/azure-virtualmachine/test/ExampleAzureWindowsVirtualMachine.js +0 -102
- package/lib/azure-virtualmachinescaleset/test/ExampleAzureLinuxVirtualMachineScaleSet.d.ts +0 -5
- package/lib/azure-virtualmachinescaleset/test/ExampleAzureLinuxVirtualMachineScaleSet.js +0 -107
- package/lib/azure-virtualmachinescaleset/test/ExampleAzureWindowsVirtualMachineScaleSet.d.ts +0 -5
- package/lib/azure-virtualmachinescaleset/test/ExampleAzureWindowsVirtualMachineScaleSet.js +0 -103
- package/lib/azure-virtualnetwork/test/ExampleAzureVirtualNetwork.d.ts +0 -5
- package/lib/azure-virtualnetwork/test/ExampleAzureVirtualNetwork.js +0 -88
- package/lib/core-azure/test/AzureResource.spec.js +0 -19
- package/lib/core-azure/test/ExampleAzureResource.d.ts +0 -5
- package/lib/core-azure/test/ExampleAzureResource.js +0 -67
- package/tfsec.json +0 -4
- /package/lib/{core-azure/test/AzureResource.spec.d.ts → azure-actiongroup/test/AzureActionGroup.integ.d.ts} +0 -0
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.exampleAzureKubernetesCluster = void 0;
|
|
4
|
-
const log_analytics_workspace_1 = require("@cdktf/provider-azurerm/lib/log-analytics-workspace");
|
|
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 aks = require("..");
|
|
9
|
-
const testing_1 = require("../../testing");
|
|
10
|
-
const app = new cdktf_1.App();
|
|
11
|
-
class exampleAzureKubernetesCluster extends testing_1.BaseTestStack {
|
|
12
|
-
constructor(scope, id) {
|
|
13
|
-
super(scope, id);
|
|
14
|
-
new provider_1.AzurermProvider(this, "azureFeature", {
|
|
15
|
-
features: {
|
|
16
|
-
resourceGroup: {
|
|
17
|
-
preventDeletionIfContainsResources: false,
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
});
|
|
21
|
-
const resourceGroup = new resource_group_1.ResourceGroup(this, "rg", {
|
|
22
|
-
location: "eastus",
|
|
23
|
-
name: `rg-${this.name}`,
|
|
24
|
-
tags: {
|
|
25
|
-
test: "test",
|
|
26
|
-
},
|
|
27
|
-
lifecycle: {
|
|
28
|
-
ignoreChanges: ["tags"],
|
|
29
|
-
},
|
|
30
|
-
});
|
|
31
|
-
const logAnalyticsWorkspace = new log_analytics_workspace_1.LogAnalyticsWorkspace(this, "log_analytics", {
|
|
32
|
-
location: "eastus",
|
|
33
|
-
name: `la-${this.name}`,
|
|
34
|
-
resourceGroupName: resourceGroup.name,
|
|
35
|
-
});
|
|
36
|
-
const aksCluster = new aks.Cluster(this, "testAksCluster", {
|
|
37
|
-
name: "akstest",
|
|
38
|
-
location: "eastus",
|
|
39
|
-
resourceGroup: resourceGroup,
|
|
40
|
-
apiServerAuthorizedIpRanges: ["0.0.0.0"],
|
|
41
|
-
defaultNodePool: {
|
|
42
|
-
name: "default",
|
|
43
|
-
nodeCount: 1,
|
|
44
|
-
vmSize: "Standard_B2s",
|
|
45
|
-
},
|
|
46
|
-
identity: {
|
|
47
|
-
type: "SystemAssigned",
|
|
48
|
-
},
|
|
49
|
-
azureActiveDirectoryRoleBasedAccessControl: {
|
|
50
|
-
managed: true,
|
|
51
|
-
azureRbacEnabled: true,
|
|
52
|
-
},
|
|
53
|
-
});
|
|
54
|
-
//Diag Settings
|
|
55
|
-
aksCluster.addDiagSettings({
|
|
56
|
-
name: "diagsettings",
|
|
57
|
-
logAnalyticsWorkspaceId: logAnalyticsWorkspace.id,
|
|
58
|
-
metricCategories: ["AllMetrics"],
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
exports.exampleAzureKubernetesCluster = exampleAzureKubernetesCluster;
|
|
63
|
-
new exampleAzureKubernetesCluster(app, "testAzureKubernetesCluster");
|
|
64
|
-
app.synth();
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhhbXBsZUF6dXJlS3ViZXJuZXRlc0NsdXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUta3ViZXJuZXRlcy90ZXN0L0V4YW1wbGVBenVyZUt1YmVybmV0ZXNDbHVzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlHQUE0RjtBQUM1RixtRUFBdUU7QUFDdkUsK0VBQTJFO0FBQzNFLGlDQUE0QjtBQUU1QiwwQkFBMEI7QUFDMUIsMkNBQThDO0FBRTlDLE1BQU0sR0FBRyxHQUFHLElBQUksV0FBRyxFQUFFLENBQUM7QUFFdEIsTUFBYSw2QkFBOEIsU0FBUSx1QkFBYTtJQUM5RCxZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUN0QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksMEJBQWUsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFO1lBQ3hDLFFBQVEsRUFBRTtnQkFDUixhQUFhLEVBQUU7b0JBQ2Isa0NBQWtDLEVBQUUsS0FBSztpQkFDMUM7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUVILE1BQU0sYUFBYSxHQUFHLElBQUksOEJBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ2xELFFBQVEsRUFBRSxRQUFRO1lBQ2xCLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDdkIsSUFBSSxFQUFFO2dCQUNKLElBQUksRUFBRSxNQUFNO2FBQ2I7WUFDRCxTQUFTLEVBQUU7Z0JBQ1QsYUFBYSxFQUFFLENBQUMsTUFBTSxDQUFDO2FBQ3hCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLCtDQUFxQixDQUNyRCxJQUFJLEVBQ0osZUFBZSxFQUNmO1lBQ0UsUUFBUSxFQUFFLFFBQVE7WUFDbEIsSUFBSSxFQUFFLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRTtZQUN2QixpQkFBaUIsRUFBRSxhQUFhLENBQUMsSUFBSTtTQUN0QyxDQUNGLENBQUM7UUFFRixNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQ3pELElBQUksRUFBRSxTQUFTO1lBQ2YsUUFBUSxFQUFFLFFBQVE7WUFDbEIsYUFBYSxFQUFFLGFBQWE7WUFDNUIsMkJBQTJCLEVBQUUsQ0FBQyxTQUFTLENBQUM7WUFDeEMsZUFBZSxFQUFFO2dCQUNmLElBQUksRUFBRSxTQUFTO2dCQUNmLFNBQVMsRUFBRSxDQUFDO2dCQUNaLE1BQU0sRUFBRSxjQUFjO2FBQ3ZCO1lBQ0QsUUFBUSxFQUFFO2dCQUNSLElBQUksRUFBRSxnQkFBZ0I7YUFDdkI7WUFDRCwwQ0FBMEMsRUFBRTtnQkFDMUMsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsZ0JBQWdCLEVBQUUsSUFBSTthQUN2QjtTQUNGLENBQUMsQ0FBQztRQUVILGVBQWU7UUFDZixVQUFVLENBQUMsZUFBZSxDQUFDO1lBQ3pCLElBQUksRUFBRSxjQUFjO1lBQ3BCLHVCQUF1QixFQUFFLHFCQUFxQixDQUFDLEVBQUU7WUFDakQsZ0JBQWdCLEVBQUUsQ0FBQyxZQUFZLENBQUM7U0FDakMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBM0RELHNFQTJEQztBQUVELElBQUksNkJBQTZCLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDLENBQUM7QUFFckUsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9nQW5hbHl0aWNzV29ya3NwYWNlIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9sb2ctYW5hbHl0aWNzLXdvcmtzcGFjZVwiO1xuaW1wb3J0IHsgQXp1cmVybVByb3ZpZGVyIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9wcm92aWRlclwiO1xuaW1wb3J0IHsgUmVzb3VyY2VHcm91cCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvcmVzb3VyY2UtZ3JvdXBcIjtcbmltcG9ydCB7IEFwcCB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIGFrcyBmcm9tIFwiLi5cIjtcbmltcG9ydCB7IEJhc2VUZXN0U3RhY2sgfSBmcm9tIFwiLi4vLi4vdGVzdGluZ1wiO1xuXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5cbmV4cG9ydCBjbGFzcyBleGFtcGxlQXp1cmVLdWJlcm5ldGVzQ2x1c3RlciBleHRlbmRzIEJhc2VUZXN0U3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIG5ldyBBenVyZXJtUHJvdmlkZXIodGhpcywgXCJhenVyZUZlYXR1cmVcIiwge1xuICAgICAgZmVhdHVyZXM6IHtcbiAgICAgICAgcmVzb3VyY2VHcm91cDoge1xuICAgICAgICAgIHByZXZlbnREZWxldGlvbklmQ29udGFpbnNSZXNvdXJjZXM6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlc291cmNlR3JvdXAgPSBuZXcgUmVzb3VyY2VHcm91cCh0aGlzLCBcInJnXCIsIHtcbiAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgbmFtZTogYHJnLSR7dGhpcy5uYW1lfWAsXG4gICAgICB0YWdzOiB7XG4gICAgICAgIHRlc3Q6IFwidGVzdFwiLFxuICAgICAgfSxcbiAgICAgIGxpZmVjeWNsZToge1xuICAgICAgICBpZ25vcmVDaGFuZ2VzOiBbXCJ0YWdzXCJdLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGxvZ0FuYWx5dGljc1dvcmtzcGFjZSA9IG5ldyBMb2dBbmFseXRpY3NXb3Jrc3BhY2UoXG4gICAgICB0aGlzLFxuICAgICAgXCJsb2dfYW5hbHl0aWNzXCIsXG4gICAgICB7XG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBuYW1lOiBgbGEtJHt0aGlzLm5hbWV9YCxcbiAgICAgICAgcmVzb3VyY2VHcm91cE5hbWU6IHJlc291cmNlR3JvdXAubmFtZSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGNvbnN0IGFrc0NsdXN0ZXIgPSBuZXcgYWtzLkNsdXN0ZXIodGhpcywgXCJ0ZXN0QWtzQ2x1c3RlclwiLCB7XG4gICAgICBuYW1lOiBcImFrc3Rlc3RcIixcbiAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgcmVzb3VyY2VHcm91cDogcmVzb3VyY2VHcm91cCxcbiAgICAgIGFwaVNlcnZlckF1dGhvcml6ZWRJcFJhbmdlczogW1wiMC4wLjAuMFwiXSxcbiAgICAgIGRlZmF1bHROb2RlUG9vbDoge1xuICAgICAgICBuYW1lOiBcImRlZmF1bHRcIixcbiAgICAgICAgbm9kZUNvdW50OiAxLFxuICAgICAgICB2bVNpemU6IFwiU3RhbmRhcmRfQjJzXCIsXG4gICAgICB9LFxuICAgICAgaWRlbnRpdHk6IHtcbiAgICAgICAgdHlwZTogXCJTeXN0ZW1Bc3NpZ25lZFwiLFxuICAgICAgfSxcbiAgICAgIGF6dXJlQWN0aXZlRGlyZWN0b3J5Um9sZUJhc2VkQWNjZXNzQ29udHJvbDoge1xuICAgICAgICBtYW5hZ2VkOiB0cnVlLFxuICAgICAgICBhenVyZVJiYWNFbmFibGVkOiB0cnVlLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vRGlhZyBTZXR0aW5nc1xuICAgIGFrc0NsdXN0ZXIuYWRkRGlhZ1NldHRpbmdzKHtcbiAgICAgIG5hbWU6IFwiZGlhZ3NldHRpbmdzXCIsXG4gICAgICBsb2dBbmFseXRpY3NXb3Jrc3BhY2VJZDogbG9nQW5hbHl0aWNzV29ya3NwYWNlLmlkLFxuICAgICAgbWV0cmljQ2F0ZWdvcmllczogW1wiQWxsTWV0cmljc1wiXSxcbiAgICB9KTtcbiAgfVxufVxuXG5uZXcgZXhhbXBsZUF6dXJlS3ViZXJuZXRlc0NsdXN0ZXIoYXBwLCBcInRlc3RBenVyZUt1YmVybmV0ZXNDbHVzdGVyXCIpO1xuXG5hcHAuc3ludGgoKTtcbiJdfQ==
|
|
@@ -1,71 +0,0 @@
|
|
|
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==
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.exampleAzureLogAnalytics = void 0;
|
|
4
|
-
const data_azurerm_client_config_1 = require("@cdktf/provider-azurerm/lib/data-azurerm-client-config");
|
|
5
|
-
const eventhub_namespace_1 = require("@cdktf/provider-azurerm/lib/eventhub-namespace");
|
|
6
|
-
const provider_1 = require("@cdktf/provider-azurerm/lib/provider");
|
|
7
|
-
const resource_group_1 = require("@cdktf/provider-azurerm/lib/resource-group");
|
|
8
|
-
const storage_account_1 = require("@cdktf/provider-azurerm/lib/storage-account");
|
|
9
|
-
const cdktf = require("cdktf");
|
|
10
|
-
const cdktf_1 = require("cdktf");
|
|
11
|
-
const la = require("..");
|
|
12
|
-
const testing_1 = require("../../testing");
|
|
13
|
-
const app = new cdktf_1.App();
|
|
14
|
-
class exampleAzureLogAnalytics extends testing_1.BaseTestStack {
|
|
15
|
-
constructor(scope, id) {
|
|
16
|
-
super(scope, id);
|
|
17
|
-
const clientConfig = new data_azurerm_client_config_1.DataAzurermClientConfig(this, "CurrentClientConfig", {});
|
|
18
|
-
new provider_1.AzurermProvider(this, "azureFeature", {
|
|
19
|
-
features: {},
|
|
20
|
-
});
|
|
21
|
-
const resourceGroup = new resource_group_1.ResourceGroup(this, "rg", {
|
|
22
|
-
location: "eastus",
|
|
23
|
-
name: `rg-${this.name}`,
|
|
24
|
-
});
|
|
25
|
-
const namespace = new eventhub_namespace_1.EventhubNamespace(this, "ehns", {
|
|
26
|
-
name: `ehns-${this.name}`,
|
|
27
|
-
resourceGroupName: resourceGroup.name,
|
|
28
|
-
location: resourceGroup.location,
|
|
29
|
-
sku: "Standard",
|
|
30
|
-
});
|
|
31
|
-
const storage = new storage_account_1.StorageAccount(this, "storage", {
|
|
32
|
-
name: `sta${this.name}88t97`,
|
|
33
|
-
resourceGroupName: resourceGroup.name,
|
|
34
|
-
location: resourceGroup.location,
|
|
35
|
-
accountReplicationType: "LRS",
|
|
36
|
-
accountTier: "Standard",
|
|
37
|
-
minTlsVersion: "TLS1_2",
|
|
38
|
-
publicNetworkAccessEnabled: false,
|
|
39
|
-
networkRules: {
|
|
40
|
-
bypass: ["AzureServices"],
|
|
41
|
-
defaultAction: "Deny",
|
|
42
|
-
},
|
|
43
|
-
});
|
|
44
|
-
const logAnalyticsWorkspace = new la.Workspace(this, "la", {
|
|
45
|
-
name: `la-${this.name}`,
|
|
46
|
-
location: "eastus",
|
|
47
|
-
retention: 90,
|
|
48
|
-
sku: "PerGB2018",
|
|
49
|
-
resourceGroup: resourceGroup,
|
|
50
|
-
functions: [
|
|
51
|
-
{
|
|
52
|
-
name: "function_name_1",
|
|
53
|
-
displayName: "Example function 1",
|
|
54
|
-
query: "Event | where EventLevelName != 'Informational' | where TimeGenerated > ago(24h)",
|
|
55
|
-
functionAlias: "function_name_1",
|
|
56
|
-
functionParameters: [],
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
name: "function_name_2",
|
|
60
|
-
displayName: "Example function 2",
|
|
61
|
-
query: "Event | where EventLevelName != 'Informational' | where TimeGenerated > ago(24h)",
|
|
62
|
-
functionAlias: "function_name_2",
|
|
63
|
-
functionParameters: ["typeArg:string=mail", "tagsArg:string=dc"],
|
|
64
|
-
},
|
|
65
|
-
],
|
|
66
|
-
dataExport: [
|
|
67
|
-
{
|
|
68
|
-
name: "export-test",
|
|
69
|
-
exportDestinationId: namespace.id,
|
|
70
|
-
tableNames: ["Heartbeat"],
|
|
71
|
-
enabled: true,
|
|
72
|
-
},
|
|
73
|
-
],
|
|
74
|
-
});
|
|
75
|
-
// Test RBAC
|
|
76
|
-
logAnalyticsWorkspace.addAccess(clientConfig.objectId, "Contributor");
|
|
77
|
-
logAnalyticsWorkspace.addAccess(clientConfig.objectId, "Monitoring Reader");
|
|
78
|
-
// Test Diag Settings
|
|
79
|
-
logAnalyticsWorkspace.addDiagSettings({ storageAccountId: storage.id });
|
|
80
|
-
// Test Metric Alert
|
|
81
|
-
logAnalyticsWorkspace.addMetricAlert({
|
|
82
|
-
name: "metricAlert-test",
|
|
83
|
-
criteria: [
|
|
84
|
-
{
|
|
85
|
-
metricName: "Heartbeat",
|
|
86
|
-
metricNamespace: "Microsoft.operationalinsights/workspaces",
|
|
87
|
-
aggregation: "Average",
|
|
88
|
-
operator: "LessThan",
|
|
89
|
-
threshold: 0,
|
|
90
|
-
},
|
|
91
|
-
],
|
|
92
|
-
});
|
|
93
|
-
// Outputs to use for End to End Test
|
|
94
|
-
const cdktfTerraformOutputRG = new cdktf.TerraformOutput(this, "resource_group_name", {
|
|
95
|
-
value: resourceGroup.name,
|
|
96
|
-
});
|
|
97
|
-
const cdktfTerraformOutputLAName = new cdktf.TerraformOutput(this, "loganalytics_workspace_name", {
|
|
98
|
-
value: logAnalyticsWorkspace.props.name,
|
|
99
|
-
});
|
|
100
|
-
const cdktfTerraformOutputLASku = new cdktf.TerraformOutput(this, "loganalytics_workspace_sku", {
|
|
101
|
-
value: logAnalyticsWorkspace.props.sku,
|
|
102
|
-
});
|
|
103
|
-
const cdktfTerraformOutputLARetention = new cdktf.TerraformOutput(this, "loganalytics_workspace_retention", {
|
|
104
|
-
value: logAnalyticsWorkspace.props.retention,
|
|
105
|
-
});
|
|
106
|
-
cdktfTerraformOutputRG.overrideLogicalId("resource_group_name");
|
|
107
|
-
cdktfTerraformOutputLAName.overrideLogicalId("loganalytics_workspace_name");
|
|
108
|
-
cdktfTerraformOutputLASku.overrideLogicalId("loganalytics_workspace_sku");
|
|
109
|
-
cdktfTerraformOutputLARetention.overrideLogicalId("loganalytics_workspace_retention");
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
exports.exampleAzureLogAnalytics = exampleAzureLogAnalytics;
|
|
113
|
-
new exampleAzureLogAnalytics(app, "testAzureLogAnalytics");
|
|
114
|
-
app.synth();
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhhbXBsZUF6dXJlTG9nQW5hbHl0aWNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLWxvZ2FuYWx5dGljcy90ZXN0L0V4YW1wbGVBenVyZUxvZ0FuYWx5dGljcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1R0FBaUc7QUFDakcsdUZBQW1GO0FBQ25GLG1FQUF1RTtBQUN2RSwrRUFBMkU7QUFDM0UsaUZBQTZFO0FBQzdFLCtCQUErQjtBQUMvQixpQ0FBNEI7QUFFNUIseUJBQXlCO0FBQ3pCLDJDQUE4QztBQUU5QyxNQUFNLEdBQUcsR0FBRyxJQUFJLFdBQUcsRUFBRSxDQUFDO0FBRXRCLE1BQWEsd0JBQXlCLFNBQVEsdUJBQWE7SUFDekQsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLFlBQVksR0FBRyxJQUFJLG9EQUF1QixDQUM5QyxJQUFJLEVBQ0oscUJBQXFCLEVBQ3JCLEVBQUUsQ0FDSCxDQUFDO1FBRUYsSUFBSSwwQkFBZSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDeEMsUUFBUSxFQUFFLEVBQUU7U0FDYixDQUFDLENBQUM7UUFFSCxNQUFNLGFBQWEsR0FBRyxJQUFJLDhCQUFhLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtZQUNsRCxRQUFRLEVBQUUsUUFBUTtZQUNsQixJQUFJLEVBQUUsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFO1NBQ3hCLENBQUMsQ0FBQztRQUVILE1BQU0sU0FBUyxHQUFHLElBQUksc0NBQWlCLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUNwRCxJQUFJLEVBQUUsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ3pCLGlCQUFpQixFQUFFLGFBQWEsQ0FBQyxJQUFJO1lBQ3JDLFFBQVEsRUFBRSxhQUFhLENBQUMsUUFBUTtZQUNoQyxHQUFHLEVBQUUsVUFBVTtTQUNo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cUJBQXFCLENBQUMsS0FBSyxDQUFDLEdBQUc7U0FDdkMsQ0FDRixDQUFDO1FBQ0YsTUFBTSwrQkFBK0IsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQy9ELElBQUksRUFDSixrQ0FBa0MsRUFDbEM7WUFDRSxLQUFLLEVBQUUscUJBQXFCLENBQUMsS0FBSyxDQUFDLFNBQVM7U0FDN0MsQ0FDRixDQUFDO1FBRUYsc0JBQXNCLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNoRSwwQkFBMEIsQ0FBQyxpQkFBaUIsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQzVFLHlCQUF5QixDQUFDLGlCQUFpQixDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDMUUsK0JBQStCLENBQUMsaUJBQWlCLENBQy9DLGtDQUFrQyxDQUNuQyxDQUFDO0lBQ0osQ0FBQztDQUNGO0FBcElELDREQW9JQztBQUVELElBQUksd0JBQXdCLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDLENBQUM7QUFFM0QsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YUF6dXJlcm1DbGllbnRDb25maWcgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL2RhdGEtYXp1cmVybS1jbGllbnQtY29uZmlnXCI7XG5pbXBvcnQgeyBFdmVudGh1Yk5hbWVzcGFjZSB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvZXZlbnRodWItbmFtZXNwYWNlXCI7XG5pbXBvcnQgeyBBenVyZXJtUHJvdmlkZXIgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3Byb3ZpZGVyXCI7XG5pbXBvcnQgeyBSZXNvdXJjZUdyb3VwIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9yZXNvdXJjZS1ncm91cFwiO1xuaW1wb3J0IHsgU3RvcmFnZUFjY291bnQgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3N0b3JhZ2UtYWNjb3VudFwiO1xuaW1wb3J0ICogYXMgY2RrdGYgZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBBcHAgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyBsYSBmcm9tIFwiLi5cIjtcbmltcG9ydCB7IEJhc2VUZXN0U3RhY2sgfSBmcm9tIFwiLi4vLi4vdGVzdGluZ1wiO1xuXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5cbmV4cG9ydCBjbGFzcyBleGFtcGxlQXp1cmVMb2dBbmFseXRpY3MgZXh0ZW5kcyBCYXNlVGVzdFN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBjbGllbnRDb25maWcgPSBuZXcgRGF0YUF6dXJlcm1DbGllbnRDb25maWcoXG4gICAgICB0aGlzLFxuICAgICAgXCJDdXJyZW50Q2xpZW50Q29uZmlnXCIsXG4gICAgICB7fSxcbiAgICApO1xuXG4gICAgbmV3IEF6dXJlcm1Qcm92aWRlcih0aGlzLCBcImF6dXJlRmVhdHVyZVwiLCB7XG4gICAgICBmZWF0dXJlczoge30sXG4gICAgfSk7XG5cbiAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAodGhpcywgXCJyZ1wiLCB7XG4gICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIG5hbWU6IGByZy0ke3RoaXMubmFtZX1gLFxuICAgIH0pO1xuXG4gICAgY29uc3QgbmFtZXNwYWNlID0gbmV3IEV2ZW50aHViTmFtZXNwYWNlKHRoaXMsIFwiZWhuc1wiLCB7XG4gICAgICBuYW1lOiBgZWhucy0ke3RoaXMubmFtZX1gLFxuICAgICAgcmVzb3VyY2VHcm91cE5hbWU6IHJlc291cmNlR3JvdXAubmFtZSxcbiAgICAgIGxvY2F0aW9uOiByZXNvdXJjZUdyb3VwLmxvY2F0aW9uLFxuICAgICAgc2t1OiBcIlN0YW5kYXJkXCIsXG4gICAgfSk7XG5cbiAgICBjb25zdCBzdG9yYWdlID0gbmV3IFN0b3JhZ2VBY2NvdW50KHRoaXMsIFwic3RvcmFnZVwiLCB7XG4gICAgICBuYW1lOiBgc3RhJHt0aGlzLm5hbWV9ODh0OTdgLFxuICAgICAgcmVzb3VyY2VHcm91cE5hbWU6IHJlc291cmNlR3JvdXAubmFtZSxcbiAgICAgIGxvY2F0aW9uOiByZXNvdXJjZUdyb3VwLmxvY2F0aW9uLFxuICAgICAgYWNjb3VudFJlcGxpY2F0aW9uVHlwZTogXCJMUlNcIixcbiAgICAgIGFjY291bnRUaWVyOiBcIlN0YW5kYXJkXCIsXG4gICAgICBtaW5UbHNWZXJzaW9uOiBcIlRMUzFfMlwiLFxuICAgICAgcHVibGljTmV0d29ya0FjY2Vzc0VuYWJsZWQ6IGZhbHNlLFxuICAgICAgbmV0d29ya1J1bGVzOiB7XG4gICAgICAgIGJ5cGFzczogW1wiQXp1cmVTZXJ2aWNlc1wiXSxcbiAgICAgICAgZGVmYXVsdEFjdGlvbjogXCJEZW55XCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgbG9nQW5hbHl0aWNzV29ya3NwYWNlID0gbmV3IGxhLldvcmtzcGFjZSh0aGlzLCBcImxhXCIsIHtcbiAgICAgIG5hbWU6IGBsYS0ke3RoaXMubmFtZX1gLFxuICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICByZXRlbnRpb246IDkwLFxuICAgICAgc2t1OiBcIlBlckdCMjAxOFwiLFxuICAgICAgcmVzb3VyY2VHcm91cDogcmVzb3VyY2VHcm91cCxcbiAgICAgIGZ1bmN0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJmdW5jdGlvbl9uYW1lXzFcIixcbiAgICAgICAgICBkaXNwbGF5TmFtZTogXCJFeGFtcGxlIGZ1bmN0aW9uIDFcIixcbiAgICAgICAgICBxdWVyeTpcbiAgICAgICAgICAgIFwiRXZlbnQgfCB3aGVyZSBFdmVudExldmVsTmFtZSAhPSAnSW5mb3JtYXRpb25hbCcgfCB3aGVyZSBUaW1lR2VuZXJhdGVkID4gYWdvKDI0aClcIixcbiAgICAgICAgICBmdW5jdGlvbkFsaWFzOiBcImZ1bmN0aW9uX25hbWVfMVwiLFxuICAgICAgICAgIGZ1bmN0aW9uUGFyYW1ldGVyczogW10sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcImZ1bmN0aW9uX25hbWVfMlwiLFxuICAgICAgICAgIGRpc3BsYXlOYW1lOiBcIkV4YW1wbGUgZnVuY3Rpb24gMlwiLFxuICAgICAgICAgIHF1ZXJ5OlxuICAgICAgICAgICAgXCJFdmVudCB8IHdoZXJlIEV2ZW50TGV2ZWxOYW1lICE9ICdJbmZvcm1hdGlvbmFsJyB8IHdoZXJlIFRpbWVHZW5lcmF0ZWQgPiBhZ28oMjRoKVwiLFxuICAgICAgICAgIGZ1bmN0aW9uQWxpYXM6IFwiZnVuY3Rpb25fbmFtZV8yXCIsXG4gICAgICAgICAgZnVuY3Rpb25QYXJhbWV0ZXJzOiBbXCJ0eXBlQXJnOnN0cmluZz1tYWlsXCIsIFwidGFnc0FyZzpzdHJpbmc9ZGNcIl0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgZGF0YUV4cG9ydDogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJleHBvcnQtdGVzdFwiLFxuICAgICAgICAgIGV4cG9ydERlc3RpbmF0aW9uSWQ6IG5hbWVzcGFjZS5pZCxcbiAgICAgICAgICB0YWJsZU5hbWVzOiBbXCJIZWFydGJlYXRcIl0sXG4gICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICAvLyBUZXN0IFJCQUNcbiAgICBsb2dBbmFseXRpY3NXb3Jrc3BhY2UuYWRkQWNjZXNzKGNsaWVudENvbmZpZy5vYmplY3RJZCwgXCJDb250cmlidXRvclwiKTtcbiAgICBsb2dBbmFseXRpY3NXb3Jrc3BhY2UuYWRkQWNjZXNzKGNsaWVudENvbmZpZy5vYmplY3RJZCwgXCJNb25pdG9yaW5nIFJlYWRlclwiKTtcblxuICAgIC8vIFRlc3QgRGlhZyBTZXR0aW5nc1xuICAgIGxvZ0FuYWx5dGljc1dvcmtzcGFjZS5hZGREaWFnU2V0dGluZ3MoeyBzdG9yYWdlQWNjb3VudElkOiBzdG9yYWdlLmlkIH0pO1xuXG4gICAgLy8gVGVzdCBNZXRyaWMgQWxlcnRcbiAgICBsb2dBbmFseXRpY3NXb3Jrc3BhY2UuYWRkTWV0cmljQWxlcnQoe1xuICAgICAgbmFtZTogXCJtZXRyaWNBbGVydC10ZXN0XCIsXG4gICAgICBjcml0ZXJpYTogW1xuICAgICAgICB7XG4gICAgICAgICAgbWV0cmljTmFtZTogXCJIZWFydGJlYXRcIixcbiAgICAgICAgICBtZXRyaWNOYW1lc3BhY2U6IFwiTWljcm9zb2Z0Lm9wZXJhdGlvbmFsaW5zaWdodHMvd29ya3NwYWNlc1wiLFxuICAgICAgICAgIGFnZ3JlZ2F0aW9uOiBcIkF2ZXJhZ2VcIixcbiAgICAgICAgICBvcGVyYXRvcjogXCJMZXNzVGhhblwiLFxuICAgICAgICAgIHRocmVzaG9sZDogMCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICAvLyBPdXRwdXRzIHRvIHVzZSBmb3IgRW5kIHRvIEVuZCBUZXN0XG4gICAgY29uc3QgY2RrdGZUZXJyYWZvcm1PdXRwdXRSRyA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQoXG4gICAgICB0aGlzLFxuICAgICAgXCJyZXNvdXJjZV9ncm91cF9uYW1lXCIsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiByZXNvdXJjZUdyb3VwLm5hbWUsXG4gICAgICB9LFxuICAgICk7XG4gICAgY29uc3QgY2RrdGZUZXJyYWZvcm1PdXRwdXRMQU5hbWUgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KFxuICAgICAgdGhpcyxcbiAgICAgIFwibG9nYW5hbHl0aWNzX3dvcmtzcGFjZV9uYW1lXCIsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBsb2dBbmFseXRpY3NXb3Jrc3BhY2UucHJvcHMubmFtZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgICBjb25zdCBjZGt0ZlRlcnJhZm9ybU91dHB1dExBU2t1ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBcImxvZ2FuYWx5dGljc193b3Jrc3BhY2Vfc2t1XCIsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBsb2dBbmFseXRpY3NXb3Jrc3BhY2UucHJvcHMuc2t1LFxuICAgICAgfSxcbiAgICApO1xuICAgIGNvbnN0IGNka3RmVGVycmFmb3JtT3V0cHV0TEFSZXRlbnRpb24gPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KFxuICAgICAgdGhpcyxcbiAgICAgIFwibG9nYW5hbHl0aWNzX3dvcmtzcGFjZV9yZXRlbnRpb25cIixcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IGxvZ0FuYWx5dGljc1dvcmtzcGFjZS5wcm9wcy5yZXRlbnRpb24sXG4gICAgICB9LFxuICAgICk7XG5cbiAgICBjZGt0ZlRlcnJhZm9ybU91dHB1dFJHLm92ZXJyaWRlTG9naWNhbElkKFwicmVzb3VyY2VfZ3JvdXBfbmFtZVwiKTtcbiAgICBjZGt0ZlRlcnJhZm9ybU91dHB1dExBTmFtZS5vdmVycmlkZUxvZ2ljYWxJZChcImxvZ2FuYWx5dGljc193b3Jrc3BhY2VfbmFtZVwiKTtcbiAgICBjZGt0ZlRlcnJhZm9ybU91dHB1dExBU2t1Lm92ZXJyaWRlTG9naWNhbElkKFwibG9nYW5hbHl0aWNzX3dvcmtzcGFjZV9za3VcIik7XG4gICAgY2RrdGZUZXJyYWZvcm1PdXRwdXRMQVJldGVudGlvbi5vdmVycmlkZUxvZ2ljYWxJZChcbiAgICAgIFwibG9nYW5hbHl0aWNzX3dvcmtzcGFjZV9yZXRlbnRpb25cIixcbiAgICApO1xuICB9XG59XG5cbm5ldyBleGFtcGxlQXp1cmVMb2dBbmFseXRpY3MoYXBwLCBcInRlc3RBenVyZUxvZ0FuYWx5dGljc1wiKTtcblxuYXBwLnN5bnRoKCk7XG4iXX0=
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.exampleAzureMetricAlert = void 0;
|
|
4
|
-
const log_analytics_workspace_1 = require("@cdktf/provider-azurerm/lib/log-analytics-workspace");
|
|
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 metricalert = require("../../azure-metricalert");
|
|
9
|
-
const testing_1 = require("../../testing");
|
|
10
|
-
const app = new cdktf_1.App();
|
|
11
|
-
class exampleAzureMetricAlert extends testing_1.BaseTestStack {
|
|
12
|
-
constructor(scope, id) {
|
|
13
|
-
super(scope, id);
|
|
14
|
-
new provider_1.AzurermProvider(this, "azureFeature", {
|
|
15
|
-
features: {
|
|
16
|
-
resourceGroup: {
|
|
17
|
-
preventDeletionIfContainsResources: true,
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
});
|
|
21
|
-
const resourceGroup = new resource_group_1.ResourceGroup(this, "rg", {
|
|
22
|
-
location: "eastus",
|
|
23
|
-
name: `rg-${this.name}`,
|
|
24
|
-
tags: {
|
|
25
|
-
environment: "dev",
|
|
26
|
-
service_owner: "dev",
|
|
27
|
-
service_name: "tf-test",
|
|
28
|
-
},
|
|
29
|
-
});
|
|
30
|
-
const logAnalyticsWorkspace = new log_analytics_workspace_1.LogAnalyticsWorkspace(this, "la", {
|
|
31
|
-
location: "eastus",
|
|
32
|
-
name: `la-${this.name}`,
|
|
33
|
-
resourceGroupName: resourceGroup.name,
|
|
34
|
-
});
|
|
35
|
-
// Create Metric Alert
|
|
36
|
-
new metricalert.MetricAlert(this, "metricAlert1", {
|
|
37
|
-
name: `metricalert1-${this.name}`,
|
|
38
|
-
resourceGroup: resourceGroup,
|
|
39
|
-
scopes: [logAnalyticsWorkspace.id],
|
|
40
|
-
criteria: [
|
|
41
|
-
{
|
|
42
|
-
metricName: "Heartbeat",
|
|
43
|
-
metricNamespace: "Microsoft.operationalinsights/workspaces",
|
|
44
|
-
aggregation: "Average",
|
|
45
|
-
operator: "LessThan",
|
|
46
|
-
threshold: 0,
|
|
47
|
-
dimension: [
|
|
48
|
-
{
|
|
49
|
-
name: "OSType",
|
|
50
|
-
operator: "Include",
|
|
51
|
-
values: ["*"],
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
name: "Version",
|
|
55
|
-
operator: "Include",
|
|
56
|
-
values: ["*"],
|
|
57
|
-
},
|
|
58
|
-
],
|
|
59
|
-
},
|
|
60
|
-
],
|
|
61
|
-
});
|
|
62
|
-
new metricalert.MetricAlert(this, "metricAlert2", {
|
|
63
|
-
name: `metricalert2-${this.name}`,
|
|
64
|
-
resourceGroup: resourceGroup,
|
|
65
|
-
scopes: [logAnalyticsWorkspace.id],
|
|
66
|
-
criteria: [
|
|
67
|
-
{
|
|
68
|
-
metricName: "Heartbeat",
|
|
69
|
-
metricNamespace: "Microsoft.operationalinsights/workspaces",
|
|
70
|
-
aggregation: "Average",
|
|
71
|
-
operator: "LessThan",
|
|
72
|
-
threshold: 0,
|
|
73
|
-
},
|
|
74
|
-
],
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
exports.exampleAzureMetricAlert = exampleAzureMetricAlert;
|
|
79
|
-
new exampleAzureMetricAlert(app, "testAzureMetricAlert");
|
|
80
|
-
app.synth();
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhhbXBsZUF6dXJlTWV0cmljQWxlcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtbWV0cmljYWxlcnQvdGVzdC9FeGFtcGxlQXp1cmVNZXRyaWNBbGVydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpR0FBNEY7QUFDNUYsbUVBQXVFO0FBQ3ZFLCtFQUEyRTtBQUMzRSxpQ0FBNEI7QUFFNUIsdURBQXVEO0FBQ3ZELDJDQUE4QztBQUU5QyxNQUFNLEdBQUcsR0FBRyxJQUFJLFdBQUcsRUFBRSxDQUFDO0FBRXRCLE1BQWEsdUJBQXdCLFNBQVEsdUJBQWE7SUFDeEQsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLDBCQUFlLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtZQUN4QyxRQUFRLEVBQUU7Z0JBQ1IsYUFBYSxFQUFFO29CQUNiLGtDQUFrQyxFQUFFLElBQUk7aUJBQ3pDO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLGFBQWEsR0FBRyxJQUFJLDhCQUFhLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtZQUNsRCxRQUFRLEVBQUUsUUFBUTtZQUNsQixJQUFJLEVBQUUsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ3ZCLElBQUksRUFBRTtnQkFDSixXQUFXLEVBQUUsS0FBSztnQkFDbEIsYUFBYSxFQUFFLEtBQUs7Z0JBQ3BCLFlBQVksRUFBRSxTQUFTO2FBQ3hCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLCtDQUFxQixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUU7WUFDbEUsUUFBUSxFQUFFLFFBQVE7WUFDbEIsSUFBSSxFQUFFLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRTtZQUN2QixpQkFBaUIsRUFBRSxhQUFhLENBQUMsSUFBSTtTQUN0QyxDQUFDLENBQUM7UUFFSCxzQkFBc0I7UUFDdEIsSUFBSSxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDaEQsSUFBSSxFQUFFLGdCQUFnQixJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2pDLGFBQWEsRUFBRSxhQUFhO1lBQzVCLE1BQU0sRUFBRSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQztZQUNsQyxRQUFRLEVBQUU7Z0JBQ1I7b0JBQ0UsVUFBVSxFQUFFLFdBQVc7b0JBQ3ZCLGVBQWUsRUFBRSwwQ0FBMEM7b0JBQzNELFdBQVcsRUFBRSxTQUFTO29CQUN0QixRQUFRLEVBQUUsVUFBVTtvQkFDcEIsU0FBUyxFQUFFLENBQUM7b0JBQ1osU0FBUyxFQUFFO3dCQUNUOzRCQUNFLElBQUksRUFBRSxRQUFROzRCQUNkLFFBQVEsRUFBRSxTQUFTOzRCQUNuQixNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUM7eUJBQ2Q7d0JBQ0Q7NEJBQ0UsSUFBSSxFQUFFLFNBQVM7NEJBQ2YsUUFBUSxFQUFFLFNBQVM7NEJBQ25CLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQzt5QkFDZDtxQkFDRjtpQkFDRjthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDaEQsSUFBSSxFQUFFLGdCQUFnQixJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2pDLGFBQWEsRUFBRSxhQUFhO1lBQzVCLE1BQU0sRUFBRSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQztZQUNsQyxRQUFRLEVBQUU7Z0JBQ1I7b0JBQ0UsVUFBVSxFQUFFLFdBQVc7b0JBQ3ZCLGVBQWUsRUFBRSwwQ0FBMEM7b0JBQzNELFdBQVcsRUFBRSxTQUFTO29CQUN0QixRQUFRLEVBQUUsVUFBVTtvQkFDcEIsU0FBUyxFQUFFLENBQUM7aUJBQ2I7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXZFRCwwREF1RUM7QUFFRCxJQUFJLHVCQUF1QixDQUFDLEdBQUcsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0FBRXpELEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvZ0FuYWx5dGljc1dvcmtzcGFjZSB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvbG9nLWFuYWx5dGljcy13b3Jrc3BhY2VcIjtcbmltcG9ydCB7IEF6dXJlcm1Qcm92aWRlciB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvcHJvdmlkZXJcIjtcbmltcG9ydCB7IFJlc291cmNlR3JvdXAgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3Jlc291cmNlLWdyb3VwXCI7XG5pbXBvcnQgeyBBcHAgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyBtZXRyaWNhbGVydCBmcm9tIFwiLi4vLi4vYXp1cmUtbWV0cmljYWxlcnRcIjtcbmltcG9ydCB7IEJhc2VUZXN0U3RhY2sgfSBmcm9tIFwiLi4vLi4vdGVzdGluZ1wiO1xuXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5cbmV4cG9ydCBjbGFzcyBleGFtcGxlQXp1cmVNZXRyaWNBbGVydCBleHRlbmRzIEJhc2VUZXN0U3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIG5ldyBBenVyZXJtUHJvdmlkZXIodGhpcywgXCJhenVyZUZlYXR1cmVcIiwge1xuICAgICAgZmVhdHVyZXM6IHtcbiAgICAgICAgcmVzb3VyY2VHcm91cDoge1xuICAgICAgICAgIHByZXZlbnREZWxldGlvbklmQ29udGFpbnNSZXNvdXJjZXM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzb3VyY2VHcm91cCA9IG5ldyBSZXNvdXJjZUdyb3VwKHRoaXMsIFwicmdcIiwge1xuICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICBuYW1lOiBgcmctJHt0aGlzLm5hbWV9YCxcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgZW52aXJvbm1lbnQ6IFwiZGV2XCIsXG4gICAgICAgIHNlcnZpY2Vfb3duZXI6IFwiZGV2XCIsXG4gICAgICAgIHNlcnZpY2VfbmFtZTogXCJ0Zi10ZXN0XCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgbG9nQW5hbHl0aWNzV29ya3NwYWNlID0gbmV3IExvZ0FuYWx5dGljc1dvcmtzcGFjZSh0aGlzLCBcImxhXCIsIHtcbiAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgbmFtZTogYGxhLSR7dGhpcy5uYW1lfWAsXG4gICAgICByZXNvdXJjZUdyb3VwTmFtZTogcmVzb3VyY2VHcm91cC5uYW1lLFxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIE1ldHJpYyBBbGVydFxuICAgIG5ldyBtZXRyaWNhbGVydC5NZXRyaWNBbGVydCh0aGlzLCBcIm1ldHJpY0FsZXJ0MVwiLCB7XG4gICAgICBuYW1lOiBgbWV0cmljYWxlcnQxLSR7dGhpcy5uYW1lfWAsXG4gICAgICByZXNvdXJjZUdyb3VwOiByZXNvdXJjZUdyb3VwLFxuICAgICAgc2NvcGVzOiBbbG9nQW5hbHl0aWNzV29ya3NwYWNlLmlkXSxcbiAgICAgIGNyaXRlcmlhOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBtZXRyaWNOYW1lOiBcIkhlYXJ0YmVhdFwiLFxuICAgICAgICAgIG1ldHJpY05hbWVzcGFjZTogXCJNaWNyb3NvZnQub3BlcmF0aW9uYWxpbnNpZ2h0cy93b3Jrc3BhY2VzXCIsXG4gICAgICAgICAgYWdncmVnYXRpb246IFwiQXZlcmFnZVwiLFxuICAgICAgICAgIG9wZXJhdG9yOiBcIkxlc3NUaGFuXCIsXG4gICAgICAgICAgdGhyZXNob2xkOiAwLFxuICAgICAgICAgIGRpbWVuc2lvbjogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiBcIk9TVHlwZVwiLFxuICAgICAgICAgICAgICBvcGVyYXRvcjogXCJJbmNsdWRlXCIsXG4gICAgICAgICAgICAgIHZhbHVlczogW1wiKlwiXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6IFwiVmVyc2lvblwiLFxuICAgICAgICAgICAgICBvcGVyYXRvcjogXCJJbmNsdWRlXCIsXG4gICAgICAgICAgICAgIHZhbHVlczogW1wiKlwiXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBuZXcgbWV0cmljYWxlcnQuTWV0cmljQWxlcnQodGhpcywgXCJtZXRyaWNBbGVydDJcIiwge1xuICAgICAgbmFtZTogYG1ldHJpY2FsZXJ0Mi0ke3RoaXMubmFtZX1gLFxuICAgICAgcmVzb3VyY2VHcm91cDogcmVzb3VyY2VHcm91cCxcbiAgICAgIHNjb3BlczogW2xvZ0FuYWx5dGljc1dvcmtzcGFjZS5pZF0sXG4gICAgICBjcml0ZXJpYTogW1xuICAgICAgICB7XG4gICAgICAgICAgbWV0cmljTmFtZTogXCJIZWFydGJlYXRcIixcbiAgICAgICAgICBtZXRyaWNOYW1lc3BhY2U6IFwiTWljcm9zb2Z0Lm9wZXJhdGlvbmFsaW5zaWdodHMvd29ya3NwYWNlc1wiLFxuICAgICAgICAgIGFnZ3JlZ2F0aW9uOiBcIkF2ZXJhZ2VcIixcbiAgICAgICAgICBvcGVyYXRvcjogXCJMZXNzVGhhblwiLFxuICAgICAgICAgIHRocmVzaG9sZDogMCxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cbn1cblxubmV3IGV4YW1wbGVBenVyZU1ldHJpY0FsZXJ0KGFwcCwgXCJ0ZXN0QXp1cmVNZXRyaWNBbGVydFwiKTtcblxuYXBwLnN5bnRoKCk7XG4iXX0=
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.exampleAzureNetworkSecurityGroup = void 0;
|
|
4
|
-
const data_azurerm_client_config_1 = require("@cdktf/provider-azurerm/lib/data-azurerm-client-config");
|
|
5
|
-
const log_analytics_workspace_1 = require("@cdktf/provider-azurerm/lib/log-analytics-workspace");
|
|
6
|
-
const provider_1 = require("@cdktf/provider-azurerm/lib/provider");
|
|
7
|
-
const resource_group_1 = require("@cdktf/provider-azurerm/lib/resource-group");
|
|
8
|
-
const subnet_1 = require("@cdktf/provider-azurerm/lib/subnet");
|
|
9
|
-
const virtual_network_1 = require("@cdktf/provider-azurerm/lib/virtual-network");
|
|
10
|
-
const cdktf_1 = require("cdktf");
|
|
11
|
-
const cdktf = require("cdktf");
|
|
12
|
-
const network = require("..");
|
|
13
|
-
const testing_1 = require("../../testing");
|
|
14
|
-
const preconfigured_rules_1 = require("../lib/preconfigured-rules");
|
|
15
|
-
const app = new cdktf_1.App();
|
|
16
|
-
class exampleAzureNetworkSecurityGroup extends testing_1.BaseTestStack {
|
|
17
|
-
constructor(scope, id) {
|
|
18
|
-
super(scope, id);
|
|
19
|
-
const clientConfig = new data_azurerm_client_config_1.DataAzurermClientConfig(this, "CurrentClientConfig", {});
|
|
20
|
-
new provider_1.AzurermProvider(this, "azureFeature", {
|
|
21
|
-
features: {},
|
|
22
|
-
});
|
|
23
|
-
const resourceGroup = new resource_group_1.ResourceGroup(this, "rg", {
|
|
24
|
-
location: "eastus",
|
|
25
|
-
name: `rg-${this.name}`,
|
|
26
|
-
});
|
|
27
|
-
const vnet = new virtual_network_1.VirtualNetwork(this, "vnet", {
|
|
28
|
-
name: `vnet-${this.name}`,
|
|
29
|
-
location: resourceGroup.location,
|
|
30
|
-
resourceGroupName: resourceGroup.name,
|
|
31
|
-
addressSpace: ["10.0.0.0/16"],
|
|
32
|
-
});
|
|
33
|
-
const subnet = new subnet_1.Subnet(this, "subnet1", {
|
|
34
|
-
name: "subnet1",
|
|
35
|
-
resourceGroupName: resourceGroup.name,
|
|
36
|
-
virtualNetworkName: vnet.name,
|
|
37
|
-
addressPrefixes: ["10.0.1.0/24"],
|
|
38
|
-
});
|
|
39
|
-
const subnet2 = new subnet_1.Subnet(this, "subnet2", {
|
|
40
|
-
name: "subnet2",
|
|
41
|
-
resourceGroupName: resourceGroup.name,
|
|
42
|
-
virtualNetworkName: vnet.name,
|
|
43
|
-
addressPrefixes: ["10.0.2.0/24"],
|
|
44
|
-
});
|
|
45
|
-
const nsg = new network.SecurityGroup(this, "nsg", {
|
|
46
|
-
name: `nsg-${this.name}`,
|
|
47
|
-
location: "eastus",
|
|
48
|
-
resourceGroup: resourceGroup,
|
|
49
|
-
rules: [
|
|
50
|
-
{
|
|
51
|
-
name: "SSH",
|
|
52
|
-
priority: 1001,
|
|
53
|
-
direction: "Inbound",
|
|
54
|
-
access: "Allow",
|
|
55
|
-
protocol: "Tcp",
|
|
56
|
-
sourcePortRange: "*",
|
|
57
|
-
destinationPortRange: "22",
|
|
58
|
-
sourceAddressPrefix: "10.23.15.38",
|
|
59
|
-
destinationAddressPrefix: "VirtualNetwork",
|
|
60
|
-
},
|
|
61
|
-
preconfigured_rules_1.PreconfiguredRules.addSourceAddress(preconfigured_rules_1.PreconfiguredRules.rdp, "10.0.0.0/24"),
|
|
62
|
-
],
|
|
63
|
-
});
|
|
64
|
-
const logAnalyticsWorkspace = new log_analytics_workspace_1.LogAnalyticsWorkspace(this, "log_analytics", {
|
|
65
|
-
location: "eastus",
|
|
66
|
-
name: `la-${this.name}`,
|
|
67
|
-
resourceGroupName: resourceGroup.name,
|
|
68
|
-
});
|
|
69
|
-
//Diag Settings
|
|
70
|
-
nsg.addDiagSettings({
|
|
71
|
-
name: "diagsettings",
|
|
72
|
-
logAnalyticsWorkspaceId: logAnalyticsWorkspace.id,
|
|
73
|
-
});
|
|
74
|
-
//RBAC
|
|
75
|
-
nsg.addAccess(clientConfig.objectId, "Contributor");
|
|
76
|
-
// associate the nsg to the subnet
|
|
77
|
-
nsg.associateToSubnet(subnet);
|
|
78
|
-
nsg.associateToSubnet(subnet2);
|
|
79
|
-
// Outputs to use for End to End Test
|
|
80
|
-
const cdktfTerraformOutputRGName = new cdktf.TerraformOutput(this, "resource_group_name", {
|
|
81
|
-
value: resourceGroup.name,
|
|
82
|
-
});
|
|
83
|
-
const cdktfTerraformOutputNsgName = new cdktf.TerraformOutput(this, "nsg_name", {
|
|
84
|
-
value: nsg.name,
|
|
85
|
-
});
|
|
86
|
-
const cdktfTerraformOutputSnetName = new cdktf.TerraformOutput(this, "ssh_rule_name", {
|
|
87
|
-
value: "SSH",
|
|
88
|
-
});
|
|
89
|
-
cdktfTerraformOutputRGName.overrideLogicalId("resource_group_name");
|
|
90
|
-
cdktfTerraformOutputNsgName.overrideLogicalId("nsg_name");
|
|
91
|
-
cdktfTerraformOutputSnetName.overrideLogicalId("ssh_rule_name");
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
exports.exampleAzureNetworkSecurityGroup = exampleAzureNetworkSecurityGroup;
|
|
95
|
-
new exampleAzureNetworkSecurityGroup(app, "testAzureNetworkSecurityGroup");
|
|
96
|
-
app.synth();
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhhbXBsZUF6dXJlTmV0d29ya1NlY3VyaXR5R3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtbmV0d29ya3NlY3VyaXR5Z3JvdXAvdGVzdC9FeGFtcGxlQXp1cmVOZXR3b3JrU2VjdXJpdHlHcm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1R0FBaUc7QUFDakcsaUdBQTRGO0FBQzVGLG1FQUF1RTtBQUN2RSwrRUFBMkU7QUFDM0UsK0RBQTREO0FBQzVELGlGQUE2RTtBQUM3RSxpQ0FBNEI7QUFDNUIsK0JBQStCO0FBRS9CLDhCQUE4QjtBQUM5QiwyQ0FBOEM7QUFDOUMsb0VBQWdFO0FBRWhFLE1BQU0sR0FBRyxHQUFHLElBQUksV0FBRyxFQUFFLENBQUM7QUFFdEIsTUFBYSxnQ0FBaUMsU0FBUSx1QkFBYTtJQUNqRSxZQUFZLEtBQWdCLEVBQUUsRUFBVTtRQUN0QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sWUFBWSxHQUFHLElBQUksb0RBQXVCLENBQzlDLElBQUksRUFDSixxQkFBcUIsRUFDckIsRUFBRSxDQUNILENBQUM7UUFFRixJQUFJLDBCQUFlLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtZQUN4QyxRQUFRLEVBQUUsRUFBRTtTQUNiLENBQUMsQ0FBQztRQUVILE1BQU0sYUFBYSxHQUFHLElBQUksOEJBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ2xELFFBQVEsRUFBRSxRQUFRO1lBQ2xCLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUU7U0FDeEIsQ0FBQyxDQUFDO1FBRUgsTUFBTSxJQUFJLEdBQUcsSUFBSSxnQ0FBYyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDNUMsSUFBSSxFQUFFLFFBQVEsSUFBSSxDQUFDLElBQUksRUFBRTtZQUN6QixRQUFRLEVBQUUsYUFBYSxDQUFDLFFBQVE7WUFDaEMsaUJB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NEJBQTRCLENBQUMsaUJBQWlCLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEUsQ0FBQztDQUNGO0FBbkhELDRFQW1IQztBQUVELElBQUksZ0NBQWdDLENBQUMsR0FBRyxFQUFFLCtCQUErQixDQUFDLENBQUM7QUFFM0UsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YUF6dXJlcm1DbGllbnRDb25maWcgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL2RhdGEtYXp1cmVybS1jbGllbnQtY29uZmlnXCI7XG5pbXBvcnQgeyBMb2dBbmFseXRpY3NXb3Jrc3BhY2UgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL2xvZy1hbmFseXRpY3Mtd29ya3NwYWNlXCI7XG5pbXBvcnQgeyBBenVyZXJtUHJvdmlkZXIgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3Byb3ZpZGVyXCI7XG5pbXBvcnQgeyBSZXNvdXJjZUdyb3VwIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9yZXNvdXJjZS1ncm91cFwiO1xuaW1wb3J0IHsgU3VibmV0IH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9zdWJuZXRcIjtcbmltcG9ydCB7IFZpcnR1YWxOZXR3b3JrIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi92aXJ0dWFsLW5ldHdvcmtcIjtcbmltcG9ydCB7IEFwcCB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0ICogYXMgY2RrdGYgZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgbmV0d29yayBmcm9tIFwiLi5cIjtcbmltcG9ydCB7IEJhc2VUZXN0U3RhY2sgfSBmcm9tIFwiLi4vLi4vdGVzdGluZ1wiO1xuaW1wb3J0IHsgUHJlY29uZmlndXJlZFJ1bGVzIH0gZnJvbSBcIi4uL2xpYi9wcmVjb25maWd1cmVkLXJ1bGVzXCI7XG5cbmNvbnN0IGFwcCA9IG5ldyBBcHAoKTtcblxuZXhwb3J0IGNsYXNzIGV4YW1wbGVBenVyZU5ldHdvcmtTZWN1cml0eUdyb3VwIGV4dGVuZHMgQmFzZVRlc3RTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgY2xpZW50Q29uZmlnID0gbmV3IERhdGFBenVyZXJtQ2xpZW50Q29uZmlnKFxuICAgICAgdGhpcyxcbiAgICAgIFwiQ3VycmVudENsaWVudENvbmZpZ1wiLFxuICAgICAge30sXG4gICAgKTtcblxuICAgIG5ldyBBenVyZXJtUHJvdmlkZXIodGhpcywgXCJhenVyZUZlYXR1cmVcIiwge1xuICAgICAgZmVhdHVyZXM6IHt9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzb3VyY2VHcm91cCA9IG5ldyBSZXNvdXJjZUdyb3VwKHRoaXMsIFwicmdcIiwge1xuICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICBuYW1lOiBgcmctJHt0aGlzLm5hbWV9YCxcbiAgICB9KTtcblxuICAgIGNvbnN0IHZuZXQgPSBuZXcgVmlydHVhbE5ldHdvcmsodGhpcywgXCJ2bmV0XCIsIHtcbiAgICAgIG5hbWU6IGB2bmV0LSR7dGhpcy5uYW1lfWAsXG4gICAgICBsb2NhdGlvbjogcmVzb3VyY2VHcm91cC5sb2NhdGlvbixcbiAgICAgIHJlc291cmNlR3JvdXBOYW1lOiByZXNvdXJjZUdyb3VwLm5hbWUsXG4gICAgICBhZGRyZXNzU3BhY2U6IFtcIjEwLjAuMC4wLzE2XCJdLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc3VibmV0ID0gbmV3IFN1Ym5ldCh0aGlzLCBcInN1Ym5ldDFcIiwge1xuICAgICAgbmFtZTogXCJzdWJuZXQxXCIsXG4gICAgICByZXNvdXJjZUdyb3VwTmFtZTogcmVzb3VyY2VHcm91cC5uYW1lLFxuICAgICAgdmlydHVhbE5ldHdvcmtOYW1lOiB2bmV0Lm5hbWUsXG4gICAgICBhZGRyZXNzUHJlZml4ZXM6IFtcIjEwLjAuMS4wLzI0XCJdLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc3VibmV0MiA9IG5ldyBTdWJuZXQodGhpcywgXCJzdWJuZXQyXCIsIHtcbiAgICAgIG5hbWU6IFwic3VibmV0MlwiLFxuICAgICAgcmVzb3VyY2VHcm91cE5hbWU6IHJlc291cmNlR3JvdXAubmFtZSxcbiAgICAgIHZpcnR1YWxOZXR3b3JrTmFtZTogdm5ldC5uYW1lLFxuICAgICAgYWRkcmVzc1ByZWZpeGVzOiBbXCIxMC4wLjIuMC8yNFwiXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IG5zZyA9IG5ldyBuZXR3b3JrLlNlY3VyaXR5R3JvdXAodGhpcywgXCJuc2dcIiwge1xuICAgICAgbmFtZTogYG5zZy0ke3RoaXMubmFtZX1gLFxuICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICByZXNvdXJjZUdyb3VwOiByZXNvdXJjZUdyb3VwLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiU1NIXCIsXG4gICAgICAgICAgcHJpb3JpdHk6IDEwMDEsXG4gICAgICAgICAgZGlyZWN0aW9uOiBcIkluYm91bmRcIixcbiAgICAgICAgICBhY2Nlc3M6IFwiQWxsb3dcIixcbiAgICAgICAgICBwcm90b2NvbDogXCJUY3BcIixcbiAgICAgICAgICBzb3VyY2VQb3J0UmFuZ2U6IFwiKlwiLFxuICAgICAgICAgIGRlc3RpbmF0aW9uUG9ydFJhbmdlOiBcIjIyXCIsXG4gICAgICAgICAgc291cmNlQWRkcmVzc1ByZWZpeDogXCIxMC4yMy4xNS4zOFwiLFxuICAgICAgICAgIGRlc3RpbmF0aW9uQWRkcmVzc1ByZWZpeDogXCJWaXJ0dWFsTmV0d29ya1wiLFxuICAgICAgICB9LFxuICAgICAgICBQcmVjb25maWd1cmVkUnVsZXMuYWRkU291cmNlQWRkcmVzcyhcbiAgICAgICAgICBQcmVjb25maWd1cmVkUnVsZXMucmRwLFxuICAgICAgICAgIFwiMTAuMC4wLjAvMjRcIixcbiAgICAgICAgKSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBsb2dBbmFseXRpY3NXb3Jrc3BhY2UgPSBuZXcgTG9nQW5hbHl0aWNzV29ya3NwYWNlKFxuICAgICAgdGhpcyxcbiAgICAgIFwibG9nX2FuYWx5dGljc1wiLFxuICAgICAge1xuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgbmFtZTogYGxhLSR7dGhpcy5uYW1lfWAsXG4gICAgICAgIHJlc291cmNlR3JvdXBOYW1lOiByZXNvdXJjZUdyb3VwLm5hbWUsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICAvL0RpYWcgU2V0dGluZ3NcbiAgICBuc2cuYWRkRGlhZ1NldHRpbmdzKHtcbiAgICAgIG5hbWU6IFwiZGlhZ3NldHRpbmdzXCIsXG4gICAgICBsb2dBbmFseXRpY3NXb3Jrc3BhY2VJZDogbG9nQW5hbHl0aWNzV29ya3NwYWNlLmlkLFxuICAgIH0pO1xuXG4gICAgLy9SQkFDXG4gICAgbnNnLmFkZEFjY2VzcyhjbGllbnRDb25maWcub2JqZWN0SWQsIFwiQ29udHJpYnV0b3JcIik7XG5cbiAgICAvLyBhc3NvY2lhdGUgdGhlIG5zZyB0byB0aGUgc3VibmV0XG4gICAgbnNnLmFzc29jaWF0ZVRvU3VibmV0KHN1Ym5ldCk7XG4gICAgbnNnLmFzc29jaWF0ZVRvU3VibmV0KHN1Ym5ldDIpO1xuXG4gICAgLy8gT3V0cHV0cyB0byB1c2UgZm9yIEVuZCB0byBFbmQgVGVzdFxuICAgIGNvbnN0IGNka3RmVGVycmFmb3JtT3V0cHV0UkdOYW1lID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBcInJlc291cmNlX2dyb3VwX25hbWVcIixcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IHJlc291cmNlR3JvdXAubmFtZSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGNvbnN0IGNka3RmVGVycmFmb3JtT3V0cHV0TnNnTmFtZSA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQoXG4gICAgICB0aGlzLFxuICAgICAgXCJuc2dfbmFtZVwiLFxuICAgICAge1xuICAgICAgICB2YWx1ZTogbnNnLm5hbWUsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICBjb25zdCBjZGt0ZlRlcnJhZm9ybU91dHB1dFNuZXROYW1lID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBcInNzaF9ydWxlX25hbWVcIixcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IFwiU1NIXCIsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICBjZGt0ZlRlcnJhZm9ybU91dHB1dFJHTmFtZS5vdmVycmlkZUxvZ2ljYWxJZChcInJlc291cmNlX2dyb3VwX25hbWVcIik7XG4gICAgY2RrdGZUZXJyYWZvcm1PdXRwdXROc2dOYW1lLm92ZXJyaWRlTG9naWNhbElkKFwibnNnX25hbWVcIik7XG4gICAgY2RrdGZUZXJyYWZvcm1PdXRwdXRTbmV0TmFtZS5vdmVycmlkZUxvZ2ljYWxJZChcInNzaF9ydWxlX25hbWVcIik7XG4gIH1cbn1cblxubmV3IGV4YW1wbGVBenVyZU5ldHdvcmtTZWN1cml0eUdyb3VwKGFwcCwgXCJ0ZXN0QXp1cmVOZXR3b3JrU2VjdXJpdHlHcm91cFwiKTtcblxuYXBwLnN5bnRoKCk7XG4iXX0=
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.exampleAzureQueryRuleAlert = void 0;
|
|
4
|
-
const log_analytics_workspace_1 = require("@cdktf/provider-azurerm/lib/log-analytics-workspace");
|
|
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 cdktf = require("cdktf");
|
|
9
|
-
const queryalert = require("../../azure-queryrulealert");
|
|
10
|
-
const testing_1 = require("../../testing");
|
|
11
|
-
const app = new cdktf_1.App();
|
|
12
|
-
class exampleAzureQueryRuleAlert extends testing_1.BaseTestStack {
|
|
13
|
-
constructor(scope, id) {
|
|
14
|
-
super(scope, id);
|
|
15
|
-
new provider_1.AzurermProvider(this, "azureFeature", {
|
|
16
|
-
features: {
|
|
17
|
-
resourceGroup: {
|
|
18
|
-
preventDeletionIfContainsResources: true,
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
});
|
|
22
|
-
const resourceGroup = new resource_group_1.ResourceGroup(this, "rg", {
|
|
23
|
-
location: "eastus",
|
|
24
|
-
name: `rg-${this.name}`,
|
|
25
|
-
tags: {
|
|
26
|
-
test: "test",
|
|
27
|
-
},
|
|
28
|
-
});
|
|
29
|
-
const logAnalyticsWorkspace = new log_analytics_workspace_1.LogAnalyticsWorkspace(this, "log_analytics", {
|
|
30
|
-
location: "eastus",
|
|
31
|
-
name: `la-${this.name}`,
|
|
32
|
-
resourceGroupName: resourceGroup.name,
|
|
33
|
-
});
|
|
34
|
-
// Query Rule Alert
|
|
35
|
-
const alert = new queryalert.QueryRuleAlert(this, "queryRuleAlert", {
|
|
36
|
-
name: `qra-${this.name}`,
|
|
37
|
-
resourceGroup: resourceGroup,
|
|
38
|
-
location: "eastus",
|
|
39
|
-
criteriaOperator: "GreaterThan",
|
|
40
|
-
criteriaQuery: `
|
|
41
|
-
AppExceptions
|
|
42
|
-
| where Message has "file can not be reloaded"
|
|
43
|
-
`,
|
|
44
|
-
criteriaThreshold: 100,
|
|
45
|
-
criteriatimeAggregationMethod: "Count",
|
|
46
|
-
evaluationFrequency: "PT5M",
|
|
47
|
-
windowDuration: "PT30M",
|
|
48
|
-
scopes: [logAnalyticsWorkspace.id],
|
|
49
|
-
severity: 4,
|
|
50
|
-
criteriaFailMinimumFailingPeriodsToTriggerAlert: 1,
|
|
51
|
-
criteriaFailNumberOfEvaluationPeriods: 1,
|
|
52
|
-
});
|
|
53
|
-
// Create Terraform Outputs for Function Apps
|
|
54
|
-
const cdktfTerraformOutputRG = new cdktf.TerraformOutput(this, "resource_group_name", {
|
|
55
|
-
value: resourceGroup.name,
|
|
56
|
-
});
|
|
57
|
-
const cdktfTerraformOutputAlertId = new cdktf.TerraformOutput(this, "query_rule_alert_id", {
|
|
58
|
-
value: alert.id,
|
|
59
|
-
});
|
|
60
|
-
cdktfTerraformOutputRG.overrideLogicalId("resource_group_name");
|
|
61
|
-
cdktfTerraformOutputAlertId.overrideLogicalId("query_rule_alert_id");
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
exports.exampleAzureQueryRuleAlert = exampleAzureQueryRuleAlert;
|
|
65
|
-
new exampleAzureQueryRuleAlert(app, "testAzureQueryRuleAlert");
|
|
66
|
-
app.synth();
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhhbXBsZUF6dXJlUXVlcnlSdWxlQWxlcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtcXVlcnlydWxlYWxlcnQvdGVzdC9FeGFtcGxlQXp1cmVRdWVyeVJ1bGVBbGVydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpR0FBNEY7QUFDNUYsbUVBQXVFO0FBQ3ZFLCtFQUEyRTtBQUMzRSxpQ0FBNEI7QUFDNUIsK0JBQStCO0FBRS9CLHlEQUF5RDtBQUN6RCwyQ0FBOEM7QUFFOUMsTUFBTSxHQUFHLEdBQUcsSUFBSSxXQUFHLEVBQUUsQ0FBQztBQUV0QixNQUFhLDBCQUEyQixTQUFRLHVCQUFhO0lBQzNELFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSwwQkFBZSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDeEMsUUFBUSxFQUFFO2dCQUNSLGFBQWEsRUFBRTtvQkFDYixrQ0FBa0MsRUFBRSxJQUFJO2lCQUN6QzthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxhQUFhLEdBQUcsSUFBSSw4QkFBYSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUU7WUFDbEQsUUFBUSxFQUFFLFFBQVE7WUFDbEIsSUFBSSxFQUFFLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRTtZQUN2QixJQUFJLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLE1BQU07YUFDYjtTQUNGLENBQUMsQ0FBQztRQUVILE1BQU0scUJBQXFCLEdBQUcsSUFBSSwrQ0FBcUIsQ0FDckQsSUFBSSxFQUNKLGVBQWUsRUFDZjtZQUNFLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDdkIsaUJBQWlCLEVBQUUsYUFBYSxDQUFDLElBQUk7U0FDdEMsQ0FDRixDQUFDO1FBRUYsbUJBQW1CO1FBQ25CLE1BQU0sS0FBSyxHQUFHLElBQUksVUFBVSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7WUFDbEUsSUFBSSxFQUFFLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRTtZQUN4QixhQUFhLEVBQUUsYUFBYTtZQUM1QixRQUFRLEVBQUUsUUFBUTtZQUNsQixnQkFBZ0IsRUFBRSxhQUFhO1lBQy9CLGFBQWEsRUFBRTs7O0NBR3BCO1lBQ0ssaUJBQWlCLEVBQUUsR0FBRztZQUN0Qiw2QkFBNkIsRUFBRSxPQUFPO1lBQ3RDLG1CQUFtQixFQUFFLE1BQU07WUFDM0IsY0FBYyxFQUFFLE9BQU87WUFDdkIsTUFBTSxFQUFFLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDO1lBQ2xDLFFBQVEsRUFBRSxDQUFDO1lBQ1gsK0NBQStDLEVBQUUsQ0FBQztZQUNsRCxxQ0FBcUMsRUFBRSxDQUFDO1NBQ3pDLENBQUMsQ0FBQztRQUVILDZDQUE2QztRQUM3QyxNQUFNLHNCQUFzQixHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FDdEQsSUFBSSxFQUNKLHFCQUFxQixFQUNyQjtZQUNFLEtBQUssRUFBRSxhQUFhLENBQUMsSUFBSTtTQUMxQixDQUNGLENBQUM7UUFFRixNQUFNLDJCQUEyQixHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FDM0QsSUFBSSxFQUNKLHFCQUFxQixFQUNyQjtZQUNFLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRTtTQUNoQixDQUNGLENBQUM7UUFFRixzQkFBc0IsQ0FBQyxpQkFBaUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ2hFLDJCQUEyQixDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDdkUsQ0FBQztDQUNGO0FBdEVELGdFQXNFQztBQUVELElBQUksMEJBQTBCLENBQUMsR0FBRyxFQUFFLHlCQUF5QixDQUFDLENBQUM7QUFFL0QsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9nQW5hbHl0aWNzV29ya3NwYWNlIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9sb2ctYW5hbHl0aWNzLXdvcmtzcGFjZVwiO1xuaW1wb3J0IHsgQXp1cmVybVByb3ZpZGVyIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9wcm92aWRlclwiO1xuaW1wb3J0IHsgUmVzb3VyY2VHcm91cCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvcmVzb3VyY2UtZ3JvdXBcIjtcbmltcG9ydCB7IEFwcCB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0ICogYXMgY2RrdGYgZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgcXVlcnlhbGVydCBmcm9tIFwiLi4vLi4vYXp1cmUtcXVlcnlydWxlYWxlcnRcIjtcbmltcG9ydCB7IEJhc2VUZXN0U3RhY2sgfSBmcm9tIFwiLi4vLi4vdGVzdGluZ1wiO1xuXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5cbmV4cG9ydCBjbGFzcyBleGFtcGxlQXp1cmVRdWVyeVJ1bGVBbGVydCBleHRlbmRzIEJhc2VUZXN0U3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIG5ldyBBenVyZXJtUHJvdmlkZXIodGhpcywgXCJhenVyZUZlYXR1cmVcIiwge1xuICAgICAgZmVhdHVyZXM6IHtcbiAgICAgICAgcmVzb3VyY2VHcm91cDoge1xuICAgICAgICAgIHByZXZlbnREZWxldGlvbklmQ29udGFpbnNSZXNvdXJjZXM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzb3VyY2VHcm91cCA9IG5ldyBSZXNvdXJjZUdyb3VwKHRoaXMsIFwicmdcIiwge1xuICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICBuYW1lOiBgcmctJHt0aGlzLm5hbWV9YCxcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgdGVzdDogXCJ0ZXN0XCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgbG9nQW5hbHl0aWNzV29ya3NwYWNlID0gbmV3IExvZ0FuYWx5dGljc1dvcmtzcGFjZShcbiAgICAgIHRoaXMsXG4gICAgICBcImxvZ19hbmFseXRpY3NcIixcbiAgICAgIHtcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIG5hbWU6IGBsYS0ke3RoaXMubmFtZX1gLFxuICAgICAgICByZXNvdXJjZUdyb3VwTmFtZTogcmVzb3VyY2VHcm91cC5uYW1lLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgLy8gUXVlcnkgUnVsZSBBbGVydFxuICAgIGNvbnN0IGFsZXJ0ID0gbmV3IHF1ZXJ5YWxlcnQuUXVlcnlSdWxlQWxlcnQodGhpcywgXCJxdWVyeVJ1bGVBbGVydFwiLCB7XG4gICAgICBuYW1lOiBgcXJhLSR7dGhpcy5uYW1lfWAsXG4gICAgICByZXNvdXJjZUdyb3VwOiByZXNvdXJjZUdyb3VwLFxuICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICBjcml0ZXJpYU9wZXJhdG9yOiBcIkdyZWF0ZXJUaGFuXCIsXG4gICAgICBjcml0ZXJpYVF1ZXJ5OiBgXG5BcHBFeGNlcHRpb25zIFxufCB3aGVyZSBNZXNzYWdlIGhhcyBcImZpbGUgY2FuIG5vdCBiZSByZWxvYWRlZFwiXG5gLFxuICAgICAgY3JpdGVyaWFUaHJlc2hvbGQ6IDEwMCxcbiAgICAgIGNyaXRlcmlhdGltZUFnZ3JlZ2F0aW9uTWV0aG9kOiBcIkNvdW50XCIsXG4gICAgICBldmFsdWF0aW9uRnJlcXVlbmN5OiBcIlBUNU1cIixcbiAgICAgIHdpbmRvd0R1cmF0aW9uOiBcIlBUMzBNXCIsXG4gICAgICBzY29wZXM6IFtsb2dBbmFseXRpY3NXb3Jrc3BhY2UuaWRdLFxuICAgICAgc2V2ZXJpdHk6IDQsXG4gICAgICBjcml0ZXJpYUZhaWxNaW5pbXVtRmFpbGluZ1BlcmlvZHNUb1RyaWdnZXJBbGVydDogMSxcbiAgICAgIGNyaXRlcmlhRmFpbE51bWJlck9mRXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgfSk7XG5cbiAgICAvLyBDcmVhdGUgVGVycmFmb3JtIE91dHB1dHMgZm9yIEZ1bmN0aW9uIEFwcHNcbiAgICBjb25zdCBjZGt0ZlRlcnJhZm9ybU91dHB1dFJHID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBcInJlc291cmNlX2dyb3VwX25hbWVcIixcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IHJlc291cmNlR3JvdXAubmFtZSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGNvbnN0IGNka3RmVGVycmFmb3JtT3V0cHV0QWxlcnRJZCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQoXG4gICAgICB0aGlzLFxuICAgICAgXCJxdWVyeV9ydWxlX2FsZXJ0X2lkXCIsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBhbGVydC5pZCxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGNka3RmVGVycmFmb3JtT3V0cHV0Ukcub3ZlcnJpZGVMb2dpY2FsSWQoXCJyZXNvdXJjZV9ncm91cF9uYW1lXCIpO1xuICAgIGNka3RmVGVycmFmb3JtT3V0cHV0QWxlcnRJZC5vdmVycmlkZUxvZ2ljYWxJZChcInF1ZXJ5X3J1bGVfYWxlcnRfaWRcIik7XG4gIH1cbn1cblxubmV3IGV4YW1wbGVBenVyZVF1ZXJ5UnVsZUFsZXJ0KGFwcCwgXCJ0ZXN0QXp1cmVRdWVyeVJ1bGVBbGVydFwiKTtcblxuYXBwLnN5bnRoKCk7XG4iXX0=
|