/**
 * Generated TypeScript interfaces for API resources
 * DO NOT EDIT MANUALLY - This file is generated
 */
export type KindType = 'API' | 'CORS' | 'CountLimit' | 'CountLimitDef' | 'Quota' | 'Product' | 'Plan' | 'StagedPolicySequence' | 'Scope' | 'ValidateAPISpecification' | 'Project' | 'URISchemes' | 'Telemetry' | 'Properties' | 'LoadBalancer' | 'InvokeAWSLambda' | 'SetAuthorization' | 'Invoke' | 'GlobalPolicy' | 'IAM' | 'CacheServiceResult' | 'OutboundAlias' | 'OutboundAnonymous' | 'DataMasking' | 'Route' | 'HTTPEndpoint' | 'MockEndpoint' | 'MockResponse' | 'Set' | 'RateLimitDef' | 'RateLimit' | 'Redact' | 'Remove' | 'Transform' | 'DataPowerAssembly' | 'Switch' | 'If' | 'OperationSwitch' | 'Try' | 'FreeFlowPolicySequence' | 'JavaScript' | 'LuaScript' | 'EnforceCircuitBreaker' | 'TokenMediation' | 'Block' | 'Parse' | 'Cache' | 'Antivirus' | 'SQLInjectionFilter';
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 = API_api_ibm_com_v1 | CORS_api_ibm_com_v1 | CountLimit_api_ibm_com_v1 | CountLimitDef_api_ibm_com_v1 | Quota_api_ibm_com_v1 | Product_api_ibm_com_v1 | Plan_api_ibm_com_v1 | StagedPolicySequence_api_ibm_com_v1 | Scope_api_ibm_com_v1 | ValidateAPISpecification_api_ibm_com_v1 | Project_api_ibm_com_v1 | URISchemes_api_ibm_com_v1 | Telemetry_api_ibm_com_v1 | Properties_api_ibm_com_v1 | LoadBalancer_api_ibm_com_v1 | InvokeAWSLambda_api_ibm_com_v1 | SetAuthorization_api_ibm_com_v1 | Invoke_api_ibm_com_v1 | GlobalPolicy_api_ibm_com_v1 | IAM_api_ibm_com_v1 | CacheServiceResult_api_ibm_com_v1 | OutboundAlias_api_ibm_com_v1 | OutboundAnonymous_api_ibm_com_v1 | DataMasking_api_ibm_com_v1 | Route_api_ibm_com_v1 | HTTPEndpoint_api_ibm_com_v1 | MockEndpoint_api_ibm_com_v1 | MockResponse_api_ibm_com_v1 | Set_api_ibm_com_v1 | RateLimitDef_api_ibm_com_v1 | RateLimit_api_ibm_com_v1 | Redact_api_ibm_com_v1 | Remove_api_ibm_com_v1 | Transform_api_ibm_com_v1 | DataPowerAssembly_api_ibm_com_v1 | Switch_api_ibm_com_v1 | If_api_ibm_com_v1 | OperationSwitch_api_ibm_com_v1 | Try_api_ibm_com_v1 | FreeFlowPolicySequence_api_ibm_com_v1 | JavaScript_api_ibm_com_v1 | LuaScript_api_ibm_com_v1 | EnforceCircuitBreaker_api_ibm_com_v1 | TokenMediation_api_ibm_com_v1 | Block_api_ibm_com_v1 | Parse_api_ibm_com_v1 | Cache_api_ibm_com_v1 | Antivirus_api_ibm_com_v1 | SQLInjectionFilter_api_ibm_com_v1;
export interface API_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: {
        'api-spec': {
            $path: string;
        };
        uriSchemes?: {
            $ref: string;
        };
        properties?: {
            $ref: string;
        };
        cors?: {
            $ref: string;
        };
        scopes?: Record<string, any>[];
        'policy-sequence': Record<string, any>[];
    };
}
export interface CORS_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: {
        rules: Record<string, any>[];
    };
}
export interface CountLimit_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: {
        limits: Record<string, any>[];
        extensions?: {
            'dp-nano-gateway'?: {
                apiVersion?: string;
                spec?: {
                    limits?: Record<string, any>[];
                };
            };
        };
    };
}
export interface CountLimitDef_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: {
        max: number;
        autoDecrement: boolean;
        extensions?: {
            'dp-nano-gateway'?: {
                apiVersion?: string;
                spec?: {
                    weightExpr?: string;
                    dynamicValue?: string;
                };
            };
        };
    };
}
export interface Quota_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: {
        maxRequest?: number;
        interval?: string;
        extensions?: {
            'dp-gateway'?: {
                apiVersion?: string;
                spec?: {
                    onLimitReach?: string;
                };
            };
            'dp-nano-gateway'?: {
                apiVersion?: string;
                spec?: {
                    weightExpr?: string;
                    exceedAction?: string;
                    intervalOffset?: number;
                    dynamicValue?: string;
                };
            };
            'webm-gateway'?: {
                apiVersion?: string;
                spec?: {
                    alertMessage?: string;
                    alertFrequency?: string;
                    onLimitReach?: string;
                    notification?: {
                        enabled?: boolean;
                        notifyAfter?: string;
                        message?: string;
                        email?: string[];
                    };
                };
            };
        };
    };
}
export interface Product_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: {
        info?: {
            categories?: string[];
            contact?: {
                name?: string;
                email?: string;
                url?: string;
            };
            license?: {
                name?: string;
                url?: string;
            };
            termsOfService?: string;
            summary?: string;
        };
        apis?: Record<string, any>[];
        plans?: Record<string, any>[];
        extensions?: {
            'portal-config'?: {
                apiVersion?: string;
                spec?: {
                    visibility?: {
                        view?: {
                            type?: string;
                            orgs?: string[];
                            tags?: string[];
                            enabled?: boolean;
                        };
                        subscribe?: {
                            type?: string;
                            orgs?: string[];
                            tags?: string[];
                            enabled?: boolean;
                        };
                    };
                };
            };
            'dp-nano-gateway'?: {
                apiVersion?: string;
                spec?: {
                    properties?: Record<string, any>;
                    env?: Record<string, any>[];
                    hostAliases?: Record<string, any>[];
                    logLevel?: {
                        all?: string;
                    };
                    quotaService?: {
                        cache?: {
                            capacity?: number;
                            maxAgeMilliseconds?: number;
                            maxPercent?: number;
                            fallback?: string;
                        };
                        responseHeaders?: string;
                        updateInterval?: number;
                    };
                    replicas?: number;
                    resources?: {
                        limits?: {
                            cpu?: string;
                            memory?: string;
                        };
                        requests?: {
                            cpu?: string;
                            memory?: string;
                        };
                    };
                    sqlInjectionFilters?: {
                        commands?: string;
                        escapeSequence?: string;
                        keywordInjection?: string;
                        likeMatch?: string;
                        metacharacters?: string;
                        msSqlCommands?: string;
                        andOrAttack?: string;
                        oracleBufferOverflow?: string;
                        simpleMetacharacters?: string;
                        custom?: Record<string, any>;
                    };
                };
            };
        };
    };
}
export interface Plan_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: {
        extensions?: {
            'webm-gateway'?: {
                apiVersion?: string;
                spec?: {
                    pricing?: {
                        value: number;
                        currency: string;
                    };
                    withRateLimit?: Record<string, any>[];
                };
            };
            'dp-nano-gateway'?: {
                apiVersion?: string;
                spec?: {
                    apis?: Record<string, any>[];
                    withAssemblyCountLimit?: Record<string, any>[];
                    properties?: Record<string, any>;
                    telemetry?: Record<string, any>;
                };
            };
            'dp-gateway'?: {
                apiVersion?: string;
                spec?: {
                    isApprovalRequired?: boolean;
                    withRateLimit?: Record<string, any>[];
                    withAssemblyCountLimit?: Record<string, any>[];
                    withAssemblyRateLimit?: Record<string, any>[];
                    withAssemblyQuotaLimit?: Record<string, any>[];
                    apis?: Record<string, any>[];
                };
            };
        };
    };
}
export interface StagedPolicySequence_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: {
        transport?: Record<string, any>[];
        security?: Record<string, any>[];
        monitoring?: Record<string, any>[];
        routing?: Record<string, any>[];
        'req-processing'?: Record<string, any>[];
        'res-processing'?: Record<string, any>[];
        'error-handling'?: Record<string, any>[];
    };
}
export interface Scope_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: {
        'policy-sequence': Record<string, any>[];
        resources: Record<string, any>[];
    };
}
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: {
        input: string;
        validate: any;
    };
}
export interface Project_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: {
        api?: Record<string, any>[];
    };
}
export interface URISchemes_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: {
        uriSchemes: string[];
    };
}
export interface Telemetry_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: {
        attributes?: Record<string, any>;
        verbosity?: Record<string, any>[];
    };
}
export interface Properties_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: Record<string, 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;
        weightedRandomHttp?: {
            verb?: string;
            statusException?: Record<string, any>[];
            endpoints?: Record<string, any>[];
        };
        roundRobinHttp?: {
            verb?: string;
            statusException?: Record<string, any>[];
            endpoints?: Record<string, any>[];
        };
    };
}
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;
        };
    };
}
export interface SetAuthorization_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: Record<string, any>;
}
export interface Invoke_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: {
        cache?: {
            expire?: any;
            scope?: any;
        };
        endpoint: any;
        input?: string;
        output?: string;
    };
}
export interface GlobalPolicy_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: {
        'filter-api-type'?: string[];
        'filter-http-methods'?: string[];
        'filter-attributes'?: string;
        'policy-sequence': Record<string, any>[];
    };
}
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[][];
    };
}
export interface CacheServiceResult_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: {
        condition?: string;
        enabled?: boolean;
        maxSize?: string;
        ttl?: string;
    };
}
export interface OutboundAlias_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;
    };
}
export interface OutboundAnonymous_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: Record<string, any>;
}
export interface DataMasking_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: {
        applyForPayload?: boolean;
        applyForTransactionLogging?: boolean;
        enabled?: boolean;
        matchApplications?: string[];
        transformations?: {
            remove?: Record<string, any>[];
            setMask?: Record<string, any>[];
        };
    };
}
export interface Route_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 HTTPEndpoint_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: {
        url?: string;
        method?: string;
        connectTimeout?: number;
        readTimeout?: number;
        serviceRegistryParameters?: Record<string, any>[];
        sslConfig?: {
            keyAlias?: string;
            keyStoreAlias?: string;
            trustStoreAlias?: string;
        };
    };
}
export interface MockEndpoint_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: {
        paths?: Record<string, any>;
    };
}
export interface MockResponse_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: {
        code?: number;
        data?: Record<string, any>[];
        headers?: Record<string, any>[];
    };
}
export interface Set_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: 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;
    };
}
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?: any;
        limits?: Record<string, any>[];
    };
}
export interface Redact_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 Remove_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 Transform_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 DataPowerAssembly_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: {
        'x-ibm-configuration'?: Record<string, any>;
    };
}
export interface Switch_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: {
        cases: Record<string, any>[];
        otherwise?: Record<string, any>[];
    };
}
export interface If_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: {
        condition: string;
        execute: Record<string, any>[];
    };
}
export interface OperationSwitch_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: {
        cases: Record<string, any>[];
        otherwise?: Record<string, any>[];
    };
}
export interface Try_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: {
        execute: Record<string, any>[];
        catch?: Record<string, any>[];
        finally?: Record<string, any>[];
    };
}
export interface FreeFlowPolicySequence_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: {
        security?: {
            $ref: string;
        };
        monitoring?: {
            $ref: string;
        };
        main?: Record<string, any>[];
        error?: Record<string, any>[];
        finally?: Record<string, any>[];
    };
}
export interface JavaScript_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: {
        source?: string;
    };
}
export interface LuaScript_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: {
        source?: string;
        actions?: {};
    };
}
export interface EnforceCircuitBreaker_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: {
        preventHalfOpen?: boolean;
        recoveryDuration?: number;
        breakConditions?: {
            reportedFailures?: {
                failureCount: number;
                failureDuration: number;
            };
            reportedFailuresAndConcurrency?: {
                failureCount: number;
                failureDuration: number;
                maxConcurrentRequests: number;
            };
            concurrency?: {
                maxConcurrentRequests: number;
            };
        };
        execute?: Record<string, any>[];
        fallbackExecute?: Record<string, any>[];
    };
}
export interface TokenMediation_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: {
        authUrl?: string;
        cookieName?: string;
        output?: string;
        tokenUrl?: string;
        tokenUrlTls?: string;
    };
}
export interface Block_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: {
        ip: {
            denyList?: string[];
            allowList?: string[];
            fromRedis?: {
                denyList?: string[];
                allowList?: string[];
            };
        };
    };
}
export interface Parse_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;
        detectByContentType?: {
            maxDepth?: number;
            maxDocumentSize?: number;
            maxNameLength?: number;
            maxValueLength?: number;
            maxWidth?: number;
            max_number_length?: number;
            max_namespaces?: number;
            max_prefixes?: number;
            max_line_length?: number;
            max_lines?: number;
        };
        detectByPayload?: {
            maxDepth?: number;
            maxDocumentSize?: number;
            maxNameLength?: number;
            maxValueLength?: number;
            maxWidth?: number;
            max_namespaces?: number;
            max_number_length?: number;
            max_prefixes?: number;
        };
        jSON?: {
            maxDepth?: number;
            maxDocumentSize?: number;
            maxNameLength?: number;
            maxValueLength?: number;
            maxWidth?: number;
            max_number_length?: number;
        };
        binary?: {
            maxDocumentSize?: number;
        };
        text?: {
            max_document_size?: number;
            max_line_length?: number;
            max_lines?: number;
            maxDepth?: number;
            maxDocumentSize?: number;
            maxNameLength?: number;
            maxValueLength?: number;
            maxWidth?: number;
            max_namespaces?: number;
            max_prefixes?: number;
        };
        graphql?: {
            maxDepth?: number;
            maxDocumentSize?: number;
            maxNameLength?: number;
            maxValueLength?: number;
            maxWidth?: number;
            max_number_length?: number;
        };
    };
}
export interface Cache_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: {
        inputs: any[];
        outputs: any[];
        scope?: Record<string, any>;
        expire: Record<string, any>;
        execute: Record<string, any>[];
    };
}
export interface Antivirus_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: {
        errorPolicy: string;
        icapHost: string;
        icapName: string;
        icapPort: number;
        icapServiceName: string;
        message: string;
        responseCacheExpiration: number;
        scanType: {
            bodyAndAttachments?: {
                bodyExpression: string;
                filterExpression: string;
            };
            attachments?: {
                filterExpression: string;
            };
        };
    };
}
export interface SQLInjectionFilter_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: {
        filterOn: string;
        injectionRules: {
            predefined: string[];
            custom: string[];
        };
        message: 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: {
    "API_api.ibm.com/v1": string;
    "CORS_api.ibm.com/v1": string;
    "CountLimit_api.ibm.com/v1": string;
    "CountLimitDef_api.ibm.com/v1": string;
    "Quota_api.ibm.com/v1": string;
    "Product_api.ibm.com/v1": string;
    "Plan_api.ibm.com/v1": string;
    "StagedPolicySequence_api.ibm.com/v1": string;
    "Scope_api.ibm.com/v1": string;
    "ValidateAPISpecification_api.ibm.com/v1": string;
    "Project_api.ibm.com/v1": string;
    "URISchemes_api.ibm.com/v1": string;
    "Telemetry_api.ibm.com/v1": string;
    "Properties_api.ibm.com/v1": string;
    "LoadBalancer_api.ibm.com/v1": string;
    "InvokeAWSLambda_api.ibm.com/v1": string;
    "SetAuthorization_api.ibm.com/v1": string;
    "Invoke_api.ibm.com/v1": string;
    "GlobalPolicy_api.ibm.com/v1": string;
    "IAM_api.ibm.com/v1": string;
    "CacheServiceResult_api.ibm.com/v1": string;
    "OutboundAlias_api.ibm.com/v1": string;
    "OutboundAnonymous_api.ibm.com/v1": string;
    "DataMasking_api.ibm.com/v1": string;
    "Route_api.ibm.com/v1": string;
    "HTTPEndpoint_api.ibm.com/v1": string;
    "MockEndpoint_api.ibm.com/v1": string;
    "MockResponse_api.ibm.com/v1": string;
    "Set_api.ibm.com/v1": string;
    "RateLimitDef_api.ibm.com/v1": string;
    "RateLimit_api.ibm.com/v1": string;
    "Redact_api.ibm.com/v1": string;
    "Remove_api.ibm.com/v1": string;
    "Transform_api.ibm.com/v1": string;
    "DataPowerAssembly_api.ibm.com/v1": string;
    "Switch_api.ibm.com/v1": string;
    "If_api.ibm.com/v1": string;
    "OperationSwitch_api.ibm.com/v1": string;
    "Try_api.ibm.com/v1": string;
    "FreeFlowPolicySequence_api.ibm.com/v1": string;
    "JavaScript_api.ibm.com/v1": string;
    "LuaScript_api.ibm.com/v1": string;
    "EnforceCircuitBreaker_api.ibm.com/v1": string;
    "TokenMediation_api.ibm.com/v1": string;
    "Block_api.ibm.com/v1": string;
    "Parse_api.ibm.com/v1": string;
    "Cache_api.ibm.com/v1": string;
    "Antivirus_api.ibm.com/v1": string;
    "SQLInjectionFilter_api.ibm.com/v1": string;
};
//# sourceMappingURL=api-model-kinds.d.ts.map