
shiver.me.timbers.aws.elasticloadbalancing.LoadBalancer Maven / Gradle / Ivy
package shiver.me.timbers.aws.elasticloadbalancing;
import java.util.ArrayList;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
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 com.fasterxml.jackson.databind.annotation.JsonDeserialize;
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;
/**
* LoadBalancer
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html
*
*/
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@JsonPropertyOrder({
"AccessLoggingPolicy",
"AppCookieStickinessPolicy",
"AvailabilityZones",
"ConnectionDrainingPolicy",
"ConnectionSettings",
"CrossZone",
"HealthCheck",
"Instances",
"LBCookieStickinessPolicy",
"Listeners",
"LoadBalancerName",
"Policies",
"Scheme",
"SecurityGroups",
"Subnets",
"Tags"
})
public class LoadBalancer {
/**
* LoadBalancerAccessLoggingPolicy
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-accessloggingpolicy.html
*
*/
@JsonProperty("AccessLoggingPolicy")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-accessloggingpolicy.html")
private Property accessLoggingPolicy;
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-appcookiestickinesspolicy
*
*/
@JsonProperty("AppCookieStickinessPolicy")
@JsonDeserialize(as = java.util.LinkedHashSet.class)
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-appcookiestickinesspolicy")
private Set> appCookieStickinessPolicy = new LinkedHashSet>();
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-availabilityzones
*
*/
@JsonProperty("AvailabilityZones")
@JsonDeserialize(as = java.util.LinkedHashSet.class)
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-availabilityzones")
private Set availabilityZones = new LinkedHashSet();
/**
* LoadBalancerConnectionDrainingPolicy
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectiondrainingpolicy.html
*
*/
@JsonProperty("ConnectionDrainingPolicy")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectiondrainingpolicy.html")
private Property connectionDrainingPolicy;
/**
* LoadBalancerConnectionSettings
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectionsettings.html
*
*/
@JsonProperty("ConnectionSettings")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectionsettings.html")
private Property connectionSettings;
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-crosszone
*
*/
@JsonProperty("CrossZone")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-crosszone")
private CharSequence crossZone;
/**
* LoadBalancerHealthCheck
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-health-check.html
*
*/
@JsonProperty("HealthCheck")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-health-check.html")
private Property healthCheck;
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-instances
*
*/
@JsonProperty("Instances")
@JsonDeserialize(as = java.util.LinkedHashSet.class)
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-instances")
private Set instances = new LinkedHashSet();
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-lbcookiestickinesspolicy
*
*/
@JsonProperty("LBCookieStickinessPolicy")
@JsonDeserialize(as = java.util.LinkedHashSet.class)
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-lbcookiestickinesspolicy")
private Set> lBCookieStickinessPolicy = new LinkedHashSet>();
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-listeners
*
*/
@JsonProperty("Listeners")
@JsonDeserialize(as = java.util.LinkedHashSet.class)
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-listeners")
private Set> listeners = new LinkedHashSet>();
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-elbname
*
*/
@JsonProperty("LoadBalancerName")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-elbname")
private CharSequence loadBalancerName;
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-policies
*
*/
@JsonProperty("Policies")
@JsonDeserialize(as = java.util.LinkedHashSet.class)
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-policies")
private Set> policies = new LinkedHashSet>();
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-scheme
*
*/
@JsonProperty("Scheme")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-scheme")
private CharSequence scheme;
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-securitygroups
*
*/
@JsonProperty("SecurityGroups")
@JsonDeserialize(as = java.util.LinkedHashSet.class)
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-securitygroups")
private Set securityGroups = new LinkedHashSet();
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-subnets
*
*/
@JsonProperty("Subnets")
@JsonDeserialize(as = java.util.LinkedHashSet.class)
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-subnets")
private Set subnets = new LinkedHashSet();
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-elasticloadbalancing-loadbalancer-tags
*
*/
@JsonProperty("Tags")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-elasticloadbalancing-loadbalancer-tags")
private List> tags = new ArrayList>();
/**
* LoadBalancerAccessLoggingPolicy
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-accessloggingpolicy.html
*
*/
@JsonIgnore
public Property getAccessLoggingPolicy() {
return accessLoggingPolicy;
}
/**
* LoadBalancerAccessLoggingPolicy
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-accessloggingpolicy.html
*
*/
@JsonIgnore
public void setAccessLoggingPolicy(Property accessLoggingPolicy) {
this.accessLoggingPolicy = accessLoggingPolicy;
}
public LoadBalancer withAccessLoggingPolicy(Property accessLoggingPolicy) {
this.accessLoggingPolicy = accessLoggingPolicy;
return this;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-appcookiestickinesspolicy
*
*/
@JsonIgnore
public Set> getAppCookieStickinessPolicy() {
return appCookieStickinessPolicy;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-appcookiestickinesspolicy
*
*/
@JsonIgnore
public void setAppCookieStickinessPolicy(Set> appCookieStickinessPolicy) {
this.appCookieStickinessPolicy = appCookieStickinessPolicy;
}
public LoadBalancer withAppCookieStickinessPolicy(Set> appCookieStickinessPolicy) {
this.appCookieStickinessPolicy = appCookieStickinessPolicy;
return this;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-availabilityzones
*
*/
@JsonIgnore
public Set getAvailabilityZones() {
return availabilityZones;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-availabilityzones
*
*/
@JsonIgnore
public void setAvailabilityZones(Set availabilityZones) {
this.availabilityZones = availabilityZones;
}
public LoadBalancer withAvailabilityZones(Set availabilityZones) {
this.availabilityZones = availabilityZones;
return this;
}
/**
* LoadBalancerConnectionDrainingPolicy
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectiondrainingpolicy.html
*
*/
@JsonIgnore
public Property getConnectionDrainingPolicy() {
return connectionDrainingPolicy;
}
/**
* LoadBalancerConnectionDrainingPolicy
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectiondrainingpolicy.html
*
*/
@JsonIgnore
public void setConnectionDrainingPolicy(Property connectionDrainingPolicy) {
this.connectionDrainingPolicy = connectionDrainingPolicy;
}
public LoadBalancer withConnectionDrainingPolicy(Property connectionDrainingPolicy) {
this.connectionDrainingPolicy = connectionDrainingPolicy;
return this;
}
/**
* LoadBalancerConnectionSettings
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectionsettings.html
*
*/
@JsonIgnore
public Property getConnectionSettings() {
return connectionSettings;
}
/**
* LoadBalancerConnectionSettings
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-connectionsettings.html
*
*/
@JsonIgnore
public void setConnectionSettings(Property connectionSettings) {
this.connectionSettings = connectionSettings;
}
public LoadBalancer withConnectionSettings(Property connectionSettings) {
this.connectionSettings = connectionSettings;
return this;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-crosszone
*
*/
@JsonIgnore
public CharSequence getCrossZone() {
return crossZone;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-crosszone
*
*/
@JsonIgnore
public void setCrossZone(CharSequence crossZone) {
this.crossZone = crossZone;
}
public LoadBalancer withCrossZone(CharSequence crossZone) {
this.crossZone = crossZone;
return this;
}
/**
* LoadBalancerHealthCheck
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-health-check.html
*
*/
@JsonIgnore
public Property getHealthCheck() {
return healthCheck;
}
/**
* LoadBalancerHealthCheck
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb-health-check.html
*
*/
@JsonIgnore
public void setHealthCheck(Property healthCheck) {
this.healthCheck = healthCheck;
}
public LoadBalancer withHealthCheck(Property healthCheck) {
this.healthCheck = healthCheck;
return this;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-instances
*
*/
@JsonIgnore
public Set getInstances() {
return instances;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-instances
*
*/
@JsonIgnore
public void setInstances(Set instances) {
this.instances = instances;
}
public LoadBalancer withInstances(Set instances) {
this.instances = instances;
return this;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-lbcookiestickinesspolicy
*
*/
@JsonIgnore
public Set> getLBCookieStickinessPolicy() {
return lBCookieStickinessPolicy;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-lbcookiestickinesspolicy
*
*/
@JsonIgnore
public void setLBCookieStickinessPolicy(Set> lBCookieStickinessPolicy) {
this.lBCookieStickinessPolicy = lBCookieStickinessPolicy;
}
public LoadBalancer withLBCookieStickinessPolicy(Set> lBCookieStickinessPolicy) {
this.lBCookieStickinessPolicy = lBCookieStickinessPolicy;
return this;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-listeners
*
*/
@JsonIgnore
public Set> getListeners() {
return listeners;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-listeners
*
*/
@JsonIgnore
public void setListeners(Set> listeners) {
this.listeners = listeners;
}
public LoadBalancer withListeners(Set> listeners) {
this.listeners = listeners;
return this;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-elbname
*
*/
@JsonIgnore
public CharSequence getLoadBalancerName() {
return loadBalancerName;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-elbname
*
*/
@JsonIgnore
public void setLoadBalancerName(CharSequence loadBalancerName) {
this.loadBalancerName = loadBalancerName;
}
public LoadBalancer withLoadBalancerName(CharSequence loadBalancerName) {
this.loadBalancerName = loadBalancerName;
return this;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-policies
*
*/
@JsonIgnore
public Set> getPolicies() {
return policies;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-policies
*
*/
@JsonIgnore
public void setPolicies(Set> policies) {
this.policies = policies;
}
public LoadBalancer withPolicies(Set> policies) {
this.policies = policies;
return this;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-scheme
*
*/
@JsonIgnore
public CharSequence getScheme() {
return scheme;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-scheme
*
*/
@JsonIgnore
public void setScheme(CharSequence scheme) {
this.scheme = scheme;
}
public LoadBalancer withScheme(CharSequence scheme) {
this.scheme = scheme;
return this;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-securitygroups
*
*/
@JsonIgnore
public Set getSecurityGroups() {
return securityGroups;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-securitygroups
*
*/
@JsonIgnore
public void setSecurityGroups(Set securityGroups) {
this.securityGroups = securityGroups;
}
public LoadBalancer withSecurityGroups(Set securityGroups) {
this.securityGroups = securityGroups;
return this;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-subnets
*
*/
@JsonIgnore
public Set getSubnets() {
return subnets;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-ec2-elb-subnets
*
*/
@JsonIgnore
public void setSubnets(Set subnets) {
this.subnets = subnets;
}
public LoadBalancer withSubnets(Set subnets) {
this.subnets = subnets;
return this;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-elasticloadbalancing-loadbalancer-tags
*
*/
@JsonIgnore
public List> getTags() {
return tags;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-elb.html#cfn-elasticloadbalancing-loadbalancer-tags
*
*/
@JsonIgnore
public void setTags(List> tags) {
this.tags = tags;
}
public LoadBalancer withTags(List> tags) {
this.tags = tags;
return this;
}
@Override
public String toString() {
return new ToStringBuilder(this).append("accessLoggingPolicy", accessLoggingPolicy).append("appCookieStickinessPolicy", appCookieStickinessPolicy).append("availabilityZones", availabilityZones).append("connectionDrainingPolicy", connectionDrainingPolicy).append("connectionSettings", connectionSettings).append("crossZone", crossZone).append("healthCheck", healthCheck).append("instances", instances).append("lBCookieStickinessPolicy", lBCookieStickinessPolicy).append("listeners", listeners).append("loadBalancerName", loadBalancerName).append("policies", policies).append("scheme", scheme).append("securityGroups", securityGroups).append("subnets", subnets).append("tags", tags).toString();
}
@Override
public int hashCode() {
return new HashCodeBuilder().append(accessLoggingPolicy).append(crossZone).append(lBCookieStickinessPolicy).append(listeners).append(scheme).append(instances).append(policies).append(availabilityZones).append(tags).append(connectionDrainingPolicy).append(loadBalancerName).append(healthCheck).append(connectionSettings).append(securityGroups).append(subnets).append(appCookieStickinessPolicy).toHashCode();
}
@Override
public boolean equals(Object other) {
if (other == this) {
return true;
}
if ((other instanceof LoadBalancer) == false) {
return false;
}
LoadBalancer rhs = ((LoadBalancer) other);
return new EqualsBuilder().append(accessLoggingPolicy, rhs.accessLoggingPolicy).append(crossZone, rhs.crossZone).append(lBCookieStickinessPolicy, rhs.lBCookieStickinessPolicy).append(listeners, rhs.listeners).append(scheme, rhs.scheme).append(instances, rhs.instances).append(policies, rhs.policies).append(availabilityZones, rhs.availabilityZones).append(tags, rhs.tags).append(connectionDrainingPolicy, rhs.connectionDrainingPolicy).append(loadBalancerName, rhs.loadBalancerName).append(healthCheck, rhs.healthCheck).append(connectionSettings, rhs.connectionSettings).append(securityGroups, rhs.securityGroups).append(subnets, rhs.subnets).append(appCookieStickinessPolicy, rhs.appCookieStickinessPolicy).isEquals();
}
}