terraconstructs 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.envrc +5 -0
- package/.jsii +79780 -0
- package/.mise.toml +8 -0
- package/.nvmrc +1 -0
- package/.terraform-version +1 -0
- package/.terraform.d/plugin-cache/.gitignore +5 -0
- package/LICENSE +674 -0
- package/NOTICE.txt +12 -0
- package/README.md +42 -0
- package/bun.lockb +0 -0
- package/go.mod +158 -0
- package/go.sum +1206 -0
- package/lib/aws/arn.d.ts +187 -0
- package/lib/aws/arn.js +383 -0
- package/lib/aws/aws-construct.d.ts +76 -0
- package/lib/aws/aws-construct.js +38 -0
- package/lib/aws/aws-stack.d.ts +201 -0
- package/lib/aws/aws-stack.js +303 -0
- package/lib/aws/cloudwatch/actions/ec2.d.ts +35 -0
- package/lib/aws/cloudwatch/actions/ec2.js +48 -0
- package/lib/aws/cloudwatch/actions/index.d.ts +2 -0
- package/lib/aws/cloudwatch/actions/index.js +24 -0
- package/lib/aws/cloudwatch/actions/lambda.d.ts +16 -0
- package/lib/aws/cloudwatch/actions/lambda.js +48 -0
- package/lib/aws/cloudwatch/alarm-action.d.ts +23 -0
- package/lib/aws/cloudwatch/alarm-action.js +4 -0
- package/lib/aws/cloudwatch/alarm-base.d.ts +84 -0
- package/lib/aws/cloudwatch/alarm-base.js +64 -0
- package/lib/aws/cloudwatch/alarm-rule.d.ts +61 -0
- package/lib/aws/cloudwatch/alarm-rule.js +116 -0
- package/lib/aws/cloudwatch/alarm-status-widget.d.ts +77 -0
- package/lib/aws/cloudwatch/alarm-status-widget.js +62 -0
- package/lib/aws/cloudwatch/alarm.d.ts +158 -0
- package/lib/aws/cloudwatch/alarm.js +410 -0
- package/lib/aws/cloudwatch/composite-alarm.d.ts +88 -0
- package/lib/aws/cloudwatch/composite-alarm.js +98 -0
- package/lib/aws/cloudwatch/dashboard.d.ts +137 -0
- package/lib/aws/cloudwatch/dashboard.js +141 -0
- package/lib/aws/cloudwatch/data-protection-policy.d.ts +184 -0
- package/lib/aws/cloudwatch/data-protection-policy.js +246 -0
- package/lib/aws/cloudwatch/graph.d.ts +792 -0
- package/lib/aws/cloudwatch/graph.js +537 -0
- package/lib/aws/cloudwatch/index.d.ts +26 -0
- package/lib/aws/cloudwatch/index.js +49 -0
- package/lib/aws/cloudwatch/layout.d.ts +89 -0
- package/lib/aws/cloudwatch/layout.js +147 -0
- package/lib/aws/cloudwatch/log-destinations/index.d.ts +2 -0
- package/lib/aws/cloudwatch/log-destinations/index.js +20 -0
- package/lib/aws/cloudwatch/log-destinations/kinesis.d.ts +29 -0
- package/lib/aws/cloudwatch/log-destinations/kinesis.js +52 -0
- package/lib/aws/cloudwatch/log-destinations/lambda.d.ts +22 -0
- package/lib/aws/cloudwatch/log-destinations/lambda.js +46 -0
- package/lib/aws/cloudwatch/log-group.d.ts +453 -0
- package/lib/aws/cloudwatch/log-group.js +350 -0
- package/lib/aws/cloudwatch/log-query.d.ts +91 -0
- package/lib/aws/cloudwatch/log-query.js +85 -0
- package/lib/aws/cloudwatch/log-stream.d.ts +57 -0
- package/lib/aws/cloudwatch/log-stream.js +57 -0
- package/lib/aws/cloudwatch/metric-filter.d.ts +30 -0
- package/lib/aws/cloudwatch/metric-filter.js +69 -0
- package/lib/aws/cloudwatch/metric-types.d.ts +407 -0
- package/lib/aws/cloudwatch/metric-types.js +151 -0
- package/lib/aws/cloudwatch/metric.d.ts +492 -0
- package/lib/aws/cloudwatch/metric.js +493 -0
- package/lib/aws/cloudwatch/pattern.d.ts +195 -0
- package/lib/aws/cloudwatch/pattern.js +412 -0
- package/lib/aws/cloudwatch/policy.d.ts +43 -0
- package/lib/aws/cloudwatch/policy.js +50 -0
- package/lib/aws/cloudwatch/private/drop-empty-object-at-the-end-of-an-array-token.d.ts +14 -0
- package/lib/aws/cloudwatch/private/drop-empty-object-at-the-end-of-an-array-token.js +37 -0
- package/lib/aws/cloudwatch/private/env-tokens.d.ts +8 -0
- package/lib/aws/cloudwatch/private/env-tokens.js +48 -0
- package/lib/aws/cloudwatch/private/metric-util.d.ts +60 -0
- package/lib/aws/cloudwatch/private/metric-util.js +132 -0
- package/lib/aws/cloudwatch/private/object.d.ts +1 -0
- package/lib/aws/cloudwatch/private/object.js +18 -0
- package/lib/aws/cloudwatch/private/rendering.d.ts +60 -0
- package/lib/aws/cloudwatch/private/rendering.js +181 -0
- package/lib/aws/cloudwatch/private/statistic.d.ts +51 -0
- package/lib/aws/cloudwatch/private/statistic.js +176 -0
- package/lib/aws/cloudwatch/query-definition.d.ts +150 -0
- package/lib/aws/cloudwatch/query-definition.js +114 -0
- package/lib/aws/cloudwatch/stats.d.ts +150 -0
- package/lib/aws/cloudwatch/stats.js +207 -0
- package/lib/aws/cloudwatch/subscription-filter.d.ts +75 -0
- package/lib/aws/cloudwatch/subscription-filter.js +51 -0
- package/lib/aws/cloudwatch/text.d.ts +52 -0
- package/lib/aws/cloudwatch/text.js +53 -0
- package/lib/aws/cloudwatch/variable.d.ts +156 -0
- package/lib/aws/cloudwatch/variable.js +156 -0
- package/lib/aws/cloudwatch/widget.d.ts +62 -0
- package/lib/aws/cloudwatch/widget.js +45 -0
- package/lib/aws/compute/activity.d.ts +81 -0
- package/lib/aws/compute/activity.js +132 -0
- package/lib/aws/compute/architecture.d.ts +33 -0
- package/lib/aws/compute/architecture.js +42 -0
- package/lib/aws/compute/chain.d.ts +52 -0
- package/lib/aws/compute/chain.js +68 -0
- package/lib/aws/compute/condition.d.ts +202 -0
- package/lib/aws/compute/condition.js +409 -0
- package/lib/aws/compute/event-invoke-config.d.ts +74 -0
- package/lib/aws/compute/event-invoke-config.js +63 -0
- package/lib/aws/compute/event-source-filter.d.ts +64 -0
- package/lib/aws/compute/event-source-filter.js +86 -0
- package/lib/aws/compute/event-source-mapping.d.ts +310 -0
- package/lib/aws/compute/event-source-mapping.js +267 -0
- package/lib/aws/compute/event-sources/index.d.ts +4 -0
- package/lib/aws/compute/event-sources/index.js +28 -0
- package/lib/aws/compute/event-sources/s3-onfailure-destination.d.ts +13 -0
- package/lib/aws/compute/event-sources/s3-onfailure-destination.js +26 -0
- package/lib/aws/compute/event-sources/s3.d.ts +24 -0
- package/lib/aws/compute/event-sources/s3.js +25 -0
- package/lib/aws/compute/event-sources/sqs-dlq.d.ts +13 -0
- package/lib/aws/compute/event-sources/sqs-dlq.js +26 -0
- package/lib/aws/compute/event-sources/sqs.d.ts +75 -0
- package/lib/aws/compute/event-sources/sqs.js +84 -0
- package/lib/aws/compute/fields.d.ts +367 -0
- package/lib/aws/compute/fields.js +546 -0
- package/lib/aws/compute/function-alias.d.ts +148 -0
- package/lib/aws/compute/function-alias.js +176 -0
- package/lib/aws/compute/function-base.d.ts +314 -0
- package/lib/aws/compute/function-base.js +421 -0
- package/lib/aws/compute/function-destination.d.ts +42 -0
- package/lib/aws/compute/function-destination.js +18 -0
- package/lib/aws/compute/function-destinations/event-bridge.d.ts +19 -0
- package/lib/aws/compute/function-destinations/event-bridge.js +46 -0
- package/lib/aws/compute/function-destinations/function.d.ts +34 -0
- package/lib/aws/compute/function-destinations/function.js +55 -0
- package/lib/aws/compute/function-destinations/index.d.ts +3 -0
- package/lib/aws/compute/function-destinations/index.js +22 -0
- package/lib/aws/compute/function-destinations/sqs.d.ts +14 -0
- package/lib/aws/compute/function-destinations/sqs.js +27 -0
- package/lib/aws/compute/function-nodejs.d.ts +55 -0
- package/lib/aws/compute/function-nodejs.js +70 -0
- package/lib/aws/compute/function-permission.d.ts +83 -0
- package/lib/aws/compute/function-permission.js +3 -0
- package/lib/aws/compute/function-url.d.ts +210 -0
- package/lib/aws/compute/function-url.js +148 -0
- package/lib/aws/compute/function-vpc-config.generated.d.ts +36 -0
- package/lib/aws/compute/function-vpc-config.generated.js +3 -0
- package/lib/aws/compute/function.d.ts +492 -0
- package/lib/aws/compute/function.js +692 -0
- package/lib/aws/compute/index.d.ts +42 -0
- package/lib/aws/compute/index.js +64 -0
- package/lib/aws/compute/private/intrinstics.d.ts +86 -0
- package/lib/aws/compute/private/intrinstics.js +220 -0
- package/lib/aws/compute/private/json-path.d.ts +57 -0
- package/lib/aws/compute/private/json-path.js +351 -0
- package/lib/aws/compute/private/util.d.ts +1 -0
- package/lib/aws/compute/private/util.js +38 -0
- package/lib/aws/compute/state-graph.d.ts +100 -0
- package/lib/aws/compute/state-graph.js +177 -0
- package/lib/aws/compute/state-machine-fragment.d.ts +61 -0
- package/lib/aws/compute/state-machine-fragment.js +56 -0
- package/lib/aws/compute/state-machine.d.ts +323 -0
- package/lib/aws/compute/state-machine.js +392 -0
- package/lib/aws/compute/states/choice.d.ts +94 -0
- package/lib/aws/compute/states/choice.js +81 -0
- package/lib/aws/compute/states/custom-state.d.ts +55 -0
- package/lib/aws/compute/states/custom-state.js +114 -0
- package/lib/aws/compute/states/distributed-map/item-batcher.d.ts +64 -0
- package/lib/aws/compute/states/distributed-map/item-batcher.js +58 -0
- package/lib/aws/compute/states/distributed-map/item-reader.d.ts +256 -0
- package/lib/aws/compute/states/distributed-map/item-reader.js +253 -0
- package/lib/aws/compute/states/distributed-map/result-writer.d.ts +41 -0
- package/lib/aws/compute/states/distributed-map/result-writer.js +66 -0
- package/lib/aws/compute/states/distributed-map.d.ts +153 -0
- package/lib/aws/compute/states/distributed-map.js +207 -0
- package/lib/aws/compute/states/fail.d.ts +74 -0
- package/lib/aws/compute/states/fail.js +83 -0
- package/lib/aws/compute/states/map-base.d.ts +145 -0
- package/lib/aws/compute/states/map-base.js +109 -0
- package/lib/aws/compute/states/map.d.ts +76 -0
- package/lib/aws/compute/states/map.js +110 -0
- package/lib/aws/compute/states/parallel.d.ts +113 -0
- package/lib/aws/compute/states/parallel.js +100 -0
- package/lib/aws/compute/states/pass.d.ts +122 -0
- package/lib/aws/compute/states/pass.js +99 -0
- package/lib/aws/compute/states/private/state-type.d.ts +13 -0
- package/lib/aws/compute/states/private/state-type.js +19 -0
- package/lib/aws/compute/states/state.d.ts +276 -0
- package/lib/aws/compute/states/state.js +482 -0
- package/lib/aws/compute/states/succeed.d.ts +51 -0
- package/lib/aws/compute/states/succeed.js +32 -0
- package/lib/aws/compute/states/task-base.d.ts +225 -0
- package/lib/aws/compute/states/task-base.js +160 -0
- package/lib/aws/compute/states/task.d.ts +127 -0
- package/lib/aws/compute/states/task.js +92 -0
- package/lib/aws/compute/states/wait.d.ts +78 -0
- package/lib/aws/compute/states/wait.js +90 -0
- package/lib/aws/compute/step-functions-task.d.ts +78 -0
- package/lib/aws/compute/step-functions-task.js +27 -0
- package/lib/aws/compute/task-credentials.d.ts +45 -0
- package/lib/aws/compute/task-credentials.js +52 -0
- package/lib/aws/compute/task-input.d.ts +86 -0
- package/lib/aws/compute/task-input.js +107 -0
- package/lib/aws/compute/tasks/aws-sdk/call-aws-service.d.ts +73 -0
- package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +69 -0
- package/lib/aws/compute/tasks/eventbridge/put-events.d.ts +74 -0
- package/lib/aws/compute/tasks/eventbridge/put-events.js +94 -0
- package/lib/aws/compute/tasks/http/invoke.d.ts +104 -0
- package/lib/aws/compute/tasks/http/invoke.js +117 -0
- package/lib/aws/compute/tasks/index.d.ts +7 -0
- package/lib/aws/compute/tasks/index.js +42 -0
- package/lib/aws/compute/tasks/lambda/invoke.d.ts +106 -0
- package/lib/aws/compute/tasks/lambda/invoke.js +125 -0
- package/lib/aws/compute/tasks/private/task-utils.d.ts +8 -0
- package/lib/aws/compute/tasks/private/task-utils.js +36 -0
- package/lib/aws/compute/tasks/resource-arn-suffix.d.ts +3 -0
- package/lib/aws/compute/tasks/resource-arn-suffix.js +25 -0
- package/lib/aws/compute/tasks/sqs/send-message.d.ts +62 -0
- package/lib/aws/compute/tasks/sqs/send-message.js +70 -0
- package/lib/aws/compute/tasks/stepfunctions/invoke-activity.d.ts +36 -0
- package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +45 -0
- package/lib/aws/compute/tasks/stepfunctions/start-execution.d.ts +63 -0
- package/lib/aws/compute/tasks/stepfunctions/start-execution.js +123 -0
- package/lib/aws/compute/types.d.ts +214 -0
- package/lib/aws/compute/types.js +103 -0
- package/lib/aws/compute/util.d.ts +12 -0
- package/lib/aws/compute/util.js +29 -0
- package/lib/aws/edge/certificate.d.ts +144 -0
- package/lib/aws/edge/certificate.js +191 -0
- package/lib/aws/edge/distribution.d.ts +505 -0
- package/lib/aws/edge/distribution.js +444 -0
- package/lib/aws/edge/dns-alias-record-targets.d.ts +29 -0
- package/lib/aws/edge/dns-alias-record-targets.js +46 -0
- package/lib/aws/edge/dns-record.d.ts +536 -0
- package/lib/aws/edge/dns-record.js +532 -0
- package/lib/aws/edge/dns-zone.d.ts +169 -0
- package/lib/aws/edge/dns-zone.js +149 -0
- package/lib/aws/edge/function.d.ts +185 -0
- package/lib/aws/edge/function.js +141 -0
- package/lib/aws/edge/index.d.ts +8 -0
- package/lib/aws/edge/index.js +25 -0
- package/lib/aws/edge/key-value-store.d.ts +162 -0
- package/lib/aws/edge/key-value-store.js +163 -0
- package/lib/aws/edge/origin.d.ts +160 -0
- package/lib/aws/edge/origin.js +245 -0
- package/lib/aws/encryption/alias.d.ts +137 -0
- package/lib/aws/encryption/alias.js +216 -0
- package/lib/aws/encryption/index.d.ts +4 -0
- package/lib/aws/encryption/index.js +21 -0
- package/lib/aws/encryption/key-lookup.d.ts +11 -0
- package/lib/aws/encryption/key-lookup.js +4 -0
- package/lib/aws/encryption/key.d.ts +461 -0
- package/lib/aws/encryption/key.js +586 -0
- package/lib/aws/encryption/private/perms.d.ts +5 -0
- package/lib/aws/encryption/private/perms.js +30 -0
- package/lib/aws/encryption/via-service-principal.d.ts +11 -0
- package/lib/aws/encryption/via-service-principal.js +39 -0
- package/lib/aws/iam/grant.d.ts +221 -0
- package/lib/aws/iam/grant.js +239 -0
- package/lib/aws/iam/identity-base.d.ts +20 -0
- package/lib/aws/iam/identity-base.js +3 -0
- package/lib/aws/iam/index.d.ts +16 -0
- package/lib/aws/iam/index.js +34 -0
- package/lib/aws/iam/managed-policy.d.ts +227 -0
- package/lib/aws/iam/managed-policy.js +237 -0
- package/lib/aws/iam/oidc-provider.d.ts +120 -0
- package/lib/aws/iam/oidc-provider.js +82 -0
- package/lib/aws/iam/policy-document-config.generated.d.ts +78 -0
- package/lib/aws/iam/policy-document-config.generated.js +3 -0
- package/lib/aws/iam/policy-document.d.ts +150 -0
- package/lib/aws/iam/policy-document.js +172 -0
- package/lib/aws/iam/policy-statement-props.generated.d.ts +55 -0
- package/lib/aws/iam/policy-statement-props.generated.js +3 -0
- package/lib/aws/iam/policy-statement.d.ts +451 -0
- package/lib/aws/iam/policy-statement.js +947 -0
- package/lib/aws/iam/policy.d.ts +122 -0
- package/lib/aws/iam/policy.js +192 -0
- package/lib/aws/iam/principals.d.ts +668 -0
- package/lib/aws/iam/principals.js +1032 -0
- package/lib/aws/iam/private/adapter.d.ts +21 -0
- package/lib/aws/iam/private/adapter.js +51 -0
- package/lib/aws/iam/private/assume-role-policy.d.ts +8 -0
- package/lib/aws/iam/private/assume-role-policy.js +27 -0
- package/lib/aws/iam/private/comparable-principal.d.ts +6 -0
- package/lib/aws/iam/private/comparable-principal.js +20 -0
- package/lib/aws/iam/private/immutable-role.d.ts +43 -0
- package/lib/aws/iam/private/immutable-role.js +76 -0
- package/lib/aws/iam/private/imported-role.d.ts +49 -0
- package/lib/aws/iam/private/imported-role.js +103 -0
- package/lib/aws/iam/private/merge-statements.d.ts +44 -0
- package/lib/aws/iam/private/merge-statements.js +214 -0
- package/lib/aws/iam/private/postprocess-policy-document.d.ts +15 -0
- package/lib/aws/iam/private/postprocess-policy-document.js +102 -0
- package/lib/aws/iam/private/util.d.ts +37 -0
- package/lib/aws/iam/private/util.js +87 -0
- package/lib/aws/iam/role.d.ts +425 -0
- package/lib/aws/iam/role.js +407 -0
- package/lib/aws/iam/saml-provider.d.ts +79 -0
- package/lib/aws/iam/saml-provider.js +79 -0
- package/lib/aws/iam/unknown-principal.d.ts +32 -0
- package/lib/aws/iam/unknown-principal.js +45 -0
- package/lib/aws/iam/utils.d.ts +12 -0
- package/lib/aws/iam/utils.js +41 -0
- package/lib/aws/index.d.ts +13 -0
- package/lib/aws/index.js +34 -0
- package/lib/aws/log-retention.d.ts +97 -0
- package/lib/aws/log-retention.js +103 -0
- package/lib/aws/network/index.d.ts +4 -0
- package/lib/aws/network/index.js +21 -0
- package/lib/aws/network/network.d.ts +77 -0
- package/lib/aws/network/network.js +3 -0
- package/lib/aws/network/simple-ipv4-vpc.d.ts +84 -0
- package/lib/aws/network/simple-ipv4-vpc.js +236 -0
- package/lib/aws/network/subnet-group.d.ts +42 -0
- package/lib/aws/network/subnet-group.js +72 -0
- package/lib/aws/network/subnet.d.ts +95 -0
- package/lib/aws/network/subnet.js +123 -0
- package/lib/aws/notify/archive.d.ts +77 -0
- package/lib/aws/notify/archive.js +62 -0
- package/lib/aws/notify/connection.d.ts +276 -0
- package/lib/aws/notify/connection.js +261 -0
- package/lib/aws/notify/event-bus.d.ts +298 -0
- package/lib/aws/notify/event-bus.js +326 -0
- package/lib/aws/notify/event-pattern.d.ts +220 -0
- package/lib/aws/notify/event-pattern.js +197 -0
- package/lib/aws/notify/index.d.ts +15 -0
- package/lib/aws/notify/index.js +35 -0
- package/lib/aws/notify/input.d.ts +126 -0
- package/lib/aws/notify/input.js +282 -0
- package/lib/aws/notify/kinesis-canned-metrics.generated.d.ts +68 -0
- package/lib/aws/notify/kinesis-canned-metrics.generated.js +103 -0
- package/lib/aws/notify/kinesis-fixed-canned-metrics.d.ts +195 -0
- package/lib/aws/notify/kinesis-fixed-canned-metrics.js +155 -0
- package/lib/aws/notify/kinesis-stream.d.ts +705 -0
- package/lib/aws/notify/kinesis-stream.js +541 -0
- package/lib/aws/notify/on-event-options.d.ts +54 -0
- package/lib/aws/notify/on-event-options.js +3 -0
- package/lib/aws/notify/queue-config.generated.d.ts +85 -0
- package/lib/aws/notify/queue-config.generated.js +3 -0
- package/lib/aws/notify/queue-policy.d.ts +35 -0
- package/lib/aws/notify/queue-policy.js +39 -0
- package/lib/aws/notify/queue.d.ts +355 -0
- package/lib/aws/notify/queue.js +305 -0
- package/lib/aws/notify/resource-policy.d.ts +41 -0
- package/lib/aws/notify/resource-policy.js +43 -0
- package/lib/aws/notify/rule.d.ts +153 -0
- package/lib/aws/notify/rule.js +227 -0
- package/lib/aws/notify/schedule.d.ts +83 -0
- package/lib/aws/notify/schedule.js +116 -0
- package/lib/aws/notify/target.d.ts +102 -0
- package/lib/aws/notify/target.js +3 -0
- package/lib/aws/notify/targets/event-bus.d.ts +39 -0
- package/lib/aws/notify/targets/event-bus.js +40 -0
- package/lib/aws/notify/targets/function.d.ts +31 -0
- package/lib/aws/notify/targets/function.js +36 -0
- package/lib/aws/notify/targets/index.d.ts +6 -0
- package/lib/aws/notify/targets/index.js +37 -0
- package/lib/aws/notify/targets/log-group.d.ts +89 -0
- package/lib/aws/notify/targets/log-group.js +110 -0
- package/lib/aws/notify/targets/sqs.d.ts +45 -0
- package/lib/aws/notify/targets/sqs.js +73 -0
- package/lib/aws/notify/targets/state-machine.d.ts +36 -0
- package/lib/aws/notify/targets/state-machine.js +39 -0
- package/lib/aws/notify/targets/util.d.ts +71 -0
- package/lib/aws/notify/targets/util.js +130 -0
- package/lib/aws/notify/util.d.ts +13 -0
- package/lib/aws/notify/util.js +69 -0
- package/lib/aws/provider-config.generated.d.ts +220 -0
- package/lib/aws/provider-config.generated.js +3 -0
- package/lib/aws/storage/bucket-destination.d.ts +41 -0
- package/lib/aws/storage/bucket-destination.js +13 -0
- package/lib/aws/storage/bucket-notifications.d.ts +58 -0
- package/lib/aws/storage/bucket-notifications.js +169 -0
- package/lib/aws/storage/bucket-perms.d.ts +9 -0
- package/lib/aws/storage/bucket-perms.js +33 -0
- package/lib/aws/storage/bucket-policy.d.ts +51 -0
- package/lib/aws/storage/bucket-policy.js +53 -0
- package/lib/aws/storage/bucket-source.d.ts +41 -0
- package/lib/aws/storage/bucket-source.js +79 -0
- package/lib/aws/storage/bucket.d.ts +941 -0
- package/lib/aws/storage/bucket.js +869 -0
- package/lib/aws/storage/cors-config.generated.d.ts +57 -0
- package/lib/aws/storage/cors-config.generated.js +3 -0
- package/lib/aws/storage/cors-rule-config.generated.d.ts +38 -0
- package/lib/aws/storage/cors-rule-config.generated.js +3 -0
- package/lib/aws/storage/index.d.ts +12 -0
- package/lib/aws/storage/index.js +31 -0
- package/lib/aws/storage/lifecycle-config.generated.d.ts +55 -0
- package/lib/aws/storage/lifecycle-config.generated.js +3 -0
- package/lib/aws/storage/notification-targets/function.d.ts +11 -0
- package/lib/aws/storage/notification-targets/function.js +48 -0
- package/lib/aws/storage/notification-targets/index.d.ts +2 -0
- package/lib/aws/storage/notification-targets/index.js +21 -0
- package/lib/aws/storage/notification-targets/queue.d.ts +15 -0
- package/lib/aws/storage/notification-targets/queue.js +58 -0
- package/lib/aws/storage/origin-access-identity.d.ts +91 -0
- package/lib/aws/storage/origin-access-identity.js +76 -0
- package/lib/aws/storage/util.d.ts +40 -0
- package/lib/aws/storage/util.js +85 -0
- package/lib/aws/storage/website-config.generated.d.ts +73 -0
- package/lib/aws/storage/website-config.generated.js +3 -0
- package/lib/aws/util.d.ts +4 -0
- package/lib/aws/util.js +25 -0
- package/lib/construct-base.d.ts +69 -0
- package/lib/construct-base.js +89 -0
- package/lib/duration.d.ts +160 -0
- package/lib/duration.js +327 -0
- package/lib/index.d.ts +5 -0
- package/lib/index.js +24 -0
- package/lib/private/index.d.ts +2 -0
- package/lib/private/index.js +19 -0
- package/lib/private/terraform-dependables-aspect.d.ts +20 -0
- package/lib/private/terraform-dependables-aspect.js +95 -0
- package/lib/private/unique-resource-name.d.ts +9 -0
- package/lib/private/unique-resource-name.js +145 -0
- package/lib/size.d.ts +146 -0
- package/lib/size.js +220 -0
- package/lib/stack-base.d.ts +188 -0
- package/lib/stack-base.js +183 -0
- package/lib/token.d.ts +32 -0
- package/lib/token.js +54 -0
- package/node_modules/camel-case/LICENSE +21 -0
- package/node_modules/camel-case/README.md +47 -0
- package/node_modules/camel-case/dist/index.d.ts +5 -0
- package/node_modules/camel-case/dist/index.js +23 -0
- package/node_modules/camel-case/dist/index.js.map +1 -0
- package/node_modules/camel-case/dist/index.spec.d.ts +1 -0
- package/node_modules/camel-case/dist/index.spec.js +26 -0
- package/node_modules/camel-case/dist/index.spec.js.map +1 -0
- package/node_modules/camel-case/dist.es2015/index.d.ts +5 -0
- package/node_modules/camel-case/dist.es2015/index.js +17 -0
- package/node_modules/camel-case/dist.es2015/index.js.map +1 -0
- package/node_modules/camel-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/camel-case/dist.es2015/index.spec.js +24 -0
- package/node_modules/camel-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/camel-case/package.json +89 -0
- package/node_modules/capital-case/LICENSE +21 -0
- package/node_modules/capital-case/README.md +37 -0
- package/node_modules/capital-case/dist/index.d.ts +4 -0
- package/node_modules/capital-case/dist/index.js +16 -0
- package/node_modules/capital-case/dist/index.js.map +1 -0
- package/node_modules/capital-case/dist/index.spec.d.ts +1 -0
- package/node_modules/capital-case/dist/index.spec.js +24 -0
- package/node_modules/capital-case/dist/index.spec.js.map +1 -0
- package/node_modules/capital-case/dist.es2015/index.d.ts +4 -0
- package/node_modules/capital-case/dist.es2015/index.js +11 -0
- package/node_modules/capital-case/dist.es2015/index.js.map +1 -0
- package/node_modules/capital-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/capital-case/dist.es2015/index.spec.js +22 -0
- package/node_modules/capital-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/capital-case/package.json +90 -0
- package/node_modules/change-case/LICENSE +21 -0
- package/node_modules/change-case/README.md +44 -0
- package/node_modules/change-case/dist/index.d.ts +11 -0
- package/node_modules/change-case/dist/index.js +15 -0
- package/node_modules/change-case/dist/index.js.map +1 -0
- package/node_modules/change-case/dist/index.spec.d.ts +1 -0
- package/node_modules/change-case/dist/index.spec.js +9 -0
- package/node_modules/change-case/dist/index.spec.js.map +1 -0
- package/node_modules/change-case/dist.es2015/index.d.ts +11 -0
- package/node_modules/change-case/dist.es2015/index.js +12 -0
- package/node_modules/change-case/dist.es2015/index.js.map +1 -0
- package/node_modules/change-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/change-case/dist.es2015/index.spec.js +7 -0
- package/node_modules/change-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/change-case/package.json +101 -0
- package/node_modules/constant-case/LICENSE +21 -0
- package/node_modules/constant-case/README.md +37 -0
- package/node_modules/constant-case/dist/index.d.ts +3 -0
- package/node_modules/constant-case/dist/index.js +12 -0
- package/node_modules/constant-case/dist/index.js.map +1 -0
- package/node_modules/constant-case/dist/index.spec.d.ts +1 -0
- package/node_modules/constant-case/dist/index.spec.js +26 -0
- package/node_modules/constant-case/dist/index.spec.js.map +1 -0
- package/node_modules/constant-case/dist.es2015/index.d.ts +3 -0
- package/node_modules/constant-case/dist.es2015/index.js +8 -0
- package/node_modules/constant-case/dist.es2015/index.js.map +1 -0
- package/node_modules/constant-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/constant-case/dist.es2015/index.spec.js +24 -0
- package/node_modules/constant-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/constant-case/package.json +90 -0
- package/node_modules/dot-case/LICENSE +21 -0
- package/node_modules/dot-case/README.md +37 -0
- package/node_modules/dot-case/dist/index.d.ts +3 -0
- package/node_modules/dot-case/dist/index.js +11 -0
- package/node_modules/dot-case/dist/index.js.map +1 -0
- package/node_modules/dot-case/dist/index.spec.d.ts +1 -0
- package/node_modules/dot-case/dist/index.spec.js +26 -0
- package/node_modules/dot-case/dist/index.spec.js.map +1 -0
- package/node_modules/dot-case/dist.es2015/index.d.ts +3 -0
- package/node_modules/dot-case/dist.es2015/index.js +7 -0
- package/node_modules/dot-case/dist.es2015/index.js.map +1 -0
- package/node_modules/dot-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/dot-case/dist.es2015/index.spec.js +24 -0
- package/node_modules/dot-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/dot-case/package.json +89 -0
- package/node_modules/esbuild-wasm/LICENSE.md +21 -0
- package/node_modules/esbuild-wasm/README.md +3 -0
- package/node_modules/esbuild-wasm/bin/esbuild +91 -0
- package/node_modules/esbuild-wasm/esbuild.wasm +0 -0
- package/node_modules/esbuild-wasm/esm/browser.d.ts +705 -0
- package/node_modules/esbuild-wasm/esm/browser.js +2370 -0
- package/node_modules/esbuild-wasm/esm/browser.min.js +20 -0
- package/node_modules/esbuild-wasm/lib/browser.d.ts +705 -0
- package/node_modules/esbuild-wasm/lib/browser.js +2415 -0
- package/node_modules/esbuild-wasm/lib/browser.min.js +22 -0
- package/node_modules/esbuild-wasm/lib/main.d.ts +705 -0
- package/node_modules/esbuild-wasm/lib/main.js +2051 -0
- package/node_modules/esbuild-wasm/package.json +19 -0
- package/node_modules/esbuild-wasm/wasm_exec.js +561 -0
- package/node_modules/esbuild-wasm/wasm_exec_node.js +39 -0
- package/node_modules/header-case/LICENSE +21 -0
- package/node_modules/header-case/README.md +37 -0
- package/node_modules/header-case/dist/index.d.ts +3 -0
- package/node_modules/header-case/dist/index.js +11 -0
- package/node_modules/header-case/dist/index.js.map +1 -0
- package/node_modules/header-case/dist/index.spec.d.ts +1 -0
- package/node_modules/header-case/dist/index.spec.js +24 -0
- package/node_modules/header-case/dist/index.spec.js.map +1 -0
- package/node_modules/header-case/dist.es2015/index.d.ts +3 -0
- package/node_modules/header-case/dist.es2015/index.js +7 -0
- package/node_modules/header-case/dist.es2015/index.js.map +1 -0
- package/node_modules/header-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/header-case/dist.es2015/index.spec.js +22 -0
- package/node_modules/header-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/header-case/package.json +89 -0
- package/node_modules/lower-case/LICENSE +21 -0
- package/node_modules/lower-case/README.md +35 -0
- package/node_modules/lower-case/dist/index.d.ts +8 -0
- package/node_modules/lower-case/dist/index.js +53 -0
- package/node_modules/lower-case/dist/index.js.map +1 -0
- package/node_modules/lower-case/dist/index.spec.d.ts +1 -0
- package/node_modules/lower-case/dist/index.spec.js +36 -0
- package/node_modules/lower-case/dist/index.spec.js.map +1 -0
- package/node_modules/lower-case/dist.es2015/index.d.ts +8 -0
- package/node_modules/lower-case/dist.es2015/index.js +48 -0
- package/node_modules/lower-case/dist.es2015/index.js.map +1 -0
- package/node_modules/lower-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/lower-case/dist.es2015/index.spec.js +34 -0
- package/node_modules/lower-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/lower-case/package.json +87 -0
- package/node_modules/mime-db/HISTORY.md +507 -0
- package/node_modules/mime-db/LICENSE +23 -0
- package/node_modules/mime-db/README.md +100 -0
- package/node_modules/mime-db/db.json +8519 -0
- package/node_modules/mime-db/index.js +12 -0
- package/node_modules/mime-db/package.json +60 -0
- package/node_modules/mime-types/HISTORY.md +397 -0
- package/node_modules/mime-types/LICENSE +23 -0
- package/node_modules/mime-types/README.md +113 -0
- package/node_modules/mime-types/index.js +188 -0
- package/node_modules/mime-types/package.json +44 -0
- package/node_modules/no-case/LICENSE +21 -0
- package/node_modules/no-case/README.md +37 -0
- package/node_modules/no-case/dist/index.d.ts +10 -0
- package/node_modules/no-case/dist/index.js +35 -0
- package/node_modules/no-case/dist/index.js.map +1 -0
- package/node_modules/no-case/dist/index.spec.d.ts +1 -0
- package/node_modules/no-case/dist/index.spec.js +59 -0
- package/node_modules/no-case/dist/index.spec.js.map +1 -0
- package/node_modules/no-case/dist.es2015/index.d.ts +10 -0
- package/node_modules/no-case/dist.es2015/index.js +31 -0
- package/node_modules/no-case/dist.es2015/index.js.map +1 -0
- package/node_modules/no-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/no-case/dist.es2015/index.spec.js +57 -0
- package/node_modules/no-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/no-case/package.json +85 -0
- package/node_modules/param-case/LICENSE +21 -0
- package/node_modules/param-case/README.md +37 -0
- package/node_modules/param-case/dist/index.d.ts +3 -0
- package/node_modules/param-case/dist/index.js +11 -0
- package/node_modules/param-case/dist/index.js.map +1 -0
- package/node_modules/param-case/dist/index.spec.d.ts +1 -0
- package/node_modules/param-case/dist/index.spec.js +24 -0
- package/node_modules/param-case/dist/index.spec.js.map +1 -0
- package/node_modules/param-case/dist.es2015/index.d.ts +3 -0
- package/node_modules/param-case/dist.es2015/index.js +7 -0
- package/node_modules/param-case/dist.es2015/index.js.map +1 -0
- package/node_modules/param-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/param-case/dist.es2015/index.spec.js +22 -0
- package/node_modules/param-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/param-case/package.json +91 -0
- package/node_modules/pascal-case/LICENSE +21 -0
- package/node_modules/pascal-case/README.md +47 -0
- package/node_modules/pascal-case/dist/index.d.ts +5 -0
- package/node_modules/pascal-case/dist/index.js +24 -0
- package/node_modules/pascal-case/dist/index.js.map +1 -0
- package/node_modules/pascal-case/dist/index.spec.d.ts +1 -0
- package/node_modules/pascal-case/dist/index.spec.js +25 -0
- package/node_modules/pascal-case/dist/index.spec.js.map +1 -0
- package/node_modules/pascal-case/dist.es2015/index.d.ts +5 -0
- package/node_modules/pascal-case/dist.es2015/index.js +18 -0
- package/node_modules/pascal-case/dist.es2015/index.js.map +1 -0
- package/node_modules/pascal-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/pascal-case/dist.es2015/index.spec.js +23 -0
- package/node_modules/pascal-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/pascal-case/package.json +90 -0
- package/node_modules/path-case/LICENSE +21 -0
- package/node_modules/path-case/README.md +37 -0
- package/node_modules/path-case/dist/index.d.ts +3 -0
- package/node_modules/path-case/dist/index.js +11 -0
- package/node_modules/path-case/dist/index.js.map +1 -0
- package/node_modules/path-case/dist/index.spec.d.ts +1 -0
- package/node_modules/path-case/dist/index.spec.js +24 -0
- package/node_modules/path-case/dist/index.spec.js.map +1 -0
- package/node_modules/path-case/dist.es2015/index.d.ts +3 -0
- package/node_modules/path-case/dist.es2015/index.js +7 -0
- package/node_modules/path-case/dist.es2015/index.js.map +1 -0
- package/node_modules/path-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/path-case/dist.es2015/index.spec.js +22 -0
- package/node_modules/path-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/path-case/package.json +88 -0
- package/node_modules/sentence-case/LICENSE +21 -0
- package/node_modules/sentence-case/README.md +37 -0
- package/node_modules/sentence-case/dist/index.d.ts +4 -0
- package/node_modules/sentence-case/dist/index.js +19 -0
- package/node_modules/sentence-case/dist/index.js.map +1 -0
- package/node_modules/sentence-case/dist/index.spec.d.ts +1 -0
- package/node_modules/sentence-case/dist/index.spec.js +24 -0
- package/node_modules/sentence-case/dist/index.spec.js.map +1 -0
- package/node_modules/sentence-case/dist.es2015/index.d.ts +4 -0
- package/node_modules/sentence-case/dist.es2015/index.js +14 -0
- package/node_modules/sentence-case/dist.es2015/index.js.map +1 -0
- package/node_modules/sentence-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/sentence-case/dist.es2015/index.spec.js +22 -0
- package/node_modules/sentence-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/sentence-case/package.json +89 -0
- package/node_modules/snake-case/LICENSE +21 -0
- package/node_modules/snake-case/README.md +37 -0
- package/node_modules/snake-case/dist/index.d.ts +3 -0
- package/node_modules/snake-case/dist/index.js +11 -0
- package/node_modules/snake-case/dist/index.js.map +1 -0
- package/node_modules/snake-case/dist/index.spec.d.ts +1 -0
- package/node_modules/snake-case/dist/index.spec.js +25 -0
- package/node_modules/snake-case/dist/index.spec.js.map +1 -0
- package/node_modules/snake-case/dist.es2015/index.d.ts +3 -0
- package/node_modules/snake-case/dist.es2015/index.js +7 -0
- package/node_modules/snake-case/dist.es2015/index.js.map +1 -0
- package/node_modules/snake-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/snake-case/dist.es2015/index.spec.js +23 -0
- package/node_modules/snake-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/snake-case/package.json +90 -0
- package/node_modules/tslib/CopyrightNotice.txt +15 -0
- package/node_modules/tslib/LICENSE.txt +12 -0
- package/node_modules/tslib/README.md +164 -0
- package/node_modules/tslib/SECURITY.md +41 -0
- package/node_modules/tslib/modules/index.d.ts +37 -0
- package/node_modules/tslib/modules/index.js +68 -0
- package/node_modules/tslib/modules/package.json +3 -0
- package/node_modules/tslib/package.json +47 -0
- package/node_modules/tslib/tslib.d.ts +453 -0
- package/node_modules/tslib/tslib.es6.html +1 -0
- package/node_modules/tslib/tslib.es6.js +374 -0
- package/node_modules/tslib/tslib.es6.mjs +373 -0
- package/node_modules/tslib/tslib.html +1 -0
- package/node_modules/tslib/tslib.js +424 -0
- package/node_modules/upper-case/README.md +34 -0
- package/node_modules/upper-case/dist/index.d.ts +8 -0
- package/node_modules/upper-case/dist/index.js +49 -0
- package/node_modules/upper-case/dist/index.js.map +1 -0
- package/node_modules/upper-case/dist/index.spec.d.ts +1 -0
- package/node_modules/upper-case/dist/index.spec.js +34 -0
- package/node_modules/upper-case/dist/index.spec.js.map +1 -0
- package/node_modules/upper-case/dist.es2015/index.d.ts +8 -0
- package/node_modules/upper-case/dist.es2015/index.js +44 -0
- package/node_modules/upper-case/dist.es2015/index.js.map +1 -0
- package/node_modules/upper-case/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/upper-case/dist.es2015/index.spec.js +32 -0
- package/node_modules/upper-case/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/upper-case/package.json +86 -0
- package/node_modules/upper-case-first/LICENSE +21 -0
- package/node_modules/upper-case-first/README.md +32 -0
- package/node_modules/upper-case-first/dist/index.d.ts +4 -0
- package/node_modules/upper-case-first/dist/index.js +11 -0
- package/node_modules/upper-case-first/dist/index.js.map +1 -0
- package/node_modules/upper-case-first/dist/index.spec.d.ts +1 -0
- package/node_modules/upper-case-first/dist/index.spec.js +20 -0
- package/node_modules/upper-case-first/dist/index.spec.js.map +1 -0
- package/node_modules/upper-case-first/dist.es2015/index.d.ts +4 -0
- package/node_modules/upper-case-first/dist.es2015/index.js +7 -0
- package/node_modules/upper-case-first/dist.es2015/index.js.map +1 -0
- package/node_modules/upper-case-first/dist.es2015/index.spec.d.ts +1 -0
- package/node_modules/upper-case-first/dist.es2015/index.spec.js +18 -0
- package/node_modules/upper-case-first/dist.es2015/index.spec.js.map +1 -0
- package/node_modules/upper-case-first/package.json +87 -0
- package/package.json +152 -0
- package/setup.js +2 -0
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
import { AwsConstructBase, AwsConstructProps } from "../aws-construct";
|
|
3
|
+
import { INetwork, NetworkOutputs } from "./network";
|
|
4
|
+
import { ISubnet } from "./subnet";
|
|
5
|
+
import { ISubnetGroup } from "./subnet-group";
|
|
6
|
+
export declare enum NatGatewayOption {
|
|
7
|
+
SINGLE_NAT_GATEWAY = "single-nat-gateway",
|
|
8
|
+
NAT_PER_AVAILABILITY_ZONE = "nat-per-availability-zone"
|
|
9
|
+
}
|
|
10
|
+
export interface SimpleIPv4Props extends AwsConstructProps {
|
|
11
|
+
/**
|
|
12
|
+
* The number of availability zones to use.
|
|
13
|
+
*
|
|
14
|
+
* @default 2
|
|
15
|
+
*/
|
|
16
|
+
readonly azCount?: number;
|
|
17
|
+
/**
|
|
18
|
+
* The IPv4 CIDR block for the VPC.
|
|
19
|
+
*/
|
|
20
|
+
readonly ipv4CidrBlock: string;
|
|
21
|
+
/**
|
|
22
|
+
* The NAT Gateway set up.
|
|
23
|
+
*
|
|
24
|
+
* @default NatGatewayOption.NAT_PER_AVAILABILITY_ZONE
|
|
25
|
+
*/
|
|
26
|
+
readonly natGatewayOption?: NatGatewayOption;
|
|
27
|
+
/**
|
|
28
|
+
* Provisions a Service Discovery Private DNS Namespace resource.
|
|
29
|
+
*/
|
|
30
|
+
readonly internalDomain: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Define an AWS Virtual Private Cloud simple IPv4 network.
|
|
34
|
+
*
|
|
35
|
+
* See the package-level documentation of this package for an overview
|
|
36
|
+
* of the various dimensions in which you can configure your VPC.
|
|
37
|
+
*
|
|
38
|
+
* For example:
|
|
39
|
+
*
|
|
40
|
+
* ```ts
|
|
41
|
+
* const network = new network.SimpleIPv4(awsStack, "network", {
|
|
42
|
+
* ipv4CidrBlock: "10.0.0.0/16",
|
|
43
|
+
* internalDomain: "example.local",
|
|
44
|
+
* });
|
|
45
|
+
*
|
|
46
|
+
* // Add a subnet group for RDS
|
|
47
|
+
* network.enableDbSubnetGroup();
|
|
48
|
+
* ```
|
|
49
|
+
*
|
|
50
|
+
* @resource aws_vpc
|
|
51
|
+
* @beacon-class network.SimpleIPv4Vpc
|
|
52
|
+
*/
|
|
53
|
+
export declare class SimpleIPv4Vpc extends AwsConstructBase implements INetwork {
|
|
54
|
+
private readonly _props;
|
|
55
|
+
private readonly _outputs;
|
|
56
|
+
get networkOutputs(): NetworkOutputs;
|
|
57
|
+
get outputs(): Record<string, any>;
|
|
58
|
+
private readonly ipv4CidrBlock;
|
|
59
|
+
private readonly natGatewayOption;
|
|
60
|
+
private readonly natGateways;
|
|
61
|
+
private readonly privateRouteTables;
|
|
62
|
+
private readonly azCount;
|
|
63
|
+
private readonly availabilityZones;
|
|
64
|
+
private readonly vpc;
|
|
65
|
+
get vpcId(): string;
|
|
66
|
+
private readonly _publicSubnets;
|
|
67
|
+
get publicSubnets(): ISubnet[];
|
|
68
|
+
private readonly _privateSubnets;
|
|
69
|
+
get privateSubnets(): ISubnet[];
|
|
70
|
+
private readonly _dataSubnets;
|
|
71
|
+
get dataSubnets(): ISubnet[];
|
|
72
|
+
private _dbSubnetGroup?;
|
|
73
|
+
get dbSubnetGroup(): ISubnetGroup | undefined;
|
|
74
|
+
private _elastiCacheSubnetGroup?;
|
|
75
|
+
get elastiCacheSubnetGroup(): ISubnetGroup | undefined;
|
|
76
|
+
private readonly serviceDiscoveryNamespace;
|
|
77
|
+
get serviceDiscoveryNamespaceArn(): string;
|
|
78
|
+
constructor(scope: Construct, id: string, props: SimpleIPv4Props);
|
|
79
|
+
enableDbSubnetGroup(): void;
|
|
80
|
+
enableElastiCacheSubnetGroup(): void;
|
|
81
|
+
private createPublicSubnets;
|
|
82
|
+
private createPrivateSubnets;
|
|
83
|
+
private createDataSubnets;
|
|
84
|
+
}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.SimpleIPv4Vpc = exports.NatGatewayOption = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const provider_aws_1 = require("@cdktf/provider-aws");
|
|
7
|
+
const cdktf_1 = require("cdktf");
|
|
8
|
+
const aws_construct_1 = require("../aws-construct");
|
|
9
|
+
const subnet_1 = require("./subnet");
|
|
10
|
+
const subnet_group_1 = require("./subnet-group");
|
|
11
|
+
var NatGatewayOption;
|
|
12
|
+
(function (NatGatewayOption) {
|
|
13
|
+
NatGatewayOption["SINGLE_NAT_GATEWAY"] = "single-nat-gateway";
|
|
14
|
+
NatGatewayOption["NAT_PER_AVAILABILITY_ZONE"] = "nat-per-availability-zone";
|
|
15
|
+
})(NatGatewayOption || (exports.NatGatewayOption = NatGatewayOption = {}));
|
|
16
|
+
/**
|
|
17
|
+
* Define an AWS Virtual Private Cloud simple IPv4 network.
|
|
18
|
+
*
|
|
19
|
+
* See the package-level documentation of this package for an overview
|
|
20
|
+
* of the various dimensions in which you can configure your VPC.
|
|
21
|
+
*
|
|
22
|
+
* For example:
|
|
23
|
+
*
|
|
24
|
+
* ```ts
|
|
25
|
+
* const network = new network.SimpleIPv4(awsStack, "network", {
|
|
26
|
+
* ipv4CidrBlock: "10.0.0.0/16",
|
|
27
|
+
* internalDomain: "example.local",
|
|
28
|
+
* });
|
|
29
|
+
*
|
|
30
|
+
* // Add a subnet group for RDS
|
|
31
|
+
* network.enableDbSubnetGroup();
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* @resource aws_vpc
|
|
35
|
+
* @beacon-class network.SimpleIPv4Vpc
|
|
36
|
+
*/
|
|
37
|
+
class SimpleIPv4Vpc extends aws_construct_1.AwsConstructBase {
|
|
38
|
+
get networkOutputs() {
|
|
39
|
+
return this._outputs;
|
|
40
|
+
}
|
|
41
|
+
get outputs() {
|
|
42
|
+
return this._outputs;
|
|
43
|
+
}
|
|
44
|
+
get vpcId() {
|
|
45
|
+
return this.vpc.id;
|
|
46
|
+
}
|
|
47
|
+
get publicSubnets() {
|
|
48
|
+
return this._publicSubnets;
|
|
49
|
+
}
|
|
50
|
+
get privateSubnets() {
|
|
51
|
+
return this._privateSubnets;
|
|
52
|
+
}
|
|
53
|
+
get dataSubnets() {
|
|
54
|
+
return this._dataSubnets;
|
|
55
|
+
}
|
|
56
|
+
get dbSubnetGroup() {
|
|
57
|
+
return this._dbSubnetGroup;
|
|
58
|
+
}
|
|
59
|
+
get elastiCacheSubnetGroup() {
|
|
60
|
+
return this._elastiCacheSubnetGroup;
|
|
61
|
+
}
|
|
62
|
+
get serviceDiscoveryNamespaceArn() {
|
|
63
|
+
return this.serviceDiscoveryNamespace.arn;
|
|
64
|
+
}
|
|
65
|
+
constructor(scope, id, props) {
|
|
66
|
+
super(scope, id, props);
|
|
67
|
+
this.natGateways = [];
|
|
68
|
+
this.privateRouteTables = [];
|
|
69
|
+
this._publicSubnets = [];
|
|
70
|
+
this._privateSubnets = [];
|
|
71
|
+
this._dataSubnets = [];
|
|
72
|
+
this._props = props;
|
|
73
|
+
this.azCount = this._props.azCount ?? 2;
|
|
74
|
+
if (this.azCount > 4) {
|
|
75
|
+
throw new Error("azCount must be less than or equal to 4");
|
|
76
|
+
}
|
|
77
|
+
this.availabilityZones = this.stack.availabilityZones(this.azCount);
|
|
78
|
+
this.ipv4CidrBlock = this._props.ipv4CidrBlock;
|
|
79
|
+
this.vpc = new provider_aws_1.vpc.Vpc(this, "Resource", {
|
|
80
|
+
cidrBlock: this.ipv4CidrBlock,
|
|
81
|
+
enableDnsSupport: true,
|
|
82
|
+
enableDnsHostnames: true,
|
|
83
|
+
});
|
|
84
|
+
const igw = new provider_aws_1.internetGateway.InternetGateway(this, "igw", {
|
|
85
|
+
vpcId: this.vpc.id,
|
|
86
|
+
tags: {
|
|
87
|
+
Name: `${this.friendlyName}-igw`,
|
|
88
|
+
},
|
|
89
|
+
});
|
|
90
|
+
// adopt default route table and add tags
|
|
91
|
+
new provider_aws_1.defaultRouteTable.DefaultRouteTable(this, "DefaultRouteTable", {
|
|
92
|
+
defaultRouteTableId: this.vpc.defaultRouteTableId,
|
|
93
|
+
tags: {
|
|
94
|
+
Name: `${this.friendlyName}-default-route-table`,
|
|
95
|
+
},
|
|
96
|
+
route: [
|
|
97
|
+
{
|
|
98
|
+
cidrBlock: "0.0.0.0/0",
|
|
99
|
+
gatewayId: igw.id,
|
|
100
|
+
},
|
|
101
|
+
],
|
|
102
|
+
});
|
|
103
|
+
this.natGatewayOption =
|
|
104
|
+
this._props.natGatewayOption ??
|
|
105
|
+
NatGatewayOption.NAT_PER_AVAILABILITY_ZONE;
|
|
106
|
+
this.createPublicSubnets(cdktf_1.Fn.cidrsubnet(this.ipv4CidrBlock, 2, 0));
|
|
107
|
+
this.createPrivateSubnets(cdktf_1.Fn.cidrsubnet(this.ipv4CidrBlock, 2, 1));
|
|
108
|
+
this.createDataSubnets(cdktf_1.Fn.cidrsubnet(this.ipv4CidrBlock, 2, 2));
|
|
109
|
+
this.serviceDiscoveryNamespace =
|
|
110
|
+
new provider_aws_1.serviceDiscoveryPrivateDnsNamespace.ServiceDiscoveryPrivateDnsNamespace(this, "ServiceDiscoveryNamespace", {
|
|
111
|
+
name: this._props.internalDomain,
|
|
112
|
+
vpc: this.vpc.id,
|
|
113
|
+
description: `Private DNS namespace for ${this.friendlyName}`,
|
|
114
|
+
tags: {
|
|
115
|
+
Name: `${this.friendlyName}-service-discovery-namespace`,
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
this._outputs = {
|
|
119
|
+
vpcId: this.vpc.id,
|
|
120
|
+
publicSubnetIds: this.publicSubnets.map((subnet) => subnet.subnetId),
|
|
121
|
+
privateSubnetIds: this.privateSubnets.map((subnet) => subnet.subnetId),
|
|
122
|
+
dataSubnetIds: this.dataSubnets.map((subnet) => subnet.subnetId),
|
|
123
|
+
// only known at synth time
|
|
124
|
+
// explicit `null` required to avoid syntax errors when using stringValue && "undefined"
|
|
125
|
+
dbSubnetGroup: cdktf_1.Lazy.anyValue({
|
|
126
|
+
produce: () => this.dbSubnetGroup?.gridUUID ?? null,
|
|
127
|
+
}),
|
|
128
|
+
elastiCacheSubnetGroup: cdktf_1.Lazy.anyValue({
|
|
129
|
+
produce: () => this.elastiCacheSubnetGroup?.gridUUID ?? null,
|
|
130
|
+
}),
|
|
131
|
+
serviceDiscoveryNamespaceName: this.serviceDiscoveryNamespace.name,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
enableDbSubnetGroup() {
|
|
135
|
+
if (this._dbSubnetGroup) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
this._dbSubnetGroup = new subnet_group_1.DbSubnetGroup(this, "DbSubnetGroup", {
|
|
139
|
+
subnets: this._dataSubnets,
|
|
140
|
+
tags: {
|
|
141
|
+
Name: `${this.friendlyName}-db-default-subnet-group`,
|
|
142
|
+
},
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
enableElastiCacheSubnetGroup() {
|
|
146
|
+
if (this._elastiCacheSubnetGroup) {
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
this._elastiCacheSubnetGroup = new subnet_group_1.ElastiCacheSubnetGroup(this, "ElastiCacheSubnetGroup", {
|
|
150
|
+
subnets: this._dataSubnets,
|
|
151
|
+
tags: {
|
|
152
|
+
Name: `${this.friendlyName}-elasticache-default-subnet-group`,
|
|
153
|
+
},
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
createPublicSubnets(publicIpv4CidrBlock) {
|
|
157
|
+
for (let i = 0; i < this.azCount; i++) {
|
|
158
|
+
// if SingleNatGateway, only create NAT Gateway for first public subnet
|
|
159
|
+
const createNatGateway = this.natGatewayOption !== NatGatewayOption.SINGLE_NAT_GATEWAY ||
|
|
160
|
+
i === 0;
|
|
161
|
+
const availabilityZone = cdktf_1.Fn.element(this.availabilityZones, i);
|
|
162
|
+
const publicSubnet = new subnet_1.PublicSubnet(this, `PublicSubnet${i}`, {
|
|
163
|
+
vpc: this.vpc,
|
|
164
|
+
availabilityZone,
|
|
165
|
+
ipv4CidrBlock: cdktf_1.Fn.cidrsubnet(publicIpv4CidrBlock, 2, i),
|
|
166
|
+
defaultRouteTableId: this.vpc.defaultRouteTableId,
|
|
167
|
+
tags: {
|
|
168
|
+
Name: `${this.friendlyName}-public-subnet-${availabilityZone}`,
|
|
169
|
+
},
|
|
170
|
+
createNatGateway,
|
|
171
|
+
});
|
|
172
|
+
if (createNatGateway) {
|
|
173
|
+
const gw = publicSubnet.natgateway;
|
|
174
|
+
// create route table per NAT gateway
|
|
175
|
+
this.privateRouteTables.push(new provider_aws_1.routeTable.RouteTable(this, `PrivateRouteTable${i}`, {
|
|
176
|
+
vpcId: this.vpc.id,
|
|
177
|
+
route: [
|
|
178
|
+
{
|
|
179
|
+
cidrBlock: "0.0.0.0/0",
|
|
180
|
+
natGatewayId: gw.id,
|
|
181
|
+
},
|
|
182
|
+
],
|
|
183
|
+
tags: {
|
|
184
|
+
Name: `${this.friendlyName}-private-route-table-${availabilityZone}`,
|
|
185
|
+
"aws-cdk:subnet-name": "Public",
|
|
186
|
+
"aws-cdk:subnet-type": "Public",
|
|
187
|
+
"kubernetes.io/role/elb": "1",
|
|
188
|
+
},
|
|
189
|
+
}));
|
|
190
|
+
this.natGateways.push(gw);
|
|
191
|
+
}
|
|
192
|
+
this._publicSubnets.push(publicSubnet);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
createPrivateSubnets(privateIpv4CidrBlock) {
|
|
196
|
+
for (let i = 0; i < this.azCount; i++) {
|
|
197
|
+
const availabilityZone = cdktf_1.Fn.element(this.availabilityZones, i);
|
|
198
|
+
const rtbIdx = this.privateRouteTables.length >= this.azCount ? i : 0;
|
|
199
|
+
const privateSubnet = new subnet_1.PrivateSubnet(this, `PrivateSubnet${i}`, {
|
|
200
|
+
vpc: this.vpc,
|
|
201
|
+
availabilityZone,
|
|
202
|
+
ipv4CidrBlock: cdktf_1.Fn.cidrsubnet(privateIpv4CidrBlock, 2, i),
|
|
203
|
+
routeTable: this.privateRouteTables[rtbIdx],
|
|
204
|
+
tags: {
|
|
205
|
+
Name: `${this.friendlyName}-private-subnet-${availabilityZone}`,
|
|
206
|
+
"aws-cdk:subnet-name": "Private",
|
|
207
|
+
"aws-cdk:subnet-type": "Private",
|
|
208
|
+
"kubernetes.io/role/internal-elb": "1",
|
|
209
|
+
},
|
|
210
|
+
});
|
|
211
|
+
this._privateSubnets.push(privateSubnet);
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
createDataSubnets(dataIpv4CidrBlock) {
|
|
215
|
+
for (let i = 0; i < this.azCount; i++) {
|
|
216
|
+
const availabilityZone = cdktf_1.Fn.element(this.availabilityZones, i);
|
|
217
|
+
const rtbIdx = this.privateRouteTables.length >= this.azCount ? i : 0;
|
|
218
|
+
const dataSubnet = new subnet_1.DataSubnet(this, `DataSubnet${i}`, {
|
|
219
|
+
vpc: this.vpc,
|
|
220
|
+
availabilityZone,
|
|
221
|
+
ipv4CidrBlock: cdktf_1.Fn.cidrsubnet(dataIpv4CidrBlock, 2, i),
|
|
222
|
+
routeTable: this.privateRouteTables[rtbIdx],
|
|
223
|
+
tags: {
|
|
224
|
+
Name: `${this.friendlyName}-data-subnet-${availabilityZone}`,
|
|
225
|
+
"aws-cdk:subnet-name": "Data",
|
|
226
|
+
"aws-cdk:subnet-type": "Isolated",
|
|
227
|
+
},
|
|
228
|
+
});
|
|
229
|
+
this._dataSubnets.push(dataSubnet);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
exports.SimpleIPv4Vpc = SimpleIPv4Vpc;
|
|
234
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
235
|
+
SimpleIPv4Vpc[_a] = { fqn: "terraconstructs.aws.network.SimpleIPv4Vpc", version: "0.0.8" };
|
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ltcGxlLWlwdjQtdnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9uZXR3b3JrL3NpbXBsZS1pcHY0LXZwYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNEQU82QjtBQUM3QixpQ0FBaUM7QUFFakMsb0RBQXVFO0FBRXZFLHFDQUE0RTtBQUM1RSxpREFJd0I7QUFFeEIsSUFBWSxnQkFHWDtBQUhELFdBQVksZ0JBQWdCO0lBQzFCLDZEQUF5QyxDQUFBO0lBQ3pDLDJFQUF1RCxDQUFBO0FBQ3pELENBQUMsRUFIVyxnQkFBZ0IsZ0NBQWhCLGdCQUFnQixRQUczQjtBQXlCRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvQkc7QUFDSCxNQUFhLGFBQWMsU0FBUSxnQ0FBZ0I7SUFHakQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBQ0QsSUFBVyxPQUFPO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBUUQsSUFBVyxLQUFLO1FBQ2QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBR0QsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBR0QsSUFBVyxzQkFBc0I7UUFDL0IsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUM7SUFDdEMsQ0FBQztJQUdELElBQVcsNEJBQTRCO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLEdB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R0FBRyxJQUFJLG1CQUFVLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3hELEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztnQkFDYixnQkFBZ0I7Z0JBQ2hCLGFBQWEsRUFBRSxVQUFFLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3JELFVBQVUsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDO2dCQUMzQyxJQUFJLEVBQUU7b0JBQ0osSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFlBQVksZ0JBQWdCLGdCQUFnQixFQUFFO29CQUM1RCxxQkFBcUIsRUFBRSxNQUFNO29CQUM3QixxQkFBcUIsRUFBRSxVQUFVO2lCQUNsQzthQUNGLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7SUFDSCxDQUFDOztBQXhPSCxzQ0F5T0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB2cGMsXG4gIG5hdEdhdGV3YXksXG4gIHJvdXRlVGFibGUsXG4gIGludGVybmV0R2F0ZXdheSxcbiAgZGVmYXVsdFJvdXRlVGFibGUsXG4gIHNlcnZpY2VEaXNjb3ZlcnlQcml2YXRlRG5zTmFtZXNwYWNlLFxufSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgRm4sIExhenkgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBd3NDb25zdHJ1Y3RCYXNlLCBBd3NDb25zdHJ1Y3RQcm9wcyB9IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBJTmV0d29yaywgTmV0d29ya091dHB1dHMgfSBmcm9tIFwiLi9uZXR3b3JrXCI7XG5pbXBvcnQgeyBQdWJsaWNTdWJuZXQsIFByaXZhdGVTdWJuZXQsIERhdGFTdWJuZXQsIElTdWJuZXQgfSBmcm9tIFwiLi9zdWJuZXRcIjtcbmltcG9ydCB7XG4gIElTdWJuZXRHcm91cCxcbiAgRGJTdWJuZXRHcm91cCxcbiAgRWxhc3RpQ2FjaGVTdWJuZXRHcm91cCxcbn0gZnJvbSBcIi4vc3VibmV0LWdyb3VwXCI7XG5cbmV4cG9ydCBlbnVtIE5hdEdhdGV3YXlPcHRpb24ge1xuICBTSU5HTEVfTkFUX0dBVEVXQVkgPSBcInNpbmdsZS1uYXQtZ2F0ZXdheVwiLFxuICBOQVRfUEVSX0FWQUlMQUJJTElUWV9aT05FID0gXCJuYXQtcGVyLWF2YWlsYWJpbGl0eS16b25lXCIsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2ltcGxlSVB2NFByb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBhdmFpbGFiaWxpdHkgem9uZXMgdG8gdXNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAyXG4gICAqL1xuICByZWFkb25seSBhekNvdW50PzogbnVtYmVyO1xuICAvKipcbiAgICogVGhlIElQdjQgQ0lEUiBibG9jayBmb3IgdGhlIFZQQy5cbiAgICovXG4gIHJlYWRvbmx5IGlwdjRDaWRyQmxvY2s6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBOQVQgR2F0ZXdheSBzZXQgdXAuXG4gICAqXG4gICAqIEBkZWZhdWx0IE5hdEdhdGV3YXlPcHRpb24uTkFUX1BFUl9BVkFJTEFCSUxJVFlfWk9ORVxuICAgKi9cbiAgcmVhZG9ubHkgbmF0R2F0ZXdheU9wdGlvbj86IE5hdEdhdGV3YXlPcHRpb247XG4gIC8qKlxuICAgKiBQcm92aXNpb25zIGEgU2VydmljZSBEaXNjb3ZlcnkgUHJpdmF0ZSBETlMgTmFtZXNwYWNlIHJlc291cmNlLlxuICAgKi9cbiAgcmVhZG9ubHkgaW50ZXJuYWxEb21haW46IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZWZpbmUgYW4gQVdTIFZpcnR1YWwgUHJpdmF0ZSBDbG91ZCBzaW1wbGUgSVB2NCBuZXR3b3JrLlxuICpcbiAqIFNlZSB0aGUgcGFja2FnZS1sZXZlbCBkb2N1bWVudGF0aW9uIG9mIHRoaXMgcGFja2FnZSBmb3IgYW4gb3ZlcnZpZXdcbiAqIG9mIHRoZSB2YXJpb3VzIGRpbWVuc2lvbnMgaW4gd2hpY2ggeW91IGNhbiBjb25maWd1cmUgeW91ciBWUEMuXG4gKlxuICogRm9yIGV4YW1wbGU6XG4gKlxuICogYGBgdHNcbiAqIGNvbnN0IG5ldHdvcmsgPSBuZXcgbmV0d29yay5TaW1wbGVJUHY0KGF3c1N0YWNrLCBcIm5ldHdvcmtcIiwge1xuICogIGlwdjRDaWRyQmxvY2s6IFwiMTAuMC4wLjAvMTZcIixcbiAqICBpbnRlcm5hbERvbWFpbjogXCJleGFtcGxlLmxvY2FsXCIsXG4gKiB9KTtcbiAqXG4gKiAvLyBBZGQgYSBzdWJuZXQgZ3JvdXAgZm9yIFJEU1xuICogbmV0d29yay5lbmFibGVEYlN1Ym5ldEdyb3VwKCk7XG4gKiBgYGBcbiAqXG4gKiBAcmVzb3VyY2UgYXdzX3ZwY1xuICogQGJlYWNvbi1jbGFzcyBuZXR3b3JrLlNpbXBsZUlQdjRWcGNcbiAqL1xuZXhwb3J0IGNsYXNzIFNpbXBsZUlQdjRWcGMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIGltcGxlbWVudHMgSU5ldHdvcmsge1xuICBwcml2YXRlIHJlYWRvbmx5IF9wcm9wczogU2ltcGxlSVB2NFByb3BzO1xuICBwcml2YXRlIHJlYWRvbmx5IF9vdXRwdXRzOiBOZXR3b3JrT3V0cHV0cztcbiAgcHVibGljIGdldCBuZXR3b3JrT3V0cHV0cygpOiBOZXR3b3JrT3V0cHV0cyB7XG4gICAgcmV0dXJuIHRoaXMuX291dHB1dHM7XG4gIH1cbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9vdXRwdXRzO1xuICB9XG4gIHByaXZhdGUgcmVhZG9ubHkgaXB2NENpZHJCbG9jazogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IG5hdEdhdGV3YXlPcHRpb246IE5hdEdhdGV3YXlPcHRpb247XG4gIHByaXZhdGUgcmVhZG9ubHkgbmF0R2F0ZXdheXM6IG5hdEdhdGV3YXkuTmF0R2F0ZXdheVtdID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJpdmF0ZVJvdXRlVGFibGVzOiByb3V0ZVRhYmxlLlJvdXRlVGFibGVbXSA9IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IGF6Q291bnQ6IG51bWJlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBhdmFpbGFiaWxpdHlab25lczogc3RyaW5nW107IC8vIFRva2VuIGFzIFN0cmluZ0xpc3RcbiAgcHJpdmF0ZSByZWFkb25seSB2cGM6IHZwYy5WcGM7XG4gIHB1YmxpYyBnZXQgdnBjSWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy52cGMuaWQ7XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfcHVibGljU3VibmV0czogUHVibGljU3VibmV0W10gPSBbXTtcbiAgcHVibGljIGdldCBwdWJsaWNTdWJuZXRzKCk6IElTdWJuZXRbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3B1YmxpY1N1Ym5ldHM7XG4gIH1cbiAgcHJpdmF0ZSByZWFkb25seSBfcHJpdmF0ZVN1Ym5ldHM6IFByaXZhdGVTdWJuZXRbXSA9IFtdO1xuICBwdWJsaWMgZ2V0IHByaXZhdGVTdWJuZXRzKCk6IElTdWJuZXRbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3ByaXZhdGVTdWJuZXRzO1xuICB9XG4gIHByaXZhdGUgcmVhZG9ubHkgX2RhdGFTdWJuZXRzOiBEYXRhU3VibmV0W10gPSBbXTtcbiAgcHVibGljIGdldCBkYXRhU3VibmV0cygpOiBJU3VibmV0W10ge1xuICAgIHJldHVybiB0aGlzLl9kYXRhU3VibmV0cztcbiAgfVxuXG4gIHByaXZhdGUgX2RiU3VibmV0R3JvdXA/OiBJU3VibmV0R3JvdXA7XG4gIHB1YmxpYyBnZXQgZGJTdWJuZXRHcm91cCgpOiBJU3VibmV0R3JvdXAgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9kYlN1Ym5ldEdyb3VwO1xuICB9XG5cbiAgcHJpdmF0ZSBfZWxhc3RpQ2FjaGVTdWJuZXRHcm91cD86IElTdWJuZXRHcm91cDtcbiAgcHVibGljIGdldCBlbGFzdGlDYWNoZVN1Ym5ldEdyb3VwKCk6IElTdWJuZXRHcm91cCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2VsYXN0aUNhY2hlU3VibmV0R3JvdXA7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2VEaXNjb3ZlcnlOYW1lc3BhY2U6IHNlcnZpY2VEaXNjb3ZlcnlQcml2YXRlRG5zTmFtZXNwYWNlLlNlcnZpY2VEaXNjb3ZlcnlQcml2YXRlRG5zTmFtZXNwYWNlO1xuICBwdWJsaWMgZ2V0IHNlcnZpY2VEaXNjb3ZlcnlOYW1lc3BhY2VBcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlRGlzY292ZXJ5TmFtZXNwYWNlLmFybjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBTaW1wbGVJUHY0UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcbiAgICB0aGlzLl9wcm9wcyA9IHByb3BzO1xuICAgIHRoaXMuYXpDb3VudCA9IHRoaXMuX3Byb3BzLmF6Q291bnQgPz8gMjtcbiAgICBpZiAodGhpcy5hekNvdW50ID4gNCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiYXpDb3VudCBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byA0XCIpO1xuICAgIH1cblxuICAgIHRoaXMuYXZhaWxhYmlsaXR5Wm9uZXMgPSB0aGlzLnN0YWNrLmF2YWlsYWJpbGl0eVpvbmVzKHRoaXMuYXpDb3VudCk7XG4gICAgdGhpcy5pcHY0Q2lkckJsb2NrID0gdGhpcy5fcHJvcHMuaXB2NENpZHJCbG9jaztcbiAgICB0aGlzLnZwYyA9IG5ldyB2cGMuVnBjKHRoaXMsIFwiUmVzb3VyY2VcIiwge1xuICAgICAgY2lkckJsb2NrOiB0aGlzLmlwdjRDaWRyQmxvY2ssXG4gICAgICBlbmFibGVEbnNTdXBwb3J0OiB0cnVlLFxuICAgICAgZW5hYmxlRG5zSG9zdG5hbWVzOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgY29uc3QgaWd3ID0gbmV3IGludGVybmV0R2F0ZXdheS5JbnRlcm5ldEdhdGV3YXkodGhpcywgXCJpZ3dcIiwge1xuICAgICAgdnBjSWQ6IHRoaXMudnBjLmlkLFxuICAgICAgdGFnczoge1xuICAgICAgICBOYW1lOiBgJHt0aGlzLmZyaWVuZGx5TmFtZX0taWd3YCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBhZG9wdCBkZWZhdWx0IHJvdXRlIHRhYmxlIGFuZCBhZGQgdGFnc1xuICAgIG5ldyBkZWZhdWx0Um91dGVUYWJsZS5EZWZhdWx0Um91dGVUYWJsZSh0aGlzLCBcIkRlZmF1bHRSb3V0ZVRhYmxlXCIsIHtcbiAgICAgIGRlZmF1bHRSb3V0ZVRhYmxlSWQ6IHRoaXMudnBjLmRlZmF1bHRSb3V0ZVRhYmxlSWQsXG4gICAgICB0YWdzOiB7XG4gICAgICAgIE5hbWU6IGAke3RoaXMuZnJpZW5kbHlOYW1lfS1kZWZhdWx0LXJvdXRlLXRhYmxlYCxcbiAgICAgIH0sXG4gICAgICByb3V0ZTogW1xuICAgICAgICB7XG4gICAgICAgICAgY2lkckJsb2NrOiBcIjAuMC4wLjAvMFwiLFxuICAgICAgICAgIGdhdGV3YXlJZDogaWd3LmlkLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIHRoaXMubmF0R2F0ZXdheU9wdGlvbiA9XG4gICAgICB0aGlzLl9wcm9wcy5uYXRHYXRld2F5T3B0aW9uID8/XG4gICAgICBOYXRHYXRld2F5T3B0aW9uLk5BVF9QRVJfQVZBSUxBQklMSVRZX1pPTkU7XG5cbiAgICB0aGlzLmNyZWF0ZVB1YmxpY1N1Ym5ldHMoRm4uY2lkcnN1Ym5ldCh0aGlzLmlwdjRDaWRyQmxvY2ssIDIsIDApKTtcbiAgICB0aGlzLmNyZWF0ZVByaXZhdGVTdWJuZXRzKEZuLmNpZHJzdWJuZXQodGhpcy5pcHY0Q2lkckJsb2NrLCAyLCAxKSk7XG4gICAgdGhpcy5jcmVhdGVEYXRhU3VibmV0cyhGbi5jaWRyc3VibmV0KHRoaXMuaXB2NENpZHJCbG9jaywgMiwgMikpO1xuXG4gICAgdGhpcy5zZXJ2aWNlRGlzY292ZXJ5TmFtZXNwYWNlID1cbiAgICAgIG5ldyBzZXJ2aWNlRGlzY292ZXJ5UHJpdmF0ZURuc05hbWVzcGFjZS5TZXJ2aWNlRGlzY292ZXJ5UHJpdmF0ZURuc05hbWVzcGFjZShcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCJTZXJ2aWNlRGlzY292ZXJ5TmFtZXNwYWNlXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiB0aGlzLl9wcm9wcy5pbnRlcm5hbERvbWFpbixcbiAgICAgICAgICB2cGM6IHRoaXMudnBjLmlkLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBgUHJpdmF0ZSBETlMgbmFtZXNwYWNlIGZvciAke3RoaXMuZnJpZW5kbHlOYW1lfWAsXG4gICAgICAgICAgdGFnczoge1xuICAgICAgICAgICAgTmFtZTogYCR7dGhpcy5mcmllbmRseU5hbWV9LXNlcnZpY2UtZGlzY292ZXJ5LW5hbWVzcGFjZWAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICB0aGlzLl9vdXRwdXRzID0ge1xuICAgICAgdnBjSWQ6IHRoaXMudnBjLmlkLFxuICAgICAgcHVibGljU3VibmV0SWRzOiB0aGlzLnB1YmxpY1N1Ym5ldHMubWFwKChzdWJuZXQpID0+IHN1Ym5ldC5zdWJuZXRJZCksXG4gICAgICBwcml2YXRlU3VibmV0SWRzOiB0aGlzLnByaXZhdGVTdWJuZXRzLm1hcCgoc3VibmV0KSA9PiBzdWJuZXQuc3VibmV0SWQpLFxuICAgICAgZGF0YVN1Ym5ldElkczogdGhpcy5kYXRhU3VibmV0cy5tYXAoKHN1Ym5ldCkgPT4gc3VibmV0LnN1Ym5ldElkKSxcbiAgICAgIC8vIG9ubHkga25vd24gYXQgc3ludGggdGltZVxuICAgICAgLy8gZXhwbGljaXQgYG51bGxgIHJlcXVpcmVkIHRvIGF2b2lkIHN5bnRheCBlcnJvcnMgd2hlbiB1c2luZyBzdHJpbmdWYWx1ZSAmJiBcInVuZGVmaW5lZFwiXG4gICAgICBkYlN1Ym5ldEdyb3VwOiBMYXp5LmFueVZhbHVlKHtcbiAgICAgICAgcHJvZHVjZTogKCkgPT4gdGhpcy5kYlN1Ym5ldEdyb3VwPy5ncmlkVVVJRCA/PyBudWxsLFxuICAgICAgfSksXG4gICAgICBlbGFzdGlDYWNoZVN1Ym5ldEdyb3VwOiBMYXp5LmFueVZhbHVlKHtcbiAgICAgICAgcHJvZHVjZTogKCkgPT4gdGhpcy5lbGFzdGlDYWNoZVN1Ym5ldEdyb3VwPy5ncmlkVVVJRCA/PyBudWxsLFxuICAgICAgfSksXG4gICAgICBzZXJ2aWNlRGlzY292ZXJ5TmFtZXNwYWNlTmFtZTogdGhpcy5zZXJ2aWNlRGlzY292ZXJ5TmFtZXNwYWNlLm5hbWUsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBlbmFibGVEYlN1Ym5ldEdyb3VwKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9kYlN1Ym5ldEdyb3VwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2RiU3VibmV0R3JvdXAgPSBuZXcgRGJTdWJuZXRHcm91cCh0aGlzLCBcIkRiU3VibmV0R3JvdXBcIiwge1xuICAgICAgc3VibmV0czogdGhpcy5fZGF0YVN1Ym5ldHMsXG4gICAgICB0YWdzOiB7XG4gICAgICAgIE5hbWU6IGAke3RoaXMuZnJpZW5kbHlOYW1lfS1kYi1kZWZhdWx0LXN1Ym5ldC1ncm91cGAsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGVuYWJsZUVsYXN0aUNhY2hlU3VibmV0R3JvdXAoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2VsYXN0aUNhY2hlU3VibmV0R3JvdXApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fZWxhc3RpQ2FjaGVTdWJuZXRHcm91cCA9IG5ldyBFbGFzdGlDYWNoZVN1Ym5ldEdyb3VwKFxuICAgICAgdGhpcyxcbiAgICAgIFwiRWxhc3RpQ2FjaGVTdWJuZXRHcm91cFwiLFxuICAgICAge1xuICAgICAgICBzdWJuZXRzOiB0aGlzLl9kYXRhU3VibmV0cyxcbiAgICAgICAgdGFnczoge1xuICAgICAgICAgIE5hbWU6IGAke3RoaXMuZnJpZW5kbHlOYW1lfS1lbGFzdGljYWNoZS1kZWZhdWx0LXN1Ym5ldC1ncm91cGAsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVB1YmxpY1N1Ym5ldHMocHVibGljSXB2NENpZHJCbG9jazogc3RyaW5nKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmF6Q291bnQ7IGkrKykge1xuICAgICAgLy8gaWYgU2luZ2xlTmF0R2F0ZXdheSwgb25seSBjcmVhdGUgTkFUIEdhdGV3YXkgZm9yIGZpcnN0IHB1YmxpYyBzdWJuZXRcbiAgICAgIGNvbnN0IGNyZWF0ZU5hdEdhdGV3YXkgPVxuICAgICAgICB0aGlzLm5hdEdhdGV3YXlPcHRpb24gIT09IE5hdEdhdGV3YXlPcHRpb24uU0lOR0xFX05BVF9HQVRFV0FZIHx8XG4gICAgICAgIGkgPT09IDA7XG4gICAgICBjb25zdCBhdmFpbGFiaWxpdHlab25lID0gRm4uZWxlbWVudCh0aGlzLmF2YWlsYWJpbGl0eVpvbmVzLCBpKTtcbiAgICAgIGNvbnN0IHB1YmxpY1N1Ym5ldCA9IG5ldyBQdWJsaWNTdWJuZXQodGhpcywgYFB1YmxpY1N1Ym5ldCR7aX1gLCB7XG4gICAgICAgIHZwYzogdGhpcy52cGMsXG4gICAgICAgIGF2YWlsYWJpbGl0eVpvbmUsXG4gICAgICAgIGlwdjRDaWRyQmxvY2s6IEZuLmNpZHJzdWJuZXQocHVibGljSXB2NENpZHJCbG9jaywgMiwgaSksXG4gICAgICAgIGRlZmF1bHRSb3V0ZVRhYmxlSWQ6IHRoaXMudnBjLmRlZmF1bHRSb3V0ZVRhYmxlSWQsXG4gICAgICAgIHRhZ3M6IHtcbiAgICAgICAgICBOYW1lOiBgJHt0aGlzLmZyaWVuZGx5TmFtZX0tcHVibGljLXN1Ym5ldC0ke2F2YWlsYWJpbGl0eVpvbmV9YCxcbiAgICAgICAgfSxcbiAgICAgICAgY3JlYXRlTmF0R2F0ZXdheSxcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoY3JlYXRlTmF0R2F0ZXdheSkge1xuICAgICAgICBjb25zdCBndyA9IHB1YmxpY1N1Ym5ldC5uYXRnYXRld2F5ITtcbiAgICAgICAgLy8gY3JlYXRlIHJvdXRlIHRhYmxlIHBlciBOQVQgZ2F0ZXdheVxuICAgICAgICB0aGlzLnByaXZhdGVSb3V0ZVRhYmxlcy5wdXNoKFxuICAgICAgICAgIG5ldyByb3V0ZVRhYmxlLlJvdXRlVGFibGUodGhpcywgYFByaXZhdGVSb3V0ZVRhYmxlJHtpfWAsIHtcbiAgICAgICAgICAgIHZwY0lkOiB0aGlzLnZwYy5pZCxcbiAgICAgICAgICAgIHJvdXRlOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjaWRyQmxvY2s6IFwiMC4wLjAuMC8wXCIsXG4gICAgICAgICAgICAgICAgbmF0R2F0ZXdheUlkOiBndy5pZCxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgICAgIE5hbWU6IGAke3RoaXMuZnJpZW5kbHlOYW1lfS1wcml2YXRlLXJvdXRlLXRhYmxlLSR7YXZhaWxhYmlsaXR5Wm9uZX1gLFxuICAgICAgICAgICAgICBcImF3cy1jZGs6c3VibmV0LW5hbWVcIjogXCJQdWJsaWNcIixcbiAgICAgICAgICAgICAgXCJhd3MtY2RrOnN1Ym5ldC10eXBlXCI6IFwiUHVibGljXCIsXG4gICAgICAgICAgICAgIFwia3ViZXJuZXRlcy5pby9yb2xlL2VsYlwiOiBcIjFcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMubmF0R2F0ZXdheXMucHVzaChndyk7XG4gICAgICB9XG4gICAgICB0aGlzLl9wdWJsaWNTdWJuZXRzLnB1c2gocHVibGljU3VibmV0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVByaXZhdGVTdWJuZXRzKHByaXZhdGVJcHY0Q2lkckJsb2NrOiBzdHJpbmcpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYXpDb3VudDsgaSsrKSB7XG4gICAgICBjb25zdCBhdmFpbGFiaWxpdHlab25lID0gRm4uZWxlbWVudCh0aGlzLmF2YWlsYWJpbGl0eVpvbmVzLCBpKTtcbiAgICAgIGNvbnN0IHJ0YklkeCA9IHRoaXMucHJpdmF0ZVJvdXRlVGFibGVzLmxlbmd0aCA+PSB0aGlzLmF6Q291bnQgPyBpIDogMDtcbiAgICAgIGNvbnN0IHByaXZhdGVTdWJuZXQgPSBuZXcgUHJpdmF0ZVN1Ym5ldCh0aGlzLCBgUHJpdmF0ZVN1Ym5ldCR7aX1gLCB7XG4gICAgICAgIHZwYzogdGhpcy52cGMsXG4gICAgICAgIGF2YWlsYWJpbGl0eVpvbmUsXG4gICAgICAgIGlwdjRDaWRyQmxvY2s6IEZuLmNpZHJzdWJuZXQocHJpdmF0ZUlwdjRDaWRyQmxvY2ssIDIsIGkpLFxuICAgICAgICByb3V0ZVRhYmxlOiB0aGlzLnByaXZhdGVSb3V0ZVRhYmxlc1tydGJJZHhdLFxuICAgICAgICB0YWdzOiB7XG4gICAgICAgICAgTmFtZTogYCR7dGhpcy5mcmllbmRseU5hbWV9LXByaXZhdGUtc3VibmV0LSR7YXZhaWxhYmlsaXR5Wm9uZX1gLFxuICAgICAgICAgIFwiYXdzLWNkazpzdWJuZXQtbmFtZVwiOiBcIlByaXZhdGVcIixcbiAgICAgICAgICBcImF3cy1jZGs6c3VibmV0LXR5cGVcIjogXCJQcml2YXRlXCIsXG4gICAgICAgICAgXCJrdWJlcm5ldGVzLmlvL3JvbGUvaW50ZXJuYWwtZWxiXCI6IFwiMVwiLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICB0aGlzLl9wcml2YXRlU3VibmV0cy5wdXNoKHByaXZhdGVTdWJuZXQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRGF0YVN1Ym5ldHMoZGF0YUlwdjRDaWRyQmxvY2s6IHN0cmluZykge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5hekNvdW50OyBpKyspIHtcbiAgICAgIGNvbnN0IGF2YWlsYWJpbGl0eVpvbmUgPSBGbi5lbGVtZW50KHRoaXMuYXZhaWxhYmlsaXR5Wm9uZXMsIGkpO1xuICAgICAgY29uc3QgcnRiSWR4ID0gdGhpcy5wcml2YXRlUm91dGVUYWJsZXMubGVuZ3RoID49IHRoaXMuYXpDb3VudCA/IGkgOiAwO1xuICAgICAgY29uc3QgZGF0YVN1Ym5ldCA9IG5ldyBEYXRhU3VibmV0KHRoaXMsIGBEYXRhU3VibmV0JHtpfWAsIHtcbiAgICAgICAgdnBjOiB0aGlzLnZwYyxcbiAgICAgICAgYXZhaWxhYmlsaXR5Wm9uZSxcbiAgICAgICAgaXB2NENpZHJCbG9jazogRm4uY2lkcnN1Ym5ldChkYXRhSXB2NENpZHJCbG9jaywgMiwgaSksXG4gICAgICAgIHJvdXRlVGFibGU6IHRoaXMucHJpdmF0ZVJvdXRlVGFibGVzW3J0YklkeF0sXG4gICAgICAgIHRhZ3M6IHtcbiAgICAgICAgICBOYW1lOiBgJHt0aGlzLmZyaWVuZGx5TmFtZX0tZGF0YS1zdWJuZXQtJHthdmFpbGFiaWxpdHlab25lfWAsXG4gICAgICAgICAgXCJhd3MtY2RrOnN1Ym5ldC1uYW1lXCI6IFwiRGF0YVwiLFxuICAgICAgICAgIFwiYXdzLWNkazpzdWJuZXQtdHlwZVwiOiBcIklzb2xhdGVkXCIsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIHRoaXMuX2RhdGFTdWJuZXRzLnB1c2goZGF0YVN1Ym5ldCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { dbSubnetGroup, elasticacheSubnetGroup } from "@cdktf/provider-aws";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
import { AwsConstructBase, AwsConstructProps, IAwsConstruct } from "../aws-construct";
|
|
4
|
+
import { ISubnet } from "./subnet";
|
|
5
|
+
export declare enum SubnetGroupType {
|
|
6
|
+
/**
|
|
7
|
+
* RDS and DocDb SubnetGroup
|
|
8
|
+
*/
|
|
9
|
+
DB = "DB",
|
|
10
|
+
/**
|
|
11
|
+
* ElastiCache SubnetGroup
|
|
12
|
+
*/
|
|
13
|
+
ELASTICACHE = "ELASTICACHE"
|
|
14
|
+
}
|
|
15
|
+
export interface SubnetGroupProps extends AwsConstructProps {
|
|
16
|
+
readonly subnets: ISubnet[];
|
|
17
|
+
readonly tags?: Record<string, string>;
|
|
18
|
+
}
|
|
19
|
+
export interface ISubnetGroup extends IAwsConstruct {
|
|
20
|
+
readonly type: SubnetGroupType;
|
|
21
|
+
readonly arn: string;
|
|
22
|
+
readonly subnets: ISubnet[];
|
|
23
|
+
}
|
|
24
|
+
export declare abstract class BaseSubnetGroup extends AwsConstructBase implements ISubnetGroup {
|
|
25
|
+
readonly type: SubnetGroupType;
|
|
26
|
+
readonly tags?: Record<string, string>;
|
|
27
|
+
private readonly _subnets;
|
|
28
|
+
get subnets(): ISubnet[];
|
|
29
|
+
abstract get arn(): string;
|
|
30
|
+
get outputs(): Record<string, any>;
|
|
31
|
+
constructor(scope: Construct, id: string, type: SubnetGroupType, props: SubnetGroupProps);
|
|
32
|
+
}
|
|
33
|
+
export declare class DbSubnetGroup extends BaseSubnetGroup {
|
|
34
|
+
readonly resource: dbSubnetGroup.DbSubnetGroup;
|
|
35
|
+
get arn(): string;
|
|
36
|
+
constructor(scope: Construct, id: string, props: SubnetGroupProps);
|
|
37
|
+
}
|
|
38
|
+
export declare class ElastiCacheSubnetGroup extends BaseSubnetGroup {
|
|
39
|
+
readonly resource: elasticacheSubnetGroup.ElasticacheSubnetGroup;
|
|
40
|
+
get arn(): string;
|
|
41
|
+
constructor(scope: Construct, id: string, props: SubnetGroupProps);
|
|
42
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a, _b, _c;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.ElastiCacheSubnetGroup = exports.DbSubnetGroup = exports.BaseSubnetGroup = exports.SubnetGroupType = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const provider_aws_1 = require("@cdktf/provider-aws");
|
|
7
|
+
const aws_construct_1 = require("../aws-construct");
|
|
8
|
+
var SubnetGroupType;
|
|
9
|
+
(function (SubnetGroupType) {
|
|
10
|
+
/**
|
|
11
|
+
* RDS and DocDb SubnetGroup
|
|
12
|
+
*/
|
|
13
|
+
SubnetGroupType["DB"] = "DB";
|
|
14
|
+
/**
|
|
15
|
+
* ElastiCache SubnetGroup
|
|
16
|
+
*/
|
|
17
|
+
SubnetGroupType["ELASTICACHE"] = "ELASTICACHE";
|
|
18
|
+
})(SubnetGroupType || (exports.SubnetGroupType = SubnetGroupType = {}));
|
|
19
|
+
class BaseSubnetGroup extends aws_construct_1.AwsConstructBase {
|
|
20
|
+
get subnets() {
|
|
21
|
+
return this._subnets;
|
|
22
|
+
}
|
|
23
|
+
get outputs() {
|
|
24
|
+
return {
|
|
25
|
+
type: this.type,
|
|
26
|
+
arn: this.arn,
|
|
27
|
+
subnets: this.subnets.map((subnet) => subnet.outputs),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
constructor(scope, id, type, props) {
|
|
31
|
+
super(scope, id, props);
|
|
32
|
+
this.type = type;
|
|
33
|
+
this.tags = props.tags;
|
|
34
|
+
this._subnets = props.subnets;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.BaseSubnetGroup = BaseSubnetGroup;
|
|
38
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
39
|
+
BaseSubnetGroup[_a] = { fqn: "terraconstructs.aws.network.BaseSubnetGroup", version: "0.0.8" };
|
|
40
|
+
class DbSubnetGroup extends BaseSubnetGroup {
|
|
41
|
+
get arn() {
|
|
42
|
+
return this.resource.arn;
|
|
43
|
+
}
|
|
44
|
+
constructor(scope, id, props) {
|
|
45
|
+
super(scope, id, SubnetGroupType.DB, props);
|
|
46
|
+
this.resource = new provider_aws_1.dbSubnetGroup.DbSubnetGroup(this, "Resource", {
|
|
47
|
+
name: this.gridUUID,
|
|
48
|
+
subnetIds: this.subnets.map((subnet) => subnet.subnetId),
|
|
49
|
+
tags: this.tags,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.DbSubnetGroup = DbSubnetGroup;
|
|
54
|
+
_b = JSII_RTTI_SYMBOL_1;
|
|
55
|
+
DbSubnetGroup[_b] = { fqn: "terraconstructs.aws.network.DbSubnetGroup", version: "0.0.8" };
|
|
56
|
+
class ElastiCacheSubnetGroup extends BaseSubnetGroup {
|
|
57
|
+
get arn() {
|
|
58
|
+
return this.resource.arn;
|
|
59
|
+
}
|
|
60
|
+
constructor(scope, id, props) {
|
|
61
|
+
super(scope, id, SubnetGroupType.ELASTICACHE, props);
|
|
62
|
+
this.resource = new provider_aws_1.elasticacheSubnetGroup.ElasticacheSubnetGroup(this, "Resource", {
|
|
63
|
+
name: this.gridUUID,
|
|
64
|
+
subnetIds: this.subnets.map((subnet) => subnet.subnetId),
|
|
65
|
+
tags: this.tags,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.ElastiCacheSubnetGroup = ElastiCacheSubnetGroup;
|
|
70
|
+
_c = JSII_RTTI_SYMBOL_1;
|
|
71
|
+
ElastiCacheSubnetGroup[_c] = { fqn: "terraconstructs.aws.network.ElastiCacheSubnetGroup", version: "0.0.8" };
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VibmV0LWdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9uZXR3b3JrL3N1Ym5ldC1ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNEQUk2QjtBQUU3QixvREFJMEI7QUFHMUIsSUFBWSxlQVNYO0FBVEQsV0FBWSxlQUFlO0lBQ3pCOztPQUVHO0lBQ0gsNEJBQVMsQ0FBQTtJQUNUOztPQUVHO0lBQ0gsOENBQTJCLENBQUE7QUFDN0IsQ0FBQyxFQVRXLGVBQWUsK0JBQWYsZUFBZSxRQVMxQjtBQWFELE1BQXNCLGVBQ3BCLFNBQVEsZ0NBQWdCO0lBT3hCLElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHO1lBQ2IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1NBQ3RELENBQUM7SUFDSixDQUFDO0lBRUQsWUFDRSxLQUFnQixFQUNoQixFQUFVLEVBQ1YsSUFBcUIsRUFDckIsS0FBdUI7UUFFdkIsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUNoQyxDQUFDOztBQTlCSCwwQ0ErQkM7OztBQUVELE1BQWEsYUFBYyxTQUFRLGVBQWU7SUFFaEQsSUFBVyxHQUFHO1FBQ1osT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztJQUMzQixDQUFDO0lBQ0QsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF1QjtRQUMvRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxlQUFlLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSw0QkFBYSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ2hFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUTtZQUNuQixTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFDeEQsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1NBQ2hCLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBWkgsc0NBYUM7OztBQUVELE1BQWEsc0JBQXVCLFNBQVEsZUFBZTtJQUV6RCxJQUFXLEdBQUc7UUFDWixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO0lBQzNCLENBQUM7SUFDRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXVCO1FBQy9ELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLGVBQWUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHFDQUFzQixDQUFDLHNCQUFzQixDQUMvRCxJQUFJLEVBQ0osVUFBVSxFQUNWO1lBQ0UsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ25CLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztZQUN4RCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7U0FDaEIsQ0FDRixDQUFDO0lBQ0osQ0FBQzs7QUFoQkgsd0RBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZGJTdWJuZXRHcm91cCxcbiAgZWxhc3RpY2FjaGVTdWJuZXRHcm91cCxcbiAgLy8gZG9jZGJTdWJuZXRHcm91cCwgLy8gbm90IG5lZWRlZCwgcmRzIGFuZCBkb2NkYiBzaGFyZSBzdWJuZXQgZ3JvdXBzXG59IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgQXdzQ29uc3RydWN0QmFzZSxcbiAgQXdzQ29uc3RydWN0UHJvcHMsXG4gIElBd3NDb25zdHJ1Y3QsXG59IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBJU3VibmV0IH0gZnJvbSBcIi4vc3VibmV0XCI7XG5cbmV4cG9ydCBlbnVtIFN1Ym5ldEdyb3VwVHlwZSB7XG4gIC8qKlxuICAgKiBSRFMgYW5kIERvY0RiIFN1Ym5ldEdyb3VwXG4gICAqL1xuICBEQiA9IFwiREJcIixcbiAgLyoqXG4gICAqIEVsYXN0aUNhY2hlIFN1Ym5ldEdyb3VwXG4gICAqL1xuICBFTEFTVElDQUNIRSA9IFwiRUxBU1RJQ0FDSEVcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWJuZXRHcm91cFByb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICByZWFkb25seSBzdWJuZXRzOiBJU3VibmV0W107XG4gIHJlYWRvbmx5IHRhZ3M/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdWJuZXRHcm91cCBleHRlbmRzIElBd3NDb25zdHJ1Y3Qge1xuICByZWFkb25seSB0eXBlOiBTdWJuZXRHcm91cFR5cGU7XG4gIHJlYWRvbmx5IGFybjogc3RyaW5nO1xuICByZWFkb25seSBzdWJuZXRzOiBJU3VibmV0W107XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlU3VibmV0R3JvdXBcbiAgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlXG4gIGltcGxlbWVudHMgSVN1Ym5ldEdyb3VwXG57XG4gIHB1YmxpYyByZWFkb25seSB0eXBlOiBTdWJuZXRHcm91cFR5cGU7XG4gIHB1YmxpYyByZWFkb25seSB0YWdzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zdWJuZXRzOiBJU3VibmV0W107XG4gIHB1YmxpYyBnZXQgc3VibmV0cygpOiBJU3VibmV0W10ge1xuICAgIHJldHVybiB0aGlzLl9zdWJuZXRzO1xuICB9XG4gIHB1YmxpYyBhYnN0cmFjdCBnZXQgYXJuKCk6IHN0cmluZztcbiAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICBhcm46IHRoaXMuYXJuLFxuICAgICAgc3VibmV0czogdGhpcy5zdWJuZXRzLm1hcCgoc3VibmV0KSA9PiBzdWJuZXQub3V0cHV0cyksXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICB0eXBlOiBTdWJuZXRHcm91cFR5cGUsXG4gICAgcHJvcHM6IFN1Ym5ldEdyb3VwUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIHRoaXMudHlwZSA9IHR5cGU7XG4gICAgdGhpcy50YWdzID0gcHJvcHMudGFncztcbiAgICB0aGlzLl9zdWJuZXRzID0gcHJvcHMuc3VibmV0cztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGJTdWJuZXRHcm91cCBleHRlbmRzIEJhc2VTdWJuZXRHcm91cCB7XG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZTogZGJTdWJuZXRHcm91cC5EYlN1Ym5ldEdyb3VwO1xuICBwdWJsaWMgZ2V0IGFybigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlLmFybjtcbiAgfVxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogU3VibmV0R3JvdXBQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgU3VibmV0R3JvdXBUeXBlLkRCLCBwcm9wcyk7XG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBkYlN1Ym5ldEdyb3VwLkRiU3VibmV0R3JvdXAodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICBuYW1lOiB0aGlzLmdyaWRVVUlELFxuICAgICAgc3VibmV0SWRzOiB0aGlzLnN1Ym5ldHMubWFwKChzdWJuZXQpID0+IHN1Ym5ldC5zdWJuZXRJZCksXG4gICAgICB0YWdzOiB0aGlzLnRhZ3MsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVsYXN0aUNhY2hlU3VibmV0R3JvdXAgZXh0ZW5kcyBCYXNlU3VibmV0R3JvdXAge1xuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IGVsYXN0aWNhY2hlU3VibmV0R3JvdXAuRWxhc3RpY2FjaGVTdWJuZXRHcm91cDtcbiAgcHVibGljIGdldCBhcm4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvdXJjZS5hcm47XG4gIH1cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFN1Ym5ldEdyb3VwUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIFN1Ym5ldEdyb3VwVHlwZS5FTEFTVElDQUNIRSwgcHJvcHMpO1xuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgZWxhc3RpY2FjaGVTdWJuZXRHcm91cC5FbGFzdGljYWNoZVN1Ym5ldEdyb3VwKFxuICAgICAgdGhpcyxcbiAgICAgIFwiUmVzb3VyY2VcIixcbiAgICAgIHtcbiAgICAgICAgbmFtZTogdGhpcy5ncmlkVVVJRCxcbiAgICAgICAgc3VibmV0SWRzOiB0aGlzLnN1Ym5ldHMubWFwKChzdWJuZXQpID0+IHN1Ym5ldC5zdWJuZXRJZCksXG4gICAgICAgIHRhZ3M6IHRoaXMudGFncyxcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { vpc, subnet, natGateway, routeTable } from "@cdktf/provider-aws";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
import { AwsConstructBase, AwsConstructProps, IAwsConstruct } from "../";
|
|
4
|
+
export declare enum SubnetType {
|
|
5
|
+
PUBLIC = "PUBLIC",
|
|
6
|
+
PRIVATE = "PRIVATE",
|
|
7
|
+
DATA = "DATA"
|
|
8
|
+
}
|
|
9
|
+
export interface BaseSubnetProps extends AwsConstructProps {
|
|
10
|
+
/**
|
|
11
|
+
* The VPC to create the subnet into
|
|
12
|
+
*/
|
|
13
|
+
readonly vpc: vpc.Vpc;
|
|
14
|
+
/**
|
|
15
|
+
* The IPv4 CIDR block for the subnet.
|
|
16
|
+
*/
|
|
17
|
+
readonly ipv4CidrBlock: string;
|
|
18
|
+
/**
|
|
19
|
+
* The availability zone for the subnet.
|
|
20
|
+
*/
|
|
21
|
+
readonly availabilityZone: string;
|
|
22
|
+
/**
|
|
23
|
+
* Additional tags for the subnet.
|
|
24
|
+
*
|
|
25
|
+
* @default - No additional tags
|
|
26
|
+
*/
|
|
27
|
+
readonly tags?: Record<string, string>;
|
|
28
|
+
}
|
|
29
|
+
export interface ISubnet extends IAwsConstruct {
|
|
30
|
+
/**
|
|
31
|
+
* The VPC ID of the subnet.
|
|
32
|
+
*/
|
|
33
|
+
readonly vpcId: string;
|
|
34
|
+
/**
|
|
35
|
+
* The IPv4 CIDR block for the subnet.
|
|
36
|
+
*/
|
|
37
|
+
readonly ipv4CidrBlock: string;
|
|
38
|
+
/**
|
|
39
|
+
* The availability zone for the subnet.
|
|
40
|
+
*/
|
|
41
|
+
readonly availabilityZone: string;
|
|
42
|
+
/**
|
|
43
|
+
* The subnet ID of the subnet.
|
|
44
|
+
*/
|
|
45
|
+
readonly subnetId: string;
|
|
46
|
+
}
|
|
47
|
+
export declare abstract class BaseSubnet extends AwsConstructBase implements ISubnet {
|
|
48
|
+
private readonly type;
|
|
49
|
+
private readonly _availabilityZone;
|
|
50
|
+
get availabilityZone(): string;
|
|
51
|
+
private readonly _subnetId;
|
|
52
|
+
get subnetId(): string;
|
|
53
|
+
protected readonly vpc: vpc.Vpc;
|
|
54
|
+
get vpcId(): string;
|
|
55
|
+
protected readonly cidr: string;
|
|
56
|
+
get ipv4CidrBlock(): string;
|
|
57
|
+
get outputs(): Record<string, any>;
|
|
58
|
+
readonly resource: subnet.Subnet;
|
|
59
|
+
constructor(scope: Construct, id: string, type: SubnetType, props: BaseSubnetProps);
|
|
60
|
+
}
|
|
61
|
+
export interface PublicSubnetProps extends BaseSubnetProps {
|
|
62
|
+
/**
|
|
63
|
+
* Whether to create a NAT gateway in the subnet.
|
|
64
|
+
*/
|
|
65
|
+
readonly createNatGateway?: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* The EIP allocation ID to use for the NAT gateway.
|
|
68
|
+
*
|
|
69
|
+
* @default - A new EIP is created
|
|
70
|
+
*/
|
|
71
|
+
readonly eipAllocationId?: string;
|
|
72
|
+
/**
|
|
73
|
+
* The Route Table ID to associate with the subnet.
|
|
74
|
+
*/
|
|
75
|
+
readonly defaultRouteTableId: string;
|
|
76
|
+
}
|
|
77
|
+
export declare class PublicSubnet extends BaseSubnet {
|
|
78
|
+
private readonly natGateway?;
|
|
79
|
+
private readonly eip?;
|
|
80
|
+
constructor(scope: Construct, id: string, props: PublicSubnetProps);
|
|
81
|
+
get natgateway(): natGateway.NatGateway | undefined;
|
|
82
|
+
}
|
|
83
|
+
export interface PrivateSubnetProps extends BaseSubnetProps {
|
|
84
|
+
readonly routeTable: routeTable.RouteTable;
|
|
85
|
+
}
|
|
86
|
+
export declare class PrivateSubnet extends BaseSubnet {
|
|
87
|
+
private readonly routeTable;
|
|
88
|
+
constructor(scope: Construct, id: string, props: PrivateSubnetProps);
|
|
89
|
+
get routeTableId(): string;
|
|
90
|
+
}
|
|
91
|
+
export declare class DataSubnet extends BaseSubnet {
|
|
92
|
+
private readonly routeTable;
|
|
93
|
+
constructor(scope: Construct, id: string, props: PrivateSubnetProps);
|
|
94
|
+
get routeTableId(): string;
|
|
95
|
+
}
|