All Downloads are FREE. Search and download functionalities are using the official Maven repository.

software.amazon.awssdk.services.apigateway.model.PutIntegrationRequest Maven / Gradle / Ivy

Go to download

The AWS Java SDK for Amazon API Gateway module holds the client classes that are used for communicating with Amazon API Gateway

There is a newer version: 2.28.3
Show newest version
/*
 * 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.awscore.AwsRequestOverrideConfiguration;
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;

/**
 * 

* Sets up a method's integration. *

*/ @Generated("software.amazon.awssdk:codegen") public final class PutIntegrationRequest extends ApiGatewayRequest implements ToCopyableBuilder { private static final SdkField REST_API_ID_FIELD = SdkField. builder(MarshallingType.STRING) .getter(getter(PutIntegrationRequest::restApiId)).setter(setter(Builder::restApiId)) .traits(LocationTrait.builder().location(MarshallLocation.PATH).locationName("restapi_id").build()).build(); private static final SdkField RESOURCE_ID_FIELD = SdkField. builder(MarshallingType.STRING) .getter(getter(PutIntegrationRequest::resourceId)).setter(setter(Builder::resourceId)) .traits(LocationTrait.builder().location(MarshallLocation.PATH).locationName("resource_id").build()).build(); private static final SdkField HTTP_METHOD_FIELD = SdkField. builder(MarshallingType.STRING) .getter(getter(PutIntegrationRequest::httpMethod)).setter(setter(Builder::httpMethod)) .traits(LocationTrait.builder().location(MarshallLocation.PATH).locationName("http_method").build()).build(); private static final SdkField TYPE_FIELD = SdkField. builder(MarshallingType.STRING) .getter(getter(PutIntegrationRequest::typeAsString)).setter(setter(Builder::type)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("type").build()).build(); private static final SdkField INTEGRATION_HTTP_METHOD_FIELD = SdkField. builder(MarshallingType.STRING) .getter(getter(PutIntegrationRequest::integrationHttpMethod)).setter(setter(Builder::integrationHttpMethod)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("httpMethod").build()).build(); private static final SdkField URI_FIELD = SdkField. builder(MarshallingType.STRING) .getter(getter(PutIntegrationRequest::uri)).setter(setter(Builder::uri)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("uri").build()).build(); private static final SdkField CONNECTION_TYPE_FIELD = SdkField. builder(MarshallingType.STRING) .getter(getter(PutIntegrationRequest::connectionTypeAsString)).setter(setter(Builder::connectionType)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("connectionType").build()).build(); private static final SdkField CONNECTION_ID_FIELD = SdkField. builder(MarshallingType.STRING) .getter(getter(PutIntegrationRequest::connectionId)).setter(setter(Builder::connectionId)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("connectionId").build()).build(); private static final SdkField CREDENTIALS_FIELD = SdkField. builder(MarshallingType.STRING) .getter(getter(PutIntegrationRequest::credentials)).setter(setter(Builder::credentials)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("credentials").build()).build(); private static final SdkField> REQUEST_PARAMETERS_FIELD = SdkField .> builder(MarshallingType.MAP) .getter(getter(PutIntegrationRequest::requestParameters)) .setter(setter(Builder::requestParameters)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("requestParameters").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> REQUEST_TEMPLATES_FIELD = SdkField .> builder(MarshallingType.MAP) .getter(getter(PutIntegrationRequest::requestTemplates)) .setter(setter(Builder::requestTemplates)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("requestTemplates").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 PASSTHROUGH_BEHAVIOR_FIELD = SdkField. builder(MarshallingType.STRING) .getter(getter(PutIntegrationRequest::passthroughBehavior)).setter(setter(Builder::passthroughBehavior)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("passthroughBehavior").build()) .build(); private static final SdkField CACHE_NAMESPACE_FIELD = SdkField. builder(MarshallingType.STRING) .getter(getter(PutIntegrationRequest::cacheNamespace)).setter(setter(Builder::cacheNamespace)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("cacheNamespace").build()).build(); private static final SdkField> CACHE_KEY_PARAMETERS_FIELD = SdkField .> builder(MarshallingType.LIST) .getter(getter(PutIntegrationRequest::cacheKeyParameters)) .setter(setter(Builder::cacheKeyParameters)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("cacheKeyParameters").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 SdkField CONTENT_HANDLING_FIELD = SdkField. builder(MarshallingType.STRING) .getter(getter(PutIntegrationRequest::contentHandlingAsString)).setter(setter(Builder::contentHandling)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("contentHandling").build()).build(); private static final SdkField TIMEOUT_IN_MILLIS_FIELD = SdkField. builder(MarshallingType.INTEGER) .getter(getter(PutIntegrationRequest::timeoutInMillis)).setter(setter(Builder::timeoutInMillis)) .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("timeoutInMillis").build()).build(); private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(REST_API_ID_FIELD, RESOURCE_ID_FIELD, HTTP_METHOD_FIELD, TYPE_FIELD, INTEGRATION_HTTP_METHOD_FIELD, URI_FIELD, CONNECTION_TYPE_FIELD, CONNECTION_ID_FIELD, CREDENTIALS_FIELD, REQUEST_PARAMETERS_FIELD, REQUEST_TEMPLATES_FIELD, PASSTHROUGH_BEHAVIOR_FIELD, CACHE_NAMESPACE_FIELD, CACHE_KEY_PARAMETERS_FIELD, CONTENT_HANDLING_FIELD, TIMEOUT_IN_MILLIS_FIELD)); private final String restApiId; private final String resourceId; private final String httpMethod; private final String type; private final String integrationHttpMethod; private final String uri; private final String connectionType; private final String connectionId; private final String credentials; private final Map requestParameters; private final Map requestTemplates; private final String passthroughBehavior; private final String cacheNamespace; private final List cacheKeyParameters; private final String contentHandling; private final Integer timeoutInMillis; private PutIntegrationRequest(BuilderImpl builder) { super(builder); this.restApiId = builder.restApiId; this.resourceId = builder.resourceId; this.httpMethod = builder.httpMethod; this.type = builder.type; this.integrationHttpMethod = builder.integrationHttpMethod; this.uri = builder.uri; this.connectionType = builder.connectionType; this.connectionId = builder.connectionId; this.credentials = builder.credentials; this.requestParameters = builder.requestParameters; this.requestTemplates = builder.requestTemplates; this.passthroughBehavior = builder.passthroughBehavior; this.cacheNamespace = builder.cacheNamespace; this.cacheKeyParameters = builder.cacheKeyParameters; this.contentHandling = builder.contentHandling; this.timeoutInMillis = builder.timeoutInMillis; } /** *

* [Required] The string identifier of the associated RestApi. *

* * @return [Required] The string identifier of the associated RestApi. */ public String restApiId() { return restApiId; } /** *

* [Required] Specifies a put integration request's resource ID. *

* * @return [Required] Specifies a put integration request's resource ID. */ public String resourceId() { return resourceId; } /** *

* [Required] Specifies a put integration request's HTTP method. *

* * @return [Required] Specifies a put integration request's HTTP method. */ public String httpMethod() { return httpMethod; } /** *

* [Required] Specifies a put integration input's type. *

*

* If the service returns an enum value that is not available in the current SDK version, {@link #type} will return * {@link IntegrationType#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from * {@link #typeAsString}. *

* * @return [Required] Specifies a put integration input's type. * @see IntegrationType */ public IntegrationType type() { return IntegrationType.fromValue(type); } /** *

* [Required] Specifies a put integration input's type. *

*

* If the service returns an enum value that is not available in the current SDK version, {@link #type} will return * {@link IntegrationType#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available from * {@link #typeAsString}. *

* * @return [Required] Specifies a put integration input's type. * @see IntegrationType */ public String typeAsString() { return type; } /** *

* Specifies a put integration HTTP method. When the integration type is HTTP or AWS, this field is required. *

* * @return Specifies a put integration HTTP method. When the integration type is HTTP or AWS, this field is * required. */ public String integrationHttpMethod() { return integrationHttpMethod; } /** *

* Specifies Uniform Resource Identifier (URI) of the integration endpoint. *

*
    *
  • *

    * For HTTP or HTTP_PROXY integrations, the URI must be a fully formed, encoded HTTP(S) * URL according to the RFC-3986 * specification, for either standard integration, where connectionType is not * VPC_LINK, or private integration, where connectionType is VPC_LINK. For a * private HTTP integration, the URI is not used for routing. *

    *
  • *
  • *

    * For AWS or AWS_PROXY integrations, the URI is of the form * arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}. Here, * {Region} is the API Gateway region (e.g., us-east-1); {service} is the * name of the integrated AWS service (e.g., s3); and {subdomain} is a designated * subdomain supported by certain AWS service for fast host-name lookup. action can be used for an AWS * service action-based API, using an Action={name}&{p1}={v1}&p2={v2}... query string. The * ensuing {service_api} refers to a supported action {name} plus any required input * parameters. Alternatively, path can be used for an AWS service path-based API. The ensuing * service_api refers to the path to an AWS service resource, including the region of the integrated * AWS service, if applicable. For example, for integration with the S3 API of * GetObject, the * uri can be either * arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key} or * arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key} *

    *
  • *
* * @return Specifies Uniform Resource Identifier (URI) of the integration endpoint.

*
    *
  • *

    * For HTTP or HTTP_PROXY integrations, the URI must be a fully formed, encoded * HTTP(S) URL according to the RFC-3986 specification, for either * standard integration, where connectionType is not VPC_LINK, or private * integration, where connectionType is VPC_LINK. For a private HTTP integration, * the URI is not used for routing. *

    *
  • *
  • *

    * For AWS or AWS_PROXY integrations, the URI is of the form * arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}. Here, * {Region} is the API Gateway region (e.g., us-east-1); {service} is * the name of the integrated AWS service (e.g., s3); and {subdomain} is a * designated subdomain supported by certain AWS service for fast host-name lookup. action can * be used for an AWS service action-based API, using an * Action={name}&{p1}={v1}&p2={v2}... query string. The ensuing * {service_api} refers to a supported action {name} plus any required input * parameters. Alternatively, path can be used for an AWS service path-based API. The ensuing * service_api refers to the path to an AWS service resource, including the region of the * integrated AWS service, if applicable. For example, for integration with the S3 API of * GetObject, * the uri can be either * arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key} or * arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key} *

    *
  • */ public String uri() { return uri; } /** *

    * The type of the network connection to the integration endpoint. The valid value is INTERNET for * connections through the public routable internet or VPC_LINK for private connections between API * Gateway and a network load balancer in a VPC. The default value is INTERNET. *

    *

    * If the service returns an enum value that is not available in the current SDK version, {@link #connectionType} * will return {@link ConnectionType#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available * from {@link #connectionTypeAsString}. *

    * * @return The type of the network connection to the integration endpoint. The valid value is INTERNET * for connections through the public routable internet or VPC_LINK for private connections * between API Gateway and a network load balancer in a VPC. The default value is INTERNET. * @see ConnectionType */ public ConnectionType connectionType() { return ConnectionType.fromValue(connectionType); } /** *

    * The type of the network connection to the integration endpoint. The valid value is INTERNET for * connections through the public routable internet or VPC_LINK for private connections between API * Gateway and a network load balancer in a VPC. The default value is INTERNET. *

    *

    * If the service returns an enum value that is not available in the current SDK version, {@link #connectionType} * will return {@link ConnectionType#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is available * from {@link #connectionTypeAsString}. *

    * * @return The type of the network connection to the integration endpoint. The valid value is INTERNET * for connections through the public routable internet or VPC_LINK for private connections * between API Gateway and a network load balancer in a VPC. The default value is INTERNET. * @see ConnectionType */ public String connectionTypeAsString() { return connectionType; } /** *

    * The (id) of * the VpcLink used for the integration when connectionType=VPC_LINK and undefined, otherwise. *

    * * @return The (id * ) of the VpcLink used for the integration when connectionType=VPC_LINK and * undefined, otherwise. */ public String connectionId() { return connectionId; } /** *

    * Specifies whether credentials are required for a put integration. *

    * * @return Specifies whether credentials are required for a put integration. */ public String credentials() { return credentials; } /** * Returns true if the RequestParameters property was specified by the sender (it may be empty), or false if the * sender did not specify the value (it will be empty). For responses returned by the SDK, the sender is the AWS * service. */ public boolean hasRequestParameters() { return requestParameters != null && !(requestParameters instanceof SdkAutoConstructMap); } /** *

    * A key-value map specifying request parameters that are passed from the method request to the back end. The key is * an integration request parameter name and the associated value is a method request parameter value or static * value that must be enclosed within single quotes and pre-encoded as required by the back end. The method request * parameter value must match the pattern of method.request.{location}.{name}, where * location is querystring, path, or header and * name must be a valid and unique method request parameter name. *

    *

    * Attempts to modify the collection returned by this method will result in an UnsupportedOperationException. *

    *

    * You can use {@link #hasRequestParameters()} to see if a value was sent in this field. *

    * * @return A key-value map specifying request parameters that are passed from the method request to the back end. * The key is an integration request parameter name and the associated value is a method request parameter * value or static value that must be enclosed within single quotes and pre-encoded as required by the back * end. The method request parameter value must match the pattern of * method.request.{location}.{name}, where location is querystring, * path, or header and name must be a valid and unique method request * parameter name. */ public Map requestParameters() { return requestParameters; } /** * Returns true if the RequestTemplates property was specified by the sender (it may be empty), or false if the * sender did not specify the value (it will be empty). For responses returned by the SDK, the sender is the AWS * service. */ public boolean hasRequestTemplates() { return requestTemplates != null && !(requestTemplates instanceof SdkAutoConstructMap); } /** *

    * Represents a map of Velocity templates that are applied on the request payload based on the value of the * Content-Type header sent by the client. The content type value is the key in this map, and the template (as a * String) is the value. *

    *

    * Attempts to modify the collection returned by this method will result in an UnsupportedOperationException. *

    *

    * You can use {@link #hasRequestTemplates()} to see if a value was sent in this field. *

    * * @return Represents a map of Velocity templates that are applied on the request payload based on the value of the * Content-Type header sent by the client. The content type value is the key in this map, and the template * (as a String) is the value. */ public Map requestTemplates() { return requestTemplates; } /** *

    * Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, and * the available mapping templates specified as the requestTemplates property on the Integration * resource. There are three valid values: WHEN_NO_MATCH, WHEN_NO_TEMPLATES, and * NEVER. *

    *
      *
    • *

      * WHEN_NO_MATCH passes the request body for unmapped content types through to the integration back end * without transformation. *

      *
    • *
    • *

      * NEVER rejects unmapped content types with an HTTP 415 'Unsupported Media Type' response. *

      *
    • *
    • *

      * WHEN_NO_TEMPLATES allows pass-through when the integration has NO content types mapped to templates. * However if there is at least one content type defined, unmapped content types will be rejected with the same 415 * response. *

      *
    • *
    * * @return Specifies the pass-through behavior for incoming requests based on the Content-Type header in the * request, and the available mapping templates specified as the requestTemplates property on * the Integration resource. There are three valid values: WHEN_NO_MATCH, * WHEN_NO_TEMPLATES, and NEVER.

    *
      *
    • *

      * WHEN_NO_MATCH passes the request body for unmapped content types through to the integration * back end without transformation. *

      *
    • *
    • *

      * NEVER rejects unmapped content types with an HTTP 415 'Unsupported Media Type' response. *

      *
    • *
    • *

      * WHEN_NO_TEMPLATES allows pass-through when the integration has NO content types mapped to * templates. However if there is at least one content type defined, unmapped content types will be rejected * with the same 415 response. *

      *
    • */ public String passthroughBehavior() { return passthroughBehavior; } /** *

      * A list of request parameters whose values are to be cached. *

      * * @return A list of request parameters whose values are to be cached. */ public String cacheNamespace() { return cacheNamespace; } /** * Returns true if the CacheKeyParameters property was specified by the sender (it may be empty), or false if the * sender did not specify the value (it will be empty). For responses returned by the SDK, the sender is the AWS * service. */ public boolean hasCacheKeyParameters() { return cacheKeyParameters != null && !(cacheKeyParameters instanceof SdkAutoConstructList); } /** *

      * An API-specific tag group of related cached parameters. *

      *

      * Attempts to modify the collection returned by this method will result in an UnsupportedOperationException. *

      *

      * You can use {@link #hasCacheKeyParameters()} to see if a value was sent in this field. *

      * * @return An API-specific tag group of related cached parameters. */ public List cacheKeyParameters() { return cacheKeyParameters; } /** *

      * Specifies how to handle request payload content type conversions. Supported values are * CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: *

      *
        *
      • *

        * CONVERT_TO_BINARY: Converts a request payload from a Base64-encoded string to the corresponding * binary blob. *

        *
      • *
      • *

        * CONVERT_TO_TEXT: Converts a request payload from a binary blob to a Base64-encoded string. *

        *
      • *
      *

      * If this property is not defined, the request payload will be passed through from the method request to * integration request without modification, provided that the passthroughBehavior is configured to * support payload pass-through. *

      *

      * If the service returns an enum value that is not available in the current SDK version, {@link #contentHandling} * will return {@link ContentHandlingStrategy#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is * available from {@link #contentHandlingAsString}. *

      * * @return Specifies how to handle request payload content type conversions. Supported values are * CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:

      *
        *
      • *

        * CONVERT_TO_BINARY: Converts a request payload from a Base64-encoded string to the * corresponding binary blob. *

        *
      • *
      • *

        * CONVERT_TO_TEXT: Converts a request payload from a binary blob to a Base64-encoded string. *

        *
      • *
      *

      * If this property is not defined, the request payload will be passed through from the method request to * integration request without modification, provided that the passthroughBehavior is * configured to support payload pass-through. * @see ContentHandlingStrategy */ public ContentHandlingStrategy contentHandling() { return ContentHandlingStrategy.fromValue(contentHandling); } /** *

      * Specifies how to handle request payload content type conversions. Supported values are * CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: *

      *
        *
      • *

        * CONVERT_TO_BINARY: Converts a request payload from a Base64-encoded string to the corresponding * binary blob. *

        *
      • *
      • *

        * CONVERT_TO_TEXT: Converts a request payload from a binary blob to a Base64-encoded string. *

        *
      • *
      *

      * If this property is not defined, the request payload will be passed through from the method request to * integration request without modification, provided that the passthroughBehavior is configured to * support payload pass-through. *

      *

      * If the service returns an enum value that is not available in the current SDK version, {@link #contentHandling} * will return {@link ContentHandlingStrategy#UNKNOWN_TO_SDK_VERSION}. The raw value returned by the service is * available from {@link #contentHandlingAsString}. *

      * * @return Specifies how to handle request payload content type conversions. Supported values are * CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:

      *
        *
      • *

        * CONVERT_TO_BINARY: Converts a request payload from a Base64-encoded string to the * corresponding binary blob. *

        *
      • *
      • *

        * CONVERT_TO_TEXT: Converts a request payload from a binary blob to a Base64-encoded string. *

        *
      • *
      *

      * If this property is not defined, the request payload will be passed through from the method request to * integration request without modification, provided that the passthroughBehavior is * configured to support payload pass-through. * @see ContentHandlingStrategy */ public String contentHandlingAsString() { return contentHandling; } /** *

      * Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds. *

      * * @return Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 * seconds. */ public Integer timeoutInMillis() { return timeoutInMillis; } @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 + super.hashCode(); hashCode = 31 * hashCode + Objects.hashCode(restApiId()); hashCode = 31 * hashCode + Objects.hashCode(resourceId()); hashCode = 31 * hashCode + Objects.hashCode(httpMethod()); hashCode = 31 * hashCode + Objects.hashCode(typeAsString()); hashCode = 31 * hashCode + Objects.hashCode(integrationHttpMethod()); hashCode = 31 * hashCode + Objects.hashCode(uri()); hashCode = 31 * hashCode + Objects.hashCode(connectionTypeAsString()); hashCode = 31 * hashCode + Objects.hashCode(connectionId()); hashCode = 31 * hashCode + Objects.hashCode(credentials()); hashCode = 31 * hashCode + Objects.hashCode(requestParameters()); hashCode = 31 * hashCode + Objects.hashCode(requestTemplates()); hashCode = 31 * hashCode + Objects.hashCode(passthroughBehavior()); hashCode = 31 * hashCode + Objects.hashCode(cacheNamespace()); hashCode = 31 * hashCode + Objects.hashCode(cacheKeyParameters()); hashCode = 31 * hashCode + Objects.hashCode(contentHandlingAsString()); hashCode = 31 * hashCode + Objects.hashCode(timeoutInMillis()); return hashCode; } @Override public boolean equals(Object obj) { return super.equals(obj) && equalsBySdkFields(obj); } @Override public boolean equalsBySdkFields(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof PutIntegrationRequest)) { return false; } PutIntegrationRequest other = (PutIntegrationRequest) obj; return Objects.equals(restApiId(), other.restApiId()) && Objects.equals(resourceId(), other.resourceId()) && Objects.equals(httpMethod(), other.httpMethod()) && Objects.equals(typeAsString(), other.typeAsString()) && Objects.equals(integrationHttpMethod(), other.integrationHttpMethod()) && Objects.equals(uri(), other.uri()) && Objects.equals(connectionTypeAsString(), other.connectionTypeAsString()) && Objects.equals(connectionId(), other.connectionId()) && Objects.equals(credentials(), other.credentials()) && Objects.equals(requestParameters(), other.requestParameters()) && Objects.equals(requestTemplates(), other.requestTemplates()) && Objects.equals(passthroughBehavior(), other.passthroughBehavior()) && Objects.equals(cacheNamespace(), other.cacheNamespace()) && Objects.equals(cacheKeyParameters(), other.cacheKeyParameters()) && Objects.equals(contentHandlingAsString(), other.contentHandlingAsString()) && Objects.equals(timeoutInMillis(), other.timeoutInMillis()); } /** * 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("PutIntegrationRequest").add("RestApiId", restApiId()).add("ResourceId", resourceId()) .add("HttpMethod", httpMethod()).add("Type", typeAsString()) .add("IntegrationHttpMethod", integrationHttpMethod()).add("Uri", uri()) .add("ConnectionType", connectionTypeAsString()).add("ConnectionId", connectionId()) .add("Credentials", credentials()).add("RequestParameters", requestParameters()) .add("RequestTemplates", requestTemplates()).add("PassthroughBehavior", passthroughBehavior()) .add("CacheNamespace", cacheNamespace()).add("CacheKeyParameters", cacheKeyParameters()) .add("ContentHandling", contentHandlingAsString()).add("TimeoutInMillis", timeoutInMillis()).build(); } public Optional getValueForField(String fieldName, Class clazz) { switch (fieldName) { case "restApiId": return Optional.ofNullable(clazz.cast(restApiId())); case "resourceId": return Optional.ofNullable(clazz.cast(resourceId())); case "httpMethod": return Optional.ofNullable(clazz.cast(httpMethod())); case "type": return Optional.ofNullable(clazz.cast(typeAsString())); case "integrationHttpMethod": return Optional.ofNullable(clazz.cast(integrationHttpMethod())); case "uri": return Optional.ofNullable(clazz.cast(uri())); case "connectionType": return Optional.ofNullable(clazz.cast(connectionTypeAsString())); case "connectionId": return Optional.ofNullable(clazz.cast(connectionId())); case "credentials": return Optional.ofNullable(clazz.cast(credentials())); case "requestParameters": return Optional.ofNullable(clazz.cast(requestParameters())); case "requestTemplates": return Optional.ofNullable(clazz.cast(requestTemplates())); case "passthroughBehavior": return Optional.ofNullable(clazz.cast(passthroughBehavior())); case "cacheNamespace": return Optional.ofNullable(clazz.cast(cacheNamespace())); case "cacheKeyParameters": return Optional.ofNullable(clazz.cast(cacheKeyParameters())); case "contentHandling": return Optional.ofNullable(clazz.cast(contentHandlingAsString())); case "timeoutInMillis": return Optional.ofNullable(clazz.cast(timeoutInMillis())); default: return Optional.empty(); } } @Override public List> sdkFields() { return SDK_FIELDS; } private static Function getter(Function g) { return obj -> g.apply((PutIntegrationRequest) obj); } private static BiConsumer setter(BiConsumer s) { return (obj, val) -> s.accept((Builder) obj, val); } public interface Builder extends ApiGatewayRequest.Builder, SdkPojo, CopyableBuilder { /** *

      * [Required] The string identifier of the associated RestApi. *

      * * @param restApiId * [Required] The string identifier of the associated RestApi. * @return Returns a reference to this object so that method calls can be chained together. */ Builder restApiId(String restApiId); /** *

      * [Required] Specifies a put integration request's resource ID. *

      * * @param resourceId * [Required] Specifies a put integration request's resource ID. * @return Returns a reference to this object so that method calls can be chained together. */ Builder resourceId(String resourceId); /** *

      * [Required] Specifies a put integration request's HTTP method. *

      * * @param httpMethod * [Required] Specifies a put integration request's HTTP method. * @return Returns a reference to this object so that method calls can be chained together. */ Builder httpMethod(String httpMethod); /** *

      * [Required] Specifies a put integration input's type. *

      * * @param type * [Required] Specifies a put integration input's type. * @see IntegrationType * @return Returns a reference to this object so that method calls can be chained together. * @see IntegrationType */ Builder type(String type); /** *

      * [Required] Specifies a put integration input's type. *

      * * @param type * [Required] Specifies a put integration input's type. * @see IntegrationType * @return Returns a reference to this object so that method calls can be chained together. * @see IntegrationType */ Builder type(IntegrationType type); /** *

      * Specifies a put integration HTTP method. When the integration type is HTTP or AWS, this field is required. *

      * * @param integrationHttpMethod * Specifies a put integration HTTP method. When the integration type is HTTP or AWS, this field is * required. * @return Returns a reference to this object so that method calls can be chained together. */ Builder integrationHttpMethod(String integrationHttpMethod); /** *

      * Specifies Uniform Resource Identifier (URI) of the integration endpoint. *

      *
        *
      • *

        * For HTTP or HTTP_PROXY integrations, the URI must be a fully formed, encoded * HTTP(S) URL according to the RFC-3986 specification, for either * standard integration, where connectionType is not VPC_LINK, or private integration, * where connectionType is VPC_LINK. For a private HTTP integration, the URI is not * used for routing. *

        *
      • *
      • *

        * For AWS or AWS_PROXY integrations, the URI is of the form * arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}. Here, * {Region} is the API Gateway region (e.g., us-east-1); {service} is the * name of the integrated AWS service (e.g., s3); and {subdomain} is a designated * subdomain supported by certain AWS service for fast host-name lookup. action can be used for an * AWS service action-based API, using an Action={name}&{p1}={v1}&p2={v2}... query string. * The ensuing {service_api} refers to a supported action {name} plus any required * input parameters. Alternatively, path can be used for an AWS service path-based API. The ensuing * service_api refers to the path to an AWS service resource, including the region of the * integrated AWS service, if applicable. For example, for integration with the S3 API of * GetObject, the * uri can be either * arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key} or * arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key} *

        *
      • *
      * * @param uri * Specifies Uniform Resource Identifier (URI) of the integration endpoint.

      *
        *
      • *

        * For HTTP or HTTP_PROXY integrations, the URI must be a fully formed, encoded * HTTP(S) URL according to the RFC-3986 specification, for * either standard integration, where connectionType is not VPC_LINK, or * private integration, where connectionType is VPC_LINK. For a private HTTP * integration, the URI is not used for routing. *

        *
      • *
      • *

        * For AWS or AWS_PROXY integrations, the URI is of the form * arn:aws:apigateway:{region}:{subdomain.service|service}:path|action/{service_api}. Here, * {Region} is the API Gateway region (e.g., us-east-1); {service} * is the name of the integrated AWS service (e.g., s3); and {subdomain} is a * designated subdomain supported by certain AWS service for fast host-name lookup. action * can be used for an AWS service action-based API, using an * Action={name}&{p1}={v1}&p2={v2}... query string. The ensuing * {service_api} refers to a supported action {name} plus any required input * parameters. Alternatively, path can be used for an AWS service path-based API. The * ensuing service_api refers to the path to an AWS service resource, including the region * of the integrated AWS service, if applicable. For example, for integration with the S3 API of * GetObject * , the uri can be either * arn:aws:apigateway:us-west-2:s3:action/GetObject&Bucket={bucket}&Key={key} or * arn:aws:apigateway:us-west-2:s3:path/{bucket}/{key} *

        *
      • * @return Returns a reference to this object so that method calls can be chained together. */ Builder uri(String uri); /** *

        * The type of the network connection to the integration endpoint. The valid value is INTERNET for * connections through the public routable internet or VPC_LINK for private connections between API * Gateway and a network load balancer in a VPC. The default value is INTERNET. *

        * * @param connectionType * The type of the network connection to the integration endpoint. The valid value is * INTERNET for connections through the public routable internet or VPC_LINK * for private connections between API Gateway and a network load balancer in a VPC. The default value is * INTERNET. * @see ConnectionType * @return Returns a reference to this object so that method calls can be chained together. * @see ConnectionType */ Builder connectionType(String connectionType); /** *

        * The type of the network connection to the integration endpoint. The valid value is INTERNET for * connections through the public routable internet or VPC_LINK for private connections between API * Gateway and a network load balancer in a VPC. The default value is INTERNET. *

        * * @param connectionType * The type of the network connection to the integration endpoint. The valid value is * INTERNET for connections through the public routable internet or VPC_LINK * for private connections between API Gateway and a network load balancer in a VPC. The default value is * INTERNET. * @see ConnectionType * @return Returns a reference to this object so that method calls can be chained together. * @see ConnectionType */ Builder connectionType(ConnectionType connectionType); /** *

        * The (id * ) of the VpcLink used for the integration when connectionType=VPC_LINK and undefined, * otherwise. *

        * * @param connectionId * The ( * id) of the VpcLink used for the integration when * connectionType=VPC_LINK and undefined, otherwise. * @return Returns a reference to this object so that method calls can be chained together. */ Builder connectionId(String connectionId); /** *

        * Specifies whether credentials are required for a put integration. *

        * * @param credentials * Specifies whether credentials are required for a put integration. * @return Returns a reference to this object so that method calls can be chained together. */ Builder credentials(String credentials); /** *

        * A key-value map specifying request parameters that are passed from the method request to the back end. The * key is an integration request parameter name and the associated value is a method request parameter value or * static value that must be enclosed within single quotes and pre-encoded as required by the back end. The * method request parameter value must match the pattern of method.request.{location}.{name}, where * location is querystring, path, or header and * name must be a valid and unique method request parameter name. *

        * * @param requestParameters * A key-value map specifying request parameters that are passed from the method request to the back end. * The key is an integration request parameter name and the associated value is a method request * parameter value or static value that must be enclosed within single quotes and pre-encoded as required * by the back end. The method request parameter value must match the pattern of * method.request.{location}.{name}, where location is querystring * , path, or header and name must be a valid and unique method * request parameter name. * @return Returns a reference to this object so that method calls can be chained together. */ Builder requestParameters(Map requestParameters); /** *

        * Represents a map of Velocity templates that are applied on the request payload based on the value of the * Content-Type header sent by the client. The content type value is the key in this map, and the template (as a * String) is the value. *

        * * @param requestTemplates * Represents a map of Velocity templates that are applied on the request payload based on the value of * the Content-Type header sent by the client. The content type value is the key in this map, and the * template (as a String) is the value. * @return Returns a reference to this object so that method calls can be chained together. */ Builder requestTemplates(Map requestTemplates); /** *

        * Specifies the pass-through behavior for incoming requests based on the Content-Type header in the request, * and the available mapping templates specified as the requestTemplates property on the * Integration resource. There are three valid values: WHEN_NO_MATCH, * WHEN_NO_TEMPLATES, and NEVER. *

        *
          *
        • *

          * WHEN_NO_MATCH passes the request body for unmapped content types through to the integration back * end without transformation. *

          *
        • *
        • *

          * NEVER rejects unmapped content types with an HTTP 415 'Unsupported Media Type' response. *

          *
        • *
        • *

          * WHEN_NO_TEMPLATES allows pass-through when the integration has NO content types mapped to * templates. However if there is at least one content type defined, unmapped content types will be rejected * with the same 415 response. *

          *
        • *
        * * @param passthroughBehavior * Specifies the pass-through behavior for incoming requests based on the Content-Type header in the * request, and the available mapping templates specified as the requestTemplates property * on the Integration resource. There are three valid values: WHEN_NO_MATCH, * WHEN_NO_TEMPLATES, and NEVER.

        *
          *
        • *

          * WHEN_NO_MATCH passes the request body for unmapped content types through to the * integration back end without transformation. *

          *
        • *
        • *

          * NEVER rejects unmapped content types with an HTTP 415 'Unsupported Media Type' response. *

          *
        • *
        • *

          * WHEN_NO_TEMPLATES allows pass-through when the integration has NO content types mapped to * templates. However if there is at least one content type defined, unmapped content types will be * rejected with the same 415 response. *

          *
        • * @return Returns a reference to this object so that method calls can be chained together. */ Builder passthroughBehavior(String passthroughBehavior); /** *

          * A list of request parameters whose values are to be cached. *

          * * @param cacheNamespace * A list of request parameters whose values are to be cached. * @return Returns a reference to this object so that method calls can be chained together. */ Builder cacheNamespace(String cacheNamespace); /** *

          * An API-specific tag group of related cached parameters. *

          * * @param cacheKeyParameters * An API-specific tag group of related cached parameters. * @return Returns a reference to this object so that method calls can be chained together. */ Builder cacheKeyParameters(Collection cacheKeyParameters); /** *

          * An API-specific tag group of related cached parameters. *

          * * @param cacheKeyParameters * An API-specific tag group of related cached parameters. * @return Returns a reference to this object so that method calls can be chained together. */ Builder cacheKeyParameters(String... cacheKeyParameters); /** *

          * Specifies how to handle request payload content type conversions. Supported values are * CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: *

          *
            *
          • *

            * CONVERT_TO_BINARY: Converts a request payload from a Base64-encoded string to the corresponding * binary blob. *

            *
          • *
          • *

            * CONVERT_TO_TEXT: Converts a request payload from a binary blob to a Base64-encoded string. *

            *
          • *
          *

          * If this property is not defined, the request payload will be passed through from the method request to * integration request without modification, provided that the passthroughBehavior is configured to * support payload pass-through. *

          * * @param contentHandling * Specifies how to handle request payload content type conversions. Supported values are * CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:

          *
            *
          • *

            * CONVERT_TO_BINARY: Converts a request payload from a Base64-encoded string to the * corresponding binary blob. *

            *
          • *
          • *

            * CONVERT_TO_TEXT: Converts a request payload from a binary blob to a Base64-encoded * string. *

            *
          • *
          *

          * If this property is not defined, the request payload will be passed through from the method request to * integration request without modification, provided that the passthroughBehavior is * configured to support payload pass-through. * @see ContentHandlingStrategy * @return Returns a reference to this object so that method calls can be chained together. * @see ContentHandlingStrategy */ Builder contentHandling(String contentHandling); /** *

          * Specifies how to handle request payload content type conversions. Supported values are * CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors: *

          *
            *
          • *

            * CONVERT_TO_BINARY: Converts a request payload from a Base64-encoded string to the corresponding * binary blob. *

            *
          • *
          • *

            * CONVERT_TO_TEXT: Converts a request payload from a binary blob to a Base64-encoded string. *

            *
          • *
          *

          * If this property is not defined, the request payload will be passed through from the method request to * integration request without modification, provided that the passthroughBehavior is configured to * support payload pass-through. *

          * * @param contentHandling * Specifies how to handle request payload content type conversions. Supported values are * CONVERT_TO_BINARY and CONVERT_TO_TEXT, with the following behaviors:

          *
            *
          • *

            * CONVERT_TO_BINARY: Converts a request payload from a Base64-encoded string to the * corresponding binary blob. *

            *
          • *
          • *

            * CONVERT_TO_TEXT: Converts a request payload from a binary blob to a Base64-encoded * string. *

            *
          • *
          *

          * If this property is not defined, the request payload will be passed through from the method request to * integration request without modification, provided that the passthroughBehavior is * configured to support payload pass-through. * @see ContentHandlingStrategy * @return Returns a reference to this object so that method calls can be chained together. * @see ContentHandlingStrategy */ Builder contentHandling(ContentHandlingStrategy contentHandling); /** *

          * Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 seconds. *

          * * @param timeoutInMillis * Custom timeout between 50 and 29,000 milliseconds. The default value is 29,000 milliseconds or 29 * seconds. * @return Returns a reference to this object so that method calls can be chained together. */ Builder timeoutInMillis(Integer timeoutInMillis); @Override Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration); @Override Builder overrideConfiguration(Consumer builderConsumer); } static final class BuilderImpl extends ApiGatewayRequest.BuilderImpl implements Builder { private String restApiId; private String resourceId; private String httpMethod; private String type; private String integrationHttpMethod; private String uri; private String connectionType; private String connectionId; private String credentials; private Map requestParameters = DefaultSdkAutoConstructMap.getInstance(); private Map requestTemplates = DefaultSdkAutoConstructMap.getInstance(); private String passthroughBehavior; private String cacheNamespace; private List cacheKeyParameters = DefaultSdkAutoConstructList.getInstance(); private String contentHandling; private Integer timeoutInMillis; private BuilderImpl() { } private BuilderImpl(PutIntegrationRequest model) { super(model); restApiId(model.restApiId); resourceId(model.resourceId); httpMethod(model.httpMethod); type(model.type); integrationHttpMethod(model.integrationHttpMethod); uri(model.uri); connectionType(model.connectionType); connectionId(model.connectionId); credentials(model.credentials); requestParameters(model.requestParameters); requestTemplates(model.requestTemplates); passthroughBehavior(model.passthroughBehavior); cacheNamespace(model.cacheNamespace); cacheKeyParameters(model.cacheKeyParameters); contentHandling(model.contentHandling); timeoutInMillis(model.timeoutInMillis); } public final String getRestApiId() { return restApiId; } @Override public final Builder restApiId(String restApiId) { this.restApiId = restApiId; return this; } public final void setRestApiId(String restApiId) { this.restApiId = restApiId; } public final String getResourceId() { return resourceId; } @Override public final Builder resourceId(String resourceId) { this.resourceId = resourceId; return this; } public final void setResourceId(String resourceId) { this.resourceId = resourceId; } public final String getHttpMethod() { return httpMethod; } @Override public final Builder httpMethod(String httpMethod) { this.httpMethod = httpMethod; return this; } public final void setHttpMethod(String httpMethod) { this.httpMethod = httpMethod; } public final String getType() { return type; } @Override public final Builder type(String type) { this.type = type; return this; } @Override public final Builder type(IntegrationType type) { this.type(type == null ? null : type.toString()); return this; } public final void setType(String type) { this.type = type; } public final String getIntegrationHttpMethod() { return integrationHttpMethod; } @Override public final Builder integrationHttpMethod(String integrationHttpMethod) { this.integrationHttpMethod = integrationHttpMethod; return this; } public final void setIntegrationHttpMethod(String integrationHttpMethod) { this.integrationHttpMethod = integrationHttpMethod; } public final String getUri() { return uri; } @Override public final Builder uri(String uri) { this.uri = uri; return this; } public final void setUri(String uri) { this.uri = uri; } public final String getConnectionType() { return connectionType; } @Override public final Builder connectionType(String connectionType) { this.connectionType = connectionType; return this; } @Override public final Builder connectionType(ConnectionType connectionType) { this.connectionType(connectionType == null ? null : connectionType.toString()); return this; } public final void setConnectionType(String connectionType) { this.connectionType = connectionType; } public final String getConnectionId() { return connectionId; } @Override public final Builder connectionId(String connectionId) { this.connectionId = connectionId; return this; } public final void setConnectionId(String connectionId) { this.connectionId = connectionId; } public final String getCredentials() { return credentials; } @Override public final Builder credentials(String credentials) { this.credentials = credentials; return this; } public final void setCredentials(String credentials) { this.credentials = credentials; } public final Map getRequestParameters() { return requestParameters; } @Override public final Builder requestParameters(Map requestParameters) { this.requestParameters = MapOfStringToStringCopier.copy(requestParameters); return this; } public final void setRequestParameters(Map requestParameters) { this.requestParameters = MapOfStringToStringCopier.copy(requestParameters); } public final Map getRequestTemplates() { return requestTemplates; } @Override public final Builder requestTemplates(Map requestTemplates) { this.requestTemplates = MapOfStringToStringCopier.copy(requestTemplates); return this; } public final void setRequestTemplates(Map requestTemplates) { this.requestTemplates = MapOfStringToStringCopier.copy(requestTemplates); } public final String getPassthroughBehavior() { return passthroughBehavior; } @Override public final Builder passthroughBehavior(String passthroughBehavior) { this.passthroughBehavior = passthroughBehavior; return this; } public final void setPassthroughBehavior(String passthroughBehavior) { this.passthroughBehavior = passthroughBehavior; } public final String getCacheNamespace() { return cacheNamespace; } @Override public final Builder cacheNamespace(String cacheNamespace) { this.cacheNamespace = cacheNamespace; return this; } public final void setCacheNamespace(String cacheNamespace) { this.cacheNamespace = cacheNamespace; } public final Collection getCacheKeyParameters() { return cacheKeyParameters; } @Override public final Builder cacheKeyParameters(Collection cacheKeyParameters) { this.cacheKeyParameters = ListOfStringCopier.copy(cacheKeyParameters); return this; } @Override @SafeVarargs public final Builder cacheKeyParameters(String... cacheKeyParameters) { cacheKeyParameters(Arrays.asList(cacheKeyParameters)); return this; } public final void setCacheKeyParameters(Collection cacheKeyParameters) { this.cacheKeyParameters = ListOfStringCopier.copy(cacheKeyParameters); } public final String getContentHandling() { return contentHandling; } @Override public final Builder contentHandling(String contentHandling) { this.contentHandling = contentHandling; return this; } @Override public final Builder contentHandling(ContentHandlingStrategy contentHandling) { this.contentHandling(contentHandling == null ? null : contentHandling.toString()); return this; } public final void setContentHandling(String contentHandling) { this.contentHandling = contentHandling; } public final Integer getTimeoutInMillis() { return timeoutInMillis; } @Override public final Builder timeoutInMillis(Integer timeoutInMillis) { this.timeoutInMillis = timeoutInMillis; return this; } public final void setTimeoutInMillis(Integer timeoutInMillis) { this.timeoutInMillis = timeoutInMillis; } @Override public Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration) { super.overrideConfiguration(overrideConfiguration); return this; } @Override public Builder overrideConfiguration(Consumer builderConsumer) { super.overrideConfiguration(builderConsumer); return this; } @Override public PutIntegrationRequest build() { return new PutIntegrationRequest(this); } @Override public List> sdkFields() { return SDK_FIELDS; } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy