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
// 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 CreateLinkInput {
/// <p>Specify a friendly human-readable name to use to identify this source account when you are viewing data from it in the monitoring account.</p>
/// <p>You can use a custom label or use the following variables:</p>
/// <ul>
/// <li> <p> <code>$AccountName</code> is the name of the account</p> </li>
/// <li> <p> <code>$AccountEmail</code> is the globally unique email address of the account</p> </li>
/// <li> <p> <code>$AccountEmailNoDomain</code> is the email address of the account without the domain name</p> </li>
/// </ul>
pub label_template: ::std::option::Option<::std::string::String>,
/// <p>An array of strings that define which types of data that the source account shares with the monitoring account.</p>
pub resource_types: ::std::option::Option<::std::vec::Vec<crate::types::ResourceType>>,
/// <p>The ARN of the sink to use to create this link. You can use <a href="https://docs.aws.amazon.com/OAM/latest/APIReference/API_ListSinks.html">ListSinks</a> to find the ARNs of sinks.</p>
/// <p>For more information about sinks, see <a href="https://docs.aws.amazon.com/OAM/latest/APIReference/API_CreateSink.html">CreateSink</a>.</p>
pub sink_identifier: ::std::option::Option<::std::string::String>,
/// <p>Assigns one or more tags (key-value pairs) to the link. </p>
/// <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p>
/// <p>For more information about using tags to control access, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html">Controlling access to Amazon Web Services resources using tags</a>.</p>
pub tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
}
impl CreateLinkInput {
/// <p>Specify a friendly human-readable name to use to identify this source account when you are viewing data from it in the monitoring account.</p>
/// <p>You can use a custom label or use the following variables:</p>
/// <ul>
/// <li> <p> <code>$AccountName</code> is the name of the account</p> </li>
/// <li> <p> <code>$AccountEmail</code> is the globally unique email address of the account</p> </li>
/// <li> <p> <code>$AccountEmailNoDomain</code> is the email address of the account without the domain name</p> </li>
/// </ul>
pub fn label_template(&self) -> ::std::option::Option<&str> {
self.label_template.as_deref()
}
/// <p>An array of strings that define which types of data that the source account shares with the monitoring account.</p>
pub fn resource_types(&self) -> ::std::option::Option<&[crate::types::ResourceType]> {
self.resource_types.as_deref()
}
/// <p>The ARN of the sink to use to create this link. You can use <a href="https://docs.aws.amazon.com/OAM/latest/APIReference/API_ListSinks.html">ListSinks</a> to find the ARNs of sinks.</p>
/// <p>For more information about sinks, see <a href="https://docs.aws.amazon.com/OAM/latest/APIReference/API_CreateSink.html">CreateSink</a>.</p>
pub fn sink_identifier(&self) -> ::std::option::Option<&str> {
self.sink_identifier.as_deref()
}
/// <p>Assigns one or more tags (key-value pairs) to the link. </p>
/// <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p>
/// <p>For more information about using tags to control access, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html">Controlling access to Amazon Web Services resources using tags</a>.</p>
pub fn tags(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
self.tags.as_ref()
}
}
impl CreateLinkInput {
/// Creates a new builder-style object to manufacture [`CreateLinkInput`](crate::operation::create_link::CreateLinkInput).
pub fn builder() -> crate::operation::create_link::builders::CreateLinkInputBuilder {
crate::operation::create_link::builders::CreateLinkInputBuilder::default()
}
}
/// A builder for [`CreateLinkInput`](crate::operation::create_link::CreateLinkInput).
#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
pub struct CreateLinkInputBuilder {
pub(crate) label_template: ::std::option::Option<::std::string::String>,
pub(crate) resource_types: ::std::option::Option<::std::vec::Vec<crate::types::ResourceType>>,
pub(crate) sink_identifier: ::std::option::Option<::std::string::String>,
pub(crate) tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
}
impl CreateLinkInputBuilder {
/// <p>Specify a friendly human-readable name to use to identify this source account when you are viewing data from it in the monitoring account.</p>
/// <p>You can use a custom label or use the following variables:</p>
/// <ul>
/// <li> <p> <code>$AccountName</code> is the name of the account</p> </li>
/// <li> <p> <code>$AccountEmail</code> is the globally unique email address of the account</p> </li>
/// <li> <p> <code>$AccountEmailNoDomain</code> is the email address of the account without the domain name</p> </li>
/// </ul>
pub fn label_template(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.label_template = ::std::option::Option::Some(input.into());
self
}
/// <p>Specify a friendly human-readable name to use to identify this source account when you are viewing data from it in the monitoring account.</p>
/// <p>You can use a custom label or use the following variables:</p>
/// <ul>
/// <li> <p> <code>$AccountName</code> is the name of the account</p> </li>
/// <li> <p> <code>$AccountEmail</code> is the globally unique email address of the account</p> </li>
/// <li> <p> <code>$AccountEmailNoDomain</code> is the email address of the account without the domain name</p> </li>
/// </ul>
pub fn set_label_template(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.label_template = input;
self
}
/// <p>Specify a friendly human-readable name to use to identify this source account when you are viewing data from it in the monitoring account.</p>
/// <p>You can use a custom label or use the following variables:</p>
/// <ul>
/// <li> <p> <code>$AccountName</code> is the name of the account</p> </li>
/// <li> <p> <code>$AccountEmail</code> is the globally unique email address of the account</p> </li>
/// <li> <p> <code>$AccountEmailNoDomain</code> is the email address of the account without the domain name</p> </li>
/// </ul>
pub fn get_label_template(&self) -> &::std::option::Option<::std::string::String> {
&self.label_template
}
/// Appends an item to `resource_types`.
///
/// To override the contents of this collection use [`set_resource_types`](Self::set_resource_types).
///
/// <p>An array of strings that define which types of data that the source account shares with the monitoring account.</p>
pub fn resource_types(mut self, input: crate::types::ResourceType) -> Self {
let mut v = self.resource_types.unwrap_or_default();
v.push(input);
self.resource_types = ::std::option::Option::Some(v);
self
}
/// <p>An array of strings that define which types of data that the source account shares with the monitoring account.</p>
pub fn set_resource_types(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ResourceType>>) -> Self {
self.resource_types = input;
self
}
/// <p>An array of strings that define which types of data that the source account shares with the monitoring account.</p>
pub fn get_resource_types(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ResourceType>> {
&self.resource_types
}
/// <p>The ARN of the sink to use to create this link. You can use <a href="https://docs.aws.amazon.com/OAM/latest/APIReference/API_ListSinks.html">ListSinks</a> to find the ARNs of sinks.</p>
/// <p>For more information about sinks, see <a href="https://docs.aws.amazon.com/OAM/latest/APIReference/API_CreateSink.html">CreateSink</a>.</p>
pub fn sink_identifier(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
self.sink_identifier = ::std::option::Option::Some(input.into());
self
}
/// <p>The ARN of the sink to use to create this link. You can use <a href="https://docs.aws.amazon.com/OAM/latest/APIReference/API_ListSinks.html">ListSinks</a> to find the ARNs of sinks.</p>
/// <p>For more information about sinks, see <a href="https://docs.aws.amazon.com/OAM/latest/APIReference/API_CreateSink.html">CreateSink</a>.</p>
pub fn set_sink_identifier(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
self.sink_identifier = input;
self
}
/// <p>The ARN of the sink to use to create this link. You can use <a href="https://docs.aws.amazon.com/OAM/latest/APIReference/API_ListSinks.html">ListSinks</a> to find the ARNs of sinks.</p>
/// <p>For more information about sinks, see <a href="https://docs.aws.amazon.com/OAM/latest/APIReference/API_CreateSink.html">CreateSink</a>.</p>
pub fn get_sink_identifier(&self) -> &::std::option::Option<::std::string::String> {
&self.sink_identifier
}
/// Adds a key-value pair to `tags`.
///
/// To override the contents of this collection use [`set_tags`](Self::set_tags).
///
/// <p>Assigns one or more tags (key-value pairs) to the link. </p>
/// <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p>
/// <p>For more information about using tags to control access, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html">Controlling access to Amazon Web Services resources using tags</a>.</p>
pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
let mut hash_map = self.tags.unwrap_or_default();
hash_map.insert(k.into(), v.into());
self.tags = ::std::option::Option::Some(hash_map);
self
}
/// <p>Assigns one or more tags (key-value pairs) to the link. </p>
/// <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p>
/// <p>For more information about using tags to control access, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html">Controlling access to Amazon Web Services resources using tags</a>.</p>
pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
self.tags = input;
self
}
/// <p>Assigns one or more tags (key-value pairs) to the link. </p>
/// <p>Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.</p>
/// <p>For more information about using tags to control access, see <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html">Controlling access to Amazon Web Services resources using tags</a>.</p>
pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
&self.tags
}
/// Consumes the builder and constructs a [`CreateLinkInput`](crate::operation::create_link::CreateLinkInput).
pub fn build(self) -> ::std::result::Result<crate::operation::create_link::CreateLinkInput, ::aws_smithy_http::operation::error::BuildError> {
::std::result::Result::Ok(crate::operation::create_link::CreateLinkInput {
label_template: self.label_template,
resource_types: self.resource_types,
sink_identifier: self.sink_identifier,
tags: self.tags,
})
}
}