/**
 * Generated TypeScript interfaces for API resources
 * DO NOT EDIT MANUALLY - This file is generated
 */
export type KindType = 'InvokeAWSLambda' | 'ValidateAPISpecification' | 'LoadBalancer' | 'Invoke' | 'IAM' | 'RateLimit' | 'RateLimitDef' | 'InboundBulkHead' | 'SetMediaType' | 'InboundMessaging' | 'AuthorizeUser' | 'SetContextVariable' | 'WebMethodsISService' | 'Log' | 'MonitorTraffic' | 'HTTPInvoke' | 'InvokeMessagingExtension' | 'TransformRequest' | 'TransformResponse' | 'MessageConfig' | 'ErrorProcessing';
export interface ApiResource {
    kind: KindType;
    apiVersion: string;
    metadata: {
        name: string;
        version: string;
        description?: string;
        namespace?: string;
        tags?: string[];
        type?: string;
        labels?: {
            gatewayTypes?: string[];
        };
    };
    spec: Record<string, any>;
}
export type KindApiVersionType = InvokeAWSLambda_api_ibm_com_v1 | ValidateAPISpecification_api_ibm_com_v1 | LoadBalancer_api_ibm_com_v1 | Invoke_api_ibm_com_v1 | IAM_api_ibm_com_v1 | RateLimit_api_ibm_com_v1 | RateLimitDef_api_ibm_com_v1 | InboundBulkHead_api_ibm_com_v1 | SetMediaType_api_ibm_com_v1 | InboundMessaging_api_ibm_com_v1 | AuthorizeUser_api_ibm_com_v1 | SetContextVariable_api_ibm_com_v1 | WebMethodsISService_api_ibm_com_v1 | Log_api_ibm_com_v1 | MonitorTraffic_api_ibm_com_v1 | HTTPInvoke_api_ibm_com_v1 | InvokeMessagingExtension_api_ibm_com_v1 | TransformRequest_api_ibm_com_v1 | TransformResponse_api_ibm_com_v1 | MessageConfig_api_ibm_com_v1 | ErrorProcessing_api_ibm_com_v1;
export interface set {
    key: string;
    value: string;
}
export interface Namespaces {
    prefix?: string | undefined;
    URI?: string | undefined;
}
export interface SetPayload {
    "content-types"?: ContentTypes[] | undefined;
    "defaultContentType"?: string | undefined;
    xsl?: Xsl[] | undefined;
}
export interface ContentTypes {
    "application/json"?: string | undefined;
    "application/xml"?: string | undefined;
    "text/plain"?: string | undefined;
}
export interface Xsl {
    feature?: Feature[] | undefined;
    $path?: string | undefined;
    content?: string | undefined;
}
export interface Feature {
    name?: string | undefined;
    value?: string | undefined;
}
export interface InvokeAWSLambda_api_ibm_com_v1 {
    kind: KindType;
    apiVersion: string;
    metadata: {
        description?: string;
        name: string;
        namespace?: string;
        tags?: string[];
        type?: string;
        version: string;
        labels?: {
            gatewayTypes?: string[];
        };
    };
    spec: {
        functionName?: string;
        qualifier?: string;
        invocationType?: string;
        region?: string;
        awsAuthType?: {
            accessSecret: string;
        };
        tlsConnectionProfile?: string;
        input?: string;
        output?: string;
        clientConfig?: {
            socketTimeout?: number;
            connectionTimeout?: number;
            requestTimeout?: number;
            clientExecutionTimeout?: number;
            clientRetryCount?: number;
            connectionExpirationTimeout?: number;
            enableExpectContinue?: boolean;
            enableGzip?: boolean;
            enableHostPrefixInjection?: boolean;
            maxConnectionIdleTime?: number;
            responseMetadataCacheSize?: number;
            enableThrottledRetries?: boolean;
            enableKeepAlive?: boolean;
            enableResponseMetadataCache?: boolean;
            signatureAlgorithm?: string;
            tcpSendBufferSizeHint?: number;
            tcpReceiveBufferSizeHint?: number;
        };
        extensions?: {
            'webm-gateway'?: {
                apiVersion?: string;
                spec?: {
                    condition?: string;
                    lambdaConfig?: {
                        alias?: string;
                    };
                    clientConfig?: {
                        retryOnErrorCount?: number;
                    };
                    request_processing?: {
                        transformations: {
                            set?: set[];
                            remove?: string[];
                            setPayload?: SetPayload;
                        };
                        useIncomingHeaders?: boolean;
                    };
                    response_processing?: {
                        transformations: {
                            abortAPIExecutionForFailure?: boolean;
                            copyEntireResponse?: boolean;
                            set?: set[];
                        };
                    };
                    namespaces?: Namespaces[];
                };
            };
        };
    };
}
export interface ValidateAPISpecification_api_ibm_com_v1 {
    kind: KindType;
    apiVersion: string;
    metadata: {
        description?: string;
        name: string;
        namespace?: string;
        tags?: string[];
        type?: string;
        version: string;
        labels?: {
            gatewayTypes?: string[];
        };
    };
    spec: any;
}
export interface LoadBalancer_api_ibm_com_v1 {
    kind: KindType;
    apiVersion: string;
    metadata: {
        description?: string;
        name: string;
        namespace?: string;
        tags?: string[];
        type?: string;
        version: string;
        labels?: {
            gatewayTypes?: string[];
        };
    };
    spec: {
        input?: string;
        output?: string;
        roundRobinHttp?: {
            verb?: string;
            endpoints?: Record<string, any>[];
        };
        extensions?: {
            'webm-gateway'?: {
                apiVersion?: string;
                spec?: {
                    endpoints?: Record<string, any>[];
                };
            };
        };
    };
}
export interface Invoke_api_ibm_com_v1 {
    kind: "Invoke";
    apiVersion: string;
    metadata: Metadata;
    spec: {
        input?: string;
        output?: string;
        cache?: {
            expire?: {
                static?: {
                    seconds?: number;
                };
            };
            scope?: {
                narrowScope?: {};
            };
        };
        endpoint?: {
            [key: string]: {
                verb?: string;
                status_exception?: {
                    pattern?: number;
                };
                target?: {
                    tlsClientProfile?: string;
                    url?: string;
                    urlType?: string;
                    version?: string;
                    timeout?: number;
                    compression?: boolean;
                    chunkedUploads?: boolean;
                    persistentConnection?: boolean;
                };
            };
        };
    };
}
export interface IAM_api_ibm_com_v1 {
    kind: KindType;
    apiVersion: string;
    metadata: {
        description?: string;
        name: string;
        namespace?: string;
        tags?: string[];
        type?: string;
        version: string;
        labels?: {
            gatewayTypes?: string[];
        };
    };
    spec: {
        accessControl?: any[][];
        extensions?: {
            'webm-gateway'?: {
                apiVersion?: string;
                spec?: {
                    authenticationMode?: string;
                    allowAnonymous?: {};
                    triggerPolicyViolation?: boolean;
                    accessControl?: {
                        kerberos?: {
                            applicationSecurity?: {
                                mode?: string;
                            };
                            servicePrincipleName?: string;
                            servicePrinciplePassword?: string;
                        };
                        openIdConnect?: {
                            applicationSecurity?: {
                                mode?: string;
                            };
                        };
                        payloadElement?: {
                            applicationSecurity?: {
                                mode?: string;
                            };
                            payLoadIdentifier?: any[];
                        };
                    };
                };
            };
        };
    };
}
export interface RateLimit_api_ibm_com_v1 {
    kind: KindType;
    apiVersion: string;
    metadata: {
        description?: string;
        name: string;
        namespace?: string;
        tags?: string[];
        type?: string;
        version: string;
        labels?: {
            gatewayTypes?: string[];
        };
    };
    spec: {
        target?: string;
        limits?: Record<string, any>[];
        extensions?: {
            'webm-gateway'?: {
                apiVersion?: string;
                spec?: {
                    destination: Record<string, any>[];
                };
            };
        };
    };
}
export interface RateLimitDef_api_ibm_com_v1 {
    kind: KindType;
    apiVersion: string;
    metadata: {
        description?: string;
        name: string;
        namespace?: string;
        tags?: string[];
        type?: string;
        version: string;
        labels?: {
            gatewayTypes?: string[];
        };
    };
    spec: {
        consumerSpecific?: boolean;
        dynamicValue?: string;
        max?: number;
        intervalLen?: number;
        intervalUnit?: string;
        extensions?: {
            'wm-gateway'?: {
                apiVersion?: string;
                spec?: {
                    alertMessage?: string;
                    alertFrequency?: string;
                };
            };
        };
    };
}
export interface InboundBulkHead_api_ibm_com_v1 {
    kind: KindType;
    apiVersion: string;
    metadata: {
        description?: string;
        name: string;
        namespace?: string;
        tags?: string[];
        type?: string;
        version: string;
        labels?: {
            gatewayTypes?: string[];
        };
    };
    spec: {
        maxConcurrentCalls?: number;
        enableBulkheadForCallbacks?: {
            maxConcurrentCallbacks?: number;
        };
        retryAfterResponseHeader?: {
            retryAfterValue?: number;
        };
    };
}
export interface SetMediaType_api_ibm_com_v1 {
    kind: KindType;
    apiVersion: string;
    metadata: {
        description?: string;
        name: string;
        namespace?: string;
        tags?: string[];
        type?: string;
        version: string;
        labels?: {
            gatewayTypes?: string[];
        };
    };
    spec: {
        defaultAcceptHeader?: string;
        defaultContentType?: string;
    };
}
export interface InboundMessaging_api_ibm_com_v1 {
    kind: KindType;
    apiVersion: string;
    metadata: {
        description?: string;
        name: string;
        namespace?: string;
        tags?: string[];
        type?: string;
        version: string;
        labels?: {
            gatewayTypes?: string[];
        };
    };
    spec: {
        alias?: string;
        source?: Record<string, any>[];
    };
}
export interface AuthorizeUser_api_ibm_com_v1 {
    kind: "AuthorizeUser";
    apiVersion: string;
    metadata: Metadata;
    spec: {
        enabled?: boolean;
        users?: string[];
        groups?: string[];
        teams?: string[];
    };
}
export interface SetContextVariable_api_ibm_com_v1 {
    kind: "SetContextVariable";
    apiVersion: string;
    metadata: Metadata;
    spec: {
        /** Can be enabled or disabled */
        enabled?: boolean;
        condition?: string;
        namespaces?: {
            URI?: string;
            prefix?: string;
        }[];
        /**
         * Multiple instances of variable can be given
         */
        variable?: {
            /** The variable name */
            name?: string;
            /** The variable value */
            value?: string;
        }[];
    };
}
/**
 * The Context Variable related information is captured in the message WebMethodsISService.
 */
export interface WebMethodsISService_api_ibm_com_v1 {
    kind: "WebMethodsISService";
    apiVersion: string;
    metadata: Metadata;
    spec: {
        enabled?: boolean;
        condition?: string;
        alias?: string;
        /**
         * Multiple instances of Service can be given
         */
        services?: {
            /** The message specifies the information related to Service */
            complyToISSpec?: boolean;
            name?: string;
            runAs?: string;
        }[];
    };
}
/**
 * Defines a message named Metadata
 */
export interface Metadata {
    description?: string;
    name: string;
    namespace?: string;
    tags?: string[];
    type?: "REST" | "SWAGGER" | "SOAP" | "GRAPHQL" | "ODATA";
    version: string;
    labels?: MetadataLabels;
}
export interface MetadataLabels {
    gatewayTypes?: string[];
}
export interface Log_api_ibm_com_v1 {
    kind: KindType;
    apiVersion: string;
    metadata: {
        description?: string;
        name: string;
        namespace?: string;
        tags?: string[];
        type?: string;
        version: string;
        labels?: {
            gatewayTypes?: string[];
        };
    };
    spec: {
        enabled?: boolean;
        logRequestHeaders?: boolean;
        logResponseHeaders?: boolean;
        logRequestPayload?: boolean;
        logResponsePayload?: boolean;
        compressPayloads?: boolean;
        logGenerationFrequency?: string;
        destination?: any[];
    };
}
export interface MonitorTraffic_api_ibm_com_v1 {
    kind: KindType;
    apiVersion: string;
    metadata: {
        description?: string;
        name: string;
        namespace?: string;
        tags?: string[];
        type?: string;
        version: string;
        labels?: {
            gatewayTypes?: string[];
        };
    };
    spec: {
        enabled?: boolean;
        condition?: string;
        applications?: string[];
        'alert-configuration'?: {
            frequency?: string;
            interval?: string;
            message?: string;
        };
        'notify-on-breach'?: any[];
    };
}
export interface HTTPInvoke_api_ibm_com_v1 {
    kind: KindType;
    apiVersion: string;
    metadata: {
        description?: string;
        name: string;
        namespace?: string;
        tags?: string[];
        type?: string;
        version: string;
        labels?: {
            gatewayTypes?: string[];
        };
    };
    spec: {
        enabled?: boolean;
        condition?: string;
        endpoint?: {
            name: string;
            namespace?: string;
            version: string;
        };
        namespaces?: Record<string, any>[];
        request_processing?: {
            preProcessing?: string[];
            transformations?: string[];
        };
        response_processing?: {
            postProcessing?: string[];
            transformations?: string[];
        };
    };
}
export interface InvokeMessagingExtension_api_ibm_com_v1 {
    kind: KindType;
    apiVersion: string;
    metadata: {
        description?: string;
        name: string;
        namespace?: string;
        tags?: string[];
        type?: string;
        version: string;
        labels?: {
            gatewayTypes?: string[];
        };
    };
    spec: {
        enabled?: boolean;
        condition?: string;
        messageConfig?: {
            name: string;
            namespace?: string;
            version: string;
        };
        namespaces?: Record<string, any>[];
        request_processing?: {
            preProcessing?: string[];
            transformations?: string[];
        };
        response_processing?: {
            postProcessing?: string[];
            transformations?: string[];
        };
    };
}
export interface TransformRequest_api_ibm_com_v1 {
    kind: KindType;
    apiVersion: string;
    metadata: {
        description?: string;
        name: string;
        namespace?: string;
        tags?: string[];
        type?: string;
        version: string;
        labels?: {
            gatewayTypes?: string[];
        };
    };
    spec: {
        enabled?: boolean;
        condition?: string;
        transformations?: {
            namespaces?: Record<string, any>[];
            setMethod?: string;
            webMethodsISService?: Record<string, any>[];
        };
    };
}
export interface TransformResponse_api_ibm_com_v1 {
    kind: KindType;
    apiVersion: string;
    metadata: {
        description?: string;
        name: string;
        namespace?: string;
        tags?: string[];
        type?: string;
        version: string;
        labels?: {
            gatewayTypes?: string[];
        };
    };
    spec: {
        enabled?: boolean;
        condition?: string;
        transformations?: {
            namespaces?: Record<string, any>[];
            setStatus?: {
                code?: string;
                message?: string;
            };
            webMethodsISService?: Record<string, any>[];
        };
    };
}
export interface MessageConfig_api_ibm_com_v1 {
    kind: KindType;
    apiVersion: string;
    metadata: {
        description?: string;
        name: string;
        namespace?: string;
        tags?: string[];
        type?: string;
        version: string;
        labels?: {
            gatewayTypes?: string[];
        };
    };
    spec: {
        connectionAlias?: string;
        destination?: {
            name?: string;
            type?: string;
        };
        replyTo?: {
            name?: string;
            type?: string;
        };
        ttl?: string;
        timeToWait?: string;
        deliveryMode?: string;
        property?: Record<string, any>[];
    };
}
export interface ErrorProcessing_api_ibm_com_v1 {
    kind: KindType;
    apiVersion: string;
    metadata: {
        description?: string;
        name: string;
        namespace?: string;
        tags?: string[];
        type?: string;
        version: string;
        labels?: {
            gatewayTypes?: string[];
        };
    };
    spec: {
        enabled?: boolean;
        condition?: string;
        'pre-processing'?: {
            webMethodsISService?: Record<string, any>[];
            xsl?: {
                href?: string;
            };
        };
        transformations?: {
            set?: Record<string, any>[];
            remove?: string[];
            setPayload?: {
                'content-types'?: Record<string, any>[];
                defaultContentType?: string;
                xsl?: {
                    href?: string;
                };
            };
            namespaces?: Record<string, any>[];
            sendNativeError?: boolean;
        };
        'post-processing'?: {
            webMethodsISService?: Record<string, any>[];
            xsl?: {
                href?: string;
            };
        };
    };
}
/**
 * Type guard to check if a resource is of a specific kind and API version
 */
export declare function isResourceOfType<T extends ApiResource>(resource: ApiResource, kind: KindType, apiVersion: string): resource is T;
/**
 * Get the TypeScript interface name for a given kind and API version
 */
export declare function getInterfaceName(kind: KindType, apiVersion: string): string;
/**
 * Map of original kind_apiVersion to TypeScript interface names
 */
export declare const interfaceNameMap: {
    "InvokeAWSLambda_api.ibm.com/v1": string;
    "ValidateAPISpecification_api.ibm.com/v1": string;
    "LoadBalancer_api.ibm.com/v1": string;
    "Invoke_api.ibm.com/v1": string;
    "IAM_api.ibm.com/v1": string;
    "RateLimit_api.ibm.com/v1": string;
    "RateLimitDef_api.ibm.com/v1": string;
    "InboundBulkHead_api.ibm.com/v1": string;
    "SetMediaType_api.ibm.com/v1": string;
    "InboundMessaging_api.ibm.com/v1": string;
    "AuthorizeUser_api.ibm.com/v1": string;
    "SetContextVariable_api.ibm.com/v1": string;
    "WebMethodsISService_api.ibm.com/v1": string;
    "Log_api.ibm.com/v1": string;
    "MonitorTraffic_api.ibm.com/v1": string;
    "HTTPInvoke_api.ibm.com/v1": string;
    "InvokeMessagingExtension_api.ibm.com/v1": string;
    "TransformRequest_api.ibm.com/v1": string;
    "TransformResponse_api.ibm.com/v1": string;
    "MessageConfig_api.ibm.com/v1": string;
    "ErrorProcessing_api.ibm.com/v1": string;
};
//# sourceMappingURL=api-model-kinds.d.ts.map