responseTemplates;
private final String templateSelectionExpression;
private GetIntegrationResponseResponse(BuilderImpl builder) {
super(builder);
this.contentHandlingStrategy = builder.contentHandlingStrategy;
this.integrationResponseId = builder.integrationResponseId;
this.integrationResponseKey = builder.integrationResponseKey;
this.responseParameters = builder.responseParameters;
this.responseTemplates = builder.responseTemplates;
this.templateSelectionExpression = builder.templateSelectionExpression;
}
/**
*
* Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and
* CONVERT_TO_TEXT, with the following behaviors:
*
*
* CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob.
*
*
* CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string.
*
*
* If this property is not defined, the response payload will be passed through from the integration response to the
* route response or method response without modification.
*
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #contentHandlingStrategy} will return {@link ContentHandlingStrategy#UNKNOWN_TO_SDK_VERSION}. The raw
* value returned by the service is available from {@link #contentHandlingStrategyAsString}.
*
*
* @return Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY
* and CONVERT_TO_TEXT, with the following behaviors:
*
* CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary
* blob.
*
*
* CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string.
*
*
* If this property is not defined, the response payload will be passed through from the integration
* response to the route response or method response without modification.
* @see ContentHandlingStrategy
*/
public ContentHandlingStrategy contentHandlingStrategy() {
return ContentHandlingStrategy.fromValue(contentHandlingStrategy);
}
/**
*
* Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and
* CONVERT_TO_TEXT, with the following behaviors:
*
*
* CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob.
*
*
* CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string.
*
*
* If this property is not defined, the response payload will be passed through from the integration response to the
* route response or method response without modification.
*
*
* If the service returns an enum value that is not available in the current SDK version,
* {@link #contentHandlingStrategy} will return {@link ContentHandlingStrategy#UNKNOWN_TO_SDK_VERSION}. The raw
* value returned by the service is available from {@link #contentHandlingStrategyAsString}.
*
*
* @return Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY
* and CONVERT_TO_TEXT, with the following behaviors:
*
* CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary
* blob.
*
*
* CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string.
*
*
* If this property is not defined, the response payload will be passed through from the integration
* response to the route response or method response without modification.
* @see ContentHandlingStrategy
*/
public String contentHandlingStrategyAsString() {
return contentHandlingStrategy;
}
/**
*
* The integration response ID.
*
*
* @return The integration response ID.
*/
public String integrationResponseId() {
return integrationResponseId;
}
/**
*
* The integration response key.
*
*
* @return The integration response key.
*/
public String integrationResponseKey() {
return integrationResponseKey;
}
/**
*
* A key-value map specifying response parameters that are passed to the method response from the backend. 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.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* @return A key-value map specifying response parameters that are passed to the method response from the backend.
* 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 Map responseParameters() {
return responseParameters;
}
/**
*
* The collection of response templates for the integration response as a string-to-string map of key-value pairs.
* Response templates are represented as a key/value map, with a content-type as the key and a template as the
* value.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* @return The collection of response templates for the integration response as a string-to-string map of key-value
* pairs. Response templates are represented as a key/value map, with a content-type as the key and a
* template as the value.
*/
public Map responseTemplates() {
return responseTemplates;
}
/**
*
* The template selection expressions for the integration response.
*
*
* @return The template selection expressions for the integration response.
*/
public String templateSelectionExpression() {
return templateSelectionExpression;
}
@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(contentHandlingStrategyAsString());
hashCode = 31 * hashCode + Objects.hashCode(integrationResponseId());
hashCode = 31 * hashCode + Objects.hashCode(integrationResponseKey());
hashCode = 31 * hashCode + Objects.hashCode(responseParameters());
hashCode = 31 * hashCode + Objects.hashCode(responseTemplates());
hashCode = 31 * hashCode + Objects.hashCode(templateSelectionExpression());
return hashCode;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof GetIntegrationResponseResponse)) {
return false;
}
GetIntegrationResponseResponse other = (GetIntegrationResponseResponse) obj;
return Objects.equals(contentHandlingStrategyAsString(), other.contentHandlingStrategyAsString())
&& Objects.equals(integrationResponseId(), other.integrationResponseId())
&& Objects.equals(integrationResponseKey(), other.integrationResponseKey())
&& Objects.equals(responseParameters(), other.responseParameters())
&& Objects.equals(responseTemplates(), other.responseTemplates())
&& Objects.equals(templateSelectionExpression(), other.templateSelectionExpression());
}
/**
* Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
* redacted from this string using a placeholder value.
*/
@Override
public String toString() {
return ToString.builder("GetIntegrationResponseResponse")
.add("ContentHandlingStrategy", contentHandlingStrategyAsString())
.add("IntegrationResponseId", integrationResponseId()).add("IntegrationResponseKey", integrationResponseKey())
.add("ResponseParameters", responseParameters()).add("ResponseTemplates", responseTemplates())
.add("TemplateSelectionExpression", templateSelectionExpression()).build();
}
public Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "ContentHandlingStrategy":
return Optional.ofNullable(clazz.cast(contentHandlingStrategyAsString()));
case "IntegrationResponseId":
return Optional.ofNullable(clazz.cast(integrationResponseId()));
case "IntegrationResponseKey":
return Optional.ofNullable(clazz.cast(integrationResponseKey()));
case "ResponseParameters":
return Optional.ofNullable(clazz.cast(responseParameters()));
case "ResponseTemplates":
return Optional.ofNullable(clazz.cast(responseTemplates()));
case "TemplateSelectionExpression":
return Optional.ofNullable(clazz.cast(templateSelectionExpression()));
default:
return Optional.empty();
}
}
@Override
public List> sdkFields() {
return SDK_FIELDS;
}
private static Function getter(Function g) {
return obj -> g.apply((GetIntegrationResponseResponse) obj);
}
private static BiConsumer setter(BiConsumer s) {
return (obj, val) -> s.accept((Builder) obj, val);
}
public interface Builder extends ApiGatewayV2Response.Builder, SdkPojo,
CopyableBuilder {
/**
*
* Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and
* CONVERT_TO_TEXT, with the following behaviors:
*
*
* CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob.
*
*
* CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string.
*
*
* If this property is not defined, the response payload will be passed through from the integration response to
* the route response or method response without modification.
*
*
* @param contentHandlingStrategy
* Specifies how to handle response payload content type conversions. Supported values are
* CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:
*
* CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding
* binary blob.
*
*
* CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string.
*
*
* If this property is not defined, the response payload will be passed through from the integration
* response to the route response or method response without modification.
* @see ContentHandlingStrategy
* @return Returns a reference to this object so that method calls can be chained together.
* @see ContentHandlingStrategy
*/
Builder contentHandlingStrategy(String contentHandlingStrategy);
/**
*
* Specifies how to handle response payload content type conversions. Supported values are CONVERT_TO_BINARY and
* CONVERT_TO_TEXT, with the following behaviors:
*
*
* CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding binary blob.
*
*
* CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string.
*
*
* If this property is not defined, the response payload will be passed through from the integration response to
* the route response or method response without modification.
*
*
* @param contentHandlingStrategy
* Specifies how to handle response payload content type conversions. Supported values are
* CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:
*
* CONVERT_TO_BINARY: Converts a response payload from a Base64-encoded string to the corresponding
* binary blob.
*
*
* CONVERT_TO_TEXT: Converts a response payload from a binary blob to a Base64-encoded string.
*
*
* If this property is not defined, the response payload will be passed through from the integration
* response to the route response or method response without modification.
* @see ContentHandlingStrategy
* @return Returns a reference to this object so that method calls can be chained together.
* @see ContentHandlingStrategy
*/
Builder contentHandlingStrategy(ContentHandlingStrategy contentHandlingStrategy);
/**
*
* The integration response ID.
*
*
* @param integrationResponseId
* The integration response ID.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder integrationResponseId(String integrationResponseId);
/**
*
* The integration response key.
*
*
* @param integrationResponseKey
* The integration response key.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder integrationResponseKey(String integrationResponseKey);
/**
*
* A key-value map specifying response parameters that are passed to the method response from the backend. 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
* backend. 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.
*/
Builder responseParameters(Map responseParameters);
/**
*
* The collection of response templates for the integration response as a string-to-string map of key-value
* pairs. Response templates are represented as a key/value map, with a content-type as the key and a template
* as the value.
*
*
* @param responseTemplates
* The collection of response templates for the integration response as a string-to-string map of
* key-value pairs. 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.
*/
Builder responseTemplates(Map responseTemplates);
/**
*
* The template selection expressions for the integration response.
*
*
* @param templateSelectionExpression
* The template selection expressions for the integration response.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder templateSelectionExpression(String templateSelectionExpression);
}
static final class BuilderImpl extends ApiGatewayV2Response.BuilderImpl implements Builder {
private String contentHandlingStrategy;
private String integrationResponseId;
private String integrationResponseKey;
private Map responseParameters = DefaultSdkAutoConstructMap.getInstance();
private Map responseTemplates = DefaultSdkAutoConstructMap.getInstance();
private String templateSelectionExpression;
private BuilderImpl() {
}
private BuilderImpl(GetIntegrationResponseResponse model) {
super(model);
contentHandlingStrategy(model.contentHandlingStrategy);
integrationResponseId(model.integrationResponseId);
integrationResponseKey(model.integrationResponseKey);
responseParameters(model.responseParameters);
responseTemplates(model.responseTemplates);
templateSelectionExpression(model.templateSelectionExpression);
}
public final String getContentHandlingStrategyAsString() {
return contentHandlingStrategy;
}
@Override
public final Builder contentHandlingStrategy(String contentHandlingStrategy) {
this.contentHandlingStrategy = contentHandlingStrategy;
return this;
}
@Override
public final Builder contentHandlingStrategy(ContentHandlingStrategy contentHandlingStrategy) {
this.contentHandlingStrategy(contentHandlingStrategy.toString());
return this;
}
public final void setContentHandlingStrategy(String contentHandlingStrategy) {
this.contentHandlingStrategy = contentHandlingStrategy;
}
public final String getIntegrationResponseId() {
return integrationResponseId;
}
@Override
public final Builder integrationResponseId(String integrationResponseId) {
this.integrationResponseId = integrationResponseId;
return this;
}
public final void setIntegrationResponseId(String integrationResponseId) {
this.integrationResponseId = integrationResponseId;
}
public final String getIntegrationResponseKey() {
return integrationResponseKey;
}
@Override
public final Builder integrationResponseKey(String integrationResponseKey) {
this.integrationResponseKey = integrationResponseKey;
return this;
}
public final void setIntegrationResponseKey(String integrationResponseKey) {
this.integrationResponseKey = integrationResponseKey;
}
public final Map getResponseParameters() {
return responseParameters;
}
@Override
public final Builder responseParameters(Map responseParameters) {
this.responseParameters = IntegrationParametersCopier.copy(responseParameters);
return this;
}
public final void setResponseParameters(Map responseParameters) {
this.responseParameters = IntegrationParametersCopier.copy(responseParameters);
}
public final Map getResponseTemplates() {
return responseTemplates;
}
@Override
public final Builder responseTemplates(Map responseTemplates) {
this.responseTemplates = TemplateMapCopier.copy(responseTemplates);
return this;
}
public final void setResponseTemplates(Map responseTemplates) {
this.responseTemplates = TemplateMapCopier.copy(responseTemplates);
}
public final String getTemplateSelectionExpression() {
return templateSelectionExpression;
}
@Override
public final Builder templateSelectionExpression(String templateSelectionExpression) {
this.templateSelectionExpression = templateSelectionExpression;
return this;
}
public final void setTemplateSelectionExpression(String templateSelectionExpression) {
this.templateSelectionExpression = templateSelectionExpression;
}
@Override
public GetIntegrationResponseResponse build() {
return new GetIntegrationResponseResponse(this);
}
@Override
public List> sdkFields() {
return SDK_FIELDS;
}
}
}