import * as core from "@terrascript/core"; export interface DestinationOptionsArgs extends core.SchemaArgs { fileFormat?: string | core.StringOut; hiveCompatiblePartitions?: boolean | core.BooleanOut; perHourPartition?: boolean | core.BooleanOut; } export class DestinationOptions extends core.Schema { @core.attr(String) public fileFormat?: string | core.StringOut; @core.attr(Boolean) public hiveCompatiblePartitions?: boolean | core.BooleanOut; @core.attr(Boolean) public perHourPartition?: boolean | core.BooleanOut; } export interface FlowLogArgs extends core.ResourceArgs { /** * (Optional) Describes the destination options for a flow log. More details below. */ destinationOptions?: DestinationOptions; /** * (Optional) Elastic Network Interface ID to attach to */ eniId?: string | core.StringOut; /** * (Optional) The ARN for the IAM role that's used to post flow logs to a CloudWatch Logs log group */ iamRoleArn?: string | core.StringOut; /** * (Optional) The ARN of the logging destination. */ logDestination?: string | core.StringOut; /** * (Optional) The type of the logging destination. Valid values: `cloud-watch-logs`, `s3`. Default: `cl * oud-watch-logs`. */ logDestinationType?: string | core.StringOut; /** * (Optional) The fields to include in the flow log record, in the order in which they should appear. */ logFormat?: string | core.StringOut; /** * (Optional) *Deprecated:* Use `log_destination` instead. The name of the CloudWatch log group. */ logGroupName?: string | core.StringOut; /** * (Optional) The maximum interval of time */ maxAggregationInterval?: number | core.NumberOut; /** * (Optional) Subnet ID to attach to */ subnetId?: string | core.StringOut; /** * (Optional) Key-value map of resource tags. If configured with a provider [`default_tags` configurati * on block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configurati * on-block) present, tags with matching keys will overwrite those defined at the provider-level. */ tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ tagsAll?: core.Map | core.MapOut; /** * (Required) The type of traffic to capture. Valid values: `ACCEPT`,`REJECT`, `ALL`. */ trafficType?: string | core.StringOut; /** * (Optional) Transit Gateway Attachment ID to attach to */ transitGatewayAttachmentId?: string | core.StringOut; /** * (Optional) Transit Gateway ID to attach to */ transitGatewayId?: string | core.StringOut; /** * (Optional) VPC ID to attach to */ vpcId?: string | core.StringOut; } export class FlowLog extends core.Resource { /** * The ARN of the Flow Log. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) Describes the destination options for a flow log. More details below. */ @core.attr(DestinationOptions) public destinationOptions?: DestinationOptions; /** * (Optional) Elastic Network Interface ID to attach to */ @core.attr(String) public eniId?: string | core.StringOut; /** * (Optional) The ARN for the IAM role that's used to post flow logs to a CloudWatch Logs log group */ @core.attr(String) public iamRoleArn?: string | core.StringOut; /** * The Flow Log ID */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) The ARN of the logging destination. */ @core.attr(String, { computed: true }) public logDestination?: string | core.StringOut; /** * (Optional) The type of the logging destination. Valid values: `cloud-watch-logs`, `s3`. Default: `cl * oud-watch-logs`. */ @core.attr(String) public logDestinationType?: string | core.StringOut; /** * (Optional) The fields to include in the flow log record, in the order in which they should appear. */ @core.attr(String, { computed: true }) public logFormat?: string | core.StringOut; /** * (Optional) *Deprecated:* Use `log_destination` instead. The name of the CloudWatch log group. */ @core.attr(String, { computed: true }) public logGroupName?: string | core.StringOut; /** * (Optional) The maximum interval of time */ @core.attr(Number) public maxAggregationInterval?: number | core.NumberOut; /** * (Optional) Subnet ID to attach to */ @core.attr(String) public subnetId?: string | core.StringOut; /** * (Optional) Key-value map of resource tags. If configured with a provider [`default_tags` configurati * on block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configurati * on-block) present, tags with matching keys will overwrite those defined at the provider-level. */ @core.attr(String, { kind: "map" }) public tags?: core.Map | core.MapOut; /** * A map of tags assigned to the resource, including those inherited from the provider [`default_tags` * configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags- * configuration-block). */ @core.attr(String, { computed: true, kind: "map" }) public tagsAll?: core.Map | core.MapOut; /** * (Required) The type of traffic to capture. Valid values: `ACCEPT`,`REJECT`, `ALL`. */ @core.attr(String) public trafficType?: string | core.StringOut; /** * (Optional) Transit Gateway Attachment ID to attach to */ @core.attr(String) public transitGatewayAttachmentId?: string | core.StringOut; /** * (Optional) Transit Gateway ID to attach to */ @core.attr(String) public transitGatewayId?: string | core.StringOut; /** * (Optional) VPC ID to attach to */ @core.attr(String) public vpcId?: string | core.StringOut; constructor(name: string, args?: FlowLogArgs) { super(name, "aws_flow_log", args); } public override getNamespace(): string { return "aws_vpc"; } }