terraconstructs 0.0.8
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.
- package/.envrc +5 -0
- package/.jsii +79780 -0
- package/.mise.toml +8 -0
- package/.nvmrc +1 -0
- package/.terraform-version +1 -0
- package/.terraform.d/plugin-cache/.gitignore +5 -0
- package/LICENSE +674 -0
- package/NOTICE.txt +12 -0
- package/README.md +42 -0
- package/bun.lockb +0 -0
- package/go.mod +158 -0
- package/go.sum +1206 -0
- package/lib/aws/arn.d.ts +187 -0
- package/lib/aws/arn.js +383 -0
- package/lib/aws/aws-construct.d.ts +76 -0
- package/lib/aws/aws-construct.js +38 -0
- package/lib/aws/aws-stack.d.ts +201 -0
- package/lib/aws/aws-stack.js +303 -0
- package/lib/aws/cloudwatch/actions/ec2.d.ts +35 -0
- package/lib/aws/cloudwatch/actions/ec2.js +48 -0
- package/lib/aws/cloudwatch/actions/index.d.ts +2 -0
- package/lib/aws/cloudwatch/actions/index.js +24 -0
- package/lib/aws/cloudwatch/actions/lambda.d.ts +16 -0
- package/lib/aws/cloudwatch/actions/lambda.js +48 -0
- package/lib/aws/cloudwatch/alarm-action.d.ts +23 -0
- package/lib/aws/cloudwatch/alarm-action.js +4 -0
- package/lib/aws/cloudwatch/alarm-base.d.ts +84 -0
- package/lib/aws/cloudwatch/alarm-base.js +64 -0
- package/lib/aws/cloudwatch/alarm-rule.d.ts +61 -0
- package/lib/aws/cloudwatch/alarm-rule.js +116 -0
- package/lib/aws/cloudwatch/alarm-status-widget.d.ts +77 -0
- package/lib/aws/cloudwatch/alarm-status-widget.js +62 -0
- package/lib/aws/cloudwatch/alarm.d.ts +158 -0
- package/lib/aws/cloudwatch/alarm.js +410 -0
- package/lib/aws/cloudwatch/composite-alarm.d.ts +88 -0
- package/lib/aws/cloudwatch/composite-alarm.js +98 -0
- package/lib/aws/cloudwatch/dashboard.d.ts +137 -0
- package/lib/aws/cloudwatch/dashboard.js +141 -0
- package/lib/aws/cloudwatch/data-protection-policy.d.ts +184 -0
- package/lib/aws/cloudwatch/data-protection-policy.js +246 -0
- package/lib/aws/cloudwatch/graph.d.ts +792 -0
- package/lib/aws/cloudwatch/graph.js +537 -0
- package/lib/aws/cloudwatch/index.d.ts +26 -0
- package/lib/aws/cloudwatch/index.js +49 -0
- package/lib/aws/cloudwatch/layout.d.ts +89 -0
- package/lib/aws/cloudwatch/layout.js +147 -0
- package/lib/aws/cloudwatch/log-destinations/index.d.ts +2 -0
- package/lib/aws/cloudwatch/log-destinations/index.js +20 -0
- package/lib/aws/cloudwatch/log-destinations/kinesis.d.ts +29 -0
- package/lib/aws/cloudwatch/log-destinations/kinesis.js +52 -0
- package/lib/aws/cloudwatch/log-destinations/lambda.d.ts +22 -0
- package/lib/aws/cloudwatch/log-destinations/lambda.js +46 -0
- package/lib/aws/cloudwatch/log-group.d.ts +453 -0
- package/lib/aws/cloudwatch/log-group.js +350 -0
- package/lib/aws/cloudwatch/log-query.d.ts +91 -0
- package/lib/aws/cloudwatch/log-query.js +85 -0
- package/lib/aws/cloudwatch/log-stream.d.ts +57 -0
- package/lib/aws/cloudwatch/log-stream.js +57 -0
- package/lib/aws/cloudwatch/metric-filter.d.ts +30 -0
- package/lib/aws/cloudwatch/metric-filter.js +69 -0
- package/lib/aws/cloudwatch/metric-types.d.ts +407 -0
- package/lib/aws/cloudwatch/metric-types.js +151 -0
- package/lib/aws/cloudwatch/metric.d.ts +492 -0
- package/lib/aws/cloudwatch/metric.js +493 -0
- package/lib/aws/cloudwatch/pattern.d.ts +195 -0
- package/lib/aws/cloudwatch/pattern.js +412 -0
- package/lib/aws/cloudwatch/policy.d.ts +43 -0
- package/lib/aws/cloudwatch/policy.js +50 -0
- package/lib/aws/cloudwatch/private/drop-empty-object-at-the-end-of-an-array-token.d.ts +14 -0
- package/lib/aws/cloudwatch/private/drop-empty-object-at-the-end-of-an-array-token.js +37 -0
- package/lib/aws/cloudwatch/private/env-tokens.d.ts +8 -0
- package/lib/aws/cloudwatch/private/env-tokens.js +48 -0
- package/lib/aws/cloudwatch/private/metric-util.d.ts +60 -0
- package/lib/aws/cloudwatch/private/metric-util.js +132 -0
- package/lib/aws/cloudwatch/private/object.d.ts +1 -0
- package/lib/aws/cloudwatch/private/object.js +18 -0
- package/lib/aws/cloudwatch/private/rendering.d.ts +60 -0
- package/lib/aws/cloudwatch/private/rendering.js +181 -0
- package/lib/aws/cloudwatch/private/statistic.d.ts +51 -0
- package/lib/aws/cloudwatch/private/statistic.js +176 -0
- package/lib/aws/cloudwatch/query-definition.d.ts +150 -0
- package/lib/aws/cloudwatch/query-definition.js +114 -0
- package/lib/aws/cloudwatch/stats.d.ts +150 -0
- package/lib/aws/cloudwatch/stats.js +207 -0
- package/lib/aws/cloudwatch/subscription-filter.d.ts +75 -0
- package/lib/aws/cloudwatch/subscription-filter.js +51 -0
- package/lib/aws/cloudwatch/text.d.ts +52 -0
- package/lib/aws/cloudwatch/text.js +53 -0
- package/lib/aws/cloudwatch/variable.d.ts +156 -0
- package/lib/aws/cloudwatch/variable.js +156 -0
- package/lib/aws/cloudwatch/widget.d.ts +62 -0
- package/lib/aws/cloudwatch/widget.js +45 -0
- package/lib/aws/compute/activity.d.ts +81 -0
- package/lib/aws/compute/activity.js +132 -0
- package/lib/aws/compute/architecture.d.ts +33 -0
- package/lib/aws/compute/architecture.js +42 -0
- package/lib/aws/compute/chain.d.ts +52 -0
- package/lib/aws/compute/chain.js +68 -0
- package/lib/aws/compute/condition.d.ts +202 -0
- package/lib/aws/compute/condition.js +409 -0
- package/lib/aws/compute/event-invoke-config.d.ts +74 -0
- package/lib/aws/compute/event-invoke-config.js +63 -0
- package/lib/aws/compute/event-source-filter.d.ts +64 -0
- package/lib/aws/compute/event-source-filter.js +86 -0
- package/lib/aws/compute/event-source-mapping.d.ts +310 -0
- package/lib/aws/compute/event-source-mapping.js +267 -0
- package/lib/aws/compute/event-sources/index.d.ts +4 -0
- package/lib/aws/compute/event-sources/index.js +28 -0
- package/lib/aws/compute/event-sources/s3-onfailure-destination.d.ts +13 -0
- package/lib/aws/compute/event-sources/s3-onfailure-destination.js +26 -0
- package/lib/aws/compute/event-sources/s3.d.ts +24 -0
- package/lib/aws/compute/event-sources/s3.js +25 -0
- package/lib/aws/compute/event-sources/sqs-dlq.d.ts +13 -0
- package/lib/aws/compute/event-sources/sqs-dlq.js +26 -0
- package/lib/aws/compute/event-sources/sqs.d.ts +75 -0
- package/lib/aws/compute/event-sources/sqs.js +84 -0
- package/lib/aws/compute/fields.d.ts +367 -0
- package/lib/aws/compute/fields.js +546 -0
- package/lib/aws/compute/function-alias.d.ts +148 -0
- package/lib/aws/compute/function-alias.js +176 -0
- package/lib/aws/compute/function-base.d.ts +314 -0
- package/lib/aws/compute/function-base.js +421 -0
- package/lib/aws/compute/function-destination.d.ts +42 -0
- package/lib/aws/compute/function-destination.js +18 -0
- package/lib/aws/compute/function-destinations/event-bridge.d.ts +19 -0
- package/lib/aws/compute/function-destinations/event-bridge.js +46 -0
- package/lib/aws/compute/function-destinations/function.d.ts +34 -0
- package/lib/aws/compute/function-destinations/function.js +55 -0
- package/lib/aws/compute/function-destinations/index.d.ts +3 -0
- package/lib/aws/compute/function-destinations/index.js +22 -0
- package/lib/aws/compute/function-destinations/sqs.d.ts +14 -0
- package/lib/aws/compute/function-destinations/sqs.js +27 -0
- package/lib/aws/compute/function-nodejs.d.ts +55 -0
- package/lib/aws/compute/function-nodejs.js +70 -0
- package/lib/aws/compute/function-permission.d.ts +83 -0
- package/lib/aws/compute/function-permission.js +3 -0
- package/lib/aws/compute/function-url.d.ts +210 -0
- package/lib/aws/compute/function-url.js +148 -0
- package/lib/aws/compute/function-vpc-config.generated.d.ts +36 -0
- package/lib/aws/compute/function-vpc-config.generated.js +3 -0
- package/lib/aws/compute/function.d.ts +492 -0
- package/lib/aws/compute/function.js +692 -0
- package/lib/aws/compute/index.d.ts +42 -0
- package/lib/aws/compute/index.js +64 -0
- package/lib/aws/compute/private/intrinstics.d.ts +86 -0
- package/lib/aws/compute/private/intrinstics.js +220 -0
- package/lib/aws/compute/private/json-path.d.ts +57 -0
- package/lib/aws/compute/private/json-path.js +351 -0
- package/lib/aws/compute/private/util.d.ts +1 -0
- package/lib/aws/compute/private/util.js +38 -0
- package/lib/aws/compute/state-graph.d.ts +100 -0
- package/lib/aws/compute/state-graph.js +177 -0
- package/lib/aws/compute/state-machine-fragment.d.ts +61 -0
- package/lib/aws/compute/state-machine-fragment.js +56 -0
- package/lib/aws/compute/state-machine.d.ts +323 -0
- package/lib/aws/compute/state-machine.js +392 -0
- package/lib/aws/compute/states/choice.d.ts +94 -0
- package/lib/aws/compute/states/choice.js +81 -0
- package/lib/aws/compute/states/custom-state.d.ts +55 -0
- package/lib/aws/compute/states/custom-state.js +114 -0
- package/lib/aws/compute/states/distributed-map/item-batcher.d.ts +64 -0
- package/lib/aws/compute/states/distributed-map/item-batcher.js +58 -0
- package/lib/aws/compute/states/distributed-map/item-reader.d.ts +256 -0
- package/lib/aws/compute/states/distributed-map/item-reader.js +253 -0
- package/lib/aws/compute/states/distributed-map/result-writer.d.ts +41 -0
- package/lib/aws/compute/states/distributed-map/result-writer.js +66 -0
- package/lib/aws/compute/states/distributed-map.d.ts +153 -0
- package/lib/aws/compute/states/distributed-map.js +207 -0
- package/lib/aws/compute/states/fail.d.ts +74 -0
- package/lib/aws/compute/states/fail.js +83 -0
- package/lib/aws/compute/states/map-base.d.ts +145 -0
- package/lib/aws/compute/states/map-base.js +109 -0
- package/lib/aws/compute/states/map.d.ts +76 -0
- package/lib/aws/compute/states/map.js +110 -0
- package/lib/aws/compute/states/parallel.d.ts +113 -0
- package/lib/aws/compute/states/parallel.js +100 -0
- package/lib/aws/compute/states/pass.d.ts +122 -0
- package/lib/aws/compute/states/pass.js +99 -0
- package/lib/aws/compute/states/private/state-type.d.ts +13 -0
- package/lib/aws/compute/states/private/state-type.js +19 -0
- package/lib/aws/compute/states/state.d.ts +276 -0
- package/lib/aws/compute/states/state.js +482 -0
- package/lib/aws/compute/states/succeed.d.ts +51 -0
- package/lib/aws/compute/states/succeed.js +32 -0
- package/lib/aws/compute/states/task-base.d.ts +225 -0
- package/lib/aws/compute/states/task-base.js +160 -0
- package/lib/aws/compute/states/task.d.ts +127 -0
- package/lib/aws/compute/states/task.js +92 -0
- package/lib/aws/compute/states/wait.d.ts +78 -0
- package/lib/aws/compute/states/wait.js +90 -0
- package/lib/aws/compute/step-functions-task.d.ts +78 -0
- package/lib/aws/compute/step-functions-task.js +27 -0
- package/lib/aws/compute/task-credentials.d.ts +45 -0
- package/lib/aws/compute/task-credentials.js +52 -0
- package/lib/aws/compute/task-input.d.ts +86 -0
- package/lib/aws/compute/task-input.js +107 -0
- package/lib/aws/compute/tasks/aws-sdk/call-aws-service.d.ts +73 -0
- package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +69 -0
- package/lib/aws/compute/tasks/eventbridge/put-events.d.ts +74 -0
- package/lib/aws/compute/tasks/eventbridge/put-events.js +94 -0
- package/lib/aws/compute/tasks/http/invoke.d.ts +104 -0
- package/lib/aws/compute/tasks/http/invoke.js +117 -0
- package/lib/aws/compute/tasks/index.d.ts +7 -0
- package/lib/aws/compute/tasks/index.js +42 -0
- package/lib/aws/compute/tasks/lambda/invoke.d.ts +106 -0
- package/lib/aws/compute/tasks/lambda/invoke.js +125 -0
- package/lib/aws/compute/tasks/private/task-utils.d.ts +8 -0
- package/lib/aws/compute/tasks/private/task-utils.js +36 -0
- package/lib/aws/compute/tasks/resource-arn-suffix.d.ts +3 -0
- package/lib/aws/compute/tasks/resource-arn-suffix.js +25 -0
- package/lib/aws/compute/tasks/sqs/send-message.d.ts +62 -0
- package/lib/aws/compute/tasks/sqs/send-message.js +70 -0
- package/lib/aws/compute/tasks/stepfunctions/invoke-activity.d.ts +36 -0
- package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +45 -0
- package/lib/aws/compute/tasks/stepfunctions/start-execution.d.ts +63 -0
- package/lib/aws/compute/tasks/stepfunctions/start-execution.js +123 -0
- package/lib/aws/compute/types.d.ts +214 -0
- package/lib/aws/compute/types.js +103 -0
- package/lib/aws/compute/util.d.ts +12 -0
- package/lib/aws/compute/util.js +29 -0
- package/lib/aws/edge/certificate.d.ts +144 -0
- package/lib/aws/edge/certificate.js +191 -0
- package/lib/aws/edge/distribution.d.ts +505 -0
- package/lib/aws/edge/distribution.js +444 -0
- package/lib/aws/edge/dns-alias-record-targets.d.ts +29 -0
- package/lib/aws/edge/dns-alias-record-targets.js +46 -0
- package/lib/aws/edge/dns-record.d.ts +536 -0
- package/lib/aws/edge/dns-record.js +532 -0
- package/lib/aws/edge/dns-zone.d.ts +169 -0
- package/lib/aws/edge/dns-zone.js +149 -0
- package/lib/aws/edge/function.d.ts +185 -0
- package/lib/aws/edge/function.js +141 -0
- package/lib/aws/edge/index.d.ts +8 -0
- package/lib/aws/edge/index.js +25 -0
- package/lib/aws/edge/key-value-store.d.ts +162 -0
- package/lib/aws/edge/key-value-store.js +163 -0
- package/lib/aws/edge/origin.d.ts +160 -0
- package/lib/aws/edge/origin.js +245 -0
- package/lib/aws/encryption/alias.d.ts +137 -0
- package/lib/aws/encryption/alias.js +216 -0
- package/lib/aws/encryption/index.d.ts +4 -0
- package/lib/aws/encryption/index.js +21 -0
- package/lib/aws/encryption/key-lookup.d.ts +11 -0
- package/lib/aws/encryption/key-lookup.js +4 -0
- package/lib/aws/encryption/key.d.ts +461 -0
- package/lib/aws/encryption/key.js +586 -0
- package/lib/aws/encryption/private/perms.d.ts +5 -0
- package/lib/aws/encryption/private/perms.js +30 -0
- package/lib/aws/encryption/via-service-principal.d.ts +11 -0
- package/lib/aws/encryption/via-service-principal.js +39 -0
- package/lib/aws/iam/grant.d.ts +221 -0
- package/lib/aws/iam/grant.js +239 -0
- package/lib/aws/iam/identity-base.d.ts +20 -0
- package/lib/aws/iam/identity-base.js +3 -0
- package/lib/aws/iam/index.d.ts +16 -0
- package/lib/aws/iam/index.js +34 -0
- package/lib/aws/iam/managed-policy.d.ts +227 -0
- package/lib/aws/iam/managed-policy.js +237 -0
- package/lib/aws/iam/oidc-provider.d.ts +120 -0
- package/lib/aws/iam/oidc-provider.js +82 -0
- package/lib/aws/iam/policy-document-config.generated.d.ts +78 -0
- package/lib/aws/iam/policy-document-config.generated.js +3 -0
- package/lib/aws/iam/policy-document.d.ts +150 -0
- package/lib/aws/iam/policy-document.js +172 -0
- package/lib/aws/iam/policy-statement-props.generated.d.ts +55 -0
- package/lib/aws/iam/policy-statement-props.generated.js +3 -0
- package/lib/aws/iam/policy-statement.d.ts +451 -0
- package/lib/aws/iam/policy-statement.js +947 -0
- package/lib/aws/iam/policy.d.ts +122 -0
- package/lib/aws/iam/policy.js +192 -0
- package/lib/aws/iam/principals.d.ts +668 -0
- package/lib/aws/iam/principals.js +1032 -0
- package/lib/aws/iam/private/adapter.d.ts +21 -0
- package/lib/aws/iam/private/adapter.js +51 -0
- package/lib/aws/iam/private/assume-role-policy.d.ts +8 -0
- package/lib/aws/iam/private/assume-role-policy.js +27 -0
- package/lib/aws/iam/private/comparable-principal.d.ts +6 -0
- package/lib/aws/iam/private/comparable-principal.js +20 -0
- package/lib/aws/iam/private/immutable-role.d.ts +43 -0
- package/lib/aws/iam/private/immutable-role.js +76 -0
- package/lib/aws/iam/private/imported-role.d.ts +49 -0
- package/lib/aws/iam/private/imported-role.js +103 -0
- package/lib/aws/iam/private/merge-statements.d.ts +44 -0
- package/lib/aws/iam/private/merge-statements.js +214 -0
- package/lib/aws/iam/private/postprocess-policy-document.d.ts +15 -0
- package/lib/aws/iam/private/postprocess-policy-document.js +102 -0
- package/lib/aws/iam/private/util.d.ts +37 -0
- package/lib/aws/iam/private/util.js +87 -0
- package/lib/aws/iam/role.d.ts +425 -0
- package/lib/aws/iam/role.js +407 -0
- package/lib/aws/iam/saml-provider.d.ts +79 -0
- package/lib/aws/iam/saml-provider.js +79 -0
- package/lib/aws/iam/unknown-principal.d.ts +32 -0
- package/lib/aws/iam/unknown-principal.js +45 -0
- package/lib/aws/iam/utils.d.ts +12 -0
- package/lib/aws/iam/utils.js +41 -0
- package/lib/aws/index.d.ts +13 -0
- package/lib/aws/index.js +34 -0
- package/lib/aws/log-retention.d.ts +97 -0
- package/lib/aws/log-retention.js +103 -0
- package/lib/aws/network/index.d.ts +4 -0
- package/lib/aws/network/index.js +21 -0
- package/lib/aws/network/network.d.ts +77 -0
- package/lib/aws/network/network.js +3 -0
- package/lib/aws/network/simple-ipv4-vpc.d.ts +84 -0
- package/lib/aws/network/simple-ipv4-vpc.js +236 -0
- package/lib/aws/network/subnet-group.d.ts +42 -0
- package/lib/aws/network/subnet-group.js +72 -0
- package/lib/aws/network/subnet.d.ts +95 -0
- package/lib/aws/network/subnet.js +123 -0
- package/lib/aws/notify/archive.d.ts +77 -0
- package/lib/aws/notify/archive.js +62 -0
- package/lib/aws/notify/connection.d.ts +276 -0
- package/lib/aws/notify/connection.js +261 -0
- package/lib/aws/notify/event-bus.d.ts +298 -0
- package/lib/aws/notify/event-bus.js +326 -0
- package/lib/aws/notify/event-pattern.d.ts +220 -0
- package/lib/aws/notify/event-pattern.js +197 -0
- package/lib/aws/notify/index.d.ts +15 -0
- package/lib/aws/notify/index.js +35 -0
- package/lib/aws/notify/input.d.ts +126 -0
- package/lib/aws/notify/input.js +282 -0
- package/lib/aws/notify/kinesis-canned-metrics.generated.d.ts +68 -0
- package/lib/aws/notify/kinesis-canned-metrics.generated.js +103 -0
- package/lib/aws/notify/kinesis-fixed-canned-metrics.d.ts +195 -0
- package/lib/aws/notify/kinesis-fixed-canned-metrics.js +155 -0
- package/lib/aws/notify/kinesis-stream.d.ts +705 -0
- package/lib/aws/notify/kinesis-stream.js +541 -0
- package/lib/aws/notify/on-event-options.d.ts +54 -0
- package/lib/aws/notify/on-event-options.js +3 -0
- package/lib/aws/notify/queue-config.generated.d.ts +85 -0
- package/lib/aws/notify/queue-config.generated.js +3 -0
- package/lib/aws/notify/queue-policy.d.ts +35 -0
- package/lib/aws/notify/queue-policy.js +39 -0
- package/lib/aws/notify/queue.d.ts +355 -0
- package/lib/aws/notify/queue.js +305 -0
- package/lib/aws/notify/resource-policy.d.ts +41 -0
- package/lib/aws/notify/resource-policy.js +43 -0
- package/lib/aws/notify/rule.d.ts +153 -0
- package/lib/aws/notify/rule.js +227 -0
- package/lib/aws/notify/schedule.d.ts +83 -0
- package/lib/aws/notify/schedule.js +116 -0
- package/lib/aws/notify/target.d.ts +102 -0
- package/lib/aws/notify/target.js +3 -0
- package/lib/aws/notify/targets/event-bus.d.ts +39 -0
- package/lib/aws/notify/targets/event-bus.js +40 -0
- package/lib/aws/notify/targets/function.d.ts +31 -0
- package/lib/aws/notify/targets/function.js +36 -0
- package/lib/aws/notify/targets/index.d.ts +6 -0
- package/lib/aws/notify/targets/index.js +37 -0
- package/lib/aws/notify/targets/log-group.d.ts +89 -0
- package/lib/aws/notify/targets/log-group.js +110 -0
- package/lib/aws/notify/targets/sqs.d.ts +45 -0
- package/lib/aws/notify/targets/sqs.js +73 -0
- package/lib/aws/notify/targets/state-machine.d.ts +36 -0
- package/lib/aws/notify/targets/state-machine.js +39 -0
- package/lib/aws/notify/targets/util.d.ts +71 -0
- package/lib/aws/notify/targets/util.js +130 -0
- package/lib/aws/notify/util.d.ts +13 -0
- package/lib/aws/notify/util.js +69 -0
- package/lib/aws/provider-config.generated.d.ts +220 -0
- package/lib/aws/provider-config.generated.js +3 -0
- package/lib/aws/storage/bucket-destination.d.ts +41 -0
- package/lib/aws/storage/bucket-destination.js +13 -0
- package/lib/aws/storage/bucket-notifications.d.ts +58 -0
- package/lib/aws/storage/bucket-notifications.js +169 -0
- package/lib/aws/storage/bucket-perms.d.ts +9 -0
- package/lib/aws/storage/bucket-perms.js +33 -0
- package/lib/aws/storage/bucket-policy.d.ts +51 -0
- package/lib/aws/storage/bucket-policy.js +53 -0
- package/lib/aws/storage/bucket-source.d.ts +41 -0
- package/lib/aws/storage/bucket-source.js +79 -0
- package/lib/aws/storage/bucket.d.ts +941 -0
- package/lib/aws/storage/bucket.js +869 -0
- package/lib/aws/storage/cors-config.generated.d.ts +57 -0
- package/lib/aws/storage/cors-config.generated.js +3 -0
- package/lib/aws/storage/cors-rule-config.generated.d.ts +38 -0
- package/lib/aws/storage/cors-rule-config.generated.js +3 -0
- package/lib/aws/storage/index.d.ts +12 -0
- package/lib/aws/storage/index.js +31 -0
- package/lib/aws/storage/lifecycle-config.generated.d.ts +55 -0
- package/lib/aws/storage/lifecycle-config.generated.js +3 -0
- package/lib/aws/storage/notification-targets/function.d.ts +11 -0
- package/lib/aws/storage/notification-targets/function.js +48 -0
- package/lib/aws/storage/notification-targets/index.d.ts +2 -0
- package/lib/aws/storage/notification-targets/index.js +21 -0
- package/lib/aws/storage/notification-targets/queue.d.ts +15 -0
- package/lib/aws/storage/notification-targets/queue.js +58 -0
- package/lib/aws/storage/origin-access-identity.d.ts +91 -0
- package/lib/aws/storage/origin-access-identity.js +76 -0
- package/lib/aws/storage/util.d.ts +40 -0
- package/lib/aws/storage/util.js +85 -0
- package/lib/aws/storage/website-config.generated.d.ts +73 -0
- package/lib/aws/storage/website-config.generated.js +3 -0
- package/lib/aws/util.d.ts +4 -0
- package/lib/aws/util.js +25 -0
- package/lib/construct-base.d.ts +69 -0
- package/lib/construct-base.js +89 -0
- package/lib/duration.d.ts +160 -0
- package/lib/duration.js +327 -0
- package/lib/index.d.ts +5 -0
- package/lib/index.js +24 -0
- package/lib/private/index.d.ts +2 -0
- package/lib/private/index.js +19 -0
- package/lib/private/terraform-dependables-aspect.d.ts +20 -0
- package/lib/private/terraform-dependables-aspect.js +95 -0
- package/lib/private/unique-resource-name.d.ts +9 -0
- package/lib/private/unique-resource-name.js +145 -0
- package/lib/size.d.ts +146 -0
- package/lib/size.js +220 -0
- package/lib/stack-base.d.ts +188 -0
- package/lib/stack-base.js +183 -0
- package/lib/token.d.ts +32 -0
- package/lib/token.js +54 -0
- package/node_modules/camel-case/LICENSE +21 -0
- package/node_modules/camel-case/README.md +47 -0
- package/node_modules/camel-case/dist/index.d.ts +5 -0
- package/node_modules/camel-case/dist/index.js +23 -0
- package/node_modules/camel-case/dist/index.js.map +1 -0
- package/node_modules/camel-case/dist/index.spec.d.ts +1 -0
- package/node_modules/camel-case/dist/index.spec.js +26 -0
- package/node_modules/camel-case/dist/index.spec.js.map +1 -0
- package/node_modules/camel-case/dist.es2015/index.d.ts +5 -0
- package/node_modules/camel-case/dist.es2015/index.js +17 -0
- package/node_modules/camel-case/dist.es2015/index.js.map +1 -0
- package/node_modules/camel-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/camel-case/dist.es2015/index.spec.js +24 -0
- package/node_modules/camel-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/camel-case/package.json +89 -0
- package/node_modules/capital-case/LICENSE +21 -0
- package/node_modules/capital-case/README.md +37 -0
- package/node_modules/capital-case/dist/index.d.ts +4 -0
- package/node_modules/capital-case/dist/index.js +16 -0
- package/node_modules/capital-case/dist/index.js.map +1 -0
- package/node_modules/capital-case/dist/index.spec.d.ts +1 -0
- package/node_modules/capital-case/dist/index.spec.js +24 -0
- package/node_modules/capital-case/dist/index.spec.js.map +1 -0
- package/node_modules/capital-case/dist.es2015/index.d.ts +4 -0
- package/node_modules/capital-case/dist.es2015/index.js +11 -0
- package/node_modules/capital-case/dist.es2015/index.js.map +1 -0
- package/node_modules/capital-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/capital-case/dist.es2015/index.spec.js +22 -0
- package/node_modules/capital-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/capital-case/package.json +90 -0
- package/node_modules/change-case/LICENSE +21 -0
- package/node_modules/change-case/README.md +44 -0
- package/node_modules/change-case/dist/index.d.ts +11 -0
- package/node_modules/change-case/dist/index.js +15 -0
- package/node_modules/change-case/dist/index.js.map +1 -0
- package/node_modules/change-case/dist/index.spec.d.ts +1 -0
- package/node_modules/change-case/dist/index.spec.js +9 -0
- package/node_modules/change-case/dist/index.spec.js.map +1 -0
- package/node_modules/change-case/dist.es2015/index.d.ts +11 -0
- package/node_modules/change-case/dist.es2015/index.js +12 -0
- package/node_modules/change-case/dist.es2015/index.js.map +1 -0
- package/node_modules/change-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/change-case/dist.es2015/index.spec.js +7 -0
- package/node_modules/change-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/change-case/package.json +101 -0
- package/node_modules/constant-case/LICENSE +21 -0
- package/node_modules/constant-case/README.md +37 -0
- package/node_modules/constant-case/dist/index.d.ts +3 -0
- package/node_modules/constant-case/dist/index.js +12 -0
- package/node_modules/constant-case/dist/index.js.map +1 -0
- package/node_modules/constant-case/dist/index.spec.d.ts +1 -0
- package/node_modules/constant-case/dist/index.spec.js +26 -0
- package/node_modules/constant-case/dist/index.spec.js.map +1 -0
- package/node_modules/constant-case/dist.es2015/index.d.ts +3 -0
- package/node_modules/constant-case/dist.es2015/index.js +8 -0
- package/node_modules/constant-case/dist.es2015/index.js.map +1 -0
- package/node_modules/constant-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/constant-case/dist.es2015/index.spec.js +24 -0
- package/node_modules/constant-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/constant-case/package.json +90 -0
- package/node_modules/dot-case/LICENSE +21 -0
- package/node_modules/dot-case/README.md +37 -0
- package/node_modules/dot-case/dist/index.d.ts +3 -0
- package/node_modules/dot-case/dist/index.js +11 -0
- package/node_modules/dot-case/dist/index.js.map +1 -0
- package/node_modules/dot-case/dist/index.spec.d.ts +1 -0
- package/node_modules/dot-case/dist/index.spec.js +26 -0
- package/node_modules/dot-case/dist/index.spec.js.map +1 -0
- package/node_modules/dot-case/dist.es2015/index.d.ts +3 -0
- package/node_modules/dot-case/dist.es2015/index.js +7 -0
- package/node_modules/dot-case/dist.es2015/index.js.map +1 -0
- package/node_modules/dot-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/dot-case/dist.es2015/index.spec.js +24 -0
- package/node_modules/dot-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/dot-case/package.json +89 -0
- package/node_modules/esbuild-wasm/LICENSE.md +21 -0
- package/node_modules/esbuild-wasm/README.md +3 -0
- package/node_modules/esbuild-wasm/bin/esbuild +91 -0
- package/node_modules/esbuild-wasm/esbuild.wasm +0 -0
- package/node_modules/esbuild-wasm/esm/browser.d.ts +705 -0
- package/node_modules/esbuild-wasm/esm/browser.js +2370 -0
- package/node_modules/esbuild-wasm/esm/browser.min.js +20 -0
- package/node_modules/esbuild-wasm/lib/browser.d.ts +705 -0
- package/node_modules/esbuild-wasm/lib/browser.js +2415 -0
- package/node_modules/esbuild-wasm/lib/browser.min.js +22 -0
- package/node_modules/esbuild-wasm/lib/main.d.ts +705 -0
- package/node_modules/esbuild-wasm/lib/main.js +2051 -0
- package/node_modules/esbuild-wasm/package.json +19 -0
- package/node_modules/esbuild-wasm/wasm_exec.js +561 -0
- package/node_modules/esbuild-wasm/wasm_exec_node.js +39 -0
- package/node_modules/header-case/LICENSE +21 -0
- package/node_modules/header-case/README.md +37 -0
- package/node_modules/header-case/dist/index.d.ts +3 -0
- package/node_modules/header-case/dist/index.js +11 -0
- package/node_modules/header-case/dist/index.js.map +1 -0
- package/node_modules/header-case/dist/index.spec.d.ts +1 -0
- package/node_modules/header-case/dist/index.spec.js +24 -0
- package/node_modules/header-case/dist/index.spec.js.map +1 -0
- package/node_modules/header-case/dist.es2015/index.d.ts +3 -0
- package/node_modules/header-case/dist.es2015/index.js +7 -0
- package/node_modules/header-case/dist.es2015/index.js.map +1 -0
- package/node_modules/header-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/header-case/dist.es2015/index.spec.js +22 -0
- package/node_modules/header-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/header-case/package.json +89 -0
- package/node_modules/lower-case/LICENSE +21 -0
- package/node_modules/lower-case/README.md +35 -0
- package/node_modules/lower-case/dist/index.d.ts +8 -0
- package/node_modules/lower-case/dist/index.js +53 -0
- package/node_modules/lower-case/dist/index.js.map +1 -0
- package/node_modules/lower-case/dist/index.spec.d.ts +1 -0
- package/node_modules/lower-case/dist/index.spec.js +36 -0
- package/node_modules/lower-case/dist/index.spec.js.map +1 -0
- package/node_modules/lower-case/dist.es2015/index.d.ts +8 -0
- package/node_modules/lower-case/dist.es2015/index.js +48 -0
- package/node_modules/lower-case/dist.es2015/index.js.map +1 -0
- package/node_modules/lower-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/lower-case/dist.es2015/index.spec.js +34 -0
- package/node_modules/lower-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/lower-case/package.json +87 -0
- package/node_modules/mime-db/HISTORY.md +507 -0
- package/node_modules/mime-db/LICENSE +23 -0
- package/node_modules/mime-db/README.md +100 -0
- package/node_modules/mime-db/db.json +8519 -0
- package/node_modules/mime-db/index.js +12 -0
- package/node_modules/mime-db/package.json +60 -0
- package/node_modules/mime-types/HISTORY.md +397 -0
- package/node_modules/mime-types/LICENSE +23 -0
- package/node_modules/mime-types/README.md +113 -0
- package/node_modules/mime-types/index.js +188 -0
- package/node_modules/mime-types/package.json +44 -0
- package/node_modules/no-case/LICENSE +21 -0
- package/node_modules/no-case/README.md +37 -0
- package/node_modules/no-case/dist/index.d.ts +10 -0
- package/node_modules/no-case/dist/index.js +35 -0
- package/node_modules/no-case/dist/index.js.map +1 -0
- package/node_modules/no-case/dist/index.spec.d.ts +1 -0
- package/node_modules/no-case/dist/index.spec.js +59 -0
- package/node_modules/no-case/dist/index.spec.js.map +1 -0
- package/node_modules/no-case/dist.es2015/index.d.ts +10 -0
- package/node_modules/no-case/dist.es2015/index.js +31 -0
- package/node_modules/no-case/dist.es2015/index.js.map +1 -0
- package/node_modules/no-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/no-case/dist.es2015/index.spec.js +57 -0
- package/node_modules/no-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/no-case/package.json +85 -0
- package/node_modules/param-case/LICENSE +21 -0
- package/node_modules/param-case/README.md +37 -0
- package/node_modules/param-case/dist/index.d.ts +3 -0
- package/node_modules/param-case/dist/index.js +11 -0
- package/node_modules/param-case/dist/index.js.map +1 -0
- package/node_modules/param-case/dist/index.spec.d.ts +1 -0
- package/node_modules/param-case/dist/index.spec.js +24 -0
- package/node_modules/param-case/dist/index.spec.js.map +1 -0
- package/node_modules/param-case/dist.es2015/index.d.ts +3 -0
- package/node_modules/param-case/dist.es2015/index.js +7 -0
- package/node_modules/param-case/dist.es2015/index.js.map +1 -0
- package/node_modules/param-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/param-case/dist.es2015/index.spec.js +22 -0
- package/node_modules/param-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/param-case/package.json +91 -0
- package/node_modules/pascal-case/LICENSE +21 -0
- package/node_modules/pascal-case/README.md +47 -0
- package/node_modules/pascal-case/dist/index.d.ts +5 -0
- package/node_modules/pascal-case/dist/index.js +24 -0
- package/node_modules/pascal-case/dist/index.js.map +1 -0
- package/node_modules/pascal-case/dist/index.spec.d.ts +1 -0
- package/node_modules/pascal-case/dist/index.spec.js +25 -0
- package/node_modules/pascal-case/dist/index.spec.js.map +1 -0
- package/node_modules/pascal-case/dist.es2015/index.d.ts +5 -0
- package/node_modules/pascal-case/dist.es2015/index.js +18 -0
- package/node_modules/pascal-case/dist.es2015/index.js.map +1 -0
- package/node_modules/pascal-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/pascal-case/dist.es2015/index.spec.js +23 -0
- package/node_modules/pascal-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/pascal-case/package.json +90 -0
- package/node_modules/path-case/LICENSE +21 -0
- package/node_modules/path-case/README.md +37 -0
- package/node_modules/path-case/dist/index.d.ts +3 -0
- package/node_modules/path-case/dist/index.js +11 -0
- package/node_modules/path-case/dist/index.js.map +1 -0
- package/node_modules/path-case/dist/index.spec.d.ts +1 -0
- package/node_modules/path-case/dist/index.spec.js +24 -0
- package/node_modules/path-case/dist/index.spec.js.map +1 -0
- package/node_modules/path-case/dist.es2015/index.d.ts +3 -0
- package/node_modules/path-case/dist.es2015/index.js +7 -0
- package/node_modules/path-case/dist.es2015/index.js.map +1 -0
- package/node_modules/path-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/path-case/dist.es2015/index.spec.js +22 -0
- package/node_modules/path-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/path-case/package.json +88 -0
- package/node_modules/sentence-case/LICENSE +21 -0
- package/node_modules/sentence-case/README.md +37 -0
- package/node_modules/sentence-case/dist/index.d.ts +4 -0
- package/node_modules/sentence-case/dist/index.js +19 -0
- package/node_modules/sentence-case/dist/index.js.map +1 -0
- package/node_modules/sentence-case/dist/index.spec.d.ts +1 -0
- package/node_modules/sentence-case/dist/index.spec.js +24 -0
- package/node_modules/sentence-case/dist/index.spec.js.map +1 -0
- package/node_modules/sentence-case/dist.es2015/index.d.ts +4 -0
- package/node_modules/sentence-case/dist.es2015/index.js +14 -0
- package/node_modules/sentence-case/dist.es2015/index.js.map +1 -0
- package/node_modules/sentence-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/sentence-case/dist.es2015/index.spec.js +22 -0
- package/node_modules/sentence-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/sentence-case/package.json +89 -0
- package/node_modules/snake-case/LICENSE +21 -0
- package/node_modules/snake-case/README.md +37 -0
- package/node_modules/snake-case/dist/index.d.ts +3 -0
- package/node_modules/snake-case/dist/index.js +11 -0
- package/node_modules/snake-case/dist/index.js.map +1 -0
- package/node_modules/snake-case/dist/index.spec.d.ts +1 -0
- package/node_modules/snake-case/dist/index.spec.js +25 -0
- package/node_modules/snake-case/dist/index.spec.js.map +1 -0
- package/node_modules/snake-case/dist.es2015/index.d.ts +3 -0
- package/node_modules/snake-case/dist.es2015/index.js +7 -0
- package/node_modules/snake-case/dist.es2015/index.js.map +1 -0
- package/node_modules/snake-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/snake-case/dist.es2015/index.spec.js +23 -0
- package/node_modules/snake-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/snake-case/package.json +90 -0
- package/node_modules/tslib/CopyrightNotice.txt +15 -0
- package/node_modules/tslib/LICENSE.txt +12 -0
- package/node_modules/tslib/README.md +164 -0
- package/node_modules/tslib/SECURITY.md +41 -0
- package/node_modules/tslib/modules/index.d.ts +37 -0
- package/node_modules/tslib/modules/index.js +68 -0
- package/node_modules/tslib/modules/package.json +3 -0
- package/node_modules/tslib/package.json +47 -0
- package/node_modules/tslib/tslib.d.ts +453 -0
- package/node_modules/tslib/tslib.es6.html +1 -0
- package/node_modules/tslib/tslib.es6.js +374 -0
- package/node_modules/tslib/tslib.es6.mjs +373 -0
- package/node_modules/tslib/tslib.html +1 -0
- package/node_modules/tslib/tslib.js +424 -0
- package/node_modules/upper-case/README.md +34 -0
- package/node_modules/upper-case/dist/index.d.ts +8 -0
- package/node_modules/upper-case/dist/index.js +49 -0
- package/node_modules/upper-case/dist/index.js.map +1 -0
- package/node_modules/upper-case/dist/index.spec.d.ts +1 -0
- package/node_modules/upper-case/dist/index.spec.js +34 -0
- package/node_modules/upper-case/dist/index.spec.js.map +1 -0
- package/node_modules/upper-case/dist.es2015/index.d.ts +8 -0
- package/node_modules/upper-case/dist.es2015/index.js +44 -0
- package/node_modules/upper-case/dist.es2015/index.js.map +1 -0
- package/node_modules/upper-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/upper-case/dist.es2015/index.spec.js +32 -0
- package/node_modules/upper-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/upper-case/package.json +86 -0
- package/node_modules/upper-case-first/LICENSE +21 -0
- package/node_modules/upper-case-first/README.md +32 -0
- package/node_modules/upper-case-first/dist/index.d.ts +4 -0
- package/node_modules/upper-case-first/dist/index.js +11 -0
- package/node_modules/upper-case-first/dist/index.js.map +1 -0
- package/node_modules/upper-case-first/dist/index.spec.d.ts +1 -0
- package/node_modules/upper-case-first/dist/index.spec.js +20 -0
- package/node_modules/upper-case-first/dist/index.spec.js.map +1 -0
- package/node_modules/upper-case-first/dist.es2015/index.d.ts +4 -0
- package/node_modules/upper-case-first/dist.es2015/index.js +7 -0
- package/node_modules/upper-case-first/dist.es2015/index.js.map +1 -0
- package/node_modules/upper-case-first/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/upper-case-first/dist.es2015/index.spec.js +18 -0
- package/node_modules/upper-case-first/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/upper-case-first/package.json +87 -0
- package/package.json +152 -0
- package/setup.js +2 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { IConstruct } from "constructs";
|
|
2
|
+
import * as notify from "..";
|
|
3
|
+
import { Duration } from "../../..";
|
|
4
|
+
import * as compute from "../../compute";
|
|
5
|
+
import * as iam from "../../iam";
|
|
6
|
+
/**
|
|
7
|
+
* The generic properties for an RuleTarget
|
|
8
|
+
*/
|
|
9
|
+
export interface TargetBaseProps {
|
|
10
|
+
/**
|
|
11
|
+
* The SQS queue to be used as deadLetterQueue.
|
|
12
|
+
* Check out the [considerations for using a dead-letter queue](https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-considerations).
|
|
13
|
+
*
|
|
14
|
+
* The events not successfully delivered are automatically retried for a specified period of time,
|
|
15
|
+
* depending on the retry policy of the target.
|
|
16
|
+
* If an event is not delivered before all retry attempts are exhausted, it will be sent to the dead letter queue.
|
|
17
|
+
*
|
|
18
|
+
* @default - no dead-letter queue
|
|
19
|
+
*/
|
|
20
|
+
readonly deadLetterQueue?: notify.IQueue;
|
|
21
|
+
/**
|
|
22
|
+
* The maximum age of a request that Lambda sends to a function for
|
|
23
|
+
* processing.
|
|
24
|
+
*
|
|
25
|
+
* Minimum value of 60.
|
|
26
|
+
* Maximum value of 86400.
|
|
27
|
+
*
|
|
28
|
+
* @default Duration.hours(24)
|
|
29
|
+
*/
|
|
30
|
+
readonly maxEventAge?: Duration;
|
|
31
|
+
/**
|
|
32
|
+
* The maximum number of times to retry when the function returns an error.
|
|
33
|
+
*
|
|
34
|
+
* Minimum value of 0.
|
|
35
|
+
* Maximum value of 185.
|
|
36
|
+
*
|
|
37
|
+
* @default 185
|
|
38
|
+
*/
|
|
39
|
+
readonly retryAttempts?: number;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Bind props to base rule target config.
|
|
43
|
+
* @internal
|
|
44
|
+
*/
|
|
45
|
+
export declare function bindBaseTargetConfig(props: TargetBaseProps): {
|
|
46
|
+
deadLetterConfig: {
|
|
47
|
+
arn: string;
|
|
48
|
+
} | undefined;
|
|
49
|
+
retryPolicy: {
|
|
50
|
+
maximumRetryAttempts: number | undefined;
|
|
51
|
+
maximumEventAgeInSeconds: number | undefined;
|
|
52
|
+
} | undefined;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Obtain the Role for the EventBridge event
|
|
56
|
+
*
|
|
57
|
+
* If a role already exists, it will be returned. This ensures that if multiple
|
|
58
|
+
* events have the same target, they will share a role.
|
|
59
|
+
* @internal
|
|
60
|
+
*/
|
|
61
|
+
export declare function singletonEventRole(scope: IConstruct): iam.IRole;
|
|
62
|
+
/**
|
|
63
|
+
* Allows a Lambda function to be called from a rule
|
|
64
|
+
* @internal
|
|
65
|
+
*/
|
|
66
|
+
export declare function addLambdaPermission(rule: notify.IRule, handler: compute.IFunction): void;
|
|
67
|
+
/**
|
|
68
|
+
* Allow a rule to send events with failed invocation to an Amazon SQS queue.
|
|
69
|
+
* @internal
|
|
70
|
+
*/
|
|
71
|
+
export declare function addToDeadLetterQueueResourcePolicy(rule: notify.IRule, queue: notify.IQueue): void;
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addToDeadLetterQueueResourcePolicy = exports.addLambdaPermission = exports.singletonEventRole = exports.bindBaseTargetConfig = void 0;
|
|
4
|
+
const cdktf_1 = require("cdktf");
|
|
5
|
+
const constructs_1 = require("constructs");
|
|
6
|
+
const __1 = require("../..");
|
|
7
|
+
const token_1 = require("../../../token");
|
|
8
|
+
const iam = require("../../iam");
|
|
9
|
+
/**
|
|
10
|
+
* Bind props to base rule target config.
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
function bindBaseTargetConfig(props) {
|
|
14
|
+
let { deadLetterQueue, retryAttempts, maxEventAge } = props;
|
|
15
|
+
return {
|
|
16
|
+
deadLetterConfig: deadLetterQueue
|
|
17
|
+
? { arn: deadLetterQueue?.queueArn }
|
|
18
|
+
: undefined,
|
|
19
|
+
retryPolicy: (retryAttempts !== undefined && retryAttempts >= 0) || maxEventAge
|
|
20
|
+
? {
|
|
21
|
+
maximumRetryAttempts: retryAttempts,
|
|
22
|
+
maximumEventAgeInSeconds: maxEventAge?.toSeconds({
|
|
23
|
+
integral: true,
|
|
24
|
+
}),
|
|
25
|
+
}
|
|
26
|
+
: undefined,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
exports.bindBaseTargetConfig = bindBaseTargetConfig;
|
|
30
|
+
/**
|
|
31
|
+
* Obtain the Role for the EventBridge event
|
|
32
|
+
*
|
|
33
|
+
* If a role already exists, it will be returned. This ensures that if multiple
|
|
34
|
+
* events have the same target, they will share a role.
|
|
35
|
+
* @internal
|
|
36
|
+
*/
|
|
37
|
+
function singletonEventRole(scope) {
|
|
38
|
+
const id = "EventsRole";
|
|
39
|
+
const existing = scope.node.tryFindChild(id);
|
|
40
|
+
if (existing) {
|
|
41
|
+
return existing;
|
|
42
|
+
}
|
|
43
|
+
const role = new iam.Role(scope, id, {
|
|
44
|
+
assumedBy: new iam.ServicePrincipal("events.amazonaws.com"), // TODO: Should be "events"?
|
|
45
|
+
});
|
|
46
|
+
return role;
|
|
47
|
+
}
|
|
48
|
+
exports.singletonEventRole = singletonEventRole;
|
|
49
|
+
/**
|
|
50
|
+
* Allows a Lambda function to be called from a rule
|
|
51
|
+
* @internal
|
|
52
|
+
*/
|
|
53
|
+
function addLambdaPermission(rule, handler) {
|
|
54
|
+
let scope;
|
|
55
|
+
let node = handler.permissionsNode;
|
|
56
|
+
let permissionId = `AllowEventRule${__1.AwsStack.uniqueId(rule.node)}`;
|
|
57
|
+
if (rule instanceof constructs_1.Construct) {
|
|
58
|
+
// Place the Permission resource in the same stack as Rule rather than the Function
|
|
59
|
+
// This is to reduce circular dependency when the lambda handler and the rule are across stacks.
|
|
60
|
+
scope = rule;
|
|
61
|
+
node = rule.node;
|
|
62
|
+
permissionId = `AllowEventRule${__1.AwsStack.uniqueId(handler.node)}`;
|
|
63
|
+
}
|
|
64
|
+
if (!node.tryFindChild(permissionId)) {
|
|
65
|
+
handler.addPermission(permissionId, {
|
|
66
|
+
scope,
|
|
67
|
+
action: "lambda:InvokeFunction",
|
|
68
|
+
principal: new iam.ServicePrincipal("events.amazonaws.com"),
|
|
69
|
+
sourceArn: rule.ruleArn,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
exports.addLambdaPermission = addLambdaPermission;
|
|
74
|
+
/**
|
|
75
|
+
* Allow a rule to send events with failed invocation to an Amazon SQS queue.
|
|
76
|
+
* @internal
|
|
77
|
+
*/
|
|
78
|
+
function addToDeadLetterQueueResourcePolicy(rule, queue) {
|
|
79
|
+
if (!sameEnvDimension(rule.env.region, queue.env.region)) {
|
|
80
|
+
throw new Error(`Cannot assign Dead Letter Queue in region ${queue.env.region} to the rule ${__1.AwsStack.uniqueId(rule.node)} in region ${rule.env.region}. Both the queue and the rule must be in the same region.`);
|
|
81
|
+
}
|
|
82
|
+
// Skip Resource Policy creation if the Queue is not in the same account.
|
|
83
|
+
// There is no way to add a target onto an imported rule, so we can assume we will run the following code only
|
|
84
|
+
// in the account where the rule is created.
|
|
85
|
+
if (sameEnvDimension(rule.env.account, queue.env.account)) {
|
|
86
|
+
const policyStatementId = `AllowEventRule${__1.AwsStack.uniqueId(rule.node)}`;
|
|
87
|
+
queue.addToResourcePolicy(new iam.PolicyStatement({
|
|
88
|
+
sid: policyStatementId,
|
|
89
|
+
principals: [new iam.ServicePrincipal("events.amazonaws.com")],
|
|
90
|
+
effect: iam.Effect.ALLOW,
|
|
91
|
+
actions: ["sqs:SendMessage"],
|
|
92
|
+
resources: [queue.queueArn],
|
|
93
|
+
condition: [
|
|
94
|
+
{
|
|
95
|
+
test: "ArnEquals",
|
|
96
|
+
variable: "aws:SourceArn",
|
|
97
|
+
values: [rule.ruleArn],
|
|
98
|
+
},
|
|
99
|
+
],
|
|
100
|
+
}));
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
// "@aws-cdk/aws-events-targets:manuallyAddDLQResourcePolicy",
|
|
104
|
+
cdktf_1.Annotations.of(rule).addWarning(`Cannot add a resource policy to your dead letter queue associated with rule ${rule.ruleName} because the queue is in a different account. You must add the resource policy manually to the dead letter queue in account ${queue.env.account}.`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
exports.addToDeadLetterQueueResourcePolicy = addToDeadLetterQueueResourcePolicy;
|
|
108
|
+
/**
|
|
109
|
+
* Whether two string probably contain the same environment dimension (region or account)
|
|
110
|
+
*
|
|
111
|
+
* Used to compare either accounts or regions on a best effort basis. If we cannot tell definitively
|
|
112
|
+
* that the dimensions are in different environments, we will pass.
|
|
113
|
+
*
|
|
114
|
+
* For example, returns true if both are unresolved (in which case both are expected to be
|
|
115
|
+
* "current region" or "current account").
|
|
116
|
+
*
|
|
117
|
+
* Also returns true if one is unresolved (in which case we expect the unresolved dimension to match
|
|
118
|
+
* the resolved dimension, but it is up to the user to ensure this). Returning true here makes sure
|
|
119
|
+
* that we are not overly aggressive in producing a synth-time error.
|
|
120
|
+
*
|
|
121
|
+
* @internal
|
|
122
|
+
*/
|
|
123
|
+
function sameEnvDimension(dim1, dim2) {
|
|
124
|
+
return [
|
|
125
|
+
token_1.TokenComparison.SAME,
|
|
126
|
+
token_1.TokenComparison.ONE_UNRESOLVED,
|
|
127
|
+
token_1.TokenComparison.BOTH_UNRESOLVED,
|
|
128
|
+
].includes((0, token_1.tokenCompareStrings)(dim1, dim2));
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hd3Mvbm90aWZ5L3RhcmdldHMvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpQ0FBb0M7QUFDcEMsMkNBQXlEO0FBRXpELDZCQUFpQztBQUVqQywwQ0FBc0U7QUFFdEUsaUNBQWlDO0FBdUNqQzs7O0dBR0c7QUFDSCxTQUFnQixvQkFBb0IsQ0FBQyxLQUFzQjtJQUN6RCxJQUFJLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFFNUQsT0FBTztRQUNMLGdCQUFnQixFQUFFLGVBQWU7WUFDL0IsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUU7WUFDcEMsQ0FBQyxDQUFDLFNBQVM7UUFDYixXQUFXLEVBQ1QsQ0FBQyxhQUFhLEtBQUssU0FBUyxJQUFJLGFBQWEsSUFBSSxDQUFDLENBQUMsSUFBSSxXQUFXO1lBQ2hFLENBQUMsQ0FBQztnQkFDRSxvQkFBb0IsRUFBRSxhQUFhO2dCQUNuQyx3QkFBd0IsRUFBRSxXQUFXLEVBQUUsU0FBUyxDQUFDO29CQUMvQyxRQUFRLEVBQUUsSUFBSTtpQkFDZixDQUFDO2FBQ0g7WUFDSCxDQUFDLENBQUMsU0FBUztLQUNoQixDQUFDO0FBQ0osQ0FBQztBQWpCRCxvREFpQkM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxLQUFpQjtJQUNsRCxNQUFNLEVBQUUsR0FBRyxZQUFZLENBQUM7SUFDeEIsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFjLENBQUM7SUFDMUQsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNiLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBa0IsRUFBRSxFQUFFLEVBQUU7UUFDaEQsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDLEVBQUUsNEJBQTRCO0tBQzFGLENBQUMsQ0FBQztJQUVILE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQVpELGdEQVlDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQ2pDLElBQWtCLEVBQ2xCLE9BQTBCO0lBRTFCLElBQUksS0FBNEIsQ0FBQztJQUNqQyxJQUFJLElBQUksR0FBUyxPQUFPLENBQUMsZUFBZSxDQUFDO0lBQ3pDLElBQUksWUFBWSxHQUFHLGlCQUFpQixZQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ25FLElBQUksSUFBSSxZQUFZLHNCQUFTLEVBQUUsQ0FBQztRQUM5QixtRkFBbUY7UUFDbkYsZ0dBQWdHO1FBQ2hHLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDYixJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNqQixZQUFZLEdBQUcsaUJBQWlCLFlBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDcEUsQ0FBQztJQUNELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7UUFDckMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUU7WUFDbEMsS0FBSztZQUNMLE1BQU0sRUFBRSx1QkFBdUI7WUFDL0IsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDO1lBQzNELFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTztTQUN4QixDQUFDLENBQUM7SUFDTCxDQUFDO0FBQ0gsQ0FBQztBQXRCRCxrREFzQkM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQixrQ0FBa0MsQ0FDaEQsSUFBa0IsRUFDbEIsS0FBb0I7SUFFcEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUN6RCxNQUFNLElBQUksS0FBSyxDQUNiLDZDQUE2QyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sZ0JBQWdCLFlBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSwyREFBMkQsQ0FDbE0sQ0FBQztJQUNKLENBQUM7SUFFRCx5RUFBeUU7SUFDekUsOEdBQThHO0lBQzlHLDRDQUE0QztJQUM1QyxJQUFJLGdCQUFnQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUMxRCxNQUFNLGlCQUFpQixHQUFHLGlCQUFpQixZQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBRTFFLEtBQUssQ0FBQyxtQkFBbUIsQ0FDdkIsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO1lBQ3RCLEdBQUcsRUFBRSxpQkFBaUI7WUFDdEIsVUFBVSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsQ0FBQztZQUM5RCxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQ3hCLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO1lBQzVCLFNBQVMsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDM0IsU0FBUyxFQUFFO2dCQUNUO29CQUNFLElBQUksRUFBRSxXQUFXO29CQUNqQixRQUFRLEVBQUUsZUFBZTtvQkFDekIsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztpQkFDdkI7YUFDRjtTQUNGLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztTQUFNLENBQUM7UUFDTiw4REFBOEQ7UUFDOUQsbUJBQVcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUM3QiwrRUFBK0UsSUFBSSxDQUFDLFFBQVEsK0hBQStILEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLENBQ2hQLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQztBQXRDRCxnRkFzQ0M7QUFFRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILFNBQVMsZ0JBQWdCLENBQUMsSUFBWSxFQUFFLElBQVk7SUFDbEQsT0FBTztRQUNMLHVCQUFlLENBQUMsSUFBSTtRQUNwQix1QkFBZSxDQUFDLGNBQWM7UUFDOUIsdUJBQWUsQ0FBQyxlQUFlO0tBQ2hDLENBQUMsUUFBUSxDQUFDLElBQUEsMkJBQW1CLEVBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDOUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFubm90YXRpb25zIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QsIElDb25zdHJ1Y3QsIE5vZGUgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgbm90aWZ5IGZyb20gXCIuLlwiO1xuaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vLi5cIjtcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcIi4uLy4uLy4uXCI7XG5pbXBvcnQgeyBUb2tlbkNvbXBhcmlzb24sIHRva2VuQ29tcGFyZVN0cmluZ3MgfSBmcm9tIFwiLi4vLi4vLi4vdG9rZW5cIjtcbmltcG9ydCAqIGFzIGNvbXB1dGUgZnJvbSBcIi4uLy4uL2NvbXB1dGVcIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vLi4vaWFtXCI7XG5cbi8qKlxuICogVGhlIGdlbmVyaWMgcHJvcGVydGllcyBmb3IgYW4gUnVsZVRhcmdldFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldEJhc2VQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgU1FTIHF1ZXVlIHRvIGJlIHVzZWQgYXMgZGVhZExldHRlclF1ZXVlLlxuICAgKiBDaGVjayBvdXQgdGhlIFtjb25zaWRlcmF0aW9ucyBmb3IgdXNpbmcgYSBkZWFkLWxldHRlciBxdWV1ZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2V2ZW50YnJpZGdlL2xhdGVzdC91c2VyZ3VpZGUvcnVsZS1kbHEuaHRtbCNkbHEtY29uc2lkZXJhdGlvbnMpLlxuICAgKlxuICAgKiBUaGUgZXZlbnRzIG5vdCBzdWNjZXNzZnVsbHkgZGVsaXZlcmVkIGFyZSBhdXRvbWF0aWNhbGx5IHJldHJpZWQgZm9yIGEgc3BlY2lmaWVkIHBlcmlvZCBvZiB0aW1lLFxuICAgKiBkZXBlbmRpbmcgb24gdGhlIHJldHJ5IHBvbGljeSBvZiB0aGUgdGFyZ2V0LlxuICAgKiBJZiBhbiBldmVudCBpcyBub3QgZGVsaXZlcmVkIGJlZm9yZSBhbGwgcmV0cnkgYXR0ZW1wdHMgYXJlIGV4aGF1c3RlZCwgaXQgd2lsbCBiZSBzZW50IHRvIHRoZSBkZWFkIGxldHRlciBxdWV1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBkZWFkLWxldHRlciBxdWV1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVhZExldHRlclF1ZXVlPzogbm90aWZ5LklRdWV1ZTtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGFnZSBvZiBhIHJlcXVlc3QgdGhhdCBMYW1iZGEgc2VuZHMgdG8gYSBmdW5jdGlvbiBmb3JcbiAgICogcHJvY2Vzc2luZy5cbiAgICpcbiAgICogTWluaW11bSB2YWx1ZSBvZiA2MC5cbiAgICogTWF4aW11bSB2YWx1ZSBvZiA4NjQwMC5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24uaG91cnMoMjQpXG4gICAqL1xuICByZWFkb25seSBtYXhFdmVudEFnZT86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgdGltZXMgdG8gcmV0cnkgd2hlbiB0aGUgZnVuY3Rpb24gcmV0dXJucyBhbiBlcnJvci5cbiAgICpcbiAgICogTWluaW11bSB2YWx1ZSBvZiAwLlxuICAgKiBNYXhpbXVtIHZhbHVlIG9mIDE4NS5cbiAgICpcbiAgICogQGRlZmF1bHQgMTg1XG4gICAqL1xuICByZWFkb25seSByZXRyeUF0dGVtcHRzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEJpbmQgcHJvcHMgdG8gYmFzZSBydWxlIHRhcmdldCBjb25maWcuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJpbmRCYXNlVGFyZ2V0Q29uZmlnKHByb3BzOiBUYXJnZXRCYXNlUHJvcHMpIHtcbiAgbGV0IHsgZGVhZExldHRlclF1ZXVlLCByZXRyeUF0dGVtcHRzLCBtYXhFdmVudEFnZSB9ID0gcHJvcHM7XG5cbiAgcmV0dXJuIHtcbiAgICBkZWFkTGV0dGVyQ29uZmlnOiBkZWFkTGV0dGVyUXVldWVcbiAgICAgID8geyBhcm46IGRlYWRMZXR0ZXJRdWV1ZT8ucXVldWVBcm4gfVxuICAgICAgOiB1bmRlZmluZWQsXG4gICAgcmV0cnlQb2xpY3k6XG4gICAgICAocmV0cnlBdHRlbXB0cyAhPT0gdW5kZWZpbmVkICYmIHJldHJ5QXR0ZW1wdHMgPj0gMCkgfHwgbWF4RXZlbnRBZ2VcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBtYXhpbXVtUmV0cnlBdHRlbXB0czogcmV0cnlBdHRlbXB0cyxcbiAgICAgICAgICAgIG1heGltdW1FdmVudEFnZUluU2Vjb25kczogbWF4RXZlbnRBZ2U/LnRvU2Vjb25kcyh7XG4gICAgICAgICAgICAgIGludGVncmFsOiB0cnVlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgfTtcbn1cblxuLyoqXG4gKiBPYnRhaW4gdGhlIFJvbGUgZm9yIHRoZSBFdmVudEJyaWRnZSBldmVudFxuICpcbiAqIElmIGEgcm9sZSBhbHJlYWR5IGV4aXN0cywgaXQgd2lsbCBiZSByZXR1cm5lZC4gVGhpcyBlbnN1cmVzIHRoYXQgaWYgbXVsdGlwbGVcbiAqIGV2ZW50cyBoYXZlIHRoZSBzYW1lIHRhcmdldCwgdGhleSB3aWxsIHNoYXJlIGEgcm9sZS5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gc2luZ2xldG9uRXZlbnRSb2xlKHNjb3BlOiBJQ29uc3RydWN0KTogaWFtLklSb2xlIHtcbiAgY29uc3QgaWQgPSBcIkV2ZW50c1JvbGVcIjtcbiAgY29uc3QgZXhpc3RpbmcgPSBzY29wZS5ub2RlLnRyeUZpbmRDaGlsZChpZCkgYXMgaWFtLklSb2xlO1xuICBpZiAoZXhpc3RpbmcpIHtcbiAgICByZXR1cm4gZXhpc3Rpbmc7XG4gIH1cblxuICBjb25zdCByb2xlID0gbmV3IGlhbS5Sb2xlKHNjb3BlIGFzIENvbnN0cnVjdCwgaWQsIHtcbiAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbChcImV2ZW50cy5hbWF6b25hd3MuY29tXCIpLCAvLyBUT0RPOiBTaG91bGQgYmUgXCJldmVudHNcIj9cbiAgfSk7XG5cbiAgcmV0dXJuIHJvbGU7XG59XG5cbi8qKlxuICogQWxsb3dzIGEgTGFtYmRhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCBmcm9tIGEgcnVsZVxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRMYW1iZGFQZXJtaXNzaW9uKFxuICBydWxlOiBub3RpZnkuSVJ1bGUsXG4gIGhhbmRsZXI6IGNvbXB1dGUuSUZ1bmN0aW9uLFxuKTogdm9pZCB7XG4gIGxldCBzY29wZTogQ29uc3RydWN0IHwgdW5kZWZpbmVkO1xuICBsZXQgbm9kZTogTm9kZSA9IGhhbmRsZXIucGVybWlzc2lvbnNOb2RlO1xuICBsZXQgcGVybWlzc2lvbklkID0gYEFsbG93RXZlbnRSdWxlJHtBd3NTdGFjay51bmlxdWVJZChydWxlLm5vZGUpfWA7XG4gIGlmIChydWxlIGluc3RhbmNlb2YgQ29uc3RydWN0KSB7XG4gICAgLy8gUGxhY2UgdGhlIFBlcm1pc3Npb24gcmVzb3VyY2UgaW4gdGhlIHNhbWUgc3RhY2sgYXMgUnVsZSByYXRoZXIgdGhhbiB0aGUgRnVuY3Rpb25cbiAgICAvLyBUaGlzIGlzIHRvIHJlZHVjZSBjaXJjdWxhciBkZXBlbmRlbmN5IHdoZW4gdGhlIGxhbWJkYSBoYW5kbGVyIGFuZCB0aGUgcnVsZSBhcmUgYWNyb3NzIHN0YWNrcy5cbiAgICBzY29wZSA9IHJ1bGU7XG4gICAgbm9kZSA9IHJ1bGUubm9kZTtcbiAgICBwZXJtaXNzaW9uSWQgPSBgQWxsb3dFdmVudFJ1bGUke0F3c1N0YWNrLnVuaXF1ZUlkKGhhbmRsZXIubm9kZSl9YDtcbiAgfVxuICBpZiAoIW5vZGUudHJ5RmluZENoaWxkKHBlcm1pc3Npb25JZCkpIHtcbiAgICBoYW5kbGVyLmFkZFBlcm1pc3Npb24ocGVybWlzc2lvbklkLCB7XG4gICAgICBzY29wZSxcbiAgICAgIGFjdGlvbjogXCJsYW1iZGE6SW52b2tlRnVuY3Rpb25cIixcbiAgICAgIHByaW5jaXBhbDogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwiZXZlbnRzLmFtYXpvbmF3cy5jb21cIiksXG4gICAgICBzb3VyY2VBcm46IHJ1bGUucnVsZUFybixcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIEFsbG93IGEgcnVsZSB0byBzZW5kIGV2ZW50cyB3aXRoIGZhaWxlZCBpbnZvY2F0aW9uIHRvIGFuIEFtYXpvbiBTUVMgcXVldWUuXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFRvRGVhZExldHRlclF1ZXVlUmVzb3VyY2VQb2xpY3koXG4gIHJ1bGU6IG5vdGlmeS5JUnVsZSxcbiAgcXVldWU6IG5vdGlmeS5JUXVldWUsXG4pIHtcbiAgaWYgKCFzYW1lRW52RGltZW5zaW9uKHJ1bGUuZW52LnJlZ2lvbiwgcXVldWUuZW52LnJlZ2lvbikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgQ2Fubm90IGFzc2lnbiBEZWFkIExldHRlciBRdWV1ZSBpbiByZWdpb24gJHtxdWV1ZS5lbnYucmVnaW9ufSB0byB0aGUgcnVsZSAke0F3c1N0YWNrLnVuaXF1ZUlkKHJ1bGUubm9kZSl9IGluIHJlZ2lvbiAke3J1bGUuZW52LnJlZ2lvbn0uIEJvdGggdGhlIHF1ZXVlIGFuZCB0aGUgcnVsZSBtdXN0IGJlIGluIHRoZSBzYW1lIHJlZ2lvbi5gLFxuICAgICk7XG4gIH1cblxuICAvLyBTa2lwIFJlc291cmNlIFBvbGljeSBjcmVhdGlvbiBpZiB0aGUgUXVldWUgaXMgbm90IGluIHRoZSBzYW1lIGFjY291bnQuXG4gIC8vIFRoZXJlIGlzIG5vIHdheSB0byBhZGQgYSB0YXJnZXQgb250byBhbiBpbXBvcnRlZCBydWxlLCBzbyB3ZSBjYW4gYXNzdW1lIHdlIHdpbGwgcnVuIHRoZSBmb2xsb3dpbmcgY29kZSBvbmx5XG4gIC8vIGluIHRoZSBhY2NvdW50IHdoZXJlIHRoZSBydWxlIGlzIGNyZWF0ZWQuXG4gIGlmIChzYW1lRW52RGltZW5zaW9uKHJ1bGUuZW52LmFjY291bnQsIHF1ZXVlLmVudi5hY2NvdW50KSkge1xuICAgIGNvbnN0IHBvbGljeVN0YXRlbWVudElkID0gYEFsbG93RXZlbnRSdWxlJHtBd3NTdGFjay51bmlxdWVJZChydWxlLm5vZGUpfWA7XG5cbiAgICBxdWV1ZS5hZGRUb1Jlc291cmNlUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBzaWQ6IHBvbGljeVN0YXRlbWVudElkLFxuICAgICAgICBwcmluY2lwYWxzOiBbbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwiZXZlbnRzLmFtYXpvbmF3cy5jb21cIildLFxuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIGFjdGlvbnM6IFtcInNxczpTZW5kTWVzc2FnZVwiXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbcXVldWUucXVldWVBcm5dLFxuICAgICAgICBjb25kaXRpb246IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0ZXN0OiBcIkFybkVxdWFsc1wiLFxuICAgICAgICAgICAgdmFyaWFibGU6IFwiYXdzOlNvdXJjZUFyblwiLFxuICAgICAgICAgICAgdmFsdWVzOiBbcnVsZS5ydWxlQXJuXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICAvLyBcIkBhd3MtY2RrL2F3cy1ldmVudHMtdGFyZ2V0czptYW51YWxseUFkZERMUVJlc291cmNlUG9saWN5XCIsXG4gICAgQW5ub3RhdGlvbnMub2YocnVsZSkuYWRkV2FybmluZyhcbiAgICAgIGBDYW5ub3QgYWRkIGEgcmVzb3VyY2UgcG9saWN5IHRvIHlvdXIgZGVhZCBsZXR0ZXIgcXVldWUgYXNzb2NpYXRlZCB3aXRoIHJ1bGUgJHtydWxlLnJ1bGVOYW1lfSBiZWNhdXNlIHRoZSBxdWV1ZSBpcyBpbiBhIGRpZmZlcmVudCBhY2NvdW50LiBZb3UgbXVzdCBhZGQgdGhlIHJlc291cmNlIHBvbGljeSBtYW51YWxseSB0byB0aGUgZGVhZCBsZXR0ZXIgcXVldWUgaW4gYWNjb3VudCAke3F1ZXVlLmVudi5hY2NvdW50fS5gLFxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBXaGV0aGVyIHR3byBzdHJpbmcgcHJvYmFibHkgY29udGFpbiB0aGUgc2FtZSBlbnZpcm9ubWVudCBkaW1lbnNpb24gKHJlZ2lvbiBvciBhY2NvdW50KVxuICpcbiAqIFVzZWQgdG8gY29tcGFyZSBlaXRoZXIgYWNjb3VudHMgb3IgcmVnaW9ucyBvbiBhIGJlc3QgZWZmb3J0IGJhc2lzLiBJZiB3ZSBjYW5ub3QgdGVsbCBkZWZpbml0aXZlbHlcbiAqIHRoYXQgdGhlIGRpbWVuc2lvbnMgYXJlIGluIGRpZmZlcmVudCBlbnZpcm9ubWVudHMsIHdlIHdpbGwgcGFzcy5cbiAqXG4gKiBGb3IgZXhhbXBsZSwgcmV0dXJucyB0cnVlIGlmIGJvdGggYXJlIHVucmVzb2x2ZWQgKGluIHdoaWNoIGNhc2UgYm90aCBhcmUgZXhwZWN0ZWQgdG8gYmVcbiAqIFwiY3VycmVudCByZWdpb25cIiBvciBcImN1cnJlbnQgYWNjb3VudFwiKS5cbiAqXG4gKiBBbHNvIHJldHVybnMgdHJ1ZSBpZiBvbmUgaXMgdW5yZXNvbHZlZCAoaW4gd2hpY2ggY2FzZSB3ZSBleHBlY3QgdGhlIHVucmVzb2x2ZWQgZGltZW5zaW9uIHRvIG1hdGNoXG4gKiB0aGUgcmVzb2x2ZWQgZGltZW5zaW9uLCBidXQgaXQgaXMgdXAgdG8gdGhlIHVzZXIgdG8gZW5zdXJlIHRoaXMpLiBSZXR1cm5pbmcgdHJ1ZSBoZXJlIG1ha2VzIHN1cmVcbiAqIHRoYXQgd2UgYXJlIG5vdCBvdmVybHkgYWdncmVzc2l2ZSBpbiBwcm9kdWNpbmcgYSBzeW50aC10aW1lIGVycm9yLlxuICpcbiAqIEBpbnRlcm5hbFxuICovXG5mdW5jdGlvbiBzYW1lRW52RGltZW5zaW9uKGRpbTE6IHN0cmluZywgZGltMjogc3RyaW5nKSB7XG4gIHJldHVybiBbXG4gICAgVG9rZW5Db21wYXJpc29uLlNBTUUsXG4gICAgVG9rZW5Db21wYXJpc29uLk9ORV9VTlJFU09MVkVELFxuICAgIFRva2VuQ29tcGFyaXNvbi5CT1RIX1VOUkVTT0xWRUQsXG4gIF0uaW5jbHVkZXModG9rZW5Db21wYXJlU3RyaW5ncyhkaW0xLCBkaW0yKSk7XG59XG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { EventPattern } from "./event-pattern";
|
|
2
|
+
/**
|
|
3
|
+
* Merge the `src` event pattern into the `dest` event pattern by adding all
|
|
4
|
+
* values from `src` into the fields in `dest`.
|
|
5
|
+
*
|
|
6
|
+
* See `rule.addEventPattern` for details.
|
|
7
|
+
*/
|
|
8
|
+
export declare function mergeEventPattern(dest: any, src: any): any;
|
|
9
|
+
/**
|
|
10
|
+
* Transform an eventPattern object into a valid Event Rule Pattern
|
|
11
|
+
* by changing detailType into detail-type when present.
|
|
12
|
+
*/
|
|
13
|
+
export declare function renderEventPattern(eventPattern: EventPattern): any;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderEventPattern = exports.mergeEventPattern = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Merge the `src` event pattern into the `dest` event pattern by adding all
|
|
6
|
+
* values from `src` into the fields in `dest`.
|
|
7
|
+
*
|
|
8
|
+
* See `rule.addEventPattern` for details.
|
|
9
|
+
*/
|
|
10
|
+
function mergeEventPattern(dest, src) {
|
|
11
|
+
dest = dest || {};
|
|
12
|
+
mergeObject(dest, src);
|
|
13
|
+
return dest;
|
|
14
|
+
function mergeObject(destObj, srcObj) {
|
|
15
|
+
if (typeof srcObj !== "object") {
|
|
16
|
+
throw new Error(`Invalid event pattern '${JSON.stringify(srcObj)}', expecting an object or an array`);
|
|
17
|
+
}
|
|
18
|
+
for (const field of Object.keys(srcObj)) {
|
|
19
|
+
const srcValue = srcObj[field];
|
|
20
|
+
const destValue = destObj[field];
|
|
21
|
+
if (srcValue === undefined) {
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
if (typeof srcValue !== "object") {
|
|
25
|
+
throw new Error(`Invalid event pattern field { ${field}: ${JSON.stringify(srcValue)} }. All fields must be arrays`);
|
|
26
|
+
}
|
|
27
|
+
// dest doesn't have this field
|
|
28
|
+
if (destObj[field] === undefined) {
|
|
29
|
+
destObj[field] = srcValue;
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
if (Array.isArray(srcValue) !== Array.isArray(destValue)) {
|
|
33
|
+
throw new Error(`Invalid event pattern field ${field}. ` +
|
|
34
|
+
`Type mismatch between existing pattern ${JSON.stringify(destValue)} and added pattern ${JSON.stringify(srcValue)}`);
|
|
35
|
+
}
|
|
36
|
+
// if this is an array, concat and deduplicate the values
|
|
37
|
+
if (Array.isArray(srcValue)) {
|
|
38
|
+
const result = [...destValue, ...srcValue];
|
|
39
|
+
const resultJson = result.map((i) => JSON.stringify(i));
|
|
40
|
+
destObj[field] = result.filter((value, index) => resultJson.indexOf(JSON.stringify(value)) === index);
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
// otherwise, it's an object, so recurse
|
|
44
|
+
mergeObject(destObj[field], srcValue);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.mergeEventPattern = mergeEventPattern;
|
|
49
|
+
/**
|
|
50
|
+
* Transform an eventPattern object into a valid Event Rule Pattern
|
|
51
|
+
* by changing detailType into detail-type when present.
|
|
52
|
+
*/
|
|
53
|
+
function renderEventPattern(eventPattern) {
|
|
54
|
+
if (Object.keys(eventPattern).length === 0) {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
// rename 'detailType' to 'detail-type'
|
|
58
|
+
const out = {};
|
|
59
|
+
for (let key of Object.keys(eventPattern)) {
|
|
60
|
+
const value = eventPattern[key];
|
|
61
|
+
if (key === "detailType") {
|
|
62
|
+
key = "detail-type";
|
|
63
|
+
}
|
|
64
|
+
out[key] = value;
|
|
65
|
+
}
|
|
66
|
+
return out;
|
|
67
|
+
}
|
|
68
|
+
exports.renderEventPattern = renderEventPattern;
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3Mvbm90aWZ5L3V0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0E7Ozs7O0dBS0c7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxJQUFTLEVBQUUsR0FBUTtJQUNuRCxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUVsQixXQUFXLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBRXZCLE9BQU8sSUFBSSxDQUFDO0lBRVosU0FBUyxXQUFXLENBQUMsT0FBWSxFQUFFLE1BQVc7UUFDNUMsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUMvQixNQUFNLElBQUksS0FBSyxDQUNiLDBCQUEwQixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxvQ0FBb0MsQ0FDckYsQ0FBQztRQUNKLENBQUM7UUFFRCxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN4QyxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0IsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWpDLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUMzQixTQUFTO1lBQ1gsQ0FBQztZQUVELElBQUksT0FBTyxRQUFRLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQ2IsaUNBQWlDLEtBQUssS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQywrQkFBK0IsQ0FDbkcsQ0FBQztZQUNKLENBQUM7WUFFRCwrQkFBK0I7WUFDL0IsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQ2pDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxRQUFRLENBQUM7Z0JBQzFCLFNBQVM7WUFDWCxDQUFDO1lBRUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDekQsTUFBTSxJQUFJLEtBQUssQ0FDYiwrQkFBK0IsS0FBSyxJQUFJO29CQUN0QywwQ0FBMEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsc0JBQXNCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FDdEgsQ0FBQztZQUNKLENBQUM7WUFFRCx5REFBeUQ7WUFDekQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBQzVCLE1BQU0sTUFBTSxHQUFHLENBQUMsR0FBRyxTQUFTLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQztnQkFDM0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN4RCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FDNUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQ3RFLENBQUM7Z0JBQ0YsU0FBUztZQUNYLENBQUM7WUFFRCx3Q0FBd0M7WUFDeEMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN4QyxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUF2REQsOENBdURDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsWUFBMEI7SUFDM0QsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMzQyxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsdUNBQXVDO0lBQ3ZDLE1BQU0sR0FBRyxHQUFRLEVBQUUsQ0FBQztJQUNwQixLQUFLLElBQUksR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztRQUMxQyxNQUFNLEtBQUssR0FBSSxZQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLElBQUksR0FBRyxLQUFLLFlBQVksRUFBRSxDQUFDO1lBQ3pCLEdBQUcsR0FBRyxhQUFhLENBQUM7UUFDdEIsQ0FBQztRQUNELEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7SUFDbkIsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQWhCRCxnREFnQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyByZWY6IGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE1Ni4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1ldmVudHMvbGliL2V2ZW50LXBhdHRlcm4udHNcbmltcG9ydCB7IEV2ZW50UGF0dGVybiB9IGZyb20gXCIuL2V2ZW50LXBhdHRlcm5cIjtcblxuLyoqXG4gKiBNZXJnZSB0aGUgYHNyY2AgZXZlbnQgcGF0dGVybiBpbnRvIHRoZSBgZGVzdGAgZXZlbnQgcGF0dGVybiBieSBhZGRpbmcgYWxsXG4gKiB2YWx1ZXMgZnJvbSBgc3JjYCBpbnRvIHRoZSBmaWVsZHMgaW4gYGRlc3RgLlxuICpcbiAqIFNlZSBgcnVsZS5hZGRFdmVudFBhdHRlcm5gIGZvciBkZXRhaWxzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VFdmVudFBhdHRlcm4oZGVzdDogYW55LCBzcmM6IGFueSkge1xuICBkZXN0ID0gZGVzdCB8fCB7fTtcblxuICBtZXJnZU9iamVjdChkZXN0LCBzcmMpO1xuXG4gIHJldHVybiBkZXN0O1xuXG4gIGZ1bmN0aW9uIG1lcmdlT2JqZWN0KGRlc3RPYmo6IGFueSwgc3JjT2JqOiBhbnkpIHtcbiAgICBpZiAodHlwZW9mIHNyY09iaiAhPT0gXCJvYmplY3RcIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgSW52YWxpZCBldmVudCBwYXR0ZXJuICcke0pTT04uc3RyaW5naWZ5KHNyY09iail9JywgZXhwZWN0aW5nIGFuIG9iamVjdCBvciBhbiBhcnJheWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgZmllbGQgb2YgT2JqZWN0LmtleXMoc3JjT2JqKSkge1xuICAgICAgY29uc3Qgc3JjVmFsdWUgPSBzcmNPYmpbZmllbGRdO1xuICAgICAgY29uc3QgZGVzdFZhbHVlID0gZGVzdE9ialtmaWVsZF07XG5cbiAgICAgIGlmIChzcmNWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHNyY1ZhbHVlICE9PSBcIm9iamVjdFwiKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBldmVudCBwYXR0ZXJuIGZpZWxkIHsgJHtmaWVsZH06ICR7SlNPTi5zdHJpbmdpZnkoc3JjVmFsdWUpfSB9LiBBbGwgZmllbGRzIG11c3QgYmUgYXJyYXlzYCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gZGVzdCBkb2Vzbid0IGhhdmUgdGhpcyBmaWVsZFxuICAgICAgaWYgKGRlc3RPYmpbZmllbGRdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZGVzdE9ialtmaWVsZF0gPSBzcmNWYWx1ZTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHNyY1ZhbHVlKSAhPT0gQXJyYXkuaXNBcnJheShkZXN0VmFsdWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgSW52YWxpZCBldmVudCBwYXR0ZXJuIGZpZWxkICR7ZmllbGR9LiBgICtcbiAgICAgICAgICAgIGBUeXBlIG1pc21hdGNoIGJldHdlZW4gZXhpc3RpbmcgcGF0dGVybiAke0pTT04uc3RyaW5naWZ5KGRlc3RWYWx1ZSl9IGFuZCBhZGRlZCBwYXR0ZXJuICR7SlNPTi5zdHJpbmdpZnkoc3JjVmFsdWUpfWAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIGlmIHRoaXMgaXMgYW4gYXJyYXksIGNvbmNhdCBhbmQgZGVkdXBsaWNhdGUgdGhlIHZhbHVlc1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc3JjVmFsdWUpKSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IFsuLi5kZXN0VmFsdWUsIC4uLnNyY1ZhbHVlXTtcbiAgICAgICAgY29uc3QgcmVzdWx0SnNvbiA9IHJlc3VsdC5tYXAoKGkpID0+IEpTT04uc3RyaW5naWZ5KGkpKTtcbiAgICAgICAgZGVzdE9ialtmaWVsZF0gPSByZXN1bHQuZmlsdGVyKFxuICAgICAgICAgICh2YWx1ZSwgaW5kZXgpID0+IHJlc3VsdEpzb24uaW5kZXhPZihKU09OLnN0cmluZ2lmeSh2YWx1ZSkpID09PSBpbmRleCxcbiAgICAgICAgKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIC8vIG90aGVyd2lzZSwgaXQncyBhbiBvYmplY3QsIHNvIHJlY3Vyc2VcbiAgICAgIG1lcmdlT2JqZWN0KGRlc3RPYmpbZmllbGRdLCBzcmNWYWx1ZSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogVHJhbnNmb3JtIGFuIGV2ZW50UGF0dGVybiBvYmplY3QgaW50byBhIHZhbGlkIEV2ZW50IFJ1bGUgUGF0dGVyblxuICogYnkgY2hhbmdpbmcgZGV0YWlsVHlwZSBpbnRvIGRldGFpbC10eXBlIHdoZW4gcHJlc2VudC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlbmRlckV2ZW50UGF0dGVybihldmVudFBhdHRlcm46IEV2ZW50UGF0dGVybik6IGFueSB7XG4gIGlmIChPYmplY3Qua2V5cyhldmVudFBhdHRlcm4pLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICAvLyByZW5hbWUgJ2RldGFpbFR5cGUnIHRvICdkZXRhaWwtdHlwZSdcbiAgY29uc3Qgb3V0OiBhbnkgPSB7fTtcbiAgZm9yIChsZXQga2V5IG9mIE9iamVjdC5rZXlzKGV2ZW50UGF0dGVybikpIHtcbiAgICBjb25zdCB2YWx1ZSA9IChldmVudFBhdHRlcm4gYXMgYW55KVtrZXldO1xuICAgIGlmIChrZXkgPT09IFwiZGV0YWlsVHlwZVwiKSB7XG4gICAgICBrZXkgPSBcImRldGFpbC10eXBlXCI7XG4gICAgfVxuICAgIG91dFtrZXldID0gdmFsdWU7XG4gIH1cblxuICByZXR1cm4gb3V0O1xufVxuIl19
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import type { IResolvable } from 'cdktf';
|
|
2
|
+
import type { provider } from '@cdktf/provider-aws';
|
|
3
|
+
/**
|
|
4
|
+
* Config for the AWS Provider
|
|
5
|
+
*/
|
|
6
|
+
export interface AwsProviderConfig {
|
|
7
|
+
/**
|
|
8
|
+
* Resolve an endpoint with FIPS capability.
|
|
9
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#use_fips_endpoint AwsProvider#use_fips_endpoint}
|
|
10
|
+
* @stability stable
|
|
11
|
+
*/
|
|
12
|
+
readonly useFipsEndpoint?: boolean | IResolvable;
|
|
13
|
+
/**
|
|
14
|
+
* Resolve an endpoint with DualStack capability.
|
|
15
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#use_dualstack_endpoint AwsProvider#use_dualstack_endpoint}
|
|
16
|
+
* @stability stable
|
|
17
|
+
*/
|
|
18
|
+
readonly useDualstackEndpoint?: boolean | IResolvable;
|
|
19
|
+
/**
|
|
20
|
+
* The capacity of the AWS SDK's token bucket rate limiter.
|
|
21
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#token_bucket_rate_limiter_capacity AwsProvider#token_bucket_rate_limiter_capacity}
|
|
22
|
+
* @stability stable
|
|
23
|
+
*/
|
|
24
|
+
readonly tokenBucketRateLimiterCapacity?: number;
|
|
25
|
+
/**
|
|
26
|
+
* session token. A session token is only required if you are using temporary security credentials.
|
|
27
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#token AwsProvider#token}
|
|
28
|
+
* @stability stable
|
|
29
|
+
*/
|
|
30
|
+
readonly token?: string;
|
|
31
|
+
/**
|
|
32
|
+
* The region where AWS STS operations will take place. Examples are us-east-1 and us-west-2.
|
|
33
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#sts_region AwsProvider#sts_region}
|
|
34
|
+
* @stability stable
|
|
35
|
+
*/
|
|
36
|
+
readonly stsRegion?: string;
|
|
37
|
+
/**
|
|
38
|
+
* Skip requesting the account ID. Used for AWS API implementations that do not have IAM/STS API and/or metadata API.
|
|
39
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#skip_requesting_account_id AwsProvider#skip_requesting_account_id}
|
|
40
|
+
* @stability stable
|
|
41
|
+
*/
|
|
42
|
+
readonly skipRequestingAccountId?: boolean | IResolvable;
|
|
43
|
+
/**
|
|
44
|
+
* Skip static validation of region name.
|
|
45
|
+
* Used by users of alternative AWS-like APIs or users w/ access to regions that are not public (yet).
|
|
46
|
+
*
|
|
47
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#skip_region_validation AwsProvider#skip_region_validation}
|
|
48
|
+
* @stability stable
|
|
49
|
+
*/
|
|
50
|
+
readonly skipRegionValidation?: boolean | IResolvable;
|
|
51
|
+
/**
|
|
52
|
+
* Skip the AWS Metadata API check. Used for AWS API implementations that do not have a metadata api endpoint.
|
|
53
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#skip_metadata_api_check AwsProvider#skip_metadata_api_check}
|
|
54
|
+
* @stability stable
|
|
55
|
+
*/
|
|
56
|
+
readonly skipMetadataApiCheck?: string;
|
|
57
|
+
/**
|
|
58
|
+
* Skip the credentials validation via STS API. Used for AWS API implementations that do not have STS available/implemented.
|
|
59
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#skip_credentials_validation AwsProvider#skip_credentials_validation}
|
|
60
|
+
* @stability stable
|
|
61
|
+
*/
|
|
62
|
+
readonly skipCredentialsValidation?: boolean | IResolvable;
|
|
63
|
+
/**
|
|
64
|
+
* List of paths to shared credentials files. If not set, defaults to [~/.aws/credentials].
|
|
65
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#shared_credentials_files AwsProvider#shared_credentials_files}
|
|
66
|
+
* @stability stable
|
|
67
|
+
*/
|
|
68
|
+
readonly sharedCredentialsFiles?: Array<string>;
|
|
69
|
+
/**
|
|
70
|
+
* List of paths to shared config files. If not set, defaults to [~/.aws/config].
|
|
71
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#shared_config_files AwsProvider#shared_config_files}
|
|
72
|
+
* @stability stable
|
|
73
|
+
*/
|
|
74
|
+
readonly sharedConfigFiles?: Array<string>;
|
|
75
|
+
/**
|
|
76
|
+
* The secret key for API operations. You can retrieve this from the 'Security & Credentials' section of the AWS console.
|
|
77
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#secret_key AwsProvider#secret_key}
|
|
78
|
+
* @stability stable
|
|
79
|
+
*/
|
|
80
|
+
readonly secretKey?: string;
|
|
81
|
+
/**
|
|
82
|
+
* Set this to true to enable the request to use path-style addressing, i.e., https://s3.amazonaws.com/BUCKET/KEY. By default, the S3 client will use virtual hosted bucket addressing when possible (https://BUCKET.s3.amazonaws.com/KEY). Specific to the Amazon S3 service.
|
|
83
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#s3_use_path_style AwsProvider#s3_use_path_style}
|
|
84
|
+
* @stability stable
|
|
85
|
+
*/
|
|
86
|
+
readonly s3UsePathStyle?: boolean | IResolvable;
|
|
87
|
+
/**
|
|
88
|
+
* Specifies whether S3 API calls in the `us-east-1` region use the legacy global endpoint or a regional endpoint.
|
|
89
|
+
* Valid values are `legacy` or `regional`. Can also be configured using the `AWS_S3_US_EAST_1_REGIONAL_ENDPOINT` environment variable or the `s3_us_east_1_regional_endpoint` shared config file parameter
|
|
90
|
+
*
|
|
91
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#s3_us_east_1_regional_endpoint AwsProvider#s3_us_east_1_regional_endpoint}
|
|
92
|
+
* @stability stable
|
|
93
|
+
*/
|
|
94
|
+
readonly s3UsEast1RegionalEndpoint?: string;
|
|
95
|
+
/**
|
|
96
|
+
* Specifies how retries are attempted.
|
|
97
|
+
* Valid values are `standard` and `adaptive`. Can also be configured using the `AWS_RETRY_MODE` environment variable.
|
|
98
|
+
*
|
|
99
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#retry_mode AwsProvider#retry_mode}
|
|
100
|
+
* @stability stable
|
|
101
|
+
*/
|
|
102
|
+
readonly retryMode?: string;
|
|
103
|
+
/**
|
|
104
|
+
* The region where AWS operations will take place. Examples are us-east-1, us-west-2, etc.
|
|
105
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#region AwsProvider#region}
|
|
106
|
+
* @stability stable
|
|
107
|
+
*/
|
|
108
|
+
readonly region?: string;
|
|
109
|
+
/**
|
|
110
|
+
* The profile for API operations. If not set, the default profile created with `aws configure` will be used.
|
|
111
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#profile AwsProvider#profile}
|
|
112
|
+
* @stability stable
|
|
113
|
+
*/
|
|
114
|
+
readonly profile?: string;
|
|
115
|
+
/**
|
|
116
|
+
* Comma-separated list of hosts that should not use HTTP or HTTPS proxies.
|
|
117
|
+
* Can also be set using the `NO_PROXY` or `no_proxy` environment variables.
|
|
118
|
+
*
|
|
119
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#no_proxy AwsProvider#no_proxy}
|
|
120
|
+
* @stability stable
|
|
121
|
+
*/
|
|
122
|
+
readonly noProxy?: string;
|
|
123
|
+
/**
|
|
124
|
+
* The maximum number of times an AWS API request is being executed.
|
|
125
|
+
* If the API request still fails, an error is
|
|
126
|
+
* thrown.
|
|
127
|
+
*
|
|
128
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#max_retries AwsProvider#max_retries}
|
|
129
|
+
* @stability stable
|
|
130
|
+
*/
|
|
131
|
+
readonly maxRetries?: number;
|
|
132
|
+
/**
|
|
133
|
+
* Explicitly allow the provider to perform "insecure" SSL requests. If omitted, default value is `false`.
|
|
134
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#insecure AwsProvider#insecure}
|
|
135
|
+
* @stability stable
|
|
136
|
+
*/
|
|
137
|
+
readonly insecure?: boolean | IResolvable;
|
|
138
|
+
/**
|
|
139
|
+
* ignore_tags block.
|
|
140
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#ignore_tags AwsProvider#ignore_tags}
|
|
141
|
+
* @stability stable
|
|
142
|
+
*/
|
|
143
|
+
readonly ignoreTags?: IResolvable | Array<provider.AwsProviderIgnoreTags>;
|
|
144
|
+
/**
|
|
145
|
+
* URL of a proxy to use for HTTPS requests when accessing the AWS API.
|
|
146
|
+
* Can also be set using the `HTTPS_PROXY` or `https_proxy` environment variables.
|
|
147
|
+
*
|
|
148
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#https_proxy AwsProvider#https_proxy}
|
|
149
|
+
* @stability stable
|
|
150
|
+
*/
|
|
151
|
+
readonly httpsProxy?: string;
|
|
152
|
+
/**
|
|
153
|
+
* URL of a proxy to use for HTTP requests when accessing the AWS API.
|
|
154
|
+
* Can also be set using the `HTTP_PROXY` or `http_proxy` environment variables.
|
|
155
|
+
*
|
|
156
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#http_proxy AwsProvider#http_proxy}
|
|
157
|
+
* @stability stable
|
|
158
|
+
*/
|
|
159
|
+
readonly httpProxy?: string;
|
|
160
|
+
/**
|
|
161
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#forbidden_account_ids AwsProvider#forbidden_account_ids}.
|
|
162
|
+
* @stability stable
|
|
163
|
+
*/
|
|
164
|
+
readonly forbiddenAccountIds?: Array<string>;
|
|
165
|
+
/**
|
|
166
|
+
* endpoints block.
|
|
167
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#endpoints AwsProvider#endpoints}
|
|
168
|
+
* @stability stable
|
|
169
|
+
*/
|
|
170
|
+
readonly endpoints?: IResolvable | Array<provider.AwsProviderEndpoints>;
|
|
171
|
+
/**
|
|
172
|
+
* Protocol to use with EC2 metadata service endpoint.Valid values are `IPv4` and `IPv6`. Can also be configured using the `AWS_EC2_METADATA_SERVICE_ENDPOINT_MODE` environment variable.
|
|
173
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#ec2_metadata_service_endpoint_mode AwsProvider#ec2_metadata_service_endpoint_mode}
|
|
174
|
+
* @stability stable
|
|
175
|
+
*/
|
|
176
|
+
readonly ec2MetadataServiceEndpointMode?: string;
|
|
177
|
+
/**
|
|
178
|
+
* Address of the EC2 metadata service endpoint to use. Can also be configured using the `AWS_EC2_METADATA_SERVICE_ENDPOINT` environment variable.
|
|
179
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#ec2_metadata_service_endpoint AwsProvider#ec2_metadata_service_endpoint}
|
|
180
|
+
* @stability stable
|
|
181
|
+
*/
|
|
182
|
+
readonly ec2MetadataServiceEndpoint?: string;
|
|
183
|
+
/**
|
|
184
|
+
* default_tags block.
|
|
185
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#default_tags AwsProvider#default_tags}
|
|
186
|
+
* @stability stable
|
|
187
|
+
*/
|
|
188
|
+
readonly defaultTags?: IResolvable | Array<provider.AwsProviderDefaultTags>;
|
|
189
|
+
/**
|
|
190
|
+
* File containing custom root and intermediate certificates.
|
|
191
|
+
* Can also be configured using the `AWS_CA_BUNDLE` environment variable. (Setting `ca_bundle` in the shared config file is not supported.)
|
|
192
|
+
*
|
|
193
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#custom_ca_bundle AwsProvider#custom_ca_bundle}
|
|
194
|
+
* @stability stable
|
|
195
|
+
*/
|
|
196
|
+
readonly customCaBundle?: string;
|
|
197
|
+
/**
|
|
198
|
+
* assume_role_with_web_identity block.
|
|
199
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#assume_role_with_web_identity AwsProvider#assume_role_with_web_identity}
|
|
200
|
+
* @stability stable
|
|
201
|
+
*/
|
|
202
|
+
readonly assumeRoleWithWebIdentity?: IResolvable | Array<provider.AwsProviderAssumeRoleWithWebIdentity>;
|
|
203
|
+
/**
|
|
204
|
+
* assume_role block.
|
|
205
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#assume_role AwsProvider#assume_role}
|
|
206
|
+
* @stability stable
|
|
207
|
+
*/
|
|
208
|
+
readonly assumeRole?: IResolvable | Array<provider.AwsProviderAssumeRole>;
|
|
209
|
+
/**
|
|
210
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#allowed_account_ids AwsProvider#allowed_account_ids}.
|
|
211
|
+
* @stability stable
|
|
212
|
+
*/
|
|
213
|
+
readonly allowedAccountIds?: Array<string>;
|
|
214
|
+
/**
|
|
215
|
+
* The access key for API operations. You can retrieve this from the 'Security & Credentials' section of the AWS console.
|
|
216
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs#access_key AwsProvider#access_key}
|
|
217
|
+
* @stability stable
|
|
218
|
+
*/
|
|
219
|
+
readonly accessKey?: string;
|
|
220
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItY29uZmlnLmdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3MvcHJvdmlkZXItY29uZmlnLmdlbmVyYXRlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLy8gfn4gR2VuZXJhdGVkIGJ5IHByb2plbi4gVG8gbW9kaWZ5LCBlZGl0IC5wcm9qZW5yYy50cyBhbmQgcnVuIFwibnB4IHByb2plblwiLlxuaW1wb3J0IHR5cGUgeyBJUmVzb2x2YWJsZSB9IGZyb20gJ2Nka3RmJztcbmltcG9ydCB0eXBlIHsgcHJvdmlkZXIgfSBmcm9tICdAY2RrdGYvcHJvdmlkZXItYXdzJztcblxuLyoqXG4gKiBDb25maWcgZm9yIHRoZSBBV1MgUHJvdmlkZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NQcm92aWRlckNvbmZpZyB7XG4gIC8qKlxuICAgKiBSZXNvbHZlIGFuIGVuZHBvaW50IHdpdGggRklQUyBjYXBhYmlsaXR5LlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI3VzZV9maXBzX2VuZHBvaW50IEF3c1Byb3ZpZGVyI3VzZV9maXBzX2VuZHBvaW50fVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgdXNlRmlwc0VuZHBvaW50PzogYm9vbGVhbiB8IElSZXNvbHZhYmxlO1xuICAvKipcbiAgICogUmVzb2x2ZSBhbiBlbmRwb2ludCB3aXRoIER1YWxTdGFjayBjYXBhYmlsaXR5LlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI3VzZV9kdWFsc3RhY2tfZW5kcG9pbnQgQXdzUHJvdmlkZXIjdXNlX2R1YWxzdGFja19lbmRwb2ludH1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHVzZUR1YWxzdGFja0VuZHBvaW50PzogYm9vbGVhbiB8IElSZXNvbHZhYmxlO1xuICAvKipcbiAgICogVGhlIGNhcGFjaXR5IG9mIHRoZSBBV1MgU0RLJ3MgdG9rZW4gYnVja2V0IHJhdGUgbGltaXRlci5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcyN0b2tlbl9idWNrZXRfcmF0ZV9saW1pdGVyX2NhcGFjaXR5IEF3c1Byb3ZpZGVyI3Rva2VuX2J1Y2tldF9yYXRlX2xpbWl0ZXJfY2FwYWNpdHl9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSB0b2tlbkJ1Y2tldFJhdGVMaW1pdGVyQ2FwYWNpdHk/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBzZXNzaW9uIHRva2VuLiBBIHNlc3Npb24gdG9rZW4gaXMgb25seSByZXF1aXJlZCBpZiB5b3UgYXJlIHVzaW5nIHRlbXBvcmFyeSBzZWN1cml0eSBjcmVkZW50aWFscy5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcyN0b2tlbiBBd3NQcm92aWRlciN0b2tlbn1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHRva2VuPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHJlZ2lvbiB3aGVyZSBBV1MgU1RTIG9wZXJhdGlvbnMgd2lsbCB0YWtlIHBsYWNlLiBFeGFtcGxlcyBhcmUgdXMtZWFzdC0xIGFuZCB1cy13ZXN0LTIuXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42OC4wL2RvY3Mjc3RzX3JlZ2lvbiBBd3NQcm92aWRlciNzdHNfcmVnaW9ufVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RzUmVnaW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogU2tpcCByZXF1ZXN0aW5nIHRoZSBhY2NvdW50IElELiBVc2VkIGZvciBBV1MgQVBJIGltcGxlbWVudGF0aW9ucyB0aGF0IGRvIG5vdCBoYXZlIElBTS9TVFMgQVBJIGFuZC9vciBtZXRhZGF0YSBBUEkuXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42OC4wL2RvY3Mjc2tpcF9yZXF1ZXN0aW5nX2FjY291bnRfaWQgQXdzUHJvdmlkZXIjc2tpcF9yZXF1ZXN0aW5nX2FjY291bnRfaWR9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBza2lwUmVxdWVzdGluZ0FjY291bnRJZD86IGJvb2xlYW4gfCBJUmVzb2x2YWJsZTtcbiAgLyoqXG4gICAqIFNraXAgc3RhdGljIHZhbGlkYXRpb24gb2YgcmVnaW9uIG5hbWUuXG4gICAqIFVzZWQgYnkgdXNlcnMgb2YgYWx0ZXJuYXRpdmUgQVdTLWxpa2UgQVBJcyBvciB1c2VycyB3LyBhY2Nlc3MgdG8gcmVnaW9ucyB0aGF0IGFyZSBub3QgcHVibGljICh5ZXQpLlxuICAgKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI3NraXBfcmVnaW9uX3ZhbGlkYXRpb24gQXdzUHJvdmlkZXIjc2tpcF9yZWdpb25fdmFsaWRhdGlvbn1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHNraXBSZWdpb25WYWxpZGF0aW9uPzogYm9vbGVhbiB8IElSZXNvbHZhYmxlO1xuICAvKipcbiAgICogU2tpcCB0aGUgQVdTIE1ldGFkYXRhIEFQSSBjaGVjay4gVXNlZCBmb3IgQVdTIEFQSSBpbXBsZW1lbnRhdGlvbnMgdGhhdCBkbyBub3QgaGF2ZSBhIG1ldGFkYXRhIGFwaSBlbmRwb2ludC5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcyNza2lwX21ldGFkYXRhX2FwaV9jaGVjayBBd3NQcm92aWRlciNza2lwX21ldGFkYXRhX2FwaV9jaGVja31cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHNraXBNZXRhZGF0YUFwaUNoZWNrPzogc3RyaW5nO1xuICAvKipcbiAgICogU2tpcCB0aGUgY3JlZGVudGlhbHMgdmFsaWRhdGlvbiB2aWEgU1RTIEFQSS4gVXNlZCBmb3IgQVdTIEFQSSBpbXBsZW1lbnRhdGlvbnMgdGhhdCBkbyBub3QgaGF2ZSBTVFMgYXZhaWxhYmxlL2ltcGxlbWVudGVkLlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI3NraXBfY3JlZGVudGlhbHNfdmFsaWRhdGlvbiBBd3NQcm92aWRlciNza2lwX2NyZWRlbnRpYWxzX3ZhbGlkYXRpb259XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBza2lwQ3JlZGVudGlhbHNWYWxpZGF0aW9uPzogYm9vbGVhbiB8IElSZXNvbHZhYmxlO1xuICAvKipcbiAgICogTGlzdCBvZiBwYXRocyB0byBzaGFyZWQgY3JlZGVudGlhbHMgZmlsZXMuIElmIG5vdCBzZXQsIGRlZmF1bHRzIHRvIFt+Ly5hd3MvY3JlZGVudGlhbHNdLlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI3NoYXJlZF9jcmVkZW50aWFsc19maWxlcyBBd3NQcm92aWRlciNzaGFyZWRfY3JlZGVudGlhbHNfZmlsZXN9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBzaGFyZWRDcmVkZW50aWFsc0ZpbGVzPzogQXJyYXk8c3RyaW5nPjtcbiAgLyoqXG4gICAqIExpc3Qgb2YgcGF0aHMgdG8gc2hhcmVkIGNvbmZpZyBmaWxlcy4gSWYgbm90IHNldCwgZGVmYXVsdHMgdG8gW34vLmF3cy9jb25maWddLlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI3NoYXJlZF9jb25maWdfZmlsZXMgQXdzUHJvdmlkZXIjc2hhcmVkX2NvbmZpZ19maWxlc31cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHNoYXJlZENvbmZpZ0ZpbGVzPzogQXJyYXk8c3RyaW5nPjtcbiAgLyoqXG4gICAqIFRoZSBzZWNyZXQga2V5IGZvciBBUEkgb3BlcmF0aW9ucy4gWW91IGNhbiByZXRyaWV2ZSB0aGlzIGZyb20gdGhlICdTZWN1cml0eSAmIENyZWRlbnRpYWxzJyBzZWN0aW9uIG9mIHRoZSBBV1MgY29uc29sZS5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcyNzZWNyZXRfa2V5IEF3c1Byb3ZpZGVyI3NlY3JldF9rZXl9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRLZXk/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTZXQgdGhpcyB0byB0cnVlIHRvIGVuYWJsZSB0aGUgcmVxdWVzdCB0byB1c2UgcGF0aC1zdHlsZSBhZGRyZXNzaW5nLCBpLmUuLCBodHRwczovL3MzLmFtYXpvbmF3cy5jb20vQlVDS0VUL0tFWS4gQnkgZGVmYXVsdCwgdGhlIFMzIGNsaWVudCB3aWxsIHVzZSB2aXJ0dWFsIGhvc3RlZCBidWNrZXQgYWRkcmVzc2luZyB3aGVuIHBvc3NpYmxlIChodHRwczovL0JVQ0tFVC5zMy5hbWF6b25hd3MuY29tL0tFWSkuIFNwZWNpZmljIHRvIHRoZSBBbWF6b24gUzMgc2VydmljZS5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcyNzM191c2VfcGF0aF9zdHlsZSBBd3NQcm92aWRlciNzM191c2VfcGF0aF9zdHlsZX1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHMzVXNlUGF0aFN0eWxlPzogYm9vbGVhbiB8IElSZXNvbHZhYmxlO1xuICAvKipcbiAgICogU3BlY2lmaWVzIHdoZXRoZXIgUzMgQVBJIGNhbGxzIGluIHRoZSBgdXMtZWFzdC0xYCByZWdpb24gdXNlIHRoZSBsZWdhY3kgZ2xvYmFsIGVuZHBvaW50IG9yIGEgcmVnaW9uYWwgZW5kcG9pbnQuXG4gICAqIFZhbGlkIHZhbHVlcyBhcmUgYGxlZ2FjeWAgb3IgYHJlZ2lvbmFsYC4gQ2FuIGFsc28gYmUgY29uZmlndXJlZCB1c2luZyB0aGUgYEFXU19TM19VU19FQVNUXzFfUkVHSU9OQUxfRU5EUE9JTlRgIGVudmlyb25tZW50IHZhcmlhYmxlIG9yIHRoZSBgczNfdXNfZWFzdF8xX3JlZ2lvbmFsX2VuZHBvaW50YCBzaGFyZWQgY29uZmlnIGZpbGUgcGFyYW1ldGVyXG4gICAqXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42OC4wL2RvY3MjczNfdXNfZWFzdF8xX3JlZ2lvbmFsX2VuZHBvaW50IEF3c1Byb3ZpZGVyI3MzX3VzX2Vhc3RfMV9yZWdpb25hbF9lbmRwb2ludH1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHMzVXNFYXN0MVJlZ2lvbmFsRW5kcG9pbnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgaG93IHJldHJpZXMgYXJlIGF0dGVtcHRlZC5cbiAgICogVmFsaWQgdmFsdWVzIGFyZSBgc3RhbmRhcmRgIGFuZCBgYWRhcHRpdmVgLiBDYW4gYWxzbyBiZSBjb25maWd1cmVkIHVzaW5nIHRoZSBgQVdTX1JFVFJZX01PREVgIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI3JldHJ5X21vZGUgQXdzUHJvdmlkZXIjcmV0cnlfbW9kZX1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHJldHJ5TW9kZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSByZWdpb24gd2hlcmUgQVdTIG9wZXJhdGlvbnMgd2lsbCB0YWtlIHBsYWNlLiBFeGFtcGxlcyBhcmUgdXMtZWFzdC0xLCB1cy13ZXN0LTIsIGV0Yy5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcyNyZWdpb24gQXdzUHJvdmlkZXIjcmVnaW9ufVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHByb2ZpbGUgZm9yIEFQSSBvcGVyYXRpb25zLiBJZiBub3Qgc2V0LCB0aGUgZGVmYXVsdCBwcm9maWxlIGNyZWF0ZWQgd2l0aCBgYXdzIGNvbmZpZ3VyZWAgd2lsbCBiZSB1c2VkLlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI3Byb2ZpbGUgQXdzUHJvdmlkZXIjcHJvZmlsZX1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IHByb2ZpbGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBob3N0cyB0aGF0IHNob3VsZCBub3QgdXNlIEhUVFAgb3IgSFRUUFMgcHJveGllcy5cbiAgICogQ2FuIGFsc28gYmUgc2V0IHVzaW5nIHRoZSBgTk9fUFJPWFlgIG9yIGBub19wcm94eWAgZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICAgKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI25vX3Byb3h5IEF3c1Byb3ZpZGVyI25vX3Byb3h5fVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgbm9Qcm94eT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiB0aW1lcyBhbiBBV1MgQVBJIHJlcXVlc3QgaXMgYmVpbmcgZXhlY3V0ZWQuXG4gICAqIElmIHRoZSBBUEkgcmVxdWVzdCBzdGlsbCBmYWlscywgYW4gZXJyb3IgaXNcbiAgICogdGhyb3duLlxuICAgKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI21heF9yZXRyaWVzIEF3c1Byb3ZpZGVyI21heF9yZXRyaWVzfVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4UmV0cmllcz86IG51bWJlcjtcbiAgLyoqXG4gICAqIEV4cGxpY2l0bHkgYWxsb3cgdGhlIHByb3ZpZGVyIHRvIHBlcmZvcm0gXCJpbnNlY3VyZVwiIFNTTCByZXF1ZXN0cy4gSWYgb21pdHRlZCwgZGVmYXVsdCB2YWx1ZSBpcyBgZmFsc2VgLlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI2luc2VjdXJlIEF3c1Byb3ZpZGVyI2luc2VjdXJlfVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5zZWN1cmU/OiBib29sZWFuIHwgSVJlc29sdmFibGU7XG4gIC8qKlxuICAgKiBpZ25vcmVfdGFncyBibG9jay5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcyNpZ25vcmVfdGFncyBBd3NQcm92aWRlciNpZ25vcmVfdGFnc31cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGlnbm9yZVRhZ3M/OiBJUmVzb2x2YWJsZSB8IEFycmF5PHByb3ZpZGVyLkF3c1Byb3ZpZGVySWdub3JlVGFncz47XG4gIC8qKlxuICAgKiBVUkwgb2YgYSBwcm94eSB0byB1c2UgZm9yIEhUVFBTIHJlcXVlc3RzIHdoZW4gYWNjZXNzaW5nIHRoZSBBV1MgQVBJLlxuICAgKiBDYW4gYWxzbyBiZSBzZXQgdXNpbmcgdGhlIGBIVFRQU19QUk9YWWAgb3IgYGh0dHBzX3Byb3h5YCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gICAqXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42OC4wL2RvY3MjaHR0cHNfcHJveHkgQXdzUHJvdmlkZXIjaHR0cHNfcHJveHl9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBodHRwc1Byb3h5Pzogc3RyaW5nO1xuICAvKipcbiAgICogVVJMIG9mIGEgcHJveHkgdG8gdXNlIGZvciBIVFRQIHJlcXVlc3RzIHdoZW4gYWNjZXNzaW5nIHRoZSBBV1MgQVBJLlxuICAgKiBDYW4gYWxzbyBiZSBzZXQgdXNpbmcgdGhlIGBIVFRQX1BST1hZYCBvciBgaHR0cF9wcm94eWAgZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICAgKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI2h0dHBfcHJveHkgQXdzUHJvdmlkZXIjaHR0cF9wcm94eX1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGh0dHBQcm94eT86IHN0cmluZztcbiAgLyoqXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42OC4wL2RvY3MjZm9yYmlkZGVuX2FjY291bnRfaWRzIEF3c1Byb3ZpZGVyI2ZvcmJpZGRlbl9hY2NvdW50X2lkc30uXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBmb3JiaWRkZW5BY2NvdW50SWRzPzogQXJyYXk8c3RyaW5nPjtcbiAgLyoqXG4gICAqIGVuZHBvaW50cyBibG9jay5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcyNlbmRwb2ludHMgQXdzUHJvdmlkZXIjZW5kcG9pbnRzfVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5kcG9pbnRzPzogSVJlc29sdmFibGUgfCBBcnJheTxwcm92aWRlci5Bd3NQcm92aWRlckVuZHBvaW50cz47XG4gIC8qKlxuICAgKiBQcm90b2NvbCB0byB1c2Ugd2l0aCBFQzIgbWV0YWRhdGEgc2VydmljZSBlbmRwb2ludC5WYWxpZCB2YWx1ZXMgYXJlIGBJUHY0YCBhbmQgYElQdjZgLiBDYW4gYWxzbyBiZSBjb25maWd1cmVkIHVzaW5nIHRoZSBgQVdTX0VDMl9NRVRBREFUQV9TRVJWSUNFX0VORFBPSU5UX01PREVgIGVudmlyb25tZW50IHZhcmlhYmxlLlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI2VjMl9tZXRhZGF0YV9zZXJ2aWNlX2VuZHBvaW50X21vZGUgQXdzUHJvdmlkZXIjZWMyX21ldGFkYXRhX3NlcnZpY2VfZW5kcG9pbnRfbW9kZX1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGVjMk1ldGFkYXRhU2VydmljZUVuZHBvaW50TW9kZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEFkZHJlc3Mgb2YgdGhlIEVDMiBtZXRhZGF0YSBzZXJ2aWNlIGVuZHBvaW50IHRvIHVzZS4gQ2FuIGFsc28gYmUgY29uZmlndXJlZCB1c2luZyB0aGUgYEFXU19FQzJfTUVUQURBVEFfU0VSVklDRV9FTkRQT0lOVGAgZW52aXJvbm1lbnQgdmFyaWFibGUuXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42OC4wL2RvY3MjZWMyX21ldGFkYXRhX3NlcnZpY2VfZW5kcG9pbnQgQXdzUHJvdmlkZXIjZWMyX21ldGFkYXRhX3NlcnZpY2VfZW5kcG9pbnR9XG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBlYzJNZXRhZGF0YVNlcnZpY2VFbmRwb2ludD86IHN0cmluZztcbiAgLyoqXG4gICAqIGRlZmF1bHRfdGFncyBibG9jay5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcyNkZWZhdWx0X3RhZ3MgQXdzUHJvdmlkZXIjZGVmYXVsdF90YWdzfVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdFRhZ3M/OiBJUmVzb2x2YWJsZSB8IEFycmF5PHByb3ZpZGVyLkF3c1Byb3ZpZGVyRGVmYXVsdFRhZ3M+O1xuICAvKipcbiAgICogRmlsZSBjb250YWluaW5nIGN1c3RvbSByb290IGFuZCBpbnRlcm1lZGlhdGUgY2VydGlmaWNhdGVzLlxuICAgKiBDYW4gYWxzbyBiZSBjb25maWd1cmVkIHVzaW5nIHRoZSBgQVdTX0NBX0JVTkRMRWAgZW52aXJvbm1lbnQgdmFyaWFibGUuIChTZXR0aW5nIGBjYV9idW5kbGVgIGluIHRoZSBzaGFyZWQgY29uZmlnIGZpbGUgaXMgbm90IHN1cHBvcnRlZC4pXG4gICAqXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42OC4wL2RvY3MjY3VzdG9tX2NhX2J1bmRsZSBBd3NQcm92aWRlciNjdXN0b21fY2FfYnVuZGxlfVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgY3VzdG9tQ2FCdW5kbGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBhc3N1bWVfcm9sZV93aXRoX3dlYl9pZGVudGl0eSBibG9jay5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcyNhc3N1bWVfcm9sZV93aXRoX3dlYl9pZGVudGl0eSBBd3NQcm92aWRlciNhc3N1bWVfcm9sZV93aXRoX3dlYl9pZGVudGl0eX1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGFzc3VtZVJvbGVXaXRoV2ViSWRlbnRpdHk/OiBJUmVzb2x2YWJsZSB8IEFycmF5PHByb3ZpZGVyLkF3c1Byb3ZpZGVyQXNzdW1lUm9sZVdpdGhXZWJJZGVudGl0eT47XG4gIC8qKlxuICAgKiBhc3N1bWVfcm9sZSBibG9jay5cbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjY4LjAvZG9jcyNhc3N1bWVfcm9sZSBBd3NQcm92aWRlciNhc3N1bWVfcm9sZX1cbiAgICogQHN0YWJpbGl0eSBzdGFibGVcbiAgICovXG4gIHJlYWRvbmx5IGFzc3VtZVJvbGU/OiBJUmVzb2x2YWJsZSB8IEFycmF5PHByb3ZpZGVyLkF3c1Byb3ZpZGVyQXNzdW1lUm9sZT47XG4gIC8qKlxuICAgKiBEb2NzIGF0IFRlcnJhZm9ybSBSZWdpc3RyeToge0BsaW5rIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzI2FsbG93ZWRfYWNjb3VudF9pZHMgQXdzUHJvdmlkZXIjYWxsb3dlZF9hY2NvdW50X2lkc30uXG4gICAqIEBzdGFiaWxpdHkgc3RhYmxlXG4gICAqL1xuICByZWFkb25seSBhbGxvd2VkQWNjb3VudElkcz86IEFycmF5PHN0cmluZz47XG4gIC8qKlxuICAgKiBUaGUgYWNjZXNzIGtleSBmb3IgQVBJIG9wZXJhdGlvbnMuIFlvdSBjYW4gcmV0cmlldmUgdGhpcyBmcm9tIHRoZSAnU2VjdXJpdHkgJiBDcmVkZW50aWFscycgc2VjdGlvbiBvZiB0aGUgQVdTIGNvbnNvbGUuXG4gICAqIERvY3MgYXQgVGVycmFmb3JtIFJlZ2lzdHJ5OiB7QGxpbmsgaHR0cHM6Ly9yZWdpc3RyeS50ZXJyYWZvcm0uaW8vcHJvdmlkZXJzL2hhc2hpY29ycC9hd3MvNS42OC4wL2RvY3MjYWNjZXNzX2tleSBBd3NQcm92aWRlciNhY2Nlc3Nfa2V5fVxuICAgKiBAc3RhYmlsaXR5IHN0YWJsZVxuICAgKi9cbiAgcmVhZG9ubHkgYWNjZXNzS2V5Pzogc3RyaW5nO1xufVxuIl19
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Construct, IDependable } from "constructs";
|
|
2
|
+
import { IBucket } from "./bucket";
|
|
3
|
+
/**
|
|
4
|
+
* Implemented by constructs that can be used as bucket notification destinations.
|
|
5
|
+
*/
|
|
6
|
+
export interface IBucketNotificationDestination {
|
|
7
|
+
/**
|
|
8
|
+
* Registers this resource to receive notifications for the specified
|
|
9
|
+
* bucket. This method will only be called once for each destination/bucket
|
|
10
|
+
* pair and the result will be cached, so there is no need to implement
|
|
11
|
+
* idempotency in each destination.
|
|
12
|
+
* @param bucket The bucket object to bind to
|
|
13
|
+
*/
|
|
14
|
+
bind(scope: Construct, bucket: IBucket): BucketNotificationDestinationConfig;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Represents the properties of a notification destination.
|
|
18
|
+
*/
|
|
19
|
+
export interface BucketNotificationDestinationConfig {
|
|
20
|
+
/**
|
|
21
|
+
* The notification type.
|
|
22
|
+
*/
|
|
23
|
+
readonly type: BucketNotificationDestinationType;
|
|
24
|
+
/**
|
|
25
|
+
* The ARN of the destination (i.e. Lambda, SNS, SQS).
|
|
26
|
+
*/
|
|
27
|
+
readonly arn: string;
|
|
28
|
+
/**
|
|
29
|
+
* Any additional dependencies that should be resolved before the bucket notification
|
|
30
|
+
* can be configured (for example, the SNS Topic Policy resource).
|
|
31
|
+
*/
|
|
32
|
+
readonly dependencies?: IDependable[];
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Supported types of notification destinations.
|
|
36
|
+
*/
|
|
37
|
+
export declare enum BucketNotificationDestinationType {
|
|
38
|
+
LAMBDA = 0,
|
|
39
|
+
QUEUE = 1,
|
|
40
|
+
TOPIC = 2
|
|
41
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BucketNotificationDestinationType = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Supported types of notification destinations.
|
|
6
|
+
*/
|
|
7
|
+
var BucketNotificationDestinationType;
|
|
8
|
+
(function (BucketNotificationDestinationType) {
|
|
9
|
+
BucketNotificationDestinationType[BucketNotificationDestinationType["LAMBDA"] = 0] = "LAMBDA";
|
|
10
|
+
BucketNotificationDestinationType[BucketNotificationDestinationType["QUEUE"] = 1] = "QUEUE";
|
|
11
|
+
BucketNotificationDestinationType[BucketNotificationDestinationType["TOPIC"] = 2] = "TOPIC";
|
|
12
|
+
})(BucketNotificationDestinationType || (exports.BucketNotificationDestinationType = BucketNotificationDestinationType = {}));
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVja2V0LWRlc3RpbmF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9zdG9yYWdlL2J1Y2tldC1kZXN0aW5hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFzQ0E7O0dBRUc7QUFDSCxJQUFZLGlDQUlYO0FBSkQsV0FBWSxpQ0FBaUM7SUFDM0MsNkZBQU0sQ0FBQTtJQUNOLDJGQUFLLENBQUE7SUFDTCwyRkFBSyxDQUFBO0FBQ1AsQ0FBQyxFQUpXLGlDQUFpQyxpREFBakMsaUNBQWlDLFFBSTVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0LCBJRGVwZW5kYWJsZSB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBJQnVja2V0IH0gZnJvbSBcIi4vYnVja2V0XCI7XG5cbi8qKlxuICogSW1wbGVtZW50ZWQgYnkgY29uc3RydWN0cyB0aGF0IGNhbiBiZSB1c2VkIGFzIGJ1Y2tldCBub3RpZmljYXRpb24gZGVzdGluYXRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElCdWNrZXROb3RpZmljYXRpb25EZXN0aW5hdGlvbiB7XG4gIC8qKlxuICAgKiBSZWdpc3RlcnMgdGhpcyByZXNvdXJjZSB0byByZWNlaXZlIG5vdGlmaWNhdGlvbnMgZm9yIHRoZSBzcGVjaWZpZWRcbiAgICogYnVja2V0LiBUaGlzIG1ldGhvZCB3aWxsIG9ubHkgYmUgY2FsbGVkIG9uY2UgZm9yIGVhY2ggZGVzdGluYXRpb24vYnVja2V0XG4gICAqIHBhaXIgYW5kIHRoZSByZXN1bHQgd2lsbCBiZSBjYWNoZWQsIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gaW1wbGVtZW50XG4gICAqIGlkZW1wb3RlbmN5IGluIGVhY2ggZGVzdGluYXRpb24uXG4gICAqIEBwYXJhbSBidWNrZXQgVGhlIGJ1Y2tldCBvYmplY3QgdG8gYmluZCB0b1xuICAgKi9cbiAgYmluZChzY29wZTogQ29uc3RydWN0LCBidWNrZXQ6IElCdWNrZXQpOiBCdWNrZXROb3RpZmljYXRpb25EZXN0aW5hdGlvbkNvbmZpZztcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBwcm9wZXJ0aWVzIG9mIGEgbm90aWZpY2F0aW9uIGRlc3RpbmF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldE5vdGlmaWNhdGlvbkRlc3RpbmF0aW9uQ29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBub3RpZmljYXRpb24gdHlwZS5cbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IEJ1Y2tldE5vdGlmaWNhdGlvbkRlc3RpbmF0aW9uVHlwZTtcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZGVzdGluYXRpb24gKGkuZS4gTGFtYmRhLCBTTlMsIFNRUykuXG4gICAqL1xuICByZWFkb25seSBhcm46IHN0cmluZztcblxuICAvKipcbiAgICogQW55IGFkZGl0aW9uYWwgZGVwZW5kZW5jaWVzIHRoYXQgc2hvdWxkIGJlIHJlc29sdmVkIGJlZm9yZSB0aGUgYnVja2V0IG5vdGlmaWNhdGlvblxuICAgKiBjYW4gYmUgY29uZmlndXJlZCAoZm9yIGV4YW1wbGUsIHRoZSBTTlMgVG9waWMgUG9saWN5IHJlc291cmNlKS5cbiAgICovXG4gIHJlYWRvbmx5IGRlcGVuZGVuY2llcz86IElEZXBlbmRhYmxlW107XG59XG5cbi8qKlxuICogU3VwcG9ydGVkIHR5cGVzIG9mIG5vdGlmaWNhdGlvbiBkZXN0aW5hdGlvbnMuXG4gKi9cbmV4cG9ydCBlbnVtIEJ1Y2tldE5vdGlmaWNhdGlvbkRlc3RpbmF0aW9uVHlwZSB7XG4gIExBTUJEQSxcbiAgUVVFVUUsXG4gIFRPUElDLFxufVxuIl19
|