import { type Any } from "google-protobuf/google/protobuf/any_pb.js";
import { type Metadata } from "../../common/Metadata.js";
import { type Namespaces } from "../common/Namespaces.js";
import { type RequestProcess } from "../common/RequestProcess.js";
import { type Set } from "../common/Set.js";
/** Copyright Super iPaaS Integration LLC, an IBM Company 2024 */
/** The AWS Lambda Extension related information is captured in the message AWSLambdaExtension. */
export interface AWSLambdaExtension {
    kind?: string | undefined;
    apiVersion?: string | undefined;
    /** common metadata to identify a specific asset in the files */
    metadata?: Metadata | undefined;
    kindEnum?: AWSLambdaExtension_KindEnums | undefined;
    spec?: AWSLambdaExtension_Spec | undefined;
}
/** Kind id supported for AWS Lambda extension */
export declare enum AWSLambdaExtension_KindEnums {
    InvokeAWSLambdaFunction = "InvokeAWSLambdaFunction"
}
/** The message specified the information related to the client configuration */
export interface AWSLambdaExtension_Clientconfig {
    socketTimeout?: number | undefined;
    connectionTimeout?: number | undefined;
    requestTimeout?: number | undefined;
    connectionExpirationTime?: number | undefined;
    maxConnectionIdleTime?: number | undefined;
    clientExecutionTimeout?: number | undefined;
    retryOnErrorCount?: number | undefined;
    enableThrottledRetries?: boolean | undefined;
    maxClientRetries?: number | undefined;
    tcpSendBufferSizeHint?: number | undefined;
    tcpReceiveBufferSizeHint?: number | undefined;
    enableGzip?: boolean | undefined;
    enableExpectContinue?: boolean | undefined;
    enableHostPrefixInjection?: boolean | undefined;
    enableKeepAlive?: boolean | undefined;
    enableResponseMetadataCache?: boolean | undefined;
    responseMetadataCacheSize?: string | undefined;
    signatureAlgorithm?: string | undefined;
}
/** The message specified the information related to the lambda configuration */
export interface AWSLambdaExtension_Lambdaconfig {
    functionName?: string | undefined;
    async?: boolean | undefined;
    alias?: string | undefined;
    clientConfig?: AWSLambdaExtension_Clientconfig | undefined;
}
/** The message specified the information related to the response processing */
export interface AWSLambdaExtension_ResponseProcess {
    transformations?: Any | undefined;
    set?: Set[] | undefined;
    copyEntireResponse?: boolean | undefined;
    abortAPIExecutionForFailure?: boolean | undefined;
}
/** The Spec is used to define the list of condition, lambda configuration, request-processing, namespaces, response-processing */
export interface AWSLambdaExtension_Spec {
    /** Single instance of condition can be given */
    condition?: string | undefined;
    /** Single instance of lambda configuration can be given */
    lambdaConfig?: AWSLambdaExtension_Lambdaconfig | undefined;
    /**
     * Field 'request_processing' with JSON name 'request-processing' accepts the value of either 'request_processing' or 'request-processing' from the YAML file.
     * If both 'request_processing' and 'request-processing' are specified, the value of 'request-processing' takes priority.
     * Single instances of request processing can be given with JSON name "request-processing".
     */
    "request-processing"?: RequestProcess | undefined;
    /**
     * Field 'response_processing' with JSON name 'response-processing' accepts the value of either 'response_processing' or 'response-processing' from the YAML file.
     * If both 'response_processing' and 'response-processing' are specified, the value of 'response-processing' takes priority.
     * Single instances of response processing can be given with JSON name "response-processing".
     */
    "response-processing"?: AWSLambdaExtension_ResponseProcess | undefined;
    /** Multiple instanced of namespaces can be given */
    namespaces?: Namespaces[] | undefined;
}
//# sourceMappingURL=AWSLambdaExtension.d.ts.map