shiver.me.timbers.aws.elasticsearch.Domain Maven / Gradle / Ivy
Show all versions of smt-cloudformation-objects Show documentation
package shiver.me.timbers.aws.elasticsearch;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import shiver.me.timbers.aws.Property;
import shiver.me.timbers.aws.Tag;
/**
* Domain
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html
*
*/
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@JsonPropertyOrder({
"AccessPolicies",
"AdvancedOptions",
"CognitoOptions",
"DomainName",
"EBSOptions",
"ElasticsearchClusterConfig",
"ElasticsearchVersion",
"EncryptionAtRestOptions",
"LogPublishingOptions",
"NodeToNodeEncryptionOptions",
"SnapshotOptions",
"Tags",
"VPCOptions"
})
public class Domain {
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-accesspolicies
*
*/
@JsonProperty("AccessPolicies")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-accesspolicies")
private Object accessPolicies;
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-advancedoptions
*
*/
@JsonProperty("AdvancedOptions")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-advancedoptions")
private Map advancedOptions;
/**
* DomainCognitoOptions
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-cognitooptions.html
*
*/
@JsonProperty("CognitoOptions")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-cognitooptions.html")
private Property cognitoOptions;
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-domainname
*
*/
@JsonProperty("DomainName")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-domainname")
private CharSequence domainName;
/**
* DomainEBSOptions
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-ebsoptions.html
*
*/
@JsonProperty("EBSOptions")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-ebsoptions.html")
private Property eBSOptions;
/**
* DomainElasticsearchClusterConfig
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html
*
*/
@JsonProperty("ElasticsearchClusterConfig")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html")
private Property elasticsearchClusterConfig;
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-elasticsearchversion
*
*/
@JsonProperty("ElasticsearchVersion")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-elasticsearchversion")
private CharSequence elasticsearchVersion;
/**
* DomainEncryptionAtRestOptions
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-encryptionatrestoptions.html
*
*/
@JsonProperty("EncryptionAtRestOptions")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-encryptionatrestoptions.html")
private Property encryptionAtRestOptions;
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-logpublishingoptions
*
*/
@JsonProperty("LogPublishingOptions")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-logpublishingoptions")
private Map> logPublishingOptions;
/**
* DomainNodeToNodeEncryptionOptions
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-nodetonodeencryptionoptions.html
*
*/
@JsonProperty("NodeToNodeEncryptionOptions")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-nodetonodeencryptionoptions.html")
private Property nodeToNodeEncryptionOptions;
/**
* DomainSnapshotOptions
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-snapshotoptions.html
*
*/
@JsonProperty("SnapshotOptions")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-snapshotoptions.html")
private Property snapshotOptions;
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-tags
*
*/
@JsonProperty("Tags")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-tags")
private List> tags = new ArrayList>();
/**
* DomainVPCOptions
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-vpcoptions.html
*
*/
@JsonProperty("VPCOptions")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-vpcoptions.html")
private Property vPCOptions;
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-accesspolicies
*
*/
@JsonIgnore
public Object getAccessPolicies() {
return accessPolicies;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-accesspolicies
*
*/
@JsonIgnore
public void setAccessPolicies(Object accessPolicies) {
this.accessPolicies = accessPolicies;
}
public Domain withAccessPolicies(Object accessPolicies) {
this.accessPolicies = accessPolicies;
return this;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-advancedoptions
*
*/
@JsonIgnore
public Map getAdvancedOptions() {
return advancedOptions;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-advancedoptions
*
*/
@JsonIgnore
public void setAdvancedOptions(Map advancedOptions) {
this.advancedOptions = advancedOptions;
}
public Domain withAdvancedOptions(Map advancedOptions) {
this.advancedOptions = advancedOptions;
return this;
}
/**
* DomainCognitoOptions
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-cognitooptions.html
*
*/
@JsonIgnore
public Property getCognitoOptions() {
return cognitoOptions;
}
/**
* DomainCognitoOptions
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-cognitooptions.html
*
*/
@JsonIgnore
public void setCognitoOptions(Property cognitoOptions) {
this.cognitoOptions = cognitoOptions;
}
public Domain withCognitoOptions(Property cognitoOptions) {
this.cognitoOptions = cognitoOptions;
return this;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-domainname
*
*/
@JsonIgnore
public CharSequence getDomainName() {
return domainName;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-domainname
*
*/
@JsonIgnore
public void setDomainName(CharSequence domainName) {
this.domainName = domainName;
}
public Domain withDomainName(CharSequence domainName) {
this.domainName = domainName;
return this;
}
/**
* DomainEBSOptions
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-ebsoptions.html
*
*/
@JsonIgnore
public Property getEBSOptions() {
return eBSOptions;
}
/**
* DomainEBSOptions
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-ebsoptions.html
*
*/
@JsonIgnore
public void setEBSOptions(Property eBSOptions) {
this.eBSOptions = eBSOptions;
}
public Domain withEBSOptions(Property eBSOptions) {
this.eBSOptions = eBSOptions;
return this;
}
/**
* DomainElasticsearchClusterConfig
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html
*
*/
@JsonIgnore
public Property getElasticsearchClusterConfig() {
return elasticsearchClusterConfig;
}
/**
* DomainElasticsearchClusterConfig
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-elasticsearchclusterconfig.html
*
*/
@JsonIgnore
public void setElasticsearchClusterConfig(Property elasticsearchClusterConfig) {
this.elasticsearchClusterConfig = elasticsearchClusterConfig;
}
public Domain withElasticsearchClusterConfig(Property elasticsearchClusterConfig) {
this.elasticsearchClusterConfig = elasticsearchClusterConfig;
return this;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-elasticsearchversion
*
*/
@JsonIgnore
public CharSequence getElasticsearchVersion() {
return elasticsearchVersion;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-elasticsearchversion
*
*/
@JsonIgnore
public void setElasticsearchVersion(CharSequence elasticsearchVersion) {
this.elasticsearchVersion = elasticsearchVersion;
}
public Domain withElasticsearchVersion(CharSequence elasticsearchVersion) {
this.elasticsearchVersion = elasticsearchVersion;
return this;
}
/**
* DomainEncryptionAtRestOptions
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-encryptionatrestoptions.html
*
*/
@JsonIgnore
public Property getEncryptionAtRestOptions() {
return encryptionAtRestOptions;
}
/**
* DomainEncryptionAtRestOptions
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-encryptionatrestoptions.html
*
*/
@JsonIgnore
public void setEncryptionAtRestOptions(Property encryptionAtRestOptions) {
this.encryptionAtRestOptions = encryptionAtRestOptions;
}
public Domain withEncryptionAtRestOptions(Property encryptionAtRestOptions) {
this.encryptionAtRestOptions = encryptionAtRestOptions;
return this;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-logpublishingoptions
*
*/
@JsonIgnore
public Map> getLogPublishingOptions() {
return logPublishingOptions;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-logpublishingoptions
*
*/
@JsonIgnore
public void setLogPublishingOptions(Map> logPublishingOptions) {
this.logPublishingOptions = logPublishingOptions;
}
public Domain withLogPublishingOptions(Map> logPublishingOptions) {
this.logPublishingOptions = logPublishingOptions;
return this;
}
/**
* DomainNodeToNodeEncryptionOptions
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-nodetonodeencryptionoptions.html
*
*/
@JsonIgnore
public Property getNodeToNodeEncryptionOptions() {
return nodeToNodeEncryptionOptions;
}
/**
* DomainNodeToNodeEncryptionOptions
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-nodetonodeencryptionoptions.html
*
*/
@JsonIgnore
public void setNodeToNodeEncryptionOptions(Property nodeToNodeEncryptionOptions) {
this.nodeToNodeEncryptionOptions = nodeToNodeEncryptionOptions;
}
public Domain withNodeToNodeEncryptionOptions(Property nodeToNodeEncryptionOptions) {
this.nodeToNodeEncryptionOptions = nodeToNodeEncryptionOptions;
return this;
}
/**
* DomainSnapshotOptions
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-snapshotoptions.html
*
*/
@JsonIgnore
public Property getSnapshotOptions() {
return snapshotOptions;
}
/**
* DomainSnapshotOptions
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-snapshotoptions.html
*
*/
@JsonIgnore
public void setSnapshotOptions(Property snapshotOptions) {
this.snapshotOptions = snapshotOptions;
}
public Domain withSnapshotOptions(Property snapshotOptions) {
this.snapshotOptions = snapshotOptions;
return this;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-tags
*
*/
@JsonIgnore
public List> getTags() {
return tags;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-elasticsearch-domain.html#cfn-elasticsearch-domain-tags
*
*/
@JsonIgnore
public void setTags(List> tags) {
this.tags = tags;
}
public Domain withTags(List> tags) {
this.tags = tags;
return this;
}
/**
* DomainVPCOptions
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-vpcoptions.html
*
*/
@JsonIgnore
public Property getVPCOptions() {
return vPCOptions;
}
/**
* DomainVPCOptions
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-elasticsearch-domain-vpcoptions.html
*
*/
@JsonIgnore
public void setVPCOptions(Property vPCOptions) {
this.vPCOptions = vPCOptions;
}
public Domain withVPCOptions(Property vPCOptions) {
this.vPCOptions = vPCOptions;
return this;
}
@Override
public java.lang.String toString() {
return new ToStringBuilder(this).append("accessPolicies", accessPolicies).append("advancedOptions", advancedOptions).append("cognitoOptions", cognitoOptions).append("domainName", domainName).append("eBSOptions", eBSOptions).append("elasticsearchClusterConfig", elasticsearchClusterConfig).append("elasticsearchVersion", elasticsearchVersion).append("encryptionAtRestOptions", encryptionAtRestOptions).append("logPublishingOptions", logPublishingOptions).append("nodeToNodeEncryptionOptions", nodeToNodeEncryptionOptions).append("snapshotOptions", snapshotOptions).append("tags", tags).append("vPCOptions", vPCOptions).toString();
}
@Override
public int hashCode() {
return new HashCodeBuilder().append(elasticsearchVersion).append(nodeToNodeEncryptionOptions).append(accessPolicies).append(advancedOptions).append(encryptionAtRestOptions).append(tags).append(elasticsearchClusterConfig).append(eBSOptions).append(domainName).append(cognitoOptions).append(snapshotOptions).append(logPublishingOptions).append(vPCOptions).toHashCode();
}
@Override
public boolean equals(Object other) {
if (other == this) {
return true;
}
if ((other instanceof Domain) == false) {
return false;
}
Domain rhs = ((Domain) other);
return new EqualsBuilder().append(elasticsearchVersion, rhs.elasticsearchVersion).append(nodeToNodeEncryptionOptions, rhs.nodeToNodeEncryptionOptions).append(accessPolicies, rhs.accessPolicies).append(advancedOptions, rhs.advancedOptions).append(encryptionAtRestOptions, rhs.encryptionAtRestOptions).append(tags, rhs.tags).append(elasticsearchClusterConfig, rhs.elasticsearchClusterConfig).append(eBSOptions, rhs.eBSOptions).append(domainName, rhs.domainName).append(cognitoOptions, rhs.cognitoOptions).append(snapshotOptions, rhs.snapshotOptions).append(logPublishingOptions, rhs.logPublishingOptions).append(vPCOptions, rhs.vPCOptions).isEquals();
}
}