@microsoft/terraform-cdk-constructs 2.2.0 → 2.5.0
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/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.js +1 -1
- 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 +2 -2
- package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +5 -5
- package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +1 -1
- package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +5 -5
- package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +3 -3
- package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +3 -3
- 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,330 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* API schemas for Azure Cosmos DB Database Account across all supported versions
|
|
4
|
+
*
|
|
5
|
+
* This file defines the complete API schemas for Microsoft.DocumentDB/databaseAccounts
|
|
6
|
+
* across all supported API versions. The schemas are used by the VersionedAzapiResource
|
|
7
|
+
* framework for validation, transformation, and version management.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.COSMOS_DB_TYPE = exports.ALL_COSMOS_DB_VERSIONS = exports.COSMOS_DB_VERSION_2024_08_15 = exports.COSMOS_DB_VERSION_2024_05_15 = exports.COSMOS_DB_VERSION_2023_11_15 = exports.COSMOS_DB_SCHEMA_2024_08_15 = exports.COSMOS_DB_SCHEMA_2024_05_15 = exports.COSMOS_DB_SCHEMA_2023_11_15 = void 0;
|
|
11
|
+
const version_interfaces_1 = require("../../core-azure/lib/version-manager/interfaces/version-interfaces");
|
|
12
|
+
// =============================================================================
|
|
13
|
+
// COMMON PROPERTY DEFINITIONS
|
|
14
|
+
// =============================================================================
|
|
15
|
+
/**
|
|
16
|
+
* Common property definitions shared across all Cosmos DB Account versions
|
|
17
|
+
*/
|
|
18
|
+
const COMMON_PROPERTIES = {
|
|
19
|
+
location: {
|
|
20
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
21
|
+
required: true,
|
|
22
|
+
description: "The Azure region where the Cosmos DB Account will be created",
|
|
23
|
+
validation: [
|
|
24
|
+
{
|
|
25
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
26
|
+
message: "Location is required for Cosmos DB Accounts",
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
|
|
30
|
+
value: "^[a-z0-9]+$",
|
|
31
|
+
message: "Location must contain only lowercase letters and numbers",
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
},
|
|
35
|
+
tags: {
|
|
36
|
+
dataType: version_interfaces_1.PropertyType.OBJECT,
|
|
37
|
+
required: false,
|
|
38
|
+
defaultValue: {},
|
|
39
|
+
description: "A dictionary of tags to apply to the Cosmos DB Account",
|
|
40
|
+
validation: [
|
|
41
|
+
{
|
|
42
|
+
ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
|
|
43
|
+
value: version_interfaces_1.PropertyType.OBJECT,
|
|
44
|
+
message: "Tags must be an object with string key-value pairs",
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
},
|
|
48
|
+
name: {
|
|
49
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
50
|
+
required: true,
|
|
51
|
+
description: "The name of the Cosmos DB Account. Must be globally unique across Azure (3-44 lowercase letters, numbers, and hyphens)",
|
|
52
|
+
validation: [
|
|
53
|
+
{
|
|
54
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
55
|
+
message: "Cosmos DB Account name is required",
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
|
|
59
|
+
value: "^[a-z0-9]([a-z0-9-]{1,42}[a-z0-9])?$",
|
|
60
|
+
message: "Cosmos DB Account name must be 3-44 characters of lowercase letters, numbers, and hyphens (cannot start or end with a hyphen)",
|
|
61
|
+
},
|
|
62
|
+
],
|
|
63
|
+
},
|
|
64
|
+
kind: {
|
|
65
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
66
|
+
required: false,
|
|
67
|
+
defaultValue: "GlobalDocumentDB",
|
|
68
|
+
description: "The kind of Cosmos DB Account (GlobalDocumentDB, MongoDB, Parse)",
|
|
69
|
+
validation: [
|
|
70
|
+
{
|
|
71
|
+
ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
|
|
72
|
+
value: "^(GlobalDocumentDB|MongoDB|Parse)$",
|
|
73
|
+
message: "Kind must be GlobalDocumentDB, MongoDB, or Parse",
|
|
74
|
+
},
|
|
75
|
+
],
|
|
76
|
+
},
|
|
77
|
+
databaseAccountOfferType: {
|
|
78
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
79
|
+
required: false,
|
|
80
|
+
defaultValue: "Standard",
|
|
81
|
+
description: "The offer type for the Cosmos DB Account (Standard)",
|
|
82
|
+
},
|
|
83
|
+
consistencyPolicy: {
|
|
84
|
+
dataType: version_interfaces_1.PropertyType.OBJECT,
|
|
85
|
+
required: false,
|
|
86
|
+
description: "The consistency policy for the Cosmos DB Account",
|
|
87
|
+
},
|
|
88
|
+
geoLocations: {
|
|
89
|
+
dataType: version_interfaces_1.PropertyType.ARRAY,
|
|
90
|
+
required: false,
|
|
91
|
+
description: "Geo-replication locations for the Cosmos DB Account",
|
|
92
|
+
},
|
|
93
|
+
capabilities: {
|
|
94
|
+
dataType: version_interfaces_1.PropertyType.ARRAY,
|
|
95
|
+
required: false,
|
|
96
|
+
description: "Capabilities to enable on the Cosmos DB Account (e.g. EnableServerless, EnableCassandra, EnableTable, EnableGremlin)",
|
|
97
|
+
},
|
|
98
|
+
publicNetworkAccess: {
|
|
99
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
100
|
+
required: false,
|
|
101
|
+
defaultValue: "Enabled",
|
|
102
|
+
description: "Whether public network access is enabled (Enabled, Disabled)",
|
|
103
|
+
validation: [
|
|
104
|
+
{
|
|
105
|
+
ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
|
|
106
|
+
value: "^(Enabled|Disabled)$",
|
|
107
|
+
message: "publicNetworkAccess must be Enabled or Disabled",
|
|
108
|
+
},
|
|
109
|
+
],
|
|
110
|
+
},
|
|
111
|
+
enableAutomaticFailover: {
|
|
112
|
+
dataType: version_interfaces_1.PropertyType.BOOLEAN,
|
|
113
|
+
required: false,
|
|
114
|
+
defaultValue: false,
|
|
115
|
+
description: "Whether automatic failover is enabled",
|
|
116
|
+
},
|
|
117
|
+
enableMultipleWriteLocations: {
|
|
118
|
+
dataType: version_interfaces_1.PropertyType.BOOLEAN,
|
|
119
|
+
required: false,
|
|
120
|
+
defaultValue: false,
|
|
121
|
+
description: "Whether multi-region writes are enabled",
|
|
122
|
+
},
|
|
123
|
+
enableFreeTier: {
|
|
124
|
+
dataType: version_interfaces_1.PropertyType.BOOLEAN,
|
|
125
|
+
required: false,
|
|
126
|
+
defaultValue: false,
|
|
127
|
+
description: "Whether the free tier is enabled for the account",
|
|
128
|
+
},
|
|
129
|
+
isVirtualNetworkFilterEnabled: {
|
|
130
|
+
dataType: version_interfaces_1.PropertyType.BOOLEAN,
|
|
131
|
+
required: false,
|
|
132
|
+
defaultValue: false,
|
|
133
|
+
description: "Whether virtual network filtering is enabled",
|
|
134
|
+
},
|
|
135
|
+
minimalTlsVersion: {
|
|
136
|
+
dataType: version_interfaces_1.PropertyType.STRING,
|
|
137
|
+
required: false,
|
|
138
|
+
defaultValue: "Tls12",
|
|
139
|
+
description: "The minimum TLS version for the Cosmos DB Account (Tls, Tls11, Tls12)",
|
|
140
|
+
},
|
|
141
|
+
backupPolicy: {
|
|
142
|
+
dataType: version_interfaces_1.PropertyType.OBJECT,
|
|
143
|
+
required: false,
|
|
144
|
+
description: "The backup policy configuration for the Cosmos DB Account",
|
|
145
|
+
},
|
|
146
|
+
identity: {
|
|
147
|
+
dataType: version_interfaces_1.PropertyType.OBJECT,
|
|
148
|
+
required: false,
|
|
149
|
+
description: "Managed identity configuration for the Cosmos DB Account",
|
|
150
|
+
},
|
|
151
|
+
ignoreChanges: {
|
|
152
|
+
dataType: version_interfaces_1.PropertyType.ARRAY,
|
|
153
|
+
required: false,
|
|
154
|
+
description: "Array of property names to ignore during updates",
|
|
155
|
+
validation: [
|
|
156
|
+
{
|
|
157
|
+
ruleType: version_interfaces_1.ValidationRuleType.TYPE_CHECK,
|
|
158
|
+
value: version_interfaces_1.PropertyType.ARRAY,
|
|
159
|
+
message: "IgnoreChanges must be an array of strings",
|
|
160
|
+
},
|
|
161
|
+
],
|
|
162
|
+
},
|
|
163
|
+
};
|
|
164
|
+
const COMMON_REQUIRED = ["location", "name"];
|
|
165
|
+
const COMMON_OPTIONAL = [
|
|
166
|
+
"tags",
|
|
167
|
+
"kind",
|
|
168
|
+
"databaseAccountOfferType",
|
|
169
|
+
"consistencyPolicy",
|
|
170
|
+
"geoLocations",
|
|
171
|
+
"capabilities",
|
|
172
|
+
"publicNetworkAccess",
|
|
173
|
+
"enableAutomaticFailover",
|
|
174
|
+
"enableMultipleWriteLocations",
|
|
175
|
+
"enableFreeTier",
|
|
176
|
+
"isVirtualNetworkFilterEnabled",
|
|
177
|
+
"minimalTlsVersion",
|
|
178
|
+
"backupPolicy",
|
|
179
|
+
"identity",
|
|
180
|
+
"ignoreChanges",
|
|
181
|
+
];
|
|
182
|
+
const COMMON_VALIDATION_RULES = [
|
|
183
|
+
{
|
|
184
|
+
property: "location",
|
|
185
|
+
rules: [
|
|
186
|
+
{
|
|
187
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
188
|
+
message: "Location is required for Cosmos DB Accounts",
|
|
189
|
+
},
|
|
190
|
+
],
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
property: "name",
|
|
194
|
+
rules: [
|
|
195
|
+
{
|
|
196
|
+
ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
|
|
197
|
+
message: "Name is required for Cosmos DB Accounts",
|
|
198
|
+
},
|
|
199
|
+
],
|
|
200
|
+
},
|
|
201
|
+
];
|
|
202
|
+
// =============================================================================
|
|
203
|
+
// VERSION-SPECIFIC SCHEMAS
|
|
204
|
+
// =============================================================================
|
|
205
|
+
/**
|
|
206
|
+
* API Schema for Cosmos DB Account version 2023-11-15
|
|
207
|
+
*/
|
|
208
|
+
exports.COSMOS_DB_SCHEMA_2023_11_15 = {
|
|
209
|
+
resourceType: "Microsoft.DocumentDB/databaseAccounts",
|
|
210
|
+
version: "2023-11-15",
|
|
211
|
+
properties: {
|
|
212
|
+
...COMMON_PROPERTIES,
|
|
213
|
+
},
|
|
214
|
+
required: [...COMMON_REQUIRED],
|
|
215
|
+
optional: [...COMMON_OPTIONAL],
|
|
216
|
+
deprecated: [],
|
|
217
|
+
transformationRules: {},
|
|
218
|
+
validationRules: [...COMMON_VALIDATION_RULES],
|
|
219
|
+
};
|
|
220
|
+
/**
|
|
221
|
+
* API Schema for Cosmos DB Account version 2024-05-15
|
|
222
|
+
*/
|
|
223
|
+
exports.COSMOS_DB_SCHEMA_2024_05_15 = {
|
|
224
|
+
resourceType: "Microsoft.DocumentDB/databaseAccounts",
|
|
225
|
+
version: "2024-05-15",
|
|
226
|
+
properties: {
|
|
227
|
+
...COMMON_PROPERTIES,
|
|
228
|
+
},
|
|
229
|
+
required: [...COMMON_REQUIRED],
|
|
230
|
+
optional: [...COMMON_OPTIONAL],
|
|
231
|
+
deprecated: [],
|
|
232
|
+
transformationRules: {},
|
|
233
|
+
validationRules: [...COMMON_VALIDATION_RULES],
|
|
234
|
+
};
|
|
235
|
+
/**
|
|
236
|
+
* API Schema for Cosmos DB Account version 2024-08-15
|
|
237
|
+
*/
|
|
238
|
+
exports.COSMOS_DB_SCHEMA_2024_08_15 = {
|
|
239
|
+
resourceType: "Microsoft.DocumentDB/databaseAccounts",
|
|
240
|
+
version: "2024-08-15",
|
|
241
|
+
properties: {
|
|
242
|
+
...COMMON_PROPERTIES,
|
|
243
|
+
},
|
|
244
|
+
required: [...COMMON_REQUIRED],
|
|
245
|
+
optional: [...COMMON_OPTIONAL],
|
|
246
|
+
deprecated: [],
|
|
247
|
+
transformationRules: {},
|
|
248
|
+
validationRules: [...COMMON_VALIDATION_RULES],
|
|
249
|
+
};
|
|
250
|
+
// =============================================================================
|
|
251
|
+
// VERSION CONFIGURATIONS
|
|
252
|
+
// =============================================================================
|
|
253
|
+
/**
|
|
254
|
+
* Version configuration for Cosmos DB Account 2023-11-15
|
|
255
|
+
*/
|
|
256
|
+
exports.COSMOS_DB_VERSION_2023_11_15 = {
|
|
257
|
+
version: "2023-11-15",
|
|
258
|
+
schema: exports.COSMOS_DB_SCHEMA_2023_11_15,
|
|
259
|
+
supportLevel: version_interfaces_1.VersionSupportLevel.DEPRECATED,
|
|
260
|
+
releaseDate: "2023-11-15",
|
|
261
|
+
deprecationDate: "2024-08-15",
|
|
262
|
+
sunsetDate: undefined,
|
|
263
|
+
breakingChanges: [],
|
|
264
|
+
migrationGuide: "/docs/cosmos-db/migration-2023-11-15",
|
|
265
|
+
changeLog: [
|
|
266
|
+
{
|
|
267
|
+
changeType: "deprecated",
|
|
268
|
+
description: "This version is deprecated. Please migrate to 2024-08-15 for continued support.",
|
|
269
|
+
breaking: false,
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
changeType: "added",
|
|
273
|
+
description: "Stable release of Cosmos DB databaseAccounts API",
|
|
274
|
+
breaking: false,
|
|
275
|
+
},
|
|
276
|
+
],
|
|
277
|
+
};
|
|
278
|
+
/**
|
|
279
|
+
* Version configuration for Cosmos DB Account 2024-05-15
|
|
280
|
+
*/
|
|
281
|
+
exports.COSMOS_DB_VERSION_2024_05_15 = {
|
|
282
|
+
version: "2024-05-15",
|
|
283
|
+
schema: exports.COSMOS_DB_SCHEMA_2024_05_15,
|
|
284
|
+
supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
|
|
285
|
+
releaseDate: "2024-05-15",
|
|
286
|
+
deprecationDate: undefined,
|
|
287
|
+
sunsetDate: undefined,
|
|
288
|
+
breakingChanges: [],
|
|
289
|
+
migrationGuide: "/docs/cosmos-db/migration-2024-05-15",
|
|
290
|
+
changeLog: [
|
|
291
|
+
{
|
|
292
|
+
changeType: "updated",
|
|
293
|
+
description: "Adds additional capabilities and continuous backup improvements.",
|
|
294
|
+
breaking: false,
|
|
295
|
+
},
|
|
296
|
+
],
|
|
297
|
+
};
|
|
298
|
+
/**
|
|
299
|
+
* Version configuration for Cosmos DB Account 2024-08-15
|
|
300
|
+
*/
|
|
301
|
+
exports.COSMOS_DB_VERSION_2024_08_15 = {
|
|
302
|
+
version: "2024-08-15",
|
|
303
|
+
schema: exports.COSMOS_DB_SCHEMA_2024_08_15,
|
|
304
|
+
supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
|
|
305
|
+
releaseDate: "2024-08-15",
|
|
306
|
+
deprecationDate: undefined,
|
|
307
|
+
sunsetDate: undefined,
|
|
308
|
+
breakingChanges: [],
|
|
309
|
+
migrationGuide: "/docs/cosmos-db/migration-2024-08-15",
|
|
310
|
+
changeLog: [
|
|
311
|
+
{
|
|
312
|
+
changeType: "updated",
|
|
313
|
+
description: "Latest API version with improved performance, security, and features.",
|
|
314
|
+
breaking: false,
|
|
315
|
+
},
|
|
316
|
+
],
|
|
317
|
+
};
|
|
318
|
+
/**
|
|
319
|
+
* All supported Cosmos DB Account versions for registration
|
|
320
|
+
*/
|
|
321
|
+
exports.ALL_COSMOS_DB_VERSIONS = [
|
|
322
|
+
exports.COSMOS_DB_VERSION_2023_11_15,
|
|
323
|
+
exports.COSMOS_DB_VERSION_2024_05_15,
|
|
324
|
+
exports.COSMOS_DB_VERSION_2024_08_15,
|
|
325
|
+
];
|
|
326
|
+
/**
|
|
327
|
+
* Resource type constant
|
|
328
|
+
*/
|
|
329
|
+
exports.COSMOS_DB_TYPE = "Microsoft.DocumentDB/databaseAccounts";
|
|
330
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29zbW9zLWRiLXNjaGVtYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtY29zbW9zZGIvbGliL2Nvc21vcy1kYi1zY2hlbWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUVILDJHQU80RTtBQUU1RSxnRkFBZ0Y7QUFDaEYsOEJBQThCO0FBQzlCLGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQU0saUJBQWlCLEdBQTBDO0lBQy9ELFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLElBQUk7UUFDZCxXQUFXLEVBQUUsOERBQThEO1FBQzNFLFVBQVUsRUFBRTtZQUNWO2dCQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxRQUFRO2dCQUNyQyxPQUFPLEVBQUUsNkNBQTZDO2FBQ3ZEO1lBQ0Q7Z0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLGFBQWE7Z0JBQzFDLEtBQUssRUFBRSxhQUFhO2dCQUNwQixPQUFPLEVBQUUsMERBQTBEO2FBQ3BFO1NBQ0Y7S0FDRjtJQUNELElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLEtBQUs7UUFDZixZQUFZLEVBQUUsRUFBRTtRQUNoQixXQUFXLEVBQUUsd0RBQXdEO1FBQ3JFLFVBQVUsRUFBRTtZQUNWO2dCQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxVQUFVO2dCQUN2QyxLQUFLLEVBQUUsaUNBQVksQ0FBQyxNQUFNO2dCQUMxQixPQUFPLEVBQUUsb0RBQW9EO2FBQzlEO1NBQ0Y7S0FDRjtJQUNELElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLElBQUk7UUFDZCxXQUFXLEVBQ1Qsd0hBQXdIO1FBQzFILFVBQVUsRUFBRTtZQUNWO2dCQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FB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Q0FBQztBQUVGOztHQUVHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBb0I7SUFDckQsb0NBQTRCO0lBQzVCLG9DQUE0QjtJQUM1QixvQ0FBNEI7Q0FDN0IsQ0FBQztBQUVGOztHQUVHO0FBQ1UsUUFBQSxjQUFjLEdBQUcsdUNBQXVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFQSSBzY2hlbWFzIGZvciBBenVyZSBDb3Ntb3MgREIgRGF0YWJhc2UgQWNjb3VudCBhY3Jvc3MgYWxsIHN1cHBvcnRlZCB2ZXJzaW9uc1xuICpcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIHRoZSBjb21wbGV0ZSBBUEkgc2NoZW1hcyBmb3IgTWljcm9zb2Z0LkRvY3VtZW50REIvZGF0YWJhc2VBY2NvdW50c1xuICogYWNyb3NzIGFsbCBzdXBwb3J0ZWQgQVBJIHZlcnNpb25zLiBUaGUgc2NoZW1hcyBhcmUgdXNlZCBieSB0aGUgVmVyc2lvbmVkQXphcGlSZXNvdXJjZVxuICogZnJhbWV3b3JrIGZvciB2YWxpZGF0aW9uLCB0cmFuc2Zvcm1hdGlvbiwgYW5kIHZlcnNpb24gbWFuYWdlbWVudC5cbiAqL1xuXG5pbXBvcnQge1xuICBBcGlTY2hlbWEsXG4gIFByb3BlcnR5RGVmaW5pdGlvbixcbiAgUHJvcGVydHlUeXBlLFxuICBWYWxpZGF0aW9uUnVsZVR5cGUsXG4gIFZlcnNpb25Db25maWcsXG4gIFZlcnNpb25TdXBwb3J0TGV2ZWwsXG59IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIENPTU1PTiBQUk9QRVJUWSBERUZJTklUSU9OU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBDb21tb24gcHJvcGVydHkgZGVmaW5pdGlvbnMgc2hhcmVkIGFjcm9zcyBhbGwgQ29zbW9zIERCIEFjY291bnQgdmVyc2lvbnNcbiAqL1xuY29uc3QgQ09NTU9OX1BST1BFUlRJRVM6IHsgW2tleTogc3RyaW5nXTogUHJvcGVydHlEZWZpbml0aW9uIH0gPSB7XG4gIGxvY2F0aW9uOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIEF6dXJlIHJlZ2lvbiB3aGVyZSB0aGUgQ29zbW9zIERCIEFjY291bnQgd2lsbCBiZSBjcmVhdGVkXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICBtZXNzYWdlOiBcIkxvY2F0aW9uIGlzIHJlcXVpcmVkIGZvciBDb3Ntb3MgREIgQWNjb3VudHNcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUEFUVEVSTl9NQVRDSCxcbiAgICAgICAgdmFsdWU6IFwiXlthLXowLTldKyRcIixcbiAgICAgICAgbWVzc2FnZTogXCJMb2NhdGlvbiBtdXN0IGNvbnRhaW4gb25seSBsb3dlcmNhc2UgbGV0dGVycyBhbmQgbnVtYmVyc1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB0YWdzOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHRWYWx1ZToge30sXG4gICAgZGVzY3JpcHRpb246IFwiQSBkaWN0aW9uYXJ5IG9mIHRhZ3MgdG8gYXBwbHkgdG8gdGhlIENvc21vcyBEQiBBY2NvdW50XCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlRZUEVfQ0hFQ0ssXG4gICAgICAgIHZhbHVlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgICAgICBtZXNzYWdlOiBcIlRhZ3MgbXVzdCBiZSBhbiBvYmplY3Qgd2l0aCBzdHJpbmcga2V5LXZhbHVlIHBhaXJzXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIG5hbWU6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiVGhlIG5hbWUgb2YgdGhlIENvc21vcyBEQiBBY2NvdW50LiBNdXN0IGJlIGdsb2JhbGx5IHVuaXF1ZSBhY3Jvc3MgQXp1cmUgKDMtNDQgbG93ZXJjYXNlIGxldHRlcnMsIG51bWJlcnMsIGFuZCBoeXBoZW5zKVwiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgbWVzc2FnZTogXCJDb3Ntb3MgREIgQWNjb3VudCBuYW1lIGlzIHJlcXVpcmVkXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlBBVFRFUk5fTUFUQ0gsXG4gICAgICAgIHZhbHVlOiBcIl5bYS16MC05XShbYS16MC05LV17MSw0Mn1bYS16MC05XSk/JFwiLFxuICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgIFwiQ29zbW9zIERCIEFjY291bnQgbmFtZSBtdXN0IGJlIDMtNDQgY2hhcmFjdGVycyBvZiBsb3dlcmNhc2UgbGV0dGVycywgbnVtYmVycywgYW5kIGh5cGhlbnMgKGNhbm5vdCBzdGFydCBvciBlbmQgd2l0aCBhIGh5cGhlbilcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAga2luZDoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZWZhdWx0VmFsdWU6IFwiR2xvYmFsRG9jdW1lbnREQlwiLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJUaGUga2luZCBvZiBDb3Ntb3MgREIgQWNjb3VudCAoR2xvYmFsRG9jdW1lbnREQiwgTW9uZ29EQiwgUGFyc2UpXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlBBVFRFUk5fTUFUQ0gsXG4gICAgICAgIHZhbHVlOiBcIl4oR2xvYmFsRG9jdW1lbnREQnxNb25nb0RCfFBhcnNlKSRcIixcbiAgICAgICAgbWVzc2FnZTogXCJLaW5kIG11c3QgYmUgR2xvYmFsRG9jdW1lbnREQiwgTW9uZ29EQiwgb3IgUGFyc2VcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgZGF0YWJhc2VBY2NvdW50T2ZmZXJUeXBlOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHRWYWx1ZTogXCJTdGFuZGFyZFwiLFxuICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBvZmZlciB0eXBlIGZvciB0aGUgQ29zbW9zIERCIEFjY291bnQgKFN0YW5kYXJkKVwiLFxuICB9LFxuICBjb25zaXN0ZW5jeVBvbGljeToge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJUaGUgY29uc2lzdGVuY3kgcG9saWN5IGZvciB0aGUgQ29zbW9zIERCIEFjY291bnRcIixcbiAgfSxcbiAgZ2VvTG9jYXRpb25zOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5BUlJBWSxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiR2VvLXJlcGxpY2F0aW9uIGxvY2F0aW9ucyBmb3IgdGhlIENvc21vcyBEQiBBY2NvdW50XCIsXG4gIH0sXG4gIGNhcGFiaWxpdGllczoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuQVJSQVksXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJDYXBhYmlsaXRpZXMgdG8gZW5hYmxlIG9uIHRoZSBDb3Ntb3MgREIgQWNjb3VudCAoZS5nLiBFbmFibGVTZXJ2ZXJsZXNzLCBFbmFibGVDYXNzYW5kcmEsIEVuYWJsZVRhYmxlLCBFbmFibGVHcmVtbGluKVwiLFxuICB9LFxuICBwdWJsaWNOZXR3b3JrQWNjZXNzOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHRWYWx1ZTogXCJFbmFibGVkXCIsXG4gICAgZGVzY3JpcHRpb246IFwiV2hldGhlciBwdWJsaWMgbmV0d29yayBhY2Nlc3MgaXMgZW5hYmxlZCAoRW5hYmxlZCwgRGlzYWJsZWQpXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlBBVFRFUk5fTUFUQ0gsXG4gICAgICAgIHZhbHVlOiBcIl4oRW5hYmxlZHxEaXNhYmxlZCkkXCIsXG4gICAgICAgIG1lc3NhZ2U6IFwicHVibGljTmV0d29ya0FjY2VzcyBtdXN0IGJlIEVuYWJsZWQgb3IgRGlzYWJsZWRcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgZW5hYmxlQXV0b21hdGljRmFpbG92ZXI6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLkJPT0xFQU4sXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiV2hldGhlciBhdXRvbWF0aWMgZmFpbG92ZXIgaXMgZW5hYmxlZFwiLFxuICB9LFxuICBlbmFibGVNdWx0aXBsZVdyaXRlTG9jYXRpb25zOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5CT09MRUFOLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIldoZXRoZXIgbXVsdGktcmVnaW9uIHdyaXRlcyBhcmUgZW5hYmxlZFwiLFxuICB9LFxuICBlbmFibGVGcmVlVGllcjoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuQk9PTEVBTixcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJXaGV0aGVyIHRoZSBmcmVlIHRpZXIgaXMgZW5hYmxlZCBmb3IgdGhlIGFjY291bnRcIixcbiAgfSxcbiAgaXNWaXJ0dWFsTmV0d29ya0ZpbHRlckVuYWJsZWQ6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLkJPT0xFQU4sXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiV2hldGhlciB2aXJ0dWFsIG5ldHdvcmsgZmlsdGVyaW5nIGlzIGVuYWJsZWRcIixcbiAgfSxcbiAgbWluaW1hbFRsc1ZlcnNpb246IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVmYXVsdFZhbHVlOiBcIlRsczEyXCIsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIlRoZSBtaW5pbXVtIFRMUyB2ZXJzaW9uIGZvciB0aGUgQ29zbW9zIERCIEFjY291bnQgKFRscywgVGxzMTEsIFRsczEyKVwiLFxuICB9LFxuICBiYWNrdXBQb2xpY3k6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIGJhY2t1cCBwb2xpY3kgY29uZmlndXJhdGlvbiBmb3IgdGhlIENvc21vcyBEQiBBY2NvdW50XCIsXG4gIH0sXG4gIGlkZW50aXR5OiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIk1hbmFnZWQgaWRlbnRpdHkgY29uZmlndXJhdGlvbiBmb3IgdGhlIENvc21vcyBEQiBBY2NvdW50XCIsXG4gIH0sXG4gIGlnbm9yZUNoYW5nZXM6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLkFSUkFZLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJBcnJheSBvZiBwcm9wZXJ0eSBuYW1lcyB0byBpZ25vcmUgZHVyaW5nIHVwZGF0ZXNcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuVFlQRV9DSEVDSyxcbiAgICAgICAgdmFsdWU6IFByb3BlcnR5VHlwZS5BUlJBWSxcbiAgICAgICAgbWVzc2FnZTogXCJJZ25vcmVDaGFuZ2VzIG11c3QgYmUgYW4gYXJyYXkgb2Ygc3RyaW5nc1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxufTtcblxuY29uc3QgQ09NTU9OX1JFUVVJUkVEID0gW1wibG9jYXRpb25cIiwgXCJuYW1lXCJdO1xuXG5jb25zdCBDT01NT05fT1BUSU9OQUwgPSBbXG4gIFwidGFnc1wiLFxuICBcImtpbmRcIixcbiAgXCJkYXRhYmFzZUFjY291bnRPZmZlclR5cGVcIixcbiAgXCJjb25zaXN0ZW5jeVBvbGljeVwiLFxuICBcImdlb0xvY2F0aW9uc1wiLFxuICBcImNhcGFiaWxpdGllc1wiLFxuICBcInB1YmxpY05ldHdvcmtBY2Nlc3NcIixcbiAgXCJlbmFibGVBdXRvbWF0aWNGYWlsb3ZlclwiLFxuICBcImVuYWJsZU11bHRpcGxlV3JpdGVMb2NhdGlvbnNcIixcbiAgXCJlbmFibGVGcmVlVGllclwiLFxuICBcImlzVmlydHVhbE5ldHdvcmtGaWx0ZXJFbmFibGVkXCIsXG4gIFwibWluaW1hbFRsc1ZlcnNpb25cIixcbiAgXCJiYWNrdXBQb2xpY3lcIixcbiAgXCJpZGVudGl0eVwiLFxuICBcImlnbm9yZUNoYW5nZXNcIixcbl07XG5cbmNvbnN0IENPTU1PTl9WQUxJREFUSU9OX1JVTEVTID0gW1xuICB7XG4gICAgcHJvcGVydHk6IFwibG9jYXRpb25cIixcbiAgICBydWxlczogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICBtZXNzYWdlOiBcIkxvY2F0aW9uIGlzIHJlcXVpcmVkIGZvciBDb3Ntb3MgREIgQWNjb3VudHNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAge1xuICAgIHByb3BlcnR5OiBcIm5hbWVcIixcbiAgICBydWxlczogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICBtZXNzYWdlOiBcIk5hbWUgaXMgcmVxdWlyZWQgZm9yIENvc21vcyBEQiBBY2NvdW50c1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFZFUlNJT04tU1BFQ0lGSUMgU0NIRU1BU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLyoqXG4gKiBBUEkgU2NoZW1hIGZvciBDb3Ntb3MgREIgQWNjb3VudCB2ZXJzaW9uIDIwMjMtMTEtMTVcbiAqL1xuZXhwb3J0IGNvbnN0IENPU01PU19EQl9TQ0hFTUFfMjAyM18xMV8xNTogQXBpU2NoZW1hID0ge1xuICByZXNvdXJjZVR5cGU6IFwiTWljcm9zb2Z0LkRvY3VtZW50REIvZGF0YWJhc2VBY2NvdW50c1wiLFxuICB2ZXJzaW9uOiBcIjIwMjMtMTEtMTVcIixcbiAgcHJvcGVydGllczoge1xuICAgIC4uLkNPTU1PTl9QUk9QRVJUSUVTLFxuICB9LFxuICByZXF1aXJlZDogWy4uLkNPTU1PTl9SRVFVSVJFRF0sXG4gIG9wdGlvbmFsOiBbLi4uQ09NTU9OX09QVElPTkFMXSxcbiAgZGVwcmVjYXRlZDogW10sXG4gIHRyYW5zZm9ybWF0aW9uUnVsZXM6IHt9LFxuICB2YWxpZGF0aW9uUnVsZXM6IFsuLi5DT01NT05fVkFMSURBVElPTl9SVUxFU10sXG59O1xuXG4vKipcbiAqIEFQSSBTY2hlbWEgZm9yIENvc21vcyBEQiBBY2NvdW50IHZlcnNpb24gMjAyNC0wNS0xNVxuICovXG5leHBvcnQgY29uc3QgQ09TTU9TX0RCX1NDSEVNQV8yMDI0XzA1XzE1OiBBcGlTY2hlbWEgPSB7XG4gIHJlc291cmNlVHlwZTogXCJNaWNyb3NvZnQuRG9jdW1lbnREQi9kYXRhYmFzZUFjY291bnRzXCIsXG4gIHZlcnNpb246IFwiMjAyNC0wNS0xNVwiLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgLi4uQ09NTU9OX1BST1BFUlRJRVMsXG4gIH0sXG4gIHJlcXVpcmVkOiBbLi4uQ09NTU9OX1JFUVVJUkVEXSxcbiAgb3B0aW9uYWw6IFsuLi5DT01NT05fT1BUSU9OQUxdLFxuICBkZXByZWNhdGVkOiBbXSxcbiAgdHJhbnNmb3JtYXRpb25SdWxlczoge30sXG4gIHZhbGlkYXRpb25SdWxlczogWy4uLkNPTU1PTl9WQUxJREFUSU9OX1JVTEVTXSxcbn07XG5cbi8qKlxuICogQVBJIFNjaGVtYSBmb3IgQ29zbW9zIERCIEFjY291bnQgdmVyc2lvbiAyMDI0LTA4LTE1XG4gKi9cbmV4cG9ydCBjb25zdCBDT1NNT1NfREJfU0NIRU1BXzIwMjRfMDhfMTU6IEFwaVNjaGVtYSA9IHtcbiAgcmVzb3VyY2VUeXBlOiBcIk1pY3Jvc29mdC5Eb2N1bWVudERCL2RhdGFiYXNlQWNjb3VudHNcIixcbiAgdmVyc2lvbjogXCIyMDI0LTA4LTE1XCIsXG4gIHByb3BlcnRpZXM6IHtcbiAgICAuLi5DT01NT05fUFJPUEVSVElFUyxcbiAgfSxcbiAgcmVxdWlyZWQ6IFsuLi5DT01NT05fUkVRVUlSRURdLFxuICBvcHRpb25hbDogWy4uLkNPTU1PTl9PUFRJT05BTF0sXG4gIGRlcHJlY2F0ZWQ6IFtdLFxuICB0cmFuc2Zvcm1hdGlvblJ1bGVzOiB7fSxcbiAgdmFsaWRhdGlvblJ1bGVzOiBbLi4uQ09NTU9OX1ZBTElEQVRJT05fUlVMRVNdLFxufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFZFUlNJT04gQ09ORklHVVJBVElPTlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogVmVyc2lvbiBjb25maWd1cmF0aW9uIGZvciBDb3Ntb3MgREIgQWNjb3VudCAyMDIzLTExLTE1XG4gKi9cbmV4cG9ydCBjb25zdCBDT1NNT1NfREJfVkVSU0lPTl8yMDIzXzExXzE1OiBWZXJzaW9uQ29uZmlnID0ge1xuICB2ZXJzaW9uOiBcIjIwMjMtMTEtMTVcIixcbiAgc2NoZW1hOiBDT1NNT1NfREJfU0NIRU1BXzIwMjNfMTFfMTUsXG4gIHN1cHBvcnRMZXZlbDogVmVyc2lvblN1cHBvcnRMZXZlbC5ERVBSRUNBVEVELFxuICByZWxlYXNlRGF0ZTogXCIyMDIzLTExLTE1XCIsXG4gIGRlcHJlY2F0aW9uRGF0ZTogXCIyMDI0LTA4LTE1XCIsXG4gIHN1bnNldERhdGU6IHVuZGVmaW5lZCxcbiAgYnJlYWtpbmdDaGFuZ2VzOiBbXSxcbiAgbWlncmF0aW9uR3VpZGU6IFwiL2RvY3MvY29zbW9zLWRiL21pZ3JhdGlvbi0yMDIzLTExLTE1XCIsXG4gIGNoYW5nZUxvZzogW1xuICAgIHtcbiAgICAgIGNoYW5nZVR5cGU6IFwiZGVwcmVjYXRlZFwiLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiVGhpcyB2ZXJzaW9uIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSBtaWdyYXRlIHRvIDIwMjQtMDgtMTUgZm9yIGNvbnRpbnVlZCBzdXBwb3J0LlwiLFxuICAgICAgYnJlYWtpbmc6IGZhbHNlLFxuICAgIH0sXG4gICAge1xuICAgICAgY2hhbmdlVHlwZTogXCJhZGRlZFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiU3RhYmxlIHJlbGVhc2Ugb2YgQ29zbW9zIERCIGRhdGFiYXNlQWNjb3VudHMgQVBJXCIsXG4gICAgICBicmVha2luZzogZmFsc2UsXG4gICAgfSxcbiAgXSxcbn07XG5cbi8qKlxuICogVmVyc2lvbiBjb25maWd1cmF0aW9uIGZvciBDb3Ntb3MgREIgQWNjb3VudCAyMDI0LTA1LTE1XG4gKi9cbmV4cG9ydCBjb25zdCBDT1NNT1NfREJfVkVSU0lPTl8yMDI0XzA1XzE1OiBWZXJzaW9uQ29uZmlnID0ge1xuICB2ZXJzaW9uOiBcIjIwMjQtMDUtMTVcIixcbiAgc2NoZW1hOiBDT1NNT1NfREJfU0NIRU1BXzIwMjRfMDVfMTUsXG4gIHN1cHBvcnRMZXZlbDogVmVyc2lvblN1cHBvcnRMZXZlbC5BQ1RJVkUsXG4gIHJlbGVhc2VEYXRlOiBcIjIwMjQtMDUtMTVcIixcbiAgZGVwcmVjYXRpb25EYXRlOiB1bmRlZmluZWQsXG4gIHN1bnNldERhdGU6IHVuZGVmaW5lZCxcbiAgYnJlYWtpbmdDaGFuZ2VzOiBbXSxcbiAgbWlncmF0aW9uR3VpZGU6IFwiL2RvY3MvY29zbW9zLWRiL21pZ3JhdGlvbi0yMDI0LTA1LTE1XCIsXG4gIGNoYW5nZUxvZzogW1xuICAgIHtcbiAgICAgIGNoYW5nZVR5cGU6IFwidXBkYXRlZFwiLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiQWRkcyBhZGRpdGlvbmFsIGNhcGFiaWxpdGllcyBhbmQgY29udGludW91cyBiYWNrdXAgaW1wcm92ZW1lbnRzLlwiLFxuICAgICAgYnJlYWtpbmc6IGZhbHNlLFxuICAgIH0sXG4gIF0sXG59O1xuXG4vKipcbiAqIFZlcnNpb24gY29uZmlndXJhdGlvbiBmb3IgQ29zbW9zIERCIEFjY291bnQgMjAyNC0wOC0xNVxuICovXG5leHBvcnQgY29uc3QgQ09TTU9TX0RCX1ZFUlNJT05fMjAyNF8wOF8xNTogVmVyc2lvbkNvbmZpZyA9IHtcbiAgdmVyc2lvbjogXCIyMDI0LTA4LTE1XCIsXG4gIHNjaGVtYTogQ09TTU9TX0RCX1NDSEVNQV8yMDI0XzA4XzE1LFxuICBzdXBwb3J0TGV2ZWw6IFZlcnNpb25TdXBwb3J0TGV2ZWwuQUNUSVZFLFxuICByZWxlYXNlRGF0ZTogXCIyMDI0LTA4LTE1XCIsXG4gIGRlcHJlY2F0aW9uRGF0ZTogdW5kZWZpbmVkLFxuICBzdW5zZXREYXRlOiB1bmRlZmluZWQsXG4gIGJyZWFraW5nQ2hhbmdlczogW10sXG4gIG1pZ3JhdGlvbkd1aWRlOiBcIi9kb2NzL2Nvc21vcy1kYi9taWdyYXRpb24tMjAyNC0wOC0xNVwiLFxuICBjaGFuZ2VMb2c6IFtcbiAgICB7XG4gICAgICBjaGFuZ2VUeXBlOiBcInVwZGF0ZWRcIixcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIkxhdGVzdCBBUEkgdmVyc2lvbiB3aXRoIGltcHJvdmVkIHBlcmZvcm1hbmNlLCBzZWN1cml0eSwgYW5kIGZlYXR1cmVzLlwiLFxuICAgICAgYnJlYWtpbmc6IGZhbHNlLFxuICAgIH0sXG4gIF0sXG59O1xuXG4vKipcbiAqIEFsbCBzdXBwb3J0ZWQgQ29zbW9zIERCIEFjY291bnQgdmVyc2lvbnMgZm9yIHJlZ2lzdHJhdGlvblxuICovXG5leHBvcnQgY29uc3QgQUxMX0NPU01PU19EQl9WRVJTSU9OUzogVmVyc2lvbkNvbmZpZ1tdID0gW1xuICBDT1NNT1NfREJfVkVSU0lPTl8yMDIzXzExXzE1LFxuICBDT1NNT1NfREJfVkVSU0lPTl8yMDI0XzA1XzE1LFxuICBDT1NNT1NfREJfVkVSU0lPTl8yMDI0XzA4XzE1LFxuXTtcblxuLyoqXG4gKiBSZXNvdXJjZSB0eXBlIGNvbnN0YW50XG4gKi9cbmV4cG9ydCBjb25zdCBDT1NNT1NfREJfVFlQRSA9IFwiTWljcm9zb2Z0LkRvY3VtZW50REIvZGF0YWJhc2VBY2NvdW50c1wiO1xuIl19
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified Azure Cosmos DB Account implementation using VersionedAzapiResource framework
|
|
3
|
+
*
|
|
4
|
+
* Supported API Versions:
|
|
5
|
+
* - 2023-11-15 (Deprecated)
|
|
6
|
+
* - 2024-05-15 (Active)
|
|
7
|
+
* - 2024-08-15 (Active, Latest)
|
|
8
|
+
*
|
|
9
|
+
* Features:
|
|
10
|
+
* - Automatic latest version resolution when no version is specified
|
|
11
|
+
* - Explicit version pinning for stability requirements
|
|
12
|
+
* - Schema-driven validation and transformation
|
|
13
|
+
* - JSII compliance for multi-language support
|
|
14
|
+
*/
|
|
15
|
+
import * as cdktn from "cdktn";
|
|
16
|
+
import { Construct } from "constructs";
|
|
17
|
+
import { AzapiResource, AzapiResourceProps } from "../../core-azure/lib/azapi/azapi-resource";
|
|
18
|
+
import { ApiSchema } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
|
|
19
|
+
/**
|
|
20
|
+
* Consistency policy configuration for Cosmos DB Account
|
|
21
|
+
*/
|
|
22
|
+
export interface CosmosDbConsistencyPolicy {
|
|
23
|
+
/**
|
|
24
|
+
* The default consistency level
|
|
25
|
+
* (Eventual, Session, BoundedStaleness, Strong, ConsistentPrefix)
|
|
26
|
+
* @default "Session"
|
|
27
|
+
*/
|
|
28
|
+
readonly defaultConsistencyLevel: string;
|
|
29
|
+
/**
|
|
30
|
+
* The maximum staleness prefix (only valid for BoundedStaleness)
|
|
31
|
+
*/
|
|
32
|
+
readonly maxStalenessPrefix?: number;
|
|
33
|
+
/**
|
|
34
|
+
* The maximum interval in seconds (only valid for BoundedStaleness)
|
|
35
|
+
*/
|
|
36
|
+
readonly maxIntervalInSeconds?: number;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Geo-replication location configuration for Cosmos DB Account
|
|
40
|
+
*/
|
|
41
|
+
export interface CosmosDbGeoLocation {
|
|
42
|
+
/**
|
|
43
|
+
* The Azure region name (e.g. "eastus")
|
|
44
|
+
*/
|
|
45
|
+
readonly locationName: string;
|
|
46
|
+
/**
|
|
47
|
+
* The failover priority of the region (0 = write region)
|
|
48
|
+
*/
|
|
49
|
+
readonly failoverPriority: number;
|
|
50
|
+
/**
|
|
51
|
+
* Whether this region is zone-redundant
|
|
52
|
+
* @default false
|
|
53
|
+
*/
|
|
54
|
+
readonly isZoneRedundant?: boolean;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Capability configuration for Cosmos DB Account
|
|
58
|
+
*/
|
|
59
|
+
export interface CosmosDbCapability {
|
|
60
|
+
/**
|
|
61
|
+
* The capability name (e.g. "EnableServerless", "EnableCassandra",
|
|
62
|
+
* "EnableTable", "EnableGremlin", "EnableMongo", "EnableAggregationPipeline")
|
|
63
|
+
*/
|
|
64
|
+
readonly name: string;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Backup policy configuration for Cosmos DB Account
|
|
68
|
+
*/
|
|
69
|
+
export interface CosmosDbBackupPolicy {
|
|
70
|
+
/**
|
|
71
|
+
* The backup type ("Periodic" or "Continuous")
|
|
72
|
+
*/
|
|
73
|
+
readonly type: string;
|
|
74
|
+
/**
|
|
75
|
+
* Periodic mode properties (only valid when type is "Periodic")
|
|
76
|
+
*/
|
|
77
|
+
readonly periodicModeProperties?: CosmosDbPeriodicModeProperties;
|
|
78
|
+
/**
|
|
79
|
+
* Continuous mode properties (only valid when type is "Continuous")
|
|
80
|
+
*/
|
|
81
|
+
readonly continuousModeProperties?: CosmosDbContinuousModeProperties;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Periodic backup mode properties
|
|
85
|
+
*/
|
|
86
|
+
export interface CosmosDbPeriodicModeProperties {
|
|
87
|
+
/**
|
|
88
|
+
* Backup interval in minutes
|
|
89
|
+
*/
|
|
90
|
+
readonly backupIntervalInMinutes?: number;
|
|
91
|
+
/**
|
|
92
|
+
* Backup retention interval in hours
|
|
93
|
+
*/
|
|
94
|
+
readonly backupRetentionIntervalInHours?: number;
|
|
95
|
+
/**
|
|
96
|
+
* Storage redundancy for backups (Geo, Local, Zone)
|
|
97
|
+
*/
|
|
98
|
+
readonly backupStorageRedundancy?: string;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Continuous backup mode properties
|
|
102
|
+
*/
|
|
103
|
+
export interface CosmosDbContinuousModeProperties {
|
|
104
|
+
/**
|
|
105
|
+
* Continuous backup tier ("Continuous7Days" or "Continuous30Days")
|
|
106
|
+
*/
|
|
107
|
+
readonly tier?: string;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Identity configuration for Cosmos DB Account
|
|
111
|
+
*/
|
|
112
|
+
export interface CosmosDbIdentity {
|
|
113
|
+
/**
|
|
114
|
+
* The type of identity (None, SystemAssigned, UserAssigned, "SystemAssigned,UserAssigned")
|
|
115
|
+
*/
|
|
116
|
+
readonly type: string;
|
|
117
|
+
/**
|
|
118
|
+
* User assigned identity IDs
|
|
119
|
+
*/
|
|
120
|
+
readonly userAssignedIdentities?: {
|
|
121
|
+
[key: string]: any;
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Properties for the unified Azure Cosmos DB Account
|
|
126
|
+
*
|
|
127
|
+
* Extends AzapiResourceProps with Cosmos DB Account specific properties
|
|
128
|
+
*/
|
|
129
|
+
export interface CosmosDbAccountProps extends AzapiResourceProps {
|
|
130
|
+
/**
|
|
131
|
+
* The kind of Cosmos DB Account
|
|
132
|
+
* @default "GlobalDocumentDB"
|
|
133
|
+
* @example "GlobalDocumentDB", "MongoDB", "Parse"
|
|
134
|
+
*/
|
|
135
|
+
readonly kind?: string;
|
|
136
|
+
/**
|
|
137
|
+
* The database account offer type
|
|
138
|
+
* @default "Standard"
|
|
139
|
+
*/
|
|
140
|
+
readonly databaseAccountOfferType?: string;
|
|
141
|
+
/**
|
|
142
|
+
* The consistency policy for the Cosmos DB Account
|
|
143
|
+
* @default { defaultConsistencyLevel: "Session" }
|
|
144
|
+
*/
|
|
145
|
+
readonly consistencyPolicy?: CosmosDbConsistencyPolicy;
|
|
146
|
+
/**
|
|
147
|
+
* Geo-replication locations for the Cosmos DB Account.
|
|
148
|
+
*
|
|
149
|
+
* If not provided, a single location matching the account location will be
|
|
150
|
+
* configured automatically with failover priority 0.
|
|
151
|
+
*/
|
|
152
|
+
readonly geoLocations?: CosmosDbGeoLocation[];
|
|
153
|
+
/**
|
|
154
|
+
* Capabilities to enable on the Cosmos DB Account
|
|
155
|
+
* @example [{ name: "EnableServerless" }]
|
|
156
|
+
*/
|
|
157
|
+
readonly capabilities?: CosmosDbCapability[];
|
|
158
|
+
/**
|
|
159
|
+
* Whether public network access is enabled
|
|
160
|
+
* @default "Enabled"
|
|
161
|
+
*/
|
|
162
|
+
readonly publicNetworkAccess?: string;
|
|
163
|
+
/**
|
|
164
|
+
* Whether automatic failover is enabled
|
|
165
|
+
* @default false
|
|
166
|
+
*/
|
|
167
|
+
readonly enableAutomaticFailover?: boolean;
|
|
168
|
+
/**
|
|
169
|
+
* Whether multi-region writes are enabled
|
|
170
|
+
* @default false
|
|
171
|
+
*/
|
|
172
|
+
readonly enableMultipleWriteLocations?: boolean;
|
|
173
|
+
/**
|
|
174
|
+
* Whether the free tier is enabled (only one free-tier account is allowed per subscription)
|
|
175
|
+
* @default false
|
|
176
|
+
*/
|
|
177
|
+
readonly enableFreeTier?: boolean;
|
|
178
|
+
/**
|
|
179
|
+
* Whether virtual network filtering is enabled
|
|
180
|
+
* @default false
|
|
181
|
+
*/
|
|
182
|
+
readonly isVirtualNetworkFilterEnabled?: boolean;
|
|
183
|
+
/**
|
|
184
|
+
* The minimum TLS version (Tls, Tls11, Tls12)
|
|
185
|
+
* @default "Tls12"
|
|
186
|
+
*/
|
|
187
|
+
readonly minimalTlsVersion?: string;
|
|
188
|
+
/**
|
|
189
|
+
* Backup policy configuration
|
|
190
|
+
*/
|
|
191
|
+
readonly backupPolicy?: CosmosDbBackupPolicy;
|
|
192
|
+
/**
|
|
193
|
+
* Managed identity configuration
|
|
194
|
+
*/
|
|
195
|
+
readonly identity?: CosmosDbIdentity;
|
|
196
|
+
/**
|
|
197
|
+
* The lifecycle rules to ignore changes
|
|
198
|
+
* @example ["tags"]
|
|
199
|
+
*/
|
|
200
|
+
readonly ignoreChanges?: string[];
|
|
201
|
+
/**
|
|
202
|
+
* Resource group ID where the Cosmos DB Account will be created
|
|
203
|
+
*/
|
|
204
|
+
readonly resourceGroupId?: string;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Unified Azure Cosmos DB Account implementation
|
|
208
|
+
*
|
|
209
|
+
* Provides a single, version-aware implementation that automatically handles
|
|
210
|
+
* version resolution, schema validation, and property transformation while
|
|
211
|
+
* maintaining full backward compatibility.
|
|
212
|
+
*
|
|
213
|
+
* @example
|
|
214
|
+
* // Basic usage with automatic version resolution:
|
|
215
|
+
* const cosmosDb = new CosmosDbAccount(this, "cosmos", {
|
|
216
|
+
* name: "mycosmosaccount",
|
|
217
|
+
* location: "eastus",
|
|
218
|
+
* resourceGroupId: resourceGroup.id,
|
|
219
|
+
* });
|
|
220
|
+
*
|
|
221
|
+
* @example
|
|
222
|
+
* // Usage with explicit version pinning and serverless capability:
|
|
223
|
+
* const cosmosDb = new CosmosDbAccount(this, "cosmos", {
|
|
224
|
+
* name: "mycosmosaccount",
|
|
225
|
+
* location: "eastus",
|
|
226
|
+
* resourceGroupId: resourceGroup.id,
|
|
227
|
+
* apiVersion: "2024-05-15",
|
|
228
|
+
* capabilities: [{ name: "EnableServerless" }],
|
|
229
|
+
* });
|
|
230
|
+
*
|
|
231
|
+
* @stability stable
|
|
232
|
+
*/
|
|
233
|
+
export declare class CosmosDbAccount extends AzapiResource {
|
|
234
|
+
readonly props: CosmosDbAccountProps;
|
|
235
|
+
readonly idOutput: cdktn.TerraformOutput;
|
|
236
|
+
readonly locationOutput: cdktn.TerraformOutput;
|
|
237
|
+
readonly nameOutput: cdktn.TerraformOutput;
|
|
238
|
+
readonly tagsOutput: cdktn.TerraformOutput;
|
|
239
|
+
readonly documentEndpointOutput: cdktn.TerraformOutput;
|
|
240
|
+
/**
|
|
241
|
+
* Creates a new Azure Cosmos DB Account using the VersionedAzapiResource framework
|
|
242
|
+
*
|
|
243
|
+
* @param scope - The scope in which to define this construct
|
|
244
|
+
* @param id - The unique identifier for this instance
|
|
245
|
+
* @param props - Configuration properties for the Cosmos DB Account
|
|
246
|
+
*/
|
|
247
|
+
constructor(scope: Construct, id: string, props: CosmosDbAccountProps);
|
|
248
|
+
/**
|
|
249
|
+
* Gets the default API version to use when no explicit version is specified
|
|
250
|
+
*/
|
|
251
|
+
protected defaultVersion(): string;
|
|
252
|
+
/**
|
|
253
|
+
* Gets the Azure resource type for Cosmos DB Accounts
|
|
254
|
+
*/
|
|
255
|
+
protected resourceType(): string;
|
|
256
|
+
/**
|
|
257
|
+
* Gets the API schema for the resolved version
|
|
258
|
+
*/
|
|
259
|
+
protected apiSchema(): ApiSchema;
|
|
260
|
+
/**
|
|
261
|
+
* Indicates that location is required for Cosmos DB Accounts
|
|
262
|
+
*/
|
|
263
|
+
protected requiresLocation(): boolean;
|
|
264
|
+
/**
|
|
265
|
+
* Creates the resource body for the Azure API call
|
|
266
|
+
*/
|
|
267
|
+
protected createResourceBody(props: any): any;
|
|
268
|
+
/**
|
|
269
|
+
* Get the document endpoint URL for the Cosmos DB Account
|
|
270
|
+
*/
|
|
271
|
+
get documentEndpoint(): string;
|
|
272
|
+
/**
|
|
273
|
+
* Add a tag to the Cosmos DB Account
|
|
274
|
+
*/
|
|
275
|
+
addTag(key: string, value: string): void;
|
|
276
|
+
/**
|
|
277
|
+
* Remove a tag from the Cosmos DB Account
|
|
278
|
+
*/
|
|
279
|
+
removeTag(key: string): void;
|
|
280
|
+
/**
|
|
281
|
+
* Applies ignore changes lifecycle rules
|
|
282
|
+
*
|
|
283
|
+
* Cosmos DB's REST API normalizes location values (e.g. "centralus" -> "Central US")
|
|
284
|
+
* after the resource is created, which causes Terraform to detect drift on every
|
|
285
|
+
* plan. To make the resource idempotent, the construct automatically adds the
|
|
286
|
+
* normalized location fields to `ignore_changes`. Any user-specified
|
|
287
|
+
* `ignoreChanges` are merged in.
|
|
288
|
+
*/
|
|
289
|
+
private _applyIgnoreChanges;
|
|
290
|
+
}
|