/* tslint:disable */
/* eslint-disable */
/**
 * Admin API
 * The Admin API is used to manage the ApeCloud platform. 
 *
 * The version of the OpenAPI document: 1.0.0
 * Contact: support@apecloud.com
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */


import type { Configuration } from '../configuration';
import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios';
import globalAxios from 'axios';
// Some imports not used depending on template conditions
// @ts-ignore
import { DUMMY_BASE_URL, assertParamExists, setApiKeyToObject, setBasicAuthToObject, setBearerAuthToObject, setOAuthToObject, setSearchParams, serializeDataIfNeeded, toPathString, createRequestFunction } from '../common';
// @ts-ignore
import { BASE_PATH, COLLECTION_FORMATS, type RequestArgs, BaseAPI, RequiredError, operationServerMap } from '../base';
// @ts-ignore
import type { APIErrorResponse } from '../models';
// @ts-ignore
import type { AiAgentConversation } from '../models';
// @ts-ignore
import type { AiAgentConversationList } from '../models';
// @ts-ignore
import type { AiAgentCreateConversationRequest } from '../models';
// @ts-ignore
import type { AiAgentDeleteConversationResponse } from '../models';
// @ts-ignore
import type { AiAgentEvent } from '../models';
// @ts-ignore
import type { AiAgentMessageList } from '../models';
// @ts-ignore
import type { AiAgentRuntimeStatus } from '../models';
// @ts-ignore
import type { AiAgentSendMessageRequest } from '../models';
// @ts-ignore
import type { AiAgentSendMessageResponse } from '../models';
// @ts-ignore
import type { AiAgentStopConversationResponse } from '../models';
// @ts-ignore
import type { AiAgentToolConfirmationDecisionRequest } from '../models';
// @ts-ignore
import type { AiAgentToolConfirmationDecisionResponse } from '../models';
// @ts-ignore
import type { AiAgentTurnAction } from '../models';
// @ts-ignore
import type { AiAgentTurnActionList } from '../models';
/**
 * AIAgentApi - axios parameter creator
 * @export
 */
export const AIAgentApiAxiosParamCreator = function (configuration?: Configuration) {
    return {
        /**
         * 
         * @summary Approve one AI diagnosis tool confirmation
         * @param {string} orgName 
         * @param {string} conversationId 
         * @param {string} confirmationId 
         * @param {AiAgentToolConfirmationDecisionRequest} [aiAgentToolConfirmationDecisionRequest] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        approveAIAgentToolConfirmation: async (orgName: string, conversationId: string, confirmationId: string, aiAgentToolConfirmationDecisionRequest?: AiAgentToolConfirmationDecisionRequest, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'orgName' is not null or undefined
            assertParamExists('approveAIAgentToolConfirmation', 'orgName', orgName)
            // verify required parameter 'conversationId' is not null or undefined
            assertParamExists('approveAIAgentToolConfirmation', 'conversationId', conversationId)
            // verify required parameter 'confirmationId' is not null or undefined
            assertParamExists('approveAIAgentToolConfirmation', 'confirmationId', confirmationId)
            const localVarPath = `/admin/v1/organizations/{orgName}/ai-agent/conversations/{conversationId}/tool-confirmations/{confirmationId}/approve`
                .replace(`{${"orgName"}}`, encodeURIComponent(String(orgName)))
                .replace(`{${"conversationId"}}`, encodeURIComponent(String(conversationId)))
                .replace(`{${"confirmationId"}}`, encodeURIComponent(String(confirmationId)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication BearerToken required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            // authentication DigestAuth required
            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(aiAgentToolConfirmationDecisionRequest, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Browse a generated AI diagnosis report artifact
         * @param {string} orgName 
         * @param {string} conversationId 
         * @param {string} actionId 
         * @param {string} artifactId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        browseAIAgentTurnActionArtifact: async (orgName: string, conversationId: string, actionId: string, artifactId: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'orgName' is not null or undefined
            assertParamExists('browseAIAgentTurnActionArtifact', 'orgName', orgName)
            // verify required parameter 'conversationId' is not null or undefined
            assertParamExists('browseAIAgentTurnActionArtifact', 'conversationId', conversationId)
            // verify required parameter 'actionId' is not null or undefined
            assertParamExists('browseAIAgentTurnActionArtifact', 'actionId', actionId)
            // verify required parameter 'artifactId' is not null or undefined
            assertParamExists('browseAIAgentTurnActionArtifact', 'artifactId', artifactId)
            const localVarPath = `/admin/v1/organizations/{orgName}/ai-agent/conversations/{conversationId}/turn-actions/{actionId}/artifacts/{artifactId}/browse`
                .replace(`{${"orgName"}}`, encodeURIComponent(String(orgName)))
                .replace(`{${"conversationId"}}`, encodeURIComponent(String(conversationId)))
                .replace(`{${"actionId"}}`, encodeURIComponent(String(actionId)))
                .replace(`{${"artifactId"}}`, encodeURIComponent(String(artifactId)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication BearerToken required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            // authentication DigestAuth required
            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)


    
            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Create an AI diagnosis conversation
         * @param {string} orgName 
         * @param {AiAgentCreateConversationRequest} aiAgentCreateConversationRequest 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createAIAgentConversation: async (orgName: string, aiAgentCreateConversationRequest: AiAgentCreateConversationRequest, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'orgName' is not null or undefined
            assertParamExists('createAIAgentConversation', 'orgName', orgName)
            // verify required parameter 'aiAgentCreateConversationRequest' is not null or undefined
            assertParamExists('createAIAgentConversation', 'aiAgentCreateConversationRequest', aiAgentCreateConversationRequest)
            const localVarPath = `/admin/v1/organizations/{orgName}/ai-agent/conversations`
                .replace(`{${"orgName"}}`, encodeURIComponent(String(orgName)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication BearerToken required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            // authentication DigestAuth required
            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(aiAgentCreateConversationRequest, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Delete an AI diagnosis conversation
         * @param {string} orgName 
         * @param {string} conversationId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteAIAgentConversation: async (orgName: string, conversationId: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'orgName' is not null or undefined
            assertParamExists('deleteAIAgentConversation', 'orgName', orgName)
            // verify required parameter 'conversationId' is not null or undefined
            assertParamExists('deleteAIAgentConversation', 'conversationId', conversationId)
            const localVarPath = `/admin/v1/organizations/{orgName}/ai-agent/conversations/{conversationId}`
                .replace(`{${"orgName"}}`, encodeURIComponent(String(orgName)))
                .replace(`{${"conversationId"}}`, encodeURIComponent(String(conversationId)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication BearerToken required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            // authentication DigestAuth required
            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)


    
            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Download a generated AI diagnosis report artifact
         * @param {string} orgName 
         * @param {string} conversationId 
         * @param {string} actionId 
         * @param {string} artifactId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        downloadAIAgentTurnActionArtifact: async (orgName: string, conversationId: string, actionId: string, artifactId: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'orgName' is not null or undefined
            assertParamExists('downloadAIAgentTurnActionArtifact', 'orgName', orgName)
            // verify required parameter 'conversationId' is not null or undefined
            assertParamExists('downloadAIAgentTurnActionArtifact', 'conversationId', conversationId)
            // verify required parameter 'actionId' is not null or undefined
            assertParamExists('downloadAIAgentTurnActionArtifact', 'actionId', actionId)
            // verify required parameter 'artifactId' is not null or undefined
            assertParamExists('downloadAIAgentTurnActionArtifact', 'artifactId', artifactId)
            const localVarPath = `/admin/v1/organizations/{orgName}/ai-agent/conversations/{conversationId}/turn-actions/{actionId}/artifacts/{artifactId}/download`
                .replace(`{${"orgName"}}`, encodeURIComponent(String(orgName)))
                .replace(`{${"conversationId"}}`, encodeURIComponent(String(conversationId)))
                .replace(`{${"actionId"}}`, encodeURIComponent(String(actionId)))
                .replace(`{${"artifactId"}}`, encodeURIComponent(String(artifactId)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication BearerToken required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            // authentication DigestAuth required
            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)


    
            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Get an AI diagnosis conversation
         * @param {string} orgName 
         * @param {string} conversationId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAIAgentConversation: async (orgName: string, conversationId: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'orgName' is not null or undefined
            assertParamExists('getAIAgentConversation', 'orgName', orgName)
            // verify required parameter 'conversationId' is not null or undefined
            assertParamExists('getAIAgentConversation', 'conversationId', conversationId)
            const localVarPath = `/admin/v1/organizations/{orgName}/ai-agent/conversations/{conversationId}`
                .replace(`{${"orgName"}}`, encodeURIComponent(String(orgName)))
                .replace(`{${"conversationId"}}`, encodeURIComponent(String(conversationId)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication BearerToken required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            // authentication DigestAuth required
            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)


    
            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Get AI diagnosis agent status
         * @param {string} orgName 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAIAgentStatus: async (orgName: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'orgName' is not null or undefined
            assertParamExists('getAIAgentStatus', 'orgName', orgName)
            const localVarPath = `/admin/v1/organizations/{orgName}/ai-agent/status`
                .replace(`{${"orgName"}}`, encodeURIComponent(String(orgName)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication BearerToken required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            // authentication DigestAuth required
            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)


    
            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Get one stable AI diagnosis turn process action
         * @param {string} orgName 
         * @param {string} conversationId 
         * @param {string} actionId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAIAgentTurnAction: async (orgName: string, conversationId: string, actionId: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'orgName' is not null or undefined
            assertParamExists('getAIAgentTurnAction', 'orgName', orgName)
            // verify required parameter 'conversationId' is not null or undefined
            assertParamExists('getAIAgentTurnAction', 'conversationId', conversationId)
            // verify required parameter 'actionId' is not null or undefined
            assertParamExists('getAIAgentTurnAction', 'actionId', actionId)
            const localVarPath = `/admin/v1/organizations/{orgName}/ai-agent/conversations/{conversationId}/turn-actions/{actionId}`
                .replace(`{${"orgName"}}`, encodeURIComponent(String(orgName)))
                .replace(`{${"conversationId"}}`, encodeURIComponent(String(conversationId)))
                .replace(`{${"actionId"}}`, encodeURIComponent(String(actionId)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication BearerToken required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            // authentication DigestAuth required
            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)


    
            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary List AI diagnosis conversations
         * @param {string} orgName 
         * @param {number} [limit] 
         * @param {string} [after] 
         * @param {string} [clusterName] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        listAIAgentConversations: async (orgName: string, limit?: number, after?: string, clusterName?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'orgName' is not null or undefined
            assertParamExists('listAIAgentConversations', 'orgName', orgName)
            const localVarPath = `/admin/v1/organizations/{orgName}/ai-agent/conversations`
                .replace(`{${"orgName"}}`, encodeURIComponent(String(orgName)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication BearerToken required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            // authentication DigestAuth required
            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)

            if (limit !== undefined) {
                localVarQueryParameter['limit'] = limit;
            }

            if (after !== undefined) {
                localVarQueryParameter['after'] = after;
            }

            if (clusterName !== undefined) {
                localVarQueryParameter['clusterName'] = clusterName;
            }


    
            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary List AI diagnosis conversation messages
         * @param {string} orgName 
         * @param {string} conversationId 
         * @param {string} [after] 
         * @param {number} [limit] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        listAIAgentMessages: async (orgName: string, conversationId: string, after?: string, limit?: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'orgName' is not null or undefined
            assertParamExists('listAIAgentMessages', 'orgName', orgName)
            // verify required parameter 'conversationId' is not null or undefined
            assertParamExists('listAIAgentMessages', 'conversationId', conversationId)
            const localVarPath = `/admin/v1/organizations/{orgName}/ai-agent/conversations/{conversationId}/messages`
                .replace(`{${"orgName"}}`, encodeURIComponent(String(orgName)))
                .replace(`{${"conversationId"}}`, encodeURIComponent(String(conversationId)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication BearerToken required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            // authentication DigestAuth required
            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)

            if (after !== undefined) {
                localVarQueryParameter['after'] = after;
            }

            if (limit !== undefined) {
                localVarQueryParameter['limit'] = limit;
            }


    
            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary List stable AI diagnosis turn process actions
         * @param {string} orgName 
         * @param {string} conversationId 
         * @param {string} [turnId] 
         * @param {string} [after] 
         * @param {number} [limit] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        listAIAgentTurnActions: async (orgName: string, conversationId: string, turnId?: string, after?: string, limit?: number, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'orgName' is not null or undefined
            assertParamExists('listAIAgentTurnActions', 'orgName', orgName)
            // verify required parameter 'conversationId' is not null or undefined
            assertParamExists('listAIAgentTurnActions', 'conversationId', conversationId)
            const localVarPath = `/admin/v1/organizations/{orgName}/ai-agent/conversations/{conversationId}/turn-actions`
                .replace(`{${"orgName"}}`, encodeURIComponent(String(orgName)))
                .replace(`{${"conversationId"}}`, encodeURIComponent(String(conversationId)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication BearerToken required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            // authentication DigestAuth required
            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)

            if (turnId !== undefined) {
                localVarQueryParameter['turnId'] = turnId;
            }

            if (after !== undefined) {
                localVarQueryParameter['after'] = after;
            }

            if (limit !== undefined) {
                localVarQueryParameter['limit'] = limit;
            }


    
            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Reject one AI diagnosis tool confirmation
         * @param {string} orgName 
         * @param {string} conversationId 
         * @param {string} confirmationId 
         * @param {AiAgentToolConfirmationDecisionRequest} [aiAgentToolConfirmationDecisionRequest] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        rejectAIAgentToolConfirmation: async (orgName: string, conversationId: string, confirmationId: string, aiAgentToolConfirmationDecisionRequest?: AiAgentToolConfirmationDecisionRequest, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'orgName' is not null or undefined
            assertParamExists('rejectAIAgentToolConfirmation', 'orgName', orgName)
            // verify required parameter 'conversationId' is not null or undefined
            assertParamExists('rejectAIAgentToolConfirmation', 'conversationId', conversationId)
            // verify required parameter 'confirmationId' is not null or undefined
            assertParamExists('rejectAIAgentToolConfirmation', 'confirmationId', confirmationId)
            const localVarPath = `/admin/v1/organizations/{orgName}/ai-agent/conversations/{conversationId}/tool-confirmations/{confirmationId}/reject`
                .replace(`{${"orgName"}}`, encodeURIComponent(String(orgName)))
                .replace(`{${"conversationId"}}`, encodeURIComponent(String(conversationId)))
                .replace(`{${"confirmationId"}}`, encodeURIComponent(String(confirmationId)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication BearerToken required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            // authentication DigestAuth required
            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(aiAgentToolConfirmationDecisionRequest, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Send a user message and start or continue AI diagnosis
         * @param {string} orgName 
         * @param {string} conversationId 
         * @param {AiAgentSendMessageRequest} aiAgentSendMessageRequest 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        sendAIAgentMessage: async (orgName: string, conversationId: string, aiAgentSendMessageRequest: AiAgentSendMessageRequest, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'orgName' is not null or undefined
            assertParamExists('sendAIAgentMessage', 'orgName', orgName)
            // verify required parameter 'conversationId' is not null or undefined
            assertParamExists('sendAIAgentMessage', 'conversationId', conversationId)
            // verify required parameter 'aiAgentSendMessageRequest' is not null or undefined
            assertParamExists('sendAIAgentMessage', 'aiAgentSendMessageRequest', aiAgentSendMessageRequest)
            const localVarPath = `/admin/v1/organizations/{orgName}/ai-agent/conversations/{conversationId}/messages`
                .replace(`{${"orgName"}}`, encodeURIComponent(String(orgName)))
                .replace(`{${"conversationId"}}`, encodeURIComponent(String(conversationId)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication BearerToken required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            // authentication DigestAuth required
            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)


    
            localVarHeaderParameter['Content-Type'] = 'application/json';

            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
            localVarRequestOptions.data = serializeDataIfNeeded(aiAgentSendMessageRequest, localVarRequestOptions, configuration)

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Stop the current AI diagnosis turn
         * @param {string} orgName 
         * @param {string} conversationId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        stopAIAgentConversation: async (orgName: string, conversationId: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'orgName' is not null or undefined
            assertParamExists('stopAIAgentConversation', 'orgName', orgName)
            // verify required parameter 'conversationId' is not null or undefined
            assertParamExists('stopAIAgentConversation', 'conversationId', conversationId)
            const localVarPath = `/admin/v1/organizations/{orgName}/ai-agent/conversations/{conversationId}/stop`
                .replace(`{${"orgName"}}`, encodeURIComponent(String(orgName)))
                .replace(`{${"conversationId"}}`, encodeURIComponent(String(conversationId)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication BearerToken required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            // authentication DigestAuth required
            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)


    
            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
        /**
         * 
         * @summary Subscribe to AI diagnosis conversation events
         * @param {string} orgName 
         * @param {string} conversationId 
         * @param {string} [after] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        subscribeAIAgentConversationEvents: async (orgName: string, conversationId: string, after?: string, options: RawAxiosRequestConfig = {}): Promise<RequestArgs> => {
            // verify required parameter 'orgName' is not null or undefined
            assertParamExists('subscribeAIAgentConversationEvents', 'orgName', orgName)
            // verify required parameter 'conversationId' is not null or undefined
            assertParamExists('subscribeAIAgentConversationEvents', 'conversationId', conversationId)
            const localVarPath = `/admin/v1/organizations/{orgName}/ai-agent/conversations/{conversationId}/events`
                .replace(`{${"orgName"}}`, encodeURIComponent(String(orgName)))
                .replace(`{${"conversationId"}}`, encodeURIComponent(String(conversationId)));
            // use dummy base URL string because the URL constructor only accepts absolute URLs.
            const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
            let baseOptions;
            if (configuration) {
                baseOptions = configuration.baseOptions;
            }

            const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options};
            const localVarHeaderParameter = {} as any;
            const localVarQueryParameter = {} as any;

            // authentication BearerToken required
            // http bearer authentication required
            await setBearerAuthToObject(localVarHeaderParameter, configuration)

            // authentication DigestAuth required
            await setApiKeyToObject(localVarHeaderParameter, "Authorization", configuration)

            if (after !== undefined) {
                localVarQueryParameter['after'] = after;
            }


    
            setSearchParams(localVarUrlObj, localVarQueryParameter);
            let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
            localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};

            return {
                url: toPathString(localVarUrlObj),
                options: localVarRequestOptions,
            };
        },
    }
};

/**
 * AIAgentApi - functional programming interface
 * @export
 */
export const AIAgentApiFp = function(configuration?: Configuration) {
    const localVarAxiosParamCreator = AIAgentApiAxiosParamCreator(configuration)
    return {
        /**
         * 
         * @summary Approve one AI diagnosis tool confirmation
         * @param {string} orgName 
         * @param {string} conversationId 
         * @param {string} confirmationId 
         * @param {AiAgentToolConfirmationDecisionRequest} [aiAgentToolConfirmationDecisionRequest] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async approveAIAgentToolConfirmation(orgName: string, conversationId: string, confirmationId: string, aiAgentToolConfirmationDecisionRequest?: AiAgentToolConfirmationDecisionRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AiAgentToolConfirmationDecisionResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.approveAIAgentToolConfirmation(orgName, conversationId, confirmationId, aiAgentToolConfirmationDecisionRequest, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['AIAgentApi.approveAIAgentToolConfirmation']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * 
         * @summary Browse a generated AI diagnosis report artifact
         * @param {string} orgName 
         * @param {string} conversationId 
         * @param {string} actionId 
         * @param {string} artifactId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async browseAIAgentTurnActionArtifact(orgName: string, conversationId: string, actionId: string, artifactId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<File>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.browseAIAgentTurnActionArtifact(orgName, conversationId, actionId, artifactId, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['AIAgentApi.browseAIAgentTurnActionArtifact']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * 
         * @summary Create an AI diagnosis conversation
         * @param {string} orgName 
         * @param {AiAgentCreateConversationRequest} aiAgentCreateConversationRequest 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async createAIAgentConversation(orgName: string, aiAgentCreateConversationRequest: AiAgentCreateConversationRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AiAgentConversation>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.createAIAgentConversation(orgName, aiAgentCreateConversationRequest, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['AIAgentApi.createAIAgentConversation']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * 
         * @summary Delete an AI diagnosis conversation
         * @param {string} orgName 
         * @param {string} conversationId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async deleteAIAgentConversation(orgName: string, conversationId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AiAgentDeleteConversationResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.deleteAIAgentConversation(orgName, conversationId, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['AIAgentApi.deleteAIAgentConversation']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * 
         * @summary Download a generated AI diagnosis report artifact
         * @param {string} orgName 
         * @param {string} conversationId 
         * @param {string} actionId 
         * @param {string} artifactId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async downloadAIAgentTurnActionArtifact(orgName: string, conversationId: string, actionId: string, artifactId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<File>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.downloadAIAgentTurnActionArtifact(orgName, conversationId, actionId, artifactId, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['AIAgentApi.downloadAIAgentTurnActionArtifact']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * 
         * @summary Get an AI diagnosis conversation
         * @param {string} orgName 
         * @param {string} conversationId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getAIAgentConversation(orgName: string, conversationId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AiAgentConversation>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getAIAgentConversation(orgName, conversationId, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['AIAgentApi.getAIAgentConversation']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * 
         * @summary Get AI diagnosis agent status
         * @param {string} orgName 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getAIAgentStatus(orgName: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AiAgentRuntimeStatus>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getAIAgentStatus(orgName, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['AIAgentApi.getAIAgentStatus']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * 
         * @summary Get one stable AI diagnosis turn process action
         * @param {string} orgName 
         * @param {string} conversationId 
         * @param {string} actionId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async getAIAgentTurnAction(orgName: string, conversationId: string, actionId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AiAgentTurnAction>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.getAIAgentTurnAction(orgName, conversationId, actionId, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['AIAgentApi.getAIAgentTurnAction']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * 
         * @summary List AI diagnosis conversations
         * @param {string} orgName 
         * @param {number} [limit] 
         * @param {string} [after] 
         * @param {string} [clusterName] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async listAIAgentConversations(orgName: string, limit?: number, after?: string, clusterName?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AiAgentConversationList>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.listAIAgentConversations(orgName, limit, after, clusterName, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['AIAgentApi.listAIAgentConversations']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * 
         * @summary List AI diagnosis conversation messages
         * @param {string} orgName 
         * @param {string} conversationId 
         * @param {string} [after] 
         * @param {number} [limit] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async listAIAgentMessages(orgName: string, conversationId: string, after?: string, limit?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AiAgentMessageList>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.listAIAgentMessages(orgName, conversationId, after, limit, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['AIAgentApi.listAIAgentMessages']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * 
         * @summary List stable AI diagnosis turn process actions
         * @param {string} orgName 
         * @param {string} conversationId 
         * @param {string} [turnId] 
         * @param {string} [after] 
         * @param {number} [limit] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async listAIAgentTurnActions(orgName: string, conversationId: string, turnId?: string, after?: string, limit?: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AiAgentTurnActionList>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.listAIAgentTurnActions(orgName, conversationId, turnId, after, limit, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['AIAgentApi.listAIAgentTurnActions']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * 
         * @summary Reject one AI diagnosis tool confirmation
         * @param {string} orgName 
         * @param {string} conversationId 
         * @param {string} confirmationId 
         * @param {AiAgentToolConfirmationDecisionRequest} [aiAgentToolConfirmationDecisionRequest] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async rejectAIAgentToolConfirmation(orgName: string, conversationId: string, confirmationId: string, aiAgentToolConfirmationDecisionRequest?: AiAgentToolConfirmationDecisionRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AiAgentToolConfirmationDecisionResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.rejectAIAgentToolConfirmation(orgName, conversationId, confirmationId, aiAgentToolConfirmationDecisionRequest, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['AIAgentApi.rejectAIAgentToolConfirmation']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * 
         * @summary Send a user message and start or continue AI diagnosis
         * @param {string} orgName 
         * @param {string} conversationId 
         * @param {AiAgentSendMessageRequest} aiAgentSendMessageRequest 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async sendAIAgentMessage(orgName: string, conversationId: string, aiAgentSendMessageRequest: AiAgentSendMessageRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AiAgentSendMessageResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.sendAIAgentMessage(orgName, conversationId, aiAgentSendMessageRequest, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['AIAgentApi.sendAIAgentMessage']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * 
         * @summary Stop the current AI diagnosis turn
         * @param {string} orgName 
         * @param {string} conversationId 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async stopAIAgentConversation(orgName: string, conversationId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AiAgentStopConversationResponse>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.stopAIAgentConversation(orgName, conversationId, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['AIAgentApi.stopAIAgentConversation']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
        /**
         * 
         * @summary Subscribe to AI diagnosis conversation events
         * @param {string} orgName 
         * @param {string} conversationId 
         * @param {string} [after] 
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        async subscribeAIAgentConversationEvents(orgName: string, conversationId: string, after?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<AiAgentEvent>> {
            const localVarAxiosArgs = await localVarAxiosParamCreator.subscribeAIAgentConversationEvents(orgName, conversationId, after, options);
            const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
            const localVarOperationServerBasePath = operationServerMap['AIAgentApi.subscribeAIAgentConversationEvents']?.[localVarOperationServerIndex]?.url;
            return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath);
        },
    }
};

/**
 * AIAgentApi - factory interface
 * @export
 */
export const AIAgentApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
    const localVarFp = AIAgentApiFp(configuration)
    return {
        /**
         * 
         * @summary Approve one AI diagnosis tool confirmation
         * @param {AIAgentApiApproveAIAgentToolConfirmationRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        approveAIAgentToolConfirmation(requestParameters: AIAgentApiApproveAIAgentToolConfirmationRequest, options?: RawAxiosRequestConfig): AxiosPromise<AiAgentToolConfirmationDecisionResponse> {
            return localVarFp.approveAIAgentToolConfirmation(requestParameters.orgName, requestParameters.conversationId, requestParameters.confirmationId, requestParameters.aiAgentToolConfirmationDecisionRequest, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Browse a generated AI diagnosis report artifact
         * @param {AIAgentApiBrowseAIAgentTurnActionArtifactRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        browseAIAgentTurnActionArtifact(requestParameters: AIAgentApiBrowseAIAgentTurnActionArtifactRequest, options?: RawAxiosRequestConfig): AxiosPromise<File> {
            return localVarFp.browseAIAgentTurnActionArtifact(requestParameters.orgName, requestParameters.conversationId, requestParameters.actionId, requestParameters.artifactId, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Create an AI diagnosis conversation
         * @param {AIAgentApiCreateAIAgentConversationRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        createAIAgentConversation(requestParameters: AIAgentApiCreateAIAgentConversationRequest, options?: RawAxiosRequestConfig): AxiosPromise<AiAgentConversation> {
            return localVarFp.createAIAgentConversation(requestParameters.orgName, requestParameters.aiAgentCreateConversationRequest, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Delete an AI diagnosis conversation
         * @param {AIAgentApiDeleteAIAgentConversationRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        deleteAIAgentConversation(requestParameters: AIAgentApiDeleteAIAgentConversationRequest, options?: RawAxiosRequestConfig): AxiosPromise<AiAgentDeleteConversationResponse> {
            return localVarFp.deleteAIAgentConversation(requestParameters.orgName, requestParameters.conversationId, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Download a generated AI diagnosis report artifact
         * @param {AIAgentApiDownloadAIAgentTurnActionArtifactRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        downloadAIAgentTurnActionArtifact(requestParameters: AIAgentApiDownloadAIAgentTurnActionArtifactRequest, options?: RawAxiosRequestConfig): AxiosPromise<File> {
            return localVarFp.downloadAIAgentTurnActionArtifact(requestParameters.orgName, requestParameters.conversationId, requestParameters.actionId, requestParameters.artifactId, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Get an AI diagnosis conversation
         * @param {AIAgentApiGetAIAgentConversationRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAIAgentConversation(requestParameters: AIAgentApiGetAIAgentConversationRequest, options?: RawAxiosRequestConfig): AxiosPromise<AiAgentConversation> {
            return localVarFp.getAIAgentConversation(requestParameters.orgName, requestParameters.conversationId, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Get AI diagnosis agent status
         * @param {AIAgentApiGetAIAgentStatusRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAIAgentStatus(requestParameters: AIAgentApiGetAIAgentStatusRequest, options?: RawAxiosRequestConfig): AxiosPromise<AiAgentRuntimeStatus> {
            return localVarFp.getAIAgentStatus(requestParameters.orgName, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Get one stable AI diagnosis turn process action
         * @param {AIAgentApiGetAIAgentTurnActionRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        getAIAgentTurnAction(requestParameters: AIAgentApiGetAIAgentTurnActionRequest, options?: RawAxiosRequestConfig): AxiosPromise<AiAgentTurnAction> {
            return localVarFp.getAIAgentTurnAction(requestParameters.orgName, requestParameters.conversationId, requestParameters.actionId, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary List AI diagnosis conversations
         * @param {AIAgentApiListAIAgentConversationsRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        listAIAgentConversations(requestParameters: AIAgentApiListAIAgentConversationsRequest, options?: RawAxiosRequestConfig): AxiosPromise<AiAgentConversationList> {
            return localVarFp.listAIAgentConversations(requestParameters.orgName, requestParameters.limit, requestParameters.after, requestParameters.clusterName, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary List AI diagnosis conversation messages
         * @param {AIAgentApiListAIAgentMessagesRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        listAIAgentMessages(requestParameters: AIAgentApiListAIAgentMessagesRequest, options?: RawAxiosRequestConfig): AxiosPromise<AiAgentMessageList> {
            return localVarFp.listAIAgentMessages(requestParameters.orgName, requestParameters.conversationId, requestParameters.after, requestParameters.limit, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary List stable AI diagnosis turn process actions
         * @param {AIAgentApiListAIAgentTurnActionsRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        listAIAgentTurnActions(requestParameters: AIAgentApiListAIAgentTurnActionsRequest, options?: RawAxiosRequestConfig): AxiosPromise<AiAgentTurnActionList> {
            return localVarFp.listAIAgentTurnActions(requestParameters.orgName, requestParameters.conversationId, requestParameters.turnId, requestParameters.after, requestParameters.limit, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Reject one AI diagnosis tool confirmation
         * @param {AIAgentApiRejectAIAgentToolConfirmationRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        rejectAIAgentToolConfirmation(requestParameters: AIAgentApiRejectAIAgentToolConfirmationRequest, options?: RawAxiosRequestConfig): AxiosPromise<AiAgentToolConfirmationDecisionResponse> {
            return localVarFp.rejectAIAgentToolConfirmation(requestParameters.orgName, requestParameters.conversationId, requestParameters.confirmationId, requestParameters.aiAgentToolConfirmationDecisionRequest, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Send a user message and start or continue AI diagnosis
         * @param {AIAgentApiSendAIAgentMessageRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        sendAIAgentMessage(requestParameters: AIAgentApiSendAIAgentMessageRequest, options?: RawAxiosRequestConfig): AxiosPromise<AiAgentSendMessageResponse> {
            return localVarFp.sendAIAgentMessage(requestParameters.orgName, requestParameters.conversationId, requestParameters.aiAgentSendMessageRequest, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Stop the current AI diagnosis turn
         * @param {AIAgentApiStopAIAgentConversationRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        stopAIAgentConversation(requestParameters: AIAgentApiStopAIAgentConversationRequest, options?: RawAxiosRequestConfig): AxiosPromise<AiAgentStopConversationResponse> {
            return localVarFp.stopAIAgentConversation(requestParameters.orgName, requestParameters.conversationId, options).then((request) => request(axios, basePath));
        },
        /**
         * 
         * @summary Subscribe to AI diagnosis conversation events
         * @param {AIAgentApiSubscribeAIAgentConversationEventsRequest} requestParameters Request parameters.
         * @param {*} [options] Override http request option.
         * @throws {RequiredError}
         */
        subscribeAIAgentConversationEvents(requestParameters: AIAgentApiSubscribeAIAgentConversationEventsRequest, options?: RawAxiosRequestConfig): AxiosPromise<AiAgentEvent> {
            return localVarFp.subscribeAIAgentConversationEvents(requestParameters.orgName, requestParameters.conversationId, requestParameters.after, options).then((request) => request(axios, basePath));
        },
    };
};

/**
 * AIAgentApi - interface
 * @export
 * @interface AIAgentApi
 */
export interface AIAgentApiInterface {
    /**
     * 
     * @summary Approve one AI diagnosis tool confirmation
     * @param {AIAgentApiApproveAIAgentToolConfirmationRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApiInterface
     */
    approveAIAgentToolConfirmation(requestParameters: AIAgentApiApproveAIAgentToolConfirmationRequest, options?: RawAxiosRequestConfig): AxiosPromise<AiAgentToolConfirmationDecisionResponse>;

    /**
     * 
     * @summary Browse a generated AI diagnosis report artifact
     * @param {AIAgentApiBrowseAIAgentTurnActionArtifactRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApiInterface
     */
    browseAIAgentTurnActionArtifact(requestParameters: AIAgentApiBrowseAIAgentTurnActionArtifactRequest, options?: RawAxiosRequestConfig): AxiosPromise<File>;

    /**
     * 
     * @summary Create an AI diagnosis conversation
     * @param {AIAgentApiCreateAIAgentConversationRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApiInterface
     */
    createAIAgentConversation(requestParameters: AIAgentApiCreateAIAgentConversationRequest, options?: RawAxiosRequestConfig): AxiosPromise<AiAgentConversation>;

    /**
     * 
     * @summary Delete an AI diagnosis conversation
     * @param {AIAgentApiDeleteAIAgentConversationRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApiInterface
     */
    deleteAIAgentConversation(requestParameters: AIAgentApiDeleteAIAgentConversationRequest, options?: RawAxiosRequestConfig): AxiosPromise<AiAgentDeleteConversationResponse>;

    /**
     * 
     * @summary Download a generated AI diagnosis report artifact
     * @param {AIAgentApiDownloadAIAgentTurnActionArtifactRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApiInterface
     */
    downloadAIAgentTurnActionArtifact(requestParameters: AIAgentApiDownloadAIAgentTurnActionArtifactRequest, options?: RawAxiosRequestConfig): AxiosPromise<File>;

    /**
     * 
     * @summary Get an AI diagnosis conversation
     * @param {AIAgentApiGetAIAgentConversationRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApiInterface
     */
    getAIAgentConversation(requestParameters: AIAgentApiGetAIAgentConversationRequest, options?: RawAxiosRequestConfig): AxiosPromise<AiAgentConversation>;

    /**
     * 
     * @summary Get AI diagnosis agent status
     * @param {AIAgentApiGetAIAgentStatusRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApiInterface
     */
    getAIAgentStatus(requestParameters: AIAgentApiGetAIAgentStatusRequest, options?: RawAxiosRequestConfig): AxiosPromise<AiAgentRuntimeStatus>;

    /**
     * 
     * @summary Get one stable AI diagnosis turn process action
     * @param {AIAgentApiGetAIAgentTurnActionRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApiInterface
     */
    getAIAgentTurnAction(requestParameters: AIAgentApiGetAIAgentTurnActionRequest, options?: RawAxiosRequestConfig): AxiosPromise<AiAgentTurnAction>;

    /**
     * 
     * @summary List AI diagnosis conversations
     * @param {AIAgentApiListAIAgentConversationsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApiInterface
     */
    listAIAgentConversations(requestParameters: AIAgentApiListAIAgentConversationsRequest, options?: RawAxiosRequestConfig): AxiosPromise<AiAgentConversationList>;

    /**
     * 
     * @summary List AI diagnosis conversation messages
     * @param {AIAgentApiListAIAgentMessagesRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApiInterface
     */
    listAIAgentMessages(requestParameters: AIAgentApiListAIAgentMessagesRequest, options?: RawAxiosRequestConfig): AxiosPromise<AiAgentMessageList>;

    /**
     * 
     * @summary List stable AI diagnosis turn process actions
     * @param {AIAgentApiListAIAgentTurnActionsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApiInterface
     */
    listAIAgentTurnActions(requestParameters: AIAgentApiListAIAgentTurnActionsRequest, options?: RawAxiosRequestConfig): AxiosPromise<AiAgentTurnActionList>;

    /**
     * 
     * @summary Reject one AI diagnosis tool confirmation
     * @param {AIAgentApiRejectAIAgentToolConfirmationRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApiInterface
     */
    rejectAIAgentToolConfirmation(requestParameters: AIAgentApiRejectAIAgentToolConfirmationRequest, options?: RawAxiosRequestConfig): AxiosPromise<AiAgentToolConfirmationDecisionResponse>;

    /**
     * 
     * @summary Send a user message and start or continue AI diagnosis
     * @param {AIAgentApiSendAIAgentMessageRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApiInterface
     */
    sendAIAgentMessage(requestParameters: AIAgentApiSendAIAgentMessageRequest, options?: RawAxiosRequestConfig): AxiosPromise<AiAgentSendMessageResponse>;

    /**
     * 
     * @summary Stop the current AI diagnosis turn
     * @param {AIAgentApiStopAIAgentConversationRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApiInterface
     */
    stopAIAgentConversation(requestParameters: AIAgentApiStopAIAgentConversationRequest, options?: RawAxiosRequestConfig): AxiosPromise<AiAgentStopConversationResponse>;

    /**
     * 
     * @summary Subscribe to AI diagnosis conversation events
     * @param {AIAgentApiSubscribeAIAgentConversationEventsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApiInterface
     */
    subscribeAIAgentConversationEvents(requestParameters: AIAgentApiSubscribeAIAgentConversationEventsRequest, options?: RawAxiosRequestConfig): AxiosPromise<AiAgentEvent>;

}

/**
 * Request parameters for approveAIAgentToolConfirmation operation in AIAgentApi.
 * @export
 * @interface AIAgentApiApproveAIAgentToolConfirmationRequest
 */
export interface AIAgentApiApproveAIAgentToolConfirmationRequest {
    /**
     * 
     * @type {string}
     * @memberof AIAgentApiApproveAIAgentToolConfirmation
     */
    readonly orgName: string

    /**
     * 
     * @type {string}
     * @memberof AIAgentApiApproveAIAgentToolConfirmation
     */
    readonly conversationId: string

    /**
     * 
     * @type {string}
     * @memberof AIAgentApiApproveAIAgentToolConfirmation
     */
    readonly confirmationId: string

    /**
     * 
     * @type {AiAgentToolConfirmationDecisionRequest}
     * @memberof AIAgentApiApproveAIAgentToolConfirmation
     */
    readonly aiAgentToolConfirmationDecisionRequest?: AiAgentToolConfirmationDecisionRequest
}

/**
 * Request parameters for browseAIAgentTurnActionArtifact operation in AIAgentApi.
 * @export
 * @interface AIAgentApiBrowseAIAgentTurnActionArtifactRequest
 */
export interface AIAgentApiBrowseAIAgentTurnActionArtifactRequest {
    /**
     * 
     * @type {string}
     * @memberof AIAgentApiBrowseAIAgentTurnActionArtifact
     */
    readonly orgName: string

    /**
     * 
     * @type {string}
     * @memberof AIAgentApiBrowseAIAgentTurnActionArtifact
     */
    readonly conversationId: string

    /**
     * 
     * @type {string}
     * @memberof AIAgentApiBrowseAIAgentTurnActionArtifact
     */
    readonly actionId: string

    /**
     * 
     * @type {string}
     * @memberof AIAgentApiBrowseAIAgentTurnActionArtifact
     */
    readonly artifactId: string
}

/**
 * Request parameters for createAIAgentConversation operation in AIAgentApi.
 * @export
 * @interface AIAgentApiCreateAIAgentConversationRequest
 */
export interface AIAgentApiCreateAIAgentConversationRequest {
    /**
     * 
     * @type {string}
     * @memberof AIAgentApiCreateAIAgentConversation
     */
    readonly orgName: string

    /**
     * 
     * @type {AiAgentCreateConversationRequest}
     * @memberof AIAgentApiCreateAIAgentConversation
     */
    readonly aiAgentCreateConversationRequest: AiAgentCreateConversationRequest
}

/**
 * Request parameters for deleteAIAgentConversation operation in AIAgentApi.
 * @export
 * @interface AIAgentApiDeleteAIAgentConversationRequest
 */
export interface AIAgentApiDeleteAIAgentConversationRequest {
    /**
     * 
     * @type {string}
     * @memberof AIAgentApiDeleteAIAgentConversation
     */
    readonly orgName: string

    /**
     * 
     * @type {string}
     * @memberof AIAgentApiDeleteAIAgentConversation
     */
    readonly conversationId: string
}

/**
 * Request parameters for downloadAIAgentTurnActionArtifact operation in AIAgentApi.
 * @export
 * @interface AIAgentApiDownloadAIAgentTurnActionArtifactRequest
 */
export interface AIAgentApiDownloadAIAgentTurnActionArtifactRequest {
    /**
     * 
     * @type {string}
     * @memberof AIAgentApiDownloadAIAgentTurnActionArtifact
     */
    readonly orgName: string

    /**
     * 
     * @type {string}
     * @memberof AIAgentApiDownloadAIAgentTurnActionArtifact
     */
    readonly conversationId: string

    /**
     * 
     * @type {string}
     * @memberof AIAgentApiDownloadAIAgentTurnActionArtifact
     */
    readonly actionId: string

    /**
     * 
     * @type {string}
     * @memberof AIAgentApiDownloadAIAgentTurnActionArtifact
     */
    readonly artifactId: string
}

/**
 * Request parameters for getAIAgentConversation operation in AIAgentApi.
 * @export
 * @interface AIAgentApiGetAIAgentConversationRequest
 */
export interface AIAgentApiGetAIAgentConversationRequest {
    /**
     * 
     * @type {string}
     * @memberof AIAgentApiGetAIAgentConversation
     */
    readonly orgName: string

    /**
     * 
     * @type {string}
     * @memberof AIAgentApiGetAIAgentConversation
     */
    readonly conversationId: string
}

/**
 * Request parameters for getAIAgentStatus operation in AIAgentApi.
 * @export
 * @interface AIAgentApiGetAIAgentStatusRequest
 */
export interface AIAgentApiGetAIAgentStatusRequest {
    /**
     * 
     * @type {string}
     * @memberof AIAgentApiGetAIAgentStatus
     */
    readonly orgName: string
}

/**
 * Request parameters for getAIAgentTurnAction operation in AIAgentApi.
 * @export
 * @interface AIAgentApiGetAIAgentTurnActionRequest
 */
export interface AIAgentApiGetAIAgentTurnActionRequest {
    /**
     * 
     * @type {string}
     * @memberof AIAgentApiGetAIAgentTurnAction
     */
    readonly orgName: string

    /**
     * 
     * @type {string}
     * @memberof AIAgentApiGetAIAgentTurnAction
     */
    readonly conversationId: string

    /**
     * 
     * @type {string}
     * @memberof AIAgentApiGetAIAgentTurnAction
     */
    readonly actionId: string
}

/**
 * Request parameters for listAIAgentConversations operation in AIAgentApi.
 * @export
 * @interface AIAgentApiListAIAgentConversationsRequest
 */
export interface AIAgentApiListAIAgentConversationsRequest {
    /**
     * 
     * @type {string}
     * @memberof AIAgentApiListAIAgentConversations
     */
    readonly orgName: string

    /**
     * 
     * @type {number}
     * @memberof AIAgentApiListAIAgentConversations
     */
    readonly limit?: number

    /**
     * 
     * @type {string}
     * @memberof AIAgentApiListAIAgentConversations
     */
    readonly after?: string

    /**
     * 
     * @type {string}
     * @memberof AIAgentApiListAIAgentConversations
     */
    readonly clusterName?: string
}

/**
 * Request parameters for listAIAgentMessages operation in AIAgentApi.
 * @export
 * @interface AIAgentApiListAIAgentMessagesRequest
 */
export interface AIAgentApiListAIAgentMessagesRequest {
    /**
     * 
     * @type {string}
     * @memberof AIAgentApiListAIAgentMessages
     */
    readonly orgName: string

    /**
     * 
     * @type {string}
     * @memberof AIAgentApiListAIAgentMessages
     */
    readonly conversationId: string

    /**
     * 
     * @type {string}
     * @memberof AIAgentApiListAIAgentMessages
     */
    readonly after?: string

    /**
     * 
     * @type {number}
     * @memberof AIAgentApiListAIAgentMessages
     */
    readonly limit?: number
}

/**
 * Request parameters for listAIAgentTurnActions operation in AIAgentApi.
 * @export
 * @interface AIAgentApiListAIAgentTurnActionsRequest
 */
export interface AIAgentApiListAIAgentTurnActionsRequest {
    /**
     * 
     * @type {string}
     * @memberof AIAgentApiListAIAgentTurnActions
     */
    readonly orgName: string

    /**
     * 
     * @type {string}
     * @memberof AIAgentApiListAIAgentTurnActions
     */
    readonly conversationId: string

    /**
     * 
     * @type {string}
     * @memberof AIAgentApiListAIAgentTurnActions
     */
    readonly turnId?: string

    /**
     * 
     * @type {string}
     * @memberof AIAgentApiListAIAgentTurnActions
     */
    readonly after?: string

    /**
     * 
     * @type {number}
     * @memberof AIAgentApiListAIAgentTurnActions
     */
    readonly limit?: number
}

/**
 * Request parameters for rejectAIAgentToolConfirmation operation in AIAgentApi.
 * @export
 * @interface AIAgentApiRejectAIAgentToolConfirmationRequest
 */
export interface AIAgentApiRejectAIAgentToolConfirmationRequest {
    /**
     * 
     * @type {string}
     * @memberof AIAgentApiRejectAIAgentToolConfirmation
     */
    readonly orgName: string

    /**
     * 
     * @type {string}
     * @memberof AIAgentApiRejectAIAgentToolConfirmation
     */
    readonly conversationId: string

    /**
     * 
     * @type {string}
     * @memberof AIAgentApiRejectAIAgentToolConfirmation
     */
    readonly confirmationId: string

    /**
     * 
     * @type {AiAgentToolConfirmationDecisionRequest}
     * @memberof AIAgentApiRejectAIAgentToolConfirmation
     */
    readonly aiAgentToolConfirmationDecisionRequest?: AiAgentToolConfirmationDecisionRequest
}

/**
 * Request parameters for sendAIAgentMessage operation in AIAgentApi.
 * @export
 * @interface AIAgentApiSendAIAgentMessageRequest
 */
export interface AIAgentApiSendAIAgentMessageRequest {
    /**
     * 
     * @type {string}
     * @memberof AIAgentApiSendAIAgentMessage
     */
    readonly orgName: string

    /**
     * 
     * @type {string}
     * @memberof AIAgentApiSendAIAgentMessage
     */
    readonly conversationId: string

    /**
     * 
     * @type {AiAgentSendMessageRequest}
     * @memberof AIAgentApiSendAIAgentMessage
     */
    readonly aiAgentSendMessageRequest: AiAgentSendMessageRequest
}

/**
 * Request parameters for stopAIAgentConversation operation in AIAgentApi.
 * @export
 * @interface AIAgentApiStopAIAgentConversationRequest
 */
export interface AIAgentApiStopAIAgentConversationRequest {
    /**
     * 
     * @type {string}
     * @memberof AIAgentApiStopAIAgentConversation
     */
    readonly orgName: string

    /**
     * 
     * @type {string}
     * @memberof AIAgentApiStopAIAgentConversation
     */
    readonly conversationId: string
}

/**
 * Request parameters for subscribeAIAgentConversationEvents operation in AIAgentApi.
 * @export
 * @interface AIAgentApiSubscribeAIAgentConversationEventsRequest
 */
export interface AIAgentApiSubscribeAIAgentConversationEventsRequest {
    /**
     * 
     * @type {string}
     * @memberof AIAgentApiSubscribeAIAgentConversationEvents
     */
    readonly orgName: string

    /**
     * 
     * @type {string}
     * @memberof AIAgentApiSubscribeAIAgentConversationEvents
     */
    readonly conversationId: string

    /**
     * 
     * @type {string}
     * @memberof AIAgentApiSubscribeAIAgentConversationEvents
     */
    readonly after?: string
}

/**
 * AIAgentApi - object-oriented interface
 * @export
 * @class AIAgentApi
 * @extends {BaseAPI}
 */
export class AIAgentApi extends BaseAPI implements AIAgentApiInterface {
    /**
     * 
     * @summary Approve one AI diagnosis tool confirmation
     * @param {AIAgentApiApproveAIAgentToolConfirmationRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApi
     */
    public approveAIAgentToolConfirmation(requestParameters: AIAgentApiApproveAIAgentToolConfirmationRequest, options?: RawAxiosRequestConfig) {
        return AIAgentApiFp(this.configuration).approveAIAgentToolConfirmation(requestParameters.orgName, requestParameters.conversationId, requestParameters.confirmationId, requestParameters.aiAgentToolConfirmationDecisionRequest, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Browse a generated AI diagnosis report artifact
     * @param {AIAgentApiBrowseAIAgentTurnActionArtifactRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApi
     */
    public browseAIAgentTurnActionArtifact(requestParameters: AIAgentApiBrowseAIAgentTurnActionArtifactRequest, options?: RawAxiosRequestConfig) {
        return AIAgentApiFp(this.configuration).browseAIAgentTurnActionArtifact(requestParameters.orgName, requestParameters.conversationId, requestParameters.actionId, requestParameters.artifactId, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Create an AI diagnosis conversation
     * @param {AIAgentApiCreateAIAgentConversationRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApi
     */
    public createAIAgentConversation(requestParameters: AIAgentApiCreateAIAgentConversationRequest, options?: RawAxiosRequestConfig) {
        return AIAgentApiFp(this.configuration).createAIAgentConversation(requestParameters.orgName, requestParameters.aiAgentCreateConversationRequest, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Delete an AI diagnosis conversation
     * @param {AIAgentApiDeleteAIAgentConversationRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApi
     */
    public deleteAIAgentConversation(requestParameters: AIAgentApiDeleteAIAgentConversationRequest, options?: RawAxiosRequestConfig) {
        return AIAgentApiFp(this.configuration).deleteAIAgentConversation(requestParameters.orgName, requestParameters.conversationId, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Download a generated AI diagnosis report artifact
     * @param {AIAgentApiDownloadAIAgentTurnActionArtifactRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApi
     */
    public downloadAIAgentTurnActionArtifact(requestParameters: AIAgentApiDownloadAIAgentTurnActionArtifactRequest, options?: RawAxiosRequestConfig) {
        return AIAgentApiFp(this.configuration).downloadAIAgentTurnActionArtifact(requestParameters.orgName, requestParameters.conversationId, requestParameters.actionId, requestParameters.artifactId, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Get an AI diagnosis conversation
     * @param {AIAgentApiGetAIAgentConversationRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApi
     */
    public getAIAgentConversation(requestParameters: AIAgentApiGetAIAgentConversationRequest, options?: RawAxiosRequestConfig) {
        return AIAgentApiFp(this.configuration).getAIAgentConversation(requestParameters.orgName, requestParameters.conversationId, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Get AI diagnosis agent status
     * @param {AIAgentApiGetAIAgentStatusRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApi
     */
    public getAIAgentStatus(requestParameters: AIAgentApiGetAIAgentStatusRequest, options?: RawAxiosRequestConfig) {
        return AIAgentApiFp(this.configuration).getAIAgentStatus(requestParameters.orgName, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Get one stable AI diagnosis turn process action
     * @param {AIAgentApiGetAIAgentTurnActionRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApi
     */
    public getAIAgentTurnAction(requestParameters: AIAgentApiGetAIAgentTurnActionRequest, options?: RawAxiosRequestConfig) {
        return AIAgentApiFp(this.configuration).getAIAgentTurnAction(requestParameters.orgName, requestParameters.conversationId, requestParameters.actionId, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary List AI diagnosis conversations
     * @param {AIAgentApiListAIAgentConversationsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApi
     */
    public listAIAgentConversations(requestParameters: AIAgentApiListAIAgentConversationsRequest, options?: RawAxiosRequestConfig) {
        return AIAgentApiFp(this.configuration).listAIAgentConversations(requestParameters.orgName, requestParameters.limit, requestParameters.after, requestParameters.clusterName, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary List AI diagnosis conversation messages
     * @param {AIAgentApiListAIAgentMessagesRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApi
     */
    public listAIAgentMessages(requestParameters: AIAgentApiListAIAgentMessagesRequest, options?: RawAxiosRequestConfig) {
        return AIAgentApiFp(this.configuration).listAIAgentMessages(requestParameters.orgName, requestParameters.conversationId, requestParameters.after, requestParameters.limit, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary List stable AI diagnosis turn process actions
     * @param {AIAgentApiListAIAgentTurnActionsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApi
     */
    public listAIAgentTurnActions(requestParameters: AIAgentApiListAIAgentTurnActionsRequest, options?: RawAxiosRequestConfig) {
        return AIAgentApiFp(this.configuration).listAIAgentTurnActions(requestParameters.orgName, requestParameters.conversationId, requestParameters.turnId, requestParameters.after, requestParameters.limit, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Reject one AI diagnosis tool confirmation
     * @param {AIAgentApiRejectAIAgentToolConfirmationRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApi
     */
    public rejectAIAgentToolConfirmation(requestParameters: AIAgentApiRejectAIAgentToolConfirmationRequest, options?: RawAxiosRequestConfig) {
        return AIAgentApiFp(this.configuration).rejectAIAgentToolConfirmation(requestParameters.orgName, requestParameters.conversationId, requestParameters.confirmationId, requestParameters.aiAgentToolConfirmationDecisionRequest, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Send a user message and start or continue AI diagnosis
     * @param {AIAgentApiSendAIAgentMessageRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApi
     */
    public sendAIAgentMessage(requestParameters: AIAgentApiSendAIAgentMessageRequest, options?: RawAxiosRequestConfig) {
        return AIAgentApiFp(this.configuration).sendAIAgentMessage(requestParameters.orgName, requestParameters.conversationId, requestParameters.aiAgentSendMessageRequest, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Stop the current AI diagnosis turn
     * @param {AIAgentApiStopAIAgentConversationRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApi
     */
    public stopAIAgentConversation(requestParameters: AIAgentApiStopAIAgentConversationRequest, options?: RawAxiosRequestConfig) {
        return AIAgentApiFp(this.configuration).stopAIAgentConversation(requestParameters.orgName, requestParameters.conversationId, options).then((request) => request(this.axios, this.basePath));
    }

    /**
     * 
     * @summary Subscribe to AI diagnosis conversation events
     * @param {AIAgentApiSubscribeAIAgentConversationEventsRequest} requestParameters Request parameters.
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof AIAgentApi
     */
    public subscribeAIAgentConversationEvents(requestParameters: AIAgentApiSubscribeAIAgentConversationEventsRequest, options?: RawAxiosRequestConfig) {
        return AIAgentApiFp(this.configuration).subscribeAIAgentConversationEvents(requestParameters.orgName, requestParameters.conversationId, requestParameters.after, options).then((request) => request(this.axios, this.basePath));
    }
}

