UNPKG

@pulumiverse/scaleway

Version:

A Pulumi package for creating and managing Scaleway cloud resources.

299 lines 11.4 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Creates and manages Scaleway Messaging and Queuing SQS queues. * For further information, see * our [main documentation](https://www.scaleway.com/en/docs/messaging/how-to/create-manage-queues/). * * ## Example Usage * * ### Basic * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as scaleway from "@pulumiverse/scaleway"; * * const main = new scaleway.mnq.Sqs("main", {}); * const mainSqsCredentials = new scaleway.mnq.SqsCredentials("main", { * projectId: main.projectId, * name: "sqs-credentials", * permissions: { * canManage: true, * canReceive: false, * canPublish: false, * }, * }); * const mainSqsQueue = new scaleway.mnq.SqsQueue("main", { * projectId: main.projectId, * name: "my-queue", * sqsEndpoint: main.endpoint, * accessKey: mainSqsCredentials.accessKey, * secretKey: mainSqsCredentials.secretKey, * }); * ``` * * ### With Dead Letter Queue * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as scaleway from "@pulumiverse/scaleway"; * * const main = new scaleway.mnq.Sqs("main", {}); * const mainSqsCredentials = new scaleway.mnq.SqsCredentials("main", { * projectId: main.projectId, * name: "sqs-credentials", * permissions: { * canManage: true, * canReceive: false, * canPublish: false, * }, * }); * const deadLetter = new scaleway.mnq.SqsQueue("dead_letter", { * projectId: main.projectId, * name: "dead-letter-queue", * sqsEndpoint: main.endpoint, * accessKey: mainSqsCredentials.accessKey, * secretKey: mainSqsCredentials.secretKey, * }); * const mainSqsQueue = new scaleway.mnq.SqsQueue("main", { * projectId: main.projectId, * name: "my-queue", * sqsEndpoint: main.endpoint, * accessKey: mainSqsCredentials.accessKey, * secretKey: mainSqsCredentials.secretKey, * deadLetterQueue: { * id: deadLetter.id, * maxReceiveCount: 3, * }, * }); * ``` * * ## Dead Letter Queue * * The `deadLetterQueue` block supports the following: * * - `id` - (Required) The ID of the dead letter queue. Can be either in the format `{region}/{project-id}/{queue-name}` or `arn:scw:sqs:{region}:project-{project-id}:{queue-name}`. * * - `maxReceiveCount` - (Required) The number of times a message is delivered to the source queue before being moved to the dead letter queue. Must be between 1 and 1000. */ export declare class SqsQueue extends pulumi.CustomResource { /** * Get an existing SqsQueue resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param state Any extra arguments used during the lookup. * @param opts Optional settings to control the behavior of the CustomResource. */ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: SqsQueueState, opts?: pulumi.CustomResourceOptions): SqsQueue; /** * Returns true if the given object is an instance of SqsQueue. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is SqsQueue; /** * The access key of the SQS queue. */ readonly accessKey: pulumi.Output<string>; /** * The ARN of the queue */ readonly arn: pulumi.Output<string>; /** * Specifies whether to enable content-based deduplication. Defaults to `false`. */ readonly contentBasedDeduplication: pulumi.Output<boolean>; /** * Configuration for the dead letter queue. See Dead Letter Queue below for details. */ readonly deadLetterQueue: pulumi.Output<outputs.mnq.SqsQueueDeadLetterQueue | undefined>; /** * Whether the queue is a FIFO queue. If true, the queue name must end with .fifo. Defaults to `false`. */ readonly fifoQueue: pulumi.Output<boolean>; /** * The number of seconds the queue retains a message. Must be between 60 and 1_209_600. Defaults to 345_600. */ readonly messageMaxAge: pulumi.Output<number | undefined>; /** * The maximum size of a message. Should be in bytes. Must be between 1024 and 262_144. Defaults to 262_144. */ readonly messageMaxSize: pulumi.Output<number | undefined>; /** * The unique name of the SQS queue. Either `name` or `namePrefix` is required. Conflicts with `namePrefix`. */ readonly name: pulumi.Output<string>; /** * Creates a unique name beginning with the specified prefix. Conflicts with `name`. */ readonly namePrefix: pulumi.Output<string>; /** * `projectId`) The ID of the Project in which SQS is enabled. */ readonly projectId: pulumi.Output<string>; /** * The number of seconds to wait for a message to arrive in the queue before returning. Must be between 0 and 20. Defaults to 0. */ readonly receiveWaitTimeSeconds: pulumi.Output<number | undefined>; /** * `region`). The region in which SQS is enabled. */ readonly region: pulumi.Output<string | undefined>; /** * The secret key of the SQS queue. */ readonly secretKey: pulumi.Output<string>; /** * The endpoint of the SQS queue. Can contain a {region} placeholder. Defaults to `https://sqs.mnq.{region}.scaleway.com`. */ readonly sqsEndpoint: pulumi.Output<string | undefined>; /** * The URL of the queue. */ readonly url: pulumi.Output<string>; /** * The number of seconds a message is hidden from other consumers. Must be between 0 and 43_200. Defaults to 30. */ readonly visibilityTimeoutSeconds: pulumi.Output<number | undefined>; /** * Create a SqsQueue resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: SqsQueueArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering SqsQueue resources. */ export interface SqsQueueState { /** * The access key of the SQS queue. */ accessKey?: pulumi.Input<string | undefined>; /** * The ARN of the queue */ arn?: pulumi.Input<string | undefined>; /** * Specifies whether to enable content-based deduplication. Defaults to `false`. */ contentBasedDeduplication?: pulumi.Input<boolean | undefined>; /** * Configuration for the dead letter queue. See Dead Letter Queue below for details. */ deadLetterQueue?: pulumi.Input<inputs.mnq.SqsQueueDeadLetterQueue | undefined>; /** * Whether the queue is a FIFO queue. If true, the queue name must end with .fifo. Defaults to `false`. */ fifoQueue?: pulumi.Input<boolean | undefined>; /** * The number of seconds the queue retains a message. Must be between 60 and 1_209_600. Defaults to 345_600. */ messageMaxAge?: pulumi.Input<number | undefined>; /** * The maximum size of a message. Should be in bytes. Must be between 1024 and 262_144. Defaults to 262_144. */ messageMaxSize?: pulumi.Input<number | undefined>; /** * The unique name of the SQS queue. Either `name` or `namePrefix` is required. Conflicts with `namePrefix`. */ name?: pulumi.Input<string | undefined>; /** * Creates a unique name beginning with the specified prefix. Conflicts with `name`. */ namePrefix?: pulumi.Input<string | undefined>; /** * `projectId`) The ID of the Project in which SQS is enabled. */ projectId?: pulumi.Input<string | undefined>; /** * The number of seconds to wait for a message to arrive in the queue before returning. Must be between 0 and 20. Defaults to 0. */ receiveWaitTimeSeconds?: pulumi.Input<number | undefined>; /** * `region`). The region in which SQS is enabled. */ region?: pulumi.Input<string | undefined>; /** * The secret key of the SQS queue. */ secretKey?: pulumi.Input<string | undefined>; /** * The endpoint of the SQS queue. Can contain a {region} placeholder. Defaults to `https://sqs.mnq.{region}.scaleway.com`. */ sqsEndpoint?: pulumi.Input<string | undefined>; /** * The URL of the queue. */ url?: pulumi.Input<string | undefined>; /** * The number of seconds a message is hidden from other consumers. Must be between 0 and 43_200. Defaults to 30. */ visibilityTimeoutSeconds?: pulumi.Input<number | undefined>; } /** * The set of arguments for constructing a SqsQueue resource. */ export interface SqsQueueArgs { /** * The access key of the SQS queue. */ accessKey: pulumi.Input<string>; /** * Specifies whether to enable content-based deduplication. Defaults to `false`. */ contentBasedDeduplication?: pulumi.Input<boolean | undefined>; /** * Configuration for the dead letter queue. See Dead Letter Queue below for details. */ deadLetterQueue?: pulumi.Input<inputs.mnq.SqsQueueDeadLetterQueue | undefined>; /** * Whether the queue is a FIFO queue. If true, the queue name must end with .fifo. Defaults to `false`. */ fifoQueue?: pulumi.Input<boolean | undefined>; /** * The number of seconds the queue retains a message. Must be between 60 and 1_209_600. Defaults to 345_600. */ messageMaxAge?: pulumi.Input<number | undefined>; /** * The maximum size of a message. Should be in bytes. Must be between 1024 and 262_144. Defaults to 262_144. */ messageMaxSize?: pulumi.Input<number | undefined>; /** * The unique name of the SQS queue. Either `name` or `namePrefix` is required. Conflicts with `namePrefix`. */ name?: pulumi.Input<string | undefined>; /** * Creates a unique name beginning with the specified prefix. Conflicts with `name`. */ namePrefix?: pulumi.Input<string | undefined>; /** * `projectId`) The ID of the Project in which SQS is enabled. */ projectId?: pulumi.Input<string | undefined>; /** * The number of seconds to wait for a message to arrive in the queue before returning. Must be between 0 and 20. Defaults to 0. */ receiveWaitTimeSeconds?: pulumi.Input<number | undefined>; /** * `region`). The region in which SQS is enabled. */ region?: pulumi.Input<string | undefined>; /** * The secret key of the SQS queue. */ secretKey: pulumi.Input<string>; /** * The endpoint of the SQS queue. Can contain a {region} placeholder. Defaults to `https://sqs.mnq.{region}.scaleway.com`. */ sqsEndpoint?: pulumi.Input<string | undefined>; /** * The number of seconds a message is hidden from other consumers. Must be between 0 and 43_200. Defaults to 30. */ visibilityTimeoutSeconds?: pulumi.Input<number | undefined>; } //# sourceMappingURL=sqsQueue.d.ts.map