@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
@@ -9,6 +9,30 @@ const compute_specification_1 = require("./compute-specification");
9
9
  const database_1 = require("./database");
10
10
  const index_1 = require("../../core-azure/lib/index");
11
11
  class Cluster extends index_1.AzureResource {
12
+ /**
13
+ * Represents a Kusto (Azure Data Explorer) cluster in Azure.
14
+ *
15
+ * This class is responsible for the creation and management of a Kusto Cluster, which is a highly scalable and secure
16
+ * analytics service for ingesting, storing, and analyzing large volumes of data. The cluster supports various configurations
17
+ * tailored to the needs of specific data workloads and security requirements.
18
+ *
19
+ * @param scope - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) stack.
20
+ * @param id - The unique identifier for this instance of the cluster.
21
+ * @param kustoProps - The properties required to configure the Kusto cluster, as defined in the ClusterProps interface.
22
+ *
23
+ * Example usage:
24
+ * ```typescript
25
+ * new Cluster(this, 'MyKustoCluster', {
26
+ * name: 'example-cluster',
27
+ * location: 'West US',
28
+ * resourceGroup: myResourceGroup,
29
+ * sku: { tier: 'Standard', name: 'D13_v2', capacity: 2 },
30
+ * tags: {
31
+ * project: 'Data Analytics'
32
+ * }
33
+ * });
34
+ * ```
35
+ */
12
36
  constructor(scope, id, kustoProps) {
13
37
  super(scope, id);
14
38
  this.kustoProps = kustoProps;
@@ -75,11 +99,40 @@ class Cluster extends index_1.AzureResource {
75
99
  cdktfTerraformOutputDataIngestionUri.overrideLogicalId("Kusto_data_ingestion_uri");
76
100
  cdktfTerraformOutputKustoIdentity.overrideLogicalId("Kusto_identity");
77
101
  }
102
+ /**
103
+ * Adds a new database to the Azure Kusto Cluster.
104
+ *
105
+ * This method creates a database within the Azure Data Explorer (Kusto) cluster, defined by the properties provided.
106
+ * A database in Kusto serves as a logical group to manage various tables and store data. It is essential for performing
107
+ * data analytics and running queries. The database configuration can include settings like hot cache and soft delete periods,
108
+ * which optimize query performance and manage data lifecycle according to specific requirements.
109
+ *
110
+ * @param databaseProps - The properties required to create the database. These properties should include:
111
+ * - `kusto`: Reference to the Kusto cluster to which the database will be added.
112
+ * - `name`: The name of the database, which must be unique within the cluster.
113
+ * - `hotCachePeriod`: Optional. Specifies the duration that data should be kept in cache for faster query access.
114
+ * - `softDeletePeriod`: Optional. Specifies the duration that data should be retained before it stops being accessible to queries.
115
+ * Both the hot cache and soft delete periods should be specified in ISO 8601 duration format.
116
+ *
117
+ * @returns A `Database` object representing the newly created database within the Kusto cluster.
118
+ *
119
+ * Example usage:
120
+ * ```typescript
121
+ * const myDatabase = myCluster.addDatabase({
122
+ * kusto: myKustoCluster,
123
+ * name: 'OperationalData',
124
+ * hotCachePeriod: 'P14D', // 14 days
125
+ * softDeletePeriod: 'P365D' // 1 year
126
+ * });
127
+ * ```
128
+ * This method facilitates the efficient setup and scaling of databases within an Azure Kusto cluster, allowing
129
+ * for complex data analytics operations across large datasets.
130
+ */
78
131
  addDatabase(databaseProps) {
79
132
  return new database_1.Database(this, databaseProps.name, databaseProps);
80
133
  }
81
134
  }
82
135
  exports.Cluster = Cluster;
83
136
  _a = JSII_RTTI_SYMBOL_1;
84
- Cluster[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_kusto.Cluster", version: "0.0.3-pre.6" };
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1rdXN0by9saWIvY2x1c3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZFQUF5RTtBQUV6RSwrQkFBK0I7QUFFL0IsbUVBR2lDO0FBQ2pDLHlDQUFxRDtBQUNyRCxzREFBMkQ7QUF1RTNELE1BQWEsT0FBUSxTQUFRLHFCQUFhO0lBTXhDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsVUFBd0I7UUFDaEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFFOUM7O1dBRUc7UUFDSCxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsR0FBRyxJQUFJLDRDQUFvQixDQUFDLG9CQUFvQixDQUFDO1FBQ3hFLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDO1FBRW5ELE1BQU0sUUFBUSxHQUFHO1lBQ2YsMEJBQTBCLEVBQUUsVUFBVSxDQUFDLDBCQUEwQixJQUFJLElBQUk7WUFDekUsZUFBZSxFQUFFLFVBQVUsQ0FBQyxlQUFlLElBQUksSUFBSTtZQUNuRCx5QkFBeUIsRUFBRSxVQUFVLENBQUMseUJBQXlCLElBQUksSUFBSTtZQUN2RSxZQUFZLEVBQUUsVUFBVSxDQUFDLFlBQVksSUFBSSxLQUFLO1lBQzlDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDNUMsR0FBRyxFQUFFO2dCQUNILElBQUksRUFBRSxHQUFHLENBQUMsT0FBTztnQkFDakIsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRLElBQUksQ0FBQzthQUNuQztZQUNELFFBQVEsRUFBRTtnQkFDUixJQUFJLEVBQUUsZ0JBQWdCO2dCQUN0QixXQUFXLEVBQUUsRUFBRTthQUNoQjtTQUNGLENBQUM7UUFFRjs7V0FFRztRQUNILE1BQU0sbUJBQW1CLEdBQUcsSUFBSSw0QkFBWSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUU7WUFDMUQsR0FBRyxRQUFRO1lBQ1gsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJO1lBQ3JCLFFBQVEsRUFBRSxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVE7WUFDM0MsaUJBQWlCLEVBQUUsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJO1lBQ2hELElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtTQUN0QixDQUFDLENBQUM7UUFFSCxJQUFJLFVBQVUsQ0FBQyxZQUFZLEVBQUU7WUFDM0IsbUJBQW1CLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRTtnQkFDMUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxZQUFZO2dCQUM3QixXQUFXLEVBQUUsVUFBVSxDQUFDLFdBQVc7YUFDcEMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLFVBQVUsQ0FBQyxnQkFBZ0IsSUFBSSxVQUFVLENBQUMsZ0JBQWdCLEVBQUU7WUFDOUQsbUJBQW1CLENBQUMsV0FBVyxDQUM3QixtQkFBbUIsRUFDbkIsVUFBVSxDQUFDLGdCQUFnQixDQUM1QixDQUFDO1lBQ0YsbUJBQW1CLENBQUMsV0FBVyxDQUM3QixtQkFBbUIsRUFDbkIsVUFBVSxDQUFDLGdCQUFnQixDQUM1QixDQUFDO1NBQ0g7UUFFRCxJQUFJLENBQUMsRUFBRSxHQUFHLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsR0FBRyxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQztRQUVuQyxVQUFVO1FBQ1YsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQzNELElBQUksRUFDSixVQUFVLEVBQ1Y7WUFDRSxLQUFLLEVBQUUsbUJBQW1CLENBQUMsRUFBRTtTQUM5QixDQUNGLENBQUM7UUFDRixNQUFNLDRCQUE0QixHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FDNUQsSUFBSSxFQUNKLFdBQVcsRUFDWDtZQUNFLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxHQUFHO1NBQy9CLENBQ0YsQ0FBQztRQUNGLE1BQU0sb0NBQW9DLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUNwRSxJQUFJLEVBQ0osMEJBQTBCLEVBQzFCO1lBQ0UsS0FBSyxFQUFFLG1CQUFtQixDQUFDLGdCQUFnQjtTQUM1QyxDQUNGLENBQUM7UUFDRixNQUFNLGlDQUFpQyxHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FDakUsSUFBSSxFQUNKLGdCQUFnQixFQUNoQjtZQUNFLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxRQUFRO1lBQ25DLFNBQVMsRUFBRSxJQUFJO1NBQ2hCLENBQ0YsQ0FBQztRQUVGLGdJQUFnSTtRQUNoSSwyQkFBMkIsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxRCw0QkFBNEIsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1RCxvQ0FBb0MsQ0FBQyxpQkFBaUIsQ0FDcEQsMEJBQTBCLENBQzNCLENBQUM7UUFDRixpQ0FBaUMsQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFTSxXQUFXLENBQUMsYUFBNEI7UUFDN0MsT0FBTyxJQUFJLG1CQUFRLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDL0QsQ0FBQzs7QUEzR0gsMEJBNEdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS3VzdG9DbHVzdGVyIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9rdXN0by1jbHVzdGVyXCI7XG5pbXBvcnQgeyBSZXNvdXJjZUdyb3VwIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9yZXNvdXJjZS1ncm91cFwiO1xuaW1wb3J0ICogYXMgY2RrdGYgZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgQ29tcHV0ZVNwZWNpZmljYXRpb24sXG4gIElDb21wdXRlU3BlY2lmaWNhdGlvbixcbn0gZnJvbSBcIi4vY29tcHV0ZS1zcGVjaWZpY2F0aW9uXCI7XG5pbXBvcnQgeyBEYXRhYmFzZSwgRGF0YWJhc2VQcm9wcyB9IGZyb20gXCIuL2RhdGFiYXNlXCI7XG5pbXBvcnQgeyBBenVyZVJlc291cmNlIH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL2luZGV4XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlclByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBBenVyZSBSZXNvdXJjZSBHcm91cCBpbiB3aGljaCB0byBjcmVhdGUgdGhlIEt1c3RvIENsdXN0ZXIuXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZUdyb3VwOiBSZXNvdXJjZUdyb3VwO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEt1c3RvIENsdXN0ZXIgdG8gY3JlYXRlLlxuICAgKiBPbmx5IDQtMjIgbG93ZXJjYXNlIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIGFsbG93ZWQsIHN0YXJ0aW5nIHdpdGggYSBsZXR0ZXIuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgU0tVIG9mIHRoZSBLdXN0byBDbHVzdGVyLiBBbGwgdGhlIGFsbG93ZWQgdmFsdWVzIGFyZSBkZWZpbmVkIGluIHRoZSBDb21wdXRlU3BlY2lmaWNhdGlvbiBjbGFzcy5cbiAgICogQGRlZmF1bHQgZGV2dGVzdEV4dHJhU21hbGxEdjJcbiAgICovXG4gIHJlYWRvbmx5IHNrdT86IElDb21wdXRlU3BlY2lmaWNhdGlvbjtcbiAgLyoqXG4gICAqIFRoZSBub2RlIGNvdW50IGZvciB0aGUgY2x1c3Rlci5cbiAgICogQGRlZmF1bHQgMlxuICAgKi9cbiAgcmVhZG9ubHkgY2FwYWNpdHk/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBNYW5hZ2VkIFNlcnZpY2UgSWRlbnRpdHkuXG4gICAqIEBkZWZhdWx0IFwiU3lzdGVtQXNzaWduZWRcIlxuICAgKi9cbiAgcmVhZG9ubHkgaWRlbnRpdHlUeXBlPzogc3RyaW5nO1xuICAvKipcbiAgICogQSBsaXN0IG9mIFVzZXIgQXNzaWduZWQgTWFuYWdlZCBJZGVudGl0eSBJRHMgdG8gYmUgYXNzaWduZWQgdG8gdGhpcyBLdXN0byBDbHVzdGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgaWRlbnRpdHlJZHM/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIElzIHRoZSBwdWJsaWMgbmV0d29yayBhY2Nlc3MgZW5hYmxlZD9cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljTmV0d29ya0FjY2Vzc0VuYWJsZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogU3BlY2lmaWVzIGlmIHRoZSBjbHVzdGVyIGNvdWxkIGJlIGF1dG9tYXRpY2FsbHkgc3RvcHBlZC5cbiAgICogKGR1ZSB0byBsYWNrIG9mIGRhdGEgb3Igbm8gYWN0aXZpdHkgZm9yIG1hbnkgZGF5cykuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGF1dG9TdG9wRW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgaWYgdGhlIHN0cmVhbWluZyBpbmdlc3QgaXMgZW5hYmxlZC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RyZWFtaW5nSW5nZXN0aW9uRW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgaWYgdGhlIHB1cmdlIG9wZXJhdGlvbnMgYXJlIGVuYWJsZWQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBwdXJnZUVuYWJsZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogU3BlY2lmaWVzIGlmIHRoZSBwdXJnZSBvcGVyYXRpb25zIGFyZSBlbmFibGVkLiBCYXNlZCBvbiB0aGUgU0tVLCB0aGUgbnVtYmVyIG9mIHpvbmVzIGFsbG93ZWQgYXJlIGRpZmZlcmVudC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlWm9uZXM/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIG1pbmltdW0gbnVtYmVyIG9mIGFsbG93ZWQgaW5zdGFuY2VzLiBNdXN0IGJldHdlZW4gMCBhbmQgMTAwMC5cbiAgICovXG4gIHJlYWRvbmx5IG1pbmltdW1JbnN0YW5jZXM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgYWxsb3dlZCBpbnN0YW5jZXMuIE11c3QgYmV0d2VlbiAwIGFuZCAxMDAwLlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4aW11bUluc3RhbmNlcz86IG51bWJlcjtcbiAgLyoqXG4gICAqIEEgbWFwcGluZyBvZiB0YWdzIHRvIGFzc2lnbiB0byB0aGUgS3VzdG8uXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuZXhwb3J0IGNsYXNzIENsdXN0ZXIgZXh0ZW5kcyBBenVyZVJlc291cmNlIHtcbiAgcmVhZG9ubHkga3VzdG9Qcm9wczogQ2x1c3RlclByb3BzO1xuICBwdWJsaWMgaWQ6IHN0cmluZztcbiAgcHVibGljIHJlc291cmNlR3JvdXA6IFJlc291cmNlR3JvdXA7XG4gIHB1YmxpYyByZWFkb25seSB1cmk6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBrdXN0b1Byb3BzOiBDbHVzdGVyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIHRoaXMua3VzdG9Qcm9wcyA9IGt1c3RvUHJvcHM7XG4gICAgdGhpcy5yZXNvdXJjZUdyb3VwID0ga3VzdG9Qcm9wcy5yZXNvdXJjZUdyb3VwO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lIGRlZmF1bHQgdmFsdWVzLlxuICAgICAqL1xuICAgIGNvbnN0IHNrdSA9IGt1c3RvUHJvcHMuc2t1IHx8IENvbXB1dGVTcGVjaWZpY2F0aW9uLmRldnRlc3RFeHRyYVNtYWxsRHYyO1xuICAgIGNvbnN0IGVuYWJsZVpvbmVzID0ga3VzdG9Qcm9wcy5lbmFibGVab25lcyB8fCB0cnVlO1xuXG4gICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICBwdWJsaWNOZXR3b3JrQWNjZXNzRW5hYmxlZDoga3VzdG9Qcm9wcy5wdWJsaWNOZXR3b3JrQWNjZXNzRW5hYmxlZCB8fCB0cnVlLFxuICAgICAgYXV0b1N0b3BFbmFibGVkOiBrdXN0b1Byb3BzLmF1dG9TdG9wRW5hYmxlZCB8fCB0cnVlLFxuICAgICAgc3RyZWFtaW5nSW5nZXN0aW9uRW5hYmxlZDoga3VzdG9Qcm9wcy5zdHJlYW1pbmdJbmdlc3Rpb25FbmFibGVkIHx8IHRydWUsXG4gICAgICBwdXJnZUVuYWJsZWQ6IGt1c3RvUHJvcHMucHVyZ2VFbmFibGVkIHx8IGZhbHNlLFxuICAgICAgem9uZXM6IGVuYWJsZVpvbmVzID8gc2t1LmF2YWlsaWJsZVpvbmVzIDogW10sXG4gICAgICBza3U6IHtcbiAgICAgICAgbmFtZTogc2t1LnNrdU5hbWUsXG4gICAgICAgIGNhcGFjaXR5OiBrdXN0b1Byb3BzLmNhcGFjaXR5IHx8IDIsXG4gICAgICB9LFxuICAgICAgaWRlbnRpdHk6IHtcbiAgICAgICAgdHlwZTogXCJTeXN0ZW1Bc3NpZ25lZFwiLFxuICAgICAgICBpZGVudGl0eUlkczogW10sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgS3VzdG8gQ2x1c3RlciByZXNvdXJjZS5cbiAgICAgKi9cbiAgICBjb25zdCBhenVyZXJtS3VzdG9DbHVzdGVyID0gbmV3IEt1c3RvQ2x1c3Rlcih0aGlzLCBcIkt1c3RvXCIsIHtcbiAgICAgIC4uLmRlZmF1bHRzLFxuICAgICAgbmFtZToga3VzdG9Qcm9wcy5uYW1lLFxuICAgICAgbG9jYXRpb246IGt1c3RvUHJvcHMucmVzb3VyY2VHcm91cC5sb2NhdGlvbixcbiAgICAgIHJlc291cmNlR3JvdXBOYW1lOiBrdXN0b1Byb3BzLnJlc291cmNlR3JvdXAubmFtZSxcbiAgICAgIHRhZ3M6IGt1c3RvUHJvcHMudGFncyxcbiAgICB9KTtcblxuICAgIGlmIChrdXN0b1Byb3BzLmlkZW50aXR5VHlwZSkge1xuICAgICAgYXp1cmVybUt1c3RvQ2x1c3Rlci5hZGRPdmVycmlkZShcImlkZW50aXR5XCIsIHtcbiAgICAgICAgdHlwZToga3VzdG9Qcm9wcy5pZGVudGl0eVR5cGUsXG4gICAgICAgIGlkZW50aXR5SWRzOiBrdXN0b1Byb3BzLmlkZW50aXR5SWRzLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGt1c3RvUHJvcHMubWluaW11bUluc3RhbmNlcyAmJiBrdXN0b1Byb3BzLm1heGltdW1JbnN0YW5jZXMpIHtcbiAgICAgIGF6dXJlcm1LdXN0b0NsdXN0ZXIuYWRkT3ZlcnJpZGUoXG4gICAgICAgIFwibWluaW11bV9pbnN0YW5jZXNcIixcbiAgICAgICAga3VzdG9Qcm9wcy5taW5pbXVtSW5zdGFuY2VzLFxuICAgICAgKTtcbiAgICAgIGF6dXJlcm1LdXN0b0NsdXN0ZXIuYWRkT3ZlcnJpZGUoXG4gICAgICAgIFwibWF4aW11bV9pbnN0YW5jZXNcIixcbiAgICAgICAga3VzdG9Qcm9wcy5tYXhpbXVtSW5zdGFuY2VzLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmlkID0gYXp1cmVybUt1c3RvQ2x1c3Rlci5pZDtcbiAgICB0aGlzLnVyaSA9IGF6dXJlcm1LdXN0b0NsdXN0ZXIudXJpO1xuXG4gICAgLy8gT3V0cHV0c1xuICAgIGNvbnN0IGNka3RmVGVycmFmb3JtT3V0cHV0S3VzdG9JZCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQoXG4gICAgICB0aGlzLFxuICAgICAgXCJLdXN0b19pZFwiLFxuICAgICAge1xuICAgICAgICB2YWx1ZTogYXp1cmVybUt1c3RvQ2x1c3Rlci5pZCxcbiAgICAgIH0sXG4gICAgKTtcbiAgICBjb25zdCBjZGt0ZlRlcnJhZm9ybU91dHB1dEt1c3RvVXJpID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBcIkt1c3RvX3VyaVwiLFxuICAgICAge1xuICAgICAgICB2YWx1ZTogYXp1cmVybUt1c3RvQ2x1c3Rlci51cmksXG4gICAgICB9LFxuICAgICk7XG4gICAgY29uc3QgY2RrdGZUZXJyYWZvcm1PdXRwdXREYXRhSW5nZXN0aW9uVXJpID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBcIkt1c3RvX2RhdGFfaW5nZXN0aW9uX3VyaVwiLFxuICAgICAge1xuICAgICAgICB2YWx1ZTogYXp1cmVybUt1c3RvQ2x1c3Rlci5kYXRhSW5nZXN0aW9uVXJpLFxuICAgICAgfSxcbiAgICApO1xuICAgIGNvbnN0IGNka3RmVGVycmFmb3JtT3V0cHV0S3VzdG9JZGVudGl0eSA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQoXG4gICAgICB0aGlzLFxuICAgICAgXCJLdXN0b19pZGVudGl0eVwiLFxuICAgICAge1xuICAgICAgICB2YWx1ZTogYXp1cmVybUt1c3RvQ2x1c3Rlci5pZGVudGl0eSxcbiAgICAgICAgc2Vuc2l0aXZlOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgLypUaGlzIGFsbG93cyB0aGUgVGVycmFmb3JtIHJlc291cmNlIG5hbWUgdG8gbWF0Y2ggdGhlIG9yaWdpbmFsIG5hbWUuIFlvdSBjYW4gcmVtb3ZlIHRoZSBjYWxsIGlmIHlvdSBkb24ndCBuZWVkIHRoZW0gdG8gbWF0Y2guKi9cbiAgICBjZGt0ZlRlcnJhZm9ybU91dHB1dEt1c3RvSWQub3ZlcnJpZGVMb2dpY2FsSWQoXCJLdXN0b19pZFwiKTtcbiAgICBjZGt0ZlRlcnJhZm9ybU91dHB1dEt1c3RvVXJpLm92ZXJyaWRlTG9naWNhbElkKFwiS3VzdG9fdXJpXCIpO1xuICAgIGNka3RmVGVycmFmb3JtT3V0cHV0RGF0YUluZ2VzdGlvblVyaS5vdmVycmlkZUxvZ2ljYWxJZChcbiAgICAgIFwiS3VzdG9fZGF0YV9pbmdlc3Rpb25fdXJpXCIsXG4gICAgKTtcbiAgICBjZGt0ZlRlcnJhZm9ybU91dHB1dEt1c3RvSWRlbnRpdHkub3ZlcnJpZGVMb2dpY2FsSWQoXCJLdXN0b19pZGVudGl0eVwiKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGREYXRhYmFzZShkYXRhYmFzZVByb3BzOiBEYXRhYmFzZVByb3BzKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRhYmFzZSh0aGlzLCBkYXRhYmFzZVByb3BzLm5hbWUsIGRhdGFiYXNlUHJvcHMpO1xuICB9XG59XG4iXX0=
137
+ Cluster[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_kusto.Cluster", version: "0.0.3-pre.7" };
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1rdXN0by9saWIvY2x1c3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZFQUF5RTtBQUV6RSwrQkFBK0I7QUFFL0IsbUVBR2lDO0FBQ2pDLHlDQUFxRDtBQUNyRCxzREFBMkQ7QUF1RTNELE1BQWEsT0FBUSxTQUFRLHFCQUFhO0lBTXhDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXVCRztJQUNILFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsVUFBd0I7UUFDaEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFFOUM7O1dBRUc7UUFDSCxNQUFNLEdBQUcsR0FBRyxVQUFVLENBQUMsR0FBRyxJQUFJLDRDQUFvQixDQUFDLG9CQUFvQixDQUFDO1FBQ3hFLE1BQU0sV0FBVyxHQUFHLFVBQVUsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDO1FBRW5ELE1BQU0sUUFBUSxHQUFHO1lBQ2YsMEJBQTBCLEVBQUUsVUFBVSxDQUFDLDBCQUEwQixJQUFJLElBQUk7WUFDekUsZUFBZSxFQUFFLFVBQVUsQ0FBQyxlQUFlLElBQUksSUFBSTtZQUNuRCx5QkFBeUIsRUFBRSxVQUFVLENBQUMseUJBQXlCLElBQUksSUFBSTtZQUN2RSxZQUFZLEVBQUUsVUFBVSxDQUFDLFlBQVksSUFBSSxLQUFLO1lBQzlDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDNUMsR0FBRyxFQUFFO2dCQUNILElBQUksRUFBRSxHQUFHLENBQUMsT0FBTztnQkFDakIsUUFBUSxFQUFFLFVBQVUsQ0FBQyxRQUFRLElBQUksQ0FBQzthQUNuQztZQUNELFFBQVEsRUFBRTtnQkFDUixJQUFJLEVBQUUsZ0JBQWdCO2dCQUN0QixXQUFXLEVBQUUsRUFBRTthQUNoQjtTQUNGLENBQUM7UUFFRjs7V0FFRztRQUNILE1BQU0sbUJBQW1CLEdBQUcsSUFBSSw0QkFBWSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUU7WUFDMUQsR0FBRyxRQUFRO1lBQ1gsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJO1lBQ3JCLFFBQVEsRUFBRSxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVE7WUFDM0MsaUJBQWlCLEVBQUUsVUFBVSxDQUFDLGFBQWEsQ0FBQyxJQUFJO1lBQ2hELElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtTQUN0QixDQUFDLENBQUM7UUFFSCxJQUFJLFVBQVUsQ0FBQyxZQUFZLEVBQUU7WUFDM0IsbUJBQW1CLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRTtnQkFDMUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxZQUFZO2dCQUM3QixXQUFXLEVBQUUsVUFBVSxDQUFDLFdBQVc7YUFDcEMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLFVBQVUsQ0FBQyxnQkFBZ0IsSUFBSSxVQUFVLENBQUMsZ0JBQWdCLEVBQUU7WUFDOUQsbUJBQW1CLENBQUMsV0FBVyxDQUM3QixtQkFBbUIsRUFDbkIsVUFBVSxDQUFDLGdCQUFnQixDQUM1QixDQUFDO1lBQ0YsbUJBQW1CLENBQUMsV0FBVyxDQUM3QixtQkFBbUIsRUFDbkIsVUFBVSxDQUFDLGdCQUFnQixDQUM1QixDQUFDO1NBQ0g7UUFFRCxJQUFJLENBQUMsRUFBRSxHQUFHLG1CQUFtQixDQUFDLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsR0FBRyxHQUFHLG1CQUFtQixDQUFDLEdBQUcsQ0FBQztRQUVuQyxVQUFVO1FBQ1YsTUFBTSwyQkFBMkIsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQzNELElBQUksRUFDSixVQUFVLEVBQ1Y7WUFDRSxLQUFLLEVBQUUsbUJBQW1CLENBQUMsRUFBRTtTQUM5QixDQUNGLENBQUM7UUFDRixNQUFNLDRCQUE0QixHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FDNUQsSUFBSSxFQUNKLFdBQVcsRUFDWDtZQUNFLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxHQUFHO1NBQy9CLENBQ0YsQ0FBQztRQUNGLE1BQU0sb0NBQW9DLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUNwRSxJQUFJLEVBQ0osMEJBQTBCLEVBQzFCO1lBQ0UsS0FBSyxFQUFFLG1CQUFtQixDQUFDLGdCQUFnQjtTQUM1QyxDQUNGLENBQUM7UUFDRixNQUFNLGlDQUFpQyxHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FDakUsSUFBSSxFQUNKLGdCQUFnQixFQUNoQjtZQUNFLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxRQUFRO1lBQ25DLFNBQVMsRUFBRSxJQUFJO1NBQ2hCLENBQ0YsQ0FBQztRQUVGLGdJQUFnSTtRQUNoSSwyQkFBMkIsQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMxRCw0QkFBNEIsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1RCxvQ0FBb0MsQ0FBQyxpQkFBaUIsQ0FDcEQsMEJBQTBCLENBQzNCLENBQUM7UUFDRixpQ0FBaUMsQ0FBQyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQTRCRztJQUNJLFdBQVcsQ0FBQyxhQUE0QjtRQUM3QyxPQUFPLElBQUksbUJBQVEsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FBQztJQUMvRCxDQUFDOztBQWhLSCwwQkFpS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLdXN0b0NsdXN0ZXIgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL2t1c3RvLWNsdXN0ZXJcIjtcbmltcG9ydCB7IFJlc291cmNlR3JvdXAgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3Jlc291cmNlLWdyb3VwXCI7XG5pbXBvcnQgKiBhcyBjZGt0ZiBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1xuICBDb21wdXRlU3BlY2lmaWNhdGlvbixcbiAgSUNvbXB1dGVTcGVjaWZpY2F0aW9uLFxufSBmcm9tIFwiLi9jb21wdXRlLXNwZWNpZmljYXRpb25cIjtcbmltcG9ydCB7IERhdGFiYXNlLCBEYXRhYmFzZVByb3BzIH0gZnJvbSBcIi4vZGF0YWJhc2VcIjtcbmltcG9ydCB7IEF6dXJlUmVzb3VyY2UgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvaW5kZXhcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyUHJvcHMge1xuICAvKipcbiAgICogVGhlIEF6dXJlIFJlc291cmNlIEdyb3VwIGluIHdoaWNoIHRvIGNyZWF0ZSB0aGUgS3VzdG8gQ2x1c3Rlci5cbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlR3JvdXA6IFJlc291cmNlR3JvdXA7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgS3VzdG8gQ2x1c3RlciB0byBjcmVhdGUuXG4gICAqIE9ubHkgNC0yMiBsb3dlcmNhc2UgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYWxsb3dlZCwgc3RhcnRpbmcgd2l0aCBhIGxldHRlci5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBTS1Ugb2YgdGhlIEt1c3RvIENsdXN0ZXIuIEFsbCB0aGUgYWxsb3dlZCB2YWx1ZXMgYXJlIGRlZmluZWQgaW4gdGhlIENvbXB1dGVTcGVjaWZpY2F0aW9uIGNsYXNzLlxuICAgKiBAZGVmYXVsdCBkZXZ0ZXN0RXh0cmFTbWFsbER2MlxuICAgKi9cbiAgcmVhZG9ubHkgc2t1PzogSUNvbXB1dGVTcGVjaWZpY2F0aW9uO1xuICAvKipcbiAgICogVGhlIG5vZGUgY291bnQgZm9yIHRoZSBjbHVzdGVyLlxuICAgKiBAZGVmYXVsdCAyXG4gICAqL1xuICByZWFkb25seSBjYXBhY2l0eT86IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIE1hbmFnZWQgU2VydmljZSBJZGVudGl0eS5cbiAgICogQGRlZmF1bHQgXCJTeXN0ZW1Bc3NpZ25lZFwiXG4gICAqL1xuICByZWFkb25seSBpZGVudGl0eVR5cGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgVXNlciBBc3NpZ25lZCBNYW5hZ2VkIElkZW50aXR5IElEcyB0byBiZSBhc3NpZ25lZCB0byB0aGlzIEt1c3RvIENsdXN0ZXIuXG4gICAqL1xuICByZWFkb25seSBpZGVudGl0eUlkcz86IHN0cmluZ1tdO1xuICAvKipcbiAgICogSXMgdGhlIHB1YmxpYyBuZXR3b3JrIGFjY2VzcyBlbmFibGVkP1xuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBwdWJsaWNOZXR3b3JrQWNjZXNzRW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgaWYgdGhlIGNsdXN0ZXIgY291bGQgYmUgYXV0b21hdGljYWxseSBzdG9wcGVkLlxuICAgKiAoZHVlIHRvIGxhY2sgb2YgZGF0YSBvciBubyBhY3Rpdml0eSBmb3IgbWFueSBkYXlzKS5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgYXV0b1N0b3BFbmFibGVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyBpZiB0aGUgc3RyZWFtaW5nIGluZ2VzdCBpcyBlbmFibGVkLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBzdHJlYW1pbmdJbmdlc3Rpb25FbmFibGVkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyBpZiB0aGUgcHVyZ2Ugb3BlcmF0aW9ucyBhcmUgZW5hYmxlZC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHB1cmdlRW5hYmxlZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgaWYgdGhlIHB1cmdlIG9wZXJhdGlvbnMgYXJlIGVuYWJsZWQuIEJhc2VkIG9uIHRoZSBTS1UsIHRoZSBudW1iZXIgb2Ygem9uZXMgYWxsb3dlZCBhcmUgZGlmZmVyZW50LlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVab25lcz86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBudW1iZXIgb2YgYWxsb3dlZCBpbnN0YW5jZXMuIE11c3QgYmV0d2VlbiAwIGFuZCAxMDAwLlxuICAgKi9cbiAgcmVhZG9ubHkgbWluaW11bUluc3RhbmNlcz86IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBhbGxvd2VkIGluc3RhbmNlcy4gTXVzdCBiZXR3ZWVuIDAgYW5kIDEwMDAuXG4gICAqL1xuICByZWFkb25seSBtYXhpbXVtSW5zdGFuY2VzPzogbnVtYmVyO1xuICAvKipcbiAgICogQSBtYXBwaW5nIG9mIHRhZ3MgdG8gYXNzaWduIHRvIHRoZSBLdXN0by5cbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG5leHBvcnQgY2xhc3MgQ2x1c3RlciBleHRlbmRzIEF6dXJlUmVzb3VyY2Uge1xuICByZWFkb25seSBrdXN0b1Byb3BzOiBDbHVzdGVyUHJvcHM7XG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuICBwdWJsaWMgcmVzb3VyY2VHcm91cDogUmVzb3VyY2VHcm91cDtcbiAgcHVibGljIHJlYWRvbmx5IHVyaTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIGEgS3VzdG8gKEF6dXJlIERhdGEgRXhwbG9yZXIpIGNsdXN0ZXIgaW4gQXp1cmUuXG4gICAqXG4gICAqIFRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIHRoZSBjcmVhdGlvbiBhbmQgbWFuYWdlbWVudCBvZiBhIEt1c3RvIENsdXN0ZXIsIHdoaWNoIGlzIGEgaGlnaGx5IHNjYWxhYmxlIGFuZCBzZWN1cmVcbiAgICogYW5hbHl0aWNzIHNlcnZpY2UgZm9yIGluZ2VzdGluZywgc3RvcmluZywgYW5kIGFuYWx5emluZyBsYXJnZSB2b2x1bWVzIG9mIGRhdGEuIFRoZSBjbHVzdGVyIHN1cHBvcnRzIHZhcmlvdXMgY29uZmlndXJhdGlvbnNcbiAgICogdGFpbG9yZWQgdG8gdGhlIG5lZWRzIG9mIHNwZWNpZmljIGRhdGEgd29ya2xvYWRzIGFuZCBzZWN1cml0eSByZXF1aXJlbWVudHMuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3QsIHR5cGljYWxseSByZXByZXNlbnRpbmcgdGhlIENsb3VkIERldmVsb3BtZW50IEtpdCAoQ0RLKSBzdGFjay5cbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlIG9mIHRoZSBjbHVzdGVyLlxuICAgKiBAcGFyYW0ga3VzdG9Qcm9wcyAtIFRoZSBwcm9wZXJ0aWVzIHJlcXVpcmVkIHRvIGNvbmZpZ3VyZSB0aGUgS3VzdG8gY2x1c3RlciwgYXMgZGVmaW5lZCBpbiB0aGUgQ2x1c3RlclByb3BzIGludGVyZmFjZS5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBuZXcgQ2x1c3Rlcih0aGlzLCAnTXlLdXN0b0NsdXN0ZXInLCB7XG4gICAqICAgbmFtZTogJ2V4YW1wbGUtY2x1c3RlcicsXG4gICAqICAgbG9jYXRpb246ICdXZXN0IFVTJyxcbiAgICogICByZXNvdXJjZUdyb3VwOiBteVJlc291cmNlR3JvdXAsXG4gICAqICAgc2t1OiB7IHRpZXI6ICdTdGFuZGFyZCcsIG5hbWU6ICdEMTNfdjInLCBjYXBhY2l0eTogMiB9LFxuICAgKiAgIHRhZ3M6IHtcbiAgICogICAgIHByb2plY3Q6ICdEYXRhIEFuYWx5dGljcydcbiAgICogICB9XG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGt1c3RvUHJvcHM6IENsdXN0ZXJQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgdGhpcy5rdXN0b1Byb3BzID0ga3VzdG9Qcm9wcztcbiAgICB0aGlzLnJlc291cmNlR3JvdXAgPSBrdXN0b1Byb3BzLnJlc291cmNlR3JvdXA7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmUgZGVmYXVsdCB2YWx1ZXMuXG4gICAgICovXG4gICAgY29uc3Qgc2t1ID0ga3VzdG9Qcm9wcy5za3UgfHwgQ29tcHV0ZVNwZWNpZmljYXRpb24uZGV2dGVzdEV4dHJhU21hbGxEdjI7XG4gICAgY29uc3QgZW5hYmxlWm9uZXMgPSBrdXN0b1Byb3BzLmVuYWJsZVpvbmVzIHx8IHRydWU7XG5cbiAgICBjb25zdCBkZWZhdWx0cyA9IHtcbiAgICAgIHB1YmxpY05ldHdvcmtBY2Nlc3NFbmFibGVkOiBrdXN0b1Byb3BzLnB1YmxpY05ldHdvcmtBY2Nlc3NFbmFibGVkIHx8IHRydWUsXG4gICAgICBhdXRvU3RvcEVuYWJsZWQ6IGt1c3RvUHJvcHMuYXV0b1N0b3BFbmFibGVkIHx8IHRydWUsXG4gICAgICBzdHJlYW1pbmdJbmdlc3Rpb25FbmFibGVkOiBrdXN0b1Byb3BzLnN0cmVhbWluZ0luZ2VzdGlvbkVuYWJsZWQgfHwgdHJ1ZSxcbiAgICAgIHB1cmdlRW5hYmxlZDoga3VzdG9Qcm9wcy5wdXJnZUVuYWJsZWQgfHwgZmFsc2UsXG4gICAgICB6b25lczogZW5hYmxlWm9uZXMgPyBza3UuYXZhaWxpYmxlWm9uZXMgOiBbXSxcbiAgICAgIHNrdToge1xuICAgICAgICBuYW1lOiBza3Uuc2t1TmFtZSxcbiAgICAgICAgY2FwYWNpdHk6IGt1c3RvUHJvcHMuY2FwYWNpdHkgfHwgMixcbiAgICAgIH0sXG4gICAgICBpZGVudGl0eToge1xuICAgICAgICB0eXBlOiBcIlN5c3RlbUFzc2lnbmVkXCIsXG4gICAgICAgIGlkZW50aXR5SWRzOiBbXSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZSBLdXN0byBDbHVzdGVyIHJlc291cmNlLlxuICAgICAqL1xuICAgIGNvbnN0IGF6dXJlcm1LdXN0b0NsdXN0ZXIgPSBuZXcgS3VzdG9DbHVzdGVyKHRoaXMsIFwiS3VzdG9cIiwge1xuICAgICAgLi4uZGVmYXVsdHMsXG4gICAgICBuYW1lOiBrdXN0b1Byb3BzLm5hbWUsXG4gICAgICBsb2NhdGlvbjoga3VzdG9Qcm9wcy5yZXNvdXJjZUdyb3VwLmxvY2F0aW9uLFxuICAgICAgcmVzb3VyY2VHcm91cE5hbWU6IGt1c3RvUHJvcHMucmVzb3VyY2VHcm91cC5uYW1lLFxuICAgICAgdGFnczoga3VzdG9Qcm9wcy50YWdzLFxuICAgIH0pO1xuXG4gICAgaWYgKGt1c3RvUHJvcHMuaWRlbnRpdHlUeXBlKSB7XG4gICAgICBhenVyZXJtS3VzdG9DbHVzdGVyLmFkZE92ZXJyaWRlKFwiaWRlbnRpdHlcIiwge1xuICAgICAgICB0eXBlOiBrdXN0b1Byb3BzLmlkZW50aXR5VHlwZSxcbiAgICAgICAgaWRlbnRpdHlJZHM6IGt1c3RvUHJvcHMuaWRlbnRpdHlJZHMsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoa3VzdG9Qcm9wcy5taW5pbXVtSW5zdGFuY2VzICYmIGt1c3RvUHJvcHMubWF4aW11bUluc3RhbmNlcykge1xuICAgICAgYXp1cmVybUt1c3RvQ2x1c3Rlci5hZGRPdmVycmlkZShcbiAgICAgICAgXCJtaW5pbXVtX2luc3RhbmNlc1wiLFxuICAgICAgICBrdXN0b1Byb3BzLm1pbmltdW1JbnN0YW5jZXMsXG4gICAgICApO1xuICAgICAgYXp1cmVybUt1c3RvQ2x1c3Rlci5hZGRPdmVycmlkZShcbiAgICAgICAgXCJtYXhpbXVtX2luc3RhbmNlc1wiLFxuICAgICAgICBrdXN0b1Byb3BzLm1heGltdW1JbnN0YW5jZXMsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuaWQgPSBhenVyZXJtS3VzdG9DbHVzdGVyLmlkO1xuICAgIHRoaXMudXJpID0gYXp1cmVybUt1c3RvQ2x1c3Rlci51cmk7XG5cbiAgICAvLyBPdXRwdXRzXG4gICAgY29uc3QgY2RrdGZUZXJyYWZvcm1PdXRwdXRLdXN0b0lkID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBcIkt1c3RvX2lkXCIsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBhenVyZXJtS3VzdG9DbHVzdGVyLmlkLFxuICAgICAgfSxcbiAgICApO1xuICAgIGNvbnN0IGNka3RmVGVycmFmb3JtT3V0cHV0S3VzdG9VcmkgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KFxuICAgICAgdGhpcyxcbiAgICAgIFwiS3VzdG9fdXJpXCIsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBhenVyZXJtS3VzdG9DbHVzdGVyLnVyaSxcbiAgICAgIH0sXG4gICAgKTtcbiAgICBjb25zdCBjZGt0ZlRlcnJhZm9ybU91dHB1dERhdGFJbmdlc3Rpb25VcmkgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KFxuICAgICAgdGhpcyxcbiAgICAgIFwiS3VzdG9fZGF0YV9pbmdlc3Rpb25fdXJpXCIsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBhenVyZXJtS3VzdG9DbHVzdGVyLmRhdGFJbmdlc3Rpb25VcmksXG4gICAgICB9LFxuICAgICk7XG4gICAgY29uc3QgY2RrdGZUZXJyYWZvcm1PdXRwdXRLdXN0b0lkZW50aXR5ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBcIkt1c3RvX2lkZW50aXR5XCIsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBhenVyZXJtS3VzdG9DbHVzdGVyLmlkZW50aXR5LFxuICAgICAgICBzZW5zaXRpdmU6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICAvKlRoaXMgYWxsb3dzIHRoZSBUZXJyYWZvcm0gcmVzb3VyY2UgbmFtZSB0byBtYXRjaCB0aGUgb3JpZ2luYWwgbmFtZS4gWW91IGNhbiByZW1vdmUgdGhlIGNhbGwgaWYgeW91IGRvbid0IG5lZWQgdGhlbSB0byBtYXRjaC4qL1xuICAgIGNka3RmVGVycmFmb3JtT3V0cHV0S3VzdG9JZC5vdmVycmlkZUxvZ2ljYWxJZChcIkt1c3RvX2lkXCIpO1xuICAgIGNka3RmVGVycmFmb3JtT3V0cHV0S3VzdG9Vcmkub3ZlcnJpZGVMb2dpY2FsSWQoXCJLdXN0b191cmlcIik7XG4gICAgY2RrdGZUZXJyYWZvcm1PdXRwdXREYXRhSW5nZXN0aW9uVXJpLm92ZXJyaWRlTG9naWNhbElkKFxuICAgICAgXCJLdXN0b19kYXRhX2luZ2VzdGlvbl91cmlcIixcbiAgICApO1xuICAgIGNka3RmVGVycmFmb3JtT3V0cHV0S3VzdG9JZGVudGl0eS5vdmVycmlkZUxvZ2ljYWxJZChcIkt1c3RvX2lkZW50aXR5XCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBuZXcgZGF0YWJhc2UgdG8gdGhlIEF6dXJlIEt1c3RvIENsdXN0ZXIuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGNyZWF0ZXMgYSBkYXRhYmFzZSB3aXRoaW4gdGhlIEF6dXJlIERhdGEgRXhwbG9yZXIgKEt1c3RvKSBjbHVzdGVyLCBkZWZpbmVkIGJ5IHRoZSBwcm9wZXJ0aWVzIHByb3ZpZGVkLlxuICAgKiBBIGRhdGFiYXNlIGluIEt1c3RvIHNlcnZlcyBhcyBhIGxvZ2ljYWwgZ3JvdXAgdG8gbWFuYWdlIHZhcmlvdXMgdGFibGVzIGFuZCBzdG9yZSBkYXRhLiBJdCBpcyBlc3NlbnRpYWwgZm9yIHBlcmZvcm1pbmdcbiAgICogZGF0YSBhbmFseXRpY3MgYW5kIHJ1bm5pbmcgcXVlcmllcy4gVGhlIGRhdGFiYXNlIGNvbmZpZ3VyYXRpb24gY2FuIGluY2x1ZGUgc2V0dGluZ3MgbGlrZSBob3QgY2FjaGUgYW5kIHNvZnQgZGVsZXRlIHBlcmlvZHMsXG4gICAqIHdoaWNoIG9wdGltaXplIHF1ZXJ5IHBlcmZvcm1hbmNlIGFuZCBtYW5hZ2UgZGF0YSBsaWZlY3ljbGUgYWNjb3JkaW5nIHRvIHNwZWNpZmljIHJlcXVpcmVtZW50cy5cbiAgICpcbiAgICogQHBhcmFtIGRhdGFiYXNlUHJvcHMgLSBUaGUgcHJvcGVydGllcyByZXF1aXJlZCB0byBjcmVhdGUgdGhlIGRhdGFiYXNlLiBUaGVzZSBwcm9wZXJ0aWVzIHNob3VsZCBpbmNsdWRlOlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgIC0gYGt1c3RvYDogUmVmZXJlbmNlIHRvIHRoZSBLdXN0byBjbHVzdGVyIHRvIHdoaWNoIHRoZSBkYXRhYmFzZSB3aWxsIGJlIGFkZGVkLlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgIC0gYG5hbWVgOiBUaGUgbmFtZSBvZiB0aGUgZGF0YWJhc2UsIHdoaWNoIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgY2x1c3Rlci5cbiAgICogICAgICAgICAgICAgICAgICAgICAgICAtIGBob3RDYWNoZVBlcmlvZGA6IE9wdGlvbmFsLiBTcGVjaWZpZXMgdGhlIGR1cmF0aW9uIHRoYXQgZGF0YSBzaG91bGQgYmUga2VwdCBpbiBjYWNoZSBmb3IgZmFzdGVyIHF1ZXJ5IGFjY2Vzcy5cbiAgICogICAgICAgICAgICAgICAgICAgICAgICAtIGBzb2Z0RGVsZXRlUGVyaW9kYDogT3B0aW9uYWwuIFNwZWNpZmllcyB0aGUgZHVyYXRpb24gdGhhdCBkYXRhIHNob3VsZCBiZSByZXRhaW5lZCBiZWZvcmUgaXQgc3RvcHMgYmVpbmcgYWNjZXNzaWJsZSB0byBxdWVyaWVzLlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgQm90aCB0aGUgaG90IGNhY2hlIGFuZCBzb2Z0IGRlbGV0ZSBwZXJpb2RzIHNob3VsZCBiZSBzcGVjaWZpZWQgaW4gSVNPIDg2MDEgZHVyYXRpb24gZm9ybWF0LlxuICAgKlxuICAgKiBAcmV0dXJucyBBIGBEYXRhYmFzZWAgb2JqZWN0IHJlcHJlc2VudGluZyB0aGUgbmV3bHkgY3JlYXRlZCBkYXRhYmFzZSB3aXRoaW4gdGhlIEt1c3RvIGNsdXN0ZXIuXG4gICAqXG4gICAqIEV4YW1wbGUgdXNhZ2U6XG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgbXlEYXRhYmFzZSA9IG15Q2x1c3Rlci5hZGREYXRhYmFzZSh7XG4gICAqICAga3VzdG86IG15S3VzdG9DbHVzdGVyLFxuICAgKiAgIG5hbWU6ICdPcGVyYXRpb25hbERhdGEnLFxuICAgKiAgIGhvdENhY2hlUGVyaW9kOiAnUDE0RCcsIC8vIDE0IGRheXNcbiAgICogICBzb2Z0RGVsZXRlUGVyaW9kOiAnUDM2NUQnIC8vIDEgeWVhclxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqIFRoaXMgbWV0aG9kIGZhY2lsaXRhdGVzIHRoZSBlZmZpY2llbnQgc2V0dXAgYW5kIHNjYWxpbmcgb2YgZGF0YWJhc2VzIHdpdGhpbiBhbiBBenVyZSBLdXN0byBjbHVzdGVyLCBhbGxvd2luZ1xuICAgKiBmb3IgY29tcGxleCBkYXRhIGFuYWx5dGljcyBvcGVyYXRpb25zIGFjcm9zcyBsYXJnZSBkYXRhc2V0cy5cbiAgICovXG4gIHB1YmxpYyBhZGREYXRhYmFzZShkYXRhYmFzZVByb3BzOiBEYXRhYmFzZVByb3BzKSB7XG4gICAgcmV0dXJuIG5ldyBEYXRhYmFzZSh0aGlzLCBkYXRhYmFzZVByb3BzLm5hbWUsIGRhdGFiYXNlUHJvcHMpO1xuICB9XG59XG4iXX0=
@@ -7,7 +7,7 @@ class ComputeSpecification {
7
7
  }
8
8
  exports.ComputeSpecification = ComputeSpecification;
9
9
  _a = JSII_RTTI_SYMBOL_1;
10
- ComputeSpecification[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_kusto.ComputeSpecification", version: "0.0.3-pre.6" };
10
+ ComputeSpecification[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_kusto.ComputeSpecification", version: "0.0.3-pre.7" };
11
11
  ComputeSpecification.devtestExtraSmallDv2 = {
12
12
  skuName: "Dev(No SLA)_Standard_D11_v2",
13
13
  workload: "dev/test",
@@ -52,8 +52,111 @@ export declare class Database extends Construct {
52
52
  readonly kustoProps: ClusterProps;
53
53
  readonly rg: string;
54
54
  readonly id: string;
55
+ /**
56
+ * Represents a Kusto Database within an Azure Kusto Cluster.
57
+ *
58
+ * This class is responsible for the creation and management of a database in Azure Data Explorer (Kusto),
59
+ * which stores data tables and provides a query engine. A Kusto database is a logical group of tables
60
+ * and is associated with a specific Kusto cluster. The database supports configurations such as
61
+ * hot cache period and soft delete period to optimize performance and data retention according to
62
+ * specific workload requirements.
63
+ *
64
+ * @param scope - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) stack.
65
+ * @param id - The unique identifier for this instance of the Kusto database.
66
+ * @param kustoDbProps - The properties required to configure the Kusto database. These include:
67
+ * - `kusto`: Reference to the Kusto cluster to which the database will belong.
68
+ * - `name`: The name of the database to be created within the Kusto cluster.
69
+ * - `hotCachePeriod`: Optional. Specifies the duration that data should be kept in cache for faster query performance.
70
+ * Expressed in ISO 8601 duration format.
71
+ * - `softDeletePeriod`: Optional. Specifies the duration that data should be retained before it stops being accessible.
72
+ * Expressed in ISO 8601 duration format.
73
+ *
74
+ * Example usage:
75
+ * ```typescript
76
+ * const myDatabase = new Database(this, 'MyKustoDatabase', {
77
+ * kusto: myKustoCluster,
78
+ * name: 'AnalyticsDB',
79
+ * hotCachePeriod: 'P30D', // 30 days
80
+ * softDeletePeriod: 'P365D' // 365 days
81
+ * });
82
+ * ```
83
+ *
84
+ * This class sets up the database configurations and integrates it within the specified Kusto cluster,
85
+ * providing capabilities to manage and query large datasets effectively.
86
+ */
55
87
  constructor(scope: Construct, id: string, kustoDbProps: DatabaseProps);
88
+ /**
89
+ * Adds a database principal assignment in the Kusto cluster, assigning specified access rights to a principal.
90
+ *
91
+ * This method is used to grant access permissions to a specific user, group, or service principal within an Azure Active Directory.
92
+ * These permissions determine the level of access that the principal has over the Kusto database, such as viewing, ingesting, or managing data.
93
+ * The assignment is made by creating a KustoDatabasePrincipalAssignment resource, specifying the principal details and the type of role
94
+ * they should assume.
95
+ *
96
+ * @param kustoDatabaseAccessProps - The properties defining the principal assignment. This includes:
97
+ * - `name`: A unique name identifying this principal assignment.
98
+ * - `tenantId`: The Azure Active Directory tenant ID where the principal resides.
99
+ * - `principalId`: The object ID of the principal (user, group, or service principal) in Azure AD.
100
+ * - `principalType`: The type of principal (e.g., User, Group, App).
101
+ * - `role`: The database role assigned to the principal. Roles can include Admin, User, Viewer, among others.
102
+ *
103
+ * Example usage:
104
+ * ```typescript
105
+ * myDatabase.addPermission({
106
+ * name: 'DataScienceTeamAccess',
107
+ * tenantId: 'tenant-id',
108
+ * principalId: 'principal-id',
109
+ * principalType: 'Group',
110
+ * role: 'Viewer'
111
+ * });
112
+ * ```
113
+ * This method creates a new principal assignment, enabling specified access controls for the principal
114
+ * on the Kusto database based on the role assigned. It is crucial for managing security and access
115
+ * governance within the Kusto environment.
116
+ */
56
117
  addPermission(kustoDatabaseAccessProps: DatabaseAccessProps): void;
118
+ /**
119
+ * Adds a new table to an existing Azure Kusto database.
120
+ *
121
+ * This method creates a table within the specified Kusto database using a given schema. Tables in Kusto store structured data with
122
+ * defined columns and types, which are crucial for storing and querying large datasets efficiently. The method constructs a Kusto
123
+ * Data Explorer control command to create the table and then executes this command within the context of the database.
124
+ *
125
+ * @param tableName - The name of the table to create, which must be unique within the database.
126
+ * @param tableSchema - An array of schema properties defining the columns of the table, including column names and their data types.
127
+ *
128
+ * Example usage:
129
+ * ```typescript
130
+ * myDatabase.addTable('SalesData', [
131
+ * { columnName: 'TransactionId', columnType: 'int' },
132
+ * { columnName: 'TransactionDate', columnType: 'datetime' },
133
+ * { columnName: 'Amount', columnType: 'real' }
134
+ * ]);
135
+ * ```
136
+ * This method constructs the command to create the table and applies it directly within the Kusto database,
137
+ * ensuring the table is ready for data ingestion and querying.
138
+ */
57
139
  addTable(tableName: string, tableSchema: TableSchemaProps[]): void;
140
+ /**
141
+ * Adds and executes a control command or script within the Kusto database.
142
+ *
143
+ * This method facilitates the execution of Kusto Query Language (KQL) scripts or control commands within the specified
144
+ * Kusto database. Scripts can perform a variety of functions, from schema modifications, like adding new tables or altering
145
+ * existing ones, to data management operations, such as data ingestion or cleanup tasks. Each script is executed as a
146
+ * KustoScript resource, which ensures that the script is applied correctly and atomically to the database.
147
+ *
148
+ * @param scriptName - A unique name for the script, which helps in identifying the script resource within the deployment.
149
+ * @param scriptContent - The KQL script or control command to be executed. This should be a valid KQL command string.
150
+ *
151
+ * Example usage:
152
+ * ```typescript
153
+ * myDatabase.addScript('InitializeSalesTable', `
154
+ * .create table SalesData (TransactionId: int, TransactionDate: datetime, Amount: real)
155
+ * .alter-merge table SalesData policy retentionsoftdelete = 365d
156
+ * `);
157
+ * ```
158
+ * This method will create a `KustoScript` resource that encapsulates the command, ensuring it is executed against the
159
+ * database, and is tracked as part of the resource management within Azure.
160
+ */
58
161
  addScript(scriptName: string, scriptContent: string): void;
59
162
  }
@@ -10,6 +10,38 @@ const cdktf = require("cdktf");
10
10
  const constructs_1 = require("constructs");
11
11
  const ts_md5_1 = require("ts-md5");
12
12
  class Database extends constructs_1.Construct {
13
+ /**
14
+ * Represents a Kusto Database within an Azure Kusto Cluster.
15
+ *
16
+ * This class is responsible for the creation and management of a database in Azure Data Explorer (Kusto),
17
+ * which stores data tables and provides a query engine. A Kusto database is a logical group of tables
18
+ * and is associated with a specific Kusto cluster. The database supports configurations such as
19
+ * hot cache period and soft delete period to optimize performance and data retention according to
20
+ * specific workload requirements.
21
+ *
22
+ * @param scope - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) stack.
23
+ * @param id - The unique identifier for this instance of the Kusto database.
24
+ * @param kustoDbProps - The properties required to configure the Kusto database. These include:
25
+ * - `kusto`: Reference to the Kusto cluster to which the database will belong.
26
+ * - `name`: The name of the database to be created within the Kusto cluster.
27
+ * - `hotCachePeriod`: Optional. Specifies the duration that data should be kept in cache for faster query performance.
28
+ * Expressed in ISO 8601 duration format.
29
+ * - `softDeletePeriod`: Optional. Specifies the duration that data should be retained before it stops being accessible.
30
+ * Expressed in ISO 8601 duration format.
31
+ *
32
+ * Example usage:
33
+ * ```typescript
34
+ * const myDatabase = new Database(this, 'MyKustoDatabase', {
35
+ * kusto: myKustoCluster,
36
+ * name: 'AnalyticsDB',
37
+ * hotCachePeriod: 'P30D', // 30 days
38
+ * softDeletePeriod: 'P365D' // 365 days
39
+ * });
40
+ * ```
41
+ *
42
+ * This class sets up the database configurations and integrates it within the specified Kusto cluster,
43
+ * providing capabilities to manage and query large datasets effectively.
44
+ */
13
45
  constructor(scope, id, kustoDbProps) {
14
46
  super(scope, id);
15
47
  this.kustoDbProps = kustoDbProps;
@@ -34,6 +66,35 @@ class Database extends constructs_1.Construct {
34
66
  });
35
67
  cdktfTerraformOutputKustoDbId.overrideLogicalId("id");
36
68
  }
69
+ /**
70
+ * Adds a database principal assignment in the Kusto cluster, assigning specified access rights to a principal.
71
+ *
72
+ * This method is used to grant access permissions to a specific user, group, or service principal within an Azure Active Directory.
73
+ * These permissions determine the level of access that the principal has over the Kusto database, such as viewing, ingesting, or managing data.
74
+ * The assignment is made by creating a KustoDatabasePrincipalAssignment resource, specifying the principal details and the type of role
75
+ * they should assume.
76
+ *
77
+ * @param kustoDatabaseAccessProps - The properties defining the principal assignment. This includes:
78
+ * - `name`: A unique name identifying this principal assignment.
79
+ * - `tenantId`: The Azure Active Directory tenant ID where the principal resides.
80
+ * - `principalId`: The object ID of the principal (user, group, or service principal) in Azure AD.
81
+ * - `principalType`: The type of principal (e.g., User, Group, App).
82
+ * - `role`: The database role assigned to the principal. Roles can include Admin, User, Viewer, among others.
83
+ *
84
+ * Example usage:
85
+ * ```typescript
86
+ * myDatabase.addPermission({
87
+ * name: 'DataScienceTeamAccess',
88
+ * tenantId: 'tenant-id',
89
+ * principalId: 'principal-id',
90
+ * principalType: 'Group',
91
+ * role: 'Viewer'
92
+ * });
93
+ * ```
94
+ * This method creates a new principal assignment, enabling specified access controls for the principal
95
+ * on the Kusto database based on the role assigned. It is crucial for managing security and access
96
+ * governance within the Kusto environment.
97
+ */
37
98
  addPermission(kustoDatabaseAccessProps) {
38
99
  new kusto_database_principal_assignment_1.KustoDatabasePrincipalAssignment(this, `kusto-db-${kustoDatabaseAccessProps.name}-access`, {
39
100
  name: kustoDatabaseAccessProps.name,
@@ -46,6 +107,27 @@ class Database extends constructs_1.Construct {
46
107
  role: kustoDatabaseAccessProps.role,
47
108
  });
48
109
  }
110
+ /**
111
+ * Adds a new table to an existing Azure Kusto database.
112
+ *
113
+ * This method creates a table within the specified Kusto database using a given schema. Tables in Kusto store structured data with
114
+ * defined columns and types, which are crucial for storing and querying large datasets efficiently. The method constructs a Kusto
115
+ * Data Explorer control command to create the table and then executes this command within the context of the database.
116
+ *
117
+ * @param tableName - The name of the table to create, which must be unique within the database.
118
+ * @param tableSchema - An array of schema properties defining the columns of the table, including column names and their data types.
119
+ *
120
+ * Example usage:
121
+ * ```typescript
122
+ * myDatabase.addTable('SalesData', [
123
+ * { columnName: 'TransactionId', columnType: 'int' },
124
+ * { columnName: 'TransactionDate', columnType: 'datetime' },
125
+ * { columnName: 'Amount', columnType: 'real' }
126
+ * ]);
127
+ * ```
128
+ * This method constructs the command to create the table and applies it directly within the Kusto database,
129
+ * ensuring the table is ready for data ingestion and querying.
130
+ */
49
131
  addTable(tableName, tableSchema) {
50
132
  const schemaContent = tableSchema
51
133
  .map((column) => {
@@ -61,6 +143,27 @@ class Database extends constructs_1.Construct {
61
143
  forceAnUpdateWhenValueChanged: ts_md5_1.Md5.hashStr(scriptContent),
62
144
  });
63
145
  }
146
+ /**
147
+ * Adds and executes a control command or script within the Kusto database.
148
+ *
149
+ * This method facilitates the execution of Kusto Query Language (KQL) scripts or control commands within the specified
150
+ * Kusto database. Scripts can perform a variety of functions, from schema modifications, like adding new tables or altering
151
+ * existing ones, to data management operations, such as data ingestion or cleanup tasks. Each script is executed as a
152
+ * KustoScript resource, which ensures that the script is applied correctly and atomically to the database.
153
+ *
154
+ * @param scriptName - A unique name for the script, which helps in identifying the script resource within the deployment.
155
+ * @param scriptContent - The KQL script or control command to be executed. This should be a valid KQL command string.
156
+ *
157
+ * Example usage:
158
+ * ```typescript
159
+ * myDatabase.addScript('InitializeSalesTable', `
160
+ * .create table SalesData (TransactionId: int, TransactionDate: datetime, Amount: real)
161
+ * .alter-merge table SalesData policy retentionsoftdelete = 365d
162
+ * `);
163
+ * ```
164
+ * This method will create a `KustoScript` resource that encapsulates the command, ensuring it is executed against the
165
+ * database, and is tracked as part of the resource management within Azure.
166
+ */
64
167
  addScript(scriptName, scriptContent) {
65
168
  new kusto_script_1.KustoScript(this, `kusto-db-${this.kustoDbProps.name}-script-${scriptName}`, {
66
169
  name: `script-${scriptName}`,
@@ -73,5 +176,5 @@ class Database extends constructs_1.Construct {
73
176
  }
74
177
  exports.Database = Database;
75
178
  _a = JSII_RTTI_SYMBOL_1;
76
- Database[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_kusto.Database", version: "0.0.3-pre.6" };
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUta3VzdG8vbGliL2RhdGFiYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0VBQTJFO0FBQzNFLHlIQUFtSDtBQUNuSCwyRUFBdUU7QUFDdkUsK0JBQStCO0FBQy9CLDJDQUF1QztBQUN2QyxtQ0FBNkI7QUFxRDdCLE1BQWEsUUFBUyxTQUFRLHNCQUFTO0lBTXJDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsWUFBMkI7UUFDbkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQ2hELElBQUksQ0FBQyxFQUFFLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztRQUUzRCxNQUFNLGFBQWEsR0FBRyxJQUFJLDhCQUFhLENBQ3JDLElBQUksRUFDSixZQUFZLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLEVBQ3BDO1lBQ0UsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSTtZQUM1QixRQUFRLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVE7WUFDOUQsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUk7WUFDbkUsV0FBVyxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUk7U0FDaEQsQ0FDRixDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRTtZQUNwQyxhQUFhLENBQUMsV0FBVyxDQUN2QixrQkFBa0IsRUFDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQ2pDLENBQUM7U0FDSDtRQUNELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN0QyxhQUFhLENBQUMsV0FBVyxDQUN2QixvQkFBb0IsRUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FDbkMsQ0FBQztTQUNIO1FBRUQsVUFBVTtRQUNWLElBQUksQ0FBQyxFQUFFLEdBQUcsYUFBYSxDQUFDLEVBQUUsQ0FBQztRQUMzQixNQUFNLDZCQUE2QixHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FDN0QsSUFBSSxFQUNKLElBQUksRUFDSjtZQUNFLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRTtTQUNmLENBQ0YsQ0FBQztRQUNGLDZCQUE2QixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTSxhQUFhLENBQUMsd0JBQTZDO1FBQ2hFLElBQUksc0VBQWdDLENBQ2xDLElBQUksRUFDSixZQUFZLHdCQUF3QixDQUFDLElBQUksU0FBUyxFQUNsRDtZQUNFLElBQUksRUFBRSx3QkFBd0IsQ0FBQyxJQUFJO1lBQ25DLGlCQUFpQixFQUFFLElBQUksQ0FBQyxFQUFFO1lBQzFCLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUk7WUFDakMsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSTtZQUNwQyxRQUFRLEVBQUUsd0JBQXdCLENBQUMsUUFBUTtZQUMzQyxXQUFXLEVBQUUsd0JBQXdCLENBQUMsV0FBVztZQUNqRCxhQUFhLEVBQUUsd0JBQXdCLENBQUMsYUFBYTtZQUNyRCxJQUFJLEVBQUUsd0JBQXdCLENBQUMsSUFBSTtTQUNwQyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRU0sUUFBUSxDQUFDLFNBQWlCLEVBQUUsV0FBK0I7UUFDaEUsTUFBTSxhQUFhLEdBQUcsV0FBVzthQUM5QixHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNkLE9BQU8sR0FBRyxNQUFNLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNyRCxDQUFDLENBQUM7YUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDZCxNQUFNLGFBQWEsR0FBRyxpQkFBaUIsU0FBUyxNQUFNLGFBQWEsSUFBSSxDQUFDO1FBRXhFLElBQUksMEJBQVcsQ0FDYixJQUFJLEVBQ0osWUFBWSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksVUFBVSxTQUFTLEVBQUUsRUFDdkQ7WUFDRSxJQUFJLEVBQUUsU0FBUztZQUNmLFVBQVUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNuQixhQUFhLEVBQUUsYUFBYTtZQUM1Qix1QkFBdUIsRUFBRSxLQUFLO1lBQzlCLDZCQUE2QixFQUFFLFlBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1NBQzFELENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSxTQUFTLENBQUMsVUFBa0IsRUFBRSxhQUFxQjtRQUN4RCxJQUFJLDBCQUFXLENBQ2IsSUFBSSxFQUNKLFlBQVksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLFdBQVcsVUFBVSxFQUFFLEVBQ3pEO1lBQ0UsSUFBSSxFQUFFLFVBQVUsVUFBVSxFQUFFO1lBQzVCLFVBQVUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNuQixhQUFhLEVBQUUsYUFBYTtZQUM1Qix1QkFBdUIsRUFBRSxLQUFLO1lBQzlCLDZCQUE2QixFQUFFLFlBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1NBQzFELENBQ0YsQ0FBQztJQUNKLENBQUM7O0FBbEdILDRCQW1HQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEt1c3RvRGF0YWJhc2UgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL2t1c3RvLWRhdGFiYXNlXCI7XG5pbXBvcnQgeyBLdXN0b0RhdGFiYXNlUHJpbmNpcGFsQXNzaWdubWVudCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIva3VzdG8tZGF0YWJhc2UtcHJpbmNpcGFsLWFzc2lnbm1lbnRcIjtcbmltcG9ydCB7IEt1c3RvU2NyaXB0IH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9rdXN0by1zY3JpcHRcIjtcbmltcG9ydCAqIGFzIGNka3RmIGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IE1kNSB9IGZyb20gXCJ0cy1tZDVcIjtcbmltcG9ydCB7IENsdXN0ZXJQcm9wcywgQ2x1c3RlciB9IGZyb20gXCIuL2NsdXN0ZXJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBBenVyZSBLdXN0byBjbHVzdGVyIHRvIHdoaWNoIHRoaXMgZGF0YWJhc2UgYmVsb25ncy5cbiAgICovXG4gIHJlYWRvbmx5IGt1c3RvOiBDbHVzdGVyO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEt1c3RvIERhdGFiYXNlIHRvIGNyZWF0ZS5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB0aW1lIHRoZSBkYXRhIHRoYXQgc2hvdWxkIGJlIGtlcHQgaW4gY2FjaGUgZm9yIGZhc3QgcXVlcmllcyBhcyBJU08gODYwMSB0aW1lc3Bhbi5cbiAgICogRGVmYXVsdCBpcyB1bmxpbWl0ZWQuXG4gICAqL1xuICByZWFkb25seSBob3RDYWNoZVBlcmlvZD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB0aW1lIHRoZSBkYXRhIHNob3VsZCBiZSBrZXB0IGJlZm9yZSBpdCBzdG9wcyBiZWluZyBhY2Nlc3NpYmxlIHRvIHF1ZXJpZXMgYXMgSVNPIDg2MDEgdGltZXNwYW4uXG4gICAqIERlZmF1bHQgaXMgdW5saW1pdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgc29mdERlbGV0ZVBlcmlvZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZUFjY2Vzc1Byb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBrdXN0byBwcmluY2lwYWwgYXNzaWdubWVudC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB0ZW5hbnQgaWQgaW4gd2hpY2ggdGhlIHByaW5jaXBhbCByZXNpZGVzLlxuICAgKi9cbiAgcmVhZG9ubHkgdGVuYW50SWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBvYmplY3QgaWQgb2YgdGhlIHByaW5jaXBhbCB0byBhc3NpZ24gdG8gS3VzdG8gRGF0YWJhc2UuXG4gICAqL1xuICByZWFkb25seSBwcmluY2lwYWxJZDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHR5cGUgb2YgdGhlIHByaW5jaXBhbC4gVmFsaWQgdmFsdWVzIGluY2x1ZGUgQXBwLCBHcm91cCwgVXNlci5cbiAgICovXG4gIHJlYWRvbmx5IHByaW5jaXBhbFR5cGU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBkYXRhYmFzZSByb2xlIGFzc2lnbmVkIHRvIHRoZSBwcmluY2lwYWwuXG4gICAqIFZhbGlkIHZhbHVlcyBpbmNsdWRlIEFkbWluLCBJbmdlc3RvciwgTW9uaXRvciwgVW5yZXN0cmljdGVkVmlld2VyLCBVc2VyIGFuZCBWaWV3ZXIuXG4gICAqL1xuICByZWFkb25seSByb2xlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVTY2hlbWFQcm9wcyB7XG4gIHJlYWRvbmx5IGNvbHVtbk5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgY29sdW1uVHlwZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgRGF0YWJhc2UgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkga3VzdG9EYlByb3BzOiBEYXRhYmFzZVByb3BzO1xuICBwdWJsaWMgcmVhZG9ubHkga3VzdG9Qcm9wczogQ2x1c3RlclByb3BzO1xuICBwdWJsaWMgcmVhZG9ubHkgcmc6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywga3VzdG9EYlByb3BzOiBEYXRhYmFzZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLmt1c3RvRGJQcm9wcyA9IGt1c3RvRGJQcm9wcztcbiAgICB0aGlzLmt1c3RvUHJvcHMgPSBrdXN0b0RiUHJvcHMua3VzdG8ua3VzdG9Qcm9wcztcbiAgICB0aGlzLnJnID0ga3VzdG9EYlByb3BzLmt1c3RvLmt1c3RvUHJvcHMucmVzb3VyY2VHcm91cC5uYW1lO1xuXG4gICAgY29uc3Qga3VzdG9EYXRhYmFzZSA9IG5ldyBLdXN0b0RhdGFiYXNlKFxuICAgICAgdGhpcyxcbiAgICAgIGBrdXN0by1kYi0ke3RoaXMua3VzdG9EYlByb3BzLm5hbWV9YCxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogdGhpcy5rdXN0b0RiUHJvcHMubmFtZSxcbiAgICAgICAgbG9jYXRpb246IGt1c3RvRGJQcm9wcy5rdXN0by5rdXN0b1Byb3BzLnJlc291cmNlR3JvdXAubG9jYXRpb24sXG4gICAgICAgIHJlc291cmNlR3JvdXBOYW1lOiBrdXN0b0RiUHJvcHMua3VzdG8ua3VzdG9Qcm9wcy5yZXNvdXJjZUdyb3VwLm5hbWUsXG4gICAgICAgIGNsdXN0ZXJOYW1lOiBrdXN0b0RiUHJvcHMua3VzdG8ua3VzdG9Qcm9wcy5uYW1lLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgaWYgKHRoaXMua3VzdG9EYlByb3BzLmhvdENhY2hlUGVyaW9kKSB7XG4gICAgICBrdXN0b0RhdGFiYXNlLmFkZE92ZXJyaWRlKFxuICAgICAgICBcImhvdF9jYWNoZV9wZXJpb2RcIixcbiAgICAgICAgdGhpcy5rdXN0b0RiUHJvcHMuaG90Q2FjaGVQZXJpb2QsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGhpcy5rdXN0b0RiUHJvcHMuc29mdERlbGV0ZVBlcmlvZCkge1xuICAgICAga3VzdG9EYXRhYmFzZS5hZGRPdmVycmlkZShcbiAgICAgICAgXCJzb2Z0X2RlbGV0ZV9wZXJpb2RcIixcbiAgICAgICAgdGhpcy5rdXN0b0RiUHJvcHMuc29mdERlbGV0ZVBlcmlvZCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gT3V0cHV0c1xuICAgIHRoaXMuaWQgPSBrdXN0b0RhdGFiYXNlLmlkO1xuICAgIGNvbnN0IGNka3RmVGVycmFmb3JtT3V0cHV0S3VzdG9EYklkID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBcImlkXCIsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiB0aGlzLmlkLFxuICAgICAgfSxcbiAgICApO1xuICAgIGNka3RmVGVycmFmb3JtT3V0cHV0S3VzdG9EYklkLm92ZXJyaWRlTG9naWNhbElkKFwiaWRcIik7XG4gIH1cblxuICBwdWJsaWMgYWRkUGVybWlzc2lvbihrdXN0b0RhdGFiYXNlQWNjZXNzUHJvcHM6IERhdGFiYXNlQWNjZXNzUHJvcHMpIHtcbiAgICBuZXcgS3VzdG9EYXRhYmFzZVByaW5jaXBhbEFzc2lnbm1lbnQoXG4gICAgICB0aGlzLFxuICAgICAgYGt1c3RvLWRiLSR7a3VzdG9EYXRhYmFzZUFjY2Vzc1Byb3BzLm5hbWV9LWFjY2Vzc2AsXG4gICAgICB7XG4gICAgICAgIG5hbWU6IGt1c3RvRGF0YWJhc2VBY2Nlc3NQcm9wcy5uYW1lLFxuICAgICAgICByZXNvdXJjZUdyb3VwTmFtZTogdGhpcy5yZyxcbiAgICAgICAgY2x1c3Rlck5hbWU6IHRoaXMua3VzdG9Qcm9wcy5uYW1lLFxuICAgICAgICBkYXRhYmFzZU5hbWU6IHRoaXMua3VzdG9EYlByb3BzLm5hbWUsXG4gICAgICAgIHRlbmFudElkOiBrdXN0b0RhdGFiYXNlQWNjZXNzUHJvcHMudGVuYW50SWQsXG4gICAgICAgIHByaW5jaXBhbElkOiBrdXN0b0RhdGFiYXNlQWNjZXNzUHJvcHMucHJpbmNpcGFsSWQsXG4gICAgICAgIHByaW5jaXBhbFR5cGU6IGt1c3RvRGF0YWJhc2VBY2Nlc3NQcm9wcy5wcmluY2lwYWxUeXBlLFxuICAgICAgICByb2xlOiBrdXN0b0RhdGFiYXNlQWNjZXNzUHJvcHMucm9sZSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUYWJsZSh0YWJsZU5hbWU6IHN0cmluZywgdGFibGVTY2hlbWE6IFRhYmxlU2NoZW1hUHJvcHNbXSkge1xuICAgIGNvbnN0IHNjaGVtYUNvbnRlbnQgPSB0YWJsZVNjaGVtYVxuICAgICAgLm1hcCgoY29sdW1uKSA9PiB7XG4gICAgICAgIHJldHVybiBgJHtjb2x1bW4uY29sdW1uTmFtZX06JHtjb2x1bW4uY29sdW1uVHlwZX1gO1xuICAgICAgfSlcbiAgICAgIC5qb2luKFwiLCBcIik7XG4gICAgY29uc3Qgc2NyaXB0Q29udGVudCA9IGAuY3JlYXRlIHRhYmxlICR7dGFibGVOYW1lfSAoICR7c2NoZW1hQ29udGVudH0gKWA7XG5cbiAgICBuZXcgS3VzdG9TY3JpcHQoXG4gICAgICB0aGlzLFxuICAgICAgYGt1c3RvLWRiLSR7dGhpcy5rdXN0b0RiUHJvcHMubmFtZX0tdGFibGUtJHt0YWJsZU5hbWV9YCxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogdGFibGVOYW1lLFxuICAgICAgICBkYXRhYmFzZUlkOiB0aGlzLmlkLFxuICAgICAgICBzY3JpcHRDb250ZW50OiBzY3JpcHRDb250ZW50LFxuICAgICAgICBjb250aW51ZU9uRXJyb3JzRW5hYmxlZDogZmFsc2UsXG4gICAgICAgIGZvcmNlQW5VcGRhdGVXaGVuVmFsdWVDaGFuZ2VkOiBNZDUuaGFzaFN0cihzY3JpcHRDb250ZW50KSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRTY3JpcHQoc2NyaXB0TmFtZTogc3RyaW5nLCBzY3JpcHRDb250ZW50OiBzdHJpbmcpIHtcbiAgICBuZXcgS3VzdG9TY3JpcHQoXG4gICAgICB0aGlzLFxuICAgICAgYGt1c3RvLWRiLSR7dGhpcy5rdXN0b0RiUHJvcHMubmFtZX0tc2NyaXB0LSR7c2NyaXB0TmFtZX1gLFxuICAgICAge1xuICAgICAgICBuYW1lOiBgc2NyaXB0LSR7c2NyaXB0TmFtZX1gLFxuICAgICAgICBkYXRhYmFzZUlkOiB0aGlzLmlkLFxuICAgICAgICBzY3JpcHRDb250ZW50OiBzY3JpcHRDb250ZW50LFxuICAgICAgICBjb250aW51ZU9uRXJyb3JzRW5hYmxlZDogZmFsc2UsXG4gICAgICAgIGZvcmNlQW5VcGRhdGVXaGVuVmFsdWVDaGFuZ2VkOiBNZDUuaGFzaFN0cihzY3JpcHRDb250ZW50KSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxufVxuIl19
179
+ Database[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_kusto.Database", version: "0.0.3-pre.7" };
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUta3VzdG8vbGliL2RhdGFiYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0VBQTJFO0FBQzNFLHlIQUFtSDtBQUNuSCwyRUFBdUU7QUFDdkUsK0JBQStCO0FBQy9CLDJDQUF1QztBQUN2QyxtQ0FBNkI7QUFxRDdCLE1BQWEsUUFBUyxTQUFRLHNCQUFTO0lBTXJDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BK0JHO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxZQUEyQjtRQUNuRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxVQUFVLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFDaEQsSUFBSSxDQUFDLEVBQUUsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDO1FBRTNELE1BQU0sYUFBYSxHQUFHLElBQUksOEJBQWEsQ0FDckMsSUFBSSxFQUNKLFlBQVksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsRUFDcEM7WUFDRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJO1lBQzVCLFFBQVEsRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsUUFBUTtZQUM5RCxpQkFBaUIsRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsSUFBSTtZQUNuRSxXQUFXLEVBQUUsWUFBWSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSTtTQUNoRCxDQUNGLENBQUM7UUFFRixJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxFQUFFO1lBQ3BDLGFBQWEsQ0FBQyxXQUFXLENBQ3ZCLGtCQUFrQixFQUNsQixJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FDakMsQ0FBQztTQUNIO1FBQ0QsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFFO1lBQ3RDLGFBQWEsQ0FBQyxXQUFXLENBQ3ZCLG9CQUFvQixFQUNwQixJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUNuQyxDQUFDO1NBQ0g7UUFFRCxVQUFVO1FBQ1YsSUFBSSxDQUFDLEVBQUUsR0FBRyxhQUFhLENBQUMsRUFBRSxDQUFDO1FBQzNCLE1BQU0sNkJBQTZCLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUM3RCxJQUFJLEVBQ0osSUFBSSxFQUNKO1lBQ0UsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFO1NBQ2YsQ0FDRixDQUFDO1FBQ0YsNkJBQTZCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BNEJHO0lBQ0ksYUFBYSxDQUFDLHdCQUE2QztRQUNoRSxJQUFJLHNFQUFnQyxDQUNsQyxJQUFJLEVBQ0osWUFBWSx3QkFBd0IsQ0FBQyxJQUFJLFNBQVMsRUFDbEQ7WUFDRSxJQUFJLEVBQUUsd0JBQXdCLENBQUMsSUFBSTtZQUNuQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUMxQixXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJO1lBQ2pDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUk7WUFDcEMsUUFBUSxFQUFFLHdCQUF3QixDQUFDLFFBQVE7WUFDM0MsV0FBVyxFQUFFLHdCQUF3QixDQUFDLFdBQVc7WUFDakQsYUFBYSxFQUFFLHdCQUF3QixDQUFDLGFBQWE7WUFDckQsSUFBSSxFQUFFLHdCQUF3QixDQUFDLElBQUk7U0FDcEMsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQW9CRztJQUNJLFFBQVEsQ0FBQyxTQUFpQixFQUFFLFdBQStCO1FBQ2hFLE1BQU0sYUFBYSxHQUFHLFdBQVc7YUFDOUIsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDZCxPQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDckQsQ0FBQyxDQUFDO2FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2QsTUFBTSxhQUFhLEdBQUcsaUJBQWlCLFNBQVMsTUFBTSxhQUFhLElBQUksQ0FBQztRQUV4RSxJQUFJLDBCQUFXLENBQ2IsSUFBSSxFQUNKLFlBQVksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLFVBQVUsU0FBUyxFQUFFLEVBQ3ZEO1lBQ0UsSUFBSSxFQUFFLFNBQVM7WUFDZixVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDbkIsYUFBYSxFQUFFLGFBQWE7WUFDNUIsdUJBQXVCLEVBQUUsS0FBSztZQUM5Qiw2QkFBNkIsRUFBRSxZQUFHLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztTQUMxRCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bb0JHO0lBQ0ksU0FBUyxDQUFDLFVBQWtCLEVBQUUsYUFBcUI7UUFDeEQsSUFBSSwwQkFBVyxDQUNiLElBQUksRUFDSixZQUFZLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxXQUFXLFVBQVUsRUFBRSxFQUN6RDtZQUNFLElBQUksRUFBRSxVQUFVLFVBQVUsRUFBRTtZQUM1QixVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDbkIsYUFBYSxFQUFFLGFBQWE7WUFDNUIsdUJBQXVCLEVBQUUsS0FBSztZQUM5Qiw2QkFBNkIsRUFBRSxZQUFHLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztTQUMxRCxDQUNGLENBQUM7SUFDSixDQUFDOztBQXpNSCw0QkEwTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLdXN0b0RhdGFiYXNlIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9rdXN0by1kYXRhYmFzZVwiO1xuaW1wb3J0IHsgS3VzdG9EYXRhYmFzZVByaW5jaXBhbEFzc2lnbm1lbnQgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL2t1c3RvLWRhdGFiYXNlLXByaW5jaXBhbC1hc3NpZ25tZW50XCI7XG5pbXBvcnQgeyBLdXN0b1NjcmlwdCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIva3VzdG8tc2NyaXB0XCI7XG5pbXBvcnQgKiBhcyBjZGt0ZiBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBNZDUgfSBmcm9tIFwidHMtbWQ1XCI7XG5pbXBvcnQgeyBDbHVzdGVyUHJvcHMsIENsdXN0ZXIgfSBmcm9tIFwiLi9jbHVzdGVyXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgQXp1cmUgS3VzdG8gY2x1c3RlciB0byB3aGljaCB0aGlzIGRhdGFiYXNlIGJlbG9uZ3MuXG4gICAqL1xuICByZWFkb25seSBrdXN0bzogQ2x1c3RlcjtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBLdXN0byBEYXRhYmFzZSB0byBjcmVhdGUuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdGltZSB0aGUgZGF0YSB0aGF0IHNob3VsZCBiZSBrZXB0IGluIGNhY2hlIGZvciBmYXN0IHF1ZXJpZXMgYXMgSVNPIDg2MDEgdGltZXNwYW4uXG4gICAqIERlZmF1bHQgaXMgdW5saW1pdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgaG90Q2FjaGVQZXJpb2Q/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdGltZSB0aGUgZGF0YSBzaG91bGQgYmUga2VwdCBiZWZvcmUgaXQgc3RvcHMgYmVpbmcgYWNjZXNzaWJsZSB0byBxdWVyaWVzIGFzIElTTyA4NjAxIHRpbWVzcGFuLlxuICAgKiBEZWZhdWx0IGlzIHVubGltaXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHNvZnREZWxldGVQZXJpb2Q/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VBY2Nlc3NQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUga3VzdG8gcHJpbmNpcGFsIGFzc2lnbm1lbnQuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdGVuYW50IGlkIGluIHdoaWNoIHRoZSBwcmluY2lwYWwgcmVzaWRlcy5cbiAgICovXG4gIHJlYWRvbmx5IHRlbmFudElkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgb2JqZWN0IGlkIG9mIHRoZSBwcmluY2lwYWwgdG8gYXNzaWduIHRvIEt1c3RvIERhdGFiYXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJpbmNpcGFsSWQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIHRoZSBwcmluY2lwYWwuIFZhbGlkIHZhbHVlcyBpbmNsdWRlIEFwcCwgR3JvdXAsIFVzZXIuXG4gICAqL1xuICByZWFkb25seSBwcmluY2lwYWxUeXBlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZGF0YWJhc2Ugcm9sZSBhc3NpZ25lZCB0byB0aGUgcHJpbmNpcGFsLlxuICAgKiBWYWxpZCB2YWx1ZXMgaW5jbHVkZSBBZG1pbiwgSW5nZXN0b3IsIE1vbml0b3IsIFVucmVzdHJpY3RlZFZpZXdlciwgVXNlciBhbmQgVmlld2VyLlxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlU2NoZW1hUHJvcHMge1xuICByZWFkb25seSBjb2x1bW5OYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvbHVtblR5cGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIERhdGFiYXNlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGt1c3RvRGJQcm9wczogRGF0YWJhc2VQcm9wcztcbiAgcHVibGljIHJlYWRvbmx5IGt1c3RvUHJvcHM6IENsdXN0ZXJQcm9wcztcbiAgcHVibGljIHJlYWRvbmx5IHJnOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBpZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIGEgS3VzdG8gRGF0YWJhc2Ugd2l0aGluIGFuIEF6dXJlIEt1c3RvIENsdXN0ZXIuXG4gICAqXG4gICAqIFRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIHRoZSBjcmVhdGlvbiBhbmQgbWFuYWdlbWVudCBvZiBhIGRhdGFiYXNlIGluIEF6dXJlIERhdGEgRXhwbG9yZXIgKEt1c3RvKSxcbiAgICogd2hpY2ggc3RvcmVzIGRhdGEgdGFibGVzIGFuZCBwcm92aWRlcyBhIHF1ZXJ5IGVuZ2luZS4gQSBLdXN0byBkYXRhYmFzZSBpcyBhIGxvZ2ljYWwgZ3JvdXAgb2YgdGFibGVzXG4gICAqIGFuZCBpcyBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyBLdXN0byBjbHVzdGVyLiBUaGUgZGF0YWJhc2Ugc3VwcG9ydHMgY29uZmlndXJhdGlvbnMgc3VjaCBhc1xuICAgKiBob3QgY2FjaGUgcGVyaW9kIGFuZCBzb2Z0IGRlbGV0ZSBwZXJpb2QgdG8gb3B0aW1pemUgcGVyZm9ybWFuY2UgYW5kIGRhdGEgcmV0ZW50aW9uIGFjY29yZGluZyB0b1xuICAgKiBzcGVjaWZpYyB3b3JrbG9hZCByZXF1aXJlbWVudHMuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3QsIHR5cGljYWxseSByZXByZXNlbnRpbmcgdGhlIENsb3VkIERldmVsb3BtZW50IEtpdCAoQ0RLKSBzdGFjay5cbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlIG9mIHRoZSBLdXN0byBkYXRhYmFzZS5cbiAgICogQHBhcmFtIGt1c3RvRGJQcm9wcyAtIFRoZSBwcm9wZXJ0aWVzIHJlcXVpcmVkIHRvIGNvbmZpZ3VyZSB0aGUgS3VzdG8gZGF0YWJhc2UuIFRoZXNlIGluY2x1ZGU6XG4gICAqICAgICAgICAgICAgICAgICAgICAgICAtIGBrdXN0b2A6IFJlZmVyZW5jZSB0byB0aGUgS3VzdG8gY2x1c3RlciB0byB3aGljaCB0aGUgZGF0YWJhc2Ugd2lsbCBiZWxvbmcuXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAtIGBuYW1lYDogVGhlIG5hbWUgb2YgdGhlIGRhdGFiYXNlIHRvIGJlIGNyZWF0ZWQgd2l0aGluIHRoZSBLdXN0byBjbHVzdGVyLlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgLSBgaG90Q2FjaGVQZXJpb2RgOiBPcHRpb25hbC4gU3BlY2lmaWVzIHRoZSBkdXJhdGlvbiB0aGF0IGRhdGEgc2hvdWxkIGJlIGtlcHQgaW4gY2FjaGUgZm9yIGZhc3RlciBxdWVyeSBwZXJmb3JtYW5jZS5cbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhwcmVzc2VkIGluIElTTyA4NjAxIGR1cmF0aW9uIGZvcm1hdC5cbiAgICogICAgICAgICAgICAgICAgICAgICAgIC0gYHNvZnREZWxldGVQZXJpb2RgOiBPcHRpb25hbC4gU3BlY2lmaWVzIHRoZSBkdXJhdGlvbiB0aGF0IGRhdGEgc2hvdWxkIGJlIHJldGFpbmVkIGJlZm9yZSBpdCBzdG9wcyBiZWluZyBhY2Nlc3NpYmxlLlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4cHJlc3NlZCBpbiBJU08gODYwMSBkdXJhdGlvbiBmb3JtYXQuXG4gICAqXG4gICAqIEV4YW1wbGUgdXNhZ2U6XG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgbXlEYXRhYmFzZSA9IG5ldyBEYXRhYmFzZSh0aGlzLCAnTXlLdXN0b0RhdGFiYXNlJywge1xuICAgKiAgIGt1c3RvOiBteUt1c3RvQ2x1c3RlcixcbiAgICogICBuYW1lOiAnQW5hbHl0aWNzREInLFxuICAgKiAgIGhvdENhY2hlUGVyaW9kOiAnUDMwRCcsICAvLyAzMCBkYXlzXG4gICAqICAgc29mdERlbGV0ZVBlcmlvZDogJ1AzNjVEJyAvLyAzNjUgZGF5c1xuICAgKiB9KTtcbiAgICogYGBgXG4gICAqXG4gICAqIFRoaXMgY2xhc3Mgc2V0cyB1cCB0aGUgZGF0YWJhc2UgY29uZmlndXJhdGlvbnMgYW5kIGludGVncmF0ZXMgaXQgd2l0aGluIHRoZSBzcGVjaWZpZWQgS3VzdG8gY2x1c3RlcixcbiAgICogcHJvdmlkaW5nIGNhcGFiaWxpdGllcyB0byBtYW5hZ2UgYW5kIHF1ZXJ5IGxhcmdlIGRhdGFzZXRzIGVmZmVjdGl2ZWx5LlxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywga3VzdG9EYlByb3BzOiBEYXRhYmFzZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLmt1c3RvRGJQcm9wcyA9IGt1c3RvRGJQcm9wcztcbiAgICB0aGlzLmt1c3RvUHJvcHMgPSBrdXN0b0RiUHJvcHMua3VzdG8ua3VzdG9Qcm9wcztcbiAgICB0aGlzLnJnID0ga3VzdG9EYlByb3BzLmt1c3RvLmt1c3RvUHJvcHMucmVzb3VyY2VHcm91cC5uYW1lO1xuXG4gICAgY29uc3Qga3VzdG9EYXRhYmFzZSA9IG5ldyBLdXN0b0RhdGFiYXNlKFxuICAgICAgdGhpcyxcbiAgICAgIGBrdXN0by1kYi0ke3RoaXMua3VzdG9EYlByb3BzLm5hbWV9YCxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogdGhpcy5rdXN0b0RiUHJvcHMubmFtZSxcbiAgICAgICAgbG9jYXRpb246IGt1c3RvRGJQcm9wcy5rdXN0by5rdXN0b1Byb3BzLnJlc291cmNlR3JvdXAubG9jYXRpb24sXG4gICAgICAgIHJlc291cmNlR3JvdXBOYW1lOiBrdXN0b0RiUHJvcHMua3VzdG8ua3VzdG9Qcm9wcy5yZXNvdXJjZUdyb3VwLm5hbWUsXG4gICAgICAgIGNsdXN0ZXJOYW1lOiBrdXN0b0RiUHJvcHMua3VzdG8ua3VzdG9Qcm9wcy5uYW1lLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgaWYgKHRoaXMua3VzdG9EYlByb3BzLmhvdENhY2hlUGVyaW9kKSB7XG4gICAgICBrdXN0b0RhdGFiYXNlLmFkZE92ZXJyaWRlKFxuICAgICAgICBcImhvdF9jYWNoZV9wZXJpb2RcIixcbiAgICAgICAgdGhpcy5rdXN0b0RiUHJvcHMuaG90Q2FjaGVQZXJpb2QsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGhpcy5rdXN0b0RiUHJvcHMuc29mdERlbGV0ZVBlcmlvZCkge1xuICAgICAga3VzdG9EYXRhYmFzZS5hZGRPdmVycmlkZShcbiAgICAgICAgXCJzb2Z0X2RlbGV0ZV9wZXJpb2RcIixcbiAgICAgICAgdGhpcy5rdXN0b0RiUHJvcHMuc29mdERlbGV0ZVBlcmlvZCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gT3V0cHV0c1xuICAgIHRoaXMuaWQgPSBrdXN0b0RhdGFiYXNlLmlkO1xuICAgIGNvbnN0IGNka3RmVGVycmFmb3JtT3V0cHV0S3VzdG9EYklkID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBcImlkXCIsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiB0aGlzLmlkLFxuICAgICAgfSxcbiAgICApO1xuICAgIGNka3RmVGVycmFmb3JtT3V0cHV0S3VzdG9EYklkLm92ZXJyaWRlTG9naWNhbElkKFwiaWRcIik7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGRhdGFiYXNlIHByaW5jaXBhbCBhc3NpZ25tZW50IGluIHRoZSBLdXN0byBjbHVzdGVyLCBhc3NpZ25pbmcgc3BlY2lmaWVkIGFjY2VzcyByaWdodHMgdG8gYSBwcmluY2lwYWwuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gZ3JhbnQgYWNjZXNzIHBlcm1pc3Npb25zIHRvIGEgc3BlY2lmaWMgdXNlciwgZ3JvdXAsIG9yIHNlcnZpY2UgcHJpbmNpcGFsIHdpdGhpbiBhbiBBenVyZSBBY3RpdmUgRGlyZWN0b3J5LlxuICAgKiBUaGVzZSBwZXJtaXNzaW9ucyBkZXRlcm1pbmUgdGhlIGxldmVsIG9mIGFjY2VzcyB0aGF0IHRoZSBwcmluY2lwYWwgaGFzIG92ZXIgdGhlIEt1c3RvIGRhdGFiYXNlLCBzdWNoIGFzIHZpZXdpbmcsIGluZ2VzdGluZywgb3IgbWFuYWdpbmcgZGF0YS5cbiAgICogVGhlIGFzc2lnbm1lbnQgaXMgbWFkZSBieSBjcmVhdGluZyBhIEt1c3RvRGF0YWJhc2VQcmluY2lwYWxBc3NpZ25tZW50IHJlc291cmNlLCBzcGVjaWZ5aW5nIHRoZSBwcmluY2lwYWwgZGV0YWlscyBhbmQgdGhlIHR5cGUgb2Ygcm9sZVxuICAgKiB0aGV5IHNob3VsZCBhc3N1bWUuXG4gICAqXG4gICAqIEBwYXJhbSBrdXN0b0RhdGFiYXNlQWNjZXNzUHJvcHMgLSBUaGUgcHJvcGVydGllcyBkZWZpbmluZyB0aGUgcHJpbmNpcGFsIGFzc2lnbm1lbnQuIFRoaXMgaW5jbHVkZXM6XG4gICAqICAgLSBgbmFtZWA6IEEgdW5pcXVlIG5hbWUgaWRlbnRpZnlpbmcgdGhpcyBwcmluY2lwYWwgYXNzaWdubWVudC5cbiAgICogICAtIGB0ZW5hbnRJZGA6IFRoZSBBenVyZSBBY3RpdmUgRGlyZWN0b3J5IHRlbmFudCBJRCB3aGVyZSB0aGUgcHJpbmNpcGFsIHJlc2lkZXMuXG4gICAqICAgLSBgcHJpbmNpcGFsSWRgOiBUaGUgb2JqZWN0IElEIG9mIHRoZSBwcmluY2lwYWwgKHVzZXIsIGdyb3VwLCBvciBzZXJ2aWNlIHByaW5jaXBhbCkgaW4gQXp1cmUgQUQuXG4gICAqICAgLSBgcHJpbmNpcGFsVHlwZWA6IFRoZSB0eXBlIG9mIHByaW5jaXBhbCAoZS5nLiwgVXNlciwgR3JvdXAsIEFwcCkuXG4gICAqICAgLSBgcm9sZWA6IFRoZSBkYXRhYmFzZSByb2xlIGFzc2lnbmVkIHRvIHRoZSBwcmluY2lwYWwuIFJvbGVzIGNhbiBpbmNsdWRlIEFkbWluLCBVc2VyLCBWaWV3ZXIsIGFtb25nIG90aGVycy5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBteURhdGFiYXNlLmFkZFBlcm1pc3Npb24oe1xuICAgKiAgIG5hbWU6ICdEYXRhU2NpZW5jZVRlYW1BY2Nlc3MnLFxuICAgKiAgIHRlbmFudElkOiAndGVuYW50LWlkJyxcbiAgICogICBwcmluY2lwYWxJZDogJ3ByaW5jaXBhbC1pZCcsXG4gICAqICAgcHJpbmNpcGFsVHlwZTogJ0dyb3VwJyxcbiAgICogICByb2xlOiAnVmlld2VyJ1xuICAgKiB9KTtcbiAgICogYGBgXG4gICAqIFRoaXMgbWV0aG9kIGNyZWF0ZXMgYSBuZXcgcHJpbmNpcGFsIGFzc2lnbm1lbnQsIGVuYWJsaW5nIHNwZWNpZmllZCBhY2Nlc3MgY29udHJvbHMgZm9yIHRoZSBwcmluY2lwYWxcbiAgICogb24gdGhlIEt1c3RvIGRhdGFiYXNlIGJhc2VkIG9uIHRoZSByb2xlIGFzc2lnbmVkLiBJdCBpcyBjcnVjaWFsIGZvciBtYW5hZ2luZyBzZWN1cml0eSBhbmQgYWNjZXNzXG4gICAqIGdvdmVybmFuY2Ugd2l0aGluIHRoZSBLdXN0byBlbnZpcm9ubWVudC5cbiAgICovXG4gIHB1YmxpYyBhZGRQZXJtaXNzaW9uKGt1c3RvRGF0YWJhc2VBY2Nlc3NQcm9wczogRGF0YWJhc2VBY2Nlc3NQcm9wcykge1xuICAgIG5ldyBLdXN0b0RhdGFiYXNlUHJpbmNpcGFsQXNzaWdubWVudChcbiAgICAgIHRoaXMsXG4gICAgICBga3VzdG8tZGItJHtrdXN0b0RhdGFiYXNlQWNjZXNzUHJvcHMubmFtZX0tYWNjZXNzYCxcbiAgICAgIHtcbiAgICAgICAgbmFtZToga3VzdG9EYXRhYmFzZUFjY2Vzc1Byb3BzLm5hbWUsXG4gICAgICAgIHJlc291cmNlR3JvdXBOYW1lOiB0aGlzLnJnLFxuICAgICAgICBjbHVzdGVyTmFtZTogdGhpcy5rdXN0b1Byb3BzLm5hbWUsXG4gICAgICAgIGRhdGFiYXNlTmFtZTogdGhpcy5rdXN0b0RiUHJvcHMubmFtZSxcbiAgICAgICAgdGVuYW50SWQ6IGt1c3RvRGF0YWJhc2VBY2Nlc3NQcm9wcy50ZW5hbnRJZCxcbiAgICAgICAgcHJpbmNpcGFsSWQ6IGt1c3RvRGF0YWJhc2VBY2Nlc3NQcm9wcy5wcmluY2lwYWxJZCxcbiAgICAgICAgcHJpbmNpcGFsVHlwZToga3VzdG9EYXRhYmFzZUFjY2Vzc1Byb3BzLnByaW5jaXBhbFR5cGUsXG4gICAgICAgIHJvbGU6IGt1c3RvRGF0YWJhc2VBY2Nlc3NQcm9wcy5yb2xlLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBuZXcgdGFibGUgdG8gYW4gZXhpc3RpbmcgQXp1cmUgS3VzdG8gZGF0YWJhc2UuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGNyZWF0ZXMgYSB0YWJsZSB3aXRoaW4gdGhlIHNwZWNpZmllZCBLdXN0byBkYXRhYmFzZSB1c2luZyBhIGdpdmVuIHNjaGVtYS4gVGFibGVzIGluIEt1c3RvIHN0b3JlIHN0cnVjdHVyZWQgZGF0YSB3aXRoXG4gICAqIGRlZmluZWQgY29sdW1ucyBhbmQgdHlwZXMsIHdoaWNoIGFyZSBjcnVjaWFsIGZvciBzdG9yaW5nIGFuZCBxdWVyeWluZyBsYXJnZSBkYXRhc2V0cyBlZmZpY2llbnRseS4gVGhlIG1ldGhvZCBjb25zdHJ1Y3RzIGEgS3VzdG9cbiAgICogRGF0YSBFeHBsb3JlciBjb250cm9sIGNvbW1hbmQgdG8gY3JlYXRlIHRoZSB0YWJsZSBhbmQgdGhlbiBleGVjdXRlcyB0aGlzIGNvbW1hbmQgd2l0aGluIHRoZSBjb250ZXh0IG9mIHRoZSBkYXRhYmFzZS5cbiAgICpcbiAgICogQHBhcmFtIHRhYmxlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSB0YWJsZSB0byBjcmVhdGUsIHdoaWNoIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgZGF0YWJhc2UuXG4gICAqIEBwYXJhbSB0YWJsZVNjaGVtYSAtIEFuIGFycmF5IG9mIHNjaGVtYSBwcm9wZXJ0aWVzIGRlZmluaW5nIHRoZSBjb2x1bW5zIG9mIHRoZSB0YWJsZSwgaW5jbHVkaW5nIGNvbHVtbiBuYW1lcyBhbmQgdGhlaXIgZGF0YSB0eXBlcy5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBteURhdGFiYXNlLmFkZFRhYmxlKCdTYWxlc0RhdGEnLCBbXG4gICAqICAgeyBjb2x1bW5OYW1lOiAnVHJhbnNhY3Rpb25JZCcsIGNvbHVtblR5cGU6ICdpbnQnIH0sXG4gICAqICAgeyBjb2x1bW5OYW1lOiAnVHJhbnNhY3Rpb25EYXRlJywgY29sdW1uVHlwZTogJ2RhdGV0aW1lJyB9LFxuICAgKiAgIHsgY29sdW1uTmFtZTogJ0Ftb3VudCcsIGNvbHVtblR5cGU6ICdyZWFsJyB9XG4gICAqIF0pO1xuICAgKiBgYGBcbiAgICogVGhpcyBtZXRob2QgY29uc3RydWN0cyB0aGUgY29tbWFuZCB0byBjcmVhdGUgdGhlIHRhYmxlIGFuZCBhcHBsaWVzIGl0IGRpcmVjdGx5IHdpdGhpbiB0aGUgS3VzdG8gZGF0YWJhc2UsXG4gICAqIGVuc3VyaW5nIHRoZSB0YWJsZSBpcyByZWFkeSBmb3IgZGF0YSBpbmdlc3Rpb24gYW5kIHF1ZXJ5aW5nLlxuICAgKi9cbiAgcHVibGljIGFkZFRhYmxlKHRhYmxlTmFtZTogc3RyaW5nLCB0YWJsZVNjaGVtYTogVGFibGVTY2hlbWFQcm9wc1tdKSB7XG4gICAgY29uc3Qgc2NoZW1hQ29udGVudCA9IHRhYmxlU2NoZW1hXG4gICAgICAubWFwKChjb2x1bW4pID0+IHtcbiAgICAgICAgcmV0dXJuIGAke2NvbHVtbi5jb2x1bW5OYW1lfToke2NvbHVtbi5jb2x1bW5UeXBlfWA7XG4gICAgICB9KVxuICAgICAgLmpvaW4oXCIsIFwiKTtcbiAgICBjb25zdCBzY3JpcHRDb250ZW50ID0gYC5jcmVhdGUgdGFibGUgJHt0YWJsZU5hbWV9ICggJHtzY2hlbWFDb250ZW50fSApYDtcblxuICAgIG5ldyBLdXN0b1NjcmlwdChcbiAgICAgIHRoaXMsXG4gICAgICBga3VzdG8tZGItJHt0aGlzLmt1c3RvRGJQcm9wcy5uYW1lfS10YWJsZS0ke3RhYmxlTmFtZX1gLFxuICAgICAge1xuICAgICAgICBuYW1lOiB0YWJsZU5hbWUsXG4gICAgICAgIGRhdGFiYXNlSWQ6IHRoaXMuaWQsXG4gICAgICAgIHNjcmlwdENvbnRlbnQ6IHNjcmlwdENvbnRlbnQsXG4gICAgICAgIGNvbnRpbnVlT25FcnJvcnNFbmFibGVkOiBmYWxzZSxcbiAgICAgICAgZm9yY2VBblVwZGF0ZVdoZW5WYWx1ZUNoYW5nZWQ6IE1kNS5oYXNoU3RyKHNjcmlwdENvbnRlbnQpLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYW5kIGV4ZWN1dGVzIGEgY29udHJvbCBjb21tYW5kIG9yIHNjcmlwdCB3aXRoaW4gdGhlIEt1c3RvIGRhdGFiYXNlLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBmYWNpbGl0YXRlcyB0aGUgZXhlY3V0aW9uIG9mIEt1c3RvIFF1ZXJ5IExhbmd1YWdlIChLUUwpIHNjcmlwdHMgb3IgY29udHJvbCBjb21tYW5kcyB3aXRoaW4gdGhlIHNwZWNpZmllZFxuICAgKiBLdXN0byBkYXRhYmFzZS4gU2NyaXB0cyBjYW4gcGVyZm9ybSBhIHZhcmlldHkgb2YgZnVuY3Rpb25zLCBmcm9tIHNjaGVtYSBtb2RpZmljYXRpb25zLCBsaWtlIGFkZGluZyBuZXcgdGFibGVzIG9yIGFsdGVyaW5nXG4gICAqIGV4aXN0aW5nIG9uZXMsIHRvIGRhdGEgbWFuYWdlbWVudCBvcGVyYXRpb25zLCBzdWNoIGFzIGRhdGEgaW5nZXN0aW9uIG9yIGNsZWFudXAgdGFza3MuIEVhY2ggc2NyaXB0IGlzIGV4ZWN1dGVkIGFzIGFcbiAgICogS3VzdG9TY3JpcHQgcmVzb3VyY2UsIHdoaWNoIGVuc3VyZXMgdGhhdCB0aGUgc2NyaXB0IGlzIGFwcGxpZWQgY29ycmVjdGx5IGFuZCBhdG9taWNhbGx5IHRvIHRoZSBkYXRhYmFzZS5cbiAgICpcbiAgICogQHBhcmFtIHNjcmlwdE5hbWUgLSBBIHVuaXF1ZSBuYW1lIGZvciB0aGUgc2NyaXB0LCB3aGljaCBoZWxwcyBpbiBpZGVudGlmeWluZyB0aGUgc2NyaXB0IHJlc291cmNlIHdpdGhpbiB0aGUgZGVwbG95bWVudC5cbiAgICogQHBhcmFtIHNjcmlwdENvbnRlbnQgLSBUaGUgS1FMIHNjcmlwdCBvciBjb250cm9sIGNvbW1hbmQgdG8gYmUgZXhlY3V0ZWQuIFRoaXMgc2hvdWxkIGJlIGEgdmFsaWQgS1FMIGNvbW1hbmQgc3RyaW5nLlxuICAgKlxuICAgKiBFeGFtcGxlIHVzYWdlOlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIG15RGF0YWJhc2UuYWRkU2NyaXB0KCdJbml0aWFsaXplU2FsZXNUYWJsZScsIGBcbiAgICogICAuY3JlYXRlIHRhYmxlIFNhbGVzRGF0YSAoVHJhbnNhY3Rpb25JZDogaW50LCBUcmFuc2FjdGlvbkRhdGU6IGRhdGV0aW1lLCBBbW91bnQ6IHJlYWwpXG4gICAqICAgLmFsdGVyLW1lcmdlIHRhYmxlIFNhbGVzRGF0YSBwb2xpY3kgcmV0ZW50aW9uc29mdGRlbGV0ZSA9IDM2NWRcbiAgICogYCk7XG4gICAqIGBgYFxuICAgKiBUaGlzIG1ldGhvZCB3aWxsIGNyZWF0ZSBhIGBLdXN0b1NjcmlwdGAgcmVzb3VyY2UgdGhhdCBlbmNhcHN1bGF0ZXMgdGhlIGNvbW1hbmQsIGVuc3VyaW5nIGl0IGlzIGV4ZWN1dGVkIGFnYWluc3QgdGhlXG4gICAqIGRhdGFiYXNlLCBhbmQgaXMgdHJhY2tlZCBhcyBwYXJ0IG9mIHRoZSByZXNvdXJjZSBtYW5hZ2VtZW50IHdpdGhpbiBBenVyZS5cbiAgICovXG4gIHB1YmxpYyBhZGRTY3JpcHQoc2NyaXB0TmFtZTogc3RyaW5nLCBzY3JpcHRDb250ZW50OiBzdHJpbmcpIHtcbiAgICBuZXcgS3VzdG9TY3JpcHQoXG4gICAgICB0aGlzLFxuICAgICAgYGt1c3RvLWRiLSR7dGhpcy5rdXN0b0RiUHJvcHMubmFtZX0tc2NyaXB0LSR7c2NyaXB0TmFtZX1gLFxuICAgICAge1xuICAgICAgICBuYW1lOiBgc2NyaXB0LSR7c2NyaXB0TmFtZX1gLFxuICAgICAgICBkYXRhYmFzZUlkOiB0aGlzLmlkLFxuICAgICAgICBzY3JpcHRDb250ZW50OiBzY3JpcHRDb250ZW50LFxuICAgICAgICBjb250aW51ZU9uRXJyb3JzRW5hYmxlZDogZmFsc2UsXG4gICAgICAgIGZvcmNlQW5VcGRhdGVXaGVuVmFsdWVDaGFuZ2VkOiBNZDUuaGFzaFN0cihzY3JpcHRDb250ZW50KSxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -112,5 +112,52 @@ export declare class Workspace extends AzureResourceWithAlert {
112
112
  readonly props: WorkspaceProps;
113
113
  resourceGroup: ResourceGroup;
114
114
  id: string;
115
+ /**
116
+ * Represents an Azure Log Analytics Workspace.
117
+ *
118
+ * This class is responsible for the creation and configuration of a Log Analytics Workspace in Azure. A Log Analytics Workspace
119
+ * is a unique environment for Azure Monitor data, where data is collected, aggregated, and serves as the administrative boundary.
120
+ * Within a workspace, data is collected from various sources and is used for analysis, visualization, and alerting. Configurations
121
+ * can include data export rules, saved queries, and custom functions to enhance data analytics capabilities.
122
+ *
123
+ * @param scope - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) stack.
124
+ * @param id - The unique identifier for this instance of the Log Analytics workspace.
125
+ * @param props - The properties required to configure the Log Analytics workspace, as defined in the WorkspaceProps interface. These include:
126
+ * - `location`: The Azure region where the workspace will be deployed.
127
+ * - `name`: The name of the workspace, which must be globally unique.
128
+ * - `resourceGroup`: The Azure Resource Group under which the workspace is deployed.
129
+ * - `sku`: Optional. The SKU of the workspace, affecting pricing and features.
130
+ * - `retention`: Optional. The number of days data will be retained in the workspace.
131
+ * - `tags`: Optional. Tags to assign to the workspace for organizational purposes.
132
+ * - `dataExport`: Optional. Configurations for exporting data to other Azure resources.
133
+ * - `functions`: Optional. Custom functions defined within the workspace for query operations.
134
+ * - `queries`: Optional. Saved queries that can be used for data analysis or visualizations.
135
+ *
136
+ * Example usage:
137
+ * ```typescript
138
+ * new Workspace(this, 'MyLogAnalyticsWorkspace', {
139
+ * location: 'East US',
140
+ * name: 'myWorkspace',
141
+ * resourceGroup: myResourceGroup,
142
+ * sku: 'PerGB2018',
143
+ * retention: 60,
144
+ * tags: { department: 'IT' },
145
+ * functions: [{
146
+ * name: 'ErrorCount',
147
+ * displayName: 'Error Count',
148
+ * query: 'AzureActivity | summarize count() by bin(timestamp, 1h), type',
149
+ * functionAlias: 'error_count',
150
+ * functionParameters: 'timestamp, type'
151
+ * }],
152
+ * queries: [{
153
+ * name: 'HighCPUUsage',
154
+ * category: 'Performance',
155
+ * displayName: 'High CPU Usage',
156
+ * query: 'Perf | where CounterName == "% Processor Time" and CounterValue > 80'
157
+ * }]
158
+ * });
159
+ * ```
160
+ * This class sets up the workspace and applies configurations, providing a centralized environment for monitoring and analytics.
161
+ */
115
162
  constructor(scope: Construct, id: string, props: WorkspaceProps);
116
163
  }
@@ -9,6 +9,53 @@ const log_analytics_workspace_1 = require("@cdktf/provider-azurerm/lib/log-analy
9
9
  const cdktf = require("cdktf");
10
10
  const lib_1 = require("../../core-azure/lib");
11
11
  class Workspace extends lib_1.AzureResourceWithAlert {
12
+ /**
13
+ * Represents an Azure Log Analytics Workspace.
14
+ *
15
+ * This class is responsible for the creation and configuration of a Log Analytics Workspace in Azure. A Log Analytics Workspace
16
+ * is a unique environment for Azure Monitor data, where data is collected, aggregated, and serves as the administrative boundary.
17
+ * Within a workspace, data is collected from various sources and is used for analysis, visualization, and alerting. Configurations
18
+ * can include data export rules, saved queries, and custom functions to enhance data analytics capabilities.
19
+ *
20
+ * @param scope - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) stack.
21
+ * @param id - The unique identifier for this instance of the Log Analytics workspace.
22
+ * @param props - The properties required to configure the Log Analytics workspace, as defined in the WorkspaceProps interface. These include:
23
+ * - `location`: The Azure region where the workspace will be deployed.
24
+ * - `name`: The name of the workspace, which must be globally unique.
25
+ * - `resourceGroup`: The Azure Resource Group under which the workspace is deployed.
26
+ * - `sku`: Optional. The SKU of the workspace, affecting pricing and features.
27
+ * - `retention`: Optional. The number of days data will be retained in the workspace.
28
+ * - `tags`: Optional. Tags to assign to the workspace for organizational purposes.
29
+ * - `dataExport`: Optional. Configurations for exporting data to other Azure resources.
30
+ * - `functions`: Optional. Custom functions defined within the workspace for query operations.
31
+ * - `queries`: Optional. Saved queries that can be used for data analysis or visualizations.
32
+ *
33
+ * Example usage:
34
+ * ```typescript
35
+ * new Workspace(this, 'MyLogAnalyticsWorkspace', {
36
+ * location: 'East US',
37
+ * name: 'myWorkspace',
38
+ * resourceGroup: myResourceGroup,
39
+ * sku: 'PerGB2018',
40
+ * retention: 60,
41
+ * tags: { department: 'IT' },
42
+ * functions: [{
43
+ * name: 'ErrorCount',
44
+ * displayName: 'Error Count',
45
+ * query: 'AzureActivity | summarize count() by bin(timestamp, 1h), type',
46
+ * functionAlias: 'error_count',
47
+ * functionParameters: 'timestamp, type'
48
+ * }],
49
+ * queries: [{
50
+ * name: 'HighCPUUsage',
51
+ * category: 'Performance',
52
+ * displayName: 'High CPU Usage',
53
+ * query: 'Perf | where CounterName == "% Processor Time" and CounterValue > 80'
54
+ * }]
55
+ * });
56
+ * ```
57
+ * This class sets up the workspace and applies configurations, providing a centralized environment for monitoring and analytics.
58
+ */
12
59
  constructor(scope, id, props) {
13
60
  super(scope, id);
14
61
  this.props = props;
@@ -75,5 +122,5 @@ class Workspace extends lib_1.AzureResourceWithAlert {
75
122
  }
76
123
  exports.Workspace = Workspace;
77
124
  _a = JSII_RTTI_SYMBOL_1;
78
- Workspace[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_loganalytics.Workspace", version: "0.0.3-pre.6" };
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLWxvZ2FuYWx5dGljcy9saWIvd29ya3NwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0dBQXdHO0FBQ3hHLHVHQUFpRztBQUNqRyxpR0FBNEY7QUFFNUYsK0JBQStCO0FBRS9CLDhDQUE4RDtBQXlIOUQsTUFBYSxTQUFVLFNBQVEsNEJBQXNCO0lBS25ELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBcUI7UUFDN0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUM7UUFFekMseUJBQXlCO1FBQ3pCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksV0FBVyxDQUFDO1FBQ3JDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDO1FBRXhDLE1BQU0sd0NBQXdDLEdBQUcsSUFBSSwrQ0FBcUIsQ0FDeEUsSUFBSSxFQUNKLGVBQWUsRUFDZjtZQUNFLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUN4QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJO1lBQzNDLGVBQWUsRUFBRSxTQUFTO1lBQzFCLEdBQUcsRUFBRSxHQUFHO1lBQ1IsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1NBQ2pCLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxFQUFFLEdBQUcsd0NBQXdDLENBQUMsRUFBRSxDQUFDO1FBRXRELEtBQUssQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2pDLElBQUksMkRBQTBCLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2xELHFCQUFxQixFQUFFLENBQUMsQ0FBQyxtQkFBbUI7Z0JBQzVDLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTztnQkFDbEIsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO2dCQUNaLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSTtnQkFDM0MsVUFBVSxFQUFFLENBQUMsQ0FBQyxVQUFVO2dCQUN4QixtQkFBbUIsRUFBRSx3Q0FBd0MsQ0FBQyxFQUFFO2FBQ2pFLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDaEMsSUFBSSxvREFBdUIsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLEVBQUUsRUFBRTtnQkFDakQsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLFdBQVcsRUFBRSxDQUFDLENBQUMsV0FBVztnQkFDMUIsYUFBYSxFQUFFLENBQUMsQ0FBQyxhQUFhO2dCQUM5QixrQkFBa0IsRUFBRSxDQUFDLENBQUMsa0JBQWtCO2dCQUN4Qyx1QkFBdUIsRUFBRSx3Q0FBd0MsQ0FBQyxFQUFFO2dCQUNwRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUk7Z0JBQ1osS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO2FBQ2YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM5QixJQUFJLG9EQUF1QixDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsRUFBRSxFQUFFO2dCQUNqRCxRQUFRLEVBQUUsQ0FBQyxDQUFDLFFBQVE7Z0JBQ3BCLFdBQVcsRUFBRSxDQUFDLENBQUMsV0FBVztnQkFDMUIsa0JBQWtCLEVBQUUsRUFBRTtnQkFDdEIsdUJBQXVCLEVBQUUsd0NBQXdDLENBQUMsRUFBRTtnQkFDcEUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJO2dCQUNaLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSzthQUNmLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsb0JBQW9CO1FBQ3BCLE1BQU0sd0JBQXdCLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUN4RCxJQUFJLEVBQ0osa0JBQWtCLEVBQ2xCO1lBQ0UsS0FBSyxFQUFFLHdDQUF3QyxDQUFDLEVBQUU7U0FDbkQsQ0FDRixDQUFDO1FBQ0YsTUFBTSwrQkFBK0IsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQy9ELElBQUksRUFDSixrQ0FBa0MsRUFDbEM7WUFDRSxLQUFLLEVBQUUsd0NBQXdDLENBQUMsZ0JBQWdCO1lBQ2hFLFNBQVMsRUFBRSxJQUFJO1NBQ2hCLENBQ0YsQ0FBQztRQUNGLE1BQU0saUNBQWlDLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUNqRSxJQUFJLEVBQ0osNEJBQTRCLEVBQzVCO1lBQ0UsS0FBSyxFQUFFLHdDQUF3QyxDQUFDLFdBQVc7U0FDNUQsQ0FDRixDQUFDO1FBRUYsZ0lBQWdJO1FBQ2hJLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDL0QsK0JBQStCLENBQUMsaUJBQWlCLENBQy9DLGtDQUFrQyxDQUNuQyxDQUFDO1FBQ0YsaUNBQWlDLENBQUMsaUJBQWlCLENBQ2pELDRCQUE0QixDQUM3QixDQUFDO0lBQ0osQ0FBQzs7QUFoR0gsOEJBaUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9nQW5hbHl0aWNzRGF0YUV4cG9ydFJ1bGUgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL2xvZy1hbmFseXRpY3MtZGF0YS1leHBvcnQtcnVsZVwiO1xuaW1wb3J0IHsgTG9nQW5hbHl0aWNzU2F2ZWRTZWFyY2ggfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL2xvZy1hbmFseXRpY3Mtc2F2ZWQtc2VhcmNoXCI7XG5pbXBvcnQgeyBMb2dBbmFseXRpY3NXb3Jrc3BhY2UgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL2xvZy1hbmFseXRpY3Mtd29ya3NwYWNlXCI7XG5pbXBvcnQgeyBSZXNvdXJjZUdyb3VwIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9yZXNvdXJjZS1ncm91cFwiO1xuaW1wb3J0ICogYXMgY2RrdGYgZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQXp1cmVSZXNvdXJjZVdpdGhBbGVydCB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYlwiO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIGEgZGF0YSBleHBvcnQgaW4gYSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhRXhwb3J0IHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBkYXRhIGV4cG9ydC5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBkZXN0aW5hdGlvbiByZXNvdXJjZSBmb3IgdGhlIGV4cG9ydC5cbiAgICovXG4gIHJlYWRvbmx5IGV4cG9ydERlc3RpbmF0aW9uSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogQW4gYXJyYXkgb2YgdGFibGUgbmFtZXMgdG8gYmUgaW5jbHVkZWQgaW4gdGhlIGRhdGEgZXhwb3J0LlxuICAgKi9cbiAgcmVhZG9ubHkgdGFibGVOYW1lczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBkYXRhIGV4cG9ydCBpcyBlbmFibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlZDogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBhIExvZyBBbmFseXRpY3MgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTEFGdW5jdGlvbnMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGlzcGxheSBuYW1lIGZvciB0aGUgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBkaXNwbGF5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcXVlcnkgdGhhdCB0aGUgZnVuY3Rpb24gd2lsbCBleGVjdXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgcXVlcnk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGFsaWFzIHRvIGJlIHVzZWQgZm9yIHRoZSBmdW5jdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uQWxpYXM6IHN0cmluZztcblxuICAvKipcbiAgICogQSBsaXN0IG9mIHBhcmFtZXRlcnMgZm9yIHRoZSBmdW5jdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uUGFyYW1ldGVyczogc3RyaW5nW107XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYSBzYXZlZCBxdWVyeSBpbiBhIExvZyBBbmFseXRpY3MgV29ya3NwYWNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJpZXMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHNhdmVkIHF1ZXJ5LlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY2F0ZWdvcnkgb2YgdGhlIHNhdmVkIHF1ZXJ5LlxuICAgKi9cbiAgcmVhZG9ubHkgY2F0ZWdvcnk6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRpc3BsYXkgbmFtZSBmb3IgdGhlIHNhdmVkIHF1ZXJ5LlxuICAgKi9cbiAgcmVhZG9ubHkgZGlzcGxheU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHF1ZXJ5IHN0cmluZy5cbiAgICovXG4gIHJlYWRvbmx5IHF1ZXJ5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV29ya3NwYWNlUHJvcHMge1xuICAvKipcbiAgICogVGhlIEF6dXJlIFJlZ2lvbiB0byBkZXBsb3kuXG4gICAqL1xuICByZWFkb25seSBsb2NhdGlvbjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIExvZyBBbmFseXRpY3MgV29ya3NwYWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEF6dXJlIFJlc291cmNlIEdyb3VwLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VHcm91cDogUmVzb3VyY2VHcm91cDtcbiAgLyoqXG4gICAqIFRoZSBTS1Ugb2YgdGhlIExvZyBBbmFseXRpY3MgV29ya3NwYWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2t1Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBkYXlzIG9mIHJldGVudGlvbi4gRGVmYXVsdCBpcyAzMC5cbiAgICovXG4gIHJlYWRvbmx5IHJldGVudGlvbj86IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSB0YWdzIHRvIGFzc2lnbiB0byB0aGUgUmVzb3VyY2UgR3JvdXAuXG4gICAqL1xuICByZWFkb25seSB0YWdzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgLyoqXG4gICAqIENyZWF0ZSBhIERhdGFFeHBvcnQgZm9yIHRoZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZS5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGFFeHBvcnQ/OiBEYXRhRXhwb3J0W107XG4gIC8qKlxuICAgKiBBIGNvbGxlY3Rpb24gb2YgTG9nIEFuYWx5dGljIGZ1bmN0aW9ucy5cbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9ucz86IExBRnVuY3Rpb25zW107XG4gIC8qKlxuICAgKiBBIGNvbGxlY3Rpb24gb2YgbG9nIHNhdmVkIGxvZyBhbmFseXRpY3MgcXVlcmllcy5cbiAgICovXG4gIHJlYWRvbmx5IHF1ZXJpZXM/OiBRdWVyaWVzW107XG59XG5cbmV4cG9ydCBjbGFzcyBXb3Jrc3BhY2UgZXh0ZW5kcyBBenVyZVJlc291cmNlV2l0aEFsZXJ0IHtcbiAgcmVhZG9ubHkgcHJvcHM6IFdvcmtzcGFjZVByb3BzO1xuICBwdWJsaWMgcmVzb3VyY2VHcm91cDogUmVzb3VyY2VHcm91cDtcbiAgcHVibGljIGlkOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFdvcmtzcGFjZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgICB0aGlzLnJlc291cmNlR3JvdXAgPSBwcm9wcy5yZXNvdXJjZUdyb3VwO1xuXG4gICAgLy8gUHJvdmlkZSBkZWZhdWx0IHZhbHVlc1xuICAgIGNvbnN0IHNrdSA9IHByb3BzLnNrdSA/PyBcIlBlckdCMjAxOFwiO1xuICAgIGNvbnN0IHJldGVudGlvbiA9IHByb3BzLnJldGVudGlvbiA/PyAzMDtcblxuICAgIGNvbnN0IGF6dXJlcm1Mb2dBbmFseXRpY3NXb3Jrc3BhY2VMb2dBbmFseXRpY3MgPSBuZXcgTG9nQW5hbHl0aWNzV29ya3NwYWNlKFxuICAgICAgdGhpcyxcbiAgICAgIFwibG9nX2FuYWx5dGljc1wiLFxuICAgICAge1xuICAgICAgICBsb2NhdGlvbjogcHJvcHMubG9jYXRpb24sXG4gICAgICAgIG5hbWU6IHByb3BzLm5hbWUsXG4gICAgICAgIHJlc291cmNlR3JvdXBOYW1lOiBwcm9wcy5yZXNvdXJjZUdyb3VwLm5hbWUsXG4gICAgICAgIHJldGVudGlvbkluRGF5czogcmV0ZW50aW9uLFxuICAgICAgICBza3U6IHNrdSxcbiAgICAgICAgdGFnczogcHJvcHMudGFncyxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMuaWQgPSBhenVyZXJtTG9nQW5hbHl0aWNzV29ya3NwYWNlTG9nQW5hbHl0aWNzLmlkO1xuXG4gICAgcHJvcHMuZGF0YUV4cG9ydD8uZm9yRWFjaCgodiwgaykgPT4ge1xuICAgICAgbmV3IExvZ0FuYWx5dGljc0RhdGFFeHBvcnRSdWxlKHRoaXMsIGBleHBvcnQtJHtrfWAsIHtcbiAgICAgICAgZGVzdGluYXRpb25SZXNvdXJjZUlkOiB2LmV4cG9ydERlc3RpbmF0aW9uSWQsXG4gICAgICAgIGVuYWJsZWQ6IHYuZW5hYmxlZCxcbiAgICAgICAgbmFtZTogdi5uYW1lLFxuICAgICAgICByZXNvdXJjZUdyb3VwTmFtZTogcHJvcHMucmVzb3VyY2VHcm91cC5uYW1lLFxuICAgICAgICB0YWJsZU5hbWVzOiB2LnRhYmxlTmFtZXMsXG4gICAgICAgIHdvcmtzcGFjZVJlc291cmNlSWQ6IGF6dXJlcm1Mb2dBbmFseXRpY3NXb3Jrc3BhY2VMb2dBbmFseXRpY3MuaWQsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHByb3BzLmZ1bmN0aW9ucz8uZm9yRWFjaCgodiwgaykgPT4ge1xuICAgICAgbmV3IExvZ0FuYWx5dGljc1NhdmVkU2VhcmNoKHRoaXMsIGBmdW5jdGlvbi0ke2t9YCwge1xuICAgICAgICBjYXRlZ29yeTogXCJGdW5jdGlvblwiLFxuICAgICAgICBkaXNwbGF5TmFtZTogdi5kaXNwbGF5TmFtZSxcbiAgICAgICAgZnVuY3Rpb25BbGlhczogdi5mdW5jdGlvbkFsaWFzLFxuICAgICAgICBmdW5jdGlvblBhcmFtZXRlcnM6IHYuZnVuY3Rpb25QYXJhbWV0ZXJzLFxuICAgICAgICBsb2dBbmFseXRpY3NXb3Jrc3BhY2VJZDogYXp1cmVybUxvZ0FuYWx5dGljc1dvcmtzcGFjZUxvZ0FuYWx5dGljcy5pZCxcbiAgICAgICAgbmFtZTogdi5uYW1lLFxuICAgICAgICBxdWVyeTogdi5xdWVyeSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcHJvcHMucXVlcmllcz8uZm9yRWFjaCgodiwgaykgPT4ge1xuICAgICAgbmV3IExvZ0FuYWx5dGljc1NhdmVkU2VhcmNoKHRoaXMsIGBmdW5jdGlvbi0ke2t9YCwge1xuICAgICAgICBjYXRlZ29yeTogdi5jYXRlZ29yeSxcbiAgICAgICAgZGlzcGxheU5hbWU6IHYuZGlzcGxheU5hbWUsXG4gICAgICAgIGZ1bmN0aW9uUGFyYW1ldGVyczogW10sXG4gICAgICAgIGxvZ0FuYWx5dGljc1dvcmtzcGFjZUlkOiBhenVyZXJtTG9nQW5hbHl0aWNzV29ya3NwYWNlTG9nQW5hbHl0aWNzLmlkLFxuICAgICAgICBuYW1lOiB2Lm5hbWUsXG4gICAgICAgIHF1ZXJ5OiB2LnF1ZXJ5LFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvLyBUZXJyYWZvcm0gT3V0cHV0c1xuICAgIGNvbnN0IGNka3RmVGVycmFmb3JtT3V0cHV0TGFJRCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQoXG4gICAgICB0aGlzLFxuICAgICAgXCJsb2dfYW5hbHl0aWNzX2lkXCIsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBhenVyZXJtTG9nQW5hbHl0aWNzV29ya3NwYWNlTG9nQW5hbHl0aWNzLmlkLFxuICAgICAgfSxcbiAgICApO1xuICAgIGNvbnN0IGNka3RmVGVycmFmb3JtT3V0cHV0TGFTaGFyZWRLZXkgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KFxuICAgICAgdGhpcyxcbiAgICAgIFwibG9nX2FuYWx5dGljc19wcmltYXJ5X3NoYXJlZF9rZXlcIixcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IGF6dXJlcm1Mb2dBbmFseXRpY3NXb3Jrc3BhY2VMb2dBbmFseXRpY3MucHJpbWFyeVNoYXJlZEtleSxcbiAgICAgICAgc2Vuc2l0aXZlOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICAgIGNvbnN0IGNka3RmVGVycmFmb3JtT3V0cHV0TGFXb3Jrc3BhY2VJRCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQoXG4gICAgICB0aGlzLFxuICAgICAgXCJsb2dfYW5hbHl0aWNzX3dvcmtzcGFjZV9pZFwiLFxuICAgICAge1xuICAgICAgICB2YWx1ZTogYXp1cmVybUxvZ0FuYWx5dGljc1dvcmtzcGFjZUxvZ0FuYWx5dGljcy53b3Jrc3BhY2VJZCxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIC8qVGhpcyBhbGxvd3MgdGhlIFRlcnJhZm9ybSByZXNvdXJjZSBuYW1lIHRvIG1hdGNoIHRoZSBvcmlnaW5hbCBuYW1lLiBZb3UgY2FuIHJlbW92ZSB0aGUgY2FsbCBpZiB5b3UgZG9uJ3QgbmVlZCB0aGVtIHRvIG1hdGNoLiovXG4gICAgY2RrdGZUZXJyYWZvcm1PdXRwdXRMYUlELm92ZXJyaWRlTG9naWNhbElkKFwibG9nX2FuYWx5dGljc19pZFwiKTtcbiAgICBjZGt0ZlRlcnJhZm9ybU91dHB1dExhU2hhcmVkS2V5Lm92ZXJyaWRlTG9naWNhbElkKFxuICAgICAgXCJsb2dfYW5hbHl0aWNzX3ByaW1hcnlfc2hhcmVkX2tleVwiLFxuICAgICk7XG4gICAgY2RrdGZUZXJyYWZvcm1PdXRwdXRMYVdvcmtzcGFjZUlELm92ZXJyaWRlTG9naWNhbElkKFxuICAgICAgXCJsb2dfYW5hbHl0aWNzX3dvcmtzcGFjZV9pZFwiLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
125
+ Workspace[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_loganalytics.Workspace", version: "0.0.3-pre.7" };
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLWxvZ2FuYWx5dGljcy9saWIvd29ya3NwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0dBQXdHO0FBQ3hHLHVHQUFpRztBQUNqRyxpR0FBNEY7QUFFNUYsK0JBQStCO0FBRS9CLDhDQUE4RDtBQXlIOUQsTUFBYSxTQUFVLFNBQVEsNEJBQXNCO0lBS25EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BOENHO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFxQjtRQUM3RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUV6Qyx5QkFBeUI7UUFDekIsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxXQUFXLENBQUM7UUFDckMsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUM7UUFFeEMsTUFBTSx3Q0FBd0MsR0FBRyxJQUFJLCtDQUFxQixDQUN4RSxJQUFJLEVBQ0osZUFBZSxFQUNmO1lBQ0UsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtZQUNoQixpQkFBaUIsRUFBRSxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUk7WUFDM0MsZUFBZSxFQUFFLFNBQVM7WUFDMUIsR0FBRyxFQUFFLEdBQUc7WUFDUixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7U0FDakIsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLEVBQUUsR0FBRyx3Q0FBd0MsQ0FBQyxFQUFFLENBQUM7UUFFdEQsS0FBSyxDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDakMsSUFBSSwyREFBMEIsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRTtnQkFDbEQscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLG1CQUFtQjtnQkFDNUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPO2dCQUNsQixJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUk7Z0JBQ1osaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJO2dCQUMzQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVU7Z0JBQ3hCLG1CQUFtQixFQUFFLHdDQUF3QyxDQUFDLEVBQUU7YUFDakUsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNoQyxJQUFJLG9EQUF1QixDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsRUFBRSxFQUFFO2dCQUNqRCxRQUFRLEVBQUUsVUFBVTtnQkFDcEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxXQUFXO2dCQUMxQixhQUFhLEVBQUUsQ0FBQyxDQUFDLGFBQWE7Z0JBQzlCLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxrQkFBa0I7Z0JBQ3hDLHVCQUF1QixFQUFFLHdDQUF3QyxDQUFDLEVBQUU7Z0JBQ3BFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSTtnQkFDWixLQUFLLEVBQUUsQ0FBQyxDQUFDLEtBQUs7YUFDZixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILEtBQUssQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzlCLElBQUksb0RBQXVCLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxFQUFFLEVBQUU7Z0JBQ2pELFFBQVEsRUFBRSxDQUFDLENBQUMsUUFBUTtnQkFDcEIsV0FBVyxFQUFFLENBQUMsQ0FBQyxXQUFXO2dCQUMxQixrQkFBa0IsRUFBRSxFQUFFO2dCQUN0Qix1QkFBdUIsRUFBRSx3Q0FBd0MsQ0FBQyxFQUFFO2dCQUNwRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUk7Z0JBQ1osS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO2FBQ2YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxvQkFBb0I7UUFDcEIsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQ3hELElBQUksRUFDSixrQkFBa0IsRUFDbEI7WUFDRSxLQUFLLEVBQUUsd0NBQXdDLENBQUMsRUFBRTtTQUNuRCxDQUNGLENBQUM7UUFDRixNQUFNLCtCQUErQixHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FDL0QsSUFBSSxFQUNKLGtDQUFrQyxFQUNsQztZQUNFLEtBQUssRUFBRSx3Q0FBd0MsQ0FBQyxnQkFBZ0I7WUFDaEUsU0FBUyxFQUFFLElBQUk7U0FDaEIsQ0FDRixDQUFDO1FBQ0YsTUFBTSxpQ0FBaUMsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQ2pFLElBQUksRUFDSiw0QkFBNEIsRUFDNUI7WUFDRSxLQUFLLEVBQUUsd0NBQXdDLENBQUMsV0FBVztTQUM1RCxDQUNGLENBQUM7UUFFRixnSUFBZ0k7UUFDaEksd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMvRCwrQkFBK0IsQ0FBQyxpQkFBaUIsQ0FDL0Msa0NBQWtDLENBQ25DLENBQUM7UUFDRixpQ0FBaUMsQ0FBQyxpQkFBaUIsQ0FDakQsNEJBQTRCLENBQzdCLENBQUM7SUFDSixDQUFDOztBQS9JSCw4QkFnSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2dBbmFseXRpY3NEYXRhRXhwb3J0UnVsZSB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvbG9nLWFuYWx5dGljcy1kYXRhLWV4cG9ydC1ydWxlXCI7XG5pbXBvcnQgeyBMb2dBbmFseXRpY3NTYXZlZFNlYXJjaCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvbG9nLWFuYWx5dGljcy1zYXZlZC1zZWFyY2hcIjtcbmltcG9ydCB7IExvZ0FuYWx5dGljc1dvcmtzcGFjZSB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvbG9nLWFuYWx5dGljcy13b3Jrc3BhY2VcIjtcbmltcG9ydCB7IFJlc291cmNlR3JvdXAgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3Jlc291cmNlLWdyb3VwXCI7XG5pbXBvcnQgKiBhcyBjZGt0ZiBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBenVyZVJlc291cmNlV2l0aEFsZXJ0IH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgZGVmaW5pbmcgYSBkYXRhIGV4cG9ydCBpbiBhIExvZyBBbmFseXRpY3MgV29ya3NwYWNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFFeHBvcnQge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGRhdGEgZXhwb3J0LlxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIGRlc3RpbmF0aW9uIHJlc291cmNlIGZvciB0aGUgZXhwb3J0LlxuICAgKi9cbiAgcmVhZG9ubHkgZXhwb3J0RGVzdGluYXRpb25JZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiB0YWJsZSBuYW1lcyB0byBiZSBpbmNsdWRlZCBpbiB0aGUgZGF0YSBleHBvcnQuXG4gICAqL1xuICByZWFkb25seSB0YWJsZU5hbWVzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGRhdGEgZXhwb3J0IGlzIGVuYWJsZWQuXG4gICAqL1xuICByZWFkb25seSBlbmFibGVkOiBib29sZWFuO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGRlZmluaW5nIGEgTG9nIEFuYWx5dGljcyBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMQUZ1bmN0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkaXNwbGF5IG5hbWUgZm9yIHRoZSBmdW5jdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGRpc3BsYXlOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBxdWVyeSB0aGF0IHRoZSBmdW5jdGlvbiB3aWxsIGV4ZWN1dGUuXG4gICAqL1xuICByZWFkb25seSBxdWVyeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYWxpYXMgdG8gYmUgdXNlZCBmb3IgdGhlIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb25BbGlhczogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgcGFyYW1ldGVycyBmb3IgdGhlIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb25QYXJhbWV0ZXJzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBhIHNhdmVkIHF1ZXJ5IGluIGEgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcmllcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgc2F2ZWQgcXVlcnkuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjYXRlZ29yeSBvZiB0aGUgc2F2ZWQgcXVlcnkuXG4gICAqL1xuICByZWFkb25seSBjYXRlZ29yeTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGlzcGxheSBuYW1lIGZvciB0aGUgc2F2ZWQgcXVlcnkuXG4gICAqL1xuICByZWFkb25seSBkaXNwbGF5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcXVlcnkgc3RyaW5nLlxuICAgKi9cbiAgcmVhZG9ubHkgcXVlcnk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXb3Jrc3BhY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgQXp1cmUgUmVnaW9uIHRvIGRlcGxveS5cbiAgICovXG4gIHJlYWRvbmx5IGxvY2F0aW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2UuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgQXp1cmUgUmVzb3VyY2UgR3JvdXAuXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZUdyb3VwOiBSZXNvdXJjZUdyb3VwO1xuICAvKipcbiAgICogVGhlIFNLVSBvZiB0aGUgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2UuXG4gICAqL1xuICByZWFkb25seSBza3U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIGRheXMgb2YgcmV0ZW50aW9uLiBEZWZhdWx0IGlzIDMwLlxuICAgKi9cbiAgcmVhZG9ubHkgcmV0ZW50aW9uPzogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIHRhZ3MgdG8gYXNzaWduIHRvIHRoZSBSZXNvdXJjZSBHcm91cC5cbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICAvKipcbiAgICogQ3JlYXRlIGEgRGF0YUV4cG9ydCBmb3IgdGhlIExvZyBBbmFseXRpY3MgV29ya3NwYWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YUV4cG9ydD86IERhdGFFeHBvcnRbXTtcbiAgLyoqXG4gICAqIEEgY29sbGVjdGlvbiBvZiBMb2cgQW5hbHl0aWMgZnVuY3Rpb25zLlxuICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb25zPzogTEFGdW5jdGlvbnNbXTtcbiAgLyoqXG4gICAqIEEgY29sbGVjdGlvbiBvZiBsb2cgc2F2ZWQgbG9nIGFuYWx5dGljcyBxdWVyaWVzLlxuICAgKi9cbiAgcmVhZG9ubHkgcXVlcmllcz86IFF1ZXJpZXNbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFdvcmtzcGFjZSBleHRlbmRzIEF6dXJlUmVzb3VyY2VXaXRoQWxlcnQge1xuICByZWFkb25seSBwcm9wczogV29ya3NwYWNlUHJvcHM7XG4gIHB1YmxpYyByZXNvdXJjZUdyb3VwOiBSZXNvdXJjZUdyb3VwO1xuICBwdWJsaWMgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogUmVwcmVzZW50cyBhbiBBenVyZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZS5cbiAgICpcbiAgICogVGhpcyBjbGFzcyBpcyByZXNwb25zaWJsZSBmb3IgdGhlIGNyZWF0aW9uIGFuZCBjb25maWd1cmF0aW9uIG9mIGEgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2UgaW4gQXp1cmUuIEEgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2VcbiAgICogaXMgYSB1bmlxdWUgZW52aXJvbm1lbnQgZm9yIEF6dXJlIE1vbml0b3IgZGF0YSwgd2hlcmUgZGF0YSBpcyBjb2xsZWN0ZWQsIGFnZ3JlZ2F0ZWQsIGFuZCBzZXJ2ZXMgYXMgdGhlIGFkbWluaXN0cmF0aXZlIGJvdW5kYXJ5LlxuICAgKiBXaXRoaW4gYSB3b3Jrc3BhY2UsIGRhdGEgaXMgY29sbGVjdGVkIGZyb20gdmFyaW91cyBzb3VyY2VzIGFuZCBpcyB1c2VkIGZvciBhbmFseXNpcywgdmlzdWFsaXphdGlvbiwgYW5kIGFsZXJ0aW5nLiBDb25maWd1cmF0aW9uc1xuICAgKiBjYW4gaW5jbHVkZSBkYXRhIGV4cG9ydCBydWxlcywgc2F2ZWQgcXVlcmllcywgYW5kIGN1c3RvbSBmdW5jdGlvbnMgdG8gZW5oYW5jZSBkYXRhIGFuYWx5dGljcyBjYXBhYmlsaXRpZXMuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3QsIHR5cGljYWxseSByZXByZXNlbnRpbmcgdGhlIENsb3VkIERldmVsb3BtZW50IEtpdCAoQ0RLKSBzdGFjay5cbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlIG9mIHRoZSBMb2cgQW5hbHl0aWNzIHdvcmtzcGFjZS5cbiAgICogQHBhcmFtIHByb3BzIC0gVGhlIHByb3BlcnRpZXMgcmVxdWlyZWQgdG8gY29uZmlndXJlIHRoZSBMb2cgQW5hbHl0aWNzIHdvcmtzcGFjZSwgYXMgZGVmaW5lZCBpbiB0aGUgV29ya3NwYWNlUHJvcHMgaW50ZXJmYWNlLiBUaGVzZSBpbmNsdWRlOlxuICAgKiAgICAgICAgICAgICAgICAtIGBsb2NhdGlvbmA6IFRoZSBBenVyZSByZWdpb24gd2hlcmUgdGhlIHdvcmtzcGFjZSB3aWxsIGJlIGRlcGxveWVkLlxuICAgKiAgICAgICAgICAgICAgICAtIGBuYW1lYDogVGhlIG5hbWUgb2YgdGhlIHdvcmtzcGFjZSwgd2hpY2ggbXVzdCBiZSBnbG9iYWxseSB1bmlxdWUuXG4gICAqICAgICAgICAgICAgICAgIC0gYHJlc291cmNlR3JvdXBgOiBUaGUgQXp1cmUgUmVzb3VyY2UgR3JvdXAgdW5kZXIgd2hpY2ggdGhlIHdvcmtzcGFjZSBpcyBkZXBsb3llZC5cbiAgICogICAgICAgICAgICAgICAgLSBgc2t1YDogT3B0aW9uYWwuIFRoZSBTS1Ugb2YgdGhlIHdvcmtzcGFjZSwgYWZmZWN0aW5nIHByaWNpbmcgYW5kIGZlYXR1cmVzLlxuICAgKiAgICAgICAgICAgICAgICAtIGByZXRlbnRpb25gOiBPcHRpb25hbC4gVGhlIG51bWJlciBvZiBkYXlzIGRhdGEgd2lsbCBiZSByZXRhaW5lZCBpbiB0aGUgd29ya3NwYWNlLlxuICAgKiAgICAgICAgICAgICAgICAtIGB0YWdzYDogT3B0aW9uYWwuIFRhZ3MgdG8gYXNzaWduIHRvIHRoZSB3b3Jrc3BhY2UgZm9yIG9yZ2FuaXphdGlvbmFsIHB1cnBvc2VzLlxuICAgKiAgICAgICAgICAgICAgICAtIGBkYXRhRXhwb3J0YDogT3B0aW9uYWwuIENvbmZpZ3VyYXRpb25zIGZvciBleHBvcnRpbmcgZGF0YSB0byBvdGhlciBBenVyZSByZXNvdXJjZXMuXG4gICAqICAgICAgICAgICAgICAgIC0gYGZ1bmN0aW9uc2A6IE9wdGlvbmFsLiBDdXN0b20gZnVuY3Rpb25zIGRlZmluZWQgd2l0aGluIHRoZSB3b3Jrc3BhY2UgZm9yIHF1ZXJ5IG9wZXJhdGlvbnMuXG4gICAqICAgICAgICAgICAgICAgIC0gYHF1ZXJpZXNgOiBPcHRpb25hbC4gU2F2ZWQgcXVlcmllcyB0aGF0IGNhbiBiZSB1c2VkIGZvciBkYXRhIGFuYWx5c2lzIG9yIHZpc3VhbGl6YXRpb25zLlxuICAgKlxuICAgKiBFeGFtcGxlIHVzYWdlOlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIG5ldyBXb3Jrc3BhY2UodGhpcywgJ015TG9nQW5hbHl0aWNzV29ya3NwYWNlJywge1xuICAgKiAgIGxvY2F0aW9uOiAnRWFzdCBVUycsXG4gICAqICAgbmFtZTogJ215V29ya3NwYWNlJyxcbiAgICogICByZXNvdXJjZUdyb3VwOiBteVJlc291cmNlR3JvdXAsXG4gICAqICAgc2t1OiAnUGVyR0IyMDE4JyxcbiAgICogICByZXRlbnRpb246IDYwLFxuICAgKiAgIHRhZ3M6IHsgZGVwYXJ0bWVudDogJ0lUJyB9LFxuICAgKiAgIGZ1bmN0aW9uczogW3tcbiAgICogICAgIG5hbWU6ICdFcnJvckNvdW50JyxcbiAgICogICAgIGRpc3BsYXlOYW1lOiAnRXJyb3IgQ291bnQnLFxuICAgKiAgICAgcXVlcnk6ICdBenVyZUFjdGl2aXR5IHwgc3VtbWFyaXplIGNvdW50KCkgYnkgYmluKHRpbWVzdGFtcCwgMWgpLCB0eXBlJyxcbiAgICogICAgIGZ1bmN0aW9uQWxpYXM6ICdlcnJvcl9jb3VudCcsXG4gICAqICAgICBmdW5jdGlvblBhcmFtZXRlcnM6ICd0aW1lc3RhbXAsIHR5cGUnXG4gICAqICAgfV0sXG4gICAqICAgcXVlcmllczogW3tcbiAgICogICAgIG5hbWU6ICdIaWdoQ1BVVXNhZ2UnLFxuICAgKiAgICAgY2F0ZWdvcnk6ICdQZXJmb3JtYW5jZScsXG4gICAqICAgICBkaXNwbGF5TmFtZTogJ0hpZ2ggQ1BVIFVzYWdlJyxcbiAgICogICAgIHF1ZXJ5OiAnUGVyZiB8IHdoZXJlIENvdW50ZXJOYW1lID09IFwiJSBQcm9jZXNzb3IgVGltZVwiIGFuZCBDb3VudGVyVmFsdWUgPiA4MCdcbiAgICogICB9XVxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqIFRoaXMgY2xhc3Mgc2V0cyB1cCB0aGUgd29ya3NwYWNlIGFuZCBhcHBsaWVzIGNvbmZpZ3VyYXRpb25zLCBwcm92aWRpbmcgYSBjZW50cmFsaXplZCBlbnZpcm9ubWVudCBmb3IgbW9uaXRvcmluZyBhbmQgYW5hbHl0aWNzLlxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFdvcmtzcGFjZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgICB0aGlzLnJlc291cmNlR3JvdXAgPSBwcm9wcy5yZXNvdXJjZUdyb3VwO1xuXG4gICAgLy8gUHJvdmlkZSBkZWZhdWx0IHZhbHVlc1xuICAgIGNvbnN0IHNrdSA9IHByb3BzLnNrdSA/PyBcIlBlckdCMjAxOFwiO1xuICAgIGNvbnN0IHJldGVudGlvbiA9IHByb3BzLnJldGVudGlvbiA/PyAzMDtcblxuICAgIGNvbnN0IGF6dXJlcm1Mb2dBbmFseXRpY3NXb3Jrc3BhY2VMb2dBbmFseXRpY3MgPSBuZXcgTG9nQW5hbHl0aWNzV29ya3NwYWNlKFxuICAgICAgdGhpcyxcbiAgICAgIFwibG9nX2FuYWx5dGljc1wiLFxuICAgICAge1xuICAgICAgICBsb2NhdGlvbjogcHJvcHMubG9jYXRpb24sXG4gICAgICAgIG5hbWU6IHByb3BzLm5hbWUsXG4gICAgICAgIHJlc291cmNlR3JvdXBOYW1lOiBwcm9wcy5yZXNvdXJjZUdyb3VwLm5hbWUsXG4gICAgICAgIHJldGVudGlvbkluRGF5czogcmV0ZW50aW9uLFxuICAgICAgICBza3U6IHNrdSxcbiAgICAgICAgdGFnczogcHJvcHMudGFncyxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMuaWQgPSBhenVyZXJtTG9nQW5hbHl0aWNzV29ya3NwYWNlTG9nQW5hbHl0aWNzLmlkO1xuXG4gICAgcHJvcHMuZGF0YUV4cG9ydD8uZm9yRWFjaCgodiwgaykgPT4ge1xuICAgICAgbmV3IExvZ0FuYWx5dGljc0RhdGFFeHBvcnRSdWxlKHRoaXMsIGBleHBvcnQtJHtrfWAsIHtcbiAgICAgICAgZGVzdGluYXRpb25SZXNvdXJjZUlkOiB2LmV4cG9ydERlc3RpbmF0aW9uSWQsXG4gICAgICAgIGVuYWJsZWQ6IHYuZW5hYmxlZCxcbiAgICAgICAgbmFtZTogdi5uYW1lLFxuICAgICAgICByZXNvdXJjZUdyb3VwTmFtZTogcHJvcHMucmVzb3VyY2VHcm91cC5uYW1lLFxuICAgICAgICB0YWJsZU5hbWVzOiB2LnRhYmxlTmFtZXMsXG4gICAgICAgIHdvcmtzcGFjZVJlc291cmNlSWQ6IGF6dXJlcm1Mb2dBbmFseXRpY3NXb3Jrc3BhY2VMb2dBbmFseXRpY3MuaWQsXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHByb3BzLmZ1bmN0aW9ucz8uZm9yRWFjaCgodiwgaykgPT4ge1xuICAgICAgbmV3IExvZ0FuYWx5dGljc1NhdmVkU2VhcmNoKHRoaXMsIGBmdW5jdGlvbi0ke2t9YCwge1xuICAgICAgICBjYXRlZ29yeTogXCJGdW5jdGlvblwiLFxuICAgICAgICBkaXNwbGF5TmFtZTogdi5kaXNwbGF5TmFtZSxcbiAgICAgICAgZnVuY3Rpb25BbGlhczogdi5mdW5jdGlvbkFsaWFzLFxuICAgICAgICBmdW5jdGlvblBhcmFtZXRlcnM6IHYuZnVuY3Rpb25QYXJhbWV0ZXJzLFxuICAgICAgICBsb2dBbmFseXRpY3NXb3Jrc3BhY2VJZDogYXp1cmVybUxvZ0FuYWx5dGljc1dvcmtzcGFjZUxvZ0FuYWx5dGljcy5pZCxcbiAgICAgICAgbmFtZTogdi5uYW1lLFxuICAgICAgICBxdWVyeTogdi5xdWVyeSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgcHJvcHMucXVlcmllcz8uZm9yRWFjaCgodiwgaykgPT4ge1xuICAgICAgbmV3IExvZ0FuYWx5dGljc1NhdmVkU2VhcmNoKHRoaXMsIGBmdW5jdGlvbi0ke2t9YCwge1xuICAgICAgICBjYXRlZ29yeTogdi5jYXRlZ29yeSxcbiAgICAgICAgZGlzcGxheU5hbWU6IHYuZGlzcGxheU5hbWUsXG4gICAgICAgIGZ1bmN0aW9uUGFyYW1ldGVyczogW10sXG4gICAgICAgIGxvZ0FuYWx5dGljc1dvcmtzcGFjZUlkOiBhenVyZXJtTG9nQW5hbHl0aWNzV29ya3NwYWNlTG9nQW5hbHl0aWNzLmlkLFxuICAgICAgICBuYW1lOiB2Lm5hbWUsXG4gICAgICAgIHF1ZXJ5OiB2LnF1ZXJ5LFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICAvLyBUZXJyYWZvcm0gT3V0cHV0c1xuICAgIGNvbnN0IGNka3RmVGVycmFmb3JtT3V0cHV0TGFJRCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQoXG4gICAgICB0aGlzLFxuICAgICAgXCJsb2dfYW5hbHl0aWNzX2lkXCIsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBhenVyZXJtTG9nQW5hbHl0aWNzV29ya3NwYWNlTG9nQW5hbHl0aWNzLmlkLFxuICAgICAgfSxcbiAgICApO1xuICAgIGNvbnN0IGNka3RmVGVycmFmb3JtT3V0cHV0TGFTaGFyZWRLZXkgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KFxuICAgICAgdGhpcyxcbiAgICAgIFwibG9nX2FuYWx5dGljc19wcmltYXJ5X3NoYXJlZF9rZXlcIixcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IGF6dXJlcm1Mb2dBbmFseXRpY3NXb3Jrc3BhY2VMb2dBbmFseXRpY3MucHJpbWFyeVNoYXJlZEtleSxcbiAgICAgICAgc2Vuc2l0aXZlOiB0cnVlLFxuICAgICAgfSxcbiAgICApO1xuICAgIGNvbnN0IGNka3RmVGVycmFmb3JtT3V0cHV0TGFXb3Jrc3BhY2VJRCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQoXG4gICAgICB0aGlzLFxuICAgICAgXCJsb2dfYW5hbHl0aWNzX3dvcmtzcGFjZV9pZFwiLFxuICAgICAge1xuICAgICAgICB2YWx1ZTogYXp1cmVybUxvZ0FuYWx5dGljc1dvcmtzcGFjZUxvZ0FuYWx5dGljcy53b3Jrc3BhY2VJZCxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIC8qVGhpcyBhbGxvd3MgdGhlIFRlcnJhZm9ybSByZXNvdXJjZSBuYW1lIHRvIG1hdGNoIHRoZSBvcmlnaW5hbCBuYW1lLiBZb3UgY2FuIHJlbW92ZSB0aGUgY2FsbCBpZiB5b3UgZG9uJ3QgbmVlZCB0aGVtIHRvIG1hdGNoLiovXG4gICAgY2RrdGZUZXJyYWZvcm1PdXRwdXRMYUlELm92ZXJyaWRlTG9naWNhbElkKFwibG9nX2FuYWx5dGljc19pZFwiKTtcbiAgICBjZGt0ZlRlcnJhZm9ybU91dHB1dExhU2hhcmVkS2V5Lm92ZXJyaWRlTG9naWNhbElkKFxuICAgICAgXCJsb2dfYW5hbHl0aWNzX3ByaW1hcnlfc2hhcmVkX2tleVwiLFxuICAgICk7XG4gICAgY2RrdGZUZXJyYWZvcm1PdXRwdXRMYVdvcmtzcGFjZUlELm92ZXJyaWRlTG9naWNhbElkKFxuICAgICAgXCJsb2dfYW5hbHl0aWNzX3dvcmtzcGFjZV9pZFwiLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==