aws_sdk_appflow/operation/describe_flow/
_describe_flow_output.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 DescribeFlowOutput {
6    /// <p>The flow's Amazon Resource Name (ARN).</p>
7    pub flow_arn: ::std::option::Option<::std::string::String>,
8    /// <p>A description of the flow.</p>
9    pub description: ::std::option::Option<::std::string::String>,
10    /// <p>The specified name of the flow. Spaces are not allowed. Use underscores (_) or hyphens (-) only.</p>
11    pub flow_name: ::std::option::Option<::std::string::String>,
12    /// <p>The ARN (Amazon Resource Name) of the Key Management Service (KMS) key you provide for encryption. This is required if you do not want to use the Amazon AppFlow-managed KMS key. If you don't provide anything here, Amazon AppFlow uses the Amazon AppFlow-managed KMS key.</p>
13    pub kms_arn: ::std::option::Option<::std::string::String>,
14    /// <p>Indicates the current status of the flow.</p>
15    pub flow_status: ::std::option::Option<crate::types::FlowStatus>,
16    /// <p>Contains an error message if the flow status is in a suspended or error state. This applies only to scheduled or event-triggered flows.</p>
17    pub flow_status_message: ::std::option::Option<::std::string::String>,
18    /// <p>The configuration that controls how Amazon AppFlow retrieves data from the source connector.</p>
19    pub source_flow_config: ::std::option::Option<crate::types::SourceFlowConfig>,
20    /// <p>The configuration that controls how Amazon AppFlow transfers data to the destination connector.</p>
21    pub destination_flow_config_list: ::std::option::Option<::std::vec::Vec<crate::types::DestinationFlowConfig>>,
22    /// <p>Describes the details of the most recent flow run.</p>
23    pub last_run_execution_details: ::std::option::Option<crate::types::ExecutionDetails>,
24    /// <p>The trigger settings that determine how and when the flow runs.</p>
25    pub trigger_config: ::std::option::Option<crate::types::TriggerConfig>,
26    /// <p>A list of tasks that Amazon AppFlow performs while transferring the data in the flow run.</p>
27    pub tasks: ::std::option::Option<::std::vec::Vec<crate::types::Task>>,
28    /// <p>Specifies when the flow was created.</p>
29    pub created_at: ::std::option::Option<::aws_smithy_types::DateTime>,
30    /// <p>Specifies when the flow was last updated.</p>
31    pub last_updated_at: ::std::option::Option<::aws_smithy_types::DateTime>,
32    /// <p>The ARN of the user who created the flow.</p>
33    pub created_by: ::std::option::Option<::std::string::String>,
34    /// <p>Specifies the user name of the account that performed the most recent update.</p>
35    pub last_updated_by: ::std::option::Option<::std::string::String>,
36    /// <p>The tags used to organize, track, or control access for your flow.</p>
37    pub tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
38    /// <p>Specifies the configuration that Amazon AppFlow uses when it catalogs the data that's transferred by the associated flow. When Amazon AppFlow catalogs the data from a flow, it stores metadata in a data catalog.</p>
39    pub metadata_catalog_config: ::std::option::Option<crate::types::MetadataCatalogConfig>,
40    /// <p>Describes the metadata catalog, metadata table, and data partitions that Amazon AppFlow used for the associated flow run.</p>
41    pub last_run_metadata_catalog_details: ::std::option::Option<::std::vec::Vec<crate::types::MetadataCatalogDetail>>,
42    /// <p>The version number of your data schema. Amazon AppFlow assigns this version number. The version number increases by one when you change any of the following settings in your flow configuration:</p>
43    /// <ul>
44    /// <li>
45    /// <p>Source-to-destination field mappings</p></li>
46    /// <li>
47    /// <p>Field data types</p></li>
48    /// <li>
49    /// <p>Partition keys</p></li>
50    /// </ul>
51    pub schema_version: ::std::option::Option<i64>,
52    _request_id: Option<String>,
53}
54impl DescribeFlowOutput {
55    /// <p>The flow's Amazon Resource Name (ARN).</p>
56    pub fn flow_arn(&self) -> ::std::option::Option<&str> {
57        self.flow_arn.as_deref()
58    }
59    /// <p>A description of the flow.</p>
60    pub fn description(&self) -> ::std::option::Option<&str> {
61        self.description.as_deref()
62    }
63    /// <p>The specified name of the flow. Spaces are not allowed. Use underscores (_) or hyphens (-) only.</p>
64    pub fn flow_name(&self) -> ::std::option::Option<&str> {
65        self.flow_name.as_deref()
66    }
67    /// <p>The ARN (Amazon Resource Name) of the Key Management Service (KMS) key you provide for encryption. This is required if you do not want to use the Amazon AppFlow-managed KMS key. If you don't provide anything here, Amazon AppFlow uses the Amazon AppFlow-managed KMS key.</p>
68    pub fn kms_arn(&self) -> ::std::option::Option<&str> {
69        self.kms_arn.as_deref()
70    }
71    /// <p>Indicates the current status of the flow.</p>
72    pub fn flow_status(&self) -> ::std::option::Option<&crate::types::FlowStatus> {
73        self.flow_status.as_ref()
74    }
75    /// <p>Contains an error message if the flow status is in a suspended or error state. This applies only to scheduled or event-triggered flows.</p>
76    pub fn flow_status_message(&self) -> ::std::option::Option<&str> {
77        self.flow_status_message.as_deref()
78    }
79    /// <p>The configuration that controls how Amazon AppFlow retrieves data from the source connector.</p>
80    pub fn source_flow_config(&self) -> ::std::option::Option<&crate::types::SourceFlowConfig> {
81        self.source_flow_config.as_ref()
82    }
83    /// <p>The configuration that controls how Amazon AppFlow transfers data to the destination connector.</p>
84    ///
85    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.destination_flow_config_list.is_none()`.
86    pub fn destination_flow_config_list(&self) -> &[crate::types::DestinationFlowConfig] {
87        self.destination_flow_config_list.as_deref().unwrap_or_default()
88    }
89    /// <p>Describes the details of the most recent flow run.</p>
90    pub fn last_run_execution_details(&self) -> ::std::option::Option<&crate::types::ExecutionDetails> {
91        self.last_run_execution_details.as_ref()
92    }
93    /// <p>The trigger settings that determine how and when the flow runs.</p>
94    pub fn trigger_config(&self) -> ::std::option::Option<&crate::types::TriggerConfig> {
95        self.trigger_config.as_ref()
96    }
97    /// <p>A list of tasks that Amazon AppFlow performs while transferring the data in the flow run.</p>
98    ///
99    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.tasks.is_none()`.
100    pub fn tasks(&self) -> &[crate::types::Task] {
101        self.tasks.as_deref().unwrap_or_default()
102    }
103    /// <p>Specifies when the flow was created.</p>
104    pub fn created_at(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
105        self.created_at.as_ref()
106    }
107    /// <p>Specifies when the flow was last updated.</p>
108    pub fn last_updated_at(&self) -> ::std::option::Option<&::aws_smithy_types::DateTime> {
109        self.last_updated_at.as_ref()
110    }
111    /// <p>The ARN of the user who created the flow.</p>
112    pub fn created_by(&self) -> ::std::option::Option<&str> {
113        self.created_by.as_deref()
114    }
115    /// <p>Specifies the user name of the account that performed the most recent update.</p>
116    pub fn last_updated_by(&self) -> ::std::option::Option<&str> {
117        self.last_updated_by.as_deref()
118    }
119    /// <p>The tags used to organize, track, or control access for your flow.</p>
120    pub fn tags(&self) -> ::std::option::Option<&::std::collections::HashMap<::std::string::String, ::std::string::String>> {
121        self.tags.as_ref()
122    }
123    /// <p>Specifies the configuration that Amazon AppFlow uses when it catalogs the data that's transferred by the associated flow. When Amazon AppFlow catalogs the data from a flow, it stores metadata in a data catalog.</p>
124    pub fn metadata_catalog_config(&self) -> ::std::option::Option<&crate::types::MetadataCatalogConfig> {
125        self.metadata_catalog_config.as_ref()
126    }
127    /// <p>Describes the metadata catalog, metadata table, and data partitions that Amazon AppFlow used for the associated flow run.</p>
128    ///
129    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.last_run_metadata_catalog_details.is_none()`.
130    pub fn last_run_metadata_catalog_details(&self) -> &[crate::types::MetadataCatalogDetail] {
131        self.last_run_metadata_catalog_details.as_deref().unwrap_or_default()
132    }
133    /// <p>The version number of your data schema. Amazon AppFlow assigns this version number. The version number increases by one when you change any of the following settings in your flow configuration:</p>
134    /// <ul>
135    /// <li>
136    /// <p>Source-to-destination field mappings</p></li>
137    /// <li>
138    /// <p>Field data types</p></li>
139    /// <li>
140    /// <p>Partition keys</p></li>
141    /// </ul>
142    pub fn schema_version(&self) -> ::std::option::Option<i64> {
143        self.schema_version
144    }
145}
146impl ::aws_types::request_id::RequestId for DescribeFlowOutput {
147    fn request_id(&self) -> Option<&str> {
148        self._request_id.as_deref()
149    }
150}
151impl DescribeFlowOutput {
152    /// Creates a new builder-style object to manufacture [`DescribeFlowOutput`](crate::operation::describe_flow::DescribeFlowOutput).
153    pub fn builder() -> crate::operation::describe_flow::builders::DescribeFlowOutputBuilder {
154        crate::operation::describe_flow::builders::DescribeFlowOutputBuilder::default()
155    }
156}
157
158/// A builder for [`DescribeFlowOutput`](crate::operation::describe_flow::DescribeFlowOutput).
159#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
160#[non_exhaustive]
161pub struct DescribeFlowOutputBuilder {
162    pub(crate) flow_arn: ::std::option::Option<::std::string::String>,
163    pub(crate) description: ::std::option::Option<::std::string::String>,
164    pub(crate) flow_name: ::std::option::Option<::std::string::String>,
165    pub(crate) kms_arn: ::std::option::Option<::std::string::String>,
166    pub(crate) flow_status: ::std::option::Option<crate::types::FlowStatus>,
167    pub(crate) flow_status_message: ::std::option::Option<::std::string::String>,
168    pub(crate) source_flow_config: ::std::option::Option<crate::types::SourceFlowConfig>,
169    pub(crate) destination_flow_config_list: ::std::option::Option<::std::vec::Vec<crate::types::DestinationFlowConfig>>,
170    pub(crate) last_run_execution_details: ::std::option::Option<crate::types::ExecutionDetails>,
171    pub(crate) trigger_config: ::std::option::Option<crate::types::TriggerConfig>,
172    pub(crate) tasks: ::std::option::Option<::std::vec::Vec<crate::types::Task>>,
173    pub(crate) created_at: ::std::option::Option<::aws_smithy_types::DateTime>,
174    pub(crate) last_updated_at: ::std::option::Option<::aws_smithy_types::DateTime>,
175    pub(crate) created_by: ::std::option::Option<::std::string::String>,
176    pub(crate) last_updated_by: ::std::option::Option<::std::string::String>,
177    pub(crate) tags: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>,
178    pub(crate) metadata_catalog_config: ::std::option::Option<crate::types::MetadataCatalogConfig>,
179    pub(crate) last_run_metadata_catalog_details: ::std::option::Option<::std::vec::Vec<crate::types::MetadataCatalogDetail>>,
180    pub(crate) schema_version: ::std::option::Option<i64>,
181    _request_id: Option<String>,
182}
183impl DescribeFlowOutputBuilder {
184    /// <p>The flow's Amazon Resource Name (ARN).</p>
185    pub fn flow_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
186        self.flow_arn = ::std::option::Option::Some(input.into());
187        self
188    }
189    /// <p>The flow's Amazon Resource Name (ARN).</p>
190    pub fn set_flow_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
191        self.flow_arn = input;
192        self
193    }
194    /// <p>The flow's Amazon Resource Name (ARN).</p>
195    pub fn get_flow_arn(&self) -> &::std::option::Option<::std::string::String> {
196        &self.flow_arn
197    }
198    /// <p>A description of the flow.</p>
199    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
200        self.description = ::std::option::Option::Some(input.into());
201        self
202    }
203    /// <p>A description of the flow.</p>
204    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
205        self.description = input;
206        self
207    }
208    /// <p>A description of the flow.</p>
209    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
210        &self.description
211    }
212    /// <p>The specified name of the flow. Spaces are not allowed. Use underscores (_) or hyphens (-) only.</p>
213    pub fn flow_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
214        self.flow_name = ::std::option::Option::Some(input.into());
215        self
216    }
217    /// <p>The specified name of the flow. Spaces are not allowed. Use underscores (_) or hyphens (-) only.</p>
218    pub fn set_flow_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
219        self.flow_name = input;
220        self
221    }
222    /// <p>The specified name of the flow. Spaces are not allowed. Use underscores (_) or hyphens (-) only.</p>
223    pub fn get_flow_name(&self) -> &::std::option::Option<::std::string::String> {
224        &self.flow_name
225    }
226    /// <p>The ARN (Amazon Resource Name) of the Key Management Service (KMS) key you provide for encryption. This is required if you do not want to use the Amazon AppFlow-managed KMS key. If you don't provide anything here, Amazon AppFlow uses the Amazon AppFlow-managed KMS key.</p>
227    pub fn kms_arn(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
228        self.kms_arn = ::std::option::Option::Some(input.into());
229        self
230    }
231    /// <p>The ARN (Amazon Resource Name) of the Key Management Service (KMS) key you provide for encryption. This is required if you do not want to use the Amazon AppFlow-managed KMS key. If you don't provide anything here, Amazon AppFlow uses the Amazon AppFlow-managed KMS key.</p>
232    pub fn set_kms_arn(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
233        self.kms_arn = input;
234        self
235    }
236    /// <p>The ARN (Amazon Resource Name) of the Key Management Service (KMS) key you provide for encryption. This is required if you do not want to use the Amazon AppFlow-managed KMS key. If you don't provide anything here, Amazon AppFlow uses the Amazon AppFlow-managed KMS key.</p>
237    pub fn get_kms_arn(&self) -> &::std::option::Option<::std::string::String> {
238        &self.kms_arn
239    }
240    /// <p>Indicates the current status of the flow.</p>
241    pub fn flow_status(mut self, input: crate::types::FlowStatus) -> Self {
242        self.flow_status = ::std::option::Option::Some(input);
243        self
244    }
245    /// <p>Indicates the current status of the flow.</p>
246    pub fn set_flow_status(mut self, input: ::std::option::Option<crate::types::FlowStatus>) -> Self {
247        self.flow_status = input;
248        self
249    }
250    /// <p>Indicates the current status of the flow.</p>
251    pub fn get_flow_status(&self) -> &::std::option::Option<crate::types::FlowStatus> {
252        &self.flow_status
253    }
254    /// <p>Contains an error message if the flow status is in a suspended or error state. This applies only to scheduled or event-triggered flows.</p>
255    pub fn flow_status_message(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
256        self.flow_status_message = ::std::option::Option::Some(input.into());
257        self
258    }
259    /// <p>Contains an error message if the flow status is in a suspended or error state. This applies only to scheduled or event-triggered flows.</p>
260    pub fn set_flow_status_message(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
261        self.flow_status_message = input;
262        self
263    }
264    /// <p>Contains an error message if the flow status is in a suspended or error state. This applies only to scheduled or event-triggered flows.</p>
265    pub fn get_flow_status_message(&self) -> &::std::option::Option<::std::string::String> {
266        &self.flow_status_message
267    }
268    /// <p>The configuration that controls how Amazon AppFlow retrieves data from the source connector.</p>
269    pub fn source_flow_config(mut self, input: crate::types::SourceFlowConfig) -> Self {
270        self.source_flow_config = ::std::option::Option::Some(input);
271        self
272    }
273    /// <p>The configuration that controls how Amazon AppFlow retrieves data from the source connector.</p>
274    pub fn set_source_flow_config(mut self, input: ::std::option::Option<crate::types::SourceFlowConfig>) -> Self {
275        self.source_flow_config = input;
276        self
277    }
278    /// <p>The configuration that controls how Amazon AppFlow retrieves data from the source connector.</p>
279    pub fn get_source_flow_config(&self) -> &::std::option::Option<crate::types::SourceFlowConfig> {
280        &self.source_flow_config
281    }
282    /// Appends an item to `destination_flow_config_list`.
283    ///
284    /// To override the contents of this collection use [`set_destination_flow_config_list`](Self::set_destination_flow_config_list).
285    ///
286    /// <p>The configuration that controls how Amazon AppFlow transfers data to the destination connector.</p>
287    pub fn destination_flow_config_list(mut self, input: crate::types::DestinationFlowConfig) -> Self {
288        let mut v = self.destination_flow_config_list.unwrap_or_default();
289        v.push(input);
290        self.destination_flow_config_list = ::std::option::Option::Some(v);
291        self
292    }
293    /// <p>The configuration that controls how Amazon AppFlow transfers data to the destination connector.</p>
294    pub fn set_destination_flow_config_list(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::DestinationFlowConfig>>) -> Self {
295        self.destination_flow_config_list = input;
296        self
297    }
298    /// <p>The configuration that controls how Amazon AppFlow transfers data to the destination connector.</p>
299    pub fn get_destination_flow_config_list(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::DestinationFlowConfig>> {
300        &self.destination_flow_config_list
301    }
302    /// <p>Describes the details of the most recent flow run.</p>
303    pub fn last_run_execution_details(mut self, input: crate::types::ExecutionDetails) -> Self {
304        self.last_run_execution_details = ::std::option::Option::Some(input);
305        self
306    }
307    /// <p>Describes the details of the most recent flow run.</p>
308    pub fn set_last_run_execution_details(mut self, input: ::std::option::Option<crate::types::ExecutionDetails>) -> Self {
309        self.last_run_execution_details = input;
310        self
311    }
312    /// <p>Describes the details of the most recent flow run.</p>
313    pub fn get_last_run_execution_details(&self) -> &::std::option::Option<crate::types::ExecutionDetails> {
314        &self.last_run_execution_details
315    }
316    /// <p>The trigger settings that determine how and when the flow runs.</p>
317    pub fn trigger_config(mut self, input: crate::types::TriggerConfig) -> Self {
318        self.trigger_config = ::std::option::Option::Some(input);
319        self
320    }
321    /// <p>The trigger settings that determine how and when the flow runs.</p>
322    pub fn set_trigger_config(mut self, input: ::std::option::Option<crate::types::TriggerConfig>) -> Self {
323        self.trigger_config = input;
324        self
325    }
326    /// <p>The trigger settings that determine how and when the flow runs.</p>
327    pub fn get_trigger_config(&self) -> &::std::option::Option<crate::types::TriggerConfig> {
328        &self.trigger_config
329    }
330    /// Appends an item to `tasks`.
331    ///
332    /// To override the contents of this collection use [`set_tasks`](Self::set_tasks).
333    ///
334    /// <p>A list of tasks that Amazon AppFlow performs while transferring the data in the flow run.</p>
335    pub fn tasks(mut self, input: crate::types::Task) -> Self {
336        let mut v = self.tasks.unwrap_or_default();
337        v.push(input);
338        self.tasks = ::std::option::Option::Some(v);
339        self
340    }
341    /// <p>A list of tasks that Amazon AppFlow performs while transferring the data in the flow run.</p>
342    pub fn set_tasks(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::Task>>) -> Self {
343        self.tasks = input;
344        self
345    }
346    /// <p>A list of tasks that Amazon AppFlow performs while transferring the data in the flow run.</p>
347    pub fn get_tasks(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::Task>> {
348        &self.tasks
349    }
350    /// <p>Specifies when the flow was created.</p>
351    pub fn created_at(mut self, input: ::aws_smithy_types::DateTime) -> Self {
352        self.created_at = ::std::option::Option::Some(input);
353        self
354    }
355    /// <p>Specifies when the flow was created.</p>
356    pub fn set_created_at(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
357        self.created_at = input;
358        self
359    }
360    /// <p>Specifies when the flow was created.</p>
361    pub fn get_created_at(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
362        &self.created_at
363    }
364    /// <p>Specifies when the flow was last updated.</p>
365    pub fn last_updated_at(mut self, input: ::aws_smithy_types::DateTime) -> Self {
366        self.last_updated_at = ::std::option::Option::Some(input);
367        self
368    }
369    /// <p>Specifies when the flow was last updated.</p>
370    pub fn set_last_updated_at(mut self, input: ::std::option::Option<::aws_smithy_types::DateTime>) -> Self {
371        self.last_updated_at = input;
372        self
373    }
374    /// <p>Specifies when the flow was last updated.</p>
375    pub fn get_last_updated_at(&self) -> &::std::option::Option<::aws_smithy_types::DateTime> {
376        &self.last_updated_at
377    }
378    /// <p>The ARN of the user who created the flow.</p>
379    pub fn created_by(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
380        self.created_by = ::std::option::Option::Some(input.into());
381        self
382    }
383    /// <p>The ARN of the user who created the flow.</p>
384    pub fn set_created_by(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
385        self.created_by = input;
386        self
387    }
388    /// <p>The ARN of the user who created the flow.</p>
389    pub fn get_created_by(&self) -> &::std::option::Option<::std::string::String> {
390        &self.created_by
391    }
392    /// <p>Specifies the user name of the account that performed the most recent update.</p>
393    pub fn last_updated_by(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
394        self.last_updated_by = ::std::option::Option::Some(input.into());
395        self
396    }
397    /// <p>Specifies the user name of the account that performed the most recent update.</p>
398    pub fn set_last_updated_by(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
399        self.last_updated_by = input;
400        self
401    }
402    /// <p>Specifies the user name of the account that performed the most recent update.</p>
403    pub fn get_last_updated_by(&self) -> &::std::option::Option<::std::string::String> {
404        &self.last_updated_by
405    }
406    /// Adds a key-value pair to `tags`.
407    ///
408    /// To override the contents of this collection use [`set_tags`](Self::set_tags).
409    ///
410    /// <p>The tags used to organize, track, or control access for your flow.</p>
411    pub fn tags(mut self, k: impl ::std::convert::Into<::std::string::String>, v: impl ::std::convert::Into<::std::string::String>) -> Self {
412        let mut hash_map = self.tags.unwrap_or_default();
413        hash_map.insert(k.into(), v.into());
414        self.tags = ::std::option::Option::Some(hash_map);
415        self
416    }
417    /// <p>The tags used to organize, track, or control access for your flow.</p>
418    pub fn set_tags(mut self, input: ::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>>) -> Self {
419        self.tags = input;
420        self
421    }
422    /// <p>The tags used to organize, track, or control access for your flow.</p>
423    pub fn get_tags(&self) -> &::std::option::Option<::std::collections::HashMap<::std::string::String, ::std::string::String>> {
424        &self.tags
425    }
426    /// <p>Specifies the configuration that Amazon AppFlow uses when it catalogs the data that's transferred by the associated flow. When Amazon AppFlow catalogs the data from a flow, it stores metadata in a data catalog.</p>
427    pub fn metadata_catalog_config(mut self, input: crate::types::MetadataCatalogConfig) -> Self {
428        self.metadata_catalog_config = ::std::option::Option::Some(input);
429        self
430    }
431    /// <p>Specifies the configuration that Amazon AppFlow uses when it catalogs the data that's transferred by the associated flow. When Amazon AppFlow catalogs the data from a flow, it stores metadata in a data catalog.</p>
432    pub fn set_metadata_catalog_config(mut self, input: ::std::option::Option<crate::types::MetadataCatalogConfig>) -> Self {
433        self.metadata_catalog_config = input;
434        self
435    }
436    /// <p>Specifies the configuration that Amazon AppFlow uses when it catalogs the data that's transferred by the associated flow. When Amazon AppFlow catalogs the data from a flow, it stores metadata in a data catalog.</p>
437    pub fn get_metadata_catalog_config(&self) -> &::std::option::Option<crate::types::MetadataCatalogConfig> {
438        &self.metadata_catalog_config
439    }
440    /// Appends an item to `last_run_metadata_catalog_details`.
441    ///
442    /// To override the contents of this collection use [`set_last_run_metadata_catalog_details`](Self::set_last_run_metadata_catalog_details).
443    ///
444    /// <p>Describes the metadata catalog, metadata table, and data partitions that Amazon AppFlow used for the associated flow run.</p>
445    pub fn last_run_metadata_catalog_details(mut self, input: crate::types::MetadataCatalogDetail) -> Self {
446        let mut v = self.last_run_metadata_catalog_details.unwrap_or_default();
447        v.push(input);
448        self.last_run_metadata_catalog_details = ::std::option::Option::Some(v);
449        self
450    }
451    /// <p>Describes the metadata catalog, metadata table, and data partitions that Amazon AppFlow used for the associated flow run.</p>
452    pub fn set_last_run_metadata_catalog_details(
453        mut self,
454        input: ::std::option::Option<::std::vec::Vec<crate::types::MetadataCatalogDetail>>,
455    ) -> Self {
456        self.last_run_metadata_catalog_details = input;
457        self
458    }
459    /// <p>Describes the metadata catalog, metadata table, and data partitions that Amazon AppFlow used for the associated flow run.</p>
460    pub fn get_last_run_metadata_catalog_details(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::MetadataCatalogDetail>> {
461        &self.last_run_metadata_catalog_details
462    }
463    /// <p>The version number of your data schema. Amazon AppFlow assigns this version number. The version number increases by one when you change any of the following settings in your flow configuration:</p>
464    /// <ul>
465    /// <li>
466    /// <p>Source-to-destination field mappings</p></li>
467    /// <li>
468    /// <p>Field data types</p></li>
469    /// <li>
470    /// <p>Partition keys</p></li>
471    /// </ul>
472    pub fn schema_version(mut self, input: i64) -> Self {
473        self.schema_version = ::std::option::Option::Some(input);
474        self
475    }
476    /// <p>The version number of your data schema. Amazon AppFlow assigns this version number. The version number increases by one when you change any of the following settings in your flow configuration:</p>
477    /// <ul>
478    /// <li>
479    /// <p>Source-to-destination field mappings</p></li>
480    /// <li>
481    /// <p>Field data types</p></li>
482    /// <li>
483    /// <p>Partition keys</p></li>
484    /// </ul>
485    pub fn set_schema_version(mut self, input: ::std::option::Option<i64>) -> Self {
486        self.schema_version = input;
487        self
488    }
489    /// <p>The version number of your data schema. Amazon AppFlow assigns this version number. The version number increases by one when you change any of the following settings in your flow configuration:</p>
490    /// <ul>
491    /// <li>
492    /// <p>Source-to-destination field mappings</p></li>
493    /// <li>
494    /// <p>Field data types</p></li>
495    /// <li>
496    /// <p>Partition keys</p></li>
497    /// </ul>
498    pub fn get_schema_version(&self) -> &::std::option::Option<i64> {
499        &self.schema_version
500    }
501    pub(crate) fn _request_id(mut self, request_id: impl Into<String>) -> Self {
502        self._request_id = Some(request_id.into());
503        self
504    }
505
506    pub(crate) fn _set_request_id(&mut self, request_id: Option<String>) -> &mut Self {
507        self._request_id = request_id;
508        self
509    }
510    /// Consumes the builder and constructs a [`DescribeFlowOutput`](crate::operation::describe_flow::DescribeFlowOutput).
511    pub fn build(self) -> crate::operation::describe_flow::DescribeFlowOutput {
512        crate::operation::describe_flow::DescribeFlowOutput {
513            flow_arn: self.flow_arn,
514            description: self.description,
515            flow_name: self.flow_name,
516            kms_arn: self.kms_arn,
517            flow_status: self.flow_status,
518            flow_status_message: self.flow_status_message,
519            source_flow_config: self.source_flow_config,
520            destination_flow_config_list: self.destination_flow_config_list,
521            last_run_execution_details: self.last_run_execution_details,
522            trigger_config: self.trigger_config,
523            tasks: self.tasks,
524            created_at: self.created_at,
525            last_updated_at: self.last_updated_at,
526            created_by: self.created_by,
527            last_updated_by: self.last_updated_by,
528            tags: self.tags,
529            metadata_catalog_config: self.metadata_catalog_config,
530            last_run_metadata_catalog_details: self.last_run_metadata_catalog_details,
531            schema_version: self.schema_version,
532            _request_id: self._request_id,
533        }
534    }
535}