{"version":3,"sources":["../sdk/runtime.ts","../sdk/models/AsyncDownloadScanRequest.ts","../sdk/models/AsyncS3ScanRequest.ts","../sdk/models/CallbackFailure.ts","../sdk/models/CallbackFailures.ts","../sdk/models/ScanResult.ts","../sdk/models/SyncDownloadScanRequest.ts","../sdk/models/SyncS3ScanRequest.ts","../sdk/models/UsageQuota.ts","../sdk/models/Usage.ts","../sdk/models/Whoami.ts","../sdk/apis/AttachmentAVApi.ts"],"sourcesContent":["/* tslint:disable */\n/* eslint-disable */\n/**\n * attachmentAV\n * An SDK to integrate virus and malware scan capabilities into JavaScript / TypeScript applications. Scan files for viruses, trojans, and other kinds of malware with attachmentAV powered by Sophos.\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nexport const BASE_PATH = \"https://eu.developer.attachmentav.com/v1\".replace(/\\/+$/, \"\");\n\nexport interface ConfigurationParameters {\n    basePath?: string; // override base path\n    fetchApi?: FetchAPI; // override for fetch implementation\n    middleware?: Middleware[]; // middleware to apply before/after fetch requests\n    queryParamsStringify?: (params: HTTPQuery) => string; // stringify function for query strings\n    username?: string; // parameter for basic security\n    password?: string; // parameter for basic security\n    apiKey?: string | Promise<string> | ((name: string) => string | Promise<string>); // parameter for apiKey security\n    accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string | Promise<string>); // parameter for oauth2 security\n    headers?: HTTPHeaders; //header params we want to use on every request\n    credentials?: RequestCredentials; //value for the credentials param we want to use on each request\n}\n\nexport class Configuration {\n    constructor(private configuration: ConfigurationParameters = {}) {}\n\n    set config(configuration: Configuration) {\n        this.configuration = configuration;\n    }\n\n    get basePath(): string {\n        return this.configuration.basePath != null ? this.configuration.basePath : BASE_PATH;\n    }\n\n    get fetchApi(): FetchAPI | undefined {\n        return this.configuration.fetchApi;\n    }\n\n    get middleware(): Middleware[] {\n        return this.configuration.middleware || [];\n    }\n\n    get queryParamsStringify(): (params: HTTPQuery) => string {\n        return this.configuration.queryParamsStringify || querystring;\n    }\n\n    get username(): string | undefined {\n        return this.configuration.username;\n    }\n\n    get password(): string | undefined {\n        return this.configuration.password;\n    }\n\n    get apiKey(): ((name: string) => string | Promise<string>) | undefined {\n        const apiKey = this.configuration.apiKey;\n        if (apiKey) {\n            return typeof apiKey === 'function' ? apiKey : () => apiKey;\n        }\n        return undefined;\n    }\n\n    get accessToken(): ((name?: string, scopes?: string[]) => string | Promise<string>) | undefined {\n        const accessToken = this.configuration.accessToken;\n        if (accessToken) {\n            return typeof accessToken === 'function' ? accessToken : async () => accessToken;\n        }\n        return undefined;\n    }\n\n    get headers(): HTTPHeaders | undefined {\n        return this.configuration.headers;\n    }\n\n    get credentials(): RequestCredentials | undefined {\n        return this.configuration.credentials;\n    }\n}\n\nexport const DefaultConfig = new Configuration();\n\n/**\n * This is the base class for all generated API classes.\n */\nexport class BaseAPI {\n\n    private static readonly jsonRegex = /^(:?application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(:?;.*)?$/i;\n    private middleware: Middleware[];\n\n    constructor(protected configuration = DefaultConfig) {\n        this.middleware = configuration.middleware;\n    }\n\n    withMiddleware<T extends BaseAPI>(this: T, ...middlewares: Middleware[]) {\n        const next = this.clone<T>();\n        next.middleware = next.middleware.concat(...middlewares);\n        return next;\n    }\n\n    withPreMiddleware<T extends BaseAPI>(this: T, ...preMiddlewares: Array<Middleware['pre']>) {\n        const middlewares = preMiddlewares.map((pre) => ({ pre }));\n        return this.withMiddleware<T>(...middlewares);\n    }\n\n    withPostMiddleware<T extends BaseAPI>(this: T, ...postMiddlewares: Array<Middleware['post']>) {\n        const middlewares = postMiddlewares.map((post) => ({ post }));\n        return this.withMiddleware<T>(...middlewares);\n    }\n\n    /**\n     * Check if the given MIME is a JSON MIME.\n     * JSON MIME examples:\n     *   application/json\n     *   application/json; charset=UTF8\n     *   APPLICATION/JSON\n     *   application/vnd.company+json\n     * @param mime - MIME (Multipurpose Internet Mail Extensions)\n     * @return True if the given MIME is JSON, false otherwise.\n     */\n    protected isJsonMime(mime: string | null | undefined): boolean {\n        if (!mime) {\n            return false;\n        }\n        return BaseAPI.jsonRegex.test(mime);\n    }\n\n    protected async request(context: RequestOpts, initOverrides?: RequestInit | InitOverrideFunction): Promise<Response> {\n        const { url, init } = await this.createFetchParams(context, initOverrides);\n        const response = await this.fetchApi(url, init);\n        if (response && (response.status >= 200 && response.status < 300)) {\n            return response;\n        }\n        throw new ResponseError(response, 'Response returned an error code');\n    }\n\n    private async createFetchParams(context: RequestOpts, initOverrides?: RequestInit | InitOverrideFunction) {\n        let url = this.configuration.basePath + context.path;\n        if (context.query !== undefined && Object.keys(context.query).length !== 0) {\n            // only add the querystring to the URL if there are query parameters.\n            // this is done to avoid urls ending with a \"?\" character which buggy webservers\n            // do not handle correctly sometimes.\n            url += '?' + this.configuration.queryParamsStringify(context.query);\n        }\n\n        const headers = Object.assign({}, this.configuration.headers, context.headers);\n        Object.keys(headers).forEach(key => headers[key] === undefined ? delete headers[key] : {});\n\n        const initOverrideFn =\n            typeof initOverrides === \"function\"\n                ? initOverrides\n                : async () => initOverrides;\n\n        const initParams = {\n            method: context.method,\n            headers,\n            body: context.body,\n            credentials: this.configuration.credentials,\n        };\n\n        const overriddenInit: RequestInit = {\n            ...initParams,\n            ...(await initOverrideFn({\n                init: initParams,\n                context,\n            }))\n        };\n\n        let body: any;\n        if (isFormData(overriddenInit.body)\n            || (overriddenInit.body instanceof URLSearchParams)\n            || isBlob(overriddenInit.body)) {\n          body = overriddenInit.body;\n        } else if (this.isJsonMime(headers['Content-Type'])) {\n          body = JSON.stringify(overriddenInit.body);\n        } else {\n          body = overriddenInit.body;\n        }\n\n        const init: RequestInit = {\n            ...overriddenInit,\n            body\n        };\n\n        return { url, init };\n    }\n\n    private fetchApi = async (url: string, init: RequestInit) => {\n        let fetchParams = { url, init };\n        for (const middleware of this.middleware) {\n            if (middleware.pre) {\n                fetchParams = await middleware.pre({\n                    fetch: this.fetchApi,\n                    ...fetchParams,\n                }) || fetchParams;\n            }\n        }\n        let response: Response | undefined = undefined;\n        try {\n            response = await (this.configuration.fetchApi || fetch)(fetchParams.url, fetchParams.init);\n        } catch (e) {\n            for (const middleware of this.middleware) {\n                if (middleware.onError) {\n                    response = await middleware.onError({\n                        fetch: this.fetchApi,\n                        url: fetchParams.url,\n                        init: fetchParams.init,\n                        error: e,\n                        response: response ? response.clone() : undefined,\n                    }) || response;\n                }\n            }\n            if (response === undefined) {\n              if (e instanceof Error) {\n                throw new FetchError(e, 'The request failed and the interceptors did not return an alternative response');\n              } else {\n                throw e;\n              }\n            }\n        }\n        for (const middleware of this.middleware) {\n            if (middleware.post) {\n                response = await middleware.post({\n                    fetch: this.fetchApi,\n                    url: fetchParams.url,\n                    init: fetchParams.init,\n                    response: response.clone(),\n                }) || response;\n            }\n        }\n        return response;\n    }\n\n    /**\n     * Create a shallow clone of `this` by constructing a new instance\n     * and then shallow cloning data members.\n     */\n    private clone<T extends BaseAPI>(this: T): T {\n        const constructor = this.constructor as any;\n        const next = new constructor(this.configuration);\n        next.middleware = this.middleware.slice();\n        return next;\n    }\n};\n\nfunction isBlob(value: any): value is Blob {\n    return typeof Blob !== 'undefined' && value instanceof Blob;\n}\n\nfunction isFormData(value: any): value is FormData {\n    return typeof FormData !== \"undefined\" && value instanceof FormData;\n}\n\nexport class ResponseError extends Error {\n    override name: \"ResponseError\" = \"ResponseError\";\n    constructor(public response: Response, msg?: string) {\n        super(msg);\n\n        // restore prototype chain\n        const actualProto = new.target.prototype;\n        if (Object.setPrototypeOf) {\n            Object.setPrototypeOf(this, actualProto);\n        }\n    }\n}\n\nexport class FetchError extends Error {\n    override name: \"FetchError\" = \"FetchError\";\n    constructor(public cause: Error, msg?: string) {\n        super(msg);\n\n        // restore prototype chain\n        const actualProto = new.target.prototype;\n        if (Object.setPrototypeOf) {\n            Object.setPrototypeOf(this, actualProto);\n        }\n    }\n}\n\nexport class RequiredError extends Error {\n    override name: \"RequiredError\" = \"RequiredError\";\n    constructor(public field: string, msg?: string) {\n        super(msg);\n\n        // restore prototype chain\n        const actualProto = new.target.prototype;\n        if (Object.setPrototypeOf) {\n            Object.setPrototypeOf(this, actualProto);\n        }\n    }\n}\n\nexport const COLLECTION_FORMATS = {\n    csv: \",\",\n    ssv: \" \",\n    tsv: \"\\t\",\n    pipes: \"|\",\n};\n\nexport type FetchAPI = WindowOrWorkerGlobalScope['fetch'];\n\nexport type Json = any;\nexport type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';\nexport type HTTPHeaders = { [key: string]: string };\nexport type HTTPQuery = { [key: string]: string | number | null | boolean | Array<string | number | null | boolean> | Set<string | number | null | boolean> | HTTPQuery };\nexport type HTTPBody = Json | FormData | URLSearchParams;\nexport type HTTPRequestInit = { headers?: HTTPHeaders; method: HTTPMethod; credentials?: RequestCredentials; body?: HTTPBody };\nexport type ModelPropertyNaming = 'camelCase' | 'snake_case' | 'PascalCase' | 'original';\n\nexport type InitOverrideFunction = (requestContext: { init: HTTPRequestInit, context: RequestOpts }) => Promise<RequestInit>\n\nexport interface FetchParams {\n    url: string;\n    init: RequestInit;\n}\n\nexport interface RequestOpts {\n    path: string;\n    method: HTTPMethod;\n    headers: HTTPHeaders;\n    query?: HTTPQuery;\n    body?: HTTPBody;\n}\n\nexport function querystring(params: HTTPQuery, prefix: string = ''): string {\n    return Object.keys(params)\n        .map(key => querystringSingleKey(key, params[key], prefix))\n        .filter(part => part.length > 0)\n        .join('&');\n}\n\nfunction querystringSingleKey(key: string, value: string | number | null | undefined | boolean | Array<string | number | null | boolean> | Set<string | number | null | boolean> | HTTPQuery, keyPrefix: string = ''): string {\n    const fullKey = keyPrefix + (keyPrefix.length ? `[${key}]` : key);\n    if (value instanceof Array) {\n        const multiValue = value.map(singleValue => encodeURIComponent(String(singleValue)))\n            .join(`&${encodeURIComponent(fullKey)}=`);\n        return `${encodeURIComponent(fullKey)}=${multiValue}`;\n    }\n    if (value instanceof Set) {\n        const valueAsArray = Array.from(value);\n        return querystringSingleKey(key, valueAsArray, keyPrefix);\n    }\n    if (value instanceof Date) {\n        return `${encodeURIComponent(fullKey)}=${encodeURIComponent(value.toISOString())}`;\n    }\n    if (value instanceof Object) {\n        return querystring(value as HTTPQuery, fullKey);\n    }\n    return `${encodeURIComponent(fullKey)}=${encodeURIComponent(String(value))}`;\n}\n\nexport function exists(json: any, key: string) {\n    const value = json[key];\n    return value !== null && value !== undefined;\n}\n\nexport function mapValues(data: any, fn: (item: any) => any) {\n    const result: { [key: string]: any } = {};\n    for (const key of Object.keys(data)) {\n        result[key] = fn(data[key]);\n    }\n    return result;\n}\n\nexport function canConsumeForm(consumes: Consume[]): boolean {\n    for (const consume of consumes) {\n        if ('multipart/form-data' === consume.contentType) {\n            return true;\n        }\n    }\n    return false;\n}\n\nexport interface Consume {\n    contentType: string;\n}\n\nexport interface RequestContext {\n    fetch: FetchAPI;\n    url: string;\n    init: RequestInit;\n}\n\nexport interface ResponseContext {\n    fetch: FetchAPI;\n    url: string;\n    init: RequestInit;\n    response: Response;\n}\n\nexport interface ErrorContext {\n    fetch: FetchAPI;\n    url: string;\n    init: RequestInit;\n    error: unknown;\n    response?: Response;\n}\n\nexport interface Middleware {\n    pre?(context: RequestContext): Promise<FetchParams | void>;\n    post?(context: ResponseContext): Promise<Response | void>;\n    onError?(context: ErrorContext): Promise<Response | void>;\n}\n\nexport interface ApiResponse<T> {\n    raw: Response;\n    value(): Promise<T>;\n}\n\nexport interface ResponseTransformer<T> {\n    (json: any): T;\n}\n\nexport class JSONApiResponse<T> {\n    constructor(public raw: Response, private transformer: ResponseTransformer<T> = (jsonValue: any) => jsonValue) {}\n\n    async value(): Promise<T> {\n        return this.transformer(await this.raw.json());\n    }\n}\n\nexport class VoidApiResponse {\n    constructor(public raw: Response) {}\n\n    async value(): Promise<void> {\n        return undefined;\n    }\n}\n\nexport class BlobApiResponse {\n    constructor(public raw: Response) {}\n\n    async value(): Promise<Blob> {\n        return await this.raw.blob();\n    };\n}\n\nexport class TextApiResponse {\n    constructor(public raw: Response) {}\n\n    async value(): Promise<string> {\n        return await this.raw.text();\n    };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * attachmentAV\n * An SDK to integrate virus and malware scan capabilities into JavaScript / TypeScript applications. Scan files for viruses, trojans, and other kinds of malware with attachmentAV powered by Sophos.\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface AsyncDownloadScanRequest\n */\nexport interface AsyncDownloadScanRequest {\n    /**\n     * \n     * @type {string}\n     * @memberof AsyncDownloadScanRequest\n     */\n    downloadUrl: string;\n    /**\n     * \n     * @type {{ [key: string]: string; }}\n     * @memberof AsyncDownloadScanRequest\n     */\n    downloadHeaders?: { [key: string]: string; };\n    /**\n     * \n     * @type {string}\n     * @memberof AsyncDownloadScanRequest\n     */\n    callbackUrl?: string;\n    /**\n     * \n     * @type {{ [key: string]: string; }}\n     * @memberof AsyncDownloadScanRequest\n     */\n    callbackHeaders?: { [key: string]: string; };\n    /**\n     * \n     * @type {string}\n     * @memberof AsyncDownloadScanRequest\n     */\n    traceId?: string;\n    /**\n     * \n     * @type {string}\n     * @memberof AsyncDownloadScanRequest\n     */\n    customData?: string;\n}\n\n/**\n * Check if a given object implements the AsyncDownloadScanRequest interface.\n */\nexport function instanceOfAsyncDownloadScanRequest(value: object): value is AsyncDownloadScanRequest {\n    if ((!('downloadUrl' in value) && !('download_url' in value)) || (value['downloadUrl'] === undefined && value['download_url'] === undefined)) return false;\n    return true;\n}\n\nexport function AsyncDownloadScanRequestFromJSON(json: any): AsyncDownloadScanRequest {\n    return AsyncDownloadScanRequestFromJSONTyped(json, false);\n}\n\nexport function AsyncDownloadScanRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): AsyncDownloadScanRequest {\n    if (json == null) {\n        return json;\n    }\n    return {\n        \n        'downloadUrl': json['download_url'],\n        'downloadHeaders': json['download_headers'] == null ? undefined : json['download_headers'],\n        'callbackUrl': json['callback_url'] == null ? undefined : json['callback_url'],\n        'callbackHeaders': json['callback_headers'] == null ? undefined : json['callback_headers'],\n        'traceId': json['trace_id'] == null ? undefined : json['trace_id'],\n        'customData': json['custom_data'] == null ? undefined : json['custom_data'],\n    };\n}\n\nexport function AsyncDownloadScanRequestToJSON(json: any): AsyncDownloadScanRequest {\n    return AsyncDownloadScanRequestToJSONTyped(json, false);\n}\n\nexport function AsyncDownloadScanRequestToJSONTyped(value?: AsyncDownloadScanRequest | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n        \n        'download_url': value['downloadUrl'],\n        'download_headers': value['downloadHeaders'],\n        'callback_url': value['callbackUrl'],\n        'callback_headers': value['callbackHeaders'],\n        'trace_id': value['traceId'],\n        'custom_data': value['customData'],\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * attachmentAV\n * An SDK to integrate virus and malware scan capabilities into JavaScript / TypeScript applications. Scan files for viruses, trojans, and other kinds of malware with attachmentAV powered by Sophos.\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface AsyncS3ScanRequest\n */\nexport interface AsyncS3ScanRequest {\n    /**\n     * \n     * @type {string}\n     * @memberof AsyncS3ScanRequest\n     */\n    bucket: string;\n    /**\n     * \n     * @type {string}\n     * @memberof AsyncS3ScanRequest\n     */\n    key: string;\n    /**\n     * \n     * @type {string}\n     * @memberof AsyncS3ScanRequest\n     */\n    version?: string;\n    /**\n     * \n     * @type {string}\n     * @memberof AsyncS3ScanRequest\n     */\n    callbackUrl?: string;\n    /**\n     * \n     * @type {{ [key: string]: string; }}\n     * @memberof AsyncS3ScanRequest\n     */\n    callbackHeaders?: { [key: string]: string; };\n    /**\n     * \n     * @type {string}\n     * @memberof AsyncS3ScanRequest\n     */\n    traceId?: string;\n    /**\n     * \n     * @type {string}\n     * @memberof AsyncS3ScanRequest\n     */\n    customData?: string;\n}\n\n/**\n * Check if a given object implements the AsyncS3ScanRequest interface.\n */\nexport function instanceOfAsyncS3ScanRequest(value: object): value is AsyncS3ScanRequest {\n    if (!('bucket' in value) || value['bucket'] === undefined) return false;\n    if (!('key' in value) || value['key'] === undefined) return false;\n    return true;\n}\n\nexport function AsyncS3ScanRequestFromJSON(json: any): AsyncS3ScanRequest {\n    return AsyncS3ScanRequestFromJSONTyped(json, false);\n}\n\nexport function AsyncS3ScanRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): AsyncS3ScanRequest {\n    if (json == null) {\n        return json;\n    }\n    return {\n        \n        'bucket': json['bucket'],\n        'key': json['key'],\n        'version': json['version'] == null ? undefined : json['version'],\n        'callbackUrl': json['callback_url'] == null ? undefined : json['callback_url'],\n        'callbackHeaders': json['callback_headers'] == null ? undefined : json['callback_headers'],\n        'traceId': json['trace_id'] == null ? undefined : json['trace_id'],\n        'customData': json['custom_data'] == null ? undefined : json['custom_data'],\n    };\n}\n\nexport function AsyncS3ScanRequestToJSON(json: any): AsyncS3ScanRequest {\n    return AsyncS3ScanRequestToJSONTyped(json, false);\n}\n\nexport function AsyncS3ScanRequestToJSONTyped(value?: AsyncS3ScanRequest | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n        \n        'bucket': value['bucket'],\n        'key': value['key'],\n        'version': value['version'],\n        'callback_url': value['callbackUrl'],\n        'callback_headers': value['callbackHeaders'],\n        'trace_id': value['traceId'],\n        'custom_data': value['customData'],\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * attachmentAV\n * An SDK to integrate virus and malware scan capabilities into JavaScript / TypeScript applications. Scan files for viruses, trojans, and other kinds of malware with attachmentAV powered by Sophos.\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface CallbackFailure\n */\nexport interface CallbackFailure {\n    /**\n     * \n     * @type {string}\n     * @memberof CallbackFailure\n     */\n    id: string;\n    /**\n     * \n     * @type {Date}\n     * @memberof CallbackFailure\n     */\n    time: Date;\n    /**\n     * \n     * @type {string}\n     * @memberof CallbackFailure\n     */\n    downloadUrl: string;\n    /**\n     * \n     * @type {string}\n     * @memberof CallbackFailure\n     */\n    callbackUrl: string;\n    /**\n     * \n     * @type {string}\n     * @memberof CallbackFailure\n     */\n    errorJson: string;\n}\n\n/**\n * Check if a given object implements the CallbackFailure interface.\n */\nexport function instanceOfCallbackFailure(value: object): value is CallbackFailure {\n    if (!('id' in value) || value['id'] === undefined) return false;\n    if (!('time' in value) || value['time'] === undefined) return false;\n    if ((!('downloadUrl' in value) && !('download_url' in value)) || (value['downloadUrl'] === undefined && value['download_url'] === undefined)) return false;\n    if ((!('callbackUrl' in value) && !('callback_url' in value)) || (value['callbackUrl'] === undefined && value['callback_url'] === undefined)) return false;\n    if ((!('errorJson' in value) && !('error_json' in value)) || (value['errorJson'] === undefined && value['error_json'] === undefined)) return false;\n    return true;\n}\n\nexport function CallbackFailureFromJSON(json: any): CallbackFailure {\n    return CallbackFailureFromJSONTyped(json, false);\n}\n\nexport function CallbackFailureFromJSONTyped(json: any, ignoreDiscriminator: boolean): CallbackFailure {\n    if (json == null) {\n        return json;\n    }\n    return {\n        \n        'id': json['id'],\n        'time': (new Date(json['time'])),\n        'downloadUrl': json['download_url'],\n        'callbackUrl': json['callback_url'],\n        'errorJson': json['error_json'],\n    };\n}\n\nexport function CallbackFailureToJSON(json: any): CallbackFailure {\n    return CallbackFailureToJSONTyped(json, false);\n}\n\nexport function CallbackFailureToJSONTyped(value?: CallbackFailure | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n        \n        'id': value['id'],\n        'time': value['time'].toISOString(),\n        'download_url': value['downloadUrl'],\n        'callback_url': value['callbackUrl'],\n        'error_json': value['errorJson'],\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * attachmentAV\n * An SDK to integrate virus and malware scan capabilities into JavaScript / TypeScript applications. Scan files for viruses, trojans, and other kinds of malware with attachmentAV powered by Sophos.\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { CallbackFailure } from './CallbackFailure';\nimport {\n    CallbackFailureFromJSON,\n    CallbackFailureFromJSONTyped,\n    CallbackFailureToJSON,\n    CallbackFailureToJSONTyped,\n} from './CallbackFailure';\n\n/**\n * \n * @export\n * @interface CallbackFailures\n */\nexport interface CallbackFailures {\n    /**\n     * \n     * @type {Array<CallbackFailure>}\n     * @memberof CallbackFailures\n     */\n    failures: Array<CallbackFailure>;\n    /**\n     * \n     * @type {string}\n     * @memberof CallbackFailures\n     */\n    nextCursor?: string;\n}\n\n/**\n * Check if a given object implements the CallbackFailures interface.\n */\nexport function instanceOfCallbackFailures(value: object): value is CallbackFailures {\n    if (!('failures' in value) || value['failures'] === undefined) return false;\n    return true;\n}\n\nexport function CallbackFailuresFromJSON(json: any): CallbackFailures {\n    return CallbackFailuresFromJSONTyped(json, false);\n}\n\nexport function CallbackFailuresFromJSONTyped(json: any, ignoreDiscriminator: boolean): CallbackFailures {\n    if (json == null) {\n        return json;\n    }\n    return {\n        \n        'failures': ((json['failures'] as Array<any>).map(CallbackFailureFromJSON)),\n        'nextCursor': json['next_cursor'] == null ? undefined : json['next_cursor'],\n    };\n}\n\nexport function CallbackFailuresToJSON(json: any): CallbackFailures {\n    return CallbackFailuresToJSONTyped(json, false);\n}\n\nexport function CallbackFailuresToJSONTyped(value?: CallbackFailures | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n        \n        'failures': ((value['failures'] as Array<any>).map(CallbackFailureToJSON)),\n        'next_cursor': value['nextCursor'],\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * attachmentAV\n * An SDK to integrate virus and malware scan capabilities into JavaScript / TypeScript applications. Scan files for viruses, trojans, and other kinds of malware with attachmentAV powered by Sophos.\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface ScanResult\n */\nexport interface ScanResult {\n    /**\n     * \n     * @type {string}\n     * @memberof ScanResult\n     */\n    status: string;\n    /**\n     * \n     * @type {string}\n     * @memberof ScanResult\n     */\n    finding?: string;\n    /**\n     * \n     * @type {number}\n     * @memberof ScanResult\n     */\n    size?: number;\n    /**\n     * \n     * @type {string}\n     * @memberof ScanResult\n     */\n    realfiletype?: string;\n}\n\n/**\n * Check if a given object implements the ScanResult interface.\n */\nexport function instanceOfScanResult(value: object): value is ScanResult {\n    if (!('status' in value) || value['status'] === undefined) return false;\n    return true;\n}\n\nexport function ScanResultFromJSON(json: any): ScanResult {\n    return ScanResultFromJSONTyped(json, false);\n}\n\nexport function ScanResultFromJSONTyped(json: any, ignoreDiscriminator: boolean): ScanResult {\n    if (json == null) {\n        return json;\n    }\n    return {\n        \n        'status': json['status'],\n        'finding': json['finding'] == null ? undefined : json['finding'],\n        'size': json['size'] == null ? undefined : json['size'],\n        'realfiletype': json['realfiletype'] == null ? undefined : json['realfiletype'],\n    };\n}\n\nexport function ScanResultToJSON(json: any): ScanResult {\n    return ScanResultToJSONTyped(json, false);\n}\n\nexport function ScanResultToJSONTyped(value?: ScanResult | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n        \n        'status': value['status'],\n        'finding': value['finding'],\n        'size': value['size'],\n        'realfiletype': value['realfiletype'],\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * attachmentAV\n * An SDK to integrate virus and malware scan capabilities into JavaScript / TypeScript applications. Scan files for viruses, trojans, and other kinds of malware with attachmentAV powered by Sophos.\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SyncDownloadScanRequest\n */\nexport interface SyncDownloadScanRequest {\n    /**\n     * \n     * @type {string}\n     * @memberof SyncDownloadScanRequest\n     */\n    downloadUrl: string;\n    /**\n     * \n     * @type {{ [key: string]: string; }}\n     * @memberof SyncDownloadScanRequest\n     */\n    downloadHeaders?: { [key: string]: string; };\n}\n\n/**\n * Check if a given object implements the SyncDownloadScanRequest interface.\n */\nexport function instanceOfSyncDownloadScanRequest(value: object): value is SyncDownloadScanRequest {\n    if ((!('downloadUrl' in value) && !('download_url' in value)) || (value['downloadUrl'] === undefined && value['download_url'] === undefined)) return false;\n    return true;\n}\n\nexport function SyncDownloadScanRequestFromJSON(json: any): SyncDownloadScanRequest {\n    return SyncDownloadScanRequestFromJSONTyped(json, false);\n}\n\nexport function SyncDownloadScanRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): SyncDownloadScanRequest {\n    if (json == null) {\n        return json;\n    }\n    return {\n        \n        'downloadUrl': json['download_url'],\n        'downloadHeaders': json['download_headers'] == null ? undefined : json['download_headers'],\n    };\n}\n\nexport function SyncDownloadScanRequestToJSON(json: any): SyncDownloadScanRequest {\n    return SyncDownloadScanRequestToJSONTyped(json, false);\n}\n\nexport function SyncDownloadScanRequestToJSONTyped(value?: SyncDownloadScanRequest | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n        \n        'download_url': value['downloadUrl'],\n        'download_headers': value['downloadHeaders'],\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * attachmentAV\n * An SDK to integrate virus and malware scan capabilities into JavaScript / TypeScript applications. Scan files for viruses, trojans, and other kinds of malware with attachmentAV powered by Sophos.\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SyncS3ScanRequest\n */\nexport interface SyncS3ScanRequest {\n    /**\n     * \n     * @type {string}\n     * @memberof SyncS3ScanRequest\n     */\n    bucket: string;\n    /**\n     * \n     * @type {string}\n     * @memberof SyncS3ScanRequest\n     */\n    key: string;\n    /**\n     * \n     * @type {string}\n     * @memberof SyncS3ScanRequest\n     */\n    version?: string;\n}\n\n/**\n * Check if a given object implements the SyncS3ScanRequest interface.\n */\nexport function instanceOfSyncS3ScanRequest(value: object): value is SyncS3ScanRequest {\n    if (!('bucket' in value) || value['bucket'] === undefined) return false;\n    if (!('key' in value) || value['key'] === undefined) return false;\n    return true;\n}\n\nexport function SyncS3ScanRequestFromJSON(json: any): SyncS3ScanRequest {\n    return SyncS3ScanRequestFromJSONTyped(json, false);\n}\n\nexport function SyncS3ScanRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): SyncS3ScanRequest {\n    if (json == null) {\n        return json;\n    }\n    return {\n        \n        'bucket': json['bucket'],\n        'key': json['key'],\n        'version': json['version'] == null ? undefined : json['version'],\n    };\n}\n\nexport function SyncS3ScanRequestToJSON(json: any): SyncS3ScanRequest {\n    return SyncS3ScanRequestToJSONTyped(json, false);\n}\n\nexport function SyncS3ScanRequestToJSONTyped(value?: SyncS3ScanRequest | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n        \n        'bucket': value['bucket'],\n        'key': value['key'],\n        'version': value['version'],\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * attachmentAV\n * An SDK to integrate virus and malware scan capabilities into JavaScript / TypeScript applications. Scan files for viruses, trojans, and other kinds of malware with attachmentAV powered by Sophos.\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface UsageQuota\n */\nexport interface UsageQuota {\n    /**\n     * \n     * @type {number}\n     * @memberof UsageQuota\n     */\n    limit: number;\n    /**\n     * \n     * @type {string}\n     * @memberof UsageQuota\n     */\n    period: string;\n}\n\n/**\n * Check if a given object implements the UsageQuota interface.\n */\nexport function instanceOfUsageQuota(value: object): value is UsageQuota {\n    if (!('limit' in value) || value['limit'] === undefined) return false;\n    if (!('period' in value) || value['period'] === undefined) return false;\n    return true;\n}\n\nexport function UsageQuotaFromJSON(json: any): UsageQuota {\n    return UsageQuotaFromJSONTyped(json, false);\n}\n\nexport function UsageQuotaFromJSONTyped(json: any, ignoreDiscriminator: boolean): UsageQuota {\n    if (json == null) {\n        return json;\n    }\n    return {\n        \n        'limit': json['limit'],\n        'period': json['period'],\n    };\n}\n\nexport function UsageQuotaToJSON(json: any): UsageQuota {\n    return UsageQuotaToJSONTyped(json, false);\n}\n\nexport function UsageQuotaToJSONTyped(value?: UsageQuota | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n        \n        'limit': value['limit'],\n        'period': value['period'],\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * attachmentAV\n * An SDK to integrate virus and malware scan capabilities into JavaScript / TypeScript applications. Scan files for viruses, trojans, and other kinds of malware with attachmentAV powered by Sophos.\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { UsageQuota } from './UsageQuota';\nimport {\n    UsageQuotaFromJSON,\n    UsageQuotaFromJSONTyped,\n    UsageQuotaToJSON,\n    UsageQuotaToJSONTyped,\n} from './UsageQuota';\n\n/**\n * \n * @export\n * @interface Usage\n */\nexport interface Usage {\n    /**\n     * \n     * @type {number}\n     * @memberof Usage\n     */\n    credits: number;\n    /**\n     * \n     * @type {UsageQuota}\n     * @memberof Usage\n     */\n    quota: UsageQuota;\n}\n\n/**\n * Check if a given object implements the Usage interface.\n */\nexport function instanceOfUsage(value: object): value is Usage {\n    if (!('credits' in value) || value['credits'] === undefined) return false;\n    if (!('quota' in value) || value['quota'] === undefined) return false;\n    return true;\n}\n\nexport function UsageFromJSON(json: any): Usage {\n    return UsageFromJSONTyped(json, false);\n}\n\nexport function UsageFromJSONTyped(json: any, ignoreDiscriminator: boolean): Usage {\n    if (json == null) {\n        return json;\n    }\n    return {\n        \n        'credits': json['credits'],\n        'quota': UsageQuotaFromJSON(json['quota']),\n    };\n}\n\nexport function UsageToJSON(json: any): Usage {\n    return UsageToJSONTyped(json, false);\n}\n\nexport function UsageToJSONTyped(value?: Usage | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n        \n        'credits': value['credits'],\n        'quota': UsageQuotaToJSON(value['quota']),\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * attachmentAV\n * An SDK to integrate virus and malware scan capabilities into JavaScript / TypeScript applications. Scan files for viruses, trojans, and other kinds of malware with attachmentAV powered by Sophos.\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface Whoami\n */\nexport interface Whoami {\n    /**\n     * \n     * @type {string}\n     * @memberof Whoami\n     */\n    tenantId: string;\n}\n\n/**\n * Check if a given object implements the Whoami interface.\n */\nexport function instanceOfWhoami(value: object): value is Whoami {\n    if (!('tenantId' in value) || value['tenantId'] === undefined) return false;\n    return true;\n}\n\nexport function WhoamiFromJSON(json: any): Whoami {\n    return WhoamiFromJSONTyped(json, false);\n}\n\nexport function WhoamiFromJSONTyped(json: any, ignoreDiscriminator: boolean): Whoami {\n    if (json == null) {\n        return json;\n    }\n    return {\n        \n        'tenantId': json['tenantId'],\n    };\n}\n\nexport function WhoamiToJSON(json: any): Whoami {\n    return WhoamiToJSONTyped(json, false);\n}\n\nexport function WhoamiToJSONTyped(value?: Whoami | null, ignoreDiscriminator: boolean = false): any {\n    if (value == null) {\n        return value;\n    }\n\n    return {\n        \n        'tenantId': value['tenantId'],\n    };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * attachmentAV\n * An SDK to integrate virus and malware scan capabilities into JavaScript / TypeScript applications. Scan files for viruses, trojans, and other kinds of malware with attachmentAV powered by Sophos.\n *\n * The version of the OpenAPI document: 1.0.0\n * \n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport * as runtime from '../runtime';\nimport {\n    type AsyncDownloadScanRequest,\n    AsyncDownloadScanRequestFromJSON,\n    AsyncDownloadScanRequestToJSON,\n} from '../models/AsyncDownloadScanRequest';\nimport {\n    type AsyncS3ScanRequest,\n    AsyncS3ScanRequestFromJSON,\n    AsyncS3ScanRequestToJSON,\n} from '../models/AsyncS3ScanRequest';\nimport {\n    type CallbackFailures,\n    CallbackFailuresFromJSON,\n    CallbackFailuresToJSON,\n} from '../models/CallbackFailures';\nimport {\n    type ScanResult,\n    ScanResultFromJSON,\n    ScanResultToJSON,\n} from '../models/ScanResult';\nimport {\n    type SyncDownloadScanRequest,\n    SyncDownloadScanRequestFromJSON,\n    SyncDownloadScanRequestToJSON,\n} from '../models/SyncDownloadScanRequest';\nimport {\n    type SyncS3ScanRequest,\n    SyncS3ScanRequestFromJSON,\n    SyncS3ScanRequestToJSON,\n} from '../models/SyncS3ScanRequest';\nimport {\n    type Usage,\n    UsageFromJSON,\n    UsageToJSON,\n} from '../models/Usage';\nimport {\n    type Whoami,\n    WhoamiFromJSON,\n    WhoamiToJSON,\n} from '../models/Whoami';\n\nexport interface CallbackFailuresGetRequest {\n    callbackUrl: string;\n    cursor?: string;\n}\n\nexport interface ScanAsyncDownloadPostRequest {\n    asyncDownloadScanRequest: AsyncDownloadScanRequest;\n}\n\nexport interface ScanAsyncResultGetRequest {\n    traceId: string;\n}\n\nexport interface ScanAsyncS3PostRequest {\n    asyncS3ScanRequest: AsyncS3ScanRequest;\n}\n\nexport interface ScanSyncBinaryPostRequest {\n    body: Blob;\n}\n\nexport interface ScanSyncDownloadPostRequest {\n    syncDownloadScanRequest: SyncDownloadScanRequest;\n}\n\nexport interface ScanSyncS3PostRequest {\n    syncS3ScanRequest: SyncS3ScanRequest;\n}\n\n/**\n * \n */\nexport class AttachmentAVApi extends runtime.BaseAPI {\n\n    /**\n     * Creates request options for callbackFailuresGet without sending the request\n     */\n    async callbackFailuresGetRequestOpts(requestParameters: CallbackFailuresGetRequest): Promise<runtime.RequestOpts> {\n        if (requestParameters['callbackUrl'] == null) {\n            throw new runtime.RequiredError(\n                'callbackUrl',\n                'Required parameter \"callbackUrl\" was null or undefined when calling callbackFailuresGet().'\n            );\n        }\n\n        const queryParameters: any = {};\n\n        if (requestParameters['callbackUrl'] != null) {\n            queryParameters['callback_url'] = requestParameters['callbackUrl'];\n        }\n\n        if (requestParameters['cursor'] != null) {\n            queryParameters['cursor'] = requestParameters['cursor'];\n        }\n\n        const headerParameters: runtime.HTTPHeaders = {};\n\n        if (this.configuration && this.configuration.apiKey) {\n            headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\"x-api-key\"); // apiKeyAuth authentication\n        }\n\n        if (this.configuration && this.configuration.accessToken) {\n            const token = this.configuration.accessToken;\n            const tokenString = await token(\"bearerAuth\", []);\n\n            if (tokenString) {\n                headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n            }\n        }\n\n        let urlPath = `/callback/failures`;\n\n        return {\n            path: urlPath,\n            method: 'GET',\n            headers: headerParameters,\n            query: queryParameters,\n        };\n    }\n\n    /**\n     * List callback failures\n     */\n    async callbackFailuresGetRaw(requestParameters: CallbackFailuresGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<CallbackFailures>> {\n        const requestOptions = await this.callbackFailuresGetRequestOpts(requestParameters);\n        const response = await this.request(requestOptions, initOverrides);\n\n        return new runtime.JSONApiResponse(response, (jsonValue) => CallbackFailuresFromJSON(jsonValue));\n    }\n\n    /**\n     * List callback failures\n     */\n    async callbackFailuresGet(requestParameters: CallbackFailuresGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<CallbackFailures> {\n        const response = await this.callbackFailuresGetRaw(requestParameters, initOverrides);\n        return await response.value();\n    }\n\n    /**\n     * Creates request options for scanAsyncDownloadPost without sending the request\n     */\n    async scanAsyncDownloadPostRequestOpts(requestParameters: ScanAsyncDownloadPostRequest): Promise<runtime.RequestOpts> {\n        if (requestParameters['asyncDownloadScanRequest'] == null) {\n            throw new runtime.RequiredError(\n                'asyncDownloadScanRequest',\n                'Required parameter \"asyncDownloadScanRequest\" was null or undefined when calling scanAsyncDownloadPost().'\n            );\n        }\n\n        const queryParameters: any = {};\n\n        const headerParameters: runtime.HTTPHeaders = {};\n\n        headerParameters['Content-Type'] = 'application/json';\n\n        if (this.configuration && this.configuration.apiKey) {\n            headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\"x-api-key\"); // apiKeyAuth authentication\n        }\n\n        if (this.configuration && this.configuration.accessToken) {\n            const token = this.configuration.accessToken;\n            const tokenString = await token(\"bearerAuth\", []);\n\n            if (tokenString) {\n                headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n            }\n        }\n\n        let urlPath = `/scan/async/download`;\n\n        return {\n            path: urlPath,\n            method: 'POST',\n            headers: headerParameters,\n            query: queryParameters,\n            body: AsyncDownloadScanRequestToJSON(requestParameters['asyncDownloadScanRequest']),\n        };\n    }\n\n    /**\n     * Download a file from a remote location (HTTP/HTTPS), scan the file, and post the scan result to your callback URL.\n     */\n    async scanAsyncDownloadPostRaw(requestParameters: ScanAsyncDownloadPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>> {\n        const requestOptions = await this.scanAsyncDownloadPostRequestOpts(requestParameters);\n        const response = await this.request(requestOptions, initOverrides);\n\n        return new runtime.VoidApiResponse(response);\n    }\n\n    /**\n     * Download a file from a remote location (HTTP/HTTPS), scan the file, and post the scan result to your callback URL.\n     */\n    async scanAsyncDownloadPost(requestParameters: ScanAsyncDownloadPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void> {\n        await this.scanAsyncDownloadPostRaw(requestParameters, initOverrides);\n    }\n\n    /**\n     * Creates request options for scanAsyncResultGet without sending the request\n     */\n    async scanAsyncResultGetRequestOpts(requestParameters: ScanAsyncResultGetRequest): Promise<runtime.RequestOpts> {\n        if (requestParameters['traceId'] == null) {\n            throw new runtime.RequiredError(\n                'traceId',\n                'Required parameter \"traceId\" was null or undefined when calling scanAsyncResultGet().'\n            );\n        }\n\n        const queryParameters: any = {};\n\n        if (requestParameters['traceId'] != null) {\n            queryParameters['trace_id'] = requestParameters['traceId'];\n        }\n\n        const headerParameters: runtime.HTTPHeaders = {};\n\n        if (this.configuration && this.configuration.apiKey) {\n            headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\"x-api-key\"); // apiKeyAuth authentication\n        }\n\n        if (this.configuration && this.configuration.accessToken) {\n            const token = this.configuration.accessToken;\n            const tokenString = await token(\"bearerAuth\", []);\n\n            if (tokenString) {\n                headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n            }\n        }\n\n        let urlPath = `/scan/async/result`;\n\n        return {\n            path: urlPath,\n            method: 'GET',\n            headers: headerParameters,\n            query: queryParameters,\n        };\n    }\n\n    /**\n     * Retrieve the scan result for scan job.\n     */\n    async scanAsyncResultGetRaw(requestParameters: ScanAsyncResultGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ScanResult>> {\n        const requestOptions = await this.scanAsyncResultGetRequestOpts(requestParameters);\n        const response = await this.request(requestOptions, initOverrides);\n\n        return new runtime.JSONApiResponse(response, (jsonValue) => ScanResultFromJSON(jsonValue));\n    }\n\n    /**\n     * Retrieve the scan result for scan job.\n     */\n    async scanAsyncResultGet(requestParameters: ScanAsyncResultGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ScanResult> {\n        const response = await this.scanAsyncResultGetRaw(requestParameters, initOverrides);\n        return await response.value();\n    }\n\n    /**\n     * Creates request options for scanAsyncS3Post without sending the request\n     */\n    async scanAsyncS3PostRequestOpts(requestParameters: ScanAsyncS3PostRequest): Promise<runtime.RequestOpts> {\n        if (requestParameters['asyncS3ScanRequest'] == null) {\n            throw new runtime.RequiredError(\n                'asyncS3ScanRequest',\n                'Required parameter \"asyncS3ScanRequest\" was null or undefined when calling scanAsyncS3Post().'\n            );\n        }\n\n        const queryParameters: any = {};\n\n        const headerParameters: runtime.HTTPHeaders = {};\n\n        headerParameters['Content-Type'] = 'application/json';\n\n        if (this.configuration && this.configuration.apiKey) {\n            headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\"x-api-key\"); // apiKeyAuth authentication\n        }\n\n        if (this.configuration && this.configuration.accessToken) {\n            const token = this.configuration.accessToken;\n            const tokenString = await token(\"bearerAuth\", []);\n\n            if (tokenString) {\n                headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n            }\n        }\n\n        let urlPath = `/scan/async/s3`;\n\n        return {\n            path: urlPath,\n            method: 'POST',\n            headers: headerParameters,\n            query: queryParameters,\n            body: AsyncS3ScanRequestToJSON(requestParameters['asyncS3ScanRequest']),\n        };\n    }\n\n    /**\n     * Download a file from S3, scan the file, and post the scan result to your callback URL. A bucket policy is required to grant attachmentAV access to the S3 objects.\n     */\n    async scanAsyncS3PostRaw(requestParameters: ScanAsyncS3PostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<void>> {\n        const requestOptions = await this.scanAsyncS3PostRequestOpts(requestParameters);\n        const response = await this.request(requestOptions, initOverrides);\n\n        return new runtime.VoidApiResponse(response);\n    }\n\n    /**\n     * Download a file from S3, scan the file, and post the scan result to your callback URL. A bucket policy is required to grant attachmentAV access to the S3 objects.\n     */\n    async scanAsyncS3Post(requestParameters: ScanAsyncS3PostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<void> {\n        await this.scanAsyncS3PostRaw(requestParameters, initOverrides);\n    }\n\n    /**\n     * Creates request options for scanSyncBinaryPost without sending the request\n     */\n    async scanSyncBinaryPostRequestOpts(requestParameters: ScanSyncBinaryPostRequest): Promise<runtime.RequestOpts> {\n        if (requestParameters['body'] == null) {\n            throw new runtime.RequiredError(\n                'body',\n                'Required parameter \"body\" was null or undefined when calling scanSyncBinaryPost().'\n            );\n        }\n\n        const queryParameters: any = {};\n\n        const headerParameters: runtime.HTTPHeaders = {};\n\n        headerParameters['Content-Type'] = 'application/octet-stream';\n\n        if (this.configuration && this.configuration.apiKey) {\n            headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\"x-api-key\"); // apiKeyAuth authentication\n        }\n\n        if (this.configuration && this.configuration.accessToken) {\n            const token = this.configuration.accessToken;\n            const tokenString = await token(\"bearerAuth\", []);\n\n            if (tokenString) {\n                headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n            }\n        }\n\n        let urlPath = `/scan/sync/binary`;\n\n        return {\n            path: urlPath,\n            method: 'POST',\n            headers: headerParameters,\n            query: queryParameters,\n            body: requestParameters['body'] as any,\n        };\n    }\n\n    /**\n     * Upload a file, scan the file, and return the scan result.\n     */\n    async scanSyncBinaryPostRaw(requestParameters: ScanSyncBinaryPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ScanResult>> {\n        const requestOptions = await this.scanSyncBinaryPostRequestOpts(requestParameters);\n        const response = await this.request(requestOptions, initOverrides);\n\n        return new runtime.JSONApiResponse(response, (jsonValue) => ScanResultFromJSON(jsonValue));\n    }\n\n    /**\n     * Upload a file, scan the file, and return the scan result.\n     */\n    async scanSyncBinaryPost(requestParameters: ScanSyncBinaryPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ScanResult> {\n        const response = await this.scanSyncBinaryPostRaw(requestParameters, initOverrides);\n        return await response.value();\n    }\n\n    /**\n     * Creates request options for scanSyncDownloadPost without sending the request\n     */\n    async scanSyncDownloadPostRequestOpts(requestParameters: ScanSyncDownloadPostRequest): Promise<runtime.RequestOpts> {\n        if (requestParameters['syncDownloadScanRequest'] == null) {\n            throw new runtime.RequiredError(\n                'syncDownloadScanRequest',\n                'Required parameter \"syncDownloadScanRequest\" was null or undefined when calling scanSyncDownloadPost().'\n            );\n        }\n\n        const queryParameters: any = {};\n\n        const headerParameters: runtime.HTTPHeaders = {};\n\n        headerParameters['Content-Type'] = 'application/json';\n\n        if (this.configuration && this.configuration.apiKey) {\n            headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\"x-api-key\"); // apiKeyAuth authentication\n        }\n\n        if (this.configuration && this.configuration.accessToken) {\n            const token = this.configuration.accessToken;\n            const tokenString = await token(\"bearerAuth\", []);\n\n            if (tokenString) {\n                headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n            }\n        }\n\n        let urlPath = `/scan/sync/download`;\n\n        return {\n            path: urlPath,\n            method: 'POST',\n            headers: headerParameters,\n            query: queryParameters,\n            body: SyncDownloadScanRequestToJSON(requestParameters['syncDownloadScanRequest']),\n        };\n    }\n\n    /**\n     * Download a file from a remote location (HTTP/HTTPS), scan the file, and return the scan result.\n     */\n    async scanSyncDownloadPostRaw(requestParameters: ScanSyncDownloadPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ScanResult>> {\n        const requestOptions = await this.scanSyncDownloadPostRequestOpts(requestParameters);\n        const response = await this.request(requestOptions, initOverrides);\n\n        return new runtime.JSONApiResponse(response, (jsonValue) => ScanResultFromJSON(jsonValue));\n    }\n\n    /**\n     * Download a file from a remote location (HTTP/HTTPS), scan the file, and return the scan result.\n     */\n    async scanSyncDownloadPost(requestParameters: ScanSyncDownloadPostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ScanResult> {\n        const response = await this.scanSyncDownloadPostRaw(requestParameters, initOverrides);\n        return await response.value();\n    }\n\n    /**\n     * Creates request options for scanSyncS3Post without sending the request\n     */\n    async scanSyncS3PostRequestOpts(requestParameters: ScanSyncS3PostRequest): Promise<runtime.RequestOpts> {\n        if (requestParameters['syncS3ScanRequest'] == null) {\n            throw new runtime.RequiredError(\n                'syncS3ScanRequest',\n                'Required parameter \"syncS3ScanRequest\" was null or undefined when calling scanSyncS3Post().'\n            );\n        }\n\n        const queryParameters: any = {};\n\n        const headerParameters: runtime.HTTPHeaders = {};\n\n        headerParameters['Content-Type'] = 'application/json';\n\n        if (this.configuration && this.configuration.apiKey) {\n            headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\"x-api-key\"); // apiKeyAuth authentication\n        }\n\n        if (this.configuration && this.configuration.accessToken) {\n            const token = this.configuration.accessToken;\n            const tokenString = await token(\"bearerAuth\", []);\n\n            if (tokenString) {\n                headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n            }\n        }\n\n        let urlPath = `/scan/sync/s3`;\n\n        return {\n            path: urlPath,\n            method: 'POST',\n            headers: headerParameters,\n            query: queryParameters,\n            body: SyncS3ScanRequestToJSON(requestParameters['syncS3ScanRequest']),\n        };\n    }\n\n    /**\n     * Download a file from S3, scan the file, and return the scan result. A bucket policy is required to grant attachmentAV access to the S3 objects.\n     */\n    async scanSyncS3PostRaw(requestParameters: ScanSyncS3PostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ScanResult>> {\n        const requestOptions = await this.scanSyncS3PostRequestOpts(requestParameters);\n        const response = await this.request(requestOptions, initOverrides);\n\n        return new runtime.JSONApiResponse(response, (jsonValue) => ScanResultFromJSON(jsonValue));\n    }\n\n    /**\n     * Download a file from S3, scan the file, and return the scan result. A bucket policy is required to grant attachmentAV access to the S3 objects.\n     */\n    async scanSyncS3Post(requestParameters: ScanSyncS3PostRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ScanResult> {\n        const response = await this.scanSyncS3PostRaw(requestParameters, initOverrides);\n        return await response.value();\n    }\n\n    /**\n     * Creates request options for usageGet without sending the request\n     */\n    async usageGetRequestOpts(): Promise<runtime.RequestOpts> {\n        const queryParameters: any = {};\n\n        const headerParameters: runtime.HTTPHeaders = {};\n\n        if (this.configuration && this.configuration.apiKey) {\n            headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\"x-api-key\"); // apiKeyAuth authentication\n        }\n\n        if (this.configuration && this.configuration.accessToken) {\n            const token = this.configuration.accessToken;\n            const tokenString = await token(\"bearerAuth\", []);\n\n            if (tokenString) {\n                headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n            }\n        }\n\n        let urlPath = `/usage`;\n\n        return {\n            path: urlPath,\n            method: 'GET',\n            headers: headerParameters,\n            query: queryParameters,\n        };\n    }\n\n    /**\n     * Get remaining credits and quota.\n     */\n    async usageGetRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Usage>> {\n        const requestOptions = await this.usageGetRequestOpts();\n        const response = await this.request(requestOptions, initOverrides);\n\n        return new runtime.JSONApiResponse(response, (jsonValue) => UsageFromJSON(jsonValue));\n    }\n\n    /**\n     * Get remaining credits and quota.\n     */\n    async usageGet(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Usage> {\n        const response = await this.usageGetRaw(initOverrides);\n        return await response.value();\n    }\n\n    /**\n     * Creates request options for whoamiGet without sending the request\n     */\n    async whoamiGetRequestOpts(): Promise<runtime.RequestOpts> {\n        const queryParameters: any = {};\n\n        const headerParameters: runtime.HTTPHeaders = {};\n\n        if (this.configuration && this.configuration.apiKey) {\n            headerParameters[\"x-api-key\"] = await this.configuration.apiKey(\"x-api-key\"); // apiKeyAuth authentication\n        }\n\n        if (this.configuration && this.configuration.accessToken) {\n            const token = this.configuration.accessToken;\n            const tokenString = await token(\"bearerAuth\", []);\n\n            if (tokenString) {\n                headerParameters[\"Authorization\"] = `Bearer ${tokenString}`;\n            }\n        }\n\n        let urlPath = `/whoami`;\n\n        return {\n            path: urlPath,\n            method: 'GET',\n            headers: headerParameters,\n            query: queryParameters,\n        };\n    }\n\n    /**\n     * Get information about yourself.\n     */\n    async whoamiGetRaw(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Whoami>> {\n        const requestOptions = await this.whoamiGetRequestOpts();\n        const response = await this.request(requestOptions, initOverrides);\n\n        return new runtime.JSONApiResponse(response, (jsonValue) => WhoamiFromJSON(jsonValue));\n    }\n\n    /**\n     * Get information about yourself.\n     */\n    async whoamiGet(initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Whoami> {\n        const response = await this.whoamiGetRaw(initOverrides);\n        return await response.value();\n    }\n\n}\n"],"mappings":"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","names":[]}