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,106 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import * as compute from "../../";
|
|
3
|
+
import * as iam from "../../../iam";
|
|
4
|
+
/**
|
|
5
|
+
* Properties for invoking a Lambda function with LambdaInvoke
|
|
6
|
+
*/
|
|
7
|
+
export interface LambdaInvokeProps extends compute.TaskStateBaseProps {
|
|
8
|
+
/**
|
|
9
|
+
* Lambda function to invoke
|
|
10
|
+
*/
|
|
11
|
+
readonly lambdaFunction: compute.IFunction;
|
|
12
|
+
/**
|
|
13
|
+
* The JSON that will be supplied as input to the Lambda function
|
|
14
|
+
*
|
|
15
|
+
* @default - The state input (JSON path '$')
|
|
16
|
+
*/
|
|
17
|
+
readonly payload?: compute.TaskInput;
|
|
18
|
+
/**
|
|
19
|
+
* Invocation type of the Lambda function
|
|
20
|
+
*
|
|
21
|
+
* @default InvocationType.REQUEST_RESPONSE
|
|
22
|
+
*/
|
|
23
|
+
readonly invocationType?: LambdaInvocationType;
|
|
24
|
+
/**
|
|
25
|
+
* Up to 3583 bytes of base64-encoded data about the invoking client
|
|
26
|
+
* to pass to the function.
|
|
27
|
+
*
|
|
28
|
+
* @default - No context
|
|
29
|
+
*/
|
|
30
|
+
readonly clientContext?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Version or alias to invoke a published version of the function
|
|
33
|
+
*
|
|
34
|
+
* You only need to supply this if you want the version of the Lambda Function to depend
|
|
35
|
+
* on data in the state machine state. If not, you can pass the appropriate Alias or Version object
|
|
36
|
+
* directly as the `lambdaFunction` argument.
|
|
37
|
+
*
|
|
38
|
+
* @default - Version or alias inherent to the `lambdaFunction` object.
|
|
39
|
+
*/
|
|
40
|
+
readonly qualifier?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Invoke the Lambda in a way that only returns the payload response without additional metadata.
|
|
43
|
+
*
|
|
44
|
+
* The `payloadResponseOnly` property cannot be used if `integrationPattern`, `invocationType`,
|
|
45
|
+
* `clientContext`, or `qualifier` are specified.
|
|
46
|
+
* It always uses the REQUEST_RESPONSE behavior.
|
|
47
|
+
*
|
|
48
|
+
* @default false
|
|
49
|
+
*/
|
|
50
|
+
readonly payloadResponseOnly?: boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Whether to retry on Lambda service exceptions.
|
|
53
|
+
*
|
|
54
|
+
* This handles `Lambda.ServiceException`, `Lambda.AWSLambdaException`,
|
|
55
|
+
* `Lambda.SdkClientException`, and `Lambda.ClientExecutionTimeoutException`
|
|
56
|
+
* with an interval of 2 seconds, a back-off rate
|
|
57
|
+
* of 2 and 6 maximum attempts.
|
|
58
|
+
*
|
|
59
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/bp-lambda-serviceexception.html
|
|
60
|
+
*
|
|
61
|
+
* @default true
|
|
62
|
+
*/
|
|
63
|
+
readonly retryOnServiceExceptions?: boolean;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Invoke a Lambda function as a Task
|
|
67
|
+
*
|
|
68
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/connect-lambda.html
|
|
69
|
+
*/
|
|
70
|
+
export declare class LambdaInvoke extends compute.TaskStateBase {
|
|
71
|
+
private readonly props;
|
|
72
|
+
private static readonly SUPPORTED_INTEGRATION_PATTERNS;
|
|
73
|
+
protected readonly taskPolicies?: iam.PolicyStatement[];
|
|
74
|
+
private readonly integrationPattern;
|
|
75
|
+
constructor(scope: Construct, id: string, props: LambdaInvokeProps);
|
|
76
|
+
/**
|
|
77
|
+
* Provides the Lambda Invoke service integration task configuration
|
|
78
|
+
*/
|
|
79
|
+
/**
|
|
80
|
+
* @internal
|
|
81
|
+
*/
|
|
82
|
+
protected _renderTask(): any;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Invocation type of a Lambda
|
|
86
|
+
*/
|
|
87
|
+
export declare enum LambdaInvocationType {
|
|
88
|
+
/**
|
|
89
|
+
* Invoke the function synchronously.
|
|
90
|
+
*
|
|
91
|
+
* Keep the connection open until the function returns a response or times out.
|
|
92
|
+
* The API response includes the function response and additional data.
|
|
93
|
+
*/
|
|
94
|
+
REQUEST_RESPONSE = "RequestResponse",
|
|
95
|
+
/**
|
|
96
|
+
* Invoke the function asynchronously.
|
|
97
|
+
*
|
|
98
|
+
* Send events that fail multiple times to the function's dead-letter queue (if it's configured).
|
|
99
|
+
* The API response only includes a status code.
|
|
100
|
+
*/
|
|
101
|
+
EVENT = "Event",
|
|
102
|
+
/**
|
|
103
|
+
* Validate parameter values and verify that the user or role has permission to invoke the function.
|
|
104
|
+
*/
|
|
105
|
+
DRY_RUN = "DryRun"
|
|
106
|
+
}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.LambdaInvocationType = exports.LambdaInvoke = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const compute = require("../../");
|
|
7
|
+
const duration_1 = require("../../../../duration");
|
|
8
|
+
const iam = require("../../../iam");
|
|
9
|
+
const task_utils_1 = require("../private/task-utils");
|
|
10
|
+
/**
|
|
11
|
+
* Invoke a Lambda function as a Task
|
|
12
|
+
*
|
|
13
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/connect-lambda.html
|
|
14
|
+
*/
|
|
15
|
+
class LambdaInvoke extends compute.TaskStateBase {
|
|
16
|
+
constructor(scope, id, props) {
|
|
17
|
+
super(scope, id, props);
|
|
18
|
+
this.props = props;
|
|
19
|
+
this.integrationPattern =
|
|
20
|
+
props.integrationPattern ?? compute.IntegrationPattern.REQUEST_RESPONSE;
|
|
21
|
+
(0, task_utils_1.validatePatternSupported)(this.integrationPattern, LambdaInvoke.SUPPORTED_INTEGRATION_PATTERNS);
|
|
22
|
+
if (this.integrationPattern ===
|
|
23
|
+
compute.IntegrationPattern.WAIT_FOR_TASK_TOKEN &&
|
|
24
|
+
!compute.FieldUtils.containsTaskToken(props.payload)) {
|
|
25
|
+
throw new Error("Task Token is required in `payload` for callback. Use JsonPath.taskToken to set the token.");
|
|
26
|
+
}
|
|
27
|
+
if (props.payloadResponseOnly &&
|
|
28
|
+
(props.integrationPattern ||
|
|
29
|
+
props.invocationType ||
|
|
30
|
+
props.clientContext ||
|
|
31
|
+
props.qualifier)) {
|
|
32
|
+
throw new Error("The 'payloadResponseOnly' property cannot be used if 'integrationPattern', 'invocationType', 'clientContext', or 'qualifier' are specified.");
|
|
33
|
+
}
|
|
34
|
+
// this.taskMetrics = {
|
|
35
|
+
// metricPrefixSingular: "LambdaFunction",
|
|
36
|
+
// metricPrefixPlural: "LambdaFunctions",
|
|
37
|
+
// metricDimensions: {
|
|
38
|
+
// LambdaFunctionArn: this.props.lambdaFunction.functionArn,
|
|
39
|
+
// ...(this.props.qualifier && { Qualifier: this.props.qualifier }),
|
|
40
|
+
// },
|
|
41
|
+
// };
|
|
42
|
+
this.taskPolicies = [
|
|
43
|
+
new iam.PolicyStatement({
|
|
44
|
+
resources: [this.props.lambdaFunction.functionArn], // .resourceArnsForGrantInvoke,
|
|
45
|
+
actions: ["lambda:InvokeFunction"],
|
|
46
|
+
}),
|
|
47
|
+
];
|
|
48
|
+
if (props.retryOnServiceExceptions ?? true) {
|
|
49
|
+
// Best practice from https://docs.aws.amazon.com/step-functions/latest/dg/bp-lambda-serviceexception.html
|
|
50
|
+
this.addRetry({
|
|
51
|
+
errors: [
|
|
52
|
+
"Lambda.ClientExecutionTimeoutException",
|
|
53
|
+
"Lambda.ServiceException",
|
|
54
|
+
"Lambda.AWSLambdaException",
|
|
55
|
+
"Lambda.SdkClientException",
|
|
56
|
+
],
|
|
57
|
+
interval: duration_1.Duration.seconds(2),
|
|
58
|
+
maxAttempts: 6,
|
|
59
|
+
backoffRate: 2,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Provides the Lambda Invoke service integration task configuration
|
|
65
|
+
*/
|
|
66
|
+
/**
|
|
67
|
+
* @internal
|
|
68
|
+
*/
|
|
69
|
+
_renderTask() {
|
|
70
|
+
if (this.props.payloadResponseOnly) {
|
|
71
|
+
return {
|
|
72
|
+
Resource: this.props.lambdaFunction.functionArn,
|
|
73
|
+
...(this.props.payload && {
|
|
74
|
+
Parameters: compute.FieldUtils.renderObject(this.props.payload.value),
|
|
75
|
+
}),
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
return {
|
|
80
|
+
Resource: (0, task_utils_1.integrationResourceArn)(this, "lambda", "invoke", this.integrationPattern),
|
|
81
|
+
Parameters: compute.FieldUtils.renderObject({
|
|
82
|
+
FunctionName: this.props.lambdaFunction.functionArn,
|
|
83
|
+
Payload: this.props.payload
|
|
84
|
+
? this.props.payload.value
|
|
85
|
+
: compute.TaskInput.fromJsonPathAt("$").value,
|
|
86
|
+
InvocationType: this.props.invocationType,
|
|
87
|
+
ClientContext: this.props.clientContext,
|
|
88
|
+
Qualifier: this.props.qualifier,
|
|
89
|
+
}),
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exports.LambdaInvoke = LambdaInvoke;
|
|
95
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
96
|
+
LambdaInvoke[_a] = { fqn: "terraconstructs.aws.compute.tasks.LambdaInvoke", version: "0.0.8" };
|
|
97
|
+
LambdaInvoke.SUPPORTED_INTEGRATION_PATTERNS = [
|
|
98
|
+
compute.IntegrationPattern.REQUEST_RESPONSE,
|
|
99
|
+
compute.IntegrationPattern.WAIT_FOR_TASK_TOKEN,
|
|
100
|
+
];
|
|
101
|
+
/**
|
|
102
|
+
* Invocation type of a Lambda
|
|
103
|
+
*/
|
|
104
|
+
var LambdaInvocationType;
|
|
105
|
+
(function (LambdaInvocationType) {
|
|
106
|
+
/**
|
|
107
|
+
* Invoke the function synchronously.
|
|
108
|
+
*
|
|
109
|
+
* Keep the connection open until the function returns a response or times out.
|
|
110
|
+
* The API response includes the function response and additional data.
|
|
111
|
+
*/
|
|
112
|
+
LambdaInvocationType["REQUEST_RESPONSE"] = "RequestResponse";
|
|
113
|
+
/**
|
|
114
|
+
* Invoke the function asynchronously.
|
|
115
|
+
*
|
|
116
|
+
* Send events that fail multiple times to the function's dead-letter queue (if it's configured).
|
|
117
|
+
* The API response only includes a status code.
|
|
118
|
+
*/
|
|
119
|
+
LambdaInvocationType["EVENT"] = "Event";
|
|
120
|
+
/**
|
|
121
|
+
* Validate parameter values and verify that the user or role has permission to invoke the function.
|
|
122
|
+
*/
|
|
123
|
+
LambdaInvocationType["DRY_RUN"] = "DryRun";
|
|
124
|
+
})(LambdaInvocationType || (exports.LambdaInvocationType = LambdaInvocationType = {}));
|
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2tlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL3Rhc2tzL2xhbWJkYS9pbnZva2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxrQ0FBa0M7QUFDbEMsbURBQWdEO0FBQ2hELG9DQUFvQztBQUNwQyxzREFHK0I7QUF1RS9COzs7O0dBSUc7QUFDSCxNQUFhLFlBQWEsU0FBUSxPQUFPLENBQUMsYUFBYTtJQVlyRCxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDTyxLQUF3QjtRQUV6QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUZQLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBR3pDLElBQUksQ0FBQyxrQkFBa0I7WUFDckIsS0FBSyxDQUFDLGtCQUFrQixJQUFJLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQztRQUUxRSxJQUFBLHFDQUF3QixFQUN0QixJQUFJLENBQUMsa0JBQWtCLEVBQ3ZCLFlBQVksQ0FBQyw4QkFBOEIsQ0FDNUMsQ0FBQztRQUVGLElBQ0UsSUFBSSxDQUFDLGtCQUFrQjtZQUNyQixPQUFPLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CO1lBQ2hELENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQ3BELENBQUM7WUFDRCxNQUFNLElBQUksS0FBSyxDQUNiLDRGQUE0RixDQUM3RixDQUFDO1FBQ0osQ0FBQztRQUVELElBQ0UsS0FBSyxDQUFDLG1CQUFtQjtZQUN6QixDQUFDLEtBQUssQ0FBQyxrQkFBa0I7Z0JBQ3ZCLEtBQUssQ0FBQyxjQUFjO2dCQUNwQixLQUFLLENBQUMsYUFBYTtnQkFDbkIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUNsQixDQUFDO1lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYiw2SUFBNkksQ0FDOUksQ0FBQztRQUNKLENBQUM7UUFFRCx1QkFBdUI7UUFDdkIsNENBQTRDO1FBQzVDLDJDQUEyQztRQUMzQyx3QkFBd0I7UUFDeEIsZ0VBQWdFO1FBQ2hFLHdFQUF3RTtRQUN4RSxPQUFPO1FBQ1AsS0FBSztRQUVMLElBQUksQ0FBQyxZQUFZLEdBQUc7WUFDbEIsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO2dCQUN0QixTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsRUFBRSwrQkFBK0I7Z0JBQ25GLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixDQUFDO2FBQ25DLENBQUM7U0FDSCxDQUFDO1FBRUYsSUFBSSxLQUFLLENBQUMsd0JBQXdCLElBQUksSUFBSSxFQUFFLENBQUM7WUFDM0MsMEdBQTBHO1lBQzFHLElBQUksQ0FBQyxRQUFRLENBQUM7Z0JBQ1osTUFBTSxFQUFFO29CQUNOLHdDQUF3QztvQkFDeEMseUJBQXlCO29CQUN6QiwyQkFBMkI7b0JBQzNCLDJCQUEyQjtpQkFDNUI7Z0JBQ0QsUUFBUSxFQUFFLG1CQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDN0IsV0FBVyxFQUFFLENBQUM7Z0JBQ2QsV0FBVyxFQUFFLENBQUM7YUFDZixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0g7O09BRUc7SUFDTyxXQUFXO1FBQ25CLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQ25DLE9BQU87Z0JBQ0wsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLFdBQVc7Z0JBQy9DLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSTtvQkFDeEIsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztpQkFDdEUsQ0FBQzthQUNILENBQUM7UUFDSixDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU87Z0JBQ0wsUUFBUSxFQUFFLElBQUEsbUNBQXNCLEVBQzlCLElBQUksRUFDSixRQUFRLEVBQ1IsUUFBUSxFQUNSLElBQUksQ0FBQyxrQkFBa0IsQ0FDeEI7Z0JBQ0QsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO29CQUMxQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsV0FBVztvQkFDbkQsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTzt3QkFDekIsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUs7d0JBQzFCLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLO29CQUMvQyxjQUFjLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjO29CQUN6QyxhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhO29CQUN2QyxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTO2lCQUNoQyxDQUFDO2FBQ0gsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDOztBQWpISCxvQ0FrSEM7OztBQWpIeUIsMkNBQThCLEdBQ3BEO0lBQ0UsT0FBTyxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQjtJQUMzQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CO0NBQy9DLENBQUM7QUErR047O0dBRUc7QUFDSCxJQUFZLG9CQXFCWDtBQXJCRCxXQUFZLG9CQUFvQjtJQUM5Qjs7Ozs7T0FLRztJQUNILDREQUFvQyxDQUFBO0lBRXBDOzs7OztPQUtHO0lBQ0gsdUNBQWUsQ0FBQTtJQUVmOztPQUVHO0lBQ0gsMENBQWtCLENBQUE7QUFDcEIsQ0FBQyxFQXJCVyxvQkFBb0Isb0NBQXBCLG9CQUFvQixRQXFCL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0ICogYXMgY29tcHV0ZSBmcm9tIFwiLi4vLi4vXCI7XG5pbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gXCIuLi8uLi8uLi8uLi9kdXJhdGlvblwiO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gXCIuLi8uLi8uLi9pYW1cIjtcbmltcG9ydCB7XG4gIGludGVncmF0aW9uUmVzb3VyY2VBcm4sXG4gIHZhbGlkYXRlUGF0dGVyblN1cHBvcnRlZCxcbn0gZnJvbSBcIi4uL3ByaXZhdGUvdGFzay11dGlsc1wiO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGludm9raW5nIGEgTGFtYmRhIGZ1bmN0aW9uIHdpdGggTGFtYmRhSW52b2tlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGFtYmRhSW52b2tlUHJvcHMgZXh0ZW5kcyBjb21wdXRlLlRhc2tTdGF0ZUJhc2VQcm9wcyB7XG4gIC8qKlxuICAgKiBMYW1iZGEgZnVuY3Rpb24gdG8gaW52b2tlXG4gICAqL1xuICByZWFkb25seSBsYW1iZGFGdW5jdGlvbjogY29tcHV0ZS5JRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBKU09OIHRoYXQgd2lsbCBiZSBzdXBwbGllZCBhcyBpbnB1dCB0byB0aGUgTGFtYmRhIGZ1bmN0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIHN0YXRlIGlucHV0IChKU09OIHBhdGggJyQnKVxuICAgKi9cbiAgcmVhZG9ubHkgcGF5bG9hZD86IGNvbXB1dGUuVGFza0lucHV0O1xuXG4gIC8qKlxuICAgKiBJbnZvY2F0aW9uIHR5cGUgb2YgdGhlIExhbWJkYSBmdW5jdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCBJbnZvY2F0aW9uVHlwZS5SRVFVRVNUX1JFU1BPTlNFXG4gICAqL1xuICByZWFkb25seSBpbnZvY2F0aW9uVHlwZT86IExhbWJkYUludm9jYXRpb25UeXBlO1xuXG4gIC8qKlxuICAgKiBVcCB0byAzNTgzIGJ5dGVzIG9mIGJhc2U2NC1lbmNvZGVkIGRhdGEgYWJvdXQgdGhlIGludm9raW5nIGNsaWVudFxuICAgKiB0byBwYXNzIHRvIHRoZSBmdW5jdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyBjb250ZXh0XG4gICAqL1xuICByZWFkb25seSBjbGllbnRDb250ZXh0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWZXJzaW9uIG9yIGFsaWFzIHRvIGludm9rZSBhIHB1Ymxpc2hlZCB2ZXJzaW9uIG9mIHRoZSBmdW5jdGlvblxuICAgKlxuICAgKiBZb3Ugb25seSBuZWVkIHRvIHN1cHBseSB0aGlzIGlmIHlvdSB3YW50IHRoZSB2ZXJzaW9uIG9mIHRoZSBMYW1iZGEgRnVuY3Rpb24gdG8gZGVwZW5kXG4gICAqIG9uIGRhdGEgaW4gdGhlIHN0YXRlIG1hY2hpbmUgc3RhdGUuIElmIG5vdCwgeW91IGNhbiBwYXNzIHRoZSBhcHByb3ByaWF0ZSBBbGlhcyBvciBWZXJzaW9uIG9iamVjdFxuICAgKiBkaXJlY3RseSBhcyB0aGUgYGxhbWJkYUZ1bmN0aW9uYCBhcmd1bWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBWZXJzaW9uIG9yIGFsaWFzIGluaGVyZW50IHRvIHRoZSBgbGFtYmRhRnVuY3Rpb25gIG9iamVjdC5cbiAgICovXG4gIHJlYWRvbmx5IHF1YWxpZmllcj86IHN0cmluZztcbiAgLy8gZGVwcmVjYXRlIHRoaXM/IHBhc3MgYSBWZXJzaW9uIG9yIEFsaWFzIG9iamVjdCBhcyBsYW1iZGFGdW5jdGlvbiBpbnN0ZWFkXG5cbiAgLyoqXG4gICAqIEludm9rZSB0aGUgTGFtYmRhIGluIGEgd2F5IHRoYXQgb25seSByZXR1cm5zIHRoZSBwYXlsb2FkIHJlc3BvbnNlIHdpdGhvdXQgYWRkaXRpb25hbCBtZXRhZGF0YS5cbiAgICpcbiAgICogVGhlIGBwYXlsb2FkUmVzcG9uc2VPbmx5YCBwcm9wZXJ0eSBjYW5ub3QgYmUgdXNlZCBpZiBgaW50ZWdyYXRpb25QYXR0ZXJuYCwgYGludm9jYXRpb25UeXBlYCxcbiAgICogYGNsaWVudENvbnRleHRgLCBvciBgcXVhbGlmaWVyYCBhcmUgc3BlY2lmaWVkLlxuICAgKiBJdCBhbHdheXMgdXNlcyB0aGUgUkVRVUVTVF9SRVNQT05TRSBiZWhhdmlvci5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IHBheWxvYWRSZXNwb25zZU9ubHk/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHJldHJ5IG9uIExhbWJkYSBzZXJ2aWNlIGV4Y2VwdGlvbnMuXG4gICAqXG4gICAqIFRoaXMgaGFuZGxlcyBgTGFtYmRhLlNlcnZpY2VFeGNlcHRpb25gLCBgTGFtYmRhLkFXU0xhbWJkYUV4Y2VwdGlvbmAsXG4gICAqIGBMYW1iZGEuU2RrQ2xpZW50RXhjZXB0aW9uYCwgYW5kIGBMYW1iZGEuQ2xpZW50RXhlY3V0aW9uVGltZW91dEV4Y2VwdGlvbmBcbiAgICogd2l0aCBhbiBpbnRlcnZhbCBvZiAyIHNlY29uZHMsIGEgYmFjay1vZmYgcmF0ZVxuICAgKiBvZiAyIGFuZCA2IG1heGltdW0gYXR0ZW1wdHMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3N0ZXAtZnVuY3Rpb25zL2xhdGVzdC9kZy9icC1sYW1iZGEtc2VydmljZWV4Y2VwdGlvbi5odG1sXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJldHJ5T25TZXJ2aWNlRXhjZXB0aW9ucz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogSW52b2tlIGEgTGFtYmRhIGZ1bmN0aW9uIGFzIGEgVGFza1xuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3N0ZXAtZnVuY3Rpb25zL2xhdGVzdC9kZy9jb25uZWN0LWxhbWJkYS5odG1sXG4gKi9cbmV4cG9ydCBjbGFzcyBMYW1iZGFJbnZva2UgZXh0ZW5kcyBjb21wdXRlLlRhc2tTdGF0ZUJhc2Uge1xuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBTVVBQT1JURURfSU5URUdSQVRJT05fUEFUVEVSTlM6IGNvbXB1dGUuSW50ZWdyYXRpb25QYXR0ZXJuW10gPVxuICAgIFtcbiAgICAgIGNvbXB1dGUuSW50ZWdyYXRpb25QYXR0ZXJuLlJFUVVFU1RfUkVTUE9OU0UsXG4gICAgICBjb21wdXRlLkludGVncmF0aW9uUGF0dGVybi5XQUlUX0ZPUl9UQVNLX1RPS0VOLFxuICAgIF07XG5cbiAgLy8gcHJvdGVjdGVkIHJlYWRvbmx5IHRhc2tNZXRyaWNzPzogY29tcHV0ZS5UYXNrTWV0cmljc0NvbmZpZztcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHRhc2tQb2xpY2llcz86IGlhbS5Qb2xpY3lTdGF0ZW1lbnRbXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGludGVncmF0aW9uUGF0dGVybjogY29tcHV0ZS5JbnRlZ3JhdGlvblBhdHRlcm47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IExhbWJkYUludm9rZVByb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcbiAgICB0aGlzLmludGVncmF0aW9uUGF0dGVybiA9XG4gICAgICBwcm9wcy5pbnRlZ3JhdGlvblBhdHRlcm4gPz8gY29tcHV0ZS5JbnRlZ3JhdGlvblBhdHRlcm4uUkVRVUVTVF9SRVNQT05TRTtcblxuICAgIHZhbGlkYXRlUGF0dGVyblN1cHBvcnRlZChcbiAgICAgIHRoaXMuaW50ZWdyYXRpb25QYXR0ZXJuLFxuICAgICAgTGFtYmRhSW52b2tlLlNVUFBPUlRFRF9JTlRFR1JBVElPTl9QQVRURVJOUyxcbiAgICApO1xuXG4gICAgaWYgKFxuICAgICAgdGhpcy5pbnRlZ3JhdGlvblBhdHRlcm4gPT09XG4gICAgICAgIGNvbXB1dGUuSW50ZWdyYXRpb25QYXR0ZXJuLldBSVRfRk9SX1RBU0tfVE9LRU4gJiZcbiAgICAgICFjb21wdXRlLkZpZWxkVXRpbHMuY29udGFpbnNUYXNrVG9rZW4ocHJvcHMucGF5bG9hZClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJUYXNrIFRva2VuIGlzIHJlcXVpcmVkIGluIGBwYXlsb2FkYCBmb3IgY2FsbGJhY2suIFVzZSBKc29uUGF0aC50YXNrVG9rZW4gdG8gc2V0IHRoZSB0b2tlbi5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgcHJvcHMucGF5bG9hZFJlc3BvbnNlT25seSAmJlxuICAgICAgKHByb3BzLmludGVncmF0aW9uUGF0dGVybiB8fFxuICAgICAgICBwcm9wcy5pbnZvY2F0aW9uVHlwZSB8fFxuICAgICAgICBwcm9wcy5jbGllbnRDb250ZXh0IHx8XG4gICAgICAgIHByb3BzLnF1YWxpZmllcilcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJUaGUgJ3BheWxvYWRSZXNwb25zZU9ubHknIHByb3BlcnR5IGNhbm5vdCBiZSB1c2VkIGlmICdpbnRlZ3JhdGlvblBhdHRlcm4nLCAnaW52b2NhdGlvblR5cGUnLCAnY2xpZW50Q29udGV4dCcsIG9yICdxdWFsaWZpZXInIGFyZSBzcGVjaWZpZWQuXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIHRoaXMudGFza01ldHJpY3MgPSB7XG4gICAgLy8gICBtZXRyaWNQcmVmaXhTaW5ndWxhcjogXCJMYW1iZGFGdW5jdGlvblwiLFxuICAgIC8vICAgbWV0cmljUHJlZml4UGx1cmFsOiBcIkxhbWJkYUZ1bmN0aW9uc1wiLFxuICAgIC8vICAgbWV0cmljRGltZW5zaW9uczoge1xuICAgIC8vICAgICBMYW1iZGFGdW5jdGlvbkFybjogdGhpcy5wcm9wcy5sYW1iZGFGdW5jdGlvbi5mdW5jdGlvbkFybixcbiAgICAvLyAgICAgLi4uKHRoaXMucHJvcHMucXVhbGlmaWVyICYmIHsgUXVhbGlmaWVyOiB0aGlzLnByb3BzLnF1YWxpZmllciB9KSxcbiAgICAvLyAgIH0sXG4gICAgLy8gfTtcblxuICAgIHRoaXMudGFza1BvbGljaWVzID0gW1xuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICByZXNvdXJjZXM6IFt0aGlzLnByb3BzLmxhbWJkYUZ1bmN0aW9uLmZ1bmN0aW9uQXJuXSwgLy8gLnJlc291cmNlQXJuc0ZvckdyYW50SW52b2tlLFxuICAgICAgICBhY3Rpb25zOiBbXCJsYW1iZGE6SW52b2tlRnVuY3Rpb25cIl0sXG4gICAgICB9KSxcbiAgICBdO1xuXG4gICAgaWYgKHByb3BzLnJldHJ5T25TZXJ2aWNlRXhjZXB0aW9ucyA/PyB0cnVlKSB7XG4gICAgICAvLyBCZXN0IHByYWN0aWNlIGZyb20gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3N0ZXAtZnVuY3Rpb25zL2xhdGVzdC9kZy9icC1sYW1iZGEtc2VydmljZWV4Y2VwdGlvbi5odG1sXG4gICAgICB0aGlzLmFkZFJldHJ5KHtcbiAgICAgICAgZXJyb3JzOiBbXG4gICAgICAgICAgXCJMYW1iZGEuQ2xpZW50RXhlY3V0aW9uVGltZW91dEV4Y2VwdGlvblwiLFxuICAgICAgICAgIFwiTGFtYmRhLlNlcnZpY2VFeGNlcHRpb25cIixcbiAgICAgICAgICBcIkxhbWJkYS5BV1NMYW1iZGFFeGNlcHRpb25cIixcbiAgICAgICAgICBcIkxhbWJkYS5TZGtDbGllbnRFeGNlcHRpb25cIixcbiAgICAgICAgXSxcbiAgICAgICAgaW50ZXJ2YWw6IER1cmF0aW9uLnNlY29uZHMoMiksXG4gICAgICAgIG1heEF0dGVtcHRzOiA2LFxuICAgICAgICBiYWNrb2ZmUmF0ZTogMixcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlcyB0aGUgTGFtYmRhIEludm9rZSBzZXJ2aWNlIGludGVncmF0aW9uIHRhc2sgY29uZmlndXJhdGlvblxuICAgKi9cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJvdGVjdGVkIF9yZW5kZXJUYXNrKCk6IGFueSB7XG4gICAgaWYgKHRoaXMucHJvcHMucGF5bG9hZFJlc3BvbnNlT25seSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgUmVzb3VyY2U6IHRoaXMucHJvcHMubGFtYmRhRnVuY3Rpb24uZnVuY3Rpb25Bcm4sXG4gICAgICAgIC4uLih0aGlzLnByb3BzLnBheWxvYWQgJiYge1xuICAgICAgICAgIFBhcmFtZXRlcnM6IGNvbXB1dGUuRmllbGRVdGlscy5yZW5kZXJPYmplY3QodGhpcy5wcm9wcy5wYXlsb2FkLnZhbHVlKSxcbiAgICAgICAgfSksXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBSZXNvdXJjZTogaW50ZWdyYXRpb25SZXNvdXJjZUFybihcbiAgICAgICAgICB0aGlzLFxuICAgICAgICAgIFwibGFtYmRhXCIsXG4gICAgICAgICAgXCJpbnZva2VcIixcbiAgICAgICAgICB0aGlzLmludGVncmF0aW9uUGF0dGVybixcbiAgICAgICAgKSxcbiAgICAgICAgUGFyYW1ldGVyczogY29tcHV0ZS5GaWVsZFV0aWxzLnJlbmRlck9iamVjdCh7XG4gICAgICAgICAgRnVuY3Rpb25OYW1lOiB0aGlzLnByb3BzLmxhbWJkYUZ1bmN0aW9uLmZ1bmN0aW9uQXJuLFxuICAgICAgICAgIFBheWxvYWQ6IHRoaXMucHJvcHMucGF5bG9hZFxuICAgICAgICAgICAgPyB0aGlzLnByb3BzLnBheWxvYWQudmFsdWVcbiAgICAgICAgICAgIDogY29tcHV0ZS5UYXNrSW5wdXQuZnJvbUpzb25QYXRoQXQoXCIkXCIpLnZhbHVlLFxuICAgICAgICAgIEludm9jYXRpb25UeXBlOiB0aGlzLnByb3BzLmludm9jYXRpb25UeXBlLFxuICAgICAgICAgIENsaWVudENvbnRleHQ6IHRoaXMucHJvcHMuY2xpZW50Q29udGV4dCxcbiAgICAgICAgICBRdWFsaWZpZXI6IHRoaXMucHJvcHMucXVhbGlmaWVyLFxuICAgICAgICB9KSxcbiAgICAgIH07XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogSW52b2NhdGlvbiB0eXBlIG9mIGEgTGFtYmRhXG4gKi9cbmV4cG9ydCBlbnVtIExhbWJkYUludm9jYXRpb25UeXBlIHtcbiAgLyoqXG4gICAqIEludm9rZSB0aGUgZnVuY3Rpb24gc3luY2hyb25vdXNseS5cbiAgICpcbiAgICogS2VlcCB0aGUgY29ubmVjdGlvbiBvcGVuIHVudGlsIHRoZSBmdW5jdGlvbiByZXR1cm5zIGEgcmVzcG9uc2Ugb3IgdGltZXMgb3V0LlxuICAgKiBUaGUgQVBJIHJlc3BvbnNlIGluY2x1ZGVzIHRoZSBmdW5jdGlvbiByZXNwb25zZSBhbmQgYWRkaXRpb25hbCBkYXRhLlxuICAgKi9cbiAgUkVRVUVTVF9SRVNQT05TRSA9IFwiUmVxdWVzdFJlc3BvbnNlXCIsXG5cbiAgLyoqXG4gICAqIEludm9rZSB0aGUgZnVuY3Rpb24gYXN5bmNocm9ub3VzbHkuXG4gICAqXG4gICAqIFNlbmQgZXZlbnRzIHRoYXQgZmFpbCBtdWx0aXBsZSB0aW1lcyB0byB0aGUgZnVuY3Rpb24ncyBkZWFkLWxldHRlciBxdWV1ZSAoaWYgaXQncyBjb25maWd1cmVkKS5cbiAgICogVGhlIEFQSSByZXNwb25zZSBvbmx5IGluY2x1ZGVzIGEgc3RhdHVzIGNvZGUuXG4gICAqL1xuICBFVkVOVCA9IFwiRXZlbnRcIixcblxuICAvKipcbiAgICogVmFsaWRhdGUgcGFyYW1ldGVyIHZhbHVlcyBhbmQgdmVyaWZ5IHRoYXQgdGhlIHVzZXIgb3Igcm9sZSBoYXMgcGVybWlzc2lvbiB0byBpbnZva2UgdGhlIGZ1bmN0aW9uLlxuICAgKi9cbiAgRFJZX1JVTiA9IFwiRHJ5UnVuXCIsXG59XG4iXX0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import { IntegrationPattern } from "../../";
|
|
3
|
+
/**
|
|
4
|
+
* Verifies that a validation pattern is supported for a service integration
|
|
5
|
+
*
|
|
6
|
+
*/
|
|
7
|
+
export declare function validatePatternSupported(integrationPattern: IntegrationPattern, supportedPatterns: IntegrationPattern[]): void;
|
|
8
|
+
export declare function integrationResourceArn(scope: Construct, service: string, api: string, integrationPattern?: IntegrationPattern): string;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.integrationResourceArn = exports.validatePatternSupported = void 0;
|
|
4
|
+
const __1 = require("../../");
|
|
5
|
+
const aws_stack_1 = require("../../../aws-stack");
|
|
6
|
+
/**
|
|
7
|
+
* Verifies that a validation pattern is supported for a service integration
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
10
|
+
function validatePatternSupported(integrationPattern, supportedPatterns) {
|
|
11
|
+
if (!supportedPatterns.includes(integrationPattern)) {
|
|
12
|
+
throw new Error(`Unsupported service integration pattern. Supported Patterns: ${supportedPatterns}. Received: ${integrationPattern}`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.validatePatternSupported = validatePatternSupported;
|
|
16
|
+
/**
|
|
17
|
+
* Suffixes corresponding to different service integration patterns
|
|
18
|
+
*
|
|
19
|
+
* Key is the service integration pattern, value is the resource ARN suffix.
|
|
20
|
+
*
|
|
21
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/connect-to-resource.html
|
|
22
|
+
*/
|
|
23
|
+
const resourceArnSuffix = {
|
|
24
|
+
[__1.IntegrationPattern.REQUEST_RESPONSE]: "",
|
|
25
|
+
[__1.IntegrationPattern.RUN_JOB]: ".sync",
|
|
26
|
+
[__1.IntegrationPattern.WAIT_FOR_TASK_TOKEN]: ".waitForTaskToken",
|
|
27
|
+
};
|
|
28
|
+
function integrationResourceArn(scope, service, api, integrationPattern) {
|
|
29
|
+
if (!service || !api) {
|
|
30
|
+
throw new Error("Both 'service' and 'api' must be provided to build the resource ARN.");
|
|
31
|
+
}
|
|
32
|
+
return (`arn:${aws_stack_1.AwsStack.ofAwsConstruct(scope).partition}:states:::${service}:${api}` +
|
|
33
|
+
(integrationPattern ? resourceArnSuffix[integrationPattern] : ""));
|
|
34
|
+
}
|
|
35
|
+
exports.integrationResourceArn = integrationResourceArn;
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFzay11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS90YXNrcy9wcml2YXRlL3Rhc2stdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsOEJBQTRDO0FBQzVDLGtEQUE4QztBQUU5Qzs7O0dBR0c7QUFDSCxTQUFnQix3QkFBd0IsQ0FDdEMsa0JBQXNDLEVBQ3RDLGlCQUF1QztJQUV2QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztRQUNwRCxNQUFNLElBQUksS0FBSyxDQUNiLGdFQUFnRSxpQkFBaUIsZUFBZSxrQkFBa0IsRUFBRSxDQUNySCxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUM7QUFURCw0REFTQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0saUJBQWlCLEdBQXVDO0lBQzVELENBQUMsc0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxFQUFFO0lBQ3pDLENBQUMsc0JBQWtCLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTztJQUNyQyxDQUFDLHNCQUFrQixDQUFDLG1CQUFtQixDQUFDLEVBQUUsbUJBQW1CO0NBQzlELENBQUM7QUFFRixTQUFnQixzQkFBc0IsQ0FDcEMsS0FBZ0IsRUFDaEIsT0FBZSxFQUNmLEdBQVcsRUFDWCxrQkFBdUM7SUFFdkMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQ2Isc0VBQXNFLENBQ3ZFLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTyxDQUNMLE9BQU8sb0JBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxhQUFhLE9BQU8sSUFBSSxHQUFHLEVBQUU7UUFDNUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQ2xFLENBQUM7QUFDSixDQUFDO0FBZkQsd0RBZUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgSW50ZWdyYXRpb25QYXR0ZXJuIH0gZnJvbSBcIi4uLy4uL1wiO1xuaW1wb3J0IHsgQXdzU3RhY2sgfSBmcm9tIFwiLi4vLi4vLi4vYXdzLXN0YWNrXCI7XG5cbi8qKlxuICogVmVyaWZpZXMgdGhhdCBhIHZhbGlkYXRpb24gcGF0dGVybiBpcyBzdXBwb3J0ZWQgZm9yIGEgc2VydmljZSBpbnRlZ3JhdGlvblxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlUGF0dGVyblN1cHBvcnRlZChcbiAgaW50ZWdyYXRpb25QYXR0ZXJuOiBJbnRlZ3JhdGlvblBhdHRlcm4sXG4gIHN1cHBvcnRlZFBhdHRlcm5zOiBJbnRlZ3JhdGlvblBhdHRlcm5bXSxcbikge1xuICBpZiAoIXN1cHBvcnRlZFBhdHRlcm5zLmluY2x1ZGVzKGludGVncmF0aW9uUGF0dGVybikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgVW5zdXBwb3J0ZWQgc2VydmljZSBpbnRlZ3JhdGlvbiBwYXR0ZXJuLiBTdXBwb3J0ZWQgUGF0dGVybnM6ICR7c3VwcG9ydGVkUGF0dGVybnN9LiBSZWNlaXZlZDogJHtpbnRlZ3JhdGlvblBhdHRlcm59YCxcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogU3VmZml4ZXMgY29ycmVzcG9uZGluZyB0byBkaWZmZXJlbnQgc2VydmljZSBpbnRlZ3JhdGlvbiBwYXR0ZXJuc1xuICpcbiAqIEtleSBpcyB0aGUgc2VydmljZSBpbnRlZ3JhdGlvbiBwYXR0ZXJuLCB2YWx1ZSBpcyB0aGUgcmVzb3VyY2UgQVJOIHN1ZmZpeC5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zdGVwLWZ1bmN0aW9ucy9sYXRlc3QvZGcvY29ubmVjdC10by1yZXNvdXJjZS5odG1sXG4gKi9cbmNvbnN0IHJlc291cmNlQXJuU3VmZml4OiBSZWNvcmQ8SW50ZWdyYXRpb25QYXR0ZXJuLCBzdHJpbmc+ID0ge1xuICBbSW50ZWdyYXRpb25QYXR0ZXJuLlJFUVVFU1RfUkVTUE9OU0VdOiBcIlwiLFxuICBbSW50ZWdyYXRpb25QYXR0ZXJuLlJVTl9KT0JdOiBcIi5zeW5jXCIsXG4gIFtJbnRlZ3JhdGlvblBhdHRlcm4uV0FJVF9GT1JfVEFTS19UT0tFTl06IFwiLndhaXRGb3JUYXNrVG9rZW5cIixcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnRlZ3JhdGlvblJlc291cmNlQXJuKFxuICBzY29wZTogQ29uc3RydWN0LFxuICBzZXJ2aWNlOiBzdHJpbmcsXG4gIGFwaTogc3RyaW5nLFxuICBpbnRlZ3JhdGlvblBhdHRlcm4/OiBJbnRlZ3JhdGlvblBhdHRlcm4sXG4pOiBzdHJpbmcge1xuICBpZiAoIXNlcnZpY2UgfHwgIWFwaSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIFwiQm90aCAnc2VydmljZScgYW5kICdhcGknIG11c3QgYmUgcHJvdmlkZWQgdG8gYnVpbGQgdGhlIHJlc291cmNlIEFSTi5cIixcbiAgICApO1xuICB9XG4gIHJldHVybiAoXG4gICAgYGFybjoke0F3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHNjb3BlKS5wYXJ0aXRpb259OnN0YXRlczo6OiR7c2VydmljZX06JHthcGl9YCArXG4gICAgKGludGVncmF0aW9uUGF0dGVybiA/IHJlc291cmNlQXJuU3VmZml4W2ludGVncmF0aW9uUGF0dGVybl0gOiBcIlwiKVxuICApO1xufVxuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getResourceArn = void 0;
|
|
4
|
+
const sfn = require("../");
|
|
5
|
+
const __1 = require("../../");
|
|
6
|
+
/**
|
|
7
|
+
* Suffixes corresponding to different service integration patterns
|
|
8
|
+
*
|
|
9
|
+
* Key is the service integration pattern, value is the resource ARN suffix.
|
|
10
|
+
*
|
|
11
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/connect-to-resource.html
|
|
12
|
+
*/
|
|
13
|
+
const resourceArnSuffix = new Map();
|
|
14
|
+
resourceArnSuffix.set(sfn.ServiceIntegrationPattern.FIRE_AND_FORGET, "");
|
|
15
|
+
resourceArnSuffix.set(sfn.ServiceIntegrationPattern.SYNC, ".sync");
|
|
16
|
+
resourceArnSuffix.set(sfn.ServiceIntegrationPattern.WAIT_FOR_TASK_TOKEN, ".waitForTaskToken");
|
|
17
|
+
function getResourceArn(scope, service, api, integrationPattern) {
|
|
18
|
+
if (!service || !api) {
|
|
19
|
+
throw new Error("Both 'service' and 'api' must be provided to build the resource ARN.");
|
|
20
|
+
}
|
|
21
|
+
return (`arn:${__1.AwsStack.ofAwsConstruct(scope).partition}:states:::${service}:${api}` +
|
|
22
|
+
(integrationPattern ? resourceArnSuffix.get(integrationPattern) : ""));
|
|
23
|
+
}
|
|
24
|
+
exports.getResourceArn = getResourceArn;
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb3VyY2UtYXJuLXN1ZmZpeC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS90YXNrcy9yZXNvdXJjZS1hcm4tc3VmZml4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDJCQUEyQjtBQUMzQiw4QkFBa0M7QUFFbEM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsRUFBeUMsQ0FBQztBQUMzRSxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN6RSxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNuRSxpQkFBaUIsQ0FBQyxHQUFHLENBQ25CLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxtQkFBbUIsRUFDakQsbUJBQW1CLENBQ3BCLENBQUM7QUFFRixTQUFnQixjQUFjLENBQzVCLEtBQWdCLEVBQ2hCLE9BQWUsRUFDZixHQUFXLEVBQ1gsa0JBQWlEO0lBRWpELElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNyQixNQUFNLElBQUksS0FBSyxDQUNiLHNFQUFzRSxDQUN2RSxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU8sQ0FDTCxPQUFPLFlBQVEsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxhQUFhLE9BQU8sSUFBSSxHQUFHLEVBQUU7UUFDNUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUN0RSxDQUFDO0FBQ0osQ0FBQztBQWZELHdDQWVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIHNmbiBmcm9tIFwiLi4vXCI7XG5pbXBvcnQgeyBBd3NTdGFjayB9IGZyb20gXCIuLi8uLi9cIjtcblxuLyoqXG4gKiBTdWZmaXhlcyBjb3JyZXNwb25kaW5nIHRvIGRpZmZlcmVudCBzZXJ2aWNlIGludGVncmF0aW9uIHBhdHRlcm5zXG4gKlxuICogS2V5IGlzIHRoZSBzZXJ2aWNlIGludGVncmF0aW9uIHBhdHRlcm4sIHZhbHVlIGlzIHRoZSByZXNvdXJjZSBBUk4gc3VmZml4LlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3N0ZXAtZnVuY3Rpb25zL2xhdGVzdC9kZy9jb25uZWN0LXRvLXJlc291cmNlLmh0bWxcbiAqL1xuY29uc3QgcmVzb3VyY2VBcm5TdWZmaXggPSBuZXcgTWFwPHNmbi5TZXJ2aWNlSW50ZWdyYXRpb25QYXR0ZXJuLCBzdHJpbmc+KCk7XG5yZXNvdXJjZUFyblN1ZmZpeC5zZXQoc2ZuLlNlcnZpY2VJbnRlZ3JhdGlvblBhdHRlcm4uRklSRV9BTkRfRk9SR0VULCBcIlwiKTtcbnJlc291cmNlQXJuU3VmZml4LnNldChzZm4uU2VydmljZUludGVncmF0aW9uUGF0dGVybi5TWU5DLCBcIi5zeW5jXCIpO1xucmVzb3VyY2VBcm5TdWZmaXguc2V0KFxuICBzZm4uU2VydmljZUludGVncmF0aW9uUGF0dGVybi5XQUlUX0ZPUl9UQVNLX1RPS0VOLFxuICBcIi53YWl0Rm9yVGFza1Rva2VuXCIsXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VBcm4oXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIHNlcnZpY2U6IHN0cmluZyxcbiAgYXBpOiBzdHJpbmcsXG4gIGludGVncmF0aW9uUGF0dGVybjogc2ZuLlNlcnZpY2VJbnRlZ3JhdGlvblBhdHRlcm4sXG4pOiBzdHJpbmcge1xuICBpZiAoIXNlcnZpY2UgfHwgIWFwaSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIFwiQm90aCAnc2VydmljZScgYW5kICdhcGknIG11c3QgYmUgcHJvdmlkZWQgdG8gYnVpbGQgdGhlIHJlc291cmNlIEFSTi5cIixcbiAgICApO1xuICB9XG4gIHJldHVybiAoXG4gICAgYGFybjoke0F3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHNjb3BlKS5wYXJ0aXRpb259OnN0YXRlczo6OiR7c2VydmljZX06JHthcGl9YCArXG4gICAgKGludGVncmF0aW9uUGF0dGVybiA/IHJlc291cmNlQXJuU3VmZml4LmdldChpbnRlZ3JhdGlvblBhdHRlcm4pIDogXCJcIilcbiAgKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import * as compute from "../../";
|
|
3
|
+
import { Duration } from "../../../../duration";
|
|
4
|
+
import * as iam from "../../../iam";
|
|
5
|
+
import * as notify from "../../../notify";
|
|
6
|
+
/**
|
|
7
|
+
* Properties for sending a message to an SQS queue
|
|
8
|
+
*/
|
|
9
|
+
export interface SqsSendMessageProps extends compute.TaskStateBaseProps {
|
|
10
|
+
/**
|
|
11
|
+
* The SQS queue that messages will be sent to
|
|
12
|
+
*/
|
|
13
|
+
readonly queue: notify.IQueue;
|
|
14
|
+
/**
|
|
15
|
+
* The text message to send to the queue.
|
|
16
|
+
*/
|
|
17
|
+
readonly messageBody: compute.TaskInput;
|
|
18
|
+
/**
|
|
19
|
+
* The length of time, for which to delay a message.
|
|
20
|
+
* Messages that you send to the queue remain invisible to consumers for the duration
|
|
21
|
+
* of the delay period. The maximum allowed delay is 15 minutes.
|
|
22
|
+
*
|
|
23
|
+
* @default - delay set on the queue. If a delay is not set on the queue,
|
|
24
|
+
* messages are sent immediately (0 seconds).
|
|
25
|
+
*/
|
|
26
|
+
readonly delay?: Duration;
|
|
27
|
+
/**
|
|
28
|
+
* The token used for deduplication of sent messages.
|
|
29
|
+
* Any messages sent with the same deduplication ID are accepted successfully,
|
|
30
|
+
* but aren't delivered during the 5-minute deduplication interval.
|
|
31
|
+
*
|
|
32
|
+
* @default - None
|
|
33
|
+
*/
|
|
34
|
+
readonly messageDeduplicationId?: string;
|
|
35
|
+
/**
|
|
36
|
+
* The tag that specifies that a message belongs to a specific message group.
|
|
37
|
+
*
|
|
38
|
+
* Messages that belong to the same message group are processed in a FIFO manner.
|
|
39
|
+
* Messages in different message groups might be processed out of order.
|
|
40
|
+
*
|
|
41
|
+
* @default - None
|
|
42
|
+
*/
|
|
43
|
+
readonly messageGroupId?: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* A StepFunctions Task to send messages to SQS queue.
|
|
47
|
+
*
|
|
48
|
+
*/
|
|
49
|
+
export declare class SqsSendMessage extends compute.TaskStateBase {
|
|
50
|
+
private readonly props;
|
|
51
|
+
private static readonly SUPPORTED_INTEGRATION_PATTERNS;
|
|
52
|
+
protected readonly taskPolicies?: iam.PolicyStatement[];
|
|
53
|
+
private readonly integrationPattern;
|
|
54
|
+
constructor(scope: Construct, id: string, props: SqsSendMessageProps);
|
|
55
|
+
/**
|
|
56
|
+
* Provides the SQS SendMessage service integration task configuration
|
|
57
|
+
*/
|
|
58
|
+
/**
|
|
59
|
+
* @internal
|
|
60
|
+
*/
|
|
61
|
+
protected _renderTask(): any;
|
|
62
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.SqsSendMessage = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const compute = require("../../");
|
|
7
|
+
const iam = require("../../../iam");
|
|
8
|
+
const task_utils_1 = require("../private/task-utils");
|
|
9
|
+
/**
|
|
10
|
+
* A StepFunctions Task to send messages to SQS queue.
|
|
11
|
+
*
|
|
12
|
+
*/
|
|
13
|
+
class SqsSendMessage extends compute.TaskStateBase {
|
|
14
|
+
constructor(scope, id, props) {
|
|
15
|
+
super(scope, id, props);
|
|
16
|
+
this.props = props;
|
|
17
|
+
this.integrationPattern =
|
|
18
|
+
props.integrationPattern ?? compute.IntegrationPattern.REQUEST_RESPONSE;
|
|
19
|
+
(0, task_utils_1.validatePatternSupported)(this.integrationPattern, SqsSendMessage.SUPPORTED_INTEGRATION_PATTERNS);
|
|
20
|
+
if (props.integrationPattern ===
|
|
21
|
+
compute.IntegrationPattern.WAIT_FOR_TASK_TOKEN) {
|
|
22
|
+
if (!compute.FieldUtils.containsTaskToken(props.messageBody)) {
|
|
23
|
+
throw new Error("Task Token is required in `messageBody` Use JsonPath.taskToken to set the token.");
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
this.taskPolicies = [
|
|
27
|
+
new iam.PolicyStatement({
|
|
28
|
+
actions: ["sqs:SendMessage"],
|
|
29
|
+
resources: [this.props.queue.queueArn],
|
|
30
|
+
}),
|
|
31
|
+
];
|
|
32
|
+
// // TODO: Re-Add encryption support
|
|
33
|
+
// // sending to an encrypted queue requires
|
|
34
|
+
// // permissions on the associated kms key
|
|
35
|
+
// if (this.props.queue.encryptionMasterKey) {
|
|
36
|
+
// this.taskPolicies.push(
|
|
37
|
+
// new iam.PolicyStatement({
|
|
38
|
+
// actions: ["kms:Decrypt", "kms:GenerateDataKey*"],
|
|
39
|
+
// resources: [this.props.queue.encryptionMasterKey.keyArn],
|
|
40
|
+
// }),
|
|
41
|
+
// );
|
|
42
|
+
// }
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Provides the SQS SendMessage service integration task configuration
|
|
46
|
+
*/
|
|
47
|
+
/**
|
|
48
|
+
* @internal
|
|
49
|
+
*/
|
|
50
|
+
_renderTask() {
|
|
51
|
+
return {
|
|
52
|
+
Resource: (0, task_utils_1.integrationResourceArn)(this, "sqs", "sendMessage", this.integrationPattern),
|
|
53
|
+
Parameters: compute.FieldUtils.renderObject({
|
|
54
|
+
QueueUrl: this.props.queue.queueUrl,
|
|
55
|
+
MessageBody: this.props.messageBody.value,
|
|
56
|
+
DelaySeconds: this.props.delay?.toSeconds(),
|
|
57
|
+
MessageDeduplicationId: this.props.messageDeduplicationId,
|
|
58
|
+
MessageGroupId: this.props.messageGroupId,
|
|
59
|
+
}),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.SqsSendMessage = SqsSendMessage;
|
|
64
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
65
|
+
SqsSendMessage[_a] = { fqn: "terraconstructs.aws.compute.tasks.SqsSendMessage", version: "0.0.8" };
|
|
66
|
+
SqsSendMessage.SUPPORTED_INTEGRATION_PATTERNS = [
|
|
67
|
+
compute.IntegrationPattern.REQUEST_RESPONSE,
|
|
68
|
+
compute.IntegrationPattern.WAIT_FOR_TASK_TOKEN,
|
|
69
|
+
];
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZC1tZXNzYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL3Rhc2tzL3Nxcy9zZW5kLW1lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSxrQ0FBa0M7QUFFbEMsb0NBQW9DO0FBRXBDLHNEQUcrQjtBQThDL0I7OztHQUdHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsT0FBTyxDQUFDLGFBQWE7SUFZdkQsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ08sS0FBMEI7UUFFM0MsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFGUCxVQUFLLEdBQUwsS0FBSyxDQUFxQjtRQUczQyxJQUFJLENBQUMsa0JBQWtCO1lBQ3JCLEtBQUssQ0FBQyxrQkFBa0IsSUFBSSxPQUFPLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUM7UUFFMUUsSUFBQSxxQ0FBd0IsRUFDdEIsSUFBSSxDQUFDLGtCQUFrQixFQUN2QixjQUFjLENBQUMsOEJBQThCLENBQzlDLENBQUM7UUFFRixJQUNFLEtBQUssQ0FBQyxrQkFBa0I7WUFDeEIsT0FBTyxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixFQUM5QyxDQUFDO1lBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7Z0JBQzdELE1BQU0sSUFBSSxLQUFLLENBQ2Isa0ZBQWtGLENBQ25GLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLEdBQUc7WUFDbEIsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO2dCQUN0QixPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztnQkFDNUIsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO2FBQ3ZDLENBQUM7U0FDSCxDQUFDO1FBRUYscUNBQXFDO1FBQ3JDLDRDQUE0QztRQUM1QywyQ0FBMkM7UUFDM0MsOENBQThDO1FBQzlDLDRCQUE0QjtRQUM1QixnQ0FBZ0M7UUFDaEMsMERBQTBEO1FBQzFELGtFQUFrRTtRQUNsRSxVQUFVO1FBQ1YsT0FBTztRQUNQLElBQUk7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSDs7T0FFRztJQUNPLFdBQVc7UUFDbkIsT0FBTztZQUNMLFFBQVEsRUFBRSxJQUFBLG1DQUFzQixFQUM5QixJQUFJLEVBQ0osS0FBSyxFQUNMLGFBQWEsRUFDYixJQUFJLENBQUMsa0JBQWtCLENBQ3hCO1lBQ0QsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO2dCQUMxQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUTtnQkFDbkMsV0FBVyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEtBQUs7Z0JBQ3pDLFlBQVksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUU7Z0JBQzNDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsc0JBQXNCO2dCQUN6RCxjQUFjLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjO2FBQzFDLENBQUM7U0FDSCxDQUFDO0lBQ0osQ0FBQzs7QUEvRUgsd0NBZ0ZDOzs7QUEvRXlCLDZDQUE4QixHQUNwRDtJQUNFLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0I7SUFDM0MsT0FBTyxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQjtDQUMvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIGNvbXB1dGUgZnJvbSBcIi4uLy4uL1wiO1xuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiLi4vLi4vLi4vLi4vZHVyYXRpb25cIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vLi4vLi4vaWFtXCI7XG5pbXBvcnQgKiBhcyBub3RpZnkgZnJvbSBcIi4uLy4uLy4uL25vdGlmeVwiO1xuaW1wb3J0IHtcbiAgaW50ZWdyYXRpb25SZXNvdXJjZUFybixcbiAgdmFsaWRhdGVQYXR0ZXJuU3VwcG9ydGVkLFxufSBmcm9tIFwiLi4vcHJpdmF0ZS90YXNrLXV0aWxzXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3Igc2VuZGluZyBhIG1lc3NhZ2UgdG8gYW4gU1FTIHF1ZXVlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3FzU2VuZE1lc3NhZ2VQcm9wcyBleHRlbmRzIGNvbXB1dGUuVGFza1N0YXRlQmFzZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBTUVMgcXVldWUgdGhhdCBtZXNzYWdlcyB3aWxsIGJlIHNlbnQgdG9cbiAgICovXG4gIHJlYWRvbmx5IHF1ZXVlOiBub3RpZnkuSVF1ZXVlO1xuXG4gIC8qKlxuICAgKiBUaGUgdGV4dCBtZXNzYWdlIHRvIHNlbmQgdG8gdGhlIHF1ZXVlLlxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZUJvZHk6IGNvbXB1dGUuVGFza0lucHV0O1xuXG4gIC8qKlxuICAgKiBUaGUgbGVuZ3RoIG9mIHRpbWUsIGZvciB3aGljaCB0byBkZWxheSBhIG1lc3NhZ2UuXG4gICAqIE1lc3NhZ2VzIHRoYXQgeW91IHNlbmQgdG8gdGhlIHF1ZXVlIHJlbWFpbiBpbnZpc2libGUgdG8gY29uc3VtZXJzIGZvciB0aGUgZHVyYXRpb25cbiAgICogb2YgdGhlIGRlbGF5IHBlcmlvZC4gVGhlIG1heGltdW0gYWxsb3dlZCBkZWxheSBpcyAxNSBtaW51dGVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRlbGF5IHNldCBvbiB0aGUgcXVldWUuIElmIGEgZGVsYXkgaXMgbm90IHNldCBvbiB0aGUgcXVldWUsXG4gICAqICAgbWVzc2FnZXMgYXJlIHNlbnQgaW1tZWRpYXRlbHkgKDAgc2Vjb25kcykuXG4gICAqL1xuICByZWFkb25seSBkZWxheT86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgdG9rZW4gdXNlZCBmb3IgZGVkdXBsaWNhdGlvbiBvZiBzZW50IG1lc3NhZ2VzLlxuICAgKiBBbnkgbWVzc2FnZXMgc2VudCB3aXRoIHRoZSBzYW1lIGRlZHVwbGljYXRpb24gSUQgYXJlIGFjY2VwdGVkIHN1Y2Nlc3NmdWxseSxcbiAgICogYnV0IGFyZW4ndCBkZWxpdmVyZWQgZHVyaW5nIHRoZSA1LW1pbnV0ZSBkZWR1cGxpY2F0aW9uIGludGVydmFsLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IG1lc3NhZ2VEZWR1cGxpY2F0aW9uSWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0YWcgdGhhdCBzcGVjaWZpZXMgdGhhdCBhIG1lc3NhZ2UgYmVsb25ncyB0byBhIHNwZWNpZmljIG1lc3NhZ2UgZ3JvdXAuXG4gICAqXG4gICAqIE1lc3NhZ2VzIHRoYXQgYmVsb25nIHRvIHRoZSBzYW1lIG1lc3NhZ2UgZ3JvdXAgYXJlIHByb2Nlc3NlZCBpbiBhIEZJRk8gbWFubmVyLlxuICAgKiBNZXNzYWdlcyBpbiBkaWZmZXJlbnQgbWVzc2FnZSBncm91cHMgbWlnaHQgYmUgcHJvY2Vzc2VkIG91dCBvZiBvcmRlci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb25lXG4gICAqL1xuICByZWFkb25seSBtZXNzYWdlR3JvdXBJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIFN0ZXBGdW5jdGlvbnMgVGFzayB0byBzZW5kIG1lc3NhZ2VzIHRvIFNRUyBxdWV1ZS5cbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBTcXNTZW5kTWVzc2FnZSBleHRlbmRzIGNvbXB1dGUuVGFza1N0YXRlQmFzZSB7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFNVUFBPUlRFRF9JTlRFR1JBVElPTl9QQVRURVJOUzogY29tcHV0ZS5JbnRlZ3JhdGlvblBhdHRlcm5bXSA9XG4gICAgW1xuICAgICAgY29tcHV0ZS5JbnRlZ3JhdGlvblBhdHRlcm4uUkVRVUVTVF9SRVNQT05TRSxcbiAgICAgIGNvbXB1dGUuSW50ZWdyYXRpb25QYXR0ZXJuLldBSVRfRk9SX1RBU0tfVE9LRU4sXG4gICAgXTtcblxuICAvLyBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFza01ldHJpY3M/OiBjb21wdXRlLlRhc2tNZXRyaWNzQ29uZmlnO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFza1BvbGljaWVzPzogaWFtLlBvbGljeVN0YXRlbWVudFtdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaW50ZWdyYXRpb25QYXR0ZXJuOiBjb21wdXRlLkludGVncmF0aW9uUGF0dGVybjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9wczogU3FzU2VuZE1lc3NhZ2VQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgdGhpcy5pbnRlZ3JhdGlvblBhdHRlcm4gPVxuICAgICAgcHJvcHMuaW50ZWdyYXRpb25QYXR0ZXJuID8/IGNvbXB1dGUuSW50ZWdyYXRpb25QYXR0ZXJuLlJFUVVFU1RfUkVTUE9OU0U7XG5cbiAgICB2YWxpZGF0ZVBhdHRlcm5TdXBwb3J0ZWQoXG4gICAgICB0aGlzLmludGVncmF0aW9uUGF0dGVybixcbiAgICAgIFNxc1NlbmRNZXNzYWdlLlNVUFBPUlRFRF9JTlRFR1JBVElPTl9QQVRURVJOUyxcbiAgICApO1xuXG4gICAgaWYgKFxuICAgICAgcHJvcHMuaW50ZWdyYXRpb25QYXR0ZXJuID09PVxuICAgICAgY29tcHV0ZS5JbnRlZ3JhdGlvblBhdHRlcm4uV0FJVF9GT1JfVEFTS19UT0tFTlxuICAgICkge1xuICAgICAgaWYgKCFjb21wdXRlLkZpZWxkVXRpbHMuY29udGFpbnNUYXNrVG9rZW4ocHJvcHMubWVzc2FnZUJvZHkpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBcIlRhc2sgVG9rZW4gaXMgcmVxdWlyZWQgaW4gYG1lc3NhZ2VCb2R5YCBVc2UgSnNvblBhdGgudGFza1Rva2VuIHRvIHNldCB0aGUgdG9rZW4uXCIsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy50YXNrUG9saWNpZXMgPSBbXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFtcInNxczpTZW5kTWVzc2FnZVwiXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbdGhpcy5wcm9wcy5xdWV1ZS5xdWV1ZUFybl0sXG4gICAgICB9KSxcbiAgICBdO1xuXG4gICAgLy8gLy8gVE9ETzogUmUtQWRkIGVuY3J5cHRpb24gc3VwcG9ydFxuICAgIC8vIC8vIHNlbmRpbmcgdG8gYW4gZW5jcnlwdGVkIHF1ZXVlIHJlcXVpcmVzXG4gICAgLy8gLy8gcGVybWlzc2lvbnMgb24gdGhlIGFzc29jaWF0ZWQga21zIGtleVxuICAgIC8vIGlmICh0aGlzLnByb3BzLnF1ZXVlLmVuY3J5cHRpb25NYXN0ZXJLZXkpIHtcbiAgICAvLyAgIHRoaXMudGFza1BvbGljaWVzLnB1c2goXG4gICAgLy8gICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAvLyAgICAgICBhY3Rpb25zOiBbXCJrbXM6RGVjcnlwdFwiLCBcImttczpHZW5lcmF0ZURhdGFLZXkqXCJdLFxuICAgIC8vICAgICAgIHJlc291cmNlczogW3RoaXMucHJvcHMucXVldWUuZW5jcnlwdGlvbk1hc3RlcktleS5rZXlBcm5dLFxuICAgIC8vICAgICB9KSxcbiAgICAvLyAgICk7XG4gICAgLy8gfVxuICB9XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVzIHRoZSBTUVMgU2VuZE1lc3NhZ2Ugc2VydmljZSBpbnRlZ3JhdGlvbiB0YXNrIGNvbmZpZ3VyYXRpb25cbiAgICovXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCBfcmVuZGVyVGFzaygpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBSZXNvdXJjZTogaW50ZWdyYXRpb25SZXNvdXJjZUFybihcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCJzcXNcIixcbiAgICAgICAgXCJzZW5kTWVzc2FnZVwiLFxuICAgICAgICB0aGlzLmludGVncmF0aW9uUGF0dGVybixcbiAgICAgICksXG4gICAgICBQYXJhbWV0ZXJzOiBjb21wdXRlLkZpZWxkVXRpbHMucmVuZGVyT2JqZWN0KHtcbiAgICAgICAgUXVldWVVcmw6IHRoaXMucHJvcHMucXVldWUucXVldWVVcmwsXG4gICAgICAgIE1lc3NhZ2VCb2R5OiB0aGlzLnByb3BzLm1lc3NhZ2VCb2R5LnZhbHVlLFxuICAgICAgICBEZWxheVNlY29uZHM6IHRoaXMucHJvcHMuZGVsYXk/LnRvU2Vjb25kcygpLFxuICAgICAgICBNZXNzYWdlRGVkdXBsaWNhdGlvbklkOiB0aGlzLnByb3BzLm1lc3NhZ2VEZWR1cGxpY2F0aW9uSWQsXG4gICAgICAgIE1lc3NhZ2VHcm91cElkOiB0aGlzLnByb3BzLm1lc3NhZ2VHcm91cElkLFxuICAgICAgfSksXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import * as compute from "../../";
|
|
3
|
+
import * as iam from "../../../iam";
|
|
4
|
+
/**
|
|
5
|
+
* Properties for invoking an Activity worker
|
|
6
|
+
*/
|
|
7
|
+
export interface StepFunctionsInvokeActivityProps extends compute.TaskStateBaseProps {
|
|
8
|
+
/**
|
|
9
|
+
* Step Functions Activity to invoke
|
|
10
|
+
*/
|
|
11
|
+
readonly activity: compute.IActivity;
|
|
12
|
+
/**
|
|
13
|
+
* Parameters pass a collection of key-value pairs, either static values or JSONPath expressions that select from the input.
|
|
14
|
+
*
|
|
15
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/input-output-inputpath-params.html#input-output-parameters
|
|
16
|
+
*
|
|
17
|
+
* @default No parameters
|
|
18
|
+
*/
|
|
19
|
+
readonly parameters?: {
|
|
20
|
+
[name: string]: any;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* A Step Functions Task to invoke an Activity worker.
|
|
25
|
+
*
|
|
26
|
+
* An Activity can be used directly as a Resource.
|
|
27
|
+
*/
|
|
28
|
+
export declare class StepFunctionsInvokeActivity extends compute.TaskStateBase {
|
|
29
|
+
private readonly props;
|
|
30
|
+
protected readonly taskPolicies?: iam.PolicyStatement[];
|
|
31
|
+
constructor(scope: Construct, id: string, props: StepFunctionsInvokeActivityProps);
|
|
32
|
+
/**
|
|
33
|
+
* @internal
|
|
34
|
+
*/
|
|
35
|
+
protected _renderTask(): any;
|
|
36
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.StepFunctionsInvokeActivity = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const compute = require("../../");
|
|
7
|
+
/**
|
|
8
|
+
* A Step Functions Task to invoke an Activity worker.
|
|
9
|
+
*
|
|
10
|
+
* An Activity can be used directly as a Resource.
|
|
11
|
+
*/
|
|
12
|
+
class StepFunctionsInvokeActivity extends compute.TaskStateBase {
|
|
13
|
+
constructor(scope, id, props) {
|
|
14
|
+
super(scope, id, props);
|
|
15
|
+
this.props = props;
|
|
16
|
+
// if (
|
|
17
|
+
// this.props.activity.encryptionConfiguration instanceof
|
|
18
|
+
// CustomerManagedEncryptionConfiguration
|
|
19
|
+
// ) {
|
|
20
|
+
// this.taskPolicies = this.createPolicyStatements(
|
|
21
|
+
// this.props.activity.encryptionConfiguration.kmsKey,
|
|
22
|
+
// );
|
|
23
|
+
// }
|
|
24
|
+
// this.taskMetrics = {
|
|
25
|
+
// metricDimensions: { ActivityArn: this.props.activity.activityArn },
|
|
26
|
+
// metricPrefixSingular: "Activity",
|
|
27
|
+
// metricPrefixPlural: "Activities",
|
|
28
|
+
// };
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @internal
|
|
32
|
+
*/
|
|
33
|
+
_renderTask() {
|
|
34
|
+
return {
|
|
35
|
+
Resource: this.props.activity.activityArn,
|
|
36
|
+
Parameters: this.props.parameters
|
|
37
|
+
? compute.FieldUtils.renderObject(this.props.parameters)
|
|
38
|
+
: undefined,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.StepFunctionsInvokeActivity = StepFunctionsInvokeActivity;
|
|
43
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
44
|
+
StepFunctionsInvokeActivity[_a] = { fqn: "terraconstructs.aws.compute.tasks.StepFunctionsInvokeActivity", version: "0.0.8" };
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52b2tlLWFjdGl2aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL3Rhc2tzL3N0ZXBmdW5jdGlvbnMvaW52b2tlLWFjdGl2aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0Esa0NBQWtDO0FBeUJsQzs7OztHQUlHO0FBQ0gsTUFBYSwyQkFBNEIsU0FBUSxPQUFPLENBQUMsYUFBYTtJQUtwRSxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDTyxLQUF1QztRQUV4RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUZQLFVBQUssR0FBTCxLQUFLLENBQWtDO1FBSXhELE9BQU87UUFDUCwyREFBMkQ7UUFDM0QsMkNBQTJDO1FBQzNDLE1BQU07UUFDTixxREFBcUQ7UUFDckQsMERBQTBEO1FBQzFELE9BQU87UUFDUCxJQUFJO1FBQ0osdUJBQXVCO1FBQ3ZCLHdFQUF3RTtRQUN4RSxzQ0FBc0M7UUFDdEMsc0NBQXNDO1FBQ3RDLEtBQUs7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFDTyxXQUFXO1FBQ25CLE9BQU87WUFDTCxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVztZQUN6QyxVQUFVLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVO2dCQUMvQixDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7Z0JBQ3hELENBQUMsQ0FBQyxTQUFTO1NBQ2QsQ0FBQztJQUNKLENBQUM7O0FBckNILGtFQXVEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgKiBhcyBjb21wdXRlIGZyb20gXCIuLi8uLi9cIjtcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiLi4vLi4vLi4vaWFtXCI7XG4vLyBpbXBvcnQgeyBJS2V5IH0gZnJvbSBcIi4uLy4uLy4uL2VuY3J5cHRpb25cIjtcbi8vIGltcG9ydCB7IEN1c3RvbWVyTWFuYWdlZEVuY3J5cHRpb25Db25maWd1cmF0aW9uIH0gZnJvbSBcIi4uLy4uL2N1c3RvbWVyLW1hbmFnZWQta2V5LWVuY3J5cHRpb24tY29uZmlndXJhdGlvblwiO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGludm9raW5nIGFuIEFjdGl2aXR5IHdvcmtlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXBGdW5jdGlvbnNJbnZva2VBY3Rpdml0eVByb3BzXG4gIGV4dGVuZHMgY29tcHV0ZS5UYXNrU3RhdGVCYXNlUHJvcHMge1xuICAvKipcbiAgICogU3RlcCBGdW5jdGlvbnMgQWN0aXZpdHkgdG8gaW52b2tlXG4gICAqL1xuICByZWFkb25seSBhY3Rpdml0eTogY29tcHV0ZS5JQWN0aXZpdHk7XG5cbiAgLyoqXG4gICAqIFBhcmFtZXRlcnMgcGFzcyBhIGNvbGxlY3Rpb24gb2Yga2V5LXZhbHVlIHBhaXJzLCBlaXRoZXIgc3RhdGljIHZhbHVlcyBvciBKU09OUGF0aCBleHByZXNzaW9ucyB0aGF0IHNlbGVjdCBmcm9tIHRoZSBpbnB1dC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc3RlcC1mdW5jdGlvbnMvbGF0ZXN0L2RnL2lucHV0LW91dHB1dC1pbnB1dHBhdGgtcGFyYW1zLmh0bWwjaW5wdXQtb3V0cHV0LXBhcmFtZXRlcnNcbiAgICpcbiAgICogQGRlZmF1bHQgTm8gcGFyYW1ldGVyc1xuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVycz86IHsgW25hbWU6IHN0cmluZ106IGFueSB9O1xufVxuXG4vKipcbiAqIEEgU3RlcCBGdW5jdGlvbnMgVGFzayB0byBpbnZva2UgYW4gQWN0aXZpdHkgd29ya2VyLlxuICpcbiAqIEFuIEFjdGl2aXR5IGNhbiBiZSB1c2VkIGRpcmVjdGx5IGFzIGEgUmVzb3VyY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGVwRnVuY3Rpb25zSW52b2tlQWN0aXZpdHkgZXh0ZW5kcyBjb21wdXRlLlRhc2tTdGF0ZUJhc2Uge1xuICAvLyBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFza01ldHJpY3M/OiBjb21wdXRlLlRhc2tNZXRyaWNzQ29uZmlnO1xuICAvLyBObyBJQU0gcGVybWlzc2lvbnMgbmVjZXNzYXJ5IHVubGVzcyB0aGUgQWN0aXZpdHkgdXNlcyBhIGN1c3RvbWVyIG1hbmFnZWQgS01TIGtleVxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFza1BvbGljaWVzPzogaWFtLlBvbGljeVN0YXRlbWVudFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHByb3BzOiBTdGVwRnVuY3Rpb25zSW52b2tlQWN0aXZpdHlQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICAvLyBpZiAoXG4gICAgLy8gICB0aGlzLnByb3BzLmFjdGl2aXR5LmVuY3J5cHRpb25Db25maWd1cmF0aW9uIGluc3RhbmNlb2ZcbiAgICAvLyAgIEN1c3RvbWVyTWFuYWdlZEVuY3J5cHRpb25Db25maWd1cmF0aW9uXG4gICAgLy8gKSB7XG4gICAgLy8gICB0aGlzLnRhc2tQb2xpY2llcyA9IHRoaXMuY3JlYXRlUG9saWN5U3RhdGVtZW50cyhcbiAgICAvLyAgICAgdGhpcy5wcm9wcy5hY3Rpdml0eS5lbmNyeXB0aW9uQ29uZmlndXJhdGlvbi5rbXNLZXksXG4gICAgLy8gICApO1xuICAgIC8vIH1cbiAgICAvLyB0aGlzLnRhc2tNZXRyaWNzID0ge1xuICAgIC8vICAgbWV0cmljRGltZW5zaW9uczogeyBBY3Rpdml0eUFybjogdGhpcy5wcm9wcy5hY3Rpdml0eS5hY3Rpdml0eUFybiB9LFxuICAgIC8vICAgbWV0cmljUHJlZml4U2luZ3VsYXI6IFwiQWN0aXZpdHlcIixcbiAgICAvLyAgIG1ldHJpY1ByZWZpeFBsdXJhbDogXCJBY3Rpdml0aWVzXCIsXG4gICAgLy8gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByb3RlY3RlZCBfcmVuZGVyVGFzaygpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBSZXNvdXJjZTogdGhpcy5wcm9wcy5hY3Rpdml0eS5hY3Rpdml0eUFybixcbiAgICAgIFBhcmFtZXRlcnM6IHRoaXMucHJvcHMucGFyYW1ldGVyc1xuICAgICAgICA/IGNvbXB1dGUuRmllbGRVdGlscy5yZW5kZXJPYmplY3QodGhpcy5wcm9wcy5wYXJhbWV0ZXJzKVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9O1xuICB9XG5cbiAgLy8gLy8gSUFNIHBvbGljeSBmb3IgdGhlIFN0YXRlIE1hY2hpbmUgZXhlY3V0aW9uIHJvbGUgdG8gdXNlIHRoZSBBY3Rpdml0eSBLTVMga2V5IHdoZW4gZW5jcnlwdGluZyBpbnB1dHNcbiAgLy8gcHJpdmF0ZSBjcmVhdGVQb2xpY3lTdGF0ZW1lbnRzKGttc2tleTogSUtleSk6IGlhbS5Qb2xpY3lTdGF0ZW1lbnRbXSB7XG4gIC8vICAgcmV0dXJuIFtcbiAgLy8gICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgLy8gICAgICAgYWN0aW9uczogW1wia21zOkRlY3J5cHRcIiwgXCJrbXM6R2VuZXJhdGVEYXRhS2V5XCJdLFxuICAvLyAgICAgICByZXNvdXJjZXM6IFtgJHtrbXNrZXkua2V5QXJufWBdLFxuICAvLyAgICAgICBjb25kaXRpb246IFtcbiAgLy8gICAgICAgICB7XG4gIC8vICAgICAgICAgICB0ZXN0OiBcIlN0cmluZ0VxdWFsc1wiLFxuICAvLyAgICAgICAgICAgdmFyaWFibGU6IFwia21zOkVuY3J5cHRpb25Db250ZXh0OmF3czpzdGF0ZXM6YWN0aXZpdHlBcm5cIixcbiAgLy8gICAgICAgICAgIHZhbHVlczogW3RoaXMucHJvcHMuYWN0aXZpdHkuYWN0aXZpdHlBcm5dLFxuICAvLyAgICAgICAgIH0sXG4gIC8vICAgICAgIF0sXG4gIC8vICAgICB9KSxcbiAgLy8gICBdO1xuICAvLyB9XG59XG4iXX0=
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import * as compute from "../../";
|
|
3
|
+
import * as iam from "../../../iam";
|
|
4
|
+
/**
|
|
5
|
+
* Properties for StartExecution
|
|
6
|
+
*/
|
|
7
|
+
export interface StepFunctionsStartExecutionProps extends compute.TaskStateBaseProps {
|
|
8
|
+
/**
|
|
9
|
+
* The Step Functions state machine to start the execution on.
|
|
10
|
+
*/
|
|
11
|
+
readonly stateMachine: compute.IStateMachine;
|
|
12
|
+
/**
|
|
13
|
+
* The JSON input for the execution, same as that of StartExecution.
|
|
14
|
+
*
|
|
15
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html
|
|
16
|
+
*
|
|
17
|
+
* @default - The state input (JSON path '$')
|
|
18
|
+
*/
|
|
19
|
+
readonly input?: compute.TaskInput;
|
|
20
|
+
/**
|
|
21
|
+
* The name of the execution, same as that of StartExecution.
|
|
22
|
+
*
|
|
23
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html
|
|
24
|
+
*
|
|
25
|
+
* @default - None
|
|
26
|
+
*/
|
|
27
|
+
readonly name?: string;
|
|
28
|
+
/**
|
|
29
|
+
* Pass the execution ID from the context object to the execution input.
|
|
30
|
+
* This allows the Step Functions UI to link child executions from parent executions, making it easier to trace execution flow across state machines.
|
|
31
|
+
*
|
|
32
|
+
* If you set this property to `true`, the `input` property must be an object (provided by `sfn.TaskInput.fromObject`) or omitted entirely.
|
|
33
|
+
*
|
|
34
|
+
* @see https://docs.aws.amazon.com/step-functions/latest/dg/concepts-nested-workflows.html#nested-execution-startid
|
|
35
|
+
*
|
|
36
|
+
* @default - false
|
|
37
|
+
*/
|
|
38
|
+
readonly associateWithParent?: boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* A Step Functions Task to call StartExecution on another state machine.
|
|
42
|
+
*
|
|
43
|
+
* It supports three service integration patterns: REQUEST_RESPONSE, RUN_JOB, and WAIT_FOR_TASK_TOKEN.
|
|
44
|
+
*/
|
|
45
|
+
export declare class StepFunctionsStartExecution extends compute.TaskStateBase {
|
|
46
|
+
private readonly props;
|
|
47
|
+
private static readonly SUPPORTED_INTEGRATION_PATTERNS;
|
|
48
|
+
protected readonly taskPolicies?: iam.PolicyStatement[];
|
|
49
|
+
private readonly integrationPattern;
|
|
50
|
+
constructor(scope: Construct, id: string, props: StepFunctionsStartExecutionProps);
|
|
51
|
+
/**
|
|
52
|
+
* @internal
|
|
53
|
+
*/
|
|
54
|
+
protected _renderTask(): any;
|
|
55
|
+
/**
|
|
56
|
+
* As StateMachineArn is extracted automatically from the state machine object included in the constructor,
|
|
57
|
+
*
|
|
58
|
+
* the scoped access policy should be generated accordingly.
|
|
59
|
+
*
|
|
60
|
+
* This means the action of StartExecution should be restricted on the given state machine, instead of being granted to all the resources (*).
|
|
61
|
+
*/
|
|
62
|
+
private createScopedAccessPolicy;
|
|
63
|
+
}
|