terraconstructs 0.0.11 → 0.0.12
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 +104486 -34582
- 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.js +3 -3
- 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,92 @@
|
|
|
1
|
+
import { lbListener as tfListener, lbListenerRule as tfListenerRule } from "@cdktf/provider-aws";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
import { INetworkListener } from "./network-listener";
|
|
4
|
+
import { INetworkTargetGroup } from "./network-target-group";
|
|
5
|
+
import { Duration } from "../../../duration";
|
|
6
|
+
import { IListenerAction } from "../lb-shared/listener-action";
|
|
7
|
+
/**
|
|
8
|
+
* What to do when a client makes a request to a listener
|
|
9
|
+
*
|
|
10
|
+
* Some actions can be combined with other ones (specifically,
|
|
11
|
+
* you can perform authentication before serving the request).
|
|
12
|
+
*
|
|
13
|
+
* Multiple actions form a linked chain; the chain must always terminate in a
|
|
14
|
+
* *(weighted)forward*, *fixedResponse* or *redirect* action.
|
|
15
|
+
*
|
|
16
|
+
* If an action supports chaining, the next action can be indicated
|
|
17
|
+
* by passing it in the `next` property.
|
|
18
|
+
*/
|
|
19
|
+
export declare class NetworkListenerAction implements IListenerAction {
|
|
20
|
+
private readonly defaultActionJson;
|
|
21
|
+
protected readonly next?: NetworkListenerAction | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* Forward to one or more Target Groups
|
|
24
|
+
*/
|
|
25
|
+
static forward(targetGroups: INetworkTargetGroup[], options?: NetworkForwardOptions): NetworkListenerAction;
|
|
26
|
+
/**
|
|
27
|
+
* Forward to one or more Target Groups which are weighted differently
|
|
28
|
+
*/
|
|
29
|
+
static weightedForward(targetGroups: NetworkWeightedTargetGroup[], options?: NetworkForwardOptions): NetworkListenerAction;
|
|
30
|
+
private _actionJson?;
|
|
31
|
+
/**
|
|
32
|
+
* Create an instance of NetworkListenerAction
|
|
33
|
+
*
|
|
34
|
+
* The default class should be good enough for most cases and
|
|
35
|
+
* should be created by using one of the static factory functions,
|
|
36
|
+
* but allow overriding to make sure we allow flexibility for the future.
|
|
37
|
+
*/
|
|
38
|
+
protected constructor(defaultActionJson: tfListener.LbListenerDefaultAction, next?: NetworkListenerAction | undefined);
|
|
39
|
+
/**
|
|
40
|
+
* Render the listener rule actions in this chain
|
|
41
|
+
*/
|
|
42
|
+
renderRuleActions(): tfListenerRule.LbListenerRuleAction[];
|
|
43
|
+
/**
|
|
44
|
+
* Render the listener default actions in this chain
|
|
45
|
+
*/
|
|
46
|
+
renderActions(): tfListener.LbListenerDefaultAction[];
|
|
47
|
+
/**
|
|
48
|
+
* Called when the action is being used in a listener
|
|
49
|
+
*/
|
|
50
|
+
bind(scope: Construct, listener: INetworkListener): void;
|
|
51
|
+
private _renumber;
|
|
52
|
+
/**
|
|
53
|
+
* Renumber the "order" fields in the actions array.
|
|
54
|
+
*
|
|
55
|
+
* We don't number for 0 or 1 elements, but otherwise number them 1...#actions
|
|
56
|
+
* so ELB knows about the right order.
|
|
57
|
+
*
|
|
58
|
+
* Do this in `NetworkListenerAction` instead of in `Listener` so that we give
|
|
59
|
+
* users the opportunity to override by subclassing and overriding `renderActions`.
|
|
60
|
+
*/
|
|
61
|
+
protected renumber(actions: tfListener.LbListenerDefaultAction[]): tfListener.LbListenerDefaultAction[];
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Options for `NetworkListenerAction.forward()`
|
|
65
|
+
*/
|
|
66
|
+
export interface NetworkForwardOptions {
|
|
67
|
+
/**
|
|
68
|
+
* For how long clients should be directed to the same target group
|
|
69
|
+
*
|
|
70
|
+
* Range between 1 second and 7 days.
|
|
71
|
+
*
|
|
72
|
+
* @default - No stickiness
|
|
73
|
+
*/
|
|
74
|
+
readonly stickinessDuration?: Duration;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* A Target Group and weight combination
|
|
78
|
+
*/
|
|
79
|
+
export interface NetworkWeightedTargetGroup {
|
|
80
|
+
/**
|
|
81
|
+
* The target group
|
|
82
|
+
*/
|
|
83
|
+
readonly targetGroup: INetworkTargetGroup;
|
|
84
|
+
/**
|
|
85
|
+
* The target group's weight
|
|
86
|
+
*
|
|
87
|
+
* Range is [0..1000).
|
|
88
|
+
*
|
|
89
|
+
* @default 1
|
|
90
|
+
*/
|
|
91
|
+
readonly weight?: number;
|
|
92
|
+
}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.NetworkListenerAction = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
/**
|
|
7
|
+
* What to do when a client makes a request to a listener
|
|
8
|
+
*
|
|
9
|
+
* Some actions can be combined with other ones (specifically,
|
|
10
|
+
* you can perform authentication before serving the request).
|
|
11
|
+
*
|
|
12
|
+
* Multiple actions form a linked chain; the chain must always terminate in a
|
|
13
|
+
* *(weighted)forward*, *fixedResponse* or *redirect* action.
|
|
14
|
+
*
|
|
15
|
+
* If an action supports chaining, the next action can be indicated
|
|
16
|
+
* by passing it in the `next` property.
|
|
17
|
+
*/
|
|
18
|
+
class NetworkListenerAction {
|
|
19
|
+
/**
|
|
20
|
+
* Forward to one or more Target Groups
|
|
21
|
+
*/
|
|
22
|
+
static forward(targetGroups, options = {}) {
|
|
23
|
+
if (targetGroups.length === 0) {
|
|
24
|
+
throw new Error("Need at least one targetGroup in a NetworkListenerAction.forward()");
|
|
25
|
+
}
|
|
26
|
+
if (targetGroups.length === 1 && options.stickinessDuration === undefined) {
|
|
27
|
+
// Render a "simple" action for backwards compatibility with old templates
|
|
28
|
+
return new TargetGroupListenerAction(targetGroups, {
|
|
29
|
+
type: "forward",
|
|
30
|
+
targetGroupArn: targetGroups[0].targetGroupArn,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
return new TargetGroupListenerAction(targetGroups, {
|
|
34
|
+
type: "forward",
|
|
35
|
+
forward: {
|
|
36
|
+
targetGroup: targetGroups.map((g) => ({
|
|
37
|
+
arn: g.targetGroupArn,
|
|
38
|
+
})),
|
|
39
|
+
stickiness: options.stickinessDuration
|
|
40
|
+
? {
|
|
41
|
+
duration: options.stickinessDuration.toSeconds(),
|
|
42
|
+
enabled: true,
|
|
43
|
+
}
|
|
44
|
+
: undefined,
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Forward to one or more Target Groups which are weighted differently
|
|
50
|
+
*/
|
|
51
|
+
static weightedForward(targetGroups, options = {}) {
|
|
52
|
+
if (targetGroups.length === 0) {
|
|
53
|
+
throw new Error("Need at least one targetGroup in a NetworkListenerAction.weightedForward()");
|
|
54
|
+
}
|
|
55
|
+
return new TargetGroupListenerAction(targetGroups.map((g) => g.targetGroup), {
|
|
56
|
+
type: "forward",
|
|
57
|
+
forward: {
|
|
58
|
+
targetGroup: targetGroups.map((g) => ({
|
|
59
|
+
arn: g.targetGroup.targetGroupArn,
|
|
60
|
+
weight: g.weight,
|
|
61
|
+
})),
|
|
62
|
+
stickiness: options.stickinessDuration
|
|
63
|
+
? {
|
|
64
|
+
duration: options.stickinessDuration.toSeconds(),
|
|
65
|
+
enabled: true,
|
|
66
|
+
}
|
|
67
|
+
: undefined,
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Create an instance of NetworkListenerAction
|
|
73
|
+
*
|
|
74
|
+
* The default class should be good enough for most cases and
|
|
75
|
+
* should be created by using one of the static factory functions,
|
|
76
|
+
* but allow overriding to make sure we allow flexibility for the future.
|
|
77
|
+
*/
|
|
78
|
+
constructor(defaultActionJson, next) {
|
|
79
|
+
this.defaultActionJson = defaultActionJson;
|
|
80
|
+
this.next = next;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Render the listener rule actions in this chain
|
|
84
|
+
*/
|
|
85
|
+
renderRuleActions() {
|
|
86
|
+
const actionJson = this._actionJson ??
|
|
87
|
+
this.defaultActionJson;
|
|
88
|
+
return this._renumber([
|
|
89
|
+
actionJson,
|
|
90
|
+
...(this.next?.renderRuleActions() ?? []),
|
|
91
|
+
]);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Render the listener default actions in this chain
|
|
95
|
+
*/
|
|
96
|
+
renderActions() {
|
|
97
|
+
return this._renumber([
|
|
98
|
+
this.defaultActionJson,
|
|
99
|
+
...(this.next?.renderActions() ?? []),
|
|
100
|
+
]);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Called when the action is being used in a listener
|
|
104
|
+
*/
|
|
105
|
+
bind(scope, listener) {
|
|
106
|
+
// Empty on purpose
|
|
107
|
+
Array.isArray(scope);
|
|
108
|
+
Array.isArray(listener);
|
|
109
|
+
}
|
|
110
|
+
_renumber(actions) {
|
|
111
|
+
if (actions.length < 2) {
|
|
112
|
+
return actions;
|
|
113
|
+
}
|
|
114
|
+
return actions.map((action, i) => ({ ...action, order: i + 1 }));
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Renumber the "order" fields in the actions array.
|
|
118
|
+
*
|
|
119
|
+
* We don't number for 0 or 1 elements, but otherwise number them 1...#actions
|
|
120
|
+
* so ELB knows about the right order.
|
|
121
|
+
*
|
|
122
|
+
* Do this in `NetworkListenerAction` instead of in `Listener` so that we give
|
|
123
|
+
* users the opportunity to override by subclassing and overriding `renderActions`.
|
|
124
|
+
*/
|
|
125
|
+
renumber(actions) {
|
|
126
|
+
return this._renumber(actions);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
exports.NetworkListenerAction = NetworkListenerAction;
|
|
130
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
131
|
+
NetworkListenerAction[_a] = { fqn: "terraconstructs.aws.compute.NetworkListenerAction", version: "0.0.12" };
|
|
132
|
+
/**
|
|
133
|
+
* Listener Action that calls "registerListener" on TargetGroups
|
|
134
|
+
*/
|
|
135
|
+
class TargetGroupListenerAction extends NetworkListenerAction {
|
|
136
|
+
constructor(targetGroups, defaultActionJson) {
|
|
137
|
+
super(defaultActionJson);
|
|
138
|
+
this.targetGroups = targetGroups;
|
|
139
|
+
}
|
|
140
|
+
bind(_scope, listener) {
|
|
141
|
+
for (const tg of this.targetGroups) {
|
|
142
|
+
tg.registerListener(listener);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1saXN0ZW5lci1hY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXdzL2NvbXB1dGUvbmxiL25ldHdvcmstbGlzdGVuZXItYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBWUE7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFhLHFCQUFxQjtJQUNoQzs7T0FFRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQ25CLFlBQW1DLEVBQ25DLFVBQWlDLEVBQUU7UUFFbkMsSUFBSSxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQ2Isb0VBQW9FLENBQ3JFLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxPQUFPLENBQUMsa0JBQWtCLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDMUUsMEVBQTBFO1lBQzFFLE9BQU8sSUFBSSx5QkFBeUIsQ0FBQyxZQUFZLEVBQUU7Z0JBQ2pELElBQUksRUFBRSxTQUFTO2dCQUNmLGNBQWMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYzthQUMvQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxJQUFJLHlCQUF5QixDQUFDLFlBQVksRUFBRTtZQUNqRCxJQUFJLEVBQUUsU0FBUztZQUNmLE9BQU8sRUFBRTtnQkFDUCxXQUFXLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDcEMsR0FBRyxFQUFFLENBQUMsQ0FBQyxjQUFjO2lCQUN0QixDQUFDLENBQUM7Z0JBQ0gsVUFBVSxFQUFFLE9BQU8sQ0FBQyxrQkFBa0I7b0JBQ3BDLENBQUMsQ0FBQzt3QkFDRSxRQUFRLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsRUFBRTt3QkFDaEQsT0FBTyxFQUFFLElBQUk7cUJBQ2Q7b0JBQ0gsQ0FBQyxDQUFDLFNBQVM7YUFDZDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQzNCLFlBQTBDLEVBQzFDLFVBQWlDLEVBQUU7UUFFbkMsSUFBSSxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzlCLE1BQU0sSUFBSSxLQUFLLENBQ2IsNEVBQTRFLENBQzdFLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxJQUFJLHlCQUF5QixDQUNsQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEVBQ3RDO1lBQ0UsSUFBSSxFQUFFLFNBQVM7WUFDZixPQUFPLEVBQUU7Z0JBQ1AsV0FBVyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7b0JBQ3BDLEdBQUcsRUFBRSxDQUFDLENBQUMsV0FBVyxDQUFDLGNBQWM7b0JBQ2pDLE1BQU0sRUFBRSxDQUFDLENBQUMsTUFBTTtpQkFDakIsQ0FBQyxDQUFDO2dCQUNILFVBQVUsRUFBRSxPQUFPLENBQUMsa0JBQWtCO29CQUNwQyxDQUFDLENBQUM7d0JBQ0UsUUFBUSxFQUFFLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUU7d0JBQ2hELE9BQU8sRUFBRSxJQUFJO3FCQUNkO29CQUNILENBQUMsQ0FBQyxTQUFTO2FBQ2Q7U0FDRixDQUNGLENBQUM7SUFDSixDQUFDO0lBSUQ7Ozs7OztPQU1HO0lBQ0gsWUFDbUIsaUJBQXFELEVBQ25ELElBQTRCO1FBRDlCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBb0M7UUFDbkQsU0FBSSxHQUFKLElBQUksQ0FBd0I7SUFDOUMsQ0FBQztJQUVKOztPQUVHO0lBQ0ksaUJBQWlCO1FBQ3RCLE1BQU0sVUFBVSxHQUNkLElBQUksQ0FBQyxXQUFXO1lBQ2YsSUFBSSxDQUFDLGlCQUF5RCxDQUFDO1FBQ2xFLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNwQixVQUFVO1lBQ1YsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDMUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDcEIsSUFBSSxDQUFDLGlCQUFpQjtZQUN0QixHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDdEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ksSUFBSSxDQUFDLEtBQWdCLEVBQUUsUUFBMEI7UUFDdEQsbUJBQW1CO1FBQ25CLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRU8sU0FBUyxDQUlmLE9BQXlCO1FBQ3pCLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2QixPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNPLFFBQVEsQ0FDaEIsT0FBNkM7UUFFN0MsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7O0FBN0lILHNEQThJQzs7O0FBbUNEOztHQUVHO0FBQ0gsTUFBTSx5QkFBMEIsU0FBUSxxQkFBcUI7SUFDM0QsWUFDbUIsWUFBbUMsRUFDcEQsaUJBQXFEO1FBRXJELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBSFIsaUJBQVksR0FBWixZQUFZLENBQXVCO0lBSXRELENBQUM7SUFFTSxJQUFJLENBQUMsTUFBaUIsRUFBRSxRQUEwQjtRQUN2RCxLQUFLLE1BQU0sRUFBRSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNuQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE3NS4xL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyL2xpYi9ubGIvbmV0d29yay1saXN0ZW5lci1hY3Rpb24udHNcblxuaW1wb3J0IHtcbiAgbGJMaXN0ZW5lciBhcyB0Zkxpc3RlbmVyLFxuICBsYkxpc3RlbmVyUnVsZSBhcyB0Zkxpc3RlbmVyUnVsZSxcbn0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBJTmV0d29ya0xpc3RlbmVyIH0gZnJvbSBcIi4vbmV0d29yay1saXN0ZW5lclwiO1xuaW1wb3J0IHsgSU5ldHdvcmtUYXJnZXRHcm91cCB9IGZyb20gXCIuL25ldHdvcmstdGFyZ2V0LWdyb3VwXCI7XG5pbXBvcnQgeyBEdXJhdGlvbiB9IGZyb20gXCIuLi8uLi8uLi9kdXJhdGlvblwiO1xuaW1wb3J0IHsgSUxpc3RlbmVyQWN0aW9uIH0gZnJvbSBcIi4uL2xiLXNoYXJlZC9saXN0ZW5lci1hY3Rpb25cIjtcblxuLyoqXG4gKiBXaGF0IHRvIGRvIHdoZW4gYSBjbGllbnQgbWFrZXMgYSByZXF1ZXN0IHRvIGEgbGlzdGVuZXJcbiAqXG4gKiBTb21lIGFjdGlvbnMgY2FuIGJlIGNvbWJpbmVkIHdpdGggb3RoZXIgb25lcyAoc3BlY2lmaWNhbGx5LFxuICogeW91IGNhbiBwZXJmb3JtIGF1dGhlbnRpY2F0aW9uIGJlZm9yZSBzZXJ2aW5nIHRoZSByZXF1ZXN0KS5cbiAqXG4gKiBNdWx0aXBsZSBhY3Rpb25zIGZvcm0gYSBsaW5rZWQgY2hhaW47IHRoZSBjaGFpbiBtdXN0IGFsd2F5cyB0ZXJtaW5hdGUgaW4gYVxuICogKih3ZWlnaHRlZClmb3J3YXJkKiwgKmZpeGVkUmVzcG9uc2UqIG9yICpyZWRpcmVjdCogYWN0aW9uLlxuICpcbiAqIElmIGFuIGFjdGlvbiBzdXBwb3J0cyBjaGFpbmluZywgdGhlIG5leHQgYWN0aW9uIGNhbiBiZSBpbmRpY2F0ZWRcbiAqIGJ5IHBhc3NpbmcgaXQgaW4gdGhlIGBuZXh0YCBwcm9wZXJ0eS5cbiAqL1xuZXhwb3J0IGNsYXNzIE5ldHdvcmtMaXN0ZW5lckFjdGlvbiBpbXBsZW1lbnRzIElMaXN0ZW5lckFjdGlvbiB7XG4gIC8qKlxuICAgKiBGb3J3YXJkIHRvIG9uZSBvciBtb3JlIFRhcmdldCBHcm91cHNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZm9yd2FyZChcbiAgICB0YXJnZXRHcm91cHM6IElOZXR3b3JrVGFyZ2V0R3JvdXBbXSxcbiAgICBvcHRpb25zOiBOZXR3b3JrRm9yd2FyZE9wdGlvbnMgPSB7fSxcbiAgKTogTmV0d29ya0xpc3RlbmVyQWN0aW9uIHtcbiAgICBpZiAodGFyZ2V0R3JvdXBzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIk5lZWQgYXQgbGVhc3Qgb25lIHRhcmdldEdyb3VwIGluIGEgTmV0d29ya0xpc3RlbmVyQWN0aW9uLmZvcndhcmQoKVwiLFxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHRhcmdldEdyb3Vwcy5sZW5ndGggPT09IDEgJiYgb3B0aW9ucy5zdGlja2luZXNzRHVyYXRpb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgLy8gUmVuZGVyIGEgXCJzaW1wbGVcIiBhY3Rpb24gZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggb2xkIHRlbXBsYXRlc1xuICAgICAgcmV0dXJuIG5ldyBUYXJnZXRHcm91cExpc3RlbmVyQWN0aW9uKHRhcmdldEdyb3Vwcywge1xuICAgICAgICB0eXBlOiBcImZvcndhcmRcIixcbiAgICAgICAgdGFyZ2V0R3JvdXBBcm46IHRhcmdldEdyb3Vwc1swXS50YXJnZXRHcm91cEFybixcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgVGFyZ2V0R3JvdXBMaXN0ZW5lckFjdGlvbih0YXJnZXRHcm91cHMsIHtcbiAgICAgIHR5cGU6IFwiZm9yd2FyZFwiLFxuICAgICAgZm9yd2FyZDoge1xuICAgICAgICB0YXJnZXRHcm91cDogdGFyZ2V0R3JvdXBzLm1hcCgoZykgPT4gKHtcbiAgICAgICAgICBhcm46IGcudGFyZ2V0R3JvdXBBcm4sXG4gICAgICAgIH0pKSxcbiAgICAgICAgc3RpY2tpbmVzczogb3B0aW9ucy5zdGlja2luZXNzRHVyYXRpb25cbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgZHVyYXRpb246IG9wdGlvbnMuc3RpY2tpbmVzc0R1cmF0aW9uLnRvU2Vjb25kcygpLFxuICAgICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGb3J3YXJkIHRvIG9uZSBvciBtb3JlIFRhcmdldCBHcm91cHMgd2hpY2ggYXJlIHdlaWdodGVkIGRpZmZlcmVudGx5XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdlaWdodGVkRm9yd2FyZChcbiAgICB0YXJnZXRHcm91cHM6IE5ldHdvcmtXZWlnaHRlZFRhcmdldEdyb3VwW10sXG4gICAgb3B0aW9uczogTmV0d29ya0ZvcndhcmRPcHRpb25zID0ge30sXG4gICk6IE5ldHdvcmtMaXN0ZW5lckFjdGlvbiB7XG4gICAgaWYgKHRhcmdldEdyb3Vwcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJOZWVkIGF0IGxlYXN0IG9uZSB0YXJnZXRHcm91cCBpbiBhIE5ldHdvcmtMaXN0ZW5lckFjdGlvbi53ZWlnaHRlZEZvcndhcmQoKVwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFRhcmdldEdyb3VwTGlzdGVuZXJBY3Rpb24oXG4gICAgICB0YXJnZXRHcm91cHMubWFwKChnKSA9PiBnLnRhcmdldEdyb3VwKSxcbiAgICAgIHtcbiAgICAgICAgdHlwZTogXCJmb3J3YXJkXCIsXG4gICAgICAgIGZvcndhcmQ6IHtcbiAgICAgICAgICB0YXJnZXRHcm91cDogdGFyZ2V0R3JvdXBzLm1hcCgoZykgPT4gKHtcbiAgICAgICAgICAgIGFybjogZy50YXJnZXRHcm91cC50YXJnZXRHcm91cEFybixcbiAgICAgICAgICAgIHdlaWdodDogZy53ZWlnaHQsXG4gICAgICAgICAgfSkpLFxuICAgICAgICAgIHN0aWNraW5lc3M6IG9wdGlvbnMuc3RpY2tpbmVzc0R1cmF0aW9uXG4gICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjogb3B0aW9ucy5zdGlja2luZXNzRHVyYXRpb24udG9TZWNvbmRzKCksXG4gICAgICAgICAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9hY3Rpb25Kc29uPzogdGZMaXN0ZW5lclJ1bGUuTGJMaXN0ZW5lclJ1bGVBY3Rpb247XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBpbnN0YW5jZSBvZiBOZXR3b3JrTGlzdGVuZXJBY3Rpb25cbiAgICpcbiAgICogVGhlIGRlZmF1bHQgY2xhc3Mgc2hvdWxkIGJlIGdvb2QgZW5vdWdoIGZvciBtb3N0IGNhc2VzIGFuZFxuICAgKiBzaG91bGQgYmUgY3JlYXRlZCBieSB1c2luZyBvbmUgb2YgdGhlIHN0YXRpYyBmYWN0b3J5IGZ1bmN0aW9ucyxcbiAgICogYnV0IGFsbG93IG92ZXJyaWRpbmcgdG8gbWFrZSBzdXJlIHdlIGFsbG93IGZsZXhpYmlsaXR5IGZvciB0aGUgZnV0dXJlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdEFjdGlvbkpzb246IHRmTGlzdGVuZXIuTGJMaXN0ZW5lckRlZmF1bHRBY3Rpb24sXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5leHQ/OiBOZXR3b3JrTGlzdGVuZXJBY3Rpb24sXG4gICkge31cblxuICAvKipcbiAgICogUmVuZGVyIHRoZSBsaXN0ZW5lciBydWxlIGFjdGlvbnMgaW4gdGhpcyBjaGFpblxuICAgKi9cbiAgcHVibGljIHJlbmRlclJ1bGVBY3Rpb25zKCk6IHRmTGlzdGVuZXJSdWxlLkxiTGlzdGVuZXJSdWxlQWN0aW9uW10ge1xuICAgIGNvbnN0IGFjdGlvbkpzb24gPVxuICAgICAgdGhpcy5fYWN0aW9uSnNvbiA/P1xuICAgICAgKHRoaXMuZGVmYXVsdEFjdGlvbkpzb24gYXMgdGZMaXN0ZW5lclJ1bGUuTGJMaXN0ZW5lclJ1bGVBY3Rpb24pO1xuICAgIHJldHVybiB0aGlzLl9yZW51bWJlcihbXG4gICAgICBhY3Rpb25Kc29uLFxuICAgICAgLi4uKHRoaXMubmV4dD8ucmVuZGVyUnVsZUFjdGlvbnMoKSA/PyBbXSksXG4gICAgXSk7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIHRoZSBsaXN0ZW5lciBkZWZhdWx0IGFjdGlvbnMgaW4gdGhpcyBjaGFpblxuICAgKi9cbiAgcHVibGljIHJlbmRlckFjdGlvbnMoKTogdGZMaXN0ZW5lci5MYkxpc3RlbmVyRGVmYXVsdEFjdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5fcmVudW1iZXIoW1xuICAgICAgdGhpcy5kZWZhdWx0QWN0aW9uSnNvbixcbiAgICAgIC4uLih0aGlzLm5leHQ/LnJlbmRlckFjdGlvbnMoKSA/PyBbXSksXG4gICAgXSk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gdGhlIGFjdGlvbiBpcyBiZWluZyB1c2VkIGluIGEgbGlzdGVuZXJcbiAgICovXG4gIHB1YmxpYyBiaW5kKHNjb3BlOiBDb25zdHJ1Y3QsIGxpc3RlbmVyOiBJTmV0d29ya0xpc3RlbmVyKSB7XG4gICAgLy8gRW1wdHkgb24gcHVycG9zZVxuICAgIEFycmF5LmlzQXJyYXkoc2NvcGUpO1xuICAgIEFycmF5LmlzQXJyYXkobGlzdGVuZXIpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVudW1iZXI8XG4gICAgQWN0aW9uUHJvcGVydHkgZXh0ZW5kc1xuICAgICAgfCB0Zkxpc3RlbmVyLkxiTGlzdGVuZXJEZWZhdWx0QWN0aW9uXG4gICAgICB8IHRmTGlzdGVuZXJSdWxlLkxiTGlzdGVuZXJSdWxlQWN0aW9uID0gdGZMaXN0ZW5lci5MYkxpc3RlbmVyRGVmYXVsdEFjdGlvbixcbiAgPihhY3Rpb25zOiBBY3Rpb25Qcm9wZXJ0eVtdKTogQWN0aW9uUHJvcGVydHlbXSB7XG4gICAgaWYgKGFjdGlvbnMubGVuZ3RoIDwgMikge1xuICAgICAgcmV0dXJuIGFjdGlvbnM7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFjdGlvbnMubWFwKChhY3Rpb24sIGkpID0+ICh7IC4uLmFjdGlvbiwgb3JkZXI6IGkgKyAxIH0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW51bWJlciB0aGUgXCJvcmRlclwiIGZpZWxkcyBpbiB0aGUgYWN0aW9ucyBhcnJheS5cbiAgICpcbiAgICogV2UgZG9uJ3QgbnVtYmVyIGZvciAwIG9yIDEgZWxlbWVudHMsIGJ1dCBvdGhlcndpc2UgbnVtYmVyIHRoZW0gMS4uLiNhY3Rpb25zXG4gICAqIHNvIEVMQiBrbm93cyBhYm91dCB0aGUgcmlnaHQgb3JkZXIuXG4gICAqXG4gICAqIERvIHRoaXMgaW4gYE5ldHdvcmtMaXN0ZW5lckFjdGlvbmAgaW5zdGVhZCBvZiBpbiBgTGlzdGVuZXJgIHNvIHRoYXQgd2UgZ2l2ZVxuICAgKiB1c2VycyB0aGUgb3Bwb3J0dW5pdHkgdG8gb3ZlcnJpZGUgYnkgc3ViY2xhc3NpbmcgYW5kIG92ZXJyaWRpbmcgYHJlbmRlckFjdGlvbnNgLlxuICAgKi9cbiAgcHJvdGVjdGVkIHJlbnVtYmVyKFxuICAgIGFjdGlvbnM6IHRmTGlzdGVuZXIuTGJMaXN0ZW5lckRlZmF1bHRBY3Rpb25bXSxcbiAgKTogdGZMaXN0ZW5lci5MYkxpc3RlbmVyRGVmYXVsdEFjdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5fcmVudW1iZXIoYWN0aW9ucyk7XG4gIH1cbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBgTmV0d29ya0xpc3RlbmVyQWN0aW9uLmZvcndhcmQoKWBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrRm9yd2FyZE9wdGlvbnMge1xuICAvKipcbiAgICogRm9yIGhvdyBsb25nIGNsaWVudHMgc2hvdWxkIGJlIGRpcmVjdGVkIHRvIHRoZSBzYW1lIHRhcmdldCBncm91cFxuICAgKlxuICAgKiBSYW5nZSBiZXR3ZWVuIDEgc2Vjb25kIGFuZCA3IGRheXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gc3RpY2tpbmVzc1xuICAgKi9cbiAgcmVhZG9ubHkgc3RpY2tpbmVzc0R1cmF0aW9uPzogRHVyYXRpb247XG59XG5cbi8qKlxuICogQSBUYXJnZXQgR3JvdXAgYW5kIHdlaWdodCBjb21iaW5hdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtXZWlnaHRlZFRhcmdldEdyb3VwIHtcbiAgLyoqXG4gICAqIFRoZSB0YXJnZXQgZ3JvdXBcbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldEdyb3VwOiBJTmV0d29ya1RhcmdldEdyb3VwO1xuXG4gIC8qKlxuICAgKiBUaGUgdGFyZ2V0IGdyb3VwJ3Mgd2VpZ2h0XG4gICAqXG4gICAqIFJhbmdlIGlzIFswLi4xMDAwKS5cbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgd2VpZ2h0PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIExpc3RlbmVyIEFjdGlvbiB0aGF0IGNhbGxzIFwicmVnaXN0ZXJMaXN0ZW5lclwiIG9uIFRhcmdldEdyb3Vwc1xuICovXG5jbGFzcyBUYXJnZXRHcm91cExpc3RlbmVyQWN0aW9uIGV4dGVuZHMgTmV0d29ya0xpc3RlbmVyQWN0aW9uIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB0YXJnZXRHcm91cHM6IElOZXR3b3JrVGFyZ2V0R3JvdXBbXSxcbiAgICBkZWZhdWx0QWN0aW9uSnNvbjogdGZMaXN0ZW5lci5MYkxpc3RlbmVyRGVmYXVsdEFjdGlvbixcbiAgKSB7XG4gICAgc3VwZXIoZGVmYXVsdEFjdGlvbkpzb24pO1xuICB9XG5cbiAgcHVibGljIGJpbmQoX3Njb3BlOiBDb25zdHJ1Y3QsIGxpc3RlbmVyOiBJTmV0d29ya0xpc3RlbmVyKSB7XG4gICAgZm9yIChjb25zdCB0ZyBvZiB0aGlzLnRhcmdldEdyb3Vwcykge1xuICAgICAgdGcucmVnaXN0ZXJMaXN0ZW5lcihsaXN0ZW5lcik7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import { INetworkListener } from "./network-listener";
|
|
3
|
+
import { IListenerCertificate } from "../lb-shared/listener-certificate";
|
|
4
|
+
/**
|
|
5
|
+
* Properties for adding a set of certificates to a listener
|
|
6
|
+
*/
|
|
7
|
+
export interface NetworkListenerCertificateProps {
|
|
8
|
+
/**
|
|
9
|
+
* The listener to attach the rule to
|
|
10
|
+
*/
|
|
11
|
+
readonly listener: INetworkListener;
|
|
12
|
+
/**
|
|
13
|
+
* Certificates to attach
|
|
14
|
+
*
|
|
15
|
+
* Duplicates are not allowed.
|
|
16
|
+
*/
|
|
17
|
+
readonly certificates: IListenerCertificate[];
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Add certificates to a listener
|
|
21
|
+
*/
|
|
22
|
+
export declare class NetworkListenerCertificate extends Construct {
|
|
23
|
+
constructor(scope: Construct, id: string, props: NetworkListenerCertificateProps);
|
|
24
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// https://github.com/aws/aws-cdk/blob/v2.175.1/packages/aws-cdk-lib/aws-elasticloadbalancingv2/lib/nlb/network-listener-certificate.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.NetworkListenerCertificate = void 0;
|
|
5
|
+
const provider_aws_1 = require("@cdktf/provider-aws");
|
|
6
|
+
const constructs_1 = require("constructs");
|
|
7
|
+
/**
|
|
8
|
+
* Add certificates to a listener
|
|
9
|
+
*/
|
|
10
|
+
class NetworkListenerCertificate extends constructs_1.Construct {
|
|
11
|
+
constructor(scope, id, props) {
|
|
12
|
+
super(scope, id);
|
|
13
|
+
const certificates = [
|
|
14
|
+
...(props.certificates || []).map((c) => ({
|
|
15
|
+
certificateArn: c.certificateArn,
|
|
16
|
+
})),
|
|
17
|
+
];
|
|
18
|
+
new provider_aws_1.lbListenerCertificate.LbListenerCertificate(this, "Resource", {
|
|
19
|
+
listenerArn: props.listener.listenerArn,
|
|
20
|
+
certificateArn: certificates[0].certificateArn,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.NetworkListenerCertificate = NetworkListenerCertificate;
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay1saXN0ZW5lci1jZXJ0aWZpY2F0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9hd3MvY29tcHV0ZS9ubGIvbmV0d29yay1saXN0ZW5lci1jZXJ0aWZpY2F0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsdUlBQXVJOzs7QUFFdkksc0RBQXFGO0FBRXJGLDJDQUF1QztBQXFCdkM7O0dBRUc7QUFDSCxNQUFhLDBCQUEyQixTQUFRLHNCQUFTO0lBQ3ZELFlBQ0UsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQXNDO1FBRXRDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsTUFBTSxZQUFZLEdBQUc7WUFDbkIsR0FBRyxDQUFDLEtBQUssQ0FBQyxZQUFZLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN4QyxjQUFjLEVBQUUsQ0FBQyxDQUFDLGNBQWM7YUFDakMsQ0FBQyxDQUFDO1NBQ0osQ0FBQztRQUVGLElBQUksb0NBQXFCLENBQUMscUJBQXFCLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNoRSxXQUFXLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXO1lBQ3ZDLGNBQWMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYztTQUMvQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFuQkQsZ0VBbUJDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTc1LjEvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjIvbGliL25sYi9uZXR3b3JrLWxpc3RlbmVyLWNlcnRpZmljYXRlLnRzXG5cbmltcG9ydCB7IGxiTGlzdGVuZXJDZXJ0aWZpY2F0ZSBhcyB0Zkxpc3RlbmVyQ2VydGlmaWNhdGUgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgSU5ldHdvcmtMaXN0ZW5lciB9IGZyb20gXCIuL25ldHdvcmstbGlzdGVuZXJcIjtcbmltcG9ydCB7IElMaXN0ZW5lckNlcnRpZmljYXRlIH0gZnJvbSBcIi4uL2xiLXNoYXJlZC9saXN0ZW5lci1jZXJ0aWZpY2F0ZVwiO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGFkZGluZyBhIHNldCBvZiBjZXJ0aWZpY2F0ZXMgdG8gYSBsaXN0ZW5lclxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtMaXN0ZW5lckNlcnRpZmljYXRlUHJvcHMge1xuICAvKipcbiAgICogVGhlIGxpc3RlbmVyIHRvIGF0dGFjaCB0aGUgcnVsZSB0b1xuICAgKi9cbiAgcmVhZG9ubHkgbGlzdGVuZXI6IElOZXR3b3JrTGlzdGVuZXI7XG5cbiAgLyoqXG4gICAqIENlcnRpZmljYXRlcyB0byBhdHRhY2hcbiAgICpcbiAgICogRHVwbGljYXRlcyBhcmUgbm90IGFsbG93ZWQuXG4gICAqL1xuICByZWFkb25seSBjZXJ0aWZpY2F0ZXM6IElMaXN0ZW5lckNlcnRpZmljYXRlW107XG59XG5cbi8qKlxuICogQWRkIGNlcnRpZmljYXRlcyB0byBhIGxpc3RlbmVyXG4gKi9cbmV4cG9ydCBjbGFzcyBOZXR3b3JrTGlzdGVuZXJDZXJ0aWZpY2F0ZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogTmV0d29ya0xpc3RlbmVyQ2VydGlmaWNhdGVQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGNlcnRpZmljYXRlcyA9IFtcbiAgICAgIC4uLihwcm9wcy5jZXJ0aWZpY2F0ZXMgfHwgW10pLm1hcCgoYykgPT4gKHtcbiAgICAgICAgY2VydGlmaWNhdGVBcm46IGMuY2VydGlmaWNhdGVBcm4sXG4gICAgICB9KSksXG4gICAgXTtcblxuICAgIG5ldyB0Zkxpc3RlbmVyQ2VydGlmaWNhdGUuTGJMaXN0ZW5lckNlcnRpZmljYXRlKHRoaXMsIFwiUmVzb3VyY2VcIiwge1xuICAgICAgbGlzdGVuZXJBcm46IHByb3BzLmxpc3RlbmVyLmxpc3RlbmVyQXJuLFxuICAgICAgY2VydGlmaWNhdGVBcm46IGNlcnRpZmljYXRlc1swXS5jZXJ0aWZpY2F0ZUFybixcbiAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import { NetworkListenerAction } from "./network-listener-action";
|
|
3
|
+
import { INetworkLoadBalancer } from "./network-load-balancer";
|
|
4
|
+
import { INetworkLoadBalancerTarget, INetworkTargetGroup, NetworkTargetGroup } from "./network-target-group";
|
|
5
|
+
import { Duration } from "../../../duration";
|
|
6
|
+
import { BaseListener, BaseListenerLookupOptions, IListener } from "../lb-shared/base-listener";
|
|
7
|
+
import { HealthCheck } from "../lb-shared/base-target-group";
|
|
8
|
+
import { AlpnPolicy, LbProtocol, SslPolicy } from "../lb-shared/enums";
|
|
9
|
+
import { IListenerCertificate } from "../lb-shared/listener-certificate";
|
|
10
|
+
/**
|
|
11
|
+
* Basic properties for a Network Listener
|
|
12
|
+
*/
|
|
13
|
+
export interface BaseNetworkListenerProps {
|
|
14
|
+
/**
|
|
15
|
+
* The port on which the listener listens for requests.
|
|
16
|
+
*/
|
|
17
|
+
readonly port: number;
|
|
18
|
+
/**
|
|
19
|
+
* Default target groups to load balance to
|
|
20
|
+
*
|
|
21
|
+
* All target groups will be load balanced to with equal weight and without
|
|
22
|
+
* stickiness. For a more complex configuration than that, use
|
|
23
|
+
* either `defaultAction` or `addAction()`.
|
|
24
|
+
*
|
|
25
|
+
* Cannot be specified together with `defaultAction`.
|
|
26
|
+
*
|
|
27
|
+
* @default - None.
|
|
28
|
+
*/
|
|
29
|
+
readonly defaultTargetGroups?: INetworkTargetGroup[];
|
|
30
|
+
/**
|
|
31
|
+
* Default action to take for requests to this listener
|
|
32
|
+
*
|
|
33
|
+
* This allows full control of the default Action of the load balancer,
|
|
34
|
+
* including weighted forwarding. See the `NetworkListenerAction` class for
|
|
35
|
+
* all options.
|
|
36
|
+
*
|
|
37
|
+
* Cannot be specified together with `defaultTargetGroups`.
|
|
38
|
+
*
|
|
39
|
+
* @default - None.
|
|
40
|
+
*/
|
|
41
|
+
readonly defaultAction?: NetworkListenerAction;
|
|
42
|
+
/**
|
|
43
|
+
* Protocol for listener, expects TCP, TLS, UDP, or TCP_UDP.
|
|
44
|
+
*
|
|
45
|
+
* @default - TLS if certificates are provided. TCP otherwise.
|
|
46
|
+
*/
|
|
47
|
+
readonly protocol?: LbProtocol;
|
|
48
|
+
/**
|
|
49
|
+
* Certificate list of ACM cert ARNs. You must provide exactly one certificate if the listener protocol is HTTPS or TLS.
|
|
50
|
+
*
|
|
51
|
+
* @default - No certificates.
|
|
52
|
+
*/
|
|
53
|
+
readonly certificates?: IListenerCertificate[];
|
|
54
|
+
/**
|
|
55
|
+
* SSL Policy
|
|
56
|
+
*
|
|
57
|
+
* @default - Current predefined security policy.
|
|
58
|
+
*/
|
|
59
|
+
readonly sslPolicy?: SslPolicy;
|
|
60
|
+
/**
|
|
61
|
+
* Application-Layer Protocol Negotiation (ALPN) is a TLS extension that is sent on the initial TLS handshake hello messages.
|
|
62
|
+
* ALPN enables the application layer to negotiate which protocols should be used over a secure connection, such as HTTP/1 and HTTP/2.
|
|
63
|
+
*
|
|
64
|
+
* Can only be specified together with Protocol TLS.
|
|
65
|
+
*
|
|
66
|
+
* @default - None
|
|
67
|
+
*/
|
|
68
|
+
readonly alpnPolicy?: AlpnPolicy;
|
|
69
|
+
/**
|
|
70
|
+
* The load balancer TCP idle timeout.
|
|
71
|
+
*
|
|
72
|
+
* @default Duration.seconds(350)
|
|
73
|
+
*/
|
|
74
|
+
readonly tcpIdleTimeout?: Duration;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Properties for adding a certificate to a listener
|
|
78
|
+
*
|
|
79
|
+
* This interface exists for backwards compatibility.
|
|
80
|
+
*
|
|
81
|
+
* @deprecated Use IListenerCertificate instead
|
|
82
|
+
*/
|
|
83
|
+
export interface INetworkListenerCertificateProps extends IListenerCertificate {
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Properties for a Network Listener attached to a Load Balancer
|
|
87
|
+
*/
|
|
88
|
+
export interface NetworkListenerProps extends BaseNetworkListenerProps {
|
|
89
|
+
/**
|
|
90
|
+
* The load balancer to attach this listener to
|
|
91
|
+
*/
|
|
92
|
+
readonly loadBalancer: INetworkLoadBalancer;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Options for looking up a network listener.
|
|
96
|
+
*/
|
|
97
|
+
export interface NetworkListenerLookupOptions extends BaseListenerLookupOptions {
|
|
98
|
+
/**
|
|
99
|
+
* Protocol of the listener port
|
|
100
|
+
* @default - listener is not filtered by protocol
|
|
101
|
+
*/
|
|
102
|
+
readonly listenerProtocol?: LbProtocol;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Define a Network Listener
|
|
106
|
+
*
|
|
107
|
+
* @resource AWS::ElasticLoadBalancingV2::Listener
|
|
108
|
+
*/
|
|
109
|
+
export declare class NetworkListener extends BaseListener implements INetworkListener {
|
|
110
|
+
/**
|
|
111
|
+
* Import an existing listener
|
|
112
|
+
*/
|
|
113
|
+
static fromNetworkListenerArn(scope: Construct, id: string, networkListenerArn: string): INetworkListener;
|
|
114
|
+
/**
|
|
115
|
+
* The load balancer this listener is attached to
|
|
116
|
+
*/
|
|
117
|
+
readonly loadBalancer: INetworkLoadBalancer;
|
|
118
|
+
/**
|
|
119
|
+
* ARNs of certificates added to this listener
|
|
120
|
+
*
|
|
121
|
+
* The first certificate is used as the default certificate.
|
|
122
|
+
*/
|
|
123
|
+
private readonly certificateArns;
|
|
124
|
+
/**
|
|
125
|
+
* the protocol of the listener
|
|
126
|
+
*/
|
|
127
|
+
private readonly protocol;
|
|
128
|
+
constructor(scope: Construct, id: string, props: NetworkListenerProps);
|
|
129
|
+
/**
|
|
130
|
+
* Add one or more certificates to this listener.
|
|
131
|
+
*
|
|
132
|
+
* After the first certificate, this creates NetworkListenerCertificates
|
|
133
|
+
* resources since cloudformation requires the certificates array on the
|
|
134
|
+
* listener resource to have a length of 1.
|
|
135
|
+
*/
|
|
136
|
+
addCertificates(id: string, certificates: IListenerCertificate[]): void;
|
|
137
|
+
/**
|
|
138
|
+
* Load balance incoming requests to the given target groups.
|
|
139
|
+
*
|
|
140
|
+
* All target groups will be load balanced to with equal weight and without
|
|
141
|
+
* stickiness. For a more complex configuration than that, use `addAction()`.
|
|
142
|
+
*/
|
|
143
|
+
addTargetGroups(_id: string, ...targetGroups: INetworkTargetGroup[]): void;
|
|
144
|
+
/**
|
|
145
|
+
* Perform the given Action on incoming requests
|
|
146
|
+
*
|
|
147
|
+
* This allows full control of the default Action of the load balancer,
|
|
148
|
+
* including weighted forwarding. See the `NetworkListenerAction` class for
|
|
149
|
+
* all options.
|
|
150
|
+
*/
|
|
151
|
+
addAction(_id: string, props: AddNetworkActionProps): void;
|
|
152
|
+
/**
|
|
153
|
+
* Load balance incoming requests to the given load balancing targets.
|
|
154
|
+
*
|
|
155
|
+
* This method implicitly creates a NetworkTargetGroup for the targets
|
|
156
|
+
* involved, and a 'forward' action to route traffic to the given TargetGroup.
|
|
157
|
+
*
|
|
158
|
+
* If you want more control over the precise setup, create the TargetGroup
|
|
159
|
+
* and use `addAction` yourself.
|
|
160
|
+
*
|
|
161
|
+
* It's possible to add conditions to the targets added in this way. At least
|
|
162
|
+
* one set of targets must be added without conditions.
|
|
163
|
+
*
|
|
164
|
+
* @returns The newly created target group
|
|
165
|
+
*/
|
|
166
|
+
addTargets(id: string, props: AddNetworkTargetsProps): NetworkTargetGroup;
|
|
167
|
+
/**
|
|
168
|
+
* Wrapper for _setDefaultAction which does a type-safe bind
|
|
169
|
+
*/
|
|
170
|
+
private setDefaultAction;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Properties to reference an existing listener
|
|
174
|
+
*/
|
|
175
|
+
export interface INetworkListener extends IListener {
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Properties for adding a new action to a listener
|
|
179
|
+
*/
|
|
180
|
+
export interface AddNetworkActionProps {
|
|
181
|
+
/**
|
|
182
|
+
* Action to perform
|
|
183
|
+
*/
|
|
184
|
+
readonly action: NetworkListenerAction;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Properties for adding new network targets to a listener
|
|
188
|
+
*/
|
|
189
|
+
export interface AddNetworkTargetsProps {
|
|
190
|
+
/**
|
|
191
|
+
* The port on which the target receives traffic.
|
|
192
|
+
*
|
|
193
|
+
* @default Determined from protocol if known
|
|
194
|
+
*/
|
|
195
|
+
readonly port: number;
|
|
196
|
+
/**
|
|
197
|
+
* Protocol for target group, expects TCP, TLS, UDP, or TCP_UDP.
|
|
198
|
+
*
|
|
199
|
+
* @default - inherits the protocol of the listener
|
|
200
|
+
*/
|
|
201
|
+
readonly protocol?: LbProtocol;
|
|
202
|
+
/**
|
|
203
|
+
* The targets to add to this target group.
|
|
204
|
+
*
|
|
205
|
+
* Can be `Instance`, `IPAddress`, or any self-registering load balancing
|
|
206
|
+
* target. If you use either `Instance` or `IPAddress` as targets, all
|
|
207
|
+
* target must be of the same type.
|
|
208
|
+
*/
|
|
209
|
+
readonly targets?: INetworkLoadBalancerTarget[];
|
|
210
|
+
/**
|
|
211
|
+
* The name of the target group.
|
|
212
|
+
*
|
|
213
|
+
* This name must be unique per region per account, can have a maximum of
|
|
214
|
+
* 32 characters, must contain only alphanumeric characters or hyphens, and
|
|
215
|
+
* must not begin or end with a hyphen.
|
|
216
|
+
*
|
|
217
|
+
* @default Automatically generated
|
|
218
|
+
*/
|
|
219
|
+
readonly targetGroupName?: string;
|
|
220
|
+
/**
|
|
221
|
+
* The amount of time for Elastic Load Balancing to wait before deregistering a target.
|
|
222
|
+
*
|
|
223
|
+
* The range is 0-3600 seconds.
|
|
224
|
+
*
|
|
225
|
+
* @default Duration.minutes(5)
|
|
226
|
+
*/
|
|
227
|
+
readonly deregistrationDelay?: Duration;
|
|
228
|
+
/**
|
|
229
|
+
* Indicates whether Proxy Protocol version 2 is enabled.
|
|
230
|
+
*
|
|
231
|
+
* @default false
|
|
232
|
+
*/
|
|
233
|
+
readonly proxyProtocolV2?: boolean;
|
|
234
|
+
/**
|
|
235
|
+
* Indicates whether client IP preservation is enabled.
|
|
236
|
+
*
|
|
237
|
+
* @default false if the target group type is IP address and the
|
|
238
|
+
* target group protocol is TCP or TLS. Otherwise, true.
|
|
239
|
+
*/
|
|
240
|
+
readonly preserveClientIp?: boolean;
|
|
241
|
+
/**
|
|
242
|
+
* Health check configuration
|
|
243
|
+
*
|
|
244
|
+
* @default - The default value for each property in this configuration varies depending on the target.
|
|
245
|
+
* @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticloadbalancingv2-targetgroup.html#aws-resource-elasticloadbalancingv2-targetgroup-properties
|
|
246
|
+
*/
|
|
247
|
+
readonly healthCheck?: HealthCheck;
|
|
248
|
+
}
|