@microsoft/terraform-cdk-constructs 0.0.3-pre.6 → 0.0.3-pre.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/.jsii +909 -306
  2. package/API.md +2488 -255
  3. package/README.md +112 -18
  4. package/docs/images/ide-documentation.png +0 -0
  5. package/lib/azure-actiongroup/lib/actiongroup.d.ts +39 -0
  6. package/lib/azure-actiongroup/lib/actiongroup.js +40 -1
  7. package/lib/azure-applicationgateway/lib/gateway.d.ts +76 -0
  8. package/lib/azure-applicationgateway/lib/gateway.js +78 -2
  9. package/lib/azure-applicationinsights/lib/appinsights.d.ts +50 -0
  10. package/lib/azure-applicationinsights/lib/appinsights.js +52 -3
  11. package/lib/azure-containerregistry/lib/registry.d.ts +29 -0
  12. package/lib/azure-containerregistry/lib/registry.js +31 -2
  13. package/lib/azure-datalake/lib/datalake.d.ts +50 -0
  14. package/lib/azure-datalake/lib/datalake.js +51 -1
  15. package/lib/azure-datalake/lib/filesystem.d.ts +51 -0
  16. package/lib/azure-datalake/lib/filesystem.js +52 -1
  17. package/lib/azure-datalake/lib/path.d.ts +37 -0
  18. package/lib/azure-datalake/lib/path.js +38 -1
  19. package/lib/azure-eventhub/lib/authorization.d.ts +30 -0
  20. package/lib/azure-eventhub/lib/authorization.js +32 -2
  21. package/lib/azure-eventhub/lib/cluster.d.ts +29 -0
  22. package/lib/azure-eventhub/lib/cluster.js +31 -2
  23. package/lib/azure-eventhub/lib/consumer.d.ts +28 -0
  24. package/lib/azure-eventhub/lib/consumer.js +30 -2
  25. package/lib/azure-eventhub/lib/instance.d.ts +118 -0
  26. package/lib/azure-eventhub/lib/instance.js +120 -2
  27. package/lib/azure-eventhub/lib/kusto-connection.d.ts +41 -0
  28. package/lib/azure-eventhub/lib/kusto-connection.js +43 -2
  29. package/lib/azure-eventhub/lib/namespace.d.ts +74 -0
  30. package/lib/azure-eventhub/lib/namespace.js +76 -3
  31. package/lib/azure-functionapp/lib/functionapplinux.js +1 -1
  32. package/lib/azure-keyvault/lib/certificate.d.ts +96 -2
  33. package/lib/azure-keyvault/lib/certificate.js +55 -3
  34. package/lib/azure-keyvault/lib/key.d.ts +36 -0
  35. package/lib/azure-keyvault/lib/key.js +38 -2
  36. package/lib/azure-keyvault/lib/policy.d.ts +30 -0
  37. package/lib/azure-keyvault/lib/policy.js +32 -2
  38. package/lib/azure-keyvault/lib/secret.d.ts +31 -0
  39. package/lib/azure-keyvault/lib/secret.js +33 -2
  40. package/lib/azure-keyvault/lib/vault.d.ts +188 -0
  41. package/lib/azure-keyvault/lib/vault.js +191 -7
  42. package/lib/azure-kubernetes/lib/cluster.d.ts +25 -4
  43. package/lib/azure-kubernetes/lib/cluster.js +27 -6
  44. package/lib/azure-kusto/lib/cluster.d.ts +53 -0
  45. package/lib/azure-kusto/lib/cluster.js +55 -2
  46. package/lib/azure-kusto/lib/compute-specification.js +1 -1
  47. package/lib/azure-kusto/lib/database.d.ts +103 -0
  48. package/lib/azure-kusto/lib/database.js +105 -2
  49. package/lib/azure-loganalytics/lib/workspace.d.ts +47 -0
  50. package/lib/azure-loganalytics/lib/workspace.js +49 -2
  51. package/lib/azure-metricalert/lib/metric-alert.d.ts +43 -4
  52. package/lib/azure-metricalert/lib/metric-alert.js +45 -6
  53. package/lib/azure-networksecuritygroup/lib/preconfigured-rules.js +1 -1
  54. package/lib/azure-networksecuritygroup/lib/securitygroup.d.ts +92 -0
  55. package/lib/azure-networksecuritygroup/lib/securitygroup.js +95 -5
  56. package/lib/azure-queryrulealert/lib/query-rule-alert.d.ts +35 -4
  57. package/lib/azure-queryrulealert/lib/query-rule-alert.js +37 -6
  58. package/lib/azure-resourcegroup/lib/resource-group.d.ts +28 -0
  59. package/lib/azure-resourcegroup/lib/resource-group.js +30 -2
  60. package/lib/azure-storageaccount/lib/account.d.ts +75 -48
  61. package/lib/azure-storageaccount/lib/account.js +77 -50
  62. package/lib/azure-storageaccount/lib/container.d.ts +94 -12
  63. package/lib/azure-storageaccount/lib/container.js +97 -15
  64. package/lib/azure-storageaccount/lib/fileshare.d.ts +36 -0
  65. package/lib/azure-storageaccount/lib/fileshare.js +39 -3
  66. package/lib/azure-storageaccount/lib/queue.d.ts +29 -0
  67. package/lib/azure-storageaccount/lib/queue.js +31 -2
  68. package/lib/azure-storageaccount/lib/table.d.ts +32 -0
  69. package/lib/azure-storageaccount/lib/table.js +34 -2
  70. package/lib/azure-virtualmachine/lib/image-references.js +2 -2
  71. package/lib/azure-virtualmachine/lib/vm.d.ts +84 -8
  72. package/lib/azure-virtualmachine/lib/vm.js +87 -11
  73. package/lib/azure-virtualmachinescaleset/lib/cluster.d.ts +98 -8
  74. package/lib/azure-virtualmachinescaleset/lib/cluster.js +101 -11
  75. package/lib/azure-virtualnetwork/lib/network.d.ts +61 -0
  76. package/lib/azure-virtualnetwork/lib/network.js +63 -3
  77. package/lib/azure-virtualnetwork/lib/peering.d.ts +39 -0
  78. package/lib/azure-virtualnetwork/lib/peering.js +41 -2
  79. package/lib/core-azure/lib/diagsettings.d.ts +37 -0
  80. package/lib/core-azure/lib/diagsettings.js +39 -2
  81. package/lib/core-azure/lib/rbac.d.ts +22 -4
  82. package/lib/core-azure/lib/rbac.js +24 -6
  83. package/lib/core-azure/lib/resource.d.ts +45 -0
  84. package/lib/core-azure/lib/resource.js +48 -4
  85. package/package.json +1 -1
@@ -4,11 +4,50 @@ export declare class MetricAlert extends Construct {
4
4
  readonly props: model.IMetricAlertProps;
5
5
  readonly id: string;
6
6
  /**
7
- * Constructs a new instance of the MetricAlert class.
7
+ * Represents a Metric Alert in Azure Monitor, which is used to automatically monitor metrics across Azure services and trigger actions when certain conditions are met.
8
8
  *
9
- * @param scope - The scope in which this construct is defined.
10
- * @param id - The ID of this construct.
11
- * @param props - The properties required for Metric Alert.
9
+ * This class encapsulates the configuration and management of a Metric Alert, allowing users to define alert rules based on the metrics from their Azure resources. Metric Alerts can help in proactively managing the health, performance, and availability of Azure services.
10
+ *
11
+ * Properties:
12
+ * - `name`: The name of the Metric Alert, which must be unique within the resource group.
13
+ * - `description`: Optional. A description of what the Metric Alert monitors and potential impact or remediation.
14
+ * - `enabled`: Indicates whether the alert rule is enabled. Disabled rules will not fire.
15
+ * - `autoMitigate`: Specifies whether the alert should attempt auto-mitigation actions when triggered.
16
+ * - `frequency`: The frequency of evaluation for the alert rule, determining how often the rule is checked.
17
+ * - `severity`: The severity level assigned to the alert. This helps in categorizing the urgency of the alert.
18
+ * - `targetResourceType`: Specifies the type of Azure resource the alert rule applies to, necessary for scoping the alert.
19
+ * - `targetResourceLocation`: Specifies the location of the target resource, required when the alert rule covers resources in multiple locations.
20
+ * - `windowSize`: The period over which data is collected for analysis, which must be greater than the frequency of evaluation.
21
+ * - `tags`: User-defined tags to help organize and identify resources within Azure.
22
+ * - `criteria`: The conditions that trigger the alert. This can be static or dynamic, based on the behavior of the monitored metric over time.
23
+ * - `dynamicCriteria`: Advanced configurations for criteria that dynamically adjust thresholds based on historical data.
24
+ * - `scopes`: The specific resources that the Metric Alert is scoped to monitor.
25
+ * - `resourceGroup`: The Azure Resource Group in which this Metric Alert is defined.
26
+ *
27
+ * Example usage:
28
+ * ```typescript
29
+ * const cpuAlertProps: IMetricAlertProps = {
30
+ * name: 'High CPU Usage Alert',
31
+ * resourceGroup: resourceGroupInstance,
32
+ * scopes: [vm.id],
33
+ * criteria: [
34
+ * {
35
+ * metricName: 'Percentage CPU',
36
+ * operator: 'GreaterThan',
37
+ * threshold: 80,
38
+ * aggregation: 'Average'
39
+ * }
40
+ * ],
41
+ * frequency: 'PT1M',
42
+ * windowSize: 'PT5M',
43
+ * severity: 3,
44
+ * enabled: true
45
+ * };
46
+ *
47
+ * const cpuAlert = new MetricAlert(this, 'cpuUsageAlert', cpuAlertProps);
48
+ * ```
49
+ *
50
+ * This configuration defines a Metric Alert that monitors CPU usage across specified virtual machines, triggering an alert if the CPU usage exceeds 80% over a 5-minute window, evaluated every minute.
12
51
  */
13
52
  constructor(scope: Construct, id: string, props: model.IMetricAlertProps);
14
53
  private ValidatePropsFrequency;
@@ -10,11 +10,50 @@ const moment = require("moment");
10
10
  const model = require("../model");
11
11
  class MetricAlert extends constructs_1.Construct {
12
12
  /**
13
- * Constructs a new instance of the MetricAlert class.
13
+ * Represents a Metric Alert in Azure Monitor, which is used to automatically monitor metrics across Azure services and trigger actions when certain conditions are met.
14
14
  *
15
- * @param scope - The scope in which this construct is defined.
16
- * @param id - The ID of this construct.
17
- * @param props - The properties required for Metric Alert.
15
+ * This class encapsulates the configuration and management of a Metric Alert, allowing users to define alert rules based on the metrics from their Azure resources. Metric Alerts can help in proactively managing the health, performance, and availability of Azure services.
16
+ *
17
+ * Properties:
18
+ * - `name`: The name of the Metric Alert, which must be unique within the resource group.
19
+ * - `description`: Optional. A description of what the Metric Alert monitors and potential impact or remediation.
20
+ * - `enabled`: Indicates whether the alert rule is enabled. Disabled rules will not fire.
21
+ * - `autoMitigate`: Specifies whether the alert should attempt auto-mitigation actions when triggered.
22
+ * - `frequency`: The frequency of evaluation for the alert rule, determining how often the rule is checked.
23
+ * - `severity`: The severity level assigned to the alert. This helps in categorizing the urgency of the alert.
24
+ * - `targetResourceType`: Specifies the type of Azure resource the alert rule applies to, necessary for scoping the alert.
25
+ * - `targetResourceLocation`: Specifies the location of the target resource, required when the alert rule covers resources in multiple locations.
26
+ * - `windowSize`: The period over which data is collected for analysis, which must be greater than the frequency of evaluation.
27
+ * - `tags`: User-defined tags to help organize and identify resources within Azure.
28
+ * - `criteria`: The conditions that trigger the alert. This can be static or dynamic, based on the behavior of the monitored metric over time.
29
+ * - `dynamicCriteria`: Advanced configurations for criteria that dynamically adjust thresholds based on historical data.
30
+ * - `scopes`: The specific resources that the Metric Alert is scoped to monitor.
31
+ * - `resourceGroup`: The Azure Resource Group in which this Metric Alert is defined.
32
+ *
33
+ * Example usage:
34
+ * ```typescript
35
+ * const cpuAlertProps: IMetricAlertProps = {
36
+ * name: 'High CPU Usage Alert',
37
+ * resourceGroup: resourceGroupInstance,
38
+ * scopes: [vm.id],
39
+ * criteria: [
40
+ * {
41
+ * metricName: 'Percentage CPU',
42
+ * operator: 'GreaterThan',
43
+ * threshold: 80,
44
+ * aggregation: 'Average'
45
+ * }
46
+ * ],
47
+ * frequency: 'PT1M',
48
+ * windowSize: 'PT5M',
49
+ * severity: 3,
50
+ * enabled: true
51
+ * };
52
+ *
53
+ * const cpuAlert = new MetricAlert(this, 'cpuUsageAlert', cpuAlertProps);
54
+ * ```
55
+ *
56
+ * This configuration defines a Metric Alert that monitors CPU usage across specified virtual machines, triggering an alert if the CPU usage exceeds 80% over a 5-minute window, evaluated every minute.
18
57
  */
19
58
  constructor(scope, id, props) {
20
59
  super(scope, id);
@@ -85,5 +124,5 @@ class MetricAlert extends constructs_1.Construct {
85
124
  }
86
125
  exports.MetricAlert = MetricAlert;
87
126
  _a = JSII_RTTI_SYMBOL_1;
88
- MetricAlert[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_metricalert.MetricAlert", version: "0.0.3-pre.6" };
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljLWFsZXJ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLW1ldHJpY2FsZXJ0L2xpYi9tZXRyaWMtYWxlcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwyRkFBc0Y7QUFDdEYsK0JBQStCO0FBQy9CLDJDQUF1QztBQUN2QyxpQ0FBaUM7QUFDakMsa0NBQWtDO0FBRWxDLE1BQWEsV0FBWSxTQUFRLHNCQUFTO0lBSXhDOzs7Ozs7T0FNRztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBOEI7UUFDdEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUVuQix1QkFBdUI7UUFDdkIsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUM7UUFDM0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUM7UUFDckQsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUM7UUFDakQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQztRQUV0RSx3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLDJDQUEyQyxFQUFFLENBQUM7UUFFbkQsc0JBQXNCO1FBQ3RCLE1BQU0sV0FBVyxHQUFHLElBQUkseUNBQWtCLENBQUMsSUFBSSxF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R0gsa0NBa0dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9uaXRvck1ldHJpY0FsZXJ0IH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9tb25pdG9yLW1ldHJpYy1hbGVydFwiO1xuaW1wb3J0ICogYXMgY2RrdGYgZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcbmltcG9ydCAqIGFzIG1vZGVsIGZyb20gXCIuLi9tb2RlbFwiO1xuXG5leHBvcnQgY2xhc3MgTWV0cmljQWxlcnQgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICByZWFkb25seSBwcm9wczogbW9kZWwuSU1ldHJpY0FsZXJ0UHJvcHM7XG4gIHB1YmxpYyByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSBNZXRyaWNBbGVydCBjbGFzcy5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gVGhlIHNjb3BlIGluIHdoaWNoIHRoaXMgY29uc3RydWN0IGlzIGRlZmluZWQuXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBJRCBvZiB0aGlzIGNvbnN0cnVjdC5cbiAgICogQHBhcmFtIHByb3BzIC0gVGhlIHByb3BlcnRpZXMgcmVxdWlyZWQgZm9yIE1ldHJpYyBBbGVydC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBtb2RlbC5JTWV0cmljQWxlcnRQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG5cbiAgICAvLyBTZXR1cCBkZWZhdWx0IHZhbHVlc1xuICAgIHRoaXMucHJvcHMuZW5hYmxlZCA9IHByb3BzLmVuYWJsZWQgPz8gdHJ1ZTtcbiAgICB0aGlzLnByb3BzLmF1dG9taXRpZ2F0ZSA9IHByb3BzLmF1dG9taXRpZ2F0ZSA/PyB0cnVlO1xuICAgIHRoaXMucHJvcHMuZnJlcXVlbmN5ID0gcHJvcHMuZnJlcXVlbmN5ID8/IFwiUFQ1TVwiO1xuICAgIHRoaXMucHJvcHMuc2V2ZXJpdHkgPSBwcm9wcy5zZXZlcml0eSA/PyAzO1xuICAgIHRoaXMucHJvcHMud2luZG93U2l6ZSA9IHByb3BzLndpbmRvd1NpemUgPz8gcHJvcHMuZnJlcXVlbmN5ID8/IFwiUFQ1TVwiO1xuXG4gICAgLy8gUHJvcGVydGllcyB2YWxpZGF0aW9uXG4gICAgdGhpcy5WYWxpZGF0ZVByb3BzRnJlcXVlbmN5KCk7XG4gICAgdGhpcy5WYWxpZGF0ZVByb3BzV2luZG93U2l6ZSgpO1xuICAgIHRoaXMuVmFsaWRhdGVQcm9wc1dpbmRvd1NpemVHcmVhdGVyVGhhbkZyZXF1ZW5jeSgpO1xuXG4gICAgLy8gQ3JlYXRlIE1ldHJpYyBBbGVydFxuICAgIGNvbnN0IG1ldHJpY0FsZXJ0ID0gbmV3IE1vbml0b3JNZXRyaWNBbGVydCh0aGlzLCBcIm1ldHJpY0FsZXJ0XCIsIHtcbiAgICAgIG5hbWU6IHByb3BzLm5hbWUsXG4gICAgICByZXNvdXJjZUdyb3VwTmFtZTogcHJvcHMucmVzb3VyY2VHcm91cC5uYW1lLFxuICAgICAgc2NvcGVzOiBwcm9wcy5zY29wZXMsXG4gICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICB0YXJnZXRSZXNvdXJjZVR5cGU6IHByb3BzLnRhcmdldFJlc291cmNlVHlwZSxcbiAgICAgIHRhcmdldFJlc291cmNlTG9jYXRpb246IHByb3BzLnRhcmdldFJlc291cmNlTG9jYXRpb24sXG4gICAgICBhY3Rpb246IGNka3RmLmxpc3RNYXBwZXIoXG4gICAgICAgIG1vZGVsLm1vbml0b3JNZXRyaWNBbGVydEFjdGlvblRvVGVycmFmb3JtLFxuICAgICAgICB0cnVlLFxuICAgICAgKSh0aGlzLnByb3BzLmFjdGlvbiksXG4gICAgICB0YWdzOiBwcm9wcy50YWdzLFxuICAgICAgZW5hYmxlZDogdGhpcy5wcm9wcy5lbmFibGVkLFxuICAgICAgYXV0b01pdGlnYXRlOiB0aGlzLnByb3BzLmF1dG9taXRpZ2F0ZSxcbiAgICAgIGZyZXF1ZW5jeTogdGhpcy5wcm9wcy5mcmVxdWVuY3ksXG4gICAgICBzZXZlcml0eTogdGhpcy5wcm9wcy5zZXZlcml0eSxcbiAgICAgIHdpbmRvd1NpemU6IHRoaXMucHJvcHMud2luZG93U2l6ZSxcbiAgICAgIGNyaXRlcmlhOiBjZGt0Zi5saXN0TWFwcGVyKFxuICAgICAgICBtb2RlbC5tb25pdG9yTWV0cmljQWxlcnRDcml0ZXJpYVRvVGVycmFmb3JtLFxuICAgICAgICB0cnVlLFxuICAgICAgKSh0aGlzLnByb3BzLmNyaXRlcmlhKSxcbiAgICAgIGR5bmFtaWNDcml0ZXJpYTogY2RrdGYubGlzdE1hcHBlcihcbiAgICAgICAgbW9kZWwubW9uaXRvck1ldHJpY0FsZXJ0RHluYW1pY0NyaXRlcmlhVG9UZXJyYWZvcm0sXG4gICAgICAgIHRydWUsXG4gICAgICApKHRoaXMucHJvcHMuZHluYW1pY0NyaXRlcmlhKSxcbiAgICB9KTtcblxuICAgIC8vIE91dHB1dCBwcm9wZXJ0aWVzXG4gICAgdGhpcy5pZCA9IG1ldHJpY0FsZXJ0LmlkO1xuICAgIGNvbnN0IGNka3RmVGVycmFmb3JtT3V0cHV0TWV0cmljQWxlcnRJZCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQoXG4gICAgICB0aGlzLFxuICAgICAgXCJpZFwiLFxuICAgICAge1xuICAgICAgICB2YWx1ZTogbWV0cmljQWxlcnQuaWQsXG4gICAgICB9LFxuICAgICk7XG4gICAgY2RrdGZUZXJyYWZvcm1PdXRwdXRNZXRyaWNBbGVydElkLm92ZXJyaWRlTG9naWNhbElkKFwiaWRcIik7XG4gIH1cblxuICBwcml2YXRlIFZhbGlkYXRlUHJvcHNGcmVxdWVuY3koKSB7XG4gICAgY29uc3QgZnJlcXVlbmN5T3B0aW9ucyA9IFtcIlBUMU1cIiwgXCJQVDVNXCIsIFwiUFQxNU1cIiwgXCJQVDMwTVwiLCBcIlBUMUhcIl07XG4gICAgaWYgKCFmcmVxdWVuY3lPcHRpb25zLmluY2x1ZGVzKHRoaXMucHJvcHMuZnJlcXVlbmN5ID8/IFwiTm90U2V0XCIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGZyZXF1ZW5jeSBtdXN0IGJlIG9uZSBvZiAke2ZyZXF1ZW5jeU9wdGlvbnN9YCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBWYWxpZGF0ZVByb3BzV2luZG93U2l6ZSgpIHtcbiAgICBjb25zdCB3aW5kb3dTaXplT3B0aW9ucyA9IFtcbiAgICAgIFwiUFQxTVwiLFxuICAgICAgXCJQVDVNXCIsXG4gICAgICBcIlBUMTVNXCIsXG4gICAgICBcIlBUMzBNXCIsXG4gICAgICBcIlBUMUhcIixcbiAgICAgIFwiUFQ2SFwiLFxuICAgICAgXCJQVDEySFwiLFxuICAgICAgXCJQMURcIixcbiAgICBdO1xuICAgIGlmICghd2luZG93U2l6ZU9wdGlvbnMuaW5jbHVkZXModGhpcy5wcm9wcy53aW5kb3dTaXplID8/IFwiTm90U2V0XCIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHdpbmRvd1NpemUgbXVzdCBiZSBvbmUgb2YgJHt3aW5kb3dTaXplT3B0aW9uc31gKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIFZhbGlkYXRlUHJvcHNXaW5kb3dTaXplR3JlYXRlclRoYW5GcmVxdWVuY3koKSB7XG4gICAgY29uc3QgZiA9IG1vbWVudC5kdXJhdGlvbih0aGlzLnByb3BzLmZyZXF1ZW5jeSk7XG4gICAgY29uc3QgdyA9IG1vbWVudC5kdXJhdGlvbih0aGlzLnByb3BzLndpbmRvd1NpemUpO1xuICAgIGlmICh3IDwgZikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwid2luZG93U2l6ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBmcmVxdWVuY3lcIik7XG4gICAgfVxuICB9XG59XG4iXX0=
127
+ MetricAlert[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_metricalert.MetricAlert", version: "0.0.3-pre.7" };
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljLWFsZXJ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLW1ldHJpY2FsZXJ0L2xpYi9tZXRyaWMtYWxlcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwyRkFBc0Y7QUFDdEYsK0JBQStCO0FBQy9CLDJDQUF1QztBQUN2QyxpQ0FBaUM7QUFDakMsa0NBQWtDO0FBRWxDLE1BQWEsV0FBWSxTQUFRLHNCQUFTO0lBSXhDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0E2Q0c7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQThCO1FBQ3RFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDO1FBQzNDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDO1FBQ3JELElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDO1FBQ2pELElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUM7UUFFdEUsd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQywyQ0FBMkMsRUFBRSxDQUFDO1FBRW5ELHNCQUFzQjtRQUN0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QUMsMkNBQTJDLENBQUMsQ0FBQztTQUM5RDtJQUNILENBQUM7O0FBeElILGtDQXlJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vbml0b3JNZXRyaWNBbGVydCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvbW9uaXRvci1tZXRyaWMtYWxlcnRcIjtcbmltcG9ydCAqIGFzIGNka3RmIGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tIFwibW9tZW50XCI7XG5pbXBvcnQgKiBhcyBtb2RlbCBmcm9tIFwiLi4vbW9kZWxcIjtcblxuZXhwb3J0IGNsYXNzIE1ldHJpY0FsZXJ0IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgcHJvcHM6IG1vZGVsLklNZXRyaWNBbGVydFByb3BzO1xuICBwdWJsaWMgcmVhZG9ubHkgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogUmVwcmVzZW50cyBhIE1ldHJpYyBBbGVydCBpbiBBenVyZSBNb25pdG9yLCB3aGljaCBpcyB1c2VkIHRvIGF1dG9tYXRpY2FsbHkgbW9uaXRvciBtZXRyaWNzIGFjcm9zcyBBenVyZSBzZXJ2aWNlcyBhbmQgdHJpZ2dlciBhY3Rpb25zIHdoZW4gY2VydGFpbiBjb25kaXRpb25zIGFyZSBtZXQuXG4gICAqXG4gICAqIFRoaXMgY2xhc3MgZW5jYXBzdWxhdGVzIHRoZSBjb25maWd1cmF0aW9uIGFuZCBtYW5hZ2VtZW50IG9mIGEgTWV0cmljIEFsZXJ0LCBhbGxvd2luZyB1c2VycyB0byBkZWZpbmUgYWxlcnQgcnVsZXMgYmFzZWQgb24gdGhlIG1ldHJpY3MgZnJvbSB0aGVpciBBenVyZSByZXNvdXJjZXMuIE1ldHJpYyBBbGVydHMgY2FuIGhlbHAgaW4gcHJvYWN0aXZlbHkgbWFuYWdpbmcgdGhlIGhlYWx0aCwgcGVyZm9ybWFuY2UsIGFuZCBhdmFpbGFiaWxpdHkgb2YgQXp1cmUgc2VydmljZXMuXG4gICAqXG4gICAqIFByb3BlcnRpZXM6XG4gICAqIC0gYG5hbWVgOiBUaGUgbmFtZSBvZiB0aGUgTWV0cmljIEFsZXJ0LCB3aGljaCBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIHJlc291cmNlIGdyb3VwLlxuICAgKiAtIGBkZXNjcmlwdGlvbmA6IE9wdGlvbmFsLiBBIGRlc2NyaXB0aW9uIG9mIHdoYXQgdGhlIE1ldHJpYyBBbGVydCBtb25pdG9ycyBhbmQgcG90ZW50aWFsIGltcGFjdCBvciByZW1lZGlhdGlvbi5cbiAgICogLSBgZW5hYmxlZGA6IEluZGljYXRlcyB3aGV0aGVyIHRoZSBhbGVydCBydWxlIGlzIGVuYWJsZWQuIERpc2FibGVkIHJ1bGVzIHdpbGwgbm90IGZpcmUuXG4gICAqIC0gYGF1dG9NaXRpZ2F0ZWA6IFNwZWNpZmllcyB3aGV0aGVyIHRoZSBhbGVydCBzaG91bGQgYXR0ZW1wdCBhdXRvLW1pdGlnYXRpb24gYWN0aW9ucyB3aGVuIHRyaWdnZXJlZC5cbiAgICogLSBgZnJlcXVlbmN5YDogVGhlIGZyZXF1ZW5jeSBvZiBldmFsdWF0aW9uIGZvciB0aGUgYWxlcnQgcnVsZSwgZGV0ZXJtaW5pbmcgaG93IG9mdGVuIHRoZSBydWxlIGlzIGNoZWNrZWQuXG4gICAqIC0gYHNldmVyaXR5YDogVGhlIHNldmVyaXR5IGxldmVsIGFzc2lnbmVkIHRvIHRoZSBhbGVydC4gVGhpcyBoZWxwcyBpbiBjYXRlZ29yaXppbmcgdGhlIHVyZ2VuY3kgb2YgdGhlIGFsZXJ0LlxuICAgKiAtIGB0YXJnZXRSZXNvdXJjZVR5cGVgOiBTcGVjaWZpZXMgdGhlIHR5cGUgb2YgQXp1cmUgcmVzb3VyY2UgdGhlIGFsZXJ0IHJ1bGUgYXBwbGllcyB0bywgbmVjZXNzYXJ5IGZvciBzY29waW5nIHRoZSBhbGVydC5cbiAgICogLSBgdGFyZ2V0UmVzb3VyY2VMb2NhdGlvbmA6IFNwZWNpZmllcyB0aGUgbG9jYXRpb24gb2YgdGhlIHRhcmdldCByZXNvdXJjZSwgcmVxdWlyZWQgd2hlbiB0aGUgYWxlcnQgcnVsZSBjb3ZlcnMgcmVzb3VyY2VzIGluIG11bHRpcGxlIGxvY2F0aW9ucy5cbiAgICogLSBgd2luZG93U2l6ZWA6IFRoZSBwZXJpb2Qgb3ZlciB3aGljaCBkYXRhIGlzIGNvbGxlY3RlZCBmb3IgYW5hbHlzaXMsIHdoaWNoIG11c3QgYmUgZ3JlYXRlciB0aGFuIHRoZSBmcmVxdWVuY3kgb2YgZXZhbHVhdGlvbi5cbiAgICogLSBgdGFnc2A6IFVzZXItZGVmaW5lZCB0YWdzIHRvIGhlbHAgb3JnYW5pemUgYW5kIGlkZW50aWZ5IHJlc291cmNlcyB3aXRoaW4gQXp1cmUuXG4gICAqIC0gYGNyaXRlcmlhYDogVGhlIGNvbmRpdGlvbnMgdGhhdCB0cmlnZ2VyIHRoZSBhbGVydC4gVGhpcyBjYW4gYmUgc3RhdGljIG9yIGR5bmFtaWMsIGJhc2VkIG9uIHRoZSBiZWhhdmlvciBvZiB0aGUgbW9uaXRvcmVkIG1ldHJpYyBvdmVyIHRpbWUuXG4gICAqIC0gYGR5bmFtaWNDcml0ZXJpYWA6IEFkdmFuY2VkIGNvbmZpZ3VyYXRpb25zIGZvciBjcml0ZXJpYSB0aGF0IGR5bmFtaWNhbGx5IGFkanVzdCB0aHJlc2hvbGRzIGJhc2VkIG9uIGhpc3RvcmljYWwgZGF0YS5cbiAgICogLSBgc2NvcGVzYDogVGhlIHNwZWNpZmljIHJlc291cmNlcyB0aGF0IHRoZSBNZXRyaWMgQWxlcnQgaXMgc2NvcGVkIHRvIG1vbml0b3IuXG4gICAqIC0gYHJlc291cmNlR3JvdXBgOiBUaGUgQXp1cmUgUmVzb3VyY2UgR3JvdXAgaW4gd2hpY2ggdGhpcyBNZXRyaWMgQWxlcnQgaXMgZGVmaW5lZC5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBjcHVBbGVydFByb3BzOiBJTWV0cmljQWxlcnRQcm9wcyA9IHtcbiAgICogICBuYW1lOiAnSGlnaCBDUFUgVXNhZ2UgQWxlcnQnLFxuICAgKiAgIHJlc291cmNlR3JvdXA6IHJlc291cmNlR3JvdXBJbnN0YW5jZSxcbiAgICogICBzY29wZXM6IFt2bS5pZF0sXG4gICAqICAgY3JpdGVyaWE6IFtcbiAgICogICAgIHtcbiAgICogICAgICAgbWV0cmljTmFtZTogJ1BlcmNlbnRhZ2UgQ1BVJyxcbiAgICogICAgICAgb3BlcmF0b3I6ICdHcmVhdGVyVGhhbicsXG4gICAqICAgICAgIHRocmVzaG9sZDogODAsXG4gICAqICAgICAgIGFnZ3JlZ2F0aW9uOiAnQXZlcmFnZSdcbiAgICogICAgIH1cbiAgICogICBdLFxuICAgKiAgIGZyZXF1ZW5jeTogJ1BUMU0nLFxuICAgKiAgIHdpbmRvd1NpemU6ICdQVDVNJyxcbiAgICogICBzZXZlcml0eTogMyxcbiAgICogICBlbmFibGVkOiB0cnVlXG4gICAqIH07XG4gICAqXG4gICAqIGNvbnN0IGNwdUFsZXJ0ID0gbmV3IE1ldHJpY0FsZXJ0KHRoaXMsICdjcHVVc2FnZUFsZXJ0JywgY3B1QWxlcnRQcm9wcyk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBUaGlzIGNvbmZpZ3VyYXRpb24gZGVmaW5lcyBhIE1ldHJpYyBBbGVydCB0aGF0IG1vbml0b3JzIENQVSB1c2FnZSBhY3Jvc3Mgc3BlY2lmaWVkIHZpcnR1YWwgbWFjaGluZXMsIHRyaWdnZXJpbmcgYW4gYWxlcnQgaWYgdGhlIENQVSB1c2FnZSBleGNlZWRzIDgwJSBvdmVyIGEgNS1taW51dGUgd2luZG93LCBldmFsdWF0ZWQgZXZlcnkgbWludXRlLlxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IG1vZGVsLklNZXRyaWNBbGVydFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIC8vIFNldHVwIGRlZmF1bHQgdmFsdWVzXG4gICAgdGhpcy5wcm9wcy5lbmFibGVkID0gcHJvcHMuZW5hYmxlZCA/PyB0cnVlO1xuICAgIHRoaXMucHJvcHMuYXV0b21pdGlnYXRlID0gcHJvcHMuYXV0b21pdGlnYXRlID8/IHRydWU7XG4gICAgdGhpcy5wcm9wcy5mcmVxdWVuY3kgPSBwcm9wcy5mcmVxdWVuY3kgPz8gXCJQVDVNXCI7XG4gICAgdGhpcy5wcm9wcy5zZXZlcml0eSA9IHByb3BzLnNldmVyaXR5ID8/IDM7XG4gICAgdGhpcy5wcm9wcy53aW5kb3dTaXplID0gcHJvcHMud2luZG93U2l6ZSA/PyBwcm9wcy5mcmVxdWVuY3kgPz8gXCJQVDVNXCI7XG5cbiAgICAvLyBQcm9wZXJ0aWVzIHZhbGlkYXRpb25cbiAgICB0aGlzLlZhbGlkYXRlUHJvcHNGcmVxdWVuY3koKTtcbiAgICB0aGlzLlZhbGlkYXRlUHJvcHNXaW5kb3dTaXplKCk7XG4gICAgdGhpcy5WYWxpZGF0ZVByb3BzV2luZG93U2l6ZUdyZWF0ZXJUaGFuRnJlcXVlbmN5KCk7XG5cbiAgICAvLyBDcmVhdGUgTWV0cmljIEFsZXJ0XG4gICAgY29uc3QgbWV0cmljQWxlcnQgPSBuZXcgTW9uaXRvck1ldHJpY0FsZXJ0KHRoaXMsIFwibWV0cmljQWxlcnRcIiwge1xuICAgICAgbmFtZTogcHJvcHMubmFtZSxcbiAgICAgIHJlc291cmNlR3JvdXBOYW1lOiBwcm9wcy5yZXNvdXJjZUdyb3VwLm5hbWUsXG4gICAgICBzY29wZXM6IHByb3BzLnNjb3BlcyxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIHRhcmdldFJlc291cmNlVHlwZTogcHJvcHMudGFyZ2V0UmVzb3VyY2VUeXBlLFxuICAgICAgdGFyZ2V0UmVzb3VyY2VMb2NhdGlvbjogcHJvcHMudGFyZ2V0UmVzb3VyY2VMb2NhdGlvbixcbiAgICAgIGFjdGlvbjogY2RrdGYubGlzdE1hcHBlcihcbiAgICAgICAgbW9kZWwubW9uaXRvck1ldHJpY0FsZXJ0QWN0aW9uVG9UZXJyYWZvcm0sXG4gICAgICAgIHRydWUsXG4gICAgICApKHRoaXMucHJvcHMuYWN0aW9uKSxcbiAgICAgIHRhZ3M6IHByb3BzLnRhZ3MsXG4gICAgICBlbmFibGVkOiB0aGlzLnByb3BzLmVuYWJsZWQsXG4gICAgICBhdXRvTWl0aWdhdGU6IHRoaXMucHJvcHMuYXV0b21pdGlnYXRlLFxuICAgICAgZnJlcXVlbmN5OiB0aGlzLnByb3BzLmZyZXF1ZW5jeSxcbiAgICAgIHNldmVyaXR5OiB0aGlzLnByb3BzLnNldmVyaXR5LFxuICAgICAgd2luZG93U2l6ZTogdGhpcy5wcm9wcy53aW5kb3dTaXplLFxuICAgICAgY3JpdGVyaWE6IGNka3RmLmxpc3RNYXBwZXIoXG4gICAgICAgIG1vZGVsLm1vbml0b3JNZXRyaWNBbGVydENyaXRlcmlhVG9UZXJyYWZvcm0sXG4gICAgICAgIHRydWUsXG4gICAgICApKHRoaXMucHJvcHMuY3JpdGVyaWEpLFxuICAgICAgZHluYW1pY0NyaXRlcmlhOiBjZGt0Zi5saXN0TWFwcGVyKFxuICAgICAgICBtb2RlbC5tb25pdG9yTWV0cmljQWxlcnREeW5hbWljQ3JpdGVyaWFUb1RlcnJhZm9ybSxcbiAgICAgICAgdHJ1ZSxcbiAgICAgICkodGhpcy5wcm9wcy5keW5hbWljQ3JpdGVyaWEpLFxuICAgIH0pO1xuXG4gICAgLy8gT3V0cHV0IHByb3BlcnRpZXNcbiAgICB0aGlzLmlkID0gbWV0cmljQWxlcnQuaWQ7XG4gICAgY29uc3QgY2RrdGZUZXJyYWZvcm1PdXRwdXRNZXRyaWNBbGVydElkID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBcImlkXCIsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBtZXRyaWNBbGVydC5pZCxcbiAgICAgIH0sXG4gICAgKTtcbiAgICBjZGt0ZlRlcnJhZm9ybU91dHB1dE1ldHJpY0FsZXJ0SWQub3ZlcnJpZGVMb2dpY2FsSWQoXCJpZFwiKTtcbiAgfVxuXG4gIHByaXZhdGUgVmFsaWRhdGVQcm9wc0ZyZXF1ZW5jeSgpIHtcbiAgICBjb25zdCBmcmVxdWVuY3lPcHRpb25zID0gW1wiUFQxTVwiLCBcIlBUNU1cIiwgXCJQVDE1TVwiLCBcIlBUMzBNXCIsIFwiUFQxSFwiXTtcbiAgICBpZiAoIWZyZXF1ZW5jeU9wdGlvbnMuaW5jbHVkZXModGhpcy5wcm9wcy5mcmVxdWVuY3kgPz8gXCJOb3RTZXRcIikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgZnJlcXVlbmN5IG11c3QgYmUgb25lIG9mICR7ZnJlcXVlbmN5T3B0aW9uc31gKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIFZhbGlkYXRlUHJvcHNXaW5kb3dTaXplKCkge1xuICAgIGNvbnN0IHdpbmRvd1NpemVPcHRpb25zID0gW1xuICAgICAgXCJQVDFNXCIsXG4gICAgICBcIlBUNU1cIixcbiAgICAgIFwiUFQxNU1cIixcbiAgICAgIFwiUFQzME1cIixcbiAgICAgIFwiUFQxSFwiLFxuICAgICAgXCJQVDZIXCIsXG4gICAgICBcIlBUMTJIXCIsXG4gICAgICBcIlAxRFwiLFxuICAgIF07XG4gICAgaWYgKCF3aW5kb3dTaXplT3B0aW9ucy5pbmNsdWRlcyh0aGlzLnByb3BzLndpbmRvd1NpemUgPz8gXCJOb3RTZXRcIikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgd2luZG93U2l6ZSBtdXN0IGJlIG9uZSBvZiAke3dpbmRvd1NpemVPcHRpb25zfWApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgVmFsaWRhdGVQcm9wc1dpbmRvd1NpemVHcmVhdGVyVGhhbkZyZXF1ZW5jeSgpIHtcbiAgICBjb25zdCBmID0gbW9tZW50LmR1cmF0aW9uKHRoaXMucHJvcHMuZnJlcXVlbmN5KTtcbiAgICBjb25zdCB3ID0gbW9tZW50LmR1cmF0aW9uKHRoaXMucHJvcHMud2luZG93U2l6ZSk7XG4gICAgaWYgKHcgPCBmKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ3aW5kb3dTaXplIG11c3QgYmUgZ3JlYXRlciB0aGFuIGZyZXF1ZW5jeVwiKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -22,7 +22,7 @@ class PreconfiguredRules {
22
22
  }
23
23
  exports.PreconfiguredRules = PreconfiguredRules;
24
24
  _a = JSII_RTTI_SYMBOL_1;
25
- PreconfiguredRules[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_networksecuritygroup.PreconfiguredRules", version: "0.0.3-pre.6" };
25
+ PreconfiguredRules[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_networksecuritygroup.PreconfiguredRules", version: "0.0.3-pre.7" };
26
26
  // Active Directory
27
27
  PreconfiguredRules.activeDirectoryAllowADReplication = {
28
28
  direction: "Inbound",
@@ -70,8 +70,78 @@ export declare class SecurityGroup extends AzureResource {
70
70
  id: string;
71
71
  readonly name: string;
72
72
  resourceGroup: ResourceGroup;
73
+ /**
74
+ * Represents an Azure Network Security Group (NSG).
75
+ *
76
+ * This class is responsible for the creation and management of an Azure Network Security Group, which acts as a virtual firewall
77
+ * for virtual network resources. A Network Security Group contains a list of security rules that allow or deny network traffic
78
+ * to resources connected to Azure Virtual Networks (VNet). Each rule specifies a combination of source and destination, port,
79
+ * and protocol, and an action (allow or deny) based on those combinations. This class allows for detailed configuration of these
80
+ * rules to enforce security policies for inbound and outbound network traffic.
81
+ *
82
+ * @param scope - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) stack.
83
+ * @param id - The unique identifier for this instance of the security group.
84
+ * @param props - The properties required to configure the Network Security Group, as defined in the SecurityGroupProps interface. These include:
85
+ * - `resourceGroup`: The Azure Resource Group under which the NSG will be deployed.
86
+ * - `location`: The Azure region where the NSG will be created.
87
+ * - `name`: The name of the NSG, which must be unique within the resource group.
88
+ * - `rules`: A list of rules that define the security policies for traffic control.
89
+ *
90
+ * Example usage:
91
+ * ```typescript
92
+ * new SecurityGroup(this, 'MySecurityGroup', {
93
+ * resourceGroup: myResourceGroup,
94
+ * location: 'East US',
95
+ * name: 'myNsg',
96
+ * rules: [{
97
+ * name: 'AllowSSH',
98
+ * priority: 100,
99
+ * direction: 'Inbound',
100
+ * access: 'Allow',
101
+ * protocol: 'Tcp',
102
+ * sourcePortRange: '*',
103
+ * destinationPortRange: '22',
104
+ * sourceAddressPrefix: '*',
105
+ * destinationAddressPrefix: '*'
106
+ * }]
107
+ * });
108
+ * ```
109
+ * This class initializes a Network Security Group with specified rules, handling network security management tasks efficiently.
110
+ */
73
111
  constructor(scope: Construct, id: string, props: SecurityGroupProps);
112
+ /**
113
+ * Associates this Network Security Group with a specified subnet.
114
+ *
115
+ * This method facilitates the attachment of the security group to a subnet, applying the security group's rules to all
116
+ * resources within the subnet. This is crucial for managing network access and security policies at the subnet level.
117
+ *
118
+ * @param subnet - The subnet object to which this network security group will be associated.
119
+ *
120
+ * Example usage:
121
+ * ```typescript
122
+ * const mySubnet = { id: 'subnet-123', name: 'SubnetA' };
123
+ * mySecurityGroup.associateToSubnet(mySubnet);
124
+ * ```
125
+ * This operation ensures that the security rules defined in the network security group are enforced on all network interfaces
126
+ * attached to the specified subnet.
127
+ */
74
128
  associateToSubnet(subnet: Subnet): void;
129
+ /**
130
+ * Associates this Network Security Group with a specified network interface.
131
+ *
132
+ * This method attaches the security group to a network interface, applying the security group's rules to the network interface.
133
+ * This allows for fine-grained control of network traffic to and from the specific network interface.
134
+ *
135
+ * @param networkInterface - The network interface object to which this network security group will be associated.
136
+ *
137
+ * Example usage:
138
+ * ```typescript
139
+ * const myNetworkInterface = { id: 'nic-456', name: 'NetworkInterfaceA' };
140
+ * mySecurityGroup.associateToNetworkInterface(myNetworkInterface);
141
+ * ```
142
+ * This operation ensures that the security rules defined in the network security group are applied directly to the specified
143
+ * network interface, controlling access in a more targeted manner.
144
+ */
75
145
  associateToNetworkInterface(networkInterface: NetworkInterface): void;
76
146
  }
77
147
  /**
@@ -94,5 +164,27 @@ export interface SecurityGroupAssociationsProps {
94
164
  readonly networkInterfaceId?: string;
95
165
  }
96
166
  export declare class SecurityGroupAssociations extends Construct {
167
+ /**
168
+ * Manages the associations of Azure Network Security Groups with subnets and network interfaces.
169
+ *
170
+ * This class provides the functionality to associate a network security group with either subnets or network interfaces
171
+ * within the Azure environment. By managing these associations, it helps enforce security rules at both the subnet level
172
+ * and the network interface level, enhancing security configurations and compliance.
173
+ *
174
+ * @param scope - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) stack.
175
+ * @param id - The unique identifier for the association instance.
176
+ * @param props - The properties for the association. Includes the network security group ID and optionally a subnet ID or network interface ID.
177
+ *
178
+ * Example usage:
179
+ * ```typescript
180
+ * new SecurityGroupAssociations(this, 'MyAssociations', {
181
+ * networkSecurityGroupId: 'nsg-123',
182
+ * subnetId: 'subnet-123',
183
+ * networkInterfaceId: 'nic-456',
184
+ * });
185
+ * ```
186
+ * Depending on the properties provided, this class will create the appropriate associations to apply the network security group
187
+ * to the specified subnet or network interface.
188
+ */
97
189
  constructor(scope: Construct, id: string, props: SecurityGroupAssociationsProps);
98
190
  }
@@ -10,6 +10,44 @@ const subnet_network_security_group_association_1 = require("@cdktf/provider-azu
10
10
  const constructs_1 = require("constructs");
11
11
  const lib_1 = require("../../core-azure/lib");
12
12
  class SecurityGroup extends lib_1.AzureResource {
13
+ /**
14
+ * Represents an Azure Network Security Group (NSG).
15
+ *
16
+ * This class is responsible for the creation and management of an Azure Network Security Group, which acts as a virtual firewall
17
+ * for virtual network resources. A Network Security Group contains a list of security rules that allow or deny network traffic
18
+ * to resources connected to Azure Virtual Networks (VNet). Each rule specifies a combination of source and destination, port,
19
+ * and protocol, and an action (allow or deny) based on those combinations. This class allows for detailed configuration of these
20
+ * rules to enforce security policies for inbound and outbound network traffic.
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 security group.
24
+ * @param props - The properties required to configure the Network Security Group, as defined in the SecurityGroupProps interface. These include:
25
+ * - `resourceGroup`: The Azure Resource Group under which the NSG will be deployed.
26
+ * - `location`: The Azure region where the NSG will be created.
27
+ * - `name`: The name of the NSG, which must be unique within the resource group.
28
+ * - `rules`: A list of rules that define the security policies for traffic control.
29
+ *
30
+ * Example usage:
31
+ * ```typescript
32
+ * new SecurityGroup(this, 'MySecurityGroup', {
33
+ * resourceGroup: myResourceGroup,
34
+ * location: 'East US',
35
+ * name: 'myNsg',
36
+ * rules: [{
37
+ * name: 'AllowSSH',
38
+ * priority: 100,
39
+ * direction: 'Inbound',
40
+ * access: 'Allow',
41
+ * protocol: 'Tcp',
42
+ * sourcePortRange: '*',
43
+ * destinationPortRange: '22',
44
+ * sourceAddressPrefix: '*',
45
+ * destinationAddressPrefix: '*'
46
+ * }]
47
+ * });
48
+ * ```
49
+ * This class initializes a Network Security Group with specified rules, handling network security management tasks efficiently.
50
+ */
13
51
  constructor(scope, id, props) {
14
52
  super(scope, id);
15
53
  this.props = props;
@@ -39,14 +77,44 @@ class SecurityGroup extends lib_1.AzureResource {
39
77
  this.id = nsg.id;
40
78
  this.name = nsg.name;
41
79
  }
42
- // Method to associate the network security group to a subnet
80
+ /**
81
+ * Associates this Network Security Group with a specified subnet.
82
+ *
83
+ * This method facilitates the attachment of the security group to a subnet, applying the security group's rules to all
84
+ * resources within the subnet. This is crucial for managing network access and security policies at the subnet level.
85
+ *
86
+ * @param subnet - The subnet object to which this network security group will be associated.
87
+ *
88
+ * Example usage:
89
+ * ```typescript
90
+ * const mySubnet = { id: 'subnet-123', name: 'SubnetA' };
91
+ * mySecurityGroup.associateToSubnet(mySubnet);
92
+ * ```
93
+ * This operation ensures that the security rules defined in the network security group are enforced on all network interfaces
94
+ * attached to the specified subnet.
95
+ */
43
96
  associateToSubnet(subnet) {
44
97
  new SecurityGroupAssociations(this, subnet.name, {
45
98
  subnetId: subnet.id,
46
99
  networkSecurityGroupId: this.id,
47
100
  });
48
101
  }
49
- // Method to associate the network security group to a network interface
102
+ /**
103
+ * Associates this Network Security Group with a specified network interface.
104
+ *
105
+ * This method attaches the security group to a network interface, applying the security group's rules to the network interface.
106
+ * This allows for fine-grained control of network traffic to and from the specific network interface.
107
+ *
108
+ * @param networkInterface - The network interface object to which this network security group will be associated.
109
+ *
110
+ * Example usage:
111
+ * ```typescript
112
+ * const myNetworkInterface = { id: 'nic-456', name: 'NetworkInterfaceA' };
113
+ * mySecurityGroup.associateToNetworkInterface(myNetworkInterface);
114
+ * ```
115
+ * This operation ensures that the security rules defined in the network security group are applied directly to the specified
116
+ * network interface, controlling access in a more targeted manner.
117
+ */
50
118
  associateToNetworkInterface(networkInterface) {
51
119
  new SecurityGroupAssociations(this, networkInterface.name, {
52
120
  networkInterfaceId: networkInterface.id,
@@ -56,8 +124,30 @@ class SecurityGroup extends lib_1.AzureResource {
56
124
  }
57
125
  exports.SecurityGroup = SecurityGroup;
58
126
  _a = JSII_RTTI_SYMBOL_1;
59
- SecurityGroup[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_networksecuritygroup.SecurityGroup", version: "0.0.3-pre.6" };
127
+ SecurityGroup[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_networksecuritygroup.SecurityGroup", version: "0.0.3-pre.7" };
60
128
  class SecurityGroupAssociations extends constructs_1.Construct {
129
+ /**
130
+ * Manages the associations of Azure Network Security Groups with subnets and network interfaces.
131
+ *
132
+ * This class provides the functionality to associate a network security group with either subnets or network interfaces
133
+ * within the Azure environment. By managing these associations, it helps enforce security rules at both the subnet level
134
+ * and the network interface level, enhancing security configurations and compliance.
135
+ *
136
+ * @param scope - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) stack.
137
+ * @param id - The unique identifier for the association instance.
138
+ * @param props - The properties for the association. Includes the network security group ID and optionally a subnet ID or network interface ID.
139
+ *
140
+ * Example usage:
141
+ * ```typescript
142
+ * new SecurityGroupAssociations(this, 'MyAssociations', {
143
+ * networkSecurityGroupId: 'nsg-123',
144
+ * subnetId: 'subnet-123',
145
+ * networkInterfaceId: 'nic-456',
146
+ * });
147
+ * ```
148
+ * Depending on the properties provided, this class will create the appropriate associations to apply the network security group
149
+ * to the specified subnet or network interface.
150
+ */
61
151
  constructor(scope, id, props) {
62
152
  super(scope, id);
63
153
  // If subnetId is provided, create a SubnetNetworkSecurityGroupAssociation
@@ -78,5 +168,5 @@ class SecurityGroupAssociations extends constructs_1.Construct {
78
168
  }
79
169
  exports.SecurityGroupAssociations = SecurityGroupAssociations;
80
170
  _b = JSII_RTTI_SYMBOL_1;
81
- SecurityGroupAssociations[_b] = { fqn: "@microsoft/terraform-cdk-constructs.azure_networksecuritygroup.SecurityGroupAssociations", version: "0.0.3-pre.6" };
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHlncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1uZXR3b3Jrc2VjdXJpdHlncm91cC9saWIvc2VjdXJpdHlncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLDJJQUFvSTtBQUNwSSwrRkFBMEY7QUFDMUYsNkZBQXdGO0FBR3hGLHFJQUE4SDtBQUM5SCwyQ0FBdUM7QUFDdkMsOENBQXFEO0FBNkVyRCxNQUFhLGFBQWMsU0FBUSxtQkFBYTtJQU05QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXlCO1FBQ2pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO1FBRXpDLGtDQUFrQztRQUNsQyxNQUFNLEdBQUcsR0FBRyxJQUFJLDZDQUFvQixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUU7WUFDaEQsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSTtZQUMzQyxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7U0FDekIsQ0FBQyxDQUFDO1FBRUgsMERBQTBEO1FBQzFELEtBQUssTUFBTSxVQUFVLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRTtZQUNwQyxJQUFJLDJDQUFtQixDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSSxFQUFFO2dCQUM3QyxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7Z0JBQ3JCLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSTtnQkFDM0Msd0JBQXdCLEVBQUUsR0FBRyxDQUFDLElBQUk7Z0JBQ2xDLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUTtnQkFDN0IsU0FBUyxFQUFFLFVBQVUsQ0FBQyxTQUFTO2dCQUMvQixNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU07Z0JBQ3pCLFFBQVEsRUFBRSxVQUFVLENBQUMsUUFBUTtnQkFDN0IsZUFBZSxFQUFFLFVBQVUsQ0FBQyxlQUFlO2dCQUMzQyxvQkFBb0IsRUFBRSxVQUFVLENBQUMsb0JBQW9CO2dCQUNyRCxtQkFBbUIsRUFBRSxVQUFVLENBQUMsbUJBQW1CO2dCQUNuRCx3QkFBd0IsRUFBRSxVQUFVLENBQUMsd0JBQXdCO2FBQzlELENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztJQUN2QixDQUFDO0lBRUQsNkRBQTZEO0lBQ3RELGlCQUFpQixDQUFDLE1BQWM7UUFDckMsSUFBSSx5QkFBeUIsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRTtZQUMvQyxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUU7WUFDbkIsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLEVBQUU7U0FDaEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHdFQUF3RTtJQUNqRSwyQkFBMkIsQ0FBQyxnQkFBa0M7UUFDbkUsSUFBSSx5QkFBeUIsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFO1lBQ3pELGtCQUFrQixFQUFFLGdCQUFnQixDQUFDLEVBQUU7WUFDdkMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLEVBQUU7U0FDaEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF0REgsc0NBdURDOzs7QUF3QkQsTUFBYSx5QkFBMEIsU0FBUSxzQkFBUztJQUN0RCxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUFxQztRQUVyQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLDBFQUEwRTtRQUMxRSxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxpRkFBcUMsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ2hFLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtnQkFDeEIsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLHNCQUFzQjthQUNyRCxDQUFDLENBQUM7U0FDSjtRQUVELHVGQUF1RjtRQUN2RixJQUFJLEtBQUssQ0FBQyxrQkFBa0IsRUFBRTtZQUM1QixJQUFJLHVGQUF3QyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFDbkUsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjtnQkFDNUMsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLHNCQUFzQjthQUNyRCxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7O0FBdEJILDhEQXVCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5ldHdvcmtJbnRlcmZhY2UgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL25ldHdvcmstaW50ZXJmYWNlXCI7IC8vIEltcG9ydCB0aGUgTmV0d29ya0ludGVyZmFjZSBjbGFzc1xuaW1wb3J0IHsgTmV0d29ya0ludGVyZmFjZVNlY3VyaXR5R3JvdXBBc3NvY2lhdGlvbiB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvbmV0d29yay1pbnRlcmZhY2Utc2VjdXJpdHktZ3JvdXAtYXNzb2NpYXRpb25cIjtcbmltcG9ydCB7IE5ldHdvcmtTZWN1cml0eUdyb3VwIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9uZXR3b3JrLXNlY3VyaXR5LWdyb3VwXCI7XG5pbXBvcnQgeyBOZXR3b3JrU2VjdXJpdHlSdWxlIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9uZXR3b3JrLXNlY3VyaXR5LXJ1bGVcIjtcbmltcG9ydCB7IFJlc291cmNlR3JvdXAgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3Jlc291cmNlLWdyb3VwXCI7XG5pbXBvcnQgeyBTdWJuZXQgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3N1Ym5ldFwiO1xuaW1wb3J0IHsgU3VibmV0TmV0d29ya1NlY3VyaXR5R3JvdXBBc3NvY2lhdGlvbiB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvc3VibmV0LW5ldHdvcmstc2VjdXJpdHktZ3JvdXAtYXNzb2NpYXRpb25cIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBenVyZVJlc291cmNlIH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliXCI7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBhIHJ1bGUgd2l0aGluIGFuIEF6dXJlIE5ldHdvcmsgU2VjdXJpdHkgR3JvdXAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVsZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc2VjdXJpdHkgcnVsZS5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByaW9yaXR5IG9mIHRoZSBydWxlLiBMb3dlciBudW1iZXJzIGhhdmUgaGlnaGVyIHByaW9yaXR5LiBBbGxvd2VkIHZhbHVlcyBhcmUgZnJvbSAxMDAgdG8gNDA5Ni5cbiAgICovXG4gIHJlYWRvbmx5IHByaW9yaXR5OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBkaXJlY3Rpb24gb2YgdGhlIHJ1bGUsIHdoaWNoIGNhbiBiZSAnSW5ib3VuZCcgb3IgJ091dGJvdW5kJy5cbiAgICovXG4gIHJlYWRvbmx5IGRpcmVjdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYWNjZXNzIHR5cGUgb2YgdGhlIHJ1bGUsIHdoaWNoIGRldGVybWluZXMgd2hldGhlciB0aGUgcnVsZSBwZXJtaXRzIG9yIGRlbmllcyB0cmFmZmljLiBDb21tb24gdmFsdWVzIGFyZSAnQWxsb3cnIG9yICdEZW55Jy5cbiAgICovXG4gIHJlYWRvbmx5IGFjY2Vzczogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcHJvdG9jb2wgdG8gd2hpY2ggdGhlIHJ1bGUgYXBwbGllcywgc3VjaCBhcyAnVGNwJywgJ1VkcCcsIG9yICcqJyAoZm9yIGFsbCBwcm90b2NvbHMpLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvdG9jb2w6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJhbmdlIG9mIHNvdXJjZSBwb3J0cyB0byB3aGljaCB0aGUgcnVsZSBhcHBsaWVzLiBDYW4gYmUgYSBzaW5nbGUgcG9ydCBvciBhIHJhbmdlIGxpa2UgJzEwMjQtMjA0OCcuXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VQb3J0UmFuZ2U6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJhbmdlIG9mIGRlc3RpbmF0aW9uIHBvcnRzIHRvIHdoaWNoIHRoZSBydWxlIGFwcGxpZXMuIENhbiBhbHNvIGJlIGEgc2luZ2xlIHBvcnQgb3IgYSByYW5nZS5cbiAgICovXG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uUG9ydFJhbmdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBDSURSIG9yIHNvdXJjZSBJUCByYW5nZSBvciAnKicgdG8gbWF0Y2ggYW55IElQLiBUaGlzIGlzIHRoZSByYW5nZSBvZiBzb3VyY2UgSVBzIGZvciB3aGljaCB0aGUgcnVsZSBhcHBsaWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlQWRkcmVzc1ByZWZpeDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQ0lEUiBvciBkZXN0aW5hdGlvbiBJUCByYW5nZSBvciAnKicgdG8gbWF0Y2ggYW55IElQLiBUaGlzIHNwZWNpZmllcyB0aGUgcmFuZ2Ugb2YgZGVzdGluYXRpb24gSVBzIGZvciB3aGljaCB0aGUgcnVsZSBpcyBhcHBsaWNhYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVzdGluYXRpb25BZGRyZXNzUHJlZml4OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYW4gQXp1cmUgTmV0d29yayBTZWN1cml0eSBHcm91cC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWN1cml0eUdyb3VwUHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlIGdyb3VwIHVuZGVyIHdoaWNoIHRoZSBuZXR3b3JrIHNlY3VyaXR5IGdyb3VwIHdpbGwgYmUgY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlR3JvdXA6IFJlc291cmNlR3JvdXA7XG5cbiAgLyoqXG4gICAqIFRoZSBBenVyZSByZWdpb24gaW4gd2hpY2ggdG8gY3JlYXRlIHRoZSBuZXR3b3JrIHNlY3VyaXR5IGdyb3VwLCBlLmcuLCAnRWFzdCBVUycsICdXZXN0IEV1cm9wZScuXG4gICAqL1xuICByZWFkb25seSBsb2NhdGlvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgbmV0d29yayBzZWN1cml0eSBncm91cC4gTXVzdCBiZSB1bmlxdWUgd2l0aGluIHRoZSByZXNvdXJjZSBncm91cC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQW4gYXJyYXkgb2YgcnVsZSBjb25maWd1cmF0aW9ucyB0byBiZSBhcHBsaWVkIHRvIHRoZSBuZXR3b3JrIHNlY3VyaXR5IGdyb3VwLlxuICAgKi9cbiAgcmVhZG9ubHkgcnVsZXM6IFJ1bGVDb25maWdbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFNlY3VyaXR5R3JvdXAgZXh0ZW5kcyBBenVyZVJlc291cmNlIHtcbiAgcmVhZG9ubHkgcHJvcHM6IFNlY3VyaXR5R3JvdXBQcm9wcztcbiAgcHVibGljIGlkOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZXNvdXJjZUdyb3VwOiBSZXNvdXJjZUdyb3VwO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTZWN1cml0eUdyb3VwUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICAgIHRoaXMucmVzb3VyY2VHcm91cCA9IHByb3BzLnJlc291cmNlR3JvdXA7XG5cbiAgICAvLyBDcmVhdGUgYSBuZXR3b3JrIHNlY3VyaXR5IGdyb3VwXG4gICAgY29uc3QgbnNnID0gbmV3IE5ldHdvcmtTZWN1cml0eUdyb3VwKHRoaXMsIFwibnNnXCIsIHtcbiAgICAgIG5hbWU6IHByb3BzLm5hbWUsXG4gICAgICByZXNvdXJjZUdyb3VwTmFtZTogcHJvcHMucmVzb3VyY2VHcm91cC5uYW1lLFxuICAgICAgbG9jYXRpb246IHByb3BzLmxvY2F0aW9uLFxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIHNlY3VyaXR5IHJ1bGVzIHdpdGhpbiB0aGUgbmV0d29yayBzZWN1cml0eSBncm91cFxuICAgIGZvciAoY29uc3QgcnVsZUNvbmZpZyBvZiBwcm9wcy5ydWxlcykge1xuICAgICAgbmV3IE5ldHdvcmtTZWN1cml0eVJ1bGUodGhpcywgcnVsZUNvbmZpZy5uYW1lLCB7XG4gICAgICAgIG5hbWU6IHJ1bGVDb25maWcubmFtZSxcbiAgICAgICAgcmVzb3VyY2VHcm91cE5hbWU6IHByb3BzLnJlc291cmNlR3JvdXAubmFtZSxcbiAgICAgICAgbmV0d29ya1NlY3VyaXR5R3JvdXBOYW1lOiBuc2cubmFtZSxcbiAgICAgICAgcHJpb3JpdHk6IHJ1bGVDb25maWcucHJpb3JpdHksXG4gICAgICAgIGRpcmVjdGlvbjogcnVsZUNvbmZpZy5kaXJlY3Rpb24sXG4gICAgICAgIGFjY2VzczogcnVsZUNvbmZpZy5hY2Nlc3MsXG4gICAgICAgIHByb3RvY29sOiBydWxlQ29uZmlnLnByb3RvY29sLFxuICAgICAgICBzb3VyY2VQb3J0UmFuZ2U6IHJ1bGVDb25maWcuc291cmNlUG9ydFJhbmdlLFxuICAgICAgICBkZXN0aW5hdGlvblBvcnRSYW5nZTogcnVsZUNvbmZpZy5kZXN0aW5hdGlvblBvcnRSYW5nZSxcbiAgICAgICAgc291cmNlQWRkcmVzc1ByZWZpeDogcnVsZUNvbmZpZy5zb3VyY2VBZGRyZXNzUHJlZml4LFxuICAgICAgICBkZXN0aW5hdGlvbkFkZHJlc3NQcmVmaXg6IHJ1bGVDb25maWcuZGVzdGluYXRpb25BZGRyZXNzUHJlZml4LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5pZCA9IG5zZy5pZDtcbiAgICB0aGlzLm5hbWUgPSBuc2cubmFtZTtcbiAgfVxuXG4gIC8vIE1ldGhvZCB0byBhc3NvY2lhdGUgdGhlIG5ldHdvcmsgc2VjdXJpdHkgZ3JvdXAgdG8gYSBzdWJuZXRcbiAgcHVibGljIGFzc29jaWF0ZVRvU3VibmV0KHN1Ym5ldDogU3VibmV0KSB7XG4gICAgbmV3IFNlY3VyaXR5R3JvdXBBc3NvY2lhdGlvbnModGhpcywgc3VibmV0Lm5hbWUsIHtcbiAgICAgIHN1Ym5ldElkOiBzdWJuZXQuaWQsXG4gICAgICBuZXR3b3JrU2VjdXJpdHlHcm91cElkOiB0aGlzLmlkLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gTWV0aG9kIHRvIGFzc29jaWF0ZSB0aGUgbmV0d29yayBzZWN1cml0eSBncm91cCB0byBhIG5ldHdvcmsgaW50ZXJmYWNlXG4gIHB1YmxpYyBhc3NvY2lhdGVUb05ldHdvcmtJbnRlcmZhY2UobmV0d29ya0ludGVyZmFjZTogTmV0d29ya0ludGVyZmFjZSkge1xuICAgIG5ldyBTZWN1cml0eUdyb3VwQXNzb2NpYXRpb25zKHRoaXMsIG5ldHdvcmtJbnRlcmZhY2UubmFtZSwge1xuICAgICAgbmV0d29ya0ludGVyZmFjZUlkOiBuZXR3b3JrSW50ZXJmYWNlLmlkLFxuICAgICAgbmV0d29ya1NlY3VyaXR5R3JvdXBJZDogdGhpcy5pZCxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGFzc29jaWF0aW5nIEF6dXJlIE5ldHdvcmsgU2VjdXJpdHkgR3JvdXBzIHdpdGggc3VibmV0cyBhbmQgbmV0d29yayBpbnRlcmZhY2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlY3VyaXR5R3JvdXBBc3NvY2lhdGlvbnNQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIG5ldHdvcmsgc2VjdXJpdHkgZ3JvdXAgdG8gYmUgYXNzb2NpYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IG5ldHdvcmtTZWN1cml0eUdyb3VwSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgc3VibmV0IElEIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBuZXR3b3JrIHNlY3VyaXR5IGdyb3VwLlxuICAgKiBJZiBwcm92aWRlZCwgdGhlIHNlY3VyaXR5IGdyb3VwIHdpbGwgYmUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgc3VibmV0LlxuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIG5ldHdvcmsgaW50ZXJmYWNlIElEIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBuZXR3b3JrIHNlY3VyaXR5IGdyb3VwLlxuICAgKiBJZiBwcm92aWRlZCwgdGhlIHNlY3VyaXR5IGdyb3VwIHdpbGwgYmUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbmV0d29yayBpbnRlcmZhY2UuXG4gICAqL1xuICByZWFkb25seSBuZXR3b3JrSW50ZXJmYWNlSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBTZWN1cml0eUdyb3VwQXNzb2NpYXRpb25zIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBTZWN1cml0eUdyb3VwQXNzb2NpYXRpb25zUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgLy8gSWYgc3VibmV0SWQgaXMgcHJvdmlkZWQsIGNyZWF0ZSBhIFN1Ym5ldE5ldHdvcmtTZWN1cml0eUdyb3VwQXNzb2NpYXRpb25cbiAgICBpZiAocHJvcHMuc3VibmV0SWQpIHtcbiAgICAgIG5ldyBTdWJuZXROZXR3b3JrU2VjdXJpdHlHcm91cEFzc29jaWF0aW9uKHRoaXMsIFwic3ViYXNzb2NpYXRpb25cIiwge1xuICAgICAgICBzdWJuZXRJZDogcHJvcHMuc3VibmV0SWQsXG4gICAgICAgIG5ldHdvcmtTZWN1cml0eUdyb3VwSWQ6IHByb3BzLm5ldHdvcmtTZWN1cml0eUdyb3VwSWQsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBJZiBuZXR3b3JrSW50ZXJmYWNlSWQgaXMgcHJvdmlkZWQsIGNyZWF0ZSBhIE5ldHdvcmtJbnRlcmZhY2VTZWN1cml0eUdyb3VwQXNzb2NpYXRpb25cbiAgICBpZiAocHJvcHMubmV0d29ya0ludGVyZmFjZUlkKSB7XG4gICAgICBuZXcgTmV0d29ya0ludGVyZmFjZVNlY3VyaXR5R3JvdXBBc3NvY2lhdGlvbih0aGlzLCBcIm5pY2Fzc29jaWF0aW9uXCIsIHtcbiAgICAgICAgbmV0d29ya0ludGVyZmFjZUlkOiBwcm9wcy5uZXR3b3JrSW50ZXJmYWNlSWQsXG4gICAgICAgIG5ldHdvcmtTZWN1cml0eUdyb3VwSWQ6IHByb3BzLm5ldHdvcmtTZWN1cml0eUdyb3VwSWQsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
171
+ SecurityGroupAssociations[_b] = { fqn: "@microsoft/terraform-cdk-constructs.azure_networksecuritygroup.SecurityGroupAssociations", version: "0.0.3-pre.7" };
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHlncm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1uZXR3b3Jrc2VjdXJpdHlncm91cC9saWIvc2VjdXJpdHlncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUNBLDJJQUFvSTtBQUNwSSwrRkFBMEY7QUFDMUYsNkZBQXdGO0FBR3hGLHFJQUE4SDtBQUM5SCwyQ0FBdUM7QUFDdkMsOENBQXFEO0FBNkVyRCxNQUFhLGFBQWMsU0FBUSxtQkFBYTtJQU05Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXFDRztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBeUI7UUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFFekMsa0NBQWtDO1FBQ2xDLE1BQU0sR0FBRyxHQUFHLElBQUksNkNBQW9CLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtZQUNoRCxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJO1lBQzNDLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtTQUN6QixDQUFDLENBQUM7UUFFSCwwREFBMEQ7UUFDMUQsS0FBSyxNQUFNLFVBQVUsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFO1lBQ3BDLElBQUksMkNBQW1CLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJLEVBQUU7Z0JBQzdDLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtnQkFDckIsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJO2dCQUMzQyx3QkFBd0IsRUFBRSxHQUFHLENBQUMsSUFBSTtnQkFDbEMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRO2dCQUM3QixTQUFTLEVBQUUsVUFBVSxDQUFDLFNBQVM7Z0JBQy9CLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTTtnQkFDekIsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRO2dCQUM3QixlQUFlLEVBQUUsVUFBVSxDQUFDLGVBQWU7Z0JBQzNDLG9CQUFvQixFQUFFLFVBQVUsQ0FBQyxvQkFBb0I7Z0JBQ3JELG1CQUFtQixFQUFFLFVBQVUsQ0FBQyxtQkFBbUI7Z0JBQ25ELHdCQUF3QixFQUFFLFVBQVUsQ0FBQyx3QkFBd0I7YUFDOUQsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7O09BZUc7SUFDSSxpQkFBaUIsQ0FBQyxNQUFjO1FBQ3JDLElBQUkseUJBQXlCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUU7WUFDL0MsUUFBUSxFQUFFLE1BQU0sQ0FBQyxFQUFFO1lBQ25CLHNCQUFzQixFQUFFLElBQUksQ0FBQyxFQUFFO1NBQ2hDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7O09BZUc7SUFDSSwyQkFBMkIsQ0FBQyxnQkFBa0M7UUFDbkUsSUFBSSx5QkFBeUIsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFO1lBQ3pELGtCQUFrQixFQUFFLGdCQUFnQixDQUFDLEVBQUU7WUFDdkMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLEVBQUU7U0FDaEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUExSEgsc0NBMkhDOzs7QUF3QkQsTUFBYSx5QkFBMEIsU0FBUSxzQkFBUztJQUN0RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BcUJHO0lBQ0gsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBcUM7UUFFckMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQiwwRUFBMEU7UUFDMUUsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksaUZBQXFDLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2dCQUNoRSxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7Z0JBQ3hCLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxzQkFBc0I7YUFDckQsQ0FBQyxDQUFDO1NBQ0o7UUFFRCx1RkFBdUY7UUFDdkYsSUFBSSxLQUFLLENBQUMsa0JBQWtCLEVBQUU7WUFDNUIsSUFBSSx1RkFBd0MsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ25FLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxrQkFBa0I7Z0JBQzVDLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxzQkFBc0I7YUFDckQsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOztBQTVDSCw4REE2Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZXR3b3JrSW50ZXJmYWNlIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9uZXR3b3JrLWludGVyZmFjZVwiOyAvLyBJbXBvcnQgdGhlIE5ldHdvcmtJbnRlcmZhY2UgY2xhc3NcbmltcG9ydCB7IE5ldHdvcmtJbnRlcmZhY2VTZWN1cml0eUdyb3VwQXNzb2NpYXRpb24gfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL25ldHdvcmstaW50ZXJmYWNlLXNlY3VyaXR5LWdyb3VwLWFzc29jaWF0aW9uXCI7XG5pbXBvcnQgeyBOZXR3b3JrU2VjdXJpdHlHcm91cCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvbmV0d29yay1zZWN1cml0eS1ncm91cFwiO1xuaW1wb3J0IHsgTmV0d29ya1NlY3VyaXR5UnVsZSB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvbmV0d29yay1zZWN1cml0eS1ydWxlXCI7XG5pbXBvcnQgeyBSZXNvdXJjZUdyb3VwIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9yZXNvdXJjZS1ncm91cFwiO1xuaW1wb3J0IHsgU3VibmV0IH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9zdWJuZXRcIjtcbmltcG9ydCB7IFN1Ym5ldE5ldHdvcmtTZWN1cml0eUdyb3VwQXNzb2NpYXRpb24gfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3N1Ym5ldC1uZXR3b3JrLXNlY3VyaXR5LWdyb3VwLWFzc29jaWF0aW9uXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQXp1cmVSZXNvdXJjZSB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYlwiO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYSBydWxlIHdpdGhpbiBhbiBBenVyZSBOZXR3b3JrIFNlY3VyaXR5IEdyb3VwLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJ1bGVDb25maWcge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHNlY3VyaXR5IHJ1bGUuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwcmlvcml0eSBvZiB0aGUgcnVsZS4gTG93ZXIgbnVtYmVycyBoYXZlIGhpZ2hlciBwcmlvcml0eS4gQWxsb3dlZCB2YWx1ZXMgYXJlIGZyb20gMTAwIHRvIDQwOTYuXG4gICAqL1xuICByZWFkb25seSBwcmlvcml0eTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0aW9uIG9mIHRoZSBydWxlLCB3aGljaCBjYW4gYmUgJ0luYm91bmQnIG9yICdPdXRib3VuZCcuXG4gICAqL1xuICByZWFkb25seSBkaXJlY3Rpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFjY2VzcyB0eXBlIG9mIHRoZSBydWxlLCB3aGljaCBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHJ1bGUgcGVybWl0cyBvciBkZW5pZXMgdHJhZmZpYy4gQ29tbW9uIHZhbHVlcyBhcmUgJ0FsbG93JyBvciAnRGVueScuXG4gICAqL1xuICByZWFkb25seSBhY2Nlc3M6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHByb3RvY29sIHRvIHdoaWNoIHRoZSBydWxlIGFwcGxpZXMsIHN1Y2ggYXMgJ1RjcCcsICdVZHAnLCBvciAnKicgKGZvciBhbGwgcHJvdG9jb2xzKS5cbiAgICovXG4gIHJlYWRvbmx5IHByb3RvY29sOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByYW5nZSBvZiBzb3VyY2UgcG9ydHMgdG8gd2hpY2ggdGhlIHJ1bGUgYXBwbGllcy4gQ2FuIGJlIGEgc2luZ2xlIHBvcnQgb3IgYSByYW5nZSBsaWtlICcxMDI0LTIwNDgnLlxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlUG9ydFJhbmdlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByYW5nZSBvZiBkZXN0aW5hdGlvbiBwb3J0cyB0byB3aGljaCB0aGUgcnVsZSBhcHBsaWVzLiBDYW4gYWxzbyBiZSBhIHNpbmdsZSBwb3J0IG9yIGEgcmFuZ2UuXG4gICAqL1xuICByZWFkb25seSBkZXN0aW5hdGlvblBvcnRSYW5nZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQ0lEUiBvciBzb3VyY2UgSVAgcmFuZ2Ugb3IgJyonIHRvIG1hdGNoIGFueSBJUC4gVGhpcyBpcyB0aGUgcmFuZ2Ugb2Ygc291cmNlIElQcyBmb3Igd2hpY2ggdGhlIHJ1bGUgYXBwbGllcy5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZUFkZHJlc3NQcmVmaXg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIENJRFIgb3IgZGVzdGluYXRpb24gSVAgcmFuZ2Ugb3IgJyonIHRvIG1hdGNoIGFueSBJUC4gVGhpcyBzcGVjaWZpZXMgdGhlIHJhbmdlIG9mIGRlc3RpbmF0aW9uIElQcyBmb3Igd2hpY2ggdGhlIHJ1bGUgaXMgYXBwbGljYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uQWRkcmVzc1ByZWZpeDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIGFuIEF6dXJlIE5ldHdvcmsgU2VjdXJpdHkgR3JvdXAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdXJpdHlHcm91cFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZSBncm91cCB1bmRlciB3aGljaCB0aGUgbmV0d29yayBzZWN1cml0eSBncm91cCB3aWxsIGJlIGNyZWF0ZWQuXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZUdyb3VwOiBSZXNvdXJjZUdyb3VwO1xuXG4gIC8qKlxuICAgKiBUaGUgQXp1cmUgcmVnaW9uIGluIHdoaWNoIHRvIGNyZWF0ZSB0aGUgbmV0d29yayBzZWN1cml0eSBncm91cCwgZS5nLiwgJ0Vhc3QgVVMnLCAnV2VzdCBFdXJvcGUnLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYXRpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIG5ldHdvcmsgc2VjdXJpdHkgZ3JvdXAuIE11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgcmVzb3VyY2UgZ3JvdXAuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIHJ1bGUgY29uZmlndXJhdGlvbnMgdG8gYmUgYXBwbGllZCB0byB0aGUgbmV0d29yayBzZWN1cml0eSBncm91cC5cbiAgICovXG4gIHJlYWRvbmx5IHJ1bGVzOiBSdWxlQ29uZmlnW107XG59XG5cbmV4cG9ydCBjbGFzcyBTZWN1cml0eUdyb3VwIGV4dGVuZHMgQXp1cmVSZXNvdXJjZSB7XG4gIHJlYWRvbmx5IHByb3BzOiBTZWN1cml0eUdyb3VwUHJvcHM7XG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVzb3VyY2VHcm91cDogUmVzb3VyY2VHcm91cDtcblxuICAvKipcbiAgICogUmVwcmVzZW50cyBhbiBBenVyZSBOZXR3b3JrIFNlY3VyaXR5IEdyb3VwIChOU0cpLlxuICAgKlxuICAgKiBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciB0aGUgY3JlYXRpb24gYW5kIG1hbmFnZW1lbnQgb2YgYW4gQXp1cmUgTmV0d29yayBTZWN1cml0eSBHcm91cCwgd2hpY2ggYWN0cyBhcyBhIHZpcnR1YWwgZmlyZXdhbGxcbiAgICogZm9yIHZpcnR1YWwgbmV0d29yayByZXNvdXJjZXMuIEEgTmV0d29yayBTZWN1cml0eSBHcm91cCBjb250YWlucyBhIGxpc3Qgb2Ygc2VjdXJpdHkgcnVsZXMgdGhhdCBhbGxvdyBvciBkZW55IG5ldHdvcmsgdHJhZmZpY1xuICAgKiB0byByZXNvdXJjZXMgY29ubmVjdGVkIHRvIEF6dXJlIFZpcnR1YWwgTmV0d29ya3MgKFZOZXQpLiBFYWNoIHJ1bGUgc3BlY2lmaWVzIGEgY29tYmluYXRpb24gb2Ygc291cmNlIGFuZCBkZXN0aW5hdGlvbiwgcG9ydCxcbiAgICogYW5kIHByb3RvY29sLCBhbmQgYW4gYWN0aW9uIChhbGxvdyBvciBkZW55KSBiYXNlZCBvbiB0aG9zZSBjb21iaW5hdGlvbnMuIFRoaXMgY2xhc3MgYWxsb3dzIGZvciBkZXRhaWxlZCBjb25maWd1cmF0aW9uIG9mIHRoZXNlXG4gICAqIHJ1bGVzIHRvIGVuZm9yY2Ugc2VjdXJpdHkgcG9saWNpZXMgZm9yIGluYm91bmQgYW5kIG91dGJvdW5kIG5ldHdvcmsgdHJhZmZpYy5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gVGhlIHNjb3BlIGluIHdoaWNoIHRvIGRlZmluZSB0aGlzIGNvbnN0cnVjdCwgdHlwaWNhbGx5IHJlcHJlc2VudGluZyB0aGUgQ2xvdWQgRGV2ZWxvcG1lbnQgS2l0IChDREspIHN0YWNrLlxuICAgKiBAcGFyYW0gaWQgLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgaW5zdGFuY2Ugb2YgdGhlIHNlY3VyaXR5IGdyb3VwLlxuICAgKiBAcGFyYW0gcHJvcHMgLSBUaGUgcHJvcGVydGllcyByZXF1aXJlZCB0byBjb25maWd1cmUgdGhlIE5ldHdvcmsgU2VjdXJpdHkgR3JvdXAsIGFzIGRlZmluZWQgaW4gdGhlIFNlY3VyaXR5R3JvdXBQcm9wcyBpbnRlcmZhY2UuIFRoZXNlIGluY2x1ZGU6XG4gICAqICAgICAgICAgICAgICAgIC0gYHJlc291cmNlR3JvdXBgOiBUaGUgQXp1cmUgUmVzb3VyY2UgR3JvdXAgdW5kZXIgd2hpY2ggdGhlIE5TRyB3aWxsIGJlIGRlcGxveWVkLlxuICAgKiAgICAgICAgICAgICAgICAtIGBsb2NhdGlvbmA6IFRoZSBBenVyZSByZWdpb24gd2hlcmUgdGhlIE5TRyB3aWxsIGJlIGNyZWF0ZWQuXG4gICAqICAgICAgICAgICAgICAgIC0gYG5hbWVgOiBUaGUgbmFtZSBvZiB0aGUgTlNHLCB3aGljaCBtdXN0IGJlIHVuaXF1ZSB3aXRoaW4gdGhlIHJlc291cmNlIGdyb3VwLlxuICAgKiAgICAgICAgICAgICAgICAtIGBydWxlc2A6IEEgbGlzdCBvZiBydWxlcyB0aGF0IGRlZmluZSB0aGUgc2VjdXJpdHkgcG9saWNpZXMgZm9yIHRyYWZmaWMgY29udHJvbC5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBuZXcgU2VjdXJpdHlHcm91cCh0aGlzLCAnTXlTZWN1cml0eUdyb3VwJywge1xuICAgKiAgIHJlc291cmNlR3JvdXA6IG15UmVzb3VyY2VHcm91cCxcbiAgICogICBsb2NhdGlvbjogJ0Vhc3QgVVMnLFxuICAgKiAgIG5hbWU6ICdteU5zZycsXG4gICAqICAgcnVsZXM6IFt7XG4gICAqICAgICBuYW1lOiAnQWxsb3dTU0gnLFxuICAgKiAgICAgcHJpb3JpdHk6IDEwMCxcbiAgICogICAgIGRpcmVjdGlvbjogJ0luYm91bmQnLFxuICAgKiAgICAgYWNjZXNzOiAnQWxsb3cnLFxuICAgKiAgICAgcHJvdG9jb2w6ICdUY3AnLFxuICAgKiAgICAgc291cmNlUG9ydFJhbmdlOiAnKicsXG4gICAqICAgICBkZXN0aW5hdGlvblBvcnRSYW5nZTogJzIyJyxcbiAgICogICAgIHNvdXJjZUFkZHJlc3NQcmVmaXg6ICcqJyxcbiAgICogICAgIGRlc3RpbmF0aW9uQWRkcmVzc1ByZWZpeDogJyonXG4gICAqICAgfV1cbiAgICogfSk7XG4gICAqIGBgYFxuICAgKiBUaGlzIGNsYXNzIGluaXRpYWxpemVzIGEgTmV0d29yayBTZWN1cml0eSBHcm91cCB3aXRoIHNwZWNpZmllZCBydWxlcywgaGFuZGxpbmcgbmV0d29yayBzZWN1cml0eSBtYW5hZ2VtZW50IHRhc2tzIGVmZmljaWVudGx5LlxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFNlY3VyaXR5R3JvdXBQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gICAgdGhpcy5yZXNvdXJjZUdyb3VwID0gcHJvcHMucmVzb3VyY2VHcm91cDtcblxuICAgIC8vIENyZWF0ZSBhIG5ldHdvcmsgc2VjdXJpdHkgZ3JvdXBcbiAgICBjb25zdCBuc2cgPSBuZXcgTmV0d29ya1NlY3VyaXR5R3JvdXAodGhpcywgXCJuc2dcIiwge1xuICAgICAgbmFtZTogcHJvcHMubmFtZSxcbiAgICAgIHJlc291cmNlR3JvdXBOYW1lOiBwcm9wcy5yZXNvdXJjZUdyb3VwLm5hbWUsXG4gICAgICBsb2NhdGlvbjogcHJvcHMubG9jYXRpb24sXG4gICAgfSk7XG5cbiAgICAvLyBDcmVhdGUgc2VjdXJpdHkgcnVsZXMgd2l0aGluIHRoZSBuZXR3b3JrIHNlY3VyaXR5IGdyb3VwXG4gICAgZm9yIChjb25zdCBydWxlQ29uZmlnIG9mIHByb3BzLnJ1bGVzKSB7XG4gICAgICBuZXcgTmV0d29ya1NlY3VyaXR5UnVsZSh0aGlzLCBydWxlQ29uZmlnLm5hbWUsIHtcbiAgICAgICAgbmFtZTogcnVsZUNvbmZpZy5uYW1lLFxuICAgICAgICByZXNvdXJjZUdyb3VwTmFtZTogcHJvcHMucmVzb3VyY2VHcm91cC5uYW1lLFxuICAgICAgICBuZXR3b3JrU2VjdXJpdHlHcm91cE5hbWU6IG5zZy5uYW1lLFxuICAgICAgICBwcmlvcml0eTogcnVsZUNvbmZpZy5wcmlvcml0eSxcbiAgICAgICAgZGlyZWN0aW9uOiBydWxlQ29uZmlnLmRpcmVjdGlvbixcbiAgICAgICAgYWNjZXNzOiBydWxlQ29uZmlnLmFjY2VzcyxcbiAgICAgICAgcHJvdG9jb2w6IHJ1bGVDb25maWcucHJvdG9jb2wsXG4gICAgICAgIHNvdXJjZVBvcnRSYW5nZTogcnVsZUNvbmZpZy5zb3VyY2VQb3J0UmFuZ2UsXG4gICAgICAgIGRlc3RpbmF0aW9uUG9ydFJhbmdlOiBydWxlQ29uZmlnLmRlc3RpbmF0aW9uUG9ydFJhbmdlLFxuICAgICAgICBzb3VyY2VBZGRyZXNzUHJlZml4OiBydWxlQ29uZmlnLnNvdXJjZUFkZHJlc3NQcmVmaXgsXG4gICAgICAgIGRlc3RpbmF0aW9uQWRkcmVzc1ByZWZpeDogcnVsZUNvbmZpZy5kZXN0aW5hdGlvbkFkZHJlc3NQcmVmaXgsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmlkID0gbnNnLmlkO1xuICAgIHRoaXMubmFtZSA9IG5zZy5uYW1lO1xuICB9XG5cbiAgLyoqXG4gICAqIEFzc29jaWF0ZXMgdGhpcyBOZXR3b3JrIFNlY3VyaXR5IEdyb3VwIHdpdGggYSBzcGVjaWZpZWQgc3VibmV0LlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBmYWNpbGl0YXRlcyB0aGUgYXR0YWNobWVudCBvZiB0aGUgc2VjdXJpdHkgZ3JvdXAgdG8gYSBzdWJuZXQsIGFwcGx5aW5nIHRoZSBzZWN1cml0eSBncm91cCdzIHJ1bGVzIHRvIGFsbFxuICAgKiByZXNvdXJjZXMgd2l0aGluIHRoZSBzdWJuZXQuIFRoaXMgaXMgY3J1Y2lhbCBmb3IgbWFuYWdpbmcgbmV0d29yayBhY2Nlc3MgYW5kIHNlY3VyaXR5IHBvbGljaWVzIGF0IHRoZSBzdWJuZXQgbGV2ZWwuXG4gICAqXG4gICAqIEBwYXJhbSBzdWJuZXQgLSBUaGUgc3VibmV0IG9iamVjdCB0byB3aGljaCB0aGlzIG5ldHdvcmsgc2VjdXJpdHkgZ3JvdXAgd2lsbCBiZSBhc3NvY2lhdGVkLlxuICAgKlxuICAgKiBFeGFtcGxlIHVzYWdlOlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IG15U3VibmV0ID0geyBpZDogJ3N1Ym5ldC0xMjMnLCBuYW1lOiAnU3VibmV0QScgfTtcbiAgICogbXlTZWN1cml0eUdyb3VwLmFzc29jaWF0ZVRvU3VibmV0KG15U3VibmV0KTtcbiAgICogYGBgXG4gICAqIFRoaXMgb3BlcmF0aW9uIGVuc3VyZXMgdGhhdCB0aGUgc2VjdXJpdHkgcnVsZXMgZGVmaW5lZCBpbiB0aGUgbmV0d29yayBzZWN1cml0eSBncm91cCBhcmUgZW5mb3JjZWQgb24gYWxsIG5ldHdvcmsgaW50ZXJmYWNlc1xuICAgKiBhdHRhY2hlZCB0byB0aGUgc3BlY2lmaWVkIHN1Ym5ldC5cbiAgICovXG4gIHB1YmxpYyBhc3NvY2lhdGVUb1N1Ym5ldChzdWJuZXQ6IFN1Ym5ldCkge1xuICAgIG5ldyBTZWN1cml0eUdyb3VwQXNzb2NpYXRpb25zKHRoaXMsIHN1Ym5ldC5uYW1lLCB7XG4gICAgICBzdWJuZXRJZDogc3VibmV0LmlkLFxuICAgICAgbmV0d29ya1NlY3VyaXR5R3JvdXBJZDogdGhpcy5pZCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBc3NvY2lhdGVzIHRoaXMgTmV0d29yayBTZWN1cml0eSBHcm91cCB3aXRoIGEgc3BlY2lmaWVkIG5ldHdvcmsgaW50ZXJmYWNlLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBhdHRhY2hlcyB0aGUgc2VjdXJpdHkgZ3JvdXAgdG8gYSBuZXR3b3JrIGludGVyZmFjZSwgYXBwbHlpbmcgdGhlIHNlY3VyaXR5IGdyb3VwJ3MgcnVsZXMgdG8gdGhlIG5ldHdvcmsgaW50ZXJmYWNlLlxuICAgKiBUaGlzIGFsbG93cyBmb3IgZmluZS1ncmFpbmVkIGNvbnRyb2wgb2YgbmV0d29yayB0cmFmZmljIHRvIGFuZCBmcm9tIHRoZSBzcGVjaWZpYyBuZXR3b3JrIGludGVyZmFjZS5cbiAgICpcbiAgICogQHBhcmFtIG5ldHdvcmtJbnRlcmZhY2UgLSBUaGUgbmV0d29yayBpbnRlcmZhY2Ugb2JqZWN0IHRvIHdoaWNoIHRoaXMgbmV0d29yayBzZWN1cml0eSBncm91cCB3aWxsIGJlIGFzc29jaWF0ZWQuXG4gICAqXG4gICAqIEV4YW1wbGUgdXNhZ2U6XG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgbXlOZXR3b3JrSW50ZXJmYWNlID0geyBpZDogJ25pYy00NTYnLCBuYW1lOiAnTmV0d29ya0ludGVyZmFjZUEnIH07XG4gICAqIG15U2VjdXJpdHlHcm91cC5hc3NvY2lhdGVUb05ldHdvcmtJbnRlcmZhY2UobXlOZXR3b3JrSW50ZXJmYWNlKTtcbiAgICogYGBgXG4gICAqIFRoaXMgb3BlcmF0aW9uIGVuc3VyZXMgdGhhdCB0aGUgc2VjdXJpdHkgcnVsZXMgZGVmaW5lZCBpbiB0aGUgbmV0d29yayBzZWN1cml0eSBncm91cCBhcmUgYXBwbGllZCBkaXJlY3RseSB0byB0aGUgc3BlY2lmaWVkXG4gICAqIG5ldHdvcmsgaW50ZXJmYWNlLCBjb250cm9sbGluZyBhY2Nlc3MgaW4gYSBtb3JlIHRhcmdldGVkIG1hbm5lci5cbiAgICovXG4gIHB1YmxpYyBhc3NvY2lhdGVUb05ldHdvcmtJbnRlcmZhY2UobmV0d29ya0ludGVyZmFjZTogTmV0d29ya0ludGVyZmFjZSkge1xuICAgIG5ldyBTZWN1cml0eUdyb3VwQXNzb2NpYXRpb25zKHRoaXMsIG5ldHdvcmtJbnRlcmZhY2UubmFtZSwge1xuICAgICAgbmV0d29ya0ludGVyZmFjZUlkOiBuZXR3b3JrSW50ZXJmYWNlLmlkLFxuICAgICAgbmV0d29ya1NlY3VyaXR5R3JvdXBJZDogdGhpcy5pZCxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGFzc29jaWF0aW5nIEF6dXJlIE5ldHdvcmsgU2VjdXJpdHkgR3JvdXBzIHdpdGggc3VibmV0cyBhbmQgbmV0d29yayBpbnRlcmZhY2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlY3VyaXR5R3JvdXBBc3NvY2lhdGlvbnNQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIG5ldHdvcmsgc2VjdXJpdHkgZ3JvdXAgdG8gYmUgYXNzb2NpYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IG5ldHdvcmtTZWN1cml0eUdyb3VwSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogT3B0aW9uYWwgc3VibmV0IElEIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBuZXR3b3JrIHNlY3VyaXR5IGdyb3VwLlxuICAgKiBJZiBwcm92aWRlZCwgdGhlIHNlY3VyaXR5IGdyb3VwIHdpbGwgYmUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgc3VibmV0LlxuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIG5ldHdvcmsgaW50ZXJmYWNlIElEIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBuZXR3b3JrIHNlY3VyaXR5IGdyb3VwLlxuICAgKiBJZiBwcm92aWRlZCwgdGhlIHNlY3VyaXR5IGdyb3VwIHdpbGwgYmUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgbmV0d29yayBpbnRlcmZhY2UuXG4gICAqL1xuICByZWFkb25seSBuZXR3b3JrSW50ZXJmYWNlSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBTZWN1cml0eUdyb3VwQXNzb2NpYXRpb25zIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAqIE1hbmFnZXMgdGhlIGFzc29jaWF0aW9ucyBvZiBBenVyZSBOZXR3b3JrIFNlY3VyaXR5IEdyb3VwcyB3aXRoIHN1Ym5ldHMgYW5kIG5ldHdvcmsgaW50ZXJmYWNlcy5cbiAgICpcbiAgICogVGhpcyBjbGFzcyBwcm92aWRlcyB0aGUgZnVuY3Rpb25hbGl0eSB0byBhc3NvY2lhdGUgYSBuZXR3b3JrIHNlY3VyaXR5IGdyb3VwIHdpdGggZWl0aGVyIHN1Ym5ldHMgb3IgbmV0d29yayBpbnRlcmZhY2VzXG4gICAqIHdpdGhpbiB0aGUgQXp1cmUgZW52aXJvbm1lbnQuIEJ5IG1hbmFnaW5nIHRoZXNlIGFzc29jaWF0aW9ucywgaXQgaGVscHMgZW5mb3JjZSBzZWN1cml0eSBydWxlcyBhdCBib3RoIHRoZSBzdWJuZXQgbGV2ZWxcbiAgICogYW5kIHRoZSBuZXR3b3JrIGludGVyZmFjZSBsZXZlbCwgZW5oYW5jaW5nIHNlY3VyaXR5IGNvbmZpZ3VyYXRpb25zIGFuZCBjb21wbGlhbmNlLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgLSBUaGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgY29uc3RydWN0LCB0eXBpY2FsbHkgcmVwcmVzZW50aW5nIHRoZSBDbG91ZCBEZXZlbG9wbWVudCBLaXQgKENESykgc3RhY2suXG4gICAqIEBwYXJhbSBpZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIGFzc29jaWF0aW9uIGluc3RhbmNlLlxuICAgKiBAcGFyYW0gcHJvcHMgLSBUaGUgcHJvcGVydGllcyBmb3IgdGhlIGFzc29jaWF0aW9uLiBJbmNsdWRlcyB0aGUgbmV0d29yayBzZWN1cml0eSBncm91cCBJRCBhbmQgb3B0aW9uYWxseSBhIHN1Ym5ldCBJRCBvciBuZXR3b3JrIGludGVyZmFjZSBJRC5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBuZXcgU2VjdXJpdHlHcm91cEFzc29jaWF0aW9ucyh0aGlzLCAnTXlBc3NvY2lhdGlvbnMnLCB7XG4gICAqICAgbmV0d29ya1NlY3VyaXR5R3JvdXBJZDogJ25zZy0xMjMnLFxuICAgKiAgIHN1Ym5ldElkOiAnc3VibmV0LTEyMycsXG4gICAqICAgbmV0d29ya0ludGVyZmFjZUlkOiAnbmljLTQ1NicsXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICogRGVwZW5kaW5nIG9uIHRoZSBwcm9wZXJ0aWVzIHByb3ZpZGVkLCB0aGlzIGNsYXNzIHdpbGwgY3JlYXRlIHRoZSBhcHByb3ByaWF0ZSBhc3NvY2lhdGlvbnMgdG8gYXBwbHkgdGhlIG5ldHdvcmsgc2VjdXJpdHkgZ3JvdXBcbiAgICogdG8gdGhlIHNwZWNpZmllZCBzdWJuZXQgb3IgbmV0d29yayBpbnRlcmZhY2UuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IFNlY3VyaXR5R3JvdXBBc3NvY2lhdGlvbnNQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICAvLyBJZiBzdWJuZXRJZCBpcyBwcm92aWRlZCwgY3JlYXRlIGEgU3VibmV0TmV0d29ya1NlY3VyaXR5R3JvdXBBc3NvY2lhdGlvblxuICAgIGlmIChwcm9wcy5zdWJuZXRJZCkge1xuICAgICAgbmV3IFN1Ym5ldE5ldHdvcmtTZWN1cml0eUdyb3VwQXNzb2NpYXRpb24odGhpcywgXCJzdWJhc3NvY2lhdGlvblwiLCB7XG4gICAgICAgIHN1Ym5ldElkOiBwcm9wcy5zdWJuZXRJZCxcbiAgICAgICAgbmV0d29ya1NlY3VyaXR5R3JvdXBJZDogcHJvcHMubmV0d29ya1NlY3VyaXR5R3JvdXBJZCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIElmIG5ldHdvcmtJbnRlcmZhY2VJZCBpcyBwcm92aWRlZCwgY3JlYXRlIGEgTmV0d29ya0ludGVyZmFjZVNlY3VyaXR5R3JvdXBBc3NvY2lhdGlvblxuICAgIGlmIChwcm9wcy5uZXR3b3JrSW50ZXJmYWNlSWQpIHtcbiAgICAgIG5ldyBOZXR3b3JrSW50ZXJmYWNlU2VjdXJpdHlHcm91cEFzc29jaWF0aW9uKHRoaXMsIFwibmljYXNzb2NpYXRpb25cIiwge1xuICAgICAgICBuZXR3b3JrSW50ZXJmYWNlSWQ6IHByb3BzLm5ldHdvcmtJbnRlcmZhY2VJZCxcbiAgICAgICAgbmV0d29ya1NlY3VyaXR5R3JvdXBJZDogcHJvcHMubmV0d29ya1NlY3VyaXR5R3JvdXBJZCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -134,11 +134,42 @@ export declare class QueryRuleAlert extends Construct {
134
134
  id: string;
135
135
  resourceGroup: ResourceGroup;
136
136
  /**
137
- * Constructs a new instance of the AzureQueryRuleAlert class.
137
+ * Represents an Azure Monitor Scheduled Query Rule Alert.
138
138
  *
139
- * @param scope - The scope in which this construct is defined.
140
- * @param id - The ID of this construct.
141
- * @param props - The properties required for Azure Query Rule Alert.
139
+ * This class is responsible for the creation and management of a Scheduled Query Rule Alert in Azure Monitor.
140
+ * Scheduled Query Rule Alerts execute specified queries at regular intervals over the data collected in Log Analytics
141
+ * Workspaces or Application Insights, and alert based on the results of these queries. These alerts can be used to monitor
142
+ * application health, infrastructure changes, or compliance with certain conditions.
143
+ *
144
+ * @param scope - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) stack.
145
+ * @param id - The unique identifier for this instance of the Scheduled Query Rule Alert.
146
+ * @param props - The properties required to configure the Scheduled Query Rule Alert, as defined in the AzureQueryRuleAlertProps interface.
147
+ * These include:
148
+ * - `name`: The name of the Scheduled Query Rule.
149
+ * - `resourceGroup`: The Azure Resource Group under which the alert will be created.
150
+ * - `location`: The Azure region where the alert will be deployed.
151
+ * - `criteriaQuery`: The query to execute. The results of this query determine whether an alert should be triggered.
152
+ * - `evaluationFrequency`: How often the query should be run.
153
+ * - `windowDuration`: The time period over which data is collected for each execution of the query.
154
+ * - `severity`: The severity of the alert.
155
+ * - `actionActionGroupId`: The action group to invoke when the alert criteria are met.
156
+ * - `enabled`: Indicates whether the alert rule is enabled.
157
+ *
158
+ * Example usage:
159
+ * ```typescript
160
+ * new QueryRuleAlert(this, 'MyAlertRule', {
161
+ * name: 'HighErrorRateAlert',
162
+ * resourceGroup: myResourceGroup,
163
+ * location: 'West US 2',
164
+ * criteriaQuery: 'Heartbeat | summarize AggregatedValue = count() by bin(TimeGenerated, 5m)',
165
+ * evaluationFrequency: 'PT5M',
166
+ * windowDuration: 'PT1H',
167
+ * severity: 3,
168
+ * actionActionGroupId: ['/subscriptions/sub-id/resourceGroups/rg/providers/microsoft.insights/actionGroups/myActionGroup'],
169
+ * enabled: true
170
+ * });
171
+ * ```
172
+ * This class sets up the alert rule and ensures it is ready to trigger actions based on the specified criteria and schedule.
142
173
  */
143
174
  constructor(scope: Construct, id: string, props: AzureQueryRuleAlertProps);
144
175
  }