1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.

/// <p>Contains summary information about a routing profile queue.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct RoutingProfileQueueConfigSummary {
    /// <p>The identifier for the queue.</p>
    pub queue_id: ::std::option::Option<::std::string::String>,
    /// <p>The Amazon Resource Name (ARN) of the queue.</p>
    pub queue_arn: ::std::option::Option<::std::string::String>,
    /// <p>The name of the queue.</p>
    pub queue_name: ::std::option::Option<::std::string::String>,
    /// <p>The order in which contacts are to be handled for the queue. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/concepts-routing-profiles-priority.html">Queues: priority and delay</a>.</p>
    pub priority: i32,
    /// <p>The delay, in seconds, that a contact should be in the queue before they are routed to an available agent. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/concepts-routing-profiles-priority.html">Queues: priority and delay</a> in the <i>Amazon Connect Administrator Guide</i>.</p>
    pub delay: i32,
    /// <p>The channels this queue supports.</p>
    pub channel: ::std::option::Option<crate::types::Channel>,
}
impl RoutingProfileQueueConfigSummary {
    /// <p>The identifier for the queue.</p>
    pub fn queue_id(&self) -> ::std::option::Option<&str> {
        self.queue_id.as_deref()
    }
    /// <p>The Amazon Resource Name (ARN) of the queue.</p>
    pub fn queue_arn(&self) -> ::std::option::Option<&str> {
        self.queue_arn.as_deref()
    }
    /// <p>The name of the queue.</p>
    pub fn queue_name(&self) -> ::std::option::Option<&str> {
        self.queue_name.as_deref()
    }
    /// <p>The order in which contacts are to be handled for the queue. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/concepts-routing-profiles-priority.html">Queues: priority and delay</a>.</p>
    pub fn priority(&self) -> i32 {
        self.priority
    }
    /// <p>The delay, in seconds, that a contact should be in the queue before they are routed to an available agent. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/concepts-routing-profiles-priority.html">Queues: priority and delay</a> in the <i>Amazon Connect Administrator Guide</i>.</p>
    pub fn delay(&self) -> i32 {
        self.delay
    }
    /// <p>The channels this queue supports.</p>
    pub fn channel(&self) -> ::std::option::Option<&crate::types::Channel> {
        self.channel.as_ref()
    }
}
impl RoutingProfileQueueConfigSummary {
    /// Creates a new builder-style object to manufacture [`RoutingProfileQueueConfigSummary`](crate::types::RoutingProfileQueueConfigSummary).
    pub fn builder() -> crate::types::builders::RoutingProfileQueueConfigSummaryBuilder {
        crate::types::builders::RoutingProfileQueueConfigSummaryBuilder::default()
    }
}

/// A builder for [`RoutingProfileQueueConfigSummary`](crate::types::RoutingProfileQueueConfigSummary).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct RoutingProfileQueueConfigSummaryBuilder {
    pub(crate) queue_id: ::std::option::Option<::std::string::String>,
    pub(crate) queue_arn: ::std::option::Option<::std::string::String>,
    pub(crate) queue_name: ::std::option::Option<::std::string::String>,
    pub(crate) priority: ::std::option::Option<i32>,
    pub(crate) delay: ::std::option::Option<i32>,
    pub(crate) channel: ::std::option::Option<crate::types::Channel>,
}
impl RoutingProfileQueueConfigSummaryBuilder {
    /// <p>The identifier for the queue.</p>
    pub fn queue_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.queue_id = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The identifier for the queue.</p>
    pub fn set_queue_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.queue_id = input;
        self
    }
    /// <p>The identifier for the queue.</p>
    pub fn get_queue_id(&self) -> &::std::option::Option<::std::string::String> {
        &self.queue_id
    }
    /// <p>The Amazon Resource Name (ARN) of the queue.</p>
    pub fn queue_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.queue_arn = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The Amazon Resource Name (ARN) of the queue.</p>
    pub fn set_queue_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.queue_arn = input;
        self
    }
    /// <p>The Amazon Resource Name (ARN) of the queue.</p>
    pub fn get_queue_arn(&self) -> &::std::option::Option<::std::string::String> {
        &self.queue_arn
    }
    /// <p>The name of the queue.</p>
    pub fn queue_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
        self.queue_name = ::std::option::Option::Some(input.into());
        self
    }
    /// <p>The name of the queue.</p>
    pub fn set_queue_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
        self.queue_name = input;
        self
    }
    /// <p>The name of the queue.</p>
    pub fn get_queue_name(&self) -> &::std::option::Option<::std::string::String> {
        &self.queue_name
    }
    /// <p>The order in which contacts are to be handled for the queue. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/concepts-routing-profiles-priority.html">Queues: priority and delay</a>.</p>
    pub fn priority(mut self, input: i32) -> Self {
        self.priority = ::std::option::Option::Some(input);
        self
    }
    /// <p>The order in which contacts are to be handled for the queue. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/concepts-routing-profiles-priority.html">Queues: priority and delay</a>.</p>
    pub fn set_priority(mut self, input: ::std::option::Option<i32>) -> Self {
        self.priority = input;
        self
    }
    /// <p>The order in which contacts are to be handled for the queue. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/concepts-routing-profiles-priority.html">Queues: priority and delay</a>.</p>
    pub fn get_priority(&self) -> &::std::option::Option<i32> {
        &self.priority
    }
    /// <p>The delay, in seconds, that a contact should be in the queue before they are routed to an available agent. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/concepts-routing-profiles-priority.html">Queues: priority and delay</a> in the <i>Amazon Connect Administrator Guide</i>.</p>
    pub fn delay(mut self, input: i32) -> Self {
        self.delay = ::std::option::Option::Some(input);
        self
    }
    /// <p>The delay, in seconds, that a contact should be in the queue before they are routed to an available agent. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/concepts-routing-profiles-priority.html">Queues: priority and delay</a> in the <i>Amazon Connect Administrator Guide</i>.</p>
    pub fn set_delay(mut self, input: ::std::option::Option<i32>) -> Self {
        self.delay = input;
        self
    }
    /// <p>The delay, in seconds, that a contact should be in the queue before they are routed to an available agent. For more information, see <a href="https://docs.aws.amazon.com/connect/latest/adminguide/concepts-routing-profiles-priority.html">Queues: priority and delay</a> in the <i>Amazon Connect Administrator Guide</i>.</p>
    pub fn get_delay(&self) -> &::std::option::Option<i32> {
        &self.delay
    }
    /// <p>The channels this queue supports.</p>
    pub fn channel(mut self, input: crate::types::Channel) -> Self {
        self.channel = ::std::option::Option::Some(input);
        self
    }
    /// <p>The channels this queue supports.</p>
    pub fn set_channel(mut self, input: ::std::option::Option<crate::types::Channel>) -> Self {
        self.channel = input;
        self
    }
    /// <p>The channels this queue supports.</p>
    pub fn get_channel(&self) -> &::std::option::Option<crate::types::Channel> {
        &self.channel
    }
    /// Consumes the builder and constructs a [`RoutingProfileQueueConfigSummary`](crate::types::RoutingProfileQueueConfigSummary).
    pub fn build(self) -> crate::types::RoutingProfileQueueConfigSummary {
        crate::types::RoutingProfileQueueConfigSummary {
            queue_id: self.queue_id,
            queue_arn: self.queue_arn,
            queue_name: self.queue_name,
            priority: self.priority.unwrap_or_default(),
            delay: self.delay.unwrap_or_default(),
            channel: self.channel,
        }
    }
}