@microsoft/terraform-cdk-constructs 1.8.0 → 1.10.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 +60376 -32133
- package/API.md +72290 -37038
- 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/index.d.ts +1 -0
- package/lib/azure-containerapps/index.js +18 -0
- package/lib/azure-containerapps/lib/container-app-environment-schemas.d.ts +50 -0
- package/lib/azure-containerapps/lib/container-app-environment-schemas.js +522 -0
- package/lib/azure-containerapps/lib/container-app-environment.d.ts +374 -0
- package/lib/azure-containerapps/lib/container-app-environment.js +310 -0
- package/lib/azure-containerapps/lib/container-app-schemas.d.ts +48 -0
- package/lib/azure-containerapps/lib/container-app-schemas.js +466 -0
- package/lib/azure-containerapps/lib/container-app.d.ts +925 -0
- package/lib/azure-containerapps/lib/container-app.js +320 -0
- package/lib/azure-containerapps/lib/index.d.ts +4 -0
- package/lib/azure-containerapps/lib/index.js +21 -0
- package/lib/azure-containerapps/test/container-app-environment.integ.d.ts +10 -0
- package/lib/azure-containerapps/test/container-app-environment.integ.js +82 -0
- package/lib/azure-containerapps/test/container-app-environment.spec.d.ts +9 -0
- package/lib/azure-containerapps/test/container-app-environment.spec.js +412 -0
- package/lib/azure-containerapps/test/container-app.integ.d.ts +10 -0
- package/lib/azure-containerapps/test/container-app.integ.js +119 -0
- package/lib/azure-containerapps/test/container-app.spec.d.ts +9 -0
- package/lib/azure-containerapps/test/container-app.spec.js +839 -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-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-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/index.d.ts +6 -0
- package/lib/azure-loganalyticsworkspace/index.js +23 -0
- package/lib/azure-loganalyticsworkspace/lib/index.d.ts +5 -0
- package/lib/azure-loganalyticsworkspace/lib/index.js +22 -0
- package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace-schemas.d.ts +51 -0
- package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace-schemas.js +255 -0
- package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.d.ts +301 -0
- package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.js +213 -0
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.d.ts +9 -0
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.js +71 -0
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.spec.d.ts +8 -0
- package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.spec.js +504 -0
- 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/index.d.ts +14 -0
- package/lib/azure-networkwatcher/index.js +31 -0
- package/lib/azure-networkwatcher/lib/index.d.ts +5 -0
- package/lib/azure-networkwatcher/lib/index.js +22 -0
- package/lib/azure-networkwatcher/lib/network-watcher-schemas.d.ts +47 -0
- package/lib/azure-networkwatcher/lib/network-watcher-schemas.js +167 -0
- package/lib/azure-networkwatcher/lib/network-watcher.d.ts +181 -0
- package/lib/azure-networkwatcher/lib/network-watcher.js +187 -0
- package/lib/azure-networkwatcher/test/network-watcher.integ.d.ts +12 -0
- package/lib/azure-networkwatcher/test/network-watcher.integ.js +84 -0
- package/lib/azure-networkwatcher/test/network-watcher.spec.d.ts +8 -0
- package/lib/azure-networkwatcher/test/network-watcher.spec.js +312 -0
- package/lib/azure-policyassignment/lib/policy-assignment.js +1 -1
- package/lib/azure-policydefinition/lib/policy-definition.js +1 -1
- package/lib/azure-policysetdefinition/index.d.ts +10 -0
- package/lib/azure-policysetdefinition/index.js +27 -0
- package/lib/azure-policysetdefinition/lib/index.d.ts +5 -0
- package/lib/azure-policysetdefinition/lib/index.js +22 -0
- package/lib/azure-policysetdefinition/lib/policy-set-definition-schemas.d.ts +50 -0
- package/lib/azure-policysetdefinition/lib/policy-set-definition-schemas.js +255 -0
- package/lib/azure-policysetdefinition/lib/policy-set-definition.d.ts +426 -0
- package/lib/azure-policysetdefinition/lib/policy-set-definition.js +255 -0
- package/lib/azure-policysetdefinition/test/policy-set-definition.integ.d.ts +9 -0
- package/lib/azure-policysetdefinition/test/policy-set-definition.integ.js +56 -0
- package/lib/azure-policysetdefinition/test/policy-set-definition.spec.d.ts +8 -0
- package/lib/azure-policysetdefinition/test/policy-set-definition.spec.js +745 -0
- 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-subnet/lib/subnet.js +1 -1
- 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-schemas.js +2 -2
- package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.d.ts +4 -2
- package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.js +8 -5
- package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.spec.js +109 -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.js +1 -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 +25 -0
- package/lib/index.js +27 -2
- package/lib/testing/index.js +2 -2
- package/lib/testing/lib/cleanup.js +1 -1
- package/lib/testing/lib/metadata.js +1 -1
- package/package.json +1 -1
|
@@ -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 cdktf from "cdktf";
|
|
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: cdktf.TerraformOutput;
|
|
236
|
+
readonly locationOutput: cdktf.TerraformOutput;
|
|
237
|
+
readonly nameOutput: cdktf.TerraformOutput;
|
|
238
|
+
readonly tagsOutput: cdktf.TerraformOutput;
|
|
239
|
+
readonly documentEndpointOutput: cdktf.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
|
+
}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.CosmosDbAccount = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
/**
|
|
7
|
+
* Unified Azure Cosmos DB Account implementation using VersionedAzapiResource framework
|
|
8
|
+
*
|
|
9
|
+
* Supported API Versions:
|
|
10
|
+
* - 2023-11-15 (Deprecated)
|
|
11
|
+
* - 2024-05-15 (Active)
|
|
12
|
+
* - 2024-08-15 (Active, Latest)
|
|
13
|
+
*
|
|
14
|
+
* Features:
|
|
15
|
+
* - Automatic latest version resolution when no version is specified
|
|
16
|
+
* - Explicit version pinning for stability requirements
|
|
17
|
+
* - Schema-driven validation and transformation
|
|
18
|
+
* - JSII compliance for multi-language support
|
|
19
|
+
*/
|
|
20
|
+
const cdktf = require("cdktf");
|
|
21
|
+
const cosmos_db_schemas_1 = require("./cosmos-db-schemas");
|
|
22
|
+
const azapi_resource_1 = require("../../core-azure/lib/azapi/azapi-resource");
|
|
23
|
+
/**
|
|
24
|
+
* Unified Azure Cosmos DB Account implementation
|
|
25
|
+
*
|
|
26
|
+
* Provides a single, version-aware implementation that automatically handles
|
|
27
|
+
* version resolution, schema validation, and property transformation while
|
|
28
|
+
* maintaining full backward compatibility.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* // Basic usage with automatic version resolution:
|
|
32
|
+
* const cosmosDb = new CosmosDbAccount(this, "cosmos", {
|
|
33
|
+
* name: "mycosmosaccount",
|
|
34
|
+
* location: "eastus",
|
|
35
|
+
* resourceGroupId: resourceGroup.id,
|
|
36
|
+
* });
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* // Usage with explicit version pinning and serverless capability:
|
|
40
|
+
* const cosmosDb = new CosmosDbAccount(this, "cosmos", {
|
|
41
|
+
* name: "mycosmosaccount",
|
|
42
|
+
* location: "eastus",
|
|
43
|
+
* resourceGroupId: resourceGroup.id,
|
|
44
|
+
* apiVersion: "2024-05-15",
|
|
45
|
+
* capabilities: [{ name: "EnableServerless" }],
|
|
46
|
+
* });
|
|
47
|
+
*
|
|
48
|
+
* @stability stable
|
|
49
|
+
*/
|
|
50
|
+
class CosmosDbAccount extends azapi_resource_1.AzapiResource {
|
|
51
|
+
/**
|
|
52
|
+
* Creates a new Azure Cosmos DB Account using the VersionedAzapiResource framework
|
|
53
|
+
*
|
|
54
|
+
* @param scope - The scope in which to define this construct
|
|
55
|
+
* @param id - The unique identifier for this instance
|
|
56
|
+
* @param props - Configuration properties for the Cosmos DB Account
|
|
57
|
+
*/
|
|
58
|
+
constructor(scope, id, props) {
|
|
59
|
+
super(scope, id, props);
|
|
60
|
+
this.props = props;
|
|
61
|
+
// Create Terraform outputs
|
|
62
|
+
this.idOutput = new cdktf.TerraformOutput(this, "id", {
|
|
63
|
+
value: this.id,
|
|
64
|
+
description: "The ID of the Cosmos DB Account",
|
|
65
|
+
});
|
|
66
|
+
this.locationOutput = new cdktf.TerraformOutput(this, "location", {
|
|
67
|
+
value: `\${${this.terraformResource.fqn}.location}`,
|
|
68
|
+
description: "The location of the Cosmos DB Account",
|
|
69
|
+
});
|
|
70
|
+
this.nameOutput = new cdktf.TerraformOutput(this, "name", {
|
|
71
|
+
value: `\${${this.terraformResource.fqn}.name}`,
|
|
72
|
+
description: "The name of the Cosmos DB Account",
|
|
73
|
+
});
|
|
74
|
+
this.tagsOutput = new cdktf.TerraformOutput(this, "tags", {
|
|
75
|
+
value: `\${${this.terraformResource.fqn}.tags}`,
|
|
76
|
+
description: "The tags assigned to the Cosmos DB Account",
|
|
77
|
+
});
|
|
78
|
+
this.documentEndpointOutput = new cdktf.TerraformOutput(this, "document_endpoint", {
|
|
79
|
+
value: `\${${this.terraformResource.fqn}.output.properties.documentEndpoint}`,
|
|
80
|
+
description: "The document endpoint URL of the Cosmos DB Account",
|
|
81
|
+
});
|
|
82
|
+
// Override logical IDs
|
|
83
|
+
this.idOutput.overrideLogicalId("id");
|
|
84
|
+
this.locationOutput.overrideLogicalId("location");
|
|
85
|
+
this.nameOutput.overrideLogicalId("name");
|
|
86
|
+
this.tagsOutput.overrideLogicalId("tags");
|
|
87
|
+
this.documentEndpointOutput.overrideLogicalId("document_endpoint");
|
|
88
|
+
// Apply ignore changes if specified
|
|
89
|
+
this._applyIgnoreChanges();
|
|
90
|
+
}
|
|
91
|
+
// =============================================================================
|
|
92
|
+
// REQUIRED ABSTRACT METHODS FROM AzapiResource
|
|
93
|
+
// =============================================================================
|
|
94
|
+
/**
|
|
95
|
+
* Gets the default API version to use when no explicit version is specified
|
|
96
|
+
*/
|
|
97
|
+
defaultVersion() {
|
|
98
|
+
return "2024-08-15";
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Gets the Azure resource type for Cosmos DB Accounts
|
|
102
|
+
*/
|
|
103
|
+
resourceType() {
|
|
104
|
+
return cosmos_db_schemas_1.COSMOS_DB_TYPE;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Gets the API schema for the resolved version
|
|
108
|
+
*/
|
|
109
|
+
apiSchema() {
|
|
110
|
+
return this.resolveSchema();
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Indicates that location is required for Cosmos DB Accounts
|
|
114
|
+
*/
|
|
115
|
+
requiresLocation() {
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Creates the resource body for the Azure API call
|
|
120
|
+
*/
|
|
121
|
+
createResourceBody(props) {
|
|
122
|
+
const typedProps = props;
|
|
123
|
+
const consistencyPolicy = typedProps.consistencyPolicy ?? {
|
|
124
|
+
defaultConsistencyLevel: "Session",
|
|
125
|
+
maxIntervalInSeconds: 5,
|
|
126
|
+
maxStalenessPrefix: 100,
|
|
127
|
+
};
|
|
128
|
+
const geoLocations = typedProps.geoLocations && typedProps.geoLocations.length > 0
|
|
129
|
+
? typedProps.geoLocations
|
|
130
|
+
: [
|
|
131
|
+
{
|
|
132
|
+
locationName: this.location,
|
|
133
|
+
failoverPriority: 0,
|
|
134
|
+
isZoneRedundant: false,
|
|
135
|
+
},
|
|
136
|
+
];
|
|
137
|
+
const properties = {
|
|
138
|
+
databaseAccountOfferType: typedProps.databaseAccountOfferType ?? "Standard",
|
|
139
|
+
consistencyPolicy: consistencyPolicy,
|
|
140
|
+
locations: geoLocations,
|
|
141
|
+
publicNetworkAccess: typedProps.publicNetworkAccess ?? "Enabled",
|
|
142
|
+
enableAutomaticFailover: typedProps.enableAutomaticFailover ?? false,
|
|
143
|
+
enableMultipleWriteLocations: typedProps.enableMultipleWriteLocations ?? false,
|
|
144
|
+
enableFreeTier: typedProps.enableFreeTier ?? false,
|
|
145
|
+
isVirtualNetworkFilterEnabled: typedProps.isVirtualNetworkFilterEnabled ?? false,
|
|
146
|
+
minimalTlsVersion: typedProps.minimalTlsVersion ?? "Tls12",
|
|
147
|
+
};
|
|
148
|
+
if (typedProps.capabilities && typedProps.capabilities.length > 0) {
|
|
149
|
+
properties.capabilities = typedProps.capabilities;
|
|
150
|
+
}
|
|
151
|
+
if (typedProps.backupPolicy) {
|
|
152
|
+
properties.backupPolicy = typedProps.backupPolicy;
|
|
153
|
+
}
|
|
154
|
+
return {
|
|
155
|
+
location: this.location,
|
|
156
|
+
tags: this.allTags(),
|
|
157
|
+
kind: typedProps.kind ?? "GlobalDocumentDB",
|
|
158
|
+
identity: typedProps.identity,
|
|
159
|
+
properties: properties,
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
// =============================================================================
|
|
163
|
+
// PUBLIC METHODS FOR COSMOS DB ACCOUNT OPERATIONS
|
|
164
|
+
// =============================================================================
|
|
165
|
+
/**
|
|
166
|
+
* Get the document endpoint URL for the Cosmos DB Account
|
|
167
|
+
*/
|
|
168
|
+
get documentEndpoint() {
|
|
169
|
+
return `\${${this.terraformResource.fqn}.output.properties.documentEndpoint}`;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Add a tag to the Cosmos DB Account
|
|
173
|
+
*/
|
|
174
|
+
addTag(key, value) {
|
|
175
|
+
if (!this.props.tags) {
|
|
176
|
+
this.props.tags = {};
|
|
177
|
+
}
|
|
178
|
+
this.props.tags[key] = value;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Remove a tag from the Cosmos DB Account
|
|
182
|
+
*/
|
|
183
|
+
removeTag(key) {
|
|
184
|
+
if (this.props.tags && this.props.tags[key]) {
|
|
185
|
+
delete this.props.tags[key];
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
// =============================================================================
|
|
189
|
+
// PRIVATE HELPER METHODS
|
|
190
|
+
// =============================================================================
|
|
191
|
+
/**
|
|
192
|
+
* Applies ignore changes lifecycle rules
|
|
193
|
+
*
|
|
194
|
+
* Cosmos DB's REST API normalizes location values (e.g. "centralus" -> "Central US")
|
|
195
|
+
* after the resource is created, which causes Terraform to detect drift on every
|
|
196
|
+
* plan. To make the resource idempotent, the construct automatically adds the
|
|
197
|
+
* normalized location fields to `ignore_changes`. Any user-specified
|
|
198
|
+
* `ignoreChanges` are merged in.
|
|
199
|
+
*/
|
|
200
|
+
_applyIgnoreChanges() {
|
|
201
|
+
const defaultIgnore = [
|
|
202
|
+
"location",
|
|
203
|
+
"body.location",
|
|
204
|
+
"body.properties.locations",
|
|
205
|
+
];
|
|
206
|
+
const userIgnore = this.props.ignoreChanges ?? [];
|
|
207
|
+
const ignoreChanges = Array.from(new Set([...defaultIgnore, ...userIgnore]));
|
|
208
|
+
this.terraformResource.addOverride("lifecycle", [
|
|
209
|
+
{
|
|
210
|
+
ignore_changes: ignoreChanges,
|
|
211
|
+
},
|
|
212
|
+
]);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
exports.CosmosDbAccount = CosmosDbAccount;
|
|
216
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
217
|
+
CosmosDbAccount[_a] = { fqn: "@microsoft/terraform-cdk-constructs.CosmosDbAccount", version: "1.10.0" };
|
|
218
|
+
// Static initializer runs once when the class is first loaded
|
|
219
|
+
(() => {
|
|
220
|
+
azapi_resource_1.AzapiResource.registerSchemas(cosmos_db_schemas_1.COSMOS_DB_TYPE, cosmos_db_schemas_1.ALL_COSMOS_DB_VERSIONS);
|
|
221
|
+
})();
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29zbW9zLWRiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLWNvc21vc2RiL2xpYi9jb3Ntb3MtZGIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7Ozs7Ozs7Ozs7OztHQWFHO0FBRUgsK0JBQStCO0FBRS9CLDJEQUE2RTtBQUM3RSw4RUFHbUQ7QUEyTm5EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCRztBQUNILE1BQWEsZUFBZ0IsU0FBUSw4QkFBYTtJQWVoRDs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTJCO1FBQ25FLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRW5CLDJCQUEyQjtRQUMzQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ3BELEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNkLFdBQVcsRUFBRSxpQ0FBaUM7U0FDL0MsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNoRSxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxZQUFZO1lBQ25ELFdBQVcsRUFBRSx1Q0FBdUM7U0FDckQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEtBQUssQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRTtZQUN4RCxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxRQUFRO1lBQy9DLFdBQVcsRUFBRSxtQ0FBbUM7U0FDakQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUs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QWdGO0lBQ2hGLHlCQUF5QjtJQUN6QixnRkFBZ0Y7SUFFaEY7Ozs7Ozs7O09BUUc7SUFDSyxtQkFBbUI7UUFDekIsTUFBTSxhQUFhLEdBQUc7WUFDcEIsVUFBVTtZQUNWLGVBQWU7WUFDZiwyQkFBMkI7U0FDNUIsQ0FBQztRQUNGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztRQUNsRCxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUM5QixJQUFJLEdBQUcsQ0FBQyxDQUFDLEdBQUcsYUFBYSxFQUFFLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FDM0MsQ0FBQztRQUVGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFO1lBQzlDO2dCQUNFLGNBQWMsRUFBRSxhQUFhO2FBQzlCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF2TkgsMENBd05DOzs7QUF2TkMsOERBQThEO0FBQzlEO0lBQ0UsOEJBQWEsQ0FBQyxlQUFlLENBQUMsa0NBQWMsRUFBRSwwQ0FBc0IsQ0FBQyxDQUFDO0FBQ3hFLENBQUMsR0FBQSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBVbmlmaWVkIEF6dXJlIENvc21vcyBEQiBBY2NvdW50IGltcGxlbWVudGF0aW9uIHVzaW5nIFZlcnNpb25lZEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gKlxuICogU3VwcG9ydGVkIEFQSSBWZXJzaW9uczpcbiAqIC0gMjAyMy0xMS0xNSAoRGVwcmVjYXRlZClcbiAqIC0gMjAyNC0wNS0xNSAoQWN0aXZlKVxuICogLSAyMDI0LTA4LTE1IChBY3RpdmUsIExhdGVzdClcbiAqXG4gKiBGZWF0dXJlczpcbiAqIC0gQXV0b21hdGljIGxhdGVzdCB2ZXJzaW9uIHJlc29sdXRpb24gd2hlbiBubyB2ZXJzaW9uIGlzIHNwZWNpZmllZFxuICogLSBFeHBsaWNpdCB2ZXJzaW9uIHBpbm5pbmcgZm9yIHN0YWJpbGl0eSByZXF1aXJlbWVudHNcbiAqIC0gU2NoZW1hLWRyaXZlbiB2YWxpZGF0aW9uIGFuZCB0cmFuc2Zvcm1hdGlvblxuICogLSBKU0lJIGNvbXBsaWFuY2UgZm9yIG11bHRpLWxhbmd1YWdlIHN1cHBvcnRcbiAqL1xuXG5pbXBvcnQgKiBhcyBjZGt0ZiBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBTExfQ09TTU9TX0RCX1ZFUlNJT05TLCBDT1NNT1NfREJfVFlQRSB9IGZyb20gXCIuL2Nvc21vcy1kYi1zY2hlbWFzXCI7XG5pbXBvcnQge1xuICBBemFwaVJlc291cmNlLFxuICBBemFwaVJlc291cmNlUHJvcHMsXG59IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi9hemFwaS9hemFwaS1yZXNvdXJjZVwiO1xuaW1wb3J0IHsgQXBpU2NoZW1hIH0gZnJvbSBcIi4uLy4uL2NvcmUtYXp1cmUvbGliL3ZlcnNpb24tbWFuYWdlci9pbnRlcmZhY2VzL3ZlcnNpb24taW50ZXJmYWNlc1wiO1xuXG4vKipcbiAqIENvbnNpc3RlbmN5IHBvbGljeSBjb25maWd1cmF0aW9uIGZvciBDb3Ntb3MgREIgQWNjb3VudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvc21vc0RiQ29uc2lzdGVuY3lQb2xpY3kge1xuICAvKipcbiAgICogVGhlIGRlZmF1bHQgY29uc2lzdGVuY3kgbGV2ZWxcbiAgICogKEV2ZW50dWFsLCBTZXNzaW9uLCBCb3VuZGVkU3RhbGVuZXNzLCBTdHJvbmcsIENvbnNpc3RlbnRQcmVmaXgpXG4gICAqIEBkZWZhdWx0IFwiU2Vzc2lvblwiXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0Q29uc2lzdGVuY3lMZXZlbDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBzdGFsZW5lc3MgcHJlZml4IChvbmx5IHZhbGlkIGZvciBCb3VuZGVkU3RhbGVuZXNzKVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4U3RhbGVuZXNzUHJlZml4PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBpbnRlcnZhbCBpbiBzZWNvbmRzIChvbmx5IHZhbGlkIGZvciBCb3VuZGVkU3RhbGVuZXNzKVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4SW50ZXJ2YWxJblNlY29uZHM/OiBudW1iZXI7XG59XG5cbi8qKlxuICogR2VvLXJlcGxpY2F0aW9uIGxvY2F0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIENvc21vcyBEQiBBY2NvdW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29zbW9zRGJHZW9Mb2NhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgQXp1cmUgcmVnaW9uIG5hbWUgKGUuZy4gXCJlYXN0dXNcIilcbiAgICovXG4gIHJlYWRvbmx5IGxvY2F0aW9uTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZmFpbG92ZXIgcHJpb3JpdHkgb2YgdGhlIHJlZ2lvbiAoMCA9IHdyaXRlIHJlZ2lvbilcbiAgICovXG4gIHJlYWRvbmx5IGZhaWxvdmVyUHJpb3JpdHk6IG51bWJlcjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGlzIHJlZ2lvbiBpcyB6b25lLXJlZHVuZGFudFxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaXNab25lUmVkdW5kYW50PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDYXBhYmlsaXR5IGNvbmZpZ3VyYXRpb24gZm9yIENvc21vcyBEQiBBY2NvdW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29zbW9zRGJDYXBhYmlsaXR5IHtcbiAgLyoqXG4gICAqIFRoZSBjYXBhYmlsaXR5IG5hbWUgKGUuZy4gXCJFbmFibGVTZXJ2ZXJsZXNzXCIsIFwiRW5hYmxlQ2Fzc2FuZHJhXCIsXG4gICAqIFwiRW5hYmxlVGFibGVcIiwgXCJFbmFibGVHcmVtbGluXCIsIFwiRW5hYmxlTW9uZ29cIiwgXCJFbmFibGVBZ2dyZWdhdGlvblBpcGVsaW5lXCIpXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQmFja3VwIHBvbGljeSBjb25maWd1cmF0aW9uIGZvciBDb3Ntb3MgREIgQWNjb3VudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvc21vc0RiQmFja3VwUG9saWN5IHtcbiAgLyoqXG4gICAqIFRoZSBiYWNrdXAgdHlwZSAoXCJQZXJpb2RpY1wiIG9yIFwiQ29udGludW91c1wiKVxuICAgKi9cbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQZXJpb2RpYyBtb2RlIHByb3BlcnRpZXMgKG9ubHkgdmFsaWQgd2hlbiB0eXBlIGlzIFwiUGVyaW9kaWNcIilcbiAgICovXG4gIHJlYWRvbmx5IHBlcmlvZGljTW9kZVByb3BlcnRpZXM/OiBDb3Ntb3NEYlBlcmlvZGljTW9kZVByb3BlcnRpZXM7XG5cbiAgLyoqXG4gICAqIENvbnRpbnVvdXMgbW9kZSBwcm9wZXJ0aWVzIChvbmx5IHZhbGlkIHdoZW4gdHlwZSBpcyBcIkNvbnRpbnVvdXNcIilcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRpbnVvdXNNb2RlUHJvcGVydGllcz86IENvc21vc0RiQ29udGludW91c01vZGVQcm9wZXJ0aWVzO1xufVxuXG4vKipcbiAqIFBlcmlvZGljIGJhY2t1cCBtb2RlIHByb3BlcnRpZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb3Ntb3NEYlBlcmlvZGljTW9kZVByb3BlcnRpZXMge1xuICAvKipcbiAgICogQmFja3VwIGludGVydmFsIGluIG1pbnV0ZXNcbiAgICovXG4gIHJlYWRvbmx5IGJhY2t1cEludGVydmFsSW5NaW51dGVzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBCYWNrdXAgcmV0ZW50aW9uIGludGVydmFsIGluIGhvdXJzXG4gICAqL1xuICByZWFkb25seSBiYWNrdXBSZXRlbnRpb25JbnRlcnZhbEluSG91cnM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFN0b3JhZ2UgcmVkdW5kYW5jeSBmb3IgYmFja3VwcyAoR2VvLCBMb2NhbCwgWm9uZSlcbiAgICovXG4gIHJlYWRvbmx5IGJhY2t1cFN0b3JhZ2VSZWR1bmRhbmN5Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbnRpbnVvdXMgYmFja3VwIG1vZGUgcHJvcGVydGllc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIENvc21vc0RiQ29udGludW91c01vZGVQcm9wZXJ0aWVzIHtcbiAgLyoqXG4gICAqIENvbnRpbnVvdXMgYmFja3VwIHRpZXIgKFwiQ29udGludW91czdEYXlzXCIgb3IgXCJDb250aW51b3VzMzBEYXlzXCIpXG4gICAqL1xuICByZWFkb25seSB0aWVyPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIElkZW50aXR5IGNvbmZpZ3VyYXRpb24gZm9yIENvc21vcyBEQiBBY2NvdW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29zbW9zRGJJZGVudGl0eSB7XG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBpZGVudGl0eSAoTm9uZSwgU3lzdGVtQXNzaWduZWQsIFVzZXJBc3NpZ25lZCwgXCJTeXN0ZW1Bc3NpZ25lZCxVc2VyQXNzaWduZWRcIilcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogVXNlciBhc3NpZ25lZCBpZGVudGl0eSBJRHNcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJBc3NpZ25lZElkZW50aXRpZXM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHRoZSB1bmlmaWVkIEF6dXJlIENvc21vcyBEQiBBY2NvdW50XG4gKlxuICogRXh0ZW5kcyBBemFwaVJlc291cmNlUHJvcHMgd2l0aCBDb3Ntb3MgREIgQWNjb3VudCBzcGVjaWZpYyBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29zbW9zRGJBY2NvdW50UHJvcHMgZXh0ZW5kcyBBemFwaVJlc291cmNlUHJvcHMge1xuICAvKipcbiAgICogVGhlIGtpbmQgb2YgQ29zbW9zIERCIEFjY291bnRcbiAgICogQGRlZmF1bHQgXCJHbG9iYWxEb2N1bWVudERCXCJcbiAgICogQGV4YW1wbGUgXCJHbG9iYWxEb2N1bWVudERCXCIsIFwiTW9uZ29EQlwiLCBcIlBhcnNlXCJcbiAgICovXG4gIHJlYWRvbmx5IGtpbmQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkYXRhYmFzZSBhY2NvdW50IG9mZmVyIHR5cGVcbiAgICogQGRlZmF1bHQgXCJTdGFuZGFyZFwiXG4gICAqL1xuICByZWFkb25seSBkYXRhYmFzZUFjY291bnRPZmZlclR5cGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb25zaXN0ZW5jeSBwb2xpY3kgZm9yIHRoZSBDb3Ntb3MgREIgQWNjb3VudFxuICAgKiBAZGVmYXVsdCB7IGRlZmF1bHRDb25zaXN0ZW5jeUxldmVsOiBcIlNlc3Npb25cIiB9XG4gICAqL1xuICByZWFkb25seSBjb25zaXN0ZW5jeVBvbGljeT86IENvc21vc0RiQ29uc2lzdGVuY3lQb2xpY3k7XG5cbiAgLyoqXG4gICAqIEdlby1yZXBsaWNhdGlvbiBsb2NhdGlvbnMgZm9yIHRoZSBDb3Ntb3MgREIgQWNjb3VudC5cbiAgICpcbiAgICogSWYgbm90IHByb3ZpZGVkLCBhIHNpbmdsZSBsb2NhdGlvbiBtYXRjaGluZyB0aGUgYWNjb3VudCBsb2NhdGlvbiB3aWxsIGJlXG4gICAqIGNvbmZpZ3VyZWQgYXV0b21hdGljYWxseSB3aXRoIGZhaWxvdmVyIHByaW9yaXR5IDAuXG4gICAqL1xuICByZWFkb25seSBnZW9Mb2NhdGlvbnM/OiBDb3Ntb3NEYkdlb0xvY2F0aW9uW107XG5cbiAgLyoqXG4gICAqIENhcGFiaWxpdGllcyB0byBlbmFibGUgb24gdGhlIENvc21vcyBEQiBBY2NvdW50XG4gICAqIEBleGFtcGxlIFt7IG5hbWU6IFwiRW5hYmxlU2VydmVybGVzc1wiIH1dXG4gICAqL1xuICByZWFkb25seSBjYXBhYmlsaXRpZXM/OiBDb3Ntb3NEYkNhcGFiaWxpdHlbXTtcblxuICAvKipcbiAgICogV2hldGhlciBwdWJsaWMgbmV0d29yayBhY2Nlc3MgaXMgZW5hYmxlZFxuICAgKiBAZGVmYXVsdCBcIkVuYWJsZWRcIlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljTmV0d29ya0FjY2Vzcz86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciBhdXRvbWF0aWMgZmFpbG92ZXIgaXMgZW5hYmxlZFxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlQXV0b21hdGljRmFpbG92ZXI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIG11bHRpLXJlZ2lvbiB3cml0ZXMgYXJlIGVuYWJsZWRcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZU11bHRpcGxlV3JpdGVMb2NhdGlvbnM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBmcmVlIHRpZXIgaXMgZW5hYmxlZCAob25seSBvbmUgZnJlZS10aWVyIGFjY291bnQgaXMgYWxsb3dlZCBwZXIgc3Vic2NyaXB0aW9uKVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlRnJlZVRpZXI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHZpcnR1YWwgbmV0d29yayBmaWx0ZXJpbmcgaXMgZW5hYmxlZFxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaXNWaXJ0dWFsTmV0d29ya0ZpbHRlckVuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBUTFMgdmVyc2lvbiAoVGxzLCBUbHMxMSwgVGxzMTIpXG4gICAqIEBkZWZhdWx0IFwiVGxzMTJcIlxuICAgKi9cbiAgcmVhZG9ubHkgbWluaW1hbFRsc1ZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJhY2t1cCBwb2xpY3kgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgYmFja3VwUG9saWN5PzogQ29zbW9zRGJCYWNrdXBQb2xpY3k7XG5cbiAgLyoqXG4gICAqIE1hbmFnZWQgaWRlbnRpdHkgY29uZmlndXJhdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgaWRlbnRpdHk/OiBDb3Ntb3NEYklkZW50aXR5O1xuXG4gIC8qKlxuICAgKiBUaGUgbGlmZWN5Y2xlIHJ1bGVzIHRvIGlnbm9yZSBjaGFuZ2VzXG4gICAqIEBleGFtcGxlIFtcInRhZ3NcIl1cbiAgICovXG4gIHJlYWRvbmx5IGlnbm9yZUNoYW5nZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUmVzb3VyY2UgZ3JvdXAgSUQgd2hlcmUgdGhlIENvc21vcyBEQiBBY2NvdW50IHdpbGwgYmUgY3JlYXRlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VHcm91cElkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFVuaWZpZWQgQXp1cmUgQ29zbW9zIERCIEFjY291bnQgaW1wbGVtZW50YXRpb25cbiAqXG4gKiBQcm92aWRlcyBhIHNpbmdsZSwgdmVyc2lvbi1hd2FyZSBpbXBsZW1lbnRhdGlvbiB0aGF0IGF1dG9tYXRpY2FsbHkgaGFuZGxlc1xuICogdmVyc2lvbiByZXNvbHV0aW9uLCBzY2hlbWEgdmFsaWRhdGlvbiwgYW5kIHByb3BlcnR5IHRyYW5zZm9ybWF0aW9uIHdoaWxlXG4gKiBtYWludGFpbmluZyBmdWxsIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEJhc2ljIHVzYWdlIHdpdGggYXV0b21hdGljIHZlcnNpb24gcmVzb2x1dGlvbjpcbiAqIGNvbnN0IGNvc21vc0RiID0gbmV3IENvc21vc0RiQWNjb3VudCh0aGlzLCBcImNvc21vc1wiLCB7XG4gKiAgIG5hbWU6IFwibXljb3Ntb3NhY2NvdW50XCIsXG4gKiAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICogICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gKiB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gVXNhZ2Ugd2l0aCBleHBsaWNpdCB2ZXJzaW9uIHBpbm5pbmcgYW5kIHNlcnZlcmxlc3MgY2FwYWJpbGl0eTpcbiAqIGNvbnN0IGNvc21vc0RiID0gbmV3IENvc21vc0RiQWNjb3VudCh0aGlzLCBcImNvc21vc1wiLCB7XG4gKiAgIG5hbWU6IFwibXljb3Ntb3NhY2NvdW50XCIsXG4gKiAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICogICByZXNvdXJjZUdyb3VwSWQ6IHJlc291cmNlR3JvdXAuaWQsXG4gKiAgIGFwaVZlcnNpb246IFwiMjAyNC0wNS0xNVwiLFxuICogICBjYXBhYmlsaXRpZXM6IFt7IG5hbWU6IFwiRW5hYmxlU2VydmVybGVzc1wiIH1dLFxuICogfSk7XG4gKlxuICogQHN0YWJpbGl0eSBzdGFibGVcbiAqL1xuZXhwb3J0IGNsYXNzIENvc21vc0RiQWNjb3VudCBleHRlbmRzIEF6YXBpUmVzb3VyY2Uge1xuICAvLyBTdGF0aWMgaW5pdGlhbGl6ZXIgcnVucyBvbmNlIHdoZW4gdGhlIGNsYXNzIGlzIGZpcnN0IGxvYWRlZFxuICBzdGF0aWMge1xuICAgIEF6YXBpUmVzb3VyY2UucmVnaXN0ZXJTY2hlbWFzKENPU01PU19EQl9UWVBFLCBBTExfQ09TTU9TX0RCX1ZFUlNJT05TKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBwcm9wczogQ29zbW9zRGJBY2NvdW50UHJvcHM7XG5cbiAgLy8gT3V0cHV0IHByb3BlcnRpZXMgZm9yIGVhc3kgYWNjZXNzIGFuZCByZWZlcmVuY2luZ1xuICBwdWJsaWMgcmVhZG9ubHkgaWRPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IGxvY2F0aW9uT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSB0YWdzT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSBkb2N1bWVudEVuZHBvaW50T3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgQXp1cmUgQ29zbW9zIERCIEFjY291bnQgdXNpbmcgdGhlIFZlcnNpb25lZEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIENvc21vcyBEQiBBY2NvdW50XG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ29zbW9zRGJBY2NvdW50UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIC8vIENyZWF0ZSBUZXJyYWZvcm0gb3V0cHV0c1xuICAgIHRoaXMuaWRPdXRwdXQgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwiaWRcIiwge1xuICAgICAgdmFsdWU6IHRoaXMuaWQsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgSUQgb2YgdGhlIENvc21vcyBEQiBBY2NvdW50XCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLmxvY2F0aW9uT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcImxvY2F0aW9uXCIsIHtcbiAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59LmxvY2F0aW9ufWAsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgbG9jYXRpb24gb2YgdGhlIENvc21vcyBEQiBBY2NvdW50XCIsXG4gICAgfSk7XG5cbiAgICB0aGlzLm5hbWVPdXRwdXQgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwibmFtZVwiLCB7XG4gICAgICB2YWx1ZTogYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5uYW1lfWAsXG4gICAgICBkZXNjcmlwdGlvbjogXCJUaGUgbmFtZSBvZiB0aGUgQ29zbW9zIERCIEFjY291bnRcIixcbiAgICB9KTtcblxuICAgIHRoaXMudGFnc091dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJ0YWdzXCIsIHtcbiAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59LnRhZ3N9YCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSB0YWdzIGFzc2lnbmVkIHRvIHRoZSBDb3Ntb3MgREIgQWNjb3VudFwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5kb2N1bWVudEVuZHBvaW50T3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBcImRvY3VtZW50X2VuZHBvaW50XCIsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLmRvY3VtZW50RW5kcG9pbnR9YCxcbiAgICAgICAgZGVzY3JpcHRpb246IFwiVGhlIGRvY3VtZW50IGVuZHBvaW50IFVSTCBvZiB0aGUgQ29zbW9zIERCIEFjY291bnRcIixcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIC8vIE92ZXJyaWRlIGxvZ2ljYWwgSURzXG4gICAgdGhpcy5pZE91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcImlkXCIpO1xuICAgIHRoaXMubG9jYXRpb25PdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJsb2NhdGlvblwiKTtcbiAgICB0aGlzLm5hbWVPdXRwdXQub3ZlcnJpZGVMb2dpY2FsSWQoXCJuYW1lXCIpO1xuICAgIHRoaXMudGFnc091dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcInRhZ3NcIik7XG4gICAgdGhpcy5kb2N1bWVudEVuZHBvaW50T3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwiZG9jdW1lbnRfZW5kcG9pbnRcIik7XG5cbiAgICAvLyBBcHBseSBpZ25vcmUgY2hhbmdlcyBpZiBzcGVjaWZpZWRcbiAgICB0aGlzLl9hcHBseUlnbm9yZUNoYW5nZXMoKTtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFJFUVVJUkVEIEFCU1RSQUNUIE1FVEhPRFMgRlJPTSBBemFwaVJlc291cmNlXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGRlZmF1bHQgQVBJIHZlcnNpb24gdG8gdXNlIHdoZW4gbm8gZXhwbGljaXQgdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAgICovXG4gIHByb3RlY3RlZCBkZWZhdWx0VmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIjIwMjQtMDgtMTVcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBenVyZSByZXNvdXJjZSB0eXBlIGZvciBDb3Ntb3MgREIgQWNjb3VudHNcbiAgICovXG4gIHByb3RlY3RlZCByZXNvdXJjZVR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gQ09TTU9TX0RCX1RZUEU7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgQVBJIHNjaGVtYSBmb3IgdGhlIHJlc29sdmVkIHZlcnNpb25cbiAgICovXG4gIHByb3RlY3RlZCBhcGlTY2hlbWEoKTogQXBpU2NoZW1hIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlU2NoZW1hKCk7XG4gIH1cblxuICAvKipcbiAgICogSW5kaWNhdGVzIHRoYXQgbG9jYXRpb24gaXMgcmVxdWlyZWQgZm9yIENvc21vcyBEQiBBY2NvdW50c1xuICAgKi9cbiAgcHJvdGVjdGVkIHJlcXVpcmVzTG9jYXRpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgcmVzb3VyY2UgYm9keSBmb3IgdGhlIEF6dXJlIEFQSSBjYWxsXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlUmVzb3VyY2VCb2R5KHByb3BzOiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IHR5cGVkUHJvcHMgPSBwcm9wcyBhcyBDb3Ntb3NEYkFjY291bnRQcm9wcztcblxuICAgIGNvbnN0IGNvbnNpc3RlbmN5UG9saWN5OiBDb3Ntb3NEYkNvbnNpc3RlbmN5UG9saWN5ID1cbiAgICAgIHR5cGVkUHJvcHMuY29uc2lzdGVuY3lQb2xpY3kgPz8ge1xuICAgICAgICBkZWZhdWx0Q29uc2lzdGVuY3lMZXZlbDogXCJTZXNzaW9uXCIsXG4gICAgICAgIG1heEludGVydmFsSW5TZWNvbmRzOiA1LFxuICAgICAgICBtYXhTdGFsZW5lc3NQcmVmaXg6IDEwMCxcbiAgICAgIH07XG5cbiAgICBjb25zdCBnZW9Mb2NhdGlvbnM6IENvc21vc0RiR2VvTG9jYXRpb25bXSA9XG4gICAgICB0eXBlZFByb3BzLmdlb0xvY2F0aW9ucyAmJiB0eXBlZFByb3BzLmdlb0xvY2F0aW9ucy5sZW5ndGggPiAwXG4gICAgICAgID8gdHlwZWRQcm9wcy5nZW9Mb2NhdGlvbnNcbiAgICAgICAgOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxvY2F0aW9uTmFtZTogdGhpcy5sb2NhdGlvbiBhcyBzdHJpbmcsXG4gICAgICAgICAgICAgIGZhaWxvdmVyUHJpb3JpdHk6IDAsXG4gICAgICAgICAgICAgIGlzWm9uZVJlZHVuZGFudDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF07XG5cbiAgICBjb25zdCBwcm9wZXJ0aWVzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge1xuICAgICAgZGF0YWJhc2VBY2NvdW50T2ZmZXJUeXBlOlxuICAgICAgICB0eXBlZFByb3BzLmRhdGFiYXNlQWNjb3VudE9mZmVyVHlwZSA/PyBcIlN0YW5kYXJkXCIsXG4gICAgICBjb25zaXN0ZW5jeVBvbGljeTogY29uc2lzdGVuY3lQb2xpY3ksXG4gICAgICBsb2NhdGlvbnM6IGdlb0xvY2F0aW9ucyxcbiAgICAgIHB1YmxpY05ldHdvcmtBY2Nlc3M6IHR5cGVkUHJvcHMucHVibGljTmV0d29ya0FjY2VzcyA/PyBcIkVuYWJsZWRcIixcbiAgICAgIGVuYWJsZUF1dG9tYXRpY0ZhaWxvdmVyOiB0eXBlZFByb3BzLmVuYWJsZUF1dG9tYXRpY0ZhaWxvdmVyID8/IGZhbHNlLFxuICAgICAgZW5hYmxlTXVsdGlwbGVXcml0ZUxvY2F0aW9uczpcbiAgICAgICAgdHlwZWRQcm9wcy5lbmFibGVNdWx0aXBsZVdyaXRlTG9jYXRpb25zID8/IGZhbHNlLFxuICAgICAgZW5hYmxlRnJlZVRpZXI6IHR5cGVkUHJvcHMuZW5hYmxlRnJlZVRpZXIgPz8gZmFsc2UsXG4gICAgICBpc1ZpcnR1YWxOZXR3b3JrRmlsdGVyRW5hYmxlZDpcbiAgICAgICAgdHlwZWRQcm9wcy5pc1ZpcnR1YWxOZXR3b3JrRmlsdGVyRW5hYmxlZCA/PyBmYWxzZSxcbiAgICAgIG1pbmltYWxUbHNWZXJzaW9uOiB0eXBlZFByb3BzLm1pbmltYWxUbHNWZXJzaW9uID8/IFwiVGxzMTJcIixcbiAgICB9O1xuXG4gICAgaWYgKHR5cGVkUHJvcHMuY2FwYWJpbGl0aWVzICYmIHR5cGVkUHJvcHMuY2FwYWJpbGl0aWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHByb3BlcnRpZXMuY2FwYWJpbGl0aWVzID0gdHlwZWRQcm9wcy5jYXBhYmlsaXRpZXM7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVkUHJvcHMuYmFja3VwUG9saWN5KSB7XG4gICAgICBwcm9wZXJ0aWVzLmJhY2t1cFBvbGljeSA9IHR5cGVkUHJvcHMuYmFja3VwUG9saWN5O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBsb2NhdGlvbjogdGhpcy5sb2NhdGlvbixcbiAgICAgIHRhZ3M6IHRoaXMuYWxsVGFncygpLFxuICAgICAga2luZDogdHlwZWRQcm9wcy5raW5kID8/IFwiR2xvYmFsRG9jdW1lbnREQlwiLFxuICAgICAgaWRlbnRpdHk6IHR5cGVkUHJvcHMuaWRlbnRpdHksXG4gICAgICBwcm9wZXJ0aWVzOiBwcm9wZXJ0aWVzLFxuICAgIH07XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBQVUJMSUMgTUVUSE9EUyBGT1IgQ09TTU9TIERCIEFDQ09VTlQgT1BFUkFUSU9OU1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRvY3VtZW50IGVuZHBvaW50IFVSTCBmb3IgdGhlIENvc21vcyBEQiBBY2NvdW50XG4gICAqL1xuICBwdWJsaWMgZ2V0IGRvY3VtZW50RW5kcG9pbnQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYFxcJHske3RoaXMudGVycmFmb3JtUmVzb3VyY2UuZnFufS5vdXRwdXQucHJvcGVydGllcy5kb2N1bWVudEVuZHBvaW50fWA7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgdGFnIHRvIHRoZSBDb3Ntb3MgREIgQWNjb3VudFxuICAgKi9cbiAgcHVibGljIGFkZFRhZyhrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wcm9wcy50YWdzKSB7XG4gICAgICAodGhpcy5wcm9wcyBhcyBhbnkpLnRhZ3MgPSB7fTtcbiAgICB9XG4gICAgdGhpcy5wcm9wcy50YWdzIVtrZXldID0gdmFsdWU7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGEgdGFnIGZyb20gdGhlIENvc21vcyBEQiBBY2NvdW50XG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlVGFnKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvcHMudGFncyAmJiB0aGlzLnByb3BzLnRhZ3Nba2V5XSkge1xuICAgICAgZGVsZXRlIHRoaXMucHJvcHMudGFnc1trZXldO1xuICAgIH1cbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIFBSSVZBVEUgSEVMUEVSIE1FVEhPRFNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogQXBwbGllcyBpZ25vcmUgY2hhbmdlcyBsaWZlY3ljbGUgcnVsZXNcbiAgICpcbiAgICogQ29zbW9zIERCJ3MgUkVTVCBBUEkgbm9ybWFsaXplcyBsb2NhdGlvbiB2YWx1ZXMgKGUuZy4gXCJjZW50cmFsdXNcIiAtPiBcIkNlbnRyYWwgVVNcIilcbiAgICogYWZ0ZXIgdGhlIHJlc291cmNlIGlzIGNyZWF0ZWQsIHdoaWNoIGNhdXNlcyBUZXJyYWZvcm0gdG8gZGV0ZWN0IGRyaWZ0IG9uIGV2ZXJ5XG4gICAqIHBsYW4uIFRvIG1ha2UgdGhlIHJlc291cmNlIGlkZW1wb3RlbnQsIHRoZSBjb25zdHJ1Y3QgYXV0b21hdGljYWxseSBhZGRzIHRoZVxuICAgKiBub3JtYWxpemVkIGxvY2F0aW9uIGZpZWxkcyB0byBgaWdub3JlX2NoYW5nZXNgLiBBbnkgdXNlci1zcGVjaWZpZWRcbiAgICogYGlnbm9yZUNoYW5nZXNgIGFyZSBtZXJnZWQgaW4uXG4gICAqL1xuICBwcml2YXRlIF9hcHBseUlnbm9yZUNoYW5nZXMoKTogdm9pZCB7XG4gICAgY29uc3QgZGVmYXVsdElnbm9yZSA9IFtcbiAgICAgIFwibG9jYXRpb25cIixcbiAgICAgIFwiYm9keS5sb2NhdGlvblwiLFxuICAgICAgXCJib2R5LnByb3BlcnRpZXMubG9jYXRpb25zXCIsXG4gICAgXTtcbiAgICBjb25zdCB1c2VySWdub3JlID0gdGhpcy5wcm9wcy5pZ25vcmVDaGFuZ2VzID8/IFtdO1xuICAgIGNvbnN0IGlnbm9yZUNoYW5nZXMgPSBBcnJheS5mcm9tKFxuICAgICAgbmV3IFNldChbLi4uZGVmYXVsdElnbm9yZSwgLi4udXNlcklnbm9yZV0pLFxuICAgICk7XG5cbiAgICB0aGlzLnRlcnJhZm9ybVJlc291cmNlLmFkZE92ZXJyaWRlKFwibGlmZWN5Y2xlXCIsIFtcbiAgICAgIHtcbiAgICAgICAgaWdub3JlX2NoYW5nZXM6IGlnbm9yZUNoYW5nZXMsXG4gICAgICB9LFxuICAgIF0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,19 @@
|
|
|
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("./cosmos-db-schemas"), exports);
|
|
18
|
+
__exportStar(require("./cosmos-db"), exports);
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtY29zbW9zZGIvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzREFBb0M7QUFDcEMsOENBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vY29zbW9zLWRiLXNjaGVtYXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Nvc21vcy1kYlwiO1xuIl19
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Integration test for Azure Cosmos DB Account
|
|
3
|
+
*
|
|
4
|
+
* This test demonstrates basic usage of the CosmosDbAccount construct
|
|
5
|
+
* and validates deployment, idempotency, and cleanup.
|
|
6
|
+
*
|
|
7
|
+
* Run with: npm run integration:nostream
|
|
8
|
+
*/
|
|
9
|
+
import "cdktf/lib/testing/adapters/jest";
|