github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/sqs/queue.go (about)

     1  // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package sqs
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    11  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    12  )
    13  
    14  // ## Example Usage
    15  //
    16  // <!--Start PulumiCodeChooser -->
    17  // ```go
    18  // package main
    19  //
    20  // import (
    21  //
    22  //	"encoding/json"
    23  //
    24  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sqs"
    25  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    26  //
    27  // )
    28  //
    29  //	func main() {
    30  //		pulumi.Run(func(ctx *pulumi.Context) error {
    31  //			tmpJSON0, err := json.Marshal(map[string]interface{}{
    32  //				"deadLetterTargetArn": queueDeadletter.Arn,
    33  //				"maxReceiveCount":     4,
    34  //			})
    35  //			if err != nil {
    36  //				return err
    37  //			}
    38  //			json0 := string(tmpJSON0)
    39  //			_, err = sqs.NewQueue(ctx, "queue", &sqs.QueueArgs{
    40  //				Name:                    pulumi.String("example-queue"),
    41  //				DelaySeconds:            pulumi.Int(90),
    42  //				MaxMessageSize:          pulumi.Int(2048),
    43  //				MessageRetentionSeconds: pulumi.Int(86400),
    44  //				ReceiveWaitTimeSeconds:  pulumi.Int(10),
    45  //				RedrivePolicy:           pulumi.String(json0),
    46  //				Tags: pulumi.StringMap{
    47  //					"Environment": pulumi.String("production"),
    48  //				},
    49  //			})
    50  //			if err != nil {
    51  //				return err
    52  //			}
    53  //			return nil
    54  //		})
    55  //	}
    56  //
    57  // ```
    58  // <!--End PulumiCodeChooser -->
    59  //
    60  // ## FIFO queue
    61  //
    62  // <!--Start PulumiCodeChooser -->
    63  // ```go
    64  // package main
    65  //
    66  // import (
    67  //
    68  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sqs"
    69  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    70  //
    71  // )
    72  //
    73  //	func main() {
    74  //		pulumi.Run(func(ctx *pulumi.Context) error {
    75  //			_, err := sqs.NewQueue(ctx, "queue", &sqs.QueueArgs{
    76  //				Name:                      pulumi.String("example-queue.fifo"),
    77  //				FifoQueue:                 pulumi.Bool(true),
    78  //				ContentBasedDeduplication: pulumi.Bool(true),
    79  //			})
    80  //			if err != nil {
    81  //				return err
    82  //			}
    83  //			return nil
    84  //		})
    85  //	}
    86  //
    87  // ```
    88  // <!--End PulumiCodeChooser -->
    89  //
    90  // ## High-throughput FIFO queue
    91  //
    92  // <!--Start PulumiCodeChooser -->
    93  // ```go
    94  // package main
    95  //
    96  // import (
    97  //
    98  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sqs"
    99  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   100  //
   101  // )
   102  //
   103  //	func main() {
   104  //		pulumi.Run(func(ctx *pulumi.Context) error {
   105  //			_, err := sqs.NewQueue(ctx, "queue", &sqs.QueueArgs{
   106  //				Name:                pulumi.String("pulumi-example-queue.fifo"),
   107  //				FifoQueue:           pulumi.Bool(true),
   108  //				DeduplicationScope:  pulumi.String("messageGroup"),
   109  //				FifoThroughputLimit: pulumi.String("perMessageGroupId"),
   110  //			})
   111  //			if err != nil {
   112  //				return err
   113  //			}
   114  //			return nil
   115  //		})
   116  //	}
   117  //
   118  // ```
   119  // <!--End PulumiCodeChooser -->
   120  //
   121  // ## Dead-letter queue
   122  //
   123  // <!--Start PulumiCodeChooser -->
   124  // ```go
   125  // package main
   126  //
   127  // import (
   128  //
   129  //	"encoding/json"
   130  //
   131  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sqs"
   132  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   133  //
   134  // )
   135  //
   136  //	func main() {
   137  //		pulumi.Run(func(ctx *pulumi.Context) error {
   138  //			tmpJSON0, err := json.Marshal(map[string]interface{}{
   139  //				"deadLetterTargetArn": queueDeadletter.Arn,
   140  //				"maxReceiveCount":     4,
   141  //			})
   142  //			if err != nil {
   143  //				return err
   144  //			}
   145  //			json0 := string(tmpJSON0)
   146  //			_, err = sqs.NewQueue(ctx, "queue", &sqs.QueueArgs{
   147  //				Name:          pulumi.String("pulumi-example-queue"),
   148  //				RedrivePolicy: pulumi.String(json0),
   149  //			})
   150  //			if err != nil {
   151  //				return err
   152  //			}
   153  //			exampleQueueDeadletter, err := sqs.NewQueue(ctx, "example_queue_deadletter", &sqs.QueueArgs{
   154  //				Name: pulumi.String("pulumi-example-deadletter-queue"),
   155  //			})
   156  //			if err != nil {
   157  //				return err
   158  //			}
   159  //			tmpJSON1, err := json.Marshal(map[string]interface{}{
   160  //				"redrivePermission": "byQueue",
   161  //				"sourceQueueArns": []interface{}{
   162  //					exampleQueue.Arn,
   163  //				},
   164  //			})
   165  //			if err != nil {
   166  //				return err
   167  //			}
   168  //			json1 := string(tmpJSON1)
   169  //			_, err = sqs.NewRedriveAllowPolicy(ctx, "example_queue_redrive_allow_policy", &sqs.RedriveAllowPolicyArgs{
   170  //				QueueUrl:           exampleQueueDeadletter.ID(),
   171  //				RedriveAllowPolicy: pulumi.String(json1),
   172  //			})
   173  //			if err != nil {
   174  //				return err
   175  //			}
   176  //			return nil
   177  //		})
   178  //	}
   179  //
   180  // ```
   181  // <!--End PulumiCodeChooser -->
   182  //
   183  // ## Server-side encryption (SSE)
   184  //
   185  // Using [SSE-SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-sqs-sse-queue.html):
   186  //
   187  // <!--Start PulumiCodeChooser -->
   188  // ```go
   189  // package main
   190  //
   191  // import (
   192  //
   193  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sqs"
   194  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   195  //
   196  // )
   197  //
   198  //	func main() {
   199  //		pulumi.Run(func(ctx *pulumi.Context) error {
   200  //			_, err := sqs.NewQueue(ctx, "queue", &sqs.QueueArgs{
   201  //				Name:                 pulumi.String("pulumi-example-queue"),
   202  //				SqsManagedSseEnabled: pulumi.Bool(true),
   203  //			})
   204  //			if err != nil {
   205  //				return err
   206  //			}
   207  //			return nil
   208  //		})
   209  //	}
   210  //
   211  // ```
   212  // <!--End PulumiCodeChooser -->
   213  //
   214  // Using [SSE-KMS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-sse-existing-queue.html):
   215  //
   216  // <!--Start PulumiCodeChooser -->
   217  // ```go
   218  // package main
   219  //
   220  // import (
   221  //
   222  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/sqs"
   223  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   224  //
   225  // )
   226  //
   227  //	func main() {
   228  //		pulumi.Run(func(ctx *pulumi.Context) error {
   229  //			_, err := sqs.NewQueue(ctx, "queue", &sqs.QueueArgs{
   230  //				Name:                         pulumi.String("example-queue"),
   231  //				KmsMasterKeyId:               pulumi.String("alias/aws/sqs"),
   232  //				KmsDataKeyReusePeriodSeconds: pulumi.Int(300),
   233  //			})
   234  //			if err != nil {
   235  //				return err
   236  //			}
   237  //			return nil
   238  //		})
   239  //	}
   240  //
   241  // ```
   242  // <!--End PulumiCodeChooser -->
   243  //
   244  // ## Import
   245  //
   246  // Using `pulumi import`, import SQS Queues using the queue `url`. For example:
   247  //
   248  // ```sh
   249  // $ pulumi import aws:sqs/queue:Queue public_queue https://queue.amazonaws.com/80398EXAMPLE/MyQueue
   250  // ```
   251  type Queue struct {
   252  	pulumi.CustomResourceState
   253  
   254  	// The ARN of the SQS queue
   255  	Arn pulumi.StringOutput `pulumi:"arn"`
   256  	// 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)
   257  	ContentBasedDeduplication pulumi.BoolPtrOutput `pulumi:"contentBasedDeduplication"`
   258  	// Specifies whether message deduplication occurs at the message group or queue level. Valid values are `messageGroup` and `queue` (default).
   259  	DeduplicationScope pulumi.StringOutput `pulumi:"deduplicationScope"`
   260  	// 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.
   261  	DelaySeconds pulumi.IntPtrOutput `pulumi:"delaySeconds"`
   262  	// Boolean designating a FIFO queue. If not set, it defaults to `false` making it standard.
   263  	FifoQueue pulumi.BoolPtrOutput `pulumi:"fifoQueue"`
   264  	// Specifies whether the FIFO queue throughput quota applies to the entire queue or per message group. Valid values are `perQueue` (default) and `perMessageGroupId`.
   265  	FifoThroughputLimit pulumi.StringOutput `pulumi:"fifoThroughputLimit"`
   266  	// 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).
   267  	KmsDataKeyReusePeriodSeconds pulumi.IntOutput `pulumi:"kmsDataKeyReusePeriodSeconds"`
   268  	// 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).
   269  	KmsMasterKeyId pulumi.StringPtrOutput `pulumi:"kmsMasterKeyId"`
   270  	// 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).
   271  	MaxMessageSize pulumi.IntPtrOutput `pulumi:"maxMessageSize"`
   272  	// 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).
   273  	MessageRetentionSeconds pulumi.IntPtrOutput `pulumi:"messageRetentionSeconds"`
   274  	// 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 `namePrefix`
   275  	Name pulumi.StringOutput `pulumi:"name"`
   276  	// Creates a unique name beginning with the specified prefix. Conflicts with `name`
   277  	NamePrefix pulumi.StringOutput `pulumi:"namePrefix"`
   278  	// The JSON policy for the SQS queue.
   279  	Policy pulumi.StringOutput `pulumi:"policy"`
   280  	// 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.
   281  	ReceiveWaitTimeSeconds pulumi.IntPtrOutput `pulumi:"receiveWaitTimeSeconds"`
   282  	// 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).
   283  	RedriveAllowPolicy pulumi.StringOutput `pulumi:"redriveAllowPolicy"`
   284  	// 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"`).
   285  	RedrivePolicy pulumi.StringOutput `pulumi:"redrivePolicy"`
   286  	// 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.
   287  	SqsManagedSseEnabled pulumi.BoolOutput `pulumi:"sqsManagedSseEnabled"`
   288  	// A map of tags to assign to the queue. If configured with a provider `defaultTags` configuration block) present, tags with matching keys will overwrite those defined at the provider-level.
   289  	Tags pulumi.StringMapOutput `pulumi:"tags"`
   290  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   291  	//
   292  	// Deprecated: Please use `tags` instead.
   293  	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
   294  	// Same as `id`: The URL for the created Amazon SQS queue.
   295  	Url pulumi.StringOutput `pulumi:"url"`
   296  	// 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).
   297  	VisibilityTimeoutSeconds pulumi.IntPtrOutput `pulumi:"visibilityTimeoutSeconds"`
   298  }
   299  
   300  // NewQueue registers a new resource with the given unique name, arguments, and options.
   301  func NewQueue(ctx *pulumi.Context,
   302  	name string, args *QueueArgs, opts ...pulumi.ResourceOption) (*Queue, error) {
   303  	if args == nil {
   304  		args = &QueueArgs{}
   305  	}
   306  
   307  	opts = internal.PkgResourceDefaultOpts(opts)
   308  	var resource Queue
   309  	err := ctx.RegisterResource("aws:sqs/queue:Queue", name, args, &resource, opts...)
   310  	if err != nil {
   311  		return nil, err
   312  	}
   313  	return &resource, nil
   314  }
   315  
   316  // GetQueue gets an existing Queue resource's state with the given name, ID, and optional
   317  // state properties that are used to uniquely qualify the lookup (nil if not required).
   318  func GetQueue(ctx *pulumi.Context,
   319  	name string, id pulumi.IDInput, state *QueueState, opts ...pulumi.ResourceOption) (*Queue, error) {
   320  	var resource Queue
   321  	err := ctx.ReadResource("aws:sqs/queue:Queue", name, id, state, &resource, opts...)
   322  	if err != nil {
   323  		return nil, err
   324  	}
   325  	return &resource, nil
   326  }
   327  
   328  // Input properties used for looking up and filtering Queue resources.
   329  type queueState struct {
   330  	// The ARN of the SQS queue
   331  	Arn *string `pulumi:"arn"`
   332  	// 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)
   333  	ContentBasedDeduplication *bool `pulumi:"contentBasedDeduplication"`
   334  	// Specifies whether message deduplication occurs at the message group or queue level. Valid values are `messageGroup` and `queue` (default).
   335  	DeduplicationScope *string `pulumi:"deduplicationScope"`
   336  	// 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.
   337  	DelaySeconds *int `pulumi:"delaySeconds"`
   338  	// Boolean designating a FIFO queue. If not set, it defaults to `false` making it standard.
   339  	FifoQueue *bool `pulumi:"fifoQueue"`
   340  	// Specifies whether the FIFO queue throughput quota applies to the entire queue or per message group. Valid values are `perQueue` (default) and `perMessageGroupId`.
   341  	FifoThroughputLimit *string `pulumi:"fifoThroughputLimit"`
   342  	// 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).
   343  	KmsDataKeyReusePeriodSeconds *int `pulumi:"kmsDataKeyReusePeriodSeconds"`
   344  	// 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).
   345  	KmsMasterKeyId *string `pulumi:"kmsMasterKeyId"`
   346  	// 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).
   347  	MaxMessageSize *int `pulumi:"maxMessageSize"`
   348  	// 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).
   349  	MessageRetentionSeconds *int `pulumi:"messageRetentionSeconds"`
   350  	// 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 `namePrefix`
   351  	Name *string `pulumi:"name"`
   352  	// Creates a unique name beginning with the specified prefix. Conflicts with `name`
   353  	NamePrefix *string `pulumi:"namePrefix"`
   354  	// The JSON policy for the SQS queue.
   355  	Policy *string `pulumi:"policy"`
   356  	// 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.
   357  	ReceiveWaitTimeSeconds *int `pulumi:"receiveWaitTimeSeconds"`
   358  	// 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).
   359  	RedriveAllowPolicy *string `pulumi:"redriveAllowPolicy"`
   360  	// 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"`).
   361  	RedrivePolicy *string `pulumi:"redrivePolicy"`
   362  	// 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.
   363  	SqsManagedSseEnabled *bool `pulumi:"sqsManagedSseEnabled"`
   364  	// A map of tags to assign to the queue. If configured with a provider `defaultTags` configuration block) present, tags with matching keys will overwrite those defined at the provider-level.
   365  	Tags map[string]string `pulumi:"tags"`
   366  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   367  	//
   368  	// Deprecated: Please use `tags` instead.
   369  	TagsAll map[string]string `pulumi:"tagsAll"`
   370  	// Same as `id`: The URL for the created Amazon SQS queue.
   371  	Url *string `pulumi:"url"`
   372  	// 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).
   373  	VisibilityTimeoutSeconds *int `pulumi:"visibilityTimeoutSeconds"`
   374  }
   375  
   376  type QueueState struct {
   377  	// The ARN of the SQS queue
   378  	Arn pulumi.StringPtrInput
   379  	// 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)
   380  	ContentBasedDeduplication pulumi.BoolPtrInput
   381  	// Specifies whether message deduplication occurs at the message group or queue level. Valid values are `messageGroup` and `queue` (default).
   382  	DeduplicationScope pulumi.StringPtrInput
   383  	// 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.
   384  	DelaySeconds pulumi.IntPtrInput
   385  	// Boolean designating a FIFO queue. If not set, it defaults to `false` making it standard.
   386  	FifoQueue pulumi.BoolPtrInput
   387  	// Specifies whether the FIFO queue throughput quota applies to the entire queue or per message group. Valid values are `perQueue` (default) and `perMessageGroupId`.
   388  	FifoThroughputLimit pulumi.StringPtrInput
   389  	// 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).
   390  	KmsDataKeyReusePeriodSeconds pulumi.IntPtrInput
   391  	// 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).
   392  	KmsMasterKeyId pulumi.StringPtrInput
   393  	// 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).
   394  	MaxMessageSize pulumi.IntPtrInput
   395  	// 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).
   396  	MessageRetentionSeconds pulumi.IntPtrInput
   397  	// 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 `namePrefix`
   398  	Name pulumi.StringPtrInput
   399  	// Creates a unique name beginning with the specified prefix. Conflicts with `name`
   400  	NamePrefix pulumi.StringPtrInput
   401  	// The JSON policy for the SQS queue.
   402  	Policy pulumi.StringPtrInput
   403  	// 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.
   404  	ReceiveWaitTimeSeconds pulumi.IntPtrInput
   405  	// 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).
   406  	RedriveAllowPolicy pulumi.StringPtrInput
   407  	// 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"`).
   408  	RedrivePolicy pulumi.StringPtrInput
   409  	// 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.
   410  	SqsManagedSseEnabled pulumi.BoolPtrInput
   411  	// A map of tags to assign to the queue. If configured with a provider `defaultTags` configuration block) present, tags with matching keys will overwrite those defined at the provider-level.
   412  	Tags pulumi.StringMapInput
   413  	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   414  	//
   415  	// Deprecated: Please use `tags` instead.
   416  	TagsAll pulumi.StringMapInput
   417  	// Same as `id`: The URL for the created Amazon SQS queue.
   418  	Url pulumi.StringPtrInput
   419  	// 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).
   420  	VisibilityTimeoutSeconds pulumi.IntPtrInput
   421  }
   422  
   423  func (QueueState) ElementType() reflect.Type {
   424  	return reflect.TypeOf((*queueState)(nil)).Elem()
   425  }
   426  
   427  type queueArgs struct {
   428  	// 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)
   429  	ContentBasedDeduplication *bool `pulumi:"contentBasedDeduplication"`
   430  	// Specifies whether message deduplication occurs at the message group or queue level. Valid values are `messageGroup` and `queue` (default).
   431  	DeduplicationScope *string `pulumi:"deduplicationScope"`
   432  	// 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.
   433  	DelaySeconds *int `pulumi:"delaySeconds"`
   434  	// Boolean designating a FIFO queue. If not set, it defaults to `false` making it standard.
   435  	FifoQueue *bool `pulumi:"fifoQueue"`
   436  	// Specifies whether the FIFO queue throughput quota applies to the entire queue or per message group. Valid values are `perQueue` (default) and `perMessageGroupId`.
   437  	FifoThroughputLimit *string `pulumi:"fifoThroughputLimit"`
   438  	// 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).
   439  	KmsDataKeyReusePeriodSeconds *int `pulumi:"kmsDataKeyReusePeriodSeconds"`
   440  	// 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).
   441  	KmsMasterKeyId *string `pulumi:"kmsMasterKeyId"`
   442  	// 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).
   443  	MaxMessageSize *int `pulumi:"maxMessageSize"`
   444  	// 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).
   445  	MessageRetentionSeconds *int `pulumi:"messageRetentionSeconds"`
   446  	// 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 `namePrefix`
   447  	Name *string `pulumi:"name"`
   448  	// Creates a unique name beginning with the specified prefix. Conflicts with `name`
   449  	NamePrefix *string `pulumi:"namePrefix"`
   450  	// The JSON policy for the SQS queue.
   451  	Policy *string `pulumi:"policy"`
   452  	// 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.
   453  	ReceiveWaitTimeSeconds *int `pulumi:"receiveWaitTimeSeconds"`
   454  	// 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).
   455  	RedriveAllowPolicy *string `pulumi:"redriveAllowPolicy"`
   456  	// 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"`).
   457  	RedrivePolicy *string `pulumi:"redrivePolicy"`
   458  	// 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.
   459  	SqsManagedSseEnabled *bool `pulumi:"sqsManagedSseEnabled"`
   460  	// A map of tags to assign to the queue. If configured with a provider `defaultTags` configuration block) present, tags with matching keys will overwrite those defined at the provider-level.
   461  	Tags map[string]string `pulumi:"tags"`
   462  	// 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).
   463  	VisibilityTimeoutSeconds *int `pulumi:"visibilityTimeoutSeconds"`
   464  }
   465  
   466  // The set of arguments for constructing a Queue resource.
   467  type QueueArgs struct {
   468  	// 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)
   469  	ContentBasedDeduplication pulumi.BoolPtrInput
   470  	// Specifies whether message deduplication occurs at the message group or queue level. Valid values are `messageGroup` and `queue` (default).
   471  	DeduplicationScope pulumi.StringPtrInput
   472  	// 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.
   473  	DelaySeconds pulumi.IntPtrInput
   474  	// Boolean designating a FIFO queue. If not set, it defaults to `false` making it standard.
   475  	FifoQueue pulumi.BoolPtrInput
   476  	// Specifies whether the FIFO queue throughput quota applies to the entire queue or per message group. Valid values are `perQueue` (default) and `perMessageGroupId`.
   477  	FifoThroughputLimit pulumi.StringPtrInput
   478  	// 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).
   479  	KmsDataKeyReusePeriodSeconds pulumi.IntPtrInput
   480  	// 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).
   481  	KmsMasterKeyId pulumi.StringPtrInput
   482  	// 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).
   483  	MaxMessageSize pulumi.IntPtrInput
   484  	// 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).
   485  	MessageRetentionSeconds pulumi.IntPtrInput
   486  	// 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 `namePrefix`
   487  	Name pulumi.StringPtrInput
   488  	// Creates a unique name beginning with the specified prefix. Conflicts with `name`
   489  	NamePrefix pulumi.StringPtrInput
   490  	// The JSON policy for the SQS queue.
   491  	Policy pulumi.StringPtrInput
   492  	// 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.
   493  	ReceiveWaitTimeSeconds pulumi.IntPtrInput
   494  	// 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).
   495  	RedriveAllowPolicy pulumi.StringPtrInput
   496  	// 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"`).
   497  	RedrivePolicy pulumi.StringPtrInput
   498  	// 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.
   499  	SqsManagedSseEnabled pulumi.BoolPtrInput
   500  	// A map of tags to assign to the queue. If configured with a provider `defaultTags` configuration block) present, tags with matching keys will overwrite those defined at the provider-level.
   501  	Tags pulumi.StringMapInput
   502  	// 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).
   503  	VisibilityTimeoutSeconds pulumi.IntPtrInput
   504  }
   505  
   506  func (QueueArgs) ElementType() reflect.Type {
   507  	return reflect.TypeOf((*queueArgs)(nil)).Elem()
   508  }
   509  
   510  type QueueInput interface {
   511  	pulumi.Input
   512  
   513  	ToQueueOutput() QueueOutput
   514  	ToQueueOutputWithContext(ctx context.Context) QueueOutput
   515  }
   516  
   517  func (*Queue) ElementType() reflect.Type {
   518  	return reflect.TypeOf((**Queue)(nil)).Elem()
   519  }
   520  
   521  func (i *Queue) ToQueueOutput() QueueOutput {
   522  	return i.ToQueueOutputWithContext(context.Background())
   523  }
   524  
   525  func (i *Queue) ToQueueOutputWithContext(ctx context.Context) QueueOutput {
   526  	return pulumi.ToOutputWithContext(ctx, i).(QueueOutput)
   527  }
   528  
   529  // QueueArrayInput is an input type that accepts QueueArray and QueueArrayOutput values.
   530  // You can construct a concrete instance of `QueueArrayInput` via:
   531  //
   532  //	QueueArray{ QueueArgs{...} }
   533  type QueueArrayInput interface {
   534  	pulumi.Input
   535  
   536  	ToQueueArrayOutput() QueueArrayOutput
   537  	ToQueueArrayOutputWithContext(context.Context) QueueArrayOutput
   538  }
   539  
   540  type QueueArray []QueueInput
   541  
   542  func (QueueArray) ElementType() reflect.Type {
   543  	return reflect.TypeOf((*[]*Queue)(nil)).Elem()
   544  }
   545  
   546  func (i QueueArray) ToQueueArrayOutput() QueueArrayOutput {
   547  	return i.ToQueueArrayOutputWithContext(context.Background())
   548  }
   549  
   550  func (i QueueArray) ToQueueArrayOutputWithContext(ctx context.Context) QueueArrayOutput {
   551  	return pulumi.ToOutputWithContext(ctx, i).(QueueArrayOutput)
   552  }
   553  
   554  // QueueMapInput is an input type that accepts QueueMap and QueueMapOutput values.
   555  // You can construct a concrete instance of `QueueMapInput` via:
   556  //
   557  //	QueueMap{ "key": QueueArgs{...} }
   558  type QueueMapInput interface {
   559  	pulumi.Input
   560  
   561  	ToQueueMapOutput() QueueMapOutput
   562  	ToQueueMapOutputWithContext(context.Context) QueueMapOutput
   563  }
   564  
   565  type QueueMap map[string]QueueInput
   566  
   567  func (QueueMap) ElementType() reflect.Type {
   568  	return reflect.TypeOf((*map[string]*Queue)(nil)).Elem()
   569  }
   570  
   571  func (i QueueMap) ToQueueMapOutput() QueueMapOutput {
   572  	return i.ToQueueMapOutputWithContext(context.Background())
   573  }
   574  
   575  func (i QueueMap) ToQueueMapOutputWithContext(ctx context.Context) QueueMapOutput {
   576  	return pulumi.ToOutputWithContext(ctx, i).(QueueMapOutput)
   577  }
   578  
   579  type QueueOutput struct{ *pulumi.OutputState }
   580  
   581  func (QueueOutput) ElementType() reflect.Type {
   582  	return reflect.TypeOf((**Queue)(nil)).Elem()
   583  }
   584  
   585  func (o QueueOutput) ToQueueOutput() QueueOutput {
   586  	return o
   587  }
   588  
   589  func (o QueueOutput) ToQueueOutputWithContext(ctx context.Context) QueueOutput {
   590  	return o
   591  }
   592  
   593  // The ARN of the SQS queue
   594  func (o QueueOutput) Arn() pulumi.StringOutput {
   595  	return o.ApplyT(func(v *Queue) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   596  }
   597  
   598  // 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)
   599  func (o QueueOutput) ContentBasedDeduplication() pulumi.BoolPtrOutput {
   600  	return o.ApplyT(func(v *Queue) pulumi.BoolPtrOutput { return v.ContentBasedDeduplication }).(pulumi.BoolPtrOutput)
   601  }
   602  
   603  // Specifies whether message deduplication occurs at the message group or queue level. Valid values are `messageGroup` and `queue` (default).
   604  func (o QueueOutput) DeduplicationScope() pulumi.StringOutput {
   605  	return o.ApplyT(func(v *Queue) pulumi.StringOutput { return v.DeduplicationScope }).(pulumi.StringOutput)
   606  }
   607  
   608  // 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.
   609  func (o QueueOutput) DelaySeconds() pulumi.IntPtrOutput {
   610  	return o.ApplyT(func(v *Queue) pulumi.IntPtrOutput { return v.DelaySeconds }).(pulumi.IntPtrOutput)
   611  }
   612  
   613  // Boolean designating a FIFO queue. If not set, it defaults to `false` making it standard.
   614  func (o QueueOutput) FifoQueue() pulumi.BoolPtrOutput {
   615  	return o.ApplyT(func(v *Queue) pulumi.BoolPtrOutput { return v.FifoQueue }).(pulumi.BoolPtrOutput)
   616  }
   617  
   618  // Specifies whether the FIFO queue throughput quota applies to the entire queue or per message group. Valid values are `perQueue` (default) and `perMessageGroupId`.
   619  func (o QueueOutput) FifoThroughputLimit() pulumi.StringOutput {
   620  	return o.ApplyT(func(v *Queue) pulumi.StringOutput { return v.FifoThroughputLimit }).(pulumi.StringOutput)
   621  }
   622  
   623  // 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).
   624  func (o QueueOutput) KmsDataKeyReusePeriodSeconds() pulumi.IntOutput {
   625  	return o.ApplyT(func(v *Queue) pulumi.IntOutput { return v.KmsDataKeyReusePeriodSeconds }).(pulumi.IntOutput)
   626  }
   627  
   628  // 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).
   629  func (o QueueOutput) KmsMasterKeyId() pulumi.StringPtrOutput {
   630  	return o.ApplyT(func(v *Queue) pulumi.StringPtrOutput { return v.KmsMasterKeyId }).(pulumi.StringPtrOutput)
   631  }
   632  
   633  // 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).
   634  func (o QueueOutput) MaxMessageSize() pulumi.IntPtrOutput {
   635  	return o.ApplyT(func(v *Queue) pulumi.IntPtrOutput { return v.MaxMessageSize }).(pulumi.IntPtrOutput)
   636  }
   637  
   638  // 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).
   639  func (o QueueOutput) MessageRetentionSeconds() pulumi.IntPtrOutput {
   640  	return o.ApplyT(func(v *Queue) pulumi.IntPtrOutput { return v.MessageRetentionSeconds }).(pulumi.IntPtrOutput)
   641  }
   642  
   643  // 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 `namePrefix`
   644  func (o QueueOutput) Name() pulumi.StringOutput {
   645  	return o.ApplyT(func(v *Queue) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   646  }
   647  
   648  // Creates a unique name beginning with the specified prefix. Conflicts with `name`
   649  func (o QueueOutput) NamePrefix() pulumi.StringOutput {
   650  	return o.ApplyT(func(v *Queue) pulumi.StringOutput { return v.NamePrefix }).(pulumi.StringOutput)
   651  }
   652  
   653  // The JSON policy for the SQS queue.
   654  func (o QueueOutput) Policy() pulumi.StringOutput {
   655  	return o.ApplyT(func(v *Queue) pulumi.StringOutput { return v.Policy }).(pulumi.StringOutput)
   656  }
   657  
   658  // 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.
   659  func (o QueueOutput) ReceiveWaitTimeSeconds() pulumi.IntPtrOutput {
   660  	return o.ApplyT(func(v *Queue) pulumi.IntPtrOutput { return v.ReceiveWaitTimeSeconds }).(pulumi.IntPtrOutput)
   661  }
   662  
   663  // 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).
   664  func (o QueueOutput) RedriveAllowPolicy() pulumi.StringOutput {
   665  	return o.ApplyT(func(v *Queue) pulumi.StringOutput { return v.RedriveAllowPolicy }).(pulumi.StringOutput)
   666  }
   667  
   668  // 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"`).
   669  func (o QueueOutput) RedrivePolicy() pulumi.StringOutput {
   670  	return o.ApplyT(func(v *Queue) pulumi.StringOutput { return v.RedrivePolicy }).(pulumi.StringOutput)
   671  }
   672  
   673  // 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.
   674  func (o QueueOutput) SqsManagedSseEnabled() pulumi.BoolOutput {
   675  	return o.ApplyT(func(v *Queue) pulumi.BoolOutput { return v.SqsManagedSseEnabled }).(pulumi.BoolOutput)
   676  }
   677  
   678  // A map of tags to assign to the queue. If configured with a provider `defaultTags` configuration block) present, tags with matching keys will overwrite those defined at the provider-level.
   679  func (o QueueOutput) Tags() pulumi.StringMapOutput {
   680  	return o.ApplyT(func(v *Queue) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput)
   681  }
   682  
   683  // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
   684  //
   685  // Deprecated: Please use `tags` instead.
   686  func (o QueueOutput) TagsAll() pulumi.StringMapOutput {
   687  	return o.ApplyT(func(v *Queue) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput)
   688  }
   689  
   690  // Same as `id`: The URL for the created Amazon SQS queue.
   691  func (o QueueOutput) Url() pulumi.StringOutput {
   692  	return o.ApplyT(func(v *Queue) pulumi.StringOutput { return v.Url }).(pulumi.StringOutput)
   693  }
   694  
   695  // 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).
   696  func (o QueueOutput) VisibilityTimeoutSeconds() pulumi.IntPtrOutput {
   697  	return o.ApplyT(func(v *Queue) pulumi.IntPtrOutput { return v.VisibilityTimeoutSeconds }).(pulumi.IntPtrOutput)
   698  }
   699  
   700  type QueueArrayOutput struct{ *pulumi.OutputState }
   701  
   702  func (QueueArrayOutput) ElementType() reflect.Type {
   703  	return reflect.TypeOf((*[]*Queue)(nil)).Elem()
   704  }
   705  
   706  func (o QueueArrayOutput) ToQueueArrayOutput() QueueArrayOutput {
   707  	return o
   708  }
   709  
   710  func (o QueueArrayOutput) ToQueueArrayOutputWithContext(ctx context.Context) QueueArrayOutput {
   711  	return o
   712  }
   713  
   714  func (o QueueArrayOutput) Index(i pulumi.IntInput) QueueOutput {
   715  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Queue {
   716  		return vs[0].([]*Queue)[vs[1].(int)]
   717  	}).(QueueOutput)
   718  }
   719  
   720  type QueueMapOutput struct{ *pulumi.OutputState }
   721  
   722  func (QueueMapOutput) ElementType() reflect.Type {
   723  	return reflect.TypeOf((*map[string]*Queue)(nil)).Elem()
   724  }
   725  
   726  func (o QueueMapOutput) ToQueueMapOutput() QueueMapOutput {
   727  	return o
   728  }
   729  
   730  func (o QueueMapOutput) ToQueueMapOutputWithContext(ctx context.Context) QueueMapOutput {
   731  	return o
   732  }
   733  
   734  func (o QueueMapOutput) MapIndex(k pulumi.StringInput) QueueOutput {
   735  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Queue {
   736  		return vs[0].(map[string]*Queue)[vs[1].(string)]
   737  	}).(QueueOutput)
   738  }
   739  
   740  func init() {
   741  	pulumi.RegisterInputType(reflect.TypeOf((*QueueInput)(nil)).Elem(), &Queue{})
   742  	pulumi.RegisterInputType(reflect.TypeOf((*QueueArrayInput)(nil)).Elem(), QueueArray{})
   743  	pulumi.RegisterInputType(reflect.TypeOf((*QueueMapInput)(nil)).Elem(), QueueMap{})
   744  	pulumi.RegisterOutputType(QueueOutput{})
   745  	pulumi.RegisterOutputType(QueueArrayOutput{})
   746  	pulumi.RegisterOutputType(QueueMapOutput{})
   747  }