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,248 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a, _b;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Ipv6Addresses = exports.IpAddresses = 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/ip-addresses.ts
|
|
7
|
+
const provider_aws_1 = require("@cdktf/provider-aws");
|
|
8
|
+
const cdktf_1 = require("cdktf");
|
|
9
|
+
const cidr_splits_1 = require("./cidr-splits");
|
|
10
|
+
const network_util_1 = require("./network-util");
|
|
11
|
+
/**
|
|
12
|
+
* An abstract Provider of IpAddresses
|
|
13
|
+
*
|
|
14
|
+
* Note this is specific to the IPv4 CIDR.
|
|
15
|
+
*/
|
|
16
|
+
class IpAddresses {
|
|
17
|
+
/**
|
|
18
|
+
* Used to provide local Ip Address Management services for your VPC
|
|
19
|
+
*
|
|
20
|
+
* VPC CIDR is supplied at creation and subnets are calculated locally
|
|
21
|
+
*
|
|
22
|
+
* Note this is specific to the IPv4 CIDR.
|
|
23
|
+
*
|
|
24
|
+
*/
|
|
25
|
+
static cidr(cidrBlock) {
|
|
26
|
+
return new Cidr(cidrBlock);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Used to provide centralized Ip Address Management services for your VPC
|
|
30
|
+
*
|
|
31
|
+
* Uses VPC CIDR allocations from AWS IPAM
|
|
32
|
+
*
|
|
33
|
+
* Note this is specific to the IPv4 CIDR.
|
|
34
|
+
*
|
|
35
|
+
* @see https://docs.aws.amazon.com/vpc/latest/ipam/what-it-is-ipam.html
|
|
36
|
+
*/
|
|
37
|
+
static awsIpamAllocation(props) {
|
|
38
|
+
return new AwsIpam(props);
|
|
39
|
+
}
|
|
40
|
+
constructor() { }
|
|
41
|
+
}
|
|
42
|
+
exports.IpAddresses = IpAddresses;
|
|
43
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
44
|
+
IpAddresses[_a] = { fqn: "terraconstructs.aws.compute.IpAddresses", version: "0.0.12" };
|
|
45
|
+
/**
|
|
46
|
+
* Implements integration with Amazon VPC IP Address Manager (IPAM).
|
|
47
|
+
*
|
|
48
|
+
* See the package-level documentation of this package for an overview
|
|
49
|
+
* of the various dimensions in which you can configure your VPC.
|
|
50
|
+
*
|
|
51
|
+
* For example:
|
|
52
|
+
*
|
|
53
|
+
* ```ts
|
|
54
|
+
* new compute.Vpc(stack, 'TheVPC', {
|
|
55
|
+
* ipAddresses: IpAddresses.awsIpamAllocation({
|
|
56
|
+
* ipv4IpamPoolId: pool.ref,
|
|
57
|
+
* ipv4NetmaskLength: 18,
|
|
58
|
+
* defaultSubnetIpv4NetmaskLength: 24
|
|
59
|
+
* })
|
|
60
|
+
* });
|
|
61
|
+
* ```
|
|
62
|
+
*
|
|
63
|
+
*/
|
|
64
|
+
class AwsIpam {
|
|
65
|
+
constructor(props) {
|
|
66
|
+
this.props = props;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Allocates Vpc CIDR. called when creating a Vpc using AwsIpam.
|
|
70
|
+
*/
|
|
71
|
+
allocateVpcCidr() {
|
|
72
|
+
return {
|
|
73
|
+
ipv4NetmaskLength: this.props.ipv4NetmaskLength,
|
|
74
|
+
ipv4IpamPoolId: this.props.ipv4IpamPoolId,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Allocates Subnets CIDRs. Called by VPC when creating subnets.
|
|
79
|
+
*/
|
|
80
|
+
allocateSubnetsCidr(input) {
|
|
81
|
+
const cidrSplit = (0, cidr_splits_1.calculateCidrSplits)(this.props.ipv4NetmaskLength, input.requestedSubnets.map((mask) => {
|
|
82
|
+
if (mask.configuration.cidrMask === undefined &&
|
|
83
|
+
this.props.defaultSubnetIpv4NetmaskLength === undefined) {
|
|
84
|
+
throw new Error("If you have not set a cidr for all subnets in this case you must set a defaultCidrMask in AwsIpam Options");
|
|
85
|
+
}
|
|
86
|
+
const cidrMask = mask.configuration.cidrMask ??
|
|
87
|
+
this.props.defaultSubnetIpv4NetmaskLength;
|
|
88
|
+
if (cidrMask === undefined) {
|
|
89
|
+
throw new Error("Should not have happened, but satisfies the type checker");
|
|
90
|
+
}
|
|
91
|
+
return cidrMask;
|
|
92
|
+
}));
|
|
93
|
+
const allocatedSubnets = cidrSplit.map((subnet) => {
|
|
94
|
+
return {
|
|
95
|
+
cidr: cdktf_1.Fn.cidrsubnet(input.vpcCidr, subnet.newbits, subnet.index),
|
|
96
|
+
};
|
|
97
|
+
});
|
|
98
|
+
return {
|
|
99
|
+
allocatedSubnets: allocatedSubnets,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Implements static Ip assignment locally.
|
|
105
|
+
*
|
|
106
|
+
* See the package-level documentation of this package for an overview
|
|
107
|
+
* of the various dimensions in which you can configure your VPC.
|
|
108
|
+
*
|
|
109
|
+
* For example:
|
|
110
|
+
*
|
|
111
|
+
* ```ts
|
|
112
|
+
* new compute.Vpc(stack, 'TheVPC', {
|
|
113
|
+
* ipAddresses: compute.IpAddresses.cidr('10.0.1.0/20')
|
|
114
|
+
* });
|
|
115
|
+
* ```
|
|
116
|
+
*
|
|
117
|
+
*/
|
|
118
|
+
class Cidr {
|
|
119
|
+
constructor(cidrBlock) {
|
|
120
|
+
this.cidrBlock = cidrBlock;
|
|
121
|
+
if (cdktf_1.Token.isUnresolved(cidrBlock)) {
|
|
122
|
+
throw new Error("'cidr' property must be a concrete CIDR string, got a Token (we need to parse it for automatic subdivision)");
|
|
123
|
+
}
|
|
124
|
+
this.networkBuilder = new network_util_1.NetworkBuilder(this.cidrBlock);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Allocates Vpc CIDR. Called when creating a Vpc using IpAddresses.cidr.
|
|
128
|
+
*/
|
|
129
|
+
allocateVpcCidr() {
|
|
130
|
+
return {
|
|
131
|
+
cidrBlock: this.networkBuilder.networkCidr.cidr,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Allocates Subnets Cidrs. Called by VPC when creating subnets.
|
|
136
|
+
*/
|
|
137
|
+
allocateSubnetsCidr(input) {
|
|
138
|
+
const allocatedSubnets = [];
|
|
139
|
+
const subnetsWithoutDefinedCidr = [];
|
|
140
|
+
//default: Available IP space is evenly divided across subnets if no cidr is given.
|
|
141
|
+
input.requestedSubnets.forEach((requestedSubnet, index) => {
|
|
142
|
+
if (requestedSubnet.configuration.cidrMask === undefined) {
|
|
143
|
+
subnetsWithoutDefinedCidr.push({
|
|
144
|
+
index,
|
|
145
|
+
requestedSubnet,
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
allocatedSubnets.push({
|
|
150
|
+
cidr: this.networkBuilder.addSubnet(requestedSubnet.configuration.cidrMask),
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
});
|
|
154
|
+
const cidrMaskForRemaining = this.networkBuilder.maskForRemainingSubnets(subnetsWithoutDefinedCidr.length);
|
|
155
|
+
subnetsWithoutDefinedCidr.forEach((subnet) => {
|
|
156
|
+
allocatedSubnets.splice(subnet.index, 0, {
|
|
157
|
+
cidr: this.networkBuilder.addSubnet(cidrMaskForRemaining),
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
return {
|
|
161
|
+
allocatedSubnets: allocatedSubnets,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* An abstract Provider of Ipv6Addresses.
|
|
167
|
+
*
|
|
168
|
+
* Note this is specific to the IPv6 CIDR.
|
|
169
|
+
*/
|
|
170
|
+
class Ipv6Addresses {
|
|
171
|
+
/**
|
|
172
|
+
* Used for IPv6 address management with Amazon provided CIDRs.
|
|
173
|
+
*
|
|
174
|
+
* Note this is specific to the IPv6 CIDR.
|
|
175
|
+
*/
|
|
176
|
+
static amazonProvided() {
|
|
177
|
+
return new AmazonProvided();
|
|
178
|
+
}
|
|
179
|
+
constructor() { }
|
|
180
|
+
}
|
|
181
|
+
exports.Ipv6Addresses = Ipv6Addresses;
|
|
182
|
+
_b = JSII_RTTI_SYMBOL_1;
|
|
183
|
+
Ipv6Addresses[_b] = { fqn: "terraconstructs.aws.compute.Ipv6Addresses", version: "0.0.12" };
|
|
184
|
+
/**
|
|
185
|
+
* Implements integration with Amazon provided IPv6 CIDRs.
|
|
186
|
+
*
|
|
187
|
+
* Note this is specific to the IPv6 CIDR.
|
|
188
|
+
*/
|
|
189
|
+
class AmazonProvided {
|
|
190
|
+
constructor() {
|
|
191
|
+
this.amazonProvided = true;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Called by VPC to allocate IPv6 CIDR.
|
|
195
|
+
*
|
|
196
|
+
* Creates an Amazon provided CIDR block.
|
|
197
|
+
*
|
|
198
|
+
* Note this is specific to the IPv6 CIDR.
|
|
199
|
+
*/
|
|
200
|
+
allocateVpcIpv6Cidr(input) {
|
|
201
|
+
//throw new Error(`vpcId not found, got ${(scope as any).vpcId}`);
|
|
202
|
+
return new provider_aws_1.vpcIpv6CidrBlockAssociation.VpcIpv6CidrBlockAssociation(input.scope, "ipv6cidr", {
|
|
203
|
+
vpcId: input.vpcId,
|
|
204
|
+
assignGeneratedIpv6CidrBlock: this.amazonProvided,
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Split IPv6 CIDR block up for subnets.
|
|
209
|
+
*
|
|
210
|
+
* Called by VPC when creating subnets with IPv6 enabled.
|
|
211
|
+
*
|
|
212
|
+
* Note this is specific to the IPv6 CIDR.
|
|
213
|
+
*/
|
|
214
|
+
createIpv6CidrBlocks(input) {
|
|
215
|
+
let parentMask = input.parentMask ?? 56;
|
|
216
|
+
if (!cdktf_1.Token.isUnresolved(input.ipv6SelectedCidr)) {
|
|
217
|
+
parentMask = parseInt(input.ipv6SelectedCidr.split("/")[1], 10);
|
|
218
|
+
if (Number.isNaN(parentMask)) {
|
|
219
|
+
throw new Error(`Parent CIDR must include a valid mask, got: '${input.ipv6SelectedCidr}'`);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
const sizeMask = parseInt(input.sizeMask ?? "64"); // 128 - 64
|
|
223
|
+
const newbits = sizeMask - parentMask;
|
|
224
|
+
return cdktf_1.Fn.cidrsubnets(input.ipv6SelectedCidr, Array.from({ length: input.subnetCount }, () => newbits));
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Allocates Subnets IPv6 CIDRs. Called by VPC when creating subnets with IPv6 enabled.
|
|
228
|
+
*
|
|
229
|
+
* This function takes the list of allocated subnets,
|
|
230
|
+
* and copies the IPv4 CIDRs while also assigning the IPv6 CIDR.
|
|
231
|
+
*
|
|
232
|
+
* Note this is specific to the IPv6 CIDR.
|
|
233
|
+
*/
|
|
234
|
+
allocateSubnetsIpv6Cidr(input) {
|
|
235
|
+
const allocatedSubnets = [];
|
|
236
|
+
input.allocatedSubnets.forEach((allocated, i) => {
|
|
237
|
+
const allocatedIpv6 = {
|
|
238
|
+
cidr: allocated.cidr,
|
|
239
|
+
ipv6Cidr: cdktf_1.Fn.element(input.ipv6Cidrs, i),
|
|
240
|
+
};
|
|
241
|
+
allocatedSubnets.push(allocatedIpv6);
|
|
242
|
+
});
|
|
243
|
+
return {
|
|
244
|
+
allocatedSubnets: allocatedSubnets,
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXAtYWRkcmVzc2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL2lwLWFkZHJlc3Nlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGdHQUFnRztBQUVoRyxzREFHNkI7QUFDN0IsaUNBQWtDO0FBRWxDLCtDQUFvRDtBQUNwRCxpREFBZ0Q7QUFHaEQ7Ozs7R0FJRztBQUNILE1BQWEsV0FBVztJQUN0Qjs7Ozs7OztPQU9HO0lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFpQjtRQUNsQyxPQUFPLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFtQjtRQUNqRCxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRCxnQkFBdUIsQ0FBQzs7QUExQjFCLGtDQTJCQzs7O0FBdU5EOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSCxNQUFNLE9BQU87SUFDWCxZQUE2QixLQUFtQjtRQUFuQixVQUFLLEdBQUwsS0FBSyxDQUFjO0lBQUcsQ0FBQztJQUVwRDs7T0FFRztJQUNILGVBQWU7UUFDYixPQUFPO1lBQ0wsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUI7WUFDL0MsY0FBYyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYztTQUMxQyxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsbUJBQW1CLENBQUMsS0FBMEI7UUFDNUMsTUFBTSxTQUFTLEdBQUcsSUFBQSxpQ0FBbUIsRUFDbkMsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFDNUIsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2xDLElBQ0UsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEtBQUss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QUFPLEdBQUcsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUV0QyxPQUFPLFVBQUUsQ0FBQyxXQUFXLENBQ25CLEtBQUssQ0FBQyxnQkFBZ0IsRUFDdEIsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQ3pELENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILHVCQUF1QixDQUFDLEtBQThCO1FBQ3BELE1BQU0sZ0JBQWdCLEdBQXNCLEVBQUUsQ0FBQztRQUUvQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzlDLE1BQU0sYUFBYSxHQUFvQjtnQkFDckMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO2dCQUNwQixRQUFRLEVBQUUsVUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQzthQUN6QyxDQUFDO1lBQ0YsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTztZQUNMLGdCQUFnQixFQUFFLGdCQUFnQjtTQUNuQyxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTc1LjEvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLWVjMi9saWIvaXAtYWRkcmVzc2VzLnRzXG5cbmltcG9ydCB7XG4gIC8vIHZwY0lwdjRDaWRyQmxvY2tBc3NvY2lhdGlvbixcbiAgdnBjSXB2NkNpZHJCbG9ja0Fzc29jaWF0aW9uLFxufSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgRm4sIFRva2VuIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgY2FsY3VsYXRlQ2lkclNwbGl0cyB9IGZyb20gXCIuL2NpZHItc3BsaXRzXCI7XG5pbXBvcnQgeyBOZXR3b3JrQnVpbGRlciB9IGZyb20gXCIuL25ldHdvcmstdXRpbFwiO1xuaW1wb3J0IHsgU3VibmV0Q29uZmlndXJhdGlvbiB9IGZyb20gXCIuL3ZwY1wiO1xuXG4vKipcbiAqIEFuIGFic3RyYWN0IFByb3ZpZGVyIG9mIElwQWRkcmVzc2VzXG4gKlxuICogTm90ZSB0aGlzIGlzIHNwZWNpZmljIHRvIHRoZSBJUHY0IENJRFIuXG4gKi9cbmV4cG9ydCBjbGFzcyBJcEFkZHJlc3NlcyB7XG4gIC8qKlxuICAgKiBVc2VkIHRvIHByb3ZpZGUgbG9jYWwgSXAgQWRkcmVzcyBNYW5hZ2VtZW50IHNlcnZpY2VzIGZvciB5b3VyIFZQQ1xuICAgKlxuICAgKiBWUEMgQ0lEUiBpcyBzdXBwbGllZCBhdCBjcmVhdGlvbiBhbmQgc3VibmV0cyBhcmUgY2FsY3VsYXRlZCBsb2NhbGx5XG4gICAqXG4gICAqIE5vdGUgdGhpcyBpcyBzcGVjaWZpYyB0byB0aGUgSVB2NCBDSURSLlxuICAgKlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjaWRyKGNpZHJCbG9jazogc3RyaW5nKTogSUlwQWRkcmVzc2VzIHtcbiAgICByZXR1cm4gbmV3IENpZHIoY2lkckJsb2NrKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2VkIHRvIHByb3ZpZGUgY2VudHJhbGl6ZWQgSXAgQWRkcmVzcyBNYW5hZ2VtZW50IHNlcnZpY2VzIGZvciB5b3VyIFZQQ1xuICAgKlxuICAgKiBVc2VzIFZQQyBDSURSIGFsbG9jYXRpb25zIGZyb20gQVdTIElQQU1cbiAgICpcbiAgICogTm90ZSB0aGlzIGlzIHNwZWNpZmljIHRvIHRoZSBJUHY0IENJRFIuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3ZwYy9sYXRlc3QvaXBhbS93aGF0LWl0LWlzLWlwYW0uaHRtbFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBhd3NJcGFtQWxsb2NhdGlvbihwcm9wczogQXdzSXBhbVByb3BzKTogSUlwQWRkcmVzc2VzIHtcbiAgICByZXR1cm4gbmV3IEF3c0lwYW0ocHJvcHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcigpIHt9XG59XG5cbi8qKlxuICogSW1wbGVtZW50YXRpb25zIGZvciBpcCBhZGRyZXNzIG1hbmFnZW1lbnQuXG4gKlxuICogTm90ZSB0aGlzIGlzIHNwZWNpZmljIHRvIHRoZSBJUHY0IENJRFIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUlwQWRkcmVzc2VzIHtcbiAgLyoqXG4gICAqIENhbGxlZCBieSB0aGUgVlBDIHRvIHJldHJpZXZlIFZQQyBvcHRpb25zIGZyb20gdGhlIElwYW1cbiAgICpcbiAgICogRG9uJ3QgY2FsbCB0aGlzIGRpcmVjdGx5LCB0aGUgVlBDIHdpbGwgY2FsbCBpdCBhdXRvbWF0aWNhbGx5LlxuICAgKi9cbiAgYWxsb2NhdGVWcGNDaWRyKCk6IFZwY0lwYW1PcHRpb25zO1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgYnkgdGhlIFZQQyB0byByZXRyaWV2ZSBTdWJuZXQgb3B0aW9ucyBmcm9tIHRoZSBJcGFtXG4gICAqXG4gICAqIERvbid0IGNhbGwgdGhpcyBkaXJlY3RseSwgdGhlIFZQQyB3aWxsIGNhbGwgaXQgYXV0b21hdGljYWxseS5cbiAgICovXG4gIGFsbG9jYXRlU3VibmV0c0NpZHIoaW5wdXQ6IEFsbG9jYXRlQ2lkclJlcXVlc3QpOiBTdWJuZXRJcGFtT3B0aW9ucztcbn1cblxuLyoqXG4gKiBDSURSIEFsbG9jYXRlZCBWcGNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWcGNJcGFtT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBDSURSIEJsb2NrIGZvciBWcGNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBPbmx5IHJlcXVpcmVkIHdoZW4gSXBhbSBoYXMgY29uY3JldGUgYWxsb2NhdGlvbiBhdmFpbGFibGUgZm9yIHN0YXRpYyBWcGNcbiAgICovXG4gIHJlYWRvbmx5IGNpZHJCbG9jaz86IHN0cmluZztcblxuICAvKipcbiAgICogQ0lEUiBNYXNrIGZvciBWcGNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBPbmx5IHJlcXVpcmVkIHdoZW4gdXNpbmcgQVdTIElwYW1cbiAgICovXG4gIHJlYWRvbmx5IGlwdjROZXRtYXNrTGVuZ3RoPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBpcHY0IElQQU0gUG9vbCBJZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE9ubHkgcmVxdWlyZWQgd2hlbiB1c2luZyBBV1MgSXBhbVxuICAgKi9cbiAgcmVhZG9ubHkgaXB2NElwYW1Qb29sSWQ/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogU3VibmV0IHJlcXVlc3RlZCBmb3IgYWxsb2NhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RlZFN1Ym5ldCB7XG4gIC8qKlxuICAgKiBUaGUgYXZhaWxhYmlsaXR5IHpvbmUgZm9yIHRoZSBzdWJuZXRcbiAgICovXG4gIHJlYWRvbmx5IGF2YWlsYWJpbGl0eVpvbmU6IHN0cmluZztcblxuICAvKipcbiAgICogU3BlY2lmeSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgZm9yIGEgc2luZ2xlIHN1Ym5ldCBncm91cCBpbiBhIFZQQ1xuICAgKi9cbiAgcmVhZG9ubHkgY29uZmlndXJhdGlvbjogU3VibmV0Q29uZmlndXJhdGlvbjtcblxuICAvKipcbiAgICogSWQgZm9yIHRoZSBTdWJuZXQgY29uc3RydWN0XG4gICAqL1xuICByZWFkb25seSBzdWJuZXRDb25zdHJ1Y3RJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIEFuIGluc3RhbmNlIG9mIGEgU3VibmV0IHJlcXVlc3RlZCBmb3IgYWxsb2NhdGlvblxuICovXG5pbnRlcmZhY2UgSVJlcXVlc3RlZFN1Ym5ldEluc3RhbmNlIHtcbiAgLyoqXG4gICAqIEluZGV4IGxvY2F0aW9uIG9mIFN1Ym5ldCByZXF1ZXN0ZWQgZm9yIGFsbG9jYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGluZGV4OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFN1Ym5ldCByZXF1ZXN0ZWQgZm9yIGFsbG9jYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHJlcXVlc3RlZFN1Ym5ldDogUmVxdWVzdGVkU3VibmV0O1xufVxuXG4vKipcbiAqIFJlcXVlc3QgZm9yIHN1Ym5ldHMgQ0lEUiB0byBiZSBhbGxvY2F0ZWQgZm9yIGEgVnBjXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWxsb2NhdGVDaWRyUmVxdWVzdCB7XG4gIC8qKlxuICAgKiBUaGUgSVB2NCBDSURSIGJsb2NrIGZvciB0aGlzIFZwY1xuICAgKi9cbiAgcmVhZG9ubHkgdnBjQ2lkcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgU3VibmV0cyB0byBiZSBhbGxvY2F0ZWRcbiAgICovXG4gIHJlYWRvbmx5IHJlcXVlc3RlZFN1Ym5ldHM6IFJlcXVlc3RlZFN1Ym5ldFtdO1xufVxuXG4vKipcbiAqIFJlcXVlc3QgZm9yIGFsbG9jYXRpb24gb2YgdGhlIFZQQyBJUHY2IENJRFIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWxsb2NhdGVWcGNJcHY2Q2lkclJlcXVlc3Qge1xuICAvKipcbiAgICogVGhlIFZQQyBjb25zdHJ1Y3QgdG8gYXR0YWNoIHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGU6IENvbnN0cnVjdDtcblxuICAvKipcbiAgICogVGhlIGlkIG9mIHRoZSBWUEMuXG4gICAqL1xuICByZWFkb25seSB2cGNJZDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcXVlc3QgZm9yIElQdjYgQ0lEUiBibG9jayB0byBiZSBzcGxpdCB1cC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVJcHY2Q2lkckJsb2Nrc1JlcXVlc3Qge1xuICAvKipcbiAgICogVGhlIElQdjYgQ0lEUiBibG9jayBzdHJpbmcgcmVwcmVzZW50YXRpb24uXG4gICAqL1xuICByZWFkb25seSBpcHY2U2VsZWN0ZWRDaWRyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2Ygc3VibmV0cyB0byBhc3NpZ24gQ0lEUnMgdG8uXG4gICAqL1xuICByZWFkb25seSBzdWJuZXRDb3VudDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTaXplIG9mIHRoZSBjb3ZlcmVkIGJpdHMgaW4gdGhlIENJRFIuXG4gICAqIEBkZWZhdWx0IC0gMTI4IC0gNjQgPSAvNjQgQ0lEUi5cbiAgICovXG4gIHJlYWRvbmx5IHNpemVNYXNrPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGFyZW50IG1hc2sgb2YgdGhlIENJRFIuXG4gICAqXG4gICAqIFZhbGlkIHZhbHVlcyBhcmUgZnJvbSA0NCB0byA2MCBpbiBpbmNyZW1lbnRzIG9mIDQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gNTZcbiAgICovXG4gIHJlYWRvbmx5IHBhcmVudE1hc2s/OiBudW1iZXI7XG59XG5cbi8qKlxuICogUmVxdWVzdCBmb3Igc3VibmV0IElQdjYgQ0lEUnMgdG8gYmUgYWxsb2NhdGVkIGZvciBhIFZQQy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbGxvY2F0ZUlwdjZDaWRyUmVxdWVzdCB7XG4gIC8qKlxuICAgKiBMaXN0IG9mIHN1Ym5ldHMgYWxsb2NhdGVkIHdpdGggSVB2NCBDSURSc1xuICAgKi9cbiAgcmVhZG9ubHkgYWxsb2NhdGVkU3VibmV0czogQWxsb2NhdGVkU3VibmV0W107XG5cbiAgLyoqXG4gICAqIFRoZSBJUHY2IENJRFJzIHRvIGJlIGFsbG9jYXRlZCB0byB0aGUgc3VibmV0c1xuICAgKi9cbiAgcmVhZG9ubHkgaXB2NkNpZHJzOiBzdHJpbmdbXTtcbn1cblxuLyoqXG4gKiBDSURSIEFsbG9jYXRlZCBTdWJuZXRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3VibmV0SXBhbU9wdGlvbnMge1xuICAvKipcbiAgICogQ0lEUiBBbGxvY2F0aW9ucyBmb3IgU3VibmV0c1xuICAgKi9cbiAgcmVhZG9ubHkgYWxsb2NhdGVkU3VibmV0czogQWxsb2NhdGVkU3VibmV0W107XG59XG5cbi8qKlxuICogQ0lEUiBBbGxvY2F0ZWQgU3VibmV0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQWxsb2NhdGVkU3VibmV0IHtcbiAgLyoqXG4gICAqIElQdjQgQ0lEUiBBbGxvY2F0aW9ucyBmb3IgYSBTdWJuZXQuXG4gICAqXG4gICAqIE5vdGUgdGhpcyBpcyBzcGVjaWZpYyB0byB0aGUgSVB2NCBDSURSLlxuICAgKi9cbiAgcmVhZG9ubHkgY2lkcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJUHY2IENJRFIgQWxsb2NhdGlvbnMgZm9yIGEgU3VibmV0LlxuICAgKlxuICAgKiBOb3RlIHRoaXMgaXMgc3BlY2lmaWMgdG8gdGhlIElQdjYgQ0lEUi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBJUFY2IENJRFJcbiAgICovXG4gIHJlYWRvbmx5IGlwdjZDaWRyPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIEF3c0lwYW1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NJcGFtUHJvcHMge1xuICAvKipcbiAgICogTmV0bWFzayBsZW5ndGggZm9yIFZwY1xuICAgKi9cbiAgcmVhZG9ubHkgaXB2NE5ldG1hc2tMZW5ndGg6IG51bWJlcjtcblxuICAvKipcbiAgICogSXBhbSBQb29sIElkIGZvciBpcHY0IGFsbG9jYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGlwdjRJcGFtUG9vbElkOiBzdHJpbmc7IC8vIHRvZG86IHNob3VsZCBiZSBhIHR5cGVcblxuICAvKipcbiAgICogRGVmYXVsdCBsZW5ndGggZm9yIFN1Ym5ldCBpcHY0IE5ldHdvcmsgbWFza1xuICAgKlxuICAgKiBTcGVjaWZ5IHRoaXMgb3B0aW9uIG9ubHkgaWYgeW91IGRvIG5vdCBzcGVjaWZ5IGFsbCBTdWJuZXRzIHVzaW5nIFN1Ym5ldENvbmZpZ3VyYXRpb24gd2l0aCBhIGNpZHJNYXNrXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBpcHY0IFN1Ym5ldCBNYXNrIGZvciBzdWJuZXRzIGluIFZwY1xuICAgKlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdFN1Ym5ldElwdjROZXRtYXNrTGVuZ3RoPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEltcGxlbWVudHMgaW50ZWdyYXRpb24gd2l0aCBBbWF6b24gVlBDIElQIEFkZHJlc3MgTWFuYWdlciAoSVBBTSkuXG4gKlxuICogU2VlIHRoZSBwYWNrYWdlLWxldmVsIGRvY3VtZW50YXRpb24gb2YgdGhpcyBwYWNrYWdlIGZvciBhbiBvdmVydmlld1xuICogb2YgdGhlIHZhcmlvdXMgZGltZW5zaW9ucyBpbiB3aGljaCB5b3UgY2FuIGNvbmZpZ3VyZSB5b3VyIFZQQy5cbiAqXG4gKiBGb3IgZXhhbXBsZTpcbiAqXG4gKiBgYGB0c1xuICogIG5ldyBjb21wdXRlLlZwYyhzdGFjaywgJ1RoZVZQQycsIHtcbiAqICAgaXBBZGRyZXNzZXM6IElwQWRkcmVzc2VzLmF3c0lwYW1BbGxvY2F0aW9uKHtcbiAqICAgICBpcHY0SXBhbVBvb2xJZDogcG9vbC5yZWYsXG4gKiAgICAgaXB2NE5ldG1hc2tMZW5ndGg6IDE4LFxuICogICAgIGRlZmF1bHRTdWJuZXRJcHY0TmV0bWFza0xlbmd0aDogMjRcbiAqICAgfSlcbiAqIH0pO1xuICogYGBgXG4gKlxuICovXG5jbGFzcyBBd3NJcGFtIGltcGxlbWVudHMgSUlwQWRkcmVzc2VzIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBwcm9wczogQXdzSXBhbVByb3BzKSB7fVxuXG4gIC8qKlxuICAgKiBBbGxvY2F0ZXMgVnBjIENJRFIuIGNhbGxlZCB3aGVuIGNyZWF0aW5nIGEgVnBjIHVzaW5nIEF3c0lwYW0uXG4gICAqL1xuICBhbGxvY2F0ZVZwY0NpZHIoKTogVnBjSXBhbU9wdGlvbnMge1xuICAgIHJldHVybiB7XG4gICAgICBpcHY0TmV0bWFza0xlbmd0aDogdGhpcy5wcm9wcy5pcHY0TmV0bWFza0xlbmd0aCxcbiAgICAgIGlwdjRJcGFtUG9vbElkOiB0aGlzLnByb3BzLmlwdjRJcGFtUG9vbElkLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQWxsb2NhdGVzIFN1Ym5ldHMgQ0lEUnMuIENhbGxlZCBieSBWUEMgd2hlbiBjcmVhdGluZyBzdWJuZXRzLlxuICAgKi9cbiAgYWxsb2NhdGVTdWJuZXRzQ2lkcihpbnB1dDogQWxsb2NhdGVDaWRyUmVxdWVzdCk6IFN1Ym5ldElwYW1PcHRpb25zIHtcbiAgICBjb25zdCBjaWRyU3BsaXQgPSBjYWxjdWxhdGVDaWRyU3BsaXRzKFxuICAgICAgdGhpcy5wcm9wcy5pcHY0TmV0bWFza0xlbmd0aCxcbiAgICAgIGlucHV0LnJlcXVlc3RlZFN1Ym5ldHMubWFwKChtYXNrKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBtYXNrLmNvbmZpZ3VyYXRpb24uY2lkck1hc2sgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgIHRoaXMucHJvcHMuZGVmYXVsdFN1Ym5ldElwdjROZXRtYXNrTGVuZ3RoID09PSB1bmRlZmluZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgXCJJZiB5b3UgaGF2ZSBub3Qgc2V0IGEgY2lkciBmb3IgYWxsIHN1Ym5ldHMgaW4gdGhpcyBjYXNlIHlvdSBtdXN0IHNldCBhIGRlZmF1bHRDaWRyTWFzayBpbiBBd3NJcGFtIE9wdGlvbnNcIixcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY2lkck1hc2sgPVxuICAgICAgICAgIG1hc2suY29uZmlndXJhdGlvbi5jaWRyTWFzayA/P1xuICAgICAgICAgIHRoaXMucHJvcHMuZGVmYXVsdFN1Ym5ldElwdjROZXRtYXNrTGVuZ3RoO1xuXG4gICAgICAgIGlmIChjaWRyTWFzayA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgXCJTaG91bGQgbm90IGhhdmUgaGFwcGVuZWQsIGJ1dCBzYXRpc2ZpZXMgdGhlIHR5cGUgY2hlY2tlclwiLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY2lkck1hc2s7XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgY29uc3QgYWxsb2NhdGVkU3VibmV0czogQWxsb2NhdGVkU3VibmV0W10gPSBjaWRyU3BsaXQubWFwKChzdWJuZXQpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGNpZHI6IEZuLmNpZHJzdWJuZXQoaW5wdXQudnBjQ2lkciwgc3VibmV0Lm5ld2JpdHMsIHN1Ym5ldC5pbmRleCksXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGFsbG9jYXRlZFN1Ym5ldHM6IGFsbG9jYXRlZFN1Ym5ldHMsXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIEltcGxlbWVudHMgc3RhdGljIElwIGFzc2lnbm1lbnQgbG9jYWxseS5cbiAqXG4gKiBTZWUgdGhlIHBhY2thZ2UtbGV2ZWwgZG9jdW1lbnRhdGlvbiBvZiB0aGlzIHBhY2thZ2UgZm9yIGFuIG92ZXJ2aWV3XG4gKiBvZiB0aGUgdmFyaW91cyBkaW1lbnNpb25zIGluIHdoaWNoIHlvdSBjYW4gY29uZmlndXJlIHlvdXIgVlBDLlxuICpcbiAqIEZvciBleGFtcGxlOlxuICpcbiAqIGBgYHRzXG4gKiAgbmV3IGNvbXB1dGUuVnBjKHN0YWNrLCAnVGhlVlBDJywge1xuICogICBpcEFkZHJlc3NlczogY29tcHV0ZS5JcEFkZHJlc3Nlcy5jaWRyKCcxMC4wLjEuMC8yMCcpXG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqL1xuY2xhc3MgQ2lkciBpbXBsZW1lbnRzIElJcEFkZHJlc3NlcyB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbmV0d29ya0J1aWxkZXI6IE5ldHdvcmtCdWlsZGVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgY2lkckJsb2NrOiBzdHJpbmcpIHtcbiAgICBpZiAoVG9rZW4uaXNVbnJlc29sdmVkKGNpZHJCbG9jaykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCInY2lkcicgcHJvcGVydHkgbXVzdCBiZSBhIGNvbmNyZXRlIENJRFIgc3RyaW5nLCBnb3QgYSBUb2tlbiAod2UgbmVlZCB0byBwYXJzZSBpdCBmb3IgYXV0b21hdGljIHN1YmRpdmlzaW9uKVwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLm5ldHdvcmtCdWlsZGVyID0gbmV3IE5ldHdvcmtCdWlsZGVyKHRoaXMuY2lkckJsb2NrKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGxvY2F0ZXMgVnBjIENJRFIuIENhbGxlZCB3aGVuIGNyZWF0aW5nIGEgVnBjIHVzaW5nIElwQWRkcmVzc2VzLmNpZHIuXG4gICAqL1xuICBhbGxvY2F0ZVZwY0NpZHIoKTogVnBjSXBhbU9wdGlvbnMge1xuICAgIHJldHVybiB7XG4gICAgICBjaWRyQmxvY2s6IHRoaXMubmV0d29ya0J1aWxkZXIubmV0d29ya0NpZHIuY2lkcixcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbG9jYXRlcyBTdWJuZXRzIENpZHJzLiBDYWxsZWQgYnkgVlBDIHdoZW4gY3JlYXRpbmcgc3VibmV0cy5cbiAgICovXG4gIGFsbG9jYXRlU3VibmV0c0NpZHIoaW5wdXQ6IEFsbG9jYXRlQ2lkclJlcXVlc3QpOiBTdWJuZXRJcGFtT3B0aW9ucyB7XG4gICAgY29uc3QgYWxsb2NhdGVkU3VibmV0czogQWxsb2NhdGVkU3VibmV0W10gPSBbXTtcbiAgICBjb25zdCBzdWJuZXRzV2l0aG91dERlZmluZWRDaWRyOiBJUmVxdWVzdGVkU3VibmV0SW5zdGFuY2VbXSA9IFtdO1xuICAgIC8vZGVmYXVsdDogQXZhaWxhYmxlIElQIHNwYWNlIGlzIGV2ZW5seSBkaXZpZGVkIGFjcm9zcyBzdWJuZXRzIGlmIG5vIGNpZHIgaXMgZ2l2ZW4uXG5cbiAgICBpbnB1dC5yZXF1ZXN0ZWRTdWJuZXRzLmZvckVhY2goKHJlcXVlc3RlZFN1Ym5ldCwgaW5kZXgpID0+IHtcbiAgICAgIGlmIChyZXF1ZXN0ZWRTdWJuZXQuY29uZmlndXJhdGlvbi5jaWRyTWFzayA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHN1Ym5ldHNXaXRob3V0RGVmaW5lZENpZHIucHVzaCh7XG4gICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgcmVxdWVzdGVkU3VibmV0LFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFsbG9jYXRlZFN1Ym5ldHMucHVzaCh7XG4gICAgICAgICAgY2lkcjogdGhpcy5uZXR3b3JrQnVpbGRlci5hZGRTdWJuZXQoXG4gICAgICAgICAgICByZXF1ZXN0ZWRTdWJuZXQuY29uZmlndXJhdGlvbi5jaWRyTWFzayxcbiAgICAgICAgICApLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IGNpZHJNYXNrRm9yUmVtYWluaW5nID0gdGhpcy5uZXR3b3JrQnVpbGRlci5tYXNrRm9yUmVtYWluaW5nU3VibmV0cyhcbiAgICAgIHN1Ym5ldHNXaXRob3V0RGVmaW5lZENpZHIubGVuZ3RoLFxuICAgICk7XG4gICAgc3VibmV0c1dpdGhvdXREZWZpbmVkQ2lkci5mb3JFYWNoKChzdWJuZXQpID0+IHtcbiAgICAgIGFsbG9jYXRlZFN1Ym5ldHMuc3BsaWNlKHN1Ym5ldC5pbmRleCwgMCwge1xuICAgICAgICBjaWRyOiB0aGlzLm5ldHdvcmtCdWlsZGVyLmFkZFN1Ym5ldChjaWRyTWFza0ZvclJlbWFpbmluZyksXG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBhbGxvY2F0ZWRTdWJuZXRzOiBhbGxvY2F0ZWRTdWJuZXRzLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBBbiBhYnN0cmFjdCBQcm92aWRlciBvZiBJcHY2QWRkcmVzc2VzLlxuICpcbiAqIE5vdGUgdGhpcyBpcyBzcGVjaWZpYyB0byB0aGUgSVB2NiBDSURSLlxuICovXG5leHBvcnQgY2xhc3MgSXB2NkFkZHJlc3NlcyB7XG4gIC8qKlxuICAgKiBVc2VkIGZvciBJUHY2IGFkZHJlc3MgbWFuYWdlbWVudCB3aXRoIEFtYXpvbiBwcm92aWRlZCBDSURScy5cbiAgICpcbiAgICogTm90ZSB0aGlzIGlzIHNwZWNpZmljIHRvIHRoZSBJUHY2IENJRFIuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFtYXpvblByb3ZpZGVkKCk6IElJcHY2QWRkcmVzc2VzIHtcbiAgICByZXR1cm4gbmV3IEFtYXpvblByb3ZpZGVkKCk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKCkge31cbn1cblxuLyoqXG4gKiBJbXBsZW1lbnRhdGlvbnMgZm9yIElQdjYgYWRkcmVzcyBtYW5hZ2VtZW50LlxuICpcbiAqIE5vdGUgdGhpcyBpcyBzcGVjaWZpYyB0byB0aGUgSVB2NiBDSURSLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElJcHY2QWRkcmVzc2VzIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIElQdjYgQ0lEUiBpcyBBbWF6b24gcHJvdmlkZWQgb3Igbm90LlxuICAgKlxuICAgKiBOb3RlIHRoaXMgaXMgc3BlY2lmaWMgdG8gdGhlIElQdjYgQ0lEUi5cbiAgICovXG4gIGFtYXpvblByb3ZpZGVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDYWxsZWQgYnkgVlBDIHRvIGFsbG9jYXRlIElQdjYgQ0lEUi5cbiAgICpcbiAgICogTm90ZSB0aGlzIGlzIHNwZWNpZmljIHRvIHRoZSBJUHY2IENJRFIuXG4gICAqL1xuICBhbGxvY2F0ZVZwY0lwdjZDaWRyKFxuICAgIGlucHV0OiBBbGxvY2F0ZVZwY0lwdjZDaWRyUmVxdWVzdCxcbiAgKTogdnBjSXB2NkNpZHJCbG9ja0Fzc29jaWF0aW9uLlZwY0lwdjZDaWRyQmxvY2tBc3NvY2lhdGlvbjtcblxuICAvKipcbiAgICogU3BsaXQgSVB2NiBDSURSIGJsb2NrIHVwIGZvciBzdWJuZXRzLlxuICAgKlxuICAgKiBOb3RlIHRoaXMgaXMgc3BlY2lmaWMgdG8gdGhlIElQdjYgQ0lEUi5cbiAgICovXG4gIGNyZWF0ZUlwdjZDaWRyQmxvY2tzKGlucHV0OiBDcmVhdGVJcHY2Q2lkckJsb2Nrc1JlcXVlc3QpOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQWxsb2NhdGVzIFN1Ym5ldHMgSVB2NiBDSURScy4gQ2FsbGVkIGJ5IFZQQyB3aGVuIGNyZWF0aW5nIHN1Ym5ldHMgd2l0aCBJUHY2IGVuYWJsZWQuXG4gICAqXG4gICAqIE5vdGUgdGhpcyBpcyBzcGVjaWZpYyB0byB0aGUgSVB2NiBDSURSLlxuICAgKi9cbiAgYWxsb2NhdGVTdWJuZXRzSXB2NkNpZHIoaW5wdXQ6IEFsbG9jYXRlSXB2NkNpZHJSZXF1ZXN0KTogU3VibmV0SXBhbU9wdGlvbnM7XG59XG5cbi8qKlxuICogSW1wbGVtZW50cyBpbnRlZ3JhdGlvbiB3aXRoIEFtYXpvbiBwcm92aWRlZCBJUHY2IENJRFJzLlxuICpcbiAqIE5vdGUgdGhpcyBpcyBzcGVjaWZpYyB0byB0aGUgSVB2NiBDSURSLlxuICovXG5jbGFzcyBBbWF6b25Qcm92aWRlZCBpbXBsZW1lbnRzIElJcHY2QWRkcmVzc2VzIHtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIElQdjYgQ0lEUiBpcyBBbWF6b24gcHJvdmlkZWQgb3Igbm90LlxuICAgKlxuICAgKiBlcXVlc3RzIGFuIEFtYXpvbi1wcm92aWRlZCBJUHY2IENJRFIgYmxvY2sgd2l0aCBhIC81NiBwcmVmaXggbGVuZ3RoIGZvciB0aGUgVlBDLlxuICAgKiBZb3UgY2Fubm90IHNwZWNpZnkgdGhlIHJhbmdlIG9mIElQdjYgYWRkcmVzc2VzLCBvciB0aGUgc2l6ZSBvZiB0aGUgQ0lEUiBibG9ja1xuICAgKi9cbiAgYW1hem9uUHJvdmlkZWQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5hbWF6b25Qcm92aWRlZCA9IHRydWU7XG4gIH1cbiAgLyoqXG4gICAqIENhbGxlZCBieSBWUEMgdG8gYWxsb2NhdGUgSVB2NiBDSURSLlxuICAgKlxuICAgKiBDcmVhdGVzIGFuIEFtYXpvbiBwcm92aWRlZCBDSURSIGJsb2NrLlxuICAgKlxuICAgKiBOb3RlIHRoaXMgaXMgc3BlY2lmaWMgdG8gdGhlIElQdjYgQ0lEUi5cbiAgICovXG4gIGFsbG9jYXRlVnBjSXB2NkNpZHIoXG4gICAgaW5wdXQ6IEFsbG9jYXRlVnBjSXB2NkNpZHJSZXF1ZXN0LFxuICApOiB2cGNJcHY2Q2lkckJsb2NrQXNzb2NpYXRpb24uVnBjSXB2NkNpZHJCbG9ja0Fzc29jaWF0aW9uIHtcbiAgICAvL3Rocm93IG5ldyBFcnJvcihgdnBjSWQgbm90IGZvdW5kLCBnb3QgJHsoc2NvcGUgYXMgYW55KS52cGNJZH1gKTtcbiAgICByZXR1cm4gbmV3IHZwY0lwdjZDaWRyQmxvY2tBc3NvY2lhdGlvbi5WcGNJcHY2Q2lkckJsb2NrQXNzb2NpYXRpb24oXG4gICAgICBpbnB1dC5zY29wZSxcbiAgICAgIFwiaXB2NmNpZHJcIixcbiAgICAgIHtcbiAgICAgICAgdnBjSWQ6IGlucHV0LnZwY0lkLFxuICAgICAgICBhc3NpZ25HZW5lcmF0ZWRJcHY2Q2lkckJsb2NrOiB0aGlzLmFtYXpvblByb3ZpZGVkLFxuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFNwbGl0IElQdjYgQ0lEUiBibG9jayB1cCBmb3Igc3VibmV0cy5cbiAgICpcbiAgICogQ2FsbGVkIGJ5IFZQQyB3aGVuIGNyZWF0aW5nIHN1Ym5ldHMgd2l0aCBJUHY2IGVuYWJsZWQuXG4gICAqXG4gICAqIE5vdGUgdGhpcyBpcyBzcGVjaWZpYyB0byB0aGUgSVB2NiBDSURSLlxuICAgKi9cbiAgY3JlYXRlSXB2NkNpZHJCbG9ja3MoaW5wdXQ6IENyZWF0ZUlwdjZDaWRyQmxvY2tzUmVxdWVzdCk6IHN0cmluZ1tdIHtcbiAgICBsZXQgcGFyZW50TWFzazogbnVtYmVyID0gaW5wdXQucGFyZW50TWFzayA/PyA1NjtcbiAgICBpZiAoIVRva2VuLmlzVW5yZXNvbHZlZChpbnB1dC5pcHY2U2VsZWN0ZWRDaWRyKSkge1xuICAgICAgcGFyZW50TWFzayA9IHBhcnNlSW50KGlucHV0LmlwdjZTZWxlY3RlZENpZHIuc3BsaXQoXCIvXCIpWzFdLCAxMCk7XG4gICAgICBpZiAoTnVtYmVyLmlzTmFOKHBhcmVudE1hc2spKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgUGFyZW50IENJRFIgbXVzdCBpbmNsdWRlIGEgdmFsaWQgbWFzaywgZ290OiAnJHtpbnB1dC5pcHY2U2VsZWN0ZWRDaWRyfSdgLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBzaXplTWFzayA9IHBhcnNlSW50KGlucHV0LnNpemVNYXNrID8/IFwiNjRcIik7IC8vIDEyOCAtIDY0XG4gICAgY29uc3QgbmV3Yml0cyA9IHNpemVNYXNrIC0gcGFyZW50TWFzaztcblxuICAgIHJldHVybiBGbi5jaWRyc3VibmV0cyhcbiAgICAgIGlucHV0LmlwdjZTZWxlY3RlZENpZHIsXG4gICAgICBBcnJheS5mcm9tKHsgbGVuZ3RoOiBpbnB1dC5zdWJuZXRDb3VudCB9LCAoKSA9PiBuZXdiaXRzKSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbG9jYXRlcyBTdWJuZXRzIElQdjYgQ0lEUnMuIENhbGxlZCBieSBWUEMgd2hlbiBjcmVhdGluZyBzdWJuZXRzIHdpdGggSVB2NiBlbmFibGVkLlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIHRha2VzIHRoZSBsaXN0IG9mIGFsbG9jYXRlZCBzdWJuZXRzLFxuICAgKiBhbmQgY29waWVzIHRoZSBJUHY0IENJRFJzIHdoaWxlIGFsc28gYXNzaWduaW5nIHRoZSBJUHY2IENJRFIuXG4gICAqXG4gICAqIE5vdGUgdGhpcyBpcyBzcGVjaWZpYyB0byB0aGUgSVB2NiBDSURSLlxuICAgKi9cbiAgYWxsb2NhdGVTdWJuZXRzSXB2NkNpZHIoaW5wdXQ6IEFsbG9jYXRlSXB2NkNpZHJSZXF1ZXN0KTogU3VibmV0SXBhbU9wdGlvbnMge1xuICAgIGNvbnN0IGFsbG9jYXRlZFN1Ym5ldHM6IEFsbG9jYXRlZFN1Ym5ldFtdID0gW107XG5cbiAgICBpbnB1dC5hbGxvY2F0ZWRTdWJuZXRzLmZvckVhY2goKGFsbG9jYXRlZCwgaSkgPT4ge1xuICAgICAgY29uc3QgYWxsb2NhdGVkSXB2NjogQWxsb2NhdGVkU3VibmV0ID0ge1xuICAgICAgICBjaWRyOiBhbGxvY2F0ZWQuY2lkcixcbiAgICAgICAgaXB2NkNpZHI6IEZuLmVsZW1lbnQoaW5wdXQuaXB2NkNpZHJzLCBpKSxcbiAgICAgIH07XG4gICAgICBhbGxvY2F0ZWRTdWJuZXRzLnB1c2goYWxsb2NhdGVkSXB2Nik7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgYWxsb2NhdGVkU3VibmV0czogYWxsb2NhdGVkU3VibmV0cyxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
import { vpcIpamPoolCidr as tfIpamPoolCidr } from "@cdktf/provider-aws";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
import { IAwsConstruct, AwsConstructBase } from "../aws-construct";
|
|
4
|
+
/**
|
|
5
|
+
* Represents the address family for IP addresses in an IPAM pool.
|
|
6
|
+
* IP_V4 - Represents the IPv4 address family.
|
|
7
|
+
* IP_V6 - Represents the IPv6 address family.
|
|
8
|
+
* @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-addressfamily
|
|
9
|
+
*/
|
|
10
|
+
export declare enum AddressFamily {
|
|
11
|
+
/**
|
|
12
|
+
* Represents the IPv4 address family.
|
|
13
|
+
* Allowed under public and private pool.
|
|
14
|
+
*/
|
|
15
|
+
IP_V4 = "ipv4",
|
|
16
|
+
/**
|
|
17
|
+
* Represents the IPv6 address family.
|
|
18
|
+
* Only allowed under public pool.
|
|
19
|
+
*/
|
|
20
|
+
IP_V6 = "ipv6"
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* The IP address source for pools in the public scope.
|
|
24
|
+
* Only used for provisioning IP address CIDRs to pools in the public scope.
|
|
25
|
+
* @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-publicipsource
|
|
26
|
+
*/
|
|
27
|
+
export declare enum IpamPoolPublicIpSource {
|
|
28
|
+
/**
|
|
29
|
+
* BYOIP Ipv6 to be registered under IPAM
|
|
30
|
+
*/
|
|
31
|
+
BYOIP = "byoip",
|
|
32
|
+
/**
|
|
33
|
+
* Amazon Provided Ipv6 range
|
|
34
|
+
*/
|
|
35
|
+
AMAZON = "amazon"
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Limits which service in AWS that the pool can be used in
|
|
39
|
+
*/
|
|
40
|
+
export declare enum AwsServiceName {
|
|
41
|
+
/**
|
|
42
|
+
* Allows users to use space for Elastic IP addresses and VPCs
|
|
43
|
+
*/
|
|
44
|
+
EC2 = "ec2"
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Options to create a new Ipam in the account
|
|
48
|
+
*/
|
|
49
|
+
export interface IpamProps {
|
|
50
|
+
/**
|
|
51
|
+
* The operating Regions for an IPAM.
|
|
52
|
+
* Operating Regions are AWS Regions where the IPAM is allowed to manage IP address CIDRs
|
|
53
|
+
* For more information about operating Regions, see [Create an IPAM](https://docs.aws.amazon.com//vpc/latest/ipam/create-ipam.html) in the *Amazon VPC IPAM User Guide* .
|
|
54
|
+
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipam.html#cfn-ec2-ipam-operatingregions
|
|
55
|
+
*
|
|
56
|
+
* @default - Stack.region if defined in the stack
|
|
57
|
+
*/
|
|
58
|
+
readonly operatingRegion?: string[];
|
|
59
|
+
/**
|
|
60
|
+
* Name of IPAM that can be used for tagging resource
|
|
61
|
+
*
|
|
62
|
+
* @default - If no name provided, no tags will be added to the IPAM
|
|
63
|
+
*/
|
|
64
|
+
readonly ipamName?: string;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Refers to two possible scope types under IPAM
|
|
68
|
+
*/
|
|
69
|
+
export declare enum IpamScopeType {
|
|
70
|
+
/**
|
|
71
|
+
* Default scopes created by IPAM
|
|
72
|
+
*/
|
|
73
|
+
DEFAULT = "default",
|
|
74
|
+
/**
|
|
75
|
+
* Custom scope created using method
|
|
76
|
+
*/
|
|
77
|
+
CUSTOM = "custom"
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Options for configuring an IPAM pool.
|
|
81
|
+
*
|
|
82
|
+
* @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html
|
|
83
|
+
*/
|
|
84
|
+
export interface PoolOptions {
|
|
85
|
+
/**
|
|
86
|
+
* addressFamily - The address family of the pool (ipv4 or ipv6).
|
|
87
|
+
*/
|
|
88
|
+
readonly addressFamily: AddressFamily;
|
|
89
|
+
/**
|
|
90
|
+
* Information about the CIDRs provisioned to the pool.
|
|
91
|
+
*
|
|
92
|
+
* @default - No CIDRs are provisioned
|
|
93
|
+
*/
|
|
94
|
+
readonly ipv4ProvisionedCidrs?: string[];
|
|
95
|
+
/**
|
|
96
|
+
* The locale (AWS Region) of the pool. Should be one of the IPAM operating region.
|
|
97
|
+
* Only resources in the same Region as the locale of the pool can get IP address allocations from the pool.
|
|
98
|
+
* You can only allocate a CIDR for a VPC, for example, from an IPAM pool that shares a locale with the VPC’s Region.
|
|
99
|
+
* Note that once you choose a Locale for a pool, you cannot modify it. If you choose an AWS Region for locale that has not been configured as an operating Region for the IPAM, you'll get an error.
|
|
100
|
+
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-locale
|
|
101
|
+
*
|
|
102
|
+
* @default - Current operating region of IPAM
|
|
103
|
+
*/
|
|
104
|
+
readonly locale?: string;
|
|
105
|
+
/**
|
|
106
|
+
* The IP address source for pools in the public scope.
|
|
107
|
+
* Only used for IPv6 address
|
|
108
|
+
* Only allowed values to this are 'byoip' or 'amazon'
|
|
109
|
+
*
|
|
110
|
+
* @default amazon
|
|
111
|
+
*/
|
|
112
|
+
readonly publicIpSource?: IpamPoolPublicIpSource;
|
|
113
|
+
/**
|
|
114
|
+
* Limits which service in AWS that the pool can be used in.
|
|
115
|
+
*
|
|
116
|
+
* "ec2", for example, allows users to use space for Elastic IP addresses and VPCs.
|
|
117
|
+
*
|
|
118
|
+
* @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampool.html#cfn-ec2-ipampool-awsservice
|
|
119
|
+
*
|
|
120
|
+
* @default - required in case of an IPv6, throws an error if not provided.
|
|
121
|
+
*/
|
|
122
|
+
readonly awsService?: AwsServiceName;
|
|
123
|
+
/**
|
|
124
|
+
* IPAM Pool resource name to be used for tagging
|
|
125
|
+
*
|
|
126
|
+
* @default - autogenerated by CDK if not provided
|
|
127
|
+
*/
|
|
128
|
+
readonly ipamPoolName?: string;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Options to provision CIDRs to an IPAM pool.
|
|
132
|
+
* Used to create a new IpamPoolCidr
|
|
133
|
+
* @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipampoolcidr.html
|
|
134
|
+
*/
|
|
135
|
+
export interface IpamPoolCidrProvisioningOptions {
|
|
136
|
+
/**
|
|
137
|
+
* Ipv6 Netmask length for the CIDR
|
|
138
|
+
*
|
|
139
|
+
* @default - pool provisioned without netmask length, need cidr range in this case
|
|
140
|
+
*/
|
|
141
|
+
readonly netmaskLength?: number;
|
|
142
|
+
/**
|
|
143
|
+
* Ipv6 CIDR block for the IPAM pool
|
|
144
|
+
*
|
|
145
|
+
* @default - pool provisioned without netmask length, need netmask length in this case
|
|
146
|
+
*/
|
|
147
|
+
readonly cidr?: string;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Outputs which may be registered for output via the Grid.
|
|
151
|
+
*/
|
|
152
|
+
export interface IpamPoolOutputs {
|
|
153
|
+
/**
|
|
154
|
+
* Pool ID to be passed to the VPC construct
|
|
155
|
+
* @attribute IpamPoolId
|
|
156
|
+
*/
|
|
157
|
+
readonly ipamPoolId: string;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Definition used to add or create a new IPAM pool
|
|
161
|
+
*/
|
|
162
|
+
export interface IIpamPool extends IAwsConstruct {
|
|
163
|
+
/** strongly typed outputs */
|
|
164
|
+
readonly ipamPoolOutputs: IpamPoolOutputs;
|
|
165
|
+
/**
|
|
166
|
+
* Pool ID to be passed to the VPC construct
|
|
167
|
+
* @attribute IpamPoolId
|
|
168
|
+
*/
|
|
169
|
+
readonly ipamPoolId: string;
|
|
170
|
+
/**
|
|
171
|
+
* Pool CIDR for IPv6 to be provisioned with Public IP source set to 'Amazon'
|
|
172
|
+
*/
|
|
173
|
+
readonly ipamCidrs: tfIpamPoolCidr.VpcIpamPoolCidr[];
|
|
174
|
+
/**
|
|
175
|
+
* Pool CIDR for IPv4 to be provisioned using IPAM
|
|
176
|
+
* Required to check for subnet IP range is within the VPC range
|
|
177
|
+
*/
|
|
178
|
+
readonly ipamIpv4Cidrs?: string[];
|
|
179
|
+
/**
|
|
180
|
+
* Function to associate a IPv6 address with IPAM pool
|
|
181
|
+
*/
|
|
182
|
+
provisionCidr(id: string, options: IpamPoolCidrProvisioningOptions): tfIpamPoolCidr.VpcIpamPoolCidr;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Being used in IPAM class to add pools to default scope created by IPAM.
|
|
186
|
+
*/
|
|
187
|
+
export interface IpamScopeOptions {
|
|
188
|
+
/**
|
|
189
|
+
* IPAM scope name that will be used for tagging
|
|
190
|
+
*
|
|
191
|
+
* @default - no tags will be added to the scope
|
|
192
|
+
*/
|
|
193
|
+
readonly ipamScopeName?: string;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Options for configuring an IP Address Manager (IPAM).
|
|
197
|
+
*
|
|
198
|
+
* For more information, see the {@link https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipam.html}.
|
|
199
|
+
*/
|
|
200
|
+
export interface IpamOptions {
|
|
201
|
+
/**
|
|
202
|
+
* CIDR Mask for Vpc
|
|
203
|
+
* Only required when using AWS Ipam
|
|
204
|
+
*
|
|
205
|
+
* @default - no netmask length for IPAM attached to VPC secondary address
|
|
206
|
+
*/
|
|
207
|
+
readonly netmaskLength?: number;
|
|
208
|
+
/**
|
|
209
|
+
* Ipv4 or an Ipv6 IPAM pool
|
|
210
|
+
* Only required when using AWS Ipam
|
|
211
|
+
*
|
|
212
|
+
* @default - no pool attached to VPC secondary address
|
|
213
|
+
*/
|
|
214
|
+
readonly ipamPool?: IIpamPool;
|
|
215
|
+
/**
|
|
216
|
+
* Required to set Secondary cidr block resource name
|
|
217
|
+
* in order to generate unique logical id for the resource.
|
|
218
|
+
*/
|
|
219
|
+
readonly cidrBlockName: string;
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Outputs which may be registered for output via the Grid.
|
|
223
|
+
*/
|
|
224
|
+
export interface IpamScopeOutputs {
|
|
225
|
+
/**
|
|
226
|
+
* Scope ID to be passed to the VPC construct
|
|
227
|
+
* @attribute IpamScopeId
|
|
228
|
+
*/
|
|
229
|
+
readonly ipamScopeId: string;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Interface for IpamScope Class
|
|
233
|
+
*/
|
|
234
|
+
export interface IIpamScopeBase {
|
|
235
|
+
/** strongly typed outputs */
|
|
236
|
+
readonly ipamScopeOutputs: IpamScopeOutputs;
|
|
237
|
+
/**
|
|
238
|
+
* Reference to the current scope of stack to be passed in order to create
|
|
239
|
+
* a new IPAM pool
|
|
240
|
+
*/
|
|
241
|
+
readonly scope: Construct;
|
|
242
|
+
/**
|
|
243
|
+
* Default Scope ids created by the IPAM or a new Resource id
|
|
244
|
+
*/
|
|
245
|
+
readonly scopeId: string;
|
|
246
|
+
/**
|
|
247
|
+
* Defines scope type can be either default or custom
|
|
248
|
+
*/
|
|
249
|
+
readonly scopeType?: IpamScopeType;
|
|
250
|
+
/**
|
|
251
|
+
* Function to add a new pool to an IPAM scope
|
|
252
|
+
*/
|
|
253
|
+
addPool(id: string, options: PoolOptions): IIpamPool;
|
|
254
|
+
}
|
|
255
|
+
export interface IpamOutputs {
|
|
256
|
+
/**
|
|
257
|
+
* Ipam ID to be passed to the VPC construct
|
|
258
|
+
* @attribute IpamId
|
|
259
|
+
*/
|
|
260
|
+
readonly ipamId: string;
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Creates new IPAM with default public and private scope
|
|
264
|
+
* @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamscope.html
|
|
265
|
+
* @see https://registry.terraform.io/providers/hashicorp/aws/5.68.0/docs/resources/vpc_ipam
|
|
266
|
+
* @resource aws_vpc_ipam
|
|
267
|
+
*/
|
|
268
|
+
export declare class Ipam extends AwsConstructBase {
|
|
269
|
+
get ipamOutputs(): IpamOutputs;
|
|
270
|
+
get outputs(): Record<string, any>;
|
|
271
|
+
/**
|
|
272
|
+
* Provides access to default public IPAM scope through add pool method.
|
|
273
|
+
* Usage: To add an Ipam Pool to a default public scope
|
|
274
|
+
* @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamscope.html
|
|
275
|
+
*/
|
|
276
|
+
readonly publicScope: IIpamScopeBase;
|
|
277
|
+
/**
|
|
278
|
+
* Provides access to default private IPAM scope through add pool method.
|
|
279
|
+
* Usage: To add an Ipam Pool to a default private scope
|
|
280
|
+
* @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-ipamscope.html
|
|
281
|
+
* */
|
|
282
|
+
readonly privateScope: IIpamScopeBase;
|
|
283
|
+
private readonly _ipam;
|
|
284
|
+
/**
|
|
285
|
+
* Access to Ipam resource id that can be used later to add a custom private scope to this IPAM
|
|
286
|
+
* @attribute IpamId
|
|
287
|
+
*/
|
|
288
|
+
readonly ipamId: string;
|
|
289
|
+
/**
|
|
290
|
+
* List of operating regions for IPAM
|
|
291
|
+
*/
|
|
292
|
+
readonly operatingRegions: string[];
|
|
293
|
+
/**
|
|
294
|
+
* List of scopes created under this IPAM
|
|
295
|
+
*/
|
|
296
|
+
readonly scopes: IIpamScopeBase[];
|
|
297
|
+
/**
|
|
298
|
+
* IPAM name to be used for tagging
|
|
299
|
+
* @default no tag specified
|
|
300
|
+
* @attribute IpamName
|
|
301
|
+
*/
|
|
302
|
+
readonly ipamName?: string;
|
|
303
|
+
constructor(scope: Construct, id: string, props?: IpamProps);
|
|
304
|
+
/**
|
|
305
|
+
* Function to add custom scope to an existing IPAM
|
|
306
|
+
* Custom scopes can only be private
|
|
307
|
+
*/
|
|
308
|
+
addScope(scope: Construct, id: string, options: IpamScopeOptions): IIpamScopeBase;
|
|
309
|
+
}
|