terraconstructs 0.0.16 → 0.0.18

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 (227) hide show
  1. package/.jsii +4809 -76
  2. package/lib/aws/arn.js +1 -1
  3. package/lib/aws/aws-construct.js +1 -1
  4. package/lib/aws/aws-stack.js +1 -1
  5. package/lib/aws/aws-tags.js +2 -2
  6. package/lib/aws/cloudwatch/actions/ec2.js +1 -1
  7. package/lib/aws/cloudwatch/actions/lambda.js +1 -1
  8. package/lib/aws/cloudwatch/alarm-base.js +1 -1
  9. package/lib/aws/cloudwatch/alarm-rule.js +1 -1
  10. package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
  11. package/lib/aws/cloudwatch/alarm.js +1 -1
  12. package/lib/aws/cloudwatch/composite-alarm.js +1 -1
  13. package/lib/aws/cloudwatch/dashboard.js +1 -1
  14. package/lib/aws/cloudwatch/data-protection-policy.js +3 -3
  15. package/lib/aws/cloudwatch/graph.js +8 -8
  16. package/lib/aws/cloudwatch/layout.js +3 -3
  17. package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
  18. package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
  19. package/lib/aws/cloudwatch/log-group.js +1 -1
  20. package/lib/aws/cloudwatch/log-query.js +1 -1
  21. package/lib/aws/cloudwatch/log-stream.js +1 -1
  22. package/lib/aws/cloudwatch/metric-filter.js +1 -1
  23. package/lib/aws/cloudwatch/metric.js +2 -2
  24. package/lib/aws/cloudwatch/pattern.js +3 -3
  25. package/lib/aws/cloudwatch/policy.js +1 -1
  26. package/lib/aws/cloudwatch/query-definition.js +2 -2
  27. package/lib/aws/cloudwatch/stats.js +1 -1
  28. package/lib/aws/cloudwatch/subscription-filter.js +1 -1
  29. package/lib/aws/cloudwatch/text.js +1 -1
  30. package/lib/aws/cloudwatch/variable.js +3 -3
  31. package/lib/aws/cloudwatch/widget.js +1 -1
  32. package/lib/aws/compute/activity.js +1 -1
  33. package/lib/aws/compute/alb/application-listener-action.js +1 -1
  34. package/lib/aws/compute/alb/application-listener-certificate.js +1 -1
  35. package/lib/aws/compute/alb/application-listener-rule.js +1 -1
  36. package/lib/aws/compute/alb/application-listener.js +1 -1
  37. package/lib/aws/compute/alb/application-load-balancer.js +1 -1
  38. package/lib/aws/compute/alb/application-target-group.js +1 -1
  39. package/lib/aws/compute/alb/conditions.js +1 -1
  40. package/lib/aws/compute/alb/trust-store-revocation.js +1 -1
  41. package/lib/aws/compute/alb/trust-store.js +1 -1
  42. package/lib/aws/compute/architecture.js +1 -1
  43. package/lib/aws/compute/aspects/require-imdsv2-aspect.js +2 -2
  44. package/lib/aws/compute/bastion-host.js +1 -1
  45. package/lib/aws/compute/chain.js +1 -1
  46. package/lib/aws/compute/client-vpn-authorization-rule.js +1 -1
  47. package/lib/aws/compute/client-vpn-endpoint.js +2 -2
  48. package/lib/aws/compute/client-vpn-route.js +2 -2
  49. package/lib/aws/compute/condition.js +1 -1
  50. package/lib/aws/compute/connections.js +1 -1
  51. package/lib/aws/compute/event-invoke-config.js +1 -1
  52. package/lib/aws/compute/event-source-filter.js +2 -2
  53. package/lib/aws/compute/event-source-mapping.js +1 -1
  54. package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
  55. package/lib/aws/compute/event-sources/s3.js +1 -1
  56. package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
  57. package/lib/aws/compute/event-sources/sqs.js +1 -1
  58. package/lib/aws/compute/fields.js +4 -4
  59. package/lib/aws/compute/function-alias.js +1 -1
  60. package/lib/aws/compute/function-base.js +2 -2
  61. package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
  62. package/lib/aws/compute/function-destinations/function.js +1 -1
  63. package/lib/aws/compute/function-destinations/sqs.js +1 -1
  64. package/lib/aws/compute/function-nodejs.js +1 -1
  65. package/lib/aws/compute/function-url.js +1 -1
  66. package/lib/aws/compute/function.js +1 -1
  67. package/lib/aws/compute/instance-types.js +1 -1
  68. package/lib/aws/compute/instance.js +1 -1
  69. package/lib/aws/compute/ip-addresses.js +2 -2
  70. package/lib/aws/compute/ipam.js +1 -1
  71. package/lib/aws/compute/key-pair.js +1 -1
  72. package/lib/aws/compute/launch-template.js +2 -2
  73. package/lib/aws/compute/lb-shared/base-listener.js +1 -1
  74. package/lib/aws/compute/lb-shared/base-load-balancer.d.ts +13 -3
  75. package/lib/aws/compute/lb-shared/base-load-balancer.js +16 -4
  76. package/lib/aws/compute/lb-shared/base-target-group.js +1 -1
  77. package/lib/aws/compute/lb-shared/listener-certificate.js +1 -1
  78. package/lib/aws/compute/lb-shared/load-balancer-targets.js +2 -2
  79. package/lib/aws/compute/lb-targets/alb-target.js +3 -3
  80. package/lib/aws/compute/lb-targets/instance-target.js +2 -2
  81. package/lib/aws/compute/lb-targets/ip-target.js +1 -1
  82. package/lib/aws/compute/lb-targets/lambda-target.js +1 -1
  83. package/lib/aws/compute/load-balancer.js +3 -3
  84. package/lib/aws/compute/machine-image/amazon-linux-2022.js +2 -2
  85. package/lib/aws/compute/machine-image/amazon-linux-2023.js +2 -2
  86. package/lib/aws/compute/machine-image/amazon-linux2.js +2 -2
  87. package/lib/aws/compute/machine-image/common.js +1 -1
  88. package/lib/aws/compute/machine-image/machine-image.js +8 -8
  89. package/lib/aws/compute/nat.js +5 -5
  90. package/lib/aws/compute/network-acl-types.js +2 -2
  91. package/lib/aws/compute/network-acl.js +3 -3
  92. package/lib/aws/compute/nlb/network-listener-action.js +1 -1
  93. package/lib/aws/compute/nlb/network-listener.js +1 -1
  94. package/lib/aws/compute/nlb/network-load-balancer.js +1 -1
  95. package/lib/aws/compute/nlb/network-target-group.js +1 -1
  96. package/lib/aws/compute/peer.js +1 -1
  97. package/lib/aws/compute/placement-group.js +1 -1
  98. package/lib/aws/compute/port.js +1 -1
  99. package/lib/aws/compute/prefix-list.js +1 -1
  100. package/lib/aws/compute/route.js +8 -8
  101. package/lib/aws/compute/security-group.js +1 -1
  102. package/lib/aws/compute/state-graph.js +1 -1
  103. package/lib/aws/compute/state-machine-fragment.js +1 -1
  104. package/lib/aws/compute/state-machine.js +4 -4
  105. package/lib/aws/compute/states/choice.js +1 -1
  106. package/lib/aws/compute/states/custom-state.js +1 -1
  107. package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
  108. package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
  109. package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
  110. package/lib/aws/compute/states/distributed-map.js +1 -1
  111. package/lib/aws/compute/states/fail.js +1 -1
  112. package/lib/aws/compute/states/map-base.js +1 -1
  113. package/lib/aws/compute/states/map.js +1 -1
  114. package/lib/aws/compute/states/parallel.js +1 -1
  115. package/lib/aws/compute/states/pass.js +2 -2
  116. package/lib/aws/compute/states/state.js +1 -1
  117. package/lib/aws/compute/states/succeed.js +1 -1
  118. package/lib/aws/compute/states/task-base.js +2 -2
  119. package/lib/aws/compute/states/task.js +1 -1
  120. package/lib/aws/compute/states/wait.js +2 -2
  121. package/lib/aws/compute/subnet-v2.js +2 -2
  122. package/lib/aws/compute/subnet.js +1 -1
  123. package/lib/aws/compute/task-credentials.js +1 -1
  124. package/lib/aws/compute/task-input.js +1 -1
  125. package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
  126. package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
  127. package/lib/aws/compute/tasks/http/invoke.js +1 -1
  128. package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
  129. package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
  130. package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
  131. package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
  132. package/lib/aws/compute/types.js +1 -1
  133. package/lib/aws/compute/user-data.js +3 -3
  134. package/lib/aws/compute/volume.js +2 -2
  135. package/lib/aws/compute/vpc-endpoint-service.js +1 -1
  136. package/lib/aws/compute/vpc-endpoint.js +6 -6
  137. package/lib/aws/compute/vpc-flow-logs.js +4 -4
  138. package/lib/aws/compute/vpc-v2-base.js +1 -1
  139. package/lib/aws/compute/vpc-v2.js +2 -2
  140. package/lib/aws/compute/vpc.js +4 -4
  141. package/lib/aws/compute/vpn.js +3 -3
  142. package/lib/aws/edge/certificate.js +1 -1
  143. package/lib/aws/edge/distribution.js +3 -3
  144. package/lib/aws/edge/dns-alias-record-targets.d.ts +7 -0
  145. package/lib/aws/edge/dns-alias-record-targets.js +28 -5
  146. package/lib/aws/edge/dns-record.js +13 -13
  147. package/lib/aws/edge/dns-zone.js +1 -1
  148. package/lib/aws/edge/function.js +2 -2
  149. package/lib/aws/edge/key-value-store.js +4 -4
  150. package/lib/aws/edge/origin.js +3 -3
  151. package/lib/aws/edge/response-headers-policy.js +1 -1
  152. package/lib/aws/encryption/alias.js +1 -1
  153. package/lib/aws/encryption/key.js +1 -1
  154. package/lib/aws/encryption/via-service-principal.js +1 -1
  155. package/lib/aws/iam/grant.js +2 -2
  156. package/lib/aws/iam/group.js +1 -1
  157. package/lib/aws/iam/instance-profile.js +1 -1
  158. package/lib/aws/iam/managed-policy.js +1 -1
  159. package/lib/aws/iam/oidc-provider.js +1 -1
  160. package/lib/aws/iam/policy-document.js +1 -1
  161. package/lib/aws/iam/policy-statement.js +1 -1
  162. package/lib/aws/iam/policy.js +1 -1
  163. package/lib/aws/iam/principals.js +20 -20
  164. package/lib/aws/iam/role.js +1 -1
  165. package/lib/aws/iam/saml-provider.js +2 -2
  166. package/lib/aws/iam/unknown-principal.js +1 -1
  167. package/lib/aws/iam/user.js +1 -1
  168. package/lib/aws/network/simple-ipv4-vpc.js +1 -1
  169. package/lib/aws/network/subnet-group.js +3 -3
  170. package/lib/aws/network/subnet.js +4 -4
  171. package/lib/aws/notify/archive.js +1 -1
  172. package/lib/aws/notify/connection.js +3 -3
  173. package/lib/aws/notify/delivery-policy.d.ts +114 -0
  174. package/lib/aws/notify/delivery-policy.js +27 -0
  175. package/lib/aws/notify/event-bus.js +3 -3
  176. package/lib/aws/notify/event-pattern.js +1 -1
  177. package/lib/aws/notify/index.d.ts +11 -0
  178. package/lib/aws/notify/index.js +14 -1
  179. package/lib/aws/notify/input.js +2 -2
  180. package/lib/aws/notify/kinesis-stream.js +1 -1
  181. package/lib/aws/notify/notification-rule-source.d.ts +20 -0
  182. package/lib/aws/notify/notification-rule-source.js +4 -0
  183. package/lib/aws/notify/notification-rule-target.d.ts +24 -0
  184. package/lib/aws/notify/notification-rule-target.js +4 -0
  185. package/lib/aws/notify/notification-rule.d.ts +123 -0
  186. package/lib/aws/notify/notification-rule.js +129 -0
  187. package/lib/aws/notify/policy.d.ts +56 -0
  188. package/lib/aws/notify/policy.js +83 -0
  189. package/lib/aws/notify/queue-policy.js +1 -1
  190. package/lib/aws/notify/queue.js +1 -1
  191. package/lib/aws/notify/resource-policy.js +1 -1
  192. package/lib/aws/notify/rule.js +1 -1
  193. package/lib/aws/notify/schedule.js +1 -1
  194. package/lib/aws/notify/sns-augmentations.generated.d.ts +125 -0
  195. package/lib/aws/notify/sns-augmentations.generated.js +71 -0
  196. package/lib/aws/notify/sns-canned-metrics.generated.d.ts +33 -0
  197. package/lib/aws/notify/sns-canned-metrics.generated.js +47 -0
  198. package/lib/aws/notify/subscriber.d.ts +44 -0
  199. package/lib/aws/notify/subscriber.js +4 -0
  200. package/lib/aws/notify/subscription-filter.d.ts +129 -0
  201. package/lib/aws/notify/subscription-filter.js +105 -0
  202. package/lib/aws/notify/subscription.d.ts +219 -0
  203. package/lib/aws/notify/subscription.js +357 -0
  204. package/lib/aws/notify/targets/event-bus.js +1 -1
  205. package/lib/aws/notify/targets/function.js +1 -1
  206. package/lib/aws/notify/targets/log-group.js +2 -2
  207. package/lib/aws/notify/targets/sqs.js +1 -1
  208. package/lib/aws/notify/targets/state-machine.js +1 -1
  209. package/lib/aws/notify/topic-base.d.ts +155 -0
  210. package/lib/aws/notify/topic-base.js +175 -0
  211. package/lib/aws/notify/topic.d.ts +222 -0
  212. package/lib/aws/notify/topic.js +219 -0
  213. package/lib/aws/storage/bucket-notifications.js +1 -1
  214. package/lib/aws/storage/bucket-policy.js +1 -1
  215. package/lib/aws/storage/bucket-source.js +1 -1
  216. package/lib/aws/storage/bucket.js +2 -2
  217. package/lib/aws/storage/notification-targets/function.js +1 -1
  218. package/lib/aws/storage/notification-targets/queue.js +1 -1
  219. package/lib/aws/storage/origin-access-identity.js +1 -1
  220. package/lib/aws/storage/parameter.js +2 -2
  221. package/lib/construct-base.js +2 -2
  222. package/lib/duration.js +1 -1
  223. package/lib/expiration.js +1 -1
  224. package/lib/size.js +1 -1
  225. package/lib/stack-base.js +1 -1
  226. package/lib/terra-func.js +1 -1
  227. package/package.json +1 -1
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ // https://github.com/aws/aws-cdk/blob/27babe66d750454a82bbcca9bd4b584e88e2ace8/packages/aws-cdk-lib/aws-sns/lib/delivery-policy.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.BackoffFunction = void 0;
5
+ /**
6
+ * Algorithms which can be used by SNS to calculate the delays associated with all of the retry attempts between the first and last retries in the backoff phase.
7
+ */
8
+ var BackoffFunction;
9
+ (function (BackoffFunction) {
10
+ /**
11
+ * Arithmetic, see {@link https://docs.aws.amazon.com/images/sns/latest/dg/images/backoff-graph.png|this image} for how this function compares to others
12
+ */
13
+ BackoffFunction["ARITHMETIC"] = "ARITHMETIC";
14
+ /**
15
+ * Exponential, see {@link https://docs.aws.amazon.com/images/sns/latest/dg/images/backoff-graph.png|this image} for how this function compares to others
16
+ */
17
+ BackoffFunction["EXPONENTIAL"] = "EXPONENTIAL";
18
+ /**
19
+ * Geometric, see {@link https://docs.aws.amazon.com/images/sns/latest/dg/images/backoff-graph.png|this image} for how this function compares to others
20
+ */
21
+ BackoffFunction["GEOMETRIC"] = "GEOMETRIC";
22
+ /**
23
+ * Linear, see {@link https://docs.aws.amazon.com/images/sns/latest/dg/images/backoff-graph.png|this image} for how this function compares to others
24
+ */
25
+ BackoffFunction["LINEAR"] = "LINEAR";
26
+ })(BackoffFunction || (exports.BackoffFunction = BackoffFunction = {}));
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsaXZlcnktcG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9ub3RpZnkvZGVsaXZlcnktcG9saWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxtSUFBbUk7OztBQUluSTs7R0FFRztBQUNILElBQVksZUFpQlg7QUFqQkQsV0FBWSxlQUFlO0lBQ3pCOztPQUVHO0lBQ0gsNENBQXlCLENBQUE7SUFDekI7O09BRUc7SUFDSCw4Q0FBMkIsQ0FBQTtJQUMzQjs7T0FFRztJQUNILDBDQUF1QixDQUFBO0lBQ3ZCOztPQUVHO0lBQ0gsb0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQWpCVyxlQUFlLCtCQUFmLGVBQWUsUUFpQjFCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvMjdiYWJlNjZkNzUwNDU0YTgyYmJjY2E5YmQ0YjU4NGU4OGUyYWNlOC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3Mtc25zL2xpYi9kZWxpdmVyeS1wb2xpY3kudHNcblxuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiLi4vLi4vZHVyYXRpb25cIjtcblxuLyoqXG4gKiBBbGdvcml0aG1zIHdoaWNoIGNhbiBiZSB1c2VkIGJ5IFNOUyB0byBjYWxjdWxhdGUgdGhlIGRlbGF5cyBhc3NvY2lhdGVkIHdpdGggYWxsIG9mIHRoZSByZXRyeSBhdHRlbXB0cyBiZXR3ZWVuIHRoZSBmaXJzdCBhbmQgbGFzdCByZXRyaWVzIGluIHRoZSBiYWNrb2ZmIHBoYXNlLlxuICovXG5leHBvcnQgZW51bSBCYWNrb2ZmRnVuY3Rpb24ge1xuICAvKipcbiAgICogQXJpdGhtZXRpYywgc2VlIHtAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vaW1hZ2VzL3Nucy9sYXRlc3QvZGcvaW1hZ2VzL2JhY2tvZmYtZ3JhcGgucG5nfHRoaXMgaW1hZ2V9IGZvciBob3cgdGhpcyBmdW5jdGlvbiBjb21wYXJlcyB0byBvdGhlcnNcbiAgICovXG4gIEFSSVRITUVUSUMgPSBcIkFSSVRITUVUSUNcIixcbiAgLyoqXG4gICAqIEV4cG9uZW50aWFsLCBzZWUge0BsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9pbWFnZXMvc25zL2xhdGVzdC9kZy9pbWFnZXMvYmFja29mZi1ncmFwaC5wbmd8dGhpcyBpbWFnZX0gZm9yIGhvdyB0aGlzIGZ1bmN0aW9uIGNvbXBhcmVzIHRvIG90aGVyc1xuICAgKi9cbiAgRVhQT05FTlRJQUwgPSBcIkVYUE9ORU5USUFMXCIsXG4gIC8qKlxuICAgKiBHZW9tZXRyaWMsIHNlZSB7QGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2ltYWdlcy9zbnMvbGF0ZXN0L2RnL2ltYWdlcy9iYWNrb2ZmLWdyYXBoLnBuZ3x0aGlzIGltYWdlfSBmb3IgaG93IHRoaXMgZnVuY3Rpb24gY29tcGFyZXMgdG8gb3RoZXJzXG4gICAqL1xuICBHRU9NRVRSSUMgPSBcIkdFT01FVFJJQ1wiLFxuICAvKipcbiAgICogTGluZWFyLCBzZWUge0BsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9pbWFnZXMvc25zL2xhdGVzdC9kZy9pbWFnZXMvYmFja29mZi1ncmFwaC5wbmd8dGhpcyBpbWFnZX0gZm9yIGhvdyB0aGlzIGZ1bmN0aW9uIGNvbXBhcmVzIHRvIG90aGVyc1xuICAgKi9cbiAgTElORUFSID0gXCJMSU5FQVJcIixcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBjdXN0b21pc2luZyBBV1MgU05TIEhUVFAvUyBkZWxpdmVyeSB0aHJvdHRsaW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRocm90dGxlUG9saWN5IHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBkZWxpdmVyaWVzIHBlciBzZWNvbmQsIHBlciBzdWJzY3JpcHRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gdGhyb3R0bGluZ1xuICAgKi9cbiAgcmVhZG9ubHkgbWF4UmVjZWl2ZXNQZXJTZWNvbmQ/OiBudW1iZXI7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY3VzdG9taXNpbmcgYXNwZWN0cyBvZiB0aGUgY29udGVudCBzZW50IGluIEFXUyBTTlMgSFRUUC9TIHJlcXVlc3RzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RQb2xpY3kge1xuICAvKipcbiAgICogVGhlIGNvbnRlbnQgdHlwZSBvZiB0aGUgbm90aWZpY2F0aW9uIGJlaW5nIHNlbnQgdG8gSFRUUC9TIGVuZHBvaW50cy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04XG4gICAqL1xuICByZWFkb25seSBoZWFkZXJDb250ZW50VHlwZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBjdXN0b21pc2luZyB0aGUgcmV0cnkgcG9saWN5IG9mIHRoZSBkZWxpdmVyeSBvZiBTTlMgbWVzc2FnZXMgdG8gSFRUUC9TIGVuZHBvaW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIZWFsdGh5UmV0cnlQb2xpY3kge1xuICAvKipcbiAgICogVGhlIG1pbmltdW0gZGVsYXkgZm9yIGEgcmV0cnkuICBNdXN0IGJlIGF0IGxlYXN0IG9uZSBzZWNvbmQsIG5vdCBleGNlZWQgYG1heERlbGF5VGFyZ2V0YCwgYW5kIGNvcnJlc3BvbmQgdG8gYSB3aG9sZSBudW1iZXIgb2Ygc2Vjb25kcy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSAyMCBzZWNvbmRzXG4gICAqL1xuICByZWFkb25seSBtaW5EZWxheVRhcmdldD86IER1cmF0aW9uO1xuICAvKipcbiAgICogVGhlIG1heGltdW0gZGVsYXkgZm9yIGEgcmV0cnkuICBNdXN0IGJlIGF0IGxlYXN0IGBtaW5EZWxheVRhcmdldGAgbGVzcyB0aGFuIDMsNjAwIHNlY29uZHMsIGFuZCBjb3JyZXNwb25kIHRvIGEgd2hvbGUgbnVtYmVyIG9mIHNlY29uZHMsXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gMjAgc2Vjb25kc1xuICAgKi9cbiAgcmVhZG9ubHkgbWF4RGVsYXlUYXJnZXQ/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIHRvdGFsIG51bWJlciBvZiByZXRyaWVzLCBpbmNsdWRpbmcgaW1tZWRpYXRlLCBwcmUtYmFja29mZiwgYmFja29mZiwgYW5kIHBvc3QtYmFja29mZiByZXRyaWVzLiAgTXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gemVybyBhbmQgbm90IGV4Y2VlZCAxMDAuXG4gICAqXG4gICAqIEBkZWZhdWx0IDNcbiAgICovXG4gIHJlYWRvbmx5IG51bVJldHJpZXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgcmV0cmllcyB0byBiZSBkb25lIGltbWVkaWF0ZWx5LCB3aXRoIG5vIGRlbGF5IGJldHdlZW4gdGhlbS4gIE11c3QgYmUgemVybyBvciBncmVhdGVyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICByZWFkb25seSBudW1Ob0RlbGF5UmV0cmllcz86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiByZXRyaWVzIGluIHRoZSBwcmUtYmFja29mZiBwaGFzZSwgd2l0aCB0aGUgc3BlY2lmaWVkIG1pbmltdW0gZGVsYXkgYmV0d2VlbiB0aGVtLiAgTXVzdCBiZSB6ZXJvIG9yIGdyZWF0ZXJcbiAgICpcbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgcmVhZG9ubHkgbnVtTWluRGVsYXlSZXRyaWVzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHJldHJpZXMgaW4gdGhlIHBvc3QtYmFja29mZiBwaGFzZSwgd2l0aCB0aGUgbWF4aW11bSBkZWxheSBiZXR3ZWVuIHRoZW0uICBNdXN0IGJlIHplcm8gb3IgZ3JlYXRlclxuICAgKlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICByZWFkb25seSBudW1NYXhEZWxheVJldHJpZXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBtb2RlbCBmb3IgYmFja29mZiBiZXR3ZWVuIHJldHJpZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbGluZWFyXG4gICAqL1xuICByZWFkb25seSBiYWNrb2ZmRnVuY3Rpb24/OiBCYWNrb2ZmRnVuY3Rpb247XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY3VzdG9taXNpbmcgdGhlIGRlbGl2ZXJ5IG9mIFNOUyBtZXNzYWdlcyB0byBIVFRQL1MgZW5kcG9pbnRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlbGl2ZXJ5UG9saWN5IHtcbiAgLyoqXG4gICAqIFRoZSByZXRyeSBwb2xpY3kgb2YgdGhlIGRlbGl2ZXJ5IG9mIFNOUyBtZXNzYWdlcyB0byBIVFRQL1MgZW5kcG9pbnRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIEFtYXpvbiBTTlMgYXR0ZW1wdHMgdXAgdG8gdGhyZWUgcmV0cmllcyB3aXRoIGEgZGVsYXkgYmV0d2VlbiBmYWlsZWQgYXR0ZW1wdHMgc2V0IGF0IDIwIHNlY29uZHNcbiAgICovXG4gIHJlYWRvbmx5IGhlYWx0aHlSZXRyeVBvbGljeT86IEhlYWx0aHlSZXRyeVBvbGljeTtcblxuICAvKipcbiAgICogVGhlIHRocm90dGxpbmcgcG9saWN5IG9mIHRoZSBkZWxpdmVyeSBvZiBTTlMgbWVzc2FnZXMgdG8gSFRUUC9TIGVuZHBvaW50cy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyB0aHJvdHRsaW5nXG4gICAqL1xuICByZWFkb25seSB0aHJvdHRsZVBvbGljeT86IFRocm90dGxlUG9saWN5O1xuXG4gIC8qKlxuICAgKiBUaGUgcmVxdWVzdCBvZiB0aGUgY29udGVudCBzZW50IGluIEFXUyBTTlMgSFRUUC9TIHJlcXVlc3RzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFRoZSBjb250ZW50IHR5cGUgaXMgc2V0IHRvICd0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04J1xuICAgKi9cbiAgcmVhZG9ubHkgcmVxdWVzdFBvbGljeT86IFJlcXVlc3RQb2xpY3k7XG59XG4iXX0=
@@ -244,7 +244,7 @@ class EventBus extends EventBusBase {
244
244
  }
245
245
  exports.EventBus = EventBus;
246
246
  _a = JSII_RTTI_SYMBOL_1;
247
- EventBus[_a] = { fqn: "terraconstructs.aws.notify.EventBus", version: "0.0.16" };
247
+ EventBus[_a] = { fqn: "terraconstructs.aws.notify.EventBus", version: "0.0.18" };
248
248
  class ImportedEventBus extends EventBusBase {
249
249
  get outputs() {
250
250
  return this.eventBusOutputs;
@@ -307,7 +307,7 @@ class EventBusPolicy extends aws_construct_1.AwsConstructBase {
307
307
  }
308
308
  exports.EventBusPolicy = EventBusPolicy;
309
309
  _b = JSII_RTTI_SYMBOL_1;
310
- EventBusPolicy[_b] = { fqn: "terraconstructs.aws.notify.EventBusPolicy", version: "0.0.16" };
310
+ EventBusPolicy[_b] = { fqn: "terraconstructs.aws.notify.EventBusPolicy", version: "0.0.18" };
311
311
  /**
312
312
  * A single permission for an Event Bus
313
313
  *
@@ -337,5 +337,5 @@ class EventBridgePermission extends aws_construct_1.AwsConstructBase {
337
337
  }
338
338
  exports.EventBridgePermission = EventBridgePermission;
339
339
  _c = JSII_RTTI_SYMBOL_1;
340
- EventBridgePermission[_c] = { fqn: "terraconstructs.aws.notify.EventBridgePermission", version: "0.0.16" };
340
+ EventBridgePermission[_c] = { fqn: "terraconstructs.aws.notify.EventBridgePermission", version: "0.0.18" };
341
341
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtYnVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9ub3RpZnkvZXZlbnQtYnVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0dBQWdHO0FBRWhHLHNEQUk2QjtBQUM3QixpQ0FBb0M7QUFFcEMsZ0NBQW1DO0FBQ25DLG9EQUF1RTtBQUN2RSw0Q0FBd0M7QUFDeEMsdUNBQXNEO0FBR3RELDhCQUE4QjtBQW9KOUIsTUFBZSxZQUFhLFNBQVEsZ0NBQWdCO0lBaUIzQyxPQUFPLENBQUMsRUFBVSxFQUFFLEtBQXVCO1FBQ2hELE9BQU8sSUFBSSxpQkFBTyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDM0IsY0FBYyxFQUFFLElBQUk7WUFDcEIsV0FBVyxFQUNULEtBQUssQ0FBQyxXQUFXLElBQUkscUJBQXFCLElBQUksQ0FBQyxZQUFZLFlBQVk7WUFDekUsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2hDLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUztZQUMxQixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7U0FDL0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGdCQUFnQixDQUFDLE9BQXVCO1FBQzdDLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7WUFDOUIsT0FBTztZQUNQLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO1lBQzdCLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDakMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUtGO0FBRUQ7Ozs7R0FJRztBQUNILE1BQWEsUUFBUyxTQUFRLFlBQVk7SUFDeEM7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsZUFBZSxDQUMzQixLQUFnQixFQUNoQixFQUFVLEVBQ1YsV0FBbUI7UUFFbkIsTUFBTSxLQUFLLEdBQUcsb0JBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUNuRCxX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R0FtQkc7QUFDSCxNQUFhLGNBQWUsU0FBUSxnQ0FBZ0I7SUFLbEQsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7SUFDL0IsQ0FBQztJQUNELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXpELElBQUksdUNBQXdCLENBQUMsd0JBQXdCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUN0RSx1RkFBdUY7WUFDdkYsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSTtZQUMxQixZQUFZLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZO1NBQzFDLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBakJILHdDQWtCQzs7O0FBcUREOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFhLHFCQUFzQixTQUFRLGdDQUFnQjtJQUN6RCxJQUFXLE9BQU87UUFDaEIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFpQztRQUN6RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixJQUFJLHdDQUF5QixDQUFDLHlCQUF5QixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDeEUsdUZBQXVGO1lBQ3ZGLEdBQUcsS0FBSztZQUNSLFlBQVksRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVk7U0FDMUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUFaSCxzREFhQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE1Ni4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1ldmVudHMvbGliL2V2ZW50LWJ1cy50c1xuXG5pbXBvcnQge1xuICBjbG91ZHdhdGNoRXZlbnRCdXMsXG4gIGNsb3Vkd2F0Y2hFdmVudEJ1c1BvbGljeSxcbiAgY2xvdWR3YXRjaEV2ZW50UGVybWlzc2lvbixcbn0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IExhenksIFRva2VuIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgQXJuRm9ybWF0IH0gZnJvbSBcIi4uL2FyblwiO1xuaW1wb3J0IHsgQXdzQ29uc3RydWN0QmFzZSwgQXdzQ29uc3RydWN0UHJvcHMgfSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vYXdzLXN0YWNrXCI7XG5pbXBvcnQgeyBBcmNoaXZlLCBCYXNlQXJjaGl2ZVByb3BzIH0gZnJvbSBcIi4vYXJjaGl2ZVwiO1xuLy8gaW1wb3J0IHsgSVF1ZXVlIH0gZnJvbSBcIi4vcXVldWVcIjtcbmltcG9ydCAqIGFzIGVuY3J5cHRpb24gZnJvbSBcIi4uL2VuY3J5cHRpb25cIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vaWFtXCI7XG5cbi8qKlxuICogT3V0cHV0cyB0byByZWdpc3RlciB3aXRoIHRoZSBHcmlkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRCdXNPdXRwdXRzIHtcbiAgLyoqXG4gICAqIFRoZSBwaHlzaWNhbCBJRCBvZiB0aGlzIGV2ZW50IGJ1cyByZXNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoaXMgZXZlbnQgYnVzIHJlc291cmNlXG4gICAqL1xuICByZWFkb25seSBhcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhcnRuZXIgZXZlbnQgc291cmNlIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgZXZlbnQgYnVzIHJlc291cmNlXG4gICAqL1xuICByZWFkb25seSBldmVudFNvdXJjZU5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogSW50ZXJmYWNlIHdoaWNoIGFsbCBFdmVudEJ1cyBiYXNlZCBjbGFzc2VzIE1VU1QgaW1wbGVtZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUV2ZW50QnVzIGV4dGVuZHMgaWFtLklBd3NDb25zdHJ1Y3RXaXRoUG9saWN5IHtcbiAgLyoqXG4gICAqIFRoZSBwaHlzaWNhbCBJRCBvZiB0aGlzIGV2ZW50IGJ1cyByZXNvdXJjZVxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqIEBsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1ldmVudHMtZXZlbnRidXMuaHRtbCNjZm4tZXZlbnRzLWV2ZW50YnVzLW5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50QnVzTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoaXMgZXZlbnQgYnVzIHJlc291cmNlXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICogQGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWV2ZW50cy1ldmVudGJ1cy5odG1sI0Fybi1mbjo6Z2V0YXR0XG4gICAqL1xuICByZWFkb25seSBldmVudEJ1c0Fybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFydG5lciBldmVudCBzb3VyY2UgdG8gYXNzb2NpYXRlIHdpdGggdGhpcyBldmVudCBidXMgcmVzb3VyY2VcbiAgICpcbiAgICogQGxpbmsgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWV2ZW50cy1ldmVudGJ1cy5odG1sI2Nmbi1ldmVudHMtZXZlbnRidXMtZXZlbnRzb3VyY2VuYW1lXG4gICAqL1xuICByZWFkb25seSBldmVudFNvdXJjZU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBFdmVudEJyaWRnZSBhcmNoaXZlIHRvIHNlbmQgZXZlbnRzIHRvLlxuICAgKiBXaGVuIHlvdSBjcmVhdGUgYW4gYXJjaGl2ZSwgaW5jb21pbmcgZXZlbnRzIG1pZ2h0IG5vdCBpbW1lZGlhdGVseSBzdGFydCBiZWluZyBzZW50IHRvIHRoZSBhcmNoaXZlLlxuICAgKiBBbGxvdyBhIHNob3J0IHBlcmlvZCBvZiB0aW1lIGZvciBjaGFuZ2VzIHRvIHRha2UgZWZmZWN0LlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgUHJvcGVydGllcyBvZiB0aGUgYXJjaGl2ZVxuICAgKi9cbiAgYXJjaGl2ZShpZDogc3RyaW5nLCBwcm9wczogQmFzZUFyY2hpdmVQcm9wcyk6IEFyY2hpdmU7XG5cbiAgLyoqXG4gICAqIEdyYW50cyBhbiBJQU0gUHJpbmNpcGFsIHRvIHNlbmQgY3VzdG9tIGV2ZW50cyB0byB0aGUgZXZlbnRCdXNcbiAgICogc28gdGhhdCB0aGV5IGNhbiBiZSBtYXRjaGVkIHRvIHJ1bGVzLlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsIChuby1vcCBpZiB1bmRlZmluZWQpXG4gICAqL1xuICBncmFudFB1dEV2ZW50c1RvKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50O1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgdG8gZGVmaW5lIGFuIGV2ZW50IGJ1c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50QnVzUHJvcHMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZXZlbnQgYnVzIHlvdSBhcmUgY3JlYXRpbmdcbiAgICogTm90ZTogSWYgJ2V2ZW50U291cmNlTmFtZScgaXMgcGFzc2VkIGluLCB5b3UgY2Fubm90IHNldCB0aGlzXG4gICAqXG4gICAqIE5PVEU6IHRoZSBuYW1lcyBvZiBjdXN0b20gZXZlbnQgYnVzZXMgY2FuJ3QgY29udGFpbiB0aGUgJy8nIGNoYXJhY3RlclxuICAgKlxuICAgKiBAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZXZlbnRzLWV2ZW50YnVzLmh0bWwjY2ZuLWV2ZW50cy1ldmVudGJ1cy1uYW1lXG4gICAqIEBkZWZhdWx0IC0gYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRCdXNOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFydG5lciBldmVudCBzb3VyY2UgdG8gYXNzb2NpYXRlIHdpdGggdGhpcyBldmVudCBidXMgcmVzb3VyY2VcbiAgICogTm90ZTogSWYgJ2V2ZW50QnVzTmFtZScgaXMgcGFzc2VkIGluLCB5b3UgY2Fubm90IHNldCB0aGlzXG4gICAqXG4gICAqIEBsaW5rIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1ldmVudHMtZXZlbnRidXMuaHRtbCNjZm4tZXZlbnRzLWV2ZW50YnVzLWV2ZW50c291cmNlbmFtZVxuICAgKiBAZGVmYXVsdCAtIG5vIHBhcnRuZXIgZXZlbnQgc291cmNlXG4gICAqL1xuICByZWFkb25seSBldmVudFNvdXJjZU5hbWU/OiBzdHJpbmc7XG5cbiAgLy8gLy8gVE9ETzogRGVhZC1sZXR0ZXIgcXVldWUgaXMgbm90IHN1cHBvcnRlZCBieSB0ZXJyYWZvcm0tcHJvdmlkZXItYXdzXG4gIC8vIC8qKlxuICAvLyAgKiBEZWFkLWxldHRlciBxdWV1ZSBmb3IgdGhlIGV2ZW50IGJ1c1xuICAvLyAgKlxuICAvLyAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9ldmVudGJyaWRnZS9sYXRlc3QvdXNlcmd1aWRlL2ViLXJ1bGUtZXZlbnQtZGVsaXZlcnkuaHRtbCNlYi1ydWxlLWRscVxuICAvLyAgKlxuICAvLyAgKiBAZGVmYXVsdCAtIG5vIGRlYWQtbGV0dGVyIHF1ZXVlXG4gIC8vICAqL1xuICAvLyByZWFkb25seSBkZWFkTGV0dGVyUXVldWU/OiBJUXVldWU7XG5cbiAgLyoqXG4gICAqIFRoZSBjdXN0b21lciBtYW5hZ2VkIGtleSB0aGF0IGVuY3J5cHQgZXZlbnRzIG9uIHRoaXMgZXZlbnQgYnVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFVzZSBhbiBBV1MgbWFuYWdlZCBrZXlcbiAgICovXG4gIHJlYWRvbmx5IGttc0tleT86IGVuY3J5cHRpb24uSUtleTtcblxuICAvLyAvLyBUT0RPOiBEZXNjcmlwdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRlcnJhZm9ybS1wcm92aWRlci1hd3NcbiAgLy8gLyoqXG4gIC8vICAqIFRoZSBldmVudCBidXMgZGVzY3JpcHRpb24uXG4gIC8vICAqXG4gIC8vICAqIFRoZSBkZXNjcmlwdGlvbiBjYW4gYmUgdXAgdG8gNTEyIGNoYXJhY3RlcnMgbG9uZy5cbiAgLy8gICpcbiAgLy8gICogQHNlZSBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1ldmVudHMtZXZlbnRidXMuaHRtbCNjZm4tZXZlbnRzLWV2ZW50YnVzLWRlc2NyaXB0aW9uXG4gIC8vICAqXG4gIC8vICAqIEBkZWZhdWx0IC0gbm8gZGVzY3JpcHRpb25cbiAgLy8gICovXG4gIC8vIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSB3aXRoIHByb3BlcnRpZXMgbmVjZXNzYXJ5IHRvIGltcG9ydCBhIHJldXNhYmxlIEV2ZW50QnVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRCdXNBdHRyaWJ1dGVzIHtcbiAgLyoqXG4gICAqIFRoZSBwaHlzaWNhbCBJRCBvZiB0aGlzIGV2ZW50IGJ1cyByZXNvdXJjZVxuICAgKlxuICAgKiBAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZXZlbnRzLWV2ZW50YnVzLmh0bWwjY2ZuLWV2ZW50cy1ldmVudGJ1cy1uYW1lXG4gICAqL1xuICByZWFkb25seSBldmVudEJ1c05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGlzIGV2ZW50IGJ1cyByZXNvdXJjZVxuICAgKlxuICAgKiBAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZXZlbnRzLWV2ZW50YnVzLmh0bWwjQXJuLWZuOjpnZXRhdHRcbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50QnVzQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXJ0bmVyIGV2ZW50IHNvdXJjZSB0byBhc3NvY2lhdGUgd2l0aCB0aGlzIGV2ZW50IGJ1cyByZXNvdXJjZVxuICAgKlxuICAgKiBAbGluayBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtZXZlbnRzLWV2ZW50YnVzLmh0bWwjY2ZuLWV2ZW50cy1ldmVudGJ1cy1ldmVudHNvdXJjZW5hbWVcbiAgICogQGRlZmF1bHQgLSBubyBwYXJ0bmVyIGV2ZW50IHNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRTb3VyY2VOYW1lPzogc3RyaW5nO1xufVxuXG5hYnN0cmFjdCBjbGFzcyBFdmVudEJ1c0Jhc2UgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIGltcGxlbWVudHMgSUV2ZW50QnVzIHtcbiAgLyoqXG4gICAqIFRoZSBwaHlzaWNhbCBJRCBvZiB0aGlzIGV2ZW50IGJ1cyByZXNvdXJjZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGV2ZW50QnVzTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBldmVudCBidXMsIHN1Y2ggYXM6XG4gICAqIGFybjphd3M6ZXZlbnRzOnVzLWVhc3QtMjoxMjM0NTY3ODkwMTI6ZXZlbnQtYnVzL2F3cy5wYXJ0bmVyL1BhcnRuZXJOYW1lL2FjY3QxL3JlcG8xLlxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGV2ZW50QnVzQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBwYXJ0bmVyIGV2ZW50IHNvdXJjZVxuICAgKi9cbiAgcHVibGljIGFic3RyYWN0IHJlYWRvbmx5IGV2ZW50U291cmNlTmFtZT86IHN0cmluZztcblxuICBwdWJsaWMgYXJjaGl2ZShpZDogc3RyaW5nLCBwcm9wczogQmFzZUFyY2hpdmVQcm9wcyk6IEFyY2hpdmUge1xuICAgIHJldHVybiBuZXcgQXJjaGl2ZSh0aGlzLCBpZCwge1xuICAgICAgc291cmNlRXZlbnRCdXM6IHRoaXMsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgcHJvcHMuZGVzY3JpcHRpb24gfHwgYEV2ZW50IEFyY2hpdmUgZm9yICR7dGhpcy5ldmVudEJ1c05hbWV9IEV2ZW50IEJ1c2AsXG4gICAgICBldmVudFBhdHRlcm46IHByb3BzLmV2ZW50UGF0dGVybixcbiAgICAgIHJldGVudGlvbjogcHJvcHMucmV0ZW50aW9uLFxuICAgICAgYXJjaGl2ZU5hbWU6IHByb3BzLmFyY2hpdmVOYW1lLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdyYW50UHV0RXZlbnRzVG8oZ3JhbnRlZTogaWFtLklHcmFudGFibGUpOiBpYW0uR3JhbnQge1xuICAgIHJldHVybiBpYW0uR3JhbnQuYWRkVG9QcmluY2lwYWwoe1xuICAgICAgZ3JhbnRlZSxcbiAgICAgIGFjdGlvbnM6IFtcImV2ZW50czpQdXRFdmVudHNcIl0sXG4gICAgICByZXNvdXJjZUFybnM6IFt0aGlzLmV2ZW50QnVzQXJuXSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhYnN0cmFjdCBhZGRUb1Jlc291cmNlUG9saWN5KFxuICAgIHN0YXRlbWVudDogaWFtLlBvbGljeVN0YXRlbWVudCxcbiAgKTogaWFtLkFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQ7XG59XG5cbi8qKlxuICogRGVmaW5lIGFuIEV2ZW50QnJpZGdlIEV2ZW50QnVzXG4gKlxuICogQHJlc291cmNlIGF3c19jbG91ZHdhdGNoX2V2ZW50X2J1c1xuICovXG5leHBvcnQgY2xhc3MgRXZlbnRCdXMgZXh0ZW5kcyBFdmVudEJ1c0Jhc2Uge1xuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIGV2ZW50IGJ1cyByZXNvdXJjZVxuICAgKiBAcGFyYW0gc2NvcGUgUGFyZW50IGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gaWQgQ29uc3RydWN0IElEXG4gICAqIEBwYXJhbSBldmVudEJ1c0FybiBBUk4gb2YgaW1wb3J0ZWQgZXZlbnQgYnVzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21FdmVudEJ1c0FybihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgZXZlbnRCdXNBcm46IHN0cmluZyxcbiAgKTogSUV2ZW50QnVzIHtcbiAgICBjb25zdCBwYXJ0cyA9IEF3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHNjb3BlKS5zcGxpdEFybihcbiAgICAgIGV2ZW50QnVzQXJuLFxuICAgICAgQXJuRm9ybWF0LlNMQVNIX1JFU09VUkNFX05BTUUsXG4gICAgKTtcblxuICAgIHJldHVybiBuZXcgSW1wb3J0ZWRFdmVudEJ1cyhzY29wZSwgaWQsIHtcbiAgICAgIGV2ZW50QnVzQXJuOiBldmVudEJ1c0FybixcbiAgICAgIGV2ZW50QnVzTmFtZTogcGFydHMucmVzb3VyY2VOYW1lIHx8IFwiXCIsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGFuIGV4aXN0aW5nIGV2ZW50IGJ1cyByZXNvdXJjZVxuICAgKiBAcGFyYW0gc2NvcGUgUGFyZW50IGNvbnN0cnVjdFxuICAgKiBAcGFyYW0gaWQgQ29uc3RydWN0IElEXG4gICAqIEBwYXJhbSBldmVudEJ1c05hbWUgTmFtZSBvZiBpbXBvcnRlZCBldmVudCBidXNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUV2ZW50QnVzTmFtZShcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgZXZlbnRCdXNOYW1lOiBzdHJpbmcsXG4gICk6IElFdmVudEJ1cyB7XG4gICAgY29uc3QgZXZlbnRCdXNBcm4gPSBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChzY29wZSkuZm9ybWF0QXJuKHtcbiAgICAgIHJlc291cmNlOiBcImV2ZW50LWJ1c1wiLFxuICAgICAgc2VydmljZTogXCJldmVudHNcIixcbiAgICAgIHJlc291cmNlTmFtZTogZXZlbnRCdXNOYW1lLFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIEV2ZW50QnVzLmZyb21FdmVudEJ1c0F0dHJpYnV0ZXMoc2NvcGUsIGlkLCB7XG4gICAgICBldmVudEJ1c05hbWU6IGV2ZW50QnVzTmFtZSxcbiAgICAgIGV2ZW50QnVzQXJuOiBldmVudEJ1c0FybixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgYW4gZXhpc3RpbmcgZXZlbnQgYnVzIHJlc291cmNlXG4gICAqIEBwYXJhbSBzY29wZSBQYXJlbnQgY29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCBDb25zdHJ1Y3QgSURcbiAgICogQHBhcmFtIGF0dHJzIEltcG9ydGVkIGV2ZW50IGJ1cyBwcm9wZXJ0aWVzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21FdmVudEJ1c0F0dHJpYnV0ZXMoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGF0dHJzOiBFdmVudEJ1c0F0dHJpYnV0ZXMsXG4gICk6IElFdmVudEJ1cyB7XG4gICAgcmV0dXJuIG5ldyBJbXBvcnRlZEV2ZW50QnVzKHNjb3BlLCBpZCwgYXR0cnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcm1pdHMgYW4gSUFNIFByaW5jaXBhbCB0byBzZW5kIGN1c3RvbSBldmVudHMgdG8gRXZlbnRCcmlkZ2VcbiAgICogc28gdGhhdCB0aGV5IGNhbiBiZSBtYXRjaGVkIHRvIHJ1bGVzLlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsIChuby1vcCBpZiB1bmRlZmluZWQpXG4gICAqIEBkZXByZWNhdGVkIHVzZSBncmFudEFsbFB1dEV2ZW50cyBpbnN0ZWFkXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdyYW50UHV0RXZlbnRzKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICAvLyBJdCdzIGN1cnJlbnRseSBub3QgcG9zc2libGUgdG8gcmVzdHJpY3QgUHV0RXZlbnRzIHRvIHNwZWNpZmljIHJlc291cmNlcy5cbiAgICAvLyBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2V2ZW50YnJpZGdlL2xhdGVzdC91c2VyZ3VpZGUvcGVybWlzc2lvbnMtcmVmZXJlbmNlLWV2ZW50YnJpZGdlLmh0bWxcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWUsXG4gICAgICBhY3Rpb25zOiBbXCJldmVudHM6UHV0RXZlbnRzXCJdLFxuICAgICAgcmVzb3VyY2VBcm5zOiBbXCIqXCJdLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcm1pdHMgYW4gSUFNIFByaW5jaXBhbCB0byBzZW5kIGN1c3RvbSBldmVudHMgdG8gRXZlbnRCcmlkZ2VcbiAgICogc28gdGhhdCB0aGV5IGNhbiBiZSBtYXRjaGVkIHRvIHJ1bGVzLlxuICAgKlxuICAgKiBAcGFyYW0gZ3JhbnRlZSBUaGUgcHJpbmNpcGFsIChuby1vcCBpZiB1bmRlZmluZWQpXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdyYW50QWxsUHV0RXZlbnRzKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gaWFtLkdyYW50LmFkZFRvUHJpbmNpcGFsKHtcbiAgICAgIGdyYW50ZWUsXG4gICAgICBhY3Rpb25zOiBbXCJldmVudHM6UHV0RXZlbnRzXCJdLFxuICAgICAgcmVzb3VyY2VBcm5zOiBbXCIqXCJdLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZXZlbnRCdXNQcm9wcyhcbiAgICBkZWZhdWx0RXZlbnRCdXNOYW1lOiBzdHJpbmcsXG4gICAgcHJvcHM6IEV2ZW50QnVzUHJvcHMgPSB7fSxcbiAgKSB7XG4gICAgY29uc3QgeyBldmVudEJ1c05hbWUsIGV2ZW50U291cmNlTmFtZSB9ID0gcHJvcHM7XG4gICAgY29uc3QgZXZlbnRCdXNOYW1lUmVnZXggPSAvXltcXC9cXC5cXC1fQS1aYS16MC05XXsxLDI1Nn0kLztcblxuICAgIGlmIChldmVudEJ1c05hbWUgIT09IHVuZGVmaW5lZCAmJiBldmVudFNvdXJjZU5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIidldmVudEJ1c05hbWUnIGFuZCAnZXZlbnRTb3VyY2VOYW1lJyBjYW5ub3QgYm90aCBiZSBwcm92aWRlZFwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBpZiAoZXZlbnRCdXNOYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGlmICghVG9rZW4uaXNVbnJlc29sdmVkKGV2ZW50QnVzTmFtZSkpIHtcbiAgICAgICAgaWYgKGV2ZW50QnVzTmFtZSA9PT0gXCJkZWZhdWx0XCIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCInZXZlbnRCdXNOYW1lJyBtdXN0IG5vdCBiZSAnZGVmYXVsdCdcIik7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRCdXNOYW1lLmluZGV4T2YoXCIvXCIpID4gLTEpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCInZXZlbnRCdXNOYW1lJyBtdXN0IG5vdCBjb250YWluICcvJ1wiKTtcbiAgICAgICAgfSBlbHNlIGlmICghZXZlbnRCdXNOYW1lUmVnZXgudGVzdChldmVudEJ1c05hbWUpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAnZXZlbnRCdXNOYW1lJyBtdXN0IHNhdGlzZnk6ICR7ZXZlbnRCdXNOYW1lUmVnZXh9YCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB7IGV2ZW50QnVzTmFtZSB9O1xuICAgIH1cblxuICAgIGlmIChldmVudFNvdXJjZU5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQoZXZlbnRTb3VyY2VOYW1lKSkge1xuICAgICAgICAvLyBFeDogYXdzLnBhcnRuZXIvUGFydG5lck5hbWUvYWNjdDEvcmVwbzFcbiAgICAgICAgY29uc3QgZXZlbnRTb3VyY2VOYW1lUmVnZXggPSAvXmF3c1xcLnBhcnRuZXIoXFwvW1xcLlxcLV9BLVphLXowLTldKyl7Mix9JC87XG4gICAgICAgIGlmICghZXZlbnRTb3VyY2VOYW1lUmVnZXgudGVzdChldmVudFNvdXJjZU5hbWUpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYCdldmVudFNvdXJjZU5hbWUnIG11c3Qgc2F0aXNmeTogJHtldmVudFNvdXJjZU5hbWVSZWdleH1gLFxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSBpZiAoIWV2ZW50QnVzTmFtZVJlZ2V4LnRlc3QoZXZlbnRTb3VyY2VOYW1lKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGAnZXZlbnRTb3VyY2VOYW1lJyBtdXN0IHNhdGlzZnk6ICR7ZXZlbnRCdXNOYW1lUmVnZXh9YCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4geyBldmVudEJ1c05hbWU6IGV2ZW50U291cmNlTmFtZSwgZXZlbnRTb3VyY2VOYW1lIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIHsgZXZlbnRCdXNOYW1lOiBkZWZhdWx0RXZlbnRCdXNOYW1lIH07XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IGNsb3Vkd2F0Y2hFdmVudEJ1cy5DbG91ZHdhdGNoRXZlbnRCdXM7XG5cbiAgcHVibGljIHJlYWRvbmx5IGV2ZW50QnVzT3V0cHV0czogRXZlbnRCdXNPdXRwdXRzO1xuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZXZlbnRCdXNPdXRwdXRzO1xuICB9XG5cbiAgcHJpdmF0ZSBwb2xpY3k/OiBFdmVudEJ1c1BvbGljeTtcblxuICAvKipcbiAgICogVGhlIHBoeXNpY2FsIElEIG9mIHRoaXMgZXZlbnQgYnVzIHJlc291cmNlXG4gICAqL1xuICBwdWJsaWMgZ2V0IGV2ZW50QnVzTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlLm5hbWU7XG4gIH1cblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZXZlbnQgYnVzLCBzdWNoIGFzOlxuICAgKiBhcm46YXdzOmV2ZW50czp1cy1lYXN0LTI6MTIzNDU2Nzg5MDEyOmV2ZW50LWJ1cy9hd3MucGFydG5lci9QYXJ0bmVyTmFtZS9hY2N0MS9yZXBvMS5cbiAgICovXG4gIHB1YmxpYyBnZXQgZXZlbnRCdXNBcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZS5hcm47XG4gIH1cblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHBhcnRuZXIgZXZlbnQgc291cmNlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZXZlbnRTb3VyY2VOYW1lPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogRXZlbnRCdXNQcm9wcykge1xuICAgIGNvbnN0IHsgZXZlbnRCdXNOYW1lLCBldmVudFNvdXJjZU5hbWUgfSA9IEV2ZW50QnVzLmV2ZW50QnVzUHJvcHMoXG4gICAgICAvLyBUT0RPKHZpbmNlbnQpOiBGaWd1cmUgb3V0IGhvdyB0aGlzIHdvcmtzLi4uXG4gICAgICBMYXp5LnN0cmluZ1ZhbHVlKHsgcHJvZHVjZTogKCkgPT4gQXdzU3RhY2sudW5pcXVlSWQodGhpcykgfSksXG4gICAgICBwcm9wcyxcbiAgICApO1xuXG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICAvLyBpZiAoXG4gICAgLy8gICBwcm9wcz8uZGVzY3JpcHRpb24gJiZcbiAgICAvLyAgICFUb2tlbi5pc1VucmVzb2x2ZWQocHJvcHMuZGVzY3JpcHRpb24pICYmXG4gICAgLy8gICBwcm9wcy5kZXNjcmlwdGlvbi5sZW5ndGggPiA1MTJcbiAgICAvLyApIHtcbiAgICAvLyAgIHRocm93IG5ldyBFcnJvcihcbiAgICAvLyAgICAgYGRlc2NyaXB0aW9uIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDUxMiBjaGFyYWN0ZXJzLCBnb3QgJHtwcm9wcy5kZXNjcmlwdGlvbi5sZW5ndGh9YCxcbiAgICAvLyAgICk7XG4gICAgLy8gfVxuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBjbG91ZHdhdGNoRXZlbnRCdXMuQ2xvdWR3YXRjaEV2ZW50QnVzKFxuICAgICAgdGhpcyxcbiAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgIHtcbiAgICAgICAgbmFtZTogZXZlbnRCdXNOYW1lLFxuICAgICAgICBldmVudFNvdXJjZU5hbWUsXG4gICAgICAgIGttc0tleUlkZW50aWZpZXI6IHByb3BzPy5rbXNLZXk/LmtleUFybixcbiAgICAgICAgLy8gZGVzY3JpcHRpb246IHByb3BzPy5kZXNjcmlwdGlvbiwgLy8gRGVzY3JpcHRpb24gaXMgbm90IHN1cHBvcnRlZCBieSB0ZXJyYWZvcm0tcHJvdmlkZXItYXdzXG4gICAgICAgIC8vIFRPRE86IE1pc3NpbmcgaW4gdGVycmFmb3JtLXByb3ZpZGVyLWF3c1xuICAgICAgICAvLyByZWY6XG4gICAgICAgIC8vICAtIGh0dHBzOi8vZ2l0aHViLmNvbS9oYXNoaWNvcnAvdGVycmFmb3JtLXByb3ZpZGVyLWF3cy9pc3N1ZXMvNDE1NjNcbiAgICAgICAgLy8gIC0gaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tcHJvdmlkZXItYXdzL2Jsb2IvdjUuODguMC9pbnRlcm5hbC9zZXJ2aWNlL2V2ZW50cy9idXMuZ28jTDc5XG4gICAgICAgIC8vICAtIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9ldmVudGJyaWRnZS9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVFdmVudEJ1cy5odG1sI0FQSV9DcmVhdGVFdmVudEJ1c19SZXF1ZXN0U3ludGF4XG4gICAgICAgIC8vIGRlYWRsZXR0ZXJfY29uZmlnOiBwcm9wcz8uZGVhZExldHRlclF1ZXVlXG4gICAgICB9LFxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiBBbGxvdyBFdmVudEJyaWRnZSB0byB1c2UgY3VzdG9tZXIgbWFuYWdlZCBrZXlcbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2V2ZW50YnJpZGdlL2xhdGVzdC91c2VyZ3VpZGUvZWItZW5jcnlwdGlvbi1rZXktcG9saWN5Lmh0bWwjZWItZW5jcnlwdGlvbi1rZXktcG9saWN5LWJ1c1xuICAgICAqL1xuICAgIGlmIChwcm9wcz8ua21zS2V5KSB7XG4gICAgICBwcm9wcz8ua21zS2V5LmFkZFRvUmVzb3VyY2VQb2xpY3koXG4gICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICByZXNvdXJjZXM6IFtcIipcIl0sXG4gICAgICAgICAgYWN0aW9uczogW1wia21zOkRlY3J5cHRcIiwgXCJrbXM6R2VuZXJhdGVEYXRhS2V5XCIsIFwia21zOkRlc2NyaWJlS2V5XCJdLFxuICAgICAgICAgIHByaW5jaXBhbHM6IFtuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoXCJldmVudHMuYW1hem9uYXdzLmNvbVwiKV0sXG4gICAgICAgICAgY29uZGl0aW9uOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRlc3Q6IFwiU3RyaW5nRXF1YWxzXCIsXG4gICAgICAgICAgICAgIHZhcmlhYmxlOiBcImF3czpTb3VyY2VBY2NvdW50XCIsXG4gICAgICAgICAgICAgIHZhbHVlczogW3RoaXMuc3RhY2suYWNjb3VudF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0ZXN0OiBcIlN0cmluZ0VxdWFsc1wiLFxuICAgICAgICAgICAgICB2YXJpYWJsZTogXCJhd3M6U291cmNlQXJuXCIsXG4gICAgICAgICAgICAgIHZhbHVlczogW1xuICAgICAgICAgICAgICAgIEF3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHRoaXMpLmZvcm1hdEFybih7XG4gICAgICAgICAgICAgICAgICBzZXJ2aWNlOiBcImV2ZW50c1wiLFxuICAgICAgICAgICAgICAgICAgcmVzb3VyY2U6IFwiZXZlbnQtYnVzXCIsXG4gICAgICAgICAgICAgICAgICByZXNvdXJjZU5hbWU6IGV2ZW50QnVzTmFtZSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRlc3Q6IFwiU3RyaW5nRXF1YWxzXCIsXG4gICAgICAgICAgICAgIHZhcmlhYmxlOiBcImttczpFbmNyeXB0aW9uQ29udGV4dDphd3M6ZXZlbnRzOmV2ZW50LWJ1czphcm5cIixcbiAgICAgICAgICAgICAgdmFsdWVzOiBbXG4gICAgICAgICAgICAgICAgQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3QodGhpcykuZm9ybWF0QXJuKHtcbiAgICAgICAgICAgICAgICAgIHNlcnZpY2U6IFwiZXZlbnRzXCIsXG4gICAgICAgICAgICAgICAgICByZXNvdXJjZTogXCJldmVudC1idXNcIixcbiAgICAgICAgICAgICAgICAgIHJlc291cmNlTmFtZTogZXZlbnRCdXNOYW1lLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5ldmVudFNvdXJjZU5hbWUgPSB0aGlzLnJlc291cmNlLmV2ZW50U291cmNlTmFtZTtcbiAgICB0aGlzLmV2ZW50QnVzT3V0cHV0cyA9IHtcbiAgICAgIG5hbWU6IHRoaXMuZXZlbnRCdXNOYW1lLFxuICAgICAgYXJuOiB0aGlzLmV2ZW50QnVzQXJuLFxuICAgICAgZXZlbnRTb3VyY2VOYW1lOiB0aGlzLmV2ZW50U291cmNlTmFtZSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBzdGF0ZW1lbnQgdG8gdGhlIElBTSByZXNvdXJjZSBwb2xpY3kgYXNzb2NpYXRlZCB3aXRoIHRoaXMgZXZlbnQgYnVzLlxuICAgKi9cbiAgcHVibGljIGFkZFRvUmVzb3VyY2VQb2xpY3koXG4gICAgc3RhdGVtZW50OiBpYW0uUG9saWN5U3RhdGVtZW50LFxuICApOiBpYW0uQWRkVG9SZXNvdXJjZVBvbGljeVJlc3VsdCB7XG4gICAgaWYgKCF0aGlzLnBvbGljeSkge1xuICAgICAgdGhpcy5wb2xpY3kgPSBuZXcgRXZlbnRCdXNQb2xpY3kodGhpcywgXCJQb2xpY3lcIiwgeyBldmVudEJ1czogdGhpcyB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5wb2xpY3kpIHtcbiAgICAgIHRoaXMucG9saWN5LmRvY3VtZW50LmFkZFN0YXRlbWVudHMoc3RhdGVtZW50KTtcbiAgICAgIHJldHVybiB7IHN0YXRlbWVudEFkZGVkOiB0cnVlLCBwb2xpY3lEZXBlbmRhYmxlOiB0aGlzLnBvbGljeSB9O1xuICAgIH1cblxuICAgIHJldHVybiB7IHN0YXRlbWVudEFkZGVkOiBmYWxzZSB9O1xuICB9XG59XG5cbmNsYXNzIEltcG9ydGVkRXZlbnRCdXMgZXh0ZW5kcyBFdmVudEJ1c0Jhc2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgZXZlbnRCdXNBcm46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGV2ZW50QnVzTmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgZXZlbnRTb3VyY2VOYW1lPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgZXZlbnRCdXNPdXRwdXRzOiBFdmVudEJ1c091dHB1dHM7XG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpIHtcbiAgICByZXR1cm4gdGhpcy5ldmVudEJ1c091dHB1dHM7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBhdHRyczogRXZlbnRCdXNBdHRyaWJ1dGVzKSB7XG4gICAgY29uc3QgYXJuUGFydHMgPSBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChzY29wZSkuc3BsaXRBcm4oXG4gICAgICBhdHRycy5ldmVudEJ1c0FybixcbiAgICAgIEFybkZvcm1hdC5TTEFTSF9SRVNPVVJDRV9OQU1FLFxuICAgICk7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICBhY2NvdW50OiBhcm5QYXJ0cy5hY2NvdW50LFxuICAgICAgcmVnaW9uOiBhcm5QYXJ0cy5yZWdpb24sXG4gICAgfSk7XG5cbiAgICB0aGlzLmV2ZW50QnVzQXJuID0gYXR0cnMuZXZlbnRCdXNBcm47XG4gICAgdGhpcy5ldmVudEJ1c05hbWUgPSBhdHRycy5ldmVudEJ1c05hbWU7XG4gICAgdGhpcy5ldmVudFNvdXJjZU5hbWUgPSBhdHRycy5ldmVudFNvdXJjZU5hbWU7XG4gICAgdGhpcy5ldmVudEJ1c091dHB1dHMgPSB7XG4gICAgICBuYW1lOiB0aGlzLmV2ZW50QnVzTmFtZSxcbiAgICAgIGFybjogdGhpcy5ldmVudEJ1c0FybixcbiAgICAgIGV2ZW50U291cmNlTmFtZTogdGhpcy5ldmVudFNvdXJjZU5hbWUsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRUb1Jlc291cmNlUG9saWN5KFxuICAgIF9zdGF0ZW1lbnQ6IGlhbS5Qb2xpY3lTdGF0ZW1lbnQsXG4gICk6IGlhbS5BZGRUb1Jlc291cmNlUG9saWN5UmVzdWx0IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBbXG4gICAgICAgIFwiQ2Fubm90IGFkZCBhIHN0YXRlbWVudCB0byBhbiBpbXBvcnRlZCBFdmVudEJ1cy4gWW91IG1heSB1c2UgYEV2ZW50QnJpZGdlUGVybWlzc2lvbmAgaW5zdGVhZC5cIixcbiAgICAgICAgXCJJZiB0aGUgRXZlbnRCdXMgYWxyZWFkeSBoYXMgYSBwb2xpY3kgYXR0YWNoZWQsIHRoZSBwZXJtaXNzaW9ucyB3aWxsIGJlIG92ZXJ3cml0dGVuLlwiLFxuICAgICAgXS5qb2luKFwiXFxuXCIpLFxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIHRvIGFzc29jaWF0ZSBFdmVudCBCdXNlcyB3aXRoIGEgcG9saWN5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRCdXNQb2xpY3lQcm9wcyBleHRlbmRzIEF3c0NvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBldmVudCBidXMgdG8gd2hpY2ggdGhlIHBvbGljeSBhcHBsaWVzXG4gICAqL1xuICByZWFkb25seSBldmVudEJ1czogSUV2ZW50QnVzO1xufVxuXG4vKipcbiAqIFRoZSBwb2xpY3kgZm9yIGFuIEV2ZW50IEJ1c1xuICpcbiAqIFBvbGljaWVzIGRlZmluZSB0aGUgb3BlcmF0aW9ucyB0aGF0IGFyZSBhbGxvd2VkIG9uIHRoaXMgcmVzb3VyY2UuXG4gKlxuICogWW91IGFsbW9zdCBuZXZlciBuZWVkIHRvIGRlZmluZSB0aGlzIGNvbnN0cnVjdCBkaXJlY3RseS5cbiAqXG4gKiBUaGUgRXZlbnRCdXNQb2xpY3kgcmVzb3VyY2UgKGBhd3NfY2xvdWR3YXRjaF9ldmVudF9idXNfcG9saWN5YClcbiAqIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBFdmVudEJyaWRnZVBlcm1pc3Npb24gcmVzb3VyY2UgKGBhd3NfY2xvdWR3YXRjaF9ldmVudF9wZXJtaXNzaW9uYClcbiAqIGFuZCB3aWxsIG92ZXJ3cml0ZSBwZXJtaXNzaW9ucy5cbiAqXG4gKiBBbGwgQVdTIHJlc291cmNlcyB0aGF0IHN1cHBvcnQgcmVzb3VyY2UgcG9saWNpZXMgaGF2ZSBhIG1ldGhvZCBjYWxsZWRcbiAqIGBhZGRUb1Jlc291cmNlUG9saWN5KClgLCB3aGljaCB3aWxsIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgbmV3IHJlc291cmNlXG4gKiBwb2xpY3kgaWYgb25lIGRvZXNuJ3QgZXhpc3QgeWV0LCBvdGhlcndpc2UgaXQgd2lsbCBhZGQgdG8gdGhlIGV4aXN0aW5nXG4gKiBwb2xpY3kuXG4gKlxuICogUHJlZmVyIHRvIHVzZSBgYWRkVG9SZXNvdXJjZVBvbGljeSgpYCBpbnN0ZWFkLlxuICpcbiAqIEByZXNvdXJjZSBhd3NfY2xvdWR3YXRjaF9ldmVudF9idXNfcG9saWN5XG4gKi9cbmV4cG9ydCBjbGFzcyBFdmVudEJ1c1BvbGljeSBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2Uge1xuICAvKipcbiAgICogVGhlIElBTSBwb2xpY3kgZG9jdW1lbnQgZm9yIHRoaXMgcG9saWN5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRvY3VtZW50OiBpYW0uUG9saWN5RG9jdW1lbnQ7XG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5kb2N1bWVudC5vdXRwdXRzO1xuICB9XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBFdmVudEJ1c1BvbGljeVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgdGhpcy5kb2N1bWVudCA9IG5ldyBpYW0uUG9saWN5RG9jdW1lbnQodGhpcywgXCJEb2N1bWVudFwiKTtcblxuICAgIG5ldyBjbG91ZHdhdGNoRXZlbnRCdXNQb2xpY3kuQ2xvdWR3YXRjaEV2ZW50QnVzUG9saWN5KHRoaXMsIFwiUmVzb3VyY2VcIiwge1xuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tcHJvdmlkZXItYXdzL3B1bGwvMTY4NzQjZGlzY3Vzc2lvbl9yNjU2MDI0ODMwXG4gICAgICBwb2xpY3k6IHRoaXMuZG9jdW1lbnQuanNvbixcbiAgICAgIGV2ZW50QnVzTmFtZTogcHJvcHMuZXZlbnRCdXMuZXZlbnRCdXNOYW1lLFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogUHJvcGVydGllcyB0byBhZGQgcGVybWlzc2lvbnMgdG8gYW4gRXZlbnQgQnVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRCcmlkZ2VQZXJtaXNzaW9uUHJvcHMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8vIFRPRE86IEF1dG8gZ2VuZXJhdGUgdGhpcyB1c2luZyBzdHJ1Y3QgYnVpbGRlciB0byBrZWVwIGRvY3MgdXBkYXRlZD9cbiAgLyoqXG4gICAqIFRoZSBldmVudCBidXMgdG8gd2hpY2ggdGhlIHBvbGljeSBhcHBsaWVzXG4gICAqL1xuICByZWFkb25seSBldmVudEJ1czogSUV2ZW50QnVzO1xuICAvKipcbiAgICogQW4gaWRlbnRpZmllciBzdHJpbmcgZm9yIHRoZSBleHRlcm5hbCBhY2NvdW50IHRoYXRcbiAgICogeW91IGFyZSBncmFudGluZyBwZXJtaXNzaW9ucyB0by5cbiAgICpcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcy9yZXNvdXJjZXMvY2xvdWR3YXRjaF9ldmVudF9wZXJtaXNzaW9uI3N0YXRlbWVudF9pZCBDbG91ZHdhdGNoRXZlbnRQZXJtaXNzaW9uI3N0YXRlbWVudF9pZH1cbiAgICovXG4gIHJlYWRvbmx5IHN0YXRlbWVudElkOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgYWN0aW9uIHRoYXQgeW91IGFyZSBlbmFibGluZyB0aGUgb3RoZXIgYWNjb3VudCB0byBwZXJmb3JtLiBEZWZhdWx0cyB0byBldmVudHM6UHV0RXZlbnRzXG4gICAqXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42OC4wL2RvY3MvcmVzb3VyY2VzL2Nsb3Vkd2F0Y2hfZXZlbnRfcGVybWlzc2lvbiNhY3Rpb24gQ2xvdWR3YXRjaEV2ZW50UGVybWlzc2lvbiNhY3Rpb259XG4gICAqIEBkZWZhdWx0IFwiZXZlbnRzOlB1dEV2ZW50c1wiXG4gICAqL1xuICByZWFkb25seSBhY3Rpb24/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzL3Jlc291cmNlcy9jbG91ZHdhdGNoX2V2ZW50X3Blcm1pc3Npb24jZXZlbnRfYnVzX25hbWUgQ2xvdWR3YXRjaEV2ZW50UGVybWlzc2lvbiNldmVudF9idXNfbmFtZX1cbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50QnVzTmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42OC4wL2RvY3MvcmVzb3VyY2VzL2Nsb3Vkd2F0Y2hfZXZlbnRfcGVybWlzc2lvbiNpZCBDbG91ZHdhdGNoRXZlbnRQZXJtaXNzaW9uI2lkfVxuICAgKlxuICAgKiBQbGVhc2UgYmUgYXdhcmUgdGhhdCB0aGUgaWQgZmllbGQgaXMgYXV0b21hdGljYWxseSBhZGRlZCB0byBhbGwgcmVzb3VyY2VzIGluIFRlcnJhZm9ybSBwcm92aWRlcnMgdXNpbmcgYSBUZXJyYWZvcm0gcHJvdmlkZXIgU0RLIHZlcnNpb24gYmVsb3cgMi5cbiAgICogSWYgeW91IGV4cGVyaWVuY2UgcHJvYmxlbXMgc2V0dGluZyB0aGlzIHZhbHVlIGl0IG1pZ2h0IG5vdCBiZSBzZXR0YWJsZS4gUGxlYXNlIHRha2UgYSBsb29rIGF0IHRoZSBwcm92aWRlciBkb2N1bWVudGF0aW9uIHRvIGVuc3VyZSBpdCBzaG91bGQgYmUgc2V0dGFibGUuXG4gICAqL1xuICByZWFkb25seSBpZD86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSAxMi1kaWdpdCBBV1MgYWNjb3VudCBJRCB0aGF0IHlvdSBhcmUgcGVybWl0dGluZyB0byBwdXQgZXZlbnRzIHRvIHlvdXIgZGVmYXVsdCBldmVudCBidXMuXG4gICAqIFNwZWNpZnkgKiB0byBwZXJtaXQgYW55IGFjY291bnQgdG8gcHV0IGV2ZW50cyB0byB5b3VyIGRlZmF1bHQgZXZlbnQgYnVzLCBvcHRpb25hbGx5IGxpbWl0ZWRcbiAgICogYnkgY29uZGl0aW9uLlxuICAgKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzL3Jlc291cmNlcy9jbG91ZHdhdGNoX2V2ZW50X3Blcm1pc3Npb24jcHJpbmNpcGFsIENsb3Vkd2F0Y2hFdmVudFBlcm1pc3Npb24jcHJpbmNpcGFsfVxuICAgKi9cbiAgcmVhZG9ubHkgcHJpbmNpcGFsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIGJsb2NrIHRvIGxpbWl0IHRoZSBldmVudCBidXMgcGVybWlzc2lvbnMgeW91IGFyZSBncmFudGluZyB0byBvbmx5IGFjY291bnRzIHRoYXRcbiAgICogZnVsZmlsbCB0aGUgY29uZGl0aW9uLmNvbmRpdGlvbiBibG9ja1xuICAgKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzL3Jlc291cmNlcy9jbG91ZHdhdGNoX2V2ZW50X3Blcm1pc3Npb24jY29uZGl0aW9uIENsb3Vkd2F0Y2hFdmVudFBlcm1pc3Npb24jY29uZGl0aW9ufVxuICAgKi9cbiAgcmVhZG9ubHkgY29uZGl0aW9uPzogY2xvdWR3YXRjaEV2ZW50UGVybWlzc2lvbi5DbG91ZHdhdGNoRXZlbnRQZXJtaXNzaW9uQ29uZGl0aW9uO1xufVxuXG4vKipcbiAqIEEgc2luZ2xlIHBlcm1pc3Npb24gZm9yIGFuIEV2ZW50IEJ1c1xuICpcbiAqIEFsbCBBV1MgcmVzb3VyY2VzIHRoYXQgc3VwcG9ydCByZXNvdXJjZSBwb2xpY2llcyBoYXZlIGEgbWV0aG9kIGNhbGxlZFxuICogYGFkZFRvUmVzb3VyY2VQb2xpY3koKWAsIHdoaWNoIHdpbGwgYXV0b21hdGljYWxseSBjcmVhdGUgYSBuZXcgcmVzb3VyY2VcbiAqIHBvbGljeSBpZiBvbmUgZG9lc24ndCBleGlzdCB5ZXQsIG90aGVyd2lzZSBpdCB3aWxsIGFkZCB0byB0aGUgZXhpc3RpbmdcbiAqIHBvbGljeS5cbiAqXG4gKiBJZiBgYWRkVG9SZXNvdXJjZVBvbGljeSgpYCB3YXMgdXNlZCBvbiB0aGUgZXZlbnQgYnVzLCBUaGUgRXZlbnRCdXNQb2xpY3kgcmVzb3VyY2VcbiAqIChgYXdzX2Nsb3Vkd2F0Y2hfZXZlbnRfYnVzX3BvbGljeWApIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoaXMgcmVzb3VyY2UgYW5kXG4gKiB3aWxsIG92ZXJ3cml0ZSBwZXJtaXNzaW9ucy5cbiAqXG4gKiBAcmVzb3VyY2UgYXdzX2Nsb3Vkd2F0Y2hfZXZlbnRfcGVybWlzc2lvblxuICovXG5leHBvcnQgY2xhc3MgRXZlbnRCcmlkZ2VQZXJtaXNzaW9uIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSB7XG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4ge307XG4gIH1cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEV2ZW50QnJpZGdlUGVybWlzc2lvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICBuZXcgY2xvdWR3YXRjaEV2ZW50UGVybWlzc2lvbi5DbG91ZHdhdGNoRXZlbnRQZXJtaXNzaW9uKHRoaXMsIFwiUmVzb3VyY2VcIiwge1xuICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2hhc2hpY29ycC90ZXJyYWZvcm0tcHJvdmlkZXItYXdzL3B1bGwvMTY4NzQjZGlzY3Vzc2lvbl9yNjU2MDI0ODMwXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGV2ZW50QnVzTmFtZTogcHJvcHMuZXZlbnRCdXMuZXZlbnRCdXNOYW1lLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -237,5 +237,5 @@ class Match {
237
237
  }
238
238
  exports.Match = Match;
239
239
  _a = JSII_RTTI_SYMBOL_1;
240
- Match[_a] = { fqn: "terraconstructs.aws.notify.Match", version: "0.0.16" };
240
+ Match[_a] = { fqn: "terraconstructs.aws.notify.Match", version: "0.0.18" };
241
241
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtcGF0dGVybi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mvbm90aWZ5L2V2ZW50LXBhdHRlcm4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvR0FBb0c7QUFFcEcsaUNBQTREO0FBYzVEOztHQUVHO0FBQ0gsTUFBYSxLQUFLO0lBQ2hCOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFNBQVM7UUFDckIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsTUFBTTtRQUNsQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFlBQVk7UUFDeEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBYTtRQUNyQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFhO1FBQzFDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBYTtRQUNoQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOztP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LDBGQUEwRjtRQUMxRixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FDYiw0REFBNEQsQ0FDN0QsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sYUFBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNO1FBQ0osT0FBTyxhQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUM7O0FBaFNILHNCQWlTQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE1Ni4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1ldmVudHMvbGliL2V2ZW50LXBhdHRlcm4udHNcblxuaW1wb3J0IHsgSVJlc29sdmFibGUsIElSZXNvbHZlQ29udGV4dCwgVG9rZW4gfSBmcm9tIFwiY2RrdGZcIjtcblxudHlwZSBDb21wYXJpc29uT3BlcmF0b3IgPSBcIj5cIiB8IFwiPj1cIiB8IFwiPFwiIHwgXCI8PVwiIHwgXCI9XCI7XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgaG93IHRvIGNvbnN0cnVjdCBtYXRjaGVyc1xuICovXG5pbnRlcmZhY2UgTWF0Y2hPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGxpc3Qgb2YgbWF0Y2hlcnMgc2hvdWxkIGJlIG1lcmdlZCBpbnRvIGEgc2luZ2xlIG1hdGNoZXJcbiAgICovXG4gIHJlYWRvbmx5IG1lcmdlTWF0Y2hlcnM6IGJvb2xlYW47XG59XG5cbi8qKlxuICogQW4gZXZlbnQgcGF0dGVybiBtYXRjaGVyXG4gKi9cbmV4cG9ydCBjbGFzcyBNYXRjaCBpbXBsZW1lbnRzIElSZXNvbHZhYmxlIHtcbiAgLyoqXG4gICAqIE1hdGNoZXMgYSBudWxsIHZhbHVlIGluIHRoZSBKU09OIG9mIHRoZSBldmVudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBudWxsVmFsdWUoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKFtudWxsXSk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyB3aGVuIHRoZSBmaWVsZCBpcyBwcmVzZW50IGluIHRoZSBKU09OIG9mIHRoZSBldmVudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBleGlzdHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKFt7IGV4aXN0czogdHJ1ZSB9XSk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyB3aGVuIHRoZSBmaWVsZCBpcyBhYnNlbnQgZnJvbSB0aGUgSlNPTiBvZiB0aGUgZXZlbnRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZG9lc05vdEV4aXN0KCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5mcm9tT2JqZWN0cyhbeyBleGlzdHM6IGZhbHNlIH1dKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIGEgc3RyaW5nLCBleGFjdGx5LCBpbiB0aGUgSlNPTiBvZiB0aGUgZXZlbnRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZXhhY3RTdHJpbmcodmFsdWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5mcm9tT2JqZWN0cyhbdmFsdWVdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIGEgc3RyaW5nLCByZWdhcmRsZXNzIG9mIGNhc2UsIGluIHRoZSBKU09OIG9mIHRoZSBldmVudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBlcXVhbHNJZ25vcmVDYXNlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbU9iamVjdHMoW3sgXCJlcXVhbHMtaWdub3JlLWNhc2VcIjogdmFsdWUgfV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgc3RyaW5ncyB3aXRoIHRoZSBnaXZlbiBwcmVmaXggaW4gdGhlIEpTT04gb2YgdGhlIGV2ZW50XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHByZWZpeCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKFt7IHByZWZpeDogdmFsdWUgfV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgc3RyaW5ncyB3aXRoIHRoZSBnaXZlbiBzdWZmaXggaW4gdGhlIEpTT04gb2YgdGhlIGV2ZW50XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHN1ZmZpeCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKFt7IHN1ZmZpeDogdmFsdWUgfV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgc3RyaW5ncyB3aXRoIHRoZSBnaXZlbiBwcmVmaXggaW4gdGhlIEpTT04gb2YgdGhlIGV2ZW50IHJlZ2FyZGxlc3Mgb2YgdGhlIGNhc2luZ1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBwcmVmaXhFcXVhbHNJZ25vcmVDYXNlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbU9iamVjdHMoW3sgcHJlZml4OiB7IFwiZXF1YWxzLWlnbm9yZS1jYXNlXCI6IHZhbHVlIH0gfV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgc3RyaW5ncyB3aXRoIHRoZSBnaXZlbiBzdWZmaXggaW4gdGhlIEpTT04gb2YgdGhlIGV2ZW50IHJlZ2FyZGxlc3Mgb2YgdGhlIGNhc2luZ1xuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzdWZmaXhFcXVhbHNJZ25vcmVDYXNlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbU9iamVjdHMoW3sgc3VmZml4OiB7IFwiZXF1YWxzLWlnbm9yZS1jYXNlXCI6IHZhbHVlIH0gfV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgc3RyaW5ncyB3aXRoIHRoZSBnaXZlbiB3aWxkY2FyZCBwYXR0ZXJuIGluIHRoZSBKU09OIG9mIHRoZSBldmVudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aWxkY2FyZCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKFt7IHdpbGRjYXJkOiB2YWx1ZSB9XSk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyBJUHY0IGFuZCBJUHY2IG5ldHdvcmsgYWRkcmVzc2VzIHVzaW5nIHRoZSBDbGFzc2xlc3MgSW50ZXItRG9tYWluIFJvdXRpbmcgKENJRFIpIGZvcm1hdFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjaWRyKHJhbmdlOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgaXB2NFJlZ2V4ID1cbiAgICAgIC9eKFswLTldezEsM31cXC4pezN9WzAtOV17MSwzfShcXC8oWzAtOV18WzEtMl1bMC05XXwzWzAtMl0pKT8kL2dpbTtcbiAgICBjb25zdCBpcHY2UmVnZXggPVxuICAgICAgL15zKigoKFswLTlBLUZhLWZdezEsNH06KXs3fShbMC05QS1GYS1mXXsxLDR9fDopKXwoKFswLTlBLUZhLWZdezEsNH06KXs2fSg6WzAtOUEtRmEtZl17MSw0fXwoKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkoLigyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKXszfSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezV9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsMn0pfDooKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkoLigyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKXszfSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezR9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsM30pfCgoOlswLTlBLUZhLWZdezEsNH0pPzooKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkoLigyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKXszfSkpfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXszfSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDR9KXwoKDpbMC05QS1GYS1mXXsxLDR9KXswLDJ9OigoMjVbMC01XXwyWzAtNF1kfDFkZHxbMS05XT9kKSguKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkpezN9KSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezJ9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsNX0pfCgoOlswLTlBLUZhLWZdezEsNH0pezAsM306KCgyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKC4oMjVbMC01XXwyWzAtNF1kfDFkZHxbMS05XT9kKSl7M30pKXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7MX0oKCg6WzAtOUEtRmEtZl17MSw0fSl7MSw2fSl8KCg6WzAtOUEtRmEtZl17MSw0fSl7MCw0fTooKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkoLigyNVswLTVdfDJbMC00XWR8MWRkfFsxLTldP2QpKXszfSkpfDopKXwoOigoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDd9KXwoKDpbMC05QS1GYS1mXXsxLDR9KXswLDV9OigoMjVbMC01XXwyWzAtNF1kfDFkZHxbMS05XT9kKSguKDI1WzAtNV18MlswLTRdZHwxZGR8WzEtOV0/ZCkpezN9KSl8OikpKSglLispP3MqKFxcLyhbMC05XXxbMS05XVswLTldfDFbMC0xXVswLTldfDEyWzAtOF0pKT8kL2dpbTtcblxuICAgIGlmICghaXB2NFJlZ2V4LnRlc3QocmFuZ2UpICYmICFpcHY2UmVnZXgudGVzdChyYW5nZSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBJUCBhZGRyZXNzIHJhbmdlOiAke3JhbmdlfWApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKFt7IGNpZHI6IHJhbmdlIH1dKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIElQdjQgYW5kIElQdjYgbmV0d29yayBhZGRyZXNzZXMgdXNpbmcgdGhlIENsYXNzbGVzcyBJbnRlci1Eb21haW4gUm91dGluZyAoQ0lEUikgZm9ybWF0LlxuICAgKiBBbGlhcyBvZiBgY2lkcigpYC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXBBZGRyZXNzUmFuZ2UocmFuZ2U6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gTWF0Y2guY2lkcihyYW5nZSk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyBhbnl0aGluZyBleGNlcHQgd2hhdCdzIHByb3ZpZGVkIGluIHRoZSBydWxlLiBUaGUgbGlzdCBvZiBwcm92aWRlZCB2YWx1ZXMgbXVzdCBjb250YWluXG4gICAqIG9ubHkgc3RyaW5ncyBvciBvbmx5IG51bWJlcnMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFueXRoaW5nQnV0KC4uLnZhbHVlczogYW55W10pOiBzdHJpbmdbXSB7XG4gICAgaWYgKHZhbHVlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcImFueXRoaW5nQnV0IG1hdGNoZXJzIG11c3QgYmUgbm9uLWVtcHR5IGxpc3RzXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IGFsbE51bWJlcnMgPSB2YWx1ZXMuZXZlcnkoKHYpID0+IHR5cGVvZiB2ID09PSBcIm51bWJlclwiKTtcbiAgICBjb25zdCBhbGxTdHJpbmdzID0gdmFsdWVzLmV2ZXJ5KCh2KSA9PiB0eXBlb2YgdiA9PT0gXCJzdHJpbmdcIik7XG5cbiAgICBpZiAoIShhbGxOdW1iZXJzIHx8IGFsbFN0cmluZ3MpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiYW55dGhpbmdCdXQgbWF0Y2hlcnMgbXVzdCBiZSBsaXN0cyB0aGF0IGNvbnRhaW4gb25seSBzdHJpbmdzIG9yIG9ubHkgbnVtYmVycy5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZnJvbU9iamVjdHMoW3sgXCJhbnl0aGluZy1idXRcIjogdmFsdWVzIH1dKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIGFueSBzdHJpbmcgdGhhdCBkb2Vzbid0IHN0YXJ0IHdpdGggdGhlIGdpdmVuIHByZWZpeC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYW55dGhpbmdCdXRQcmVmaXgoLi4udmFsdWVzOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5hbnl0aGluZ0J1dENvbmp1bmN0aW9uKFwicHJlZml4XCIsIHZhbHVlcyk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyBhbnkgc3RyaW5nIHRoYXQgZG9lc24ndCBlbmQgd2l0aCB0aGUgZ2l2ZW4gc3VmZml4LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhbnl0aGluZ0J1dFN1ZmZpeCguLi52YWx1ZXM6IHN0cmluZ1tdKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmFueXRoaW5nQnV0Q29uanVuY3Rpb24oXCJzdWZmaXhcIiwgdmFsdWVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIGFueSBzdHJpbmcgdGhhdCBkb2Vzbid0IG1hdGNoIHdpdGggdGhlIGdpdmVuIHdpbGRjYXJkIHBhdHRlcm4uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFueXRoaW5nQnV0V2lsZGNhcmQoLi4udmFsdWVzOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5hbnl0aGluZ0J1dENvbmp1bmN0aW9uKFwid2lsZGNhcmRcIiwgdmFsdWVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIGFueSBzdHJpbmcgdGhhdCBkb2Vzbid0IG1hdGNoIHdpdGggdGhlIGdpdmVuIHZhbHVlIHJlZ2FyZGxlc3Mgb2YgY2hhcmFjdGVyIGNhc2luZy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYW55dGhpbmdCdXRFcXVhbHNJZ25vcmVDYXNlKC4uLnZhbHVlczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuYW55dGhpbmdCdXRDb25qdW5jdGlvbihcImVxdWFscy1pZ25vcmUtY2FzZVwiLCB2YWx1ZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgbnVtYmVycyBncmVhdGVyIHRoYW4gdGhlIHByb3ZpZGVkIHZhbHVlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGdyZWF0ZXJUaGFuKHZhbHVlOiBudW1iZXIpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMubnVtZXJpYyhcIj5cIiwgdmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgbnVtYmVycyBncmVhdGVyIHRoYW4sIG9yIGVxdWFsIHRvLCB0aGUgcHJvdmlkZWQgdmFsdWVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZ3JlYXRlclRoYW5PckVxdWFsKHZhbHVlOiBudW1iZXIpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMubnVtZXJpYyhcIj49XCIsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIG51bWJlcnMgbGVzcyB0aGFuIHRoZSBwcm92aWRlZCB2YWx1ZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBsZXNzVGhhbih2YWx1ZTogbnVtYmVyKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLm51bWVyaWMoXCI8XCIsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIG51bWJlcnMgbGVzcyB0aGFuLCBvciBlcXVhbCB0bywgdGhlIHByb3ZpZGVkIHZhbHVlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGxlc3NUaGFuT3JFcXVhbCh2YWx1ZTogbnVtYmVyKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLm51bWVyaWMoXCI8PVwiLCB2YWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyBudW1iZXJzIGVxdWFsIHRvIHRoZSBwcm92aWRlZCB2YWx1ZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBlcXVhbCh2YWx1ZTogbnVtYmVyKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLm51bWVyaWMoXCI9XCIsIHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXRjaGVzIG51bWJlcnMgaW5zaWRlIGEgY2xvc2VkIG51bWVyaWMgaW50ZXJ2YWwuIEVxdWl2YWxlbnQgdG86XG4gICAqXG4gICAqICAgIE1hdGNoLmFsbE9mKE1hdGNoLmdyZWF0ZXJUaGFuT3JFcXVhbChsb3dlciksIE1hdGNoLmxlc3NUaGFuT3JFcXVhbCh1cHBlcikpXG4gICAqXG4gICAqIEBwYXJhbSBsb3dlciBMb3dlciBib3VuZCAoaW5jbHVzaXZlKVxuICAgKiBAcGFyYW0gdXBwZXIgVXBwZXIgYm91bmQgKGluY2x1c2l2ZSlcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaW50ZXJ2YWwobG93ZXI6IG51bWJlciwgdXBwZXI6IG51bWJlcik6IHN0cmluZ1tdIHtcbiAgICBpZiAobG93ZXIgPiB1cHBlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGludGVydmFsOiBbJHtsb3dlcn0sICR7dXBwZXJ9XWApO1xuICAgIH1cblxuICAgIHJldHVybiBNYXRjaC5hbGxPZihcbiAgICAgIE1hdGNoLmdyZWF0ZXJUaGFuT3JFcXVhbChsb3dlciksXG4gICAgICBNYXRjaC5sZXNzVGhhbk9yRXF1YWwodXBwZXIpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogTWF0Y2hlcyBhbiBldmVudCBpZiBhbnkgb2YgdGhlIHByb3ZpZGVkIG1hdGNoZXJzIGRvLiBPbmx5IG51bWVyaWMgbWF0Y2hlcnMgYXJlIGFjY2VwdGVkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhbGxPZiguLi5tYXRjaGVyczogYW55W10pOiBzdHJpbmdbXSB7XG4gICAgaWYgKG1hdGNoZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQSBsaXN0IG9mIG1hdGNoZXJzIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgZWxlbWVudC5cIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuZnJvbU1lcmdlZE9iamVjdHMobWF0Y2hlcnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIE1hdGNoZXMgYW4gZXZlbnQgaWYgYW55IG9mIHRoZSBwcm92aWRlZCBtYXRjaGVycyBkb2VzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhbnlPZiguLi5tYXRjaGVyczogYW55W10pOiBzdHJpbmdbXSB7XG4gICAgaWYgKG1hdGNoZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQSBsaXN0IG9mIG1hdGNoZXJzIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgZWxlbWVudC5cIik7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3RzKG1hdGNoZXJzKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGFueXRoaW5nQnV0Q29uanVuY3Rpb24oXG4gICAgZmlsdGVyS2V5OiBzdHJpbmcsXG4gICAgdmFsdWVzOiBzdHJpbmdbXSxcbiAgKTogc3RyaW5nW10ge1xuICAgIGlmICh2YWx1ZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJhbnl0aGluZ0J1dCBtYXRjaGVycyBtdXN0IGJlIG5vbi1lbXB0eSBsaXN0c1wiKTtcbiAgICB9XG5cbiAgICAvLyBXaGVuIHRoZXJlIGlzIGEgc2luZ2xlIHZhbHVlIHJldHVybiBpdCwgb3RoZXJ3aXNlIHJldHVybiB0aGUgYXJyYXlcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHZhbHVlcy5sZW5ndGggPT09IDEgPyB2YWx1ZXNbMF0gOiB2YWx1ZXM7XG5cbiAgICByZXR1cm4gdGhpcy5mcm9tT2JqZWN0cyhbeyBcImFueXRoaW5nLWJ1dFwiOiB7IFtmaWx0ZXJLZXldOiBmaWx0ZXJWYWx1ZSB9IH1dKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIG51bWVyaWMoXG4gICAgb3BlcmF0b3I6IENvbXBhcmlzb25PcGVyYXRvcixcbiAgICB2YWx1ZTogbnVtYmVyLFxuICApOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbU9iamVjdHMoW3sgbnVtZXJpYzogW29wZXJhdG9yLCB2YWx1ZV0gfV0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZnJvbU9iamVjdHModmFsdWVzOiBhbnlbXSk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gbmV3IE1hdGNoKHZhbHVlcywgeyBtZXJnZU1hdGNoZXJzOiBmYWxzZSB9KS5hc0xpc3QoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGZyb21NZXJnZWRPYmplY3RzKHZhbHVlczogYW55W10pOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIG5ldyBNYXRjaCh2YWx1ZXMsIHsgbWVyZ2VNYXRjaGVyczogdHJ1ZSB9KS5hc0xpc3QoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBjcmVhdGlvblN0YWNrOiBzdHJpbmdbXTtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWF0Y2hlcnM6IGFueVtdLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogTWF0Y2hPcHRpb25zLFxuICApIHtcbiAgICAvLyBUT0RPOiBJbXBsZW1lbnQgc3RhY2sgdHJhY2VzXG4gICAgLy8gcmVmOiBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3RlcnJhZm9ybS1jZGsvYmxvYi92MC4yMC45L3BhY2thZ2VzL2Nka3RmL2xpYi90b2tlbnMvcHJpdmF0ZS9zdGFjay10cmFjZS50cyNMOVxuICAgIC8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTQzLjAvcGFja2FnZXMvYXdzLWNkay1saWIvY29yZS9saWIvc3RhY2stdHJhY2UudHMjTDIyXG4gICAgdGhpcy5jcmVhdGlvblN0YWNrID0gW1wic3RhY2sgdHJhY2VzIGRpc2FibGVkXCJdO1xuICB9XG5cbiAgcmVzb2x2ZShjb250ZXh0OiBJUmVzb2x2ZUNvbnRleHQpOiBhbnkge1xuICAgIGNvbnN0IG1hdGNoZXJzID0gdGhpcy5tYXRjaGVycy5mbGF0TWFwKChtYXRjaGVyKSA9PlxuICAgICAgY29udGV4dC5yZXNvbHZlKG1hdGNoZXIpLFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5tZXJnZU1hdGNoZXJzID8gdGhpcy5tZXJnZShtYXRjaGVycykgOiBtYXRjaGVycztcbiAgfVxuXG4gIHByaXZhdGUgbWVyZ2UobWF0Y2hlcnM6IGFueVtdKTogYW55IHtcbiAgICAvLyBUaGlzIGlzIHRoZSBvbmx5IHN1cHBvcnRlZCBjYXNlIGZvciBtZXJnaW5nIGF0IHRoZSBtb21lbnQuXG4gICAgLy8gV2UgY2FuIGdlbmVyYWxpemUgdGhpcyBsb2dpYyBpZiBFdmVudEJyaWRnZSBzdGFydHMgc3VwcG9ydGluZyBtb3JlIGNhc2VzIGluIHRoZSBmdXR1cmUuXG4gICAgaWYgKCFtYXRjaGVycy5ldmVyeSgobWF0Y2hlcikgPT4gbWF0Y2hlcj8ubnVtZXJpYykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJPbmx5IG51bWVyaWMgbWF0Y2hlcnMgY2FuIGJlIG1lcmdlZCBpbnRvIGEgc2luZ2xlIG1hdGNoZXIuXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBbeyBudW1lcmljOiBtYXRjaGVycy5mbGF0TWFwKChtYXRjaGVyKSA9PiBtYXRjaGVyLm51bWVyaWMpIH1dO1xuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gVG9rZW4uYXNTdHJpbmcodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogQSByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG1hdGNoZXIgYXMgYSBsaXN0IG9mIHN0cmluZ3NcbiAgICovXG4gIGFzTGlzdCgpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFRva2VuLmFzTGlzdCh0aGlzKTtcbiAgfVxufVxuXG4vKipcbiAqIEV2ZW50cyBpbiBBbWF6b24gQ2xvdWRXYXRjaCBFdmVudHMgYXJlIHJlcHJlc2VudGVkIGFzIEpTT04gb2JqZWN0cy4gRm9yIG1vcmVcbiAqIGluZm9ybWF0aW9uIGFib3V0IEpTT04gb2JqZWN0cywgc2VlIFJGQyA3MTU5LlxuICpcbiAqICoqSW1wb3J0YW50Kio6IHRoaXMgY2xhc3MgY2FuIG9ubHkgYmUgdXNlZCB3aXRoIGEgYFJ1bGVgIGNsYXNzLiBJbiBwYXJ0aWN1bGFyLFxuICogZG8gbm90IHVzZSBpdCB3aXRoIGBDZm5SdWxlYCBjbGFzczogeW91ciBwYXR0ZXJuIHdpbGwgbm90IGJlIHJlbmRlcmVkXG4gKiBjb3JyZWN0bHkuIEluIGEgYENmblJ1bGVgIGNsYXNzLCB3cml0ZSB0aGUgcGF0dGVybiBhcyB5b3Ugbm9ybWFsbHkgd291bGQgd2hlblxuICogZGlyZWN0bHkgd3JpdGluZyBDbG91ZEZvcm1hdGlvbi5cbiAqXG4gKiBSdWxlcyB1c2UgZXZlbnQgcGF0dGVybnMgdG8gc2VsZWN0IGV2ZW50cyBhbmQgcm91dGUgdGhlbSB0byB0YXJnZXRzLiBBXG4gKiBwYXR0ZXJuIGVpdGhlciBtYXRjaGVzIGFuIGV2ZW50IG9yIGl0IGRvZXNuJ3QuIEV2ZW50IHBhdHRlcm5zIGFyZSByZXByZXNlbnRlZFxuICogYXMgSlNPTiBvYmplY3RzIHdpdGggYSBzdHJ1Y3R1cmUgdGhhdCBpcyBzaW1pbGFyIHRvIHRoYXQgb2YgZXZlbnRzLlxuICpcbiAqIEl0IGlzIGltcG9ydGFudCB0byByZW1lbWJlciB0aGUgZm9sbG93aW5nIGFib3V0IGV2ZW50IHBhdHRlcm4gbWF0Y2hpbmc6XG4gKlxuICogLSBGb3IgYSBwYXR0ZXJuIHRvIG1hdGNoIGFuIGV2ZW50LCB0aGUgZXZlbnQgbXVzdCBjb250YWluIGFsbCB0aGUgZmllbGQgbmFtZXNcbiAqICAgbGlzdGVkIGluIHRoZSBwYXR0ZXJuLiBUaGUgZmllbGQgbmFtZXMgbXVzdCBhcHBlYXIgaW4gdGhlIGV2ZW50IHdpdGggdGhlXG4gKiAgIHNhbWUgbmVzdGluZyBzdHJ1Y3R1cmUuXG4gKlxuICogLSBPdGhlciBmaWVsZHMgb2YgdGhlIGV2ZW50IG5vdCBtZW50aW9uZWQgaW4gdGhlIHBhdHRlcm4gYXJlIGlnbm9yZWQ7XG4gKiAgIGVmZmVjdGl2ZWx5LCB0aGVyZSBpcyBhIGBgXCIqXCI6IFwiKlwiYGAgd2lsZGNhcmQgZm9yIGZpZWxkcyBub3QgbWVudGlvbmVkLlxuICpcbiAqIC0gVGhlIG1hdGNoaW5nIGlzIGV4YWN0IChjaGFyYWN0ZXItYnktY2hhcmFjdGVyKSwgd2l0aG91dCBjYXNlLWZvbGRpbmcgb3IgYW55XG4gKiAgIG90aGVyIHN0cmluZyBub3JtYWxpemF0aW9uLlxuICpcbiAqIC0gVGhlIHZhbHVlcyBiZWluZyBtYXRjaGVkIGZvbGxvdyBKU09OIHJ1bGVzOiBTdHJpbmdzIGVuY2xvc2VkIGluIHF1b3RlcyxcbiAqICAgbnVtYmVycywgYW5kIHRoZSB1bnF1b3RlZCBrZXl3b3JkcyB0cnVlLCBmYWxzZSwgYW5kIG51bGwuXG4gKlxuICogLSBOdW1iZXIgbWF0Y2hpbmcgaXMgYXQgdGhlIHN0cmluZyByZXByZXNlbnRhdGlvbiBsZXZlbC4gRm9yIGV4YW1wbGUsIDMwMCxcbiAqICAgMzAwLjAsIGFuZCAzLjBlMiBhcmUgbm90IGNvbnNpZGVyZWQgZXF1YWwuXG4gKlxuICogRm9yIGN1c3RvbSBldmVudHMsIHNvbWUgb3B0aW9uYWwgcHJvcGVydGllcyBhcmUgcmVxdWlyZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWVcbiAqIFtNaW5pbXVtIGluZm9ybWF0aW9uIG5lZWRlZCBmb3IgYSB2YWxpZCBjdXN0b20gZXZlbnRdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9ldmVudGJyaWRnZS9sYXRlc3QvdXNlcmd1aWRlL2ViLWV2ZW50cy1zdHJ1Y3R1cmUuaHRtbCNlYi1jdXN0b20tZXZlbnQpLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L2V2ZW50cy9DbG91ZFdhdGNoRXZlbnRzYW5kRXZlbnRQYXR0ZXJucy5odG1sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRQYXR0ZXJuIHtcbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQsIHRoaXMgaXMgc2V0IHRvIDAgKHplcm8pIGluIGFsbCBldmVudHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gZmlsdGVyaW5nIG9uIHZlcnNpb25cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQSB1bmlxdWUgdmFsdWUgaXMgZ2VuZXJhdGVkIGZvciBldmVyeSBldmVudC4gVGhpcyBjYW4gYmUgaGVscGZ1bCBpblxuICAgKiB0cmFjaW5nIGV2ZW50cyBhcyB0aGV5IG1vdmUgdGhyb3VnaCBydWxlcyB0byB0YXJnZXRzLCBhbmQgYXJlIHByb2Nlc3NlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBmaWx0ZXJpbmcgb24gaWRcbiAgICovXG4gIHJlYWRvbmx5IGlkPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIElkZW50aWZpZXMsIGluIGNvbWJpbmF0aW9uIHdpdGggdGhlIHNvdXJjZSBmaWVsZCwgdGhlIGZpZWxkcyBhbmQgdmFsdWVzXG4gICAqIHRoYXQgYXBwZWFyIGluIHRoZSBkZXRhaWwgZmllbGQuXG4gICAqXG4gICAqIFJlcHJlc2VudHMgdGhlIFwiZGV0YWlsLXR5cGVcIiBldmVudCBmaWVsZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBmaWx0ZXJpbmcgb24gZGV0YWlsIHR5cGVcbiAgICovXG4gIHJlYWRvbmx5IGRldGFpbFR5cGU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSWRlbnRpZmllcyB0aGUgc2VydmljZSB0aGF0IHNvdXJjZWQgdGhlIGV2ZW50LiBBbGwgZXZlbnRzIHNvdXJjZWQgZnJvbVxuICAgKiB3aXRoaW4gQVdTIGJlZ2luIHdpdGggXCJhd3MuXCIgQ3VzdG9tZXItZ2VuZXJhdGVkIGV2ZW50cyBjYW4gaGF2ZSBhbnkgdmFsdWVcbiAgICogaGVyZSwgYXMgbG9uZyBhcyBpdCBkb2Vzbid0IGJlZ2luIHdpdGggXCJhd3MuXCIgV2UgcmVjb21tZW5kIHRoZSB1c2Ugb2ZcbiAgICogSmF2YSBwYWNrYWdlLW5hbWUgc3R5bGUgcmV2ZXJzZSBkb21haW4tbmFtZSBzdHJpbmdzLlxuICAgKlxuICAgKiBUbyBmaW5kIHRoZSBjb3JyZWN0IHZhbHVlIGZvciBzb3VyY2UgZm9yIGFuIEFXUyBzZXJ2aWNlLCBzZWUgdGhlIHRhYmxlIGluXG4gICAqIEFXUyBTZXJ2aWNlIE5hbWVzcGFjZXMuIEZvciBleGFtcGxlLCB0aGUgc291cmNlIHZhbHVlIGZvciBBbWF6b25cbiAgICogQ2xvdWRGcm9udCBpcyBhd3MuY2xvdWRmcm9udC5cbiAgICpcbiAgICogQHNlZSBodHRwOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9nZW5lcmFsL2xhdGVzdC9nci9hd3MtYXJucy1hbmQtbmFtZXNwYWNlcy5odG1sI2dlbnJlZi1hd3Mtc2VydmljZS1uYW1lc3BhY2VzXG4gICAqIEBkZWZhdWx0IC0gTm8gZmlsdGVyaW5nIG9uIHNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSAxMi1kaWdpdCBudW1iZXIgaWRlbnRpZnlpbmcgYW4gQVdTIGFjY291bnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gZmlsdGVyaW5nIG9uIGFjY291bnRcbiAgICovXG4gIHJlYWRvbmx5IGFjY291bnQ/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGV2ZW50IHRpbWVzdGFtcCwgd2hpY2ggY2FuIGJlIHNwZWNpZmllZCBieSB0aGUgc2VydmljZSBvcmlnaW5hdGluZ1xuICAgKiB0aGUgZXZlbnQuIElmIHRoZSBldmVudCBzcGFucyBhIHRpbWUgaW50ZXJ2YWwsIHRoZSBzZXJ2aWNlIG1pZ2h0IGNob29zZVxuICAgKiB0byByZXBvcnQgdGhlIHN0YXJ0IHRpbWUsIHNvIHRoaXMgdmFsdWUgY2FuIGJlIG5vdGljZWFibHkgYmVmb3JlIHRoZSB0aW1lXG4gICAqIHRoZSBldmVudCBpcyBhY3R1YWxseSByZWNlaXZlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBmaWx0ZXJpbmcgb24gdGltZVxuICAgKi9cbiAgcmVhZG9ubHkgdGltZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIHRoZSBBV1MgcmVnaW9uIHdoZXJlIHRoZSBldmVudCBvcmlnaW5hdGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGZpbHRlcmluZyBvbiByZWdpb25cbiAgICovXG4gIHJlYWRvbmx5IHJlZ2lvbj86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGlzIEpTT04gYXJyYXkgY29udGFpbnMgQVJOcyB0aGF0IGlkZW50aWZ5IHJlc291cmNlcyB0aGF0IGFyZSBpbnZvbHZlZFxuICAgKiBpbiB0aGUgZXZlbnQuIEluY2x1c2lvbiBvZiB0aGVzZSBBUk5zIGlzIGF0IHRoZSBkaXNjcmV0aW9uIG9mIHRoZVxuICAgKiBzZXJ2aWNlLlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgQW1hem9uIEVDMiBpbnN0YW5jZSBzdGF0ZS1jaGFuZ2VzIGluY2x1ZGUgQW1hem9uIEVDMlxuICAgKiBpbnN0YW5jZSBBUk5zLCBBdXRvIFNjYWxpbmcgZXZlbnRzIGluY2x1ZGUgQVJOcyBmb3IgYm90aCBpbnN0YW5jZXMgYW5kXG4gICAqIEF1dG8gU2NhbGluZyBncm91cHMsIGJ1dCBBUEkgY2FsbHMgd2l0aCBBV1MgQ2xvdWRUcmFpbCBkbyBub3QgaW5jbHVkZVxuICAgKiByZXNvdXJjZSBBUk5zLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGZpbHRlcmluZyBvbiByZXNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2VzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEEgSlNPTiBvYmplY3QsIHdob3NlIGNvbnRlbnQgaXMgYXQgdGhlIGRpc2NyZXRpb24gb2YgdGhlIHNlcnZpY2VcbiAgICogb3JpZ2luYXRpbmcgdGhlIGV2ZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGZpbHRlcmluZyBvbiBkZXRhaWxcbiAgICovXG4gIHJlYWRvbmx5IGRldGFpbD86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG59XG4iXX0=
@@ -11,5 +11,16 @@ export * from "./schedule";
11
11
  export * from "./target";
12
12
  export * from "./kinesis-stream";
13
13
  export * from "./resource-policy";
14
+ export * from "./policy";
15
+ export * from "./topic";
16
+ export * from "./topic-base";
17
+ export * from "./subscription";
18
+ export * from "./subscriber";
19
+ export * from "./subscription-filter";
20
+ export * from "./delivery-policy";
21
+ import "./sns-augmentations.generated";
22
+ export * from "./notification-rule";
23
+ export * from "./notification-rule-source";
24
+ export * from "./notification-rule-target";
14
25
  export * as targets from "./targets";
15
26
  export * from "./queue-config.generated";
@@ -29,9 +29,22 @@ __exportStar(require("./target"), exports);
29
29
  // kinesis
30
30
  __exportStar(require("./kinesis-stream"), exports);
31
31
  __exportStar(require("./resource-policy"), exports);
32
+ // sns
33
+ __exportStar(require("./policy"), exports);
34
+ __exportStar(require("./topic"), exports);
35
+ __exportStar(require("./topic-base"), exports);
36
+ __exportStar(require("./subscription"), exports);
37
+ __exportStar(require("./subscriber"), exports);
38
+ __exportStar(require("./subscription-filter"), exports);
39
+ __exportStar(require("./delivery-policy"), exports);
40
+ require("./sns-augmentations.generated");
41
+ // codestarnotifications
42
+ __exportStar(require("./notification-rule"), exports);
43
+ __exportStar(require("./notification-rule-source"), exports);
44
+ __exportStar(require("./notification-rule-target"), exports);
32
45
  exports.targets = require("./targets");
33
46
  // generated by JSII Struct builder to please JSII pacman
34
47
  __exportStar(require("./queue-config.generated"), exports);
35
48
  // TODO: re-add QueueBase and Metrics support
36
49
  // import "./sqs-augmentations.generated";
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL25vdGlmeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDRDQUEwQjtBQUMxQiw4Q0FBNEI7QUFDNUIsa0RBQWdDO0FBQ2hDLCtDQUE2QjtBQUM3QiwwQ0FBd0I7QUFDeEIscURBQW1DO0FBQ25DLGlEQUErQjtBQUMvQiwwQ0FBd0I7QUFDeEIseUNBQXVCO0FBQ3ZCLDZDQUEyQjtBQUMzQiwyQ0FBeUI7QUFDekIsVUFBVTtBQUNWLG1EQUFpQztBQUNqQyxvREFBa0M7QUFFbEMsdUNBQXFDO0FBRXJDLHlEQUF5RDtBQUN6RCwyREFBeUM7QUFFekMsNkNBQTZDO0FBQzdDLDBDQUEwQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2FyY2hpdmVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V2ZW50LWJ1c1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXZlbnQtcGF0dGVyblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29ubmVjdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vaW5wdXRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL29uLWV2ZW50LW9wdGlvbnNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3F1ZXVlLXBvbGljeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcXVldWVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3J1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NjaGVkdWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90YXJnZXRcIjtcbi8vIGtpbmVzaXNcbmV4cG9ydCAqIGZyb20gXCIuL2tpbmVzaXMtc3RyZWFtXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZXNvdXJjZS1wb2xpY3lcIjtcblxuZXhwb3J0ICogYXMgdGFyZ2V0cyBmcm9tIFwiLi90YXJnZXRzXCI7XG5cbi8vIGdlbmVyYXRlZCBieSBKU0lJIFN0cnVjdCBidWlsZGVyIHRvIHBsZWFzZSBKU0lJIHBhY21hblxuZXhwb3J0ICogZnJvbSBcIi4vcXVldWUtY29uZmlnLmdlbmVyYXRlZFwiO1xuXG4vLyBUT0RPOiByZS1hZGQgUXVldWVCYXNlIGFuZCBNZXRyaWNzIHN1cHBvcnRcbi8vIGltcG9ydCBcIi4vc3FzLWF1Z21lbnRhdGlvbnMuZ2VuZXJhdGVkXCI7XG4iXX0=
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL25vdGlmeS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDRDQUEwQjtBQUMxQiw4Q0FBNEI7QUFDNUIsa0RBQWdDO0FBQ2hDLCtDQUE2QjtBQUM3QiwwQ0FBd0I7QUFDeEIscURBQW1DO0FBQ25DLGlEQUErQjtBQUMvQiwwQ0FBd0I7QUFDeEIseUNBQXVCO0FBQ3ZCLDZDQUEyQjtBQUMzQiwyQ0FBeUI7QUFDekIsVUFBVTtBQUNWLG1EQUFpQztBQUNqQyxvREFBa0M7QUFDbEMsTUFBTTtBQUNOLDJDQUF5QjtBQUN6QiwwQ0FBd0I7QUFDeEIsK0NBQTZCO0FBQzdCLGlEQUErQjtBQUMvQiwrQ0FBNkI7QUFDN0Isd0RBQXNDO0FBQ3RDLG9EQUFrQztBQUVsQyx5Q0FBdUM7QUFDdkMsd0JBQXdCO0FBQ3hCLHNEQUFvQztBQUNwQyw2REFBMkM7QUFDM0MsNkRBQTJDO0FBRTNDLHVDQUFxQztBQUVyQyx5REFBeUQ7QUFDekQsMkRBQXlDO0FBRXpDLDZDQUE2QztBQUM3QywwQ0FBMEMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9hcmNoaXZlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ldmVudC1idXNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V2ZW50LXBhdHRlcm5cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Nvbm5lY3Rpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lucHV0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9vbi1ldmVudC1vcHRpb25zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9xdWV1ZS1wb2xpY3lcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3F1ZXVlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ydWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9zY2hlZHVsZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdGFyZ2V0XCI7XG4vLyBraW5lc2lzXG5leHBvcnQgKiBmcm9tIFwiLi9raW5lc2lzLXN0cmVhbVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmVzb3VyY2UtcG9saWN5XCI7XG4vLyBzbnNcbmV4cG9ydCAqIGZyb20gXCIuL3BvbGljeVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdG9waWNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RvcGljLWJhc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3N1YnNjcmlwdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3Vic2NyaWJlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3Vic2NyaXB0aW9uLWZpbHRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZGVsaXZlcnktcG9saWN5XCI7XG5cbmltcG9ydCBcIi4vc25zLWF1Z21lbnRhdGlvbnMuZ2VuZXJhdGVkXCI7XG4vLyBjb2Rlc3Rhcm5vdGlmaWNhdGlvbnNcbmV4cG9ydCAqIGZyb20gXCIuL25vdGlmaWNhdGlvbi1ydWxlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ub3RpZmljYXRpb24tcnVsZS1zb3VyY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25vdGlmaWNhdGlvbi1ydWxlLXRhcmdldFwiO1xuXG5leHBvcnQgKiBhcyB0YXJnZXRzIGZyb20gXCIuL3RhcmdldHNcIjtcblxuLy8gZ2VuZXJhdGVkIGJ5IEpTSUkgU3RydWN0IGJ1aWxkZXIgdG8gcGxlYXNlIEpTSUkgcGFjbWFuXG5leHBvcnQgKiBmcm9tIFwiLi9xdWV1ZS1jb25maWcuZ2VuZXJhdGVkXCI7XG5cbi8vIFRPRE86IHJlLWFkZCBRdWV1ZUJhc2UgYW5kIE1ldHJpY3Mgc3VwcG9ydFxuLy8gaW1wb3J0IFwiLi9zcXMtYXVnbWVudGF0aW9ucy5nZW5lcmF0ZWRcIjtcbiJdfQ==
@@ -54,7 +54,7 @@ class RuleTargetInput {
54
54
  }
55
55
  exports.RuleTargetInput = RuleTargetInput;
56
56
  _a = JSII_RTTI_SYMBOL_1;
57
- RuleTargetInput[_a] = { fqn: "terraconstructs.aws.notify.RuleTargetInput", version: "0.0.16" };
57
+ RuleTargetInput[_a] = { fqn: "terraconstructs.aws.notify.RuleTargetInput", version: "0.0.18" };
58
58
  /**
59
59
  * Event Input that is directly derived from the construct
60
60
  */
@@ -269,7 +269,7 @@ class EventField {
269
269
  }
270
270
  exports.EventField = EventField;
271
271
  _b = JSII_RTTI_SYMBOL_1;
272
- EventField[_b] = { fqn: "terraconstructs.aws.notify.EventField", version: "0.0.16" };
272
+ EventField[_b] = { fqn: "terraconstructs.aws.notify.EventField", version: "0.0.18" };
273
273
  var InputType;
274
274
  (function (InputType) {
275
275
  InputType[InputType["Object"] = 0] = "Object";
@@ -494,7 +494,7 @@ class Stream extends StreamBase {
494
494
  }
495
495
  exports.Stream = Stream;
496
496
  _a = JSII_RTTI_SYMBOL_1;
497
- Stream[_a] = { fqn: "terraconstructs.aws.notify.Stream", version: "0.0.16" };
497
+ Stream[_a] = { fqn: "terraconstructs.aws.notify.Stream", version: "0.0.18" };
498
498
  /**
499
499
  * What kind of server-side encryption to apply to this stream
500
500
  */
@@ -0,0 +1,20 @@
1
+ import * as constructs from "constructs";
2
+ /**
3
+ * Information about the Codebuild or CodePipeline associated with a notification source.
4
+ */
5
+ export interface NotificationRuleSourceConfig {
6
+ /**
7
+ * The Amazon Resource Name (ARN) of the notification source.
8
+ */
9
+ readonly sourceArn: string;
10
+ }
11
+ /**
12
+ * Represents a notification source
13
+ * The source that allows CodeBuild and CodePipeline to associate with this rule.
14
+ */
15
+ export interface INotificationRuleSource {
16
+ /**
17
+ * Returns a source configuration for notification rule.
18
+ */
19
+ bindAsNotificationRuleSource(scope: constructs.Construct): NotificationRuleSourceConfig;
20
+ }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // https://github.com/aws/aws-cdk/blob/a2c633f1e698249496f11338312ab42bd7b1e4f0/packages/aws-cdk-lib/aws-codestarnotifications/lib/notification-rule-source.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXJ1bGUtc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9ub3RpZnkvbm90aWZpY2F0aW9uLXJ1bGUtc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw4SkFBOEoiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi9hMmM2MzNmMWU2OTgyNDk0OTZmMTEzMzgzMTJhYjQyYmQ3YjFlNGYwL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1jb2Rlc3Rhcm5vdGlmaWNhdGlvbnMvbGliL25vdGlmaWNhdGlvbi1ydWxlLXNvdXJjZS50c1xuXG5pbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIENvZGVidWlsZCBvciBDb2RlUGlwZWxpbmUgYXNzb2NpYXRlZCB3aXRoIGEgbm90aWZpY2F0aW9uIHNvdXJjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb25SdWxlU291cmNlQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgbm90aWZpY2F0aW9uIHNvdXJjZS5cbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZUFybjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBub3RpZmljYXRpb24gc291cmNlXG4gKiBUaGUgc291cmNlIHRoYXQgYWxsb3dzIENvZGVCdWlsZCBhbmQgQ29kZVBpcGVsaW5lIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgcnVsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTm90aWZpY2F0aW9uUnVsZVNvdXJjZSB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc291cmNlIGNvbmZpZ3VyYXRpb24gZm9yIG5vdGlmaWNhdGlvbiBydWxlLlxuICAgKi9cbiAgYmluZEFzTm90aWZpY2F0aW9uUnVsZVNvdXJjZShcbiAgICBzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsXG4gICk6IE5vdGlmaWNhdGlvblJ1bGVTb3VyY2VDb25maWc7XG59XG4iXX0=
@@ -0,0 +1,24 @@
1
+ import * as constructs from "constructs";
2
+ /**
3
+ * Information about the SNS topic or AWS Chatbot client associated with a notification target.
4
+ */
5
+ export interface NotificationRuleTargetConfig {
6
+ /**
7
+ * The target type. Can be an Amazon SNS topic or AWS Chatbot client.
8
+ */
9
+ readonly targetType: string;
10
+ /**
11
+ * The Amazon Resource Name (ARN) of the Amazon SNS topic or AWS Chatbot client.
12
+ */
13
+ readonly targetAddress: string;
14
+ }
15
+ /**
16
+ * Represents a notification target
17
+ * That allows AWS Chatbot and SNS topic to associate with this rule target.
18
+ */
19
+ export interface INotificationRuleTarget {
20
+ /**
21
+ * Returns a target configuration for notification rule.
22
+ */
23
+ bindAsNotificationRuleTarget(scope: constructs.Construct): NotificationRuleTargetConfig;
24
+ }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ // https://github.com/aws/aws-cdk/blob/a2c633f1e698249496f11338312ab42bd7b1e4f0/packages/aws-cdk-lib/aws-codestarnotifications/lib/notification-rule-target.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLXJ1bGUtdGFyZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9ub3RpZnkvbm90aWZpY2F0aW9uLXJ1bGUtdGFyZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw4SkFBOEoiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi9hMmM2MzNmMWU2OTgyNDk0OTZmMTEzMzgzMTJhYjQyYmQ3YjFlNGYwL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1jb2Rlc3Rhcm5vdGlmaWNhdGlvbnMvbGliL25vdGlmaWNhdGlvbi1ydWxlLXRhcmdldC50c1xuXG5pbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIFNOUyB0b3BpYyBvciBBV1MgQ2hhdGJvdCBjbGllbnQgYXNzb2NpYXRlZCB3aXRoIGEgbm90aWZpY2F0aW9uIHRhcmdldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb25SdWxlVGFyZ2V0Q29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSB0YXJnZXQgdHlwZS4gQ2FuIGJlIGFuIEFtYXpvbiBTTlMgdG9waWMgb3IgQVdTIENoYXRib3QgY2xpZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0VHlwZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIEFtYXpvbiBTTlMgdG9waWMgb3IgQVdTIENoYXRib3QgY2xpZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0QWRkcmVzczogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBub3RpZmljYXRpb24gdGFyZ2V0XG4gKiBUaGF0IGFsbG93cyBBV1MgQ2hhdGJvdCBhbmQgU05TIHRvcGljIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgcnVsZSB0YXJnZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSU5vdGlmaWNhdGlvblJ1bGVUYXJnZXQge1xuICAvKipcbiAgICogUmV0dXJucyBhIHRhcmdldCBjb25maWd1cmF0aW9uIGZvciBub3RpZmljYXRpb24gcnVsZS5cbiAgICovXG4gIGJpbmRBc05vdGlmaWNhdGlvblJ1bGVUYXJnZXQoXG4gICAgc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LFxuICApOiBOb3RpZmljYXRpb25SdWxlVGFyZ2V0Q29uZmlnO1xufVxuIl19
@@ -0,0 +1,123 @@
1
+ import * as constructs from "constructs";
2
+ import { AwsConstructBase, AwsConstructProps, IAwsConstruct } from "..";
3
+ import { INotificationRuleSource } from "./notification-rule-source";
4
+ import { INotificationRuleTarget } from "./notification-rule-target";
5
+ /**
6
+ * The level of detail to include in the notifications for this resource.
7
+ */
8
+ export declare enum DetailType {
9
+ /**
10
+ * BASIC will include only the contents of the event as it would appear in AWS CloudWatch
11
+ */
12
+ BASIC = "BASIC",
13
+ /**
14
+ * FULL will include any supplemental information provided by AWS CodeStar Notifications and/or the service for the resource for which the notification is created.
15
+ */
16
+ FULL = "FULL"
17
+ }
18
+ /**
19
+ * Standard set of options for `notifyOnXxx` codestar notification handler on construct
20
+ */
21
+ export interface NotificationRuleOptions {
22
+ /**
23
+ * The name for the notification rule.
24
+ * Notification rule names must be unique in your AWS account.
25
+ *
26
+ * @default - generated from the `id`
27
+ */
28
+ readonly notificationRuleName?: string;
29
+ /**
30
+ * The status of the notification rule.
31
+ * If the enabled is set to DISABLED, notifications aren't sent for the notification rule.
32
+ *
33
+ * @default true
34
+ */
35
+ readonly enabled?: boolean;
36
+ /**
37
+ * The level of detail to include in the notifications for this resource.
38
+ * BASIC will include only the contents of the event as it would appear in AWS CloudWatch.
39
+ * FULL will include any supplemental information provided by AWS CodeStar Notifications and/or the service for the resource for which the notification is created.
40
+ *
41
+ * @default DetailType.FULL
42
+ */
43
+ readonly detailType?: DetailType;
44
+ }
45
+ /**
46
+ * Properties for a new notification rule
47
+ */
48
+ export interface NotificationRuleProps extends AwsConstructProps, NotificationRuleOptions {
49
+ /**
50
+ * A list of event types associated with this notification rule.
51
+ * For a complete list of event types and IDs, see Notification concepts in the Developer Tools Console User Guide.
52
+ * @see https://docs.aws.amazon.com/dtconsole/latest/userguide/concepts.html#concepts-api
53
+ */
54
+ readonly events: string[];
55
+ /**
56
+ * The Amazon Resource Name (ARN) of the resource to associate with the notification rule.
57
+ * Currently, Supported sources include pipelines in AWS CodePipeline, build projects in AWS CodeBuild, and repositories in AWS CodeCommit in this L2 constructor.
58
+ * @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codestarnotifications-notificationrule.html#cfn-codestarnotifications-notificationrule-resource
59
+ */
60
+ readonly source: INotificationRuleSource;
61
+ /**
62
+ * The targets to register for the notification destination.
63
+ *
64
+ * @default - No targets are added to the rule. Use `addTarget()` to add a target.
65
+ */
66
+ readonly targets?: INotificationRuleTarget[];
67
+ /**
68
+ * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.88.0/docs/resources/codestarnotifications_notification_rule#tags CodestarnotificationsNotificationRule#tags}
69
+ */
70
+ readonly tags?: {
71
+ [key: string]: string;
72
+ };
73
+ }
74
+ /**
75
+ * Represents a notification rule
76
+ */
77
+ export interface INotificationRule extends IAwsConstruct {
78
+ /**
79
+ * The ARN of the notification rule (i.e. arn:aws:codestar-notifications:::notificationrule/01234abcde)
80
+ *
81
+ * @attribute
82
+ */
83
+ readonly notificationRuleArn: string;
84
+ /**
85
+ * Adds target to notification rule
86
+ *
87
+ * @param target The SNS topic or AWS Chatbot Slack target
88
+ * @returns boolean - return true if it had any effect
89
+ */
90
+ addTarget(target: INotificationRuleTarget): boolean;
91
+ }
92
+ /**
93
+ * A new notification rule
94
+ *
95
+ * @resource AWS::CodeStarNotifications::NotificationRule
96
+ */
97
+ export declare class NotificationRule extends AwsConstructBase implements INotificationRule {
98
+ /**
99
+ * Import an existing notification rule provided an ARN
100
+ * @param scope The parent creating construct
101
+ * @param id The construct's name
102
+ * @param notificationRuleArn Notification rule ARN (i.e. arn:aws:codestar-notifications:::notificationrule/01234abcde)
103
+ */
104
+ static fromNotificationRuleArn(scope: constructs.Construct, id: string, notificationRuleArn: string): INotificationRule;
105
+ /**
106
+ * @attribute
107
+ */
108
+ readonly notificationRuleArn: string;
109
+ private readonly targetList;
110
+ private readonly events;
111
+ private readonly resource;
112
+ get outputs(): Record<string, any>;
113
+ constructor(scope: constructs.Construct, id: string, props: NotificationRuleProps);
114
+ addTarget(target: INotificationRuleTarget): boolean;
115
+ /**
116
+ * Adds events to notification rule
117
+ *
118
+ * @see https://docs.aws.amazon.com/dtconsole/latest/userguide/concepts.html#events-ref-pipeline
119
+ * @see https://docs.aws.amazon.com/dtconsole/latest/userguide/concepts.html#events-ref-buildproject
120
+ * @param events The list of event types for AWS Codebuild and AWS CodePipeline
121
+ */
122
+ private addEvents;
123
+ }