@microsoft/terraform-cdk-constructs 2.2.0 → 2.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +64029 -35477
- package/API.md +89314 -49618
- package/README.md +15 -0
- package/cdktf.json +1 -1
- package/docs/azure-api-version-update-pipeline.md +271 -0
- package/lib/azure-actiongroup/lib/action-group.js +1 -1
- package/lib/azure-activitylogalert/lib/activity-log-alert.js +1 -1
- package/lib/azure-aks/lib/aks-cluster.js +1 -1
- package/lib/azure-applicationinsights/index.d.ts +7 -0
- package/lib/azure-applicationinsights/index.js +24 -0
- package/lib/azure-applicationinsights/lib/application-insights-schemas.d.ts +29 -0
- package/lib/azure-applicationinsights/lib/application-insights-schemas.js +162 -0
- package/lib/azure-applicationinsights/lib/application-insights.d.ts +206 -0
- package/lib/azure-applicationinsights/lib/application-insights.js +209 -0
- package/lib/azure-applicationinsights/lib/index.d.ts +5 -0
- package/lib/azure-applicationinsights/lib/index.js +22 -0
- package/lib/azure-applicationinsights/test/application-insights.integ.d.ts +9 -0
- package/lib/azure-applicationinsights/test/application-insights.integ.js +84 -0
- package/lib/azure-applicationinsights/test/application-insights.spec.d.ts +8 -0
- package/lib/azure-applicationinsights/test/application-insights.spec.js +209 -0
- package/lib/azure-containerapps/lib/container-app-environment-schemas.d.ts +1 -1
- package/lib/azure-containerapps/lib/container-app-environment-schemas.js +2 -2
- package/lib/azure-containerapps/lib/container-app-environment.js +1 -1
- package/lib/azure-containerapps/lib/container-app-schemas.d.ts +1 -1
- package/lib/azure-containerapps/lib/container-app-schemas.js +2 -2
- package/lib/azure-containerapps/lib/container-app.js +1 -1
- package/lib/azure-containerapps/lib/container-apps-job-schemas.d.ts +8 -0
- package/lib/azure-containerapps/lib/container-apps-job-schemas.js +179 -0
- package/lib/azure-containerapps/lib/container-apps-job.d.ts +128 -0
- package/lib/azure-containerapps/lib/container-apps-job.js +81 -0
- package/lib/azure-containerapps/lib/index.d.ts +2 -0
- package/lib/azure-containerapps/lib/index.js +3 -1
- package/lib/azure-containerapps/test/container-apps-job.integ.d.ts +6 -0
- package/lib/azure-containerapps/test/container-apps-job.integ.js +95 -0
- package/lib/azure-containerapps/test/container-apps-job.spec.d.ts +1 -0
- package/lib/azure-containerapps/test/container-apps-job.spec.js +261 -0
- package/lib/azure-containerregistry/index.d.ts +1 -0
- package/lib/azure-containerregistry/index.js +18 -0
- package/lib/azure-containerregistry/lib/container-registry-schemas.d.ts +32 -0
- package/lib/azure-containerregistry/lib/container-registry-schemas.js +316 -0
- package/lib/azure-containerregistry/lib/container-registry.d.ts +330 -0
- package/lib/azure-containerregistry/lib/container-registry.js +217 -0
- package/lib/azure-containerregistry/lib/index.d.ts +2 -0
- package/lib/azure-containerregistry/lib/index.js +19 -0
- package/lib/azure-containerregistry/test/container-registry.integ.d.ts +9 -0
- package/lib/azure-containerregistry/test/container-registry.integ.js +101 -0
- package/lib/azure-containerregistry/test/container-registry.spec.d.ts +4 -0
- package/lib/azure-containerregistry/test/container-registry.spec.js +425 -0
- package/lib/azure-cosmosdb/index.d.ts +1 -0
- package/lib/azure-cosmosdb/index.js +18 -0
- package/lib/azure-cosmosdb/lib/cosmos-db-schemas.d.ts +40 -0
- package/lib/azure-cosmosdb/lib/cosmos-db-schemas.js +330 -0
- package/lib/azure-cosmosdb/lib/cosmos-db.d.ts +290 -0
- package/lib/azure-cosmosdb/lib/cosmos-db.js +222 -0
- package/lib/azure-cosmosdb/lib/index.d.ts +2 -0
- package/lib/azure-cosmosdb/lib/index.js +19 -0
- package/lib/azure-cosmosdb/test/cosmos-db.integ.d.ts +9 -0
- package/lib/azure-cosmosdb/test/cosmos-db.integ.js +98 -0
- package/lib/azure-cosmosdb/test/cosmos-db.spec.d.ts +4 -0
- package/lib/azure-cosmosdb/test/cosmos-db.spec.js +339 -0
- package/lib/azure-dataexplorer/index.d.ts +1 -0
- package/lib/azure-dataexplorer/index.js +18 -0
- package/lib/azure-dataexplorer/lib/data-explorer-cluster-schemas.d.ts +5 -0
- package/lib/azure-dataexplorer/lib/data-explorer-cluster-schemas.js +131 -0
- package/lib/azure-dataexplorer/lib/data-explorer-cluster.d.ts +54 -0
- package/lib/azure-dataexplorer/lib/data-explorer-cluster.js +91 -0
- package/lib/azure-dataexplorer/lib/data-explorer-database-schemas.d.ts +5 -0
- package/lib/azure-dataexplorer/lib/data-explorer-database-schemas.js +78 -0
- package/lib/azure-dataexplorer/lib/data-explorer-database.d.ts +24 -0
- package/lib/azure-dataexplorer/lib/data-explorer-database.js +68 -0
- package/lib/azure-dataexplorer/lib/data-explorer-table-schemas.d.ts +5 -0
- package/lib/azure-dataexplorer/lib/data-explorer-table-schemas.js +94 -0
- package/lib/azure-dataexplorer/lib/data-explorer-table.d.ts +25 -0
- package/lib/azure-dataexplorer/lib/data-explorer-table.js +62 -0
- package/lib/azure-dataexplorer/lib/index.d.ts +6 -0
- package/lib/azure-dataexplorer/lib/index.js +23 -0
- package/lib/azure-dataexplorer/test/data-explorer.integ.d.ts +1 -0
- package/lib/azure-dataexplorer/test/data-explorer.integ.js +78 -0
- package/lib/azure-dataexplorer/test/data-explorer.spec.d.ts +1 -0
- package/lib/azure-dataexplorer/test/data-explorer.spec.js +248 -0
- package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +1 -1
- package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +1 -1
- package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +1 -1
- package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +1 -1
- package/lib/azure-dnsresolver/lib/dns-resolver.js +1 -1
- package/lib/azure-dnsresolver/lib/inbound-endpoint.js +1 -1
- package/lib/azure-dnsresolver/lib/outbound-endpoint.js +1 -1
- package/lib/azure-dnszone/lib/dns-zone.js +1 -1
- package/lib/azure-dnszone/lib/records/dns-records.js +10 -10
- package/lib/azure-eventgrideventsubscription/index.d.ts +1 -0
- package/lib/azure-eventgrideventsubscription/index.js +18 -0
- package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription-schemas.d.ts +5 -0
- package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription-schemas.js +151 -0
- package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription.d.ts +59 -0
- package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription.js +67 -0
- package/lib/azure-eventgrideventsubscription/lib/index.d.ts +2 -0
- package/lib/azure-eventgrideventsubscription/lib/index.js +19 -0
- package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.integ.d.ts +1 -0
- package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.integ.js +100 -0
- package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.spec.d.ts +1 -0
- package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.spec.js +242 -0
- package/lib/azure-eventgridsystemtopic/index.d.ts +1 -0
- package/lib/azure-eventgridsystemtopic/index.js +18 -0
- package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic-schemas.d.ts +5 -0
- package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic-schemas.js +164 -0
- package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic.d.ts +46 -0
- package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic.js +68 -0
- package/lib/azure-eventgridsystemtopic/lib/index.d.ts +2 -0
- package/lib/azure-eventgridsystemtopic/lib/index.js +19 -0
- package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.integ.d.ts +1 -0
- package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.integ.js +64 -0
- package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.spec.d.ts +1 -0
- package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.spec.js +241 -0
- package/lib/azure-eventhub/index.d.ts +7 -0
- package/lib/azure-eventhub/index.js +24 -0
- package/lib/azure-eventhub/lib/event-hub-namespace.d.ts +204 -0
- package/lib/azure-eventhub/lib/event-hub-namespace.js +178 -0
- package/lib/azure-eventhub/lib/event-hub-schemas.d.ts +63 -0
- package/lib/azure-eventhub/lib/event-hub-schemas.js +370 -0
- package/lib/azure-eventhub/lib/event-hub.d.ts +153 -0
- package/lib/azure-eventhub/lib/event-hub.js +171 -0
- package/lib/azure-eventhub/lib/index.d.ts +6 -0
- package/lib/azure-eventhub/lib/index.js +23 -0
- package/lib/azure-eventhub/test/event-hub.integ.d.ts +9 -0
- package/lib/azure-eventhub/test/event-hub.integ.js +113 -0
- package/lib/azure-eventhub/test/event-hub.spec.d.ts +8 -0
- package/lib/azure-eventhub/test/event-hub.spec.js +438 -0
- package/lib/azure-functionapp/index.d.ts +1 -0
- package/lib/azure-functionapp/index.js +18 -0
- package/lib/azure-functionapp/lib/function-app-schemas.d.ts +32 -0
- package/lib/azure-functionapp/lib/function-app-schemas.js +303 -0
- package/lib/azure-functionapp/lib/function-app.d.ts +367 -0
- package/lib/azure-functionapp/lib/function-app.js +223 -0
- package/lib/azure-functionapp/lib/index.d.ts +2 -0
- package/lib/azure-functionapp/lib/index.js +19 -0
- package/lib/azure-functionapp/test/function-app.integ.d.ts +12 -0
- package/lib/azure-functionapp/test/function-app.integ.js +134 -0
- package/lib/azure-functionapp/test/function-app.spec.d.ts +4 -0
- package/lib/azure-functionapp/test/function-app.spec.js +566 -0
- package/lib/azure-keyvault/index.d.ts +1 -0
- package/lib/azure-keyvault/index.js +18 -0
- package/lib/azure-keyvault/lib/index.d.ts +2 -0
- package/lib/azure-keyvault/lib/index.js +19 -0
- package/lib/azure-keyvault/lib/key-vault-schemas.d.ts +40 -0
- package/lib/azure-keyvault/lib/key-vault-schemas.js +312 -0
- package/lib/azure-keyvault/lib/key-vault.d.ts +344 -0
- package/lib/azure-keyvault/lib/key-vault.js +243 -0
- package/lib/azure-keyvault/test/key-vault.integ.d.ts +9 -0
- package/lib/azure-keyvault/test/key-vault.integ.js +108 -0
- package/lib/azure-keyvault/test/key-vault.spec.d.ts +4 -0
- package/lib/azure-keyvault/test/key-vault.spec.js +264 -0
- package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.js +1 -1
- package/lib/azure-metricalert/lib/metric-alert.js +1 -1
- package/lib/azure-networkinterface/lib/network-interface.js +1 -1
- package/lib/azure-networksecuritygroup/lib/network-security-group.js +1 -1
- package/lib/azure-networkwatcher/lib/network-watcher.js +1 -1
- package/lib/azure-policyassignment/lib/policy-assignment.js +1 -1
- package/lib/azure-policydefinition/lib/policy-definition.js +1 -1
- package/lib/azure-policysetdefinition/lib/policy-set-definition.js +1 -1
- package/lib/azure-privatednszone/lib/private-dns-zone.js +1 -1
- package/lib/azure-privatednszone/lib/records/private-dns-records.js +8 -8
- package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +1 -1
- package/lib/azure-publicipaddress/lib/public-ip-address.js +1 -1
- package/lib/azure-resourcegroup/lib/resource-group.js +1 -1
- package/lib/azure-roleassignment/lib/role-assignment.js +1 -1
- package/lib/azure-roledefinition/lib/role-definition.js +1 -1
- package/lib/azure-sreagent/index.d.ts +1 -0
- package/lib/azure-sreagent/index.js +18 -0
- package/lib/azure-sreagent/lib/index.d.ts +2 -0
- package/lib/azure-sreagent/lib/index.js +19 -0
- package/lib/azure-sreagent/lib/sre-agent-schemas.d.ts +29 -0
- package/lib/azure-sreagent/lib/sre-agent-schemas.js +296 -0
- package/lib/azure-sreagent/lib/sre-agent.d.ts +208 -0
- package/lib/azure-sreagent/lib/sre-agent.js +217 -0
- package/lib/azure-sreagent/test/sre-agent.integ.d.ts +9 -0
- package/lib/azure-sreagent/test/sre-agent.integ.js +78 -0
- package/lib/azure-sreagent/test/sre-agent.spec.d.ts +4 -0
- package/lib/azure-sreagent/test/sre-agent.spec.js +216 -0
- package/lib/azure-staticwebapp/index.d.ts +1 -0
- package/lib/azure-staticwebapp/index.js +18 -0
- package/lib/azure-staticwebapp/lib/index.d.ts +2 -0
- package/lib/azure-staticwebapp/lib/index.js +19 -0
- package/lib/azure-staticwebapp/lib/static-web-app-schemas.d.ts +40 -0
- package/lib/azure-staticwebapp/lib/static-web-app-schemas.js +236 -0
- package/lib/azure-staticwebapp/lib/static-web-app.d.ts +242 -0
- package/lib/azure-staticwebapp/lib/static-web-app.js +232 -0
- package/lib/azure-staticwebapp/test/static-web-app.integ.d.ts +9 -0
- package/lib/azure-staticwebapp/test/static-web-app.integ.js +76 -0
- package/lib/azure-staticwebapp/test/static-web-app.spec.d.ts +15 -0
- package/lib/azure-staticwebapp/test/static-web-app.spec.js +293 -0
- package/lib/azure-storageaccount/lib/storage-account.js +1 -1
- package/lib/azure-storageblobcontainer/index.d.ts +1 -0
- package/lib/azure-storageblobcontainer/index.js +18 -0
- package/lib/azure-storageblobcontainer/lib/index.d.ts +2 -0
- package/lib/azure-storageblobcontainer/lib/index.js +19 -0
- package/lib/azure-storageblobcontainer/lib/storage-blob-container-schemas.d.ts +5 -0
- package/lib/azure-storageblobcontainer/lib/storage-blob-container-schemas.js +108 -0
- package/lib/azure-storageblobcontainer/lib/storage-blob-container.d.ts +37 -0
- package/lib/azure-storageblobcontainer/lib/storage-blob-container.js +63 -0
- package/lib/azure-storageblobcontainer/test/storage-blob-container.integ.d.ts +1 -0
- package/lib/azure-storageblobcontainer/test/storage-blob-container.integ.js +60 -0
- package/lib/azure-storageblobcontainer/test/storage-blob-container.spec.d.ts +1 -0
- package/lib/azure-storageblobcontainer/test/storage-blob-container.spec.js +172 -0
- package/lib/azure-subnet/lib/subnet.js +1 -1
- package/lib/azure-userassignedidentity/index.d.ts +1 -0
- package/lib/azure-userassignedidentity/index.js +18 -0
- package/lib/azure-userassignedidentity/lib/index.d.ts +2 -0
- package/lib/azure-userassignedidentity/lib/index.js +19 -0
- package/lib/azure-userassignedidentity/lib/user-assigned-identity-schemas.d.ts +8 -0
- package/lib/azure-userassignedidentity/lib/user-assigned-identity-schemas.js +107 -0
- package/lib/azure-userassignedidentity/lib/user-assigned-identity.d.ts +37 -0
- package/lib/azure-userassignedidentity/lib/user-assigned-identity.js +85 -0
- package/lib/azure-userassignedidentity/test/user-assigned-identity.integ.d.ts +1 -0
- package/lib/azure-userassignedidentity/test/user-assigned-identity.integ.js +64 -0
- package/lib/azure-userassignedidentity/test/user-assigned-identity.spec.d.ts +1 -0
- package/lib/azure-userassignedidentity/test/user-assigned-identity.spec.js +241 -0
- package/lib/azure-virtualmachine/lib/virtual-machine.js +1 -1
- package/lib/azure-virtualnetwork/lib/virtual-network.js +1 -1
- package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.js +1 -1
- package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/ipam-pool.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/network-group.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +1 -1
- package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +1 -1
- package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +66 -1
- package/lib/azure-vmss/lib/virtual-machine-scale-set.js +141 -2
- package/lib/azure-vmss/lib/vmss-schemas.d.ts +195 -0
- package/lib/azure-vmss/lib/vmss-schemas.js +33 -1
- package/lib/azure-vmss/test/virtual-machine-scale-set.spec.js +463 -1
- package/lib/core-azure/lib/azapi/azapi-resource.js +2 -2
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +4 -4
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +7 -7
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.js +2 -2
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.js +2 -2
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.js +2 -2
- package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.js +2 -2
- package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +3 -3
- package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +7 -7
- package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +5 -5
- package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +5 -5
- package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +1 -1
- package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
- package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
- package/lib/index.d.ts +39 -0
- package/lib/index.js +41 -2
- package/lib/testing/index.js +20 -3
- package/lib/testing/lib/cleanup.js +1 -1
- package/lib/testing/lib/metadata.js +12 -4
- package/lib/testing/lib/naming.js +57 -1
- package/package.json +1 -1
- package/scripts/azure-version-updater/create-issue.ts +189 -0
- package/scripts/azure-version-updater/discover.ts +382 -0
- package/scripts/azure-version-updater/spec-mapping.ts +164 -0
- package/scripts/azure-version-updater/tsconfig.json +11 -0
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Unit tests for Azure Cosmos DB Account using VersionedAzapiResource framework
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const cdktn_1 = require("cdktn");
|
|
7
|
+
const cdktn = require("cdktn");
|
|
8
|
+
const azure_resourcegroup_1 = require("../../azure-resourcegroup");
|
|
9
|
+
const cosmos_db_1 = require("../lib/cosmos-db");
|
|
10
|
+
describe("CosmosDbAccount", () => {
|
|
11
|
+
let app;
|
|
12
|
+
let stack;
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
app = cdktn_1.Testing.app();
|
|
15
|
+
stack = new cdktn.TerraformStack(app, "TestStack");
|
|
16
|
+
});
|
|
17
|
+
describe("constructor", () => {
|
|
18
|
+
it("should create a cosmos db account with required properties", () => {
|
|
19
|
+
const rg = new azure_resourcegroup_1.ResourceGroup(stack, "TestRG", {
|
|
20
|
+
name: "test-rg",
|
|
21
|
+
location: "eastus",
|
|
22
|
+
});
|
|
23
|
+
const props = {
|
|
24
|
+
name: "testcosmosaccount",
|
|
25
|
+
location: "eastus",
|
|
26
|
+
resourceGroupId: rg.id,
|
|
27
|
+
};
|
|
28
|
+
const cosmos = new cosmos_db_1.CosmosDbAccount(stack, "TestCosmos", props);
|
|
29
|
+
expect(cosmos).toBeInstanceOf(cosmos_db_1.CosmosDbAccount);
|
|
30
|
+
expect(cosmos.props).toBe(props);
|
|
31
|
+
});
|
|
32
|
+
it("should create a cosmos db account with all properties", () => {
|
|
33
|
+
const rg = new azure_resourcegroup_1.ResourceGroup(stack, "TestRG", {
|
|
34
|
+
name: "test-rg",
|
|
35
|
+
location: "eastus",
|
|
36
|
+
});
|
|
37
|
+
const props = {
|
|
38
|
+
name: "testcosmosaccount",
|
|
39
|
+
location: "eastus",
|
|
40
|
+
resourceGroupId: rg.id,
|
|
41
|
+
kind: "GlobalDocumentDB",
|
|
42
|
+
consistencyPolicy: {
|
|
43
|
+
defaultConsistencyLevel: "Strong",
|
|
44
|
+
},
|
|
45
|
+
capabilities: [{ name: "EnableServerless" }],
|
|
46
|
+
publicNetworkAccess: "Enabled",
|
|
47
|
+
enableAutomaticFailover: false,
|
|
48
|
+
minimalTlsVersion: "Tls12",
|
|
49
|
+
tags: {
|
|
50
|
+
environment: "test",
|
|
51
|
+
project: "cdktf-constructs",
|
|
52
|
+
},
|
|
53
|
+
identity: {
|
|
54
|
+
type: "SystemAssigned",
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
const cosmos = new cosmos_db_1.CosmosDbAccount(stack, "TestCosmos", props);
|
|
58
|
+
expect(cosmos.props).toBe(props);
|
|
59
|
+
expect(cosmos.tags).toEqual(props.tags);
|
|
60
|
+
});
|
|
61
|
+
it("should use default values for optional properties", () => {
|
|
62
|
+
const rg = new azure_resourcegroup_1.ResourceGroup(stack, "TestRG", {
|
|
63
|
+
name: "test-rg",
|
|
64
|
+
location: "eastus",
|
|
65
|
+
});
|
|
66
|
+
const props = {
|
|
67
|
+
name: "testcosmosaccount",
|
|
68
|
+
location: "eastus",
|
|
69
|
+
resourceGroupId: rg.id,
|
|
70
|
+
};
|
|
71
|
+
const cosmos = new cosmos_db_1.CosmosDbAccount(stack, "TestCosmos", props);
|
|
72
|
+
expect(cosmos).toBeInstanceOf(cosmos_db_1.CosmosDbAccount);
|
|
73
|
+
});
|
|
74
|
+
it("should create terraform outputs", () => {
|
|
75
|
+
const rg = new azure_resourcegroup_1.ResourceGroup(stack, "TestRG", {
|
|
76
|
+
name: "test-rg",
|
|
77
|
+
location: "eastus",
|
|
78
|
+
});
|
|
79
|
+
const props = {
|
|
80
|
+
name: "testcosmosaccount",
|
|
81
|
+
location: "eastus",
|
|
82
|
+
resourceGroupId: rg.id,
|
|
83
|
+
};
|
|
84
|
+
const cosmos = new cosmos_db_1.CosmosDbAccount(stack, "TestCosmos", props);
|
|
85
|
+
expect(cosmos.idOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
86
|
+
expect(cosmos.locationOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
87
|
+
expect(cosmos.nameOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
88
|
+
expect(cosmos.tagsOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
89
|
+
expect(cosmos.documentEndpointOutput).toBeInstanceOf(cdktn.TerraformOutput);
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
describe("kind configuration", () => {
|
|
93
|
+
it("should accept GlobalDocumentDB kind", () => {
|
|
94
|
+
const rg = new azure_resourcegroup_1.ResourceGroup(stack, "TestRG", {
|
|
95
|
+
name: "test-rg",
|
|
96
|
+
location: "eastus",
|
|
97
|
+
});
|
|
98
|
+
const props = {
|
|
99
|
+
name: "testcosmosaccount",
|
|
100
|
+
location: "eastus",
|
|
101
|
+
resourceGroupId: rg.id,
|
|
102
|
+
kind: "GlobalDocumentDB",
|
|
103
|
+
};
|
|
104
|
+
const cosmos = new cosmos_db_1.CosmosDbAccount(stack, "TestCosmos", props);
|
|
105
|
+
expect(cosmos.props.kind).toBe("GlobalDocumentDB");
|
|
106
|
+
});
|
|
107
|
+
it("should accept MongoDB kind", () => {
|
|
108
|
+
const rg = new azure_resourcegroup_1.ResourceGroup(stack, "TestRG", {
|
|
109
|
+
name: "test-rg",
|
|
110
|
+
location: "eastus",
|
|
111
|
+
});
|
|
112
|
+
const props = {
|
|
113
|
+
name: "testcosmosmongo",
|
|
114
|
+
location: "eastus",
|
|
115
|
+
resourceGroupId: rg.id,
|
|
116
|
+
kind: "MongoDB",
|
|
117
|
+
capabilities: [{ name: "EnableMongo" }],
|
|
118
|
+
};
|
|
119
|
+
const cosmos = new cosmos_db_1.CosmosDbAccount(stack, "TestCosmos", props);
|
|
120
|
+
expect(cosmos.props.kind).toBe("MongoDB");
|
|
121
|
+
});
|
|
122
|
+
});
|
|
123
|
+
describe("consistency policy", () => {
|
|
124
|
+
it("should configure Session consistency by default when none provided", () => {
|
|
125
|
+
const rg = new azure_resourcegroup_1.ResourceGroup(stack, "TestRG", {
|
|
126
|
+
name: "test-rg",
|
|
127
|
+
location: "eastus",
|
|
128
|
+
});
|
|
129
|
+
const props = {
|
|
130
|
+
name: "testcosmosconsistency",
|
|
131
|
+
location: "eastus",
|
|
132
|
+
resourceGroupId: rg.id,
|
|
133
|
+
};
|
|
134
|
+
const cosmos = new cosmos_db_1.CosmosDbAccount(stack, "TestCosmos", props);
|
|
135
|
+
expect(cosmos).toBeInstanceOf(cosmos_db_1.CosmosDbAccount);
|
|
136
|
+
});
|
|
137
|
+
it("should configure Strong consistency when specified", () => {
|
|
138
|
+
const rg = new azure_resourcegroup_1.ResourceGroup(stack, "TestRG", {
|
|
139
|
+
name: "test-rg",
|
|
140
|
+
location: "eastus",
|
|
141
|
+
});
|
|
142
|
+
const props = {
|
|
143
|
+
name: "testcosmosstrong",
|
|
144
|
+
location: "eastus",
|
|
145
|
+
resourceGroupId: rg.id,
|
|
146
|
+
consistencyPolicy: {
|
|
147
|
+
defaultConsistencyLevel: "Strong",
|
|
148
|
+
},
|
|
149
|
+
};
|
|
150
|
+
const cosmos = new cosmos_db_1.CosmosDbAccount(stack, "TestCosmos", props);
|
|
151
|
+
expect(cosmos.props.consistencyPolicy?.defaultConsistencyLevel).toBe("Strong");
|
|
152
|
+
});
|
|
153
|
+
it("should configure BoundedStaleness consistency", () => {
|
|
154
|
+
const rg = new azure_resourcegroup_1.ResourceGroup(stack, "TestRG", {
|
|
155
|
+
name: "test-rg",
|
|
156
|
+
location: "eastus",
|
|
157
|
+
});
|
|
158
|
+
const props = {
|
|
159
|
+
name: "testcosmosbounded",
|
|
160
|
+
location: "eastus",
|
|
161
|
+
resourceGroupId: rg.id,
|
|
162
|
+
consistencyPolicy: {
|
|
163
|
+
defaultConsistencyLevel: "BoundedStaleness",
|
|
164
|
+
maxIntervalInSeconds: 86400,
|
|
165
|
+
maxStalenessPrefix: 1000000,
|
|
166
|
+
},
|
|
167
|
+
};
|
|
168
|
+
const cosmos = new cosmos_db_1.CosmosDbAccount(stack, "TestCosmos", props);
|
|
169
|
+
expect(cosmos.props.consistencyPolicy?.defaultConsistencyLevel).toBe("BoundedStaleness");
|
|
170
|
+
expect(cosmos.props.consistencyPolicy?.maxIntervalInSeconds).toBe(86400);
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
describe("multi-region configuration", () => {
|
|
174
|
+
it("should configure multiple geo locations with failover", () => {
|
|
175
|
+
const rg = new azure_resourcegroup_1.ResourceGroup(stack, "TestRG", {
|
|
176
|
+
name: "test-rg",
|
|
177
|
+
location: "eastus",
|
|
178
|
+
});
|
|
179
|
+
const props = {
|
|
180
|
+
name: "testcosmosgeo",
|
|
181
|
+
location: "eastus",
|
|
182
|
+
resourceGroupId: rg.id,
|
|
183
|
+
enableAutomaticFailover: true,
|
|
184
|
+
geoLocations: [
|
|
185
|
+
{
|
|
186
|
+
locationName: "eastus",
|
|
187
|
+
failoverPriority: 0,
|
|
188
|
+
isZoneRedundant: true,
|
|
189
|
+
},
|
|
190
|
+
{ locationName: "westus", failoverPriority: 1 },
|
|
191
|
+
],
|
|
192
|
+
};
|
|
193
|
+
const cosmos = new cosmos_db_1.CosmosDbAccount(stack, "TestCosmos", props);
|
|
194
|
+
expect(cosmos.props.enableAutomaticFailover).toBe(true);
|
|
195
|
+
expect(cosmos.props.geoLocations).toHaveLength(2);
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
describe("capabilities", () => {
|
|
199
|
+
it("should configure serverless capability", () => {
|
|
200
|
+
const rg = new azure_resourcegroup_1.ResourceGroup(stack, "TestRG", {
|
|
201
|
+
name: "test-rg",
|
|
202
|
+
location: "eastus",
|
|
203
|
+
});
|
|
204
|
+
const props = {
|
|
205
|
+
name: "testcosmosserverless",
|
|
206
|
+
location: "eastus",
|
|
207
|
+
resourceGroupId: rg.id,
|
|
208
|
+
capabilities: [{ name: "EnableServerless" }],
|
|
209
|
+
};
|
|
210
|
+
const cosmos = new cosmos_db_1.CosmosDbAccount(stack, "TestCosmos", props);
|
|
211
|
+
expect(cosmos.props.capabilities).toEqual([{ name: "EnableServerless" }]);
|
|
212
|
+
});
|
|
213
|
+
});
|
|
214
|
+
describe("tag management", () => {
|
|
215
|
+
let cosmos;
|
|
216
|
+
beforeEach(() => {
|
|
217
|
+
const rg = new azure_resourcegroup_1.ResourceGroup(stack, "TestRG", {
|
|
218
|
+
name: "test-rg",
|
|
219
|
+
location: "eastus",
|
|
220
|
+
});
|
|
221
|
+
const props = {
|
|
222
|
+
name: "testcosmostags",
|
|
223
|
+
location: "eastus",
|
|
224
|
+
resourceGroupId: rg.id,
|
|
225
|
+
tags: {
|
|
226
|
+
environment: "test",
|
|
227
|
+
},
|
|
228
|
+
};
|
|
229
|
+
cosmos = new cosmos_db_1.CosmosDbAccount(stack, "TestCosmos", props);
|
|
230
|
+
});
|
|
231
|
+
it("should add a tag", () => {
|
|
232
|
+
cosmos.addTag("newTag", "newValue");
|
|
233
|
+
expect(cosmos.props.tags.newTag).toBe("newValue");
|
|
234
|
+
expect(cosmos.props.tags.environment).toBe("test");
|
|
235
|
+
});
|
|
236
|
+
it("should remove an existing tag", () => {
|
|
237
|
+
cosmos.removeTag("environment");
|
|
238
|
+
expect(cosmos.props.tags.environment).toBeUndefined();
|
|
239
|
+
});
|
|
240
|
+
it("should add a tag when no tags exist", () => {
|
|
241
|
+
const rg = new azure_resourcegroup_1.ResourceGroup(stack, "TestRG2", {
|
|
242
|
+
name: "test-rg2",
|
|
243
|
+
location: "eastus",
|
|
244
|
+
});
|
|
245
|
+
const props = {
|
|
246
|
+
name: "testcosmosnotags",
|
|
247
|
+
location: "eastus",
|
|
248
|
+
resourceGroupId: rg.id,
|
|
249
|
+
};
|
|
250
|
+
const c = new cosmos_db_1.CosmosDbAccount(stack, "TestCosmosNoTags", props);
|
|
251
|
+
c.addTag("firstTag", "firstValue");
|
|
252
|
+
expect(c.props.tags.firstTag).toBe("firstValue");
|
|
253
|
+
});
|
|
254
|
+
});
|
|
255
|
+
describe("API versioning", () => {
|
|
256
|
+
it("should use default version when not specified", () => {
|
|
257
|
+
const rg = new azure_resourcegroup_1.ResourceGroup(stack, "TestRG", {
|
|
258
|
+
name: "test-rg",
|
|
259
|
+
location: "eastus",
|
|
260
|
+
});
|
|
261
|
+
const props = {
|
|
262
|
+
name: "testcosmosdefault",
|
|
263
|
+
location: "eastus",
|
|
264
|
+
resourceGroupId: rg.id,
|
|
265
|
+
};
|
|
266
|
+
const cosmos = new cosmos_db_1.CosmosDbAccount(stack, "TestCosmos", props);
|
|
267
|
+
expect(cosmos).toBeInstanceOf(cosmos_db_1.CosmosDbAccount);
|
|
268
|
+
});
|
|
269
|
+
it("should accept specific API version", () => {
|
|
270
|
+
const rg = new azure_resourcegroup_1.ResourceGroup(stack, "TestRG", {
|
|
271
|
+
name: "test-rg",
|
|
272
|
+
location: "eastus",
|
|
273
|
+
});
|
|
274
|
+
const props = {
|
|
275
|
+
name: "testcosmosversioned",
|
|
276
|
+
location: "eastus",
|
|
277
|
+
resourceGroupId: rg.id,
|
|
278
|
+
apiVersion: "2024-05-15",
|
|
279
|
+
};
|
|
280
|
+
const cosmos = new cosmos_db_1.CosmosDbAccount(stack, "TestCosmos", props);
|
|
281
|
+
expect(cosmos.props.apiVersion).toBe("2024-05-15");
|
|
282
|
+
});
|
|
283
|
+
});
|
|
284
|
+
describe("CDK Terraform integration", () => {
|
|
285
|
+
it("should synthesize to valid Terraform", () => {
|
|
286
|
+
const rg = new azure_resourcegroup_1.ResourceGroup(stack, "TestRG", {
|
|
287
|
+
name: "test-rg",
|
|
288
|
+
location: "eastus",
|
|
289
|
+
});
|
|
290
|
+
const props = {
|
|
291
|
+
name: "testcosmossynth",
|
|
292
|
+
location: "eastus",
|
|
293
|
+
resourceGroupId: rg.id,
|
|
294
|
+
tags: {
|
|
295
|
+
environment: "test",
|
|
296
|
+
},
|
|
297
|
+
};
|
|
298
|
+
new cosmos_db_1.CosmosDbAccount(stack, "TestCosmos", props);
|
|
299
|
+
const synthesized = cdktn_1.Testing.synth(stack);
|
|
300
|
+
expect(synthesized).toBeDefined();
|
|
301
|
+
const stackConfig = JSON.parse(synthesized);
|
|
302
|
+
expect(stackConfig.resource).toBeDefined();
|
|
303
|
+
});
|
|
304
|
+
it("should have correct logical IDs for outputs", () => {
|
|
305
|
+
const rg = new azure_resourcegroup_1.ResourceGroup(stack, "TestRG", {
|
|
306
|
+
name: "test-rg",
|
|
307
|
+
location: "eastus",
|
|
308
|
+
});
|
|
309
|
+
const props = {
|
|
310
|
+
name: "testcosmoslogical",
|
|
311
|
+
location: "eastus",
|
|
312
|
+
resourceGroupId: rg.id,
|
|
313
|
+
};
|
|
314
|
+
const cosmos = new cosmos_db_1.CosmosDbAccount(stack, "TestCosmos", props);
|
|
315
|
+
expect(cosmos.idOutput).toBeDefined();
|
|
316
|
+
expect(cosmos.locationOutput).toBeDefined();
|
|
317
|
+
expect(cosmos.nameOutput).toBeDefined();
|
|
318
|
+
expect(cosmos.tagsOutput).toBeDefined();
|
|
319
|
+
expect(cosmos.documentEndpointOutput).toBeDefined();
|
|
320
|
+
});
|
|
321
|
+
});
|
|
322
|
+
describe("endpoint properties", () => {
|
|
323
|
+
it("should provide document endpoint", () => {
|
|
324
|
+
const rg = new azure_resourcegroup_1.ResourceGroup(stack, "TestRG", {
|
|
325
|
+
name: "test-rg",
|
|
326
|
+
location: "eastus",
|
|
327
|
+
});
|
|
328
|
+
const props = {
|
|
329
|
+
name: "testcosmosendpoint",
|
|
330
|
+
location: "eastus",
|
|
331
|
+
resourceGroupId: rg.id,
|
|
332
|
+
};
|
|
333
|
+
const cosmos = new cosmos_db_1.CosmosDbAccount(stack, "TestCosmos", props);
|
|
334
|
+
expect(cosmos.documentEndpoint).toBeDefined();
|
|
335
|
+
expect(cosmos.documentEndpoint).toContain("documentEndpoint");
|
|
336
|
+
});
|
|
337
|
+
});
|
|
338
|
+
});
|
|
339
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29zbW9zLWRiLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtY29zbW9zZGIvdGVzdC9jb3Ntb3MtZGIuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7O0FBRUgsaUNBQWdDO0FBQ2hDLCtCQUErQjtBQUMvQixtRUFBMEQ7QUFDMUQsZ0RBQXlFO0FBRXpFLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLEVBQUU7SUFDL0IsSUFBSSxHQUFjLENBQUM7SUFDbkIsSUFBSSxLQUEyQixDQUFDO0lBRWhDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxHQUFHLEdBQUcsZUFBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLEtBQUssR0FBRyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGFBQWEsRUFBRSxHQUFHLEVBQUU7UUFDM0IsRUFBRSxDQUFDLDREQUE0RCxFQUFFLEdBQUcsRUFBRTtZQUNwRSxNQUFNLEVBQUUsR0FBRyxJQUFJLG1DQUFhLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRTtnQkFDNUMsSUFBSSxFQUFFLFNBQVM7Z0JBQ2YsUUFBUSxFQUFFLFFBQVE7YUFDbkIsQ0FBQyxDQUFDO1lBRUgsTUFBTSxLQUFLLEdBQXlCO2dCQUNsQyxJQUFJLEVBQUUsbUJBQW1CO2dCQUN6QixRQUFRLEVBQUUsUUFBUTtnQkFDbEIsZUFBZSxFQUFFLEVBQUUsQ0FBQyxFQUFFO2FBQ3ZCLENBQUM7WUFFRixNQUFNLE1BQU0sR0FBRyxJQUFJLDJCQUFlLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUUvRCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsY0FBYyxDQUFDLDJCQUFlLENBQUMsQ0FBQztZQUMvQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUss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QUM7WUFFRixNQUFNLE1BQU0sR0FBRyxJQUFJLDJCQUFlLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUUvRCxNQUFNLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDOUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2hFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVW5pdCB0ZXN0cyBmb3IgQXp1cmUgQ29zbW9zIERCIEFjY291bnQgdXNpbmcgVmVyc2lvbmVkQXphcGlSZXNvdXJjZSBmcmFtZXdvcmtcbiAqL1xuXG5pbXBvcnQgeyBUZXN0aW5nIH0gZnJvbSBcImNka3RuXCI7XG5pbXBvcnQgKiBhcyBjZGt0biBmcm9tIFwiY2RrdG5cIjtcbmltcG9ydCB7IFJlc291cmNlR3JvdXAgfSBmcm9tIFwiLi4vLi4vYXp1cmUtcmVzb3VyY2Vncm91cFwiO1xuaW1wb3J0IHsgQ29zbW9zRGJBY2NvdW50LCBDb3Ntb3NEYkFjY291bnRQcm9wcyB9IGZyb20gXCIuLi9saWIvY29zbW9zLWRiXCI7XG5cbmRlc2NyaWJlKFwiQ29zbW9zRGJBY2NvdW50XCIsICgpID0+IHtcbiAgbGV0IGFwcDogY2RrdG4uQXBwO1xuICBsZXQgc3RhY2s6IGNka3RuLlRlcnJhZm9ybVN0YWNrO1xuXG4gIGJlZm9yZUVhY2goKCkgPT4ge1xuICAgIGFwcCA9IFRlc3RpbmcuYXBwKCk7XG4gICAgc3RhY2sgPSBuZXcgY2RrdG4uVGVycmFmb3JtU3RhY2soYXBwLCBcIlRlc3RTdGFja1wiKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJjb25zdHJ1Y3RvclwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIGEgY29zbW9zIGRiIGFjY291bnQgd2l0aCByZXF1aXJlZCBwcm9wZXJ0aWVzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHJnID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJHXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXJnXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHByb3BzOiBDb3Ntb3NEYkFjY291bnRQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0Y29zbW9zYWNjb3VudFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZy5pZCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGNvc21vcyA9IG5ldyBDb3Ntb3NEYkFjY291bnQoc3RhY2ssIFwiVGVzdENvc21vc1wiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChjb3Ntb3MpLnRvQmVJbnN0YW5jZU9mKENvc21vc0RiQWNjb3VudCk7XG4gICAgICBleHBlY3QoY29zbW9zLnByb3BzKS50b0JlKHByb3BzKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNyZWF0ZSBhIGNvc21vcyBkYiBhY2NvdW50IHdpdGggYWxsIHByb3BlcnRpZXNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcmcgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJUZXN0UkdcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgcHJvcHM6IENvc21vc0RiQWNjb3VudFByb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3Rjb3Ntb3NhY2NvdW50XCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJnLmlkLFxuICAgICAgICBraW5kOiBcIkdsb2JhbERvY3VtZW50REJcIixcbiAgICAgICAgY29uc2lzdGVuY3lQb2xpY3k6IHtcbiAgICAgICAgICBkZWZhdWx0Q29uc2lzdGVuY3lMZXZlbDogXCJTdHJvbmdcIixcbiAgICAgICAgfSxcbiAgICAgICAgY2FwYWJpbGl0aWVzOiBbeyBuYW1lOiBcIkVuYWJsZVNlcnZlcmxlc3NcIiB9XSxcbiAgICAgICAgcHVibGljTmV0d29ya0FjY2VzczogXCJFbmFibGVkXCIsXG4gICAgICAgIGVuYWJsZUF1dG9tYXRpY0ZhaWxvdmVyOiBmYWxzZSxcbiAgICAgICAgbWluaW1hbFRsc1ZlcnNpb246IFwiVGxzMTJcIixcbiAgICAgICAgdGFnczoge1xuICAgICAgICAgIGVudmlyb25tZW50OiBcInRlc3RcIixcbiAgICAgICAgICBwcm9qZWN0OiBcImNka3RmLWNvbnN0cnVjdHNcIixcbiAgICAgICAgfSxcbiAgICAgICAgaWRlbnRpdHk6IHtcbiAgICAgICAgICB0eXBlOiBcIlN5c3RlbUFzc2lnbmVkXCIsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBjb3Ntb3MgPSBuZXcgQ29zbW9zRGJBY2NvdW50KHN0YWNrLCBcIlRlc3RDb3Ntb3NcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QoY29zbW9zLnByb3BzKS50b0JlKHByb3BzKTtcbiAgICAgIGV4cGVjdChjb3Ntb3MudGFncykudG9FcXVhbChwcm9wcy50YWdzKTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIHVzZSBkZWZhdWx0IHZhbHVlcyBmb3Igb3B0aW9uYWwgcHJvcGVydGllc1wiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZyA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIlRlc3RSR1wiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBwcm9wczogQ29zbW9zRGJBY2NvdW50UHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdGNvc21vc2FjY291bnRcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmcuaWQsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBjb3Ntb3MgPSBuZXcgQ29zbW9zRGJBY2NvdW50KHN0YWNrLCBcIlRlc3RDb3Ntb3NcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QoY29zbW9zKS50b0JlSW5zdGFuY2VPZihDb3Ntb3NEYkFjY291bnQpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgY3JlYXRlIHRlcnJhZm9ybSBvdXRwdXRzXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHJnID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJHXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXJnXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHByb3BzOiBDb3Ntb3NEYkFjY291bnRQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0Y29zbW9zYWNjb3VudFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZy5pZCxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGNvc21vcyA9IG5ldyBDb3Ntb3NEYkFjY291bnQoc3RhY2ssIFwiVGVzdENvc21vc1wiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChjb3Ntb3MuaWRPdXRwdXQpLnRvQmVJbnN0YW5jZU9mKGNka3RuLlRlcnJhZm9ybU91dHB1dCk7XG4gICAgICBleHBlY3QoY29zbW9zLmxvY2F0aW9uT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0bi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KGNvc21vcy5uYW1lT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0bi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KGNvc21vcy50YWdzT3V0cHV0KS50b0JlSW5zdGFuY2VPZihjZGt0bi5UZXJyYWZvcm1PdXRwdXQpO1xuICAgICAgZXhwZWN0KGNvc21vcy5kb2N1bWVudEVuZHBvaW50T3V0cHV0KS50b0JlSW5zdGFuY2VPZihcbiAgICAgICAgY2RrdG4uVGVycmFmb3JtT3V0cHV0LFxuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJraW5kIGNvbmZpZ3VyYXRpb25cIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGFjY2VwdCBHbG9iYWxEb2N1bWVudERCIGtpbmRcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcmcgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJUZXN0UkdcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgcHJvcHM6IENvc21vc0RiQWNjb3VudFByb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3Rjb3Ntb3NhY2NvdW50XCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJnLmlkLFxuICAgICAgICBraW5kOiBcIkdsb2JhbERvY3VtZW50REJcIixcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGNvc21vcyA9IG5ldyBDb3Ntb3NEYkFjY291bnQoc3RhY2ssIFwiVGVzdENvc21vc1wiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChjb3Ntb3MucHJvcHMua2luZCkudG9CZShcIkdsb2JhbERvY3VtZW50REJcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBhY2NlcHQgTW9uZ29EQiBraW5kXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHJnID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJHXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXJnXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHByb3BzOiBDb3Ntb3NEYkFjY291bnRQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0Y29zbW9zbW9uZ29cIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmcuaWQsXG4gICAgICAgIGtpbmQ6IFwiTW9uZ29EQlwiLFxuICAgICAgICBjYXBhYmlsaXRpZXM6IFt7IG5hbWU6IFwiRW5hYmxlTW9uZ29cIiB9XSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGNvc21vcyA9IG5ldyBDb3Ntb3NEYkFjY291bnQoc3RhY2ssIFwiVGVzdENvc21vc1wiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChjb3Ntb3MucHJvcHMua2luZCkudG9CZShcIk1vbmdvREJcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiY29uc2lzdGVuY3kgcG9saWN5XCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjb25maWd1cmUgU2Vzc2lvbiBjb25zaXN0ZW5jeSBieSBkZWZhdWx0IHdoZW4gbm9uZSBwcm92aWRlZFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZyA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIlRlc3RSR1wiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBwcm9wczogQ29zbW9zRGJBY2NvdW50UHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdGNvc21vc2NvbnNpc3RlbmN5XCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJnLmlkLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgY29zbW9zID0gbmV3IENvc21vc0RiQWNjb3VudChzdGFjaywgXCJUZXN0Q29zbW9zXCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KGNvc21vcykudG9CZUluc3RhbmNlT2YoQ29zbW9zRGJBY2NvdW50KTtcbiAgICB9KTtcblxuICAgIGl0KFwic2hvdWxkIGNvbmZpZ3VyZSBTdHJvbmcgY29uc2lzdGVuY3kgd2hlbiBzcGVjaWZpZWRcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcmcgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJUZXN0UkdcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgcHJvcHM6IENvc21vc0RiQWNjb3VudFByb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3Rjb3Ntb3NzdHJvbmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmcuaWQsXG4gICAgICAgIGNvbnNpc3RlbmN5UG9saWN5OiB7XG4gICAgICAgICAgZGVmYXVsdENvbnNpc3RlbmN5TGV2ZWw6IFwiU3Ryb25nXCIsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBjb3Ntb3MgPSBuZXcgQ29zbW9zRGJBY2NvdW50KHN0YWNrLCBcIlRlc3RDb3Ntb3NcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QoY29zbW9zLnByb3BzLmNvbnNpc3RlbmN5UG9saWN5Py5kZWZhdWx0Q29uc2lzdGVuY3lMZXZlbCkudG9CZShcbiAgICAgICAgXCJTdHJvbmdcIixcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBjb25maWd1cmUgQm91bmRlZFN0YWxlbmVzcyBjb25zaXN0ZW5jeVwiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZyA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIlRlc3RSR1wiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBwcm9wczogQ29zbW9zRGJBY2NvdW50UHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdGNvc21vc2JvdW5kZWRcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmcuaWQsXG4gICAgICAgIGNvbnNpc3RlbmN5UG9saWN5OiB7XG4gICAgICAgICAgZGVmYXVsdENvbnNpc3RlbmN5TGV2ZWw6IFwiQm91bmRlZFN0YWxlbmVzc1wiLFxuICAgICAgICAgIG1heEludGVydmFsSW5TZWNvbmRzOiA4NjQwMCxcbiAgICAgICAgICBtYXhTdGFsZW5lc3NQcmVmaXg6IDEwMDAwMDAsXG4gICAgICAgIH0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBjb3Ntb3MgPSBuZXcgQ29zbW9zRGJBY2NvdW50KHN0YWNrLCBcIlRlc3RDb3Ntb3NcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QoY29zbW9zLnByb3BzLmNvbnNpc3RlbmN5UG9saWN5Py5kZWZhdWx0Q29uc2lzdGVuY3lMZXZlbCkudG9CZShcbiAgICAgICAgXCJCb3VuZGVkU3RhbGVuZXNzXCIsXG4gICAgICApO1xuICAgICAgZXhwZWN0KGNvc21vcy5wcm9wcy5jb25zaXN0ZW5jeVBvbGljeT8ubWF4SW50ZXJ2YWxJblNlY29uZHMpLnRvQmUoODY0MDApO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIm11bHRpLXJlZ2lvbiBjb25maWd1cmF0aW9uXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCBjb25maWd1cmUgbXVsdGlwbGUgZ2VvIGxvY2F0aW9ucyB3aXRoIGZhaWxvdmVyXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHJnID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJHXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXJnXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHByb3BzOiBDb3Ntb3NEYkFjY291bnRQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0Y29zbW9zZ2VvXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJnLmlkLFxuICAgICAgICBlbmFibGVBdXRvbWF0aWNGYWlsb3ZlcjogdHJ1ZSxcbiAgICAgICAgZ2VvTG9jYXRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgbG9jYXRpb25OYW1lOiBcImVhc3R1c1wiLFxuICAgICAgICAgICAgZmFpbG92ZXJQcmlvcml0eTogMCxcbiAgICAgICAgICAgIGlzWm9uZVJlZHVuZGFudDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHsgbG9jYXRpb25OYW1lOiBcIndlc3R1c1wiLCBmYWlsb3ZlclByaW9yaXR5OiAxIH0sXG4gICAgICAgIF0sXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBjb3Ntb3MgPSBuZXcgQ29zbW9zRGJBY2NvdW50KHN0YWNrLCBcIlRlc3RDb3Ntb3NcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QoY29zbW9zLnByb3BzLmVuYWJsZUF1dG9tYXRpY0ZhaWxvdmVyKS50b0JlKHRydWUpO1xuICAgICAgZXhwZWN0KGNvc21vcy5wcm9wcy5nZW9Mb2NhdGlvbnMpLnRvSGF2ZUxlbmd0aCgyKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoXCJjYXBhYmlsaXRpZXNcIiwgKCkgPT4ge1xuICAgIGl0KFwic2hvdWxkIGNvbmZpZ3VyZSBzZXJ2ZXJsZXNzIGNhcGFiaWxpdHlcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcmcgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJUZXN0UkdcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgcHJvcHM6IENvc21vc0RiQWNjb3VudFByb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3Rjb3Ntb3NzZXJ2ZXJsZXNzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJnLmlkLFxuICAgICAgICBjYXBhYmlsaXRpZXM6IFt7IG5hbWU6IFwiRW5hYmxlU2VydmVybGVzc1wiIH1dLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgY29zbW9zID0gbmV3IENvc21vc0RiQWNjb3VudChzdGFjaywgXCJUZXN0Q29zbW9zXCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KGNvc21vcy5wcm9wcy5jYXBhYmlsaXRpZXMpLnRvRXF1YWwoW3sgbmFtZTogXCJFbmFibGVTZXJ2ZXJsZXNzXCIgfV0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcInRhZyBtYW5hZ2VtZW50XCIsICgpID0+IHtcbiAgICBsZXQgY29zbW9zOiBDb3Ntb3NEYkFjY291bnQ7XG5cbiAgICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICAgIGNvbnN0IHJnID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJHXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXJnXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHByb3BzOiBDb3Ntb3NEYkFjY291bnRQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0Y29zbW9zdGFnc1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZy5pZCxcbiAgICAgICAgdGFnczoge1xuICAgICAgICAgIGVudmlyb25tZW50OiBcInRlc3RcIixcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIGNvc21vcyA9IG5ldyBDb3Ntb3NEYkFjY291bnQoc3RhY2ssIFwiVGVzdENvc21vc1wiLCBwcm9wcyk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBhZGQgYSB0YWdcIiwgKCkgPT4ge1xuICAgICAgY29zbW9zLmFkZFRhZyhcIm5ld1RhZ1wiLCBcIm5ld1ZhbHVlXCIpO1xuXG4gICAgICBleHBlY3QoY29zbW9zLnByb3BzLnRhZ3MhLm5ld1RhZykudG9CZShcIm5ld1ZhbHVlXCIpO1xuICAgICAgZXhwZWN0KGNvc21vcy5wcm9wcy50YWdzIS5lbnZpcm9ubWVudCkudG9CZShcInRlc3RcIik7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCByZW1vdmUgYW4gZXhpc3RpbmcgdGFnXCIsICgpID0+IHtcbiAgICAgIGNvc21vcy5yZW1vdmVUYWcoXCJlbnZpcm9ubWVudFwiKTtcblxuICAgICAgZXhwZWN0KGNvc21vcy5wcm9wcy50YWdzIS5lbnZpcm9ubWVudCkudG9CZVVuZGVmaW5lZCgpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgYWRkIGEgdGFnIHdoZW4gbm8gdGFncyBleGlzdFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZyA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIlRlc3RSRzJcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmcyXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHByb3BzOiBDb3Ntb3NEYkFjY291bnRQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0Y29zbW9zbm90YWdzXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJnLmlkLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgYyA9IG5ldyBDb3Ntb3NEYkFjY291bnQoc3RhY2ssIFwiVGVzdENvc21vc05vVGFnc1wiLCBwcm9wcyk7XG4gICAgICBjLmFkZFRhZyhcImZpcnN0VGFnXCIsIFwiZmlyc3RWYWx1ZVwiKTtcblxuICAgICAgZXhwZWN0KGMucHJvcHMudGFncyEuZmlyc3RUYWcpLnRvQmUoXCJmaXJzdFZhbHVlXCIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZShcIkFQSSB2ZXJzaW9uaW5nXCIsICgpID0+IHtcbiAgICBpdChcInNob3VsZCB1c2UgZGVmYXVsdCB2ZXJzaW9uIHdoZW4gbm90IHNwZWNpZmllZFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZyA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIlRlc3RSR1wiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBwcm9wczogQ29zbW9zRGJBY2NvdW50UHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdGNvc21vc2RlZmF1bHRcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICAgIHJlc291cmNlR3JvdXBJZDogcmcuaWQsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBjb3Ntb3MgPSBuZXcgQ29zbW9zRGJBY2NvdW50KHN0YWNrLCBcIlRlc3RDb3Ntb3NcIiwgcHJvcHMpO1xuXG4gICAgICBleHBlY3QoY29zbW9zKS50b0JlSW5zdGFuY2VPZihDb3Ntb3NEYkFjY291bnQpO1xuICAgIH0pO1xuXG4gICAgaXQoXCJzaG91bGQgYWNjZXB0IHNwZWNpZmljIEFQSSB2ZXJzaW9uXCIsICgpID0+IHtcbiAgICAgIGNvbnN0IHJnID0gbmV3IFJlc291cmNlR3JvdXAoc3RhY2ssIFwiVGVzdFJHXCIsIHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0LXJnXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IHByb3BzOiBDb3Ntb3NEYkFjY291bnRQcm9wcyA9IHtcbiAgICAgICAgbmFtZTogXCJ0ZXN0Y29zbW9zdmVyc2lvbmVkXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJnLmlkLFxuICAgICAgICBhcGlWZXJzaW9uOiBcIjIwMjQtMDUtMTVcIixcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IGNvc21vcyA9IG5ldyBDb3Ntb3NEYkFjY291bnQoc3RhY2ssIFwiVGVzdENvc21vc1wiLCBwcm9wcyk7XG5cbiAgICAgIGV4cGVjdChjb3Ntb3MucHJvcHMuYXBpVmVyc2lvbikudG9CZShcIjIwMjQtMDUtMTVcIik7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiQ0RLIFRlcnJhZm9ybSBpbnRlZ3JhdGlvblwiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgc3ludGhlc2l6ZSB0byB2YWxpZCBUZXJyYWZvcm1cIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcmcgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJUZXN0UkdcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgcHJvcHM6IENvc21vc0RiQWNjb3VudFByb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3Rjb3Ntb3NzeW50aFwiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgICAgcmVzb3VyY2VHcm91cElkOiByZy5pZCxcbiAgICAgICAgdGFnczoge1xuICAgICAgICAgIGVudmlyb25tZW50OiBcInRlc3RcIixcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIG5ldyBDb3Ntb3NEYkFjY291bnQoc3RhY2ssIFwiVGVzdENvc21vc1wiLCBwcm9wcyk7XG5cbiAgICAgIGNvbnN0IHN5bnRoZXNpemVkID0gVGVzdGluZy5zeW50aChzdGFjayk7XG4gICAgICBleHBlY3Qoc3ludGhlc2l6ZWQpLnRvQmVEZWZpbmVkKCk7XG5cbiAgICAgIGNvbnN0IHN0YWNrQ29uZmlnID0gSlNPTi5wYXJzZShzeW50aGVzaXplZCk7XG4gICAgICBleHBlY3Qoc3RhY2tDb25maWcucmVzb3VyY2UpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG5cbiAgICBpdChcInNob3VsZCBoYXZlIGNvcnJlY3QgbG9naWNhbCBJRHMgZm9yIG91dHB1dHNcIiwgKCkgPT4ge1xuICAgICAgY29uc3QgcmcgPSBuZXcgUmVzb3VyY2VHcm91cChzdGFjaywgXCJUZXN0UkdcIiwge1xuICAgICAgICBuYW1lOiBcInRlc3QtcmdcIixcbiAgICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgcHJvcHM6IENvc21vc0RiQWNjb3VudFByb3BzID0ge1xuICAgICAgICBuYW1lOiBcInRlc3Rjb3Ntb3Nsb2dpY2FsXCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJnLmlkLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgY29zbW9zID0gbmV3IENvc21vc0RiQWNjb3VudChzdGFjaywgXCJUZXN0Q29zbW9zXCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KGNvc21vcy5pZE91dHB1dCkudG9CZURlZmluZWQoKTtcbiAgICAgIGV4cGVjdChjb3Ntb3MubG9jYXRpb25PdXRwdXQpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QoY29zbW9zLm5hbWVPdXRwdXQpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QoY29zbW9zLnRhZ3NPdXRwdXQpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3QoY29zbW9zLmRvY3VtZW50RW5kcG9pbnRPdXRwdXQpLnRvQmVEZWZpbmVkKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKFwiZW5kcG9pbnQgcHJvcGVydGllc1wiLCAoKSA9PiB7XG4gICAgaXQoXCJzaG91bGQgcHJvdmlkZSBkb2N1bWVudCBlbmRwb2ludFwiLCAoKSA9PiB7XG4gICAgICBjb25zdCByZyA9IG5ldyBSZXNvdXJjZUdyb3VwKHN0YWNrLCBcIlRlc3RSR1wiLCB7XG4gICAgICAgIG5hbWU6IFwidGVzdC1yZ1wiLFxuICAgICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBwcm9wczogQ29zbW9zRGJBY2NvdW50UHJvcHMgPSB7XG4gICAgICAgIG5hbWU6IFwidGVzdGNvc21vc2VuZHBvaW50XCIsXG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICByZXNvdXJjZUdyb3VwSWQ6IHJnLmlkLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgY29zbW9zID0gbmV3IENvc21vc0RiQWNjb3VudChzdGFjaywgXCJUZXN0Q29zbW9zXCIsIHByb3BzKTtcblxuICAgICAgZXhwZWN0KGNvc21vcy5kb2N1bWVudEVuZHBvaW50KS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KGNvc21vcy5kb2N1bWVudEVuZHBvaW50KS50b0NvbnRhaW4oXCJkb2N1bWVudEVuZHBvaW50XCIpO1xuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./lib";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./lib"), exports);
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp1cmUtZGF0YWV4cGxvcmVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx3Q0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9saWJcIjtcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ApiSchema, VersionConfig } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
|
|
2
|
+
export declare const DATA_EXPLORER_CLUSTER_SCHEMA_2024_04_13: ApiSchema;
|
|
3
|
+
export declare const DATA_EXPLORER_CLUSTER_VERSION_2024_04_13: VersionConfig;
|
|
4
|
+
export declare const ALL_DATA_EXPLORER_CLUSTER_VERSIONS: VersionConfig[];
|
|
5
|
+
export declare const DATA_EXPLORER_CLUSTER_TYPE = "Microsoft.Kusto/clusters";
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DATA_EXPLORER_CLUSTER_TYPE = exports.ALL_DATA_EXPLORER_CLUSTER_VERSIONS = exports.DATA_EXPLORER_CLUSTER_VERSION_2024_04_13 = exports.DATA_EXPLORER_CLUSTER_SCHEMA_2024_04_13 = void 0;
|
|
4
|
+
const version_interfaces_1 = require("../../core-azure/lib/version-manager/interfaces/version-interfaces");
|
|
5
|
+
const COMMON_PROPERTIES = {
|
|
6
|
+
location: {
|
|
7
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
8
|
+
required: true,
|
|
9
|
+
description: "Azure region where the Data Explorer cluster will be created",
|
|
10
|
+
validation: [
|
|
11
|
+
{
|
|
12
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
13
|
+
message: "Location is required for Data Explorer clusters",
|
|
14
|
+
},
|
|
15
|
+
],
|
|
16
|
+
},
|
|
17
|
+
tags: {
|
|
18
|
+
dataType: version_interfaces_1.PropertyType.OBJECT,
|
|
19
|
+
required: false,
|
|
20
|
+
description: "Tags to apply to the Data Explorer cluster",
|
|
21
|
+
},
|
|
22
|
+
name: {
|
|
23
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
24
|
+
required: true,
|
|
25
|
+
description: "Cluster name",
|
|
26
|
+
validation: [
|
|
27
|
+
{
|
|
28
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
29
|
+
message: "Name is required for Data Explorer clusters",
|
|
30
|
+
},
|
|
31
|
+
],
|
|
32
|
+
},
|
|
33
|
+
sku: {
|
|
34
|
+
dataType: version_interfaces_1.PropertyType.OBJECT,
|
|
35
|
+
required: true,
|
|
36
|
+
description: "The SKU of the cluster",
|
|
37
|
+
validation: [
|
|
38
|
+
{
|
|
39
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
40
|
+
message: "SKU is required for Data Explorer clusters",
|
|
41
|
+
},
|
|
42
|
+
],
|
|
43
|
+
},
|
|
44
|
+
identity: {
|
|
45
|
+
dataType: version_interfaces_1.PropertyType.OBJECT,
|
|
46
|
+
required: false,
|
|
47
|
+
description: "Managed identity configuration",
|
|
48
|
+
},
|
|
49
|
+
trustedExternalTenants: {
|
|
50
|
+
dataType: version_interfaces_1.PropertyType.ARRAY,
|
|
51
|
+
required: false,
|
|
52
|
+
description: "Trusted external tenants",
|
|
53
|
+
},
|
|
54
|
+
optimizedAutoscale: {
|
|
55
|
+
dataType: version_interfaces_1.PropertyType.OBJECT,
|
|
56
|
+
required: false,
|
|
57
|
+
description: "Optimized autoscale configuration",
|
|
58
|
+
},
|
|
59
|
+
enableDiskEncryption: {
|
|
60
|
+
dataType: version_interfaces_1.PropertyType.BOOLEAN,
|
|
61
|
+
required: false,
|
|
62
|
+
description: "Enable disk encryption",
|
|
63
|
+
},
|
|
64
|
+
enableStreamingIngest: {
|
|
65
|
+
dataType: version_interfaces_1.PropertyType.BOOLEAN,
|
|
66
|
+
required: false,
|
|
67
|
+
description: "Enable streaming ingest",
|
|
68
|
+
},
|
|
69
|
+
enablePurge: {
|
|
70
|
+
dataType: version_interfaces_1.PropertyType.BOOLEAN,
|
|
71
|
+
required: false,
|
|
72
|
+
description: "Enable purge operations",
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
exports.DATA_EXPLORER_CLUSTER_SCHEMA_2024_04_13 = {
|
|
76
|
+
resourceType: "Microsoft.Kusto/clusters",
|
|
77
|
+
version: "2024-04-13",
|
|
78
|
+
properties: {
|
|
79
|
+
...COMMON_PROPERTIES,
|
|
80
|
+
},
|
|
81
|
+
required: ["location", "name", "sku"],
|
|
82
|
+
optional: [
|
|
83
|
+
"tags",
|
|
84
|
+
"identity",
|
|
85
|
+
"trustedExternalTenants",
|
|
86
|
+
"optimizedAutoscale",
|
|
87
|
+
"enableDiskEncryption",
|
|
88
|
+
"enableStreamingIngest",
|
|
89
|
+
"enablePurge",
|
|
90
|
+
],
|
|
91
|
+
deprecated: [],
|
|
92
|
+
transformationRules: {},
|
|
93
|
+
validationRules: [
|
|
94
|
+
{
|
|
95
|
+
property: "location",
|
|
96
|
+
rules: [
|
|
97
|
+
{
|
|
98
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
99
|
+
message: "Location is required for Data Explorer clusters",
|
|
100
|
+
},
|
|
101
|
+
],
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
property: "sku",
|
|
105
|
+
rules: [
|
|
106
|
+
{
|
|
107
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
108
|
+
message: "SKU is required for Data Explorer clusters",
|
|
109
|
+
},
|
|
110
|
+
],
|
|
111
|
+
},
|
|
112
|
+
],
|
|
113
|
+
};
|
|
114
|
+
exports.DATA_EXPLORER_CLUSTER_VERSION_2024_04_13 = {
|
|
115
|
+
version: "2024-04-13",
|
|
116
|
+
schema: exports.DATA_EXPLORER_CLUSTER_SCHEMA_2024_04_13,
|
|
117
|
+
supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
|
|
118
|
+
releaseDate: "2024-04-13",
|
|
119
|
+
changeLog: [
|
|
120
|
+
{
|
|
121
|
+
changeType: "added",
|
|
122
|
+
description: "Initial Data Explorer cluster construct support",
|
|
123
|
+
breaking: false,
|
|
124
|
+
},
|
|
125
|
+
],
|
|
126
|
+
};
|
|
127
|
+
exports.ALL_DATA_EXPLORER_CLUSTER_VERSIONS = [
|
|
128
|
+
exports.DATA_EXPLORER_CLUSTER_VERSION_2024_04_13,
|
|
129
|
+
];
|
|
130
|
+
exports.DATA_EXPLORER_CLUSTER_TYPE = "Microsoft.Kusto/clusters";
|
|
131
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1leHBsb3Jlci1jbHVzdGVyLXNjaGVtYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtZGF0YWV4cGxvcmVyL2xpYi9kYXRhLWV4cGxvcmVyLWNsdXN0ZXItc2NoZW1hcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyR0FPNEU7QUFFNUUsTUFBTSxpQkFBaUIsR0FBMEM7SUFDL0QsUUFBUSxFQUFFO1FBQ1IsUUFBUSxFQUFFLGlDQUFZLENBQUMsTUFBTTtRQUM3QixRQUFRLEVBQUUsSUFBSTtRQUNkLFdBQVcsRUFBRSw4REFBOEQ7UUFDM0UsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLFFBQVE7Z0JBQ3JDLE9BQU8sRUFBRSxpREFBaUQ7YUFDM0Q7U0FDRjtLQUNGO0lBQ0QsSUFBSSxFQUFFO1FBQ0osUUFBUSxFQUFFLGlDQUFZLENBQUMsTUFBTTtRQUM3QixRQUFRLEVBQUUsS0FBSztRQUNmLFdBQVcsRUFBRSw0Q0FBNEM7S0FDMUQ7SUFDRCxJQUFJLEVBQUU7UUFDSixRQUFRLEVBQUUsaUNBQVksQ0FBQyxNQUFNO1FBQzdCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsV0FBVyxFQUFFLGNBQWM7UUFDM0IsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLFFBQVE7Z0JBQ3JDLE9BQU8sRUFBRSw2Q0FBNkM7YUFDdkQ7U0FDRjtLQUNGO0lBQ0QsR0FBRyxFQUFFO1FBQ0gsUUFBUSxFQUFFLGlDQUFZLENBQUMsTUFBTTtRQUM3QixRQUFRLEVBQUUsSUFBSTtRQUNkLFdBQVcsRUFBRSx3QkFBd0I7UUFDckMsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLFFBQVE7Z0JBQ3JDLE9BQU8sRUFBRSw0Q0FBNEM7YUFDdEQ7U0FDRjtLQUNGO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsUUFBUSxFQUFFLGlDQUFZLENBQUMsTUFBTTtRQUM3QixRQUFRLEVBQUUsS0FBSztRQUNmLFdBQVcsRUFBRSxnQ0FBZ0M7S0FDOUM7SUFDRCxzQkFBc0IsRUFBRTtRQUN0QixRQUFRLEVBQUUsaUNBQVksQ0FBQyxLQUFLO1FBQzVCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsV0FBVyxFQUFFLDBCQUEwQjtLQUN4QztJQUNELGtCQUFrQixFQUFFO1FBQ2xCLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLEtBQUs7UUFDZixXQUFXLEVBQUUsbUNBQW1DO0tBQ2pEO0lBQ0Qsb0JBQW9CLEVBQUU7UUFDcEIsUUFBUSxFQUFFLGlDQUFZLENBQUMsT0FBTztRQUM5QixRQUFRLEVBQUUsS0FBSztRQUNmLFdBQVcsRUFBRSx3QkFBd0I7S0FDdEM7SUFDRCxxQkFBcUIsRUFBRTtRQUNyQixRQUFRLEVBQUUsaUNBQVksQ0FBQyxPQUFPO1FBQzlCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsV0FBVyxFQUFFLHlCQUF5QjtLQUN2QztJQUNELFdBQVcsRUFBRTtRQUNYLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE9BQU87UUFDOUIsUUFBUSxFQUFFLEtBQUs7UUFDZixXQUFXLEVBQUUseUJBQXlCO0tBQ3ZDO0NBQ0YsQ0FBQztBQUVXLFFBQUEsdUNBQXVDLEdBQWM7SUFDaEUsWUFBWSxFQUFFLDBCQUEwQjtJQUN4QyxPQUFPLEVBQUUsWUFBWTtJQUNyQixVQUFVLEVBQUU7UUFDVixHQUFHLGlCQUFpQjtLQUNyQjtJQUNELFFBQVEsRUFBRSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDO0lBQ3JDLFFBQVEsRUFBRTtRQUNSLE1BQU07UUFDTixVQUFVO1FBQ1Ysd0JBQXdCO1FBQ3hCLG9CQUFvQjtRQUNwQixzQkFBc0I7UUFDdEIsdUJBQXVCO1FBQ3ZCLGFBQWE7S0FDZDtJQUNELFVBQVUsRUFBRSxFQUFFO0lBQ2QsbUJBQW1CLEVBQUUsRUFBRTtJQUN2QixlQUFlLEVBQUU7UUFDZjtZQUNFLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLEtBQUssRUFBRTtnQkFDTDtvQkFDRSxRQUFRLEVBQUUsdUNBQWtCLENBQUMsUUFBUTtvQkFDckMsT0FBTyxFQUFFLGlEQUFpRDtpQkFDM0Q7YUFDRjtTQUNGO1FBQ0Q7WUFDRSxRQUFRLEVBQUUsS0FBSztZQUNmLEtBQUssRUFBRTtnQkFDTDtvQkFDRSxRQUFRLEVBQUUsdUNBQWtCLENBQUMsUUFBUTtvQkFDckMsT0FBTyxFQUFFLDRDQUE0QztpQkFDdEQ7YUFDRjtTQUNGO0tBQ0Y7Q0FDRixDQUFDO0FBRVcsUUFBQSx3Q0FBd0MsR0FBa0I7SUFDckUsT0FBTyxFQUFFLFlBQVk7SUFDckIsTUFBTSxFQUFFLCtDQUF1QztJQUMvQyxZQUFZLEVBQUUsd0NBQW1CLENBQUMsTUFBTTtJQUN4QyxXQUFXLEVBQUUsWUFBWTtJQUN6QixTQUFTLEVBQUU7UUFDVDtZQUNFLFVBQVUsRUFBRSxPQUFPO1lBQ25CLFdBQVcsRUFBRSxpREFBaUQ7WUFDOUQsUUFBUSxFQUFFLEtBQUs7U0FDaEI7S0FDRjtDQUNGLENBQUM7QUFFVyxRQUFBLGtDQUFrQyxHQUFvQjtJQUNqRSxnREFBd0M7Q0FDekMsQ0FBQztBQUVXLFFBQUEsMEJBQTBCLEdBQUcsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBcGlTY2hlbWEsXG4gIFByb3BlcnR5RGVmaW5pdGlvbixcbiAgUHJvcGVydHlUeXBlLFxuICBWYWxpZGF0aW9uUnVsZVR5cGUsXG4gIFZlcnNpb25Db25maWcsXG4gIFZlcnNpb25TdXBwb3J0TGV2ZWwsXG59IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcblxuY29uc3QgQ09NTU9OX1BST1BFUlRJRVM6IHsgW2tleTogc3RyaW5nXTogUHJvcGVydHlEZWZpbml0aW9uIH0gPSB7XG4gIGxvY2F0aW9uOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgZGVzY3JpcHRpb246IFwiQXp1cmUgcmVnaW9uIHdoZXJlIHRoZSBEYXRhIEV4cGxvcmVyIGNsdXN0ZXIgd2lsbCBiZSBjcmVhdGVkXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICBtZXNzYWdlOiBcIkxvY2F0aW9uIGlzIHJlcXVpcmVkIGZvciBEYXRhIEV4cGxvcmVyIGNsdXN0ZXJzXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHRhZ3M6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiVGFncyB0byBhcHBseSB0byB0aGUgRGF0YSBFeHBsb3JlciBjbHVzdGVyXCIsXG4gIH0sXG4gIG5hbWU6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjogXCJDbHVzdGVyIG5hbWVcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgIG1lc3NhZ2U6IFwiTmFtZSBpcyByZXF1aXJlZCBmb3IgRGF0YSBFeHBsb3JlciBjbHVzdGVyc1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBza3U6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjogXCJUaGUgU0tVIG9mIHRoZSBjbHVzdGVyXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICBtZXNzYWdlOiBcIlNLVSBpcyByZXF1aXJlZCBmb3IgRGF0YSBFeHBsb3JlciBjbHVzdGVyc1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBpZGVudGl0eToge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJNYW5hZ2VkIGlkZW50aXR5IGNvbmZpZ3VyYXRpb25cIixcbiAgfSxcbiAgdHJ1c3RlZEV4dGVybmFsVGVuYW50czoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuQVJSQVksXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlRydXN0ZWQgZXh0ZXJuYWwgdGVuYW50c1wiLFxuICB9LFxuICBvcHRpbWl6ZWRBdXRvc2NhbGU6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiT3B0aW1pemVkIGF1dG9zY2FsZSBjb25maWd1cmF0aW9uXCIsXG4gIH0sXG4gIGVuYWJsZURpc2tFbmNyeXB0aW9uOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5CT09MRUFOLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJFbmFibGUgZGlzayBlbmNyeXB0aW9uXCIsXG4gIH0sXG4gIGVuYWJsZVN0cmVhbWluZ0luZ2VzdDoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuQk9PTEVBTixcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiRW5hYmxlIHN0cmVhbWluZyBpbmdlc3RcIixcbiAgfSxcbiAgZW5hYmxlUHVyZ2U6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLkJPT0xFQU4sXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIkVuYWJsZSBwdXJnZSBvcGVyYXRpb25zXCIsXG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgREFUQV9FWFBMT1JFUl9DTFVTVEVSX1NDSEVNQV8yMDI0XzA0XzEzOiBBcGlTY2hlbWEgPSB7XG4gIHJlc291cmNlVHlwZTogXCJNaWNyb3NvZnQuS3VzdG8vY2x1c3RlcnNcIixcbiAgdmVyc2lvbjogXCIyMDI0LTA0LTEzXCIsXG4gIHByb3BlcnRpZXM6IHtcbiAgICAuLi5DT01NT05fUFJPUEVSVElFUyxcbiAgfSxcbiAgcmVxdWlyZWQ6IFtcImxvY2F0aW9uXCIsIFwibmFtZVwiLCBcInNrdVwiXSxcbiAgb3B0aW9uYWw6IFtcbiAgICBcInRhZ3NcIixcbiAgICBcImlkZW50aXR5XCIsXG4gICAgXCJ0cnVzdGVkRXh0ZXJuYWxUZW5hbnRzXCIsXG4gICAgXCJvcHRpbWl6ZWRBdXRvc2NhbGVcIixcbiAgICBcImVuYWJsZURpc2tFbmNyeXB0aW9uXCIsXG4gICAgXCJlbmFibGVTdHJlYW1pbmdJbmdlc3RcIixcbiAgICBcImVuYWJsZVB1cmdlXCIsXG4gIF0sXG4gIGRlcHJlY2F0ZWQ6IFtdLFxuICB0cmFuc2Zvcm1hdGlvblJ1bGVzOiB7fSxcbiAgdmFsaWRhdGlvblJ1bGVzOiBbXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwibG9jYXRpb25cIixcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICAgIG1lc3NhZ2U6IFwiTG9jYXRpb24gaXMgcmVxdWlyZWQgZm9yIERhdGEgRXhwbG9yZXIgY2x1c3RlcnNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJza3VcIixcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICAgIG1lc3NhZ2U6IFwiU0tVIGlzIHJlcXVpcmVkIGZvciBEYXRhIEV4cGxvcmVyIGNsdXN0ZXJzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF0sXG59O1xuXG5leHBvcnQgY29uc3QgREFUQV9FWFBMT1JFUl9DTFVTVEVSX1ZFUlNJT05fMjAyNF8wNF8xMzogVmVyc2lvbkNvbmZpZyA9IHtcbiAgdmVyc2lvbjogXCIyMDI0LTA0LTEzXCIsXG4gIHNjaGVtYTogREFUQV9FWFBMT1JFUl9DTFVTVEVSX1NDSEVNQV8yMDI0XzA0XzEzLFxuICBzdXBwb3J0TGV2ZWw6IFZlcnNpb25TdXBwb3J0TGV2ZWwuQUNUSVZFLFxuICByZWxlYXNlRGF0ZTogXCIyMDI0LTA0LTEzXCIsXG4gIGNoYW5nZUxvZzogW1xuICAgIHtcbiAgICAgIGNoYW5nZVR5cGU6IFwiYWRkZWRcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkluaXRpYWwgRGF0YSBFeHBsb3JlciBjbHVzdGVyIGNvbnN0cnVjdCBzdXBwb3J0XCIsXG4gICAgICBicmVha2luZzogZmFsc2UsXG4gICAgfSxcbiAgXSxcbn07XG5cbmV4cG9ydCBjb25zdCBBTExfREFUQV9FWFBMT1JFUl9DTFVTVEVSX1ZFUlNJT05TOiBWZXJzaW9uQ29uZmlnW10gPSBbXG4gIERBVEFfRVhQTE9SRVJfQ0xVU1RFUl9WRVJTSU9OXzIwMjRfMDRfMTMsXG5dO1xuXG5leHBvcnQgY29uc3QgREFUQV9FWFBMT1JFUl9DTFVTVEVSX1RZUEUgPSBcIk1pY3Jvc29mdC5LdXN0by9jbHVzdGVyc1wiO1xuIl19
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import * as cdktn from "cdktn";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
import { AzapiResource, AzapiResourceProps } from "../../core-azure/lib/azapi/azapi-resource";
|
|
4
|
+
import { ApiSchema } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
|
|
5
|
+
export interface DataExplorerClusterSku {
|
|
6
|
+
readonly name: string;
|
|
7
|
+
readonly capacity?: number;
|
|
8
|
+
readonly tier: string;
|
|
9
|
+
}
|
|
10
|
+
export interface DataExplorerClusterIdentity {
|
|
11
|
+
readonly type: string;
|
|
12
|
+
readonly userAssignedIdentities?: {
|
|
13
|
+
[key: string]: {
|
|
14
|
+
[key: string]: string;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export interface DataExplorerClusterTrustedExternalTenant {
|
|
19
|
+
readonly value: string;
|
|
20
|
+
}
|
|
21
|
+
export interface DataExplorerClusterOptimizedAutoscale {
|
|
22
|
+
readonly version: number;
|
|
23
|
+
readonly isEnabled: boolean;
|
|
24
|
+
readonly minimum: number;
|
|
25
|
+
readonly maximum: number;
|
|
26
|
+
}
|
|
27
|
+
export interface DataExplorerClusterProps extends AzapiResourceProps {
|
|
28
|
+
readonly sku: DataExplorerClusterSku;
|
|
29
|
+
readonly identity?: DataExplorerClusterIdentity;
|
|
30
|
+
readonly trustedExternalTenants?: DataExplorerClusterTrustedExternalTenant[];
|
|
31
|
+
readonly optimizedAutoscale?: DataExplorerClusterOptimizedAutoscale;
|
|
32
|
+
readonly enableDiskEncryption?: boolean;
|
|
33
|
+
readonly enableStreamingIngest?: boolean;
|
|
34
|
+
readonly enablePurge?: boolean;
|
|
35
|
+
readonly resourceGroupId?: string;
|
|
36
|
+
}
|
|
37
|
+
export declare class DataExplorerCluster extends AzapiResource {
|
|
38
|
+
readonly props: DataExplorerClusterProps;
|
|
39
|
+
readonly idOutput: cdktn.TerraformOutput;
|
|
40
|
+
readonly locationOutput: cdktn.TerraformOutput;
|
|
41
|
+
readonly nameOutput: cdktn.TerraformOutput;
|
|
42
|
+
readonly tagsOutput: cdktn.TerraformOutput;
|
|
43
|
+
readonly uriOutput: cdktn.TerraformOutput;
|
|
44
|
+
constructor(scope: Construct, id: string, props: DataExplorerClusterProps);
|
|
45
|
+
protected defaultVersion(): string;
|
|
46
|
+
protected resourceType(): string;
|
|
47
|
+
protected apiSchema(): ApiSchema;
|
|
48
|
+
protected requiresLocation(): boolean;
|
|
49
|
+
protected customizeResourceConfig(config: any): any;
|
|
50
|
+
protected createResourceBody(props: any): any;
|
|
51
|
+
get uri(): string;
|
|
52
|
+
get dataIngestionUri(): string;
|
|
53
|
+
get resourceId(): string;
|
|
54
|
+
}
|