@microsoft/terraform-cdk-constructs 1.9.0 → 2.2.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.
Files changed (246) hide show
  1. package/.jsii +38110 -28389
  2. package/API.md +40683 -30877
  3. package/lib/azure-actiongroup/lib/action-group.d.ts +3 -3
  4. package/lib/azure-actiongroup/lib/action-group.js +5 -5
  5. package/lib/azure-actiongroup/test/action-group.integ.d.ts +1 -1
  6. package/lib/azure-actiongroup/test/action-group.integ.js +5 -5
  7. package/lib/azure-actiongroup/test/action-group.spec.js +9 -9
  8. package/lib/azure-activitylogalert/lib/activity-log-alert.d.ts +3 -3
  9. package/lib/azure-activitylogalert/lib/activity-log-alert.js +5 -5
  10. package/lib/azure-activitylogalert/test/activity-log-alert.integ.d.ts +1 -1
  11. package/lib/azure-activitylogalert/test/activity-log-alert.integ.js +6 -6
  12. package/lib/azure-activitylogalert/test/activity-log-alert.spec.js +9 -9
  13. package/lib/azure-aks/lib/aks-cluster.d.ts +6 -6
  14. package/lib/azure-aks/lib/aks-cluster.js +8 -8
  15. package/lib/azure-aks/test/aks-cluster.integ.d.ts +1 -1
  16. package/lib/azure-aks/test/aks-cluster.integ.js +5 -5
  17. package/lib/azure-aks/test/aks-cluster.spec.js +12 -12
  18. package/lib/azure-containerapps/index.d.ts +1 -0
  19. package/lib/azure-containerapps/index.js +18 -0
  20. package/lib/azure-containerapps/lib/container-app-environment-schemas.d.ts +50 -0
  21. package/lib/azure-containerapps/lib/container-app-environment-schemas.js +522 -0
  22. package/lib/azure-containerapps/lib/container-app-environment.d.ts +374 -0
  23. package/lib/azure-containerapps/lib/container-app-environment.js +310 -0
  24. package/lib/azure-containerapps/lib/container-app-schemas.d.ts +48 -0
  25. package/lib/azure-containerapps/lib/container-app-schemas.js +466 -0
  26. package/lib/azure-containerapps/lib/container-app.d.ts +925 -0
  27. package/lib/azure-containerapps/lib/container-app.js +320 -0
  28. package/lib/azure-containerapps/lib/index.d.ts +4 -0
  29. package/lib/azure-containerapps/lib/index.js +21 -0
  30. package/lib/azure-containerapps/test/container-app-environment.integ.d.ts +10 -0
  31. package/lib/azure-containerapps/test/container-app-environment.integ.js +82 -0
  32. package/lib/azure-containerapps/test/container-app-environment.spec.d.ts +9 -0
  33. package/lib/azure-containerapps/test/container-app-environment.spec.js +412 -0
  34. package/lib/azure-containerapps/test/container-app.integ.d.ts +10 -0
  35. package/lib/azure-containerapps/test/container-app.integ.js +119 -0
  36. package/lib/azure-containerapps/test/container-app.spec.d.ts +9 -0
  37. package/lib/azure-containerapps/test/container-app.spec.js +839 -0
  38. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.d.ts +3 -3
  39. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +5 -5
  40. package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.js +9 -9
  41. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.d.ts +7 -7
  42. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +9 -9
  43. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.d.ts +4 -4
  44. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +6 -6
  45. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.d.ts +4 -4
  46. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +6 -6
  47. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.d.ts +1 -1
  48. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.js +5 -5
  49. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.spec.js +11 -11
  50. package/lib/azure-dnsforwardingruleset/test/forwarding-rule.spec.js +14 -14
  51. package/lib/azure-dnsforwardingruleset/test/virtual-network-link.spec.js +12 -12
  52. package/lib/azure-dnsresolver/lib/dns-resolver.d.ts +8 -8
  53. package/lib/azure-dnsresolver/lib/dns-resolver.js +10 -10
  54. package/lib/azure-dnsresolver/lib/inbound-endpoint.d.ts +6 -6
  55. package/lib/azure-dnsresolver/lib/inbound-endpoint.js +8 -8
  56. package/lib/azure-dnsresolver/lib/outbound-endpoint.d.ts +7 -7
  57. package/lib/azure-dnsresolver/lib/outbound-endpoint.js +9 -9
  58. package/lib/azure-dnsresolver/test/dns-resolver.integ.d.ts +1 -1
  59. package/lib/azure-dnsresolver/test/dns-resolver.integ.js +5 -5
  60. package/lib/azure-dnsresolver/test/dns-resolver.spec.js +11 -11
  61. package/lib/azure-dnsresolver/test/inbound-endpoint.integ.d.ts +1 -1
  62. package/lib/azure-dnsresolver/test/inbound-endpoint.integ.js +5 -5
  63. package/lib/azure-dnsresolver/test/inbound-endpoint.spec.js +12 -12
  64. package/lib/azure-dnsresolver/test/outbound-endpoint.integ.d.ts +1 -1
  65. package/lib/azure-dnsresolver/test/outbound-endpoint.integ.js +5 -5
  66. package/lib/azure-dnsresolver/test/outbound-endpoint.spec.js +9 -9
  67. package/lib/azure-dnszone/lib/dns-zone.d.ts +6 -6
  68. package/lib/azure-dnszone/lib/dns-zone.js +8 -8
  69. package/lib/azure-dnszone/lib/records/dns-records.d.ts +31 -31
  70. package/lib/azure-dnszone/lib/records/dns-records.js +42 -42
  71. package/lib/azure-dnszone/test/dns-records.integ.d.ts +1 -1
  72. package/lib/azure-dnszone/test/dns-records.integ.js +5 -5
  73. package/lib/azure-dnszone/test/dns-records.spec.js +57 -57
  74. package/lib/azure-dnszone/test/dns-zone.integ.d.ts +1 -1
  75. package/lib/azure-dnszone/test/dns-zone.integ.js +5 -5
  76. package/lib/azure-dnszone/test/dns-zone.spec.js +11 -11
  77. package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.d.ts +1 -1
  78. package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.js +3 -3
  79. package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.d.ts +1 -1
  80. package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.js +6 -6
  81. package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.spec.js +6 -6
  82. package/lib/azure-metricalert/lib/metric-alert.d.ts +3 -3
  83. package/lib/azure-metricalert/lib/metric-alert.js +5 -5
  84. package/lib/azure-metricalert/test/metric-alert.integ.d.ts +1 -1
  85. package/lib/azure-metricalert/test/metric-alert.integ.js +5 -5
  86. package/lib/azure-metricalert/test/metric-alert.spec.js +9 -9
  87. package/lib/azure-networkinterface/lib/network-interface.d.ts +5 -5
  88. package/lib/azure-networkinterface/lib/network-interface.js +7 -7
  89. package/lib/azure-networkinterface/test/network-interface.integ.d.ts +1 -1
  90. package/lib/azure-networkinterface/test/network-interface.integ.js +5 -5
  91. package/lib/azure-networkinterface/test/network-interface.spec.js +11 -11
  92. package/lib/azure-networksecuritygroup/lib/network-security-group.d.ts +6 -6
  93. package/lib/azure-networksecuritygroup/lib/network-security-group.js +8 -8
  94. package/lib/azure-networksecuritygroup/test/network-security-group.integ.d.ts +1 -1
  95. package/lib/azure-networksecuritygroup/test/network-security-group.integ.js +5 -5
  96. package/lib/azure-networksecuritygroup/test/network-security-group.spec.js +12 -12
  97. package/lib/azure-networkwatcher/lib/network-watcher.d.ts +1 -1
  98. package/lib/azure-networkwatcher/lib/network-watcher.js +3 -3
  99. package/lib/azure-networkwatcher/test/network-watcher.integ.d.ts +1 -1
  100. package/lib/azure-networkwatcher/test/network-watcher.integ.js +6 -6
  101. package/lib/azure-networkwatcher/test/network-watcher.spec.js +6 -6
  102. package/lib/azure-policyassignment/lib/policy-assignment.d.ts +3 -3
  103. package/lib/azure-policyassignment/lib/policy-assignment.js +5 -5
  104. package/lib/azure-policyassignment/test/policy-assignment.integ.d.ts +1 -1
  105. package/lib/azure-policyassignment/test/policy-assignment.integ.js +5 -5
  106. package/lib/azure-policyassignment/test/policy-assignment.spec.js +12 -12
  107. package/lib/azure-policydefinition/lib/policy-definition.d.ts +3 -3
  108. package/lib/azure-policydefinition/lib/policy-definition.js +5 -5
  109. package/lib/azure-policydefinition/test/policy-definition.integ.d.ts +1 -1
  110. package/lib/azure-policydefinition/test/policy-definition.integ.js +5 -5
  111. package/lib/azure-policydefinition/test/policy-definition.spec.js +19 -19
  112. package/lib/azure-policysetdefinition/lib/policy-set-definition.d.ts +1 -1
  113. package/lib/azure-policysetdefinition/lib/policy-set-definition.js +3 -3
  114. package/lib/azure-policysetdefinition/test/policy-set-definition.integ.d.ts +1 -1
  115. package/lib/azure-policysetdefinition/test/policy-set-definition.integ.js +6 -6
  116. package/lib/azure-policysetdefinition/test/policy-set-definition.spec.js +6 -6
  117. package/lib/azure-privatednszone/lib/private-dns-zone.d.ts +10 -10
  118. package/lib/azure-privatednszone/lib/private-dns-zone.js +12 -12
  119. package/lib/azure-privatednszone/lib/records/private-dns-records.d.ts +25 -25
  120. package/lib/azure-privatednszone/lib/records/private-dns-records.js +34 -34
  121. package/lib/azure-privatednszone/test/private-dns-records.integ.d.ts +1 -1
  122. package/lib/azure-privatednszone/test/private-dns-records.integ.js +5 -5
  123. package/lib/azure-privatednszone/test/private-dns-records.spec.js +49 -49
  124. package/lib/azure-privatednszone/test/private-dns-zone.integ.d.ts +1 -1
  125. package/lib/azure-privatednszone/test/private-dns-zone.integ.js +5 -5
  126. package/lib/azure-privatednszone/test/private-dns-zone.spec.js +12 -12
  127. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.d.ts +6 -6
  128. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +8 -8
  129. package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.d.ts +1 -1
  130. package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.js +5 -5
  131. package/lib/azure-privatednszonelink/test/private-dns-zone-link.spec.js +12 -12
  132. package/lib/azure-publicipaddress/lib/public-ip-address.d.ts +5 -5
  133. package/lib/azure-publicipaddress/lib/public-ip-address.js +7 -7
  134. package/lib/azure-publicipaddress/test/public-ip-address.integ.d.ts +1 -1
  135. package/lib/azure-publicipaddress/test/public-ip-address.integ.js +6 -6
  136. package/lib/azure-publicipaddress/test/public-ip-address.spec.js +11 -11
  137. package/lib/azure-resourcegroup/lib/resource-group.d.ts +5 -5
  138. package/lib/azure-resourcegroup/lib/resource-group.js +7 -7
  139. package/lib/azure-resourcegroup/test/resource-group.integ.d.ts +1 -1
  140. package/lib/azure-resourcegroup/test/resource-group.integ.js +5 -5
  141. package/lib/azure-resourcegroup/test/resource-group.spec.js +14 -14
  142. package/lib/azure-roleassignment/lib/role-assignment.d.ts +3 -3
  143. package/lib/azure-roleassignment/lib/role-assignment.js +5 -5
  144. package/lib/azure-roleassignment/test/role-assignment.integ.d.ts +1 -1
  145. package/lib/azure-roleassignment/test/role-assignment.integ.js +5 -5
  146. package/lib/azure-roleassignment/test/role-assignment.spec.js +12 -12
  147. package/lib/azure-roledefinition/lib/role-definition.d.ts +3 -3
  148. package/lib/azure-roledefinition/lib/role-definition.js +5 -5
  149. package/lib/azure-roledefinition/test/role-definition.integ.d.ts +1 -1
  150. package/lib/azure-roledefinition/test/role-definition.integ.js +5 -5
  151. package/lib/azure-roledefinition/test/role-definition.spec.js +12 -12
  152. package/lib/azure-storageaccount/lib/storage-account.d.ts +6 -6
  153. package/lib/azure-storageaccount/lib/storage-account.js +8 -8
  154. package/lib/azure-storageaccount/test/storage-account.integ.d.ts +1 -1
  155. package/lib/azure-storageaccount/test/storage-account.integ.js +5 -5
  156. package/lib/azure-storageaccount/test/storage-account.spec.js +11 -11
  157. package/lib/azure-subnet/lib/subnet.d.ts +3 -3
  158. package/lib/azure-subnet/lib/subnet.js +5 -5
  159. package/lib/azure-subnet/test/subnet.integ.d.ts +1 -1
  160. package/lib/azure-subnet/test/subnet.integ.js +5 -5
  161. package/lib/azure-subnet/test/subnet.spec.js +9 -9
  162. package/lib/azure-virtualmachine/lib/virtual-machine.d.ts +6 -6
  163. package/lib/azure-virtualmachine/lib/virtual-machine.js +8 -8
  164. package/lib/azure-virtualmachine/test/virtual-machine.integ.d.ts +1 -1
  165. package/lib/azure-virtualmachine/test/virtual-machine.integ.js +5 -5
  166. package/lib/azure-virtualmachine/test/virtual-machine.spec.js +17 -17
  167. package/lib/azure-virtualnetwork/lib/virtual-network.d.ts +6 -6
  168. package/lib/azure-virtualnetwork/lib/virtual-network.js +8 -8
  169. package/lib/azure-virtualnetwork/test/virtual-network.integ.d.ts +1 -1
  170. package/lib/azure-virtualnetwork/test/virtual-network.integ.js +5 -5
  171. package/lib/azure-virtualnetwork/test/virtual-network.spec.js +12 -12
  172. package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.d.ts +5 -5
  173. package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.js +7 -7
  174. package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.integ.d.ts +1 -1
  175. package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.integ.js +5 -5
  176. package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.spec.js +13 -13
  177. package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.d.ts +5 -5
  178. package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.js +7 -7
  179. package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.integ.d.ts +1 -1
  180. package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.integ.js +5 -5
  181. package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.spec.js +20 -20
  182. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.d.ts +4 -4
  183. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +6 -6
  184. package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.d.ts +4 -4
  185. package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.js +6 -6
  186. package/lib/azure-virtualnetworkmanager/lib/ipam-pool.d.ts +4 -4
  187. package/lib/azure-virtualnetworkmanager/lib/ipam-pool.js +6 -6
  188. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.d.ts +4 -4
  189. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +6 -6
  190. package/lib/azure-virtualnetworkmanager/lib/network-group.d.ts +4 -4
  191. package/lib/azure-virtualnetworkmanager/lib/network-group.js +6 -6
  192. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.d.ts +4 -4
  193. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +6 -6
  194. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.d.ts +4 -4
  195. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +6 -6
  196. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.d.ts +4 -4
  197. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +6 -6
  198. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.d.ts +7 -7
  199. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +9 -9
  200. package/lib/azure-virtualnetworkmanager/test/ipam-pool-static-cidr.spec.js +17 -17
  201. package/lib/azure-virtualnetworkmanager/test/ipam-pool.spec.js +15 -15
  202. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.d.ts +1 -1
  203. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.js +5 -5
  204. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.spec.js +57 -57
  205. package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +6 -6
  206. package/lib/azure-vmss/lib/virtual-machine-scale-set.js +8 -8
  207. package/lib/azure-vmss/test/virtual-machine-scale-set.integ.d.ts +1 -1
  208. package/lib/azure-vmss/test/virtual-machine-scale-set.integ.js +5 -5
  209. package/lib/azure-vmss/test/virtual-machine-scale-set.spec.js +12 -12
  210. package/lib/core-azure/lib/azapi/azapi-resource-tags.spec.js +6 -6
  211. package/lib/core-azure/lib/azapi/azapi-resource.d.ts +7 -7
  212. package/lib/core-azure/lib/azapi/azapi-resource.js +6 -6
  213. package/lib/core-azure/lib/azapi/azapi-resource.spec.js +7 -7
  214. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.d.ts +12 -12
  215. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +15 -15
  216. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.d.ts +35 -35
  217. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +58 -58
  218. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.d.ts +25 -25
  219. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.js +49 -49
  220. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.d.ts +13 -13
  221. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.js +22 -22
  222. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.d.ts +24 -24
  223. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.js +40 -40
  224. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.d.ts +44 -44
  225. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.js +72 -72
  226. package/lib/core-azure/lib/azapi/providers-azapi/index.js +2 -2
  227. package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.js +2 -2
  228. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.d.ts +54 -54
  229. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +86 -86
  230. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.d.ts +65 -65
  231. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +102 -102
  232. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.d.ts +25 -25
  233. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +62 -62
  234. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.d.ts +36 -36
  235. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +69 -69
  236. package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +1 -1
  237. package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
  238. package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
  239. package/lib/index.d.ts +3 -0
  240. package/lib/index.js +5 -2
  241. package/lib/testing/index.d.ts +1 -1
  242. package/lib/testing/index.js +8 -8
  243. package/lib/testing/lib/cleanup.js +1 -1
  244. package/lib/testing/lib/metadata.js +1 -1
  245. package/package.json +10 -22
  246. package/setup.js +2 -2
@@ -0,0 +1,374 @@
1
+ /**
2
+ * Unified Azure Container App Managed Environment implementation using AzapiResource framework
3
+ *
4
+ * This class provides a single, version-aware implementation that automatically handles
5
+ * version management, schema validation, and property transformation across all
6
+ * supported API versions.
7
+ *
8
+ * Supported API Versions:
9
+ * - 2024-03-01 (Active)
10
+ * - 2025-07-01 (Active, Latest)
11
+ *
12
+ * Features:
13
+ * - Automatic latest version resolution when no version is specified
14
+ * - Explicit version pinning for stability requirements
15
+ * - Schema-driven validation and transformation
16
+ * - Full backward compatibility with existing interface
17
+ * - JSII compliance for multi-language support
18
+ * - Log Analytics and Azure Monitor integration
19
+ * - VNet injection for network isolation
20
+ * - Workload profiles for compute customization
21
+ * - Zone redundancy for high availability
22
+ * - Peer authentication (mTLS) and traffic encryption (2025-07-01+)
23
+ */
24
+ import * as cdktn from "cdktn";
25
+ import { Construct } from "constructs";
26
+ import { AzapiResource, AzapiResourceProps } from "../../core-azure/lib/azapi/azapi-resource";
27
+ import { ApiSchema } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
28
+ /**
29
+ * Log Analytics configuration for the Container App Environment
30
+ */
31
+ export interface ContainerAppEnvironmentLogAnalyticsConfig {
32
+ /**
33
+ * Log Analytics workspace customer ID (workspace ID)
34
+ */
35
+ readonly customerId: string;
36
+ /**
37
+ * Log Analytics workspace shared key
38
+ */
39
+ readonly sharedKey: string;
40
+ }
41
+ /**
42
+ * Application logs configuration for the Container App Environment
43
+ */
44
+ export interface ContainerAppEnvironmentAppLogsConfig {
45
+ /**
46
+ * Logs destination. Can be 'log-analytics', 'azure-monitor', or 'none'.
47
+ * @default "log-analytics"
48
+ */
49
+ readonly destination?: string;
50
+ /**
51
+ * Log Analytics configuration. Required when destination is 'log-analytics'.
52
+ */
53
+ readonly logAnalyticsConfiguration?: ContainerAppEnvironmentLogAnalyticsConfig;
54
+ }
55
+ /**
56
+ * VNet configuration for the Container App Environment
57
+ */
58
+ export interface ContainerAppEnvironmentVnetConfig {
59
+ /**
60
+ * Resource ID of a subnet for infrastructure components.
61
+ * Must be at least /21 for consumption-only environments or /23 for workload profile environments.
62
+ */
63
+ readonly infrastructureSubnetId?: string;
64
+ /**
65
+ * Whether the environment only has an internal load balancer (no public endpoint).
66
+ * @default false
67
+ */
68
+ readonly internal?: boolean;
69
+ }
70
+ /**
71
+ * Workload profile configuration
72
+ */
73
+ export interface ContainerAppEnvironmentWorkloadProfile {
74
+ /**
75
+ * Friendly name of the workload profile
76
+ */
77
+ readonly name: string;
78
+ /**
79
+ * Workload profile type. Values include 'Consumption', 'GeneralPurpose',
80
+ * 'MemoryOptimized', 'ComputeOptimized', 'D4', 'D8', 'D16', 'D32',
81
+ * 'E4', 'E8', 'E16', 'E32'.
82
+ */
83
+ readonly workloadProfileType: string;
84
+ /**
85
+ * Minimum number of instances for this workload profile (not applicable for Consumption).
86
+ */
87
+ readonly minimumCount?: number;
88
+ /**
89
+ * Maximum number of instances for this workload profile (not applicable for Consumption).
90
+ */
91
+ readonly maximumCount?: number;
92
+ }
93
+ /**
94
+ * Custom domain configuration for the environment
95
+ */
96
+ export interface ContainerAppEnvironmentCustomDomainConfig {
97
+ /**
98
+ * Custom DNS suffix for the environment
99
+ */
100
+ readonly dnsSuffix?: string;
101
+ /**
102
+ * PFX or PEM certificate value (base64 encoded)
103
+ */
104
+ readonly certificateValue?: string;
105
+ /**
106
+ * Certificate password
107
+ */
108
+ readonly certificatePassword?: string;
109
+ }
110
+ /**
111
+ * Mutual TLS settings for peer authentication
112
+ */
113
+ export interface ContainerAppEnvironmentMtlsConfig {
114
+ /**
115
+ * Whether mTLS is enabled
116
+ */
117
+ readonly enabled?: boolean;
118
+ }
119
+ /**
120
+ * Peer authentication settings (mTLS) for the Managed Environment.
121
+ * Available in API version 2025-07-01+.
122
+ */
123
+ export interface ContainerAppEnvironmentPeerAuthentication {
124
+ /**
125
+ * Mutual TLS settings
126
+ */
127
+ readonly mtls?: ContainerAppEnvironmentMtlsConfig;
128
+ }
129
+ /**
130
+ * Encryption settings for peer traffic
131
+ */
132
+ export interface ContainerAppEnvironmentEncryptionConfig {
133
+ /**
134
+ * Whether encryption is enabled
135
+ */
136
+ readonly enabled?: boolean;
137
+ }
138
+ /**
139
+ * Peer traffic encryption settings for the Managed Environment.
140
+ * Available in API version 2025-07-01+.
141
+ */
142
+ export interface ContainerAppEnvironmentPeerTrafficConfig {
143
+ /**
144
+ * Encryption settings
145
+ */
146
+ readonly encryption?: ContainerAppEnvironmentEncryptionConfig;
147
+ }
148
+ /**
149
+ * Ingress configuration settings for the Managed Environment.
150
+ * Available in API version 2025-07-01+.
151
+ */
152
+ export interface ContainerAppEnvironmentIngressConfig {
153
+ /**
154
+ * Workload profile name for the ingress component
155
+ */
156
+ readonly workloadProfileName?: string;
157
+ /**
158
+ * Termination grace period in seconds
159
+ */
160
+ readonly terminationGracePeriodSeconds?: number;
161
+ /**
162
+ * Header count limit
163
+ */
164
+ readonly headerCountLimit?: number;
165
+ /**
166
+ * Request idle timeout in seconds
167
+ */
168
+ readonly requestIdleTimeout?: number;
169
+ }
170
+ /**
171
+ * Properties for the unified Azure Container App Environment
172
+ *
173
+ * Extends AzapiResourceProps with Container App Environment specific properties
174
+ */
175
+ export interface ContainerAppEnvironmentProps extends AzapiResourceProps {
176
+ /**
177
+ * Application logs configuration
178
+ */
179
+ readonly appLogsConfiguration?: ContainerAppEnvironmentAppLogsConfig;
180
+ /**
181
+ * VNet configuration for the environment
182
+ */
183
+ readonly vnetConfiguration?: ContainerAppEnvironmentVnetConfig;
184
+ /**
185
+ * Workload profiles configured for the Managed Environment
186
+ */
187
+ readonly workloadProfiles?: ContainerAppEnvironmentWorkloadProfile[];
188
+ /**
189
+ * Whether or not this Managed Environment is zone-redundant.
190
+ * @default false
191
+ */
192
+ readonly zoneRedundant?: boolean;
193
+ /**
194
+ * Azure Monitor instrumentation key used by Dapr to export
195
+ * Service to Service communication telemetry
196
+ */
197
+ readonly daprAIInstrumentationKey?: string;
198
+ /**
199
+ * Application Insights connection string used by Dapr to export
200
+ * Service to Service communication telemetry
201
+ */
202
+ readonly daprAIConnectionString?: string;
203
+ /**
204
+ * Custom domain configuration for the environment
205
+ */
206
+ readonly customDomainConfiguration?: ContainerAppEnvironmentCustomDomainConfig;
207
+ /**
208
+ * Name of the platform-managed resource group created for the Managed Environment
209
+ * to host infrastructure resources.
210
+ */
211
+ readonly infrastructureResourceGroup?: string;
212
+ /**
213
+ * Peer authentication settings for the Managed Environment (mTLS).
214
+ * Available in API version 2025-07-01+.
215
+ */
216
+ readonly peerAuthentication?: ContainerAppEnvironmentPeerAuthentication;
217
+ /**
218
+ * Peer traffic settings for the Managed Environment (encryption).
219
+ * Available in API version 2025-07-01+.
220
+ */
221
+ readonly peerTrafficConfiguration?: ContainerAppEnvironmentPeerTrafficConfig;
222
+ /**
223
+ * Ingress configuration for the Managed Environment.
224
+ * Available in API version 2025-07-01+.
225
+ */
226
+ readonly ingressConfiguration?: ContainerAppEnvironmentIngressConfig;
227
+ /**
228
+ * Property to allow or block all public traffic.
229
+ * Allowed Values: 'Enabled', 'Disabled'.
230
+ * Available in API version 2025-07-01+.
231
+ */
232
+ readonly publicNetworkAccess?: string;
233
+ /**
234
+ * The lifecycle rules to ignore changes.
235
+ * @example ["tags"]
236
+ */
237
+ readonly ignoreChanges?: string[];
238
+ /**
239
+ * Resource group ID where the Container App Environment will be created
240
+ */
241
+ readonly resourceGroupId?: string;
242
+ }
243
+ /**
244
+ * The resource body interface for Azure Container App Environment API calls
245
+ */
246
+ export interface ContainerAppEnvironmentBody {
247
+ readonly location: string;
248
+ readonly tags?: {
249
+ [key: string]: string;
250
+ };
251
+ readonly properties?: any;
252
+ }
253
+ /**
254
+ * Unified Azure Container App Managed Environment implementation
255
+ *
256
+ * Azure Container App Environments provide the hosting infrastructure for
257
+ * Container Apps. They manage the underlying Kubernetes cluster, networking,
258
+ * and observability resources.
259
+ *
260
+ * Key features:
261
+ * - Log Analytics and Azure Monitor integration for observability
262
+ * - VNet injection for network isolation
263
+ * - Workload profiles for compute customization (Consumption, Dedicated)
264
+ * - Zone redundancy for high availability
265
+ * - Custom domain support
266
+ * - Dapr integration for microservice patterns
267
+ * - Peer authentication (mTLS) and traffic encryption (2025-07-01+)
268
+ *
269
+ * @example
270
+ * // Basic environment with Log Analytics:
271
+ * const environment = new ContainerAppEnvironment(this, "env", {
272
+ * name: "my-container-env",
273
+ * location: "eastus",
274
+ * resourceGroupId: resourceGroup.id,
275
+ * appLogsConfiguration: {
276
+ * destination: "log-analytics",
277
+ * logAnalyticsConfiguration: {
278
+ * customerId: logAnalytics.workspaceId,
279
+ * sharedKey: logAnalytics.primarySharedKey,
280
+ * },
281
+ * },
282
+ * });
283
+ *
284
+ * @example
285
+ * // Environment with VNet injection and zone redundancy:
286
+ * const environment = new ContainerAppEnvironment(this, "env", {
287
+ * name: "my-container-env",
288
+ * location: "eastus",
289
+ * resourceGroupId: resourceGroup.id,
290
+ * vnetConfiguration: {
291
+ * infrastructureSubnetId: subnet.id,
292
+ * internal: true,
293
+ * },
294
+ * zoneRedundant: true,
295
+ * });
296
+ *
297
+ * @stability stable
298
+ */
299
+ export declare class ContainerAppEnvironment extends AzapiResource {
300
+ readonly props: ContainerAppEnvironmentProps;
301
+ readonly idOutput: cdktn.TerraformOutput;
302
+ readonly locationOutput: cdktn.TerraformOutput;
303
+ readonly nameOutput: cdktn.TerraformOutput;
304
+ readonly tagsOutput: cdktn.TerraformOutput;
305
+ readonly defaultDomainOutput: cdktn.TerraformOutput;
306
+ readonly staticIpOutput: cdktn.TerraformOutput;
307
+ readonly provisioningStateOutput: cdktn.TerraformOutput;
308
+ /**
309
+ * Creates a new Azure Container App Managed Environment
310
+ *
311
+ * @param scope - The scope in which to define this construct
312
+ * @param id - The unique identifier for this instance
313
+ * @param props - Configuration properties for the Container App Environment
314
+ */
315
+ constructor(scope: Construct, id: string, props: ContainerAppEnvironmentProps);
316
+ /**
317
+ * Gets the default API version to use when no explicit version is specified
318
+ */
319
+ protected defaultVersion(): string;
320
+ /**
321
+ * Gets the Azure resource type for Container App Environments
322
+ */
323
+ protected resourceType(): string;
324
+ /**
325
+ * Gets the API schema for the resolved version
326
+ */
327
+ protected apiSchema(): ApiSchema;
328
+ /**
329
+ * Indicates that location is required for Container App Environments
330
+ */
331
+ protected requiresLocation(): boolean;
332
+ /**
333
+ * Creates the resource body for the Azure API call
334
+ */
335
+ protected createResourceBody(props: any): any;
336
+ /**
337
+ * Get the default domain of the Container App Environment
338
+ */
339
+ get defaultDomain(): string;
340
+ /**
341
+ * Get the static IP of the Container App Environment
342
+ */
343
+ get staticIp(): string;
344
+ /**
345
+ * Get the provisioning state of the Container App Environment
346
+ */
347
+ get provisioningState(): string;
348
+ /**
349
+ * Add a tag to the Container App Environment
350
+ */
351
+ addTag(key: string, value: string): void;
352
+ /**
353
+ * Remove a tag from the Container App Environment
354
+ */
355
+ removeTag(key: string): void;
356
+ /**
357
+ * Customizes the resource configuration to handle Azure value normalization.
358
+ *
359
+ * Azure normalizes values in API responses:
360
+ * - Location: "eastus" → "East US"
361
+ * - Enum values: "auto" → "Auto", "enabled" → "Enabled"
362
+ *
363
+ * This override:
364
+ * 1. Removes `location` from the body (the framework passes it as a top-level
365
+ * attribute which the azapi provider normalizes properly)
366
+ * 2. Enables `ignoreCasing` to suppress diffs from Azure's value normalization
367
+ * (e.g., "auto" vs "Auto" for transport, "enabled" vs "Enabled")
368
+ */
369
+ protected customizeResourceConfig(config: any): any;
370
+ /**
371
+ * Applies ignore changes lifecycle rules if specified in props
372
+ */
373
+ private _applyIgnoreChanges;
374
+ }