com.amazonaws.services.apigateway.model.GetMethodResponseResult 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.apigateway.model;
import java.io.Serializable;
/**
 * 
 * Represents a method response. Amazon API Gateway sends back the status code
 * to the caller as the HTTP status code. Parameters and models can be used to
 * transform the response from the method's integration.
 * 
 */
public class GetMethodResponseResult implements Serializable, Cloneable {
    /**
     * 
     * The method response's status code.
     * 
     */
    private String statusCode;
    /**
     * 
     * Represents response parameters that can be sent back to the caller by
     * Amazon API Gateway. Response parameters are represented as a key/value
     * map, with a destination as the key and a boolean flag as the value, which
     * is used to specify whether the parameter is required. A destination must
     * match the pattern method.response.header.{name}, where
     * name is a valid, unique header name. Destinations specified
     * here are available to the integration for mapping from integration
     * response parameters.
     * 
     */
    private java.util.Map responseParameters;
    /**
     * 
     * Specifies the Model resources used for the response's
     * content-type. Response models are represented as a key/value map, with a
     * content-type as the key and a Model name as the value.
     * 
     */
    private java.util.Map responseModels;
    /**
     * 
     * The method response's status code.
     * 
     * 
     * @param statusCode
     *        The method response's status code.
     */
    public void setStatusCode(String statusCode) {
        this.statusCode = statusCode;
    }
    /**
     * 
     * The method response's status code.
     * 
     * 
     * @return The method response's status code.
     */
    public String getStatusCode() {
        return this.statusCode;
    }
    /**
     * 
     * The method response's status code.
     * 
     * 
     * @param statusCode
     *        The method response's status code.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public GetMethodResponseResult withStatusCode(String statusCode) {
        setStatusCode(statusCode);
        return this;
    }
    /**
     * 
     * Represents response parameters that can be sent back to the caller by
     * Amazon API Gateway. Response parameters are represented as a key/value
     * map, with a destination as the key and a boolean flag as the value, which
     * is used to specify whether the parameter is required. A destination must
     * match the pattern method.response.header.{name}, where
     * name is a valid, unique header name. Destinations specified
     * here are available to the integration for mapping from integration
     * response parameters.
     * 
     * 
     * @return Represents response parameters that can be sent back to the
     *         caller by Amazon API Gateway. Response parameters are represented
     *         as a key/value map, with a destination as the key and a boolean
     *         flag as the value, which is used to specify whether the parameter
     *         is required. A destination must match the pattern
     *         method.response.header.{name}, where
     *         name is a valid, unique header name. Destinations
     *         specified here are available to the integration for mapping from
     *         integration response parameters.
     */
    public java.util.Map getResponseParameters() {
        return responseParameters;
    }
    /**
     * 
     * Represents response parameters that can be sent back to the caller by
     * Amazon API Gateway. Response parameters are represented as a key/value
     * map, with a destination as the key and a boolean flag as the value, which
     * is used to specify whether the parameter is required. A destination must
     * match the pattern method.response.header.{name}, where
     * name is a valid, unique header name. Destinations specified
     * here are available to the integration for mapping from integration
     * response parameters.
     * 
     * 
     * @param responseParameters
     *        Represents response parameters that can be sent back to the caller
     *        by Amazon API Gateway. Response parameters are represented as a
     *        key/value map, with a destination as the key and a boolean flag as
     *        the value, which is used to specify whether the parameter is
     *        required. A destination must match the pattern
     *        method.response.header.{name}, where
     *        name is a valid, unique header name. Destinations
     *        specified here are available to the integration for mapping from
     *        integration response parameters.
     */
    public void setResponseParameters(
            java.util.Map responseParameters) {
        this.responseParameters = responseParameters;
    }
    /**
     * 
     * Represents response parameters that can be sent back to the caller by
     * Amazon API Gateway. Response parameters are represented as a key/value
     * map, with a destination as the key and a boolean flag as the value, which
     * is used to specify whether the parameter is required. A destination must
     * match the pattern method.response.header.{name}, where
     * name is a valid, unique header name. Destinations specified
     * here are available to the integration for mapping from integration
     * response parameters.
     * 
     * 
     * @param responseParameters
     *        Represents response parameters that can be sent back to the caller
     *        by Amazon API Gateway. Response parameters are represented as a
     *        key/value map, with a destination as the key and a boolean flag as
     *        the value, which is used to specify whether the parameter is
     *        required. A destination must match the pattern
     *        method.response.header.{name}, where
     *        name is a valid, unique header name. Destinations
     *        specified here are available to the integration for mapping from
     *        integration response parameters.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public GetMethodResponseResult withResponseParameters(
            java.util.Map responseParameters) {
        setResponseParameters(responseParameters);
        return this;
    }
    public GetMethodResponseResult addResponseParametersEntry(String key,
            Boolean value) {
        if (null == this.responseParameters) {
            this.responseParameters = new java.util.HashMap();
        }
        if (this.responseParameters.containsKey(key))
            throw new IllegalArgumentException("Duplicated keys ("
                    + key.toString() + ") are provided.");
        this.responseParameters.put(key, value);
        return this;
    }
    /**
     * Removes all the entries added into ResponseParameters. <p> Returns a
     * reference to this object so that method calls can be chained together.
     */
    public GetMethodResponseResult clearResponseParametersEntries() {
        this.responseParameters = null;
        return this;
    }
    /**
     * 
     * Specifies the Model resources used for the response's
     * content-type. Response models are represented as a key/value map, with a
     * content-type as the key and a Model name as the value.
     * 
     * 
     * @return Specifies the Model resources used for the response's
     *         content-type. Response models are represented as a key/value map,
     *         with a content-type as the key and a Model name as the
     *         value.
     */
    public java.util.Map getResponseModels() {
        return responseModels;
    }
    /**
     * 
     * Specifies the Model resources used for the response's
     * content-type. Response models are represented as a key/value map, with a
     * content-type as the key and a Model name as the value.
     * 
     * 
     * @param responseModels
     *        Specifies the Model resources used for the response's
     *        content-type. Response models are represented as a key/value map,
     *        with a content-type as the key and a Model name as the
     *        value.
     */
    public void setResponseModels(java.util.Map responseModels) {
        this.responseModels = responseModels;
    }
    /**
     * 
     * Specifies the Model resources used for the response's
     * content-type. Response models are represented as a key/value map, with a
     * content-type as the key and a Model name as the value.
     * 
     * 
     * @param responseModels
     *        Specifies the Model resources used for the response's
     *        content-type. Response models are represented as a key/value map,
     *        with a content-type as the key and a Model name as the
     *        value.
     * @return Returns a reference to this object so that method calls can be
     *         chained together.
     */
    public GetMethodResponseResult withResponseModels(
            java.util.Map responseModels) {
        setResponseModels(responseModels);
        return this;
    }
    public GetMethodResponseResult addResponseModelsEntry(String key,
            String value) {
        if (null == this.responseModels) {
            this.responseModels = new java.util.HashMap();
        }
        if (this.responseModels.containsKey(key))
            throw new IllegalArgumentException("Duplicated keys ("
                    + key.toString() + ") are provided.");
        this.responseModels.put(key, value);
        return this;
    }
    /**
     * Removes all the entries added into ResponseModels. <p> Returns a
     * reference to this object so that method calls can be chained together.
     */
    public GetMethodResponseResult clearResponseModelsEntries() {
        this.responseModels = null;
        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 (getStatusCode() != null)
            sb.append("StatusCode: " + getStatusCode() + ",");
        if (getResponseParameters() != null)
            sb.append("ResponseParameters: " + getResponseParameters() + ",");
        if (getResponseModels() != null)
            sb.append("ResponseModels: " + getResponseModels());
        sb.append("}");
        return sb.toString();
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (obj instanceof GetMethodResponseResult == false)
            return false;
        GetMethodResponseResult other = (GetMethodResponseResult) obj;
        if (other.getStatusCode() == null ^ this.getStatusCode() == null)
            return false;
        if (other.getStatusCode() != null
                && other.getStatusCode().equals(this.getStatusCode()) == false)
            return false;
        if (other.getResponseParameters() == null
                ^ this.getResponseParameters() == null)
            return false;
        if (other.getResponseParameters() != null
                && other.getResponseParameters().equals(
                        this.getResponseParameters()) == false)
            return false;
        if (other.getResponseModels() == null
                ^ this.getResponseModels() == null)
            return false;
        if (other.getResponseModels() != null
                && other.getResponseModels().equals(this.getResponseModels()) == false)
            return false;
        return true;
    }
    @Override
    public int hashCode() {
        final int prime = 31;
        int hashCode = 1;
        hashCode = prime * hashCode
                + ((getStatusCode() == null) ? 0 : getStatusCode().hashCode());
        hashCode = prime
                * hashCode
                + ((getResponseParameters() == null) ? 0
                        : getResponseParameters().hashCode());
        hashCode = prime
                * hashCode
                + ((getResponseModels() == null) ? 0 : getResponseModels()
                        .hashCode());
        return hashCode;
    }
    @Override
    public GetMethodResponseResult clone() {
        try {
            return (GetMethodResponseResult) super.clone();
        } catch (CloneNotSupportedException e) {
            throw new IllegalStateException(
                    "Got a CloneNotSupportedException from Object.clone() "
                            + "even though we're Cloneable!", e);
        }
    }
}