aws_sdk_quicksight/operation/create_analysis/_create_analysis_input.rs
1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
5pub struct CreateAnalysisInput {
6 /// <p>The ID of the Amazon Web Services account where you are creating an analysis.</p>
7 pub aws_account_id: ::std::option::Option<::std::string::String>,
8 /// <p>The ID for the analysis that you're creating. This ID displays in the URL of the analysis.</p>
9 pub analysis_id: ::std::option::Option<::std::string::String>,
10 /// <p>A descriptive name for the analysis that you're creating. This name displays for the analysis in the Amazon QuickSight console.</p>
11 pub name: ::std::option::Option<::std::string::String>,
12 /// <p>The parameter names and override values that you want to use. An analysis can have any parameter type, and some parameters might accept multiple values.</p>
13 pub parameters: ::std::option::Option<crate::types::Parameters>,
14 /// <p>A structure that describes the principals and the resource-level permissions on an analysis. You can use the <code>Permissions</code> structure to grant permissions by providing a list of Identity and Access Management (IAM) action information for each principal listed by Amazon Resource Name (ARN).</p>
15 /// <p>To specify no permissions, omit <code>Permissions</code>.</p>
16 pub permissions: ::std::option::Option<::std::vec::Vec<crate::types::ResourcePermission>>,
17 /// <p>A source entity to use for the analysis that you're creating. This metadata structure contains details that describe a source template and one or more datasets.</p>
18 /// <p>Either a <code>SourceEntity</code> or a <code>Definition</code> must be provided in order for the request to be valid.</p>
19 pub source_entity: ::std::option::Option<crate::types::AnalysisSourceEntity>,
20 /// <p>The ARN for the theme to apply to the analysis that you're creating. To see the theme in the Amazon QuickSight console, make sure that you have access to it.</p>
21 pub theme_arn: ::std::option::Option<::std::string::String>,
22 /// <p>Contains a map of the key-value pairs for the resource tag or tags assigned to the analysis.</p>
23 pub tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
24 /// <p>The definition of an analysis.</p>
25 /// <p>A definition is the data model of all features in a Dashboard, Template, or Analysis.</p>
26 /// <p>Either a <code>SourceEntity</code> or a <code>Definition</code> must be provided in order for the request to be valid.</p>
27 pub definition: ::std::option::Option<crate::types::AnalysisDefinition>,
28 /// <p>The option to relax the validation needed to create an analysis with definition objects. This skips the validation step for specific errors.</p>
29 pub validation_strategy: ::std::option::Option<crate::types::ValidationStrategy>,
30 /// <p>When you create the analysis, Amazon QuickSight adds the analysis to these folders.</p>
31 pub folder_arns: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
32}
33impl CreateAnalysisInput {
34 /// <p>The ID of the Amazon Web Services account where you are creating an analysis.</p>
35 pub fn aws_account_id(&self) -> ::std::option::Option<&str> {
36 self.aws_account_id.as_deref()
37 }
38 /// <p>The ID for the analysis that you're creating. This ID displays in the URL of the analysis.</p>
39 pub fn analysis_id(&self) -> ::std::option::Option<&str> {
40 self.analysis_id.as_deref()
41 }
42 /// <p>A descriptive name for the analysis that you're creating. This name displays for the analysis in the Amazon QuickSight console.</p>
43 pub fn name(&self) -> ::std::option::Option<&str> {
44 self.name.as_deref()
45 }
46 /// <p>The parameter names and override values that you want to use. An analysis can have any parameter type, and some parameters might accept multiple values.</p>
47 pub fn parameters(&self) -> ::std::option::Option<&crate::types::Parameters> {
48 self.parameters.as_ref()
49 }
50 /// <p>A structure that describes the principals and the resource-level permissions on an analysis. You can use the <code>Permissions</code> structure to grant permissions by providing a list of Identity and Access Management (IAM) action information for each principal listed by Amazon Resource Name (ARN).</p>
51 /// <p>To specify no permissions, omit <code>Permissions</code>.</p>
52 ///
53 /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.permissions.is_none()`.
54 pub fn permissions(&self) -> &[crate::types::ResourcePermission] {
55 self.permissions.as_deref().unwrap_or_default()
56 }
57 /// <p>A source entity to use for the analysis that you're creating. This metadata structure contains details that describe a source template and one or more datasets.</p>
58 /// <p>Either a <code>SourceEntity</code> or a <code>Definition</code> must be provided in order for the request to be valid.</p>
59 pub fn source_entity(&self) -> ::std::option::Option<&crate::types::AnalysisSourceEntity> {
60 self.source_entity.as_ref()
61 }
62 /// <p>The ARN for the theme to apply to the analysis that you're creating. To see the theme in the Amazon QuickSight console, make sure that you have access to it.</p>
63 pub fn theme_arn(&self) -> ::std::option::Option<&str> {
64 self.theme_arn.as_deref()
65 }
66 /// <p>Contains a map of the key-value pairs for the resource tag or tags assigned to the analysis.</p>
67 ///
68 /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tags.is_none()`.
69 pub fn tags(&self) -> &[crate::types::Tag] {
70 self.tags.as_deref().unwrap_or_default()
71 }
72 /// <p>The definition of an analysis.</p>
73 /// <p>A definition is the data model of all features in a Dashboard, Template, or Analysis.</p>
74 /// <p>Either a <code>SourceEntity</code> or a <code>Definition</code> must be provided in order for the request to be valid.</p>
75 pub fn definition(&self) -> ::std::option::Option<&crate::types::AnalysisDefinition> {
76 self.definition.as_ref()
77 }
78 /// <p>The option to relax the validation needed to create an analysis with definition objects. This skips the validation step for specific errors.</p>
79 pub fn validation_strategy(&self) -> ::std::option::Option<&crate::types::ValidationStrategy> {
80 self.validation_strategy.as_ref()
81 }
82 /// <p>When you create the analysis, Amazon QuickSight adds the analysis to these folders.</p>
83 ///
84 /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.folder_arns.is_none()`.
85 pub fn folder_arns(&self) -> &[::std::string::String] {
86 self.folder_arns.as_deref().unwrap_or_default()
87 }
88}
89impl CreateAnalysisInput {
90 /// Creates a new builder-style object to manufacture [`CreateAnalysisInput`](crate::operation::create_analysis::CreateAnalysisInput).
91 pub fn builder() -> crate::operation::create_analysis::builders::CreateAnalysisInputBuilder {
92 crate::operation::create_analysis::builders::CreateAnalysisInputBuilder::default()
93 }
94}
95
96/// A builder for [`CreateAnalysisInput`](crate::operation::create_analysis::CreateAnalysisInput).
97#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
98#[non_exhaustive]
99pub struct CreateAnalysisInputBuilder {
100 pub(crate) aws_account_id: ::std::option::Option<::std::string::String>,
101 pub(crate) analysis_id: ::std::option::Option<::std::string::String>,
102 pub(crate) name: ::std::option::Option<::std::string::String>,
103 pub(crate) parameters: ::std::option::Option<crate::types::Parameters>,
104 pub(crate) permissions: ::std::option::Option<::std::vec::Vec<crate::types::ResourcePermission>>,
105 pub(crate) source_entity: ::std::option::Option<crate::types::AnalysisSourceEntity>,
106 pub(crate) theme_arn: ::std::option::Option<::std::string::String>,
107 pub(crate) tags: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>,
108 pub(crate) definition: ::std::option::Option<crate::types::AnalysisDefinition>,
109 pub(crate) validation_strategy: ::std::option::Option<crate::types::ValidationStrategy>,
110 pub(crate) folder_arns: ::std::option::Option<::std::vec::Vec<::std::string::String>>,
111}
112impl CreateAnalysisInputBuilder {
113 /// <p>The ID of the Amazon Web Services account where you are creating an analysis.</p>
114 /// This field is required.
115 pub fn aws_account_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
116 self.aws_account_id = ::std::option::Option::Some(input.into());
117 self
118 }
119 /// <p>The ID of the Amazon Web Services account where you are creating an analysis.</p>
120 pub fn set_aws_account_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
121 self.aws_account_id = input;
122 self
123 }
124 /// <p>The ID of the Amazon Web Services account where you are creating an analysis.</p>
125 pub fn get_aws_account_id(&self) -> &::std::option::Option<::std::string::String> {
126 &self.aws_account_id
127 }
128 /// <p>The ID for the analysis that you're creating. This ID displays in the URL of the analysis.</p>
129 /// This field is required.
130 pub fn analysis_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
131 self.analysis_id = ::std::option::Option::Some(input.into());
132 self
133 }
134 /// <p>The ID for the analysis that you're creating. This ID displays in the URL of the analysis.</p>
135 pub fn set_analysis_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
136 self.analysis_id = input;
137 self
138 }
139 /// <p>The ID for the analysis that you're creating. This ID displays in the URL of the analysis.</p>
140 pub fn get_analysis_id(&self) -> &::std::option::Option<::std::string::String> {
141 &self.analysis_id
142 }
143 /// <p>A descriptive name for the analysis that you're creating. This name displays for the analysis in the Amazon QuickSight console.</p>
144 /// This field is required.
145 pub fn name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
146 self.name = ::std::option::Option::Some(input.into());
147 self
148 }
149 /// <p>A descriptive name for the analysis that you're creating. This name displays for the analysis in the Amazon QuickSight console.</p>
150 pub fn set_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
151 self.name = input;
152 self
153 }
154 /// <p>A descriptive name for the analysis that you're creating. This name displays for the analysis in the Amazon QuickSight console.</p>
155 pub fn get_name(&self) -> &::std::option::Option<::std::string::String> {
156 &self.name
157 }
158 /// <p>The parameter names and override values that you want to use. An analysis can have any parameter type, and some parameters might accept multiple values.</p>
159 pub fn parameters(mut self, input: crate::types::Parameters) -> Self {
160 self.parameters = ::std::option::Option::Some(input);
161 self
162 }
163 /// <p>The parameter names and override values that you want to use. An analysis can have any parameter type, and some parameters might accept multiple values.</p>
164 pub fn set_parameters(mut self, input: ::std::option::Option<crate::types::Parameters>) -> Self {
165 self.parameters = input;
166 self
167 }
168 /// <p>The parameter names and override values that you want to use. An analysis can have any parameter type, and some parameters might accept multiple values.</p>
169 pub fn get_parameters(&self) -> &::std::option::Option<crate::types::Parameters> {
170 &self.parameters
171 }
172 /// Appends an item to `permissions`.
173 ///
174 /// To override the contents of this collection use [`set_permissions`](Self::set_permissions).
175 ///
176 /// <p>A structure that describes the principals and the resource-level permissions on an analysis. You can use the <code>Permissions</code> structure to grant permissions by providing a list of Identity and Access Management (IAM) action information for each principal listed by Amazon Resource Name (ARN).</p>
177 /// <p>To specify no permissions, omit <code>Permissions</code>.</p>
178 pub fn permissions(mut self, input: crate::types::ResourcePermission) -> Self {
179 let mut v = self.permissions.unwrap_or_default();
180 v.push(input);
181 self.permissions = ::std::option::Option::Some(v);
182 self
183 }
184 /// <p>A structure that describes the principals and the resource-level permissions on an analysis. You can use the <code>Permissions</code> structure to grant permissions by providing a list of Identity and Access Management (IAM) action information for each principal listed by Amazon Resource Name (ARN).</p>
185 /// <p>To specify no permissions, omit <code>Permissions</code>.</p>
186 pub fn set_permissions(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::ResourcePermission>>) -> Self {
187 self.permissions = input;
188 self
189 }
190 /// <p>A structure that describes the principals and the resource-level permissions on an analysis. You can use the <code>Permissions</code> structure to grant permissions by providing a list of Identity and Access Management (IAM) action information for each principal listed by Amazon Resource Name (ARN).</p>
191 /// <p>To specify no permissions, omit <code>Permissions</code>.</p>
192 pub fn get_permissions(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::ResourcePermission>> {
193 &self.permissions
194 }
195 /// <p>A source entity to use for the analysis that you're creating. This metadata structure contains details that describe a source template and one or more datasets.</p>
196 /// <p>Either a <code>SourceEntity</code> or a <code>Definition</code> must be provided in order for the request to be valid.</p>
197 pub fn source_entity(mut self, input: crate::types::AnalysisSourceEntity) -> Self {
198 self.source_entity = ::std::option::Option::Some(input);
199 self
200 }
201 /// <p>A source entity to use for the analysis that you're creating. This metadata structure contains details that describe a source template and one or more datasets.</p>
202 /// <p>Either a <code>SourceEntity</code> or a <code>Definition</code> must be provided in order for the request to be valid.</p>
203 pub fn set_source_entity(mut self, input: ::std::option::Option<crate::types::AnalysisSourceEntity>) -> Self {
204 self.source_entity = input;
205 self
206 }
207 /// <p>A source entity to use for the analysis that you're creating. This metadata structure contains details that describe a source template and one or more datasets.</p>
208 /// <p>Either a <code>SourceEntity</code> or a <code>Definition</code> must be provided in order for the request to be valid.</p>
209 pub fn get_source_entity(&self) -> &::std::option::Option<crate::types::AnalysisSourceEntity> {
210 &self.source_entity
211 }
212 /// <p>The ARN for the theme to apply to the analysis that you're creating. To see the theme in the Amazon QuickSight console, make sure that you have access to it.</p>
213 pub fn theme_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
214 self.theme_arn = ::std::option::Option::Some(input.into());
215 self
216 }
217 /// <p>The ARN for the theme to apply to the analysis that you're creating. To see the theme in the Amazon QuickSight console, make sure that you have access to it.</p>
218 pub fn set_theme_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
219 self.theme_arn = input;
220 self
221 }
222 /// <p>The ARN for the theme to apply to the analysis that you're creating. To see the theme in the Amazon QuickSight console, make sure that you have access to it.</p>
223 pub fn get_theme_arn(&self) -> &::std::option::Option<::std::string::String> {
224 &self.theme_arn
225 }
226 /// Appends an item to `tags`.
227 ///
228 /// To override the contents of this collection use [`set_tags`](Self::set_tags).
229 ///
230 /// <p>Contains a map of the key-value pairs for the resource tag or tags assigned to the analysis.</p>
231 pub fn tags(mut self, input: crate::types::Tag) -> Self {
232 let mut v = self.tags.unwrap_or_default();
233 v.push(input);
234 self.tags = ::std::option::Option::Some(v);
235 self
236 }
237 /// <p>Contains a map of the key-value pairs for the resource tag or tags assigned to the analysis.</p>
238 pub fn set_tags(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Tag>>) -> Self {
239 self.tags = input;
240 self
241 }
242 /// <p>Contains a map of the key-value pairs for the resource tag or tags assigned to the analysis.</p>
243 pub fn get_tags(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Tag>> {
244 &self.tags
245 }
246 /// <p>The definition of an analysis.</p>
247 /// <p>A definition is the data model of all features in a Dashboard, Template, or Analysis.</p>
248 /// <p>Either a <code>SourceEntity</code> or a <code>Definition</code> must be provided in order for the request to be valid.</p>
249 pub fn definition(mut self, input: crate::types::AnalysisDefinition) -> Self {
250 self.definition = ::std::option::Option::Some(input);
251 self
252 }
253 /// <p>The definition of an analysis.</p>
254 /// <p>A definition is the data model of all features in a Dashboard, Template, or Analysis.</p>
255 /// <p>Either a <code>SourceEntity</code> or a <code>Definition</code> must be provided in order for the request to be valid.</p>
256 pub fn set_definition(mut self, input: ::std::option::Option<crate::types::AnalysisDefinition>) -> Self {
257 self.definition = input;
258 self
259 }
260 /// <p>The definition of an analysis.</p>
261 /// <p>A definition is the data model of all features in a Dashboard, Template, or Analysis.</p>
262 /// <p>Either a <code>SourceEntity</code> or a <code>Definition</code> must be provided in order for the request to be valid.</p>
263 pub fn get_definition(&self) -> &::std::option::Option<crate::types::AnalysisDefinition> {
264 &self.definition
265 }
266 /// <p>The option to relax the validation needed to create an analysis with definition objects. This skips the validation step for specific errors.</p>
267 pub fn validation_strategy(mut self, input: crate::types::ValidationStrategy) -> Self {
268 self.validation_strategy = ::std::option::Option::Some(input);
269 self
270 }
271 /// <p>The option to relax the validation needed to create an analysis with definition objects. This skips the validation step for specific errors.</p>
272 pub fn set_validation_strategy(mut self, input: ::std::option::Option<crate::types::ValidationStrategy>) -> Self {
273 self.validation_strategy = input;
274 self
275 }
276 /// <p>The option to relax the validation needed to create an analysis with definition objects. This skips the validation step for specific errors.</p>
277 pub fn get_validation_strategy(&self) -> &::std::option::Option<crate::types::ValidationStrategy> {
278 &self.validation_strategy
279 }
280 /// Appends an item to `folder_arns`.
281 ///
282 /// To override the contents of this collection use [`set_folder_arns`](Self::set_folder_arns).
283 ///
284 /// <p>When you create the analysis, Amazon QuickSight adds the analysis to these folders.</p>
285 pub fn folder_arns(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
286 let mut v = self.folder_arns.unwrap_or_default();
287 v.push(input.into());
288 self.folder_arns = ::std::option::Option::Some(v);
289 self
290 }
291 /// <p>When you create the analysis, Amazon QuickSight adds the analysis to these folders.</p>
292 pub fn set_folder_arns(mut self, input: ::std::option::Option<::std::vec::Vec<::std::string::String>>) -> Self {
293 self.folder_arns = input;
294 self
295 }
296 /// <p>When you create the analysis, Amazon QuickSight adds the analysis to these folders.</p>
297 pub fn get_folder_arns(&self) -> &::std::option::Option<::std::vec::Vec<::std::string::String>> {
298 &self.folder_arns
299 }
300 /// Consumes the builder and constructs a [`CreateAnalysisInput`](crate::operation::create_analysis::CreateAnalysisInput).
301 pub fn build(
302 self,
303 ) -> ::std::result::Result<crate::operation::create_analysis::CreateAnalysisInput, ::aws_smithy_types::error::operation::BuildError> {
304 ::std::result::Result::Ok(crate::operation::create_analysis::CreateAnalysisInput {
305 aws_account_id: self.aws_account_id,
306 analysis_id: self.analysis_id,
307 name: self.name,
308 parameters: self.parameters,
309 permissions: self.permissions,
310 source_entity: self.source_entity,
311 theme_arn: self.theme_arn,
312 tags: self.tags,
313 definition: self.definition,
314 validation_strategy: self.validation_strategy,
315 folder_arns: self.folder_arns,
316 })
317 }
318}