import * as core from "@terrascript/core"; export interface LambdaFunctionArgs extends core.SchemaArgs { events: core.Array | core.ArrayOut; filterPrefix?: string | core.StringOut; filterSuffix?: string | core.StringOut; id?: string | core.StringOut; lambdaFunctionArn?: string | core.StringOut; } export class LambdaFunction extends core.Schema { @core.attr(String, { kind: "array" }) public events!: core.Array | core.ArrayOut; @core.attr(String) public filterPrefix?: string | core.StringOut; @core.attr(String) public filterSuffix?: string | core.StringOut; @core.attr(String, { computed: true }) public id?: string | core.StringOut; @core.attr(String) public lambdaFunctionArn?: string | core.StringOut; } export interface TopicArgs extends core.SchemaArgs { events: core.Array | core.ArrayOut; filterPrefix?: string | core.StringOut; filterSuffix?: string | core.StringOut; id?: string | core.StringOut; topicArn: string | core.StringOut; } export class Topic extends core.Schema { @core.attr(String, { kind: "array" }) public events!: core.Array | core.ArrayOut; @core.attr(String) public filterPrefix?: string | core.StringOut; @core.attr(String) public filterSuffix?: string | core.StringOut; @core.attr(String, { computed: true }) public id?: string | core.StringOut; @core.attr(String) public topicArn!: string | core.StringOut; } export interface QueueArgs extends core.SchemaArgs { events: core.Array | core.ArrayOut; filterPrefix?: string | core.StringOut; filterSuffix?: string | core.StringOut; id?: string | core.StringOut; queueArn: string | core.StringOut; } export class Queue extends core.Schema { @core.attr(String, { kind: "array" }) public events!: core.Array | core.ArrayOut; @core.attr(String) public filterPrefix?: string | core.StringOut; @core.attr(String) public filterSuffix?: string | core.StringOut; @core.attr(String, { computed: true }) public id?: string | core.StringOut; @core.attr(String) public queueArn!: string | core.StringOut; } export interface BucketNotificationArgs extends core.ResourceArgs { /** * (Required) Name of the bucket for notification configuration. */ bucket: string | core.StringOut; /** * (Optional) Whether to enable Amazon EventBridge notifications. */ eventbridge?: boolean | core.BooleanOut; /** * (Optional, Multiple) Used to configure notifications to a Lambda Function. See below. */ lambdaFunction?: core.Array | core.ArrayOut; /** * (Optional) Notification configuration to SQS Queue. See below. */ queue?: core.Array | core.ArrayOut; /** * (Optional) Notification configuration to SNS Topic. See below. */ topic?: core.Array | core.ArrayOut; } export class BucketNotification extends core.Resource { /** * (Required) Name of the bucket for notification configuration. */ @core.attr(String) public bucket!: string | core.StringOut; /** * (Optional) Whether to enable Amazon EventBridge notifications. */ @core.attr(Boolean) public eventbridge?: boolean | core.BooleanOut; /** * (Optional) Unique identifier for each of the notification configurations. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional, Multiple) Used to configure notifications to a Lambda Function. See below. */ @core.attr(LambdaFunction, { kind: "array" }) public lambdaFunction?: | core.Array | core.ArrayOut; /** * (Optional) Notification configuration to SQS Queue. See below. */ @core.attr(Queue, { kind: "array" }) public queue?: core.Array | core.ArrayOut; /** * (Optional) Notification configuration to SNS Topic. See below. */ @core.attr(Topic, { kind: "array" }) public topic?: core.Array | core.ArrayOut; constructor(name: string, args?: BucketNotificationArgs) { super(name, "aws_s3_bucket_notification", args); } public override getNamespace(): string { return "aws_s3"; } }