terraconstructs 0.0.25 → 0.1.1
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/.jsii +83939 -55116
- package/.mise.toml +2 -2
- package/.nvmrc +1 -1
- package/LICENSE +202 -674
- package/go.mod +1 -1
- package/go.sum +2 -2
- package/lib/asset-manager.d.ts +23 -0
- package/lib/asset-manager.js +3 -0
- package/lib/asset-staging.d.ts +178 -0
- package/lib/asset-staging.js +589 -0
- package/lib/assets.d.ts +359 -0
- package/lib/assets.js +55 -0
- package/lib/aws/arn.js +16 -15
- package/lib/aws/aws-asset-manager.d.ts +91 -0
- package/lib/aws/aws-asset-manager.js +244 -0
- package/lib/aws/aws-construct.js +1 -1
- package/lib/aws/aws-stack.d.ts +37 -0
- package/lib/aws/aws-stack.js +30 -9
- package/lib/aws/aws-tags.js +2 -2
- package/lib/aws/cloudwatch/actions/appscaling.d.ts +15 -0
- package/lib/aws/cloudwatch/actions/appscaling.js +24 -0
- package/lib/aws/cloudwatch/actions/ec2.js +1 -1
- package/lib/aws/cloudwatch/actions/index.d.ts +3 -0
- package/lib/aws/cloudwatch/actions/index.js +4 -4
- package/lib/aws/cloudwatch/actions/lambda.js +1 -1
- package/lib/aws/cloudwatch/actions/sns.d.ts +14 -0
- package/lib/aws/cloudwatch/actions/sns.js +23 -0
- package/lib/aws/cloudwatch/actions/ssm.d.ts +72 -0
- package/lib/aws/cloudwatch/actions/ssm.js +104 -0
- package/lib/aws/cloudwatch/alarm-base.js +1 -1
- package/lib/aws/cloudwatch/alarm-rule.js +1 -1
- package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
- package/lib/aws/cloudwatch/alarm.js +1 -1
- package/lib/aws/cloudwatch/composite-alarm.js +1 -1
- package/lib/aws/cloudwatch/dashboard.js +1 -1
- package/lib/aws/cloudwatch/data-protection-policy.js +3 -3
- package/lib/aws/cloudwatch/graph.js +8 -8
- package/lib/aws/cloudwatch/layout.js +3 -3
- package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
- package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
- package/lib/aws/cloudwatch/log-group.js +1 -1
- package/lib/aws/cloudwatch/log-query.js +1 -1
- package/lib/aws/cloudwatch/log-stream.js +1 -1
- package/lib/aws/cloudwatch/metric-filter.js +1 -1
- package/lib/aws/cloudwatch/metric.js +2 -2
- package/lib/aws/cloudwatch/pattern.js +3 -3
- package/lib/aws/cloudwatch/policy.js +1 -1
- package/lib/aws/cloudwatch/query-definition.js +2 -2
- package/lib/aws/cloudwatch/stats.js +1 -1
- package/lib/aws/cloudwatch/subscription-filter.js +1 -1
- package/lib/aws/cloudwatch/text.js +1 -1
- package/lib/aws/cloudwatch/variable.js +3 -3
- package/lib/aws/cloudwatch/widget.js +1 -1
- package/lib/aws/compute/access-log.d.ts +478 -0
- package/lib/aws/compute/access-log.js +649 -0
- package/lib/aws/compute/activity.js +1 -1
- package/lib/aws/compute/alb/application-listener-action.js +1 -1
- package/lib/aws/compute/alb/application-listener-certificate.js +1 -1
- package/lib/aws/compute/alb/application-listener-rule.js +1 -1
- package/lib/aws/compute/alb/application-listener.js +1 -1
- package/lib/aws/compute/alb/application-load-balancer.js +1 -1
- package/lib/aws/compute/alb/application-target-group.js +1 -1
- package/lib/aws/compute/alb/conditions.js +1 -1
- package/lib/aws/compute/alb/trust-store-revocation.js +1 -1
- package/lib/aws/compute/alb/trust-store.js +1 -1
- package/lib/aws/compute/api-definition.d.ts +106 -0
- package/lib/aws/compute/api-definition.js +200 -0
- package/lib/aws/compute/api-key.d.ts +184 -0
- package/lib/aws/compute/api-key.js +197 -0
- package/lib/aws/compute/apigateway-canned-metrics.generated.d.ts +169 -0
- package/lib/aws/compute/apigateway-canned-metrics.generated.js +63 -0
- package/lib/aws/compute/apigateway-util.d.ts +31 -0
- package/lib/aws/compute/apigateway-util.js +152 -0
- package/lib/aws/compute/architecture.js +1 -1
- package/lib/aws/compute/aspects/require-imdsv2-aspect.js +2 -2
- package/lib/aws/compute/authorizer.d.ts +35 -0
- package/lib/aws/compute/authorizer.js +28 -0
- package/lib/aws/compute/authorizers/identity-source.d.ts +37 -0
- package/lib/aws/compute/authorizers/identity-source.js +61 -0
- package/lib/aws/compute/authorizers/index.d.ts +2 -0
- package/lib/aws/compute/authorizers/index.js +20 -0
- package/lib/aws/compute/authorizers/lambda.d.ts +140 -0
- package/lib/aws/compute/authorizers/lambda.js +208 -0
- package/lib/aws/compute/base-path-mapping.d.ts +49 -0
- package/lib/aws/compute/base-path-mapping.js +52 -0
- package/lib/aws/compute/base-scalable-attribute.js +3 -3
- package/lib/aws/compute/bastion-host.js +1 -1
- package/lib/aws/compute/chain.js +1 -1
- package/lib/aws/compute/client-vpn-authorization-rule.js +1 -1
- package/lib/aws/compute/client-vpn-endpoint.js +2 -2
- package/lib/aws/compute/client-vpn-route.js +2 -2
- package/lib/aws/compute/code.d.ts +415 -0
- package/lib/aws/compute/code.js +424 -0
- package/lib/aws/compute/condition.js +1 -1
- package/lib/aws/compute/connections.js +1 -1
- package/lib/aws/compute/cors.d.ts +102 -0
- package/lib/aws/compute/cors.js +33 -0
- package/lib/aws/compute/deployment.d.ts +83 -0
- package/lib/aws/compute/deployment.js +158 -0
- package/lib/aws/compute/domain-name.d.ts +153 -0
- package/lib/aws/compute/domain-name.js +158 -0
- package/lib/aws/compute/event-invoke-config.d.ts +2 -2
- package/lib/aws/compute/event-invoke-config.js +4 -4
- package/lib/aws/compute/event-source-filter.js +2 -2
- package/lib/aws/compute/event-source-mapping.d.ts +2 -2
- package/lib/aws/compute/event-source-mapping.js +9 -7
- package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
- package/lib/aws/compute/event-sources/s3.js +1 -1
- package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
- package/lib/aws/compute/event-sources/sqs.js +3 -2
- package/lib/aws/compute/fields.js +4 -4
- package/lib/aws/compute/function-alias.d.ts +2 -0
- package/lib/aws/compute/function-alias.js +14 -2
- package/lib/aws/compute/function-base.d.ts +23 -0
- package/lib/aws/compute/function-base.js +4 -4
- package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
- package/lib/aws/compute/function-destinations/function.js +1 -1
- package/lib/aws/compute/function-destinations/sqs.js +1 -1
- package/lib/aws/compute/function-nodejs/bundling.d.ts +75 -0
- package/lib/aws/compute/function-nodejs/bundling.js +405 -0
- package/lib/aws/compute/function-nodejs/function.d.ts +99 -0
- package/lib/aws/compute/function-nodejs/function.js +175 -0
- package/lib/aws/compute/function-nodejs/index.d.ts +2 -0
- package/lib/aws/compute/function-nodejs/index.js +19 -0
- package/lib/aws/compute/function-nodejs/package-installation.d.ts +8 -0
- package/lib/aws/compute/function-nodejs/package-installation.js +36 -0
- package/lib/aws/compute/function-nodejs/package-manager.d.ts +33 -0
- package/lib/aws/compute/function-nodejs/package-manager.js +99 -0
- package/lib/aws/compute/function-nodejs/types.d.ts +410 -0
- package/lib/aws/compute/function-nodejs/types.js +81 -0
- package/lib/aws/compute/function-nodejs/util.d.ts +60 -0
- package/lib/aws/compute/function-nodejs/util.js +202 -0
- package/lib/aws/compute/function-url.d.ts +2 -2
- package/lib/aws/compute/function-url.js +4 -4
- package/lib/aws/compute/function.d.ts +43 -5
- package/lib/aws/compute/function.js +106 -18
- package/lib/aws/compute/gateway-response.d.ts +157 -0
- package/lib/aws/compute/gateway-response.js +156 -0
- package/lib/aws/compute/handler.d.ts +10 -0
- package/lib/aws/compute/handler.js +20 -0
- package/lib/aws/compute/index.d.ts +27 -0
- package/lib/aws/compute/index.js +29 -1
- package/lib/aws/compute/instance-types.js +1 -1
- package/lib/aws/compute/instance.js +1 -1
- package/lib/aws/compute/integration.d.ts +311 -0
- package/lib/aws/compute/integration.js +165 -0
- package/lib/aws/compute/integrations/aws.d.ts +72 -0
- package/lib/aws/compute/integrations/aws.js +55 -0
- package/lib/aws/compute/integrations/http.d.ts +37 -0
- package/lib/aws/compute/integrations/http.js +35 -0
- package/lib/aws/compute/integrations/index.d.ts +6 -0
- package/lib/aws/compute/integrations/index.js +24 -0
- package/lib/aws/compute/integrations/lambda.d.ts +40 -0
- package/lib/aws/compute/integrations/lambda.js +73 -0
- package/lib/aws/compute/integrations/mock.d.ts +16 -0
- package/lib/aws/compute/integrations/mock.js +30 -0
- package/lib/aws/compute/integrations/request-context.d.ts +144 -0
- package/lib/aws/compute/integrations/request-context.js +3 -0
- package/lib/aws/compute/integrations/stepfunctions.d.ts +102 -0
- package/lib/aws/compute/integrations/stepfunctions.js +268 -0
- package/lib/aws/compute/ip-addresses.js +2 -2
- package/lib/aws/compute/ipam.js +1 -1
- package/lib/aws/compute/json-schema.d.ts +75 -0
- package/lib/aws/compute/json-schema.js +23 -0
- package/lib/aws/compute/key-pair.js +1 -1
- package/lib/aws/compute/lambda-api.d.ts +46 -0
- package/lib/aws/compute/lambda-api.js +64 -0
- package/lib/aws/compute/launch-template.js +2 -2
- package/lib/aws/compute/lb-shared/base-listener.js +1 -1
- package/lib/aws/compute/lb-shared/base-load-balancer.js +2 -2
- package/lib/aws/compute/lb-shared/base-target-group.js +1 -1
- package/lib/aws/compute/lb-shared/listener-certificate.js +1 -1
- package/lib/aws/compute/lb-shared/load-balancer-targets.js +2 -2
- package/lib/aws/compute/lb-targets/alb-target.js +3 -3
- package/lib/aws/compute/lb-targets/instance-target.js +2 -2
- package/lib/aws/compute/lb-targets/ip-target.js +1 -1
- package/lib/aws/compute/lb-targets/lambda-target.js +1 -1
- package/lib/aws/compute/load-balancer.js +3 -3
- package/lib/aws/compute/machine-image/amazon-linux-2022.js +2 -2
- package/lib/aws/compute/machine-image/amazon-linux-2023.js +2 -2
- package/lib/aws/compute/machine-image/amazon-linux2.js +2 -2
- package/lib/aws/compute/machine-image/common.js +1 -1
- package/lib/aws/compute/machine-image/machine-image.js +8 -8
- package/lib/aws/compute/method.d.ts +219 -0
- package/lib/aws/compute/method.js +396 -0
- package/lib/aws/compute/methodresponse.d.ts +28 -0
- package/lib/aws/compute/methodresponse.js +3 -0
- package/lib/aws/compute/model.d.ts +143 -0
- package/lib/aws/compute/model.js +141 -0
- package/lib/aws/compute/nat.js +5 -5
- package/lib/aws/compute/network-acl-types.js +2 -2
- package/lib/aws/compute/network-acl.js +3 -3
- package/lib/aws/compute/nlb/network-listener-action.js +1 -1
- package/lib/aws/compute/nlb/network-listener.js +1 -1
- package/lib/aws/compute/nlb/network-load-balancer.js +1 -1
- package/lib/aws/compute/nlb/network-target-group.js +1 -1
- package/lib/aws/compute/peer.js +1 -1
- package/lib/aws/compute/placement-group.js +1 -1
- package/lib/aws/compute/port.js +1 -1
- package/lib/aws/compute/prefix-list.js +1 -1
- package/lib/aws/compute/requestvalidator.d.ts +50 -0
- package/lib/aws/compute/requestvalidator.js +59 -0
- package/lib/aws/compute/resource.d.ts +223 -0
- package/lib/aws/compute/resource.js +316 -0
- package/lib/aws/compute/restapi.d.ts +510 -0
- package/lib/aws/compute/restapi.js +626 -0
- package/lib/aws/compute/route.js +8 -8
- package/lib/aws/compute/runtime.d.ts +282 -0
- package/lib/aws/compute/runtime.js +337 -0
- package/lib/aws/compute/scalable-target.js +3 -3
- package/lib/aws/compute/schedule.js +3 -3
- package/lib/aws/compute/security-group.js +1 -1
- package/lib/aws/compute/stage.d.ts +350 -0
- package/lib/aws/compute/stage.js +304 -0
- package/lib/aws/compute/state-graph.js +1 -1
- package/lib/aws/compute/state-machine-fragment.js +1 -1
- package/lib/aws/compute/state-machine.js +4 -4
- package/lib/aws/compute/states/choice.js +1 -1
- package/lib/aws/compute/states/custom-state.js +1 -1
- package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
- package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
- package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
- package/lib/aws/compute/states/distributed-map.js +1 -1
- package/lib/aws/compute/states/fail.js +1 -1
- package/lib/aws/compute/states/map-base.js +1 -1
- package/lib/aws/compute/states/map.js +1 -1
- package/lib/aws/compute/states/parallel.js +1 -1
- package/lib/aws/compute/states/pass.js +2 -2
- package/lib/aws/compute/states/state.js +1 -1
- package/lib/aws/compute/states/succeed.js +1 -1
- package/lib/aws/compute/states/task-base.js +2 -2
- package/lib/aws/compute/states/task.js +1 -1
- package/lib/aws/compute/states/wait.js +2 -2
- package/lib/aws/compute/step-scaling-action.js +3 -3
- package/lib/aws/compute/step-scaling-policy.js +1 -1
- package/lib/aws/compute/stepfunctions-api.d.ts +103 -0
- package/lib/aws/compute/stepfunctions-api.js +39 -0
- package/lib/aws/compute/subnet-v2.js +2 -2
- package/lib/aws/compute/subnet.js +1 -1
- package/lib/aws/compute/target-tracking-scaling-policy.js +3 -3
- package/lib/aws/compute/task-credentials.js +1 -1
- package/lib/aws/compute/task-input.js +1 -1
- package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
- package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
- package/lib/aws/compute/tasks/http/invoke.js +1 -1
- package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
- package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
- package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
- package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
- package/lib/aws/compute/types.js +1 -1
- package/lib/aws/compute/usage-plan.d.ts +194 -0
- package/lib/aws/compute/usage-plan.js +174 -0
- package/lib/aws/compute/user-data.js +3 -3
- package/lib/aws/compute/volume.js +2 -2
- package/lib/aws/compute/vpc-endpoint-service.js +1 -1
- package/lib/aws/compute/vpc-endpoint.js +6 -6
- package/lib/aws/compute/vpc-flow-logs.js +4 -4
- package/lib/aws/compute/vpc-link.d.ts +104 -0
- package/lib/aws/compute/vpc-link.js +137 -0
- package/lib/aws/compute/vpc-v2-base.js +1 -1
- package/lib/aws/compute/vpc-v2.js +2 -2
- package/lib/aws/compute/vpc.js +4 -4
- package/lib/aws/compute/vpn.js +3 -3
- package/lib/aws/edge/certificate.js +1 -1
- package/lib/aws/edge/distribution.js +3 -3
- package/lib/aws/edge/dns-alias-record-targets.js +3 -3
- package/lib/aws/edge/dns-record.js +13 -13
- package/lib/aws/edge/dns-zone.js +1 -1
- package/lib/aws/edge/function.js +2 -2
- package/lib/aws/edge/key-value-store.js +4 -4
- package/lib/aws/edge/origin.js +3 -3
- package/lib/aws/edge/response-headers-policy.js +1 -1
- package/lib/aws/encryption/alias.js +1 -1
- package/lib/aws/encryption/key.js +1 -1
- package/lib/aws/encryption/via-service-principal.js +1 -1
- package/lib/aws/iam/grant.js +2 -2
- package/lib/aws/iam/group.js +1 -1
- package/lib/aws/iam/instance-profile.js +1 -1
- package/lib/aws/iam/managed-policy.js +1 -1
- package/lib/aws/iam/oidc-provider.js +1 -1
- package/lib/aws/iam/policy-document.js +1 -1
- package/lib/aws/iam/policy-statement.js +1 -1
- package/lib/aws/iam/policy.js +1 -1
- package/lib/aws/iam/principals.js +20 -20
- package/lib/aws/iam/role.js +1 -1
- package/lib/aws/iam/saml-provider.js +2 -2
- package/lib/aws/iam/unknown-principal.js +1 -1
- package/lib/aws/iam/user.js +5 -5
- package/lib/aws/index.d.ts +1 -0
- package/lib/aws/index.js +4 -1
- package/lib/aws/network/simple-ipv4-vpc.js +1 -1
- package/lib/aws/network/subnet-group.js +3 -3
- package/lib/aws/network/subnet.js +4 -4
- package/lib/aws/notify/archive.js +1 -1
- package/lib/aws/notify/connection.js +3 -3
- package/lib/aws/notify/event-bus.js +3 -3
- package/lib/aws/notify/event-pattern.js +1 -1
- package/lib/aws/notify/input.js +2 -2
- package/lib/aws/notify/kinesis-stream.js +1 -1
- package/lib/aws/notify/notification-rule.d.ts +1 -1
- package/lib/aws/notify/notification-rule.js +5 -5
- package/lib/aws/notify/policy.js +1 -1
- package/lib/aws/notify/queue-policy.js +1 -1
- package/lib/aws/notify/queue.js +1 -1
- package/lib/aws/notify/resource-policy.js +1 -1
- package/lib/aws/notify/rule.js +1 -1
- package/lib/aws/notify/schedule.js +1 -1
- package/lib/aws/notify/subscription-filter.js +1 -1
- package/lib/aws/notify/subscription.js +4 -4
- package/lib/aws/notify/subscriptions/email.js +1 -1
- package/lib/aws/notify/subscriptions/lambda.js +1 -1
- package/lib/aws/notify/subscriptions/sms.js +1 -1
- package/lib/aws/notify/subscriptions/sqs.js +1 -1
- package/lib/aws/notify/subscriptions/url.js +1 -1
- package/lib/aws/notify/targets/event-bus.js +1 -1
- package/lib/aws/notify/targets/function.js +1 -1
- package/lib/aws/notify/targets/log-group.js +2 -2
- package/lib/aws/notify/targets/sqs.js +1 -1
- package/lib/aws/notify/targets/state-machine.js +1 -1
- package/lib/aws/notify/topic-base.js +1 -1
- package/lib/aws/notify/topic.js +6 -5
- package/lib/aws/partition.d.ts +21 -0
- package/lib/aws/partition.js +42 -0
- package/lib/aws/storage/assets/image-asset.d.ts +379 -0
- package/lib/aws/storage/assets/image-asset.js +247 -0
- package/lib/aws/storage/assets/index.d.ts +2 -0
- package/lib/aws/storage/assets/index.js +21 -0
- package/lib/aws/storage/assets/s3.d.ts +125 -0
- package/lib/aws/storage/assets/s3.js +80 -0
- package/lib/aws/storage/auth-token.d.ts +25 -0
- package/lib/aws/storage/auth-token.js +54 -0
- package/lib/aws/storage/billing.js +1 -1
- package/lib/aws/storage/bucket-notifications.js +1 -1
- package/lib/aws/storage/bucket-policy.js +1 -1
- package/lib/aws/storage/bucket-source.d.ts +1 -1
- package/lib/aws/storage/bucket-source.js +4 -4
- package/lib/aws/storage/bucket.d.ts +14 -6
- package/lib/aws/storage/bucket.js +48 -40
- package/lib/aws/storage/capacity.js +1 -1
- package/lib/aws/storage/ecr-lifecycle.d.ts +88 -0
- package/lib/aws/storage/ecr-lifecycle.js +23 -0
- package/lib/aws/storage/ecr-repository.d.ts +446 -0
- package/lib/aws/storage/ecr-repository.js +685 -0
- package/lib/aws/storage/encryption.js +1 -1
- package/lib/aws/storage/index.d.ts +5 -0
- package/lib/aws/storage/index.js +10 -3
- package/lib/aws/storage/location.d.ts +17 -0
- package/lib/aws/storage/location.js +4 -0
- package/lib/aws/storage/notification-targets/function.js +1 -1
- package/lib/aws/storage/notification-targets/queue.js +1 -1
- package/lib/aws/storage/origin-access-identity.js +1 -1
- package/lib/aws/storage/parameter.js +2 -2
- package/lib/aws/storage/table.js +3 -3
- package/lib/aws/storage/util.d.ts +8 -20
- package/lib/aws/storage/util.js +56 -34
- package/lib/aws/util.d.ts +1 -0
- package/lib/aws/util.js +6 -1
- package/lib/bundling.d.ts +434 -0
- package/lib/bundling.js +368 -0
- package/lib/construct-base.js +2 -2
- package/lib/duration.js +1 -1
- package/lib/expiration.js +1 -1
- package/lib/fs/copy.d.ts +2 -0
- package/lib/fs/copy.js +57 -0
- package/lib/fs/fingerprint.d.ts +21 -0
- package/lib/fs/fingerprint.js +165 -0
- package/lib/fs/ignore.d.ts +107 -0
- package/lib/fs/ignore.js +190 -0
- package/lib/fs/index.d.ts +47 -0
- package/lib/fs/index.js +88 -0
- package/lib/fs/options.d.ts +110 -0
- package/lib/fs/options.js +60 -0
- package/lib/fs/utils.d.ts +11 -0
- package/lib/fs/utils.js +34 -0
- package/lib/index.d.ts +5 -0
- package/lib/index.js +7 -1
- package/lib/private/asset-staging.d.ts +83 -0
- package/lib/private/asset-staging.js +205 -0
- package/lib/private/cache.d.ts +17 -0
- package/lib/private/cache.js +35 -0
- package/lib/private/jsii-deprecated.d.ts +2 -0
- package/lib/private/jsii-deprecated.js +19 -0
- package/lib/private/unique-resource-name.js +3 -2
- package/lib/size.js +1 -1
- package/lib/stack-base.js +1 -1
- package/lib/terra-func.js +2 -2
- package/lib/time-zone.js +1 -1
- package/node_modules/@balena/dockerignore/CHANGELOG.md +31 -0
- package/node_modules/@balena/dockerignore/LICENSE.md +206 -0
- package/node_modules/@balena/dockerignore/README.md +261 -0
- package/node_modules/@balena/dockerignore/ignore.js +363 -0
- package/node_modules/@balena/dockerignore/index.d.ts +45 -0
- package/node_modules/@balena/dockerignore/package.json +49 -0
- package/node_modules/balanced-match/.github/FUNDING.yml +2 -0
- package/node_modules/balanced-match/LICENSE.md +21 -0
- package/node_modules/balanced-match/README.md +97 -0
- package/node_modules/balanced-match/index.js +62 -0
- package/node_modules/balanced-match/package.json +48 -0
- package/node_modules/concat-map/.travis.yml +4 -0
- package/node_modules/concat-map/LICENSE +18 -0
- package/node_modules/concat-map/README.markdown +62 -0
- package/node_modules/concat-map/example/map.js +6 -0
- package/node_modules/concat-map/index.js +13 -0
- package/node_modules/concat-map/package.json +43 -0
- package/node_modules/concat-map/test/map.js +39 -0
- package/node_modules/ignore/LICENSE-MIT +21 -0
- package/node_modules/ignore/README.md +412 -0
- package/node_modules/ignore/index.d.ts +61 -0
- package/node_modules/ignore/index.js +636 -0
- package/node_modules/ignore/legacy.js +559 -0
- package/node_modules/ignore/package.json +74 -0
- package/node_modules/minimatch/LICENSE +15 -0
- package/node_modules/minimatch/README.md +230 -0
- package/node_modules/minimatch/minimatch.js +947 -0
- package/node_modules/minimatch/node_modules/brace-expansion/LICENSE +21 -0
- package/node_modules/minimatch/node_modules/brace-expansion/README.md +129 -0
- package/node_modules/minimatch/node_modules/brace-expansion/index.js +201 -0
- package/node_modules/minimatch/node_modules/brace-expansion/package.json +47 -0
- package/node_modules/minimatch/package.json +33 -0
- package/package.json +14 -5
- package/lib/aws/compute/function-nodejs.d.ts +0 -55
- package/lib/aws/compute/function-nodejs.js +0 -70
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as jsonSchema from "./json-schema";
|
|
2
|
+
export declare const ALL_METHODS: string[];
|
|
3
|
+
export declare function validateHttpMethod(method: string, messagePrefix?: string): void;
|
|
4
|
+
/**
|
|
5
|
+
* Validate and parse a method options path.
|
|
6
|
+
*
|
|
7
|
+
* @returns An object with the resource path (no leading '/') and HTTP method for Terraform methodSettings.
|
|
8
|
+
*/
|
|
9
|
+
export declare function parseMethodOptionsPath(originalPath: string): {
|
|
10
|
+
resourcePath: string;
|
|
11
|
+
httpMethod: string;
|
|
12
|
+
};
|
|
13
|
+
export declare function parseAwsApiCall(path?: string, action?: string, actionParams?: {
|
|
14
|
+
[key: string]: string;
|
|
15
|
+
}): {
|
|
16
|
+
apiType: string;
|
|
17
|
+
apiValue: string;
|
|
18
|
+
};
|
|
19
|
+
export declare function validateInteger(property: number | undefined, messagePrefix: string): property is number;
|
|
20
|
+
export declare function validateDouble(property: number | undefined, messagePrefix: string): property is number;
|
|
21
|
+
export declare class JsonSchemaMapper {
|
|
22
|
+
/**
|
|
23
|
+
* Transforms naming of some properties to prefix with a $, where needed
|
|
24
|
+
* according to the JSON schema spec
|
|
25
|
+
* @param schema The JsonSchema object to transform for CloudFormation output
|
|
26
|
+
*/
|
|
27
|
+
static toTFJsonSchema(schema: jsonSchema.JsonSchema): any;
|
|
28
|
+
private static readonly SchemaPropsWithPrefix;
|
|
29
|
+
private static readonly SchemaPropsWithUserDefinedChildren;
|
|
30
|
+
private static _toTFJsonSchema;
|
|
31
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// https://github.com/aws/aws-cdk/blob/v2.186.0/packages/aws-cdk-lib/aws-apigateway/lib/util.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.JsonSchemaMapper = exports.ALL_METHODS = void 0;
|
|
5
|
+
exports.validateHttpMethod = validateHttpMethod;
|
|
6
|
+
exports.parseMethodOptionsPath = parseMethodOptionsPath;
|
|
7
|
+
exports.parseAwsApiCall = parseAwsApiCall;
|
|
8
|
+
exports.validateInteger = validateInteger;
|
|
9
|
+
exports.validateDouble = validateDouble;
|
|
10
|
+
const url_1 = require("url");
|
|
11
|
+
const jsonSchema = require("./json-schema");
|
|
12
|
+
// TODO: Adopt UnscopedValidationError
|
|
13
|
+
// - https://github.com/aws/aws-cdk/pull/33382/
|
|
14
|
+
// - https://github.com/aws/aws-cdk/pull/33045
|
|
15
|
+
// import { UnscopedValidationError } from '../../core/lib/errors';
|
|
16
|
+
exports.ALL_METHODS = [
|
|
17
|
+
"OPTIONS",
|
|
18
|
+
"GET",
|
|
19
|
+
"PUT",
|
|
20
|
+
"POST",
|
|
21
|
+
"DELETE",
|
|
22
|
+
"PATCH",
|
|
23
|
+
"HEAD",
|
|
24
|
+
];
|
|
25
|
+
const ALLOWED_METHODS = ["ANY", ...exports.ALL_METHODS];
|
|
26
|
+
function validateHttpMethod(method, messagePrefix = "") {
|
|
27
|
+
if (!ALLOWED_METHODS.includes(method)) {
|
|
28
|
+
// throw new UnscopedValidationError(
|
|
29
|
+
throw new Error(`${messagePrefix}Invalid HTTP method "${method}". Allowed methods: ${ALLOWED_METHODS.join(",")}`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Validate and parse a method options path.
|
|
34
|
+
*
|
|
35
|
+
* @returns An object with the resource path (no leading '/') and HTTP method for Terraform methodSettings.
|
|
36
|
+
*/
|
|
37
|
+
function parseMethodOptionsPath(originalPath) {
|
|
38
|
+
if (!originalPath.startsWith("/")) {
|
|
39
|
+
// throw new UnscopedValidationError(
|
|
40
|
+
throw new Error(`Method options path must start with '/': ${originalPath}`);
|
|
41
|
+
}
|
|
42
|
+
const path = originalPath.slice(1); // trim trailing '/'
|
|
43
|
+
const components = path.split("/");
|
|
44
|
+
if (components.length < 2) {
|
|
45
|
+
// throw new UnscopedValidationError(
|
|
46
|
+
throw new Error(`Method options path must include at least two components: /{resource}/{method} (i.e. /foo/bar/GET): ${path}`);
|
|
47
|
+
}
|
|
48
|
+
const httpMethod = components.pop().toUpperCase(); // last component is an HTTP method
|
|
49
|
+
if (httpMethod !== "*") {
|
|
50
|
+
validateHttpMethod(httpMethod, `${originalPath}: `);
|
|
51
|
+
}
|
|
52
|
+
// // CFN Only JSON Path encoding ...
|
|
53
|
+
// // https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-apigateway-stage-methodsetting.html#cfn-apigateway-stage-methodsetting-resourcepath
|
|
54
|
+
// let resourcePath = "/~1" + components.join("~1");
|
|
55
|
+
// if (components.length === 1 && components[0] === "*") {
|
|
56
|
+
// resourcePath = "/*";
|
|
57
|
+
// } else if (components.length === 1 && components[0] === "") {
|
|
58
|
+
// resourcePath = "/";
|
|
59
|
+
// }
|
|
60
|
+
// Terraform expeects NO leading slash and no JSON Path encoding:
|
|
61
|
+
let resourcePath = components.join("/");
|
|
62
|
+
return {
|
|
63
|
+
httpMethod,
|
|
64
|
+
resourcePath,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
function parseAwsApiCall(path, action, actionParams) {
|
|
68
|
+
if (actionParams && !action) {
|
|
69
|
+
// throw new UnscopedValidationError(
|
|
70
|
+
throw new Error('"actionParams" requires that "action" will be set');
|
|
71
|
+
}
|
|
72
|
+
if (path && action) {
|
|
73
|
+
// throw new UnscopedValidationError(
|
|
74
|
+
throw new Error(`"path" and "action" are mutually exclusive (path="${path}", action="${action}")`);
|
|
75
|
+
}
|
|
76
|
+
if (path) {
|
|
77
|
+
return {
|
|
78
|
+
apiType: "path",
|
|
79
|
+
apiValue: path,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
if (action) {
|
|
83
|
+
if (actionParams) {
|
|
84
|
+
action += "&" + (0, url_1.format)({ query: actionParams }).slice(1);
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
apiType: "action",
|
|
88
|
+
apiValue: action,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
// throw new UnscopedValidationError(
|
|
92
|
+
throw new Error('Either "path" or "action" are required');
|
|
93
|
+
}
|
|
94
|
+
function validateInteger(property, messagePrefix) {
|
|
95
|
+
if (property && !Number.isInteger(property)) {
|
|
96
|
+
// throw new UnscopedValidationError(
|
|
97
|
+
throw new Error(`${messagePrefix} should be an integer`);
|
|
98
|
+
}
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
function validateDouble(property, messagePrefix) {
|
|
102
|
+
if (property && isNaN(property) && isNaN(parseFloat(property.toString()))) {
|
|
103
|
+
// throw new UnscopedValidationError(
|
|
104
|
+
throw new Error(`${messagePrefix} should be an double`);
|
|
105
|
+
}
|
|
106
|
+
return true;
|
|
107
|
+
}
|
|
108
|
+
class JsonSchemaMapper {
|
|
109
|
+
/**
|
|
110
|
+
* Transforms naming of some properties to prefix with a $, where needed
|
|
111
|
+
* according to the JSON schema spec
|
|
112
|
+
* @param schema The JsonSchema object to transform for CloudFormation output
|
|
113
|
+
*/
|
|
114
|
+
static toTFJsonSchema(schema) {
|
|
115
|
+
const result = JsonSchemaMapper._toTFJsonSchema(schema);
|
|
116
|
+
if (!("$schema" in result)) {
|
|
117
|
+
result.$schema = jsonSchema.JsonSchemaVersion.DRAFT4;
|
|
118
|
+
}
|
|
119
|
+
return result;
|
|
120
|
+
}
|
|
121
|
+
static _toTFJsonSchema(schema, preserveKeys = false) {
|
|
122
|
+
if (schema == null || typeof schema !== "object") {
|
|
123
|
+
return schema;
|
|
124
|
+
}
|
|
125
|
+
if (Array.isArray(schema)) {
|
|
126
|
+
return schema.map((entry) => JsonSchemaMapper._toTFJsonSchema(entry));
|
|
127
|
+
}
|
|
128
|
+
return Object.assign({}, ...Object.entries(schema).map(([key, value]) => {
|
|
129
|
+
const mapKey = !preserveKeys && key in JsonSchemaMapper.SchemaPropsWithPrefix;
|
|
130
|
+
const newKey = mapKey
|
|
131
|
+
? JsonSchemaMapper.SchemaPropsWithPrefix[key]
|
|
132
|
+
: key;
|
|
133
|
+
// If keys were preserved, don't consider SchemaPropsWithUserDefinedChildren for those keys (they are user-defined!)
|
|
134
|
+
const newValue = JsonSchemaMapper._toTFJsonSchema(value, !preserveKeys &&
|
|
135
|
+
JsonSchemaMapper.SchemaPropsWithUserDefinedChildren[key]);
|
|
136
|
+
return { [newKey]: newValue };
|
|
137
|
+
}));
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
exports.JsonSchemaMapper = JsonSchemaMapper;
|
|
141
|
+
JsonSchemaMapper.SchemaPropsWithPrefix = {
|
|
142
|
+
schema: "$schema",
|
|
143
|
+
ref: "$ref",
|
|
144
|
+
};
|
|
145
|
+
// The value indicates whether direct children should be key-mapped.
|
|
146
|
+
JsonSchemaMapper.SchemaPropsWithUserDefinedChildren = {
|
|
147
|
+
definitions: true,
|
|
148
|
+
properties: true,
|
|
149
|
+
patternProperties: true,
|
|
150
|
+
dependencies: true,
|
|
151
|
+
};
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpZ2F0ZXdheS11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL2FwaWdhdGV3YXktdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0ZBQStGOzs7QUFzQi9GLGdEQU9DO0FBT0Qsd0RBeUNDO0FBRUQsMENBcUNDO0FBRUQsMENBU0M7QUFFRCx3Q0FTQztBQXhJRCw2QkFBMEM7QUFDMUMsNENBQTRDO0FBRTVDLHNDQUFzQztBQUN0QywrQ0FBK0M7QUFDL0MsOENBQThDO0FBQzlDLG1FQUFtRTtBQUV0RCxRQUFBLFdBQVcsR0FBRztJQUN6QixTQUFTO0lBQ1QsS0FBSztJQUNMLEtBQUs7SUFDTCxNQUFNO0lBQ04sUUFBUTtJQUNSLE9BQU87SUFDUCxNQUFNO0NBQ1AsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsbUJBQVcsQ0FBQyxDQUFDO0FBRWhELFNBQWdCLGtCQUFrQixDQUFDLE1BQWMsRUFBRSxnQkFBd0IsRUFBRTtJQUMzRSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3RDLHFDQUFxQztRQUNyQyxNQUFNLElBQUksS0FBSyxDQUNiLEdBQUcsYUFBYSx3QkFBd0IsTUFBTSx1QkFBdUIsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUNqRyxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQUMsWUFBb0I7SUFJekQsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNsQyxxQ0FBcUM7UUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxD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QWdCLENBQUMsa0NBQWtDLENBQUMsR0FBRyxDQUFDLENBQzNELENBQUM7WUFDRixPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7QUFwREgsNENBcURDO0FBdkN5QixzQ0FBcUIsR0FBOEI7SUFDekUsTUFBTSxFQUFFLFNBQVM7SUFDakIsR0FBRyxFQUFFLE1BQU07Q0FDWixDQUFDO0FBQ0Ysb0VBQW9FO0FBQzVDLG1EQUFrQyxHQUV0RDtJQUNGLFdBQVcsRUFBRSxJQUFJO0lBQ2pCLFVBQVUsRUFBRSxJQUFJO0lBQ2hCLGlCQUFpQixFQUFFLElBQUk7SUFDdkIsWUFBWSxFQUFFLElBQUk7Q0FDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE4Ni4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5L2xpYi91dGlsLnRzXG5cbmltcG9ydCB7IGZvcm1hdCBhcyBmb3JtYXRVcmwgfSBmcm9tIFwidXJsXCI7XG5pbXBvcnQgKiBhcyBqc29uU2NoZW1hIGZyb20gXCIuL2pzb24tc2NoZW1hXCI7XG5cbi8vIFRPRE86IEFkb3B0IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yXG4vLyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9wdWxsLzMzMzgyL1xuLy8gLSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvcHVsbC8zMzA0NVxuLy8gaW1wb3J0IHsgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuLi8uLi9jb3JlL2xpYi9lcnJvcnMnO1xuXG5leHBvcnQgY29uc3QgQUxMX01FVEhPRFMgPSBbXG4gIFwiT1BUSU9OU1wiLFxuICBcIkdFVFwiLFxuICBcIlBVVFwiLFxuICBcIlBPU1RcIixcbiAgXCJERUxFVEVcIixcbiAgXCJQQVRDSFwiLFxuICBcIkhFQURcIixcbl07XG5cbmNvbnN0IEFMTE9XRURfTUVUSE9EUyA9IFtcIkFOWVwiLCAuLi5BTExfTUVUSE9EU107XG5cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZUh0dHBNZXRob2QobWV0aG9kOiBzdHJpbmcsIG1lc3NhZ2VQcmVmaXg6IHN0cmluZyA9IFwiXCIpIHtcbiAgaWYgKCFBTExPV0VEX01FVEhPRFMuaW5jbHVkZXMobWV0aG9kKSkge1xuICAgIC8vIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgJHttZXNzYWdlUHJlZml4fUludmFsaWQgSFRUUCBtZXRob2QgXCIke21ldGhvZH1cIi4gQWxsb3dlZCBtZXRob2RzOiAke0FMTE9XRURfTUVUSE9EUy5qb2luKFwiLFwiKX1gLFxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSBhbmQgcGFyc2UgYSBtZXRob2Qgb3B0aW9ucyBwYXRoLlxuICpcbiAqIEByZXR1cm5zIEFuIG9iamVjdCB3aXRoIHRoZSByZXNvdXJjZSBwYXRoIChubyBsZWFkaW5nICcvJykgYW5kIEhUVFAgbWV0aG9kIGZvciBUZXJyYWZvcm0gbWV0aG9kU2V0dGluZ3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZU1ldGhvZE9wdGlvbnNQYXRoKG9yaWdpbmFsUGF0aDogc3RyaW5nKToge1xuICByZXNvdXJjZVBhdGg6IHN0cmluZztcbiAgaHR0cE1ldGhvZDogc3RyaW5nO1xufSB7XG4gIGlmICghb3JpZ2luYWxQYXRoLnN0YXJ0c1dpdGgoXCIvXCIpKSB7XG4gICAgLy8gdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgIHRocm93IG5ldyBFcnJvcihgTWV0aG9kIG9wdGlvbnMgcGF0aCBtdXN0IHN0YXJ0IHdpdGggJy8nOiAke29yaWdpbmFsUGF0aH1gKTtcbiAgfVxuXG4gIGNvbnN0IHBhdGggPSBvcmlnaW5hbFBhdGguc2xpY2UoMSk7IC8vIHRyaW0gdHJhaWxpbmcgJy8nXG5cbiAgY29uc3QgY29tcG9uZW50cyA9IHBhdGguc3BsaXQoXCIvXCIpO1xuXG4gIGlmIChjb21wb25lbnRzLmxlbmd0aCA8IDIpIHtcbiAgICAvLyB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYE1ldGhvZCBvcHRpb25zIHBhdGggbXVzdCBpbmNsdWRlIGF0IGxlYXN0IHR3byBjb21wb25lbnRzOiAve3Jlc291cmNlfS97bWV0aG9kfSAoaS5lLiAvZm9vL2Jhci9HRVQpOiAke3BhdGh9YCxcbiAgICApO1xuICB9XG5cbiAgY29uc3QgaHR0cE1ldGhvZCA9IGNvbXBvbmVudHMucG9wKCkhLnRvVXBwZXJDYXNlKCk7IC8vIGxhc3QgY29tcG9uZW50IGlzIGFuIEhUVFAgbWV0aG9kXG4gIGlmIChodHRwTWV0aG9kICE9PSBcIipcIikge1xuICAgIHZhbGlkYXRlSHR0cE1ldGhvZChodHRwTWV0aG9kLCBgJHtvcmlnaW5hbFBhdGh9OiBgKTtcbiAgfVxuXG4gIC8vIC8vIENGTiBPbmx5IEpTT04gUGF0aCBlbmNvZGluZyAuLi5cbiAgLy8gLy8gaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9UZW1wbGF0ZVJlZmVyZW5jZS9hd3MtcHJvcGVydGllcy1hcGlnYXRld2F5LXN0YWdlLW1ldGhvZHNldHRpbmcuaHRtbCNjZm4tYXBpZ2F0ZXdheS1zdGFnZS1tZXRob2RzZXR0aW5nLXJlc291cmNlcGF0aFxuICAvLyBsZXQgcmVzb3VyY2VQYXRoID0gXCIvfjFcIiArIGNvbXBvbmVudHMuam9pbihcIn4xXCIpO1xuICAvLyBpZiAoY29tcG9uZW50cy5sZW5ndGggPT09IDEgJiYgY29tcG9uZW50c1swXSA9PT0gXCIqXCIpIHtcbiAgLy8gICByZXNvdXJjZVBhdGggPSBcIi8qXCI7XG4gIC8vIH0gZWxzZSBpZiAoY29tcG9uZW50cy5sZW5ndGggPT09IDEgJiYgY29tcG9uZW50c1swXSA9PT0gXCJcIikge1xuICAvLyAgIHJlc291cmNlUGF0aCA9IFwiL1wiO1xuICAvLyB9XG5cbiAgLy8gVGVycmFmb3JtIGV4cGVlY3RzIE5PIGxlYWRpbmcgc2xhc2ggYW5kIG5vIEpTT04gUGF0aCBlbmNvZGluZzpcbiAgbGV0IHJlc291cmNlUGF0aCA9IGNvbXBvbmVudHMuam9pbihcIi9cIik7XG5cbiAgcmV0dXJuIHtcbiAgICBodHRwTWV0aG9kLFxuICAgIHJlc291cmNlUGF0aCxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQXdzQXBpQ2FsbChcbiAgcGF0aD86IHN0cmluZyxcbiAgYWN0aW9uPzogc3RyaW5nLFxuICBhY3Rpb25QYXJhbXM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LFxuKTogeyBhcGlUeXBlOiBzdHJpbmc7IGFwaVZhbHVlOiBzdHJpbmcgfSB7XG4gIGlmIChhY3Rpb25QYXJhbXMgJiYgIWFjdGlvbikge1xuICAgIC8vIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1wiYWN0aW9uUGFyYW1zXCIgcmVxdWlyZXMgdGhhdCBcImFjdGlvblwiIHdpbGwgYmUgc2V0Jyk7XG4gIH1cblxuICBpZiAocGF0aCAmJiBhY3Rpb24pIHtcbiAgICAvLyB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFwicGF0aFwiIGFuZCBcImFjdGlvblwiIGFyZSBtdXR1YWxseSBleGNsdXNpdmUgKHBhdGg9XCIke3BhdGh9XCIsIGFjdGlvbj1cIiR7YWN0aW9ufVwiKWAsXG4gICAgKTtcbiAgfVxuXG4gIGlmIChwYXRoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFwaVR5cGU6IFwicGF0aFwiLFxuICAgICAgYXBpVmFsdWU6IHBhdGgsXG4gICAgfTtcbiAgfVxuXG4gIGlmIChhY3Rpb24pIHtcbiAgICBpZiAoYWN0aW9uUGFyYW1zKSB7XG4gICAgICBhY3Rpb24gKz0gXCImXCIgKyBmb3JtYXRVcmwoeyBxdWVyeTogYWN0aW9uUGFyYW1zIH0pLnNsaWNlKDEpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBhcGlUeXBlOiBcImFjdGlvblwiLFxuICAgICAgYXBpVmFsdWU6IGFjdGlvbixcbiAgICB9O1xuICB9XG5cbiAgLy8gdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICB0aHJvdyBuZXcgRXJyb3IoJ0VpdGhlciBcInBhdGhcIiBvciBcImFjdGlvblwiIGFyZSByZXF1aXJlZCcpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVJbnRlZ2VyKFxuICBwcm9wZXJ0eTogbnVtYmVyIHwgdW5kZWZpbmVkLFxuICBtZXNzYWdlUHJlZml4OiBzdHJpbmcsXG4pOiBwcm9wZXJ0eSBpcyBudW1iZXIge1xuICBpZiAocHJvcGVydHkgJiYgIU51bWJlci5pc0ludGVnZXIocHJvcGVydHkpKSB7XG4gICAgLy8gdGhyb3cgbmV3IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yKFxuICAgIHRocm93IG5ldyBFcnJvcihgJHttZXNzYWdlUHJlZml4fSBzaG91bGQgYmUgYW4gaW50ZWdlcmApO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVEb3VibGUoXG4gIHByb3BlcnR5OiBudW1iZXIgfCB1bmRlZmluZWQsXG4gIG1lc3NhZ2VQcmVmaXg6IHN0cmluZyxcbik6IHByb3BlcnR5IGlzIG51bWJlciB7XG4gIGlmIChwcm9wZXJ0eSAmJiBpc05hTihwcm9wZXJ0eSkgJiYgaXNOYU4ocGFyc2VGbG9hdChwcm9wZXJ0eS50b1N0cmluZygpKSkpIHtcbiAgICAvLyB0aHJvdyBuZXcgVW5zY29wZWRWYWxpZGF0aW9uRXJyb3IoXG4gICAgdGhyb3cgbmV3IEVycm9yKGAke21lc3NhZ2VQcmVmaXh9IHNob3VsZCBiZSBhbiBkb3VibGVgKTtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGNsYXNzIEpzb25TY2hlbWFNYXBwZXIge1xuICAvKipcbiAgICogVHJhbnNmb3JtcyBuYW1pbmcgb2Ygc29tZSBwcm9wZXJ0aWVzIHRvIHByZWZpeCB3aXRoIGEgJCwgd2hlcmUgbmVlZGVkXG4gICAqIGFjY29yZGluZyB0byB0aGUgSlNPTiBzY2hlbWEgc3BlY1xuICAgKiBAcGFyYW0gc2NoZW1hIFRoZSBKc29uU2NoZW1hIG9iamVjdCB0byB0cmFuc2Zvcm0gZm9yIENsb3VkRm9ybWF0aW9uIG91dHB1dFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB0b1RGSnNvblNjaGVtYShzY2hlbWE6IGpzb25TY2hlbWEuSnNvblNjaGVtYSk6IGFueSB7XG4gICAgY29uc3QgcmVzdWx0ID0gSnNvblNjaGVtYU1hcHBlci5fdG9URkpzb25TY2hlbWEoc2NoZW1hKTtcbiAgICBpZiAoIShcIiRzY2hlbWFcIiBpbiByZXN1bHQpKSB7XG4gICAgICByZXN1bHQuJHNjaGVtYSA9IGpzb25TY2hlbWEuSnNvblNjaGVtYVZlcnNpb24uRFJBRlQ0O1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgU2NoZW1hUHJvcHNXaXRoUHJlZml4OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge1xuICAgIHNjaGVtYTogXCIkc2NoZW1hXCIsXG4gICAgcmVmOiBcIiRyZWZcIixcbiAgfTtcbiAgLy8gVGhlIHZhbHVlIGluZGljYXRlcyB3aGV0aGVyIGRpcmVjdCBjaGlsZHJlbiBzaG91bGQgYmUga2V5LW1hcHBlZC5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgU2NoZW1hUHJvcHNXaXRoVXNlckRlZmluZWRDaGlsZHJlbjoge1xuICAgIFtrZXk6IHN0cmluZ106IGJvb2xlYW47XG4gIH0gPSB7XG4gICAgZGVmaW5pdGlvbnM6IHRydWUsXG4gICAgcHJvcGVydGllczogdHJ1ZSxcbiAgICBwYXR0ZXJuUHJvcGVydGllczogdHJ1ZSxcbiAgICBkZXBlbmRlbmNpZXM6IHRydWUsXG4gIH07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgX3RvVEZKc29uU2NoZW1hKHNjaGVtYTogYW55LCBwcmVzZXJ2ZUtleXMgPSBmYWxzZSk6IGFueSB7XG4gICAgaWYgKHNjaGVtYSA9PSBudWxsIHx8IHR5cGVvZiBzY2hlbWEgIT09IFwib2JqZWN0XCIpIHtcbiAgICAgIHJldHVybiBzY2hlbWE7XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHNjaGVtYSkpIHtcbiAgICAgIHJldHVybiBzY2hlbWEubWFwKChlbnRyeSkgPT4gSnNvblNjaGVtYU1hcHBlci5fdG9URkpzb25TY2hlbWEoZW50cnkpKTtcbiAgICB9XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIC4uLk9iamVjdC5lbnRyaWVzKHNjaGVtYSkubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgbWFwS2V5ID1cbiAgICAgICAgICAhcHJlc2VydmVLZXlzICYmIGtleSBpbiBKc29uU2NoZW1hTWFwcGVyLlNjaGVtYVByb3BzV2l0aFByZWZpeDtcbiAgICAgICAgY29uc3QgbmV3S2V5ID0gbWFwS2V5XG4gICAgICAgICAgPyBKc29uU2NoZW1hTWFwcGVyLlNjaGVtYVByb3BzV2l0aFByZWZpeFtrZXldXG4gICAgICAgICAgOiBrZXk7XG4gICAgICAgIC8vIElmIGtleXMgd2VyZSBwcmVzZXJ2ZWQsIGRvbid0IGNvbnNpZGVyIFNjaGVtYVByb3BzV2l0aFVzZXJEZWZpbmVkQ2hpbGRyZW4gZm9yIHRob3NlIGtleXMgKHRoZXkgYXJlIHVzZXItZGVmaW5lZCEpXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gSnNvblNjaGVtYU1hcHBlci5fdG9URkpzb25TY2hlbWEoXG4gICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgIXByZXNlcnZlS2V5cyAmJlxuICAgICAgICAgICAgSnNvblNjaGVtYU1hcHBlci5TY2hlbWFQcm9wc1dpdGhVc2VyRGVmaW5lZENoaWxkcmVuW2tleV0sXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiB7IFtuZXdLZXldOiBuZXdWYWx1ZSB9O1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -30,7 +30,7 @@ class Architecture {
|
|
|
30
30
|
}
|
|
31
31
|
exports.Architecture = Architecture;
|
|
32
32
|
_a = JSII_RTTI_SYMBOL_1;
|
|
33
|
-
Architecture[_a] = { fqn: "terraconstructs.aws.compute.Architecture", version: "0.
|
|
33
|
+
Architecture[_a] = { fqn: "terraconstructs.aws.compute.Architecture", version: "0.1.1" };
|
|
34
34
|
/**
|
|
35
35
|
* 64 bit architecture with x86 instruction set.
|
|
36
36
|
*/
|
|
@@ -72,7 +72,7 @@ class InstanceRequireImdsv2Aspect extends RequireImdsv2Aspect {
|
|
|
72
72
|
}
|
|
73
73
|
exports.InstanceRequireImdsv2Aspect = InstanceRequireImdsv2Aspect;
|
|
74
74
|
_a = JSII_RTTI_SYMBOL_1;
|
|
75
|
-
InstanceRequireImdsv2Aspect[_a] = { fqn: "terraconstructs.aws.compute.InstanceRequireImdsv2Aspect", version: "0.
|
|
75
|
+
InstanceRequireImdsv2Aspect[_a] = { fqn: "terraconstructs.aws.compute.InstanceRequireImdsv2Aspect", version: "0.1.1" };
|
|
76
76
|
/**
|
|
77
77
|
* Aspect that applies IMDS configuration on EC2 Launch Template constructs.
|
|
78
78
|
*
|
|
@@ -102,5 +102,5 @@ class LaunchTemplateRequireImdsv2Aspect extends RequireImdsv2Aspect {
|
|
|
102
102
|
}
|
|
103
103
|
exports.LaunchTemplateRequireImdsv2Aspect = LaunchTemplateRequireImdsv2Aspect;
|
|
104
104
|
_b = JSII_RTTI_SYMBOL_1;
|
|
105
|
-
LaunchTemplateRequireImdsv2Aspect[_b] = { fqn: "terraconstructs.aws.compute.LaunchTemplateRequireImdsv2Aspect", version: "0.
|
|
105
|
+
LaunchTemplateRequireImdsv2Aspect[_b] = { fqn: "terraconstructs.aws.compute.LaunchTemplateRequireImdsv2Aspect", version: "0.1.1" };
|
|
106
106
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZS1pbWRzdjItYXNwZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL2FzcGVjdHMvcmVxdWlyZS1pbWRzdjItYXNwZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsaUhBQWlIO0FBQ2pILHNEQUFxRDtBQUNyRCxpQ0FBNkM7QUFFN0MsK0NBQTJDO0FBQzNDLDBDQUF1QztBQUN2Qyx3REFBb0Q7QUFjcEQ7O0dBRUc7QUFDSCxNQUFlLG1CQUFtQjtJQUdoQyxZQUFZLEtBQWdDO1FBQzFDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLEVBQUUsZ0JBQWdCLElBQUksS0FBSyxDQUFDO0lBQzNELENBQUM7SUFJRDs7Ozs7T0FLRztJQUNPLElBQUksQ0FBQyxJQUFnQixFQUFFLE9BQWU7UUFDOUMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbkMsd0RBQXdEO1lBQ3hELG1CQUFXLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FDN0IsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLG1CQUFtQixJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxPQUFPLEVBQUUsQ0FDekUsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFtQkQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBYSwyQkFBNEIsU0FBUSxtQkFBbUI7SUFHbEUsWUFBWSxLQUF3QztRQUNsRCxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsNkJBQTZCO1lBQ2hDLEtBQUssRUFBRSw2QkFBNkIsSUFBSSxLQUFLLENBQUM7SUFDbEQsQ0FBQztJQUVELEtBQUssQ0FBQyxJQUFnQjtRQUNwQixJQUFJLENBQUMsQ0FBQyxJQUFJLFlBQVksbUJBQVEsQ0FBQyxFQUFFLENBQUM7WUFDaEMsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDcEQsSUFBSSxDQUFDLElBQUksQ0FDUCxJQUFJLEVBQ0osNEZBQTRGLENBQzdGLENBQUM7WUFDRixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sRUFBRSxHQUFHLElBQUksNkJBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQ25FLGVBQWUsRUFBRTtnQkFDZixVQUFVLEVBQUUsVUFBVTthQUN2QjtTQUNGLENBQUMsQ0FBQztRQUNILEVBQUUsQ0FBQyxJQUFJLEdBQUcsb0JBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztZQUM5QixJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUk7WUFDYixPQUFPLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUU7U0FDckMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVTLElBQUksQ0FBQyxJQUFnQixFQUFFLE9BQWU7UUFDOUMsSUFBSSxJQUFJLENBQUMsNkJBQTZCLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDaEQsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDNUIsQ0FBQztJQUNILENBQUM7O0FBckNILGtFQXNDQzs7O0FBUUQ7Ozs7O0dBS0c7QUFDSCxNQUFhLGlDQUFrQyxTQUFRLG1CQUFtQjtJQUN4RSxZQUFZLEtBQThDO1FBQ3hELEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNmLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBZ0I7UUFDcEIsSUFBSSxDQUFDLENBQUMsSUFBSSxZQUFZLGdDQUFjLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQy9CLFVBQVUsQ0FDc0IsQ0FBQztRQUNuQyxNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7UUFDaEQsbUVBQW1FO1FBQ25FLG9EQUFvRDtRQUNwRCwyRUFBMkU7UUFDM0UsWUFBWTtRQUNaLElBQUk7UUFFSixFQUFFLENBQUMsa0JBQWtCLENBQUM7WUFDcEIsR0FBRyxlQUFlO1lBQ2xCLFVBQVUsRUFBRSxVQUFVO1NBQ3ZCLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBeEJILDhFQXlCQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE3NS4xL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1lYzIvbGliL2FzcGVjdHMvcmVxdWlyZS1pbWRzdjItYXNwZWN0LnRzXG5pbXBvcnQgeyBsYXVuY2hUZW1wbGF0ZSB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBJQXNwZWN0LCBBbm5vdGF0aW9ucyB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgSUNvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBd3NTdGFjayB9IGZyb20gXCIuLi8uLi9hd3Mtc3RhY2tcIjtcbmltcG9ydCB7IEluc3RhbmNlIH0gZnJvbSBcIi4uL2luc3RhbmNlXCI7XG5pbXBvcnQgeyBMYXVuY2hUZW1wbGF0ZSB9IGZyb20gXCIuLi9sYXVuY2gtdGVtcGxhdGVcIjtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBgUmVxdWlyZUltZHN2MkFzcGVjdGAuXG4gKi9cbmludGVyZmFjZSBSZXF1aXJlSW1kc3YyQXNwZWN0UHJvcHMge1xuICAvKipcbiAgICogV2hldGhlciB3YXJuaW5nIGFubm90YXRpb25zIGZyb20gdGhpcyBBc3BlY3Qgc2hvdWxkIGJlIHN1cHByZXNzZWQgb3Igbm90LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzdXBwcmVzc1dhcm5pbmdzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBBc3BlY3QgdGhhdCBtYWtlcyBJTURTdjIgcmVxdWlyZWQuXG4gKi9cbmFic3RyYWN0IGNsYXNzIFJlcXVpcmVJbWRzdjJBc3BlY3QgaW1wbGVtZW50cyBJQXNwZWN0IHtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHN1cHByZXNzV2FybmluZ3M6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IocHJvcHM/OiBSZXF1aXJlSW1kc3YyQXNwZWN0UHJvcHMpIHtcbiAgICB0aGlzLnN1cHByZXNzV2FybmluZ3MgPSBwcm9wcz8uc3VwcHJlc3NXYXJuaW5ncyA/PyBmYWxzZTtcbiAgfVxuXG4gIGFic3RyYWN0IHZpc2l0KG5vZGU6IElDb25zdHJ1Y3QpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBBZGRzIGEgd2FybmluZyBhbm5vdGF0aW9uIHRvIGEgbm9kZSwgdW5sZXNzIGBzdXBwcmVzc1dhcm5pbmdzYCBpcyB0cnVlLlxuICAgKlxuICAgKiBAcGFyYW0gbm9kZSBUaGUgc2NvcGUgdG8gYWRkIHRoZSB3YXJuaW5nIHRvLlxuICAgKiBAcGFyYW0gbWVzc2FnZSBUaGUgd2FybmluZyBtZXNzYWdlLlxuICAgKi9cbiAgcHJvdGVjdGVkIHdhcm4obm9kZTogSUNvbnN0cnVjdCwgbWVzc2FnZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuc3VwcHJlc3NXYXJuaW5ncyAhPT0gdHJ1ZSkge1xuICAgICAgLy8gYEBhd3MtY2RrL2F3cy1lYzI6aW1kc3YyJHtSZXF1aXJlSW1kc3YyQXNwZWN0Lm5hbWV9YCxcbiAgICAgIEFubm90YXRpb25zLm9mKG5vZGUpLmFkZFdhcm5pbmcoXG4gICAgICAgIGAke1JlcXVpcmVJbWRzdjJBc3BlY3QubmFtZX0gZmFpbGVkIG9uIG5vZGUgJHtub2RlLm5vZGUuaWR9OiAke21lc3NhZ2V9YCxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYEluc3RhbmNlUmVxdWlyZUltZHN2MkFzcGVjdGAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5zdGFuY2VSZXF1aXJlSW1kc3YyQXNwZWN0UHJvcHNcbiAgZXh0ZW5kcyBSZXF1aXJlSW1kc3YyQXNwZWN0UHJvcHMge1xuICAvKipcbiAgICogV2hldGhlciB3YXJuaW5ncyB0aGF0IHdvdWxkIGJlIHJhaXNlZCB3aGVuIGFuIEluc3RhbmNlIGlzIGFzc29jaWF0ZWQgd2l0aCBhbiBleGlzdGluZyBMYXVuY2ggVGVtcGxhdGVcbiAgICogc2hvdWxkIGJlIHN1cHByZXNzZWQgb3Igbm90LlxuICAgKlxuICAgKiBZb3UgY2FuIHNldCB0aGlzIHRvIGB0cnVlYCBpZiBgTGF1bmNoVGVtcGxhdGVJbWRzQXNwZWN0YCBpcyBiZWluZyB1c2VkIGFsb25nc2lkZSB0aGlzIEFzcGVjdCB0b1xuICAgKiBzdXBwcmVzcyBmYWxzZS1wb3NpdGl2ZSB3YXJuaW5ncyBiZWNhdXNlIGFueSBMYXVuY2ggVGVtcGxhdGVzIGFzc29jaWF0ZWQgd2l0aCBJbnN0YW5jZXMgd2lsbCBzdGlsbCBiZSBjb3ZlcmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzdXBwcmVzc0xhdW5jaFRlbXBsYXRlV2FybmluZz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQXNwZWN0IHRoYXQgYXBwbGllcyBJTURTIGNvbmZpZ3VyYXRpb24gb24gRUMyIEluc3RhbmNlIGNvbnN0cnVjdHMuXG4gKlxuICogVGhpcyBhc3BlY3QgY29uZmlndXJlcyBJTURTIG9uIGFuIEVDMiBpbnN0YW5jZSBieSBjcmVhdGluZyBhIExhdW5jaCBUZW1wbGF0ZSB3aXRoIHRoZVxuICogSU1EUyBjb25maWd1cmF0aW9uIGFuZCBhc3NvY2lhdGluZyB0aGF0IExhdW5jaCBUZW1wbGF0ZSB3aXRoIHRoZSBpbnN0YW5jZS4gSWYgYW4gSW5zdGFuY2VcbiAqIGlzIGFscmVhZHkgYXNzb2NpYXRlZCB3aXRoIGEgTGF1bmNoIFRlbXBsYXRlLCBhIHdhcm5pbmcgd2lsbCAob3B0aW9uYWxseSkgYmUgYWRkZWQgdG8gdGhlXG4gKiBjb25zdHJ1Y3Qgbm9kZSBhbmQgaXQgd2lsbCBiZSBza2lwcGVkLlxuICpcbiAqIFRvIGNvdmVyIEluc3RhbmNlcyBhbHJlYWR5IGFzc29jaWF0ZWQgd2l0aCBMYXVuY2ggVGVtcGxhdGVzLCB1c2UgYExhdW5jaFRlbXBsYXRlSW1kc0FzcGVjdGAuXG4gKi9cbmV4cG9ydCBjbGFzcyBJbnN0YW5jZVJlcXVpcmVJbWRzdjJBc3BlY3QgZXh0ZW5kcyBSZXF1aXJlSW1kc3YyQXNwZWN0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBzdXBwcmVzc0xhdW5jaFRlbXBsYXRlV2FybmluZzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihwcm9wcz86IEluc3RhbmNlUmVxdWlyZUltZHN2MkFzcGVjdFByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICAgIHRoaXMuc3VwcHJlc3NMYXVuY2hUZW1wbGF0ZVdhcm5pbmcgPVxuICAgICAgcHJvcHM/LnN1cHByZXNzTGF1bmNoVGVtcGxhdGVXYXJuaW5nID8/IGZhbHNlO1xuICB9XG5cbiAgdmlzaXQobm9kZTogSUNvbnN0cnVjdCk6IHZvaWQge1xuICAgIGlmICghKG5vZGUgaW5zdGFuY2VvZiBJbnN0YW5jZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKG5vZGUuaW5zdGFuY2UubGF1bmNoVGVtcGxhdGVJbnB1dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLndhcm4oXG4gICAgICAgIG5vZGUsXG4gICAgICAgIFwiQ2Fubm90IHRvZ2dsZSBJTURTdjEgYmVjYXVzZSB0aGlzIEluc3RhbmNlIGlzIGFzc29jaWF0ZWQgd2l0aCBhbiBleGlzdGluZyBMYXVuY2ggVGVtcGxhdGUuXCIsXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGx0ID0gbmV3IGxhdW5jaFRlbXBsYXRlLkxhdW5jaFRlbXBsYXRlKG5vZGUsIFwiTGF1bmNoVGVtcGxhdGVcIiwge1xuICAgICAgbWV0YWRhdGFPcHRpb25zOiB7XG4gICAgICAgIGh0dHBUb2tlbnM6IFwicmVxdWlyZWRcIixcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgbHQubmFtZSA9IEF3c1N0YWNrLnVuaXF1ZUlkKGx0KTtcbiAgICBub2RlLmluc3RhbmNlLnB1dExhdW5jaFRlbXBsYXRlKHtcbiAgICAgIG5hbWU6IGx0Lm5hbWUsXG4gICAgICB2ZXJzaW9uOiBsdC5sYXRlc3RWZXJzaW9uLnRvU3RyaW5nKCksXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgd2Fybihub2RlOiBJQ29uc3RydWN0LCBtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5zdXBwcmVzc0xhdW5jaFRlbXBsYXRlV2FybmluZyAhPT0gdHJ1ZSkge1xuICAgICAgc3VwZXIud2Fybihub2RlLCBtZXNzYWdlKTtcbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBgTGF1bmNoVGVtcGxhdGVSZXF1aXJlSW1kc3YyQXNwZWN0YC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYXVuY2hUZW1wbGF0ZVJlcXVpcmVJbWRzdjJBc3BlY3RQcm9wc1xuICBleHRlbmRzIFJlcXVpcmVJbWRzdjJBc3BlY3RQcm9wcyB7fVxuXG4vKipcbiAqIEFzcGVjdCB0aGF0IGFwcGxpZXMgSU1EUyBjb25maWd1cmF0aW9uIG9uIEVDMiBMYXVuY2ggVGVtcGxhdGUgY29uc3RydWN0cy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL3Byb3ZpZGVycy9oYXNoaWNvcnAvYXdzLzUuNjguMC9kb2NzL3Jlc291cmNlcy9sYXVuY2hfdGVtcGxhdGUjbWV0YWRhdGEtb3B0aW9uc1xuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZWMyLWluc3RhbmNlLW1ldGFkYXRhLmh0bWxcbiAqL1xuZXhwb3J0IGNsYXNzIExhdW5jaFRlbXBsYXRlUmVxdWlyZUltZHN2MkFzcGVjdCBleHRlbmRzIFJlcXVpcmVJbWRzdjJBc3BlY3Qge1xuICBjb25zdHJ1Y3Rvcihwcm9wcz86IExhdW5jaFRlbXBsYXRlUmVxdWlyZUltZHN2MkFzcGVjdFByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuICB9XG5cbiAgdmlzaXQobm9kZTogSUNvbnN0cnVjdCk6IHZvaWQge1xuICAgIGlmICghKG5vZGUgaW5zdGFuY2VvZiBMYXVuY2hUZW1wbGF0ZSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBsdCA9IG5vZGUubm9kZS50cnlGaW5kQ2hpbGQoXG4gICAgICBcIlJlc291cmNlXCIsXG4gICAgKSBhcyBsYXVuY2hUZW1wbGF0ZS5MYXVuY2hUZW1wbGF0ZTtcbiAgICBjb25zdCBtZXRhZGF0YU9wdGlvbnMgPSBsdC5tZXRhZGF0YU9wdGlvbnNJbnB1dDtcbiAgICAvLyAvLyBtZXRhRGF0YU9wdGlvbnMgaXMgQ29tcGxleExpc3RPYmplY3QgYW5kIGNhbiBuZXZlciBiZSBhIHRva2VuXG4gICAgLy8gaWYgKFRva2VuaXphdGlvbi5pc1Jlc29sdmFibGUobWV0YWRhdGFPcHRpb25zKSkge1xuICAgIC8vICAgdGhpcy53YXJuKG5vZGUsIFwiTGF1bmNoVGVtcGxhdGVEYXRhLk1ldGFkYXRhT3B0aW9ucyBpcyBhIENESyB0b2tlbi5cIik7XG4gICAgLy8gICByZXR1cm47XG4gICAgLy8gfVxuXG4gICAgbHQucHV0TWV0YWRhdGFPcHRpb25zKHtcbiAgICAgIC4uLm1ldGFkYXRhT3B0aW9ucyxcbiAgICAgIGh0dHBUb2tlbnM6IFwicmVxdWlyZWRcIixcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import { AuthorizationType } from "./method";
|
|
3
|
+
import { IRestApi } from "./restapi";
|
|
4
|
+
import { AwsConstructBase, AwsConstructProps } from "../aws-construct";
|
|
5
|
+
/**
|
|
6
|
+
* Base class for all custom authorizers
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class Authorizer extends AwsConstructBase implements IAuthorizer {
|
|
9
|
+
/**
|
|
10
|
+
* Return whether the given object is an Authorizer.
|
|
11
|
+
*/
|
|
12
|
+
static isAuthorizer(x: any): x is Authorizer;
|
|
13
|
+
abstract readonly authorizerId: string;
|
|
14
|
+
readonly authorizationType?: AuthorizationType;
|
|
15
|
+
constructor(scope: Construct, id: string, props?: AwsConstructProps);
|
|
16
|
+
/**
|
|
17
|
+
* Called when the authorizer is used from a specific REST API.
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
abstract _attachToApi(restApi: IRestApi): void;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Represents an API Gateway authorizer.
|
|
24
|
+
*/
|
|
25
|
+
export interface IAuthorizer {
|
|
26
|
+
/**
|
|
27
|
+
* The authorizer ID.
|
|
28
|
+
* @attribute
|
|
29
|
+
*/
|
|
30
|
+
readonly authorizerId: string;
|
|
31
|
+
/**
|
|
32
|
+
* The authorization type of this authorizer.
|
|
33
|
+
*/
|
|
34
|
+
readonly authorizationType?: AuthorizationType;
|
|
35
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Authorizer = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const method_1 = require("./method");
|
|
7
|
+
const aws_construct_1 = require("../aws-construct");
|
|
8
|
+
const AUTHORIZER_SYMBOL = Symbol.for("terraconstructs/lib/aws/compute.Authorizer");
|
|
9
|
+
/**
|
|
10
|
+
* Base class for all custom authorizers
|
|
11
|
+
*/
|
|
12
|
+
class Authorizer extends aws_construct_1.AwsConstructBase {
|
|
13
|
+
/**
|
|
14
|
+
* Return whether the given object is an Authorizer.
|
|
15
|
+
*/
|
|
16
|
+
static isAuthorizer(x) {
|
|
17
|
+
return x !== null && typeof x === "object" && AUTHORIZER_SYMBOL in x;
|
|
18
|
+
}
|
|
19
|
+
constructor(scope, id, props) {
|
|
20
|
+
super(scope, id, props);
|
|
21
|
+
this.authorizationType = method_1.AuthorizationType.CUSTOM;
|
|
22
|
+
Object.defineProperty(this, AUTHORIZER_SYMBOL, { value: true });
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.Authorizer = Authorizer;
|
|
26
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
27
|
+
Authorizer[_a] = { fqn: "terraconstructs.aws.compute.Authorizer", version: "0.1.1" };
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9hdXRob3JpemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EscUNBQTZDO0FBRTdDLG9EQUF1RTtBQUV2RSxNQUFNLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQ2xDLDRDQUE0QyxDQUM3QyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFzQixVQUNwQixTQUFRLGdDQUFnQjtJQUd4Qjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBTTtRQUMvQixPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxJQUFJLGlCQUFpQixJQUFJLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBTUQsWUFBbUIsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBeUI7UUFDeEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFKVixzQkFBaUIsR0FDL0IsMEJBQWlCLENBQUMsTUFBTSxDQUFDO1FBS3pCLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbEUsQ0FBQzs7QUFuQkgsZ0NBMEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IEF1dGhvcml6YXRpb25UeXBlIH0gZnJvbSBcIi4vbWV0aG9kXCI7XG5pbXBvcnQgeyBJUmVzdEFwaSB9IGZyb20gXCIuL3Jlc3RhcGlcIjtcbmltcG9ydCB7IEF3c0NvbnN0cnVjdEJhc2UsIEF3c0NvbnN0cnVjdFByb3BzIH0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcblxuY29uc3QgQVVUSE9SSVpFUl9TWU1CT0wgPSBTeW1ib2wuZm9yKFxuICBcInRlcnJhY29uc3RydWN0cy9saWIvYXdzL2NvbXB1dGUuQXV0aG9yaXplclwiLFxuKTtcblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciBhbGwgY3VzdG9tIGF1dGhvcml6ZXJzXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBdXRob3JpemVyXG4gIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZVxuICBpbXBsZW1lbnRzIElBdXRob3JpemVyXG57XG4gIC8qKlxuICAgKiBSZXR1cm4gd2hldGhlciB0aGUgZ2l2ZW4gb2JqZWN0IGlzIGFuIEF1dGhvcml6ZXIuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzQXV0aG9yaXplcih4OiBhbnkpOiB4IGlzIEF1dGhvcml6ZXIge1xuICAgIHJldHVybiB4ICE9PSBudWxsICYmIHR5cGVvZiB4ID09PSBcIm9iamVjdFwiICYmIEFVVEhPUklaRVJfU1lNQk9MIGluIHg7XG4gIH1cblxuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgYXV0aG9yaXplcklkOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBhdXRob3JpemF0aW9uVHlwZT86IEF1dGhvcml6YXRpb25UeXBlID1cbiAgICBBdXRob3JpemF0aW9uVHlwZS5DVVNUT007XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzPzogQXdzQ29uc3RydWN0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBBVVRIT1JJWkVSX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgd2hlbiB0aGUgYXV0aG9yaXplciBpcyB1c2VkIGZyb20gYSBzcGVjaWZpYyBSRVNUIEFQSS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgYWJzdHJhY3QgX2F0dGFjaFRvQXBpKHJlc3RBcGk6IElSZXN0QXBpKTogdm9pZDtcbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIEFQSSBHYXRld2F5IGF1dGhvcml6ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUF1dGhvcml6ZXIge1xuICAvKipcbiAgICogVGhlIGF1dGhvcml6ZXIgSUQuXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGF1dGhvcml6ZXJJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYXV0aG9yaXphdGlvbiB0eXBlIG9mIHRoaXMgYXV0aG9yaXplci5cbiAgICovXG4gIHJlYWRvbmx5IGF1dGhvcml6YXRpb25UeXBlPzogQXV0aG9yaXphdGlvblR5cGU7XG59XG4iXX0=
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Represents an identity source.
|
|
3
|
+
*
|
|
4
|
+
* The source can be specified either as a literal value (e.g: `Auth`) which
|
|
5
|
+
* cannot be blank, or as an unresolved string token.
|
|
6
|
+
*/
|
|
7
|
+
export declare class IdentitySource {
|
|
8
|
+
/**
|
|
9
|
+
* Provides a properly formatted header identity source.
|
|
10
|
+
* @param headerName the name of the header the `IdentitySource` will represent.
|
|
11
|
+
*
|
|
12
|
+
* @returns a header identity source.
|
|
13
|
+
*/
|
|
14
|
+
static header(headerName: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* Provides a properly formatted query string identity source.
|
|
17
|
+
* @param queryString the name of the query string the `IdentitySource` will represent.
|
|
18
|
+
*
|
|
19
|
+
* @returns a query string identity source.
|
|
20
|
+
*/
|
|
21
|
+
static queryString(queryString: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Provides a properly formatted API Gateway stage variable identity source.
|
|
24
|
+
* @param stageVariable the name of the stage variable the `IdentitySource` will represent.
|
|
25
|
+
*
|
|
26
|
+
* @returns an API Gateway stage variable identity source.
|
|
27
|
+
*/
|
|
28
|
+
static stageVariable(stageVariable: string): string;
|
|
29
|
+
/**
|
|
30
|
+
* Provides a properly formatted request context identity source.
|
|
31
|
+
* @param context the name of the context variable the `IdentitySource` will represent.
|
|
32
|
+
*
|
|
33
|
+
* @returns a request context identity source.
|
|
34
|
+
*/
|
|
35
|
+
static context(context: string): string;
|
|
36
|
+
private static toString;
|
|
37
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.IdentitySource = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
// import { UnscopedValidationError } from '../../../core/lib/errors';
|
|
7
|
+
/**
|
|
8
|
+
* Represents an identity source.
|
|
9
|
+
*
|
|
10
|
+
* The source can be specified either as a literal value (e.g: `Auth`) which
|
|
11
|
+
* cannot be blank, or as an unresolved string token.
|
|
12
|
+
*/
|
|
13
|
+
class IdentitySource {
|
|
14
|
+
/**
|
|
15
|
+
* Provides a properly formatted header identity source.
|
|
16
|
+
* @param headerName the name of the header the `IdentitySource` will represent.
|
|
17
|
+
*
|
|
18
|
+
* @returns a header identity source.
|
|
19
|
+
*/
|
|
20
|
+
static header(headerName) {
|
|
21
|
+
return IdentitySource.toString(headerName, "method.request.header");
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Provides a properly formatted query string identity source.
|
|
25
|
+
* @param queryString the name of the query string the `IdentitySource` will represent.
|
|
26
|
+
*
|
|
27
|
+
* @returns a query string identity source.
|
|
28
|
+
*/
|
|
29
|
+
static queryString(queryString) {
|
|
30
|
+
return IdentitySource.toString(queryString, "method.request.querystring");
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Provides a properly formatted API Gateway stage variable identity source.
|
|
34
|
+
* @param stageVariable the name of the stage variable the `IdentitySource` will represent.
|
|
35
|
+
*
|
|
36
|
+
* @returns an API Gateway stage variable identity source.
|
|
37
|
+
*/
|
|
38
|
+
static stageVariable(stageVariable) {
|
|
39
|
+
return IdentitySource.toString(stageVariable, "stageVariables");
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Provides a properly formatted request context identity source.
|
|
43
|
+
* @param context the name of the context variable the `IdentitySource` will represent.
|
|
44
|
+
*
|
|
45
|
+
* @returns a request context identity source.
|
|
46
|
+
*/
|
|
47
|
+
static context(context) {
|
|
48
|
+
return IdentitySource.toString(context, "context");
|
|
49
|
+
}
|
|
50
|
+
static toString(source, type) {
|
|
51
|
+
if (!source.trim()) {
|
|
52
|
+
// throw new UnscopedValidationError(
|
|
53
|
+
throw new Error("IdentitySources must be a non-empty string.");
|
|
54
|
+
}
|
|
55
|
+
return `${type}.${source}`;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.IdentitySource = IdentitySource;
|
|
59
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
60
|
+
IdentitySource[_a] = { fqn: "terraconstructs.aws.compute.IdentitySource", version: "0.1.1" };
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpdHktc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL2F1dGhvcml6ZXJzL2lkZW50aXR5LXNvdXJjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNFQUFzRTtBQUV0RTs7Ozs7R0FLRztBQUNILE1BQWEsY0FBYztJQUN6Qjs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBa0I7UUFDckMsT0FBTyxjQUFjLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsV0FBbUI7UUFDM0MsT0FBTyxjQUFjLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxhQUFhLENBQUMsYUFBcUI7UUFDL0MsT0FBTyxjQUFjLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBZTtRQUNuQyxPQUFPLGNBQWMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQWMsRUFBRSxJQUFZO1FBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUNuQixxQ0FBcUM7WUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFFRCxPQUFPLEdBQUcsSUFBSSxJQUFJLE1BQU0sRUFBRSxDQUFDO0lBQzdCLENBQUM7O0FBaERILHdDQWlEQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGltcG9ydCB7IFVuc2NvcGVkVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9saWIvZXJyb3JzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGlkZW50aXR5IHNvdXJjZS5cbiAqXG4gKiBUaGUgc291cmNlIGNhbiBiZSBzcGVjaWZpZWQgZWl0aGVyIGFzIGEgbGl0ZXJhbCB2YWx1ZSAoZS5nOiBgQXV0aGApIHdoaWNoXG4gKiBjYW5ub3QgYmUgYmxhbmssIG9yIGFzIGFuIHVucmVzb2x2ZWQgc3RyaW5nIHRva2VuLlxuICovXG5leHBvcnQgY2xhc3MgSWRlbnRpdHlTb3VyY2Uge1xuICAvKipcbiAgICogUHJvdmlkZXMgYSBwcm9wZXJseSBmb3JtYXR0ZWQgaGVhZGVyIGlkZW50aXR5IHNvdXJjZS5cbiAgICogQHBhcmFtIGhlYWRlck5hbWUgdGhlIG5hbWUgb2YgdGhlIGhlYWRlciB0aGUgYElkZW50aXR5U291cmNlYCB3aWxsIHJlcHJlc2VudC5cbiAgICpcbiAgICogQHJldHVybnMgYSBoZWFkZXIgaWRlbnRpdHkgc291cmNlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBoZWFkZXIoaGVhZGVyTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSWRlbnRpdHlTb3VyY2UudG9TdHJpbmcoaGVhZGVyTmFtZSwgXCJtZXRob2QucmVxdWVzdC5oZWFkZXJcIik7XG4gIH1cblxuICAvKipcbiAgICogUHJvdmlkZXMgYSBwcm9wZXJseSBmb3JtYXR0ZWQgcXVlcnkgc3RyaW5nIGlkZW50aXR5IHNvdXJjZS5cbiAgICogQHBhcmFtIHF1ZXJ5U3RyaW5nIHRoZSBuYW1lIG9mIHRoZSBxdWVyeSBzdHJpbmcgdGhlIGBJZGVudGl0eVNvdXJjZWAgd2lsbCByZXByZXNlbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIGEgcXVlcnkgc3RyaW5nIGlkZW50aXR5IHNvdXJjZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcXVlcnlTdHJpbmcocXVlcnlTdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIElkZW50aXR5U291cmNlLnRvU3RyaW5nKHF1ZXJ5U3RyaW5nLCBcIm1ldGhvZC5yZXF1ZXN0LnF1ZXJ5c3RyaW5nXCIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVzIGEgcHJvcGVybHkgZm9ybWF0dGVkIEFQSSBHYXRld2F5IHN0YWdlIHZhcmlhYmxlIGlkZW50aXR5IHNvdXJjZS5cbiAgICogQHBhcmFtIHN0YWdlVmFyaWFibGUgdGhlIG5hbWUgb2YgdGhlIHN0YWdlIHZhcmlhYmxlIHRoZSBgSWRlbnRpdHlTb3VyY2VgIHdpbGwgcmVwcmVzZW50LlxuICAgKlxuICAgKiBAcmV0dXJucyBhbiBBUEkgR2F0ZXdheSBzdGFnZSB2YXJpYWJsZSBpZGVudGl0eSBzb3VyY2UuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHN0YWdlVmFyaWFibGUoc3RhZ2VWYXJpYWJsZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSWRlbnRpdHlTb3VyY2UudG9TdHJpbmcoc3RhZ2VWYXJpYWJsZSwgXCJzdGFnZVZhcmlhYmxlc1wiKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcm92aWRlcyBhIHByb3Blcmx5IGZvcm1hdHRlZCByZXF1ZXN0IGNvbnRleHQgaWRlbnRpdHkgc291cmNlLlxuICAgKiBAcGFyYW0gY29udGV4dCB0aGUgbmFtZSBvZiB0aGUgY29udGV4dCB2YXJpYWJsZSB0aGUgYElkZW50aXR5U291cmNlYCB3aWxsIHJlcHJlc2VudC5cbiAgICpcbiAgICogQHJldHVybnMgYSByZXF1ZXN0IGNvbnRleHQgaWRlbnRpdHkgc291cmNlLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjb250ZXh0KGNvbnRleHQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIElkZW50aXR5U291cmNlLnRvU3RyaW5nKGNvbnRleHQsIFwiY29udGV4dFwiKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHRvU3RyaW5nKHNvdXJjZTogc3RyaW5nLCB0eXBlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXNvdXJjZS50cmltKCkpIHtcbiAgICAgIC8vIHRocm93IG5ldyBVbnNjb3BlZFZhbGlkYXRpb25FcnJvcihcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIklkZW50aXR5U291cmNlcyBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZy5cIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGAke3R5cGV9LiR7c291cmNlfWA7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./lambda"), exports);
|
|
18
|
+
__exportStar(require("./identity-source"), exports);
|
|
19
|
+
// export * from "./cognito";
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvYXV0aG9yaXplcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF5QjtBQUN6QixvREFBa0M7QUFDbEMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vbGFtYmRhXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pZGVudGl0eS1zb3VyY2VcIjtcbi8vIGV4cG9ydCAqIGZyb20gXCIuL2NvZ25pdG9cIjtcbiJdfQ==
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { apiGatewayAuthorizer } from "@cdktf/provider-aws";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
import * as lambda from "..";
|
|
4
|
+
import { Duration } from "../../../duration";
|
|
5
|
+
import { AwsConstructProps } from "../../aws-construct";
|
|
6
|
+
import * as iam from "../../iam";
|
|
7
|
+
import { Authorizer, IAuthorizer } from "../authorizer";
|
|
8
|
+
import { IRestApi } from "../restapi";
|
|
9
|
+
/**
|
|
10
|
+
* Base properties for all lambda authorizers
|
|
11
|
+
*/
|
|
12
|
+
export interface LambdaAuthorizerProps extends AwsConstructProps {
|
|
13
|
+
/**
|
|
14
|
+
* An optional human friendly name for the authorizer. Note that, this is not the primary identifier of the authorizer.
|
|
15
|
+
*
|
|
16
|
+
* @default - the unique construct ID (friendlyName)
|
|
17
|
+
*/
|
|
18
|
+
readonly authorizerName?: string;
|
|
19
|
+
/**
|
|
20
|
+
* The handler for the authorizer lambda function.
|
|
21
|
+
*/
|
|
22
|
+
readonly handler: lambda.IFunction;
|
|
23
|
+
/**
|
|
24
|
+
* How long APIGateway should cache the results. Max 1 hour.
|
|
25
|
+
* Disable caching by setting this to 0.
|
|
26
|
+
*
|
|
27
|
+
* @default - Duration.minutes(5)
|
|
28
|
+
*/
|
|
29
|
+
readonly resultsCacheTtl?: Duration;
|
|
30
|
+
/**
|
|
31
|
+
* An optional IAM role for APIGateway to assume before calling the Lambda-based authorizer. The IAM role must be
|
|
32
|
+
* assumable by 'apigateway.amazonaws.com'.
|
|
33
|
+
*
|
|
34
|
+
* @default - A resource policy is added to the Lambda function allowing apigateway.amazonaws.com to invoke the function.
|
|
35
|
+
*/
|
|
36
|
+
readonly assumeRole?: iam.IRole;
|
|
37
|
+
}
|
|
38
|
+
declare abstract class LambdaAuthorizer extends Authorizer implements IAuthorizer {
|
|
39
|
+
/**
|
|
40
|
+
* The id of the authorizer.
|
|
41
|
+
* @attribute
|
|
42
|
+
*/
|
|
43
|
+
abstract readonly authorizerId: string;
|
|
44
|
+
/**
|
|
45
|
+
* The ARN of the authorizer to be used in permission policies, such as IAM and resource-based grants.
|
|
46
|
+
*/
|
|
47
|
+
abstract readonly authorizerArn: string;
|
|
48
|
+
/**
|
|
49
|
+
* The Lambda function handler that this authorizer uses.
|
|
50
|
+
*/
|
|
51
|
+
protected readonly handler: lambda.IFunction;
|
|
52
|
+
/**
|
|
53
|
+
* The IAM role that the API Gateway service assumes while invoking the Lambda function.
|
|
54
|
+
*/
|
|
55
|
+
protected readonly role?: iam.IRole;
|
|
56
|
+
protected restApiId?: string;
|
|
57
|
+
protected abstract readonly authorizerProps: apiGatewayAuthorizer.ApiGatewayAuthorizerConfig;
|
|
58
|
+
protected constructor(scope: Construct, id: string, props: LambdaAuthorizerProps);
|
|
59
|
+
/**
|
|
60
|
+
* Attaches this authorizer to a specific REST API.
|
|
61
|
+
* @internal
|
|
62
|
+
*/
|
|
63
|
+
_attachToApi(restApi: IRestApi): void;
|
|
64
|
+
/**
|
|
65
|
+
* Sets up the permissions necessary for the API Gateway service to invoke the Lambda function.
|
|
66
|
+
*/
|
|
67
|
+
protected setupPermissions(): void;
|
|
68
|
+
private addDefaultPermissionRole;
|
|
69
|
+
private addLambdaInvokePermission;
|
|
70
|
+
protected lazyRestApiId(): string;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Properties for TokenAuthorizer
|
|
74
|
+
*/
|
|
75
|
+
export interface TokenAuthorizerProps extends LambdaAuthorizerProps {
|
|
76
|
+
/**
|
|
77
|
+
* An optional regex to be matched against the authorization token. When matched the authorizer lambda is invoked,
|
|
78
|
+
* otherwise a 401 Unauthorized is returned to the client.
|
|
79
|
+
*
|
|
80
|
+
* @default - no regex filter will be applied.
|
|
81
|
+
*/
|
|
82
|
+
readonly validationRegex?: string;
|
|
83
|
+
/**
|
|
84
|
+
* The request header mapping expression for the bearer token. This is typically passed as part of the header, in which case
|
|
85
|
+
* this should be `method.request.header.Authorizer` where `Authorizer` is the header containing the bearer token.
|
|
86
|
+
*
|
|
87
|
+
* @see https://docs.aws.amazon.com/apigateway/latest/api/API_CreateAuthorizer.html#apigw-CreateAuthorizer-request-identitySource
|
|
88
|
+
* @default `method.request.header.Authorization`
|
|
89
|
+
*/
|
|
90
|
+
readonly identitySource?: string;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Token based lambda authorizer that recognizes the caller's identity as a bearer token,
|
|
94
|
+
* such as a JSON Web Token (JWT) or an OAuth token.
|
|
95
|
+
* Based on the token, authorization is performed by a lambda function.
|
|
96
|
+
*
|
|
97
|
+
* @resource aws_api_gateway_authorizer
|
|
98
|
+
*/
|
|
99
|
+
export declare class TokenAuthorizer extends LambdaAuthorizer {
|
|
100
|
+
readonly authorizerId: string;
|
|
101
|
+
readonly authorizerArn: string;
|
|
102
|
+
private readonly resource;
|
|
103
|
+
protected readonly authorizerProps: apiGatewayAuthorizer.ApiGatewayAuthorizerConfig;
|
|
104
|
+
constructor(scope: Construct, id: string, props: TokenAuthorizerProps);
|
|
105
|
+
get outputs(): Record<string, any>;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Properties for RequestAuthorizer
|
|
109
|
+
*/
|
|
110
|
+
export interface RequestAuthorizerProps extends LambdaAuthorizerProps {
|
|
111
|
+
/**
|
|
112
|
+
* An array of request header mapping expressions for identities. Supported parameter types are
|
|
113
|
+
* Header, Query String, Stage Variable, and Context. For instance, extracting an authorization
|
|
114
|
+
* token from a header would use the identity source `method.request.header.Authorization`.
|
|
115
|
+
*
|
|
116
|
+
* Note: API Gateway uses the specified identity sources as the request authorizer caching key. When caching is
|
|
117
|
+
* enabled, API Gateway calls the authorizer's Lambda function only after successfully verifying that all the
|
|
118
|
+
* specified identity sources are present at runtime. If a specified identify source is missing, null, or empty,
|
|
119
|
+
* API Gateway returns a 401 Unauthorized response without calling the authorizer Lambda function.
|
|
120
|
+
*
|
|
121
|
+
* @see https://docs.aws.amazon.com/apigateway/latest/api/API_CreateAuthorizer.html#apigw-CreateAuthorizer-request-identitySource
|
|
122
|
+
*/
|
|
123
|
+
readonly identitySources: string[];
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Request-based lambda authorizer that recognizes the caller's identity via request parameters,
|
|
127
|
+
* such as headers, paths, query strings, stage variables, or context variables.
|
|
128
|
+
* Based on the request, authorization is performed by a lambda function.
|
|
129
|
+
*
|
|
130
|
+
* @resource aws_api_gateway_authorizer
|
|
131
|
+
*/
|
|
132
|
+
export declare class RequestAuthorizer extends LambdaAuthorizer {
|
|
133
|
+
readonly authorizerId: string;
|
|
134
|
+
readonly authorizerArn: string;
|
|
135
|
+
private readonly resource;
|
|
136
|
+
protected readonly authorizerProps: apiGatewayAuthorizer.ApiGatewayAuthorizerConfig;
|
|
137
|
+
constructor(scope: Construct, id: string, props: RequestAuthorizerProps);
|
|
138
|
+
get outputs(): Record<string, any>;
|
|
139
|
+
}
|
|
140
|
+
export {};
|