@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,370 @@
1
+ "use strict";
2
+ /**
3
+ * API schemas for Azure Event Hubs across all supported versions
4
+ *
5
+ * This file defines the complete API schemas for Microsoft.EventHub/namespaces
6
+ * and Microsoft.EventHub/namespaces/eventhubs across all supported API versions.
7
+ * The schemas are used by the AzapiResource framework for validation,
8
+ * transformation, and version management.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.EVENT_HUB_TYPE = exports.ALL_EVENT_HUB_VERSIONS = exports.EVENT_HUB_VERSION_2021_11_01 = exports.EVENT_HUB_VERSION_2024_01_01 = exports.EVENT_HUB_SCHEMA_2021_11_01 = exports.EVENT_HUB_SCHEMA_2024_01_01 = exports.EVENT_HUB_NAMESPACE_TYPE = exports.ALL_EVENT_HUB_NAMESPACE_VERSIONS = exports.EVENT_HUB_NAMESPACE_VERSION_2021_11_01 = exports.EVENT_HUB_NAMESPACE_VERSION_2024_01_01 = exports.EVENT_HUB_NAMESPACE_SCHEMA_2021_11_01 = exports.EVENT_HUB_NAMESPACE_SCHEMA_2024_01_01 = void 0;
12
+ const version_interfaces_1 = require("../../core-azure/lib/version-manager/interfaces/version-interfaces");
13
+ // =============================================================================
14
+ // EVENT HUB NAMESPACE
15
+ // =============================================================================
16
+ /**
17
+ * Common property definitions shared across all Event Hub Namespace versions
18
+ */
19
+ const COMMON_EVENT_HUB_NAMESPACE_PROPERTIES = {
20
+ name: {
21
+ dataType: version_interfaces_1.PropertyType.STRING,
22
+ required: true,
23
+ description: "Name of the Event Hubs namespace (must be globally unique)",
24
+ validation: [
25
+ {
26
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
27
+ message: "Name is required",
28
+ },
29
+ {
30
+ ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
31
+ value: "^[a-zA-Z][a-zA-Z0-9-]{4,48}[a-zA-Z0-9]$",
32
+ message: "Namespace name must be 6-50 characters, start with a letter, end with a letter or number, and contain only letters, numbers, and hyphens",
33
+ },
34
+ ],
35
+ },
36
+ location: {
37
+ dataType: version_interfaces_1.PropertyType.STRING,
38
+ required: true,
39
+ description: "Azure region where the namespace will be created",
40
+ },
41
+ sku: {
42
+ dataType: version_interfaces_1.PropertyType.OBJECT,
43
+ required: false,
44
+ description: "SKU configuration for the namespace. Options: Basic, Standard, Premium",
45
+ },
46
+ zoneRedundant: {
47
+ dataType: version_interfaces_1.PropertyType.BOOLEAN,
48
+ required: false,
49
+ description: "Enable zone redundancy for the namespace",
50
+ },
51
+ isAutoInflateEnabled: {
52
+ dataType: version_interfaces_1.PropertyType.BOOLEAN,
53
+ required: false,
54
+ description: "Enable auto-inflate for throughput units (Standard tier)",
55
+ },
56
+ maximumThroughputUnits: {
57
+ dataType: version_interfaces_1.PropertyType.NUMBER,
58
+ required: false,
59
+ description: "Upper limit of throughput units when auto-inflate is enabled (0-40)",
60
+ validation: [
61
+ {
62
+ ruleType: version_interfaces_1.ValidationRuleType.VALUE_RANGE,
63
+ value: { min: 0, max: 40 },
64
+ message: "maximumThroughputUnits must be between 0 and 40",
65
+ },
66
+ ],
67
+ },
68
+ minimumTlsVersion: {
69
+ dataType: version_interfaces_1.PropertyType.STRING,
70
+ required: false,
71
+ description: "Minimum TLS version for the namespace: 1.0, 1.1, or 1.2",
72
+ },
73
+ publicNetworkAccess: {
74
+ dataType: version_interfaces_1.PropertyType.STRING,
75
+ required: false,
76
+ description: "Public network access for the namespace: Enabled or Disabled",
77
+ },
78
+ disableLocalAuth: {
79
+ dataType: version_interfaces_1.PropertyType.BOOLEAN,
80
+ required: false,
81
+ description: "Disable SAS authentication, requiring Azure AD authentication only",
82
+ },
83
+ identity: {
84
+ dataType: version_interfaces_1.PropertyType.OBJECT,
85
+ required: false,
86
+ description: "Managed identity configuration for the namespace",
87
+ },
88
+ };
89
+ /**
90
+ * API Schema for Event Hub Namespace version 2024-01-01
91
+ *
92
+ * This is the latest stable version for Event Hub Namespaces.
93
+ */
94
+ exports.EVENT_HUB_NAMESPACE_SCHEMA_2024_01_01 = {
95
+ resourceType: "Microsoft.EventHub/namespaces",
96
+ version: "2024-01-01",
97
+ properties: {
98
+ ...COMMON_EVENT_HUB_NAMESPACE_PROPERTIES,
99
+ },
100
+ required: ["name", "location"],
101
+ optional: [
102
+ "sku",
103
+ "zoneRedundant",
104
+ "isAutoInflateEnabled",
105
+ "maximumThroughputUnits",
106
+ "minimumTlsVersion",
107
+ "publicNetworkAccess",
108
+ "disableLocalAuth",
109
+ "identity",
110
+ ],
111
+ deprecated: [],
112
+ transformationRules: {},
113
+ validationRules: [
114
+ {
115
+ property: "name",
116
+ rules: [
117
+ {
118
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
119
+ message: "Name is required for Event Hub Namespace",
120
+ },
121
+ ],
122
+ },
123
+ ],
124
+ };
125
+ /**
126
+ * API Schema for Event Hub Namespace version 2021-11-01
127
+ *
128
+ * This is a stable version for backward compatibility.
129
+ */
130
+ exports.EVENT_HUB_NAMESPACE_SCHEMA_2021_11_01 = {
131
+ resourceType: "Microsoft.EventHub/namespaces",
132
+ version: "2021-11-01",
133
+ properties: {
134
+ ...COMMON_EVENT_HUB_NAMESPACE_PROPERTIES,
135
+ },
136
+ required: ["name", "location"],
137
+ optional: [
138
+ "sku",
139
+ "zoneRedundant",
140
+ "isAutoInflateEnabled",
141
+ "maximumThroughputUnits",
142
+ "minimumTlsVersion",
143
+ "publicNetworkAccess",
144
+ "disableLocalAuth",
145
+ "identity",
146
+ ],
147
+ deprecated: [],
148
+ transformationRules: {},
149
+ validationRules: [
150
+ {
151
+ property: "name",
152
+ rules: [
153
+ {
154
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
155
+ message: "Name is required for Event Hub Namespace",
156
+ },
157
+ ],
158
+ },
159
+ ],
160
+ };
161
+ /**
162
+ * Version configuration for Event Hub Namespace 2024-01-01
163
+ */
164
+ exports.EVENT_HUB_NAMESPACE_VERSION_2024_01_01 = {
165
+ version: "2024-01-01",
166
+ schema: exports.EVENT_HUB_NAMESPACE_SCHEMA_2024_01_01,
167
+ supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
168
+ releaseDate: "2024-01-01",
169
+ deprecationDate: undefined,
170
+ sunsetDate: undefined,
171
+ breakingChanges: [],
172
+ migrationGuide: "/docs/event-hub/migration-2024-01-01",
173
+ changeLog: [
174
+ {
175
+ changeType: "updated",
176
+ description: "Latest stable API version for Event Hubs",
177
+ breaking: false,
178
+ },
179
+ ],
180
+ };
181
+ /**
182
+ * Version configuration for Event Hub Namespace 2021-11-01
183
+ */
184
+ exports.EVENT_HUB_NAMESPACE_VERSION_2021_11_01 = {
185
+ version: "2021-11-01",
186
+ schema: exports.EVENT_HUB_NAMESPACE_SCHEMA_2021_11_01,
187
+ supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
188
+ releaseDate: "2021-11-01",
189
+ deprecationDate: undefined,
190
+ sunsetDate: undefined,
191
+ breakingChanges: [],
192
+ migrationGuide: "/docs/event-hub/migration-2021-11-01",
193
+ changeLog: [
194
+ {
195
+ changeType: "updated",
196
+ description: "Stable API version for backward compatibility",
197
+ breaking: false,
198
+ },
199
+ ],
200
+ };
201
+ /**
202
+ * All supported Event Hub Namespace versions for registration
203
+ * Ordered with latest stable version first
204
+ */
205
+ exports.ALL_EVENT_HUB_NAMESPACE_VERSIONS = [
206
+ exports.EVENT_HUB_NAMESPACE_VERSION_2024_01_01,
207
+ exports.EVENT_HUB_NAMESPACE_VERSION_2021_11_01,
208
+ ];
209
+ /**
210
+ * Resource type constant for Event Hub Namespace
211
+ */
212
+ exports.EVENT_HUB_NAMESPACE_TYPE = "Microsoft.EventHub/namespaces";
213
+ // =============================================================================
214
+ // EVENT HUB (ENTITY)
215
+ // =============================================================================
216
+ /**
217
+ * Common property definitions shared across all Event Hub (entity) versions
218
+ */
219
+ const COMMON_EVENT_HUB_PROPERTIES = {
220
+ name: {
221
+ dataType: version_interfaces_1.PropertyType.STRING,
222
+ required: true,
223
+ description: "Name of the Event Hub",
224
+ validation: [
225
+ {
226
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
227
+ message: "Name is required",
228
+ },
229
+ {
230
+ ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
231
+ value: "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,254}$",
232
+ message: "Event Hub name must be 1-255 characters and contain only letters, numbers, periods, hyphens, and underscores",
233
+ },
234
+ ],
235
+ },
236
+ partitionCount: {
237
+ dataType: version_interfaces_1.PropertyType.NUMBER,
238
+ required: false,
239
+ defaultValue: 2,
240
+ description: "Number of partitions for the Event Hub (1-32 for Standard)",
241
+ validation: [
242
+ {
243
+ ruleType: version_interfaces_1.ValidationRuleType.VALUE_RANGE,
244
+ value: { min: 1, max: 1024 },
245
+ message: "partitionCount must be between 1 and 1024",
246
+ },
247
+ ],
248
+ },
249
+ messageRetentionInDays: {
250
+ dataType: version_interfaces_1.PropertyType.NUMBER,
251
+ required: false,
252
+ defaultValue: 1,
253
+ description: "Number of days to retain events (1-7 for Standard, up to 90 for Premium/Dedicated)",
254
+ validation: [
255
+ {
256
+ ruleType: version_interfaces_1.ValidationRuleType.VALUE_RANGE,
257
+ value: { min: 1, max: 90 },
258
+ message: "messageRetentionInDays must be between 1 and 90",
259
+ },
260
+ ],
261
+ },
262
+ status: {
263
+ dataType: version_interfaces_1.PropertyType.STRING,
264
+ required: false,
265
+ description: "Status of the Event Hub: Active, Disabled, SendDisabled, ReceiveDisabled",
266
+ },
267
+ };
268
+ /**
269
+ * API Schema for Event Hub (entity) version 2024-01-01
270
+ */
271
+ exports.EVENT_HUB_SCHEMA_2024_01_01 = {
272
+ resourceType: "Microsoft.EventHub/namespaces/eventhubs",
273
+ version: "2024-01-01",
274
+ properties: {
275
+ ...COMMON_EVENT_HUB_PROPERTIES,
276
+ },
277
+ required: ["name"],
278
+ optional: ["partitionCount", "messageRetentionInDays", "status"],
279
+ deprecated: [],
280
+ transformationRules: {},
281
+ validationRules: [
282
+ {
283
+ property: "name",
284
+ rules: [
285
+ {
286
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
287
+ message: "Name is required for Event Hub",
288
+ },
289
+ ],
290
+ },
291
+ ],
292
+ };
293
+ /**
294
+ * API Schema for Event Hub (entity) version 2021-11-01
295
+ */
296
+ exports.EVENT_HUB_SCHEMA_2021_11_01 = {
297
+ resourceType: "Microsoft.EventHub/namespaces/eventhubs",
298
+ version: "2021-11-01",
299
+ properties: {
300
+ ...COMMON_EVENT_HUB_PROPERTIES,
301
+ },
302
+ required: ["name"],
303
+ optional: ["partitionCount", "messageRetentionInDays", "status"],
304
+ deprecated: [],
305
+ transformationRules: {},
306
+ validationRules: [
307
+ {
308
+ property: "name",
309
+ rules: [
310
+ {
311
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
312
+ message: "Name is required for Event Hub",
313
+ },
314
+ ],
315
+ },
316
+ ],
317
+ };
318
+ /**
319
+ * Version configuration for Event Hub (entity) 2024-01-01
320
+ */
321
+ exports.EVENT_HUB_VERSION_2024_01_01 = {
322
+ version: "2024-01-01",
323
+ schema: exports.EVENT_HUB_SCHEMA_2024_01_01,
324
+ supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
325
+ releaseDate: "2024-01-01",
326
+ deprecationDate: undefined,
327
+ sunsetDate: undefined,
328
+ breakingChanges: [],
329
+ migrationGuide: "/docs/event-hub/migration-2024-01-01",
330
+ changeLog: [
331
+ {
332
+ changeType: "updated",
333
+ description: "Latest stable API version for Event Hubs",
334
+ breaking: false,
335
+ },
336
+ ],
337
+ };
338
+ /**
339
+ * Version configuration for Event Hub (entity) 2021-11-01
340
+ */
341
+ exports.EVENT_HUB_VERSION_2021_11_01 = {
342
+ version: "2021-11-01",
343
+ schema: exports.EVENT_HUB_SCHEMA_2021_11_01,
344
+ supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
345
+ releaseDate: "2021-11-01",
346
+ deprecationDate: undefined,
347
+ sunsetDate: undefined,
348
+ breakingChanges: [],
349
+ migrationGuide: "/docs/event-hub/migration-2021-11-01",
350
+ changeLog: [
351
+ {
352
+ changeType: "updated",
353
+ description: "Stable API version for backward compatibility",
354
+ breaking: false,
355
+ },
356
+ ],
357
+ };
358
+ /**
359
+ * All supported Event Hub (entity) versions for registration
360
+ * Ordered with latest stable version first
361
+ */
362
+ exports.ALL_EVENT_HUB_VERSIONS = [
363
+ exports.EVENT_HUB_VERSION_2024_01_01,
364
+ exports.EVENT_HUB_VERSION_2021_11_01,
365
+ ];
366
+ /**
367
+ * Resource type constant for Event Hub (entity)
368
+ */
369
+ exports.EVENT_HUB_TYPE = "Microsoft.EventHub/namespaces/eventhubs";
370
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtaHViLXNjaGVtYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtZXZlbnRodWIvbGliL2V2ZW50LWh1Yi1zY2hlbWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7OztHQU9HOzs7QUFFSCwyR0FPNEU7QUFFNUUsZ0ZBQWdGO0FBQ2hGLHNCQUFzQjtBQUN0QixnRkFBZ0Y7QUFFaEY7O0dBRUc7QUFDSCxNQUFNLHFDQUFxQyxHQUV2QztJQUNGLElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLElBQUk7UUFDZCxXQUFXLEVBQUUsNERBQTREO1FBQ3pFLFVBQVUsRUFBRTtZQUNWO2dCQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxRQUFRO2dCQUNyQyxPQUFPLEVBQUUsa0JBQWtCO2FBQzVCO1lBQ0Q7Z0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLGFBQWE7Z0JBQzFDLEtBQUssRUFBRSx5Q0FBeUM7Z0JBQ2hELE9BQU8sRUFDTCwwSUFBMEk7YUFDN0k7U0FDRjtLQUNGO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsUUFBUSxFQUFFLGlDQUFZLENBQUMsTUFBTTtRQUM3QixRQUFRLEVBQUUsSUFBSTtRQUNkLFdBQVcsRUFBRSxrREFBa0Q7S0FDaEU7SUFDRCxHQUFHLEVBQUU7UUFDSCxRQUFRLEVBQUUsaUNBQVksQ0FBQyxNQUFNO1FBQzdCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsV0FBVyxFQUNULHdFQUF3RTtLQUMzRTtJQUNELGFBQWEsRUFBRTtRQUNiLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE9BQU87UUFDOUIsUUFBUSxFQUFFLEtBQUs7UUFDZixXQUFXLEVBQUUsMENBQTBDO0tBQ3hEO0lBQ0Qsb0JBQW9CLEVBQUU7UUFDcEIsUUFBUSxFQUFFLGlDQUFZLENBQUMsT0FBTztRQUM5QixRQUFRLEVBQUUsS0FBSztRQUNmLFdBQVcsRUFBRSww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ekQsT0FBTyxFQUFFLFlBQVk7SUFDckIsTUFBTSxFQUFFLG1DQUEyQjtJQUNuQyxZQUFZLEVBQUUsd0NBQW1CLENBQUMsTUFBTTtJQUN4QyxXQUFXLEVBQUUsWUFBWTtJQUN6QixlQUFlLEVBQUUsU0FBUztJQUMxQixVQUFVLEVBQUUsU0FBUztJQUNyQixlQUFlLEVBQUUsRUFBRTtJQUNuQixjQUFjLEVBQUUsc0NBQXNDO0lBQ3RELFNBQVMsRUFBRTtRQUNUO1lBQ0UsVUFBVSxFQUFFLFNBQVM7WUFDckIsV0FBVyxFQUFFLCtDQUErQztZQUM1RCxRQUFRLEVBQUUsS0FBSztTQUNoQjtLQUNGO0NBQ0YsQ0FBQztBQUVGOzs7R0FHRztBQUNVLFFBQUEsc0JBQXNCLEdBQW9CO0lBQ3JELG9DQUE0QjtJQUM1QixvQ0FBNEI7Q0FDN0IsQ0FBQztBQUVGOztHQUVHO0FBQ1UsUUFBQSxjQUFjLEdBQUcseUNBQXlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFQSSBzY2hlbWFzIGZvciBBenVyZSBFdmVudCBIdWJzIGFjcm9zcyBhbGwgc3VwcG9ydGVkIHZlcnNpb25zXG4gKlxuICogVGhpcyBmaWxlIGRlZmluZXMgdGhlIGNvbXBsZXRlIEFQSSBzY2hlbWFzIGZvciBNaWNyb3NvZnQuRXZlbnRIdWIvbmFtZXNwYWNlc1xuICogYW5kIE1pY3Jvc29mdC5FdmVudEh1Yi9uYW1lc3BhY2VzL2V2ZW50aHVicyBhY3Jvc3MgYWxsIHN1cHBvcnRlZCBBUEkgdmVyc2lvbnMuXG4gKiBUaGUgc2NoZW1hcyBhcmUgdXNlZCBieSB0aGUgQXphcGlSZXNvdXJjZSBmcmFtZXdvcmsgZm9yIHZhbGlkYXRpb24sXG4gKiB0cmFuc2Zvcm1hdGlvbiwgYW5kIHZlcnNpb24gbWFuYWdlbWVudC5cbiAqL1xuXG5pbXBvcnQge1xuICBBcGlTY2hlbWEsXG4gIFByb3BlcnR5RGVmaW5pdGlvbixcbiAgUHJvcGVydHlUeXBlLFxuICBWYWxpZGF0aW9uUnVsZVR5cGUsXG4gIFZlcnNpb25Db25maWcsXG4gIFZlcnNpb25TdXBwb3J0TGV2ZWwsXG59IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEVWRU5UIEhVQiBOQU1FU1BBQ0Vcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ29tbW9uIHByb3BlcnR5IGRlZmluaXRpb25zIHNoYXJlZCBhY3Jvc3MgYWxsIEV2ZW50IEh1YiBOYW1lc3BhY2UgdmVyc2lvbnNcbiAqL1xuY29uc3QgQ09NTU9OX0VWRU5UX0hVQl9OQU1FU1BBQ0VfUFJPUEVSVElFUzoge1xuICBba2V5OiBzdHJpbmddOiBQcm9wZXJ0eURlZmluaXRpb247XG59ID0ge1xuICBuYW1lOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgZGVzY3JpcHRpb246IFwiTmFtZSBvZiB0aGUgRXZlbnQgSHVicyBuYW1lc3BhY2UgKG11c3QgYmUgZ2xvYmFsbHkgdW5pcXVlKVwiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgbWVzc2FnZTogXCJOYW1lIGlzIHJlcXVpcmVkXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlBBVFRFUk5fTUFUQ0gsXG4gICAgICAgIHZhbHVlOiBcIl5bYS16QS1aXVthLXpBLVowLTktXXs0LDQ4fVthLXpBLVowLTldJFwiLFxuICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgIFwiTmFtZXNwYWNlIG5hbWUgbXVzdCBiZSA2LTUwIGNoYXJhY3RlcnMsIHN0YXJ0IHdpdGggYSBsZXR0ZXIsIGVuZCB3aXRoIGEgbGV0dGVyIG9yIG51bWJlciwgYW5kIGNvbnRhaW4gb25seSBsZXR0ZXJzLCBudW1iZXJzLCBhbmQgaHlwaGVuc1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBsb2NhdGlvbjoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIGRlc2NyaXB0aW9uOiBcIkF6dXJlIHJlZ2lvbiB3aGVyZSB0aGUgbmFtZXNwYWNlIHdpbGwgYmUgY3JlYXRlZFwiLFxuICB9LFxuICBza3U6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIlNLVSBjb25maWd1cmF0aW9uIGZvciB0aGUgbmFtZXNwYWNlLiBPcHRpb25zOiBCYXNpYywgU3RhbmRhcmQsIFByZW1pdW1cIixcbiAgfSxcbiAgem9uZVJlZHVuZGFudDoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuQk9PTEVBTixcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiRW5hYmxlIHpvbmUgcmVkdW5kYW5jeSBmb3IgdGhlIG5hbWVzcGFjZVwiLFxuICB9LFxuICBpc0F1dG9JbmZsYXRlRW5hYmxlZDoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuQk9PTEVBTixcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiRW5hYmxlIGF1dG8taW5mbGF0ZSBmb3IgdGhyb3VnaHB1dCB1bml0cyAoU3RhbmRhcmQgdGllcilcIixcbiAgfSxcbiAgbWF4aW11bVRocm91Z2hwdXRVbml0czoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuTlVNQkVSLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiVXBwZXIgbGltaXQgb2YgdGhyb3VnaHB1dCB1bml0cyB3aGVuIGF1dG8taW5mbGF0ZSBpcyBlbmFibGVkICgwLTQwKVwiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5WQUxVRV9SQU5HRSxcbiAgICAgICAgdmFsdWU6IHsgbWluOiAwLCBtYXg6IDQwIH0sXG4gICAgICAgIG1lc3NhZ2U6IFwibWF4aW11bVRocm91Z2hwdXRVbml0cyBtdXN0IGJlIGJldHdlZW4gMCBhbmQgNDBcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgbWluaW11bVRsc1ZlcnNpb246IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiTWluaW11bSBUTFMgdmVyc2lvbiBmb3IgdGhlIG5hbWVzcGFjZTogMS4wLCAxLjEsIG9yIDEuMlwiLFxuICB9LFxuICBwdWJsaWNOZXR3b3JrQWNjZXNzOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlB1YmxpYyBuZXR3b3JrIGFjY2VzcyBmb3IgdGhlIG5hbWVzcGFjZTogRW5hYmxlZCBvciBEaXNhYmxlZFwiLFxuICB9LFxuICBkaXNhYmxlTG9jYWxBdXRoOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5CT09MRUFOLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiRGlzYWJsZSBTQVMgYXV0aGVudGljYXRpb24sIHJlcXVpcmluZyBBenVyZSBBRCBhdXRoZW50aWNhdGlvbiBvbmx5XCIsXG4gIH0sXG4gIGlkZW50aXR5OiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIk1hbmFnZWQgaWRlbnRpdHkgY29uZmlndXJhdGlvbiBmb3IgdGhlIG5hbWVzcGFjZVwiLFxuICB9LFxufTtcblxuLyoqXG4gKiBBUEkgU2NoZW1hIGZvciBFdmVudCBIdWIgTmFtZXNwYWNlIHZlcnNpb24gMjAyNC0wMS0wMVxuICpcbiAqIFRoaXMgaXMgdGhlIGxhdGVzdCBzdGFibGUgdmVyc2lvbiBmb3IgRXZlbnQgSHViIE5hbWVzcGFjZXMuXG4gKi9cbmV4cG9ydCBjb25zdCBFVkVOVF9IVUJfTkFNRVNQQUNFX1NDSEVNQV8yMDI0XzAxXzAxOiBBcGlTY2hlbWEgPSB7XG4gIHJlc291cmNlVHlwZTogXCJNaWNyb3NvZnQuRXZlbnRIdWIvbmFtZXNwYWNlc1wiLFxuICB2ZXJzaW9uOiBcIjIwMjQtMDEtMDFcIixcbiAgcHJvcGVydGllczoge1xuICAgIC4uLkNPTU1PTl9FVkVOVF9IVUJfTkFNRVNQQUNFX1BST1BFUlRJRVMsXG4gIH0sXG4gIHJlcXVpcmVkOiBbXCJuYW1lXCIsIFwibG9jYXRpb25cIl0sXG4gIG9wdGlvbmFsOiBbXG4gICAgXCJza3VcIixcbiAgICBcInpvbmVSZWR1bmRhbnRcIixcbiAgICBcImlzQXV0b0luZmxhdGVFbmFibGVkXCIsXG4gICAgXCJtYXhpbXVtVGhyb3VnaHB1dFVuaXRzXCIsXG4gICAgXCJtaW5pbXVtVGxzVmVyc2lvblwiLFxuICAgIFwicHVibGljTmV0d29ya0FjY2Vzc1wiLFxuICAgIFwiZGlzYWJsZUxvY2FsQXV0aFwiLFxuICAgIFwiaWRlbnRpdHlcIixcbiAgXSxcbiAgZGVwcmVjYXRlZDogW10sXG4gIHRyYW5zZm9ybWF0aW9uUnVsZXM6IHt9LFxuICB2YWxpZGF0aW9uUnVsZXM6IFtcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJuYW1lXCIsXG4gICAgICBydWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgICBtZXNzYWdlOiBcIk5hbWUgaXMgcmVxdWlyZWQgZm9yIEV2ZW50IEh1YiBOYW1lc3BhY2VcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgXSxcbn07XG5cbi8qKlxuICogQVBJIFNjaGVtYSBmb3IgRXZlbnQgSHViIE5hbWVzcGFjZSB2ZXJzaW9uIDIwMjEtMTEtMDFcbiAqXG4gKiBUaGlzIGlzIGEgc3RhYmxlIHZlcnNpb24gZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gKi9cbmV4cG9ydCBjb25zdCBFVkVOVF9IVUJfTkFNRVNQQUNFX1NDSEVNQV8yMDIxXzExXzAxOiBBcGlTY2hlbWEgPSB7XG4gIHJlc291cmNlVHlwZTogXCJNaWNyb3NvZnQuRXZlbnRIdWIvbmFtZXNwYWNlc1wiLFxuICB2ZXJzaW9uOiBcIjIwMjEtMTEtMDFcIixcbiAgcHJvcGVydGllczoge1xuICAgIC4uLkNPTU1PTl9FVkVOVF9IVUJfTkFNRVNQQUNFX1BST1BFUlRJRVMsXG4gIH0sXG4gIHJlcXVpcmVkOiBbXCJuYW1lXCIsIFwibG9jYXRpb25cIl0sXG4gIG9wdGlvbmFsOiBbXG4gICAgXCJza3VcIixcbiAgICBcInpvbmVSZWR1bmRhbnRcIixcbiAgICBcImlzQXV0b0luZmxhdGVFbmFibGVkXCIsXG4gICAgXCJtYXhpbXVtVGhyb3VnaHB1dFVuaXRzXCIsXG4gICAgXCJtaW5pbXVtVGxzVmVyc2lvblwiLFxuICAgIFwicHVibGljTmV0d29ya0FjY2Vzc1wiLFxuICAgIFwiZGlzYWJsZUxvY2FsQXV0aFwiLFxuICAgIFwiaWRlbnRpdHlcIixcbiAgXSxcbiAgZGVwcmVjYXRlZDogW10sXG4gIHRyYW5zZm9ybWF0aW9uUnVsZXM6IHt9LFxuICB2YWxpZGF0aW9uUnVsZXM6IFtcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJuYW1lXCIsXG4gICAgICBydWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgICBtZXNzYWdlOiBcIk5hbWUgaXMgcmVxdWlyZWQgZm9yIEV2ZW50IEh1YiBOYW1lc3BhY2VcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgXSxcbn07XG5cbi8qKlxuICogVmVyc2lvbiBjb25maWd1cmF0aW9uIGZvciBFdmVudCBIdWIgTmFtZXNwYWNlIDIwMjQtMDEtMDFcbiAqL1xuZXhwb3J0IGNvbnN0IEVWRU5UX0hVQl9OQU1FU1BBQ0VfVkVSU0lPTl8yMDI0XzAxXzAxOiBWZXJzaW9uQ29uZmlnID0ge1xuICB2ZXJzaW9uOiBcIjIwMjQtMDEtMDFcIixcbiAgc2NoZW1hOiBFVkVOVF9IVUJfTkFNRVNQQUNFX1NDSEVNQV8yMDI0XzAxXzAxLFxuICBzdXBwb3J0TGV2ZWw6IFZlcnNpb25TdXBwb3J0TGV2ZWwuQUNUSVZFLFxuICByZWxlYXNlRGF0ZTogXCIyMDI0LTAxLTAxXCIsXG4gIGRlcHJlY2F0aW9uRGF0ZTogdW5kZWZpbmVkLFxuICBzdW5zZXREYXRlOiB1bmRlZmluZWQsXG4gIGJyZWFraW5nQ2hhbmdlczogW10sXG4gIG1pZ3JhdGlvbkd1aWRlOiBcIi9kb2NzL2V2ZW50LWh1Yi9taWdyYXRpb24tMjAyNC0wMS0wMVwiLFxuICBjaGFuZ2VMb2c6IFtcbiAgICB7XG4gICAgICBjaGFuZ2VUeXBlOiBcInVwZGF0ZWRcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkxhdGVzdCBzdGFibGUgQVBJIHZlcnNpb24gZm9yIEV2ZW50IEh1YnNcIixcbiAgICAgIGJyZWFraW5nOiBmYWxzZSxcbiAgICB9LFxuICBdLFxufTtcblxuLyoqXG4gKiBWZXJzaW9uIGNvbmZpZ3VyYXRpb24gZm9yIEV2ZW50IEh1YiBOYW1lc3BhY2UgMjAyMS0xMS0wMVxuICovXG5leHBvcnQgY29uc3QgRVZFTlRfSFVCX05BTUVTUEFDRV9WRVJTSU9OXzIwMjFfMTFfMDE6IFZlcnNpb25Db25maWcgPSB7XG4gIHZlcnNpb246IFwiMjAyMS0xMS0wMVwiLFxuICBzY2hlbWE6IEVWRU5UX0hVQl9OQU1FU1BBQ0VfU0NIRU1BXzIwMjFfMTFfMDEsXG4gIHN1cHBvcnRMZXZlbDogVmVyc2lvblN1cHBvcnRMZXZlbC5BQ1RJVkUsXG4gIHJlbGVhc2VEYXRlOiBcIjIwMjEtMTEtMDFcIixcbiAgZGVwcmVjYXRpb25EYXRlOiB1bmRlZmluZWQsXG4gIHN1bnNldERhdGU6IHVuZGVmaW5lZCxcbiAgYnJlYWtpbmdDaGFuZ2VzOiBbXSxcbiAgbWlncmF0aW9uR3VpZGU6IFwiL2RvY3MvZXZlbnQtaHViL21pZ3JhdGlvbi0yMDIxLTExLTAxXCIsXG4gIGNoYW5nZUxvZzogW1xuICAgIHtcbiAgICAgIGNoYW5nZVR5cGU6IFwidXBkYXRlZFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiU3RhYmxlIEFQSSB2ZXJzaW9uIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XCIsXG4gICAgICBicmVha2luZzogZmFsc2UsXG4gICAgfSxcbiAgXSxcbn07XG5cbi8qKlxuICogQWxsIHN1cHBvcnRlZCBFdmVudCBIdWIgTmFtZXNwYWNlIHZlcnNpb25zIGZvciByZWdpc3RyYXRpb25cbiAqIE9yZGVyZWQgd2l0aCBsYXRlc3Qgc3RhYmxlIHZlcnNpb24gZmlyc3RcbiAqL1xuZXhwb3J0IGNvbnN0IEFMTF9FVkVOVF9IVUJfTkFNRVNQQUNFX1ZFUlNJT05TOiBWZXJzaW9uQ29uZmlnW10gPSBbXG4gIEVWRU5UX0hVQl9OQU1FU1BBQ0VfVkVSU0lPTl8yMDI0XzAxXzAxLFxuICBFVkVOVF9IVUJfTkFNRVNQQUNFX1ZFUlNJT05fMjAyMV8xMV8wMSxcbl07XG5cbi8qKlxuICogUmVzb3VyY2UgdHlwZSBjb25zdGFudCBmb3IgRXZlbnQgSHViIE5hbWVzcGFjZVxuICovXG5leHBvcnQgY29uc3QgRVZFTlRfSFVCX05BTUVTUEFDRV9UWVBFID0gXCJNaWNyb3NvZnQuRXZlbnRIdWIvbmFtZXNwYWNlc1wiO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRVZFTlQgSFVCIChFTlRJVFkpXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIENvbW1vbiBwcm9wZXJ0eSBkZWZpbml0aW9ucyBzaGFyZWQgYWNyb3NzIGFsbCBFdmVudCBIdWIgKGVudGl0eSkgdmVyc2lvbnNcbiAqL1xuY29uc3QgQ09NTU9OX0VWRU5UX0hVQl9QUk9QRVJUSUVTOiB7XG4gIFtrZXk6IHN0cmluZ106IFByb3BlcnR5RGVmaW5pdGlvbjtcbn0gPSB7XG4gIG5hbWU6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjogXCJOYW1lIG9mIHRoZSBFdmVudCBIdWJcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgIG1lc3NhZ2U6IFwiTmFtZSBpcyByZXF1aXJlZFwiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5QQVRURVJOX01BVENILFxuICAgICAgICB2YWx1ZTogXCJeW2EtekEtWjAtOV1bYS16QS1aMC05Ll8tXXswLDI1NH0kXCIsXG4gICAgICAgIG1lc3NhZ2U6XG4gICAgICAgICAgXCJFdmVudCBIdWIgbmFtZSBtdXN0IGJlIDEtMjU1IGNoYXJhY3RlcnMgYW5kIGNvbnRhaW4gb25seSBsZXR0ZXJzLCBudW1iZXJzLCBwZXJpb2RzLCBoeXBoZW5zLCBhbmQgdW5kZXJzY29yZXNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgcGFydGl0aW9uQ291bnQ6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk5VTUJFUixcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVmYXVsdFZhbHVlOiAyLFxuICAgIGRlc2NyaXB0aW9uOiBcIk51bWJlciBvZiBwYXJ0aXRpb25zIGZvciB0aGUgRXZlbnQgSHViICgxLTMyIGZvciBTdGFuZGFyZClcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuVkFMVUVfUkFOR0UsXG4gICAgICAgIHZhbHVlOiB7IG1pbjogMSwgbWF4OiAxMDI0IH0sXG4gICAgICAgIG1lc3NhZ2U6IFwicGFydGl0aW9uQ291bnQgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDEwMjRcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgbWVzc2FnZVJldGVudGlvbkluRGF5czoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuTlVNQkVSLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZWZhdWx0VmFsdWU6IDEsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIk51bWJlciBvZiBkYXlzIHRvIHJldGFpbiBldmVudHMgKDEtNyBmb3IgU3RhbmRhcmQsIHVwIHRvIDkwIGZvciBQcmVtaXVtL0RlZGljYXRlZClcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuVkFMVUVfUkFOR0UsXG4gICAgICAgIHZhbHVlOiB7IG1pbjogMSwgbWF4OiA5MCB9LFxuICAgICAgICBtZXNzYWdlOiBcIm1lc3NhZ2VSZXRlbnRpb25JbkRheXMgbXVzdCBiZSBiZXR3ZWVuIDEgYW5kIDkwXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIHN0YXR1czoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiU3RhdHVzIG9mIHRoZSBFdmVudCBIdWI6IEFjdGl2ZSwgRGlzYWJsZWQsIFNlbmREaXNhYmxlZCwgUmVjZWl2ZURpc2FibGVkXCIsXG4gIH0sXG59O1xuXG4vKipcbiAqIEFQSSBTY2hlbWEgZm9yIEV2ZW50IEh1YiAoZW50aXR5KSB2ZXJzaW9uIDIwMjQtMDEtMDFcbiAqL1xuZXhwb3J0IGNvbnN0IEVWRU5UX0hVQl9TQ0hFTUFfMjAyNF8wMV8wMTogQXBpU2NoZW1hID0ge1xuICByZXNvdXJjZVR5cGU6IFwiTWljcm9zb2Z0LkV2ZW50SHViL25hbWVzcGFjZXMvZXZlbnRodWJzXCIsXG4gIHZlcnNpb246IFwiMjAyNC0wMS0wMVwiLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgLi4uQ09NTU9OX0VWRU5UX0hVQl9QUk9QRVJUSUVTLFxuICB9LFxuICByZXF1aXJlZDogW1wibmFtZVwiXSxcbiAgb3B0aW9uYWw6IFtcInBhcnRpdGlvbkNvdW50XCIsIFwibWVzc2FnZVJldGVudGlvbkluRGF5c1wiLCBcInN0YXR1c1wiXSxcbiAgZGVwcmVjYXRlZDogW10sXG4gIHRyYW5zZm9ybWF0aW9uUnVsZXM6IHt9LFxuICB2YWxpZGF0aW9uUnVsZXM6IFtcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJuYW1lXCIsXG4gICAgICBydWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgICBtZXNzYWdlOiBcIk5hbWUgaXMgcmVxdWlyZWQgZm9yIEV2ZW50IEh1YlwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICBdLFxufTtcblxuLyoqXG4gKiBBUEkgU2NoZW1hIGZvciBFdmVudCBIdWIgKGVudGl0eSkgdmVyc2lvbiAyMDIxLTExLTAxXG4gKi9cbmV4cG9ydCBjb25zdCBFVkVOVF9IVUJfU0NIRU1BXzIwMjFfMTFfMDE6IEFwaVNjaGVtYSA9IHtcbiAgcmVzb3VyY2VUeXBlOiBcIk1pY3Jvc29mdC5FdmVudEh1Yi9uYW1lc3BhY2VzL2V2ZW50aHVic1wiLFxuICB2ZXJzaW9uOiBcIjIwMjEtMTEtMDFcIixcbiAgcHJvcGVydGllczoge1xuICAgIC4uLkNPTU1PTl9FVkVOVF9IVUJfUFJPUEVSVElFUyxcbiAgfSxcbiAgcmVxdWlyZWQ6IFtcIm5hbWVcIl0sXG4gIG9wdGlvbmFsOiBbXCJwYXJ0aXRpb25Db3VudFwiLCBcIm1lc3NhZ2VSZXRlbnRpb25JbkRheXNcIiwgXCJzdGF0dXNcIl0sXG4gIGRlcHJlY2F0ZWQ6IFtdLFxuICB0cmFuc2Zvcm1hdGlvblJ1bGVzOiB7fSxcbiAgdmFsaWRhdGlvblJ1bGVzOiBbXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwibmFtZVwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJOYW1lIGlzIHJlcXVpcmVkIGZvciBFdmVudCBIdWJcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgXSxcbn07XG5cbi8qKlxuICogVmVyc2lvbiBjb25maWd1cmF0aW9uIGZvciBFdmVudCBIdWIgKGVudGl0eSkgMjAyNC0wMS0wMVxuICovXG5leHBvcnQgY29uc3QgRVZFTlRfSFVCX1ZFUlNJT05fMjAyNF8wMV8wMTogVmVyc2lvbkNvbmZpZyA9IHtcbiAgdmVyc2lvbjogXCIyMDI0LTAxLTAxXCIsXG4gIHNjaGVtYTogRVZFTlRfSFVCX1NDSEVNQV8yMDI0XzAxXzAxLFxuICBzdXBwb3J0TGV2ZWw6IFZlcnNpb25TdXBwb3J0TGV2ZWwuQUNUSVZFLFxuICByZWxlYXNlRGF0ZTogXCIyMDI0LTAxLTAxXCIsXG4gIGRlcHJlY2F0aW9uRGF0ZTogdW5kZWZpbmVkLFxuICBzdW5zZXREYXRlOiB1bmRlZmluZWQsXG4gIGJyZWFraW5nQ2hhbmdlczogW10sXG4gIG1pZ3JhdGlvbkd1aWRlOiBcIi9kb2NzL2V2ZW50LWh1Yi9taWdyYXRpb24tMjAyNC0wMS0wMVwiLFxuICBjaGFuZ2VMb2c6IFtcbiAgICB7XG4gICAgICBjaGFuZ2VUeXBlOiBcInVwZGF0ZWRcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkxhdGVzdCBzdGFibGUgQVBJIHZlcnNpb24gZm9yIEV2ZW50IEh1YnNcIixcbiAgICAgIGJyZWFraW5nOiBmYWxzZSxcbiAgICB9LFxuICBdLFxufTtcblxuLyoqXG4gKiBWZXJzaW9uIGNvbmZpZ3VyYXRpb24gZm9yIEV2ZW50IEh1YiAoZW50aXR5KSAyMDIxLTExLTAxXG4gKi9cbmV4cG9ydCBjb25zdCBFVkVOVF9IVUJfVkVSU0lPTl8yMDIxXzExXzAxOiBWZXJzaW9uQ29uZmlnID0ge1xuICB2ZXJzaW9uOiBcIjIwMjEtMTEtMDFcIixcbiAgc2NoZW1hOiBFVkVOVF9IVUJfU0NIRU1BXzIwMjFfMTFfMDEsXG4gIHN1cHBvcnRMZXZlbDogVmVyc2lvblN1cHBvcnRMZXZlbC5BQ1RJVkUsXG4gIHJlbGVhc2VEYXRlOiBcIjIwMjEtMTEtMDFcIixcbiAgZGVwcmVjYXRpb25EYXRlOiB1bmRlZmluZWQsXG4gIHN1bnNldERhdGU6IHVuZGVmaW5lZCxcbiAgYnJlYWtpbmdDaGFuZ2VzOiBbXSxcbiAgbWlncmF0aW9uR3VpZGU6IFwiL2RvY3MvZXZlbnQtaHViL21pZ3JhdGlvbi0yMDIxLTExLTAxXCIsXG4gIGNoYW5nZUxvZzogW1xuICAgIHtcbiAgICAgIGNoYW5nZVR5cGU6IFwidXBkYXRlZFwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiU3RhYmxlIEFQSSB2ZXJzaW9uIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5XCIsXG4gICAgICBicmVha2luZzogZmFsc2UsXG4gICAgfSxcbiAgXSxcbn07XG5cbi8qKlxuICogQWxsIHN1cHBvcnRlZCBFdmVudCBIdWIgKGVudGl0eSkgdmVyc2lvbnMgZm9yIHJlZ2lzdHJhdGlvblxuICogT3JkZXJlZCB3aXRoIGxhdGVzdCBzdGFibGUgdmVyc2lvbiBmaXJzdFxuICovXG5leHBvcnQgY29uc3QgQUxMX0VWRU5UX0hVQl9WRVJTSU9OUzogVmVyc2lvbkNvbmZpZ1tdID0gW1xuICBFVkVOVF9IVUJfVkVSU0lPTl8yMDI0XzAxXzAxLFxuICBFVkVOVF9IVUJfVkVSU0lPTl8yMDIxXzExXzAxLFxuXTtcblxuLyoqXG4gKiBSZXNvdXJjZSB0eXBlIGNvbnN0YW50IGZvciBFdmVudCBIdWIgKGVudGl0eSlcbiAqL1xuZXhwb3J0IGNvbnN0IEVWRU5UX0hVQl9UWVBFID0gXCJNaWNyb3NvZnQuRXZlbnRIdWIvbmFtZXNwYWNlcy9ldmVudGh1YnNcIjtcbiJdfQ==
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Azure Event Hub (entity) implementation using the AzapiResource framework
3
+ *
4
+ * This class provides a version-aware implementation for Azure Event Hubs
5
+ * (Microsoft.EventHub/namespaces/eventhubs) that automatically handles version
6
+ * management, schema validation, and property transformation across all
7
+ * supported API versions.
8
+ *
9
+ * Supported API Versions:
10
+ * - 2024-01-01 (Active, Latest)
11
+ * - 2021-11-01 (Active, Backward Compatibility)
12
+ *
13
+ * Features:
14
+ * - Automatic latest version resolution when no version is specified
15
+ * - Explicit version pinning for stability requirements
16
+ * - Schema-driven validation and transformation
17
+ * - Full JSII compliance for multi-language support
18
+ * - Child resource with proper parent ID construction
19
+ * - Partition count and message retention configuration
20
+ */
21
+ import * as cdktn from "cdktn";
22
+ import { Construct } from "constructs";
23
+ import { AzapiResource, AzapiResourceProps } from "../../core-azure/lib/azapi/azapi-resource";
24
+ import { ApiSchema } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
25
+ /**
26
+ * Properties for the Azure Event Hub (entity)
27
+ *
28
+ * Extends AzapiResourceProps with Event Hub specific properties
29
+ */
30
+ export interface EventhubProps extends AzapiResourceProps {
31
+ /**
32
+ * Name of the parent Event Hubs namespace
33
+ * Required for constructing the parent ID
34
+ */
35
+ readonly namespaceName: string;
36
+ /**
37
+ * Optional: Full resource ID of the parent Event Hubs namespace
38
+ * When provided, creates a proper Terraform dependency on the namespace.
39
+ * If not provided, the parent ID will be constructed from `resourceGroupId`
40
+ * and `namespaceName`.
41
+ */
42
+ readonly namespaceId?: string;
43
+ /**
44
+ * Resource group ID where the parent namespace exists
45
+ * Required for constructing the parent ID
46
+ */
47
+ readonly resourceGroupId: string;
48
+ /**
49
+ * Number of partitions for the Event Hub
50
+ *
51
+ * Partitions are immutable after creation. Valid range depends on the
52
+ * namespace tier (1-32 for Standard, up to 1024 for Premium/Dedicated).
53
+ *
54
+ * @defaultValue 2
55
+ */
56
+ readonly partitionCount?: number;
57
+ /**
58
+ * Number of days to retain events
59
+ *
60
+ * Valid range is 1-7 for Standard tier, and up to 90 for Premium/Dedicated.
61
+ *
62
+ * @defaultValue 1
63
+ */
64
+ readonly messageRetentionInDays?: number;
65
+ /**
66
+ * Status of the Event Hub
67
+ *
68
+ * @defaultValue "Active"
69
+ */
70
+ readonly status?: "Active" | "Disabled" | "SendDisabled" | "ReceiveDisabled";
71
+ }
72
+ /**
73
+ * Azure Event Hub (entity) implementation
74
+ *
75
+ * This class provides a single, version-aware implementation that automatically
76
+ * handles version resolution, schema validation, and property transformation
77
+ * while maintaining full JSII compliance.
78
+ *
79
+ * **Child Resource Pattern**: Event Hubs are child resources of Event Hubs
80
+ * Namespaces. This implementation overrides the `resolveParentId()` method to
81
+ * properly construct the namespace ID as the parent.
82
+ *
83
+ * @example
84
+ * // Basic Event Hub within a namespace:
85
+ * const hub = new Eventhub(this, "my-hub", {
86
+ * name: "my-event-hub",
87
+ * namespaceName: "my-eventhub-ns",
88
+ * resourceGroupId: resourceGroup.id,
89
+ * partitionCount: 4,
90
+ * messageRetentionInDays: 3,
91
+ * });
92
+ *
93
+ * @example
94
+ * // Event Hub with an explicit namespace reference (creates a dependency):
95
+ * const hub = new Eventhub(this, "my-hub", {
96
+ * name: "my-event-hub",
97
+ * namespaceName: namespace.props.name!,
98
+ * namespaceId: namespace.id,
99
+ * resourceGroupId: resourceGroup.id,
100
+ * });
101
+ *
102
+ * @stability stable
103
+ */
104
+ export declare class Eventhub extends AzapiResource {
105
+ /**
106
+ * The input properties for this Event Hub instance
107
+ */
108
+ readonly props: EventhubProps;
109
+ readonly idOutput: cdktn.TerraformOutput;
110
+ readonly nameOutput: cdktn.TerraformOutput;
111
+ /**
112
+ * Creates a new Azure Event Hub using the AzapiResource framework
113
+ *
114
+ * @param scope - The scope in which to define this construct
115
+ * @param id - The unique identifier for this instance
116
+ * @param props - Configuration properties for the Event Hub
117
+ */
118
+ constructor(scope: Construct, id: string, props: EventhubProps);
119
+ /**
120
+ * Gets the default API version to use when no explicit version is specified
121
+ * Returns the latest stable version as the default
122
+ */
123
+ protected defaultVersion(): string;
124
+ /**
125
+ * Gets the Azure resource type for Event Hubs
126
+ */
127
+ protected resourceType(): string;
128
+ /**
129
+ * Gets the API schema for the resolved version
130
+ */
131
+ protected apiSchema(): ApiSchema;
132
+ /**
133
+ * Creates the resource body for the Azure API call
134
+ * Transforms the input properties into the JSON format expected by Azure REST API
135
+ */
136
+ protected createResourceBody(props: any): any;
137
+ /**
138
+ * Resolves the parent ID for the Event Hub resource.
139
+ *
140
+ * Event Hubs are child resources of Event Hubs Namespaces. This method
141
+ * overrides the default parent ID resolution to return the namespace ID
142
+ * instead of the Resource Group ID.
143
+ *
144
+ * @param props - The resource properties
145
+ * @returns The Event Hubs Namespace ID (parent resource ID)
146
+ */
147
+ protected resolveParentId(props: any): string;
148
+ /**
149
+ * Event Hubs inherit location from their parent namespace, so no parent
150
+ * resource reference is needed for location resolution.
151
+ */
152
+ protected parentResourceForLocation(): AzapiResource | undefined;
153
+ }