"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.DeleteProjectMemberResponse = exports.DeleteProjectMemberResponseBody = exports.DeleteProjectMemberRequest = exports.DeleteProjectMemberHeaders = exports.CreateWorkTimeApproveResponse = exports.CreateWorkTimeApproveResponseBody = exports.CreateWorkTimeApproveRequest = exports.CreateWorkTimeApproveHeaders = exports.CreateWorkTimeResponse = exports.CreateWorkTimeResponseBody = exports.CreateWorkTimeRequest = exports.CreateWorkTimeHeaders = exports.CreateTaskObjectLinkResponse = exports.CreateTaskObjectLinkResponseBody = exports.CreateTaskObjectLinkRequest = exports.CreateTaskObjectLinkHeaders = exports.CreateTaskResponse = exports.CreateTaskResponseBody = exports.CreateTaskRequest = exports.CreateTaskHeaders = exports.CreateProjectCustomfieldStatusResponse = exports.CreateProjectCustomfieldStatusResponseBody = exports.CreateProjectCustomfieldStatusRequest = exports.CreateProjectCustomfieldStatusHeaders = exports.CreateProjectByTemplateResponse = exports.CreateProjectByTemplateResponseBody = exports.CreateProjectByTemplateRequest = exports.CreateProjectByTemplateHeaders = exports.CreateProjectResponse = exports.CreateProjectResponseBody = exports.CreateProjectRequest = exports.CreateProjectHeaders = exports.CreatePlanTimeResponse = exports.CreatePlanTimeResponseBody = exports.CreatePlanTimeRequest = exports.CreatePlanTimeHeaders = exports.CreateOrganizationTaskResponse = exports.CreateOrganizationTaskResponseBody = exports.CreateOrganizationTaskRequest = exports.CreateOrganizationTaskHeaders = exports.ArchiveTaskResponse = exports.ArchiveTaskResponseBody = exports.ArchiveTaskHeaders = exports.ArchiveProjectResponse = exports.ArchiveProjectResponseBody = exports.ArchiveProjectHeaders = exports.AddProjectMemberResponse = exports.AddProjectMemberResponseBody = exports.AddProjectMemberRequest = exports.AddProjectMemberHeaders = void 0;
exports.GetTbUserIdByStaffIdResponseBody = exports.GetTbUserIdByStaffIdRequest = exports.GetTbUserIdByStaffIdHeaders = exports.GetTbProjectSourceResponse = exports.GetTbProjectSourceResponseBody = exports.GetTbProjectSourceHeaders = exports.GetTbProjectGrayResponse = exports.GetTbProjectGrayResponseBody = exports.GetTbProjectGrayRequest = exports.GetTbProjectGrayHeaders = exports.GetTbOrgIdByDingOrgIdResponse = exports.GetTbOrgIdByDingOrgIdResponseBody = exports.GetTbOrgIdByDingOrgIdRequest = exports.GetTbOrgIdByDingOrgIdHeaders = exports.GetTaskByIdsResponse = exports.GetTaskByIdsResponseBody = exports.GetTaskByIdsRequest = exports.GetTaskByIdsHeaders = exports.GetProjectStatusListResponse = exports.GetProjectStatusListResponseBody = exports.GetProjectStatusListHeaders = exports.GetProjectMemebersResponse = exports.GetProjectMemebersResponseBody = exports.GetProjectMemebersRequest = exports.GetProjectMemebersHeaders = exports.GetProjectGroupResponse = exports.GetProjectGroupResponseBody = exports.GetProjectGroupRequest = exports.GetProjectGroupHeaders = exports.GetOrganizationTaskResponse = exports.GetOrganizationTaskResponseBody = exports.GetOrganizationTaskHeaders = exports.GetOrganizationPriorityListResponse = exports.GetOrganizationPriorityListResponseBody = exports.GetOrganizationPriorityListHeaders = exports.GetOrganizatioTaskByIdsResponse = exports.GetOrganizatioTaskByIdsResponseBody = exports.GetOrganizatioTaskByIdsRequest = exports.GetOrganizatioTaskByIdsHeaders = exports.GetEmpsByOrgIdResponse = exports.GetEmpsByOrgIdResponseBody = exports.GetEmpsByOrgIdRequest = exports.GetEmpsByOrgIdHeaders = exports.GetDeptsByOrgIdResponse = exports.GetDeptsByOrgIdResponseBody = exports.GetDeptsByOrgIdRequest = exports.GetDeptsByOrgIdHeaders = exports.DeleteTaskResponse = exports.DeleteTaskResponseBody = exports.DeleteTaskHeaders = void 0;
exports.SuspendProjectHeaders = exports.SearchUserTaskResponse = exports.SearchUserTaskResponseBody = exports.SearchUserTaskRequest = exports.SearchUserTaskHeaders = exports.SearchTaskflowStatusResponse = exports.SearchTaskflowStatusResponseBody = exports.SearchTaskflowStatusRequest = exports.SearchTaskflowStatusHeaders = exports.SearchTaskListResponse = exports.SearchTaskListResponseBody = exports.SearchTaskListRequest = exports.SearchTaskListHeaders = exports.SearchTaskFlowResponse = exports.SearchTaskFlowResponseBody = exports.SearchTaskFlowRequest = exports.SearchTaskFlowHeaders = exports.SearchProjectTemplateResponse = exports.SearchProjectTemplateResponseBody = exports.SearchProjectTemplateRequest = exports.SearchProjectTemplateHeaders = exports.SearchProjectCustomfieldResponse = exports.SearchProjectCustomfieldResponseBody = exports.SearchProjectCustomfieldRequest = exports.SearchProjectCustomfieldHeaders = exports.SearchOranizationCustomfieldResponse = exports.SearchOranizationCustomfieldResponseBody = exports.SearchOranizationCustomfieldRequest = exports.SearchOranizationCustomfieldHeaders = exports.SearchAllTasksByTqlResponse = exports.SearchAllTasksByTqlResponseBody = exports.SearchAllTasksByTqlRequest = exports.SearchAllTasksByTqlHeaders = exports.SeachTaskStageResponse = exports.SeachTaskStageResponseBody = exports.SeachTaskStageRequest = exports.SeachTaskStageHeaders = exports.QueryTaskOfProjectResponse = exports.QueryTaskOfProjectResponseBody = exports.QueryTaskOfProjectRequest = exports.QueryTaskOfProjectHeaders = exports.QueryProjectResponse = exports.QueryProjectResponseBody = exports.QueryProjectRequest = exports.QueryProjectHeaders = exports.GetUserJoinedProjectResponse = exports.GetUserJoinedProjectResponseBody = exports.GetUserJoinedProjectRequest = exports.GetUserJoinedProjectHeaders = exports.GetTbUserIdByStaffIdResponse = void 0;
exports.UpdateTaskExecutorHeaders = exports.UpdateTaskDueDateResponse = exports.UpdateTaskDueDateResponseBody = exports.UpdateTaskDueDateRequest = exports.UpdateTaskDueDateHeaders = exports.UpdateTaskContentResponse = exports.UpdateTaskContentResponseBody = exports.UpdateTaskContentRequest = exports.UpdateTaskContentHeaders = exports.UpdateProjectGroupResponse = exports.UpdateProjectGroupResponseBody = exports.UpdateProjectGroupRequest = exports.UpdateProjectGroupHeaders = exports.UpdateOrganizationTaskStatusResponse = exports.UpdateOrganizationTaskStatusResponseBody = exports.UpdateOrganizationTaskStatusRequest = exports.UpdateOrganizationTaskStatusHeaders = exports.UpdateOrganizationTaskPriorityResponse = exports.UpdateOrganizationTaskPriorityResponseBody = exports.UpdateOrganizationTaskPriorityRequest = exports.UpdateOrganizationTaskPriorityHeaders = exports.UpdateOrganizationTaskNoteResponse = exports.UpdateOrganizationTaskNoteResponseBody = exports.UpdateOrganizationTaskNoteRequest = exports.UpdateOrganizationTaskNoteHeaders = exports.UpdateOrganizationTaskInvolveMembersResponse = exports.UpdateOrganizationTaskInvolveMembersResponseBody = exports.UpdateOrganizationTaskInvolveMembersRequest = exports.UpdateOrganizationTaskInvolveMembersHeaders = exports.UpdateOrganizationTaskExecutorResponse = exports.UpdateOrganizationTaskExecutorResponseBody = exports.UpdateOrganizationTaskExecutorRequest = exports.UpdateOrganizationTaskExecutorHeaders = exports.UpdateOrganizationTaskDueDateResponse = exports.UpdateOrganizationTaskDueDateResponseBody = exports.UpdateOrganizationTaskDueDateRequest = exports.UpdateOrganizationTaskDueDateHeaders = exports.UpdateOrganizationTaskContentResponse = exports.UpdateOrganizationTaskContentResponseBody = exports.UpdateOrganizationTaskContentRequest = exports.UpdateOrganizationTaskContentHeaders = exports.UpdateCustomfieldValueResponse = exports.UpdateCustomfieldValueResponseBody = exports.UpdateCustomfieldValueRequest = exports.UpdateCustomfieldValueHeaders = exports.UnSuspendProjectResponse = exports.UnSuspendProjectResponseBody = exports.UnSuspendProjectHeaders = exports.SuspendProjectResponse = exports.SuspendProjectResponseBody = void 0;
exports.CreateTaskResponseBodyResultCustomfieldsValue = exports.CreateTaskRequestCustomfields = exports.CreateTaskRequestCustomfieldsValue = exports.CreateProjectCustomfieldStatusResponseBodyResult = exports.CreateProjectCustomfieldStatusResponseBodyResultValue = exports.CreateProjectCustomfieldStatusRequestValue = exports.CreateProjectByTemplateResponseBodyResult = exports.CreateProjectResponseBodyResult = exports.CreateProjectResponseBodyResultCustomFields = exports.CreateProjectResponseBodyResultCustomFieldsValue = exports.CreatePlanTimeResponseBodyResult = exports.CreatePlanTimeResponseBodyResultBody = exports.CreateOrganizationTaskResponseBodyResult = exports.CreateOrganizationTaskResponseBodyResultInvolvers = exports.CreateOrganizationTaskResponseBodyResultExecutor = exports.CreateOrganizationTaskResponseBodyResultCreator = exports.ArchiveTaskResponseBodyResult = exports.ArchiveProjectResponseBodyResult = exports.AddProjectMemberResponseBodyResult = exports.UpdateWorkTimeApproveResponse = exports.UpdateWorkTimeApproveResponseBody = exports.UpdateWorkTimeApproveRequest = exports.UpdateWorkTimeApproveHeaders = exports.UpdateTaskTaskflowstatusResponse = exports.UpdateTaskTaskflowstatusResponseBody = exports.UpdateTaskTaskflowstatusRequest = exports.UpdateTaskTaskflowstatusHeaders = exports.UpdateTaskStartdateResponse = exports.UpdateTaskStartdateResponseBody = exports.UpdateTaskStartdateRequest = exports.UpdateTaskStartdateHeaders = exports.UpdateTaskStageResponse = exports.UpdateTaskStageResponseBody = exports.UpdateTaskStageRequest = exports.UpdateTaskStageHeaders = exports.UpdateTaskPriorityResponse = exports.UpdateTaskPriorityResponseBody = exports.UpdateTaskPriorityRequest = exports.UpdateTaskPriorityHeaders = exports.UpdateTaskNoteResponse = exports.UpdateTaskNoteResponseBody = exports.UpdateTaskNoteRequest = exports.UpdateTaskNoteHeaders = exports.UpdateTaskInvolvemembersResponse = exports.UpdateTaskInvolvemembersResponseBody = exports.UpdateTaskInvolvemembersRequest = exports.UpdateTaskInvolvemembersHeaders = exports.UpdateTaskExecutorResponse = exports.UpdateTaskExecutorResponseBody = exports.UpdateTaskExecutorRequest = void 0;
exports.UpdateOrganizationTaskExecutorResponseBodyResult = exports.UpdateOrganizationTaskExecutorResponseBodyResultInvolvers = exports.UpdateOrganizationTaskExecutorResponseBodyResultExecutor = exports.UpdateOrganizationTaskDueDateResponseBodyResult = exports.UpdateOrganizationTaskContentResponseBodyResult = exports.UpdateCustomfieldValueResponseBodyResult = exports.UpdateCustomfieldValueResponseBodyResultCustomFields = exports.UpdateCustomfieldValueResponseBodyResultCustomFieldsValue = exports.UpdateCustomfieldValueRequestValue = exports.UnSuspendProjectResponseBodyResult = exports.SuspendProjectResponseBodyResult = exports.SearchUserTaskResponseBodyResult = exports.SearchUserTaskResponseBodyResultCustomFields = exports.SearchUserTaskResponseBodyResultCustomFieldsValue = exports.SearchTaskflowStatusResponseBodyResult = exports.SearchTaskListResponseBodyResult = exports.SearchTaskFlowResponseBodyResult = exports.SearchProjectTemplateResponseBodyResult = exports.SearchProjectCustomfieldResponseBodyResult = exports.SearchProjectCustomfieldResponseBodyResultChoices = exports.SearchProjectCustomfieldResponseBodyResultAdvancedCustomField = exports.SearchOranizationCustomfieldResponseBodyResult = exports.SearchOranizationCustomfieldResponseBodyResultChoices = exports.SearchOranizationCustomfieldResponseBodyResultAdvancedCustomField = exports.SeachTaskStageResponseBodyResult = exports.QueryTaskOfProjectResponseBodyResult = exports.QueryTaskOfProjectResponseBodyResultCustomfields = exports.QueryProjectResponseBodyResult = exports.QueryProjectResponseBodyResultCustomFields = exports.QueryProjectResponseBodyResultCustomFieldsValue = exports.GetTbUserIdByStaffIdResponseBodyResult = exports.GetTbOrgIdByDingOrgIdResponseBodyResult = exports.GetTaskByIdsResponseBodyResult = exports.GetTaskByIdsResponseBodyResultCustomFields = exports.GetTaskByIdsResponseBodyResultCustomFieldsValue = exports.GetProjectStatusListResponseBodyResult = exports.GetProjectMemebersResponseBodyResult = exports.GetProjectGroupResponseBodyResult = exports.GetOrganizationTaskResponseBodyResult = exports.GetOrganizationPriorityListResponseBodyResult = exports.GetOrganizatioTaskByIdsResponseBodyResult = exports.GetEmpsByOrgIdResponseBodyEmpList = exports.GetDeptsByOrgIdResponseBodyDeptList = exports.CreateWorkTimeApproveResponseBodyResult = exports.CreateWorkTimeResponseBodyResult = exports.CreateWorkTimeResponseBodyResultBody = exports.CreateTaskObjectLinkResponseBodyResult = exports.CreateTaskObjectLinkRequestLinkedData = exports.CreateTaskResponseBodyResult = exports.CreateTaskResponseBodyResultCustomfields = void 0;
exports.UpdateWorkTimeApproveResponseBodyResult = exports.UpdateTaskTaskflowstatusResponseBodyResult = exports.UpdateTaskStartdateResponseBodyResult = exports.UpdateTaskStageResponseBodyResult = exports.UpdateTaskPriorityResponseBodyResult = exports.UpdateTaskNoteResponseBodyResult = exports.UpdateTaskInvolvemembersResponseBodyResult = exports.UpdateTaskExecutorResponseBodyResult = exports.UpdateTaskDueDateResponseBodyResult = exports.UpdateTaskContentResponseBodyResult = exports.UpdateProjectGroupResponseBodyResult = exports.UpdateOrganizationTaskStatusResponseBodyResult = exports.UpdateOrganizationTaskPriorityResponseBodyResult = exports.UpdateOrganizationTaskNoteResponseBodyResult = exports.UpdateOrganizationTaskInvolveMembersResponseBodyResult = exports.UpdateOrganizationTaskInvolveMembersResponseBodyResultInvolvers = 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 AddProjectMemberHeaders 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.AddProjectMemberHeaders = AddProjectMemberHeaders;
class AddProjectMemberRequest extends $tea.Model {
    static names() {
        return {
            userIds: 'userIds',
        };
    }
    static types() {
        return {
            userIds: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AddProjectMemberRequest = AddProjectMemberRequest;
class AddProjectMemberResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: { 'type': 'array', 'itemType': AddProjectMemberResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AddProjectMemberResponseBody = AddProjectMemberResponseBody;
class AddProjectMemberResponse 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: AddProjectMemberResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AddProjectMemberResponse = AddProjectMemberResponse;
class ArchiveProjectHeaders 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.ArchiveProjectHeaders = ArchiveProjectHeaders;
class ArchiveProjectResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: ArchiveProjectResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ArchiveProjectResponseBody = ArchiveProjectResponseBody;
class ArchiveProjectResponse 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: ArchiveProjectResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ArchiveProjectResponse = ArchiveProjectResponse;
class ArchiveTaskHeaders 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.ArchiveTaskHeaders = ArchiveTaskHeaders;
class ArchiveTaskResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: ArchiveTaskResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ArchiveTaskResponseBody = ArchiveTaskResponseBody;
class ArchiveTaskResponse 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: ArchiveTaskResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ArchiveTaskResponse = ArchiveTaskResponse;
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',
            createTime: 'createTime',
            disableActivity: 'disableActivity',
            disableNotification: 'disableNotification',
            dueDate: 'dueDate',
            executorId: 'executorId',
            involveMembers: 'involveMembers',
            note: 'note',
            priority: 'priority',
            visible: 'visible',
        };
    }
    static types() {
        return {
            content: 'string',
            createTime: 'string',
            disableActivity: 'boolean',
            disableNotification: 'boolean',
            dueDate: 'string',
            executorId: 'string',
            involveMembers: { 'type': 'array', 'itemType': 'string' },
            note: 'string',
            priority: 'number',
            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 CreatePlanTimeHeaders 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.CreatePlanTimeHeaders = CreatePlanTimeHeaders;
class CreatePlanTimeRequest extends $tea.Model {
    static names() {
        return {
            endDate: 'endDate',
            executorId: 'executorId',
            includesHolidays: 'includesHolidays',
            isDuration: 'isDuration',
            objectId: 'objectId',
            objectType: 'objectType',
            planTime: 'planTime',
            startDate: 'startDate',
            submitterId: 'submitterId',
            tenantType: 'tenantType',
        };
    }
    static types() {
        return {
            endDate: 'string',
            executorId: 'string',
            includesHolidays: 'boolean',
            isDuration: 'boolean',
            objectId: 'string',
            objectType: 'string',
            planTime: 'number',
            startDate: 'string',
            submitterId: 'string',
            tenantType: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreatePlanTimeRequest = CreatePlanTimeRequest;
class CreatePlanTimeResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: CreatePlanTimeResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreatePlanTimeResponseBody = CreatePlanTimeResponseBody;
class CreatePlanTimeResponse 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: CreatePlanTimeResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreatePlanTimeResponse = CreatePlanTimeResponse;
class CreateProjectHeaders 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.CreateProjectHeaders = CreateProjectHeaders;
class CreateProjectRequest extends $tea.Model {
    static names() {
        return {
            name: 'name',
        };
    }
    static types() {
        return {
            name: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateProjectRequest = CreateProjectRequest;
class CreateProjectResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: CreateProjectResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateProjectResponseBody = CreateProjectResponseBody;
class CreateProjectResponse 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: CreateProjectResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateProjectResponse = CreateProjectResponse;
class CreateProjectByTemplateHeaders 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.CreateProjectByTemplateHeaders = CreateProjectByTemplateHeaders;
class CreateProjectByTemplateRequest extends $tea.Model {
    static names() {
        return {
            description: 'description',
            endDate: 'endDate',
            name: 'name',
            programId: 'programId',
            programName: 'programName',
            startDate: 'startDate',
            templateId: 'templateId',
            templateName: 'templateName',
            visibility: 'visibility',
        };
    }
    static types() {
        return {
            description: 'string',
            endDate: 'string',
            name: 'string',
            programId: 'string',
            programName: 'string',
            startDate: 'string',
            templateId: 'string',
            templateName: 'string',
            visibility: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateProjectByTemplateRequest = CreateProjectByTemplateRequest;
class CreateProjectByTemplateResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: CreateProjectByTemplateResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateProjectByTemplateResponseBody = CreateProjectByTemplateResponseBody;
class CreateProjectByTemplateResponse 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: CreateProjectByTemplateResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateProjectByTemplateResponse = CreateProjectByTemplateResponse;
class CreateProjectCustomfieldStatusHeaders 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.CreateProjectCustomfieldStatusHeaders = CreateProjectCustomfieldStatusHeaders;
class CreateProjectCustomfieldStatusRequest extends $tea.Model {
    static names() {
        return {
            customFieldId: 'customFieldId',
            customFieldInstanceId: 'customFieldInstanceId',
            customFieldName: 'customFieldName',
            value: 'value',
        };
    }
    static types() {
        return {
            customFieldId: 'string',
            customFieldInstanceId: 'string',
            customFieldName: 'string',
            value: { 'type': 'array', 'itemType': CreateProjectCustomfieldStatusRequestValue },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateProjectCustomfieldStatusRequest = CreateProjectCustomfieldStatusRequest;
class CreateProjectCustomfieldStatusResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: CreateProjectCustomfieldStatusResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateProjectCustomfieldStatusResponseBody = CreateProjectCustomfieldStatusResponseBody;
class CreateProjectCustomfieldStatusResponse 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: CreateProjectCustomfieldStatusResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateProjectCustomfieldStatusResponse = CreateProjectCustomfieldStatusResponse;
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',
            dueDate: 'dueDate',
            executorId: 'executorId',
            involveMembers: 'involveMembers',
            note: 'note',
            parentTaskId: 'parentTaskId',
            priority: 'priority',
            priorityName: 'priorityName',
            projectId: 'projectId',
            projectName: 'projectName',
            scenariofieldconfigId: 'scenariofieldconfigId',
            sprintId: 'sprintId',
            stageId: 'stageId',
            startDate: 'startDate',
            storyPoint: 'storyPoint',
            tagIds: 'tagIds',
            tagNames: 'tagNames',
            taskflowstatusId: 'taskflowstatusId',
            tasklistId: 'tasklistId',
            tfsName: 'tfsName',
            visible: 'visible',
        };
    }
    static types() {
        return {
            content: 'string',
            customfields: { 'type': 'array', 'itemType': CreateTaskRequestCustomfields },
            dueDate: 'string',
            executorId: 'string',
            involveMembers: { 'type': 'array', 'itemType': 'string' },
            note: 'string',
            parentTaskId: 'string',
            priority: 'number',
            priorityName: 'string',
            projectId: 'string',
            projectName: 'string',
            scenariofieldconfigId: 'string',
            sprintId: 'string',
            stageId: 'string',
            startDate: 'string',
            storyPoint: 'string',
            tagIds: { 'type': 'array', 'itemType': 'string' },
            tagNames: { 'type': 'array', 'itemType': 'string' },
            taskflowstatusId: 'string',
            tasklistId: 'string',
            tfsName: 'string',
            visible: '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 CreateTaskObjectLinkHeaders 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.CreateTaskObjectLinkHeaders = CreateTaskObjectLinkHeaders;
class CreateTaskObjectLinkRequest extends $tea.Model {
    static names() {
        return {
            linkedData: 'linkedData',
        };
    }
    static types() {
        return {
            linkedData: CreateTaskObjectLinkRequestLinkedData,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTaskObjectLinkRequest = CreateTaskObjectLinkRequest;
class CreateTaskObjectLinkResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: CreateTaskObjectLinkResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTaskObjectLinkResponseBody = CreateTaskObjectLinkResponseBody;
class CreateTaskObjectLinkResponse 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: CreateTaskObjectLinkResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTaskObjectLinkResponse = CreateTaskObjectLinkResponse;
class CreateWorkTimeHeaders 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.CreateWorkTimeHeaders = CreateWorkTimeHeaders;
class CreateWorkTimeRequest extends $tea.Model {
    static names() {
        return {
            description: 'description',
            endDate: 'endDate',
            executorId: 'executorId',
            includesHolidays: 'includesHolidays',
            isDuration: 'isDuration',
            objectId: 'objectId',
            objectType: 'objectType',
            startDate: 'startDate',
            submitterId: 'submitterId',
            workTime: 'workTime',
            tenantType: 'tenantType',
        };
    }
    static types() {
        return {
            description: 'string',
            endDate: 'string',
            executorId: 'string',
            includesHolidays: 'boolean',
            isDuration: 'boolean',
            objectId: 'string',
            objectType: 'string',
            startDate: 'string',
            submitterId: 'string',
            workTime: 'number',
            tenantType: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateWorkTimeRequest = CreateWorkTimeRequest;
class CreateWorkTimeResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: CreateWorkTimeResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateWorkTimeResponseBody = CreateWorkTimeResponseBody;
class CreateWorkTimeResponse 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: CreateWorkTimeResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateWorkTimeResponse = CreateWorkTimeResponse;
class CreateWorkTimeApproveHeaders 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.CreateWorkTimeApproveHeaders = CreateWorkTimeApproveHeaders;
class CreateWorkTimeApproveRequest extends $tea.Model {
    static names() {
        return {
            workTimeIds: 'workTimeIds',
        };
    }
    static types() {
        return {
            workTimeIds: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateWorkTimeApproveRequest = CreateWorkTimeApproveRequest;
class CreateWorkTimeApproveResponseBody extends $tea.Model {
    static names() {
        return {
            message: 'message',
            requestId: 'requestId',
            result: 'result',
        };
    }
    static types() {
        return {
            message: 'string',
            requestId: 'string',
            result: CreateWorkTimeApproveResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateWorkTimeApproveResponseBody = CreateWorkTimeApproveResponseBody;
class CreateWorkTimeApproveResponse 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: CreateWorkTimeApproveResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateWorkTimeApproveResponse = CreateWorkTimeApproveResponse;
class DeleteProjectMemberHeaders 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.DeleteProjectMemberHeaders = DeleteProjectMemberHeaders;
class DeleteProjectMemberRequest extends $tea.Model {
    static names() {
        return {
            userIds: 'userIds',
        };
    }
    static types() {
        return {
            userIds: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeleteProjectMemberRequest = DeleteProjectMemberRequest;
class DeleteProjectMemberResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeleteProjectMemberResponseBody = DeleteProjectMemberResponseBody;
class DeleteProjectMemberResponse 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: DeleteProjectMemberResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeleteProjectMemberResponse = DeleteProjectMemberResponse;
class DeleteTaskHeaders 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.DeleteTaskHeaders = DeleteTaskHeaders;
class DeleteTaskResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeleteTaskResponseBody = DeleteTaskResponseBody;
class DeleteTaskResponse 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: DeleteTaskResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeleteTaskResponse = DeleteTaskResponse;
class GetDeptsByOrgIdHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            dingAccessTokenType: 'dingAccessTokenType',
            dingOrgId: 'dingOrgId',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            dingAccessTokenType: 'string',
            dingOrgId: 'string',
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetDeptsByOrgIdHeaders = GetDeptsByOrgIdHeaders;
class GetDeptsByOrgIdRequest extends $tea.Model {
    static names() {
        return {
            maxResults: 'maxResults',
            nextToken: 'nextToken',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            nextToken: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetDeptsByOrgIdRequest = GetDeptsByOrgIdRequest;
class GetDeptsByOrgIdResponseBody extends $tea.Model {
    static names() {
        return {
            deptList: 'deptList',
            hasMore: 'hasMore',
            maxResults: 'maxResults',
            nextToken: 'nextToken',
        };
    }
    static types() {
        return {
            deptList: { 'type': 'array', 'itemType': GetDeptsByOrgIdResponseBodyDeptList },
            hasMore: 'boolean',
            maxResults: 'number',
            nextToken: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetDeptsByOrgIdResponseBody = GetDeptsByOrgIdResponseBody;
class GetDeptsByOrgIdResponse 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: GetDeptsByOrgIdResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetDeptsByOrgIdResponse = GetDeptsByOrgIdResponse;
class GetEmpsByOrgIdHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            dingAccessTokenType: 'dingAccessTokenType',
            dingIsvOrgId: 'dingIsvOrgId',
            dingOrgId: 'dingOrgId',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            dingAccessTokenType: 'string',
            dingIsvOrgId: 'string',
            dingOrgId: 'string',
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetEmpsByOrgIdHeaders = GetEmpsByOrgIdHeaders;
class GetEmpsByOrgIdRequest extends $tea.Model {
    static names() {
        return {
            maxResults: 'maxResults',
            needDept: 'needDept',
            nextToken: 'nextToken',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            needDept: 'boolean',
            nextToken: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetEmpsByOrgIdRequest = GetEmpsByOrgIdRequest;
class GetEmpsByOrgIdResponseBody extends $tea.Model {
    static names() {
        return {
            empList: 'empList',
            hasMore: 'hasMore',
            nextToken: 'nextToken',
        };
    }
    static types() {
        return {
            empList: { 'type': 'array', 'itemType': GetEmpsByOrgIdResponseBodyEmpList },
            hasMore: 'boolean',
            nextToken: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetEmpsByOrgIdResponseBody = GetEmpsByOrgIdResponseBody;
class GetEmpsByOrgIdResponse 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: GetEmpsByOrgIdResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetEmpsByOrgIdResponse = GetEmpsByOrgIdResponse;
class GetOrganizatioTaskByIdsHeaders 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.GetOrganizatioTaskByIdsHeaders = GetOrganizatioTaskByIdsHeaders;
class GetOrganizatioTaskByIdsRequest extends $tea.Model {
    static names() {
        return {
            taskIds: 'taskIds',
        };
    }
    static types() {
        return {
            taskIds: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetOrganizatioTaskByIdsRequest = GetOrganizatioTaskByIdsRequest;
class GetOrganizatioTaskByIdsResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: { 'type': 'array', 'itemType': GetOrganizatioTaskByIdsResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetOrganizatioTaskByIdsResponseBody = GetOrganizatioTaskByIdsResponseBody;
class GetOrganizatioTaskByIdsResponse 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: GetOrganizatioTaskByIdsResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetOrganizatioTaskByIdsResponse = GetOrganizatioTaskByIdsResponse;
class GetOrganizationPriorityListHeaders 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.GetOrganizationPriorityListHeaders = GetOrganizationPriorityListHeaders;
class GetOrganizationPriorityListResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: { 'type': 'array', 'itemType': GetOrganizationPriorityListResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetOrganizationPriorityListResponseBody = GetOrganizationPriorityListResponseBody;
class GetOrganizationPriorityListResponse 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: GetOrganizationPriorityListResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetOrganizationPriorityListResponse = GetOrganizationPriorityListResponse;
class GetOrganizationTaskHeaders 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.GetOrganizationTaskHeaders = GetOrganizationTaskHeaders;
class GetOrganizationTaskResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: GetOrganizationTaskResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetOrganizationTaskResponseBody = GetOrganizationTaskResponseBody;
class GetOrganizationTaskResponse 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: GetOrganizationTaskResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetOrganizationTaskResponse = GetOrganizationTaskResponse;
class GetProjectGroupHeaders 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.GetProjectGroupHeaders = GetProjectGroupHeaders;
class GetProjectGroupRequest extends $tea.Model {
    static names() {
        return {
            pageSize: 'pageSize',
            viewerId: 'viewerId',
        };
    }
    static types() {
        return {
            pageSize: 'number',
            viewerId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetProjectGroupRequest = GetProjectGroupRequest;
class GetProjectGroupResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: { 'type': 'array', 'itemType': GetProjectGroupResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetProjectGroupResponseBody = GetProjectGroupResponseBody;
class GetProjectGroupResponse 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: GetProjectGroupResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetProjectGroupResponse = GetProjectGroupResponse;
class GetProjectMemebersHeaders 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.GetProjectMemebersHeaders = GetProjectMemebersHeaders;
class GetProjectMemebersRequest extends $tea.Model {
    static names() {
        return {
            maxResults: 'maxResults',
            projectRoleId: 'projectRoleId',
            skip: 'skip',
            userIds: 'userIds',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            projectRoleId: 'string',
            skip: 'number',
            userIds: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetProjectMemebersRequest = GetProjectMemebersRequest;
class GetProjectMemebersResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: { 'type': 'array', 'itemType': GetProjectMemebersResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetProjectMemebersResponseBody = GetProjectMemebersResponseBody;
class GetProjectMemebersResponse 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: GetProjectMemebersResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetProjectMemebersResponse = GetProjectMemebersResponse;
class GetProjectStatusListHeaders 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.GetProjectStatusListHeaders = GetProjectStatusListHeaders;
class GetProjectStatusListResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: { 'type': 'array', 'itemType': GetProjectStatusListResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetProjectStatusListResponseBody = GetProjectStatusListResponseBody;
class GetProjectStatusListResponse 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: GetProjectStatusListResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetProjectStatusListResponse = GetProjectStatusListResponse;
class GetTaskByIdsHeaders 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.GetTaskByIdsHeaders = GetTaskByIdsHeaders;
class GetTaskByIdsRequest extends $tea.Model {
    static names() {
        return {
            parentTaskId: 'parentTaskId',
            taskId: 'taskId',
        };
    }
    static types() {
        return {
            parentTaskId: 'string',
            taskId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTaskByIdsRequest = GetTaskByIdsRequest;
class GetTaskByIdsResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: { 'type': 'array', 'itemType': GetTaskByIdsResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTaskByIdsResponseBody = GetTaskByIdsResponseBody;
class GetTaskByIdsResponse 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: GetTaskByIdsResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTaskByIdsResponse = GetTaskByIdsResponse;
class GetTbOrgIdByDingOrgIdHeaders 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.GetTbOrgIdByDingOrgIdHeaders = GetTbOrgIdByDingOrgIdHeaders;
class GetTbOrgIdByDingOrgIdRequest extends $tea.Model {
    static names() {
        return {
            optUserId: 'optUserId',
        };
    }
    static types() {
        return {
            optUserId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTbOrgIdByDingOrgIdRequest = GetTbOrgIdByDingOrgIdRequest;
class GetTbOrgIdByDingOrgIdResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: GetTbOrgIdByDingOrgIdResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTbOrgIdByDingOrgIdResponseBody = GetTbOrgIdByDingOrgIdResponseBody;
class GetTbOrgIdByDingOrgIdResponse 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: GetTbOrgIdByDingOrgIdResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTbOrgIdByDingOrgIdResponse = GetTbOrgIdByDingOrgIdResponse;
class GetTbProjectGrayHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            dingAccessTokenType: 'dingAccessTokenType',
            dingCorpId: 'dingCorpId',
            dingIsvOrgId: 'dingIsvOrgId',
            dingOrgId: 'dingOrgId',
            dingSuiteKey: 'dingSuiteKey',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            dingAccessTokenType: 'string',
            dingCorpId: 'string',
            dingIsvOrgId: 'string',
            dingOrgId: 'string',
            dingSuiteKey: 'string',
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTbProjectGrayHeaders = GetTbProjectGrayHeaders;
class GetTbProjectGrayRequest extends $tea.Model {
    static names() {
        return {
            label: 'label',
        };
    }
    static types() {
        return {
            label: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTbProjectGrayRequest = GetTbProjectGrayRequest;
class GetTbProjectGrayResponseBody extends $tea.Model {
    static names() {
        return {
            requestId: 'requestId',
            result: 'result',
        };
    }
    static types() {
        return {
            requestId: 'string',
            result: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTbProjectGrayResponseBody = GetTbProjectGrayResponseBody;
class GetTbProjectGrayResponse 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: GetTbProjectGrayResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTbProjectGrayResponse = GetTbProjectGrayResponse;
class GetTbProjectSourceHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            dingAccessTokenType: 'dingAccessTokenType',
            dingCorpId: 'dingCorpId',
            dingIsvOrgId: 'dingIsvOrgId',
            dingOrgId: 'dingOrgId',
            dingSuiteKey: 'dingSuiteKey',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            dingAccessTokenType: 'string',
            dingCorpId: 'string',
            dingIsvOrgId: 'string',
            dingOrgId: 'string',
            dingSuiteKey: 'string',
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTbProjectSourceHeaders = GetTbProjectSourceHeaders;
class GetTbProjectSourceResponseBody extends $tea.Model {
    static names() {
        return {
            installSource: 'installSource',
        };
    }
    static types() {
        return {
            installSource: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTbProjectSourceResponseBody = GetTbProjectSourceResponseBody;
class GetTbProjectSourceResponse 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: GetTbProjectSourceResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTbProjectSourceResponse = GetTbProjectSourceResponse;
class GetTbUserIdByStaffIdHeaders 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.GetTbUserIdByStaffIdHeaders = GetTbUserIdByStaffIdHeaders;
class GetTbUserIdByStaffIdRequest extends $tea.Model {
    static names() {
        return {
            optUserId: 'optUserId',
            userId: 'userId',
        };
    }
    static types() {
        return {
            optUserId: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTbUserIdByStaffIdRequest = GetTbUserIdByStaffIdRequest;
class GetTbUserIdByStaffIdResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: GetTbUserIdByStaffIdResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTbUserIdByStaffIdResponseBody = GetTbUserIdByStaffIdResponseBody;
class GetTbUserIdByStaffIdResponse 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: GetTbUserIdByStaffIdResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTbUserIdByStaffIdResponse = GetTbUserIdByStaffIdResponse;
class GetUserJoinedProjectHeaders 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.GetUserJoinedProjectHeaders = GetUserJoinedProjectHeaders;
class GetUserJoinedProjectRequest extends $tea.Model {
    static names() {
        return {
            maxResults: 'maxResults',
            nextToken: 'nextToken',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            nextToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetUserJoinedProjectRequest = GetUserJoinedProjectRequest;
class GetUserJoinedProjectResponseBody 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.GetUserJoinedProjectResponseBody = GetUserJoinedProjectResponseBody;
class GetUserJoinedProjectResponse 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: GetUserJoinedProjectResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetUserJoinedProjectResponse = GetUserJoinedProjectResponse;
class QueryProjectHeaders 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.QueryProjectHeaders = QueryProjectHeaders;
class QueryProjectRequest extends $tea.Model {
    static names() {
        return {
            maxResults: 'maxResults',
            name: 'name',
            nextToken: 'nextToken',
            projectIds: 'projectIds',
            sourceId: 'sourceId',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            name: 'string',
            nextToken: 'string',
            projectIds: 'string',
            sourceId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryProjectRequest = QueryProjectRequest;
class QueryProjectResponseBody extends $tea.Model {
    static names() {
        return {
            nextToken: 'nextToken',
            requestId: 'requestId',
            result: 'result',
        };
    }
    static types() {
        return {
            nextToken: 'string',
            requestId: 'string',
            result: { 'type': 'array', 'itemType': QueryProjectResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryProjectResponseBody = QueryProjectResponseBody;
class QueryProjectResponse 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: QueryProjectResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryProjectResponse = QueryProjectResponse;
class QueryTaskOfProjectHeaders 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.QueryTaskOfProjectHeaders = QueryTaskOfProjectHeaders;
class QueryTaskOfProjectRequest extends $tea.Model {
    static names() {
        return {
            maxResults: 'maxResults',
            nextToken: 'nextToken',
            query: 'query',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            nextToken: 'string',
            query: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTaskOfProjectRequest = QueryTaskOfProjectRequest;
class QueryTaskOfProjectResponseBody extends $tea.Model {
    static names() {
        return {
            nextToken: 'nextToken',
            result: 'result',
            totalCount: 'totalCount',
        };
    }
    static types() {
        return {
            nextToken: 'string',
            result: { 'type': 'array', 'itemType': QueryTaskOfProjectResponseBodyResult },
            totalCount: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTaskOfProjectResponseBody = QueryTaskOfProjectResponseBody;
class QueryTaskOfProjectResponse 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: QueryTaskOfProjectResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTaskOfProjectResponse = QueryTaskOfProjectResponse;
class SeachTaskStageHeaders 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.SeachTaskStageHeaders = SeachTaskStageHeaders;
class SeachTaskStageRequest extends $tea.Model {
    static names() {
        return {
            maxResults: 'maxResults',
            nextToken: 'nextToken',
            query: 'query',
            taskListId: 'taskListId',
            taskStageIds: 'taskStageIds',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            nextToken: 'string',
            query: 'string',
            taskListId: 'string',
            taskStageIds: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SeachTaskStageRequest = SeachTaskStageRequest;
class SeachTaskStageResponseBody extends $tea.Model {
    static names() {
        return {
            nextToken: 'nextToken',
            result: 'result',
        };
    }
    static types() {
        return {
            nextToken: 'string',
            result: { 'type': 'array', 'itemType': SeachTaskStageResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SeachTaskStageResponseBody = SeachTaskStageResponseBody;
class SeachTaskStageResponse 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: SeachTaskStageResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SeachTaskStageResponse = SeachTaskStageResponse;
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',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            nextToken: 'string',
            tql: '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 SearchOranizationCustomfieldHeaders 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.SearchOranizationCustomfieldHeaders = SearchOranizationCustomfieldHeaders;
class SearchOranizationCustomfieldRequest extends $tea.Model {
    static names() {
        return {
            customFieldIds: 'customFieldIds',
            instanceIds: 'instanceIds',
            maxResults: 'maxResults',
            nextToken: 'nextToken',
            projectIds: 'projectIds',
            query: 'query',
        };
    }
    static types() {
        return {
            customFieldIds: 'string',
            instanceIds: 'string',
            maxResults: 'number',
            nextToken: 'string',
            projectIds: 'string',
            query: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchOranizationCustomfieldRequest = SearchOranizationCustomfieldRequest;
class SearchOranizationCustomfieldResponseBody extends $tea.Model {
    static names() {
        return {
            nextToken: 'nextToken',
            result: 'result',
        };
    }
    static types() {
        return {
            nextToken: 'string',
            result: { 'type': 'array', 'itemType': SearchOranizationCustomfieldResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchOranizationCustomfieldResponseBody = SearchOranizationCustomfieldResponseBody;
class SearchOranizationCustomfieldResponse 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: SearchOranizationCustomfieldResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchOranizationCustomfieldResponse = SearchOranizationCustomfieldResponse;
class SearchProjectCustomfieldHeaders 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.SearchProjectCustomfieldHeaders = SearchProjectCustomfieldHeaders;
class SearchProjectCustomfieldRequest extends $tea.Model {
    static names() {
        return {
            customFieldIds: 'customFieldIds',
            instanceIds: 'instanceIds',
            maxResults: 'maxResults',
            nextToken: 'nextToken',
            query: 'query',
            scenarioFieldConfigId: 'scenarioFieldConfigId',
        };
    }
    static types() {
        return {
            customFieldIds: 'string',
            instanceIds: 'string',
            maxResults: 'number',
            nextToken: 'string',
            query: 'string',
            scenarioFieldConfigId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchProjectCustomfieldRequest = SearchProjectCustomfieldRequest;
class SearchProjectCustomfieldResponseBody extends $tea.Model {
    static names() {
        return {
            nextToken: 'nextToken',
            result: 'result',
        };
    }
    static types() {
        return {
            nextToken: 'string',
            result: { 'type': 'array', 'itemType': SearchProjectCustomfieldResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchProjectCustomfieldResponseBody = SearchProjectCustomfieldResponseBody;
class SearchProjectCustomfieldResponse 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: SearchProjectCustomfieldResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchProjectCustomfieldResponse = SearchProjectCustomfieldResponse;
class SearchProjectTemplateHeaders 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.SearchProjectTemplateHeaders = SearchProjectTemplateHeaders;
class SearchProjectTemplateRequest extends $tea.Model {
    static names() {
        return {
            keyword: 'keyword',
        };
    }
    static types() {
        return {
            keyword: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchProjectTemplateRequest = SearchProjectTemplateRequest;
class SearchProjectTemplateResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: { 'type': 'array', 'itemType': SearchProjectTemplateResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchProjectTemplateResponseBody = SearchProjectTemplateResponseBody;
class SearchProjectTemplateResponse 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: SearchProjectTemplateResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchProjectTemplateResponse = SearchProjectTemplateResponse;
class SearchTaskFlowHeaders 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.SearchTaskFlowHeaders = SearchTaskFlowHeaders;
class SearchTaskFlowRequest extends $tea.Model {
    static names() {
        return {
            maxResults: 'maxResults',
            nextToken: 'nextToken',
            query: 'query',
            taskflowIds: 'taskflowIds',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            nextToken: 'string',
            query: 'string',
            taskflowIds: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchTaskFlowRequest = SearchTaskFlowRequest;
class SearchTaskFlowResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: { 'type': 'array', 'itemType': SearchTaskFlowResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchTaskFlowResponseBody = SearchTaskFlowResponseBody;
class SearchTaskFlowResponse 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: SearchTaskFlowResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchTaskFlowResponse = SearchTaskFlowResponse;
class SearchTaskListHeaders 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.SearchTaskListHeaders = SearchTaskListHeaders;
class SearchTaskListRequest extends $tea.Model {
    static names() {
        return {
            maxResults: 'maxResults',
            nextToken: 'nextToken',
            query: 'query',
            taskListIds: 'taskListIds',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            nextToken: 'string',
            query: 'string',
            taskListIds: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchTaskListRequest = SearchTaskListRequest;
class SearchTaskListResponseBody extends $tea.Model {
    static names() {
        return {
            nextToken: 'nextToken',
            result: 'result',
        };
    }
    static types() {
        return {
            nextToken: 'string',
            result: { 'type': 'array', 'itemType': SearchTaskListResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchTaskListResponseBody = SearchTaskListResponseBody;
class SearchTaskListResponse 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: SearchTaskListResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchTaskListResponse = SearchTaskListResponse;
class SearchTaskflowStatusHeaders 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.SearchTaskflowStatusHeaders = SearchTaskflowStatusHeaders;
class SearchTaskflowStatusRequest extends $tea.Model {
    static names() {
        return {
            maxResults: 'maxResults',
            nextToken: 'nextToken',
            query: 'query',
            tfIds: 'tfIds',
            tfsIds: 'tfsIds',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            nextToken: 'string',
            query: 'string',
            tfIds: 'string',
            tfsIds: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchTaskflowStatusRequest = SearchTaskflowStatusRequest;
class SearchTaskflowStatusResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: { 'type': 'array', 'itemType': SearchTaskflowStatusResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchTaskflowStatusResponseBody = SearchTaskflowStatusResponseBody;
class SearchTaskflowStatusResponse 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: SearchTaskflowStatusResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchTaskflowStatusResponse = SearchTaskflowStatusResponse;
class SearchUserTaskHeaders 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.SearchUserTaskHeaders = SearchUserTaskHeaders;
class SearchUserTaskRequest extends $tea.Model {
    static names() {
        return {
            maxResults: 'maxResults',
            nextToken: 'nextToken',
            roleTypes: 'roleTypes',
            tql: 'tql',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            nextToken: 'string',
            roleTypes: 'string',
            tql: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchUserTaskRequest = SearchUserTaskRequest;
class SearchUserTaskResponseBody extends $tea.Model {
    static names() {
        return {
            nextToken: 'nextToken',
            requestId: 'requestId',
            result: 'result',
        };
    }
    static types() {
        return {
            nextToken: 'string',
            requestId: 'string',
            result: { 'type': 'array', 'itemType': SearchUserTaskResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchUserTaskResponseBody = SearchUserTaskResponseBody;
class SearchUserTaskResponse 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: SearchUserTaskResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchUserTaskResponse = SearchUserTaskResponse;
class SuspendProjectHeaders 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.SuspendProjectHeaders = SuspendProjectHeaders;
class SuspendProjectResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: SuspendProjectResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SuspendProjectResponseBody = SuspendProjectResponseBody;
class SuspendProjectResponse 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: SuspendProjectResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SuspendProjectResponse = SuspendProjectResponse;
class UnSuspendProjectHeaders 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.UnSuspendProjectHeaders = UnSuspendProjectHeaders;
class UnSuspendProjectResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: UnSuspendProjectResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UnSuspendProjectResponseBody = UnSuspendProjectResponseBody;
class UnSuspendProjectResponse 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: UnSuspendProjectResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UnSuspendProjectResponse = UnSuspendProjectResponse;
class UpdateCustomfieldValueHeaders 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.UpdateCustomfieldValueHeaders = UpdateCustomfieldValueHeaders;
class UpdateCustomfieldValueRequest extends $tea.Model {
    static names() {
        return {
            customFieldId: 'customFieldId',
            customFieldName: 'customFieldName',
            value: 'value',
        };
    }
    static types() {
        return {
            customFieldId: 'string',
            customFieldName: 'string',
            value: { 'type': 'array', 'itemType': UpdateCustomfieldValueRequestValue },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateCustomfieldValueRequest = UpdateCustomfieldValueRequest;
class UpdateCustomfieldValueResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: UpdateCustomfieldValueResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateCustomfieldValueResponseBody = UpdateCustomfieldValueResponseBody;
class UpdateCustomfieldValueResponse 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: UpdateCustomfieldValueResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateCustomfieldValueResponse = UpdateCustomfieldValueResponse;
class UpdateOrganizationTaskContentHeaders 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.UpdateOrganizationTaskContentHeaders = UpdateOrganizationTaskContentHeaders;
class UpdateOrganizationTaskContentRequest extends $tea.Model {
    static names() {
        return {
            content: 'content',
            disableActivity: 'disableActivity',
            disableNotification: 'disableNotification',
        };
    }
    static types() {
        return {
            content: 'string',
            disableActivity: 'boolean',
            disableNotification: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskContentRequest = UpdateOrganizationTaskContentRequest;
class UpdateOrganizationTaskContentResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: UpdateOrganizationTaskContentResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskContentResponseBody = UpdateOrganizationTaskContentResponseBody;
class UpdateOrganizationTaskContentResponse 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: UpdateOrganizationTaskContentResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskContentResponse = UpdateOrganizationTaskContentResponse;
class UpdateOrganizationTaskDueDateHeaders 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.UpdateOrganizationTaskDueDateHeaders = UpdateOrganizationTaskDueDateHeaders;
class UpdateOrganizationTaskDueDateRequest extends $tea.Model {
    static names() {
        return {
            disableActivity: 'disableActivity',
            disableNotification: 'disableNotification',
            dueDate: 'dueDate',
        };
    }
    static types() {
        return {
            disableActivity: 'boolean',
            disableNotification: 'boolean',
            dueDate: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskDueDateRequest = UpdateOrganizationTaskDueDateRequest;
class UpdateOrganizationTaskDueDateResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: UpdateOrganizationTaskDueDateResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskDueDateResponseBody = UpdateOrganizationTaskDueDateResponseBody;
class UpdateOrganizationTaskDueDateResponse 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: UpdateOrganizationTaskDueDateResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskDueDateResponse = UpdateOrganizationTaskDueDateResponse;
class UpdateOrganizationTaskExecutorHeaders 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.UpdateOrganizationTaskExecutorHeaders = UpdateOrganizationTaskExecutorHeaders;
class UpdateOrganizationTaskExecutorRequest extends $tea.Model {
    static names() {
        return {
            disableActivity: 'disableActivity',
            disableNotification: 'disableNotification',
            executorId: 'executorId',
        };
    }
    static types() {
        return {
            disableActivity: 'boolean',
            disableNotification: 'boolean',
            executorId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskExecutorRequest = UpdateOrganizationTaskExecutorRequest;
class UpdateOrganizationTaskExecutorResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: UpdateOrganizationTaskExecutorResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskExecutorResponseBody = UpdateOrganizationTaskExecutorResponseBody;
class UpdateOrganizationTaskExecutorResponse 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: UpdateOrganizationTaskExecutorResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskExecutorResponse = UpdateOrganizationTaskExecutorResponse;
class UpdateOrganizationTaskInvolveMembersHeaders 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.UpdateOrganizationTaskInvolveMembersHeaders = UpdateOrganizationTaskInvolveMembersHeaders;
class UpdateOrganizationTaskInvolveMembersRequest extends $tea.Model {
    static names() {
        return {
            addInvolvers: 'addInvolvers',
            delInvolvers: 'delInvolvers',
            disableActivity: 'disableActivity',
            disableNotification: 'disableNotification',
            involveMembers: 'involveMembers',
        };
    }
    static types() {
        return {
            addInvolvers: { 'type': 'array', 'itemType': 'string' },
            delInvolvers: { 'type': 'array', 'itemType': 'string' },
            disableActivity: 'boolean',
            disableNotification: 'boolean',
            involveMembers: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskInvolveMembersRequest = UpdateOrganizationTaskInvolveMembersRequest;
class UpdateOrganizationTaskInvolveMembersResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: UpdateOrganizationTaskInvolveMembersResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskInvolveMembersResponseBody = UpdateOrganizationTaskInvolveMembersResponseBody;
class UpdateOrganizationTaskInvolveMembersResponse 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: UpdateOrganizationTaskInvolveMembersResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskInvolveMembersResponse = UpdateOrganizationTaskInvolveMembersResponse;
class UpdateOrganizationTaskNoteHeaders 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.UpdateOrganizationTaskNoteHeaders = UpdateOrganizationTaskNoteHeaders;
class UpdateOrganizationTaskNoteRequest extends $tea.Model {
    static names() {
        return {
            disableActivity: 'disableActivity',
            disableNotification: 'disableNotification',
            note: 'note',
        };
    }
    static types() {
        return {
            disableActivity: 'boolean',
            disableNotification: 'boolean',
            note: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskNoteRequest = UpdateOrganizationTaskNoteRequest;
class UpdateOrganizationTaskNoteResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: UpdateOrganizationTaskNoteResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskNoteResponseBody = UpdateOrganizationTaskNoteResponseBody;
class UpdateOrganizationTaskNoteResponse 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: UpdateOrganizationTaskNoteResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskNoteResponse = UpdateOrganizationTaskNoteResponse;
class UpdateOrganizationTaskPriorityHeaders 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.UpdateOrganizationTaskPriorityHeaders = UpdateOrganizationTaskPriorityHeaders;
class UpdateOrganizationTaskPriorityRequest extends $tea.Model {
    static names() {
        return {
            disableActivity: 'disableActivity',
            disableNotification: 'disableNotification',
            priority: 'priority',
        };
    }
    static types() {
        return {
            disableActivity: 'boolean',
            disableNotification: 'boolean',
            priority: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskPriorityRequest = UpdateOrganizationTaskPriorityRequest;
class UpdateOrganizationTaskPriorityResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: UpdateOrganizationTaskPriorityResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskPriorityResponseBody = UpdateOrganizationTaskPriorityResponseBody;
class UpdateOrganizationTaskPriorityResponse 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: UpdateOrganizationTaskPriorityResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskPriorityResponse = UpdateOrganizationTaskPriorityResponse;
class UpdateOrganizationTaskStatusHeaders 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.UpdateOrganizationTaskStatusHeaders = UpdateOrganizationTaskStatusHeaders;
class UpdateOrganizationTaskStatusRequest extends $tea.Model {
    static names() {
        return {
            disableActivity: 'disableActivity',
            disableNotification: 'disableNotification',
            isDone: 'isDone',
        };
    }
    static types() {
        return {
            disableActivity: 'boolean',
            disableNotification: 'boolean',
            isDone: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskStatusRequest = UpdateOrganizationTaskStatusRequest;
class UpdateOrganizationTaskStatusResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: UpdateOrganizationTaskStatusResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskStatusResponseBody = UpdateOrganizationTaskStatusResponseBody;
class UpdateOrganizationTaskStatusResponse 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: UpdateOrganizationTaskStatusResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskStatusResponse = UpdateOrganizationTaskStatusResponse;
class UpdateProjectGroupHeaders 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.UpdateProjectGroupHeaders = UpdateProjectGroupHeaders;
class UpdateProjectGroupRequest extends $tea.Model {
    static names() {
        return {
            addProjectGroupIds: 'addProjectGroupIds',
            delProjectGroupIds: 'delProjectGroupIds',
        };
    }
    static types() {
        return {
            addProjectGroupIds: { 'type': 'array', 'itemType': 'string' },
            delProjectGroupIds: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateProjectGroupRequest = UpdateProjectGroupRequest;
class UpdateProjectGroupResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: UpdateProjectGroupResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateProjectGroupResponseBody = UpdateProjectGroupResponseBody;
class UpdateProjectGroupResponse 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: UpdateProjectGroupResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateProjectGroupResponse = UpdateProjectGroupResponse;
class UpdateTaskContentHeaders 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.UpdateTaskContentHeaders = UpdateTaskContentHeaders;
class UpdateTaskContentRequest extends $tea.Model {
    static names() {
        return {
            content: 'content',
        };
    }
    static types() {
        return {
            content: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskContentRequest = UpdateTaskContentRequest;
class UpdateTaskContentResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: UpdateTaskContentResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskContentResponseBody = UpdateTaskContentResponseBody;
class UpdateTaskContentResponse 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: UpdateTaskContentResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskContentResponse = UpdateTaskContentResponse;
class UpdateTaskDueDateHeaders 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.UpdateTaskDueDateHeaders = UpdateTaskDueDateHeaders;
class UpdateTaskDueDateRequest extends $tea.Model {
    static names() {
        return {
            dueDate: 'dueDate',
        };
    }
    static types() {
        return {
            dueDate: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskDueDateRequest = UpdateTaskDueDateRequest;
class UpdateTaskDueDateResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: UpdateTaskDueDateResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskDueDateResponseBody = UpdateTaskDueDateResponseBody;
class UpdateTaskDueDateResponse 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: UpdateTaskDueDateResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskDueDateResponse = UpdateTaskDueDateResponse;
class UpdateTaskExecutorHeaders 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.UpdateTaskExecutorHeaders = UpdateTaskExecutorHeaders;
class UpdateTaskExecutorRequest extends $tea.Model {
    static names() {
        return {
            executorId: 'executorId',
        };
    }
    static types() {
        return {
            executorId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskExecutorRequest = UpdateTaskExecutorRequest;
class UpdateTaskExecutorResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: UpdateTaskExecutorResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskExecutorResponseBody = UpdateTaskExecutorResponseBody;
class UpdateTaskExecutorResponse 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: UpdateTaskExecutorResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskExecutorResponse = UpdateTaskExecutorResponse;
class UpdateTaskInvolvemembersHeaders 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.UpdateTaskInvolvemembersHeaders = UpdateTaskInvolvemembersHeaders;
class UpdateTaskInvolvemembersRequest extends $tea.Model {
    static names() {
        return {
            addInvolvers: 'addInvolvers',
            delInvolvers: 'delInvolvers',
            involveMembers: 'involveMembers',
        };
    }
    static types() {
        return {
            addInvolvers: { 'type': 'array', 'itemType': 'string' },
            delInvolvers: { 'type': 'array', 'itemType': 'string' },
            involveMembers: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskInvolvemembersRequest = UpdateTaskInvolvemembersRequest;
class UpdateTaskInvolvemembersResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: UpdateTaskInvolvemembersResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskInvolvemembersResponseBody = UpdateTaskInvolvemembersResponseBody;
class UpdateTaskInvolvemembersResponse 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: UpdateTaskInvolvemembersResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskInvolvemembersResponse = UpdateTaskInvolvemembersResponse;
class UpdateTaskNoteHeaders 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.UpdateTaskNoteHeaders = UpdateTaskNoteHeaders;
class UpdateTaskNoteRequest extends $tea.Model {
    static names() {
        return {
            note: 'note',
        };
    }
    static types() {
        return {
            note: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskNoteRequest = UpdateTaskNoteRequest;
class UpdateTaskNoteResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: UpdateTaskNoteResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskNoteResponseBody = UpdateTaskNoteResponseBody;
class UpdateTaskNoteResponse 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: UpdateTaskNoteResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskNoteResponse = UpdateTaskNoteResponse;
class UpdateTaskPriorityHeaders 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.UpdateTaskPriorityHeaders = UpdateTaskPriorityHeaders;
class UpdateTaskPriorityRequest extends $tea.Model {
    static names() {
        return {
            priority: 'priority',
        };
    }
    static types() {
        return {
            priority: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskPriorityRequest = UpdateTaskPriorityRequest;
class UpdateTaskPriorityResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: UpdateTaskPriorityResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskPriorityResponseBody = UpdateTaskPriorityResponseBody;
class UpdateTaskPriorityResponse 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: UpdateTaskPriorityResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskPriorityResponse = UpdateTaskPriorityResponse;
class UpdateTaskStageHeaders 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.UpdateTaskStageHeaders = UpdateTaskStageHeaders;
class UpdateTaskStageRequest extends $tea.Model {
    static names() {
        return {
            taskStageId: 'taskStageId',
        };
    }
    static types() {
        return {
            taskStageId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskStageRequest = UpdateTaskStageRequest;
class UpdateTaskStageResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: UpdateTaskStageResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskStageResponseBody = UpdateTaskStageResponseBody;
class UpdateTaskStageResponse 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: UpdateTaskStageResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskStageResponse = UpdateTaskStageResponse;
class UpdateTaskStartdateHeaders 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.UpdateTaskStartdateHeaders = UpdateTaskStartdateHeaders;
class UpdateTaskStartdateRequest extends $tea.Model {
    static names() {
        return {
            startDate: 'startDate',
        };
    }
    static types() {
        return {
            startDate: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskStartdateRequest = UpdateTaskStartdateRequest;
class UpdateTaskStartdateResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: UpdateTaskStartdateResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskStartdateResponseBody = UpdateTaskStartdateResponseBody;
class UpdateTaskStartdateResponse 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: UpdateTaskStartdateResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskStartdateResponse = UpdateTaskStartdateResponse;
class UpdateTaskTaskflowstatusHeaders 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.UpdateTaskTaskflowstatusHeaders = UpdateTaskTaskflowstatusHeaders;
class UpdateTaskTaskflowstatusRequest extends $tea.Model {
    static names() {
        return {
            taskflowStatusId: 'taskflowStatusId',
            taskflowStatusUpdateNote: 'taskflowStatusUpdateNote',
        };
    }
    static types() {
        return {
            taskflowStatusId: 'string',
            taskflowStatusUpdateNote: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskTaskflowstatusRequest = UpdateTaskTaskflowstatusRequest;
class UpdateTaskTaskflowstatusResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: UpdateTaskTaskflowstatusResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskTaskflowstatusResponseBody = UpdateTaskTaskflowstatusResponseBody;
class UpdateTaskTaskflowstatusResponse 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: UpdateTaskTaskflowstatusResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskTaskflowstatusResponse = UpdateTaskTaskflowstatusResponse;
class UpdateWorkTimeApproveHeaders 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.UpdateWorkTimeApproveHeaders = UpdateWorkTimeApproveHeaders;
class UpdateWorkTimeApproveRequest extends $tea.Model {
    static names() {
        return {
            finishTime: 'finishTime',
            instanceId: 'instanceId',
            status: 'status',
            submitTime: 'submitTime',
            title: 'title',
            url: 'url',
        };
    }
    static types() {
        return {
            finishTime: 'string',
            instanceId: 'string',
            status: 'string',
            submitTime: 'string',
            title: 'string',
            url: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateWorkTimeApproveRequest = UpdateWorkTimeApproveRequest;
class UpdateWorkTimeApproveResponseBody extends $tea.Model {
    static names() {
        return {
            message: 'message',
            requestId: 'requestId',
            result: 'result',
        };
    }
    static types() {
        return {
            message: 'string',
            requestId: 'string',
            result: UpdateWorkTimeApproveResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateWorkTimeApproveResponseBody = UpdateWorkTimeApproveResponseBody;
class UpdateWorkTimeApproveResponse 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: UpdateWorkTimeApproveResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateWorkTimeApproveResponse = UpdateWorkTimeApproveResponse;
class AddProjectMemberResponseBodyResult extends $tea.Model {
    static names() {
        return {
            joined: 'joined',
            nickname: 'nickname',
        };
    }
    static types() {
        return {
            joined: 'string',
            nickname: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AddProjectMemberResponseBodyResult = AddProjectMemberResponseBodyResult;
class ArchiveProjectResponseBodyResult extends $tea.Model {
    static names() {
        return {
            isArchived: 'isArchived',
            updated: 'updated',
        };
    }
    static types() {
        return {
            isArchived: 'boolean',
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ArchiveProjectResponseBodyResult = ArchiveProjectResponseBodyResult;
class ArchiveTaskResponseBodyResult extends $tea.Model {
    static names() {
        return {
            updated: 'updated',
        };
    }
    static types() {
        return {
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ArchiveTaskResponseBodyResult = ArchiveTaskResponseBodyResult;
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',
            priority: 'priority',
            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',
            priority: 'number',
            updated: 'string',
            visible: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateOrganizationTaskResponseBodyResult = CreateOrganizationTaskResponseBodyResult;
class CreatePlanTimeResponseBodyResultBody extends $tea.Model {
    static names() {
        return {
            date: 'date',
            objectId: 'objectId',
            planTime: 'planTime',
        };
    }
    static types() {
        return {
            date: 'string',
            objectId: 'string',
            planTime: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreatePlanTimeResponseBodyResultBody = CreatePlanTimeResponseBodyResultBody;
class CreatePlanTimeResponseBodyResult extends $tea.Model {
    static names() {
        return {
            body: 'body',
            message: 'message',
            ok: 'ok',
        };
    }
    static types() {
        return {
            body: { 'type': 'array', 'itemType': CreatePlanTimeResponseBodyResultBody },
            message: 'string',
            ok: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreatePlanTimeResponseBodyResult = CreatePlanTimeResponseBodyResult;
class CreateProjectResponseBodyResultCustomFieldsValue extends $tea.Model {
    static names() {
        return {
            customFieldValueId: 'customFieldValueId',
            metaString: 'metaString',
            title: 'title',
        };
    }
    static types() {
        return {
            customFieldValueId: 'string',
            metaString: 'string',
            title: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateProjectResponseBodyResultCustomFieldsValue = CreateProjectResponseBodyResultCustomFieldsValue;
class CreateProjectResponseBodyResultCustomFields extends $tea.Model {
    static names() {
        return {
            customFieldId: 'customFieldId',
            type: 'type',
            value: 'value',
        };
    }
    static types() {
        return {
            customFieldId: 'string',
            type: 'string',
            value: { 'type': 'array', 'itemType': CreateProjectResponseBodyResultCustomFieldsValue },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateProjectResponseBodyResultCustomFields = CreateProjectResponseBodyResultCustomFields;
class CreateProjectResponseBodyResult extends $tea.Model {
    static names() {
        return {
            created: 'created',
            creatorId: 'creatorId',
            customFields: 'customFields',
            defaultCollectionId: 'defaultCollectionId',
            isArchived: 'isArchived',
            isSuspended: 'isSuspended',
            isTemplate: 'isTemplate',
            logo: 'logo',
            name: 'name',
            normalType: 'normalType',
            projectId: 'projectId',
            rootCollectionId: 'rootCollectionId',
            sourceId: 'sourceId',
            uniqueIdPrefix: 'uniqueIdPrefix',
            updated: 'updated',
            visibility: 'visibility',
        };
    }
    static types() {
        return {
            created: 'string',
            creatorId: 'string',
            customFields: { 'type': 'array', 'itemType': CreateProjectResponseBodyResultCustomFields },
            defaultCollectionId: 'string',
            isArchived: 'boolean',
            isSuspended: 'boolean',
            isTemplate: 'boolean',
            logo: 'string',
            name: 'string',
            normalType: 'string',
            projectId: 'string',
            rootCollectionId: 'string',
            sourceId: 'string',
            uniqueIdPrefix: 'string',
            updated: 'string',
            visibility: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateProjectResponseBodyResult = CreateProjectResponseBodyResult;
class CreateProjectByTemplateResponseBodyResult extends $tea.Model {
    static names() {
        return {
            created: 'created',
            description: 'description',
            endDate: 'endDate',
            id: 'id',
            logo: 'logo',
            name: 'name',
            programId: 'programId',
            startDate: 'startDate',
            visibility: 'visibility',
        };
    }
    static types() {
        return {
            created: 'string',
            description: 'string',
            endDate: 'string',
            id: 'string',
            logo: 'string',
            name: 'string',
            programId: 'string',
            startDate: 'string',
            visibility: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateProjectByTemplateResponseBodyResult = CreateProjectByTemplateResponseBodyResult;
class CreateProjectCustomfieldStatusRequestValue extends $tea.Model {
    static names() {
        return {
            customFieldValueId: 'customFieldValueId',
            metaString: 'metaString',
            title: 'title',
        };
    }
    static types() {
        return {
            customFieldValueId: 'string',
            metaString: 'string',
            title: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateProjectCustomfieldStatusRequestValue = CreateProjectCustomfieldStatusRequestValue;
class CreateProjectCustomfieldStatusResponseBodyResultValue extends $tea.Model {
    static names() {
        return {
            customFieldValueId: 'customFieldValueId',
            metaString: 'metaString',
            title: 'title',
        };
    }
    static types() {
        return {
            customFieldValueId: 'string',
            metaString: 'string',
            title: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateProjectCustomfieldStatusResponseBodyResultValue = CreateProjectCustomfieldStatusResponseBodyResultValue;
class CreateProjectCustomfieldStatusResponseBodyResult extends $tea.Model {
    static names() {
        return {
            advancedCustomFieldObjectType: 'advancedCustomFieldObjectType',
            customFieldId: 'customFieldId',
            name: 'name',
            originalId: 'originalId',
            type: 'type',
            value: 'value',
        };
    }
    static types() {
        return {
            advancedCustomFieldObjectType: 'string',
            customFieldId: 'string',
            name: 'string',
            originalId: 'string',
            type: 'string',
            value: { 'type': 'array', 'itemType': CreateProjectCustomfieldStatusResponseBodyResultValue },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateProjectCustomfieldStatusResponseBodyResult = CreateProjectCustomfieldStatusResponseBodyResult;
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 {
            customfieldAlias: 'customfieldAlias',
            customfieldId: 'customfieldId',
            customfieldName: 'customfieldName',
            value: 'value',
        };
    }
    static types() {
        return {
            customfieldAlias: 'string',
            customfieldId: 'string',
            customfieldName: 'string',
            value: { 'type': 'array', 'itemType': CreateTaskRequestCustomfieldsValue },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTaskRequestCustomfields = CreateTaskRequestCustomfields;
class CreateTaskResponseBodyResultCustomfieldsValue 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.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',
            sprintId: 'sprintId',
            storyPoint: 'storyPoint',
            tagIds: 'tagIds',
            taskId: 'taskId',
            tasklistId: 'tasklistId',
            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',
            sprintId: 'string',
            storyPoint: 'string',
            tagIds: { 'type': 'array', 'itemType': 'string' },
            taskId: 'string',
            tasklistId: 'string',
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTaskResponseBodyResult = CreateTaskResponseBodyResult;
class CreateTaskObjectLinkRequestLinkedData extends $tea.Model {
    static names() {
        return {
            content: 'content',
            thumbnailUrl: 'thumbnailUrl',
            title: 'title',
            url: 'url',
        };
    }
    static types() {
        return {
            content: 'string',
            thumbnailUrl: 'string',
            title: 'string',
            url: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTaskObjectLinkRequestLinkedData = CreateTaskObjectLinkRequestLinkedData;
class CreateTaskObjectLinkResponseBodyResult extends $tea.Model {
    static names() {
        return {
            created: 'created',
            objectLinkId: 'objectLinkId',
        };
    }
    static types() {
        return {
            created: 'string',
            objectLinkId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTaskObjectLinkResponseBodyResult = CreateTaskObjectLinkResponseBodyResult;
class CreateWorkTimeResponseBodyResultBody extends $tea.Model {
    static names() {
        return {
            date: 'date',
            taskId: 'taskId',
            workTime: 'workTime',
        };
    }
    static types() {
        return {
            date: 'string',
            taskId: 'string',
            workTime: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateWorkTimeResponseBodyResultBody = CreateWorkTimeResponseBodyResultBody;
class CreateWorkTimeResponseBodyResult extends $tea.Model {
    static names() {
        return {
            body: 'body',
            message: 'message',
            ok: 'ok',
        };
    }
    static types() {
        return {
            body: { 'type': 'array', 'itemType': CreateWorkTimeResponseBodyResultBody },
            message: 'string',
            ok: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateWorkTimeResponseBodyResult = CreateWorkTimeResponseBodyResult;
class CreateWorkTimeApproveResponseBodyResult extends $tea.Model {
    static names() {
        return {
            approveOpenId: 'approveOpenId',
            createdAt: 'createdAt',
            creatorId: 'creatorId',
            organizationId: 'organizationId',
            status: 'status',
            taskId: 'taskId',
            time: 'time',
            updatedAt: 'updatedAt',
            userId: 'userId',
            workTimeIds: 'workTimeIds',
        };
    }
    static types() {
        return {
            approveOpenId: 'string',
            createdAt: 'string',
            creatorId: 'string',
            organizationId: 'string',
            status: 'string',
            taskId: 'string',
            time: 'number',
            updatedAt: 'string',
            userId: 'string',
            workTimeIds: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateWorkTimeApproveResponseBodyResult = CreateWorkTimeApproveResponseBodyResult;
class GetDeptsByOrgIdResponseBodyDeptList extends $tea.Model {
    static names() {
        return {
            deptId: 'dept_id',
            name: 'name',
            parentId: 'parent_id',
        };
    }
    static types() {
        return {
            deptId: 'number',
            name: 'string',
            parentId: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetDeptsByOrgIdResponseBodyDeptList = GetDeptsByOrgIdResponseBodyDeptList;
class GetEmpsByOrgIdResponseBodyEmpList extends $tea.Model {
    static names() {
        return {
            avatar: 'avatar',
            deptIdList: 'dept_id_list',
            dingId: 'dingId',
            name: 'name',
            nick: 'nick',
            orgId: 'orgId',
            position: 'position',
            unionid: 'unionid',
            userid: 'userid',
        };
    }
    static types() {
        return {
            avatar: 'string',
            deptIdList: { 'type': 'array', 'itemType': 'number' },
            dingId: 'string',
            name: 'string',
            nick: 'string',
            orgId: 'number',
            position: 'string',
            unionid: 'string',
            userid: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetEmpsByOrgIdResponseBodyEmpList = GetEmpsByOrgIdResponseBodyEmpList;
class GetOrganizatioTaskByIdsResponseBodyResult extends $tea.Model {
    static names() {
        return {
            ancestorIds: 'ancestorIds',
            content: 'content',
            created: 'created',
            creatorId: 'creatorId',
            dueDate: 'dueDate',
            executorId: 'executorId',
            involveMembers: 'involveMembers',
            isDeleted: 'isDeleted',
            isDone: 'isDone',
            labels: 'labels',
            note: 'note',
            priority: 'priority',
            startDate: 'startDate',
            taskId: 'taskId',
            updated: 'updated',
            visible: 'visible',
        };
    }
    static types() {
        return {
            ancestorIds: { 'type': 'array', 'itemType': 'string' },
            content: 'string',
            created: 'string',
            creatorId: 'string',
            dueDate: 'string',
            executorId: 'string',
            involveMembers: { 'type': 'array', 'itemType': 'string' },
            isDeleted: 'boolean',
            isDone: 'boolean',
            labels: { 'type': 'array', 'itemType': 'string' },
            note: 'string',
            priority: 'number',
            startDate: 'string',
            taskId: 'string',
            updated: 'string',
            visible: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetOrganizatioTaskByIdsResponseBodyResult = GetOrganizatioTaskByIdsResponseBodyResult;
class GetOrganizationPriorityListResponseBodyResult extends $tea.Model {
    static names() {
        return {
            color: 'color',
            name: 'name',
            priority: 'priority',
            priorityId: 'priorityId',
        };
    }
    static types() {
        return {
            color: 'string',
            name: 'string',
            priority: 'string',
            priorityId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetOrganizationPriorityListResponseBodyResult = GetOrganizationPriorityListResponseBodyResult;
class GetOrganizationTaskResponseBodyResult extends $tea.Model {
    static names() {
        return {
            ancestorIds: 'ancestorIds',
            content: 'content',
            created: 'created',
            creatorId: 'creatorId',
            dueDate: 'dueDate',
            executorId: 'executorId',
            involveMembers: 'involveMembers',
            isDeleted: 'isDeleted',
            isDone: 'isDone',
            labels: 'labels',
            note: 'note',
            priority: 'priority',
            startDate: 'startDate',
            taskId: 'taskId',
            updated: 'updated',
            visible: 'visible',
        };
    }
    static types() {
        return {
            ancestorIds: { 'type': 'array', 'itemType': 'string' },
            content: 'string',
            created: 'string',
            creatorId: 'string',
            dueDate: 'string',
            executorId: 'string',
            involveMembers: { 'type': 'array', 'itemType': 'string' },
            isDeleted: 'boolean',
            isDone: 'boolean',
            labels: { 'type': 'array', 'itemType': 'string' },
            note: 'string',
            priority: 'number',
            startDate: 'string',
            taskId: 'string',
            updated: 'string',
            visible: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetOrganizationTaskResponseBodyResult = GetOrganizationTaskResponseBodyResult;
class GetProjectGroupResponseBodyResult extends $tea.Model {
    static names() {
        return {
            created: 'created',
            id: 'id',
            name: 'name',
            updated: 'updated',
            visible: 'visible',
        };
    }
    static types() {
        return {
            created: 'string',
            id: 'string',
            name: 'string',
            updated: 'string',
            visible: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetProjectGroupResponseBodyResult = GetProjectGroupResponseBodyResult;
class GetProjectMemebersResponseBodyResult extends $tea.Model {
    static names() {
        return {
            memberId: 'memberId',
            role: 'role',
            roleIds: 'roleIds',
            userId: 'userId',
        };
    }
    static types() {
        return {
            memberId: 'string',
            role: 'number',
            roleIds: { 'type': 'array', 'itemType': 'string' },
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetProjectMemebersResponseBodyResult = GetProjectMemebersResponseBodyResult;
class GetProjectStatusListResponseBodyResult extends $tea.Model {
    static names() {
        return {
            content: 'content',
            created: 'created',
            creatorId: 'creatorId',
            degree: 'degree',
            name: 'name',
            projectId: 'projectId',
        };
    }
    static types() {
        return {
            content: 'string',
            created: 'string',
            creatorId: 'string',
            degree: 'string',
            name: 'string',
            projectId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetProjectStatusListResponseBodyResult = GetProjectStatusListResponseBodyResult;
class GetTaskByIdsResponseBodyResultCustomFieldsValue extends $tea.Model {
    static names() {
        return {
            customFieldValueId: 'customFieldValueId',
            metaString: 'metaString',
            title: 'title',
        };
    }
    static types() {
        return {
            customFieldValueId: 'string',
            metaString: 'string',
            title: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTaskByIdsResponseBodyResultCustomFieldsValue = GetTaskByIdsResponseBodyResultCustomFieldsValue;
class GetTaskByIdsResponseBodyResultCustomFields extends $tea.Model {
    static names() {
        return {
            customFieldId: 'customFieldId',
            type: 'type',
            value: 'value',
        };
    }
    static types() {
        return {
            customFieldId: 'string',
            type: 'string',
            value: { 'type': 'array', 'itemType': GetTaskByIdsResponseBodyResultCustomFieldsValue },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTaskByIdsResponseBodyResultCustomFields = GetTaskByIdsResponseBodyResultCustomFields;
class GetTaskByIdsResponseBodyResult extends $tea.Model {
    static names() {
        return {
            accomplishTime: 'accomplishTime',
            ancestorIds: 'ancestorIds',
            content: 'content',
            created: 'created',
            creatorId: 'creatorId',
            customFields: 'customFields',
            dueDate: 'dueDate',
            executorId: 'executorId',
            involveMembers: 'involveMembers',
            isArchived: 'isArchived',
            isDone: 'isDone',
            note: 'note',
            parentTaskId: 'parentTaskId',
            priority: 'priority',
            projectId: 'projectId',
            recurrence: 'recurrence',
            scenarioFieldConfigId: 'scenarioFieldConfigId',
            sprintId: 'sprintId',
            startDate: 'startDate',
            storyPoint: 'storyPoint',
            tagIds: 'tagIds',
            taskId: 'taskId',
            taskListId: 'taskListId',
            taskStageId: 'taskStageId',
            taskflowStatusId: 'taskflowStatusId',
            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': GetTaskByIdsResponseBodyResultCustomFields },
            dueDate: 'string',
            executorId: 'string',
            involveMembers: { 'type': 'array', 'itemType': 'string' },
            isArchived: 'boolean',
            isDone: 'boolean',
            note: 'string',
            parentTaskId: 'string',
            priority: 'number',
            projectId: 'string',
            recurrence: { 'type': 'array', 'itemType': 'string' },
            scenarioFieldConfigId: 'string',
            sprintId: 'string',
            startDate: 'string',
            storyPoint: 'string',
            tagIds: { 'type': 'array', 'itemType': 'string' },
            taskId: 'string',
            taskListId: 'string',
            taskStageId: 'string',
            taskflowStatusId: 'string',
            uniqueId: 'string',
            updated: 'string',
            visible: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTaskByIdsResponseBodyResult = GetTaskByIdsResponseBodyResult;
class GetTbOrgIdByDingOrgIdResponseBodyResult extends $tea.Model {
    static names() {
        return {
            tbOrganizationId: 'tbOrganizationId',
        };
    }
    static types() {
        return {
            tbOrganizationId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTbOrgIdByDingOrgIdResponseBodyResult = GetTbOrgIdByDingOrgIdResponseBodyResult;
class GetTbUserIdByStaffIdResponseBodyResult extends $tea.Model {
    static names() {
        return {
            tbUserId: 'tbUserId',
        };
    }
    static types() {
        return {
            tbUserId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTbUserIdByStaffIdResponseBodyResult = GetTbUserIdByStaffIdResponseBodyResult;
class QueryProjectResponseBodyResultCustomFieldsValue extends $tea.Model {
    static names() {
        return {
            customFieldValueId: 'customFieldValueId',
            metaString: 'metaString',
            title: 'title',
        };
    }
    static types() {
        return {
            customFieldValueId: 'string',
            metaString: 'string',
            title: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryProjectResponseBodyResultCustomFieldsValue = QueryProjectResponseBodyResultCustomFieldsValue;
class QueryProjectResponseBodyResultCustomFields extends $tea.Model {
    static names() {
        return {
            customFieldId: 'customFieldId',
            type: 'type',
            value: 'value',
        };
    }
    static types() {
        return {
            customFieldId: 'string',
            type: 'string',
            value: { 'type': 'array', 'itemType': QueryProjectResponseBodyResultCustomFieldsValue },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryProjectResponseBodyResultCustomFields = QueryProjectResponseBodyResultCustomFields;
class QueryProjectResponseBodyResult extends $tea.Model {
    static names() {
        return {
            created: 'created',
            creatorId: 'creatorId',
            customFields: 'customFields',
            description: 'description',
            endDate: 'endDate',
            isArchived: 'isArchived',
            isSuspended: 'isSuspended',
            isTemplate: 'isTemplate',
            logo: 'logo',
            name: 'name',
            organizationId: 'organizationId',
            projectId: 'projectId',
            startDate: 'startDate',
            uniqueIdPrefix: 'uniqueIdPrefix',
            updated: 'updated',
            visibility: 'visibility',
        };
    }
    static types() {
        return {
            created: 'string',
            creatorId: 'string',
            customFields: { 'type': 'array', 'itemType': QueryProjectResponseBodyResultCustomFields },
            description: 'string',
            endDate: 'string',
            isArchived: 'boolean',
            isSuspended: 'boolean',
            isTemplate: 'boolean',
            logo: 'string',
            name: 'string',
            organizationId: 'string',
            projectId: 'string',
            startDate: 'string',
            uniqueIdPrefix: 'string',
            updated: 'string',
            visibility: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryProjectResponseBodyResult = QueryProjectResponseBodyResult;
class QueryTaskOfProjectResponseBodyResultCustomfields extends $tea.Model {
    static names() {
        return {
            customfieldId: 'customfieldId',
        };
    }
    static types() {
        return {
            customfieldId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTaskOfProjectResponseBodyResultCustomfields = QueryTaskOfProjectResponseBodyResultCustomfields;
class QueryTaskOfProjectResponseBodyResult extends $tea.Model {
    static names() {
        return {
            accomplished: 'accomplished',
            ancestorIds: 'ancestorIds',
            content: 'content',
            created: 'created',
            creatorId: 'creatorId',
            customfields: 'customfields',
            dueDate: 'dueDate',
            executorId: 'executorId',
            involveMembers: 'involveMembers',
            isArchived: 'isArchived',
            isDeleted: 'isDeleted',
            isDone: 'isDone',
            labels: 'labels',
            note: 'note',
            priority: 'priority',
            progress: 'progress',
            projectId: 'projectId',
            scenariofieldconfigId: 'scenariofieldconfigId',
            sprintId: 'sprintId',
            stageId: 'stageId',
            startDate: 'startDate',
            storyPoint: 'storyPoint',
            tagIds: 'tagIds',
            taskId: 'taskId',
            taskflowstatusId: 'taskflowstatusId',
            updated: 'updated',
            visible: 'visible',
        };
    }
    static types() {
        return {
            accomplished: 'string',
            ancestorIds: { 'type': 'array', 'itemType': 'string' },
            content: 'string',
            created: 'string',
            creatorId: 'string',
            customfields: { 'type': 'array', 'itemType': QueryTaskOfProjectResponseBodyResultCustomfields },
            dueDate: 'string',
            executorId: 'string',
            involveMembers: { 'type': 'array', 'itemType': 'string' },
            isArchived: 'boolean',
            isDeleted: 'boolean',
            isDone: 'boolean',
            labels: { 'type': 'array', 'itemType': 'string' },
            note: 'string',
            priority: 'number',
            progress: 'number',
            projectId: 'string',
            scenariofieldconfigId: 'string',
            sprintId: 'string',
            stageId: 'string',
            startDate: 'string',
            storyPoint: 'number',
            tagIds: { 'type': 'array', 'itemType': 'string' },
            taskId: 'string',
            taskflowstatusId: 'string',
            updated: 'string',
            visible: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTaskOfProjectResponseBodyResult = QueryTaskOfProjectResponseBodyResult;
class SeachTaskStageResponseBodyResult extends $tea.Model {
    static names() {
        return {
            created: 'created',
            creatorId: 'creatorId',
            description: 'description',
            name: 'name',
            projectId: 'projectId',
            taskListId: 'taskListId',
            taskStageId: 'taskStageId',
            updated: 'updated',
        };
    }
    static types() {
        return {
            created: 'string',
            creatorId: 'string',
            description: 'string',
            name: 'string',
            projectId: 'string',
            taskListId: 'string',
            taskStageId: 'string',
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SeachTaskStageResponseBodyResult = SeachTaskStageResponseBodyResult;
class SearchOranizationCustomfieldResponseBodyResultAdvancedCustomField extends $tea.Model {
    static names() {
        return {
            advancedCustomFieldId: 'advancedCustomFieldId',
            name: 'name',
            objectType: 'objectType',
        };
    }
    static types() {
        return {
            advancedCustomFieldId: 'string',
            name: 'string',
            objectType: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchOranizationCustomfieldResponseBodyResultAdvancedCustomField = SearchOranizationCustomfieldResponseBodyResultAdvancedCustomField;
class SearchOranizationCustomfieldResponseBodyResultChoices extends $tea.Model {
    static names() {
        return {
            choiceId: 'choiceId',
            value: 'value',
        };
    }
    static types() {
        return {
            choiceId: 'string',
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchOranizationCustomfieldResponseBodyResultChoices = SearchOranizationCustomfieldResponseBodyResultChoices;
class SearchOranizationCustomfieldResponseBodyResult extends $tea.Model {
    static names() {
        return {
            advancedCustomField: 'advancedCustomField',
            choices: 'choices',
            created: 'created',
            creatorId: 'creatorId',
            customFieldsId: 'customFieldsId',
            name: 'name',
            payload: 'payload',
            type: 'type',
        };
    }
    static types() {
        return {
            advancedCustomField: SearchOranizationCustomfieldResponseBodyResultAdvancedCustomField,
            choices: { 'type': 'array', 'itemType': SearchOranizationCustomfieldResponseBodyResultChoices },
            created: 'string',
            creatorId: 'string',
            customFieldsId: 'string',
            name: 'string',
            payload: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchOranizationCustomfieldResponseBodyResult = SearchOranizationCustomfieldResponseBodyResult;
class SearchProjectCustomfieldResponseBodyResultAdvancedCustomField extends $tea.Model {
    static names() {
        return {
            advancedCustomFieldId: 'advancedCustomFieldId',
            name: 'name',
            objectType: 'objectType',
        };
    }
    static types() {
        return {
            advancedCustomFieldId: 'string',
            name: 'string',
            objectType: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchProjectCustomfieldResponseBodyResultAdvancedCustomField = SearchProjectCustomfieldResponseBodyResultAdvancedCustomField;
class SearchProjectCustomfieldResponseBodyResultChoices extends $tea.Model {
    static names() {
        return {
            choiceId: 'choiceId',
            value: 'value',
        };
    }
    static types() {
        return {
            choiceId: 'string',
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchProjectCustomfieldResponseBodyResultChoices = SearchProjectCustomfieldResponseBodyResultChoices;
class SearchProjectCustomfieldResponseBodyResult extends $tea.Model {
    static names() {
        return {
            advancedCustomField: 'advancedCustomField',
            boundToObjectId: 'boundToObjectId',
            choices: 'choices',
            created: 'created',
            creatorId: 'creatorId',
            customFieldId: 'customFieldId',
            name: 'name',
            originalId: 'originalId',
            payload: 'payload',
            type: 'type',
        };
    }
    static types() {
        return {
            advancedCustomField: SearchProjectCustomfieldResponseBodyResultAdvancedCustomField,
            boundToObjectId: 'string',
            choices: { 'type': 'array', 'itemType': SearchProjectCustomfieldResponseBodyResultChoices },
            created: 'string',
            creatorId: 'string',
            customFieldId: 'string',
            name: 'string',
            originalId: 'string',
            payload: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchProjectCustomfieldResponseBodyResult = SearchProjectCustomfieldResponseBodyResult;
class SearchProjectTemplateResponseBodyResult extends $tea.Model {
    static names() {
        return {
            created: 'created',
            description: 'description',
            id: 'id',
            isDeleted: 'isDeleted',
            isDemo: 'isDemo',
            logo: 'logo',
            name: 'name',
            updated: 'updated',
            visible: 'visible',
        };
    }
    static types() {
        return {
            created: 'string',
            description: 'string',
            id: 'string',
            isDeleted: 'boolean',
            isDemo: 'boolean',
            logo: 'string',
            name: 'string',
            updated: 'string',
            visible: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchProjectTemplateResponseBodyResult = SearchProjectTemplateResponseBodyResult;
class SearchTaskFlowResponseBodyResult extends $tea.Model {
    static names() {
        return {
            boundToObjectId: 'boundToObjectId',
            boundToObjectType: 'boundToObjectType',
            created: 'created',
            creatorId: 'creatorId',
            isDeleted: 'isDeleted',
            name: 'name',
            taskflowId: 'taskflowId',
            updated: 'updated',
        };
    }
    static types() {
        return {
            boundToObjectId: 'string',
            boundToObjectType: 'string',
            created: 'string',
            creatorId: 'string',
            isDeleted: 'boolean',
            name: 'string',
            taskflowId: 'string',
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchTaskFlowResponseBodyResult = SearchTaskFlowResponseBodyResult;
class SearchTaskListResponseBodyResult extends $tea.Model {
    static names() {
        return {
            created: 'created',
            creatorId: 'creatorId',
            description: 'description',
            projectId: 'projectId',
            taskListId: 'taskListId',
            title: 'title',
            updated: 'updated',
        };
    }
    static types() {
        return {
            created: 'string',
            creatorId: 'string',
            description: 'string',
            projectId: 'string',
            taskListId: 'string',
            title: 'string',
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchTaskListResponseBodyResult = SearchTaskListResponseBodyResult;
class SearchTaskflowStatusResponseBodyResult extends $tea.Model {
    static names() {
        return {
            created: 'created',
            creatorId: 'creatorId',
            isDeleted: 'isDeleted',
            isTaskflowstatusruleexector: 'isTaskflowstatusruleexector',
            kind: 'kind',
            name: 'name',
            pos: 'pos',
            rejectStatusIds: 'rejectStatusIds',
            taskflowId: 'taskflowId',
            taskflowStatusId: 'taskflowStatusId',
            updated: 'updated',
        };
    }
    static types() {
        return {
            created: 'string',
            creatorId: 'string',
            isDeleted: 'boolean',
            isTaskflowstatusruleexector: 'boolean',
            kind: 'string',
            name: 'string',
            pos: 'number',
            rejectStatusIds: { 'type': 'array', 'itemType': 'string' },
            taskflowId: 'string',
            taskflowStatusId: 'string',
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchTaskflowStatusResponseBodyResult = SearchTaskflowStatusResponseBodyResult;
class SearchUserTaskResponseBodyResultCustomFieldsValue extends $tea.Model {
    static names() {
        return {
            customFieldValueId: 'customFieldValueId',
            metaString: 'metaString',
            title: 'title',
        };
    }
    static types() {
        return {
            customFieldValueId: 'string',
            metaString: 'string',
            title: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchUserTaskResponseBodyResultCustomFieldsValue = SearchUserTaskResponseBodyResultCustomFieldsValue;
class SearchUserTaskResponseBodyResultCustomFields extends $tea.Model {
    static names() {
        return {
            customFieldId: 'customFieldId',
            type: 'type',
            value: 'value',
        };
    }
    static types() {
        return {
            customFieldId: 'string',
            type: 'string',
            value: { 'type': 'array', 'itemType': SearchUserTaskResponseBodyResultCustomFieldsValue },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchUserTaskResponseBodyResultCustomFields = SearchUserTaskResponseBodyResultCustomFields;
class SearchUserTaskResponseBodyResult extends $tea.Model {
    static names() {
        return {
            accomplishTime: 'accomplishTime',
            ancestorIds: 'ancestorIds',
            content: 'content',
            created: 'created',
            creatorId: 'creatorId',
            customFields: 'customFields',
            dueDate: 'dueDate',
            executorId: 'executorId',
            involveMembers: 'involveMembers',
            isArchived: 'isArchived',
            isDone: 'isDone',
            note: 'note',
            parentTaskId: 'parentTaskId',
            priority: 'priority',
            projectId: 'projectId',
            recurrence: 'recurrence',
            scenarioFieldConfigId: 'scenarioFieldConfigId',
            sprintId: 'sprintId',
            startDate: 'startDate',
            storyPoint: 'storyPoint',
            tagIds: 'tagIds',
            taskId: 'taskId',
            taskListId: 'taskListId',
            taskStageId: 'taskStageId',
            taskflowStatusId: 'taskflowStatusId',
            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': SearchUserTaskResponseBodyResultCustomFields },
            dueDate: 'string',
            executorId: 'string',
            involveMembers: { 'type': 'array', 'itemType': 'string' },
            isArchived: 'boolean',
            isDone: 'boolean',
            note: 'string',
            parentTaskId: 'string',
            priority: 'number',
            projectId: 'string',
            recurrence: { 'type': 'array', 'itemType': 'string' },
            scenarioFieldConfigId: 'string',
            sprintId: 'string',
            startDate: 'string',
            storyPoint: 'string',
            tagIds: { 'type': 'array', 'itemType': 'string' },
            taskId: 'string',
            taskListId: 'string',
            taskStageId: 'string',
            taskflowStatusId: 'string',
            uniqueId: 'string',
            updated: 'string',
            visible: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SearchUserTaskResponseBodyResult = SearchUserTaskResponseBodyResult;
class SuspendProjectResponseBodyResult extends $tea.Model {
    static names() {
        return {
            updated: 'updated',
        };
    }
    static types() {
        return {
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SuspendProjectResponseBodyResult = SuspendProjectResponseBodyResult;
class UnSuspendProjectResponseBodyResult extends $tea.Model {
    static names() {
        return {
            updated: 'updated',
        };
    }
    static types() {
        return {
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UnSuspendProjectResponseBodyResult = UnSuspendProjectResponseBodyResult;
class UpdateCustomfieldValueRequestValue 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.UpdateCustomfieldValueRequestValue = UpdateCustomfieldValueRequestValue;
class UpdateCustomfieldValueResponseBodyResultCustomFieldsValue 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.UpdateCustomfieldValueResponseBodyResultCustomFieldsValue = UpdateCustomfieldValueResponseBodyResultCustomFieldsValue;
class UpdateCustomfieldValueResponseBodyResultCustomFields extends $tea.Model {
    static names() {
        return {
            customFieldId: 'customFieldId',
            value: 'value',
        };
    }
    static types() {
        return {
            customFieldId: 'string',
            value: { 'type': 'array', 'itemType': UpdateCustomfieldValueResponseBodyResultCustomFieldsValue },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateCustomfieldValueResponseBodyResultCustomFields = UpdateCustomfieldValueResponseBodyResultCustomFields;
class UpdateCustomfieldValueResponseBodyResult extends $tea.Model {
    static names() {
        return {
            customFields: 'customFields',
        };
    }
    static types() {
        return {
            customFields: { 'type': 'array', 'itemType': UpdateCustomfieldValueResponseBodyResultCustomFields },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateCustomfieldValueResponseBodyResult = UpdateCustomfieldValueResponseBodyResult;
class UpdateOrganizationTaskContentResponseBodyResult extends $tea.Model {
    static names() {
        return {
            content: 'content',
            updated: 'updated',
        };
    }
    static types() {
        return {
            content: 'string',
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskContentResponseBodyResult = UpdateOrganizationTaskContentResponseBodyResult;
class UpdateOrganizationTaskDueDateResponseBodyResult extends $tea.Model {
    static names() {
        return {
            dueDate: 'dueDate',
            updateTime: 'updateTime',
        };
    }
    static types() {
        return {
            dueDate: 'string',
            updateTime: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskDueDateResponseBodyResult = UpdateOrganizationTaskDueDateResponseBodyResult;
class UpdateOrganizationTaskExecutorResponseBodyResultExecutor 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.UpdateOrganizationTaskExecutorResponseBodyResultExecutor = UpdateOrganizationTaskExecutorResponseBodyResultExecutor;
class UpdateOrganizationTaskExecutorResponseBodyResultInvolvers 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.UpdateOrganizationTaskExecutorResponseBodyResultInvolvers = UpdateOrganizationTaskExecutorResponseBodyResultInvolvers;
class UpdateOrganizationTaskExecutorResponseBodyResult extends $tea.Model {
    static names() {
        return {
            executor: 'executor',
            executorId: 'executorId',
            involvers: 'involvers',
            updated: 'updated',
        };
    }
    static types() {
        return {
            executor: UpdateOrganizationTaskExecutorResponseBodyResultExecutor,
            executorId: 'string',
            involvers: { 'type': 'array', 'itemType': UpdateOrganizationTaskExecutorResponseBodyResultInvolvers },
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskExecutorResponseBodyResult = UpdateOrganizationTaskExecutorResponseBodyResult;
class UpdateOrganizationTaskInvolveMembersResponseBodyResultInvolvers 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.UpdateOrganizationTaskInvolveMembersResponseBodyResultInvolvers = UpdateOrganizationTaskInvolveMembersResponseBodyResultInvolvers;
class UpdateOrganizationTaskInvolveMembersResponseBodyResult extends $tea.Model {
    static names() {
        return {
            involvers: 'involvers',
            updated: 'updated',
        };
    }
    static types() {
        return {
            involvers: { 'type': 'array', 'itemType': UpdateOrganizationTaskInvolveMembersResponseBodyResultInvolvers },
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskInvolveMembersResponseBodyResult = UpdateOrganizationTaskInvolveMembersResponseBodyResult;
class UpdateOrganizationTaskNoteResponseBodyResult extends $tea.Model {
    static names() {
        return {
            note: 'note',
            updated: 'updated',
        };
    }
    static types() {
        return {
            note: 'string',
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskNoteResponseBodyResult = UpdateOrganizationTaskNoteResponseBodyResult;
class UpdateOrganizationTaskPriorityResponseBodyResult extends $tea.Model {
    static names() {
        return {
            priority: 'priority',
            updated: 'updated',
        };
    }
    static types() {
        return {
            priority: 'number',
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskPriorityResponseBodyResult = UpdateOrganizationTaskPriorityResponseBodyResult;
class UpdateOrganizationTaskStatusResponseBodyResult extends $tea.Model {
    static names() {
        return {
            isDone: 'isDone',
            updateTime: 'updateTime',
        };
    }
    static types() {
        return {
            isDone: 'boolean',
            updateTime: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateOrganizationTaskStatusResponseBodyResult = UpdateOrganizationTaskStatusResponseBodyResult;
class UpdateProjectGroupResponseBodyResult extends $tea.Model {
    static names() {
        return {
            ok: 'ok',
        };
    }
    static types() {
        return {
            ok: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateProjectGroupResponseBodyResult = UpdateProjectGroupResponseBodyResult;
class UpdateTaskContentResponseBodyResult extends $tea.Model {
    static names() {
        return {
            content: 'content',
            updated: 'updated',
        };
    }
    static types() {
        return {
            content: 'string',
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskContentResponseBodyResult = UpdateTaskContentResponseBodyResult;
class UpdateTaskDueDateResponseBodyResult extends $tea.Model {
    static names() {
        return {
            dueDate: 'dueDate',
            updated: 'updated',
        };
    }
    static types() {
        return {
            dueDate: 'string',
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskDueDateResponseBodyResult = UpdateTaskDueDateResponseBodyResult;
class UpdateTaskExecutorResponseBodyResult extends $tea.Model {
    static names() {
        return {
            executorId: 'executorId',
            updated: 'updated',
        };
    }
    static types() {
        return {
            executorId: 'string',
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskExecutorResponseBodyResult = UpdateTaskExecutorResponseBodyResult;
class UpdateTaskInvolvemembersResponseBodyResult extends $tea.Model {
    static names() {
        return {
            involveMembers: 'involveMembers',
            updated: 'updated',
        };
    }
    static types() {
        return {
            involveMembers: { 'type': 'array', 'itemType': 'string' },
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskInvolvemembersResponseBodyResult = UpdateTaskInvolvemembersResponseBodyResult;
class UpdateTaskNoteResponseBodyResult extends $tea.Model {
    static names() {
        return {
            note: 'note',
            updated: 'updated',
        };
    }
    static types() {
        return {
            note: 'string',
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskNoteResponseBodyResult = UpdateTaskNoteResponseBodyResult;
class UpdateTaskPriorityResponseBodyResult extends $tea.Model {
    static names() {
        return {
            priority: 'priority',
            updated: 'updated',
        };
    }
    static types() {
        return {
            priority: 'number',
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskPriorityResponseBodyResult = UpdateTaskPriorityResponseBodyResult;
class UpdateTaskStageResponseBodyResult extends $tea.Model {
    static names() {
        return {
            accomplishTime: 'accomplishTime',
            isDone: 'isDone',
            projectId: 'projectId',
            taskId: 'taskId',
            taskListId: 'taskListId',
            taskStageId: 'taskStageId',
            updated: 'updated',
        };
    }
    static types() {
        return {
            accomplishTime: 'string',
            isDone: 'boolean',
            projectId: 'string',
            taskId: 'string',
            taskListId: 'string',
            taskStageId: 'string',
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskStageResponseBodyResult = UpdateTaskStageResponseBodyResult;
class UpdateTaskStartdateResponseBodyResult extends $tea.Model {
    static names() {
        return {
            startDate: 'startDate',
            updated: 'updated',
        };
    }
    static types() {
        return {
            startDate: 'string',
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskStartdateResponseBodyResult = UpdateTaskStartdateResponseBodyResult;
class UpdateTaskTaskflowstatusResponseBodyResult extends $tea.Model {
    static names() {
        return {
            updated: 'updated',
        };
    }
    static types() {
        return {
            updated: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTaskTaskflowstatusResponseBodyResult = UpdateTaskTaskflowstatusResponseBodyResult;
class UpdateWorkTimeApproveResponseBodyResult extends $tea.Model {
    static names() {
        return {
            approveOpenId: 'approveOpenId',
            createdAt: 'createdAt',
            creatorId: 'creatorId',
            finishTime: 'finishTime',
            instanceId: 'instanceId',
            organizationId: 'organizationId',
            status: 'status',
            submitTime: 'submitTime',
            taskId: 'taskId',
            time: 'time',
            title: 'title',
            updatedAt: 'updatedAt',
            url: 'url',
            userId: 'userId',
            workTimeIds: 'workTimeIds',
        };
    }
    static types() {
        return {
            approveOpenId: 'string',
            createdAt: 'string',
            creatorId: 'string',
            finishTime: 'string',
            instanceId: 'string',
            organizationId: 'string',
            status: 'string',
            submitTime: 'string',
            taskId: 'string',
            time: 'number',
            title: 'string',
            updatedAt: 'string',
            url: 'string',
            userId: 'string',
            workTimeIds: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateWorkTimeApproveResponseBodyResult = UpdateWorkTimeApproveResponseBodyResult;
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 - AddProjectMemberRequest
     * @param headers - AddProjectMemberHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns AddProjectMemberResponse
     */
    async addProjectMemberWithOptions(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: "AddProjectMember",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/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 AddProjectMemberResponse({}));
    }
    /**
     * 增加项目成员
     *
     * @param request - AddProjectMemberRequest
     * @returns AddProjectMemberResponse
     */
    async addProjectMember(userId, projectId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new AddProjectMemberHeaders({});
        return await this.addProjectMemberWithOptions(userId, projectId, request, headers, runtime);
    }
    /**
     * 项目放入回收站
     *
     * @param headers - ArchiveProjectHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ArchiveProjectResponse
     */
    async archiveProjectWithOptions(userId, projectId, 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: "ArchiveProject",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/projects/${projectId}/archive`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new ArchiveProjectResponse({}));
    }
    /**
     * 项目放入回收站
     * @returns ArchiveProjectResponse
     */
    async archiveProject(userId, projectId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new ArchiveProjectHeaders({});
        return await this.archiveProjectWithOptions(userId, projectId, headers, runtime);
    }
    /**
     * 任务迁移至回收站
     *
     * @param headers - ArchiveTaskHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ArchiveTaskResponse
     */
    async archiveTaskWithOptions(userId, taskId, 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: "ArchiveTask",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/tasks/${taskId}/archive`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new ArchiveTaskResponse({}));
    }
    /**
     * 任务迁移至回收站
     * @returns ArchiveTaskResponse
     */
    async archiveTask(userId, taskId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new ArchiveTaskHeaders({});
        return await this.archiveTaskWithOptions(userId, taskId, 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.createTime)) {
            body["createTime"] = request.createTime;
        }
        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.priority)) {
            body["priority"] = request.priority;
        }
        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: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/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 - CreatePlanTimeRequest
     * @param headers - CreatePlanTimeHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns CreatePlanTimeResponse
     */
    async createPlanTimeWithOptions(userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.tenantType)) {
            query["tenantType"] = request.tenantType;
        }
        let body = {};
        if (!tea_util_1.default.isUnset(request.endDate)) {
            body["endDate"] = request.endDate;
        }
        if (!tea_util_1.default.isUnset(request.executorId)) {
            body["executorId"] = request.executorId;
        }
        if (!tea_util_1.default.isUnset(request.includesHolidays)) {
            body["includesHolidays"] = request.includesHolidays;
        }
        if (!tea_util_1.default.isUnset(request.isDuration)) {
            body["isDuration"] = request.isDuration;
        }
        if (!tea_util_1.default.isUnset(request.objectId)) {
            body["objectId"] = request.objectId;
        }
        if (!tea_util_1.default.isUnset(request.objectType)) {
            body["objectType"] = request.objectType;
        }
        if (!tea_util_1.default.isUnset(request.planTime)) {
            body["planTime"] = request.planTime;
        }
        if (!tea_util_1.default.isUnset(request.startDate)) {
            body["startDate"] = request.startDate;
        }
        if (!tea_util_1.default.isUnset(request.submitterId)) {
            body["submitterId"] = request.submitterId;
        }
        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: "CreatePlanTime",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/planTimes`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new CreatePlanTimeResponse({}));
    }
    /**
     * 录入计划工时
     *
     * @param request - CreatePlanTimeRequest
     * @returns CreatePlanTimeResponse
     */
    async createPlanTime(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new CreatePlanTimeHeaders({});
        return await this.createPlanTimeWithOptions(userId, request, headers, runtime);
    }
    /**
     * 创建项目
     *
     * @param request - CreateProjectRequest
     * @param headers - CreateProjectHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns CreateProjectResponse
     */
    async createProjectWithOptions(userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        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,
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "CreateProject",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/projects`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new CreateProjectResponse({}));
    }
    /**
     * 创建项目
     *
     * @param request - CreateProjectRequest
     * @returns CreateProjectResponse
     */
    async createProject(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new CreateProjectHeaders({});
        return await this.createProjectWithOptions(userId, request, headers, runtime);
    }
    /**
     * 根据项目模板创建项目
     *
     * @param request - CreateProjectByTemplateRequest
     * @param headers - CreateProjectByTemplateHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns CreateProjectByTemplateResponse
     */
    async createProjectByTemplateWithOptions(userId, 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.endDate)) {
            body["endDate"] = request.endDate;
        }
        if (!tea_util_1.default.isUnset(request.name)) {
            body["name"] = request.name;
        }
        if (!tea_util_1.default.isUnset(request.programId)) {
            body["programId"] = request.programId;
        }
        if (!tea_util_1.default.isUnset(request.programName)) {
            body["programName"] = request.programName;
        }
        if (!tea_util_1.default.isUnset(request.startDate)) {
            body["startDate"] = request.startDate;
        }
        if (!tea_util_1.default.isUnset(request.templateId)) {
            body["templateId"] = request.templateId;
        }
        if (!tea_util_1.default.isUnset(request.templateName)) {
            body["templateName"] = request.templateName;
        }
        if (!tea_util_1.default.isUnset(request.visibility)) {
            body["visibility"] = request.visibility;
        }
        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: "CreateProjectByTemplate",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/templates/projects`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new CreateProjectByTemplateResponse({}));
    }
    /**
     * 根据项目模板创建项目
     *
     * @param request - CreateProjectByTemplateRequest
     * @returns CreateProjectByTemplateResponse
     */
    async createProjectByTemplate(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new CreateProjectByTemplateHeaders({});
        return await this.createProjectByTemplateWithOptions(userId, request, headers, runtime);
    }
    /**
     * 创建或更新项目概览中自定义字段值
     *
     * @param request - CreateProjectCustomfieldStatusRequest
     * @param headers - CreateProjectCustomfieldStatusHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns CreateProjectCustomfieldStatusResponse
     */
    async createProjectCustomfieldStatusWithOptions(userId, projectId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.customFieldId)) {
            body["customFieldId"] = request.customFieldId;
        }
        if (!tea_util_1.default.isUnset(request.customFieldInstanceId)) {
            body["customFieldInstanceId"] = request.customFieldInstanceId;
        }
        if (!tea_util_1.default.isUnset(request.customFieldName)) {
            body["customFieldName"] = request.customFieldName;
        }
        if (!tea_util_1.default.isUnset(request.value)) {
            body["value"] = request.value;
        }
        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: "CreateProjectCustomfieldStatus",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/projects/${projectId}/customfields`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new CreateProjectCustomfieldStatusResponse({}));
    }
    /**
     * 创建或更新项目概览中自定义字段值
     *
     * @param request - CreateProjectCustomfieldStatusRequest
     * @returns CreateProjectCustomfieldStatusResponse
     */
    async createProjectCustomfieldStatus(userId, projectId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new CreateProjectCustomfieldStatusHeaders({});
        return await this.createProjectCustomfieldStatusWithOptions(userId, projectId, 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.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.parentTaskId)) {
            body["parentTaskId"] = request.parentTaskId;
        }
        if (!tea_util_1.default.isUnset(request.priority)) {
            body["priority"] = request.priority;
        }
        if (!tea_util_1.default.isUnset(request.priorityName)) {
            body["priorityName"] = request.priorityName;
        }
        if (!tea_util_1.default.isUnset(request.projectId)) {
            body["projectId"] = request.projectId;
        }
        if (!tea_util_1.default.isUnset(request.projectName)) {
            body["projectName"] = request.projectName;
        }
        if (!tea_util_1.default.isUnset(request.scenariofieldconfigId)) {
            body["scenariofieldconfigId"] = request.scenariofieldconfigId;
        }
        if (!tea_util_1.default.isUnset(request.sprintId)) {
            body["sprintId"] = request.sprintId;
        }
        if (!tea_util_1.default.isUnset(request.stageId)) {
            body["stageId"] = request.stageId;
        }
        if (!tea_util_1.default.isUnset(request.startDate)) {
            body["startDate"] = request.startDate;
        }
        if (!tea_util_1.default.isUnset(request.storyPoint)) {
            body["storyPoint"] = request.storyPoint;
        }
        if (!tea_util_1.default.isUnset(request.tagIds)) {
            body["tagIds"] = request.tagIds;
        }
        if (!tea_util_1.default.isUnset(request.tagNames)) {
            body["tagNames"] = request.tagNames;
        }
        if (!tea_util_1.default.isUnset(request.taskflowstatusId)) {
            body["taskflowstatusId"] = request.taskflowstatusId;
        }
        if (!tea_util_1.default.isUnset(request.tasklistId)) {
            body["tasklistId"] = request.tasklistId;
        }
        if (!tea_util_1.default.isUnset(request.tfsName)) {
            body["tfsName"] = request.tfsName;
        }
        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: "CreateTask",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/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 - CreateTaskObjectLinkRequest
     * @param headers - CreateTaskObjectLinkHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns CreateTaskObjectLinkResponse
     */
    async createTaskObjectLinkWithOptions(userId, taskId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.linkedData)) {
            body["linkedData"] = request.linkedData;
        }
        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: "CreateTaskObjectLink",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/tasks/${taskId}/objectLinks`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new CreateTaskObjectLinkResponse({}));
    }
    /**
     * 创建任务关联对象
     *
     * @param request - CreateTaskObjectLinkRequest
     * @returns CreateTaskObjectLinkResponse
     */
    async createTaskObjectLink(userId, taskId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new CreateTaskObjectLinkHeaders({});
        return await this.createTaskObjectLinkWithOptions(userId, taskId, request, headers, runtime);
    }
    /**
     * 录入实际工时接口
     *
     * @param request - CreateWorkTimeRequest
     * @param headers - CreateWorkTimeHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns CreateWorkTimeResponse
     */
    async createWorkTimeWithOptions(userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.tenantType)) {
            query["tenantType"] = request.tenantType;
        }
        let body = {};
        if (!tea_util_1.default.isUnset(request.description)) {
            body["description"] = request.description;
        }
        if (!tea_util_1.default.isUnset(request.endDate)) {
            body["endDate"] = request.endDate;
        }
        if (!tea_util_1.default.isUnset(request.executorId)) {
            body["executorId"] = request.executorId;
        }
        if (!tea_util_1.default.isUnset(request.includesHolidays)) {
            body["includesHolidays"] = request.includesHolidays;
        }
        if (!tea_util_1.default.isUnset(request.isDuration)) {
            body["isDuration"] = request.isDuration;
        }
        if (!tea_util_1.default.isUnset(request.objectId)) {
            body["objectId"] = request.objectId;
        }
        if (!tea_util_1.default.isUnset(request.objectType)) {
            body["objectType"] = request.objectType;
        }
        if (!tea_util_1.default.isUnset(request.startDate)) {
            body["startDate"] = request.startDate;
        }
        if (!tea_util_1.default.isUnset(request.submitterId)) {
            body["submitterId"] = request.submitterId;
        }
        if (!tea_util_1.default.isUnset(request.workTime)) {
            body["workTime"] = request.workTime;
        }
        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: "CreateWorkTime",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/workTimes`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new CreateWorkTimeResponse({}));
    }
    /**
     * 录入实际工时接口
     *
     * @param request - CreateWorkTimeRequest
     * @returns CreateWorkTimeResponse
     */
    async createWorkTime(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new CreateWorkTimeHeaders({});
        return await this.createWorkTimeWithOptions(userId, request, headers, runtime);
    }
    /**
     * 创建实际工时审批对象。
     *
     * @param request - CreateWorkTimeApproveRequest
     * @param headers - CreateWorkTimeApproveHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns CreateWorkTimeApproveResponse
     */
    async createWorkTimeApproveWithOptions(userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.workTimeIds)) {
            body["workTimeIds"] = request.workTimeIds;
        }
        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: "CreateWorkTimeApprove",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/workTimes/approvals`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new CreateWorkTimeApproveResponse({}));
    }
    /**
     * 创建实际工时审批对象。
     *
     * @param request - CreateWorkTimeApproveRequest
     * @returns CreateWorkTimeApproveResponse
     */
    async createWorkTimeApprove(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new CreateWorkTimeApproveHeaders({});
        return await this.createWorkTimeApproveWithOptions(userId, request, headers, runtime);
    }
    /**
     * 删除项目成员
     *
     * @param request - DeleteProjectMemberRequest
     * @param headers - DeleteProjectMemberHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns DeleteProjectMemberResponse
     */
    async deleteProjectMemberWithOptions(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: "DeleteProjectMember",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/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 DeleteProjectMemberResponse({}));
    }
    /**
     * 删除项目成员
     *
     * @param request - DeleteProjectMemberRequest
     * @returns DeleteProjectMemberResponse
     */
    async deleteProjectMember(userId, projectId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new DeleteProjectMemberHeaders({});
        return await this.deleteProjectMemberWithOptions(userId, projectId, request, headers, runtime);
    }
    /**
     * 删除任务
     *
     * @param headers - DeleteTaskHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns DeleteTaskResponse
     */
    async deleteTaskWithOptions(userId, taskId, 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: "DeleteTask",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/tasks/${taskId}`,
            method: "DELETE",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new DeleteTaskResponse({}));
    }
    /**
     * 删除任务
     * @returns DeleteTaskResponse
     */
    async deleteTask(userId, taskId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new DeleteTaskHeaders({});
        return await this.deleteTaskWithOptions(userId, taskId, headers, runtime);
    }
    /**
     * 根据企业Id获取部门
     *
     * @param request - GetDeptsByOrgIdRequest
     * @param headers - GetDeptsByOrgIdHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetDeptsByOrgIdResponse
     */
    async getDeptsByOrgIdWithOptions(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.dingAccessTokenType)) {
            realHeaders["dingAccessTokenType"] = tea_util_1.default.toJSONString(headers.dingAccessTokenType);
        }
        if (!tea_util_1.default.isUnset(headers.dingOrgId)) {
            realHeaders["dingOrgId"] = tea_util_1.default.toJSONString(headers.dingOrgId);
        }
        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: "GetDeptsByOrgId",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/orgs/depts`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetDeptsByOrgIdResponse({}));
    }
    /**
     * 根据企业Id获取部门
     *
     * @param request - GetDeptsByOrgIdRequest
     * @returns GetDeptsByOrgIdResponse
     */
    async getDeptsByOrgId(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetDeptsByOrgIdHeaders({});
        return await this.getDeptsByOrgIdWithOptions(request, headers, runtime);
    }
    /**
     * 根据企业Id获取企业内的员工信息
     *
     * @param request - GetEmpsByOrgIdRequest
     * @param headers - GetEmpsByOrgIdHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetEmpsByOrgIdResponse
     */
    async getEmpsByOrgIdWithOptions(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.needDept)) {
            query["needDept"] = request.needDept;
        }
        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.dingAccessTokenType)) {
            realHeaders["dingAccessTokenType"] = tea_util_1.default.toJSONString(headers.dingAccessTokenType);
        }
        if (!tea_util_1.default.isUnset(headers.dingIsvOrgId)) {
            realHeaders["dingIsvOrgId"] = tea_util_1.default.toJSONString(headers.dingIsvOrgId);
        }
        if (!tea_util_1.default.isUnset(headers.dingOrgId)) {
            realHeaders["dingOrgId"] = tea_util_1.default.toJSONString(headers.dingOrgId);
        }
        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: "GetEmpsByOrgId",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/orgs/employees`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetEmpsByOrgIdResponse({}));
    }
    /**
     * 根据企业Id获取企业内的员工信息
     *
     * @param request - GetEmpsByOrgIdRequest
     * @returns GetEmpsByOrgIdResponse
     */
    async getEmpsByOrgId(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetEmpsByOrgIdHeaders({});
        return await this.getEmpsByOrgIdWithOptions(request, headers, runtime);
    }
    /**
     * 批量获取任务详情
     *
     * @param request - GetOrganizatioTaskByIdsRequest
     * @param headers - GetOrganizatioTaskByIdsHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetOrganizatioTaskByIdsResponse
     */
    async getOrganizatioTaskByIdsWithOptions(userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.taskIds)) {
            query["taskIds"] = request.taskIds;
        }
        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: "GetOrganizatioTaskByIds",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/organizations/users/${userId}/tasks`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetOrganizatioTaskByIdsResponse({}));
    }
    /**
     * 批量获取任务详情
     *
     * @param request - GetOrganizatioTaskByIdsRequest
     * @returns GetOrganizatioTaskByIdsResponse
     */
    async getOrganizatioTaskByIds(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetOrganizatioTaskByIdsHeaders({});
        return await this.getOrganizatioTaskByIdsWithOptions(userId, request, headers, runtime);
    }
    /**
     * 获取企业优先级列表
     *
     * @param headers - GetOrganizationPriorityListHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetOrganizationPriorityListResponse
     */
    async getOrganizationPriorityListWithOptions(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: "GetOrganizationPriorityList",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/organizations/users/${userId}/priorities`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetOrganizationPriorityListResponse({}));
    }
    /**
     * 获取企业优先级列表
     * @returns GetOrganizationPriorityListResponse
     */
    async getOrganizationPriorityList(userId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetOrganizationPriorityListHeaders({});
        return await this.getOrganizationPriorityListWithOptions(userId, headers, runtime);
    }
    /**
     * 获取自由任务详情
     *
     * @param headers - GetOrganizationTaskHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetOrganizationTaskResponse
     */
    async getOrganizationTaskWithOptions(taskId, 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: "GetOrganizationTask",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/organizations/users/${userId}/tasks/${taskId}`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetOrganizationTaskResponse({}));
    }
    /**
     * 获取自由任务详情
     * @returns GetOrganizationTaskResponse
     */
    async getOrganizationTask(taskId, userId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetOrganizationTaskHeaders({});
        return await this.getOrganizationTaskWithOptions(taskId, userId, headers, runtime);
    }
    /**
     * 查询可见的项目分组
     *
     * @param request - GetProjectGroupRequest
     * @param headers - GetProjectGroupHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetProjectGroupResponse
     */
    async getProjectGroupWithOptions(userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.pageSize)) {
            query["pageSize"] = request.pageSize;
        }
        if (!tea_util_1.default.isUnset(request.viewerId)) {
            query["viewerId"] = request.viewerId;
        }
        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: "GetProjectGroup",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/organizations/users/${userId}/groups`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetProjectGroupResponse({}));
    }
    /**
     * 查询可见的项目分组
     *
     * @param request - GetProjectGroupRequest
     * @returns GetProjectGroupResponse
     */
    async getProjectGroup(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetProjectGroupHeaders({});
        return await this.getProjectGroupWithOptions(userId, request, headers, runtime);
    }
    /**
     * 获取项目成员
     *
     * @param request - GetProjectMemebersRequest
     * @param headers - GetProjectMemebersHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetProjectMemebersResponse
     */
    async getProjectMemebersWithOptions(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.projectRoleId)) {
            query["projectRoleId"] = request.projectRoleId;
        }
        if (!tea_util_1.default.isUnset(request.skip)) {
            query["skip"] = request.skip;
        }
        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: "GetProjectMemebers",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/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 GetProjectMemebersResponse({}));
    }
    /**
     * 获取项目成员
     *
     * @param request - GetProjectMemebersRequest
     * @returns GetProjectMemebersResponse
     */
    async getProjectMemebers(userId, projectId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetProjectMemebersHeaders({});
        return await this.getProjectMemebersWithOptions(userId, projectId, request, headers, runtime);
    }
    /**
     * 查询项目状态
     *
     * @param headers - GetProjectStatusListHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetProjectStatusListResponse
     */
    async getProjectStatusListWithOptions(userId, projectId, 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: "GetProjectStatusList",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/projects/${projectId}/statuses`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetProjectStatusListResponse({}));
    }
    /**
     * 查询项目状态
     * @returns GetProjectStatusListResponse
     */
    async getProjectStatusList(userId, projectId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetProjectStatusListHeaders({});
        return await this.getProjectStatusListWithOptions(userId, projectId, headers, runtime);
    }
    /**
     * 获取任务详情
     *
     * @param request - GetTaskByIdsRequest
     * @param headers - GetTaskByIdsHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetTaskByIdsResponse
     */
    async getTaskByIdsWithOptions(userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.parentTaskId)) {
            query["parentTaskId"] = request.parentTaskId;
        }
        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: "GetTaskByIds",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/tasks`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetTaskByIdsResponse({}));
    }
    /**
     * 获取任务详情
     *
     * @param request - GetTaskByIdsRequest
     * @returns GetTaskByIdsResponse
     */
    async getTaskByIds(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetTaskByIdsHeaders({});
        return await this.getTaskByIdsWithOptions(userId, request, headers, runtime);
    }
    /**
     * 获取Teambition企业Id
     *
     * @param request - GetTbOrgIdByDingOrgIdRequest
     * @param headers - GetTbOrgIdByDingOrgIdHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetTbOrgIdByDingOrgIdResponse
     */
    async getTbOrgIdByDingOrgIdWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.optUserId)) {
            query["optUserId"] = request.optUserId;
        }
        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: "GetTbOrgIdByDingOrgId",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/teambition/organizations`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetTbOrgIdByDingOrgIdResponse({}));
    }
    /**
     * 获取Teambition企业Id
     *
     * @param request - GetTbOrgIdByDingOrgIdRequest
     * @returns GetTbOrgIdByDingOrgIdResponse
     */
    async getTbOrgIdByDingOrgId(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetTbOrgIdByDingOrgIdHeaders({});
        return await this.getTbOrgIdByDingOrgIdWithOptions(request, headers, runtime);
    }
    /**
     * 获取项目灰度标
     *
     * @param request - GetTbProjectGrayRequest
     * @param headers - GetTbProjectGrayHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetTbProjectGrayResponse
     */
    async getTbProjectGrayWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.label)) {
            body["label"] = request.label;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.dingAccessTokenType)) {
            realHeaders["dingAccessTokenType"] = tea_util_1.default.toJSONString(headers.dingAccessTokenType);
        }
        if (!tea_util_1.default.isUnset(headers.dingCorpId)) {
            realHeaders["dingCorpId"] = tea_util_1.default.toJSONString(headers.dingCorpId);
        }
        if (!tea_util_1.default.isUnset(headers.dingIsvOrgId)) {
            realHeaders["dingIsvOrgId"] = tea_util_1.default.toJSONString(headers.dingIsvOrgId);
        }
        if (!tea_util_1.default.isUnset(headers.dingOrgId)) {
            realHeaders["dingOrgId"] = tea_util_1.default.toJSONString(headers.dingOrgId);
        }
        if (!tea_util_1.default.isUnset(headers.dingSuiteKey)) {
            realHeaders["dingSuiteKey"] = tea_util_1.default.toJSONString(headers.dingSuiteKey);
        }
        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: "GetTbProjectGray",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/projects/gray`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "json",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetTbProjectGrayResponse({}));
    }
    /**
     * 获取项目灰度标
     *
     * @param request - GetTbProjectGrayRequest
     * @returns GetTbProjectGrayResponse
     */
    async getTbProjectGray(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetTbProjectGrayHeaders({});
        return await this.getTbProjectGrayWithOptions(request, headers, runtime);
    }
    /**
     * 获取项目来源
     *
     * @param headers - GetTbProjectSourceHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetTbProjectSourceResponse
     */
    async getTbProjectSourceWithOptions(headers, runtime) {
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.dingAccessTokenType)) {
            realHeaders["dingAccessTokenType"] = tea_util_1.default.toJSONString(headers.dingAccessTokenType);
        }
        if (!tea_util_1.default.isUnset(headers.dingCorpId)) {
            realHeaders["dingCorpId"] = tea_util_1.default.toJSONString(headers.dingCorpId);
        }
        if (!tea_util_1.default.isUnset(headers.dingIsvOrgId)) {
            realHeaders["dingIsvOrgId"] = tea_util_1.default.toJSONString(headers.dingIsvOrgId);
        }
        if (!tea_util_1.default.isUnset(headers.dingOrgId)) {
            realHeaders["dingOrgId"] = tea_util_1.default.toJSONString(headers.dingOrgId);
        }
        if (!tea_util_1.default.isUnset(headers.dingSuiteKey)) {
            realHeaders["dingSuiteKey"] = tea_util_1.default.toJSONString(headers.dingSuiteKey);
        }
        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: "GetTbProjectSource",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/projects/source`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetTbProjectSourceResponse({}));
    }
    /**
     * 获取项目来源
     * @returns GetTbProjectSourceResponse
     */
    async getTbProjectSource() {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetTbProjectSourceHeaders({});
        return await this.getTbProjectSourceWithOptions(headers, runtime);
    }
    /**
     * 根据钉钉UserId获取Teambition用户Id
     *
     * @param request - GetTbUserIdByStaffIdRequest
     * @param headers - GetTbUserIdByStaffIdHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetTbUserIdByStaffIdResponse
     */
    async getTbUserIdByStaffIdWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.optUserId)) {
            query["optUserId"] = request.optUserId;
        }
        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: "GetTbUserIdByStaffId",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/teambition/users`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetTbUserIdByStaffIdResponse({}));
    }
    /**
     * 根据钉钉UserId获取Teambition用户Id
     *
     * @param request - GetTbUserIdByStaffIdRequest
     * @returns GetTbUserIdByStaffIdResponse
     */
    async getTbUserIdByStaffId(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetTbUserIdByStaffIdHeaders({});
        return await this.getTbUserIdByStaffIdWithOptions(request, headers, runtime);
    }
    /**
     * 获取用户加入的项目
     *
     * @param request - GetUserJoinedProjectRequest
     * @param headers - GetUserJoinedProjectHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetUserJoinedProjectResponse
     */
    async getUserJoinedProjectWithOptions(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: "GetUserJoinedProject",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/joinProjects`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetUserJoinedProjectResponse({}));
    }
    /**
     * 获取用户加入的项目
     *
     * @param request - GetUserJoinedProjectRequest
     * @returns GetUserJoinedProjectResponse
     */
    async getUserJoinedProject(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetUserJoinedProjectHeaders({});
        return await this.getUserJoinedProjectWithOptions(userId, request, headers, runtime);
    }
    /**
     * 查询项目
     *
     * @param request - QueryProjectRequest
     * @param headers - QueryProjectHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns QueryProjectResponse
     */
    async queryProjectWithOptions(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.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;
        }
        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: "QueryProject",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/projects/query`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new QueryProjectResponse({}));
    }
    /**
     * 查询项目
     *
     * @param request - QueryProjectRequest
     * @returns QueryProjectResponse
     */
    async queryProject(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new QueryProjectHeaders({});
        return await this.queryProjectWithOptions(userId, request, headers, runtime);
    }
    /**
     * 查询项目中的任务
     *
     * @param request - QueryTaskOfProjectRequest
     * @param headers - QueryTaskOfProjectHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns QueryTaskOfProjectResponse
     */
    async queryTaskOfProjectWithOptions(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.query)) {
            query["query"] = request.query;
        }
        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: "QueryTaskOfProject",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/projectIds/${projectId}/tasks`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new QueryTaskOfProjectResponse({}));
    }
    /**
     * 查询项目中的任务
     *
     * @param request - QueryTaskOfProjectRequest
     * @returns QueryTaskOfProjectResponse
     */
    async queryTaskOfProject(userId, projectId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new QueryTaskOfProjectHeaders({});
        return await this.queryTaskOfProjectWithOptions(userId, projectId, request, headers, runtime);
    }
    /**
     * 获取任务列表
     *
     * @param request - SeachTaskStageRequest
     * @param headers - SeachTaskStageHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns SeachTaskStageResponse
     */
    async seachTaskStageWithOptions(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.query)) {
            query["query"] = request.query;
        }
        if (!tea_util_1.default.isUnset(request.taskListId)) {
            query["taskListId"] = request.taskListId;
        }
        if (!tea_util_1.default.isUnset(request.taskStageIds)) {
            query["taskStageIds"] = request.taskStageIds;
        }
        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: "SeachTaskStage",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/projects/${projectId}/taskStages/search`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new SeachTaskStageResponse({}));
    }
    /**
     * 获取任务列表
     *
     * @param request - SeachTaskStageRequest
     * @returns SeachTaskStageResponse
     */
    async seachTaskStage(userId, projectId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new SeachTaskStageHeaders({});
        return await this.seachTaskStageWithOptions(userId, projectId, request, headers, runtime);
    }
    /**
     * 通过TQL搜索自由任务和项目任务ID。
     *
     * @param request - SearchAllTasksByTqlRequest
     * @param headers - SearchAllTasksByTqlHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns SearchAllTasksByTqlResponse
     */
    async searchAllTasksByTqlWithOptions(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.tql)) {
            query["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,
            query: openapi_util_1.default.query(query),
        });
        let params = new $OpenApi.Params({
            action: "SearchAllTasksByTql",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/tql/tasks/search`,
            method: "POST",
            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(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new SearchAllTasksByTqlHeaders({});
        return await this.searchAllTasksByTqlWithOptions(userId, request, headers, runtime);
    }
    /**
     * 查询企业自定义字段
     *
     * @param request - SearchOranizationCustomfieldRequest
     * @param headers - SearchOranizationCustomfieldHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns SearchOranizationCustomfieldResponse
     */
    async searchOranizationCustomfieldWithOptions(userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.customFieldIds)) {
            query["customFieldIds"] = request.customFieldIds;
        }
        if (!tea_util_1.default.isUnset(request.instanceIds)) {
            query["instanceIds"] = request.instanceIds;
        }
        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.query)) {
            query["query"] = request.query;
        }
        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: "SearchOranizationCustomfield",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/organizations/users/${userId}/customfields/search`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new SearchOranizationCustomfieldResponse({}));
    }
    /**
     * 查询企业自定义字段
     *
     * @param request - SearchOranizationCustomfieldRequest
     * @returns SearchOranizationCustomfieldResponse
     */
    async searchOranizationCustomfield(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new SearchOranizationCustomfieldHeaders({});
        return await this.searchOranizationCustomfieldWithOptions(userId, request, headers, runtime);
    }
    /**
     * 查询项目自定义字段
     *
     * @param request - SearchProjectCustomfieldRequest
     * @param headers - SearchProjectCustomfieldHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns SearchProjectCustomfieldResponse
     */
    async searchProjectCustomfieldWithOptions(userId, projectId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.customFieldIds)) {
            query["customFieldIds"] = request.customFieldIds;
        }
        if (!tea_util_1.default.isUnset(request.instanceIds)) {
            query["instanceIds"] = request.instanceIds;
        }
        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.query)) {
            query["query"] = request.query;
        }
        if (!tea_util_1.default.isUnset(request.scenarioFieldConfigId)) {
            query["scenarioFieldConfigId"] = request.scenarioFieldConfigId;
        }
        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: "SearchProjectCustomfield",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/projects/${projectId}/customfields/search`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new SearchProjectCustomfieldResponse({}));
    }
    /**
     * 查询项目自定义字段
     *
     * @param request - SearchProjectCustomfieldRequest
     * @returns SearchProjectCustomfieldResponse
     */
    async searchProjectCustomfield(userId, projectId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new SearchProjectCustomfieldHeaders({});
        return await this.searchProjectCustomfieldWithOptions(userId, projectId, request, headers, runtime);
    }
    /**
     * 按项目模板名字搜索企业自定义模板
     *
     * @param request - SearchProjectTemplateRequest
     * @param headers - SearchProjectTemplateHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns SearchProjectTemplateResponse
     */
    async searchProjectTemplateWithOptions(userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.keyword)) {
            query["keyword"] = request.keyword;
        }
        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: "SearchProjectTemplate",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/organizations/users/${userId}/templates`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new SearchProjectTemplateResponse({}));
    }
    /**
     * 按项目模板名字搜索企业自定义模板
     *
     * @param request - SearchProjectTemplateRequest
     * @returns SearchProjectTemplateResponse
     */
    async searchProjectTemplate(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new SearchProjectTemplateHeaders({});
        return await this.searchProjectTemplateWithOptions(userId, request, headers, runtime);
    }
    /**
     * 查询任务工作流
     *
     * @param request - SearchTaskFlowRequest
     * @param headers - SearchTaskFlowHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns SearchTaskFlowResponse
     */
    async searchTaskFlowWithOptions(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.query)) {
            query["query"] = request.query;
        }
        if (!tea_util_1.default.isUnset(request.taskflowIds)) {
            query["taskflowIds"] = request.taskflowIds;
        }
        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: "SearchTaskFlow",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/projects/${projectId}/taskflows/search`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new SearchTaskFlowResponse({}));
    }
    /**
     * 查询任务工作流
     *
     * @param request - SearchTaskFlowRequest
     * @returns SearchTaskFlowResponse
     */
    async searchTaskFlow(userId, projectId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new SearchTaskFlowHeaders({});
        return await this.searchTaskFlowWithOptions(userId, projectId, request, headers, runtime);
    }
    /**
     * 查询任务分组
     *
     * @param request - SearchTaskListRequest
     * @param headers - SearchTaskListHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns SearchTaskListResponse
     */
    async searchTaskListWithOptions(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.query)) {
            query["query"] = request.query;
        }
        if (!tea_util_1.default.isUnset(request.taskListIds)) {
            query["taskListIds"] = request.taskListIds;
        }
        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: "SearchTaskList",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/projects/${projectId}/taskLists/search`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new SearchTaskListResponse({}));
    }
    /**
     * 查询任务分组
     *
     * @param request - SearchTaskListRequest
     * @returns SearchTaskListResponse
     */
    async searchTaskList(userId, projectId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new SearchTaskListHeaders({});
        return await this.searchTaskListWithOptions(userId, projectId, request, headers, runtime);
    }
    /**
     * 搜索任务工作流状态
     *
     * @param request - SearchTaskflowStatusRequest
     * @param headers - SearchTaskflowStatusHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns SearchTaskflowStatusResponse
     */
    async searchTaskflowStatusWithOptions(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.query)) {
            query["query"] = request.query;
        }
        if (!tea_util_1.default.isUnset(request.tfIds)) {
            query["tfIds"] = request.tfIds;
        }
        if (!tea_util_1.default.isUnset(request.tfsIds)) {
            query["tfsIds"] = request.tfsIds;
        }
        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: "SearchTaskflowStatus",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/projects/${projectId}/taskflowStatuses/search`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new SearchTaskflowStatusResponse({}));
    }
    /**
     * 搜索任务工作流状态
     *
     * @param request - SearchTaskflowStatusRequest
     * @returns SearchTaskflowStatusResponse
     */
    async searchTaskflowStatus(userId, projectId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new SearchTaskflowStatusHeaders({});
        return await this.searchTaskflowStatusWithOptions(userId, projectId, request, headers, runtime);
    }
    /**
     * 查询用户任务列表
     *
     * @param request - SearchUserTaskRequest
     * @param headers - SearchUserTaskHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns SearchUserTaskResponse
     */
    async searchUserTaskWithOptions(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.roleTypes)) {
            query["roleTypes"] = request.roleTypes;
        }
        if (!tea_util_1.default.isUnset(request.tql)) {
            query["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,
            query: openapi_util_1.default.query(query),
        });
        let params = new $OpenApi.Params({
            action: "SearchUserTask",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/tasks/search`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new SearchUserTaskResponse({}));
    }
    /**
     * 查询用户任务列表
     *
     * @param request - SearchUserTaskRequest
     * @returns SearchUserTaskResponse
     */
    async searchUserTask(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new SearchUserTaskHeaders({});
        return await this.searchUserTaskWithOptions(userId, request, headers, runtime);
    }
    /**
     * 归档项目
     *
     * @param headers - SuspendProjectHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns SuspendProjectResponse
     */
    async suspendProjectWithOptions(projectId, 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: "SuspendProject",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/projects/${projectId}/suspend`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new SuspendProjectResponse({}));
    }
    /**
     * 归档项目
     * @returns SuspendProjectResponse
     */
    async suspendProject(projectId, userId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new SuspendProjectHeaders({});
        return await this.suspendProjectWithOptions(projectId, userId, headers, runtime);
    }
    /**
     * 恢复项目归档
     *
     * @param headers - UnSuspendProjectHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UnSuspendProjectResponse
     */
    async unSuspendProjectWithOptions(projectId, 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: "UnSuspendProject",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/projects/${projectId}/unsuspend`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UnSuspendProjectResponse({}));
    }
    /**
     * 恢复项目归档
     * @returns UnSuspendProjectResponse
     */
    async unSuspendProject(projectId, userId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UnSuspendProjectHeaders({});
        return await this.unSuspendProjectWithOptions(projectId, userId, headers, runtime);
    }
    /**
     * 更新任务自定义字段的值
     *
     * @param request - UpdateCustomfieldValueRequest
     * @param headers - UpdateCustomfieldValueHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateCustomfieldValueResponse
     */
    async updateCustomfieldValueWithOptions(userId, taskId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.customFieldId)) {
            body["customFieldId"] = request.customFieldId;
        }
        if (!tea_util_1.default.isUnset(request.customFieldName)) {
            body["customFieldName"] = request.customFieldName;
        }
        if (!tea_util_1.default.isUnset(request.value)) {
            body["value"] = request.value;
        }
        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: "UpdateCustomfieldValue",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/tasks/${taskId}/customFields`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateCustomfieldValueResponse({}));
    }
    /**
     * 更新任务自定义字段的值
     *
     * @param request - UpdateCustomfieldValueRequest
     * @returns UpdateCustomfieldValueResponse
     */
    async updateCustomfieldValue(userId, taskId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateCustomfieldValueHeaders({});
        return await this.updateCustomfieldValueWithOptions(userId, taskId, request, headers, runtime);
    }
    /**
     * 更改自由任务标题
     *
     * @param request - UpdateOrganizationTaskContentRequest
     * @param headers - UpdateOrganizationTaskContentHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateOrganizationTaskContentResponse
     */
    async updateOrganizationTaskContentWithOptions(taskId, 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;
        }
        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: "UpdateOrganizationTaskContent",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/organizations/users/${userId}/tasks/${taskId}/contents`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateOrganizationTaskContentResponse({}));
    }
    /**
     * 更改自由任务标题
     *
     * @param request - UpdateOrganizationTaskContentRequest
     * @returns UpdateOrganizationTaskContentResponse
     */
    async updateOrganizationTaskContent(taskId, userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateOrganizationTaskContentHeaders({});
        return await this.updateOrganizationTaskContentWithOptions(taskId, userId, request, headers, runtime);
    }
    /**
     * 更新自由任务截止时间
     *
     * @param request - UpdateOrganizationTaskDueDateRequest
     * @param headers - UpdateOrganizationTaskDueDateHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateOrganizationTaskDueDateResponse
     */
    async updateOrganizationTaskDueDateWithOptions(taskId, userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        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;
        }
        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: "UpdateOrganizationTaskDueDate",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/organizations/users/${userId}/tasks/${taskId}/dueDates`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateOrganizationTaskDueDateResponse({}));
    }
    /**
     * 更新自由任务截止时间
     *
     * @param request - UpdateOrganizationTaskDueDateRequest
     * @returns UpdateOrganizationTaskDueDateResponse
     */
    async updateOrganizationTaskDueDate(taskId, userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateOrganizationTaskDueDateHeaders({});
        return await this.updateOrganizationTaskDueDateWithOptions(taskId, userId, request, headers, runtime);
    }
    /**
     * 更改自由任务执行者
     *
     * @param request - UpdateOrganizationTaskExecutorRequest
     * @param headers - UpdateOrganizationTaskExecutorHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateOrganizationTaskExecutorResponse
     */
    async updateOrganizationTaskExecutorWithOptions(taskId, userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        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.executorId)) {
            body["executorId"] = request.executorId;
        }
        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: "UpdateOrganizationTaskExecutor",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/organizations/users/${userId}/tasks/${taskId}/executors`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateOrganizationTaskExecutorResponse({}));
    }
    /**
     * 更改自由任务执行者
     *
     * @param request - UpdateOrganizationTaskExecutorRequest
     * @returns UpdateOrganizationTaskExecutorResponse
     */
    async updateOrganizationTaskExecutor(taskId, userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateOrganizationTaskExecutorHeaders({});
        return await this.updateOrganizationTaskExecutorWithOptions(taskId, userId, request, headers, runtime);
    }
    /**
     * 更新自由任务参与者
     *
     * @param request - UpdateOrganizationTaskInvolveMembersRequest
     * @param headers - UpdateOrganizationTaskInvolveMembersHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateOrganizationTaskInvolveMembersResponse
     */
    async updateOrganizationTaskInvolveMembersWithOptions(taskId, userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.addInvolvers)) {
            body["addInvolvers"] = request.addInvolvers;
        }
        if (!tea_util_1.default.isUnset(request.delInvolvers)) {
            body["delInvolvers"] = request.delInvolvers;
        }
        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.involveMembers)) {
            body["involveMembers"] = request.involveMembers;
        }
        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: "UpdateOrganizationTaskInvolveMembers",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/organizations/users/${userId}/tasks/${taskId}/involveMembers`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateOrganizationTaskInvolveMembersResponse({}));
    }
    /**
     * 更新自由任务参与者
     *
     * @param request - UpdateOrganizationTaskInvolveMembersRequest
     * @returns UpdateOrganizationTaskInvolveMembersResponse
     */
    async updateOrganizationTaskInvolveMembers(taskId, userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateOrganizationTaskInvolveMembersHeaders({});
        return await this.updateOrganizationTaskInvolveMembersWithOptions(taskId, userId, request, headers, runtime);
    }
    /**
     * 更改自由任务备注
     *
     * @param request - UpdateOrganizationTaskNoteRequest
     * @param headers - UpdateOrganizationTaskNoteHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateOrganizationTaskNoteResponse
     */
    async updateOrganizationTaskNoteWithOptions(taskId, userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        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.note)) {
            body["note"] = request.note;
        }
        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: "UpdateOrganizationTaskNote",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/organizations/users/${userId}/tasks/${taskId}/notes`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateOrganizationTaskNoteResponse({}));
    }
    /**
     * 更改自由任务备注
     *
     * @param request - UpdateOrganizationTaskNoteRequest
     * @returns UpdateOrganizationTaskNoteResponse
     */
    async updateOrganizationTaskNote(taskId, userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateOrganizationTaskNoteHeaders({});
        return await this.updateOrganizationTaskNoteWithOptions(taskId, userId, request, headers, runtime);
    }
    /**
     * 更新自由任务优先级
     *
     * @param request - UpdateOrganizationTaskPriorityRequest
     * @param headers - UpdateOrganizationTaskPriorityHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateOrganizationTaskPriorityResponse
     */
    async updateOrganizationTaskPriorityWithOptions(taskId, userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        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.priority)) {
            body["priority"] = request.priority;
        }
        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: "UpdateOrganizationTaskPriority",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/organizations/users/${userId}/tasks/${taskId}/priorities`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateOrganizationTaskPriorityResponse({}));
    }
    /**
     * 更新自由任务优先级
     *
     * @param request - UpdateOrganizationTaskPriorityRequest
     * @returns UpdateOrganizationTaskPriorityResponse
     */
    async updateOrganizationTaskPriority(taskId, userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateOrganizationTaskPriorityHeaders({});
        return await this.updateOrganizationTaskPriorityWithOptions(taskId, userId, request, headers, runtime);
    }
    /**
     * 更改自由任务状态
     *
     * @param request - UpdateOrganizationTaskStatusRequest
     * @param headers - UpdateOrganizationTaskStatusHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateOrganizationTaskStatusResponse
     */
    async updateOrganizationTaskStatusWithOptions(taskId, userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        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.isDone)) {
            body["isDone"] = request.isDone;
        }
        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: "UpdateOrganizationTaskStatus",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/organizations/users/${userId}/tasks/${taskId}/states`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateOrganizationTaskStatusResponse({}));
    }
    /**
     * 更改自由任务状态
     *
     * @param request - UpdateOrganizationTaskStatusRequest
     * @returns UpdateOrganizationTaskStatusResponse
     */
    async updateOrganizationTaskStatus(taskId, userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateOrganizationTaskStatusHeaders({});
        return await this.updateOrganizationTaskStatusWithOptions(taskId, userId, request, headers, runtime);
    }
    /**
     * 更新项目的分组
     *
     * @param request - UpdateProjectGroupRequest
     * @param headers - UpdateProjectGroupHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateProjectGroupResponse
     */
    async updateProjectGroupWithOptions(userId, projectId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.addProjectGroupIds)) {
            body["addProjectGroupIds"] = request.addProjectGroupIds;
        }
        if (!tea_util_1.default.isUnset(request.delProjectGroupIds)) {
            body["delProjectGroupIds"] = request.delProjectGroupIds;
        }
        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: "UpdateProjectGroup",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/projects/${projectId}/groups`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateProjectGroupResponse({}));
    }
    /**
     * 更新项目的分组
     *
     * @param request - UpdateProjectGroupRequest
     * @returns UpdateProjectGroupResponse
     */
    async updateProjectGroup(userId, projectId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateProjectGroupHeaders({});
        return await this.updateProjectGroupWithOptions(userId, projectId, request, headers, runtime);
    }
    /**
     * 更新任务标题
     *
     * @param request - UpdateTaskContentRequest
     * @param headers - UpdateTaskContentHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateTaskContentResponse
     */
    async updateTaskContentWithOptions(userId, taskId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.content)) {
            body["content"] = request.content;
        }
        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: "UpdateTaskContent",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/tasks/${taskId}/contents`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateTaskContentResponse({}));
    }
    /**
     * 更新任务标题
     *
     * @param request - UpdateTaskContentRequest
     * @returns UpdateTaskContentResponse
     */
    async updateTaskContent(userId, taskId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateTaskContentHeaders({});
        return await this.updateTaskContentWithOptions(userId, taskId, request, headers, runtime);
    }
    /**
     * 更新任务截止时间
     *
     * @param request - UpdateTaskDueDateRequest
     * @param headers - UpdateTaskDueDateHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateTaskDueDateResponse
     */
    async updateTaskDueDateWithOptions(userId, taskId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.dueDate)) {
            body["dueDate"] = request.dueDate;
        }
        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: "UpdateTaskDueDate",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/tasks/${taskId}/dueDates`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateTaskDueDateResponse({}));
    }
    /**
     * 更新任务截止时间
     *
     * @param request - UpdateTaskDueDateRequest
     * @returns UpdateTaskDueDateResponse
     */
    async updateTaskDueDate(userId, taskId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateTaskDueDateHeaders({});
        return await this.updateTaskDueDateWithOptions(userId, taskId, request, headers, runtime);
    }
    /**
     * 更新任务执行者
     *
     * @param request - UpdateTaskExecutorRequest
     * @param headers - UpdateTaskExecutorHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateTaskExecutorResponse
     */
    async updateTaskExecutorWithOptions(userId, taskId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.executorId)) {
            body["executorId"] = request.executorId;
        }
        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: "UpdateTaskExecutor",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/tasks/${taskId}/executors`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateTaskExecutorResponse({}));
    }
    /**
     * 更新任务执行者
     *
     * @param request - UpdateTaskExecutorRequest
     * @returns UpdateTaskExecutorResponse
     */
    async updateTaskExecutor(userId, taskId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateTaskExecutorHeaders({});
        return await this.updateTaskExecutorWithOptions(userId, taskId, request, headers, runtime);
    }
    /**
     * 更新任务参与者
     *
     * @param request - UpdateTaskInvolvemembersRequest
     * @param headers - UpdateTaskInvolvemembersHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateTaskInvolvemembersResponse
     */
    async updateTaskInvolvemembersWithOptions(userId, taskId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.addInvolvers)) {
            body["addInvolvers"] = request.addInvolvers;
        }
        if (!tea_util_1.default.isUnset(request.delInvolvers)) {
            body["delInvolvers"] = request.delInvolvers;
        }
        if (!tea_util_1.default.isUnset(request.involveMembers)) {
            body["involveMembers"] = request.involveMembers;
        }
        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: "UpdateTaskInvolvemembers",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/tasks/${taskId}/involveMembers`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateTaskInvolvemembersResponse({}));
    }
    /**
     * 更新任务参与者
     *
     * @param request - UpdateTaskInvolvemembersRequest
     * @returns UpdateTaskInvolvemembersResponse
     */
    async updateTaskInvolvemembers(userId, taskId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateTaskInvolvemembersHeaders({});
        return await this.updateTaskInvolvemembersWithOptions(userId, taskId, request, headers, runtime);
    }
    /**
     * 更新任务备注
     *
     * @param request - UpdateTaskNoteRequest
     * @param headers - UpdateTaskNoteHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateTaskNoteResponse
     */
    async updateTaskNoteWithOptions(userId, taskId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.note)) {
            body["note"] = request.note;
        }
        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: "UpdateTaskNote",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/tasks/${taskId}/notes`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateTaskNoteResponse({}));
    }
    /**
     * 更新任务备注
     *
     * @param request - UpdateTaskNoteRequest
     * @returns UpdateTaskNoteResponse
     */
    async updateTaskNote(userId, taskId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateTaskNoteHeaders({});
        return await this.updateTaskNoteWithOptions(userId, taskId, request, headers, runtime);
    }
    /**
     * 更新任务优先级
     *
     * @param request - UpdateTaskPriorityRequest
     * @param headers - UpdateTaskPriorityHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateTaskPriorityResponse
     */
    async updateTaskPriorityWithOptions(userId, taskId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.priority)) {
            body["priority"] = request.priority;
        }
        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: "UpdateTaskPriority",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/tasks/${taskId}/priorities`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateTaskPriorityResponse({}));
    }
    /**
     * 更新任务优先级
     *
     * @param request - UpdateTaskPriorityRequest
     * @returns UpdateTaskPriorityResponse
     */
    async updateTaskPriority(userId, taskId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateTaskPriorityHeaders({});
        return await this.updateTaskPriorityWithOptions(userId, taskId, request, headers, runtime);
    }
    /**
     * 更新任务列表
     *
     * @param request - UpdateTaskStageRequest
     * @param headers - UpdateTaskStageHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateTaskStageResponse
     */
    async updateTaskStageWithOptions(userId, taskId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.taskStageId)) {
            body["taskStageId"] = request.taskStageId;
        }
        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: "UpdateTaskStage",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/tasks/${taskId}/stages`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateTaskStageResponse({}));
    }
    /**
     * 更新任务列表
     *
     * @param request - UpdateTaskStageRequest
     * @returns UpdateTaskStageResponse
     */
    async updateTaskStage(userId, taskId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateTaskStageHeaders({});
        return await this.updateTaskStageWithOptions(userId, taskId, request, headers, runtime);
    }
    /**
     * 更新任务开始时间
     *
     * @param request - UpdateTaskStartdateRequest
     * @param headers - UpdateTaskStartdateHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateTaskStartdateResponse
     */
    async updateTaskStartdateWithOptions(userId, taskId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.startDate)) {
            body["startDate"] = request.startDate;
        }
        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: "UpdateTaskStartdate",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/tasks/${taskId}/startDates`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateTaskStartdateResponse({}));
    }
    /**
     * 更新任务开始时间
     *
     * @param request - UpdateTaskStartdateRequest
     * @returns UpdateTaskStartdateResponse
     */
    async updateTaskStartdate(userId, taskId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateTaskStartdateHeaders({});
        return await this.updateTaskStartdateWithOptions(userId, taskId, request, headers, runtime);
    }
    /**
     * 更新任务工作流状态
     *
     * @param request - UpdateTaskTaskflowstatusRequest
     * @param headers - UpdateTaskTaskflowstatusHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateTaskTaskflowstatusResponse
     */
    async updateTaskTaskflowstatusWithOptions(userId, taskId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.taskflowStatusId)) {
            body["taskflowStatusId"] = request.taskflowStatusId;
        }
        if (!tea_util_1.default.isUnset(request.taskflowStatusUpdateNote)) {
            body["taskflowStatusUpdateNote"] = request.taskflowStatusUpdateNote;
        }
        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: "UpdateTaskTaskflowstatus",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/tasks/${taskId}/taskflowStatuses`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateTaskTaskflowstatusResponse({}));
    }
    /**
     * 更新任务工作流状态
     *
     * @param request - UpdateTaskTaskflowstatusRequest
     * @returns UpdateTaskTaskflowstatusResponse
     */
    async updateTaskTaskflowstatus(userId, taskId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateTaskTaskflowstatusHeaders({});
        return await this.updateTaskTaskflowstatusWithOptions(userId, taskId, request, headers, runtime);
    }
    /**
     * 更新工时审批对象
     *
     * @param request - UpdateWorkTimeApproveRequest
     * @param headers - UpdateWorkTimeApproveHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateWorkTimeApproveResponse
     */
    async updateWorkTimeApproveWithOptions(userId, approveOpenId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.finishTime)) {
            body["finishTime"] = request.finishTime;
        }
        if (!tea_util_1.default.isUnset(request.instanceId)) {
            body["instanceId"] = request.instanceId;
        }
        if (!tea_util_1.default.isUnset(request.status)) {
            body["status"] = request.status;
        }
        if (!tea_util_1.default.isUnset(request.submitTime)) {
            body["submitTime"] = request.submitTime;
        }
        if (!tea_util_1.default.isUnset(request.title)) {
            body["title"] = request.title;
        }
        if (!tea_util_1.default.isUnset(request.url)) {
            body["url"] = request.url;
        }
        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: "UpdateWorkTimeApprove",
            version: "project_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/project/users/${userId}/workTimes/approvals/${approveOpenId}`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateWorkTimeApproveResponse({}));
    }
    /**
     * 更新工时审批对象
     *
     * @param request - UpdateWorkTimeApproveRequest
     * @returns UpdateWorkTimeApproveResponse
     */
    async updateWorkTimeApprove(userId, approveOpenId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateWorkTimeApproveHeaders({});
        return await this.updateWorkTimeApproveWithOptions(userId, approveOpenId, request, headers, runtime);
    }
}
exports.default = Client;
//# sourceMappingURL=client.js.map