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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct SendRcsMessageInput {
/// <p>The destination phone number in E.164 format.</p>
pub destination_phone_number: ::std::option::Option<::std::string::String>,
/// <p>The origination identity of the message. This can be either the RcsAgentId, RcsAgentArn, PoolId, or PoolArn.</p>
pub origination_identity: ::std::option::Option<::std::string::String>,
/// <p>The content of the RCS message. Contains the message content (text, file, rich card, or carousel) and optional message-level suggested actions.</p>
pub rcs_message_content: ::std::option::Option<crate::types::RcsMessageContent>,
/// <p>The duration in seconds that the RCS message is valid for delivery. If the message cannot be delivered within this duration, it is considered expired. Valid values are 1 to 172800 (48 hours). If a FallbackConfiguration is provided, the fallback is triggered when the duration expires without delivery confirmation.</p>
pub time_to_live: ::std::option::Option<i32>,
/// <p>The traffic type of the RCS message. Valid values are AUTHENTICATION, TRANSACTION, PROMOTION, SERVICE_REQUEST, and ACKNOWLEDGEMENT. This field is reserved for future use.</p>
pub message_traffic_type: ::std::option::Option<::std::string::String>,
/// <p>Configuration for SMS or MMS fallback when RCS delivery fails. If provided, the service sends a fallback message via the specified channel when the RCS message fails or the TimeToLive expires.</p>
pub fallback_configuration: ::std::option::Option<crate::types::RcsFallbackConfiguration>,
/// <p>The unique identifier of the protect configuration to use.</p>
pub protect_configuration_id: ::std::option::Option<::std::string::String>,
/// <p>The name of the configuration set to use. This can be either the ConfigurationSetName or ConfigurationSetArn.</p>
pub configuration_set_name: ::std::option::Option<::std::string::String>,
/// <p>The maximum amount that you want to spend, in US dollars, per each RCS message.</p>
pub max_price: ::std::option::Option<::std::string::String>,
/// <p>When set to true, the message is checked and validated, but isn't sent to the end recipient.</p>
pub dry_run: ::std::option::Option<bool>,
/// <p>You can specify custom data in this field. If you do, that data is logged to the event destination.</p>
pub context: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
/// <p>Set to true to enable message feedback for the message. When a user receives the message you need to update the message status using <code>PutMessageFeedback</code>.</p>
pub message_feedback_enabled: ::std::option::Option<bool>,
}
impl SendRcsMessageInput {
/// <p>The destination phone number in E.164 format.</p>
pub fn destination_phone_number(&self) -> ::std::option::Option<&str> {
self.destination_phone_number.as_deref()
}
/// <p>The origination identity of the message. This can be either the RcsAgentId, RcsAgentArn, PoolId, or PoolArn.</p>
pub fn origination_identity(&self) -> ::std::option::Option<&str> {
self.origination_identity.as_deref()
}
/// <p>The content of the RCS message. Contains the message content (text, file, rich card, or carousel) and optional message-level suggested actions.</p>
pub fn rcs_message_content(&self) -> ::std::option::Option<&crate::types::RcsMessageContent> {
self.rcs_message_content.as_ref()
}
/// <p>The duration in seconds that the RCS message is valid for delivery. If the message cannot be delivered within this duration, it is considered expired. Valid values are 1 to 172800 (48 hours). If a FallbackConfiguration is provided, the fallback is triggered when the duration expires without delivery confirmation.</p>
pub fn time_to_live(&self) -> ::std::option::Option<i32> {
self.time_to_live
}
/// <p>The traffic type of the RCS message. Valid values are AUTHENTICATION, TRANSACTION, PROMOTION, SERVICE_REQUEST, and ACKNOWLEDGEMENT. This field is reserved for future use.</p>
pub fn message_traffic_type(&self) -> ::std::option::Option<&str> {
self.message_traffic_type.as_deref()
}
/// <p>Configuration for SMS or MMS fallback when RCS delivery fails. If provided, the service sends a fallback message via the specified channel when the RCS message fails or the TimeToLive expires.</p>
pub fn fallback_configuration(&self) -> ::std::option::Option<&crate::types::RcsFallbackConfiguration> {
self.fallback_configuration.as_ref()
}
/// <p>The unique identifier of the protect configuration to use.</p>
pub fn protect_configuration_id(&self) -> ::std::option::Option<&str> {
self.protect_configuration_id.as_deref()
}
/// <p>The name of the configuration set to use. This can be either the ConfigurationSetName or ConfigurationSetArn.</p>
pub fn configuration_set_name(&self) -> ::std::option::Option<&str> {
self.configuration_set_name.as_deref()
}
/// <p>The maximum amount that you want to spend, in US dollars, per each RCS message.</p>
pub fn max_price(&self) -> ::std::option::Option<&str> {
self.max_price.as_deref()
}
/// <p>When set to true, the message is checked and validated, but isn't sent to the end recipient.</p>
pub fn dry_run(&self) -> ::std::option::Option<bool> {
self.dry_run
}
/// <p>You can specify custom data in this field. If you do, that data is logged to the event destination.</p>
pub fn context(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
self.context.as_ref()
}
/// <p>Set to true to enable message feedback for the message. When a user receives the message you need to update the message status using <code>PutMessageFeedback</code>.</p>
pub fn message_feedback_enabled(&self) -> ::std::option::Option<bool> {
self.message_feedback_enabled
}
}
impl SendRcsMessageInput {
/// Creates a new builder-style object to manufacture [`SendRcsMessageInput`](crate::operation::send_rcs_message::SendRcsMessageInput).
pub fn builder() -> crate::operation::send_rcs_message::builders::SendRcsMessageInputBuilder {
crate::operation::send_rcs_message::builders::SendRcsMessageInputBuilder::default()
}
}
/// A builder for [`SendRcsMessageInput`](crate::operation::send_rcs_message::SendRcsMessageInput).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct SendRcsMessageInputBuilder {
pub(crate) destination_phone_number: ::std::option::Option<::std::string::String>,
pub(crate) origination_identity: ::std::option::Option<::std::string::String>,
pub(crate) rcs_message_content: ::std::option::Option<crate::types::RcsMessageContent>,
pub(crate) time_to_live: ::std::option::Option<i32>,
pub(crate) message_traffic_type: ::std::option::Option<::std::string::String>,
pub(crate) fallback_configuration: ::std::option::Option<crate::types::RcsFallbackConfiguration>,
pub(crate) protect_configuration_id: ::std::option::Option<::std::string::String>,
pub(crate) configuration_set_name: ::std::option::Option<::std::string::String>,
pub(crate) max_price: ::std::option::Option<::std::string::String>,
pub(crate) dry_run: ::std::option::Option<bool>,
pub(crate) context: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
pub(crate) message_feedback_enabled: ::std::option::Option<bool>,
}
impl SendRcsMessageInputBuilder {
/// <p>The destination phone number in E.164 format.</p>
/// This field is required.
pub fn destination_phone_number(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.destination_phone_number = ::std::option::Option::Some(input.into());
self
}
/// <p>The destination phone number in E.164 format.</p>
pub fn set_destination_phone_number(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.destination_phone_number = input;
self
}
/// <p>The destination phone number in E.164 format.</p>
pub fn get_destination_phone_number(&self) -> &::std::option::Option<::std::string::String> {
&self.destination_phone_number
}
/// <p>The origination identity of the message. This can be either the RcsAgentId, RcsAgentArn, PoolId, or PoolArn.</p>
/// This field is required.
pub fn origination_identity(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.origination_identity = ::std::option::Option::Some(input.into());
self
}
/// <p>The origination identity of the message. This can be either the RcsAgentId, RcsAgentArn, PoolId, or PoolArn.</p>
pub fn set_origination_identity(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.origination_identity = input;
self
}
/// <p>The origination identity of the message. This can be either the RcsAgentId, RcsAgentArn, PoolId, or PoolArn.</p>
pub fn get_origination_identity(&self) -> &::std::option::Option<::std::string::String> {
&self.origination_identity
}
/// <p>The content of the RCS message. Contains the message content (text, file, rich card, or carousel) and optional message-level suggested actions.</p>
pub fn rcs_message_content(mut self, input: crate::types::RcsMessageContent) -> Self {
self.rcs_message_content = ::std::option::Option::Some(input);
self
}
/// <p>The content of the RCS message. Contains the message content (text, file, rich card, or carousel) and optional message-level suggested actions.</p>
pub fn set_rcs_message_content(mut self, input: ::std::option::Option<crate::types::RcsMessageContent>) -> Self {
self.rcs_message_content = input;
self
}
/// <p>The content of the RCS message. Contains the message content (text, file, rich card, or carousel) and optional message-level suggested actions.</p>
pub fn get_rcs_message_content(&self) -> &::std::option::Option<crate::types::RcsMessageContent> {
&self.rcs_message_content
}
/// <p>The duration in seconds that the RCS message is valid for delivery. If the message cannot be delivered within this duration, it is considered expired. Valid values are 1 to 172800 (48 hours). If a FallbackConfiguration is provided, the fallback is triggered when the duration expires without delivery confirmation.</p>
pub fn time_to_live(mut self, input: i32) -> Self {
self.time_to_live = ::std::option::Option::Some(input);
self
}
/// <p>The duration in seconds that the RCS message is valid for delivery. If the message cannot be delivered within this duration, it is considered expired. Valid values are 1 to 172800 (48 hours). If a FallbackConfiguration is provided, the fallback is triggered when the duration expires without delivery confirmation.</p>
pub fn set_time_to_live(mut self, input: ::std::option::Option<i32>) -> Self {
self.time_to_live = input;
self
}
/// <p>The duration in seconds that the RCS message is valid for delivery. If the message cannot be delivered within this duration, it is considered expired. Valid values are 1 to 172800 (48 hours). If a FallbackConfiguration is provided, the fallback is triggered when the duration expires without delivery confirmation.</p>
pub fn get_time_to_live(&self) -> &::std::option::Option<i32> {
&self.time_to_live
}
/// <p>The traffic type of the RCS message. Valid values are AUTHENTICATION, TRANSACTION, PROMOTION, SERVICE_REQUEST, and ACKNOWLEDGEMENT. This field is reserved for future use.</p>
pub fn message_traffic_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.message_traffic_type = ::std::option::Option::Some(input.into());
self
}
/// <p>The traffic type of the RCS message. Valid values are AUTHENTICATION, TRANSACTION, PROMOTION, SERVICE_REQUEST, and ACKNOWLEDGEMENT. This field is reserved for future use.</p>
pub fn set_message_traffic_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.message_traffic_type = input;
self
}
/// <p>The traffic type of the RCS message. Valid values are AUTHENTICATION, TRANSACTION, PROMOTION, SERVICE_REQUEST, and ACKNOWLEDGEMENT. This field is reserved for future use.</p>
pub fn get_message_traffic_type(&self) -> &::std::option::Option<::std::string::String> {
&self.message_traffic_type
}
/// <p>Configuration for SMS or MMS fallback when RCS delivery fails. If provided, the service sends a fallback message via the specified channel when the RCS message fails or the TimeToLive expires.</p>
pub fn fallback_configuration(mut self, input: crate::types::RcsFallbackConfiguration) -> Self {
self.fallback_configuration = ::std::option::Option::Some(input);
self
}
/// <p>Configuration for SMS or MMS fallback when RCS delivery fails. If provided, the service sends a fallback message via the specified channel when the RCS message fails or the TimeToLive expires.</p>
pub fn set_fallback_configuration(mut self, input: ::std::option::Option<crate::types::RcsFallbackConfiguration>) -> Self {
self.fallback_configuration = input;
self
}
/// <p>Configuration for SMS or MMS fallback when RCS delivery fails. If provided, the service sends a fallback message via the specified channel when the RCS message fails or the TimeToLive expires.</p>
pub fn get_fallback_configuration(&self) -> &::std::option::Option<crate::types::RcsFallbackConfiguration> {
&self.fallback_configuration
}
/// <p>The unique identifier of the protect configuration to use.</p>
pub fn protect_configuration_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.protect_configuration_id = ::std::option::Option::Some(input.into());
self
}
/// <p>The unique identifier of the protect configuration to use.</p>
pub fn set_protect_configuration_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.protect_configuration_id = input;
self
}
/// <p>The unique identifier of the protect configuration to use.</p>
pub fn get_protect_configuration_id(&self) -> &::std::option::Option<::std::string::String> {
&self.protect_configuration_id
}
/// <p>The name of the configuration set to use. This can be either the ConfigurationSetName or ConfigurationSetArn.</p>
pub fn configuration_set_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.configuration_set_name = ::std::option::Option::Some(input.into());
self
}
/// <p>The name of the configuration set to use. This can be either the ConfigurationSetName or ConfigurationSetArn.</p>
pub fn set_configuration_set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.configuration_set_name = input;
self
}
/// <p>The name of the configuration set to use. This can be either the ConfigurationSetName or ConfigurationSetArn.</p>
pub fn get_configuration_set_name(&self) -> &::std::option::Option<::std::string::String> {
&self.configuration_set_name
}
/// <p>The maximum amount that you want to spend, in US dollars, per each RCS message.</p>
pub fn max_price(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.max_price = ::std::option::Option::Some(input.into());
self
}
/// <p>The maximum amount that you want to spend, in US dollars, per each RCS message.</p>
pub fn set_max_price(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.max_price = input;
self
}
/// <p>The maximum amount that you want to spend, in US dollars, per each RCS message.</p>
pub fn get_max_price(&self) -> &::std::option::Option<::std::string::String> {
&self.max_price
}
/// <p>When set to true, the message is checked and validated, but isn't sent to the end recipient.</p>
pub fn dry_run(mut self, input: bool) -> Self {
self.dry_run = ::std::option::Option::Some(input);
self
}
/// <p>When set to true, the message is checked and validated, but isn't sent to the end recipient.</p>
pub fn set_dry_run(mut self, input: ::std::option::Option<bool>) -> Self {
self.dry_run = input;
self
}
/// <p>When set to true, the message is checked and validated, but isn't sent to the end recipient.</p>
pub fn get_dry_run(&self) -> &::std::option::Option<bool> {
&self.dry_run
}
/// Adds a key-value pair to `context`.
///
/// To override the contents of this collection use [`set_context`](Self::set_context).
///
/// <p>You can specify custom data in this field. If you do, that data is logged to the event destination.</p>
pub fn context(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
let mut hash_map = self.context.unwrap_or_default();
hash_map.insert(k.into(), v.into());
self.context = ::std::option::Option::Some(hash_map);
self
}
/// <p>You can specify custom data in this field. If you do, that data is logged to the event destination.</p>
pub fn set_context(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
self.context = input;
self
}
/// <p>You can specify custom data in this field. If you do, that data is logged to the event destination.</p>
pub fn get_context(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
&self.context
}
/// <p>Set to true to enable message feedback for the message. When a user receives the message you need to update the message status using <code>PutMessageFeedback</code>.</p>
pub fn message_feedback_enabled(mut self, input: bool) -> Self {
self.message_feedback_enabled = ::std::option::Option::Some(input);
self
}
/// <p>Set to true to enable message feedback for the message. When a user receives the message you need to update the message status using <code>PutMessageFeedback</code>.</p>
pub fn set_message_feedback_enabled(mut self, input: ::std::option::Option<bool>) -> Self {
self.message_feedback_enabled = input;
self
}
/// <p>Set to true to enable message feedback for the message. When a user receives the message you need to update the message status using <code>PutMessageFeedback</code>.</p>
pub fn get_message_feedback_enabled(&self) -> &::std::option::Option<bool> {
&self.message_feedback_enabled
}
/// Consumes the builder and constructs a [`SendRcsMessageInput`](crate::operation::send_rcs_message::SendRcsMessageInput).
pub fn build(
self,
) -> ::std::result::Result<crate::operation::send_rcs_message::SendRcsMessageInput, ::aws_smithy_types::error::operation::BuildError> {
::std::result::Result::Ok(crate::operation::send_rcs_message::SendRcsMessageInput {
destination_phone_number: self.destination_phone_number,
origination_identity: self.origination_identity,
rcs_message_content: self.rcs_message_content,
time_to_live: self.time_to_live,
message_traffic_type: self.message_traffic_type,
fallback_configuration: self.fallback_configuration,
protect_configuration_id: self.protect_configuration_id,
configuration_set_name: self.configuration_set_name,
max_price: self.max_price,
dry_run: self.dry_run,
context: self.context,
message_feedback_enabled: self.message_feedback_enabled,
})
}
}