"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
      desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
    Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
    o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
    var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function (o) {
            var ar = [];
            for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
            return ar;
        };
        return ownKeys(o);
    };
    return function (mod) {
        if (mod && mod.__esModule) return mod;
        var result = {};
        if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
        __setModuleDefault(result, mod);
        return result;
    };
})();
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.GetTbUserIdByDingUserIdResponse = exports.GetTbUserIdByDingUserIdResponseBody = exports.GetTbUserIdByDingUserIdRequest = exports.GetTbUserIdByDingUserIdHeaders = exports.GetStaredProjectsResponse = exports.GetStaredProjectsResponseBody = exports.GetStaredProjectsRequest = exports.GetStaredProjectsHeaders = exports.GetProjectRolesV3Response = exports.GetProjectRolesV3ResponseBody = exports.GetProjectRolesV3Request = exports.GetProjectRolesV3Headers = exports.GetProjectMembersV3Response = exports.GetProjectMembersV3ResponseBody = exports.GetProjectMembersV3Request = exports.GetProjectMembersV3Headers = exports.GetFreeTaskResponse = exports.GetFreeTaskResponseBody = exports.GetFreeTaskRequest = exports.GetFreeTaskHeaders = exports.GetFootprintTaskResponse = exports.GetFootprintTaskResponseBody = exports.GetFootprintTaskHeaders = exports.GetFootprintProjectResponse = exports.GetFootprintProjectResponseBody = exports.GetFootprintProjectHeaders = exports.DeleteProjectMembersV3Response = exports.DeleteProjectMembersV3ResponseBody = exports.DeleteProjectMembersV3Request = exports.DeleteProjectMembersV3Headers = exports.CreateTaskResponse = exports.CreateTaskResponseBody = exports.CreateTaskRequest = exports.CreateTaskHeaders = exports.CreateProjectV3Response = exports.CreateProjectV3ResponseBody = exports.CreateProjectV3Request = exports.CreateProjectV3Headers = exports.CreateProjectMembersV3Response = exports.CreateProjectMembersV3ResponseBody = exports.CreateProjectMembersV3Request = exports.CreateProjectMembersV3Headers = exports.CreateOrganizationTaskResponse = exports.CreateOrganizationTaskResponseBody = exports.CreateOrganizationTaskRequest = exports.CreateOrganizationTaskHeaders = exports.AnalysisReportResponse = exports.AnalysisReportResponseBody = exports.AnalysisReportRequest = exports.AnalysisReportHeaders = void 0;
exports.AnalysisReportResponseBodyResultVisualizationSettings = exports.AnalysisReportResponseBodyResultListQuery = exports.AnalysisReportResponseBodyResultCols = exports.AnalysisReportRequestFilter = exports.UpdateProjectV3Response = exports.UpdateProjectV3ResponseBody = exports.UpdateProjectV3Request = exports.UpdateProjectV3Headers = exports.UpdateProjectMemberRoleV3Response = exports.UpdateProjectMemberRoleV3ResponseBody = exports.UpdateProjectMemberRoleV3Request = exports.UpdateProjectMemberRoleV3Headers = exports.SearchProjectsV3Response = exports.SearchProjectsV3ResponseBody = exports.SearchProjectsV3Request = exports.SearchProjectsV3Headers = exports.SearchProjectCustomFiledsV3Response = exports.SearchProjectCustomFiledsV3ResponseBody = exports.SearchProjectCustomFiledsV3Request = exports.SearchProjectCustomFiledsV3Headers = exports.SearchAllTasksByTqlResponse = exports.SearchAllTasksByTqlResponseBody = exports.SearchAllTasksByTqlRequest = exports.SearchAllTasksByTqlHeaders = exports.QueryTasksV3Response = exports.QueryTasksV3ResponseBody = exports.QueryTasksV3Request = exports.QueryTasksV3Headers = exports.QueryTaskResponse = exports.QueryTaskResponseBody = exports.QueryTaskRequest = exports.QueryTaskHeaders = exports.QueryAllTaskResponse = exports.QueryAllTaskResponseBody = exports.QueryAllTaskRequest = exports.QueryAllTaskHeaders = exports.ListMyShortcutViewsResponse = exports.ListMyShortcutViewsResponseBody = exports.ListMyShortcutViewsRequest = exports.ListMyShortcutViewsHeaders = exports.ListAllTaskViewResponse = exports.ListAllTaskViewResponseBody = exports.ListAllTaskViewHeaders = exports.GetUserJoinedProjectsV3Response = exports.GetUserJoinedProjectsV3ResponseBody = exports.GetUserJoinedProjectsV3Request = exports.GetUserJoinedProjectsV3Headers = exports.GetThingOrgIdByDingOrgIdResponse = exports.GetThingOrgIdByDingOrgIdResponseBody = exports.GetThingOrgIdByDingOrgIdHeaders = void 0;
exports.ListMyShortcutViewsResponseBodyResultToolbarInfoGroupTypes = exports.ListMyShortcutViewsResponseBodyResultToolbarInfoGroupTypesSetting = exports.ListMyShortcutViewsResponseBodyResultShowType = exports.ListMyShortcutViewsResponseBodyResultOrderType = exports.ListMyShortcutViewsResponseBodyResultGroupType = exports.ListMyShortcutViewsResponseBodyResultFilter = exports.ListMyShortcutViewsResponseBodyResultFilterInvisibleConditions = exports.ListMyShortcutViewsResponseBodyResultFilterInvisibleConditionsValues = exports.ListMyShortcutViewsResponseBodyResultFilterInvisibleConditionsOp = exports.ListMyShortcutViewsResponseBodyResultFilterConditions = exports.ListMyShortcutViewsResponseBodyResultFilterConditionsValues = exports.ListMyShortcutViewsResponseBodyResultFilterConditionsOp = exports.ListAllTaskViewResponseBodyResult = exports.ListAllTaskViewResponseBodyResultViewSetting = exports.ListAllTaskViewResponseBodyResultToolbarInfo = exports.ListAllTaskViewResponseBodyResultToolbarInfoShowTypes = exports.ListAllTaskViewResponseBodyResultToolbarInfoOrderTypes = exports.ListAllTaskViewResponseBodyResultToolbarInfoGroupTypes = exports.ListAllTaskViewResponseBodyResultToolbarInfoGroupTypesSetting = exports.ListAllTaskViewResponseBodyResultShowType = exports.ListAllTaskViewResponseBodyResultOrderType = exports.ListAllTaskViewResponseBodyResultGroupType = exports.ListAllTaskViewResponseBodyResultFilter = exports.ListAllTaskViewResponseBodyResultFilterInvisibleConditions = exports.ListAllTaskViewResponseBodyResultFilterInvisibleConditionsValues = exports.ListAllTaskViewResponseBodyResultFilterInvisibleConditionsOp = exports.ListAllTaskViewResponseBodyResultFilterConditions = exports.ListAllTaskViewResponseBodyResultFilterConditionsValues = exports.ListAllTaskViewResponseBodyResultFilterConditionsOp = exports.GetThingOrgIdByDingOrgIdResponseBodyResult = exports.GetTbUserIdByDingUserIdResponseBodyResult = exports.GetProjectRolesV3ResponseBodyResult = exports.GetProjectMembersV3ResponseBodyResult = exports.GetFreeTaskResponseBodyResult = exports.GetFootprintTaskResponseBodyResult = exports.GetFootprintTaskResponseBodyResultCustomfields = exports.GetFootprintProjectResponseBodyResult = exports.DeleteProjectMembersV3ResponseBodyErrors = exports.CreateTaskResponseBodyResult = exports.CreateTaskResponseBodyResultCustomfields = exports.CreateTaskResponseBodyResultCustomfieldsValue = exports.CreateTaskRequestCustomfields = exports.CreateTaskRequestCustomfieldsValue = exports.CreateProjectV3ResponseBodyResult = exports.CreateProjectMembersV3ResponseBodyResult = exports.CreateOrganizationTaskResponseBodyResult = exports.CreateOrganizationTaskResponseBodyResultInvolvers = exports.CreateOrganizationTaskResponseBodyResultExecutor = exports.CreateOrganizationTaskResponseBodyResultCreator = exports.AnalysisReportResponseBodyResult = void 0;
exports.UpdateProjectV3ResponseBodyResult = exports.UpdateProjectMemberRoleV3ResponseBodyResult = exports.SearchProjectsV3ResponseBodyResult = exports.SearchProjectCustomFiledsV3ResponseBodyResult = exports.SearchProjectCustomFiledsV3ResponseBodyResultChoices = exports.SearchProjectCustomFiledsV3ResponseBodyResultAdvancedCustomfield = exports.QueryTasksV3ResponseBodyResult = exports.QueryTasksV3ResponseBodyResultCustomfields = exports.QueryTasksV3ResponseBodyResultCustomfieldsValue = exports.QueryTaskResponseBodyResult = exports.QueryTaskResponseBodyResultProjectInfo = exports.QueryTaskResponseBodyResultExecutorUserInfo = exports.QueryTaskResponseBodyResultCustomfields = exports.QueryTaskResponseBodyResultCustomfieldsValue = exports.QueryAllTaskResponseBodyResult = exports.QueryAllTaskResponseBodyResultCustomfields = exports.QueryAllTaskResponseBodyResultCustomfieldsValue = exports.ListMyShortcutViewsResponseBodyResult = exports.ListMyShortcutViewsResponseBodyResultViewSetting = exports.ListMyShortcutViewsResponseBodyResultToolbarInfo = exports.ListMyShortcutViewsResponseBodyResultToolbarInfoShowTypes = exports.ListMyShortcutViewsResponseBodyResultToolbarInfoOrderTypes = void 0;
// This file is auto-generated, don't edit it
/**
 */
const tea_util_1 = __importStar(require("@alicloud/tea-util")), $Util = tea_util_1;
const gateway_dingtalk_1 = __importDefault(require("@alicloud/gateway-dingtalk"));
const openapi_client_1 = __importStar(require("@alicloud/openapi-client")), $OpenApi = openapi_client_1;
const openapi_util_1 = __importDefault(require("@alicloud/openapi-util"));
const $tea = __importStar(require("@alicloud/tea-typescript"));
class AnalysisReportHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AnalysisReportHeaders = AnalysisReportHeaders;
class AnalysisReportRequest extends $tea.Model {
    static names() {
        return {
            filter: 'filter',
            reportId: 'reportId',
        };
    }
    static types() {
        return {
            filter: AnalysisReportRequestFilter,
            reportId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AnalysisReportRequest = AnalysisReportRequest;
class AnalysisReportResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: { 'type': 'array', 'itemType': AnalysisReportResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AnalysisReportResponseBody = AnalysisReportResponseBody;
class AnalysisReportResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: AnalysisReportResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AnalysisReportResponse = AnalysisReportResponse;
class CreateOrganizationTaskHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateOrganizationTaskHeaders = CreateOrganizationTaskHeaders;
class CreateOrganizationTaskRequest extends $tea.Model {
    static names() {
        return {
            content: 'content',
            disableActivity: 'disableActivity',
            disableNotification: 'disableNotification',
            dueDate: 'dueDate',
            executorId: 'executorId',
            involveMembers: 'involveMembers',
            note: 'note',
            visible: 'visible',
        };
    }
    static types() {
        return {
            content: 'string',
            disableActivity: 'boolean',
            disableNotification: 'boolean',
            dueDate: 'string',
            executorId: 'string',
            involveMembers: { 'type': 'array', 'itemType': 'string' },
            note: 'string',
            visible: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateOrganizationTaskRequest = CreateOrganizationTaskRequest;
class CreateOrganizationTaskResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: CreateOrganizationTaskResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateOrganizationTaskResponseBody = CreateOrganizationTaskResponseBody;
class CreateOrganizationTaskResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: CreateOrganizationTaskResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateOrganizationTaskResponse = CreateOrganizationTaskResponse;
class CreateProjectMembersV3Headers extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateProjectMembersV3Headers = CreateProjectMembersV3Headers;
class CreateProjectMembersV3Request extends $tea.Model {
    static names() {
        return {
            userIds: 'userIds',
        };
    }
    static types() {
        return {
            userIds: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateProjectMembersV3Request = CreateProjectMembersV3Request;
class CreateProjectMembersV3ResponseBody extends $tea.Model {
    static names() {
        return {
            requestId: 'requestId',
            result: 'result',
        };
    }
    static types() {
        return {
            requestId: 'string',
            result: { 'type': 'array', 'itemType': CreateProjectMembersV3ResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateProjectMembersV3ResponseBody = CreateProjectMembersV3ResponseBody;
class CreateProjectMembersV3Response extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: CreateProjectMembersV3ResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateProjectMembersV3Response = CreateProjectMembersV3Response;
class CreateProjectV3Headers extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateProjectV3Headers = CreateProjectV3Headers;
class CreateProjectV3Request extends $tea.Model {
    static names() {
        return {
            name: 'name',
            organizationId: 'organizationId',
        };
    }
    static types() {
        return {
            name: 'string',
            organizationId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateProjectV3Request = CreateProjectV3Request;
class CreateProjectV3ResponseBody extends $tea.Model {
    static names() {
        return {
            requestId: 'requestId',
            result: 'result',
        };
    }
    static types() {
        return {
            requestId: 'string',
            result: CreateProjectV3ResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateProjectV3ResponseBody = CreateProjectV3ResponseBody;
class CreateProjectV3Response extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: CreateProjectV3ResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateProjectV3Response = CreateProjectV3Response;
class CreateTaskHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTaskHeaders = CreateTaskHeaders;
class CreateTaskRequest extends $tea.Model {
    static names() {
        return {
            content: 'content',
            customfields: 'customfields',
            disableActivity: 'disableActivity',
            disableNotification: 'disableNotification',
            dueDate: 'dueDate',
            executorId: 'executorId',
            note: 'note',
            projectId: 'projectId',
        };
    }
    static types() {
        return {
            content: 'string',
            customfields: { 'type': 'array', 'itemType': CreateTaskRequestCustomfields },
            disableActivity: 'boolean',
            disableNotification: 'boolean',
            dueDate: 'string',
            executorId: 'string',
            note: 'string',
            projectId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTaskRequest = CreateTaskRequest;
class CreateTaskResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: CreateTaskResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTaskResponseBody = CreateTaskResponseBody;
class CreateTaskResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: CreateTaskResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTaskResponse = CreateTaskResponse;
class DeleteProjectMembersV3Headers extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeleteProjectMembersV3Headers = DeleteProjectMembersV3Headers;
class DeleteProjectMembersV3Request extends $tea.Model {
    static names() {
        return {
            userIds: 'userIds',
        };
    }
    static types() {
        return {
            userIds: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeleteProjectMembersV3Request = DeleteProjectMembersV3Request;
class DeleteProjectMembersV3ResponseBody extends $tea.Model {
    static names() {
        return {
            errors: 'errors',
            requestId: 'requestId',
            result: 'result',
        };
    }
    static types() {
        return {
            errors: { 'type': 'array', 'itemType': DeleteProjectMembersV3ResponseBodyErrors },
            requestId: 'string',
            result: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeleteProjectMembersV3ResponseBody = DeleteProjectMembersV3ResponseBody;
class DeleteProjectMembersV3Response extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: DeleteProjectMembersV3ResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeleteProjectMembersV3Response = DeleteProjectMembersV3Response;
class GetFootprintProjectHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetFootprintProjectHeaders = GetFootprintProjectHeaders;
class GetFootprintProjectResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: { 'type': 'array', 'itemType': GetFootprintProjectResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetFootprintProjectResponseBody = GetFootprintProjectResponseBody;
class GetFootprintProjectResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: GetFootprintProjectResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetFootprintProjectResponse = GetFootprintProjectResponse;
class GetFootprintTaskHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetFootprintTaskHeaders = GetFootprintTaskHeaders;
class GetFootprintTaskResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: { 'type': 'array', 'itemType': GetFootprintTaskResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetFootprintTaskResponseBody = GetFootprintTaskResponseBody;
class GetFootprintTaskResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: GetFootprintTaskResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetFootprintTaskResponse = GetFootprintTaskResponse;
class GetFreeTaskHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetFreeTaskHeaders = GetFreeTaskHeaders;
class GetFreeTaskRequest extends $tea.Model {
    static names() {
        return {
            userId: 'userId',
        };
    }
    static types() {
        return {
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetFreeTaskRequest = GetFreeTaskRequest;
class GetFreeTaskResponseBody extends $tea.Model {
    static names() {
        return {
            requestId: 'requestId',
            result: 'result',
        };
    }
    static types() {
        return {
            requestId: 'string',
            result: GetFreeTaskResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetFreeTaskResponseBody = GetFreeTaskResponseBody;
class GetFreeTaskResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: GetFreeTaskResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetFreeTaskResponse = GetFreeTaskResponse;
class GetProjectMembersV3Headers extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetProjectMembersV3Headers = GetProjectMembersV3Headers;
class GetProjectMembersV3Request extends $tea.Model {
    static names() {
        return {
            maxResults: 'maxResults',
            nextToken: 'nextToken',
            projectRoleId: 'projectRoleId',
            userIds: 'userIds',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            nextToken: 'string',
            projectRoleId: 'string',
            userIds: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetProjectMembersV3Request = GetProjectMembersV3Request;
class GetProjectMembersV3ResponseBody extends $tea.Model {
    static names() {
        return {
            nextToken: 'nextToken',
            requestId: 'requestId',
            result: 'result',
        };
    }
    static types() {
        return {
            nextToken: 'string',
            requestId: 'string',
            result: { 'type': 'array', 'itemType': GetProjectMembersV3ResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetProjectMembersV3ResponseBody = GetProjectMembersV3ResponseBody;
class GetProjectMembersV3Response extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: GetProjectMembersV3ResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetProjectMembersV3Response = GetProjectMembersV3Response;
class GetProjectRolesV3Headers extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetProjectRolesV3Headers = GetProjectRolesV3Headers;
class GetProjectRolesV3Request extends $tea.Model {
    static names() {
        return {
            includeHidden: 'includeHidden',
            level: 'level',
            maxResults: 'maxResults',
            nextToken: 'nextToken',
        };
    }
    static types() {
        return {
            includeHidden: 'boolean',
            level: 'number',
            maxResults: 'number',
            nextToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetProjectRolesV3Request = GetProjectRolesV3Request;
class GetProjectRolesV3ResponseBody extends $tea.Model {
    static names() {
        return {
            nextToken: 'nextToken',
            requestId: 'requestId',
            result: 'result',
        };
    }
    static types() {
        return {
            nextToken: 'string',
            requestId: 'string',
            result: { 'type': 'array', 'itemType': GetProjectRolesV3ResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetProjectRolesV3ResponseBody = GetProjectRolesV3ResponseBody;
class GetProjectRolesV3Response extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: GetProjectRolesV3ResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetProjectRolesV3Response = GetProjectRolesV3Response;
class GetStaredProjectsHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetStaredProjectsHeaders = GetStaredProjectsHeaders;
class GetStaredProjectsRequest extends $tea.Model {
    static names() {
        return {
            maxResults: 'maxResults',
            nextToken: 'nextToken',
            sortBy: 'sortBy',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            nextToken: 'string',
            sortBy: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetStaredProjectsRequest = GetStaredProjectsRequest;
class GetStaredProjectsResponseBody extends $tea.Model {
    static names() {
        return {
            nextToken: 'nextToken',
            result: 'result',
        };
    }
    static types() {
        return {
            nextToken: 'string',
            result: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetStaredProjectsResponseBody = GetStaredProjectsResponseBody;
class GetStaredProjectsResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: GetStaredProjectsResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetStaredProjectsResponse = GetStaredProjectsResponse;
class GetTbUserIdByDingUserIdHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTbUserIdByDingUserIdHeaders = GetTbUserIdByDingUserIdHeaders;
class GetTbUserIdByDingUserIdRequest extends $tea.Model {
    static names() {
        return {
            dingUserIds: 'dingUserIds',
            userId: 'userId',
        };
    }
    static types() {
        return {
            dingUserIds: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTbUserIdByDingUserIdRequest = GetTbUserIdByDingUserIdRequest;
class GetTbUserIdByDingUserIdResponseBody extends $tea.Model {
    static names() {
        return {
            requestId: 'requestId',
            result: 'result',
        };
    }
    static types() {
        return {
            requestId: 'string',
            result: { 'type': 'array', 'itemType': GetTbUserIdByDingUserIdResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTbUserIdByDingUserIdResponseBody = GetTbUserIdByDingUserIdResponseBody;
class GetTbUserIdByDingUserIdResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: GetTbUserIdByDingUserIdResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTbUserIdByDingUserIdResponse = GetTbUserIdByDingUserIdResponse;
class GetThingOrgIdByDingOrgIdHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetThingOrgIdByDingOrgIdHeaders = GetThingOrgIdByDingOrgIdHeaders;
class GetThingOrgIdByDingOrgIdResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: GetThingOrgIdByDingOrgIdResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetThingOrgIdByDingOrgIdResponseBody = GetThingOrgIdByDingOrgIdResponseBody;
class GetThingOrgIdByDingOrgIdResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: GetThingOrgIdByDingOrgIdResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetThingOrgIdByDingOrgIdResponse = GetThingOrgIdByDingOrgIdResponse;
class GetUserJoinedProjectsV3Headers extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetUserJoinedProjectsV3Headers = GetUserJoinedProjectsV3Headers;
class GetUserJoinedProjectsV3Request extends $tea.Model {
    static names() {
        return {
            maxResults: 'maxResults',
            nextToken: 'nextToken',
            projectIds: 'projectIds',
            projectRoleLevels: 'projectRoleLevels',
            sortBy: 'sortBy',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            nextToken: 'string',
            projectIds: 'string',
            projectRoleLevels: 'string',
            sortBy: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetUserJoinedProjectsV3Request = GetUserJoinedProjectsV3Request;
class GetUserJoinedProjectsV3ResponseBody extends $tea.Model {
    static names() {
        return {
            nextToken: 'nextToken',
            requestId: 'requestId',
            result: 'result',
        };
    }
    static types() {
        return {
            nextToken: 'string',
            requestId: 'string',
            result: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetUserJoinedProjectsV3ResponseBody = GetUserJoinedProjectsV3ResponseBody;
class GetUserJoinedProjectsV3Response extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: GetUserJoinedProjectsV3ResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetUserJoinedProjectsV3Response = GetUserJoinedProjectsV3Response;
class ListAllTaskViewHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAllTaskViewHeaders = ListAllTaskViewHeaders;
class ListAllTaskViewResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: ListAllTaskViewResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAllTaskViewResponseBody = ListAllTaskViewResponseBody;
class ListAllTaskViewResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: ListAllTaskViewResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAllTaskViewResponse = ListAllTaskViewResponse;
class ListMyShortcutViewsHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListMyShortcutViewsHeaders = ListMyShortcutViewsHeaders;
class ListMyShortcutViewsRequest extends $tea.Model {
    static names() {
        return {
            maxResults: 'maxResults',
            nextToken: 'nextToken',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            nextToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListMyShortcutViewsRequest = ListMyShortcutViewsRequest;
class ListMyShortcutViewsResponseBody extends $tea.Model {
    static names() {
        return {
            nextToken: 'nextToken',
            result: 'result',
        };
    }
    static types() {
        return {
            nextToken: 'string',
            result: { 'type': 'array', 'itemType': ListMyShortcutViewsResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListMyShortcutViewsResponseBody = ListMyShortcutViewsResponseBody;
class ListMyShortcutViewsResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: ListMyShortcutViewsResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListMyShortcutViewsResponse = ListMyShortcutViewsResponse;
class QueryAllTaskHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryAllTaskHeaders = QueryAllTaskHeaders;
class QueryAllTaskRequest extends $tea.Model {
    static names() {
        return {
            taskId: 'taskId',
        };
    }
    static types() {
        return {
            taskId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryAllTaskRequest = QueryAllTaskRequest;
class QueryAllTaskResponseBody extends $tea.Model {
    static names() {
        return {
            requestId: 'requestId',
            result: 'result',
        };
    }
    static types() {
        return {
            requestId: 'string',
            result: { 'type': 'array', 'itemType': QueryAllTaskResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryAllTaskResponseBody = QueryAllTaskResponseBody;
class QueryAllTaskResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: QueryAllTaskResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryAllTaskResponse = QueryAllTaskResponse;
class QueryTaskHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTaskHeaders = QueryTaskHeaders;
class QueryTaskRequest extends $tea.Model {
    static names() {
        return {
            maxResults: 'maxResults',
            nextToken: 'nextToken',
            tql: 'tql',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            nextToken: 'string',
            tql: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTaskRequest = QueryTaskRequest;
class QueryTaskResponseBody extends $tea.Model {
    static names() {
        return {
            nextToken: 'nextToken',
            requestId: 'requestId',
            result: 'result',
        };
    }
    static types() {
        return {
            nextToken: 'string',
            requestId: 'string',
            result: { 'type': 'array', 'itemType': QueryTaskResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTaskResponseBody = QueryTaskResponseBody;
class QueryTaskResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: QueryTaskResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTaskResponse = QueryTaskResponse;
class QueryTasksV3Headers extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTasksV3Headers = QueryTasksV3Headers;
class QueryTasksV3Request extends $tea.Model {
    static names() {
        return {
            taskId: 'taskId',
        };
    }
    static types() {
        return {
            taskId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTasksV3Request = QueryTasksV3Request;
class QueryTasksV3ResponseBody extends $tea.Model {
    static names() {
        return {
            requestId: 'requestId',
            result: 'result',
        };
    }
    static types() {
        return {
            requestId: 'string',
            result: { 'type': 'array', 'itemType': QueryTasksV3ResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTasksV3ResponseBody = QueryTasksV3ResponseBody;
class QueryTasksV3Response extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: QueryTasksV3ResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTasksV3Response = QueryTasksV3Response;
class SearchAllTasksByTqlHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchAllTasksByTqlHeaders = SearchAllTasksByTqlHeaders;
class SearchAllTasksByTqlRequest extends $tea.Model {
    static names() {
        return {
            maxResults: 'maxResults',
            nextToken: 'nextToken',
            tql: 'tql',
            userId: 'userId',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            nextToken: 'string',
            tql: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchAllTasksByTqlRequest = SearchAllTasksByTqlRequest;
class SearchAllTasksByTqlResponseBody extends $tea.Model {
    static names() {
        return {
            nextToken: 'nextToken',
            requestId: 'requestId',
            result: 'result',
            totalSize: 'totalSize',
        };
    }
    static types() {
        return {
            nextToken: 'string',
            requestId: 'string',
            result: { 'type': 'array', 'itemType': 'string' },
            totalSize: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchAllTasksByTqlResponseBody = SearchAllTasksByTqlResponseBody;
class SearchAllTasksByTqlResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: SearchAllTasksByTqlResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchAllTasksByTqlResponse = SearchAllTasksByTqlResponse;
class SearchProjectCustomFiledsV3Headers extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchProjectCustomFiledsV3Headers = SearchProjectCustomFiledsV3Headers;
class SearchProjectCustomFiledsV3Request extends $tea.Model {
    static names() {
        return {
            cfIds: 'cfIds',
            maxResults: 'maxResults',
            nextToken: 'nextToken',
            sfcId: 'sfcId',
        };
    }
    static types() {
        return {
            cfIds: 'string',
            maxResults: 'number',
            nextToken: 'string',
            sfcId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchProjectCustomFiledsV3Request = SearchProjectCustomFiledsV3Request;
class SearchProjectCustomFiledsV3ResponseBody extends $tea.Model {
    static names() {
        return {
            nextToken: 'nextToken',
            requestId: 'requestId',
            result: 'result',
            totalCount: 'totalCount',
        };
    }
    static types() {
        return {
            nextToken: 'string',
            requestId: 'string',
            result: { 'type': 'array', 'itemType': SearchProjectCustomFiledsV3ResponseBodyResult },
            totalCount: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchProjectCustomFiledsV3ResponseBody = SearchProjectCustomFiledsV3ResponseBody;
class SearchProjectCustomFiledsV3Response extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: SearchProjectCustomFiledsV3ResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchProjectCustomFiledsV3Response = SearchProjectCustomFiledsV3Response;
class SearchProjectsV3Headers extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchProjectsV3Headers = SearchProjectsV3Headers;
class SearchProjectsV3Request extends $tea.Model {
    static names() {
        return {
            includeTemplate: 'includeTemplate',
            maxResults: 'maxResults',
            name: 'name',
            nextToken: 'nextToken',
            projectIds: 'projectIds',
            sourceId: 'sourceId',
            userId: 'userId',
        };
    }
    static types() {
        return {
            includeTemplate: 'boolean',
            maxResults: 'number',
            name: 'string',
            nextToken: 'string',
            projectIds: 'string',
            sourceId: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchProjectsV3Request = SearchProjectsV3Request;
class SearchProjectsV3ResponseBody extends $tea.Model {
    static names() {
        return {
            nextToken: 'nextToken',
            requestId: 'requestId',
            result: 'result',
        };
    }
    static types() {
        return {
            nextToken: 'string',
            requestId: 'string',
            result: { 'type': 'array', 'itemType': SearchProjectsV3ResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchProjectsV3ResponseBody = SearchProjectsV3ResponseBody;
class SearchProjectsV3Response extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: SearchProjectsV3ResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchProjectsV3Response = SearchProjectsV3Response;
class UpdateProjectMemberRoleV3Headers extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateProjectMemberRoleV3Headers = UpdateProjectMemberRoleV3Headers;
class UpdateProjectMemberRoleV3Request extends $tea.Model {
    static names() {
        return {
            roleIds: 'roleIds',
            userIds: 'userIds',
        };
    }
    static types() {
        return {
            roleIds: { 'type': 'array', 'itemType': 'string' },
            userIds: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateProjectMemberRoleV3Request = UpdateProjectMemberRoleV3Request;
class UpdateProjectMemberRoleV3ResponseBody extends $tea.Model {
    static names() {
        return {
            requestId: 'requestId',
            result: 'result',
        };
    }
    static types() {
        return {
            requestId: 'string',
            result: { 'type': 'array', 'itemType': UpdateProjectMemberRoleV3ResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateProjectMemberRoleV3ResponseBody = UpdateProjectMemberRoleV3ResponseBody;
class UpdateProjectMemberRoleV3Response extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: UpdateProjectMemberRoleV3ResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateProjectMemberRoleV3Response = UpdateProjectMemberRoleV3Response;
class UpdateProjectV3Headers extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateProjectV3Headers = UpdateProjectV3Headers;
class UpdateProjectV3Request extends $tea.Model {
    static names() {
        return {
            description: 'description',
            name: 'name',
        };
    }
    static types() {
        return {
            description: 'string',
            name: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateProjectV3Request = UpdateProjectV3Request;
class UpdateProjectV3ResponseBody extends $tea.Model {
    static names() {
        return {
            requestId: 'requestId',
            result: 'result',
        };
    }
    static types() {
        return {
            requestId: 'string',
            result: UpdateProjectV3ResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateProjectV3ResponseBody = UpdateProjectV3ResponseBody;
class UpdateProjectV3Response extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
            body: 'body',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
            body: UpdateProjectV3ResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateProjectV3Response = UpdateProjectV3Response;
class AnalysisReportRequestFilter extends $tea.Model {
    static names() {
        return {
            created: 'created',
        };
    }
    static types() {
        return {
            created: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AnalysisReportRequestFilter = AnalysisReportRequestFilter;
class AnalysisReportResponseBodyResultCols extends $tea.Model {
    static names() {
        return {
            baseType: 'baseType',
            name: 'name',
            theme: 'theme',
        };
    }
    static types() {
        return {
            baseType: 'string',
            name: 'string',
            theme: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AnalysisReportResponseBodyResultCols = AnalysisReportResponseBodyResultCols;
class AnalysisReportResponseBodyResultListQuery extends $tea.Model {
    static names() {
        return {
            key: 'key',
            value: 'value',
        };
    }
    static types() {
        return {
            key: 'string',
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AnalysisReportResponseBodyResultListQuery = AnalysisReportResponseBodyResultListQuery;
class AnalysisReportResponseBodyResultVisualizationSettings extends $tea.Model {
    static names() {
        return {
            dimension: 'dimension',
            type: 'type',
        };
    }
    static types() {
        return {
            dimension: 'number',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AnalysisReportResponseBodyResultVisualizationSettings = AnalysisReportResponseBodyResultVisualizationSettings;
class AnalysisReportResponseBodyResult extends $tea.Model {
    static names() {
        return {
            cols: 'cols',
            listQuery: 'listQuery',
            name: 'name',
            rows: 'rows',
            tips: 'tips',
            title: 'title',
            visualizationSettings: 'visualizationSettings',
        };
    }
    static types() {
        return {
            cols: { 'type': 'array', 'itemType': AnalysisReportResponseBodyResultCols },
            listQuery: { 'type': 'array', 'itemType': { 'type': 'array', 'itemType': AnalysisReportResponseBodyResultListQuery } },
            name: 'string',
            rows: { 'type': 'array', 'itemType': { 'type': 'array', 'itemType': 'string' } },
            tips: 'string',
            title: 'string',
            visualizationSettings: AnalysisReportResponseBodyResultVisualizationSettings,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AnalysisReportResponseBodyResult = AnalysisReportResponseBodyResult;
class CreateOrganizationTaskResponseBodyResultCreator extends $tea.Model {
    static names() {
        return {
            avatarUrl: 'avatarUrl',
            name: 'name',
            userId: 'userId',
        };
    }
    static types() {
        return {
            avatarUrl: 'string',
            name: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateOrganizationTaskResponseBodyResultCreator = CreateOrganizationTaskResponseBodyResultCreator;
class CreateOrganizationTaskResponseBodyResultExecutor extends $tea.Model {
    static names() {
        return {
            avatarUrl: 'avatarUrl',
            name: 'name',
            userId: 'userId',
        };
    }
    static types() {
        return {
            avatarUrl: 'string',
            name: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateOrganizationTaskResponseBodyResultExecutor = CreateOrganizationTaskResponseBodyResultExecutor;
class CreateOrganizationTaskResponseBodyResultInvolvers extends $tea.Model {
    static names() {
        return {
            avatarUrl: 'avatarUrl',
            id: 'id',
            name: 'name',
        };
    }
    static types() {
        return {
            avatarUrl: 'string',
            id: 'string',
            name: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateOrganizationTaskResponseBodyResultInvolvers = CreateOrganizationTaskResponseBodyResultInvolvers;
class CreateOrganizationTaskResponseBodyResult extends $tea.Model {
    static names() {
        return {
            ancestorIds: 'ancestorIds',
            attachmentsCount: 'attachmentsCount',
            content: 'content',
            created: 'created',
            creator: 'creator',
            creatorId: 'creatorId',
            dueDate: 'dueDate',
            executor: 'executor',
            executorId: 'executorId',
            hasReminder: 'hasReminder',
            id: 'id',
            involveMembers: 'involveMembers',
            involvers: 'involvers',
            isDeleted: 'isDeleted',
            isDone: 'isDone',
            note: 'note',
            updated: 'updated',
            visible: 'visible',
        };
    }
    static types() {
        return {
            ancestorIds: { 'type': 'array', 'itemType': 'string' },
            attachmentsCount: 'number',
            content: 'string',
            created: 'string',
            creator: CreateOrganizationTaskResponseBodyResultCreator,
            creatorId: 'string',
            dueDate: 'string',
            executor: CreateOrganizationTaskResponseBodyResultExecutor,
            executorId: 'string',
            hasReminder: 'boolean',
            id: 'string',
            involveMembers: { 'type': 'array', 'itemType': 'string' },
            involvers: { 'type': 'array', 'itemType': CreateOrganizationTaskResponseBodyResultInvolvers },
            isDeleted: 'boolean',
            isDone: 'string',
            note: 'string',
            updated: 'string',
            visible: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateOrganizationTaskResponseBodyResult = CreateOrganizationTaskResponseBodyResult;
class CreateProjectMembersV3ResponseBodyResult extends $tea.Model {
    static names() {
        return {
            boundToObjectId: 'boundToObjectId',
            boundToObjectType: 'boundToObjectType',
            joined: 'joined',
            role: 'role',
            userId: 'userId',
        };
    }
    static types() {
        return {
            boundToObjectId: 'string',
            boundToObjectType: 'string',
            joined: 'string',
            role: 'number',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateProjectMembersV3ResponseBodyResult = CreateProjectMembersV3ResponseBodyResult;
class CreateProjectV3ResponseBodyResult extends $tea.Model {
    static names() {
        return {
            id: 'id',
        };
    }
    static types() {
        return {
            id: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateProjectV3ResponseBodyResult = CreateProjectV3ResponseBodyResult;
class CreateTaskRequestCustomfieldsValue extends $tea.Model {
    static names() {
        return {
            id: 'id',
            thumbUrl: 'thumbUrl',
            title: 'title',
        };
    }
    static types() {
        return {
            id: 'string',
            thumbUrl: 'string',
            title: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTaskRequestCustomfieldsValue = CreateTaskRequestCustomfieldsValue;
class CreateTaskRequestCustomfields extends $tea.Model {
    static names() {
        return {
            customfieldId: 'customfieldId',
            customfieldName: 'customfieldName',
            value: 'value',
        };
    }
    static types() {
        return {
            customfieldId: 'string',
            customfieldName: 'string',
            value: { 'type': 'array', 'itemType': CreateTaskRequestCustomfieldsValue },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTaskRequestCustomfields = CreateTaskRequestCustomfields;
class CreateTaskResponseBodyResultCustomfieldsValue extends $tea.Model {
    static names() {
        return {
            title: 'title',
        };
    }
    static types() {
        return {
            title: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTaskResponseBodyResultCustomfieldsValue = CreateTaskResponseBodyResultCustomfieldsValue;
class CreateTaskResponseBodyResultCustomfields extends $tea.Model {
    static names() {
        return {
            customfieldId: 'customfieldId',
            value: 'value',
        };
    }
    static types() {
        return {
            customfieldId: 'string',
            value: { 'type': 'array', 'itemType': CreateTaskResponseBodyResultCustomfieldsValue },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTaskResponseBodyResultCustomfields = CreateTaskResponseBodyResultCustomfields;
class CreateTaskResponseBodyResult extends $tea.Model {
    static names() {
        return {
            content: 'content',
            created: 'created',
            creatorId: 'creatorId',
            customfields: 'customfields',
            dueDate: 'dueDate',
            executorId: 'executorId',
            involveMembers: 'involveMembers',
            note: 'note',
            priority: 'priority',
            projectId: 'projectId',
            taskId: 'taskId',
            updated: 'updated',
        };
    }
    static types() {
        return {
            content: 'string',
            created: 'string',
            creatorId: 'string',
            customfields: { 'type': 'array', 'itemType': CreateTaskResponseBodyResultCustomfields },
            dueDate: 'string',
            executorId: 'string',
            involveMembers: { 'type': 'array', 'itemType': 'string' },
            note: 'string',
            priority: 'number',
            projectId: 'string',
            taskId: 'string',
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTaskResponseBodyResult = CreateTaskResponseBodyResult;
class DeleteProjectMembersV3ResponseBodyErrors extends $tea.Model {
    static names() {
        return {
            message: 'message',
        };
    }
    static types() {
        return {
            message: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeleteProjectMembersV3ResponseBodyErrors = DeleteProjectMembersV3ResponseBodyErrors;
class GetFootprintProjectResponseBodyResult extends $tea.Model {
    static names() {
        return {
            created: 'created',
            creatorId: 'creatorId',
            description: 'description',
            id: 'id',
            isDeleted: 'isDeleted',
            logo: 'logo',
            name: 'name',
            organizationId: 'organizationId',
            updated: 'updated',
            visibility: 'visibility',
        };
    }
    static types() {
        return {
            created: 'string',
            creatorId: 'string',
            description: 'string',
            id: 'string',
            isDeleted: 'boolean',
            logo: 'string',
            name: 'string',
            organizationId: 'string',
            updated: 'string',
            visibility: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetFootprintProjectResponseBodyResult = GetFootprintProjectResponseBodyResult;
class GetFootprintTaskResponseBodyResultCustomfields extends $tea.Model {
    static names() {
        return {
            customfieldId: 'customfieldId',
            type: 'type',
            value: 'value',
            values: 'values',
        };
    }
    static types() {
        return {
            customfieldId: 'string',
            type: 'string',
            value: { 'type': 'array', 'itemType': { 'type': 'map', 'keyType': 'string', 'valueType': 'any' } },
            values: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetFootprintTaskResponseBodyResultCustomfields = GetFootprintTaskResponseBodyResultCustomfields;
class GetFootprintTaskResponseBodyResult extends $tea.Model {
    static names() {
        return {
            accomplished: 'accomplished',
            basicPos: 'basicPos',
            content: 'content',
            created: 'created',
            creatorId: 'creatorId',
            customfields: 'customfields',
            dueDate: 'dueDate',
            executorId: 'executorId',
            id: 'id',
            involveMembers: 'involveMembers',
            isArchived: 'isArchived',
            isDeleted: 'isDeleted',
            isDone: 'isDone',
            note: 'note',
            organizationId: 'organizationId',
            pos: 'pos',
            priority: 'priority',
            projectId: 'projectId',
            sfcId: 'sfcId',
            stageId: 'stageId',
            startDate: 'startDate',
            tasklistId: 'tasklistId',
            tfsId: 'tfsId',
            uniqueId: 'uniqueId',
            updated: 'updated',
            visible: 'visible',
        };
    }
    static types() {
        return {
            accomplished: 'string',
            basicPos: 'string',
            content: 'string',
            created: 'string',
            creatorId: 'string',
            customfields: { 'type': 'array', 'itemType': GetFootprintTaskResponseBodyResultCustomfields },
            dueDate: 'string',
            executorId: 'string',
            id: 'string',
            involveMembers: { 'type': 'array', 'itemType': 'string' },
            isArchived: 'boolean',
            isDeleted: 'boolean',
            isDone: 'boolean',
            note: 'string',
            organizationId: 'string',
            pos: 'number',
            priority: 'number',
            projectId: 'string',
            sfcId: 'string',
            stageId: 'string',
            startDate: 'string',
            tasklistId: 'string',
            tfsId: 'string',
            uniqueId: 'number',
            updated: 'string',
            visible: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetFootprintTaskResponseBodyResult = GetFootprintTaskResponseBodyResult;
class GetFreeTaskResponseBodyResult extends $tea.Model {
    static names() {
        return {
            accomplished: 'accomplished',
            ancestorIds: 'ancestorIds',
            content: 'content',
            created: 'created',
            creatorId: 'creatorId',
            dueDate: 'dueDate',
            executorId: 'executorId',
            id: 'id',
            involveMembers: 'involveMembers',
            isArchive: 'isArchive',
            isDone: 'isDone',
            note: 'note',
            organizationId: 'organizationId',
            priority: 'priority',
            recurrence: 'recurrence',
            sourceId: 'sourceId',
            startDate: 'startDate',
            tagIds: 'tagIds',
            uniqueId: 'uniqueId',
            updated: 'updated',
            visible: 'visible',
        };
    }
    static types() {
        return {
            accomplished: 'string',
            ancestorIds: { 'type': 'array', 'itemType': 'string' },
            content: 'string',
            created: 'string',
            creatorId: 'string',
            dueDate: 'string',
            executorId: 'string',
            id: 'string',
            involveMembers: { 'type': 'array', 'itemType': 'string' },
            isArchive: 'boolean',
            isDone: 'boolean',
            note: 'string',
            organizationId: 'string',
            priority: 'number',
            recurrence: { 'type': 'array', 'itemType': 'string' },
            sourceId: 'string',
            startDate: 'string',
            tagIds: { 'type': 'array', 'itemType': 'string' },
            uniqueId: 'number',
            updated: 'string',
            visible: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetFreeTaskResponseBodyResult = GetFreeTaskResponseBodyResult;
class GetProjectMembersV3ResponseBodyResult extends $tea.Model {
    static names() {
        return {
            role: 'role',
            userId: 'userId',
        };
    }
    static types() {
        return {
            role: 'number',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetProjectMembersV3ResponseBodyResult = GetProjectMembersV3ResponseBodyResult;
class GetProjectRolesV3ResponseBodyResult extends $tea.Model {
    static names() {
        return {
            display: 'display',
            id: 'id',
            isDefaultRole: 'isDefaultRole',
            level: 'level',
            name: 'name',
            originalId: 'originalId',
        };
    }
    static types() {
        return {
            display: 'boolean',
            id: 'string',
            isDefaultRole: 'boolean',
            level: 'number',
            name: 'string',
            originalId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetProjectRolesV3ResponseBodyResult = GetProjectRolesV3ResponseBodyResult;
class GetTbUserIdByDingUserIdResponseBodyResult extends $tea.Model {
    static names() {
        return {
            dingtalkUserId: 'dingtalkUserId',
            tbUserId: 'tbUserId',
        };
    }
    static types() {
        return {
            dingtalkUserId: 'string',
            tbUserId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTbUserIdByDingUserIdResponseBodyResult = GetTbUserIdByDingUserIdResponseBodyResult;
class GetThingOrgIdByDingOrgIdResponseBodyResult extends $tea.Model {
    static names() {
        return {
            tbOrganizationId: 'tbOrganizationId',
        };
    }
    static types() {
        return {
            tbOrganizationId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetThingOrgIdByDingOrgIdResponseBodyResult = GetThingOrgIdByDingOrgIdResponseBodyResult;
class ListAllTaskViewResponseBodyResultFilterConditionsOp extends $tea.Model {
    static names() {
        return {
            value: 'value',
        };
    }
    static types() {
        return {
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAllTaskViewResponseBodyResultFilterConditionsOp = ListAllTaskViewResponseBodyResultFilterConditionsOp;
class ListAllTaskViewResponseBodyResultFilterConditionsValues extends $tea.Model {
    static names() {
        return {
            deep: 'deep',
            id: 'id',
            label: 'label',
            name: 'name',
            value: 'value',
        };
    }
    static types() {
        return {
            deep: 'string',
            id: 'string',
            label: 'string',
            name: 'string',
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAllTaskViewResponseBodyResultFilterConditionsValues = ListAllTaskViewResponseBodyResultFilterConditionsValues;
class ListAllTaskViewResponseBodyResultFilterConditions extends $tea.Model {
    static names() {
        return {
            fixed: 'fixed',
            key: 'key',
            op: 'op',
            values: 'values',
        };
    }
    static types() {
        return {
            fixed: 'boolean',
            key: 'string',
            op: ListAllTaskViewResponseBodyResultFilterConditionsOp,
            values: { 'type': 'array', 'itemType': ListAllTaskViewResponseBodyResultFilterConditionsValues },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAllTaskViewResponseBodyResultFilterConditions = ListAllTaskViewResponseBodyResultFilterConditions;
class ListAllTaskViewResponseBodyResultFilterInvisibleConditionsOp extends $tea.Model {
    static names() {
        return {
            value: 'value',
        };
    }
    static types() {
        return {
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAllTaskViewResponseBodyResultFilterInvisibleConditionsOp = ListAllTaskViewResponseBodyResultFilterInvisibleConditionsOp;
class ListAllTaskViewResponseBodyResultFilterInvisibleConditionsValues extends $tea.Model {
    static names() {
        return {
            deep: 'deep',
            id: 'id',
            label: 'label',
            name: 'name',
            value: 'value',
        };
    }
    static types() {
        return {
            deep: 'string',
            id: 'string',
            label: 'string',
            name: 'string',
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAllTaskViewResponseBodyResultFilterInvisibleConditionsValues = ListAllTaskViewResponseBodyResultFilterInvisibleConditionsValues;
class ListAllTaskViewResponseBodyResultFilterInvisibleConditions extends $tea.Model {
    static names() {
        return {
            fixed: 'fixed',
            key: 'key',
            op: 'op',
            values: 'values',
        };
    }
    static types() {
        return {
            fixed: 'boolean',
            key: 'string',
            op: ListAllTaskViewResponseBodyResultFilterInvisibleConditionsOp,
            values: { 'type': 'array', 'itemType': ListAllTaskViewResponseBodyResultFilterInvisibleConditionsValues },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAllTaskViewResponseBodyResultFilterInvisibleConditions = ListAllTaskViewResponseBodyResultFilterInvisibleConditions;
class ListAllTaskViewResponseBodyResultFilter extends $tea.Model {
    static names() {
        return {
            conditions: 'conditions',
            invisibleConditions: 'invisibleConditions',
            logic: 'logic',
            logicDisabled: 'logicDisabled',
            q: 'q',
        };
    }
    static types() {
        return {
            conditions: { 'type': 'array', 'itemType': ListAllTaskViewResponseBodyResultFilterConditions },
            invisibleConditions: { 'type': 'array', 'itemType': ListAllTaskViewResponseBodyResultFilterInvisibleConditions },
            logic: 'string',
            logicDisabled: 'boolean',
            q: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAllTaskViewResponseBodyResultFilter = ListAllTaskViewResponseBodyResultFilter;
class ListAllTaskViewResponseBodyResultGroupType extends $tea.Model {
    static names() {
        return {
            canCreateGroup: 'canCreateGroup',
            name: 'name',
            value: 'value',
        };
    }
    static types() {
        return {
            canCreateGroup: 'boolean',
            name: 'string',
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAllTaskViewResponseBodyResultGroupType = ListAllTaskViewResponseBodyResultGroupType;
class ListAllTaskViewResponseBodyResultOrderType extends $tea.Model {
    static names() {
        return {
            direction: 'direction',
            name: 'name',
            value: 'value',
        };
    }
    static types() {
        return {
            direction: 'string',
            name: 'string',
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAllTaskViewResponseBodyResultOrderType = ListAllTaskViewResponseBodyResultOrderType;
class ListAllTaskViewResponseBodyResultShowType extends $tea.Model {
    static names() {
        return {
            name: 'name',
            value: 'value',
        };
    }
    static types() {
        return {
            name: 'string',
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAllTaskViewResponseBodyResultShowType = ListAllTaskViewResponseBodyResultShowType;
class ListAllTaskViewResponseBodyResultToolbarInfoGroupTypesSetting extends $tea.Model {
    static names() {
        return {
            dateType: 'dateType',
            fieldName: 'fieldName',
            fieldType: 'fieldType',
        };
    }
    static types() {
        return {
            dateType: 'string',
            fieldName: 'string',
            fieldType: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAllTaskViewResponseBodyResultToolbarInfoGroupTypesSetting = ListAllTaskViewResponseBodyResultToolbarInfoGroupTypesSetting;
class ListAllTaskViewResponseBodyResultToolbarInfoGroupTypes extends $tea.Model {
    static names() {
        return {
            canCreateGroup: 'canCreateGroup',
            name: 'name',
            serviceName: 'serviceName',
            setting: 'setting',
            value: 'value',
        };
    }
    static types() {
        return {
            canCreateGroup: 'boolean',
            name: 'string',
            serviceName: 'string',
            setting: ListAllTaskViewResponseBodyResultToolbarInfoGroupTypesSetting,
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAllTaskViewResponseBodyResultToolbarInfoGroupTypes = ListAllTaskViewResponseBodyResultToolbarInfoGroupTypes;
class ListAllTaskViewResponseBodyResultToolbarInfoOrderTypes extends $tea.Model {
    static names() {
        return {
            direction: 'direction',
            name: 'name',
            supportDirection: 'supportDirection',
            value: 'value',
        };
    }
    static types() {
        return {
            direction: 'string',
            name: 'string',
            supportDirection: 'string',
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAllTaskViewResponseBodyResultToolbarInfoOrderTypes = ListAllTaskViewResponseBodyResultToolbarInfoOrderTypes;
class ListAllTaskViewResponseBodyResultToolbarInfoShowTypes extends $tea.Model {
    static names() {
        return {
            name: 'name',
            value: 'value',
        };
    }
    static types() {
        return {
            name: 'string',
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAllTaskViewResponseBodyResultToolbarInfoShowTypes = ListAllTaskViewResponseBodyResultToolbarInfoShowTypes;
class ListAllTaskViewResponseBodyResultToolbarInfo extends $tea.Model {
    static names() {
        return {
            groupTypes: 'groupTypes',
            orderTypes: 'orderTypes',
            showTypes: 'showTypes',
        };
    }
    static types() {
        return {
            groupTypes: { 'type': 'array', 'itemType': ListAllTaskViewResponseBodyResultToolbarInfoGroupTypes },
            orderTypes: { 'type': 'array', 'itemType': ListAllTaskViewResponseBodyResultToolbarInfoOrderTypes },
            showTypes: { 'type': 'array', 'itemType': ListAllTaskViewResponseBodyResultToolbarInfoShowTypes },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAllTaskViewResponseBodyResultToolbarInfo = ListAllTaskViewResponseBodyResultToolbarInfo;
class ListAllTaskViewResponseBodyResultViewSetting extends $tea.Model {
    static names() {
        return {
            showDoneTask: 'showDoneTask',
            showSubTask: 'showSubTask',
        };
    }
    static types() {
        return {
            showDoneTask: 'boolean',
            showSubTask: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAllTaskViewResponseBodyResultViewSetting = ListAllTaskViewResponseBodyResultViewSetting;
class ListAllTaskViewResponseBodyResult extends $tea.Model {
    static names() {
        return {
            boundToObjectId: 'boundToObjectId',
            boundToObjectType: 'boundToObjectType',
            created: 'created',
            creatorId: 'creatorId',
            description: 'description',
            filter: 'filter',
            groupType: 'groupType',
            id: 'id',
            isDeleted: 'isDeleted',
            name: 'name',
            orderType: 'orderType',
            organizationId: 'organizationId',
            showType: 'showType',
            toolbarInfo: 'toolbarInfo',
            tql: 'tql',
            updated: 'updated',
            viewSetting: 'viewSetting',
        };
    }
    static types() {
        return {
            boundToObjectId: 'string',
            boundToObjectType: 'string',
            created: 'string',
            creatorId: 'string',
            description: 'string',
            filter: ListAllTaskViewResponseBodyResultFilter,
            groupType: ListAllTaskViewResponseBodyResultGroupType,
            id: 'string',
            isDeleted: 'boolean',
            name: 'string',
            orderType: ListAllTaskViewResponseBodyResultOrderType,
            organizationId: 'string',
            showType: ListAllTaskViewResponseBodyResultShowType,
            toolbarInfo: ListAllTaskViewResponseBodyResultToolbarInfo,
            tql: 'string',
            updated: 'string',
            viewSetting: ListAllTaskViewResponseBodyResultViewSetting,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAllTaskViewResponseBodyResult = ListAllTaskViewResponseBodyResult;
class ListMyShortcutViewsResponseBodyResultFilterConditionsOp extends $tea.Model {
    static names() {
        return {
            value: 'value',
        };
    }
    static types() {
        return {
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListMyShortcutViewsResponseBodyResultFilterConditionsOp = ListMyShortcutViewsResponseBodyResultFilterConditionsOp;
class ListMyShortcutViewsResponseBodyResultFilterConditionsValues extends $tea.Model {
    static names() {
        return {
            deep: 'deep',
            id: 'id',
            label: 'label',
            name: 'name',
            value: 'value',
        };
    }
    static types() {
        return {
            deep: 'string',
            id: 'string',
            label: 'string',
            name: 'string',
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListMyShortcutViewsResponseBodyResultFilterConditionsValues = ListMyShortcutViewsResponseBodyResultFilterConditionsValues;
class ListMyShortcutViewsResponseBodyResultFilterConditions extends $tea.Model {
    static names() {
        return {
            fixed: 'fixed',
            key: 'key',
            op: 'op',
            values: 'values',
        };
    }
    static types() {
        return {
            fixed: 'boolean',
            key: 'string',
            op: ListMyShortcutViewsResponseBodyResultFilterConditionsOp,
            values: { 'type': 'array', 'itemType': ListMyShortcutViewsResponseBodyResultFilterConditionsValues },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListMyShortcutViewsResponseBodyResultFilterConditions = ListMyShortcutViewsResponseBodyResultFilterConditions;
class ListMyShortcutViewsResponseBodyResultFilterInvisibleConditionsOp extends $tea.Model {
    static names() {
        return {
            value: 'value',
        };
    }
    static types() {
        return {
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListMyShortcutViewsResponseBodyResultFilterInvisibleConditionsOp = ListMyShortcutViewsResponseBodyResultFilterInvisibleConditionsOp;
class ListMyShortcutViewsResponseBodyResultFilterInvisibleConditionsValues extends $tea.Model {
    static names() {
        return {
            deep: 'deep',
            id: 'id',
            label: 'label',
            name: 'name',
            value: 'value',
        };
    }
    static types() {
        return {
            deep: 'string',
            id: 'string',
            label: 'string',
            name: 'string',
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListMyShortcutViewsResponseBodyResultFilterInvisibleConditionsValues = ListMyShortcutViewsResponseBodyResultFilterInvisibleConditionsValues;
class ListMyShortcutViewsResponseBodyResultFilterInvisibleConditions extends $tea.Model {
    static names() {
        return {
            fixed: 'fixed',
            key: 'key',
            op: 'op',
            values: 'values',
        };
    }
    static types() {
        return {
            fixed: 'boolean',
            key: 'string',
            op: ListMyShortcutViewsResponseBodyResultFilterInvisibleConditionsOp,
            values: { 'type': 'array', 'itemType': ListMyShortcutViewsResponseBodyResultFilterInvisibleConditionsValues },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListMyShortcutViewsResponseBodyResultFilterInvisibleConditions = ListMyShortcutViewsResponseBodyResultFilterInvisibleConditions;
class ListMyShortcutViewsResponseBodyResultFilter extends $tea.Model {
    static names() {
        return {
            conditions: 'conditions',
            invisibleConditions: 'invisibleConditions',
            logic: 'logic',
            logicDisabled: 'logicDisabled',
            q: 'q',
        };
    }
    static types() {
        return {
            conditions: { 'type': 'array', 'itemType': ListMyShortcutViewsResponseBodyResultFilterConditions },
            invisibleConditions: { 'type': 'array', 'itemType': ListMyShortcutViewsResponseBodyResultFilterInvisibleConditions },
            logic: 'string',
            logicDisabled: 'boolean',
            q: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListMyShortcutViewsResponseBodyResultFilter = ListMyShortcutViewsResponseBodyResultFilter;
class ListMyShortcutViewsResponseBodyResultGroupType extends $tea.Model {
    static names() {
        return {
            canCreateGroup: 'canCreateGroup',
            name: 'name',
            value: 'value',
        };
    }
    static types() {
        return {
            canCreateGroup: 'boolean',
            name: 'string',
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListMyShortcutViewsResponseBodyResultGroupType = ListMyShortcutViewsResponseBodyResultGroupType;
class ListMyShortcutViewsResponseBodyResultOrderType extends $tea.Model {
    static names() {
        return {
            direction: 'direction',
            name: 'name',
            value: 'value',
        };
    }
    static types() {
        return {
            direction: 'string',
            name: 'string',
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListMyShortcutViewsResponseBodyResultOrderType = ListMyShortcutViewsResponseBodyResultOrderType;
class ListMyShortcutViewsResponseBodyResultShowType extends $tea.Model {
    static names() {
        return {
            name: 'name',
            value: 'value',
        };
    }
    static types() {
        return {
            name: 'string',
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListMyShortcutViewsResponseBodyResultShowType = ListMyShortcutViewsResponseBodyResultShowType;
class ListMyShortcutViewsResponseBodyResultToolbarInfoGroupTypesSetting extends $tea.Model {
    static names() {
        return {
            dateType: 'dateType',
            fieldName: 'fieldName',
            fieldType: 'fieldType',
        };
    }
    static types() {
        return {
            dateType: 'string',
            fieldName: 'string',
            fieldType: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListMyShortcutViewsResponseBodyResultToolbarInfoGroupTypesSetting = ListMyShortcutViewsResponseBodyResultToolbarInfoGroupTypesSetting;
class ListMyShortcutViewsResponseBodyResultToolbarInfoGroupTypes extends $tea.Model {
    static names() {
        return {
            canCreateGroup: 'canCreateGroup',
            name: 'name',
            serviceName: 'serviceName',
            setting: 'setting',
            value: 'value',
        };
    }
    static types() {
        return {
            canCreateGroup: 'boolean',
            name: 'string',
            serviceName: 'string',
            setting: ListMyShortcutViewsResponseBodyResultToolbarInfoGroupTypesSetting,
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListMyShortcutViewsResponseBodyResultToolbarInfoGroupTypes = ListMyShortcutViewsResponseBodyResultToolbarInfoGroupTypes;
class ListMyShortcutViewsResponseBodyResultToolbarInfoOrderTypes extends $tea.Model {
    static names() {
        return {
            direction: 'direction',
            name: 'name',
            supportDirection: 'supportDirection',
            value: 'value',
        };
    }
    static types() {
        return {
            direction: 'string',
            name: 'string',
            supportDirection: 'string',
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListMyShortcutViewsResponseBodyResultToolbarInfoOrderTypes = ListMyShortcutViewsResponseBodyResultToolbarInfoOrderTypes;
class ListMyShortcutViewsResponseBodyResultToolbarInfoShowTypes extends $tea.Model {
    static names() {
        return {
            name: 'name',
            value: 'value',
        };
    }
    static types() {
        return {
            name: 'string',
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListMyShortcutViewsResponseBodyResultToolbarInfoShowTypes = ListMyShortcutViewsResponseBodyResultToolbarInfoShowTypes;
class ListMyShortcutViewsResponseBodyResultToolbarInfo extends $tea.Model {
    static names() {
        return {
            groupTypes: 'groupTypes',
            orderTypes: 'orderTypes',
            showTypes: 'showTypes',
        };
    }
    static types() {
        return {
            groupTypes: { 'type': 'array', 'itemType': ListMyShortcutViewsResponseBodyResultToolbarInfoGroupTypes },
            orderTypes: { 'type': 'array', 'itemType': ListMyShortcutViewsResponseBodyResultToolbarInfoOrderTypes },
            showTypes: { 'type': 'array', 'itemType': ListMyShortcutViewsResponseBodyResultToolbarInfoShowTypes },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListMyShortcutViewsResponseBodyResultToolbarInfo = ListMyShortcutViewsResponseBodyResultToolbarInfo;
class ListMyShortcutViewsResponseBodyResultViewSetting extends $tea.Model {
    static names() {
        return {
            showDoneTask: 'showDoneTask',
            showSubTask: 'showSubTask',
        };
    }
    static types() {
        return {
            showDoneTask: 'boolean',
            showSubTask: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListMyShortcutViewsResponseBodyResultViewSetting = ListMyShortcutViewsResponseBodyResultViewSetting;
class ListMyShortcutViewsResponseBodyResult extends $tea.Model {
    static names() {
        return {
            boundToObjectId: 'boundToObjectId',
            boundToObjectType: 'boundToObjectType',
            created: 'created',
            creatorId: 'creatorId',
            description: 'description',
            filter: 'filter',
            groupType: 'groupType',
            id: 'id',
            isDeleted: 'isDeleted',
            name: 'name',
            orderType: 'orderType',
            organizationId: 'organizationId',
            showType: 'showType',
            toolbarInfo: 'toolbarInfo',
            tql: 'tql',
            updated: 'updated',
            viewSetting: 'viewSetting',
        };
    }
    static types() {
        return {
            boundToObjectId: 'string',
            boundToObjectType: 'string',
            created: 'string',
            creatorId: 'string',
            description: 'string',
            filter: ListMyShortcutViewsResponseBodyResultFilter,
            groupType: ListMyShortcutViewsResponseBodyResultGroupType,
            id: 'string',
            isDeleted: 'boolean',
            name: 'string',
            orderType: ListMyShortcutViewsResponseBodyResultOrderType,
            organizationId: 'string',
            showType: ListMyShortcutViewsResponseBodyResultShowType,
            toolbarInfo: ListMyShortcutViewsResponseBodyResultToolbarInfo,
            tql: 'string',
            updated: 'string',
            viewSetting: ListMyShortcutViewsResponseBodyResultViewSetting,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListMyShortcutViewsResponseBodyResult = ListMyShortcutViewsResponseBodyResult;
class QueryAllTaskResponseBodyResultCustomfieldsValue extends $tea.Model {
    static names() {
        return {
            id: 'id',
            metaString: 'metaString',
            title: 'title',
        };
    }
    static types() {
        return {
            id: 'string',
            metaString: 'string',
            title: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryAllTaskResponseBodyResultCustomfieldsValue = QueryAllTaskResponseBodyResultCustomfieldsValue;
class QueryAllTaskResponseBodyResultCustomfields extends $tea.Model {
    static names() {
        return {
            cfId: 'cfId',
            type: 'type',
            value: 'value',
        };
    }
    static types() {
        return {
            cfId: 'string',
            type: 'string',
            value: { 'type': 'array', 'itemType': QueryAllTaskResponseBodyResultCustomfieldsValue },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryAllTaskResponseBodyResultCustomfields = QueryAllTaskResponseBodyResultCustomfields;
class QueryAllTaskResponseBodyResult extends $tea.Model {
    static names() {
        return {
            accomplishTime: 'accomplishTime',
            ancestorIds: 'ancestorIds',
            content: 'content',
            created: 'created',
            creatorId: 'creatorId',
            customfields: 'customfields',
            dueDate: 'dueDate',
            executorId: 'executorId',
            id: 'id',
            involveMembers: 'involveMembers',
            isArchived: 'isArchived',
            isDone: 'isDone',
            note: 'note',
            parentTaskId: 'parentTaskId',
            priority: 'priority',
            projectId: 'projectId',
            sfcId: 'sfcId',
            stageId: 'stageId',
            startDate: 'startDate',
            tagIds: 'tagIds',
            taskId: 'taskId',
            tasklistId: 'tasklistId',
            tfsId: 'tfsId',
            uniqueId: 'uniqueId',
            updated: 'updated',
            visible: 'visible',
        };
    }
    static types() {
        return {
            accomplishTime: 'string',
            ancestorIds: { 'type': 'array', 'itemType': 'string' },
            content: 'string',
            created: 'string',
            creatorId: 'string',
            customfields: { 'type': 'array', 'itemType': QueryAllTaskResponseBodyResultCustomfields },
            dueDate: 'string',
            executorId: 'string',
            id: 'string',
            involveMembers: { 'type': 'array', 'itemType': 'string' },
            isArchived: 'boolean',
            isDone: 'boolean',
            note: 'string',
            parentTaskId: 'string',
            priority: 'number',
            projectId: 'string',
            sfcId: 'string',
            stageId: 'string',
            startDate: 'string',
            tagIds: { 'type': 'array', 'itemType': 'string' },
            taskId: 'string',
            tasklistId: 'string',
            tfsId: 'string',
            uniqueId: 'string',
            updated: 'string',
            visible: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryAllTaskResponseBodyResult = QueryAllTaskResponseBodyResult;
class QueryTaskResponseBodyResultCustomfieldsValue extends $tea.Model {
    static names() {
        return {
            id: 'id',
            metaString: 'metaString',
            title: 'title',
        };
    }
    static types() {
        return {
            id: 'string',
            metaString: 'string',
            title: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTaskResponseBodyResultCustomfieldsValue = QueryTaskResponseBodyResultCustomfieldsValue;
class QueryTaskResponseBodyResultCustomfields extends $tea.Model {
    static names() {
        return {
            cfId: 'cfId',
            type: 'type',
            value: 'value',
        };
    }
    static types() {
        return {
            cfId: 'string',
            type: 'string',
            value: { 'type': 'array', 'itemType': QueryTaskResponseBodyResultCustomfieldsValue },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTaskResponseBodyResultCustomfields = QueryTaskResponseBodyResultCustomfields;
class QueryTaskResponseBodyResultExecutorUserInfo extends $tea.Model {
    static names() {
        return {
            avatarUrl: 'avatarUrl',
            id: 'id',
            memberId: 'memberId',
            name: 'name',
            userId: 'userId',
        };
    }
    static types() {
        return {
            avatarUrl: 'string',
            id: 'string',
            memberId: 'string',
            name: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTaskResponseBodyResultExecutorUserInfo = QueryTaskResponseBodyResultExecutorUserInfo;
class QueryTaskResponseBodyResultProjectInfo extends $tea.Model {
    static names() {
        return {
            id: 'id',
            logo: 'logo',
            name: 'name',
            organizationId: 'organizationId',
        };
    }
    static types() {
        return {
            id: 'string',
            logo: 'string',
            name: 'string',
            organizationId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTaskResponseBodyResultProjectInfo = QueryTaskResponseBodyResultProjectInfo;
class QueryTaskResponseBodyResult extends $tea.Model {
    static names() {
        return {
            accomplishTime: 'accomplishTime',
            content: 'content',
            created: 'created',
            creatorId: 'creatorId',
            customfields: 'customfields',
            dueDate: 'dueDate',
            executorId: 'executorId',
            executorUserInfo: 'executorUserInfo',
            id: 'id',
            involveMembers: 'involveMembers',
            isDone: 'isDone',
            note: 'note',
            projectId: 'projectId',
            projectInfo: 'projectInfo',
            taskId: 'taskId',
            updated: 'updated',
        };
    }
    static types() {
        return {
            accomplishTime: 'string',
            content: 'string',
            created: 'string',
            creatorId: 'string',
            customfields: { 'type': 'array', 'itemType': QueryTaskResponseBodyResultCustomfields },
            dueDate: 'string',
            executorId: 'string',
            executorUserInfo: QueryTaskResponseBodyResultExecutorUserInfo,
            id: 'string',
            involveMembers: { 'type': 'array', 'itemType': 'string' },
            isDone: 'boolean',
            note: 'string',
            projectId: 'string',
            projectInfo: QueryTaskResponseBodyResultProjectInfo,
            taskId: 'string',
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTaskResponseBodyResult = QueryTaskResponseBodyResult;
class QueryTasksV3ResponseBodyResultCustomfieldsValue extends $tea.Model {
    static names() {
        return {
            id: 'id',
            metaString: 'metaString',
            title: 'title',
        };
    }
    static types() {
        return {
            id: 'string',
            metaString: 'string',
            title: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTasksV3ResponseBodyResultCustomfieldsValue = QueryTasksV3ResponseBodyResultCustomfieldsValue;
class QueryTasksV3ResponseBodyResultCustomfields extends $tea.Model {
    static names() {
        return {
            cfId: 'cfId',
            type: 'type',
            value: 'value',
        };
    }
    static types() {
        return {
            cfId: 'string',
            type: 'string',
            value: { 'type': 'array', 'itemType': QueryTasksV3ResponseBodyResultCustomfieldsValue },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTasksV3ResponseBodyResultCustomfields = QueryTasksV3ResponseBodyResultCustomfields;
class QueryTasksV3ResponseBodyResult extends $tea.Model {
    static names() {
        return {
            accomplishTime: 'accomplishTime',
            content: 'content',
            created: 'created',
            creatorId: 'creatorId',
            customfields: 'customfields',
            dueDate: 'dueDate',
            executorId: 'executorId',
            id: 'id',
            involveMembers: 'involveMembers',
            isDone: 'isDone',
            note: 'note',
            projectId: 'projectId',
            sourceId: 'sourceId',
            taskId: 'taskId',
            updated: 'updated',
        };
    }
    static types() {
        return {
            accomplishTime: 'string',
            content: 'string',
            created: 'string',
            creatorId: 'string',
            customfields: { 'type': 'array', 'itemType': QueryTasksV3ResponseBodyResultCustomfields },
            dueDate: 'string',
            executorId: 'string',
            id: 'string',
            involveMembers: { 'type': 'array', 'itemType': 'string' },
            isDone: 'boolean',
            note: 'string',
            projectId: 'string',
            sourceId: 'string',
            taskId: 'string',
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTasksV3ResponseBodyResult = QueryTasksV3ResponseBodyResult;
class SearchProjectCustomFiledsV3ResponseBodyResultAdvancedCustomfield extends $tea.Model {
    static names() {
        return {
            id: 'id',
            name: 'name',
            objectType: 'objectType',
        };
    }
    static types() {
        return {
            id: 'string',
            name: 'string',
            objectType: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchProjectCustomFiledsV3ResponseBodyResultAdvancedCustomfield = SearchProjectCustomFiledsV3ResponseBodyResultAdvancedCustomfield;
class SearchProjectCustomFiledsV3ResponseBodyResultChoices extends $tea.Model {
    static names() {
        return {
            id: 'id',
            value: 'value',
        };
    }
    static types() {
        return {
            id: 'string',
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchProjectCustomFiledsV3ResponseBodyResultChoices = SearchProjectCustomFiledsV3ResponseBodyResultChoices;
class SearchProjectCustomFiledsV3ResponseBodyResult extends $tea.Model {
    static names() {
        return {
            advancedCustomfield: 'advancedCustomfield',
            boundToObjectId: 'boundToObjectId',
            boundToObjectType: 'boundToObjectType',
            choices: 'choices',
            created: 'created',
            creatorId: 'creatorId',
            id: 'id',
            name: 'name',
            originalId: 'originalId',
            type: 'type',
        };
    }
    static types() {
        return {
            advancedCustomfield: SearchProjectCustomFiledsV3ResponseBodyResultAdvancedCustomfield,
            boundToObjectId: 'string',
            boundToObjectType: 'string',
            choices: { 'type': 'array', 'itemType': SearchProjectCustomFiledsV3ResponseBodyResultChoices },
            created: 'string',
            creatorId: 'string',
            id: 'string',
            name: 'string',
            originalId: 'string',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchProjectCustomFiledsV3ResponseBodyResult = SearchProjectCustomFiledsV3ResponseBodyResult;
class SearchProjectsV3ResponseBodyResult extends $tea.Model {
    static names() {
        return {
            created: 'created',
            creatorId: 'creatorId',
            description: 'description',
            id: 'id',
            isArchived: 'isArchived',
            isTemplate: 'isTemplate',
            logo: 'logo',
            name: 'name',
            organizationId: 'organizationId',
            sourceId: 'sourceId',
            updated: 'updated',
        };
    }
    static types() {
        return {
            created: 'string',
            creatorId: 'string',
            description: 'string',
            id: 'string',
            isArchived: 'boolean',
            isTemplate: 'boolean',
            logo: 'string',
            name: 'string',
            organizationId: 'string',
            sourceId: 'string',
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchProjectsV3ResponseBodyResult = SearchProjectsV3ResponseBodyResult;
class UpdateProjectMemberRoleV3ResponseBodyResult extends $tea.Model {
    static names() {
        return {
            id: 'id',
            role: 'role',
            roleIds: 'roleIds',
            userId: 'userId',
        };
    }
    static types() {
        return {
            id: 'string',
            role: 'number',
            roleIds: { 'type': 'array', 'itemType': 'string' },
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateProjectMemberRoleV3ResponseBodyResult = UpdateProjectMemberRoleV3ResponseBodyResult;
class UpdateProjectV3ResponseBodyResult extends $tea.Model {
    static names() {
        return {
            updated: 'updated',
        };
    }
    static types() {
        return {
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateProjectV3ResponseBodyResult = UpdateProjectV3ResponseBodyResult;
class Client extends openapi_client_1.default {
    constructor(config) {
        super(config);
        let gatewayClient = new gateway_dingtalk_1.default();
        this._spi = gatewayClient;
        this._endpointRule = "";
        if (tea_util_1.default.empty(this._endpoint)) {
            this._endpoint = "api.dingtalk.com";
        }
    }
    /**
     * 查询任务概览
     *
     * @param request - AnalysisReportRequest
     * @param headers - AnalysisReportHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns AnalysisReportResponse
     */
    async analysisReportWithOptions(userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.filter)) {
            body["filter"] = request.filter;
        }
        if (!tea_util_1.default.isUnset(request.reportId)) {
            body["reportId"] = request.reportId;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "AnalysisReport",
            version: "teamSphere_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/teamSphere/users/${userId}/analyses/report`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new AnalysisReportResponse({}));
    }
    /**
     * 查询任务概览
     *
     * @param request - AnalysisReportRequest
     * @returns AnalysisReportResponse
     */
    async analysisReport(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new AnalysisReportHeaders({});
        return await this.analysisReportWithOptions(userId, request, headers, runtime);
    }
    /**
     * 创建自由任务
     *
     * @param request - CreateOrganizationTaskRequest
     * @param headers - CreateOrganizationTaskHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns CreateOrganizationTaskResponse
     */
    async createOrganizationTaskWithOptions(userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.content)) {
            body["content"] = request.content;
        }
        if (!tea_util_1.default.isUnset(request.disableActivity)) {
            body["disableActivity"] = request.disableActivity;
        }
        if (!tea_util_1.default.isUnset(request.disableNotification)) {
            body["disableNotification"] = request.disableNotification;
        }
        if (!tea_util_1.default.isUnset(request.dueDate)) {
            body["dueDate"] = request.dueDate;
        }
        if (!tea_util_1.default.isUnset(request.executorId)) {
            body["executorId"] = request.executorId;
        }
        if (!tea_util_1.default.isUnset(request.involveMembers)) {
            body["involveMembers"] = request.involveMembers;
        }
        if (!tea_util_1.default.isUnset(request.note)) {
            body["note"] = request.note;
        }
        if (!tea_util_1.default.isUnset(request.visible)) {
            body["visible"] = request.visible;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "CreateOrganizationTask",
            version: "teamSphere_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/teamSphere/organizations/users/${userId}/tasks`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new CreateOrganizationTaskResponse({}));
    }
    /**
     * 创建自由任务
     *
     * @param request - CreateOrganizationTaskRequest
     * @returns CreateOrganizationTaskResponse
     */
    async createOrganizationTask(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new CreateOrganizationTaskHeaders({});
        return await this.createOrganizationTaskWithOptions(userId, request, headers, runtime);
    }
    /**
     * 创建项目成员
     *
     * @param request - CreateProjectMembersV3Request
     * @param headers - CreateProjectMembersV3Headers
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns CreateProjectMembersV3Response
     */
    async createProjectMembersV3WithOptions(userId, projectId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.userIds)) {
            body["userIds"] = request.userIds;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "CreateProjectMembersV3",
            version: "teamSphere_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/teamSphere/users/${userId}/projects/${projectId}/members`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new CreateProjectMembersV3Response({}));
    }
    /**
     * 创建项目成员
     *
     * @param request - CreateProjectMembersV3Request
     * @returns CreateProjectMembersV3Response
     */
    async createProjectMembersV3(userId, projectId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new CreateProjectMembersV3Headers({});
        return await this.createProjectMembersV3WithOptions(userId, projectId, request, headers, runtime);
    }
    /**
     * 创建协作空间。
     *
     * @param request - CreateProjectV3Request
     * @param headers - CreateProjectV3Headers
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns CreateProjectV3Response
     */
    async createProjectV3WithOptions(userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.organizationId)) {
            query["organizationId"] = request.organizationId;
        }
        let body = {};
        if (!tea_util_1.default.isUnset(request.name)) {
            body["name"] = request.name;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "CreateProjectV3",
            version: "teamSphere_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/teamSphere/users/${userId}/projects`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new CreateProjectV3Response({}));
    }
    /**
     * 创建协作空间。
     *
     * @param request - CreateProjectV3Request
     * @returns CreateProjectV3Response
     */
    async createProjectV3(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new CreateProjectV3Headers({});
        return await this.createProjectV3WithOptions(userId, request, headers, runtime);
    }
    /**
     * 创建协作空间任务
     *
     * @param request - CreateTaskRequest
     * @param headers - CreateTaskHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns CreateTaskResponse
     */
    async createTaskWithOptions(userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.content)) {
            body["content"] = request.content;
        }
        if (!tea_util_1.default.isUnset(request.customfields)) {
            body["customfields"] = request.customfields;
        }
        if (!tea_util_1.default.isUnset(request.disableActivity)) {
            body["disableActivity"] = request.disableActivity;
        }
        if (!tea_util_1.default.isUnset(request.disableNotification)) {
            body["disableNotification"] = request.disableNotification;
        }
        if (!tea_util_1.default.isUnset(request.dueDate)) {
            body["dueDate"] = request.dueDate;
        }
        if (!tea_util_1.default.isUnset(request.executorId)) {
            body["executorId"] = request.executorId;
        }
        if (!tea_util_1.default.isUnset(request.note)) {
            body["note"] = request.note;
        }
        if (!tea_util_1.default.isUnset(request.projectId)) {
            body["projectId"] = request.projectId;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "CreateTask",
            version: "teamSphere_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/teamSphere/users/${userId}/tasks`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new CreateTaskResponse({}));
    }
    /**
     * 创建协作空间任务
     *
     * @param request - CreateTaskRequest
     * @returns CreateTaskResponse
     */
    async createTask(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new CreateTaskHeaders({});
        return await this.createTaskWithOptions(userId, request, headers, runtime);
    }
    /**
     * 删除项目成员。
     *
     * @param request - DeleteProjectMembersV3Request
     * @param headers - DeleteProjectMembersV3Headers
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns DeleteProjectMembersV3Response
     */
    async deleteProjectMembersV3WithOptions(userId, projectId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.userIds)) {
            body["userIds"] = request.userIds;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "DeleteProjectMembersV3",
            version: "teamSphere_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/teamSphere/users/${userId}/projects/${projectId}/members/remove`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new DeleteProjectMembersV3Response({}));
    }
    /**
     * 删除项目成员。
     *
     * @param request - DeleteProjectMembersV3Request
     * @returns DeleteProjectMembersV3Response
     */
    async deleteProjectMembersV3(userId, projectId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new DeleteProjectMembersV3Headers({});
        return await this.deleteProjectMembersV3WithOptions(userId, projectId, request, headers, runtime);
    }
    /**
     * 获取最近访问的项目
     *
     * @param headers - GetFootprintProjectHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetFootprintProjectResponse
     */
    async getFootprintProjectWithOptions(userId, headers, runtime) {
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
        });
        let params = new $OpenApi.Params({
            action: "GetFootprintProject",
            version: "teamSphere_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/teamSphere/users/${userId}/footprints/projects`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetFootprintProjectResponse({}));
    }
    /**
     * 获取最近访问的项目
     * @returns GetFootprintProjectResponse
     */
    async getFootprintProject(userId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetFootprintProjectHeaders({});
        return await this.getFootprintProjectWithOptions(userId, headers, runtime);
    }
    /**
     * 获取最近访问的任务
     *
     * @param headers - GetFootprintTaskHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetFootprintTaskResponse
     */
    async getFootprintTaskWithOptions(userId, headers, runtime) {
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
        });
        let params = new $OpenApi.Params({
            action: "GetFootprintTask",
            version: "teamSphere_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/teamSphere/users/${userId}/footprints/tasks`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetFootprintTaskResponse({}));
    }
    /**
     * 获取最近访问的任务
     * @returns GetFootprintTaskResponse
     */
    async getFootprintTask(userId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetFootprintTaskHeaders({});
        return await this.getFootprintTaskWithOptions(userId, headers, runtime);
    }
    /**
     * 查询轻任务详情。
     *
     * @param request - GetFreeTaskRequest
     * @param headers - GetFreeTaskHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetFreeTaskResponse
     */
    async getFreeTaskWithOptions(taskId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.userId)) {
            query["userId"] = request.userId;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
        });
        let params = new $OpenApi.Params({
            action: "GetFreeTask",
            version: "teamSphere_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/teamSphere/organizations/tasks/${taskId}`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetFreeTaskResponse({}));
    }
    /**
     * 查询轻任务详情。
     *
     * @param request - GetFreeTaskRequest
     * @returns GetFreeTaskResponse
     */
    async getFreeTask(taskId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetFreeTaskHeaders({});
        return await this.getFreeTaskWithOptions(taskId, request, headers, runtime);
    }
    /**
     * 获取协作空间成员列表。
     *
     * @param request - GetProjectMembersV3Request
     * @param headers - GetProjectMembersV3Headers
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetProjectMembersV3Response
     */
    async getProjectMembersV3WithOptions(userId, projectId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.maxResults)) {
            query["maxResults"] = request.maxResults;
        }
        if (!tea_util_1.default.isUnset(request.nextToken)) {
            query["nextToken"] = request.nextToken;
        }
        if (!tea_util_1.default.isUnset(request.projectRoleId)) {
            query["projectRoleId"] = request.projectRoleId;
        }
        if (!tea_util_1.default.isUnset(request.userIds)) {
            query["userIds"] = request.userIds;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
        });
        let params = new $OpenApi.Params({
            action: "GetProjectMembersV3",
            version: "teamSphere_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/teamSphere/users/${userId}/projects/${projectId}/members`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetProjectMembersV3Response({}));
    }
    /**
     * 获取协作空间成员列表。
     *
     * @param request - GetProjectMembersV3Request
     * @returns GetProjectMembersV3Response
     */
    async getProjectMembersV3(userId, projectId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetProjectMembersV3Headers({});
        return await this.getProjectMembersV3WithOptions(userId, projectId, request, headers, runtime);
    }
    /**
     * 获取项目角色列表。
     *
     * @param request - GetProjectRolesV3Request
     * @param headers - GetProjectRolesV3Headers
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetProjectRolesV3Response
     */
    async getProjectRolesV3WithOptions(userId, projectId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.includeHidden)) {
            query["includeHidden"] = request.includeHidden;
        }
        if (!tea_util_1.default.isUnset(request.level)) {
            query["level"] = request.level;
        }
        if (!tea_util_1.default.isUnset(request.maxResults)) {
            query["maxResults"] = request.maxResults;
        }
        if (!tea_util_1.default.isUnset(request.nextToken)) {
            query["nextToken"] = request.nextToken;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
        });
        let params = new $OpenApi.Params({
            action: "GetProjectRolesV3",
            version: "teamSphere_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/teamSphere/users/${userId}/projects/${projectId}/roles`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetProjectRolesV3Response({}));
    }
    /**
     * 获取项目角色列表。
     *
     * @param request - GetProjectRolesV3Request
     * @returns GetProjectRolesV3Response
     */
    async getProjectRolesV3(userId, projectId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetProjectRolesV3Headers({});
        return await this.getProjectRolesV3WithOptions(userId, projectId, request, headers, runtime);
    }
    /**
     * 获取用户星标协作空间
     *
     * @param request - GetStaredProjectsRequest
     * @param headers - GetStaredProjectsHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetStaredProjectsResponse
     */
    async getStaredProjectsWithOptions(userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.maxResults)) {
            query["maxResults"] = request.maxResults;
        }
        if (!tea_util_1.default.isUnset(request.nextToken)) {
            query["nextToken"] = request.nextToken;
        }
        if (!tea_util_1.default.isUnset(request.sortBy)) {
            query["sortBy"] = request.sortBy;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
        });
        let params = new $OpenApi.Params({
            action: "GetStaredProjects",
            version: "teamSphere_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/teamSphere/users/${userId}/staredProjects`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetStaredProjectsResponse({}));
    }
    /**
     * 获取用户星标协作空间
     *
     * @param request - GetStaredProjectsRequest
     * @returns GetStaredProjectsResponse
     */
    async getStaredProjects(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetStaredProjectsHeaders({});
        return await this.getStaredProjectsWithOptions(userId, request, headers, runtime);
    }
    /**
     * 钉钉 userId 查询 24位长 userId。
     *
     * @param request - GetTbUserIdByDingUserIdRequest
     * @param headers - GetTbUserIdByDingUserIdHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetTbUserIdByDingUserIdResponse
     */
    async getTbUserIdByDingUserIdWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.dingUserIds)) {
            query["dingUserIds"] = request.dingUserIds;
        }
        if (!tea_util_1.default.isUnset(request.userId)) {
            query["userId"] = request.userId;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
        });
        let params = new $OpenApi.Params({
            action: "GetTbUserIdByDingUserId",
            version: "teamSphere_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/teamSphere/idmaps/userIds`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetTbUserIdByDingUserIdResponse({}));
    }
    /**
     * 钉钉 userId 查询 24位长 userId。
     *
     * @param request - GetTbUserIdByDingUserIdRequest
     * @returns GetTbUserIdByDingUserIdResponse
     */
    async getTbUserIdByDingUserId(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetTbUserIdByDingUserIdHeaders({});
        return await this.getTbUserIdByDingUserIdWithOptions(request, headers, runtime);
    }
    /**
     * 获取快办企业ID
     *
     * @param headers - GetThingOrgIdByDingOrgIdHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetThingOrgIdByDingOrgIdResponse
     */
    async getThingOrgIdByDingOrgIdWithOptions(headers, runtime) {
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
        });
        let params = new $OpenApi.Params({
            action: "GetThingOrgIdByDingOrgId",
            version: "teamSphere_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/teamSphere/organizations`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetThingOrgIdByDingOrgIdResponse({}));
    }
    /**
     * 获取快办企业ID
     * @returns GetThingOrgIdByDingOrgIdResponse
     */
    async getThingOrgIdByDingOrgId() {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetThingOrgIdByDingOrgIdHeaders({});
        return await this.getThingOrgIdByDingOrgIdWithOptions(headers, runtime);
    }
    /**
     * 获取用户参与项目。
     *
     * @param request - GetUserJoinedProjectsV3Request
     * @param headers - GetUserJoinedProjectsV3Headers
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetUserJoinedProjectsV3Response
     */
    async getUserJoinedProjectsV3WithOptions(userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.maxResults)) {
            query["maxResults"] = request.maxResults;
        }
        if (!tea_util_1.default.isUnset(request.nextToken)) {
            query["nextToken"] = request.nextToken;
        }
        if (!tea_util_1.default.isUnset(request.projectIds)) {
            query["projectIds"] = request.projectIds;
        }
        if (!tea_util_1.default.isUnset(request.projectRoleLevels)) {
            query["projectRoleLevels"] = request.projectRoleLevels;
        }
        if (!tea_util_1.default.isUnset(request.sortBy)) {
            query["sortBy"] = request.sortBy;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
        });
        let params = new $OpenApi.Params({
            action: "GetUserJoinedProjectsV3",
            version: "teamSphere_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/teamSphere/users/${userId}/projects/userJoined`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetUserJoinedProjectsV3Response({}));
    }
    /**
     * 获取用户参与项目。
     *
     * @param request - GetUserJoinedProjectsV3Request
     * @returns GetUserJoinedProjectsV3Response
     */
    async getUserJoinedProjectsV3(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetUserJoinedProjectsV3Headers({});
        return await this.getUserJoinedProjectsV3WithOptions(userId, request, headers, runtime);
    }
    /**
     * 获取全部任务
     *
     * @param headers - ListAllTaskViewHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ListAllTaskViewResponse
     */
    async listAllTaskViewWithOptions(userId, headers, runtime) {
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
        });
        let params = new $OpenApi.Params({
            action: "ListAllTaskView",
            version: "teamSphere_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/teamSphere/users/${userId}/allTaskViews`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new ListAllTaskViewResponse({}));
    }
    /**
     * 获取全部任务
     * @returns ListAllTaskViewResponse
     */
    async listAllTaskView(userId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new ListAllTaskViewHeaders({});
        return await this.listAllTaskViewWithOptions(userId, headers, runtime);
    }
    /**
     * 查询我的捷径
     *
     * @param request - ListMyShortcutViewsRequest
     * @param headers - ListMyShortcutViewsHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ListMyShortcutViewsResponse
     */
    async listMyShortcutViewsWithOptions(userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.maxResults)) {
            query["maxResults"] = request.maxResults;
        }
        if (!tea_util_1.default.isUnset(request.nextToken)) {
            query["nextToken"] = request.nextToken;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
        });
        let params = new $OpenApi.Params({
            action: "ListMyShortcutViews",
            version: "teamSphere_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/teamSphere/users/${userId}/shortcutViews`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new ListMyShortcutViewsResponse({}));
    }
    /**
     * 查询我的捷径
     *
     * @param request - ListMyShortcutViewsRequest
     * @returns ListMyShortcutViewsResponse
     */
    async listMyShortcutViews(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new ListMyShortcutViewsHeaders({});
        return await this.listMyShortcutViewsWithOptions(userId, request, headers, runtime);
    }
    /**
     * 查询自由任务和项目任务详情。
     *
     * @param request - QueryAllTaskRequest
     * @param headers - QueryAllTaskHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns QueryAllTaskResponse
     */
    async queryAllTaskWithOptions(userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.taskId)) {
            query["taskId"] = request.taskId;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
        });
        let params = new $OpenApi.Params({
            action: "QueryAllTask",
            version: "teamSphere_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/teamSphere/users/${userId}/tasks/query`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new QueryAllTaskResponse({}));
    }
    /**
     * 查询自由任务和项目任务详情。
     *
     * @param request - QueryAllTaskRequest
     * @returns QueryAllTaskResponse
     */
    async queryAllTask(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new QueryAllTaskHeaders({});
        return await this.queryAllTaskWithOptions(userId, request, headers, runtime);
    }
    /**
     * 查询我的任务
     *
     * @param request - QueryTaskRequest
     * @param headers - QueryTaskHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns QueryTaskResponse
     */
    async queryTaskWithOptions(userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.maxResults)) {
            body["maxResults"] = request.maxResults;
        }
        if (!tea_util_1.default.isUnset(request.nextToken)) {
            body["nextToken"] = request.nextToken;
        }
        if (!tea_util_1.default.isUnset(request.tql)) {
            body["tql"] = request.tql;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "QueryTask",
            version: "teamSphere_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/teamSphere/users/${userId}/tasks/query`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new QueryTaskResponse({}));
    }
    /**
     * 查询我的任务
     *
     * @param request - QueryTaskRequest
     * @returns QueryTaskResponse
     */
    async queryTask(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new QueryTaskHeaders({});
        return await this.queryTaskWithOptions(userId, request, headers, runtime);
    }
    /**
     * 查询协作空间任务详情。
     *
     * @param request - QueryTasksV3Request
     * @param headers - QueryTasksV3Headers
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns QueryTasksV3Response
     */
    async queryTasksV3WithOptions(userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.taskId)) {
            query["taskId"] = request.taskId;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
        });
        let params = new $OpenApi.Params({
            action: "QueryTasksV3",
            version: "teamSphere_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/teamSphere/user/${userId}/tasks`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new QueryTasksV3Response({}));
    }
    /**
     * 查询协作空间任务详情。
     *
     * @param request - QueryTasksV3Request
     * @returns QueryTasksV3Response
     */
    async queryTasksV3(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new QueryTasksV3Headers({});
        return await this.queryTasksV3WithOptions(userId, request, headers, runtime);
    }
    /**
     * 通过TQL搜索自由任务和协作空间任务ID。
     *
     * @param request - SearchAllTasksByTqlRequest
     * @param headers - SearchAllTasksByTqlHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns SearchAllTasksByTqlResponse
     */
    async searchAllTasksByTqlWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.maxResults)) {
            query["maxResults"] = request.maxResults;
        }
        if (!tea_util_1.default.isUnset(request.nextToken)) {
            query["nextToken"] = request.nextToken;
        }
        if (!tea_util_1.default.isUnset(request.tql)) {
            query["tql"] = request.tql;
        }
        if (!tea_util_1.default.isUnset(request.userId)) {
            query["userId"] = request.userId;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
        });
        let params = new $OpenApi.Params({
            action: "SearchAllTasksByTql",
            version: "teamSphere_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/teamSphere/taskIds`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new SearchAllTasksByTqlResponse({}));
    }
    /**
     * 通过TQL搜索自由任务和协作空间任务ID。
     *
     * @param request - SearchAllTasksByTqlRequest
     * @returns SearchAllTasksByTqlResponse
     */
    async searchAllTasksByTql(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new SearchAllTasksByTqlHeaders({});
        return await this.searchAllTasksByTqlWithOptions(request, headers, runtime);
    }
    /**
     * 搜索项目自定义字段。
     *
     * @param request - SearchProjectCustomFiledsV3Request
     * @param headers - SearchProjectCustomFiledsV3Headers
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns SearchProjectCustomFiledsV3Response
     */
    async searchProjectCustomFiledsV3WithOptions(userId, projectId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.cfIds)) {
            query["cfIds"] = request.cfIds;
        }
        if (!tea_util_1.default.isUnset(request.maxResults)) {
            query["maxResults"] = request.maxResults;
        }
        if (!tea_util_1.default.isUnset(request.nextToken)) {
            query["nextToken"] = request.nextToken;
        }
        if (!tea_util_1.default.isUnset(request.sfcId)) {
            query["sfcId"] = request.sfcId;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
        });
        let params = new $OpenApi.Params({
            action: "SearchProjectCustomFiledsV3",
            version: "teamSphere_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/teamSphere/users/${userId}/projects/${projectId}/customFields`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new SearchProjectCustomFiledsV3Response({}));
    }
    /**
     * 搜索项目自定义字段。
     *
     * @param request - SearchProjectCustomFiledsV3Request
     * @returns SearchProjectCustomFiledsV3Response
     */
    async searchProjectCustomFiledsV3(userId, projectId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new SearchProjectCustomFiledsV3Headers({});
        return await this.searchProjectCustomFiledsV3WithOptions(userId, projectId, request, headers, runtime);
    }
    /**
     * 查询协作空间。
     *
     * @param request - SearchProjectsV3Request
     * @param headers - SearchProjectsV3Headers
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns SearchProjectsV3Response
     */
    async searchProjectsV3WithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.includeTemplate)) {
            query["includeTemplate"] = request.includeTemplate;
        }
        if (!tea_util_1.default.isUnset(request.maxResults)) {
            query["maxResults"] = request.maxResults;
        }
        if (!tea_util_1.default.isUnset(request.name)) {
            query["name"] = request.name;
        }
        if (!tea_util_1.default.isUnset(request.nextToken)) {
            query["nextToken"] = request.nextToken;
        }
        if (!tea_util_1.default.isUnset(request.projectIds)) {
            query["projectIds"] = request.projectIds;
        }
        if (!tea_util_1.default.isUnset(request.sourceId)) {
            query["sourceId"] = request.sourceId;
        }
        if (!tea_util_1.default.isUnset(request.userId)) {
            query["userId"] = request.userId;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
        });
        let params = new $OpenApi.Params({
            action: "SearchProjectsV3",
            version: "teamSphere_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/teamSphere/projects`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new SearchProjectsV3Response({}));
    }
    /**
     * 查询协作空间。
     *
     * @param request - SearchProjectsV3Request
     * @returns SearchProjectsV3Response
     */
    async searchProjectsV3(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new SearchProjectsV3Headers({});
        return await this.searchProjectsV3WithOptions(request, headers, runtime);
    }
    /**
     * 修改项目成员的角色。
     *
     * @param request - UpdateProjectMemberRoleV3Request
     * @param headers - UpdateProjectMemberRoleV3Headers
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateProjectMemberRoleV3Response
     */
    async updateProjectMemberRoleV3WithOptions(userId, projectId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.roleIds)) {
            body["roleIds"] = request.roleIds;
        }
        if (!tea_util_1.default.isUnset(request.userIds)) {
            body["userIds"] = request.userIds;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "UpdateProjectMemberRoleV3",
            version: "teamSphere_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/teamSphere/users/${userId}/projects/${projectId}/roles/assign`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateProjectMemberRoleV3Response({}));
    }
    /**
     * 修改项目成员的角色。
     *
     * @param request - UpdateProjectMemberRoleV3Request
     * @returns UpdateProjectMemberRoleV3Response
     */
    async updateProjectMemberRoleV3(userId, projectId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateProjectMemberRoleV3Headers({});
        return await this.updateProjectMemberRoleV3WithOptions(userId, projectId, request, headers, runtime);
    }
    /**
     * 更新协作空间。
     *
     * @param request - UpdateProjectV3Request
     * @param headers - UpdateProjectV3Headers
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateProjectV3Response
     */
    async updateProjectV3WithOptions(userId, projectId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.description)) {
            body["description"] = request.description;
        }
        if (!tea_util_1.default.isUnset(request.name)) {
            body["name"] = request.name;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "UpdateProjectV3",
            version: "teamSphere_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/teamSphere/users/${userId}/projects/${projectId}`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateProjectV3Response({}));
    }
    /**
     * 更新协作空间。
     *
     * @param request - UpdateProjectV3Request
     * @returns UpdateProjectV3Response
     */
    async updateProjectV3(userId, projectId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateProjectV3Headers({});
        return await this.updateProjectV3WithOptions(userId, projectId, request, headers, runtime);
    }
}
exports.default = Client;
//# sourceMappingURL=client.js.map