@microsoft/terraform-cdk-constructs 0.0.3-pre.10 → 0.0.3-pre.12

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 (202) hide show
  1. package/.jsii +858 -681
  2. package/API.md +499 -405
  3. package/README.md +4 -5
  4. package/docs/testing.md +39 -137
  5. package/lib/azure-actiongroup/lib/actiongroup.d.ts +1 -1
  6. package/lib/azure-actiongroup/lib/actiongroup.js +4 -4
  7. package/lib/azure-actiongroup/model/action-group-props.d.ts +3 -2
  8. package/lib/azure-actiongroup/model/action-group-props.js +1 -1
  9. package/lib/azure-actiongroup/test/AzureActionGroup.integ.js +66 -0
  10. package/lib/azure-actiongroup/test/AzureActionGroup.spec.js +5 -33
  11. package/lib/azure-applicationgateway/lib/gateway.d.ts +5 -3
  12. package/lib/azure-applicationgateway/lib/gateway.js +14 -7
  13. package/lib/azure-applicationgateway/test/AzureApplicationGateway.integ.d.ts +1 -0
  14. package/lib/azure-applicationgateway/test/AzureApplicationGateway.integ.js +272 -0
  15. package/lib/azure-applicationgateway/test/AzureApplicationGateway.spec.js +3 -35
  16. package/lib/azure-applicationinsights/lib/appinsights.d.ts +4 -3
  17. package/lib/azure-applicationinsights/lib/appinsights.js +6 -6
  18. package/lib/azure-applicationinsights/test/AzureAppInsights.integ.d.ts +1 -0
  19. package/lib/azure-applicationinsights/test/AzureAppInsights.integ.js +101 -0
  20. package/lib/azure-applicationinsights/test/AzureAppInsights.spec.js +4 -27
  21. package/lib/azure-containerregistry/lib/registry.d.ts +4 -3
  22. package/lib/azure-containerregistry/lib/registry.js +5 -5
  23. package/lib/azure-containerregistry/test/AzureContainerRegistry.integ.d.ts +1 -0
  24. package/lib/azure-containerregistry/test/AzureContainerRegistry.integ.js +68 -0
  25. package/lib/azure-containerregistry/test/AzureContainerRegistry.spec.js +4 -23
  26. package/lib/azure-datalake/lib/datalake.d.ts +1 -0
  27. package/lib/azure-datalake/lib/datalake.js +2 -1
  28. package/lib/azure-datalake/test/AzureDatalake.spec.d.ts +1 -0
  29. package/lib/azure-datalake/test/AzureDatalake.spec.js +32 -0
  30. package/lib/azure-datalake/test/AzureStorageAccount.integ.d.ts +1 -0
  31. package/lib/azure-datalake/test/AzureStorageAccount.integ.js +60 -0
  32. package/lib/azure-eventhub/lib/authorization.js +1 -1
  33. package/lib/azure-eventhub/lib/consumer.js +1 -1
  34. package/lib/azure-eventhub/lib/{cluster.d.ts → eventhubcluster.d.ts} +11 -7
  35. package/lib/azure-eventhub/lib/eventhubcluster.js +64 -0
  36. package/lib/azure-eventhub/lib/index.d.ts +1 -1
  37. package/lib/azure-eventhub/lib/index.js +2 -2
  38. package/lib/azure-eventhub/lib/instance.d.ts +1 -0
  39. package/lib/azure-eventhub/lib/instance.js +5 -4
  40. package/lib/azure-eventhub/lib/kusto-connection.js +1 -1
  41. package/lib/azure-eventhub/lib/namespace.d.ts +7 -6
  42. package/lib/azure-eventhub/lib/namespace.js +24 -26
  43. package/lib/azure-eventhub/test/AzureEventhub.integ.d.ts +1 -0
  44. package/lib/azure-eventhub/test/AzureEventhub.integ.js +72 -0
  45. package/lib/azure-eventhub/test/AzureEventhub.spec.js +4 -27
  46. package/lib/azure-functionapp/lib/functionapplinux.js +1 -1
  47. package/lib/azure-functionapp/test/AzureLinuxFunctionApp.integ.d.ts +1 -0
  48. package/lib/azure-functionapp/test/AzureLinuxFunctionApp.integ.js +117 -0
  49. package/lib/azure-functionapp/test/AzureLinuxFunctionApp.spec.js +4 -21
  50. package/lib/azure-keyvault/lib/certificate.js +2 -2
  51. package/lib/azure-keyvault/lib/key.js +1 -1
  52. package/lib/azure-keyvault/lib/policy.js +1 -1
  53. package/lib/azure-keyvault/lib/secret.js +1 -1
  54. package/lib/azure-keyvault/lib/vault.d.ts +3 -2
  55. package/lib/azure-keyvault/lib/vault.js +4 -4
  56. package/lib/azure-keyvault/test/AzureKeyVault.integ.d.ts +1 -0
  57. package/lib/azure-keyvault/test/AzureKeyVault.integ.js +119 -0
  58. package/lib/azure-keyvault/test/AzureKeyVault.spec.js +4 -35
  59. package/lib/azure-kubernetes/lib/cluster.js +1 -1
  60. package/lib/azure-kubernetes/test/AzureKubernetesCluster.integ.d.ts +1 -0
  61. package/lib/azure-kubernetes/test/AzureKubernetesCluster.integ.js +75 -0
  62. package/lib/azure-kubernetes/test/AzureKubernetesCluster.spec.js +4 -21
  63. package/lib/azure-kusto/lib/cluster.d.ts +9 -5
  64. package/lib/azure-kusto/lib/cluster.js +66 -42
  65. package/lib/azure-kusto/lib/compute-specification.js +1 -1
  66. package/lib/azure-kusto/lib/database.d.ts +7 -8
  67. package/lib/azure-kusto/lib/database.js +23 -25
  68. package/lib/azure-kusto/test/AzureKusto.integ.d.ts +1 -0
  69. package/lib/azure-kusto/test/AzureKusto.integ.js +74 -0
  70. package/lib/azure-kusto/test/AzureKusto.spec.js +3 -22
  71. package/lib/azure-loganalytics/lib/workspace.d.ts +6 -3
  72. package/lib/azure-loganalytics/lib/workspace.js +7 -6
  73. package/lib/azure-loganalytics/test/AzureLogAnalytics.integ.d.ts +1 -0
  74. package/lib/azure-loganalytics/test/AzureLogAnalytics.integ.js +117 -0
  75. package/lib/azure-loganalytics/test/AzureLogAnalytics.spec.js +4 -23
  76. package/lib/azure-metricalert/lib/metric-alert.js +1 -1
  77. package/lib/azure-metricalert/test/AzureMetricAlert.integ.d.ts +1 -0
  78. package/lib/azure-metricalert/test/AzureMetricAlert.integ.js +85 -0
  79. package/lib/azure-metricalert/test/AzureMetricAlert.spec.js +4 -21
  80. package/lib/azure-networksecuritygroup/lib/preconfigured-rules.js +1 -1
  81. package/lib/azure-networksecuritygroup/lib/securitygroup.d.ts +4 -3
  82. package/lib/azure-networksecuritygroup/lib/securitygroup.js +7 -7
  83. package/lib/azure-networksecuritygroup/test/AzureNetworkSecurityGroup.integ.d.ts +1 -0
  84. package/lib/azure-networksecuritygroup/test/AzureNetworkSecurityGroup.integ.js +85 -0
  85. package/lib/azure-networksecuritygroup/test/AzureNetworkSecurityGroup.spec.js +4 -23
  86. package/lib/azure-queryrulealert/lib/query-rule-alert.js +1 -1
  87. package/lib/azure-queryrulealert/test/AzureQueryRuleAlert.integ.d.ts +1 -0
  88. package/lib/azure-queryrulealert/test/AzureQueryRuleAlert.integ.js +63 -0
  89. package/lib/azure-queryrulealert/test/AzureQueryRuleAlert.spec.js +4 -21
  90. package/lib/azure-resourcegroup/lib/resource-group.js +1 -1
  91. package/lib/azure-resourcegroup/test/AzureResourceGroup.integ.d.ts +1 -0
  92. package/lib/azure-resourcegroup/test/AzureResourceGroup.integ.js +41 -0
  93. package/lib/azure-resourcegroup/test/AzureResourceGroup.spec.js +4 -17
  94. package/lib/azure-storageaccount/lib/account.d.ts +5 -0
  95. package/lib/azure-storageaccount/lib/account.js +3 -2
  96. package/lib/azure-storageaccount/lib/container.js +2 -2
  97. package/lib/azure-storageaccount/lib/fileshare.js +2 -2
  98. package/lib/azure-storageaccount/lib/queue.js +1 -1
  99. package/lib/azure-storageaccount/lib/table.js +1 -1
  100. package/lib/azure-storageaccount/test/AzureStorageAccount.integ.d.ts +1 -0
  101. package/lib/azure-storageaccount/test/AzureStorageAccount.integ.js +84 -0
  102. package/lib/azure-storageaccount/test/AzureStorageAccount.spec.js +4 -17
  103. package/lib/azure-virtualmachine/lib/image-references.js +2 -2
  104. package/lib/azure-virtualmachine/lib/vm.d.ts +29 -6
  105. package/lib/azure-virtualmachine/lib/vm.js +17 -15
  106. package/lib/azure-virtualmachine/test/AzureLinuxVirtualMachine.integ.d.ts +1 -0
  107. package/lib/azure-virtualmachine/test/AzureLinuxVirtualMachine.integ.js +109 -0
  108. package/lib/azure-virtualmachine/test/AzureLinuxVirtualMachine.spec.js +5 -25
  109. package/lib/azure-virtualmachine/test/AzureWindowsVirtualMachine.integ.d.ts +1 -0
  110. package/lib/azure-virtualmachine/test/AzureWindowsVirtualMachine.integ.js +105 -0
  111. package/lib/azure-virtualmachine/test/AzureWindowsVirtualMachine.spec.js +4 -23
  112. package/lib/azure-virtualmachinescaleset/lib/cluster.d.ts +28 -6
  113. package/lib/azure-virtualmachinescaleset/lib/cluster.js +13 -11
  114. package/lib/azure-virtualmachinescaleset/test/AzureLinuxVirtualMachineScaleSet.integ.d.ts +1 -0
  115. package/lib/azure-virtualmachinescaleset/test/AzureLinuxVirtualMachineScaleSet.integ.js +113 -0
  116. package/lib/azure-virtualmachinescaleset/test/AzureLinuxVirtualMachineScaleSet.spec.js +5 -25
  117. package/lib/azure-virtualmachinescaleset/test/AzureWindowsVirtualMachineScaleSet.integ.d.ts +1 -0
  118. package/lib/azure-virtualmachinescaleset/test/AzureWindowsVirtualMachineScaleSet.integ.js +109 -0
  119. package/lib/azure-virtualmachinescaleset/test/AzureWindowsVirtualMachineScaleSet.spec.js +4 -23
  120. package/lib/azure-virtualnetwork/lib/network.d.ts +4 -3
  121. package/lib/azure-virtualnetwork/lib/network.js +7 -6
  122. package/lib/azure-virtualnetwork/lib/peering.js +1 -1
  123. package/lib/azure-virtualnetwork/test/AzureVirtualNetwork.integ.d.ts +1 -0
  124. package/lib/azure-virtualnetwork/test/AzureVirtualNetwork.integ.js +92 -0
  125. package/lib/azure-virtualnetwork/test/AzureVirtualNetwork.spec.js +5 -25
  126. package/lib/core-azure/lib/diagsettings.d.ts +3 -2
  127. package/lib/core-azure/lib/diagsettings.js +15 -21
  128. package/lib/core-azure/lib/rbac.js +1 -1
  129. package/lib/core-azure/lib/resource.js +6 -4
  130. package/lib/core-azure/test/AzureResource.integ.d.ts +1 -0
  131. package/lib/core-azure/test/AzureResource.integ.js +75 -0
  132. package/lib/testing/index.d.ts +34 -0
  133. package/lib/testing/index.js +235 -2
  134. package/package.json +32 -11
  135. package/cdktf.out/manifest.json +0 -13
  136. package/cdktf.out/stacks/testAzureActionGroup/cdk.tf.json +0 -111
  137. package/cdktf.out/stacks/testAzureApplicationGateway/cdk.tf.json +0 -588
  138. package/cdktf.out/stacks/testAzureApplicationInsights/cdk.tf.json +0 -245
  139. package/cdktf.out/stacks/testAzureContainerRegistry/cdk.tf.json +0 -179
  140. package/cdktf.out/stacks/testAzureEventhub/cdk.tf.json +0 -236
  141. package/cdktf.out/stacks/testAzureKeyVault/cdk.tf.json +0 -436
  142. package/cdktf.out/stacks/testAzureKubernetesCluster/cdk.tf.json +0 -152
  143. package/cdktf.out/stacks/testAzureKusto/cdk.tf.json +0 -209
  144. package/cdktf.out/stacks/testAzureLinuxFunctionApp/cdk.tf.json +0 -439
  145. package/cdktf.out/stacks/testAzureLinuxVirtualMachineExample/cdk.tf.json +0 -283
  146. package/cdktf.out/stacks/testAzureLinuxVirtualMachineScaleSetExample/cdk.tf.json +0 -261
  147. package/cdktf.out/stacks/testAzureLogAnalytics/cdk.tf.json +0 -309
  148. package/cdktf.out/stacks/testAzureMetricAlert/cdk.tf.json +0 -161
  149. package/cdktf.out/stacks/testAzureNetworkSecurityGroup/cdk.tf.json +0 -271
  150. package/cdktf.out/stacks/testAzureQueryRuleAlert/cdk.tf.json +0 -122
  151. package/cdktf.out/stacks/testAzureResourceGroup/cdk.tf.json +0 -88
  152. package/cdktf.out/stacks/testAzureStorageAccount/cdk.tf.json +0 -339
  153. package/cdktf.out/stacks/testAzureVirtualNetwork/cdk.tf.json +0 -264
  154. package/cdktf.out/stacks/testAzureWindowVirtualMachineScaleSetExample/cdk.tf.json +0 -261
  155. package/cdktf.out/stacks/testAzureWindowsVirtualMachineExample/cdk.tf.json +0 -280
  156. package/cdktf.out/stacks/testExampleAzureResource/cdk.tf.json +0 -167
  157. package/lib/azure-actiongroup/test/ExampleAzureActionGroup.d.ts +0 -5
  158. package/lib/azure-actiongroup/test/ExampleAzureActionGroup.js +0 -66
  159. package/lib/azure-applicationgateway/test/ExampleAzureApplicationGateway.d.ts +0 -5
  160. package/lib/azure-applicationgateway/test/ExampleAzureApplicationGateway.js +0 -267
  161. package/lib/azure-applicationinsights/test/ExampleAzureApplicationInsights.d.ts +0 -5
  162. package/lib/azure-applicationinsights/test/ExampleAzureApplicationInsights.js +0 -87
  163. package/lib/azure-containerregistry/test/ExampleAzureContainerRegistry.d.ts +0 -5
  164. package/lib/azure-containerregistry/test/ExampleAzureContainerRegistry.js +0 -57
  165. package/lib/azure-eventhub/lib/cluster.js +0 -64
  166. package/lib/azure-eventhub/test/ExampleAzureEventhub.d.ts +0 -5
  167. package/lib/azure-eventhub/test/ExampleAzureEventhub.js +0 -72
  168. package/lib/azure-functionapp/test/ExampleAzureLinuxFunctionApp.d.ts +0 -5
  169. package/lib/azure-functionapp/test/ExampleAzureLinuxFunctionApp.js +0 -123
  170. package/lib/azure-keyvault/test/ExampleAzureKeyVault.d.ts +0 -5
  171. package/lib/azure-keyvault/test/ExampleAzureKeyVault.js +0 -112
  172. package/lib/azure-kubernetes/test/ExampleAzureKubernetesCluster.d.ts +0 -5
  173. package/lib/azure-kubernetes/test/ExampleAzureKubernetesCluster.js +0 -65
  174. package/lib/azure-kusto/test/ExampleAzureKusto.d.ts +0 -5
  175. package/lib/azure-kusto/test/ExampleAzureKusto.js +0 -71
  176. package/lib/azure-loganalytics/test/ExampleAzureLogAnalytics.d.ts +0 -5
  177. package/lib/azure-loganalytics/test/ExampleAzureLogAnalytics.js +0 -115
  178. package/lib/azure-metricalert/test/ExampleAzureMetricAlert.d.ts +0 -5
  179. package/lib/azure-metricalert/test/ExampleAzureMetricAlert.js +0 -81
  180. package/lib/azure-networksecuritygroup/test/ExampleAzureNetworkSecurityGroup.d.ts +0 -5
  181. package/lib/azure-networksecuritygroup/test/ExampleAzureNetworkSecurityGroup.js +0 -97
  182. package/lib/azure-queryrulealert/test/ExampleAzureQueryRuleAlert.d.ts +0 -5
  183. package/lib/azure-queryrulealert/test/ExampleAzureQueryRuleAlert.js +0 -67
  184. package/lib/azure-resourcegroup/test/ExampleAzureResourceGroup.d.ts +0 -5
  185. package/lib/azure-resourcegroup/test/ExampleAzureResourceGroup.js +0 -29
  186. package/lib/azure-storageaccount/test/ExampleAzureStorageAccount.d.ts +0 -5
  187. package/lib/azure-storageaccount/test/ExampleAzureStorageAccount.js +0 -102
  188. package/lib/azure-virtualmachine/test/ExampleAzureLinuxVirtualMachine.d.ts +0 -5
  189. package/lib/azure-virtualmachine/test/ExampleAzureLinuxVirtualMachine.js +0 -106
  190. package/lib/azure-virtualmachine/test/ExampleAzureWindowsVirtualMachine.d.ts +0 -5
  191. package/lib/azure-virtualmachine/test/ExampleAzureWindowsVirtualMachine.js +0 -102
  192. package/lib/azure-virtualmachinescaleset/test/ExampleAzureLinuxVirtualMachineScaleSet.d.ts +0 -5
  193. package/lib/azure-virtualmachinescaleset/test/ExampleAzureLinuxVirtualMachineScaleSet.js +0 -107
  194. package/lib/azure-virtualmachinescaleset/test/ExampleAzureWindowsVirtualMachineScaleSet.d.ts +0 -5
  195. package/lib/azure-virtualmachinescaleset/test/ExampleAzureWindowsVirtualMachineScaleSet.js +0 -103
  196. package/lib/azure-virtualnetwork/test/ExampleAzureVirtualNetwork.d.ts +0 -5
  197. package/lib/azure-virtualnetwork/test/ExampleAzureVirtualNetwork.js +0 -88
  198. package/lib/core-azure/test/AzureResource.spec.js +0 -19
  199. package/lib/core-azure/test/ExampleAzureResource.d.ts +0 -5
  200. package/lib/core-azure/test/ExampleAzureResource.js +0 -67
  201. package/tfsec.json +0 -4
  202. /package/lib/{core-azure/test/AzureResource.spec.d.ts → azure-actiongroup/test/AzureActionGroup.integ.d.ts} +0 -0
@@ -1,167 +0,0 @@
1
- {
2
- "//": {
3
- "metadata": {
4
- "backend": "local",
5
- "overrides": {
6
- "azurerm_monitor_diagnostic_setting": [
7
- "dynamic"
8
- ]
9
- },
10
- "stackName": "testExampleAzureResource",
11
- "version": "0.17.3"
12
- },
13
- "outputs": {
14
- "testExampleAzureResource": {
15
- "diag_settings_name": "diag_settings_name",
16
- "storage_account_id": "storage_account_id"
17
- }
18
- }
19
- },
20
- "data": {
21
- "azurerm_client_config": {
22
- "CurrentClientConfig": {
23
- "//": {
24
- "metadata": {
25
- "path": "testExampleAzureResource/CurrentClientConfig",
26
- "uniqueId": "CurrentClientConfig"
27
- }
28
- }
29
- }
30
- },
31
- "azurerm_monitor_diagnostic_categories": {
32
- "TfTokenTOKEN0_diagsettings_diagcategories_F03F51DC": {
33
- "//": {
34
- "metadata": {
35
- "path": "testExampleAzureResource/${var.name}/diagsettings/diagcategories",
36
- "uniqueId": "TfTokenTOKEN0_diagsettings_diagcategories_F03F51DC"
37
- }
38
- },
39
- "resource_id": "${azurerm_storage_account.TfTokenTOKEN0_storage_36989BFF.id}"
40
- }
41
- }
42
- },
43
- "output": {
44
- "diag_settings_name": {
45
- "value": "diagsettings"
46
- },
47
- "storage_account_id": {
48
- "value": "${azurerm_storage_account.TfTokenTOKEN0_storage_36989BFF.id}"
49
- }
50
- },
51
- "provider": {
52
- "azurerm": [
53
- {
54
- "features": {
55
- }
56
- }
57
- ]
58
- },
59
- "resource": {
60
- "azurerm_monitor_diagnostic_setting": {
61
- "TfTokenTOKEN0_diagsettings_9ABC15DD": {
62
- "//": {
63
- "metadata": {
64
- "path": "testExampleAzureResource/${var.name}/diagsettings/diagsettings",
65
- "uniqueId": "TfTokenTOKEN0_diagsettings_9ABC15DD"
66
- }
67
- },
68
- "dynamic": {
69
- "enabled_log": {
70
- "content": {
71
- "category": "${enabled_log.value}"
72
- },
73
- "for_each": "${tolist(data.azurerm_monitor_diagnostic_categories.TfTokenTOKEN0_diagsettings_diagcategories_F03F51DC.log_category_types)}"
74
- },
75
- "metric": {
76
- "content": {
77
- "category": "${metric.value}"
78
- },
79
- "for_each": "${tolist(data.azurerm_monitor_diagnostic_categories.TfTokenTOKEN0_diagsettings_diagcategories_F03F51DC.metrics)}"
80
- }
81
- },
82
- "name": "diagsettings",
83
- "storage_account_id": "${azurerm_storage_account.TfTokenTOKEN0_storage_36989BFF.id}",
84
- "target_resource_id": "${azurerm_storage_account.TfTokenTOKEN0_storage_36989BFF.id}"
85
- }
86
- },
87
- "azurerm_resource_group": {
88
- "rg": {
89
- "//": {
90
- "metadata": {
91
- "path": "testExampleAzureResource/rg",
92
- "uniqueId": "rg"
93
- }
94
- },
95
- "location": "eastus",
96
- "name": "rg-${var.name}"
97
- }
98
- },
99
- "azurerm_role_assignment": {
100
- "TfTokenTOKEN0_TfTokenTOKEN4Contributor_role_E485501F": {
101
- "//": {
102
- "metadata": {
103
- "path": "testExampleAzureResource/${var.name}/${data.azurerm_client_config.CurrentClientConfig.object_id}Contributor/role",
104
- "uniqueId": "TfTokenTOKEN0_TfTokenTOKEN4Contributor_role_E485501F"
105
- }
106
- },
107
- "principal_id": "${data.azurerm_client_config.CurrentClientConfig.object_id}",
108
- "role_definition_name": "Contributor",
109
- "scope": "${azurerm_storage_account.TfTokenTOKEN0_storage_36989BFF.id}"
110
- },
111
- "TfTokenTOKEN0_TfTokenTOKEN5MonitoringReader_role_AF40768F": {
112
- "//": {
113
- "metadata": {
114
- "path": "testExampleAzureResource/${var.name}/${data.azurerm_client_config.CurrentClientConfig.object_id}Monitoring Reader/role",
115
- "uniqueId": "TfTokenTOKEN0_TfTokenTOKEN5MonitoringReader_role_AF40768F"
116
- }
117
- },
118
- "principal_id": "${data.azurerm_client_config.CurrentClientConfig.object_id}",
119
- "role_definition_name": "Monitoring Reader",
120
- "scope": "${azurerm_storage_account.TfTokenTOKEN0_storage_36989BFF.id}"
121
- }
122
- },
123
- "azurerm_storage_account": {
124
- "TfTokenTOKEN0_storage_36989BFF": {
125
- "//": {
126
- "metadata": {
127
- "path": "testExampleAzureResource/${var.name}/storage",
128
- "uniqueId": "TfTokenTOKEN0_storage_36989BFF"
129
- }
130
- },
131
- "account_replication_type": "LRS",
132
- "account_tier": "Standard",
133
- "location": "${azurerm_resource_group.rg.location}",
134
- "min_tls_version": "TLS1_2",
135
- "name": "sta${var.name}96m98",
136
- "network_rules": {
137
- "bypass": [
138
- "AzureServices"
139
- ],
140
- "default_action": "Deny"
141
- },
142
- "public_network_access_enabled": false,
143
- "resource_group_name": "${azurerm_resource_group.rg.name}"
144
- }
145
- }
146
- },
147
- "terraform": {
148
- "backend": {
149
- "local": {
150
- "path": "/home/runner/work/terraform-cdk-constructs/terraform-cdk-constructs/terraform.testExampleAzureResource.tfstate"
151
- }
152
- },
153
- "required_providers": {
154
- "azurerm": {
155
- "source": "azurerm",
156
- "version": "3.70.0"
157
- }
158
- }
159
- },
160
- "variable": {
161
- "name": {
162
- "default": "test",
163
- "description": "System name used to randomize the resources",
164
- "type": "string"
165
- }
166
- }
167
- }
@@ -1,5 +0,0 @@
1
- import { Construct } from "constructs";
2
- import { BaseTestStack } from "../../testing";
3
- export declare class exampleAzureActionGroup extends BaseTestStack {
4
- constructor(scope: Construct, id: string);
5
- }
@@ -1,66 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.exampleAzureActionGroup = void 0;
4
- const provider_1 = require("@cdktf/provider-azurerm/lib/provider");
5
- const resource_group_1 = require("@cdktf/provider-azurerm/lib/resource-group");
6
- const cdktf_1 = require("cdktf");
7
- const cdktf = require("cdktf");
8
- const ag = require("..");
9
- const testing_1 = require("../../testing");
10
- const app = new cdktf_1.App();
11
- class exampleAzureActionGroup extends testing_1.BaseTestStack {
12
- constructor(scope, id) {
13
- super(scope, id);
14
- new provider_1.AzurermProvider(this, "azureFeature", {
15
- features: {
16
- resourceGroup: {
17
- preventDeletionIfContainsResources: false,
18
- },
19
- },
20
- });
21
- const resourceGroup = new resource_group_1.ResourceGroup(this, "rg", {
22
- location: "eastus",
23
- name: `rg-${this.name}`,
24
- tags: {
25
- test: "test",
26
- },
27
- });
28
- const actiongroup = new ag.ActionGroup(this, "testAzureActionGroup", {
29
- name: "testactiongroup",
30
- location: "global",
31
- resourceGroup: resourceGroup,
32
- shortName: "testshortn",
33
- emailReceivers: [
34
- {
35
- name: "testemail1",
36
- emailAddress: "test1@email.com",
37
- useCommonAlertSchema: true,
38
- },
39
- {
40
- name: "testemail2",
41
- emailAddress: "test2@email.com",
42
- },
43
- ],
44
- webhookReceivers: [
45
- {
46
- name: "testwebhook1",
47
- serviceUri: "https://www.example1.com",
48
- useCommonAlertSchema: true,
49
- },
50
- {
51
- name: "testwebhook2",
52
- serviceUri: "https://www.example2.com",
53
- },
54
- ],
55
- });
56
- // Outputs to use for End to End Test
57
- const cdktfTerraformOutputActionGroupId = new cdktf.TerraformOutput(this, "id", {
58
- value: actiongroup.id,
59
- });
60
- cdktfTerraformOutputActionGroupId.overrideLogicalId("id");
61
- }
62
- }
63
- exports.exampleAzureActionGroup = exampleAzureActionGroup;
64
- new exampleAzureActionGroup(app, "testAzureActionGroup");
65
- app.synth();
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhhbXBsZUF6dXJlQWN0aW9uR3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtYWN0aW9uZ3JvdXAvdGVzdC9FeGFtcGxlQXp1cmVBY3Rpb25Hcm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtRUFBdUU7QUFDdkUsK0VBQTJFO0FBQzNFLGlDQUE0QjtBQUM1QiwrQkFBK0I7QUFFL0IseUJBQXlCO0FBQ3pCLDJDQUE4QztBQUU5QyxNQUFNLEdBQUcsR0FBRyxJQUFJLFdBQUcsRUFBRSxDQUFDO0FBRXRCLE1BQWEsdUJBQXdCLFNBQVEsdUJBQWE7SUFDeEQsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLDBCQUFlLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtZQUN4QyxRQUFRLEVBQUU7Z0JBQ1IsYUFBYSxFQUFFO29CQUNiLGtDQUFrQyxFQUFFLEtBQUs7aUJBQzFDO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLGFBQWEsR0FBRyxJQUFJLDhCQUFhLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRTtZQUNsRCxRQUFRLEVBQUUsUUFBUTtZQUNsQixJQUFJLEVBQUUsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ3ZCLElBQUksRUFBRTtnQkFDSixJQUFJLEVBQUUsTUFBTTthQUNiO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxXQUFXLEdBQUcsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxzQkFBc0IsRUFBRTtZQUNuRSxJQUFJLEVBQUUsaUJBQWlCO1lBQ3ZCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLGFBQWEsRUFBRSxhQUFhO1lBQzVCLFNBQVMsRUFBRSxZQUFZO1lBQ3ZCLGNBQWMsRUFBRTtnQkFDZDtvQkFDRSxJQUFJLEVBQUUsWUFBWTtvQkFDbEIsWUFBWSxFQUFFLGlCQUFpQjtvQkFDL0Isb0JBQW9CLEVBQUUsSUFBSTtpQkFDM0I7Z0JBQ0Q7b0JBQ0UsSUFBSSxFQUFFLFlBQVk7b0JBQ2xCLFlBQVksRUFBRSxpQkFBaUI7aUJBQ2hDO2FBQ0Y7WUFDRCxnQkFBZ0IsRUFBRTtnQkFDaEI7b0JBQ0UsSUFBSSxFQUFFLGNBQWM7b0JBQ3BCLFVBQVUsRUFBRSwwQkFBMEI7b0JBQ3RDLG9CQUFvQixFQUFFLElBQUk7aUJBQzNCO2dCQUNEO29CQUNFLElBQUksRUFBRSxjQUFjO29CQUNwQixVQUFVLEVBQUUsMEJBQTBCO2lCQUN2QzthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBRUgscUNBQXFDO1FBQ3JDLE1BQU0saUNBQWlDLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUNqRSxJQUFJLEVBQ0osSUFBSSxFQUNKO1lBQ0UsS0FBSyxFQUFFLFdBQVcsQ0FBQyxFQUFFO1NBQ3RCLENBQ0YsQ0FBQztRQUVGLGlDQUFpQyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVELENBQUM7Q0FDRjtBQTVERCwwREE0REM7QUFFRCxJQUFJLHVCQUF1QixDQUFDLEdBQUcsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0FBRXpELEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF6dXJlcm1Qcm92aWRlciB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvcHJvdmlkZXJcIjtcbmltcG9ydCB7IFJlc291cmNlR3JvdXAgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3Jlc291cmNlLWdyb3VwXCI7XG5pbXBvcnQgeyBBcHAgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCAqIGFzIGNka3RmIGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIGFnIGZyb20gXCIuLlwiO1xuaW1wb3J0IHsgQmFzZVRlc3RTdGFjayB9IGZyb20gXCIuLi8uLi90ZXN0aW5nXCI7XG5cbmNvbnN0IGFwcCA9IG5ldyBBcHAoKTtcblxuZXhwb3J0IGNsYXNzIGV4YW1wbGVBenVyZUFjdGlvbkdyb3VwIGV4dGVuZHMgQmFzZVRlc3RTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgbmV3IEF6dXJlcm1Qcm92aWRlcih0aGlzLCBcImF6dXJlRmVhdHVyZVwiLCB7XG4gICAgICBmZWF0dXJlczoge1xuICAgICAgICByZXNvdXJjZUdyb3VwOiB7XG4gICAgICAgICAgcHJldmVudERlbGV0aW9uSWZDb250YWluc1Jlc291cmNlczogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzb3VyY2VHcm91cCA9IG5ldyBSZXNvdXJjZUdyb3VwKHRoaXMsIFwicmdcIiwge1xuICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICBuYW1lOiBgcmctJHt0aGlzLm5hbWV9YCxcbiAgICAgIHRhZ3M6IHtcbiAgICAgICAgdGVzdDogXCJ0ZXN0XCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgYWN0aW9uZ3JvdXAgPSBuZXcgYWcuQWN0aW9uR3JvdXAodGhpcywgXCJ0ZXN0QXp1cmVBY3Rpb25Hcm91cFwiLCB7XG4gICAgICBuYW1lOiBcInRlc3RhY3Rpb25ncm91cFwiLFxuICAgICAgbG9jYXRpb246IFwiZ2xvYmFsXCIsXG4gICAgICByZXNvdXJjZUdyb3VwOiByZXNvdXJjZUdyb3VwLFxuICAgICAgc2hvcnROYW1lOiBcInRlc3RzaG9ydG5cIixcbiAgICAgIGVtYWlsUmVjZWl2ZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcInRlc3RlbWFpbDFcIixcbiAgICAgICAgICBlbWFpbEFkZHJlc3M6IFwidGVzdDFAZW1haWwuY29tXCIsXG4gICAgICAgICAgdXNlQ29tbW9uQWxlcnRTY2hlbWE6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcInRlc3RlbWFpbDJcIixcbiAgICAgICAgICBlbWFpbEFkZHJlc3M6IFwidGVzdDJAZW1haWwuY29tXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgd2ViaG9va1JlY2VpdmVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJ0ZXN0d2ViaG9vazFcIixcbiAgICAgICAgICBzZXJ2aWNlVXJpOiBcImh0dHBzOi8vd3d3LmV4YW1wbGUxLmNvbVwiLFxuICAgICAgICAgIHVzZUNvbW1vbkFsZXJ0U2NoZW1hOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJ0ZXN0d2ViaG9vazJcIixcbiAgICAgICAgICBzZXJ2aWNlVXJpOiBcImh0dHBzOi8vd3d3LmV4YW1wbGUyLmNvbVwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIC8vIE91dHB1dHMgdG8gdXNlIGZvciBFbmQgdG8gRW5kIFRlc3RcbiAgICBjb25zdCBjZGt0ZlRlcnJhZm9ybU91dHB1dEFjdGlvbkdyb3VwSWQgPSBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KFxuICAgICAgdGhpcyxcbiAgICAgIFwiaWRcIixcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IGFjdGlvbmdyb3VwLmlkLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgY2RrdGZUZXJyYWZvcm1PdXRwdXRBY3Rpb25Hcm91cElkLm92ZXJyaWRlTG9naWNhbElkKFwiaWRcIik7XG4gIH1cbn1cblxubmV3IGV4YW1wbGVBenVyZUFjdGlvbkdyb3VwKGFwcCwgXCJ0ZXN0QXp1cmVBY3Rpb25Hcm91cFwiKTtcblxuYXBwLnN5bnRoKCk7XG4iXX0=
@@ -1,5 +0,0 @@
1
- import { Construct } from "constructs";
2
- import { BaseTestStack } from "../../testing";
3
- export declare class exampleAzureApplicationGateway extends BaseTestStack {
4
- constructor(scope: Construct, id: string);
5
- }
@@ -1,267 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.exampleAzureApplicationGateway = void 0;
4
- const data_azurerm_client_config_1 = require("@cdktf/provider-azurerm/lib/data-azurerm-client-config");
5
- const log_analytics_workspace_1 = require("@cdktf/provider-azurerm/lib/log-analytics-workspace");
6
- const provider_1 = require("@cdktf/provider-azurerm/lib/provider");
7
- const public_ip_1 = require("@cdktf/provider-azurerm/lib/public-ip");
8
- const resource_group_1 = require("@cdktf/provider-azurerm/lib/resource-group");
9
- const subnet_1 = require("@cdktf/provider-azurerm/lib/subnet");
10
- const virtual_network_1 = require("@cdktf/provider-azurerm/lib/virtual-network");
11
- const cdktf = require("cdktf");
12
- const cdktf_1 = require("cdktf");
13
- const kv = require("../../azure-keyvault");
14
- const testing_1 = require("../../testing");
15
- const util = require("../../util/azureTenantIdHelpers");
16
- const apgw = require("../lib");
17
- const app = new cdktf_1.App();
18
- class exampleAzureApplicationGateway extends testing_1.BaseTestStack {
19
- constructor(scope, id) {
20
- super(scope, id);
21
- const clientConfig = new data_azurerm_client_config_1.DataAzurermClientConfig(this, "CurrentClientConfig", {});
22
- new provider_1.AzurermProvider(this, "azureFeature", {
23
- features: {
24
- resourceGroup: {
25
- preventDeletionIfContainsResources: false,
26
- },
27
- },
28
- });
29
- const resourceGroup = new resource_group_1.ResourceGroup(this, "rg", {
30
- location: "eastus",
31
- name: `rg-${this.name}`,
32
- lifecycle: {
33
- ignoreChanges: ["tags"],
34
- },
35
- });
36
- const logAnalyticsWorkspace = new log_analytics_workspace_1.LogAnalyticsWorkspace(this, "log_analytics", {
37
- location: "eastus",
38
- name: `la-${this.name}`,
39
- resourceGroupName: resourceGroup.name,
40
- });
41
- const vnet = new virtual_network_1.VirtualNetwork(this, "vnet", {
42
- name: `vnet-${this.name}`,
43
- location: "eastus",
44
- resourceGroupName: resourceGroup.name,
45
- addressSpace: ["10.0.0.0/24"],
46
- });
47
- const subnet = new subnet_1.Subnet(this, "subnet", {
48
- name: `subnet-${this.name}`,
49
- resourceGroupName: resourceGroup.name,
50
- virtualNetworkName: vnet.name,
51
- addressPrefixes: ["10.0.0.0/24"],
52
- });
53
- const publicIp = new public_ip_1.PublicIp(this, "publicIp", {
54
- name: "testip",
55
- location: "eastus",
56
- resourceGroupName: resourceGroup.name,
57
- allocationMethod: "Static",
58
- sku: "Standard",
59
- });
60
- const publicIpwaf = new public_ip_1.PublicIp(this, "publicIpwaf", {
61
- name: "testipwaf",
62
- location: "eastus",
63
- resourceGroupName: resourceGroup.name,
64
- allocationMethod: "Static",
65
- sku: "Standard",
66
- });
67
- const azureKeyVault = new kv.Vault(this, "keyvault", {
68
- name: `kv-${this.name}`,
69
- resourceGroup: resourceGroup,
70
- location: "eastus",
71
- tenantId: util.getAzureTenantId(),
72
- });
73
- azureKeyVault.grantCustomAccess(clientConfig.objectId, {
74
- secretPermissions: ["Get", "List", "Set", "Delete"],
75
- keyPermissions: [
76
- "Backup",
77
- "Create",
78
- "Decrypt",
79
- "Delete",
80
- "Encrypt",
81
- "Get",
82
- "Import",
83
- "List",
84
- "Purge",
85
- "Recover",
86
- "Restore",
87
- "Sign",
88
- "UnwrapKey",
89
- "Update",
90
- "Verify",
91
- "WrapKey",
92
- "Release",
93
- "Rotate",
94
- "GetRotationPolicy",
95
- "SetRotationPolicy",
96
- ],
97
- certificatePermissions: [
98
- "Get",
99
- "List",
100
- "Create",
101
- "Delete",
102
- "GetIssuers",
103
- "ManageIssuers",
104
- ],
105
- });
106
- const cert = azureKeyVault.addSelfSignedCert("ssl-cert", "CN=contoso.com", [
107
- "internal.contoso.com",
108
- ]);
109
- const applicationGateway = new apgw.Gateway(this, "appgw", {
110
- name: `apgw-${this.name}`,
111
- resourceGroup: resourceGroup,
112
- location: "eastus",
113
- skuTier: "Standard_v2",
114
- skuSize: "Standard_v2",
115
- capacity: 2,
116
- publicIpAddress: publicIp,
117
- subnet: subnet,
118
- backendAddressPools: [
119
- { name: "backend-address-pool-1" },
120
- {
121
- name: "backend-address-pool-2",
122
- ipAddresses: ["10.1.0.4", "10.1.0.5", "10.1.0.6"],
123
- },
124
- ],
125
- httpListeners: [
126
- {
127
- name: "http-listener",
128
- frontendPortName: "80",
129
- frontendIpConfigurationName: "Public-frontend-ip-configuration",
130
- protocol: "Http",
131
- },
132
- ],
133
- backendHttpSettings: [
134
- {
135
- name: "backend-http-setting",
136
- port: 80,
137
- protocol: "Http",
138
- requestTimeout: 20,
139
- cookieBasedAffinity: "Disabled",
140
- },
141
- ],
142
- requestRoutingRules: [
143
- {
144
- name: "request-routing-rule-1",
145
- httpListenerName: "http-listener",
146
- priority: 1,
147
- backendAddressPoolName: "backend-address-pool-1",
148
- backendHttpSettingsName: "backend-http-setting",
149
- ruleType: "Basic",
150
- },
151
- ],
152
- });
153
- new apgw.Gateway(this, "appgw_waf", {
154
- name: `apgw-${this.name}waf`,
155
- resourceGroup: resourceGroup,
156
- location: "eastus",
157
- skuTier: "WAF_v2",
158
- skuSize: "WAF_v2",
159
- capacity: 2,
160
- publicIpAddress: publicIpwaf,
161
- tenantId: util.getAzureTenantId(),
162
- subnet: subnet,
163
- keyVault: azureKeyVault.keyVault,
164
- backendAddressPools: [
165
- { name: "backend-address-pool-1" },
166
- {
167
- name: "backend-address-pool-2",
168
- ipAddresses: ["10.1.0.4", "10.1.0.5", "10.1.0.6"],
169
- },
170
- ],
171
- httpListeners: [
172
- {
173
- name: "http-listener",
174
- frontendPortName: "443",
175
- frontendIpConfigurationName: "Public-frontend-ip-configuration",
176
- protocol: "Https",
177
- sslCertificateName: "internal.contoso.com",
178
- },
179
- ],
180
- backendHttpSettings: [
181
- {
182
- name: "backend-http-setting",
183
- port: 80,
184
- protocol: "Http",
185
- requestTimeout: 20,
186
- cookieBasedAffinity: "Disabled",
187
- },
188
- ],
189
- requestRoutingRules: [
190
- {
191
- name: "request-routing-rule-1",
192
- httpListenerName: "http-listener",
193
- priority: 1,
194
- backendAddressPoolName: "backend-address-pool-1",
195
- backendHttpSettingsName: "backend-http-setting",
196
- ruleType: "Basic",
197
- },
198
- ],
199
- wafConfiguration: {
200
- enabled: true,
201
- firewallMode: "Detection",
202
- ruleSetType: "OWASP",
203
- ruleSetVersion: "3.0",
204
- disabledRuleGroup: [],
205
- fileUploadLimitMb: 100,
206
- requestBodyCheck: false,
207
- maxRequestBodySizeKb: 32,
208
- },
209
- probe: [
210
- {
211
- name: "probe-8080",
212
- interval: 3,
213
- protocol: "Http",
214
- path: "/status",
215
- timeout: 15,
216
- unhealthyThreshold: 3,
217
- port: 8080,
218
- host: "test",
219
- },
220
- ],
221
- redirectConfiguration: [
222
- {
223
- name: "http-redirect",
224
- redirectType: "Permanent",
225
- targetListenerName: "http-listener",
226
- includePath: true,
227
- includeQueryString: true,
228
- },
229
- ],
230
- urlPathMap: [
231
- {
232
- name: "url-path-map",
233
- defaultRedirectConfigurationName: "http-redirect",
234
- pathRule: [
235
- {
236
- name: "path-rule-01",
237
- redirectConfigurationName: "http-redirect",
238
- paths: ["/helloworld"],
239
- },
240
- ],
241
- },
242
- ],
243
- sslCertificate: [
244
- {
245
- name: "internal.contoso.com",
246
- keyVaultSecretId: cert.secretId,
247
- },
248
- ],
249
- });
250
- //Diag Settings
251
- applicationGateway.addDiagSettings({
252
- name: "diagsettings",
253
- logAnalyticsWorkspaceId: logAnalyticsWorkspace.id,
254
- });
255
- //RBAC
256
- applicationGateway.addAccess(clientConfig.objectId, "Contributor");
257
- // Outputs to use for End to End Test
258
- const cdktfTerraformOutputKVName = new cdktf.TerraformOutput(this, "resource_group_name", {
259
- value: resourceGroup.name,
260
- });
261
- cdktfTerraformOutputKVName.overrideLogicalId("resource_group_name");
262
- }
263
- }
264
- exports.exampleAzureApplicationGateway = exampleAzureApplicationGateway;
265
- new exampleAzureApplicationGateway(app, "testAzureApplicationGateway");
266
- app.synth();
267
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXhhbXBsZUF6dXJlQXBwbGljYXRpb25HYXRld2F5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F6dXJlLWFwcGxpY2F0aW9uZ2F0ZXdheS90ZXN0L0V4YW1wbGVBenVyZUFwcGxpY2F0aW9uR2F0ZXdheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1R0FBaUc7QUFDakcsaUdBQTRGO0FBQzVGLG1FQUF1RTtBQUN2RSxxRUFBaUU7QUFDakUsK0VBQTJFO0FBQzNFLCtEQUE0RDtBQUM1RCxpRkFBNkU7QUFDN0UsK0JBQStCO0FBQy9CLGlDQUE0QjtBQUU1QiwyQ0FBMkM7QUFDM0MsMkNBQThDO0FBQzlDLHdEQUF3RDtBQUN4RCwrQkFBK0I7QUFFL0IsTUFBTSxHQUFHLEdBQUcsSUFBSSxXQUFHLEVBQUUsQ0FBQztBQUV0QixNQUFhLDhCQUErQixTQUFRLHVCQUFhO0lBQy9ELFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxZQUFZLEdBQUcsSUFBSSxvREFBdUIsQ0FDOUMsSUFBSSxFQUNKLHFCQUFxQixFQUNyQixFQUFFLENBQ0gsQ0FBQztRQUVGLElBQUksMEJBQWUsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFO1lBQ3hDLFFBQVEsRUFBRTtnQkFDUixhQUFhLEVBQUU7b0JBQ2Isa0NBQWtDLEVBQUUsS0FBSztpQkFDMUM7YUFDRjtTQUNGLENBQUMsQ0FBQztRQUVILE1BQU0sYUFBYSxHQUFHLElBQUksOEJBQWEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFO1lBQ2xELFFBQVEsRUFBRSxRQUFRO1lBQ2xCLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDdkIsU0FBUyxFQUFFO2dCQUNULGFBQWEsRUFBRSxDQUFDLE1BQU0sQ0FBQzthQUN4QjtTQUNGLENBQUMsQ0FBQztRQUVILE1BQU0scUJBQXFCLEdB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QyxRQUFRLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFbkUscUNBQXFDO1FBQ3JDLE1BQU0sMEJBQTBCLEdBQUcsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUMxRCxJQUFJLEVBQ0oscUJBQXFCLEVBQ3JCO1lBQ0UsS0FBSyxFQUFFLGFBQWEsQ0FBQyxJQUFJO1NBQzFCLENBQ0YsQ0FBQztRQUVGLDBCQUEwQixDQUFDLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDdEUsQ0FBQztDQUNGO0FBalJELHdFQWlSQztBQUVELElBQUksOEJBQThCLENBQUMsR0FBRyxFQUFFLDZCQUE2QixDQUFDLENBQUM7QUFFdkUsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGF0YUF6dXJlcm1DbGllbnRDb25maWcgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL2RhdGEtYXp1cmVybS1jbGllbnQtY29uZmlnXCI7XG5pbXBvcnQgeyBMb2dBbmFseXRpY3NXb3Jrc3BhY2UgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL2xvZy1hbmFseXRpY3Mtd29ya3NwYWNlXCI7XG5pbXBvcnQgeyBBenVyZXJtUHJvdmlkZXIgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3Byb3ZpZGVyXCI7XG5pbXBvcnQgeyBQdWJsaWNJcCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvcHVibGljLWlwXCI7XG5pbXBvcnQgeyBSZXNvdXJjZUdyb3VwIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9yZXNvdXJjZS1ncm91cFwiO1xuaW1wb3J0IHsgU3VibmV0IH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9zdWJuZXRcIjtcbmltcG9ydCB7IFZpcnR1YWxOZXR3b3JrIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi92aXJ0dWFsLW5ldHdvcmtcIjtcbmltcG9ydCAqIGFzIGNka3RmIGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQXBwIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMga3YgZnJvbSBcIi4uLy4uL2F6dXJlLWtleXZhdWx0XCI7XG5pbXBvcnQgeyBCYXNlVGVzdFN0YWNrIH0gZnJvbSBcIi4uLy4uL3Rlc3RpbmdcIjtcbmltcG9ydCAqIGFzIHV0aWwgZnJvbSBcIi4uLy4uL3V0aWwvYXp1cmVUZW5hbnRJZEhlbHBlcnNcIjtcbmltcG9ydCAqIGFzIGFwZ3cgZnJvbSBcIi4uL2xpYlwiO1xuXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5cbmV4cG9ydCBjbGFzcyBleGFtcGxlQXp1cmVBcHBsaWNhdGlvbkdhdGV3YXkgZXh0ZW5kcyBCYXNlVGVzdFN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBjbGllbnRDb25maWcgPSBuZXcgRGF0YUF6dXJlcm1DbGllbnRDb25maWcoXG4gICAgICB0aGlzLFxuICAgICAgXCJDdXJyZW50Q2xpZW50Q29uZmlnXCIsXG4gICAgICB7fSxcbiAgICApO1xuXG4gICAgbmV3IEF6dXJlcm1Qcm92aWRlcih0aGlzLCBcImF6dXJlRmVhdHVyZVwiLCB7XG4gICAgICBmZWF0dXJlczoge1xuICAgICAgICByZXNvdXJjZUdyb3VwOiB7XG4gICAgICAgICAgcHJldmVudERlbGV0aW9uSWZDb250YWluc1Jlc291cmNlczogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVzb3VyY2VHcm91cCA9IG5ldyBSZXNvdXJjZUdyb3VwKHRoaXMsIFwicmdcIiwge1xuICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICBuYW1lOiBgcmctJHt0aGlzLm5hbWV9YCxcbiAgICAgIGxpZmVjeWNsZToge1xuICAgICAgICBpZ25vcmVDaGFuZ2VzOiBbXCJ0YWdzXCJdLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGxvZ0FuYWx5dGljc1dvcmtzcGFjZSA9IG5ldyBMb2dBbmFseXRpY3NXb3Jrc3BhY2UoXG4gICAgICB0aGlzLFxuICAgICAgXCJsb2dfYW5hbHl0aWNzXCIsXG4gICAgICB7XG4gICAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgICBuYW1lOiBgbGEtJHt0aGlzLm5hbWV9YCxcbiAgICAgICAgcmVzb3VyY2VHcm91cE5hbWU6IHJlc291cmNlR3JvdXAubmFtZSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIGNvbnN0IHZuZXQgPSBuZXcgVmlydHVhbE5ldHdvcmsodGhpcywgXCJ2bmV0XCIsIHtcbiAgICAgIG5hbWU6IGB2bmV0LSR7dGhpcy5uYW1lfWAsXG4gICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIHJlc291cmNlR3JvdXBOYW1lOiByZXNvdXJjZUdyb3VwLm5hbWUsXG4gICAgICBhZGRyZXNzU3BhY2U6IFtcIjEwLjAuMC4wLzI0XCJdLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc3VibmV0ID0gbmV3IFN1Ym5ldCh0aGlzLCBcInN1Ym5ldFwiLCB7XG4gICAgICBuYW1lOiBgc3VibmV0LSR7dGhpcy5uYW1lfWAsXG4gICAgICByZXNvdXJjZUdyb3VwTmFtZTogcmVzb3VyY2VHcm91cC5uYW1lLFxuICAgICAgdmlydHVhbE5ldHdvcmtOYW1lOiB2bmV0Lm5hbWUsXG4gICAgICBhZGRyZXNzUHJlZml4ZXM6IFtcIjEwLjAuMC4wLzI0XCJdLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcHVibGljSXAgPSBuZXcgUHVibGljSXAodGhpcywgXCJwdWJsaWNJcFwiLCB7XG4gICAgICBuYW1lOiBcInRlc3RpcFwiLFxuICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICByZXNvdXJjZUdyb3VwTmFtZTogcmVzb3VyY2VHcm91cC5uYW1lLFxuICAgICAgYWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgIHNrdTogXCJTdGFuZGFyZFwiLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcHVibGljSXB3YWYgPSBuZXcgUHVibGljSXAodGhpcywgXCJwdWJsaWNJcHdhZlwiLCB7XG4gICAgICBuYW1lOiBcInRlc3RpcHdhZlwiLFxuICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICByZXNvdXJjZUdyb3VwTmFtZTogcmVzb3VyY2VHcm91cC5uYW1lLFxuICAgICAgYWxsb2NhdGlvbk1ldGhvZDogXCJTdGF0aWNcIixcbiAgICAgIHNrdTogXCJTdGFuZGFyZFwiLFxuICAgIH0pO1xuXG4gICAgY29uc3QgYXp1cmVLZXlWYXVsdCA9IG5ldyBrdi5WYXVsdCh0aGlzLCBcImtleXZhdWx0XCIsIHtcbiAgICAgIG5hbWU6IGBrdi0ke3RoaXMubmFtZX1gLFxuICAgICAgcmVzb3VyY2VHcm91cDogcmVzb3VyY2VHcm91cCxcbiAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgdGVuYW50SWQ6IHV0aWwuZ2V0QXp1cmVUZW5hbnRJZCgpLFxuICAgIH0pO1xuICAgIGF6dXJlS2V5VmF1bHQuZ3JhbnRDdXN0b21BY2Nlc3MoY2xpZW50Q29uZmlnLm9iamVjdElkLCB7XG4gICAgICBzZWNyZXRQZXJtaXNzaW9uczogW1wiR2V0XCIsIFwiTGlzdFwiLCBcIlNldFwiLCBcIkRlbGV0ZVwiXSxcbiAgICAgIGtleVBlcm1pc3Npb25zOiBbXG4gICAgICAgIFwiQmFja3VwXCIsXG4gICAgICAgIFwiQ3JlYXRlXCIsXG4gICAgICAgIFwiRGVjcnlwdFwiLFxuICAgICAgICBcIkRlbGV0ZVwiLFxuICAgICAgICBcIkVuY3J5cHRcIixcbiAgICAgICAgXCJHZXRcIixcbiAgICAgICAgXCJJbXBvcnRcIixcbiAgICAgICAgXCJMaXN0XCIsXG4gICAgICAgIFwiUHVyZ2VcIixcbiAgICAgICAgXCJSZWNvdmVyXCIsXG4gICAgICAgIFwiUmVzdG9yZVwiLFxuICAgICAgICBcIlNpZ25cIixcbiAgICAgICAgXCJVbndyYXBLZXlcIixcbiAgICAgICAgXCJVcGRhdGVcIixcbiAgICAgICAgXCJWZXJpZnlcIixcbiAgICAgICAgXCJXcmFwS2V5XCIsXG4gICAgICAgIFwiUmVsZWFzZVwiLFxuICAgICAgICBcIlJvdGF0ZVwiLFxuICAgICAgICBcIkdldFJvdGF0aW9uUG9saWN5XCIsXG4gICAgICAgIFwiU2V0Um90YXRpb25Qb2xpY3lcIixcbiAgICAgIF0sXG4gICAgICBjZXJ0aWZpY2F0ZVBlcm1pc3Npb25zOiBbXG4gICAgICAgIFwiR2V0XCIsXG4gICAgICAgIFwiTGlzdFwiLFxuICAgICAgICBcIkNyZWF0ZVwiLFxuICAgICAgICBcIkRlbGV0ZVwiLFxuICAgICAgICBcIkdldElzc3VlcnNcIixcbiAgICAgICAgXCJNYW5hZ2VJc3N1ZXJzXCIsXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgY29uc3QgY2VydCA9IGF6dXJlS2V5VmF1bHQuYWRkU2VsZlNpZ25lZENlcnQoXCJzc2wtY2VydFwiLCBcIkNOPWNvbnRvc28uY29tXCIsIFtcbiAgICAgIFwiaW50ZXJuYWwuY29udG9zby5jb21cIixcbiAgICBdKTtcblxuICAgIGNvbnN0IGFwcGxpY2F0aW9uR2F0ZXdheSA9IG5ldyBhcGd3LkdhdGV3YXkodGhpcywgXCJhcHBnd1wiLCB7XG4gICAgICBuYW1lOiBgYXBndy0ke3RoaXMubmFtZX1gLFxuICAgICAgcmVzb3VyY2VHcm91cDogcmVzb3VyY2VHcm91cCxcbiAgICAgIGxvY2F0aW9uOiBcImVhc3R1c1wiLFxuICAgICAgc2t1VGllcjogXCJTdGFuZGFyZF92MlwiLFxuICAgICAgc2t1U2l6ZTogXCJTdGFuZGFyZF92MlwiLFxuICAgICAgY2FwYWNpdHk6IDIsXG4gICAgICBwdWJsaWNJcEFkZHJlc3M6IHB1YmxpY0lwLFxuICAgICAgc3VibmV0OiBzdWJuZXQsXG4gICAgICBiYWNrZW5kQWRkcmVzc1Bvb2xzOiBbXG4gICAgICAgIHsgbmFtZTogXCJiYWNrZW5kLWFkZHJlc3MtcG9vbC0xXCIgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiYmFja2VuZC1hZGRyZXNzLXBvb2wtMlwiLFxuICAgICAgICAgIGlwQWRkcmVzc2VzOiBbXCIxMC4xLjAuNFwiLCBcIjEwLjEuMC41XCIsIFwiMTAuMS4wLjZcIl0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgaHR0cExpc3RlbmVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJodHRwLWxpc3RlbmVyXCIsXG4gICAgICAgICAgZnJvbnRlbmRQb3J0TmFtZTogXCI4MFwiLFxuICAgICAgICAgIGZyb250ZW5kSXBDb25maWd1cmF0aW9uTmFtZTogXCJQdWJsaWMtZnJvbnRlbmQtaXAtY29uZmlndXJhdGlvblwiLFxuICAgICAgICAgIHByb3RvY29sOiBcIkh0dHBcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBiYWNrZW5kSHR0cFNldHRpbmdzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcImJhY2tlbmQtaHR0cC1zZXR0aW5nXCIsXG4gICAgICAgICAgcG9ydDogODAsXG4gICAgICAgICAgcHJvdG9jb2w6IFwiSHR0cFwiLFxuICAgICAgICAgIHJlcXVlc3RUaW1lb3V0OiAyMCxcbiAgICAgICAgICBjb29raWVCYXNlZEFmZmluaXR5OiBcIkRpc2FibGVkXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgcmVxdWVzdFJvdXRpbmdSdWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJyZXF1ZXN0LXJvdXRpbmctcnVsZS0xXCIsXG4gICAgICAgICAgaHR0cExpc3RlbmVyTmFtZTogXCJodHRwLWxpc3RlbmVyXCIsXG4gICAgICAgICAgcHJpb3JpdHk6IDEsXG4gICAgICAgICAgYmFja2VuZEFkZHJlc3NQb29sTmFtZTogXCJiYWNrZW5kLWFkZHJlc3MtcG9vbC0xXCIsXG4gICAgICAgICAgYmFja2VuZEh0dHBTZXR0aW5nc05hbWU6IFwiYmFja2VuZC1odHRwLXNldHRpbmdcIixcbiAgICAgICAgICBydWxlVHlwZTogXCJCYXNpY1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIG5ldyBhcGd3LkdhdGV3YXkodGhpcywgXCJhcHBnd193YWZcIiwge1xuICAgICAgbmFtZTogYGFwZ3ctJHt0aGlzLm5hbWV9d2FmYCxcbiAgICAgIHJlc291cmNlR3JvdXA6IHJlc291cmNlR3JvdXAsXG4gICAgICBsb2NhdGlvbjogXCJlYXN0dXNcIixcbiAgICAgIHNrdVRpZXI6IFwiV0FGX3YyXCIsXG4gICAgICBza3VTaXplOiBcIldBRl92MlwiLFxuICAgICAgY2FwYWNpdHk6IDIsXG4gICAgICBwdWJsaWNJcEFkZHJlc3M6IHB1YmxpY0lwd2FmLFxuICAgICAgdGVuYW50SWQ6IHV0aWwuZ2V0QXp1cmVUZW5hbnRJZCgpLFxuICAgICAgc3VibmV0OiBzdWJuZXQsXG4gICAgICBrZXlWYXVsdDogYXp1cmVLZXlWYXVsdC5rZXlWYXVsdCxcbiAgICAgIGJhY2tlbmRBZGRyZXNzUG9vbHM6IFtcbiAgICAgICAgeyBuYW1lOiBcImJhY2tlbmQtYWRkcmVzcy1wb29sLTFcIiB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJiYWNrZW5kLWFkZHJlc3MtcG9vbC0yXCIsXG4gICAgICAgICAgaXBBZGRyZXNzZXM6IFtcIjEwLjEuMC40XCIsIFwiMTAuMS4wLjVcIiwgXCIxMC4xLjAuNlwiXSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICBodHRwTGlzdGVuZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBcImh0dHAtbGlzdGVuZXJcIixcbiAgICAgICAgICBmcm9udGVuZFBvcnROYW1lOiBcIjQ0M1wiLFxuICAgICAgICAgIGZyb250ZW5kSXBDb25maWd1cmF0aW9uTmFtZTogXCJQdWJsaWMtZnJvbnRlbmQtaXAtY29uZmlndXJhdGlvblwiLFxuICAgICAgICAgIHByb3RvY29sOiBcIkh0dHBzXCIsXG4gICAgICAgICAgc3NsQ2VydGlmaWNhdGVOYW1lOiBcImludGVybmFsLmNvbnRvc28uY29tXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgYmFja2VuZEh0dHBTZXR0aW5nczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJiYWNrZW5kLWh0dHAtc2V0dGluZ1wiLFxuICAgICAgICAgIHBvcnQ6IDgwLFxuICAgICAgICAgIHByb3RvY29sOiBcIkh0dHBcIixcbiAgICAgICAgICByZXF1ZXN0VGltZW91dDogMjAsXG4gICAgICAgICAgY29va2llQmFzZWRBZmZpbml0eTogXCJEaXNhYmxlZFwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHJlcXVlc3RSb3V0aW5nUnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwicmVxdWVzdC1yb3V0aW5nLXJ1bGUtMVwiLFxuICAgICAgICAgIGh0dHBMaXN0ZW5lck5hbWU6IFwiaHR0cC1saXN0ZW5lclwiLFxuICAgICAgICAgIHByaW9yaXR5OiAxLFxuICAgICAgICAgIGJhY2tlbmRBZGRyZXNzUG9vbE5hbWU6IFwiYmFja2VuZC1hZGRyZXNzLXBvb2wtMVwiLFxuICAgICAgICAgIGJhY2tlbmRIdHRwU2V0dGluZ3NOYW1lOiBcImJhY2tlbmQtaHR0cC1zZXR0aW5nXCIsXG4gICAgICAgICAgcnVsZVR5cGU6IFwiQmFzaWNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICB3YWZDb25maWd1cmF0aW9uOiB7XG4gICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIGZpcmV3YWxsTW9kZTogXCJEZXRlY3Rpb25cIixcbiAgICAgICAgcnVsZVNldFR5cGU6IFwiT1dBU1BcIixcbiAgICAgICAgcnVsZVNldFZlcnNpb246IFwiMy4wXCIsXG4gICAgICAgIGRpc2FibGVkUnVsZUdyb3VwOiBbXSxcbiAgICAgICAgZmlsZVVwbG9hZExpbWl0TWI6IDEwMCxcbiAgICAgICAgcmVxdWVzdEJvZHlDaGVjazogZmFsc2UsXG4gICAgICAgIG1heFJlcXVlc3RCb2R5U2l6ZUtiOiAzMixcbiAgICAgIH0sXG4gICAgICBwcm9iZTogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJwcm9iZS04MDgwXCIsXG4gICAgICAgICAgaW50ZXJ2YWw6IDMsXG4gICAgICAgICAgcHJvdG9jb2w6IFwiSHR0cFwiLFxuICAgICAgICAgIHBhdGg6IFwiL3N0YXR1c1wiLFxuICAgICAgICAgIHRpbWVvdXQ6IDE1LFxuICAgICAgICAgIHVuaGVhbHRoeVRocmVzaG9sZDogMyxcbiAgICAgICAgICBwb3J0OiA4MDgwLFxuICAgICAgICAgIGhvc3Q6IFwidGVzdFwiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHJlZGlyZWN0Q29uZmlndXJhdGlvbjogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogXCJodHRwLXJlZGlyZWN0XCIsXG4gICAgICAgICAgcmVkaXJlY3RUeXBlOiBcIlBlcm1hbmVudFwiLFxuICAgICAgICAgIHRhcmdldExpc3RlbmVyTmFtZTogXCJodHRwLWxpc3RlbmVyXCIsXG4gICAgICAgICAgaW5jbHVkZVBhdGg6IHRydWUsXG4gICAgICAgICAgaW5jbHVkZVF1ZXJ5U3RyaW5nOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIHVybFBhdGhNYXA6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwidXJsLXBhdGgtbWFwXCIsXG4gICAgICAgICAgZGVmYXVsdFJlZGlyZWN0Q29uZmlndXJhdGlvbk5hbWU6IFwiaHR0cC1yZWRpcmVjdFwiLFxuICAgICAgICAgIHBhdGhSdWxlOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6IFwicGF0aC1ydWxlLTAxXCIsXG4gICAgICAgICAgICAgIHJlZGlyZWN0Q29uZmlndXJhdGlvbk5hbWU6IFwiaHR0cC1yZWRpcmVjdFwiLFxuICAgICAgICAgICAgICBwYXRoczogW1wiL2hlbGxvd29ybGRcIl0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgc3NsQ2VydGlmaWNhdGU6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IFwiaW50ZXJuYWwuY29udG9zby5jb21cIixcbiAgICAgICAgICBrZXlWYXVsdFNlY3JldElkOiBjZXJ0LnNlY3JldElkLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIC8vRGlhZyBTZXR0aW5nc1xuICAgIGFwcGxpY2F0aW9uR2F0ZXdheS5hZGREaWFnU2V0dGluZ3Moe1xuICAgICAgbmFtZTogXCJkaWFnc2V0dGluZ3NcIixcbiAgICAgIGxvZ0FuYWx5dGljc1dvcmtzcGFjZUlkOiBsb2dBbmFseXRpY3NXb3Jrc3BhY2UuaWQsXG4gICAgfSk7XG5cbiAgICAvL1JCQUNcbiAgICBhcHBsaWNhdGlvbkdhdGV3YXkuYWRkQWNjZXNzKGNsaWVudENvbmZpZy5vYmplY3RJZCwgXCJDb250cmlidXRvclwiKTtcblxuICAgIC8vIE91dHB1dHMgdG8gdXNlIGZvciBFbmQgdG8gRW5kIFRlc3RcbiAgICBjb25zdCBjZGt0ZlRlcnJhZm9ybU91dHB1dEtWTmFtZSA9IG5ldyBjZGt0Zi5UZXJyYWZvcm1PdXRwdXQoXG4gICAgICB0aGlzLFxuICAgICAgXCJyZXNvdXJjZV9ncm91cF9uYW1lXCIsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiByZXNvdXJjZUdyb3VwLm5hbWUsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICBjZGt0ZlRlcnJhZm9ybU91dHB1dEtWTmFtZS5vdmVycmlkZUxvZ2ljYWxJZChcInJlc291cmNlX2dyb3VwX25hbWVcIik7XG4gIH1cbn1cblxubmV3IGV4YW1wbGVBenVyZUFwcGxpY2F0aW9uR2F0ZXdheShhcHAsIFwidGVzdEF6dXJlQXBwbGljYXRpb25HYXRld2F5XCIpO1xuXG5hcHAuc3ludGgoKTtcbiJdfQ==
@@ -1,5 +0,0 @@
1
- import { Construct } from "constructs";
2
- import { BaseTestStack } from "../../testing";
3
- export declare class exampleAzureApplicationInsights extends BaseTestStack {
4
- constructor(scope: Construct, id: string);
5
- }