software.amazon.awssdk.services.apigateway.model.GetMethodResponseResponse Maven / Gradle / Ivy
Show all versions of api-gateway Show documentation
/*
* Copyright 2013-2018 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 software.amazon.awssdk.services.apigateway.model;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Generated;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
/**
*
* Represents a method response of a given HTTP status code returned to the client. The method response is passed from
* the back end through the associated integration response that can be transformed using a mapping template.
*
*
*
* Example: A MethodResponse instance of an API
* Request
*
* The example request retrieves a MethodResponse of the 200 status code.
*
*
*
* GET /restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200 HTTP/1.1 Content-Type: application/json Host: apigateway.us-east-1.amazonaws.com X-Amz-Date: 20160603T222952Z Authorization: AWS4-HMAC-SHA256 Credential={access_key_ID}/20160603/us-east-1/apigateway/aws4_request, SignedHeaders=content-type;host;x-amz-date, Signature={sig4_hash}
*
*
* Response
*
* The successful response returns 200 OK
status and a payload as follows:
*
*
*
* { "_links": { "curies": { "href": "http://docs.aws.amazon.com/apigateway/latest/developerguide/restapi-method-response-{rel}.html", "name": "methodresponse", "templated": true }, "self": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200", "title": "200" }, "methodresponse:delete": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200" }, "methodresponse:update": { "href": "/restapis/fugvjdxtri/resources/3kzxbg5sa2/methods/GET/responses/200" } }, "responseModels": { "application/json": "Empty" }, "responseParameters": { "method.response.header.Content-Type": false }, "statusCode": "200" }
*
*
*
*/
@Generated("software.amazon.awssdk:codegen")
public class GetMethodResponseResponse extends APIGatewayResponse implements
ToCopyableBuilder {
private final String statusCode;
private final Map responseParameters;
private final Map responseModels;
private GetMethodResponseResponse(BuilderImpl builder) {
super(builder);
this.statusCode = builder.statusCode;
this.responseParameters = builder.responseParameters;
this.responseModels = builder.responseModels;
}
/**
*
* The method response's status code.
*
*
* @return The method response's status code.
*/
public String statusCode() {
return statusCode;
}
/**
*
* A key-value map specifying required or optional response parameters that Amazon API Gateway can send back to the
* caller. A key defines a method response header and the value specifies whether the associated method response
* header is required or not. The expression of the key must match the pattern
* method.response.header.{name}
, where name
is a valid and unique header name. Amazon API
* Gateway passes certain integration response data to the method response headers specified here according to the
* mapping you prescribe in the API's IntegrationResponse. The integration response data that can be mapped
* include an integration response header expressed in integration.response.header.{name}
, a static
* value enclosed within a pair of single quotes (e.g., 'application/json'
), or a JSON expression from
* the back-end response payload in the form of integration.response.body.{JSON-expression}
, where
* JSON-expression
is a valid JSON expression without the $
prefix.)
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* @return A key-value map specifying required or optional response parameters that Amazon API Gateway can send back
* to the caller. A key defines a method response header and the value specifies whether the associated
* method response header is required or not. The expression of the key must match the pattern
* method.response.header.{name}
, where name
is a valid and unique header name.
* Amazon API Gateway passes certain integration response data to the method response headers specified here
* according to the mapping you prescribe in the API's IntegrationResponse. The integration response
* data that can be mapped include an integration response header expressed in
* integration.response.header.{name}
, a static value enclosed within a pair of single quotes
* (e.g., 'application/json'
), or a JSON expression from the back-end response payload in the
* form of integration.response.body.{JSON-expression}
, where JSON-expression
is a
* valid JSON expression without the $
prefix.)
*/
public Map responseParameters() {
return 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.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* @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 Map responseModels() {
return responseModels;
}
@Override
public Builder toBuilder() {
return new BuilderImpl(this);
}
public static Builder builder() {
return new BuilderImpl();
}
public static Class serializableBuilderClass() {
return BuilderImpl.class;
}
@Override
public int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + Objects.hashCode(statusCode());
hashCode = 31 * hashCode + Objects.hashCode(responseParameters());
hashCode = 31 * hashCode + Objects.hashCode(responseModels());
return hashCode;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof GetMethodResponseResponse)) {
return false;
}
GetMethodResponseResponse other = (GetMethodResponseResponse) obj;
return Objects.equals(statusCode(), other.statusCode())
&& Objects.equals(responseParameters(), other.responseParameters())
&& Objects.equals(responseModels(), other.responseModels());
}
@Override
public String toString() {
return ToString.builder("GetMethodResponseResponse").add("StatusCode", statusCode())
.add("ResponseParameters", responseParameters()).add("ResponseModels", responseModels()).build();
}
public Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "statusCode":
return Optional.of(clazz.cast(statusCode()));
case "responseParameters":
return Optional.of(clazz.cast(responseParameters()));
case "responseModels":
return Optional.of(clazz.cast(responseModels()));
default:
return Optional.empty();
}
}
public interface Builder extends APIGatewayResponse.Builder, CopyableBuilder {
/**
*
* 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.
*/
Builder statusCode(String statusCode);
/**
*
* A key-value map specifying required or optional response parameters that Amazon API Gateway can send back to
* the caller. A key defines a method response header and the value specifies whether the associated method
* response header is required or not. The expression of the key must match the pattern
* method.response.header.{name}
, where name
is a valid and unique header name. Amazon
* API Gateway passes certain integration response data to the method response headers specified here according
* to the mapping you prescribe in the API's IntegrationResponse. The integration response data that can
* be mapped include an integration response header expressed in integration.response.header.{name}
* , a static value enclosed within a pair of single quotes (e.g., 'application/json'
), or a JSON
* expression from the back-end response payload in the form of
* integration.response.body.{JSON-expression}
, where JSON-expression
is a valid JSON
* expression without the $
prefix.)
*
*
* @param responseParameters
* A key-value map specifying required or optional response parameters that Amazon API Gateway can send
* back to the caller. A key defines a method response header and the value specifies whether the
* associated method response header is required or not. The expression of the key must match the pattern
* method.response.header.{name}
, where name
is a valid and unique header name.
* Amazon API Gateway passes certain integration response data to the method response headers specified
* here according to the mapping you prescribe in the API's IntegrationResponse. The integration
* response data that can be mapped include an integration response header expressed in
* integration.response.header.{name}
, a static value enclosed within a pair of single
* quotes (e.g., 'application/json'
), or a JSON expression from the back-end response
* payload in the form of integration.response.body.{JSON-expression}
, where
* 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.
*/
Builder responseParameters(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.
*
*
* @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.
*/
Builder responseModels(Map responseModels);
}
static final class BuilderImpl extends APIGatewayResponse.BuilderImpl implements Builder {
private String statusCode;
private Map responseParameters;
private Map responseModels;
private BuilderImpl() {
}
private BuilderImpl(GetMethodResponseResponse model) {
statusCode(model.statusCode);
responseParameters(model.responseParameters);
responseModels(model.responseModels);
}
public final String getStatusCode() {
return statusCode;
}
@Override
public final Builder statusCode(String statusCode) {
this.statusCode = statusCode;
return this;
}
public final void setStatusCode(String statusCode) {
this.statusCode = statusCode;
}
public final Map getResponseParameters() {
return responseParameters;
}
@Override
public final Builder responseParameters(Map responseParameters) {
this.responseParameters = MapOfStringToBooleanCopier.copy(responseParameters);
return this;
}
public final void setResponseParameters(Map responseParameters) {
this.responseParameters = MapOfStringToBooleanCopier.copy(responseParameters);
}
public final Map getResponseModels() {
return responseModels;
}
@Override
public final Builder responseModels(Map responseModels) {
this.responseModels = MapOfStringToStringCopier.copy(responseModels);
return this;
}
public final void setResponseModels(Map responseModels) {
this.responseModels = MapOfStringToStringCopier.copy(responseModels);
}
@Override
public GetMethodResponseResponse build() {
return new GetMethodResponseResponse(this);
}
}
}