@microsoft/terraform-cdk-constructs 2.2.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (250) hide show
  1. package/.jsii +64029 -35477
  2. package/API.md +89314 -49618
  3. package/README.md +15 -0
  4. package/docs/azure-api-version-update-pipeline.md +271 -0
  5. package/lib/azure-actiongroup/lib/action-group.js +1 -1
  6. package/lib/azure-activitylogalert/lib/activity-log-alert.js +1 -1
  7. package/lib/azure-aks/lib/aks-cluster.js +1 -1
  8. package/lib/azure-applicationinsights/index.d.ts +7 -0
  9. package/lib/azure-applicationinsights/index.js +24 -0
  10. package/lib/azure-applicationinsights/lib/application-insights-schemas.d.ts +29 -0
  11. package/lib/azure-applicationinsights/lib/application-insights-schemas.js +162 -0
  12. package/lib/azure-applicationinsights/lib/application-insights.d.ts +206 -0
  13. package/lib/azure-applicationinsights/lib/application-insights.js +209 -0
  14. package/lib/azure-applicationinsights/lib/index.d.ts +5 -0
  15. package/lib/azure-applicationinsights/lib/index.js +22 -0
  16. package/lib/azure-applicationinsights/test/application-insights.integ.d.ts +9 -0
  17. package/lib/azure-applicationinsights/test/application-insights.integ.js +84 -0
  18. package/lib/azure-applicationinsights/test/application-insights.spec.d.ts +8 -0
  19. package/lib/azure-applicationinsights/test/application-insights.spec.js +209 -0
  20. package/lib/azure-containerapps/lib/container-app-environment.js +1 -1
  21. package/lib/azure-containerapps/lib/container-app.js +1 -1
  22. package/lib/azure-containerapps/lib/container-apps-job-schemas.d.ts +8 -0
  23. package/lib/azure-containerapps/lib/container-apps-job-schemas.js +179 -0
  24. package/lib/azure-containerapps/lib/container-apps-job.d.ts +128 -0
  25. package/lib/azure-containerapps/lib/container-apps-job.js +81 -0
  26. package/lib/azure-containerapps/lib/index.d.ts +2 -0
  27. package/lib/azure-containerapps/lib/index.js +3 -1
  28. package/lib/azure-containerapps/test/container-apps-job.integ.d.ts +6 -0
  29. package/lib/azure-containerapps/test/container-apps-job.integ.js +95 -0
  30. package/lib/azure-containerapps/test/container-apps-job.spec.d.ts +1 -0
  31. package/lib/azure-containerapps/test/container-apps-job.spec.js +261 -0
  32. package/lib/azure-containerregistry/index.d.ts +1 -0
  33. package/lib/azure-containerregistry/index.js +18 -0
  34. package/lib/azure-containerregistry/lib/container-registry-schemas.d.ts +32 -0
  35. package/lib/azure-containerregistry/lib/container-registry-schemas.js +316 -0
  36. package/lib/azure-containerregistry/lib/container-registry.d.ts +330 -0
  37. package/lib/azure-containerregistry/lib/container-registry.js +217 -0
  38. package/lib/azure-containerregistry/lib/index.d.ts +2 -0
  39. package/lib/azure-containerregistry/lib/index.js +19 -0
  40. package/lib/azure-containerregistry/test/container-registry.integ.d.ts +9 -0
  41. package/lib/azure-containerregistry/test/container-registry.integ.js +101 -0
  42. package/lib/azure-containerregistry/test/container-registry.spec.d.ts +4 -0
  43. package/lib/azure-containerregistry/test/container-registry.spec.js +425 -0
  44. package/lib/azure-cosmosdb/index.d.ts +1 -0
  45. package/lib/azure-cosmosdb/index.js +18 -0
  46. package/lib/azure-cosmosdb/lib/cosmos-db-schemas.d.ts +40 -0
  47. package/lib/azure-cosmosdb/lib/cosmos-db-schemas.js +330 -0
  48. package/lib/azure-cosmosdb/lib/cosmos-db.d.ts +290 -0
  49. package/lib/azure-cosmosdb/lib/cosmos-db.js +222 -0
  50. package/lib/azure-cosmosdb/lib/index.d.ts +2 -0
  51. package/lib/azure-cosmosdb/lib/index.js +19 -0
  52. package/lib/azure-cosmosdb/test/cosmos-db.integ.d.ts +9 -0
  53. package/lib/azure-cosmosdb/test/cosmos-db.integ.js +98 -0
  54. package/lib/azure-cosmosdb/test/cosmos-db.spec.d.ts +4 -0
  55. package/lib/azure-cosmosdb/test/cosmos-db.spec.js +339 -0
  56. package/lib/azure-dataexplorer/index.d.ts +1 -0
  57. package/lib/azure-dataexplorer/index.js +18 -0
  58. package/lib/azure-dataexplorer/lib/data-explorer-cluster-schemas.d.ts +5 -0
  59. package/lib/azure-dataexplorer/lib/data-explorer-cluster-schemas.js +131 -0
  60. package/lib/azure-dataexplorer/lib/data-explorer-cluster.d.ts +54 -0
  61. package/lib/azure-dataexplorer/lib/data-explorer-cluster.js +91 -0
  62. package/lib/azure-dataexplorer/lib/data-explorer-database-schemas.d.ts +5 -0
  63. package/lib/azure-dataexplorer/lib/data-explorer-database-schemas.js +78 -0
  64. package/lib/azure-dataexplorer/lib/data-explorer-database.d.ts +24 -0
  65. package/lib/azure-dataexplorer/lib/data-explorer-database.js +68 -0
  66. package/lib/azure-dataexplorer/lib/data-explorer-table-schemas.d.ts +5 -0
  67. package/lib/azure-dataexplorer/lib/data-explorer-table-schemas.js +94 -0
  68. package/lib/azure-dataexplorer/lib/data-explorer-table.d.ts +25 -0
  69. package/lib/azure-dataexplorer/lib/data-explorer-table.js +62 -0
  70. package/lib/azure-dataexplorer/lib/index.d.ts +6 -0
  71. package/lib/azure-dataexplorer/lib/index.js +23 -0
  72. package/lib/azure-dataexplorer/test/data-explorer.integ.d.ts +1 -0
  73. package/lib/azure-dataexplorer/test/data-explorer.integ.js +78 -0
  74. package/lib/azure-dataexplorer/test/data-explorer.spec.d.ts +1 -0
  75. package/lib/azure-dataexplorer/test/data-explorer.spec.js +248 -0
  76. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +1 -1
  77. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +1 -1
  78. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +1 -1
  79. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +1 -1
  80. package/lib/azure-dnsresolver/lib/dns-resolver.js +1 -1
  81. package/lib/azure-dnsresolver/lib/inbound-endpoint.js +1 -1
  82. package/lib/azure-dnsresolver/lib/outbound-endpoint.js +1 -1
  83. package/lib/azure-dnszone/lib/dns-zone.js +1 -1
  84. package/lib/azure-dnszone/lib/records/dns-records.js +10 -10
  85. package/lib/azure-eventgrideventsubscription/index.d.ts +1 -0
  86. package/lib/azure-eventgrideventsubscription/index.js +18 -0
  87. package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription-schemas.d.ts +5 -0
  88. package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription-schemas.js +151 -0
  89. package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription.d.ts +59 -0
  90. package/lib/azure-eventgrideventsubscription/lib/event-grid-event-subscription.js +67 -0
  91. package/lib/azure-eventgrideventsubscription/lib/index.d.ts +2 -0
  92. package/lib/azure-eventgrideventsubscription/lib/index.js +19 -0
  93. package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.integ.d.ts +1 -0
  94. package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.integ.js +100 -0
  95. package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.spec.d.ts +1 -0
  96. package/lib/azure-eventgrideventsubscription/test/event-grid-event-subscription.spec.js +242 -0
  97. package/lib/azure-eventgridsystemtopic/index.d.ts +1 -0
  98. package/lib/azure-eventgridsystemtopic/index.js +18 -0
  99. package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic-schemas.d.ts +5 -0
  100. package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic-schemas.js +164 -0
  101. package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic.d.ts +46 -0
  102. package/lib/azure-eventgridsystemtopic/lib/event-grid-system-topic.js +68 -0
  103. package/lib/azure-eventgridsystemtopic/lib/index.d.ts +2 -0
  104. package/lib/azure-eventgridsystemtopic/lib/index.js +19 -0
  105. package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.integ.d.ts +1 -0
  106. package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.integ.js +64 -0
  107. package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.spec.d.ts +1 -0
  108. package/lib/azure-eventgridsystemtopic/test/event-grid-system-topic.spec.js +241 -0
  109. package/lib/azure-eventhub/index.d.ts +7 -0
  110. package/lib/azure-eventhub/index.js +24 -0
  111. package/lib/azure-eventhub/lib/event-hub-namespace.d.ts +204 -0
  112. package/lib/azure-eventhub/lib/event-hub-namespace.js +178 -0
  113. package/lib/azure-eventhub/lib/event-hub-schemas.d.ts +63 -0
  114. package/lib/azure-eventhub/lib/event-hub-schemas.js +370 -0
  115. package/lib/azure-eventhub/lib/event-hub.d.ts +153 -0
  116. package/lib/azure-eventhub/lib/event-hub.js +171 -0
  117. package/lib/azure-eventhub/lib/index.d.ts +6 -0
  118. package/lib/azure-eventhub/lib/index.js +23 -0
  119. package/lib/azure-eventhub/test/event-hub.integ.d.ts +9 -0
  120. package/lib/azure-eventhub/test/event-hub.integ.js +113 -0
  121. package/lib/azure-eventhub/test/event-hub.spec.d.ts +8 -0
  122. package/lib/azure-eventhub/test/event-hub.spec.js +438 -0
  123. package/lib/azure-functionapp/index.d.ts +1 -0
  124. package/lib/azure-functionapp/index.js +18 -0
  125. package/lib/azure-functionapp/lib/function-app-schemas.d.ts +32 -0
  126. package/lib/azure-functionapp/lib/function-app-schemas.js +303 -0
  127. package/lib/azure-functionapp/lib/function-app.d.ts +367 -0
  128. package/lib/azure-functionapp/lib/function-app.js +223 -0
  129. package/lib/azure-functionapp/lib/index.d.ts +2 -0
  130. package/lib/azure-functionapp/lib/index.js +19 -0
  131. package/lib/azure-functionapp/test/function-app.integ.d.ts +12 -0
  132. package/lib/azure-functionapp/test/function-app.integ.js +134 -0
  133. package/lib/azure-functionapp/test/function-app.spec.d.ts +4 -0
  134. package/lib/azure-functionapp/test/function-app.spec.js +566 -0
  135. package/lib/azure-keyvault/index.d.ts +1 -0
  136. package/lib/azure-keyvault/index.js +18 -0
  137. package/lib/azure-keyvault/lib/index.d.ts +2 -0
  138. package/lib/azure-keyvault/lib/index.js +19 -0
  139. package/lib/azure-keyvault/lib/key-vault-schemas.d.ts +40 -0
  140. package/lib/azure-keyvault/lib/key-vault-schemas.js +312 -0
  141. package/lib/azure-keyvault/lib/key-vault.d.ts +344 -0
  142. package/lib/azure-keyvault/lib/key-vault.js +243 -0
  143. package/lib/azure-keyvault/test/key-vault.integ.d.ts +9 -0
  144. package/lib/azure-keyvault/test/key-vault.integ.js +108 -0
  145. package/lib/azure-keyvault/test/key-vault.spec.d.ts +4 -0
  146. package/lib/azure-keyvault/test/key-vault.spec.js +264 -0
  147. package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.js +1 -1
  148. package/lib/azure-metricalert/lib/metric-alert.js +1 -1
  149. package/lib/azure-networkinterface/lib/network-interface.js +1 -1
  150. package/lib/azure-networksecuritygroup/lib/network-security-group.js +1 -1
  151. package/lib/azure-networkwatcher/lib/network-watcher.js +1 -1
  152. package/lib/azure-policyassignment/lib/policy-assignment.js +1 -1
  153. package/lib/azure-policydefinition/lib/policy-definition.js +1 -1
  154. package/lib/azure-policysetdefinition/lib/policy-set-definition.js +1 -1
  155. package/lib/azure-privatednszone/lib/private-dns-zone.js +1 -1
  156. package/lib/azure-privatednszone/lib/records/private-dns-records.js +8 -8
  157. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +1 -1
  158. package/lib/azure-publicipaddress/lib/public-ip-address.js +1 -1
  159. package/lib/azure-resourcegroup/lib/resource-group.js +1 -1
  160. package/lib/azure-roleassignment/lib/role-assignment.js +1 -1
  161. package/lib/azure-roledefinition/lib/role-definition.js +1 -1
  162. package/lib/azure-sreagent/index.d.ts +1 -0
  163. package/lib/azure-sreagent/index.js +18 -0
  164. package/lib/azure-sreagent/lib/index.d.ts +2 -0
  165. package/lib/azure-sreagent/lib/index.js +19 -0
  166. package/lib/azure-sreagent/lib/sre-agent-schemas.d.ts +29 -0
  167. package/lib/azure-sreagent/lib/sre-agent-schemas.js +296 -0
  168. package/lib/azure-sreagent/lib/sre-agent.d.ts +208 -0
  169. package/lib/azure-sreagent/lib/sre-agent.js +217 -0
  170. package/lib/azure-sreagent/test/sre-agent.integ.d.ts +9 -0
  171. package/lib/azure-sreagent/test/sre-agent.integ.js +78 -0
  172. package/lib/azure-sreagent/test/sre-agent.spec.d.ts +4 -0
  173. package/lib/azure-sreagent/test/sre-agent.spec.js +216 -0
  174. package/lib/azure-staticwebapp/index.d.ts +1 -0
  175. package/lib/azure-staticwebapp/index.js +18 -0
  176. package/lib/azure-staticwebapp/lib/index.d.ts +2 -0
  177. package/lib/azure-staticwebapp/lib/index.js +19 -0
  178. package/lib/azure-staticwebapp/lib/static-web-app-schemas.d.ts +40 -0
  179. package/lib/azure-staticwebapp/lib/static-web-app-schemas.js +236 -0
  180. package/lib/azure-staticwebapp/lib/static-web-app.d.ts +242 -0
  181. package/lib/azure-staticwebapp/lib/static-web-app.js +232 -0
  182. package/lib/azure-staticwebapp/test/static-web-app.integ.d.ts +9 -0
  183. package/lib/azure-staticwebapp/test/static-web-app.integ.js +76 -0
  184. package/lib/azure-staticwebapp/test/static-web-app.spec.d.ts +15 -0
  185. package/lib/azure-staticwebapp/test/static-web-app.spec.js +293 -0
  186. package/lib/azure-storageaccount/lib/storage-account.js +1 -1
  187. package/lib/azure-storageblobcontainer/index.d.ts +1 -0
  188. package/lib/azure-storageblobcontainer/index.js +18 -0
  189. package/lib/azure-storageblobcontainer/lib/index.d.ts +2 -0
  190. package/lib/azure-storageblobcontainer/lib/index.js +19 -0
  191. package/lib/azure-storageblobcontainer/lib/storage-blob-container-schemas.d.ts +5 -0
  192. package/lib/azure-storageblobcontainer/lib/storage-blob-container-schemas.js +108 -0
  193. package/lib/azure-storageblobcontainer/lib/storage-blob-container.d.ts +37 -0
  194. package/lib/azure-storageblobcontainer/lib/storage-blob-container.js +63 -0
  195. package/lib/azure-storageblobcontainer/test/storage-blob-container.integ.d.ts +1 -0
  196. package/lib/azure-storageblobcontainer/test/storage-blob-container.integ.js +60 -0
  197. package/lib/azure-storageblobcontainer/test/storage-blob-container.spec.d.ts +1 -0
  198. package/lib/azure-storageblobcontainer/test/storage-blob-container.spec.js +172 -0
  199. package/lib/azure-subnet/lib/subnet.js +1 -1
  200. package/lib/azure-userassignedidentity/index.d.ts +1 -0
  201. package/lib/azure-userassignedidentity/index.js +18 -0
  202. package/lib/azure-userassignedidentity/lib/index.d.ts +2 -0
  203. package/lib/azure-userassignedidentity/lib/index.js +19 -0
  204. package/lib/azure-userassignedidentity/lib/user-assigned-identity-schemas.d.ts +8 -0
  205. package/lib/azure-userassignedidentity/lib/user-assigned-identity-schemas.js +107 -0
  206. package/lib/azure-userassignedidentity/lib/user-assigned-identity.d.ts +37 -0
  207. package/lib/azure-userassignedidentity/lib/user-assigned-identity.js +85 -0
  208. package/lib/azure-userassignedidentity/test/user-assigned-identity.integ.d.ts +1 -0
  209. package/lib/azure-userassignedidentity/test/user-assigned-identity.integ.js +64 -0
  210. package/lib/azure-userassignedidentity/test/user-assigned-identity.spec.d.ts +1 -0
  211. package/lib/azure-userassignedidentity/test/user-assigned-identity.spec.js +241 -0
  212. package/lib/azure-virtualmachine/lib/virtual-machine.js +1 -1
  213. package/lib/azure-virtualnetwork/lib/virtual-network.js +1 -1
  214. package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.js +1 -1
  215. package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.js +1 -1
  216. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +1 -1
  217. package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.js +1 -1
  218. package/lib/azure-virtualnetworkmanager/lib/ipam-pool.js +1 -1
  219. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +1 -1
  220. package/lib/azure-virtualnetworkmanager/lib/network-group.js +1 -1
  221. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +1 -1
  222. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +1 -1
  223. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +1 -1
  224. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +1 -1
  225. package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +66 -1
  226. package/lib/azure-vmss/lib/virtual-machine-scale-set.js +141 -2
  227. package/lib/azure-vmss/lib/vmss-schemas.d.ts +195 -0
  228. package/lib/azure-vmss/lib/vmss-schemas.js +33 -1
  229. package/lib/azure-vmss/test/virtual-machine-scale-set.spec.js +463 -1
  230. package/lib/core-azure/lib/azapi/azapi-resource.js +2 -2
  231. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +2 -2
  232. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +5 -5
  233. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +1 -1
  234. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +5 -5
  235. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +3 -3
  236. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +3 -3
  237. package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +1 -1
  238. package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
  239. package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
  240. package/lib/index.d.ts +39 -0
  241. package/lib/index.js +41 -2
  242. package/lib/testing/index.js +20 -3
  243. package/lib/testing/lib/cleanup.js +1 -1
  244. package/lib/testing/lib/metadata.js +12 -4
  245. package/lib/testing/lib/naming.js +57 -1
  246. package/package.json +1 -1
  247. package/scripts/azure-version-updater/create-issue.ts +189 -0
  248. package/scripts/azure-version-updater/discover.ts +382 -0
  249. package/scripts/azure-version-updater/spec-mapping.ts +164 -0
  250. package/scripts/azure-version-updater/tsconfig.json +11 -0
package/README.md CHANGED
@@ -36,6 +36,7 @@ With AZAPI L2 Constructs, you get the following benefits:
36
36
  | [Virtual Machines](./src/azure-virtualmachine/README.md) | 2024-07-01, 2024-11-01, 2025-04-01 | ✅ Built-in | ✅ Available |
37
37
  | [AKS Clusters](./src/azure-aks/README.md) | 2025-05-01, 2025-07-01, 2025-08-01 | ✅ Built-in | ✅ Available |
38
38
  | [Virtual Machine Scale Sets](./src/azure-vmss/README.md) | 2025-01-02, 2025-02-01, 2025-04-01 | ✅ Built-in | ✅ Available |
39
+ | [Static Web Apps](./src/azure-staticwebapp/README.md) | 2022-03-01, 2023-12-01, 2024-04-01 | ❌ Not yet | ✅ Available |
39
40
 
40
41
  ### Networking
41
42
 
@@ -55,6 +56,7 @@ With AZAPI L2 Constructs, you get the following benefits:
55
56
  | [Metric Alerts](./src/azure-metricalert/README.md) | 2018-03-01 | ✅ Available |
56
57
  | [Activity Log Alerts](./src/azure-activitylogalert/README.md) | 2020-10-01 | ✅ Available |
57
58
  | [Diagnostic Settings](./src/azure-diagnosticsettings/README.md) | 2016-09-01, 2021-05-01-preview | ✅ Available |
59
+ | [Application Insights](./src/azure-applicationinsights/README.md) | 2020-02-02 | ✅ Available |
58
60
 
59
61
  ### Foundation
60
62
 
@@ -62,6 +64,19 @@ With AZAPI L2 Constructs, you get the following benefits:
62
64
  |---------|-------------|--------|
63
65
  | [Resource Groups](./src/azure-resourcegroup/README.md) | 2024-11-01, 2025-01-01, 2025-03-01 | ✅ Available |
64
66
  | [Storage Accounts](./src/azure-storageaccount/README.md) | 2023-01-01, 2023-05-01, 2024-01-01 | ✅ Available |
67
+ | [Key Vaults](./src/azure-keyvault/README.md) | 2023-02-01, 2023-07-01, 2024-11-01 | ✅ Available |
68
+
69
+ ### Database
70
+
71
+ | Service | API Versions | Status |
72
+ |---------|-------------|--------|
73
+ | [Cosmos DB Accounts](./src/azure-cosmosdb/README.md) | 2023-11-15, 2024-05-15, 2024-08-15 | ✅ Available |
74
+
75
+ ### Messaging & Integration
76
+
77
+ | Service | API Versions | Status |
78
+ |---------|-------------|--------|
79
+ | [Event Hubs](./src/azure-eventhub/README.md) | 2021-11-01, 2024-01-01 | ✅ Available |
65
80
 
66
81
  ## Quick Example
67
82
 
@@ -0,0 +1,271 @@
1
+ # Design: Monthly Azure API Version Update Pipeline
2
+
3
+ ## Context
4
+
5
+ This project maintains ~31 Azure AZAPI constructs, each with hand-curated `*-schemas.ts` files defining `VersionConfig[]` arrays for supported API versions. Today, discovering and adding new Azure API versions is entirely manual. This pipeline automates that process end-to-end: discover new stable versions monthly, generate accurate schema updates using AI, run tests, and create a PR.
6
+
7
+ ---
8
+
9
+ ## Architecture Overview
10
+
11
+ ```
12
+ ┌─────────────────────────────────────────────────────────────┐
13
+ │ Monthly Cron (15th of each month) │
14
+ │ .github/workflows/azure-version-update.yml │
15
+ ├─────────────────────────────────────────────────────────────┤
16
+ │ │
17
+ │ Job 1: discover │
18
+ │ ├─ Scan src/azure-*/lib/*-schemas.ts for resource types │
19
+ │ ├─ Query ARM API for available stable versions │
20
+ │ ├─ Diff against known versions │
21
+ │ └─ Output version-manifest.json │
22
+ │ │
23
+ │ Job 2: generate (via GitHub Copilot Coding Agent) │
24
+ │ ├─ Create a GitHub Issue with version update instructions │
25
+ │ ├─ Assign to Copilot Coding Agent │
26
+ │ ├─ Agent fetches Azure REST API specs from GitHub │
27
+ │ ├─ Agent generates new VersionConfig + ApiSchema entries │
28
+ │ ├─ Agent updates defaultVersion() in construct files │
29
+ │ ├─ Agent updates unit test version assertions │
30
+ │ └─ Agent creates a PR with all changes │
31
+ │ │
32
+ │ Job 3: test (triggered by PR creation) │
33
+ │ ├─ Existing build.yml runs on the PR │
34
+ │ ├─ Unit tests via npx projen build │
35
+ │ ├─ Integration tests (continue-on-error) │
36
+ │ └─ Results visible on the PR │
37
+ │ │
38
+ └─────────────────────────────────────────────────────────────┘
39
+ ```
40
+
41
+ ---
42
+
43
+ ## Approach: GitHub Copilot Coding Agent
44
+
45
+ Instead of writing custom code generation scripts that call Claude via GitHub Models API, we leverage the **GitHub Copilot Coding Agent** -- GitHub's built-in autonomous coding agent that can be assigned to issues and creates PRs autonomously.
46
+
47
+ ### Why Copilot Coding Agent?
48
+
49
+ | Aspect | Custom Scripts + GitHub Models API | Copilot Coding Agent |
50
+ |--------|-----------------------------------|----------------------|
51
+ | Code generation | Custom TypeScript scripts with regex/template logic | Agent reads codebase, understands patterns, generates code |
52
+ | Maintenance burden | Must maintain spec-mapping, prompt engineering, file insertion logic | Zero maintenance -- agent adapts to project changes |
53
+ | Test execution | Custom workflow jobs for running tests | Agent can run tests itself and iterate on failures |
54
+ | PR creation | peter-evans/create-pull-request | Agent creates PR natively |
55
+ | Edge cases | Must handle every schema variation in code | Agent handles variations naturally via codebase understanding |
56
+ | New secret required | GITHUB_MODELS_TOKEN (PAT with models:read) | None -- uses existing Copilot license |
57
+ | Self-healing | Fails on unexpected schema patterns | Agent can read errors and fix its own code |
58
+
59
+ ### How It Works
60
+
61
+ 1. **Discovery script** (`scripts/azure-version-updater/discover.ts`) runs on a monthly cron and produces a `version-manifest.json` listing new API versions per construct
62
+ 2. **Workflow creates a GitHub Issue** with structured instructions for the Copilot Coding Agent, including:
63
+ - The version manifest (which constructs need updates, which new versions)
64
+ - Links to Azure REST API spec files on GitHub for each new version
65
+ - Instructions referencing the project's schema conventions and a reference file
66
+ 3. **Copilot Coding Agent is assigned** to the issue via `gh issue edit --add-assignee @copilot`
67
+ 4. **The agent autonomously**:
68
+ - Reads the existing schema files to understand the pattern
69
+ - Fetches Azure REST API specs to understand property changes
70
+ - Generates new `ApiSchema` and `VersionConfig` entries
71
+ - Updates `defaultVersion()` in construct files
72
+ - Updates unit tests
73
+ - Creates a PR
74
+ 5. **Existing build.yml** runs on the PR (unit tests, lint, build)
75
+ 6. **A separate integration test job** can be triggered on the PR
76
+
77
+ ---
78
+
79
+ ## Files to Create
80
+
81
+ ### 1. `scripts/azure-version-updater/discover.ts`
82
+
83
+ **Purpose**: Scan constructs, query Azure ARM, produce a manifest of new versions.
84
+
85
+ **Logic**:
86
+ 1. Glob `src/azure-*/lib/*-schemas.ts`
87
+ 2. For each file, regex-extract:
88
+ - Resource type constant: `export const \w+_TYPE\s*=\s*"(.+)"`
89
+ - Schema prefix: `export const (\w+)_TYPE`
90
+ - Known versions: all `version:\s*"(\d{4}-\d{2}-\d{2})"` strings
91
+ 3. Dedupe by namespace, batch ARM API calls:
92
+ `GET https://management.azure.com/providers/{namespace}?api-version=2024-09-01`
93
+ 4. For each resource type, filter to stable versions (no `-preview`), find versions newer than the latest known
94
+ 5. Write `version-manifest.json`:
95
+
96
+ ```json
97
+ {
98
+ "updates": [
99
+ {
100
+ "schemaFile": "src/azure-resourcegroup/lib/resource-group-schemas.ts",
101
+ "constructFile": "src/azure-resourcegroup/lib/resource-group.ts",
102
+ "testFile": "src/azure-resourcegroup/test/resource-group.spec.ts",
103
+ "resourceType": "Microsoft.Resources/resourceGroups",
104
+ "namespace": "Microsoft.Resources",
105
+ "resourceTypeName": "resourceGroups",
106
+ "prefix": "RESOURCE_GROUP",
107
+ "knownVersions": ["2024-11-01", "2025-01-01", "2025-03-01"],
108
+ "newVersions": ["2025-05-01", "2025-07-01"],
109
+ "specUrls": {
110
+ "2025-05-01": "https://github.com/Azure/azure-rest-api-specs/tree/main/specification/resources/resource-manager/Microsoft.Resources/stable/2025-05-01",
111
+ "2025-07-01": "https://github.com/Azure/azure-rest-api-specs/tree/main/specification/resources/resource-manager/Microsoft.Resources/stable/2025-07-01"
112
+ }
113
+ }
114
+ ],
115
+ "summary": { "totalConstructs": 31, "constructsWithUpdates": 3 }
116
+ }
117
+ ```
118
+
119
+ ### 2. `scripts/azure-version-updater/spec-mapping.ts`
120
+
121
+ **Purpose**: Map Azure resource types to their REST API spec paths on GitHub.
122
+
123
+ Contains:
124
+ - `SPEC_PATH_MAP`: explicit mapping from resource type to spec directory path
125
+ - Convention-based fallback for unmapped types
126
+ - Helper to build spec URLs for the issue body
127
+
128
+ ### 3. `.github/workflows/azure-version-update.yml`
129
+
130
+ **Purpose**: Monthly cron workflow that discovers versions and creates a Copilot Agent issue.
131
+
132
+ ```yaml
133
+ name: azure-version-update
134
+ on:
135
+ workflow_dispatch: {}
136
+ schedule:
137
+ - cron: "0 10 15 * *" # 15th of month, 10:00 UTC
138
+
139
+ jobs:
140
+ discover:
141
+ name: Discover New API Versions
142
+ runs-on: ubuntu-latest
143
+ environment: Build
144
+ permissions:
145
+ contents: read
146
+ id-token: write
147
+ issues: write
148
+ steps:
149
+ - uses: actions/checkout@v4
150
+ - uses: actions/setup-node@v4
151
+ with: { node-version: "20.16.0" }
152
+ - uses: azure/login@v2
153
+ with:
154
+ subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
155
+ tenant-id: ${{ secrets.AZURE_TENANT_ID }}
156
+ client-id: ${{ secrets.AZURE_CLIENT_ID }}
157
+ - run: yarn install --check-files --frozen-lockfile
158
+ - name: Discover versions
159
+ id: discover
160
+ run: |
161
+ npx ts-node scripts/azure-version-updater/discover.ts > version-manifest.json
162
+ echo "has_updates=$(jq 'if .updates | length > 0 then "true" else "false" end' -r version-manifest.json)" >> "$GITHUB_OUTPUT"
163
+ - name: Create Copilot Agent issue
164
+ if: steps.discover.outputs.has_updates == 'true'
165
+ env:
166
+ GH_TOKEN: ${{ secrets.PROJEN_GITHUB_TOKEN }}
167
+ run: |
168
+ npx ts-node scripts/azure-version-updater/create-issue.ts version-manifest.json | \
169
+ gh issue create \
170
+ --title "feat(azure): update API versions to latest stable ($(date +%Y-%m))" \
171
+ --body-file - \
172
+ --assignee copilot
173
+ ```
174
+
175
+ ### 4. `scripts/azure-version-updater/create-issue.ts`
176
+
177
+ **Purpose**: Generate a well-structured GitHub Issue body that gives the Copilot Coding Agent all the context it needs.
178
+
179
+ The issue body will include:
180
+ - Summary of which constructs have new versions
181
+ - For each construct:
182
+ - The schema file path
183
+ - The construct file path
184
+ - The test file path
185
+ - Current latest version and new version(s)
186
+ - Link to Azure REST API spec for the new version
187
+ - Reference to the project conventions:
188
+ - "See `src/azure-resourcegroup/lib/resource-group-schemas.ts` as a reference for the schema pattern"
189
+ - "See `src/core-azure/lib/version-manager/interfaces/version-interfaces.ts` for the interfaces"
190
+ - Explicit instructions:
191
+ - "For each new version, create a new `ApiSchema` const and `VersionConfig` const following the naming convention `{PREFIX}_SCHEMA_{VERSION_UNDERSCORED}`"
192
+ - "Add the new version to the `ALL_*_VERSIONS` array"
193
+ - "Update `defaultVersion()` to return the newest version"
194
+ - "Update unit tests to include the new version in version list assertions and update latest version expectations"
195
+ - "Fetch the Azure REST API OpenAPI spec to identify any new or changed properties"
196
+ - "Run `npm test` to verify unit tests pass"
197
+
198
+ ### 5. `.github/copilot-instructions.md` (update)
199
+
200
+ Add project-specific instructions for the Copilot Agent to understand the schema conventions, file structure, and coding patterns. This file is automatically read by Copilot when working on the repo.
201
+
202
+ ---
203
+
204
+ ## Secrets Required
205
+
206
+ | Secret | Purpose | Status |
207
+ |--------|---------|--------|
208
+ | `AZURE_SUBSCRIPTION_ID` | ARM API calls for version discovery | Already exists |
209
+ | `AZURE_TENANT_ID` | Azure OIDC auth | Already exists |
210
+ | `AZURE_CLIENT_ID` | Azure OIDC auth | Already exists |
211
+ | `PROJEN_GITHUB_TOKEN` | Issue creation + Copilot Agent trigger | Already exists |
212
+
213
+ No new secrets needed -- the Copilot Coding Agent uses the organization's existing Copilot license.
214
+
215
+ ---
216
+
217
+ ## Copilot Agent Issue Template
218
+
219
+ ```markdown
220
+ ## Azure API Version Update - {month} {year}
221
+
222
+ The following constructs have new stable Azure API versions available.
223
+
224
+ ### Instructions
225
+
226
+ For each construct listed below:
227
+ 1. Open the Azure REST API spec link to understand property changes
228
+ 2. Read the existing schema file to understand the pattern
229
+ 3. Create new `ApiSchema` and `VersionConfig` entries following the exact naming convention
230
+ 4. Add the new entries to the `ALL_*_VERSIONS` array
231
+ 5. Update `defaultVersion()` in the construct file to return the newest version
232
+ 6. Update unit tests to include the new version
233
+ 7. Run `npm test` to verify
234
+
235
+ **Reference files:**
236
+ - Schema pattern: `src/azure-resourcegroup/lib/resource-group-schemas.ts`
237
+ - Interfaces: `src/core-azure/lib/version-manager/interfaces/version-interfaces.ts`
238
+
239
+ ### Updates
240
+
241
+ #### 1. Resource Group (`Microsoft.Resources/resourceGroups`)
242
+ - **Schema file**: `src/azure-resourcegroup/lib/resource-group-schemas.ts`
243
+ - **Construct file**: `src/azure-resourcegroup/lib/resource-group.ts`
244
+ - **Test file**: `src/azure-resourcegroup/test/resource-group.spec.ts`
245
+ - **Current latest**: `2025-03-01`
246
+ - **New versions**: `2025-05-01`
247
+ - **Azure REST API spec**: https://github.com/Azure/azure-rest-api-specs/tree/main/specification/resources/resource-manager/Microsoft.Resources/stable/2025-05-01
248
+
249
+ #### 2. ...
250
+ ```
251
+
252
+ ---
253
+
254
+ ## Verification
255
+
256
+ 1. **Local testing of discover.ts**: `az login && npx ts-node scripts/azure-version-updater/discover.ts`
257
+ 2. **Issue creation dry run**: Review generated issue body before assigning to Copilot
258
+ 3. **Copilot Agent behavior**: Monitor the agent's PR for correctness
259
+ 4. **CI validation**: Existing build.yml runs unit tests on the PR
260
+ 5. **Manual review**: A human reviews the PR before merging
261
+
262
+ ---
263
+
264
+ ## Implementation Order
265
+
266
+ 1. `scripts/azure-version-updater/spec-mapping.ts` -- resource type to spec path mapping
267
+ 2. `scripts/azure-version-updater/discover.ts` -- version discovery
268
+ 3. `scripts/azure-version-updater/create-issue.ts` -- issue body generation
269
+ 4. `.github/workflows/azure-version-update.yml` -- workflow
270
+ 5. `.github/copilot-instructions.md` -- Copilot Agent context
271
+ 6. Test locally with `workflow_dispatch`
@@ -168,7 +168,7 @@ class ActionGroup extends azapi_resource_1.AzapiResource {
168
168
  }
169
169
  exports.ActionGroup = ActionGroup;
170
170
  _a = JSII_RTTI_SYMBOL_1;
171
- ActionGroup[_a] = { fqn: "@microsoft/terraform-cdk-constructs.ActionGroup", version: "2.2.0" };
171
+ ActionGroup[_a] = { fqn: "@microsoft/terraform-cdk-constructs.ActionGroup", version: "2.5.0" };
172
172
  (() => {
173
173
  azapi_resource_1.AzapiResource.registerSchemas(action_group_schemas_1.ACTION_GROUP_TYPE, action_group_schemas_1.ALL_ACTION_GROUP_VERSIONS);
174
174
  })();
@@ -179,7 +179,7 @@ class ActivityLogAlert extends azapi_resource_1.AzapiResource {
179
179
  }
180
180
  exports.ActivityLogAlert = ActivityLogAlert;
181
181
  _a = JSII_RTTI_SYMBOL_1;
182
- ActivityLogAlert[_a] = { fqn: "@microsoft/terraform-cdk-constructs.ActivityLogAlert", version: "2.2.0" };
182
+ ActivityLogAlert[_a] = { fqn: "@microsoft/terraform-cdk-constructs.ActivityLogAlert", version: "2.5.0" };
183
183
  (() => {
184
184
  azapi_resource_1.AzapiResource.registerSchemas(activity_log_alert_schemas_1.ACTIVITY_LOG_ALERT_TYPE, activity_log_alert_schemas_1.ALL_ACTIVITY_LOG_ALERT_VERSIONS);
185
185
  })();
@@ -459,7 +459,7 @@ class AksCluster extends azapi_resource_1.AzapiResource {
459
459
  }
460
460
  exports.AksCluster = AksCluster;
461
461
  _a = JSII_RTTI_SYMBOL_1;
462
- AksCluster[_a] = { fqn: "@microsoft/terraform-cdk-constructs.AksCluster", version: "2.2.0" };
462
+ AksCluster[_a] = { fqn: "@microsoft/terraform-cdk-constructs.AksCluster", version: "2.5.0" };
463
463
  (() => {
464
464
  azapi_resource_1.AzapiResource.registerSchemas(aks_cluster_schemas_1.AKS_CLUSTER_TYPE, aks_cluster_schemas_1.ALL_AKS_CLUSTER_VERSIONS);
465
465
  })();
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Azure Application Insights module
3
+ *
4
+ * This module provides constructs for creating and managing Azure Application
5
+ * Insights components.
6
+ */
7
+ export * from "./lib";
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /**
3
+ * Azure Application Insights module
4
+ *
5
+ * This module provides constructs for creating and managing Azure Application
6
+ * Insights components.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
22
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ __exportStar(require("./lib"), exports);
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXp1cmUtYXBwbGljYXRpb25pbnNpZ2h0cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7O0dBS0c7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCx3Q0FBc0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEF6dXJlIEFwcGxpY2F0aW9uIEluc2lnaHRzIG1vZHVsZVxuICpcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGNvbnN0cnVjdHMgZm9yIGNyZWF0aW5nIGFuZCBtYW5hZ2luZyBBenVyZSBBcHBsaWNhdGlvblxuICogSW5zaWdodHMgY29tcG9uZW50cy5cbiAqL1xuXG5leHBvcnQgKiBmcm9tIFwiLi9saWJcIjtcbiJdfQ==
@@ -0,0 +1,29 @@
1
+ /**
2
+ * API schemas for Azure Application Insights across all supported versions
3
+ *
4
+ * This file defines the complete API schemas for Microsoft.Insights/components
5
+ * across all supported API versions. The schemas are used by the AzapiResource
6
+ * framework for validation, transformation, and version management.
7
+ */
8
+ import { ApiSchema, VersionConfig } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
9
+ /**
10
+ * API Schema for Application Insights version 2020-02-02
11
+ *
12
+ * This is the latest stable API version for workspace-based Application Insights.
13
+ * Workspace-based components require a Log Analytics workspace and replace the
14
+ * classic Application Insights resource (which was retired on Feb 29, 2024).
15
+ */
16
+ export declare const APPLICATION_INSIGHTS_SCHEMA_2020_02_02: ApiSchema;
17
+ /**
18
+ * Version configuration for Application Insights 2020-02-02
19
+ */
20
+ export declare const APPLICATION_INSIGHTS_VERSION_2020_02_02: VersionConfig;
21
+ /**
22
+ * All supported Application Insights versions for registration
23
+ * Ordered with latest stable version first
24
+ */
25
+ export declare const ALL_APPLICATION_INSIGHTS_VERSIONS: VersionConfig[];
26
+ /**
27
+ * Resource type constant
28
+ */
29
+ export declare const APPLICATION_INSIGHTS_TYPE = "Microsoft.Insights/components";
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ /**
3
+ * API schemas for Azure Application Insights across all supported versions
4
+ *
5
+ * This file defines the complete API schemas for Microsoft.Insights/components
6
+ * across all supported API versions. The schemas are used by the AzapiResource
7
+ * framework for validation, transformation, and version management.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.APPLICATION_INSIGHTS_TYPE = exports.ALL_APPLICATION_INSIGHTS_VERSIONS = exports.APPLICATION_INSIGHTS_VERSION_2020_02_02 = exports.APPLICATION_INSIGHTS_SCHEMA_2020_02_02 = 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 Application Insights versions
17
+ */
18
+ const COMMON_APPLICATION_INSIGHTS_PROPERTIES = {
19
+ name: {
20
+ dataType: version_interfaces_1.PropertyType.STRING,
21
+ required: true,
22
+ description: "Name of the Application Insights component",
23
+ validation: [
24
+ {
25
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
26
+ message: "Name is required",
27
+ },
28
+ {
29
+ ruleType: version_interfaces_1.ValidationRuleType.PATTERN_MATCH,
30
+ value: "^[a-zA-Z0-9][a-zA-Z0-9-_.()]{0,258}[a-zA-Z0-9_()]$",
31
+ message: "Application Insights name must be 1-260 characters and contain only letters, numbers, hyphens, underscores, periods, and parentheses",
32
+ },
33
+ ],
34
+ },
35
+ location: {
36
+ dataType: version_interfaces_1.PropertyType.STRING,
37
+ required: true,
38
+ description: "Azure region where the Application Insights component will be created",
39
+ },
40
+ applicationType: {
41
+ dataType: version_interfaces_1.PropertyType.STRING,
42
+ required: true,
43
+ description: "Type of application being monitored (web, java, other, etc.)",
44
+ defaultValue: "web",
45
+ },
46
+ workspaceResourceId: {
47
+ dataType: version_interfaces_1.PropertyType.STRING,
48
+ required: true,
49
+ description: "Resource ID of the Log Analytics workspace to associate with this workspace-based Application Insights component",
50
+ },
51
+ retentionInDays: {
52
+ dataType: version_interfaces_1.PropertyType.NUMBER,
53
+ required: false,
54
+ defaultValue: 90,
55
+ description: "Data retention in days. Allowed values: 30, 60, 90, 120, 180, 270, 365, 550, 730. Default is 90.",
56
+ },
57
+ samplingPercentage: {
58
+ dataType: version_interfaces_1.PropertyType.NUMBER,
59
+ required: false,
60
+ description: "Telemetry sampling percentage (0-100)",
61
+ },
62
+ disableIpMasking: {
63
+ dataType: version_interfaces_1.PropertyType.BOOLEAN,
64
+ required: false,
65
+ description: "Whether IP address masking is disabled",
66
+ },
67
+ publicNetworkAccessForIngestion: {
68
+ dataType: version_interfaces_1.PropertyType.STRING,
69
+ required: false,
70
+ description: "Public network access for data ingestion: Enabled or Disabled",
71
+ },
72
+ publicNetworkAccessForQuery: {
73
+ dataType: version_interfaces_1.PropertyType.STRING,
74
+ required: false,
75
+ description: "Public network access for queries: Enabled or Disabled",
76
+ },
77
+ disableLocalAuth: {
78
+ dataType: version_interfaces_1.PropertyType.BOOLEAN,
79
+ required: false,
80
+ description: "Whether local (key-based) authentication is disabled",
81
+ },
82
+ forceCustomerStorageForProfiler: {
83
+ dataType: version_interfaces_1.PropertyType.BOOLEAN,
84
+ required: false,
85
+ description: "Force users to create their own storage account for profiler and debugger",
86
+ },
87
+ };
88
+ // =============================================================================
89
+ // VERSION-SPECIFIC SCHEMAS
90
+ // =============================================================================
91
+ /**
92
+ * API Schema for Application Insights version 2020-02-02
93
+ *
94
+ * This is the latest stable API version for workspace-based Application Insights.
95
+ * Workspace-based components require a Log Analytics workspace and replace the
96
+ * classic Application Insights resource (which was retired on Feb 29, 2024).
97
+ */
98
+ exports.APPLICATION_INSIGHTS_SCHEMA_2020_02_02 = {
99
+ resourceType: "Microsoft.Insights/components",
100
+ version: "2020-02-02",
101
+ properties: {
102
+ ...COMMON_APPLICATION_INSIGHTS_PROPERTIES,
103
+ },
104
+ required: ["name", "location", "applicationType", "workspaceResourceId"],
105
+ optional: [
106
+ "retentionInDays",
107
+ "samplingPercentage",
108
+ "disableIpMasking",
109
+ "publicNetworkAccessForIngestion",
110
+ "publicNetworkAccessForQuery",
111
+ "disableLocalAuth",
112
+ "forceCustomerStorageForProfiler",
113
+ ],
114
+ deprecated: [],
115
+ transformationRules: {},
116
+ validationRules: [
117
+ {
118
+ property: "name",
119
+ rules: [
120
+ {
121
+ ruleType: version_interfaces_1.ValidationRuleType.REQUIRED,
122
+ message: "Name is required for Application Insights",
123
+ },
124
+ ],
125
+ },
126
+ ],
127
+ };
128
+ // =============================================================================
129
+ // VERSION CONFIGURATIONS
130
+ // =============================================================================
131
+ /**
132
+ * Version configuration for Application Insights 2020-02-02
133
+ */
134
+ exports.APPLICATION_INSIGHTS_VERSION_2020_02_02 = {
135
+ version: "2020-02-02",
136
+ schema: exports.APPLICATION_INSIGHTS_SCHEMA_2020_02_02,
137
+ supportLevel: version_interfaces_1.VersionSupportLevel.ACTIVE,
138
+ releaseDate: "2020-02-02",
139
+ deprecationDate: undefined,
140
+ sunsetDate: undefined,
141
+ breakingChanges: [],
142
+ migrationGuide: "/docs/application-insights/migration-2020-02-02",
143
+ changeLog: [
144
+ {
145
+ changeType: "updated",
146
+ description: "Latest stable API version for workspace-based Application Insights",
147
+ breaking: false,
148
+ },
149
+ ],
150
+ };
151
+ /**
152
+ * All supported Application Insights versions for registration
153
+ * Ordered with latest stable version first
154
+ */
155
+ exports.ALL_APPLICATION_INSIGHTS_VERSIONS = [
156
+ exports.APPLICATION_INSIGHTS_VERSION_2020_02_02,
157
+ ];
158
+ /**
159
+ * Resource type constant
160
+ */
161
+ exports.APPLICATION_INSIGHTS_TYPE = "Microsoft.Insights/components";
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24taW5zaWdodHMtc2NoZW1hcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1hcHBsaWNhdGlvbmluc2lnaHRzL2xpYi9hcHBsaWNhdGlvbi1pbnNpZ2h0cy1zY2hlbWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUVILDJHQU80RTtBQUU1RSxnRkFBZ0Y7QUFDaEYsOEJBQThCO0FBQzlCLGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQU0sc0NBQXNDLEdBRXhDO0lBQ0YsSUFBSSxFQUFFO1FBQ0osUUFBUSxFQUFFLGlDQUFZLENBQUMsTUFBTTtRQUM3QixRQUFRLEVBQUUsSUFBSTtRQUNkLFdBQVcsRUFBRSw0Q0FBNEM7UUFDekQsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLFFBQVE7Z0JBQ3JDLE9BQU8sRUFBRSxrQkFBa0I7YUFDNUI7WUFDRDtnQkFDRSxRQUFRLEVBQUUsdUNBQWtCLENBQUMsYUFBYTtnQkFDMUMsS0FBSyxFQUFFLG9EQUFvRDtnQkFDM0QsT0FBTyxFQUNMLHNJQUFzSTthQUN6STtTQUNGO0tBQ0Y7SUFDRCxRQUFRLEVBQUU7UUFDUixRQUFRLEVBQUUsaUNBQVksQ0FBQyxNQUFNO1FBQzdCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsV0FBVyxFQUNULHVFQUF1RTtLQUMxRTtJQUNELGVBQWUsRUFBRTtRQUNmLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLElBQUk7UUFDZCxXQUFXLEVBQUUsOERBQThEO1FBQzNFLFlBQVksRUFBRSxLQUFLO0tBQ3BCO0lBQ0QsbUJBQW1CLEVBQUU7UUFDbkIsUUFBUSxFQUFFLGlDQUFZLENBQUMsTUFBTTtRQUM3QixRQUFRLEVBQUUsSUFBSTtRQUNkLFdBQVcsRUFDVCxrSEFBa0g7S0FDckg7SUFDRCxlQUFlLEVBQUU7UUFDZixRQUFRLEVBQUUsaUNBQVksQ0FBQyxNQUFNO1FBQzdCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsWUFBWSxFQUFFLEVBQUU7UUFDaEIsV0FBVyxFQUNULGtHQUFrRztLQUNyRztJQUNELGtCQUFrQixFQUFFO1FBQ2xCLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLEtBQUs7UUFDZixXQUFXLEVBQUUsdUNBQXVDO0tBQ3JEO0lBQ0QsZ0JBQWdCLEVBQUU7UUFDaEIsUUFBUSxFQUFFLGlDQUFZLENBQUMsT0FBTztRQUM5QixRQUFRLEVBQUUsS0FBSztRQUNmLFdBQVcsRUFBRSx3Q0FBd0M7S0FDdEQ7SUFDRCwrQkFBK0IsRUFBRTtRQUMvQixRQUFRLEVBQUUsaUNBQVksQ0FBQyxNQUFNO1FBQzdCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsV0FBVyxFQUNULCtEQUErRDtLQUNsRTtJQUNELDJCQUEyQixFQUFFO1FBQzNCLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLEtBQUs7UUFDZixXQUFXLEVBQUUsd0RBQXdEO0tBQ3RFO0lBQ0QsZ0JBQWdCLEVBQUU7UUFDaEIsUUFBUSxFQUFFLGlDQUFZLENBQUMsT0FBTztRQUM5QixRQUFRLEVBQUUsS0FBSztRQUNmLFdBQVcsRUFBRSxzREFBc0Q7S0FDcEU7SUFDRCwrQkFBK0IsRUFBRTtRQUMvQixRQUFRLEVBQUUsaUNBQVksQ0FBQyxPQUFPO1FBQzlCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsV0FBVyxFQUNULDJFQUEyRTtLQUM5RTtDQUNGLENBQUM7QUFFRixnRkFBZ0Y7QUFDaEYsMkJBQTJCO0FBQzNCLGdGQUFnRjtBQUVoRjs7Ozs7O0dBTUc7QUFDVSxRQUFBLHNDQUFzQyxHQUFjO0lBQy9ELFlBQVksRUFBRSwrQkFBK0I7SUFDN0MsT0FBTyxFQUFFLFlBQVk7SUFDckIsVUFBVSxFQUFFO1FBQ1YsR0FBRyxzQ0FBc0M7S0FDMUM7SUFDRCxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLHFCQUFxQixDQUFDO0lBQ3hFLFFBQVEsRUFBRTtRQUNSLGlCQUFpQjtRQUNqQixvQkFBb0I7UUFDcEIsa0JBQWtCO1FBQ2xCLGlDQUFpQztRQUNqQyw2QkFBNkI7UUFDN0Isa0JBQWtCO1FBQ2xCLGlDQUFpQztLQUNsQztJQUNELFVBQVUsRUFBRSxFQUFFO0lBQ2QsbUJBQW1CLEVBQUUsRUFBRTtJQUN2QixlQUFlLEVBQUU7UUFDZjtZQUNFLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLEtBQUssRUFBRTtnQkFDTDtvQkFDRSxRQUFRLEVBQUUsdUNBQWtCLENBQUMsUUFBUTtvQkFDckMsT0FBTyxFQUFFLDJDQUEyQztpQkFDckQ7YUFDRjtTQUNGO0tBQ0Y7Q0FDRixDQUFDO0FBRUYsZ0ZBQWdGO0FBQ2hGLHlCQUF5QjtBQUN6QixnRkFBZ0Y7QUFFaEY7O0dBRUc7QUFDVSxRQUFBLHVDQUF1QyxHQUFrQjtJQUNwRSxPQUFPLEVBQUUsWUFBWTtJQUNyQixNQUFNLEVBQUUsOENBQXNDO0lBQzlDLFlBQVksRUFBRSx3Q0FBbUIsQ0FBQyxNQUFNO0lBQ3hDLFdBQVcsRUFBRSxZQUFZO0lBQ3pCLGVBQWUsRUFBRSxTQUFTO0lBQzFCLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLGVBQWUsRUFBRSxFQUFFO0lBQ25CLGNBQWMsRUFBRSxpREFBaUQ7SUFDakUsU0FBUyxFQUFFO1FBQ1Q7WUFDRSxVQUFVLEVBQUUsU0FBUztZQUNyQixXQUFXLEVBQ1Qsb0VBQW9FO1lBQ3RFLFFBQVEsRUFBRSxLQUFLO1NBQ2hCO0tBQ0Y7Q0FDRixDQUFDO0FBRUY7OztHQUdHO0FBQ1UsUUFBQSxpQ0FBaUMsR0FBb0I7SUFDaEUsK0NBQXVDO0NBQ3hDLENBQUM7QUFFRjs7R0FFRztBQUNVLFFBQUEseUJBQXlCLEdBQUcsK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEFQSSBzY2hlbWFzIGZvciBBenVyZSBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBhY3Jvc3MgYWxsIHN1cHBvcnRlZCB2ZXJzaW9uc1xuICpcbiAqIFRoaXMgZmlsZSBkZWZpbmVzIHRoZSBjb21wbGV0ZSBBUEkgc2NoZW1hcyBmb3IgTWljcm9zb2Z0Lkluc2lnaHRzL2NvbXBvbmVudHNcbiAqIGFjcm9zcyBhbGwgc3VwcG9ydGVkIEFQSSB2ZXJzaW9ucy4gVGhlIHNjaGVtYXMgYXJlIHVzZWQgYnkgdGhlIEF6YXBpUmVzb3VyY2VcbiAqIGZyYW1ld29yayBmb3IgdmFsaWRhdGlvbiwgdHJhbnNmb3JtYXRpb24sIGFuZCB2ZXJzaW9uIG1hbmFnZW1lbnQuXG4gKi9cblxuaW1wb3J0IHtcbiAgQXBpU2NoZW1hLFxuICBQcm9wZXJ0eURlZmluaXRpb24sXG4gIFByb3BlcnR5VHlwZSxcbiAgVmFsaWRhdGlvblJ1bGVUeXBlLFxuICBWZXJzaW9uQ29uZmlnLFxuICBWZXJzaW9uU3VwcG9ydExldmVsLFxufSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvdmVyc2lvbi1tYW5hZ2VyL2ludGVyZmFjZXMvdmVyc2lvbi1pbnRlcmZhY2VzXCI7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDT01NT04gUFJPUEVSVFkgREVGSU5JVElPTlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ29tbW9uIHByb3BlcnR5IGRlZmluaXRpb25zIHNoYXJlZCBhY3Jvc3MgYWxsIEFwcGxpY2F0aW9uIEluc2lnaHRzIHZlcnNpb25zXG4gKi9cbmNvbnN0IENPTU1PTl9BUFBMSUNBVElPTl9JTlNJR0hUU19QUk9QRVJUSUVTOiB7XG4gIFtrZXk6IHN0cmluZ106IFByb3BlcnR5RGVmaW5pdGlvbjtcbn0gPSB7XG4gIG5hbWU6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjogXCJOYW1lIG9mIHRoZSBBcHBsaWNhdGlvbiBJbnNpZ2h0cyBjb21wb25lbnRcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgIG1lc3NhZ2U6IFwiTmFtZSBpcyByZXF1aXJlZFwiLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5QQVRURVJOX01BVENILFxuICAgICAgICB2YWx1ZTogXCJeW2EtekEtWjAtOV1bYS16QS1aMC05LV8uKCldezAsMjU4fVthLXpBLVowLTlfKCldJFwiLFxuICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgIFwiQXBwbGljYXRpb24gSW5zaWdodHMgbmFtZSBtdXN0IGJlIDEtMjYwIGNoYXJhY3RlcnMgYW5kIGNvbnRhaW4gb25seSBsZXR0ZXJzLCBudW1iZXJzLCBoeXBoZW5zLCB1bmRlcnNjb3JlcywgcGVyaW9kcywgYW5kIHBhcmVudGhlc2VzXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGxvY2F0aW9uOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIkF6dXJlIHJlZ2lvbiB3aGVyZSB0aGUgQXBwbGljYXRpb24gSW5zaWdodHMgY29tcG9uZW50IHdpbGwgYmUgY3JlYXRlZFwiLFxuICB9LFxuICBhcHBsaWNhdGlvblR5cGU6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjogXCJUeXBlIG9mIGFwcGxpY2F0aW9uIGJlaW5nIG1vbml0b3JlZCAod2ViLCBqYXZhLCBvdGhlciwgZXRjLilcIixcbiAgICBkZWZhdWx0VmFsdWU6IFwid2ViXCIsXG4gIH0sXG4gIHdvcmtzcGFjZVJlc291cmNlSWQ6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiUmVzb3VyY2UgSUQgb2YgdGhlIExvZyBBbmFseXRpY3Mgd29ya3NwYWNlIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgd29ya3NwYWNlLWJhc2VkIEFwcGxpY2F0aW9uIEluc2lnaHRzIGNvbXBvbmVudFwiLFxuICB9LFxuICByZXRlbnRpb25JbkRheXM6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk5VTUJFUixcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVmYXVsdFZhbHVlOiA5MCxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiRGF0YSByZXRlbnRpb24gaW4gZGF5cy4gQWxsb3dlZCB2YWx1ZXM6IDMwLCA2MCwgOTAsIDEyMCwgMTgwLCAyNzAsIDM2NSwgNTUwLCA3MzAuIERlZmF1bHQgaXMgOTAuXCIsXG4gIH0sXG4gIHNhbXBsaW5nUGVyY2VudGFnZToge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuTlVNQkVSLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJUZWxlbWV0cnkgc2FtcGxpbmcgcGVyY2VudGFnZSAoMC0xMDApXCIsXG4gIH0sXG4gIGRpc2FibGVJcE1hc2tpbmc6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLkJPT0xFQU4sXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIldoZXRoZXIgSVAgYWRkcmVzcyBtYXNraW5nIGlzIGRpc2FibGVkXCIsXG4gIH0sXG4gIHB1YmxpY05ldHdvcmtBY2Nlc3NGb3JJbmdlc3Rpb246IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246XG4gICAgICBcIlB1YmxpYyBuZXR3b3JrIGFjY2VzcyBmb3IgZGF0YSBpbmdlc3Rpb246IEVuYWJsZWQgb3IgRGlzYWJsZWRcIixcbiAgfSxcbiAgcHVibGljTmV0d29ya0FjY2Vzc0ZvclF1ZXJ5OiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOiBcIlB1YmxpYyBuZXR3b3JrIGFjY2VzcyBmb3IgcXVlcmllczogRW5hYmxlZCBvciBEaXNhYmxlZFwiLFxuICB9LFxuICBkaXNhYmxlTG9jYWxBdXRoOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5CT09MRUFOLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJXaGV0aGVyIGxvY2FsIChrZXktYmFzZWQpIGF1dGhlbnRpY2F0aW9uIGlzIGRpc2FibGVkXCIsXG4gIH0sXG4gIGZvcmNlQ3VzdG9tZXJTdG9yYWdlRm9yUHJvZmlsZXI6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLkJPT0xFQU4sXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJGb3JjZSB1c2VycyB0byBjcmVhdGUgdGhlaXIgb3duIHN0b3JhZ2UgYWNjb3VudCBmb3IgcHJvZmlsZXIgYW5kIGRlYnVnZ2VyXCIsXG4gIH0sXG59O1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gVkVSU0lPTi1TUEVDSUZJQyBTQ0hFTUFTXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEFQSSBTY2hlbWEgZm9yIEFwcGxpY2F0aW9uIEluc2lnaHRzIHZlcnNpb24gMjAyMC0wMi0wMlxuICpcbiAqIFRoaXMgaXMgdGhlIGxhdGVzdCBzdGFibGUgQVBJIHZlcnNpb24gZm9yIHdvcmtzcGFjZS1iYXNlZCBBcHBsaWNhdGlvbiBJbnNpZ2h0cy5cbiAqIFdvcmtzcGFjZS1iYXNlZCBjb21wb25lbnRzIHJlcXVpcmUgYSBMb2cgQW5hbHl0aWNzIHdvcmtzcGFjZSBhbmQgcmVwbGFjZSB0aGVcbiAqIGNsYXNzaWMgQXBwbGljYXRpb24gSW5zaWdodHMgcmVzb3VyY2UgKHdoaWNoIHdhcyByZXRpcmVkIG9uIEZlYiAyOSwgMjAyNCkuXG4gKi9cbmV4cG9ydCBjb25zdCBBUFBMSUNBVElPTl9JTlNJR0hUU19TQ0hFTUFfMjAyMF8wMl8wMjogQXBpU2NoZW1hID0ge1xuICByZXNvdXJjZVR5cGU6IFwiTWljcm9zb2Z0Lkluc2lnaHRzL2NvbXBvbmVudHNcIixcbiAgdmVyc2lvbjogXCIyMDIwLTAyLTAyXCIsXG4gIHByb3BlcnRpZXM6IHtcbiAgICAuLi5DT01NT05fQVBQTElDQVRJT05fSU5TSUdIVFNfUFJPUEVSVElFUyxcbiAgfSxcbiAgcmVxdWlyZWQ6IFtcIm5hbWVcIiwgXCJsb2NhdGlvblwiLCBcImFwcGxpY2F0aW9uVHlwZVwiLCBcIndvcmtzcGFjZVJlc291cmNlSWRcIl0sXG4gIG9wdGlvbmFsOiBbXG4gICAgXCJyZXRlbnRpb25JbkRheXNcIixcbiAgICBcInNhbXBsaW5nUGVyY2VudGFnZVwiLFxuICAgIFwiZGlzYWJsZUlwTWFza2luZ1wiLFxuICAgIFwicHVibGljTmV0d29ya0FjY2Vzc0ZvckluZ2VzdGlvblwiLFxuICAgIFwicHVibGljTmV0d29ya0FjY2Vzc0ZvclF1ZXJ5XCIsXG4gICAgXCJkaXNhYmxlTG9jYWxBdXRoXCIsXG4gICAgXCJmb3JjZUN1c3RvbWVyU3RvcmFnZUZvclByb2ZpbGVyXCIsXG4gIF0sXG4gIGRlcHJlY2F0ZWQ6IFtdLFxuICB0cmFuc2Zvcm1hdGlvblJ1bGVzOiB7fSxcbiAgdmFsaWRhdGlvblJ1bGVzOiBbXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwibmFtZVwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJOYW1lIGlzIHJlcXVpcmVkIGZvciBBcHBsaWNhdGlvbiBJbnNpZ2h0c1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICBdLFxufTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFZFUlNJT04gQ09ORklHVVJBVElPTlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogVmVyc2lvbiBjb25maWd1cmF0aW9uIGZvciBBcHBsaWNhdGlvbiBJbnNpZ2h0cyAyMDIwLTAyLTAyXG4gKi9cbmV4cG9ydCBjb25zdCBBUFBMSUNBVElPTl9JTlNJR0hUU19WRVJTSU9OXzIwMjBfMDJfMDI6IFZlcnNpb25Db25maWcgPSB7XG4gIHZlcnNpb246IFwiMjAyMC0wMi0wMlwiLFxuICBzY2hlbWE6IEFQUExJQ0FUSU9OX0lOU0lHSFRTX1NDSEVNQV8yMDIwXzAyXzAyLFxuICBzdXBwb3J0TGV2ZWw6IFZlcnNpb25TdXBwb3J0TGV2ZWwuQUNUSVZFLFxuICByZWxlYXNlRGF0ZTogXCIyMDIwLTAyLTAyXCIsXG4gIGRlcHJlY2F0aW9uRGF0ZTogdW5kZWZpbmVkLFxuICBzdW5zZXREYXRlOiB1bmRlZmluZWQsXG4gIGJyZWFraW5nQ2hhbmdlczogW10sXG4gIG1pZ3JhdGlvbkd1aWRlOiBcIi9kb2NzL2FwcGxpY2F0aW9uLWluc2lnaHRzL21pZ3JhdGlvbi0yMDIwLTAyLTAyXCIsXG4gIGNoYW5nZUxvZzogW1xuICAgIHtcbiAgICAgIGNoYW5nZVR5cGU6IFwidXBkYXRlZFwiLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiTGF0ZXN0IHN0YWJsZSBBUEkgdmVyc2lvbiBmb3Igd29ya3NwYWNlLWJhc2VkIEFwcGxpY2F0aW9uIEluc2lnaHRzXCIsXG4gICAgICBicmVha2luZzogZmFsc2UsXG4gICAgfSxcbiAgXSxcbn07XG5cbi8qKlxuICogQWxsIHN1cHBvcnRlZCBBcHBsaWNhdGlvbiBJbnNpZ2h0cyB2ZXJzaW9ucyBmb3IgcmVnaXN0cmF0aW9uXG4gKiBPcmRlcmVkIHdpdGggbGF0ZXN0IHN0YWJsZSB2ZXJzaW9uIGZpcnN0XG4gKi9cbmV4cG9ydCBjb25zdCBBTExfQVBQTElDQVRJT05fSU5TSUdIVFNfVkVSU0lPTlM6IFZlcnNpb25Db25maWdbXSA9IFtcbiAgQVBQTElDQVRJT05fSU5TSUdIVFNfVkVSU0lPTl8yMDIwXzAyXzAyLFxuXTtcblxuLyoqXG4gKiBSZXNvdXJjZSB0eXBlIGNvbnN0YW50XG4gKi9cbmV4cG9ydCBjb25zdCBBUFBMSUNBVElPTl9JTlNJR0hUU19UWVBFID0gXCJNaWNyb3NvZnQuSW5zaWdodHMvY29tcG9uZW50c1wiO1xuIl19