// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`CreateElasticsearchDomain`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`domain_name(impl Into<String>)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::domain_name) / [`set_domain_name(Option<String>)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::set_domain_name):<br>required: **true**<br><p>The name of the Elasticsearch domain that you are creating. Domain names are unique across the domains owned by an account within an AWS region. Domain names must start with a lowercase letter and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen).</p><br>
/// - [`elasticsearch_version(impl Into<String>)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::elasticsearch_version) / [`set_elasticsearch_version(Option<String>)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::set_elasticsearch_version):<br>required: **false**<br><p>String of format X.Y to specify version for the Elasticsearch domain eg. "1.5" or "2.3". For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomains" target="_blank">Creating Elasticsearch Domains</a> in the <i>Amazon Elasticsearch Service Developer Guide</i>.</p><br>
/// - [`elasticsearch_cluster_config(ElasticsearchClusterConfig)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::elasticsearch_cluster_config) / [`set_elasticsearch_cluster_config(Option<ElasticsearchClusterConfig>)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::set_elasticsearch_cluster_config):<br>required: **false**<br><p>Configuration options for an Elasticsearch domain. Specifies the instance type and number of instances in the domain cluster.</p><br>
/// - [`ebs_options(EbsOptions)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::ebs_options) / [`set_ebs_options(Option<EbsOptions>)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::set_ebs_options):<br>required: **false**<br><p>Options to enable, disable and specify the type and size of EBS storage volumes.</p><br>
/// - [`access_policies(impl Into<String>)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::access_policies) / [`set_access_policies(Option<String>)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::set_access_policies):<br>required: **false**<br><p>IAM access policy as a JSON-formatted string.</p><br>
/// - [`snapshot_options(SnapshotOptions)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::snapshot_options) / [`set_snapshot_options(Option<SnapshotOptions>)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::set_snapshot_options):<br>required: **false**<br><p>Option to set time, in UTC format, of the daily automated snapshot. Default value is 0 hours.</p><br>
/// - [`vpc_options(VpcOptions)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::vpc_options) / [`set_vpc_options(Option<VpcOptions>)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::set_vpc_options):<br>required: **false**<br><p>Options to specify the subnets and security groups for VPC endpoint. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-vpc.html#es-creating-vpc" target="_blank">Creating a VPC</a> in <i>VPC Endpoints for Amazon Elasticsearch Service Domains</i></p><br>
/// - [`cognito_options(CognitoOptions)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::cognito_options) / [`set_cognito_options(Option<CognitoOptions>)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::set_cognito_options):<br>required: **false**<br><p>Options to specify the Cognito user and identity pools for Kibana authentication. For more information, see <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-cognito-auth.html" target="_blank">Amazon Cognito Authentication for Kibana</a>.</p><br>
/// - [`encryption_at_rest_options(EncryptionAtRestOptions)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::encryption_at_rest_options) / [`set_encryption_at_rest_options(Option<EncryptionAtRestOptions>)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::set_encryption_at_rest_options):<br>required: **false**<br><p>Specifies the Encryption At Rest Options.</p><br>
/// - [`node_to_node_encryption_options(NodeToNodeEncryptionOptions)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::node_to_node_encryption_options) / [`set_node_to_node_encryption_options(Option<NodeToNodeEncryptionOptions>)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::set_node_to_node_encryption_options):<br>required: **false**<br><p>Specifies the NodeToNodeEncryptionOptions.</p><br>
/// - [`advanced_options(impl Into<String>, impl Into<String>)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::advanced_options) / [`set_advanced_options(Option<HashMap::<String, String>>)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::set_advanced_options):<br>required: **false**<br><p>Option to allow references to indices in an HTTP request body. Must be <code>false</code> when configuring access to individual sub-resources. By default, the value is <code>true</code>. See <a href="http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-createupdatedomains.html#es-createdomain-configure-advanced-options" target="_blank">Configuration Advanced Options</a> for more information.</p><br>
/// - [`log_publishing_options(LogType, LogPublishingOption)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::log_publishing_options) / [`set_log_publishing_options(Option<HashMap::<LogType, LogPublishingOption>>)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::set_log_publishing_options):<br>required: **false**<br><p>Map of <code>LogType</code> and <code>LogPublishingOption</code>, each containing options to publish a given type of Elasticsearch log.</p><br>
/// - [`domain_endpoint_options(DomainEndpointOptions)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::domain_endpoint_options) / [`set_domain_endpoint_options(Option<DomainEndpointOptions>)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::set_domain_endpoint_options):<br>required: **false**<br><p>Options to specify configuration that will be applied to the domain endpoint.</p><br>
/// - [`advanced_security_options(AdvancedSecurityOptionsInput)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::advanced_security_options) / [`set_advanced_security_options(Option<AdvancedSecurityOptionsInput>)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::set_advanced_security_options):<br>required: **false**<br><p>Specifies advanced security options.</p><br>
/// - [`auto_tune_options(AutoTuneOptionsInput)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::auto_tune_options) / [`set_auto_tune_options(Option<AutoTuneOptionsInput>)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::set_auto_tune_options):<br>required: **false**<br><p>Specifies Auto-Tune options.</p><br>
/// - [`tag_list(Tag)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::tag_list) / [`set_tag_list(Option<Vec::<Tag>>)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::set_tag_list):<br>required: **false**<br><p>A list of <code>Tag</code> added during domain creation.</p><br>
/// - [`deployment_strategy_options(DeploymentStrategyOptions)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::deployment_strategy_options) / [`set_deployment_strategy_options(Option<DeploymentStrategyOptions>)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::set_deployment_strategy_options):<br>required: **false**<br><p>Specifies the deployment strategy options.</p><br>
/// - [`automated_snapshot_pause_options(AutomatedSnapshotPauseRequestOptions)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::automated_snapshot_pause_options) / [`set_automated_snapshot_pause_options(Option<AutomatedSnapshotPauseRequestOptions>)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::set_automated_snapshot_pause_options):<br>required: **false**<br><p>Specifies the automated snapshot pause options for the domain.</p><important> <p>Suspending snapshots reduces data protection. You cannot restore your domain to points in time when snapshots are suspended. Use this feature only for short-term operational needs such as migrations or maintenance windows.</p> </important> <p>Maximum suspension duration: 3 days.</p><br>
/// - [`use_case(DomainUseCase)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::use_case) / [`set_use_case(Option<DomainUseCase>)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::set_use_case):<br>required: **false**<br><p>The primary use case for the domain. For valid values, see <code>DomainUseCase</code>.</p><br>
/// - [`engine_mode(DomainEngineMode)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::engine_mode) / [`set_engine_mode(Option<DomainEngineMode>)`](crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::set_engine_mode):<br>required: **false**<br><p>The engine mode for the domain. For valid values and requirements, see <code>DomainEngineMode</code>.</p><br>
/// - On success, responds with [`CreateElasticsearchDomainOutput`](crate::operation::create_elasticsearch_domain::CreateElasticsearchDomainOutput) with field(s):
/// - [`domain_status(Option<ElasticsearchDomainStatus>)`](crate::operation::create_elasticsearch_domain::CreateElasticsearchDomainOutput::domain_status): <p>The status of the newly created Elasticsearch domain.</p>
/// - On failure, responds with [`SdkError<CreateElasticsearchDomainError>`](crate::operation::create_elasticsearch_domain::CreateElasticsearchDomainError)
pub fn create_elasticsearch_domain(&self) -> crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder {
crate::operation::create_elasticsearch_domain::builders::CreateElasticsearchDomainFluentBuilder::new(self.handle.clone())
}
}