com.amazonaws.services.elasticsearch.model.UpdateElasticsearchDomainConfigRequest Maven / Gradle / Ivy
Show all versions of aws-java-sdk-osgi Show documentation
/*
 * Copyright 2010-2016 Amazon.com, Inc. or its affiliates. All Rights
 * Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 *  http://aws.amazon.com/apache2.0
 *
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
package com.amazonaws.services.elasticsearch.model;
import java.io.Serializable;
import com.amazonaws.AmazonWebServiceRequest;
/**
 * 
 * Container for the parameters to the
 * UpdateElasticsearchDomain operation. Specifies the type
 * and number of instances in the domain cluster.
 * 
 */
public class UpdateElasticsearchDomainConfigRequest extends
        AmazonWebServiceRequest implements Serializable, Cloneable {
    /**
     * 
     * The name of the Elasticsearch domain that you are updating.
     * 
     */
    private String domainName;
    /**
     * 
     * The type and number of instances to instantiate for the domain cluster.
     * 
     */
    private ElasticsearchClusterConfig elasticsearchClusterConfig;
    /**
     * 
     * Specify the type and size of the EBS volume that you want to use.
     * 
     */
    private EBSOptions eBSOptions;
    /**
     * 
     * Option to set the time, in UTC format, for the daily automated snapshot.
     * Default value is 0 hours.
     * 
     */
    private SnapshotOptions snapshotOptions;
    /**
     * 
     * Modifies the advanced option to allow references to indices in an HTTP
     * request body. Must be false when configuring access to
     * individual sub-resources. By default, the value is true. See
     * Configuration Advanced Options for more information.
     * 
     */
    private java.util.Map advancedOptions;
    /**
     * 
     * IAM access policy as a JSON-formatted string.
     * 
     */
    private String accessPolicies;
    /**
     * 
     * The name of the Elasticsearch domain that you are updating.
     * 
     * 
     * @param domainName
     *        The name of the Elasticsearch domain that you are updating.
     */
    public void setDomainName(String domainName) {
        this.domainName = domainName;
    }
    /**
     * 
     * The name of the Elasticsearch domain that you are updating.
     * 
     * 
     * @return The name of the Elasticsearch domain that you are updating.
     */
    public String getDomainName() {
        return this.domainName;
    }
    /**
     * 
     * The name of the Elasticsearch domain that you are updating.
     * 
     * 
     * @param domainName
     *        The name of the Elasticsearch domain that you are updating.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public UpdateElasticsearchDomainConfigRequest withDomainName(
            String domainName) {
        setDomainName(domainName);
        return this;
    }
    /**
     * 
     * The type and number of instances to instantiate for the domain cluster.
     * 
     * 
     * @param elasticsearchClusterConfig
     *        The type and number of instances to instantiate for the domain
     *        cluster.
     */
    public void setElasticsearchClusterConfig(
            ElasticsearchClusterConfig elasticsearchClusterConfig) {
        this.elasticsearchClusterConfig = elasticsearchClusterConfig;
    }
    /**
     * 
     * The type and number of instances to instantiate for the domain cluster.
     * 
     * 
     * @return The type and number of instances to instantiate for the domain
     *         cluster.
     */
    public ElasticsearchClusterConfig getElasticsearchClusterConfig() {
        return this.elasticsearchClusterConfig;
    }
    /**
     * 
     * The type and number of instances to instantiate for the domain cluster.
     * 
     * 
     * @param elasticsearchClusterConfig
     *        The type and number of instances to instantiate for the domain
     *        cluster.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public UpdateElasticsearchDomainConfigRequest withElasticsearchClusterConfig(
            ElasticsearchClusterConfig elasticsearchClusterConfig) {
        setElasticsearchClusterConfig(elasticsearchClusterConfig);
        return this;
    }
    /**
     * 
     * Specify the type and size of the EBS volume that you want to use.
     * 
     * 
     * @param eBSOptions
     *        Specify the type and size of the EBS volume that you want to use.
     */
    public void setEBSOptions(EBSOptions eBSOptions) {
        this.eBSOptions = eBSOptions;
    }
    /**
     * 
     * Specify the type and size of the EBS volume that you want to use.
     * 
     * 
     * @return Specify the type and size of the EBS volume that you want to use.
     */
    public EBSOptions getEBSOptions() {
        return this.eBSOptions;
    }
    /**
     * 
     * Specify the type and size of the EBS volume that you want to use.
     * 
     * 
     * @param eBSOptions
     *        Specify the type and size of the EBS volume that you want to use.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public UpdateElasticsearchDomainConfigRequest withEBSOptions(
            EBSOptions eBSOptions) {
        setEBSOptions(eBSOptions);
        return this;
    }
    /**
     * 
     * Option to set the time, in UTC format, for the daily automated snapshot.
     * Default value is 0 hours.
     * 
     * 
     * @param snapshotOptions
     *        Option to set the time, in UTC format, for the daily automated
     *        snapshot. Default value is 0 hours.
     */
    public void setSnapshotOptions(SnapshotOptions snapshotOptions) {
        this.snapshotOptions = snapshotOptions;
    }
    /**
     * 
     * Option to set the time, in UTC format, for the daily automated snapshot.
     * Default value is 0 hours.
     * 
     * 
     * @return Option to set the time, in UTC format, for the daily automated
     *         snapshot. Default value is 0 hours.
     */
    public SnapshotOptions getSnapshotOptions() {
        return this.snapshotOptions;
    }
    /**
     * 
     * Option to set the time, in UTC format, for the daily automated snapshot.
     * Default value is 0 hours.
     * 
     * 
     * @param snapshotOptions
     *        Option to set the time, in UTC format, for the daily automated
     *        snapshot. Default value is 0 hours.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public UpdateElasticsearchDomainConfigRequest withSnapshotOptions(
            SnapshotOptions snapshotOptions) {
        setSnapshotOptions(snapshotOptions);
        return this;
    }
    /**
     * 
     * Modifies the advanced option to allow references to indices in an HTTP
     * request body. Must be false when configuring access to
     * individual sub-resources. By default, the value is true. See
     * Configuration Advanced Options for more information.
     * 
     * 
     * @return Modifies the advanced option to allow references to indices in an
     *         HTTP request body. Must be false when configuring
     *         access to individual sub-resources. By default, the value is
     *         true. See Configuration Advanced Options for more
     *         information.
     */
    public java.util.Map getAdvancedOptions() {
        return advancedOptions;
    }
    /**
     * 
     * Modifies the advanced option to allow references to indices in an HTTP
     * request body. Must be false when configuring access to
     * individual sub-resources. By default, the value is true. See
     * Configuration Advanced Options for more information.
     * 
     * 
     * @param advancedOptions
     *        Modifies the advanced option to allow references to indices in an
     *        HTTP request body. Must be false when configuring
     *        access to individual sub-resources. By default, the value is
     *        true. See Configuration Advanced Options for more
     *        information.
     */
    public void setAdvancedOptions(java.util.Map advancedOptions) {
        this.advancedOptions = advancedOptions;
    }
    /**
     * 
     * Modifies the advanced option to allow references to indices in an HTTP
     * request body. Must be false when configuring access to
     * individual sub-resources. By default, the value is true. See
     * Configuration Advanced Options for more information.
     * 
     * 
     * @param advancedOptions
     *        Modifies the advanced option to allow references to indices in an
     *        HTTP request body. Must be false when configuring
     *        access to individual sub-resources. By default, the value is
     *        true. See Configuration Advanced Options for more
     *        information.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public UpdateElasticsearchDomainConfigRequest withAdvancedOptions(
            java.util.Map advancedOptions) {
        setAdvancedOptions(advancedOptions);
        return this;
    }
    public UpdateElasticsearchDomainConfigRequest addAdvancedOptionsEntry(
            String key, String value) {
        if (null == this.advancedOptions) {
            this.advancedOptions = new java.util.HashMap();
        }
        if (this.advancedOptions.containsKey(key))
            throw new IllegalArgumentException("Duplicated keys ("
                    + key.toString() + ") are provided.");
        this.advancedOptions.put(key, value);
        return this;
    }
    /**
     * Removes all the entries added into AdvancedOptions. <p> Returns a
     * reference to this object so that method calls can be chained together.
     */
    public UpdateElasticsearchDomainConfigRequest clearAdvancedOptionsEntries() {
        this.advancedOptions = null;
        return this;
    }
    /**
     * 
     * IAM access policy as a JSON-formatted string.
     * 
     * 
     * @param accessPolicies
     *        IAM access policy as a JSON-formatted string.
     */
    public void setAccessPolicies(String accessPolicies) {
        this.accessPolicies = accessPolicies;
    }
    /**
     * 
     * IAM access policy as a JSON-formatted string.
     * 
     * 
     * @return IAM access policy as a JSON-formatted string.
     */
    public String getAccessPolicies() {
        return this.accessPolicies;
    }
    /**
     * 
     * IAM access policy as a JSON-formatted string.
     * 
     * 
     * @param accessPolicies
     *        IAM access policy as a JSON-formatted string.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public UpdateElasticsearchDomainConfigRequest withAccessPolicies(
            String accessPolicies) {
        setAccessPolicies(accessPolicies);
        return this;
    }
    /**
     * Returns a string representation of this object; useful for testing and
     * debugging.
     *
     * @return A string representation of this object.
     *
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("{");
        if (getDomainName() != null)
            sb.append("DomainName: " + getDomainName() + ",");
        if (getElasticsearchClusterConfig() != null)
            sb.append("ElasticsearchClusterConfig: "
                    + getElasticsearchClusterConfig() + ",");
        if (getEBSOptions() != null)
            sb.append("EBSOptions: " + getEBSOptions() + ",");
        if (getSnapshotOptions() != null)
            sb.append("SnapshotOptions: " + getSnapshotOptions() + ",");
        if (getAdvancedOptions() != null)
            sb.append("AdvancedOptions: " + getAdvancedOptions() + ",");
        if (getAccessPolicies() != null)
            sb.append("AccessPolicies: " + getAccessPolicies());
        sb.append("}");
        return sb.toString();
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (obj instanceof UpdateElasticsearchDomainConfigRequest == false)
            return false;
        UpdateElasticsearchDomainConfigRequest other = (UpdateElasticsearchDomainConfigRequest) obj;
        if (other.getDomainName() == null ^ this.getDomainName() == null)
            return false;
        if (other.getDomainName() != null
                && other.getDomainName().equals(this.getDomainName()) == false)
            return false;
        if (other.getElasticsearchClusterConfig() == null
                ^ this.getElasticsearchClusterConfig() == null)
            return false;
        if (other.getElasticsearchClusterConfig() != null
                && other.getElasticsearchClusterConfig().equals(
                        this.getElasticsearchClusterConfig()) == false)
            return false;
        if (other.getEBSOptions() == null ^ this.getEBSOptions() == null)
            return false;
        if (other.getEBSOptions() != null
                && other.getEBSOptions().equals(this.getEBSOptions()) == false)
            return false;
        if (other.getSnapshotOptions() == null
                ^ this.getSnapshotOptions() == null)
            return false;
        if (other.getSnapshotOptions() != null
                && other.getSnapshotOptions().equals(this.getSnapshotOptions()) == false)
            return false;
        if (other.getAdvancedOptions() == null
                ^ this.getAdvancedOptions() == null)
            return false;
        if (other.getAdvancedOptions() != null
                && other.getAdvancedOptions().equals(this.getAdvancedOptions()) == false)
            return false;
        if (other.getAccessPolicies() == null
                ^ this.getAccessPolicies() == null)
            return false;
        if (other.getAccessPolicies() != null
                && other.getAccessPolicies().equals(this.getAccessPolicies()) == false)
            return false;
        return true;
    }
    @Override
    public int hashCode() {
        final int prime = 31;
        int hashCode = 1;
        hashCode = prime * hashCode
                + ((getDomainName() == null) ? 0 : getDomainName().hashCode());
        hashCode = prime
                * hashCode
                + ((getElasticsearchClusterConfig() == null) ? 0
                        : getElasticsearchClusterConfig().hashCode());
        hashCode = prime * hashCode
                + ((getEBSOptions() == null) ? 0 : getEBSOptions().hashCode());
        hashCode = prime
                * hashCode
                + ((getSnapshotOptions() == null) ? 0 : getSnapshotOptions()
                        .hashCode());
        hashCode = prime
                * hashCode
                + ((getAdvancedOptions() == null) ? 0 : getAdvancedOptions()
                        .hashCode());
        hashCode = prime
                * hashCode
                + ((getAccessPolicies() == null) ? 0 : getAccessPolicies()
                        .hashCode());
        return hashCode;
    }
    @Override
    public UpdateElasticsearchDomainConfigRequest clone() {
        return (UpdateElasticsearchDomainConfigRequest) super.clone();
    }
}