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,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a, _b;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.QueryDefinition = exports.QueryString = 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-logs/lib/query-definition.ts
|
|
7
|
+
const provider_aws_1 = require("@cdktf/provider-aws");
|
|
8
|
+
const aws_construct_1 = require("../aws-construct");
|
|
9
|
+
/**
|
|
10
|
+
* Define a QueryString
|
|
11
|
+
*/
|
|
12
|
+
class QueryString {
|
|
13
|
+
constructor(props = {}) {
|
|
14
|
+
this.fields = props.fields;
|
|
15
|
+
this.stats = props.stats;
|
|
16
|
+
this.sort = props.sort;
|
|
17
|
+
this.limit = props.limit;
|
|
18
|
+
this.display = props.display;
|
|
19
|
+
// Determine parsing by either the parseStatements or parse properties, or default to empty array
|
|
20
|
+
if (props.parseStatements) {
|
|
21
|
+
this.parse = props.parseStatements;
|
|
22
|
+
}
|
|
23
|
+
else if (props.parse) {
|
|
24
|
+
this.parse = [props.parse];
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
this.parse = [];
|
|
28
|
+
}
|
|
29
|
+
// Determine filtering by either the filterStatements or filter properties, or default to empty array
|
|
30
|
+
if (props.filterStatements) {
|
|
31
|
+
this.filter = props.filterStatements;
|
|
32
|
+
}
|
|
33
|
+
else if (props.filter) {
|
|
34
|
+
this.filter = [props.filter];
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
this.filter = [];
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* String representation of this QueryString.
|
|
42
|
+
*/
|
|
43
|
+
toString() {
|
|
44
|
+
return [
|
|
45
|
+
this.buildQueryLine("fields", this.fields?.join(", ")),
|
|
46
|
+
...this.buildQueryLines("parse", this.parse),
|
|
47
|
+
...this.buildQueryLines("filter", this.filter),
|
|
48
|
+
this.buildQueryLine("stats", this.stats),
|
|
49
|
+
this.buildQueryLine("sort", this.sort),
|
|
50
|
+
this.buildQueryLine("limit", this.limit?.toString()),
|
|
51
|
+
this.buildQueryLine("display", this.display),
|
|
52
|
+
]
|
|
53
|
+
.filter((queryLine) => queryLine !== undefined && queryLine.length > 0)
|
|
54
|
+
.join("\n| ");
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Build an array of query lines given a command and statement(s).
|
|
58
|
+
*
|
|
59
|
+
* @param command a query command
|
|
60
|
+
* @param statements one or more query statements for the specified command, or undefined
|
|
61
|
+
* @returns an array of the query string lines generated from the provided command and statements
|
|
62
|
+
*/
|
|
63
|
+
buildQueryLines(command, statements) {
|
|
64
|
+
if (statements === undefined) {
|
|
65
|
+
return [];
|
|
66
|
+
}
|
|
67
|
+
return statements.map((statement) => this.buildQueryLine(command, statement));
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Build a single query line given a command and statement.
|
|
71
|
+
*
|
|
72
|
+
* @param command a query command
|
|
73
|
+
* @param statement a single query statement
|
|
74
|
+
* @returns a single query string line generated from the provided command and statement
|
|
75
|
+
*/
|
|
76
|
+
buildQueryLine(command, statement) {
|
|
77
|
+
return statement ? `${command} ${statement}` : "";
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.QueryString = QueryString;
|
|
81
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
82
|
+
QueryString[_a] = { fqn: "terraconstructs.aws.cloudwatch.QueryString", version: "0.0.8" };
|
|
83
|
+
/**
|
|
84
|
+
* Define a query definition for CloudWatch Logs Insights
|
|
85
|
+
*/
|
|
86
|
+
class QueryDefinition extends aws_construct_1.AwsConstructBase {
|
|
87
|
+
get queryDefinitionOutputs() {
|
|
88
|
+
return {
|
|
89
|
+
queryDefinitionId: this.queryDefinitionId,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
get outputs() {
|
|
93
|
+
return this.queryDefinitionOutputs;
|
|
94
|
+
}
|
|
95
|
+
constructor(scope, id, props) {
|
|
96
|
+
super(scope, id, props);
|
|
97
|
+
const name = props.queryDefinitionName ||
|
|
98
|
+
this.stack.uniqueResourceName(this, {
|
|
99
|
+
prefix: this.gridUUID,
|
|
100
|
+
});
|
|
101
|
+
this.resource = new provider_aws_1.cloudwatchQueryDefinition.CloudwatchQueryDefinition(this, "Resource", {
|
|
102
|
+
name,
|
|
103
|
+
queryString: props.queryString.toString(),
|
|
104
|
+
logGroupNames: typeof props.logGroups === "undefined"
|
|
105
|
+
? []
|
|
106
|
+
: props.logGroups.flatMap((logGroup) => logGroup.logGroupName),
|
|
107
|
+
});
|
|
108
|
+
this.queryDefinitionId = this.resource.queryDefinitionId;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
exports.QueryDefinition = QueryDefinition;
|
|
112
|
+
_b = JSII_RTTI_SYMBOL_1;
|
|
113
|
+
QueryDefinition[_b] = { fqn: "terraconstructs.aws.cloudwatch.QueryDefinition", version: "0.0.8" };
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY2xvdWR3YXRjaC9xdWVyeS1kZWZpbml0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscUdBQXFHO0FBRXJHLHNEQUFnRTtBQUVoRSxvREFBdUU7QUFnRnZFOztHQUVHO0FBQ0gsTUFBYSxXQUFXO0lBU3RCLFlBQVksUUFBMEIsRUFBRTtRQUN0QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1FBRTdCLGlHQUFpRztRQUNqRyxJQUFJLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUM7UUFDckMsQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNsQixDQUFDO1FBRUQscUdBQXFHO1FBQ3JHLElBQUksS0FBSyxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsZ0JBQWdCLENBQUM7UUFDdkMsQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0IsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUTtRQUNiLE9BQU87WUFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0RCxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDNUMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQzlDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDeEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN0QyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQ3BELElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUM7U0FDN0M7YUFDRSxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsS0FBSyxTQUFTLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7YUFDdEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxlQUFlLENBQUMsT0FBZSxFQUFFLFVBQXFCO1FBQzVELElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzdCLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQWlCLEVBQVUsRUFBRSxDQUNsRCxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsQ0FDeEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxjQUFjLENBQUMsT0FBZSxFQUFFLFNBQWtCO1FBQ3hELE9BQU8sU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sSUFBSSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3BELENBQUM7O0FBOUVILGtDQStFQzs7O0FBbUNEOztHQUVHO0FBQ0gsTUFBYSxlQUFnQixTQUFRLGdDQUFnQjtJQU9uRCxJQUFXLHNCQUFzQjtRQUMvQixPQUFPO1lBQ0wsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtTQUMxQyxDQUFDO0lBQ0osQ0FBQztJQUNELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztJQUNyQyxDQUFDO0lBSUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEyQjtRQUNuRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4QixNQUFNLElBQUksR0FDUixLQUFLLENBQUMsbUJBQW1CO1lBQ3pCLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFO2dCQUNsQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVE7YUFDdEIsQ0FBQyxDQUFDO1FBRUwsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHdDQUF5QixDQUFDLHlCQUF5QixDQUNyRSxJQUFJLEVBQ0osVUFBVSxFQUNWO1lBQ0UsSUFBSTtZQUNKLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRTtZQUN6QyxhQUFhLEVBQ1gsT0FBTyxLQUFLLENBQUMsU0FBUyxLQUFLLFdBQVc7Z0JBQ3BDLENBQUMsQ0FBQyxFQUFFO2dCQUNKLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztTQUNuRSxDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztJQUMzRCxDQUFDOztBQXhDSCwwQ0F5Q0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvYmxvYi92Mi4xNzAuMC9wYWNrYWdlcy9hd3MtY2RrLWxpYi9hd3MtbG9ncy9saWIvcXVlcnktZGVmaW5pdGlvbi50c1xuXG5pbXBvcnQgeyBjbG91ZHdhdGNoUXVlcnlEZWZpbml0aW9uIH0gZnJvbSBcIkBjZGt0Zi9wcm92aWRlci1hd3NcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBd3NDb25zdHJ1Y3RCYXNlLCBBd3NDb25zdHJ1Y3RQcm9wcyB9IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5pbXBvcnQgeyBJTG9nR3JvdXAgfSBmcm9tIFwiLi9sb2ctZ3JvdXBcIjtcbi8qKlxuICogUHJvcGVydGllcyBmb3IgYSBRdWVyeVN0cmluZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5U3RyaW5nUHJvcHMge1xuICAvKipcbiAgICogUmV0cmlldmVzIHRoZSBzcGVjaWZpZWQgZmllbGRzIGZyb20gbG9nIGV2ZW50cyBmb3IgZGlzcGxheS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBmaWVsZHMgaW4gUXVlcnlTdHJpbmdcbiAgICovXG4gIHJlYWRvbmx5IGZpZWxkcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBBIHNpbmdsZSBzdGF0ZW1lbnQgZm9yIHBhcnNpbmcgZGF0YSBmcm9tIGEgbG9nIGZpZWxkIGFuZCBjcmVhdGluZyBlcGhlbWVyYWwgZmllbGRzIHRoYXQgY2FuXG4gICAqIGJlIHByb2Nlc3NlZCBmdXJ0aGVyIGluIHRoZSBxdWVyeS5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBwYXJzZVN0YXRlbWVudHNgIGluc3RlYWRcbiAgICogQGRlZmF1bHQgLSBubyBwYXJzZSBpbiBRdWVyeVN0cmluZ1xuICAgKi9cbiAgcmVhZG9ubHkgcGFyc2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIG9uZSBvciBtb3JlIHN0YXRlbWVudHMgZm9yIHBhcnNpbmcgZGF0YSBmcm9tIGEgbG9nIGZpZWxkIGFuZCBjcmVhdGluZyBlcGhlbWVyYWxcbiAgICogZmllbGRzIHRoYXQgY2FuIGJlIHByb2Nlc3NlZCBmdXJ0aGVyIGluIHRoZSBxdWVyeS4gRWFjaCBwcm92aWRlZCBzdGF0ZW1lbnQgZ2VuZXJhdGVzIGEgc2VwYXJhdGVcbiAgICogcGFyc2UgbGluZSBpbiB0aGUgcXVlcnkgc3RyaW5nLlxuICAgKlxuICAgKiBOb3RlOiBJZiBwcm92aWRlZCwgdGhpcyBwcm9wZXJ0eSBvdmVycmlkZXMgYW55IHZhbHVlIHByb3ZpZGVkIGZvciB0aGUgYHBhcnNlYCBwcm9wZXJ0eS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBwYXJzZSBpbiBRdWVyeVN0cmluZ1xuICAgKi9cbiAgcmVhZG9ubHkgcGFyc2VTdGF0ZW1lbnRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEEgc2luZ2xlIHN0YXRlbWVudCBmb3IgZmlsdGVyaW5nIHRoZSByZXN1bHRzIG9mIGEgcXVlcnkgYmFzZWQgb24gYSBib29sZWFuIGV4cHJlc3Npb24uXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgZmlsdGVyU3RhdGVtZW50c2AgaW5zdGVhZFxuICAgKiBAZGVmYXVsdCAtIG5vIGZpbHRlciBpbiBRdWVyeVN0cmluZ1xuICAgKi9cbiAgcmVhZG9ubHkgZmlsdGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBvbmUgb3IgbW9yZSBzdGF0ZW1lbnRzIGZvciBmaWx0ZXJpbmcgdGhlIHJlc3VsdHMgb2YgYSBxdWVyeSBiYXNlZCBvbiBhIGJvb2xlYW5cbiAgICogZXhwcmVzc2lvbi4gRWFjaCBwcm92aWRlZCBzdGF0ZW1lbnQgZ2VuZXJhdGVzIGEgc2VwYXJhdGUgZmlsdGVyIGxpbmUgaW4gdGhlIHF1ZXJ5IHN0cmluZy5cbiAgICpcbiAgICogTm90ZTogSWYgcHJvdmlkZWQsIHRoaXMgcHJvcGVydHkgb3ZlcnJpZGVzIGFueSB2YWx1ZSBwcm92aWRlZCBmb3IgdGhlIGBmaWx0ZXJgIHByb3BlcnR5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGZpbHRlciBpbiBRdWVyeVN0cmluZ1xuICAgKi9cbiAgcmVhZG9ubHkgZmlsdGVyU3RhdGVtZW50cz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBVc2VzIGxvZyBmaWVsZCB2YWx1ZXMgdG8gY2FsY3VsYXRlIGFnZ3JlZ2F0ZSBzdGF0aXN0aWNzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHN0YXRzIGluIFF1ZXJ5U3RyaW5nXG4gICAqL1xuICByZWFkb25seSBzdGF0cz86IHN0cmluZztcblxuICAvKipcbiAgICogU29ydHMgdGhlIHJldHJpZXZlZCBsb2cgZXZlbnRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHNvcnQgaW4gUXVlcnlTdHJpbmdcbiAgICovXG4gIHJlYWRvbmx5IHNvcnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGxvZyBldmVudHMgcmV0dXJuZWQgYnkgdGhlIHF1ZXJ5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGxpbWl0IGluIFF1ZXJ5U3RyaW5nXG4gICAqL1xuICByZWFkb25seSBsaW1pdD86IE51bWJlcjtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHdoaWNoIGZpZWxkcyB0byBkaXNwbGF5IGluIHRoZSBxdWVyeSByZXN1bHRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGRpc3BsYXkgaW4gUXVlcnlTdHJpbmdcbiAgICovXG4gIHJlYWRvbmx5IGRpc3BsYXk/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGVmaW5lIGEgUXVlcnlTdHJpbmdcbiAqL1xuZXhwb3J0IGNsYXNzIFF1ZXJ5U3RyaW5nIHtcbiAgcHJpdmF0ZSByZWFkb25seSBmaWVsZHM/OiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBwYXJzZTogc3RyaW5nW107XG4gIHByaXZhdGUgcmVhZG9ubHkgZmlsdGVyOiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBzdGF0cz86IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBzb3J0Pzogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGxpbWl0PzogTnVtYmVyO1xuICBwcml2YXRlIHJlYWRvbmx5IGRpc3BsYXk/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IFF1ZXJ5U3RyaW5nUHJvcHMgPSB7fSkge1xuICAgIHRoaXMuZmllbGRzID0gcHJvcHMuZmllbGRzO1xuICAgIHRoaXMuc3RhdHMgPSBwcm9wcy5zdGF0cztcbiAgICB0aGlzLnNvcnQgPSBwcm9wcy5zb3J0O1xuICAgIHRoaXMubGltaXQgPSBwcm9wcy5saW1pdDtcbiAgICB0aGlzLmRpc3BsYXkgPSBwcm9wcy5kaXNwbGF5O1xuXG4gICAgLy8gRGV0ZXJtaW5lIHBhcnNpbmcgYnkgZWl0aGVyIHRoZSBwYXJzZVN0YXRlbWVudHMgb3IgcGFyc2UgcHJvcGVydGllcywgb3IgZGVmYXVsdCB0byBlbXB0eSBhcnJheVxuICAgIGlmIChwcm9wcy5wYXJzZVN0YXRlbWVudHMpIHtcbiAgICAgIHRoaXMucGFyc2UgPSBwcm9wcy5wYXJzZVN0YXRlbWVudHM7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5wYXJzZSkge1xuICAgICAgdGhpcy5wYXJzZSA9IFtwcm9wcy5wYXJzZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucGFyc2UgPSBbXTtcbiAgICB9XG5cbiAgICAvLyBEZXRlcm1pbmUgZmlsdGVyaW5nIGJ5IGVpdGhlciB0aGUgZmlsdGVyU3RhdGVtZW50cyBvciBmaWx0ZXIgcHJvcGVydGllcywgb3IgZGVmYXVsdCB0byBlbXB0eSBhcnJheVxuICAgIGlmIChwcm9wcy5maWx0ZXJTdGF0ZW1lbnRzKSB7XG4gICAgICB0aGlzLmZpbHRlciA9IHByb3BzLmZpbHRlclN0YXRlbWVudHM7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5maWx0ZXIpIHtcbiAgICAgIHRoaXMuZmlsdGVyID0gW3Byb3BzLmZpbHRlcl07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsdGVyID0gW107XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIFF1ZXJ5U3RyaW5nLlxuICAgKi9cbiAgcHVibGljIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHRoaXMuYnVpbGRRdWVyeUxpbmUoXCJmaWVsZHNcIiwgdGhpcy5maWVsZHM/LmpvaW4oXCIsIFwiKSksXG4gICAgICAuLi50aGlzLmJ1aWxkUXVlcnlMaW5lcyhcInBhcnNlXCIsIHRoaXMucGFyc2UpLFxuICAgICAgLi4udGhpcy5idWlsZFF1ZXJ5TGluZXMoXCJmaWx0ZXJcIiwgdGhpcy5maWx0ZXIpLFxuICAgICAgdGhpcy5idWlsZFF1ZXJ5TGluZShcInN0YXRzXCIsIHRoaXMuc3RhdHMpLFxuICAgICAgdGhpcy5idWlsZFF1ZXJ5TGluZShcInNvcnRcIiwgdGhpcy5zb3J0KSxcbiAgICAgIHRoaXMuYnVpbGRRdWVyeUxpbmUoXCJsaW1pdFwiLCB0aGlzLmxpbWl0Py50b1N0cmluZygpKSxcbiAgICAgIHRoaXMuYnVpbGRRdWVyeUxpbmUoXCJkaXNwbGF5XCIsIHRoaXMuZGlzcGxheSksXG4gICAgXVxuICAgICAgLmZpbHRlcigocXVlcnlMaW5lKSA9PiBxdWVyeUxpbmUgIT09IHVuZGVmaW5lZCAmJiBxdWVyeUxpbmUubGVuZ3RoID4gMClcbiAgICAgIC5qb2luKFwiXFxufCBcIik7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYW4gYXJyYXkgb2YgcXVlcnkgbGluZXMgZ2l2ZW4gYSBjb21tYW5kIGFuZCBzdGF0ZW1lbnQocykuXG4gICAqXG4gICAqIEBwYXJhbSBjb21tYW5kIGEgcXVlcnkgY29tbWFuZFxuICAgKiBAcGFyYW0gc3RhdGVtZW50cyBvbmUgb3IgbW9yZSBxdWVyeSBzdGF0ZW1lbnRzIGZvciB0aGUgc3BlY2lmaWVkIGNvbW1hbmQsIG9yIHVuZGVmaW5lZFxuICAgKiBAcmV0dXJucyBhbiBhcnJheSBvZiB0aGUgcXVlcnkgc3RyaW5nIGxpbmVzIGdlbmVyYXRlZCBmcm9tIHRoZSBwcm92aWRlZCBjb21tYW5kIGFuZCBzdGF0ZW1lbnRzXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkUXVlcnlMaW5lcyhjb21tYW5kOiBzdHJpbmcsIHN0YXRlbWVudHM/OiBzdHJpbmdbXSk6IHN0cmluZ1tdIHtcbiAgICBpZiAoc3RhdGVtZW50cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YXRlbWVudHMubWFwKChzdGF0ZW1lbnQ6IHN0cmluZyk6IHN0cmluZyA9PlxuICAgICAgdGhpcy5idWlsZFF1ZXJ5TGluZShjb21tYW5kLCBzdGF0ZW1lbnQpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYSBzaW5nbGUgcXVlcnkgbGluZSBnaXZlbiBhIGNvbW1hbmQgYW5kIHN0YXRlbWVudC5cbiAgICpcbiAgICogQHBhcmFtIGNvbW1hbmQgYSBxdWVyeSBjb21tYW5kXG4gICAqIEBwYXJhbSBzdGF0ZW1lbnQgYSBzaW5nbGUgcXVlcnkgc3RhdGVtZW50XG4gICAqIEByZXR1cm5zIGEgc2luZ2xlIHF1ZXJ5IHN0cmluZyBsaW5lIGdlbmVyYXRlZCBmcm9tIHRoZSBwcm92aWRlZCBjb21tYW5kIGFuZCBzdGF0ZW1lbnRcbiAgICovXG4gIHByaXZhdGUgYnVpbGRRdWVyeUxpbmUoY29tbWFuZDogc3RyaW5nLCBzdGF0ZW1lbnQ/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdGF0ZW1lbnQgPyBgJHtjb21tYW5kfSAke3N0YXRlbWVudH1gIDogXCJcIjtcbiAgfVxufVxuXG4vKipcbiAqIE91dHB1dHMgd2hpY2ggbWF5IGJlIHJlZ2lzdGVyZWQgZm9yIG91dHB1dCB2aWEgdGhlIEdyaWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlEZWZpbml0aW9uT3V0cHV0cyB7XG4gIC8qKlxuICAgKiBUaGUgcXVlcnkgZGVmaW5pdGlvbiBJRC5cbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgcXVlcnlEZWZpbml0aW9uSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIFF1ZXJ5RGVmaW5pdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXJ5RGVmaW5pdGlvblByb3BzIGV4dGVuZHMgQXdzQ29uc3RydWN0UHJvcHMge1xuICAvKipcbiAgICogTmFtZSBvZiB0aGUgcXVlcnkgZGVmaW5pdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHF1ZXJ5RGVmaW5pdGlvbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHF1ZXJ5IHN0cmluZyB0byB1c2UgZm9yIHRoaXMgcXVlcnkgZGVmaW5pdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHF1ZXJ5U3RyaW5nOiBRdWVyeVN0cmluZztcblxuICAvKipcbiAgICogU3BlY2lmeSBjZXJ0YWluIGxvZyBncm91cHMgZm9yIHRoZSBxdWVyeSBkZWZpbml0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHNwZWNpZmllZCBsb2cgZ3JvdXBzXG4gICAqL1xuICByZWFkb25seSBsb2dHcm91cHM/OiBJTG9nR3JvdXBbXTtcbn1cblxuLyoqXG4gKiBEZWZpbmUgYSBxdWVyeSBkZWZpbml0aW9uIGZvciBDbG91ZFdhdGNoIExvZ3MgSW5zaWdodHNcbiAqL1xuZXhwb3J0IGNsYXNzIFF1ZXJ5RGVmaW5pdGlvbiBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2Uge1xuICAvKipcbiAgICogVGhlIElEIG9mIHRoZSBxdWVyeSBkZWZpbml0aW9uLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcXVlcnlEZWZpbml0aW9uSWQ6IHN0cmluZztcbiAgcHVibGljIGdldCBxdWVyeURlZmluaXRpb25PdXRwdXRzKCk6IFF1ZXJ5RGVmaW5pdGlvbk91dHB1dHMge1xuICAgIHJldHVybiB7XG4gICAgICBxdWVyeURlZmluaXRpb25JZDogdGhpcy5xdWVyeURlZmluaXRpb25JZCxcbiAgICB9O1xuICB9XG4gIHB1YmxpYyBnZXQgb3V0cHV0cygpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeURlZmluaXRpb25PdXRwdXRzO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHJlc291cmNlOiBjbG91ZHdhdGNoUXVlcnlEZWZpbml0aW9uLkNsb3Vkd2F0Y2hRdWVyeURlZmluaXRpb247XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFF1ZXJ5RGVmaW5pdGlvblByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgY29uc3QgbmFtZSA9XG4gICAgICBwcm9wcy5xdWVyeURlZmluaXRpb25OYW1lIHx8XG4gICAgICB0aGlzLnN0YWNrLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7XG4gICAgICAgIHByZWZpeDogdGhpcy5ncmlkVVVJRCxcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBjbG91ZHdhdGNoUXVlcnlEZWZpbml0aW9uLkNsb3Vkd2F0Y2hRdWVyeURlZmluaXRpb24oXG4gICAgICB0aGlzLFxuICAgICAgXCJSZXNvdXJjZVwiLFxuICAgICAge1xuICAgICAgICBuYW1lLFxuICAgICAgICBxdWVyeVN0cmluZzogcHJvcHMucXVlcnlTdHJpbmcudG9TdHJpbmcoKSxcbiAgICAgICAgbG9nR3JvdXBOYW1lczpcbiAgICAgICAgICB0eXBlb2YgcHJvcHMubG9nR3JvdXBzID09PSBcInVuZGVmaW5lZFwiXG4gICAgICAgICAgICA/IFtdXG4gICAgICAgICAgICA6IHByb3BzLmxvZ0dyb3Vwcy5mbGF0TWFwKChsb2dHcm91cCkgPT4gbG9nR3JvdXAubG9nR3JvdXBOYW1lKSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMucXVlcnlEZWZpbml0aW9uSWQgPSB0aGlzLnJlc291cmNlLnF1ZXJ5RGVmaW5pdGlvbklkO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Factory functions for standard statistics strings
|
|
3
|
+
*/
|
|
4
|
+
export declare abstract class Stats {
|
|
5
|
+
/**
|
|
6
|
+
* The count (number) of data points used for the statistical calculation.
|
|
7
|
+
*/
|
|
8
|
+
static readonly SAMPLE_COUNT = "SampleCount";
|
|
9
|
+
/**
|
|
10
|
+
* The value of Sum / SampleCount during the specified period.
|
|
11
|
+
*/
|
|
12
|
+
static readonly AVERAGE = "Average";
|
|
13
|
+
/**
|
|
14
|
+
* All values submitted for the matching metric added together.
|
|
15
|
+
* This statistic can be useful for determining the total volume of a metric.
|
|
16
|
+
*/
|
|
17
|
+
static readonly SUM = "Sum";
|
|
18
|
+
/**
|
|
19
|
+
* The lowest value observed during the specified period.
|
|
20
|
+
* You can use this value to determine low volumes of activity for your application.
|
|
21
|
+
*/
|
|
22
|
+
static readonly MINIMUM = "Minimum";
|
|
23
|
+
/**
|
|
24
|
+
* The highest value observed during the specified period.
|
|
25
|
+
* You can use this value to determine high volumes of activity for your application.
|
|
26
|
+
*/
|
|
27
|
+
static readonly MAXIMUM = "Maximum";
|
|
28
|
+
/**
|
|
29
|
+
* Interquartile mean (IQM) is the trimmed mean of the interquartile range, or the middle 50% of values.
|
|
30
|
+
*
|
|
31
|
+
* It is equivalent to `trimmedMean(25, 75)`.
|
|
32
|
+
*/
|
|
33
|
+
static readonly IQM = "IQM";
|
|
34
|
+
/**
|
|
35
|
+
* Percentile indicates the relative standing of a value in a dataset.
|
|
36
|
+
*
|
|
37
|
+
* Percentiles help you get a better understanding of the distribution of your metric data.
|
|
38
|
+
*
|
|
39
|
+
* For example, `p(90)` is the 90th percentile and means that 90% of the data
|
|
40
|
+
* within the period is lower than this value and 10% of the data is higher
|
|
41
|
+
* than this value.
|
|
42
|
+
*/
|
|
43
|
+
static percentile(percentile: number): string;
|
|
44
|
+
/**
|
|
45
|
+
* A shorter alias for `percentile()`.
|
|
46
|
+
*/
|
|
47
|
+
static p(percentile: number): string;
|
|
48
|
+
/**
|
|
49
|
+
* Trimmed mean (TM) is the mean of all values that are between two specified boundaries.
|
|
50
|
+
*
|
|
51
|
+
* Values outside of the boundaries are ignored when the mean is calculated.
|
|
52
|
+
* You define the boundaries as one or two numbers between 0 and 100, up to 10
|
|
53
|
+
* decimal places. The numbers are percentages.
|
|
54
|
+
*
|
|
55
|
+
* - If two numbers are given, they define the lower and upper bounds in percentages,
|
|
56
|
+
* respectively.
|
|
57
|
+
* - If one number is given, it defines the upper bound (the lower bound is assumed to
|
|
58
|
+
* be 0).
|
|
59
|
+
*
|
|
60
|
+
* For example, `tm(90)` calculates the average after removing the 10% of data
|
|
61
|
+
* points with the highest values; `tm(10, 90)` calculates the average after removing the
|
|
62
|
+
* 10% with the lowest and 10% with the highest values.
|
|
63
|
+
*/
|
|
64
|
+
static trimmedMean(p1: number, p2?: number): string;
|
|
65
|
+
/**
|
|
66
|
+
* A shorter alias for `trimmedMean()`.
|
|
67
|
+
*/
|
|
68
|
+
static tm(p1: number, p2?: number): string;
|
|
69
|
+
/**
|
|
70
|
+
* Winsorized mean (WM) is similar to trimmed mean.
|
|
71
|
+
*
|
|
72
|
+
* However, with winsorized mean, the values that are outside the boundary are
|
|
73
|
+
* not ignored, but instead are considered to be equal to the value at the
|
|
74
|
+
* edge of the appropriate boundary. After this normalization, the average is
|
|
75
|
+
* calculated. You define the boundaries as one or two numbers between 0 and
|
|
76
|
+
* 100, up to 10 decimal places.
|
|
77
|
+
*
|
|
78
|
+
* - If two numbers are given, they define the lower and upper bounds in percentages,
|
|
79
|
+
* respectively.
|
|
80
|
+
* - If one number is given, it defines the upper bound (the lower bound is assumed to
|
|
81
|
+
* be 0).
|
|
82
|
+
*
|
|
83
|
+
* For example, `tm(90)` calculates the average after removing the 10% of data
|
|
84
|
+
* points with the highest values; `tm(10, 90)` calculates the average after removing the
|
|
85
|
+
* 10% with the lowest and 10% with the highest values.
|
|
86
|
+
*
|
|
87
|
+
* For example, `wm(90)` calculates the average while treating the 10% of the
|
|
88
|
+
* highest values to be equal to the value at the 90th percentile.
|
|
89
|
+
* `wm(10, 90)` calculates the average while treaing the bottom 10% and the
|
|
90
|
+
* top 10% of values to be equal to the boundary values.
|
|
91
|
+
*/
|
|
92
|
+
static winsorizedMean(p1: number, p2?: number): string;
|
|
93
|
+
/**
|
|
94
|
+
* A shorter alias for `winsorizedMean()`.
|
|
95
|
+
*/
|
|
96
|
+
static wm(p1: number, p2?: number): string;
|
|
97
|
+
/**
|
|
98
|
+
* Trimmed count (TC) is the number of data points in the chosen range for a trimmed mean statistic.
|
|
99
|
+
*
|
|
100
|
+
* - If two numbers are given, they define the lower and upper bounds in percentages,
|
|
101
|
+
* respectively.
|
|
102
|
+
* - If one number is given, it defines the upper bound (the lower bound is assumed to
|
|
103
|
+
* be 0).
|
|
104
|
+
*
|
|
105
|
+
* For example, `tc(90)` returns the number of data points not including any
|
|
106
|
+
* data points that fall in the highest 10% of the values. `tc(10, 90)`
|
|
107
|
+
* returns the number of data points not including any data points that fall
|
|
108
|
+
* in the lowest 10% of the values and the highest 90% of the values.
|
|
109
|
+
*/
|
|
110
|
+
static trimmedCount(p1: number, p2?: number): string;
|
|
111
|
+
/**
|
|
112
|
+
* Shorter alias for `trimmedCount()`.
|
|
113
|
+
*/
|
|
114
|
+
static tc(p1: number, p2?: number): string;
|
|
115
|
+
/**
|
|
116
|
+
* Trimmed sum (TS) is the sum of the values of data points in a chosen range for a trimmed mean statistic.
|
|
117
|
+
* It is equivalent to `(Trimmed Mean) * (Trimmed count)`.
|
|
118
|
+
*
|
|
119
|
+
* - If two numbers are given, they define the lower and upper bounds in percentages,
|
|
120
|
+
* respectively.
|
|
121
|
+
* - If one number is given, it defines the upper bound (the lower bound is assumed to
|
|
122
|
+
* be 0).
|
|
123
|
+
*
|
|
124
|
+
* For example, `ts(90)` returns the sum of the data points not including any
|
|
125
|
+
* data points that fall in the highest 10% of the values. `ts(10, 90)`
|
|
126
|
+
* returns the sum of the data points not including any data points that fall
|
|
127
|
+
* in the lowest 10% of the values and the highest 90% of the values.
|
|
128
|
+
*/
|
|
129
|
+
static trimmedSum(p1: number, p2?: number): string;
|
|
130
|
+
/**
|
|
131
|
+
* Shorter alias for `trimmedSum()`.
|
|
132
|
+
*/
|
|
133
|
+
static ts(p1: number, p2?: number): string;
|
|
134
|
+
/**
|
|
135
|
+
* Percentile rank (PR) is the percentage of values that meet a fixed threshold.
|
|
136
|
+
*
|
|
137
|
+
* - If two numbers are given, they define the lower and upper bounds in absolute values,
|
|
138
|
+
* respectively.
|
|
139
|
+
* - If one number is given, it defines the upper bound (the lower bound is assumed to
|
|
140
|
+
* be 0).
|
|
141
|
+
*
|
|
142
|
+
* For example, `percentileRank(300)` returns the percentage of data points that have a value of 300 or less.
|
|
143
|
+
* `percentileRank(100, 2000)` returns the percentage of data points that have a value between 100 and 2000.
|
|
144
|
+
*/
|
|
145
|
+
static percentileRank(v1: number, v2?: number): string;
|
|
146
|
+
/**
|
|
147
|
+
* Shorter alias for `percentileRank()`.
|
|
148
|
+
*/
|
|
149
|
+
static pr(v1: number, v2?: number): string;
|
|
150
|
+
}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Stats = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
/**
|
|
7
|
+
* Factory functions for standard statistics strings
|
|
8
|
+
*/
|
|
9
|
+
class Stats {
|
|
10
|
+
/**
|
|
11
|
+
* Percentile indicates the relative standing of a value in a dataset.
|
|
12
|
+
*
|
|
13
|
+
* Percentiles help you get a better understanding of the distribution of your metric data.
|
|
14
|
+
*
|
|
15
|
+
* For example, `p(90)` is the 90th percentile and means that 90% of the data
|
|
16
|
+
* within the period is lower than this value and 10% of the data is higher
|
|
17
|
+
* than this value.
|
|
18
|
+
*/
|
|
19
|
+
static percentile(percentile) {
|
|
20
|
+
assertPercentage(percentile);
|
|
21
|
+
return `p${percentile}`;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* A shorter alias for `percentile()`.
|
|
25
|
+
*/
|
|
26
|
+
static p(percentile) {
|
|
27
|
+
return Stats.percentile(percentile);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Trimmed mean (TM) is the mean of all values that are between two specified boundaries.
|
|
31
|
+
*
|
|
32
|
+
* Values outside of the boundaries are ignored when the mean is calculated.
|
|
33
|
+
* You define the boundaries as one or two numbers between 0 and 100, up to 10
|
|
34
|
+
* decimal places. The numbers are percentages.
|
|
35
|
+
*
|
|
36
|
+
* - If two numbers are given, they define the lower and upper bounds in percentages,
|
|
37
|
+
* respectively.
|
|
38
|
+
* - If one number is given, it defines the upper bound (the lower bound is assumed to
|
|
39
|
+
* be 0).
|
|
40
|
+
*
|
|
41
|
+
* For example, `tm(90)` calculates the average after removing the 10% of data
|
|
42
|
+
* points with the highest values; `tm(10, 90)` calculates the average after removing the
|
|
43
|
+
* 10% with the lowest and 10% with the highest values.
|
|
44
|
+
*/
|
|
45
|
+
static trimmedMean(p1, p2) {
|
|
46
|
+
return boundaryPercentileStat("tm", "TM", p1, p2);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* A shorter alias for `trimmedMean()`.
|
|
50
|
+
*/
|
|
51
|
+
static tm(p1, p2) {
|
|
52
|
+
return Stats.trimmedMean(p1, p2);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Winsorized mean (WM) is similar to trimmed mean.
|
|
56
|
+
*
|
|
57
|
+
* However, with winsorized mean, the values that are outside the boundary are
|
|
58
|
+
* not ignored, but instead are considered to be equal to the value at the
|
|
59
|
+
* edge of the appropriate boundary. After this normalization, the average is
|
|
60
|
+
* calculated. You define the boundaries as one or two numbers between 0 and
|
|
61
|
+
* 100, up to 10 decimal places.
|
|
62
|
+
*
|
|
63
|
+
* - If two numbers are given, they define the lower and upper bounds in percentages,
|
|
64
|
+
* respectively.
|
|
65
|
+
* - If one number is given, it defines the upper bound (the lower bound is assumed to
|
|
66
|
+
* be 0).
|
|
67
|
+
*
|
|
68
|
+
* For example, `tm(90)` calculates the average after removing the 10% of data
|
|
69
|
+
* points with the highest values; `tm(10, 90)` calculates the average after removing the
|
|
70
|
+
* 10% with the lowest and 10% with the highest values.
|
|
71
|
+
*
|
|
72
|
+
* For example, `wm(90)` calculates the average while treating the 10% of the
|
|
73
|
+
* highest values to be equal to the value at the 90th percentile.
|
|
74
|
+
* `wm(10, 90)` calculates the average while treaing the bottom 10% and the
|
|
75
|
+
* top 10% of values to be equal to the boundary values.
|
|
76
|
+
*/
|
|
77
|
+
static winsorizedMean(p1, p2) {
|
|
78
|
+
return boundaryPercentileStat("wm", "WM", p1, p2);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* A shorter alias for `winsorizedMean()`.
|
|
82
|
+
*/
|
|
83
|
+
static wm(p1, p2) {
|
|
84
|
+
return Stats.winsorizedMean(p1, p2);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Trimmed count (TC) is the number of data points in the chosen range for a trimmed mean statistic.
|
|
88
|
+
*
|
|
89
|
+
* - If two numbers are given, they define the lower and upper bounds in percentages,
|
|
90
|
+
* respectively.
|
|
91
|
+
* - If one number is given, it defines the upper bound (the lower bound is assumed to
|
|
92
|
+
* be 0).
|
|
93
|
+
*
|
|
94
|
+
* For example, `tc(90)` returns the number of data points not including any
|
|
95
|
+
* data points that fall in the highest 10% of the values. `tc(10, 90)`
|
|
96
|
+
* returns the number of data points not including any data points that fall
|
|
97
|
+
* in the lowest 10% of the values and the highest 90% of the values.
|
|
98
|
+
*/
|
|
99
|
+
static trimmedCount(p1, p2) {
|
|
100
|
+
return boundaryPercentileStat("tc", "TC", p1, p2);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Shorter alias for `trimmedCount()`.
|
|
104
|
+
*/
|
|
105
|
+
static tc(p1, p2) {
|
|
106
|
+
return Stats.trimmedCount(p1, p2);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Trimmed sum (TS) is the sum of the values of data points in a chosen range for a trimmed mean statistic.
|
|
110
|
+
* It is equivalent to `(Trimmed Mean) * (Trimmed count)`.
|
|
111
|
+
*
|
|
112
|
+
* - If two numbers are given, they define the lower and upper bounds in percentages,
|
|
113
|
+
* respectively.
|
|
114
|
+
* - If one number is given, it defines the upper bound (the lower bound is assumed to
|
|
115
|
+
* be 0).
|
|
116
|
+
*
|
|
117
|
+
* For example, `ts(90)` returns the sum of the data points not including any
|
|
118
|
+
* data points that fall in the highest 10% of the values. `ts(10, 90)`
|
|
119
|
+
* returns the sum of the data points not including any data points that fall
|
|
120
|
+
* in the lowest 10% of the values and the highest 90% of the values.
|
|
121
|
+
*/
|
|
122
|
+
static trimmedSum(p1, p2) {
|
|
123
|
+
return boundaryPercentileStat("ts", "TS", p1, p2);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Shorter alias for `trimmedSum()`.
|
|
127
|
+
*/
|
|
128
|
+
static ts(p1, p2) {
|
|
129
|
+
return Stats.trimmedSum(p1, p2);
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Percentile rank (PR) is the percentage of values that meet a fixed threshold.
|
|
133
|
+
*
|
|
134
|
+
* - If two numbers are given, they define the lower and upper bounds in absolute values,
|
|
135
|
+
* respectively.
|
|
136
|
+
* - If one number is given, it defines the upper bound (the lower bound is assumed to
|
|
137
|
+
* be 0).
|
|
138
|
+
*
|
|
139
|
+
* For example, `percentileRank(300)` returns the percentage of data points that have a value of 300 or less.
|
|
140
|
+
* `percentileRank(100, 2000)` returns the percentage of data points that have a value between 100 and 2000.
|
|
141
|
+
*/
|
|
142
|
+
static percentileRank(v1, v2) {
|
|
143
|
+
if (v2 !== undefined) {
|
|
144
|
+
return `PR(${v1}:${v2})`;
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
return `PR(:${v1})`;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Shorter alias for `percentileRank()`.
|
|
152
|
+
*/
|
|
153
|
+
static pr(v1, v2) {
|
|
154
|
+
return this.percentileRank(v1, v2);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
exports.Stats = Stats;
|
|
158
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
159
|
+
Stats[_a] = { fqn: "terraconstructs.aws.cloudwatch.Stats", version: "0.0.8" };
|
|
160
|
+
/**
|
|
161
|
+
* The count (number) of data points used for the statistical calculation.
|
|
162
|
+
*/
|
|
163
|
+
Stats.SAMPLE_COUNT = "SampleCount";
|
|
164
|
+
/**
|
|
165
|
+
* The value of Sum / SampleCount during the specified period.
|
|
166
|
+
*/
|
|
167
|
+
Stats.AVERAGE = "Average";
|
|
168
|
+
/**
|
|
169
|
+
* All values submitted for the matching metric added together.
|
|
170
|
+
* This statistic can be useful for determining the total volume of a metric.
|
|
171
|
+
*/
|
|
172
|
+
Stats.SUM = "Sum";
|
|
173
|
+
/**
|
|
174
|
+
* The lowest value observed during the specified period.
|
|
175
|
+
* You can use this value to determine low volumes of activity for your application.
|
|
176
|
+
*/
|
|
177
|
+
Stats.MINIMUM = "Minimum";
|
|
178
|
+
/**
|
|
179
|
+
* The highest value observed during the specified period.
|
|
180
|
+
* You can use this value to determine high volumes of activity for your application.
|
|
181
|
+
*/
|
|
182
|
+
Stats.MAXIMUM = "Maximum";
|
|
183
|
+
/**
|
|
184
|
+
* Interquartile mean (IQM) is the trimmed mean of the interquartile range, or the middle 50% of values.
|
|
185
|
+
*
|
|
186
|
+
* It is equivalent to `trimmedMean(25, 75)`.
|
|
187
|
+
*/
|
|
188
|
+
Stats.IQM = "IQM";
|
|
189
|
+
function assertPercentage(x) {
|
|
190
|
+
if (x !== undefined && (x < 0 || x > 100)) {
|
|
191
|
+
throw new Error(`Expecting a percentage, got: ${x}`);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Formatting helper because all these stats look the same
|
|
196
|
+
*/
|
|
197
|
+
function boundaryPercentileStat(oneBoundaryStat, twoBoundaryStat, p1, p2) {
|
|
198
|
+
assertPercentage(p1);
|
|
199
|
+
assertPercentage(p2);
|
|
200
|
+
if (p2 !== undefined) {
|
|
201
|
+
return `${twoBoundaryStat}(${p1}%:${p2}%)`;
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
return `${oneBoundaryStat}${p1}`;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXdzL2Nsb3Vkd2F0Y2gvc3RhdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7R0FFRztBQUNILE1BQXNCLEtBQUs7SUFtQ3pCOzs7Ozs7OztPQVFHO0lBQ0ksTUFBTSxDQUFDLFVBQVUsQ0FBQyxVQUFrQjtRQUN6QyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3QixPQUFPLElBQUksVUFBVSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFrQjtRQUNoQyxPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7T0FlRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBVSxFQUFFLEVBQVc7UUFDL0MsT0FBTyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQVUsRUFBRSxFQUFXO1FBQ3RDLE9BQU8sS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bc0JHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBQyxFQUFVLEVBQUUsRUFBVztRQUNsRCxPQUFPLHNCQUFzQixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBVSxFQUFFLEVBQVc7UUFDdEMsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUFVLEVBQUUsRUFBVztRQUNoRCxPQUFPLHNCQUFzQixDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBVSxFQUFFLEVBQVc7UUFDdEMsT0FBTyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7T0FhRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsRUFBVSxFQUFFLEVBQVc7UUFDOUMsT0FBTyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQVUsRUFBRSxFQUFXO1FBQ3RDLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSSxNQUFNLENBQUMsY0FBYyxDQUFDLEVBQVUsRUFBRSxFQUFXO1FBQ2xELElBQUksRUFBRSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLENBQUM7UUFDM0IsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLE9BQU8sRUFBRSxHQUFHLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBVSxFQUFFLEVBQVc7UUFDdEMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDOztBQTlMSCxzQkErTEM7OztBQTlMQzs7R0FFRztBQUNvQixrQkFBWSxHQUFHLGFBQWEsQ0FBQztBQUVwRDs7R0FFRztBQUNvQixhQUFPLEdBQUcsU0FBUyxDQUFDO0FBQzNDOzs7R0FHRztBQUNvQixTQUFHLEdBQUcsS0FBSyxDQUFDO0FBRW5DOzs7R0FHRztBQUNvQixhQUFPLEdBQUcsU0FBUyxDQUFDO0FBRTNDOzs7R0FHRztBQUNvQixhQUFPLEdBQUcsU0FBUyxDQUFDO0FBRTNDOzs7O0dBSUc7QUFDb0IsU0FBRyxHQUFHLEtBQUssQ0FBQztBQWdLckMsU0FBUyxnQkFBZ0IsQ0FBQyxDQUFVO0lBQ2xDLElBQUksQ0FBQyxLQUFLLFNBQVMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDMUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RCxDQUFDO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxzQkFBc0IsQ0FDN0IsZUFBdUIsRUFDdkIsZUFBdUIsRUFDdkIsRUFBVSxFQUNWLEVBQXNCO0lBRXRCLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JCLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JCLElBQUksRUFBRSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sR0FBRyxlQUFlLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDO0lBQzdDLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxHQUFHLGVBQWUsR0FBRyxFQUFFLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRmFjdG9yeSBmdW5jdGlvbnMgZm9yIHN0YW5kYXJkIHN0YXRpc3RpY3Mgc3RyaW5nc1xuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU3RhdHMge1xuICAvKipcbiAgICogVGhlIGNvdW50IChudW1iZXIpIG9mIGRhdGEgcG9pbnRzIHVzZWQgZm9yIHRoZSBzdGF0aXN0aWNhbCBjYWxjdWxhdGlvbi5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU0FNUExFX0NPVU5UID0gXCJTYW1wbGVDb3VudFwiO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgU3VtIC8gU2FtcGxlQ291bnQgZHVyaW5nIHRoZSBzcGVjaWZpZWQgcGVyaW9kLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBBVkVSQUdFID0gXCJBdmVyYWdlXCI7XG4gIC8qKlxuICAgKiBBbGwgdmFsdWVzIHN1Ym1pdHRlZCBmb3IgdGhlIG1hdGNoaW5nIG1ldHJpYyBhZGRlZCB0b2dldGhlci5cbiAgICogVGhpcyBzdGF0aXN0aWMgY2FuIGJlIHVzZWZ1bCBmb3IgZGV0ZXJtaW5pbmcgdGhlIHRvdGFsIHZvbHVtZSBvZiBhIG1ldHJpYy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU1VNID0gXCJTdW1cIjtcblxuICAvKipcbiAgICogVGhlIGxvd2VzdCB2YWx1ZSBvYnNlcnZlZCBkdXJpbmcgdGhlIHNwZWNpZmllZCBwZXJpb2QuXG4gICAqIFlvdSBjYW4gdXNlIHRoaXMgdmFsdWUgdG8gZGV0ZXJtaW5lIGxvdyB2b2x1bWVzIG9mIGFjdGl2aXR5IGZvciB5b3VyIGFwcGxpY2F0aW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBNSU5JTVVNID0gXCJNaW5pbXVtXCI7XG5cbiAgLyoqXG4gICAqIFRoZSBoaWdoZXN0IHZhbHVlIG9ic2VydmVkIGR1cmluZyB0aGUgc3BlY2lmaWVkIHBlcmlvZC5cbiAgICogWW91IGNhbiB1c2UgdGhpcyB2YWx1ZSB0byBkZXRlcm1pbmUgaGlnaCB2b2x1bWVzIG9mIGFjdGl2aXR5IGZvciB5b3VyIGFwcGxpY2F0aW9uLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBNQVhJTVVNID0gXCJNYXhpbXVtXCI7XG5cbiAgLyoqXG4gICAqIEludGVycXVhcnRpbGUgbWVhbiAoSVFNKSBpcyB0aGUgdHJpbW1lZCBtZWFuIG9mIHRoZSBpbnRlcnF1YXJ0aWxlIHJhbmdlLCBvciB0aGUgbWlkZGxlIDUwJSBvZiB2YWx1ZXMuXG4gICAqXG4gICAqIEl0IGlzIGVxdWl2YWxlbnQgdG8gYHRyaW1tZWRNZWFuKDI1LCA3NSlgLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBJUU0gPSBcIklRTVwiO1xuXG4gIC8qKlxuICAgKiBQZXJjZW50aWxlIGluZGljYXRlcyB0aGUgcmVsYXRpdmUgc3RhbmRpbmcgb2YgYSB2YWx1ZSBpbiBhIGRhdGFzZXQuXG4gICAqXG4gICAqIFBlcmNlbnRpbGVzIGhlbHAgeW91IGdldCBhIGJldHRlciB1bmRlcnN0YW5kaW5nIG9mIHRoZSBkaXN0cmlidXRpb24gb2YgeW91ciBtZXRyaWMgZGF0YS5cbiAgICpcbiAgICogRm9yIGV4YW1wbGUsIGBwKDkwKWAgaXMgdGhlIDkwdGggcGVyY2VudGlsZSBhbmQgbWVhbnMgdGhhdCA5MCUgb2YgdGhlIGRhdGFcbiAgICogd2l0aGluIHRoZSBwZXJpb2QgaXMgbG93ZXIgdGhhbiB0aGlzIHZhbHVlIGFuZCAxMCUgb2YgdGhlIGRhdGEgaXMgaGlnaGVyXG4gICAqIHRoYW4gdGhpcyB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcGVyY2VudGlsZShwZXJjZW50aWxlOiBudW1iZXIpIHtcbiAgICBhc3NlcnRQZXJjZW50YWdlKHBlcmNlbnRpbGUpO1xuICAgIHJldHVybiBgcCR7cGVyY2VudGlsZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIEEgc2hvcnRlciBhbGlhcyBmb3IgYHBlcmNlbnRpbGUoKWAuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHAocGVyY2VudGlsZTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIFN0YXRzLnBlcmNlbnRpbGUocGVyY2VudGlsZSk7XG4gIH1cblxuICAvKipcbiAgICogVHJpbW1lZCBtZWFuIChUTSkgaXMgdGhlIG1lYW4gb2YgYWxsIHZhbHVlcyB0aGF0IGFyZSBiZXR3ZWVuIHR3byBzcGVjaWZpZWQgYm91bmRhcmllcy5cbiAgICpcbiAgICogVmFsdWVzIG91dHNpZGUgb2YgdGhlIGJvdW5kYXJpZXMgYXJlIGlnbm9yZWQgd2hlbiB0aGUgbWVhbiBpcyBjYWxjdWxhdGVkLlxuICAgKiBZb3UgZGVmaW5lIHRoZSBib3VuZGFyaWVzIGFzIG9uZSBvciB0d28gbnVtYmVycyBiZXR3ZWVuIDAgYW5kIDEwMCwgdXAgdG8gMTBcbiAgICogZGVjaW1hbCBwbGFjZXMuIFRoZSBudW1iZXJzIGFyZSBwZXJjZW50YWdlcy5cbiAgICpcbiAgICogLSBJZiB0d28gbnVtYmVycyBhcmUgZ2l2ZW4sIHRoZXkgZGVmaW5lIHRoZSBsb3dlciBhbmQgdXBwZXIgYm91bmRzIGluIHBlcmNlbnRhZ2VzLFxuICAgKiAgIHJlc3BlY3RpdmVseS5cbiAgICogLSBJZiBvbmUgbnVtYmVyIGlzIGdpdmVuLCBpdCBkZWZpbmVzIHRoZSB1cHBlciBib3VuZCAodGhlIGxvd2VyIGJvdW5kIGlzIGFzc3VtZWQgdG9cbiAgICogICBiZSAwKS5cbiAgICpcbiAgICogRm9yIGV4YW1wbGUsIGB0bSg5MClgIGNhbGN1bGF0ZXMgdGhlIGF2ZXJhZ2UgYWZ0ZXIgcmVtb3ZpbmcgdGhlIDEwJSBvZiBkYXRhXG4gICAqIHBvaW50cyB3aXRoIHRoZSBoaWdoZXN0IHZhbHVlczsgYHRtKDEwLCA5MClgIGNhbGN1bGF0ZXMgdGhlIGF2ZXJhZ2UgYWZ0ZXIgcmVtb3ZpbmcgdGhlXG4gICAqIDEwJSB3aXRoIHRoZSBsb3dlc3QgYW5kIDEwJSB3aXRoIHRoZSBoaWdoZXN0IHZhbHVlcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdHJpbW1lZE1lYW4ocDE6IG51bWJlciwgcDI/OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYm91bmRhcnlQZXJjZW50aWxlU3RhdChcInRtXCIsIFwiVE1cIiwgcDEsIHAyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHNob3J0ZXIgYWxpYXMgZm9yIGB0cmltbWVkTWVhbigpYC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdG0ocDE6IG51bWJlciwgcDI/OiBudW1iZXIpIHtcbiAgICByZXR1cm4gU3RhdHMudHJpbW1lZE1lYW4ocDEsIHAyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXaW5zb3JpemVkIG1lYW4gKFdNKSBpcyBzaW1pbGFyIHRvIHRyaW1tZWQgbWVhbi5cbiAgICpcbiAgICogSG93ZXZlciwgd2l0aCB3aW5zb3JpemVkIG1lYW4sIHRoZSB2YWx1ZXMgdGhhdCBhcmUgb3V0c2lkZSB0aGUgYm91bmRhcnkgYXJlXG4gICAqIG5vdCBpZ25vcmVkLCBidXQgaW5zdGVhZCBhcmUgY29uc2lkZXJlZCB0byBiZSBlcXVhbCB0byB0aGUgdmFsdWUgYXQgdGhlXG4gICAqIGVkZ2Ugb2YgdGhlIGFwcHJvcHJpYXRlIGJvdW5kYXJ5LiAgQWZ0ZXIgdGhpcyBub3JtYWxpemF0aW9uLCB0aGUgYXZlcmFnZSBpc1xuICAgKiBjYWxjdWxhdGVkLiBZb3UgZGVmaW5lIHRoZSBib3VuZGFyaWVzIGFzIG9uZSBvciB0d28gbnVtYmVycyBiZXR3ZWVuIDAgYW5kXG4gICAqIDEwMCwgdXAgdG8gMTAgZGVjaW1hbCBwbGFjZXMuXG4gICAqXG4gICAqIC0gSWYgdHdvIG51bWJlcnMgYXJlIGdpdmVuLCB0aGV5IGRlZmluZSB0aGUgbG93ZXIgYW5kIHVwcGVyIGJvdW5kcyBpbiBwZXJjZW50YWdlcyxcbiAgICogICByZXNwZWN0aXZlbHkuXG4gICAqIC0gSWYgb25lIG51bWJlciBpcyBnaXZlbiwgaXQgZGVmaW5lcyB0aGUgdXBwZXIgYm91bmQgKHRoZSBsb3dlciBib3VuZCBpcyBhc3N1bWVkIHRvXG4gICAqICAgYmUgMCkuXG4gICAqXG4gICAqIEZvciBleGFtcGxlLCBgdG0oOTApYCBjYWxjdWxhdGVzIHRoZSBhdmVyYWdlIGFmdGVyIHJlbW92aW5nIHRoZSAxMCUgb2YgZGF0YVxuICAgKiBwb2ludHMgd2l0aCB0aGUgaGlnaGVzdCB2YWx1ZXM7IGB0bSgxMCwgOTApYCBjYWxjdWxhdGVzIHRoZSBhdmVyYWdlIGFmdGVyIHJlbW92aW5nIHRoZVxuICAgKiAxMCUgd2l0aCB0aGUgbG93ZXN0IGFuZCAxMCUgd2l0aCB0aGUgaGlnaGVzdCB2YWx1ZXMuXG4gICAqXG4gICAqIEZvciBleGFtcGxlLCBgd20oOTApYCBjYWxjdWxhdGVzIHRoZSBhdmVyYWdlIHdoaWxlIHRyZWF0aW5nIHRoZSAxMCUgb2YgdGhlXG4gICAqIGhpZ2hlc3QgdmFsdWVzIHRvIGJlIGVxdWFsIHRvIHRoZSB2YWx1ZSBhdCB0aGUgOTB0aCBwZXJjZW50aWxlLlxuICAgKiBgd20oMTAsIDkwKWAgY2FsY3VsYXRlcyB0aGUgYXZlcmFnZSB3aGlsZSB0cmVhaW5nIHRoZSBib3R0b20gMTAlIGFuZCB0aGVcbiAgICogdG9wIDEwJSBvZiB2YWx1ZXMgdG8gYmUgZXF1YWwgdG8gdGhlIGJvdW5kYXJ5IHZhbHVlcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2luc29yaXplZE1lYW4ocDE6IG51bWJlciwgcDI/OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYm91bmRhcnlQZXJjZW50aWxlU3RhdChcIndtXCIsIFwiV01cIiwgcDEsIHAyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIHNob3J0ZXIgYWxpYXMgZm9yIGB3aW5zb3JpemVkTWVhbigpYC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd20ocDE6IG51bWJlciwgcDI/OiBudW1iZXIpIHtcbiAgICByZXR1cm4gU3RhdHMud2luc29yaXplZE1lYW4ocDEsIHAyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmltbWVkIGNvdW50IChUQykgaXMgdGhlIG51bWJlciBvZiBkYXRhIHBvaW50cyBpbiB0aGUgY2hvc2VuIHJhbmdlIGZvciBhIHRyaW1tZWQgbWVhbiBzdGF0aXN0aWMuXG4gICAqXG4gICAqIC0gSWYgdHdvIG51bWJlcnMgYXJlIGdpdmVuLCB0aGV5IGRlZmluZSB0aGUgbG93ZXIgYW5kIHVwcGVyIGJvdW5kcyBpbiBwZXJjZW50YWdlcyxcbiAgICogICByZXNwZWN0aXZlbHkuXG4gICAqIC0gSWYgb25lIG51bWJlciBpcyBnaXZlbiwgaXQgZGVmaW5lcyB0aGUgdXBwZXIgYm91bmQgKHRoZSBsb3dlciBib3VuZCBpcyBhc3N1bWVkIHRvXG4gICAqICAgYmUgMCkuXG4gICAqXG4gICAqIEZvciBleGFtcGxlLCBgdGMoOTApYCByZXR1cm5zIHRoZSBudW1iZXIgb2YgZGF0YSBwb2ludHMgbm90IGluY2x1ZGluZyBhbnlcbiAgICogZGF0YSBwb2ludHMgdGhhdCBmYWxsIGluIHRoZSBoaWdoZXN0IDEwJSBvZiB0aGUgdmFsdWVzLiBgdGMoMTAsIDkwKWBcbiAgICogcmV0dXJucyB0aGUgbnVtYmVyIG9mIGRhdGEgcG9pbnRzIG5vdCBpbmNsdWRpbmcgYW55IGRhdGEgcG9pbnRzIHRoYXQgZmFsbFxuICAgKiBpbiB0aGUgbG93ZXN0IDEwJSBvZiB0aGUgdmFsdWVzIGFuZCB0aGUgaGlnaGVzdCA5MCUgb2YgdGhlIHZhbHVlcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdHJpbW1lZENvdW50KHAxOiBudW1iZXIsIHAyPzogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJvdW5kYXJ5UGVyY2VudGlsZVN0YXQoXCJ0Y1wiLCBcIlRDXCIsIHAxLCBwMik7XG4gIH1cblxuICAvKipcbiAgICogU2hvcnRlciBhbGlhcyBmb3IgYHRyaW1tZWRDb3VudCgpYC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdGMocDE6IG51bWJlciwgcDI/OiBudW1iZXIpIHtcbiAgICByZXR1cm4gU3RhdHMudHJpbW1lZENvdW50KHAxLCBwMik7XG4gIH1cblxuICAvKipcbiAgICogVHJpbW1lZCBzdW0gKFRTKSBpcyB0aGUgc3VtIG9mIHRoZSB2YWx1ZXMgb2YgZGF0YSBwb2ludHMgaW4gYSBjaG9zZW4gcmFuZ2UgZm9yIGEgdHJpbW1lZCBtZWFuIHN0YXRpc3RpYy5cbiAgICogSXQgaXMgZXF1aXZhbGVudCB0byBgKFRyaW1tZWQgTWVhbikgKiAoVHJpbW1lZCBjb3VudClgLlxuICAgKlxuICAgKiAtIElmIHR3byBudW1iZXJzIGFyZSBnaXZlbiwgdGhleSBkZWZpbmUgdGhlIGxvd2VyIGFuZCB1cHBlciBib3VuZHMgaW4gcGVyY2VudGFnZXMsXG4gICAqICAgcmVzcGVjdGl2ZWx5LlxuICAgKiAtIElmIG9uZSBudW1iZXIgaXMgZ2l2ZW4sIGl0IGRlZmluZXMgdGhlIHVwcGVyIGJvdW5kICh0aGUgbG93ZXIgYm91bmQgaXMgYXNzdW1lZCB0b1xuICAgKiAgIGJlIDApLlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgYHRzKDkwKWAgcmV0dXJucyB0aGUgc3VtIG9mIHRoZSBkYXRhIHBvaW50cyBub3QgaW5jbHVkaW5nIGFueVxuICAgKiBkYXRhIHBvaW50cyB0aGF0IGZhbGwgaW4gdGhlIGhpZ2hlc3QgMTAlIG9mIHRoZSB2YWx1ZXMuICBgdHMoMTAsIDkwKWBcbiAgICogcmV0dXJucyB0aGUgc3VtIG9mIHRoZSBkYXRhIHBvaW50cyBub3QgaW5jbHVkaW5nIGFueSBkYXRhIHBvaW50cyB0aGF0IGZhbGxcbiAgICogaW4gdGhlIGxvd2VzdCAxMCUgb2YgdGhlIHZhbHVlcyBhbmQgdGhlIGhpZ2hlc3QgOTAlIG9mIHRoZSB2YWx1ZXMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHRyaW1tZWRTdW0ocDE6IG51bWJlciwgcDI/OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYm91bmRhcnlQZXJjZW50aWxlU3RhdChcInRzXCIsIFwiVFNcIiwgcDEsIHAyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaG9ydGVyIGFsaWFzIGZvciBgdHJpbW1lZFN1bSgpYC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgdHMocDE6IG51bWJlciwgcDI/OiBudW1iZXIpIHtcbiAgICByZXR1cm4gU3RhdHMudHJpbW1lZFN1bShwMSwgcDIpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcmNlbnRpbGUgcmFuayAoUFIpIGlzIHRoZSBwZXJjZW50YWdlIG9mIHZhbHVlcyB0aGF0IG1lZXQgYSBmaXhlZCB0aHJlc2hvbGQuXG4gICAqXG4gICAqIC0gSWYgdHdvIG51bWJlcnMgYXJlIGdpdmVuLCB0aGV5IGRlZmluZSB0aGUgbG93ZXIgYW5kIHVwcGVyIGJvdW5kcyBpbiBhYnNvbHV0ZSB2YWx1ZXMsXG4gICAqICAgcmVzcGVjdGl2ZWx5LlxuICAgKiAtIElmIG9uZSBudW1iZXIgaXMgZ2l2ZW4sIGl0IGRlZmluZXMgdGhlIHVwcGVyIGJvdW5kICh0aGUgbG93ZXIgYm91bmQgaXMgYXNzdW1lZCB0b1xuICAgKiAgIGJlIDApLlxuICAgKlxuICAgKiBGb3IgZXhhbXBsZSwgYHBlcmNlbnRpbGVSYW5rKDMwMClgIHJldHVybnMgdGhlIHBlcmNlbnRhZ2Ugb2YgZGF0YSBwb2ludHMgdGhhdCBoYXZlIGEgdmFsdWUgb2YgMzAwIG9yIGxlc3MuXG4gICAqIGBwZXJjZW50aWxlUmFuaygxMDAsIDIwMDApYCByZXR1cm5zIHRoZSBwZXJjZW50YWdlIG9mIGRhdGEgcG9pbnRzIHRoYXQgaGF2ZSBhIHZhbHVlIGJldHdlZW4gMTAwIGFuZCAyMDAwLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBwZXJjZW50aWxlUmFuayh2MTogbnVtYmVyLCB2Mj86IG51bWJlcikge1xuICAgIGlmICh2MiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gYFBSKCR7djF9OiR7djJ9KWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBgUFIoOiR7djF9KWA7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNob3J0ZXIgYWxpYXMgZm9yIGBwZXJjZW50aWxlUmFuaygpYC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcHIodjE6IG51bWJlciwgdjI/OiBudW1iZXIpIHtcbiAgICByZXR1cm4gdGhpcy5wZXJjZW50aWxlUmFuayh2MSwgdjIpO1xuICB9XG59XG5cbmZ1bmN0aW9uIGFzc2VydFBlcmNlbnRhZ2UoeD86IG51bWJlcikge1xuICBpZiAoeCAhPT0gdW5kZWZpbmVkICYmICh4IDwgMCB8fCB4ID4gMTAwKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRXhwZWN0aW5nIGEgcGVyY2VudGFnZSwgZ290OiAke3h9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBGb3JtYXR0aW5nIGhlbHBlciBiZWNhdXNlIGFsbCB0aGVzZSBzdGF0cyBsb29rIHRoZSBzYW1lXG4gKi9cbmZ1bmN0aW9uIGJvdW5kYXJ5UGVyY2VudGlsZVN0YXQoXG4gIG9uZUJvdW5kYXJ5U3RhdDogc3RyaW5nLFxuICB0d29Cb3VuZGFyeVN0YXQ6IHN0cmluZyxcbiAgcDE6IG51bWJlcixcbiAgcDI6IG51bWJlciB8IHVuZGVmaW5lZCxcbikge1xuICBhc3NlcnRQZXJjZW50YWdlKHAxKTtcbiAgYXNzZXJ0UGVyY2VudGFnZShwMik7XG4gIGlmIChwMiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGAke3R3b0JvdW5kYXJ5U3RhdH0oJHtwMX0lOiR7cDJ9JSlgO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBgJHtvbmVCb3VuZGFyeVN0YXR9JHtwMX1gO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { cloudwatchLogSubscriptionFilter } from "@cdktf/provider-aws";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
import { AwsConstructBase, AwsConstructProps } from "..";
|
|
4
|
+
import { ILogGroup, SubscriptionFilterOptions } from "./log-group";
|
|
5
|
+
import * as iam from "../iam";
|
|
6
|
+
/**
|
|
7
|
+
* Outputs which may be registered for output via the Grid.
|
|
8
|
+
*/
|
|
9
|
+
export interface LogSubscriptionDestinationOutputs {
|
|
10
|
+
/**
|
|
11
|
+
* The arn of this log group
|
|
12
|
+
* @attribute
|
|
13
|
+
*/
|
|
14
|
+
readonly logGroupArn: string;
|
|
15
|
+
/**
|
|
16
|
+
* The name of this log group
|
|
17
|
+
* @attribute
|
|
18
|
+
*/
|
|
19
|
+
readonly logGroupName: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Interface for classes that can be the destination of a log Subscription
|
|
23
|
+
*/
|
|
24
|
+
export interface ILogSubscriptionDestination {
|
|
25
|
+
/**
|
|
26
|
+
* Return the properties required to send subscription events to this destination.
|
|
27
|
+
*
|
|
28
|
+
* If necessary, the destination can use the properties of the SubscriptionFilter
|
|
29
|
+
* object itself to configure its permissions to allow the subscription to write
|
|
30
|
+
* to it.
|
|
31
|
+
*
|
|
32
|
+
* The destination may reconfigure its own permissions in response to this
|
|
33
|
+
* function call.
|
|
34
|
+
*/
|
|
35
|
+
bind(scope: Construct, sourceLogGroup: ILogGroup): LogSubscriptionDestinationConfig;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Properties returned by a Subscription destination
|
|
39
|
+
*/
|
|
40
|
+
export interface LogSubscriptionDestinationConfig {
|
|
41
|
+
/**
|
|
42
|
+
* The ARN of the subscription's destination
|
|
43
|
+
*/
|
|
44
|
+
readonly arn: string;
|
|
45
|
+
/**
|
|
46
|
+
* The role to assume to write log events to the destination
|
|
47
|
+
*
|
|
48
|
+
* @default No role assumed
|
|
49
|
+
*/
|
|
50
|
+
readonly role?: iam.IRole;
|
|
51
|
+
/**
|
|
52
|
+
* Dependencies required for subscription filter creation to succeed
|
|
53
|
+
*/
|
|
54
|
+
readonly dependencies?: Construct[];
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Properties for a SubscriptionFilter
|
|
58
|
+
*/
|
|
59
|
+
export interface SubscriptionFilterProps extends SubscriptionFilterOptions, AwsConstructProps {
|
|
60
|
+
/**
|
|
61
|
+
* The log group to create the subscription on.
|
|
62
|
+
*/
|
|
63
|
+
readonly logGroup: ILogGroup;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* A new Subscription on a CloudWatch log group.
|
|
67
|
+
*/
|
|
68
|
+
export declare class SubscriptionFilter extends AwsConstructBase {
|
|
69
|
+
resource: cloudwatchLogSubscriptionFilter.CloudwatchLogSubscriptionFilter;
|
|
70
|
+
/**
|
|
71
|
+
* This resource exports no additional attributes.
|
|
72
|
+
*/
|
|
73
|
+
get outputs(): Record<string, any>;
|
|
74
|
+
constructor(scope: Construct, id: string, props: SubscriptionFilterProps);
|
|
75
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.SubscriptionFilter = 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-logs/lib/subscription-filter.ts
|
|
7
|
+
const provider_aws_1 = require("@cdktf/provider-aws");
|
|
8
|
+
const cdktf_1 = require("cdktf");
|
|
9
|
+
const __1 = require("..");
|
|
10
|
+
const log_destinations_1 = require("./log-destinations");
|
|
11
|
+
/**
|
|
12
|
+
* A new Subscription on a CloudWatch log group.
|
|
13
|
+
*/
|
|
14
|
+
class SubscriptionFilter extends __1.AwsConstructBase {
|
|
15
|
+
/**
|
|
16
|
+
* This resource exports no additional attributes.
|
|
17
|
+
*/
|
|
18
|
+
get outputs() {
|
|
19
|
+
return {};
|
|
20
|
+
}
|
|
21
|
+
constructor(scope, id, props) {
|
|
22
|
+
super(scope, id, props);
|
|
23
|
+
const name = props.filterName ||
|
|
24
|
+
this.stack.uniqueResourceName(this, {
|
|
25
|
+
prefix: this.gridUUID,
|
|
26
|
+
});
|
|
27
|
+
if (props.distribution &&
|
|
28
|
+
!cdktf_1.Token.isUnresolved(props.distribution) &&
|
|
29
|
+
!cdktf_1.Token.isUnresolved(props.destination) &&
|
|
30
|
+
!(props.destination instanceof log_destinations_1.KinesisDestination)) {
|
|
31
|
+
throw new Error("distribution property can only be used with KinesisDestination.");
|
|
32
|
+
}
|
|
33
|
+
const destProps = props.destination.bind(this, props.logGroup);
|
|
34
|
+
this.resource =
|
|
35
|
+
new provider_aws_1.cloudwatchLogSubscriptionFilter.CloudwatchLogSubscriptionFilter(this, "Resource", {
|
|
36
|
+
name,
|
|
37
|
+
logGroupName: props.logGroup.logGroupName,
|
|
38
|
+
destinationArn: destProps.arn,
|
|
39
|
+
roleArn: destProps.role && destProps.role.roleArn,
|
|
40
|
+
filterPattern: props.filterPattern.logPatternString,
|
|
41
|
+
distribution: props.distribution,
|
|
42
|
+
});
|
|
43
|
+
if (destProps.dependencies) {
|
|
44
|
+
this.resource.node.addDependency(...destProps.dependencies);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.SubscriptionFilter = SubscriptionFilter;
|
|
49
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
50
|
+
SubscriptionFilter[_a] = { fqn: "terraconstructs.aws.cloudwatch.SubscriptionFilter", version: "0.0.8" };
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLWZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hd3MvY2xvdWR3YXRjaC9zdWJzY3JpcHRpb24tZmlsdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsd0dBQXdHO0FBRXhHLHNEQUFzRTtBQUN0RSxpQ0FBOEI7QUFFOUIsMEJBQXlEO0FBR3pELHlEQUF3RDtBQXdFeEQ7O0dBRUc7QUFDSCxNQUFhLGtCQUFtQixTQUFRLG9CQUFnQjtJQUV0RDs7T0FFRztJQUNILElBQVcsT0FBTztRQUNoQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQThCO1FBQ3RFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sSUFBSSxHQUNSLEtBQUssQ0FBQyxVQUFVO1lBQ2hCLElBQUksQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFO2dCQUNsQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVE7YUFDdEIsQ0FBQyxDQUFDO1FBRUwsSUFDRSxLQUFLLENBQUMsWUFBWTtZQUNsQixDQUFDLGFBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQztZQUN2QyxDQUFDLGFBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztZQUN0QyxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsWUFBWSxxQ0FBa0IsQ0FBQyxFQUNsRCxDQUFDO1lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FDYixpRUFBaUUsQ0FDbEUsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRS9ELElBQUksQ0FBQyxRQUFRO1lBQ1gsSUFBSSw4Q0FBK0IsQ0FBQywrQkFBK0IsQ0FDakUsSUFBSSxFQUNKLFVBQVUsRUFDVjtnQkFDRSxJQUFJO2dCQUNKLFlBQVksRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVk7Z0JBQ3pDLGNBQWMsRUFBRSxTQUFTLENBQUMsR0FBRztnQkFDN0IsT0FBTyxFQUFFLFNBQVMsQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPO2dCQUNqRCxhQUFhLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0I7Z0JBQ25ELFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTthQUNqQyxDQUNGLENBQUM7UUFDSixJQUFJLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDOUQsQ0FBQztJQUNILENBQUM7O0FBOUNILGdEQStDQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE3MC4wL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1sb2dzL2xpYi9zdWJzY3JpcHRpb24tZmlsdGVyLnRzXG5cbmltcG9ydCB7IGNsb3Vkd2F0Y2hMb2dTdWJzY3JpcHRpb25GaWx0ZXIgfSBmcm9tIFwiQGNka3RmL3Byb3ZpZGVyLWF3c1wiO1xuaW1wb3J0IHsgVG9rZW4gfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBBd3NDb25zdHJ1Y3RCYXNlLCBBd3NDb25zdHJ1Y3RQcm9wcyB9IGZyb20gXCIuLlwiO1xuaW1wb3J0IHsgSUxvZ0dyb3VwLCBTdWJzY3JpcHRpb25GaWx0ZXJPcHRpb25zIH0gZnJvbSBcIi4vbG9nLWdyb3VwXCI7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcIi4uL2lhbVwiO1xuaW1wb3J0IHsgS2luZXNpc0Rlc3RpbmF0aW9uIH0gZnJvbSBcIi4vbG9nLWRlc3RpbmF0aW9uc1wiO1xuXG4vKipcbiAqIE91dHB1dHMgd2hpY2ggbWF5IGJlIHJlZ2lzdGVyZWQgZm9yIG91dHB1dCB2aWEgdGhlIEdyaWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9nU3Vic2NyaXB0aW9uRGVzdGluYXRpb25PdXRwdXRzIHtcbiAgLyoqXG4gICAqIFRoZSBhcm4gb2YgdGhpcyBsb2cgZ3JvdXBcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9nR3JvdXBBcm46IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoaXMgbG9nIGdyb3VwXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IGxvZ0dyb3VwTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEludGVyZmFjZSBmb3IgY2xhc3NlcyB0aGF0IGNhbiBiZSB0aGUgZGVzdGluYXRpb24gb2YgYSBsb2cgU3Vic2NyaXB0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSUxvZ1N1YnNjcmlwdGlvbkRlc3RpbmF0aW9uIHtcbiAgLyoqXG4gICAqIFJldHVybiB0aGUgcHJvcGVydGllcyByZXF1aXJlZCB0byBzZW5kIHN1YnNjcmlwdGlvbiBldmVudHMgdG8gdGhpcyBkZXN0aW5hdGlvbi5cbiAgICpcbiAgICogSWYgbmVjZXNzYXJ5LCB0aGUgZGVzdGluYXRpb24gY2FuIHVzZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgU3Vic2NyaXB0aW9uRmlsdGVyXG4gICAqIG9iamVjdCBpdHNlbGYgdG8gY29uZmlndXJlIGl0cyBwZXJtaXNzaW9ucyB0byBhbGxvdyB0aGUgc3Vic2NyaXB0aW9uIHRvIHdyaXRlXG4gICAqIHRvIGl0LlxuICAgKlxuICAgKiBUaGUgZGVzdGluYXRpb24gbWF5IHJlY29uZmlndXJlIGl0cyBvd24gcGVybWlzc2lvbnMgaW4gcmVzcG9uc2UgdG8gdGhpc1xuICAgKiBmdW5jdGlvbiBjYWxsLlxuICAgKi9cbiAgYmluZChcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIHNvdXJjZUxvZ0dyb3VwOiBJTG9nR3JvdXAsXG4gICk6IExvZ1N1YnNjcmlwdGlvbkRlc3RpbmF0aW9uQ29uZmlnO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgcmV0dXJuZWQgYnkgYSBTdWJzY3JpcHRpb24gZGVzdGluYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dTdWJzY3JpcHRpb25EZXN0aW5hdGlvbkNvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBzdWJzY3JpcHRpb24ncyBkZXN0aW5hdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgYXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByb2xlIHRvIGFzc3VtZSB0byB3cml0ZSBsb2cgZXZlbnRzIHRvIHRoZSBkZXN0aW5hdGlvblxuICAgKlxuICAgKiBAZGVmYXVsdCBObyByb2xlIGFzc3VtZWRcbiAgICovXG4gIHJlYWRvbmx5IHJvbGU/OiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIERlcGVuZGVuY2llcyByZXF1aXJlZCBmb3Igc3Vic2NyaXB0aW9uIGZpbHRlciBjcmVhdGlvbiB0byBzdWNjZWVkXG4gICAqL1xuICByZWFkb25seSBkZXBlbmRlbmNpZXM/OiBDb25zdHJ1Y3RbXTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBhIFN1YnNjcmlwdGlvbkZpbHRlclxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN1YnNjcmlwdGlvbkZpbHRlclByb3BzXG4gIGV4dGVuZHMgU3Vic2NyaXB0aW9uRmlsdGVyT3B0aW9ucyxcbiAgICBBd3NDb25zdHJ1Y3RQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbG9nIGdyb3VwIHRvIGNyZWF0ZSB0aGUgc3Vic2NyaXB0aW9uIG9uLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nR3JvdXA6IElMb2dHcm91cDtcbn1cblxuLyoqXG4gKiBBIG5ldyBTdWJzY3JpcHRpb24gb24gYSBDbG91ZFdhdGNoIGxvZyBncm91cC5cbiAqL1xuZXhwb3J0IGNsYXNzIFN1YnNjcmlwdGlvbkZpbHRlciBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2Uge1xuICBwdWJsaWMgcmVzb3VyY2U6IGNsb3Vkd2F0Y2hMb2dTdWJzY3JpcHRpb25GaWx0ZXIuQ2xvdWR3YXRjaExvZ1N1YnNjcmlwdGlvbkZpbHRlcjtcbiAgLyoqXG4gICAqIFRoaXMgcmVzb3VyY2UgZXhwb3J0cyBubyBhZGRpdGlvbmFsIGF0dHJpYnV0ZXMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFN1YnNjcmlwdGlvbkZpbHRlclByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgY29uc3QgbmFtZSA9XG4gICAgICBwcm9wcy5maWx0ZXJOYW1lIHx8XG4gICAgICB0aGlzLnN0YWNrLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7XG4gICAgICAgIHByZWZpeDogdGhpcy5ncmlkVVVJRCxcbiAgICAgIH0pO1xuXG4gICAgaWYgKFxuICAgICAgcHJvcHMuZGlzdHJpYnV0aW9uICYmXG4gICAgICAhVG9rZW4uaXNVbnJlc29sdmVkKHByb3BzLmRpc3RyaWJ1dGlvbikgJiZcbiAgICAgICFUb2tlbi5pc1VucmVzb2x2ZWQocHJvcHMuZGVzdGluYXRpb24pICYmXG4gICAgICAhKHByb3BzLmRlc3RpbmF0aW9uIGluc3RhbmNlb2YgS2luZXNpc0Rlc3RpbmF0aW9uKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcImRpc3RyaWJ1dGlvbiBwcm9wZXJ0eSBjYW4gb25seSBiZSB1c2VkIHdpdGggS2luZXNpc0Rlc3RpbmF0aW9uLlwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBkZXN0UHJvcHMgPSBwcm9wcy5kZXN0aW5hdGlvbi5iaW5kKHRoaXMsIHByb3BzLmxvZ0dyb3VwKTtcblxuICAgIHRoaXMucmVzb3VyY2UgPVxuICAgICAgbmV3IGNsb3Vkd2F0Y2hMb2dTdWJzY3JpcHRpb25GaWx0ZXIuQ2xvdWR3YXRjaExvZ1N1YnNjcmlwdGlvbkZpbHRlcihcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCJSZXNvdXJjZVwiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZSxcbiAgICAgICAgICBsb2dHcm91cE5hbWU6IHByb3BzLmxvZ0dyb3VwLmxvZ0dyb3VwTmFtZSxcbiAgICAgICAgICBkZXN0aW5hdGlvbkFybjogZGVzdFByb3BzLmFybixcbiAgICAgICAgICByb2xlQXJuOiBkZXN0UHJvcHMucm9sZSAmJiBkZXN0UHJvcHMucm9sZS5yb2xlQXJuLFxuICAgICAgICAgIGZpbHRlclBhdHRlcm46IHByb3BzLmZpbHRlclBhdHRlcm4ubG9nUGF0dGVyblN0cmluZyxcbiAgICAgICAgICBkaXN0cmlidXRpb246IHByb3BzLmRpc3RyaWJ1dGlvbixcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgaWYgKGRlc3RQcm9wcy5kZXBlbmRlbmNpZXMpIHtcbiAgICAgIHRoaXMucmVzb3VyY2Uubm9kZS5hZGREZXBlbmRlbmN5KC4uLmRlc3RQcm9wcy5kZXBlbmRlbmNpZXMpO1xuICAgIH1cbiAgfVxufVxuIl19
|