@microsoft/terraform-cdk-constructs 2.2.0 → 2.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/.jsii +64029 -35477
  2. package/API.md +89314 -49618
  3. package/README.md +15 -0
  4. package/cdktf.json +1 -1
  5. package/docs/azure-api-version-update-pipeline.md +271 -0
  6. package/lib/azure-actiongroup/lib/action-group.js +1 -1
  7. package/lib/azure-activitylogalert/lib/activity-log-alert.js +1 -1
  8. package/lib/azure-aks/lib/aks-cluster.js +1 -1
  9. package/lib/azure-applicationinsights/index.d.ts +7 -0
  10. package/lib/azure-applicationinsights/index.js +24 -0
  11. package/lib/azure-applicationinsights/lib/application-insights-schemas.d.ts +29 -0
  12. package/lib/azure-applicationinsights/lib/application-insights-schemas.js +162 -0
  13. package/lib/azure-applicationinsights/lib/application-insights.d.ts +206 -0
  14. package/lib/azure-applicationinsights/lib/application-insights.js +209 -0
  15. package/lib/azure-applicationinsights/lib/index.d.ts +5 -0
  16. package/lib/azure-applicationinsights/lib/index.js +22 -0
  17. package/lib/azure-applicationinsights/test/application-insights.integ.d.ts +9 -0
  18. package/lib/azure-applicationinsights/test/application-insights.integ.js +84 -0
  19. package/lib/azure-applicationinsights/test/application-insights.spec.d.ts +8 -0
  20. package/lib/azure-applicationinsights/test/application-insights.spec.js +209 -0
  21. package/lib/azure-containerapps/lib/container-app-environment-schemas.d.ts +1 -1
  22. package/lib/azure-containerapps/lib/container-app-environment-schemas.js +2 -2
  23. package/lib/azure-containerapps/lib/container-app-environment.js +1 -1
  24. package/lib/azure-containerapps/lib/container-app-schemas.d.ts +1 -1
  25. package/lib/azure-containerapps/lib/container-app-schemas.js +2 -2
  26. package/lib/azure-containerapps/lib/container-app.js +1 -1
  27. package/lib/azure-containerapps/lib/container-apps-job-schemas.d.ts +8 -0
  28. package/lib/azure-containerapps/lib/container-apps-job-schemas.js +179 -0
  29. package/lib/azure-containerapps/lib/container-apps-job.d.ts +128 -0
  30. package/lib/azure-containerapps/lib/container-apps-job.js +81 -0
  31. package/lib/azure-containerapps/lib/index.d.ts +2 -0
  32. package/lib/azure-containerapps/lib/index.js +3 -1
  33. package/lib/azure-containerapps/test/container-apps-job.integ.d.ts +6 -0
  34. package/lib/azure-containerapps/test/container-apps-job.integ.js +95 -0
  35. package/lib/azure-containerapps/test/container-apps-job.spec.d.ts +1 -0
  36. package/lib/azure-containerapps/test/container-apps-job.spec.js +261 -0
  37. package/lib/azure-containerregistry/index.d.ts +1 -0
  38. package/lib/azure-containerregistry/index.js +18 -0
  39. package/lib/azure-containerregistry/lib/container-registry-schemas.d.ts +32 -0
  40. package/lib/azure-containerregistry/lib/container-registry-schemas.js +316 -0
  41. package/lib/azure-containerregistry/lib/container-registry.d.ts +330 -0
  42. package/lib/azure-containerregistry/lib/container-registry.js +217 -0
  43. package/lib/azure-containerregistry/lib/index.d.ts +2 -0
  44. package/lib/azure-containerregistry/lib/index.js +19 -0
  45. package/lib/azure-containerregistry/test/container-registry.integ.d.ts +9 -0
  46. package/lib/azure-containerregistry/test/container-registry.integ.js +101 -0
  47. package/lib/azure-containerregistry/test/container-registry.spec.d.ts +4 -0
  48. package/lib/azure-containerregistry/test/container-registry.spec.js +425 -0
  49. package/lib/azure-cosmosdb/index.d.ts +1 -0
  50. package/lib/azure-cosmosdb/index.js +18 -0
  51. package/lib/azure-cosmosdb/lib/cosmos-db-schemas.d.ts +40 -0
  52. package/lib/azure-cosmosdb/lib/cosmos-db-schemas.js +330 -0
  53. package/lib/azure-cosmosdb/lib/cosmos-db.d.ts +290 -0
  54. package/lib/azure-cosmosdb/lib/cosmos-db.js +222 -0
  55. package/lib/azure-cosmosdb/lib/index.d.ts +2 -0
  56. package/lib/azure-cosmosdb/lib/index.js +19 -0
  57. package/lib/azure-cosmosdb/test/cosmos-db.integ.d.ts +9 -0
  58. package/lib/azure-cosmosdb/test/cosmos-db.integ.js +98 -0
  59. package/lib/azure-cosmosdb/test/cosmos-db.spec.d.ts +4 -0
  60. package/lib/azure-cosmosdb/test/cosmos-db.spec.js +339 -0
  61. package/lib/azure-dataexplorer/index.d.ts +1 -0
  62. package/lib/azure-dataexplorer/index.js +18 -0
  63. package/lib/azure-dataexplorer/lib/data-explorer-cluster-schemas.d.ts +5 -0
  64. package/lib/azure-dataexplorer/lib/data-explorer-cluster-schemas.js +131 -0
  65. package/lib/azure-dataexplorer/lib/data-explorer-cluster.d.ts +54 -0
  66. package/lib/azure-dataexplorer/lib/data-explorer-cluster.js +91 -0
  67. package/lib/azure-dataexplorer/lib/data-explorer-database-schemas.d.ts +5 -0
  68. package/lib/azure-dataexplorer/lib/data-explorer-database-schemas.js +78 -0
  69. package/lib/azure-dataexplorer/lib/data-explorer-database.d.ts +24 -0
  70. package/lib/azure-dataexplorer/lib/data-explorer-database.js +68 -0
  71. package/lib/azure-dataexplorer/lib/data-explorer-table-schemas.d.ts +5 -0
  72. package/lib/azure-dataexplorer/lib/data-explorer-table-schemas.js +94 -0
  73. package/lib/azure-dataexplorer/lib/data-explorer-table.d.ts +25 -0
  74. package/lib/azure-dataexplorer/lib/data-explorer-table.js +62 -0
  75. package/lib/azure-dataexplorer/lib/index.d.ts +6 -0
  76. package/lib/azure-dataexplorer/lib/index.js +23 -0
  77. package/lib/azure-dataexplorer/test/data-explorer.integ.d.ts +1 -0
  78. package/lib/azure-dataexplorer/test/data-explorer.integ.js +78 -0
  79. package/lib/azure-dataexplorer/test/data-explorer.spec.d.ts +1 -0
  80. package/lib/azure-dataexplorer/test/data-explorer.spec.js +248 -0
  81. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +1 -1
  82. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +1 -1
  83. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +1 -1
  84. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +1 -1
  85. package/lib/azure-dnsresolver/lib/dns-resolver.js +1 -1
  86. package/lib/azure-dnsresolver/lib/inbound-endpoint.js +1 -1
  87. package/lib/azure-dnsresolver/lib/outbound-endpoint.js +1 -1
  88. package/lib/azure-dnszone/lib/dns-zone.js +1 -1
  89. package/lib/azure-dnszone/lib/records/dns-records.js +10 -10
  90. package/lib/azure-eventgrideventsubscription/index.d.ts +1 -0
  91. package/lib/azure-eventgrideventsubscription/index.js +18 -0
  92. package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription-schemas.d.ts +5 -0
  93. package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription-schemas.js +151 -0
  94. package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription.d.ts +59 -0
  95. package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription.js +67 -0
  96. package/lib/azure-eventgrideventsubscription/lib/index.d.ts +2 -0
  97. package/lib/azure-eventgrideventsubscription/lib/index.js +19 -0
  98. package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.integ.d.ts +1 -0
  99. package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.integ.js +100 -0
  100. package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.spec.d.ts +1 -0
  101. package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.spec.js +242 -0
  102. package/lib/azure-eventgridsystemtopic/index.d.ts +1 -0
  103. package/lib/azure-eventgridsystemtopic/index.js +18 -0
  104. package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic-schemas.d.ts +5 -0
  105. package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic-schemas.js +164 -0
  106. package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic.d.ts +46 -0
  107. package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic.js +68 -0
  108. package/lib/azure-eventgridsystemtopic/lib/index.d.ts +2 -0
  109. package/lib/azure-eventgridsystemtopic/lib/index.js +19 -0
  110. package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.integ.d.ts +1 -0
  111. package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.integ.js +64 -0
  112. package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.spec.d.ts +1 -0
  113. package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.spec.js +241 -0
  114. package/lib/azure-eventhub/index.d.ts +7 -0
  115. package/lib/azure-eventhub/index.js +24 -0
  116. package/lib/azure-eventhub/lib/event-hub-namespace.d.ts +204 -0
  117. package/lib/azure-eventhub/lib/event-hub-namespace.js +178 -0
  118. package/lib/azure-eventhub/lib/event-hub-schemas.d.ts +63 -0
  119. package/lib/azure-eventhub/lib/event-hub-schemas.js +370 -0
  120. package/lib/azure-eventhub/lib/event-hub.d.ts +153 -0
  121. package/lib/azure-eventhub/lib/event-hub.js +171 -0
  122. package/lib/azure-eventhub/lib/index.d.ts +6 -0
  123. package/lib/azure-eventhub/lib/index.js +23 -0
  124. package/lib/azure-eventhub/test/event-hub.integ.d.ts +9 -0
  125. package/lib/azure-eventhub/test/event-hub.integ.js +113 -0
  126. package/lib/azure-eventhub/test/event-hub.spec.d.ts +8 -0
  127. package/lib/azure-eventhub/test/event-hub.spec.js +438 -0
  128. package/lib/azure-functionapp/index.d.ts +1 -0
  129. package/lib/azure-functionapp/index.js +18 -0
  130. package/lib/azure-functionapp/lib/function-app-schemas.d.ts +32 -0
  131. package/lib/azure-functionapp/lib/function-app-schemas.js +303 -0
  132. package/lib/azure-functionapp/lib/function-app.d.ts +367 -0
  133. package/lib/azure-functionapp/lib/function-app.js +223 -0
  134. package/lib/azure-functionapp/lib/index.d.ts +2 -0
  135. package/lib/azure-functionapp/lib/index.js +19 -0
  136. package/lib/azure-functionapp/test/function-app.integ.d.ts +12 -0
  137. package/lib/azure-functionapp/test/function-app.integ.js +134 -0
  138. package/lib/azure-functionapp/test/function-app.spec.d.ts +4 -0
  139. package/lib/azure-functionapp/test/function-app.spec.js +566 -0
  140. package/lib/azure-keyvault/index.d.ts +1 -0
  141. package/lib/azure-keyvault/index.js +18 -0
  142. package/lib/azure-keyvault/lib/index.d.ts +2 -0
  143. package/lib/azure-keyvault/lib/index.js +19 -0
  144. package/lib/azure-keyvault/lib/key-vault-schemas.d.ts +40 -0
  145. package/lib/azure-keyvault/lib/key-vault-schemas.js +312 -0
  146. package/lib/azure-keyvault/lib/key-vault.d.ts +344 -0
  147. package/lib/azure-keyvault/lib/key-vault.js +243 -0
  148. package/lib/azure-keyvault/test/key-vault.integ.d.ts +9 -0
  149. package/lib/azure-keyvault/test/key-vault.integ.js +108 -0
  150. package/lib/azure-keyvault/test/key-vault.spec.d.ts +4 -0
  151. package/lib/azure-keyvault/test/key-vault.spec.js +264 -0
  152. package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.js +1 -1
  153. package/lib/azure-metricalert/lib/metric-alert.js +1 -1
  154. package/lib/azure-networkinterface/lib/network-interface.js +1 -1
  155. package/lib/azure-networksecuritygroup/lib/network-security-group.js +1 -1
  156. package/lib/azure-networkwatcher/lib/network-watcher.js +1 -1
  157. package/lib/azure-policyassignment/lib/policy-assignment.js +1 -1
  158. package/lib/azure-policydefinition/lib/policy-definition.js +1 -1
  159. package/lib/azure-policysetdefinition/lib/policy-set-definition.js +1 -1
  160. package/lib/azure-privatednszone/lib/private-dns-zone.js +1 -1
  161. package/lib/azure-privatednszone/lib/records/private-dns-records.js +8 -8
  162. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +1 -1
  163. package/lib/azure-publicipaddress/lib/public-ip-address.js +1 -1
  164. package/lib/azure-resourcegroup/lib/resource-group.js +1 -1
  165. package/lib/azure-roleassignment/lib/role-assignment.js +1 -1
  166. package/lib/azure-roledefinition/lib/role-definition.js +1 -1
  167. package/lib/azure-sreagent/index.d.ts +1 -0
  168. package/lib/azure-sreagent/index.js +18 -0
  169. package/lib/azure-sreagent/lib/index.d.ts +2 -0
  170. package/lib/azure-sreagent/lib/index.js +19 -0
  171. package/lib/azure-sreagent/lib/sre-agent-schemas.d.ts +29 -0
  172. package/lib/azure-sreagent/lib/sre-agent-schemas.js +296 -0
  173. package/lib/azure-sreagent/lib/sre-agent.d.ts +208 -0
  174. package/lib/azure-sreagent/lib/sre-agent.js +217 -0
  175. package/lib/azure-sreagent/test/sre-agent.integ.d.ts +9 -0
  176. package/lib/azure-sreagent/test/sre-agent.integ.js +78 -0
  177. package/lib/azure-sreagent/test/sre-agent.spec.d.ts +4 -0
  178. package/lib/azure-sreagent/test/sre-agent.spec.js +216 -0
  179. package/lib/azure-staticwebapp/index.d.ts +1 -0
  180. package/lib/azure-staticwebapp/index.js +18 -0
  181. package/lib/azure-staticwebapp/lib/index.d.ts +2 -0
  182. package/lib/azure-staticwebapp/lib/index.js +19 -0
  183. package/lib/azure-staticwebapp/lib/static-web-app-schemas.d.ts +40 -0
  184. package/lib/azure-staticwebapp/lib/static-web-app-schemas.js +236 -0
  185. package/lib/azure-staticwebapp/lib/static-web-app.d.ts +242 -0
  186. package/lib/azure-staticwebapp/lib/static-web-app.js +232 -0
  187. package/lib/azure-staticwebapp/test/static-web-app.integ.d.ts +9 -0
  188. package/lib/azure-staticwebapp/test/static-web-app.integ.js +76 -0
  189. package/lib/azure-staticwebapp/test/static-web-app.spec.d.ts +15 -0
  190. package/lib/azure-staticwebapp/test/static-web-app.spec.js +293 -0
  191. package/lib/azure-storageaccount/lib/storage-account.js +1 -1
  192. package/lib/azure-storageblobcontainer/index.d.ts +1 -0
  193. package/lib/azure-storageblobcontainer/index.js +18 -0
  194. package/lib/azure-storageblobcontainer/lib/index.d.ts +2 -0
  195. package/lib/azure-storageblobcontainer/lib/index.js +19 -0
  196. package/lib/azure-storageblobcontainer/lib/storage-blob-container-schemas.d.ts +5 -0
  197. package/lib/azure-storageblobcontainer/lib/storage-blob-container-schemas.js +108 -0
  198. package/lib/azure-storageblobcontainer/lib/storage-blob-container.d.ts +37 -0
  199. package/lib/azure-storageblobcontainer/lib/storage-blob-container.js +63 -0
  200. package/lib/azure-storageblobcontainer/test/storage-blob-container.integ.d.ts +1 -0
  201. package/lib/azure-storageblobcontainer/test/storage-blob-container.integ.js +60 -0
  202. package/lib/azure-storageblobcontainer/test/storage-blob-container.spec.d.ts +1 -0
  203. package/lib/azure-storageblobcontainer/test/storage-blob-container.spec.js +172 -0
  204. package/lib/azure-subnet/lib/subnet.js +1 -1
  205. package/lib/azure-userassignedidentity/index.d.ts +1 -0
  206. package/lib/azure-userassignedidentity/index.js +18 -0
  207. package/lib/azure-userassignedidentity/lib/index.d.ts +2 -0
  208. package/lib/azure-userassignedidentity/lib/index.js +19 -0
  209. package/lib/azure-userassignedidentity/lib/user-assigned-identity-schemas.d.ts +8 -0
  210. package/lib/azure-userassignedidentity/lib/user-assigned-identity-schemas.js +107 -0
  211. package/lib/azure-userassignedidentity/lib/user-assigned-identity.d.ts +37 -0
  212. package/lib/azure-userassignedidentity/lib/user-assigned-identity.js +85 -0
  213. package/lib/azure-userassignedidentity/test/user-assigned-identity.integ.d.ts +1 -0
  214. package/lib/azure-userassignedidentity/test/user-assigned-identity.integ.js +64 -0
  215. package/lib/azure-userassignedidentity/test/user-assigned-identity.spec.d.ts +1 -0
  216. package/lib/azure-userassignedidentity/test/user-assigned-identity.spec.js +241 -0
  217. package/lib/azure-virtualmachine/lib/virtual-machine.js +1 -1
  218. package/lib/azure-virtualnetwork/lib/virtual-network.js +1 -1
  219. package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.js +1 -1
  220. package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.js +1 -1
  221. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +1 -1
  222. package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.js +1 -1
  223. package/lib/azure-virtualnetworkmanager/lib/ipam-pool.js +1 -1
  224. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +1 -1
  225. package/lib/azure-virtualnetworkmanager/lib/network-group.js +1 -1
  226. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +1 -1
  227. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +1 -1
  228. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +1 -1
  229. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +1 -1
  230. package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +66 -1
  231. package/lib/azure-vmss/lib/virtual-machine-scale-set.js +141 -2
  232. package/lib/azure-vmss/lib/vmss-schemas.d.ts +195 -0
  233. package/lib/azure-vmss/lib/vmss-schemas.js +33 -1
  234. package/lib/azure-vmss/test/virtual-machine-scale-set.spec.js +463 -1
  235. package/lib/core-azure/lib/azapi/azapi-resource.js +2 -2
  236. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +4 -4
  237. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +7 -7
  238. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.js +2 -2
  239. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.js +2 -2
  240. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.js +2 -2
  241. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.js +2 -2
  242. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +3 -3
  243. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +7 -7
  244. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +5 -5
  245. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +5 -5
  246. package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +1 -1
  247. package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
  248. package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
  249. package/lib/index.d.ts +39 -0
  250. package/lib/index.js +41 -2
  251. package/lib/testing/index.js +20 -3
  252. package/lib/testing/lib/cleanup.js +1 -1
  253. package/lib/testing/lib/metadata.js +12 -4
  254. package/lib/testing/lib/naming.js +57 -1
  255. package/package.json +1 -1
  256. package/scripts/azure-version-updater/create-issue.ts +189 -0
  257. package/scripts/azure-version-updater/discover.ts +382 -0
  258. package/scripts/azure-version-updater/spec-mapping.ts +164 -0
  259. 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
+ }