"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.GetEventResponse = exports.GetEventResponseBody = exports.GetEventRequest = exports.GetEventHeaders = exports.GenerateCaldavAccountResponse = exports.GenerateCaldavAccountResponseBody = exports.GenerateCaldavAccountRequest = exports.GenerateCaldavAccountHeaders = exports.DeleteSubscribedCalendarResponse = exports.DeleteSubscribedCalendarResponseBody = exports.DeleteSubscribedCalendarHeaders = exports.DeleteEventResponse = exports.DeleteEventRequest = exports.DeleteEventHeaders = exports.DeleteAclResponse = exports.DeleteAclHeaders = exports.CreateSubscribedCalendarResponse = exports.CreateSubscribedCalendarResponseBody = exports.CreateSubscribedCalendarRequest = exports.CreateSubscribedCalendarHeaders = exports.CreateEventByMeResponse = exports.CreateEventByMeResponseBody = exports.CreateEventByMeRequest = exports.CreateEventByMeHeaders = exports.CreateEventResponse = exports.CreateEventResponseBody = exports.CreateEventRequest = exports.CreateEventHeaders = exports.CreateAclsResponse = exports.CreateAclsResponseBody = exports.CreateAclsRequest = exports.CreateAclsHeaders = exports.ConvertLegacyEventIdResponse = exports.ConvertLegacyEventIdResponseBody = exports.ConvertLegacyEventIdRequest = exports.ConvertLegacyEventIdHeaders = exports.CheckInResponse = exports.CheckInResponseBody = exports.CheckInHeaders = exports.CancelEventResponse = exports.CancelEventResponseBody = exports.CancelEventRequest = exports.CancelEventHeaders = exports.AddMeetingRoomsResponse = exports.AddMeetingRoomsResponseBody = exports.AddMeetingRoomsRequest = exports.AddMeetingRoomsHeaders = exports.AddAttendeeResponse = exports.AddAttendeeRequest = exports.AddAttendeeHeaders = void 0;
exports.ListEventsInstancesResponse = exports.ListEventsInstancesResponseBody = exports.ListEventsInstancesRequest = exports.ListEventsInstancesHeaders = exports.ListEventsResponse = exports.ListEventsResponseBody = exports.ListEventsRequest = exports.ListEventsHeaders = exports.ListCategoriesResponse = exports.ListCategoriesResponseBody = exports.ListCategoriesHeaders = exports.ListCalendarsResponse = exports.ListCalendarsResponseBody = exports.ListCalendarsHeaders = exports.ListAttendeesResponse = exports.ListAttendeesResponseBody = exports.ListAttendeesRequest = exports.ListAttendeesHeaders = exports.ListAclsResponse = exports.ListAclsResponseBody = exports.ListAclsHeaders = exports.GetSubscribedCalendarResponse = exports.GetSubscribedCalendarResponseBody = exports.GetSubscribedCalendarHeaders = exports.GetSignOutListResponse = exports.GetSignOutListResponseBody = exports.GetSignOutListRequest = exports.GetSignOutListHeaders = exports.GetSignOutLinkResponse = exports.GetSignOutLinkResponseBody = exports.GetSignOutLinkHeaders = exports.GetSignInListResponse = exports.GetSignInListResponseBody = exports.GetSignInListRequest = exports.GetSignInListHeaders = exports.GetSignInLinkResponse = exports.GetSignInLinkResponseBody = exports.GetSignInLinkHeaders = exports.GetScheduleByMeResponse = exports.GetScheduleByMeResponseBody = exports.GetScheduleByMeRequest = exports.GetScheduleByMeHeaders = exports.GetScheduleResponse = exports.GetScheduleResponseBody = exports.GetScheduleRequest = exports.GetScheduleHeaders = exports.GetMeetingRoomsScheduleResponse = exports.GetMeetingRoomsScheduleResponseBody = exports.GetMeetingRoomsScheduleRequest = exports.GetMeetingRoomsScheduleHeaders = void 0;
exports.AddAttendeeRequestAttendeesToAdd = exports.UpdateSubscribedCalendarsResponse = exports.UpdateSubscribedCalendarsResponseBody = exports.UpdateSubscribedCalendarsRequest = exports.UpdateSubscribedCalendarsHeaders = exports.UnsubscribeCalendarResponse = exports.UnsubscribeCalendarResponseBody = exports.UnsubscribeCalendarHeaders = exports.TransferEventResponse = exports.TransferEventResponseBody = exports.TransferEventRequest = exports.TransferEventHeaders = exports.SubscribeCalendarResponse = exports.SubscribeCalendarHeaders = exports.SignOutResponse = exports.SignOutResponseBody = exports.SignOutHeaders = exports.SignInResponse = exports.SignInResponseBody = exports.SignInHeaders = exports.RespondEventResponse = exports.RespondEventRequest = exports.RespondEventHeaders = exports.RemoveMeetingRoomsResponse = exports.RemoveMeetingRoomsResponseBody = exports.RemoveMeetingRoomsRequest = exports.RemoveMeetingRoomsHeaders = exports.RemoveAttendeeResponse = exports.RemoveAttendeeRequest = exports.RemoveAttendeeHeaders = exports.PatchEventResponse = exports.PatchEventResponseBody = exports.PatchEventRequest = exports.PatchEventHeaders = exports.MeetingRoomRespondResponse = exports.MeetingRoomRespondResponseBody = exports.MeetingRoomRespondRequest = exports.MeetingRoomRespondHeaders = exports.ListInstancesResponse = exports.ListInstancesResponseBody = exports.ListInstancesRequest = exports.ListInstancesHeaders = exports.ListEventsViewByMeResponse = exports.ListEventsViewByMeResponseBody = exports.ListEventsViewByMeRequest = exports.ListEventsViewByMeHeaders = exports.ListEventsViewResponse = exports.ListEventsViewResponseBody = exports.ListEventsViewRequest = exports.ListEventsViewHeaders = void 0;
exports.CreateEventByMeResponseBodyReminders = exports.CreateEventByMeResponseBodyRecurrence = exports.CreateEventByMeResponseBodyRecurrenceRange = exports.CreateEventByMeResponseBodyRecurrencePattern = exports.CreateEventByMeResponseBodyOrganizer = exports.CreateEventByMeResponseBodyOnlineMeetingInfo = exports.CreateEventByMeResponseBodyLocation = exports.CreateEventByMeResponseBodyEnd = exports.CreateEventByMeResponseBodyAttendees = exports.CreateEventByMeRequestUiConfigs = exports.CreateEventByMeRequestStart = exports.CreateEventByMeRequestRichTextDescription = exports.CreateEventByMeRequestReminders = exports.CreateEventByMeRequestRecurrence = exports.CreateEventByMeRequestRecurrenceRange = exports.CreateEventByMeRequestRecurrencePattern = exports.CreateEventByMeRequestOnlineMeetingInfo = exports.CreateEventByMeRequestLocation = exports.CreateEventByMeRequestEnd = exports.CreateEventByMeRequestAttendees = exports.CreateEventResponseBodyUiConfigs = exports.CreateEventResponseBodyStart = exports.CreateEventResponseBodyRichTextDescription = exports.CreateEventResponseBodyReminders = exports.CreateEventResponseBodyRecurrence = exports.CreateEventResponseBodyRecurrenceRange = exports.CreateEventResponseBodyRecurrencePattern = exports.CreateEventResponseBodyOrganizer = exports.CreateEventResponseBodyOnlineMeetingInfo = exports.CreateEventResponseBodyLocation = exports.CreateEventResponseBodyEnd = exports.CreateEventResponseBodyCategories = exports.CreateEventResponseBodyCardInstances = exports.CreateEventResponseBodyAttendees = exports.CreateEventRequestUiConfigs = exports.CreateEventRequestStart = exports.CreateEventRequestRichTextDescription = exports.CreateEventRequestReminders = exports.CreateEventRequestRecurrence = exports.CreateEventRequestRecurrenceRange = exports.CreateEventRequestRecurrencePattern = exports.CreateEventRequestOnlineMeetingInfo = exports.CreateEventRequestLocation = exports.CreateEventRequestEnd = exports.CreateEventRequestCategories = exports.CreateEventRequestCardInstances = exports.CreateEventRequestAttendees = exports.CreateAclsResponseBodyScope = exports.CreateAclsRequestScope = exports.AddMeetingRoomsRequestMeetingRoomsToAdd = void 0;
exports.ListEventsResponseBodyEventsLocation = exports.ListEventsResponseBodyEventsExtendedProperties = exports.ListEventsResponseBodyEventsExtendedPropertiesSharedProperties = exports.ListEventsResponseBodyEventsEnd = exports.ListEventsResponseBodyEventsCategories = exports.ListEventsResponseBodyEventsAttendees = exports.ListCategoriesResponseBodyCategories = exports.ListCalendarsResponseBodyResponse = exports.ListCalendarsResponseBodyResponseCalendars = exports.ListAttendeesResponseBodyAttendees = exports.ListAclsResponseBodyAcls = exports.ListAclsResponseBodyAclsScope = exports.GetSubscribedCalendarResponseBodySubscribeScope = exports.GetSignOutListResponseBodyUsers = exports.GetSignInListResponseBodyUsers = exports.GetScheduleByMeResponseBodyScheduleInformation = exports.GetScheduleByMeResponseBodyScheduleInformationScheduleItems = exports.GetScheduleByMeResponseBodyScheduleInformationScheduleItemsStart = exports.GetScheduleByMeResponseBodyScheduleInformationScheduleItemsEnd = exports.GetScheduleResponseBodyScheduleInformation = exports.GetScheduleResponseBodyScheduleInformationScheduleItems = exports.GetScheduleResponseBodyScheduleInformationScheduleItemsStart = exports.GetScheduleResponseBodyScheduleInformationScheduleItemsEnd = exports.GetMeetingRoomsScheduleResponseBodyScheduleInformation = exports.GetMeetingRoomsScheduleResponseBodyScheduleInformationScheduleItems = exports.GetMeetingRoomsScheduleResponseBodyScheduleInformationScheduleItemsStart = exports.GetMeetingRoomsScheduleResponseBodyScheduleInformationScheduleItemsOrganizer = exports.GetMeetingRoomsScheduleResponseBodyScheduleInformationScheduleItemsEnd = exports.GetEventResponseBodyUiConfigs = exports.GetEventResponseBodyStart = exports.GetEventResponseBodyRichTextDescription = exports.GetEventResponseBodyReminders = exports.GetEventResponseBodyRecurrence = exports.GetEventResponseBodyRecurrenceRange = exports.GetEventResponseBodyRecurrencePattern = exports.GetEventResponseBodyOriginStart = exports.GetEventResponseBodyOrganizer = exports.GetEventResponseBodyOnlineMeetingInfo = exports.GetEventResponseBodyMeetingRooms = exports.GetEventResponseBodyLocation = exports.GetEventResponseBodyExtendedProperties = exports.GetEventResponseBodyExtendedPropertiesSharedProperties = exports.GetEventResponseBodyEnd = exports.GetEventResponseBodyCategories = exports.GetEventResponseBodyCardInstances = exports.GetEventResponseBodyAttendees = exports.CreateSubscribedCalendarRequestSubscribeScope = exports.CreateEventByMeResponseBodyUiConfigs = exports.CreateEventByMeResponseBodyStart = exports.CreateEventByMeResponseBodyRichTextDescription = void 0;
exports.ListEventsViewByMeResponseBodyEventsOrganizer = exports.ListEventsViewByMeResponseBodyEventsOnlineMeetingInfo = exports.ListEventsViewByMeResponseBodyEventsMeetingRooms = exports.ListEventsViewByMeResponseBodyEventsLocation = exports.ListEventsViewByMeResponseBodyEventsExtendedProperties = exports.ListEventsViewByMeResponseBodyEventsExtendedPropertiesSharedProperties = exports.ListEventsViewByMeResponseBodyEventsEnd = exports.ListEventsViewByMeResponseBodyEventsCategories = exports.ListEventsViewByMeResponseBodyEventsAttendees = exports.ListEventsViewResponseBodyEvents = exports.ListEventsViewResponseBodyEventsStart = exports.ListEventsViewResponseBodyEventsRichTextDescription = exports.ListEventsViewResponseBodyEventsRecurrence = exports.ListEventsViewResponseBodyEventsRecurrenceRange = exports.ListEventsViewResponseBodyEventsRecurrencePattern = exports.ListEventsViewResponseBodyEventsOriginStart = exports.ListEventsViewResponseBodyEventsOrganizer = exports.ListEventsViewResponseBodyEventsOnlineMeetingInfo = exports.ListEventsViewResponseBodyEventsMeetingRooms = exports.ListEventsViewResponseBodyEventsLocation = exports.ListEventsViewResponseBodyEventsExtendedProperties = exports.ListEventsViewResponseBodyEventsExtendedPropertiesSharedProperties = exports.ListEventsViewResponseBodyEventsExtendedPropertiesPrivateProperties = exports.ListEventsViewResponseBodyEventsEnd = exports.ListEventsViewResponseBodyEventsCategories = exports.ListEventsViewResponseBodyEventsAttendees = exports.ListEventsInstancesResponseBodyEvents = exports.ListEventsInstancesResponseBodyEventsStart = exports.ListEventsInstancesResponseBodyEventsReminders = exports.ListEventsInstancesResponseBodyEventsRecurrence = exports.ListEventsInstancesResponseBodyEventsRecurrenceRange = exports.ListEventsInstancesResponseBodyEventsRecurrencePattern = exports.ListEventsInstancesResponseBodyEventsOrganizer = exports.ListEventsInstancesResponseBodyEventsOnlineMeetingInfo = exports.ListEventsInstancesResponseBodyEventsLocation = exports.ListEventsInstancesResponseBodyEventsExtendedProperties = exports.ListEventsInstancesResponseBodyEventsExtendedPropertiesSharedProperties = exports.ListEventsInstancesResponseBodyEventsEnd = exports.ListEventsInstancesResponseBodyEventsAttendees = exports.ListEventsResponseBodyEvents = exports.ListEventsResponseBodyEventsStart = exports.ListEventsResponseBodyEventsRichTextDescription = exports.ListEventsResponseBodyEventsReminders = exports.ListEventsResponseBodyEventsRecurrence = exports.ListEventsResponseBodyEventsRecurrenceRange = exports.ListEventsResponseBodyEventsRecurrencePattern = exports.ListEventsResponseBodyEventsOriginStart = exports.ListEventsResponseBodyEventsOrganizer = exports.ListEventsResponseBodyEventsOnlineMeetingInfo = exports.ListEventsResponseBodyEventsMeetingRooms = void 0;
exports.RemoveMeetingRoomsRequestMeetingRoomsToRemove = exports.RemoveAttendeeRequestAttendeesToRemove = exports.PatchEventResponseBodyUiConfigs = exports.PatchEventResponseBodyStart = exports.PatchEventResponseBodyRichTextDescription = exports.PatchEventResponseBodyReminders = exports.PatchEventResponseBodyRecurrence = exports.PatchEventResponseBodyRecurrenceRange = exports.PatchEventResponseBodyRecurrencePattern = exports.PatchEventResponseBodyOrganizer = exports.PatchEventResponseBodyOnlineMeetingInfo = exports.PatchEventResponseBodyLocation = exports.PatchEventResponseBodyEnd = exports.PatchEventResponseBodyCategories = exports.PatchEventResponseBodyCardInstances = exports.PatchEventResponseBodyAttendees = exports.PatchEventRequestUiConfigs = exports.PatchEventRequestStart = exports.PatchEventRequestRichTextDescription = exports.PatchEventRequestReminders = exports.PatchEventRequestRecurrence = exports.PatchEventRequestRecurrenceRange = exports.PatchEventRequestRecurrencePattern = exports.PatchEventRequestOnlineMeetingInfo = exports.PatchEventRequestLocation = exports.PatchEventRequestEnd = exports.PatchEventRequestCategories = exports.PatchEventRequestCardInstances = exports.PatchEventRequestAttendees = exports.ListInstancesResponseBodyEvents = exports.ListInstancesResponseBodyEventsStart = exports.ListInstancesResponseBodyEventsReminders = exports.ListInstancesResponseBodyEventsRecurrence = exports.ListInstancesResponseBodyEventsRecurrenceRange = exports.ListInstancesResponseBodyEventsRecurrencePattern = exports.ListInstancesResponseBodyEventsOrganizer = exports.ListInstancesResponseBodyEventsOnlineMeetingInfo = exports.ListInstancesResponseBodyEventsMeetingRooms = exports.ListInstancesResponseBodyEventsLocation = exports.ListInstancesResponseBodyEventsExtendedProperties = exports.ListInstancesResponseBodyEventsExtendedPropertiesSharedProperties = exports.ListInstancesResponseBodyEventsEnd = exports.ListInstancesResponseBodyEventsAttendees = exports.ListEventsViewByMeResponseBodyEvents = exports.ListEventsViewByMeResponseBodyEventsStart = exports.ListEventsViewByMeResponseBodyEventsRichTextDescription = exports.ListEventsViewByMeResponseBodyEventsRecurrence = exports.ListEventsViewByMeResponseBodyEventsRecurrenceRange = exports.ListEventsViewByMeResponseBodyEventsRecurrencePattern = exports.ListEventsViewByMeResponseBodyEventsOriginStart = void 0;
exports.UpdateSubscribedCalendarsRequestSubscribeScope = 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 AddAttendeeHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xClientToken: 'x-client-token',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xClientToken: 'string',
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AddAttendeeHeaders = AddAttendeeHeaders;
class AddAttendeeRequest extends $tea.Model {
    static names() {
        return {
            attendeesToAdd: 'attendeesToAdd',
            chatNotification: 'chatNotification',
            pushNotification: 'pushNotification',
        };
    }
    static types() {
        return {
            attendeesToAdd: { 'type': 'array', 'itemType': AddAttendeeRequestAttendeesToAdd },
            chatNotification: 'boolean',
            pushNotification: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AddAttendeeRequest = AddAttendeeRequest;
class AddAttendeeResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AddAttendeeResponse = AddAttendeeResponse;
class AddMeetingRoomsHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xClientToken: 'x-client-token',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xClientToken: 'string',
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AddMeetingRoomsHeaders = AddMeetingRoomsHeaders;
class AddMeetingRoomsRequest extends $tea.Model {
    static names() {
        return {
            meetingRoomsToAdd: 'meetingRoomsToAdd',
        };
    }
    static types() {
        return {
            meetingRoomsToAdd: { 'type': 'array', 'itemType': AddMeetingRoomsRequestMeetingRoomsToAdd },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AddMeetingRoomsRequest = AddMeetingRoomsRequest;
class AddMeetingRoomsResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AddMeetingRoomsResponseBody = AddMeetingRoomsResponseBody;
class AddMeetingRoomsResponse 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: AddMeetingRoomsResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AddMeetingRoomsResponse = AddMeetingRoomsResponse;
class CancelEventHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xClientToken: 'x-client-token',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xClientToken: 'string',
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CancelEventHeaders = CancelEventHeaders;
class CancelEventRequest extends $tea.Model {
    static names() {
        return {
            scope: 'scope',
        };
    }
    static types() {
        return {
            scope: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CancelEventRequest = CancelEventRequest;
class CancelEventResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CancelEventResponseBody = CancelEventResponseBody;
class CancelEventResponse 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: CancelEventResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CancelEventResponse = CancelEventResponse;
class CheckInHeaders 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.CheckInHeaders = CheckInHeaders;
class CheckInResponseBody extends $tea.Model {
    static names() {
        return {
            checkInTime: 'checkInTime',
        };
    }
    static types() {
        return {
            checkInTime: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CheckInResponseBody = CheckInResponseBody;
class CheckInResponse 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: CheckInResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CheckInResponse = CheckInResponse;
class ConvertLegacyEventIdHeaders 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.ConvertLegacyEventIdHeaders = ConvertLegacyEventIdHeaders;
class ConvertLegacyEventIdRequest extends $tea.Model {
    static names() {
        return {
            legacyEventIds: 'legacyEventIds',
        };
    }
    static types() {
        return {
            legacyEventIds: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ConvertLegacyEventIdRequest = ConvertLegacyEventIdRequest;
class ConvertLegacyEventIdResponseBody extends $tea.Model {
    static names() {
        return {
            legacyEventIdMap: 'legacyEventIdMap',
        };
    }
    static types() {
        return {
            legacyEventIdMap: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ConvertLegacyEventIdResponseBody = ConvertLegacyEventIdResponseBody;
class ConvertLegacyEventIdResponse 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: ConvertLegacyEventIdResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ConvertLegacyEventIdResponse = ConvertLegacyEventIdResponse;
class CreateAclsHeaders 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.CreateAclsHeaders = CreateAclsHeaders;
class CreateAclsRequest extends $tea.Model {
    static names() {
        return {
            privilege: 'privilege',
            scope: 'scope',
            sendMsg: 'sendMsg',
        };
    }
    static types() {
        return {
            privilege: 'string',
            scope: CreateAclsRequestScope,
            sendMsg: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateAclsRequest = CreateAclsRequest;
class CreateAclsResponseBody extends $tea.Model {
    static names() {
        return {
            aclId: 'aclId',
            privilege: 'privilege',
            scope: 'scope',
        };
    }
    static types() {
        return {
            aclId: 'string',
            privilege: 'string',
            scope: CreateAclsResponseBodyScope,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateAclsResponseBody = CreateAclsResponseBody;
class CreateAclsResponse 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: CreateAclsResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateAclsResponse = CreateAclsResponse;
class CreateEventHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xClientToken: 'x-client-token',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xClientToken: 'string',
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventHeaders = CreateEventHeaders;
class CreateEventRequest extends $tea.Model {
    static names() {
        return {
            attendees: 'attendees',
            cardInstances: 'cardInstances',
            categories: 'categories',
            description: 'description',
            end: 'end',
            extra: 'extra',
            freeBusyStatus: 'freeBusyStatus',
            isAllDay: 'isAllDay',
            location: 'location',
            onlineMeetingInfo: 'onlineMeetingInfo',
            recurrence: 'recurrence',
            reminders: 'reminders',
            richTextDescription: 'richTextDescription',
            start: 'start',
            summary: 'summary',
            uiConfigs: 'uiConfigs',
        };
    }
    static types() {
        return {
            attendees: { 'type': 'array', 'itemType': CreateEventRequestAttendees },
            cardInstances: { 'type': 'array', 'itemType': CreateEventRequestCardInstances },
            categories: { 'type': 'array', 'itemType': CreateEventRequestCategories },
            description: 'string',
            end: CreateEventRequestEnd,
            extra: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            freeBusyStatus: 'string',
            isAllDay: 'boolean',
            location: CreateEventRequestLocation,
            onlineMeetingInfo: CreateEventRequestOnlineMeetingInfo,
            recurrence: CreateEventRequestRecurrence,
            reminders: { 'type': 'array', 'itemType': CreateEventRequestReminders },
            richTextDescription: CreateEventRequestRichTextDescription,
            start: CreateEventRequestStart,
            summary: 'string',
            uiConfigs: { 'type': 'array', 'itemType': CreateEventRequestUiConfigs },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventRequest = CreateEventRequest;
class CreateEventResponseBody extends $tea.Model {
    static names() {
        return {
            attendees: 'attendees',
            cardInstances: 'cardInstances',
            categories: 'categories',
            createTime: 'createTime',
            description: 'description',
            end: 'end',
            id: 'id',
            isAllDay: 'isAllDay',
            location: 'location',
            onlineMeetingInfo: 'onlineMeetingInfo',
            organizer: 'organizer',
            recurrence: 'recurrence',
            reminders: 'reminders',
            richTextDescription: 'richTextDescription',
            start: 'start',
            summary: 'summary',
            uiConfigs: 'uiConfigs',
            updateTime: 'updateTime',
        };
    }
    static types() {
        return {
            attendees: { 'type': 'array', 'itemType': CreateEventResponseBodyAttendees },
            cardInstances: { 'type': 'array', 'itemType': CreateEventResponseBodyCardInstances },
            categories: { 'type': 'array', 'itemType': CreateEventResponseBodyCategories },
            createTime: 'string',
            description: 'string',
            end: CreateEventResponseBodyEnd,
            id: 'string',
            isAllDay: 'boolean',
            location: CreateEventResponseBodyLocation,
            onlineMeetingInfo: CreateEventResponseBodyOnlineMeetingInfo,
            organizer: CreateEventResponseBodyOrganizer,
            recurrence: CreateEventResponseBodyRecurrence,
            reminders: { 'type': 'array', 'itemType': CreateEventResponseBodyReminders },
            richTextDescription: CreateEventResponseBodyRichTextDescription,
            start: CreateEventResponseBodyStart,
            summary: 'string',
            uiConfigs: { 'type': 'array', 'itemType': CreateEventResponseBodyUiConfigs },
            updateTime: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventResponseBody = CreateEventResponseBody;
class CreateEventResponse 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: CreateEventResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventResponse = CreateEventResponse;
class CreateEventByMeHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xClientToken: 'x-client-token',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xClientToken: 'string',
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeHeaders = CreateEventByMeHeaders;
class CreateEventByMeRequest extends $tea.Model {
    static names() {
        return {
            attendees: 'attendees',
            description: 'description',
            end: 'end',
            extra: 'extra',
            isAllDay: 'isAllDay',
            location: 'location',
            onlineMeetingInfo: 'onlineMeetingInfo',
            recurrence: 'recurrence',
            reminders: 'reminders',
            richTextDescription: 'richTextDescription',
            start: 'start',
            summary: 'summary',
            uiConfigs: 'uiConfigs',
        };
    }
    static types() {
        return {
            attendees: { 'type': 'array', 'itemType': CreateEventByMeRequestAttendees },
            description: 'string',
            end: CreateEventByMeRequestEnd,
            extra: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            isAllDay: 'boolean',
            location: CreateEventByMeRequestLocation,
            onlineMeetingInfo: CreateEventByMeRequestOnlineMeetingInfo,
            recurrence: CreateEventByMeRequestRecurrence,
            reminders: { 'type': 'array', 'itemType': CreateEventByMeRequestReminders },
            richTextDescription: CreateEventByMeRequestRichTextDescription,
            start: CreateEventByMeRequestStart,
            summary: 'string',
            uiConfigs: { 'type': 'array', 'itemType': CreateEventByMeRequestUiConfigs },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeRequest = CreateEventByMeRequest;
class CreateEventByMeResponseBody extends $tea.Model {
    static names() {
        return {
            attendees: 'attendees',
            createTime: 'createTime',
            description: 'description',
            end: 'end',
            id: 'id',
            isAllDay: 'isAllDay',
            location: 'location',
            onlineMeetingInfo: 'onlineMeetingInfo',
            organizer: 'organizer',
            recurrence: 'recurrence',
            reminders: 'reminders',
            richTextDescription: 'richTextDescription',
            start: 'start',
            summary: 'summary',
            uiConfigs: 'uiConfigs',
            updateTime: 'updateTime',
        };
    }
    static types() {
        return {
            attendees: { 'type': 'array', 'itemType': CreateEventByMeResponseBodyAttendees },
            createTime: 'string',
            description: 'string',
            end: CreateEventByMeResponseBodyEnd,
            id: 'string',
            isAllDay: 'boolean',
            location: CreateEventByMeResponseBodyLocation,
            onlineMeetingInfo: CreateEventByMeResponseBodyOnlineMeetingInfo,
            organizer: CreateEventByMeResponseBodyOrganizer,
            recurrence: CreateEventByMeResponseBodyRecurrence,
            reminders: { 'type': 'array', 'itemType': CreateEventByMeResponseBodyReminders },
            richTextDescription: CreateEventByMeResponseBodyRichTextDescription,
            start: CreateEventByMeResponseBodyStart,
            summary: 'string',
            uiConfigs: { 'type': 'array', 'itemType': CreateEventByMeResponseBodyUiConfigs },
            updateTime: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeResponseBody = CreateEventByMeResponseBody;
class CreateEventByMeResponse 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: CreateEventByMeResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeResponse = CreateEventByMeResponse;
class CreateSubscribedCalendarHeaders 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.CreateSubscribedCalendarHeaders = CreateSubscribedCalendarHeaders;
class CreateSubscribedCalendarRequest extends $tea.Model {
    static names() {
        return {
            description: 'description',
            managers: 'managers',
            name: 'name',
            subscribeScope: 'subscribeScope',
        };
    }
    static types() {
        return {
            description: 'string',
            managers: { 'type': 'array', 'itemType': 'string' },
            name: 'string',
            subscribeScope: CreateSubscribedCalendarRequestSubscribeScope,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateSubscribedCalendarRequest = CreateSubscribedCalendarRequest;
class CreateSubscribedCalendarResponseBody extends $tea.Model {
    static names() {
        return {
            calendarId: 'calendarId',
        };
    }
    static types() {
        return {
            calendarId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateSubscribedCalendarResponseBody = CreateSubscribedCalendarResponseBody;
class CreateSubscribedCalendarResponse 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: CreateSubscribedCalendarResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateSubscribedCalendarResponse = CreateSubscribedCalendarResponse;
class DeleteAclHeaders 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.DeleteAclHeaders = DeleteAclHeaders;
class DeleteAclResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeleteAclResponse = DeleteAclResponse;
class DeleteEventHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xClientToken: 'x-client-token',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xClientToken: 'string',
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeleteEventHeaders = DeleteEventHeaders;
class DeleteEventRequest extends $tea.Model {
    static names() {
        return {
            pushNotification: 'pushNotification',
        };
    }
    static types() {
        return {
            pushNotification: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeleteEventRequest = DeleteEventRequest;
class DeleteEventResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeleteEventResponse = DeleteEventResponse;
class DeleteSubscribedCalendarHeaders 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.DeleteSubscribedCalendarHeaders = DeleteSubscribedCalendarHeaders;
class DeleteSubscribedCalendarResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeleteSubscribedCalendarResponseBody = DeleteSubscribedCalendarResponseBody;
class DeleteSubscribedCalendarResponse 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: DeleteSubscribedCalendarResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeleteSubscribedCalendarResponse = DeleteSubscribedCalendarResponse;
class GenerateCaldavAccountHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            dingUid: 'dingUid',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            dingUid: 'string',
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GenerateCaldavAccountHeaders = GenerateCaldavAccountHeaders;
class GenerateCaldavAccountRequest extends $tea.Model {
    static names() {
        return {
            device: 'device',
        };
    }
    static types() {
        return {
            device: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GenerateCaldavAccountRequest = GenerateCaldavAccountRequest;
class GenerateCaldavAccountResponseBody extends $tea.Model {
    static names() {
        return {
            password: 'password',
            serverAddress: 'serverAddress',
            username: 'username',
        };
    }
    static types() {
        return {
            password: 'string',
            serverAddress: 'string',
            username: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GenerateCaldavAccountResponseBody = GenerateCaldavAccountResponseBody;
class GenerateCaldavAccountResponse 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: GenerateCaldavAccountResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GenerateCaldavAccountResponse = GenerateCaldavAccountResponse;
class GetEventHeaders 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.GetEventHeaders = GetEventHeaders;
class GetEventRequest extends $tea.Model {
    static names() {
        return {
            maxAttendees: 'maxAttendees',
        };
    }
    static types() {
        return {
            maxAttendees: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetEventRequest = GetEventRequest;
class GetEventResponseBody extends $tea.Model {
    static names() {
        return {
            attendees: 'attendees',
            cardInstances: 'cardInstances',
            categories: 'categories',
            createTime: 'createTime',
            description: 'description',
            end: 'end',
            extendedProperties: 'extendedProperties',
            id: 'id',
            isAllDay: 'isAllDay',
            location: 'location',
            meetingRooms: 'meetingRooms',
            onlineMeetingInfo: 'onlineMeetingInfo',
            organizer: 'organizer',
            originStart: 'originStart',
            recurrence: 'recurrence',
            reminders: 'reminders',
            richTextDescription: 'richTextDescription',
            seriesMasterId: 'seriesMasterId',
            start: 'start',
            status: 'status',
            summary: 'summary',
            uiConfigs: 'uiConfigs',
            updateTime: 'updateTime',
        };
    }
    static types() {
        return {
            attendees: { 'type': 'array', 'itemType': GetEventResponseBodyAttendees },
            cardInstances: { 'type': 'array', 'itemType': GetEventResponseBodyCardInstances },
            categories: { 'type': 'array', 'itemType': GetEventResponseBodyCategories },
            createTime: 'string',
            description: 'string',
            end: GetEventResponseBodyEnd,
            extendedProperties: GetEventResponseBodyExtendedProperties,
            id: 'string',
            isAllDay: 'boolean',
            location: GetEventResponseBodyLocation,
            meetingRooms: { 'type': 'array', 'itemType': GetEventResponseBodyMeetingRooms },
            onlineMeetingInfo: GetEventResponseBodyOnlineMeetingInfo,
            organizer: GetEventResponseBodyOrganizer,
            originStart: GetEventResponseBodyOriginStart,
            recurrence: GetEventResponseBodyRecurrence,
            reminders: { 'type': 'array', 'itemType': GetEventResponseBodyReminders },
            richTextDescription: GetEventResponseBodyRichTextDescription,
            seriesMasterId: 'string',
            start: GetEventResponseBodyStart,
            status: 'string',
            summary: 'string',
            uiConfigs: { 'type': 'array', 'itemType': GetEventResponseBodyUiConfigs },
            updateTime: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetEventResponseBody = GetEventResponseBody;
class GetEventResponse 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: GetEventResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetEventResponse = GetEventResponse;
class GetMeetingRoomsScheduleHeaders 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.GetMeetingRoomsScheduleHeaders = GetMeetingRoomsScheduleHeaders;
class GetMeetingRoomsScheduleRequest extends $tea.Model {
    static names() {
        return {
            endTime: 'endTime',
            roomIds: 'roomIds',
            startTime: 'startTime',
        };
    }
    static types() {
        return {
            endTime: 'string',
            roomIds: { 'type': 'array', 'itemType': 'string' },
            startTime: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetMeetingRoomsScheduleRequest = GetMeetingRoomsScheduleRequest;
class GetMeetingRoomsScheduleResponseBody extends $tea.Model {
    static names() {
        return {
            scheduleInformation: 'scheduleInformation',
        };
    }
    static types() {
        return {
            scheduleInformation: { 'type': 'array', 'itemType': GetMeetingRoomsScheduleResponseBodyScheduleInformation },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetMeetingRoomsScheduleResponseBody = GetMeetingRoomsScheduleResponseBody;
class GetMeetingRoomsScheduleResponse 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: GetMeetingRoomsScheduleResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetMeetingRoomsScheduleResponse = GetMeetingRoomsScheduleResponse;
class GetScheduleHeaders 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.GetScheduleHeaders = GetScheduleHeaders;
class GetScheduleRequest extends $tea.Model {
    static names() {
        return {
            endTime: 'endTime',
            startTime: 'startTime',
            userIds: 'userIds',
        };
    }
    static types() {
        return {
            endTime: 'string',
            startTime: 'string',
            userIds: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetScheduleRequest = GetScheduleRequest;
class GetScheduleResponseBody extends $tea.Model {
    static names() {
        return {
            scheduleInformation: 'scheduleInformation',
        };
    }
    static types() {
        return {
            scheduleInformation: { 'type': 'array', 'itemType': GetScheduleResponseBodyScheduleInformation },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetScheduleResponseBody = GetScheduleResponseBody;
class GetScheduleResponse 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: GetScheduleResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetScheduleResponse = GetScheduleResponse;
class GetScheduleByMeHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xClientToken: 'x-client-token',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xClientToken: 'string',
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetScheduleByMeHeaders = GetScheduleByMeHeaders;
class GetScheduleByMeRequest extends $tea.Model {
    static names() {
        return {
            endTime: 'endTime',
            startTime: 'startTime',
            userIds: 'userIds',
        };
    }
    static types() {
        return {
            endTime: 'string',
            startTime: 'string',
            userIds: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetScheduleByMeRequest = GetScheduleByMeRequest;
class GetScheduleByMeResponseBody extends $tea.Model {
    static names() {
        return {
            scheduleInformation: 'scheduleInformation',
        };
    }
    static types() {
        return {
            scheduleInformation: { 'type': 'array', 'itemType': GetScheduleByMeResponseBodyScheduleInformation },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetScheduleByMeResponseBody = GetScheduleByMeResponseBody;
class GetScheduleByMeResponse 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: GetScheduleByMeResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetScheduleByMeResponse = GetScheduleByMeResponse;
class GetSignInLinkHeaders 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.GetSignInLinkHeaders = GetSignInLinkHeaders;
class GetSignInLinkResponseBody extends $tea.Model {
    static names() {
        return {
            signInLink: 'signInLink',
        };
    }
    static types() {
        return {
            signInLink: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSignInLinkResponseBody = GetSignInLinkResponseBody;
class GetSignInLinkResponse 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: GetSignInLinkResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSignInLinkResponse = GetSignInLinkResponse;
class GetSignInListHeaders 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.GetSignInListHeaders = GetSignInListHeaders;
class GetSignInListRequest extends $tea.Model {
    static names() {
        return {
            maxResults: 'maxResults',
            nextToken: 'nextToken',
            type: 'type',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            nextToken: 'string',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSignInListRequest = GetSignInListRequest;
class GetSignInListResponseBody extends $tea.Model {
    static names() {
        return {
            nextToken: 'nextToken',
            users: 'users',
        };
    }
    static types() {
        return {
            nextToken: 'string',
            users: { 'type': 'array', 'itemType': GetSignInListResponseBodyUsers },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSignInListResponseBody = GetSignInListResponseBody;
class GetSignInListResponse 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: GetSignInListResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSignInListResponse = GetSignInListResponse;
class GetSignOutLinkHeaders 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.GetSignOutLinkHeaders = GetSignOutLinkHeaders;
class GetSignOutLinkResponseBody extends $tea.Model {
    static names() {
        return {
            signOutLink: 'signOutLink',
        };
    }
    static types() {
        return {
            signOutLink: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSignOutLinkResponseBody = GetSignOutLinkResponseBody;
class GetSignOutLinkResponse 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: GetSignOutLinkResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSignOutLinkResponse = GetSignOutLinkResponse;
class GetSignOutListHeaders 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.GetSignOutListHeaders = GetSignOutListHeaders;
class GetSignOutListRequest extends $tea.Model {
    static names() {
        return {
            maxResults: 'maxResults',
            nextToken: 'nextToken',
            type: 'type',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            nextToken: 'string',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSignOutListRequest = GetSignOutListRequest;
class GetSignOutListResponseBody extends $tea.Model {
    static names() {
        return {
            nextToken: 'nextToken',
            users: 'users',
        };
    }
    static types() {
        return {
            nextToken: 'string',
            users: { 'type': 'array', 'itemType': GetSignOutListResponseBodyUsers },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSignOutListResponseBody = GetSignOutListResponseBody;
class GetSignOutListResponse 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: GetSignOutListResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSignOutListResponse = GetSignOutListResponse;
class GetSubscribedCalendarHeaders 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.GetSubscribedCalendarHeaders = GetSubscribedCalendarHeaders;
class GetSubscribedCalendarResponseBody extends $tea.Model {
    static names() {
        return {
            author: 'author',
            calendarId: 'calendarId',
            description: 'description',
            managers: 'managers',
            name: 'name',
            subscribeScope: 'subscribeScope',
        };
    }
    static types() {
        return {
            author: 'string',
            calendarId: 'string',
            description: 'string',
            managers: { 'type': 'array', 'itemType': 'string' },
            name: 'string',
            subscribeScope: GetSubscribedCalendarResponseBodySubscribeScope,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSubscribedCalendarResponseBody = GetSubscribedCalendarResponseBody;
class GetSubscribedCalendarResponse 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: GetSubscribedCalendarResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSubscribedCalendarResponse = GetSubscribedCalendarResponse;
class ListAclsHeaders 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.ListAclsHeaders = ListAclsHeaders;
class ListAclsResponseBody extends $tea.Model {
    static names() {
        return {
            acls: 'acls',
        };
    }
    static types() {
        return {
            acls: { 'type': 'array', 'itemType': ListAclsResponseBodyAcls },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAclsResponseBody = ListAclsResponseBody;
class ListAclsResponse 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: ListAclsResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAclsResponse = ListAclsResponse;
class ListAttendeesHeaders 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.ListAttendeesHeaders = ListAttendeesHeaders;
class ListAttendeesRequest extends $tea.Model {
    static names() {
        return {
            maxResults: 'maxResults',
            nextToken: 'nextToken',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            nextToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAttendeesRequest = ListAttendeesRequest;
class ListAttendeesResponseBody extends $tea.Model {
    static names() {
        return {
            attendees: 'attendees',
            nextToken: 'nextToken',
        };
    }
    static types() {
        return {
            attendees: { 'type': 'array', 'itemType': ListAttendeesResponseBodyAttendees },
            nextToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAttendeesResponseBody = ListAttendeesResponseBody;
class ListAttendeesResponse 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: ListAttendeesResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAttendeesResponse = ListAttendeesResponse;
class ListCalendarsHeaders 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.ListCalendarsHeaders = ListCalendarsHeaders;
class ListCalendarsResponseBody extends $tea.Model {
    static names() {
        return {
            response: 'response',
        };
    }
    static types() {
        return {
            response: ListCalendarsResponseBodyResponse,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListCalendarsResponseBody = ListCalendarsResponseBody;
class ListCalendarsResponse 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: ListCalendarsResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListCalendarsResponse = ListCalendarsResponse;
class ListCategoriesHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xClientToken: 'x-client-token',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xClientToken: 'string',
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListCategoriesHeaders = ListCategoriesHeaders;
class ListCategoriesResponseBody extends $tea.Model {
    static names() {
        return {
            categories: 'categories',
        };
    }
    static types() {
        return {
            categories: { 'type': 'array', 'itemType': ListCategoriesResponseBodyCategories },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListCategoriesResponseBody = ListCategoriesResponseBody;
class ListCategoriesResponse 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: ListCategoriesResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListCategoriesResponse = ListCategoriesResponse;
class ListEventsHeaders 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.ListEventsHeaders = ListEventsHeaders;
class ListEventsRequest extends $tea.Model {
    static names() {
        return {
            maxAttendees: 'maxAttendees',
            maxResults: 'maxResults',
            nextToken: 'nextToken',
            seriesMasterId: 'seriesMasterId',
            showDeleted: 'showDeleted',
            syncToken: 'syncToken',
            timeMax: 'timeMax',
            timeMin: 'timeMin',
        };
    }
    static types() {
        return {
            maxAttendees: 'number',
            maxResults: 'number',
            nextToken: 'string',
            seriesMasterId: 'string',
            showDeleted: 'boolean',
            syncToken: 'string',
            timeMax: 'string',
            timeMin: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsRequest = ListEventsRequest;
class ListEventsResponseBody extends $tea.Model {
    static names() {
        return {
            events: 'events',
            nextToken: 'nextToken',
            syncToken: 'syncToken',
        };
    }
    static types() {
        return {
            events: { 'type': 'array', 'itemType': ListEventsResponseBodyEvents },
            nextToken: 'string',
            syncToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsResponseBody = ListEventsResponseBody;
class ListEventsResponse 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: ListEventsResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsResponse = ListEventsResponse;
class ListEventsInstancesHeaders 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.ListEventsInstancesHeaders = ListEventsInstancesHeaders;
class ListEventsInstancesRequest extends $tea.Model {
    static names() {
        return {
            maxAttendees: 'maxAttendees',
            maxResults: 'maxResults',
            seriesMasterId: 'seriesMasterId',
            startRecurrenceId: 'startRecurrenceId',
        };
    }
    static types() {
        return {
            maxAttendees: 'number',
            maxResults: 'number',
            seriesMasterId: 'string',
            startRecurrenceId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsInstancesRequest = ListEventsInstancesRequest;
class ListEventsInstancesResponseBody extends $tea.Model {
    static names() {
        return {
            events: 'events',
        };
    }
    static types() {
        return {
            events: { 'type': 'array', 'itemType': ListEventsInstancesResponseBodyEvents },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsInstancesResponseBody = ListEventsInstancesResponseBody;
class ListEventsInstancesResponse 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: ListEventsInstancesResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsInstancesResponse = ListEventsInstancesResponse;
class ListEventsViewHeaders 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.ListEventsViewHeaders = ListEventsViewHeaders;
class ListEventsViewRequest extends $tea.Model {
    static names() {
        return {
            maxAttendees: 'maxAttendees',
            maxResults: 'maxResults',
            nextToken: 'nextToken',
            timeMax: 'timeMax',
            timeMin: 'timeMin',
        };
    }
    static types() {
        return {
            maxAttendees: 'number',
            maxResults: 'number',
            nextToken: 'string',
            timeMax: 'string',
            timeMin: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewRequest = ListEventsViewRequest;
class ListEventsViewResponseBody extends $tea.Model {
    static names() {
        return {
            events: 'events',
            nextToken: 'nextToken',
        };
    }
    static types() {
        return {
            events: { 'type': 'array', 'itemType': ListEventsViewResponseBodyEvents },
            nextToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewResponseBody = ListEventsViewResponseBody;
class ListEventsViewResponse 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: ListEventsViewResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewResponse = ListEventsViewResponse;
class ListEventsViewByMeHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xClientToken: 'x-client-token',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xClientToken: 'string',
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewByMeHeaders = ListEventsViewByMeHeaders;
class ListEventsViewByMeRequest extends $tea.Model {
    static names() {
        return {
            maxAttendees: 'maxAttendees',
            maxResults: 'maxResults',
            nextToken: 'nextToken',
            timeMax: 'timeMax',
            timeMin: 'timeMin',
        };
    }
    static types() {
        return {
            maxAttendees: 'number',
            maxResults: 'number',
            nextToken: 'string',
            timeMax: 'string',
            timeMin: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewByMeRequest = ListEventsViewByMeRequest;
class ListEventsViewByMeResponseBody extends $tea.Model {
    static names() {
        return {
            events: 'events',
            nextToken: 'nextToken',
        };
    }
    static types() {
        return {
            events: { 'type': 'array', 'itemType': ListEventsViewByMeResponseBodyEvents },
            nextToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewByMeResponseBody = ListEventsViewByMeResponseBody;
class ListEventsViewByMeResponse 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: ListEventsViewByMeResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewByMeResponse = ListEventsViewByMeResponse;
class ListInstancesHeaders 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.ListInstancesHeaders = ListInstancesHeaders;
class ListInstancesRequest extends $tea.Model {
    static names() {
        return {
            maxAttendees: 'maxAttendees',
            maxResults: 'maxResults',
            nextToken: 'nextToken',
            timeMax: 'timeMax',
            timeMin: 'timeMin',
        };
    }
    static types() {
        return {
            maxAttendees: 'number',
            maxResults: 'number',
            nextToken: 'string',
            timeMax: 'string',
            timeMin: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListInstancesRequest = ListInstancesRequest;
class ListInstancesResponseBody extends $tea.Model {
    static names() {
        return {
            events: 'events',
            nextToken: 'nextToken',
        };
    }
    static types() {
        return {
            events: { 'type': 'array', 'itemType': ListInstancesResponseBodyEvents },
            nextToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListInstancesResponseBody = ListInstancesResponseBody;
class ListInstancesResponse 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: ListInstancesResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListInstancesResponse = ListInstancesResponse;
class MeetingRoomRespondHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            userAgent: 'userAgent',
            xClientToken: 'x-client-token',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            userAgent: 'string',
            xClientToken: 'string',
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.MeetingRoomRespondHeaders = MeetingRoomRespondHeaders;
class MeetingRoomRespondRequest extends $tea.Model {
    static names() {
        return {
            responseStatus: 'responseStatus',
        };
    }
    static types() {
        return {
            responseStatus: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.MeetingRoomRespondRequest = MeetingRoomRespondRequest;
class MeetingRoomRespondResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.MeetingRoomRespondResponseBody = MeetingRoomRespondResponseBody;
class MeetingRoomRespondResponse 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: MeetingRoomRespondResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.MeetingRoomRespondResponse = MeetingRoomRespondResponse;
class PatchEventHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xClientToken: 'x-client-token',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xClientToken: 'string',
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventHeaders = PatchEventHeaders;
class PatchEventRequest extends $tea.Model {
    static names() {
        return {
            attendees: 'attendees',
            cardInstances: 'cardInstances',
            categories: 'categories',
            description: 'description',
            end: 'end',
            extra: 'extra',
            freeBusyStatus: 'freeBusyStatus',
            id: 'id',
            isAllDay: 'isAllDay',
            location: 'location',
            onlineMeetingInfo: 'onlineMeetingInfo',
            recurrence: 'recurrence',
            reminders: 'reminders',
            richTextDescription: 'richTextDescription',
            start: 'start',
            summary: 'summary',
            uiConfigs: 'uiConfigs',
        };
    }
    static types() {
        return {
            attendees: { 'type': 'array', 'itemType': PatchEventRequestAttendees },
            cardInstances: { 'type': 'array', 'itemType': PatchEventRequestCardInstances },
            categories: { 'type': 'array', 'itemType': PatchEventRequestCategories },
            description: 'string',
            end: PatchEventRequestEnd,
            extra: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            freeBusyStatus: 'string',
            id: 'string',
            isAllDay: 'boolean',
            location: PatchEventRequestLocation,
            onlineMeetingInfo: PatchEventRequestOnlineMeetingInfo,
            recurrence: PatchEventRequestRecurrence,
            reminders: { 'type': 'array', 'itemType': PatchEventRequestReminders },
            richTextDescription: PatchEventRequestRichTextDescription,
            start: PatchEventRequestStart,
            summary: 'string',
            uiConfigs: { 'type': 'array', 'itemType': PatchEventRequestUiConfigs },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventRequest = PatchEventRequest;
class PatchEventResponseBody extends $tea.Model {
    static names() {
        return {
            attendees: 'attendees',
            cardInstances: 'cardInstances',
            categories: 'categories',
            createTime: 'createTime',
            description: 'description',
            end: 'end',
            id: 'id',
            isAllDay: 'isAllDay',
            location: 'location',
            onlineMeetingInfo: 'onlineMeetingInfo',
            organizer: 'organizer',
            recurrence: 'recurrence',
            reminders: 'reminders',
            richTextDescription: 'richTextDescription',
            start: 'start',
            summary: 'summary',
            uiConfigs: 'uiConfigs',
            updateTime: 'updateTime',
        };
    }
    static types() {
        return {
            attendees: { 'type': 'array', 'itemType': PatchEventResponseBodyAttendees },
            cardInstances: { 'type': 'array', 'itemType': PatchEventResponseBodyCardInstances },
            categories: { 'type': 'array', 'itemType': PatchEventResponseBodyCategories },
            createTime: 'string',
            description: 'string',
            end: PatchEventResponseBodyEnd,
            id: 'string',
            isAllDay: 'boolean',
            location: PatchEventResponseBodyLocation,
            onlineMeetingInfo: PatchEventResponseBodyOnlineMeetingInfo,
            organizer: PatchEventResponseBodyOrganizer,
            recurrence: PatchEventResponseBodyRecurrence,
            reminders: { 'type': 'array', 'itemType': PatchEventResponseBodyReminders },
            richTextDescription: PatchEventResponseBodyRichTextDescription,
            start: PatchEventResponseBodyStart,
            summary: 'string',
            uiConfigs: { 'type': 'array', 'itemType': PatchEventResponseBodyUiConfigs },
            updateTime: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventResponseBody = PatchEventResponseBody;
class PatchEventResponse 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: PatchEventResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventResponse = PatchEventResponse;
class RemoveAttendeeHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xClientToken: 'x-client-token',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xClientToken: 'string',
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RemoveAttendeeHeaders = RemoveAttendeeHeaders;
class RemoveAttendeeRequest extends $tea.Model {
    static names() {
        return {
            attendeesToRemove: 'attendeesToRemove',
        };
    }
    static types() {
        return {
            attendeesToRemove: { 'type': 'array', 'itemType': RemoveAttendeeRequestAttendeesToRemove },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RemoveAttendeeRequest = RemoveAttendeeRequest;
class RemoveAttendeeResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RemoveAttendeeResponse = RemoveAttendeeResponse;
class RemoveMeetingRoomsHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xClientToken: 'x-client-token',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xClientToken: 'string',
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RemoveMeetingRoomsHeaders = RemoveMeetingRoomsHeaders;
class RemoveMeetingRoomsRequest extends $tea.Model {
    static names() {
        return {
            meetingRoomsToRemove: 'meetingRoomsToRemove',
        };
    }
    static types() {
        return {
            meetingRoomsToRemove: { 'type': 'array', 'itemType': RemoveMeetingRoomsRequestMeetingRoomsToRemove },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RemoveMeetingRoomsRequest = RemoveMeetingRoomsRequest;
class RemoveMeetingRoomsResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RemoveMeetingRoomsResponseBody = RemoveMeetingRoomsResponseBody;
class RemoveMeetingRoomsResponse 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: RemoveMeetingRoomsResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RemoveMeetingRoomsResponse = RemoveMeetingRoomsResponse;
class RespondEventHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xClientToken: 'x-client-token',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xClientToken: 'string',
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RespondEventHeaders = RespondEventHeaders;
class RespondEventRequest extends $tea.Model {
    static names() {
        return {
            responseStatus: 'responseStatus',
        };
    }
    static types() {
        return {
            responseStatus: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RespondEventRequest = RespondEventRequest;
class RespondEventResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RespondEventResponse = RespondEventResponse;
class SignInHeaders 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.SignInHeaders = SignInHeaders;
class SignInResponseBody extends $tea.Model {
    static names() {
        return {
            checkInTime: 'checkInTime',
        };
    }
    static types() {
        return {
            checkInTime: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SignInResponseBody = SignInResponseBody;
class SignInResponse 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: SignInResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SignInResponse = SignInResponse;
class SignOutHeaders 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.SignOutHeaders = SignOutHeaders;
class SignOutResponseBody extends $tea.Model {
    static names() {
        return {
            checkOutTime: 'checkOutTime',
        };
    }
    static types() {
        return {
            checkOutTime: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SignOutResponseBody = SignOutResponseBody;
class SignOutResponse 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: SignOutResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SignOutResponse = SignOutResponse;
class SubscribeCalendarHeaders 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.SubscribeCalendarHeaders = SubscribeCalendarHeaders;
class SubscribeCalendarResponse extends $tea.Model {
    static names() {
        return {
            headers: 'headers',
            statusCode: 'statusCode',
        };
    }
    static types() {
        return {
            headers: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            statusCode: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SubscribeCalendarResponse = SubscribeCalendarResponse;
class TransferEventHeaders extends $tea.Model {
    static names() {
        return {
            commonHeaders: 'commonHeaders',
            xClientToken: 'x-client-token',
            xAcsDingtalkAccessToken: 'x-acs-dingtalk-access-token',
        };
    }
    static types() {
        return {
            commonHeaders: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
            xClientToken: 'string',
            xAcsDingtalkAccessToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.TransferEventHeaders = TransferEventHeaders;
class TransferEventRequest extends $tea.Model {
    static names() {
        return {
            isExitCalendar: 'isExitCalendar',
            needNotifyViaO2O: 'needNotifyViaO2O',
            newOrganizerId: 'newOrganizerId',
        };
    }
    static types() {
        return {
            isExitCalendar: 'boolean',
            needNotifyViaO2O: 'boolean',
            newOrganizerId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.TransferEventRequest = TransferEventRequest;
class TransferEventResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.TransferEventResponseBody = TransferEventResponseBody;
class TransferEventResponse 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: TransferEventResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.TransferEventResponse = TransferEventResponse;
class UnsubscribeCalendarHeaders 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.UnsubscribeCalendarHeaders = UnsubscribeCalendarHeaders;
class UnsubscribeCalendarResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UnsubscribeCalendarResponseBody = UnsubscribeCalendarResponseBody;
class UnsubscribeCalendarResponse 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: UnsubscribeCalendarResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UnsubscribeCalendarResponse = UnsubscribeCalendarResponse;
class UpdateSubscribedCalendarsHeaders 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.UpdateSubscribedCalendarsHeaders = UpdateSubscribedCalendarsHeaders;
class UpdateSubscribedCalendarsRequest extends $tea.Model {
    static names() {
        return {
            description: 'description',
            managers: 'managers',
            name: 'name',
            subscribeScope: 'subscribeScope',
        };
    }
    static types() {
        return {
            description: 'string',
            managers: { 'type': 'array', 'itemType': 'string' },
            name: 'string',
            subscribeScope: UpdateSubscribedCalendarsRequestSubscribeScope,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateSubscribedCalendarsRequest = UpdateSubscribedCalendarsRequest;
class UpdateSubscribedCalendarsResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateSubscribedCalendarsResponseBody = UpdateSubscribedCalendarsResponseBody;
class UpdateSubscribedCalendarsResponse 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: UpdateSubscribedCalendarsResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateSubscribedCalendarsResponse = UpdateSubscribedCalendarsResponse;
class AddAttendeeRequestAttendeesToAdd extends $tea.Model {
    static names() {
        return {
            id: 'id',
            isOptional: 'isOptional',
        };
    }
    static types() {
        return {
            id: 'string',
            isOptional: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AddAttendeeRequestAttendeesToAdd = AddAttendeeRequestAttendeesToAdd;
class AddMeetingRoomsRequestMeetingRoomsToAdd extends $tea.Model {
    static names() {
        return {
            roomId: 'roomId',
        };
    }
    static types() {
        return {
            roomId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AddMeetingRoomsRequestMeetingRoomsToAdd = AddMeetingRoomsRequestMeetingRoomsToAdd;
class CreateAclsRequestScope extends $tea.Model {
    static names() {
        return {
            scopeType: 'scopeType',
            userId: 'userId',
        };
    }
    static types() {
        return {
            scopeType: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateAclsRequestScope = CreateAclsRequestScope;
class CreateAclsResponseBodyScope extends $tea.Model {
    static names() {
        return {
            scopeType: 'scopeType',
            userId: 'userId',
        };
    }
    static types() {
        return {
            scopeType: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateAclsResponseBodyScope = CreateAclsResponseBodyScope;
class CreateEventRequestAttendees extends $tea.Model {
    static names() {
        return {
            id: 'id',
            isOptional: 'isOptional',
        };
    }
    static types() {
        return {
            id: 'string',
            isOptional: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventRequestAttendees = CreateEventRequestAttendees;
class CreateEventRequestCardInstances extends $tea.Model {
    static names() {
        return {
            outTrackId: 'outTrackId',
            scenario: 'scenario',
        };
    }
    static types() {
        return {
            outTrackId: 'string',
            scenario: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventRequestCardInstances = CreateEventRequestCardInstances;
class CreateEventRequestCategories extends $tea.Model {
    static names() {
        return {
            categoryId: 'categoryId',
            displayName: 'displayName',
        };
    }
    static types() {
        return {
            categoryId: 'string',
            displayName: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventRequestCategories = CreateEventRequestCategories;
class CreateEventRequestEnd extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventRequestEnd = CreateEventRequestEnd;
class CreateEventRequestLocation extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
        };
    }
    static types() {
        return {
            displayName: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventRequestLocation = CreateEventRequestLocation;
class CreateEventRequestOnlineMeetingInfo extends $tea.Model {
    static names() {
        return {
            type: 'type',
        };
    }
    static types() {
        return {
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventRequestOnlineMeetingInfo = CreateEventRequestOnlineMeetingInfo;
class CreateEventRequestRecurrencePattern extends $tea.Model {
    static names() {
        return {
            dayOfMonth: 'dayOfMonth',
            daysOfWeek: 'daysOfWeek',
            firstDayOfWeek: 'firstDayOfWeek',
            index: 'index',
            interval: 'interval',
            type: 'type',
        };
    }
    static types() {
        return {
            dayOfMonth: 'number',
            daysOfWeek: 'string',
            firstDayOfWeek: 'string',
            index: 'string',
            interval: 'number',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventRequestRecurrencePattern = CreateEventRequestRecurrencePattern;
class CreateEventRequestRecurrenceRange extends $tea.Model {
    static names() {
        return {
            endDate: 'endDate',
            numberOfOccurrences: 'numberOfOccurrences',
            type: 'type',
        };
    }
    static types() {
        return {
            endDate: 'string',
            numberOfOccurrences: 'number',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventRequestRecurrenceRange = CreateEventRequestRecurrenceRange;
class CreateEventRequestRecurrence extends $tea.Model {
    static names() {
        return {
            pattern: 'pattern',
            range: 'range',
        };
    }
    static types() {
        return {
            pattern: CreateEventRequestRecurrencePattern,
            range: CreateEventRequestRecurrenceRange,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventRequestRecurrence = CreateEventRequestRecurrence;
class CreateEventRequestReminders extends $tea.Model {
    static names() {
        return {
            method: 'method',
            minutes: 'minutes',
        };
    }
    static types() {
        return {
            method: 'string',
            minutes: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventRequestReminders = CreateEventRequestReminders;
class CreateEventRequestRichTextDescription extends $tea.Model {
    static names() {
        return {
            text: 'text',
        };
    }
    static types() {
        return {
            text: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventRequestRichTextDescription = CreateEventRequestRichTextDescription;
class CreateEventRequestStart extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventRequestStart = CreateEventRequestStart;
class CreateEventRequestUiConfigs extends $tea.Model {
    static names() {
        return {
            uiName: 'uiName',
            uiStatus: 'uiStatus',
        };
    }
    static types() {
        return {
            uiName: 'string',
            uiStatus: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventRequestUiConfigs = CreateEventRequestUiConfigs;
class CreateEventResponseBodyAttendees extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            id: 'id',
            isOptional: 'isOptional',
            responseStatus: 'responseStatus',
            self: 'self',
        };
    }
    static types() {
        return {
            displayName: 'string',
            id: 'string',
            isOptional: 'boolean',
            responseStatus: 'string',
            self: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventResponseBodyAttendees = CreateEventResponseBodyAttendees;
class CreateEventResponseBodyCardInstances extends $tea.Model {
    static names() {
        return {
            outTrackId: 'outTrackId',
            scenario: 'scenario',
        };
    }
    static types() {
        return {
            outTrackId: 'string',
            scenario: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventResponseBodyCardInstances = CreateEventResponseBodyCardInstances;
class CreateEventResponseBodyCategories extends $tea.Model {
    static names() {
        return {
            categoryId: 'categoryId',
            displayName: 'displayName',
        };
    }
    static types() {
        return {
            categoryId: 'string',
            displayName: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventResponseBodyCategories = CreateEventResponseBodyCategories;
class CreateEventResponseBodyEnd extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventResponseBodyEnd = CreateEventResponseBodyEnd;
class CreateEventResponseBodyLocation extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
        };
    }
    static types() {
        return {
            displayName: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventResponseBodyLocation = CreateEventResponseBodyLocation;
class CreateEventResponseBodyOnlineMeetingInfo extends $tea.Model {
    static names() {
        return {
            conferenceId: 'conferenceId',
            extraInfo: 'extraInfo',
            type: 'type',
            url: 'url',
        };
    }
    static types() {
        return {
            conferenceId: 'string',
            extraInfo: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
            type: 'string',
            url: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventResponseBodyOnlineMeetingInfo = CreateEventResponseBodyOnlineMeetingInfo;
class CreateEventResponseBodyOrganizer extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            id: 'id',
            responseStatus: 'responseStatus',
            self: 'self',
        };
    }
    static types() {
        return {
            displayName: 'string',
            id: 'string',
            responseStatus: 'string',
            self: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventResponseBodyOrganizer = CreateEventResponseBodyOrganizer;
class CreateEventResponseBodyRecurrencePattern extends $tea.Model {
    static names() {
        return {
            dayOfMonth: 'dayOfMonth',
            daysOfWeek: 'daysOfWeek',
            firstDayOfWeek: 'firstDayOfWeek',
            index: 'index',
            interval: 'interval',
            type: 'type',
        };
    }
    static types() {
        return {
            dayOfMonth: 'number',
            daysOfWeek: 'string',
            firstDayOfWeek: 'string',
            index: 'string',
            interval: 'number',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventResponseBodyRecurrencePattern = CreateEventResponseBodyRecurrencePattern;
class CreateEventResponseBodyRecurrenceRange extends $tea.Model {
    static names() {
        return {
            endDate: 'endDate',
            numberOfOccurrences: 'numberOfOccurrences',
            type: 'type',
        };
    }
    static types() {
        return {
            endDate: 'string',
            numberOfOccurrences: 'number',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventResponseBodyRecurrenceRange = CreateEventResponseBodyRecurrenceRange;
class CreateEventResponseBodyRecurrence extends $tea.Model {
    static names() {
        return {
            pattern: 'pattern',
            range: 'range',
        };
    }
    static types() {
        return {
            pattern: CreateEventResponseBodyRecurrencePattern,
            range: CreateEventResponseBodyRecurrenceRange,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventResponseBodyRecurrence = CreateEventResponseBodyRecurrence;
class CreateEventResponseBodyReminders extends $tea.Model {
    static names() {
        return {
            method: 'method',
            minutes: 'minutes',
        };
    }
    static types() {
        return {
            method: 'string',
            minutes: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventResponseBodyReminders = CreateEventResponseBodyReminders;
class CreateEventResponseBodyRichTextDescription extends $tea.Model {
    static names() {
        return {
            text: 'text',
        };
    }
    static types() {
        return {
            text: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventResponseBodyRichTextDescription = CreateEventResponseBodyRichTextDescription;
class CreateEventResponseBodyStart extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventResponseBodyStart = CreateEventResponseBodyStart;
class CreateEventResponseBodyUiConfigs extends $tea.Model {
    static names() {
        return {
            uiName: 'uiName',
            uiStatus: 'uiStatus',
        };
    }
    static types() {
        return {
            uiName: 'string',
            uiStatus: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventResponseBodyUiConfigs = CreateEventResponseBodyUiConfigs;
class CreateEventByMeRequestAttendees extends $tea.Model {
    static names() {
        return {
            id: 'id',
            isOptional: 'isOptional',
        };
    }
    static types() {
        return {
            id: 'string',
            isOptional: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeRequestAttendees = CreateEventByMeRequestAttendees;
class CreateEventByMeRequestEnd extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeRequestEnd = CreateEventByMeRequestEnd;
class CreateEventByMeRequestLocation extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
        };
    }
    static types() {
        return {
            displayName: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeRequestLocation = CreateEventByMeRequestLocation;
class CreateEventByMeRequestOnlineMeetingInfo extends $tea.Model {
    static names() {
        return {
            type: 'type',
        };
    }
    static types() {
        return {
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeRequestOnlineMeetingInfo = CreateEventByMeRequestOnlineMeetingInfo;
class CreateEventByMeRequestRecurrencePattern extends $tea.Model {
    static names() {
        return {
            dayOfMonth: 'dayOfMonth',
            daysOfWeek: 'daysOfWeek',
            firstDayOfWeek: 'firstDayOfWeek',
            index: 'index',
            interval: 'interval',
            type: 'type',
        };
    }
    static types() {
        return {
            dayOfMonth: 'number',
            daysOfWeek: 'string',
            firstDayOfWeek: 'string',
            index: 'string',
            interval: 'number',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeRequestRecurrencePattern = CreateEventByMeRequestRecurrencePattern;
class CreateEventByMeRequestRecurrenceRange extends $tea.Model {
    static names() {
        return {
            endDate: 'endDate',
            numberOfOccurrences: 'numberOfOccurrences',
            type: 'type',
        };
    }
    static types() {
        return {
            endDate: 'string',
            numberOfOccurrences: 'number',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeRequestRecurrenceRange = CreateEventByMeRequestRecurrenceRange;
class CreateEventByMeRequestRecurrence extends $tea.Model {
    static names() {
        return {
            pattern: 'pattern',
            range: 'range',
        };
    }
    static types() {
        return {
            pattern: CreateEventByMeRequestRecurrencePattern,
            range: CreateEventByMeRequestRecurrenceRange,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeRequestRecurrence = CreateEventByMeRequestRecurrence;
class CreateEventByMeRequestReminders extends $tea.Model {
    static names() {
        return {
            method: 'method',
            minutes: 'minutes',
        };
    }
    static types() {
        return {
            method: 'string',
            minutes: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeRequestReminders = CreateEventByMeRequestReminders;
class CreateEventByMeRequestRichTextDescription extends $tea.Model {
    static names() {
        return {
            text: 'text',
        };
    }
    static types() {
        return {
            text: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeRequestRichTextDescription = CreateEventByMeRequestRichTextDescription;
class CreateEventByMeRequestStart extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeRequestStart = CreateEventByMeRequestStart;
class CreateEventByMeRequestUiConfigs extends $tea.Model {
    static names() {
        return {
            uiName: 'uiName',
            uiStatus: 'uiStatus',
        };
    }
    static types() {
        return {
            uiName: 'string',
            uiStatus: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeRequestUiConfigs = CreateEventByMeRequestUiConfigs;
class CreateEventByMeResponseBodyAttendees extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            id: 'id',
            isOptional: 'isOptional',
            responseStatus: 'responseStatus',
            self: 'self',
        };
    }
    static types() {
        return {
            displayName: 'string',
            id: 'string',
            isOptional: 'boolean',
            responseStatus: 'string',
            self: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeResponseBodyAttendees = CreateEventByMeResponseBodyAttendees;
class CreateEventByMeResponseBodyEnd extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeResponseBodyEnd = CreateEventByMeResponseBodyEnd;
class CreateEventByMeResponseBodyLocation extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
        };
    }
    static types() {
        return {
            displayName: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeResponseBodyLocation = CreateEventByMeResponseBodyLocation;
class CreateEventByMeResponseBodyOnlineMeetingInfo extends $tea.Model {
    static names() {
        return {
            conferenceId: 'conferenceId',
            extraInfo: 'extraInfo',
            type: 'type',
            url: 'url',
        };
    }
    static types() {
        return {
            conferenceId: 'string',
            extraInfo: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
            type: 'string',
            url: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeResponseBodyOnlineMeetingInfo = CreateEventByMeResponseBodyOnlineMeetingInfo;
class CreateEventByMeResponseBodyOrganizer extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            id: 'id',
            responseStatus: 'responseStatus',
            self: 'self',
        };
    }
    static types() {
        return {
            displayName: 'string',
            id: 'string',
            responseStatus: 'string',
            self: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeResponseBodyOrganizer = CreateEventByMeResponseBodyOrganizer;
class CreateEventByMeResponseBodyRecurrencePattern extends $tea.Model {
    static names() {
        return {
            dayOfMonth: 'dayOfMonth',
            daysOfWeek: 'daysOfWeek',
            firstDayOfWeek: 'firstDayOfWeek',
            index: 'index',
            interval: 'interval',
            type: 'type',
        };
    }
    static types() {
        return {
            dayOfMonth: 'number',
            daysOfWeek: 'string',
            firstDayOfWeek: 'string',
            index: 'string',
            interval: 'number',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeResponseBodyRecurrencePattern = CreateEventByMeResponseBodyRecurrencePattern;
class CreateEventByMeResponseBodyRecurrenceRange extends $tea.Model {
    static names() {
        return {
            endDate: 'endDate',
            numberOfOccurrences: 'numberOfOccurrences',
            type: 'type',
        };
    }
    static types() {
        return {
            endDate: 'string',
            numberOfOccurrences: 'number',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeResponseBodyRecurrenceRange = CreateEventByMeResponseBodyRecurrenceRange;
class CreateEventByMeResponseBodyRecurrence extends $tea.Model {
    static names() {
        return {
            pattern: 'pattern',
            range: 'range',
        };
    }
    static types() {
        return {
            pattern: CreateEventByMeResponseBodyRecurrencePattern,
            range: CreateEventByMeResponseBodyRecurrenceRange,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeResponseBodyRecurrence = CreateEventByMeResponseBodyRecurrence;
class CreateEventByMeResponseBodyReminders extends $tea.Model {
    static names() {
        return {
            method: 'method',
            minutes: 'minutes',
        };
    }
    static types() {
        return {
            method: 'string',
            minutes: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeResponseBodyReminders = CreateEventByMeResponseBodyReminders;
class CreateEventByMeResponseBodyRichTextDescription extends $tea.Model {
    static names() {
        return {
            text: 'text',
        };
    }
    static types() {
        return {
            text: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeResponseBodyRichTextDescription = CreateEventByMeResponseBodyRichTextDescription;
class CreateEventByMeResponseBodyStart extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeResponseBodyStart = CreateEventByMeResponseBodyStart;
class CreateEventByMeResponseBodyUiConfigs extends $tea.Model {
    static names() {
        return {
            uiName: 'uiName',
            uiStatus: 'uiStatus',
        };
    }
    static types() {
        return {
            uiName: 'string',
            uiStatus: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateEventByMeResponseBodyUiConfigs = CreateEventByMeResponseBodyUiConfigs;
class CreateSubscribedCalendarRequestSubscribeScope extends $tea.Model {
    static names() {
        return {
            corpIds: 'corpIds',
            openConversationIds: 'openConversationIds',
            unionIds: 'unionIds',
        };
    }
    static types() {
        return {
            corpIds: { 'type': 'array', 'itemType': 'string' },
            openConversationIds: { 'type': 'array', 'itemType': 'string' },
            unionIds: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateSubscribedCalendarRequestSubscribeScope = CreateSubscribedCalendarRequestSubscribeScope;
class GetEventResponseBodyAttendees extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            id: 'id',
            isOptional: 'isOptional',
            responseStatus: 'responseStatus',
            self: 'self',
        };
    }
    static types() {
        return {
            displayName: 'string',
            id: 'string',
            isOptional: 'boolean',
            responseStatus: 'string',
            self: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetEventResponseBodyAttendees = GetEventResponseBodyAttendees;
class GetEventResponseBodyCardInstances extends $tea.Model {
    static names() {
        return {
            outTrackId: 'outTrackId',
            scenario: 'scenario',
        };
    }
    static types() {
        return {
            outTrackId: 'string',
            scenario: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetEventResponseBodyCardInstances = GetEventResponseBodyCardInstances;
class GetEventResponseBodyCategories extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
        };
    }
    static types() {
        return {
            displayName: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetEventResponseBodyCategories = GetEventResponseBodyCategories;
class GetEventResponseBodyEnd extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetEventResponseBodyEnd = GetEventResponseBodyEnd;
class GetEventResponseBodyExtendedPropertiesSharedProperties extends $tea.Model {
    static names() {
        return {
            belongCorpId: 'belongCorpId',
            sourceOpenCid: 'sourceOpenCid',
        };
    }
    static types() {
        return {
            belongCorpId: 'string',
            sourceOpenCid: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetEventResponseBodyExtendedPropertiesSharedProperties = GetEventResponseBodyExtendedPropertiesSharedProperties;
class GetEventResponseBodyExtendedProperties extends $tea.Model {
    static names() {
        return {
            sharedProperties: 'sharedProperties',
        };
    }
    static types() {
        return {
            sharedProperties: GetEventResponseBodyExtendedPropertiesSharedProperties,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetEventResponseBodyExtendedProperties = GetEventResponseBodyExtendedProperties;
class GetEventResponseBodyLocation extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            meetingRooms: 'meetingRooms',
        };
    }
    static types() {
        return {
            displayName: 'string',
            meetingRooms: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetEventResponseBodyLocation = GetEventResponseBodyLocation;
class GetEventResponseBodyMeetingRooms extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            responseStatus: 'responseStatus',
            roomId: 'roomId',
        };
    }
    static types() {
        return {
            displayName: 'string',
            responseStatus: 'string',
            roomId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetEventResponseBodyMeetingRooms = GetEventResponseBodyMeetingRooms;
class GetEventResponseBodyOnlineMeetingInfo extends $tea.Model {
    static names() {
        return {
            conferenceId: 'conferenceId',
            extraInfo: 'extraInfo',
            type: 'type',
            url: 'url',
        };
    }
    static types() {
        return {
            conferenceId: 'string',
            extraInfo: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
            type: 'string',
            url: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetEventResponseBodyOnlineMeetingInfo = GetEventResponseBodyOnlineMeetingInfo;
class GetEventResponseBodyOrganizer extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            id: 'id',
            responseStatus: 'responseStatus',
            self: 'self',
        };
    }
    static types() {
        return {
            displayName: 'string',
            id: 'string',
            responseStatus: 'string',
            self: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetEventResponseBodyOrganizer = GetEventResponseBodyOrganizer;
class GetEventResponseBodyOriginStart extends $tea.Model {
    static names() {
        return {
            dateTime: 'dateTime',
        };
    }
    static types() {
        return {
            dateTime: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetEventResponseBodyOriginStart = GetEventResponseBodyOriginStart;
class GetEventResponseBodyRecurrencePattern extends $tea.Model {
    static names() {
        return {
            dayOfMonth: 'dayOfMonth',
            daysOfWeek: 'daysOfWeek',
            firstDayOfWeek: 'firstDayOfWeek',
            index: 'index',
            interval: 'interval',
            type: 'type',
        };
    }
    static types() {
        return {
            dayOfMonth: 'number',
            daysOfWeek: 'string',
            firstDayOfWeek: 'string',
            index: 'string',
            interval: 'number',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetEventResponseBodyRecurrencePattern = GetEventResponseBodyRecurrencePattern;
class GetEventResponseBodyRecurrenceRange extends $tea.Model {
    static names() {
        return {
            endDate: 'endDate',
            numberOfOccurrences: 'numberOfOccurrences',
            type: 'type',
        };
    }
    static types() {
        return {
            endDate: 'string',
            numberOfOccurrences: 'number',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetEventResponseBodyRecurrenceRange = GetEventResponseBodyRecurrenceRange;
class GetEventResponseBodyRecurrence extends $tea.Model {
    static names() {
        return {
            pattern: 'pattern',
            range: 'range',
        };
    }
    static types() {
        return {
            pattern: GetEventResponseBodyRecurrencePattern,
            range: GetEventResponseBodyRecurrenceRange,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetEventResponseBodyRecurrence = GetEventResponseBodyRecurrence;
class GetEventResponseBodyReminders extends $tea.Model {
    static names() {
        return {
            method: 'method',
            minutes: 'minutes',
        };
    }
    static types() {
        return {
            method: 'string',
            minutes: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetEventResponseBodyReminders = GetEventResponseBodyReminders;
class GetEventResponseBodyRichTextDescription extends $tea.Model {
    static names() {
        return {
            text: 'text',
        };
    }
    static types() {
        return {
            text: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetEventResponseBodyRichTextDescription = GetEventResponseBodyRichTextDescription;
class GetEventResponseBodyStart extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetEventResponseBodyStart = GetEventResponseBodyStart;
class GetEventResponseBodyUiConfigs extends $tea.Model {
    static names() {
        return {
            uiName: 'uiName',
            uiStatus: 'uiStatus',
        };
    }
    static types() {
        return {
            uiName: 'string',
            uiStatus: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetEventResponseBodyUiConfigs = GetEventResponseBodyUiConfigs;
class GetMeetingRoomsScheduleResponseBodyScheduleInformationScheduleItemsEnd extends $tea.Model {
    static names() {
        return {
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetMeetingRoomsScheduleResponseBodyScheduleInformationScheduleItemsEnd = GetMeetingRoomsScheduleResponseBodyScheduleInformationScheduleItemsEnd;
class GetMeetingRoomsScheduleResponseBodyScheduleInformationScheduleItemsOrganizer extends $tea.Model {
    static names() {
        return {
            id: 'id',
        };
    }
    static types() {
        return {
            id: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetMeetingRoomsScheduleResponseBodyScheduleInformationScheduleItemsOrganizer = GetMeetingRoomsScheduleResponseBodyScheduleInformationScheduleItemsOrganizer;
class GetMeetingRoomsScheduleResponseBodyScheduleInformationScheduleItemsStart extends $tea.Model {
    static names() {
        return {
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetMeetingRoomsScheduleResponseBodyScheduleInformationScheduleItemsStart = GetMeetingRoomsScheduleResponseBodyScheduleInformationScheduleItemsStart;
class GetMeetingRoomsScheduleResponseBodyScheduleInformationScheduleItems extends $tea.Model {
    static names() {
        return {
            end: 'end',
            eventId: 'eventId',
            organizer: 'organizer',
            start: 'start',
            status: 'status',
        };
    }
    static types() {
        return {
            end: GetMeetingRoomsScheduleResponseBodyScheduleInformationScheduleItemsEnd,
            eventId: 'string',
            organizer: GetMeetingRoomsScheduleResponseBodyScheduleInformationScheduleItemsOrganizer,
            start: GetMeetingRoomsScheduleResponseBodyScheduleInformationScheduleItemsStart,
            status: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetMeetingRoomsScheduleResponseBodyScheduleInformationScheduleItems = GetMeetingRoomsScheduleResponseBodyScheduleInformationScheduleItems;
class GetMeetingRoomsScheduleResponseBodyScheduleInformation extends $tea.Model {
    static names() {
        return {
            error: 'error',
            roomId: 'roomId',
            scheduleItems: 'scheduleItems',
        };
    }
    static types() {
        return {
            error: 'string',
            roomId: 'string',
            scheduleItems: { 'type': 'array', 'itemType': GetMeetingRoomsScheduleResponseBodyScheduleInformationScheduleItems },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetMeetingRoomsScheduleResponseBodyScheduleInformation = GetMeetingRoomsScheduleResponseBodyScheduleInformation;
class GetScheduleResponseBodyScheduleInformationScheduleItemsEnd extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetScheduleResponseBodyScheduleInformationScheduleItemsEnd = GetScheduleResponseBodyScheduleInformationScheduleItemsEnd;
class GetScheduleResponseBodyScheduleInformationScheduleItemsStart extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetScheduleResponseBodyScheduleInformationScheduleItemsStart = GetScheduleResponseBodyScheduleInformationScheduleItemsStart;
class GetScheduleResponseBodyScheduleInformationScheduleItems extends $tea.Model {
    static names() {
        return {
            end: 'end',
            start: 'start',
            status: 'status',
        };
    }
    static types() {
        return {
            end: GetScheduleResponseBodyScheduleInformationScheduleItemsEnd,
            start: GetScheduleResponseBodyScheduleInformationScheduleItemsStart,
            status: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetScheduleResponseBodyScheduleInformationScheduleItems = GetScheduleResponseBodyScheduleInformationScheduleItems;
class GetScheduleResponseBodyScheduleInformation extends $tea.Model {
    static names() {
        return {
            error: 'error',
            scheduleItems: 'scheduleItems',
            userId: 'userId',
        };
    }
    static types() {
        return {
            error: 'string',
            scheduleItems: { 'type': 'array', 'itemType': GetScheduleResponseBodyScheduleInformationScheduleItems },
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetScheduleResponseBodyScheduleInformation = GetScheduleResponseBodyScheduleInformation;
class GetScheduleByMeResponseBodyScheduleInformationScheduleItemsEnd extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetScheduleByMeResponseBodyScheduleInformationScheduleItemsEnd = GetScheduleByMeResponseBodyScheduleInformationScheduleItemsEnd;
class GetScheduleByMeResponseBodyScheduleInformationScheduleItemsStart extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetScheduleByMeResponseBodyScheduleInformationScheduleItemsStart = GetScheduleByMeResponseBodyScheduleInformationScheduleItemsStart;
class GetScheduleByMeResponseBodyScheduleInformationScheduleItems extends $tea.Model {
    static names() {
        return {
            end: 'end',
            start: 'start',
            status: 'status',
        };
    }
    static types() {
        return {
            end: GetScheduleByMeResponseBodyScheduleInformationScheduleItemsEnd,
            start: GetScheduleByMeResponseBodyScheduleInformationScheduleItemsStart,
            status: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetScheduleByMeResponseBodyScheduleInformationScheduleItems = GetScheduleByMeResponseBodyScheduleInformationScheduleItems;
class GetScheduleByMeResponseBodyScheduleInformation extends $tea.Model {
    static names() {
        return {
            error: 'error',
            scheduleItems: 'scheduleItems',
            userId: 'userId',
        };
    }
    static types() {
        return {
            error: 'string',
            scheduleItems: { 'type': 'array', 'itemType': GetScheduleByMeResponseBodyScheduleInformationScheduleItems },
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetScheduleByMeResponseBodyScheduleInformation = GetScheduleByMeResponseBodyScheduleInformation;
class GetSignInListResponseBodyUsers extends $tea.Model {
    static names() {
        return {
            checkInTime: 'checkInTime',
            displayName: 'displayName',
            userId: 'userId',
        };
    }
    static types() {
        return {
            checkInTime: 'number',
            displayName: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSignInListResponseBodyUsers = GetSignInListResponseBodyUsers;
class GetSignOutListResponseBodyUsers extends $tea.Model {
    static names() {
        return {
            checkOutTime: 'checkOutTime',
            displayName: 'displayName',
            userId: 'userId',
        };
    }
    static types() {
        return {
            checkOutTime: 'number',
            displayName: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSignOutListResponseBodyUsers = GetSignOutListResponseBodyUsers;
class GetSubscribedCalendarResponseBodySubscribeScope extends $tea.Model {
    static names() {
        return {
            corpIds: 'corpIds',
            openConversationIds: 'openConversationIds',
            unionIds: 'unionIds',
        };
    }
    static types() {
        return {
            corpIds: { 'type': 'array', 'itemType': 'string' },
            openConversationIds: { 'type': 'array', 'itemType': 'string' },
            unionIds: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSubscribedCalendarResponseBodySubscribeScope = GetSubscribedCalendarResponseBodySubscribeScope;
class ListAclsResponseBodyAclsScope extends $tea.Model {
    static names() {
        return {
            scopeType: 'scopeType',
            userId: 'userId',
        };
    }
    static types() {
        return {
            scopeType: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAclsResponseBodyAclsScope = ListAclsResponseBodyAclsScope;
class ListAclsResponseBodyAcls extends $tea.Model {
    static names() {
        return {
            aclId: 'aclId',
            privilege: 'privilege',
            scope: 'scope',
        };
    }
    static types() {
        return {
            aclId: 'string',
            privilege: 'string',
            scope: ListAclsResponseBodyAclsScope,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAclsResponseBodyAcls = ListAclsResponseBodyAcls;
class ListAttendeesResponseBodyAttendees extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            id: 'id',
            isOptional: 'isOptional',
            responseStatus: 'responseStatus',
            self: 'self',
        };
    }
    static types() {
        return {
            displayName: 'string',
            id: 'string',
            isOptional: 'boolean',
            responseStatus: 'string',
            self: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListAttendeesResponseBodyAttendees = ListAttendeesResponseBodyAttendees;
class ListCalendarsResponseBodyResponseCalendars extends $tea.Model {
    static names() {
        return {
            description: 'description',
            eTag: 'eTag',
            id: 'id',
            privilege: 'privilege',
            summary: 'summary',
            timeZone: 'timeZone',
            type: 'type',
        };
    }
    static types() {
        return {
            description: 'string',
            eTag: 'string',
            id: 'string',
            privilege: 'string',
            summary: 'string',
            timeZone: 'string',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListCalendarsResponseBodyResponseCalendars = ListCalendarsResponseBodyResponseCalendars;
class ListCalendarsResponseBodyResponse extends $tea.Model {
    static names() {
        return {
            calendars: 'calendars',
        };
    }
    static types() {
        return {
            calendars: { 'type': 'array', 'itemType': ListCalendarsResponseBodyResponseCalendars },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListCalendarsResponseBodyResponse = ListCalendarsResponseBodyResponse;
class ListCategoriesResponseBodyCategories extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            openCategoryId: 'openCategoryId',
        };
    }
    static types() {
        return {
            displayName: 'string',
            openCategoryId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListCategoriesResponseBodyCategories = ListCategoriesResponseBodyCategories;
class ListEventsResponseBodyEventsAttendees extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            id: 'id',
            isOptional: 'isOptional',
            responseStatus: 'responseStatus',
            self: 'self',
        };
    }
    static types() {
        return {
            displayName: 'string',
            id: 'string',
            isOptional: 'boolean',
            responseStatus: 'string',
            self: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsResponseBodyEventsAttendees = ListEventsResponseBodyEventsAttendees;
class ListEventsResponseBodyEventsCategories extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
        };
    }
    static types() {
        return {
            displayName: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsResponseBodyEventsCategories = ListEventsResponseBodyEventsCategories;
class ListEventsResponseBodyEventsEnd extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsResponseBodyEventsEnd = ListEventsResponseBodyEventsEnd;
class ListEventsResponseBodyEventsExtendedPropertiesSharedProperties extends $tea.Model {
    static names() {
        return {
            belongCorpId: 'belongCorpId',
            sourceOpenCid: 'sourceOpenCid',
        };
    }
    static types() {
        return {
            belongCorpId: 'string',
            sourceOpenCid: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsResponseBodyEventsExtendedPropertiesSharedProperties = ListEventsResponseBodyEventsExtendedPropertiesSharedProperties;
class ListEventsResponseBodyEventsExtendedProperties extends $tea.Model {
    static names() {
        return {
            sharedProperties: 'sharedProperties',
        };
    }
    static types() {
        return {
            sharedProperties: ListEventsResponseBodyEventsExtendedPropertiesSharedProperties,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsResponseBodyEventsExtendedProperties = ListEventsResponseBodyEventsExtendedProperties;
class ListEventsResponseBodyEventsLocation extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            meetingRooms: 'meetingRooms',
        };
    }
    static types() {
        return {
            displayName: 'string',
            meetingRooms: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsResponseBodyEventsLocation = ListEventsResponseBodyEventsLocation;
class ListEventsResponseBodyEventsMeetingRooms extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            responseStatus: 'responseStatus',
            roomId: 'roomId',
        };
    }
    static types() {
        return {
            displayName: 'string',
            responseStatus: 'string',
            roomId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsResponseBodyEventsMeetingRooms = ListEventsResponseBodyEventsMeetingRooms;
class ListEventsResponseBodyEventsOnlineMeetingInfo extends $tea.Model {
    static names() {
        return {
            conferenceId: 'conferenceId',
            extraInfo: 'extraInfo',
            type: 'type',
            url: 'url',
        };
    }
    static types() {
        return {
            conferenceId: 'string',
            extraInfo: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
            type: 'string',
            url: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsResponseBodyEventsOnlineMeetingInfo = ListEventsResponseBodyEventsOnlineMeetingInfo;
class ListEventsResponseBodyEventsOrganizer extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            id: 'id',
            responseStatus: 'responseStatus',
            self: 'self',
        };
    }
    static types() {
        return {
            displayName: 'string',
            id: 'string',
            responseStatus: 'string',
            self: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsResponseBodyEventsOrganizer = ListEventsResponseBodyEventsOrganizer;
class ListEventsResponseBodyEventsOriginStart extends $tea.Model {
    static names() {
        return {
            dateTime: 'dateTime',
        };
    }
    static types() {
        return {
            dateTime: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsResponseBodyEventsOriginStart = ListEventsResponseBodyEventsOriginStart;
class ListEventsResponseBodyEventsRecurrencePattern extends $tea.Model {
    static names() {
        return {
            dayOfMonth: 'dayOfMonth',
            daysOfWeek: 'daysOfWeek',
            firstDayOfWeek: 'firstDayOfWeek',
            index: 'index',
            interval: 'interval',
            type: 'type',
        };
    }
    static types() {
        return {
            dayOfMonth: 'number',
            daysOfWeek: 'string',
            firstDayOfWeek: 'string',
            index: 'string',
            interval: 'number',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsResponseBodyEventsRecurrencePattern = ListEventsResponseBodyEventsRecurrencePattern;
class ListEventsResponseBodyEventsRecurrenceRange extends $tea.Model {
    static names() {
        return {
            endDate: 'endDate',
            numberOfOccurrences: 'numberOfOccurrences',
            type: 'type',
        };
    }
    static types() {
        return {
            endDate: 'string',
            numberOfOccurrences: 'number',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsResponseBodyEventsRecurrenceRange = ListEventsResponseBodyEventsRecurrenceRange;
class ListEventsResponseBodyEventsRecurrence extends $tea.Model {
    static names() {
        return {
            pattern: 'pattern',
            range: 'range',
        };
    }
    static types() {
        return {
            pattern: ListEventsResponseBodyEventsRecurrencePattern,
            range: ListEventsResponseBodyEventsRecurrenceRange,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsResponseBodyEventsRecurrence = ListEventsResponseBodyEventsRecurrence;
class ListEventsResponseBodyEventsReminders extends $tea.Model {
    static names() {
        return {
            method: 'method',
            minutes: 'minutes',
        };
    }
    static types() {
        return {
            method: 'string',
            minutes: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsResponseBodyEventsReminders = ListEventsResponseBodyEventsReminders;
class ListEventsResponseBodyEventsRichTextDescription extends $tea.Model {
    static names() {
        return {
            text: 'text',
        };
    }
    static types() {
        return {
            text: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsResponseBodyEventsRichTextDescription = ListEventsResponseBodyEventsRichTextDescription;
class ListEventsResponseBodyEventsStart extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsResponseBodyEventsStart = ListEventsResponseBodyEventsStart;
class ListEventsResponseBodyEvents extends $tea.Model {
    static names() {
        return {
            attendees: 'attendees',
            categories: 'categories',
            createTime: 'createTime',
            description: 'description',
            end: 'end',
            extendedProperties: 'extendedProperties',
            id: 'id',
            isAllDay: 'isAllDay',
            location: 'location',
            meetingRooms: 'meetingRooms',
            onlineMeetingInfo: 'onlineMeetingInfo',
            organizer: 'organizer',
            originStart: 'originStart',
            recurrence: 'recurrence',
            reminders: 'reminders',
            richTextDescription: 'richTextDescription',
            seriesMasterId: 'seriesMasterId',
            start: 'start',
            status: 'status',
            summary: 'summary',
            updateTime: 'updateTime',
        };
    }
    static types() {
        return {
            attendees: { 'type': 'array', 'itemType': ListEventsResponseBodyEventsAttendees },
            categories: { 'type': 'array', 'itemType': ListEventsResponseBodyEventsCategories },
            createTime: 'string',
            description: 'string',
            end: ListEventsResponseBodyEventsEnd,
            extendedProperties: ListEventsResponseBodyEventsExtendedProperties,
            id: 'string',
            isAllDay: 'boolean',
            location: ListEventsResponseBodyEventsLocation,
            meetingRooms: { 'type': 'array', 'itemType': ListEventsResponseBodyEventsMeetingRooms },
            onlineMeetingInfo: ListEventsResponseBodyEventsOnlineMeetingInfo,
            organizer: ListEventsResponseBodyEventsOrganizer,
            originStart: ListEventsResponseBodyEventsOriginStart,
            recurrence: ListEventsResponseBodyEventsRecurrence,
            reminders: { 'type': 'array', 'itemType': ListEventsResponseBodyEventsReminders },
            richTextDescription: ListEventsResponseBodyEventsRichTextDescription,
            seriesMasterId: 'string',
            start: ListEventsResponseBodyEventsStart,
            status: 'string',
            summary: 'string',
            updateTime: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsResponseBodyEvents = ListEventsResponseBodyEvents;
class ListEventsInstancesResponseBodyEventsAttendees extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            id: 'id',
            isOptional: 'isOptional',
            responseStatus: 'responseStatus',
            self: 'self',
        };
    }
    static types() {
        return {
            displayName: 'string',
            id: 'string',
            isOptional: 'boolean',
            responseStatus: 'string',
            self: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsInstancesResponseBodyEventsAttendees = ListEventsInstancesResponseBodyEventsAttendees;
class ListEventsInstancesResponseBodyEventsEnd extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsInstancesResponseBodyEventsEnd = ListEventsInstancesResponseBodyEventsEnd;
class ListEventsInstancesResponseBodyEventsExtendedPropertiesSharedProperties extends $tea.Model {
    static names() {
        return {
            sourceOpenCid: 'sourceOpenCid',
        };
    }
    static types() {
        return {
            sourceOpenCid: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsInstancesResponseBodyEventsExtendedPropertiesSharedProperties = ListEventsInstancesResponseBodyEventsExtendedPropertiesSharedProperties;
class ListEventsInstancesResponseBodyEventsExtendedProperties extends $tea.Model {
    static names() {
        return {
            sharedProperties: 'sharedProperties',
        };
    }
    static types() {
        return {
            sharedProperties: ListEventsInstancesResponseBodyEventsExtendedPropertiesSharedProperties,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsInstancesResponseBodyEventsExtendedProperties = ListEventsInstancesResponseBodyEventsExtendedProperties;
class ListEventsInstancesResponseBodyEventsLocation extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            meetingRooms: 'meetingRooms',
        };
    }
    static types() {
        return {
            displayName: 'string',
            meetingRooms: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsInstancesResponseBodyEventsLocation = ListEventsInstancesResponseBodyEventsLocation;
class ListEventsInstancesResponseBodyEventsOnlineMeetingInfo extends $tea.Model {
    static names() {
        return {
            conferenceId: 'conferenceId',
            type: 'type',
            url: 'url',
        };
    }
    static types() {
        return {
            conferenceId: 'string',
            type: 'string',
            url: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsInstancesResponseBodyEventsOnlineMeetingInfo = ListEventsInstancesResponseBodyEventsOnlineMeetingInfo;
class ListEventsInstancesResponseBodyEventsOrganizer extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            id: 'id',
            responseStatus: 'responseStatus',
            self: 'self',
        };
    }
    static types() {
        return {
            displayName: 'string',
            id: 'string',
            responseStatus: 'string',
            self: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsInstancesResponseBodyEventsOrganizer = ListEventsInstancesResponseBodyEventsOrganizer;
class ListEventsInstancesResponseBodyEventsRecurrencePattern extends $tea.Model {
    static names() {
        return {
            dayOfMonth: 'dayOfMonth',
            daysOfWeek: 'daysOfWeek',
            index: 'index',
            interval: 'interval',
            type: 'type',
        };
    }
    static types() {
        return {
            dayOfMonth: 'number',
            daysOfWeek: 'string',
            index: 'string',
            interval: 'number',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsInstancesResponseBodyEventsRecurrencePattern = ListEventsInstancesResponseBodyEventsRecurrencePattern;
class ListEventsInstancesResponseBodyEventsRecurrenceRange extends $tea.Model {
    static names() {
        return {
            endDate: 'endDate',
            numberOfOccurrences: 'numberOfOccurrences',
            type: 'type',
        };
    }
    static types() {
        return {
            endDate: 'string',
            numberOfOccurrences: 'number',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsInstancesResponseBodyEventsRecurrenceRange = ListEventsInstancesResponseBodyEventsRecurrenceRange;
class ListEventsInstancesResponseBodyEventsRecurrence extends $tea.Model {
    static names() {
        return {
            pattern: 'pattern',
            range: 'range',
        };
    }
    static types() {
        return {
            pattern: ListEventsInstancesResponseBodyEventsRecurrencePattern,
            range: ListEventsInstancesResponseBodyEventsRecurrenceRange,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsInstancesResponseBodyEventsRecurrence = ListEventsInstancesResponseBodyEventsRecurrence;
class ListEventsInstancesResponseBodyEventsReminders extends $tea.Model {
    static names() {
        return {
            method: 'method',
            minutes: 'minutes',
        };
    }
    static types() {
        return {
            method: 'string',
            minutes: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsInstancesResponseBodyEventsReminders = ListEventsInstancesResponseBodyEventsReminders;
class ListEventsInstancesResponseBodyEventsStart extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsInstancesResponseBodyEventsStart = ListEventsInstancesResponseBodyEventsStart;
class ListEventsInstancesResponseBodyEvents extends $tea.Model {
    static names() {
        return {
            attendees: 'attendees',
            createTime: 'createTime',
            description: 'description',
            end: 'end',
            extendedProperties: 'extendedProperties',
            id: 'id',
            isAllDay: 'isAllDay',
            location: 'location',
            onlineMeetingInfo: 'onlineMeetingInfo',
            organizer: 'organizer',
            recurrence: 'recurrence',
            reminders: 'reminders',
            seriesMasterId: 'seriesMasterId',
            start: 'start',
            status: 'status',
            summary: 'summary',
            updateTime: 'updateTime',
        };
    }
    static types() {
        return {
            attendees: { 'type': 'array', 'itemType': ListEventsInstancesResponseBodyEventsAttendees },
            createTime: 'string',
            description: 'string',
            end: ListEventsInstancesResponseBodyEventsEnd,
            extendedProperties: ListEventsInstancesResponseBodyEventsExtendedProperties,
            id: 'string',
            isAllDay: 'boolean',
            location: ListEventsInstancesResponseBodyEventsLocation,
            onlineMeetingInfo: ListEventsInstancesResponseBodyEventsOnlineMeetingInfo,
            organizer: ListEventsInstancesResponseBodyEventsOrganizer,
            recurrence: ListEventsInstancesResponseBodyEventsRecurrence,
            reminders: { 'type': 'array', 'itemType': ListEventsInstancesResponseBodyEventsReminders },
            seriesMasterId: 'string',
            start: ListEventsInstancesResponseBodyEventsStart,
            status: 'string',
            summary: 'string',
            updateTime: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsInstancesResponseBodyEvents = ListEventsInstancesResponseBodyEvents;
class ListEventsViewResponseBodyEventsAttendees extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            id: 'id',
            isOptional: 'isOptional',
            responseStatus: 'responseStatus',
            self: 'self',
        };
    }
    static types() {
        return {
            displayName: 'string',
            id: 'string',
            isOptional: 'boolean',
            responseStatus: 'string',
            self: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewResponseBodyEventsAttendees = ListEventsViewResponseBodyEventsAttendees;
class ListEventsViewResponseBodyEventsCategories extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
        };
    }
    static types() {
        return {
            displayName: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewResponseBodyEventsCategories = ListEventsViewResponseBodyEventsCategories;
class ListEventsViewResponseBodyEventsEnd extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewResponseBodyEventsEnd = ListEventsViewResponseBodyEventsEnd;
class ListEventsViewResponseBodyEventsExtendedPropertiesPrivateProperties extends $tea.Model {
    static names() {
        return {
            dingtalkDetailUrl: 'dingtalkDetailUrl',
        };
    }
    static types() {
        return {
            dingtalkDetailUrl: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewResponseBodyEventsExtendedPropertiesPrivateProperties = ListEventsViewResponseBodyEventsExtendedPropertiesPrivateProperties;
class ListEventsViewResponseBodyEventsExtendedPropertiesSharedProperties extends $tea.Model {
    static names() {
        return {
            belongCorpId: 'belongCorpId',
            sourceOpenCid: 'sourceOpenCid',
        };
    }
    static types() {
        return {
            belongCorpId: 'string',
            sourceOpenCid: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewResponseBodyEventsExtendedPropertiesSharedProperties = ListEventsViewResponseBodyEventsExtendedPropertiesSharedProperties;
class ListEventsViewResponseBodyEventsExtendedProperties extends $tea.Model {
    static names() {
        return {
            privateProperties: 'privateProperties',
            sharedProperties: 'sharedProperties',
        };
    }
    static types() {
        return {
            privateProperties: ListEventsViewResponseBodyEventsExtendedPropertiesPrivateProperties,
            sharedProperties: ListEventsViewResponseBodyEventsExtendedPropertiesSharedProperties,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewResponseBodyEventsExtendedProperties = ListEventsViewResponseBodyEventsExtendedProperties;
class ListEventsViewResponseBodyEventsLocation extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            meetingRooms: 'meetingRooms',
        };
    }
    static types() {
        return {
            displayName: 'string',
            meetingRooms: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewResponseBodyEventsLocation = ListEventsViewResponseBodyEventsLocation;
class ListEventsViewResponseBodyEventsMeetingRooms extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            responseStatus: 'responseStatus',
            roomId: 'roomId',
        };
    }
    static types() {
        return {
            displayName: 'string',
            responseStatus: 'string',
            roomId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewResponseBodyEventsMeetingRooms = ListEventsViewResponseBodyEventsMeetingRooms;
class ListEventsViewResponseBodyEventsOnlineMeetingInfo extends $tea.Model {
    static names() {
        return {
            conferenceId: 'conferenceId',
            extraInfo: 'extraInfo',
            type: 'type',
            url: 'url',
        };
    }
    static types() {
        return {
            conferenceId: 'string',
            extraInfo: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
            type: 'string',
            url: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewResponseBodyEventsOnlineMeetingInfo = ListEventsViewResponseBodyEventsOnlineMeetingInfo;
class ListEventsViewResponseBodyEventsOrganizer extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            id: 'id',
            responseStatus: 'responseStatus',
            self: 'self',
        };
    }
    static types() {
        return {
            displayName: 'string',
            id: 'string',
            responseStatus: 'string',
            self: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewResponseBodyEventsOrganizer = ListEventsViewResponseBodyEventsOrganizer;
class ListEventsViewResponseBodyEventsOriginStart extends $tea.Model {
    static names() {
        return {
            dateTime: 'dateTime',
        };
    }
    static types() {
        return {
            dateTime: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewResponseBodyEventsOriginStart = ListEventsViewResponseBodyEventsOriginStart;
class ListEventsViewResponseBodyEventsRecurrencePattern extends $tea.Model {
    static names() {
        return {
            dayOfMonth: 'dayOfMonth',
            daysOfWeek: 'daysOfWeek',
            firstDayOfWeek: 'firstDayOfWeek',
            index: 'index',
            interval: 'interval',
            type: 'type',
        };
    }
    static types() {
        return {
            dayOfMonth: 'number',
            daysOfWeek: 'string',
            firstDayOfWeek: 'string',
            index: 'string',
            interval: 'number',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewResponseBodyEventsRecurrencePattern = ListEventsViewResponseBodyEventsRecurrencePattern;
class ListEventsViewResponseBodyEventsRecurrenceRange extends $tea.Model {
    static names() {
        return {
            endDate: 'endDate',
            numberOfOccurrences: 'numberOfOccurrences',
            type: 'type',
        };
    }
    static types() {
        return {
            endDate: 'string',
            numberOfOccurrences: 'number',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewResponseBodyEventsRecurrenceRange = ListEventsViewResponseBodyEventsRecurrenceRange;
class ListEventsViewResponseBodyEventsRecurrence extends $tea.Model {
    static names() {
        return {
            pattern: 'pattern',
            range: 'range',
        };
    }
    static types() {
        return {
            pattern: ListEventsViewResponseBodyEventsRecurrencePattern,
            range: ListEventsViewResponseBodyEventsRecurrenceRange,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewResponseBodyEventsRecurrence = ListEventsViewResponseBodyEventsRecurrence;
class ListEventsViewResponseBodyEventsRichTextDescription extends $tea.Model {
    static names() {
        return {
            text: 'text',
        };
    }
    static types() {
        return {
            text: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewResponseBodyEventsRichTextDescription = ListEventsViewResponseBodyEventsRichTextDescription;
class ListEventsViewResponseBodyEventsStart extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewResponseBodyEventsStart = ListEventsViewResponseBodyEventsStart;
class ListEventsViewResponseBodyEvents extends $tea.Model {
    static names() {
        return {
            attendees: 'attendees',
            categories: 'categories',
            createTime: 'createTime',
            description: 'description',
            end: 'end',
            extendedProperties: 'extendedProperties',
            id: 'id',
            isAllDay: 'isAllDay',
            location: 'location',
            meetingRooms: 'meetingRooms',
            onlineMeetingInfo: 'onlineMeetingInfo',
            organizer: 'organizer',
            originStart: 'originStart',
            recurrence: 'recurrence',
            richTextDescription: 'richTextDescription',
            seriesMasterId: 'seriesMasterId',
            start: 'start',
            status: 'status',
            summary: 'summary',
            updateTime: 'updateTime',
        };
    }
    static types() {
        return {
            attendees: { 'type': 'array', 'itemType': ListEventsViewResponseBodyEventsAttendees },
            categories: { 'type': 'array', 'itemType': ListEventsViewResponseBodyEventsCategories },
            createTime: 'string',
            description: 'string',
            end: ListEventsViewResponseBodyEventsEnd,
            extendedProperties: ListEventsViewResponseBodyEventsExtendedProperties,
            id: 'string',
            isAllDay: 'boolean',
            location: ListEventsViewResponseBodyEventsLocation,
            meetingRooms: { 'type': 'array', 'itemType': ListEventsViewResponseBodyEventsMeetingRooms },
            onlineMeetingInfo: ListEventsViewResponseBodyEventsOnlineMeetingInfo,
            organizer: ListEventsViewResponseBodyEventsOrganizer,
            originStart: ListEventsViewResponseBodyEventsOriginStart,
            recurrence: ListEventsViewResponseBodyEventsRecurrence,
            richTextDescription: ListEventsViewResponseBodyEventsRichTextDescription,
            seriesMasterId: 'string',
            start: ListEventsViewResponseBodyEventsStart,
            status: 'string',
            summary: 'string',
            updateTime: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewResponseBodyEvents = ListEventsViewResponseBodyEvents;
class ListEventsViewByMeResponseBodyEventsAttendees extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            id: 'id',
            isOptional: 'isOptional',
            responseStatus: 'responseStatus',
            self: 'self',
        };
    }
    static types() {
        return {
            displayName: 'string',
            id: 'string',
            isOptional: 'boolean',
            responseStatus: 'string',
            self: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewByMeResponseBodyEventsAttendees = ListEventsViewByMeResponseBodyEventsAttendees;
class ListEventsViewByMeResponseBodyEventsCategories extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
        };
    }
    static types() {
        return {
            displayName: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewByMeResponseBodyEventsCategories = ListEventsViewByMeResponseBodyEventsCategories;
class ListEventsViewByMeResponseBodyEventsEnd extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewByMeResponseBodyEventsEnd = ListEventsViewByMeResponseBodyEventsEnd;
class ListEventsViewByMeResponseBodyEventsExtendedPropertiesSharedProperties extends $tea.Model {
    static names() {
        return {
            belongCorpId: 'belongCorpId',
            sourceOpenCid: 'sourceOpenCid',
        };
    }
    static types() {
        return {
            belongCorpId: 'string',
            sourceOpenCid: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewByMeResponseBodyEventsExtendedPropertiesSharedProperties = ListEventsViewByMeResponseBodyEventsExtendedPropertiesSharedProperties;
class ListEventsViewByMeResponseBodyEventsExtendedProperties extends $tea.Model {
    static names() {
        return {
            sharedProperties: 'sharedProperties',
        };
    }
    static types() {
        return {
            sharedProperties: ListEventsViewByMeResponseBodyEventsExtendedPropertiesSharedProperties,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewByMeResponseBodyEventsExtendedProperties = ListEventsViewByMeResponseBodyEventsExtendedProperties;
class ListEventsViewByMeResponseBodyEventsLocation extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            meetingRooms: 'meetingRooms',
        };
    }
    static types() {
        return {
            displayName: 'string',
            meetingRooms: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewByMeResponseBodyEventsLocation = ListEventsViewByMeResponseBodyEventsLocation;
class ListEventsViewByMeResponseBodyEventsMeetingRooms extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            responseStatus: 'responseStatus',
            roomId: 'roomId',
        };
    }
    static types() {
        return {
            displayName: 'string',
            responseStatus: 'string',
            roomId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewByMeResponseBodyEventsMeetingRooms = ListEventsViewByMeResponseBodyEventsMeetingRooms;
class ListEventsViewByMeResponseBodyEventsOnlineMeetingInfo extends $tea.Model {
    static names() {
        return {
            conferenceId: 'conferenceId',
            extraInfo: 'extraInfo',
            type: 'type',
            url: 'url',
        };
    }
    static types() {
        return {
            conferenceId: 'string',
            extraInfo: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
            type: 'string',
            url: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewByMeResponseBodyEventsOnlineMeetingInfo = ListEventsViewByMeResponseBodyEventsOnlineMeetingInfo;
class ListEventsViewByMeResponseBodyEventsOrganizer extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            id: 'id',
            responseStatus: 'responseStatus',
            self: 'self',
        };
    }
    static types() {
        return {
            displayName: 'string',
            id: 'string',
            responseStatus: 'string',
            self: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewByMeResponseBodyEventsOrganizer = ListEventsViewByMeResponseBodyEventsOrganizer;
class ListEventsViewByMeResponseBodyEventsOriginStart extends $tea.Model {
    static names() {
        return {
            dateTime: 'dateTime',
        };
    }
    static types() {
        return {
            dateTime: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewByMeResponseBodyEventsOriginStart = ListEventsViewByMeResponseBodyEventsOriginStart;
class ListEventsViewByMeResponseBodyEventsRecurrencePattern extends $tea.Model {
    static names() {
        return {
            dayOfMonth: 'dayOfMonth',
            daysOfWeek: 'daysOfWeek',
            firstDayOfWeek: 'firstDayOfWeek',
            index: 'index',
            interval: 'interval',
            type: 'type',
        };
    }
    static types() {
        return {
            dayOfMonth: 'number',
            daysOfWeek: 'string',
            firstDayOfWeek: 'string',
            index: 'string',
            interval: 'number',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewByMeResponseBodyEventsRecurrencePattern = ListEventsViewByMeResponseBodyEventsRecurrencePattern;
class ListEventsViewByMeResponseBodyEventsRecurrenceRange extends $tea.Model {
    static names() {
        return {
            endDate: 'endDate',
            numberOfOccurrences: 'numberOfOccurrences',
            type: 'type',
        };
    }
    static types() {
        return {
            endDate: 'string',
            numberOfOccurrences: 'number',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewByMeResponseBodyEventsRecurrenceRange = ListEventsViewByMeResponseBodyEventsRecurrenceRange;
class ListEventsViewByMeResponseBodyEventsRecurrence extends $tea.Model {
    static names() {
        return {
            pattern: 'pattern',
            range: 'range',
        };
    }
    static types() {
        return {
            pattern: ListEventsViewByMeResponseBodyEventsRecurrencePattern,
            range: ListEventsViewByMeResponseBodyEventsRecurrenceRange,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewByMeResponseBodyEventsRecurrence = ListEventsViewByMeResponseBodyEventsRecurrence;
class ListEventsViewByMeResponseBodyEventsRichTextDescription extends $tea.Model {
    static names() {
        return {
            text: 'text',
        };
    }
    static types() {
        return {
            text: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewByMeResponseBodyEventsRichTextDescription = ListEventsViewByMeResponseBodyEventsRichTextDescription;
class ListEventsViewByMeResponseBodyEventsStart extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewByMeResponseBodyEventsStart = ListEventsViewByMeResponseBodyEventsStart;
class ListEventsViewByMeResponseBodyEvents extends $tea.Model {
    static names() {
        return {
            attendees: 'attendees',
            categories: 'categories',
            createTime: 'createTime',
            description: 'description',
            end: 'end',
            extendedProperties: 'extendedProperties',
            id: 'id',
            isAllDay: 'isAllDay',
            location: 'location',
            meetingRooms: 'meetingRooms',
            onlineMeetingInfo: 'onlineMeetingInfo',
            organizer: 'organizer',
            originStart: 'originStart',
            recurrence: 'recurrence',
            richTextDescription: 'richTextDescription',
            seriesMasterId: 'seriesMasterId',
            start: 'start',
            status: 'status',
            summary: 'summary',
            updateTime: 'updateTime',
        };
    }
    static types() {
        return {
            attendees: { 'type': 'array', 'itemType': ListEventsViewByMeResponseBodyEventsAttendees },
            categories: { 'type': 'array', 'itemType': ListEventsViewByMeResponseBodyEventsCategories },
            createTime: 'string',
            description: 'string',
            end: ListEventsViewByMeResponseBodyEventsEnd,
            extendedProperties: ListEventsViewByMeResponseBodyEventsExtendedProperties,
            id: 'string',
            isAllDay: 'boolean',
            location: ListEventsViewByMeResponseBodyEventsLocation,
            meetingRooms: { 'type': 'array', 'itemType': ListEventsViewByMeResponseBodyEventsMeetingRooms },
            onlineMeetingInfo: ListEventsViewByMeResponseBodyEventsOnlineMeetingInfo,
            organizer: ListEventsViewByMeResponseBodyEventsOrganizer,
            originStart: ListEventsViewByMeResponseBodyEventsOriginStart,
            recurrence: ListEventsViewByMeResponseBodyEventsRecurrence,
            richTextDescription: ListEventsViewByMeResponseBodyEventsRichTextDescription,
            seriesMasterId: 'string',
            start: ListEventsViewByMeResponseBodyEventsStart,
            status: 'string',
            summary: 'string',
            updateTime: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListEventsViewByMeResponseBodyEvents = ListEventsViewByMeResponseBodyEvents;
class ListInstancesResponseBodyEventsAttendees extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            id: 'id',
            isOptional: 'isOptional',
            responseStatus: 'responseStatus',
            self: 'self',
        };
    }
    static types() {
        return {
            displayName: 'string',
            id: 'string',
            isOptional: 'boolean',
            responseStatus: 'string',
            self: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListInstancesResponseBodyEventsAttendees = ListInstancesResponseBodyEventsAttendees;
class ListInstancesResponseBodyEventsEnd extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListInstancesResponseBodyEventsEnd = ListInstancesResponseBodyEventsEnd;
class ListInstancesResponseBodyEventsExtendedPropertiesSharedProperties extends $tea.Model {
    static names() {
        return {
            belongCorpId: 'belongCorpId',
            sourceOpenCid: 'sourceOpenCid',
        };
    }
    static types() {
        return {
            belongCorpId: 'string',
            sourceOpenCid: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListInstancesResponseBodyEventsExtendedPropertiesSharedProperties = ListInstancesResponseBodyEventsExtendedPropertiesSharedProperties;
class ListInstancesResponseBodyEventsExtendedProperties extends $tea.Model {
    static names() {
        return {
            sharedProperties: 'sharedProperties',
        };
    }
    static types() {
        return {
            sharedProperties: ListInstancesResponseBodyEventsExtendedPropertiesSharedProperties,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListInstancesResponseBodyEventsExtendedProperties = ListInstancesResponseBodyEventsExtendedProperties;
class ListInstancesResponseBodyEventsLocation extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
        };
    }
    static types() {
        return {
            displayName: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListInstancesResponseBodyEventsLocation = ListInstancesResponseBodyEventsLocation;
class ListInstancesResponseBodyEventsMeetingRooms extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            responseStatus: 'responseStatus',
            roomId: 'roomId',
        };
    }
    static types() {
        return {
            displayName: 'string',
            responseStatus: 'string',
            roomId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListInstancesResponseBodyEventsMeetingRooms = ListInstancesResponseBodyEventsMeetingRooms;
class ListInstancesResponseBodyEventsOnlineMeetingInfo extends $tea.Model {
    static names() {
        return {
            conferenceId: 'conferenceId',
            extraInfo: 'extraInfo',
            type: 'type',
            url: 'url',
        };
    }
    static types() {
        return {
            conferenceId: 'string',
            extraInfo: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
            type: 'string',
            url: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListInstancesResponseBodyEventsOnlineMeetingInfo = ListInstancesResponseBodyEventsOnlineMeetingInfo;
class ListInstancesResponseBodyEventsOrganizer extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            id: 'id',
            responseStatus: 'responseStatus',
            self: 'self',
        };
    }
    static types() {
        return {
            displayName: 'string',
            id: 'string',
            responseStatus: 'string',
            self: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListInstancesResponseBodyEventsOrganizer = ListInstancesResponseBodyEventsOrganizer;
class ListInstancesResponseBodyEventsRecurrencePattern extends $tea.Model {
    static names() {
        return {
            dayOfMonth: 'dayOfMonth',
            daysOfWeek: 'daysOfWeek',
            index: 'index',
            interval: 'interval',
            type: 'type',
        };
    }
    static types() {
        return {
            dayOfMonth: 'number',
            daysOfWeek: 'string',
            index: 'string',
            interval: 'number',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListInstancesResponseBodyEventsRecurrencePattern = ListInstancesResponseBodyEventsRecurrencePattern;
class ListInstancesResponseBodyEventsRecurrenceRange extends $tea.Model {
    static names() {
        return {
            endDate: 'endDate',
            numberOfOccurrences: 'numberOfOccurrences',
            type: 'type',
        };
    }
    static types() {
        return {
            endDate: 'string',
            numberOfOccurrences: 'number',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListInstancesResponseBodyEventsRecurrenceRange = ListInstancesResponseBodyEventsRecurrenceRange;
class ListInstancesResponseBodyEventsRecurrence extends $tea.Model {
    static names() {
        return {
            pattern: 'pattern',
            range: 'range',
        };
    }
    static types() {
        return {
            pattern: ListInstancesResponseBodyEventsRecurrencePattern,
            range: ListInstancesResponseBodyEventsRecurrenceRange,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListInstancesResponseBodyEventsRecurrence = ListInstancesResponseBodyEventsRecurrence;
class ListInstancesResponseBodyEventsReminders extends $tea.Model {
    static names() {
        return {
            method: 'method',
            minutes: 'minutes',
        };
    }
    static types() {
        return {
            method: 'string',
            minutes: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListInstancesResponseBodyEventsReminders = ListInstancesResponseBodyEventsReminders;
class ListInstancesResponseBodyEventsStart extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListInstancesResponseBodyEventsStart = ListInstancesResponseBodyEventsStart;
class ListInstancesResponseBodyEvents extends $tea.Model {
    static names() {
        return {
            attendees: 'attendees',
            createTime: 'createTime',
            description: 'description',
            end: 'end',
            extendedProperties: 'extendedProperties',
            id: 'id',
            isAllDay: 'isAllDay',
            location: 'location',
            meetingRooms: 'meetingRooms',
            onlineMeetingInfo: 'onlineMeetingInfo',
            organizer: 'organizer',
            recurrence: 'recurrence',
            reminders: 'reminders',
            seriesMasterId: 'seriesMasterId',
            start: 'start',
            status: 'status',
            summary: 'summary',
            updateTime: 'updateTime',
        };
    }
    static types() {
        return {
            attendees: { 'type': 'array', 'itemType': ListInstancesResponseBodyEventsAttendees },
            createTime: 'string',
            description: 'string',
            end: ListInstancesResponseBodyEventsEnd,
            extendedProperties: ListInstancesResponseBodyEventsExtendedProperties,
            id: 'string',
            isAllDay: 'boolean',
            location: ListInstancesResponseBodyEventsLocation,
            meetingRooms: { 'type': 'array', 'itemType': ListInstancesResponseBodyEventsMeetingRooms },
            onlineMeetingInfo: ListInstancesResponseBodyEventsOnlineMeetingInfo,
            organizer: ListInstancesResponseBodyEventsOrganizer,
            recurrence: ListInstancesResponseBodyEventsRecurrence,
            reminders: { 'type': 'array', 'itemType': ListInstancesResponseBodyEventsReminders },
            seriesMasterId: 'string',
            start: ListInstancesResponseBodyEventsStart,
            status: 'string',
            summary: 'string',
            updateTime: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListInstancesResponseBodyEvents = ListInstancesResponseBodyEvents;
class PatchEventRequestAttendees extends $tea.Model {
    static names() {
        return {
            email: 'email',
            id: 'id',
            isOptional: 'isOptional',
        };
    }
    static types() {
        return {
            email: 'string',
            id: 'string',
            isOptional: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventRequestAttendees = PatchEventRequestAttendees;
class PatchEventRequestCardInstances extends $tea.Model {
    static names() {
        return {
            outTrackId: 'outTrackId',
            scenario: 'scenario',
        };
    }
    static types() {
        return {
            outTrackId: 'string',
            scenario: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventRequestCardInstances = PatchEventRequestCardInstances;
class PatchEventRequestCategories extends $tea.Model {
    static names() {
        return {
            categoryId: 'categoryId',
            displayName: 'displayName',
        };
    }
    static types() {
        return {
            categoryId: 'string',
            displayName: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventRequestCategories = PatchEventRequestCategories;
class PatchEventRequestEnd extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventRequestEnd = PatchEventRequestEnd;
class PatchEventRequestLocation extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
        };
    }
    static types() {
        return {
            displayName: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventRequestLocation = PatchEventRequestLocation;
class PatchEventRequestOnlineMeetingInfo extends $tea.Model {
    static names() {
        return {
            type: 'type',
        };
    }
    static types() {
        return {
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventRequestOnlineMeetingInfo = PatchEventRequestOnlineMeetingInfo;
class PatchEventRequestRecurrencePattern extends $tea.Model {
    static names() {
        return {
            dayOfMonth: 'dayOfMonth',
            daysOfWeek: 'daysOfWeek',
            firstDayOfWeek: 'firstDayOfWeek',
            index: 'index',
            interval: 'interval',
            type: 'type',
        };
    }
    static types() {
        return {
            dayOfMonth: 'number',
            daysOfWeek: 'string',
            firstDayOfWeek: 'string',
            index: 'string',
            interval: 'number',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventRequestRecurrencePattern = PatchEventRequestRecurrencePattern;
class PatchEventRequestRecurrenceRange extends $tea.Model {
    static names() {
        return {
            endDate: 'endDate',
            numberOfOccurrences: 'numberOfOccurrences',
            type: 'type',
        };
    }
    static types() {
        return {
            endDate: 'string',
            numberOfOccurrences: 'number',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventRequestRecurrenceRange = PatchEventRequestRecurrenceRange;
class PatchEventRequestRecurrence extends $tea.Model {
    static names() {
        return {
            pattern: 'pattern',
            range: 'range',
        };
    }
    static types() {
        return {
            pattern: PatchEventRequestRecurrencePattern,
            range: PatchEventRequestRecurrenceRange,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventRequestRecurrence = PatchEventRequestRecurrence;
class PatchEventRequestReminders extends $tea.Model {
    static names() {
        return {
            method: 'method',
            minutes: 'minutes',
        };
    }
    static types() {
        return {
            method: 'string',
            minutes: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventRequestReminders = PatchEventRequestReminders;
class PatchEventRequestRichTextDescription extends $tea.Model {
    static names() {
        return {
            text: 'text',
        };
    }
    static types() {
        return {
            text: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventRequestRichTextDescription = PatchEventRequestRichTextDescription;
class PatchEventRequestStart extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventRequestStart = PatchEventRequestStart;
class PatchEventRequestUiConfigs extends $tea.Model {
    static names() {
        return {
            uiName: 'uiName',
            uiStatus: 'uiStatus',
        };
    }
    static types() {
        return {
            uiName: 'string',
            uiStatus: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventRequestUiConfigs = PatchEventRequestUiConfigs;
class PatchEventResponseBodyAttendees extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            id: 'id',
            isOptional: 'isOptional',
            responseStatus: 'responseStatus',
            self: 'self',
        };
    }
    static types() {
        return {
            displayName: 'string',
            id: 'string',
            isOptional: 'boolean',
            responseStatus: 'string',
            self: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventResponseBodyAttendees = PatchEventResponseBodyAttendees;
class PatchEventResponseBodyCardInstances extends $tea.Model {
    static names() {
        return {
            outTrackId: 'outTrackId',
            scenario: 'scenario',
        };
    }
    static types() {
        return {
            outTrackId: 'string',
            scenario: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventResponseBodyCardInstances = PatchEventResponseBodyCardInstances;
class PatchEventResponseBodyCategories extends $tea.Model {
    static names() {
        return {
            categoryId: 'categoryId',
            displayName: 'displayName',
        };
    }
    static types() {
        return {
            categoryId: 'string',
            displayName: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventResponseBodyCategories = PatchEventResponseBodyCategories;
class PatchEventResponseBodyEnd extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventResponseBodyEnd = PatchEventResponseBodyEnd;
class PatchEventResponseBodyLocation extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            meetingRooms: 'meetingRooms',
        };
    }
    static types() {
        return {
            displayName: 'string',
            meetingRooms: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventResponseBodyLocation = PatchEventResponseBodyLocation;
class PatchEventResponseBodyOnlineMeetingInfo extends $tea.Model {
    static names() {
        return {
            conferenceId: 'conferenceId',
            type: 'type',
            url: 'url',
        };
    }
    static types() {
        return {
            conferenceId: 'string',
            type: 'string',
            url: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventResponseBodyOnlineMeetingInfo = PatchEventResponseBodyOnlineMeetingInfo;
class PatchEventResponseBodyOrganizer extends $tea.Model {
    static names() {
        return {
            displayName: 'displayName',
            id: 'id',
            responseStatus: 'responseStatus',
            self: 'self',
        };
    }
    static types() {
        return {
            displayName: 'string',
            id: 'string',
            responseStatus: 'string',
            self: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventResponseBodyOrganizer = PatchEventResponseBodyOrganizer;
class PatchEventResponseBodyRecurrencePattern extends $tea.Model {
    static names() {
        return {
            dayOfMonth: 'dayOfMonth',
            daysOfWeek: 'daysOfWeek',
            firstDayOfWeek: 'firstDayOfWeek',
            index: 'index',
            interval: 'interval',
            type: 'type',
        };
    }
    static types() {
        return {
            dayOfMonth: 'number',
            daysOfWeek: 'string',
            firstDayOfWeek: 'string',
            index: 'string',
            interval: 'number',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventResponseBodyRecurrencePattern = PatchEventResponseBodyRecurrencePattern;
class PatchEventResponseBodyRecurrenceRange extends $tea.Model {
    static names() {
        return {
            endDate: 'endDate',
            numberOfOccurrences: 'numberOfOccurrences',
            type: 'type',
        };
    }
    static types() {
        return {
            endDate: 'string',
            numberOfOccurrences: 'number',
            type: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventResponseBodyRecurrenceRange = PatchEventResponseBodyRecurrenceRange;
class PatchEventResponseBodyRecurrence extends $tea.Model {
    static names() {
        return {
            pattern: 'pattern',
            range: 'range',
        };
    }
    static types() {
        return {
            pattern: PatchEventResponseBodyRecurrencePattern,
            range: PatchEventResponseBodyRecurrenceRange,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventResponseBodyRecurrence = PatchEventResponseBodyRecurrence;
class PatchEventResponseBodyReminders extends $tea.Model {
    static names() {
        return {
            method: 'method',
            minutes: 'minutes',
        };
    }
    static types() {
        return {
            method: 'string',
            minutes: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventResponseBodyReminders = PatchEventResponseBodyReminders;
class PatchEventResponseBodyRichTextDescription extends $tea.Model {
    static names() {
        return {
            text: 'text',
        };
    }
    static types() {
        return {
            text: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventResponseBodyRichTextDescription = PatchEventResponseBodyRichTextDescription;
class PatchEventResponseBodyStart extends $tea.Model {
    static names() {
        return {
            date: 'date',
            dateTime: 'dateTime',
            timeZone: 'timeZone',
        };
    }
    static types() {
        return {
            date: 'string',
            dateTime: 'string',
            timeZone: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventResponseBodyStart = PatchEventResponseBodyStart;
class PatchEventResponseBodyUiConfigs extends $tea.Model {
    static names() {
        return {
            uiName: 'uiName',
            uiStatus: 'uiStatus',
        };
    }
    static types() {
        return {
            uiName: 'string',
            uiStatus: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.PatchEventResponseBodyUiConfigs = PatchEventResponseBodyUiConfigs;
class RemoveAttendeeRequestAttendeesToRemove extends $tea.Model {
    static names() {
        return {
            id: 'id',
        };
    }
    static types() {
        return {
            id: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RemoveAttendeeRequestAttendeesToRemove = RemoveAttendeeRequestAttendeesToRemove;
class RemoveMeetingRoomsRequestMeetingRoomsToRemove extends $tea.Model {
    static names() {
        return {
            roomId: 'roomId',
        };
    }
    static types() {
        return {
            roomId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RemoveMeetingRoomsRequestMeetingRoomsToRemove = RemoveMeetingRoomsRequestMeetingRoomsToRemove;
class UpdateSubscribedCalendarsRequestSubscribeScope extends $tea.Model {
    static names() {
        return {
            corpIds: 'corpIds',
            openConversationIds: 'openConversationIds',
            unionIds: 'unionIds',
        };
    }
    static types() {
        return {
            corpIds: { 'type': 'array', 'itemType': 'string' },
            openConversationIds: { 'type': 'array', 'itemType': 'string' },
            unionIds: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateSubscribedCalendarsRequestSubscribeScope = UpdateSubscribedCalendarsRequestSubscribeScope;
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 - AddAttendeeRequest
     * @param headers - AddAttendeeHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns AddAttendeeResponse
     */
    async addAttendeeWithOptions(userId, calendarId, eventId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.attendeesToAdd)) {
            body["attendeesToAdd"] = request.attendeesToAdd;
        }
        if (!tea_util_1.default.isUnset(request.chatNotification)) {
            body["chatNotification"] = request.chatNotification;
        }
        if (!tea_util_1.default.isUnset(request.pushNotification)) {
            body["pushNotification"] = request.pushNotification;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xClientToken)) {
            realHeaders["x-client-token"] = tea_util_1.default.toJSONString(headers.xClientToken);
        }
        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: "AddAttendee",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/events/${eventId}/attendees`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "none",
        });
        return $tea.cast(await this.execute(params, req, runtime), new AddAttendeeResponse({}));
    }
    /**
     * 新增日程参与人
     *
     * @param request - AddAttendeeRequest
     * @returns AddAttendeeResponse
     */
    async addAttendee(userId, calendarId, eventId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new AddAttendeeHeaders({});
        return await this.addAttendeeWithOptions(userId, calendarId, eventId, request, headers, runtime);
    }
    /**
     * 添加会议室
     *
     * @param request - AddMeetingRoomsRequest
     * @param headers - AddMeetingRoomsHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns AddMeetingRoomsResponse
     */
    async addMeetingRoomsWithOptions(userId, calendarId, eventId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.meetingRoomsToAdd)) {
            body["meetingRoomsToAdd"] = request.meetingRoomsToAdd;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xClientToken)) {
            realHeaders["x-client-token"] = tea_util_1.default.toJSONString(headers.xClientToken);
        }
        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: "AddMeetingRooms",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/events/${eventId}/meetingRooms`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new AddMeetingRoomsResponse({}));
    }
    /**
     * 添加会议室
     *
     * @param request - AddMeetingRoomsRequest
     * @returns AddMeetingRoomsResponse
     */
    async addMeetingRooms(userId, calendarId, eventId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new AddMeetingRoomsHeaders({});
        return await this.addMeetingRoomsWithOptions(userId, calendarId, eventId, request, headers, runtime);
    }
    /**
     * 取消指定日程
     *
     * @param request - CancelEventRequest
     * @param headers - CancelEventHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns CancelEventResponse
     */
    async cancelEventWithOptions(userId, calendarId, eventId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.scope)) {
            query["scope"] = request.scope;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xClientToken)) {
            realHeaders["x-client-token"] = tea_util_1.default.toJSONString(headers.xClientToken);
        }
        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: "CancelEvent",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/events/${eventId}/cancel`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new CancelEventResponse({}));
    }
    /**
     * 取消指定日程
     *
     * @param request - CancelEventRequest
     * @returns CancelEventResponse
     */
    async cancelEvent(userId, calendarId, eventId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new CancelEventHeaders({});
        return await this.cancelEventWithOptions(userId, calendarId, eventId, request, headers, runtime);
    }
    /**
     * 签到
     *
     * @param headers - CheckInHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns CheckInResponse
     */
    async checkInWithOptions(userId, calendarId, eventId, headers, runtime) {
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
        });
        let params = new $OpenApi.Params({
            action: "CheckIn",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/events/${eventId}/checkIn`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new CheckInResponse({}));
    }
    /**
     * 签到
     * @returns CheckInResponse
     */
    async checkIn(userId, calendarId, eventId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new CheckInHeaders({});
        return await this.checkInWithOptions(userId, calendarId, eventId, headers, runtime);
    }
    /**
     * 转换老版本的eventId
     *
     * @param request - ConvertLegacyEventIdRequest
     * @param headers - ConvertLegacyEventIdHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ConvertLegacyEventIdResponse
     */
    async convertLegacyEventIdWithOptions(userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.legacyEventIds)) {
            body["legacyEventIds"] = request.legacyEventIds;
        }
        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: "ConvertLegacyEventId",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/legacyEventIds/convert`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new ConvertLegacyEventIdResponse({}));
    }
    /**
     * 转换老版本的eventId
     *
     * @param request - ConvertLegacyEventIdRequest
     * @returns ConvertLegacyEventIdResponse
     */
    async convertLegacyEventId(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new ConvertLegacyEventIdHeaders({});
        return await this.convertLegacyEventIdWithOptions(userId, request, headers, runtime);
    }
    /**
     * 创建访问控制
     *
     * @param request - CreateAclsRequest
     * @param headers - CreateAclsHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns CreateAclsResponse
     */
    async createAclsWithOptions(userId, calendarId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.privilege)) {
            body["privilege"] = request.privilege;
        }
        if (!tea_util_1.default.isUnset(request.scope)) {
            body["scope"] = request.scope;
        }
        if (!tea_util_1.default.isUnset(request.sendMsg)) {
            body["sendMsg"] = request.sendMsg;
        }
        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: "CreateAcls",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/acls`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new CreateAclsResponse({}));
    }
    /**
     * 创建访问控制
     *
     * @param request - CreateAclsRequest
     * @returns CreateAclsResponse
     */
    async createAcls(userId, calendarId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new CreateAclsHeaders({});
        return await this.createAclsWithOptions(userId, calendarId, request, headers, runtime);
    }
    /**
     * 创建日程
     *
     * @param request - CreateEventRequest
     * @param headers - CreateEventHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns CreateEventResponse
     */
    async createEventWithOptions(userId, calendarId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.attendees)) {
            body["attendees"] = request.attendees;
        }
        if (!tea_util_1.default.isUnset(request.cardInstances)) {
            body["cardInstances"] = request.cardInstances;
        }
        if (!tea_util_1.default.isUnset(request.categories)) {
            body["categories"] = request.categories;
        }
        if (!tea_util_1.default.isUnset(request.description)) {
            body["description"] = request.description;
        }
        if (!tea_util_1.default.isUnset(request.end)) {
            body["end"] = request.end;
        }
        if (!tea_util_1.default.isUnset(request.extra)) {
            body["extra"] = request.extra;
        }
        if (!tea_util_1.default.isUnset(request.freeBusyStatus)) {
            body["freeBusyStatus"] = request.freeBusyStatus;
        }
        if (!tea_util_1.default.isUnset(request.isAllDay)) {
            body["isAllDay"] = request.isAllDay;
        }
        if (!tea_util_1.default.isUnset(request.location)) {
            body["location"] = request.location;
        }
        if (!tea_util_1.default.isUnset(request.onlineMeetingInfo)) {
            body["onlineMeetingInfo"] = request.onlineMeetingInfo;
        }
        if (!tea_util_1.default.isUnset(request.recurrence)) {
            body["recurrence"] = request.recurrence;
        }
        if (!tea_util_1.default.isUnset(request.reminders)) {
            body["reminders"] = request.reminders;
        }
        if (!tea_util_1.default.isUnset(request.richTextDescription)) {
            body["richTextDescription"] = request.richTextDescription;
        }
        if (!tea_util_1.default.isUnset(request.start)) {
            body["start"] = request.start;
        }
        if (!tea_util_1.default.isUnset(request.summary)) {
            body["summary"] = request.summary;
        }
        if (!tea_util_1.default.isUnset(request.uiConfigs)) {
            body["uiConfigs"] = request.uiConfigs;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xClientToken)) {
            realHeaders["x-client-token"] = tea_util_1.default.toJSONString(headers.xClientToken);
        }
        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: "CreateEvent",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/events`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new CreateEventResponse({}));
    }
    /**
     * 创建日程
     *
     * @param request - CreateEventRequest
     * @returns CreateEventResponse
     */
    async createEvent(userId, calendarId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new CreateEventHeaders({});
        return await this.createEventWithOptions(userId, calendarId, request, headers, runtime);
    }
    /**
     * 创建日程(me接口)
     *
     * @param request - CreateEventByMeRequest
     * @param headers - CreateEventByMeHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns CreateEventByMeResponse
     */
    async createEventByMeWithOptions(calendarId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.attendees)) {
            body["attendees"] = request.attendees;
        }
        if (!tea_util_1.default.isUnset(request.description)) {
            body["description"] = request.description;
        }
        if (!tea_util_1.default.isUnset(request.end)) {
            body["end"] = request.end;
        }
        if (!tea_util_1.default.isUnset(request.extra)) {
            body["extra"] = request.extra;
        }
        if (!tea_util_1.default.isUnset(request.isAllDay)) {
            body["isAllDay"] = request.isAllDay;
        }
        if (!tea_util_1.default.isUnset(request.location)) {
            body["location"] = request.location;
        }
        if (!tea_util_1.default.isUnset(request.onlineMeetingInfo)) {
            body["onlineMeetingInfo"] = request.onlineMeetingInfo;
        }
        if (!tea_util_1.default.isUnset(request.recurrence)) {
            body["recurrence"] = request.recurrence;
        }
        if (!tea_util_1.default.isUnset(request.reminders)) {
            body["reminders"] = request.reminders;
        }
        if (!tea_util_1.default.isUnset(request.richTextDescription)) {
            body["richTextDescription"] = request.richTextDescription;
        }
        if (!tea_util_1.default.isUnset(request.start)) {
            body["start"] = request.start;
        }
        if (!tea_util_1.default.isUnset(request.summary)) {
            body["summary"] = request.summary;
        }
        if (!tea_util_1.default.isUnset(request.uiConfigs)) {
            body["uiConfigs"] = request.uiConfigs;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xClientToken)) {
            realHeaders["x-client-token"] = tea_util_1.default.toJSONString(headers.xClientToken);
        }
        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: "CreateEventByMe",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/me/calendars/${calendarId}/events`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new CreateEventByMeResponse({}));
    }
    /**
     * 创建日程(me接口)
     *
     * @param request - CreateEventByMeRequest
     * @returns CreateEventByMeResponse
     */
    async createEventByMe(calendarId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new CreateEventByMeHeaders({});
        return await this.createEventByMeWithOptions(calendarId, request, headers, runtime);
    }
    /**
     * 快速创建订阅日历
     *
     * @param request - CreateSubscribedCalendarRequest
     * @param headers - CreateSubscribedCalendarHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns CreateSubscribedCalendarResponse
     */
    async createSubscribedCalendarWithOptions(userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.description)) {
            body["description"] = request.description;
        }
        if (!tea_util_1.default.isUnset(request.managers)) {
            body["managers"] = request.managers;
        }
        if (!tea_util_1.default.isUnset(request.name)) {
            body["name"] = request.name;
        }
        if (!tea_util_1.default.isUnset(request.subscribeScope)) {
            body["subscribeScope"] = request.subscribeScope;
        }
        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: "CreateSubscribedCalendar",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/subscribedCalendars`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new CreateSubscribedCalendarResponse({}));
    }
    /**
     * 快速创建订阅日历
     *
     * @param request - CreateSubscribedCalendarRequest
     * @returns CreateSubscribedCalendarResponse
     */
    async createSubscribedCalendar(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new CreateSubscribedCalendarHeaders({});
        return await this.createSubscribedCalendarWithOptions(userId, request, headers, runtime);
    }
    /**
     * 删除访问控制
     *
     * @param headers - DeleteAclHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns DeleteAclResponse
     */
    async deleteAclWithOptions(userId, calendarId, aclId, headers, runtime) {
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
        });
        let params = new $OpenApi.Params({
            action: "DeleteAcl",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/acls/${aclId}`,
            method: "DELETE",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "none",
        });
        return $tea.cast(await this.execute(params, req, runtime), new DeleteAclResponse({}));
    }
    /**
     * 删除访问控制
     * @returns DeleteAclResponse
     */
    async deleteAcl(userId, calendarId, aclId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new DeleteAclHeaders({});
        return await this.deleteAclWithOptions(userId, calendarId, aclId, headers, runtime);
    }
    /**
     * 删除指定日程
     *
     * @param request - DeleteEventRequest
     * @param headers - DeleteEventHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns DeleteEventResponse
     */
    async deleteEventWithOptions(userId, calendarId, eventId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.pushNotification)) {
            query["pushNotification"] = request.pushNotification;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xClientToken)) {
            realHeaders["x-client-token"] = tea_util_1.default.toJSONString(headers.xClientToken);
        }
        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: "DeleteEvent",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/events/${eventId}`,
            method: "DELETE",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "none",
        });
        return $tea.cast(await this.execute(params, req, runtime), new DeleteEventResponse({}));
    }
    /**
     * 删除指定日程
     *
     * @param request - DeleteEventRequest
     * @returns DeleteEventResponse
     */
    async deleteEvent(userId, calendarId, eventId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new DeleteEventHeaders({});
        return await this.deleteEventWithOptions(userId, calendarId, eventId, request, headers, runtime);
    }
    /**
     * 删除指定订阅日历
     *
     * @param headers - DeleteSubscribedCalendarHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns DeleteSubscribedCalendarResponse
     */
    async deleteSubscribedCalendarWithOptions(userId, calendarId, headers, runtime) {
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
        });
        let params = new $OpenApi.Params({
            action: "DeleteSubscribedCalendar",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/subscribedCalendars/${calendarId}`,
            method: "DELETE",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new DeleteSubscribedCalendarResponse({}));
    }
    /**
     * 删除指定订阅日历
     * @returns DeleteSubscribedCalendarResponse
     */
    async deleteSubscribedCalendar(userId, calendarId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new DeleteSubscribedCalendarHeaders({});
        return await this.deleteSubscribedCalendarWithOptions(userId, calendarId, headers, runtime);
    }
    /**
     * 生成caldav账户
     *
     * @param request - GenerateCaldavAccountRequest
     * @param headers - GenerateCaldavAccountHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GenerateCaldavAccountResponse
     */
    async generateCaldavAccountWithOptions(userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.device)) {
            body["device"] = request.device;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.dingUid)) {
            realHeaders["dingUid"] = tea_util_1.default.toJSONString(headers.dingUid);
        }
        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: "GenerateCaldavAccount",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/caldavAccounts`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GenerateCaldavAccountResponse({}));
    }
    /**
     * 生成caldav账户
     *
     * @param request - GenerateCaldavAccountRequest
     * @returns GenerateCaldavAccountResponse
     */
    async generateCaldavAccount(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GenerateCaldavAccountHeaders({});
        return await this.generateCaldavAccountWithOptions(userId, request, headers, runtime);
    }
    /**
     * 查询日程列表
     *
     * @param request - GetEventRequest
     * @param headers - GetEventHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetEventResponse
     */
    async getEventWithOptions(userId, calendarId, eventId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.maxAttendees)) {
            query["maxAttendees"] = request.maxAttendees;
        }
        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: "GetEvent",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/events/${eventId}`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetEventResponse({}));
    }
    /**
     * 查询日程列表
     *
     * @param request - GetEventRequest
     * @returns GetEventResponse
     */
    async getEvent(userId, calendarId, eventId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetEventHeaders({});
        return await this.getEventWithOptions(userId, calendarId, eventId, request, headers, runtime);
    }
    /**
     * 查询会议室忙闲
     *
     * @param request - GetMeetingRoomsScheduleRequest
     * @param headers - GetMeetingRoomsScheduleHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetMeetingRoomsScheduleResponse
     */
    async getMeetingRoomsScheduleWithOptions(userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.endTime)) {
            body["endTime"] = request.endTime;
        }
        if (!tea_util_1.default.isUnset(request.roomIds)) {
            body["roomIds"] = request.roomIds;
        }
        if (!tea_util_1.default.isUnset(request.startTime)) {
            body["startTime"] = request.startTime;
        }
        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: "GetMeetingRoomsSchedule",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/meetingRooms/schedules/query`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetMeetingRoomsScheduleResponse({}));
    }
    /**
     * 查询会议室忙闲
     *
     * @param request - GetMeetingRoomsScheduleRequest
     * @returns GetMeetingRoomsScheduleResponse
     */
    async getMeetingRoomsSchedule(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetMeetingRoomsScheduleHeaders({});
        return await this.getMeetingRoomsScheduleWithOptions(userId, request, headers, runtime);
    }
    /**
     * 查询闲忙
     *
     * @param request - GetScheduleRequest
     * @param headers - GetScheduleHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetScheduleResponse
     */
    async getScheduleWithOptions(userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.endTime)) {
            body["endTime"] = request.endTime;
        }
        if (!tea_util_1.default.isUnset(request.startTime)) {
            body["startTime"] = request.startTime;
        }
        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: "GetSchedule",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/querySchedule`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetScheduleResponse({}));
    }
    /**
     * 查询闲忙
     *
     * @param request - GetScheduleRequest
     * @returns GetScheduleResponse
     */
    async getSchedule(userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetScheduleHeaders({});
        return await this.getScheduleWithOptions(userId, request, headers, runtime);
    }
    /**
     * 查询闲忙(me接口）
     *
     * @param request - GetScheduleByMeRequest
     * @param headers - GetScheduleByMeHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetScheduleByMeResponse
     */
    async getScheduleByMeWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.endTime)) {
            body["endTime"] = request.endTime;
        }
        if (!tea_util_1.default.isUnset(request.startTime)) {
            body["startTime"] = request.startTime;
        }
        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.xClientToken)) {
            realHeaders["x-client-token"] = tea_util_1.default.toJSONString(headers.xClientToken);
        }
        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: "GetScheduleByMe",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/me/schedules/query`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetScheduleByMeResponse({}));
    }
    /**
     * 查询闲忙(me接口）
     *
     * @param request - GetScheduleByMeRequest
     * @returns GetScheduleByMeResponse
     */
    async getScheduleByMe(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetScheduleByMeHeaders({});
        return await this.getScheduleByMeWithOptions(request, headers, runtime);
    }
    /**
     * 获取签到链接
     *
     * @param headers - GetSignInLinkHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetSignInLinkResponse
     */
    async getSignInLinkWithOptions(calendarId, userId, eventId, headers, runtime) {
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
        });
        let params = new $OpenApi.Params({
            action: "GetSignInLink",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/events/${eventId}/signInLinks`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetSignInLinkResponse({}));
    }
    /**
     * 获取签到链接
     * @returns GetSignInLinkResponse
     */
    async getSignInLink(calendarId, userId, eventId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetSignInLinkHeaders({});
        return await this.getSignInLinkWithOptions(calendarId, userId, eventId, headers, runtime);
    }
    /**
     * 获取签到信息详情
     *
     * @param request - GetSignInListRequest
     * @param headers - GetSignInListHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetSignInListResponse
     */
    async getSignInListWithOptions(userId, calendarId, eventId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.maxResults)) {
            query["maxResults"] = request.maxResults;
        }
        if (!tea_util_1.default.isUnset(request.nextToken)) {
            query["nextToken"] = request.nextToken;
        }
        if (!tea_util_1.default.isUnset(request.type)) {
            query["type"] = request.type;
        }
        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: "GetSignInList",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/events/${eventId}/signin`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetSignInListResponse({}));
    }
    /**
     * 获取签到信息详情
     *
     * @param request - GetSignInListRequest
     * @returns GetSignInListResponse
     */
    async getSignInList(userId, calendarId, eventId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetSignInListHeaders({});
        return await this.getSignInListWithOptions(userId, calendarId, eventId, request, headers, runtime);
    }
    /**
     * 获取签退链接
     *
     * @param headers - GetSignOutLinkHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetSignOutLinkResponse
     */
    async getSignOutLinkWithOptions(calendarId, userId, eventId, headers, runtime) {
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
        });
        let params = new $OpenApi.Params({
            action: "GetSignOutLink",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/events/${eventId}/signOutLinks`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetSignOutLinkResponse({}));
    }
    /**
     * 获取签退链接
     * @returns GetSignOutLinkResponse
     */
    async getSignOutLink(calendarId, userId, eventId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetSignOutLinkHeaders({});
        return await this.getSignOutLinkWithOptions(calendarId, userId, eventId, headers, runtime);
    }
    /**
     * 获取签退信息详情
     *
     * @param request - GetSignOutListRequest
     * @param headers - GetSignOutListHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetSignOutListResponse
     */
    async getSignOutListWithOptions(userId, calendarId, eventId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.maxResults)) {
            query["maxResults"] = request.maxResults;
        }
        if (!tea_util_1.default.isUnset(request.nextToken)) {
            query["nextToken"] = request.nextToken;
        }
        if (!tea_util_1.default.isUnset(request.type)) {
            query["type"] = request.type;
        }
        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: "GetSignOutList",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/events/${eventId}/signOut`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetSignOutListResponse({}));
    }
    /**
     * 获取签退信息详情
     *
     * @param request - GetSignOutListRequest
     * @returns GetSignOutListResponse
     */
    async getSignOutList(userId, calendarId, eventId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetSignOutListHeaders({});
        return await this.getSignOutListWithOptions(userId, calendarId, eventId, request, headers, runtime);
    }
    /**
     * 获取指定订阅日历详情
     *
     * @param headers - GetSubscribedCalendarHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetSubscribedCalendarResponse
     */
    async getSubscribedCalendarWithOptions(userId, calendarId, headers, runtime) {
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
        });
        let params = new $OpenApi.Params({
            action: "GetSubscribedCalendar",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/subscribedCalendars/${calendarId}`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetSubscribedCalendarResponse({}));
    }
    /**
     * 获取指定订阅日历详情
     * @returns GetSubscribedCalendarResponse
     */
    async getSubscribedCalendar(userId, calendarId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetSubscribedCalendarHeaders({});
        return await this.getSubscribedCalendarWithOptions(userId, calendarId, headers, runtime);
    }
    /**
     * 获取访问控制列表
     *
     * @param headers - ListAclsHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ListAclsResponse
     */
    async listAclsWithOptions(userId, calendarId, headers, runtime) {
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
        });
        let params = new $OpenApi.Params({
            action: "ListAcls",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/acls`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new ListAclsResponse({}));
    }
    /**
     * 获取访问控制列表
     * @returns ListAclsResponse
     */
    async listAcls(userId, calendarId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new ListAclsHeaders({});
        return await this.listAclsWithOptions(userId, calendarId, headers, runtime);
    }
    /**
     * 分页获取参与人列表
     *
     * @param request - ListAttendeesRequest
     * @param headers - ListAttendeesHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ListAttendeesResponse
     */
    async listAttendeesWithOptions(userId, calendarId, eventId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.maxResults)) {
            query["maxResults"] = request.maxResults;
        }
        if (!tea_util_1.default.isUnset(request.nextToken)) {
            query["nextToken"] = request.nextToken;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
        });
        let params = new $OpenApi.Params({
            action: "ListAttendees",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/events/${eventId}/attendees`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new ListAttendeesResponse({}));
    }
    /**
     * 分页获取参与人列表
     *
     * @param request - ListAttendeesRequest
     * @returns ListAttendeesResponse
     */
    async listAttendees(userId, calendarId, eventId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new ListAttendeesHeaders({});
        return await this.listAttendeesWithOptions(userId, calendarId, eventId, request, headers, runtime);
    }
    /**
     * 日历本查询
     *
     * @param headers - ListCalendarsHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ListCalendarsResponse
     */
    async listCalendarsWithOptions(userId, headers, runtime) {
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
        });
        let params = new $OpenApi.Params({
            action: "ListCalendars",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new ListCalendarsResponse({}));
    }
    /**
     * 日历本查询
     * @returns ListCalendarsResponse
     */
    async listCalendars(userId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new ListCalendarsHeaders({});
        return await this.listCalendarsWithOptions(userId, headers, runtime);
    }
    /**
     * 获取会议类型列表
     *
     * @param headers - ListCategoriesHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ListCategoriesResponse
     */
    async listCategoriesWithOptions(userId, headers, runtime) {
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xClientToken)) {
            realHeaders["x-client-token"] = tea_util_1.default.toJSONString(headers.xClientToken);
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
        });
        let params = new $OpenApi.Params({
            action: "ListCategories",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/categories`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new ListCategoriesResponse({}));
    }
    /**
     * 获取会议类型列表
     * @returns ListCategoriesResponse
     */
    async listCategories(userId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new ListCategoriesHeaders({});
        return await this.listCategoriesWithOptions(userId, headers, runtime);
    }
    /**
     * 查询日程列表
     *
     * @param request - ListEventsRequest
     * @param headers - ListEventsHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ListEventsResponse
     */
    async listEventsWithOptions(userId, calendarId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.maxAttendees)) {
            query["maxAttendees"] = request.maxAttendees;
        }
        if (!tea_util_1.default.isUnset(request.maxResults)) {
            query["maxResults"] = request.maxResults;
        }
        if (!tea_util_1.default.isUnset(request.nextToken)) {
            query["nextToken"] = request.nextToken;
        }
        if (!tea_util_1.default.isUnset(request.seriesMasterId)) {
            query["seriesMasterId"] = request.seriesMasterId;
        }
        if (!tea_util_1.default.isUnset(request.showDeleted)) {
            query["showDeleted"] = request.showDeleted;
        }
        if (!tea_util_1.default.isUnset(request.syncToken)) {
            query["syncToken"] = request.syncToken;
        }
        if (!tea_util_1.default.isUnset(request.timeMax)) {
            query["timeMax"] = request.timeMax;
        }
        if (!tea_util_1.default.isUnset(request.timeMin)) {
            query["timeMin"] = request.timeMin;
        }
        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: "ListEvents",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/events`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new ListEventsResponse({}));
    }
    /**
     * 查询日程列表
     *
     * @param request - ListEventsRequest
     * @returns ListEventsResponse
     */
    async listEvents(userId, calendarId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new ListEventsHeaders({});
        return await this.listEventsWithOptions(userId, calendarId, request, headers, runtime);
    }
    /**
     * 查询同一个循环日程序列下已生成的实例
     *
     * @param request - ListEventsInstancesRequest
     * @param headers - ListEventsInstancesHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ListEventsInstancesResponse
     */
    async listEventsInstancesWithOptions(userId, calendarId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.maxAttendees)) {
            query["maxAttendees"] = request.maxAttendees;
        }
        if (!tea_util_1.default.isUnset(request.maxResults)) {
            query["maxResults"] = request.maxResults;
        }
        if (!tea_util_1.default.isUnset(request.seriesMasterId)) {
            query["seriesMasterId"] = request.seriesMasterId;
        }
        if (!tea_util_1.default.isUnset(request.startRecurrenceId)) {
            query["startRecurrenceId"] = request.startRecurrenceId;
        }
        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: "ListEventsInstances",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/instances`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new ListEventsInstancesResponse({}));
    }
    /**
     * 查询同一个循环日程序列下已生成的实例
     *
     * @param request - ListEventsInstancesRequest
     * @returns ListEventsInstancesResponse
     */
    async listEventsInstances(userId, calendarId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new ListEventsInstancesHeaders({});
        return await this.listEventsInstancesWithOptions(userId, calendarId, request, headers, runtime);
    }
    /**
     * 查询日程视图列表以查看闲忙，展开循环日程
     *
     * @param request - ListEventsViewRequest
     * @param headers - ListEventsViewHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ListEventsViewResponse
     */
    async listEventsViewWithOptions(userId, calendarId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.maxAttendees)) {
            query["maxAttendees"] = request.maxAttendees;
        }
        if (!tea_util_1.default.isUnset(request.maxResults)) {
            query["maxResults"] = request.maxResults;
        }
        if (!tea_util_1.default.isUnset(request.nextToken)) {
            query["nextToken"] = request.nextToken;
        }
        if (!tea_util_1.default.isUnset(request.timeMax)) {
            query["timeMax"] = request.timeMax;
        }
        if (!tea_util_1.default.isUnset(request.timeMin)) {
            query["timeMin"] = request.timeMin;
        }
        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: "ListEventsView",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/eventsview`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new ListEventsViewResponse({}));
    }
    /**
     * 查询日程视图列表以查看闲忙，展开循环日程
     *
     * @param request - ListEventsViewRequest
     * @returns ListEventsViewResponse
     */
    async listEventsView(userId, calendarId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new ListEventsViewHeaders({});
        return await this.listEventsViewWithOptions(userId, calendarId, request, headers, runtime);
    }
    /**
     * 查询日程视图列表以查看闲忙，展开循环日程(me接口）
     *
     * @param request - ListEventsViewByMeRequest
     * @param headers - ListEventsViewByMeHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ListEventsViewByMeResponse
     */
    async listEventsViewByMeWithOptions(calendarId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.maxAttendees)) {
            query["maxAttendees"] = request.maxAttendees;
        }
        if (!tea_util_1.default.isUnset(request.maxResults)) {
            query["maxResults"] = request.maxResults;
        }
        if (!tea_util_1.default.isUnset(request.nextToken)) {
            query["nextToken"] = request.nextToken;
        }
        if (!tea_util_1.default.isUnset(request.timeMax)) {
            query["timeMax"] = request.timeMax;
        }
        if (!tea_util_1.default.isUnset(request.timeMin)) {
            query["timeMin"] = request.timeMin;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xClientToken)) {
            realHeaders["x-client-token"] = tea_util_1.default.toJSONString(headers.xClientToken);
        }
        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: "ListEventsViewByMe",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/me/calendars/${calendarId}/eventsview`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new ListEventsViewByMeResponse({}));
    }
    /**
     * 查询日程视图列表以查看闲忙，展开循环日程(me接口）
     *
     * @param request - ListEventsViewByMeRequest
     * @returns ListEventsViewByMeResponse
     */
    async listEventsViewByMe(calendarId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new ListEventsViewByMeHeaders({});
        return await this.listEventsViewByMeWithOptions(calendarId, request, headers, runtime);
    }
    /**
     * 查询循环日程实例列表
     *
     * @param request - ListInstancesRequest
     * @param headers - ListInstancesHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ListInstancesResponse
     */
    async listInstancesWithOptions(userId, calendarId, eventId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.maxAttendees)) {
            query["maxAttendees"] = request.maxAttendees;
        }
        if (!tea_util_1.default.isUnset(request.maxResults)) {
            query["maxResults"] = request.maxResults;
        }
        if (!tea_util_1.default.isUnset(request.nextToken)) {
            query["nextToken"] = request.nextToken;
        }
        if (!tea_util_1.default.isUnset(request.timeMax)) {
            query["timeMax"] = request.timeMax;
        }
        if (!tea_util_1.default.isUnset(request.timeMin)) {
            query["timeMin"] = request.timeMin;
        }
        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: "ListInstances",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/events/${eventId}/instances`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new ListInstancesResponse({}));
    }
    /**
     * 查询循环日程实例列表
     *
     * @param request - ListInstancesRequest
     * @returns ListInstancesResponse
     */
    async listInstances(userId, calendarId, eventId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new ListInstancesHeaders({});
        return await this.listInstancesWithOptions(userId, calendarId, eventId, request, headers, runtime);
    }
    /**
     * 设置会议室在日程中的响应状态
     *
     * @param request - MeetingRoomRespondRequest
     * @param headers - MeetingRoomRespondHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns MeetingRoomRespondResponse
     */
    async meetingRoomRespondWithOptions(calendarId, userId, eventId, roomId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.responseStatus)) {
            body["responseStatus"] = request.responseStatus;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.userAgent)) {
            realHeaders["userAgent"] = tea_util_1.default.toJSONString(headers.userAgent);
        }
        if (!tea_util_1.default.isUnset(headers.xClientToken)) {
            realHeaders["x-client-token"] = tea_util_1.default.toJSONString(headers.xClientToken);
        }
        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: "MeetingRoomRespond",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/events/${eventId}/meetingRooms/${roomId}/respond`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new MeetingRoomRespondResponse({}));
    }
    /**
     * 设置会议室在日程中的响应状态
     *
     * @param request - MeetingRoomRespondRequest
     * @returns MeetingRoomRespondResponse
     */
    async meetingRoomRespond(calendarId, userId, eventId, roomId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new MeetingRoomRespondHeaders({});
        return await this.meetingRoomRespondWithOptions(calendarId, userId, eventId, roomId, request, headers, runtime);
    }
    /**
     * 修改日程
     *
     * @param request - PatchEventRequest
     * @param headers - PatchEventHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns PatchEventResponse
     */
    async patchEventWithOptions(userId, calendarId, eventId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.attendees)) {
            body["attendees"] = request.attendees;
        }
        if (!tea_util_1.default.isUnset(request.cardInstances)) {
            body["cardInstances"] = request.cardInstances;
        }
        if (!tea_util_1.default.isUnset(request.categories)) {
            body["categories"] = request.categories;
        }
        if (!tea_util_1.default.isUnset(request.description)) {
            body["description"] = request.description;
        }
        if (!tea_util_1.default.isUnset(request.end)) {
            body["end"] = request.end;
        }
        if (!tea_util_1.default.isUnset(request.extra)) {
            body["extra"] = request.extra;
        }
        if (!tea_util_1.default.isUnset(request.freeBusyStatus)) {
            body["freeBusyStatus"] = request.freeBusyStatus;
        }
        if (!tea_util_1.default.isUnset(request.id)) {
            body["id"] = request.id;
        }
        if (!tea_util_1.default.isUnset(request.isAllDay)) {
            body["isAllDay"] = request.isAllDay;
        }
        if (!tea_util_1.default.isUnset(request.location)) {
            body["location"] = request.location;
        }
        if (!tea_util_1.default.isUnset(request.onlineMeetingInfo)) {
            body["onlineMeetingInfo"] = request.onlineMeetingInfo;
        }
        if (!tea_util_1.default.isUnset(request.recurrence)) {
            body["recurrence"] = request.recurrence;
        }
        if (!tea_util_1.default.isUnset(request.reminders)) {
            body["reminders"] = request.reminders;
        }
        if (!tea_util_1.default.isUnset(request.richTextDescription)) {
            body["richTextDescription"] = request.richTextDescription;
        }
        if (!tea_util_1.default.isUnset(request.start)) {
            body["start"] = request.start;
        }
        if (!tea_util_1.default.isUnset(request.summary)) {
            body["summary"] = request.summary;
        }
        if (!tea_util_1.default.isUnset(request.uiConfigs)) {
            body["uiConfigs"] = request.uiConfigs;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xClientToken)) {
            realHeaders["x-client-token"] = tea_util_1.default.toJSONString(headers.xClientToken);
        }
        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: "PatchEvent",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/events/${eventId}`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new PatchEventResponse({}));
    }
    /**
     * 修改日程
     *
     * @param request - PatchEventRequest
     * @returns PatchEventResponse
     */
    async patchEvent(userId, calendarId, eventId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new PatchEventHeaders({});
        return await this.patchEventWithOptions(userId, calendarId, eventId, request, headers, runtime);
    }
    /**
     * 删除日程参与人
     *
     * @param request - RemoveAttendeeRequest
     * @param headers - RemoveAttendeeHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns RemoveAttendeeResponse
     */
    async removeAttendeeWithOptions(userId, calendarId, eventId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.attendeesToRemove)) {
            body["attendeesToRemove"] = request.attendeesToRemove;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xClientToken)) {
            realHeaders["x-client-token"] = tea_util_1.default.toJSONString(headers.xClientToken);
        }
        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: "RemoveAttendee",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/events/${eventId}/attendees/batchRemove`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "none",
        });
        return $tea.cast(await this.execute(params, req, runtime), new RemoveAttendeeResponse({}));
    }
    /**
     * 删除日程参与人
     *
     * @param request - RemoveAttendeeRequest
     * @returns RemoveAttendeeResponse
     */
    async removeAttendee(userId, calendarId, eventId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new RemoveAttendeeHeaders({});
        return await this.removeAttendeeWithOptions(userId, calendarId, eventId, request, headers, runtime);
    }
    /**
     * 删除会议室
     *
     * @param request - RemoveMeetingRoomsRequest
     * @param headers - RemoveMeetingRoomsHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns RemoveMeetingRoomsResponse
     */
    async removeMeetingRoomsWithOptions(userId, calendarId, eventId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.meetingRoomsToRemove)) {
            body["meetingRoomsToRemove"] = request.meetingRoomsToRemove;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xClientToken)) {
            realHeaders["x-client-token"] = tea_util_1.default.toJSONString(headers.xClientToken);
        }
        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: "RemoveMeetingRooms",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/events/${eventId}/meetingRooms/batchRemove`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new RemoveMeetingRoomsResponse({}));
    }
    /**
     * 删除会议室
     *
     * @param request - RemoveMeetingRoomsRequest
     * @returns RemoveMeetingRoomsResponse
     */
    async removeMeetingRooms(userId, calendarId, eventId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new RemoveMeetingRoomsHeaders({});
        return await this.removeMeetingRoomsWithOptions(userId, calendarId, eventId, request, headers, runtime);
    }
    /**
     * 回复日程邀请
     *
     * @param request - RespondEventRequest
     * @param headers - RespondEventHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns RespondEventResponse
     */
    async respondEventWithOptions(userId, calendarId, eventId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.responseStatus)) {
            body["responseStatus"] = request.responseStatus;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xClientToken)) {
            realHeaders["x-client-token"] = tea_util_1.default.toJSONString(headers.xClientToken);
        }
        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: "RespondEvent",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/events/${eventId}/respond`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "none",
        });
        return $tea.cast(await this.execute(params, req, runtime), new RespondEventResponse({}));
    }
    /**
     * 回复日程邀请
     *
     * @param request - RespondEventRequest
     * @returns RespondEventResponse
     */
    async respondEvent(userId, calendarId, eventId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new RespondEventHeaders({});
        return await this.respondEventWithOptions(userId, calendarId, eventId, request, headers, runtime);
    }
    /**
     * 签到
     *
     * @param headers - SignInHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns SignInResponse
     */
    async signInWithOptions(userId, calendarId, eventId, headers, runtime) {
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
        });
        let params = new $OpenApi.Params({
            action: "SignIn",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/events/${eventId}/signin`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new SignInResponse({}));
    }
    /**
     * 签到
     * @returns SignInResponse
     */
    async signIn(userId, calendarId, eventId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new SignInHeaders({});
        return await this.signInWithOptions(userId, calendarId, eventId, headers, runtime);
    }
    /**
     * 签退
     *
     * @param headers - SignOutHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns SignOutResponse
     */
    async signOutWithOptions(userId, calendarId, eventId, headers, runtime) {
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
        });
        let params = new $OpenApi.Params({
            action: "SignOut",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/events/${eventId}/signOut`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new SignOutResponse({}));
    }
    /**
     * 签退
     * @returns SignOutResponse
     */
    async signOut(userId, calendarId, eventId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new SignOutHeaders({});
        return await this.signOutWithOptions(userId, calendarId, eventId, headers, runtime);
    }
    /**
     * 订阅公共日历
     *
     * @param headers - SubscribeCalendarHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns SubscribeCalendarResponse
     */
    async subscribeCalendarWithOptions(userId, calendarId, headers, runtime) {
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
        });
        let params = new $OpenApi.Params({
            action: "SubscribeCalendar",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/subscribe`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "none",
        });
        return $tea.cast(await this.execute(params, req, runtime), new SubscribeCalendarResponse({}));
    }
    /**
     * 订阅公共日历
     * @returns SubscribeCalendarResponse
     */
    async subscribeCalendar(userId, calendarId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new SubscribeCalendarHeaders({});
        return await this.subscribeCalendarWithOptions(userId, calendarId, headers, runtime);
    }
    /**
     * 日程转让
     *
     * @param request - TransferEventRequest
     * @param headers - TransferEventHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns TransferEventResponse
     */
    async transferEventWithOptions(calendarId, userId, eventId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.isExitCalendar)) {
            body["isExitCalendar"] = request.isExitCalendar;
        }
        if (!tea_util_1.default.isUnset(request.needNotifyViaO2O)) {
            body["needNotifyViaO2O"] = request.needNotifyViaO2O;
        }
        if (!tea_util_1.default.isUnset(request.newOrganizerId)) {
            body["newOrganizerId"] = request.newOrganizerId;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xClientToken)) {
            realHeaders["x-client-token"] = tea_util_1.default.toJSONString(headers.xClientToken);
        }
        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: "TransferEvent",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/events/${eventId}/transfer`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new TransferEventResponse({}));
    }
    /**
     * 日程转让
     *
     * @param request - TransferEventRequest
     * @returns TransferEventResponse
     */
    async transferEvent(calendarId, userId, eventId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new TransferEventHeaders({});
        return await this.transferEventWithOptions(calendarId, userId, eventId, request, headers, runtime);
    }
    /**
     * 取消订阅公共日历
     *
     * @param headers - UnsubscribeCalendarHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UnsubscribeCalendarResponse
     */
    async unsubscribeCalendarWithOptions(userId, calendarId, headers, runtime) {
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
        });
        let params = new $OpenApi.Params({
            action: "UnsubscribeCalendar",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/calendars/${calendarId}/unsubscribe`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UnsubscribeCalendarResponse({}));
    }
    /**
     * 取消订阅公共日历
     * @returns UnsubscribeCalendarResponse
     */
    async unsubscribeCalendar(userId, calendarId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UnsubscribeCalendarHeaders({});
        return await this.unsubscribeCalendarWithOptions(userId, calendarId, headers, runtime);
    }
    /**
     * 更新指定订阅日历
     *
     * @param request - UpdateSubscribedCalendarsRequest
     * @param headers - UpdateSubscribedCalendarsHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateSubscribedCalendarsResponse
     */
    async updateSubscribedCalendarsWithOptions(calendarId, userId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.description)) {
            body["description"] = request.description;
        }
        if (!tea_util_1.default.isUnset(request.managers)) {
            body["managers"] = request.managers;
        }
        if (!tea_util_1.default.isUnset(request.name)) {
            body["name"] = request.name;
        }
        if (!tea_util_1.default.isUnset(request.subscribeScope)) {
            body["subscribeScope"] = request.subscribeScope;
        }
        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: "UpdateSubscribedCalendars",
            version: "calendar_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/calendar/users/${userId}/subscribedCalendars/${calendarId}`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateSubscribedCalendarsResponse({}));
    }
    /**
     * 更新指定订阅日历
     *
     * @param request - UpdateSubscribedCalendarsRequest
     * @returns UpdateSubscribedCalendarsResponse
     */
    async updateSubscribedCalendars(calendarId, userId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateSubscribedCalendarsHeaders({});
        return await this.updateSubscribedCalendarsWithOptions(calendarId, userId, request, headers, runtime);
    }
}
exports.default = Client;
//# sourceMappingURL=client.js.map