com.amazonaws.services.apigateway.model.IntegrationResponse Maven / Gradle / Ivy
Show all versions of aws-java-sdk-api-gateway 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.apigateway.model;
import java.io.Serializable;
/**
 * 
 * Represents an integration response. The status code must map to an existing MethodResponse, and parameters and
 * templates can be used to transform the back-end response.
 * 
 * 
 */
public class IntegrationResponse implements Serializable, Cloneable {
    /**
     * 
     * Specifies the status code that is used to map the integration response to an existing MethodResponse.
     * 
     */
    private String statusCode;
    /**
     * 
     * Specifies the regular expression (regex) pattern used to choose an integration response based on the response
     * from the back end. For example, if the success response returns nothing and the error response returns some
     * string, you could use the .+ regex to match error response. However, make sure that the error
     * response does not contain any newline (\n) character in such cases. If the back end is an AWS Lambda
     * function, the AWS Lambda function error header is matched. For all other HTTP and AWS back ends, the HTTP status
     * code is matched.
     * 
     */
    private String selectionPattern;
    /**
     * 
     * A key-value map specifying response parameters that are passed to the method response from the back end. The key
     * is a method response header parameter name and the mapped value is an integration response header value, a static
     * value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The
     * mapping key must match the pattern of method.response.header.{name}, where name is a
     * valid and unique header name. The mapped non-static value must match the pattern of
     * integration.response.header.{name} or integration.response.body.{JSON-expression},
     * where name is a valid and unique response header name and JSON-expression is a valid
     * JSON expression without the $ prefix.
     * 
     */
    private java.util.Map responseParameters;
    /**
     * 
     * Specifies the templates used to transform the integration response body. Response templates are represented as a
     * key/value map, with a content-type as the key and a template as the value.
     * 
     */
    private java.util.Map responseTemplates;
    /**
     * 
     * Specifies the status code that is used to map the integration response to an existing MethodResponse.
     * 
     * 
     * @param statusCode
     *        Specifies the status code that is used to map the integration response to an existing
     *        MethodResponse.
     */
    public void setStatusCode(String statusCode) {
        this.statusCode = statusCode;
    }
    /**
     * 
     * Specifies the status code that is used to map the integration response to an existing MethodResponse.
     * 
     * 
     * @return Specifies the status code that is used to map the integration response to an existing
     *         MethodResponse.
     */
    public String getStatusCode() {
        return this.statusCode;
    }
    /**
     * 
     * Specifies the status code that is used to map the integration response to an existing MethodResponse.
     * 
     * 
     * @param statusCode
     *        Specifies the status code that is used to map the integration response to an existing
     *        MethodResponse.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public IntegrationResponse withStatusCode(String statusCode) {
        setStatusCode(statusCode);
        return this;
    }
    /**
     * 
     * Specifies the regular expression (regex) pattern used to choose an integration response based on the response
     * from the back end. For example, if the success response returns nothing and the error response returns some
     * string, you could use the .+ regex to match error response. However, make sure that the error
     * response does not contain any newline (\n) character in such cases. If the back end is an AWS Lambda
     * function, the AWS Lambda function error header is matched. For all other HTTP and AWS back ends, the HTTP status
     * code is matched.
     * 
     * 
     * @param selectionPattern
     *        Specifies the regular expression (regex) pattern used to choose an integration response based on the
     *        response from the back end. For example, if the success response returns nothing and the error response
     *        returns some string, you could use the .+ regex to match error response. However, make sure
     *        that the error response does not contain any newline (\n) character in such cases. If the
     *        back end is an AWS Lambda function, the AWS Lambda function error header is matched. For all other HTTP
     *        and AWS back ends, the HTTP status code is matched.
     */
    public void setSelectionPattern(String selectionPattern) {
        this.selectionPattern = selectionPattern;
    }
    /**
     * 
     * Specifies the regular expression (regex) pattern used to choose an integration response based on the response
     * from the back end. For example, if the success response returns nothing and the error response returns some
     * string, you could use the .+ regex to match error response. However, make sure that the error
     * response does not contain any newline (\n) character in such cases. If the back end is an AWS Lambda
     * function, the AWS Lambda function error header is matched. For all other HTTP and AWS back ends, the HTTP status
     * code is matched.
     * 
     * 
     * @return Specifies the regular expression (regex) pattern used to choose an integration response based on the
     *         response from the back end. For example, if the success response returns nothing and the error response
     *         returns some string, you could use the .+ regex to match error response. However, make sure
     *         that the error response does not contain any newline (\n) character in such cases. If the
     *         back end is an AWS Lambda function, the AWS Lambda function error header is matched. For all other HTTP
     *         and AWS back ends, the HTTP status code is matched.
     */
    public String getSelectionPattern() {
        return this.selectionPattern;
    }
    /**
     * 
     * Specifies the regular expression (regex) pattern used to choose an integration response based on the response
     * from the back end. For example, if the success response returns nothing and the error response returns some
     * string, you could use the .+ regex to match error response. However, make sure that the error
     * response does not contain any newline (\n) character in such cases. If the back end is an AWS Lambda
     * function, the AWS Lambda function error header is matched. For all other HTTP and AWS back ends, the HTTP status
     * code is matched.
     * 
     * 
     * @param selectionPattern
     *        Specifies the regular expression (regex) pattern used to choose an integration response based on the
     *        response from the back end. For example, if the success response returns nothing and the error response
     *        returns some string, you could use the .+ regex to match error response. However, make sure
     *        that the error response does not contain any newline (\n) character in such cases. If the
     *        back end is an AWS Lambda function, the AWS Lambda function error header is matched. For all other HTTP
     *        and AWS back ends, the HTTP status code is matched.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public IntegrationResponse withSelectionPattern(String selectionPattern) {
        setSelectionPattern(selectionPattern);
        return this;
    }
    /**
     * 
     * A key-value map specifying response parameters that are passed to the method response from the back end. The key
     * is a method response header parameter name and the mapped value is an integration response header value, a static
     * value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The
     * mapping key must match the pattern of method.response.header.{name}, where name is a
     * valid and unique header name. The mapped non-static value must match the pattern of
     * integration.response.header.{name} or integration.response.body.{JSON-expression},
     * where name is a valid and unique response header name and JSON-expression is a valid
     * JSON expression without the $ prefix.
     * 
     * 
     * @return A key-value map specifying response parameters that are passed to the method response from the back end.
     *         The key is a method response header parameter name and the mapped value is an integration response header
     *         value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration
     *         response body. The mapping key must match the pattern of method.response.header.{name},
     *         where name is a valid and unique header name. The mapped non-static value must match the
     *         pattern of integration.response.header.{name} or
     *         integration.response.body.{JSON-expression}, where name is a valid and unique
     *         response header name and JSON-expression is a valid JSON expression without the
     *         $ prefix.
     */
    public java.util.Map getResponseParameters() {
        return responseParameters;
    }
    /**
     * 
     * A key-value map specifying response parameters that are passed to the method response from the back end. The key
     * is a method response header parameter name and the mapped value is an integration response header value, a static
     * value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The
     * mapping key must match the pattern of method.response.header.{name}, where name is a
     * valid and unique header name. The mapped non-static value must match the pattern of
     * integration.response.header.{name} or integration.response.body.{JSON-expression},
     * where name is a valid and unique response header name and JSON-expression is a valid
     * JSON expression without the $ prefix.
     * 
     * 
     * @param responseParameters
     *        A key-value map specifying response parameters that are passed to the method response from the back end.
     *        The key is a method response header parameter name and the mapped value is an integration response header
     *        value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration
     *        response body. The mapping key must match the pattern of method.response.header.{name}, where
     *        name is a valid and unique header name. The mapped non-static value must match the pattern of
     *        integration.response.header.{name} or
     *        integration.response.body.{JSON-expression}, where name is a valid and unique
     *        response header name and JSON-expression is a valid JSON expression without the
     *        $ prefix.
     */
    public void setResponseParameters(java.util.Map responseParameters) {
        this.responseParameters = responseParameters;
    }
    /**
     * 
     * A key-value map specifying response parameters that are passed to the method response from the back end. The key
     * is a method response header parameter name and the mapped value is an integration response header value, a static
     * value enclosed within a pair of single quotes, or a JSON expression from the integration response body. The
     * mapping key must match the pattern of method.response.header.{name}, where name is a
     * valid and unique header name. The mapped non-static value must match the pattern of
     * integration.response.header.{name} or integration.response.body.{JSON-expression},
     * where name is a valid and unique response header name and JSON-expression is a valid
     * JSON expression without the $ prefix.
     * 
     * 
     * @param responseParameters
     *        A key-value map specifying response parameters that are passed to the method response from the back end.
     *        The key is a method response header parameter name and the mapped value is an integration response header
     *        value, a static value enclosed within a pair of single quotes, or a JSON expression from the integration
     *        response body. The mapping key must match the pattern of method.response.header.{name}, where
     *        name is a valid and unique header name. The mapped non-static value must match the pattern of
     *        integration.response.header.{name} or
     *        integration.response.body.{JSON-expression}, where name is a valid and unique
     *        response header name and JSON-expression is a valid JSON expression without the
     *        $ prefix.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public IntegrationResponse withResponseParameters(java.util.Map responseParameters) {
        setResponseParameters(responseParameters);
        return this;
    }
    public IntegrationResponse addResponseParametersEntry(String key, String 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.
     *
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public IntegrationResponse clearResponseParametersEntries() {
        this.responseParameters = null;
        return this;
    }
    /**
     * 
     * Specifies the templates used to transform the integration response body. Response templates are represented as a
     * key/value map, with a content-type as the key and a template as the value.
     * 
     * 
     * @return Specifies the templates used to transform the integration response body. Response templates are
     *         represented as a key/value map, with a content-type as the key and a template as the value.
     */
    public java.util.Map getResponseTemplates() {
        return responseTemplates;
    }
    /**
     * 
     * Specifies the templates used to transform the integration response body. Response templates are represented as a
     * key/value map, with a content-type as the key and a template as the value.
     * 
     * 
     * @param responseTemplates
     *        Specifies the templates used to transform the integration response body. Response templates are
     *        represented as a key/value map, with a content-type as the key and a template as the value.
     */
    public void setResponseTemplates(java.util.Map responseTemplates) {
        this.responseTemplates = responseTemplates;
    }
    /**
     * 
     * Specifies the templates used to transform the integration response body. Response templates are represented as a
     * key/value map, with a content-type as the key and a template as the value.
     * 
     * 
     * @param responseTemplates
     *        Specifies the templates used to transform the integration response body. Response templates are
     *        represented as a key/value map, with a content-type as the key and a template as the value.
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public IntegrationResponse withResponseTemplates(java.util.Map responseTemplates) {
        setResponseTemplates(responseTemplates);
        return this;
    }
    public IntegrationResponse addResponseTemplatesEntry(String key, String value) {
        if (null == this.responseTemplates) {
            this.responseTemplates = new java.util.HashMap();
        }
        if (this.responseTemplates.containsKey(key))
            throw new IllegalArgumentException("Duplicated keys (" + key.toString() + ") are provided.");
        this.responseTemplates.put(key, value);
        return this;
    }
    /**
     * Removes all the entries added into ResponseTemplates.
     *
     * @return Returns a reference to this object so that method calls can be chained together.
     */
    public IntegrationResponse clearResponseTemplatesEntries() {
        this.responseTemplates = 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 (getSelectionPattern() != null)
            sb.append("SelectionPattern: " + getSelectionPattern() + ",");
        if (getResponseParameters() != null)
            sb.append("ResponseParameters: " + getResponseParameters() + ",");
        if (getResponseTemplates() != null)
            sb.append("ResponseTemplates: " + getResponseTemplates());
        sb.append("}");
        return sb.toString();
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (obj instanceof IntegrationResponse == false)
            return false;
        IntegrationResponse other = (IntegrationResponse) obj;
        if (other.getStatusCode() == null ^ this.getStatusCode() == null)
            return false;
        if (other.getStatusCode() != null && other.getStatusCode().equals(this.getStatusCode()) == false)
            return false;
        if (other.getSelectionPattern() == null ^ this.getSelectionPattern() == null)
            return false;
        if (other.getSelectionPattern() != null && other.getSelectionPattern().equals(this.getSelectionPattern()) == 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.getResponseTemplates() == null ^ this.getResponseTemplates() == null)
            return false;
        if (other.getResponseTemplates() != null && other.getResponseTemplates().equals(this.getResponseTemplates()) == 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 + ((getSelectionPattern() == null) ? 0 : getSelectionPattern().hashCode());
        hashCode = prime * hashCode + ((getResponseParameters() == null) ? 0 : getResponseParameters().hashCode());
        hashCode = prime * hashCode + ((getResponseTemplates() == null) ? 0 : getResponseTemplates().hashCode());
        return hashCode;
    }
    @Override
    public IntegrationResponse clone() {
        try {
            return (IntegrationResponse) super.clone();
        } catch (CloneNotSupportedException e) {
            throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e);
        }
    }
}