"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.QueryTodoTasksResponse = exports.QueryTodoTasksResponseBody = exports.QueryTodoTasksRequest = exports.QueryTodoTasksHeaders = exports.QueryOrgTodoTasksResponse = exports.QueryOrgTodoTasksResponseBody = exports.QueryOrgTodoTasksRequest = exports.QueryOrgTodoTasksHeaders = exports.QueryOrgTodoByUserResponse = exports.QueryOrgTodoByUserResponseBody = exports.QueryOrgTodoByUserRequest = exports.QueryOrgTodoByUserHeaders = exports.QueryOrgConfigResponse = exports.QueryOrgConfigResponseBody = exports.QueryOrgConfigHeaders = exports.ListAllBizCategoryResponse = exports.ListAllBizCategoryResponseBody = exports.ListAllBizCategoryHeaders = exports.GetTodoTypeConfigResponse = exports.GetTodoTypeConfigResponseBody = exports.GetTodoTypeConfigHeaders = exports.GetTodoTaskDetailResponse = exports.GetTodoTaskDetailResponseBody = exports.GetTodoTaskDetailHeaders = exports.GetTodoTaskBySourceIdResponse = exports.GetTodoTaskBySourceIdResponseBody = exports.GetTodoTaskBySourceIdHeaders = exports.GetTodoTaskResponse = exports.GetTodoTaskResponseBody = exports.GetTodoTaskHeaders = exports.DeleteTodoTaskResponse = exports.DeleteTodoTaskResponseBody = exports.DeleteTodoTaskRequest = exports.DeleteTodoTaskHeaders = exports.CreateTodoTypeConfigResponse = exports.CreateTodoTypeConfigResponseBody = exports.CreateTodoTypeConfigRequest = exports.CreateTodoTypeConfigHeaders = exports.CreateTodoTaskResponse = exports.CreateTodoTaskResponseBody = exports.CreateTodoTaskRequest = exports.CreateTodoTaskHeaders = exports.CreatePersonalTodoTaskResponse = exports.CreatePersonalTodoTaskResponseBody = exports.CreatePersonalTodoTaskRequest = exports.CreatePersonalTodoTaskHeaders = exports.CountTodoTasksResponse = exports.CountTodoTasksResponseBody = exports.CountTodoTasksRequest = exports.CountTodoTasksHeaders = void 0;
exports.QueryOrgTodoByUserResponseBodyTodoCards = exports.QueryOrgTodoByUserResponseBodyTodoCardsDetailUrl = exports.ListAllBizCategoryResponseBodyBizCategories = exports.GetTodoTypeConfigResponseBodyContentFieldList = exports.GetTodoTypeConfigResponseBodyActionList = exports.GetTodoTaskDetailResponseBodyTodoCardView = exports.GetTodoTaskDetailResponseBodyTodoCardViewTodoCardContentList = exports.GetTodoTaskDetailResponseBodyOrgInfo = exports.GetTodoTaskDetailResponseBodyExecutorStatus = exports.GetTodoTaskDetailResponseBodyDetailUrl = exports.GetTodoTaskBySourceIdResponseBodyDetailUrl = exports.GetTodoTaskResponseBodyDetailUrl = exports.CreateTodoTypeConfigResponseBodyContentFieldList = exports.CreateTodoTypeConfigResponseBodyActionList = exports.CreateTodoTypeConfigRequestContentFieldList = exports.CreateTodoTypeConfigRequestActionList = exports.CreateTodoTaskResponseBodyNotifyConfigs = exports.CreateTodoTaskResponseBodyDetailUrl = exports.CreateTodoTaskResponseBodyContentFieldList = exports.CreateTodoTaskRequestRemindNotifyConfigs = exports.CreateTodoTaskRequestNotifyConfigs = exports.CreateTodoTaskRequestDetailUrl = exports.CreateTodoTaskRequestContentFieldList = exports.CreateTodoTaskRequestActionList = exports.CreateTodoTaskRequestActionListParam = exports.CreatePersonalTodoTaskRequestNotifyConfigs = exports.UpdateTodoTypeConfigResponse = exports.UpdateTodoTypeConfigResponseBody = exports.UpdateTodoTypeConfigRequest = exports.UpdateTodoTypeConfigHeaders = exports.UpdateTodoTaskExecutorStatusResponse = exports.UpdateTodoTaskExecutorStatusResponseBody = exports.UpdateTodoTaskExecutorStatusRequest = exports.UpdateTodoTaskExecutorStatusHeaders = exports.UpdateTodoTaskResponse = exports.UpdateTodoTaskResponseBody = exports.UpdateTodoTaskRequest = exports.UpdateTodoTaskHeaders = exports.SetOrgConfigResponse = exports.SetOrgConfigResponseBody = exports.SetOrgConfigRequest = exports.SetOrgConfigHeaders = exports.SetBizCategoryResponse = exports.SetBizCategoryResponseBody = exports.SetBizCategoryRequest = exports.SetBizCategoryHeaders = exports.RemoveBizCategoryResponse = exports.RemoveBizCategoryResponseBody = exports.RemoveBizCategoryRequest = exports.RemoveBizCategoryHeaders = void 0;
exports.UpdateTodoTypeConfigRequestContentFieldList = exports.UpdateTodoTypeConfigRequestActionList = exports.UpdateTodoTaskExecutorStatusRequestExecutorStatusList = exports.QueryTodoTasksResponseBodyTodoCards = exports.QueryTodoTasksResponseBodyTodoCardsTodoCardView = exports.QueryTodoTasksResponseBodyTodoCardsTodoCardViewTodoCardContentList = exports.QueryTodoTasksResponseBodyTodoCardsOriginalSource = exports.QueryTodoTasksResponseBodyTodoCardsOrgInfo = exports.QueryTodoTasksResponseBodyTodoCardsDetailUrl = exports.QueryOrgTodoTasksResponseBodyTodoCards = exports.QueryOrgTodoTasksResponseBodyTodoCardsDetailUrl = 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 CountTodoTasksHeaders 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.CountTodoTasksHeaders = CountTodoTasksHeaders;
class CountTodoTasksRequest extends $tea.Model {
    static names() {
        return {
            fromDueTime: 'fromDueTime',
            isDone: 'isDone',
            isRecycled: 'isRecycled',
            roleTypes: 'roleTypes',
            toDueTime: 'toDueTime',
        };
    }
    static types() {
        return {
            fromDueTime: 'number',
            isDone: 'boolean',
            isRecycled: 'boolean',
            roleTypes: { 'type': 'array', 'itemType': { 'type': 'array', 'itemType': 'string' } },
            toDueTime: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CountTodoTasksRequest = CountTodoTasksRequest;
class CountTodoTasksResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CountTodoTasksResponseBody = CountTodoTasksResponseBody;
class CountTodoTasksResponse 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: CountTodoTasksResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CountTodoTasksResponse = CountTodoTasksResponse;
class CreatePersonalTodoTaskHeaders 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.CreatePersonalTodoTaskHeaders = CreatePersonalTodoTaskHeaders;
class CreatePersonalTodoTaskRequest extends $tea.Model {
    static names() {
        return {
            description: 'description',
            dueTime: 'dueTime',
            executorIds: 'executorIds',
            notifyConfigs: 'notifyConfigs',
            participantIds: 'participantIds',
            reminderTimeStamp: 'reminderTimeStamp',
            subject: 'subject',
        };
    }
    static types() {
        return {
            description: 'string',
            dueTime: 'number',
            executorIds: { 'type': 'array', 'itemType': 'string' },
            notifyConfigs: CreatePersonalTodoTaskRequestNotifyConfigs,
            participantIds: { 'type': 'array', 'itemType': 'string' },
            reminderTimeStamp: 'number',
            subject: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreatePersonalTodoTaskRequest = CreatePersonalTodoTaskRequest;
class CreatePersonalTodoTaskResponseBody extends $tea.Model {
    static names() {
        return {
            createdTime: 'createdTime',
            taskId: 'taskId',
        };
    }
    static types() {
        return {
            createdTime: 'number',
            taskId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreatePersonalTodoTaskResponseBody = CreatePersonalTodoTaskResponseBody;
class CreatePersonalTodoTaskResponse 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: CreatePersonalTodoTaskResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreatePersonalTodoTaskResponse = CreatePersonalTodoTaskResponse;
class CreateTodoTaskHeaders 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.CreateTodoTaskHeaders = CreateTodoTaskHeaders;
class CreateTodoTaskRequest extends $tea.Model {
    static names() {
        return {
            actionList: 'actionList',
            bizCategoryId: 'bizCategoryId',
            contentFieldList: 'contentFieldList',
            creatorId: 'creatorId',
            description: 'description',
            detailUrl: 'detailUrl',
            dueTime: 'dueTime',
            executorIds: 'executorIds',
            isOnlyShowExecutor: 'isOnlyShowExecutor',
            notifyConfigs: 'notifyConfigs',
            participantIds: 'participantIds',
            priority: 'priority',
            remindNotifyConfigs: 'remindNotifyConfigs',
            reminderTimeStamp: 'reminderTimeStamp',
            sourceId: 'sourceId',
            subject: 'subject',
            thirdExtension: 'thirdExtension',
            todoType: 'todoType',
            operatorId: 'operatorId',
        };
    }
    static types() {
        return {
            actionList: { 'type': 'array', 'itemType': CreateTodoTaskRequestActionList },
            bizCategoryId: 'string',
            contentFieldList: { 'type': 'array', 'itemType': CreateTodoTaskRequestContentFieldList },
            creatorId: 'string',
            description: 'string',
            detailUrl: CreateTodoTaskRequestDetailUrl,
            dueTime: 'number',
            executorIds: { 'type': 'array', 'itemType': 'string' },
            isOnlyShowExecutor: 'boolean',
            notifyConfigs: CreateTodoTaskRequestNotifyConfigs,
            participantIds: { 'type': 'array', 'itemType': 'string' },
            priority: 'number',
            remindNotifyConfigs: CreateTodoTaskRequestRemindNotifyConfigs,
            reminderTimeStamp: 'number',
            sourceId: 'string',
            subject: 'string',
            thirdExtension: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
            todoType: 'string',
            operatorId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTodoTaskRequest = CreateTodoTaskRequest;
class CreateTodoTaskResponseBody extends $tea.Model {
    static names() {
        return {
            bizTag: 'bizTag',
            contentFieldList: 'contentFieldList',
            createdTime: 'createdTime',
            creatorId: 'creatorId',
            description: 'description',
            detailUrl: 'detailUrl',
            done: 'done',
            dueTime: 'dueTime',
            executorIds: 'executorIds',
            finishTime: 'finishTime',
            id: 'id',
            isOnlyShowExecutor: 'isOnlyShowExecutor',
            modifiedTime: 'modifiedTime',
            modifierId: 'modifierId',
            notifyConfigs: 'notifyConfigs',
            participantIds: 'participantIds',
            priority: 'priority',
            requestId: 'requestId',
            source: 'source',
            sourceId: 'sourceId',
            startTime: 'startTime',
            subject: 'subject',
        };
    }
    static types() {
        return {
            bizTag: 'string',
            contentFieldList: { 'type': 'array', 'itemType': CreateTodoTaskResponseBodyContentFieldList },
            createdTime: 'number',
            creatorId: 'string',
            description: 'string',
            detailUrl: CreateTodoTaskResponseBodyDetailUrl,
            done: 'boolean',
            dueTime: 'number',
            executorIds: { 'type': 'array', 'itemType': 'string' },
            finishTime: 'number',
            id: 'string',
            isOnlyShowExecutor: 'boolean',
            modifiedTime: 'number',
            modifierId: 'string',
            notifyConfigs: CreateTodoTaskResponseBodyNotifyConfigs,
            participantIds: { 'type': 'array', 'itemType': 'string' },
            priority: 'number',
            requestId: 'string',
            source: 'string',
            sourceId: 'string',
            startTime: 'number',
            subject: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTodoTaskResponseBody = CreateTodoTaskResponseBody;
class CreateTodoTaskResponse 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: CreateTodoTaskResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTodoTaskResponse = CreateTodoTaskResponse;
class CreateTodoTypeConfigHeaders 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.CreateTodoTypeConfigHeaders = CreateTodoTypeConfigHeaders;
class CreateTodoTypeConfigRequest extends $tea.Model {
    static names() {
        return {
            actionList: 'actionList',
            cardType: 'cardType',
            contentFieldList: 'contentFieldList',
            description: 'description',
            icon: 'icon',
            pcDetailUrlOpenMode: 'pcDetailUrlOpenMode',
            operatorId: 'operatorId',
        };
    }
    static types() {
        return {
            actionList: { 'type': 'array', 'itemType': CreateTodoTypeConfigRequestActionList },
            cardType: 'number',
            contentFieldList: { 'type': 'array', 'itemType': CreateTodoTypeConfigRequestContentFieldList },
            description: 'string',
            icon: 'string',
            pcDetailUrlOpenMode: 'string',
            operatorId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTodoTypeConfigRequest = CreateTodoTypeConfigRequest;
class CreateTodoTypeConfigResponseBody extends $tea.Model {
    static names() {
        return {
            actionList: 'actionList',
            bizTag: 'bizTag',
            cardType: 'cardType',
            contentFieldList: 'contentFieldList',
            createdTime: 'createdTime',
            creatorId: 'creatorId',
            description: 'description',
            icon: 'icon',
            id: 'id',
            modifiedTime: 'modifiedTime',
            modifierId: 'modifierId',
            pcDetailUrlOpenMode: 'pcDetailUrlOpenMode',
            requestId: 'requestId',
        };
    }
    static types() {
        return {
            actionList: { 'type': 'array', 'itemType': CreateTodoTypeConfigResponseBodyActionList },
            bizTag: 'string',
            cardType: 'number',
            contentFieldList: { 'type': 'array', 'itemType': CreateTodoTypeConfigResponseBodyContentFieldList },
            createdTime: 'number',
            creatorId: 'string',
            description: 'string',
            icon: 'string',
            id: 'string',
            modifiedTime: 'number',
            modifierId: 'string',
            pcDetailUrlOpenMode: 'string',
            requestId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTodoTypeConfigResponseBody = CreateTodoTypeConfigResponseBody;
class CreateTodoTypeConfigResponse 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: CreateTodoTypeConfigResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTodoTypeConfigResponse = CreateTodoTypeConfigResponse;
class DeleteTodoTaskHeaders 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.DeleteTodoTaskHeaders = DeleteTodoTaskHeaders;
class DeleteTodoTaskRequest extends $tea.Model {
    static names() {
        return {
            operatorId: 'operatorId',
        };
    }
    static types() {
        return {
            operatorId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeleteTodoTaskRequest = DeleteTodoTaskRequest;
class DeleteTodoTaskResponseBody extends $tea.Model {
    static names() {
        return {
            requestId: 'requestId',
            result: 'result',
        };
    }
    static types() {
        return {
            requestId: 'string',
            result: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeleteTodoTaskResponseBody = DeleteTodoTaskResponseBody;
class DeleteTodoTaskResponse 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: DeleteTodoTaskResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeleteTodoTaskResponse = DeleteTodoTaskResponse;
class GetTodoTaskHeaders 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.GetTodoTaskHeaders = GetTodoTaskHeaders;
class GetTodoTaskResponseBody extends $tea.Model {
    static names() {
        return {
            bizTag: 'bizTag',
            cardTypeId: 'cardTypeId',
            createdTime: 'createdTime',
            creatorId: 'creatorId',
            description: 'description',
            detailUrl: 'detailUrl',
            done: 'done',
            dueTime: 'dueTime',
            executorIds: 'executorIds',
            finishTime: 'finishTime',
            id: 'id',
            isOnlyShowExecutor: 'isOnlyShowExecutor',
            modifiedTime: 'modifiedTime',
            modifierId: 'modifierId',
            participantIds: 'participantIds',
            priority: 'priority',
            requestId: 'requestId',
            source: 'source',
            sourceId: 'sourceId',
            startTime: 'startTime',
            subject: 'subject',
            tenantId: 'tenantId',
            tenantType: 'tenantType',
        };
    }
    static types() {
        return {
            bizTag: 'string',
            cardTypeId: 'string',
            createdTime: 'number',
            creatorId: 'string',
            description: 'string',
            detailUrl: GetTodoTaskResponseBodyDetailUrl,
            done: 'boolean',
            dueTime: 'number',
            executorIds: { 'type': 'array', 'itemType': 'string' },
            finishTime: 'number',
            id: 'string',
            isOnlyShowExecutor: 'boolean',
            modifiedTime: 'number',
            modifierId: 'string',
            participantIds: { 'type': 'array', 'itemType': 'string' },
            priority: 'number',
            requestId: 'string',
            source: 'string',
            sourceId: 'string',
            startTime: 'number',
            subject: 'string',
            tenantId: 'string',
            tenantType: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTodoTaskResponseBody = GetTodoTaskResponseBody;
class GetTodoTaskResponse 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: GetTodoTaskResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTodoTaskResponse = GetTodoTaskResponse;
class GetTodoTaskBySourceIdHeaders 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.GetTodoTaskBySourceIdHeaders = GetTodoTaskBySourceIdHeaders;
class GetTodoTaskBySourceIdResponseBody extends $tea.Model {
    static names() {
        return {
            bizTag: 'bizTag',
            createdTime: 'createdTime',
            creatorId: 'creatorId',
            description: 'description',
            detailUrl: 'detailUrl',
            done: 'done',
            dueTime: 'dueTime',
            executorIds: 'executorIds',
            finishTime: 'finishTime',
            id: 'id',
            isOnlyShowExecutor: 'isOnlyShowExecutor',
            modifiedTime: 'modifiedTime',
            modifierId: 'modifierId',
            participantIds: 'participantIds',
            priority: 'priority',
            requestId: 'requestId',
            source: 'source',
            sourceId: 'sourceId',
            startTime: 'startTime',
            subject: 'subject',
            tenantId: 'tenantId',
            tenantType: 'tenantType',
        };
    }
    static types() {
        return {
            bizTag: 'string',
            createdTime: 'number',
            creatorId: 'string',
            description: 'string',
            detailUrl: GetTodoTaskBySourceIdResponseBodyDetailUrl,
            done: 'boolean',
            dueTime: 'number',
            executorIds: { 'type': 'array', 'itemType': 'string' },
            finishTime: 'number',
            id: 'string',
            isOnlyShowExecutor: 'boolean',
            modifiedTime: 'number',
            modifierId: 'string',
            participantIds: { 'type': 'array', 'itemType': 'string' },
            priority: 'number',
            requestId: 'string',
            source: 'string',
            sourceId: 'string',
            startTime: 'number',
            subject: 'string',
            tenantId: 'string',
            tenantType: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTodoTaskBySourceIdResponseBody = GetTodoTaskBySourceIdResponseBody;
class GetTodoTaskBySourceIdResponse 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: GetTodoTaskBySourceIdResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTodoTaskBySourceIdResponse = GetTodoTaskBySourceIdResponse;
class GetTodoTaskDetailHeaders 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.GetTodoTaskDetailHeaders = GetTodoTaskDetailHeaders;
class GetTodoTaskDetailResponseBody extends $tea.Model {
    static names() {
        return {
            bizTag: 'bizTag',
            category: 'category',
            createdTime: 'createdTime',
            creatorId: 'creatorId',
            description: 'description',
            detailUrl: 'detailUrl',
            done: 'done',
            dueTime: 'dueTime',
            executorIds: 'executorIds',
            executorStatus: 'executorStatus',
            finishTime: 'finishTime',
            id: 'id',
            isOnlyShowExecutor: 'isOnlyShowExecutor',
            modifiedTime: 'modifiedTime',
            modifierId: 'modifierId',
            orgInfo: 'orgInfo',
            participantIds: 'participantIds',
            priority: 'priority',
            requestId: 'requestId',
            source: 'source',
            sourceId: 'sourceId',
            startTime: 'startTime',
            subject: 'subject',
            tenantId: 'tenantId',
            tenantType: 'tenantType',
            todoCardView: 'todoCardView',
        };
    }
    static types() {
        return {
            bizTag: 'string',
            category: 'string',
            createdTime: 'number',
            creatorId: 'string',
            description: 'string',
            detailUrl: GetTodoTaskDetailResponseBodyDetailUrl,
            done: 'boolean',
            dueTime: 'number',
            executorIds: { 'type': 'array', 'itemType': 'string' },
            executorStatus: { 'type': 'array', 'itemType': GetTodoTaskDetailResponseBodyExecutorStatus },
            finishTime: 'number',
            id: 'string',
            isOnlyShowExecutor: 'boolean',
            modifiedTime: 'number',
            modifierId: 'string',
            orgInfo: GetTodoTaskDetailResponseBodyOrgInfo,
            participantIds: { 'type': 'array', 'itemType': 'string' },
            priority: 'number',
            requestId: 'string',
            source: 'string',
            sourceId: 'string',
            startTime: 'number',
            subject: 'string',
            tenantId: 'string',
            tenantType: 'string',
            todoCardView: GetTodoTaskDetailResponseBodyTodoCardView,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTodoTaskDetailResponseBody = GetTodoTaskDetailResponseBody;
class GetTodoTaskDetailResponse 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: GetTodoTaskDetailResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTodoTaskDetailResponse = GetTodoTaskDetailResponse;
class GetTodoTypeConfigHeaders 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.GetTodoTypeConfigHeaders = GetTodoTypeConfigHeaders;
class GetTodoTypeConfigResponseBody extends $tea.Model {
    static names() {
        return {
            actionList: 'actionList',
            bizTag: 'bizTag',
            cardType: 'cardType',
            contentFieldList: 'contentFieldList',
            createdTime: 'createdTime',
            creatorId: 'creatorId',
            description: 'description',
            icon: 'icon',
            id: 'id',
            modifiedTime: 'modifiedTime',
            modifierId: 'modifierId',
            pcDetailUrlOpenMode: 'pcDetailUrlOpenMode',
            requestId: 'requestId',
        };
    }
    static types() {
        return {
            actionList: { 'type': 'array', 'itemType': GetTodoTypeConfigResponseBodyActionList },
            bizTag: 'string',
            cardType: 'number',
            contentFieldList: { 'type': 'array', 'itemType': GetTodoTypeConfigResponseBodyContentFieldList },
            createdTime: 'number',
            creatorId: 'string',
            description: 'string',
            icon: 'string',
            id: 'string',
            modifiedTime: 'number',
            modifierId: 'string',
            pcDetailUrlOpenMode: 'string',
            requestId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTodoTypeConfigResponseBody = GetTodoTypeConfigResponseBody;
class GetTodoTypeConfigResponse 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: GetTodoTypeConfigResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTodoTypeConfigResponse = GetTodoTypeConfigResponse;
class ListAllBizCategoryHeaders 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.ListAllBizCategoryHeaders = ListAllBizCategoryHeaders;
class ListAllBizCategoryResponseBody extends $tea.Model {
    static names() {
        return {
            bizCategories: 'bizCategories',
        };
    }
    static types() {
        return {
            bizCategories: { 'type': 'array', 'itemType': ListAllBizCategoryResponseBodyBizCategories },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAllBizCategoryResponseBody = ListAllBizCategoryResponseBody;
class ListAllBizCategoryResponse 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: ListAllBizCategoryResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAllBizCategoryResponse = ListAllBizCategoryResponse;
class QueryOrgConfigHeaders 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.QueryOrgConfigHeaders = QueryOrgConfigHeaders;
class QueryOrgConfigResponseBody extends $tea.Model {
    static names() {
        return {
            appDisplayStyle: 'appDisplayStyle',
            createdTime: 'createdTime',
            homepageCatalogs: 'homepageCatalogs',
            modifiedTime: 'modifiedTime',
            status: 'status',
        };
    }
    static types() {
        return {
            appDisplayStyle: 'string',
            createdTime: 'number',
            homepageCatalogs: { 'type': 'array', 'itemType': 'string' },
            modifiedTime: 'number',
            status: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryOrgConfigResponseBody = QueryOrgConfigResponseBody;
class QueryOrgConfigResponse 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: QueryOrgConfigResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryOrgConfigResponse = QueryOrgConfigResponse;
class QueryOrgTodoByUserHeaders 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.QueryOrgTodoByUserHeaders = QueryOrgTodoByUserHeaders;
class QueryOrgTodoByUserRequest extends $tea.Model {
    static names() {
        return {
            fromDueTime: 'fromDueTime',
            isDone: 'isDone',
            maxResults: 'maxResults',
            needPersonalTodo: 'needPersonalTodo',
            nextToken: 'nextToken',
            orderBy: 'orderBy',
            orderDirection: 'orderDirection',
            roleTypes: 'roleTypes',
            subject: 'subject',
            toDueTime: 'toDueTime',
            todoType: 'todoType',
        };
    }
    static types() {
        return {
            fromDueTime: 'number',
            isDone: 'boolean',
            maxResults: 'number',
            needPersonalTodo: 'boolean',
            nextToken: 'string',
            orderBy: 'string',
            orderDirection: 'string',
            roleTypes: { 'type': 'array', 'itemType': { 'type': 'array', 'itemType': 'string' } },
            subject: 'string',
            toDueTime: 'number',
            todoType: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryOrgTodoByUserRequest = QueryOrgTodoByUserRequest;
class QueryOrgTodoByUserResponseBody extends $tea.Model {
    static names() {
        return {
            maxResults: 'maxResults',
            nextToken: 'nextToken',
            todoCards: 'todoCards',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            nextToken: 'string',
            todoCards: { 'type': 'array', 'itemType': QueryOrgTodoByUserResponseBodyTodoCards },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryOrgTodoByUserResponseBody = QueryOrgTodoByUserResponseBody;
class QueryOrgTodoByUserResponse 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: QueryOrgTodoByUserResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryOrgTodoByUserResponse = QueryOrgTodoByUserResponse;
class QueryOrgTodoTasksHeaders 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.QueryOrgTodoTasksHeaders = QueryOrgTodoTasksHeaders;
class QueryOrgTodoTasksRequest extends $tea.Model {
    static names() {
        return {
            isDone: 'isDone',
            nextToken: 'nextToken',
            roleTypes: 'roleTypes',
            todoType: 'todoType',
        };
    }
    static types() {
        return {
            isDone: 'boolean',
            nextToken: 'string',
            roleTypes: { 'type': 'array', 'itemType': { 'type': 'array', 'itemType': 'string' } },
            todoType: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryOrgTodoTasksRequest = QueryOrgTodoTasksRequest;
class QueryOrgTodoTasksResponseBody extends $tea.Model {
    static names() {
        return {
            nextToken: 'nextToken',
            todoCards: 'todoCards',
        };
    }
    static types() {
        return {
            nextToken: 'string',
            todoCards: { 'type': 'array', 'itemType': QueryOrgTodoTasksResponseBodyTodoCards },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryOrgTodoTasksResponseBody = QueryOrgTodoTasksResponseBody;
class QueryOrgTodoTasksResponse 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: QueryOrgTodoTasksResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryOrgTodoTasksResponse = QueryOrgTodoTasksResponse;
class QueryTodoTasksHeaders 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.QueryTodoTasksHeaders = QueryTodoTasksHeaders;
class QueryTodoTasksRequest extends $tea.Model {
    static names() {
        return {
            category: 'category',
            fromDueTime: 'fromDueTime',
            isDone: 'isDone',
            isRecycled: 'isRecycled',
            nextToken: 'nextToken',
            orderBy: 'orderBy',
            orderDirection: 'orderDirection',
            roleTypes: 'roleTypes',
            toDueTime: 'toDueTime',
        };
    }
    static types() {
        return {
            category: 'string',
            fromDueTime: 'number',
            isDone: 'boolean',
            isRecycled: 'boolean',
            nextToken: 'string',
            orderBy: 'string',
            orderDirection: 'string',
            roleTypes: { 'type': 'array', 'itemType': { 'type': 'array', 'itemType': 'string' } },
            toDueTime: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTodoTasksRequest = QueryTodoTasksRequest;
class QueryTodoTasksResponseBody extends $tea.Model {
    static names() {
        return {
            nextToken: 'nextToken',
            todoCards: 'todoCards',
            totalCount: 'totalCount',
        };
    }
    static types() {
        return {
            nextToken: 'string',
            todoCards: { 'type': 'array', 'itemType': QueryTodoTasksResponseBodyTodoCards },
            totalCount: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTodoTasksResponseBody = QueryTodoTasksResponseBody;
class QueryTodoTasksResponse 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: QueryTodoTasksResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTodoTasksResponse = QueryTodoTasksResponse;
class RemoveBizCategoryHeaders 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.RemoveBizCategoryHeaders = RemoveBizCategoryHeaders;
class RemoveBizCategoryRequest extends $tea.Model {
    static names() {
        return {
            bizCategoryId: 'bizCategoryId',
            operatorId: 'operatorId',
        };
    }
    static types() {
        return {
            bizCategoryId: 'string',
            operatorId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RemoveBizCategoryRequest = RemoveBizCategoryRequest;
class RemoveBizCategoryResponseBody extends $tea.Model {
    static names() {
        return {
            success: 'success',
        };
    }
    static types() {
        return {
            success: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RemoveBizCategoryResponseBody = RemoveBizCategoryResponseBody;
class RemoveBizCategoryResponse 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: RemoveBizCategoryResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RemoveBizCategoryResponse = RemoveBizCategoryResponse;
class SetBizCategoryHeaders 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.SetBizCategoryHeaders = SetBizCategoryHeaders;
class SetBizCategoryRequest extends $tea.Model {
    static names() {
        return {
            bizCategoryId: 'bizCategoryId',
            description: 'description',
            name: 'name',
            operatorId: 'operatorId',
        };
    }
    static types() {
        return {
            bizCategoryId: 'string',
            description: 'string',
            name: 'string',
            operatorId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SetBizCategoryRequest = SetBizCategoryRequest;
class SetBizCategoryResponseBody extends $tea.Model {
    static names() {
        return {
            success: 'success',
        };
    }
    static types() {
        return {
            success: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SetBizCategoryResponseBody = SetBizCategoryResponseBody;
class SetBizCategoryResponse 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: SetBizCategoryResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SetBizCategoryResponse = SetBizCategoryResponse;
class SetOrgConfigHeaders 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.SetOrgConfigHeaders = SetOrgConfigHeaders;
class SetOrgConfigRequest extends $tea.Model {
    static names() {
        return {
            appDisplayStyle: 'appDisplayStyle',
            homepageCatalogs: 'homepageCatalogs',
            operatorId: 'operatorId',
            status: 'status',
        };
    }
    static types() {
        return {
            appDisplayStyle: 'number',
            homepageCatalogs: { 'type': 'array', 'itemType': 'string' },
            operatorId: 'string',
            status: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SetOrgConfigRequest = SetOrgConfigRequest;
class SetOrgConfigResponseBody extends $tea.Model {
    static names() {
        return {
            success: 'success',
        };
    }
    static types() {
        return {
            success: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SetOrgConfigResponseBody = SetOrgConfigResponseBody;
class SetOrgConfigResponse 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: SetOrgConfigResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SetOrgConfigResponse = SetOrgConfigResponse;
class UpdateTodoTaskHeaders 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.UpdateTodoTaskHeaders = UpdateTodoTaskHeaders;
class UpdateTodoTaskRequest extends $tea.Model {
    static names() {
        return {
            description: 'description',
            done: 'done',
            dueTime: 'dueTime',
            executorIds: 'executorIds',
            participantIds: 'participantIds',
            subject: 'subject',
            operatorId: 'operatorId',
        };
    }
    static types() {
        return {
            description: 'string',
            done: 'boolean',
            dueTime: 'number',
            executorIds: { 'type': 'array', 'itemType': 'string' },
            participantIds: { 'type': 'array', 'itemType': 'string' },
            subject: 'string',
            operatorId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTodoTaskRequest = UpdateTodoTaskRequest;
class UpdateTodoTaskResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTodoTaskResponseBody = UpdateTodoTaskResponseBody;
class UpdateTodoTaskResponse 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: UpdateTodoTaskResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTodoTaskResponse = UpdateTodoTaskResponse;
class UpdateTodoTaskExecutorStatusHeaders 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.UpdateTodoTaskExecutorStatusHeaders = UpdateTodoTaskExecutorStatusHeaders;
class UpdateTodoTaskExecutorStatusRequest extends $tea.Model {
    static names() {
        return {
            executorStatusList: 'executorStatusList',
            operatorId: 'operatorId',
        };
    }
    static types() {
        return {
            executorStatusList: { 'type': 'array', 'itemType': UpdateTodoTaskExecutorStatusRequestExecutorStatusList },
            operatorId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTodoTaskExecutorStatusRequest = UpdateTodoTaskExecutorStatusRequest;
class UpdateTodoTaskExecutorStatusResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTodoTaskExecutorStatusResponseBody = UpdateTodoTaskExecutorStatusResponseBody;
class UpdateTodoTaskExecutorStatusResponse 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: UpdateTodoTaskExecutorStatusResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTodoTaskExecutorStatusResponse = UpdateTodoTaskExecutorStatusResponse;
class UpdateTodoTypeConfigHeaders 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.UpdateTodoTypeConfigHeaders = UpdateTodoTypeConfigHeaders;
class UpdateTodoTypeConfigRequest extends $tea.Model {
    static names() {
        return {
            actionList: 'actionList',
            cardType: 'cardType',
            contentFieldList: 'contentFieldList',
            description: 'description',
            icon: 'icon',
            pcDetailUrlOpenMode: 'pcDetailUrlOpenMode',
            operatorId: 'operatorId',
        };
    }
    static types() {
        return {
            actionList: { 'type': 'array', 'itemType': UpdateTodoTypeConfigRequestActionList },
            cardType: 'number',
            contentFieldList: { 'type': 'array', 'itemType': UpdateTodoTypeConfigRequestContentFieldList },
            description: 'string',
            icon: 'string',
            pcDetailUrlOpenMode: 'string',
            operatorId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTodoTypeConfigRequest = UpdateTodoTypeConfigRequest;
class UpdateTodoTypeConfigResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTodoTypeConfigResponseBody = UpdateTodoTypeConfigResponseBody;
class UpdateTodoTypeConfigResponse 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: UpdateTodoTypeConfigResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTodoTypeConfigResponse = UpdateTodoTypeConfigResponse;
class CreatePersonalTodoTaskRequestNotifyConfigs extends $tea.Model {
    static names() {
        return {
            dingNotify: 'dingNotify',
        };
    }
    static types() {
        return {
            dingNotify: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreatePersonalTodoTaskRequestNotifyConfigs = CreatePersonalTodoTaskRequestNotifyConfigs;
class CreateTodoTaskRequestActionListParam extends $tea.Model {
    static names() {
        return {
            body: 'body',
            header: 'header',
        };
    }
    static types() {
        return {
            body: 'string',
            header: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTodoTaskRequestActionListParam = CreateTodoTaskRequestActionListParam;
class CreateTodoTaskRequestActionList extends $tea.Model {
    static names() {
        return {
            actionKey: 'actionKey',
            actionType: 'actionType',
            param: 'param',
            pcUrl: 'pcUrl',
            title: 'title',
            url: 'url',
        };
    }
    static types() {
        return {
            actionKey: 'string',
            actionType: 'number',
            param: CreateTodoTaskRequestActionListParam,
            pcUrl: 'string',
            title: 'string',
            url: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTodoTaskRequestActionList = CreateTodoTaskRequestActionList;
class CreateTodoTaskRequestContentFieldList extends $tea.Model {
    static names() {
        return {
            fieldKey: 'fieldKey',
            fieldValue: 'fieldValue',
        };
    }
    static types() {
        return {
            fieldKey: 'string',
            fieldValue: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTodoTaskRequestContentFieldList = CreateTodoTaskRequestContentFieldList;
class CreateTodoTaskRequestDetailUrl extends $tea.Model {
    static names() {
        return {
            appUrl: 'appUrl',
            pcUrl: 'pcUrl',
        };
    }
    static types() {
        return {
            appUrl: 'string',
            pcUrl: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTodoTaskRequestDetailUrl = CreateTodoTaskRequestDetailUrl;
class CreateTodoTaskRequestNotifyConfigs extends $tea.Model {
    static names() {
        return {
            dingNotify: 'dingNotify',
            sendAssistantChat: 'sendAssistantChat',
            sendTodoApn: 'sendTodoApn',
        };
    }
    static types() {
        return {
            dingNotify: 'string',
            sendAssistantChat: 'string',
            sendTodoApn: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTodoTaskRequestNotifyConfigs = CreateTodoTaskRequestNotifyConfigs;
class CreateTodoTaskRequestRemindNotifyConfigs extends $tea.Model {
    static names() {
        return {
            dingNotify: 'dingNotify',
            sendTodoApn: 'sendTodoApn',
        };
    }
    static types() {
        return {
            dingNotify: 'string',
            sendTodoApn: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTodoTaskRequestRemindNotifyConfigs = CreateTodoTaskRequestRemindNotifyConfigs;
class CreateTodoTaskResponseBodyContentFieldList extends $tea.Model {
    static names() {
        return {
            fieldKey: 'fieldKey',
            fieldValue: 'fieldValue',
        };
    }
    static types() {
        return {
            fieldKey: 'string',
            fieldValue: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTodoTaskResponseBodyContentFieldList = CreateTodoTaskResponseBodyContentFieldList;
class CreateTodoTaskResponseBodyDetailUrl extends $tea.Model {
    static names() {
        return {
            appUrl: 'appUrl',
            pcUrl: 'pcUrl',
        };
    }
    static types() {
        return {
            appUrl: 'string',
            pcUrl: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTodoTaskResponseBodyDetailUrl = CreateTodoTaskResponseBodyDetailUrl;
class CreateTodoTaskResponseBodyNotifyConfigs extends $tea.Model {
    static names() {
        return {
            dingNotify: 'dingNotify',
        };
    }
    static types() {
        return {
            dingNotify: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTodoTaskResponseBodyNotifyConfigs = CreateTodoTaskResponseBodyNotifyConfigs;
class CreateTodoTypeConfigRequestActionList extends $tea.Model {
    static names() {
        return {
            actionKey: 'actionKey',
            actionType: 'actionType',
            buttonStyleType: 'buttonStyleType',
            nameI18n: 'nameI18n',
            url: 'url',
        };
    }
    static types() {
        return {
            actionKey: 'string',
            actionType: 'number',
            buttonStyleType: 'number',
            nameI18n: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
            url: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTodoTypeConfigRequestActionList = CreateTodoTypeConfigRequestActionList;
class CreateTodoTypeConfigRequestContentFieldList extends $tea.Model {
    static names() {
        return {
            fieldKey: 'fieldKey',
            fieldType: 'fieldType',
            nameI18n: 'nameI18n',
        };
    }
    static types() {
        return {
            fieldKey: 'string',
            fieldType: 'string',
            nameI18n: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTodoTypeConfigRequestContentFieldList = CreateTodoTypeConfigRequestContentFieldList;
class CreateTodoTypeConfigResponseBodyActionList extends $tea.Model {
    static names() {
        return {
            actionKey: 'actionKey',
            actionType: 'actionType',
            buttonStyleType: 'buttonStyleType',
            nameI18n: 'nameI18n',
            url: 'url',
        };
    }
    static types() {
        return {
            actionKey: 'string',
            actionType: 'number',
            buttonStyleType: 'number',
            nameI18n: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
            url: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTodoTypeConfigResponseBodyActionList = CreateTodoTypeConfigResponseBodyActionList;
class CreateTodoTypeConfigResponseBodyContentFieldList extends $tea.Model {
    static names() {
        return {
            fieldKey: 'fieldKey',
            fieldType: 'fieldType',
            nameI18n: 'nameI18n',
        };
    }
    static types() {
        return {
            fieldKey: 'string',
            fieldType: 'string',
            nameI18n: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateTodoTypeConfigResponseBodyContentFieldList = CreateTodoTypeConfigResponseBodyContentFieldList;
class GetTodoTaskResponseBodyDetailUrl extends $tea.Model {
    static names() {
        return {
            appUrl: 'appUrl',
            pcUrl: 'pcUrl',
        };
    }
    static types() {
        return {
            appUrl: 'string',
            pcUrl: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTodoTaskResponseBodyDetailUrl = GetTodoTaskResponseBodyDetailUrl;
class GetTodoTaskBySourceIdResponseBodyDetailUrl extends $tea.Model {
    static names() {
        return {
            appUrl: 'appUrl',
            pcUrl: 'pcUrl',
        };
    }
    static types() {
        return {
            appUrl: 'string',
            pcUrl: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTodoTaskBySourceIdResponseBodyDetailUrl = GetTodoTaskBySourceIdResponseBodyDetailUrl;
class GetTodoTaskDetailResponseBodyDetailUrl extends $tea.Model {
    static names() {
        return {
            appUrl: 'appUrl',
            pcUrl: 'pcUrl',
        };
    }
    static types() {
        return {
            appUrl: 'string',
            pcUrl: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTodoTaskDetailResponseBodyDetailUrl = GetTodoTaskDetailResponseBodyDetailUrl;
class GetTodoTaskDetailResponseBodyExecutorStatus extends $tea.Model {
    static names() {
        return {
            isDone: 'isDone',
            userId: 'userId',
        };
    }
    static types() {
        return {
            isDone: 'boolean',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTodoTaskDetailResponseBodyExecutorStatus = GetTodoTaskDetailResponseBodyExecutorStatus;
class GetTodoTaskDetailResponseBodyOrgInfo extends $tea.Model {
    static names() {
        return {
            corpId: 'corpId',
            name: 'name',
        };
    }
    static types() {
        return {
            corpId: 'string',
            name: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTodoTaskDetailResponseBodyOrgInfo = GetTodoTaskDetailResponseBodyOrgInfo;
class GetTodoTaskDetailResponseBodyTodoCardViewTodoCardContentList extends $tea.Model {
    static names() {
        return {
            name: 'name',
            value: 'value',
        };
    }
    static types() {
        return {
            name: 'string',
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTodoTaskDetailResponseBodyTodoCardViewTodoCardContentList = GetTodoTaskDetailResponseBodyTodoCardViewTodoCardContentList;
class GetTodoTaskDetailResponseBodyTodoCardView extends $tea.Model {
    static names() {
        return {
            actionType: 'actionType',
            cardType: 'cardType',
            circleELType: 'circleELType',
            contentType: 'contentType',
            icon: 'icon',
            todoCardContentList: 'todoCardContentList',
            todoCardTitle: 'todoCardTitle',
        };
    }
    static types() {
        return {
            actionType: 'string',
            cardType: 'string',
            circleELType: 'string',
            contentType: 'string',
            icon: 'string',
            todoCardContentList: { 'type': 'array', 'itemType': GetTodoTaskDetailResponseBodyTodoCardViewTodoCardContentList },
            todoCardTitle: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTodoTaskDetailResponseBodyTodoCardView = GetTodoTaskDetailResponseBodyTodoCardView;
class GetTodoTypeConfigResponseBodyActionList extends $tea.Model {
    static names() {
        return {
            actionKey: 'actionKey',
            actionType: 'actionType',
            buttonStyleType: 'buttonStyleType',
            nameI18n: 'nameI18n',
            url: 'url',
        };
    }
    static types() {
        return {
            actionKey: 'string',
            actionType: 'number',
            buttonStyleType: 'number',
            nameI18n: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
            url: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTodoTypeConfigResponseBodyActionList = GetTodoTypeConfigResponseBodyActionList;
class GetTodoTypeConfigResponseBodyContentFieldList extends $tea.Model {
    static names() {
        return {
            fieldKey: 'fieldKey',
            fieldType: 'fieldType',
            nameI18n: 'nameI18n',
        };
    }
    static types() {
        return {
            fieldKey: 'string',
            fieldType: 'string',
            nameI18n: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetTodoTypeConfigResponseBodyContentFieldList = GetTodoTypeConfigResponseBodyContentFieldList;
class ListAllBizCategoryResponseBodyBizCategories extends $tea.Model {
    static names() {
        return {
            bizCategoryId: 'bizCategoryId',
            createdTime: 'createdTime',
            description: 'description',
            modifiedTime: 'modifiedTime',
            name: 'name',
        };
    }
    static types() {
        return {
            bizCategoryId: 'string',
            createdTime: 'number',
            description: 'string',
            modifiedTime: 'number',
            name: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAllBizCategoryResponseBodyBizCategories = ListAllBizCategoryResponseBodyBizCategories;
class QueryOrgTodoByUserResponseBodyTodoCardsDetailUrl extends $tea.Model {
    static names() {
        return {
            appUrl: 'appUrl',
            pcUrl: 'pcUrl',
        };
    }
    static types() {
        return {
            appUrl: 'string',
            pcUrl: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryOrgTodoByUserResponseBodyTodoCardsDetailUrl = QueryOrgTodoByUserResponseBodyTodoCardsDetailUrl;
class QueryOrgTodoByUserResponseBodyTodoCards extends $tea.Model {
    static names() {
        return {
            bizTag: 'bizTag',
            createdTime: 'createdTime',
            creatorId: 'creatorId',
            detailUrl: 'detailUrl',
            dueTime: 'dueTime',
            isDone: 'isDone',
            modifiedTime: 'modifiedTime',
            priority: 'priority',
            sourceExt: 'sourceExt',
            sourceId: 'sourceId',
            subject: 'subject',
            taskId: 'taskId',
            todoType: 'todoType',
        };
    }
    static types() {
        return {
            bizTag: 'string',
            createdTime: 'number',
            creatorId: 'string',
            detailUrl: QueryOrgTodoByUserResponseBodyTodoCardsDetailUrl,
            dueTime: 'number',
            isDone: 'boolean',
            modifiedTime: 'number',
            priority: 'number',
            sourceExt: 'string',
            sourceId: 'string',
            subject: 'string',
            taskId: 'string',
            todoType: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryOrgTodoByUserResponseBodyTodoCards = QueryOrgTodoByUserResponseBodyTodoCards;
class QueryOrgTodoTasksResponseBodyTodoCardsDetailUrl extends $tea.Model {
    static names() {
        return {
            appUrl: 'appUrl',
            pcUrl: 'pcUrl',
        };
    }
    static types() {
        return {
            appUrl: 'string',
            pcUrl: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryOrgTodoTasksResponseBodyTodoCardsDetailUrl = QueryOrgTodoTasksResponseBodyTodoCardsDetailUrl;
class QueryOrgTodoTasksResponseBodyTodoCards extends $tea.Model {
    static names() {
        return {
            bizTag: 'bizTag',
            createdTime: 'createdTime',
            creatorId: 'creatorId',
            detailUrl: 'detailUrl',
            dueTime: 'dueTime',
            isDone: 'isDone',
            modifiedTime: 'modifiedTime',
            priority: 'priority',
            sourceId: 'sourceId',
            subject: 'subject',
            taskId: 'taskId',
            todoType: 'todoType',
        };
    }
    static types() {
        return {
            bizTag: 'string',
            createdTime: 'number',
            creatorId: 'string',
            detailUrl: QueryOrgTodoTasksResponseBodyTodoCardsDetailUrl,
            dueTime: 'number',
            isDone: 'boolean',
            modifiedTime: 'number',
            priority: 'number',
            sourceId: 'string',
            subject: 'string',
            taskId: 'string',
            todoType: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryOrgTodoTasksResponseBodyTodoCards = QueryOrgTodoTasksResponseBodyTodoCards;
class QueryTodoTasksResponseBodyTodoCardsDetailUrl extends $tea.Model {
    static names() {
        return {
            appUrl: 'appUrl',
            pcUrl: 'pcUrl',
        };
    }
    static types() {
        return {
            appUrl: 'string',
            pcUrl: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTodoTasksResponseBodyTodoCardsDetailUrl = QueryTodoTasksResponseBodyTodoCardsDetailUrl;
class QueryTodoTasksResponseBodyTodoCardsOrgInfo extends $tea.Model {
    static names() {
        return {
            corpId: 'corpId',
            name: 'name',
        };
    }
    static types() {
        return {
            corpId: 'string',
            name: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTodoTasksResponseBodyTodoCardsOrgInfo = QueryTodoTasksResponseBodyTodoCardsOrgInfo;
class QueryTodoTasksResponseBodyTodoCardsOriginalSource extends $tea.Model {
    static names() {
        return {
            sourceTitle: 'sourceTitle',
        };
    }
    static types() {
        return {
            sourceTitle: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTodoTasksResponseBodyTodoCardsOriginalSource = QueryTodoTasksResponseBodyTodoCardsOriginalSource;
class QueryTodoTasksResponseBodyTodoCardsTodoCardViewTodoCardContentList extends $tea.Model {
    static names() {
        return {
            name: 'name',
            value: 'value',
        };
    }
    static types() {
        return {
            name: 'string',
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTodoTasksResponseBodyTodoCardsTodoCardViewTodoCardContentList = QueryTodoTasksResponseBodyTodoCardsTodoCardViewTodoCardContentList;
class QueryTodoTasksResponseBodyTodoCardsTodoCardView extends $tea.Model {
    static names() {
        return {
            actionType: 'actionType',
            cardType: 'cardType',
            circleELType: 'circleELType',
            contentType: 'contentType',
            icon: 'icon',
            todoCardContentList: 'todoCardContentList',
            todoCardTitle: 'todoCardTitle',
        };
    }
    static types() {
        return {
            actionType: 'string',
            cardType: 'string',
            circleELType: 'string',
            contentType: 'string',
            icon: 'string',
            todoCardContentList: { 'type': 'array', 'itemType': QueryTodoTasksResponseBodyTodoCardsTodoCardViewTodoCardContentList },
            todoCardTitle: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTodoTasksResponseBodyTodoCardsTodoCardView = QueryTodoTasksResponseBodyTodoCardsTodoCardView;
class QueryTodoTasksResponseBodyTodoCards extends $tea.Model {
    static names() {
        return {
            bizTag: 'bizTag',
            category: 'category',
            createdTime: 'createdTime',
            creatorId: 'creatorId',
            detailUrl: 'detailUrl',
            dueTime: 'dueTime',
            isDone: 'isDone',
            modifiedTime: 'modifiedTime',
            orgInfo: 'orgInfo',
            originalSource: 'originalSource',
            priority: 'priority',
            sourceId: 'sourceId',
            subject: 'subject',
            taskId: 'taskId',
            todoCardView: 'todoCardView',
            todoStatus: 'todoStatus',
        };
    }
    static types() {
        return {
            bizTag: 'string',
            category: 'string',
            createdTime: 'number',
            creatorId: 'string',
            detailUrl: QueryTodoTasksResponseBodyTodoCardsDetailUrl,
            dueTime: 'number',
            isDone: 'boolean',
            modifiedTime: 'number',
            orgInfo: QueryTodoTasksResponseBodyTodoCardsOrgInfo,
            originalSource: QueryTodoTasksResponseBodyTodoCardsOriginalSource,
            priority: 'number',
            sourceId: 'string',
            subject: 'string',
            taskId: 'string',
            todoCardView: QueryTodoTasksResponseBodyTodoCardsTodoCardView,
            todoStatus: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryTodoTasksResponseBodyTodoCards = QueryTodoTasksResponseBodyTodoCards;
class UpdateTodoTaskExecutorStatusRequestExecutorStatusList extends $tea.Model {
    static names() {
        return {
            id: 'id',
            isDone: 'isDone',
        };
    }
    static types() {
        return {
            id: 'string',
            isDone: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTodoTaskExecutorStatusRequestExecutorStatusList = UpdateTodoTaskExecutorStatusRequestExecutorStatusList;
class UpdateTodoTypeConfigRequestActionList extends $tea.Model {
    static names() {
        return {
            actionKey: 'actionKey',
            actionType: 'actionType',
            buttonStyleType: 'buttonStyleType',
            nameI18n: 'nameI18n',
            url: 'url',
        };
    }
    static types() {
        return {
            actionKey: 'string',
            actionType: 'number',
            buttonStyleType: 'number',
            nameI18n: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
            url: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTodoTypeConfigRequestActionList = UpdateTodoTypeConfigRequestActionList;
class UpdateTodoTypeConfigRequestContentFieldList extends $tea.Model {
    static names() {
        return {
            fieldKey: 'fieldKey',
            fieldType: 'fieldType',
            nameI18n: 'nameI18n',
        };
    }
    static types() {
        return {
            fieldKey: 'string',
            fieldType: 'string',
            nameI18n: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateTodoTypeConfigRequestContentFieldList = UpdateTodoTypeConfigRequestContentFieldList;
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 - CountTodoTasksRequest
     * @param headers - CountTodoTasksHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns CountTodoTasksResponse
     */
    async countTodoTasksWithOptions(unionId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.fromDueTime)) {
            body["fromDueTime"] = request.fromDueTime;
        }
        if (!tea_util_1.default.isUnset(request.isDone)) {
            body["isDone"] = request.isDone;
        }
        if (!tea_util_1.default.isUnset(request.isRecycled)) {
            body["isRecycled"] = request.isRecycled;
        }
        if (!tea_util_1.default.isUnset(request.roleTypes)) {
            body["roleTypes"] = request.roleTypes;
        }
        if (!tea_util_1.default.isUnset(request.toDueTime)) {
            body["toDueTime"] = request.toDueTime;
        }
        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: "CountTodoTasks",
            version: "todo_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/todo/users/${unionId}/tasks/count`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new CountTodoTasksResponse({}));
    }
    /**
     * 查询用户待办计数
     *
     * @param request - CountTodoTasksRequest
     * @returns CountTodoTasksResponse
     */
    async countTodoTasks(unionId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new CountTodoTasksHeaders({});
        return await this.countTodoTasksWithOptions(unionId, request, headers, runtime);
    }
    /**
     * 以用户个人身份创建个人待办
     *
     * @param request - CreatePersonalTodoTaskRequest
     * @param headers - CreatePersonalTodoTaskHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns CreatePersonalTodoTaskResponse
     */
    async createPersonalTodoTaskWithOptions(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.dueTime)) {
            body["dueTime"] = request.dueTime;
        }
        if (!tea_util_1.default.isUnset(request.executorIds)) {
            body["executorIds"] = request.executorIds;
        }
        if (!tea_util_1.default.isUnset(request.notifyConfigs)) {
            body["notifyConfigs"] = request.notifyConfigs;
        }
        if (!tea_util_1.default.isUnset(request.participantIds)) {
            body["participantIds"] = request.participantIds;
        }
        if (!tea_util_1.default.isUnset(request.reminderTimeStamp)) {
            body["reminderTimeStamp"] = request.reminderTimeStamp;
        }
        if (!tea_util_1.default.isUnset(request.subject)) {
            body["subject"] = request.subject;
        }
        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: "CreatePersonalTodoTask",
            version: "todo_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/todo/users/me/personalTasks`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new CreatePersonalTodoTaskResponse({}));
    }
    /**
     * 以用户个人身份创建个人待办
     *
     * @param request - CreatePersonalTodoTaskRequest
     * @returns CreatePersonalTodoTaskResponse
     */
    async createPersonalTodoTask(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new CreatePersonalTodoTaskHeaders({});
        return await this.createPersonalTodoTaskWithOptions(request, headers, runtime);
    }
    /**
     * 创建待办
     *
     * @param request - CreateTodoTaskRequest
     * @param headers - CreateTodoTaskHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns CreateTodoTaskResponse
     */
    async createTodoTaskWithOptions(unionId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.operatorId)) {
            query["operatorId"] = request.operatorId;
        }
        let body = {};
        if (!tea_util_1.default.isUnset(request.actionList)) {
            body["actionList"] = request.actionList;
        }
        if (!tea_util_1.default.isUnset(request.bizCategoryId)) {
            body["bizCategoryId"] = request.bizCategoryId;
        }
        if (!tea_util_1.default.isUnset(request.contentFieldList)) {
            body["contentFieldList"] = request.contentFieldList;
        }
        if (!tea_util_1.default.isUnset(request.creatorId)) {
            body["creatorId"] = request.creatorId;
        }
        if (!tea_util_1.default.isUnset(request.description)) {
            body["description"] = request.description;
        }
        if (!tea_util_1.default.isUnset(request.detailUrl)) {
            body["detailUrl"] = request.detailUrl;
        }
        if (!tea_util_1.default.isUnset(request.dueTime)) {
            body["dueTime"] = request.dueTime;
        }
        if (!tea_util_1.default.isUnset(request.executorIds)) {
            body["executorIds"] = request.executorIds;
        }
        if (!tea_util_1.default.isUnset(request.isOnlyShowExecutor)) {
            body["isOnlyShowExecutor"] = request.isOnlyShowExecutor;
        }
        if (!tea_util_1.default.isUnset(request.notifyConfigs)) {
            body["notifyConfigs"] = request.notifyConfigs;
        }
        if (!tea_util_1.default.isUnset(request.participantIds)) {
            body["participantIds"] = request.participantIds;
        }
        if (!tea_util_1.default.isUnset(request.priority)) {
            body["priority"] = request.priority;
        }
        if (!tea_util_1.default.isUnset(request.remindNotifyConfigs)) {
            body["remindNotifyConfigs"] = request.remindNotifyConfigs;
        }
        if (!tea_util_1.default.isUnset(request.reminderTimeStamp)) {
            body["reminderTimeStamp"] = request.reminderTimeStamp;
        }
        if (!tea_util_1.default.isUnset(request.sourceId)) {
            body["sourceId"] = request.sourceId;
        }
        if (!tea_util_1.default.isUnset(request.subject)) {
            body["subject"] = request.subject;
        }
        if (!tea_util_1.default.isUnset(request.thirdExtension)) {
            body["thirdExtension"] = request.thirdExtension;
        }
        if (!tea_util_1.default.isUnset(request.todoType)) {
            body["todoType"] = request.todoType;
        }
        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: "CreateTodoTask",
            version: "todo_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/todo/users/${unionId}/tasks`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new CreateTodoTaskResponse({}));
    }
    /**
     * 创建待办
     *
     * @param request - CreateTodoTaskRequest
     * @returns CreateTodoTaskResponse
     */
    async createTodoTask(unionId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new CreateTodoTaskHeaders({});
        return await this.createTodoTaskWithOptions(unionId, request, headers, runtime);
    }
    /**
     * 创建待办卡片类型配置
     *
     * @param request - CreateTodoTypeConfigRequest
     * @param headers - CreateTodoTypeConfigHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns CreateTodoTypeConfigResponse
     */
    async createTodoTypeConfigWithOptions(unionId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.operatorId)) {
            query["operatorId"] = request.operatorId;
        }
        let body = {};
        if (!tea_util_1.default.isUnset(request.actionList)) {
            body["actionList"] = request.actionList;
        }
        if (!tea_util_1.default.isUnset(request.cardType)) {
            body["cardType"] = request.cardType;
        }
        if (!tea_util_1.default.isUnset(request.contentFieldList)) {
            body["contentFieldList"] = request.contentFieldList;
        }
        if (!tea_util_1.default.isUnset(request.description)) {
            body["description"] = request.description;
        }
        if (!tea_util_1.default.isUnset(request.icon)) {
            body["icon"] = request.icon;
        }
        if (!tea_util_1.default.isUnset(request.pcDetailUrlOpenMode)) {
            body["pcDetailUrlOpenMode"] = request.pcDetailUrlOpenMode;
        }
        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: "CreateTodoTypeConfig",
            version: "todo_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/todo/users/${unionId}/configs/types`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new CreateTodoTypeConfigResponse({}));
    }
    /**
     * 创建待办卡片类型配置
     *
     * @param request - CreateTodoTypeConfigRequest
     * @returns CreateTodoTypeConfigResponse
     */
    async createTodoTypeConfig(unionId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new CreateTodoTypeConfigHeaders({});
        return await this.createTodoTypeConfigWithOptions(unionId, request, headers, runtime);
    }
    /**
     * 删除待办
     *
     * @param request - DeleteTodoTaskRequest
     * @param headers - DeleteTodoTaskHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns DeleteTodoTaskResponse
     */
    async deleteTodoTaskWithOptions(unionId, taskId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.operatorId)) {
            query["operatorId"] = request.operatorId;
        }
        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: "DeleteTodoTask",
            version: "todo_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/todo/users/${unionId}/tasks/${taskId}`,
            method: "DELETE",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new DeleteTodoTaskResponse({}));
    }
    /**
     * 删除待办
     *
     * @param request - DeleteTodoTaskRequest
     * @returns DeleteTodoTaskResponse
     */
    async deleteTodoTask(unionId, taskId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new DeleteTodoTaskHeaders({});
        return await this.deleteTodoTaskWithOptions(unionId, taskId, request, headers, runtime);
    }
    /**
     * 查询待办
     *
     * @param headers - GetTodoTaskHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetTodoTaskResponse
     */
    async getTodoTaskWithOptions(unionId, 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: "GetTodoTask",
            version: "todo_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/todo/users/${unionId}/tasks/${taskId}`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetTodoTaskResponse({}));
    }
    /**
     * 查询待办
     * @returns GetTodoTaskResponse
     */
    async getTodoTask(unionId, taskId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetTodoTaskHeaders({});
        return await this.getTodoTaskWithOptions(unionId, taskId, headers, runtime);
    }
    /**
     * 根据sourceId查询待办详情
     *
     * @param headers - GetTodoTaskBySourceIdHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetTodoTaskBySourceIdResponse
     */
    async getTodoTaskBySourceIdWithOptions(unionId, sourceId, 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: "GetTodoTaskBySourceId",
            version: "todo_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/todo/users/${unionId}/tasks/sources/${sourceId}`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetTodoTaskBySourceIdResponse({}));
    }
    /**
     * 根据sourceId查询待办详情
     * @returns GetTodoTaskBySourceIdResponse
     */
    async getTodoTaskBySourceId(unionId, sourceId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetTodoTaskBySourceIdHeaders({});
        return await this.getTodoTaskBySourceIdWithOptions(unionId, sourceId, headers, runtime);
    }
    /**
     * 专属钉根据待办ID查询待办详情
     *
     * @param headers - GetTodoTaskDetailHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetTodoTaskDetailResponse
     */
    async getTodoTaskDetailWithOptions(taskId, unionId, 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: "GetTodoTaskDetail",
            version: "todo_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/todo/exclusive/users/${unionId}/tasks/${taskId}`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetTodoTaskDetailResponse({}));
    }
    /**
     * 专属钉根据待办ID查询待办详情
     * @returns GetTodoTaskDetailResponse
     */
    async getTodoTaskDetail(taskId, unionId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetTodoTaskDetailHeaders({});
        return await this.getTodoTaskDetailWithOptions(taskId, unionId, headers, runtime);
    }
    /**
     * 根据id获取待办卡片类型配置
     *
     * @param headers - GetTodoTypeConfigHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetTodoTypeConfigResponse
     */
    async getTodoTypeConfigWithOptions(unionId, cardTypeId, 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: "GetTodoTypeConfig",
            version: "todo_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/todo/users/${unionId}/configs/types/${cardTypeId}`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetTodoTypeConfigResponse({}));
    }
    /**
     * 根据id获取待办卡片类型配置
     * @returns GetTodoTypeConfigResponse
     */
    async getTodoTypeConfig(unionId, cardTypeId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetTodoTypeConfigHeaders({});
        return await this.getTodoTypeConfigWithOptions(unionId, cardTypeId, headers, runtime);
    }
    /**
     * 查询待办应用下所有二级分类
     *
     * @param headers - ListAllBizCategoryHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ListAllBizCategoryResponse
     */
    async listAllBizCategoryWithOptions(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: "ListAllBizCategory",
            version: "todo_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/todo/apps/allBizcategories/list`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new ListAllBizCategoryResponse({}));
    }
    /**
     * 查询待办应用下所有二级分类
     * @returns ListAllBizCategoryResponse
     */
    async listAllBizCategory() {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new ListAllBizCategoryHeaders({});
        return await this.listAllBizCategoryWithOptions(headers, runtime);
    }
    /**
     * 查询企业配置
     *
     * @param headers - QueryOrgConfigHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns QueryOrgConfigResponse
     */
    async queryOrgConfigWithOptions(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: "QueryOrgConfig",
            version: "todo_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/todo/organizations/configs`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new QueryOrgConfigResponse({}));
    }
    /**
     * 查询企业配置
     * @returns QueryOrgConfigResponse
     */
    async queryOrgConfig() {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new QueryOrgConfigHeaders({});
        return await this.queryOrgConfigWithOptions(headers, runtime);
    }
    /**
     * 查询用户企业类型待办列表，支持查询当前企业的一方应用、三方应用、自建应用产生的工作待办数据
     *
     * @param request - QueryOrgTodoByUserRequest
     * @param headers - QueryOrgTodoByUserHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns QueryOrgTodoByUserResponse
     */
    async queryOrgTodoByUserWithOptions(unionId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.fromDueTime)) {
            body["fromDueTime"] = request.fromDueTime;
        }
        if (!tea_util_1.default.isUnset(request.isDone)) {
            body["isDone"] = request.isDone;
        }
        if (!tea_util_1.default.isUnset(request.maxResults)) {
            body["maxResults"] = request.maxResults;
        }
        if (!tea_util_1.default.isUnset(request.needPersonalTodo)) {
            body["needPersonalTodo"] = request.needPersonalTodo;
        }
        if (!tea_util_1.default.isUnset(request.nextToken)) {
            body["nextToken"] = request.nextToken;
        }
        if (!tea_util_1.default.isUnset(request.orderBy)) {
            body["orderBy"] = request.orderBy;
        }
        if (!tea_util_1.default.isUnset(request.orderDirection)) {
            body["orderDirection"] = request.orderDirection;
        }
        if (!tea_util_1.default.isUnset(request.roleTypes)) {
            body["roleTypes"] = request.roleTypes;
        }
        if (!tea_util_1.default.isUnset(request.subject)) {
            body["subject"] = request.subject;
        }
        if (!tea_util_1.default.isUnset(request.toDueTime)) {
            body["toDueTime"] = request.toDueTime;
        }
        if (!tea_util_1.default.isUnset(request.todoType)) {
            body["todoType"] = request.todoType;
        }
        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: "QueryOrgTodoByUser",
            version: "todo_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/todo/users/${unionId}/organizations/tasks/query`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new QueryOrgTodoByUserResponse({}));
    }
    /**
     * 查询用户企业类型待办列表，支持查询当前企业的一方应用、三方应用、自建应用产生的工作待办数据
     *
     * @param request - QueryOrgTodoByUserRequest
     * @returns QueryOrgTodoByUserResponse
     */
    async queryOrgTodoByUser(unionId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new QueryOrgTodoByUserHeaders({});
        return await this.queryOrgTodoByUserWithOptions(unionId, request, headers, runtime);
    }
    /**
     * 查询企业下用户待办列表
     *
     * @param request - QueryOrgTodoTasksRequest
     * @param headers - QueryOrgTodoTasksHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns QueryOrgTodoTasksResponse
     */
    async queryOrgTodoTasksWithOptions(unionId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.isDone)) {
            body["isDone"] = request.isDone;
        }
        if (!tea_util_1.default.isUnset(request.nextToken)) {
            body["nextToken"] = request.nextToken;
        }
        if (!tea_util_1.default.isUnset(request.roleTypes)) {
            body["roleTypes"] = request.roleTypes;
        }
        if (!tea_util_1.default.isUnset(request.todoType)) {
            body["todoType"] = request.todoType;
        }
        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: "QueryOrgTodoTasks",
            version: "todo_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/todo/users/${unionId}/org/tasks/query`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new QueryOrgTodoTasksResponse({}));
    }
    /**
     * 查询企业下用户待办列表
     *
     * @param request - QueryOrgTodoTasksRequest
     * @returns QueryOrgTodoTasksResponse
     */
    async queryOrgTodoTasks(unionId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new QueryOrgTodoTasksHeaders({});
        return await this.queryOrgTodoTasksWithOptions(unionId, request, headers, runtime);
    }
    /**
     * 查询用户待办列表
     *
     * @param request - QueryTodoTasksRequest
     * @param headers - QueryTodoTasksHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns QueryTodoTasksResponse
     */
    async queryTodoTasksWithOptions(unionId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.category)) {
            body["category"] = request.category;
        }
        if (!tea_util_1.default.isUnset(request.fromDueTime)) {
            body["fromDueTime"] = request.fromDueTime;
        }
        if (!tea_util_1.default.isUnset(request.isDone)) {
            body["isDone"] = request.isDone;
        }
        if (!tea_util_1.default.isUnset(request.isRecycled)) {
            body["isRecycled"] = request.isRecycled;
        }
        if (!tea_util_1.default.isUnset(request.nextToken)) {
            body["nextToken"] = request.nextToken;
        }
        if (!tea_util_1.default.isUnset(request.orderBy)) {
            body["orderBy"] = request.orderBy;
        }
        if (!tea_util_1.default.isUnset(request.orderDirection)) {
            body["orderDirection"] = request.orderDirection;
        }
        if (!tea_util_1.default.isUnset(request.roleTypes)) {
            body["roleTypes"] = request.roleTypes;
        }
        if (!tea_util_1.default.isUnset(request.toDueTime)) {
            body["toDueTime"] = request.toDueTime;
        }
        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: "QueryTodoTasks",
            version: "todo_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/todo/users/${unionId}/tasks/list`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new QueryTodoTasksResponse({}));
    }
    /**
     * 查询用户待办列表
     *
     * @param request - QueryTodoTasksRequest
     * @returns QueryTodoTasksResponse
     */
    async queryTodoTasks(unionId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new QueryTodoTasksHeaders({});
        return await this.queryTodoTasksWithOptions(unionId, request, headers, runtime);
    }
    /**
     * 删除二级分类
     *
     * @param request - RemoveBizCategoryRequest
     * @param headers - RemoveBizCategoryHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns RemoveBizCategoryResponse
     */
    async removeBizCategoryWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.bizCategoryId)) {
            query["bizCategoryId"] = request.bizCategoryId;
        }
        if (!tea_util_1.default.isUnset(request.operatorId)) {
            query["operatorId"] = request.operatorId;
        }
        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: "RemoveBizCategory",
            version: "todo_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/todo/apps/bizcategories`,
            method: "DELETE",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new RemoveBizCategoryResponse({}));
    }
    /**
     * 删除二级分类
     *
     * @param request - RemoveBizCategoryRequest
     * @returns RemoveBizCategoryResponse
     */
    async removeBizCategory(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new RemoveBizCategoryHeaders({});
        return await this.removeBizCategoryWithOptions(request, headers, runtime);
    }
    /**
     * 保存二级分类
     *
     * @param request - SetBizCategoryRequest
     * @param headers - SetBizCategoryHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns SetBizCategoryResponse
     */
    async setBizCategoryWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.bizCategoryId)) {
            query["bizCategoryId"] = request.bizCategoryId;
        }
        if (!tea_util_1.default.isUnset(request.description)) {
            query["description"] = request.description;
        }
        if (!tea_util_1.default.isUnset(request.name)) {
            query["name"] = request.name;
        }
        if (!tea_util_1.default.isUnset(request.operatorId)) {
            query["operatorId"] = request.operatorId;
        }
        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: "SetBizCategory",
            version: "todo_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/todo/apps/bizcategories/save`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new SetBizCategoryResponse({}));
    }
    /**
     * 保存二级分类
     *
     * @param request - SetBizCategoryRequest
     * @returns SetBizCategoryResponse
     */
    async setBizCategory(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new SetBizCategoryHeaders({});
        return await this.setBizCategoryWithOptions(request, headers, runtime);
    }
    /**
     * 保存企业配置
     *
     * @param request - SetOrgConfigRequest
     * @param headers - SetOrgConfigHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns SetOrgConfigResponse
     */
    async setOrgConfigWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.appDisplayStyle)) {
            body["appDisplayStyle"] = request.appDisplayStyle;
        }
        if (!tea_util_1.default.isUnset(request.homepageCatalogs)) {
            body["homepageCatalogs"] = request.homepageCatalogs;
        }
        if (!tea_util_1.default.isUnset(request.operatorId)) {
            body["operatorId"] = request.operatorId;
        }
        if (!tea_util_1.default.isUnset(request.status)) {
            body["status"] = request.status;
        }
        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: "SetOrgConfig",
            version: "todo_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/todo/organizations/configs/save`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new SetOrgConfigResponse({}));
    }
    /**
     * 保存企业配置
     *
     * @param request - SetOrgConfigRequest
     * @returns SetOrgConfigResponse
     */
    async setOrgConfig(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new SetOrgConfigHeaders({});
        return await this.setOrgConfigWithOptions(request, headers, runtime);
    }
    /**
     * 更新待办
     *
     * @param request - UpdateTodoTaskRequest
     * @param headers - UpdateTodoTaskHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateTodoTaskResponse
     */
    async updateTodoTaskWithOptions(unionId, taskId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.operatorId)) {
            query["operatorId"] = request.operatorId;
        }
        let body = {};
        if (!tea_util_1.default.isUnset(request.description)) {
            body["description"] = request.description;
        }
        if (!tea_util_1.default.isUnset(request.done)) {
            body["done"] = request.done;
        }
        if (!tea_util_1.default.isUnset(request.dueTime)) {
            body["dueTime"] = request.dueTime;
        }
        if (!tea_util_1.default.isUnset(request.executorIds)) {
            body["executorIds"] = request.executorIds;
        }
        if (!tea_util_1.default.isUnset(request.participantIds)) {
            body["participantIds"] = request.participantIds;
        }
        if (!tea_util_1.default.isUnset(request.subject)) {
            body["subject"] = request.subject;
        }
        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: "UpdateTodoTask",
            version: "todo_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/todo/users/${unionId}/tasks/${taskId}`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateTodoTaskResponse({}));
    }
    /**
     * 更新待办
     *
     * @param request - UpdateTodoTaskRequest
     * @returns UpdateTodoTaskResponse
     */
    async updateTodoTask(unionId, taskId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateTodoTaskHeaders({});
        return await this.updateTodoTaskWithOptions(unionId, taskId, request, headers, runtime);
    }
    /**
     * 更新待办执行者状态
     *
     * @param request - UpdateTodoTaskExecutorStatusRequest
     * @param headers - UpdateTodoTaskExecutorStatusHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateTodoTaskExecutorStatusResponse
     */
    async updateTodoTaskExecutorStatusWithOptions(unionId, taskId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.operatorId)) {
            query["operatorId"] = request.operatorId;
        }
        let body = {};
        if (!tea_util_1.default.isUnset(request.executorStatusList)) {
            body["executorStatusList"] = request.executorStatusList;
        }
        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: "UpdateTodoTaskExecutorStatus",
            version: "todo_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/todo/users/${unionId}/tasks/${taskId}/executorStatus`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateTodoTaskExecutorStatusResponse({}));
    }
    /**
     * 更新待办执行者状态
     *
     * @param request - UpdateTodoTaskExecutorStatusRequest
     * @returns UpdateTodoTaskExecutorStatusResponse
     */
    async updateTodoTaskExecutorStatus(unionId, taskId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateTodoTaskExecutorStatusHeaders({});
        return await this.updateTodoTaskExecutorStatusWithOptions(unionId, taskId, request, headers, runtime);
    }
    /**
     * 更新待办卡片类型配置
     *
     * @param request - UpdateTodoTypeConfigRequest
     * @param headers - UpdateTodoTypeConfigHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateTodoTypeConfigResponse
     */
    async updateTodoTypeConfigWithOptions(unionId, cardTypeId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.operatorId)) {
            query["operatorId"] = request.operatorId;
        }
        let body = {};
        if (!tea_util_1.default.isUnset(request.actionList)) {
            body["actionList"] = request.actionList;
        }
        if (!tea_util_1.default.isUnset(request.cardType)) {
            body["cardType"] = request.cardType;
        }
        if (!tea_util_1.default.isUnset(request.contentFieldList)) {
            body["contentFieldList"] = request.contentFieldList;
        }
        if (!tea_util_1.default.isUnset(request.description)) {
            body["description"] = request.description;
        }
        if (!tea_util_1.default.isUnset(request.icon)) {
            body["icon"] = request.icon;
        }
        if (!tea_util_1.default.isUnset(request.pcDetailUrlOpenMode)) {
            body["pcDetailUrlOpenMode"] = request.pcDetailUrlOpenMode;
        }
        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: "UpdateTodoTypeConfig",
            version: "todo_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/todo/users/${unionId}/configs/types/${cardTypeId}`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateTodoTypeConfigResponse({}));
    }
    /**
     * 更新待办卡片类型配置
     *
     * @param request - UpdateTodoTypeConfigRequest
     * @returns UpdateTodoTypeConfigResponse
     */
    async updateTodoTypeConfig(unionId, cardTypeId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateTodoTypeConfigHeaders({});
        return await this.updateTodoTypeConfigWithOptions(unionId, cardTypeId, request, headers, runtime);
    }
}
exports.default = Client;
//# sourceMappingURL=client.js.map