@microsoft/terraform-cdk-constructs 1.8.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/.jsii +48328 -33656
  2. package/API.md +56123 -38995
  3. package/lib/azure-actiongroup/lib/action-group.d.ts +3 -3
  4. package/lib/azure-actiongroup/lib/action-group.js +5 -5
  5. package/lib/azure-actiongroup/test/action-group.integ.d.ts +1 -1
  6. package/lib/azure-actiongroup/test/action-group.integ.js +5 -5
  7. package/lib/azure-actiongroup/test/action-group.spec.js +9 -9
  8. package/lib/azure-activitylogalert/lib/activity-log-alert.d.ts +3 -3
  9. package/lib/azure-activitylogalert/lib/activity-log-alert.js +5 -5
  10. package/lib/azure-activitylogalert/test/activity-log-alert.integ.d.ts +1 -1
  11. package/lib/azure-activitylogalert/test/activity-log-alert.integ.js +6 -6
  12. package/lib/azure-activitylogalert/test/activity-log-alert.spec.js +9 -9
  13. package/lib/azure-aks/lib/aks-cluster.d.ts +6 -6
  14. package/lib/azure-aks/lib/aks-cluster.js +8 -8
  15. package/lib/azure-aks/test/aks-cluster.integ.d.ts +1 -1
  16. package/lib/azure-aks/test/aks-cluster.integ.js +5 -5
  17. package/lib/azure-aks/test/aks-cluster.spec.js +12 -12
  18. package/lib/azure-containerapps/index.d.ts +1 -0
  19. package/lib/azure-containerapps/index.js +18 -0
  20. package/lib/azure-containerapps/lib/container-app-environment-schemas.d.ts +50 -0
  21. package/lib/azure-containerapps/lib/container-app-environment-schemas.js +522 -0
  22. package/lib/azure-containerapps/lib/container-app-environment.d.ts +374 -0
  23. package/lib/azure-containerapps/lib/container-app-environment.js +310 -0
  24. package/lib/azure-containerapps/lib/container-app-schemas.d.ts +48 -0
  25. package/lib/azure-containerapps/lib/container-app-schemas.js +466 -0
  26. package/lib/azure-containerapps/lib/container-app.d.ts +925 -0
  27. package/lib/azure-containerapps/lib/container-app.js +320 -0
  28. package/lib/azure-containerapps/lib/index.d.ts +4 -0
  29. package/lib/azure-containerapps/lib/index.js +21 -0
  30. package/lib/azure-containerapps/test/container-app-environment.integ.d.ts +10 -0
  31. package/lib/azure-containerapps/test/container-app-environment.integ.js +82 -0
  32. package/lib/azure-containerapps/test/container-app-environment.spec.d.ts +9 -0
  33. package/lib/azure-containerapps/test/container-app-environment.spec.js +412 -0
  34. package/lib/azure-containerapps/test/container-app.integ.d.ts +10 -0
  35. package/lib/azure-containerapps/test/container-app.integ.js +119 -0
  36. package/lib/azure-containerapps/test/container-app.spec.d.ts +9 -0
  37. package/lib/azure-containerapps/test/container-app.spec.js +839 -0
  38. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.d.ts +3 -3
  39. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +5 -5
  40. package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.js +9 -9
  41. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.d.ts +7 -7
  42. package/lib/azure-dnsforwardingruleset/lib/dns-forwarding-ruleset.js +9 -9
  43. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.d.ts +4 -4
  44. package/lib/azure-dnsforwardingruleset/lib/forwarding-rule.js +6 -6
  45. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.d.ts +4 -4
  46. package/lib/azure-dnsforwardingruleset/lib/virtual-network-link.js +6 -6
  47. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.d.ts +1 -1
  48. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.integ.js +5 -5
  49. package/lib/azure-dnsforwardingruleset/test/dns-forwarding-ruleset.spec.js +11 -11
  50. package/lib/azure-dnsforwardingruleset/test/forwarding-rule.spec.js +14 -14
  51. package/lib/azure-dnsforwardingruleset/test/virtual-network-link.spec.js +12 -12
  52. package/lib/azure-dnsresolver/lib/dns-resolver.d.ts +8 -8
  53. package/lib/azure-dnsresolver/lib/dns-resolver.js +10 -10
  54. package/lib/azure-dnsresolver/lib/inbound-endpoint.d.ts +6 -6
  55. package/lib/azure-dnsresolver/lib/inbound-endpoint.js +8 -8
  56. package/lib/azure-dnsresolver/lib/outbound-endpoint.d.ts +7 -7
  57. package/lib/azure-dnsresolver/lib/outbound-endpoint.js +9 -9
  58. package/lib/azure-dnsresolver/test/dns-resolver.integ.d.ts +1 -1
  59. package/lib/azure-dnsresolver/test/dns-resolver.integ.js +5 -5
  60. package/lib/azure-dnsresolver/test/dns-resolver.spec.js +11 -11
  61. package/lib/azure-dnsresolver/test/inbound-endpoint.integ.d.ts +1 -1
  62. package/lib/azure-dnsresolver/test/inbound-endpoint.integ.js +5 -5
  63. package/lib/azure-dnsresolver/test/inbound-endpoint.spec.js +12 -12
  64. package/lib/azure-dnsresolver/test/outbound-endpoint.integ.d.ts +1 -1
  65. package/lib/azure-dnsresolver/test/outbound-endpoint.integ.js +5 -5
  66. package/lib/azure-dnsresolver/test/outbound-endpoint.spec.js +9 -9
  67. package/lib/azure-dnszone/lib/dns-zone.d.ts +6 -6
  68. package/lib/azure-dnszone/lib/dns-zone.js +8 -8
  69. package/lib/azure-dnszone/lib/records/dns-records.d.ts +31 -31
  70. package/lib/azure-dnszone/lib/records/dns-records.js +42 -42
  71. package/lib/azure-dnszone/test/dns-records.integ.d.ts +1 -1
  72. package/lib/azure-dnszone/test/dns-records.integ.js +5 -5
  73. package/lib/azure-dnszone/test/dns-records.spec.js +57 -57
  74. package/lib/azure-dnszone/test/dns-zone.integ.d.ts +1 -1
  75. package/lib/azure-dnszone/test/dns-zone.integ.js +5 -5
  76. package/lib/azure-dnszone/test/dns-zone.spec.js +11 -11
  77. package/lib/azure-loganalyticsworkspace/index.d.ts +6 -0
  78. package/lib/azure-loganalyticsworkspace/index.js +23 -0
  79. package/lib/azure-loganalyticsworkspace/lib/index.d.ts +5 -0
  80. package/lib/azure-loganalyticsworkspace/lib/index.js +22 -0
  81. package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace-schemas.d.ts +51 -0
  82. package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace-schemas.js +255 -0
  83. package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.d.ts +301 -0
  84. package/lib/azure-loganalyticsworkspace/lib/log-analytics-workspace.js +213 -0
  85. package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.d.ts +9 -0
  86. package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.integ.js +71 -0
  87. package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.spec.d.ts +8 -0
  88. package/lib/azure-loganalyticsworkspace/test/log-analytics-workspace.spec.js +504 -0
  89. package/lib/azure-metricalert/lib/metric-alert.d.ts +3 -3
  90. package/lib/azure-metricalert/lib/metric-alert.js +5 -5
  91. package/lib/azure-metricalert/test/metric-alert.integ.d.ts +1 -1
  92. package/lib/azure-metricalert/test/metric-alert.integ.js +5 -5
  93. package/lib/azure-metricalert/test/metric-alert.spec.js +9 -9
  94. package/lib/azure-networkinterface/lib/network-interface.d.ts +5 -5
  95. package/lib/azure-networkinterface/lib/network-interface.js +7 -7
  96. package/lib/azure-networkinterface/test/network-interface.integ.d.ts +1 -1
  97. package/lib/azure-networkinterface/test/network-interface.integ.js +5 -5
  98. package/lib/azure-networkinterface/test/network-interface.spec.js +11 -11
  99. package/lib/azure-networksecuritygroup/lib/network-security-group.d.ts +6 -6
  100. package/lib/azure-networksecuritygroup/lib/network-security-group.js +8 -8
  101. package/lib/azure-networksecuritygroup/test/network-security-group.integ.d.ts +1 -1
  102. package/lib/azure-networksecuritygroup/test/network-security-group.integ.js +5 -5
  103. package/lib/azure-networksecuritygroup/test/network-security-group.spec.js +12 -12
  104. package/lib/azure-networkwatcher/index.d.ts +14 -0
  105. package/lib/azure-networkwatcher/index.js +31 -0
  106. package/lib/azure-networkwatcher/lib/index.d.ts +5 -0
  107. package/lib/azure-networkwatcher/lib/index.js +22 -0
  108. package/lib/azure-networkwatcher/lib/network-watcher-schemas.d.ts +47 -0
  109. package/lib/azure-networkwatcher/lib/network-watcher-schemas.js +167 -0
  110. package/lib/azure-networkwatcher/lib/network-watcher.d.ts +181 -0
  111. package/lib/azure-networkwatcher/lib/network-watcher.js +187 -0
  112. package/lib/azure-networkwatcher/test/network-watcher.integ.d.ts +12 -0
  113. package/lib/azure-networkwatcher/test/network-watcher.integ.js +84 -0
  114. package/lib/azure-networkwatcher/test/network-watcher.spec.d.ts +8 -0
  115. package/lib/azure-networkwatcher/test/network-watcher.spec.js +312 -0
  116. package/lib/azure-policyassignment/lib/policy-assignment.d.ts +3 -3
  117. package/lib/azure-policyassignment/lib/policy-assignment.js +5 -5
  118. package/lib/azure-policyassignment/test/policy-assignment.integ.d.ts +1 -1
  119. package/lib/azure-policyassignment/test/policy-assignment.integ.js +5 -5
  120. package/lib/azure-policyassignment/test/policy-assignment.spec.js +12 -12
  121. package/lib/azure-policydefinition/lib/policy-definition.d.ts +3 -3
  122. package/lib/azure-policydefinition/lib/policy-definition.js +5 -5
  123. package/lib/azure-policydefinition/test/policy-definition.integ.d.ts +1 -1
  124. package/lib/azure-policydefinition/test/policy-definition.integ.js +5 -5
  125. package/lib/azure-policydefinition/test/policy-definition.spec.js +19 -19
  126. package/lib/azure-policysetdefinition/index.d.ts +10 -0
  127. package/lib/azure-policysetdefinition/index.js +27 -0
  128. package/lib/azure-policysetdefinition/lib/index.d.ts +5 -0
  129. package/lib/azure-policysetdefinition/lib/index.js +22 -0
  130. package/lib/azure-policysetdefinition/lib/policy-set-definition-schemas.d.ts +50 -0
  131. package/lib/azure-policysetdefinition/lib/policy-set-definition-schemas.js +255 -0
  132. package/lib/azure-policysetdefinition/lib/policy-set-definition.d.ts +426 -0
  133. package/lib/azure-policysetdefinition/lib/policy-set-definition.js +255 -0
  134. package/lib/azure-policysetdefinition/test/policy-set-definition.integ.d.ts +9 -0
  135. package/lib/azure-policysetdefinition/test/policy-set-definition.integ.js +56 -0
  136. package/lib/azure-policysetdefinition/test/policy-set-definition.spec.d.ts +8 -0
  137. package/lib/azure-policysetdefinition/test/policy-set-definition.spec.js +745 -0
  138. package/lib/azure-privatednszone/lib/private-dns-zone.d.ts +10 -10
  139. package/lib/azure-privatednszone/lib/private-dns-zone.js +12 -12
  140. package/lib/azure-privatednszone/lib/records/private-dns-records.d.ts +25 -25
  141. package/lib/azure-privatednszone/lib/records/private-dns-records.js +34 -34
  142. package/lib/azure-privatednszone/test/private-dns-records.integ.d.ts +1 -1
  143. package/lib/azure-privatednszone/test/private-dns-records.integ.js +5 -5
  144. package/lib/azure-privatednszone/test/private-dns-records.spec.js +49 -49
  145. package/lib/azure-privatednszone/test/private-dns-zone.integ.d.ts +1 -1
  146. package/lib/azure-privatednszone/test/private-dns-zone.integ.js +5 -5
  147. package/lib/azure-privatednszone/test/private-dns-zone.spec.js +12 -12
  148. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.d.ts +6 -6
  149. package/lib/azure-privatednszonelink/lib/private-dns-zone-link.js +8 -8
  150. package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.d.ts +1 -1
  151. package/lib/azure-privatednszonelink/test/private-dns-zone-link.integ.js +5 -5
  152. package/lib/azure-privatednszonelink/test/private-dns-zone-link.spec.js +12 -12
  153. package/lib/azure-publicipaddress/lib/public-ip-address.d.ts +5 -5
  154. package/lib/azure-publicipaddress/lib/public-ip-address.js +7 -7
  155. package/lib/azure-publicipaddress/test/public-ip-address.integ.d.ts +1 -1
  156. package/lib/azure-publicipaddress/test/public-ip-address.integ.js +6 -6
  157. package/lib/azure-publicipaddress/test/public-ip-address.spec.js +11 -11
  158. package/lib/azure-resourcegroup/lib/resource-group.d.ts +5 -5
  159. package/lib/azure-resourcegroup/lib/resource-group.js +7 -7
  160. package/lib/azure-resourcegroup/test/resource-group.integ.d.ts +1 -1
  161. package/lib/azure-resourcegroup/test/resource-group.integ.js +5 -5
  162. package/lib/azure-resourcegroup/test/resource-group.spec.js +14 -14
  163. package/lib/azure-roleassignment/lib/role-assignment.d.ts +3 -3
  164. package/lib/azure-roleassignment/lib/role-assignment.js +5 -5
  165. package/lib/azure-roleassignment/test/role-assignment.integ.d.ts +1 -1
  166. package/lib/azure-roleassignment/test/role-assignment.integ.js +5 -5
  167. package/lib/azure-roleassignment/test/role-assignment.spec.js +12 -12
  168. package/lib/azure-roledefinition/lib/role-definition.d.ts +3 -3
  169. package/lib/azure-roledefinition/lib/role-definition.js +5 -5
  170. package/lib/azure-roledefinition/test/role-definition.integ.d.ts +1 -1
  171. package/lib/azure-roledefinition/test/role-definition.integ.js +5 -5
  172. package/lib/azure-roledefinition/test/role-definition.spec.js +12 -12
  173. package/lib/azure-storageaccount/lib/storage-account.d.ts +6 -6
  174. package/lib/azure-storageaccount/lib/storage-account.js +8 -8
  175. package/lib/azure-storageaccount/test/storage-account.integ.d.ts +1 -1
  176. package/lib/azure-storageaccount/test/storage-account.integ.js +5 -5
  177. package/lib/azure-storageaccount/test/storage-account.spec.js +11 -11
  178. package/lib/azure-subnet/lib/subnet.d.ts +3 -3
  179. package/lib/azure-subnet/lib/subnet.js +5 -5
  180. package/lib/azure-subnet/test/subnet.integ.d.ts +1 -1
  181. package/lib/azure-subnet/test/subnet.integ.js +5 -5
  182. package/lib/azure-subnet/test/subnet.spec.js +9 -9
  183. package/lib/azure-virtualmachine/lib/virtual-machine.d.ts +6 -6
  184. package/lib/azure-virtualmachine/lib/virtual-machine.js +8 -8
  185. package/lib/azure-virtualmachine/test/virtual-machine.integ.d.ts +1 -1
  186. package/lib/azure-virtualmachine/test/virtual-machine.integ.js +5 -5
  187. package/lib/azure-virtualmachine/test/virtual-machine.spec.js +17 -17
  188. package/lib/azure-virtualnetwork/lib/virtual-network.d.ts +6 -6
  189. package/lib/azure-virtualnetwork/lib/virtual-network.js +8 -8
  190. package/lib/azure-virtualnetwork/test/virtual-network.integ.d.ts +1 -1
  191. package/lib/azure-virtualnetwork/test/virtual-network.integ.js +5 -5
  192. package/lib/azure-virtualnetwork/test/virtual-network.spec.js +12 -12
  193. package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway-schemas.js +2 -2
  194. package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.d.ts +9 -7
  195. package/lib/azure-virtualnetworkgateway/lib/virtual-network-gateway.js +13 -10
  196. package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.integ.d.ts +1 -1
  197. package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.integ.js +5 -5
  198. package/lib/azure-virtualnetworkgateway/test/virtual-network-gateway.spec.js +119 -11
  199. package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.d.ts +5 -5
  200. package/lib/azure-virtualnetworkgatewayconnection/lib/virtual-network-gateway-connection.js +7 -7
  201. package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.integ.d.ts +1 -1
  202. package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.integ.js +5 -5
  203. package/lib/azure-virtualnetworkgatewayconnection/test/virtual-network-gateway-connection.spec.js +20 -20
  204. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.d.ts +4 -4
  205. package/lib/azure-virtualnetworkmanager/lib/connectivity-configuration.js +6 -6
  206. package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.d.ts +4 -4
  207. package/lib/azure-virtualnetworkmanager/lib/ipam-pool-static-cidr.js +6 -6
  208. package/lib/azure-virtualnetworkmanager/lib/ipam-pool.d.ts +4 -4
  209. package/lib/azure-virtualnetworkmanager/lib/ipam-pool.js +6 -6
  210. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.d.ts +4 -4
  211. package/lib/azure-virtualnetworkmanager/lib/network-group-static-member.js +6 -6
  212. package/lib/azure-virtualnetworkmanager/lib/network-group.d.ts +4 -4
  213. package/lib/azure-virtualnetworkmanager/lib/network-group.js +6 -6
  214. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.d.ts +4 -4
  215. package/lib/azure-virtualnetworkmanager/lib/security-admin-configuration.js +6 -6
  216. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.d.ts +4 -4
  217. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule-collection.js +6 -6
  218. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.d.ts +4 -4
  219. package/lib/azure-virtualnetworkmanager/lib/security-admin-rule.js +6 -6
  220. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.d.ts +7 -7
  221. package/lib/azure-virtualnetworkmanager/lib/virtual-network-manager.js +9 -9
  222. package/lib/azure-virtualnetworkmanager/test/ipam-pool-static-cidr.spec.js +17 -17
  223. package/lib/azure-virtualnetworkmanager/test/ipam-pool.spec.js +15 -15
  224. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.d.ts +1 -1
  225. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.integ.js +5 -5
  226. package/lib/azure-virtualnetworkmanager/test/virtual-network-manager.spec.js +57 -57
  227. package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +6 -6
  228. package/lib/azure-vmss/lib/virtual-machine-scale-set.js +8 -8
  229. package/lib/azure-vmss/test/virtual-machine-scale-set.integ.d.ts +1 -1
  230. package/lib/azure-vmss/test/virtual-machine-scale-set.integ.js +5 -5
  231. package/lib/azure-vmss/test/virtual-machine-scale-set.spec.js +12 -12
  232. package/lib/core-azure/lib/azapi/azapi-resource-tags.spec.js +6 -6
  233. package/lib/core-azure/lib/azapi/azapi-resource.d.ts +7 -7
  234. package/lib/core-azure/lib/azapi/azapi-resource.js +6 -6
  235. package/lib/core-azure/lib/azapi/azapi-resource.spec.js +7 -7
  236. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.d.ts +12 -12
  237. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +15 -15
  238. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.d.ts +35 -35
  239. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +58 -58
  240. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.d.ts +25 -25
  241. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.js +49 -49
  242. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.d.ts +13 -13
  243. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.js +22 -22
  244. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.d.ts +24 -24
  245. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.js +40 -40
  246. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.d.ts +44 -44
  247. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.js +72 -72
  248. package/lib/core-azure/lib/azapi/providers-azapi/index.js +2 -2
  249. package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.js +2 -2
  250. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.d.ts +54 -54
  251. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +86 -86
  252. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.d.ts +65 -65
  253. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +102 -102
  254. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.d.ts +25 -25
  255. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +62 -62
  256. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.d.ts +36 -36
  257. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +69 -69
  258. package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +1 -1
  259. package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
  260. package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
  261. package/lib/index.d.ts +12 -0
  262. package/lib/index.js +14 -2
  263. package/lib/testing/index.d.ts +1 -1
  264. package/lib/testing/index.js +8 -8
  265. package/lib/testing/lib/cleanup.js +1 -1
  266. package/lib/testing/lib/metadata.js +1 -1
  267. package/package.json +10 -22
  268. package/setup.js +2 -2
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.LogAnalyticsWorkspace = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ /**
7
+ * Unified Azure Log Analytics Workspace implementation using AzapiResource framework
8
+ *
9
+ * This class provides a version-aware implementation for Azure Log Analytics Workspace
10
+ * that automatically handles version management, schema validation, and property
11
+ * transformation across all supported API versions.
12
+ *
13
+ * Supported API Versions:
14
+ * - 2023-09-01 (Active, Latest)
15
+ * - 2022-10-01 (Active, Backward Compatibility)
16
+ *
17
+ * Features:
18
+ * - Automatic latest version resolution when no version is specified
19
+ * - Explicit version pinning for stability requirements
20
+ * - Schema-driven validation and transformation
21
+ * - Full JSII compliance for multi-language support
22
+ * - Configurable data retention, SKU, and workspace capping
23
+ * - Public network access controls
24
+ * - Workspace features configuration
25
+ */
26
+ const cdktf = require("cdktn");
27
+ const log_analytics_workspace_schemas_1 = require("./log-analytics-workspace-schemas");
28
+ const azapi_resource_1 = require("../../core-azure/lib/azapi/azapi-resource");
29
+ /**
30
+ * Unified Azure Log Analytics Workspace implementation
31
+ *
32
+ * This class provides a single, version-aware implementation that automatically handles version
33
+ * resolution, schema validation, and property transformation while maintaining full JSII compliance.
34
+ *
35
+ * Log Analytics Workspace is the central destination for log data from Azure resources,
36
+ * applications, and on-premises infrastructure. It enables querying, analysis, and
37
+ * visualization of log data using Kusto Query Language (KQL).
38
+ *
39
+ * @example
40
+ * // Basic Log Analytics Workspace with default settings:
41
+ * const workspace = new LogAnalyticsWorkspace(this, "my-workspace", {
42
+ * name: "my-log-analytics",
43
+ * location: "eastus",
44
+ * resourceGroupId: resourceGroup.id,
45
+ * });
46
+ *
47
+ * @example
48
+ * // Log Analytics Workspace with custom retention and SKU:
49
+ * const workspace = new LogAnalyticsWorkspace(this, "production-workspace", {
50
+ * name: "production-logs",
51
+ * location: "eastus",
52
+ * resourceGroupId: resourceGroup.id,
53
+ * retentionInDays: 90,
54
+ * sku: {
55
+ * name: "PerGB2018"
56
+ * },
57
+ * publicNetworkAccessForIngestion: "Enabled",
58
+ * publicNetworkAccessForQuery: "Enabled",
59
+ * tags: {
60
+ * environment: "production"
61
+ * }
62
+ * });
63
+ *
64
+ * @example
65
+ * // Log Analytics Workspace with capacity reservation:
66
+ * const workspace = new LogAnalyticsWorkspace(this, "high-volume-workspace", {
67
+ * name: "high-volume-logs",
68
+ * location: "eastus",
69
+ * resourceGroupId: resourceGroup.id,
70
+ * retentionInDays: 365,
71
+ * sku: {
72
+ * name: "CapacityReservation",
73
+ * capacityReservationLevel: 500
74
+ * },
75
+ * workspaceCapping: {
76
+ * dailyQuotaGb: 100
77
+ * }
78
+ * });
79
+ *
80
+ * @stability stable
81
+ */
82
+ class LogAnalyticsWorkspace extends azapi_resource_1.AzapiResource {
83
+ /**
84
+ * Creates a new Azure Log Analytics Workspace using the AzapiResource framework
85
+ *
86
+ * The constructor automatically handles version resolution, schema registration,
87
+ * validation, and resource creation.
88
+ *
89
+ * @param scope - The scope in which to define this construct
90
+ * @param id - The unique identifier for this instance
91
+ * @param props - Configuration properties for the Log Analytics Workspace
92
+ */
93
+ constructor(scope, id, props) {
94
+ // Validate retention days if provided
95
+ if (props.retentionInDays !== undefined) {
96
+ if (props.retentionInDays < 30 || props.retentionInDays > 730) {
97
+ throw new Error("retentionInDays must be between 30 and 730 days");
98
+ }
99
+ }
100
+ // Validate capacity reservation level if CapacityReservation SKU is used
101
+ if (props.sku?.name === "CapacityReservation") {
102
+ const validLevels = [100, 200, 300, 400, 500, 1000, 2000, 5000];
103
+ if (props.sku.capacityReservationLevel === undefined ||
104
+ !validLevels.includes(props.sku.capacityReservationLevel)) {
105
+ throw new Error(`capacityReservationLevel must be one of ${validLevels.join(", ")} when using CapacityReservation SKU`);
106
+ }
107
+ }
108
+ super(scope, id, props);
109
+ this.props = props;
110
+ // Create Terraform outputs for easy access and referencing from other resources
111
+ this.idOutput = new cdktf.TerraformOutput(this, "id", {
112
+ value: this.id,
113
+ description: "The ID of the Log Analytics Workspace",
114
+ });
115
+ this.nameOutput = new cdktf.TerraformOutput(this, "name", {
116
+ value: `\${${this.terraformResource.fqn}.name}`,
117
+ description: "The name of the Log Analytics Workspace",
118
+ });
119
+ this.workspaceIdOutput = new cdktf.TerraformOutput(this, "workspace_id", {
120
+ value: `\${${this.terraformResource.fqn}.output.properties.customerId}`,
121
+ description: "The unique identifier (workspace ID) of the Log Analytics Workspace",
122
+ });
123
+ this.customerIdOutput = new cdktf.TerraformOutput(this, "customer_id", {
124
+ value: `\${${this.terraformResource.fqn}.output.properties.customerId}`,
125
+ description: "The customer ID (same as workspace ID) of the Log Analytics Workspace",
126
+ });
127
+ // Override logical IDs
128
+ this.idOutput.overrideLogicalId("id");
129
+ this.nameOutput.overrideLogicalId("name");
130
+ this.workspaceIdOutput.overrideLogicalId("workspace_id");
131
+ this.customerIdOutput.overrideLogicalId("customer_id");
132
+ }
133
+ // =============================================================================
134
+ // REQUIRED ABSTRACT METHODS FROM AzapiResource
135
+ // =============================================================================
136
+ /**
137
+ * Gets the default API version to use when no explicit version is specified
138
+ * Returns the latest stable version as the default
139
+ */
140
+ defaultVersion() {
141
+ return "2023-09-01";
142
+ }
143
+ /**
144
+ * Gets the Azure resource type for Log Analytics Workspace
145
+ */
146
+ resourceType() {
147
+ return log_analytics_workspace_schemas_1.LOG_ANALYTICS_WORKSPACE_TYPE;
148
+ }
149
+ /**
150
+ * Gets the API schema for the resolved version
151
+ * Uses the framework's schema resolution to get the appropriate schema
152
+ */
153
+ apiSchema() {
154
+ return this.resolveSchema();
155
+ }
156
+ /**
157
+ * Indicates that this resource type requires a location
158
+ */
159
+ requiresLocation() {
160
+ return true;
161
+ }
162
+ /**
163
+ * Creates the resource body for the Azure API call
164
+ * Transforms the input properties into the JSON format expected by Azure REST API
165
+ */
166
+ createResourceBody(props) {
167
+ const typedProps = props;
168
+ const body = {
169
+ properties: {
170
+ retentionInDays: typedProps.retentionInDays ?? 30,
171
+ sku: typedProps.sku ?? { name: "PerGB2018" },
172
+ publicNetworkAccessForIngestion: typedProps.publicNetworkAccessForIngestion ?? "Enabled",
173
+ publicNetworkAccessForQuery: typedProps.publicNetworkAccessForQuery ?? "Enabled",
174
+ },
175
+ };
176
+ // Add optional properties only if specified
177
+ if (typedProps.workspaceCapping) {
178
+ body.properties.workspaceCapping = typedProps.workspaceCapping;
179
+ }
180
+ if (typedProps.features) {
181
+ body.properties.features = typedProps.features;
182
+ }
183
+ if (typedProps.forceCmkForQuery !== undefined) {
184
+ body.properties.forceCmkForQuery = typedProps.forceCmkForQuery;
185
+ }
186
+ if (typedProps.defaultDataCollectionRuleResourceId) {
187
+ body.properties.defaultDataCollectionRuleResourceId =
188
+ typedProps.defaultDataCollectionRuleResourceId;
189
+ }
190
+ // Add identity at the top level if specified
191
+ if (typedProps.identity) {
192
+ body.identity = typedProps.identity;
193
+ }
194
+ return body;
195
+ }
196
+ /**
197
+ * Resolves the parent resource ID for Log Analytics Workspace
198
+ * Log Analytics Workspace is a top-level resource within a resource group
199
+ *
200
+ * @param props - The resource properties
201
+ * @returns The parent resource ID (the resource group)
202
+ */
203
+ resolveParentId(props) {
204
+ return props.resourceGroupId;
205
+ }
206
+ }
207
+ exports.LogAnalyticsWorkspace = LogAnalyticsWorkspace;
208
+ _a = JSII_RTTI_SYMBOL_1;
209
+ LogAnalyticsWorkspace[_a] = { fqn: "@microsoft/terraform-cdk-constructs.LogAnalyticsWorkspace", version: "2.2.0" };
210
+ (() => {
211
+ azapi_resource_1.AzapiResource.registerSchemas(log_analytics_workspace_schemas_1.LOG_ANALYTICS_WORKSPACE_TYPE, log_analytics_workspace_schemas_1.ALL_LOG_ANALYTICS_WORKSPACE_VERSIONS);
212
+ })();
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWFuYWx5dGljcy13b3Jrc3BhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtbG9nYW5hbHl0aWNzd29ya3NwYWNlL2xpYi9sb2ctYW5hbHl0aWNzLXdvcmtzcGFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBRUgsK0JBQStCO0FBRS9CLHVGQUcyQztBQUMzQyw4RUFHbUQ7QUE2TW5EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0RHO0FBQ0gsTUFBYSxxQkFBc0IsU0FBUSw4QkFBYTtJQW1CdEQ7Ozs7Ozs7OztPQVNHO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFpQztRQUN6RSxzQ0FBc0M7UUFDdEMsSUFBSSxLQUFLLENBQUMsZUFBZSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hDLElBQUksS0FBSyxDQUFDLGVBQWUsR0FBRyxFQUFFLElBQUksS0FBSyxDQUFDLGVBQWUsR0FBRyxHQUFHLEVBQUUsQ0FBQztnQkFDOUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1lBQ3JFLENBQUM7UUFDSCxDQUFDO1FBRUQseUVBQXlFO1FBQ3pFLElBQUksS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLEtBQUsscUJBQXFCLEVBQUUsQ0FBQztZQUM5QyxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNoRSxJQUNFLEtBQUssQ0FBQyxHQUFHLENBQUMsd0JBQXdCLEtBQUssU0FBUztnQkFDaEQsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsRUFDekQsQ0FBQztnQkFDRCxNQUFNLElBQUksS0FBSyxDQUNiLDJDQUEyQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxxQ0FBcUMsQ0FDdkcsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBRUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFFbkIsZ0ZBQWdGO1FBQ2hGLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUU7WUFDcEQsS0FBSyxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ2QsV0FBVyxFQUFFLHVDQUF1QztTQUNyRCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ3hELEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLFFBQVE7WUFDL0MsV0FBVyxFQUFFLHlDQUF5QztTQUN2RCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDdkUsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsZ0NBQWdDO1lBQ3ZFLFdBQVcsRUFDVCxxRUFBcUU7U0FDeEUsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFO1lBQ3JFLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLGdDQUFnQztZQUN2RSxXQUFXLEVBQ1QsdUVBQXVFO1NBQzFFLENBQUMsQ0FBQztRQUVILHVCQUF1QjtRQUN2QixJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsZ0ZBQWdGO0lBQ2hGLCtDQUErQztJQUMvQyxnRkFBZ0Y7SUFFaEY7OztPQUdHO0lBQ08sY0FBYztRQUN0QixPQUFPLFlBQVksQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDTyxZQUFZO1FBQ3BCLE9BQU8sOERBQTRCLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7T0FHRztJQUNPLFNBQVM7UUFDakIsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVEOztPQUVHO0lBQ08sZ0JBQWdCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNPLGtCQUFrQixDQUFDLEtBQVU7UUFDckMsTUFBTSxVQUFVLEdBQUcsS0FBbUMsQ0FBQztRQUV2RCxNQUFNLElBQUksR0FBUTtZQUNoQixVQUFVLEVBQUU7Z0JBQ1YsZUFBZSxFQUFFLFVBQVUsQ0FBQyxlQUFlLElBQUksRUFBRTtnQkFDakQsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUM1QywrQkFBK0IsRUFDN0IsVUFBVSxDQUFDLCtCQUErQixJQUFJLFNBQVM7Z0JBQ3pELDJCQUEyQixFQUN6QixVQUFVLENBQUMsMkJBQTJCLElBQUksU0FBUzthQUN0RDtTQUNGLENBQUM7UUFFRiw0Q0FBNEM7UUFDNUMsSUFBSSxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUNqRSxDQUFDO1FBRUQsSUFBSSxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUNqRCxDQUFDO1FBRUQsSUFBSSxVQUFVLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsZ0JBQWdCLENBQUM7UUFDakUsQ0FBQztRQUVELElBQUksVUFBVSxDQUFDLG1DQUFtQyxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQ0FBbUM7Z0JBQ2pELFVBQVUsQ0FBQyxtQ0FBbUMsQ0FBQztRQUNuRCxDQUFDO1FBRUQsNkNBQTZDO1FBQzdDLElBQUksVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUN0QyxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ08sZUFBZSxDQUFDLEtBQVU7UUFDbEMsT0FBUSxLQUFvQyxDQUFDLGVBQWUsQ0FBQztJQUMvRCxDQUFDOztBQTNLSCxzREE0S0M7OztBQTNLQztJQUNFLDhCQUFhLENBQUMsZUFBZSxDQUMzQiw4REFBNEIsRUFDNUIsc0VBQW9DLENBQ3JDLENBQUM7QUFDSixDQUFDLEdBQUEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVW5pZmllZCBBenVyZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSBpbXBsZW1lbnRhdGlvbiB1c2luZyBBemFwaVJlc291cmNlIGZyYW1ld29ya1xuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSB2ZXJzaW9uLWF3YXJlIGltcGxlbWVudGF0aW9uIGZvciBBenVyZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVxuICogdGhhdCBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvbiBtYW5hZ2VtZW50LCBzY2hlbWEgdmFsaWRhdGlvbiwgYW5kIHByb3BlcnR5XG4gKiB0cmFuc2Zvcm1hdGlvbiBhY3Jvc3MgYWxsIHN1cHBvcnRlZCBBUEkgdmVyc2lvbnMuXG4gKlxuICogU3VwcG9ydGVkIEFQSSBWZXJzaW9uczpcbiAqIC0gMjAyMy0wOS0wMSAoQWN0aXZlLCBMYXRlc3QpXG4gKiAtIDIwMjItMTAtMDEgKEFjdGl2ZSwgQmFja3dhcmQgQ29tcGF0aWJpbGl0eSlcbiAqXG4gKiBGZWF0dXJlczpcbiAqIC0gQXV0b21hdGljIGxhdGVzdCB2ZXJzaW9uIHJlc29sdXRpb24gd2hlbiBubyB2ZXJzaW9uIGlzIHNwZWNpZmllZFxuICogLSBFeHBsaWNpdCB2ZXJzaW9uIHBpbm5pbmcgZm9yIHN0YWJpbGl0eSByZXF1aXJlbWVudHNcbiAqIC0gU2NoZW1hLWRyaXZlbiB2YWxpZGF0aW9uIGFuZCB0cmFuc2Zvcm1hdGlvblxuICogLSBGdWxsIEpTSUkgY29tcGxpYW5jZSBmb3IgbXVsdGktbGFuZ3VhZ2Ugc3VwcG9ydFxuICogLSBDb25maWd1cmFibGUgZGF0YSByZXRlbnRpb24sIFNLVSwgYW5kIHdvcmtzcGFjZSBjYXBwaW5nXG4gKiAtIFB1YmxpYyBuZXR3b3JrIGFjY2VzcyBjb250cm9sc1xuICogLSBXb3Jrc3BhY2UgZmVhdHVyZXMgY29uZmlndXJhdGlvblxuICovXG5cbmltcG9ydCAqIGFzIGNka3RmIGZyb20gXCJjZGt0blwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIEFMTF9MT0dfQU5BTFlUSUNTX1dPUktTUEFDRV9WRVJTSU9OUyxcbiAgTE9HX0FOQUxZVElDU19XT1JLU1BBQ0VfVFlQRSxcbn0gZnJvbSBcIi4vbG9nLWFuYWx5dGljcy13b3Jrc3BhY2Utc2NoZW1hc1wiO1xuaW1wb3J0IHtcbiAgQXphcGlSZXNvdXJjZSxcbiAgQXphcGlSZXNvdXJjZVByb3BzLFxufSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvYXphcGkvYXphcGktcmVzb3VyY2VcIjtcbmltcG9ydCB7IEFwaVNjaGVtYSB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi92ZXJzaW9uLW1hbmFnZXIvaW50ZXJmYWNlcy92ZXJzaW9uLWludGVyZmFjZXNcIjtcblxuLyoqXG4gKiBTS1UgY29uZmlndXJhdGlvbiBmb3IgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dBbmFseXRpY3NXb3Jrc3BhY2VTa3Uge1xuICAvKipcbiAgICogU0tVIG5hbWUgZm9yIHRoZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVxuICAgKlxuICAgKiBBdmFpbGFibGUgb3B0aW9uczpcbiAgICogLSBcIkZyZWVcIiAtIEZyZWUgdGllciAobGltaXRlZCB0byA1MDBNQi9kYXksIDcgZGF5IHJldGVudGlvbilcbiAgICogLSBcIlN0YW5kYXJkXCIgLSBTdGFuZGFyZCB0aWVyIChsZWdhY3kpXG4gICAqIC0gXCJQcmVtaXVtXCIgLSBQcmVtaXVtIHRpZXIgKGxlZ2FjeSlcbiAgICogLSBcIlBlck5vZGVcIiAtIFBlciBub2RlIHByaWNpbmcgKGxlZ2FjeSwgZm9yIE9NUyBjdXN0b21lcnMpXG4gICAqIC0gXCJQZXJHQjIwMThcIiAtIFBheS1hcy15b3UtZ28gcHJpY2luZyBiYXNlZCBvbiBkYXRhIGluZ2VzdGlvblxuICAgKiAtIFwiU3RhbmRhbG9uZVwiIC0gU3RhbmRhbG9uZSB0aWVyIChsZWdhY3kpXG4gICAqIC0gXCJDYXBhY2l0eVJlc2VydmF0aW9uXCIgLSBDb21taXRtZW50IHRpZXIgd2l0aCByZXNlcnZlZCBjYXBhY2l0eVxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIFwiUGVyR0IyMDE4XCJcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6XG4gICAgfCBcIkZyZWVcIlxuICAgIHwgXCJTdGFuZGFyZFwiXG4gICAgfCBcIlByZW1pdW1cIlxuICAgIHwgXCJQZXJOb2RlXCJcbiAgICB8IFwiUGVyR0IyMDE4XCJcbiAgICB8IFwiU3RhbmRhbG9uZVwiXG4gICAgfCBcIkNhcGFjaXR5UmVzZXJ2YXRpb25cIjtcblxuICAvKipcbiAgICogQ2FwYWNpdHkgcmVzZXJ2YXRpb24gbGV2ZWwgaW4gR0IgcGVyIGRheVxuICAgKiBPbmx5IGFwcGxpY2FibGUgd2hlbiBTS1UgbmFtZSBpcyBcIkNhcGFjaXR5UmVzZXJ2YXRpb25cIlxuICAgKiBWYWxpZCB2YWx1ZXM6IDEwMCwgMjAwLCAzMDAsIDQwMCwgNTAwLCAxMDAwLCAyMDAwLCA1MDAwXG4gICAqL1xuICByZWFkb25seSBjYXBhY2l0eVJlc2VydmF0aW9uTGV2ZWw/OiBudW1iZXI7XG59XG5cbi8qKlxuICogV29ya3NwYWNlIGNhcHBpbmcgY29uZmlndXJhdGlvbiBmb3IgZGFpbHkgZGF0YSBpbmdlc3Rpb24gbGltaXRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9nQW5hbHl0aWNzV29ya3NwYWNlQ2FwcGluZyB7XG4gIC8qKlxuICAgKiBEYWlseSB2b2x1bWUgY2FwIGluIEdCXG4gICAqIEEgdmFsdWUgb2YgLTEgbWVhbnMgbm8gY2FwXG4gICAqL1xuICByZWFkb25seSBkYWlseVF1b3RhR2I6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBXb3Jrc3BhY2UgZmVhdHVyZXMgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ0FuYWx5dGljc1dvcmtzcGFjZUZlYXR1cmVzIHtcbiAgLyoqXG4gICAqIEZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIGRhdGEgZXhwb3J0IGlzIGVuYWJsZWRcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZURhdGFFeHBvcnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGbGFnIGluZGljYXRpbmcgd2hldGhlciBkYXRhIHNob3VsZCBiZSBpbW1lZGlhdGVseSBwdXJnZWQgYWZ0ZXIgMzAgZGF5c1xuICAgKiBpbnN0ZWFkIG9mIHRoZSBjb25maWd1cmVkIHJldGVudGlvbiBwZXJpb2RcbiAgICovXG4gIHJlYWRvbmx5IGltbWVkaWF0ZVB1cmdlRGF0YU9uMzBEYXlzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIgbG9nIGFjY2VzcyB1c2luZyBBQURJQU0gaXMgZGlzYWJsZWRcbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVMb2NhbEF1dGg/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBGbGFnIGluZGljYXRpbmcgd2hldGhlciBjbHVzdGVyIHJlc291cmNlIHBlcm1pc3Npb25zIGFyZSBlbmFibGVkXG4gICAqL1xuICByZWFkb25seSBlbmFibGVMb2dBY2Nlc3NVc2luZ09ubHlSZXNvdXJjZVBlcm1pc3Npb25zPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBNYW5hZ2VkIGlkZW50aXR5IGNvbmZpZ3VyYXRpb24gZm9yIHRoZSB3b3Jrc3BhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dBbmFseXRpY3NXb3Jrc3BhY2VJZGVudGl0eSB7XG4gIC8qKlxuICAgKiBUeXBlIG9mIG1hbmFnZWQgaWRlbnRpdHlcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6XG4gICAgfCBcIlN5c3RlbUFzc2lnbmVkXCJcbiAgICB8IFwiVXNlckFzc2lnbmVkXCJcbiAgICB8IFwiU3lzdGVtQXNzaWduZWQsVXNlckFzc2lnbmVkXCJcbiAgICB8IFwiTm9uZVwiO1xuXG4gIC8qKlxuICAgKiBVc2VyLWFzc2lnbmVkIGlkZW50aXR5IHJlc291cmNlIElEc1xuICAgKiBSZXF1aXJlZCB3aGVuIHR5cGUgaW5jbHVkZXMgVXNlckFzc2lnbmVkXG4gICAqL1xuICByZWFkb25seSB1c2VyQXNzaWduZWRJZGVudGl0aWVzPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciB0aGUgdW5pZmllZCBBenVyZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVxuICpcbiAqIEV4dGVuZHMgQXphcGlSZXNvdXJjZVByb3BzIHdpdGggTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2Ugc3BlY2lmaWMgcHJvcGVydGllc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ0FuYWx5dGljc1dvcmtzcGFjZVByb3BzIGV4dGVuZHMgQXphcGlSZXNvdXJjZVByb3BzIHtcbiAgLyoqXG4gICAqIFJlc291cmNlIEdyb3VwIElEIHdoZXJlIHRoZSB3b3Jrc3BhY2Ugd2lsbCBiZSBjcmVhdGVkXG4gICAqIFRoZSB3b3Jrc3BhY2Ugd2lsbCBiZSBjcmVhdGVkIGFzIGEgY2hpbGQgb2YgdGhpcyByZXNvdXJjZSBncm91cFxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VHcm91cElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERhdGEgcmV0ZW50aW9uIHBlcmlvZCBpbiBkYXlzXG4gICAqXG4gICAqIFZhbHVlcyBiZXR3ZWVuIDMwIGFuZCA3MzAgYXJlIHN1cHBvcnRlZCBmb3IgcGF5LWFzLXlvdS1nbyBwcmljaW5nLlxuICAgKiBGcmVlIHRpZXIgaXMgbGltaXRlZCB0byA3IGRheXMuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgMzBcbiAgICovXG4gIHJlYWRvbmx5IHJldGVudGlvbkluRGF5cz86IG51bWJlcjtcblxuICAvKipcbiAgICogU0tVIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSB3b3Jrc3BhY2VcbiAgICpcbiAgICogRGV0ZXJtaW5lcyBwcmljaW5nIHRpZXIgYW5kIGNhcGFiaWxpdGllcyBvZiB0aGUgd29ya3NwYWNlLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIHsgbmFtZTogXCJQZXJHQjIwMThcIiB9XG4gICAqL1xuICByZWFkb25seSBza3U/OiBMb2dBbmFseXRpY3NXb3Jrc3BhY2VTa3U7XG5cbiAgLyoqXG4gICAqIERhaWx5IHZvbHVtZSBjYXAgZm9yIGRhdGEgaW5nZXN0aW9uXG4gICAqXG4gICAqIFdoZW4gdGhlIGRhaWx5IGNhcCBpcyByZWFjaGVkLCBkYXRhIGluZ2VzdGlvbiBzdG9wcyB1bnRpbCB0aGUgbmV4dCBkYXkuXG4gICAqIEEgdmFsdWUgb2YgZGFpbHlRdW90YUdiOiAtMSBtZWFucyBubyBjYXAuXG4gICAqL1xuICByZWFkb25seSB3b3Jrc3BhY2VDYXBwaW5nPzogTG9nQW5hbHl0aWNzV29ya3NwYWNlQ2FwcGluZztcblxuICAvKipcbiAgICogUHVibGljIG5ldHdvcmsgYWNjZXNzIGZvciBkYXRhIGluZ2VzdGlvblxuICAgKlxuICAgKiBDb250cm9scyB3aGV0aGVyIGRhdGEgY2FuIGJlIGluZ2VzdGVkIG92ZXIgdGhlIHB1YmxpYyBpbnRlcm5ldC5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSBcIkVuYWJsZWRcIlxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGljTmV0d29ya0FjY2Vzc0ZvckluZ2VzdGlvbj86IFwiRW5hYmxlZFwiIHwgXCJEaXNhYmxlZFwiO1xuXG4gIC8qKlxuICAgKiBQdWJsaWMgbmV0d29yayBhY2Nlc3MgZm9yIHF1ZXJ5aW5nIGRhdGFcbiAgICpcbiAgICogQ29udHJvbHMgd2hldGhlciBxdWVyaWVzIGNhbiBiZSBleGVjdXRlZCBvdmVyIHRoZSBwdWJsaWMgaW50ZXJuZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgXCJFbmFibGVkXCJcbiAgICovXG4gIHJlYWRvbmx5IHB1YmxpY05ldHdvcmtBY2Nlc3NGb3JRdWVyeT86IFwiRW5hYmxlZFwiIHwgXCJEaXNhYmxlZFwiO1xuXG4gIC8qKlxuICAgKiBXb3Jrc3BhY2UgZmVhdHVyZXMgY29uZmlndXJhdGlvblxuICAgKlxuICAgKiBFbmFibGVzIG9yIGRpc2FibGVzIHNwZWNpZmljIHdvcmtzcGFjZSBmZWF0dXJlcyBsaWtlIGRhdGEgZXhwb3J0LFxuICAgKiBpbW1lZGlhdGUgcHVyZ2UsIGFuZCBsb2NhbCBhdXRoZW50aWNhdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGZlYXR1cmVzPzogTG9nQW5hbHl0aWNzV29ya3NwYWNlRmVhdHVyZXM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgY3VzdG9tZXItbWFuYWdlZCBrZXlzIGFyZSByZXF1aXJlZCBmb3Igc2F2ZWQgc2VhcmNoZXMgYW5kIGFsZXJ0c1xuICAgKlxuICAgKiBXaGVuIGVuYWJsZWQsIGFsbCBzYXZlZCBzZWFyY2hlcyBhbmQgYWxlcnRzIG11c3QgdXNlIGN1c3RvbWVyLW1hbmFnZWQga2V5cy5cbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlQ21rRm9yUXVlcnk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZSBJRCBvZiB0aGUgZGVmYXVsdCBEYXRhIENvbGxlY3Rpb24gUnVsZVxuICAgKlxuICAgKiBBc3NvY2lhdGVzIGEgZGVmYXVsdCBEQ1Igd2l0aCB0aGUgd29ya3NwYWNlIGZvciBkYXRhIGNvbGxlY3Rpb24uXG4gICAqIE9ubHkgYXZhaWxhYmxlIGluIEFQSSB2ZXJzaW9uIDIwMjMtMDktMDEgYW5kIGxhdGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdERhdGFDb2xsZWN0aW9uUnVsZVJlc291cmNlSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1hbmFnZWQgaWRlbnRpdHkgY29uZmlndXJhdGlvbiBmb3IgdGhlIHdvcmtzcGFjZVxuICAgKlxuICAgKiBFbmFibGVzIG1hbmFnZWQgaWRlbnRpdHkgYXV0aGVudGljYXRpb24gZm9yIHRoZSB3b3Jrc3BhY2UuXG4gICAqL1xuICByZWFkb25seSBpZGVudGl0eT86IExvZ0FuYWx5dGljc1dvcmtzcGFjZUlkZW50aXR5O1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIHRoZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSByZXF1ZXN0IGJvZHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dBbmFseXRpY3NXb3Jrc3BhY2VCb2R5UHJvcGVydGllcyB7XG4gIHJlYWRvbmx5IHJldGVudGlvbkluRGF5cz86IG51bWJlcjtcbiAgcmVhZG9ubHkgc2t1PzogTG9nQW5hbHl0aWNzV29ya3NwYWNlU2t1O1xuICByZWFkb25seSB3b3Jrc3BhY2VDYXBwaW5nPzogTG9nQW5hbHl0aWNzV29ya3NwYWNlQ2FwcGluZztcbiAgcmVhZG9ubHkgcHVibGljTmV0d29ya0FjY2Vzc0ZvckluZ2VzdGlvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgcHVibGljTmV0d29ya0FjY2Vzc0ZvclF1ZXJ5Pzogc3RyaW5nO1xuICByZWFkb25seSBmZWF0dXJlcz86IExvZ0FuYWx5dGljc1dvcmtzcGFjZUZlYXR1cmVzO1xuICByZWFkb25seSBmb3JjZUNta0ZvclF1ZXJ5PzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZGVmYXVsdERhdGFDb2xsZWN0aW9uUnVsZVJlc291cmNlSWQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIHJlc291cmNlIGJvZHkgaW50ZXJmYWNlIGZvciBBenVyZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSBBUEkgY2FsbHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dBbmFseXRpY3NXb3Jrc3BhY2VCb2R5IHtcbiAgcmVhZG9ubHkgcHJvcGVydGllczogTG9nQW5hbHl0aWNzV29ya3NwYWNlQm9keVByb3BlcnRpZXM7XG4gIHJlYWRvbmx5IGlkZW50aXR5PzogTG9nQW5hbHl0aWNzV29ya3NwYWNlSWRlbnRpdHk7XG59XG5cbi8qKlxuICogVW5pZmllZCBBenVyZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSBpbXBsZW1lbnRhdGlvblxuICpcbiAqIFRoaXMgY2xhc3MgcHJvdmlkZXMgYSBzaW5nbGUsIHZlcnNpb24tYXdhcmUgaW1wbGVtZW50YXRpb24gdGhhdCBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvblxuICogcmVzb2x1dGlvbiwgc2NoZW1hIHZhbGlkYXRpb24sIGFuZCBwcm9wZXJ0eSB0cmFuc2Zvcm1hdGlvbiB3aGlsZSBtYWludGFpbmluZyBmdWxsIEpTSUkgY29tcGxpYW5jZS5cbiAqXG4gKiBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSBpcyB0aGUgY2VudHJhbCBkZXN0aW5hdGlvbiBmb3IgbG9nIGRhdGEgZnJvbSBBenVyZSByZXNvdXJjZXMsXG4gKiBhcHBsaWNhdGlvbnMsIGFuZCBvbi1wcmVtaXNlcyBpbmZyYXN0cnVjdHVyZS4gSXQgZW5hYmxlcyBxdWVyeWluZywgYW5hbHlzaXMsIGFuZFxuICogdmlzdWFsaXphdGlvbiBvZiBsb2cgZGF0YSB1c2luZyBLdXN0byBRdWVyeSBMYW5ndWFnZSAoS1FMKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQmFzaWMgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2Ugd2l0aCBkZWZhdWx0IHNldHRpbmdzOlxuICogY29uc3Qgd29ya3NwYWNlID0gbmV3IExvZ0FuYWx5dGljc1dvcmtzcGFjZSh0aGlzLCBcIm15LXdvcmtzcGFjZVwiLCB7XG4gKiAgIG5hbWU6IFwibXktbG9nLWFuYWx5dGljc1wiLFxuICogICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAqICAgcmVzb3VyY2VHcm91cElkOiByZXNvdXJjZUdyb3VwLmlkLFxuICogfSk7XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIExvZyBBbmFseXRpY3MgV29ya3NwYWNlIHdpdGggY3VzdG9tIHJldGVudGlvbiBhbmQgU0tVOlxuICogY29uc3Qgd29ya3NwYWNlID0gbmV3IExvZ0FuYWx5dGljc1dvcmtzcGFjZSh0aGlzLCBcInByb2R1Y3Rpb24td29ya3NwYWNlXCIsIHtcbiAqICAgbmFtZTogXCJwcm9kdWN0aW9uLWxvZ3NcIixcbiAqICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gKiAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAqICAgcmV0ZW50aW9uSW5EYXlzOiA5MCxcbiAqICAgc2t1OiB7XG4gKiAgICAgbmFtZTogXCJQZXJHQjIwMThcIlxuICogICB9LFxuICogICBwdWJsaWNOZXR3b3JrQWNjZXNzRm9ySW5nZXN0aW9uOiBcIkVuYWJsZWRcIixcbiAqICAgcHVibGljTmV0d29ya0FjY2Vzc0ZvclF1ZXJ5OiBcIkVuYWJsZWRcIixcbiAqICAgdGFnczoge1xuICogICAgIGVudmlyb25tZW50OiBcInByb2R1Y3Rpb25cIlxuICogICB9XG4gKiB9KTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2Ugd2l0aCBjYXBhY2l0eSByZXNlcnZhdGlvbjpcbiAqIGNvbnN0IHdvcmtzcGFjZSA9IG5ldyBMb2dBbmFseXRpY3NXb3Jrc3BhY2UodGhpcywgXCJoaWdoLXZvbHVtZS13b3Jrc3BhY2VcIiwge1xuICogICBuYW1lOiBcImhpZ2gtdm9sdW1lLWxvZ3NcIixcbiAqICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gKiAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAqICAgcmV0ZW50aW9uSW5EYXlzOiAzNjUsXG4gKiAgIHNrdToge1xuICogICAgIG5hbWU6IFwiQ2FwYWNpdHlSZXNlcnZhdGlvblwiLFxuICogICAgIGNhcGFjaXR5UmVzZXJ2YXRpb25MZXZlbDogNTAwXG4gKiAgIH0sXG4gKiAgIHdvcmtzcGFjZUNhcHBpbmc6IHtcbiAqICAgICBkYWlseVF1b3RhR2I6IDEwMFxuICogICB9XG4gKiB9KTtcbiAqXG4gKiBAc3RhYmlsaXR5IHN0YWJsZVxuICovXG5leHBvcnQgY2xhc3MgTG9nQW5hbHl0aWNzV29ya3NwYWNlIGV4dGVuZHMgQXphcGlSZXNvdXJjZSB7XG4gIHN0YXRpYyB7XG4gICAgQXphcGlSZXNvdXJjZS5yZWdpc3RlclNjaGVtYXMoXG4gICAgICBMT0dfQU5BTFlUSUNTX1dPUktTUEFDRV9UWVBFLFxuICAgICAgQUxMX0xPR19BTkFMWVRJQ1NfV09SS1NQQUNFX1ZFUlNJT05TLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGlucHV0IHByb3BlcnRpZXMgZm9yIHRoaXMgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2UgaW5zdGFuY2VcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcm9wczogTG9nQW5hbHl0aWNzV29ya3NwYWNlUHJvcHM7XG5cbiAgLy8gT3V0cHV0IHByb3BlcnRpZXMgZm9yIGVhc3kgYWNjZXNzIGFuZCByZWZlcmVuY2luZ1xuICBwdWJsaWMgcmVhZG9ubHkgaWRPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVPdXRwdXQ6IGNka3RmLlRlcnJhZm9ybU91dHB1dDtcbiAgcHVibGljIHJlYWRvbmx5IHdvcmtzcGFjZUlkT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG4gIHB1YmxpYyByZWFkb25seSBjdXN0b21lcklkT3V0cHV0OiBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQ7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgQXp1cmUgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2UgdXNpbmcgdGhlIEF6YXBpUmVzb3VyY2UgZnJhbWV3b3JrXG4gICAqXG4gICAqIFRoZSBjb25zdHJ1Y3RvciBhdXRvbWF0aWNhbGx5IGhhbmRsZXMgdmVyc2lvbiByZXNvbHV0aW9uLCBzY2hlbWEgcmVnaXN0cmF0aW9uLFxuICAgKiB2YWxpZGF0aW9uLCBhbmQgcmVzb3VyY2UgY3JlYXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3RcbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlXG4gICAqIEBwYXJhbSBwcm9wcyAtIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIExvZyBBbmFseXRpY3MgV29ya3NwYWNlXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTG9nQW5hbHl0aWNzV29ya3NwYWNlUHJvcHMpIHtcbiAgICAvLyBWYWxpZGF0ZSByZXRlbnRpb24gZGF5cyBpZiBwcm92aWRlZFxuICAgIGlmIChwcm9wcy5yZXRlbnRpb25JbkRheXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHByb3BzLnJldGVudGlvbkluRGF5cyA8IDMwIHx8IHByb3BzLnJldGVudGlvbkluRGF5cyA+IDczMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJyZXRlbnRpb25JbkRheXMgbXVzdCBiZSBiZXR3ZWVuIDMwIGFuZCA3MzAgZGF5c1wiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZSBjYXBhY2l0eSByZXNlcnZhdGlvbiBsZXZlbCBpZiBDYXBhY2l0eVJlc2VydmF0aW9uIFNLVSBpcyB1c2VkXG4gICAgaWYgKHByb3BzLnNrdT8ubmFtZSA9PT0gXCJDYXBhY2l0eVJlc2VydmF0aW9uXCIpIHtcbiAgICAgIGNvbnN0IHZhbGlkTGV2ZWxzID0gWzEwMCwgMjAwLCAzMDAsIDQwMCwgNTAwLCAxMDAwLCAyMDAwLCA1MDAwXTtcbiAgICAgIGlmIChcbiAgICAgICAgcHJvcHMuc2t1LmNhcGFjaXR5UmVzZXJ2YXRpb25MZXZlbCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAgICF2YWxpZExldmVscy5pbmNsdWRlcyhwcm9wcy5za3UuY2FwYWNpdHlSZXNlcnZhdGlvbkxldmVsKVxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgY2FwYWNpdHlSZXNlcnZhdGlvbkxldmVsIG11c3QgYmUgb25lIG9mICR7dmFsaWRMZXZlbHMuam9pbihcIiwgXCIpfSB3aGVuIHVzaW5nIENhcGFjaXR5UmVzZXJ2YXRpb24gU0tVYCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcblxuICAgIC8vIENyZWF0ZSBUZXJyYWZvcm0gb3V0cHV0cyBmb3IgZWFzeSBhY2Nlc3MgYW5kIHJlZmVyZW5jaW5nIGZyb20gb3RoZXIgcmVzb3VyY2VzXG4gICAgdGhpcy5pZE91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJpZFwiLCB7XG4gICAgICB2YWx1ZTogdGhpcy5pZCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBJRCBvZiB0aGUgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2VcIixcbiAgICB9KTtcblxuICAgIHRoaXMubmFtZU91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJuYW1lXCIsIHtcbiAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm5hbWV9YCxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBuYW1lIG9mIHRoZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy53b3Jrc3BhY2VJZE91dHB1dCA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQodGhpcywgXCJ3b3Jrc3BhY2VfaWRcIiwge1xuICAgICAgdmFsdWU6IGBcXCR7JHt0aGlzLnRlcnJhZm9ybVJlc291cmNlLmZxbn0ub3V0cHV0LnByb3BlcnRpZXMuY3VzdG9tZXJJZH1gLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIFwiVGhlIHVuaXF1ZSBpZGVudGlmaWVyICh3b3Jrc3BhY2UgSUQpIG9mIHRoZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVwiLFxuICAgIH0pO1xuXG4gICAgdGhpcy5jdXN0b21lcklkT3V0cHV0ID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dCh0aGlzLCBcImN1c3RvbWVyX2lkXCIsIHtcbiAgICAgIHZhbHVlOiBgXFwkeyR7dGhpcy50ZXJyYWZvcm1SZXNvdXJjZS5mcW59Lm91dHB1dC5wcm9wZXJ0aWVzLmN1c3RvbWVySWR9YCxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIlRoZSBjdXN0b21lciBJRCAoc2FtZSBhcyB3b3Jrc3BhY2UgSUQpIG9mIHRoZSBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVwiLFxuICAgIH0pO1xuXG4gICAgLy8gT3ZlcnJpZGUgbG9naWNhbCBJRHNcbiAgICB0aGlzLmlkT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwiaWRcIik7XG4gICAgdGhpcy5uYW1lT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwibmFtZVwiKTtcbiAgICB0aGlzLndvcmtzcGFjZUlkT3V0cHV0Lm92ZXJyaWRlTG9naWNhbElkKFwid29ya3NwYWNlX2lkXCIpO1xuICAgIHRoaXMuY3VzdG9tZXJJZE91dHB1dC5vdmVycmlkZUxvZ2ljYWxJZChcImN1c3RvbWVyX2lkXCIpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gUkVRVUlSRUQgQUJTVFJBQ1QgTUVUSE9EUyBGUk9NIEF6YXBpUmVzb3VyY2VcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvKipcbiAgICogR2V0cyB0aGUgZGVmYXVsdCBBUEkgdmVyc2lvbiB0byB1c2Ugd2hlbiBubyBleHBsaWNpdCB2ZXJzaW9uIGlzIHNwZWNpZmllZFxuICAgKiBSZXR1cm5zIHRoZSBsYXRlc3Qgc3RhYmxlIHZlcnNpb24gYXMgdGhlIGRlZmF1bHRcbiAgICovXG4gIHByb3RlY3RlZCBkZWZhdWx0VmVyc2lvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiBcIjIwMjMtMDktMDFcIjtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBBenVyZSByZXNvdXJjZSB0eXBlIGZvciBMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZVxuICAgKi9cbiAgcHJvdGVjdGVkIHJlc291cmNlVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBMT0dfQU5BTFlUSUNTX1dPUktTUEFDRV9UWVBFO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIEFQSSBzY2hlbWEgZm9yIHRoZSByZXNvbHZlZCB2ZXJzaW9uXG4gICAqIFVzZXMgdGhlIGZyYW1ld29yaydzIHNjaGVtYSByZXNvbHV0aW9uIHRvIGdldCB0aGUgYXBwcm9wcmlhdGUgc2NoZW1hXG4gICAqL1xuICBwcm90ZWN0ZWQgYXBpU2NoZW1hKCk6IEFwaVNjaGVtYSB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZVNjaGVtYSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IHRoaXMgcmVzb3VyY2UgdHlwZSByZXF1aXJlcyBhIGxvY2F0aW9uXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVxdWlyZXNMb2NhdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSByZXNvdXJjZSBib2R5IGZvciB0aGUgQXp1cmUgQVBJIGNhbGxcbiAgICogVHJhbnNmb3JtcyB0aGUgaW5wdXQgcHJvcGVydGllcyBpbnRvIHRoZSBKU09OIGZvcm1hdCBleHBlY3RlZCBieSBBenVyZSBSRVNUIEFQSVxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZVJlc291cmNlQm9keShwcm9wczogYW55KTogYW55IHtcbiAgICBjb25zdCB0eXBlZFByb3BzID0gcHJvcHMgYXMgTG9nQW5hbHl0aWNzV29ya3NwYWNlUHJvcHM7XG5cbiAgICBjb25zdCBib2R5OiBhbnkgPSB7XG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIHJldGVudGlvbkluRGF5czogdHlwZWRQcm9wcy5yZXRlbnRpb25JbkRheXMgPz8gMzAsXG4gICAgICAgIHNrdTogdHlwZWRQcm9wcy5za3UgPz8geyBuYW1lOiBcIlBlckdCMjAxOFwiIH0sXG4gICAgICAgIHB1YmxpY05ldHdvcmtBY2Nlc3NGb3JJbmdlc3Rpb246XG4gICAgICAgICAgdHlwZWRQcm9wcy5wdWJsaWNOZXR3b3JrQWNjZXNzRm9ySW5nZXN0aW9uID8/IFwiRW5hYmxlZFwiLFxuICAgICAgICBwdWJsaWNOZXR3b3JrQWNjZXNzRm9yUXVlcnk6XG4gICAgICAgICAgdHlwZWRQcm9wcy5wdWJsaWNOZXR3b3JrQWNjZXNzRm9yUXVlcnkgPz8gXCJFbmFibGVkXCIsXG4gICAgICB9LFxuICAgIH07XG5cbiAgICAvLyBBZGQgb3B0aW9uYWwgcHJvcGVydGllcyBvbmx5IGlmIHNwZWNpZmllZFxuICAgIGlmICh0eXBlZFByb3BzLndvcmtzcGFjZUNhcHBpbmcpIHtcbiAgICAgIGJvZHkucHJvcGVydGllcy53b3Jrc3BhY2VDYXBwaW5nID0gdHlwZWRQcm9wcy53b3Jrc3BhY2VDYXBwaW5nO1xuICAgIH1cblxuICAgIGlmICh0eXBlZFByb3BzLmZlYXR1cmVzKSB7XG4gICAgICBib2R5LnByb3BlcnRpZXMuZmVhdHVyZXMgPSB0eXBlZFByb3BzLmZlYXR1cmVzO1xuICAgIH1cblxuICAgIGlmICh0eXBlZFByb3BzLmZvcmNlQ21rRm9yUXVlcnkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgYm9keS5wcm9wZXJ0aWVzLmZvcmNlQ21rRm9yUXVlcnkgPSB0eXBlZFByb3BzLmZvcmNlQ21rRm9yUXVlcnk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVkUHJvcHMuZGVmYXVsdERhdGFDb2xsZWN0aW9uUnVsZVJlc291cmNlSWQpIHtcbiAgICAgIGJvZHkucHJvcGVydGllcy5kZWZhdWx0RGF0YUNvbGxlY3Rpb25SdWxlUmVzb3VyY2VJZCA9XG4gICAgICAgIHR5cGVkUHJvcHMuZGVmYXVsdERhdGFDb2xsZWN0aW9uUnVsZVJlc291cmNlSWQ7XG4gICAgfVxuXG4gICAgLy8gQWRkIGlkZW50aXR5IGF0IHRoZSB0b3AgbGV2ZWwgaWYgc3BlY2lmaWVkXG4gICAgaWYgKHR5cGVkUHJvcHMuaWRlbnRpdHkpIHtcbiAgICAgIGJvZHkuaWRlbnRpdHkgPSB0eXBlZFByb3BzLmlkZW50aXR5O1xuICAgIH1cblxuICAgIHJldHVybiBib2R5O1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmVzIHRoZSBwYXJlbnQgcmVzb3VyY2UgSUQgZm9yIExvZyBBbmFseXRpY3MgV29ya3NwYWNlXG4gICAqIExvZyBBbmFseXRpY3MgV29ya3NwYWNlIGlzIGEgdG9wLWxldmVsIHJlc291cmNlIHdpdGhpbiBhIHJlc291cmNlIGdyb3VwXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyAtIFRoZSByZXNvdXJjZSBwcm9wZXJ0aWVzXG4gICAqIEByZXR1cm5zIFRoZSBwYXJlbnQgcmVzb3VyY2UgSUQgKHRoZSByZXNvdXJjZSBncm91cClcbiAgICovXG4gIHByb3RlY3RlZCByZXNvbHZlUGFyZW50SWQocHJvcHM6IGFueSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIChwcm9wcyBhcyBMb2dBbmFseXRpY3NXb3Jrc3BhY2VQcm9wcykucmVzb3VyY2VHcm91cElkO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Integration test for Azure Log Analytics Workspace
3
+ *
4
+ * This test demonstrates basic usage of the LogAnalyticsWorkspace construct
5
+ * and validates deployment, idempotency, and cleanup.
6
+ *
7
+ * Run with: npm run integration:nostream
8
+ */
9
+ import "cdktn/lib/testing/adapters/jest";
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ /**
3
+ * Integration test for Azure Log Analytics Workspace
4
+ *
5
+ * This test demonstrates basic usage of the LogAnalyticsWorkspace construct
6
+ * and validates deployment, idempotency, and cleanup.
7
+ *
8
+ * Run with: npm run integration:nostream
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ const cdktn_1 = require("cdktn");
12
+ require("cdktn/lib/testing/adapters/jest");
13
+ const azure_resourcegroup_1 = require("../../azure-resourcegroup");
14
+ const provider_1 = require("../../core-azure/lib/azapi/providers-azapi/provider");
15
+ const testing_1 = require("../../testing");
16
+ const log_analytics_workspace_1 = require("../lib/log-analytics-workspace");
17
+ /**
18
+ * Example stack demonstrating Log Analytics Workspace usage
19
+ */
20
+ class LogAnalyticsWorkspaceExampleStack extends cdktn_1.TerraformStack {
21
+ constructor(scope, id) {
22
+ super(scope, id);
23
+ // Configure AZAPI provider
24
+ new provider_1.AzapiProvider(this, "azapi", {});
25
+ // Create a resource group
26
+ const resourceGroup = new azure_resourcegroup_1.ResourceGroup(this, "example-rg", {
27
+ name: "law-example-rg",
28
+ location: "eastus",
29
+ tags: {
30
+ environment: "example",
31
+ purpose: "integration-test",
32
+ },
33
+ });
34
+ // Example 1: Basic Log Analytics Workspace
35
+ new log_analytics_workspace_1.LogAnalyticsWorkspace(this, "basic-workspace", {
36
+ name: "law-basic-example",
37
+ location: resourceGroup.props.location,
38
+ resourceGroupId: resourceGroup.id,
39
+ tags: {
40
+ example: "basic",
41
+ },
42
+ });
43
+ // Example 2: Log Analytics Workspace with specific version
44
+ new log_analytics_workspace_1.LogAnalyticsWorkspace(this, "versioned-workspace", {
45
+ name: "law-versioned-example",
46
+ location: resourceGroup.props.location,
47
+ resourceGroupId: resourceGroup.id,
48
+ retentionInDays: 60,
49
+ sku: {
50
+ name: "PerGB2018",
51
+ },
52
+ apiVersion: "2023-09-01",
53
+ tags: {
54
+ example: "versioned",
55
+ },
56
+ });
57
+ }
58
+ }
59
+ describe("Log Analytics Workspace Integration Test", () => {
60
+ it("should deploy, validate idempotency, and cleanup Log Analytics Workspace resources", () => {
61
+ const app = cdktn_1.Testing.app();
62
+ const stack = new LogAnalyticsWorkspaceExampleStack(app, "test-log-analytics-workspace");
63
+ const synthesized = cdktn_1.Testing.fullSynth(stack);
64
+ // This will:
65
+ // 1. Run terraform apply to deploy resources
66
+ // 2. Run terraform plan to check idempotency (no changes expected)
67
+ // 3. Run terraform destroy to cleanup resources
68
+ (0, testing_1.TerraformApplyCheckAndDestroy)(synthesized);
69
+ }, 600000); // 10 minute timeout for deployment and cleanup
70
+ });
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nLWFuYWx5dGljcy13b3Jrc3BhY2UuaW50ZWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtbG9nYW5hbHl0aWNzd29ya3NwYWNlL3Rlc3QvbG9nLWFuYWx5dGljcy13b3Jrc3BhY2UuaW50ZWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7O0dBT0c7O0FBRUgsaUNBQWdEO0FBRWhELDJDQUF5QztBQUN6QyxtRUFBMEQ7QUFDMUQsa0ZBQW9GO0FBQ3BGLDJDQUE4RDtBQUM5RCw0RUFBdUU7QUFFdkU7O0dBRUc7QUFDSCxNQUFNLGlDQUFrQyxTQUFRLHNCQUFjO0lBQzVELFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsMkJBQTJCO1FBQzNCLElBQUksd0JBQWEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXJDLDBCQUEwQjtRQUMxQixNQUFNLGFBQWEsR0FBRyxJQUFJLG1DQUFhLENBQUMsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUMxRCxJQUFJLEVBQUUsZ0JBQWdCO1lBQ3RCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLElBQUksRUFBRTtnQkFDSixXQUFXLEVBQUUsU0FBUztnQkFDdEIsT0FBTyxFQUFFLGtCQUFrQjthQUM1QjtTQUNGLENBQUMsQ0FBQztRQUVILDJDQUEyQztRQUMzQyxJQUFJLCtDQUFxQixDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRTtZQUNqRCxJQUFJLEVBQUUsbUJBQW1CO1lBQ3pCLFFBQVEsRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVM7WUFDdkMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxFQUFFO1lBQ2pDLElBQUksRUFBRTtnQkFDSixPQUFPLEVBQUUsT0FBTzthQUNqQjtTQUNGLENBQUMsQ0FBQztRQUVILDJEQUEyRDtRQUMzRCxJQUFJLCtDQUFxQixDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRTtZQUNyRCxJQUFJLEVBQUUsdUJBQXVCO1lBQzdCLFFBQVEsRUFBRSxhQUFhLENBQUMsS0FBSyxDQUFDLFFBQVM7WUFDdkMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxFQUFFO1lBQ2pDLGVBQWUsRUFBRSxFQUFFO1lBQ25CLEdBQUcsRUFBRTtnQkFDSCxJQUFJLEVBQUUsV0FBVzthQUNsQjtZQUNELFVBQVUsRUFBRSxZQUFZO1lBQ3hCLElBQUksRUFBRTtnQkFDSixPQUFPLEVBQUUsV0FBVzthQUNyQjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQUVELFFBQVEsQ0FBQywwQ0FBMEMsRUFBRSxHQUFHLEVBQUU7SUFDeEQsRUFBRSxDQUFDLG9GQUFvRixFQUFFLEdBQUcsRUFBRTtRQUM1RixNQUFNLEdBQUcsR0FBRyxlQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDMUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxpQ0FBaUMsQ0FDakQsR0FBRyxFQUNILDhCQUE4QixDQUMvQixDQUFDO1FBQ0YsTUFBTSxXQUFXLEdBQUcsZUFBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3QyxhQUFhO1FBQ2IsNkNBQTZDO1FBQzdDLG1FQUFtRTtRQUNuRSxnREFBZ0Q7UUFDaEQsSUFBQSx1Q0FBNkIsRUFBQyxXQUFXLENBQUMsQ0FBQztJQUM3QyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQywrQ0FBK0M7QUFDN0QsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEludGVncmF0aW9uIHRlc3QgZm9yIEF6dXJlIExvZyBBbmFseXRpY3MgV29ya3NwYWNlXG4gKlxuICogVGhpcyB0ZXN0IGRlbW9uc3RyYXRlcyBiYXNpYyB1c2FnZSBvZiB0aGUgTG9nQW5hbHl0aWNzV29ya3NwYWNlIGNvbnN0cnVjdFxuICogYW5kIHZhbGlkYXRlcyBkZXBsb3ltZW50LCBpZGVtcG90ZW5jeSwgYW5kIGNsZWFudXAuXG4gKlxuICogUnVuIHdpdGg6IG5wbSBydW4gaW50ZWdyYXRpb246bm9zdHJlYW1cbiAqL1xuXG5pbXBvcnQgeyBUZXN0aW5nLCBUZXJyYWZvcm1TdGFjayB9IGZyb20gXCJjZGt0blwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCBcImNka3RuL2xpYi90ZXN0aW5nL2FkYXB0ZXJzL2plc3RcIjtcbmltcG9ydCB7IFJlc291cmNlR3JvdXAgfSBmcm9tIFwiLi4vLi4vYXp1cmUtcmVzb3VyY2Vncm91cFwiO1xuaW1wb3J0IHsgQXphcGlQcm92aWRlciB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi9hemFwaS9wcm92aWRlcnMtYXphcGkvcHJvdmlkZXJcIjtcbmltcG9ydCB7IFRlcnJhZm9ybUFwcGx5Q2hlY2tBbmREZXN0cm95IH0gZnJvbSBcIi4uLy4uL3Rlc3RpbmdcIjtcbmltcG9ydCB7IExvZ0FuYWx5dGljc1dvcmtzcGFjZSB9IGZyb20gXCIuLi9saWIvbG9nLWFuYWx5dGljcy13b3Jrc3BhY2VcIjtcblxuLyoqXG4gKiBFeGFtcGxlIHN0YWNrIGRlbW9uc3RyYXRpbmcgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2UgdXNhZ2VcbiAqL1xuY2xhc3MgTG9nQW5hbHl0aWNzV29ya3NwYWNlRXhhbXBsZVN0YWNrIGV4dGVuZHMgVGVycmFmb3JtU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIC8vIENvbmZpZ3VyZSBBWkFQSSBwcm92aWRlclxuICAgIG5ldyBBemFwaVByb3ZpZGVyKHRoaXMsIFwiYXphcGlcIiwge30pO1xuXG4gICAgLy8gQ3JlYXRlIGEgcmVzb3VyY2UgZ3JvdXBcbiAgICBjb25zdCByZXNvdXJjZUdyb3VwID0gbmV3IFJlc291cmNlR3JvdXAodGhpcywgXCJleGFtcGxlLXJnXCIsIHtcbiAgICAgIG5hbWU6IFwibGF3LWV4YW1wbGUtcmdcIixcbiAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgdGFnczoge1xuICAgICAgICBlbnZpcm9ubWVudDogXCJleGFtcGxlXCIsXG4gICAgICAgIHB1cnBvc2U6IFwiaW50ZWdyYXRpb24tdGVzdFwiLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIEV4YW1wbGUgMTogQmFzaWMgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2VcbiAgICBuZXcgTG9nQW5hbHl0aWNzV29ya3NwYWNlKHRoaXMsIFwiYmFzaWMtd29ya3NwYWNlXCIsIHtcbiAgICAgIG5hbWU6IFwibGF3LWJhc2ljLWV4YW1wbGVcIixcbiAgICAgIGxvY2F0aW9uOiByZXNvdXJjZUdyb3VwLnByb3BzLmxvY2F0aW9uISxcbiAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgZXhhbXBsZTogXCJiYXNpY1wiLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIEV4YW1wbGUgMjogTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2Ugd2l0aCBzcGVjaWZpYyB2ZXJzaW9uXG4gICAgbmV3IExvZ0FuYWx5dGljc1dvcmtzcGFjZSh0aGlzLCBcInZlcnNpb25lZC13b3Jrc3BhY2VcIiwge1xuICAgICAgbmFtZTogXCJsYXctdmVyc2lvbmVkLWV4YW1wbGVcIixcbiAgICAgIGxvY2F0aW9uOiByZXNvdXJjZUdyb3VwLnByb3BzLmxvY2F0aW9uISxcbiAgICAgIHJlc291cmNlR3JvdXBJZDogcmVzb3VyY2VHcm91cC5pZCxcbiAgICAgIHJldGVudGlvbkluRGF5czogNjAsXG4gICAgICBza3U6IHtcbiAgICAgICAgbmFtZTogXCJQZXJHQjIwMThcIixcbiAgICAgIH0sXG4gICAgICBhcGlWZXJzaW9uOiBcIjIwMjMtMDktMDFcIixcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgZXhhbXBsZTogXCJ2ZXJzaW9uZWRcIixcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cblxuZGVzY3JpYmUoXCJMb2cgQW5hbHl0aWNzIFdvcmtzcGFjZSBJbnRlZ3JhdGlvbiBUZXN0XCIsICgpID0+IHtcbiAgaXQoXCJzaG91bGQgZGVwbG95LCB2YWxpZGF0ZSBpZGVtcG90ZW5jeSwgYW5kIGNsZWFudXAgTG9nIEFuYWx5dGljcyBXb3Jrc3BhY2UgcmVzb3VyY2VzXCIsICgpID0+IHtcbiAgICBjb25zdCBhcHAgPSBUZXN0aW5nLmFwcCgpO1xuICAgIGNvbnN0IHN0YWNrID0gbmV3IExvZ0FuYWx5dGljc1dvcmtzcGFjZUV4YW1wbGVTdGFjayhcbiAgICAgIGFwcCxcbiAgICAgIFwidGVzdC1sb2ctYW5hbHl0aWNzLXdvcmtzcGFjZVwiLFxuICAgICk7XG4gICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLmZ1bGxTeW50aChzdGFjayk7XG5cbiAgICAvLyBUaGlzIHdpbGw6XG4gICAgLy8gMS4gUnVuIHRlcnJhZm9ybSBhcHBseSB0byBkZXBsb3kgcmVzb3VyY2VzXG4gICAgLy8gMi4gUnVuIHRlcnJhZm9ybSBwbGFuIHRvIGNoZWNrIGlkZW1wb3RlbmN5IChubyBjaGFuZ2VzIGV4cGVjdGVkKVxuICAgIC8vIDMuIFJ1biB0ZXJyYWZvcm0gZGVzdHJveSB0byBjbGVhbnVwIHJlc291cmNlc1xuICAgIFRlcnJhZm9ybUFwcGx5Q2hlY2tBbmREZXN0cm95KHN5bnRoZXNpemVkKTtcbiAgfSwgNjAwMDAwKTsgLy8gMTAgbWludXRlIHRpbWVvdXQgZm9yIGRlcGxveW1lbnQgYW5kIGNsZWFudXBcbn0pO1xuIl19
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Comprehensive tests for the LogAnalyticsWorkspace implementation
3
+ *
4
+ * This test suite validates the LogAnalyticsWorkspace class using the AzapiResource framework.
5
+ * Tests cover automatic version resolution, explicit version pinning, schema validation,
6
+ * property configurations, and resource creation.
7
+ */
8
+ export {};