
shiver.me.timbers.aws.ssm.MaintenanceWindow Maven / Gradle / Ivy
package shiver.me.timbers.aws.ssm;
import java.util.ArrayList;
import java.util.List;
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;
/**
* MaintenanceWindow
*
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html
*
*/
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@JsonPropertyOrder({
"StartDate",
"Description",
"AllowUnassociatedTargets",
"Cutoff",
"Schedule",
"Duration",
"EndDate",
"Tags",
"Name",
"ScheduleTimezone"
})
public class MaintenanceWindow {
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-startdate
*
*/
@JsonProperty("StartDate")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-startdate")
private CharSequence startDate;
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-description
*
*/
@JsonProperty("Description")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-description")
private CharSequence description;
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-allowunassociatedtargets
*
*/
@JsonProperty("AllowUnassociatedTargets")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-allowunassociatedtargets")
private CharSequence allowUnassociatedTargets;
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-cutoff
*
*/
@JsonProperty("Cutoff")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-cutoff")
private Number cutoff;
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-schedule
*
*/
@JsonProperty("Schedule")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-schedule")
private CharSequence schedule;
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-duration
*
*/
@JsonProperty("Duration")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-duration")
private Number duration;
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-enddate
*
*/
@JsonProperty("EndDate")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-enddate")
private CharSequence endDate;
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-tags
*
*/
@JsonProperty("Tags")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-tags")
private List> tags = new ArrayList>();
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-name
*
*/
@JsonProperty("Name")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-name")
private CharSequence name;
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-scheduletimezone
*
*/
@JsonProperty("ScheduleTimezone")
@JsonPropertyDescription("http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-scheduletimezone")
private CharSequence scheduleTimezone;
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-startdate
*
*/
@JsonIgnore
public CharSequence getStartDate() {
return startDate;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-startdate
*
*/
@JsonIgnore
public void setStartDate(CharSequence startDate) {
this.startDate = startDate;
}
public MaintenanceWindow withStartDate(CharSequence startDate) {
this.startDate = startDate;
return this;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-description
*
*/
@JsonIgnore
public CharSequence getDescription() {
return description;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-description
*
*/
@JsonIgnore
public void setDescription(CharSequence description) {
this.description = description;
}
public MaintenanceWindow withDescription(CharSequence description) {
this.description = description;
return this;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-allowunassociatedtargets
*
*/
@JsonIgnore
public CharSequence getAllowUnassociatedTargets() {
return allowUnassociatedTargets;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-allowunassociatedtargets
*
*/
@JsonIgnore
public void setAllowUnassociatedTargets(CharSequence allowUnassociatedTargets) {
this.allowUnassociatedTargets = allowUnassociatedTargets;
}
public MaintenanceWindow withAllowUnassociatedTargets(CharSequence allowUnassociatedTargets) {
this.allowUnassociatedTargets = allowUnassociatedTargets;
return this;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-cutoff
*
*/
@JsonIgnore
public Number getCutoff() {
return cutoff;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-cutoff
*
*/
@JsonIgnore
public void setCutoff(Number cutoff) {
this.cutoff = cutoff;
}
public MaintenanceWindow withCutoff(Number cutoff) {
this.cutoff = cutoff;
return this;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-schedule
*
*/
@JsonIgnore
public CharSequence getSchedule() {
return schedule;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-schedule
*
*/
@JsonIgnore
public void setSchedule(CharSequence schedule) {
this.schedule = schedule;
}
public MaintenanceWindow withSchedule(CharSequence schedule) {
this.schedule = schedule;
return this;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-duration
*
*/
@JsonIgnore
public Number getDuration() {
return duration;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-duration
*
*/
@JsonIgnore
public void setDuration(Number duration) {
this.duration = duration;
}
public MaintenanceWindow withDuration(Number duration) {
this.duration = duration;
return this;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-enddate
*
*/
@JsonIgnore
public CharSequence getEndDate() {
return endDate;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-enddate
*
*/
@JsonIgnore
public void setEndDate(CharSequence endDate) {
this.endDate = endDate;
}
public MaintenanceWindow withEndDate(CharSequence endDate) {
this.endDate = endDate;
return this;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-tags
*
*/
@JsonIgnore
public List> getTags() {
return tags;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-tags
*
*/
@JsonIgnore
public void setTags(List> tags) {
this.tags = tags;
}
public MaintenanceWindow withTags(List> tags) {
this.tags = tags;
return this;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-name
*
*/
@JsonIgnore
public CharSequence getName() {
return name;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-name
*
*/
@JsonIgnore
public void setName(CharSequence name) {
this.name = name;
}
public MaintenanceWindow withName(CharSequence name) {
this.name = name;
return this;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-scheduletimezone
*
*/
@JsonIgnore
public CharSequence getScheduleTimezone() {
return scheduleTimezone;
}
/**
* http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ssm-maintenancewindow.html#cfn-ssm-maintenancewindow-scheduletimezone
*
*/
@JsonIgnore
public void setScheduleTimezone(CharSequence scheduleTimezone) {
this.scheduleTimezone = scheduleTimezone;
}
public MaintenanceWindow withScheduleTimezone(CharSequence scheduleTimezone) {
this.scheduleTimezone = scheduleTimezone;
return this;
}
@Override
public String toString() {
return new ToStringBuilder(this).append("startDate", startDate).append("description", description).append("allowUnassociatedTargets", allowUnassociatedTargets).append("cutoff", cutoff).append("schedule", schedule).append("duration", duration).append("endDate", endDate).append("tags", tags).append("name", name).append("scheduleTimezone", scheduleTimezone).toString();
}
@Override
public int hashCode() {
return new HashCodeBuilder().append(duration).append(schedule).append(endDate).append(name).append(description).append(allowUnassociatedTargets).append(cutoff).append(scheduleTimezone).append(startDate).append(tags).toHashCode();
}
@Override
public boolean equals(Object other) {
if (other == this) {
return true;
}
if ((other instanceof MaintenanceWindow) == false) {
return false;
}
MaintenanceWindow rhs = ((MaintenanceWindow) other);
return new EqualsBuilder().append(duration, rhs.duration).append(schedule, rhs.schedule).append(endDate, rhs.endDate).append(name, rhs.name).append(description, rhs.description).append(allowUnassociatedTargets, rhs.allowUnassociatedTargets).append(cutoff, rhs.cutoff).append(scheduleTimezone, rhs.scheduleTimezone).append(startDate, rhs.startDate).append(tags, rhs.tags).isEquals();
}
}