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
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
/// <p>Well-formed data on a contact, used by agents to complete a contact request. You can have up to 4,096 UTF-8 bytes across all references for a contact.</p>
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct Reference {
/// <p>A valid value for the reference. For example, for a URL reference, a formatted URL that is displayed to an agent in the Contact Control Panel (CCP).</p>
pub value: ::std::string::String,
/// <p>The type of the reference. <code>DATE</code> must be of type Epoch timestamp.</p>
pub r#type: crate::types::ReferenceType,
/// <p>Status of the attachment reference type.</p>
pub status: ::std::option::Option<crate::types::ReferenceStatus>,
/// <p>The Amazon Resource Name (ARN) of the reference</p>
pub arn: ::std::option::Option<::std::string::String>,
/// <p>Relevant details why the reference was not successfully created.</p>
pub status_reason: ::std::option::Option<::std::string::String>,
}
impl Reference {
/// <p>A valid value for the reference. For example, for a URL reference, a formatted URL that is displayed to an agent in the Contact Control Panel (CCP).</p>
pub fn value(&self) -> &str {
use std::ops::Deref;
self.value.deref()
}
/// <p>The type of the reference. <code>DATE</code> must be of type Epoch timestamp.</p>
pub fn r#type(&self) -> &crate::types::ReferenceType {
&self.r#type
}
/// <p>Status of the attachment reference type.</p>
pub fn status(&self) -> ::std::option::Option<&crate::types::ReferenceStatus> {
self.status.as_ref()
}
/// <p>The Amazon Resource Name (ARN) of the reference</p>
pub fn arn(&self) -> ::std::option::Option<&str> {
self.arn.as_deref()
}
/// <p>Relevant details why the reference was not successfully created.</p>
pub fn status_reason(&self) -> ::std::option::Option<&str> {
self.status_reason.as_deref()
}
}
impl Reference {
/// Creates a new builder-style object to manufacture [`Reference`](crate::types::Reference).
pub fn builder() -> crate::types::builders::ReferenceBuilder {
crate::types::builders::ReferenceBuilder::default()
}
}
/// A builder for [`Reference`](crate::types::Reference).
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct ReferenceBuilder {
pub(crate) value: ::std::option::Option<::std::string::String>,
pub(crate) r#type: ::std::option::Option<crate::types::ReferenceType>,
pub(crate) status: ::std::option::Option<crate::types::ReferenceStatus>,
pub(crate) arn: ::std::option::Option<::std::string::String>,
pub(crate) status_reason: ::std::option::Option<::std::string::String>,
}
impl ReferenceBuilder {
/// <p>A valid value for the reference. For example, for a URL reference, a formatted URL that is displayed to an agent in the Contact Control Panel (CCP).</p>
pub fn value(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.value = ::std::option::Option::Some(input.into());
self
}
/// <p>A valid value for the reference. For example, for a URL reference, a formatted URL that is displayed to an agent in the Contact Control Panel (CCP).</p>
pub fn set_value(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.value = input;
self
}
/// <p>A valid value for the reference. For example, for a URL reference, a formatted URL that is displayed to an agent in the Contact Control Panel (CCP).</p>
pub fn get_value(&self) -> &::std::option::Option<::std::string::String> {
&self.value
}
/// <p>The type of the reference. <code>DATE</code> must be of type Epoch timestamp.</p>
/// This field is required.
pub fn r#type(mut self, input: crate::types::ReferenceType) -> Self {
self.r#type = ::std::option::Option::Some(input);
self
}
/// <p>The type of the reference. <code>DATE</code> must be of type Epoch timestamp.</p>
pub fn set_type(mut self, input: ::std::option::Option<crate::types::ReferenceType>) -> Self {
self.r#type = input;
self
}
/// <p>The type of the reference. <code>DATE</code> must be of type Epoch timestamp.</p>
pub fn get_type(&self) -> &::std::option::Option<crate::types::ReferenceType> {
&self.r#type
}
/// <p>Status of the attachment reference type.</p>
pub fn status(mut self, input: crate::types::ReferenceStatus) -> Self {
self.status = ::std::option::Option::Some(input);
self
}
/// <p>Status of the attachment reference type.</p>
pub fn set_status(mut self, input: ::std::option::Option<crate::types::ReferenceStatus>) -> Self {
self.status = input;
self
}
/// <p>Status of the attachment reference type.</p>
pub fn get_status(&self) -> &::std::option::Option<crate::types::ReferenceStatus> {
&self.status
}
/// <p>The Amazon Resource Name (ARN) of the reference</p>
pub fn arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.arn = ::std::option::Option::Some(input.into());
self
}
/// <p>The Amazon Resource Name (ARN) of the reference</p>
pub fn set_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.arn = input;
self
}
/// <p>The Amazon Resource Name (ARN) of the reference</p>
pub fn get_arn(&self) -> &::std::option::Option<::std::string::String> {
&self.arn
}
/// <p>Relevant details why the reference was not successfully created.</p>
pub fn status_reason(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.status_reason = ::std::option::Option::Some(input.into());
self
}
/// <p>Relevant details why the reference was not successfully created.</p>
pub fn set_status_reason(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.status_reason = input;
self
}
/// <p>Relevant details why the reference was not successfully created.</p>
pub fn get_status_reason(&self) -> &::std::option::Option<::std::string::String> {
&self.status_reason
}
/// Consumes the builder and constructs a [`Reference`](crate::types::Reference).
/// This method will fail if any of the following fields are not set:
/// - [`r#type`](crate::types::builders::ReferenceBuilder::type)
pub fn build(self) -> ::std::result::Result<crate::types::Reference, ::aws_smithy_types::error::operation::BuildError> {
::std::result::Result::Ok(crate::types::Reference {
value: self.value.unwrap_or_default(),
r#type: self.r#type.ok_or_else(|| {
::aws_smithy_types::error::operation::BuildError::missing_field(
"r#type",
"r#type was not specified but it is required when building Reference",
)
})?,
status: self.status,
arn: self.arn,
status_reason: self.status_reason,
})
}
}