rusty_cdk_core/sqs/
dto.rs1use serde::{Deserialize, Serialize};
2use serde_json::Value;
3use crate::{dto_methods, ref_struct_with_id_methods};
4use crate::iam::PolicyDocument;
5use crate::shared::Id;
6
7ref_struct_with_id_methods!(QueueRef);
8
9#[derive(Debug, Serialize, Deserialize)]
10pub struct Queue {
11 #[serde(skip)]
12 pub(super) id: Id,
13 #[serde(skip)]
14 pub(super) resource_id: String,
15 #[serde(rename = "Type")]
16 pub(super) r#type: String,
17 #[serde(rename = "Properties")]
18 pub(super) properties: QueueProperties,
19}
20
21dto_methods!(Queue);
22
23ref_struct_with_id_methods!(QueuePolicyRef);
24
25#[derive(Debug, Serialize, Deserialize)]
26pub struct QueueProperties {
27 #[serde(rename = "ContentBasedDeduplication", skip_serializing_if = "Option::is_none")]
28 pub(super) content_based_deduplication: Option<bool>,
29 #[serde(rename = "DeduplicationScope", skip_serializing_if = "Option::is_none")]
30 pub(super) deduplication_scope: Option<String>,
31 #[serde(rename = "DelaySeconds", skip_serializing_if = "Option::is_none")]
32 pub(super) delay_seconds: Option<u32>,
33 #[serde(rename = "FifoThroughputLimit", skip_serializing_if = "Option::is_none")]
34 pub(super) fifo_throughput_limit: Option<String>,
35 #[serde(rename = "FifoQueue", skip_serializing_if = "Option::is_none")]
36 pub(super) fifo_queue: Option<bool>,
37 #[serde(rename = "KmsDataKeyReusePeriodSeconds", skip_serializing_if = "Option::is_none")]
38 pub(super) kms_data_key_reuse_period_seconds: Option<u32>,
39 #[serde(rename = "KmsMasterKeyId", skip_serializing_if = "Option::is_none")]
40 pub(super) kms_master_key_id: Option<Value>,
41 #[serde(rename = "MaximumMessageSize", skip_serializing_if = "Option::is_none")]
42 pub(super) maximum_message_size: Option<u32>,
43 #[serde(rename = "MessageRetentionPeriod", skip_serializing_if = "Option::is_none")]
44 pub(super) message_retention_period: Option<u32>,
45 #[serde(rename = "QueueName", skip_serializing_if = "Option::is_none")]
46 pub(super) queue_name: Option<String>,
47 #[serde(rename = "ReceiveMessageWaitTimeSeconds", skip_serializing_if = "Option::is_none")]
48 pub(super) receive_message_wait_time_seconds: Option<u32>,
49 #[serde(rename = "RedrivePolicy", skip_serializing_if = "Option::is_none")]
50 pub(super) redrive_policy: Option<RedrivePolicy>,
51 #[serde(rename = "RedriveAllowPolicy", skip_serializing_if = "Option::is_none")]
52 pub(super) redrive_allow_policy: Option<Value>,
53 #[serde(rename = "SqsManagedSseEnabled", skip_serializing_if = "Option::is_none")]
54 pub(super) sqs_managed_sse_enabled: Option<bool>,
55 #[serde(rename = "VisibilityTimeout", skip_serializing_if = "Option::is_none")]
56 pub(super) visibility_timeout: Option<u32>,
57}
58
59#[derive(Debug, Serialize, Deserialize)]
60pub struct QueuePolicy {
61 #[serde(skip)]
62 pub(super) id: Id,
63 #[serde(skip)]
64 pub(super) resource_id: String,
65 #[serde(rename = "Type")]
66 pub(super) r#type: String,
67 #[serde(rename = "Properties")]
68 pub(crate) properties: QueuePolicyProperties,
69}
70dto_methods!(QueuePolicy);
71
72#[derive(Debug, Serialize, Deserialize)]
73pub struct QueuePolicyProperties {
74 #[serde(rename = "PolicyDocument")]
75 pub(crate) doc: PolicyDocument,
76 #[serde(rename = "Queues")]
77 pub(super) queues: Vec<Value>,
78}
79
80#[derive(Debug, Serialize, Deserialize)]
81pub struct RedrivePolicy {
82 #[serde(rename = "deadLetterTargetArn")]
83 pub(super) dead_letter_target_arn: String,
84 #[serde(rename = "maxReceiveCount")]
85 pub(super) max_receive_count: u32,
86}