// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`CreateFlow`](crate::operation::create_flow::builders::CreateFlowFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`flow_name(impl ::std::convert::Into<String>)`](crate::operation::create_flow::builders::CreateFlowFluentBuilder::flow_name) / [`set_flow_name(Option<String>)`](crate::operation::create_flow::builders::CreateFlowFluentBuilder::set_flow_name): <p> The specified name of the flow. Spaces are not allowed. Use underscores (_) or hyphens (-) only. </p>
/// - [`description(impl ::std::convert::Into<String>)`](crate::operation::create_flow::builders::CreateFlowFluentBuilder::description) / [`set_description(Option<String>)`](crate::operation::create_flow::builders::CreateFlowFluentBuilder::set_description): <p> A description of the flow you want to create. </p>
/// - [`kms_arn(impl ::std::convert::Into<String>)`](crate::operation::create_flow::builders::CreateFlowFluentBuilder::kms_arn) / [`set_kms_arn(Option<String>)`](crate::operation::create_flow::builders::CreateFlowFluentBuilder::set_kms_arn): <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>
/// - [`trigger_config(TriggerConfig)`](crate::operation::create_flow::builders::CreateFlowFluentBuilder::trigger_config) / [`set_trigger_config(Option<TriggerConfig>)`](crate::operation::create_flow::builders::CreateFlowFluentBuilder::set_trigger_config): <p> The trigger settings that determine how and when the flow runs. </p>
/// - [`source_flow_config(SourceFlowConfig)`](crate::operation::create_flow::builders::CreateFlowFluentBuilder::source_flow_config) / [`set_source_flow_config(Option<SourceFlowConfig>)`](crate::operation::create_flow::builders::CreateFlowFluentBuilder::set_source_flow_config): <p> The configuration that controls how Amazon AppFlow retrieves data from the source connector. </p>
/// - [`destination_flow_config_list(Vec<DestinationFlowConfig>)`](crate::operation::create_flow::builders::CreateFlowFluentBuilder::destination_flow_config_list) / [`set_destination_flow_config_list(Option<Vec<DestinationFlowConfig>>)`](crate::operation::create_flow::builders::CreateFlowFluentBuilder::set_destination_flow_config_list): <p> The configuration that controls how Amazon AppFlow places data in the destination connector. </p>
/// - [`tasks(Vec<Task>)`](crate::operation::create_flow::builders::CreateFlowFluentBuilder::tasks) / [`set_tasks(Option<Vec<Task>>)`](crate::operation::create_flow::builders::CreateFlowFluentBuilder::set_tasks): <p> A list of tasks that Amazon AppFlow performs while transferring the data in the flow run. </p>
/// - [`tags(HashMap<String, String>)`](crate::operation::create_flow::builders::CreateFlowFluentBuilder::tags) / [`set_tags(Option<HashMap<String, String>>)`](crate::operation::create_flow::builders::CreateFlowFluentBuilder::set_tags): <p> The tags used to organize, track, or control access for your flow. </p>
/// - [`metadata_catalog_config(MetadataCatalogConfig)`](crate::operation::create_flow::builders::CreateFlowFluentBuilder::metadata_catalog_config) / [`set_metadata_catalog_config(Option<MetadataCatalogConfig>)`](crate::operation::create_flow::builders::CreateFlowFluentBuilder::set_metadata_catalog_config): <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>
/// - [`client_token(impl ::std::convert::Into<String>)`](crate::operation::create_flow::builders::CreateFlowFluentBuilder::client_token) / [`set_client_token(Option<String>)`](crate::operation::create_flow::builders::CreateFlowFluentBuilder::set_client_token): <p>The <code>clientToken</code> parameter is an idempotency token. It ensures that your <code>CreateFlow</code> request completes only once. You choose the value to pass. For example, if you don't receive a response from your request, you can safely retry the request with the same <code>clientToken</code> parameter value.</p> <p>If you omit a <code>clientToken</code> value, the Amazon Web Services SDK that you are using inserts a value for you. This way, the SDK can safely retry requests multiple times after a network error. You must provide your own value for other use cases.</p> <p>If you specify input parameters that differ from your first request, an error occurs. If you use a different value for <code>clientToken</code>, Amazon AppFlow considers it a new call to <code>CreateFlow</code>. The token is active for 8 hours.</p>
/// - On success, responds with [`CreateFlowOutput`](crate::operation::create_flow::CreateFlowOutput) with field(s):
/// - [`flow_arn(Option<String>)`](crate::operation::create_flow::CreateFlowOutput::flow_arn): <p> The flow's Amazon Resource Name (ARN). </p>
/// - [`flow_status(Option<FlowStatus>)`](crate::operation::create_flow::CreateFlowOutput::flow_status): <p> Indicates the current status of the flow. </p>
/// - On failure, responds with [`SdkError<CreateFlowError>`](crate::operation::create_flow::CreateFlowError)
pub fn create_flow(&self) -> crate::operation::create_flow::builders::CreateFlowFluentBuilder {
crate::operation::create_flow::builders::CreateFlowFluentBuilder::new(self.handle.clone())
}
}