/* tslint:disable */
/* eslint-disable */
/**
 * Indexea OpenAPI
 * 这是 Indexea 搜索服务平台的 OpenAPI，用于描述平台的所有接口信息，你可以通过这个页面来了解和在线验证平台的所有接口信息。  ### Errors  本 API 使用标准的 HTTP 状态码来指示操作成功或者失败，如果失败将会在 body 中以 JSON 格式提供详细的错误信息，如下所示：  ``` {   \"error\": 404,   \"message\": \"page not found\" } ``` 
 *
 * The version of the OpenAPI document: 1.0.0
 * Contact: indexea.com@gmail.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 * as runtime from '../runtime';
import type {
  WidgetBean,
  WidgetForm,
  WidgetLogo,
} from '../models';
import {
    WidgetBeanFromJSON,
    WidgetBeanToJSON,
    WidgetFormFromJSON,
    WidgetFormToJSON,
    WidgetLogoFromJSON,
    WidgetLogoToJSON,
} from '../models';

export interface WidgetCopyRequest {
    app: string;
    widget: number;
}

export interface WidgetCopyToWidgetRequest {
    app: string;
    widget: number;
    to: number;
}

export interface WidgetCreateRequest {
    app: string;
    widgetForm: WidgetForm;
}

export interface WidgetDeleteRequest {
    app: string;
    widget: number;
    password: string;
}

export interface WidgetDeleteLogoRequest {
    app: string;
    widget: number;
}

export interface WidgetDetailRequest {
    ident: string;
    xToken?: string;
}

export interface WidgetDownloadRequest {
    app: string;
    widget: number;
    framework: string;
}

export interface WidgetGetRequest {
    app: string;
    widget: number;
}

export interface WidgetListRequest {
    app: string;
}

export interface WidgetLogoRequest {
    app: string;
    widget: number;
    logo?: Blob;
}

export interface WidgetUpdateRequest {
    app: string;
    widget: number;
    widgetForm: WidgetForm;
}

export interface WidgetUpdateSettingsRequest {
    app: string;
    widget: number;
    key: string;
    type: WidgetUpdateSettingsTypeEnum;
    value: string;
    vcode?: string;
}

/**
 * 
 */
export class WidgetsApi extends runtime.BaseAPI {

    /**
     * 复制指定组件并创建新组件
     */
    async widgetCopyRaw(requestParameters: WidgetCopyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WidgetBean>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling widgetCopy.');
        }

        if (requestParameters.widget === null || requestParameters.widget === undefined) {
            throw new runtime.RequiredError('widget','Required parameter requestParameters.widget was null or undefined when calling widgetCopy.');
        }

        const queryParameters: any = {};

        if (requestParameters.widget !== undefined) {
            queryParameters['widget'] = requestParameters.widget;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/widget/{app}/copy`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => WidgetBeanFromJSON(jsonValue));
    }

    /**
     * 复制指定组件并创建新组件
     */
    async widgetCopy(requestParameters: WidgetCopyRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WidgetBean> {
        const response = await this.widgetCopyRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 复制组件到已有组件
     */
    async widgetCopyToWidgetRaw(requestParameters: WidgetCopyToWidgetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<boolean>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling widgetCopyToWidget.');
        }

        if (requestParameters.widget === null || requestParameters.widget === undefined) {
            throw new runtime.RequiredError('widget','Required parameter requestParameters.widget was null or undefined when calling widgetCopyToWidget.');
        }

        if (requestParameters.to === null || requestParameters.to === undefined) {
            throw new runtime.RequiredError('to','Required parameter requestParameters.to was null or undefined when calling widgetCopyToWidget.');
        }

        const queryParameters: any = {};

        if (requestParameters.widget !== undefined) {
            queryParameters['widget'] = requestParameters.widget;
        }

        if (requestParameters.to !== undefined) {
            queryParameters['to'] = requestParameters.to;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/widget/{app}/copy`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'PUT',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.TextApiResponse(response) as any;
    }

    /**
     * 复制组件到已有组件
     */
    async widgetCopyToWidget(requestParameters: WidgetCopyToWidgetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<boolean> {
        const response = await this.widgetCopyToWidgetRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 创建组件
     */
    async widgetCreateRaw(requestParameters: WidgetCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WidgetBean>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling widgetCreate.');
        }

        if (requestParameters.widgetForm === null || requestParameters.widgetForm === undefined) {
            throw new runtime.RequiredError('widgetForm','Required parameter requestParameters.widgetForm was null or undefined when calling widgetCreate.');
        }

        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

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

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/widgets/{app}`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: WidgetFormToJSON(requestParameters.widgetForm),
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => WidgetBeanFromJSON(jsonValue));
    }

    /**
     * 创建组件
     */
    async widgetCreate(requestParameters: WidgetCreateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WidgetBean> {
        const response = await this.widgetCreateRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 删除组件
     */
    async widgetDeleteRaw(requestParameters: WidgetDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<boolean>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling widgetDelete.');
        }

        if (requestParameters.widget === null || requestParameters.widget === undefined) {
            throw new runtime.RequiredError('widget','Required parameter requestParameters.widget was null or undefined when calling widgetDelete.');
        }

        if (requestParameters.password === null || requestParameters.password === undefined) {
            throw new runtime.RequiredError('password','Required parameter requestParameters.password was null or undefined when calling widgetDelete.');
        }

        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const consumes: runtime.Consume[] = [
            { contentType: 'application/x-www-form-urlencoded' },
        ];
        // @ts-ignore: canConsumeForm may be unused
        const canConsumeForm = runtime.canConsumeForm(consumes);

        let formParams: { append(param: string, value: any): any };
        let useForm = false;
        if (useForm) {
            formParams = new FormData();
        } else {
            formParams = new URLSearchParams();
        }

        if (requestParameters.password !== undefined) {
            formParams.append('password', requestParameters.password as any);
        }

        const response = await this.request({
            path: `/widgets/{app}/{widget}`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))).replace(`{${"widget"}}`, encodeURIComponent(String(requestParameters.widget))),
            method: 'DELETE',
            headers: headerParameters,
            query: queryParameters,
            body: formParams,
        }, initOverrides);

        return new runtime.TextApiResponse(response) as any;
    }

    /**
     * 删除组件
     */
    async widgetDelete(requestParameters: WidgetDeleteRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<boolean> {
        const response = await this.widgetDeleteRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 删除组件 Logo
     */
    async widgetDeleteLogoRaw(requestParameters: WidgetDeleteLogoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<boolean>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling widgetDeleteLogo.');
        }

        if (requestParameters.widget === null || requestParameters.widget === undefined) {
            throw new runtime.RequiredError('widget','Required parameter requestParameters.widget was null or undefined when calling widgetDeleteLogo.');
        }

        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/widgets/{app}/{widget}/logo`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))).replace(`{${"widget"}}`, encodeURIComponent(String(requestParameters.widget))),
            method: 'DELETE',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.TextApiResponse(response) as any;
    }

    /**
     * 删除组件 Logo
     */
    async widgetDeleteLogo(requestParameters: WidgetDeleteLogoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<boolean> {
        const response = await this.widgetDeleteLogoRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 获取UI组件的所有相关信息
     */
    async widgetDetailRaw(requestParameters: WidgetDetailRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WidgetBean>> {
        if (requestParameters.ident === null || requestParameters.ident === undefined) {
            throw new runtime.RequiredError('ident','Required parameter requestParameters.ident was null or undefined when calling widgetDetail.');
        }

        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        if (requestParameters.xToken !== undefined && requestParameters.xToken !== null) {
            headerParameters['x-token'] = String(requestParameters.xToken);
        }

        const response = await this.request({
            path: `/widget/{ident}`.replace(`{${"ident"}}`, encodeURIComponent(String(requestParameters.ident))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => WidgetBeanFromJSON(jsonValue));
    }

    /**
     * 获取UI组件的所有相关信息
     */
    async widgetDetail(requestParameters: WidgetDetailRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WidgetBean> {
        const response = await this.widgetDetailRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 下载组件应用源码
     */
    async widgetDownloadRaw(requestParameters: WidgetDownloadRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Blob>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling widgetDownload.');
        }

        if (requestParameters.widget === null || requestParameters.widget === undefined) {
            throw new runtime.RequiredError('widget','Required parameter requestParameters.widget was null or undefined when calling widgetDownload.');
        }

        if (requestParameters.framework === null || requestParameters.framework === undefined) {
            throw new runtime.RequiredError('framework','Required parameter requestParameters.framework was null or undefined when calling widgetDownload.');
        }

        const queryParameters: any = {};

        if (requestParameters.framework !== undefined) {
            queryParameters['framework'] = requestParameters.framework;
        }

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/widgets/{app}/{widget}/download`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))).replace(`{${"widget"}}`, encodeURIComponent(String(requestParameters.widget))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.BlobApiResponse(response);
    }

    /**
     * 下载组件应用源码
     */
    async widgetDownload(requestParameters: WidgetDownloadRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Blob> {
        const response = await this.widgetDownloadRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 获取组件的详情
     */
    async widgetGetRaw(requestParameters: WidgetGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WidgetBean>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling widgetGet.');
        }

        if (requestParameters.widget === null || requestParameters.widget === undefined) {
            throw new runtime.RequiredError('widget','Required parameter requestParameters.widget was null or undefined when calling widgetGet.');
        }

        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/widgets/{app}/{widget}`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))).replace(`{${"widget"}}`, encodeURIComponent(String(requestParameters.widget))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => WidgetBeanFromJSON(jsonValue));
    }

    /**
     * 获取组件的详情
     */
    async widgetGet(requestParameters: WidgetGetRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WidgetBean> {
        const response = await this.widgetGetRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 获取应用的组件列表
     */
    async widgetListRaw(requestParameters: WidgetListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Array<WidgetBean>>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling widgetList.');
        }

        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/widgets/{app}`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))),
            method: 'GET',
            headers: headerParameters,
            query: queryParameters,
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => jsonValue.map(WidgetBeanFromJSON));
    }

    /**
     * 获取应用的组件列表
     */
    async widgetList(requestParameters: WidgetListRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Array<WidgetBean>> {
        const response = await this.widgetListRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 
     * 设置组件 Logo
     */
    async widgetLogoRaw(requestParameters: WidgetLogoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WidgetLogo>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling widgetLogo.');
        }

        if (requestParameters.widget === null || requestParameters.widget === undefined) {
            throw new runtime.RequiredError('widget','Required parameter requestParameters.widget was null or undefined when calling widgetLogo.');
        }

        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const consumes: runtime.Consume[] = [
            { contentType: 'multipart/form-data' },
        ];
        // @ts-ignore: canConsumeForm may be unused
        const canConsumeForm = runtime.canConsumeForm(consumes);

        let formParams: { append(param: string, value: any): any };
        let useForm = false;
        // use FormData to transmit files using content-type "multipart/form-data"
        useForm = canConsumeForm;
        if (useForm) {
            formParams = new FormData();
        } else {
            formParams = new URLSearchParams();
        }

        if (requestParameters.logo !== undefined) {
            formParams.append('logo', requestParameters.logo as any);
        }

        const response = await this.request({
            path: `/widgets/{app}/{widget}/logo`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))).replace(`{${"widget"}}`, encodeURIComponent(String(requestParameters.widget))),
            method: 'POST',
            headers: headerParameters,
            query: queryParameters,
            body: formParams,
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => WidgetLogoFromJSON(jsonValue));
    }

    /**
     * 
     * 设置组件 Logo
     */
    async widgetLogo(requestParameters: WidgetLogoRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WidgetLogo> {
        const response = await this.widgetLogoRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 修改组件
     */
    async widgetUpdateRaw(requestParameters: WidgetUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<WidgetBean>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling widgetUpdate.');
        }

        if (requestParameters.widget === null || requestParameters.widget === undefined) {
            throw new runtime.RequiredError('widget','Required parameter requestParameters.widget was null or undefined when calling widgetUpdate.');
        }

        if (requestParameters.widgetForm === null || requestParameters.widgetForm === undefined) {
            throw new runtime.RequiredError('widgetForm','Required parameter requestParameters.widgetForm was null or undefined when calling widgetUpdate.');
        }

        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

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

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const response = await this.request({
            path: `/widgets/{app}/{widget}`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))).replace(`{${"widget"}}`, encodeURIComponent(String(requestParameters.widget))),
            method: 'PUT',
            headers: headerParameters,
            query: queryParameters,
            body: WidgetFormToJSON(requestParameters.widgetForm),
        }, initOverrides);

        return new runtime.JSONApiResponse(response, (jsonValue) => WidgetBeanFromJSON(jsonValue));
    }

    /**
     * 修改组件
     */
    async widgetUpdate(requestParameters: WidgetUpdateRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<WidgetBean> {
        const response = await this.widgetUpdateRaw(requestParameters, initOverrides);
        return await response.value();
    }

    /**
     * 修改组件设置参数
     */
    async widgetUpdateSettingsRaw(requestParameters: WidgetUpdateSettingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<boolean>> {
        if (requestParameters.app === null || requestParameters.app === undefined) {
            throw new runtime.RequiredError('app','Required parameter requestParameters.app was null or undefined when calling widgetUpdateSettings.');
        }

        if (requestParameters.widget === null || requestParameters.widget === undefined) {
            throw new runtime.RequiredError('widget','Required parameter requestParameters.widget was null or undefined when calling widgetUpdateSettings.');
        }

        if (requestParameters.key === null || requestParameters.key === undefined) {
            throw new runtime.RequiredError('key','Required parameter requestParameters.key was null or undefined when calling widgetUpdateSettings.');
        }

        if (requestParameters.type === null || requestParameters.type === undefined) {
            throw new runtime.RequiredError('type','Required parameter requestParameters.type was null or undefined when calling widgetUpdateSettings.');
        }

        if (requestParameters.value === null || requestParameters.value === undefined) {
            throw new runtime.RequiredError('value','Required parameter requestParameters.value was null or undefined when calling widgetUpdateSettings.');
        }

        const queryParameters: any = {};

        const headerParameters: runtime.HTTPHeaders = {};

        if (this.configuration && this.configuration.accessToken) {
            const token = this.configuration.accessToken;
            const tokenString = await token("TokenAuth", []);

            if (tokenString) {
                headerParameters["Authorization"] = `Bearer ${tokenString}`;
            }
        }
        const consumes: runtime.Consume[] = [
            { contentType: 'application/x-www-form-urlencoded' },
        ];
        // @ts-ignore: canConsumeForm may be unused
        const canConsumeForm = runtime.canConsumeForm(consumes);

        let formParams: { append(param: string, value: any): any };
        let useForm = false;
        if (useForm) {
            formParams = new FormData();
        } else {
            formParams = new URLSearchParams();
        }

        if (requestParameters.key !== undefined) {
            formParams.append('key', requestParameters.key as any);
        }

        if (requestParameters.type !== undefined) {
            formParams.append('type', requestParameters.type as any);
        }

        if (requestParameters.value !== undefined) {
            formParams.append('value', requestParameters.value as any);
        }

        if (requestParameters.vcode !== undefined) {
            formParams.append('vcode', requestParameters.vcode as any);
        }

        const response = await this.request({
            path: `/widgets/{app}/{widget}`.replace(`{${"app"}}`, encodeURIComponent(String(requestParameters.app))).replace(`{${"widget"}}`, encodeURIComponent(String(requestParameters.widget))),
            method: 'PATCH',
            headers: headerParameters,
            query: queryParameters,
            body: formParams,
        }, initOverrides);

        return new runtime.TextApiResponse(response) as any;
    }

    /**
     * 修改组件设置参数
     */
    async widgetUpdateSettings(requestParameters: WidgetUpdateSettingsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<boolean> {
        const response = await this.widgetUpdateSettingsRaw(requestParameters, initOverrides);
        return await response.value();
    }

}

/**
 * @export
 */
export const WidgetUpdateSettingsTypeEnum = {
    Int: 'int',
    Bool: 'bool',
    String: 'string'
} as const;
export type WidgetUpdateSettingsTypeEnum = typeof WidgetUpdateSettingsTypeEnum[keyof typeof WidgetUpdateSettingsTypeEnum];
