terraconstructs 0.0.11 → 0.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +104486 -34582
- package/lib/aws/arn.js +1 -1
- package/lib/aws/aws-construct.d.ts +1 -1
- package/lib/aws/aws-construct.js +28 -2
- package/lib/aws/aws-stack.d.ts +2 -4
- package/lib/aws/aws-stack.js +21 -8
- package/lib/aws/aws-tags.d.ts +58 -0
- package/lib/aws/aws-tags.js +77 -0
- package/lib/aws/cloudwatch/actions/ec2.js +1 -1
- package/lib/aws/cloudwatch/actions/lambda.js +1 -1
- package/lib/aws/cloudwatch/alarm-base.js +1 -1
- package/lib/aws/cloudwatch/alarm-rule.js +1 -1
- package/lib/aws/cloudwatch/alarm-status-widget.js +1 -1
- package/lib/aws/cloudwatch/alarm.js +1 -1
- package/lib/aws/cloudwatch/composite-alarm.js +1 -1
- package/lib/aws/cloudwatch/dashboard.js +1 -1
- package/lib/aws/cloudwatch/data-protection-policy.js +3 -3
- package/lib/aws/cloudwatch/graph.js +8 -8
- package/lib/aws/cloudwatch/layout.js +3 -3
- package/lib/aws/cloudwatch/log-destinations/kinesis.js +1 -1
- package/lib/aws/cloudwatch/log-destinations/lambda.js +1 -1
- package/lib/aws/cloudwatch/log-group.js +1 -1
- package/lib/aws/cloudwatch/log-query.js +1 -1
- package/lib/aws/cloudwatch/log-stream.js +1 -1
- package/lib/aws/cloudwatch/metric-filter.d.ts +1 -1
- package/lib/aws/cloudwatch/metric-filter.js +4 -4
- package/lib/aws/cloudwatch/metric.js +2 -2
- package/lib/aws/cloudwatch/pattern.js +3 -3
- package/lib/aws/cloudwatch/policy.js +1 -1
- package/lib/aws/cloudwatch/private/env-tokens.js +5 -6
- package/lib/aws/cloudwatch/private/metric-util.js +4 -5
- package/lib/aws/cloudwatch/private/object.js +2 -3
- package/lib/aws/cloudwatch/private/rendering.js +3 -3
- package/lib/aws/cloudwatch/private/statistic.js +6 -7
- package/lib/aws/cloudwatch/query-definition.js +2 -2
- package/lib/aws/cloudwatch/stats.js +1 -1
- package/lib/aws/cloudwatch/subscription-filter.d.ts +1 -1
- package/lib/aws/cloudwatch/subscription-filter.js +4 -4
- package/lib/aws/cloudwatch/text.js +1 -1
- package/lib/aws/cloudwatch/variable.js +3 -3
- package/lib/aws/cloudwatch/widget.d.ts +1 -1
- package/lib/aws/cloudwatch/widget.js +4 -4
- package/lib/aws/compute/activity.js +3 -2
- package/lib/aws/compute/alb/application-listener-action.d.ts +334 -0
- package/lib/aws/compute/alb/application-listener-action.js +281 -0
- package/lib/aws/compute/alb/application-listener-certificate.d.ts +35 -0
- package/lib/aws/compute/alb/application-listener-certificate.js +35 -0
- package/lib/aws/compute/alb/application-listener-rule.d.ts +233 -0
- package/lib/aws/compute/alb/application-listener-rule.js +220 -0
- package/lib/aws/compute/alb/application-listener.d.ts +574 -0
- package/lib/aws/compute/alb/application-listener.js +538 -0
- package/lib/aws/compute/alb/application-load-balancer.d.ts +715 -0
- package/lib/aws/compute/alb/application-load-balancer.js +780 -0
- package/lib/aws/compute/alb/application-target-group.d.ts +339 -0
- package/lib/aws/compute/alb/application-target-group.js +427 -0
- package/lib/aws/compute/alb/conditions.d.ts +61 -0
- package/lib/aws/compute/alb/conditions.js +164 -0
- package/lib/aws/compute/alb/trust-store-revocation.d.ts +59 -0
- package/lib/aws/compute/alb/trust-store-revocation.js +46 -0
- package/lib/aws/compute/alb/trust-store.d.ts +86 -0
- package/lib/aws/compute/alb/trust-store.js +79 -0
- package/lib/aws/compute/architecture.js +1 -1
- package/lib/aws/compute/aspects/require-imdsv2-aspect.d.ts +75 -0
- package/lib/aws/compute/aspects/require-imdsv2-aspect.js +106 -0
- package/lib/aws/compute/bastion-host.d.ts +172 -0
- package/lib/aws/compute/bastion-host.js +114 -0
- package/lib/aws/compute/chain.js +1 -1
- package/lib/aws/compute/cidr-splits.d.ts +49 -0
- package/lib/aws/compute/cidr-splits.js +59 -0
- package/lib/aws/compute/client-vpn-authorization-rule.d.ts +43 -0
- package/lib/aws/compute/client-vpn-authorization-rule.js +30 -0
- package/lib/aws/compute/client-vpn-endpoint-types.d.ts +62 -0
- package/lib/aws/compute/client-vpn-endpoint-types.js +25 -0
- package/lib/aws/compute/client-vpn-endpoint.d.ts +239 -0
- package/lib/aws/compute/client-vpn-endpoint.js +259 -0
- package/lib/aws/compute/client-vpn-route.d.ts +67 -0
- package/lib/aws/compute/client-vpn-route.js +57 -0
- package/lib/aws/compute/condition.js +1 -1
- package/lib/aws/compute/connections.d.ts +137 -0
- package/lib/aws/compute/connections.js +208 -0
- package/lib/aws/compute/ec2-augmentations.generated.d.ts +53 -0
- package/lib/aws/compute/ec2-augmentations.generated.js +35 -0
- package/lib/aws/compute/ec2-canned-metrics.generated.d.ts +555 -0
- package/lib/aws/compute/ec2-canned-metrics.generated.js +681 -0
- package/lib/aws/compute/ec2-util-v2.d.ts +141 -0
- package/lib/aws/compute/ec2-util-v2.js +286 -0
- package/lib/aws/compute/ec2-util.d.ts +52 -0
- package/lib/aws/compute/ec2-util.js +138 -0
- package/lib/aws/compute/elasticloadbalancing-canned-metrics.generated.d.ts +176 -0
- package/lib/aws/compute/elasticloadbalancing-canned-metrics.generated.js +119 -0
- package/lib/aws/compute/elasticloadbalancingv2-canned-metrics.generated.d.ts +860 -0
- package/lib/aws/compute/elasticloadbalancingv2-canned-metrics.generated.js +597 -0
- package/lib/aws/compute/event-invoke-config.js +1 -1
- package/lib/aws/compute/event-source-filter.js +2 -2
- package/lib/aws/compute/event-source-mapping.js +1 -1
- package/lib/aws/compute/event-sources/s3-onfailure-destination.js +1 -1
- package/lib/aws/compute/event-sources/s3.js +1 -1
- package/lib/aws/compute/event-sources/sqs-dlq.js +1 -1
- package/lib/aws/compute/event-sources/sqs.js +1 -1
- package/lib/aws/compute/fields.js +4 -4
- package/lib/aws/compute/function-alias.js +1 -1
- package/lib/aws/compute/function-base.js +2 -2
- package/lib/aws/compute/function-destinations/event-bridge.js +1 -1
- package/lib/aws/compute/function-destinations/function.js +1 -1
- package/lib/aws/compute/function-destinations/sqs.js +1 -1
- package/lib/aws/compute/function-nodejs.js +1 -1
- package/lib/aws/compute/function-url.js +1 -1
- package/lib/aws/compute/function-vpc-config.generated.d.ts +3 -3
- package/lib/aws/compute/function-vpc-config.generated.js +1 -1
- package/lib/aws/compute/function.d.ts +1 -1
- package/lib/aws/compute/function.js +5 -5
- package/lib/aws/compute/index-alpha.d.ts +5 -0
- package/lib/aws/compute/index-alpha.js +22 -0
- package/lib/aws/compute/index.d.ts +60 -0
- package/lib/aws/compute/index.js +70 -2
- package/lib/aws/compute/instance-types.d.ts +1354 -0
- package/lib/aws/compute/instance-types.js +1683 -0
- package/lib/aws/compute/instance.d.ts +436 -0
- package/lib/aws/compute/instance.js +262 -0
- package/lib/aws/compute/ip-addresses.d.ts +249 -0
- package/lib/aws/compute/ip-addresses.js +248 -0
- package/lib/aws/compute/ipam.d.ts +309 -0
- package/lib/aws/compute/ipam.js +306 -0
- package/lib/aws/compute/key-pair.d.ts +178 -0
- package/lib/aws/compute/key-pair.js +194 -0
- package/lib/aws/compute/lambda-augmentations.generated.d.ts +65 -0
- package/lib/aws/compute/lambda-augmentations.generated.js +41 -0
- package/lib/aws/compute/lambda-canned-metrics.generated.d.ts +316 -0
- package/lib/aws/compute/lambda-canned-metrics.generated.js +119 -0
- package/lib/aws/compute/launch-template.d.ts +540 -0
- package/lib/aws/compute/launch-template.js +468 -0
- package/lib/aws/compute/lb-shared/access-logs-accounts.d.ts +7 -0
- package/lib/aws/compute/lb-shared/access-logs-accounts.js +46 -0
- package/lib/aws/compute/lb-shared/base-listener.d.ts +113 -0
- package/lib/aws/compute/lb-shared/base-listener.js +181 -0
- package/lib/aws/compute/lb-shared/base-load-balancer.d.ts +212 -0
- package/lib/aws/compute/lb-shared/base-load-balancer.js +290 -0
- package/lib/aws/compute/lb-shared/base-target-group.d.ts +382 -0
- package/lib/aws/compute/lb-shared/base-target-group.js +364 -0
- package/lib/aws/compute/lb-shared/enums.d.ts +282 -0
- package/lib/aws/compute/lb-shared/enums.js +301 -0
- package/lib/aws/compute/lb-shared/grid-lookup-types.d.ts +42 -0
- package/lib/aws/compute/lb-shared/grid-lookup-types.js +53 -0
- package/lib/aws/compute/lb-shared/imported.d.ts +24 -0
- package/lib/aws/compute/lb-shared/imported.js +27 -0
- package/lib/aws/compute/lb-shared/lb-listener-config.generated.d.ts +194 -0
- package/lib/aws/compute/lb-shared/lb-listener-config.generated.js +3 -0
- package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.d.ts +56 -0
- package/lib/aws/compute/lb-shared/lb-target-group-attachment-config.generated.js +3 -0
- package/lib/aws/compute/lb-shared/listener-action.d.ts +14 -0
- package/lib/aws/compute/lb-shared/listener-action.js +4 -0
- package/lib/aws/compute/lb-shared/listener-certificate.d.ts +28 -0
- package/lib/aws/compute/lb-shared/listener-certificate.js +29 -0
- package/lib/aws/compute/lb-shared/load-balancer-targets.d.ts +93 -0
- package/lib/aws/compute/lb-shared/load-balancer-targets.js +127 -0
- package/lib/aws/compute/lb-shared/util.d.ts +113 -0
- package/lib/aws/compute/lb-shared/util.js +264 -0
- package/lib/aws/compute/lb-targets/alb-target.d.ts +67 -0
- package/lib/aws/compute/lb-targets/alb-target.js +100 -0
- package/lib/aws/compute/lb-targets/index.d.ts +4 -0
- package/lib/aws/compute/lb-targets/index.js +22 -0
- package/lib/aws/compute/lb-targets/instance-target.d.ts +42 -0
- package/lib/aws/compute/lb-targets/instance-target.js +67 -0
- package/lib/aws/compute/lb-targets/ip-target.d.ts +55 -0
- package/lib/aws/compute/lb-targets/ip-target.js +79 -0
- package/lib/aws/compute/lb-targets/lambda-target.d.ts +25 -0
- package/lib/aws/compute/lb-targets/lambda-target.js +50 -0
- package/lib/aws/compute/load-balancer.d.ts +336 -0
- package/lib/aws/compute/load-balancer.js +287 -0
- package/lib/aws/compute/machine-image/amazon-linux-2022.d.ts +63 -0
- package/lib/aws/compute/machine-image/amazon-linux-2022.js +84 -0
- package/lib/aws/compute/machine-image/amazon-linux-2023.d.ts +63 -0
- package/lib/aws/compute/machine-image/amazon-linux-2023.js +84 -0
- package/lib/aws/compute/machine-image/amazon-linux2.d.ts +76 -0
- package/lib/aws/compute/machine-image/amazon-linux2.js +87 -0
- package/lib/aws/compute/machine-image/common.d.ts +181 -0
- package/lib/aws/compute/machine-image/common.js +122 -0
- package/lib/aws/compute/machine-image/index.d.ts +5 -0
- package/lib/aws/compute/machine-image/index.js +22 -0
- package/lib/aws/compute/machine-image/machine-image.d.ts +463 -0
- package/lib/aws/compute/machine-image/machine-image.js +566 -0
- package/lib/aws/compute/machine-image/utils.d.ts +2 -0
- package/lib/aws/compute/machine-image/utils.js +17 -0
- package/lib/aws/compute/nat.d.ts +325 -0
- package/lib/aws/compute/nat.js +455 -0
- package/lib/aws/compute/network-acl-types.d.ts +152 -0
- package/lib/aws/compute/network-acl-types.js +156 -0
- package/lib/aws/compute/network-acl.d.ts +285 -0
- package/lib/aws/compute/network-acl.js +207 -0
- package/lib/aws/compute/network-util.d.ts +116 -0
- package/lib/aws/compute/network-util.js +241 -0
- package/lib/aws/compute/nlb/network-listener-action.d.ts +92 -0
- package/lib/aws/compute/nlb/network-listener-action.js +146 -0
- package/lib/aws/compute/nlb/network-listener-certificate.d.ts +24 -0
- package/lib/aws/compute/nlb/network-listener-certificate.js +25 -0
- package/lib/aws/compute/nlb/network-listener.d.ts +248 -0
- package/lib/aws/compute/nlb/network-listener.js +217 -0
- package/lib/aws/compute/nlb/network-load-balancer.d.ts +315 -0
- package/lib/aws/compute/nlb/network-load-balancer.js +360 -0
- package/lib/aws/compute/nlb/network-target-group.d.ts +153 -0
- package/lib/aws/compute/nlb/network-target-group.js +223 -0
- package/lib/aws/compute/peer.d.ts +64 -0
- package/lib/aws/compute/peer.js +235 -0
- package/lib/aws/compute/placement-group.d.ts +161 -0
- package/lib/aws/compute/placement-group.js +133 -0
- package/lib/aws/compute/port.d.ts +287 -0
- package/lib/aws/compute/port.js +390 -0
- package/lib/aws/compute/prefix-list.d.ts +131 -0
- package/lib/aws/compute/prefix-list.js +114 -0
- package/lib/aws/compute/private/context-stub.d.ts +7 -0
- package/lib/aws/compute/private/context-stub.js +43 -0
- package/lib/aws/compute/private/ebs-util.d.ts +14 -0
- package/lib/aws/compute/private/ebs-util.js +145 -0
- package/lib/aws/compute/private/intrinstics.js +2 -1
- package/lib/aws/compute/private/json-path.js +8 -8
- package/lib/aws/compute/private/util.js +2 -3
- package/lib/aws/compute/route.d.ts +547 -0
- package/lib/aws/compute/route.js +469 -0
- package/lib/aws/compute/security-group.d.ts +414 -0
- package/lib/aws/compute/security-group.js +538 -0
- package/lib/aws/compute/state-graph.js +1 -1
- package/lib/aws/compute/state-machine-fragment.js +1 -1
- package/lib/aws/compute/state-machine.d.ts +2 -2
- package/lib/aws/compute/state-machine.js +14 -12
- package/lib/aws/compute/states/choice.js +1 -1
- package/lib/aws/compute/states/custom-state.js +1 -1
- package/lib/aws/compute/states/distributed-map/item-batcher.js +1 -1
- package/lib/aws/compute/states/distributed-map/item-reader.js +5 -5
- package/lib/aws/compute/states/distributed-map/result-writer.js +1 -1
- package/lib/aws/compute/states/distributed-map.js +1 -1
- package/lib/aws/compute/states/fail.js +1 -1
- package/lib/aws/compute/states/map-base.js +1 -1
- package/lib/aws/compute/states/map.js +1 -1
- package/lib/aws/compute/states/parallel.js +1 -1
- package/lib/aws/compute/states/pass.js +2 -2
- package/lib/aws/compute/states/state.js +5 -5
- package/lib/aws/compute/states/succeed.js +1 -1
- package/lib/aws/compute/states/task-base.js +2 -2
- package/lib/aws/compute/states/task.js +1 -1
- package/lib/aws/compute/states/wait.js +2 -2
- package/lib/aws/compute/stepfunctions-canned-metrics.generated.d.ts +83 -0
- package/lib/aws/compute/stepfunctions-canned-metrics.generated.js +127 -0
- package/lib/aws/compute/subnet-v2.d.ts +213 -0
- package/lib/aws/compute/subnet-v2.js +405 -0
- package/lib/aws/compute/subnet.d.ts +37 -0
- package/lib/aws/compute/subnet.js +181 -0
- package/lib/aws/compute/task-credentials.js +1 -1
- package/lib/aws/compute/task-input.js +1 -1
- package/lib/aws/compute/tasks/aws-sdk/call-aws-service.js +1 -1
- package/lib/aws/compute/tasks/eventbridge/put-events.js +1 -1
- package/lib/aws/compute/tasks/http/invoke.js +1 -1
- package/lib/aws/compute/tasks/lambda/invoke.js +1 -1
- package/lib/aws/compute/tasks/private/task-utils.js +3 -4
- package/lib/aws/compute/tasks/resource-arn-suffix.js +2 -3
- package/lib/aws/compute/tasks/sqs/send-message.js +1 -1
- package/lib/aws/compute/tasks/stepfunctions/invoke-activity.js +1 -1
- package/lib/aws/compute/tasks/stepfunctions/start-execution.js +1 -1
- package/lib/aws/compute/types.js +2 -2
- package/lib/aws/compute/user-data.d.ts +270 -0
- package/lib/aws/compute/user-data.js +487 -0
- package/lib/aws/compute/util.d.ts +1 -1
- package/lib/aws/compute/util.js +4 -5
- package/lib/aws/compute/volume.d.ts +480 -0
- package/lib/aws/compute/volume.js +426 -0
- package/lib/aws/compute/vpc-endpoint-service.d.ts +149 -0
- package/lib/aws/compute/vpc-endpoint-service.js +90 -0
- package/lib/aws/compute/vpc-endpoint.d.ts +742 -0
- package/lib/aws/compute/vpc-endpoint.js +811 -0
- package/lib/aws/compute/vpc-flow-logs.d.ts +551 -0
- package/lib/aws/compute/vpc-flow-logs.js +693 -0
- package/lib/aws/compute/vpc-lookup.d.ts +73 -0
- package/lib/aws/compute/vpc-lookup.js +3 -0
- package/lib/aws/compute/vpc-v2-base.d.ts +353 -0
- package/lib/aws/compute/vpc-v2-base.js +493 -0
- package/lib/aws/compute/vpc-v2.d.ts +385 -0
- package/lib/aws/compute/vpc-v2.js +408 -0
- package/lib/aws/compute/vpc.d.ts +1448 -0
- package/lib/aws/compute/vpc.js +1495 -0
- package/lib/aws/compute/vpn.d.ts +443 -0
- package/lib/aws/compute/vpn.js +397 -0
- package/lib/aws/compute/windows-versions.d.ts +418 -0
- package/lib/aws/compute/windows-versions.js +426 -0
- package/lib/aws/edge/certificate-base.d.ts +20 -0
- package/lib/aws/edge/certificate-base.js +28 -0
- package/lib/aws/edge/certificate.d.ts +23 -2
- package/lib/aws/edge/certificate.js +54 -4
- package/lib/aws/edge/distribution.js +3 -3
- package/lib/aws/edge/dns-alias-record-targets.js +2 -2
- package/lib/aws/edge/dns-record.js +16 -16
- package/lib/aws/edge/dns-zone.d.ts +20 -2
- package/lib/aws/edge/dns-zone.js +25 -10
- package/lib/aws/edge/function.js +2 -2
- package/lib/aws/edge/index.d.ts +1 -0
- package/lib/aws/edge/index.js +2 -1
- package/lib/aws/edge/key-value-store.js +4 -4
- package/lib/aws/edge/origin.js +7 -5
- package/lib/aws/edge/response-headers-policy.js +1 -1
- package/lib/aws/encryption/alias.js +1 -1
- package/lib/aws/encryption/key.js +1 -1
- package/lib/aws/encryption/via-service-principal.js +1 -1
- package/lib/aws/iam/grant.js +2 -2
- package/lib/aws/iam/index.d.ts +1 -0
- package/lib/aws/iam/index.js +2 -1
- package/lib/aws/iam/instance-profile.d.ts +155 -0
- package/lib/aws/iam/instance-profile.js +124 -0
- package/lib/aws/iam/managed-policy.js +1 -1
- package/lib/aws/iam/oidc-provider.js +1 -1
- package/lib/aws/iam/policy-document-config.generated.d.ts +8 -8
- package/lib/aws/iam/policy-document-config.generated.js +1 -1
- package/lib/aws/iam/policy-document.js +1 -1
- package/lib/aws/iam/policy-statement-props.generated.d.ts +8 -8
- package/lib/aws/iam/policy-statement-props.generated.js +1 -1
- package/lib/aws/iam/policy-statement.js +9 -9
- package/lib/aws/iam/policy.js +1 -1
- package/lib/aws/iam/principals.js +26 -26
- package/lib/aws/iam/private/assume-role-policy.js +2 -3
- package/lib/aws/iam/private/comparable-principal.js +2 -3
- package/lib/aws/iam/private/immutable-role.d.ts +2 -1
- package/lib/aws/iam/private/immutable-role.js +3 -3
- package/lib/aws/iam/private/imported-role.d.ts +1 -1
- package/lib/aws/iam/private/imported-role.js +3 -3
- package/lib/aws/iam/private/merge-statements.js +2 -3
- package/lib/aws/iam/private/util.js +4 -4
- package/lib/aws/iam/role.js +1 -1
- package/lib/aws/iam/saml-provider.d.ts +1 -1
- package/lib/aws/iam/saml-provider.js +6 -6
- package/lib/aws/iam/unknown-principal.js +1 -1
- package/lib/aws/iam/utils.js +2 -3
- package/lib/aws/index.d.ts +1 -0
- package/lib/aws/index.js +4 -1
- package/lib/aws/network/simple-ipv4-vpc.js +5 -5
- package/lib/aws/network/subnet-group.js +3 -3
- package/lib/aws/network/subnet.d.ts +1 -1
- package/lib/aws/network/subnet.js +7 -7
- package/lib/aws/notify/archive.js +3 -2
- package/lib/aws/notify/connection.js +5 -4
- package/lib/aws/notify/event-bus.js +5 -4
- package/lib/aws/notify/event-pattern.js +3 -3
- package/lib/aws/notify/index.js +3 -1
- package/lib/aws/notify/input.js +4 -3
- package/lib/aws/notify/kinesis-stream.js +3 -2
- package/lib/aws/notify/on-event-options.js +2 -1
- package/lib/aws/notify/queue-config.generated.d.ts +18 -11
- package/lib/aws/notify/queue-config.generated.js +1 -1
- package/lib/aws/notify/queue-policy.js +1 -1
- package/lib/aws/notify/queue.js +1 -1
- package/lib/aws/notify/resource-policy.js +1 -1
- package/lib/aws/notify/rule.js +3 -2
- package/lib/aws/notify/schedule.js +2 -2
- package/lib/aws/notify/sqs-augmentations.generated.d.ts +125 -0
- package/lib/aws/notify/sqs-augmentations.generated.js +74 -0
- package/lib/aws/notify/target.js +2 -1
- package/lib/aws/notify/targets/event-bus.js +1 -1
- package/lib/aws/notify/targets/function.js +1 -1
- package/lib/aws/notify/targets/log-group.js +2 -2
- package/lib/aws/notify/targets/sqs.js +1 -1
- package/lib/aws/notify/targets/state-machine.js +1 -1
- package/lib/aws/notify/targets/util.d.ts +1 -1
- package/lib/aws/notify/targets/util.js +10 -11
- package/lib/aws/notify/util.js +4 -4
- package/lib/aws/provider-config.generated.d.ts +33 -33
- package/lib/aws/provider-config.generated.js +1 -1
- package/lib/aws/storage/bucket-notifications.js +1 -1
- package/lib/aws/storage/bucket-policy.js +1 -1
- package/lib/aws/storage/bucket-source.js +1 -1
- package/lib/aws/storage/bucket.d.ts +298 -65
- package/lib/aws/storage/bucket.js +548 -225
- package/lib/aws/storage/cors-config.generated.d.ts +3 -3
- package/lib/aws/storage/cors-config.generated.js +1 -1
- package/lib/aws/storage/cors-rule-config.generated.d.ts +5 -5
- package/lib/aws/storage/cors-rule-config.generated.js +1 -1
- package/lib/aws/storage/index.d.ts +1 -0
- package/lib/aws/storage/index.js +2 -1
- package/lib/aws/storage/lifecycle-config.generated.d.ts +11 -11
- package/lib/aws/storage/lifecycle-config.generated.js +1 -1
- package/lib/aws/storage/notification-targets/function.js +6 -6
- package/lib/aws/storage/notification-targets/queue.js +1 -1
- package/lib/aws/storage/origin-access-identity.d.ts +1 -1
- package/lib/aws/storage/origin-access-identity.js +5 -4
- package/lib/aws/storage/parameter-util.d.ts +12 -0
- package/lib/aws/storage/parameter-util.js +65 -0
- package/lib/aws/storage/parameter.d.ts +526 -0
- package/lib/aws/storage/parameter.js +606 -0
- package/lib/aws/storage/s3-canned-metrics.generated.d.ts +22 -0
- package/lib/aws/storage/s3-canned-metrics.generated.js +23 -0
- package/lib/aws/storage/util.d.ts +25 -3
- package/lib/aws/storage/util.js +84 -17
- package/lib/aws/storage/website-config.generated.d.ts +5 -5
- package/lib/aws/storage/website-config.generated.js +1 -1
- package/lib/aws/util.js +2 -3
- package/lib/construct-base.d.ts +10 -1
- package/lib/construct-base.js +9 -6
- package/lib/duration.js +1 -1
- package/lib/expiration.d.ts +48 -0
- package/lib/expiration.js +68 -0
- package/lib/helpers-internal/index.d.ts +1 -0
- package/lib/helpers-internal/index.js +7 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +3 -1
- package/lib/private/md5.d.ts +4 -0
- package/lib/private/md5.js +14 -0
- package/lib/private/unique-resource-name.js +3 -4
- package/lib/size.js +2 -2
- package/lib/stack-base.d.ts +4 -23
- package/lib/stack-base.js +9 -30
- package/lib/terra-func.d.ts +103 -0
- package/lib/terra-func.js +170 -0
- package/lib/token.js +5 -5
- package/package.json +15 -8
- package/bun.lockb +0 -0
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { placementGroup } from "@cdktf/provider-aws";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
import { IAwsConstruct, AwsConstructBase, AwsConstructProps } from "../aws-construct";
|
|
4
|
+
/**
|
|
5
|
+
* Outputs which may be registered for output via the Grid.
|
|
6
|
+
*/
|
|
7
|
+
export interface PlacementGroupOutputs {
|
|
8
|
+
/**
|
|
9
|
+
* The name of this placement group
|
|
10
|
+
*
|
|
11
|
+
* @attribute
|
|
12
|
+
*/
|
|
13
|
+
readonly placementGroupName: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Determines where your instances are placed on the underlying hardware according to the specified PlacementGroupStrategy
|
|
17
|
+
*
|
|
18
|
+
* @see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html
|
|
19
|
+
*/
|
|
20
|
+
export interface IPlacementGroup extends IAwsConstruct {
|
|
21
|
+
/** Strongly typed outputs */
|
|
22
|
+
readonly placementGroupOutputs: PlacementGroupOutputs;
|
|
23
|
+
/**
|
|
24
|
+
* The name of this placement group
|
|
25
|
+
*
|
|
26
|
+
* @attribute
|
|
27
|
+
*/
|
|
28
|
+
readonly placementGroupName: string;
|
|
29
|
+
/**
|
|
30
|
+
* The number of partitions. Valid only when Strategy is set to PARTITION.
|
|
31
|
+
*
|
|
32
|
+
* @default 0
|
|
33
|
+
*/
|
|
34
|
+
readonly partitions?: number;
|
|
35
|
+
/**
|
|
36
|
+
* Places instances on distinct hardware. Spread placement groups are recommended for applications
|
|
37
|
+
* that have a small number of critical instances that should be kept separate from each other.
|
|
38
|
+
* Launching instances in a spread level placement group reduces the risk of simultaneous failures
|
|
39
|
+
* that might occur when instances share the same equipment.
|
|
40
|
+
* Spread level placement groups provide access to distinct hardware,
|
|
41
|
+
* and are therefore suitable for mixing instance types or launching instances over time.
|
|
42
|
+
* If you start or launch an instance in a spread placement group and there is insufficient
|
|
43
|
+
* unique hardware to fulfill the request, the request fails. Amazon EC2 makes more distinct hardware
|
|
44
|
+
* available over time, so you can try your request again later.
|
|
45
|
+
* Placement groups can spread instances across racks or hosts.
|
|
46
|
+
* You can use host level spread placement groups only with AWS Outposts.
|
|
47
|
+
*
|
|
48
|
+
* @default - no spread level
|
|
49
|
+
*/
|
|
50
|
+
readonly spreadLevel?: PlacementGroupSpreadLevel;
|
|
51
|
+
/**
|
|
52
|
+
* Which strategy to use when launching instances
|
|
53
|
+
*
|
|
54
|
+
* @default - `PlacementGroupStrategy.PARTITION` if `partitions` is defined, `CLUSTER` otherwise
|
|
55
|
+
*/
|
|
56
|
+
readonly strategy?: PlacementGroupStrategy;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Props for a PlacementGroup
|
|
60
|
+
*/
|
|
61
|
+
export interface PlacementGroupProps extends AwsConstructProps {
|
|
62
|
+
/**
|
|
63
|
+
* the name of this placement group
|
|
64
|
+
*
|
|
65
|
+
* @default - generated by CFN
|
|
66
|
+
*
|
|
67
|
+
* @attribute
|
|
68
|
+
*/
|
|
69
|
+
readonly placementGroupName?: string;
|
|
70
|
+
/**
|
|
71
|
+
* The number of partitions. Valid only when Strategy is set to partition.
|
|
72
|
+
*
|
|
73
|
+
* @default 0
|
|
74
|
+
*/
|
|
75
|
+
readonly partitions?: number;
|
|
76
|
+
/**
|
|
77
|
+
* Places instances on distinct hardware. Spread placement groups are recommended for applications
|
|
78
|
+
* that have a small number of critical instances that should be kept separate from each other.
|
|
79
|
+
* Launching instances in a spread level placement group reduces the risk of simultaneous failures
|
|
80
|
+
* that might occur when instances share the same equipment.
|
|
81
|
+
* Spread level placement groups provide access to distinct hardware,
|
|
82
|
+
* and are therefore suitable for mixing instance types or launching instances over time.
|
|
83
|
+
* If you start or launch an instance in a spread placement group and there is insufficient
|
|
84
|
+
* unique hardware to fulfill the request, the request fails. Amazon EC2 makes more distinct hardware
|
|
85
|
+
* available over time, so you can try your request again later.
|
|
86
|
+
* Placement groups can spread instances across racks or hosts.
|
|
87
|
+
* You can use host level spread placement groups only with AWS Outposts.
|
|
88
|
+
*
|
|
89
|
+
* @default - no spread level
|
|
90
|
+
*/
|
|
91
|
+
readonly spreadLevel?: PlacementGroupSpreadLevel;
|
|
92
|
+
/**
|
|
93
|
+
* Which strategy to use when launching instances
|
|
94
|
+
*
|
|
95
|
+
* @default - `PlacementGroupStrategy.PARTITION` if `partitions` is defined, `CLUSTER` otherwise
|
|
96
|
+
*/
|
|
97
|
+
readonly strategy?: PlacementGroupStrategy;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Determines how this placement group spreads instances
|
|
101
|
+
*/
|
|
102
|
+
export declare enum PlacementGroupSpreadLevel {
|
|
103
|
+
/**
|
|
104
|
+
* Host spread level placement groups are only available with AWS Outposts.
|
|
105
|
+
* For host spread level placement groups, there are no restrictions for running instances per Outposts.
|
|
106
|
+
*
|
|
107
|
+
* @see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups-outpost.html
|
|
108
|
+
*/
|
|
109
|
+
HOST = "host",
|
|
110
|
+
/**
|
|
111
|
+
* Each instance is launched on a separate rack.
|
|
112
|
+
* Each has its own network and power source.
|
|
113
|
+
* A rack spread placement group can span multiple Availability Zones in the same Region.
|
|
114
|
+
* For rack spread level placement groups, you can have a maximum of seven running instances per Availability Zone per group.
|
|
115
|
+
*/
|
|
116
|
+
RACK = "rack"
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Which strategy to use when launching instances
|
|
120
|
+
*/
|
|
121
|
+
export declare enum PlacementGroupStrategy {
|
|
122
|
+
/**
|
|
123
|
+
* Packs instances close together inside an Availability Zone.
|
|
124
|
+
* This strategy enables workloads to achieve the low-latency network
|
|
125
|
+
* performance necessary for tightly-coupled node-to-node communication that
|
|
126
|
+
* is typical of high-performance computing (HPC) applications.
|
|
127
|
+
*/
|
|
128
|
+
CLUSTER = "cluster",
|
|
129
|
+
/**
|
|
130
|
+
* Spreads your instances across logical partitions such that groups of instances
|
|
131
|
+
* in one partition do not share the underlying hardware with groups of instances
|
|
132
|
+
* in different partitions.
|
|
133
|
+
*
|
|
134
|
+
* This strategy is typically used by large distributed and replicated workloads,
|
|
135
|
+
* such as Hadoop, Cassandra, and Kafka.
|
|
136
|
+
*/
|
|
137
|
+
PARTITION = "partition",
|
|
138
|
+
/**
|
|
139
|
+
* Strictly places a small group of instances across distinct underlying hardware
|
|
140
|
+
* to reduce correlated failures.
|
|
141
|
+
*/
|
|
142
|
+
SPREAD = "spread"
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Defines a placement group. Placement groups give you fine-grained control over
|
|
146
|
+
* where your instances are provisioned.
|
|
147
|
+
*/
|
|
148
|
+
export declare class PlacementGroup extends AwsConstructBase implements IPlacementGroup {
|
|
149
|
+
/**
|
|
150
|
+
* Import a PlacementGroup by its arn
|
|
151
|
+
*/
|
|
152
|
+
static fromPlacementGroupName(scope: Construct, id: string, placementGroupName: string): IPlacementGroup;
|
|
153
|
+
readonly resource: placementGroup.PlacementGroup;
|
|
154
|
+
readonly partitions?: number;
|
|
155
|
+
readonly spreadLevel?: PlacementGroupSpreadLevel;
|
|
156
|
+
readonly strategy?: PlacementGroupStrategy;
|
|
157
|
+
get placementGroupOutputs(): PlacementGroupOutputs;
|
|
158
|
+
get outputs(): Record<string, any>;
|
|
159
|
+
readonly placementGroupName: string;
|
|
160
|
+
constructor(scope: Construct, id: string, props?: PlacementGroupProps);
|
|
161
|
+
}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.PlacementGroup = exports.PlacementGroupStrategy = exports.PlacementGroupSpreadLevel = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
// https://github.com/aws/aws-cdk/blob/v2.175.1/packages/aws-cdk-lib/aws-ec2/lib/placement-group.ts
|
|
7
|
+
const provider_aws_1 = require("@cdktf/provider-aws");
|
|
8
|
+
const aws_construct_1 = require("../aws-construct");
|
|
9
|
+
/**
|
|
10
|
+
* Determines how this placement group spreads instances
|
|
11
|
+
*/
|
|
12
|
+
var PlacementGroupSpreadLevel;
|
|
13
|
+
(function (PlacementGroupSpreadLevel) {
|
|
14
|
+
/**
|
|
15
|
+
* Host spread level placement groups are only available with AWS Outposts.
|
|
16
|
+
* For host spread level placement groups, there are no restrictions for running instances per Outposts.
|
|
17
|
+
*
|
|
18
|
+
* @see https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups-outpost.html
|
|
19
|
+
*/
|
|
20
|
+
PlacementGroupSpreadLevel["HOST"] = "host";
|
|
21
|
+
/**
|
|
22
|
+
* Each instance is launched on a separate rack.
|
|
23
|
+
* Each has its own network and power source.
|
|
24
|
+
* A rack spread placement group can span multiple Availability Zones in the same Region.
|
|
25
|
+
* For rack spread level placement groups, you can have a maximum of seven running instances per Availability Zone per group.
|
|
26
|
+
*/
|
|
27
|
+
PlacementGroupSpreadLevel["RACK"] = "rack";
|
|
28
|
+
})(PlacementGroupSpreadLevel || (exports.PlacementGroupSpreadLevel = PlacementGroupSpreadLevel = {}));
|
|
29
|
+
/**
|
|
30
|
+
* Which strategy to use when launching instances
|
|
31
|
+
*/
|
|
32
|
+
var PlacementGroupStrategy;
|
|
33
|
+
(function (PlacementGroupStrategy) {
|
|
34
|
+
/**
|
|
35
|
+
* Packs instances close together inside an Availability Zone.
|
|
36
|
+
* This strategy enables workloads to achieve the low-latency network
|
|
37
|
+
* performance necessary for tightly-coupled node-to-node communication that
|
|
38
|
+
* is typical of high-performance computing (HPC) applications.
|
|
39
|
+
*/
|
|
40
|
+
PlacementGroupStrategy["CLUSTER"] = "cluster";
|
|
41
|
+
/**
|
|
42
|
+
* Spreads your instances across logical partitions such that groups of instances
|
|
43
|
+
* in one partition do not share the underlying hardware with groups of instances
|
|
44
|
+
* in different partitions.
|
|
45
|
+
*
|
|
46
|
+
* This strategy is typically used by large distributed and replicated workloads,
|
|
47
|
+
* such as Hadoop, Cassandra, and Kafka.
|
|
48
|
+
*/
|
|
49
|
+
PlacementGroupStrategy["PARTITION"] = "partition";
|
|
50
|
+
/**
|
|
51
|
+
* Strictly places a small group of instances across distinct underlying hardware
|
|
52
|
+
* to reduce correlated failures.
|
|
53
|
+
*/
|
|
54
|
+
PlacementGroupStrategy["SPREAD"] = "spread";
|
|
55
|
+
})(PlacementGroupStrategy || (exports.PlacementGroupStrategy = PlacementGroupStrategy = {}));
|
|
56
|
+
/**
|
|
57
|
+
* Defines a placement group. Placement groups give you fine-grained control over
|
|
58
|
+
* where your instances are provisioned.
|
|
59
|
+
*/
|
|
60
|
+
class PlacementGroup extends aws_construct_1.AwsConstructBase {
|
|
61
|
+
/**
|
|
62
|
+
* Import a PlacementGroup by its arn
|
|
63
|
+
*/
|
|
64
|
+
static fromPlacementGroupName(scope, id, placementGroupName) {
|
|
65
|
+
class Import extends aws_construct_1.AwsConstructBase {
|
|
66
|
+
constructor() {
|
|
67
|
+
super(...arguments);
|
|
68
|
+
this.placementGroupName = placementGroupName;
|
|
69
|
+
}
|
|
70
|
+
get placementGroupOutputs() {
|
|
71
|
+
return {
|
|
72
|
+
placementGroupName: this.placementGroupName,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
get outputs() {
|
|
76
|
+
return this.placementGroupOutputs;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return new Import(scope, id);
|
|
80
|
+
}
|
|
81
|
+
get placementGroupOutputs() {
|
|
82
|
+
return {
|
|
83
|
+
placementGroupName: this.placementGroupName,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
get outputs() {
|
|
87
|
+
return this.placementGroupOutputs;
|
|
88
|
+
}
|
|
89
|
+
constructor(scope, id, props = {}) {
|
|
90
|
+
super(scope, id, props);
|
|
91
|
+
const placementGroupName = props.placementGroupName ||
|
|
92
|
+
this.stack.uniqueResourceName(this, {
|
|
93
|
+
prefix: this.gridUUID,
|
|
94
|
+
});
|
|
95
|
+
this.partitions = props.partitions;
|
|
96
|
+
this.spreadLevel = props.spreadLevel;
|
|
97
|
+
this.strategy = props?.strategy;
|
|
98
|
+
if (this.partitions && props.strategy) {
|
|
99
|
+
if (props.strategy !== PlacementGroupStrategy.PARTITION) {
|
|
100
|
+
throw new Error(`PlacementGroup '${id}' can only specify 'partitions' with the 'PARTITION' strategy`);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
else if (this.partitions && !props.strategy) {
|
|
104
|
+
this.strategy = PlacementGroupStrategy.PARTITION;
|
|
105
|
+
}
|
|
106
|
+
if (this.spreadLevel) {
|
|
107
|
+
if (!props.strategy) {
|
|
108
|
+
this.strategy = PlacementGroupStrategy.SPREAD;
|
|
109
|
+
}
|
|
110
|
+
if (this.strategy !== PlacementGroupStrategy.SPREAD) {
|
|
111
|
+
throw new Error(`PlacementGroup '${id}' can only specify 'spreadLevel' with the 'SPREAD' strategy`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
this.resource = new provider_aws_1.placementGroup.PlacementGroup(this, "Resource", {
|
|
115
|
+
name: placementGroupName,
|
|
116
|
+
partitionCount: this.partitions,
|
|
117
|
+
spreadLevel: this.spreadLevel,
|
|
118
|
+
strategy: this.strategy ?? PlacementGroupStrategy.CLUSTER,
|
|
119
|
+
});
|
|
120
|
+
// TODO: use environment-sensitive token for resource's "ARN" attribute?
|
|
121
|
+
this.placementGroupName = this.resource.id;
|
|
122
|
+
// https://github.com/aws/aws-cdk/blob/a2c633f1e698249496f11338312ab42bd7b1e4f0/packages/aws-cdk-lib/core/lib/resource.ts#L288
|
|
123
|
+
// this.getResourceArnAttribute(this.resource.name, {
|
|
124
|
+
// service: "batch",
|
|
125
|
+
// resource: "compute-environment",
|
|
126
|
+
// resourceName: this.physicalName,
|
|
127
|
+
// });
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
exports.PlacementGroup = PlacementGroup;
|
|
131
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
132
|
+
PlacementGroup[_a] = { fqn: "terraconstructs.aws.compute.PlacementGroup", version: "0.0.12" };
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2VtZW50LWdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F3cy9jb21wdXRlL3BsYWNlbWVudC1ncm91cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1HQUFtRztBQUVuRyxzREFBcUQ7QUFFckQsb0RBSTBCO0FBMkcxQjs7R0FFRztBQUNILElBQVkseUJBZ0JYO0FBaEJELFdBQVkseUJBQXlCO0lBQ25DOzs7OztPQUtHO0lBQ0gsMENBQWEsQ0FBQTtJQUViOzs7OztPQUtHO0lBQ0gsMENBQWEsQ0FBQTtBQUNmLENBQUMsRUFoQlcseUJBQXlCLHlDQUF6Qix5QkFBeUIsUUFnQnBDO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLHNCQXdCWDtBQXhCRCxXQUFZLHNCQUFzQjtJQUNoQzs7Ozs7T0FLRztJQUNILDZDQUFtQixDQUFBO0lBRW5COzs7Ozs7O09BT0c7SUFDSCxpREFBdUIsQ0FBQTtJQUV2Qjs7O09BR0c7SUFDSCwyQ0FBaUIsQ0FBQTtBQUNuQixDQUFDLEVBeEJXLHNCQUFzQixzQ0FBdEIsc0JBQXNCLFFBd0JqQztBQUVEOzs7R0FHRztBQUNILE1BQWEsY0FDWCxTQUFRLGdDQUFnQjtJQUd4Qjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxzQkFBc0IsQ0FDbEMsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLGtCQUEwQjtRQUUxQixNQUFNLE1BQU8sU0FBUSxnQ0FBZ0I7WUFBckM7O2dCQVNrQix1QkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztZQUMxRCxDQUFDO1lBVEMsSUFBVyxxQkFBcUI7Z0JBQzlCLE9BQU87b0JBQ0wsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtpQkFDNUMsQ0FBQztZQUNKLENBQUM7WUFDRCxJQUFXLE9BQU87Z0JBQ2hCLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDO1lBQ3BDLENBQUM7U0FFRjtRQUVELE9BQU8sSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFPRCxJQUFXLHFCQUFxQjtRQUM5QixPQUFPO1lBQ0wsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtTQUM1QyxDQUFDO0lBQ0osQ0FBQztJQUNELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztJQUNwQyxDQUFDO0lBSUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxRQUE2QixFQUFFO1FBQ3ZFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLE1BQU0sa0JBQWtCLEdBQ3RCLEtBQUssQ0FBQyxrQkFBa0I7WUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2xDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUTthQUN0QixDQUFDLENBQUM7UUFFTCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7UUFDbkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxFQUFFLFFBQVEsQ0FBQztRQUVoQyxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RDLElBQUksS0FBSyxDQUFDLFFBQVEsS0FBSyxzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDeEQsTUFBTSxJQUFJLEtBQUssQ0FDYixtQkFBbUIsRUFBRSwrREFBK0QsQ0FDckYsQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzlDLElBQUksQ0FBQyxRQUFRLEdBQUcsc0JBQXNCLENBQUMsU0FBUyxDQUFDO1FBQ25ELENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLHNCQUFzQixDQUFDLE1BQU0sQ0FBQztZQUNoRCxDQUFDO1lBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLHNCQUFzQixDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNwRCxNQUFNLElBQUksS0FBSyxDQUNiLG1CQUFtQixFQUFFLDZEQUE2RCxDQUNuRixDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksNkJBQWMsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNsRSxJQUFJLEVBQUUsa0JBQWtCO1lBQ3hCLGNBQWMsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMvQixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLElBQUksc0JBQXNCLENBQUMsT0FBTztTQUMxRCxDQUFDLENBQUM7UUFFSCx3RUFBd0U7UUFDeEUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQzNDLDhIQUE4SDtRQUM5SCxxREFBcUQ7UUFDckQsc0JBQXNCO1FBQ3RCLHFDQUFxQztRQUNyQyxxQ0FBcUM7UUFDckMsTUFBTTtJQUNSLENBQUM7O0FBM0ZILHdDQTRGQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL3YyLjE3NS4xL3BhY2thZ2VzL2F3cy1jZGstbGliL2F3cy1lYzIvbGliL3BsYWNlbWVudC1ncm91cC50c1xuXG5pbXBvcnQgeyBwbGFjZW1lbnRHcm91cCB9IGZyb20gXCJAY2RrdGYvcHJvdmlkZXItYXdzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgSUF3c0NvbnN0cnVjdCxcbiAgQXdzQ29uc3RydWN0QmFzZSxcbiAgQXdzQ29uc3RydWN0UHJvcHMsXG59IGZyb20gXCIuLi9hd3MtY29uc3RydWN0XCI7XG5cbi8qKlxuICogT3V0cHV0cyB3aGljaCBtYXkgYmUgcmVnaXN0ZXJlZCBmb3Igb3V0cHV0IHZpYSB0aGUgR3JpZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbGFjZW1lbnRHcm91cE91dHB1dHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhpcyBwbGFjZW1lbnQgZ3JvdXBcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgcGxhY2VtZW50R3JvdXBOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyB3aGVyZSB5b3VyIGluc3RhbmNlcyBhcmUgcGxhY2VkIG9uIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIGFjY29yZGluZyB0byB0aGUgc3BlY2lmaWVkIFBsYWNlbWVudEdyb3VwU3RyYXRlZ3lcbiAqXG4gKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9wbGFjZW1lbnQtZ3JvdXBzLmh0bWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUGxhY2VtZW50R3JvdXAgZXh0ZW5kcyBJQXdzQ29uc3RydWN0IHtcbiAgLyoqIFN0cm9uZ2x5IHR5cGVkIG91dHB1dHMgKi9cbiAgcmVhZG9ubHkgcGxhY2VtZW50R3JvdXBPdXRwdXRzOiBQbGFjZW1lbnRHcm91cE91dHB1dHM7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoaXMgcGxhY2VtZW50IGdyb3VwXG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHJlYWRvbmx5IHBsYWNlbWVudEdyb3VwTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHBhcnRpdGlvbnMuIFZhbGlkIG9ubHkgd2hlbiBTdHJhdGVneSBpcyBzZXQgdG8gUEFSVElUSU9OLlxuICAgKlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICByZWFkb25seSBwYXJ0aXRpb25zPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBQbGFjZXMgaW5zdGFuY2VzIG9uIGRpc3RpbmN0IGhhcmR3YXJlLiBTcHJlYWQgcGxhY2VtZW50IGdyb3VwcyBhcmUgcmVjb21tZW5kZWQgZm9yIGFwcGxpY2F0aW9uc1xuICAgKiB0aGF0IGhhdmUgYSBzbWFsbCBudW1iZXIgb2YgY3JpdGljYWwgaW5zdGFuY2VzIHRoYXQgc2hvdWxkIGJlIGtlcHQgc2VwYXJhdGUgZnJvbSBlYWNoIG90aGVyLlxuICAgKiBMYXVuY2hpbmcgaW5zdGFuY2VzIGluIGEgc3ByZWFkIGxldmVsIHBsYWNlbWVudCBncm91cCByZWR1Y2VzIHRoZSByaXNrIG9mIHNpbXVsdGFuZW91cyBmYWlsdXJlc1xuICAgKiB0aGF0IG1pZ2h0IG9jY3VyIHdoZW4gaW5zdGFuY2VzIHNoYXJlIHRoZSBzYW1lIGVxdWlwbWVudC5cbiAgICogU3ByZWFkIGxldmVsIHBsYWNlbWVudCBncm91cHMgcHJvdmlkZSBhY2Nlc3MgdG8gZGlzdGluY3QgaGFyZHdhcmUsXG4gICAqIGFuZCBhcmUgdGhlcmVmb3JlIHN1aXRhYmxlIGZvciBtaXhpbmcgaW5zdGFuY2UgdHlwZXMgb3IgbGF1bmNoaW5nIGluc3RhbmNlcyBvdmVyIHRpbWUuXG4gICAqIElmIHlvdSBzdGFydCBvciBsYXVuY2ggYW4gaW5zdGFuY2UgaW4gYSBzcHJlYWQgcGxhY2VtZW50IGdyb3VwIGFuZCB0aGVyZSBpcyBpbnN1ZmZpY2llbnRcbiAgICogdW5pcXVlIGhhcmR3YXJlIHRvIGZ1bGZpbGwgdGhlIHJlcXVlc3QsIHRoZSByZXF1ZXN0IGZhaWxzLiBBbWF6b24gRUMyIG1ha2VzIG1vcmUgZGlzdGluY3QgaGFyZHdhcmVcbiAgICogYXZhaWxhYmxlIG92ZXIgdGltZSwgc28geW91IGNhbiB0cnkgeW91ciByZXF1ZXN0IGFnYWluIGxhdGVyLlxuICAgKiBQbGFjZW1lbnQgZ3JvdXBzIGNhbiBzcHJlYWQgaW5zdGFuY2VzIGFjcm9zcyByYWNrcyBvciBob3N0cy5cbiAgICogWW91IGNhbiB1c2UgaG9zdCBsZXZlbCBzcHJlYWQgcGxhY2VtZW50IGdyb3VwcyBvbmx5IHdpdGggQVdTIE91dHBvc3RzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIHNwcmVhZCBsZXZlbFxuICAgKi9cbiAgcmVhZG9ubHkgc3ByZWFkTGV2ZWw/OiBQbGFjZW1lbnRHcm91cFNwcmVhZExldmVsO1xuXG4gIC8qKlxuICAgKiBXaGljaCBzdHJhdGVneSB0byB1c2Ugd2hlbiBsYXVuY2hpbmcgaW5zdGFuY2VzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYFBsYWNlbWVudEdyb3VwU3RyYXRlZ3kuUEFSVElUSU9OYCBpZiBgcGFydGl0aW9uc2AgaXMgZGVmaW5lZCwgYENMVVNURVJgIG90aGVyd2lzZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RyYXRlZ3k/OiBQbGFjZW1lbnRHcm91cFN0cmF0ZWd5O1xufVxuXG4vKipcbiAqIFByb3BzIGZvciBhIFBsYWNlbWVudEdyb3VwXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxhY2VtZW50R3JvdXBQcm9wcyBleHRlbmRzIEF3c0NvbnN0cnVjdFByb3BzIHtcbiAgLyoqXG4gICAqIHRoZSBuYW1lIG9mIHRoaXMgcGxhY2VtZW50IGdyb3VwXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZ2VuZXJhdGVkIGJ5IENGTlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSBwbGFjZW1lbnRHcm91cE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgcGFydGl0aW9ucy4gVmFsaWQgb25seSB3aGVuIFN0cmF0ZWd5IGlzIHNldCB0byBwYXJ0aXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIHJlYWRvbmx5IHBhcnRpdGlvbnM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFBsYWNlcyBpbnN0YW5jZXMgb24gZGlzdGluY3QgaGFyZHdhcmUuIFNwcmVhZCBwbGFjZW1lbnQgZ3JvdXBzIGFyZSByZWNvbW1lbmRlZCBmb3IgYXBwbGljYXRpb25zXG4gICAqIHRoYXQgaGF2ZSBhIHNtYWxsIG51bWJlciBvZiBjcml0aWNhbCBpbnN0YW5jZXMgdGhhdCBzaG91bGQgYmUga2VwdCBzZXBhcmF0ZSBmcm9tIGVhY2ggb3RoZXIuXG4gICAqIExhdW5jaGluZyBpbnN0YW5jZXMgaW4gYSBzcHJlYWQgbGV2ZWwgcGxhY2VtZW50IGdyb3VwIHJlZHVjZXMgdGhlIHJpc2sgb2Ygc2ltdWx0YW5lb3VzIGZhaWx1cmVzXG4gICAqIHRoYXQgbWlnaHQgb2NjdXIgd2hlbiBpbnN0YW5jZXMgc2hhcmUgdGhlIHNhbWUgZXF1aXBtZW50LlxuICAgKiBTcHJlYWQgbGV2ZWwgcGxhY2VtZW50IGdyb3VwcyBwcm92aWRlIGFjY2VzcyB0byBkaXN0aW5jdCBoYXJkd2FyZSxcbiAgICogYW5kIGFyZSB0aGVyZWZvcmUgc3VpdGFibGUgZm9yIG1peGluZyBpbnN0YW5jZSB0eXBlcyBvciBsYXVuY2hpbmcgaW5zdGFuY2VzIG92ZXIgdGltZS5cbiAgICogSWYgeW91IHN0YXJ0IG9yIGxhdW5jaCBhbiBpbnN0YW5jZSBpbiBhIHNwcmVhZCBwbGFjZW1lbnQgZ3JvdXAgYW5kIHRoZXJlIGlzIGluc3VmZmljaWVudFxuICAgKiB1bmlxdWUgaGFyZHdhcmUgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdCwgdGhlIHJlcXVlc3QgZmFpbHMuIEFtYXpvbiBFQzIgbWFrZXMgbW9yZSBkaXN0aW5jdCBoYXJkd2FyZVxuICAgKiBhdmFpbGFibGUgb3ZlciB0aW1lLCBzbyB5b3UgY2FuIHRyeSB5b3VyIHJlcXVlc3QgYWdhaW4gbGF0ZXIuXG4gICAqIFBsYWNlbWVudCBncm91cHMgY2FuIHNwcmVhZCBpbnN0YW5jZXMgYWNyb3NzIHJhY2tzIG9yIGhvc3RzLlxuICAgKiBZb3UgY2FuIHVzZSBob3N0IGxldmVsIHNwcmVhZCBwbGFjZW1lbnQgZ3JvdXBzIG9ubHkgd2l0aCBBV1MgT3V0cG9zdHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gc3ByZWFkIGxldmVsXG4gICAqL1xuICByZWFkb25seSBzcHJlYWRMZXZlbD86IFBsYWNlbWVudEdyb3VwU3ByZWFkTGV2ZWw7XG5cbiAgLyoqXG4gICAqIFdoaWNoIHN0cmF0ZWd5IHRvIHVzZSB3aGVuIGxhdW5jaGluZyBpbnN0YW5jZXNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBgUGxhY2VtZW50R3JvdXBTdHJhdGVneS5QQVJUSVRJT05gIGlmIGBwYXJ0aXRpb25zYCBpcyBkZWZpbmVkLCBgQ0xVU1RFUmAgb3RoZXJ3aXNlXG4gICAqL1xuICByZWFkb25seSBzdHJhdGVneT86IFBsYWNlbWVudEdyb3VwU3RyYXRlZ3k7XG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBob3cgdGhpcyBwbGFjZW1lbnQgZ3JvdXAgc3ByZWFkcyBpbnN0YW5jZXNcbiAqL1xuZXhwb3J0IGVudW0gUGxhY2VtZW50R3JvdXBTcHJlYWRMZXZlbCB7XG4gIC8qKlxuICAgKiBIb3N0IHNwcmVhZCBsZXZlbCBwbGFjZW1lbnQgZ3JvdXBzIGFyZSBvbmx5IGF2YWlsYWJsZSB3aXRoIEFXUyBPdXRwb3N0cy5cbiAgICogRm9yIGhvc3Qgc3ByZWFkIGxldmVsIHBsYWNlbWVudCBncm91cHMsIHRoZXJlIGFyZSBubyByZXN0cmljdGlvbnMgZm9yIHJ1bm5pbmcgaW5zdGFuY2VzIHBlciBPdXRwb3N0cy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvcGxhY2VtZW50LWdyb3Vwcy1vdXRwb3N0Lmh0bWxcbiAgICovXG4gIEhPU1QgPSBcImhvc3RcIixcblxuICAvKipcbiAgICogRWFjaCBpbnN0YW5jZSBpcyBsYXVuY2hlZCBvbiBhIHNlcGFyYXRlIHJhY2suXG4gICAqIEVhY2ggaGFzIGl0cyBvd24gbmV0d29yayBhbmQgcG93ZXIgc291cmNlLlxuICAgKiBBIHJhY2sgc3ByZWFkIHBsYWNlbWVudCBncm91cCBjYW4gc3BhbiBtdWx0aXBsZSBBdmFpbGFiaWxpdHkgWm9uZXMgaW4gdGhlIHNhbWUgUmVnaW9uLlxuICAgKiBGb3IgcmFjayBzcHJlYWQgbGV2ZWwgcGxhY2VtZW50IGdyb3VwcywgeW91IGNhbiBoYXZlIGEgbWF4aW11bSBvZiBzZXZlbiBydW5uaW5nIGluc3RhbmNlcyBwZXIgQXZhaWxhYmlsaXR5IFpvbmUgcGVyIGdyb3VwLlxuICAgKi9cbiAgUkFDSyA9IFwicmFja1wiLFxufVxuXG4vKipcbiAqIFdoaWNoIHN0cmF0ZWd5IHRvIHVzZSB3aGVuIGxhdW5jaGluZyBpbnN0YW5jZXNcbiAqL1xuZXhwb3J0IGVudW0gUGxhY2VtZW50R3JvdXBTdHJhdGVneSB7XG4gIC8qKlxuICAgKiBQYWNrcyBpbnN0YW5jZXMgY2xvc2UgdG9nZXRoZXIgaW5zaWRlIGFuIEF2YWlsYWJpbGl0eSBab25lLlxuICAgKiBUaGlzIHN0cmF0ZWd5IGVuYWJsZXMgd29ya2xvYWRzIHRvIGFjaGlldmUgdGhlIGxvdy1sYXRlbmN5IG5ldHdvcmtcbiAgICogcGVyZm9ybWFuY2UgbmVjZXNzYXJ5IGZvciB0aWdodGx5LWNvdXBsZWQgbm9kZS10by1ub2RlIGNvbW11bmljYXRpb24gdGhhdFxuICAgKiBpcyB0eXBpY2FsIG9mIGhpZ2gtcGVyZm9ybWFuY2UgY29tcHV0aW5nIChIUEMpIGFwcGxpY2F0aW9ucy5cbiAgICovXG4gIENMVVNURVIgPSBcImNsdXN0ZXJcIixcblxuICAvKipcbiAgICogU3ByZWFkcyB5b3VyIGluc3RhbmNlcyBhY3Jvc3MgbG9naWNhbCBwYXJ0aXRpb25zIHN1Y2ggdGhhdCBncm91cHMgb2YgaW5zdGFuY2VzXG4gICAqIGluIG9uZSBwYXJ0aXRpb24gZG8gbm90IHNoYXJlIHRoZSB1bmRlcmx5aW5nIGhhcmR3YXJlIHdpdGggZ3JvdXBzIG9mIGluc3RhbmNlc1xuICAgKiBpbiBkaWZmZXJlbnQgcGFydGl0aW9ucy5cbiAgICpcbiAgICogVGhpcyBzdHJhdGVneSBpcyB0eXBpY2FsbHkgdXNlZCBieSBsYXJnZSBkaXN0cmlidXRlZCBhbmQgcmVwbGljYXRlZCB3b3JrbG9hZHMsXG4gICAqIHN1Y2ggYXMgSGFkb29wLCBDYXNzYW5kcmEsIGFuZCBLYWZrYS5cbiAgICovXG4gIFBBUlRJVElPTiA9IFwicGFydGl0aW9uXCIsXG5cbiAgLyoqXG4gICAqIFN0cmljdGx5IHBsYWNlcyBhIHNtYWxsIGdyb3VwIG9mIGluc3RhbmNlcyBhY3Jvc3MgZGlzdGluY3QgdW5kZXJseWluZyBoYXJkd2FyZVxuICAgKiB0byByZWR1Y2UgY29ycmVsYXRlZCBmYWlsdXJlcy5cbiAgICovXG4gIFNQUkVBRCA9IFwic3ByZWFkXCIsXG59XG5cbi8qKlxuICogRGVmaW5lcyBhIHBsYWNlbWVudCBncm91cC4gUGxhY2VtZW50IGdyb3VwcyBnaXZlIHlvdSBmaW5lLWdyYWluZWQgY29udHJvbCBvdmVyXG4gKiB3aGVyZSB5b3VyIGluc3RhbmNlcyBhcmUgcHJvdmlzaW9uZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBQbGFjZW1lbnRHcm91cFxuICBleHRlbmRzIEF3c0NvbnN0cnVjdEJhc2VcbiAgaW1wbGVtZW50cyBJUGxhY2VtZW50R3JvdXBcbntcbiAgLyoqXG4gICAqIEltcG9ydCBhIFBsYWNlbWVudEdyb3VwIGJ5IGl0cyBhcm5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbVBsYWNlbWVudEdyb3VwTmFtZShcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcGxhY2VtZW50R3JvdXBOYW1lOiBzdHJpbmcsXG4gICk6IElQbGFjZW1lbnRHcm91cCB7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgQXdzQ29uc3RydWN0QmFzZSBpbXBsZW1lbnRzIElQbGFjZW1lbnRHcm91cCB7XG4gICAgICBwdWJsaWMgZ2V0IHBsYWNlbWVudEdyb3VwT3V0cHV0cygpOiBQbGFjZW1lbnRHcm91cE91dHB1dHMge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHBsYWNlbWVudEdyb3VwTmFtZTogdGhpcy5wbGFjZW1lbnRHcm91cE5hbWUsXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYWNlbWVudEdyb3VwT3V0cHV0cztcbiAgICAgIH1cbiAgICAgIHB1YmxpYyByZWFkb25seSBwbGFjZW1lbnRHcm91cE5hbWUgPSBwbGFjZW1lbnRHcm91cE5hbWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSByZXNvdXJjZTogcGxhY2VtZW50R3JvdXAuUGxhY2VtZW50R3JvdXA7XG5cbiAgcHVibGljIHJlYWRvbmx5IHBhcnRpdGlvbnM/OiBudW1iZXI7XG4gIHB1YmxpYyByZWFkb25seSBzcHJlYWRMZXZlbD86IFBsYWNlbWVudEdyb3VwU3ByZWFkTGV2ZWw7XG4gIHB1YmxpYyByZWFkb25seSBzdHJhdGVneT86IFBsYWNlbWVudEdyb3VwU3RyYXRlZ3k7XG4gIHB1YmxpYyBnZXQgcGxhY2VtZW50R3JvdXBPdXRwdXRzKCk6IFBsYWNlbWVudEdyb3VwT3V0cHV0cyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBsYWNlbWVudEdyb3VwTmFtZTogdGhpcy5wbGFjZW1lbnRHcm91cE5hbWUsXG4gICAgfTtcbiAgfVxuICBwdWJsaWMgZ2V0IG91dHB1dHMoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgcmV0dXJuIHRoaXMucGxhY2VtZW50R3JvdXBPdXRwdXRzO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHBsYWNlbWVudEdyb3VwTmFtZTogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQbGFjZW1lbnRHcm91cFByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcbiAgICBjb25zdCBwbGFjZW1lbnRHcm91cE5hbWUgPVxuICAgICAgcHJvcHMucGxhY2VtZW50R3JvdXBOYW1lIHx8XG4gICAgICB0aGlzLnN0YWNrLnVuaXF1ZVJlc291cmNlTmFtZSh0aGlzLCB7XG4gICAgICAgIHByZWZpeDogdGhpcy5ncmlkVVVJRCxcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5wYXJ0aXRpb25zID0gcHJvcHMucGFydGl0aW9ucztcbiAgICB0aGlzLnNwcmVhZExldmVsID0gcHJvcHMuc3ByZWFkTGV2ZWw7XG4gICAgdGhpcy5zdHJhdGVneSA9IHByb3BzPy5zdHJhdGVneTtcblxuICAgIGlmICh0aGlzLnBhcnRpdGlvbnMgJiYgcHJvcHMuc3RyYXRlZ3kpIHtcbiAgICAgIGlmIChwcm9wcy5zdHJhdGVneSAhPT0gUGxhY2VtZW50R3JvdXBTdHJhdGVneS5QQVJUSVRJT04pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBQbGFjZW1lbnRHcm91cCAnJHtpZH0nIGNhbiBvbmx5IHNwZWNpZnkgJ3BhcnRpdGlvbnMnIHdpdGggdGhlICdQQVJUSVRJT04nIHN0cmF0ZWd5YCxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHRoaXMucGFydGl0aW9ucyAmJiAhcHJvcHMuc3RyYXRlZ3kpIHtcbiAgICAgIHRoaXMuc3RyYXRlZ3kgPSBQbGFjZW1lbnRHcm91cFN0cmF0ZWd5LlBBUlRJVElPTjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zcHJlYWRMZXZlbCkge1xuICAgICAgaWYgKCFwcm9wcy5zdHJhdGVneSkge1xuICAgICAgICB0aGlzLnN0cmF0ZWd5ID0gUGxhY2VtZW50R3JvdXBTdHJhdGVneS5TUFJFQUQ7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5zdHJhdGVneSAhPT0gUGxhY2VtZW50R3JvdXBTdHJhdGVneS5TUFJFQUQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBQbGFjZW1lbnRHcm91cCAnJHtpZH0nIGNhbiBvbmx5IHNwZWNpZnkgJ3NwcmVhZExldmVsJyB3aXRoIHRoZSAnU1BSRUFEJyBzdHJhdGVneWAsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5yZXNvdXJjZSA9IG5ldyBwbGFjZW1lbnRHcm91cC5QbGFjZW1lbnRHcm91cCh0aGlzLCBcIlJlc291cmNlXCIsIHtcbiAgICAgIG5hbWU6IHBsYWNlbWVudEdyb3VwTmFtZSxcbiAgICAgIHBhcnRpdGlvbkNvdW50OiB0aGlzLnBhcnRpdGlvbnMsXG4gICAgICBzcHJlYWRMZXZlbDogdGhpcy5zcHJlYWRMZXZlbCxcbiAgICAgIHN0cmF0ZWd5OiB0aGlzLnN0cmF0ZWd5ID8/IFBsYWNlbWVudEdyb3VwU3RyYXRlZ3kuQ0xVU1RFUixcbiAgICB9KTtcblxuICAgIC8vIFRPRE86IHVzZSBlbnZpcm9ubWVudC1zZW5zaXRpdmUgdG9rZW4gZm9yIHJlc291cmNlJ3MgXCJBUk5cIiBhdHRyaWJ1dGU/XG4gICAgdGhpcy5wbGFjZW1lbnRHcm91cE5hbWUgPSB0aGlzLnJlc291cmNlLmlkO1xuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9ibG9iL2EyYzYzM2YxZTY5ODI0OTQ5NmYxMTMzODMxMmFiNDJiZDdiMWU0ZjAvcGFja2FnZXMvYXdzLWNkay1saWIvY29yZS9saWIvcmVzb3VyY2UudHMjTDI4OFxuICAgIC8vIHRoaXMuZ2V0UmVzb3VyY2VBcm5BdHRyaWJ1dGUodGhpcy5yZXNvdXJjZS5uYW1lLCB7XG4gICAgLy8gICBzZXJ2aWNlOiBcImJhdGNoXCIsXG4gICAgLy8gICByZXNvdXJjZTogXCJjb21wdXRlLWVudmlyb25tZW50XCIsXG4gICAgLy8gICByZXNvdXJjZU5hbWU6IHRoaXMucGh5c2ljYWxOYW1lLFxuICAgIC8vIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Protocol for use in Connection Rules
|
|
3
|
+
*
|
|
4
|
+
* https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml
|
|
5
|
+
*/
|
|
6
|
+
export declare enum Protocol {
|
|
7
|
+
ALL = "-1",
|
|
8
|
+
HOPOPT = "0",
|
|
9
|
+
ICMP = "icmp",
|
|
10
|
+
IGMP = "2",
|
|
11
|
+
GGP = "3",
|
|
12
|
+
IPV4 = "4",
|
|
13
|
+
ST = "5",
|
|
14
|
+
TCP = "tcp",
|
|
15
|
+
CBT = "7",
|
|
16
|
+
EGP = "8",
|
|
17
|
+
IGP = "9",
|
|
18
|
+
BBN_RCC_MON = "10",
|
|
19
|
+
NVP_II = "11",
|
|
20
|
+
PUP = "12",
|
|
21
|
+
EMCON = "14",
|
|
22
|
+
XNET = "15",
|
|
23
|
+
CHAOS = "16",
|
|
24
|
+
UDP = "udp",
|
|
25
|
+
MUX = "18",
|
|
26
|
+
DCN_MEAS = "19",
|
|
27
|
+
HMP = "20",
|
|
28
|
+
PRM = "21",
|
|
29
|
+
XNS_IDP = "22",
|
|
30
|
+
TRUNK_1 = "23",
|
|
31
|
+
TRUNK_2 = "24",
|
|
32
|
+
LEAF_1 = "25",
|
|
33
|
+
LEAF_2 = "26",
|
|
34
|
+
RDP = "27",
|
|
35
|
+
IRTP = "28",
|
|
36
|
+
ISO_TP4 = "29",
|
|
37
|
+
NETBLT = "30",
|
|
38
|
+
MFE_NSP = "31",
|
|
39
|
+
MERIT_INP = "32",
|
|
40
|
+
DCCP = "33",
|
|
41
|
+
THREEPC = "34",
|
|
42
|
+
IDPR = "35",
|
|
43
|
+
XTP = "36",
|
|
44
|
+
DDP = "37",
|
|
45
|
+
IDPR_CMTP = "38",
|
|
46
|
+
TPPLUSPLUS = "39",
|
|
47
|
+
IL = "40",
|
|
48
|
+
IPV6 = "41",
|
|
49
|
+
SDRP = "42",
|
|
50
|
+
IPV6_ROUTE = "43",
|
|
51
|
+
IPV6_FRAG = "44",
|
|
52
|
+
IDRP = "45",
|
|
53
|
+
RSVP = "46",
|
|
54
|
+
GRE = "47",
|
|
55
|
+
DSR = "48",
|
|
56
|
+
BNA = "49",
|
|
57
|
+
ESP = "50",
|
|
58
|
+
AH = "51",
|
|
59
|
+
I_NLSP = "52",
|
|
60
|
+
SWIPE = "53",
|
|
61
|
+
NARP = "54",
|
|
62
|
+
MOBILE = "55",
|
|
63
|
+
TLSP = "56",
|
|
64
|
+
SKIP = "57",
|
|
65
|
+
ICMPV6 = "icmpv6",
|
|
66
|
+
IPV6_NONXT = "59",
|
|
67
|
+
IPV6_OPTS = "60",
|
|
68
|
+
CFTP = "62",
|
|
69
|
+
ANY_LOCAL = "63",
|
|
70
|
+
SAT_EXPAK = "64",
|
|
71
|
+
KRYPTOLAN = "65",
|
|
72
|
+
RVD = "66",
|
|
73
|
+
IPPC = "67",
|
|
74
|
+
ANY_DFS = "68",
|
|
75
|
+
SAT_MON = "69",
|
|
76
|
+
VISA = "70",
|
|
77
|
+
IPCV = "71",
|
|
78
|
+
CPNX = "72",
|
|
79
|
+
CPHB = "73",
|
|
80
|
+
WSN = "74",
|
|
81
|
+
PVP = "75",
|
|
82
|
+
BR_SAT_MON = "76",
|
|
83
|
+
SUN_ND = "77",
|
|
84
|
+
WB_MON = "78",
|
|
85
|
+
WB_EXPAK = "79",
|
|
86
|
+
ISO_IP = "80",
|
|
87
|
+
VMTP = "81",
|
|
88
|
+
SECURE_VMTP = "82",
|
|
89
|
+
VINES = "83",
|
|
90
|
+
TTP = "84",
|
|
91
|
+
IPTM = "84_",
|
|
92
|
+
NSFNET_IGP = "85",
|
|
93
|
+
DGP = "86",
|
|
94
|
+
TCF = "87",
|
|
95
|
+
EIGRP = "88",
|
|
96
|
+
OSPFIGP = "89",
|
|
97
|
+
SPRITE_RPC = "90",
|
|
98
|
+
LARP = "91",
|
|
99
|
+
MTP = "92",
|
|
100
|
+
AX_25 = "93",
|
|
101
|
+
IPIP = "94",
|
|
102
|
+
MICP = "95",
|
|
103
|
+
SCC_SP = "96",
|
|
104
|
+
ETHERIP = "97",
|
|
105
|
+
ENCAP = "98",
|
|
106
|
+
ANY_ENC = "99",
|
|
107
|
+
GMTP = "100",
|
|
108
|
+
IFMP = "101",
|
|
109
|
+
PNNI = "102",
|
|
110
|
+
PIM = "103",
|
|
111
|
+
ARIS = "104",
|
|
112
|
+
SCPS = "105",
|
|
113
|
+
QNX = "106",
|
|
114
|
+
A_N = "107",
|
|
115
|
+
IPCOMP = "108",
|
|
116
|
+
SNP = "109",
|
|
117
|
+
COMPAQ_PEER = "110",
|
|
118
|
+
IPX_IN_IP = "111",
|
|
119
|
+
VRRP = "112",
|
|
120
|
+
PGM = "113",
|
|
121
|
+
ANY_0_HOP = "114",
|
|
122
|
+
L2_T_P = "115",
|
|
123
|
+
DDX = "116",
|
|
124
|
+
IATP = "117",
|
|
125
|
+
STP = "118",
|
|
126
|
+
SRP = "119",
|
|
127
|
+
UTI = "120",
|
|
128
|
+
SMP = "121",
|
|
129
|
+
SM = "122",
|
|
130
|
+
PTP = "123",
|
|
131
|
+
ISIS_IPV4 = "124",
|
|
132
|
+
FIRE = "125",
|
|
133
|
+
CRTP = "126",
|
|
134
|
+
CRUDP = "127",
|
|
135
|
+
SSCOPMCE = "128",
|
|
136
|
+
IPLT = "129",
|
|
137
|
+
SPS = "130",
|
|
138
|
+
PIPE = "131",
|
|
139
|
+
SCTP = "132",
|
|
140
|
+
FC = "133",
|
|
141
|
+
RSVP_E2E_IGNORE = "134",
|
|
142
|
+
MOBILITY_HEADER = "135",
|
|
143
|
+
UDPLITE = "136",
|
|
144
|
+
MPLS_IN_IP = "137",
|
|
145
|
+
MANET = "138",
|
|
146
|
+
HIP = "139",
|
|
147
|
+
SHIM6 = "140",
|
|
148
|
+
WESP = "141",
|
|
149
|
+
ROHC = "142",
|
|
150
|
+
ETHERNET = "143",
|
|
151
|
+
EXPERIMENT_1 = "253",
|
|
152
|
+
EXPERIMENT_2 = "254",
|
|
153
|
+
RESERVED = "255"
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Properties to create a port range
|
|
157
|
+
*/
|
|
158
|
+
export interface PortProps {
|
|
159
|
+
/**
|
|
160
|
+
* The protocol for the range
|
|
161
|
+
*/
|
|
162
|
+
readonly protocol: Protocol;
|
|
163
|
+
/**
|
|
164
|
+
* The starting port for the range
|
|
165
|
+
*
|
|
166
|
+
* @default - Not included in the rule
|
|
167
|
+
*/
|
|
168
|
+
readonly fromPort?: number;
|
|
169
|
+
/**
|
|
170
|
+
* The ending port for the range
|
|
171
|
+
*
|
|
172
|
+
* @default - Not included in the rule
|
|
173
|
+
*/
|
|
174
|
+
readonly toPort?: number;
|
|
175
|
+
/**
|
|
176
|
+
* String representation for this object
|
|
177
|
+
*/
|
|
178
|
+
readonly stringRepresentation: string;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Interface for classes that provide the connection-specification parts of a security group rule
|
|
182
|
+
*/
|
|
183
|
+
export declare class Port {
|
|
184
|
+
private readonly props;
|
|
185
|
+
/** Well-known SSH port (TCP 22) */
|
|
186
|
+
static readonly SSH: Port;
|
|
187
|
+
/** Well-known SMTP port (TCP 25) */
|
|
188
|
+
static readonly SMTP: Port;
|
|
189
|
+
/** Well-known DNS port (UDP 53) */
|
|
190
|
+
static readonly DNS_UDP: Port;
|
|
191
|
+
/** Well-known DNS port (TCP 53) */
|
|
192
|
+
static readonly DNS_TCP: Port;
|
|
193
|
+
/** Well-known HTTP port (TCP 80) */
|
|
194
|
+
static readonly HTTP: Port;
|
|
195
|
+
/** Well-known POP3 port (TCP 110) */
|
|
196
|
+
static readonly POP3: Port;
|
|
197
|
+
/** Well-known IMAP port (TCP 143) */
|
|
198
|
+
static readonly IMAP: Port;
|
|
199
|
+
/** Well-known LDAP port (TCP 389) */
|
|
200
|
+
static readonly LDAP: Port;
|
|
201
|
+
/** Well-known HTTPS port (TCP 443) */
|
|
202
|
+
static readonly HTTPS: Port;
|
|
203
|
+
/** Well-known SMB port (TCP 445) */
|
|
204
|
+
static readonly SMB: Port;
|
|
205
|
+
/** Well-known IMAPS port (TCP 993) */
|
|
206
|
+
static readonly IMAPS: Port;
|
|
207
|
+
/** Well-known POP3S port (TCP 995) */
|
|
208
|
+
static readonly POP3S: Port;
|
|
209
|
+
/** Well-known Microsoft SQL Server port (TCP 1433) */
|
|
210
|
+
static readonly MSSQL: Port;
|
|
211
|
+
/** Well-known NFS port (TCP 2049) */
|
|
212
|
+
static readonly NFS: Port;
|
|
213
|
+
/** Well-known MySQL and Aurora port (TCP 3306) */
|
|
214
|
+
static readonly MYSQL_AURORA: Port;
|
|
215
|
+
/** Well-known Microsoft Remote Desktop Protocol port (TCP 3389) */
|
|
216
|
+
static readonly RDP: Port;
|
|
217
|
+
/** Well-known PostgreSQL port (TCP 5432) */
|
|
218
|
+
static readonly POSTGRES: Port;
|
|
219
|
+
/**
|
|
220
|
+
* A single TCP port
|
|
221
|
+
*/
|
|
222
|
+
static tcp(port: number): Port;
|
|
223
|
+
/**
|
|
224
|
+
* A TCP port range
|
|
225
|
+
*/
|
|
226
|
+
static tcpRange(startPort: number, endPort: number): Port;
|
|
227
|
+
/**
|
|
228
|
+
* Any TCP traffic
|
|
229
|
+
*/
|
|
230
|
+
static allTcp(): Port;
|
|
231
|
+
/**
|
|
232
|
+
* A single UDP port
|
|
233
|
+
*/
|
|
234
|
+
static udp(port: number): Port;
|
|
235
|
+
/**
|
|
236
|
+
* A UDP port range
|
|
237
|
+
*/
|
|
238
|
+
static udpRange(startPort: number, endPort: number): Port;
|
|
239
|
+
/**
|
|
240
|
+
* Any UDP traffic
|
|
241
|
+
*/
|
|
242
|
+
static allUdp(): Port;
|
|
243
|
+
/**
|
|
244
|
+
* A specific combination of ICMP type and code
|
|
245
|
+
*
|
|
246
|
+
* @see https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml
|
|
247
|
+
*/
|
|
248
|
+
static icmpTypeAndCode(type: number, code: number): Port;
|
|
249
|
+
/**
|
|
250
|
+
* All codes for a single ICMP type
|
|
251
|
+
*/
|
|
252
|
+
static icmpType(type: number): Port;
|
|
253
|
+
/**
|
|
254
|
+
* ICMP ping (echo) traffic
|
|
255
|
+
*/
|
|
256
|
+
static icmpPing(): Port;
|
|
257
|
+
/**
|
|
258
|
+
* All ICMP traffic
|
|
259
|
+
*/
|
|
260
|
+
static allIcmp(): Port;
|
|
261
|
+
/**
|
|
262
|
+
* All ICMPv6 traffic
|
|
263
|
+
*/
|
|
264
|
+
static allIcmpV6(): Port;
|
|
265
|
+
/**
|
|
266
|
+
* All traffic
|
|
267
|
+
*/
|
|
268
|
+
static allTraffic(): Port;
|
|
269
|
+
/**
|
|
270
|
+
* A single ESP port
|
|
271
|
+
*/
|
|
272
|
+
static esp(): Port;
|
|
273
|
+
/**
|
|
274
|
+
* A single AH port
|
|
275
|
+
*/
|
|
276
|
+
static ah(): Port;
|
|
277
|
+
/**
|
|
278
|
+
* Whether the rule containing this port range can be inlined into a securitygroup or not.
|
|
279
|
+
*/
|
|
280
|
+
readonly canInlineRule: boolean;
|
|
281
|
+
constructor(props: PortProps);
|
|
282
|
+
/**
|
|
283
|
+
* Produce the ingress/egress rule JSON for the given connection
|
|
284
|
+
*/
|
|
285
|
+
toRuleJson(): any;
|
|
286
|
+
toString(): string;
|
|
287
|
+
}
|