Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.aws.sqs.kotlin.QueueArgs.kt Maven / Gradle / Ivy
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.aws.sqs.kotlin
import com.pulumi.aws.sqs.QueueArgs.builder
import com.pulumi.core.Output
import com.pulumi.core.Output.of
import com.pulumi.kotlin.ConvertibleToJava
import com.pulumi.kotlin.PulumiTagMarker
import kotlin.Boolean
import kotlin.Int
import kotlin.Pair
import kotlin.String
import kotlin.Suppress
import kotlin.collections.Map
import kotlin.jvm.JvmName
/**
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
* const queue = new aws.sqs.Queue("queue", {
* name: "example-queue",
* delaySeconds: 90,
* maxMessageSize: 2048,
* messageRetentionSeconds: 86400,
* receiveWaitTimeSeconds: 10,
* redrivePolicy: JSON.stringify({
* deadLetterTargetArn: queueDeadletter.arn,
* maxReceiveCount: 4,
* }),
* tags: {
* Environment: "production",
* },
* });
* ```
* ```python
* import pulumi
* import json
* import pulumi_aws as aws
* queue = aws.sqs.Queue("queue",
* name="example-queue",
* delay_seconds=90,
* max_message_size=2048,
* message_retention_seconds=86400,
* receive_wait_time_seconds=10,
* redrive_policy=json.dumps({
* "deadLetterTargetArn": queue_deadletter["arn"],
* "maxReceiveCount": 4,
* }),
* tags={
* "Environment": "production",
* })
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using System.Text.Json;
* using Pulumi;
* using Aws = Pulumi.Aws;
* return await Deployment.RunAsync(() =>
* {
* var queue = new Aws.Sqs.Queue("queue", new()
* {
* Name = "example-queue",
* DelaySeconds = 90,
* MaxMessageSize = 2048,
* MessageRetentionSeconds = 86400,
* ReceiveWaitTimeSeconds = 10,
* RedrivePolicy = JsonSerializer.Serialize(new Dictionary
* {
* ["deadLetterTargetArn"] = queueDeadletter.Arn,
* ["maxReceiveCount"] = 4,
* }),
* Tags =
* {
* { "Environment", "production" },
* },
* });
* });
* ```
* ```go
* package main
* import (
* "encoding/json"
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sqs"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* tmpJSON0, err := json.Marshal(map[string]interface{}{
* "deadLetterTargetArn": queueDeadletter.Arn,
* "maxReceiveCount": 4,
* })
* if err != nil {
* return err
* }
* json0 := string(tmpJSON0)
* _, err = sqs.NewQueue(ctx, "queue", &sqs.QueueArgs{
* Name: pulumi.String("example-queue"),
* DelaySeconds: pulumi.Int(90),
* MaxMessageSize: pulumi.Int(2048),
* MessageRetentionSeconds: pulumi.Int(86400),
* ReceiveWaitTimeSeconds: pulumi.Int(10),
* RedrivePolicy: pulumi.String(json0),
* Tags: pulumi.StringMap{
* "Environment": pulumi.String("production"),
* },
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.aws.sqs.Queue;
* import com.pulumi.aws.sqs.QueueArgs;
* import static com.pulumi.codegen.internal.Serialization.*;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
* import java.nio.file.Paths;
* public class App {
* public static void main(String[] args) {
* Pulumi.run(App::stack);
* }
* public static void stack(Context ctx) {
* var queue = new Queue("queue", QueueArgs.builder()
* .name("example-queue")
* .delaySeconds(90)
* .maxMessageSize(2048)
* .messageRetentionSeconds(86400)
* .receiveWaitTimeSeconds(10)
* .redrivePolicy(serializeJson(
* jsonObject(
* jsonProperty("deadLetterTargetArn", queueDeadletter.arn()),
* jsonProperty("maxReceiveCount", 4)
* )))
* .tags(Map.of("Environment", "production"))
* .build());
* }
* }
* ```
* ```yaml
* resources:
* queue:
* type: aws:sqs:Queue
* properties:
* name: example-queue
* delaySeconds: 90
* maxMessageSize: 2048
* messageRetentionSeconds: 86400
* receiveWaitTimeSeconds: 10
* redrivePolicy:
* fn::toJSON:
* deadLetterTargetArn: ${queueDeadletter.arn}
* maxReceiveCount: 4
* tags:
* Environment: production
* ```
*
* ## FIFO queue
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
* const queue = new aws.sqs.Queue("queue", {
* name: "example-queue.fifo",
* fifoQueue: true,
* contentBasedDeduplication: true,
* });
* ```
* ```python
* import pulumi
* import pulumi_aws as aws
* queue = aws.sqs.Queue("queue",
* name="example-queue.fifo",
* fifo_queue=True,
* content_based_deduplication=True)
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Aws = Pulumi.Aws;
* return await Deployment.RunAsync(() =>
* {
* var queue = new Aws.Sqs.Queue("queue", new()
* {
* Name = "example-queue.fifo",
* FifoQueue = true,
* ContentBasedDeduplication = true,
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sqs"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* _, err := sqs.NewQueue(ctx, "queue", &sqs.QueueArgs{
* Name: pulumi.String("example-queue.fifo"),
* FifoQueue: pulumi.Bool(true),
* ContentBasedDeduplication: pulumi.Bool(true),
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.aws.sqs.Queue;
* import com.pulumi.aws.sqs.QueueArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
* import java.nio.file.Paths;
* public class App {
* public static void main(String[] args) {
* Pulumi.run(App::stack);
* }
* public static void stack(Context ctx) {
* var queue = new Queue("queue", QueueArgs.builder()
* .name("example-queue.fifo")
* .fifoQueue(true)
* .contentBasedDeduplication(true)
* .build());
* }
* }
* ```
* ```yaml
* resources:
* queue:
* type: aws:sqs:Queue
* properties:
* name: example-queue.fifo
* fifoQueue: true
* contentBasedDeduplication: true
* ```
*
* ## High-throughput FIFO queue
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
* const queue = new aws.sqs.Queue("queue", {
* name: "pulumi-example-queue.fifo",
* fifoQueue: true,
* deduplicationScope: "messageGroup",
* fifoThroughputLimit: "perMessageGroupId",
* });
* ```
* ```python
* import pulumi
* import pulumi_aws as aws
* queue = aws.sqs.Queue("queue",
* name="pulumi-example-queue.fifo",
* fifo_queue=True,
* deduplication_scope="messageGroup",
* fifo_throughput_limit="perMessageGroupId")
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Aws = Pulumi.Aws;
* return await Deployment.RunAsync(() =>
* {
* var queue = new Aws.Sqs.Queue("queue", new()
* {
* Name = "pulumi-example-queue.fifo",
* FifoQueue = true,
* DeduplicationScope = "messageGroup",
* FifoThroughputLimit = "perMessageGroupId",
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sqs"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* _, err := sqs.NewQueue(ctx, "queue", &sqs.QueueArgs{
* Name: pulumi.String("pulumi-example-queue.fifo"),
* FifoQueue: pulumi.Bool(true),
* DeduplicationScope: pulumi.String("messageGroup"),
* FifoThroughputLimit: pulumi.String("perMessageGroupId"),
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.aws.sqs.Queue;
* import com.pulumi.aws.sqs.QueueArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
* import java.nio.file.Paths;
* public class App {
* public static void main(String[] args) {
* Pulumi.run(App::stack);
* }
* public static void stack(Context ctx) {
* var queue = new Queue("queue", QueueArgs.builder()
* .name("pulumi-example-queue.fifo")
* .fifoQueue(true)
* .deduplicationScope("messageGroup")
* .fifoThroughputLimit("perMessageGroupId")
* .build());
* }
* }
* ```
* ```yaml
* resources:
* queue:
* type: aws:sqs:Queue
* properties:
* name: pulumi-example-queue.fifo
* fifoQueue: true
* deduplicationScope: messageGroup
* fifoThroughputLimit: perMessageGroupId
* ```
*
* ## Dead-letter queue
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
* const queue = new aws.sqs.Queue("queue", {
* name: "pulumi-example-queue",
* redrivePolicy: JSON.stringify({
* deadLetterTargetArn: queueDeadletter.arn,
* maxReceiveCount: 4,
* }),
* });
* const exampleQueueDeadletter = new aws.sqs.Queue("example_queue_deadletter", {name: "pulumi-example-deadletter-queue"});
* const exampleQueueRedriveAllowPolicy = new aws.sqs.RedriveAllowPolicy("example_queue_redrive_allow_policy", {
* queueUrl: exampleQueueDeadletter.id,
* redriveAllowPolicy: JSON.stringify({
* redrivePermission: "byQueue",
* sourceQueueArns: [exampleQueue.arn],
* }),
* });
* ```
* ```python
* import pulumi
* import json
* import pulumi_aws as aws
* queue = aws.sqs.Queue("queue",
* name="pulumi-example-queue",
* redrive_policy=json.dumps({
* "deadLetterTargetArn": queue_deadletter["arn"],
* "maxReceiveCount": 4,
* }))
* example_queue_deadletter = aws.sqs.Queue("example_queue_deadletter", name="pulumi-example-deadletter-queue")
* example_queue_redrive_allow_policy = aws.sqs.RedriveAllowPolicy("example_queue_redrive_allow_policy",
* queue_url=example_queue_deadletter.id,
* redrive_allow_policy=json.dumps({
* "redrivePermission": "byQueue",
* "sourceQueueArns": [example_queue["arn"]],
* }))
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using System.Text.Json;
* using Pulumi;
* using Aws = Pulumi.Aws;
* return await Deployment.RunAsync(() =>
* {
* var queue = new Aws.Sqs.Queue("queue", new()
* {
* Name = "pulumi-example-queue",
* RedrivePolicy = JsonSerializer.Serialize(new Dictionary
* {
* ["deadLetterTargetArn"] = queueDeadletter.Arn,
* ["maxReceiveCount"] = 4,
* }),
* });
* var exampleQueueDeadletter = new Aws.Sqs.Queue("example_queue_deadletter", new()
* {
* Name = "pulumi-example-deadletter-queue",
* });
* var exampleQueueRedriveAllowPolicy = new Aws.Sqs.RedriveAllowPolicy("example_queue_redrive_allow_policy", new()
* {
* QueueUrl = exampleQueueDeadletter.Id,
* RedriveAllowPolicyName = JsonSerializer.Serialize(new Dictionary
* {
* ["redrivePermission"] = "byQueue",
* ["sourceQueueArns"] = new[]
* {
* exampleQueue.Arn,
* },
* }),
* });
* });
* ```
* ```go
* package main
* import (
* "encoding/json"
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sqs"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* tmpJSON0, err := json.Marshal(map[string]interface{}{
* "deadLetterTargetArn": queueDeadletter.Arn,
* "maxReceiveCount": 4,
* })
* if err != nil {
* return err
* }
* json0 := string(tmpJSON0)
* _, err = sqs.NewQueue(ctx, "queue", &sqs.QueueArgs{
* Name: pulumi.String("pulumi-example-queue"),
* RedrivePolicy: pulumi.String(json0),
* })
* if err != nil {
* return err
* }
* exampleQueueDeadletter, err := sqs.NewQueue(ctx, "example_queue_deadletter", &sqs.QueueArgs{
* Name: pulumi.String("pulumi-example-deadletter-queue"),
* })
* if err != nil {
* return err
* }
* tmpJSON1, err := json.Marshal(map[string]interface{}{
* "redrivePermission": "byQueue",
* "sourceQueueArns": []interface{}{
* exampleQueue.Arn,
* },
* })
* if err != nil {
* return err
* }
* json1 := string(tmpJSON1)
* _, err = sqs.NewRedriveAllowPolicy(ctx, "example_queue_redrive_allow_policy", &sqs.RedriveAllowPolicyArgs{
* QueueUrl: exampleQueueDeadletter.ID(),
* RedriveAllowPolicy: pulumi.String(json1),
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.aws.sqs.Queue;
* import com.pulumi.aws.sqs.QueueArgs;
* import com.pulumi.aws.sqs.RedriveAllowPolicy;
* import com.pulumi.aws.sqs.RedriveAllowPolicyArgs;
* import static com.pulumi.codegen.internal.Serialization.*;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
* import java.nio.file.Paths;
* public class App {
* public static void main(String[] args) {
* Pulumi.run(App::stack);
* }
* public static void stack(Context ctx) {
* var queue = new Queue("queue", QueueArgs.builder()
* .name("pulumi-example-queue")
* .redrivePolicy(serializeJson(
* jsonObject(
* jsonProperty("deadLetterTargetArn", queueDeadletter.arn()),
* jsonProperty("maxReceiveCount", 4)
* )))
* .build());
* var exampleQueueDeadletter = new Queue("exampleQueueDeadletter", QueueArgs.builder()
* .name("pulumi-example-deadletter-queue")
* .build());
* var exampleQueueRedriveAllowPolicy = new RedriveAllowPolicy("exampleQueueRedriveAllowPolicy", RedriveAllowPolicyArgs.builder()
* .queueUrl(exampleQueueDeadletter.id())
* .redriveAllowPolicy(serializeJson(
* jsonObject(
* jsonProperty("redrivePermission", "byQueue"),
* jsonProperty("sourceQueueArns", jsonArray(exampleQueue.arn()))
* )))
* .build());
* }
* }
* ```
* ```yaml
* resources:
* queue:
* type: aws:sqs:Queue
* properties:
* name: pulumi-example-queue
* redrivePolicy:
* fn::toJSON:
* deadLetterTargetArn: ${queueDeadletter.arn}
* maxReceiveCount: 4
* exampleQueueDeadletter:
* type: aws:sqs:Queue
* name: example_queue_deadletter
* properties:
* name: pulumi-example-deadletter-queue
* exampleQueueRedriveAllowPolicy:
* type: aws:sqs:RedriveAllowPolicy
* name: example_queue_redrive_allow_policy
* properties:
* queueUrl: ${exampleQueueDeadletter.id}
* redriveAllowPolicy:
* fn::toJSON:
* redrivePermission: byQueue
* sourceQueueArns:
* - ${exampleQueue.arn}
* ```
*
* ## Server-side encryption (SSE)
* Using [SSE-SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-sqs-sse-queue.html):
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
* const queue = new aws.sqs.Queue("queue", {
* name: "pulumi-example-queue",
* sqsManagedSseEnabled: true,
* });
* ```
* ```python
* import pulumi
* import pulumi_aws as aws
* queue = aws.sqs.Queue("queue",
* name="pulumi-example-queue",
* sqs_managed_sse_enabled=True)
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Aws = Pulumi.Aws;
* return await Deployment.RunAsync(() =>
* {
* var queue = new Aws.Sqs.Queue("queue", new()
* {
* Name = "pulumi-example-queue",
* SqsManagedSseEnabled = true,
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sqs"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* _, err := sqs.NewQueue(ctx, "queue", &sqs.QueueArgs{
* Name: pulumi.String("pulumi-example-queue"),
* SqsManagedSseEnabled: pulumi.Bool(true),
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.aws.sqs.Queue;
* import com.pulumi.aws.sqs.QueueArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
* import java.nio.file.Paths;
* public class App {
* public static void main(String[] args) {
* Pulumi.run(App::stack);
* }
* public static void stack(Context ctx) {
* var queue = new Queue("queue", QueueArgs.builder()
* .name("pulumi-example-queue")
* .sqsManagedSseEnabled(true)
* .build());
* }
* }
* ```
* ```yaml
* resources:
* queue:
* type: aws:sqs:Queue
* properties:
* name: pulumi-example-queue
* sqsManagedSseEnabled: true
* ```
*
* Using [SSE-KMS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-sse-existing-queue.html):
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
* const queue = new aws.sqs.Queue("queue", {
* name: "example-queue",
* kmsMasterKeyId: "alias/aws/sqs",
* kmsDataKeyReusePeriodSeconds: 300,
* });
* ```
* ```python
* import pulumi
* import pulumi_aws as aws
* queue = aws.sqs.Queue("queue",
* name="example-queue",
* kms_master_key_id="alias/aws/sqs",
* kms_data_key_reuse_period_seconds=300)
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Aws = Pulumi.Aws;
* return await Deployment.RunAsync(() =>
* {
* var queue = new Aws.Sqs.Queue("queue", new()
* {
* Name = "example-queue",
* KmsMasterKeyId = "alias/aws/sqs",
* KmsDataKeyReusePeriodSeconds = 300,
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sqs"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* _, err := sqs.NewQueue(ctx, "queue", &sqs.QueueArgs{
* Name: pulumi.String("example-queue"),
* KmsMasterKeyId: pulumi.String("alias/aws/sqs"),
* KmsDataKeyReusePeriodSeconds: pulumi.Int(300),
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.aws.sqs.Queue;
* import com.pulumi.aws.sqs.QueueArgs;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
* import java.nio.file.Paths;
* public class App {
* public static void main(String[] args) {
* Pulumi.run(App::stack);
* }
* public static void stack(Context ctx) {
* var queue = new Queue("queue", QueueArgs.builder()
* .name("example-queue")
* .kmsMasterKeyId("alias/aws/sqs")
* .kmsDataKeyReusePeriodSeconds(300)
* .build());
* }
* }
* ```
* ```yaml
* resources:
* queue:
* type: aws:sqs:Queue
* properties:
* name: example-queue
* kmsMasterKeyId: alias/aws/sqs
* kmsDataKeyReusePeriodSeconds: 300
* ```
*
* ## Import
* Using `pulumi import`, import SQS Queues using the queue `url`. For example:
* ```sh
* $ pulumi import aws:sqs/queue:Queue public_queue https://queue.amazonaws.com/80398EXAMPLE/MyQueue
* ```
* @property contentBasedDeduplication Enables content-based deduplication for FIFO queues. For more information, see the [related documentation](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing)
* @property deduplicationScope Specifies whether message deduplication occurs at the message group or queue level. Valid values are `messageGroup` and `queue` (default).
* @property delaySeconds The time in seconds that the delivery of all messages in the queue will be delayed. An integer from 0 to 900 (15 minutes). The default for this attribute is 0 seconds.
* @property fifoQueue Boolean designating a FIFO queue. If not set, it defaults to `false` making it standard.
* @property fifoThroughputLimit Specifies whether the FIFO queue throughput quota applies to the entire queue or per message group. Valid values are `perQueue` (default) and `perMessageGroupId`.
* @property kmsDataKeyReusePeriodSeconds The length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again. An integer representing seconds, between 60 seconds (1 minute) and 86,400 seconds (24 hours). The default is 300 (5 minutes).
* @property kmsMasterKeyId The ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK. For more information, see [Key Terms](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-sse-key-terms).
* @property maxMessageSize The limit of how many bytes a message can contain before Amazon SQS rejects it. An integer from 1024 bytes (1 KiB) up to 262144 bytes (256 KiB). The default for this attribute is 262144 (256 KiB).
* @property messageRetentionSeconds The number of seconds Amazon SQS retains a message. Integer representing seconds, from 60 (1 minute) to 1209600 (14 days). The default for this attribute is 345600 (4 days).
* @property name The name of the queue. Queue names must be made up of only uppercase and lowercase ASCII letters, numbers, underscores, and hyphens, and must be between 1 and 80 characters long. For a FIFO (first-in-first-out) queue, the name must end with the `.fifo` suffix. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`
* @property namePrefix Creates a unique name beginning with the specified prefix. Conflicts with `name`
* @property policy The JSON policy for the SQS queue.
* @property receiveWaitTimeSeconds The time for which a ReceiveMessage call will wait for a message to arrive (long polling) before returning. An integer from 0 to 20 (seconds). The default for this attribute is 0, meaning that the call will return immediately.
* @property redriveAllowPolicy The JSON policy to set up the Dead Letter Queue redrive permission, see [AWS docs](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSDeadLetterQueue.html).
* @property redrivePolicy The JSON policy to set up the Dead Letter Queue, see [AWS docs](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSDeadLetterQueue.html). **Note:** when specifying `maxReceiveCount`, you must specify it as an integer (`5`), and not a string (`"5"`).
* @property sqsManagedSseEnabled Boolean to enable server-side encryption (SSE) of message content with SQS-owned encryption keys. See [Encryption at rest](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html). The provider will only perform drift detection of its value when present in a configuration.
* @property tags A map of tags to assign to the queue. If configured with a provider `default_tags` configuration block) present, tags with matching keys will overwrite those defined at the provider-level.
* @property visibilityTimeoutSeconds The visibility timeout for the queue. An integer from 0 to 43200 (12 hours). The default for this attribute is 30. For more information about visibility timeout, see [AWS docs](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AboutVT.html).
*/
public data class QueueArgs(
public val contentBasedDeduplication: Output? = null,
public val deduplicationScope: Output? = null,
public val delaySeconds: Output? = null,
public val fifoQueue: Output? = null,
public val fifoThroughputLimit: Output? = null,
public val kmsDataKeyReusePeriodSeconds: Output? = null,
public val kmsMasterKeyId: Output? = null,
public val maxMessageSize: Output? = null,
public val messageRetentionSeconds: Output? = null,
public val name: Output? = null,
public val namePrefix: Output? = null,
public val policy: Output? = null,
public val receiveWaitTimeSeconds: Output? = null,
public val redriveAllowPolicy: Output? = null,
public val redrivePolicy: Output? = null,
public val sqsManagedSseEnabled: Output? = null,
public val tags: Output>? = null,
public val visibilityTimeoutSeconds: Output? = null,
) : ConvertibleToJava {
override fun toJava(): com.pulumi.aws.sqs.QueueArgs = com.pulumi.aws.sqs.QueueArgs.builder()
.contentBasedDeduplication(contentBasedDeduplication?.applyValue({ args0 -> args0 }))
.deduplicationScope(deduplicationScope?.applyValue({ args0 -> args0 }))
.delaySeconds(delaySeconds?.applyValue({ args0 -> args0 }))
.fifoQueue(fifoQueue?.applyValue({ args0 -> args0 }))
.fifoThroughputLimit(fifoThroughputLimit?.applyValue({ args0 -> args0 }))
.kmsDataKeyReusePeriodSeconds(kmsDataKeyReusePeriodSeconds?.applyValue({ args0 -> args0 }))
.kmsMasterKeyId(kmsMasterKeyId?.applyValue({ args0 -> args0 }))
.maxMessageSize(maxMessageSize?.applyValue({ args0 -> args0 }))
.messageRetentionSeconds(messageRetentionSeconds?.applyValue({ args0 -> args0 }))
.name(name?.applyValue({ args0 -> args0 }))
.namePrefix(namePrefix?.applyValue({ args0 -> args0 }))
.policy(policy?.applyValue({ args0 -> args0 }))
.receiveWaitTimeSeconds(receiveWaitTimeSeconds?.applyValue({ args0 -> args0 }))
.redriveAllowPolicy(redriveAllowPolicy?.applyValue({ args0 -> args0 }))
.redrivePolicy(redrivePolicy?.applyValue({ args0 -> args0 }))
.sqsManagedSseEnabled(sqsManagedSseEnabled?.applyValue({ args0 -> args0 }))
.tags(tags?.applyValue({ args0 -> args0.map({ args0 -> args0.key.to(args0.value) }).toMap() }))
.visibilityTimeoutSeconds(visibilityTimeoutSeconds?.applyValue({ args0 -> args0 })).build()
}
/**
* Builder for [QueueArgs].
*/
@PulumiTagMarker
public class QueueArgsBuilder internal constructor() {
private var contentBasedDeduplication: Output? = null
private var deduplicationScope: Output? = null
private var delaySeconds: Output? = null
private var fifoQueue: Output? = null
private var fifoThroughputLimit: Output? = null
private var kmsDataKeyReusePeriodSeconds: Output? = null
private var kmsMasterKeyId: Output? = null
private var maxMessageSize: Output? = null
private var messageRetentionSeconds: Output? = null
private var name: Output? = null
private var namePrefix: Output? = null
private var policy: Output? = null
private var receiveWaitTimeSeconds: Output? = null
private var redriveAllowPolicy: Output? = null
private var redrivePolicy: Output? = null
private var sqsManagedSseEnabled: Output? = null
private var tags: Output>? = null
private var visibilityTimeoutSeconds: Output? = null
/**
* @param value Enables content-based deduplication for FIFO queues. For more information, see the [related documentation](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing)
*/
@JvmName("copklybhtyrgcxfq")
public suspend fun contentBasedDeduplication(`value`: Output) {
this.contentBasedDeduplication = value
}
/**
* @param value Specifies whether message deduplication occurs at the message group or queue level. Valid values are `messageGroup` and `queue` (default).
*/
@JvmName("smfshkyjbqeqehfb")
public suspend fun deduplicationScope(`value`: Output) {
this.deduplicationScope = value
}
/**
* @param value The time in seconds that the delivery of all messages in the queue will be delayed. An integer from 0 to 900 (15 minutes). The default for this attribute is 0 seconds.
*/
@JvmName("omtdclngvhkhpjos")
public suspend fun delaySeconds(`value`: Output) {
this.delaySeconds = value
}
/**
* @param value Boolean designating a FIFO queue. If not set, it defaults to `false` making it standard.
*/
@JvmName("lomkfsskbianwcjp")
public suspend fun fifoQueue(`value`: Output) {
this.fifoQueue = value
}
/**
* @param value Specifies whether the FIFO queue throughput quota applies to the entire queue or per message group. Valid values are `perQueue` (default) and `perMessageGroupId`.
*/
@JvmName("ckpeksbykcxiplpk")
public suspend fun fifoThroughputLimit(`value`: Output) {
this.fifoThroughputLimit = value
}
/**
* @param value The length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again. An integer representing seconds, between 60 seconds (1 minute) and 86,400 seconds (24 hours). The default is 300 (5 minutes).
*/
@JvmName("ulwanchpxdlitfrd")
public suspend fun kmsDataKeyReusePeriodSeconds(`value`: Output) {
this.kmsDataKeyReusePeriodSeconds = value
}
/**
* @param value The ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK. For more information, see [Key Terms](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-sse-key-terms).
*/
@JvmName("sbgksebgtdxocbut")
public suspend fun kmsMasterKeyId(`value`: Output) {
this.kmsMasterKeyId = value
}
/**
* @param value The limit of how many bytes a message can contain before Amazon SQS rejects it. An integer from 1024 bytes (1 KiB) up to 262144 bytes (256 KiB). The default for this attribute is 262144 (256 KiB).
*/
@JvmName("hxmsqjuvsgqcbwsi")
public suspend fun maxMessageSize(`value`: Output) {
this.maxMessageSize = value
}
/**
* @param value The number of seconds Amazon SQS retains a message. Integer representing seconds, from 60 (1 minute) to 1209600 (14 days). The default for this attribute is 345600 (4 days).
*/
@JvmName("gpdjvfeapfmvdmhp")
public suspend fun messageRetentionSeconds(`value`: Output) {
this.messageRetentionSeconds = value
}
/**
* @param value The name of the queue. Queue names must be made up of only uppercase and lowercase ASCII letters, numbers, underscores, and hyphens, and must be between 1 and 80 characters long. For a FIFO (first-in-first-out) queue, the name must end with the `.fifo` suffix. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`
*/
@JvmName("hapkmbqgilentcaa")
public suspend fun name(`value`: Output) {
this.name = value
}
/**
* @param value Creates a unique name beginning with the specified prefix. Conflicts with `name`
*/
@JvmName("wiqtaoxaiblbvqev")
public suspend fun namePrefix(`value`: Output) {
this.namePrefix = value
}
/**
* @param value The JSON policy for the SQS queue.
*/
@JvmName("jypjvvllmeaqlmnb")
public suspend fun policy(`value`: Output) {
this.policy = value
}
/**
* @param value The time for which a ReceiveMessage call will wait for a message to arrive (long polling) before returning. An integer from 0 to 20 (seconds). The default for this attribute is 0, meaning that the call will return immediately.
*/
@JvmName("rrqkqfaearvkumwh")
public suspend fun receiveWaitTimeSeconds(`value`: Output) {
this.receiveWaitTimeSeconds = value
}
/**
* @param value The JSON policy to set up the Dead Letter Queue redrive permission, see [AWS docs](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSDeadLetterQueue.html).
*/
@JvmName("bejdxtmhlugkcrpt")
public suspend fun redriveAllowPolicy(`value`: Output) {
this.redriveAllowPolicy = value
}
/**
* @param value The JSON policy to set up the Dead Letter Queue, see [AWS docs](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSDeadLetterQueue.html). **Note:** when specifying `maxReceiveCount`, you must specify it as an integer (`5`), and not a string (`"5"`).
*/
@JvmName("gbqcpwmxdaydlmbh")
public suspend fun redrivePolicy(`value`: Output) {
this.redrivePolicy = value
}
/**
* @param value Boolean to enable server-side encryption (SSE) of message content with SQS-owned encryption keys. See [Encryption at rest](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html). The provider will only perform drift detection of its value when present in a configuration.
*/
@JvmName("cxwmkixovejrwftt")
public suspend fun sqsManagedSseEnabled(`value`: Output) {
this.sqsManagedSseEnabled = value
}
/**
* @param value A map of tags to assign to the queue. If configured with a provider `default_tags` configuration block) present, tags with matching keys will overwrite those defined at the provider-level.
*/
@JvmName("lxpnsoejkpyrxbnw")
public suspend fun tags(`value`: Output>) {
this.tags = value
}
/**
* @param value The visibility timeout for the queue. An integer from 0 to 43200 (12 hours). The default for this attribute is 30. For more information about visibility timeout, see [AWS docs](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AboutVT.html).
*/
@JvmName("armywdgrpigkhxdo")
public suspend fun visibilityTimeoutSeconds(`value`: Output) {
this.visibilityTimeoutSeconds = value
}
/**
* @param value Enables content-based deduplication for FIFO queues. For more information, see the [related documentation](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing)
*/
@JvmName("yqhmdfgvasdbkryo")
public suspend fun contentBasedDeduplication(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.contentBasedDeduplication = mapped
}
/**
* @param value Specifies whether message deduplication occurs at the message group or queue level. Valid values are `messageGroup` and `queue` (default).
*/
@JvmName("okmjdjpjagvuqspl")
public suspend fun deduplicationScope(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.deduplicationScope = mapped
}
/**
* @param value The time in seconds that the delivery of all messages in the queue will be delayed. An integer from 0 to 900 (15 minutes). The default for this attribute is 0 seconds.
*/
@JvmName("gmntgwnwjcnmebqp")
public suspend fun delaySeconds(`value`: Int?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.delaySeconds = mapped
}
/**
* @param value Boolean designating a FIFO queue. If not set, it defaults to `false` making it standard.
*/
@JvmName("ljvqxqodsrvjukpg")
public suspend fun fifoQueue(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.fifoQueue = mapped
}
/**
* @param value Specifies whether the FIFO queue throughput quota applies to the entire queue or per message group. Valid values are `perQueue` (default) and `perMessageGroupId`.
*/
@JvmName("vhlsjwjfxidetimb")
public suspend fun fifoThroughputLimit(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.fifoThroughputLimit = mapped
}
/**
* @param value The length of time, in seconds, for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again. An integer representing seconds, between 60 seconds (1 minute) and 86,400 seconds (24 hours). The default is 300 (5 minutes).
*/
@JvmName("kmrleahcqfiqdpgy")
public suspend fun kmsDataKeyReusePeriodSeconds(`value`: Int?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.kmsDataKeyReusePeriodSeconds = mapped
}
/**
* @param value The ID of an AWS-managed customer master key (CMK) for Amazon SQS or a custom CMK. For more information, see [Key Terms](http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-sse-key-terms).
*/
@JvmName("cwicnajbthxcddpa")
public suspend fun kmsMasterKeyId(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.kmsMasterKeyId = mapped
}
/**
* @param value The limit of how many bytes a message can contain before Amazon SQS rejects it. An integer from 1024 bytes (1 KiB) up to 262144 bytes (256 KiB). The default for this attribute is 262144 (256 KiB).
*/
@JvmName("jfdbfjptshpubhua")
public suspend fun maxMessageSize(`value`: Int?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.maxMessageSize = mapped
}
/**
* @param value The number of seconds Amazon SQS retains a message. Integer representing seconds, from 60 (1 minute) to 1209600 (14 days). The default for this attribute is 345600 (4 days).
*/
@JvmName("cvbxxigtpntuasww")
public suspend fun messageRetentionSeconds(`value`: Int?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.messageRetentionSeconds = mapped
}
/**
* @param value The name of the queue. Queue names must be made up of only uppercase and lowercase ASCII letters, numbers, underscores, and hyphens, and must be between 1 and 80 characters long. For a FIFO (first-in-first-out) queue, the name must end with the `.fifo` suffix. If omitted, this provider will assign a random, unique name. Conflicts with `name_prefix`
*/
@JvmName("vqtfndyxvrxvvmjo")
public suspend fun name(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.name = mapped
}
/**
* @param value Creates a unique name beginning with the specified prefix. Conflicts with `name`
*/
@JvmName("aoqtlxheedtckejf")
public suspend fun namePrefix(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.namePrefix = mapped
}
/**
* @param value The JSON policy for the SQS queue.
*/
@JvmName("osabtdhxniyptlfp")
public suspend fun policy(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.policy = mapped
}
/**
* @param value The time for which a ReceiveMessage call will wait for a message to arrive (long polling) before returning. An integer from 0 to 20 (seconds). The default for this attribute is 0, meaning that the call will return immediately.
*/
@JvmName("kxmibyrkajsbcfyq")
public suspend fun receiveWaitTimeSeconds(`value`: Int?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.receiveWaitTimeSeconds = mapped
}
/**
* @param value The JSON policy to set up the Dead Letter Queue redrive permission, see [AWS docs](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSDeadLetterQueue.html).
*/
@JvmName("nuwefanothqgmpup")
public suspend fun redriveAllowPolicy(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.redriveAllowPolicy = mapped
}
/**
* @param value The JSON policy to set up the Dead Letter Queue, see [AWS docs](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/SQSDeadLetterQueue.html). **Note:** when specifying `maxReceiveCount`, you must specify it as an integer (`5`), and not a string (`"5"`).
*/
@JvmName("etoligvfeahrnvxt")
public suspend fun redrivePolicy(`value`: String?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.redrivePolicy = mapped
}
/**
* @param value Boolean to enable server-side encryption (SSE) of message content with SQS-owned encryption keys. See [Encryption at rest](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html). The provider will only perform drift detection of its value when present in a configuration.
*/
@JvmName("nlwfgsvixfxiallv")
public suspend fun sqsManagedSseEnabled(`value`: Boolean?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.sqsManagedSseEnabled = mapped
}
/**
* @param value A map of tags to assign to the queue. If configured with a provider `default_tags` configuration block) present, tags with matching keys will overwrite those defined at the provider-level.
*/
@JvmName("fnvnnsnldejfsmnu")
public suspend fun tags(`value`: Map?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.tags = mapped
}
/**
* @param values A map of tags to assign to the queue. If configured with a provider `default_tags` configuration block) present, tags with matching keys will overwrite those defined at the provider-level.
*/
@JvmName("opuxcitykmriyoce")
public fun tags(vararg values: Pair) {
val toBeMapped = values.toMap()
val mapped = toBeMapped.let({ args0 -> of(args0) })
this.tags = mapped
}
/**
* @param value The visibility timeout for the queue. An integer from 0 to 43200 (12 hours). The default for this attribute is 30. For more information about visibility timeout, see [AWS docs](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/AboutVT.html).
*/
@JvmName("qebqepkkqevmmqqc")
public suspend fun visibilityTimeoutSeconds(`value`: Int?) {
val toBeMapped = value
val mapped = toBeMapped?.let({ args0 -> of(args0) })
this.visibilityTimeoutSeconds = mapped
}
internal fun build(): QueueArgs = QueueArgs(
contentBasedDeduplication = contentBasedDeduplication,
deduplicationScope = deduplicationScope,
delaySeconds = delaySeconds,
fifoQueue = fifoQueue,
fifoThroughputLimit = fifoThroughputLimit,
kmsDataKeyReusePeriodSeconds = kmsDataKeyReusePeriodSeconds,
kmsMasterKeyId = kmsMasterKeyId,
maxMessageSize = maxMessageSize,
messageRetentionSeconds = messageRetentionSeconds,
name = name,
namePrefix = namePrefix,
policy = policy,
receiveWaitTimeSeconds = receiveWaitTimeSeconds,
redriveAllowPolicy = redriveAllowPolicy,
redrivePolicy = redrivePolicy,
sqsManagedSseEnabled = sqsManagedSseEnabled,
tags = tags,
visibilityTimeoutSeconds = visibilityTimeoutSeconds,
)
}