// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`CreateConfigurationTemplate`](crate::operation::create_configuration_template::builders::CreateConfigurationTemplateFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`application_name(impl ::std::convert::Into<String>)`](crate::operation::create_configuration_template::builders::CreateConfigurationTemplateFluentBuilder::application_name) / [`set_application_name(Option<String>)`](crate::operation::create_configuration_template::builders::CreateConfigurationTemplateFluentBuilder::set_application_name): <p>The name of the Elastic Beanstalk application to associate with this configuration template.</p>
/// - [`template_name(impl ::std::convert::Into<String>)`](crate::operation::create_configuration_template::builders::CreateConfigurationTemplateFluentBuilder::template_name) / [`set_template_name(Option<String>)`](crate::operation::create_configuration_template::builders::CreateConfigurationTemplateFluentBuilder::set_template_name): <p>The name of the configuration template.</p> <p>Constraint: This name must be unique per application.</p>
/// - [`solution_stack_name(impl ::std::convert::Into<String>)`](crate::operation::create_configuration_template::builders::CreateConfigurationTemplateFluentBuilder::solution_stack_name) / [`set_solution_stack_name(Option<String>)`](crate::operation::create_configuration_template::builders::CreateConfigurationTemplateFluentBuilder::set_solution_stack_name): <p>The name of an Elastic Beanstalk solution stack (platform version) that this configuration uses. For example, <code>64bit Amazon Linux 2013.09 running Tomcat 7 Java 7</code>. A solution stack specifies the operating system, runtime, and application server for a configuration template. It also determines the set of configuration options as well as the possible and default values. For more information, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/concepts.platforms.html">Supported Platforms</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.</p> <p>You must specify <code>SolutionStackName</code> if you don't specify <code>PlatformArn</code>, <code>EnvironmentId</code>, or <code>SourceConfiguration</code>.</p> <p>Use the <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/api/API_ListAvailableSolutionStacks.html"> <code>ListAvailableSolutionStacks</code> </a> API to obtain a list of available solution stacks.</p>
/// - [`platform_arn(impl ::std::convert::Into<String>)`](crate::operation::create_configuration_template::builders::CreateConfigurationTemplateFluentBuilder::platform_arn) / [`set_platform_arn(Option<String>)`](crate::operation::create_configuration_template::builders::CreateConfigurationTemplateFluentBuilder::set_platform_arn): <p>The Amazon Resource Name (ARN) of the custom platform. For more information, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/custom-platforms.html"> Custom Platforms</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.</p> <note> <p>If you specify <code>PlatformArn</code>, then don't specify <code>SolutionStackName</code>.</p> </note>
/// - [`source_configuration(SourceConfiguration)`](crate::operation::create_configuration_template::builders::CreateConfigurationTemplateFluentBuilder::source_configuration) / [`set_source_configuration(Option<SourceConfiguration>)`](crate::operation::create_configuration_template::builders::CreateConfigurationTemplateFluentBuilder::set_source_configuration): <p>An Elastic Beanstalk configuration template to base this one on. If specified, Elastic Beanstalk uses the configuration values from the specified configuration template to create a new configuration.</p> <p>Values specified in <code>OptionSettings</code> override any values obtained from the <code>SourceConfiguration</code>.</p> <p>You must specify <code>SourceConfiguration</code> if you don't specify <code>PlatformArn</code>, <code>EnvironmentId</code>, or <code>SolutionStackName</code>.</p> <p>Constraint: If both solution stack name and source configuration are specified, the solution stack of the source configuration template must match the specified solution stack name.</p>
/// - [`environment_id(impl ::std::convert::Into<String>)`](crate::operation::create_configuration_template::builders::CreateConfigurationTemplateFluentBuilder::environment_id) / [`set_environment_id(Option<String>)`](crate::operation::create_configuration_template::builders::CreateConfigurationTemplateFluentBuilder::set_environment_id): <p>The ID of an environment whose settings you want to use to create the configuration template. You must specify <code>EnvironmentId</code> if you don't specify <code>PlatformArn</code>, <code>SolutionStackName</code>, or <code>SourceConfiguration</code>.</p>
/// - [`description(impl ::std::convert::Into<String>)`](crate::operation::create_configuration_template::builders::CreateConfigurationTemplateFluentBuilder::description) / [`set_description(Option<String>)`](crate::operation::create_configuration_template::builders::CreateConfigurationTemplateFluentBuilder::set_description): <p>An optional description for this configuration.</p>
/// - [`option_settings(Vec<ConfigurationOptionSetting>)`](crate::operation::create_configuration_template::builders::CreateConfigurationTemplateFluentBuilder::option_settings) / [`set_option_settings(Option<Vec<ConfigurationOptionSetting>>)`](crate::operation::create_configuration_template::builders::CreateConfigurationTemplateFluentBuilder::set_option_settings): <p>Option values for the Elastic Beanstalk configuration, such as the instance type. If specified, these values override the values obtained from the solution stack or the source configuration template. For a complete list of Elastic Beanstalk configuration options, see <a href="https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-options.html">Option Values</a> in the <i>AWS Elastic Beanstalk Developer Guide</i>.</p>
/// - [`tags(Vec<Tag>)`](crate::operation::create_configuration_template::builders::CreateConfigurationTemplateFluentBuilder::tags) / [`set_tags(Option<Vec<Tag>>)`](crate::operation::create_configuration_template::builders::CreateConfigurationTemplateFluentBuilder::set_tags): <p>Specifies the tags applied to the configuration template.</p>
/// - On success, responds with [`CreateConfigurationTemplateOutput`](crate::operation::create_configuration_template::CreateConfigurationTemplateOutput) with field(s):
/// - [`solution_stack_name(Option<String>)`](crate::operation::create_configuration_template::CreateConfigurationTemplateOutput::solution_stack_name): <p>The name of the solution stack this configuration set uses.</p>
/// - [`platform_arn(Option<String>)`](crate::operation::create_configuration_template::CreateConfigurationTemplateOutput::platform_arn): <p>The ARN of the platform version.</p>
/// - [`application_name(Option<String>)`](crate::operation::create_configuration_template::CreateConfigurationTemplateOutput::application_name): <p>The name of the application associated with this configuration set.</p>
/// - [`template_name(Option<String>)`](crate::operation::create_configuration_template::CreateConfigurationTemplateOutput::template_name): <p> If not <code>null</code>, the name of the configuration template for this configuration set. </p>
/// - [`description(Option<String>)`](crate::operation::create_configuration_template::CreateConfigurationTemplateOutput::description): <p>Describes this configuration set.</p>
/// - [`environment_name(Option<String>)`](crate::operation::create_configuration_template::CreateConfigurationTemplateOutput::environment_name): <p> If not <code>null</code>, the name of the environment for this configuration set. </p>
/// - [`deployment_status(Option<ConfigurationDeploymentStatus>)`](crate::operation::create_configuration_template::CreateConfigurationTemplateOutput::deployment_status): <p> If this configuration set is associated with an environment, the <code>DeploymentStatus</code> parameter indicates the deployment status of this configuration set: </p> <ul> <li> <p> <code>null</code>: This configuration is not associated with a running environment.</p> </li> <li> <p> <code>pending</code>: This is a draft configuration that is not deployed to the associated environment but is in the process of deploying.</p> </li> <li> <p> <code>deployed</code>: This is the configuration that is currently deployed to the associated running environment.</p> </li> <li> <p> <code>failed</code>: This is a draft configuration that failed to successfully deploy.</p> </li> </ul>
/// - [`date_created(Option<DateTime>)`](crate::operation::create_configuration_template::CreateConfigurationTemplateOutput::date_created): <p>The date (in UTC time) when this configuration set was created.</p>
/// - [`date_updated(Option<DateTime>)`](crate::operation::create_configuration_template::CreateConfigurationTemplateOutput::date_updated): <p>The date (in UTC time) when this configuration set was last modified.</p>
/// - [`option_settings(Option<Vec<ConfigurationOptionSetting>>)`](crate::operation::create_configuration_template::CreateConfigurationTemplateOutput::option_settings): <p>A list of the configuration options and their values in this configuration set.</p>
/// - On failure, responds with [`SdkError<CreateConfigurationTemplateError>`](crate::operation::create_configuration_template::CreateConfigurationTemplateError)
pub fn create_configuration_template(
&self,
) -> crate::operation::create_configuration_template::builders::CreateConfigurationTemplateFluentBuilder {
crate::operation::create_configuration_template::builders::CreateConfigurationTemplateFluentBuilder::new(self.handle.clone())
}
}