/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace OpenSearchService { namespace Model { /** */ class CreateDomainRequest : public OpenSearchServiceRequest { public: AWS_OPENSEARCHSERVICE_API CreateDomainRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateDomain"; } AWS_OPENSEARCHSERVICE_API Aws::String SerializePayload() const override; /** *

Name of the OpenSearch Service domain to create. Domain names are unique * across the domains owned by an account within an Amazon Web Services Region.

*/ inline const Aws::String& GetDomainName() const{ return m_domainName; } /** *

Name of the OpenSearch Service domain to create. Domain names are unique * across the domains owned by an account within an Amazon Web Services Region.

*/ inline bool DomainNameHasBeenSet() const { return m_domainNameHasBeenSet; } /** *

Name of the OpenSearch Service domain to create. Domain names are unique * across the domains owned by an account within an Amazon Web Services Region.

*/ inline void SetDomainName(const Aws::String& value) { m_domainNameHasBeenSet = true; m_domainName = value; } /** *

Name of the OpenSearch Service domain to create. Domain names are unique * across the domains owned by an account within an Amazon Web Services Region.

*/ inline void SetDomainName(Aws::String&& value) { m_domainNameHasBeenSet = true; m_domainName = std::move(value); } /** *

Name of the OpenSearch Service domain to create. Domain names are unique * across the domains owned by an account within an Amazon Web Services Region.

*/ inline void SetDomainName(const char* value) { m_domainNameHasBeenSet = true; m_domainName.assign(value); } /** *

Name of the OpenSearch Service domain to create. Domain names are unique * across the domains owned by an account within an Amazon Web Services Region.

*/ inline CreateDomainRequest& WithDomainName(const Aws::String& value) { SetDomainName(value); return *this;} /** *

Name of the OpenSearch Service domain to create. Domain names are unique * across the domains owned by an account within an Amazon Web Services Region.

*/ inline CreateDomainRequest& WithDomainName(Aws::String&& value) { SetDomainName(std::move(value)); return *this;} /** *

Name of the OpenSearch Service domain to create. Domain names are unique * across the domains owned by an account within an Amazon Web Services Region.

*/ inline CreateDomainRequest& WithDomainName(const char* value) { SetDomainName(value); return *this;} /** *

String of format Elasticsearch_X.Y or OpenSearch_X.Y to specify the engine * version for the OpenSearch Service domain. For example, * OpenSearch_1.0 or Elasticsearch_7.9. For more * information, see Creating * and managing Amazon OpenSearch Service domains.

*/ inline const Aws::String& GetEngineVersion() const{ return m_engineVersion; } /** *

String of format Elasticsearch_X.Y or OpenSearch_X.Y to specify the engine * version for the OpenSearch Service domain. For example, * OpenSearch_1.0 or Elasticsearch_7.9. For more * information, see Creating * and managing Amazon OpenSearch Service domains.

*/ inline bool EngineVersionHasBeenSet() const { return m_engineVersionHasBeenSet; } /** *

String of format Elasticsearch_X.Y or OpenSearch_X.Y to specify the engine * version for the OpenSearch Service domain. For example, * OpenSearch_1.0 or Elasticsearch_7.9. For more * information, see Creating * and managing Amazon OpenSearch Service domains.

*/ inline void SetEngineVersion(const Aws::String& value) { m_engineVersionHasBeenSet = true; m_engineVersion = value; } /** *

String of format Elasticsearch_X.Y or OpenSearch_X.Y to specify the engine * version for the OpenSearch Service domain. For example, * OpenSearch_1.0 or Elasticsearch_7.9. For more * information, see Creating * and managing Amazon OpenSearch Service domains.

*/ inline void SetEngineVersion(Aws::String&& value) { m_engineVersionHasBeenSet = true; m_engineVersion = std::move(value); } /** *

String of format Elasticsearch_X.Y or OpenSearch_X.Y to specify the engine * version for the OpenSearch Service domain. For example, * OpenSearch_1.0 or Elasticsearch_7.9. For more * information, see Creating * and managing Amazon OpenSearch Service domains.

*/ inline void SetEngineVersion(const char* value) { m_engineVersionHasBeenSet = true; m_engineVersion.assign(value); } /** *

String of format Elasticsearch_X.Y or OpenSearch_X.Y to specify the engine * version for the OpenSearch Service domain. For example, * OpenSearch_1.0 or Elasticsearch_7.9. For more * information, see Creating * and managing Amazon OpenSearch Service domains.

*/ inline CreateDomainRequest& WithEngineVersion(const Aws::String& value) { SetEngineVersion(value); return *this;} /** *

String of format Elasticsearch_X.Y or OpenSearch_X.Y to specify the engine * version for the OpenSearch Service domain. For example, * OpenSearch_1.0 or Elasticsearch_7.9. For more * information, see Creating * and managing Amazon OpenSearch Service domains.

*/ inline CreateDomainRequest& WithEngineVersion(Aws::String&& value) { SetEngineVersion(std::move(value)); return *this;} /** *

String of format Elasticsearch_X.Y or OpenSearch_X.Y to specify the engine * version for the OpenSearch Service domain. For example, * OpenSearch_1.0 or Elasticsearch_7.9. For more * information, see Creating * and managing Amazon OpenSearch Service domains.

*/ inline CreateDomainRequest& WithEngineVersion(const char* value) { SetEngineVersion(value); return *this;} /** *

Container for the cluster configuration of a domain.

*/ inline const ClusterConfig& GetClusterConfig() const{ return m_clusterConfig; } /** *

Container for the cluster configuration of a domain.

*/ inline bool ClusterConfigHasBeenSet() const { return m_clusterConfigHasBeenSet; } /** *

Container for the cluster configuration of a domain.

*/ inline void SetClusterConfig(const ClusterConfig& value) { m_clusterConfigHasBeenSet = true; m_clusterConfig = value; } /** *

Container for the cluster configuration of a domain.

*/ inline void SetClusterConfig(ClusterConfig&& value) { m_clusterConfigHasBeenSet = true; m_clusterConfig = std::move(value); } /** *

Container for the cluster configuration of a domain.

*/ inline CreateDomainRequest& WithClusterConfig(const ClusterConfig& value) { SetClusterConfig(value); return *this;} /** *

Container for the cluster configuration of a domain.

*/ inline CreateDomainRequest& WithClusterConfig(ClusterConfig&& value) { SetClusterConfig(std::move(value)); return *this;} /** *

Container for the parameters required to enable EBS-based storage for an * OpenSearch Service domain.

*/ inline const EBSOptions& GetEBSOptions() const{ return m_eBSOptions; } /** *

Container for the parameters required to enable EBS-based storage for an * OpenSearch Service domain.

*/ inline bool EBSOptionsHasBeenSet() const { return m_eBSOptionsHasBeenSet; } /** *

Container for the parameters required to enable EBS-based storage for an * OpenSearch Service domain.

*/ inline void SetEBSOptions(const EBSOptions& value) { m_eBSOptionsHasBeenSet = true; m_eBSOptions = value; } /** *

Container for the parameters required to enable EBS-based storage for an * OpenSearch Service domain.

*/ inline void SetEBSOptions(EBSOptions&& value) { m_eBSOptionsHasBeenSet = true; m_eBSOptions = std::move(value); } /** *

Container for the parameters required to enable EBS-based storage for an * OpenSearch Service domain.

*/ inline CreateDomainRequest& WithEBSOptions(const EBSOptions& value) { SetEBSOptions(value); return *this;} /** *

Container for the parameters required to enable EBS-based storage for an * OpenSearch Service domain.

*/ inline CreateDomainRequest& WithEBSOptions(EBSOptions&& value) { SetEBSOptions(std::move(value)); return *this;} /** *

Identity and Access Management (IAM) policy document specifying the access * policies for the new domain.

*/ inline const Aws::String& GetAccessPolicies() const{ return m_accessPolicies; } /** *

Identity and Access Management (IAM) policy document specifying the access * policies for the new domain.

*/ inline bool AccessPoliciesHasBeenSet() const { return m_accessPoliciesHasBeenSet; } /** *

Identity and Access Management (IAM) policy document specifying the access * policies for the new domain.

*/ inline void SetAccessPolicies(const Aws::String& value) { m_accessPoliciesHasBeenSet = true; m_accessPolicies = value; } /** *

Identity and Access Management (IAM) policy document specifying the access * policies for the new domain.

*/ inline void SetAccessPolicies(Aws::String&& value) { m_accessPoliciesHasBeenSet = true; m_accessPolicies = std::move(value); } /** *

Identity and Access Management (IAM) policy document specifying the access * policies for the new domain.

*/ inline void SetAccessPolicies(const char* value) { m_accessPoliciesHasBeenSet = true; m_accessPolicies.assign(value); } /** *

Identity and Access Management (IAM) policy document specifying the access * policies for the new domain.

*/ inline CreateDomainRequest& WithAccessPolicies(const Aws::String& value) { SetAccessPolicies(value); return *this;} /** *

Identity and Access Management (IAM) policy document specifying the access * policies for the new domain.

*/ inline CreateDomainRequest& WithAccessPolicies(Aws::String&& value) { SetAccessPolicies(std::move(value)); return *this;} /** *

Identity and Access Management (IAM) policy document specifying the access * policies for the new domain.

*/ inline CreateDomainRequest& WithAccessPolicies(const char* value) { SetAccessPolicies(value); return *this;} /** *

DEPRECATED. Container for the parameters required to configure automated * snapshots of domain indexes.

*/ inline const SnapshotOptions& GetSnapshotOptions() const{ return m_snapshotOptions; } /** *

DEPRECATED. Container for the parameters required to configure automated * snapshots of domain indexes.

*/ inline bool SnapshotOptionsHasBeenSet() const { return m_snapshotOptionsHasBeenSet; } /** *

DEPRECATED. Container for the parameters required to configure automated * snapshots of domain indexes.

*/ inline void SetSnapshotOptions(const SnapshotOptions& value) { m_snapshotOptionsHasBeenSet = true; m_snapshotOptions = value; } /** *

DEPRECATED. Container for the parameters required to configure automated * snapshots of domain indexes.

*/ inline void SetSnapshotOptions(SnapshotOptions&& value) { m_snapshotOptionsHasBeenSet = true; m_snapshotOptions = std::move(value); } /** *

DEPRECATED. Container for the parameters required to configure automated * snapshots of domain indexes.

*/ inline CreateDomainRequest& WithSnapshotOptions(const SnapshotOptions& value) { SetSnapshotOptions(value); return *this;} /** *

DEPRECATED. Container for the parameters required to configure automated * snapshots of domain indexes.

*/ inline CreateDomainRequest& WithSnapshotOptions(SnapshotOptions&& value) { SetSnapshotOptions(std::move(value)); return *this;} /** *

Container for the values required to configure VPC access domains. If you * don't specify these values, OpenSearch Service creates the domain with a public * endpoint. For more information, see Launching * your Amazon OpenSearch Service domains using a VPC.

*/ inline const VPCOptions& GetVPCOptions() const{ return m_vPCOptions; } /** *

Container for the values required to configure VPC access domains. If you * don't specify these values, OpenSearch Service creates the domain with a public * endpoint. For more information, see Launching * your Amazon OpenSearch Service domains using a VPC.

*/ inline bool VPCOptionsHasBeenSet() const { return m_vPCOptionsHasBeenSet; } /** *

Container for the values required to configure VPC access domains. If you * don't specify these values, OpenSearch Service creates the domain with a public * endpoint. For more information, see Launching * your Amazon OpenSearch Service domains using a VPC.

*/ inline void SetVPCOptions(const VPCOptions& value) { m_vPCOptionsHasBeenSet = true; m_vPCOptions = value; } /** *

Container for the values required to configure VPC access domains. If you * don't specify these values, OpenSearch Service creates the domain with a public * endpoint. For more information, see Launching * your Amazon OpenSearch Service domains using a VPC.

*/ inline void SetVPCOptions(VPCOptions&& value) { m_vPCOptionsHasBeenSet = true; m_vPCOptions = std::move(value); } /** *

Container for the values required to configure VPC access domains. If you * don't specify these values, OpenSearch Service creates the domain with a public * endpoint. For more information, see Launching * your Amazon OpenSearch Service domains using a VPC.

*/ inline CreateDomainRequest& WithVPCOptions(const VPCOptions& value) { SetVPCOptions(value); return *this;} /** *

Container for the values required to configure VPC access domains. If you * don't specify these values, OpenSearch Service creates the domain with a public * endpoint. For more information, see Launching * your Amazon OpenSearch Service domains using a VPC.

*/ inline CreateDomainRequest& WithVPCOptions(VPCOptions&& value) { SetVPCOptions(std::move(value)); return *this;} /** *

Key-value pairs to configure Amazon Cognito authentication. For more * information, see Configuring * Amazon Cognito authentication for OpenSearch Dashboards.

*/ inline const CognitoOptions& GetCognitoOptions() const{ return m_cognitoOptions; } /** *

Key-value pairs to configure Amazon Cognito authentication. For more * information, see Configuring * Amazon Cognito authentication for OpenSearch Dashboards.

*/ inline bool CognitoOptionsHasBeenSet() const { return m_cognitoOptionsHasBeenSet; } /** *

Key-value pairs to configure Amazon Cognito authentication. For more * information, see Configuring * Amazon Cognito authentication for OpenSearch Dashboards.

*/ inline void SetCognitoOptions(const CognitoOptions& value) { m_cognitoOptionsHasBeenSet = true; m_cognitoOptions = value; } /** *

Key-value pairs to configure Amazon Cognito authentication. For more * information, see Configuring * Amazon Cognito authentication for OpenSearch Dashboards.

*/ inline void SetCognitoOptions(CognitoOptions&& value) { m_cognitoOptionsHasBeenSet = true; m_cognitoOptions = std::move(value); } /** *

Key-value pairs to configure Amazon Cognito authentication. For more * information, see Configuring * Amazon Cognito authentication for OpenSearch Dashboards.

*/ inline CreateDomainRequest& WithCognitoOptions(const CognitoOptions& value) { SetCognitoOptions(value); return *this;} /** *

Key-value pairs to configure Amazon Cognito authentication. For more * information, see Configuring * Amazon Cognito authentication for OpenSearch Dashboards.

*/ inline CreateDomainRequest& WithCognitoOptions(CognitoOptions&& value) { SetCognitoOptions(std::move(value)); return *this;} /** *

Key-value pairs to enable encryption at rest.

*/ inline const EncryptionAtRestOptions& GetEncryptionAtRestOptions() const{ return m_encryptionAtRestOptions; } /** *

Key-value pairs to enable encryption at rest.

*/ inline bool EncryptionAtRestOptionsHasBeenSet() const { return m_encryptionAtRestOptionsHasBeenSet; } /** *

Key-value pairs to enable encryption at rest.

*/ inline void SetEncryptionAtRestOptions(const EncryptionAtRestOptions& value) { m_encryptionAtRestOptionsHasBeenSet = true; m_encryptionAtRestOptions = value; } /** *

Key-value pairs to enable encryption at rest.

*/ inline void SetEncryptionAtRestOptions(EncryptionAtRestOptions&& value) { m_encryptionAtRestOptionsHasBeenSet = true; m_encryptionAtRestOptions = std::move(value); } /** *

Key-value pairs to enable encryption at rest.

*/ inline CreateDomainRequest& WithEncryptionAtRestOptions(const EncryptionAtRestOptions& value) { SetEncryptionAtRestOptions(value); return *this;} /** *

Key-value pairs to enable encryption at rest.

*/ inline CreateDomainRequest& WithEncryptionAtRestOptions(EncryptionAtRestOptions&& value) { SetEncryptionAtRestOptions(std::move(value)); return *this;} /** *

Enables node-to-node encryption.

*/ inline const NodeToNodeEncryptionOptions& GetNodeToNodeEncryptionOptions() const{ return m_nodeToNodeEncryptionOptions; } /** *

Enables node-to-node encryption.

*/ inline bool NodeToNodeEncryptionOptionsHasBeenSet() const { return m_nodeToNodeEncryptionOptionsHasBeenSet; } /** *

Enables node-to-node encryption.

*/ inline void SetNodeToNodeEncryptionOptions(const NodeToNodeEncryptionOptions& value) { m_nodeToNodeEncryptionOptionsHasBeenSet = true; m_nodeToNodeEncryptionOptions = value; } /** *

Enables node-to-node encryption.

*/ inline void SetNodeToNodeEncryptionOptions(NodeToNodeEncryptionOptions&& value) { m_nodeToNodeEncryptionOptionsHasBeenSet = true; m_nodeToNodeEncryptionOptions = std::move(value); } /** *

Enables node-to-node encryption.

*/ inline CreateDomainRequest& WithNodeToNodeEncryptionOptions(const NodeToNodeEncryptionOptions& value) { SetNodeToNodeEncryptionOptions(value); return *this;} /** *

Enables node-to-node encryption.

*/ inline CreateDomainRequest& WithNodeToNodeEncryptionOptions(NodeToNodeEncryptionOptions&& value) { SetNodeToNodeEncryptionOptions(std::move(value)); return *this;} /** *

Key-value pairs to specify advanced configuration options. The following * key-value pairs are supported:

  • * "rest.action.multi.allow_explicit_index": "true" | "false" - Note * the use of a string rather than a boolean. Specifies whether explicit references * to indexes are allowed inside the body of HTTP requests. If you want to * configure access policies for domain sub-resources, such as specific indexes and * domain APIs, you must disable this property. Default is true.

  • * "indices.fielddata.cache.size": "80" - Note the use of a string * rather than a boolean. Specifies the percentage of heap space allocated to field * data. Default is unbounded.

  • * "indices.query.bool.max_clause_count": "1024" - Note the use of a * string rather than a boolean. Specifies the maximum number of clauses allowed in * a Lucene boolean query. Default is 1,024. Queries with more than the permitted * number of clauses result in a TooManyClauses error.

  • *

    "override_main_response_version": "true" | "false" - Note the * use of a string rather than a boolean. Specifies whether the domain reports its * version as 7.10 to allow Elasticsearch OSS clients and plugins to continue * working with it. Default is false when creating a domain and true when upgrading * a domain.

For more information, see Advanced * cluster parameters.

*/ inline const Aws::Map& GetAdvancedOptions() const{ return m_advancedOptions; } /** *

Key-value pairs to specify advanced configuration options. The following * key-value pairs are supported:

  • * "rest.action.multi.allow_explicit_index": "true" | "false" - Note * the use of a string rather than a boolean. Specifies whether explicit references * to indexes are allowed inside the body of HTTP requests. If you want to * configure access policies for domain sub-resources, such as specific indexes and * domain APIs, you must disable this property. Default is true.

  • * "indices.fielddata.cache.size": "80" - Note the use of a string * rather than a boolean. Specifies the percentage of heap space allocated to field * data. Default is unbounded.

  • * "indices.query.bool.max_clause_count": "1024" - Note the use of a * string rather than a boolean. Specifies the maximum number of clauses allowed in * a Lucene boolean query. Default is 1,024. Queries with more than the permitted * number of clauses result in a TooManyClauses error.

  • *

    "override_main_response_version": "true" | "false" - Note the * use of a string rather than a boolean. Specifies whether the domain reports its * version as 7.10 to allow Elasticsearch OSS clients and plugins to continue * working with it. Default is false when creating a domain and true when upgrading * a domain.

For more information, see Advanced * cluster parameters.

*/ inline bool AdvancedOptionsHasBeenSet() const { return m_advancedOptionsHasBeenSet; } /** *

Key-value pairs to specify advanced configuration options. The following * key-value pairs are supported:

  • * "rest.action.multi.allow_explicit_index": "true" | "false" - Note * the use of a string rather than a boolean. Specifies whether explicit references * to indexes are allowed inside the body of HTTP requests. If you want to * configure access policies for domain sub-resources, such as specific indexes and * domain APIs, you must disable this property. Default is true.

  • * "indices.fielddata.cache.size": "80" - Note the use of a string * rather than a boolean. Specifies the percentage of heap space allocated to field * data. Default is unbounded.

  • * "indices.query.bool.max_clause_count": "1024" - Note the use of a * string rather than a boolean. Specifies the maximum number of clauses allowed in * a Lucene boolean query. Default is 1,024. Queries with more than the permitted * number of clauses result in a TooManyClauses error.

  • *

    "override_main_response_version": "true" | "false" - Note the * use of a string rather than a boolean. Specifies whether the domain reports its * version as 7.10 to allow Elasticsearch OSS clients and plugins to continue * working with it. Default is false when creating a domain and true when upgrading * a domain.

For more information, see Advanced * cluster parameters.

*/ inline void SetAdvancedOptions(const Aws::Map& value) { m_advancedOptionsHasBeenSet = true; m_advancedOptions = value; } /** *

Key-value pairs to specify advanced configuration options. The following * key-value pairs are supported:

  • * "rest.action.multi.allow_explicit_index": "true" | "false" - Note * the use of a string rather than a boolean. Specifies whether explicit references * to indexes are allowed inside the body of HTTP requests. If you want to * configure access policies for domain sub-resources, such as specific indexes and * domain APIs, you must disable this property. Default is true.

  • * "indices.fielddata.cache.size": "80" - Note the use of a string * rather than a boolean. Specifies the percentage of heap space allocated to field * data. Default is unbounded.

  • * "indices.query.bool.max_clause_count": "1024" - Note the use of a * string rather than a boolean. Specifies the maximum number of clauses allowed in * a Lucene boolean query. Default is 1,024. Queries with more than the permitted * number of clauses result in a TooManyClauses error.

  • *

    "override_main_response_version": "true" | "false" - Note the * use of a string rather than a boolean. Specifies whether the domain reports its * version as 7.10 to allow Elasticsearch OSS clients and plugins to continue * working with it. Default is false when creating a domain and true when upgrading * a domain.

For more information, see Advanced * cluster parameters.

*/ inline void SetAdvancedOptions(Aws::Map&& value) { m_advancedOptionsHasBeenSet = true; m_advancedOptions = std::move(value); } /** *

Key-value pairs to specify advanced configuration options. The following * key-value pairs are supported:

  • * "rest.action.multi.allow_explicit_index": "true" | "false" - Note * the use of a string rather than a boolean. Specifies whether explicit references * to indexes are allowed inside the body of HTTP requests. If you want to * configure access policies for domain sub-resources, such as specific indexes and * domain APIs, you must disable this property. Default is true.

  • * "indices.fielddata.cache.size": "80" - Note the use of a string * rather than a boolean. Specifies the percentage of heap space allocated to field * data. Default is unbounded.

  • * "indices.query.bool.max_clause_count": "1024" - Note the use of a * string rather than a boolean. Specifies the maximum number of clauses allowed in * a Lucene boolean query. Default is 1,024. Queries with more than the permitted * number of clauses result in a TooManyClauses error.

  • *

    "override_main_response_version": "true" | "false" - Note the * use of a string rather than a boolean. Specifies whether the domain reports its * version as 7.10 to allow Elasticsearch OSS clients and plugins to continue * working with it. Default is false when creating a domain and true when upgrading * a domain.

For more information, see Advanced * cluster parameters.

*/ inline CreateDomainRequest& WithAdvancedOptions(const Aws::Map& value) { SetAdvancedOptions(value); return *this;} /** *

Key-value pairs to specify advanced configuration options. The following * key-value pairs are supported:

  • * "rest.action.multi.allow_explicit_index": "true" | "false" - Note * the use of a string rather than a boolean. Specifies whether explicit references * to indexes are allowed inside the body of HTTP requests. If you want to * configure access policies for domain sub-resources, such as specific indexes and * domain APIs, you must disable this property. Default is true.

  • * "indices.fielddata.cache.size": "80" - Note the use of a string * rather than a boolean. Specifies the percentage of heap space allocated to field * data. Default is unbounded.

  • * "indices.query.bool.max_clause_count": "1024" - Note the use of a * string rather than a boolean. Specifies the maximum number of clauses allowed in * a Lucene boolean query. Default is 1,024. Queries with more than the permitted * number of clauses result in a TooManyClauses error.

  • *

    "override_main_response_version": "true" | "false" - Note the * use of a string rather than a boolean. Specifies whether the domain reports its * version as 7.10 to allow Elasticsearch OSS clients and plugins to continue * working with it. Default is false when creating a domain and true when upgrading * a domain.

For more information, see Advanced * cluster parameters.

*/ inline CreateDomainRequest& WithAdvancedOptions(Aws::Map&& value) { SetAdvancedOptions(std::move(value)); return *this;} /** *

Key-value pairs to specify advanced configuration options. The following * key-value pairs are supported:

  • * "rest.action.multi.allow_explicit_index": "true" | "false" - Note * the use of a string rather than a boolean. Specifies whether explicit references * to indexes are allowed inside the body of HTTP requests. If you want to * configure access policies for domain sub-resources, such as specific indexes and * domain APIs, you must disable this property. Default is true.

  • * "indices.fielddata.cache.size": "80" - Note the use of a string * rather than a boolean. Specifies the percentage of heap space allocated to field * data. Default is unbounded.

  • * "indices.query.bool.max_clause_count": "1024" - Note the use of a * string rather than a boolean. Specifies the maximum number of clauses allowed in * a Lucene boolean query. Default is 1,024. Queries with more than the permitted * number of clauses result in a TooManyClauses error.

  • *

    "override_main_response_version": "true" | "false" - Note the * use of a string rather than a boolean. Specifies whether the domain reports its * version as 7.10 to allow Elasticsearch OSS clients and plugins to continue * working with it. Default is false when creating a domain and true when upgrading * a domain.

For more information, see Advanced * cluster parameters.

*/ inline CreateDomainRequest& AddAdvancedOptions(const Aws::String& key, const Aws::String& value) { m_advancedOptionsHasBeenSet = true; m_advancedOptions.emplace(key, value); return *this; } /** *

Key-value pairs to specify advanced configuration options. The following * key-value pairs are supported:

  • * "rest.action.multi.allow_explicit_index": "true" | "false" - Note * the use of a string rather than a boolean. Specifies whether explicit references * to indexes are allowed inside the body of HTTP requests. If you want to * configure access policies for domain sub-resources, such as specific indexes and * domain APIs, you must disable this property. Default is true.

  • * "indices.fielddata.cache.size": "80" - Note the use of a string * rather than a boolean. Specifies the percentage of heap space allocated to field * data. Default is unbounded.

  • * "indices.query.bool.max_clause_count": "1024" - Note the use of a * string rather than a boolean. Specifies the maximum number of clauses allowed in * a Lucene boolean query. Default is 1,024. Queries with more than the permitted * number of clauses result in a TooManyClauses error.

  • *

    "override_main_response_version": "true" | "false" - Note the * use of a string rather than a boolean. Specifies whether the domain reports its * version as 7.10 to allow Elasticsearch OSS clients and plugins to continue * working with it. Default is false when creating a domain and true when upgrading * a domain.

For more information, see Advanced * cluster parameters.

*/ inline CreateDomainRequest& AddAdvancedOptions(Aws::String&& key, const Aws::String& value) { m_advancedOptionsHasBeenSet = true; m_advancedOptions.emplace(std::move(key), value); return *this; } /** *

Key-value pairs to specify advanced configuration options. The following * key-value pairs are supported:

  • * "rest.action.multi.allow_explicit_index": "true" | "false" - Note * the use of a string rather than a boolean. Specifies whether explicit references * to indexes are allowed inside the body of HTTP requests. If you want to * configure access policies for domain sub-resources, such as specific indexes and * domain APIs, you must disable this property. Default is true.

  • * "indices.fielddata.cache.size": "80" - Note the use of a string * rather than a boolean. Specifies the percentage of heap space allocated to field * data. Default is unbounded.

  • * "indices.query.bool.max_clause_count": "1024" - Note the use of a * string rather than a boolean. Specifies the maximum number of clauses allowed in * a Lucene boolean query. Default is 1,024. Queries with more than the permitted * number of clauses result in a TooManyClauses error.

  • *

    "override_main_response_version": "true" | "false" - Note the * use of a string rather than a boolean. Specifies whether the domain reports its * version as 7.10 to allow Elasticsearch OSS clients and plugins to continue * working with it. Default is false when creating a domain and true when upgrading * a domain.

For more information, see Advanced * cluster parameters.

*/ inline CreateDomainRequest& AddAdvancedOptions(const Aws::String& key, Aws::String&& value) { m_advancedOptionsHasBeenSet = true; m_advancedOptions.emplace(key, std::move(value)); return *this; } /** *

Key-value pairs to specify advanced configuration options. The following * key-value pairs are supported:

  • * "rest.action.multi.allow_explicit_index": "true" | "false" - Note * the use of a string rather than a boolean. Specifies whether explicit references * to indexes are allowed inside the body of HTTP requests. If you want to * configure access policies for domain sub-resources, such as specific indexes and * domain APIs, you must disable this property. Default is true.

  • * "indices.fielddata.cache.size": "80" - Note the use of a string * rather than a boolean. Specifies the percentage of heap space allocated to field * data. Default is unbounded.

  • * "indices.query.bool.max_clause_count": "1024" - Note the use of a * string rather than a boolean. Specifies the maximum number of clauses allowed in * a Lucene boolean query. Default is 1,024. Queries with more than the permitted * number of clauses result in a TooManyClauses error.

  • *

    "override_main_response_version": "true" | "false" - Note the * use of a string rather than a boolean. Specifies whether the domain reports its * version as 7.10 to allow Elasticsearch OSS clients and plugins to continue * working with it. Default is false when creating a domain and true when upgrading * a domain.

For more information, see Advanced * cluster parameters.

*/ inline CreateDomainRequest& AddAdvancedOptions(Aws::String&& key, Aws::String&& value) { m_advancedOptionsHasBeenSet = true; m_advancedOptions.emplace(std::move(key), std::move(value)); return *this; } /** *

Key-value pairs to specify advanced configuration options. The following * key-value pairs are supported:

  • * "rest.action.multi.allow_explicit_index": "true" | "false" - Note * the use of a string rather than a boolean. Specifies whether explicit references * to indexes are allowed inside the body of HTTP requests. If you want to * configure access policies for domain sub-resources, such as specific indexes and * domain APIs, you must disable this property. Default is true.

  • * "indices.fielddata.cache.size": "80" - Note the use of a string * rather than a boolean. Specifies the percentage of heap space allocated to field * data. Default is unbounded.

  • * "indices.query.bool.max_clause_count": "1024" - Note the use of a * string rather than a boolean. Specifies the maximum number of clauses allowed in * a Lucene boolean query. Default is 1,024. Queries with more than the permitted * number of clauses result in a TooManyClauses error.

  • *

    "override_main_response_version": "true" | "false" - Note the * use of a string rather than a boolean. Specifies whether the domain reports its * version as 7.10 to allow Elasticsearch OSS clients and plugins to continue * working with it. Default is false when creating a domain and true when upgrading * a domain.

For more information, see Advanced * cluster parameters.

*/ inline CreateDomainRequest& AddAdvancedOptions(const char* key, Aws::String&& value) { m_advancedOptionsHasBeenSet = true; m_advancedOptions.emplace(key, std::move(value)); return *this; } /** *

Key-value pairs to specify advanced configuration options. The following * key-value pairs are supported:

  • * "rest.action.multi.allow_explicit_index": "true" | "false" - Note * the use of a string rather than a boolean. Specifies whether explicit references * to indexes are allowed inside the body of HTTP requests. If you want to * configure access policies for domain sub-resources, such as specific indexes and * domain APIs, you must disable this property. Default is true.

  • * "indices.fielddata.cache.size": "80" - Note the use of a string * rather than a boolean. Specifies the percentage of heap space allocated to field * data. Default is unbounded.

  • * "indices.query.bool.max_clause_count": "1024" - Note the use of a * string rather than a boolean. Specifies the maximum number of clauses allowed in * a Lucene boolean query. Default is 1,024. Queries with more than the permitted * number of clauses result in a TooManyClauses error.

  • *

    "override_main_response_version": "true" | "false" - Note the * use of a string rather than a boolean. Specifies whether the domain reports its * version as 7.10 to allow Elasticsearch OSS clients and plugins to continue * working with it. Default is false when creating a domain and true when upgrading * a domain.

For more information, see Advanced * cluster parameters.

*/ inline CreateDomainRequest& AddAdvancedOptions(Aws::String&& key, const char* value) { m_advancedOptionsHasBeenSet = true; m_advancedOptions.emplace(std::move(key), value); return *this; } /** *

Key-value pairs to specify advanced configuration options. The following * key-value pairs are supported:

  • * "rest.action.multi.allow_explicit_index": "true" | "false" - Note * the use of a string rather than a boolean. Specifies whether explicit references * to indexes are allowed inside the body of HTTP requests. If you want to * configure access policies for domain sub-resources, such as specific indexes and * domain APIs, you must disable this property. Default is true.

  • * "indices.fielddata.cache.size": "80" - Note the use of a string * rather than a boolean. Specifies the percentage of heap space allocated to field * data. Default is unbounded.

  • * "indices.query.bool.max_clause_count": "1024" - Note the use of a * string rather than a boolean. Specifies the maximum number of clauses allowed in * a Lucene boolean query. Default is 1,024. Queries with more than the permitted * number of clauses result in a TooManyClauses error.

  • *

    "override_main_response_version": "true" | "false" - Note the * use of a string rather than a boolean. Specifies whether the domain reports its * version as 7.10 to allow Elasticsearch OSS clients and plugins to continue * working with it. Default is false when creating a domain and true when upgrading * a domain.

For more information, see Advanced * cluster parameters.

*/ inline CreateDomainRequest& AddAdvancedOptions(const char* key, const char* value) { m_advancedOptionsHasBeenSet = true; m_advancedOptions.emplace(key, value); return *this; } /** *

Key-value pairs to configure log publishing.

*/ inline const Aws::Map& GetLogPublishingOptions() const{ return m_logPublishingOptions; } /** *

Key-value pairs to configure log publishing.

*/ inline bool LogPublishingOptionsHasBeenSet() const { return m_logPublishingOptionsHasBeenSet; } /** *

Key-value pairs to configure log publishing.

*/ inline void SetLogPublishingOptions(const Aws::Map& value) { m_logPublishingOptionsHasBeenSet = true; m_logPublishingOptions = value; } /** *

Key-value pairs to configure log publishing.

*/ inline void SetLogPublishingOptions(Aws::Map&& value) { m_logPublishingOptionsHasBeenSet = true; m_logPublishingOptions = std::move(value); } /** *

Key-value pairs to configure log publishing.

*/ inline CreateDomainRequest& WithLogPublishingOptions(const Aws::Map& value) { SetLogPublishingOptions(value); return *this;} /** *

Key-value pairs to configure log publishing.

*/ inline CreateDomainRequest& WithLogPublishingOptions(Aws::Map&& value) { SetLogPublishingOptions(std::move(value)); return *this;} /** *

Key-value pairs to configure log publishing.

*/ inline CreateDomainRequest& AddLogPublishingOptions(const LogType& key, const LogPublishingOption& value) { m_logPublishingOptionsHasBeenSet = true; m_logPublishingOptions.emplace(key, value); return *this; } /** *

Key-value pairs to configure log publishing.

*/ inline CreateDomainRequest& AddLogPublishingOptions(LogType&& key, const LogPublishingOption& value) { m_logPublishingOptionsHasBeenSet = true; m_logPublishingOptions.emplace(std::move(key), value); return *this; } /** *

Key-value pairs to configure log publishing.

*/ inline CreateDomainRequest& AddLogPublishingOptions(const LogType& key, LogPublishingOption&& value) { m_logPublishingOptionsHasBeenSet = true; m_logPublishingOptions.emplace(key, std::move(value)); return *this; } /** *

Key-value pairs to configure log publishing.

*/ inline CreateDomainRequest& AddLogPublishingOptions(LogType&& key, LogPublishingOption&& value) { m_logPublishingOptionsHasBeenSet = true; m_logPublishingOptions.emplace(std::move(key), std::move(value)); return *this; } /** *

Additional options for the domain endpoint, such as whether to require HTTPS * for all traffic.

*/ inline const DomainEndpointOptions& GetDomainEndpointOptions() const{ return m_domainEndpointOptions; } /** *

Additional options for the domain endpoint, such as whether to require HTTPS * for all traffic.

*/ inline bool DomainEndpointOptionsHasBeenSet() const { return m_domainEndpointOptionsHasBeenSet; } /** *

Additional options for the domain endpoint, such as whether to require HTTPS * for all traffic.

*/ inline void SetDomainEndpointOptions(const DomainEndpointOptions& value) { m_domainEndpointOptionsHasBeenSet = true; m_domainEndpointOptions = value; } /** *

Additional options for the domain endpoint, such as whether to require HTTPS * for all traffic.

*/ inline void SetDomainEndpointOptions(DomainEndpointOptions&& value) { m_domainEndpointOptionsHasBeenSet = true; m_domainEndpointOptions = std::move(value); } /** *

Additional options for the domain endpoint, such as whether to require HTTPS * for all traffic.

*/ inline CreateDomainRequest& WithDomainEndpointOptions(const DomainEndpointOptions& value) { SetDomainEndpointOptions(value); return *this;} /** *

Additional options for the domain endpoint, such as whether to require HTTPS * for all traffic.

*/ inline CreateDomainRequest& WithDomainEndpointOptions(DomainEndpointOptions&& value) { SetDomainEndpointOptions(std::move(value)); return *this;} /** *

Options for fine-grained access control.

*/ inline const AdvancedSecurityOptionsInput& GetAdvancedSecurityOptions() const{ return m_advancedSecurityOptions; } /** *

Options for fine-grained access control.

*/ inline bool AdvancedSecurityOptionsHasBeenSet() const { return m_advancedSecurityOptionsHasBeenSet; } /** *

Options for fine-grained access control.

*/ inline void SetAdvancedSecurityOptions(const AdvancedSecurityOptionsInput& value) { m_advancedSecurityOptionsHasBeenSet = true; m_advancedSecurityOptions = value; } /** *

Options for fine-grained access control.

*/ inline void SetAdvancedSecurityOptions(AdvancedSecurityOptionsInput&& value) { m_advancedSecurityOptionsHasBeenSet = true; m_advancedSecurityOptions = std::move(value); } /** *

Options for fine-grained access control.

*/ inline CreateDomainRequest& WithAdvancedSecurityOptions(const AdvancedSecurityOptionsInput& value) { SetAdvancedSecurityOptions(value); return *this;} /** *

Options for fine-grained access control.

*/ inline CreateDomainRequest& WithAdvancedSecurityOptions(AdvancedSecurityOptionsInput&& value) { SetAdvancedSecurityOptions(std::move(value)); return *this;} /** *

List of tags to add to the domain upon creation.

*/ inline const Aws::Vector& GetTagList() const{ return m_tagList; } /** *

List of tags to add to the domain upon creation.

*/ inline bool TagListHasBeenSet() const { return m_tagListHasBeenSet; } /** *

List of tags to add to the domain upon creation.

*/ inline void SetTagList(const Aws::Vector& value) { m_tagListHasBeenSet = true; m_tagList = value; } /** *

List of tags to add to the domain upon creation.

*/ inline void SetTagList(Aws::Vector&& value) { m_tagListHasBeenSet = true; m_tagList = std::move(value); } /** *

List of tags to add to the domain upon creation.

*/ inline CreateDomainRequest& WithTagList(const Aws::Vector& value) { SetTagList(value); return *this;} /** *

List of tags to add to the domain upon creation.

*/ inline CreateDomainRequest& WithTagList(Aws::Vector&& value) { SetTagList(std::move(value)); return *this;} /** *

List of tags to add to the domain upon creation.

*/ inline CreateDomainRequest& AddTagList(const Tag& value) { m_tagListHasBeenSet = true; m_tagList.push_back(value); return *this; } /** *

List of tags to add to the domain upon creation.

*/ inline CreateDomainRequest& AddTagList(Tag&& value) { m_tagListHasBeenSet = true; m_tagList.push_back(std::move(value)); return *this; } /** *

Options for Auto-Tune.

*/ inline const AutoTuneOptionsInput& GetAutoTuneOptions() const{ return m_autoTuneOptions; } /** *

Options for Auto-Tune.

*/ inline bool AutoTuneOptionsHasBeenSet() const { return m_autoTuneOptionsHasBeenSet; } /** *

Options for Auto-Tune.

*/ inline void SetAutoTuneOptions(const AutoTuneOptionsInput& value) { m_autoTuneOptionsHasBeenSet = true; m_autoTuneOptions = value; } /** *

Options for Auto-Tune.

*/ inline void SetAutoTuneOptions(AutoTuneOptionsInput&& value) { m_autoTuneOptionsHasBeenSet = true; m_autoTuneOptions = std::move(value); } /** *

Options for Auto-Tune.

*/ inline CreateDomainRequest& WithAutoTuneOptions(const AutoTuneOptionsInput& value) { SetAutoTuneOptions(value); return *this;} /** *

Options for Auto-Tune.

*/ inline CreateDomainRequest& WithAutoTuneOptions(AutoTuneOptionsInput&& value) { SetAutoTuneOptions(std::move(value)); return *this;} /** *

Specifies a daily 10-hour time block during which OpenSearch Service can * perform configuration changes on the domain, including service software updates * and Auto-Tune enhancements that require a blue/green deployment. If no options * are specified, the default start time of 10:00 P.M. local time (for the Region * that the domain is created in) is used.

*/ inline const OffPeakWindowOptions& GetOffPeakWindowOptions() const{ return m_offPeakWindowOptions; } /** *

Specifies a daily 10-hour time block during which OpenSearch Service can * perform configuration changes on the domain, including service software updates * and Auto-Tune enhancements that require a blue/green deployment. If no options * are specified, the default start time of 10:00 P.M. local time (for the Region * that the domain is created in) is used.

*/ inline bool OffPeakWindowOptionsHasBeenSet() const { return m_offPeakWindowOptionsHasBeenSet; } /** *

Specifies a daily 10-hour time block during which OpenSearch Service can * perform configuration changes on the domain, including service software updates * and Auto-Tune enhancements that require a blue/green deployment. If no options * are specified, the default start time of 10:00 P.M. local time (for the Region * that the domain is created in) is used.

*/ inline void SetOffPeakWindowOptions(const OffPeakWindowOptions& value) { m_offPeakWindowOptionsHasBeenSet = true; m_offPeakWindowOptions = value; } /** *

Specifies a daily 10-hour time block during which OpenSearch Service can * perform configuration changes on the domain, including service software updates * and Auto-Tune enhancements that require a blue/green deployment. If no options * are specified, the default start time of 10:00 P.M. local time (for the Region * that the domain is created in) is used.

*/ inline void SetOffPeakWindowOptions(OffPeakWindowOptions&& value) { m_offPeakWindowOptionsHasBeenSet = true; m_offPeakWindowOptions = std::move(value); } /** *

Specifies a daily 10-hour time block during which OpenSearch Service can * perform configuration changes on the domain, including service software updates * and Auto-Tune enhancements that require a blue/green deployment. If no options * are specified, the default start time of 10:00 P.M. local time (for the Region * that the domain is created in) is used.

*/ inline CreateDomainRequest& WithOffPeakWindowOptions(const OffPeakWindowOptions& value) { SetOffPeakWindowOptions(value); return *this;} /** *

Specifies a daily 10-hour time block during which OpenSearch Service can * perform configuration changes on the domain, including service software updates * and Auto-Tune enhancements that require a blue/green deployment. If no options * are specified, the default start time of 10:00 P.M. local time (for the Region * that the domain is created in) is used.

*/ inline CreateDomainRequest& WithOffPeakWindowOptions(OffPeakWindowOptions&& value) { SetOffPeakWindowOptions(std::move(value)); return *this;} /** *

Software update options for the domain.

*/ inline const SoftwareUpdateOptions& GetSoftwareUpdateOptions() const{ return m_softwareUpdateOptions; } /** *

Software update options for the domain.

*/ inline bool SoftwareUpdateOptionsHasBeenSet() const { return m_softwareUpdateOptionsHasBeenSet; } /** *

Software update options for the domain.

*/ inline void SetSoftwareUpdateOptions(const SoftwareUpdateOptions& value) { m_softwareUpdateOptionsHasBeenSet = true; m_softwareUpdateOptions = value; } /** *

Software update options for the domain.

*/ inline void SetSoftwareUpdateOptions(SoftwareUpdateOptions&& value) { m_softwareUpdateOptionsHasBeenSet = true; m_softwareUpdateOptions = std::move(value); } /** *

Software update options for the domain.

*/ inline CreateDomainRequest& WithSoftwareUpdateOptions(const SoftwareUpdateOptions& value) { SetSoftwareUpdateOptions(value); return *this;} /** *

Software update options for the domain.

*/ inline CreateDomainRequest& WithSoftwareUpdateOptions(SoftwareUpdateOptions&& value) { SetSoftwareUpdateOptions(std::move(value)); return *this;} private: Aws::String m_domainName; bool m_domainNameHasBeenSet = false; Aws::String m_engineVersion; bool m_engineVersionHasBeenSet = false; ClusterConfig m_clusterConfig; bool m_clusterConfigHasBeenSet = false; EBSOptions m_eBSOptions; bool m_eBSOptionsHasBeenSet = false; Aws::String m_accessPolicies; bool m_accessPoliciesHasBeenSet = false; SnapshotOptions m_snapshotOptions; bool m_snapshotOptionsHasBeenSet = false; VPCOptions m_vPCOptions; bool m_vPCOptionsHasBeenSet = false; CognitoOptions m_cognitoOptions; bool m_cognitoOptionsHasBeenSet = false; EncryptionAtRestOptions m_encryptionAtRestOptions; bool m_encryptionAtRestOptionsHasBeenSet = false; NodeToNodeEncryptionOptions m_nodeToNodeEncryptionOptions; bool m_nodeToNodeEncryptionOptionsHasBeenSet = false; Aws::Map m_advancedOptions; bool m_advancedOptionsHasBeenSet = false; Aws::Map m_logPublishingOptions; bool m_logPublishingOptionsHasBeenSet = false; DomainEndpointOptions m_domainEndpointOptions; bool m_domainEndpointOptionsHasBeenSet = false; AdvancedSecurityOptionsInput m_advancedSecurityOptions; bool m_advancedSecurityOptionsHasBeenSet = false; Aws::Vector m_tagList; bool m_tagListHasBeenSet = false; AutoTuneOptionsInput m_autoTuneOptions; bool m_autoTuneOptionsHasBeenSet = false; OffPeakWindowOptions m_offPeakWindowOptions; bool m_offPeakWindowOptionsHasBeenSet = false; SoftwareUpdateOptions m_softwareUpdateOptions; bool m_softwareUpdateOptionsHasBeenSet = false; }; } // namespace Model } // namespace OpenSearchService } // namespace Aws