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,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.CompositeAlarm = 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 arn_1 = require("../arn");
|
|
9
|
+
const aws_stack_1 = require("../aws-stack");
|
|
10
|
+
const alarm_base_1 = require("./alarm-base");
|
|
11
|
+
const duration_1 = require("../../duration");
|
|
12
|
+
/**
|
|
13
|
+
* A Composite Alarm based on Alarm Rule.
|
|
14
|
+
*/
|
|
15
|
+
class CompositeAlarm extends alarm_base_1.AlarmBase {
|
|
16
|
+
/**
|
|
17
|
+
* Import an existing CloudWatch composite alarm provided an Name.
|
|
18
|
+
*
|
|
19
|
+
* @param scope The parent creating construct (usually `this`)
|
|
20
|
+
* @param id The construct's name
|
|
21
|
+
* @param compositeAlarmName Composite Alarm Name
|
|
22
|
+
*/
|
|
23
|
+
static fromCompositeAlarmName(scope, id, compositeAlarmName) {
|
|
24
|
+
const stack = aws_stack_1.AwsStack.ofAwsConstruct(scope);
|
|
25
|
+
return this.fromCompositeAlarmArn(scope, id, stack.formatArn({
|
|
26
|
+
service: "cloudwatch",
|
|
27
|
+
resource: "alarm",
|
|
28
|
+
resourceName: compositeAlarmName,
|
|
29
|
+
arnFormat: arn_1.ArnFormat.COLON_RESOURCE_NAME,
|
|
30
|
+
}));
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Import an existing CloudWatch composite alarm provided an ARN.
|
|
34
|
+
*
|
|
35
|
+
* @param scope The parent creating construct (usually `this`)
|
|
36
|
+
* @param id The construct's name
|
|
37
|
+
* @param compositeAlarmArn Composite Alarm ARN (i.e. arn:aws:cloudwatch:<region>:<account-id>:alarm:CompositeAlarmName)
|
|
38
|
+
*/
|
|
39
|
+
static fromCompositeAlarmArn(scope, id, compositeAlarmArn) {
|
|
40
|
+
class Import extends alarm_base_1.AlarmBase {
|
|
41
|
+
constructor() {
|
|
42
|
+
super(...arguments);
|
|
43
|
+
this.alarmArn = compositeAlarmArn;
|
|
44
|
+
this.alarmName = aws_stack_1.AwsStack.ofAwsConstruct(scope).splitArn(compositeAlarmArn, arn_1.ArnFormat.COLON_RESOURCE_NAME).resourceName;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return new Import(scope, id);
|
|
48
|
+
}
|
|
49
|
+
constructor(scope, id, props) {
|
|
50
|
+
super(scope, id);
|
|
51
|
+
const alarmName = props.compositeAlarmName ||
|
|
52
|
+
this.stack.uniqueResourceName(this, {
|
|
53
|
+
prefix: this.gridUUID,
|
|
54
|
+
maxLength: 255,
|
|
55
|
+
});
|
|
56
|
+
if (props.alarmRule.renderAlarmRule().length > 10240) {
|
|
57
|
+
throw new Error("Alarm Rule expression cannot be greater than 10240 characters, please reduce the conditions in the Alarm Rule");
|
|
58
|
+
}
|
|
59
|
+
let extensionPeriod = props.actionsSuppressorExtensionPeriod;
|
|
60
|
+
let waitPeriod = props.actionsSuppressorWaitPeriod;
|
|
61
|
+
if (props.actionsSuppressor === undefined) {
|
|
62
|
+
if (extensionPeriod !== undefined || waitPeriod !== undefined) {
|
|
63
|
+
throw new Error("ActionsSuppressor Extension/Wait Periods require an ActionsSuppressor to be set.");
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
extensionPeriod = extensionPeriod ?? duration_1.Duration.minutes(1);
|
|
68
|
+
waitPeriod = waitPeriod ?? duration_1.Duration.minutes(1);
|
|
69
|
+
}
|
|
70
|
+
this.alarmRule = props.alarmRule.renderAlarmRule();
|
|
71
|
+
this.resource = new provider_aws_1.cloudwatchCompositeAlarm.CloudwatchCompositeAlarm(this, "Resource", {
|
|
72
|
+
alarmName,
|
|
73
|
+
alarmRule: this.alarmRule,
|
|
74
|
+
alarmDescription: props.alarmDescription,
|
|
75
|
+
actionsEnabled: props.actionsEnabled,
|
|
76
|
+
alarmActions: cdktf_1.Lazy.listValue({ produce: () => this.alarmActionArns }),
|
|
77
|
+
insufficientDataActions: cdktf_1.Lazy.listValue({
|
|
78
|
+
produce: () => this.insufficientDataActionArns,
|
|
79
|
+
}),
|
|
80
|
+
okActions: cdktf_1.Lazy.listValue({ produce: () => this.okActionArns }),
|
|
81
|
+
...(props.actionsSuppressor
|
|
82
|
+
? {
|
|
83
|
+
actionsSuppressor: {
|
|
84
|
+
alarm: props.actionsSuppressor?.alarmArn,
|
|
85
|
+
extensionPeriod: extensionPeriod.toSeconds(),
|
|
86
|
+
waitPeriod: waitPeriod.toSeconds(),
|
|
87
|
+
},
|
|
88
|
+
}
|
|
89
|
+
: undefined),
|
|
90
|
+
});
|
|
91
|
+
this.alarmName = this.resource.id;
|
|
92
|
+
this.alarmArn = this.resource.arn;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
exports.CompositeAlarm = CompositeAlarm;
|
|
96
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
97
|
+
CompositeAlarm[_a] = { fqn: "terraconstructs.aws.cloudwatch.CompositeAlarm", version: "0.0.8" };
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9zaXRlLWFsYXJtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9jbG91ZHdhdGNoL2NvbXBvc2l0ZS1hbGFybS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHNEQUErRDtBQUMvRCxpQ0FBNkI7QUFFN0IsZ0NBQW1DO0FBRW5DLDRDQUF3QztBQUN4Qyw2Q0FBNkQ7QUFDN0QsNkNBQTBDO0FBd0QxQzs7R0FFRztBQUNILE1BQWEsY0FBZSxTQUFRLHNCQUFTO0lBQzNDOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxzQkFBc0IsQ0FDbEMsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLGtCQUEwQjtRQUUxQixNQUFNLEtBQUssR0FBRyxvQkFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU3QyxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FDL0IsS0FBSyxFQUNMLEVBQUUsRUFDRixLQUFLLENBQUMsU0FBUyxDQUFDO1lBQ2QsT0FBTyxFQUFFLFlBQVk7WUFDckIsUUFBUSxFQUFFLE9BQU87WUFDakIsWUFBWSxFQUFFLGtCQUFrQjtZQUNoQyxTQUFTLEVBQUUsZUFBUyxDQUFDLG1CQUFtQjtTQUN6QyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMscUJBQXFCLENBQ2pDLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixpQkFBeUI7UUFFekIsTUFBTSxNQUFPLFNBQVEsc0JBQVM7WUFBOUI7O2dCQUNrQixhQUFRLEdBQUcsaUJBQWlCLENBQUM7Z0JBQzdCLGNBQVMsR0FBRyxvQkFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQ2pFLGlCQUFpQixFQUNqQixlQUFTLENBQUMsbUJBQW1CLENBQzlCLENBQUMsWUFBYSxDQUFDO1lBQ2xCLENBQUM7U0FBQTtRQUNELE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFtQkQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEwQjtRQUNsRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLE1BQU0sU0FBUyxHQUNiLEtBQUssQ0FBQyxrQkFBa0I7WUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2xDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDckIsU0FBUyxFQUFFLEdBQUc7YUFDZixDQUFDLENBQUM7UUFFTCxJQUFJLEtBQUssQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLENBQUMsTUFBTSxHQUFHLEtBQUssRUFBRSxDQUFDO1lBQ3JELE1BQU0sSUFBSSxLQUFLLENBQ2IsK0dBQStHLENBQ2hILENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxlQUFlLEdBQUcsS0FBSyxDQUFDLGdDQUFnQyxDQUFDO1FBQzdELElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQywyQkFBMkIsQ0FBQztRQUNuRCxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMxQyxJQUFJLGVBQWUsS0FBSyxTQUFTLElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUM5RCxNQUFNLElBQUksS0FBSyxDQUNiLGtGQUFrRixDQUNuRixDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sZUFBZSxHQUFHLGVBQWUsSUFBSSxtQkFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6RCxVQUFVLEdBQUcsVUFBVSxJQUFJLG1CQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFFRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFbkQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHVDQUF3QixDQUFDLHdCQUF3QixDQUNuRSxJQUFJLEVBQ0osVUFBVSxFQUNWO1lBQ0UsU0FBUztZQUNULFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO1lBQ3hDLGNBQWMsRUFBRSxLQUFLLENBQUMsY0FBYztZQUNwQyxZQUFZLEVBQUUsWUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDckUsdUJBQXVCLEVBQUUsWUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQywwQkFBMEI7YUFDL0MsQ0FBQztZQUNGLFNBQVMsRUFBRSxZQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMvRCxHQUFHLENBQUMsS0FBSyxDQUFDLGlCQUFpQjtnQkFDekIsQ0FBQyxDQUFDO29CQUNFLGlCQUFpQixFQUFFO3dCQUNqQixLQUFLLEVBQUUsS0FBSyxDQUFDLGlCQUFpQixFQUFFLFFBQVE7d0JBQ3hDLGVBQWUsRUFBRSxlQUFnQixDQUFDLFNBQVMsRUFBRTt3QkFDN0MsVUFBVSxFQUFFLFVBQVcsQ0FBQyxTQUFTLEVBQUU7cUJBQ3BDO2lCQUNGO2dCQUNILENBQUMsQ0FBQyxTQUFTLENBQUM7U0FDZixDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7SUFDcEMsQ0FBQzs7QUEzSEgsd0NBNEhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2xvdWR3YXRjaENvbXBvc2l0ZUFsYXJtIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IExhenkgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBcm5Gb3JtYXQgfSBmcm9tIFwiLi4vYXJuXCI7XG5pbXBvcnQgeyBBd3NDb25zdHJ1Y3RQcm9wcyB9IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBBd3NTdGFjayB9IGZyb20gXCIuLi9hd3Mtc3RhY2tcIjtcbmltcG9ydCB7IEFsYXJtQmFzZSwgSUFsYXJtLCBJQWxhcm1SdWxlIH0gZnJvbSBcIi4vYWxhcm0tYmFzZVwiO1xuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiLi4vLi4vZHVyYXRpb25cIjtcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBjcmVhdGluZyBhIENvbXBvc2l0ZSBBbGFybVxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbXBvc2l0ZUFsYXJtUHJvcHMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBhY3Rpb25zIGZvciB0aGlzIGFsYXJtIGFyZSBlbmFibGVkXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGFjdGlvbnNFbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGVzY3JpcHRpb24gZm9yIHRoZSBhbGFybVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGRlc2NyaXB0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1EZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKipcbiAgICogTmFtZSBvZiB0aGUgYWxhcm1cbiAgICpcbiAgICogQGRlZmF1bHQgLSBBdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBuYW1lLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tcG9zaXRlQWxhcm1OYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFeHByZXNzaW9uIHRoYXQgc3BlY2lmaWVzIHdoaWNoIG90aGVyIGFsYXJtcyBhcmUgdG8gYmUgZXZhbHVhdGVkIHRvIGRldGVybWluZSB0aGlzIGNvbXBvc2l0ZSBhbGFybSdzIHN0YXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1SdWxlOiBJQWxhcm1SdWxlO1xuXG4gIC8qKlxuICAgKiBBY3Rpb25zIHdpbGwgYmUgc3VwcHJlc3NlZCBpZiB0aGUgc3VwcHJlc3NvciBhbGFybSBpcyBpbiB0aGUgQUxBUk0gc3RhdGUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYWxhcm0gd2lsbCBub3QgYmUgc3VwcHJlc3NlZC5cbiAgICovXG4gIHJlYWRvbmx5IGFjdGlvbnNTdXBwcmVzc29yPzogSUFsYXJtO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBkdXJhdGlvbiB0aGF0IHRoZSBjb21wb3NpdGUgYWxhcm0gd2FpdHMgYWZ0ZXIgc3VwcHJlc3NvciBhbGFybSBnb2VzIG91dCBvZiB0aGUgQUxBUk0gc3RhdGUuXG4gICAqIEFmdGVyIHRoaXMgdGltZSwgdGhlIGNvbXBvc2l0ZSBhbGFybSBwZXJmb3JtcyBpdHMgYWN0aW9ucy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSAxIG1pbnV0ZSBleHRlbnNpb24gcGVyaW9kIHdpbGwgYmUgc2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aW9uc1N1cHByZXNzb3JFeHRlbnNpb25QZXJpb2Q/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIG1heGltdW0gZHVyYXRpb24gdGhhdCB0aGUgY29tcG9zaXRlIGFsYXJtIHdhaXRzIGZvciB0aGUgc3VwcHJlc3NvciBhbGFybSB0byBnbyBpbnRvIHRoZSBBTEFSTSBzdGF0ZS5cbiAgICogQWZ0ZXIgdGhpcyB0aW1lLCB0aGUgY29tcG9zaXRlIGFsYXJtIHBlcmZvcm1zIGl0cyBhY3Rpb25zLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIDEgbWludXRlIHdhaXQgcGVyaW9kIHdpbGwgYmUgc2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aW9uc1N1cHByZXNzb3JXYWl0UGVyaW9kPzogRHVyYXRpb247XG59XG5cbi8qKlxuICogQSBDb21wb3NpdGUgQWxhcm0gYmFzZWQgb24gQWxhcm0gUnVsZS5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbXBvc2l0ZUFsYXJtIGV4dGVuZHMgQWxhcm1CYXNlIHtcbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBDbG91ZFdhdGNoIGNvbXBvc2l0ZSBhbGFybSBwcm92aWRlZCBhbiBOYW1lLlxuICAgKlxuICAgKiBAcGFyYW0gc2NvcGUgVGhlIHBhcmVudCBjcmVhdGluZyBjb25zdHJ1Y3QgKHVzdWFsbHkgYHRoaXNgKVxuICAgKiBAcGFyYW0gaWQgVGhlIGNvbnN0cnVjdCdzIG5hbWVcbiAgICogQHBhcmFtIGNvbXBvc2l0ZUFsYXJtTmFtZSBDb21wb3NpdGUgQWxhcm0gTmFtZVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQ29tcG9zaXRlQWxhcm1OYW1lKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBjb21wb3NpdGVBbGFybU5hbWU6IHN0cmluZyxcbiAgKTogSUFsYXJtIHtcbiAgICBjb25zdCBzdGFjayA9IEF3c1N0YWNrLm9mQXdzQ29uc3RydWN0KHNjb3BlKTtcblxuICAgIHJldHVybiB0aGlzLmZyb21Db21wb3NpdGVBbGFybUFybihcbiAgICAgIHNjb3BlLFxuICAgICAgaWQsXG4gICAgICBzdGFjay5mb3JtYXRBcm4oe1xuICAgICAgICBzZXJ2aWNlOiBcImNsb3Vkd2F0Y2hcIixcbiAgICAgICAgcmVzb3VyY2U6IFwiYWxhcm1cIixcbiAgICAgICAgcmVzb3VyY2VOYW1lOiBjb21wb3NpdGVBbGFybU5hbWUsXG4gICAgICAgIGFybkZvcm1hdDogQXJuRm9ybWF0LkNPTE9OX1JFU09VUkNFX05BTUUsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhbiBleGlzdGluZyBDbG91ZFdhdGNoIGNvbXBvc2l0ZSBhbGFybSBwcm92aWRlZCBhbiBBUk4uXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgcGFyZW50IGNyZWF0aW5nIGNvbnN0cnVjdCAodXN1YWxseSBgdGhpc2ApXG4gICAqIEBwYXJhbSBpZCBUaGUgY29uc3RydWN0J3MgbmFtZVxuICAgKiBAcGFyYW0gY29tcG9zaXRlQWxhcm1Bcm4gQ29tcG9zaXRlIEFsYXJtIEFSTiAoaS5lLiBhcm46YXdzOmNsb3Vkd2F0Y2g6PHJlZ2lvbj46PGFjY291bnQtaWQ+OmFsYXJtOkNvbXBvc2l0ZUFsYXJtTmFtZSlcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUNvbXBvc2l0ZUFsYXJtQXJuKFxuICAgIHNjb3BlOiBDb25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBjb21wb3NpdGVBbGFybUFybjogc3RyaW5nLFxuICApOiBJQWxhcm0ge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIEFsYXJtQmFzZSBpbXBsZW1lbnRzIElBbGFybSB7XG4gICAgICBwdWJsaWMgcmVhZG9ubHkgYWxhcm1Bcm4gPSBjb21wb3NpdGVBbGFybUFybjtcbiAgICAgIHB1YmxpYyByZWFkb25seSBhbGFybU5hbWUgPSBBd3NTdGFjay5vZkF3c0NvbnN0cnVjdChzY29wZSkuc3BsaXRBcm4oXG4gICAgICAgIGNvbXBvc2l0ZUFsYXJtQXJuLFxuICAgICAgICBBcm5Gb3JtYXQuQ09MT05fUkVTT1VSQ0VfTkFNRSxcbiAgICAgICkucmVzb3VyY2VOYW1lITtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuICBwdWJsaWMgcmVhZG9ubHkgcmVzb3VyY2U6IGNsb3Vkd2F0Y2hDb21wb3NpdGVBbGFybS5DbG91ZHdhdGNoQ29tcG9zaXRlQWxhcm07XG5cbiAgLyoqXG4gICAqIEFSTiBvZiB0aGlzIGFsYXJtXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhbGFybUFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoaXMgYWxhcm0uXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhbGFybU5hbWU6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IGFsYXJtUnVsZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDb21wb3NpdGVBbGFybVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBhbGFybU5hbWUgPVxuICAgICAgcHJvcHMuY29tcG9zaXRlQWxhcm1OYW1lIHx8XG4gICAgICB0aGlzLnN0YWNrLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7XG4gICAgICAgIHByZWZpeDogdGhpcy5ncmlkVVVJRCxcbiAgICAgICAgbWF4TGVuZ3RoOiAyNTUsXG4gICAgICB9KTtcblxuICAgIGlmIChwcm9wcy5hbGFybVJ1bGUucmVuZGVyQWxhcm1SdWxlKCkubGVuZ3RoID4gMTAyNDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJBbGFybSBSdWxlIGV4cHJlc3Npb24gY2Fubm90IGJlIGdyZWF0ZXIgdGhhbiAxMDI0MCBjaGFyYWN0ZXJzLCBwbGVhc2UgcmVkdWNlIHRoZSBjb25kaXRpb25zIGluIHRoZSBBbGFybSBSdWxlXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIGxldCBleHRlbnNpb25QZXJpb2QgPSBwcm9wcy5hY3Rpb25zU3VwcHJlc3NvckV4dGVuc2lvblBlcmlvZDtcbiAgICBsZXQgd2FpdFBlcmlvZCA9IHByb3BzLmFjdGlvbnNTdXBwcmVzc29yV2FpdFBlcmlvZDtcbiAgICBpZiAocHJvcHMuYWN0aW9uc1N1cHByZXNzb3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKGV4dGVuc2lvblBlcmlvZCAhPT0gdW5kZWZpbmVkIHx8IHdhaXRQZXJpb2QgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgXCJBY3Rpb25zU3VwcHJlc3NvciBFeHRlbnNpb24vV2FpdCBQZXJpb2RzIHJlcXVpcmUgYW4gQWN0aW9uc1N1cHByZXNzb3IgdG8gYmUgc2V0LlwiLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBleHRlbnNpb25QZXJpb2QgPSBleHRlbnNpb25QZXJpb2QgPz8gRHVyYXRpb24ubWludXRlcygxKTtcbiAgICAgIHdhaXRQZXJpb2QgPSB3YWl0UGVyaW9kID8/IER1cmF0aW9uLm1pbnV0ZXMoMSk7XG4gICAgfVxuXG4gICAgdGhpcy5hbGFybVJ1bGUgPSBwcm9wcy5hbGFybVJ1bGUucmVuZGVyQWxhcm1SdWxlKCk7XG5cbiAgICB0aGlzLnJlc291cmNlID0gbmV3IGNsb3Vkd2F0Y2hDb21wb3NpdGVBbGFybS5DbG91ZHdhdGNoQ29tcG9zaXRlQWxhcm0oXG4gICAgICB0aGlzLFxuICAgICAgXCJSZXNvdXJjZVwiLFxuICAgICAge1xuICAgICAgICBhbGFybU5hbWUsXG4gICAgICAgIGFsYXJtUnVsZTogdGhpcy5hbGFybVJ1bGUsXG4gICAgICAgIGFsYXJtRGVzY3JpcHRpb246IHByb3BzLmFsYXJtRGVzY3JpcHRpb24sXG4gICAgICAgIGFjdGlvbnNFbmFibGVkOiBwcm9wcy5hY3Rpb25zRW5hYmxlZCxcbiAgICAgICAgYWxhcm1BY3Rpb25zOiBMYXp5Lmxpc3RWYWx1ZSh7IHByb2R1Y2U6ICgpID0+IHRoaXMuYWxhcm1BY3Rpb25Bcm5zIH0pLFxuICAgICAgICBpbnN1ZmZpY2llbnREYXRhQWN0aW9uczogTGF6eS5saXN0VmFsdWUoe1xuICAgICAgICAgIHByb2R1Y2U6ICgpID0+IHRoaXMuaW5zdWZmaWNpZW50RGF0YUFjdGlvbkFybnMsXG4gICAgICAgIH0pLFxuICAgICAgICBva0FjdGlvbnM6IExhenkubGlzdFZhbHVlKHsgcHJvZHVjZTogKCkgPT4gdGhpcy5va0FjdGlvbkFybnMgfSksXG4gICAgICAgIC4uLihwcm9wcy5hY3Rpb25zU3VwcHJlc3NvclxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBhY3Rpb25zU3VwcHJlc3Nvcjoge1xuICAgICAgICAgICAgICAgIGFsYXJtOiBwcm9wcy5hY3Rpb25zU3VwcHJlc3Nvcj8uYWxhcm1Bcm4sXG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uUGVyaW9kOiBleHRlbnNpb25QZXJpb2QhLnRvU2Vjb25kcygpLFxuICAgICAgICAgICAgICAgIHdhaXRQZXJpb2Q6IHdhaXRQZXJpb2QhLnRvU2Vjb25kcygpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogdW5kZWZpbmVkKSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMuYWxhcm1OYW1lID0gdGhpcy5yZXNvdXJjZS5pZDtcbiAgICB0aGlzLmFsYXJtQXJuID0gdGhpcy5yZXNvdXJjZS5hcm47XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { cloudwatchDashboard } from "@cdktf/provider-aws";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
import { AwsConstructBase, AwsConstructProps } from "../aws-construct";
|
|
4
|
+
import { IVariable } from "./variable";
|
|
5
|
+
import { IWidget } from "./widget";
|
|
6
|
+
import { Duration } from "../../duration";
|
|
7
|
+
/**
|
|
8
|
+
* Specify the period for graphs when the CloudWatch dashboard loads
|
|
9
|
+
*/
|
|
10
|
+
export declare enum PeriodOverride {
|
|
11
|
+
/**
|
|
12
|
+
* Period of all graphs on the dashboard automatically adapt to the time range of the dashboard.
|
|
13
|
+
*/
|
|
14
|
+
AUTO = "auto",
|
|
15
|
+
/**
|
|
16
|
+
* Period set for each graph will be used
|
|
17
|
+
*/
|
|
18
|
+
INHERIT = "inherit"
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Properties for defining a CloudWatch Dashboard
|
|
22
|
+
*/
|
|
23
|
+
export interface DashboardProps extends AwsConstructProps {
|
|
24
|
+
/**
|
|
25
|
+
* Name of the dashboard.
|
|
26
|
+
*
|
|
27
|
+
* If set, must only contain alphanumerics, dash (-) and underscore (_)
|
|
28
|
+
*
|
|
29
|
+
* @default - automatically generated name
|
|
30
|
+
*/
|
|
31
|
+
readonly dashboardName?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Interval duration for metrics.
|
|
34
|
+
* You can specify defaultInterval with the relative time(eg. cdk.Duration.days(7)).
|
|
35
|
+
*
|
|
36
|
+
* Both properties `defaultInterval` and `start` cannot be set at once.
|
|
37
|
+
*
|
|
38
|
+
* @default When the dashboard loads, the defaultInterval time will be the default time range.
|
|
39
|
+
*/
|
|
40
|
+
readonly defaultInterval?: Duration;
|
|
41
|
+
/**
|
|
42
|
+
* The start of the time range to use for each widget on the dashboard.
|
|
43
|
+
* You can specify start without specifying end to specify a relative time range that ends with the current time.
|
|
44
|
+
* In this case, the value of start must begin with -P, and you can use M, H, D, W and M as abbreviations for
|
|
45
|
+
* minutes, hours, days, weeks and months. For example, -PT8H shows the last 8 hours and -P3M shows the last three months.
|
|
46
|
+
* You can also use start along with an end field, to specify an absolute time range.
|
|
47
|
+
* When specifying an absolute time range, use the ISO 8601 format. For example, 2018-12-17T06:00:00.000Z.
|
|
48
|
+
*
|
|
49
|
+
* Both properties `defaultInterval` and `start` cannot be set at once.
|
|
50
|
+
*
|
|
51
|
+
* @default When the dashboard loads, the start time will be the default time range.
|
|
52
|
+
*/
|
|
53
|
+
readonly start?: string;
|
|
54
|
+
/**
|
|
55
|
+
* The end of the time range to use for each widget on the dashboard when the dashboard loads.
|
|
56
|
+
* If you specify a value for end, you must also specify a value for start.
|
|
57
|
+
* Specify an absolute time in the ISO 8601 format. For example, 2018-12-17T06:00:00.000Z.
|
|
58
|
+
*
|
|
59
|
+
* @default When the dashboard loads, the end date will be the current time.
|
|
60
|
+
*/
|
|
61
|
+
readonly end?: string;
|
|
62
|
+
/**
|
|
63
|
+
* Use this field to specify the period for the graphs when the dashboard loads.
|
|
64
|
+
* Specifying `Auto` causes the period of all graphs on the dashboard to automatically adapt to the time range of the dashboard.
|
|
65
|
+
* Specifying `Inherit` ensures that the period set for each graph is always obeyed.
|
|
66
|
+
*
|
|
67
|
+
* @default Auto
|
|
68
|
+
*/
|
|
69
|
+
readonly periodOverride?: PeriodOverride;
|
|
70
|
+
/**
|
|
71
|
+
* Initial set of widgets on the dashboard
|
|
72
|
+
*
|
|
73
|
+
* One array represents a row of widgets.
|
|
74
|
+
*
|
|
75
|
+
* @default - No widgets
|
|
76
|
+
*/
|
|
77
|
+
readonly widgets?: IWidget[][];
|
|
78
|
+
/**
|
|
79
|
+
* A list of dashboard variables
|
|
80
|
+
*
|
|
81
|
+
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_dashboard_variables.html#cloudwatch_dashboard_variables_types
|
|
82
|
+
*
|
|
83
|
+
* @default - No variables
|
|
84
|
+
*/
|
|
85
|
+
readonly variables?: IVariable[];
|
|
86
|
+
}
|
|
87
|
+
export interface DashboardOutputs {
|
|
88
|
+
/**
|
|
89
|
+
* The name of this dashboard
|
|
90
|
+
* @attribute
|
|
91
|
+
*/
|
|
92
|
+
readonly dashboardName: string;
|
|
93
|
+
/**
|
|
94
|
+
* ARN of this dashboard
|
|
95
|
+
* @attribute
|
|
96
|
+
*/
|
|
97
|
+
readonly dashboardArn: string;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* A CloudWatch dashboard
|
|
101
|
+
*/
|
|
102
|
+
export declare class Dashboard extends AwsConstructBase {
|
|
103
|
+
readonly resource: cloudwatchDashboard.CloudwatchDashboard;
|
|
104
|
+
/**
|
|
105
|
+
* The name of this dashboard
|
|
106
|
+
*
|
|
107
|
+
* @attribute
|
|
108
|
+
*/
|
|
109
|
+
readonly dashboardName: string;
|
|
110
|
+
/**
|
|
111
|
+
* ARN of this dashboard
|
|
112
|
+
*
|
|
113
|
+
* @attribute
|
|
114
|
+
*/
|
|
115
|
+
readonly dashboardArn: string;
|
|
116
|
+
get dashboardOutputs(): DashboardOutputs;
|
|
117
|
+
get outputs(): Record<string, any>;
|
|
118
|
+
private readonly rows;
|
|
119
|
+
private readonly variables;
|
|
120
|
+
constructor(scope: Construct, id: string, props?: DashboardProps);
|
|
121
|
+
/**
|
|
122
|
+
* Add a widget to the dashboard.
|
|
123
|
+
*
|
|
124
|
+
* Widgets given in multiple calls to add() will be laid out stacked on
|
|
125
|
+
* top of each other.
|
|
126
|
+
*
|
|
127
|
+
* Multiple widgets added in the same call to add() will be laid out next
|
|
128
|
+
* to each other.
|
|
129
|
+
*/
|
|
130
|
+
addWidgets(...widgets: IWidget[]): void;
|
|
131
|
+
/**
|
|
132
|
+
* Add a variable to the dashboard.
|
|
133
|
+
*
|
|
134
|
+
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_dashboard_variables.html
|
|
135
|
+
*/
|
|
136
|
+
addVariable(variable: IVariable): void;
|
|
137
|
+
}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Dashboard = exports.PeriodOverride = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
// https://github.com/aws/aws-cdk/blob/v2.170.0/packages/aws-cdk-lib/aws-cloudwatch/lib/dashboard.ts
|
|
7
|
+
const provider_aws_1 = require("@cdktf/provider-aws");
|
|
8
|
+
const cdktf_1 = require("cdktf");
|
|
9
|
+
const aws_construct_1 = require("../aws-construct");
|
|
10
|
+
const aws_stack_1 = require("../aws-stack");
|
|
11
|
+
const layout_1 = require("./layout");
|
|
12
|
+
/**
|
|
13
|
+
* Specify the period for graphs when the CloudWatch dashboard loads
|
|
14
|
+
*/
|
|
15
|
+
var PeriodOverride;
|
|
16
|
+
(function (PeriodOverride) {
|
|
17
|
+
/**
|
|
18
|
+
* Period of all graphs on the dashboard automatically adapt to the time range of the dashboard.
|
|
19
|
+
*/
|
|
20
|
+
PeriodOverride["AUTO"] = "auto";
|
|
21
|
+
/**
|
|
22
|
+
* Period set for each graph will be used
|
|
23
|
+
*/
|
|
24
|
+
PeriodOverride["INHERIT"] = "inherit";
|
|
25
|
+
})(PeriodOverride || (exports.PeriodOverride = PeriodOverride = {}));
|
|
26
|
+
/**
|
|
27
|
+
* A CloudWatch dashboard
|
|
28
|
+
*/
|
|
29
|
+
class Dashboard extends aws_construct_1.AwsConstructBase {
|
|
30
|
+
get dashboardOutputs() {
|
|
31
|
+
return {
|
|
32
|
+
dashboardName: this.dashboardName,
|
|
33
|
+
dashboardArn: this.dashboardArn,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
get outputs() {
|
|
37
|
+
return this.dashboardOutputs;
|
|
38
|
+
}
|
|
39
|
+
constructor(scope, id, props = {}) {
|
|
40
|
+
super(scope, id, props);
|
|
41
|
+
this.rows = [];
|
|
42
|
+
this.variables = [];
|
|
43
|
+
const dashboardName = props.dashboardName ||
|
|
44
|
+
this.stack.uniqueResourceName(this, {
|
|
45
|
+
prefix: this.gridUUID,
|
|
46
|
+
allowedSpecialCharacters: "-_",
|
|
47
|
+
});
|
|
48
|
+
if (dashboardName &&
|
|
49
|
+
!cdktf_1.Token.isUnresolved(dashboardName) &&
|
|
50
|
+
!dashboardName.match(/^[\w-]+$/)) {
|
|
51
|
+
throw new Error([
|
|
52
|
+
`The value ${dashboardName} for field dashboardName contains invalid characters.`,
|
|
53
|
+
"It can only contain alphanumerics, dash (-) and underscore (_).",
|
|
54
|
+
].join(" "));
|
|
55
|
+
}
|
|
56
|
+
if (props.start !== undefined && props.defaultInterval !== undefined) {
|
|
57
|
+
throw new Error("both properties defaultInterval and start cannot be set at once");
|
|
58
|
+
}
|
|
59
|
+
if (props.end !== undefined && props.start === undefined) {
|
|
60
|
+
throw new Error("If you specify a value for end, you must also specify a value for start.");
|
|
61
|
+
}
|
|
62
|
+
this.resource = new provider_aws_1.cloudwatchDashboard.CloudwatchDashboard(this, "Resource", {
|
|
63
|
+
dashboardName,
|
|
64
|
+
dashboardBody: cdktf_1.Lazy.stringValue({
|
|
65
|
+
produce: () => {
|
|
66
|
+
const column = new layout_1.Column(...this.rows);
|
|
67
|
+
column.position(0, 0);
|
|
68
|
+
return aws_stack_1.AwsStack.ofAwsConstruct(this).toJsonString({
|
|
69
|
+
start: props.defaultInterval !== undefined
|
|
70
|
+
? `-${props.defaultInterval?.toIsoString()}`
|
|
71
|
+
: props.start,
|
|
72
|
+
end: props.defaultInterval !== undefined ? undefined : props.end,
|
|
73
|
+
periodOverride: props.periodOverride,
|
|
74
|
+
widgets: column.toJson(),
|
|
75
|
+
variables: this.variables.length > 0
|
|
76
|
+
? this.variables.map((variable) => variable.toJson())
|
|
77
|
+
: undefined,
|
|
78
|
+
});
|
|
79
|
+
},
|
|
80
|
+
}),
|
|
81
|
+
});
|
|
82
|
+
this.dashboardName = this.resource.dashboardName;
|
|
83
|
+
(props.widgets || []).forEach((row) => {
|
|
84
|
+
this.addWidgets(...row);
|
|
85
|
+
});
|
|
86
|
+
(props.variables || []).forEach((variable) => this.addVariable(variable));
|
|
87
|
+
this.dashboardArn = this.resource.dashboardArn;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Add a widget to the dashboard.
|
|
91
|
+
*
|
|
92
|
+
* Widgets given in multiple calls to add() will be laid out stacked on
|
|
93
|
+
* top of each other.
|
|
94
|
+
*
|
|
95
|
+
* Multiple widgets added in the same call to add() will be laid out next
|
|
96
|
+
* to each other.
|
|
97
|
+
*/
|
|
98
|
+
addWidgets(...widgets) {
|
|
99
|
+
if (widgets.length === 0) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const warnings = allWidgetsDeep(widgets).reduce((prev, curr) => {
|
|
103
|
+
return {
|
|
104
|
+
...prev,
|
|
105
|
+
...curr.warningsV2,
|
|
106
|
+
};
|
|
107
|
+
}, {});
|
|
108
|
+
for (const [_, message] of Object.entries(warnings ?? {})) {
|
|
109
|
+
// TODO: v2 warning with message id
|
|
110
|
+
cdktf_1.Annotations.of(this).addWarning(message);
|
|
111
|
+
}
|
|
112
|
+
const w = widgets.length > 1 ? new layout_1.Row(...widgets) : widgets[0];
|
|
113
|
+
this.rows.push(w);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Add a variable to the dashboard.
|
|
117
|
+
*
|
|
118
|
+
* @see https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_dashboard_variables.html
|
|
119
|
+
*/
|
|
120
|
+
addVariable(variable) {
|
|
121
|
+
this.variables.push(variable);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
exports.Dashboard = Dashboard;
|
|
125
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
126
|
+
Dashboard[_a] = { fqn: "terraconstructs.aws.cloudwatch.Dashboard", version: "0.0.8" };
|
|
127
|
+
function allWidgetsDeep(ws) {
|
|
128
|
+
const ret = new Array();
|
|
129
|
+
ws.forEach(recurse);
|
|
130
|
+
return ret;
|
|
131
|
+
function recurse(w) {
|
|
132
|
+
ret.push(w);
|
|
133
|
+
if (hasSubWidgets(w)) {
|
|
134
|
+
w.widgets.forEach(recurse);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
function hasSubWidgets(w) {
|
|
139
|
+
return "widgets" in w;
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFzaGJvYXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9jbG91ZHdhdGNoL2Rhc2hib2FyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG9HQUFvRztBQUVwRyxzREFBMEQ7QUFDMUQsaUNBQWlEO0FBRWpELG9EQUF1RTtBQUN2RSw0Q0FBd0M7QUFDeEMscUNBQXVDO0FBS3ZDOztHQUVHO0FBQ0gsSUFBWSxjQVVYO0FBVkQsV0FBWSxjQUFjO0lBQ3hCOztPQUVHO0lBQ0gsK0JBQWEsQ0FBQTtJQUViOztPQUVHO0lBQ0gscUNBQW1CLENBQUE7QUFDckIsQ0FBQyxFQVZXLGNBQWMsOEJBQWQsY0FBYyxRQVV6QjtBQTBGRDs7R0FFRztBQUNILE1BQWEsU0FBVSxTQUFRLGdDQUFnQjtJQWdCN0MsSUFBVyxnQkFBZ0I7UUFDekIsT0FBTztZQUNMLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYTtZQUNqQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDaEMsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDL0IsQ0FBQztJQU1ELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsUUFBd0IsRUFBRTtRQUNsRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUxULFNBQUksR0FBYyxFQUFFLENBQUM7UUFFckIsY0FBUyxHQUFnQixFQUFFLENBQUM7UUFJM0MsTUFBTSxhQUFhLEdBQ2pCLEtBQUssQ0FBQyxhQUFhO1lBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFO2dCQUNsQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3JCLHdCQUF3QixFQUFFLElBQUk7YUFDL0IsQ0FBQyxDQUFDO1FBRUwsSUFDRSxhQUFhO1lBQ2IsQ0FBQyxhQUFLLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQztZQUNsQyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQ2hDLENBQUM7WUFDRCxNQUFNLElBQUksS0FBSyxDQUNiO2dCQUNFLGFBQWEsYUFBYSx1REFBdUQ7Z0JBQ2pGLGlFQUFpRTthQUNsRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FDWixDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLGVBQWUsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNyRSxNQUFNLElBQUksS0FBSyxDQUNiLGlFQUFpRSxDQUNsRSxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksS0FBSyxDQUFDLEdBQUcsS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN6RCxNQUFNLElBQUksS0FBSyxDQUNiLDBFQUEwRSxDQUMzRSxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxrQ0FBbUIsQ0FBQyxtQkFBbUIsQ0FDekQsSUFBSSxFQUNKLFVBQVUsRUFDVjtZQUNFLGFBQWE7WUFDYixhQUFhLEVBQUUsWUFBSSxDQUFDLFdBQVcsQ0FBQztnQkFDOUIsT0FBTyxFQUFFLEdBQUcsRUFBRTtvQkFDWixNQUFNLE1BQU0sR0FBRyxJQUFJLGVBQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDeEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7b0JBQ3RCLE9BQU8sb0JBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDO3dCQUNoRCxLQUFLLEVBQ0gsS0FBSyxDQUFDLGVBQWUsS0FBSyxTQUFTOzRCQUNqQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsZUFBZSxFQUFFLFdBQVcsRUFBRSxFQUFFOzRCQUM1QyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUs7d0JBQ2pCLEdBQUcsRUFBRSxLQUFLLENBQUMsZUFBZSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRzt3QkFDaEUsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjO3dCQUNwQyxPQUFPLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRTt3QkFDeEIsU0FBUyxFQUNQLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUM7NEJBQ3ZCLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDOzRCQUNyRCxDQUFDLENBQUMsU0FBUztxQkFDaEIsQ0FBQyxDQUFDO2dCQUNMLENBQUM7YUFDRixDQUFDO1NBQ0gsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQztRQUVqRCxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO1FBRUgsQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRTFFLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7SUFDakQsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0ksVUFBVSxDQUFDLEdBQUcsT0FBa0I7UUFDckMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FDN0MsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDYixPQUFPO2dCQUNMLEdBQUcsSUFBSTtnQkFDUCxHQUFHLElBQUksQ0FBQyxVQUFVO2FBQ25CLENBQUM7UUFDSixDQUFDLEVBQ0QsRUFBOEIsQ0FDL0IsQ0FBQztRQUNGLEtBQUssTUFBTSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzFELG1DQUFtQztZQUNuQyxtQkFBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUVELE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFlBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxXQUFXLENBQUMsUUFBbUI7UUFDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDaEMsQ0FBQzs7QUE3SUgsOEJBOElDOzs7QUFFRCxTQUFTLGNBQWMsQ0FBQyxFQUFhO0lBQ25DLE1BQU0sR0FBRyxHQUFHLElBQUksS0FBSyxFQUFXLENBQUM7SUFDakMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQixPQUFPLEdBQUcsQ0FBQztJQUVYLFNBQVMsT0FBTyxDQUFDLENBQVU7UUFDekIsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNaLElBQUksYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDckIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsQ0FBVTtJQUMvQixPQUFPLFNBQVMsSUFBSSxDQUFDLENBQUM7QUFDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE3MC4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoL2xpYi9kYXNoYm9hcmQudHNcblxuaW1wb3J0IHsgY2xvdWR3YXRjaERhc2hib2FyZCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBMYXp5LCBUb2tlbiwgQW5ub3RhdGlvbnMgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBd3NDb25zdHJ1Y3RCYXNlLCBBd3NDb25zdHJ1Y3RQcm9wcyB9IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBBd3NTdGFjayB9IGZyb20gXCIuLi9hd3Mtc3RhY2tcIjtcbmltcG9ydCB7IENvbHVtbiwgUm93IH0gZnJvbSBcIi4vbGF5b3V0XCI7XG5pbXBvcnQgeyBJVmFyaWFibGUgfSBmcm9tIFwiLi92YXJpYWJsZVwiO1xuaW1wb3J0IHsgSVdpZGdldCB9IGZyb20gXCIuL3dpZGdldFwiO1xuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiLi4vLi4vZHVyYXRpb25cIjtcblxuLyoqXG4gKiBTcGVjaWZ5IHRoZSBwZXJpb2QgZm9yIGdyYXBocyB3aGVuIHRoZSBDbG91ZFdhdGNoIGRhc2hib2FyZCBsb2Fkc1xuICovXG5leHBvcnQgZW51bSBQZXJpb2RPdmVycmlkZSB7XG4gIC8qKlxuICAgKiBQZXJpb2Qgb2YgYWxsIGdyYXBocyBvbiB0aGUgZGFzaGJvYXJkIGF1dG9tYXRpY2FsbHkgYWRhcHQgdG8gdGhlIHRpbWUgcmFuZ2Ugb2YgdGhlIGRhc2hib2FyZC5cbiAgICovXG4gIEFVVE8gPSBcImF1dG9cIixcblxuICAvKipcbiAgICogUGVyaW9kIHNldCBmb3IgZWFjaCBncmFwaCB3aWxsIGJlIHVzZWRcbiAgICovXG4gIElOSEVSSVQgPSBcImluaGVyaXRcIixcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBhIENsb3VkV2F0Y2ggRGFzaGJvYXJkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGFzaGJvYXJkUHJvcHMgZXh0ZW5kcyBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBkYXNoYm9hcmQuXG4gICAqXG4gICAqIElmIHNldCwgbXVzdCBvbmx5IGNvbnRhaW4gYWxwaGFudW1lcmljcywgZGFzaCAoLSkgYW5kIHVuZGVyc2NvcmUgKF8pXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZGFzaGJvYXJkTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSW50ZXJ2YWwgZHVyYXRpb24gZm9yIG1ldHJpY3MuXG4gICAqIFlvdSBjYW4gc3BlY2lmeSBkZWZhdWx0SW50ZXJ2YWwgd2l0aCB0aGUgcmVsYXRpdmUgdGltZShlZy4gY2RrLkR1cmF0aW9uLmRheXMoNykpLlxuICAgKlxuICAgKiBCb3RoIHByb3BlcnRpZXMgYGRlZmF1bHRJbnRlcnZhbGAgYW5kIGBzdGFydGAgY2Fubm90IGJlIHNldCBhdCBvbmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBXaGVuIHRoZSBkYXNoYm9hcmQgbG9hZHMsIHRoZSBkZWZhdWx0SW50ZXJ2YWwgdGltZSB3aWxsIGJlIHRoZSBkZWZhdWx0IHRpbWUgcmFuZ2UuXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0SW50ZXJ2YWw/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogVGhlIHN0YXJ0IG9mIHRoZSB0aW1lIHJhbmdlIHRvIHVzZSBmb3IgZWFjaCB3aWRnZXQgb24gdGhlIGRhc2hib2FyZC5cbiAgICogWW91IGNhbiBzcGVjaWZ5IHN0YXJ0IHdpdGhvdXQgc3BlY2lmeWluZyBlbmQgdG8gc3BlY2lmeSBhIHJlbGF0aXZlIHRpbWUgcmFuZ2UgdGhhdCBlbmRzIHdpdGggdGhlIGN1cnJlbnQgdGltZS5cbiAgICogSW4gdGhpcyBjYXNlLCB0aGUgdmFsdWUgb2Ygc3RhcnQgbXVzdCBiZWdpbiB3aXRoIC1QLCBhbmQgeW91IGNhbiB1c2UgTSwgSCwgRCwgVyBhbmQgTSBhcyBhYmJyZXZpYXRpb25zIGZvclxuICAgKiBtaW51dGVzLCBob3VycywgZGF5cywgd2Vla3MgYW5kIG1vbnRocy4gRm9yIGV4YW1wbGUsIC1QVDhIIHNob3dzIHRoZSBsYXN0IDggaG91cnMgYW5kIC1QM00gc2hvd3MgdGhlIGxhc3QgdGhyZWUgbW9udGhzLlxuICAgKiBZb3UgY2FuIGFsc28gdXNlIHN0YXJ0IGFsb25nIHdpdGggYW4gZW5kIGZpZWxkLCB0byBzcGVjaWZ5IGFuIGFic29sdXRlIHRpbWUgcmFuZ2UuXG4gICAqIFdoZW4gc3BlY2lmeWluZyBhbiBhYnNvbHV0ZSB0aW1lIHJhbmdlLCB1c2UgdGhlIElTTyA4NjAxIGZvcm1hdC4gRm9yIGV4YW1wbGUsIDIwMTgtMTItMTdUMDY6MDA6MDAuMDAwWi5cbiAgICpcbiAgICogQm90aCBwcm9wZXJ0aWVzIGBkZWZhdWx0SW50ZXJ2YWxgIGFuZCBgc3RhcnRgIGNhbm5vdCBiZSBzZXQgYXQgb25jZS5cbiAgICpcbiAgICogQGRlZmF1bHQgV2hlbiB0aGUgZGFzaGJvYXJkIGxvYWRzLCB0aGUgc3RhcnQgdGltZSB3aWxsIGJlIHRoZSBkZWZhdWx0IHRpbWUgcmFuZ2UuXG4gICAqL1xuICByZWFkb25seSBzdGFydD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGVuZCBvZiB0aGUgdGltZSByYW5nZSB0byB1c2UgZm9yIGVhY2ggd2lkZ2V0IG9uIHRoZSBkYXNoYm9hcmQgd2hlbiB0aGUgZGFzaGJvYXJkIGxvYWRzLlxuICAgKiBJZiB5b3Ugc3BlY2lmeSBhIHZhbHVlIGZvciBlbmQsIHlvdSBtdXN0IGFsc28gc3BlY2lmeSBhIHZhbHVlIGZvciBzdGFydC5cbiAgICogU3BlY2lmeSBhbiBhYnNvbHV0ZSB0aW1lIGluIHRoZSBJU08gODYwMSBmb3JtYXQuIEZvciBleGFtcGxlLCAyMDE4LTEyLTE3VDA2OjAwOjAwLjAwMFouXG4gICAqXG4gICAqIEBkZWZhdWx0IFdoZW4gdGhlIGRhc2hib2FyZCBsb2FkcywgdGhlIGVuZCBkYXRlIHdpbGwgYmUgdGhlIGN1cnJlbnQgdGltZS5cbiAgICovXG4gIHJlYWRvbmx5IGVuZD86IHN0cmluZztcblxuICAvKipcbiAgICogVXNlIHRoaXMgZmllbGQgdG8gc3BlY2lmeSB0aGUgcGVyaW9kIGZvciB0aGUgZ3JhcGhzIHdoZW4gdGhlIGRhc2hib2FyZCBsb2Fkcy5cbiAgICogU3BlY2lmeWluZyBgQXV0b2AgY2F1c2VzIHRoZSBwZXJpb2Qgb2YgYWxsIGdyYXBocyBvbiB0aGUgZGFzaGJvYXJkIHRvIGF1dG9tYXRpY2FsbHkgYWRhcHQgdG8gdGhlIHRpbWUgcmFuZ2Ugb2YgdGhlIGRhc2hib2FyZC5cbiAgICogU3BlY2lmeWluZyBgSW5oZXJpdGAgZW5zdXJlcyB0aGF0IHRoZSBwZXJpb2Qgc2V0IGZvciBlYWNoIGdyYXBoIGlzIGFsd2F5cyBvYmV5ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IEF1dG9cbiAgICovXG4gIHJlYWRvbmx5IHBlcmlvZE92ZXJyaWRlPzogUGVyaW9kT3ZlcnJpZGU7XG5cbiAgLyoqXG4gICAqIEluaXRpYWwgc2V0IG9mIHdpZGdldHMgb24gdGhlIGRhc2hib2FyZFxuICAgKlxuICAgKiBPbmUgYXJyYXkgcmVwcmVzZW50cyBhIHJvdyBvZiB3aWRnZXRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHdpZGdldHNcbiAgICovXG4gIHJlYWRvbmx5IHdpZGdldHM/OiBJV2lkZ2V0W11bXTtcblxuICAvKipcbiAgICogQSBsaXN0IG9mIGRhc2hib2FyZCB2YXJpYWJsZXNcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvbW9uaXRvcmluZy9jbG91ZHdhdGNoX2Rhc2hib2FyZF92YXJpYWJsZXMuaHRtbCNjbG91ZHdhdGNoX2Rhc2hib2FyZF92YXJpYWJsZXNfdHlwZXNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyB2YXJpYWJsZXNcbiAgICovXG4gIHJlYWRvbmx5IHZhcmlhYmxlcz86IElWYXJpYWJsZVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERhc2hib2FyZE91dHB1dHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhpcyBkYXNoYm9hcmRcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZGFzaGJvYXJkTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBUk4gb2YgdGhpcyBkYXNoYm9hcmRcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgZGFzaGJvYXJkQXJuOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBDbG91ZFdhdGNoIGRhc2hib2FyZFxuICovXG5leHBvcnQgY2xhc3MgRGFzaGJvYXJkIGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSB7XG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZTogY2xvdWR3YXRjaERhc2hib2FyZC5DbG91ZHdhdGNoRGFzaGJvYXJkO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhpcyBkYXNoYm9hcmRcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGRhc2hib2FyZE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQVJOIG9mIHRoaXMgZGFzaGJvYXJkXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBkYXNoYm9hcmRBcm46IHN0cmluZztcblxuICBwdWJsaWMgZ2V0IGRhc2hib2FyZE91dHB1dHMoKTogRGFzaGJvYXJkT3V0cHV0cyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRhc2hib2FyZE5hbWU6IHRoaXMuZGFzaGJvYXJkTmFtZSxcbiAgICAgIGRhc2hib2FyZEFybjogdGhpcy5kYXNoYm9hcmRBcm4sXG4gICAgfTtcbiAgfVxuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZGFzaGJvYXJkT3V0cHV0cztcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgcm93czogSVdpZGdldFtdID0gW107XG5cbiAgcHJpdmF0ZSByZWFkb25seSB2YXJpYWJsZXM6IElWYXJpYWJsZVtdID0gW107XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERhc2hib2FyZFByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcbiAgICBjb25zdCBkYXNoYm9hcmROYW1lID1cbiAgICAgIHByb3BzLmRhc2hib2FyZE5hbWUgfHxcbiAgICAgIHRoaXMuc3RhY2sudW5pcXVlUmVzb3VyY2VOYW1lKHRoaXMsIHtcbiAgICAgICAgcHJlZml4OiB0aGlzLmdyaWRVVUlELFxuICAgICAgICBhbGxvd2VkU3BlY2lhbENoYXJhY3RlcnM6IFwiLV9cIixcbiAgICAgIH0pO1xuXG4gICAgaWYgKFxuICAgICAgZGFzaGJvYXJkTmFtZSAmJlxuICAgICAgIVRva2VuLmlzVW5yZXNvbHZlZChkYXNoYm9hcmROYW1lKSAmJlxuICAgICAgIWRhc2hib2FyZE5hbWUubWF0Y2goL15bXFx3LV0rJC8pXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFtcbiAgICAgICAgICBgVGhlIHZhbHVlICR7ZGFzaGJvYXJkTmFtZX0gZm9yIGZpZWxkIGRhc2hib2FyZE5hbWUgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzLmAsXG4gICAgICAgICAgXCJJdCBjYW4gb25seSBjb250YWluIGFscGhhbnVtZXJpY3MsIGRhc2ggKC0pIGFuZCB1bmRlcnNjb3JlIChfKS5cIixcbiAgICAgICAgXS5qb2luKFwiIFwiKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnN0YXJ0ICE9PSB1bmRlZmluZWQgJiYgcHJvcHMuZGVmYXVsdEludGVydmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJib3RoIHByb3BlcnRpZXMgZGVmYXVsdEludGVydmFsIGFuZCBzdGFydCBjYW5ub3QgYmUgc2V0IGF0IG9uY2VcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmVuZCAhPT0gdW5kZWZpbmVkICYmIHByb3BzLnN0YXJ0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJJZiB5b3Ugc3BlY2lmeSBhIHZhbHVlIGZvciBlbmQsIHlvdSBtdXN0IGFsc28gc3BlY2lmeSBhIHZhbHVlIGZvciBzdGFydC5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBjbG91ZHdhdGNoRGFzaGJvYXJkLkNsb3Vkd2F0Y2hEYXNoYm9hcmQoXG4gICAgICB0aGlzLFxuICAgICAgXCJSZXNvdXJjZVwiLFxuICAgICAge1xuICAgICAgICBkYXNoYm9hcmROYW1lLFxuICAgICAgICBkYXNoYm9hcmRCb2R5OiBMYXp5LnN0cmluZ1ZhbHVlKHtcbiAgICAgICAgICBwcm9kdWNlOiAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb2x1bW4gPSBuZXcgQ29sdW1uKC4uLnRoaXMucm93cyk7XG4gICAgICAgICAgICBjb2x1bW4ucG9zaXRpb24oMCwgMCk7XG4gICAgICAgICAgICByZXR1cm4gQXdzU3RhY2sub2ZBd3NDb25zdHJ1Y3QodGhpcykudG9Kc29uU3RyaW5nKHtcbiAgICAgICAgICAgICAgc3RhcnQ6XG4gICAgICAgICAgICAgICAgcHJvcHMuZGVmYXVsdEludGVydmFsICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgID8gYC0ke3Byb3BzLmRlZmF1bHRJbnRlcnZhbD8udG9Jc29TdHJpbmcoKX1gXG4gICAgICAgICAgICAgICAgICA6IHByb3BzLnN0YXJ0LFxuICAgICAgICAgICAgICBlbmQ6IHByb3BzLmRlZmF1bHRJbnRlcnZhbCAhPT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogcHJvcHMuZW5kLFxuICAgICAgICAgICAgICBwZXJpb2RPdmVycmlkZTogcHJvcHMucGVyaW9kT3ZlcnJpZGUsXG4gICAgICAgICAgICAgIHdpZGdldHM6IGNvbHVtbi50b0pzb24oKSxcbiAgICAgICAgICAgICAgdmFyaWFibGVzOlxuICAgICAgICAgICAgICAgIHRoaXMudmFyaWFibGVzLmxlbmd0aCA+IDBcbiAgICAgICAgICAgICAgICAgID8gdGhpcy52YXJpYWJsZXMubWFwKCh2YXJpYWJsZSkgPT4gdmFyaWFibGUudG9Kc29uKCkpXG4gICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgdGhpcy5kYXNoYm9hcmROYW1lID0gdGhpcy5yZXNvdXJjZS5kYXNoYm9hcmROYW1lO1xuXG4gICAgKHByb3BzLndpZGdldHMgfHwgW10pLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgdGhpcy5hZGRXaWRnZXRzKC4uLnJvdyk7XG4gICAgfSk7XG5cbiAgICAocHJvcHMudmFyaWFibGVzIHx8IFtdKS5mb3JFYWNoKCh2YXJpYWJsZSkgPT4gdGhpcy5hZGRWYXJpYWJsZSh2YXJpYWJsZSkpO1xuXG4gICAgdGhpcy5kYXNoYm9hcmRBcm4gPSB0aGlzLnJlc291cmNlLmRhc2hib2FyZEFybjtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSB3aWRnZXQgdG8gdGhlIGRhc2hib2FyZC5cbiAgICpcbiAgICogV2lkZ2V0cyBnaXZlbiBpbiBtdWx0aXBsZSBjYWxscyB0byBhZGQoKSB3aWxsIGJlIGxhaWQgb3V0IHN0YWNrZWQgb25cbiAgICogdG9wIG9mIGVhY2ggb3RoZXIuXG4gICAqXG4gICAqIE11bHRpcGxlIHdpZGdldHMgYWRkZWQgaW4gdGhlIHNhbWUgY2FsbCB0byBhZGQoKSB3aWxsIGJlIGxhaWQgb3V0IG5leHRcbiAgICogdG8gZWFjaCBvdGhlci5cbiAgICovXG4gIHB1YmxpYyBhZGRXaWRnZXRzKC4uLndpZGdldHM6IElXaWRnZXRbXSkge1xuICAgIGlmICh3aWRnZXRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHdhcm5pbmdzID0gYWxsV2lkZ2V0c0RlZXAod2lkZ2V0cykucmVkdWNlKFxuICAgICAgKHByZXYsIGN1cnIpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5wcmV2LFxuICAgICAgICAgIC4uLmN1cnIud2FybmluZ3NWMixcbiAgICAgICAgfTtcbiAgICAgIH0sXG4gICAgICB7fSBhcyB7IFtpZDogc3RyaW5nXTogc3RyaW5nIH0sXG4gICAgKTtcbiAgICBmb3IgKGNvbnN0IFtfLCBtZXNzYWdlXSBvZiBPYmplY3QuZW50cmllcyh3YXJuaW5ncyA/PyB7fSkpIHtcbiAgICAgIC8vIFRPRE86IHYyIHdhcm5pbmcgd2l0aCBtZXNzYWdlIGlkXG4gICAgICBBbm5vdGF0aW9ucy5vZih0aGlzKS5hZGRXYXJuaW5nKG1lc3NhZ2UpO1xuICAgIH1cblxuICAgIGNvbnN0IHcgPSB3aWRnZXRzLmxlbmd0aCA+IDEgPyBuZXcgUm93KC4uLndpZGdldHMpIDogd2lkZ2V0c1swXTtcbiAgICB0aGlzLnJvd3MucHVzaCh3KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSB2YXJpYWJsZSB0byB0aGUgZGFzaGJvYXJkLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9tb25pdG9yaW5nL2Nsb3Vkd2F0Y2hfZGFzaGJvYXJkX3ZhcmlhYmxlcy5odG1sXG4gICAqL1xuICBwdWJsaWMgYWRkVmFyaWFibGUodmFyaWFibGU6IElWYXJpYWJsZSkge1xuICAgIHRoaXMudmFyaWFibGVzLnB1c2godmFyaWFibGUpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFsbFdpZGdldHNEZWVwKHdzOiBJV2lkZ2V0W10pIHtcbiAgY29uc3QgcmV0ID0gbmV3IEFycmF5PElXaWRnZXQ+KCk7XG4gIHdzLmZvckVhY2gocmVjdXJzZSk7XG4gIHJldHVybiByZXQ7XG5cbiAgZnVuY3Rpb24gcmVjdXJzZSh3OiBJV2lkZ2V0KSB7XG4gICAgcmV0LnB1c2godyk7XG4gICAgaWYgKGhhc1N1YldpZGdldHModykpIHtcbiAgICAgIHcud2lkZ2V0cy5mb3JFYWNoKHJlY3Vyc2UpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBoYXNTdWJXaWRnZXRzKHc6IElXaWRnZXQpOiB3IGlzIElXaWRnZXQgJiB7IHdpZGdldHM6IElXaWRnZXRbXSB9IHtcbiAgcmV0dXJuIFwid2lkZ2V0c1wiIGluIHc7XG59XG4iXX0=
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { cloudwatchLogDataProtectionPolicy } from "@cdktf/provider-aws";
|
|
2
|
+
import { ILogGroup } from "./log-group";
|
|
3
|
+
import { IBucket } from "../storage";
|
|
4
|
+
/**
|
|
5
|
+
* Creates a data protection policy for CloudWatch Logs log groups.
|
|
6
|
+
*/
|
|
7
|
+
export declare class DataProtectionPolicy {
|
|
8
|
+
private readonly dataProtectionPolicyProps;
|
|
9
|
+
constructor(props: DataProtectionPolicyProps);
|
|
10
|
+
/**
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
_bind(_scope: ILogGroup): cloudwatchLogDataProtectionPolicy.CloudwatchLogDataProtectionPolicy;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Properties for creating a data protection policy
|
|
17
|
+
*/
|
|
18
|
+
export interface DataProtectionPolicyProps {
|
|
19
|
+
/**
|
|
20
|
+
* Name of the data protection policy
|
|
21
|
+
*
|
|
22
|
+
* @default - 'data-protection-policy-cdk'
|
|
23
|
+
*/
|
|
24
|
+
readonly name?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Description of the data protection policy
|
|
27
|
+
*
|
|
28
|
+
* @default - 'cdk generated data protection policy'
|
|
29
|
+
*/
|
|
30
|
+
readonly description?: string;
|
|
31
|
+
/**
|
|
32
|
+
* List of data protection identifiers.
|
|
33
|
+
*
|
|
34
|
+
* Managed data identifiers must be in the following list: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL-managed-data-identifiers.html
|
|
35
|
+
* Custom data identifiers must have a valid regex defined: https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL-custom-data-identifiers.html#custom-data-identifiers-constraints
|
|
36
|
+
*/
|
|
37
|
+
readonly identifiers: DataIdentifier[];
|
|
38
|
+
/**
|
|
39
|
+
* CloudWatch Logs log group to send audit findings to. The log group must already exist prior to creating the data protection policy.
|
|
40
|
+
*
|
|
41
|
+
* @default - no CloudWatch Logs audit destination
|
|
42
|
+
*/
|
|
43
|
+
readonly logGroupAuditDestination?: ILogGroup;
|
|
44
|
+
/**
|
|
45
|
+
* S3 bucket to send audit findings to. The bucket must already exist.
|
|
46
|
+
*
|
|
47
|
+
* @default - no S3 bucket audit destination
|
|
48
|
+
*/
|
|
49
|
+
readonly s3BucketAuditDestination?: IBucket;
|
|
50
|
+
/**
|
|
51
|
+
* Amazon Kinesis Data Firehose delivery stream to send audit findings to. The delivery stream must already exist.
|
|
52
|
+
*
|
|
53
|
+
* @default - no firehose delivery stream audit destination
|
|
54
|
+
*/
|
|
55
|
+
readonly deliveryStreamNameAuditDestination?: string;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* A data protection identifier. If an identifier is supported but not in this class, it can be passed in the constructor instead.
|
|
59
|
+
*/
|
|
60
|
+
export declare class DataIdentifier {
|
|
61
|
+
readonly name: string;
|
|
62
|
+
static readonly ADDRESS: DataIdentifier;
|
|
63
|
+
static readonly AWSSECRETKEY: DataIdentifier;
|
|
64
|
+
static readonly BANKACCOUNTNUMBER_DE: DataIdentifier;
|
|
65
|
+
static readonly BANKACCOUNTNUMBER_ES: DataIdentifier;
|
|
66
|
+
static readonly BANKACCOUNTNUMBER_FR: DataIdentifier;
|
|
67
|
+
static readonly BANKACCOUNTNUMBER_GB: DataIdentifier;
|
|
68
|
+
static readonly BANKACCOUNTNUMBER_IT: DataIdentifier;
|
|
69
|
+
static readonly BANKACCOUNTNUMBER_US: DataIdentifier;
|
|
70
|
+
static readonly CEPCODE_BR: DataIdentifier;
|
|
71
|
+
static readonly CNPJ_BR: DataIdentifier;
|
|
72
|
+
static readonly CPFCODE_BR: DataIdentifier;
|
|
73
|
+
static readonly CREDITCARDEXPIRATION: DataIdentifier;
|
|
74
|
+
static readonly CREDITCARDNUMBER: DataIdentifier;
|
|
75
|
+
static readonly CREDITCARDSECURITYCODE: DataIdentifier;
|
|
76
|
+
static readonly DRIVERSLICENSE_AT: DataIdentifier;
|
|
77
|
+
static readonly DRIVERSLICENSE_AU: DataIdentifier;
|
|
78
|
+
static readonly DRIVERSLICENSE_BE: DataIdentifier;
|
|
79
|
+
static readonly DRIVERSLICENSE_BG: DataIdentifier;
|
|
80
|
+
static readonly DRIVERSLICENSE_CA: DataIdentifier;
|
|
81
|
+
static readonly DRIVERSLICENSE_CY: DataIdentifier;
|
|
82
|
+
static readonly DRIVERSLICENSE_CZ: DataIdentifier;
|
|
83
|
+
static readonly DRIVERSLICENSE_DE: DataIdentifier;
|
|
84
|
+
static readonly DRIVERSLICENSE_DK: DataIdentifier;
|
|
85
|
+
static readonly DRIVERSLICENSE_EE: DataIdentifier;
|
|
86
|
+
static readonly DRIVERSLICENSE_ES: DataIdentifier;
|
|
87
|
+
static readonly DRIVERSLICENSE_FI: DataIdentifier;
|
|
88
|
+
static readonly DRIVERSLICENSE_FR: DataIdentifier;
|
|
89
|
+
static readonly DRIVERSLICENSE_GB: DataIdentifier;
|
|
90
|
+
static readonly DRIVERSLICENSE_GR: DataIdentifier;
|
|
91
|
+
static readonly DRIVERSLICENSE_HR: DataIdentifier;
|
|
92
|
+
static readonly DRIVERSLICENSE_HU: DataIdentifier;
|
|
93
|
+
static readonly DRIVERSLICENSE_IE: DataIdentifier;
|
|
94
|
+
static readonly DRIVERSLICENSE_IT: DataIdentifier;
|
|
95
|
+
static readonly DRIVERSLICENSE_LT: DataIdentifier;
|
|
96
|
+
static readonly DRIVERSLICENSE_LU: DataIdentifier;
|
|
97
|
+
static readonly DRIVERSLICENSE_LV: DataIdentifier;
|
|
98
|
+
static readonly DRIVERSLICENSE_MT: DataIdentifier;
|
|
99
|
+
static readonly DRIVERSLICENSE_NL: DataIdentifier;
|
|
100
|
+
static readonly DRIVERSLICENSE_PL: DataIdentifier;
|
|
101
|
+
static readonly DRIVERSLICENSE_PT: DataIdentifier;
|
|
102
|
+
static readonly DRIVERSLICENSE_RO: DataIdentifier;
|
|
103
|
+
static readonly DRIVERSLICENSE_SE: DataIdentifier;
|
|
104
|
+
static readonly DRIVERSLICENSE_SI: DataIdentifier;
|
|
105
|
+
static readonly DRIVERSLICENSE_SK: DataIdentifier;
|
|
106
|
+
static readonly DRIVERSLICENSE_US: DataIdentifier;
|
|
107
|
+
static readonly DRUGENFORCEMENTAGENCYNUMBER_US: DataIdentifier;
|
|
108
|
+
static readonly ELECTORALROLLNUMBER_GB: DataIdentifier;
|
|
109
|
+
static readonly EMAILADDRESS: DataIdentifier;
|
|
110
|
+
static readonly HEALTHINSURANCECARDNUMBER_EU: DataIdentifier;
|
|
111
|
+
static readonly HEALTHINSURANCECLAIMNUMBER_US: DataIdentifier;
|
|
112
|
+
static readonly HEALTHINSURANCENUMBER_FR: DataIdentifier;
|
|
113
|
+
static readonly HEALTHCAREPROCEDURECODE_US: DataIdentifier;
|
|
114
|
+
static readonly INDIVIDUALTAXIDENTIFICATIONNUMBER_US: DataIdentifier;
|
|
115
|
+
static readonly INSEECODE_FR: DataIdentifier;
|
|
116
|
+
static readonly IPADDRESS: DataIdentifier;
|
|
117
|
+
static readonly LATLONG: DataIdentifier;
|
|
118
|
+
static readonly MEDICAREBENEFICIARYNUMBER_US: DataIdentifier;
|
|
119
|
+
static readonly NAME: DataIdentifier;
|
|
120
|
+
static readonly NATIONALDRUGCODE_US: DataIdentifier;
|
|
121
|
+
static readonly NATIONALIDENTIFICATIONNUMBER_DE: DataIdentifier;
|
|
122
|
+
static readonly NATIONALIDENTIFICATIONNUMBER_ES: DataIdentifier;
|
|
123
|
+
static readonly NATIONALIDENTIFICATIONNUMBER_IT: DataIdentifier;
|
|
124
|
+
static readonly NATIONALINSURANCENUMBER_GB: DataIdentifier;
|
|
125
|
+
static readonly NATIONALPROVIDERID_US: DataIdentifier;
|
|
126
|
+
static readonly NHSNUMBER_GB: DataIdentifier;
|
|
127
|
+
static readonly NIENUMBER_ES: DataIdentifier;
|
|
128
|
+
static readonly NIFNUMBER_ES: DataIdentifier;
|
|
129
|
+
static readonly OPENSSHPRIVATEKEY: DataIdentifier;
|
|
130
|
+
static readonly PASSPORTNUMBER_CA: DataIdentifier;
|
|
131
|
+
static readonly PASSPORTNUMBER_DE: DataIdentifier;
|
|
132
|
+
static readonly PASSPORTNUMBER_ES: DataIdentifier;
|
|
133
|
+
static readonly PASSPORTNUMBER_FR: DataIdentifier;
|
|
134
|
+
static readonly PASSPORTNUMBER_GB: DataIdentifier;
|
|
135
|
+
static readonly PASSPORTNUMBER_IT: DataIdentifier;
|
|
136
|
+
static readonly PASSPORTNUMBER_US: DataIdentifier;
|
|
137
|
+
static readonly PERMANENTRESIDENCENUMBER_CA: DataIdentifier;
|
|
138
|
+
static readonly PERSONALHEALTHNUMBER_CA: DataIdentifier;
|
|
139
|
+
static readonly PGPPRIVATEKEY: DataIdentifier;
|
|
140
|
+
static readonly PHONENUMBER_BR: DataIdentifier;
|
|
141
|
+
static readonly PHONENUMBER_DE: DataIdentifier;
|
|
142
|
+
static readonly PHONENUMBER_ES: DataIdentifier;
|
|
143
|
+
static readonly PHONENUMBER_FR: DataIdentifier;
|
|
144
|
+
static readonly PHONENUMBER_GB: DataIdentifier;
|
|
145
|
+
static readonly PHONENUMBER_IT: DataIdentifier;
|
|
146
|
+
static readonly PHONENUMBER_US: DataIdentifier;
|
|
147
|
+
static readonly PKCSPRIVATEKEY: DataIdentifier;
|
|
148
|
+
static readonly POSTALCODE_CA: DataIdentifier;
|
|
149
|
+
static readonly PUTTYPRIVATEKEY: DataIdentifier;
|
|
150
|
+
static readonly RGNUMBER_BR: DataIdentifier;
|
|
151
|
+
static readonly SOCIALINSURANCENUMBER_CA: DataIdentifier;
|
|
152
|
+
static readonly SSN_ES: DataIdentifier;
|
|
153
|
+
static readonly SSN_US: DataIdentifier;
|
|
154
|
+
static readonly TAXID_DE: DataIdentifier;
|
|
155
|
+
static readonly TAXID_ES: DataIdentifier;
|
|
156
|
+
static readonly TAXID_FR: DataIdentifier;
|
|
157
|
+
static readonly TAXID_GB: DataIdentifier;
|
|
158
|
+
static readonly VEHICLEIDENTIFICATIONNUMBER: DataIdentifier;
|
|
159
|
+
static readonly ZIPCODE_US: DataIdentifier;
|
|
160
|
+
/**
|
|
161
|
+
* Create a managed data identifier not in the list of static members. This is used to maintain forward compatibility, in case a new managed identifier is supported but not updated in CDK yet.
|
|
162
|
+
* @param name - name of the identifier.
|
|
163
|
+
*/
|
|
164
|
+
constructor(name: string);
|
|
165
|
+
toString(): string;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* A custom data identifier. Include a custom data identifier name and regular expression in the JSON policy used to define the data protection policy.
|
|
169
|
+
*/
|
|
170
|
+
export declare class CustomDataIdentifier extends DataIdentifier {
|
|
171
|
+
readonly name: string;
|
|
172
|
+
readonly regex: string;
|
|
173
|
+
/**
|
|
174
|
+
* Create a custom data identifier.
|
|
175
|
+
* @param name - the name of the custom data identifier. This cannot share the same name as a managed data identifier.
|
|
176
|
+
* @param regex - the regular expression to detect and mask log events for.
|
|
177
|
+
*/
|
|
178
|
+
constructor(name: string, regex: string);
|
|
179
|
+
/**
|
|
180
|
+
* String representation of a CustomDataIdentifier
|
|
181
|
+
* @returns the name and RegEx of the custom data identifier
|
|
182
|
+
*/
|
|
183
|
+
toString(): string;
|
|
184
|
+
}
|