import * as pulumi from "@pulumi/pulumi"; import { BaseFargateTaskOptions } from "./scheduledTaskBase"; /** * SQS trigger configuration for the task */ export type SqsTriggerConfig = { /** * ARN of the SQS queue to trigger from */ queueArn: pulumi.Input; /** * Number of messages per batch (default: 1) * Each batch triggers one task invocation */ batchSize?: number; /** * Maximum batching window in seconds (default: 0) * How long to wait to accumulate messages before triggering */ maximumBatchingWindowSeconds?: number; }; /** * Options for creating an SQS-triggered Fargate task */ export type SQSTriggeredFargateTaskOptions = BaseFargateTaskOptions & { /** * SQS queue trigger configuration - required */ sqsTrigger: SqsTriggerConfig; }; /** * Creates a Fargate task that is triggered by messages in an SQS queue. * Uses EventBridge Pipes to connect the SQS queue to ECS task execution. * * @param taskName A name for this task. For example, "order-processor" * @param dockerImage The docker image to run * @param options Configuration options for the SQS-triggered task * * @example * ```typescript * await createSQSTriggeredFargateTask("order-processor", "myapp/processor:latest", { * sqsTrigger: { * queueArn: ordersQueue.arn, * batchSize: 10, * maximumBatchingWindowSeconds: 30, * }, * cpu: 512, * memory: 1024, * environment: [{ name: "DB_HOST", value: dbHost }], * slackChannel: "#order-processing-alerts", * team: "platform", * }); * ``` */ export declare function createSQSTriggeredFargateTask(taskName: string, dockerImage: string | Promise | pulumi.OutputInstance, options: SQSTriggeredFargateTaskOptions): Promise<{ taskDefinition: import("@pulumi/aws/ecs/taskDefinition").TaskDefinition; taskSecurityGroup: import("@pulumi/aws/ec2/securityGroup").SecurityGroup; logGroup: import("@pulumi/aws/cloudwatch/logGroup").LogGroup; executionRole: import("@pulumi/aws/iam/role").Role; taskRole: import("@pulumi/aws/iam/role").Role; eventBridgeRole: import("@pulumi/aws/iam/role").Role; pipe: import("@pulumi/aws/pipes/pipe").Pipe; }>;