Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
software.amazon.awssdk.services.apigateway.model.GetMethodResponse Maven / Gradle / Ivy
/*
* Copyright 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.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.core.SdkField;
import software.amazon.awssdk.core.SdkPojo;
import software.amazon.awssdk.core.protocol.MarshallLocation;
import software.amazon.awssdk.core.protocol.MarshallingType;
import software.amazon.awssdk.core.traits.ListTrait;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.core.traits.MapTrait;
import software.amazon.awssdk.core.util.DefaultSdkAutoConstructList;
import software.amazon.awssdk.core.util.DefaultSdkAutoConstructMap;
import software.amazon.awssdk.core.util.SdkAutoConstructList;
import software.amazon.awssdk.core.util.SdkAutoConstructMap;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
/**
*
* Represents a client-facing interface by which the client calls the API to access back-end resources. A Method
* resource is integrated with an Integration resource. Both consist of a request and one or more responses. The method
* request takes the client input that is passed to the back end through the integration request. A method response
* returns the output from the back end to the client through an integration response. A method request is embodied in a
* Method resource, whereas an integration request is embodied in an Integration resource. On the other hand, a method
* response is represented by a MethodResponse resource, whereas an integration response is represented by an
* IntegrationResponse resource.
*
*/
@Generated("software.amazon.awssdk:codegen")
public final class GetMethodResponse extends ApiGatewayResponse implements
ToCopyableBuilder {
private static final SdkField HTTP_METHOD_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("httpMethod").getter(getter(GetMethodResponse::httpMethod)).setter(setter(Builder::httpMethod))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("httpMethod").build()).build();
private static final SdkField AUTHORIZATION_TYPE_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("authorizationType").getter(getter(GetMethodResponse::authorizationType))
.setter(setter(Builder::authorizationType))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("authorizationType").build()).build();
private static final SdkField AUTHORIZER_ID_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("authorizerId").getter(getter(GetMethodResponse::authorizerId)).setter(setter(Builder::authorizerId))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("authorizerId").build()).build();
private static final SdkField API_KEY_REQUIRED_FIELD = SdkField. builder(MarshallingType.BOOLEAN)
.memberName("apiKeyRequired").getter(getter(GetMethodResponse::apiKeyRequired))
.setter(setter(Builder::apiKeyRequired))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("apiKeyRequired").build()).build();
private static final SdkField REQUEST_VALIDATOR_ID_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("requestValidatorId").getter(getter(GetMethodResponse::requestValidatorId))
.setter(setter(Builder::requestValidatorId))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("requestValidatorId").build())
.build();
private static final SdkField OPERATION_NAME_FIELD = SdkField. builder(MarshallingType.STRING)
.memberName("operationName").getter(getter(GetMethodResponse::operationName)).setter(setter(Builder::operationName))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("operationName").build()).build();
private static final SdkField> REQUEST_PARAMETERS_FIELD = SdkField
.> builder(MarshallingType.MAP)
.memberName("requestParameters")
.getter(getter(GetMethodResponse::requestParameters))
.setter(setter(Builder::requestParameters))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("requestParameters").build(),
MapTrait.builder()
.keyLocationName("key")
.valueLocationName("value")
.valueFieldInfo(
SdkField. builder(MarshallingType.BOOLEAN)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("value").build()).build()).build()).build();
private static final SdkField> REQUEST_MODELS_FIELD = SdkField
.> builder(MarshallingType.MAP)
.memberName("requestModels")
.getter(getter(GetMethodResponse::requestModels))
.setter(setter(Builder::requestModels))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("requestModels").build(),
MapTrait.builder()
.keyLocationName("key")
.valueLocationName("value")
.valueFieldInfo(
SdkField. builder(MarshallingType.STRING)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("value").build()).build()).build()).build();
private static final SdkField> METHOD_RESPONSES_FIELD = SdkField
.> builder(MarshallingType.MAP)
.memberName("methodResponses")
.getter(getter(GetMethodResponse::methodResponses))
.setter(setter(Builder::methodResponses))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("methodResponses").build(),
MapTrait.builder()
.keyLocationName("key")
.valueLocationName("value")
.valueFieldInfo(
SdkField. builder(MarshallingType.SDK_POJO)
.constructor(MethodResponse::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("value").build()).build()).build()).build();
private static final SdkField METHOD_INTEGRATION_FIELD = SdkField
. builder(MarshallingType.SDK_POJO).memberName("methodIntegration")
.getter(getter(GetMethodResponse::methodIntegration)).setter(setter(Builder::methodIntegration))
.constructor(Integration::builder)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("methodIntegration").build()).build();
private static final SdkField> AUTHORIZATION_SCOPES_FIELD = SdkField
.> builder(MarshallingType.LIST)
.memberName("authorizationScopes")
.getter(getter(GetMethodResponse::authorizationScopes))
.setter(setter(Builder::authorizationScopes))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("authorizationScopes").build(),
ListTrait
.builder()
.memberLocationName(null)
.memberFieldInfo(
SdkField. builder(MarshallingType.STRING)
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
.locationName("member").build()).build()).build()).build();
private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(HTTP_METHOD_FIELD,
AUTHORIZATION_TYPE_FIELD, AUTHORIZER_ID_FIELD, API_KEY_REQUIRED_FIELD, REQUEST_VALIDATOR_ID_FIELD,
OPERATION_NAME_FIELD, REQUEST_PARAMETERS_FIELD, REQUEST_MODELS_FIELD, METHOD_RESPONSES_FIELD,
METHOD_INTEGRATION_FIELD, AUTHORIZATION_SCOPES_FIELD));
private final String httpMethod;
private final String authorizationType;
private final String authorizerId;
private final Boolean apiKeyRequired;
private final String requestValidatorId;
private final String operationName;
private final Map requestParameters;
private final Map requestModels;
private final Map methodResponses;
private final Integration methodIntegration;
private final List authorizationScopes;
private GetMethodResponse(BuilderImpl builder) {
super(builder);
this.httpMethod = builder.httpMethod;
this.authorizationType = builder.authorizationType;
this.authorizerId = builder.authorizerId;
this.apiKeyRequired = builder.apiKeyRequired;
this.requestValidatorId = builder.requestValidatorId;
this.operationName = builder.operationName;
this.requestParameters = builder.requestParameters;
this.requestModels = builder.requestModels;
this.methodResponses = builder.methodResponses;
this.methodIntegration = builder.methodIntegration;
this.authorizationScopes = builder.authorizationScopes;
}
/**
*
* The method's HTTP verb.
*
*
* @return The method's HTTP verb.
*/
public final String httpMethod() {
return httpMethod;
}
/**
*
* The method's authorization type. Valid values are NONE
for open access, AWS_IAM
for
* using AWS IAM permissions, CUSTOM
for using a custom authorizer, or COGNITO_USER_POOLS
* for using a Cognito user pool.
*
*
* @return The method's authorization type. Valid values are NONE
for open access, AWS_IAM
* for using AWS IAM permissions, CUSTOM
for using a custom authorizer, or
* COGNITO_USER_POOLS
for using a Cognito user pool.
*/
public final String authorizationType() {
return authorizationType;
}
/**
*
* The identifier of an Authorizer to use on this method. The authorizationType
must be
* CUSTOM
.
*
*
* @return The identifier of an Authorizer to use on this method. The authorizationType
must be
* CUSTOM
.
*/
public final String authorizerId() {
return authorizerId;
}
/**
*
* A boolean flag specifying whether a valid ApiKey is required to invoke this method.
*
*
* @return A boolean flag specifying whether a valid ApiKey is required to invoke this method.
*/
public final Boolean apiKeyRequired() {
return apiKeyRequired;
}
/**
*
* The identifier of a RequestValidator for request validation.
*
*
* @return The identifier of a RequestValidator for request validation.
*/
public final String requestValidatorId() {
return requestValidatorId;
}
/**
*
* A human-friendly operation identifier for the method. For example, you can assign the operationName
* of ListPets
for the GET /pets
method in the PetStore
example.
*
*
* @return A human-friendly operation identifier for the method. For example, you can assign the
* operationName
of ListPets
for the GET /pets
method in the
* PetStore
example.
*/
public final String operationName() {
return operationName;
}
/**
* For responses, this returns true if the service returned a value for the RequestParameters property. This DOES
* NOT check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property).
* This is useful because the SDK will never return a null collection or map, but you may need to differentiate
* between the service returning nothing (or null) and the service returning an empty collection or map. For
* requests, this returns true if a value for the property was specified in the request builder, and false if a
* value was not specified.
*/
public final boolean hasRequestParameters() {
return requestParameters != null && !(requestParameters instanceof SdkAutoConstructMap);
}
/**
*
* A key-value map defining required or optional method request parameters that can be accepted by API Gateway. A
* key is a method request parameter name matching the pattern of method.request.{location}.{name}
,
* where location
is querystring
, path
, or header
and
* name
is a valid and unique parameter name. The value associated with the key is a Boolean flag
* indicating whether the parameter is required (true
) or optional (false
). The method
* request parameter names defined here are available in Integration to be mapped to integration request parameters
* or templates.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasRequestParameters} method.
*
*
* @return A key-value map defining required or optional method request parameters that can be accepted by API
* Gateway. A key is a method request parameter name matching the pattern of
* method.request.{location}.{name}
, where location
is querystring
,
* path
, or header
and name
is a valid and unique parameter name. The
* value associated with the key is a Boolean flag indicating whether the parameter is required (
* true
) or optional (false
). The method request parameter names defined here are
* available in Integration to be mapped to integration request parameters or templates.
*/
public final Map requestParameters() {
return requestParameters;
}
/**
* For responses, this returns true if the service returned a value for the RequestModels property. This DOES NOT
* check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property).
* This is useful because the SDK will never return a null collection or map, but you may need to differentiate
* between the service returning nothing (or null) and the service returning an empty collection or map. For
* requests, this returns true if a value for the property was specified in the request builder, and false if a
* value was not specified.
*/
public final boolean hasRequestModels() {
return requestModels != null && !(requestModels instanceof SdkAutoConstructMap);
}
/**
*
* A key-value map specifying data schemas, represented by Model resources, (as the mapped value) of the request
* payloads of given content types (as the mapping key).
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasRequestModels} method.
*
*
* @return A key-value map specifying data schemas, represented by Model resources, (as the mapped value) of the
* request payloads of given content types (as the mapping key).
*/
public final Map requestModels() {
return requestModels;
}
/**
* For responses, this returns true if the service returned a value for the MethodResponses property. This DOES NOT
* check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property).
* This is useful because the SDK will never return a null collection or map, but you may need to differentiate
* between the service returning nothing (or null) and the service returning an empty collection or map. For
* requests, this returns true if a value for the property was specified in the request builder, and false if a
* value was not specified.
*/
public final boolean hasMethodResponses() {
return methodResponses != null && !(methodResponses instanceof SdkAutoConstructMap);
}
/**
*
* Gets a method response associated with a given HTTP status code.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasMethodResponses} method.
*
*
* @return Gets a method response associated with a given HTTP status code.
*/
public final Map methodResponses() {
return methodResponses;
}
/**
*
* Gets the method's integration responsible for passing the client-submitted request to the back end and performing
* necessary transformations to make the request compliant with the back end.
*
*
* @return Gets the method's integration responsible for passing the client-submitted request to the back end and
* performing necessary transformations to make the request compliant with the back end.
*/
public final Integration methodIntegration() {
return methodIntegration;
}
/**
* For responses, this returns true if the service returned a value for the AuthorizationScopes property. This DOES
* NOT check that the value is non-empty (for which, you should check the {@code isEmpty()} method on the property).
* This is useful because the SDK will never return a null collection or map, but you may need to differentiate
* between the service returning nothing (or null) and the service returning an empty collection or map. For
* requests, this returns true if a value for the property was specified in the request builder, and false if a
* value was not specified.
*/
public final boolean hasAuthorizationScopes() {
return authorizationScopes != null && !(authorizationScopes instanceof SdkAutoConstructList);
}
/**
*
* A list of authorization scopes configured on the method. The scopes are used with a
* COGNITO_USER_POOLS
authorizer to authorize the method invocation. The authorization works by
* matching the method scopes against the scopes parsed from the access token in the incoming request. The method
* invocation is authorized if any method scopes matches a claimed scope in the access token. Otherwise, the
* invocation is not authorized. When the method scope is configured, the client must provide an access token
* instead of an identity token for authorization purposes.
*
*
* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
*
*
* This method will never return null. If you would like to know whether the service returned this field (so that
* you can differentiate between null and empty), you can use the {@link #hasAuthorizationScopes} method.
*
*
* @return A list of authorization scopes configured on the method. The scopes are used with a
* COGNITO_USER_POOLS
authorizer to authorize the method invocation. The authorization works by
* matching the method scopes against the scopes parsed from the access token in the incoming request. The
* method invocation is authorized if any method scopes matches a claimed scope in the access token.
* Otherwise, the invocation is not authorized. When the method scope is configured, the client must provide
* an access token instead of an identity token for authorization purposes.
*/
public final List authorizationScopes() {
return authorizationScopes;
}
@Override
public Builder toBuilder() {
return new BuilderImpl(this);
}
public static Builder builder() {
return new BuilderImpl();
}
public static Class extends Builder> serializableBuilderClass() {
return BuilderImpl.class;
}
@Override
public final int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + super.hashCode();
hashCode = 31 * hashCode + Objects.hashCode(httpMethod());
hashCode = 31 * hashCode + Objects.hashCode(authorizationType());
hashCode = 31 * hashCode + Objects.hashCode(authorizerId());
hashCode = 31 * hashCode + Objects.hashCode(apiKeyRequired());
hashCode = 31 * hashCode + Objects.hashCode(requestValidatorId());
hashCode = 31 * hashCode + Objects.hashCode(operationName());
hashCode = 31 * hashCode + Objects.hashCode(hasRequestParameters() ? requestParameters() : null);
hashCode = 31 * hashCode + Objects.hashCode(hasRequestModels() ? requestModels() : null);
hashCode = 31 * hashCode + Objects.hashCode(hasMethodResponses() ? methodResponses() : null);
hashCode = 31 * hashCode + Objects.hashCode(methodIntegration());
hashCode = 31 * hashCode + Objects.hashCode(hasAuthorizationScopes() ? authorizationScopes() : null);
return hashCode;
}
@Override
public final boolean equals(Object obj) {
return super.equals(obj) && equalsBySdkFields(obj);
}
@Override
public final boolean equalsBySdkFields(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof GetMethodResponse)) {
return false;
}
GetMethodResponse other = (GetMethodResponse) obj;
return Objects.equals(httpMethod(), other.httpMethod()) && Objects.equals(authorizationType(), other.authorizationType())
&& Objects.equals(authorizerId(), other.authorizerId())
&& Objects.equals(apiKeyRequired(), other.apiKeyRequired())
&& Objects.equals(requestValidatorId(), other.requestValidatorId())
&& Objects.equals(operationName(), other.operationName())
&& hasRequestParameters() == other.hasRequestParameters()
&& Objects.equals(requestParameters(), other.requestParameters())
&& hasRequestModels() == other.hasRequestModels() && Objects.equals(requestModels(), other.requestModels())
&& hasMethodResponses() == other.hasMethodResponses()
&& Objects.equals(methodResponses(), other.methodResponses())
&& Objects.equals(methodIntegration(), other.methodIntegration())
&& hasAuthorizationScopes() == other.hasAuthorizationScopes()
&& Objects.equals(authorizationScopes(), other.authorizationScopes());
}
/**
* 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 final String toString() {
return ToString.builder("GetMethodResponse").add("HttpMethod", httpMethod())
.add("AuthorizationType", authorizationType()).add("AuthorizerId", authorizerId())
.add("ApiKeyRequired", apiKeyRequired()).add("RequestValidatorId", requestValidatorId())
.add("OperationName", operationName())
.add("RequestParameters", hasRequestParameters() ? requestParameters() : null)
.add("RequestModels", hasRequestModels() ? requestModels() : null)
.add("MethodResponses", hasMethodResponses() ? methodResponses() : null)
.add("MethodIntegration", methodIntegration())
.add("AuthorizationScopes", hasAuthorizationScopes() ? authorizationScopes() : null).build();
}
public final Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "httpMethod":
return Optional.ofNullable(clazz.cast(httpMethod()));
case "authorizationType":
return Optional.ofNullable(clazz.cast(authorizationType()));
case "authorizerId":
return Optional.ofNullable(clazz.cast(authorizerId()));
case "apiKeyRequired":
return Optional.ofNullable(clazz.cast(apiKeyRequired()));
case "requestValidatorId":
return Optional.ofNullable(clazz.cast(requestValidatorId()));
case "operationName":
return Optional.ofNullable(clazz.cast(operationName()));
case "requestParameters":
return Optional.ofNullable(clazz.cast(requestParameters()));
case "requestModels":
return Optional.ofNullable(clazz.cast(requestModels()));
case "methodResponses":
return Optional.ofNullable(clazz.cast(methodResponses()));
case "methodIntegration":
return Optional.ofNullable(clazz.cast(methodIntegration()));
case "authorizationScopes":
return Optional.ofNullable(clazz.cast(authorizationScopes()));
default:
return Optional.empty();
}
}
@Override
public final List> sdkFields() {
return SDK_FIELDS;
}
private static Function getter(Function g) {
return obj -> g.apply((GetMethodResponse) obj);
}
private static BiConsumer setter(BiConsumer s) {
return (obj, val) -> s.accept((Builder) obj, val);
}
public interface Builder extends ApiGatewayResponse.Builder, SdkPojo, CopyableBuilder {
/**
*
* The method's HTTP verb.
*
*
* @param httpMethod
* The method's HTTP verb.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder httpMethod(String httpMethod);
/**
*
* The method's authorization type. Valid values are NONE
for open access, AWS_IAM
for
* using AWS IAM permissions, CUSTOM
for using a custom authorizer, or
* COGNITO_USER_POOLS
for using a Cognito user pool.
*
*
* @param authorizationType
* The method's authorization type. Valid values are NONE
for open access,
* AWS_IAM
for using AWS IAM permissions, CUSTOM
for using a custom authorizer,
* or COGNITO_USER_POOLS
for using a Cognito user pool.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder authorizationType(String authorizationType);
/**
*
* The identifier of an Authorizer to use on this method. The authorizationType
must be
* CUSTOM
.
*
*
* @param authorizerId
* The identifier of an Authorizer to use on this method. The authorizationType
must be
* CUSTOM
.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder authorizerId(String authorizerId);
/**
*
* A boolean flag specifying whether a valid ApiKey is required to invoke this method.
*
*
* @param apiKeyRequired
* A boolean flag specifying whether a valid ApiKey is required to invoke this method.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder apiKeyRequired(Boolean apiKeyRequired);
/**
*
* The identifier of a RequestValidator for request validation.
*
*
* @param requestValidatorId
* The identifier of a RequestValidator for request validation.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder requestValidatorId(String requestValidatorId);
/**
*
* A human-friendly operation identifier for the method. For example, you can assign the
* operationName
of ListPets
for the GET /pets
method in the
* PetStore
example.
*
*
* @param operationName
* A human-friendly operation identifier for the method. For example, you can assign the
* operationName
of ListPets
for the GET /pets
method in the
* PetStore
example.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder operationName(String operationName);
/**
*
* A key-value map defining required or optional method request parameters that can be accepted by API Gateway.
* A key is a method request parameter name matching the pattern of
* method.request.{location}.{name}
, where location
is querystring
,
* path
, or header
and name
is a valid and unique parameter name. The
* value associated with the key is a Boolean flag indicating whether the parameter is required (
* true
) or optional (false
). The method request parameter names defined here are
* available in Integration to be mapped to integration request parameters or templates.
*
*
* @param requestParameters
* A key-value map defining required or optional method request parameters that can be accepted by API
* Gateway. A key is a method request parameter name matching the pattern of
* method.request.{location}.{name}
, where location
is querystring
* , path
, or header
and name
is a valid and unique parameter
* name. The value associated with the key is a Boolean flag indicating whether the parameter is required
* (true
) or optional (false
). The method request parameter names defined here
* are available in Integration to be mapped to integration request parameters or templates.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder requestParameters(Map requestParameters);
/**
*
* A key-value map specifying data schemas, represented by Model resources, (as the mapped value) of the request
* payloads of given content types (as the mapping key).
*
*
* @param requestModels
* A key-value map specifying data schemas, represented by Model resources, (as the mapped value) of the
* request payloads of given content types (as the mapping key).
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder requestModels(Map requestModels);
/**
*
* Gets a method response associated with a given HTTP status code.
*
*
* @param methodResponses
* Gets a method response associated with a given HTTP status code.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder methodResponses(Map methodResponses);
/**
*
* Gets the method's integration responsible for passing the client-submitted request to the back end and
* performing necessary transformations to make the request compliant with the back end.
*
*
* @param methodIntegration
* Gets the method's integration responsible for passing the client-submitted request to the back end and
* performing necessary transformations to make the request compliant with the back end.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder methodIntegration(Integration methodIntegration);
/**
*
* Gets the method's integration responsible for passing the client-submitted request to the back end and
* performing necessary transformations to make the request compliant with the back end.
*
* This is a convenience method that creates an instance of the {@link Integration.Builder} avoiding the need to
* create one manually via {@link Integration#builder()}.
*
*
* When the {@link Consumer} completes, {@link Integration.Builder#build()} is called immediately and its result
* is passed to {@link #methodIntegration(Integration)}.
*
* @param methodIntegration
* a consumer that will call methods on {@link Integration.Builder}
* @return Returns a reference to this object so that method calls can be chained together.
* @see #methodIntegration(Integration)
*/
default Builder methodIntegration(Consumer methodIntegration) {
return methodIntegration(Integration.builder().applyMutation(methodIntegration).build());
}
/**
*
* A list of authorization scopes configured on the method. The scopes are used with a
* COGNITO_USER_POOLS
authorizer to authorize the method invocation. The authorization works by
* matching the method scopes against the scopes parsed from the access token in the incoming request. The
* method invocation is authorized if any method scopes matches a claimed scope in the access token. Otherwise,
* the invocation is not authorized. When the method scope is configured, the client must provide an access
* token instead of an identity token for authorization purposes.
*
*
* @param authorizationScopes
* A list of authorization scopes configured on the method. The scopes are used with a
* COGNITO_USER_POOLS
authorizer to authorize the method invocation. The authorization works
* by matching the method scopes against the scopes parsed from the access token in the incoming request.
* The method invocation is authorized if any method scopes matches a claimed scope in the access token.
* Otherwise, the invocation is not authorized. When the method scope is configured, the client must
* provide an access token instead of an identity token for authorization purposes.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder authorizationScopes(Collection authorizationScopes);
/**
*
* A list of authorization scopes configured on the method. The scopes are used with a
* COGNITO_USER_POOLS
authorizer to authorize the method invocation. The authorization works by
* matching the method scopes against the scopes parsed from the access token in the incoming request. The
* method invocation is authorized if any method scopes matches a claimed scope in the access token. Otherwise,
* the invocation is not authorized. When the method scope is configured, the client must provide an access
* token instead of an identity token for authorization purposes.
*
*
* @param authorizationScopes
* A list of authorization scopes configured on the method. The scopes are used with a
* COGNITO_USER_POOLS
authorizer to authorize the method invocation. The authorization works
* by matching the method scopes against the scopes parsed from the access token in the incoming request.
* The method invocation is authorized if any method scopes matches a claimed scope in the access token.
* Otherwise, the invocation is not authorized. When the method scope is configured, the client must
* provide an access token instead of an identity token for authorization purposes.
* @return Returns a reference to this object so that method calls can be chained together.
*/
Builder authorizationScopes(String... authorizationScopes);
}
static final class BuilderImpl extends ApiGatewayResponse.BuilderImpl implements Builder {
private String httpMethod;
private String authorizationType;
private String authorizerId;
private Boolean apiKeyRequired;
private String requestValidatorId;
private String operationName;
private Map requestParameters = DefaultSdkAutoConstructMap.getInstance();
private Map requestModels = DefaultSdkAutoConstructMap.getInstance();
private Map methodResponses = DefaultSdkAutoConstructMap.getInstance();
private Integration methodIntegration;
private List authorizationScopes = DefaultSdkAutoConstructList.getInstance();
private BuilderImpl() {
}
private BuilderImpl(GetMethodResponse model) {
super(model);
httpMethod(model.httpMethod);
authorizationType(model.authorizationType);
authorizerId(model.authorizerId);
apiKeyRequired(model.apiKeyRequired);
requestValidatorId(model.requestValidatorId);
operationName(model.operationName);
requestParameters(model.requestParameters);
requestModels(model.requestModels);
methodResponses(model.methodResponses);
methodIntegration(model.methodIntegration);
authorizationScopes(model.authorizationScopes);
}
public final String getHttpMethod() {
return httpMethod;
}
public final void setHttpMethod(String httpMethod) {
this.httpMethod = httpMethod;
}
@Override
public final Builder httpMethod(String httpMethod) {
this.httpMethod = httpMethod;
return this;
}
public final String getAuthorizationType() {
return authorizationType;
}
public final void setAuthorizationType(String authorizationType) {
this.authorizationType = authorizationType;
}
@Override
public final Builder authorizationType(String authorizationType) {
this.authorizationType = authorizationType;
return this;
}
public final String getAuthorizerId() {
return authorizerId;
}
public final void setAuthorizerId(String authorizerId) {
this.authorizerId = authorizerId;
}
@Override
public final Builder authorizerId(String authorizerId) {
this.authorizerId = authorizerId;
return this;
}
public final Boolean getApiKeyRequired() {
return apiKeyRequired;
}
public final void setApiKeyRequired(Boolean apiKeyRequired) {
this.apiKeyRequired = apiKeyRequired;
}
@Override
public final Builder apiKeyRequired(Boolean apiKeyRequired) {
this.apiKeyRequired = apiKeyRequired;
return this;
}
public final String getRequestValidatorId() {
return requestValidatorId;
}
public final void setRequestValidatorId(String requestValidatorId) {
this.requestValidatorId = requestValidatorId;
}
@Override
public final Builder requestValidatorId(String requestValidatorId) {
this.requestValidatorId = requestValidatorId;
return this;
}
public final String getOperationName() {
return operationName;
}
public final void setOperationName(String operationName) {
this.operationName = operationName;
}
@Override
public final Builder operationName(String operationName) {
this.operationName = operationName;
return this;
}
public final Map getRequestParameters() {
if (requestParameters instanceof SdkAutoConstructMap) {
return null;
}
return requestParameters;
}
public final void setRequestParameters(Map requestParameters) {
this.requestParameters = MapOfStringToBooleanCopier.copy(requestParameters);
}
@Override
public final Builder requestParameters(Map requestParameters) {
this.requestParameters = MapOfStringToBooleanCopier.copy(requestParameters);
return this;
}
public final Map getRequestModels() {
if (requestModels instanceof SdkAutoConstructMap) {
return null;
}
return requestModels;
}
public final void setRequestModels(Map requestModels) {
this.requestModels = MapOfStringToStringCopier.copy(requestModels);
}
@Override
public final Builder requestModels(Map requestModels) {
this.requestModels = MapOfStringToStringCopier.copy(requestModels);
return this;
}
public final Map getMethodResponses() {
Map result = MapOfMethodResponseCopier.copyToBuilder(this.methodResponses);
if (result instanceof SdkAutoConstructMap) {
return null;
}
return result;
}
public final void setMethodResponses(Map methodResponses) {
this.methodResponses = MapOfMethodResponseCopier.copyFromBuilder(methodResponses);
}
@Override
public final Builder methodResponses(Map methodResponses) {
this.methodResponses = MapOfMethodResponseCopier.copy(methodResponses);
return this;
}
public final Integration.Builder getMethodIntegration() {
return methodIntegration != null ? methodIntegration.toBuilder() : null;
}
public final void setMethodIntegration(Integration.BuilderImpl methodIntegration) {
this.methodIntegration = methodIntegration != null ? methodIntegration.build() : null;
}
@Override
public final Builder methodIntegration(Integration methodIntegration) {
this.methodIntegration = methodIntegration;
return this;
}
public final Collection getAuthorizationScopes() {
if (authorizationScopes instanceof SdkAutoConstructList) {
return null;
}
return authorizationScopes;
}
public final void setAuthorizationScopes(Collection authorizationScopes) {
this.authorizationScopes = ListOfStringCopier.copy(authorizationScopes);
}
@Override
public final Builder authorizationScopes(Collection authorizationScopes) {
this.authorizationScopes = ListOfStringCopier.copy(authorizationScopes);
return this;
}
@Override
@SafeVarargs
public final Builder authorizationScopes(String... authorizationScopes) {
authorizationScopes(Arrays.asList(authorizationScopes));
return this;
}
@Override
public GetMethodResponse build() {
return new GetMethodResponse(this);
}
@Override
public List> sdkFields() {
return SDK_FIELDS;
}
}
}