import * as core from "@terrascript/core"; export interface WorkmailActionArgs extends core.SchemaArgs { organizationArn: string | core.StringOut; position: number | core.NumberOut; topicArn?: string | core.StringOut; } export class WorkmailAction extends core.Schema { @core.attr(String) public organizationArn!: string | core.StringOut; @core.attr(Number) public position!: number | core.NumberOut; @core.attr(String) public topicArn?: string | core.StringOut; } export interface AddHeaderActionArgs extends core.SchemaArgs { headerName: string | core.StringOut; headerValue: string | core.StringOut; position: number | core.NumberOut; } export class AddHeaderAction extends core.Schema { @core.attr(String) public headerName!: string | core.StringOut; @core.attr(String) public headerValue!: string | core.StringOut; @core.attr(Number) public position!: number | core.NumberOut; } export interface S3ActionArgs extends core.SchemaArgs { bucketName: string | core.StringOut; kmsKeyArn?: string | core.StringOut; objectKeyPrefix?: string | core.StringOut; position: number | core.NumberOut; topicArn?: string | core.StringOut; } export class S3Action extends core.Schema { @core.attr(String) public bucketName!: string | core.StringOut; @core.attr(String) public kmsKeyArn?: string | core.StringOut; @core.attr(String) public objectKeyPrefix?: string | core.StringOut; @core.attr(Number) public position!: number | core.NumberOut; @core.attr(String) public topicArn?: string | core.StringOut; } export interface SnsActionArgs extends core.SchemaArgs { encoding?: string | core.StringOut; position: number | core.NumberOut; topicArn: string | core.StringOut; } export class SnsAction extends core.Schema { @core.attr(String) public encoding?: string | core.StringOut; @core.attr(Number) public position!: number | core.NumberOut; @core.attr(String) public topicArn!: string | core.StringOut; } export interface BounceActionArgs extends core.SchemaArgs { message: string | core.StringOut; position: number | core.NumberOut; sender: string | core.StringOut; smtpReplyCode: string | core.StringOut; statusCode?: string | core.StringOut; topicArn?: string | core.StringOut; } export class BounceAction extends core.Schema { @core.attr(String) public message!: string | core.StringOut; @core.attr(Number) public position!: number | core.NumberOut; @core.attr(String) public sender!: string | core.StringOut; @core.attr(String) public smtpReplyCode!: string | core.StringOut; @core.attr(String) public statusCode?: string | core.StringOut; @core.attr(String) public topicArn?: string | core.StringOut; } export interface LambdaActionArgs extends core.SchemaArgs { functionArn: string | core.StringOut; invocationType?: string | core.StringOut; position: number | core.NumberOut; topicArn?: string | core.StringOut; } export class LambdaAction extends core.Schema { @core.attr(String) public functionArn!: string | core.StringOut; @core.attr(String) public invocationType?: string | core.StringOut; @core.attr(Number) public position!: number | core.NumberOut; @core.attr(String) public topicArn?: string | core.StringOut; } export interface StopActionArgs extends core.SchemaArgs { position: number | core.NumberOut; scope: string | core.StringOut; topicArn?: string | core.StringOut; } export class StopAction extends core.Schema { @core.attr(Number) public position!: number | core.NumberOut; @core.attr(String) public scope!: string | core.StringOut; @core.attr(String) public topicArn?: string | core.StringOut; } export interface ReceiptRuleArgs extends core.ResourceArgs { /** * (Optional) A list of Add Header Action blocks. Documented below. */ addHeaderAction?: | core.Array | core.ArrayOut; /** * (Optional) The name of the rule to place this rule after */ after?: string | core.StringOut; /** * (Optional) A list of Bounce Action blocks. Documented below. */ bounceAction?: core.Array | core.ArrayOut; /** * (Optional) If true, the rule will be enabled */ enabled?: boolean | core.BooleanOut; /** * (Optional) A list of Lambda Action blocks. Documented below. */ lambdaAction?: core.Array | core.ArrayOut; /** * (Required) The name of the rule */ name: string | core.StringOut; /** * (Optional) A list of email addresses */ recipients?: core.Array | core.ArrayOut; /** * (Required) The name of the rule set */ ruleSetName: string | core.StringOut; /** * (Optional) A list of S3 Action blocks. Documented below. */ s3Action?: core.Array | core.ArrayOut; /** * (Optional) If true, incoming emails will be scanned for spam and viruses */ scanEnabled?: boolean | core.BooleanOut; /** * (Optional) A list of SNS Action blocks. Documented below. */ snsAction?: core.Array | core.ArrayOut; /** * (Optional) A list of Stop Action blocks. Documented below. */ stopAction?: core.Array | core.ArrayOut; /** * (Optional) `Require` or `Optional` */ tlsPolicy?: string | core.StringOut; /** * (Optional) A list of WorkMail Action blocks. Documented below. */ workmailAction?: core.Array | core.ArrayOut; } export class ReceiptRule extends core.Resource { /** * (Optional) A list of Add Header Action blocks. Documented below. */ @core.attr(AddHeaderAction, { kind: "array" }) public addHeaderAction?: | core.Array | core.ArrayOut; /** * (Optional) The name of the rule to place this rule after */ @core.attr(String) public after?: string | core.StringOut; /** * The SES receipt rule ARN. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) A list of Bounce Action blocks. Documented below. */ @core.attr(BounceAction, { kind: "array" }) public bounceAction?: core.Array | core.ArrayOut; /** * (Optional) If true, the rule will be enabled */ @core.attr(Boolean) public enabled?: boolean | core.BooleanOut; /** * The SES receipt rule name. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) A list of Lambda Action blocks. Documented below. */ @core.attr(LambdaAction, { kind: "array" }) public lambdaAction?: core.Array | core.ArrayOut; /** * (Required) The name of the rule */ @core.attr(String) public name!: string | core.StringOut; /** * (Optional) A list of email addresses */ @core.attr(String, { kind: "array" }) public recipients?: core.Array | core.ArrayOut; /** * (Required) The name of the rule set */ @core.attr(String) public ruleSetName!: string | core.StringOut; /** * (Optional) A list of S3 Action blocks. Documented below. */ @core.attr(S3Action, { kind: "array" }) public s3Action?: core.Array | core.ArrayOut; /** * (Optional) If true, incoming emails will be scanned for spam and viruses */ @core.attr(Boolean) public scanEnabled?: boolean | core.BooleanOut; /** * (Optional) A list of SNS Action blocks. Documented below. */ @core.attr(SnsAction, { kind: "array" }) public snsAction?: core.Array | core.ArrayOut; /** * (Optional) A list of Stop Action blocks. Documented below. */ @core.attr(StopAction, { kind: "array" }) public stopAction?: core.Array | core.ArrayOut; /** * (Optional) `Require` or `Optional` */ @core.attr(String, { computed: true }) public tlsPolicy?: string | core.StringOut; /** * (Optional) A list of WorkMail Action blocks. Documented below. */ @core.attr(WorkmailAction, { kind: "array" }) public workmailAction?: | core.Array | core.ArrayOut; constructor(name: string, args?: ReceiptRuleArgs) { super(name, "aws_ses_receipt_rule", args); } public override getNamespace(): string { return "aws_ses"; } }