Skip to main content

QueueBuilder

Struct QueueBuilder 

Source
pub struct QueueBuilder<T: QueueBuilderState> { /* private fields */ }
Expand description

Builder for SQS queues.

Supports both standard and FIFO queues. FIFO queues have additional configuration options for deduplication and throughput.

§Example

use rusty_cdk_core::stack::StackBuilder;
use rusty_cdk_core::sqs::QueueBuilder;
use rusty_cdk_core::wrappers::*;
use rusty_cdk_macros::{delay_seconds, message_retention_period, visibility_timeout};

let mut stack_builder = StackBuilder::new();

// Create a standard queue
let standard_queue = QueueBuilder::new("standard-queue")
    .standard_queue()
    .visibility_timeout(visibility_timeout!(60))
    .build(&mut stack_builder);

// Create a FIFO queue
let queue = QueueBuilder::new("my-queue")
    .fifo_queue()
    .content_based_deduplication(true)
    .delay_seconds(delay_seconds!(30))
    .message_retention_period(message_retention_period!(600))
    .build(&mut stack_builder);

Implementations§

Source§

impl QueueBuilder<StartState>

Source

pub fn new(id: &str) -> Self

Creates a new SQS queue builder.

§Arguments
  • id - Unique identifier for the queue
Source

pub fn standard_queue(self) -> QueueBuilder<StandardState>

Source

pub fn fifo_queue(self) -> QueueBuilder<FifoState>

Source§

impl<T: QueueBuilderState> QueueBuilder<T>

Source

pub fn kms_data_key_reuse_period( self, reuse_period_seconds: KeyReusePeriod, ) -> Self

Source

pub fn kms_master_key(self, kms_master_key: &KeyRef) -> Self

Source

pub fn delay_seconds(self, delay: DelaySeconds) -> Self

Source

pub fn maximum_message_size(self, size: MaximumMessageSize) -> Self

Source

pub fn message_retention_period(self, period: MessageRetentionPeriod) -> Self

Source

pub fn receive_message_wait_time_seconds( self, wait_time: ReceiveMessageWaitTime, ) -> Self

Source

pub fn visibility_timeout(self, timeout: VisibilityTimeout) -> Self

Source

pub fn sqs_managed_sse_enabled(self, enabled: bool) -> Self

Source

pub fn dead_letter_queue<D: Into<String>>( self, dead_letter_target_arn: D, max_receive_count: NonZeroNumber, ) -> Self

Source

pub fn redrive_allow_policy(self, policy: Value) -> Self

Source

pub fn queue_name(self, name: StringWithOnlyAlphaNumericsAndUnderscores) -> Self

Source

pub fn queue_policy(self, doc: PolicyDocument) -> Self

Adds an SQS Queue Policy for this queue. The code will automatically set the resources section of the PolicyDocument to the ARN of this queue, so there’s no need to pass that in.

Source§

impl QueueBuilder<StandardState>

Source

pub fn build(self, stack_builder: &mut StackBuilder) -> QueueRef

Source§

impl QueueBuilder<FifoState>

Source

pub fn content_based_deduplication(self, enabled: bool) -> Self

Source

pub fn high_throughput_fifo(self) -> Self

Enables high throughput mode for FIFO queues.

Sets deduplication scope to MessageGroup and throughput limit to PerMessageGroupId.

Source

pub fn deduplication_scope(self, scope: DeduplicationScope) -> Self

Source

pub fn fifo_throughput_limit(self, limit: FifoThroughputLimit) -> Self

Source

pub fn build(self, stack_builder: &mut StackBuilder) -> QueueRef

Builds the FIFO queue and adds it to the stack.

Automatically appends the required “.fifo” suffix to the queue name if not already present.

Auto Trait Implementations§

§

impl<T> Freeze for QueueBuilder<T>

§

impl<T> RefUnwindSafe for QueueBuilder<T>
where T: RefUnwindSafe,

§

impl<T> Send for QueueBuilder<T>
where T: Send,

§

impl<T> Sync for QueueBuilder<T>
where T: Sync,

§

impl<T> Unpin for QueueBuilder<T>
where T: Unpin,

§

impl<T> UnwindSafe for QueueBuilder<T>
where T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V