// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`CreateApplication`](crate::operation::create_application::builders::CreateApplicationFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`name(impl ::std::convert::Into<String>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::name) / [`set_name(Option<String>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::set_name): <p>The name of the application.</p>
/// - [`release_label(impl ::std::convert::Into<String>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::release_label) / [`set_release_label(Option<String>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::set_release_label): <p>The EMR release associated with the application.</p>
/// - [`r#type(impl ::std::convert::Into<String>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::type) / [`set_type(Option<String>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::set_type): <p>The type of application you want to start, such as Spark or Hive.</p>
/// - [`client_token(impl ::std::convert::Into<String>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::client_token) / [`set_client_token(Option<String>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::set_client_token): <p>The client idempotency token of the application to create. Its value must be unique for each request.</p>
/// - [`initial_capacity(HashMap<String, InitialCapacityConfig>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::initial_capacity) / [`set_initial_capacity(Option<HashMap<String, InitialCapacityConfig>>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::set_initial_capacity): <p>The capacity to initialize when the application is created.</p>
/// - [`maximum_capacity(MaximumAllowedResources)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::maximum_capacity) / [`set_maximum_capacity(Option<MaximumAllowedResources>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::set_maximum_capacity): <p>The maximum capacity to allocate when the application is created. This is cumulative across all workers at any given point in time, not just when an application is created. No new resources will be created once any one of the defined limits is hit.</p>
/// - [`tags(HashMap<String, String>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::tags) / [`set_tags(Option<HashMap<String, String>>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::set_tags): <p>The tags assigned to the application.</p>
/// - [`auto_start_configuration(AutoStartConfig)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::auto_start_configuration) / [`set_auto_start_configuration(Option<AutoStartConfig>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::set_auto_start_configuration): <p>The configuration for an application to automatically start on job submission.</p>
/// - [`auto_stop_configuration(AutoStopConfig)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::auto_stop_configuration) / [`set_auto_stop_configuration(Option<AutoStopConfig>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::set_auto_stop_configuration): <p>The configuration for an application to automatically stop after a certain amount of time being idle.</p>
/// - [`network_configuration(NetworkConfiguration)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::network_configuration) / [`set_network_configuration(Option<NetworkConfiguration>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::set_network_configuration): <p>The network configuration for customer VPC connectivity.</p>
/// - [`architecture(Architecture)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::architecture) / [`set_architecture(Option<Architecture>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::set_architecture): <p>The CPU architecture of an application.</p>
/// - [`image_configuration(ImageConfigurationInput)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::image_configuration) / [`set_image_configuration(Option<ImageConfigurationInput>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::set_image_configuration): <p>The image configuration for all worker types. You can either set this parameter or <code>imageConfiguration</code> for each worker type in <code>workerTypeSpecifications</code>.</p>
/// - [`worker_type_specifications(HashMap<String, WorkerTypeSpecificationInput>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::worker_type_specifications) / [`set_worker_type_specifications(Option<HashMap<String, WorkerTypeSpecificationInput>>)`](crate::operation::create_application::builders::CreateApplicationFluentBuilder::set_worker_type_specifications): <p>The key-value pairs that specify worker type to <code>WorkerTypeSpecificationInput</code>. This parameter must contain all valid worker types for a Spark or Hive application. Valid worker types include <code>Driver</code> and <code>Executor</code> for Spark applications and <code>HiveDriver</code> and <code>TezTask</code> for Hive applications. You can either set image details in this parameter for each worker type, or in <code>imageConfiguration</code> for all worker types.</p>
/// - On success, responds with [`CreateApplicationOutput`](crate::operation::create_application::CreateApplicationOutput) with field(s):
/// - [`application_id(Option<String>)`](crate::operation::create_application::CreateApplicationOutput::application_id): <p>The output contains the application ID.</p>
/// - [`name(Option<String>)`](crate::operation::create_application::CreateApplicationOutput::name): <p>The output contains the name of the application.</p>
/// - [`arn(Option<String>)`](crate::operation::create_application::CreateApplicationOutput::arn): <p>The output contains the ARN of the application.</p>
/// - On failure, responds with [`SdkError<CreateApplicationError>`](crate::operation::create_application::CreateApplicationError)
pub fn create_application(
&self,
) -> crate::operation::create_application::builders::CreateApplicationFluentBuilder {
crate::operation::create_application::builders::CreateApplicationFluentBuilder::new(
self.handle.clone(),
)
}
}