terraconstructs 0.0.11 → 0.0.13
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 +105205 -35113
- 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.d.ts +26 -1
- package/lib/aws/notify/event-pattern.js +49 -5
- 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,551 @@
|
|
|
1
|
+
import { flowLog } from "@cdktf/provider-aws";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
import { ISubnet, IVpc } from "./vpc";
|
|
4
|
+
import { IAwsConstruct, AwsConstructBase } from "../aws-construct";
|
|
5
|
+
import * as logs from "../cloudwatch";
|
|
6
|
+
import * as iam from "../iam";
|
|
7
|
+
import * as storage from "../storage";
|
|
8
|
+
/**
|
|
9
|
+
* Outputs which may be registered for output via the Grid.
|
|
10
|
+
*/
|
|
11
|
+
export interface FlowLogOutputs {
|
|
12
|
+
/**
|
|
13
|
+
* The Id of the VPC Flow Log
|
|
14
|
+
*
|
|
15
|
+
* @attribute
|
|
16
|
+
*/
|
|
17
|
+
readonly flowLogId: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A FlowLog
|
|
21
|
+
*/
|
|
22
|
+
export interface IFlowLog extends IAwsConstruct {
|
|
23
|
+
/** Strongly typed outputs */
|
|
24
|
+
readonly flowLogOutputs: FlowLogOutputs;
|
|
25
|
+
/**
|
|
26
|
+
* The Id of the VPC Flow Log
|
|
27
|
+
*
|
|
28
|
+
* @attribute
|
|
29
|
+
*/
|
|
30
|
+
readonly flowLogId: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* The type of VPC traffic to log
|
|
34
|
+
*/
|
|
35
|
+
export declare enum FlowLogTrafficType {
|
|
36
|
+
/**
|
|
37
|
+
* Only log accepts
|
|
38
|
+
*/
|
|
39
|
+
ACCEPT = "ACCEPT",
|
|
40
|
+
/**
|
|
41
|
+
* Log all requests
|
|
42
|
+
*/
|
|
43
|
+
ALL = "ALL",
|
|
44
|
+
/**
|
|
45
|
+
* Only log rejects
|
|
46
|
+
*/
|
|
47
|
+
REJECT = "REJECT"
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The available destination types for Flow Logs
|
|
51
|
+
*/
|
|
52
|
+
export declare enum FlowLogDestinationType {
|
|
53
|
+
/**
|
|
54
|
+
* Send flow logs to CloudWatch Logs Group
|
|
55
|
+
*/
|
|
56
|
+
CLOUD_WATCH_LOGS = "cloud-watch-logs",
|
|
57
|
+
/**
|
|
58
|
+
* Send flow logs to S3 Bucket
|
|
59
|
+
*/
|
|
60
|
+
S3 = "s3",
|
|
61
|
+
/**
|
|
62
|
+
* Send flow logs to Kinesis Data Firehose
|
|
63
|
+
*/
|
|
64
|
+
KINESIS_DATA_FIREHOSE = "kinesis-data-firehose"
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* The type of resource to create the flow log for
|
|
68
|
+
*/
|
|
69
|
+
export declare abstract class FlowLogResourceType {
|
|
70
|
+
/**
|
|
71
|
+
* The subnet to attach the Flow Log to
|
|
72
|
+
*/
|
|
73
|
+
static fromSubnet(subnet: ISubnet): FlowLogResourceType;
|
|
74
|
+
/**
|
|
75
|
+
* The VPC to attach the Flow Log to
|
|
76
|
+
*/
|
|
77
|
+
static fromVpc(vpc: IVpc): FlowLogResourceType;
|
|
78
|
+
/**
|
|
79
|
+
* The Network Interface to attach the Flow Log to
|
|
80
|
+
*/
|
|
81
|
+
static fromNetworkInterfaceId(id: string): FlowLogResourceType;
|
|
82
|
+
/**
|
|
83
|
+
* The Transit Gateway to attach the Flow Log to
|
|
84
|
+
*/
|
|
85
|
+
static fromTransitGatewayId(id: string): FlowLogResourceType;
|
|
86
|
+
/**
|
|
87
|
+
* The Transit Gateway Attachment to attach the Flow Log to
|
|
88
|
+
*/
|
|
89
|
+
static fromTransitGatewayAttachmentId(id: string): FlowLogResourceType;
|
|
90
|
+
/**
|
|
91
|
+
* The type of resource to attach a flow log to.
|
|
92
|
+
*/
|
|
93
|
+
abstract resourceType: string;
|
|
94
|
+
/**
|
|
95
|
+
* The Id of the resource that the flow log should be attached to.
|
|
96
|
+
*/
|
|
97
|
+
abstract resourceId: string;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* The file format for flow logs written to an S3 bucket destination
|
|
101
|
+
*/
|
|
102
|
+
export declare enum FlowLogFileFormat {
|
|
103
|
+
/**
|
|
104
|
+
* File will be written as plain text
|
|
105
|
+
*
|
|
106
|
+
* This is the default value
|
|
107
|
+
*/
|
|
108
|
+
PLAIN_TEXT = "plain-text",
|
|
109
|
+
/**
|
|
110
|
+
* File will be written in parquet format
|
|
111
|
+
*/
|
|
112
|
+
PARQUET = "parquet"
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Options for writing logs to a S3 destination
|
|
116
|
+
*/
|
|
117
|
+
export interface S3DestinationOptions {
|
|
118
|
+
/**
|
|
119
|
+
* Use Hive-compatible prefixes for flow logs
|
|
120
|
+
* stored in Amazon S3
|
|
121
|
+
*
|
|
122
|
+
* @default false
|
|
123
|
+
*/
|
|
124
|
+
readonly hiveCompatiblePartitions?: boolean;
|
|
125
|
+
/**
|
|
126
|
+
* The format for the flow log
|
|
127
|
+
*
|
|
128
|
+
* @default FlowLogFileFormat.PLAIN_TEXT
|
|
129
|
+
*/
|
|
130
|
+
readonly fileFormat?: FlowLogFileFormat;
|
|
131
|
+
/**
|
|
132
|
+
* Partition the flow log per hour
|
|
133
|
+
*
|
|
134
|
+
* @default false
|
|
135
|
+
*/
|
|
136
|
+
readonly perHourPartition?: boolean;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* The destination type for the flow log
|
|
140
|
+
*/
|
|
141
|
+
export declare abstract class FlowLogDestination {
|
|
142
|
+
/**
|
|
143
|
+
* Use CloudWatch logs as the destination
|
|
144
|
+
*/
|
|
145
|
+
static toCloudWatchLogs(logGroup?: logs.ILogGroup, iamRole?: iam.IRole): FlowLogDestination;
|
|
146
|
+
/**
|
|
147
|
+
* Use S3 as the destination
|
|
148
|
+
*
|
|
149
|
+
* @param bucket optional s3 bucket to publish logs to. If one is not provided
|
|
150
|
+
* a default bucket will be created
|
|
151
|
+
* @param keyPrefix optional prefix within the bucket to write logs to
|
|
152
|
+
* @param options additional s3 destination options
|
|
153
|
+
*/
|
|
154
|
+
static toS3(bucket?: storage.IBucket, keyPrefix?: string, options?: S3DestinationOptions): FlowLogDestination;
|
|
155
|
+
/**
|
|
156
|
+
* Use Kinesis Data Firehose as the destination
|
|
157
|
+
*
|
|
158
|
+
* @param deliveryStreamArn the ARN of Kinesis Data Firehose delivery stream to publish logs to
|
|
159
|
+
*/
|
|
160
|
+
static toKinesisDataFirehoseDestination(deliveryStreamArn: string): FlowLogDestination;
|
|
161
|
+
/**
|
|
162
|
+
* Generates a flow log destination configuration
|
|
163
|
+
*/
|
|
164
|
+
abstract bind(scope: Construct, f: FlowLog): FlowLogDestinationConfig;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Flow Log Destination configuration
|
|
168
|
+
*/
|
|
169
|
+
export interface FlowLogDestinationConfig {
|
|
170
|
+
/**
|
|
171
|
+
* The type of destination to publish the flow logs to.
|
|
172
|
+
*
|
|
173
|
+
* @default - CLOUD_WATCH_LOGS
|
|
174
|
+
*/
|
|
175
|
+
readonly logDestinationType: FlowLogDestinationType;
|
|
176
|
+
/**
|
|
177
|
+
* The IAM Role that has access to publish to CloudWatch logs
|
|
178
|
+
*
|
|
179
|
+
* @default - default IAM role is created for you
|
|
180
|
+
*/
|
|
181
|
+
readonly iamRole?: iam.IRole;
|
|
182
|
+
/**
|
|
183
|
+
* The CloudWatch Logs Log Group to publish the flow logs to
|
|
184
|
+
*
|
|
185
|
+
* @default - default log group is created for you
|
|
186
|
+
*/
|
|
187
|
+
readonly logGroup?: logs.ILogGroup;
|
|
188
|
+
/**
|
|
189
|
+
* S3 bucket to publish the flow logs to
|
|
190
|
+
*
|
|
191
|
+
* @default - undefined
|
|
192
|
+
*/
|
|
193
|
+
readonly s3Bucket?: storage.IBucket;
|
|
194
|
+
/**
|
|
195
|
+
* S3 bucket key prefix to publish the flow logs to
|
|
196
|
+
*
|
|
197
|
+
* @default - undefined
|
|
198
|
+
*/
|
|
199
|
+
readonly keyPrefix?: string;
|
|
200
|
+
/**
|
|
201
|
+
* The ARN of Kinesis Data Firehose delivery stream to publish the flow logs to
|
|
202
|
+
*
|
|
203
|
+
* @default - undefined
|
|
204
|
+
*/
|
|
205
|
+
readonly deliveryStreamArn?: string;
|
|
206
|
+
/**
|
|
207
|
+
* Options for writing flow logs to a supported destination
|
|
208
|
+
*
|
|
209
|
+
* @default - undefined
|
|
210
|
+
*/
|
|
211
|
+
readonly destinationOptions?: S3DestinationOptions;
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* The maximum interval of time during which a flow of packets
|
|
215
|
+
* is captured and aggregated into a flow log record.
|
|
216
|
+
*
|
|
217
|
+
*/
|
|
218
|
+
export declare enum FlowLogMaxAggregationInterval {
|
|
219
|
+
/**
|
|
220
|
+
* 1 minute (60 seconds)
|
|
221
|
+
*/
|
|
222
|
+
ONE_MINUTE = 60,
|
|
223
|
+
/**
|
|
224
|
+
* 10 minutes (600 seconds)
|
|
225
|
+
*/
|
|
226
|
+
TEN_MINUTES = 600
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* The following table describes all of the available fields for a flow log record.
|
|
230
|
+
*/
|
|
231
|
+
export declare class LogFormat {
|
|
232
|
+
readonly value: string;
|
|
233
|
+
/**
|
|
234
|
+
* The VPC Flow Logs version.
|
|
235
|
+
*/
|
|
236
|
+
static readonly VERSION: LogFormat;
|
|
237
|
+
/**
|
|
238
|
+
* The AWS account ID of the owner of the source network interface for which traffic is recorded.
|
|
239
|
+
*/
|
|
240
|
+
static readonly ACCOUNT_ID: LogFormat;
|
|
241
|
+
/**
|
|
242
|
+
* The ID of the network interface for which the traffic is recorded.
|
|
243
|
+
*/
|
|
244
|
+
static readonly INTERFACE_ID: LogFormat;
|
|
245
|
+
/**
|
|
246
|
+
* The source address for incoming traffic, or the IPv4 or IPv6 address of the network interface
|
|
247
|
+
* for outgoing traffic on the network interface.
|
|
248
|
+
*/
|
|
249
|
+
static readonly SRC_ADDR: LogFormat;
|
|
250
|
+
/**
|
|
251
|
+
* The destination address for outgoing traffic, or the IPv4 or IPv6 address of the network interface
|
|
252
|
+
* for incoming traffic on the network interface.
|
|
253
|
+
*/
|
|
254
|
+
static readonly DST_ADDR: LogFormat;
|
|
255
|
+
/**
|
|
256
|
+
* The source port of the traffic.
|
|
257
|
+
*/
|
|
258
|
+
static readonly SRC_PORT: LogFormat;
|
|
259
|
+
/**
|
|
260
|
+
* The destination port of the traffic.
|
|
261
|
+
*/
|
|
262
|
+
static readonly DST_PORT: LogFormat;
|
|
263
|
+
/**
|
|
264
|
+
* The IANA protocol number of the traffic.
|
|
265
|
+
*/
|
|
266
|
+
static readonly PROTOCOL: LogFormat;
|
|
267
|
+
/**
|
|
268
|
+
* The number of packets transferred during the flow.
|
|
269
|
+
*/
|
|
270
|
+
static readonly PACKETS: LogFormat;
|
|
271
|
+
/**
|
|
272
|
+
* The number of bytes transferred during the flow.
|
|
273
|
+
*/
|
|
274
|
+
static readonly BYTES: LogFormat;
|
|
275
|
+
/**
|
|
276
|
+
* The time, in Unix seconds, when the first packet of the flow was received within
|
|
277
|
+
* the aggregation interval.
|
|
278
|
+
*
|
|
279
|
+
* This might be up to 60 seconds after the packet was transmitted or received on
|
|
280
|
+
* the network interface.
|
|
281
|
+
*/
|
|
282
|
+
static readonly START_TIMESTAMP: LogFormat;
|
|
283
|
+
/**
|
|
284
|
+
* The time, in Unix seconds, when the last packet of the flow was received within
|
|
285
|
+
* the aggregation interval.
|
|
286
|
+
*
|
|
287
|
+
* This might be up to 60 seconds after the packet was transmitted or received on
|
|
288
|
+
* the network interface.
|
|
289
|
+
*/
|
|
290
|
+
static readonly END_TIMESTAMP: LogFormat;
|
|
291
|
+
/**
|
|
292
|
+
* The action that is associated with the traffic.
|
|
293
|
+
*/
|
|
294
|
+
static readonly ACTION: LogFormat;
|
|
295
|
+
/**
|
|
296
|
+
* The logging status of the flow log.
|
|
297
|
+
*/
|
|
298
|
+
static readonly LOG_STATUS: LogFormat;
|
|
299
|
+
/**
|
|
300
|
+
* The ID of the VPC that contains the network interface for which the traffic is recorded.
|
|
301
|
+
*/
|
|
302
|
+
static readonly VPC_ID: LogFormat;
|
|
303
|
+
/**
|
|
304
|
+
* The ID of the subnet that contains the network interface for which the traffic is recorded.
|
|
305
|
+
*/
|
|
306
|
+
static readonly SUBNET_ID: LogFormat;
|
|
307
|
+
/**
|
|
308
|
+
* The ID of the instance that's associated with network interface for which the traffic is
|
|
309
|
+
* recorded, if the instance is owned by you.
|
|
310
|
+
*
|
|
311
|
+
* Returns a '-' symbol for a requester-managed network interface; for example, the
|
|
312
|
+
* network interface for a NAT gateway
|
|
313
|
+
*/
|
|
314
|
+
static readonly INSTANCE_ID: LogFormat;
|
|
315
|
+
/**
|
|
316
|
+
* The bitmask value for TCP flags.
|
|
317
|
+
*
|
|
318
|
+
* - FIN -- 1
|
|
319
|
+
* - SYN -- 2
|
|
320
|
+
* - RST -- 4
|
|
321
|
+
* - SYN-ACK -- 18
|
|
322
|
+
*
|
|
323
|
+
* If no supported flags are recorded, the TCP flag value is 0.
|
|
324
|
+
*
|
|
325
|
+
* TCP flags can be OR-ed during the aggregation interval. For short connections,
|
|
326
|
+
* the flags might be set on the same line in the flow log record, for example,
|
|
327
|
+
* 19 for SYN-ACK and FIN, and 3 for SYN and FIN.
|
|
328
|
+
*/
|
|
329
|
+
static readonly TCP_FLAGS: LogFormat;
|
|
330
|
+
/**
|
|
331
|
+
* The type of traffic.
|
|
332
|
+
*
|
|
333
|
+
* The possible values are IPv4, IPv6, or EFA.
|
|
334
|
+
*/
|
|
335
|
+
static readonly TRAFFIC_TYPE: LogFormat;
|
|
336
|
+
/**
|
|
337
|
+
* The packet-level (original) source IP address of the traffic.
|
|
338
|
+
*/
|
|
339
|
+
static readonly PKT_SRC_ADDR: LogFormat;
|
|
340
|
+
/**
|
|
341
|
+
* The packet-level (original) destination IP address for the traffic.
|
|
342
|
+
*/
|
|
343
|
+
static readonly PKT_DST_ADDR: LogFormat;
|
|
344
|
+
/**
|
|
345
|
+
* The Region that contains the network interface for which traffic is recorded.
|
|
346
|
+
*/
|
|
347
|
+
static readonly REGION: LogFormat;
|
|
348
|
+
/**
|
|
349
|
+
* The ID of the Availability Zone that contains the network interface for which traffic is recorded.
|
|
350
|
+
*/
|
|
351
|
+
static readonly AZ_ID: LogFormat;
|
|
352
|
+
/**
|
|
353
|
+
* The type of sublocation that's returned in the sublocation-id field.
|
|
354
|
+
*/
|
|
355
|
+
static readonly SUBLOCATION_TYPE: LogFormat;
|
|
356
|
+
/**
|
|
357
|
+
* The ID of the sublocation that contains the network interface for which traffic is recorded.
|
|
358
|
+
*/
|
|
359
|
+
static readonly SUBLOCATION_ID: LogFormat;
|
|
360
|
+
/**
|
|
361
|
+
* The name of the subset of IP address ranges for the pkt-srcaddr field,
|
|
362
|
+
* if the source IP address is for an AWS service.
|
|
363
|
+
*/
|
|
364
|
+
static readonly PKT_SRC_AWS_SERVICE: LogFormat;
|
|
365
|
+
/**
|
|
366
|
+
* The name of the subset of IP address ranges for the pkt-dstaddr field,
|
|
367
|
+
* if the destination IP address is for an AWS service.
|
|
368
|
+
*/
|
|
369
|
+
static readonly PKT_DST_AWS_SERVICE: LogFormat;
|
|
370
|
+
/**
|
|
371
|
+
* The direction of the flow with respect to the interface where traffic is captured.
|
|
372
|
+
*/
|
|
373
|
+
static readonly FLOW_DIRECTION: LogFormat;
|
|
374
|
+
/**
|
|
375
|
+
* The path that egress traffic takes to the destination.
|
|
376
|
+
*/
|
|
377
|
+
static readonly TRAFFIC_PATH: LogFormat;
|
|
378
|
+
/**
|
|
379
|
+
* AWS Resource Name (ARN) of the ECS cluster if the traffic is from a running ECS task.
|
|
380
|
+
*/
|
|
381
|
+
static readonly ECS_CLUSTER_ARN: LogFormat;
|
|
382
|
+
/**
|
|
383
|
+
* Name of the ECS cluster if the traffic is from a running ECS task.
|
|
384
|
+
*/
|
|
385
|
+
static readonly ECS_CLUSTER_NAME: LogFormat;
|
|
386
|
+
/**
|
|
387
|
+
* ARN of the ECS container instance if the traffic is from a running ECS task on an EC2 instance.
|
|
388
|
+
*/
|
|
389
|
+
static readonly ECS_CONTAINER_INSTANCE_ARN: LogFormat;
|
|
390
|
+
/**
|
|
391
|
+
* ID of the ECS container instance if the traffic is from a running ECS task on an EC2 instance.
|
|
392
|
+
*/
|
|
393
|
+
static readonly ECS_CONTAINER_INSTANCE_ID: LogFormat;
|
|
394
|
+
/**
|
|
395
|
+
* Docker runtime ID of the container if the traffic is from a running ECS task.
|
|
396
|
+
* If there is one container or more in the ECS task, this will be the docker runtime ID of the first container.
|
|
397
|
+
*/
|
|
398
|
+
static readonly ECS_CONTAINER_ID: LogFormat;
|
|
399
|
+
/**
|
|
400
|
+
* Docker runtime ID of the container if the traffic is from a running ECS task.
|
|
401
|
+
* If there is more than one container in the ECS task, this will be the Docker runtime ID of the second container.
|
|
402
|
+
*/
|
|
403
|
+
static readonly ECS_SECOND_CONTAINER_ID: LogFormat;
|
|
404
|
+
/**
|
|
405
|
+
* Name of the ECS service if the traffic is from a running ECS task and the ECS task is started by an ECS service.
|
|
406
|
+
*/
|
|
407
|
+
static readonly ECS_SERVICE_NAME: LogFormat;
|
|
408
|
+
/**
|
|
409
|
+
* ARN of the ECS task definition if the traffic is from a running ECS task.
|
|
410
|
+
*/
|
|
411
|
+
static readonly ECS_TASK_DEFINITION_ARN: LogFormat;
|
|
412
|
+
/**
|
|
413
|
+
* ARN of the ECS task if the traffic is from a running ECS task.
|
|
414
|
+
*/
|
|
415
|
+
static readonly ECS_TASK_ARN: LogFormat;
|
|
416
|
+
/**
|
|
417
|
+
* ID of the ECS task if the traffic is from a running ECS task.
|
|
418
|
+
*/
|
|
419
|
+
static readonly ECS_TASK_ID: LogFormat;
|
|
420
|
+
/**
|
|
421
|
+
* The default format.
|
|
422
|
+
*/
|
|
423
|
+
static readonly ALL_DEFAULT_FIELDS: LogFormat;
|
|
424
|
+
/**
|
|
425
|
+
* A custom format string.
|
|
426
|
+
*
|
|
427
|
+
* Gives full control over the format string fragment.
|
|
428
|
+
*/
|
|
429
|
+
static custom(formatString: string): LogFormat;
|
|
430
|
+
/**
|
|
431
|
+
* A custom field name.
|
|
432
|
+
*
|
|
433
|
+
* If there is no ready-made constant for a new field yet, you can use this.
|
|
434
|
+
* The field name will automatically be wrapped in `${ ... }`.
|
|
435
|
+
*/
|
|
436
|
+
static field(field: string): LogFormat;
|
|
437
|
+
protected constructor(value: string);
|
|
438
|
+
}
|
|
439
|
+
/**
|
|
440
|
+
* Options to add a flow log to a VPC
|
|
441
|
+
*/
|
|
442
|
+
export interface FlowLogOptions {
|
|
443
|
+
/**
|
|
444
|
+
* The type of traffic to log. You can log traffic that the resource accepts or rejects, or all traffic.
|
|
445
|
+
* When the target is either `TransitGateway` or `TransitGatewayAttachment`, setting the traffic type is not possible.
|
|
446
|
+
*
|
|
447
|
+
* @see https://docs.aws.amazon.com/vpc/latest/tgw/working-with-flow-logs.html
|
|
448
|
+
*
|
|
449
|
+
* @default ALL
|
|
450
|
+
*/
|
|
451
|
+
readonly trafficType?: FlowLogTrafficType;
|
|
452
|
+
/**
|
|
453
|
+
* Specifies the type of destination to which the flow log data is to be published.
|
|
454
|
+
* Flow log data can be published to CloudWatch Logs or Amazon S3
|
|
455
|
+
*
|
|
456
|
+
* @default FlowLogDestinationType.toCloudWatchLogs()
|
|
457
|
+
*/
|
|
458
|
+
readonly destination?: FlowLogDestination;
|
|
459
|
+
/**
|
|
460
|
+
* The fields to include in the flow log record, in the order in which they should appear.
|
|
461
|
+
*
|
|
462
|
+
* If multiple fields are specified, they will be separated by spaces. For full control over the literal log format
|
|
463
|
+
* string, pass a single field constructed with `LogFormat.custom()`.
|
|
464
|
+
*
|
|
465
|
+
* See https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html#flow-log-records
|
|
466
|
+
*
|
|
467
|
+
* @default - default log format is used.
|
|
468
|
+
*/
|
|
469
|
+
readonly logFormat?: LogFormat[];
|
|
470
|
+
/**
|
|
471
|
+
* The maximum interval of time during which a flow of packets is captured
|
|
472
|
+
* and aggregated into a flow log record.
|
|
473
|
+
*
|
|
474
|
+
* When creating flow logs for a Transit Gateway or Transit Gateway Attachment,
|
|
475
|
+
* this property must be ONE_MINUTES.
|
|
476
|
+
*
|
|
477
|
+
* @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-flowlog.html#cfn-ec2-flowlog-maxaggregationinterval
|
|
478
|
+
*
|
|
479
|
+
* @default - FlowLogMaxAggregationInterval.ONE_MINUTES if creating flow logs for Transit Gateway, otherwise FlowLogMaxAggregationInterval.TEN_MINUTES.
|
|
480
|
+
*/
|
|
481
|
+
readonly maxAggregationInterval?: FlowLogMaxAggregationInterval;
|
|
482
|
+
}
|
|
483
|
+
/**
|
|
484
|
+
* Properties of a VPC Flow Log
|
|
485
|
+
*/
|
|
486
|
+
export interface FlowLogProps extends FlowLogOptions {
|
|
487
|
+
/**
|
|
488
|
+
* The name of the FlowLog
|
|
489
|
+
*
|
|
490
|
+
* Since the FlowLog resource doesn't support providing a physical name, the value provided here will be recorded in the `Name` tag.
|
|
491
|
+
*
|
|
492
|
+
* @default CDK generated name
|
|
493
|
+
*/
|
|
494
|
+
readonly flowLogName?: string;
|
|
495
|
+
/**
|
|
496
|
+
* The type of resource for which to create the flow log
|
|
497
|
+
*/
|
|
498
|
+
readonly resourceType: FlowLogResourceType;
|
|
499
|
+
}
|
|
500
|
+
/**
|
|
501
|
+
* The base class for a Flow Log
|
|
502
|
+
*/
|
|
503
|
+
declare abstract class FlowLogBase extends AwsConstructBase implements IFlowLog {
|
|
504
|
+
/**
|
|
505
|
+
* The Id of the VPC Flow Log
|
|
506
|
+
*
|
|
507
|
+
* @attribute
|
|
508
|
+
*/
|
|
509
|
+
abstract readonly flowLogId: string;
|
|
510
|
+
get flowLogOutputs(): FlowLogOutputs;
|
|
511
|
+
get outputs(): Record<string, any>;
|
|
512
|
+
}
|
|
513
|
+
/**
|
|
514
|
+
* A VPC flow log.
|
|
515
|
+
* @resource AWS::EC2::FlowLog
|
|
516
|
+
*/
|
|
517
|
+
export declare class FlowLog extends FlowLogBase {
|
|
518
|
+
/**
|
|
519
|
+
* Import a Flow Log by it's Id
|
|
520
|
+
*/
|
|
521
|
+
static fromFlowLogId(scope: Construct, id: string, flowLogId: string): IFlowLog;
|
|
522
|
+
/**
|
|
523
|
+
* The Id of the VPC Flow Log
|
|
524
|
+
*
|
|
525
|
+
* @attribute
|
|
526
|
+
*/
|
|
527
|
+
readonly flowLogId: string;
|
|
528
|
+
/**
|
|
529
|
+
* The S3 bucket to publish flow logs to
|
|
530
|
+
*/
|
|
531
|
+
readonly bucket?: storage.IBucket;
|
|
532
|
+
/**
|
|
533
|
+
* S3 bucket key prefix to publish the flow logs under
|
|
534
|
+
*/
|
|
535
|
+
readonly keyPrefix?: string;
|
|
536
|
+
/**
|
|
537
|
+
* The iam role used to publish logs to CloudWatch
|
|
538
|
+
*/
|
|
539
|
+
readonly iamRole?: iam.IRole;
|
|
540
|
+
/**
|
|
541
|
+
* The CloudWatch Logs LogGroup to publish flow logs to
|
|
542
|
+
*/
|
|
543
|
+
readonly logGroup?: logs.ILogGroup;
|
|
544
|
+
/**
|
|
545
|
+
* The ARN of the Kinesis Data Firehose delivery stream to publish flow logs to
|
|
546
|
+
*/
|
|
547
|
+
readonly deliveryStreamArn?: string;
|
|
548
|
+
readonly resource: flowLog.FlowLog;
|
|
549
|
+
constructor(scope: Construct, id: string, props: FlowLogProps);
|
|
550
|
+
}
|
|
551
|
+
export {};
|