com.amazonaws.services.ec2.model.DescribeScheduledInstanceAvailabilityRequest Maven / Gradle / Ivy
Show all versions of aws-java-sdk-ec2 Show documentation
/*
 * Copyright 2011-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.ec2.model;
import java.io.Serializable;
import com.amazonaws.AmazonWebServiceRequest;
import com.amazonaws.Request;
import com.amazonaws.services.ec2.model.transform.DescribeScheduledInstanceAvailabilityRequestMarshaller;
/**
 * 
 * Contains the parameters for DescribeScheduledInstanceAvailability.
 * 
 */
public class DescribeScheduledInstanceAvailabilityRequest extends
        AmazonWebServiceRequest implements Serializable, Cloneable,
        DryRunSupportedRequest {
    /**
     * 
     * The schedule recurrence.
     * 
     */
    private ScheduledInstanceRecurrenceRequest recurrence;
    /**
     * 
     * The time period for the first schedule to start.
     * 
     */
    private SlotDateTimeRangeRequest firstSlotStartTimeRange;
    /**
     * 
     * The minimum available duration, in hours. The minimum required duration
     * is 1,200 hours per year. For example, the minimum daily schedule is 4
     * hours, the minimum weekly schedule is 24 hours, and the minimum monthly
     * schedule is 100 hours.
     * 
     */
    private Integer minSlotDurationInHours;
    /**
     * 
     * The maximum available duration, in hours. This value must be greater than
     * MinSlotDurationInHours and less than 1,720.
     * 
     */
    private Integer maxSlotDurationInHours;
    /**
     * 
     * The token for the next set of results.
     * 
     */
    private String nextToken;
    /**
     * 
     * The maximum number of results to return in a single call. This value can
     * be between 5 and 300. The default value is 300. To retrieve the remaining
     * results, make another call with the returned NextToken
     * value.
     * 
     */
    private Integer maxResults;
    /**
     * 
     * One or more filters.
     * 
     * 
     * - 
     * 
     * availability-zone - The Availability Zone (for example,
     * us-west-2a).
     * 
     *  
     * - 
     * 
     * instance-type - The instance type (for example,
     * c4.large).
     * 
     *  
     * - 
     * 
     * network-platform - The network platform (
     * EC2-Classic or EC2-VPC).
     * 
     *  
     * - 
     * 
     * platform - The platform (Linux/UNIX or
     * Windows).
     * 
     *  
     * 
     */
    private com.amazonaws.internal.SdkInternalList filters;
    /**
     * 
     * The schedule recurrence.
     * 
     * 
     * @param recurrence
     *        The schedule recurrence.
     */
    public void setRecurrence(ScheduledInstanceRecurrenceRequest recurrence) {
        this.recurrence = recurrence;
    }
    /**
     * 
     * The schedule recurrence.
     * 
     * 
     * @return The schedule recurrence.
     */
    public ScheduledInstanceRecurrenceRequest getRecurrence() {
        return this.recurrence;
    }
    /**
     * 
     * The schedule recurrence.
     * 
     * 
     * @param recurrence
     *        The schedule recurrence.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeScheduledInstanceAvailabilityRequest withRecurrence(
            ScheduledInstanceRecurrenceRequest recurrence) {
        setRecurrence(recurrence);
        return this;
    }
    /**
     * 
     * The time period for the first schedule to start.
     * 
     * 
     * @param firstSlotStartTimeRange
     *        The time period for the first schedule to start.
     */
    public void setFirstSlotStartTimeRange(
            SlotDateTimeRangeRequest firstSlotStartTimeRange) {
        this.firstSlotStartTimeRange = firstSlotStartTimeRange;
    }
    /**
     * 
     * The time period for the first schedule to start.
     * 
     * 
     * @return The time period for the first schedule to start.
     */
    public SlotDateTimeRangeRequest getFirstSlotStartTimeRange() {
        return this.firstSlotStartTimeRange;
    }
    /**
     * 
     * The time period for the first schedule to start.
     * 
     * 
     * @param firstSlotStartTimeRange
     *        The time period for the first schedule to start.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeScheduledInstanceAvailabilityRequest withFirstSlotStartTimeRange(
            SlotDateTimeRangeRequest firstSlotStartTimeRange) {
        setFirstSlotStartTimeRange(firstSlotStartTimeRange);
        return this;
    }
    /**
     * 
     * The minimum available duration, in hours. The minimum required duration
     * is 1,200 hours per year. For example, the minimum daily schedule is 4
     * hours, the minimum weekly schedule is 24 hours, and the minimum monthly
     * schedule is 100 hours.
     * 
     * 
     * @param minSlotDurationInHours
     *        The minimum available duration, in hours. The minimum required
     *        duration is 1,200 hours per year. For example, the minimum daily
     *        schedule is 4 hours, the minimum weekly schedule is 24 hours, and
     *        the minimum monthly schedule is 100 hours.
     */
    public void setMinSlotDurationInHours(Integer minSlotDurationInHours) {
        this.minSlotDurationInHours = minSlotDurationInHours;
    }
    /**
     * 
     * The minimum available duration, in hours. The minimum required duration
     * is 1,200 hours per year. For example, the minimum daily schedule is 4
     * hours, the minimum weekly schedule is 24 hours, and the minimum monthly
     * schedule is 100 hours.
     * 
     * 
     * @return The minimum available duration, in hours. The minimum required
     *         duration is 1,200 hours per year. For example, the minimum daily
     *         schedule is 4 hours, the minimum weekly schedule is 24 hours, and
     *         the minimum monthly schedule is 100 hours.
     */
    public Integer getMinSlotDurationInHours() {
        return this.minSlotDurationInHours;
    }
    /**
     * 
     * The minimum available duration, in hours. The minimum required duration
     * is 1,200 hours per year. For example, the minimum daily schedule is 4
     * hours, the minimum weekly schedule is 24 hours, and the minimum monthly
     * schedule is 100 hours.
     * 
     * 
     * @param minSlotDurationInHours
     *        The minimum available duration, in hours. The minimum required
     *        duration is 1,200 hours per year. For example, the minimum daily
     *        schedule is 4 hours, the minimum weekly schedule is 24 hours, and
     *        the minimum monthly schedule is 100 hours.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeScheduledInstanceAvailabilityRequest withMinSlotDurationInHours(
            Integer minSlotDurationInHours) {
        setMinSlotDurationInHours(minSlotDurationInHours);
        return this;
    }
    /**
     * 
     * The maximum available duration, in hours. This value must be greater than
     * MinSlotDurationInHours and less than 1,720.
     * 
     * 
     * @param maxSlotDurationInHours
     *        The maximum available duration, in hours. This value must be
     *        greater than MinSlotDurationInHours and less than
     *        1,720.
     */
    public void setMaxSlotDurationInHours(Integer maxSlotDurationInHours) {
        this.maxSlotDurationInHours = maxSlotDurationInHours;
    }
    /**
     * 
     * The maximum available duration, in hours. This value must be greater than
     * MinSlotDurationInHours and less than 1,720.
     * 
     * 
     * @return The maximum available duration, in hours. This value must be
     *         greater than MinSlotDurationInHours and less than
     *         1,720.
     */
    public Integer getMaxSlotDurationInHours() {
        return this.maxSlotDurationInHours;
    }
    /**
     * 
     * The maximum available duration, in hours. This value must be greater than
     * MinSlotDurationInHours and less than 1,720.
     * 
     * 
     * @param maxSlotDurationInHours
     *        The maximum available duration, in hours. This value must be
     *        greater than MinSlotDurationInHours and less than
     *        1,720.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeScheduledInstanceAvailabilityRequest withMaxSlotDurationInHours(
            Integer maxSlotDurationInHours) {
        setMaxSlotDurationInHours(maxSlotDurationInHours);
        return this;
    }
    /**
     * 
     * The token for the next set of results.
     * 
     * 
     * @param nextToken
     *        The token for the next set of results.
     */
    public void setNextToken(String nextToken) {
        this.nextToken = nextToken;
    }
    /**
     * 
     * The token for the next set of results.
     * 
     * 
     * @return The token for the next set of results.
     */
    public String getNextToken() {
        return this.nextToken;
    }
    /**
     * 
     * The token for the next set of results.
     * 
     * 
     * @param nextToken
     *        The token for the next set of results.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeScheduledInstanceAvailabilityRequest withNextToken(
            String nextToken) {
        setNextToken(nextToken);
        return this;
    }
    /**
     * 
     * The maximum number of results to return in a single call. This value can
     * be between 5 and 300. The default value is 300. To retrieve the remaining
     * results, make another call with the returned NextToken
     * value.
     * 
     * 
     * @param maxResults
     *        The maximum number of results to return in a single call. This
     *        value can be between 5 and 300. The default value is 300. To
     *        retrieve the remaining results, make another call with the
     *        returned NextToken value.
     */
    public void setMaxResults(Integer maxResults) {
        this.maxResults = maxResults;
    }
    /**
     * 
     * The maximum number of results to return in a single call. This value can
     * be between 5 and 300. The default value is 300. To retrieve the remaining
     * results, make another call with the returned NextToken
     * value.
     * 
     * 
     * @return The maximum number of results to return in a single call. This
     *         value can be between 5 and 300. The default value is 300. To
     *         retrieve the remaining results, make another call with the
     *         returned NextToken value.
     */
    public Integer getMaxResults() {
        return this.maxResults;
    }
    /**
     * 
     * The maximum number of results to return in a single call. This value can
     * be between 5 and 300. The default value is 300. To retrieve the remaining
     * results, make another call with the returned NextToken
     * value.
     * 
     * 
     * @param maxResults
     *        The maximum number of results to return in a single call. This
     *        value can be between 5 and 300. The default value is 300. To
     *        retrieve the remaining results, make another call with the
     *        returned NextToken value.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeScheduledInstanceAvailabilityRequest withMaxResults(
            Integer maxResults) {
        setMaxResults(maxResults);
        return this;
    }
    /**
     * 
     * One or more filters.
     * 
     * 
     * - 
     * 
     * availability-zone - The Availability Zone (for example,
     * us-west-2a).
     * 
     *  
     * - 
     * 
     * instance-type - The instance type (for example,
     * c4.large).
     * 
     *  
     * - 
     * 
     * network-platform - The network platform (
     * EC2-Classic or EC2-VPC).
     * 
     *  
     * - 
     * 
     * platform - The platform (Linux/UNIX or
     * Windows).
     * 
     *  
     * 
     * 
     * @return One or more filters.
     *         
     *         - 
     *         
     *         availability-zone - The Availability Zone (for
     *         example, us-west-2a).
     *         
     *          
     *         - 
     *         
     *         instance-type - The instance type (for example,
     *         c4.large).
     *         
     *          
     *         - 
     *         
     *         network-platform - The network platform (
     *         EC2-Classic or EC2-VPC).
     *         
     *          
     *         - 
     *         
     *         platform - The platform (Linux/UNIX or
     *         Windows).
     *         
     *          
     */
    public java.util.List getFilters() {
        if (filters == null) {
            filters = new com.amazonaws.internal.SdkInternalList();
        }
        return filters;
    }
    /**
     * 
     * One or more filters.
     * 
     * 
     * - 
     * 
     * availability-zone - The Availability Zone (for example,
     * us-west-2a).
     * 
     *  
     * - 
     * 
     * instance-type - The instance type (for example,
     * c4.large).
     * 
     *  
     * - 
     * 
     * network-platform - The network platform (
     * EC2-Classic or EC2-VPC).
     * 
     *  
     * - 
     * 
     * platform - The platform (Linux/UNIX or
     * Windows).
     * 
     *  
     * 
     * 
     * @param filters
     *        One or more filters.
     *        
     *        - 
     *        
     *        availability-zone - The Availability Zone (for
     *        example, us-west-2a).
     *        
     *         
     *        - 
     *        
     *        instance-type - The instance type (for example,
     *        c4.large).
     *        
     *         
     *        - 
     *        
     *        network-platform - The network platform (
     *        EC2-Classic or EC2-VPC).
     *        
     *         
     *        - 
     *        
     *        platform - The platform (Linux/UNIX or
     *        Windows).
     *        
     *         
     */
    public void setFilters(java.util.Collection filters) {
        if (filters == null) {
            this.filters = null;
            return;
        }
        this.filters = new com.amazonaws.internal.SdkInternalList(
                filters);
    }
    /**
     * 
     * One or more filters.
     * 
     * 
     * - 
     * 
     * availability-zone - The Availability Zone (for example,
     * us-west-2a).
     * 
     *  
     * - 
     * 
     * instance-type - The instance type (for example,
     * c4.large).
     * 
     *  
     * - 
     * 
     * network-platform - The network platform (
     * EC2-Classic or EC2-VPC).
     * 
     *  
     * - 
     * 
     * platform - The platform (Linux/UNIX or
     * Windows).
     * 
     *  
     * 
     * 
     * NOTE: This method appends the values to the existing list (if
     * any). Use {@link #setFilters(java.util.Collection)} or
     * {@link #withFilters(java.util.Collection)} if you want to override the
     * existing values.
     * 
     * 
     * @param filters
     *        One or more filters.
     *        
     *        - 
     *        
     *        availability-zone - The Availability Zone (for
     *        example, us-west-2a).
     *        
     *         
     *        - 
     *        
     *        instance-type - The instance type (for example,
     *        c4.large).
     *        
     *         
     *        - 
     *        
     *        network-platform - The network platform (
     *        EC2-Classic or EC2-VPC).
     *        
     *         
     *        - 
     *        
     *        platform - The platform (Linux/UNIX or
     *        Windows).
     *        
     *         
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeScheduledInstanceAvailabilityRequest withFilters(
            Filter... filters) {
        if (this.filters == null) {
            setFilters(new com.amazonaws.internal.SdkInternalList(
                    filters.length));
        }
        for (Filter ele : filters) {
            this.filters.add(ele);
        }
        return this;
    }
    /**
     * 
     * One or more filters.
     * 
     * 
     * - 
     * 
     * availability-zone - The Availability Zone (for example,
     * us-west-2a).
     * 
     *  
     * - 
     * 
     * instance-type - The instance type (for example,
     * c4.large).
     * 
     *  
     * - 
     * 
     * network-platform - The network platform (
     * EC2-Classic or EC2-VPC).
     * 
     *  
     * - 
     * 
     * platform - The platform (Linux/UNIX or
     * Windows).
     * 
     *  
     * 
     * 
     * @param filters
     *        One or more filters.
     *        
     *        - 
     *        
     *        availability-zone - The Availability Zone (for
     *        example, us-west-2a).
     *        
     *         
     *        - 
     *        
     *        instance-type - The instance type (for example,
     *        c4.large).
     *        
     *         
     *        - 
     *        
     *        network-platform - The network platform (
     *        EC2-Classic or EC2-VPC).
     *        
     *         
     *        - 
     *        
     *        platform - The platform (Linux/UNIX or
     *        Windows).
     *        
     *         
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public DescribeScheduledInstanceAvailabilityRequest withFilters(
            java.util.Collection filters) {
        setFilters(filters);
        return this;
    }
    /**
     * This method is intended for internal use only. Returns the marshaled
     * request configured with additional parameters to enable operation
     * dry-run.
     */
    @Override
    public Request getDryRunRequest() {
        Request request = new DescribeScheduledInstanceAvailabilityRequestMarshaller()
                .marshall(this);
        request.addParameter("DryRun", Boolean.toString(true));
        return request;
    }
    /**
     * 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 (getRecurrence() != null)
            sb.append("Recurrence: " + getRecurrence() + ",");
        if (getFirstSlotStartTimeRange() != null)
            sb.append("FirstSlotStartTimeRange: "
                    + getFirstSlotStartTimeRange() + ",");
        if (getMinSlotDurationInHours() != null)
            sb.append("MinSlotDurationInHours: " + getMinSlotDurationInHours()
                    + ",");
        if (getMaxSlotDurationInHours() != null)
            sb.append("MaxSlotDurationInHours: " + getMaxSlotDurationInHours()
                    + ",");
        if (getNextToken() != null)
            sb.append("NextToken: " + getNextToken() + ",");
        if (getMaxResults() != null)
            sb.append("MaxResults: " + getMaxResults() + ",");
        if (getFilters() != null)
            sb.append("Filters: " + getFilters());
        sb.append("}");
        return sb.toString();
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (obj instanceof DescribeScheduledInstanceAvailabilityRequest == false)
            return false;
        DescribeScheduledInstanceAvailabilityRequest other = (DescribeScheduledInstanceAvailabilityRequest) obj;
        if (other.getRecurrence() == null ^ this.getRecurrence() == null)
            return false;
        if (other.getRecurrence() != null
                && other.getRecurrence().equals(this.getRecurrence()) == false)
            return false;
        if (other.getFirstSlotStartTimeRange() == null
                ^ this.getFirstSlotStartTimeRange() == null)
            return false;
        if (other.getFirstSlotStartTimeRange() != null
                && other.getFirstSlotStartTimeRange().equals(
                        this.getFirstSlotStartTimeRange()) == false)
            return false;
        if (other.getMinSlotDurationInHours() == null
                ^ this.getMinSlotDurationInHours() == null)
            return false;
        if (other.getMinSlotDurationInHours() != null
                && other.getMinSlotDurationInHours().equals(
                        this.getMinSlotDurationInHours()) == false)
            return false;
        if (other.getMaxSlotDurationInHours() == null
                ^ this.getMaxSlotDurationInHours() == null)
            return false;
        if (other.getMaxSlotDurationInHours() != null
                && other.getMaxSlotDurationInHours().equals(
                        this.getMaxSlotDurationInHours()) == false)
            return false;
        if (other.getNextToken() == null ^ this.getNextToken() == null)
            return false;
        if (other.getNextToken() != null
                && other.getNextToken().equals(this.getNextToken()) == false)
            return false;
        if (other.getMaxResults() == null ^ this.getMaxResults() == null)
            return false;
        if (other.getMaxResults() != null
                && other.getMaxResults().equals(this.getMaxResults()) == false)
            return false;
        if (other.getFilters() == null ^ this.getFilters() == null)
            return false;
        if (other.getFilters() != null
                && other.getFilters().equals(this.getFilters()) == false)
            return false;
        return true;
    }
    @Override
    public int hashCode() {
        final int prime = 31;
        int hashCode = 1;
        hashCode = prime * hashCode
                + ((getRecurrence() == null) ? 0 : getRecurrence().hashCode());
        hashCode = prime
                * hashCode
                + ((getFirstSlotStartTimeRange() == null) ? 0
                        : getFirstSlotStartTimeRange().hashCode());
        hashCode = prime
                * hashCode
                + ((getMinSlotDurationInHours() == null) ? 0
                        : getMinSlotDurationInHours().hashCode());
        hashCode = prime
                * hashCode
                + ((getMaxSlotDurationInHours() == null) ? 0
                        : getMaxSlotDurationInHours().hashCode());
        hashCode = prime * hashCode
                + ((getNextToken() == null) ? 0 : getNextToken().hashCode());
        hashCode = prime * hashCode
                + ((getMaxResults() == null) ? 0 : getMaxResults().hashCode());
        hashCode = prime * hashCode
                + ((getFilters() == null) ? 0 : getFilters().hashCode());
        return hashCode;
    }
    @Override
    public DescribeScheduledInstanceAvailabilityRequest clone() {
        return (DescribeScheduledInstanceAvailabilityRequest) super.clone();
    }
}