terraconstructs 0.0.11 → 0.0.13
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 +105205 -35113
- package/lib/aws/arn.js +1 -1
- package/lib/aws/aws-construct.d.ts +1 -1
- package/lib/aws/aws-construct.js +28 -2
- package/lib/aws/aws-stack.d.ts +2 -4
- package/lib/aws/aws-stack.js +21 -8
- package/lib/aws/aws-tags.d.ts +58 -0
- package/lib/aws/aws-tags.js +77 -0
- package/lib/aws/cloudwatch/actions/ec2.js +1 -1
- package/lib/aws/cloudwatch/actions/lambda.js +1 -1
- 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.d.ts +1 -1
- package/lib/aws/cloudwatch/metric-filter.js +4 -4
- 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/private/env-tokens.js +5 -6
- package/lib/aws/cloudwatch/private/metric-util.js +4 -5
- package/lib/aws/cloudwatch/private/object.js +2 -3
- package/lib/aws/cloudwatch/private/rendering.js +3 -3
- package/lib/aws/cloudwatch/private/statistic.js +6 -7
- package/lib/aws/cloudwatch/query-definition.js +2 -2
- package/lib/aws/cloudwatch/stats.js +1 -1
- package/lib/aws/cloudwatch/subscription-filter.d.ts +1 -1
- package/lib/aws/cloudwatch/subscription-filter.js +4 -4
- package/lib/aws/cloudwatch/text.js +1 -1
- package/lib/aws/cloudwatch/variable.js +3 -3
- package/lib/aws/cloudwatch/widget.d.ts +1 -1
- package/lib/aws/cloudwatch/widget.js +4 -4
- package/lib/aws/compute/activity.js +3 -2
- package/lib/aws/compute/alb/application-listener-action.d.ts +334 -0
- package/lib/aws/compute/alb/application-listener-action.js +281 -0
- package/lib/aws/compute/alb/application-listener-certificate.d.ts +35 -0
- package/lib/aws/compute/alb/application-listener-certificate.js +35 -0
- package/lib/aws/compute/alb/application-listener-rule.d.ts +233 -0
- package/lib/aws/compute/alb/application-listener-rule.js +220 -0
- package/lib/aws/compute/alb/application-listener.d.ts +574 -0
- package/lib/aws/compute/alb/application-listener.js +538 -0
- package/lib/aws/compute/alb/application-load-balancer.d.ts +715 -0
- package/lib/aws/compute/alb/application-load-balancer.js +780 -0
- package/lib/aws/compute/alb/application-target-group.d.ts +339 -0
- package/lib/aws/compute/alb/application-target-group.js +427 -0
- package/lib/aws/compute/alb/conditions.d.ts +61 -0
- package/lib/aws/compute/alb/conditions.js +164 -0
- package/lib/aws/compute/alb/trust-store-revocation.d.ts +59 -0
- package/lib/aws/compute/alb/trust-store-revocation.js +46 -0
- package/lib/aws/compute/alb/trust-store.d.ts +86 -0
- package/lib/aws/compute/alb/trust-store.js +79 -0
- package/lib/aws/compute/architecture.js +1 -1
- package/lib/aws/compute/aspects/require-imdsv2-aspect.d.ts +75 -0
- package/lib/aws/compute/aspects/require-imdsv2-aspect.js +106 -0
- package/lib/aws/compute/bastion-host.d.ts +172 -0
- package/lib/aws/compute/bastion-host.js +114 -0
- package/lib/aws/compute/chain.js +1 -1
- package/lib/aws/compute/cidr-splits.d.ts +49 -0
- package/lib/aws/compute/cidr-splits.js +59 -0
- package/lib/aws/compute/client-vpn-authorization-rule.d.ts +43 -0
- package/lib/aws/compute/client-vpn-authorization-rule.js +30 -0
- package/lib/aws/compute/client-vpn-endpoint-types.d.ts +62 -0
- package/lib/aws/compute/client-vpn-endpoint-types.js +25 -0
- package/lib/aws/compute/client-vpn-endpoint.d.ts +239 -0
- package/lib/aws/compute/client-vpn-endpoint.js +259 -0
- package/lib/aws/compute/client-vpn-route.d.ts +67 -0
- package/lib/aws/compute/client-vpn-route.js +57 -0
- package/lib/aws/compute/condition.js +1 -1
- package/lib/aws/compute/connections.d.ts +137 -0
- package/lib/aws/compute/connections.js +208 -0
- package/lib/aws/compute/ec2-augmentations.generated.d.ts +53 -0
- package/lib/aws/compute/ec2-augmentations.generated.js +35 -0
- package/lib/aws/compute/ec2-canned-metrics.generated.d.ts +555 -0
- package/lib/aws/compute/ec2-canned-metrics.generated.js +681 -0
- package/lib/aws/compute/ec2-util-v2.d.ts +141 -0
- package/lib/aws/compute/ec2-util-v2.js +286 -0
- package/lib/aws/compute/ec2-util.d.ts +52 -0
- package/lib/aws/compute/ec2-util.js +138 -0
- package/lib/aws/compute/elasticloadbalancing-canned-metrics.generated.d.ts +176 -0
- package/lib/aws/compute/elasticloadbalancing-canned-metrics.generated.js +119 -0
- package/lib/aws/compute/elasticloadbalancingv2-canned-metrics.generated.d.ts +860 -0
- package/lib/aws/compute/elasticloadbalancingv2-canned-metrics.generated.js +597 -0
- package/lib/aws/compute/event-invoke-config.js +1 -1
- package/lib/aws/compute/event-source-filter.js +2 -2
- package/lib/aws/compute/event-source-mapping.js +1 -1
- 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 +1 -1
- package/lib/aws/compute/fields.js +4 -4
- package/lib/aws/compute/function-alias.js +1 -1
- package/lib/aws/compute/function-base.js +2 -2
- 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.js +1 -1
- package/lib/aws/compute/function-url.js +1 -1
- package/lib/aws/compute/function-vpc-config.generated.d.ts +3 -3
- package/lib/aws/compute/function-vpc-config.generated.js +1 -1
- package/lib/aws/compute/function.d.ts +1 -1
- package/lib/aws/compute/function.js +5 -5
- package/lib/aws/compute/index-alpha.d.ts +5 -0
- package/lib/aws/compute/index-alpha.js +22 -0
- package/lib/aws/compute/index.d.ts +60 -0
- package/lib/aws/compute/index.js +70 -2
- package/lib/aws/compute/instance-types.d.ts +1354 -0
- package/lib/aws/compute/instance-types.js +1683 -0
- package/lib/aws/compute/instance.d.ts +436 -0
- package/lib/aws/compute/instance.js +262 -0
- package/lib/aws/compute/ip-addresses.d.ts +249 -0
- package/lib/aws/compute/ip-addresses.js +248 -0
- package/lib/aws/compute/ipam.d.ts +309 -0
- package/lib/aws/compute/ipam.js +306 -0
- package/lib/aws/compute/key-pair.d.ts +178 -0
- package/lib/aws/compute/key-pair.js +194 -0
- package/lib/aws/compute/lambda-augmentations.generated.d.ts +65 -0
- package/lib/aws/compute/lambda-augmentations.generated.js +41 -0
- package/lib/aws/compute/lambda-canned-metrics.generated.d.ts +316 -0
- package/lib/aws/compute/lambda-canned-metrics.generated.js +119 -0
- package/lib/aws/compute/launch-template.d.ts +540 -0
- package/lib/aws/compute/launch-template.js +468 -0
- package/lib/aws/compute/lb-shared/access-logs-accounts.d.ts +7 -0
- package/lib/aws/compute/lb-shared/access-logs-accounts.js +46 -0
- package/lib/aws/compute/lb-shared/base-listener.d.ts +113 -0
- package/lib/aws/compute/lb-shared/base-listener.js +181 -0
- package/lib/aws/compute/lb-shared/base-load-balancer.d.ts +212 -0
- package/lib/aws/compute/lb-shared/base-load-balancer.js +290 -0
- package/lib/aws/compute/lb-shared/base-target-group.d.ts +382 -0
- package/lib/aws/compute/lb-shared/base-target-group.js +364 -0
- package/lib/aws/compute/lb-shared/enums.d.ts +282 -0
- package/lib/aws/compute/lb-shared/enums.js +301 -0
- package/lib/aws/compute/lb-shared/grid-lookup-types.d.ts +42 -0
- package/lib/aws/compute/lb-shared/grid-lookup-types.js +53 -0
- package/lib/aws/compute/lb-shared/imported.d.ts +24 -0
- package/lib/aws/compute/lb-shared/imported.js +27 -0
- package/lib/aws/compute/lb-shared/lb-listener-config.generated.d.ts +194 -0
- package/lib/aws/compute/lb-shared/lb-listener-config.generated.js +3 -0
- package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.d.ts +56 -0
- package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.js +3 -0
- package/lib/aws/compute/lb-shared/listener-action.d.ts +14 -0
- package/lib/aws/compute/lb-shared/listener-action.js +4 -0
- package/lib/aws/compute/lb-shared/listener-certificate.d.ts +28 -0
- package/lib/aws/compute/lb-shared/listener-certificate.js +29 -0
- package/lib/aws/compute/lb-shared/load-balancer-targets.d.ts +93 -0
- package/lib/aws/compute/lb-shared/load-balancer-targets.js +127 -0
- package/lib/aws/compute/lb-shared/util.d.ts +113 -0
- package/lib/aws/compute/lb-shared/util.js +264 -0
- package/lib/aws/compute/lb-targets/alb-target.d.ts +67 -0
- package/lib/aws/compute/lb-targets/alb-target.js +100 -0
- package/lib/aws/compute/lb-targets/index.d.ts +4 -0
- package/lib/aws/compute/lb-targets/index.js +22 -0
- package/lib/aws/compute/lb-targets/instance-target.d.ts +42 -0
- package/lib/aws/compute/lb-targets/instance-target.js +67 -0
- package/lib/aws/compute/lb-targets/ip-target.d.ts +55 -0
- package/lib/aws/compute/lb-targets/ip-target.js +79 -0
- package/lib/aws/compute/lb-targets/lambda-target.d.ts +25 -0
- package/lib/aws/compute/lb-targets/lambda-target.js +50 -0
- package/lib/aws/compute/load-balancer.d.ts +336 -0
- package/lib/aws/compute/load-balancer.js +287 -0
- package/lib/aws/compute/machine-image/amazon-linux-2022.d.ts +63 -0
- package/lib/aws/compute/machine-image/amazon-linux-2022.js +84 -0
- package/lib/aws/compute/machine-image/amazon-linux-2023.d.ts +63 -0
- package/lib/aws/compute/machine-image/amazon-linux-2023.js +84 -0
- package/lib/aws/compute/machine-image/amazon-linux2.d.ts +76 -0
- package/lib/aws/compute/machine-image/amazon-linux2.js +87 -0
- package/lib/aws/compute/machine-image/common.d.ts +181 -0
- package/lib/aws/compute/machine-image/common.js +122 -0
- package/lib/aws/compute/machine-image/index.d.ts +5 -0
- package/lib/aws/compute/machine-image/index.js +22 -0
- package/lib/aws/compute/machine-image/machine-image.d.ts +463 -0
- package/lib/aws/compute/machine-image/machine-image.js +566 -0
- package/lib/aws/compute/machine-image/utils.d.ts +2 -0
- package/lib/aws/compute/machine-image/utils.js +17 -0
- package/lib/aws/compute/nat.d.ts +325 -0
- package/lib/aws/compute/nat.js +455 -0
- package/lib/aws/compute/network-acl-types.d.ts +152 -0
- package/lib/aws/compute/network-acl-types.js +156 -0
- package/lib/aws/compute/network-acl.d.ts +285 -0
- package/lib/aws/compute/network-acl.js +207 -0
- package/lib/aws/compute/network-util.d.ts +116 -0
- package/lib/aws/compute/network-util.js +241 -0
- package/lib/aws/compute/nlb/network-listener-action.d.ts +92 -0
- package/lib/aws/compute/nlb/network-listener-action.js +146 -0
- package/lib/aws/compute/nlb/network-listener-certificate.d.ts +24 -0
- package/lib/aws/compute/nlb/network-listener-certificate.js +25 -0
- package/lib/aws/compute/nlb/network-listener.d.ts +248 -0
- package/lib/aws/compute/nlb/network-listener.js +217 -0
- package/lib/aws/compute/nlb/network-load-balancer.d.ts +315 -0
- package/lib/aws/compute/nlb/network-load-balancer.js +360 -0
- package/lib/aws/compute/nlb/network-target-group.d.ts +153 -0
- package/lib/aws/compute/nlb/network-target-group.js +223 -0
- package/lib/aws/compute/peer.d.ts +64 -0
- package/lib/aws/compute/peer.js +235 -0
- package/lib/aws/compute/placement-group.d.ts +161 -0
- package/lib/aws/compute/placement-group.js +133 -0
- package/lib/aws/compute/port.d.ts +287 -0
- package/lib/aws/compute/port.js +390 -0
- package/lib/aws/compute/prefix-list.d.ts +131 -0
- package/lib/aws/compute/prefix-list.js +114 -0
- package/lib/aws/compute/private/context-stub.d.ts +7 -0
- package/lib/aws/compute/private/context-stub.js +43 -0
- package/lib/aws/compute/private/ebs-util.d.ts +14 -0
- package/lib/aws/compute/private/ebs-util.js +145 -0
- package/lib/aws/compute/private/intrinstics.js +2 -1
- package/lib/aws/compute/private/json-path.js +8 -8
- package/lib/aws/compute/private/util.js +2 -3
- package/lib/aws/compute/route.d.ts +547 -0
- package/lib/aws/compute/route.js +469 -0
- package/lib/aws/compute/security-group.d.ts +414 -0
- package/lib/aws/compute/security-group.js +538 -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.d.ts +2 -2
- package/lib/aws/compute/state-machine.js +14 -12
- 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 +5 -5
- 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/stepfunctions-canned-metrics.generated.d.ts +83 -0
- package/lib/aws/compute/stepfunctions-canned-metrics.generated.js +127 -0
- package/lib/aws/compute/subnet-v2.d.ts +213 -0
- package/lib/aws/compute/subnet-v2.js +405 -0
- package/lib/aws/compute/subnet.d.ts +37 -0
- package/lib/aws/compute/subnet.js +181 -0
- 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/private/task-utils.js +3 -4
- package/lib/aws/compute/tasks/resource-arn-suffix.js +2 -3
- 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 +2 -2
- package/lib/aws/compute/user-data.d.ts +270 -0
- package/lib/aws/compute/user-data.js +487 -0
- package/lib/aws/compute/util.d.ts +1 -1
- package/lib/aws/compute/util.js +4 -5
- package/lib/aws/compute/volume.d.ts +480 -0
- package/lib/aws/compute/volume.js +426 -0
- package/lib/aws/compute/vpc-endpoint-service.d.ts +149 -0
- package/lib/aws/compute/vpc-endpoint-service.js +90 -0
- package/lib/aws/compute/vpc-endpoint.d.ts +742 -0
- package/lib/aws/compute/vpc-endpoint.js +811 -0
- package/lib/aws/compute/vpc-flow-logs.d.ts +551 -0
- package/lib/aws/compute/vpc-flow-logs.js +693 -0
- package/lib/aws/compute/vpc-lookup.d.ts +73 -0
- package/lib/aws/compute/vpc-lookup.js +3 -0
- package/lib/aws/compute/vpc-v2-base.d.ts +353 -0
- package/lib/aws/compute/vpc-v2-base.js +493 -0
- package/lib/aws/compute/vpc-v2.d.ts +385 -0
- package/lib/aws/compute/vpc-v2.js +408 -0
- package/lib/aws/compute/vpc.d.ts +1448 -0
- package/lib/aws/compute/vpc.js +1495 -0
- package/lib/aws/compute/vpn.d.ts +443 -0
- package/lib/aws/compute/vpn.js +397 -0
- package/lib/aws/compute/windows-versions.d.ts +418 -0
- package/lib/aws/compute/windows-versions.js +426 -0
- package/lib/aws/edge/certificate-base.d.ts +20 -0
- package/lib/aws/edge/certificate-base.js +28 -0
- package/lib/aws/edge/certificate.d.ts +23 -2
- package/lib/aws/edge/certificate.js +54 -4
- package/lib/aws/edge/distribution.js +3 -3
- package/lib/aws/edge/dns-alias-record-targets.js +2 -2
- package/lib/aws/edge/dns-record.js +16 -16
- package/lib/aws/edge/dns-zone.d.ts +20 -2
- package/lib/aws/edge/dns-zone.js +25 -10
- package/lib/aws/edge/function.js +2 -2
- package/lib/aws/edge/index.d.ts +1 -0
- package/lib/aws/edge/index.js +2 -1
- package/lib/aws/edge/key-value-store.js +4 -4
- package/lib/aws/edge/origin.js +7 -5
- 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/index.d.ts +1 -0
- package/lib/aws/iam/index.js +2 -1
- package/lib/aws/iam/instance-profile.d.ts +155 -0
- package/lib/aws/iam/instance-profile.js +124 -0
- package/lib/aws/iam/managed-policy.js +1 -1
- package/lib/aws/iam/oidc-provider.js +1 -1
- package/lib/aws/iam/policy-document-config.generated.d.ts +8 -8
- package/lib/aws/iam/policy-document-config.generated.js +1 -1
- package/lib/aws/iam/policy-document.js +1 -1
- package/lib/aws/iam/policy-statement-props.generated.d.ts +8 -8
- package/lib/aws/iam/policy-statement-props.generated.js +1 -1
- package/lib/aws/iam/policy-statement.js +9 -9
- package/lib/aws/iam/policy.js +1 -1
- package/lib/aws/iam/principals.js +26 -26
- package/lib/aws/iam/private/assume-role-policy.js +2 -3
- package/lib/aws/iam/private/comparable-principal.js +2 -3
- package/lib/aws/iam/private/immutable-role.d.ts +2 -1
- package/lib/aws/iam/private/immutable-role.js +3 -3
- package/lib/aws/iam/private/imported-role.d.ts +1 -1
- package/lib/aws/iam/private/imported-role.js +3 -3
- package/lib/aws/iam/private/merge-statements.js +2 -3
- package/lib/aws/iam/private/util.js +4 -4
- package/lib/aws/iam/role.js +1 -1
- package/lib/aws/iam/saml-provider.d.ts +1 -1
- package/lib/aws/iam/saml-provider.js +6 -6
- package/lib/aws/iam/unknown-principal.js +1 -1
- package/lib/aws/iam/utils.js +2 -3
- package/lib/aws/index.d.ts +1 -0
- package/lib/aws/index.js +4 -1
- package/lib/aws/network/simple-ipv4-vpc.js +5 -5
- package/lib/aws/network/subnet-group.js +3 -3
- package/lib/aws/network/subnet.d.ts +1 -1
- package/lib/aws/network/subnet.js +7 -7
- package/lib/aws/notify/archive.js +3 -2
- package/lib/aws/notify/connection.js +5 -4
- package/lib/aws/notify/event-bus.js +5 -4
- package/lib/aws/notify/event-pattern.d.ts +26 -1
- package/lib/aws/notify/event-pattern.js +49 -5
- package/lib/aws/notify/index.js +3 -1
- package/lib/aws/notify/input.js +4 -3
- package/lib/aws/notify/kinesis-stream.js +3 -2
- package/lib/aws/notify/on-event-options.js +2 -1
- package/lib/aws/notify/queue-config.generated.d.ts +18 -11
- package/lib/aws/notify/queue-config.generated.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 +3 -2
- package/lib/aws/notify/schedule.js +2 -2
- package/lib/aws/notify/sqs-augmentations.generated.d.ts +125 -0
- package/lib/aws/notify/sqs-augmentations.generated.js +74 -0
- package/lib/aws/notify/target.js +2 -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/targets/util.d.ts +1 -1
- package/lib/aws/notify/targets/util.js +10 -11
- package/lib/aws/notify/util.js +4 -4
- package/lib/aws/provider-config.generated.d.ts +33 -33
- package/lib/aws/provider-config.generated.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.js +1 -1
- package/lib/aws/storage/bucket.d.ts +298 -65
- package/lib/aws/storage/bucket.js +548 -225
- package/lib/aws/storage/cors-config.generated.d.ts +3 -3
- package/lib/aws/storage/cors-config.generated.js +1 -1
- package/lib/aws/storage/cors-rule-config.generated.d.ts +5 -5
- package/lib/aws/storage/cors-rule-config.generated.js +1 -1
- package/lib/aws/storage/index.d.ts +1 -0
- package/lib/aws/storage/index.js +2 -1
- package/lib/aws/storage/lifecycle-config.generated.d.ts +11 -11
- package/lib/aws/storage/lifecycle-config.generated.js +1 -1
- package/lib/aws/storage/notification-targets/function.js +6 -6
- package/lib/aws/storage/notification-targets/queue.js +1 -1
- package/lib/aws/storage/origin-access-identity.d.ts +1 -1
- package/lib/aws/storage/origin-access-identity.js +5 -4
- package/lib/aws/storage/parameter-util.d.ts +12 -0
- package/lib/aws/storage/parameter-util.js +65 -0
- package/lib/aws/storage/parameter.d.ts +526 -0
- package/lib/aws/storage/parameter.js +606 -0
- package/lib/aws/storage/s3-canned-metrics.generated.d.ts +22 -0
- package/lib/aws/storage/s3-canned-metrics.generated.js +23 -0
- package/lib/aws/storage/util.d.ts +25 -3
- package/lib/aws/storage/util.js +84 -17
- package/lib/aws/storage/website-config.generated.d.ts +5 -5
- package/lib/aws/storage/website-config.generated.js +1 -1
- package/lib/aws/util.js +2 -3
- package/lib/construct-base.d.ts +10 -1
- package/lib/construct-base.js +9 -6
- package/lib/duration.js +1 -1
- package/lib/expiration.d.ts +48 -0
- package/lib/expiration.js +68 -0
- package/lib/helpers-internal/index.d.ts +1 -0
- package/lib/helpers-internal/index.js +7 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +3 -1
- package/lib/private/md5.d.ts +4 -0
- package/lib/private/md5.js +14 -0
- package/lib/private/unique-resource-name.js +3 -4
- package/lib/size.js +2 -2
- package/lib/stack-base.d.ts +4 -23
- package/lib/stack-base.js +9 -30
- package/lib/terra-func.d.ts +103 -0
- package/lib/terra-func.js +170 -0
- package/lib/token.js +5 -5
- package/package.json +15 -8
- package/bun.lockb +0 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.ClientVpnAuthorizationRule = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
// https://github.com/aws/aws-cdk/blob/v2.175.1/packages/aws-cdk-lib/aws-ec2/lib/client-vpn-authorization-rule.ts
|
|
7
|
+
const provider_aws_1 = require("@cdktf/provider-aws");
|
|
8
|
+
const aws_construct_1 = require("../aws-construct");
|
|
9
|
+
/**
|
|
10
|
+
* A client VPN authorization rule
|
|
11
|
+
*/
|
|
12
|
+
class ClientVpnAuthorizationRule extends aws_construct_1.AwsConstructBase {
|
|
13
|
+
get outputs() {
|
|
14
|
+
return {};
|
|
15
|
+
}
|
|
16
|
+
constructor(scope, id, props) {
|
|
17
|
+
super(scope, id);
|
|
18
|
+
new provider_aws_1.ec2ClientVpnAuthorizationRule.Ec2ClientVpnAuthorizationRule(this, "Resource", {
|
|
19
|
+
clientVpnEndpointId: props.clientVpnEndpoint.endpointId,
|
|
20
|
+
targetNetworkCidr: props.cidr,
|
|
21
|
+
accessGroupId: props.groupId,
|
|
22
|
+
authorizeAllGroups: !props.groupId,
|
|
23
|
+
description: props.description,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
exports.ClientVpnAuthorizationRule = ClientVpnAuthorizationRule;
|
|
28
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
29
|
+
ClientVpnAuthorizationRule[_a] = { fqn: "terraconstructs.aws.compute.ClientVpnAuthorizationRule", version: "0.0.13" };
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LXZwbi1hdXRob3JpemF0aW9uLXJ1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvY2xpZW50LXZwbi1hdXRob3JpemF0aW9uLXJ1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxpSEFBaUg7QUFFakgsc0RBQW9FO0FBR3BFLG9EQUFvRDtBQXdDcEQ7O0dBRUc7QUFDSCxNQUFhLDBCQUEyQixTQUFRLGdDQUFnQjtJQUM5RCxJQUFXLE9BQU87UUFDaEIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBc0M7UUFFdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixJQUFJLDRDQUE2QixDQUFDLDZCQUE2QixDQUM3RCxJQUFJLEVBQ0osVUFBVSxFQUNWO1lBQ0UsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLFVBQVU7WUFDdkQsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDN0IsYUFBYSxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQzVCLGtCQUFrQixFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU87WUFDbEMsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1NBQy9CLENBQ0YsQ0FBQztJQUNKLENBQUM7O0FBckJILGdFQXNCQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE3NS4xL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1lYzIvbGliL2NsaWVudC12cG4tYXV0aG9yaXphdGlvbi1ydWxlLnRzXG5cbmltcG9ydCB7IGVjMkNsaWVudFZwbkF1dGhvcml6YXRpb25SdWxlIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBJQ2xpZW50VnBuRW5kcG9pbnQgfSBmcm9tIFwiLi9jbGllbnQtdnBuLWVuZHBvaW50LXR5cGVzXCI7XG5pbXBvcnQgeyBBd3NDb25zdHJ1Y3RCYXNlIH0gZnJvbSBcIi4uL2F3cy1jb25zdHJ1Y3RcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBhIENsaWVudFZwbkF1dGhvcml6YXRpb25SdWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2xpZW50VnBuQXV0aG9yaXphdGlvblJ1bGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBJUHY0IGFkZHJlc3MgcmFuZ2UsIGluIENJRFIgbm90YXRpb24sIG9mIHRoZSBuZXR3b3JrIGZvciB3aGljaCBhY2Nlc3NcbiAgICogaXMgYmVpbmcgYXV0aG9yaXplZC5cbiAgICovXG4gIHJlYWRvbmx5IGNpZHI6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBncm91cCB0byBncmFudCBhY2Nlc3MgdG8sIGZvciBleGFtcGxlLCB0aGUgQWN0aXZlIERpcmVjdG9yeVxuICAgKiBncm91cCBvciBpZGVudGl0eSBwcm92aWRlciAoSWRQKSBncm91cC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhdXRob3JpemUgYWxsIGdyb3Vwc1xuICAgKi9cbiAgcmVhZG9ubHkgZ3JvdXBJZD86IHN0cmluZztcblxuICAvKipcbiAgICogQSBicmllZiBkZXNjcmlwdGlvbiBvZiB0aGUgYXV0aG9yaXphdGlvbiBydWxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIENsaWVudFZwbkF1dGhvcml6YXRpb25SdWxlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2xpZW50VnBuQXV0aG9yaXphdGlvblJ1bGVQcm9wc1xuICBleHRlbmRzIENsaWVudFZwbkF1dGhvcml6YXRpb25SdWxlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgY2xpZW50IFZQTiBlbmRwb2ludCB0byB3aGljaCB0byBhZGQgdGhlIHJ1bGUuXG4gICAqIEBkZWZhdWx0IGNsaWVudFZwbkVuZHBvaW50IGlzIHJlcXVpcmVkXG4gICAqL1xuICByZWFkb25seSBjbGllbnRWcG5FbmRwb2ludDogSUNsaWVudFZwbkVuZHBvaW50O1xufVxuXG4vKipcbiAqIEEgY2xpZW50IFZQTiBhdXRob3JpemF0aW9uIHJ1bGVcbiAqL1xuZXhwb3J0IGNsYXNzIENsaWVudFZwbkF1dGhvcml6YXRpb25SdWxlIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSB7XG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4ge307XG4gIH1cbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBDbGllbnRWcG5BdXRob3JpemF0aW9uUnVsZVByb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIG5ldyBlYzJDbGllbnRWcG5BdXRob3JpemF0aW9uUnVsZS5FYzJDbGllbnRWcG5BdXRob3JpemF0aW9uUnVsZShcbiAgICAgIHRoaXMsXG4gICAgICBcIlJlc291cmNlXCIsXG4gICAgICB7XG4gICAgICAgIGNsaWVudFZwbkVuZHBvaW50SWQ6IHByb3BzLmNsaWVudFZwbkVuZHBvaW50LmVuZHBvaW50SWQsXG4gICAgICAgIHRhcmdldE5ldHdvcmtDaWRyOiBwcm9wcy5jaWRyLFxuICAgICAgICBhY2Nlc3NHcm91cElkOiBwcm9wcy5ncm91cElkLFxuICAgICAgICBhdXRob3JpemVBbGxHcm91cHM6ICFwcm9wcy5ncm91cElkLFxuICAgICAgICBkZXNjcmlwdGlvbjogcHJvcHMuZGVzY3JpcHRpb24sXG4gICAgICB9LFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { IDependable } from "constructs";
|
|
2
|
+
import { IConnectable } from "./connections";
|
|
3
|
+
import { IAwsConstruct } from "../aws-construct";
|
|
4
|
+
/**
|
|
5
|
+
* Outputs which may be registered for output via the Grid.
|
|
6
|
+
*/
|
|
7
|
+
export interface ClientVpnOutputs {
|
|
8
|
+
/**
|
|
9
|
+
* The ID of the client VPN endpoint
|
|
10
|
+
*/
|
|
11
|
+
readonly clientVpnEndpointId: string;
|
|
12
|
+
/**
|
|
13
|
+
* The URL of the self-service portal
|
|
14
|
+
*/
|
|
15
|
+
readonly selfServicePortalUrl?: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* A client VPN endpoint
|
|
19
|
+
*/
|
|
20
|
+
export interface IClientVpnEndpoint extends IAwsConstruct, IConnectable {
|
|
21
|
+
/** strongly typed outputs */
|
|
22
|
+
readonly clientVpnOutputs: ClientVpnOutputs;
|
|
23
|
+
/**
|
|
24
|
+
* The endpoint ID
|
|
25
|
+
*/
|
|
26
|
+
readonly endpointId: string;
|
|
27
|
+
/**
|
|
28
|
+
* Dependable that can be depended upon to force target networks associations
|
|
29
|
+
*/
|
|
30
|
+
readonly targetNetworksAssociated: IDependable;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* A connection handler for client VPN endpoints
|
|
34
|
+
*/
|
|
35
|
+
export interface IClientVpnConnectionHandler {
|
|
36
|
+
/**
|
|
37
|
+
* The name of the function
|
|
38
|
+
*/
|
|
39
|
+
readonly functionName: string;
|
|
40
|
+
/**
|
|
41
|
+
* The ARN of the function.
|
|
42
|
+
*/
|
|
43
|
+
readonly functionArn: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Transport protocol for client VPN
|
|
47
|
+
*/
|
|
48
|
+
export declare enum TransportProtocol {
|
|
49
|
+
/** Transmission Control Protocol (TCP) */
|
|
50
|
+
TCP = "tcp",
|
|
51
|
+
/** User Datagram Protocol (UDP) */
|
|
52
|
+
UDP = "udp"
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Port for client VPN
|
|
56
|
+
*/
|
|
57
|
+
export declare enum VpnPort {
|
|
58
|
+
/** HTTPS */
|
|
59
|
+
HTTPS = 443,
|
|
60
|
+
/** OpenVPN */
|
|
61
|
+
OPENVPN = 1194
|
|
62
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// https://github.com/aws/aws-cdk/blob/v2.175.1/packages/aws-cdk-lib/aws-ec2/lib/client-vpn-endpoint-types.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.VpnPort = exports.TransportProtocol = void 0;
|
|
5
|
+
/**
|
|
6
|
+
* Transport protocol for client VPN
|
|
7
|
+
*/
|
|
8
|
+
var TransportProtocol;
|
|
9
|
+
(function (TransportProtocol) {
|
|
10
|
+
/** Transmission Control Protocol (TCP) */
|
|
11
|
+
TransportProtocol["TCP"] = "tcp";
|
|
12
|
+
/** User Datagram Protocol (UDP) */
|
|
13
|
+
TransportProtocol["UDP"] = "udp";
|
|
14
|
+
})(TransportProtocol || (exports.TransportProtocol = TransportProtocol = {}));
|
|
15
|
+
/**
|
|
16
|
+
* Port for client VPN
|
|
17
|
+
*/
|
|
18
|
+
var VpnPort;
|
|
19
|
+
(function (VpnPort) {
|
|
20
|
+
/** HTTPS */
|
|
21
|
+
VpnPort[VpnPort["HTTPS"] = 443] = "HTTPS";
|
|
22
|
+
/** OpenVPN */
|
|
23
|
+
VpnPort[VpnPort["OPENVPN"] = 1194] = "OPENVPN";
|
|
24
|
+
})(VpnPort || (exports.VpnPort = VpnPort = {}));
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LXZwbi1lbmRwb2ludC10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9jbGllbnQtdnBuLWVuZHBvaW50LXR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSw2R0FBNkc7OztBQXFEN0c7O0dBRUc7QUFDSCxJQUFZLGlCQUtYO0FBTEQsV0FBWSxpQkFBaUI7SUFDM0IsMENBQTBDO0lBQzFDLGdDQUFXLENBQUE7SUFDWCxtQ0FBbUM7SUFDbkMsZ0NBQVcsQ0FBQTtBQUNiLENBQUMsRUFMVyxpQkFBaUIsaUNBQWpCLGlCQUFpQixRQUs1QjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxPQUtYO0FBTEQsV0FBWSxPQUFPO0lBQ2pCLFlBQVk7SUFDWix5Q0FBVyxDQUFBO0lBQ1gsY0FBYztJQUNkLDhDQUFjLENBQUE7QUFDaEIsQ0FBQyxFQUxXLE9BQU8sdUJBQVAsT0FBTyxRQUtsQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE3NS4xL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1lYzIvbGliL2NsaWVudC12cG4tZW5kcG9pbnQtdHlwZXMudHNcblxuaW1wb3J0IHsgSURlcGVuZGFibGUgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgSUNvbm5lY3RhYmxlIH0gZnJvbSBcIi4vY29ubmVjdGlvbnNcIjtcbmltcG9ydCB7IElBd3NDb25zdHJ1Y3QgfSBmcm9tIFwiLi4vYXdzLWNvbnN0cnVjdFwiO1xuXG4vKipcbiAqIE91dHB1dHMgd2hpY2ggbWF5IGJlIHJlZ2lzdGVyZWQgZm9yIG91dHB1dCB2aWEgdGhlIEdyaWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2xpZW50VnBuT3V0cHV0cyB7XG4gIC8qKlxuICAgKiBUaGUgSUQgb2YgdGhlIGNsaWVudCBWUE4gZW5kcG9pbnRcbiAgICovXG4gIHJlYWRvbmx5IGNsaWVudFZwbkVuZHBvaW50SWQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIFVSTCBvZiB0aGUgc2VsZi1zZXJ2aWNlIHBvcnRhbFxuICAgKi9cbiAgcmVhZG9ubHkgc2VsZlNlcnZpY2VQb3J0YWxVcmw/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBjbGllbnQgVlBOIGVuZHBvaW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUNsaWVudFZwbkVuZHBvaW50IGV4dGVuZHMgSUF3c0NvbnN0cnVjdCwgSUNvbm5lY3RhYmxlIHtcbiAgLyoqIHN0cm9uZ2x5IHR5cGVkIG91dHB1dHMgKi9cbiAgcmVhZG9ubHkgY2xpZW50VnBuT3V0cHV0czogQ2xpZW50VnBuT3V0cHV0cztcbiAgLyoqXG4gICAqIFRoZSBlbmRwb2ludCBJRFxuICAgKi9cbiAgcmVhZG9ubHkgZW5kcG9pbnRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZXBlbmRhYmxlIHRoYXQgY2FuIGJlIGRlcGVuZGVkIHVwb24gdG8gZm9yY2UgdGFyZ2V0IG5ldHdvcmtzIGFzc29jaWF0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0TmV0d29ya3NBc3NvY2lhdGVkOiBJRGVwZW5kYWJsZTtcbn1cblxuLyoqXG4gKiBBIGNvbm5lY3Rpb24gaGFuZGxlciBmb3IgY2xpZW50IFZQTiBlbmRwb2ludHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ2xpZW50VnBuQ29ubmVjdGlvbkhhbmRsZXIge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uXG4gICAqL1xuICByZWFkb25seSBmdW5jdGlvbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBmdW5jdGlvbkFybjogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRyYW5zcG9ydCBwcm90b2NvbCBmb3IgY2xpZW50IFZQTlxuICovXG5leHBvcnQgZW51bSBUcmFuc3BvcnRQcm90b2NvbCB7XG4gIC8qKiBUcmFuc21pc3Npb24gQ29udHJvbCBQcm90b2NvbCAoVENQKSAqL1xuICBUQ1AgPSBcInRjcFwiLFxuICAvKiogVXNlciBEYXRhZ3JhbSBQcm90b2NvbCAoVURQKSAqL1xuICBVRFAgPSBcInVkcFwiLFxufVxuXG4vKipcbiAqIFBvcnQgZm9yIGNsaWVudCBWUE5cbiAqL1xuZXhwb3J0IGVudW0gVnBuUG9ydCB7XG4gIC8qKiBIVFRQUyAqL1xuICBIVFRQUyA9IDQ0MyxcbiAgLyoqIE9wZW5WUE4gKi9cbiAgT1BFTlZQTiA9IDExOTQsXG59XG4iXX0=
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import { ec2ClientVpnEndpoint } from "@cdktf/provider-aws";
|
|
2
|
+
import { Construct, IDependable } from "constructs";
|
|
3
|
+
import { ClientVpnAuthorizationRule, ClientVpnAuthorizationRuleOptions } from "./client-vpn-authorization-rule";
|
|
4
|
+
import { IClientVpnConnectionHandler, IClientVpnEndpoint, ClientVpnOutputs, TransportProtocol, VpnPort } from "./client-vpn-endpoint-types";
|
|
5
|
+
import { ClientVpnRoute, ClientVpnRouteOptions } from "./client-vpn-route";
|
|
6
|
+
import { Connections } from "./connections";
|
|
7
|
+
import { ISecurityGroup } from "./security-group";
|
|
8
|
+
import { ISamlProvider } from "../iam";
|
|
9
|
+
import { IVpc, SubnetSelection } from "./vpc";
|
|
10
|
+
import { AwsConstructBase, AwsConstructProps } from "../aws-construct";
|
|
11
|
+
import * as logs from "../cloudwatch";
|
|
12
|
+
/**
|
|
13
|
+
* Options for a client VPN endpoint
|
|
14
|
+
*/
|
|
15
|
+
export interface ClientVpnEndpointOptions {
|
|
16
|
+
/**
|
|
17
|
+
* The IPv4 address range, in CIDR notation, from which to assign client IP
|
|
18
|
+
* addresses. The address range cannot overlap with the local CIDR of the VPC
|
|
19
|
+
* in which the associated subnet is located, or the routes that you add manually.
|
|
20
|
+
*
|
|
21
|
+
* Changing the address range will replace the Client VPN endpoint.
|
|
22
|
+
*
|
|
23
|
+
* The CIDR block should be /22 or greater.
|
|
24
|
+
*/
|
|
25
|
+
readonly cidr: string;
|
|
26
|
+
/**
|
|
27
|
+
* The ARN of the client certificate for mutual authentication.
|
|
28
|
+
*
|
|
29
|
+
* The certificate must be signed by a certificate authority (CA) and it must
|
|
30
|
+
* be provisioned in AWS Certificate Manager (ACM).
|
|
31
|
+
*
|
|
32
|
+
* @default - use user-based authentication
|
|
33
|
+
*/
|
|
34
|
+
readonly clientCertificateArn?: string;
|
|
35
|
+
/**
|
|
36
|
+
* The type of user-based authentication to use.
|
|
37
|
+
*
|
|
38
|
+
* @see https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/client-authentication.html
|
|
39
|
+
*
|
|
40
|
+
* @default - use mutual authentication
|
|
41
|
+
*/
|
|
42
|
+
readonly userBasedAuthentication?: ClientVpnUserBasedAuthentication;
|
|
43
|
+
/**
|
|
44
|
+
* Whether to enable connections logging
|
|
45
|
+
*
|
|
46
|
+
* @default true
|
|
47
|
+
*/
|
|
48
|
+
readonly logging?: boolean;
|
|
49
|
+
/**
|
|
50
|
+
* A CloudWatch Logs log group for connection logging
|
|
51
|
+
*
|
|
52
|
+
* @default - a new group is created
|
|
53
|
+
*/
|
|
54
|
+
readonly logGroup?: logs.ILogGroup;
|
|
55
|
+
/**
|
|
56
|
+
* A CloudWatch Logs log stream for connection logging
|
|
57
|
+
*
|
|
58
|
+
* @default - a new stream is created
|
|
59
|
+
*/
|
|
60
|
+
readonly logStream?: logs.ILogStream;
|
|
61
|
+
/**
|
|
62
|
+
* The AWS Lambda function used for connection authorization
|
|
63
|
+
*
|
|
64
|
+
* The name of the Lambda function must begin with the `AWSClientVPN-` prefix
|
|
65
|
+
*
|
|
66
|
+
* @default - no connection handler
|
|
67
|
+
*/
|
|
68
|
+
readonly clientConnectionHandler?: IClientVpnConnectionHandler;
|
|
69
|
+
/**
|
|
70
|
+
* A brief description of the Client VPN endpoint.
|
|
71
|
+
*
|
|
72
|
+
* @default - no description
|
|
73
|
+
*/
|
|
74
|
+
readonly description?: string;
|
|
75
|
+
/**
|
|
76
|
+
* The security groups to apply to the target network.
|
|
77
|
+
*
|
|
78
|
+
* @default - a new security group is created
|
|
79
|
+
*/
|
|
80
|
+
readonly securityGroups?: ISecurityGroup[];
|
|
81
|
+
/**
|
|
82
|
+
* Specify whether to enable the self-service portal for the Client VPN endpoint.
|
|
83
|
+
*
|
|
84
|
+
* @default true
|
|
85
|
+
*/
|
|
86
|
+
readonly selfServicePortal?: boolean;
|
|
87
|
+
/**
|
|
88
|
+
* The ARN of the server certificate
|
|
89
|
+
*/
|
|
90
|
+
readonly serverCertificateArn: string;
|
|
91
|
+
/**
|
|
92
|
+
* Indicates whether split-tunnel is enabled on the AWS Client VPN endpoint.
|
|
93
|
+
*
|
|
94
|
+
* @see https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/split-tunnel-vpn.html
|
|
95
|
+
*
|
|
96
|
+
* @default false
|
|
97
|
+
*/
|
|
98
|
+
readonly splitTunnel?: boolean;
|
|
99
|
+
/**
|
|
100
|
+
* The transport protocol to be used by the VPN session.
|
|
101
|
+
*
|
|
102
|
+
* @default TransportProtocol.UDP
|
|
103
|
+
*/
|
|
104
|
+
readonly transportProtocol?: TransportProtocol;
|
|
105
|
+
/**
|
|
106
|
+
* The port number to assign to the Client VPN endpoint for TCP and UDP
|
|
107
|
+
* traffic.
|
|
108
|
+
*
|
|
109
|
+
* @default VpnPort.HTTPS
|
|
110
|
+
*/
|
|
111
|
+
readonly port?: VpnPort;
|
|
112
|
+
/**
|
|
113
|
+
* Information about the DNS servers to be used for DNS resolution.
|
|
114
|
+
*
|
|
115
|
+
* A Client VPN endpoint can have up to two DNS servers.
|
|
116
|
+
*
|
|
117
|
+
* @default - use the DNS address configured on the device
|
|
118
|
+
*/
|
|
119
|
+
readonly dnsServers?: string[];
|
|
120
|
+
/**
|
|
121
|
+
* Subnets to associate to the client VPN endpoint.
|
|
122
|
+
*
|
|
123
|
+
* @default - the VPC default strategy
|
|
124
|
+
*/
|
|
125
|
+
readonly vpcSubnets?: SubnetSelection;
|
|
126
|
+
/**
|
|
127
|
+
* Whether to authorize all users to the VPC CIDR
|
|
128
|
+
*
|
|
129
|
+
* This automatically creates an authorization rule. Set this to `false` and
|
|
130
|
+
* use `addAuthorizationRule()` to create your own rules instead.
|
|
131
|
+
*
|
|
132
|
+
* @default true
|
|
133
|
+
*/
|
|
134
|
+
readonly authorizeAllUsersToVpcCidr?: boolean;
|
|
135
|
+
/**
|
|
136
|
+
* The maximum VPN session duration time.
|
|
137
|
+
*
|
|
138
|
+
* @default ClientVpnSessionTimeout.TWENTY_FOUR_HOURS
|
|
139
|
+
*/
|
|
140
|
+
readonly sessionTimeout?: ClientVpnSessionTimeout;
|
|
141
|
+
/**
|
|
142
|
+
* Customizable text that will be displayed in a banner on AWS provided clients
|
|
143
|
+
* when a VPN session is established.
|
|
144
|
+
*
|
|
145
|
+
* UTF-8 encoded characters only. Maximum of 1400 characters.
|
|
146
|
+
*
|
|
147
|
+
* @default - no banner is presented to the client
|
|
148
|
+
*/
|
|
149
|
+
readonly clientLoginBanner?: string;
|
|
150
|
+
/**
|
|
151
|
+
* Whether to register Terraform outputs for this TerraConstruct
|
|
152
|
+
*
|
|
153
|
+
* @default false
|
|
154
|
+
*/
|
|
155
|
+
readonly registerOutputs?: boolean;
|
|
156
|
+
/**
|
|
157
|
+
* Optional override for the outputs name
|
|
158
|
+
*
|
|
159
|
+
* @default id
|
|
160
|
+
*/
|
|
161
|
+
readonly outputName?: string;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Maximum VPN session duration time
|
|
165
|
+
*/
|
|
166
|
+
export declare enum ClientVpnSessionTimeout {
|
|
167
|
+
/** 8 hours */
|
|
168
|
+
EIGHT_HOURS = 8,
|
|
169
|
+
/** 10 hours */
|
|
170
|
+
TEN_HOURS = 10,
|
|
171
|
+
/** 12 hours */
|
|
172
|
+
TWELVE_HOURS = 12,
|
|
173
|
+
/** 24 hours */
|
|
174
|
+
TWENTY_FOUR_HOURS = 24
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* User-based authentication for a client VPN endpoint
|
|
178
|
+
*/
|
|
179
|
+
export declare abstract class ClientVpnUserBasedAuthentication {
|
|
180
|
+
/**
|
|
181
|
+
* Active Directory authentication
|
|
182
|
+
*/
|
|
183
|
+
static activeDirectory(directoryId: string): ClientVpnUserBasedAuthentication;
|
|
184
|
+
/** Federated authentication */
|
|
185
|
+
static federated(samlProvider: ISamlProvider, selfServiceSamlProvider?: ISamlProvider): ClientVpnUserBasedAuthentication;
|
|
186
|
+
/** Renders the user based authentication */
|
|
187
|
+
abstract render(): any;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Properties for a client VPN endpoint
|
|
191
|
+
*/
|
|
192
|
+
export interface ClientVpnEndpointProps extends ClientVpnEndpointOptions, AwsConstructProps {
|
|
193
|
+
/**
|
|
194
|
+
* The VPC to connect to.
|
|
195
|
+
*/
|
|
196
|
+
readonly vpc: IVpc;
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Attributes when importing an existing client VPN endpoint
|
|
200
|
+
*/
|
|
201
|
+
export interface ClientVpnEndpointAttributes {
|
|
202
|
+
/**
|
|
203
|
+
* The endpoint ID
|
|
204
|
+
*/
|
|
205
|
+
readonly endpointId: string;
|
|
206
|
+
/**
|
|
207
|
+
* The security groups associated with the endpoint
|
|
208
|
+
*/
|
|
209
|
+
readonly securityGroups: ISecurityGroup[];
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* A client VPN connnection
|
|
213
|
+
*/
|
|
214
|
+
export declare class ClientVpnEndpoint extends AwsConstructBase implements IClientVpnEndpoint {
|
|
215
|
+
/**
|
|
216
|
+
* Import an existing client VPN endpoint
|
|
217
|
+
*/
|
|
218
|
+
static fromEndpointAttributes(scope: Construct, id: string, attrs: ClientVpnEndpointAttributes): IClientVpnEndpoint;
|
|
219
|
+
readonly endpointId: string;
|
|
220
|
+
readonly selfServicePortalUrl?: string;
|
|
221
|
+
/**
|
|
222
|
+
* Allows specify security group connections for the endpoint.
|
|
223
|
+
*/
|
|
224
|
+
readonly connections: Connections;
|
|
225
|
+
readonly targetNetworksAssociated: IDependable;
|
|
226
|
+
private readonly _targetNetworksAssociated;
|
|
227
|
+
get clientVpnOutputs(): ClientVpnOutputs;
|
|
228
|
+
get outputs(): Record<string, any>;
|
|
229
|
+
resource: ec2ClientVpnEndpoint.Ec2ClientVpnEndpoint;
|
|
230
|
+
constructor(scope: Construct, id: string, props: ClientVpnEndpointProps);
|
|
231
|
+
/**
|
|
232
|
+
* Adds an authorization rule to this endpoint
|
|
233
|
+
*/
|
|
234
|
+
addAuthorizationRule(id: string, props: ClientVpnAuthorizationRuleOptions): ClientVpnAuthorizationRule;
|
|
235
|
+
/**
|
|
236
|
+
* Adds a route to this endpoint
|
|
237
|
+
*/
|
|
238
|
+
addRoute(id: string, props: ClientVpnRouteOptions): ClientVpnRoute;
|
|
239
|
+
}
|