@microsoft/terraform-cdk-constructs 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. package/.jsii +60999 -15780
  2. package/API.md +54947 -10610
  3. package/README.md +72 -36
  4. package/docs/monitoring-guide.md +206 -0
  5. package/docs/testing.md +84 -1
  6. package/lib/azure-actiongroup/index.d.ts +11 -0
  7. package/lib/azure-actiongroup/index.js +28 -0
  8. package/lib/azure-actiongroup/lib/action-group-schemas.d.ts +24 -0
  9. package/lib/azure-actiongroup/lib/action-group-schemas.js +201 -0
  10. package/lib/azure-actiongroup/lib/action-group.d.ts +312 -0
  11. package/lib/azure-actiongroup/lib/action-group.js +201 -0
  12. package/lib/azure-actiongroup/lib/index.d.ts +5 -0
  13. package/lib/azure-actiongroup/lib/index.js +22 -0
  14. package/lib/azure-actiongroup/test/action-group.integ.d.ts +9 -0
  15. package/lib/azure-actiongroup/test/action-group.integ.js +79 -0
  16. package/lib/azure-actiongroup/test/action-group.spec.d.ts +8 -0
  17. package/lib/azure-actiongroup/test/action-group.spec.js +602 -0
  18. package/lib/azure-activitylogalert/index.d.ts +11 -0
  19. package/lib/azure-activitylogalert/index.js +28 -0
  20. package/lib/azure-activitylogalert/lib/activity-log-alert-schemas.d.ts +24 -0
  21. package/lib/azure-activitylogalert/lib/activity-log-alert-schemas.js +182 -0
  22. package/lib/azure-activitylogalert/lib/activity-log-alert.d.ts +236 -0
  23. package/lib/azure-activitylogalert/lib/activity-log-alert.js +212 -0
  24. package/lib/azure-activitylogalert/lib/index.d.ts +5 -0
  25. package/lib/azure-activitylogalert/lib/index.js +22 -0
  26. package/lib/azure-activitylogalert/test/activity-log-alert.integ.d.ts +9 -0
  27. package/lib/azure-activitylogalert/test/activity-log-alert.integ.js +98 -0
  28. package/lib/azure-activitylogalert/test/activity-log-alert.spec.d.ts +9 -0
  29. package/lib/azure-activitylogalert/test/activity-log-alert.spec.js +1101 -0
  30. package/lib/azure-aks/index.d.ts +9 -0
  31. package/lib/azure-aks/index.js +28 -0
  32. package/lib/azure-aks/lib/aks-cluster-schemas.d.ts +505 -0
  33. package/lib/azure-aks/lib/aks-cluster-schemas.js +572 -0
  34. package/lib/azure-aks/lib/aks-cluster.d.ts +395 -0
  35. package/lib/azure-aks/lib/aks-cluster.js +489 -0
  36. package/lib/azure-aks/lib/index.d.ts +11 -0
  37. package/lib/azure-aks/lib/index.js +38 -0
  38. package/lib/azure-aks/test/aks-cluster.integ.d.ts +9 -0
  39. package/lib/azure-aks/test/aks-cluster.integ.js +260 -0
  40. package/lib/azure-aks/test/aks-cluster.spec.d.ts +8 -0
  41. package/lib/azure-aks/test/aks-cluster.spec.js +1396 -0
  42. package/lib/azure-diagnosticsettings/index.d.ts +7 -0
  43. package/lib/azure-diagnosticsettings/index.js +24 -0
  44. package/lib/azure-diagnosticsettings/lib/diagnostic-settings-schemas.d.ts +50 -0
  45. package/lib/azure-diagnosticsettings/lib/diagnostic-settings-schemas.js +207 -0
  46. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.d.ts +193 -0
  47. package/lib/azure-diagnosticsettings/lib/diagnostic-settings.js +200 -0
  48. package/lib/azure-diagnosticsettings/lib/index.d.ts +8 -0
  49. package/lib/azure-diagnosticsettings/lib/index.js +25 -0
  50. package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.d.ts +8 -0
  51. package/lib/azure-diagnosticsettings/test/diagnostic-settings.spec.js +432 -0
  52. package/lib/azure-metricalert/index.d.ts +11 -0
  53. package/lib/azure-metricalert/index.js +28 -0
  54. package/lib/azure-metricalert/lib/index.d.ts +5 -0
  55. package/lib/azure-metricalert/lib/index.js +22 -0
  56. package/lib/azure-metricalert/lib/metric-alert-schemas.d.ts +24 -0
  57. package/lib/azure-metricalert/lib/metric-alert-schemas.js +242 -0
  58. package/lib/azure-metricalert/lib/metric-alert.d.ts +344 -0
  59. package/lib/azure-metricalert/lib/metric-alert.js +252 -0
  60. package/lib/azure-metricalert/test/metric-alert.integ.d.ts +9 -0
  61. package/lib/azure-metricalert/test/metric-alert.integ.js +123 -0
  62. package/lib/azure-metricalert/test/metric-alert.spec.d.ts +9 -0
  63. package/lib/azure-metricalert/test/metric-alert.spec.js +1266 -0
  64. package/lib/azure-networkinterface/index.d.ts +4 -0
  65. package/lib/azure-networkinterface/index.js +21 -0
  66. package/lib/azure-networkinterface/lib/index.d.ts +6 -0
  67. package/lib/azure-networkinterface/lib/index.js +22 -0
  68. package/lib/azure-networkinterface/lib/network-interface-schemas.d.ts +32 -0
  69. package/lib/azure-networkinterface/lib/network-interface-schemas.js +222 -0
  70. package/lib/azure-networkinterface/lib/network-interface.d.ts +265 -0
  71. package/lib/azure-networkinterface/lib/network-interface.js +228 -0
  72. package/lib/azure-networkinterface/test/network-interface.integ.d.ts +9 -0
  73. package/lib/azure-networkinterface/test/network-interface.integ.js +102 -0
  74. package/lib/azure-networkinterface/test/network-interface.spec.d.ts +8 -0
  75. package/lib/azure-networkinterface/test/network-interface.spec.js +655 -0
  76. package/lib/azure-networksecuritygroup/index.d.ts +6 -0
  77. package/lib/azure-networksecuritygroup/index.js +23 -0
  78. package/lib/azure-networksecuritygroup/lib/index.d.ts +5 -0
  79. package/lib/azure-networksecuritygroup/lib/index.js +16 -0
  80. package/lib/azure-networksecuritygroup/lib/network-security-group-schemas.d.ts +32 -0
  81. package/lib/azure-networksecuritygroup/lib/network-security-group-schemas.js +198 -0
  82. package/lib/azure-networksecuritygroup/lib/network-security-group.d.ts +268 -0
  83. package/lib/azure-networksecuritygroup/lib/network-security-group.js +248 -0
  84. package/lib/azure-networksecuritygroup/test/network-security-group.integ.d.ts +9 -0
  85. package/lib/azure-networksecuritygroup/test/network-security-group.integ.js +151 -0
  86. package/lib/azure-networksecuritygroup/test/network-security-group.spec.d.ts +8 -0
  87. package/lib/azure-networksecuritygroup/test/network-security-group.spec.js +652 -0
  88. package/lib/azure-publicipaddress/index.d.ts +6 -0
  89. package/lib/azure-publicipaddress/index.js +23 -0
  90. package/lib/azure-publicipaddress/lib/index.d.ts +9 -0
  91. package/lib/azure-publicipaddress/lib/index.js +19 -0
  92. package/lib/azure-publicipaddress/lib/public-ip-address-schemas.d.ts +32 -0
  93. package/lib/azure-publicipaddress/lib/public-ip-address-schemas.js +227 -0
  94. package/lib/azure-publicipaddress/lib/public-ip-address.d.ts +256 -0
  95. package/lib/azure-publicipaddress/lib/public-ip-address.js +267 -0
  96. package/lib/azure-publicipaddress/test/public-ip-address.integ.d.ts +9 -0
  97. package/lib/azure-publicipaddress/test/public-ip-address.integ.js +75 -0
  98. package/lib/azure-publicipaddress/test/public-ip-address.spec.d.ts +15 -0
  99. package/lib/azure-publicipaddress/test/public-ip-address.spec.js +498 -0
  100. package/lib/azure-resourcegroup/lib/resource-group.js +1 -1
  101. package/lib/azure-resourcegroup/test/resource-group.integ.js +23 -11
  102. package/lib/azure-storageaccount/lib/storage-account-schemas.d.ts +98 -0
  103. package/lib/azure-storageaccount/lib/storage-account-schemas.js +1 -1
  104. package/lib/azure-storageaccount/lib/storage-account.d.ts +38 -1
  105. package/lib/azure-storageaccount/lib/storage-account.js +138 -2
  106. package/lib/azure-storageaccount/test/storage-account.integ.js +91 -12
  107. package/lib/azure-subnet/index.d.ts +4 -0
  108. package/lib/azure-subnet/index.js +21 -0
  109. package/lib/azure-subnet/lib/index.d.ts +5 -0
  110. package/lib/azure-subnet/lib/index.js +22 -0
  111. package/lib/azure-subnet/lib/subnet-schemas.d.ts +32 -0
  112. package/lib/azure-subnet/lib/subnet-schemas.js +237 -0
  113. package/lib/azure-subnet/lib/subnet.d.ts +285 -0
  114. package/lib/azure-subnet/lib/subnet.js +254 -0
  115. package/lib/azure-subnet/test/subnet.integ.d.ts +11 -0
  116. package/lib/azure-subnet/test/subnet.integ.js +80 -0
  117. package/lib/azure-subnet/test/subnet.spec.d.ts +8 -0
  118. package/lib/azure-subnet/test/subnet.spec.js +396 -0
  119. package/lib/azure-virtualmachine/index.d.ts +7 -0
  120. package/lib/azure-virtualmachine/index.js +24 -0
  121. package/lib/azure-virtualmachine/lib/index.d.ts +11 -0
  122. package/lib/azure-virtualmachine/lib/index.js +38 -0
  123. package/lib/azure-virtualmachine/lib/virtual-machine-schemas.d.ts +327 -0
  124. package/lib/azure-virtualmachine/lib/virtual-machine-schemas.js +544 -0
  125. package/lib/azure-virtualmachine/lib/virtual-machine.d.ts +377 -0
  126. package/lib/azure-virtualmachine/lib/virtual-machine.js +462 -0
  127. package/lib/azure-virtualmachine/test/virtual-machine.integ.d.ts +9 -0
  128. package/lib/azure-virtualmachine/test/virtual-machine.integ.js +220 -0
  129. package/lib/azure-virtualmachine/test/virtual-machine.spec.d.ts +9 -0
  130. package/lib/azure-virtualmachine/test/virtual-machine.spec.js +1032 -0
  131. package/lib/azure-virtualnetwork/index.d.ts +10 -0
  132. package/lib/azure-virtualnetwork/index.js +28 -0
  133. package/lib/azure-virtualnetwork/lib/index.d.ts +9 -0
  134. package/lib/azure-virtualnetwork/lib/index.js +22 -0
  135. package/lib/azure-virtualnetwork/lib/virtual-network-schemas.d.ts +32 -0
  136. package/lib/azure-virtualnetwork/lib/virtual-network-schemas.js +236 -0
  137. package/lib/azure-virtualnetwork/lib/virtual-network.d.ts +213 -0
  138. package/lib/azure-virtualnetwork/lib/virtual-network.js +245 -0
  139. package/lib/azure-virtualnetwork/test/virtual-network.integ.d.ts +9 -0
  140. package/lib/azure-virtualnetwork/test/virtual-network.integ.js +91 -0
  141. package/lib/azure-virtualnetwork/test/virtual-network.spec.d.ts +8 -0
  142. package/lib/azure-virtualnetwork/test/virtual-network.spec.js +398 -0
  143. package/lib/azure-vmss/index.d.ts +6 -0
  144. package/lib/azure-vmss/index.js +23 -0
  145. package/lib/azure-vmss/lib/index.d.ts +9 -0
  146. package/lib/azure-vmss/lib/index.js +39 -0
  147. package/lib/azure-vmss/lib/virtual-machine-scale-set.d.ts +258 -0
  148. package/lib/azure-vmss/lib/virtual-machine-scale-set.js +503 -0
  149. package/lib/azure-vmss/lib/vmss-schemas.d.ts +472 -0
  150. package/lib/azure-vmss/lib/vmss-schemas.js +444 -0
  151. package/lib/azure-vmss/test/virtual-machine-scale-set.integ.d.ts +15 -0
  152. package/lib/azure-vmss/test/virtual-machine-scale-set.integ.js +261 -0
  153. package/lib/azure-vmss/test/virtual-machine-scale-set.spec.d.ts +8 -0
  154. package/lib/azure-vmss/test/virtual-machine-scale-set.spec.js +997 -0
  155. package/lib/core-azure/lib/azapi/azapi-resource.d.ts +95 -27
  156. package/lib/core-azure/lib/azapi/azapi-resource.js +95 -58
  157. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.d.ts +33 -21
  158. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-client-config/index.js +69 -27
  159. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.d.ts +134 -120
  160. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource/index.js +209 -59
  161. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.d.ts +141 -128
  162. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-action/index.js +183 -36
  163. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.d.ts +55 -43
  164. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-id/index.js +94 -26
  165. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.d.ts +129 -116
  166. package/lib/core-azure/lib/azapi/providers-azapi/data-azapi-resource-list/index.js +155 -32
  167. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.d.ts +187 -174
  168. package/lib/core-azure/lib/azapi/providers-azapi/data-plane-resource/index.js +267 -48
  169. package/lib/core-azure/lib/azapi/providers-azapi/index.d.ts +10 -10
  170. package/lib/core-azure/lib/azapi/providers-azapi/index.js +1 -1
  171. package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.d.ts +0 -0
  172. package/lib/core-azure/lib/azapi/providers-azapi/lazy-index.js +13 -0
  173. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.d.ts +174 -162
  174. package/lib/core-azure/lib/azapi/providers-azapi/provider/index.js +274 -14
  175. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.d.ts +239 -225
  176. package/lib/core-azure/lib/azapi/providers-azapi/resource/index.js +360 -76
  177. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.d.ts +163 -150
  178. package/lib/core-azure/lib/azapi/providers-azapi/resource-action/index.js +221 -46
  179. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.d.ts +162 -149
  180. package/lib/core-azure/lib/azapi/providers-azapi/update-resource/index.js +249 -50
  181. package/lib/core-azure/lib/azapi/schema-mapper/schema-mapper.js +4 -2
  182. package/lib/core-azure/lib/version-manager/api-version-manager.js +1 -1
  183. package/lib/core-azure/lib/version-manager/interfaces/version-interfaces.js +7 -7
  184. package/lib/index.d.ts +37 -0
  185. package/lib/index.js +40 -2
  186. package/lib/testing/index.d.ts +92 -2
  187. package/lib/testing/index.js +258 -18
  188. package/lib/testing/lib/cleanup.d.ts +229 -0
  189. package/lib/testing/lib/cleanup.js +331 -0
  190. package/lib/testing/lib/metadata.d.ts +151 -0
  191. package/lib/testing/lib/metadata.js +180 -0
  192. package/lib/testing/lib/naming.d.ts +96 -0
  193. package/lib/testing/lib/naming.js +336 -0
  194. package/node_modules/uuid/LICENSE.md +9 -0
  195. package/node_modules/uuid/README.md +510 -0
  196. package/node_modules/uuid/dist/cjs/index.d.ts +15 -0
  197. package/node_modules/uuid/dist/cjs/index.js +31 -0
  198. package/node_modules/uuid/dist/cjs/max.d.ts +2 -0
  199. package/node_modules/uuid/dist/cjs/max.js +3 -0
  200. package/node_modules/uuid/dist/cjs/md5.d.ts +4 -0
  201. package/node_modules/uuid/dist/cjs/md5.js +13 -0
  202. package/node_modules/uuid/dist/cjs/native.d.ts +6 -0
  203. package/node_modules/uuid/dist/cjs/native.js +4 -0
  204. package/node_modules/uuid/dist/cjs/nil.d.ts +2 -0
  205. package/node_modules/uuid/dist/cjs/nil.js +3 -0
  206. package/node_modules/uuid/dist/cjs/package.json +1 -0
  207. package/node_modules/uuid/dist/cjs/parse.d.ts +2 -0
  208. package/node_modules/uuid/dist/cjs/parse.js +11 -0
  209. package/node_modules/uuid/dist/cjs/regex.d.ts +2 -0
  210. package/node_modules/uuid/dist/cjs/regex.js +3 -0
  211. package/node_modules/uuid/dist/cjs/rng.d.ts +1 -0
  212. package/node_modules/uuid/dist/cjs/rng.js +13 -0
  213. package/node_modules/uuid/dist/cjs/sha1.d.ts +4 -0
  214. package/node_modules/uuid/dist/cjs/sha1.js +13 -0
  215. package/node_modules/uuid/dist/cjs/stringify.d.ts +3 -0
  216. package/node_modules/uuid/dist/cjs/stringify.js +39 -0
  217. package/node_modules/uuid/dist/cjs/types.d.ts +21 -0
  218. package/node_modules/uuid/dist/cjs/types.js +2 -0
  219. package/node_modules/uuid/dist/cjs/uuid-bin.d.ts +1 -0
  220. package/node_modules/uuid/dist/cjs/uuid-bin.js +72 -0
  221. package/node_modules/uuid/dist/cjs/v1.d.ts +11 -0
  222. package/node_modules/uuid/dist/cjs/v1.js +87 -0
  223. package/node_modules/uuid/dist/cjs/v1ToV6.d.ts +2 -0
  224. package/node_modules/uuid/dist/cjs/v1ToV6.js +13 -0
  225. package/node_modules/uuid/dist/cjs/v3.d.ts +9 -0
  226. package/node_modules/uuid/dist/cjs/v3.js +14 -0
  227. package/node_modules/uuid/dist/cjs/v35.d.ts +7 -0
  228. package/node_modules/uuid/dist/cjs/v35.js +41 -0
  229. package/node_modules/uuid/dist/cjs/v4.d.ts +4 -0
  230. package/node_modules/uuid/dist/cjs/v4.js +29 -0
  231. package/node_modules/uuid/dist/cjs/v5.d.ts +9 -0
  232. package/node_modules/uuid/dist/cjs/v5.js +14 -0
  233. package/node_modules/uuid/dist/cjs/v6.d.ts +4 -0
  234. package/node_modules/uuid/dist/cjs/v6.js +19 -0
  235. package/node_modules/uuid/dist/cjs/v6ToV1.d.ts +2 -0
  236. package/node_modules/uuid/dist/cjs/v6ToV1.js +13 -0
  237. package/node_modules/uuid/dist/cjs/v7.d.ts +9 -0
  238. package/node_modules/uuid/dist/cjs/v7.js +69 -0
  239. package/node_modules/uuid/dist/cjs/validate.d.ts +2 -0
  240. package/node_modules/uuid/dist/cjs/validate.js +7 -0
  241. package/node_modules/uuid/dist/cjs/version.d.ts +2 -0
  242. package/node_modules/uuid/dist/cjs/version.js +10 -0
  243. package/node_modules/uuid/dist/cjs-browser/index.d.ts +15 -0
  244. package/node_modules/uuid/dist/cjs-browser/index.js +31 -0
  245. package/node_modules/uuid/dist/cjs-browser/max.d.ts +2 -0
  246. package/node_modules/uuid/dist/cjs-browser/max.js +3 -0
  247. package/node_modules/uuid/dist/cjs-browser/md5.d.ts +2 -0
  248. package/node_modules/uuid/dist/cjs-browser/md5.js +137 -0
  249. package/node_modules/uuid/dist/cjs-browser/native.d.ts +4 -0
  250. package/node_modules/uuid/dist/cjs-browser/native.js +4 -0
  251. package/node_modules/uuid/dist/cjs-browser/nil.d.ts +2 -0
  252. package/node_modules/uuid/dist/cjs-browser/nil.js +3 -0
  253. package/node_modules/uuid/dist/cjs-browser/package.json +1 -0
  254. package/node_modules/uuid/dist/cjs-browser/parse.d.ts +2 -0
  255. package/node_modules/uuid/dist/cjs-browser/parse.js +11 -0
  256. package/node_modules/uuid/dist/cjs-browser/regex.d.ts +2 -0
  257. package/node_modules/uuid/dist/cjs-browser/regex.js +3 -0
  258. package/node_modules/uuid/dist/cjs-browser/rng.d.ts +1 -0
  259. package/node_modules/uuid/dist/cjs-browser/rng.js +14 -0
  260. package/node_modules/uuid/dist/cjs-browser/sha1.d.ts +2 -0
  261. package/node_modules/uuid/dist/cjs-browser/sha1.js +72 -0
  262. package/node_modules/uuid/dist/cjs-browser/stringify.d.ts +3 -0
  263. package/node_modules/uuid/dist/cjs-browser/stringify.js +39 -0
  264. package/node_modules/uuid/dist/cjs-browser/types.d.ts +21 -0
  265. package/node_modules/uuid/dist/cjs-browser/types.js +2 -0
  266. package/node_modules/uuid/dist/cjs-browser/uuid-bin.d.ts +1 -0
  267. package/node_modules/uuid/dist/cjs-browser/uuid-bin.js +72 -0
  268. package/node_modules/uuid/dist/cjs-browser/v1.d.ts +11 -0
  269. package/node_modules/uuid/dist/cjs-browser/v1.js +87 -0
  270. package/node_modules/uuid/dist/cjs-browser/v1ToV6.d.ts +2 -0
  271. package/node_modules/uuid/dist/cjs-browser/v1ToV6.js +13 -0
  272. package/node_modules/uuid/dist/cjs-browser/v3.d.ts +9 -0
  273. package/node_modules/uuid/dist/cjs-browser/v3.js +14 -0
  274. package/node_modules/uuid/dist/cjs-browser/v35.d.ts +7 -0
  275. package/node_modules/uuid/dist/cjs-browser/v35.js +41 -0
  276. package/node_modules/uuid/dist/cjs-browser/v4.d.ts +4 -0
  277. package/node_modules/uuid/dist/cjs-browser/v4.js +29 -0
  278. package/node_modules/uuid/dist/cjs-browser/v5.d.ts +9 -0
  279. package/node_modules/uuid/dist/cjs-browser/v5.js +14 -0
  280. package/node_modules/uuid/dist/cjs-browser/v6.d.ts +4 -0
  281. package/node_modules/uuid/dist/cjs-browser/v6.js +19 -0
  282. package/node_modules/uuid/dist/cjs-browser/v6ToV1.d.ts +2 -0
  283. package/node_modules/uuid/dist/cjs-browser/v6ToV1.js +13 -0
  284. package/node_modules/uuid/dist/cjs-browser/v7.d.ts +9 -0
  285. package/node_modules/uuid/dist/cjs-browser/v7.js +69 -0
  286. package/node_modules/uuid/dist/cjs-browser/validate.d.ts +2 -0
  287. package/node_modules/uuid/dist/cjs-browser/validate.js +7 -0
  288. package/node_modules/uuid/dist/cjs-browser/version.d.ts +2 -0
  289. package/node_modules/uuid/dist/cjs-browser/version.js +10 -0
  290. package/node_modules/uuid/dist/esm/bin/uuid +2 -0
  291. package/node_modules/uuid/dist/esm/index.d.ts +15 -0
  292. package/node_modules/uuid/dist/esm/index.js +14 -0
  293. package/node_modules/uuid/dist/esm/max.d.ts +2 -0
  294. package/node_modules/uuid/dist/esm/max.js +1 -0
  295. package/node_modules/uuid/dist/esm/md5.d.ts +4 -0
  296. package/node_modules/uuid/dist/esm/md5.js +11 -0
  297. package/node_modules/uuid/dist/esm/native.d.ts +6 -0
  298. package/node_modules/uuid/dist/esm/native.js +2 -0
  299. package/node_modules/uuid/dist/esm/nil.d.ts +2 -0
  300. package/node_modules/uuid/dist/esm/nil.js +1 -0
  301. package/node_modules/uuid/dist/esm/parse.d.ts +2 -0
  302. package/node_modules/uuid/dist/esm/parse.js +9 -0
  303. package/node_modules/uuid/dist/esm/regex.d.ts +2 -0
  304. package/node_modules/uuid/dist/esm/regex.js +1 -0
  305. package/node_modules/uuid/dist/esm/rng.d.ts +1 -0
  306. package/node_modules/uuid/dist/esm/rng.js +10 -0
  307. package/node_modules/uuid/dist/esm/sha1.d.ts +4 -0
  308. package/node_modules/uuid/dist/esm/sha1.js +11 -0
  309. package/node_modules/uuid/dist/esm/stringify.d.ts +3 -0
  310. package/node_modules/uuid/dist/esm/stringify.js +35 -0
  311. package/node_modules/uuid/dist/esm/types.d.ts +21 -0
  312. package/node_modules/uuid/dist/esm/types.js +1 -0
  313. package/node_modules/uuid/dist/esm/uuid-bin.d.ts +1 -0
  314. package/node_modules/uuid/dist/esm/uuid-bin.js +70 -0
  315. package/node_modules/uuid/dist/esm/v1.d.ts +11 -0
  316. package/node_modules/uuid/dist/esm/v1.js +83 -0
  317. package/node_modules/uuid/dist/esm/v1ToV6.d.ts +2 -0
  318. package/node_modules/uuid/dist/esm/v1ToV6.js +10 -0
  319. package/node_modules/uuid/dist/esm/v3.d.ts +9 -0
  320. package/node_modules/uuid/dist/esm/v3.js +9 -0
  321. package/node_modules/uuid/dist/esm/v35.d.ts +7 -0
  322. package/node_modules/uuid/dist/esm/v35.js +36 -0
  323. package/node_modules/uuid/dist/esm/v4.d.ts +4 -0
  324. package/node_modules/uuid/dist/esm/v4.js +27 -0
  325. package/node_modules/uuid/dist/esm/v5.d.ts +9 -0
  326. package/node_modules/uuid/dist/esm/v5.js +9 -0
  327. package/node_modules/uuid/dist/esm/v6.d.ts +4 -0
  328. package/node_modules/uuid/dist/esm/v6.js +17 -0
  329. package/node_modules/uuid/dist/esm/v6ToV1.d.ts +2 -0
  330. package/node_modules/uuid/dist/esm/v6ToV1.js +10 -0
  331. package/node_modules/uuid/dist/esm/v7.d.ts +9 -0
  332. package/node_modules/uuid/dist/esm/v7.js +65 -0
  333. package/node_modules/uuid/dist/esm/validate.d.ts +2 -0
  334. package/node_modules/uuid/dist/esm/validate.js +5 -0
  335. package/node_modules/uuid/dist/esm/version.d.ts +2 -0
  336. package/node_modules/uuid/dist/esm/version.js +8 -0
  337. package/node_modules/uuid/dist/esm-browser/index.d.ts +15 -0
  338. package/node_modules/uuid/dist/esm-browser/index.js +14 -0
  339. package/node_modules/uuid/dist/esm-browser/max.d.ts +2 -0
  340. package/node_modules/uuid/dist/esm-browser/max.js +1 -0
  341. package/node_modules/uuid/dist/esm-browser/md5.d.ts +2 -0
  342. package/node_modules/uuid/dist/esm-browser/md5.js +135 -0
  343. package/node_modules/uuid/dist/esm-browser/native.d.ts +4 -0
  344. package/node_modules/uuid/dist/esm-browser/native.js +2 -0
  345. package/node_modules/uuid/dist/esm-browser/nil.d.ts +2 -0
  346. package/node_modules/uuid/dist/esm-browser/nil.js +1 -0
  347. package/node_modules/uuid/dist/esm-browser/parse.d.ts +2 -0
  348. package/node_modules/uuid/dist/esm-browser/parse.js +9 -0
  349. package/node_modules/uuid/dist/esm-browser/regex.d.ts +2 -0
  350. package/node_modules/uuid/dist/esm-browser/regex.js +1 -0
  351. package/node_modules/uuid/dist/esm-browser/rng.d.ts +1 -0
  352. package/node_modules/uuid/dist/esm-browser/rng.js +11 -0
  353. package/node_modules/uuid/dist/esm-browser/sha1.d.ts +2 -0
  354. package/node_modules/uuid/dist/esm-browser/sha1.js +70 -0
  355. package/node_modules/uuid/dist/esm-browser/stringify.d.ts +3 -0
  356. package/node_modules/uuid/dist/esm-browser/stringify.js +35 -0
  357. package/node_modules/uuid/dist/esm-browser/types.d.ts +21 -0
  358. package/node_modules/uuid/dist/esm-browser/types.js +1 -0
  359. package/node_modules/uuid/dist/esm-browser/uuid-bin.d.ts +1 -0
  360. package/node_modules/uuid/dist/esm-browser/uuid-bin.js +70 -0
  361. package/node_modules/uuid/dist/esm-browser/v1.d.ts +11 -0
  362. package/node_modules/uuid/dist/esm-browser/v1.js +83 -0
  363. package/node_modules/uuid/dist/esm-browser/v1ToV6.d.ts +2 -0
  364. package/node_modules/uuid/dist/esm-browser/v1ToV6.js +10 -0
  365. package/node_modules/uuid/dist/esm-browser/v3.d.ts +9 -0
  366. package/node_modules/uuid/dist/esm-browser/v3.js +9 -0
  367. package/node_modules/uuid/dist/esm-browser/v35.d.ts +7 -0
  368. package/node_modules/uuid/dist/esm-browser/v35.js +36 -0
  369. package/node_modules/uuid/dist/esm-browser/v4.d.ts +4 -0
  370. package/node_modules/uuid/dist/esm-browser/v4.js +27 -0
  371. package/node_modules/uuid/dist/esm-browser/v5.d.ts +9 -0
  372. package/node_modules/uuid/dist/esm-browser/v5.js +9 -0
  373. package/node_modules/uuid/dist/esm-browser/v6.d.ts +4 -0
  374. package/node_modules/uuid/dist/esm-browser/v6.js +17 -0
  375. package/node_modules/uuid/dist/esm-browser/v6ToV1.d.ts +2 -0
  376. package/node_modules/uuid/dist/esm-browser/v6ToV1.js +10 -0
  377. package/node_modules/uuid/dist/esm-browser/v7.d.ts +9 -0
  378. package/node_modules/uuid/dist/esm-browser/v7.js +65 -0
  379. package/node_modules/uuid/dist/esm-browser/validate.d.ts +2 -0
  380. package/node_modules/uuid/dist/esm-browser/validate.js +5 -0
  381. package/node_modules/uuid/dist/esm-browser/version.d.ts +2 -0
  382. package/node_modules/uuid/dist/esm-browser/version.js +8 -0
  383. package/node_modules/uuid/package.json +132 -0
  384. package/package.json +17 -12
  385. package/scripts/cleanup-test-resources.ts +369 -0
@@ -12,30 +12,45 @@ const cdktf_1 = require("cdktf");
12
12
  require("cdktf/lib/testing/adapters/jest");
13
13
  const provider_1 = require("../../core-azure/lib/azapi/providers-azapi/provider");
14
14
  const testing_1 = require("../../testing");
15
+ const metadata_1 = require("../../testing/lib/metadata");
15
16
  const resource_group_1 = require("../lib/resource-group");
17
+ // Generate unique test run metadata for this test suite
18
+ const testMetadata = new metadata_1.TestRunMetadata("resource-group-integration", {
19
+ maxAgeHours: 4,
20
+ });
16
21
  /**
17
22
  * Example stack demonstrating Resource Group usage
18
23
  */
19
- class ResourceGroupExampleStack extends cdktf_1.TerraformStack {
24
+ class ResourceGroupExampleStack extends testing_1.BaseTestStack {
20
25
  constructor(scope, id) {
21
- super(scope, id);
26
+ super(scope, id, {
27
+ testRunOptions: {
28
+ maxAgeHours: testMetadata.maxAgeHours,
29
+ autoCleanup: testMetadata.autoCleanup,
30
+ cleanupPolicy: testMetadata.cleanupPolicy,
31
+ },
32
+ });
22
33
  // Configure AZAPI provider
23
34
  new provider_1.AzapiProvider(this, "azapi", {});
35
+ // Generate unique names for resource groups
36
+ const basicRgName = this.generateResourceName("Microsoft.Resources/resourceGroups", "basic");
37
+ const versionedRgName = this.generateResourceName("Microsoft.Resources/resourceGroups", "versioned");
24
38
  // Example 1: Basic resource group
25
39
  new resource_group_1.ResourceGroup(this, "basic-rg", {
26
- name: "basic-rg-example",
40
+ name: basicRgName,
27
41
  location: "eastus",
28
42
  tags: {
29
- environment: "example",
30
- purpose: "integration-test",
43
+ ...this.systemTags(),
44
+ example: "basic",
31
45
  },
32
46
  });
33
47
  // Example 2: Resource group with specific version
34
48
  new resource_group_1.ResourceGroup(this, "versioned-rg", {
35
- name: "versioned-rg-example",
49
+ name: versionedRgName,
36
50
  location: "westus",
37
51
  apiVersion: "2024-11-01",
38
52
  tags: {
53
+ ...this.systemTags(),
39
54
  example: "versioned",
40
55
  tier: "production",
41
56
  },
@@ -43,9 +58,6 @@ class ResourceGroupExampleStack extends cdktf_1.TerraformStack {
43
58
  }
44
59
  }
45
60
  describe("Resource Group Integration Test", () => {
46
- afterAll(() => {
47
- (0, testing_1.cleanupCdkTfOutDirs)();
48
- });
49
61
  it("should deploy, validate idempotency, and cleanup resource group resources", () => {
50
62
  const app = cdktf_1.Testing.app();
51
63
  const stack = new ResourceGroupExampleStack(app, "test-resource-group");
@@ -54,7 +66,7 @@ describe("Resource Group Integration Test", () => {
54
66
  // 1. Run terraform apply to deploy resources
55
67
  // 2. Run terraform plan to check idempotency (no changes expected)
56
68
  // 3. Run terraform destroy to cleanup resources
57
- (0, testing_1.TerraformApplyCheckAndDestroy)(synthesized);
69
+ (0, testing_1.TerraformApplyCheckAndDestroy)(synthesized, { verifyCleanup: true });
58
70
  }, 600000); // 10 minute timeout for deployment and cleanup
59
71
  });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtZ3JvdXAuaW50ZWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtcmVzb3VyY2Vncm91cC90ZXN0L3Jlc291cmNlLWdyb3VwLmludGVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7OztHQU9HOztBQUVILGlDQUFnRDtBQUVoRCwyQ0FBeUM7QUFDekMsa0ZBQW9GO0FBQ3BGLDJDQUd1QjtBQUN2QiwwREFBc0Q7QUFFdEQ7O0dBRUc7QUFDSCxNQUFNLHlCQUEwQixTQUFRLHNCQUFjO0lBQ3BELFlBQVksS0FBZ0IsRUFBRSxFQUFVO1FBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsMkJBQTJCO1FBQzNCLElBQUksd0JBQWEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXJDLGtDQUFrQztRQUNsQyxJQUFJLDhCQUFhLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNsQyxJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLElBQUksRUFBRTtnQkFDSixXQUFXLEVBQUUsU0FBUztnQkFDdEIsT0FBTyxFQUFFLGtCQUFrQjthQUM1QjtTQUNGLENBQUMsQ0FBQztRQUVILGtEQUFrRDtRQUNsRCxJQUFJLDhCQUFhLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtZQUN0QyxJQUFJLEVBQUUsc0JBQXNCO1lBQzVCLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLFVBQVUsRUFBRSxZQUFZO1lBQ3hCLElBQUksRUFBRTtnQkFDSixPQUFPLEVBQUUsV0FBVztnQkFDcEIsSUFBSSxFQUFFLFlBQVk7YUFDbkI7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFFRCxRQUFRLENBQUMsaUNBQWlDLEVBQUUsR0FBRyxFQUFFO0lBQy9DLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDWixJQUFBLDZCQUFtQixHQUFFLENBQUM7SUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsMkVBQTJFLEVBQUUsR0FBRyxFQUFFO1FBQ25GLE1BQU0sR0FBRyxHQUFHLGVBQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUMxQixNQUFNLEtBQUssR0FBRyxJQUFJLHlCQUF5QixDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sV0FBVyxHQUFHLGVBQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFN0MsYUFBYTtRQUNiLDZDQUE2QztRQUM3QyxtRUFBbUU7UUFDbkUsZ0RBQWdEO1FBQ2hELElBQUEsdUNBQTZCLEVBQUMsV0FBVyxDQUFDLENBQUM7SUFDN0MsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsK0NBQStDO0FBQzdELENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJbnRlZ3JhdGlvbiB0ZXN0IGZvciBBenVyZSBSZXNvdXJjZSBHcm91cFxuICpcbiAqIFRoaXMgdGVzdCBkZW1vbnN0cmF0ZXMgYmFzaWMgdXNhZ2Ugb2YgdGhlIFJlc291cmNlR3JvdXAgY29uc3RydWN0XG4gKiBhbmQgdmFsaWRhdGVzIGRlcGxveW1lbnQsIGlkZW1wb3RlbmN5LCBhbmQgY2xlYW51cC5cbiAqXG4gKiBSdW4gd2l0aDogbnBtIHJ1biBpbnRlZ3JhdGlvbjpub3N0cmVhbVxuICovXG5cbmltcG9ydCB7IFRlc3RpbmcsIFRlcnJhZm9ybVN0YWNrIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IFwiY2RrdGYvbGliL3Rlc3RpbmcvYWRhcHRlcnMvamVzdFwiO1xuaW1wb3J0IHsgQXphcGlQcm92aWRlciB9IGZyb20gXCIuLi8uLi9jb3JlLWF6dXJlL2xpYi9hemFwaS9wcm92aWRlcnMtYXphcGkvcHJvdmlkZXJcIjtcbmltcG9ydCB7XG4gIFRlcnJhZm9ybUFwcGx5Q2hlY2tBbmREZXN0cm95LFxuICBjbGVhbnVwQ2RrVGZPdXREaXJzLFxufSBmcm9tIFwiLi4vLi4vdGVzdGluZ1wiO1xuaW1wb3J0IHsgUmVzb3VyY2VHcm91cCB9IGZyb20gXCIuLi9saWIvcmVzb3VyY2UtZ3JvdXBcIjtcblxuLyoqXG4gKiBFeGFtcGxlIHN0YWNrIGRlbW9uc3RyYXRpbmcgUmVzb3VyY2UgR3JvdXAgdXNhZ2VcbiAqL1xuY2xhc3MgUmVzb3VyY2VHcm91cEV4YW1wbGVTdGFjayBleHRlbmRzIFRlcnJhZm9ybVN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAvLyBDb25maWd1cmUgQVpBUEkgcHJvdmlkZXJcbiAgICBuZXcgQXphcGlQcm92aWRlcih0aGlzLCBcImF6YXBpXCIsIHt9KTtcblxuICAgIC8vIEV4YW1wbGUgMTogQmFzaWMgcmVzb3VyY2UgZ3JvdXBcbiAgICBuZXcgUmVzb3VyY2VHcm91cCh0aGlzLCBcImJhc2ljLXJnXCIsIHtcbiAgICAgIG5hbWU6IFwiYmFzaWMtcmctZXhhbXBsZVwiLFxuICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB0YWdzOiB7XG4gICAgICAgIGVudmlyb25tZW50OiBcImV4YW1wbGVcIixcbiAgICAgICAgcHVycG9zZTogXCJpbnRlZ3JhdGlvbi10ZXN0XCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gRXhhbXBsZSAyOiBSZXNvdXJjZSBncm91cCB3aXRoIHNwZWNpZmljIHZlcnNpb25cbiAgICBuZXcgUmVzb3VyY2VHcm91cCh0aGlzLCBcInZlcnNpb25lZC1yZ1wiLCB7XG4gICAgICBuYW1lOiBcInZlcnNpb25lZC1yZy1leGFtcGxlXCIsXG4gICAgICBsb2NhdGlvbjogXCJ3ZXN0dXNcIixcbiAgICAgIGFwaVZlcnNpb246IFwiMjAyNC0xMS0wMVwiLFxuICAgICAgdGFnczoge1xuICAgICAgICBleGFtcGxlOiBcInZlcnNpb25lZFwiLFxuICAgICAgICB0aWVyOiBcInByb2R1Y3Rpb25cIixcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cblxuZGVzY3JpYmUoXCJSZXNvdXJjZSBHcm91cCBJbnRlZ3JhdGlvbiBUZXN0XCIsICgpID0+IHtcbiAgYWZ0ZXJBbGwoKCkgPT4ge1xuICAgIGNsZWFudXBDZGtUZk91dERpcnMoKTtcbiAgfSk7XG5cbiAgaXQoXCJzaG91bGQgZGVwbG95LCB2YWxpZGF0ZSBpZGVtcG90ZW5jeSwgYW5kIGNsZWFudXAgcmVzb3VyY2UgZ3JvdXAgcmVzb3VyY2VzXCIsICgpID0+IHtcbiAgICBjb25zdCBhcHAgPSBUZXN0aW5nLmFwcCgpO1xuICAgIGNvbnN0IHN0YWNrID0gbmV3IFJlc291cmNlR3JvdXBFeGFtcGxlU3RhY2soYXBwLCBcInRlc3QtcmVzb3VyY2UtZ3JvdXBcIik7XG4gICAgY29uc3Qgc3ludGhlc2l6ZWQgPSBUZXN0aW5nLmZ1bGxTeW50aChzdGFjayk7XG5cbiAgICAvLyBUaGlzIHdpbGw6XG4gICAgLy8gMS4gUnVuIHRlcnJhZm9ybSBhcHBseSB0byBkZXBsb3kgcmVzb3VyY2VzXG4gICAgLy8gMi4gUnVuIHRlcnJhZm9ybSBwbGFuIHRvIGNoZWNrIGlkZW1wb3RlbmN5IChubyBjaGFuZ2VzIGV4cGVjdGVkKVxuICAgIC8vIDMuIFJ1biB0ZXJyYWZvcm0gZGVzdHJveSB0byBjbGVhbnVwIHJlc291cmNlc1xuICAgIFRlcnJhZm9ybUFwcGx5Q2hlY2tBbmREZXN0cm95KHN5bnRoZXNpemVkKTtcbiAgfSwgNjAwMDAwKTsgLy8gMTAgbWludXRlIHRpbWVvdXQgZm9yIGRlcGxveW1lbnQgYW5kIGNsZWFudXBcbn0pO1xuIl19
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtZ3JvdXAuaW50ZWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtcmVzb3VyY2Vncm91cC90ZXN0L3Jlc291cmNlLWdyb3VwLmludGVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7OztHQU9HOztBQUVILGlDQUFnQztBQUVoQywyQ0FBeUM7QUFDekMsa0ZBQW9GO0FBQ3BGLDJDQUE2RTtBQUM3RSx5REFBNkQ7QUFDN0QsMERBQXNEO0FBRXRELHdEQUF3RDtBQUN4RCxNQUFNLFlBQVksR0FBRyxJQUFJLDBCQUFlLENBQUMsNEJBQTRCLEVBQUU7SUFDckUsV0FBVyxFQUFFLENBQUM7Q0FDZixDQUFDLENBQUM7QUFFSDs7R0FFRztBQUNILE1BQU0seUJBQTBCLFNBQVEsdUJBQWE7SUFDbkQsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixjQUFjLEVBQUU7Z0JBQ2QsV0FBVyxFQUFFLFlBQVksQ0FBQyxXQUFXO2dCQUNyQyxXQUFXLEVBQUUsWUFBWSxDQUFDLFdBQVc7Z0JBQ3JDLGFBQWEsRUFBRSxZQUFZLENBQUMsYUFBYTthQUMxQztTQUNGLENBQUMsQ0FBQztRQUVILDJCQUEyQjtRQUMzQixJQUFJLHdCQUFhLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVyQyw0Q0FBNEM7UUFDNUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUMzQyxvQ0FBb0MsRUFDcEMsT0FBTyxDQUNSLENBQUM7UUFDRixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQy9DLG9DQUFvQyxFQUNwQyxXQUFXLENBQ1osQ0FBQztRQUVGLGtDQUFrQztRQUNsQyxJQUFJLDhCQUFhLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNsQyxJQUFJLEVBQUUsV0FBVztZQUNqQixRQUFRLEVBQUUsUUFBUTtZQUNsQixJQUFJLEVBQUU7Z0JBQ0osR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNwQixPQUFPLEVBQUUsT0FBTzthQUNqQjtTQUNGLENBQUMsQ0FBQztRQUVILGtEQUFrRDtRQUNsRCxJQUFJLDhCQUFhLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtZQUN0QyxJQUFJLEVBQUUsZUFBZTtZQUNyQixRQUFRLEVBQUUsUUFBUTtZQUNsQixVQUFVLEVBQUUsWUFBWTtZQUN4QixJQUFJLEVBQUU7Z0JBQ0osR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNwQixPQUFPLEVBQUUsV0FBVztnQkFDcEIsSUFBSSxFQUFFLFlBQVk7YUFDbkI7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFFRCxRQUFRLENBQUMsaUNBQWlDLEVBQUUsR0FBRyxFQUFFO0lBQy9DLEVBQUUsQ0FBQywyRUFBMkUsRUFBRSxHQUFHLEVBQUU7UUFDbkYsTUFBTSxHQUFHLEdBQUcsZUFBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzFCLE1BQU0sS0FBSyxHQUFHLElBQUkseUJBQXlCLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDeEUsTUFBTSxXQUFXLEdBQUcsZUFBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3QyxhQUFhO1FBQ2IsNkNBQTZDO1FBQzdDLG1FQUFtRTtRQUNuRSxnREFBZ0Q7UUFDaEQsSUFBQSx1Q0FBNkIsRUFBQyxXQUFXLEVBQUUsRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQywrQ0FBK0M7QUFDN0QsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEludGVncmF0aW9uIHRlc3QgZm9yIEF6dXJlIFJlc291cmNlIEdyb3VwXG4gKlxuICogVGhpcyB0ZXN0IGRlbW9uc3RyYXRlcyBiYXNpYyB1c2FnZSBvZiB0aGUgUmVzb3VyY2VHcm91cCBjb25zdHJ1Y3RcbiAqIGFuZCB2YWxpZGF0ZXMgZGVwbG95bWVudCwgaWRlbXBvdGVuY3ksIGFuZCBjbGVhbnVwLlxuICpcbiAqIFJ1biB3aXRoOiBucG0gcnVuIGludGVncmF0aW9uOm5vc3RyZWFtXG4gKi9cblxuaW1wb3J0IHsgVGVzdGluZyB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCBcImNka3RmL2xpYi90ZXN0aW5nL2FkYXB0ZXJzL2plc3RcIjtcbmltcG9ydCB7IEF6YXBpUHJvdmlkZXIgfSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvYXphcGkvcHJvdmlkZXJzLWF6YXBpL3Byb3ZpZGVyXCI7XG5pbXBvcnQgeyBCYXNlVGVzdFN0YWNrLCBUZXJyYWZvcm1BcHBseUNoZWNrQW5kRGVzdHJveSB9IGZyb20gXCIuLi8uLi90ZXN0aW5nXCI7XG5pbXBvcnQgeyBUZXN0UnVuTWV0YWRhdGEgfSBmcm9tIFwiLi4vLi4vdGVzdGluZy9saWIvbWV0YWRhdGFcIjtcbmltcG9ydCB7IFJlc291cmNlR3JvdXAgfSBmcm9tIFwiLi4vbGliL3Jlc291cmNlLWdyb3VwXCI7XG5cbi8vIEdlbmVyYXRlIHVuaXF1ZSB0ZXN0IHJ1biBtZXRhZGF0YSBmb3IgdGhpcyB0ZXN0IHN1aXRlXG5jb25zdCB0ZXN0TWV0YWRhdGEgPSBuZXcgVGVzdFJ1bk1ldGFkYXRhKFwicmVzb3VyY2UtZ3JvdXAtaW50ZWdyYXRpb25cIiwge1xuICBtYXhBZ2VIb3VyczogNCxcbn0pO1xuXG4vKipcbiAqIEV4YW1wbGUgc3RhY2sgZGVtb25zdHJhdGluZyBSZXNvdXJjZSBHcm91cCB1c2FnZVxuICovXG5jbGFzcyBSZXNvdXJjZUdyb3VwRXhhbXBsZVN0YWNrIGV4dGVuZHMgQmFzZVRlc3RTdGFjayB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHRlc3RSdW5PcHRpb25zOiB7XG4gICAgICAgIG1heEFnZUhvdXJzOiB0ZXN0TWV0YWRhdGEubWF4QWdlSG91cnMsXG4gICAgICAgIGF1dG9DbGVhbnVwOiB0ZXN0TWV0YWRhdGEuYXV0b0NsZWFudXAsXG4gICAgICAgIGNsZWFudXBQb2xpY3k6IHRlc3RNZXRhZGF0YS5jbGVhbnVwUG9saWN5LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIENvbmZpZ3VyZSBBWkFQSSBwcm92aWRlclxuICAgIG5ldyBBemFwaVByb3ZpZGVyKHRoaXMsIFwiYXphcGlcIiwge30pO1xuXG4gICAgLy8gR2VuZXJhdGUgdW5pcXVlIG5hbWVzIGZvciByZXNvdXJjZSBncm91cHNcbiAgICBjb25zdCBiYXNpY1JnTmFtZSA9IHRoaXMuZ2VuZXJhdGVSZXNvdXJjZU5hbWUoXG4gICAgICBcIk1pY3Jvc29mdC5SZXNvdXJjZXMvcmVzb3VyY2VHcm91cHNcIixcbiAgICAgIFwiYmFzaWNcIixcbiAgICApO1xuICAgIGNvbnN0IHZlcnNpb25lZFJnTmFtZSA9IHRoaXMuZ2VuZXJhdGVSZXNvdXJjZU5hbWUoXG4gICAgICBcIk1pY3Jvc29mdC5SZXNvdXJjZXMvcmVzb3VyY2VHcm91cHNcIixcbiAgICAgIFwidmVyc2lvbmVkXCIsXG4gICAgKTtcblxuICAgIC8vIEV4YW1wbGUgMTogQmFzaWMgcmVzb3VyY2UgZ3JvdXBcbiAgICBuZXcgUmVzb3VyY2VHcm91cCh0aGlzLCBcImJhc2ljLXJnXCIsIHtcbiAgICAgIG5hbWU6IGJhc2ljUmdOYW1lLFxuICAgICAgbG9jYXRpb246IFwiZWFzdHVzXCIsXG4gICAgICB0YWdzOiB7XG4gICAgICAgIC4uLnRoaXMuc3lzdGVtVGFncygpLFxuICAgICAgICBleGFtcGxlOiBcImJhc2ljXCIsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gRXhhbXBsZSAyOiBSZXNvdXJjZSBncm91cCB3aXRoIHNwZWNpZmljIHZlcnNpb25cbiAgICBuZXcgUmVzb3VyY2VHcm91cCh0aGlzLCBcInZlcnNpb25lZC1yZ1wiLCB7XG4gICAgICBuYW1lOiB2ZXJzaW9uZWRSZ05hbWUsXG4gICAgICBsb2NhdGlvbjogXCJ3ZXN0dXNcIixcbiAgICAgIGFwaVZlcnNpb246IFwiMjAyNC0xMS0wMVwiLFxuICAgICAgdGFnczoge1xuICAgICAgICAuLi50aGlzLnN5c3RlbVRhZ3MoKSxcbiAgICAgICAgZXhhbXBsZTogXCJ2ZXJzaW9uZWRcIixcbiAgICAgICAgdGllcjogXCJwcm9kdWN0aW9uXCIsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG5cbmRlc2NyaWJlKFwiUmVzb3VyY2UgR3JvdXAgSW50ZWdyYXRpb24gVGVzdFwiLCAoKSA9PiB7XG4gIGl0KFwic2hvdWxkIGRlcGxveSwgdmFsaWRhdGUgaWRlbXBvdGVuY3ksIGFuZCBjbGVhbnVwIHJlc291cmNlIGdyb3VwIHJlc291cmNlc1wiLCAoKSA9PiB7XG4gICAgY29uc3QgYXBwID0gVGVzdGluZy5hcHAoKTtcbiAgICBjb25zdCBzdGFjayA9IG5ldyBSZXNvdXJjZUdyb3VwRXhhbXBsZVN0YWNrKGFwcCwgXCJ0ZXN0LXJlc291cmNlLWdyb3VwXCIpO1xuICAgIGNvbnN0IHN5bnRoZXNpemVkID0gVGVzdGluZy5mdWxsU3ludGgoc3RhY2spO1xuXG4gICAgLy8gVGhpcyB3aWxsOlxuICAgIC8vIDEuIFJ1biB0ZXJyYWZvcm0gYXBwbHkgdG8gZGVwbG95IHJlc291cmNlc1xuICAgIC8vIDIuIFJ1biB0ZXJyYWZvcm0gcGxhbiB0byBjaGVjayBpZGVtcG90ZW5jeSAobm8gY2hhbmdlcyBleHBlY3RlZClcbiAgICAvLyAzLiBSdW4gdGVycmFmb3JtIGRlc3Ryb3kgdG8gY2xlYW51cCByZXNvdXJjZXNcbiAgICBUZXJyYWZvcm1BcHBseUNoZWNrQW5kRGVzdHJveShzeW50aGVzaXplZCwgeyB2ZXJpZnlDbGVhbnVwOiB0cnVlIH0pO1xuICB9LCA2MDAwMDApOyAvLyAxMCBtaW51dGUgdGltZW91dCBmb3IgZGVwbG95bWVudCBhbmQgY2xlYW51cFxufSk7XG4iXX0=
@@ -38,3 +38,101 @@ export declare const ALL_STORAGE_ACCOUNT_VERSIONS: VersionConfig[];
38
38
  * Resource type constant
39
39
  */
40
40
  export declare const STORAGE_ACCOUNT_TYPE = "Microsoft.Storage/storageAccounts";
41
+ /**
42
+ * Configuration options for Storage Account monitoring
43
+ *
44
+ * This interface defines the configurable options for setting up monitoring alerts
45
+ * and diagnostic settings for Azure Storage Accounts. All properties are optional
46
+ * and have sensible defaults for production use.
47
+ *
48
+ * @stability stable
49
+ */
50
+ export interface StorageAccountMonitoringOptions {
51
+ /**
52
+ * Threshold for storage account availability percentage
53
+ *
54
+ * Alert triggers when availability drops below this threshold
55
+ *
56
+ * @default 99.9 - Triggers alert when availability is below 99.9%
57
+ */
58
+ readonly availabilityThreshold?: number;
59
+ /**
60
+ * Threshold for storage account egress in bytes
61
+ *
62
+ * Alert triggers when egress exceeds this threshold
63
+ *
64
+ * @default 10737418240 - Triggers alert when egress exceeds 10GB
65
+ */
66
+ readonly egressThreshold?: number;
67
+ /**
68
+ * Threshold for storage account transactions count
69
+ *
70
+ * Alert triggers when transaction count exceeds this threshold
71
+ *
72
+ * @default 100000 - Triggers alert when transactions exceed 100k
73
+ */
74
+ readonly transactionsThreshold?: number;
75
+ /**
76
+ * Enable or disable availability monitoring alert
77
+ *
78
+ * @default true - Availability alert is enabled by default
79
+ */
80
+ readonly enableAvailabilityAlert?: boolean;
81
+ /**
82
+ * Enable or disable egress monitoring alert
83
+ *
84
+ * @default true - Egress alert is enabled by default
85
+ */
86
+ readonly enableEgressAlert?: boolean;
87
+ /**
88
+ * Enable or disable transactions monitoring alert
89
+ *
90
+ * @default true - Transactions alert is enabled by default
91
+ */
92
+ readonly enableTransactionsAlert?: boolean;
93
+ /**
94
+ * Enable or disable deletion activity log alert
95
+ *
96
+ * @default true - Deletion alert is enabled by default
97
+ */
98
+ readonly enableDeletionAlert?: boolean;
99
+ /**
100
+ * Severity level for availability alerts
101
+ *
102
+ * Severity levels:
103
+ * - 0: Critical
104
+ * - 1: Error
105
+ * - 2: Warning
106
+ * - 3: Informational
107
+ * - 4: Verbose
108
+ *
109
+ * @default 1 - Error severity for availability issues
110
+ */
111
+ readonly availabilityAlertSeverity?: 0 | 1 | 2 | 3 | 4;
112
+ /**
113
+ * Severity level for egress alerts
114
+ *
115
+ * Severity levels:
116
+ * - 0: Critical
117
+ * - 1: Error
118
+ * - 2: Warning
119
+ * - 3: Informational
120
+ * - 4: Verbose
121
+ *
122
+ * @default 2 - Warning severity for high egress
123
+ */
124
+ readonly egressAlertSeverity?: 0 | 1 | 2 | 3 | 4;
125
+ /**
126
+ * Severity level for transactions alerts
127
+ *
128
+ * Severity levels:
129
+ * - 0: Critical
130
+ * - 1: Error
131
+ * - 2: Warning
132
+ * - 3: Informational
133
+ * - 4: Verbose
134
+ *
135
+ * @default 2 - Warning severity for high transaction count
136
+ */
137
+ readonly transactionsAlertSeverity?: 0 | 1 | 2 | 3 | 4;
138
+ }
@@ -375,4 +375,4 @@ exports.ALL_STORAGE_ACCOUNT_VERSIONS = [
375
375
  * Resource type constant
376
376
  */
377
377
  exports.STORAGE_ACCOUNT_TYPE = "Microsoft.Storage/storageAccounts";
378
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1hY2NvdW50LXNjaGVtYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtc3RvcmFnZWFjY291bnQvbGliL3N0b3JhZ2UtYWNjb3VudC1zY2hlbWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUVILDJHQU80RTtBQUU1RSxnRkFBZ0Y7QUFDaEYsOEJBQThCO0FBQzlCLGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQU0saUJBQWlCLEdBQTBDO0lBQy9ELFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLElBQUk7UUFDZCxXQUFXLEVBQUUsNERBQTREO1FBQ3pFLFVBQVUsRUFBRTtZQUNWO2dCQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxRQUFRO2dCQUNyQyxPQUFPLEVBQUUsMkNBQTJDO2FBQ3JEO1lBQ0Q7Z0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLGFBQWE7Z0JBQzFDLEtBQUssRUFBRSxhQUFhO2dCQUNwQixPQUFPLEVBQUUsMERBQTBEO2FBQ3BFO1NBQ0Y7S0FDRjtJQUNELElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLEtBQUs7UUFDZixZQUFZLEVBQUUsRUFBRTtRQUNoQixXQUFXLEVBQUUsc0RBQXNEO1FBQ25FLFVBQVUsRUFBRTtZQUNWO2dCQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxVQUFVO2dCQUN2QyxLQUFLLEVBQUUsaUNBQVksQ0FBQyxNQUFNO2dCQUMxQixPQUFPLEVBQUUsb0RBQW9EO2FBQzlEO1NBQ0Y7S0FDRjtJQUNELElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLElBQUk7UUFDZCxXQUFXLEVBQ1QsdUVBQXVFO1FBQ3pFLFVBQVUsRUFBRTtZQUNWO2dCQUNFLFFB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LFFBQVEsRUFBRSxLQUFLO1NBQ2hCO0tBQ0Y7Q0FDRixDQUFDO0FBRUY7O0dBRUc7QUFDVSxRQUFBLGtDQUFrQyxHQUFrQjtJQUMvRCxPQUFPLEVBQUUsWUFBWTtJQUNyQixNQUFNLEVBQUUseUNBQWlDO0lBQ3pDLFlBQVksRUFBRSx3Q0FBbUIsQ0FBQyxNQUFNO0lBQ3hDLFdBQVcsRUFBRSxZQUFZO0lBQ3pCLGVBQWUsRUFBRSxTQUFTO0lBQzFCLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLGVBQWUsRUFBRSxFQUFFO0lBQ25CLGNBQWMsRUFBRSw0Q0FBNEM7SUFDNUQsU0FBUyxFQUFFO1FBQ1Q7WUFDRSxVQUFVLEVBQUUsU0FBUztZQUNyQixXQUFXLEVBQUUsMkRBQTJEO1lBQ3hFLFFBQVEsRUFBRSxLQUFLO1NBQ2hCO0tBQ0Y7Q0FDRixDQUFDO0FBRUY7O0dBRUc7QUFDVSxRQUFBLDRCQUE0QixHQUFvQjtJQUMzRCwwQ0FBa0M7SUFDbEMsMENBQWtDO0lBQ2xDLDBDQUFrQztDQUNuQyxDQUFDO0FBRUY7O0dBRUc7QUFDVSxRQUFBLG9CQUFvQixHQUFHLG1DQUFtQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBUEkgc2NoZW1hcyBmb3IgQXp1cmUgU3RvcmFnZSBBY2NvdW50IGFjcm9zcyBhbGwgc3VwcG9ydGVkIHZlcnNpb25zXG4gKlxuICogVGhpcyBmaWxlIGRlZmluZXMgdGhlIGNvbXBsZXRlIEFQSSBzY2hlbWFzIGZvciBNaWNyb3NvZnQuU3RvcmFnZS9zdG9yYWdlQWNjb3VudHNcbiAqIGFjcm9zcyBhbGwgc3VwcG9ydGVkIEFQSSB2ZXJzaW9ucy4gVGhlIHNjaGVtYXMgYXJlIHVzZWQgYnkgdGhlIFZlcnNpb25lZEF6YXBpUmVzb3VyY2VcbiAqIGZyYW1ld29yayBmb3IgdmFsaWRhdGlvbiwgdHJhbnNmb3JtYXRpb24sIGFuZCB2ZXJzaW9uIG1hbmFnZW1lbnQuXG4gKi9cblxuaW1wb3J0IHtcbiAgQXBpU2NoZW1hLFxuICBQcm9wZXJ0eURlZmluaXRpb24sXG4gIFByb3BlcnR5VHlwZSxcbiAgVmFsaWRhdGlvblJ1bGVUeXBlLFxuICBWZXJzaW9uQ29uZmlnLFxuICBWZXJzaW9uU3VwcG9ydExldmVsLFxufSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvdmVyc2lvbi1tYW5hZ2VyL2ludGVyZmFjZXMvdmVyc2lvbi1pbnRlcmZhY2VzXCI7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDT01NT04gUFJPUEVSVFkgREVGSU5JVElPTlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ29tbW9uIHByb3BlcnR5IGRlZmluaXRpb25zIHNoYXJlZCBhY3Jvc3MgYWxsIFN0b3JhZ2UgQWNjb3VudCB2ZXJzaW9uc1xuICovXG5jb25zdCBDT01NT05fUFJPUEVSVElFUzogeyBba2V5OiBzdHJpbmddOiBQcm9wZXJ0eURlZmluaXRpb24gfSA9IHtcbiAgbG9jYXRpb246IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjogXCJUaGUgQXp1cmUgcmVnaW9uIHdoZXJlIHRoZSBTdG9yYWdlIEFjY291bnQgd2lsbCBiZSBjcmVhdGVkXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICBtZXNzYWdlOiBcIkxvY2F0aW9uIGlzIHJlcXVpcmVkIGZvciBTdG9yYWdlIEFjY291bnRzXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlBBVFRFUk5fTUFUQ0gsXG4gICAgICAgIHZhbHVlOiBcIl5bYS16MC05XSskXCIsXG4gICAgICAgIG1lc3NhZ2U6IFwiTG9jYXRpb24gbXVzdCBjb250YWluIG9ubHkgbG93ZXJjYXNlIGxldHRlcnMgYW5kIG51bWJlcnNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgdGFnczoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZWZhdWx0VmFsdWU6IHt9LFxuICAgIGRlc2NyaXB0aW9uOiBcIkEgZGljdGlvbmFyeSBvZiB0YWdzIHRvIGFwcGx5IHRvIHRoZSBTdG9yYWdlIEFjY291bnRcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuVFlQRV9DSEVDSyxcbiAgICAgICAgdmFsdWU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgICAgIG1lc3NhZ2U6IFwiVGFncyBtdXN0IGJlIGFuIG9iamVjdCB3aXRoIHN0cmluZyBrZXktdmFsdWUgcGFpcnNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgbmFtZToge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJUaGUgbmFtZSBvZiB0aGUgU3RvcmFnZSBBY2NvdW50LiBNdXN0IGJlIGdsb2JhbGx5IHVuaXF1ZSBhY3Jvc3MgQXp1cmVcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgIG1lc3NhZ2U6IFwiU3RvcmFnZSBBY2NvdW50IG5hbWUgaXMgcmVxdWlyZWRcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUEFUVEVSTl9NQVRDSCxcbiAgICAgICAgdmFsdWU6IFwiXlthLXowLTldezMsMjR9JFwiLFxuICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgIFwiU3RvcmFnZSBBY2NvdW50IG5hbWUgbXVzdCBiZSAzLTI0IGxvd2VyY2FzZSBsZXR0ZXJzIGFuZCBudW1iZXJzIG9ubHlcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgc2t1OiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIFNLVSAocHJpY2luZyB0aWVyKSBmb3IgdGhlIFN0b3JhZ2UgQWNjb3VudFwiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgbWVzc2FnZTogXCJTS1UgaXMgcmVxdWlyZWQgZm9yIFN0b3JhZ2UgQWNjb3VudHNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAga2luZDoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIGRlZmF1bHRWYWx1ZTogXCJTdG9yYWdlVjJcIixcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiVGhlIGtpbmQgb2YgU3RvcmFnZSBBY2NvdW50IChTdG9yYWdlVjIsIEJsb2JTdG9yYWdlLCBCbG9ja0Jsb2JTdG9yYWdlLCBGaWxlU3RvcmFnZSlcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgIG1lc3NhZ2U6IFwiS2luZCBpcyByZXF1aXJlZCBmb3IgU3RvcmFnZSBBY2NvdW50c1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBhY2Nlc3NUaWVyOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHRWYWx1ZTogXCJIb3RcIixcbiAgICBkZXNjcmlwdGlvbjogXCJUaGUgYWNjZXNzIHRpZXIgZm9yIGJsb2Igc3RvcmFnZSAoSG90IG9yIENvb2wpXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlBBVFRFUk5fTUFUQ0gsXG4gICAgICAgIHZhbHVlOiBcIl4oSG90fENvb2wpJFwiLFxuICAgICAgICBtZXNzYWdlOiBcIkFjY2VzcyB0aWVyIG11c3QgYmUgZWl0aGVyICdIb3QnIG9yICdDb29sJ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBlbmFibGVIdHRwc1RyYWZmaWNPbmx5OiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5CT09MRUFOLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgZGVzY3JpcHRpb246IFwiV2hldGhlciB0byBhbGxvdyBvbmx5IEhUVFBTIHRyYWZmaWMgdG8gdGhlIHN0b3JhZ2UgYWNjb3VudFwiLFxuICB9LFxuICBtaW5pbXVtVGxzVmVyc2lvbjoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZWZhdWx0VmFsdWU6IFwiVExTMV8yXCIsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIG1pbmltdW0gVExTIHZlcnNpb24gcmVxdWlyZWQgZm9yIHJlcXVlc3RzXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlBBVFRFUk5fTUFUQ0gsXG4gICAgICAgIHZhbHVlOiBcIl4oVExTMV8wfFRMUzFfMXxUTFMxXzIpJFwiLFxuICAgICAgICBtZXNzYWdlOiBcIk1pbmltdW0gVExTIHZlcnNpb24gbXVzdCBiZSBUTFMxXzAsIFRMUzFfMSwgb3IgVExTMV8yXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGFsbG93QmxvYlB1YmxpY0FjY2Vzczoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuQk9PTEVBTixcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJXaGV0aGVyIHRvIGFsbG93IHB1YmxpYyBhY2Nlc3MgdG8gYmxvYnNcIixcbiAgfSxcbiAgbmV0d29ya0FjbHM6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiTmV0d29yayBBQ0wgcnVsZXMgZm9yIHRoZSBzdG9yYWdlIGFjY291bnRcIixcbiAgfSxcbiAgaWRlbnRpdHk6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiTWFuYWdlZCBpZGVudGl0eSBjb25maWd1cmF0aW9uIGZvciB0aGUgc3RvcmFnZSBhY2NvdW50XCIsXG4gIH0sXG4gIGVuY3J5cHRpb246IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiRW5jcnlwdGlvbiBzZXR0aW5ncyBmb3IgdGhlIHN0b3JhZ2UgYWNjb3VudFwiLFxuICB9LFxuICBpZ25vcmVDaGFuZ2VzOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5BUlJBWSxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiQXJyYXkgb2YgcHJvcGVydHkgbmFtZXMgdG8gaWdub3JlIGR1cmluZyB1cGRhdGVzXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlRZUEVfQ0hFQ0ssXG4gICAgICAgIHZhbHVlOiBQcm9wZXJ0eVR5cGUuQVJSQVksXG4gICAgICAgIG1lc3NhZ2U6IFwiSWdub3JlQ2hhbmdlcyBtdXN0IGJlIGFuIGFycmF5IG9mIHN0cmluZ3NcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBWRVJTSU9OLVNQRUNJRklDIFNDSEVNQVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQVBJIFNjaGVtYSBmb3IgU3RvcmFnZSBBY2NvdW50IHZlcnNpb24gMjAyMy0wMS0wMVxuICovXG5leHBvcnQgY29uc3QgU1RPUkFHRV9BQ0NPVU5UX1NDSEVNQV8yMDIzXzAxXzAxOiBBcGlTY2hlbWEgPSB7XG4gIHJlc291cmNlVHlwZTogXCJNaWNyb3NvZnQuU3RvcmFnZS9zdG9yYWdlQWNjb3VudHNcIixcbiAgdmVyc2lvbjogXCIyMDIzLTAxLTAxXCIsXG4gIHByb3BlcnRpZXM6IHtcbiAgICAuLi5DT01NT05fUFJPUEVSVElFUyxcbiAgfSxcbiAgcmVxdWlyZWQ6IFtcImxvY2F0aW9uXCIsIFwibmFtZVwiLCBcInNrdVwiLCBcImtpbmRcIl0sXG4gIG9wdGlvbmFsOiBbXG4gICAgXCJ0YWdzXCIsXG4gICAgXCJhY2Nlc3NUaWVyXCIsXG4gICAgXCJlbmFibGVIdHRwc1RyYWZmaWNPbmx5XCIsXG4gICAgXCJtaW5pbXVtVGxzVmVyc2lvblwiLFxuICAgIFwiYWxsb3dCbG9iUHVibGljQWNjZXNzXCIsXG4gICAgXCJuZXR3b3JrQWNsc1wiLFxuICAgIFwiaWRlbnRpdHlcIixcbiAgICBcImVuY3J5cHRpb25cIixcbiAgICBcImlnbm9yZUNoYW5nZXNcIixcbiAgXSxcbiAgZGVwcmVjYXRlZDogW10sXG4gIHRyYW5zZm9ybWF0aW9uUnVsZXM6IHt9LFxuICB2YWxpZGF0aW9uUnVsZXM6IFtcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJsb2NhdGlvblwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJMb2NhdGlvbiBpcyByZXF1aXJlZCBmb3IgU3RvcmFnZSBBY2NvdW50c1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3BlcnR5OiBcIm5hbWVcIixcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICAgIG1lc3NhZ2U6IFwiTmFtZSBpcyByZXF1aXJlZCBmb3IgU3RvcmFnZSBBY2NvdW50c1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICBdLFxufTtcblxuLyoqXG4gKiBBUEkgU2NoZW1hIGZvciBTdG9yYWdlIEFjY291bnQgdmVyc2lvbiAyMDIzLTA1LTAxXG4gKi9cbmV4cG9ydCBjb25zdCBTVE9SQUdFX0FDQ09VTlRfU0NIRU1BXzIwMjNfMDVfMDE6IEFwaVNjaGVtYSA9IHtcbiAgcmVzb3VyY2VUeXBlOiBcIk1pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50c1wiLFxuICB2ZXJzaW9uOiBcIjIwMjMtMDUtMDFcIixcbiAgcHJvcGVydGllczoge1xuICAgIC4uLkNPTU1PTl9QUk9QRVJUSUVTLFxuICB9LFxuICByZXF1aXJlZDogW1wibG9jYXRpb25cIiwgXCJuYW1lXCIsIFwic2t1XCIsIFwia2luZFwiXSxcbiAgb3B0aW9uYWw6IFtcbiAgICBcInRhZ3NcIixcbiAgICBcImFjY2Vzc1RpZXJcIixcbiAgICBcImVuYWJsZUh0dHBzVHJhZmZpY09ubHlcIixcbiAgICBcIm1pbmltdW1UbHNWZXJzaW9uXCIsXG4gICAgXCJhbGxvd0Jsb2JQdWJsaWNBY2Nlc3NcIixcbiAgICBcIm5ldHdvcmtBY2xzXCIsXG4gICAgXCJpZGVudGl0eVwiLFxuICAgIFwiZW5jcnlwdGlvblwiLFxuICAgIFwiaWdub3JlQ2hhbmdlc1wiLFxuICBdLFxuICBkZXByZWNhdGVkOiBbXSxcbiAgdHJhbnNmb3JtYXRpb25SdWxlczoge30sXG4gIHZhbGlkYXRpb25SdWxlczogW1xuICAgIHtcbiAgICAgIHByb3BlcnR5OiBcImxvY2F0aW9uXCIsXG4gICAgICBydWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgICBtZXNzYWdlOiBcIkxvY2F0aW9uIGlzIHJlcXVpcmVkIGZvciBTdG9yYWdlIEFjY291bnRzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwibmFtZVwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJOYW1lIGlzIHJlcXVpcmVkIGZvciBTdG9yYWdlIEFjY291bnRzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF0sXG59O1xuXG4vKipcbiAqIEFQSSBTY2hlbWEgZm9yIFN0b3JhZ2UgQWNjb3VudCB2ZXJzaW9uIDIwMjQtMDEtMDFcbiAqL1xuZXhwb3J0IGNvbnN0IFNUT1JBR0VfQUNDT1VOVF9TQ0hFTUFfMjAyNF8wMV8wMTogQXBpU2NoZW1hID0ge1xuICByZXNvdXJjZVR5cGU6IFwiTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzXCIsXG4gIHZlcnNpb246IFwiMjAyNC0wMS0wMVwiLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgLi4uQ09NTU9OX1BST1BFUlRJRVMsXG4gIH0sXG4gIHJlcXVpcmVkOiBbXCJsb2NhdGlvblwiLCBcIm5hbWVcIiwgXCJza3VcIiwgXCJraW5kXCJdLFxuICBvcHRpb25hbDogW1xuICAgIFwidGFnc1wiLFxuICAgIFwiYWNjZXNzVGllclwiLFxuICAgIFwiZW5hYmxlSHR0cHNUcmFmZmljT25seVwiLFxuICAgIFwibWluaW11bVRsc1ZlcnNpb25cIixcbiAgICBcImFsbG93QmxvYlB1YmxpY0FjY2Vzc1wiLFxuICAgIFwibmV0d29ya0FjbHNcIixcbiAgICBcImlkZW50aXR5XCIsXG4gICAgXCJlbmNyeXB0aW9uXCIsXG4gICAgXCJpZ25vcmVDaGFuZ2VzXCIsXG4gIF0sXG4gIGRlcHJlY2F0ZWQ6IFtdLFxuICB0cmFuc2Zvcm1hdGlvblJ1bGVzOiB7fSxcbiAgdmFsaWRhdGlvblJ1bGVzOiBbXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwibG9jYXRpb25cIixcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICAgIG1lc3NhZ2U6IFwiTG9jYXRpb24gaXMgcmVxdWlyZWQgZm9yIFN0b3JhZ2UgQWNjb3VudHNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJuYW1lXCIsXG4gICAgICBydWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgICBtZXNzYWdlOiBcIk5hbWUgaXMgcmVxdWlyZWQgZm9yIFN0b3JhZ2UgQWNjb3VudHNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgXSxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBWRVJTSU9OIENPTkZJR1VSQVRJT05TXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFZlcnNpb24gY29uZmlndXJhdGlvbiBmb3IgU3RvcmFnZSBBY2NvdW50IDIwMjMtMDEtMDFcbiAqL1xuZXhwb3J0IGNvbnN0IFNUT1JBR0VfQUNDT1VOVF9WRVJTSU9OXzIwMjNfMDFfMDE6IFZlcnNpb25Db25maWcgPSB7XG4gIHZlcnNpb246IFwiMjAyMy0wMS0wMVwiLFxuICBzY2hlbWE6IFNUT1JBR0VfQUNDT1VOVF9TQ0hFTUFfMjAyM18wMV8wMSxcbiAgc3VwcG9ydExldmVsOiBWZXJzaW9uU3VwcG9ydExldmVsLlNVTlNFVCxcbiAgcmVsZWFzZURhdGU6IFwiMjAyMy0wMS0wMVwiLFxuICBkZXByZWNhdGlvbkRhdGU6IFwiMjAyMy0wNy0wMVwiLFxuICBzdW5zZXREYXRlOiBcIjIwMjQtMDctMDFcIixcbiAgYnJlYWtpbmdDaGFuZ2VzOiBbXSxcbiAgbWlncmF0aW9uR3VpZGU6IFwiL2RvY3Mvc3RvcmFnZS1hY2NvdW50L21pZ3JhdGlvbi0yMDIzLTAxLTAxXCIsXG4gIGNoYW5nZUxvZzogW1xuICAgIHtcbiAgICAgIGNoYW5nZVR5cGU6IFwic3Vuc2V0XCIsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJUaGlzIHZlcnNpb24gaGFzIHJlYWNoZWQgc3Vuc2V0LiBJbW1lZGlhdGUgbWlncmF0aW9uIHRvIDIwMjQtMDEtMDEgaXMgcmVxdWlyZWQuXCIsXG4gICAgICBicmVha2luZzogZmFsc2UsXG4gICAgfSxcbiAgICB7XG4gICAgICBjaGFuZ2VUeXBlOiBcImRlcHJlY2F0ZWRcIixcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIlRoaXMgdmVyc2lvbiB3YXMgZGVwcmVjYXRlZC4gUGxlYXNlIG1pZ3JhdGUgdG8gMjAyNC0wMS0wMSBvciBsYXRlci5cIixcbiAgICAgIGJyZWFraW5nOiBmYWxzZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGNoYW5nZVR5cGU6IFwiYWRkZWRcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlN0YWJsZSByZWxlYXNlIG9mIFN0b3JhZ2UgQWNjb3VudCBBUElcIixcbiAgICAgIGJyZWFraW5nOiBmYWxzZSxcbiAgICB9LFxuICBdLFxufTtcblxuLyoqXG4gKiBWZXJzaW9uIGNvbmZpZ3VyYXRpb24gZm9yIFN0b3JhZ2UgQWNjb3VudCAyMDIzLTA1LTAxXG4gKi9cbmV4cG9ydCBjb25zdCBTVE9SQUdFX0FDQ09VTlRfVkVSU0lPTl8yMDIzXzA1XzAxOiBWZXJzaW9uQ29uZmlnID0ge1xuICB2ZXJzaW9uOiBcIjIwMjMtMDUtMDFcIixcbiAgc2NoZW1hOiBTVE9SQUdFX0FDQ09VTlRfU0NIRU1BXzIwMjNfMDVfMDEsXG4gIHN1cHBvcnRMZXZlbDogVmVyc2lvblN1cHBvcnRMZXZlbC5ERVBSRUNBVEVELFxuICByZWxlYXNlRGF0ZTogXCIyMDIzLTA1LTAxXCIsXG4gIGRlcHJlY2F0aW9uRGF0ZTogXCIyMDI0LTA1LTAxXCIsXG4gIHN1bnNldERhdGU6IFwiMjAyNS0wNS0wMVwiLFxuICBicmVha2luZ0NoYW5nZXM6IFtdLFxuICBtaWdyYXRpb25HdWlkZTogXCIvZG9jcy9zdG9yYWdlLWFjY291bnQvbWlncmF0aW9uLTIwMjMtMDUtMDFcIixcbiAgY2hhbmdlTG9nOiBbXG4gICAge1xuICAgICAgY2hhbmdlVHlwZTogXCJkZXByZWNhdGVkXCIsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJUaGlzIHZlcnNpb24gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIG1pZ3JhdGUgdG8gMjAyNC0wMS0wMSBmb3IgY29udGludWVkIHN1cHBvcnQuXCIsXG4gICAgICBicmVha2luZzogZmFsc2UsXG4gICAgfSxcbiAgICB7XG4gICAgICBjaGFuZ2VUeXBlOiBcInVwZGF0ZWRcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkVuaGFuY2VkIHNlY3VyaXR5IGFuZCBlbmNyeXB0aW9uIGZlYXR1cmVzXCIsXG4gICAgICBicmVha2luZzogZmFsc2UsXG4gICAgfSxcbiAgXSxcbn07XG5cbi8qKlxuICogVmVyc2lvbiBjb25maWd1cmF0aW9uIGZvciBTdG9yYWdlIEFjY291bnQgMjAyNC0wMS0wMVxuICovXG5leHBvcnQgY29uc3QgU1RPUkFHRV9BQ0NPVU5UX1ZFUlNJT05fMjAyNF8wMV8wMTogVmVyc2lvbkNvbmZpZyA9IHtcbiAgdmVyc2lvbjogXCIyMDI0LTAxLTAxXCIsXG4gIHNjaGVtYTogU1RPUkFHRV9BQ0NPVU5UX1NDSEVNQV8yMDI0XzAxXzAxLFxuICBzdXBwb3J0TGV2ZWw6IFZlcnNpb25TdXBwb3J0TGV2ZWwuQUNUSVZFLFxuICByZWxlYXNlRGF0ZTogXCIyMDI0LTAxLTAxXCIsXG4gIGRlcHJlY2F0aW9uRGF0ZTogdW5kZWZpbmVkLFxuICBzdW5zZXREYXRlOiB1bmRlZmluZWQsXG4gIGJyZWFraW5nQ2hhbmdlczogW10sXG4gIG1pZ3JhdGlvbkd1aWRlOiBcIi9kb2NzL3N0b3JhZ2UtYWNjb3VudC9taWdyYXRpb24tMjAyNC0wMS0wMVwiLFxuICBjaGFuZ2VMb2c6IFtcbiAgICB7XG4gICAgICBjaGFuZ2VUeXBlOiBcInVwZGF0ZWRcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkxhdGVzdCBBUEkgdmVyc2lvbiB3aXRoIGltcHJvdmVkIHBlcmZvcm1hbmNlIGFuZCBmZWF0dXJlc1wiLFxuICAgICAgYnJlYWtpbmc6IGZhbHNlLFxuICAgIH0sXG4gIF0sXG59O1xuXG4vKipcbiAqIEFsbCBzdXBwb3J0ZWQgU3RvcmFnZSBBY2NvdW50IHZlcnNpb25zIGZvciByZWdpc3RyYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IEFMTF9TVE9SQUdFX0FDQ09VTlRfVkVSU0lPTlM6IFZlcnNpb25Db25maWdbXSA9IFtcbiAgU1RPUkFHRV9BQ0NPVU5UX1ZFUlNJT05fMjAyM18wMV8wMSxcbiAgU1RPUkFHRV9BQ0NPVU5UX1ZFUlNJT05fMjAyM18wNV8wMSxcbiAgU1RPUkFHRV9BQ0NPVU5UX1ZFUlNJT05fMjAyNF8wMV8wMSxcbl07XG5cbi8qKlxuICogUmVzb3VyY2UgdHlwZSBjb25zdGFudFxuICovXG5leHBvcnQgY29uc3QgU1RPUkFHRV9BQ0NPVU5UX1RZUEUgPSBcIk1pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50c1wiO1xuIl19
378
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS1hY2NvdW50LXNjaGVtYXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXp1cmUtc3RvcmFnZWFjY291bnQvbGliL3N0b3JhZ2UtYWNjb3VudC1zY2hlbWFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7OztBQUVILDJHQU80RTtBQUU1RSxnRkFBZ0Y7QUFDaEYsOEJBQThCO0FBQzlCLGdGQUFnRjtBQUVoRjs7R0FFRztBQUNILE1BQU0saUJBQWlCLEdBQTBDO0lBQy9ELFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLElBQUk7UUFDZCxXQUFXLEVBQUUsNERBQTREO1FBQ3pFLFVBQVUsRUFBRTtZQUNWO2dCQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxRQUFRO2dCQUNyQyxPQUFPLEVBQUUsMkNBQTJDO2FBQ3JEO1lBQ0Q7Z0JBQ0UsUUFBUSxFQUFFLHVDQUFrQixDQUFDLGFBQWE7Z0JBQzFDLEtBQUssRUFBRSxhQUFhO2dCQUNwQixPQUFPLEVBQUUsMERBQTBEO2FBQ3BFO1NBQ0Y7S0FDRjtJQUNELElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLEtBQUs7UUFDZixZQUFZLEVBQUUsRUFBRTtRQUNoQixXQUFXLEVBQUUsc0RBQXNEO1FBQ25FLFVBQVUsRUFBRTtZQUNWO2dCQUNFLFFBQVEsRUFBRSx1Q0FBa0IsQ0FBQyxVQUFVO2dCQUN2QyxLQUFLLEVBQUUsaUNBQVksQ0FBQyxNQUFNO2dCQUMxQixPQUFPLEVBQUUsb0RBQW9EO2FBQzlEO1NBQ0Y7S0FDRjtJQUNELElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSxpQ0FBWSxDQUFDLE1BQU07UUFDN0IsUUFBUSxFQUFFLElBQUk7UUFDZCxXQUFXLEVBQ1QsdUVBQXVFO1FBQ3pFLFVBQVUsRUFBRTtZQUNWO2dCQUNFLFFB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LFFBQVEsRUFBRSxLQUFLO1NBQ2hCO0tBQ0Y7Q0FDRixDQUFDO0FBRUY7O0dBRUc7QUFDVSxRQUFBLGtDQUFrQyxHQUFrQjtJQUMvRCxPQUFPLEVBQUUsWUFBWTtJQUNyQixNQUFNLEVBQUUseUNBQWlDO0lBQ3pDLFlBQVksRUFBRSx3Q0FBbUIsQ0FBQyxNQUFNO0lBQ3hDLFdBQVcsRUFBRSxZQUFZO0lBQ3pCLGVBQWUsRUFBRSxTQUFTO0lBQzFCLFVBQVUsRUFBRSxTQUFTO0lBQ3JCLGVBQWUsRUFBRSxFQUFFO0lBQ25CLGNBQWMsRUFBRSw0Q0FBNEM7SUFDNUQsU0FBUyxFQUFFO1FBQ1Q7WUFDRSxVQUFVLEVBQUUsU0FBUztZQUNyQixXQUFXLEVBQUUsMkRBQTJEO1lBQ3hFLFFBQVEsRUFBRSxLQUFLO1NBQ2hCO0tBQ0Y7Q0FDRixDQUFDO0FBRUY7O0dBRUc7QUFDVSxRQUFBLDRCQUE0QixHQUFvQjtJQUMzRCwwQ0FBa0M7SUFDbEMsMENBQWtDO0lBQ2xDLDBDQUFrQztDQUNuQyxDQUFDO0FBRUY7O0dBRUc7QUFDVSxRQUFBLG9CQUFvQixHQUFHLG1DQUFtQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBUEkgc2NoZW1hcyBmb3IgQXp1cmUgU3RvcmFnZSBBY2NvdW50IGFjcm9zcyBhbGwgc3VwcG9ydGVkIHZlcnNpb25zXG4gKlxuICogVGhpcyBmaWxlIGRlZmluZXMgdGhlIGNvbXBsZXRlIEFQSSBzY2hlbWFzIGZvciBNaWNyb3NvZnQuU3RvcmFnZS9zdG9yYWdlQWNjb3VudHNcbiAqIGFjcm9zcyBhbGwgc3VwcG9ydGVkIEFQSSB2ZXJzaW9ucy4gVGhlIHNjaGVtYXMgYXJlIHVzZWQgYnkgdGhlIFZlcnNpb25lZEF6YXBpUmVzb3VyY2VcbiAqIGZyYW1ld29yayBmb3IgdmFsaWRhdGlvbiwgdHJhbnNmb3JtYXRpb24sIGFuZCB2ZXJzaW9uIG1hbmFnZW1lbnQuXG4gKi9cblxuaW1wb3J0IHtcbiAgQXBpU2NoZW1hLFxuICBQcm9wZXJ0eURlZmluaXRpb24sXG4gIFByb3BlcnR5VHlwZSxcbiAgVmFsaWRhdGlvblJ1bGVUeXBlLFxuICBWZXJzaW9uQ29uZmlnLFxuICBWZXJzaW9uU3VwcG9ydExldmVsLFxufSBmcm9tIFwiLi4vLi4vY29yZS1henVyZS9saWIvdmVyc2lvbi1tYW5hZ2VyL2ludGVyZmFjZXMvdmVyc2lvbi1pbnRlcmZhY2VzXCI7XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBDT01NT04gUFJPUEVSVFkgREVGSU5JVElPTlNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQ29tbW9uIHByb3BlcnR5IGRlZmluaXRpb25zIHNoYXJlZCBhY3Jvc3MgYWxsIFN0b3JhZ2UgQWNjb3VudCB2ZXJzaW9uc1xuICovXG5jb25zdCBDT01NT05fUFJPUEVSVElFUzogeyBba2V5OiBzdHJpbmddOiBQcm9wZXJ0eURlZmluaXRpb24gfSA9IHtcbiAgbG9jYXRpb246IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLlNUUklORyxcbiAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICBkZXNjcmlwdGlvbjogXCJUaGUgQXp1cmUgcmVnaW9uIHdoZXJlIHRoZSBTdG9yYWdlIEFjY291bnQgd2lsbCBiZSBjcmVhdGVkXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICBtZXNzYWdlOiBcIkxvY2F0aW9uIGlzIHJlcXVpcmVkIGZvciBTdG9yYWdlIEFjY291bnRzXCIsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlBBVFRFUk5fTUFUQ0gsXG4gICAgICAgIHZhbHVlOiBcIl5bYS16MC05XSskXCIsXG4gICAgICAgIG1lc3NhZ2U6IFwiTG9jYXRpb24gbXVzdCBjb250YWluIG9ubHkgbG93ZXJjYXNlIGxldHRlcnMgYW5kIG51bWJlcnNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgdGFnczoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuT0JKRUNULFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZWZhdWx0VmFsdWU6IHt9LFxuICAgIGRlc2NyaXB0aW9uOiBcIkEgZGljdGlvbmFyeSBvZiB0YWdzIHRvIGFwcGx5IHRvIHRoZSBTdG9yYWdlIEFjY291bnRcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuVFlQRV9DSEVDSyxcbiAgICAgICAgdmFsdWU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgICAgIG1lc3NhZ2U6IFwiVGFncyBtdXN0IGJlIGFuIG9iamVjdCB3aXRoIHN0cmluZyBrZXktdmFsdWUgcGFpcnNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgbmFtZToge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgXCJUaGUgbmFtZSBvZiB0aGUgU3RvcmFnZSBBY2NvdW50LiBNdXN0IGJlIGdsb2JhbGx5IHVuaXF1ZSBhY3Jvc3MgQXp1cmVcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgIG1lc3NhZ2U6IFwiU3RvcmFnZSBBY2NvdW50IG5hbWUgaXMgcmVxdWlyZWRcIixcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUEFUVEVSTl9NQVRDSCxcbiAgICAgICAgdmFsdWU6IFwiXlthLXowLTldezMsMjR9JFwiLFxuICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgIFwiU3RvcmFnZSBBY2NvdW50IG5hbWUgbXVzdCBiZSAzLTI0IGxvd2VyY2FzZSBsZXR0ZXJzIGFuZCBudW1iZXJzIG9ubHlcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAgc2t1OiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5PQkpFQ1QsXG4gICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIFNLVSAocHJpY2luZyB0aWVyKSBmb3IgdGhlIFN0b3JhZ2UgQWNjb3VudFwiLFxuICAgIHZhbGlkYXRpb246IFtcbiAgICAgIHtcbiAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgbWVzc2FnZTogXCJTS1UgaXMgcmVxdWlyZWQgZm9yIFN0b3JhZ2UgQWNjb3VudHNcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAga2luZDoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgIGRlZmF1bHRWYWx1ZTogXCJTdG9yYWdlVjJcIixcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgIFwiVGhlIGtpbmQgb2YgU3RvcmFnZSBBY2NvdW50IChTdG9yYWdlVjIsIEJsb2JTdG9yYWdlLCBCbG9ja0Jsb2JTdG9yYWdlLCBGaWxlU3RvcmFnZSlcIixcbiAgICB2YWxpZGF0aW9uOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgIG1lc3NhZ2U6IFwiS2luZCBpcyByZXF1aXJlZCBmb3IgU3RvcmFnZSBBY2NvdW50c1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBhY2Nlc3NUaWVyOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5TVFJJTkcsXG4gICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgIGRlZmF1bHRWYWx1ZTogXCJIb3RcIixcbiAgICBkZXNjcmlwdGlvbjogXCJUaGUgYWNjZXNzIHRpZXIgZm9yIGJsb2Igc3RvcmFnZSAoSG90IG9yIENvb2wpXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlBBVFRFUk5fTUFUQ0gsXG4gICAgICAgIHZhbHVlOiBcIl4oSG90fENvb2wpJFwiLFxuICAgICAgICBtZXNzYWdlOiBcIkFjY2VzcyB0aWVyIG11c3QgYmUgZWl0aGVyICdIb3QnIG9yICdDb29sJ1wiLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICBlbmFibGVIdHRwc1RyYWZmaWNPbmx5OiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5CT09MRUFOLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgZGVzY3JpcHRpb246IFwiV2hldGhlciB0byBhbGxvdyBvbmx5IEhUVFBTIHRyYWZmaWMgdG8gdGhlIHN0b3JhZ2UgYWNjb3VudFwiLFxuICB9LFxuICBtaW5pbXVtVGxzVmVyc2lvbjoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuU1RSSU5HLFxuICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICBkZWZhdWx0VmFsdWU6IFwiVExTMV8yXCIsXG4gICAgZGVzY3JpcHRpb246IFwiVGhlIG1pbmltdW0gVExTIHZlcnNpb24gcmVxdWlyZWQgZm9yIHJlcXVlc3RzXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlBBVFRFUk5fTUFUQ0gsXG4gICAgICAgIHZhbHVlOiBcIl4oVExTMV8wfFRMUzFfMXxUTFMxXzIpJFwiLFxuICAgICAgICBtZXNzYWdlOiBcIk1pbmltdW0gVExTIHZlcnNpb24gbXVzdCBiZSBUTFMxXzAsIFRMUzFfMSwgb3IgVExTMV8yXCIsXG4gICAgICB9LFxuICAgIF0sXG4gIH0sXG4gIGFsbG93QmxvYlB1YmxpY0FjY2Vzczoge1xuICAgIGRhdGFUeXBlOiBQcm9wZXJ0eVR5cGUuQk9PTEVBTixcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICBkZXNjcmlwdGlvbjogXCJXaGV0aGVyIHRvIGFsbG93IHB1YmxpYyBhY2Nlc3MgdG8gYmxvYnNcIixcbiAgfSxcbiAgbmV0d29ya0FjbHM6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiTmV0d29yayBBQ0wgcnVsZXMgZm9yIHRoZSBzdG9yYWdlIGFjY291bnRcIixcbiAgfSxcbiAgaWRlbnRpdHk6IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiTWFuYWdlZCBpZGVudGl0eSBjb25maWd1cmF0aW9uIGZvciB0aGUgc3RvcmFnZSBhY2NvdW50XCIsXG4gIH0sXG4gIGVuY3J5cHRpb246IHtcbiAgICBkYXRhVHlwZTogUHJvcGVydHlUeXBlLk9CSkVDVCxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiRW5jcnlwdGlvbiBzZXR0aW5ncyBmb3IgdGhlIHN0b3JhZ2UgYWNjb3VudFwiLFxuICB9LFxuICBpZ25vcmVDaGFuZ2VzOiB7XG4gICAgZGF0YVR5cGU6IFByb3BlcnR5VHlwZS5BUlJBWSxcbiAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgZGVzY3JpcHRpb246IFwiQXJyYXkgb2YgcHJvcGVydHkgbmFtZXMgdG8gaWdub3JlIGR1cmluZyB1cGRhdGVzXCIsXG4gICAgdmFsaWRhdGlvbjogW1xuICAgICAge1xuICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlRZUEVfQ0hFQ0ssXG4gICAgICAgIHZhbHVlOiBQcm9wZXJ0eVR5cGUuQVJSQVksXG4gICAgICAgIG1lc3NhZ2U6IFwiSWdub3JlQ2hhbmdlcyBtdXN0IGJlIGFuIGFycmF5IG9mIHN0cmluZ3NcIixcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBWRVJTSU9OLVNQRUNJRklDIFNDSEVNQVNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8qKlxuICogQVBJIFNjaGVtYSBmb3IgU3RvcmFnZSBBY2NvdW50IHZlcnNpb24gMjAyMy0wMS0wMVxuICovXG5leHBvcnQgY29uc3QgU1RPUkFHRV9BQ0NPVU5UX1NDSEVNQV8yMDIzXzAxXzAxOiBBcGlTY2hlbWEgPSB7XG4gIHJlc291cmNlVHlwZTogXCJNaWNyb3NvZnQuU3RvcmFnZS9zdG9yYWdlQWNjb3VudHNcIixcbiAgdmVyc2lvbjogXCIyMDIzLTAxLTAxXCIsXG4gIHByb3BlcnRpZXM6IHtcbiAgICAuLi5DT01NT05fUFJPUEVSVElFUyxcbiAgfSxcbiAgcmVxdWlyZWQ6IFtcImxvY2F0aW9uXCIsIFwibmFtZVwiLCBcInNrdVwiLCBcImtpbmRcIl0sXG4gIG9wdGlvbmFsOiBbXG4gICAgXCJ0YWdzXCIsXG4gICAgXCJhY2Nlc3NUaWVyXCIsXG4gICAgXCJlbmFibGVIdHRwc1RyYWZmaWNPbmx5XCIsXG4gICAgXCJtaW5pbXVtVGxzVmVyc2lvblwiLFxuICAgIFwiYWxsb3dCbG9iUHVibGljQWNjZXNzXCIsXG4gICAgXCJuZXR3b3JrQWNsc1wiLFxuICAgIFwiaWRlbnRpdHlcIixcbiAgICBcImVuY3J5cHRpb25cIixcbiAgICBcImlnbm9yZUNoYW5nZXNcIixcbiAgXSxcbiAgZGVwcmVjYXRlZDogW10sXG4gIHRyYW5zZm9ybWF0aW9uUnVsZXM6IHt9LFxuICB2YWxpZGF0aW9uUnVsZXM6IFtcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJsb2NhdGlvblwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJMb2NhdGlvbiBpcyByZXF1aXJlZCBmb3IgU3RvcmFnZSBBY2NvdW50c1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3BlcnR5OiBcIm5hbWVcIixcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICAgIG1lc3NhZ2U6IFwiTmFtZSBpcyByZXF1aXJlZCBmb3IgU3RvcmFnZSBBY2NvdW50c1wiLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9LFxuICBdLFxufTtcblxuLyoqXG4gKiBBUEkgU2NoZW1hIGZvciBTdG9yYWdlIEFjY291bnQgdmVyc2lvbiAyMDIzLTA1LTAxXG4gKi9cbmV4cG9ydCBjb25zdCBTVE9SQUdFX0FDQ09VTlRfU0NIRU1BXzIwMjNfMDVfMDE6IEFwaVNjaGVtYSA9IHtcbiAgcmVzb3VyY2VUeXBlOiBcIk1pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50c1wiLFxuICB2ZXJzaW9uOiBcIjIwMjMtMDUtMDFcIixcbiAgcHJvcGVydGllczoge1xuICAgIC4uLkNPTU1PTl9QUk9QRVJUSUVTLFxuICB9LFxuICByZXF1aXJlZDogW1wibG9jYXRpb25cIiwgXCJuYW1lXCIsIFwic2t1XCIsIFwia2luZFwiXSxcbiAgb3B0aW9uYWw6IFtcbiAgICBcInRhZ3NcIixcbiAgICBcImFjY2Vzc1RpZXJcIixcbiAgICBcImVuYWJsZUh0dHBzVHJhZmZpY09ubHlcIixcbiAgICBcIm1pbmltdW1UbHNWZXJzaW9uXCIsXG4gICAgXCJhbGxvd0Jsb2JQdWJsaWNBY2Nlc3NcIixcbiAgICBcIm5ldHdvcmtBY2xzXCIsXG4gICAgXCJpZGVudGl0eVwiLFxuICAgIFwiZW5jcnlwdGlvblwiLFxuICAgIFwiaWdub3JlQ2hhbmdlc1wiLFxuICBdLFxuICBkZXByZWNhdGVkOiBbXSxcbiAgdHJhbnNmb3JtYXRpb25SdWxlczoge30sXG4gIHZhbGlkYXRpb25SdWxlczogW1xuICAgIHtcbiAgICAgIHByb3BlcnR5OiBcImxvY2F0aW9uXCIsXG4gICAgICBydWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgICBtZXNzYWdlOiBcIkxvY2F0aW9uIGlzIHJlcXVpcmVkIGZvciBTdG9yYWdlIEFjY291bnRzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwibmFtZVwiLFxuICAgICAgcnVsZXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHJ1bGVUeXBlOiBWYWxpZGF0aW9uUnVsZVR5cGUuUkVRVUlSRUQsXG4gICAgICAgICAgbWVzc2FnZTogXCJOYW1lIGlzIHJlcXVpcmVkIGZvciBTdG9yYWdlIEFjY291bnRzXCIsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0sXG4gIF0sXG59O1xuXG4vKipcbiAqIEFQSSBTY2hlbWEgZm9yIFN0b3JhZ2UgQWNjb3VudCB2ZXJzaW9uIDIwMjQtMDEtMDFcbiAqL1xuZXhwb3J0IGNvbnN0IFNUT1JBR0VfQUNDT1VOVF9TQ0hFTUFfMjAyNF8wMV8wMTogQXBpU2NoZW1hID0ge1xuICByZXNvdXJjZVR5cGU6IFwiTWljcm9zb2Z0LlN0b3JhZ2Uvc3RvcmFnZUFjY291bnRzXCIsXG4gIHZlcnNpb246IFwiMjAyNC0wMS0wMVwiLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgLi4uQ09NTU9OX1BST1BFUlRJRVMsXG4gIH0sXG4gIHJlcXVpcmVkOiBbXCJsb2NhdGlvblwiLCBcIm5hbWVcIiwgXCJza3VcIiwgXCJraW5kXCJdLFxuICBvcHRpb25hbDogW1xuICAgIFwidGFnc1wiLFxuICAgIFwiYWNjZXNzVGllclwiLFxuICAgIFwiZW5hYmxlSHR0cHNUcmFmZmljT25seVwiLFxuICAgIFwibWluaW11bVRsc1ZlcnNpb25cIixcbiAgICBcImFsbG93QmxvYlB1YmxpY0FjY2Vzc1wiLFxuICAgIFwibmV0d29ya0FjbHNcIixcbiAgICBcImlkZW50aXR5XCIsXG4gICAgXCJlbmNyeXB0aW9uXCIsXG4gICAgXCJpZ25vcmVDaGFuZ2VzXCIsXG4gIF0sXG4gIGRlcHJlY2F0ZWQ6IFtdLFxuICB0cmFuc2Zvcm1hdGlvblJ1bGVzOiB7fSxcbiAgdmFsaWRhdGlvblJ1bGVzOiBbXG4gICAge1xuICAgICAgcHJvcGVydHk6IFwibG9jYXRpb25cIixcbiAgICAgIHJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBydWxlVHlwZTogVmFsaWRhdGlvblJ1bGVUeXBlLlJFUVVJUkVELFxuICAgICAgICAgIG1lc3NhZ2U6IFwiTG9jYXRpb24gaXMgcmVxdWlyZWQgZm9yIFN0b3JhZ2UgQWNjb3VudHNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm9wZXJ0eTogXCJuYW1lXCIsXG4gICAgICBydWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgcnVsZVR5cGU6IFZhbGlkYXRpb25SdWxlVHlwZS5SRVFVSVJFRCxcbiAgICAgICAgICBtZXNzYWdlOiBcIk5hbWUgaXMgcmVxdWlyZWQgZm9yIFN0b3JhZ2UgQWNjb3VudHNcIixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSxcbiAgXSxcbn07XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBWRVJTSU9OIENPTkZJR1VSQVRJT05TXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIFZlcnNpb24gY29uZmlndXJhdGlvbiBmb3IgU3RvcmFnZSBBY2NvdW50IDIwMjMtMDEtMDFcbiAqL1xuZXhwb3J0IGNvbnN0IFNUT1JBR0VfQUNDT1VOVF9WRVJTSU9OXzIwMjNfMDFfMDE6IFZlcnNpb25Db25maWcgPSB7XG4gIHZlcnNpb246IFwiMjAyMy0wMS0wMVwiLFxuICBzY2hlbWE6IFNUT1JBR0VfQUNDT1VOVF9TQ0hFTUFfMjAyM18wMV8wMSxcbiAgc3VwcG9ydExldmVsOiBWZXJzaW9uU3VwcG9ydExldmVsLlNVTlNFVCxcbiAgcmVsZWFzZURhdGU6IFwiMjAyMy0wMS0wMVwiLFxuICBkZXByZWNhdGlvbkRhdGU6IFwiMjAyMy0wNy0wMVwiLFxuICBzdW5zZXREYXRlOiBcIjIwMjQtMDctMDFcIixcbiAgYnJlYWtpbmdDaGFuZ2VzOiBbXSxcbiAgbWlncmF0aW9uR3VpZGU6IFwiL2RvY3Mvc3RvcmFnZS1hY2NvdW50L21pZ3JhdGlvbi0yMDIzLTAxLTAxXCIsXG4gIGNoYW5nZUxvZzogW1xuICAgIHtcbiAgICAgIGNoYW5nZVR5cGU6IFwic3Vuc2V0XCIsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJUaGlzIHZlcnNpb24gaGFzIHJlYWNoZWQgc3Vuc2V0LiBJbW1lZGlhdGUgbWlncmF0aW9uIHRvIDIwMjQtMDEtMDEgaXMgcmVxdWlyZWQuXCIsXG4gICAgICBicmVha2luZzogZmFsc2UsXG4gICAgfSxcbiAgICB7XG4gICAgICBjaGFuZ2VUeXBlOiBcImRlcHJlY2F0ZWRcIixcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIlRoaXMgdmVyc2lvbiB3YXMgZGVwcmVjYXRlZC4gUGxlYXNlIG1pZ3JhdGUgdG8gMjAyNC0wMS0wMSBvciBsYXRlci5cIixcbiAgICAgIGJyZWFraW5nOiBmYWxzZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGNoYW5nZVR5cGU6IFwiYWRkZWRcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIlN0YWJsZSByZWxlYXNlIG9mIFN0b3JhZ2UgQWNjb3VudCBBUElcIixcbiAgICAgIGJyZWFraW5nOiBmYWxzZSxcbiAgICB9LFxuICBdLFxufTtcblxuLyoqXG4gKiBWZXJzaW9uIGNvbmZpZ3VyYXRpb24gZm9yIFN0b3JhZ2UgQWNjb3VudCAyMDIzLTA1LTAxXG4gKi9cbmV4cG9ydCBjb25zdCBTVE9SQUdFX0FDQ09VTlRfVkVSU0lPTl8yMDIzXzA1XzAxOiBWZXJzaW9uQ29uZmlnID0ge1xuICB2ZXJzaW9uOiBcIjIwMjMtMDUtMDFcIixcbiAgc2NoZW1hOiBTVE9SQUdFX0FDQ09VTlRfU0NIRU1BXzIwMjNfMDVfMDEsXG4gIHN1cHBvcnRMZXZlbDogVmVyc2lvblN1cHBvcnRMZXZlbC5ERVBSRUNBVEVELFxuICByZWxlYXNlRGF0ZTogXCIyMDIzLTA1LTAxXCIsXG4gIGRlcHJlY2F0aW9uRGF0ZTogXCIyMDI0LTA1LTAxXCIsXG4gIHN1bnNldERhdGU6IFwiMjAyNS0wNS0wMVwiLFxuICBicmVha2luZ0NoYW5nZXM6IFtdLFxuICBtaWdyYXRpb25HdWlkZTogXCIvZG9jcy9zdG9yYWdlLWFjY291bnQvbWlncmF0aW9uLTIwMjMtMDUtMDFcIixcbiAgY2hhbmdlTG9nOiBbXG4gICAge1xuICAgICAgY2hhbmdlVHlwZTogXCJkZXByZWNhdGVkXCIsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgXCJUaGlzIHZlcnNpb24gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIG1pZ3JhdGUgdG8gMjAyNC0wMS0wMSBmb3IgY29udGludWVkIHN1cHBvcnQuXCIsXG4gICAgICBicmVha2luZzogZmFsc2UsXG4gICAgfSxcbiAgICB7XG4gICAgICBjaGFuZ2VUeXBlOiBcInVwZGF0ZWRcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkVuaGFuY2VkIHNlY3VyaXR5IGFuZCBlbmNyeXB0aW9uIGZlYXR1cmVzXCIsXG4gICAgICBicmVha2luZzogZmFsc2UsXG4gICAgfSxcbiAgXSxcbn07XG5cbi8qKlxuICogVmVyc2lvbiBjb25maWd1cmF0aW9uIGZvciBTdG9yYWdlIEFjY291bnQgMjAyNC0wMS0wMVxuICovXG5leHBvcnQgY29uc3QgU1RPUkFHRV9BQ0NPVU5UX1ZFUlNJT05fMjAyNF8wMV8wMTogVmVyc2lvbkNvbmZpZyA9IHtcbiAgdmVyc2lvbjogXCIyMDI0LTAxLTAxXCIsXG4gIHNjaGVtYTogU1RPUkFHRV9BQ0NPVU5UX1NDSEVNQV8yMDI0XzAxXzAxLFxuICBzdXBwb3J0TGV2ZWw6IFZlcnNpb25TdXBwb3J0TGV2ZWwuQUNUSVZFLFxuICByZWxlYXNlRGF0ZTogXCIyMDI0LTAxLTAxXCIsXG4gIGRlcHJlY2F0aW9uRGF0ZTogdW5kZWZpbmVkLFxuICBzdW5zZXREYXRlOiB1bmRlZmluZWQsXG4gIGJyZWFraW5nQ2hhbmdlczogW10sXG4gIG1pZ3JhdGlvbkd1aWRlOiBcIi9kb2NzL3N0b3JhZ2UtYWNjb3VudC9taWdyYXRpb24tMjAyNC0wMS0wMVwiLFxuICBjaGFuZ2VMb2c6IFtcbiAgICB7XG4gICAgICBjaGFuZ2VUeXBlOiBcInVwZGF0ZWRcIixcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkxhdGVzdCBBUEkgdmVyc2lvbiB3aXRoIGltcHJvdmVkIHBlcmZvcm1hbmNlIGFuZCBmZWF0dXJlc1wiLFxuICAgICAgYnJlYWtpbmc6IGZhbHNlLFxuICAgIH0sXG4gIF0sXG59O1xuXG4vKipcbiAqIEFsbCBzdXBwb3J0ZWQgU3RvcmFnZSBBY2NvdW50IHZlcnNpb25zIGZvciByZWdpc3RyYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IEFMTF9TVE9SQUdFX0FDQ09VTlRfVkVSU0lPTlM6IFZlcnNpb25Db25maWdbXSA9IFtcbiAgU1RPUkFHRV9BQ0NPVU5UX1ZFUlNJT05fMjAyM18wMV8wMSxcbiAgU1RPUkFHRV9BQ0NPVU5UX1ZFUlNJT05fMjAyM18wNV8wMSxcbiAgU1RPUkFHRV9BQ0NPVU5UX1ZFUlNJT05fMjAyNF8wMV8wMSxcbl07XG5cbi8qKlxuICogUmVzb3VyY2UgdHlwZSBjb25zdGFudFxuICovXG5leHBvcnQgY29uc3QgU1RPUkFHRV9BQ0NPVU5UX1RZUEUgPSBcIk1pY3Jvc29mdC5TdG9yYWdlL3N0b3JhZ2VBY2NvdW50c1wiO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgU3RvcmFnZSBBY2NvdW50IG1vbml0b3JpbmdcbiAqXG4gKiBUaGlzIGludGVyZmFjZSBkZWZpbmVzIHRoZSBjb25maWd1cmFibGUgb3B0aW9ucyBmb3Igc2V0dGluZyB1cCBtb25pdG9yaW5nIGFsZXJ0c1xuICogYW5kIGRpYWdub3N0aWMgc2V0dGluZ3MgZm9yIEF6dXJlIFN0b3JhZ2UgQWNjb3VudHMuIEFsbCBwcm9wZXJ0aWVzIGFyZSBvcHRpb25hbFxuICogYW5kIGhhdmUgc2Vuc2libGUgZGVmYXVsdHMgZm9yIHByb2R1Y3Rpb24gdXNlLlxuICpcbiAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RvcmFnZUFjY291bnRNb25pdG9yaW5nT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaHJlc2hvbGQgZm9yIHN0b3JhZ2UgYWNjb3VudCBhdmFpbGFiaWxpdHkgcGVyY2VudGFnZVxuICAgKlxuICAgKiBBbGVydCB0cmlnZ2VycyB3aGVuIGF2YWlsYWJpbGl0eSBkcm9wcyBiZWxvdyB0aGlzIHRocmVzaG9sZFxuICAgKlxuICAgKiBAZGVmYXVsdCA5OS45IC0gVHJpZ2dlcnMgYWxlcnQgd2hlbiBhdmFpbGFiaWxpdHkgaXMgYmVsb3cgOTkuOSVcbiAgICovXG4gIHJlYWRvbmx5IGF2YWlsYWJpbGl0eVRocmVzaG9sZD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhyZXNob2xkIGZvciBzdG9yYWdlIGFjY291bnQgZWdyZXNzIGluIGJ5dGVzXG4gICAqXG4gICAqIEFsZXJ0IHRyaWdnZXJzIHdoZW4gZWdyZXNzIGV4Y2VlZHMgdGhpcyB0aHJlc2hvbGRcbiAgICpcbiAgICogQGRlZmF1bHQgMTA3Mzc0MTgyNDAgLSBUcmlnZ2VycyBhbGVydCB3aGVuIGVncmVzcyBleGNlZWRzIDEwR0JcbiAgICovXG4gIHJlYWRvbmx5IGVncmVzc1RocmVzaG9sZD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhyZXNob2xkIGZvciBzdG9yYWdlIGFjY291bnQgdHJhbnNhY3Rpb25zIGNvdW50XG4gICAqXG4gICAqIEFsZXJ0IHRyaWdnZXJzIHdoZW4gdHJhbnNhY3Rpb24gY291bnQgZXhjZWVkcyB0aGlzIHRocmVzaG9sZFxuICAgKlxuICAgKiBAZGVmYXVsdCAxMDAwMDAgLSBUcmlnZ2VycyBhbGVydCB3aGVuIHRyYW5zYWN0aW9ucyBleGNlZWQgMTAwa1xuICAgKi9cbiAgcmVhZG9ubHkgdHJhbnNhY3Rpb25zVGhyZXNob2xkPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBhdmFpbGFiaWxpdHkgbW9uaXRvcmluZyBhbGVydFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlIC0gQXZhaWxhYmlsaXR5IGFsZXJ0IGlzIGVuYWJsZWQgYnkgZGVmYXVsdFxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlQXZhaWxhYmlsaXR5QWxlcnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBlZ3Jlc3MgbW9uaXRvcmluZyBhbGVydFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlIC0gRWdyZXNzIGFsZXJ0IGlzIGVuYWJsZWQgYnkgZGVmYXVsdFxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlRWdyZXNzQWxlcnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSB0cmFuc2FjdGlvbnMgbW9uaXRvcmluZyBhbGVydFxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlIC0gVHJhbnNhY3Rpb25zIGFsZXJ0IGlzIGVuYWJsZWQgYnkgZGVmYXVsdFxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlVHJhbnNhY3Rpb25zQWxlcnQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBkZWxldGlvbiBhY3Rpdml0eSBsb2cgYWxlcnRcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZSAtIERlbGV0aW9uIGFsZXJ0IGlzIGVuYWJsZWQgYnkgZGVmYXVsdFxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlRGVsZXRpb25BbGVydD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNldmVyaXR5IGxldmVsIGZvciBhdmFpbGFiaWxpdHkgYWxlcnRzXG4gICAqXG4gICAqIFNldmVyaXR5IGxldmVsczpcbiAgICogLSAwOiBDcml0aWNhbFxuICAgKiAtIDE6IEVycm9yXG4gICAqIC0gMjogV2FybmluZ1xuICAgKiAtIDM6IEluZm9ybWF0aW9uYWxcbiAgICogLSA0OiBWZXJib3NlXG4gICAqXG4gICAqIEBkZWZhdWx0IDEgLSBFcnJvciBzZXZlcml0eSBmb3IgYXZhaWxhYmlsaXR5IGlzc3Vlc1xuICAgKi9cbiAgcmVhZG9ubHkgYXZhaWxhYmlsaXR5QWxlcnRTZXZlcml0eT86IDAgfCAxIHwgMiB8IDMgfCA0O1xuXG4gIC8qKlxuICAgKiBTZXZlcml0eSBsZXZlbCBmb3IgZWdyZXNzIGFsZXJ0c1xuICAgKlxuICAgKiBTZXZlcml0eSBsZXZlbHM6XG4gICAqIC0gMDogQ3JpdGljYWxcbiAgICogLSAxOiBFcnJvclxuICAgKiAtIDI6IFdhcm5pbmdcbiAgICogLSAzOiBJbmZvcm1hdGlvbmFsXG4gICAqIC0gNDogVmVyYm9zZVxuICAgKlxuICAgKiBAZGVmYXVsdCAyIC0gV2FybmluZyBzZXZlcml0eSBmb3IgaGlnaCBlZ3Jlc3NcbiAgICovXG4gIHJlYWRvbmx5IGVncmVzc0FsZXJ0U2V2ZXJpdHk/OiAwIHwgMSB8IDIgfCAzIHwgNDtcblxuICAvKipcbiAgICogU2V2ZXJpdHkgbGV2ZWwgZm9yIHRyYW5zYWN0aW9ucyBhbGVydHNcbiAgICpcbiAgICogU2V2ZXJpdHkgbGV2ZWxzOlxuICAgKiAtIDA6IENyaXRpY2FsXG4gICAqIC0gMTogRXJyb3JcbiAgICogLSAyOiBXYXJuaW5nXG4gICAqIC0gMzogSW5mb3JtYXRpb25hbFxuICAgKiAtIDQ6IFZlcmJvc2VcbiAgICpcbiAgICogQGRlZmF1bHQgMiAtIFdhcm5pbmcgc2V2ZXJpdHkgZm9yIGhpZ2ggdHJhbnNhY3Rpb24gY291bnRcbiAgICovXG4gIHJlYWRvbmx5IHRyYW5zYWN0aW9uc0FsZXJ0U2V2ZXJpdHk/OiAwIHwgMSB8IDIgfCAzIHwgNDtcbn1cbiJdfQ==
@@ -19,7 +19,8 @@
19
19
  */
20
20
  import * as cdktf from "cdktf";
21
21
  import { Construct } from "constructs";
22
- import { AzapiResource, AzapiResourceProps } from "../../core-azure/lib/azapi/azapi-resource";
22
+ import { StorageAccountMonitoringOptions } from "./storage-account-schemas";
23
+ import { AzapiResource, AzapiResourceProps, MonitoringConfig } from "../../core-azure/lib/azapi/azapi-resource";
23
24
  import { ApiSchema } from "../../core-azure/lib/version-manager/interfaces/version-interfaces";
24
25
  /**
25
26
  * SKU configuration for Storage Account
@@ -241,6 +242,42 @@ export interface StorageAccountBody {
241
242
  * @stability stable
242
243
  */
243
244
  export declare class StorageAccount extends AzapiResource {
245
+ /**
246
+ * Returns a production-ready monitoring configuration for Storage Accounts
247
+ *
248
+ * This static factory method provides a complete MonitoringConfig with sensible defaults
249
+ * for storage account monitoring including availability, egress, transactions alerts, and deletion tracking.
250
+ *
251
+ * @param actionGroupId - The resource ID of the action group for alert notifications
252
+ * @param workspaceId - Optional Log Analytics workspace ID for diagnostic settings
253
+ * @param options - Optional configuration to customize thresholds and enable/disable specific alerts
254
+ * @returns A complete MonitoringConfig object ready to use in StorageAccount props
255
+ *
256
+ * @example
257
+ * // Basic usage with all defaults
258
+ * const storageAccount = new StorageAccount(this, "storage", {
259
+ * // ... other properties ...
260
+ * monitoring: StorageAccount.defaultMonitoring(actionGroup.id, workspace.id)
261
+ * });
262
+ *
263
+ * @example
264
+ * // Custom thresholds
265
+ * const storageAccount = new StorageAccount(this, "storage", {
266
+ * // ... other properties ...
267
+ * monitoring: StorageAccount.defaultMonitoring(
268
+ * actionGroup.id,
269
+ * workspace.id,
270
+ * {
271
+ * availabilityThreshold: 99.5,
272
+ * egressThreshold: 21474836480, // 20GB
273
+ * enableTransactionsAlert: false
274
+ * }
275
+ * )
276
+ * });
277
+ *
278
+ * @stability stable
279
+ */
280
+ static defaultMonitoring(actionGroupId: string, workspaceId?: string, options?: StorageAccountMonitoringOptions): MonitoringConfig;
244
281
  private static schemasRegistered;
245
282
  /**
246
283
  * Ensures that Storage Account schemas are registered with the ApiVersionManager