"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.PrivateChatQueryRequest = exports.PrivateChatQueryHeaders = exports.OrgGroupSendResponse = exports.OrgGroupSendResponseBody = exports.OrgGroupSendRequest = exports.OrgGroupSendHeaders = exports.OrgGroupRecallResponse = exports.OrgGroupRecallResponseBody = exports.OrgGroupRecallRequest = exports.OrgGroupRecallHeaders = exports.OrgGroupQueryResponse = exports.OrgGroupQueryResponseBody = exports.OrgGroupQueryRequest = exports.OrgGroupQueryHeaders = exports.ManageSingleChatRobotStatusResponse = exports.ManageSingleChatRobotStatusResponseBody = exports.ManageSingleChatRobotStatusRequest = exports.ManageSingleChatRobotStatusHeaders = exports.GetBotListInGroupResponse = exports.GetBotListInGroupResponseBody = exports.GetBotListInGroupRequest = exports.GetBotListInGroupHeaders = exports.ExecuteRobotAiSkillResponse = exports.ExecuteRobotAiSkillResponseBody = exports.ExecuteRobotAiSkillRequest = exports.ExecuteRobotAiSkillHeaders = exports.ClearRobotPluginResponse = exports.ClearRobotPluginResponseBody = exports.ClearRobotPluginRequest = exports.ClearRobotPluginHeaders = exports.BatchSendOTOResponse = exports.BatchSendOTOResponseBody = exports.BatchSendOTORequest = exports.BatchSendOTOHeaders = exports.BatchRecallPrivateChatResponse = exports.BatchRecallPrivateChatResponseBody = exports.BatchRecallPrivateChatRequest = exports.BatchRecallPrivateChatHeaders = exports.BatchRecallOTOResponse = exports.BatchRecallOTOResponseBody = exports.BatchRecallOTORequest = exports.BatchRecallOTOHeaders = exports.BatchRecallGroupResponse = exports.BatchRecallGroupResponseBody = exports.BatchRecallGroupRequest = exports.BatchRecallGroupHeaders = exports.BatchOTOQueryResponse = exports.BatchOTOQueryResponseBody = exports.BatchOTOQueryRequest = exports.BatchOTOQueryHeaders = void 0;
exports.SetRobotPluginRequestPluginInfoList = exports.QueryRobotPluginResponseBodyPluginInfoList = exports.QueryRobotDingReadStatusResponseBodyResult = exports.QueryRobotDingReadStatusResponseBodyResultRobotDingReadInfoList = exports.OrgGroupQueryResponseBodyReadUsers = exports.GetBotListInGroupResponseBodyChatbotInstanceVOList = exports.BatchOTOQueryResponseBodyMessageReadInfoList = exports.UpdateInstalledRobotResponse = exports.UpdateInstalledRobotResponseBody = exports.UpdateInstalledRobotRequest = exports.UpdateInstalledRobotHeaders = exports.SetRobotPluginResponse = exports.SetRobotPluginResponseBody = exports.SetRobotPluginRequest = exports.SetRobotPluginHeaders = exports.SendRobotDingMessageResponse = exports.SendRobotDingMessageResponseBody = exports.SendRobotDingMessageRequest = exports.SendRobotDingMessageHeaders = exports.RobotSendDingResponse = exports.RobotSendDingResponseBody = exports.RobotSendDingRequest = exports.RobotSendDingHeaders = exports.RobotRecallDingResponse = exports.RobotRecallDingResponseBody = exports.RobotRecallDingRequest = exports.RobotRecallDingHeaders = exports.RobotMessageFileDownloadResponse = exports.RobotMessageFileDownloadResponseBody = exports.RobotMessageFileDownloadRequest = exports.RobotMessageFileDownloadHeaders = exports.QueryRobotPluginResponse = exports.QueryRobotPluginResponseBody = exports.QueryRobotPluginRequest = exports.QueryRobotPluginHeaders = exports.QueryRobotDingReadStatusResponse = exports.QueryRobotDingReadStatusResponseBody = exports.QueryRobotDingReadStatusRequest = exports.QueryRobotDingReadStatusHeaders = exports.QueryBotInstanceInGroupInfoResponse = exports.QueryBotInstanceInGroupInfoResponseBody = exports.QueryBotInstanceInGroupInfoRequest = exports.QueryBotInstanceInGroupInfoHeaders = exports.PrivateChatSendResponse = exports.PrivateChatSendResponseBody = exports.PrivateChatSendRequest = exports.PrivateChatSendHeaders = exports.PrivateChatQueryResponse = exports.PrivateChatQueryResponseBody = 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 BatchOTOQueryHeaders 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.BatchOTOQueryHeaders = BatchOTOQueryHeaders;
class BatchOTOQueryRequest extends $tea.Model {
    static names() {
        return {
            processQueryKey: 'processQueryKey',
            robotCode: 'robotCode',
        };
    }
    static types() {
        return {
            processQueryKey: 'string',
            robotCode: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchOTOQueryRequest = BatchOTOQueryRequest;
class BatchOTOQueryResponseBody extends $tea.Model {
    static names() {
        return {
            messageReadInfoList: 'messageReadInfoList',
            sendStatus: 'sendStatus',
        };
    }
    static types() {
        return {
            messageReadInfoList: { 'type': 'array', 'itemType': BatchOTOQueryResponseBodyMessageReadInfoList },
            sendStatus: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchOTOQueryResponseBody = BatchOTOQueryResponseBody;
class BatchOTOQueryResponse 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: BatchOTOQueryResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchOTOQueryResponse = BatchOTOQueryResponse;
class BatchRecallGroupHeaders 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.BatchRecallGroupHeaders = BatchRecallGroupHeaders;
class BatchRecallGroupRequest extends $tea.Model {
    static names() {
        return {
            chatbotId: 'chatbotId',
            openConversationId: 'openConversationId',
            processQueryKeys: 'processQueryKeys',
        };
    }
    static types() {
        return {
            chatbotId: 'string',
            openConversationId: 'string',
            processQueryKeys: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchRecallGroupRequest = BatchRecallGroupRequest;
class BatchRecallGroupResponseBody extends $tea.Model {
    static names() {
        return {
            failedResult: 'failedResult',
            successResult: 'successResult',
        };
    }
    static types() {
        return {
            failedResult: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            successResult: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchRecallGroupResponseBody = BatchRecallGroupResponseBody;
class BatchRecallGroupResponse 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: BatchRecallGroupResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchRecallGroupResponse = BatchRecallGroupResponse;
class BatchRecallOTOHeaders 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.BatchRecallOTOHeaders = BatchRecallOTOHeaders;
class BatchRecallOTORequest extends $tea.Model {
    static names() {
        return {
            processQueryKeys: 'processQueryKeys',
            robotCode: 'robotCode',
        };
    }
    static types() {
        return {
            processQueryKeys: { 'type': 'array', 'itemType': 'string' },
            robotCode: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchRecallOTORequest = BatchRecallOTORequest;
class BatchRecallOTOResponseBody extends $tea.Model {
    static names() {
        return {
            failedResult: 'failedResult',
            successResult: 'successResult',
        };
    }
    static types() {
        return {
            failedResult: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            successResult: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchRecallOTOResponseBody = BatchRecallOTOResponseBody;
class BatchRecallOTOResponse 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: BatchRecallOTOResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchRecallOTOResponse = BatchRecallOTOResponse;
class BatchRecallPrivateChatHeaders 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.BatchRecallPrivateChatHeaders = BatchRecallPrivateChatHeaders;
class BatchRecallPrivateChatRequest extends $tea.Model {
    static names() {
        return {
            openConversationId: 'openConversationId',
            processQueryKeys: 'processQueryKeys',
            robotCode: 'robotCode',
        };
    }
    static types() {
        return {
            openConversationId: 'string',
            processQueryKeys: { 'type': 'array', 'itemType': 'string' },
            robotCode: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchRecallPrivateChatRequest = BatchRecallPrivateChatRequest;
class BatchRecallPrivateChatResponseBody extends $tea.Model {
    static names() {
        return {
            failedResult: 'failedResult',
            successResult: 'successResult',
        };
    }
    static types() {
        return {
            failedResult: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            successResult: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchRecallPrivateChatResponseBody = BatchRecallPrivateChatResponseBody;
class BatchRecallPrivateChatResponse 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: BatchRecallPrivateChatResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchRecallPrivateChatResponse = BatchRecallPrivateChatResponse;
class BatchSendOTOHeaders 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.BatchSendOTOHeaders = BatchSendOTOHeaders;
class BatchSendOTORequest extends $tea.Model {
    static names() {
        return {
            msgKey: 'msgKey',
            msgParam: 'msgParam',
            robotCode: 'robotCode',
            userIds: 'userIds',
        };
    }
    static types() {
        return {
            msgKey: 'string',
            msgParam: 'string',
            robotCode: 'string',
            userIds: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchSendOTORequest = BatchSendOTORequest;
class BatchSendOTOResponseBody extends $tea.Model {
    static names() {
        return {
            flowControlledStaffIdList: 'flowControlledStaffIdList',
            invalidStaffIdList: 'invalidStaffIdList',
            processQueryKey: 'processQueryKey',
        };
    }
    static types() {
        return {
            flowControlledStaffIdList: { 'type': 'array', 'itemType': 'string' },
            invalidStaffIdList: { 'type': 'array', 'itemType': 'string' },
            processQueryKey: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchSendOTOResponseBody = BatchSendOTOResponseBody;
class BatchSendOTOResponse 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: BatchSendOTOResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchSendOTOResponse = BatchSendOTOResponse;
class ClearRobotPluginHeaders 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.ClearRobotPluginHeaders = ClearRobotPluginHeaders;
class ClearRobotPluginRequest extends $tea.Model {
    static names() {
        return {
            robotCode: 'robotCode',
        };
    }
    static types() {
        return {
            robotCode: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ClearRobotPluginRequest = ClearRobotPluginRequest;
class ClearRobotPluginResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ClearRobotPluginResponseBody = ClearRobotPluginResponseBody;
class ClearRobotPluginResponse 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: ClearRobotPluginResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ClearRobotPluginResponse = ClearRobotPluginResponse;
class ExecuteRobotAiSkillHeaders 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.ExecuteRobotAiSkillHeaders = ExecuteRobotAiSkillHeaders;
class ExecuteRobotAiSkillRequest extends $tea.Model {
    static names() {
        return {
            context: 'context',
            input: 'input',
            robotCode: 'robotCode',
            skillId: 'skillId',
        };
    }
    static types() {
        return {
            context: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
            input: 'string',
            robotCode: 'string',
            skillId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ExecuteRobotAiSkillRequest = ExecuteRobotAiSkillRequest;
class ExecuteRobotAiSkillResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
            skillExecuteId: 'skillExecuteId',
        };
    }
    static types() {
        return {
            result: 'string',
            skillExecuteId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ExecuteRobotAiSkillResponseBody = ExecuteRobotAiSkillResponseBody;
class ExecuteRobotAiSkillResponse 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: ExecuteRobotAiSkillResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ExecuteRobotAiSkillResponse = ExecuteRobotAiSkillResponse;
class GetBotListInGroupHeaders 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.GetBotListInGroupHeaders = GetBotListInGroupHeaders;
class GetBotListInGroupRequest extends $tea.Model {
    static names() {
        return {
            openConversationId: 'openConversationId',
        };
    }
    static types() {
        return {
            openConversationId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetBotListInGroupRequest = GetBotListInGroupRequest;
class GetBotListInGroupResponseBody extends $tea.Model {
    static names() {
        return {
            chatbotInstanceVOList: 'chatbotInstanceVOList',
        };
    }
    static types() {
        return {
            chatbotInstanceVOList: { 'type': 'array', 'itemType': GetBotListInGroupResponseBodyChatbotInstanceVOList },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetBotListInGroupResponseBody = GetBotListInGroupResponseBody;
class GetBotListInGroupResponse 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: GetBotListInGroupResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetBotListInGroupResponse = GetBotListInGroupResponse;
class ManageSingleChatRobotStatusHeaders 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.ManageSingleChatRobotStatusHeaders = ManageSingleChatRobotStatusHeaders;
class ManageSingleChatRobotStatusRequest extends $tea.Model {
    static names() {
        return {
            robotCode: 'robotCode',
            status: 'status',
        };
    }
    static types() {
        return {
            robotCode: 'string',
            status: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ManageSingleChatRobotStatusRequest = ManageSingleChatRobotStatusRequest;
class ManageSingleChatRobotStatusResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ManageSingleChatRobotStatusResponseBody = ManageSingleChatRobotStatusResponseBody;
class ManageSingleChatRobotStatusResponse 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: ManageSingleChatRobotStatusResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ManageSingleChatRobotStatusResponse = ManageSingleChatRobotStatusResponse;
class OrgGroupQueryHeaders 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.OrgGroupQueryHeaders = OrgGroupQueryHeaders;
class OrgGroupQueryRequest extends $tea.Model {
    static names() {
        return {
            maxResults: 'maxResults',
            nextToken: 'nextToken',
            openConversationId: 'openConversationId',
            processQueryKey: 'processQueryKey',
            robotCode: 'robotCode',
            token: 'token',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            nextToken: 'string',
            openConversationId: 'string',
            processQueryKey: 'string',
            robotCode: 'string',
            token: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.OrgGroupQueryRequest = OrgGroupQueryRequest;
class OrgGroupQueryResponseBody extends $tea.Model {
    static names() {
        return {
            hasMore: 'hasMore',
            nextToken: 'nextToken',
            readUserIds: 'readUserIds',
            readUsers: 'readUsers',
            sendStatus: 'sendStatus',
        };
    }
    static types() {
        return {
            hasMore: 'boolean',
            nextToken: 'string',
            readUserIds: { 'type': 'array', 'itemType': 'string' },
            readUsers: { 'type': 'array', 'itemType': OrgGroupQueryResponseBodyReadUsers },
            sendStatus: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.OrgGroupQueryResponseBody = OrgGroupQueryResponseBody;
class OrgGroupQueryResponse 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: OrgGroupQueryResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.OrgGroupQueryResponse = OrgGroupQueryResponse;
class OrgGroupRecallHeaders 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.OrgGroupRecallHeaders = OrgGroupRecallHeaders;
class OrgGroupRecallRequest extends $tea.Model {
    static names() {
        return {
            openConversationId: 'openConversationId',
            processQueryKeys: 'processQueryKeys',
            robotCode: 'robotCode',
        };
    }
    static types() {
        return {
            openConversationId: 'string',
            processQueryKeys: { 'type': 'array', 'itemType': 'string' },
            robotCode: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.OrgGroupRecallRequest = OrgGroupRecallRequest;
class OrgGroupRecallResponseBody extends $tea.Model {
    static names() {
        return {
            failedResult: 'failedResult',
            successResult: 'successResult',
        };
    }
    static types() {
        return {
            failedResult: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            successResult: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.OrgGroupRecallResponseBody = OrgGroupRecallResponseBody;
class OrgGroupRecallResponse 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: OrgGroupRecallResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.OrgGroupRecallResponse = OrgGroupRecallResponse;
class OrgGroupSendHeaders 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.OrgGroupSendHeaders = OrgGroupSendHeaders;
class OrgGroupSendRequest extends $tea.Model {
    static names() {
        return {
            coolAppCode: 'coolAppCode',
            msgKey: 'msgKey',
            msgParam: 'msgParam',
            openConversationId: 'openConversationId',
            robotCode: 'robotCode',
            token: 'token',
        };
    }
    static types() {
        return {
            coolAppCode: 'string',
            msgKey: 'string',
            msgParam: 'string',
            openConversationId: 'string',
            robotCode: 'string',
            token: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.OrgGroupSendRequest = OrgGroupSendRequest;
class OrgGroupSendResponseBody extends $tea.Model {
    static names() {
        return {
            processQueryKey: 'processQueryKey',
        };
    }
    static types() {
        return {
            processQueryKey: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.OrgGroupSendResponseBody = OrgGroupSendResponseBody;
class OrgGroupSendResponse 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: OrgGroupSendResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.OrgGroupSendResponse = OrgGroupSendResponse;
class PrivateChatQueryHeaders 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.PrivateChatQueryHeaders = PrivateChatQueryHeaders;
class PrivateChatQueryRequest extends $tea.Model {
    static names() {
        return {
            maxResults: 'maxResults',
            nextToken: 'nextToken',
            openConversationId: 'openConversationId',
            processQueryKey: 'processQueryKey',
            robotCode: 'robotCode',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            nextToken: 'string',
            openConversationId: 'string',
            processQueryKey: 'string',
            robotCode: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PrivateChatQueryRequest = PrivateChatQueryRequest;
class PrivateChatQueryResponseBody extends $tea.Model {
    static names() {
        return {
            hasMore: 'hasMore',
            nextToken: 'nextToken',
            readUserIds: 'readUserIds',
            sendStatus: 'sendStatus',
        };
    }
    static types() {
        return {
            hasMore: 'boolean',
            nextToken: 'string',
            readUserIds: { 'type': 'array', 'itemType': 'string' },
            sendStatus: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PrivateChatQueryResponseBody = PrivateChatQueryResponseBody;
class PrivateChatQueryResponse 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: PrivateChatQueryResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PrivateChatQueryResponse = PrivateChatQueryResponse;
class PrivateChatSendHeaders 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.PrivateChatSendHeaders = PrivateChatSendHeaders;
class PrivateChatSendRequest extends $tea.Model {
    static names() {
        return {
            coolAppCode: 'coolAppCode',
            msgKey: 'msgKey',
            msgParam: 'msgParam',
            openConversationId: 'openConversationId',
            robotCode: 'robotCode',
        };
    }
    static types() {
        return {
            coolAppCode: 'string',
            msgKey: 'string',
            msgParam: 'string',
            openConversationId: 'string',
            robotCode: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PrivateChatSendRequest = PrivateChatSendRequest;
class PrivateChatSendResponseBody extends $tea.Model {
    static names() {
        return {
            processQueryKey: 'processQueryKey',
        };
    }
    static types() {
        return {
            processQueryKey: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PrivateChatSendResponseBody = PrivateChatSendResponseBody;
class PrivateChatSendResponse 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: PrivateChatSendResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PrivateChatSendResponse = PrivateChatSendResponse;
class QueryBotInstanceInGroupInfoHeaders 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.QueryBotInstanceInGroupInfoHeaders = QueryBotInstanceInGroupInfoHeaders;
class QueryBotInstanceInGroupInfoRequest extends $tea.Model {
    static names() {
        return {
            pageNumber: 'pageNumber',
            pageSize: 'pageSize',
            robotCode: 'robotCode',
        };
    }
    static types() {
        return {
            pageNumber: 'number',
            pageSize: 'number',
            robotCode: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryBotInstanceInGroupInfoRequest = QueryBotInstanceInGroupInfoRequest;
class QueryBotInstanceInGroupInfoResponseBody extends $tea.Model {
    static names() {
        return {
            hasMore: 'hasMore',
            openConversationIds: 'openConversationIds',
        };
    }
    static types() {
        return {
            hasMore: 'boolean',
            openConversationIds: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryBotInstanceInGroupInfoResponseBody = QueryBotInstanceInGroupInfoResponseBody;
class QueryBotInstanceInGroupInfoResponse 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: QueryBotInstanceInGroupInfoResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryBotInstanceInGroupInfoResponse = QueryBotInstanceInGroupInfoResponse;
class QueryRobotDingReadStatusHeaders 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.QueryRobotDingReadStatusHeaders = QueryRobotDingReadStatusHeaders;
class QueryRobotDingReadStatusRequest extends $tea.Model {
    static names() {
        return {
            openDingId: 'openDingId',
            robotCode: 'robotCode',
        };
    }
    static types() {
        return {
            openDingId: 'string',
            robotCode: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryRobotDingReadStatusRequest = QueryRobotDingReadStatusRequest;
class QueryRobotDingReadStatusResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
            success: 'success',
        };
    }
    static types() {
        return {
            result: QueryRobotDingReadStatusResponseBodyResult,
            success: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryRobotDingReadStatusResponseBody = QueryRobotDingReadStatusResponseBody;
class QueryRobotDingReadStatusResponse 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: QueryRobotDingReadStatusResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryRobotDingReadStatusResponse = QueryRobotDingReadStatusResponse;
class QueryRobotPluginHeaders 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.QueryRobotPluginHeaders = QueryRobotPluginHeaders;
class QueryRobotPluginRequest extends $tea.Model {
    static names() {
        return {
            robotCode: 'robotCode',
        };
    }
    static types() {
        return {
            robotCode: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryRobotPluginRequest = QueryRobotPluginRequest;
class QueryRobotPluginResponseBody extends $tea.Model {
    static names() {
        return {
            pluginInfoList: 'pluginInfoList',
        };
    }
    static types() {
        return {
            pluginInfoList: { 'type': 'array', 'itemType': QueryRobotPluginResponseBodyPluginInfoList },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryRobotPluginResponseBody = QueryRobotPluginResponseBody;
class QueryRobotPluginResponse 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: QueryRobotPluginResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryRobotPluginResponse = QueryRobotPluginResponse;
class RobotMessageFileDownloadHeaders 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.RobotMessageFileDownloadHeaders = RobotMessageFileDownloadHeaders;
class RobotMessageFileDownloadRequest extends $tea.Model {
    static names() {
        return {
            downloadCode: 'downloadCode',
            robotCode: 'robotCode',
        };
    }
    static types() {
        return {
            downloadCode: 'string',
            robotCode: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RobotMessageFileDownloadRequest = RobotMessageFileDownloadRequest;
class RobotMessageFileDownloadResponseBody extends $tea.Model {
    static names() {
        return {
            downloadUrl: 'downloadUrl',
        };
    }
    static types() {
        return {
            downloadUrl: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RobotMessageFileDownloadResponseBody = RobotMessageFileDownloadResponseBody;
class RobotMessageFileDownloadResponse 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: RobotMessageFileDownloadResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RobotMessageFileDownloadResponse = RobotMessageFileDownloadResponse;
class RobotRecallDingHeaders 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.RobotRecallDingHeaders = RobotRecallDingHeaders;
class RobotRecallDingRequest extends $tea.Model {
    static names() {
        return {
            openDingId: 'openDingId',
            robotCode: 'robotCode',
        };
    }
    static types() {
        return {
            openDingId: 'string',
            robotCode: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RobotRecallDingRequest = RobotRecallDingRequest;
class RobotRecallDingResponseBody extends $tea.Model {
    static names() {
        return {
            openDingId: 'openDingId',
        };
    }
    static types() {
        return {
            openDingId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RobotRecallDingResponseBody = RobotRecallDingResponseBody;
class RobotRecallDingResponse 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: RobotRecallDingResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RobotRecallDingResponse = RobotRecallDingResponse;
class RobotSendDingHeaders 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.RobotSendDingHeaders = RobotSendDingHeaders;
class RobotSendDingRequest extends $tea.Model {
    static names() {
        return {
            callVoice: 'callVoice',
            content: 'content',
            receiverUserIdList: 'receiverUserIdList',
            remindType: 'remindType',
            robotCode: 'robotCode',
        };
    }
    static types() {
        return {
            callVoice: 'string',
            content: 'string',
            receiverUserIdList: { 'type': 'array', 'itemType': 'string' },
            remindType: 'number',
            robotCode: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RobotSendDingRequest = RobotSendDingRequest;
class RobotSendDingResponseBody extends $tea.Model {
    static names() {
        return {
            failedList: 'failedList',
            openDingId: 'openDingId',
        };
    }
    static types() {
        return {
            failedList: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
            openDingId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RobotSendDingResponseBody = RobotSendDingResponseBody;
class RobotSendDingResponse 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: RobotSendDingResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RobotSendDingResponse = RobotSendDingResponse;
class SendRobotDingMessageHeaders 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.SendRobotDingMessageHeaders = SendRobotDingMessageHeaders;
class SendRobotDingMessageRequest extends $tea.Model {
    static names() {
        return {
            contentParams: 'contentParams',
            dingTemplateId: 'dingTemplateId',
            openConversationId: 'openConversationId',
            receiverUserIdList: 'receiverUserIdList',
            robotCode: 'robotCode',
        };
    }
    static types() {
        return {
            contentParams: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            dingTemplateId: 'string',
            openConversationId: 'string',
            receiverUserIdList: { 'type': 'array', 'itemType': 'string' },
            robotCode: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SendRobotDingMessageRequest = SendRobotDingMessageRequest;
class SendRobotDingMessageResponseBody extends $tea.Model {
    static names() {
        return {
            dingSendResultId: 'dingSendResultId',
        };
    }
    static types() {
        return {
            dingSendResultId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SendRobotDingMessageResponseBody = SendRobotDingMessageResponseBody;
class SendRobotDingMessageResponse 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: SendRobotDingMessageResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SendRobotDingMessageResponse = SendRobotDingMessageResponse;
class SetRobotPluginHeaders 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.SetRobotPluginHeaders = SetRobotPluginHeaders;
class SetRobotPluginRequest extends $tea.Model {
    static names() {
        return {
            pluginInfoList: 'pluginInfoList',
            robotCode: 'robotCode',
        };
    }
    static types() {
        return {
            pluginInfoList: { 'type': 'array', 'itemType': SetRobotPluginRequestPluginInfoList },
            robotCode: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SetRobotPluginRequest = SetRobotPluginRequest;
class SetRobotPluginResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SetRobotPluginResponseBody = SetRobotPluginResponseBody;
class SetRobotPluginResponse 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: SetRobotPluginResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SetRobotPluginResponse = SetRobotPluginResponse;
class UpdateInstalledRobotHeaders 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.UpdateInstalledRobotHeaders = UpdateInstalledRobotHeaders;
class UpdateInstalledRobotRequest extends $tea.Model {
    static names() {
        return {
            brief: 'brief',
            description: 'description',
            icon: 'icon',
            name: 'name',
            robotCode: 'robotCode',
            updateType: 'updateType',
        };
    }
    static types() {
        return {
            brief: 'string',
            description: 'string',
            icon: 'string',
            name: 'string',
            robotCode: 'string',
            updateType: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateInstalledRobotRequest = UpdateInstalledRobotRequest;
class UpdateInstalledRobotResponseBody extends $tea.Model {
    static names() {
        return {
            success: 'success',
        };
    }
    static types() {
        return {
            success: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateInstalledRobotResponseBody = UpdateInstalledRobotResponseBody;
class UpdateInstalledRobotResponse 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: UpdateInstalledRobotResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateInstalledRobotResponse = UpdateInstalledRobotResponse;
class BatchOTOQueryResponseBodyMessageReadInfoList extends $tea.Model {
    static names() {
        return {
            name: 'name',
            readStatus: 'readStatus',
            readTimestamp: 'readTimestamp',
            userId: 'userId',
        };
    }
    static types() {
        return {
            name: 'string',
            readStatus: 'string',
            readTimestamp: 'number',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchOTOQueryResponseBodyMessageReadInfoList = BatchOTOQueryResponseBodyMessageReadInfoList;
class GetBotListInGroupResponseBodyChatbotInstanceVOList extends $tea.Model {
    static names() {
        return {
            downloadIconURL: 'downloadIconURL',
            name: 'name',
            openRobotType: 'openRobotType',
            robotCode: 'robotCode',
        };
    }
    static types() {
        return {
            downloadIconURL: 'string',
            name: 'string',
            openRobotType: 'number',
            robotCode: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetBotListInGroupResponseBodyChatbotInstanceVOList = GetBotListInGroupResponseBodyChatbotInstanceVOList;
class OrgGroupQueryResponseBodyReadUsers extends $tea.Model {
    static names() {
        return {
            unionId: 'unionId',
            userId: 'userId',
        };
    }
    static types() {
        return {
            unionId: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.OrgGroupQueryResponseBodyReadUsers = OrgGroupQueryResponseBodyReadUsers;
class QueryRobotDingReadStatusResponseBodyResultRobotDingReadInfoList extends $tea.Model {
    static names() {
        return {
            readStatus: 'readStatus',
            userId: 'userId',
        };
    }
    static types() {
        return {
            readStatus: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryRobotDingReadStatusResponseBodyResultRobotDingReadInfoList = QueryRobotDingReadStatusResponseBodyResultRobotDingReadInfoList;
class QueryRobotDingReadStatusResponseBodyResult extends $tea.Model {
    static names() {
        return {
            robotDingReadInfoList: 'robotDingReadInfoList',
        };
    }
    static types() {
        return {
            robotDingReadInfoList: { 'type': 'array', 'itemType': QueryRobotDingReadStatusResponseBodyResultRobotDingReadInfoList },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryRobotDingReadStatusResponseBodyResult = QueryRobotDingReadStatusResponseBodyResult;
class QueryRobotPluginResponseBodyPluginInfoList extends $tea.Model {
    static names() {
        return {
            icon: 'icon',
            mobileUrl: 'mobileUrl',
            name: 'name',
            pcUrl: 'pcUrl',
        };
    }
    static types() {
        return {
            icon: 'string',
            mobileUrl: 'string',
            name: 'string',
            pcUrl: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.QueryRobotPluginResponseBodyPluginInfoList = QueryRobotPluginResponseBodyPluginInfoList;
class SetRobotPluginRequestPluginInfoList extends $tea.Model {
    static names() {
        return {
            icon: 'icon',
            mobileUrl: 'mobileUrl',
            name: 'name',
            pcUrl: 'pcUrl',
        };
    }
    static types() {
        return {
            icon: 'string',
            mobileUrl: 'string',
            name: 'string',
            pcUrl: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SetRobotPluginRequestPluginInfoList = SetRobotPluginRequestPluginInfoList;
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 - BatchOTOQueryRequest
     * @param headers - BatchOTOQueryHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns BatchOTOQueryResponse
     */
    async batchOTOQueryWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.processQueryKey)) {
            query["processQueryKey"] = request.processQueryKey;
        }
        if (!tea_util_1.default.isUnset(request.robotCode)) {
            query["robotCode"] = request.robotCode;
        }
        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: "BatchOTOQuery",
            version: "robot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/robot/oToMessages/readStatus`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new BatchOTOQueryResponse({}));
    }
    /**
     * 批量查询人与机器人会话机器人消息是否已读
     *
     * @param request - BatchOTOQueryRequest
     * @returns BatchOTOQueryResponse
     */
    async batchOTOQuery(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new BatchOTOQueryHeaders({});
        return await this.batchOTOQueryWithOptions(request, headers, runtime);
    }
    /**
     * 批量撤回群聊机器人消息
     *
     * @param request - BatchRecallGroupRequest
     * @param headers - BatchRecallGroupHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns BatchRecallGroupResponse
     */
    async batchRecallGroupWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.chatbotId)) {
            body["chatbotId"] = request.chatbotId;
        }
        if (!tea_util_1.default.isUnset(request.openConversationId)) {
            body["openConversationId"] = request.openConversationId;
        }
        if (!tea_util_1.default.isUnset(request.processQueryKeys)) {
            body["processQueryKeys"] = request.processQueryKeys;
        }
        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: "BatchRecallGroup",
            version: "robot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/robot/groupMessages/batchRecall`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new BatchRecallGroupResponse({}));
    }
    /**
     * 批量撤回群聊机器人消息
     *
     * @param request - BatchRecallGroupRequest
     * @returns BatchRecallGroupResponse
     */
    async batchRecallGroup(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new BatchRecallGroupHeaders({});
        return await this.batchRecallGroupWithOptions(request, headers, runtime);
    }
    /**
     * 批量撤回人与机器人会话中机器人消息
     *
     * @param request - BatchRecallOTORequest
     * @param headers - BatchRecallOTOHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns BatchRecallOTOResponse
     */
    async batchRecallOTOWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.processQueryKeys)) {
            body["processQueryKeys"] = request.processQueryKeys;
        }
        if (!tea_util_1.default.isUnset(request.robotCode)) {
            body["robotCode"] = request.robotCode;
        }
        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: "BatchRecallOTO",
            version: "robot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/robot/otoMessages/batchRecall`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new BatchRecallOTOResponse({}));
    }
    /**
     * 批量撤回人与机器人会话中机器人消息
     *
     * @param request - BatchRecallOTORequest
     * @returns BatchRecallOTOResponse
     */
    async batchRecallOTO(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new BatchRecallOTOHeaders({});
        return await this.batchRecallOTOWithOptions(request, headers, runtime);
    }
    /**
     * 批量撤回人与人会话中机器人消息
     *
     * @param request - BatchRecallPrivateChatRequest
     * @param headers - BatchRecallPrivateChatHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns BatchRecallPrivateChatResponse
     */
    async batchRecallPrivateChatWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.openConversationId)) {
            body["openConversationId"] = request.openConversationId;
        }
        if (!tea_util_1.default.isUnset(request.processQueryKeys)) {
            body["processQueryKeys"] = request.processQueryKeys;
        }
        if (!tea_util_1.default.isUnset(request.robotCode)) {
            body["robotCode"] = request.robotCode;
        }
        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: "BatchRecallPrivateChat",
            version: "robot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/robot/privateChatMessages/batchRecall`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new BatchRecallPrivateChatResponse({}));
    }
    /**
     * 批量撤回人与人会话中机器人消息
     *
     * @param request - BatchRecallPrivateChatRequest
     * @returns BatchRecallPrivateChatResponse
     */
    async batchRecallPrivateChat(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new BatchRecallPrivateChatHeaders({});
        return await this.batchRecallPrivateChatWithOptions(request, headers, runtime);
    }
    /**
     * 批量发送人与机器人会话中机器人消息
     *
     * @param request - BatchSendOTORequest
     * @param headers - BatchSendOTOHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns BatchSendOTOResponse
     */
    async batchSendOTOWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.msgKey)) {
            body["msgKey"] = request.msgKey;
        }
        if (!tea_util_1.default.isUnset(request.msgParam)) {
            body["msgParam"] = request.msgParam;
        }
        if (!tea_util_1.default.isUnset(request.robotCode)) {
            body["robotCode"] = request.robotCode;
        }
        if (!tea_util_1.default.isUnset(request.userIds)) {
            body["userIds"] = request.userIds;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "BatchSendOTO",
            version: "robot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/robot/oToMessages/batchSend`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new BatchSendOTOResponse({}));
    }
    /**
     * 批量发送人与机器人会话中机器人消息
     *
     * @param request - BatchSendOTORequest
     * @returns BatchSendOTOResponse
     */
    async batchSendOTO(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new BatchSendOTOHeaders({});
        return await this.batchSendOTOWithOptions(request, headers, runtime);
    }
    /**
     * 清空单聊机器人快捷入口
     *
     * @param request - ClearRobotPluginRequest
     * @param headers - ClearRobotPluginHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ClearRobotPluginResponse
     */
    async clearRobotPluginWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.robotCode)) {
            body["robotCode"] = request.robotCode;
        }
        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: "ClearRobotPlugin",
            version: "robot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/robot/plugins/clear`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new ClearRobotPluginResponse({}));
    }
    /**
     * 清空单聊机器人快捷入口
     *
     * @param request - ClearRobotPluginRequest
     * @returns ClearRobotPluginResponse
     */
    async clearRobotPlugin(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new ClearRobotPluginHeaders({});
        return await this.clearRobotPluginWithOptions(request, headers, runtime);
    }
    /**
     * 执行机器人的AI技能
     *
     * @param request - ExecuteRobotAiSkillRequest
     * @param headers - ExecuteRobotAiSkillHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ExecuteRobotAiSkillResponse
     */
    async executeRobotAiSkillWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.context)) {
            body["context"] = request.context;
        }
        if (!tea_util_1.default.isUnset(request.input)) {
            body["input"] = request.input;
        }
        if (!tea_util_1.default.isUnset(request.robotCode)) {
            body["robotCode"] = request.robotCode;
        }
        if (!tea_util_1.default.isUnset(request.skillId)) {
            body["skillId"] = request.skillId;
        }
        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: "ExecuteRobotAiSkill",
            version: "robot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/robot/aiSkill/execute`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new ExecuteRobotAiSkillResponse({}));
    }
    /**
     * 执行机器人的AI技能
     *
     * @param request - ExecuteRobotAiSkillRequest
     * @returns ExecuteRobotAiSkillResponse
     */
    async executeRobotAiSkill(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new ExecuteRobotAiSkillHeaders({});
        return await this.executeRobotAiSkillWithOptions(request, headers, runtime);
    }
    /**
     * 查询群内的机器人列表
     *
     * @param request - GetBotListInGroupRequest
     * @param headers - GetBotListInGroupHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetBotListInGroupResponse
     */
    async getBotListInGroupWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.openConversationId)) {
            body["openConversationId"] = request.openConversationId;
        }
        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: "GetBotListInGroup",
            version: "robot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/robot/groups/robots/query`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetBotListInGroupResponse({}));
    }
    /**
     * 查询群内的机器人列表
     *
     * @param request - GetBotListInGroupRequest
     * @returns GetBotListInGroupResponse
     */
    async getBotListInGroup(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetBotListInGroupHeaders({});
        return await this.getBotListInGroupWithOptions(request, headers, runtime);
    }
    /**
     * 管理机器人启用，停用状态
     *
     * @param request - ManageSingleChatRobotStatusRequest
     * @param headers - ManageSingleChatRobotStatusHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ManageSingleChatRobotStatusResponse
     */
    async manageSingleChatRobotStatusWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.robotCode)) {
            body["robotCode"] = request.robotCode;
        }
        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: "ManageSingleChatRobotStatus",
            version: "robot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/robot/statuses/manage`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new ManageSingleChatRobotStatusResponse({}));
    }
    /**
     * 管理机器人启用，停用状态
     *
     * @param request - ManageSingleChatRobotStatusRequest
     * @returns ManageSingleChatRobotStatusResponse
     */
    async manageSingleChatRobotStatus(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new ManageSingleChatRobotStatusHeaders({});
        return await this.manageSingleChatRobotStatusWithOptions(request, headers, runtime);
    }
    /**
     * 查询企业机器人群聊消息用户已读状态
     *
     * @param request - OrgGroupQueryRequest
     * @param headers - OrgGroupQueryHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns OrgGroupQueryResponse
     */
    async orgGroupQueryWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.maxResults)) {
            body["maxResults"] = request.maxResults;
        }
        if (!tea_util_1.default.isUnset(request.nextToken)) {
            body["nextToken"] = request.nextToken;
        }
        if (!tea_util_1.default.isUnset(request.openConversationId)) {
            body["openConversationId"] = request.openConversationId;
        }
        if (!tea_util_1.default.isUnset(request.processQueryKey)) {
            body["processQueryKey"] = request.processQueryKey;
        }
        if (!tea_util_1.default.isUnset(request.robotCode)) {
            body["robotCode"] = request.robotCode;
        }
        if (!tea_util_1.default.isUnset(request.token)) {
            body["token"] = request.token;
        }
        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: "OrgGroupQuery",
            version: "robot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/robot/groupMessages/query`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new OrgGroupQueryResponse({}));
    }
    /**
     * 查询企业机器人群聊消息用户已读状态
     *
     * @param request - OrgGroupQueryRequest
     * @returns OrgGroupQueryResponse
     */
    async orgGroupQuery(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new OrgGroupQueryHeaders({});
        return await this.orgGroupQueryWithOptions(request, headers, runtime);
    }
    /**
     * 企业机器人撤回内部群消息
     *
     * @param request - OrgGroupRecallRequest
     * @param headers - OrgGroupRecallHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns OrgGroupRecallResponse
     */
    async orgGroupRecallWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.openConversationId)) {
            body["openConversationId"] = request.openConversationId;
        }
        if (!tea_util_1.default.isUnset(request.processQueryKeys)) {
            body["processQueryKeys"] = request.processQueryKeys;
        }
        if (!tea_util_1.default.isUnset(request.robotCode)) {
            body["robotCode"] = request.robotCode;
        }
        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: "OrgGroupRecall",
            version: "robot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/robot/groupMessages/recall`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new OrgGroupRecallResponse({}));
    }
    /**
     * 企业机器人撤回内部群消息
     *
     * @param request - OrgGroupRecallRequest
     * @returns OrgGroupRecallResponse
     */
    async orgGroupRecall(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new OrgGroupRecallHeaders({});
        return await this.orgGroupRecallWithOptions(request, headers, runtime);
    }
    /**
     * 机器人发送群聊消息
     *
     * @param request - OrgGroupSendRequest
     * @param headers - OrgGroupSendHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns OrgGroupSendResponse
     */
    async orgGroupSendWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.coolAppCode)) {
            body["coolAppCode"] = request.coolAppCode;
        }
        if (!tea_util_1.default.isUnset(request.msgKey)) {
            body["msgKey"] = request.msgKey;
        }
        if (!tea_util_1.default.isUnset(request.msgParam)) {
            body["msgParam"] = request.msgParam;
        }
        if (!tea_util_1.default.isUnset(request.openConversationId)) {
            body["openConversationId"] = request.openConversationId;
        }
        if (!tea_util_1.default.isUnset(request.robotCode)) {
            body["robotCode"] = request.robotCode;
        }
        if (!tea_util_1.default.isUnset(request.token)) {
            body["token"] = request.token;
        }
        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: "OrgGroupSend",
            version: "robot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/robot/groupMessages/send`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new OrgGroupSendResponse({}));
    }
    /**
     * 机器人发送群聊消息
     *
     * @param request - OrgGroupSendRequest
     * @returns OrgGroupSendResponse
     */
    async orgGroupSend(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new OrgGroupSendHeaders({});
        return await this.orgGroupSendWithOptions(request, headers, runtime);
    }
    /**
     * 查询人与人会话中机器人已读消息
     *
     * @param request - PrivateChatQueryRequest
     * @param headers - PrivateChatQueryHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns PrivateChatQueryResponse
     */
    async privateChatQueryWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.maxResults)) {
            body["maxResults"] = request.maxResults;
        }
        if (!tea_util_1.default.isUnset(request.nextToken)) {
            body["nextToken"] = request.nextToken;
        }
        if (!tea_util_1.default.isUnset(request.openConversationId)) {
            body["openConversationId"] = request.openConversationId;
        }
        if (!tea_util_1.default.isUnset(request.processQueryKey)) {
            body["processQueryKey"] = request.processQueryKey;
        }
        if (!tea_util_1.default.isUnset(request.robotCode)) {
            body["robotCode"] = request.robotCode;
        }
        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: "PrivateChatQuery",
            version: "robot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/robot/privateChatMessages/query`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new PrivateChatQueryResponse({}));
    }
    /**
     * 查询人与人会话中机器人已读消息
     *
     * @param request - PrivateChatQueryRequest
     * @returns PrivateChatQueryResponse
     */
    async privateChatQuery(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new PrivateChatQueryHeaders({});
        return await this.privateChatQueryWithOptions(request, headers, runtime);
    }
    /**
     * 人与人会话中机器人发送普通消息
     *
     * @param request - PrivateChatSendRequest
     * @param headers - PrivateChatSendHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns PrivateChatSendResponse
     */
    async privateChatSendWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.coolAppCode)) {
            body["coolAppCode"] = request.coolAppCode;
        }
        if (!tea_util_1.default.isUnset(request.msgKey)) {
            body["msgKey"] = request.msgKey;
        }
        if (!tea_util_1.default.isUnset(request.msgParam)) {
            body["msgParam"] = request.msgParam;
        }
        if (!tea_util_1.default.isUnset(request.openConversationId)) {
            body["openConversationId"] = request.openConversationId;
        }
        if (!tea_util_1.default.isUnset(request.robotCode)) {
            body["robotCode"] = request.robotCode;
        }
        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: "PrivateChatSend",
            version: "robot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/robot/privateChatMessages/send`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new PrivateChatSendResponse({}));
    }
    /**
     * 人与人会话中机器人发送普通消息
     *
     * @param request - PrivateChatSendRequest
     * @returns PrivateChatSendResponse
     */
    async privateChatSend(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new PrivateChatSendHeaders({});
        return await this.privateChatSendWithOptions(request, headers, runtime);
    }
    /**
     * 获取机器人所在群信息
     *
     * @param request - QueryBotInstanceInGroupInfoRequest
     * @param headers - QueryBotInstanceInGroupInfoHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns QueryBotInstanceInGroupInfoResponse
     */
    async queryBotInstanceInGroupInfoWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.pageNumber)) {
            body["pageNumber"] = request.pageNumber;
        }
        if (!tea_util_1.default.isUnset(request.pageSize)) {
            body["pageSize"] = request.pageSize;
        }
        if (!tea_util_1.default.isUnset(request.robotCode)) {
            body["robotCode"] = request.robotCode;
        }
        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: "QueryBotInstanceInGroupInfo",
            version: "robot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/robot/groups/query`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new QueryBotInstanceInGroupInfoResponse({}));
    }
    /**
     * 获取机器人所在群信息
     *
     * @param request - QueryBotInstanceInGroupInfoRequest
     * @returns QueryBotInstanceInGroupInfoResponse
     */
    async queryBotInstanceInGroupInfo(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new QueryBotInstanceInGroupInfoHeaders({});
        return await this.queryBotInstanceInGroupInfoWithOptions(request, headers, runtime);
    }
    /**
     * 查询机器人DING已读未读状态
     *
     * @param request - QueryRobotDingReadStatusRequest
     * @param headers - QueryRobotDingReadStatusHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns QueryRobotDingReadStatusResponse
     */
    async queryRobotDingReadStatusWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.openDingId)) {
            body["openDingId"] = request.openDingId;
        }
        if (!tea_util_1.default.isUnset(request.robotCode)) {
            body["robotCode"] = request.robotCode;
        }
        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: "QueryRobotDingReadStatus",
            version: "robot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/robot/ding/readStatuses/query`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new QueryRobotDingReadStatusResponse({}));
    }
    /**
     * 查询机器人DING已读未读状态
     *
     * @param request - QueryRobotDingReadStatusRequest
     * @returns QueryRobotDingReadStatusResponse
     */
    async queryRobotDingReadStatus(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new QueryRobotDingReadStatusHeaders({});
        return await this.queryRobotDingReadStatusWithOptions(request, headers, runtime);
    }
    /**
     * 查询单聊机器人快捷入口
     *
     * @param request - QueryRobotPluginRequest
     * @param headers - QueryRobotPluginHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns QueryRobotPluginResponse
     */
    async queryRobotPluginWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.robotCode)) {
            body["robotCode"] = request.robotCode;
        }
        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: "QueryRobotPlugin",
            version: "robot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/robot/plugins/query`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new QueryRobotPluginResponse({}));
    }
    /**
     * 查询单聊机器人快捷入口
     *
     * @param request - QueryRobotPluginRequest
     * @returns QueryRobotPluginResponse
     */
    async queryRobotPlugin(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new QueryRobotPluginHeaders({});
        return await this.queryRobotPluginWithOptions(request, headers, runtime);
    }
    /**
     * 获取机器人消息中文件下载链接
     *
     * @param request - RobotMessageFileDownloadRequest
     * @param headers - RobotMessageFileDownloadHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns RobotMessageFileDownloadResponse
     */
    async robotMessageFileDownloadWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.downloadCode)) {
            body["downloadCode"] = request.downloadCode;
        }
        if (!tea_util_1.default.isUnset(request.robotCode)) {
            body["robotCode"] = request.robotCode;
        }
        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: "RobotMessageFileDownload",
            version: "robot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/robot/messageFiles/download`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new RobotMessageFileDownloadResponse({}));
    }
    /**
     * 获取机器人消息中文件下载链接
     *
     * @param request - RobotMessageFileDownloadRequest
     * @returns RobotMessageFileDownloadResponse
     */
    async robotMessageFileDownload(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new RobotMessageFileDownloadHeaders({});
        return await this.robotMessageFileDownloadWithOptions(request, headers, runtime);
    }
    /**
     * 撤回已经发送的DING消息
     *
     * @param request - RobotRecallDingRequest
     * @param headers - RobotRecallDingHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns RobotRecallDingResponse
     */
    async robotRecallDingWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.openDingId)) {
            body["openDingId"] = request.openDingId;
        }
        if (!tea_util_1.default.isUnset(request.robotCode)) {
            body["robotCode"] = request.robotCode;
        }
        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: "RobotRecallDing",
            version: "robot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/robot/ding/recall`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new RobotRecallDingResponse({}));
    }
    /**
     * 撤回已经发送的DING消息
     *
     * @param request - RobotRecallDingRequest
     * @returns RobotRecallDingResponse
     */
    async robotRecallDing(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new RobotRecallDingHeaders({});
        return await this.robotRecallDingWithOptions(request, headers, runtime);
    }
    /**
     * 发送DING消息
     *
     * @param request - RobotSendDingRequest
     * @param headers - RobotSendDingHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns RobotSendDingResponse
     */
    async robotSendDingWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.callVoice)) {
            body["callVoice"] = request.callVoice;
        }
        if (!tea_util_1.default.isUnset(request.content)) {
            body["content"] = request.content;
        }
        if (!tea_util_1.default.isUnset(request.receiverUserIdList)) {
            body["receiverUserIdList"] = request.receiverUserIdList;
        }
        if (!tea_util_1.default.isUnset(request.remindType)) {
            body["remindType"] = request.remindType;
        }
        if (!tea_util_1.default.isUnset(request.robotCode)) {
            body["robotCode"] = request.robotCode;
        }
        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: "RobotSendDing",
            version: "robot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/robot/ding/send`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new RobotSendDingResponse({}));
    }
    /**
     * 发送DING消息
     *
     * @param request - RobotSendDingRequest
     * @returns RobotSendDingResponse
     */
    async robotSendDing(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new RobotSendDingHeaders({});
        return await this.robotSendDingWithOptions(request, headers, runtime);
    }
    /**
     * 机器人发送DING消息
     *
     * @param request - SendRobotDingMessageRequest
     * @param headers - SendRobotDingMessageHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns SendRobotDingMessageResponse
     */
    async sendRobotDingMessageWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.contentParams)) {
            body["contentParams"] = request.contentParams;
        }
        if (!tea_util_1.default.isUnset(request.dingTemplateId)) {
            body["dingTemplateId"] = request.dingTemplateId;
        }
        if (!tea_util_1.default.isUnset(request.openConversationId)) {
            body["openConversationId"] = request.openConversationId;
        }
        if (!tea_util_1.default.isUnset(request.receiverUserIdList)) {
            body["receiverUserIdList"] = request.receiverUserIdList;
        }
        if (!tea_util_1.default.isUnset(request.robotCode)) {
            body["robotCode"] = request.robotCode;
        }
        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: "SendRobotDingMessage",
            version: "robot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/robot/dingMessages/send`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "json",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new SendRobotDingMessageResponse({}));
    }
    /**
     * 机器人发送DING消息
     *
     * @param request - SendRobotDingMessageRequest
     * @returns SendRobotDingMessageResponse
     */
    async sendRobotDingMessage(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new SendRobotDingMessageHeaders({});
        return await this.sendRobotDingMessageWithOptions(request, headers, runtime);
    }
    /**
     * 设置单聊机器人快捷入口
     *
     * @param request - SetRobotPluginRequest
     * @param headers - SetRobotPluginHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns SetRobotPluginResponse
     */
    async setRobotPluginWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.pluginInfoList)) {
            body["pluginInfoList"] = request.pluginInfoList;
        }
        if (!tea_util_1.default.isUnset(request.robotCode)) {
            body["robotCode"] = request.robotCode;
        }
        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: "SetRobotPlugin",
            version: "robot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/robot/plugins/set`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new SetRobotPluginResponse({}));
    }
    /**
     * 设置单聊机器人快捷入口
     *
     * @param request - SetRobotPluginRequest
     * @returns SetRobotPluginResponse
     */
    async setRobotPlugin(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new SetRobotPluginHeaders({});
        return await this.setRobotPluginWithOptions(request, headers, runtime);
    }
    /**
     * 更新安装到组织的机器人信息
     *
     * @param request - UpdateInstalledRobotRequest
     * @param headers - UpdateInstalledRobotHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateInstalledRobotResponse
     */
    async updateInstalledRobotWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.brief)) {
            body["brief"] = request.brief;
        }
        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.name)) {
            body["name"] = request.name;
        }
        if (!tea_util_1.default.isUnset(request.robotCode)) {
            body["robotCode"] = request.robotCode;
        }
        if (!tea_util_1.default.isUnset(request.updateType)) {
            body["updateType"] = request.updateType;
        }
        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: "UpdateInstalledRobot",
            version: "robot_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/robot/managements/infos`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateInstalledRobotResponse({}));
    }
    /**
     * 更新安装到组织的机器人信息
     *
     * @param request - UpdateInstalledRobotRequest
     * @returns UpdateInstalledRobotResponse
     */
    async updateInstalledRobot(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateInstalledRobotHeaders({});
        return await this.updateInstalledRobotWithOptions(request, headers, runtime);
    }
}
exports.default = Client;
//# sourceMappingURL=client.js.map