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,169 @@
|
|
|
1
|
+
import { route53Zone } from "@cdktf/provider-aws";
|
|
2
|
+
import { IResolvable } from "cdktf";
|
|
3
|
+
import { Construct } from "constructs";
|
|
4
|
+
import { IAwsConstruct, AwsConstructBase, AwsConstructProps } from "../";
|
|
5
|
+
import { INetwork } from "../network";
|
|
6
|
+
/**
|
|
7
|
+
* Common properties to create a Route 53 hosted zone
|
|
8
|
+
*/
|
|
9
|
+
export interface CommonDnsZoneProps extends AwsConstructProps {
|
|
10
|
+
/**
|
|
11
|
+
* The name of the domain. For resource record types that include a domain
|
|
12
|
+
* name, specify a fully qualified domain name.
|
|
13
|
+
*/
|
|
14
|
+
readonly zoneName: string;
|
|
15
|
+
/**
|
|
16
|
+
* Whether to add a trailing dot to the zone name.
|
|
17
|
+
*
|
|
18
|
+
* @default true
|
|
19
|
+
*/
|
|
20
|
+
readonly addTrailingDot?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Any comments that you want to include about the hosted zone.
|
|
23
|
+
*
|
|
24
|
+
* @default none
|
|
25
|
+
*/
|
|
26
|
+
readonly comment?: string;
|
|
27
|
+
/**
|
|
28
|
+
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/aws/5.60.0/docs/resources/route53_zone#force_destroy Route53Zone#force_destroy}
|
|
29
|
+
*/
|
|
30
|
+
readonly forceDestroy?: boolean | IResolvable;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Properties of a new hosted zone
|
|
34
|
+
*/
|
|
35
|
+
export interface DnsZoneProps extends CommonDnsZoneProps {
|
|
36
|
+
/**
|
|
37
|
+
* Networks that you want to associate with this hosted zone. When you specify
|
|
38
|
+
* this property, a private hosted zone will be created.
|
|
39
|
+
*
|
|
40
|
+
* Conflicts with the `delegationSetId` and any `aws_route53_zone_association`
|
|
41
|
+
* resource specifying the same zone ID.
|
|
42
|
+
*
|
|
43
|
+
* You can associate additional networks to this private zone using `addNetwork(network)`.
|
|
44
|
+
*
|
|
45
|
+
* @default public (no networks associated)
|
|
46
|
+
*/
|
|
47
|
+
readonly networks?: INetwork[];
|
|
48
|
+
/**
|
|
49
|
+
* Delegation set ID for the private hosted zone.
|
|
50
|
+
*
|
|
51
|
+
* The ID of the reusable delegation set whose NS records you want to assign to the hosted zone.
|
|
52
|
+
*
|
|
53
|
+
* Conflicts with vpc as delegation sets can only be used for public zones.
|
|
54
|
+
*/
|
|
55
|
+
readonly delegationSetId?: string;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Outputs which may be registered for output via the Grid.
|
|
59
|
+
*/
|
|
60
|
+
export interface DnsZoneOutputs {
|
|
61
|
+
/**
|
|
62
|
+
* Identifier of the hosted zone
|
|
63
|
+
*/
|
|
64
|
+
readonly zoneId: string;
|
|
65
|
+
/**
|
|
66
|
+
* Name of the hosted zone
|
|
67
|
+
*/
|
|
68
|
+
readonly zoneName: string;
|
|
69
|
+
/**
|
|
70
|
+
* Returns the set of name servers for the specific hosted zone. For example:
|
|
71
|
+
* ns1.example.com.
|
|
72
|
+
*
|
|
73
|
+
* This attribute will be undefined for private hosted zones or hosted zones imported from another stack.
|
|
74
|
+
*
|
|
75
|
+
* @attribute
|
|
76
|
+
*/
|
|
77
|
+
readonly nameServers: string[];
|
|
78
|
+
/**
|
|
79
|
+
* The Route 53 name server that created the SOA record.
|
|
80
|
+
*/
|
|
81
|
+
readonly primaryNameServer: string;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Imported or created DNS zone attributes
|
|
85
|
+
*/
|
|
86
|
+
export interface IDnsZone extends IAwsConstruct {
|
|
87
|
+
/** Strongly typed outputs */
|
|
88
|
+
readonly dnsZoneOutputs: DnsZoneOutputs;
|
|
89
|
+
/**
|
|
90
|
+
* ID of this hosted zone, such as "Z23ABC4XYZL05B"
|
|
91
|
+
*
|
|
92
|
+
* @attribute
|
|
93
|
+
*/
|
|
94
|
+
readonly zoneId: string;
|
|
95
|
+
/**
|
|
96
|
+
* FQDN of this hosted zone
|
|
97
|
+
*/
|
|
98
|
+
readonly zoneName: string;
|
|
99
|
+
/**
|
|
100
|
+
* ARN of this hosted zone, such as arn:${Partition}:route53:::hostedzone/${Id}
|
|
101
|
+
*
|
|
102
|
+
* @attribute
|
|
103
|
+
*/
|
|
104
|
+
readonly arn: string;
|
|
105
|
+
/**
|
|
106
|
+
* A list of name servers in associated (or default) delegation set.
|
|
107
|
+
* Find more about delegation sets in [AWS docs][delegation set docs].
|
|
108
|
+
*
|
|
109
|
+
* Returns the set of name servers for the specific hosted zone. For example:
|
|
110
|
+
* ns1.example.com.
|
|
111
|
+
*
|
|
112
|
+
* [delegation set docs]: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring-delegation-set.html
|
|
113
|
+
* @attribute
|
|
114
|
+
*/
|
|
115
|
+
readonly nameServers: string[];
|
|
116
|
+
/**
|
|
117
|
+
* The Route 53 name server that created the SOA record.
|
|
118
|
+
*/
|
|
119
|
+
readonly primaryNameServer: string;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Container for records, and records contain information about how to route traffic for a
|
|
123
|
+
* specific domain, such as example.com and its subdomains (acme.example.com, zenith.example.com)
|
|
124
|
+
*/
|
|
125
|
+
export declare class DnsZone extends AwsConstructBase implements IDnsZone {
|
|
126
|
+
/**
|
|
127
|
+
* Import a Route 53 hosted zone defined either outside of TerraConstruct, or from Grid Lookup
|
|
128
|
+
*
|
|
129
|
+
* Use when hosted zone ID is known.
|
|
130
|
+
*
|
|
131
|
+
* @param scope the parent Construct for this Construct
|
|
132
|
+
* @param id the logical name of this Construct
|
|
133
|
+
* @param zoneId the ID of the hosted zone to import
|
|
134
|
+
*/
|
|
135
|
+
static fromZoneId(scope: Construct, id: string, zoneId: string): IDnsZone;
|
|
136
|
+
private readonly _outputs;
|
|
137
|
+
get dnsZoneOutputs(): DnsZoneOutputs;
|
|
138
|
+
get outputs(): Record<string, any>;
|
|
139
|
+
readonly zoneId: string;
|
|
140
|
+
readonly arn: string;
|
|
141
|
+
readonly zoneName: string;
|
|
142
|
+
readonly nameServers: string[];
|
|
143
|
+
readonly primaryNameServer: string;
|
|
144
|
+
/**
|
|
145
|
+
* Networks to which this hosted zone will be added
|
|
146
|
+
*/
|
|
147
|
+
protected readonly networks: route53Zone.Route53ZoneVpc[];
|
|
148
|
+
protected readonly resource: route53Zone.Route53Zone;
|
|
149
|
+
constructor(scope: Construct, id: string, props: DnsZoneProps);
|
|
150
|
+
/**
|
|
151
|
+
* Add another Network to this private hosted zone.
|
|
152
|
+
*
|
|
153
|
+
* This conflicts with the `delegationSetId` and any
|
|
154
|
+
* `aws_route53_zone_association` created outside this spec.
|
|
155
|
+
*
|
|
156
|
+
* @param network the other Network to add.
|
|
157
|
+
*/
|
|
158
|
+
addNetwork(network: INetwork): void;
|
|
159
|
+
}
|
|
160
|
+
export declare function makeHostedZoneArn(construct: Construct, hostedZoneId: string): string;
|
|
161
|
+
/**
|
|
162
|
+
* Validates a zone name is valid by Route53 specifc naming rules,
|
|
163
|
+
* and that there is no trailing dot in the name.
|
|
164
|
+
*
|
|
165
|
+
* @param zoneName the zone name to be validated.
|
|
166
|
+
* @returns +zoneName+
|
|
167
|
+
* @throws ValidationError if the name is not valid.
|
|
168
|
+
*/
|
|
169
|
+
export declare function validateZoneName(zoneName: string): void;
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.validateZoneName = exports.makeHostedZoneArn = exports.DnsZone = 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 __1 = require("../");
|
|
9
|
+
/**
|
|
10
|
+
* Container for records, and records contain information about how to route traffic for a
|
|
11
|
+
* specific domain, such as example.com and its subdomains (acme.example.com, zenith.example.com)
|
|
12
|
+
*/
|
|
13
|
+
class DnsZone extends __1.AwsConstructBase {
|
|
14
|
+
// TODO: Add "from Grid Lookup" static methods?
|
|
15
|
+
/**
|
|
16
|
+
* Import a Route 53 hosted zone defined either outside of TerraConstruct, or from Grid Lookup
|
|
17
|
+
*
|
|
18
|
+
* Use when hosted zone ID is known.
|
|
19
|
+
*
|
|
20
|
+
* @param scope the parent Construct for this Construct
|
|
21
|
+
* @param id the logical name of this Construct
|
|
22
|
+
* @param zoneId the ID of the hosted zone to import
|
|
23
|
+
*/
|
|
24
|
+
static fromZoneId(scope, id, zoneId) {
|
|
25
|
+
class Import extends __1.AwsConstructBase {
|
|
26
|
+
get dnsZoneOutputs() {
|
|
27
|
+
return this._outputs;
|
|
28
|
+
}
|
|
29
|
+
get outputs() {
|
|
30
|
+
return this.dnsZoneOutputs;
|
|
31
|
+
}
|
|
32
|
+
get zoneName() {
|
|
33
|
+
return this.datasource.name;
|
|
34
|
+
}
|
|
35
|
+
get arn() {
|
|
36
|
+
return this.datasource.arn;
|
|
37
|
+
}
|
|
38
|
+
get nameServers() {
|
|
39
|
+
return this.datasource.nameServers;
|
|
40
|
+
}
|
|
41
|
+
get primaryNameServer() {
|
|
42
|
+
return this.datasource.primaryNameServer;
|
|
43
|
+
}
|
|
44
|
+
constructor(_scope, _id) {
|
|
45
|
+
super(_scope, _id, {});
|
|
46
|
+
this.zoneId = zoneId;
|
|
47
|
+
this.datasource = new provider_aws_1.dataAwsRoute53Zone.DataAwsRoute53Zone(this, "Resource", {
|
|
48
|
+
zoneId,
|
|
49
|
+
});
|
|
50
|
+
this._outputs = {
|
|
51
|
+
zoneId: zoneId,
|
|
52
|
+
zoneName: this.datasource.name,
|
|
53
|
+
nameServers: this.datasource.nameServers,
|
|
54
|
+
primaryNameServer: this.datasource.primaryNameServer,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return new Import(scope, id);
|
|
59
|
+
}
|
|
60
|
+
get dnsZoneOutputs() {
|
|
61
|
+
return this._outputs;
|
|
62
|
+
}
|
|
63
|
+
get outputs() {
|
|
64
|
+
return this.dnsZoneOutputs;
|
|
65
|
+
}
|
|
66
|
+
constructor(scope, id, props) {
|
|
67
|
+
super(scope, id, props);
|
|
68
|
+
/**
|
|
69
|
+
* Networks to which this hosted zone will be added
|
|
70
|
+
*/
|
|
71
|
+
this.networks = new Array();
|
|
72
|
+
validateZoneName(props.zoneName);
|
|
73
|
+
// Add a dot at the end if the addTrailingDot property is not false.
|
|
74
|
+
const zoneName = props.addTrailingDot === false || props.zoneName.endsWith(".")
|
|
75
|
+
? props.zoneName
|
|
76
|
+
: `${props.zoneName}.`;
|
|
77
|
+
this.resource = new provider_aws_1.route53Zone.Route53Zone(this, "Resource", {
|
|
78
|
+
name: zoneName,
|
|
79
|
+
comment: props.comment,
|
|
80
|
+
vpc: cdktf_1.Lazy.anyValue({
|
|
81
|
+
produce: () => this.networks.length === 0
|
|
82
|
+
? undefined
|
|
83
|
+
: this.networks.map((n) => provider_aws_1.route53Zone.route53ZoneVpcToTerraform(n)),
|
|
84
|
+
}),
|
|
85
|
+
});
|
|
86
|
+
this.zoneId = this.resource.id;
|
|
87
|
+
this.arn = this.resource.arn;
|
|
88
|
+
this.nameServers = this.resource.nameServers;
|
|
89
|
+
this.primaryNameServer = this.resource.primaryNameServer;
|
|
90
|
+
this.zoneName = props.zoneName;
|
|
91
|
+
for (const vpc of props.networks || []) {
|
|
92
|
+
this.addNetwork(vpc);
|
|
93
|
+
}
|
|
94
|
+
this._outputs = {
|
|
95
|
+
zoneId: this.zoneId,
|
|
96
|
+
zoneName: this.zoneName,
|
|
97
|
+
nameServers: this.nameServers,
|
|
98
|
+
primaryNameServer: this.resource.primaryNameServer,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Add another Network to this private hosted zone.
|
|
103
|
+
*
|
|
104
|
+
* This conflicts with the `delegationSetId` and any
|
|
105
|
+
* `aws_route53_zone_association` created outside this spec.
|
|
106
|
+
*
|
|
107
|
+
* @param network the other Network to add.
|
|
108
|
+
*/
|
|
109
|
+
addNetwork(network) {
|
|
110
|
+
this.networks.push({
|
|
111
|
+
vpcId: network.vpcId,
|
|
112
|
+
vpcRegion: network.env.region ?? __1.AwsStack.ofAwsConstruct(network).region,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
exports.DnsZone = DnsZone;
|
|
117
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
118
|
+
DnsZone[_a] = { fqn: "terraconstructs.aws.edge.DnsZone", version: "0.0.8" };
|
|
119
|
+
function makeHostedZoneArn(construct, hostedZoneId) {
|
|
120
|
+
return __1.AwsStack.ofAwsConstruct(construct).formatArn({
|
|
121
|
+
account: "",
|
|
122
|
+
region: "",
|
|
123
|
+
service: "route53",
|
|
124
|
+
resource: "hostedzone",
|
|
125
|
+
resourceName: hostedZoneId,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
exports.makeHostedZoneArn = makeHostedZoneArn;
|
|
129
|
+
/**
|
|
130
|
+
* Validates a zone name is valid by Route53 specifc naming rules,
|
|
131
|
+
* and that there is no trailing dot in the name.
|
|
132
|
+
*
|
|
133
|
+
* @param zoneName the zone name to be validated.
|
|
134
|
+
* @returns +zoneName+
|
|
135
|
+
* @throws ValidationError if the name is not valid.
|
|
136
|
+
*/
|
|
137
|
+
function validateZoneName(zoneName) {
|
|
138
|
+
if (zoneName.length > 255) {
|
|
139
|
+
throw new Error("zone name cannot be more than 255 bytes long");
|
|
140
|
+
}
|
|
141
|
+
if (zoneName.split(".").find((label) => label.length > 63)) {
|
|
142
|
+
throw new Error("zone name labels cannot be more than 63 bytes long");
|
|
143
|
+
}
|
|
144
|
+
if (!zoneName.match(/^[a-z0-9!"#$%&'()*+,/:;<=>?@[\\\]^_`{|}~.-]+$/i)) {
|
|
145
|
+
throw new Error("zone names can only contain a-z, 0-9, -, ! \" # $ % & ' ( ) * + , - / : ; < = > ? @ [ ] ^ _ ` { | } ~ .");
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
exports.validateZoneName = validateZoneName;
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zLXpvbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2VkZ2UvZG5zLXpvbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzREFBc0U7QUFDdEUsaUNBQTBDO0FBRTFDLDJCQUthO0FBd0liOzs7R0FHRztBQUNILE1BQWEsT0FBUSxTQUFRLG9CQUFnQjtJQUMzQywrQ0FBK0M7SUFDL0M7Ozs7Ozs7O09BUUc7SUFDSSxNQUFNLENBQUMsVUFBVSxDQUN0QixLQUFnQixFQUNoQixFQUFVLEVBQ1YsTUFBYztRQUVkLE1BQU0sTUFBTyxTQUFRLG9CQUFnQjtZQUVuQyxJQUFXLGNBQWM7Z0JBQ3ZCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUN2QixDQUFDO1lBQ0QsSUFBVyxPQUFPO2dCQUNoQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7WUFDN0IsQ0FBQztZQUVELElBQVcsUUFBUTtnQkFDakIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUM5QixDQUFDO1lBQ0QsSUFBVyxHQUFHO2dCQUNaLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7WUFDN0IsQ0FBQztZQUNELElBQVcsV0FBVztnQkFDcEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztZQUNyQyxDQUFDO1lBQ0QsSUFBVyxpQkFBaUI7Z0JBQzFCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQztZQUMzQyxDQUFDO1lBRUQsWUFBWSxNQUFpQixFQUFFLEdBQVc7Z0JBQ3hDLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQWZULFdBQU0sR0FBRyxNQUFNLENBQUM7Z0JBZ0I5QixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksaUNBQWtCLENBQUMsa0JBQWtCLENBQ3pELElBQUksRUFDSixVQUFVLEVBQ1Y7b0JBQ0UsTUFBTTtpQkFDUCxDQUNGLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLFFBQVEsR0FBRztvQkFDZCxNQUFNLEVBQUUsTUFBTTtvQkFDZCxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJO29CQUM5QixXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXO29CQUN4QyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQjtpQkFDckQsQ0FBQztZQUNKLENBQUM7U0FDRjtRQUVELE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFHRCxJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFjRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW1CO1FBQzNELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBUjFCOztXQUVHO1FBQ2dCLGFBQVEsR0FBRyxJQUFJLEtBQUssRUFBOEIsQ0FBQztRQU9wRSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFakMsb0VBQW9FO1FBQ3BFLE1BQU0sUUFBUSxHQUNaLEtBQUssQ0FBQyxjQUFjLEtBQUssS0FBSyxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztZQUM1RCxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVE7WUFDaEIsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLFFBQVEsR0FBRyxDQUFDO1FBRTNCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSwwQkFBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQzVELElBQUksRUFBRSxRQUFRO1lBQ2QsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQ3RCLEdBQUcsRUFBRSxZQUFJLENBQUMsUUFBUSxDQUFDO2dCQUNqQixPQUFPLEVBQUUsR0FBRyxFQUFFLENBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQztvQkFDeEIsQ0FBQyxDQUFDLFNBQVM7b0JBQ1gsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDdEIsMEJBQVcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsQ0FDekM7YUFDUixDQUFDO1NBQ0gsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1FBQzdCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDN0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUM7UUFDekQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO1FBRS9CLEtBQUssTUFBTSxHQUFHLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHO1lBQ2QsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUI7U0FDbkQsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksVUFBVSxDQUFDLE9BQWlCO1FBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO1lBQ2pCLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztZQUNwQixTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksWUFBUSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNO1NBQ3pFLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBdElILDBCQXVJQzs7O0FBRUQsU0FBZ0IsaUJBQWlCLENBQy9CLFNBQW9CLEVBQ3BCLFlBQW9CO0lBRXBCLE9BQU8sWUFBUSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDbEQsT0FBTyxFQUFFLEVBQUU7UUFDWCxNQUFNLEVBQUUsRUFBRTtRQUNWLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLFFBQVEsRUFBRSxZQUFZO1FBQ3RCLFlBQVksRUFBRSxZQUFZO0tBQzNCLENBQUMsQ0FBQztBQUNMLENBQUM7QUFYRCw4Q0FXQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxRQUFnQjtJQUMvQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFDRCxJQUFJLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDM0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxvREFBb0QsQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxFQUFFLENBQUM7UUFDdEUsTUFBTSxJQUFJLEtBQUssQ0FDYiwwR0FBMEcsQ0FDM0csQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDO0FBWkQsNENBWUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByb3V0ZTUzWm9uZSwgZGF0YUF3c1JvdXRlNTNab25lIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IExhenksIElSZXNvbHZhYmxlIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgQXdzU3RhY2ssXG4gIElBd3NDb25zdHJ1Y3QsXG4gIEF3c0NvbnN0cnVjdEJhc2UsXG4gIEF3c0NvbnN0cnVjdFByb3BzLFxufSBmcm9tIFwiLi4vXCI7XG5pbXBvcnQgeyBJTmV0d29yayB9IGZyb20gXCIuLi9uZXR3b3JrXCI7XG5cbi8vIHJlZjogaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvdjIuMTU2LjAvcGFja2FnZXMvYXdzLWNkay1saWIvYXdzLXJvdXRlNTMvbGliL2hvc3RlZC16b25lLnRzXG5cbi8qKlxuICogQ29tbW9uIHByb3BlcnRpZXMgdG8gY3JlYXRlIGEgUm91dGUgNTMgaG9zdGVkIHpvbmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb21tb25EbnNab25lUHJvcHMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZG9tYWluLiBGb3IgcmVzb3VyY2UgcmVjb3JkIHR5cGVzIHRoYXQgaW5jbHVkZSBhIGRvbWFpblxuICAgKiBuYW1lLCBzcGVjaWZ5IGEgZnVsbHkgcXVhbGlmaWVkIGRvbWFpbiBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgem9uZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBhZGQgYSB0cmFpbGluZyBkb3QgdG8gdGhlIHpvbmUgbmFtZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgYWRkVHJhaWxpbmdEb3Q/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBbnkgY29tbWVudHMgdGhhdCB5b3Ugd2FudCB0byBpbmNsdWRlIGFib3V0IHRoZSBob3N0ZWQgem9uZS5cbiAgICpcbiAgICogQGRlZmF1bHQgbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWVudD86IHN0cmluZztcblxuICAvKipcbiAgICogRG9jcyBhdCBUZXJyYWZvcm0gUmVnaXN0cnk6IHtAbGluayBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9wcm92aWRlcnMvaGFzaGljb3JwL2F3cy81LjYwLjAvZG9jcy9yZXNvdXJjZXMvcm91dGU1M196b25lI2ZvcmNlX2Rlc3Ryb3kgUm91dGU1M1pvbmUjZm9yY2VfZGVzdHJveX1cbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlRGVzdHJveT86IGJvb2xlYW4gfCBJUmVzb2x2YWJsZTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIG9mIGEgbmV3IGhvc3RlZCB6b25lXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRG5zWm9uZVByb3BzIGV4dGVuZHMgQ29tbW9uRG5zWm9uZVByb3BzIHtcbiAgLyoqXG4gICAqIE5ldHdvcmtzIHRoYXQgeW91IHdhbnQgdG8gYXNzb2NpYXRlIHdpdGggdGhpcyBob3N0ZWQgem9uZS4gV2hlbiB5b3Ugc3BlY2lmeVxuICAgKiB0aGlzIHByb3BlcnR5LCBhIHByaXZhdGUgaG9zdGVkIHpvbmUgd2lsbCBiZSBjcmVhdGVkLlxuICAgKlxuICAgKiBDb25mbGljdHMgd2l0aCB0aGUgYGRlbGVnYXRpb25TZXRJZGAgYW5kIGFueSBgYXdzX3JvdXRlNTNfem9uZV9hc3NvY2lhdGlvbmBcbiAgICogcmVzb3VyY2Ugc3BlY2lmeWluZyB0aGUgc2FtZSB6b25lIElELlxuICAgKlxuICAgKiBZb3UgY2FuIGFzc29jaWF0ZSBhZGRpdGlvbmFsIG5ldHdvcmtzIHRvIHRoaXMgcHJpdmF0ZSB6b25lIHVzaW5nIGBhZGROZXR3b3JrKG5ldHdvcmspYC5cbiAgICpcbiAgICogQGRlZmF1bHQgcHVibGljIChubyBuZXR3b3JrcyBhc3NvY2lhdGVkKVxuICAgKi9cbiAgcmVhZG9ubHkgbmV0d29ya3M/OiBJTmV0d29ya1tdO1xuXG4gIC8qKlxuICAgKiBEZWxlZ2F0aW9uIHNldCBJRCBmb3IgdGhlIHByaXZhdGUgaG9zdGVkIHpvbmUuXG4gICAqXG4gICAqIFRoZSBJRCBvZiB0aGUgcmV1c2FibGUgZGVsZWdhdGlvbiBzZXQgd2hvc2UgTlMgcmVjb3JkcyB5b3Ugd2FudCB0byBhc3NpZ24gdG8gdGhlIGhvc3RlZCB6b25lLlxuICAgKlxuICAgKiBDb25mbGljdHMgd2l0aCB2cGMgYXMgZGVsZWdhdGlvbiBzZXRzIGNhbiBvbmx5IGJlIHVzZWQgZm9yIHB1YmxpYyB6b25lcy5cbiAgICovXG4gIHJlYWRvbmx5IGRlbGVnYXRpb25TZXRJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBPdXRwdXRzIHdoaWNoIG1heSBiZSByZWdpc3RlcmVkIGZvciBvdXRwdXQgdmlhIHRoZSBHcmlkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERuc1pvbmVPdXRwdXRzIHtcbiAgLyoqXG4gICAqIElkZW50aWZpZXIgb2YgdGhlIGhvc3RlZCB6b25lXG4gICAqL1xuICByZWFkb25seSB6b25lSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgaG9zdGVkIHpvbmVcbiAgICovXG4gIHJlYWRvbmx5IHpvbmVOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHNldCBvZiBuYW1lIHNlcnZlcnMgZm9yIHRoZSBzcGVjaWZpYyBob3N0ZWQgem9uZS4gRm9yIGV4YW1wbGU6XG4gICAqIG5zMS5leGFtcGxlLmNvbS5cbiAgICpcbiAgICogVGhpcyBhdHRyaWJ1dGUgd2lsbCBiZSB1bmRlZmluZWQgZm9yIHByaXZhdGUgaG9zdGVkIHpvbmVzIG9yIGhvc3RlZCB6b25lcyBpbXBvcnRlZCBmcm9tIGFub3RoZXIgc3RhY2suXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IG5hbWVTZXJ2ZXJzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIFJvdXRlIDUzIG5hbWUgc2VydmVyIHRoYXQgY3JlYXRlZCB0aGUgU09BIHJlY29yZC5cbiAgICovXG4gIHJlYWRvbmx5IHByaW1hcnlOYW1lU2VydmVyOiBzdHJpbmc7XG59XG5cbi8qKlxuICogSW1wb3J0ZWQgb3IgY3JlYXRlZCBETlMgem9uZSBhdHRyaWJ1dGVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSURuc1pvbmUgZXh0ZW5kcyBJQXdzQ29uc3RydWN0IHtcbiAgLyoqIFN0cm9uZ2x5IHR5cGVkIG91dHB1dHMgKi9cbiAgcmVhZG9ubHkgZG5zWm9uZU91dHB1dHM6IERuc1pvbmVPdXRwdXRzO1xuXG4gIC8qKlxuICAgKiBJRCBvZiB0aGlzIGhvc3RlZCB6b25lLCBzdWNoIGFzIFwiWjIzQUJDNFhZWkwwNUJcIlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB6b25lSWQ6IHN0cmluZztcblxuICAvKipcbiAgICogRlFETiBvZiB0aGlzIGhvc3RlZCB6b25lXG4gICAqL1xuICByZWFkb25seSB6b25lTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBUk4gb2YgdGhpcyBob3N0ZWQgem9uZSwgc3VjaCBhcyBhcm46JHtQYXJ0aXRpb259OnJvdXRlNTM6Ojpob3N0ZWR6b25lLyR7SWR9XG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgbmFtZSBzZXJ2ZXJzIGluIGFzc29jaWF0ZWQgKG9yIGRlZmF1bHQpIGRlbGVnYXRpb24gc2V0LlxuICAgKiBGaW5kIG1vcmUgYWJvdXQgZGVsZWdhdGlvbiBzZXRzIGluIFtBV1MgZG9jc11bZGVsZWdhdGlvbiBzZXQgZG9jc10uXG4gICAqXG4gICAqIFJldHVybnMgdGhlIHNldCBvZiBuYW1lIHNlcnZlcnMgZm9yIHRoZSBzcGVjaWZpYyBob3N0ZWQgem9uZS4gRm9yIGV4YW1wbGU6XG4gICAqIG5zMS5leGFtcGxlLmNvbS5cbiAgICpcbiAgICogW2RlbGVnYXRpb24gc2V0IGRvY3NdOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vUm91dGU1My9sYXRlc3QvRGV2ZWxvcGVyR3VpZGUvZG5zLWNvbmZpZ3VyaW5nLWRlbGVnYXRpb24tc2V0Lmh0bWxcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgbmFtZVNlcnZlcnM6IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgUm91dGUgNTMgbmFtZSBzZXJ2ZXIgdGhhdCBjcmVhdGVkIHRoZSBTT0EgcmVjb3JkLlxuICAgKi9cbiAgcmVhZG9ubHkgcHJpbWFyeU5hbWVTZXJ2ZXI6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb250YWluZXIgZm9yIHJlY29yZHMsIGFuZCByZWNvcmRzIGNvbnRhaW4gaW5mb3JtYXRpb24gYWJvdXQgaG93IHRvIHJvdXRlIHRyYWZmaWMgZm9yIGFcbiAqIHNwZWNpZmljIGRvbWFpbiwgc3VjaCBhcyBleGFtcGxlLmNvbSBhbmQgaXRzIHN1YmRvbWFpbnMgKGFjbWUuZXhhbXBsZS5jb20sIHplbml0aC5leGFtcGxlLmNvbSlcbiAqL1xuZXhwb3J0IGNsYXNzIERuc1pvbmUgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RCYXNlIGltcGxlbWVudHMgSURuc1pvbmUge1xuICAvLyBUT0RPOiBBZGQgXCJmcm9tIEdyaWQgTG9va3VwXCIgc3RhdGljIG1ldGhvZHM/XG4gIC8qKlxuICAgKiBJbXBvcnQgYSBSb3V0ZSA1MyBob3N0ZWQgem9uZSBkZWZpbmVkIGVpdGhlciBvdXRzaWRlIG9mIFRlcnJhQ29uc3RydWN0LCBvciBmcm9tIEdyaWQgTG9va3VwXG4gICAqXG4gICAqIFVzZSB3aGVuIGhvc3RlZCB6b25lIElEIGlzIGtub3duLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgdGhlIHBhcmVudCBDb25zdHJ1Y3QgZm9yIHRoaXMgQ29uc3RydWN0XG4gICAqIEBwYXJhbSBpZCAgdGhlIGxvZ2ljYWwgbmFtZSBvZiB0aGlzIENvbnN0cnVjdFxuICAgKiBAcGFyYW0gem9uZUlkIHRoZSBJRCBvZiB0aGUgaG9zdGVkIHpvbmUgdG8gaW1wb3J0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21ab25lSWQoXG4gICAgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHpvbmVJZDogc3RyaW5nLFxuICApOiBJRG5zWm9uZSB7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSBpbXBsZW1lbnRzIElEbnNab25lIHtcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgX291dHB1dHM6IERuc1pvbmVPdXRwdXRzO1xuICAgICAgcHVibGljIGdldCBkbnNab25lT3V0cHV0cygpOiBEbnNab25lT3V0cHV0cyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vdXRwdXRzO1xuICAgICAgfVxuICAgICAgcHVibGljIGdldCBvdXRwdXRzKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5kbnNab25lT3V0cHV0cztcbiAgICAgIH1cbiAgICAgIHB1YmxpYyByZWFkb25seSB6b25lSWQgPSB6b25lSWQ7XG4gICAgICBwdWJsaWMgZ2V0IHpvbmVOYW1lKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFzb3VyY2UubmFtZTtcbiAgICAgIH1cbiAgICAgIHB1YmxpYyBnZXQgYXJuKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFzb3VyY2UuYXJuO1xuICAgICAgfVxuICAgICAgcHVibGljIGdldCBuYW1lU2VydmVycygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFzb3VyY2UubmFtZVNlcnZlcnM7XG4gICAgICB9XG4gICAgICBwdWJsaWMgZ2V0IHByaW1hcnlOYW1lU2VydmVyKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFzb3VyY2UucHJpbWFyeU5hbWVTZXJ2ZXI7XG4gICAgICB9XG4gICAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGFzb3VyY2U6IGRhdGFBd3NSb3V0ZTUzWm9uZS5EYXRhQXdzUm91dGU1M1pvbmU7XG4gICAgICBjb25zdHJ1Y3Rvcihfc2NvcGU6IENvbnN0cnVjdCwgX2lkOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIoX3Njb3BlLCBfaWQsIHt9KTtcbiAgICAgICAgdGhpcy5kYXRhc291cmNlID0gbmV3IGRhdGFBd3NSb3V0ZTUzWm9uZS5EYXRhQXdzUm91dGU1M1pvbmUoXG4gICAgICAgICAgdGhpcyxcbiAgICAgICAgICBcIlJlc291cmNlXCIsXG4gICAgICAgICAge1xuICAgICAgICAgICAgem9uZUlkLFxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX291dHB1dHMgPSB7XG4gICAgICAgICAgem9uZUlkOiB6b25lSWQsXG4gICAgICAgICAgem9uZU5hbWU6IHRoaXMuZGF0YXNvdXJjZS5uYW1lLFxuICAgICAgICAgIG5hbWVTZXJ2ZXJzOiB0aGlzLmRhdGFzb3VyY2UubmFtZVNlcnZlcnMsXG4gICAgICAgICAgcHJpbWFyeU5hbWVTZXJ2ZXI6IHRoaXMuZGF0YXNvdXJjZS5wcmltYXJ5TmFtZVNlcnZlcixcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfb3V0cHV0czogRG5zWm9uZU91dHB1dHM7XG4gIHB1YmxpYyBnZXQgZG5zWm9uZU91dHB1dHMoKTogRG5zWm9uZU91dHB1dHMge1xuICAgIHJldHVybiB0aGlzLl9vdXRwdXRzO1xuICB9XG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5kbnNab25lT3V0cHV0cztcbiAgfVxuICBwdWJsaWMgcmVhZG9ubHkgem9uZUlkOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBhcm46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHpvbmVOYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lU2VydmVyczogc3RyaW5nW107XG4gIHB1YmxpYyByZWFkb25seSBwcmltYXJ5TmFtZVNlcnZlcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOZXR3b3JrcyB0byB3aGljaCB0aGlzIGhvc3RlZCB6b25lIHdpbGwgYmUgYWRkZWRcbiAgICovXG4gIHByb3RlY3RlZCByZWFkb25seSBuZXR3b3JrcyA9IG5ldyBBcnJheTxyb3V0ZTUzWm9uZS5Sb3V0ZTUzWm9uZVZwYz4oKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVzb3VyY2U6IHJvdXRlNTNab25lLlJvdXRlNTNab25lO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEbnNab25lUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIHZhbGlkYXRlWm9uZU5hbWUocHJvcHMuem9uZU5hbWUpO1xuXG4gICAgLy8gQWRkIGEgZG90IGF0IHRoZSBlbmQgaWYgdGhlIGFkZFRyYWlsaW5nRG90IHByb3BlcnR5IGlzIG5vdCBmYWxzZS5cbiAgICBjb25zdCB6b25lTmFtZSA9XG4gICAgICBwcm9wcy5hZGRUcmFpbGluZ0RvdCA9PT0gZmFsc2UgfHwgcHJvcHMuem9uZU5hbWUuZW5kc1dpdGgoXCIuXCIpXG4gICAgICAgID8gcHJvcHMuem9uZU5hbWVcbiAgICAgICAgOiBgJHtwcm9wcy56b25lTmFtZX0uYDtcblxuICAgIHRoaXMucmVzb3VyY2UgPSBuZXcgcm91dGU1M1pvbmUuUm91dGU1M1pvbmUodGhpcywgXCJSZXNvdXJjZVwiLCB7XG4gICAgICBuYW1lOiB6b25lTmFtZSxcbiAgICAgIGNvbW1lbnQ6IHByb3BzLmNvbW1lbnQsXG4gICAgICB2cGM6IExhenkuYW55VmFsdWUoe1xuICAgICAgICBwcm9kdWNlOiAoKSA9PlxuICAgICAgICAgIHRoaXMubmV0d29ya3MubGVuZ3RoID09PSAwXG4gICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgOiB0aGlzLm5ldHdvcmtzLm1hcCgobikgPT5cbiAgICAgICAgICAgICAgICByb3V0ZTUzWm9uZS5yb3V0ZTUzWm9uZVZwY1RvVGVycmFmb3JtKG4pLFxuICAgICAgICAgICAgICApLFxuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICB0aGlzLnpvbmVJZCA9IHRoaXMucmVzb3VyY2UuaWQ7XG4gICAgdGhpcy5hcm4gPSB0aGlzLnJlc291cmNlLmFybjtcbiAgICB0aGlzLm5hbWVTZXJ2ZXJzID0gdGhpcy5yZXNvdXJjZS5uYW1lU2VydmVycztcbiAgICB0aGlzLnByaW1hcnlOYW1lU2VydmVyID0gdGhpcy5yZXNvdXJjZS5wcmltYXJ5TmFtZVNlcnZlcjtcbiAgICB0aGlzLnpvbmVOYW1lID0gcHJvcHMuem9uZU5hbWU7XG5cbiAgICBmb3IgKGNvbnN0IHZwYyBvZiBwcm9wcy5uZXR3b3JrcyB8fCBbXSkge1xuICAgICAgdGhpcy5hZGROZXR3b3JrKHZwYyk7XG4gICAgfVxuXG4gICAgdGhpcy5fb3V0cHV0cyA9IHtcbiAgICAgIHpvbmVJZDogdGhpcy56b25lSWQsXG4gICAgICB6b25lTmFtZTogdGhpcy56b25lTmFtZSxcbiAgICAgIG5hbWVTZXJ2ZXJzOiB0aGlzLm5hbWVTZXJ2ZXJzLFxuICAgICAgcHJpbWFyeU5hbWVTZXJ2ZXI6IHRoaXMucmVzb3VyY2UucHJpbWFyeU5hbWVTZXJ2ZXIsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYW5vdGhlciBOZXR3b3JrIHRvIHRoaXMgcHJpdmF0ZSBob3N0ZWQgem9uZS5cbiAgICpcbiAgICogVGhpcyBjb25mbGljdHMgd2l0aCB0aGUgYGRlbGVnYXRpb25TZXRJZGAgYW5kIGFueVxuICAgKiBgYXdzX3JvdXRlNTNfem9uZV9hc3NvY2lhdGlvbmAgY3JlYXRlZCBvdXRzaWRlIHRoaXMgc3BlYy5cbiAgICpcbiAgICogQHBhcmFtIG5ldHdvcmsgdGhlIG90aGVyIE5ldHdvcmsgdG8gYWRkLlxuICAgKi9cbiAgcHVibGljIGFkZE5ldHdvcmsobmV0d29yazogSU5ldHdvcmspIHtcbiAgICB0aGlzLm5ldHdvcmtzLnB1c2goe1xuICAgICAgdnBjSWQ6IG5ldHdvcmsudnBjSWQsXG4gICAgICB2cGNSZWdpb246IG5ldHdvcmsuZW52LnJlZ2lvbiA/PyBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChuZXR3b3JrKS5yZWdpb24sXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1ha2VIb3N0ZWRab25lQXJuKFxuICBjb25zdHJ1Y3Q6IENvbnN0cnVjdCxcbiAgaG9zdGVkWm9uZUlkOiBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICByZXR1cm4gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3QoY29uc3RydWN0KS5mb3JtYXRBcm4oe1xuICAgIGFjY291bnQ6IFwiXCIsXG4gICAgcmVnaW9uOiBcIlwiLFxuICAgIHNlcnZpY2U6IFwicm91dGU1M1wiLFxuICAgIHJlc291cmNlOiBcImhvc3RlZHpvbmVcIixcbiAgICByZXNvdXJjZU5hbWU6IGhvc3RlZFpvbmVJZCxcbiAgfSk7XG59XG5cbi8qKlxuICogVmFsaWRhdGVzIGEgem9uZSBuYW1lIGlzIHZhbGlkIGJ5IFJvdXRlNTMgc3BlY2lmYyBuYW1pbmcgcnVsZXMsXG4gKiBhbmQgdGhhdCB0aGVyZSBpcyBubyB0cmFpbGluZyBkb3QgaW4gdGhlIG5hbWUuXG4gKlxuICogQHBhcmFtIHpvbmVOYW1lIHRoZSB6b25lIG5hbWUgdG8gYmUgdmFsaWRhdGVkLlxuICogQHJldHVybnMgK3pvbmVOYW1lK1xuICogQHRocm93cyBWYWxpZGF0aW9uRXJyb3IgaWYgdGhlIG5hbWUgaXMgbm90IHZhbGlkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVab25lTmFtZSh6b25lTmFtZTogc3RyaW5nKSB7XG4gIGlmICh6b25lTmFtZS5sZW5ndGggPiAyNTUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJ6b25lIG5hbWUgY2Fubm90IGJlIG1vcmUgdGhhbiAyNTUgYnl0ZXMgbG9uZ1wiKTtcbiAgfVxuICBpZiAoem9uZU5hbWUuc3BsaXQoXCIuXCIpLmZpbmQoKGxhYmVsKSA9PiBsYWJlbC5sZW5ndGggPiA2MykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJ6b25lIG5hbWUgbGFiZWxzIGNhbm5vdCBiZSBtb3JlIHRoYW4gNjMgYnl0ZXMgbG9uZ1wiKTtcbiAgfVxuICBpZiAoIXpvbmVOYW1lLm1hdGNoKC9eW2EtejAtOSFcIiMkJSYnKCkqKywvOjs8PT4/QFtcXFxcXFxdXl9ge3x9fi4tXSskL2kpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgXCJ6b25lIG5hbWVzIGNhbiBvbmx5IGNvbnRhaW4gYS16LCAwLTksIC0sICEgXFxcIiAjICQgJSAmICcgKCApICogKyAsIC0gLyA6IDsgPCA9ID4gPyBAIFsgIF0gXiBfIGAgeyB8IH0gfiAuXCIsXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { cloudfrontFunction } from "@cdktf/provider-aws";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
import { IKeyValueStore } from ".";
|
|
4
|
+
import { AwsConstructBase, IAwsConstruct, AwsConstructProps } from "../aws-construct";
|
|
5
|
+
/**
|
|
6
|
+
* Represents the function's source code
|
|
7
|
+
*/
|
|
8
|
+
export declare abstract class FunctionCode {
|
|
9
|
+
/**
|
|
10
|
+
* Inline code for function
|
|
11
|
+
* @returns code object with inline code.
|
|
12
|
+
* @param code The actual function code
|
|
13
|
+
*/
|
|
14
|
+
static fromInline(code: string): FunctionCode;
|
|
15
|
+
/**
|
|
16
|
+
* Code from external file for function
|
|
17
|
+
* @returns code object with contents from file.
|
|
18
|
+
* @param options the options for the external file
|
|
19
|
+
*/
|
|
20
|
+
static fromFile(options: FileCodeOptions): FunctionCode;
|
|
21
|
+
/**
|
|
22
|
+
* renders the function code
|
|
23
|
+
*/
|
|
24
|
+
abstract render(): string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Options when reading the function's code from an external file
|
|
28
|
+
*/
|
|
29
|
+
export interface FileCodeOptions {
|
|
30
|
+
/**
|
|
31
|
+
* The path of the file to read the code from
|
|
32
|
+
*/
|
|
33
|
+
readonly filePath: string;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Represents a CloudFront Function
|
|
37
|
+
*
|
|
38
|
+
* @resource aws_cloudfront_function
|
|
39
|
+
*/
|
|
40
|
+
export interface IFunction extends IAwsConstruct {
|
|
41
|
+
/** Strongly typed outputs
|
|
42
|
+
*
|
|
43
|
+
* @attribute
|
|
44
|
+
*/
|
|
45
|
+
readonly functionOutputs: FunctionOutputs;
|
|
46
|
+
/**
|
|
47
|
+
* The name of the function.
|
|
48
|
+
* @attribute
|
|
49
|
+
*/
|
|
50
|
+
readonly functionName: string;
|
|
51
|
+
/**
|
|
52
|
+
* The ARN of the function.
|
|
53
|
+
* @attribute
|
|
54
|
+
*/
|
|
55
|
+
readonly functionArn: string;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Outputs of an existing CloudFront Function to import it
|
|
59
|
+
*/
|
|
60
|
+
export interface FunctionOutputs {
|
|
61
|
+
/**
|
|
62
|
+
* The name of the function.
|
|
63
|
+
*/
|
|
64
|
+
readonly name: string;
|
|
65
|
+
/**
|
|
66
|
+
* The ARN of the function.
|
|
67
|
+
*/
|
|
68
|
+
readonly arn: string;
|
|
69
|
+
/**
|
|
70
|
+
* The Runtime of the function.
|
|
71
|
+
* @default FunctionRuntime.JS_1_0
|
|
72
|
+
*/
|
|
73
|
+
readonly functionRuntime?: string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Properties for creating a CloudFront Function
|
|
77
|
+
*/
|
|
78
|
+
export interface FunctionProps extends AwsConstructProps {
|
|
79
|
+
/**
|
|
80
|
+
* A name to identify the function.
|
|
81
|
+
*/
|
|
82
|
+
readonly nameSuffix: string;
|
|
83
|
+
/**
|
|
84
|
+
* A comment to describe the function.
|
|
85
|
+
* @default - same as `functionName`
|
|
86
|
+
*/
|
|
87
|
+
readonly comment?: string;
|
|
88
|
+
/**
|
|
89
|
+
* The source code of the function.
|
|
90
|
+
*/
|
|
91
|
+
readonly code: FunctionCode;
|
|
92
|
+
/**
|
|
93
|
+
* The runtime environment for the function.
|
|
94
|
+
* @default FunctionRuntime.JS_1_0 (unless `keyValueStore` is specified, then `FunctionRuntime.JS_2_0`)
|
|
95
|
+
*/
|
|
96
|
+
readonly runtime?: FunctionRuntime;
|
|
97
|
+
/**
|
|
98
|
+
* The Key Value Store to associate with this function.
|
|
99
|
+
*
|
|
100
|
+
* In order to associate a Key Value Store, the `runtime` must be
|
|
101
|
+
* `cloudfront-js-2.0` or newer.
|
|
102
|
+
*
|
|
103
|
+
* Note: AWS limits associations to one key value store per function.
|
|
104
|
+
*
|
|
105
|
+
* @default - no key value store is associated
|
|
106
|
+
*/
|
|
107
|
+
readonly keyValueStore?: IKeyValueStore;
|
|
108
|
+
/**
|
|
109
|
+
* A flag that determines whether to automatically publish the function to the LIVE stage when it’s created.
|
|
110
|
+
*
|
|
111
|
+
* @default - true
|
|
112
|
+
*/
|
|
113
|
+
readonly autoPublish?: boolean;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* A CloudFront Function
|
|
117
|
+
*
|
|
118
|
+
* @resource aws_cloudfront_function
|
|
119
|
+
*/
|
|
120
|
+
export declare class Function extends AwsConstructBase implements IFunction {
|
|
121
|
+
readonly resource: cloudfrontFunction.CloudfrontFunction;
|
|
122
|
+
private readonly _outputs;
|
|
123
|
+
get functionOutputs(): FunctionOutputs;
|
|
124
|
+
get outputs(): Record<string, any>;
|
|
125
|
+
/**
|
|
126
|
+
* the name of the CloudFront function
|
|
127
|
+
* @attribute
|
|
128
|
+
*/
|
|
129
|
+
readonly functionName: string;
|
|
130
|
+
/**
|
|
131
|
+
* the ARN of the CloudFront function
|
|
132
|
+
* @attribute
|
|
133
|
+
*/
|
|
134
|
+
readonly functionArn: string;
|
|
135
|
+
/**
|
|
136
|
+
* the deployment stage of the CloudFront function
|
|
137
|
+
* @attribute
|
|
138
|
+
*/
|
|
139
|
+
readonly functionStage: string;
|
|
140
|
+
/**
|
|
141
|
+
* the runtime of the CloudFront function
|
|
142
|
+
* @attribute
|
|
143
|
+
*/
|
|
144
|
+
readonly functionRuntime: string;
|
|
145
|
+
constructor(scope: Construct, id: string, props: FunctionProps);
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* The type of events that a CloudFront function can be invoked in response to.
|
|
149
|
+
*/
|
|
150
|
+
export declare enum FunctionEventType {
|
|
151
|
+
/**
|
|
152
|
+
* The viewer-request specifies the incoming request
|
|
153
|
+
*/
|
|
154
|
+
VIEWER_REQUEST = "viewer-request",
|
|
155
|
+
/**
|
|
156
|
+
* The viewer-response specifies the outgoing response
|
|
157
|
+
*/
|
|
158
|
+
VIEWER_RESPONSE = "viewer-response"
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Represents a CloudFront function and event type when using CF Functions.
|
|
162
|
+
* The type of the `AddBehaviorOptions.functionAssociations` property.
|
|
163
|
+
*/
|
|
164
|
+
export interface FunctionAssociation {
|
|
165
|
+
/**
|
|
166
|
+
* The CloudFront function that will be invoked.
|
|
167
|
+
*/
|
|
168
|
+
readonly function: IFunction;
|
|
169
|
+
/** The type of event which should invoke the function. */
|
|
170
|
+
readonly eventType: FunctionEventType;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/functions-javascript-runtime-features.html
|
|
174
|
+
* https://registry.terraform.io/providers/hashicorp/aws/5.60.0/docs/resources/cloudfront_function#runtime
|
|
175
|
+
*/
|
|
176
|
+
export declare enum FunctionRuntime {
|
|
177
|
+
/**
|
|
178
|
+
* cloudfront-js-1.0
|
|
179
|
+
*/
|
|
180
|
+
JS_1_0 = "cloudfront-js-1.0",
|
|
181
|
+
/**
|
|
182
|
+
* cloudfront-js-2.0
|
|
183
|
+
*/
|
|
184
|
+
JS_2_0 = "cloudfront-js-2.0"
|
|
185
|
+
}
|