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

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 (930) hide show
  1. package/.devcontainer/devcontainer.json +62 -0
  2. package/.jsii +18296 -0
  3. package/API.md +19698 -0
  4. package/CODE_OF_CONDUCT.md +9 -0
  5. package/CONTRIBUTING.md +85 -0
  6. package/LICENSE +19 -0
  7. package/README.md +152 -0
  8. package/SECURITY.md +41 -0
  9. package/SUPPORT.md +25 -0
  10. package/cdktf.json +11 -0
  11. package/cdktf.out/manifest.json +13 -0
  12. package/cdktf.out/stacks/testAzureActionGroup/cdk.tf.json +111 -0
  13. package/cdktf.out/stacks/testAzureApplicationGateway/cdk.tf.json +588 -0
  14. package/cdktf.out/stacks/testAzureApplicationInsights/cdk.tf.json +245 -0
  15. package/cdktf.out/stacks/testAzureContainerRegistry/cdk.tf.json +179 -0
  16. package/cdktf.out/stacks/testAzureEventhub/cdk.tf.json +236 -0
  17. package/cdktf.out/stacks/testAzureKeyVault/cdk.tf.json +436 -0
  18. package/cdktf.out/stacks/testAzureKubernetesCluster/cdk.tf.json +152 -0
  19. package/cdktf.out/stacks/testAzureKusto/cdk.tf.json +209 -0
  20. package/cdktf.out/stacks/testAzureLinuxFunctionApp/cdk.tf.json +439 -0
  21. package/cdktf.out/stacks/testAzureLinuxVirtualMachineExample/cdk.tf.json +283 -0
  22. package/cdktf.out/stacks/testAzureLinuxVirtualMachineScaleSetExample/cdk.tf.json +261 -0
  23. package/cdktf.out/stacks/testAzureLogAnalytics/cdk.tf.json +309 -0
  24. package/cdktf.out/stacks/testAzureMetricAlert/cdk.tf.json +161 -0
  25. package/cdktf.out/stacks/testAzureNetworkSecurityGroup/cdk.tf.json +271 -0
  26. package/cdktf.out/stacks/testAzureQueryRuleAlert/cdk.tf.json +122 -0
  27. package/cdktf.out/stacks/testAzureResourceGroup/cdk.tf.json +88 -0
  28. package/cdktf.out/stacks/testAzureStorageAccount/cdk.tf.json +339 -0
  29. package/cdktf.out/stacks/testAzureVirtualNetwork/cdk.tf.json +264 -0
  30. package/cdktf.out/stacks/testAzureWindowVirtualMachineScaleSetExample/cdk.tf.json +261 -0
  31. package/cdktf.out/stacks/testAzureWindowsVirtualMachineExample/cdk.tf.json +280 -0
  32. package/cdktf.out/stacks/testExampleAzureResource/cdk.tf.json +167 -0
  33. package/docs/design_guide.md +309 -0
  34. package/docs/images/ide-documentation.png +0 -0
  35. package/docs/testing.md +347 -0
  36. package/go.mod +73 -0
  37. package/go.sum +1006 -0
  38. package/help +51 -0
  39. package/jest.config.js.old +187 -0
  40. package/lib/azure-actiongroup/index.d.ts +1 -0
  41. package/lib/azure-actiongroup/index.js +18 -0
  42. package/lib/azure-actiongroup/lib/actiongroup.d.ts +49 -0
  43. package/lib/azure-actiongroup/lib/actiongroup.js +85 -0
  44. package/lib/azure-actiongroup/lib/index.d.ts +1 -0
  45. package/lib/azure-actiongroup/lib/index.js +18 -0
  46. package/lib/azure-actiongroup/model/action-group-props.d.ts +47 -0
  47. package/lib/azure-actiongroup/model/action-group-props.js +3 -0
  48. package/lib/azure-actiongroup/model/arm-role-receiver-props.d.ts +20 -0
  49. package/lib/azure-actiongroup/model/arm-role-receiver-props.js +3 -0
  50. package/lib/azure-actiongroup/model/azure-app-push-receiver-props.d.ts +14 -0
  51. package/lib/azure-actiongroup/model/azure-app-push-receiver-props.js +3 -0
  52. package/lib/azure-actiongroup/model/email-receiver-props.d.ts +19 -0
  53. package/lib/azure-actiongroup/model/email-receiver-props.js +3 -0
  54. package/lib/azure-actiongroup/model/eventhub-receiver-props.d.ts +23 -0
  55. package/lib/azure-actiongroup/model/eventhub-receiver-props.js +3 -0
  56. package/lib/azure-actiongroup/model/function.d.ts +40 -0
  57. package/lib/azure-actiongroup/model/function.js +118 -0
  58. package/lib/azure-actiongroup/model/index.d.ts +10 -0
  59. package/lib/azure-actiongroup/model/index.js +27 -0
  60. package/lib/azure-actiongroup/model/logic-app-receiver-props.d.ts +23 -0
  61. package/lib/azure-actiongroup/model/logic-app-receiver-props.js +3 -0
  62. package/lib/azure-actiongroup/model/sms-receiver-props.d.ts +18 -0
  63. package/lib/azure-actiongroup/model/sms-receiver-props.js +3 -0
  64. package/lib/azure-actiongroup/model/voice-receiver-props.d.ts +18 -0
  65. package/lib/azure-actiongroup/model/voice-receiver-props.js +3 -0
  66. package/lib/azure-actiongroup/model/webhook-receiver-props.d.ts +18 -0
  67. package/lib/azure-actiongroup/model/webhook-receiver-props.js +3 -0
  68. package/lib/azure-actiongroup/test/AzureActionGroup.spec.d.ts +1 -0
  69. package/lib/azure-actiongroup/test/AzureActionGroup.spec.js +294 -0
  70. package/lib/azure-actiongroup/test/ExampleAzureActionGroup.d.ts +5 -0
  71. package/lib/azure-actiongroup/test/ExampleAzureActionGroup.js +66 -0
  72. package/lib/azure-applicationgateway/index.d.ts +1 -0
  73. package/lib/azure-applicationgateway/index.js +18 -0
  74. package/lib/azure-applicationgateway/lib/gateway.d.ts +248 -0
  75. package/lib/azure-applicationgateway/lib/gateway.js +199 -0
  76. package/lib/azure-applicationgateway/lib/index.d.ts +1 -0
  77. package/lib/azure-applicationgateway/lib/index.js +18 -0
  78. package/lib/azure-applicationgateway/test/AzureApplicationGateway.spec.d.ts +1 -0
  79. package/lib/azure-applicationgateway/test/AzureApplicationGateway.spec.js +106 -0
  80. package/lib/azure-applicationgateway/test/ExampleAzureApplicationGateway.d.ts +5 -0
  81. package/lib/azure-applicationgateway/test/ExampleAzureApplicationGateway.js +267 -0
  82. package/lib/azure-applicationinsights/index.d.ts +1 -0
  83. package/lib/azure-applicationinsights/index.js +18 -0
  84. package/lib/azure-applicationinsights/lib/appinsights.d.ts +110 -0
  85. package/lib/azure-applicationinsights/lib/appinsights.js +134 -0
  86. package/lib/azure-applicationinsights/lib/index.d.ts +1 -0
  87. package/lib/azure-applicationinsights/lib/index.js +18 -0
  88. package/lib/azure-applicationinsights/test/AzureAppInsights.spec.d.ts +1 -0
  89. package/lib/azure-applicationinsights/test/AzureAppInsights.spec.js +55 -0
  90. package/lib/azure-applicationinsights/test/ExampleAzureApplicationInsights.d.ts +5 -0
  91. package/lib/azure-applicationinsights/test/ExampleAzureApplicationInsights.js +87 -0
  92. package/lib/azure-containerregistry/index.d.ts +1 -0
  93. package/lib/azure-containerregistry/index.js +18 -0
  94. package/lib/azure-containerregistry/lib/index.d.ts +1 -0
  95. package/lib/azure-containerregistry/lib/index.js +18 -0
  96. package/lib/azure-containerregistry/lib/registry.d.ts +70 -0
  97. package/lib/azure-containerregistry/lib/registry.js +76 -0
  98. package/lib/azure-containerregistry/test/AzureContainerRegistry.spec.d.ts +1 -0
  99. package/lib/azure-containerregistry/test/AzureContainerRegistry.spec.js +50 -0
  100. package/lib/azure-containerregistry/test/ExampleAzureContainerRegistry.d.ts +5 -0
  101. package/lib/azure-containerregistry/test/ExampleAzureContainerRegistry.js +57 -0
  102. package/lib/azure-datalake/index.d.ts +1 -0
  103. package/lib/azure-datalake/index.js +18 -0
  104. package/lib/azure-datalake/lib/datalake.d.ts +64 -0
  105. package/lib/azure-datalake/lib/datalake.js +92 -0
  106. package/lib/azure-datalake/lib/filesystem.d.ts +70 -0
  107. package/lib/azure-datalake/lib/filesystem.js +83 -0
  108. package/lib/azure-datalake/lib/index.d.ts +3 -0
  109. package/lib/azure-datalake/lib/index.js +20 -0
  110. package/lib/azure-datalake/lib/path.d.ts +49 -0
  111. package/lib/azure-datalake/lib/path.js +51 -0
  112. package/lib/azure-eventhub/index.d.ts +1 -0
  113. package/lib/azure-eventhub/index.js +18 -0
  114. package/lib/azure-eventhub/lib/authorization.d.ts +58 -0
  115. package/lib/azure-eventhub/lib/authorization.js +84 -0
  116. package/lib/azure-eventhub/lib/cluster.d.ts +56 -0
  117. package/lib/azure-eventhub/lib/cluster.js +64 -0
  118. package/lib/azure-eventhub/lib/consumer.d.ts +54 -0
  119. package/lib/azure-eventhub/lib/consumer.js +59 -0
  120. package/lib/azure-eventhub/lib/index.d.ts +6 -0
  121. package/lib/azure-eventhub/lib/index.js +23 -0
  122. package/lib/azure-eventhub/lib/instance.d.ts +164 -0
  123. package/lib/azure-eventhub/lib/instance.js +184 -0
  124. package/lib/azure-eventhub/lib/kusto-connection.d.ts +109 -0
  125. package/lib/azure-eventhub/lib/kusto-connection.js +76 -0
  126. package/lib/azure-eventhub/lib/namespace.d.ts +151 -0
  127. package/lib/azure-eventhub/lib/namespace.js +131 -0
  128. package/lib/azure-eventhub/test/AzureEventhub.spec.d.ts +1 -0
  129. package/lib/azure-eventhub/test/AzureEventhub.spec.js +56 -0
  130. package/lib/azure-eventhub/test/ExampleAzureEventhub.d.ts +5 -0
  131. package/lib/azure-eventhub/test/ExampleAzureEventhub.js +72 -0
  132. package/lib/azure-functionapp/index.d.ts +1 -0
  133. package/lib/azure-functionapp/index.js +18 -0
  134. package/lib/azure-functionapp/lib/functionapplinux.d.ts +211 -0
  135. package/lib/azure-functionapp/lib/functionapplinux.js +141 -0
  136. package/lib/azure-functionapp/lib/index.d.ts +1 -0
  137. package/lib/azure-functionapp/lib/index.js +18 -0
  138. package/lib/azure-functionapp/serviceplanskus.d.ts +70 -0
  139. package/lib/azure-functionapp/serviceplanskus.js +81 -0
  140. package/lib/azure-functionapp/test/AzureLinuxFunctionApp.spec.d.ts +1 -0
  141. package/lib/azure-functionapp/test/AzureLinuxFunctionApp.spec.js +48 -0
  142. package/lib/azure-functionapp/test/ExampleAzureLinuxFunctionApp.d.ts +5 -0
  143. package/lib/azure-functionapp/test/ExampleAzureLinuxFunctionApp.js +123 -0
  144. package/lib/azure-keyvault/index.d.ts +1 -0
  145. package/lib/azure-keyvault/index.js +18 -0
  146. package/lib/azure-keyvault/lib/certificate.d.ts +133 -0
  147. package/lib/azure-keyvault/lib/certificate.js +146 -0
  148. package/lib/azure-keyvault/lib/index.d.ts +5 -0
  149. package/lib/azure-keyvault/lib/index.js +22 -0
  150. package/lib/azure-keyvault/lib/key.d.ts +72 -0
  151. package/lib/azure-keyvault/lib/key.js +69 -0
  152. package/lib/azure-keyvault/lib/policy.d.ts +76 -0
  153. package/lib/azure-keyvault/lib/policy.js +56 -0
  154. package/lib/azure-keyvault/lib/secret.d.ts +70 -0
  155. package/lib/azure-keyvault/lib/secret.js +64 -0
  156. package/lib/azure-keyvault/lib/vault.d.ts +282 -0
  157. package/lib/azure-keyvault/lib/vault.js +392 -0
  158. package/lib/azure-keyvault/test/AzureKeyVault.spec.d.ts +1 -0
  159. package/lib/azure-keyvault/test/AzureKeyVault.spec.js +63 -0
  160. package/lib/azure-keyvault/test/ExampleAzureKeyVault.d.ts +5 -0
  161. package/lib/azure-keyvault/test/ExampleAzureKeyVault.js +112 -0
  162. package/lib/azure-kubernetes/index.d.ts +1 -0
  163. package/lib/azure-kubernetes/index.js +18 -0
  164. package/lib/azure-kubernetes/lib/cluster.d.ts +93 -0
  165. package/lib/azure-kubernetes/lib/cluster.js +63 -0
  166. package/lib/azure-kubernetes/lib/index.d.ts +1 -0
  167. package/lib/azure-kubernetes/lib/index.js +18 -0
  168. package/lib/azure-kubernetes/test/AzureKubernetesCluster.spec.d.ts +1 -0
  169. package/lib/azure-kubernetes/test/AzureKubernetesCluster.spec.js +56 -0
  170. package/lib/azure-kubernetes/test/ExampleAzureKubernetesCluster.d.ts +5 -0
  171. package/lib/azure-kubernetes/test/ExampleAzureKubernetesCluster.js +65 -0
  172. package/lib/azure-kusto/index.d.ts +1 -0
  173. package/lib/azure-kusto/index.js +18 -0
  174. package/lib/azure-kusto/lib/cluster.d.ts +136 -0
  175. package/lib/azure-kusto/lib/cluster.js +138 -0
  176. package/lib/azure-kusto/lib/compute-specification.d.ts +71 -0
  177. package/lib/azure-kusto/lib/compute-specification.js +651 -0
  178. package/lib/azure-kusto/lib/database.d.ts +162 -0
  179. package/lib/azure-kusto/lib/database.js +180 -0
  180. package/lib/azure-kusto/lib/index.d.ts +3 -0
  181. package/lib/azure-kusto/lib/index.js +20 -0
  182. package/lib/azure-kusto/test/AzureKusto.spec.d.ts +1 -0
  183. package/lib/azure-kusto/test/AzureKusto.spec.js +50 -0
  184. package/lib/azure-kusto/test/ExampleAzureKusto.d.ts +5 -0
  185. package/lib/azure-kusto/test/ExampleAzureKusto.js +71 -0
  186. package/lib/azure-loganalytics/index.d.ts +1 -0
  187. package/lib/azure-loganalytics/index.js +18 -0
  188. package/lib/azure-loganalytics/lib/index.d.ts +1 -0
  189. package/lib/azure-loganalytics/lib/index.js +18 -0
  190. package/lib/azure-loganalytics/lib/workspace.d.ts +163 -0
  191. package/lib/azure-loganalytics/lib/workspace.js +126 -0
  192. package/lib/azure-loganalytics/test/AzureLogAnalytics.spec.d.ts +1 -0
  193. package/lib/azure-loganalytics/test/AzureLogAnalytics.spec.js +50 -0
  194. package/lib/azure-loganalytics/test/ExampleAzureLogAnalytics.d.ts +5 -0
  195. package/lib/azure-loganalytics/test/ExampleAzureLogAnalytics.js +115 -0
  196. package/lib/azure-metricalert/index.d.ts +2 -0
  197. package/lib/azure-metricalert/index.js +19 -0
  198. package/lib/azure-metricalert/lib/index.d.ts +1 -0
  199. package/lib/azure-metricalert/lib/index.js +18 -0
  200. package/lib/azure-metricalert/lib/metric-alert.d.ts +56 -0
  201. package/lib/azure-metricalert/lib/metric-alert.js +128 -0
  202. package/lib/azure-metricalert/model/action-props.d.ts +11 -0
  203. package/lib/azure-metricalert/model/action-props.js +3 -0
  204. package/lib/azure-metricalert/model/criteria-base-props.d.ts +38 -0
  205. package/lib/azure-metricalert/model/criteria-base-props.js +3 -0
  206. package/lib/azure-metricalert/model/criteria-dimension-props.d.ts +21 -0
  207. package/lib/azure-metricalert/model/criteria-dimension-props.js +3 -0
  208. package/lib/azure-metricalert/model/criteria-props.d.ts +12 -0
  209. package/lib/azure-metricalert/model/criteria-props.js +3 -0
  210. package/lib/azure-metricalert/model/dynamic-criteria-props.d.ts +29 -0
  211. package/lib/azure-metricalert/model/dynamic-criteria-props.js +3 -0
  212. package/lib/azure-metricalert/model/function.d.ts +28 -0
  213. package/lib/azure-metricalert/model/function.js +78 -0
  214. package/lib/azure-metricalert/model/index.d.ts +7 -0
  215. package/lib/azure-metricalert/model/index.js +24 -0
  216. package/lib/azure-metricalert/model/metric-alert-props.d.ts +86 -0
  217. package/lib/azure-metricalert/model/metric-alert-props.js +3 -0
  218. package/lib/azure-metricalert/test/AzureMetricAlert.spec.d.ts +1 -0
  219. package/lib/azure-metricalert/test/AzureMetricAlert.spec.js +63 -0
  220. package/lib/azure-metricalert/test/ExampleAzureMetricAlert.d.ts +5 -0
  221. package/lib/azure-metricalert/test/ExampleAzureMetricAlert.js +81 -0
  222. package/lib/azure-networksecuritygroup/index.d.ts +1 -0
  223. package/lib/azure-networksecuritygroup/index.js +18 -0
  224. package/lib/azure-networksecuritygroup/lib/index.d.ts +2 -0
  225. package/lib/azure-networksecuritygroup/lib/index.js +19 -0
  226. package/lib/azure-networksecuritygroup/lib/preconfigured-rules.d.ts +77 -0
  227. package/lib/azure-networksecuritygroup/lib/preconfigured-rules.js +608 -0
  228. package/lib/azure-networksecuritygroup/lib/securitygroup.d.ts +190 -0
  229. package/lib/azure-networksecuritygroup/lib/securitygroup.js +172 -0
  230. package/lib/azure-networksecuritygroup/test/AzureNetworkSecurityGroup.spec.d.ts +1 -0
  231. package/lib/azure-networksecuritygroup/test/AzureNetworkSecurityGroup.spec.js +54 -0
  232. package/lib/azure-networksecuritygroup/test/ExampleAzureNetworkSecurityGroup.d.ts +5 -0
  233. package/lib/azure-networksecuritygroup/test/ExampleAzureNetworkSecurityGroup.js +97 -0
  234. package/lib/azure-queryrulealert/index.d.ts +1 -0
  235. package/lib/azure-queryrulealert/index.js +18 -0
  236. package/lib/azure-queryrulealert/lib/index.d.ts +1 -0
  237. package/lib/azure-queryrulealert/lib/index.js +18 -0
  238. package/lib/azure-queryrulealert/lib/query-rule-alert.d.ts +175 -0
  239. package/lib/azure-queryrulealert/lib/query-rule-alert.js +205 -0
  240. package/lib/azure-queryrulealert/test/AzureQueryRuleAlert.spec.d.ts +1 -0
  241. package/lib/azure-queryrulealert/test/AzureQueryRuleAlert.spec.js +67 -0
  242. package/lib/azure-queryrulealert/test/ExampleAzureQueryRuleAlert.d.ts +5 -0
  243. package/lib/azure-queryrulealert/test/ExampleAzureQueryRuleAlert.js +67 -0
  244. package/lib/azure-resourcegroup/index.d.ts +1 -0
  245. package/lib/azure-resourcegroup/index.js +18 -0
  246. package/lib/azure-resourcegroup/lib/index.d.ts +1 -0
  247. package/lib/azure-resourcegroup/lib/index.js +18 -0
  248. package/lib/azure-resourcegroup/lib/resource-group.d.ts +66 -0
  249. package/lib/azure-resourcegroup/lib/resource-group.js +77 -0
  250. package/lib/azure-resourcegroup/test/AzureResourceGroup.spec.d.ts +1 -0
  251. package/lib/azure-resourcegroup/test/AzureResourceGroup.spec.js +41 -0
  252. package/lib/azure-resourcegroup/test/ExampleAzureResourceGroup.d.ts +5 -0
  253. package/lib/azure-resourcegroup/test/ExampleAzureResourceGroup.js +29 -0
  254. package/lib/azure-storageaccount/index.d.ts +1 -0
  255. package/lib/azure-storageaccount/index.js +18 -0
  256. package/lib/azure-storageaccount/lib/account.d.ts +232 -0
  257. package/lib/azure-storageaccount/lib/account.js +225 -0
  258. package/lib/azure-storageaccount/lib/container.d.ts +122 -0
  259. package/lib/azure-storageaccount/lib/container.js +167 -0
  260. package/lib/azure-storageaccount/lib/fileshare.d.ts +105 -0
  261. package/lib/azure-storageaccount/lib/fileshare.js +126 -0
  262. package/lib/azure-storageaccount/lib/index.d.ts +5 -0
  263. package/lib/azure-storageaccount/lib/index.js +22 -0
  264. package/lib/azure-storageaccount/lib/queue.d.ts +35 -0
  265. package/lib/azure-storageaccount/lib/queue.js +52 -0
  266. package/lib/azure-storageaccount/lib/table.d.ts +38 -0
  267. package/lib/azure-storageaccount/lib/table.js +55 -0
  268. package/lib/azure-storageaccount/test/AzureStorageAccount.spec.d.ts +1 -0
  269. package/lib/azure-storageaccount/test/AzureStorageAccount.spec.js +45 -0
  270. package/lib/azure-storageaccount/test/ExampleAzureStorageAccount.d.ts +5 -0
  271. package/lib/azure-storageaccount/test/ExampleAzureStorageAccount.js +102 -0
  272. package/lib/azure-virtualmachine/index.d.ts +1 -0
  273. package/lib/azure-virtualmachine/index.js +18 -0
  274. package/lib/azure-virtualmachine/lib/image-references.d.ts +22 -0
  275. package/lib/azure-virtualmachine/lib/image-references.js +128 -0
  276. package/lib/azure-virtualmachine/lib/index.d.ts +2 -0
  277. package/lib/azure-virtualmachine/lib/index.js +19 -0
  278. package/lib/azure-virtualmachine/lib/vm.d.ts +281 -0
  279. package/lib/azure-virtualmachine/lib/vm.js +283 -0
  280. package/lib/azure-virtualmachine/test/AzureLinuxVirtualMachine.spec.d.ts +1 -0
  281. package/lib/azure-virtualmachine/test/AzureLinuxVirtualMachine.spec.js +48 -0
  282. package/lib/azure-virtualmachine/test/AzureWindowsVirtualMachine.spec.d.ts +1 -0
  283. package/lib/azure-virtualmachine/test/AzureWindowsVirtualMachine.spec.js +50 -0
  284. package/lib/azure-virtualmachine/test/ExampleAzureLinuxVirtualMachine.d.ts +5 -0
  285. package/lib/azure-virtualmachine/test/ExampleAzureLinuxVirtualMachine.js +106 -0
  286. package/lib/azure-virtualmachine/test/ExampleAzureWindowsVirtualMachine.d.ts +5 -0
  287. package/lib/azure-virtualmachine/test/ExampleAzureWindowsVirtualMachine.js +102 -0
  288. package/lib/azure-virtualmachinescaleset/index.d.ts +1 -0
  289. package/lib/azure-virtualmachinescaleset/index.js +18 -0
  290. package/lib/azure-virtualmachinescaleset/lib/cluster.d.ts +324 -0
  291. package/lib/azure-virtualmachinescaleset/lib/cluster.js +264 -0
  292. package/lib/azure-virtualmachinescaleset/lib/index.d.ts +1 -0
  293. package/lib/azure-virtualmachinescaleset/lib/index.js +18 -0
  294. package/lib/azure-virtualmachinescaleset/test/AzureLinuxVirtualMachineScaleSet.spec.d.ts +1 -0
  295. package/lib/azure-virtualmachinescaleset/test/AzureLinuxVirtualMachineScaleSet.spec.js +48 -0
  296. package/lib/azure-virtualmachinescaleset/test/AzureWindowsVirtualMachineScaleSet.spec.d.ts +1 -0
  297. package/lib/azure-virtualmachinescaleset/test/AzureWindowsVirtualMachineScaleSet.spec.js +50 -0
  298. package/lib/azure-virtualmachinescaleset/test/ExampleAzureLinuxVirtualMachineScaleSet.d.ts +5 -0
  299. package/lib/azure-virtualmachinescaleset/test/ExampleAzureLinuxVirtualMachineScaleSet.js +107 -0
  300. package/lib/azure-virtualmachinescaleset/test/ExampleAzureWindowsVirtualMachineScaleSet.d.ts +5 -0
  301. package/lib/azure-virtualmachinescaleset/test/ExampleAzureWindowsVirtualMachineScaleSet.js +103 -0
  302. package/lib/azure-virtualnetwork/index.d.ts +1 -0
  303. package/lib/azure-virtualnetwork/index.js +18 -0
  304. package/lib/azure-virtualnetwork/lib/index.d.ts +2 -0
  305. package/lib/azure-virtualnetwork/lib/index.js +19 -0
  306. package/lib/azure-virtualnetwork/lib/network.d.ts +122 -0
  307. package/lib/azure-virtualnetwork/lib/network.js +120 -0
  308. package/lib/azure-virtualnetwork/lib/peering.d.ts +90 -0
  309. package/lib/azure-virtualnetwork/lib/peering.js +71 -0
  310. package/lib/azure-virtualnetwork/test/AzureVirtualNetwork.spec.d.ts +1 -0
  311. package/lib/azure-virtualnetwork/test/AzureVirtualNetwork.spec.js +48 -0
  312. package/lib/azure-virtualnetwork/test/ExampleAzureVirtualNetwork.d.ts +5 -0
  313. package/lib/azure-virtualnetwork/test/ExampleAzureVirtualNetwork.js +88 -0
  314. package/lib/core-azure/index.d.ts +1 -0
  315. package/lib/core-azure/index.js +18 -0
  316. package/lib/core-azure/lib/diagsettings.d.ts +89 -0
  317. package/lib/core-azure/lib/diagsettings.js +83 -0
  318. package/lib/core-azure/lib/index.d.ts +3 -0
  319. package/lib/core-azure/lib/index.js +20 -0
  320. package/lib/core-azure/lib/rbac.d.ts +50 -0
  321. package/lib/core-azure/lib/rbac.js +48 -0
  322. package/lib/core-azure/lib/resource.d.ts +62 -0
  323. package/lib/core-azure/lib/resource.js +118 -0
  324. package/lib/core-azure/test/AzureResource.spec.d.ts +1 -0
  325. package/lib/core-azure/test/AzureResource.spec.js +19 -0
  326. package/lib/core-azure/test/ExampleAzureResource.d.ts +5 -0
  327. package/lib/core-azure/test/ExampleAzureResource.js +67 -0
  328. package/lib/index.d.ts +18 -0
  329. package/lib/index.js +22 -0
  330. package/lib/testing/index.d.ts +6 -0
  331. package/lib/testing/index.js +18 -0
  332. package/lib/util/azureTenantIdHelpers.d.ts +2 -0
  333. package/lib/util/azureTenantIdHelpers.js +34 -0
  334. package/lib/util/randomName.d.ts +1 -0
  335. package/lib/util/randomName.js +13 -0
  336. package/node_modules/moment/CHANGELOG.md +996 -0
  337. package/node_modules/moment/LICENSE +22 -0
  338. package/node_modules/moment/README.md +55 -0
  339. package/node_modules/moment/dist/locale/af.js +71 -0
  340. package/node_modules/moment/dist/locale/ar-dz.js +156 -0
  341. package/node_modules/moment/dist/locale/ar-kw.js +55 -0
  342. package/node_modules/moment/dist/locale/ar-ly.js +171 -0
  343. package/node_modules/moment/dist/locale/ar-ma.js +56 -0
  344. package/node_modules/moment/dist/locale/ar-ps.js +112 -0
  345. package/node_modules/moment/dist/locale/ar-sa.js +105 -0
  346. package/node_modules/moment/dist/locale/ar-tn.js +55 -0
  347. package/node_modules/moment/dist/locale/ar.js +189 -0
  348. package/node_modules/moment/dist/locale/az.js +102 -0
  349. package/node_modules/moment/dist/locale/be.js +142 -0
  350. package/node_modules/moment/dist/locale/bg.js +87 -0
  351. package/node_modules/moment/dist/locale/bm.js +52 -0
  352. package/node_modules/moment/dist/locale/bn-bd.js +129 -0
  353. package/node_modules/moment/dist/locale/bn.js +119 -0
  354. package/node_modules/moment/dist/locale/bo.js +124 -0
  355. package/node_modules/moment/dist/locale/br.js +168 -0
  356. package/node_modules/moment/dist/locale/bs.js +160 -0
  357. package/node_modules/moment/dist/locale/ca.js +100 -0
  358. package/node_modules/moment/dist/locale/cs.js +181 -0
  359. package/node_modules/moment/dist/locale/cv.js +63 -0
  360. package/node_modules/moment/dist/locale/cy.js +98 -0
  361. package/node_modules/moment/dist/locale/da.js +53 -0
  362. package/node_modules/moment/dist/locale/de-at.js +79 -0
  363. package/node_modules/moment/dist/locale/de-ch.js +78 -0
  364. package/node_modules/moment/dist/locale/de.js +78 -0
  365. package/node_modules/moment/dist/locale/dv.js +90 -0
  366. package/node_modules/moment/dist/locale/el.js +106 -0
  367. package/node_modules/moment/dist/locale/en-au.js +68 -0
  368. package/node_modules/moment/dist/locale/en-ca.js +64 -0
  369. package/node_modules/moment/dist/locale/en-gb.js +68 -0
  370. package/node_modules/moment/dist/locale/en-ie.js +68 -0
  371. package/node_modules/moment/dist/locale/en-il.js +64 -0
  372. package/node_modules/moment/dist/locale/en-in.js +68 -0
  373. package/node_modules/moment/dist/locale/en-nz.js +68 -0
  374. package/node_modules/moment/dist/locale/en-sg.js +68 -0
  375. package/node_modules/moment/dist/locale/eo.js +68 -0
  376. package/node_modules/moment/dist/locale/es-do.js +108 -0
  377. package/node_modules/moment/dist/locale/es-mx.js +110 -0
  378. package/node_modules/moment/dist/locale/es-us.js +110 -0
  379. package/node_modules/moment/dist/locale/es.js +110 -0
  380. package/node_modules/moment/dist/locale/et.js +78 -0
  381. package/node_modules/moment/dist/locale/eu.js +65 -0
  382. package/node_modules/moment/dist/locale/fa.js +113 -0
  383. package/node_modules/moment/dist/locale/fi.js +124 -0
  384. package/node_modules/moment/dist/locale/fil.js +58 -0
  385. package/node_modules/moment/dist/locale/fo.js +57 -0
  386. package/node_modules/moment/dist/locale/fr-ca.js +70 -0
  387. package/node_modules/moment/dist/locale/fr-ch.js +74 -0
  388. package/node_modules/moment/dist/locale/fr.js +108 -0
  389. package/node_modules/moment/dist/locale/fy.js +75 -0
  390. package/node_modules/moment/dist/locale/ga.js +95 -0
  391. package/node_modules/moment/dist/locale/gd.js +95 -0
  392. package/node_modules/moment/dist/locale/gl.js +75 -0
  393. package/node_modules/moment/dist/locale/gom-deva.js +126 -0
  394. package/node_modules/moment/dist/locale/gom-latn.js +124 -0
  395. package/node_modules/moment/dist/locale/gu.js +122 -0
  396. package/node_modules/moment/dist/locale/he.js +94 -0
  397. package/node_modules/moment/dist/locale/hi.js +168 -0
  398. package/node_modules/moment/dist/locale/hr.js +156 -0
  399. package/node_modules/moment/dist/locale/hu.js +118 -0
  400. package/node_modules/moment/dist/locale/hy-am.js +94 -0
  401. package/node_modules/moment/dist/locale/id.js +76 -0
  402. package/node_modules/moment/dist/locale/is.js +140 -0
  403. package/node_modules/moment/dist/locale/it-ch.js +64 -0
  404. package/node_modules/moment/dist/locale/it.js +106 -0
  405. package/node_modules/moment/dist/locale/ja.js +148 -0
  406. package/node_modules/moment/dist/locale/jv.js +76 -0
  407. package/node_modules/moment/dist/locale/ka.js +92 -0
  408. package/node_modules/moment/dist/locale/kk.js +82 -0
  409. package/node_modules/moment/dist/locale/km.js +103 -0
  410. package/node_modules/moment/dist/locale/kn.js +124 -0
  411. package/node_modules/moment/dist/locale/ko.js +75 -0
  412. package/node_modules/moment/dist/locale/ku-kmr.js +121 -0
  413. package/node_modules/moment/dist/locale/ku.js +118 -0
  414. package/node_modules/moment/dist/locale/ky.js +84 -0
  415. package/node_modules/moment/dist/locale/lb.js +137 -0
  416. package/node_modules/moment/dist/locale/lo.js +66 -0
  417. package/node_modules/moment/dist/locale/lt.js +125 -0
  418. package/node_modules/moment/dist/locale/lv.js +94 -0
  419. package/node_modules/moment/dist/locale/me.js +117 -0
  420. package/node_modules/moment/dist/locale/mi.js +60 -0
  421. package/node_modules/moment/dist/locale/mk.js +85 -0
  422. package/node_modules/moment/dist/locale/ml.js +82 -0
  423. package/node_modules/moment/dist/locale/mn.js +100 -0
  424. package/node_modules/moment/dist/locale/mr.js +203 -0
  425. package/node_modules/moment/dist/locale/ms-my.js +76 -0
  426. package/node_modules/moment/dist/locale/ms.js +75 -0
  427. package/node_modules/moment/dist/locale/mt.js +56 -0
  428. package/node_modules/moment/dist/locale/my.js +91 -0
  429. package/node_modules/moment/dist/locale/nb.js +60 -0
  430. package/node_modules/moment/dist/locale/ne.js +121 -0
  431. package/node_modules/moment/dist/locale/nl-be.js +102 -0
  432. package/node_modules/moment/dist/locale/nl.js +104 -0
  433. package/node_modules/moment/dist/locale/nn.js +59 -0
  434. package/node_modules/moment/dist/locale/oc-lnc.js +85 -0
  435. package/node_modules/moment/dist/locale/pa-in.js +122 -0
  436. package/node_modules/moment/dist/locale/pl.js +140 -0
  437. package/node_modules/moment/dist/locale/pt-br.js +58 -0
  438. package/node_modules/moment/dist/locale/pt.js +63 -0
  439. package/node_modules/moment/dist/locale/ro.js +76 -0
  440. package/node_modules/moment/dist/locale/ru.js +213 -0
  441. package/node_modules/moment/dist/locale/sd.js +81 -0
  442. package/node_modules/moment/dist/locale/se.js +57 -0
  443. package/node_modules/moment/dist/locale/si.js +69 -0
  444. package/node_modules/moment/dist/locale/sk.js +145 -0
  445. package/node_modules/moment/dist/locale/sl.js +171 -0
  446. package/node_modules/moment/dist/locale/sq.js +65 -0
  447. package/node_modules/moment/dist/locale/sr-cyrl.js +127 -0
  448. package/node_modules/moment/dist/locale/sr.js +129 -0
  449. package/node_modules/moment/dist/locale/ss.js +84 -0
  450. package/node_modules/moment/dist/locale/sv.js +68 -0
  451. package/node_modules/moment/dist/locale/sw.js +55 -0
  452. package/node_modules/moment/dist/locale/ta.js +131 -0
  453. package/node_modules/moment/dist/locale/te.js +88 -0
  454. package/node_modules/moment/dist/locale/tet.js +68 -0
  455. package/node_modules/moment/dist/locale/tg.js +117 -0
  456. package/node_modules/moment/dist/locale/th.js +65 -0
  457. package/node_modules/moment/dist/locale/tk.js +91 -0
  458. package/node_modules/moment/dist/locale/tl-ph.js +57 -0
  459. package/node_modules/moment/dist/locale/tlh.js +124 -0
  460. package/node_modules/moment/dist/locale/tr.js +106 -0
  461. package/node_modules/moment/dist/locale/tzl.js +89 -0
  462. package/node_modules/moment/dist/locale/tzm-latn.js +54 -0
  463. package/node_modules/moment/dist/locale/tzm.js +54 -0
  464. package/node_modules/moment/dist/locale/ug-cn.js +111 -0
  465. package/node_modules/moment/dist/locale/uk.js +167 -0
  466. package/node_modules/moment/dist/locale/ur.js +82 -0
  467. package/node_modules/moment/dist/locale/uz-latn.js +54 -0
  468. package/node_modules/moment/dist/locale/uz.js +51 -0
  469. package/node_modules/moment/dist/locale/vi.js +80 -0
  470. package/node_modules/moment/dist/locale/x-pseudo.js +73 -0
  471. package/node_modules/moment/dist/locale/yo.js +53 -0
  472. package/node_modules/moment/dist/locale/zh-cn.js +120 -0
  473. package/node_modules/moment/dist/locale/zh-hk.js +101 -0
  474. package/node_modules/moment/dist/locale/zh-mo.js +100 -0
  475. package/node_modules/moment/dist/locale/zh-tw.js +99 -0
  476. package/node_modules/moment/dist/moment.js +5680 -0
  477. package/node_modules/moment/ender.js +1 -0
  478. package/node_modules/moment/locale/af.js +82 -0
  479. package/node_modules/moment/locale/ar-dz.js +167 -0
  480. package/node_modules/moment/locale/ar-kw.js +66 -0
  481. package/node_modules/moment/locale/ar-ly.js +182 -0
  482. package/node_modules/moment/locale/ar-ma.js +67 -0
  483. package/node_modules/moment/locale/ar-ps.js +123 -0
  484. package/node_modules/moment/locale/ar-sa.js +116 -0
  485. package/node_modules/moment/locale/ar-tn.js +66 -0
  486. package/node_modules/moment/locale/ar.js +200 -0
  487. package/node_modules/moment/locale/az.js +113 -0
  488. package/node_modules/moment/locale/be.js +153 -0
  489. package/node_modules/moment/locale/bg.js +98 -0
  490. package/node_modules/moment/locale/bm.js +62 -0
  491. package/node_modules/moment/locale/bn-bd.js +140 -0
  492. package/node_modules/moment/locale/bn.js +130 -0
  493. package/node_modules/moment/locale/bo.js +135 -0
  494. package/node_modules/moment/locale/br.js +179 -0
  495. package/node_modules/moment/locale/bs.js +171 -0
  496. package/node_modules/moment/locale/ca.js +111 -0
  497. package/node_modules/moment/locale/cs.js +192 -0
  498. package/node_modules/moment/locale/cv.js +74 -0
  499. package/node_modules/moment/locale/cy.js +109 -0
  500. package/node_modules/moment/locale/da.js +64 -0
  501. package/node_modules/moment/locale/de-at.js +90 -0
  502. package/node_modules/moment/locale/de-ch.js +87 -0
  503. package/node_modules/moment/locale/de.js +89 -0
  504. package/node_modules/moment/locale/dv.js +101 -0
  505. package/node_modules/moment/locale/el.js +117 -0
  506. package/node_modules/moment/locale/en-au.js +79 -0
  507. package/node_modules/moment/locale/en-ca.js +75 -0
  508. package/node_modules/moment/locale/en-gb.js +79 -0
  509. package/node_modules/moment/locale/en-ie.js +79 -0
  510. package/node_modules/moment/locale/en-il.js +75 -0
  511. package/node_modules/moment/locale/en-in.js +79 -0
  512. package/node_modules/moment/locale/en-nz.js +79 -0
  513. package/node_modules/moment/locale/en-sg.js +79 -0
  514. package/node_modules/moment/locale/eo.js +79 -0
  515. package/node_modules/moment/locale/es-do.js +119 -0
  516. package/node_modules/moment/locale/es-mx.js +121 -0
  517. package/node_modules/moment/locale/es-us.js +121 -0
  518. package/node_modules/moment/locale/es.js +121 -0
  519. package/node_modules/moment/locale/et.js +89 -0
  520. package/node_modules/moment/locale/eu.js +76 -0
  521. package/node_modules/moment/locale/fa.js +124 -0
  522. package/node_modules/moment/locale/fi.js +135 -0
  523. package/node_modules/moment/locale/fil.js +69 -0
  524. package/node_modules/moment/locale/fo.js +68 -0
  525. package/node_modules/moment/locale/fr-ca.js +81 -0
  526. package/node_modules/moment/locale/fr-ch.js +85 -0
  527. package/node_modules/moment/locale/fr.js +119 -0
  528. package/node_modules/moment/locale/fy.js +86 -0
  529. package/node_modules/moment/locale/ga.js +106 -0
  530. package/node_modules/moment/locale/gd.js +106 -0
  531. package/node_modules/moment/locale/gl.js +86 -0
  532. package/node_modules/moment/locale/gom-deva.js +137 -0
  533. package/node_modules/moment/locale/gom-latn.js +135 -0
  534. package/node_modules/moment/locale/gu.js +133 -0
  535. package/node_modules/moment/locale/he.js +105 -0
  536. package/node_modules/moment/locale/hi.js +179 -0
  537. package/node_modules/moment/locale/hr.js +167 -0
  538. package/node_modules/moment/locale/hu.js +129 -0
  539. package/node_modules/moment/locale/hy-am.js +105 -0
  540. package/node_modules/moment/locale/id.js +87 -0
  541. package/node_modules/moment/locale/is.js +151 -0
  542. package/node_modules/moment/locale/it-ch.js +75 -0
  543. package/node_modules/moment/locale/it.js +117 -0
  544. package/node_modules/moment/locale/ja.js +159 -0
  545. package/node_modules/moment/locale/jv.js +87 -0
  546. package/node_modules/moment/locale/ka.js +103 -0
  547. package/node_modules/moment/locale/kk.js +93 -0
  548. package/node_modules/moment/locale/km.js +114 -0
  549. package/node_modules/moment/locale/kn.js +135 -0
  550. package/node_modules/moment/locale/ko.js +86 -0
  551. package/node_modules/moment/locale/ku-kmr.js +125 -0
  552. package/node_modules/moment/locale/ku.js +129 -0
  553. package/node_modules/moment/locale/ky.js +95 -0
  554. package/node_modules/moment/locale/lb.js +148 -0
  555. package/node_modules/moment/locale/lo.js +77 -0
  556. package/node_modules/moment/locale/lt.js +136 -0
  557. package/node_modules/moment/locale/lv.js +105 -0
  558. package/node_modules/moment/locale/me.js +128 -0
  559. package/node_modules/moment/locale/mi.js +71 -0
  560. package/node_modules/moment/locale/mk.js +97 -0
  561. package/node_modules/moment/locale/ml.js +93 -0
  562. package/node_modules/moment/locale/mn.js +111 -0
  563. package/node_modules/moment/locale/mr.js +214 -0
  564. package/node_modules/moment/locale/ms-my.js +87 -0
  565. package/node_modules/moment/locale/ms.js +86 -0
  566. package/node_modules/moment/locale/mt.js +67 -0
  567. package/node_modules/moment/locale/my.js +102 -0
  568. package/node_modules/moment/locale/nb.js +71 -0
  569. package/node_modules/moment/locale/ne.js +132 -0
  570. package/node_modules/moment/locale/nl-be.js +113 -0
  571. package/node_modules/moment/locale/nl.js +115 -0
  572. package/node_modules/moment/locale/nn.js +70 -0
  573. package/node_modules/moment/locale/oc-lnc.js +96 -0
  574. package/node_modules/moment/locale/pa-in.js +133 -0
  575. package/node_modules/moment/locale/pl.js +151 -0
  576. package/node_modules/moment/locale/pt-br.js +69 -0
  577. package/node_modules/moment/locale/pt.js +74 -0
  578. package/node_modules/moment/locale/ro.js +87 -0
  579. package/node_modules/moment/locale/ru.js +224 -0
  580. package/node_modules/moment/locale/sd.js +92 -0
  581. package/node_modules/moment/locale/se.js +68 -0
  582. package/node_modules/moment/locale/si.js +80 -0
  583. package/node_modules/moment/locale/sk.js +156 -0
  584. package/node_modules/moment/locale/sl.js +182 -0
  585. package/node_modules/moment/locale/sq.js +76 -0
  586. package/node_modules/moment/locale/sr-cyrl.js +138 -0
  587. package/node_modules/moment/locale/sr.js +140 -0
  588. package/node_modules/moment/locale/ss.js +95 -0
  589. package/node_modules/moment/locale/sv.js +79 -0
  590. package/node_modules/moment/locale/sw.js +66 -0
  591. package/node_modules/moment/locale/ta.js +142 -0
  592. package/node_modules/moment/locale/te.js +99 -0
  593. package/node_modules/moment/locale/tet.js +79 -0
  594. package/node_modules/moment/locale/tg.js +128 -0
  595. package/node_modules/moment/locale/th.js +76 -0
  596. package/node_modules/moment/locale/tk.js +102 -0
  597. package/node_modules/moment/locale/tl-ph.js +68 -0
  598. package/node_modules/moment/locale/tlh.js +135 -0
  599. package/node_modules/moment/locale/tr.js +117 -0
  600. package/node_modules/moment/locale/tzl.js +100 -0
  601. package/node_modules/moment/locale/tzm-latn.js +65 -0
  602. package/node_modules/moment/locale/tzm.js +65 -0
  603. package/node_modules/moment/locale/ug-cn.js +122 -0
  604. package/node_modules/moment/locale/uk.js +178 -0
  605. package/node_modules/moment/locale/ur.js +93 -0
  606. package/node_modules/moment/locale/uz-latn.js +65 -0
  607. package/node_modules/moment/locale/uz.js +62 -0
  608. package/node_modules/moment/locale/vi.js +91 -0
  609. package/node_modules/moment/locale/x-pseudo.js +84 -0
  610. package/node_modules/moment/locale/yo.js +64 -0
  611. package/node_modules/moment/locale/zh-cn.js +131 -0
  612. package/node_modules/moment/locale/zh-hk.js +112 -0
  613. package/node_modules/moment/locale/zh-mo.js +111 -0
  614. package/node_modules/moment/locale/zh-tw.js +110 -0
  615. package/node_modules/moment/min/locales.js +12800 -0
  616. package/node_modules/moment/min/locales.min.js +2 -0
  617. package/node_modules/moment/min/locales.min.js.map +1 -0
  618. package/node_modules/moment/min/moment-with-locales.js +18472 -0
  619. package/node_modules/moment/min/moment-with-locales.min.js +2 -0
  620. package/node_modules/moment/min/moment-with-locales.min.js.map +1 -0
  621. package/node_modules/moment/min/moment.min.js +2 -0
  622. package/node_modules/moment/min/moment.min.js.map +1 -0
  623. package/node_modules/moment/moment.d.ts +796 -0
  624. package/node_modules/moment/moment.js +5688 -0
  625. package/node_modules/moment/package.js +11 -0
  626. package/node_modules/moment/package.json +116 -0
  627. package/node_modules/moment/src/lib/create/check-overflow.js +57 -0
  628. package/node_modules/moment/src/lib/create/date-from-array.js +35 -0
  629. package/node_modules/moment/src/lib/create/from-anything.js +117 -0
  630. package/node_modules/moment/src/lib/create/from-array.js +187 -0
  631. package/node_modules/moment/src/lib/create/from-object.js +20 -0
  632. package/node_modules/moment/src/lib/create/from-string-and-array.js +67 -0
  633. package/node_modules/moment/src/lib/create/from-string-and-format.js +135 -0
  634. package/node_modules/moment/src/lib/create/from-string.js +258 -0
  635. package/node_modules/moment/src/lib/create/local.js +5 -0
  636. package/node_modules/moment/src/lib/create/parsing-flags.js +28 -0
  637. package/node_modules/moment/src/lib/create/utc.js +5 -0
  638. package/node_modules/moment/src/lib/create/valid.js +51 -0
  639. package/node_modules/moment/src/lib/duration/abs.js +18 -0
  640. package/node_modules/moment/src/lib/duration/add-subtract.js +21 -0
  641. package/node_modules/moment/src/lib/duration/as.js +76 -0
  642. package/node_modules/moment/src/lib/duration/bubble.js +68 -0
  643. package/node_modules/moment/src/lib/duration/clone.js +5 -0
  644. package/node_modules/moment/src/lib/duration/constructor.js +42 -0
  645. package/node_modules/moment/src/lib/duration/create.js +133 -0
  646. package/node_modules/moment/src/lib/duration/duration.js +16 -0
  647. package/node_modules/moment/src/lib/duration/get.js +27 -0
  648. package/node_modules/moment/src/lib/duration/humanize.js +114 -0
  649. package/node_modules/moment/src/lib/duration/iso-string.js +68 -0
  650. package/node_modules/moment/src/lib/duration/prototype.js +78 -0
  651. package/node_modules/moment/src/lib/duration/valid.js +55 -0
  652. package/node_modules/moment/src/lib/format/format.js +104 -0
  653. package/node_modules/moment/src/lib/locale/base-config.js +41 -0
  654. package/node_modules/moment/src/lib/locale/calendar.js +15 -0
  655. package/node_modules/moment/src/lib/locale/constructor.js +5 -0
  656. package/node_modules/moment/src/lib/locale/en.js +39 -0
  657. package/node_modules/moment/src/lib/locale/formats.js +36 -0
  658. package/node_modules/moment/src/lib/locale/invalid.js +5 -0
  659. package/node_modules/moment/src/lib/locale/lists.js +93 -0
  660. package/node_modules/moment/src/lib/locale/locale.js +45 -0
  661. package/node_modules/moment/src/lib/locale/locales.js +249 -0
  662. package/node_modules/moment/src/lib/locale/ordinal.js +8 -0
  663. package/node_modules/moment/src/lib/locale/pre-post-format.js +3 -0
  664. package/node_modules/moment/src/lib/locale/prototype.js +88 -0
  665. package/node_modules/moment/src/lib/locale/relative.js +32 -0
  666. package/node_modules/moment/src/lib/locale/set.js +56 -0
  667. package/node_modules/moment/src/lib/moment/add-subtract.js +61 -0
  668. package/node_modules/moment/src/lib/moment/calendar.js +53 -0
  669. package/node_modules/moment/src/lib/moment/clone.js +5 -0
  670. package/node_modules/moment/src/lib/moment/compare.js +72 -0
  671. package/node_modules/moment/src/lib/moment/constructor.js +80 -0
  672. package/node_modules/moment/src/lib/moment/creation-data.js +9 -0
  673. package/node_modules/moment/src/lib/moment/diff.js +79 -0
  674. package/node_modules/moment/src/lib/moment/format.js +78 -0
  675. package/node_modules/moment/src/lib/moment/from.js +20 -0
  676. package/node_modules/moment/src/lib/moment/get-set.js +117 -0
  677. package/node_modules/moment/src/lib/moment/locale.js +34 -0
  678. package/node_modules/moment/src/lib/moment/min-max.js +62 -0
  679. package/node_modules/moment/src/lib/moment/moment.js +28 -0
  680. package/node_modules/moment/src/lib/moment/now.js +3 -0
  681. package/node_modules/moment/src/lib/moment/prototype.js +197 -0
  682. package/node_modules/moment/src/lib/moment/start-end-of.js +164 -0
  683. package/node_modules/moment/src/lib/moment/to-type.js +42 -0
  684. package/node_modules/moment/src/lib/moment/to.js +20 -0
  685. package/node_modules/moment/src/lib/moment/valid.js +15 -0
  686. package/node_modules/moment/src/lib/parse/regex.js +84 -0
  687. package/node_modules/moment/src/lib/parse/token.js +36 -0
  688. package/node_modules/moment/src/lib/units/aliases.js +75 -0
  689. package/node_modules/moment/src/lib/units/constants.js +9 -0
  690. package/node_modules/moment/src/lib/units/day-of-month.js +35 -0
  691. package/node_modules/moment/src/lib/units/day-of-week.js +432 -0
  692. package/node_modules/moment/src/lib/units/day-of-year.js +28 -0
  693. package/node_modules/moment/src/lib/units/era.js +293 -0
  694. package/node_modules/moment/src/lib/units/hour.js +152 -0
  695. package/node_modules/moment/src/lib/units/millisecond.js +66 -0
  696. package/node_modules/moment/src/lib/units/minute.js +24 -0
  697. package/node_modules/moment/src/lib/units/month.js +340 -0
  698. package/node_modules/moment/src/lib/units/offset.js +249 -0
  699. package/node_modules/moment/src/lib/units/priorities.js +34 -0
  700. package/node_modules/moment/src/lib/units/quarter.js +24 -0
  701. package/node_modules/moment/src/lib/units/second.js +24 -0
  702. package/node_modules/moment/src/lib/units/timestamp.js +20 -0
  703. package/node_modules/moment/src/lib/units/timezone.js +16 -0
  704. package/node_modules/moment/src/lib/units/units.js +20 -0
  705. package/node_modules/moment/src/lib/units/week-calendar-utils.js +66 -0
  706. package/node_modules/moment/src/lib/units/week-year.js +128 -0
  707. package/node_modules/moment/src/lib/units/week.js +62 -0
  708. package/node_modules/moment/src/lib/units/year.js +75 -0
  709. package/node_modules/moment/src/lib/utils/abs-ceil.js +7 -0
  710. package/node_modules/moment/src/lib/utils/abs-floor.js +8 -0
  711. package/node_modules/moment/src/lib/utils/abs-round.js +7 -0
  712. package/node_modules/moment/src/lib/utils/compare-arrays.js +18 -0
  713. package/node_modules/moment/src/lib/utils/defaults.js +10 -0
  714. package/node_modules/moment/src/lib/utils/deprecate.js +69 -0
  715. package/node_modules/moment/src/lib/utils/extend.js +19 -0
  716. package/node_modules/moment/src/lib/utils/has-own-prop.js +3 -0
  717. package/node_modules/moment/src/lib/utils/hooks.js +13 -0
  718. package/node_modules/moment/src/lib/utils/index-of.js +18 -0
  719. package/node_modules/moment/src/lib/utils/is-array.js +6 -0
  720. package/node_modules/moment/src/lib/utils/is-calendar-spec.js +25 -0
  721. package/node_modules/moment/src/lib/utils/is-date.js +6 -0
  722. package/node_modules/moment/src/lib/utils/is-function.js +6 -0
  723. package/node_modules/moment/src/lib/utils/is-leap-year.js +3 -0
  724. package/node_modules/moment/src/lib/utils/is-moment-input.js +75 -0
  725. package/node_modules/moment/src/lib/utils/is-number.js +6 -0
  726. package/node_modules/moment/src/lib/utils/is-object-empty.js +15 -0
  727. package/node_modules/moment/src/lib/utils/is-object.js +8 -0
  728. package/node_modules/moment/src/lib/utils/is-string.js +3 -0
  729. package/node_modules/moment/src/lib/utils/is-undefined.js +3 -0
  730. package/node_modules/moment/src/lib/utils/keys.js +20 -0
  731. package/node_modules/moment/src/lib/utils/map.js +9 -0
  732. package/node_modules/moment/src/lib/utils/mod.js +3 -0
  733. package/node_modules/moment/src/lib/utils/some.js +20 -0
  734. package/node_modules/moment/src/lib/utils/to-int.js +12 -0
  735. package/node_modules/moment/src/lib/utils/zero-fill.js +10 -0
  736. package/node_modules/moment/src/locale/af.js +71 -0
  737. package/node_modules/moment/src/locale/ar-dz.js +156 -0
  738. package/node_modules/moment/src/locale/ar-kw.js +55 -0
  739. package/node_modules/moment/src/locale/ar-ly.js +171 -0
  740. package/node_modules/moment/src/locale/ar-ma.js +56 -0
  741. package/node_modules/moment/src/locale/ar-ps.js +112 -0
  742. package/node_modules/moment/src/locale/ar-sa.js +105 -0
  743. package/node_modules/moment/src/locale/ar-tn.js +55 -0
  744. package/node_modules/moment/src/locale/ar.js +189 -0
  745. package/node_modules/moment/src/locale/az.js +102 -0
  746. package/node_modules/moment/src/locale/be.js +142 -0
  747. package/node_modules/moment/src/locale/bg.js +87 -0
  748. package/node_modules/moment/src/locale/bm.js +52 -0
  749. package/node_modules/moment/src/locale/bn-bd.js +129 -0
  750. package/node_modules/moment/src/locale/bn.js +119 -0
  751. package/node_modules/moment/src/locale/bo.js +124 -0
  752. package/node_modules/moment/src/locale/br.js +168 -0
  753. package/node_modules/moment/src/locale/bs.js +160 -0
  754. package/node_modules/moment/src/locale/ca.js +100 -0
  755. package/node_modules/moment/src/locale/cs.js +181 -0
  756. package/node_modules/moment/src/locale/cv.js +63 -0
  757. package/node_modules/moment/src/locale/cy.js +98 -0
  758. package/node_modules/moment/src/locale/da.js +53 -0
  759. package/node_modules/moment/src/locale/de-at.js +79 -0
  760. package/node_modules/moment/src/locale/de-ch.js +78 -0
  761. package/node_modules/moment/src/locale/de.js +78 -0
  762. package/node_modules/moment/src/locale/dv.js +90 -0
  763. package/node_modules/moment/src/locale/el.js +106 -0
  764. package/node_modules/moment/src/locale/en-au.js +68 -0
  765. package/node_modules/moment/src/locale/en-ca.js +64 -0
  766. package/node_modules/moment/src/locale/en-gb.js +68 -0
  767. package/node_modules/moment/src/locale/en-ie.js +68 -0
  768. package/node_modules/moment/src/locale/en-il.js +64 -0
  769. package/node_modules/moment/src/locale/en-in.js +68 -0
  770. package/node_modules/moment/src/locale/en-nz.js +68 -0
  771. package/node_modules/moment/src/locale/en-sg.js +68 -0
  772. package/node_modules/moment/src/locale/eo.js +68 -0
  773. package/node_modules/moment/src/locale/es-do.js +108 -0
  774. package/node_modules/moment/src/locale/es-mx.js +110 -0
  775. package/node_modules/moment/src/locale/es-us.js +110 -0
  776. package/node_modules/moment/src/locale/es.js +110 -0
  777. package/node_modules/moment/src/locale/et.js +78 -0
  778. package/node_modules/moment/src/locale/eu.js +65 -0
  779. package/node_modules/moment/src/locale/fa.js +113 -0
  780. package/node_modules/moment/src/locale/fi.js +124 -0
  781. package/node_modules/moment/src/locale/fil.js +58 -0
  782. package/node_modules/moment/src/locale/fo.js +57 -0
  783. package/node_modules/moment/src/locale/fr-ca.js +70 -0
  784. package/node_modules/moment/src/locale/fr-ch.js +74 -0
  785. package/node_modules/moment/src/locale/fr.js +108 -0
  786. package/node_modules/moment/src/locale/fy.js +75 -0
  787. package/node_modules/moment/src/locale/ga.js +95 -0
  788. package/node_modules/moment/src/locale/gd.js +95 -0
  789. package/node_modules/moment/src/locale/gl.js +75 -0
  790. package/node_modules/moment/src/locale/gom-deva.js +126 -0
  791. package/node_modules/moment/src/locale/gom-latn.js +124 -0
  792. package/node_modules/moment/src/locale/gu.js +122 -0
  793. package/node_modules/moment/src/locale/he.js +94 -0
  794. package/node_modules/moment/src/locale/hi.js +168 -0
  795. package/node_modules/moment/src/locale/hr.js +156 -0
  796. package/node_modules/moment/src/locale/hu.js +118 -0
  797. package/node_modules/moment/src/locale/hy-am.js +94 -0
  798. package/node_modules/moment/src/locale/id.js +76 -0
  799. package/node_modules/moment/src/locale/is.js +140 -0
  800. package/node_modules/moment/src/locale/it-ch.js +64 -0
  801. package/node_modules/moment/src/locale/it.js +106 -0
  802. package/node_modules/moment/src/locale/ja.js +148 -0
  803. package/node_modules/moment/src/locale/jv.js +76 -0
  804. package/node_modules/moment/src/locale/ka.js +92 -0
  805. package/node_modules/moment/src/locale/kk.js +82 -0
  806. package/node_modules/moment/src/locale/km.js +103 -0
  807. package/node_modules/moment/src/locale/kn.js +124 -0
  808. package/node_modules/moment/src/locale/ko.js +75 -0
  809. package/node_modules/moment/src/locale/ku-kmr.js +121 -0
  810. package/node_modules/moment/src/locale/ku.js +118 -0
  811. package/node_modules/moment/src/locale/ky.js +84 -0
  812. package/node_modules/moment/src/locale/lb.js +137 -0
  813. package/node_modules/moment/src/locale/lo.js +66 -0
  814. package/node_modules/moment/src/locale/lt.js +125 -0
  815. package/node_modules/moment/src/locale/lv.js +94 -0
  816. package/node_modules/moment/src/locale/me.js +117 -0
  817. package/node_modules/moment/src/locale/mi.js +60 -0
  818. package/node_modules/moment/src/locale/mk.js +85 -0
  819. package/node_modules/moment/src/locale/ml.js +82 -0
  820. package/node_modules/moment/src/locale/mn.js +100 -0
  821. package/node_modules/moment/src/locale/mr.js +203 -0
  822. package/node_modules/moment/src/locale/ms-my.js +76 -0
  823. package/node_modules/moment/src/locale/ms.js +75 -0
  824. package/node_modules/moment/src/locale/mt.js +56 -0
  825. package/node_modules/moment/src/locale/my.js +91 -0
  826. package/node_modules/moment/src/locale/nb.js +60 -0
  827. package/node_modules/moment/src/locale/ne.js +121 -0
  828. package/node_modules/moment/src/locale/nl-be.js +102 -0
  829. package/node_modules/moment/src/locale/nl.js +104 -0
  830. package/node_modules/moment/src/locale/nn.js +59 -0
  831. package/node_modules/moment/src/locale/oc-lnc.js +85 -0
  832. package/node_modules/moment/src/locale/pa-in.js +122 -0
  833. package/node_modules/moment/src/locale/pl.js +140 -0
  834. package/node_modules/moment/src/locale/pt-br.js +58 -0
  835. package/node_modules/moment/src/locale/pt.js +63 -0
  836. package/node_modules/moment/src/locale/ro.js +76 -0
  837. package/node_modules/moment/src/locale/ru.js +213 -0
  838. package/node_modules/moment/src/locale/sd.js +81 -0
  839. package/node_modules/moment/src/locale/se.js +57 -0
  840. package/node_modules/moment/src/locale/si.js +69 -0
  841. package/node_modules/moment/src/locale/sk.js +145 -0
  842. package/node_modules/moment/src/locale/sl.js +171 -0
  843. package/node_modules/moment/src/locale/sq.js +65 -0
  844. package/node_modules/moment/src/locale/sr-cyrl.js +127 -0
  845. package/node_modules/moment/src/locale/sr.js +129 -0
  846. package/node_modules/moment/src/locale/ss.js +84 -0
  847. package/node_modules/moment/src/locale/sv.js +68 -0
  848. package/node_modules/moment/src/locale/sw.js +55 -0
  849. package/node_modules/moment/src/locale/ta.js +131 -0
  850. package/node_modules/moment/src/locale/te.js +88 -0
  851. package/node_modules/moment/src/locale/tet.js +68 -0
  852. package/node_modules/moment/src/locale/tg.js +117 -0
  853. package/node_modules/moment/src/locale/th.js +65 -0
  854. package/node_modules/moment/src/locale/tk.js +91 -0
  855. package/node_modules/moment/src/locale/tl-ph.js +57 -0
  856. package/node_modules/moment/src/locale/tlh.js +124 -0
  857. package/node_modules/moment/src/locale/tr.js +106 -0
  858. package/node_modules/moment/src/locale/tzl.js +89 -0
  859. package/node_modules/moment/src/locale/tzm-latn.js +54 -0
  860. package/node_modules/moment/src/locale/tzm.js +54 -0
  861. package/node_modules/moment/src/locale/ug-cn.js +111 -0
  862. package/node_modules/moment/src/locale/uk.js +167 -0
  863. package/node_modules/moment/src/locale/ur.js +82 -0
  864. package/node_modules/moment/src/locale/uz-latn.js +54 -0
  865. package/node_modules/moment/src/locale/uz.js +51 -0
  866. package/node_modules/moment/src/locale/vi.js +80 -0
  867. package/node_modules/moment/src/locale/x-pseudo.js +73 -0
  868. package/node_modules/moment/src/locale/yo.js +53 -0
  869. package/node_modules/moment/src/locale/zh-cn.js +120 -0
  870. package/node_modules/moment/src/locale/zh-hk.js +101 -0
  871. package/node_modules/moment/src/locale/zh-mo.js +100 -0
  872. package/node_modules/moment/src/locale/zh-tw.js +99 -0
  873. package/node_modules/moment/src/moment.js +93 -0
  874. package/node_modules/moment/ts3.1-typings/moment.d.ts +785 -0
  875. package/node_modules/nanoid/LICENSE +20 -0
  876. package/node_modules/nanoid/README.md +38 -0
  877. package/node_modules/nanoid/async/index.browser.js +33 -0
  878. package/node_modules/nanoid/async/index.d.ts +56 -0
  879. package/node_modules/nanoid/async/index.js +34 -0
  880. package/node_modules/nanoid/async/index.native.js +25 -0
  881. package/node_modules/nanoid/bin/nanoid.js +46 -0
  882. package/node_modules/nanoid/index.browser.js +33 -0
  883. package/node_modules/nanoid/index.d.ts +91 -0
  884. package/node_modules/nanoid/index.js +45 -0
  885. package/node_modules/nanoid/nanoid.js +1 -0
  886. package/node_modules/nanoid/non-secure/index.d.ts +33 -0
  887. package/node_modules/nanoid/non-secure/index.js +20 -0
  888. package/node_modules/nanoid/package.json +46 -0
  889. package/node_modules/nanoid/url-alphabet/index.js +2 -0
  890. package/node_modules/ts-md5/LICENSE +21 -0
  891. package/node_modules/ts-md5/README.md +101 -0
  892. package/node_modules/ts-md5/dist/cjs/index.d.ts +3 -0
  893. package/node_modules/ts-md5/dist/cjs/index.js +10 -0
  894. package/node_modules/ts-md5/dist/cjs/index.js.map +1 -0
  895. package/node_modules/ts-md5/dist/cjs/md5.d.ts +70 -0
  896. package/node_modules/ts-md5/dist/cjs/md5.js +429 -0
  897. package/node_modules/ts-md5/dist/cjs/md5.js.map +1 -0
  898. package/node_modules/ts-md5/dist/cjs/md5_file_hasher.d.ts +25 -0
  899. package/node_modules/ts-md5/dist/cjs/md5_file_hasher.js +96 -0
  900. package/node_modules/ts-md5/dist/cjs/md5_file_hasher.js.map +1 -0
  901. package/node_modules/ts-md5/dist/cjs/parallel_hasher.d.ts +22 -0
  902. package/node_modules/ts-md5/dist/cjs/parallel_hasher.js +69 -0
  903. package/node_modules/ts-md5/dist/cjs/parallel_hasher.js.map +1 -0
  904. package/node_modules/ts-md5/dist/esm/index.d.ts +3 -0
  905. package/node_modules/ts-md5/dist/esm/index.js +4 -0
  906. package/node_modules/ts-md5/dist/esm/index.js.map +1 -0
  907. package/node_modules/ts-md5/dist/esm/md5.d.ts +70 -0
  908. package/node_modules/ts-md5/dist/esm/md5.js +421 -0
  909. package/node_modules/ts-md5/dist/esm/md5.js.map +1 -0
  910. package/node_modules/ts-md5/dist/esm/md5_file_hasher.d.ts +25 -0
  911. package/node_modules/ts-md5/dist/esm/md5_file_hasher.js +89 -0
  912. package/node_modules/ts-md5/dist/esm/md5_file_hasher.js.map +1 -0
  913. package/node_modules/ts-md5/dist/esm/parallel_hasher.d.ts +22 -0
  914. package/node_modules/ts-md5/dist/esm/parallel_hasher.js +64 -0
  915. package/node_modules/ts-md5/dist/esm/parallel_hasher.js.map +1 -0
  916. package/node_modules/ts-md5/dist/md5.js +429 -0
  917. package/node_modules/ts-md5/dist/md5_worker.js +523 -0
  918. package/node_modules/ts-md5/package.json +82 -0
  919. package/node_modules/ts-md5/src/index.ts +4 -0
  920. package/node_modules/ts-md5/src/md5.ts +473 -0
  921. package/node_modules/ts-md5/src/md5_file_hasher.ts +110 -0
  922. package/node_modules/ts-md5/src/parallel_hasher.ts +90 -0
  923. package/node_modules/ts-md5/src/worker.js +20 -0
  924. package/package.json +160 -0
  925. package/scripts/generate-index.js +52 -0
  926. package/setup.js +2 -0
  927. package/tfsec.json +4 -0
  928. package/util/compute.go +106 -0
  929. package/util/terraform.go +213 -0
  930. package/util/util.go +100 -0
@@ -0,0 +1,164 @@
1
+ import { ResourceGroup } from "@cdktf/provider-azurerm/lib/resource-group";
2
+ import { Construct } from "constructs";
3
+ import { AuthorizationRule, AuthorizationRuleProps } from "./authorization";
4
+ import { ConsumerGroup } from "./consumer";
5
+ import { KustoDataConnection, BaseKustoDataConnectionProps } from "./kusto-connection";
6
+ export interface BaseInstanceProps {
7
+ /**
8
+ * Specifies the name of the EventHub resource.
9
+ */
10
+ readonly name: string;
11
+ /**
12
+ * Specifies the current number of shards on the Event Hub.
13
+ * When using a shared parent EventHub Namespace, maximum value is 32.
14
+ * @default 2
15
+ */
16
+ readonly partitionCount?: number;
17
+ /**
18
+ * Specifies the number of days to retain the events for this Event Hub.
19
+ * @default 1
20
+ */
21
+ readonly messageRetention?: number;
22
+ /**
23
+ * Specifies the status of the Event Hub resource. Possible values are Active, Disabled and SendDisabled.
24
+ * @default "Active"
25
+ */
26
+ readonly status?: string;
27
+ }
28
+ export interface InstanceProps extends BaseInstanceProps {
29
+ /**
30
+ * The name of the resource group in which the EventHub's parent Namespace exists.
31
+ */
32
+ readonly resourceGroup: ResourceGroup;
33
+ /**
34
+ * Specifies the name of the EventHub Namespace.
35
+ */
36
+ readonly namespaceName: string;
37
+ }
38
+ export declare class Instance extends Construct {
39
+ readonly ehInstanceProps: InstanceProps;
40
+ readonly id: string;
41
+ readonly partitionIds: string[];
42
+ /**
43
+ * Constructs a new Event Hub instance.
44
+ *
45
+ * This class creates an Azure Event Hub instance within a specified namespace. Event Hubs is a highly scalable
46
+ * data streaming platform and event ingestion service, capable of receiving and processing millions of events per second.
47
+ * Event Hubs can process and store events, data, or telemetry produced by distributed software and devices.
48
+ *
49
+ * @param scope - The scope in which to define this construct, typically used for managing lifecycles and creation order.
50
+ * @param name - The unique name for this instance of the Event Hub.
51
+ * @param ehInstanceProps - The properties for configuring the Event Hub instance. The properties include:
52
+ * - `name`: Required. The name of the Event Hub instance.
53
+ * - `partitionCount`: Optional. The number of partitions for the Event Hub. Defaults to 2. Max value is 32 for shared namespaces.
54
+ * - `messageRetention`: Optional. The number of days to retain the messages. Defaults to 1.
55
+ * - `status`: Optional. Specifies the operational status of the Event Hub (Active, Disabled, SendDisabled). Defaults to "Active".
56
+ * - `resourceGroup`: Required. The name of the resource group in which the Event Hub's parent namespace exists.
57
+ * - `namespaceName`: Required. The name of the Event Hub Namespace where this instance will be created.
58
+ *
59
+ * Example usage:
60
+ * ```typescript
61
+ * const eventHubInstance = new Instance(this, 'myEventHubInstance', {
62
+ * name: 'exampleEventHub',
63
+ * namespaceName: 'exampleNamespace',
64
+ * resourceGroup: resourceGroup,
65
+ * partitionCount: 4,
66
+ * messageRetention: 7,
67
+ * status: 'Active'
68
+ * });
69
+ * ```
70
+ */
71
+ constructor(scope: Construct, name: string, ehInstanceProps: InstanceProps);
72
+ /**
73
+ * Adds an Authorization Rule to an Event Hub instance.
74
+ *
75
+ * This method creates a new Authorization Rule associated with the specified Event Hub,
76
+ * granting specified permissions such as 'listen', 'send', and 'manage' based on the properties provided.
77
+ * The rule determines the access level granted to users and applications for the Event Hub.
78
+ *
79
+ * @param props - The properties for the Authorization Rule, which include:
80
+ * - `name`: Required. A unique identifier for the Authorization Rule within the Event Hub.
81
+ * - `listen`: Optional. Specifies if the rule allows listening to the Event Hub. Defaults to false.
82
+ * - `send`: Optional. Specifies if the rule allows sending events to the Event Hub. Defaults to false.
83
+ * - `manage`: Optional. Specifies if the rule allows managing the Event Hub. When set to true,
84
+ * both 'listen' and 'send' are implicitly enabled. Defaults to false.
85
+ *
86
+ * @returns An instance of the AuthorizationRule class, configured with the specified permissions and associated
87
+ * with the Event Hub specified in the enclosing construct's properties.
88
+ *
89
+ * Example usage:
90
+ * ```typescript
91
+ * const eventHubAuthRule = eventHubInstance.addAuthorizationRule({
92
+ * name: 'myCustomAuthRule',
93
+ * listen: true,
94
+ * send: true,
95
+ * manage: false // Only listening and sending permissions are granted.
96
+ * });
97
+ * ```
98
+ */
99
+ addAuthorizationRule(props: AuthorizationRuleProps): AuthorizationRule;
100
+ /**
101
+ * Adds a Consumer Group to an existing Event Hub instance.
102
+ *
103
+ * This method creates a new Consumer Group for the specified Event Hub. Consumer groups represent a view of the entire Event Hub,
104
+ * allowing consumer applications to have separate, independent views of the event stream. They read the stream at their own pace
105
+ * and maintain their own sequence point or offset. This enables a single Event Hub to support multiple consumer applications.
106
+ *
107
+ * @param name - The name of the Consumer Group to be added. This name must be unique within the Event Hub namespace.
108
+ * @param userMetadata - Optional. User-defined metadata for the Consumer Group. This metadata is useful for storing additional
109
+ * information about the consumer group, such as its purpose or operational details.
110
+ *
111
+ * @returns An instance of the ConsumerGroup class, configured with the specified properties and associated with the Event Hub
112
+ * specified in the enclosing construct's properties.
113
+ *
114
+ * Example usage:
115
+ * ```typescript
116
+ * const myConsumerGroup = eventHubInstance.addConsumerGroup('myConsumerGroupName', 'Metadata about this consumer group');
117
+ * ```
118
+ *
119
+ * @remarks
120
+ * Each consumer group can have multiple concurrent readers, but each partition in the Event Hub can only have one active consumer
121
+ * from a specific consumer group at a time. Multiple consumer groups enable multiple consuming applications to each have a separate
122
+ * view of the event stream, and to read the stream independently at their own pace and with their own offsets.
123
+ */
124
+ addConsumerGroup(name: string, userMetadata?: string): ConsumerGroup;
125
+ /**
126
+ * Adds a Kusto Data Connection to an existing Kusto Cluster and Database for ingesting data from an EventHub.
127
+ *
128
+ * This method configures a new Kusto Data Connection linked to the specified EventHub. It facilitates the ingestion of streaming data
129
+ * into the Kusto database, allowing for real-time analytics on streamed data. This connection specifies how data from EventHub
130
+ * is to be ingested into tables within the Kusto Database.
131
+ *
132
+ * @param props - The properties for the Kusto Data Connection, derived from BaseKustoDataConnectionProps, which include:
133
+ * - `name`: Required. The name of the data connection to create.
134
+ * - `location`: Required. The Azure region where the data connection will be created.
135
+ * - `kustoResourceGroup`: Required. The Resource Group where the Kusto database exists.
136
+ * - `kustoClusterName`: Required. The name of the Kusto Cluster to which this data connection will be added.
137
+ * - `kustoDatabaseName`: Required. The name of the Kusto Database to which this data connection will be added.
138
+ * - `consumerGroup`: Optional. The EventHub consumer group used for ingestion. Defaults to "$Default".
139
+ * - `tableName`: Optional. The target table name in the Kusto database used for data ingestion.
140
+ * - `identityId`: Optional. The resource ID of a managed identity used for authentication with EventHub.
141
+ * - `mappingRuleName`: Optional. The mapping rule name used for data ingestion.
142
+ * - `dataFormat`: Optional. Specifies the data format of EventHub messages. Defaults to "JSON".
143
+ * - `databaseRoutingType`: Optional. Indicates the routing type for the database. Defaults to "Single".
144
+ * - `compression`: Optional. Specifies the compression type for the data connection. Defaults to "None".
145
+ *
146
+ * @returns An instance of the KustoDataConnection class, configured with the specified properties and linked to the EventHub
147
+ * specified in the enclosing construct's properties.
148
+ *
149
+ * Example usage:
150
+ * ```typescript
151
+ * const kustoConnection = kustoInstance.addKustoDataConnection({
152
+ * name: 'myKustoDataConnection',
153
+ * location: 'West US',
154
+ * kustoResourceGroup: resourceGroup,
155
+ * kustoClusterName: 'myCluster',
156
+ * kustoDatabaseName: 'myDatabase',
157
+ * tableName: 'IngestionTable',
158
+ * consumerGroup: '$Default',
159
+ * dataFormat: 'JSON'
160
+ * });
161
+ * ```
162
+ */
163
+ addKustoDataConnection(props: BaseKustoDataConnectionProps): KustoDataConnection;
164
+ }
@@ -0,0 +1,184 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Instance = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const eventhub_1 = require("@cdktf/provider-azurerm/lib/eventhub");
7
+ const cdktf = require("cdktf");
8
+ const constructs_1 = require("constructs");
9
+ const authorization_1 = require("./authorization");
10
+ const consumer_1 = require("./consumer");
11
+ const kusto_connection_1 = require("./kusto-connection");
12
+ class Instance extends constructs_1.Construct {
13
+ /**
14
+ * Constructs a new Event Hub instance.
15
+ *
16
+ * This class creates an Azure Event Hub instance within a specified namespace. Event Hubs is a highly scalable
17
+ * data streaming platform and event ingestion service, capable of receiving and processing millions of events per second.
18
+ * Event Hubs can process and store events, data, or telemetry produced by distributed software and devices.
19
+ *
20
+ * @param scope - The scope in which to define this construct, typically used for managing lifecycles and creation order.
21
+ * @param name - The unique name for this instance of the Event Hub.
22
+ * @param ehInstanceProps - The properties for configuring the Event Hub instance. The properties include:
23
+ * - `name`: Required. The name of the Event Hub instance.
24
+ * - `partitionCount`: Optional. The number of partitions for the Event Hub. Defaults to 2. Max value is 32 for shared namespaces.
25
+ * - `messageRetention`: Optional. The number of days to retain the messages. Defaults to 1.
26
+ * - `status`: Optional. Specifies the operational status of the Event Hub (Active, Disabled, SendDisabled). Defaults to "Active".
27
+ * - `resourceGroup`: Required. The name of the resource group in which the Event Hub's parent namespace exists.
28
+ * - `namespaceName`: Required. The name of the Event Hub Namespace where this instance will be created.
29
+ *
30
+ * Example usage:
31
+ * ```typescript
32
+ * const eventHubInstance = new Instance(this, 'myEventHubInstance', {
33
+ * name: 'exampleEventHub',
34
+ * namespaceName: 'exampleNamespace',
35
+ * resourceGroup: resourceGroup,
36
+ * partitionCount: 4,
37
+ * messageRetention: 7,
38
+ * status: 'Active'
39
+ * });
40
+ * ```
41
+ */
42
+ constructor(scope, name, ehInstanceProps) {
43
+ super(scope, name);
44
+ this.ehInstanceProps = ehInstanceProps;
45
+ const defaults = {
46
+ partitionCount: ehInstanceProps.partitionCount || 2,
47
+ messageRetention: ehInstanceProps.messageRetention || 1,
48
+ status: ehInstanceProps.status || "Active",
49
+ };
50
+ const eventhubInstance = new eventhub_1.Eventhub(this, `ehinstance-${ehInstanceProps.name}`, {
51
+ name: ehInstanceProps.name,
52
+ resourceGroupName: ehInstanceProps.resourceGroup.name,
53
+ namespaceName: ehInstanceProps.namespaceName,
54
+ ...defaults,
55
+ });
56
+ // Outputs
57
+ this.id = eventhubInstance.id;
58
+ this.partitionIds = eventhubInstance.partitionIds;
59
+ const cdktfTerraformOutputEventhubInstanceId = new cdktf.TerraformOutput(this, "id", {
60
+ value: eventhubInstance.id,
61
+ });
62
+ const cdktfTerraformOutputEventhubInstancePartitionIds = new cdktf.TerraformOutput(this, "partition_ids", {
63
+ value: eventhubInstance.partitionIds,
64
+ });
65
+ cdktfTerraformOutputEventhubInstanceId.overrideLogicalId("id");
66
+ cdktfTerraformOutputEventhubInstancePartitionIds.overrideLogicalId("partition_ids");
67
+ }
68
+ /**
69
+ * Adds an Authorization Rule to an Event Hub instance.
70
+ *
71
+ * This method creates a new Authorization Rule associated with the specified Event Hub,
72
+ * granting specified permissions such as 'listen', 'send', and 'manage' based on the properties provided.
73
+ * The rule determines the access level granted to users and applications for the Event Hub.
74
+ *
75
+ * @param props - The properties for the Authorization Rule, which include:
76
+ * - `name`: Required. A unique identifier for the Authorization Rule within the Event Hub.
77
+ * - `listen`: Optional. Specifies if the rule allows listening to the Event Hub. Defaults to false.
78
+ * - `send`: Optional. Specifies if the rule allows sending events to the Event Hub. Defaults to false.
79
+ * - `manage`: Optional. Specifies if the rule allows managing the Event Hub. When set to true,
80
+ * both 'listen' and 'send' are implicitly enabled. Defaults to false.
81
+ *
82
+ * @returns An instance of the AuthorizationRule class, configured with the specified permissions and associated
83
+ * with the Event Hub specified in the enclosing construct's properties.
84
+ *
85
+ * Example usage:
86
+ * ```typescript
87
+ * const eventHubAuthRule = eventHubInstance.addAuthorizationRule({
88
+ * name: 'myCustomAuthRule',
89
+ * listen: true,
90
+ * send: true,
91
+ * manage: false // Only listening and sending permissions are granted.
92
+ * });
93
+ * ```
94
+ */
95
+ addAuthorizationRule(props) {
96
+ return new authorization_1.AuthorizationRule(this, `ehauthrule-${props.name}`, {
97
+ resourceGroupName: this.ehInstanceProps.resourceGroup.name,
98
+ namespaceName: this.ehInstanceProps.namespaceName,
99
+ eventhubName: this.ehInstanceProps.name,
100
+ ...props,
101
+ });
102
+ }
103
+ /**
104
+ * Adds a Consumer Group to an existing Event Hub instance.
105
+ *
106
+ * This method creates a new Consumer Group for the specified Event Hub. Consumer groups represent a view of the entire Event Hub,
107
+ * allowing consumer applications to have separate, independent views of the event stream. They read the stream at their own pace
108
+ * and maintain their own sequence point or offset. This enables a single Event Hub to support multiple consumer applications.
109
+ *
110
+ * @param name - The name of the Consumer Group to be added. This name must be unique within the Event Hub namespace.
111
+ * @param userMetadata - Optional. User-defined metadata for the Consumer Group. This metadata is useful for storing additional
112
+ * information about the consumer group, such as its purpose or operational details.
113
+ *
114
+ * @returns An instance of the ConsumerGroup class, configured with the specified properties and associated with the Event Hub
115
+ * specified in the enclosing construct's properties.
116
+ *
117
+ * Example usage:
118
+ * ```typescript
119
+ * const myConsumerGroup = eventHubInstance.addConsumerGroup('myConsumerGroupName', 'Metadata about this consumer group');
120
+ * ```
121
+ *
122
+ * @remarks
123
+ * Each consumer group can have multiple concurrent readers, but each partition in the Event Hub can only have one active consumer
124
+ * from a specific consumer group at a time. Multiple consumer groups enable multiple consuming applications to each have a separate
125
+ * view of the event stream, and to read the stream independently at their own pace and with their own offsets.
126
+ */
127
+ addConsumerGroup(name, userMetadata) {
128
+ return new consumer_1.ConsumerGroup(this, `ehconsumergroup-${name}`, {
129
+ resourceGroup: this.ehInstanceProps.resourceGroup,
130
+ namespaceName: this.ehInstanceProps.namespaceName,
131
+ eventhubName: this.ehInstanceProps.name,
132
+ name: name,
133
+ userMetadata: userMetadata,
134
+ });
135
+ }
136
+ /**
137
+ * Adds a Kusto Data Connection to an existing Kusto Cluster and Database for ingesting data from an EventHub.
138
+ *
139
+ * This method configures a new Kusto Data Connection linked to the specified EventHub. It facilitates the ingestion of streaming data
140
+ * into the Kusto database, allowing for real-time analytics on streamed data. This connection specifies how data from EventHub
141
+ * is to be ingested into tables within the Kusto Database.
142
+ *
143
+ * @param props - The properties for the Kusto Data Connection, derived from BaseKustoDataConnectionProps, which include:
144
+ * - `name`: Required. The name of the data connection to create.
145
+ * - `location`: Required. The Azure region where the data connection will be created.
146
+ * - `kustoResourceGroup`: Required. The Resource Group where the Kusto database exists.
147
+ * - `kustoClusterName`: Required. The name of the Kusto Cluster to which this data connection will be added.
148
+ * - `kustoDatabaseName`: Required. The name of the Kusto Database to which this data connection will be added.
149
+ * - `consumerGroup`: Optional. The EventHub consumer group used for ingestion. Defaults to "$Default".
150
+ * - `tableName`: Optional. The target table name in the Kusto database used for data ingestion.
151
+ * - `identityId`: Optional. The resource ID of a managed identity used for authentication with EventHub.
152
+ * - `mappingRuleName`: Optional. The mapping rule name used for data ingestion.
153
+ * - `dataFormat`: Optional. Specifies the data format of EventHub messages. Defaults to "JSON".
154
+ * - `databaseRoutingType`: Optional. Indicates the routing type for the database. Defaults to "Single".
155
+ * - `compression`: Optional. Specifies the compression type for the data connection. Defaults to "None".
156
+ *
157
+ * @returns An instance of the KustoDataConnection class, configured with the specified properties and linked to the EventHub
158
+ * specified in the enclosing construct's properties.
159
+ *
160
+ * Example usage:
161
+ * ```typescript
162
+ * const kustoConnection = kustoInstance.addKustoDataConnection({
163
+ * name: 'myKustoDataConnection',
164
+ * location: 'West US',
165
+ * kustoResourceGroup: resourceGroup,
166
+ * kustoClusterName: 'myCluster',
167
+ * kustoDatabaseName: 'myDatabase',
168
+ * tableName: 'IngestionTable',
169
+ * consumerGroup: '$Default',
170
+ * dataFormat: 'JSON'
171
+ * });
172
+ * ```
173
+ */
174
+ addKustoDataConnection(props) {
175
+ return new kusto_connection_1.KustoDataConnection(this, `ehkustodataconnection-${this.ehInstanceProps.name}-${props.name}`, {
176
+ eventhubId: this.id,
177
+ ...props,
178
+ });
179
+ }
180
+ }
181
+ exports.Instance = Instance;
182
+ _a = JSII_RTTI_SYMBOL_1;
183
+ Instance[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_eventhub.Instance", version: "0.0.3-pre.10" };
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtZXZlbnRodWIvbGliL2luc3RhbmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUVBQWdFO0FBRWhFLCtCQUErQjtBQUMvQiwyQ0FBdUM7QUFDdkMsbURBQTRFO0FBQzVFLHlDQUEyQztBQUMzQyx5REFHNEI7QUF5QzVCLE1BQWEsUUFBUyxTQUFRLHNCQUFTO0lBS3JDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BNEJHO0lBQ0gsWUFBWSxLQUFnQixFQUFFLElBQVksRUFBRSxlQUE4QjtRQUN4RSxLQUFLLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRW5CLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFDO1FBRXZDLE1BQU0sUUFBUSxHQUFHO1lBQ2YsY0FBYyxFQUFFLGVBQWUsQ0FBQyxjQUFjLElBQUksQ0FBQztZQUNuRCxnQkFBZ0IsRUFBRSxlQUFlLENBQUMsZ0JBQWdCLElBQUksQ0FBQztZQUN2RCxNQUFNLEVBQUUsZUFBZSxDQUFDLE1BQU0sSUFBSSxRQUFRO1NBQzNDLENBQUM7UUFFRixNQUFNLGdCQUFnQixHQUFHLElBQUksbUJBQVEsQ0FDbkMsSUFBSSxFQUNKLGNBQWMsZUFBZSxDQUFDLElBQUksRUFBRSxFQUNwQztZQUNFLElBQUksRUFBRSxlQUFlLENBQUMsSUFBSTtZQUMxQixpQkFBaUIsRUFBRSxlQUFlLENBQUMsYUFBYSxDQUFDLElBQUk7WUFDckQsYUFBYSxFQUFFLGVBQWUsQ0FBQyxhQUFhO1lBQzVDLEdBQUcsUUFBUTtTQUNaLENBQ0YsQ0FBQztRQUVGLFVBQVU7UUFDVixJQUFJLENBQUMsRUFBRSxHQUFHLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsWUFBWSxHQUFHLGdCQUFnQixDQUFDLFlBQVksQ0FBQztRQUVsRCxNQUFNLHNDQUFzQyxHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FDdEUsSUFBSSxFQUNKLElBQUksRUFDSjtZQUNFLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFO1NBQzNCLENBQ0YsQ0FBQztRQUNGLE1BQU0sZ0RBQWdELEdBQ3BELElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFO1lBQy9DLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxZQUFZO1NBQ3JDLENBQUMsQ0FBQztRQUVMLHNDQUFzQyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9ELGdEQUFnRCxDQUFDLGlCQUFpQixDQUNoRSxlQUFlLENBQ2hCLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BMEJHO0lBQ0ksb0JBQW9CLENBQUMsS0FBNkI7UUFDdkQsT0FBTyxJQUFJLGlDQUFpQixDQUFDLElBQUksRUFBRSxjQUFjLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM3RCxpQkFBaUIsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQyxJQUFJO1lBQzFELGFBQWEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWE7WUFDakQsWUFBWSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSTtZQUN2QyxHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09BdUJHO0lBQ0ksZ0JBQWdCLENBQUMsSUFBWSxFQUFFLFlBQXFCO1FBQ3pELE9BQU8sSUFBSSx3QkFBYSxDQUFDLElBQUksRUFBRSxtQkFBbUIsSUFBSSxFQUFFLEVBQUU7WUFDeEQsYUFBYSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYTtZQUNqRCxhQUFhLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhO1lBQ2pELFlBQVksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUk7WUFDdkMsSUFBSSxFQUFFLElBQUk7WUFDVixZQUFZLEVBQUUsWUFBWTtTQUMzQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FxQ0c7SUFDSSxzQkFBc0IsQ0FBQyxLQUFtQztRQUMvRCxPQUFPLElBQUksc0NBQW1CLENBQzVCLElBQUksRUFDSix5QkFBeUIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxFQUNsRTtZQUNFLFVBQVUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNuQixHQUFHLEtBQUs7U0FDVCxDQUNGLENBQUM7SUFDSixDQUFDOztBQW5NSCw0QkFvTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudGh1YiB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXp1cmVybS9saWIvZXZlbnRodWJcIjtcbmltcG9ydCB7IFJlc291cmNlR3JvdXAgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3Jlc291cmNlLWdyb3VwXCI7XG5pbXBvcnQgKiBhcyBjZGt0ZiBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBdXRob3JpemF0aW9uUnVsZSwgQXV0aG9yaXphdGlvblJ1bGVQcm9wcyB9IGZyb20gXCIuL2F1dGhvcml6YXRpb25cIjtcbmltcG9ydCB7IENvbnN1bWVyR3JvdXAgfSBmcm9tIFwiLi9jb25zdW1lclwiO1xuaW1wb3J0IHtcbiAgS3VzdG9EYXRhQ29ubmVjdGlvbixcbiAgQmFzZUt1c3RvRGF0YUNvbm5lY3Rpb25Qcm9wcyxcbn0gZnJvbSBcIi4va3VzdG8tY29ubmVjdGlvblwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VJbnN0YW5jZVByb3BzIHtcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgRXZlbnRIdWIgcmVzb3VyY2UuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGN1cnJlbnQgbnVtYmVyIG9mIHNoYXJkcyBvbiB0aGUgRXZlbnQgSHViLlxuICAgKiBXaGVuIHVzaW5nIGEgc2hhcmVkIHBhcmVudCBFdmVudEh1YiBOYW1lc3BhY2UsIG1heGltdW0gdmFsdWUgaXMgMzIuXG4gICAqIEBkZWZhdWx0IDJcbiAgICovXG4gIHJlYWRvbmx5IHBhcnRpdGlvbkNvdW50PzogbnVtYmVyO1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgZGF5cyB0byByZXRhaW4gdGhlIGV2ZW50cyBmb3IgdGhpcyBFdmVudCBIdWIuXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIHJlYWRvbmx5IG1lc3NhZ2VSZXRlbnRpb24/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHN0YXR1cyBvZiB0aGUgRXZlbnQgSHViIHJlc291cmNlLiBQb3NzaWJsZSB2YWx1ZXMgYXJlIEFjdGl2ZSwgRGlzYWJsZWQgYW5kIFNlbmREaXNhYmxlZC5cbiAgICogQGRlZmF1bHQgXCJBY3RpdmVcIlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhdHVzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUT0RPOiBjYXB0dXJlX2Rlc2NyaXB0aW9uXG4gICAqIFRPT0Q6IGRlc3RpbmF0aW9uXG4gICAqL1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbmNlUHJvcHMgZXh0ZW5kcyBCYXNlSW5zdGFuY2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcmVzb3VyY2UgZ3JvdXAgaW4gd2hpY2ggdGhlIEV2ZW50SHViJ3MgcGFyZW50IE5hbWVzcGFjZSBleGlzdHMuXG4gICAqL1xuICByZWFkb25seSByZXNvdXJjZUdyb3VwOiBSZXNvdXJjZUdyb3VwO1xuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBuYW1lIG9mIHRoZSBFdmVudEh1YiBOYW1lc3BhY2UuXG4gICAqL1xuICByZWFkb25seSBuYW1lc3BhY2VOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBJbnN0YW5jZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHJlYWRvbmx5IGVoSW5zdGFuY2VQcm9wczogSW5zdGFuY2VQcm9wcztcbiAgcmVhZG9ubHkgaWQ6IHN0cmluZztcbiAgcmVhZG9ubHkgcGFydGl0aW9uSWRzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQ29uc3RydWN0cyBhIG5ldyBFdmVudCBIdWIgaW5zdGFuY2UuXG4gICAqXG4gICAqIFRoaXMgY2xhc3MgY3JlYXRlcyBhbiBBenVyZSBFdmVudCBIdWIgaW5zdGFuY2Ugd2l0aGluIGEgc3BlY2lmaWVkIG5hbWVzcGFjZS4gRXZlbnQgSHVicyBpcyBhIGhpZ2hseSBzY2FsYWJsZVxuICAgKiBkYXRhIHN0cmVhbWluZyBwbGF0Zm9ybSBhbmQgZXZlbnQgaW5nZXN0aW9uIHNlcnZpY2UsIGNhcGFibGUgb2YgcmVjZWl2aW5nIGFuZCBwcm9jZXNzaW5nIG1pbGxpb25zIG9mIGV2ZW50cyBwZXIgc2Vjb25kLlxuICAgKiBFdmVudCBIdWJzIGNhbiBwcm9jZXNzIGFuZCBzdG9yZSBldmVudHMsIGRhdGEsIG9yIHRlbGVtZXRyeSBwcm9kdWNlZCBieSBkaXN0cmlidXRlZCBzb2Z0d2FyZSBhbmQgZGV2aWNlcy5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gVGhlIHNjb3BlIGluIHdoaWNoIHRvIGRlZmluZSB0aGlzIGNvbnN0cnVjdCwgdHlwaWNhbGx5IHVzZWQgZm9yIG1hbmFnaW5nIGxpZmVjeWNsZXMgYW5kIGNyZWF0aW9uIG9yZGVyLlxuICAgKiBAcGFyYW0gbmFtZSAtIFRoZSB1bmlxdWUgbmFtZSBmb3IgdGhpcyBpbnN0YW5jZSBvZiB0aGUgRXZlbnQgSHViLlxuICAgKiBAcGFyYW0gZWhJbnN0YW5jZVByb3BzIC0gVGhlIHByb3BlcnRpZXMgZm9yIGNvbmZpZ3VyaW5nIHRoZSBFdmVudCBIdWIgaW5zdGFuY2UuIFRoZSBwcm9wZXJ0aWVzIGluY2x1ZGU6XG4gICAqICAgICAgICAgICAgICAgIC0gYG5hbWVgOiBSZXF1aXJlZC4gVGhlIG5hbWUgb2YgdGhlIEV2ZW50IEh1YiBpbnN0YW5jZS5cbiAgICogICAgICAgICAgICAgICAgLSBgcGFydGl0aW9uQ291bnRgOiBPcHRpb25hbC4gVGhlIG51bWJlciBvZiBwYXJ0aXRpb25zIGZvciB0aGUgRXZlbnQgSHViLiBEZWZhdWx0cyB0byAyLiBNYXggdmFsdWUgaXMgMzIgZm9yIHNoYXJlZCBuYW1lc3BhY2VzLlxuICAgKiAgICAgICAgICAgICAgICAtIGBtZXNzYWdlUmV0ZW50aW9uYDogT3B0aW9uYWwuIFRoZSBudW1iZXIgb2YgZGF5cyB0byByZXRhaW4gdGhlIG1lc3NhZ2VzLiBEZWZhdWx0cyB0byAxLlxuICAgKiAgICAgICAgICAgICAgICAtIGBzdGF0dXNgOiBPcHRpb25hbC4gU3BlY2lmaWVzIHRoZSBvcGVyYXRpb25hbCBzdGF0dXMgb2YgdGhlIEV2ZW50IEh1YiAoQWN0aXZlLCBEaXNhYmxlZCwgU2VuZERpc2FibGVkKS4gRGVmYXVsdHMgdG8gXCJBY3RpdmVcIi5cbiAgICogICAgICAgICAgICAgICAgLSBgcmVzb3VyY2VHcm91cGA6IFJlcXVpcmVkLiBUaGUgbmFtZSBvZiB0aGUgcmVzb3VyY2UgZ3JvdXAgaW4gd2hpY2ggdGhlIEV2ZW50IEh1YidzIHBhcmVudCBuYW1lc3BhY2UgZXhpc3RzLlxuICAgKiAgICAgICAgICAgICAgICAtIGBuYW1lc3BhY2VOYW1lYDogUmVxdWlyZWQuIFRoZSBuYW1lIG9mIHRoZSBFdmVudCBIdWIgTmFtZXNwYWNlIHdoZXJlIHRoaXMgaW5zdGFuY2Ugd2lsbCBiZSBjcmVhdGVkLlxuICAgKlxuICAgKiBFeGFtcGxlIHVzYWdlOlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IGV2ZW50SHViSW5zdGFuY2UgPSBuZXcgSW5zdGFuY2UodGhpcywgJ215RXZlbnRIdWJJbnN0YW5jZScsIHtcbiAgICogICBuYW1lOiAnZXhhbXBsZUV2ZW50SHViJyxcbiAgICogICBuYW1lc3BhY2VOYW1lOiAnZXhhbXBsZU5hbWVzcGFjZScsXG4gICAqICAgcmVzb3VyY2VHcm91cDogcmVzb3VyY2VHcm91cCxcbiAgICogICBwYXJ0aXRpb25Db3VudDogNCxcbiAgICogICBtZXNzYWdlUmV0ZW50aW9uOiA3LFxuICAgKiAgIHN0YXR1czogJ0FjdGl2ZSdcbiAgICogfSk7XG4gICAqIGBgYFxuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgbmFtZTogc3RyaW5nLCBlaEluc3RhbmNlUHJvcHM6IEluc3RhbmNlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgbmFtZSk7XG5cbiAgICB0aGlzLmVoSW5zdGFuY2VQcm9wcyA9IGVoSW5zdGFuY2VQcm9wcztcblxuICAgIGNvbnN0IGRlZmF1bHRzID0ge1xuICAgICAgcGFydGl0aW9uQ291bnQ6IGVoSW5zdGFuY2VQcm9wcy5wYXJ0aXRpb25Db3VudCB8fCAyLFxuICAgICAgbWVzc2FnZVJldGVudGlvbjogZWhJbnN0YW5jZVByb3BzLm1lc3NhZ2VSZXRlbnRpb24gfHwgMSxcbiAgICAgIHN0YXR1czogZWhJbnN0YW5jZVByb3BzLnN0YXR1cyB8fCBcIkFjdGl2ZVwiLFxuICAgIH07XG5cbiAgICBjb25zdCBldmVudGh1Ykluc3RhbmNlID0gbmV3IEV2ZW50aHViKFxuICAgICAgdGhpcyxcbiAgICAgIGBlaGluc3RhbmNlLSR7ZWhJbnN0YW5jZVByb3BzLm5hbWV9YCxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogZWhJbnN0YW5jZVByb3BzLm5hbWUsXG4gICAgICAgIHJlc291cmNlR3JvdXBOYW1lOiBlaEluc3RhbmNlUHJvcHMucmVzb3VyY2VHcm91cC5uYW1lLFxuICAgICAgICBuYW1lc3BhY2VOYW1lOiBlaEluc3RhbmNlUHJvcHMubmFtZXNwYWNlTmFtZSxcbiAgICAgICAgLi4uZGVmYXVsdHMsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICAvLyBPdXRwdXRzXG4gICAgdGhpcy5pZCA9IGV2ZW50aHViSW5zdGFuY2UuaWQ7XG4gICAgdGhpcy5wYXJ0aXRpb25JZHMgPSBldmVudGh1Ykluc3RhbmNlLnBhcnRpdGlvbklkcztcblxuICAgIGNvbnN0IGNka3RmVGVycmFmb3JtT3V0cHV0RXZlbnRodWJJbnN0YW5jZUlkID0gbmV3IGNka3RmLlRlcnJhZm9ybU91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBcImlkXCIsXG4gICAgICB7XG4gICAgICAgIHZhbHVlOiBldmVudGh1Ykluc3RhbmNlLmlkLFxuICAgICAgfSxcbiAgICApO1xuICAgIGNvbnN0IGNka3RmVGVycmFmb3JtT3V0cHV0RXZlbnRodWJJbnN0YW5jZVBhcnRpdGlvbklkcyA9XG4gICAgICBuZXcgY2RrdGYuVGVycmFmb3JtT3V0cHV0KHRoaXMsIFwicGFydGl0aW9uX2lkc1wiLCB7XG4gICAgICAgIHZhbHVlOiBldmVudGh1Ykluc3RhbmNlLnBhcnRpdGlvbklkcyxcbiAgICAgIH0pO1xuXG4gICAgY2RrdGZUZXJyYWZvcm1PdXRwdXRFdmVudGh1Ykluc3RhbmNlSWQub3ZlcnJpZGVMb2dpY2FsSWQoXCJpZFwiKTtcbiAgICBjZGt0ZlRlcnJhZm9ybU91dHB1dEV2ZW50aHViSW5zdGFuY2VQYXJ0aXRpb25JZHMub3ZlcnJpZGVMb2dpY2FsSWQoXG4gICAgICBcInBhcnRpdGlvbl9pZHNcIixcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gQXV0aG9yaXphdGlvbiBSdWxlIHRvIGFuIEV2ZW50IEh1YiBpbnN0YW5jZS5cbiAgICpcbiAgICogVGhpcyBtZXRob2QgY3JlYXRlcyBhIG5ldyBBdXRob3JpemF0aW9uIFJ1bGUgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgRXZlbnQgSHViLFxuICAgKiBncmFudGluZyBzcGVjaWZpZWQgcGVybWlzc2lvbnMgc3VjaCBhcyAnbGlzdGVuJywgJ3NlbmQnLCBhbmQgJ21hbmFnZScgYmFzZWQgb24gdGhlIHByb3BlcnRpZXMgcHJvdmlkZWQuXG4gICAqIFRoZSBydWxlIGRldGVybWluZXMgdGhlIGFjY2VzcyBsZXZlbCBncmFudGVkIHRvIHVzZXJzIGFuZCBhcHBsaWNhdGlvbnMgZm9yIHRoZSBFdmVudCBIdWIuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyAtIFRoZSBwcm9wZXJ0aWVzIGZvciB0aGUgQXV0aG9yaXphdGlvbiBSdWxlLCB3aGljaCBpbmNsdWRlOlxuICAgKiAgICAgICAgICAgICAgICAtIGBuYW1lYDogUmVxdWlyZWQuIEEgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBBdXRob3JpemF0aW9uIFJ1bGUgd2l0aGluIHRoZSBFdmVudCBIdWIuXG4gICAqICAgICAgICAgICAgICAgIC0gYGxpc3RlbmA6IE9wdGlvbmFsLiBTcGVjaWZpZXMgaWYgdGhlIHJ1bGUgYWxsb3dzIGxpc3RlbmluZyB0byB0aGUgRXZlbnQgSHViLiBEZWZhdWx0cyB0byBmYWxzZS5cbiAgICogICAgICAgICAgICAgICAgLSBgc2VuZGA6IE9wdGlvbmFsLiBTcGVjaWZpZXMgaWYgdGhlIHJ1bGUgYWxsb3dzIHNlbmRpbmcgZXZlbnRzIHRvIHRoZSBFdmVudCBIdWIuIERlZmF1bHRzIHRvIGZhbHNlLlxuICAgKiAgICAgICAgICAgICAgICAtIGBtYW5hZ2VgOiBPcHRpb25hbC4gU3BlY2lmaWVzIGlmIHRoZSBydWxlIGFsbG93cyBtYW5hZ2luZyB0aGUgRXZlbnQgSHViLiBXaGVuIHNldCB0byB0cnVlLFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3RoICdsaXN0ZW4nIGFuZCAnc2VuZCcgYXJlIGltcGxpY2l0bHkgZW5hYmxlZC4gRGVmYXVsdHMgdG8gZmFsc2UuXG4gICAqXG4gICAqIEByZXR1cm5zIEFuIGluc3RhbmNlIG9mIHRoZSBBdXRob3JpemF0aW9uUnVsZSBjbGFzcywgY29uZmlndXJlZCB3aXRoIHRoZSBzcGVjaWZpZWQgcGVybWlzc2lvbnMgYW5kIGFzc29jaWF0ZWRcbiAgICogICAgICAgICAgd2l0aCB0aGUgRXZlbnQgSHViIHNwZWNpZmllZCBpbiB0aGUgZW5jbG9zaW5nIGNvbnN0cnVjdCdzIHByb3BlcnRpZXMuXG4gICAqXG4gICAqIEV4YW1wbGUgdXNhZ2U6XG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgZXZlbnRIdWJBdXRoUnVsZSA9IGV2ZW50SHViSW5zdGFuY2UuYWRkQXV0aG9yaXphdGlvblJ1bGUoe1xuICAgKiAgIG5hbWU6ICdteUN1c3RvbUF1dGhSdWxlJyxcbiAgICogICBsaXN0ZW46IHRydWUsXG4gICAqICAgc2VuZDogdHJ1ZSxcbiAgICogICBtYW5hZ2U6IGZhbHNlIC8vIE9ubHkgbGlzdGVuaW5nIGFuZCBzZW5kaW5nIHBlcm1pc3Npb25zIGFyZSBncmFudGVkLlxuICAgKiB9KTtcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgYWRkQXV0aG9yaXphdGlvblJ1bGUocHJvcHM6IEF1dGhvcml6YXRpb25SdWxlUHJvcHMpIHtcbiAgICByZXR1cm4gbmV3IEF1dGhvcml6YXRpb25SdWxlKHRoaXMsIGBlaGF1dGhydWxlLSR7cHJvcHMubmFtZX1gLCB7XG4gICAgICByZXNvdXJjZUdyb3VwTmFtZTogdGhpcy5laEluc3RhbmNlUHJvcHMucmVzb3VyY2VHcm91cC5uYW1lLFxuICAgICAgbmFtZXNwYWNlTmFtZTogdGhpcy5laEluc3RhbmNlUHJvcHMubmFtZXNwYWNlTmFtZSxcbiAgICAgIGV2ZW50aHViTmFtZTogdGhpcy5laEluc3RhbmNlUHJvcHMubmFtZSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBDb25zdW1lciBHcm91cCB0byBhbiBleGlzdGluZyBFdmVudCBIdWIgaW5zdGFuY2UuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGNyZWF0ZXMgYSBuZXcgQ29uc3VtZXIgR3JvdXAgZm9yIHRoZSBzcGVjaWZpZWQgRXZlbnQgSHViLiBDb25zdW1lciBncm91cHMgcmVwcmVzZW50IGEgdmlldyBvZiB0aGUgZW50aXJlIEV2ZW50IEh1YixcbiAgICogYWxsb3dpbmcgY29uc3VtZXIgYXBwbGljYXRpb25zIHRvIGhhdmUgc2VwYXJhdGUsIGluZGVwZW5kZW50IHZpZXdzIG9mIHRoZSBldmVudCBzdHJlYW0uIFRoZXkgcmVhZCB0aGUgc3RyZWFtIGF0IHRoZWlyIG93biBwYWNlXG4gICAqIGFuZCBtYWludGFpbiB0aGVpciBvd24gc2VxdWVuY2UgcG9pbnQgb3Igb2Zmc2V0LiBUaGlzIGVuYWJsZXMgYSBzaW5nbGUgRXZlbnQgSHViIHRvIHN1cHBvcnQgbXVsdGlwbGUgY29uc3VtZXIgYXBwbGljYXRpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBDb25zdW1lciBHcm91cCB0byBiZSBhZGRlZC4gVGhpcyBuYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgRXZlbnQgSHViIG5hbWVzcGFjZS5cbiAgICogQHBhcmFtIHVzZXJNZXRhZGF0YSAtIE9wdGlvbmFsLiBVc2VyLWRlZmluZWQgbWV0YWRhdGEgZm9yIHRoZSBDb25zdW1lciBHcm91cC4gVGhpcyBtZXRhZGF0YSBpcyB1c2VmdWwgZm9yIHN0b3JpbmcgYWRkaXRpb25hbFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbnN1bWVyIGdyb3VwLCBzdWNoIGFzIGl0cyBwdXJwb3NlIG9yIG9wZXJhdGlvbmFsIGRldGFpbHMuXG4gICAqXG4gICAqIEByZXR1cm5zIEFuIGluc3RhbmNlIG9mIHRoZSBDb25zdW1lckdyb3VwIGNsYXNzLCBjb25maWd1cmVkIHdpdGggdGhlIHNwZWNpZmllZCBwcm9wZXJ0aWVzIGFuZCBhc3NvY2lhdGVkIHdpdGggdGhlIEV2ZW50IEh1YlxuICAgKiAgICAgICAgICBzcGVjaWZpZWQgaW4gdGhlIGVuY2xvc2luZyBjb25zdHJ1Y3QncyBwcm9wZXJ0aWVzLlxuICAgKlxuICAgKiBFeGFtcGxlIHVzYWdlOlxuICAgKiBgYGB0eXBlc2NyaXB0XG4gICAqIGNvbnN0IG15Q29uc3VtZXJHcm91cCA9IGV2ZW50SHViSW5zdGFuY2UuYWRkQ29uc3VtZXJHcm91cCgnbXlDb25zdW1lckdyb3VwTmFtZScsICdNZXRhZGF0YSBhYm91dCB0aGlzIGNvbnN1bWVyIGdyb3VwJyk7XG4gICAqIGBgYFxuICAgKlxuICAgKiBAcmVtYXJrc1xuICAgKiBFYWNoIGNvbnN1bWVyIGdyb3VwIGNhbiBoYXZlIG11bHRpcGxlIGNvbmN1cnJlbnQgcmVhZGVycywgYnV0IGVhY2ggcGFydGl0aW9uIGluIHRoZSBFdmVudCBIdWIgY2FuIG9ubHkgaGF2ZSBvbmUgYWN0aXZlIGNvbnN1bWVyXG4gICAqIGZyb20gYSBzcGVjaWZpYyBjb25zdW1lciBncm91cCBhdCBhIHRpbWUuIE11bHRpcGxlIGNvbnN1bWVyIGdyb3VwcyBlbmFibGUgbXVsdGlwbGUgY29uc3VtaW5nIGFwcGxpY2F0aW9ucyB0byBlYWNoIGhhdmUgYSBzZXBhcmF0ZVxuICAgKiB2aWV3IG9mIHRoZSBldmVudCBzdHJlYW0sIGFuZCB0byByZWFkIHRoZSBzdHJlYW0gaW5kZXBlbmRlbnRseSBhdCB0aGVpciBvd24gcGFjZSBhbmQgd2l0aCB0aGVpciBvd24gb2Zmc2V0cy5cbiAgICovXG4gIHB1YmxpYyBhZGRDb25zdW1lckdyb3VwKG5hbWU6IHN0cmluZywgdXNlck1ldGFkYXRhPzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5ldyBDb25zdW1lckdyb3VwKHRoaXMsIGBlaGNvbnN1bWVyZ3JvdXAtJHtuYW1lfWAsIHtcbiAgICAgIHJlc291cmNlR3JvdXA6IHRoaXMuZWhJbnN0YW5jZVByb3BzLnJlc291cmNlR3JvdXAsXG4gICAgICBuYW1lc3BhY2VOYW1lOiB0aGlzLmVoSW5zdGFuY2VQcm9wcy5uYW1lc3BhY2VOYW1lLFxuICAgICAgZXZlbnRodWJOYW1lOiB0aGlzLmVoSW5zdGFuY2VQcm9wcy5uYW1lLFxuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIHVzZXJNZXRhZGF0YTogdXNlck1ldGFkYXRhLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBLdXN0byBEYXRhIENvbm5lY3Rpb24gdG8gYW4gZXhpc3RpbmcgS3VzdG8gQ2x1c3RlciBhbmQgRGF0YWJhc2UgZm9yIGluZ2VzdGluZyBkYXRhIGZyb20gYW4gRXZlbnRIdWIuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIGNvbmZpZ3VyZXMgYSBuZXcgS3VzdG8gRGF0YSBDb25uZWN0aW9uIGxpbmtlZCB0byB0aGUgc3BlY2lmaWVkIEV2ZW50SHViLiBJdCBmYWNpbGl0YXRlcyB0aGUgaW5nZXN0aW9uIG9mIHN0cmVhbWluZyBkYXRhXG4gICAqIGludG8gdGhlIEt1c3RvIGRhdGFiYXNlLCBhbGxvd2luZyBmb3IgcmVhbC10aW1lIGFuYWx5dGljcyBvbiBzdHJlYW1lZCBkYXRhLiBUaGlzIGNvbm5lY3Rpb24gc3BlY2lmaWVzIGhvdyBkYXRhIGZyb20gRXZlbnRIdWJcbiAgICogaXMgdG8gYmUgaW5nZXN0ZWQgaW50byB0YWJsZXMgd2l0aGluIHRoZSBLdXN0byBEYXRhYmFzZS5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIC0gVGhlIHByb3BlcnRpZXMgZm9yIHRoZSBLdXN0byBEYXRhIENvbm5lY3Rpb24sIGRlcml2ZWQgZnJvbSBCYXNlS3VzdG9EYXRhQ29ubmVjdGlvblByb3BzLCB3aGljaCBpbmNsdWRlOlxuICAgKiAgICAgICAgICAgICAgICAtIGBuYW1lYDogUmVxdWlyZWQuIFRoZSBuYW1lIG9mIHRoZSBkYXRhIGNvbm5lY3Rpb24gdG8gY3JlYXRlLlxuICAgKiAgICAgICAgICAgICAgICAtIGBsb2NhdGlvbmA6IFJlcXVpcmVkLiBUaGUgQXp1cmUgcmVnaW9uIHdoZXJlIHRoZSBkYXRhIGNvbm5lY3Rpb24gd2lsbCBiZSBjcmVhdGVkLlxuICAgKiAgICAgICAgICAgICAgICAtIGBrdXN0b1Jlc291cmNlR3JvdXBgOiBSZXF1aXJlZC4gVGhlIFJlc291cmNlIEdyb3VwIHdoZXJlIHRoZSBLdXN0byBkYXRhYmFzZSBleGlzdHMuXG4gICAqICAgICAgICAgICAgICAgIC0gYGt1c3RvQ2x1c3Rlck5hbWVgOiBSZXF1aXJlZC4gVGhlIG5hbWUgb2YgdGhlIEt1c3RvIENsdXN0ZXIgdG8gd2hpY2ggdGhpcyBkYXRhIGNvbm5lY3Rpb24gd2lsbCBiZSBhZGRlZC5cbiAgICogICAgICAgICAgICAgICAgLSBga3VzdG9EYXRhYmFzZU5hbWVgOiBSZXF1aXJlZC4gVGhlIG5hbWUgb2YgdGhlIEt1c3RvIERhdGFiYXNlIHRvIHdoaWNoIHRoaXMgZGF0YSBjb25uZWN0aW9uIHdpbGwgYmUgYWRkZWQuXG4gICAqICAgICAgICAgICAgICAgIC0gYGNvbnN1bWVyR3JvdXBgOiBPcHRpb25hbC4gVGhlIEV2ZW50SHViIGNvbnN1bWVyIGdyb3VwIHVzZWQgZm9yIGluZ2VzdGlvbi4gRGVmYXVsdHMgdG8gXCIkRGVmYXVsdFwiLlxuICAgKiAgICAgICAgICAgICAgICAtIGB0YWJsZU5hbWVgOiBPcHRpb25hbC4gVGhlIHRhcmdldCB0YWJsZSBuYW1lIGluIHRoZSBLdXN0byBkYXRhYmFzZSB1c2VkIGZvciBkYXRhIGluZ2VzdGlvbi5cbiAgICogICAgICAgICAgICAgICAgLSBgaWRlbnRpdHlJZGA6IE9wdGlvbmFsLiBUaGUgcmVzb3VyY2UgSUQgb2YgYSBtYW5hZ2VkIGlkZW50aXR5IHVzZWQgZm9yIGF1dGhlbnRpY2F0aW9uIHdpdGggRXZlbnRIdWIuXG4gICAqICAgICAgICAgICAgICAgIC0gYG1hcHBpbmdSdWxlTmFtZWA6IE9wdGlvbmFsLiBUaGUgbWFwcGluZyBydWxlIG5hbWUgdXNlZCBmb3IgZGF0YSBpbmdlc3Rpb24uXG4gICAqICAgICAgICAgICAgICAgIC0gYGRhdGFGb3JtYXRgOiBPcHRpb25hbC4gU3BlY2lmaWVzIHRoZSBkYXRhIGZvcm1hdCBvZiBFdmVudEh1YiBtZXNzYWdlcy4gRGVmYXVsdHMgdG8gXCJKU09OXCIuXG4gICAqICAgICAgICAgICAgICAgIC0gYGRhdGFiYXNlUm91dGluZ1R5cGVgOiBPcHRpb25hbC4gSW5kaWNhdGVzIHRoZSByb3V0aW5nIHR5cGUgZm9yIHRoZSBkYXRhYmFzZS4gRGVmYXVsdHMgdG8gXCJTaW5nbGVcIi5cbiAgICogICAgICAgICAgICAgICAgLSBgY29tcHJlc3Npb25gOiBPcHRpb25hbC4gU3BlY2lmaWVzIHRoZSBjb21wcmVzc2lvbiB0eXBlIGZvciB0aGUgZGF0YSBjb25uZWN0aW9uLiBEZWZhdWx0cyB0byBcIk5vbmVcIi5cbiAgICpcbiAgICogQHJldHVybnMgQW4gaW5zdGFuY2Ugb2YgdGhlIEt1c3RvRGF0YUNvbm5lY3Rpb24gY2xhc3MsIGNvbmZpZ3VyZWQgd2l0aCB0aGUgc3BlY2lmaWVkIHByb3BlcnRpZXMgYW5kIGxpbmtlZCB0byB0aGUgRXZlbnRIdWJcbiAgICogICAgICAgICAgc3BlY2lmaWVkIGluIHRoZSBlbmNsb3NpbmcgY29uc3RydWN0J3MgcHJvcGVydGllcy5cbiAgICpcbiAgICogRXhhbXBsZSB1c2FnZTpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBrdXN0b0Nvbm5lY3Rpb24gPSBrdXN0b0luc3RhbmNlLmFkZEt1c3RvRGF0YUNvbm5lY3Rpb24oe1xuICAgKiAgIG5hbWU6ICdteUt1c3RvRGF0YUNvbm5lY3Rpb24nLFxuICAgKiAgIGxvY2F0aW9uOiAnV2VzdCBVUycsXG4gICAqICAga3VzdG9SZXNvdXJjZUdyb3VwOiByZXNvdXJjZUdyb3VwLFxuICAgKiAgIGt1c3RvQ2x1c3Rlck5hbWU6ICdteUNsdXN0ZXInLFxuICAgKiAgIGt1c3RvRGF0YWJhc2VOYW1lOiAnbXlEYXRhYmFzZScsXG4gICAqICAgdGFibGVOYW1lOiAnSW5nZXN0aW9uVGFibGUnLFxuICAgKiAgIGNvbnN1bWVyR3JvdXA6ICckRGVmYXVsdCcsXG4gICAqICAgZGF0YUZvcm1hdDogJ0pTT04nXG4gICAqIH0pO1xuICAgKiBgYGBcbiAgICovXG4gIHB1YmxpYyBhZGRLdXN0b0RhdGFDb25uZWN0aW9uKHByb3BzOiBCYXNlS3VzdG9EYXRhQ29ubmVjdGlvblByb3BzKSB7XG4gICAgcmV0dXJuIG5ldyBLdXN0b0RhdGFDb25uZWN0aW9uKFxuICAgICAgdGhpcyxcbiAgICAgIGBlaGt1c3RvZGF0YWNvbm5lY3Rpb24tJHt0aGlzLmVoSW5zdGFuY2VQcm9wcy5uYW1lfS0ke3Byb3BzLm5hbWV9YCxcbiAgICAgIHtcbiAgICAgICAgZXZlbnRodWJJZDogdGhpcy5pZCxcbiAgICAgICAgLi4ucHJvcHMsXG4gICAgICB9LFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,109 @@
1
+ import { ResourceGroup } from "@cdktf/provider-azurerm/lib/resource-group";
2
+ import { Construct } from "constructs";
3
+ export interface BaseKustoDataConnectionProps {
4
+ /**
5
+ * The name of the Kusto EventHub Data Connection to create.
6
+ */
7
+ readonly name: string;
8
+ /**
9
+ * The location where the Kusto EventHub Data Connection should be created.
10
+ */
11
+ readonly location: string;
12
+ /**
13
+ * Specifies the Resource Group where the Kusto Database should exist.
14
+ */
15
+ readonly kustoResourceGroup: ResourceGroup;
16
+ /**
17
+ * Specifies the name of the Kusto Cluster this data connection will be added to.
18
+ */
19
+ readonly kustoClusterName: string;
20
+ /**
21
+ * Specifies the name of the Kusto Database this data connection will be added to.
22
+ */
23
+ readonly kustoDatabaseName: string;
24
+ /**
25
+ * Specifies the EventHub consumer group this data connection will use for ingestion.
26
+ * @default "$Default"
27
+ */
28
+ readonly consumerGroup?: string;
29
+ /**
30
+ * Specifies the target table name used for the message ingestion. Table must exist before resource is created.
31
+ */
32
+ readonly tableName?: string | undefined;
33
+ /**
34
+ * The resource ID of a managed identity (system or user assigned) to be used to authenticate with event hub.
35
+ */
36
+ readonly identityId?: string | undefined;
37
+ /**
38
+ * Specifies the mapping rule used for the message ingestion. Mapping rule must exist before resource is created.
39
+ */
40
+ readonly mappingRuleName?: string | undefined;
41
+ /**
42
+ * Specifies the data format of the EventHub messages.
43
+ * Allowed values: APACHEAVRO, AVRO, CSV, JSON, MULTIJSON, ORC, PARQUET, PSV, RAW, SCSV, SINGLEJSON, SOHSV, TSVE, TSV, TXT, and W3CLOGFILE.
44
+ * @default "JSON"
45
+ */
46
+ readonly dataFormat?: string;
47
+ /**
48
+ * Indication for database routing information from the data connection, by default only database routing information is allowed.
49
+ * Allowed values: Single, Multi.
50
+ * @default "Single"
51
+ */
52
+ readonly databaseRoutingType?: string;
53
+ /**
54
+ * Specifies compression type for the connection. Allowed values: GZip and None.
55
+ * @default "None"
56
+ */
57
+ readonly compression?: string;
58
+ }
59
+ export interface KustoDataConnectionProps extends BaseKustoDataConnectionProps {
60
+ /**
61
+ * Specifies the resource id of the EventHub this data connection will use for ingestion.
62
+ */
63
+ readonly eventhubId: string;
64
+ }
65
+ export declare class KustoDataConnection extends Construct {
66
+ readonly eventhubKustoDataConnectionProps: KustoDataConnectionProps;
67
+ /**
68
+ * Constructs a new Azure Kusto Data Connection for ingesting data from an EventHub.
69
+ *
70
+ * This class creates a data connection within a specified Kusto (Azure Data Explorer) database that connects
71
+ * to an Azure EventHub. This setup enables seamless data ingestion from EventHub into the Kusto database,
72
+ * allowing for real-time analytics on streamed data.
73
+ *
74
+ * @param scope - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) stack.
75
+ * @param id - The unique identifier for this instance of the data connection.
76
+ * @param kustoDataConnectionProps - The properties for configuring the Kusto EventHub Data Connection. These properties include:
77
+ * - `name`: Required. The name of the data connection.
78
+ * - `location`: Required. The Azure region where the data connection will be created.
79
+ * - `kustoResourceGroup`: Required. The Resource Group where the Kusto database exists.
80
+ * - `kustoClusterName`: Required. The name of the Kusto Cluster to which this data connection will be added.
81
+ * - `kustoDatabaseName`: Required. The name of the Kusto Database to which this data connection will be added.
82
+ * - `eventhubId`: Required. The resource ID of the EventHub used for data ingestion.
83
+ * - `consumerGroup`: Optional. The EventHub consumer group used for ingestion. Defaults to "$Default".
84
+ * - `tableName`: Optional. The target table name in the Kusto database used for data ingestion.
85
+ * - `identityId`: Optional. The resource ID of a managed identity used for authentication with EventHub.
86
+ * - `mappingRuleName`: Optional. The mapping rule name used for data ingestion.
87
+ * - `dataFormat`: Optional. Specifies the data format of EventHub messages. Defaults to "JSON".
88
+ * - `databaseRoutingType`: Optional. Indicates the routing type for the database. Defaults to "Single".
89
+ * - `compression`: Optional. Specifies the compression type for the data connection. Defaults to "None".
90
+ *
91
+ * Example usage:
92
+ * ```typescript
93
+ * const kustoDataConnection = new KustoDataConnection(this, 'myDataConnection', {
94
+ * name: 'exampleDataConnection',
95
+ * location: 'East US',
96
+ * kustoResourceGroup: resourceGroup,
97
+ * kustoClusterName: 'exampleCluster',
98
+ * kustoDatabaseName: 'exampleDatabase',
99
+ * eventhubId: '/subscriptions/{sub-id}/resourceGroups/{rg}/providers/Microsoft.EventHub/namespaces/{namespace}/eventhubs/{eventhub}',
100
+ * consumerGroup: '$Default',
101
+ * tableName: 'destinationTable',
102
+ * dataFormat: 'JSON',
103
+ * databaseRoutingType: 'Single',
104
+ * compression: 'None'
105
+ * });
106
+ * ```
107
+ */
108
+ constructor(scope: Construct, id: string, kustoDataConnectionProps: KustoDataConnectionProps);
109
+ }
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.KustoDataConnection = void 0;
5
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const kusto_eventhub_data_connection_1 = require("@cdktf/provider-azurerm/lib/kusto-eventhub-data-connection");
7
+ const constructs_1 = require("constructs");
8
+ class KustoDataConnection extends constructs_1.Construct {
9
+ /**
10
+ * Constructs a new Azure Kusto Data Connection for ingesting data from an EventHub.
11
+ *
12
+ * This class creates a data connection within a specified Kusto (Azure Data Explorer) database that connects
13
+ * to an Azure EventHub. This setup enables seamless data ingestion from EventHub into the Kusto database,
14
+ * allowing for real-time analytics on streamed data.
15
+ *
16
+ * @param scope - The scope in which to define this construct, typically representing the Cloud Development Kit (CDK) stack.
17
+ * @param id - The unique identifier for this instance of the data connection.
18
+ * @param kustoDataConnectionProps - The properties for configuring the Kusto EventHub Data Connection. These properties include:
19
+ * - `name`: Required. The name of the data connection.
20
+ * - `location`: Required. The Azure region where the data connection will be created.
21
+ * - `kustoResourceGroup`: Required. The Resource Group where the Kusto database exists.
22
+ * - `kustoClusterName`: Required. The name of the Kusto Cluster to which this data connection will be added.
23
+ * - `kustoDatabaseName`: Required. The name of the Kusto Database to which this data connection will be added.
24
+ * - `eventhubId`: Required. The resource ID of the EventHub used for data ingestion.
25
+ * - `consumerGroup`: Optional. The EventHub consumer group used for ingestion. Defaults to "$Default".
26
+ * - `tableName`: Optional. The target table name in the Kusto database used for data ingestion.
27
+ * - `identityId`: Optional. The resource ID of a managed identity used for authentication with EventHub.
28
+ * - `mappingRuleName`: Optional. The mapping rule name used for data ingestion.
29
+ * - `dataFormat`: Optional. Specifies the data format of EventHub messages. Defaults to "JSON".
30
+ * - `databaseRoutingType`: Optional. Indicates the routing type for the database. Defaults to "Single".
31
+ * - `compression`: Optional. Specifies the compression type for the data connection. Defaults to "None".
32
+ *
33
+ * Example usage:
34
+ * ```typescript
35
+ * const kustoDataConnection = new KustoDataConnection(this, 'myDataConnection', {
36
+ * name: 'exampleDataConnection',
37
+ * location: 'East US',
38
+ * kustoResourceGroup: resourceGroup,
39
+ * kustoClusterName: 'exampleCluster',
40
+ * kustoDatabaseName: 'exampleDatabase',
41
+ * eventhubId: '/subscriptions/{sub-id}/resourceGroups/{rg}/providers/Microsoft.EventHub/namespaces/{namespace}/eventhubs/{eventhub}',
42
+ * consumerGroup: '$Default',
43
+ * tableName: 'destinationTable',
44
+ * dataFormat: 'JSON',
45
+ * databaseRoutingType: 'Single',
46
+ * compression: 'None'
47
+ * });
48
+ * ```
49
+ */
50
+ constructor(scope, id, kustoDataConnectionProps) {
51
+ super(scope, id);
52
+ this.eventhubKustoDataConnectionProps = kustoDataConnectionProps;
53
+ const defaults = {
54
+ tableName: kustoDataConnectionProps.tableName || undefined,
55
+ identityId: kustoDataConnectionProps.identityId || undefined,
56
+ mappingRuleName: kustoDataConnectionProps.mappingRuleName || undefined,
57
+ consumerGroup: kustoDataConnectionProps.consumerGroup || "$Default",
58
+ dataFormat: kustoDataConnectionProps.dataFormat || "JSON",
59
+ databaseRoutingType: kustoDataConnectionProps.databaseRoutingType || "Single",
60
+ compression: kustoDataConnectionProps.compression || "None",
61
+ };
62
+ new kusto_eventhub_data_connection_1.KustoEventhubDataConnection(this, `kusto-data-connection-${this.eventhubKustoDataConnectionProps.name}`, {
63
+ name: this.eventhubKustoDataConnectionProps.name,
64
+ location: this.eventhubKustoDataConnectionProps.location,
65
+ resourceGroupName: this.eventhubKustoDataConnectionProps.kustoResourceGroup.name,
66
+ clusterName: this.eventhubKustoDataConnectionProps.kustoClusterName,
67
+ databaseName: this.eventhubKustoDataConnectionProps.kustoDatabaseName,
68
+ eventhubId: this.eventhubKustoDataConnectionProps.eventhubId,
69
+ ...defaults,
70
+ });
71
+ }
72
+ }
73
+ exports.KustoDataConnection = KustoDataConnection;
74
+ _a = JSII_RTTI_SYMBOL_1;
75
+ KustoDataConnection[_a] = { fqn: "@microsoft/terraform-cdk-constructs.azure_eventhub.KustoDataConnection", version: "0.0.3-pre.10" };
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3VzdG8tY29ubmVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9henVyZS1ldmVudGh1Yi9saWIva3VzdG8tY29ubmVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLCtHQUF5RztBQUV6RywyQ0FBdUM7QUE2RXZDLE1BQWEsbUJBQW9CLFNBQVEsc0JBQVM7SUFHaEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7T0F3Q0c7SUFDSCxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVix3QkFBa0Q7UUFFbEQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsZ0NBQWdDLEdBQUcsd0JBQXdCLENBQUM7UUFFakUsTUFBTSxRQUFRLEdBQUc7WUFDZixTQUFTLEVBQUUsd0JBQXdCLENBQUMsU0FBUyxJQUFJLFNBQVM7WUFDMUQsVUFBVSxFQUFFLHdCQUF3QixDQUFDLFVBQVUsSUFBSSxTQUFTO1lBQzVELGVBQWUsRUFBRSx3QkFBd0IsQ0FBQyxlQUFlLElBQUksU0FBUztZQUN0RSxhQUFhLEVBQUUsd0JBQXdCLENBQUMsYUFBYSxJQUFJLFVBQVU7WUFDbkUsVUFBVSxFQUFFLHdCQUF3QixDQUFDLFVBQVUsSUFBSSxNQUFNO1lBQ3pELG1CQUFtQixFQUNqQix3QkFBd0IsQ0FBQyxtQkFBbUIsSUFBSSxRQUFRO1lBQzFELFdBQVcsRUFBRSx3QkFBd0IsQ0FBQyxXQUFXLElBQUksTUFBTTtTQUM1RCxDQUFDO1FBRUYsSUFBSSw0REFBMkIsQ0FDN0IsSUFBSSxFQUNKLHlCQUF5QixJQUFJLENBQUMsZ0NBQWdDLENBQUMsSUFBSSxFQUFFLEVBQ3JFO1lBQ0UsSUFBSSxFQUFFLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJO1lBQ2hELFFBQVEsRUFBRSxJQUFJLENBQUMsZ0NBQWdDLENBQUMsUUFBUTtZQUN4RCxpQkFBaUIsRUFDZixJQUFJLENBQUMsZ0NBQWdDLENBQUMsa0JBQWtCLENBQUMsSUFBSTtZQUMvRCxXQUFXLEVBQUUsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLGdCQUFnQjtZQUNuRSxZQUFZLEVBQUUsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLGlCQUFpQjtZQUNyRSxVQUFVLEVBQUUsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLFVBQVU7WUFDNUQsR0FBRyxRQUFRO1NBQ1osQ0FDRixDQUFDO0lBQ0osQ0FBQzs7QUE5RUgsa0RBK0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS3VzdG9FdmVudGh1YkRhdGFDb25uZWN0aW9uIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1henVyZXJtL2xpYi9rdXN0by1ldmVudGh1Yi1kYXRhLWNvbm5lY3Rpb25cIjtcbmltcG9ydCB7IFJlc291cmNlR3JvdXAgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF6dXJlcm0vbGliL3Jlc291cmNlLWdyb3VwXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VLdXN0b0RhdGFDb25uZWN0aW9uUHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEt1c3RvIEV2ZW50SHViIERhdGEgQ29ubmVjdGlvbiB0byBjcmVhdGUuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBsb2NhdGlvbiB3aGVyZSB0aGUgS3VzdG8gRXZlbnRIdWIgRGF0YSBDb25uZWN0aW9uIHNob3VsZCBiZSBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYXRpb246IHN0cmluZztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBSZXNvdXJjZSBHcm91cCB3aGVyZSB0aGUgS3VzdG8gRGF0YWJhc2Ugc2hvdWxkIGV4aXN0LlxuICAgKi9cbiAgcmVhZG9ubHkga3VzdG9SZXNvdXJjZUdyb3VwOiBSZXNvdXJjZUdyb3VwO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIEt1c3RvIENsdXN0ZXIgdGhpcyBkYXRhIGNvbm5lY3Rpb24gd2lsbCBiZSBhZGRlZCB0by5cbiAgICovXG4gIHJlYWRvbmx5IGt1c3RvQ2x1c3Rlck5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBuYW1lIG9mIHRoZSBLdXN0byBEYXRhYmFzZSB0aGlzIGRhdGEgY29ubmVjdGlvbiB3aWxsIGJlIGFkZGVkIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkga3VzdG9EYXRhYmFzZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBFdmVudEh1YiBjb25zdW1lciBncm91cCB0aGlzIGRhdGEgY29ubmVjdGlvbiB3aWxsIHVzZSBmb3IgaW5nZXN0aW9uLlxuICAgKiBAZGVmYXVsdCBcIiREZWZhdWx0XCJcbiAgICovXG4gIHJlYWRvbmx5IGNvbnN1bWVyR3JvdXA/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgdGFyZ2V0IHRhYmxlIG5hbWUgdXNlZCBmb3IgdGhlIG1lc3NhZ2UgaW5nZXN0aW9uLiBUYWJsZSBtdXN0IGV4aXN0IGJlZm9yZSByZXNvdXJjZSBpcyBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFibGVOYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UgSUQgb2YgYSBtYW5hZ2VkIGlkZW50aXR5IChzeXN0ZW0gb3IgdXNlciBhc3NpZ25lZCkgdG8gYmUgdXNlZCB0byBhdXRoZW50aWNhdGUgd2l0aCBldmVudCBodWIuXG4gICAqL1xuICByZWFkb25seSBpZGVudGl0eUlkPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG1hcHBpbmcgcnVsZSB1c2VkIGZvciB0aGUgbWVzc2FnZSBpbmdlc3Rpb24uIE1hcHBpbmcgcnVsZSBtdXN0IGV4aXN0IGJlZm9yZSByZXNvdXJjZSBpcyBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbWFwcGluZ1J1bGVOYW1lPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGRhdGEgZm9ybWF0IG9mIHRoZSBFdmVudEh1YiBtZXNzYWdlcy5cbiAgICogQWxsb3dlZCB2YWx1ZXM6IEFQQUNIRUFWUk8sIEFWUk8sIENTViwgSlNPTiwgTVVMVElKU09OLCBPUkMsIFBBUlFVRVQsIFBTViwgUkFXLCBTQ1NWLCBTSU5HTEVKU09OLCBTT0hTViwgVFNWRSwgVFNWLCBUWFQsIGFuZCBXM0NMT0dGSUxFLlxuICAgKiBAZGVmYXVsdCBcIkpTT05cIlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0YUZvcm1hdD86IHN0cmluZztcblxuICAvKipcbiAgICogSW5kaWNhdGlvbiBmb3IgZGF0YWJhc2Ugcm91dGluZyBpbmZvcm1hdGlvbiBmcm9tIHRoZSBkYXRhIGNvbm5lY3Rpb24sIGJ5IGRlZmF1bHQgb25seSBkYXRhYmFzZSByb3V0aW5nIGluZm9ybWF0aW9uIGlzIGFsbG93ZWQuXG4gICAqIEFsbG93ZWQgdmFsdWVzOiBTaW5nbGUsIE11bHRpLlxuICAgKiBAZGVmYXVsdCBcIlNpbmdsZVwiXG4gICAqL1xuICByZWFkb25seSBkYXRhYmFzZVJvdXRpbmdUeXBlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgY29tcHJlc3Npb24gdHlwZSBmb3IgdGhlIGNvbm5lY3Rpb24uIEFsbG93ZWQgdmFsdWVzOiBHWmlwIGFuZCBOb25lLlxuICAgKiBAZGVmYXVsdCBcIk5vbmVcIlxuICAgKi9cbiAgcmVhZG9ubHkgY29tcHJlc3Npb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgS3VzdG9EYXRhQ29ubmVjdGlvblByb3BzIGV4dGVuZHMgQmFzZUt1c3RvRGF0YUNvbm5lY3Rpb25Qcm9wcyB7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHJlc291cmNlIGlkIG9mIHRoZSBFdmVudEh1YiB0aGlzIGRhdGEgY29ubmVjdGlvbiB3aWxsIHVzZSBmb3IgaW5nZXN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRodWJJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgS3VzdG9EYXRhQ29ubmVjdGlvbiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBldmVudGh1Ykt1c3RvRGF0YUNvbm5lY3Rpb25Qcm9wczogS3VzdG9EYXRhQ29ubmVjdGlvblByb3BzO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgbmV3IEF6dXJlIEt1c3RvIERhdGEgQ29ubmVjdGlvbiBmb3IgaW5nZXN0aW5nIGRhdGEgZnJvbSBhbiBFdmVudEh1Yi5cbiAgICpcbiAgICogVGhpcyBjbGFzcyBjcmVhdGVzIGEgZGF0YSBjb25uZWN0aW9uIHdpdGhpbiBhIHNwZWNpZmllZCBLdXN0byAoQXp1cmUgRGF0YSBFeHBsb3JlcikgZGF0YWJhc2UgdGhhdCBjb25uZWN0c1xuICAgKiB0byBhbiBBenVyZSBFdmVudEh1Yi4gVGhpcyBzZXR1cCBlbmFibGVzIHNlYW1sZXNzIGRhdGEgaW5nZXN0aW9uIGZyb20gRXZlbnRIdWIgaW50byB0aGUgS3VzdG8gZGF0YWJhc2UsXG4gICAqIGFsbG93aW5nIGZvciByZWFsLXRpbWUgYW5hbHl0aWNzIG9uIHN0cmVhbWVkIGRhdGEuXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSAtIFRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBjb25zdHJ1Y3QsIHR5cGljYWxseSByZXByZXNlbnRpbmcgdGhlIENsb3VkIERldmVsb3BtZW50IEtpdCAoQ0RLKSBzdGFjay5cbiAgICogQHBhcmFtIGlkIC0gVGhlIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIGluc3RhbmNlIG9mIHRoZSBkYXRhIGNvbm5lY3Rpb24uXG4gICAqIEBwYXJhbSBrdXN0b0RhdGFDb25uZWN0aW9uUHJvcHMgLSBUaGUgcHJvcGVydGllcyBmb3IgY29uZmlndXJpbmcgdGhlIEt1c3RvIEV2ZW50SHViIERhdGEgQ29ubmVjdGlvbi4gVGhlc2UgcHJvcGVydGllcyBpbmNsdWRlOlxuICAgKiAgICAgICAgICAgICAgICAtIGBuYW1lYDogUmVxdWlyZWQuIFRoZSBuYW1lIG9mIHRoZSBkYXRhIGNvbm5lY3Rpb24uXG4gICAqICAgICAgICAgICAgICAgIC0gYGxvY2F0aW9uYDogUmVxdWlyZWQuIFRoZSBBenVyZSByZWdpb24gd2hlcmUgdGhlIGRhdGEgY29ubmVjdGlvbiB3aWxsIGJlIGNyZWF0ZWQuXG4gICAqICAgICAgICAgICAgICAgIC0gYGt1c3RvUmVzb3VyY2VHcm91cGA6IFJlcXVpcmVkLiBUaGUgUmVzb3VyY2UgR3JvdXAgd2hlcmUgdGhlIEt1c3RvIGRhdGFiYXNlIGV4aXN0cy5cbiAgICogICAgICAgICAgICAgICAgLSBga3VzdG9DbHVzdGVyTmFtZWA6IFJlcXVpcmVkLiBUaGUgbmFtZSBvZiB0aGUgS3VzdG8gQ2x1c3RlciB0byB3aGljaCB0aGlzIGRhdGEgY29ubmVjdGlvbiB3aWxsIGJlIGFkZGVkLlxuICAgKiAgICAgICAgICAgICAgICAtIGBrdXN0b0RhdGFiYXNlTmFtZWA6IFJlcXVpcmVkLiBUaGUgbmFtZSBvZiB0aGUgS3VzdG8gRGF0YWJhc2UgdG8gd2hpY2ggdGhpcyBkYXRhIGNvbm5lY3Rpb24gd2lsbCBiZSBhZGRlZC5cbiAgICogICAgICAgICAgICAgICAgLSBgZXZlbnRodWJJZGA6IFJlcXVpcmVkLiBUaGUgcmVzb3VyY2UgSUQgb2YgdGhlIEV2ZW50SHViIHVzZWQgZm9yIGRhdGEgaW5nZXN0aW9uLlxuICAgKiAgICAgICAgICAgICAgICAtIGBjb25zdW1lckdyb3VwYDogT3B0aW9uYWwuIFRoZSBFdmVudEh1YiBjb25zdW1lciBncm91cCB1c2VkIGZvciBpbmdlc3Rpb24uIERlZmF1bHRzIHRvIFwiJERlZmF1bHRcIi5cbiAgICogICAgICAgICAgICAgICAgLSBgdGFibGVOYW1lYDogT3B0aW9uYWwuIFRoZSB0YXJnZXQgdGFibGUgbmFtZSBpbiB0aGUgS3VzdG8gZGF0YWJhc2UgdXNlZCBmb3IgZGF0YSBpbmdlc3Rpb24uXG4gICAqICAgICAgICAgICAgICAgIC0gYGlkZW50aXR5SWRgOiBPcHRpb25hbC4gVGhlIHJlc291cmNlIElEIG9mIGEgbWFuYWdlZCBpZGVudGl0eSB1c2VkIGZvciBhdXRoZW50aWNhdGlvbiB3aXRoIEV2ZW50SHViLlxuICAgKiAgICAgICAgICAgICAgICAtIGBtYXBwaW5nUnVsZU5hbWVgOiBPcHRpb25hbC4gVGhlIG1hcHBpbmcgcnVsZSBuYW1lIHVzZWQgZm9yIGRhdGEgaW5nZXN0aW9uLlxuICAgKiAgICAgICAgICAgICAgICAtIGBkYXRhRm9ybWF0YDogT3B0aW9uYWwuIFNwZWNpZmllcyB0aGUgZGF0YSBmb3JtYXQgb2YgRXZlbnRIdWIgbWVzc2FnZXMuIERlZmF1bHRzIHRvIFwiSlNPTlwiLlxuICAgKiAgICAgICAgICAgICAgICAtIGBkYXRhYmFzZVJvdXRpbmdUeXBlYDogT3B0aW9uYWwuIEluZGljYXRlcyB0aGUgcm91dGluZyB0eXBlIGZvciB0aGUgZGF0YWJhc2UuIERlZmF1bHRzIHRvIFwiU2luZ2xlXCIuXG4gICAqICAgICAgICAgICAgICAgIC0gYGNvbXByZXNzaW9uYDogT3B0aW9uYWwuIFNwZWNpZmllcyB0aGUgY29tcHJlc3Npb24gdHlwZSBmb3IgdGhlIGRhdGEgY29ubmVjdGlvbi4gRGVmYXVsdHMgdG8gXCJOb25lXCIuXG4gICAqXG4gICAqIEV4YW1wbGUgdXNhZ2U6XG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3Qga3VzdG9EYXRhQ29ubmVjdGlvbiA9IG5ldyBLdXN0b0RhdGFDb25uZWN0aW9uKHRoaXMsICdteURhdGFDb25uZWN0aW9uJywge1xuICAgKiAgIG5hbWU6ICdleGFtcGxlRGF0YUNvbm5lY3Rpb24nLFxuICAgKiAgIGxvY2F0aW9uOiAnRWFzdCBVUycsXG4gICAqICAga3VzdG9SZXNvdXJjZUdyb3VwOiByZXNvdXJjZUdyb3VwLFxuICAgKiAgIGt1c3RvQ2x1c3Rlck5hbWU6ICdleGFtcGxlQ2x1c3RlcicsXG4gICAqICAga3VzdG9EYXRhYmFzZU5hbWU6ICdleGFtcGxlRGF0YWJhc2UnLFxuICAgKiAgIGV2ZW50aHViSWQ6ICcvc3Vic2NyaXB0aW9ucy97c3ViLWlkfS9yZXNvdXJjZUdyb3Vwcy97cmd9L3Byb3ZpZGVycy9NaWNyb3NvZnQuRXZlbnRIdWIvbmFtZXNwYWNlcy97bmFtZXNwYWNlfS9ldmVudGh1YnMve2V2ZW50aHVifScsXG4gICAqICAgY29uc3VtZXJHcm91cDogJyREZWZhdWx0JyxcbiAgICogICB0YWJsZU5hbWU6ICdkZXN0aW5hdGlvblRhYmxlJyxcbiAgICogICBkYXRhRm9ybWF0OiAnSlNPTicsXG4gICAqICAgZGF0YWJhc2VSb3V0aW5nVHlwZTogJ1NpbmdsZScsXG4gICAqICAgY29tcHJlc3Npb246ICdOb25lJ1xuICAgKiB9KTtcbiAgICogYGBgXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAga3VzdG9EYXRhQ29ubmVjdGlvblByb3BzOiBLdXN0b0RhdGFDb25uZWN0aW9uUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLmV2ZW50aHViS3VzdG9EYXRhQ29ubmVjdGlvblByb3BzID0ga3VzdG9EYXRhQ29ubmVjdGlvblByb3BzO1xuXG4gICAgY29uc3QgZGVmYXVsdHMgPSB7XG4gICAgICB0YWJsZU5hbWU6IGt1c3RvRGF0YUNvbm5lY3Rpb25Qcm9wcy50YWJsZU5hbWUgfHwgdW5kZWZpbmVkLFxuICAgICAgaWRlbnRpdHlJZDoga3VzdG9EYXRhQ29ubmVjdGlvblByb3BzLmlkZW50aXR5SWQgfHwgdW5kZWZpbmVkLFxuICAgICAgbWFwcGluZ1J1bGVOYW1lOiBrdXN0b0RhdGFDb25uZWN0aW9uUHJvcHMubWFwcGluZ1J1bGVOYW1lIHx8IHVuZGVmaW5lZCxcbiAgICAgIGNvbnN1bWVyR3JvdXA6IGt1c3RvRGF0YUNvbm5lY3Rpb25Qcm9wcy5jb25zdW1lckdyb3VwIHx8IFwiJERlZmF1bHRcIixcbiAgICAgIGRhdGFGb3JtYXQ6IGt1c3RvRGF0YUNvbm5lY3Rpb25Qcm9wcy5kYXRhRm9ybWF0IHx8IFwiSlNPTlwiLFxuICAgICAgZGF0YWJhc2VSb3V0aW5nVHlwZTpcbiAgICAgICAga3VzdG9EYXRhQ29ubmVjdGlvblByb3BzLmRhdGFiYXNlUm91dGluZ1R5cGUgfHwgXCJTaW5nbGVcIixcbiAgICAgIGNvbXByZXNzaW9uOiBrdXN0b0RhdGFDb25uZWN0aW9uUHJvcHMuY29tcHJlc3Npb24gfHwgXCJOb25lXCIsXG4gICAgfTtcblxuICAgIG5ldyBLdXN0b0V2ZW50aHViRGF0YUNvbm5lY3Rpb24oXG4gICAgICB0aGlzLFxuICAgICAgYGt1c3RvLWRhdGEtY29ubmVjdGlvbi0ke3RoaXMuZXZlbnRodWJLdXN0b0RhdGFDb25uZWN0aW9uUHJvcHMubmFtZX1gLFxuICAgICAge1xuICAgICAgICBuYW1lOiB0aGlzLmV2ZW50aHViS3VzdG9EYXRhQ29ubmVjdGlvblByb3BzLm5hbWUsXG4gICAgICAgIGxvY2F0aW9uOiB0aGlzLmV2ZW50aHViS3VzdG9EYXRhQ29ubmVjdGlvblByb3BzLmxvY2F0aW9uLFxuICAgICAgICByZXNvdXJjZUdyb3VwTmFtZTpcbiAgICAgICAgICB0aGlzLmV2ZW50aHViS3VzdG9EYXRhQ29ubmVjdGlvblByb3BzLmt1c3RvUmVzb3VyY2VHcm91cC5uYW1lLFxuICAgICAgICBjbHVzdGVyTmFtZTogdGhpcy5ldmVudGh1Ykt1c3RvRGF0YUNvbm5lY3Rpb25Qcm9wcy5rdXN0b0NsdXN0ZXJOYW1lLFxuICAgICAgICBkYXRhYmFzZU5hbWU6IHRoaXMuZXZlbnRodWJLdXN0b0RhdGFDb25uZWN0aW9uUHJvcHMua3VzdG9EYXRhYmFzZU5hbWUsXG4gICAgICAgIGV2ZW50aHViSWQ6IHRoaXMuZXZlbnRodWJLdXN0b0RhdGFDb25uZWN0aW9uUHJvcHMuZXZlbnRodWJJZCxcbiAgICAgICAgLi4uZGVmYXVsdHMsXG4gICAgICB9LFxuICAgICk7XG4gIH1cbn1cbiJdfQ==