tagList;
private final AutoTuneOptionsInput autoTuneOptions;
private final OffPeakWindowOptions offPeakWindowOptions;
private final SoftwareUpdateOptions softwareUpdateOptions;
private CreateDomainRequest(BuilderImpl builder) {
super(builder);
this.domainName = builder.domainName;
this.engineVersion = builder.engineVersion;
this.clusterConfig = builder.clusterConfig;
this.ebsOptions = builder.ebsOptions;
this.accessPolicies = builder.accessPolicies;
this.ipAddressType = builder.ipAddressType;
this.snapshotOptions = builder.snapshotOptions;
this.vpcOptions = builder.vpcOptions;
this.cognitoOptions = builder.cognitoOptions;
this.encryptionAtRestOptions = builder.encryptionAtRestOptions;
this.nodeToNodeEncryptionOptions = builder.nodeToNodeEncryptionOptions;
this.advancedOptions = builder.advancedOptions;
this.logPublishingOptions = builder.logPublishingOptions;
this.domainEndpointOptions = builder.domainEndpointOptions;
this.advancedSecurityOptions = builder.advancedSecurityOptions;
this.tagList = builder.tagList;
this.autoTuneOptions = builder.autoTuneOptions;
this.offPeakWindowOptions = builder.offPeakWindowOptions;
this.softwareUpdateOptions = builder.softwareUpdateOptions;
}
/**
*
* 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.
*
*
* @return 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.
*/
public final String domainName() {
return domainName;
}
/**
*
* 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 .
*
*
* @return 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 .
*/
public final String engineVersion() {
return engineVersion;
}
/**
*
* Container for the cluster configuration of a domain.
*
*
* @return Container for the cluster configuration of a domain.
*/
public final ClusterConfig clusterConfig() {
return clusterConfig;
}
/**
*
* Container for the parameters required to enable EBS-based storage for an OpenSearch Service domain.
*
*
* @return Container for the parameters required to enable EBS-based storage for an OpenSearch Service domain.
*/
public final EBSOptions ebsOptions() {
return ebsOptions;
}
/**
*
* Identity and Access Management (IAM) policy document specifying the access policies for the new domain.
*
*
* @return Identity and Access Management (IAM) policy document specifying the access policies for the new domain.
*/
public final String accessPolicies() {
return accessPolicies;
}
/**
*
* Specify either dual stack or IPv4 as your IP address type. Dual stack allows you to share domain resources across
* IPv4 and IPv6 address types, and is the recommended option. If you set your IP address type to dual stack, you
* can't change your address type later.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #ipAddressType}
* will return {@link IPAddressType#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #ipAddressTypeAsString}.
*
*
* @return Specify either dual stack or IPv4 as your IP address type. Dual stack allows you to share domain
* resources across IPv4 and IPv6 address types, and is the recommended option. If you set your IP address
* type to dual stack, you can't change your address type later.
* @see IPAddressType
*/
public final IPAddressType ipAddressType() {
return IPAddressType.fromValue(ipAddressType);
}
/**
*
* Specify either dual stack or IPv4 as your IP address type. Dual stack allows you to share domain resources across
* IPv4 and IPv6 address types, and is the recommended option. If you set your IP address type to dual stack, you
* can't change your address type later.
*
*
* If the service returns an enum value that is not available in the current SDK version, {@link #ipAddressType}
* will return {@link IPAddressType#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from
* {@link #ipAddressTypeAsString}.
*
*
* @return Specify either dual stack or IPv4 as your IP address type. Dual stack allows you to share domain
* resources across IPv4 and IPv6 address types, and is the recommended option. If you set your IP address
* type to dual stack, you can't change your address type later.
* @see IPAddressType
*/
public final String ipAddressTypeAsString() {
return ipAddressType;
}
/**
*
* DEPRECATED. Container for the parameters required to configure automated snapshots of domain indexes.
*
*
* @return DEPRECATED. Container for the parameters required to configure automated snapshots of domain indexes.
*/
public final SnapshotOptions snapshotOptions() {
return snapshotOptions;
}
/**
*
* 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 .
*
*
* @return 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 .
*/
public final VPCOptions vpcOptions() {
return vpcOptions;
}
/**
*
* Key-value pairs to configure Amazon Cognito authentication. For more information, see Configuring Amazon
* Cognito authentication for OpenSearch Dashboards .
*
*
* @return Key-value pairs to configure Amazon Cognito authentication. For more information, see Configuring
* Amazon Cognito authentication for OpenSearch Dashboards .
*/
public final CognitoOptions cognitoOptions() {
return cognitoOptions;
}
/**
*
* Key-value pairs to enable encryption at rest.
*
*
* @return Key-value pairs to enable encryption at rest.
*/
public final EncryptionAtRestOptions encryptionAtRestOptions() {
return encryptionAtRestOptions;
}
/**
*
* Enables node-to-node encryption.
*
*
* @return Enables node-to-node encryption.
*/
public final NodeToNodeEncryptionOptions nodeToNodeEncryptionOptions() {
return nodeToNodeEncryptionOptions;
}
/**
* For responses, this returns true if the service returned a value for the AdvancedOptions property. This DOES NOT
* check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property).
* This is useful because the SDK will never return a null collection or map, but you may need to differentiate
* between the service returning nothing (or null) and the service returning an empty collection or map. For
* requests, this returns true if a value for the property was specified in the request builder, and false if a
* value was not specified.
*/
public final boolean hasAdvancedOptions() {
return advancedOptions != null && !(advancedOptions instanceof SdkAutoConstructMap);
}
/**
*
* 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 .
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasAdvancedOptions} method.
*
*
* @return 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 .
*/
public final Map advancedOptions() {
return advancedOptions;
}
/**
*
* Key-value pairs to configure log publishing.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasLogPublishingOptions} method.
*
*
* @return Key-value pairs to configure log publishing.
*/
public final Map logPublishingOptions() {
return LogPublishingOptionsCopier.copyStringToEnum(logPublishingOptions);
}
/**
* For responses, this returns true if the service returned a value for the LogPublishingOptions property. This DOES
* NOT check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property).
* This is useful because the SDK will never return a null collection or map, but you may need to differentiate
* between the service returning nothing (or null) and the service returning an empty collection or map. For
* requests, this returns true if a value for the property was specified in the request builder, and false if a
* value was not specified.
*/
public final boolean hasLogPublishingOptions() {
return logPublishingOptions != null && !(logPublishingOptions instanceof SdkAutoConstructMap);
}
/**
*
* Key-value pairs to configure log publishing.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasLogPublishingOptions} method.
*
*
* @return Key-value pairs to configure log publishing.
*/
public final Map logPublishingOptionsAsStrings() {
return logPublishingOptions;
}
/**
*
* Additional options for the domain endpoint, such as whether to require HTTPS for all traffic.
*
*
* @return Additional options for the domain endpoint, such as whether to require HTTPS for all traffic.
*/
public final DomainEndpointOptions domainEndpointOptions() {
return domainEndpointOptions;
}
/**
*
* Options for fine-grained access control.
*
*
* @return Options for fine-grained access control.
*/
public final AdvancedSecurityOptionsInput advancedSecurityOptions() {
return advancedSecurityOptions;
}
/**
* For responses, this returns true if the service returned a value for the TagList property. This DOES NOT check
* that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property). This is
* useful because the SDK will never return a null collection or map, but you may need to differentiate between the
* service returning nothing (or null) and the service returning an empty collection or map. For requests, this
* returns true if a value for the property was specified in the request builder, and false if a value was not
* specified.
*/
public final boolean hasTagList() {
return tagList != null && !(tagList instanceof SdkAutoConstructList);
}
/**
*
* List of tags to add to the domain upon creation.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasTagList} method.
*
*
* @return List of tags to add to the domain upon creation.
*/
public final List tagList() {
return tagList;
}
/**
*
* Options for Auto-Tune.
*
*
* @return Options for Auto-Tune.
*/
public final AutoTuneOptionsInput autoTuneOptions() {
return autoTuneOptions;
}
/**
*
* 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.
*
*
* @return 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.
*/
public final OffPeakWindowOptions offPeakWindowOptions() {
return offPeakWindowOptions;
}
/**
*
* Software update options for the domain.
*
*
* @return Software update options for the domain.
*/
public final SoftwareUpdateOptions softwareUpdateOptions() {
return softwareUpdateOptions;
}
@Override
public Builder toBuilder() {
return new BuilderImpl(this);
}
public static Builder builder() {
return new BuilderImpl();
}
public static Class extends Builder> serializableBuilderClass() {
return BuilderImpl.class;
}
@Override
public final int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + super.hashCode();
hashCode = 31 * hashCode + Objects.hashCode(domainName());
hashCode = 31 * hashCode + Objects.hashCode(engineVersion());
hashCode = 31 * hashCode + Objects.hashCode(clusterConfig());
hashCode = 31 * hashCode + Objects.hashCode(ebsOptions());
hashCode = 31 * hashCode + Objects.hashCode(accessPolicies());
hashCode = 31 * hashCode + Objects.hashCode(ipAddressTypeAsString());
hashCode = 31 * hashCode + Objects.hashCode(snapshotOptions());
hashCode = 31 * hashCode + Objects.hashCode(vpcOptions());
hashCode = 31 * hashCode + Objects.hashCode(cognitoOptions());
hashCode = 31 * hashCode + Objects.hashCode(encryptionAtRestOptions());
hashCode = 31 * hashCode + Objects.hashCode(nodeToNodeEncryptionOptions());
hashCode = 31 * hashCode + Objects.hashCode(hasAdvancedOptions() ? advancedOptions() : null);
hashCode = 31 * hashCode + Objects.hashCode(hasLogPublishingOptions() ? logPublishingOptionsAsStrings() : null);
hashCode = 31 * hashCode + Objects.hashCode(domainEndpointOptions());
hashCode = 31 * hashCode + Objects.hashCode(advancedSecurityOptions());
hashCode = 31 * hashCode + Objects.hashCode(hasTagList() ? tagList() : null);
hashCode = 31 * hashCode + Objects.hashCode(autoTuneOptions());
hashCode = 31 * hashCode + Objects.hashCode(offPeakWindowOptions());
hashCode = 31 * hashCode + Objects.hashCode(softwareUpdateOptions());
return hashCode;
}
@Override
public final boolean equals(Object obj) {
return super.equals(obj) && equalsBySdkFields(obj);
}
@Override
public final boolean equalsBySdkFields(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof CreateDomainRequest)) {
return false;
}
CreateDomainRequest other = (CreateDomainRequest) obj;
return Objects.equals(domainName(), other.domainName()) && Objects.equals(engineVersion(), other.engineVersion())
&& Objects.equals(clusterConfig(), other.clusterConfig()) && Objects.equals(ebsOptions(), other.ebsOptions())
&& Objects.equals(accessPolicies(), other.accessPolicies())
&& Objects.equals(ipAddressTypeAsString(), other.ipAddressTypeAsString())
&& Objects.equals(snapshotOptions(), other.snapshotOptions()) && Objects.equals(vpcOptions(), other.vpcOptions())
&& Objects.equals(cognitoOptions(), other.cognitoOptions())
&& Objects.equals(encryptionAtRestOptions(), other.encryptionAtRestOptions())
&& Objects.equals(nodeToNodeEncryptionOptions(), other.nodeToNodeEncryptionOptions())
&& hasAdvancedOptions() == other.hasAdvancedOptions()
&& Objects.equals(advancedOptions(), other.advancedOptions())
&& hasLogPublishingOptions() == other.hasLogPublishingOptions()
&& Objects.equals(logPublishingOptionsAsStrings(), other.logPublishingOptionsAsStrings())
&& Objects.equals(domainEndpointOptions(), other.domainEndpointOptions())
&& Objects.equals(advancedSecurityOptions(), other.advancedSecurityOptions())
&& hasTagList() == other.hasTagList() && Objects.equals(tagList(), other.tagList())
&& Objects.equals(autoTuneOptions(), other.autoTuneOptions())
&& Objects.equals(offPeakWindowOptions(), other.offPeakWindowOptions())
&& Objects.equals(softwareUpdateOptions(), other.softwareUpdateOptions());
}
/**
* Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
* redacted from this string using a placeholder value.
*/
@Override
public final String toString() {
return ToString.builder("CreateDomainRequest").add("DomainName", domainName()).add("EngineVersion", engineVersion())
.add("ClusterConfig", clusterConfig()).add("EBSOptions", ebsOptions()).add("AccessPolicies", accessPolicies())
.add("IPAddressType", ipAddressTypeAsString()).add("SnapshotOptions", snapshotOptions())
.add("VPCOptions", vpcOptions()).add("CognitoOptions", cognitoOptions())
.add("EncryptionAtRestOptions", encryptionAtRestOptions())
.add("NodeToNodeEncryptionOptions", nodeToNodeEncryptionOptions())
.add("AdvancedOptions", hasAdvancedOptions() ? advancedOptions() : null)
.add("LogPublishingOptions", hasLogPublishingOptions() ? logPublishingOptionsAsStrings() : null)
.add("DomainEndpointOptions", domainEndpointOptions()).add("AdvancedSecurityOptions", advancedSecurityOptions())
.add("TagList", hasTagList() ? tagList() : null).add("AutoTuneOptions", autoTuneOptions())
.add("OffPeakWindowOptions", offPeakWindowOptions()).add("SoftwareUpdateOptions", softwareUpdateOptions())
.build();
}
public final Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "DomainName":
return Optional.ofNullable(clazz.cast(domainName()));
case "EngineVersion":
return Optional.ofNullable(clazz.cast(engineVersion()));
case "ClusterConfig":
return Optional.ofNullable(clazz.cast(clusterConfig()));
case "EBSOptions":
return Optional.ofNullable(clazz.cast(ebsOptions()));
case "AccessPolicies":
return Optional.ofNullable(clazz.cast(accessPolicies()));
case "IPAddressType":
return Optional.ofNullable(clazz.cast(ipAddressTypeAsString()));
case "SnapshotOptions":
return Optional.ofNullable(clazz.cast(snapshotOptions()));
case "VPCOptions":
return Optional.ofNullable(clazz.cast(vpcOptions()));
case "CognitoOptions":
return Optional.ofNullable(clazz.cast(cognitoOptions()));
case "EncryptionAtRestOptions":
return Optional.ofNullable(clazz.cast(encryptionAtRestOptions()));
case "NodeToNodeEncryptionOptions":
return Optional.ofNullable(clazz.cast(nodeToNodeEncryptionOptions()));
case "AdvancedOptions":
return Optional.ofNullable(clazz.cast(advancedOptions()));
case "LogPublishingOptions":
return Optional.ofNullable(clazz.cast(logPublishingOptionsAsStrings()));
case "DomainEndpointOptions":
return Optional.ofNullable(clazz.cast(domainEndpointOptions()));
case "AdvancedSecurityOptions":
return Optional.ofNullable(clazz.cast(advancedSecurityOptions()));
case "TagList":
return Optional.ofNullable(clazz.cast(tagList()));
case "AutoTuneOptions":
return Optional.ofNullable(clazz.cast(autoTuneOptions()));
case "OffPeakWindowOptions":
return Optional.ofNullable(clazz.cast(offPeakWindowOptions()));
case "SoftwareUpdateOptions":
return Optional.ofNullable(clazz.cast(softwareUpdateOptions()));
default:
return Optional.empty();
}
}
@Override
public final List> sdkFields() {
return SDK_FIELDS;
}
private static Function getter(Function g) {
return obj -> g.apply((CreateDomainRequest) obj);
}
private static BiConsumer setter(BiConsumer s) {
return (obj, val) -> s.accept((Builder) obj, val);
}
public interface Builder extends OpenSearchRequest.Builder, SdkPojo, CopyableBuilder {
/**
*
* 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.
*
*
* @param 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.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder domainName(String domainName);
/**
*
* 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 .
*
*
* @param 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 .
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder engineVersion(String engineVersion);
/**
*
* Container for the cluster configuration of a domain.
*
*
* @param clusterConfig
* Container for the cluster configuration of a domain.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder clusterConfig(ClusterConfig clusterConfig);
/**
*
* Container for the cluster configuration of a domain.
*
* This is a convenience method that creates an instance of the {@link ClusterConfig.Builder} avoiding the need
* to create one manually via {@link ClusterConfig#builder()}.
*
*
* When the {@link Consumer} completes, {@link ClusterConfig.Builder#build()} is called immediately and its
* result is passed to {@link #clusterConfig(ClusterConfig)}.
*
* @param clusterConfig
* a consumer that will call methods on {@link ClusterConfig.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #clusterConfig(ClusterConfig)
*/
default Builder clusterConfig(Consumer clusterConfig) {
return clusterConfig(ClusterConfig.builder().applyMutation(clusterConfig).build());
}
/**
*
* Container for the parameters required to enable EBS-based storage for an OpenSearch Service domain.
*
*
* @param ebsOptions
* Container for the parameters required to enable EBS-based storage for an OpenSearch Service domain.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder ebsOptions(EBSOptions ebsOptions);
/**
*
* Container for the parameters required to enable EBS-based storage for an OpenSearch Service domain.
*
* This is a convenience method that creates an instance of the {@link EBSOptions.Builder} avoiding the need to
* create one manually via {@link EBSOptions#builder()}.
*
*
* When the {@link Consumer} completes, {@link EBSOptions.Builder#build()} is called immediately and its result
* is passed to {@link #ebsOptions(EBSOptions)}.
*
* @param ebsOptions
* a consumer that will call methods on {@link EBSOptions.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #ebsOptions(EBSOptions)
*/
default Builder ebsOptions(Consumer ebsOptions) {
return ebsOptions(EBSOptions.builder().applyMutation(ebsOptions).build());
}
/**
*
* Identity and Access Management (IAM) policy document specifying the access policies for the new domain.
*
*
* @param accessPolicies
* Identity and Access Management (IAM) policy document specifying the access policies for the new
* domain.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder accessPolicies(String accessPolicies);
/**
*
* Specify either dual stack or IPv4 as your IP address type. Dual stack allows you to share domain resources
* across IPv4 and IPv6 address types, and is the recommended option. If you set your IP address type to dual
* stack, you can't change your address type later.
*
*
* @param ipAddressType
* Specify either dual stack or IPv4 as your IP address type. Dual stack allows you to share domain
* resources across IPv4 and IPv6 address types, and is the recommended option. If you set your IP
* address type to dual stack, you can't change your address type later.
* @see IPAddressType
* @return Returns a reference to this object so that method calls can be chained together.
* @see IPAddressType
*/
Builder ipAddressType(String ipAddressType);
/**
*
* Specify either dual stack or IPv4 as your IP address type. Dual stack allows you to share domain resources
* across IPv4 and IPv6 address types, and is the recommended option. If you set your IP address type to dual
* stack, you can't change your address type later.
*
*
* @param ipAddressType
* Specify either dual stack or IPv4 as your IP address type. Dual stack allows you to share domain
* resources across IPv4 and IPv6 address types, and is the recommended option. If you set your IP
* address type to dual stack, you can't change your address type later.
* @see IPAddressType
* @return Returns a reference to this object so that method calls can be chained together.
* @see IPAddressType
*/
Builder ipAddressType(IPAddressType ipAddressType);
/**
*
* DEPRECATED. Container for the parameters required to configure automated snapshots of domain indexes.
*
*
* @param snapshotOptions
* DEPRECATED. Container for the parameters required to configure automated snapshots of domain indexes.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder snapshotOptions(SnapshotOptions snapshotOptions);
/**
*
* DEPRECATED. Container for the parameters required to configure automated snapshots of domain indexes.
*
* This is a convenience method that creates an instance of the {@link SnapshotOptions.Builder} avoiding the
* need to create one manually via {@link SnapshotOptions#builder()}.
*
*
* When the {@link Consumer} completes, {@link SnapshotOptions.Builder#build()} is called immediately and its
* result is passed to {@link #snapshotOptions(SnapshotOptions)}.
*
* @param snapshotOptions
* a consumer that will call methods on {@link SnapshotOptions.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #snapshotOptions(SnapshotOptions)
*/
default Builder snapshotOptions(Consumer snapshotOptions) {
return snapshotOptions(SnapshotOptions.builder().applyMutation(snapshotOptions).build());
}
/**
*
* 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 .
*
*
* @param 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 .
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder vpcOptions(VPCOptions 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 .
*
* This is a convenience method that creates an instance of the {@link VPCOptions.Builder} avoiding the need to
* create one manually via {@link VPCOptions#builder()}.
*
*
* When the {@link Consumer} completes, {@link VPCOptions.Builder#build()} is called immediately and its result
* is passed to {@link #vpcOptions(VPCOptions)}.
*
* @param vpcOptions
* a consumer that will call methods on {@link VPCOptions.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #vpcOptions(VPCOptions)
*/
default Builder vpcOptions(Consumer vpcOptions) {
return vpcOptions(VPCOptions.builder().applyMutation(vpcOptions).build());
}
/**
*
* Key-value pairs to configure Amazon Cognito authentication. For more information, see Configuring
* Amazon Cognito authentication for OpenSearch Dashboards .
*
*
* @param cognitoOptions
* Key-value pairs to configure Amazon Cognito authentication. For more information, see Configuring Amazon Cognito authentication for OpenSearch Dashboards .
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder cognitoOptions(CognitoOptions cognitoOptions);
/**
*
* Key-value pairs to configure Amazon Cognito authentication. For more information, see Configuring
* Amazon Cognito authentication for OpenSearch Dashboards .
*
* This is a convenience method that creates an instance of the {@link CognitoOptions.Builder} avoiding the need
* to create one manually via {@link CognitoOptions#builder()}.
*
*
* When the {@link Consumer} completes, {@link CognitoOptions.Builder#build()} is called immediately and its
* result is passed to {@link #cognitoOptions(CognitoOptions)}.
*
* @param cognitoOptions
* a consumer that will call methods on {@link CognitoOptions.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #cognitoOptions(CognitoOptions)
*/
default Builder cognitoOptions(Consumer cognitoOptions) {
return cognitoOptions(CognitoOptions.builder().applyMutation(cognitoOptions).build());
}
/**
*
* Key-value pairs to enable encryption at rest.
*
*
* @param encryptionAtRestOptions
* Key-value pairs to enable encryption at rest.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder encryptionAtRestOptions(EncryptionAtRestOptions encryptionAtRestOptions);
/**
*
* Key-value pairs to enable encryption at rest.
*
* This is a convenience method that creates an instance of the {@link EncryptionAtRestOptions.Builder} avoiding
* the need to create one manually via {@link EncryptionAtRestOptions#builder()}.
*
*
* When the {@link Consumer} completes, {@link EncryptionAtRestOptions.Builder#build()} is called immediately
* and its result is passed to {@link #encryptionAtRestOptions(EncryptionAtRestOptions)}.
*
* @param encryptionAtRestOptions
* a consumer that will call methods on {@link EncryptionAtRestOptions.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #encryptionAtRestOptions(EncryptionAtRestOptions)
*/
default Builder encryptionAtRestOptions(Consumer encryptionAtRestOptions) {
return encryptionAtRestOptions(EncryptionAtRestOptions.builder().applyMutation(encryptionAtRestOptions).build());
}
/**
*
* Enables node-to-node encryption.
*
*
* @param nodeToNodeEncryptionOptions
* Enables node-to-node encryption.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder nodeToNodeEncryptionOptions(NodeToNodeEncryptionOptions nodeToNodeEncryptionOptions);
/**
*
* Enables node-to-node encryption.
*
* This is a convenience method that creates an instance of the {@link NodeToNodeEncryptionOptions.Builder}
* avoiding the need to create one manually via {@link NodeToNodeEncryptionOptions#builder()}.
*
*
* When the {@link Consumer} completes, {@link NodeToNodeEncryptionOptions.Builder#build()} is called
* immediately and its result is passed to {@link #nodeToNodeEncryptionOptions(NodeToNodeEncryptionOptions)}.
*
* @param nodeToNodeEncryptionOptions
* a consumer that will call methods on {@link NodeToNodeEncryptionOptions.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #nodeToNodeEncryptionOptions(NodeToNodeEncryptionOptions)
*/
default Builder nodeToNodeEncryptionOptions(Consumer nodeToNodeEncryptionOptions) {
return nodeToNodeEncryptionOptions(NodeToNodeEncryptionOptions.builder().applyMutation(nodeToNodeEncryptionOptions)
.build());
}
/**
*
* 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 .
*
*
* @param 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 .
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder advancedOptions(Map advancedOptions);
/**
*
* Key-value pairs to configure log publishing.
*
*
* @param logPublishingOptions
* Key-value pairs to configure log publishing.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder logPublishingOptionsWithStrings(Map logPublishingOptions);
/**
*
* Key-value pairs to configure log publishing.
*
*
* @param logPublishingOptions
* Key-value pairs to configure log publishing.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder logPublishingOptions(Map logPublishingOptions);
/**
*
* Additional options for the domain endpoint, such as whether to require HTTPS for all traffic.
*
*
* @param domainEndpointOptions
* Additional options for the domain endpoint, such as whether to require HTTPS for all traffic.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder domainEndpointOptions(DomainEndpointOptions domainEndpointOptions);
/**
*
* Additional options for the domain endpoint, such as whether to require HTTPS for all traffic.
*
* This is a convenience method that creates an instance of the {@link DomainEndpointOptions.Builder} avoiding
* the need to create one manually via {@link DomainEndpointOptions#builder()}.
*
*
* When the {@link Consumer} completes, {@link DomainEndpointOptions.Builder#build()} is called immediately and
* its result is passed to {@link #domainEndpointOptions(DomainEndpointOptions)}.
*
* @param domainEndpointOptions
* a consumer that will call methods on {@link DomainEndpointOptions.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #domainEndpointOptions(DomainEndpointOptions)
*/
default Builder domainEndpointOptions(Consumer domainEndpointOptions) {
return domainEndpointOptions(DomainEndpointOptions.builder().applyMutation(domainEndpointOptions).build());
}
/**
*
* Options for fine-grained access control.
*
*
* @param advancedSecurityOptions
* Options for fine-grained access control.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder advancedSecurityOptions(AdvancedSecurityOptionsInput advancedSecurityOptions);
/**
*
* Options for fine-grained access control.
*
* This is a convenience method that creates an instance of the {@link AdvancedSecurityOptionsInput.Builder}
* avoiding the need to create one manually via {@link AdvancedSecurityOptionsInput#builder()}.
*
*
* When the {@link Consumer} completes, {@link AdvancedSecurityOptionsInput.Builder#build()} is called
* immediately and its result is passed to {@link #advancedSecurityOptions(AdvancedSecurityOptionsInput)}.
*
* @param advancedSecurityOptions
* a consumer that will call methods on {@link AdvancedSecurityOptionsInput.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #advancedSecurityOptions(AdvancedSecurityOptionsInput)
*/
default Builder advancedSecurityOptions(Consumer advancedSecurityOptions) {
return advancedSecurityOptions(AdvancedSecurityOptionsInput.builder().applyMutation(advancedSecurityOptions).build());
}
/**
*
* List of tags to add to the domain upon creation.
*
*
* @param tagList
* List of tags to add to the domain upon creation.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder tagList(Collection tagList);
/**
*
* List of tags to add to the domain upon creation.
*
*
* @param tagList
* List of tags to add to the domain upon creation.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder tagList(Tag... tagList);
/**
*
* List of tags to add to the domain upon creation.
*
* This is a convenience method that creates an instance of the
* {@link software.amazon.awssdk.services.opensearch.model.Tag.Builder} avoiding the need to create one manually
* via {@link software.amazon.awssdk.services.opensearch.model.Tag#builder()}.
*
*
* When the {@link Consumer} completes,
* {@link software.amazon.awssdk.services.opensearch.model.Tag.Builder#build()} is called immediately and its
* result is passed to {@link #tagList(List)}.
*
* @param tagList
* a consumer that will call methods on
* {@link software.amazon.awssdk.services.opensearch.model.Tag.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #tagList(java.util.Collection)
*/
Builder tagList(Consumer... tagList);
/**
*
* Options for Auto-Tune.
*
*
* @param autoTuneOptions
* Options for Auto-Tune.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder autoTuneOptions(AutoTuneOptionsInput autoTuneOptions);
/**
*
* Options for Auto-Tune.
*
* This is a convenience method that creates an instance of the {@link AutoTuneOptionsInput.Builder} avoiding
* the need to create one manually via {@link AutoTuneOptionsInput#builder()}.
*
*
* When the {@link Consumer} completes, {@link AutoTuneOptionsInput.Builder#build()} is called immediately and
* its result is passed to {@link #autoTuneOptions(AutoTuneOptionsInput)}.
*
* @param autoTuneOptions
* a consumer that will call methods on {@link AutoTuneOptionsInput.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #autoTuneOptions(AutoTuneOptionsInput)
*/
default Builder autoTuneOptions(Consumer autoTuneOptions) {
return autoTuneOptions(AutoTuneOptionsInput.builder().applyMutation(autoTuneOptions).build());
}
/**
*
* 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.
*
*
* @param 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.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder offPeakWindowOptions(OffPeakWindowOptions 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.
*
* This is a convenience method that creates an instance of the {@link OffPeakWindowOptions.Builder} avoiding
* the need to create one manually via {@link OffPeakWindowOptions#builder()}.
*
*
* When the {@link Consumer} completes, {@link OffPeakWindowOptions.Builder#build()} is called immediately and
* its result is passed to {@link #offPeakWindowOptions(OffPeakWindowOptions)}.
*
* @param offPeakWindowOptions
* a consumer that will call methods on {@link OffPeakWindowOptions.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #offPeakWindowOptions(OffPeakWindowOptions)
*/
default Builder offPeakWindowOptions(Consumer offPeakWindowOptions) {
return offPeakWindowOptions(OffPeakWindowOptions.builder().applyMutation(offPeakWindowOptions).build());
}
/**
*
* Software update options for the domain.
*
*
* @param softwareUpdateOptions
* Software update options for the domain.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder softwareUpdateOptions(SoftwareUpdateOptions softwareUpdateOptions);
/**
*
* Software update options for the domain.
*
* This is a convenience method that creates an instance of the {@link SoftwareUpdateOptions.Builder} avoiding
* the need to create one manually via {@link SoftwareUpdateOptions#builder()}.
*
*
* When the {@link Consumer} completes, {@link SoftwareUpdateOptions.Builder#build()} is called immediately and
* its result is passed to {@link #softwareUpdateOptions(SoftwareUpdateOptions)}.
*
* @param softwareUpdateOptions
* a consumer that will call methods on {@link SoftwareUpdateOptions.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #softwareUpdateOptions(SoftwareUpdateOptions)
*/
default Builder softwareUpdateOptions(Consumer softwareUpdateOptions) {
return softwareUpdateOptions(SoftwareUpdateOptions.builder().applyMutation(softwareUpdateOptions).build());
}
@Override
Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration);
@Override
Builder overrideConfiguration(Consumer builderConsumer);
}
static final class BuilderImpl extends OpenSearchRequest.BuilderImpl implements Builder {
private String domainName;
private String engineVersion;
private ClusterConfig clusterConfig;
private EBSOptions ebsOptions;
private String accessPolicies;
private String ipAddressType;
private SnapshotOptions snapshotOptions;
private VPCOptions vpcOptions;
private CognitoOptions cognitoOptions;
private EncryptionAtRestOptions encryptionAtRestOptions;
private NodeToNodeEncryptionOptions nodeToNodeEncryptionOptions;
private Map advancedOptions = DefaultSdkAutoConstructMap.getInstance();
private Map logPublishingOptions = DefaultSdkAutoConstructMap.getInstance();
private DomainEndpointOptions domainEndpointOptions;
private AdvancedSecurityOptionsInput advancedSecurityOptions;
private List tagList = DefaultSdkAutoConstructList.getInstance();
private AutoTuneOptionsInput autoTuneOptions;
private OffPeakWindowOptions offPeakWindowOptions;
private SoftwareUpdateOptions softwareUpdateOptions;
private BuilderImpl() {
}
private BuilderImpl(CreateDomainRequest model) {
super(model);
domainName(model.domainName);
engineVersion(model.engineVersion);
clusterConfig(model.clusterConfig);
ebsOptions(model.ebsOptions);
accessPolicies(model.accessPolicies);
ipAddressType(model.ipAddressType);
snapshotOptions(model.snapshotOptions);
vpcOptions(model.vpcOptions);
cognitoOptions(model.cognitoOptions);
encryptionAtRestOptions(model.encryptionAtRestOptions);
nodeToNodeEncryptionOptions(model.nodeToNodeEncryptionOptions);
advancedOptions(model.advancedOptions);
logPublishingOptionsWithStrings(model.logPublishingOptions);
domainEndpointOptions(model.domainEndpointOptions);
advancedSecurityOptions(model.advancedSecurityOptions);
tagList(model.tagList);
autoTuneOptions(model.autoTuneOptions);
offPeakWindowOptions(model.offPeakWindowOptions);
softwareUpdateOptions(model.softwareUpdateOptions);
}
public final String getDomainName() {
return domainName;
}
public final void setDomainName(String domainName) {
this.domainName = domainName;
}
@Override
public final Builder domainName(String domainName) {
this.domainName = domainName;
return this;
}
public final String getEngineVersion() {
return engineVersion;
}
public final void setEngineVersion(String engineVersion) {
this.engineVersion = engineVersion;
}
@Override
public final Builder engineVersion(String engineVersion) {
this.engineVersion = engineVersion;
return this;
}
public final ClusterConfig.Builder getClusterConfig() {
return clusterConfig != null ? clusterConfig.toBuilder() : null;
}
public final void setClusterConfig(ClusterConfig.BuilderImpl clusterConfig) {
this.clusterConfig = clusterConfig != null ? clusterConfig.build() : null;
}
@Override
public final Builder clusterConfig(ClusterConfig clusterConfig) {
this.clusterConfig = clusterConfig;
return this;
}
public final EBSOptions.Builder getEbsOptions() {
return ebsOptions != null ? ebsOptions.toBuilder() : null;
}
public final void setEbsOptions(EBSOptions.BuilderImpl ebsOptions) {
this.ebsOptions = ebsOptions != null ? ebsOptions.build() : null;
}
@Override
public final Builder ebsOptions(EBSOptions ebsOptions) {
this.ebsOptions = ebsOptions;
return this;
}
public final String getAccessPolicies() {
return accessPolicies;
}
public final void setAccessPolicies(String accessPolicies) {
this.accessPolicies = accessPolicies;
}
@Override
public final Builder accessPolicies(String accessPolicies) {
this.accessPolicies = accessPolicies;
return this;
}
public final String getIpAddressType() {
return ipAddressType;
}
public final void setIpAddressType(String ipAddressType) {
this.ipAddressType = ipAddressType;
}
@Override
public final Builder ipAddressType(String ipAddressType) {
this.ipAddressType = ipAddressType;
return this;
}
@Override
public final Builder ipAddressType(IPAddressType ipAddressType) {
this.ipAddressType(ipAddressType == null ? null : ipAddressType.toString());
return this;
}
public final SnapshotOptions.Builder getSnapshotOptions() {
return snapshotOptions != null ? snapshotOptions.toBuilder() : null;
}
public final void setSnapshotOptions(SnapshotOptions.BuilderImpl snapshotOptions) {
this.snapshotOptions = snapshotOptions != null ? snapshotOptions.build() : null;
}
@Override
public final Builder snapshotOptions(SnapshotOptions snapshotOptions) {
this.snapshotOptions = snapshotOptions;
return this;
}
public final VPCOptions.Builder getVpcOptions() {
return vpcOptions != null ? vpcOptions.toBuilder() : null;
}
public final void setVpcOptions(VPCOptions.BuilderImpl vpcOptions) {
this.vpcOptions = vpcOptions != null ? vpcOptions.build() : null;
}
@Override
public final Builder vpcOptions(VPCOptions vpcOptions) {
this.vpcOptions = vpcOptions;
return this;
}
public final CognitoOptions.Builder getCognitoOptions() {
return cognitoOptions != null ? cognitoOptions.toBuilder() : null;
}
public final void setCognitoOptions(CognitoOptions.BuilderImpl cognitoOptions) {
this.cognitoOptions = cognitoOptions != null ? cognitoOptions.build() : null;
}
@Override
public final Builder cognitoOptions(CognitoOptions cognitoOptions) {
this.cognitoOptions = cognitoOptions;
return this;
}
public final EncryptionAtRestOptions.Builder getEncryptionAtRestOptions() {
return encryptionAtRestOptions != null ? encryptionAtRestOptions.toBuilder() : null;
}
public final void setEncryptionAtRestOptions(EncryptionAtRestOptions.BuilderImpl encryptionAtRestOptions) {
this.encryptionAtRestOptions = encryptionAtRestOptions != null ? encryptionAtRestOptions.build() : null;
}
@Override
public final Builder encryptionAtRestOptions(EncryptionAtRestOptions encryptionAtRestOptions) {
this.encryptionAtRestOptions = encryptionAtRestOptions;
return this;
}
public final NodeToNodeEncryptionOptions.Builder getNodeToNodeEncryptionOptions() {
return nodeToNodeEncryptionOptions != null ? nodeToNodeEncryptionOptions.toBuilder() : null;
}
public final void setNodeToNodeEncryptionOptions(NodeToNodeEncryptionOptions.BuilderImpl nodeToNodeEncryptionOptions) {
this.nodeToNodeEncryptionOptions = nodeToNodeEncryptionOptions != null ? nodeToNodeEncryptionOptions.build() : null;
}
@Override
public final Builder nodeToNodeEncryptionOptions(NodeToNodeEncryptionOptions nodeToNodeEncryptionOptions) {
this.nodeToNodeEncryptionOptions = nodeToNodeEncryptionOptions;
return this;
}
public final Map getAdvancedOptions() {
if (advancedOptions instanceof SdkAutoConstructMap) {
return null;
}
return advancedOptions;
}
public final void setAdvancedOptions(Map advancedOptions) {
this.advancedOptions = AdvancedOptionsCopier.copy(advancedOptions);
}
@Override
public final Builder advancedOptions(Map advancedOptions) {
this.advancedOptions = AdvancedOptionsCopier.copy(advancedOptions);
return this;
}
public final Map getLogPublishingOptions() {
Map result = LogPublishingOptionsCopier.copyToBuilder(this.logPublishingOptions);
if (result instanceof SdkAutoConstructMap) {
return null;
}
return result;
}
public final void setLogPublishingOptions(Map logPublishingOptions) {
this.logPublishingOptions = LogPublishingOptionsCopier.copyFromBuilder(logPublishingOptions);
}
@Override
public final Builder logPublishingOptionsWithStrings(Map logPublishingOptions) {
this.logPublishingOptions = LogPublishingOptionsCopier.copy(logPublishingOptions);
return this;
}
@Override
public final Builder logPublishingOptions(Map logPublishingOptions) {
this.logPublishingOptions = LogPublishingOptionsCopier.copyEnumToString(logPublishingOptions);
return this;
}
public final DomainEndpointOptions.Builder getDomainEndpointOptions() {
return domainEndpointOptions != null ? domainEndpointOptions.toBuilder() : null;
}
public final void setDomainEndpointOptions(DomainEndpointOptions.BuilderImpl domainEndpointOptions) {
this.domainEndpointOptions = domainEndpointOptions != null ? domainEndpointOptions.build() : null;
}
@Override
public final Builder domainEndpointOptions(DomainEndpointOptions domainEndpointOptions) {
this.domainEndpointOptions = domainEndpointOptions;
return this;
}
public final AdvancedSecurityOptionsInput.Builder getAdvancedSecurityOptions() {
return advancedSecurityOptions != null ? advancedSecurityOptions.toBuilder() : null;
}
public final void setAdvancedSecurityOptions(AdvancedSecurityOptionsInput.BuilderImpl advancedSecurityOptions) {
this.advancedSecurityOptions = advancedSecurityOptions != null ? advancedSecurityOptions.build() : null;
}
@Override
public final Builder advancedSecurityOptions(AdvancedSecurityOptionsInput advancedSecurityOptions) {
this.advancedSecurityOptions = advancedSecurityOptions;
return this;
}
public final List getTagList() {
List result = TagListCopier.copyToBuilder(this.tagList);
if (result instanceof SdkAutoConstructList) {
return null;
}
return result;
}
public final void setTagList(Collection tagList) {
this.tagList = TagListCopier.copyFromBuilder(tagList);
}
@Override
public final Builder tagList(Collection tagList) {
this.tagList = TagListCopier.copy(tagList);
return this;
}
@Override
@SafeVarargs
public final Builder tagList(Tag... tagList) {
tagList(Arrays.asList(tagList));
return this;
}
@Override
@SafeVarargs
public final Builder tagList(Consumer... tagList) {
tagList(Stream.of(tagList).map(c -> Tag.builder().applyMutation(c).build()).collect(Collectors.toList()));
return this;
}
public final AutoTuneOptionsInput.Builder getAutoTuneOptions() {
return autoTuneOptions != null ? autoTuneOptions.toBuilder() : null;
}
public final void setAutoTuneOptions(AutoTuneOptionsInput.BuilderImpl autoTuneOptions) {
this.autoTuneOptions = autoTuneOptions != null ? autoTuneOptions.build() : null;
}
@Override
public final Builder autoTuneOptions(AutoTuneOptionsInput autoTuneOptions) {
this.autoTuneOptions = autoTuneOptions;
return this;
}
public final OffPeakWindowOptions.Builder getOffPeakWindowOptions() {
return offPeakWindowOptions != null ? offPeakWindowOptions.toBuilder() : null;
}
public final void setOffPeakWindowOptions(OffPeakWindowOptions.BuilderImpl offPeakWindowOptions) {
this.offPeakWindowOptions = offPeakWindowOptions != null ? offPeakWindowOptions.build() : null;
}
@Override
public final Builder offPeakWindowOptions(OffPeakWindowOptions offPeakWindowOptions) {
this.offPeakWindowOptions = offPeakWindowOptions;
return this;
}
public final SoftwareUpdateOptions.Builder getSoftwareUpdateOptions() {
return softwareUpdateOptions != null ? softwareUpdateOptions.toBuilder() : null;
}
public final void setSoftwareUpdateOptions(SoftwareUpdateOptions.BuilderImpl softwareUpdateOptions) {
this.softwareUpdateOptions = softwareUpdateOptions != null ? softwareUpdateOptions.build() : null;
}
@Override
public final Builder softwareUpdateOptions(SoftwareUpdateOptions softwareUpdateOptions) {
this.softwareUpdateOptions = softwareUpdateOptions;
return this;
}
@Override
public Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration) {
super.overrideConfiguration(overrideConfiguration);
return this;
}
@Override
public Builder overrideConfiguration(Consumer builderConsumer) {
super.overrideConfiguration(builderConsumer);
return this;
}
@Override
public CreateDomainRequest build() {
return new CreateDomainRequest(this);
}
@Override
public List> sdkFields() {
return SDK_FIELDS;
}
}
}