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

com.pulumi.aws.apigatewayv2.IntegrationArgs Maven / Gradle / Ivy

// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.aws.apigatewayv2;

import com.pulumi.aws.apigatewayv2.inputs.IntegrationResponseParameterArgs;
import com.pulumi.aws.apigatewayv2.inputs.IntegrationTlsConfigArgs;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class IntegrationArgs extends com.pulumi.resources.ResourceArgs {

    public static final IntegrationArgs Empty = new IntegrationArgs();

    /**
     * API identifier.
     * 
     */
    @Import(name="apiId", required=true)
    private Output apiId;

    /**
     * @return API identifier.
     * 
     */
    public Output apiId() {
        return this.apiId;
    }

    /**
     * ID of the VPC link for a private integration. Supported only for HTTP APIs. Must be between 1 and 1024 characters in length.
     * 
     */
    @Import(name="connectionId")
    private @Nullable Output connectionId;

    /**
     * @return ID of the VPC link for a private integration. Supported only for HTTP APIs. Must be between 1 and 1024 characters in length.
     * 
     */
    public Optional> connectionId() {
        return Optional.ofNullable(this.connectionId);
    }

    /**
     * Type of the network connection to the integration endpoint. Valid values: `INTERNET`, `VPC_LINK`. Default is `INTERNET`.
     * 
     */
    @Import(name="connectionType")
    private @Nullable Output connectionType;

    /**
     * @return Type of the network connection to the integration endpoint. Valid values: `INTERNET`, `VPC_LINK`. Default is `INTERNET`.
     * 
     */
    public Optional> connectionType() {
        return Optional.ofNullable(this.connectionType);
    }

    /**
     * How to handle response payload content type conversions. Valid values: `CONVERT_TO_BINARY`, `CONVERT_TO_TEXT`. Supported only for WebSocket APIs.
     * 
     */
    @Import(name="contentHandlingStrategy")
    private @Nullable Output contentHandlingStrategy;

    /**
     * @return How to handle response payload content type conversions. Valid values: `CONVERT_TO_BINARY`, `CONVERT_TO_TEXT`. Supported only for WebSocket APIs.
     * 
     */
    public Optional> contentHandlingStrategy() {
        return Optional.ofNullable(this.contentHandlingStrategy);
    }

    /**
     * Credentials required for the integration, if any.
     * 
     */
    @Import(name="credentialsArn")
    private @Nullable Output credentialsArn;

    /**
     * @return Credentials required for the integration, if any.
     * 
     */
    public Optional> credentialsArn() {
        return Optional.ofNullable(this.credentialsArn);
    }

    /**
     * Description of the integration.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return Description of the integration.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * Integration's HTTP method. Must be specified if `integration_type` is not `MOCK`.
     * 
     */
    @Import(name="integrationMethod")
    private @Nullable Output integrationMethod;

    /**
     * @return Integration's HTTP method. Must be specified if `integration_type` is not `MOCK`.
     * 
     */
    public Optional> integrationMethod() {
        return Optional.ofNullable(this.integrationMethod);
    }

    /**
     * AWS service action to invoke. Supported only for HTTP APIs when `integration_type` is `AWS_PROXY`. See the [AWS service integration reference](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html) documentation for supported values. Must be between 1 and 128 characters in length.
     * 
     */
    @Import(name="integrationSubtype")
    private @Nullable Output integrationSubtype;

    /**
     * @return AWS service action to invoke. Supported only for HTTP APIs when `integration_type` is `AWS_PROXY`. See the [AWS service integration reference](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html) documentation for supported values. Must be between 1 and 128 characters in length.
     * 
     */
    public Optional> integrationSubtype() {
        return Optional.ofNullable(this.integrationSubtype);
    }

    /**
     * Integration type of an integration.
     * Valid values: `AWS` (supported only for WebSocket APIs), `AWS_PROXY`, `HTTP` (supported only for WebSocket APIs), `HTTP_PROXY`, `MOCK` (supported only for WebSocket APIs). For an HTTP API private integration, use `HTTP_PROXY`.
     * 
     */
    @Import(name="integrationType", required=true)
    private Output integrationType;

    /**
     * @return Integration type of an integration.
     * Valid values: `AWS` (supported only for WebSocket APIs), `AWS_PROXY`, `HTTP` (supported only for WebSocket APIs), `HTTP_PROXY`, `MOCK` (supported only for WebSocket APIs). For an HTTP API private integration, use `HTTP_PROXY`.
     * 
     */
    public Output integrationType() {
        return this.integrationType;
    }

    /**
     * URI of the Lambda function for a Lambda proxy integration, when `integration_type` is `AWS_PROXY`.
     * For an `HTTP` integration, specify a fully-qualified URL. For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service.
     * 
     */
    @Import(name="integrationUri")
    private @Nullable Output integrationUri;

    /**
     * @return URI of the Lambda function for a Lambda proxy integration, when `integration_type` is `AWS_PROXY`.
     * For an `HTTP` integration, specify a fully-qualified URL. For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service.
     * 
     */
    public Optional> integrationUri() {
        return Optional.ofNullable(this.integrationUri);
    }

    /**
     * Pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the `request_templates` attribute.
     * Valid values: `WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`. Default is `WHEN_NO_MATCH`. Supported only for WebSocket APIs.
     * 
     */
    @Import(name="passthroughBehavior")
    private @Nullable Output passthroughBehavior;

    /**
     * @return Pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the `request_templates` attribute.
     * Valid values: `WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`. Default is `WHEN_NO_MATCH`. Supported only for WebSocket APIs.
     * 
     */
    public Optional> passthroughBehavior() {
        return Optional.ofNullable(this.passthroughBehavior);
    }

    /**
     * The [format of the payload](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html#http-api-develop-integrations-lambda.proxy-format) sent to an integration. Valid values: `1.0`, `2.0`. Default is `1.0`.
     * 
     */
    @Import(name="payloadFormatVersion")
    private @Nullable Output payloadFormatVersion;

    /**
     * @return The [format of the payload](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html#http-api-develop-integrations-lambda.proxy-format) sent to an integration. Valid values: `1.0`, `2.0`. Default is `1.0`.
     * 
     */
    public Optional> payloadFormatVersion() {
        return Optional.ofNullable(this.payloadFormatVersion);
    }

    /**
     * For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend.
     * For HTTP APIs with a specified `integration_subtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations.
     * For HTTP APIs without a specified `integration_subtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend.
     * See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details.
     * 
     */
    @Import(name="requestParameters")
    private @Nullable Output> requestParameters;

    /**
     * @return For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend.
     * For HTTP APIs with a specified `integration_subtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations.
     * For HTTP APIs without a specified `integration_subtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend.
     * See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details.
     * 
     */
    public Optional>> requestParameters() {
        return Optional.ofNullable(this.requestParameters);
    }

    /**
     * Map of [Velocity](https://velocity.apache.org/) templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs.
     * 
     */
    @Import(name="requestTemplates")
    private @Nullable Output> requestTemplates;

    /**
     * @return Map of [Velocity](https://velocity.apache.org/) templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs.
     * 
     */
    public Optional>> requestTemplates() {
        return Optional.ofNullable(this.requestTemplates);
    }

    /**
     * Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs.
     * 
     */
    @Import(name="responseParameters")
    private @Nullable Output> responseParameters;

    /**
     * @return Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs.
     * 
     */
    public Optional>> responseParameters() {
        return Optional.ofNullable(this.responseParameters);
    }

    /**
     * The [template selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-template-selection-expressions) for the integration.
     * 
     */
    @Import(name="templateSelectionExpression")
    private @Nullable Output templateSelectionExpression;

    /**
     * @return The [template selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-template-selection-expressions) for the integration.
     * 
     */
    public Optional> templateSelectionExpression() {
        return Optional.ofNullable(this.templateSelectionExpression);
    }

    /**
     * Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs.
     * The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.
     * this provider will only perform drift detection of its value when present in a configuration.
     * 
     */
    @Import(name="timeoutMilliseconds")
    private @Nullable Output timeoutMilliseconds;

    /**
     * @return Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs.
     * The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.
     * this provider will only perform drift detection of its value when present in a configuration.
     * 
     */
    public Optional> timeoutMilliseconds() {
        return Optional.ofNullable(this.timeoutMilliseconds);
    }

    /**
     * TLS configuration for a private integration. Supported only for HTTP APIs.
     * 
     */
    @Import(name="tlsConfig")
    private @Nullable Output tlsConfig;

    /**
     * @return TLS configuration for a private integration. Supported only for HTTP APIs.
     * 
     */
    public Optional> tlsConfig() {
        return Optional.ofNullable(this.tlsConfig);
    }

    private IntegrationArgs() {}

    private IntegrationArgs(IntegrationArgs $) {
        this.apiId = $.apiId;
        this.connectionId = $.connectionId;
        this.connectionType = $.connectionType;
        this.contentHandlingStrategy = $.contentHandlingStrategy;
        this.credentialsArn = $.credentialsArn;
        this.description = $.description;
        this.integrationMethod = $.integrationMethod;
        this.integrationSubtype = $.integrationSubtype;
        this.integrationType = $.integrationType;
        this.integrationUri = $.integrationUri;
        this.passthroughBehavior = $.passthroughBehavior;
        this.payloadFormatVersion = $.payloadFormatVersion;
        this.requestParameters = $.requestParameters;
        this.requestTemplates = $.requestTemplates;
        this.responseParameters = $.responseParameters;
        this.templateSelectionExpression = $.templateSelectionExpression;
        this.timeoutMilliseconds = $.timeoutMilliseconds;
        this.tlsConfig = $.tlsConfig;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(IntegrationArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private IntegrationArgs $;

        public Builder() {
            $ = new IntegrationArgs();
        }

        public Builder(IntegrationArgs defaults) {
            $ = new IntegrationArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param apiId API identifier.
         * 
         * @return builder
         * 
         */
        public Builder apiId(Output apiId) {
            $.apiId = apiId;
            return this;
        }

        /**
         * @param apiId API identifier.
         * 
         * @return builder
         * 
         */
        public Builder apiId(String apiId) {
            return apiId(Output.of(apiId));
        }

        /**
         * @param connectionId ID of the VPC link for a private integration. Supported only for HTTP APIs. Must be between 1 and 1024 characters in length.
         * 
         * @return builder
         * 
         */
        public Builder connectionId(@Nullable Output connectionId) {
            $.connectionId = connectionId;
            return this;
        }

        /**
         * @param connectionId ID of the VPC link for a private integration. Supported only for HTTP APIs. Must be between 1 and 1024 characters in length.
         * 
         * @return builder
         * 
         */
        public Builder connectionId(String connectionId) {
            return connectionId(Output.of(connectionId));
        }

        /**
         * @param connectionType Type of the network connection to the integration endpoint. Valid values: `INTERNET`, `VPC_LINK`. Default is `INTERNET`.
         * 
         * @return builder
         * 
         */
        public Builder connectionType(@Nullable Output connectionType) {
            $.connectionType = connectionType;
            return this;
        }

        /**
         * @param connectionType Type of the network connection to the integration endpoint. Valid values: `INTERNET`, `VPC_LINK`. Default is `INTERNET`.
         * 
         * @return builder
         * 
         */
        public Builder connectionType(String connectionType) {
            return connectionType(Output.of(connectionType));
        }

        /**
         * @param contentHandlingStrategy How to handle response payload content type conversions. Valid values: `CONVERT_TO_BINARY`, `CONVERT_TO_TEXT`. Supported only for WebSocket APIs.
         * 
         * @return builder
         * 
         */
        public Builder contentHandlingStrategy(@Nullable Output contentHandlingStrategy) {
            $.contentHandlingStrategy = contentHandlingStrategy;
            return this;
        }

        /**
         * @param contentHandlingStrategy How to handle response payload content type conversions. Valid values: `CONVERT_TO_BINARY`, `CONVERT_TO_TEXT`. Supported only for WebSocket APIs.
         * 
         * @return builder
         * 
         */
        public Builder contentHandlingStrategy(String contentHandlingStrategy) {
            return contentHandlingStrategy(Output.of(contentHandlingStrategy));
        }

        /**
         * @param credentialsArn Credentials required for the integration, if any.
         * 
         * @return builder
         * 
         */
        public Builder credentialsArn(@Nullable Output credentialsArn) {
            $.credentialsArn = credentialsArn;
            return this;
        }

        /**
         * @param credentialsArn Credentials required for the integration, if any.
         * 
         * @return builder
         * 
         */
        public Builder credentialsArn(String credentialsArn) {
            return credentialsArn(Output.of(credentialsArn));
        }

        /**
         * @param description Description of the integration.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description Description of the integration.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param integrationMethod Integration's HTTP method. Must be specified if `integration_type` is not `MOCK`.
         * 
         * @return builder
         * 
         */
        public Builder integrationMethod(@Nullable Output integrationMethod) {
            $.integrationMethod = integrationMethod;
            return this;
        }

        /**
         * @param integrationMethod Integration's HTTP method. Must be specified if `integration_type` is not `MOCK`.
         * 
         * @return builder
         * 
         */
        public Builder integrationMethod(String integrationMethod) {
            return integrationMethod(Output.of(integrationMethod));
        }

        /**
         * @param integrationSubtype AWS service action to invoke. Supported only for HTTP APIs when `integration_type` is `AWS_PROXY`. See the [AWS service integration reference](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html) documentation for supported values. Must be between 1 and 128 characters in length.
         * 
         * @return builder
         * 
         */
        public Builder integrationSubtype(@Nullable Output integrationSubtype) {
            $.integrationSubtype = integrationSubtype;
            return this;
        }

        /**
         * @param integrationSubtype AWS service action to invoke. Supported only for HTTP APIs when `integration_type` is `AWS_PROXY`. See the [AWS service integration reference](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-aws-services-reference.html) documentation for supported values. Must be between 1 and 128 characters in length.
         * 
         * @return builder
         * 
         */
        public Builder integrationSubtype(String integrationSubtype) {
            return integrationSubtype(Output.of(integrationSubtype));
        }

        /**
         * @param integrationType Integration type of an integration.
         * Valid values: `AWS` (supported only for WebSocket APIs), `AWS_PROXY`, `HTTP` (supported only for WebSocket APIs), `HTTP_PROXY`, `MOCK` (supported only for WebSocket APIs). For an HTTP API private integration, use `HTTP_PROXY`.
         * 
         * @return builder
         * 
         */
        public Builder integrationType(Output integrationType) {
            $.integrationType = integrationType;
            return this;
        }

        /**
         * @param integrationType Integration type of an integration.
         * Valid values: `AWS` (supported only for WebSocket APIs), `AWS_PROXY`, `HTTP` (supported only for WebSocket APIs), `HTTP_PROXY`, `MOCK` (supported only for WebSocket APIs). For an HTTP API private integration, use `HTTP_PROXY`.
         * 
         * @return builder
         * 
         */
        public Builder integrationType(String integrationType) {
            return integrationType(Output.of(integrationType));
        }

        /**
         * @param integrationUri URI of the Lambda function for a Lambda proxy integration, when `integration_type` is `AWS_PROXY`.
         * For an `HTTP` integration, specify a fully-qualified URL. For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service.
         * 
         * @return builder
         * 
         */
        public Builder integrationUri(@Nullable Output integrationUri) {
            $.integrationUri = integrationUri;
            return this;
        }

        /**
         * @param integrationUri URI of the Lambda function for a Lambda proxy integration, when `integration_type` is `AWS_PROXY`.
         * For an `HTTP` integration, specify a fully-qualified URL. For an HTTP API private integration, specify the ARN of an Application Load Balancer listener, Network Load Balancer listener, or AWS Cloud Map service.
         * 
         * @return builder
         * 
         */
        public Builder integrationUri(String integrationUri) {
            return integrationUri(Output.of(integrationUri));
        }

        /**
         * @param passthroughBehavior Pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the `request_templates` attribute.
         * Valid values: `WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`. Default is `WHEN_NO_MATCH`. Supported only for WebSocket APIs.
         * 
         * @return builder
         * 
         */
        public Builder passthroughBehavior(@Nullable Output passthroughBehavior) {
            $.passthroughBehavior = passthroughBehavior;
            return this;
        }

        /**
         * @param passthroughBehavior Pass-through behavior for incoming requests based on the Content-Type header in the request, and the available mapping templates specified as the `request_templates` attribute.
         * Valid values: `WHEN_NO_MATCH`, `WHEN_NO_TEMPLATES`, `NEVER`. Default is `WHEN_NO_MATCH`. Supported only for WebSocket APIs.
         * 
         * @return builder
         * 
         */
        public Builder passthroughBehavior(String passthroughBehavior) {
            return passthroughBehavior(Output.of(passthroughBehavior));
        }

        /**
         * @param payloadFormatVersion The [format of the payload](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html#http-api-develop-integrations-lambda.proxy-format) sent to an integration. Valid values: `1.0`, `2.0`. Default is `1.0`.
         * 
         * @return builder
         * 
         */
        public Builder payloadFormatVersion(@Nullable Output payloadFormatVersion) {
            $.payloadFormatVersion = payloadFormatVersion;
            return this;
        }

        /**
         * @param payloadFormatVersion The [format of the payload](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html#http-api-develop-integrations-lambda.proxy-format) sent to an integration. Valid values: `1.0`, `2.0`. Default is `1.0`.
         * 
         * @return builder
         * 
         */
        public Builder payloadFormatVersion(String payloadFormatVersion) {
            return payloadFormatVersion(Output.of(payloadFormatVersion));
        }

        /**
         * @param requestParameters For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend.
         * For HTTP APIs with a specified `integration_subtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations.
         * For HTTP APIs without a specified `integration_subtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend.
         * See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details.
         * 
         * @return builder
         * 
         */
        public Builder requestParameters(@Nullable Output> requestParameters) {
            $.requestParameters = requestParameters;
            return this;
        }

        /**
         * @param requestParameters For WebSocket APIs, a key-value map specifying request parameters that are passed from the method request to the backend.
         * For HTTP APIs with a specified `integration_subtype`, a key-value map specifying parameters that are passed to `AWS_PROXY` integrations.
         * For HTTP APIs without a specified `integration_subtype`, a key-value map specifying how to transform HTTP requests before sending them to the backend.
         * See the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html) for details.
         * 
         * @return builder
         * 
         */
        public Builder requestParameters(Map requestParameters) {
            return requestParameters(Output.of(requestParameters));
        }

        /**
         * @param requestTemplates Map of [Velocity](https://velocity.apache.org/) templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs.
         * 
         * @return builder
         * 
         */
        public Builder requestTemplates(@Nullable Output> requestTemplates) {
            $.requestTemplates = requestTemplates;
            return this;
        }

        /**
         * @param requestTemplates Map of [Velocity](https://velocity.apache.org/) templates that are applied on the request payload based on the value of the Content-Type header sent by the client. Supported only for WebSocket APIs.
         * 
         * @return builder
         * 
         */
        public Builder requestTemplates(Map requestTemplates) {
            return requestTemplates(Output.of(requestTemplates));
        }

        /**
         * @param responseParameters Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs.
         * 
         * @return builder
         * 
         */
        public Builder responseParameters(@Nullable Output> responseParameters) {
            $.responseParameters = responseParameters;
            return this;
        }

        /**
         * @param responseParameters Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs.
         * 
         * @return builder
         * 
         */
        public Builder responseParameters(List responseParameters) {
            return responseParameters(Output.of(responseParameters));
        }

        /**
         * @param responseParameters Mappings to transform the HTTP response from a backend integration before returning the response to clients. Supported only for HTTP APIs.
         * 
         * @return builder
         * 
         */
        public Builder responseParameters(IntegrationResponseParameterArgs... responseParameters) {
            return responseParameters(List.of(responseParameters));
        }

        /**
         * @param templateSelectionExpression The [template selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-template-selection-expressions) for the integration.
         * 
         * @return builder
         * 
         */
        public Builder templateSelectionExpression(@Nullable Output templateSelectionExpression) {
            $.templateSelectionExpression = templateSelectionExpression;
            return this;
        }

        /**
         * @param templateSelectionExpression The [template selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-template-selection-expressions) for the integration.
         * 
         * @return builder
         * 
         */
        public Builder templateSelectionExpression(String templateSelectionExpression) {
            return templateSelectionExpression(Output.of(templateSelectionExpression));
        }

        /**
         * @param timeoutMilliseconds Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs.
         * The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.
         * this provider will only perform drift detection of its value when present in a configuration.
         * 
         * @return builder
         * 
         */
        public Builder timeoutMilliseconds(@Nullable Output timeoutMilliseconds) {
            $.timeoutMilliseconds = timeoutMilliseconds;
            return this;
        }

        /**
         * @param timeoutMilliseconds Custom timeout between 50 and 29,000 milliseconds for WebSocket APIs and between 50 and 30,000 milliseconds for HTTP APIs.
         * The default timeout is 29 seconds for WebSocket APIs and 30 seconds for HTTP APIs.
         * this provider will only perform drift detection of its value when present in a configuration.
         * 
         * @return builder
         * 
         */
        public Builder timeoutMilliseconds(Integer timeoutMilliseconds) {
            return timeoutMilliseconds(Output.of(timeoutMilliseconds));
        }

        /**
         * @param tlsConfig TLS configuration for a private integration. Supported only for HTTP APIs.
         * 
         * @return builder
         * 
         */
        public Builder tlsConfig(@Nullable Output tlsConfig) {
            $.tlsConfig = tlsConfig;
            return this;
        }

        /**
         * @param tlsConfig TLS configuration for a private integration. Supported only for HTTP APIs.
         * 
         * @return builder
         * 
         */
        public Builder tlsConfig(IntegrationTlsConfigArgs tlsConfig) {
            return tlsConfig(Output.of(tlsConfig));
        }

        public IntegrationArgs build() {
            if ($.apiId == null) {
                throw new MissingRequiredPropertyException("IntegrationArgs", "apiId");
            }
            if ($.integrationType == null) {
                throw new MissingRequiredPropertyException("IntegrationArgs", "integrationType");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy