"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.GetATManageScopeHeaders = exports.DingTalkSecurityCheckResponse = exports.DingTalkSecurityCheckResponseBody = exports.DingTalkSecurityCheckRequest = exports.DingTalkSecurityCheckHeaders = exports.DeleteWaterMarkTemplateResponse = exports.DeleteWaterMarkTemplateResponseBody = exports.DeleteWaterMarkTemplateRequest = exports.DeleteWaterMarkTemplateHeaders = exports.DeleteLeaveRequestResponse = exports.DeleteLeaveRequestResponseBody = exports.DeleteLeaveRequestRequest = exports.DeleteLeaveRequestHeaders = exports.CreateApproveResponse = exports.CreateApproveResponseBody = exports.CreateApproveRequest = exports.CreateApproveHeaders = exports.CheckWritePermissionResponse = exports.CheckWritePermissionResponseBody = exports.CheckWritePermissionRequest = exports.CheckWritePermissionHeaders = exports.CheckClosingAccountResponse = exports.CheckClosingAccountResponseBody = exports.CheckClosingAccountRequest = exports.CheckClosingAccountHeaders = exports.CalculateDurationResponse = exports.CalculateDurationResponseBody = exports.CalculateDurationRequest = exports.CalculateDurationHeaders = exports.BatchBossCheckResponse = exports.BatchBossCheckResponseBody = exports.BatchBossCheckRequest = exports.BatchBossCheckHeaders = exports.AttendanceBleDevicesRemoveResponse = exports.AttendanceBleDevicesRemoveResponseBody = exports.AttendanceBleDevicesRemoveRequest = exports.AttendanceBleDevicesRemoveHeaders = exports.AttendanceBleDevicesQueryResponse = exports.AttendanceBleDevicesQueryResponseBody = exports.AttendanceBleDevicesQueryRequest = exports.AttendanceBleDevicesQueryHeaders = exports.AttendanceBleDevicesAddResponse = exports.AttendanceBleDevicesAddResponseBody = exports.AttendanceBleDevicesAddRequest = exports.AttendanceBleDevicesAddHeaders = exports.AddLeaveTypeResponse = exports.AddLeaveTypeResponseBody = exports.AddLeaveTypeRequest = exports.AddLeaveTypeHeaders = exports.ResultDurationSettingsValue = void 0;
exports.GetShiftHeaders = exports.GetOvertimeSettingResponse = exports.GetOvertimeSettingResponseBody = exports.GetOvertimeSettingRequest = exports.GetOvertimeSettingHeaders = exports.GetOverdraftInfoResponse = exports.GetOverdraftInfoResponseBody = exports.GetOverdraftInfoRequest = exports.GetOverdraftInfoHeaders = exports.GetMachineUserResponse = exports.GetMachineUserResponseBody = exports.GetMachineUserRequest = exports.GetMachineUserHeaders = exports.GetMachineResponse = exports.GetMachineResponseBody = exports.GetMachineHeaders = exports.GetLeaveTypeResponse = exports.GetLeaveTypeResponseBody = exports.GetLeaveTypeRequest = exports.GetLeaveTypeHeaders = exports.GetLeaveRecordsResponse = exports.GetLeaveRecordsResponseBody = exports.GetLeaveRecordsRequest = exports.GetLeaveRecordsHeaders = exports.GetColumnvalsResponse = exports.GetColumnvalsResponseBody = exports.GetColumnvalsRequest = exports.GetColumnvalsHeaders = exports.GetClosingAccountsResponse = exports.GetClosingAccountsResponseBody = exports.GetClosingAccountsRequest = exports.GetClosingAccountsHeaders = exports.GetClassWithDeletedResponse = exports.GetClassWithDeletedResponseBody = exports.GetClassWithDeletedHeaders = exports.GetCheckinRecordByUserResponse = exports.GetCheckinRecordByUserResponseBody = exports.GetCheckinRecordByUserRequest = exports.GetCheckinRecordByUserHeaders = exports.GetCheckInSchemaTemplateResponse = exports.GetCheckInSchemaTemplateResponseBody = exports.GetCheckInSchemaTemplateRequest = exports.GetCheckInSchemaTemplateHeaders = exports.GetAdjustmentsResponse = exports.GetAdjustmentsResponseBody = exports.GetAdjustmentsRequest = exports.GetAdjustmentsHeaders = exports.GetATManageScopeResponse = exports.GetATManageScopeResponseBody = exports.GetATManageScopeRequest = void 0;
exports.ReduceQuotaWithLeaveRecordResponseBody = exports.ReduceQuotaWithLeaveRecordRequest = exports.ReduceQuotaWithLeaveRecordHeaders = exports.ProcessHhOemUpdateResponse = exports.ProcessHhOemUpdateResponseBody = exports.ProcessHhOemUpdateRequest = exports.ProcessHhOemUpdateHeaders = exports.ProcessApproveFinishResponse = exports.ProcessApproveFinishResponseBody = exports.ProcessApproveFinishRequest = exports.ProcessApproveFinishHeaders = exports.ProcessApproveCreateResponse = exports.ProcessApproveCreateResponseBody = exports.ProcessApproveCreateRequest = exports.ProcessApproveCreateHeaders = exports.ModifyWaterMarkTemplateResponse = exports.ModifyWaterMarkTemplateResponseBody = exports.ModifyWaterMarkTemplateRequest = exports.ModifyWaterMarkTemplateHeaders = exports.ListApproveByUsersResponse = exports.ListApproveByUsersResponseBody = exports.ListApproveByUsersRequest = exports.ListApproveByUsersHeaders = exports.InitAndGetLeaveALlocationQuotasResponse = exports.InitAndGetLeaveALlocationQuotasResponseBody = exports.InitAndGetLeaveALlocationQuotasRequest = exports.InitAndGetLeaveALlocationQuotasHeaders = exports.GroupUpdateResponse = exports.GroupUpdateResponseBody = exports.GroupUpdateRequest = exports.GroupUpdateHeaders = exports.GroupAddResponse = exports.GroupAddResponseBody = exports.GroupAddRequest = exports.GroupAddHeaders = exports.GetUserHolidaysResponse = exports.GetUserHolidaysResponseBody = exports.GetUserHolidaysRequest = exports.GetUserHolidaysHeaders = exports.GetSimpleOvertimeSettingResponse = exports.GetSimpleOvertimeSettingResponseBody = exports.GetSimpleOvertimeSettingRequest = exports.GetSimpleOvertimeSettingHeaders = exports.GetSimpleGroupsResponse = exports.GetSimpleGroupsResponseBody = exports.GetSimpleGroupsRequest = exports.GetSimpleGroupsHeaders = exports.GetShiftResponse = exports.GetShiftResponseBody = exports.GetShiftRequest = void 0;
exports.CheckClosingAccountRequestUserTimeRange = exports.CalculateDurationResponseBodyResult = exports.CalculateDurationResponseBodyResultDurationDetail = exports.BatchBossCheckRequestModels = exports.AttendanceBleDevicesRemoveResponseBodyErrorList = exports.AttendanceBleDevicesQueryResponseBodyResult = exports.AttendanceBleDevicesAddResponseBodySuccessList = exports.AttendanceBleDevicesAddResponseBodyErrorList = exports.AttendanceBleDevicesAddResponseBodyErrorListFailureList = exports.AddLeaveTypeResponseBodyResult = exports.AddLeaveTypeResponseBodyResultVisibilityRules = exports.AddLeaveTypeResponseBodyResultSubmitTimeRule = exports.AddLeaveTypeResponseBodyResultLeaveCertificate = exports.AddLeaveTypeRequestVisibilityRules = exports.AddLeaveTypeRequestSubmitTimeRule = exports.AddLeaveTypeRequestLeaveCertificate = exports.ResultDurationSettingsValueSkipTimeByDurations = exports.ResultDurationSettingsValueSkipTimeByFrames = exports.UpdateVacationQuotaResponse = exports.UpdateVacationQuotaResponseBody = exports.UpdateVacationQuotaRequest = exports.UpdateVacationQuotaHeaders = exports.UpdateLeaveTypeResponse = exports.UpdateLeaveTypeResponseBody = exports.UpdateLeaveTypeRequest = exports.UpdateLeaveTypeHeaders = exports.SyncScheduleInfoResponse = exports.SyncScheduleInfoRequest = exports.SyncScheduleInfoHeaders = exports.ShiftAddResponse = exports.ShiftAddResponseBody = exports.ShiftAddRequest = exports.ShiftAddHeaders = exports.SaveCustomWaterMarkTemplateResponse = exports.SaveCustomWaterMarkTemplateResponseBody = exports.SaveCustomWaterMarkTemplateRequest = exports.SaveCustomWaterMarkTemplateHeaders = exports.SalaryThirdDataIntegrationResponse = exports.SalaryThirdDataIntegrationResponseBody = exports.SalaryThirdDataIntegrationRequest = exports.SalaryThirdDataIntegrationHeaders = exports.ReverseTrialAdvancedLeaveResponse = exports.ReverseTrialAdvancedLeaveResponseBody = exports.ReverseTrialAdvancedLeaveRequest = exports.ReverseTrialAdvancedLeaveHeaders = exports.RetainLeaveTypesResponse = exports.RetainLeaveTypesResponseBody = exports.RetainLeaveTypesRequest = exports.RetainLeaveTypesHeaders = exports.ReduceQuotaWithLeaveRecordResponse = void 0;
exports.GetSimpleGroupsResponseBodyResultGroupsSelectedClassSetting = exports.GetSimpleGroupsResponseBodyResultGroupsSelectedClassSettingRestTimeList = exports.GetSimpleGroupsResponseBodyResultGroupsSelectedClassSettingRestTimeListEnd = exports.GetSimpleGroupsResponseBodyResultGroupsSelectedClassSettingRestTimeListBegin = exports.GetSimpleGroupsResponseBodyResultGroupsSelectedClassSections = exports.GetSimpleGroupsResponseBodyResultGroupsSelectedClassSectionsTimes = exports.GetShiftResponseBodyResult = exports.GetShiftResponseBodyResultShiftSetting = exports.GetShiftResponseBodyResultSections = exports.GetShiftResponseBodyResultSectionsRests = exports.GetShiftResponseBodyResultSectionsPunches = exports.GetShiftResponseBodyResultSectionsPunchesLateBackSetting = exports.GetShiftResponseBodyResultSectionsPunchesLateBackSettingLateBackPairs = exports.GetOvertimeSettingResponseBodyResult = exports.GetOvertimeSettingResponseBodyResultWarningSettings = exports.GetOvertimeSettingResponseBodyResultOvertimeDivisions = exports.GetOverdraftInfoResponseBodyOverdraftList = exports.GetMachineUserResponseBodyResult = exports.GetMachineUserResponseBodyResultUserList = exports.GetMachineResponseBodyResult = exports.GetMachineResponseBodyResultMachineBluetoothVO = exports.GetLeaveTypeResponseBodyResult = exports.GetLeaveTypeResponseBodyResultVisibilityRules = exports.GetLeaveTypeResponseBodyResultSubmitTimeRule = exports.GetLeaveTypeResponseBodyResultLeaveCertificate = exports.GetLeaveRecordsResponseBodyResult = exports.GetLeaveRecordsResponseBodyResultLeaveRecords = exports.GetColumnvalsResponseBodyResult = exports.GetColumnvalsResponseBodyResultColumnData = exports.GetColumnvalsResponseBodyResultColumnDataColumnValues = exports.GetClosingAccountsResponseBodyResult = exports.GetClosingAccountsResponseBodyResultUnsealClosingAccountModel = exports.GetClosingAccountsResponseBodyResultClosingAccountModel = exports.GetClassWithDeletedResponseBodyResult = exports.GetClassWithDeletedResponseBodyResultSections = exports.GetClassWithDeletedResponseBodyResultSectionsTimes = exports.GetClassWithDeletedResponseBodyResultClassSetting = exports.GetClassWithDeletedResponseBodyResultClassSettingRestTimeList = exports.GetClassWithDeletedResponseBodyResultClassSettingRestTimeListEnd = exports.GetClassWithDeletedResponseBodyResultClassSettingRestTimeListBegin = exports.GetCheckinRecordByUserResponseBodyResult = exports.GetCheckinRecordByUserResponseBodyResultPageList = exports.GetCheckinRecordByUserResponseBodyResultPageListCustomDataList = exports.GetCheckInSchemaTemplateResponseBodyResult = exports.GetCheckInSchemaTemplateResponseBodyResultWaterMarkTemplateModels = exports.GetAdjustmentsResponseBodyResult = exports.GetAdjustmentsResponseBodyResultItems = exports.GetATManageScopeResponseBodyResult = exports.DingTalkSecurityCheckResponseBodyResult = exports.CreateApproveRequestPunchParam = void 0;
exports.UpdateLeaveTypeResponseBodyResult = exports.UpdateLeaveTypeResponseBodyResultVisibilityRules = exports.UpdateLeaveTypeResponseBodyResultSubmitTimeRule = exports.UpdateLeaveTypeResponseBodyResultLeaveCertificate = exports.UpdateLeaveTypeRequestVisibilityRules = exports.UpdateLeaveTypeRequestSubmitTimeRule = exports.UpdateLeaveTypeRequestLeaveCertificate = exports.SyncScheduleInfoRequestScheduleInfos = exports.ShiftAddResponseBodyResult = exports.ShiftAddRequestSetting = exports.ShiftAddRequestSettingTopRestTimeList = exports.ShiftAddRequestSettingLateBackSetting = exports.ShiftAddRequestSettingLateBackSettingSections = exports.ShiftAddRequestSections = exports.ShiftAddRequestSectionsTimes = exports.SaveCustomWaterMarkTemplateResponseBodyResult = exports.SalaryThirdDataIntegrationResponseBodyResult = exports.SalaryThirdDataIntegrationRequestItems = exports.SalaryThirdDataIntegrationRequestItemsBizContents = exports.RetainLeaveTypesResponseBodyResult = exports.RetainLeaveTypesResponseBodyResultVisibilityRules = exports.RetainLeaveTypesResponseBodyResultSubmitTimeRule = exports.RetainLeaveTypesResponseBodyResultLeaveCertificate = exports.ProcessApproveFinishResponseBodyResult = exports.ProcessApproveFinishResponseBodyResultDurationDetail = exports.ProcessApproveFinishRequestTopCalculateApproveDurationParam = exports.ProcessApproveCreateResponseBodyResult = exports.ProcessApproveCreateRequestPunchParam = exports.ListApproveByUsersResponseBodyResult = exports.InitAndGetLeaveALlocationQuotasResponseBodyResult = exports.GroupUpdateResponseBodyResult = exports.GroupUpdateRequestShiftVOList = exports.GroupUpdateRequestPositions = exports.GroupUpdateRequestFreeCheckSetting = exports.GroupUpdateRequestFreeCheckSettingFreeCheckGap = exports.GroupAddResponseBodyResult = exports.GroupAddRequestWifis = exports.GroupAddRequestShiftVOList = exports.GroupAddRequestPositions = exports.GroupAddRequestMembers = exports.GroupAddRequestFreeCheckSetting = exports.GroupAddRequestFreeCheckSettingFreeCheckGap = exports.GroupAddRequestBleDeviceList = exports.GetUserHolidaysResponseBodyResult = exports.GetUserHolidaysResponseBodyResultHolidays = exports.GetSimpleOvertimeSettingResponseBodyResult = exports.GetSimpleOvertimeSettingResponseBodyResultItems = exports.GetSimpleGroupsResponseBodyResult = exports.GetSimpleGroupsResponseBodyResultGroups = exports.GetSimpleGroupsResponseBodyResultGroupsSelectedClass = void 0;
exports.UpdateVacationQuotaResponseBodyResult = exports.UpdateVacationQuotaResponseBodyResultQuota = exports.UpdateVacationQuotaRequestBody = 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 ResultDurationSettingsValue extends $tea.Model {
    static names() {
        return {
            calcType: 'calcType',
            durationType: 'durationType',
            overtimeRedress: 'overtimeRedress',
            settings: 'settings',
            overtimeRedressBy: 'overtimeRedressBy',
            vacationRate: 'vacationRate',
            skipTime: 'skipTime',
            skipTimeByFrames: 'skipTimeByFrames',
            skipTimeByDurations: 'skipTimeByDurations',
            holidayPlanOvertimeRedress: 'holidayPlanOvertimeRedress',
            holidayPlanOvertimeRedressBy: 'holidayPlanOvertimeRedressBy',
            holidayPlanVacationRate: 'holidayPlanVacationRate',
        };
    }
    static types() {
        return {
            calcType: 'number',
            durationType: 'number',
            overtimeRedress: 'boolean',
            settings: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
            overtimeRedressBy: 'string',
            vacationRate: 'number',
            skipTime: 'string',
            skipTimeByFrames: { 'type': 'array', 'itemType': ResultDurationSettingsValueSkipTimeByFrames },
            skipTimeByDurations: { 'type': 'array', 'itemType': ResultDurationSettingsValueSkipTimeByDurations },
            holidayPlanOvertimeRedress: 'boolean',
            holidayPlanOvertimeRedressBy: 'string',
            holidayPlanVacationRate: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ResultDurationSettingsValue = ResultDurationSettingsValue;
class AddLeaveTypeHeaders 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.AddLeaveTypeHeaders = AddLeaveTypeHeaders;
class AddLeaveTypeRequest extends $tea.Model {
    static names() {
        return {
            bizType: 'bizType',
            extras: 'extras',
            freedomLeave: 'freedomLeave',
            hoursInPerDay: 'hoursInPerDay',
            leaveCertificate: 'leaveCertificate',
            leaveHourCeil: 'leaveHourCeil',
            leaveName: 'leaveName',
            leaveTimeCeil: 'leaveTimeCeil',
            leaveTimeCeilMinUnit: 'leaveTimeCeilMinUnit',
            leaveViewUnit: 'leaveViewUnit',
            maxLeaveTime: 'maxLeaveTime',
            minLeaveHour: 'minLeaveHour',
            naturalDayLeave: 'naturalDayLeave',
            paidLeave: 'paidLeave',
            submitTimeRule: 'submitTimeRule',
            visibilityRules: 'visibilityRules',
            whenCanLeave: 'whenCanLeave',
            opUserId: 'opUserId',
        };
    }
    static types() {
        return {
            bizType: 'string',
            extras: 'string',
            freedomLeave: 'boolean',
            hoursInPerDay: 'number',
            leaveCertificate: AddLeaveTypeRequestLeaveCertificate,
            leaveHourCeil: 'string',
            leaveName: 'string',
            leaveTimeCeil: 'boolean',
            leaveTimeCeilMinUnit: 'string',
            leaveViewUnit: 'string',
            maxLeaveTime: 'number',
            minLeaveHour: 'number',
            naturalDayLeave: 'boolean',
            paidLeave: 'boolean',
            submitTimeRule: AddLeaveTypeRequestSubmitTimeRule,
            visibilityRules: { 'type': 'array', 'itemType': AddLeaveTypeRequestVisibilityRules },
            whenCanLeave: 'string',
            opUserId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AddLeaveTypeRequest = AddLeaveTypeRequest;
class AddLeaveTypeResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: AddLeaveTypeResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AddLeaveTypeResponseBody = AddLeaveTypeResponseBody;
class AddLeaveTypeResponse 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: AddLeaveTypeResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AddLeaveTypeResponse = AddLeaveTypeResponse;
class AttendanceBleDevicesAddHeaders 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.AttendanceBleDevicesAddHeaders = AttendanceBleDevicesAddHeaders;
class AttendanceBleDevicesAddRequest extends $tea.Model {
    static names() {
        return {
            deviceIdList: 'deviceIdList',
            groupKey: 'groupKey',
            opUserId: 'opUserId',
        };
    }
    static types() {
        return {
            deviceIdList: { 'type': 'array', 'itemType': 'number' },
            groupKey: 'string',
            opUserId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AttendanceBleDevicesAddRequest = AttendanceBleDevicesAddRequest;
class AttendanceBleDevicesAddResponseBody extends $tea.Model {
    static names() {
        return {
            errorList: 'errorList',
            successList: 'successList',
        };
    }
    static types() {
        return {
            errorList: { 'type': 'array', 'itemType': AttendanceBleDevicesAddResponseBodyErrorList },
            successList: { 'type': 'array', 'itemType': AttendanceBleDevicesAddResponseBodySuccessList },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AttendanceBleDevicesAddResponseBody = AttendanceBleDevicesAddResponseBody;
class AttendanceBleDevicesAddResponse 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: AttendanceBleDevicesAddResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AttendanceBleDevicesAddResponse = AttendanceBleDevicesAddResponse;
class AttendanceBleDevicesQueryHeaders 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.AttendanceBleDevicesQueryHeaders = AttendanceBleDevicesQueryHeaders;
class AttendanceBleDevicesQueryRequest extends $tea.Model {
    static names() {
        return {
            groupKey: 'groupKey',
            opUserId: 'opUserId',
        };
    }
    static types() {
        return {
            groupKey: 'string',
            opUserId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AttendanceBleDevicesQueryRequest = AttendanceBleDevicesQueryRequest;
class AttendanceBleDevicesQueryResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: { 'type': 'array', 'itemType': AttendanceBleDevicesQueryResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AttendanceBleDevicesQueryResponseBody = AttendanceBleDevicesQueryResponseBody;
class AttendanceBleDevicesQueryResponse 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: AttendanceBleDevicesQueryResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AttendanceBleDevicesQueryResponse = AttendanceBleDevicesQueryResponse;
class AttendanceBleDevicesRemoveHeaders 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.AttendanceBleDevicesRemoveHeaders = AttendanceBleDevicesRemoveHeaders;
class AttendanceBleDevicesRemoveRequest extends $tea.Model {
    static names() {
        return {
            deviceIdList: 'deviceIdList',
            groupKey: 'groupKey',
            opUserId: 'opUserId',
        };
    }
    static types() {
        return {
            deviceIdList: { 'type': 'array', 'itemType': 'number' },
            groupKey: 'string',
            opUserId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AttendanceBleDevicesRemoveRequest = AttendanceBleDevicesRemoveRequest;
class AttendanceBleDevicesRemoveResponseBody extends $tea.Model {
    static names() {
        return {
            errorList: 'errorList',
            successList: 'successList',
        };
    }
    static types() {
        return {
            errorList: { 'type': 'array', 'itemType': AttendanceBleDevicesRemoveResponseBodyErrorList },
            successList: { 'type': 'array', 'itemType': 'number' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AttendanceBleDevicesRemoveResponseBody = AttendanceBleDevicesRemoveResponseBody;
class AttendanceBleDevicesRemoveResponse 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: AttendanceBleDevicesRemoveResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AttendanceBleDevicesRemoveResponse = AttendanceBleDevicesRemoveResponse;
class BatchBossCheckHeaders 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.BatchBossCheckHeaders = BatchBossCheckHeaders;
class BatchBossCheckRequest extends $tea.Model {
    static names() {
        return {
            models: 'models',
            opUserId: 'opUserId',
        };
    }
    static types() {
        return {
            models: { 'type': 'array', 'itemType': BatchBossCheckRequestModels },
            opUserId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchBossCheckRequest = BatchBossCheckRequest;
class BatchBossCheckResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchBossCheckResponseBody = BatchBossCheckResponseBody;
class BatchBossCheckResponse 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: BatchBossCheckResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchBossCheckResponse = BatchBossCheckResponse;
class CalculateDurationHeaders 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.CalculateDurationHeaders = CalculateDurationHeaders;
class CalculateDurationRequest extends $tea.Model {
    static names() {
        return {
            bizType: 'bizType',
            calculateModel: 'calculateModel',
            durationUnit: 'durationUnit',
            fromTime: 'fromTime',
            leaveCode: 'leaveCode',
            toTime: 'toTime',
            userId: 'userId',
        };
    }
    static types() {
        return {
            bizType: 'number',
            calculateModel: 'number',
            durationUnit: 'string',
            fromTime: 'string',
            leaveCode: 'string',
            toTime: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CalculateDurationRequest = CalculateDurationRequest;
class CalculateDurationResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
            success: 'success',
        };
    }
    static types() {
        return {
            result: CalculateDurationResponseBodyResult,
            success: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CalculateDurationResponseBody = CalculateDurationResponseBody;
class CalculateDurationResponse 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: CalculateDurationResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CalculateDurationResponse = CalculateDurationResponse;
class CheckClosingAccountHeaders 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.CheckClosingAccountHeaders = CheckClosingAccountHeaders;
class CheckClosingAccountRequest extends $tea.Model {
    static names() {
        return {
            bizCode: 'bizCode',
            userIds: 'userIds',
            userTimeRange: 'userTimeRange',
        };
    }
    static types() {
        return {
            bizCode: 'string',
            userIds: { 'type': 'array', 'itemType': 'string' },
            userTimeRange: { 'type': 'array', 'itemType': CheckClosingAccountRequestUserTimeRange },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CheckClosingAccountRequest = CheckClosingAccountRequest;
class CheckClosingAccountResponseBody extends $tea.Model {
    static names() {
        return {
            code: 'code',
            mesage: 'mesage',
            pass: 'pass',
        };
    }
    static types() {
        return {
            code: 'string',
            mesage: 'string',
            pass: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CheckClosingAccountResponseBody = CheckClosingAccountResponseBody;
class CheckClosingAccountResponse 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: CheckClosingAccountResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CheckClosingAccountResponse = CheckClosingAccountResponse;
class CheckWritePermissionHeaders 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.CheckWritePermissionHeaders = CheckWritePermissionHeaders;
class CheckWritePermissionRequest extends $tea.Model {
    static names() {
        return {
            category: 'category',
            entityIds: 'entityIds',
            opUserId: 'opUserId',
            resourceKey: 'resourceKey',
        };
    }
    static types() {
        return {
            category: 'string',
            entityIds: { 'type': 'array', 'itemType': 'number' },
            opUserId: 'string',
            resourceKey: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CheckWritePermissionRequest = CheckWritePermissionRequest;
class CheckWritePermissionResponseBody extends $tea.Model {
    static names() {
        return {
            entityPermissionMap: 'entityPermissionMap',
        };
    }
    static types() {
        return {
            entityPermissionMap: { 'type': 'map', 'keyType': 'string', 'valueType': 'boolean' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CheckWritePermissionResponseBody = CheckWritePermissionResponseBody;
class CheckWritePermissionResponse 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: CheckWritePermissionResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CheckWritePermissionResponse = CheckWritePermissionResponse;
class CreateApproveHeaders 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.CreateApproveHeaders = CreateApproveHeaders;
class CreateApproveRequest extends $tea.Model {
    static names() {
        return {
            approveId: 'approveId',
            opUserid: 'opUserid',
            punchParam: 'punchParam',
            subType: 'subType',
            tagName: 'tagName',
            userid: 'userid',
        };
    }
    static types() {
        return {
            approveId: 'string',
            opUserid: 'string',
            punchParam: CreateApproveRequestPunchParam,
            subType: 'string',
            tagName: 'string',
            userid: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateApproveRequest = CreateApproveRequest;
class CreateApproveResponseBody extends $tea.Model {
    static names() {
        return {
            dingtalkApproveId: 'dingtalkApproveId',
        };
    }
    static types() {
        return {
            dingtalkApproveId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateApproveResponseBody = CreateApproveResponseBody;
class CreateApproveResponse 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: CreateApproveResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateApproveResponse = CreateApproveResponse;
class DeleteLeaveRequestHeaders 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.DeleteLeaveRequestHeaders = DeleteLeaveRequestHeaders;
class DeleteLeaveRequestRequest extends $tea.Model {
    static names() {
        return {
            outerId: 'outerId',
        };
    }
    static types() {
        return {
            outerId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeleteLeaveRequestRequest = DeleteLeaveRequestRequest;
class DeleteLeaveRequestResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
            success: 'success',
        };
    }
    static types() {
        return {
            result: 'boolean',
            success: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeleteLeaveRequestResponseBody = DeleteLeaveRequestResponseBody;
class DeleteLeaveRequestResponse 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: DeleteLeaveRequestResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeleteLeaveRequestResponse = DeleteLeaveRequestResponse;
class DeleteWaterMarkTemplateHeaders 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.DeleteWaterMarkTemplateHeaders = DeleteWaterMarkTemplateHeaders;
class DeleteWaterMarkTemplateRequest extends $tea.Model {
    static names() {
        return {
            formCode: 'formCode',
            formContent: 'formContent',
            openConversationId: 'openConversationId',
            systemTemplate: 'systemTemplate',
            userId: 'userId',
        };
    }
    static types() {
        return {
            formCode: 'string',
            formContent: 'string',
            openConversationId: 'string',
            systemTemplate: 'boolean',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeleteWaterMarkTemplateRequest = DeleteWaterMarkTemplateRequest;
class DeleteWaterMarkTemplateResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeleteWaterMarkTemplateResponseBody = DeleteWaterMarkTemplateResponseBody;
class DeleteWaterMarkTemplateResponse 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: DeleteWaterMarkTemplateResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DeleteWaterMarkTemplateResponse = DeleteWaterMarkTemplateResponse;
class DingTalkSecurityCheckHeaders 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.DingTalkSecurityCheckHeaders = DingTalkSecurityCheckHeaders;
class DingTalkSecurityCheckRequest extends $tea.Model {
    static names() {
        return {
            clientVer: 'clientVer',
            platform: 'platform',
            platformVer: 'platformVer',
            sec: 'sec',
            userId: 'userId',
        };
    }
    static types() {
        return {
            clientVer: 'string',
            platform: 'string',
            platformVer: 'string',
            sec: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DingTalkSecurityCheckRequest = DingTalkSecurityCheckRequest;
class DingTalkSecurityCheckResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: DingTalkSecurityCheckResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DingTalkSecurityCheckResponseBody = DingTalkSecurityCheckResponseBody;
class DingTalkSecurityCheckResponse 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: DingTalkSecurityCheckResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DingTalkSecurityCheckResponse = DingTalkSecurityCheckResponse;
class GetATManageScopeHeaders 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.GetATManageScopeHeaders = GetATManageScopeHeaders;
class GetATManageScopeRequest extends $tea.Model {
    static names() {
        return {
            maxResults: 'maxResults',
            nextToken: 'nextToken',
            userId: 'userId',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            nextToken: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetATManageScopeRequest = GetATManageScopeRequest;
class GetATManageScopeResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: { 'type': 'array', 'itemType': GetATManageScopeResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetATManageScopeResponseBody = GetATManageScopeResponseBody;
class GetATManageScopeResponse 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: GetATManageScopeResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetATManageScopeResponse = GetATManageScopeResponse;
class GetAdjustmentsHeaders 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.GetAdjustmentsHeaders = GetAdjustmentsHeaders;
class GetAdjustmentsRequest extends $tea.Model {
    static names() {
        return {
            pageNumber: 'pageNumber',
            pageSize: 'pageSize',
        };
    }
    static types() {
        return {
            pageNumber: 'number',
            pageSize: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetAdjustmentsRequest = GetAdjustmentsRequest;
class GetAdjustmentsResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: GetAdjustmentsResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetAdjustmentsResponseBody = GetAdjustmentsResponseBody;
class GetAdjustmentsResponse 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: GetAdjustmentsResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetAdjustmentsResponse = GetAdjustmentsResponse;
class GetCheckInSchemaTemplateHeaders 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.GetCheckInSchemaTemplateHeaders = GetCheckInSchemaTemplateHeaders;
class GetCheckInSchemaTemplateRequest extends $tea.Model {
    static names() {
        return {
            bizCode: 'bizCode',
            openConversationId: 'openConversationId',
            sceneCode: 'sceneCode',
            userId: 'userId',
        };
    }
    static types() {
        return {
            bizCode: 'string',
            openConversationId: 'string',
            sceneCode: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetCheckInSchemaTemplateRequest = GetCheckInSchemaTemplateRequest;
class GetCheckInSchemaTemplateResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: GetCheckInSchemaTemplateResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetCheckInSchemaTemplateResponseBody = GetCheckInSchemaTemplateResponseBody;
class GetCheckInSchemaTemplateResponse 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: GetCheckInSchemaTemplateResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetCheckInSchemaTemplateResponse = GetCheckInSchemaTemplateResponse;
class GetCheckinRecordByUserHeaders 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.GetCheckinRecordByUserHeaders = GetCheckinRecordByUserHeaders;
class GetCheckinRecordByUserRequest extends $tea.Model {
    static names() {
        return {
            endTime: 'endTime',
            maxResults: 'maxResults',
            nextToken: 'nextToken',
            operatorUserId: 'operatorUserId',
            startTime: 'startTime',
            userIdList: 'userIdList',
        };
    }
    static types() {
        return {
            endTime: 'number',
            maxResults: 'number',
            nextToken: 'number',
            operatorUserId: 'string',
            startTime: 'number',
            userIdList: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetCheckinRecordByUserRequest = GetCheckinRecordByUserRequest;
class GetCheckinRecordByUserResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: GetCheckinRecordByUserResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetCheckinRecordByUserResponseBody = GetCheckinRecordByUserResponseBody;
class GetCheckinRecordByUserResponse 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: GetCheckinRecordByUserResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetCheckinRecordByUserResponse = GetCheckinRecordByUserResponse;
class GetClassWithDeletedHeaders 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.GetClassWithDeletedHeaders = GetClassWithDeletedHeaders;
class GetClassWithDeletedResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: GetClassWithDeletedResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetClassWithDeletedResponseBody = GetClassWithDeletedResponseBody;
class GetClassWithDeletedResponse 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: GetClassWithDeletedResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetClassWithDeletedResponse = GetClassWithDeletedResponse;
class GetClosingAccountsHeaders 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.GetClosingAccountsHeaders = GetClosingAccountsHeaders;
class GetClosingAccountsRequest extends $tea.Model {
    static names() {
        return {
            userIds: 'userIds',
        };
    }
    static types() {
        return {
            userIds: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetClosingAccountsRequest = GetClosingAccountsRequest;
class GetClosingAccountsResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: { 'type': 'array', 'itemType': GetClosingAccountsResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetClosingAccountsResponseBody = GetClosingAccountsResponseBody;
class GetClosingAccountsResponse 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: GetClosingAccountsResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetClosingAccountsResponse = GetClosingAccountsResponse;
class GetColumnvalsHeaders 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.GetColumnvalsHeaders = GetColumnvalsHeaders;
class GetColumnvalsRequest extends $tea.Model {
    static names() {
        return {
            columnIdList: 'columnIdList',
            fromDate: 'fromDate',
            toDate: 'toDate',
            userIds: 'userIds',
        };
    }
    static types() {
        return {
            columnIdList: { 'type': 'array', 'itemType': 'string' },
            fromDate: 'number',
            toDate: 'number',
            userIds: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetColumnvalsRequest = GetColumnvalsRequest;
class GetColumnvalsResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: { 'type': 'array', 'itemType': GetColumnvalsResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetColumnvalsResponseBody = GetColumnvalsResponseBody;
class GetColumnvalsResponse 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: GetColumnvalsResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetColumnvalsResponse = GetColumnvalsResponse;
class GetLeaveRecordsHeaders 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.GetLeaveRecordsHeaders = GetLeaveRecordsHeaders;
class GetLeaveRecordsRequest extends $tea.Model {
    static names() {
        return {
            leaveCode: 'leaveCode',
            opUserId: 'opUserId',
            pageNumber: 'pageNumber',
            pageSize: 'pageSize',
            userIds: 'userIds',
        };
    }
    static types() {
        return {
            leaveCode: 'string',
            opUserId: 'string',
            pageNumber: 'number',
            pageSize: 'number',
            userIds: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetLeaveRecordsRequest = GetLeaveRecordsRequest;
class GetLeaveRecordsResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
            success: 'success',
        };
    }
    static types() {
        return {
            result: GetLeaveRecordsResponseBodyResult,
            success: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetLeaveRecordsResponseBody = GetLeaveRecordsResponseBody;
class GetLeaveRecordsResponse 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: GetLeaveRecordsResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetLeaveRecordsResponse = GetLeaveRecordsResponse;
class GetLeaveTypeHeaders 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.GetLeaveTypeHeaders = GetLeaveTypeHeaders;
class GetLeaveTypeRequest extends $tea.Model {
    static names() {
        return {
            opUserId: 'opUserId',
            vacationSource: 'vacationSource',
        };
    }
    static types() {
        return {
            opUserId: 'string',
            vacationSource: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetLeaveTypeRequest = GetLeaveTypeRequest;
class GetLeaveTypeResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: { 'type': 'array', 'itemType': GetLeaveTypeResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetLeaveTypeResponseBody = GetLeaveTypeResponseBody;
class GetLeaveTypeResponse 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: GetLeaveTypeResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetLeaveTypeResponse = GetLeaveTypeResponse;
class GetMachineHeaders 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.GetMachineHeaders = GetMachineHeaders;
class GetMachineResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: GetMachineResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetMachineResponseBody = GetMachineResponseBody;
class GetMachineResponse 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: GetMachineResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetMachineResponse = GetMachineResponse;
class GetMachineUserHeaders 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.GetMachineUserHeaders = GetMachineUserHeaders;
class GetMachineUserRequest extends $tea.Model {
    static names() {
        return {
            maxResults: 'maxResults',
            nextToken: 'nextToken',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            nextToken: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetMachineUserRequest = GetMachineUserRequest;
class GetMachineUserResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: GetMachineUserResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetMachineUserResponseBody = GetMachineUserResponseBody;
class GetMachineUserResponse 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: GetMachineUserResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetMachineUserResponse = GetMachineUserResponse;
class GetOverdraftInfoHeaders 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.GetOverdraftInfoHeaders = GetOverdraftInfoHeaders;
class GetOverdraftInfoRequest extends $tea.Model {
    static names() {
        return {
            leaveCode: 'leaveCode',
            userIdList: 'userIdList',
        };
    }
    static types() {
        return {
            leaveCode: 'string',
            userIdList: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetOverdraftInfoRequest = GetOverdraftInfoRequest;
class GetOverdraftInfoResponseBody extends $tea.Model {
    static names() {
        return {
            overdraftList: 'overdraftList',
        };
    }
    static types() {
        return {
            overdraftList: { 'type': 'array', 'itemType': GetOverdraftInfoResponseBodyOverdraftList },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetOverdraftInfoResponseBody = GetOverdraftInfoResponseBody;
class GetOverdraftInfoResponse 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: GetOverdraftInfoResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetOverdraftInfoResponse = GetOverdraftInfoResponse;
class GetOvertimeSettingHeaders 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.GetOvertimeSettingHeaders = GetOvertimeSettingHeaders;
class GetOvertimeSettingRequest extends $tea.Model {
    static names() {
        return {
            overtimeSettingIds: 'overtimeSettingIds',
        };
    }
    static types() {
        return {
            overtimeSettingIds: { 'type': 'array', 'itemType': 'number' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetOvertimeSettingRequest = GetOvertimeSettingRequest;
class GetOvertimeSettingResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: { 'type': 'array', 'itemType': GetOvertimeSettingResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetOvertimeSettingResponseBody = GetOvertimeSettingResponseBody;
class GetOvertimeSettingResponse 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: GetOvertimeSettingResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetOvertimeSettingResponse = GetOvertimeSettingResponse;
class GetShiftHeaders 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.GetShiftHeaders = GetShiftHeaders;
class GetShiftRequest extends $tea.Model {
    static names() {
        return {
            opUserId: 'opUserId',
            shiftId: 'shiftId',
        };
    }
    static types() {
        return {
            opUserId: 'string',
            shiftId: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetShiftRequest = GetShiftRequest;
class GetShiftResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: GetShiftResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetShiftResponseBody = GetShiftResponseBody;
class GetShiftResponse 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: GetShiftResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetShiftResponse = GetShiftResponse;
class GetSimpleGroupsHeaders 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.GetSimpleGroupsHeaders = GetSimpleGroupsHeaders;
class GetSimpleGroupsRequest extends $tea.Model {
    static names() {
        return {
            maxResults: 'maxResults',
            nextToken: 'nextToken',
        };
    }
    static types() {
        return {
            maxResults: 'number',
            nextToken: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSimpleGroupsRequest = GetSimpleGroupsRequest;
class GetSimpleGroupsResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: GetSimpleGroupsResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSimpleGroupsResponseBody = GetSimpleGroupsResponseBody;
class GetSimpleGroupsResponse 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: GetSimpleGroupsResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSimpleGroupsResponse = GetSimpleGroupsResponse;
class GetSimpleOvertimeSettingHeaders 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.GetSimpleOvertimeSettingHeaders = GetSimpleOvertimeSettingHeaders;
class GetSimpleOvertimeSettingRequest extends $tea.Model {
    static names() {
        return {
            pageNumber: 'pageNumber',
            pageSize: 'pageSize',
        };
    }
    static types() {
        return {
            pageNumber: 'number',
            pageSize: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSimpleOvertimeSettingRequest = GetSimpleOvertimeSettingRequest;
class GetSimpleOvertimeSettingResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: GetSimpleOvertimeSettingResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSimpleOvertimeSettingResponseBody = GetSimpleOvertimeSettingResponseBody;
class GetSimpleOvertimeSettingResponse 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: GetSimpleOvertimeSettingResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSimpleOvertimeSettingResponse = GetSimpleOvertimeSettingResponse;
class GetUserHolidaysHeaders 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.GetUserHolidaysHeaders = GetUserHolidaysHeaders;
class GetUserHolidaysRequest extends $tea.Model {
    static names() {
        return {
            userIds: 'userIds',
            workDateFrom: 'workDateFrom',
            workDateTo: 'workDateTo',
        };
    }
    static types() {
        return {
            userIds: { 'type': 'array', 'itemType': 'string' },
            workDateFrom: 'number',
            workDateTo: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetUserHolidaysRequest = GetUserHolidaysRequest;
class GetUserHolidaysResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: { 'type': 'array', 'itemType': GetUserHolidaysResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetUserHolidaysResponseBody = GetUserHolidaysResponseBody;
class GetUserHolidaysResponse 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: GetUserHolidaysResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetUserHolidaysResponse = GetUserHolidaysResponse;
class GroupAddHeaders 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.GroupAddHeaders = GroupAddHeaders;
class GroupAddRequest extends $tea.Model {
    static names() {
        return {
            adjustmentSettingId: 'adjustmentSettingId',
            bleDeviceList: 'bleDeviceList',
            checkNeedHealthyCode: 'checkNeedHealthyCode',
            defaultClassId: 'defaultClassId',
            disableCheckWhenRest: 'disableCheckWhenRest',
            disableCheckWithoutSchedule: 'disableCheckWithoutSchedule',
            enableCameraCheck: 'enableCameraCheck',
            enableEmpSelectClass: 'enableEmpSelectClass',
            enableFaceCheck: 'enableFaceCheck',
            enableFaceStrictMode: 'enableFaceStrictMode',
            enableNextDay: 'enableNextDay',
            enableOutSideUpdateNormalCheck: 'enableOutSideUpdateNormalCheck',
            enableOutsideApply: 'enableOutsideApply',
            enableOutsideCameraCheck: 'enableOutsideCameraCheck',
            enableOutsideCheck: 'enableOutsideCheck',
            enableOutsideRemark: 'enableOutsideRemark',
            enablePositionBle: 'enablePositionBle',
            enableTrimDistance: 'enableTrimDistance',
            forbidHideOutSideAddress: 'forbidHideOutSideAddress',
            freeCheckDemandWorkMinutes: 'freeCheckDemandWorkMinutes',
            freeCheckSetting: 'freeCheckSetting',
            freeCheckTypeId: 'freeCheckTypeId',
            freecheckDayStartMinOffset: 'freecheckDayStartMinOffset',
            freecheckWorkDays: 'freecheckWorkDays',
            groupId: 'groupId',
            groupName: 'groupName',
            managerList: 'managerList',
            members: 'members',
            modifyMember: 'modifyMember',
            offset: 'offset',
            onlyMachineCheck: 'onlyMachineCheck',
            openCameraCheck: 'openCameraCheck',
            openFaceCheck: 'openFaceCheck',
            outsideCheckApproveModeId: 'outsideCheckApproveModeId',
            overtimeSettingId: 'overtimeSettingId',
            owner: 'owner',
            positions: 'positions',
            resourcePermissionMap: 'resourcePermissionMap',
            shiftVOList: 'shiftVOList',
            skipHolidays: 'skipHolidays',
            specialDays: 'specialDays',
            trimDistance: 'trimDistance',
            type: 'type',
            wifis: 'wifis',
            workdayClassList: 'workdayClassList',
            opUserId: 'opUserId',
        };
    }
    static types() {
        return {
            adjustmentSettingId: 'number',
            bleDeviceList: { 'type': 'array', 'itemType': GroupAddRequestBleDeviceList },
            checkNeedHealthyCode: 'boolean',
            defaultClassId: 'number',
            disableCheckWhenRest: 'boolean',
            disableCheckWithoutSchedule: 'boolean',
            enableCameraCheck: 'boolean',
            enableEmpSelectClass: 'boolean',
            enableFaceCheck: 'boolean',
            enableFaceStrictMode: 'boolean',
            enableNextDay: 'boolean',
            enableOutSideUpdateNormalCheck: 'boolean',
            enableOutsideApply: 'boolean',
            enableOutsideCameraCheck: 'boolean',
            enableOutsideCheck: 'boolean',
            enableOutsideRemark: 'boolean',
            enablePositionBle: 'boolean',
            enableTrimDistance: 'boolean',
            forbidHideOutSideAddress: 'boolean',
            freeCheckDemandWorkMinutes: 'number',
            freeCheckSetting: GroupAddRequestFreeCheckSetting,
            freeCheckTypeId: 'number',
            freecheckDayStartMinOffset: 'number',
            freecheckWorkDays: { 'type': 'array', 'itemType': 'number' },
            groupId: 'number',
            groupName: 'string',
            managerList: { 'type': 'array', 'itemType': 'string' },
            members: { 'type': 'array', 'itemType': GroupAddRequestMembers },
            modifyMember: 'boolean',
            offset: 'number',
            onlyMachineCheck: 'boolean',
            openCameraCheck: 'boolean',
            openFaceCheck: 'boolean',
            outsideCheckApproveModeId: 'number',
            overtimeSettingId: 'number',
            owner: 'string',
            positions: { 'type': 'array', 'itemType': GroupAddRequestPositions },
            resourcePermissionMap: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
            shiftVOList: { 'type': 'array', 'itemType': GroupAddRequestShiftVOList },
            skipHolidays: 'boolean',
            specialDays: 'string',
            trimDistance: 'number',
            type: 'string',
            wifis: { 'type': 'array', 'itemType': GroupAddRequestWifis },
            workdayClassList: { 'type': 'array', 'itemType': 'number' },
            opUserId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GroupAddRequest = GroupAddRequest;
class GroupAddResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
            success: 'success',
        };
    }
    static types() {
        return {
            result: GroupAddResponseBodyResult,
            success: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GroupAddResponseBody = GroupAddResponseBody;
class GroupAddResponse 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: GroupAddResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GroupAddResponse = GroupAddResponse;
class GroupUpdateHeaders 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.GroupUpdateHeaders = GroupUpdateHeaders;
class GroupUpdateRequest extends $tea.Model {
    static names() {
        return {
            adjustmentSettingId: 'adjustmentSettingId',
            defaultClassId: 'defaultClassId',
            disableCheckWhenRest: 'disableCheckWhenRest',
            disableCheckWithoutSchedule: 'disableCheckWithoutSchedule',
            enableCameraCheck: 'enableCameraCheck',
            enableEmpSelectClass: 'enableEmpSelectClass',
            enableFaceCheck: 'enableFaceCheck',
            enableFaceStrictMode: 'enableFaceStrictMode',
            enableOutSideUpdateNormalCheck: 'enableOutSideUpdateNormalCheck',
            enableOutsideApply: 'enableOutsideApply',
            enableOutsideCameraCheck: 'enableOutsideCameraCheck',
            enableOutsideCheck: 'enableOutsideCheck',
            enableOutsideRemark: 'enableOutsideRemark',
            enableTrimDistance: 'enableTrimDistance',
            forbidHideOutSideAddress: 'forbidHideOutSideAddress',
            freeCheckSetting: 'freeCheckSetting',
            freeCheckTypeId: 'freeCheckTypeId',
            freecheckDayStartMinOffset: 'freecheckDayStartMinOffset',
            groupId: 'groupId',
            groupName: 'groupName',
            managerList: 'managerList',
            offset: 'offset',
            onlyMachineCheck: 'onlyMachineCheck',
            openCameraCheck: 'openCameraCheck',
            openFaceCheck: 'openFaceCheck',
            outsideCheckApproveModeId: 'outsideCheckApproveModeId',
            overtimeSettingId: 'overtimeSettingId',
            owner: 'owner',
            positions: 'positions',
            resourcePermissionMap: 'resourcePermissionMap',
            shiftVOList: 'shiftVOList',
            skipHolidays: 'skipHolidays',
            trimDistance: 'trimDistance',
            workdayClassList: 'workdayClassList',
            opUserId: 'opUserId',
        };
    }
    static types() {
        return {
            adjustmentSettingId: 'number',
            defaultClassId: 'number',
            disableCheckWhenRest: 'boolean',
            disableCheckWithoutSchedule: 'boolean',
            enableCameraCheck: 'boolean',
            enableEmpSelectClass: 'boolean',
            enableFaceCheck: 'boolean',
            enableFaceStrictMode: 'boolean',
            enableOutSideUpdateNormalCheck: 'boolean',
            enableOutsideApply: 'boolean',
            enableOutsideCameraCheck: 'boolean',
            enableOutsideCheck: 'boolean',
            enableOutsideRemark: 'boolean',
            enableTrimDistance: 'boolean',
            forbidHideOutSideAddress: 'boolean',
            freeCheckSetting: GroupUpdateRequestFreeCheckSetting,
            freeCheckTypeId: 'number',
            freecheckDayStartMinOffset: 'number',
            groupId: 'number',
            groupName: 'string',
            managerList: { 'type': 'array', 'itemType': 'string' },
            offset: 'number',
            onlyMachineCheck: 'boolean',
            openCameraCheck: 'boolean',
            openFaceCheck: 'boolean',
            outsideCheckApproveModeId: 'number',
            overtimeSettingId: 'number',
            owner: 'string',
            positions: { 'type': 'array', 'itemType': GroupUpdateRequestPositions },
            resourcePermissionMap: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
            shiftVOList: { 'type': 'array', 'itemType': GroupUpdateRequestShiftVOList },
            skipHolidays: 'boolean',
            trimDistance: 'number',
            workdayClassList: { 'type': 'array', 'itemType': 'number' },
            opUserId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GroupUpdateRequest = GroupUpdateRequest;
class GroupUpdateResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
            success: 'success',
        };
    }
    static types() {
        return {
            result: GroupUpdateResponseBodyResult,
            success: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GroupUpdateResponseBody = GroupUpdateResponseBody;
class GroupUpdateResponse 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: GroupUpdateResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GroupUpdateResponse = GroupUpdateResponse;
class InitAndGetLeaveALlocationQuotasHeaders 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.InitAndGetLeaveALlocationQuotasHeaders = InitAndGetLeaveALlocationQuotasHeaders;
class InitAndGetLeaveALlocationQuotasRequest extends $tea.Model {
    static names() {
        return {
            leaveCode: 'leaveCode',
            opUserId: 'opUserId',
            userId: 'userId',
        };
    }
    static types() {
        return {
            leaveCode: 'string',
            opUserId: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.InitAndGetLeaveALlocationQuotasRequest = InitAndGetLeaveALlocationQuotasRequest;
class InitAndGetLeaveALlocationQuotasResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: { 'type': 'array', 'itemType': InitAndGetLeaveALlocationQuotasResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.InitAndGetLeaveALlocationQuotasResponseBody = InitAndGetLeaveALlocationQuotasResponseBody;
class InitAndGetLeaveALlocationQuotasResponse 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: InitAndGetLeaveALlocationQuotasResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.InitAndGetLeaveALlocationQuotasResponse = InitAndGetLeaveALlocationQuotasResponse;
class ListApproveByUsersHeaders 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.ListApproveByUsersHeaders = ListApproveByUsersHeaders;
class ListApproveByUsersRequest extends $tea.Model {
    static names() {
        return {
            bizTypes: 'bizTypes',
            fromDateTime: 'fromDateTime',
            toDateTime: 'toDateTime',
            userIds: 'userIds',
        };
    }
    static types() {
        return {
            bizTypes: { 'type': 'array', 'itemType': 'number' },
            fromDateTime: 'number',
            toDateTime: 'number',
            userIds: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListApproveByUsersRequest = ListApproveByUsersRequest;
class ListApproveByUsersResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: { 'type': 'array', 'itemType': ListApproveByUsersResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListApproveByUsersResponseBody = ListApproveByUsersResponseBody;
class ListApproveByUsersResponse 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: ListApproveByUsersResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListApproveByUsersResponse = ListApproveByUsersResponse;
class ModifyWaterMarkTemplateHeaders 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.ModifyWaterMarkTemplateHeaders = ModifyWaterMarkTemplateHeaders;
class ModifyWaterMarkTemplateRequest extends $tea.Model {
    static names() {
        return {
            formCode: 'formCode',
            icon: 'icon',
            layoutDesignId: 'layoutDesignId',
            schemaContent: 'schemaContent',
            title: 'title',
            waterMarkId: 'waterMarkId',
            openConversationId: 'openConversationId',
            userId: 'userId',
        };
    }
    static types() {
        return {
            formCode: 'string',
            icon: 'string',
            layoutDesignId: 'string',
            schemaContent: 'string',
            title: 'string',
            waterMarkId: 'string',
            openConversationId: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ModifyWaterMarkTemplateRequest = ModifyWaterMarkTemplateRequest;
class ModifyWaterMarkTemplateResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ModifyWaterMarkTemplateResponseBody = ModifyWaterMarkTemplateResponseBody;
class ModifyWaterMarkTemplateResponse 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: ModifyWaterMarkTemplateResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ModifyWaterMarkTemplateResponse = ModifyWaterMarkTemplateResponse;
class ProcessApproveCreateHeaders 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.ProcessApproveCreateHeaders = ProcessApproveCreateHeaders;
class ProcessApproveCreateRequest extends $tea.Model {
    static names() {
        return {
            approveId: 'approveId',
            opUserId: 'opUserId',
            punchParam: 'punchParam',
            subType: 'subType',
            tagName: 'tagName',
            userId: 'userId',
        };
    }
    static types() {
        return {
            approveId: 'string',
            opUserId: 'string',
            punchParam: ProcessApproveCreateRequestPunchParam,
            subType: 'string',
            tagName: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ProcessApproveCreateRequest = ProcessApproveCreateRequest;
class ProcessApproveCreateResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: ProcessApproveCreateResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ProcessApproveCreateResponseBody = ProcessApproveCreateResponseBody;
class ProcessApproveCreateResponse 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: ProcessApproveCreateResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ProcessApproveCreateResponse = ProcessApproveCreateResponse;
class ProcessApproveFinishHeaders 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.ProcessApproveFinishHeaders = ProcessApproveFinishHeaders;
class ProcessApproveFinishRequest extends $tea.Model {
    static names() {
        return {
            approveId: 'approveId',
            jumpUrl: 'jumpUrl',
            overTimeToMore: 'overTimeToMore',
            overtimeDuration: 'overtimeDuration',
            subType: 'subType',
            tagName: 'tagName',
            topCalculateApproveDurationParam: 'topCalculateApproveDurationParam',
            userId: 'userId',
        };
    }
    static types() {
        return {
            approveId: 'string',
            jumpUrl: 'string',
            overTimeToMore: 'number',
            overtimeDuration: 'string',
            subType: 'string',
            tagName: 'string',
            topCalculateApproveDurationParam: ProcessApproveFinishRequestTopCalculateApproveDurationParam,
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ProcessApproveFinishRequest = ProcessApproveFinishRequest;
class ProcessApproveFinishResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
            success: 'success',
        };
    }
    static types() {
        return {
            result: ProcessApproveFinishResponseBodyResult,
            success: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ProcessApproveFinishResponseBody = ProcessApproveFinishResponseBody;
class ProcessApproveFinishResponse 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: ProcessApproveFinishResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ProcessApproveFinishResponse = ProcessApproveFinishResponse;
class ProcessHhOemUpdateHeaders 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.ProcessHhOemUpdateHeaders = ProcessHhOemUpdateHeaders;
class ProcessHhOemUpdateRequest extends $tea.Model {
    static names() {
        return {
            bindOemApp: 'bindOemApp',
            corpIdList: 'corpIdList',
            useOemApp: 'useOemApp',
        };
    }
    static types() {
        return {
            bindOemApp: 'boolean',
            corpIdList: { 'type': 'array', 'itemType': 'string' },
            useOemApp: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ProcessHhOemUpdateRequest = ProcessHhOemUpdateRequest;
class ProcessHhOemUpdateResponseBody extends $tea.Model {
    static names() {
        return {
            success: 'success',
        };
    }
    static types() {
        return {
            success: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ProcessHhOemUpdateResponseBody = ProcessHhOemUpdateResponseBody;
class ProcessHhOemUpdateResponse 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: ProcessHhOemUpdateResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ProcessHhOemUpdateResponse = ProcessHhOemUpdateResponse;
class ReduceQuotaWithLeaveRecordHeaders 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.ReduceQuotaWithLeaveRecordHeaders = ReduceQuotaWithLeaveRecordHeaders;
class ReduceQuotaWithLeaveRecordRequest extends $tea.Model {
    static names() {
        return {
            endTime: 'endTime',
            leaveCode: 'leaveCode',
            outerId: 'outerId',
            quotaNum: 'quotaNum',
            reason: 'reason',
            startTime: 'startTime',
        };
    }
    static types() {
        return {
            endTime: 'number',
            leaveCode: 'string',
            outerId: 'string',
            quotaNum: 'number',
            reason: 'string',
            startTime: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ReduceQuotaWithLeaveRecordRequest = ReduceQuotaWithLeaveRecordRequest;
class ReduceQuotaWithLeaveRecordResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
            success: 'success',
        };
    }
    static types() {
        return {
            result: 'boolean',
            success: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ReduceQuotaWithLeaveRecordResponseBody = ReduceQuotaWithLeaveRecordResponseBody;
class ReduceQuotaWithLeaveRecordResponse 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: ReduceQuotaWithLeaveRecordResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ReduceQuotaWithLeaveRecordResponse = ReduceQuotaWithLeaveRecordResponse;
class RetainLeaveTypesHeaders 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.RetainLeaveTypesHeaders = RetainLeaveTypesHeaders;
class RetainLeaveTypesRequest extends $tea.Model {
    static names() {
        return {
            leaveCodes: 'leaveCodes',
            opUserId: 'opUserId',
            source: 'source',
        };
    }
    static types() {
        return {
            leaveCodes: { 'type': 'array', 'itemType': 'string' },
            opUserId: 'string',
            source: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RetainLeaveTypesRequest = RetainLeaveTypesRequest;
class RetainLeaveTypesResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: { 'type': 'array', 'itemType': RetainLeaveTypesResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RetainLeaveTypesResponseBody = RetainLeaveTypesResponseBody;
class RetainLeaveTypesResponse 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: RetainLeaveTypesResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RetainLeaveTypesResponse = RetainLeaveTypesResponse;
class ReverseTrialAdvancedLeaveHeaders 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.ReverseTrialAdvancedLeaveHeaders = ReverseTrialAdvancedLeaveHeaders;
class ReverseTrialAdvancedLeaveRequest extends $tea.Model {
    static names() {
        return {
            opUserId: 'opUserId',
            servCode: 'servCode',
        };
    }
    static types() {
        return {
            opUserId: 'string',
            servCode: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ReverseTrialAdvancedLeaveRequest = ReverseTrialAdvancedLeaveRequest;
class ReverseTrialAdvancedLeaveResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
            success: 'success',
        };
    }
    static types() {
        return {
            result: 'boolean',
            success: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ReverseTrialAdvancedLeaveResponseBody = ReverseTrialAdvancedLeaveResponseBody;
class ReverseTrialAdvancedLeaveResponse 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: ReverseTrialAdvancedLeaveResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ReverseTrialAdvancedLeaveResponse = ReverseTrialAdvancedLeaveResponse;
class SalaryThirdDataIntegrationHeaders 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.SalaryThirdDataIntegrationHeaders = SalaryThirdDataIntegrationHeaders;
class SalaryThirdDataIntegrationRequest extends $tea.Model {
    static names() {
        return {
            bizType: 'bizType',
            items: 'items',
        };
    }
    static types() {
        return {
            bizType: 'string',
            items: { 'type': 'array', 'itemType': SalaryThirdDataIntegrationRequestItems },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SalaryThirdDataIntegrationRequest = SalaryThirdDataIntegrationRequest;
class SalaryThirdDataIntegrationResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: SalaryThirdDataIntegrationResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SalaryThirdDataIntegrationResponseBody = SalaryThirdDataIntegrationResponseBody;
class SalaryThirdDataIntegrationResponse 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: SalaryThirdDataIntegrationResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SalaryThirdDataIntegrationResponse = SalaryThirdDataIntegrationResponse;
class SaveCustomWaterMarkTemplateHeaders 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.SaveCustomWaterMarkTemplateHeaders = SaveCustomWaterMarkTemplateHeaders;
class SaveCustomWaterMarkTemplateRequest extends $tea.Model {
    static names() {
        return {
            bizCode: 'bizCode',
            icon: 'icon',
            layoutDesignId: 'layoutDesignId',
            sceneCode: 'sceneCode',
            schemaContent: 'schemaContent',
            title: 'title',
            openConversationId: 'openConversationId',
            userId: 'userId',
        };
    }
    static types() {
        return {
            bizCode: 'string',
            icon: 'string',
            layoutDesignId: 'string',
            sceneCode: 'string',
            schemaContent: 'string',
            title: 'string',
            openConversationId: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SaveCustomWaterMarkTemplateRequest = SaveCustomWaterMarkTemplateRequest;
class SaveCustomWaterMarkTemplateResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: SaveCustomWaterMarkTemplateResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SaveCustomWaterMarkTemplateResponseBody = SaveCustomWaterMarkTemplateResponseBody;
class SaveCustomWaterMarkTemplateResponse 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: SaveCustomWaterMarkTemplateResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SaveCustomWaterMarkTemplateResponse = SaveCustomWaterMarkTemplateResponse;
class ShiftAddHeaders 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.ShiftAddHeaders = ShiftAddHeaders;
class ShiftAddRequest extends $tea.Model {
    static names() {
        return {
            name: 'name',
            owner: 'owner',
            sections: 'sections',
            serviceId: 'serviceId',
            setting: 'setting',
            shiftId: 'shiftId',
            opUserId: 'opUserId',
        };
    }
    static types() {
        return {
            name: 'string',
            owner: 'string',
            sections: { 'type': 'array', 'itemType': ShiftAddRequestSections },
            serviceId: 'number',
            setting: ShiftAddRequestSetting,
            shiftId: 'number',
            opUserId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ShiftAddRequest = ShiftAddRequest;
class ShiftAddResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
            success: 'success',
        };
    }
    static types() {
        return {
            result: ShiftAddResponseBodyResult,
            success: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ShiftAddResponseBody = ShiftAddResponseBody;
class ShiftAddResponse 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: ShiftAddResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ShiftAddResponse = ShiftAddResponse;
class SyncScheduleInfoHeaders 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.SyncScheduleInfoHeaders = SyncScheduleInfoHeaders;
class SyncScheduleInfoRequest extends $tea.Model {
    static names() {
        return {
            opUserId: 'opUserId',
            scheduleInfos: 'scheduleInfos',
        };
    }
    static types() {
        return {
            opUserId: 'string',
            scheduleInfos: { 'type': 'array', 'itemType': SyncScheduleInfoRequestScheduleInfos },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SyncScheduleInfoRequest = SyncScheduleInfoRequest;
class SyncScheduleInfoResponse 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.SyncScheduleInfoResponse = SyncScheduleInfoResponse;
class UpdateLeaveTypeHeaders 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.UpdateLeaveTypeHeaders = UpdateLeaveTypeHeaders;
class UpdateLeaveTypeRequest extends $tea.Model {
    static names() {
        return {
            bizType: 'bizType',
            extras: 'extras',
            freedomLeave: 'freedomLeave',
            hoursInPerDay: 'hoursInPerDay',
            leaveCertificate: 'leaveCertificate',
            leaveCode: 'leaveCode',
            leaveName: 'leaveName',
            leaveViewUnit: 'leaveViewUnit',
            naturalDayLeave: 'naturalDayLeave',
            submitTimeRule: 'submitTimeRule',
            visibilityRules: 'visibilityRules',
            opUserId: 'opUserId',
        };
    }
    static types() {
        return {
            bizType: 'string',
            extras: 'string',
            freedomLeave: 'boolean',
            hoursInPerDay: 'number',
            leaveCertificate: UpdateLeaveTypeRequestLeaveCertificate,
            leaveCode: 'string',
            leaveName: 'string',
            leaveViewUnit: 'string',
            naturalDayLeave: 'boolean',
            submitTimeRule: UpdateLeaveTypeRequestSubmitTimeRule,
            visibilityRules: { 'type': 'array', 'itemType': UpdateLeaveTypeRequestVisibilityRules },
            opUserId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateLeaveTypeRequest = UpdateLeaveTypeRequest;
class UpdateLeaveTypeResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: UpdateLeaveTypeResponseBodyResult,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateLeaveTypeResponseBody = UpdateLeaveTypeResponseBody;
class UpdateLeaveTypeResponse 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: UpdateLeaveTypeResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateLeaveTypeResponse = UpdateLeaveTypeResponse;
class UpdateVacationQuotaHeaders 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.UpdateVacationQuotaHeaders = UpdateVacationQuotaHeaders;
class UpdateVacationQuotaRequest extends $tea.Model {
    static names() {
        return {
            body: 'body',
            opUserId: 'opUserId',
        };
    }
    static types() {
        return {
            body: { 'type': 'array', 'itemType': UpdateVacationQuotaRequestBody },
            opUserId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateVacationQuotaRequest = UpdateVacationQuotaRequest;
class UpdateVacationQuotaResponseBody extends $tea.Model {
    static names() {
        return {
            result: 'result',
        };
    }
    static types() {
        return {
            result: { 'type': 'array', 'itemType': UpdateVacationQuotaResponseBodyResult },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateVacationQuotaResponseBody = UpdateVacationQuotaResponseBody;
class UpdateVacationQuotaResponse 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: UpdateVacationQuotaResponseBody,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateVacationQuotaResponse = UpdateVacationQuotaResponse;
class ResultDurationSettingsValueSkipTimeByFrames extends $tea.Model {
    static names() {
        return {
            startTime: 'startTime',
            endTime: 'endTime',
            valid: 'valid',
        };
    }
    static types() {
        return {
            startTime: 'string',
            endTime: 'string',
            valid: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ResultDurationSettingsValueSkipTimeByFrames = ResultDurationSettingsValueSkipTimeByFrames;
class ResultDurationSettingsValueSkipTimeByDurations extends $tea.Model {
    static names() {
        return {
            duration: 'duration',
            minus: 'minus',
        };
    }
    static types() {
        return {
            duration: 'number',
            minus: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ResultDurationSettingsValueSkipTimeByDurations = ResultDurationSettingsValueSkipTimeByDurations;
class AddLeaveTypeRequestLeaveCertificate extends $tea.Model {
    static names() {
        return {
            duration: 'duration',
            enable: 'enable',
            promptInformation: 'promptInformation',
            unit: 'unit',
        };
    }
    static types() {
        return {
            duration: 'number',
            enable: 'boolean',
            promptInformation: 'string',
            unit: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AddLeaveTypeRequestLeaveCertificate = AddLeaveTypeRequestLeaveCertificate;
class AddLeaveTypeRequestSubmitTimeRule extends $tea.Model {
    static names() {
        return {
            enableTimeLimit: 'enableTimeLimit',
            timeType: 'timeType',
            timeUnit: 'timeUnit',
            timeValue: 'timeValue',
        };
    }
    static types() {
        return {
            enableTimeLimit: 'boolean',
            timeType: 'string',
            timeUnit: 'string',
            timeValue: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AddLeaveTypeRequestSubmitTimeRule = AddLeaveTypeRequestSubmitTimeRule;
class AddLeaveTypeRequestVisibilityRules extends $tea.Model {
    static names() {
        return {
            type: 'type',
            visible: 'visible',
        };
    }
    static types() {
        return {
            type: 'string',
            visible: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AddLeaveTypeRequestVisibilityRules = AddLeaveTypeRequestVisibilityRules;
class AddLeaveTypeResponseBodyResultLeaveCertificate extends $tea.Model {
    static names() {
        return {
            duration: 'duration',
            enable: 'enable',
            promptInformation: 'promptInformation',
            unit: 'unit',
        };
    }
    static types() {
        return {
            duration: 'number',
            enable: 'boolean',
            promptInformation: 'string',
            unit: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AddLeaveTypeResponseBodyResultLeaveCertificate = AddLeaveTypeResponseBodyResultLeaveCertificate;
class AddLeaveTypeResponseBodyResultSubmitTimeRule extends $tea.Model {
    static names() {
        return {
            enableTimeLimit: 'enableTimeLimit',
            timeType: 'timeType',
            timeUnit: 'timeUnit',
            timeValue: 'timeValue',
        };
    }
    static types() {
        return {
            enableTimeLimit: 'boolean',
            timeType: 'string',
            timeUnit: 'string',
            timeValue: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AddLeaveTypeResponseBodyResultSubmitTimeRule = AddLeaveTypeResponseBodyResultSubmitTimeRule;
class AddLeaveTypeResponseBodyResultVisibilityRules extends $tea.Model {
    static names() {
        return {
            type: 'type',
            visible: 'visible',
        };
    }
    static types() {
        return {
            type: 'string',
            visible: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AddLeaveTypeResponseBodyResultVisibilityRules = AddLeaveTypeResponseBodyResultVisibilityRules;
class AddLeaveTypeResponseBodyResult extends $tea.Model {
    static names() {
        return {
            bizType: 'bizType',
            hoursInPerDay: 'hoursInPerDay',
            leaveCertificate: 'leaveCertificate',
            leaveCode: 'leaveCode',
            leaveName: 'leaveName',
            leaveViewUnit: 'leaveViewUnit',
            naturalDayLeave: 'naturalDayLeave',
            submitTimeRule: 'submitTimeRule',
            visibilityRules: 'visibilityRules',
        };
    }
    static types() {
        return {
            bizType: 'string',
            hoursInPerDay: 'number',
            leaveCertificate: AddLeaveTypeResponseBodyResultLeaveCertificate,
            leaveCode: 'string',
            leaveName: 'string',
            leaveViewUnit: 'string',
            naturalDayLeave: 'boolean',
            submitTimeRule: AddLeaveTypeResponseBodyResultSubmitTimeRule,
            visibilityRules: { 'type': 'array', 'itemType': AddLeaveTypeResponseBodyResultVisibilityRules },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AddLeaveTypeResponseBodyResult = AddLeaveTypeResponseBodyResult;
class AttendanceBleDevicesAddResponseBodyErrorListFailureList extends $tea.Model {
    static names() {
        return {
            deviceId: 'deviceId',
            deviceName: 'deviceName',
            sn: 'sn',
        };
    }
    static types() {
        return {
            deviceId: 'number',
            deviceName: 'string',
            sn: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AttendanceBleDevicesAddResponseBodyErrorListFailureList = AttendanceBleDevicesAddResponseBodyErrorListFailureList;
class AttendanceBleDevicesAddResponseBodyErrorList extends $tea.Model {
    static names() {
        return {
            code: 'code',
            failureList: 'failureList',
            msg: 'msg',
        };
    }
    static types() {
        return {
            code: 'string',
            failureList: { 'type': 'array', 'itemType': AttendanceBleDevicesAddResponseBodyErrorListFailureList },
            msg: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AttendanceBleDevicesAddResponseBodyErrorList = AttendanceBleDevicesAddResponseBodyErrorList;
class AttendanceBleDevicesAddResponseBodySuccessList extends $tea.Model {
    static names() {
        return {
            deviceId: 'deviceId',
            deviceName: 'deviceName',
            sn: 'sn',
        };
    }
    static types() {
        return {
            deviceId: 'number',
            deviceName: 'string',
            sn: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AttendanceBleDevicesAddResponseBodySuccessList = AttendanceBleDevicesAddResponseBodySuccessList;
class AttendanceBleDevicesQueryResponseBodyResult extends $tea.Model {
    static names() {
        return {
            deviceId: 'deviceId',
            deviceName: 'deviceName',
            sn: 'sn',
        };
    }
    static types() {
        return {
            deviceId: 'number',
            deviceName: 'string',
            sn: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AttendanceBleDevicesQueryResponseBodyResult = AttendanceBleDevicesQueryResponseBodyResult;
class AttendanceBleDevicesRemoveResponseBodyErrorList extends $tea.Model {
    static names() {
        return {
            code: 'code',
            failureList: 'failureList',
            msg: 'msg',
        };
    }
    static types() {
        return {
            code: 'string',
            failureList: { 'type': 'array', 'itemType': 'number' },
            msg: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.AttendanceBleDevicesRemoveResponseBodyErrorList = AttendanceBleDevicesRemoveResponseBodyErrorList;
class BatchBossCheckRequestModels extends $tea.Model {
    static names() {
        return {
            absentMin: 'absentMin',
            planId: 'planId',
            remark: 'remark',
            timeResult: 'timeResult',
        };
    }
    static types() {
        return {
            absentMin: 'number',
            planId: 'number',
            remark: 'string',
            timeResult: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.BatchBossCheckRequestModels = BatchBossCheckRequestModels;
class CalculateDurationResponseBodyResultDurationDetail extends $tea.Model {
    static names() {
        return {
            date: 'date',
            duration: 'duration',
        };
    }
    static types() {
        return {
            date: 'string',
            duration: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CalculateDurationResponseBodyResultDurationDetail = CalculateDurationResponseBodyResultDurationDetail;
class CalculateDurationResponseBodyResult extends $tea.Model {
    static names() {
        return {
            duration: 'duration',
            durationDetail: 'durationDetail',
        };
    }
    static types() {
        return {
            duration: 'number',
            durationDetail: { 'type': 'array', 'itemType': CalculateDurationResponseBodyResultDurationDetail },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CalculateDurationResponseBodyResult = CalculateDurationResponseBodyResult;
class CheckClosingAccountRequestUserTimeRange extends $tea.Model {
    static names() {
        return {
            endTime: 'endTime',
            startTime: 'startTime',
        };
    }
    static types() {
        return {
            endTime: 'number',
            startTime: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CheckClosingAccountRequestUserTimeRange = CheckClosingAccountRequestUserTimeRange;
class CreateApproveRequestPunchParam extends $tea.Model {
    static names() {
        return {
            positionId: 'positionId',
            positionName: 'positionName',
            positionType: 'positionType',
            punchTime: 'punchTime',
        };
    }
    static types() {
        return {
            positionId: 'string',
            positionName: 'string',
            positionType: 'string',
            punchTime: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.CreateApproveRequestPunchParam = CreateApproveRequestPunchParam;
class DingTalkSecurityCheckResponseBodyResult extends $tea.Model {
    static names() {
        return {
            hasRisk: 'hasRisk',
            riskInfo: 'riskInfo',
        };
    }
    static types() {
        return {
            hasRisk: 'boolean',
            riskInfo: { 'type': 'map', 'keyType': 'string', 'valueType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.DingTalkSecurityCheckResponseBodyResult = DingTalkSecurityCheckResponseBodyResult;
class GetATManageScopeResponseBodyResult extends $tea.Model {
    static names() {
        return {
            hasMore: 'hasMore',
            manageScope: 'manageScope',
            userIds: 'userIds',
        };
    }
    static types() {
        return {
            hasMore: 'boolean',
            manageScope: 'string',
            userIds: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetATManageScopeResponseBodyResult = GetATManageScopeResponseBodyResult;
class GetAdjustmentsResponseBodyResultItems extends $tea.Model {
    static names() {
        return {
            id: 'id',
            name: 'name',
            settingId: 'settingId',
        };
    }
    static types() {
        return {
            id: 'number',
            name: 'string',
            settingId: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetAdjustmentsResponseBodyResultItems = GetAdjustmentsResponseBodyResultItems;
class GetAdjustmentsResponseBodyResult extends $tea.Model {
    static names() {
        return {
            items: 'items',
            pageNumber: 'pageNumber',
            totalPage: 'totalPage',
        };
    }
    static types() {
        return {
            items: { 'type': 'array', 'itemType': GetAdjustmentsResponseBodyResultItems },
            pageNumber: 'number',
            totalPage: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetAdjustmentsResponseBodyResult = GetAdjustmentsResponseBodyResult;
class GetCheckInSchemaTemplateResponseBodyResultWaterMarkTemplateModels extends $tea.Model {
    static names() {
        return {
            canModify: 'canModify',
            formCode: 'formCode',
            icon: 'icon',
            layoutDesign: 'layoutDesign',
            sceneCode: 'sceneCode',
            schemaContent: 'schemaContent',
            suiteKey: 'suiteKey',
            systemTemplate: 'systemTemplate',
            title: 'title',
            waterMarkId: 'waterMarkId',
        };
    }
    static types() {
        return {
            canModify: 'boolean',
            formCode: 'string',
            icon: 'string',
            layoutDesign: 'string',
            sceneCode: 'string',
            schemaContent: 'string',
            suiteKey: 'string',
            systemTemplate: 'boolean',
            title: 'string',
            waterMarkId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetCheckInSchemaTemplateResponseBodyResultWaterMarkTemplateModels = GetCheckInSchemaTemplateResponseBodyResultWaterMarkTemplateModels;
class GetCheckInSchemaTemplateResponseBodyResult extends $tea.Model {
    static names() {
        return {
            bizCode: 'bizCode',
            canModifyAndAddTemplate: 'canModifyAndAddTemplate',
            conversationAdmin: 'conversationAdmin',
            customTemplateMaxSize: 'customTemplateMaxSize',
            openConversationId: 'openConversationId',
            showStat: 'showStat',
            templateDegrade: 'templateDegrade',
            waterMarkTemplateModels: 'waterMarkTemplateModels',
        };
    }
    static types() {
        return {
            bizCode: 'string',
            canModifyAndAddTemplate: 'boolean',
            conversationAdmin: 'boolean',
            customTemplateMaxSize: 'number',
            openConversationId: 'string',
            showStat: 'boolean',
            templateDegrade: 'boolean',
            waterMarkTemplateModels: { 'type': 'array', 'itemType': GetCheckInSchemaTemplateResponseBodyResultWaterMarkTemplateModels },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetCheckInSchemaTemplateResponseBodyResult = GetCheckInSchemaTemplateResponseBodyResult;
class GetCheckinRecordByUserResponseBodyResultPageListCustomDataList extends $tea.Model {
    static names() {
        return {
            key: 'key',
            label: 'label',
            value: 'value',
        };
    }
    static types() {
        return {
            key: 'string',
            label: 'string',
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetCheckinRecordByUserResponseBodyResultPageListCustomDataList = GetCheckinRecordByUserResponseBodyResultPageListCustomDataList;
class GetCheckinRecordByUserResponseBodyResultPageList extends $tea.Model {
    static names() {
        return {
            checkinTime: 'checkinTime',
            checkinType: 'checkinType',
            customDataList: 'customDataList',
            detailPlace: 'detailPlace',
            imageList: 'imageList',
            latitude: 'latitude',
            longitude: 'longitude',
            place: 'place',
            remark: 'remark',
            userId: 'userId',
            visitUser: 'visitUser',
        };
    }
    static types() {
        return {
            checkinTime: 'number',
            checkinType: 'string',
            customDataList: { 'type': 'array', 'itemType': GetCheckinRecordByUserResponseBodyResultPageListCustomDataList },
            detailPlace: 'string',
            imageList: { 'type': 'array', 'itemType': 'string' },
            latitude: 'string',
            longitude: 'string',
            place: 'string',
            remark: 'string',
            userId: 'string',
            visitUser: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetCheckinRecordByUserResponseBodyResultPageList = GetCheckinRecordByUserResponseBodyResultPageList;
class GetCheckinRecordByUserResponseBodyResult extends $tea.Model {
    static names() {
        return {
            nextToken: 'nextToken',
            pageList: 'pageList',
        };
    }
    static types() {
        return {
            nextToken: 'number',
            pageList: { 'type': 'array', 'itemType': GetCheckinRecordByUserResponseBodyResultPageList },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetCheckinRecordByUserResponseBodyResult = GetCheckinRecordByUserResponseBodyResult;
class GetClassWithDeletedResponseBodyResultClassSettingRestTimeListBegin extends $tea.Model {
    static names() {
        return {
            across: 'across',
            checkTime: 'checkTime',
        };
    }
    static types() {
        return {
            across: 'number',
            checkTime: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetClassWithDeletedResponseBodyResultClassSettingRestTimeListBegin = GetClassWithDeletedResponseBodyResultClassSettingRestTimeListBegin;
class GetClassWithDeletedResponseBodyResultClassSettingRestTimeListEnd extends $tea.Model {
    static names() {
        return {
            across: 'across',
            checkTime: 'checkTime',
        };
    }
    static types() {
        return {
            across: 'number',
            checkTime: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetClassWithDeletedResponseBodyResultClassSettingRestTimeListEnd = GetClassWithDeletedResponseBodyResultClassSettingRestTimeListEnd;
class GetClassWithDeletedResponseBodyResultClassSettingRestTimeList extends $tea.Model {
    static names() {
        return {
            begin: 'begin',
            end: 'end',
        };
    }
    static types() {
        return {
            begin: GetClassWithDeletedResponseBodyResultClassSettingRestTimeListBegin,
            end: GetClassWithDeletedResponseBodyResultClassSettingRestTimeListEnd,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetClassWithDeletedResponseBodyResultClassSettingRestTimeList = GetClassWithDeletedResponseBodyResultClassSettingRestTimeList;
class GetClassWithDeletedResponseBodyResultClassSetting extends $tea.Model {
    static names() {
        return {
            classSettingId: 'classSettingId',
            restTimeList: 'restTimeList',
        };
    }
    static types() {
        return {
            classSettingId: 'number',
            restTimeList: { 'type': 'array', 'itemType': GetClassWithDeletedResponseBodyResultClassSettingRestTimeList },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetClassWithDeletedResponseBodyResultClassSetting = GetClassWithDeletedResponseBodyResultClassSetting;
class GetClassWithDeletedResponseBodyResultSectionsTimes extends $tea.Model {
    static names() {
        return {
            across: 'across',
            beginMin: 'beginMin',
            checkTime: 'checkTime',
            checkType: 'checkType',
            endMin: 'endMin',
        };
    }
    static types() {
        return {
            across: 'number',
            beginMin: 'number',
            checkTime: 'string',
            checkType: 'string',
            endMin: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetClassWithDeletedResponseBodyResultSectionsTimes = GetClassWithDeletedResponseBodyResultSectionsTimes;
class GetClassWithDeletedResponseBodyResultSections extends $tea.Model {
    static names() {
        return {
            times: 'times',
        };
    }
    static types() {
        return {
            times: { 'type': 'array', 'itemType': GetClassWithDeletedResponseBodyResultSectionsTimes },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetClassWithDeletedResponseBodyResultSections = GetClassWithDeletedResponseBodyResultSections;
class GetClassWithDeletedResponseBodyResult extends $tea.Model {
    static names() {
        return {
            classId: 'classId',
            classSetting: 'classSetting',
            corpId: 'corpId',
            name: 'name',
            sections: 'sections',
            workDays: 'workDays',
        };
    }
    static types() {
        return {
            classId: 'number',
            classSetting: GetClassWithDeletedResponseBodyResultClassSetting,
            corpId: 'string',
            name: 'string',
            sections: { 'type': 'array', 'itemType': GetClassWithDeletedResponseBodyResultSections },
            workDays: { 'type': 'array', 'itemType': 'number' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetClassWithDeletedResponseBodyResult = GetClassWithDeletedResponseBodyResult;
class GetClosingAccountsResponseBodyResultClosingAccountModel extends $tea.Model {
    static names() {
        return {
            closingDay: 'closingDay',
            closingHourMinutes: 'closingHourMinutes',
            endDay: 'endDay',
            endMonth: 'endMonth',
            startDay: 'startDay',
            startMonth: 'startMonth',
        };
    }
    static types() {
        return {
            closingDay: 'number',
            closingHourMinutes: 'number',
            endDay: 'number',
            endMonth: 'number',
            startDay: 'number',
            startMonth: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetClosingAccountsResponseBodyResultClosingAccountModel = GetClosingAccountsResponseBodyResultClosingAccountModel;
class GetClosingAccountsResponseBodyResultUnsealClosingAccountModel extends $tea.Model {
    static names() {
        return {
            invalidTimeStamp: 'invalidTimeStamp',
        };
    }
    static types() {
        return {
            invalidTimeStamp: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetClosingAccountsResponseBodyResultUnsealClosingAccountModel = GetClosingAccountsResponseBodyResultUnsealClosingAccountModel;
class GetClosingAccountsResponseBodyResult extends $tea.Model {
    static names() {
        return {
            closingAccountModel: 'closingAccountModel',
            switchOn: 'switchOn',
            unsealClosingAccountModel: 'unsealClosingAccountModel',
            userId: 'userId',
        };
    }
    static types() {
        return {
            closingAccountModel: GetClosingAccountsResponseBodyResultClosingAccountModel,
            switchOn: 'boolean',
            unsealClosingAccountModel: GetClosingAccountsResponseBodyResultUnsealClosingAccountModel,
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetClosingAccountsResponseBodyResult = GetClosingAccountsResponseBodyResult;
class GetColumnvalsResponseBodyResultColumnDataColumnValues extends $tea.Model {
    static names() {
        return {
            date: 'date',
            value: 'value',
        };
    }
    static types() {
        return {
            date: 'number',
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetColumnvalsResponseBodyResultColumnDataColumnValues = GetColumnvalsResponseBodyResultColumnDataColumnValues;
class GetColumnvalsResponseBodyResultColumnData extends $tea.Model {
    static names() {
        return {
            columnValues: 'columnValues',
            fixedValue: 'fixedValue',
            id: 'id',
        };
    }
    static types() {
        return {
            columnValues: { 'type': 'array', 'itemType': GetColumnvalsResponseBodyResultColumnDataColumnValues },
            fixedValue: 'string',
            id: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetColumnvalsResponseBodyResultColumnData = GetColumnvalsResponseBodyResultColumnData;
class GetColumnvalsResponseBodyResult extends $tea.Model {
    static names() {
        return {
            columnData: 'columnData',
            userId: 'userId',
        };
    }
    static types() {
        return {
            columnData: { 'type': 'array', 'itemType': GetColumnvalsResponseBodyResultColumnData },
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetColumnvalsResponseBodyResult = GetColumnvalsResponseBodyResult;
class GetLeaveRecordsResponseBodyResultLeaveRecords extends $tea.Model {
    static names() {
        return {
            calType: 'calType',
            endTime: 'endTime',
            gmtCreate: 'gmtCreate',
            gmtModified: 'gmtModified',
            leaveCode: 'leaveCode',
            leaveReason: 'leaveReason',
            leaveRecordType: 'leaveRecordType',
            leaveStatus: 'leaveStatus',
            leaveViewUnit: 'leaveViewUnit',
            opUserId: 'opUserId',
            quotaId: 'quotaId',
            recordId: 'recordId',
            recordNumPerDay: 'recordNumPerDay',
            recordNumPerHour: 'recordNumPerHour',
            startTime: 'startTime',
            userId: 'userId',
        };
    }
    static types() {
        return {
            calType: 'string',
            endTime: 'number',
            gmtCreate: 'number',
            gmtModified: 'number',
            leaveCode: 'string',
            leaveReason: 'string',
            leaveRecordType: 'string',
            leaveStatus: 'string',
            leaveViewUnit: 'string',
            opUserId: 'string',
            quotaId: 'string',
            recordId: 'string',
            recordNumPerDay: 'number',
            recordNumPerHour: 'number',
            startTime: 'number',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetLeaveRecordsResponseBodyResultLeaveRecords = GetLeaveRecordsResponseBodyResultLeaveRecords;
class GetLeaveRecordsResponseBodyResult extends $tea.Model {
    static names() {
        return {
            hasMore: 'hasMore',
            leaveRecords: 'leaveRecords',
        };
    }
    static types() {
        return {
            hasMore: 'boolean',
            leaveRecords: { 'type': 'array', 'itemType': GetLeaveRecordsResponseBodyResultLeaveRecords },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetLeaveRecordsResponseBodyResult = GetLeaveRecordsResponseBodyResult;
class GetLeaveTypeResponseBodyResultLeaveCertificate extends $tea.Model {
    static names() {
        return {
            duration: 'duration',
            enable: 'enable',
            promptInformation: 'promptInformation',
            unit: 'unit',
        };
    }
    static types() {
        return {
            duration: 'number',
            enable: 'boolean',
            promptInformation: 'string',
            unit: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetLeaveTypeResponseBodyResultLeaveCertificate = GetLeaveTypeResponseBodyResultLeaveCertificate;
class GetLeaveTypeResponseBodyResultSubmitTimeRule extends $tea.Model {
    static names() {
        return {
            enableTimeLimit: 'enableTimeLimit',
            timeType: 'timeType',
            timeUnit: 'timeUnit',
            timeValue: 'timeValue',
        };
    }
    static types() {
        return {
            enableTimeLimit: 'boolean',
            timeType: 'string',
            timeUnit: 'string',
            timeValue: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetLeaveTypeResponseBodyResultSubmitTimeRule = GetLeaveTypeResponseBodyResultSubmitTimeRule;
class GetLeaveTypeResponseBodyResultVisibilityRules extends $tea.Model {
    static names() {
        return {
            type: 'type',
            visible: 'visible',
        };
    }
    static types() {
        return {
            type: 'string',
            visible: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetLeaveTypeResponseBodyResultVisibilityRules = GetLeaveTypeResponseBodyResultVisibilityRules;
class GetLeaveTypeResponseBodyResult extends $tea.Model {
    static names() {
        return {
            bizType: 'bizType',
            hoursInPerDay: 'hoursInPerDay',
            leaveCertificate: 'leaveCertificate',
            leaveCode: 'leaveCode',
            leaveName: 'leaveName',
            leaveViewUnit: 'leaveViewUnit',
            naturalDayLeave: 'naturalDayLeave',
            source: 'source',
            submitTimeRule: 'submitTimeRule',
            validityType: 'validityType',
            validityValue: 'validityValue',
            visibilityRules: 'visibilityRules',
        };
    }
    static types() {
        return {
            bizType: 'string',
            hoursInPerDay: 'number',
            leaveCertificate: GetLeaveTypeResponseBodyResultLeaveCertificate,
            leaveCode: 'string',
            leaveName: 'string',
            leaveViewUnit: 'string',
            naturalDayLeave: 'boolean',
            source: 'string',
            submitTimeRule: GetLeaveTypeResponseBodyResultSubmitTimeRule,
            validityType: 'string',
            validityValue: 'string',
            visibilityRules: { 'type': 'array', 'itemType': GetLeaveTypeResponseBodyResultVisibilityRules },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetLeaveTypeResponseBodyResult = GetLeaveTypeResponseBodyResult;
class GetMachineResponseBodyResultMachineBluetoothVO extends $tea.Model {
    static names() {
        return {
            address: 'address',
            bluetoothCheckWithFace: 'bluetoothCheckWithFace',
            bluetoothDistanceMode: 'bluetoothDistanceMode',
            bluetoothDistanceModeDesc: 'bluetoothDistanceModeDesc',
            bluetoothValue: 'bluetoothValue',
            latitude: 'latitude',
            limitUserDeviceCount: 'limitUserDeviceCount',
            longitude: 'longitude',
            monitorLocationAbnormal: 'monitorLocationAbnormal',
            userDeviceCount: 'userDeviceCount',
        };
    }
    static types() {
        return {
            address: 'string',
            bluetoothCheckWithFace: 'boolean',
            bluetoothDistanceMode: 'string',
            bluetoothDistanceModeDesc: 'string',
            bluetoothValue: 'boolean',
            latitude: 'number',
            limitUserDeviceCount: 'boolean',
            longitude: 'number',
            monitorLocationAbnormal: 'boolean',
            userDeviceCount: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetMachineResponseBodyResultMachineBluetoothVO = GetMachineResponseBodyResultMachineBluetoothVO;
class GetMachineResponseBodyResult extends $tea.Model {
    static names() {
        return {
            atmManagerList: 'atmManagerList',
            devId: 'devId',
            deviceId: 'deviceId',
            deviceName: 'deviceName',
            deviceSn: 'deviceSn',
            machineBluetoothVO: 'machineBluetoothVO',
            maxFace: 'maxFace',
            netStatus: 'netStatus',
            productName: 'productName',
            productVersion: 'productVersion',
            voiceMode: 'voiceMode',
        };
    }
    static types() {
        return {
            atmManagerList: { 'type': 'array', 'itemType': 'string' },
            devId: 'number',
            deviceId: 'string',
            deviceName: 'string',
            deviceSn: 'string',
            machineBluetoothVO: GetMachineResponseBodyResultMachineBluetoothVO,
            maxFace: 'number',
            netStatus: 'string',
            productName: 'string',
            productVersion: 'string',
            voiceMode: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetMachineResponseBodyResult = GetMachineResponseBodyResult;
class GetMachineUserResponseBodyResultUserList extends $tea.Model {
    static names() {
        return {
            hasFace: 'hasFace',
            name: 'name',
            userId: 'userId',
        };
    }
    static types() {
        return {
            hasFace: 'boolean',
            name: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetMachineUserResponseBodyResultUserList = GetMachineUserResponseBodyResultUserList;
class GetMachineUserResponseBodyResult extends $tea.Model {
    static names() {
        return {
            hasMore: 'hasMore',
            nextToken: 'nextToken',
            userList: 'userList',
        };
    }
    static types() {
        return {
            hasMore: 'boolean',
            nextToken: 'string',
            userList: { 'type': 'array', 'itemType': GetMachineUserResponseBodyResultUserList },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetMachineUserResponseBodyResult = GetMachineUserResponseBodyResult;
class GetOverdraftInfoResponseBodyOverdraftList extends $tea.Model {
    static names() {
        return {
            overdraft: 'overdraft',
            unit: 'unit',
            userId: 'userId',
        };
    }
    static types() {
        return {
            overdraft: 'number',
            unit: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetOverdraftInfoResponseBodyOverdraftList = GetOverdraftInfoResponseBodyOverdraftList;
class GetOvertimeSettingResponseBodyResultOvertimeDivisions extends $tea.Model {
    static names() {
        return {
            nextDayType: 'nextDayType',
            previousDayType: 'previousDayType',
            timeSplitPoint: 'timeSplitPoint',
        };
    }
    static types() {
        return {
            nextDayType: 'string',
            previousDayType: 'string',
            timeSplitPoint: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetOvertimeSettingResponseBodyResultOvertimeDivisions = GetOvertimeSettingResponseBodyResultOvertimeDivisions;
class GetOvertimeSettingResponseBodyResultWarningSettings extends $tea.Model {
    static names() {
        return {
            action: 'action',
            threshold: 'threshold',
            time: 'time',
        };
    }
    static types() {
        return {
            action: 'string',
            threshold: 'number',
            time: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetOvertimeSettingResponseBodyResultWarningSettings = GetOvertimeSettingResponseBodyResultWarningSettings;
class GetOvertimeSettingResponseBodyResult extends $tea.Model {
    static names() {
        return {
            default: 'default',
            durationSettings: 'durationSettings',
            id: 'id',
            name: 'name',
            overtimeDivisions: 'overtimeDivisions',
            settingId: 'settingId',
            stepType: 'stepType',
            stepValue: 'stepValue',
            warningSettings: 'warningSettings',
            workMinutesPerDay: 'workMinutesPerDay',
        };
    }
    static types() {
        return {
            default: 'boolean',
            durationSettings: { 'type': 'map', 'keyType': 'string', 'valueType': ResultDurationSettingsValue },
            id: 'number',
            name: 'string',
            overtimeDivisions: { 'type': 'array', 'itemType': GetOvertimeSettingResponseBodyResultOvertimeDivisions },
            settingId: 'number',
            stepType: 'number',
            stepValue: 'number',
            warningSettings: { 'type': 'array', 'itemType': GetOvertimeSettingResponseBodyResultWarningSettings },
            workMinutesPerDay: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetOvertimeSettingResponseBodyResult = GetOvertimeSettingResponseBodyResult;
class GetShiftResponseBodyResultSectionsPunchesLateBackSettingLateBackPairs extends $tea.Model {
    static names() {
        return {
            extra: 'extra',
            late: 'late',
        };
    }
    static types() {
        return {
            extra: 'number',
            late: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetShiftResponseBodyResultSectionsPunchesLateBackSettingLateBackPairs = GetShiftResponseBodyResultSectionsPunchesLateBackSettingLateBackPairs;
class GetShiftResponseBodyResultSectionsPunchesLateBackSetting extends $tea.Model {
    static names() {
        return {
            lateBackPairs: 'lateBackPairs',
        };
    }
    static types() {
        return {
            lateBackPairs: { 'type': 'array', 'itemType': GetShiftResponseBodyResultSectionsPunchesLateBackSettingLateBackPairs },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetShiftResponseBodyResultSectionsPunchesLateBackSetting = GetShiftResponseBodyResultSectionsPunchesLateBackSetting;
class GetShiftResponseBodyResultSectionsPunches extends $tea.Model {
    static names() {
        return {
            absenteeismLateMinutes: 'absenteeismLateMinutes',
            across: 'across',
            beginMin: 'beginMin',
            checkTime: 'checkTime',
            checkType: 'checkType',
            endMin: 'endMin',
            flexMinutes: 'flexMinutes',
            freeCheck: 'freeCheck',
            lateBackSetting: 'lateBackSetting',
            permitMinutes: 'permitMinutes',
            puncheId: 'puncheId',
            seriousLateMinutes: 'seriousLateMinutes',
        };
    }
    static types() {
        return {
            absenteeismLateMinutes: 'number',
            across: 'number',
            beginMin: 'number',
            checkTime: 'string',
            checkType: 'string',
            endMin: 'number',
            flexMinutes: { 'type': 'array', 'itemType': 'number' },
            freeCheck: 'boolean',
            lateBackSetting: GetShiftResponseBodyResultSectionsPunchesLateBackSetting,
            permitMinutes: 'number',
            puncheId: 'number',
            seriousLateMinutes: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetShiftResponseBodyResultSectionsPunches = GetShiftResponseBodyResultSectionsPunches;
class GetShiftResponseBodyResultSectionsRests extends $tea.Model {
    static names() {
        return {
            across: 'across',
            checkTime: 'checkTime',
            checkType: 'checkType',
            restId: 'restId',
        };
    }
    static types() {
        return {
            across: 'number',
            checkTime: 'string',
            checkType: 'string',
            restId: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetShiftResponseBodyResultSectionsRests = GetShiftResponseBodyResultSectionsRests;
class GetShiftResponseBodyResultSections extends $tea.Model {
    static names() {
        return {
            punches: 'punches',
            rests: 'rests',
            sectionId: 'sectionId',
        };
    }
    static types() {
        return {
            punches: { 'type': 'array', 'itemType': GetShiftResponseBodyResultSectionsPunches },
            rests: { 'type': 'array', 'itemType': GetShiftResponseBodyResultSectionsRests },
            sectionId: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetShiftResponseBodyResultSections = GetShiftResponseBodyResultSections;
class GetShiftResponseBodyResultShiftSetting extends $tea.Model {
    static names() {
        return {
            attendDays: 'attendDays',
            corpId: 'corpId',
            gmtCreate: 'gmtCreate',
            gmtModified: 'gmtModified',
            shiftId: 'shiftId',
            shiftSettingId: 'shiftSettingId',
            shiftType: 'shiftType',
            workTimeMinutes: 'workTimeMinutes',
        };
    }
    static types() {
        return {
            attendDays: 'string',
            corpId: 'string',
            gmtCreate: 'string',
            gmtModified: 'string',
            shiftId: 'number',
            shiftSettingId: 'number',
            shiftType: 'string',
            workTimeMinutes: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetShiftResponseBodyResultShiftSetting = GetShiftResponseBodyResultShiftSetting;
class GetShiftResponseBodyResult extends $tea.Model {
    static names() {
        return {
            corpId: 'corpId',
            id: 'id',
            name: 'name',
            owner: 'owner',
            sections: 'sections',
            shiftGroupId: 'shiftGroupId',
            shiftGroupName: 'shiftGroupName',
            shiftSetting: 'shiftSetting',
        };
    }
    static types() {
        return {
            corpId: 'string',
            id: 'number',
            name: 'string',
            owner: 'string',
            sections: { 'type': 'array', 'itemType': GetShiftResponseBodyResultSections },
            shiftGroupId: 'number',
            shiftGroupName: 'string',
            shiftSetting: GetShiftResponseBodyResultShiftSetting,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetShiftResponseBodyResult = GetShiftResponseBodyResult;
class GetSimpleGroupsResponseBodyResultGroupsSelectedClassSectionsTimes extends $tea.Model {
    static names() {
        return {
            across: 'across',
            checkTime: 'checkTime',
            checkType: 'checkType',
        };
    }
    static types() {
        return {
            across: 'number',
            checkTime: 'string',
            checkType: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSimpleGroupsResponseBodyResultGroupsSelectedClassSectionsTimes = GetSimpleGroupsResponseBodyResultGroupsSelectedClassSectionsTimes;
class GetSimpleGroupsResponseBodyResultGroupsSelectedClassSections extends $tea.Model {
    static names() {
        return {
            times: 'times',
        };
    }
    static types() {
        return {
            times: { 'type': 'array', 'itemType': GetSimpleGroupsResponseBodyResultGroupsSelectedClassSectionsTimes },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSimpleGroupsResponseBodyResultGroupsSelectedClassSections = GetSimpleGroupsResponseBodyResultGroupsSelectedClassSections;
class GetSimpleGroupsResponseBodyResultGroupsSelectedClassSettingRestTimeListBegin extends $tea.Model {
    static names() {
        return {
            across: 'across',
            checkTime: 'checkTime',
        };
    }
    static types() {
        return {
            across: 'number',
            checkTime: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSimpleGroupsResponseBodyResultGroupsSelectedClassSettingRestTimeListBegin = GetSimpleGroupsResponseBodyResultGroupsSelectedClassSettingRestTimeListBegin;
class GetSimpleGroupsResponseBodyResultGroupsSelectedClassSettingRestTimeListEnd extends $tea.Model {
    static names() {
        return {
            across: 'across',
            checkTime: 'checkTime',
        };
    }
    static types() {
        return {
            across: 'number',
            checkTime: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSimpleGroupsResponseBodyResultGroupsSelectedClassSettingRestTimeListEnd = GetSimpleGroupsResponseBodyResultGroupsSelectedClassSettingRestTimeListEnd;
class GetSimpleGroupsResponseBodyResultGroupsSelectedClassSettingRestTimeList extends $tea.Model {
    static names() {
        return {
            begin: 'begin',
            end: 'end',
        };
    }
    static types() {
        return {
            begin: GetSimpleGroupsResponseBodyResultGroupsSelectedClassSettingRestTimeListBegin,
            end: GetSimpleGroupsResponseBodyResultGroupsSelectedClassSettingRestTimeListEnd,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSimpleGroupsResponseBodyResultGroupsSelectedClassSettingRestTimeList = GetSimpleGroupsResponseBodyResultGroupsSelectedClassSettingRestTimeList;
class GetSimpleGroupsResponseBodyResultGroupsSelectedClassSetting extends $tea.Model {
    static names() {
        return {
            absenteeismLateMinutes: 'absenteeismLateMinutes',
            classSettingId: 'classSettingId',
            isOffDutyFreeCheck: 'isOffDutyFreeCheck',
            permitLateMinutes: 'permitLateMinutes',
            restTimeList: 'restTimeList',
            seriousLateMinutes: 'seriousLateMinutes',
            workTimeMinutes: 'workTimeMinutes',
        };
    }
    static types() {
        return {
            absenteeismLateMinutes: 'number',
            classSettingId: 'number',
            isOffDutyFreeCheck: 'string',
            permitLateMinutes: 'number',
            restTimeList: { 'type': 'array', 'itemType': GetSimpleGroupsResponseBodyResultGroupsSelectedClassSettingRestTimeList },
            seriousLateMinutes: 'number',
            workTimeMinutes: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSimpleGroupsResponseBodyResultGroupsSelectedClassSetting = GetSimpleGroupsResponseBodyResultGroupsSelectedClassSetting;
class GetSimpleGroupsResponseBodyResultGroupsSelectedClass extends $tea.Model {
    static names() {
        return {
            classId: 'classId',
            className: 'className',
            sections: 'sections',
            setting: 'setting',
        };
    }
    static types() {
        return {
            classId: 'number',
            className: 'string',
            sections: { 'type': 'array', 'itemType': GetSimpleGroupsResponseBodyResultGroupsSelectedClassSections },
            setting: GetSimpleGroupsResponseBodyResultGroupsSelectedClassSetting,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSimpleGroupsResponseBodyResultGroupsSelectedClass = GetSimpleGroupsResponseBodyResultGroupsSelectedClass;
class GetSimpleGroupsResponseBodyResultGroups extends $tea.Model {
    static names() {
        return {
            classesList: 'classesList',
            defaultClassId: 'defaultClassId',
            deptIds: 'deptIds',
            deptNameList: 'deptNameList',
            disableCheckWhenRest: 'disableCheckWhenRest',
            disableCheckWithoutSchedule: 'disableCheckWithoutSchedule',
            enableEmpSelectClass: 'enableEmpSelectClass',
            freeCheckDayStartMinOffset: 'freeCheckDayStartMinOffset',
            freecheckWorkDays: 'freecheckWorkDays',
            groupId: 'groupId',
            groupName: 'groupName',
            isDefault: 'isDefault',
            managerList: 'managerList',
            memberCount: 'memberCount',
            ownerUserId: 'ownerUserId',
            selectedClass: 'selectedClass',
            type: 'type',
            userIds: 'userIds',
            workDayList: 'workDayList',
        };
    }
    static types() {
        return {
            classesList: { 'type': 'array', 'itemType': 'string' },
            defaultClassId: 'number',
            deptIds: { 'type': 'array', 'itemType': 'number' },
            deptNameList: { 'type': 'array', 'itemType': 'string' },
            disableCheckWhenRest: 'boolean',
            disableCheckWithoutSchedule: 'boolean',
            enableEmpSelectClass: 'boolean',
            freeCheckDayStartMinOffset: 'number',
            freecheckWorkDays: { 'type': 'array', 'itemType': 'number' },
            groupId: 'number',
            groupName: 'string',
            isDefault: 'boolean',
            managerList: { 'type': 'array', 'itemType': 'string' },
            memberCount: 'number',
            ownerUserId: 'string',
            selectedClass: { 'type': 'array', 'itemType': GetSimpleGroupsResponseBodyResultGroupsSelectedClass },
            type: 'string',
            userIds: { 'type': 'array', 'itemType': 'string' },
            workDayList: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSimpleGroupsResponseBodyResultGroups = GetSimpleGroupsResponseBodyResultGroups;
class GetSimpleGroupsResponseBodyResult extends $tea.Model {
    static names() {
        return {
            groups: 'groups',
            hasMore: 'hasMore',
        };
    }
    static types() {
        return {
            groups: { 'type': 'array', 'itemType': GetSimpleGroupsResponseBodyResultGroups },
            hasMore: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSimpleGroupsResponseBodyResult = GetSimpleGroupsResponseBodyResult;
class GetSimpleOvertimeSettingResponseBodyResultItems extends $tea.Model {
    static names() {
        return {
            id: 'id',
            name: 'name',
            settingId: 'settingId',
        };
    }
    static types() {
        return {
            id: 'number',
            name: 'string',
            settingId: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSimpleOvertimeSettingResponseBodyResultItems = GetSimpleOvertimeSettingResponseBodyResultItems;
class GetSimpleOvertimeSettingResponseBodyResult extends $tea.Model {
    static names() {
        return {
            items: 'items',
            pageNumber: 'pageNumber',
            totalPage: 'totalPage',
        };
    }
    static types() {
        return {
            items: { 'type': 'array', 'itemType': GetSimpleOvertimeSettingResponseBodyResultItems },
            pageNumber: 'number',
            totalPage: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetSimpleOvertimeSettingResponseBodyResult = GetSimpleOvertimeSettingResponseBodyResult;
class GetUserHolidaysResponseBodyResultHolidays extends $tea.Model {
    static names() {
        return {
            holidayName: 'holidayName',
            holidayType: 'holidayType',
            realWorkDate: 'realWorkDate',
            workDate: 'workDate',
        };
    }
    static types() {
        return {
            holidayName: 'string',
            holidayType: 'string',
            realWorkDate: 'number',
            workDate: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetUserHolidaysResponseBodyResultHolidays = GetUserHolidaysResponseBodyResultHolidays;
class GetUserHolidaysResponseBodyResult extends $tea.Model {
    static names() {
        return {
            holidays: 'holidays',
            userId: 'userId',
        };
    }
    static types() {
        return {
            holidays: { 'type': 'array', 'itemType': GetUserHolidaysResponseBodyResultHolidays },
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GetUserHolidaysResponseBodyResult = GetUserHolidaysResponseBodyResult;
class GroupAddRequestBleDeviceList extends $tea.Model {
    static names() {
        return {
            deviceId: 'deviceId',
        };
    }
    static types() {
        return {
            deviceId: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GroupAddRequestBleDeviceList = GroupAddRequestBleDeviceList;
class GroupAddRequestFreeCheckSettingFreeCheckGap extends $tea.Model {
    static names() {
        return {
            offOnCheckGapMinutes: 'offOnCheckGapMinutes',
            onOffCheckGapMinutes: 'onOffCheckGapMinutes',
        };
    }
    static types() {
        return {
            offOnCheckGapMinutes: 'number',
            onOffCheckGapMinutes: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GroupAddRequestFreeCheckSettingFreeCheckGap = GroupAddRequestFreeCheckSettingFreeCheckGap;
class GroupAddRequestFreeCheckSetting extends $tea.Model {
    static names() {
        return {
            delimitOffsetMinutesBetweenDays: 'delimitOffsetMinutesBetweenDays',
            freeCheckGap: 'freeCheckGap',
        };
    }
    static types() {
        return {
            delimitOffsetMinutesBetweenDays: 'number',
            freeCheckGap: GroupAddRequestFreeCheckSettingFreeCheckGap,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GroupAddRequestFreeCheckSetting = GroupAddRequestFreeCheckSetting;
class GroupAddRequestMembers extends $tea.Model {
    static names() {
        return {
            role: 'role',
            type: 'type',
            userId: 'userId',
        };
    }
    static types() {
        return {
            role: 'string',
            type: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GroupAddRequestMembers = GroupAddRequestMembers;
class GroupAddRequestPositions extends $tea.Model {
    static names() {
        return {
            address: 'address',
            latitude: 'latitude',
            longitude: 'longitude',
            offset: 'offset',
            title: 'title',
        };
    }
    static types() {
        return {
            address: 'string',
            latitude: 'string',
            longitude: 'string',
            offset: 'number',
            title: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GroupAddRequestPositions = GroupAddRequestPositions;
class GroupAddRequestShiftVOList extends $tea.Model {
    static names() {
        return {
            shiftId: 'shiftId',
        };
    }
    static types() {
        return {
            shiftId: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GroupAddRequestShiftVOList = GroupAddRequestShiftVOList;
class GroupAddRequestWifis extends $tea.Model {
    static names() {
        return {
            macAddr: 'macAddr',
            ssid: 'ssid',
        };
    }
    static types() {
        return {
            macAddr: 'string',
            ssid: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GroupAddRequestWifis = GroupAddRequestWifis;
class GroupAddResponseBodyResult extends $tea.Model {
    static names() {
        return {
            id: 'id',
            name: 'name',
        };
    }
    static types() {
        return {
            id: 'number',
            name: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GroupAddResponseBodyResult = GroupAddResponseBodyResult;
class GroupUpdateRequestFreeCheckSettingFreeCheckGap extends $tea.Model {
    static names() {
        return {
            offOnCheckGapMinutes: 'offOnCheckGapMinutes',
            onOffCheckGapMinutes: 'onOffCheckGapMinutes',
        };
    }
    static types() {
        return {
            offOnCheckGapMinutes: 'number',
            onOffCheckGapMinutes: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GroupUpdateRequestFreeCheckSettingFreeCheckGap = GroupUpdateRequestFreeCheckSettingFreeCheckGap;
class GroupUpdateRequestFreeCheckSetting extends $tea.Model {
    static names() {
        return {
            delimitOffsetMinutesBetweenDays: 'delimitOffsetMinutesBetweenDays',
            freeCheckGap: 'freeCheckGap',
        };
    }
    static types() {
        return {
            delimitOffsetMinutesBetweenDays: 'number',
            freeCheckGap: GroupUpdateRequestFreeCheckSettingFreeCheckGap,
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GroupUpdateRequestFreeCheckSetting = GroupUpdateRequestFreeCheckSetting;
class GroupUpdateRequestPositions extends $tea.Model {
    static names() {
        return {
            address: 'address',
            latitude: 'latitude',
            longitude: 'longitude',
            offset: 'offset',
            title: 'title',
        };
    }
    static types() {
        return {
            address: 'string',
            latitude: 'string',
            longitude: 'string',
            offset: 'number',
            title: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GroupUpdateRequestPositions = GroupUpdateRequestPositions;
class GroupUpdateRequestShiftVOList extends $tea.Model {
    static names() {
        return {
            shiftId: 'shiftId',
        };
    }
    static types() {
        return {
            shiftId: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GroupUpdateRequestShiftVOList = GroupUpdateRequestShiftVOList;
class GroupUpdateResponseBodyResult extends $tea.Model {
    static names() {
        return {
            id: 'id',
            name: 'name',
        };
    }
    static types() {
        return {
            id: 'number',
            name: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.GroupUpdateResponseBodyResult = GroupUpdateResponseBodyResult;
class InitAndGetLeaveALlocationQuotasResponseBodyResult extends $tea.Model {
    static names() {
        return {
            endTime: 'endTime',
            leaveCode: 'leaveCode',
            quotaCycle: 'quotaCycle',
            quotaId: 'quotaId',
            quotaNumPerDay: 'quotaNumPerDay',
            quotaNumPerHour: 'quotaNumPerHour',
            startTime: 'startTime',
            usedNumPerDay: 'usedNumPerDay',
            usedNumPerHour: 'usedNumPerHour',
            userId: 'userId',
        };
    }
    static types() {
        return {
            endTime: 'number',
            leaveCode: 'string',
            quotaCycle: 'string',
            quotaId: 'string',
            quotaNumPerDay: 'number',
            quotaNumPerHour: 'number',
            startTime: 'number',
            usedNumPerDay: 'number',
            usedNumPerHour: 'number',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.InitAndGetLeaveALlocationQuotasResponseBodyResult = InitAndGetLeaveALlocationQuotasResponseBodyResult;
class ListApproveByUsersResponseBodyResult extends $tea.Model {
    static names() {
        return {
            approveId: 'approveId',
            beginTime: 'beginTime',
            bizType: 'bizType',
            calculateModel: 'calculateModel',
            durationUnit: 'durationUnit',
            endTime: 'endTime',
            subType: 'subType',
            tagName: 'tagName',
            userId: 'userId',
        };
    }
    static types() {
        return {
            approveId: 'string',
            beginTime: 'string',
            bizType: 'number',
            calculateModel: 'number',
            durationUnit: 'string',
            endTime: 'string',
            subType: 'string',
            tagName: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ListApproveByUsersResponseBodyResult = ListApproveByUsersResponseBodyResult;
class ProcessApproveCreateRequestPunchParam extends $tea.Model {
    static names() {
        return {
            positionId: 'positionId',
            positionName: 'positionName',
            positionType: 'positionType',
            punchTime: 'punchTime',
        };
    }
    static types() {
        return {
            positionId: 'string',
            positionName: 'string',
            positionType: 'string',
            punchTime: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ProcessApproveCreateRequestPunchParam = ProcessApproveCreateRequestPunchParam;
class ProcessApproveCreateResponseBodyResult extends $tea.Model {
    static names() {
        return {
            dingtalkApproveId: 'dingtalkApproveId',
        };
    }
    static types() {
        return {
            dingtalkApproveId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ProcessApproveCreateResponseBodyResult = ProcessApproveCreateResponseBodyResult;
class ProcessApproveFinishRequestTopCalculateApproveDurationParam extends $tea.Model {
    static names() {
        return {
            bizType: 'bizType',
            calculateModel: 'calculateModel',
            durationUnit: 'durationUnit',
            fromTime: 'fromTime',
            leaveCode: 'leaveCode',
            toTime: 'toTime',
        };
    }
    static types() {
        return {
            bizType: 'number',
            calculateModel: 'number',
            durationUnit: 'string',
            fromTime: 'string',
            leaveCode: 'string',
            toTime: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ProcessApproveFinishRequestTopCalculateApproveDurationParam = ProcessApproveFinishRequestTopCalculateApproveDurationParam;
class ProcessApproveFinishResponseBodyResultDurationDetail extends $tea.Model {
    static names() {
        return {
            date: 'date',
            duration: 'duration',
        };
    }
    static types() {
        return {
            date: 'string',
            duration: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ProcessApproveFinishResponseBodyResultDurationDetail = ProcessApproveFinishResponseBodyResultDurationDetail;
class ProcessApproveFinishResponseBodyResult extends $tea.Model {
    static names() {
        return {
            duration: 'duration',
            durationDetail: 'durationDetail',
        };
    }
    static types() {
        return {
            duration: 'number',
            durationDetail: { 'type': 'array', 'itemType': ProcessApproveFinishResponseBodyResultDurationDetail },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ProcessApproveFinishResponseBodyResult = ProcessApproveFinishResponseBodyResult;
class RetainLeaveTypesResponseBodyResultLeaveCertificate extends $tea.Model {
    static names() {
        return {
            duration: 'duration',
            enable: 'enable',
            promptInformation: 'promptInformation',
            unit: 'unit',
        };
    }
    static types() {
        return {
            duration: 'number',
            enable: 'boolean',
            promptInformation: 'string',
            unit: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RetainLeaveTypesResponseBodyResultLeaveCertificate = RetainLeaveTypesResponseBodyResultLeaveCertificate;
class RetainLeaveTypesResponseBodyResultSubmitTimeRule extends $tea.Model {
    static names() {
        return {
            enableTimeLimit: 'enableTimeLimit',
            timeType: 'timeType',
            timeUnit: 'timeUnit',
            timeValue: 'timeValue',
        };
    }
    static types() {
        return {
            enableTimeLimit: 'boolean',
            timeType: 'string',
            timeUnit: 'string',
            timeValue: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RetainLeaveTypesResponseBodyResultSubmitTimeRule = RetainLeaveTypesResponseBodyResultSubmitTimeRule;
class RetainLeaveTypesResponseBodyResultVisibilityRules extends $tea.Model {
    static names() {
        return {
            type: 'type',
            visible: 'visible',
        };
    }
    static types() {
        return {
            type: 'string',
            visible: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RetainLeaveTypesResponseBodyResultVisibilityRules = RetainLeaveTypesResponseBodyResultVisibilityRules;
class RetainLeaveTypesResponseBodyResult extends $tea.Model {
    static names() {
        return {
            bizType: 'bizType',
            hoursInPerDay: 'hoursInPerDay',
            leaveCertificate: 'leaveCertificate',
            leaveCode: 'leaveCode',
            leaveHourCeil: 'leaveHourCeil',
            leaveName: 'leaveName',
            leaveTimeCeil: 'leaveTimeCeil',
            leaveTimeCeilMinUnit: 'leaveTimeCeilMinUnit',
            leaveViewUnit: 'leaveViewUnit',
            lieuDelayNum: 'lieuDelayNum',
            lieuDelayUnit: 'lieuDelayUnit',
            maxLeaveTime: 'maxLeaveTime',
            minLeaveHour: 'minLeaveHour',
            naturalDayLeave: 'naturalDayLeave',
            paidLeave: 'paidLeave',
            submitTimeRule: 'submitTimeRule',
            visibilityRules: 'visibilityRules',
            whenCanLeave: 'whenCanLeave',
        };
    }
    static types() {
        return {
            bizType: 'string',
            hoursInPerDay: 'number',
            leaveCertificate: RetainLeaveTypesResponseBodyResultLeaveCertificate,
            leaveCode: 'string',
            leaveHourCeil: 'string',
            leaveName: 'string',
            leaveTimeCeil: 'boolean',
            leaveTimeCeilMinUnit: 'string',
            leaveViewUnit: 'string',
            lieuDelayNum: 'number',
            lieuDelayUnit: 'string',
            maxLeaveTime: 'number',
            minLeaveHour: 'number',
            naturalDayLeave: 'boolean',
            paidLeave: 'boolean',
            submitTimeRule: RetainLeaveTypesResponseBodyResultSubmitTimeRule,
            visibilityRules: { 'type': 'array', 'itemType': RetainLeaveTypesResponseBodyResultVisibilityRules },
            whenCanLeave: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.RetainLeaveTypesResponseBodyResult = RetainLeaveTypesResponseBodyResult;
class SalaryThirdDataIntegrationRequestItemsBizContents extends $tea.Model {
    static names() {
        return {
            key: 'key',
            value: 'value',
        };
    }
    static types() {
        return {
            key: 'string',
            value: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SalaryThirdDataIntegrationRequestItemsBizContents = SalaryThirdDataIntegrationRequestItemsBizContents;
class SalaryThirdDataIntegrationRequestItems extends $tea.Model {
    static names() {
        return {
            bizContents: 'bizContents',
            bizDate: 'bizDate',
            bizId: 'bizId',
            userId: 'userId',
        };
    }
    static types() {
        return {
            bizContents: { 'type': 'array', 'itemType': SalaryThirdDataIntegrationRequestItemsBizContents },
            bizDate: 'string',
            bizId: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SalaryThirdDataIntegrationRequestItems = SalaryThirdDataIntegrationRequestItems;
class SalaryThirdDataIntegrationResponseBodyResult extends $tea.Model {
    static names() {
        return {
            reason: 'reason',
        };
    }
    static types() {
        return {
            reason: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SalaryThirdDataIntegrationResponseBodyResult = SalaryThirdDataIntegrationResponseBodyResult;
class SaveCustomWaterMarkTemplateResponseBodyResult extends $tea.Model {
    static names() {
        return {
            formCode: 'formCode',
            waterMarkId: 'waterMarkId',
        };
    }
    static types() {
        return {
            formCode: 'string',
            waterMarkId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SaveCustomWaterMarkTemplateResponseBodyResult = SaveCustomWaterMarkTemplateResponseBodyResult;
class ShiftAddRequestSectionsTimes extends $tea.Model {
    static names() {
        return {
            across: 'across',
            beginMin: 'beginMin',
            checkTime: 'checkTime',
            checkType: 'checkType',
            endMin: 'endMin',
            flexMinutes: 'flexMinutes',
            freeCheck: 'freeCheck',
        };
    }
    static types() {
        return {
            across: 'number',
            beginMin: 'number',
            checkTime: 'number',
            checkType: 'string',
            endMin: 'number',
            flexMinutes: { 'type': 'array', 'itemType': 'number' },
            freeCheck: 'boolean',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ShiftAddRequestSectionsTimes = ShiftAddRequestSectionsTimes;
class ShiftAddRequestSections extends $tea.Model {
    static names() {
        return {
            times: 'times',
        };
    }
    static types() {
        return {
            times: { 'type': 'array', 'itemType': ShiftAddRequestSectionsTimes },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ShiftAddRequestSections = ShiftAddRequestSections;
class ShiftAddRequestSettingLateBackSettingSections extends $tea.Model {
    static names() {
        return {
            extra: 'extra',
            late: 'late',
        };
    }
    static types() {
        return {
            extra: 'number',
            late: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ShiftAddRequestSettingLateBackSettingSections = ShiftAddRequestSettingLateBackSettingSections;
class ShiftAddRequestSettingLateBackSetting extends $tea.Model {
    static names() {
        return {
            enable: 'enable',
            sections: 'sections',
        };
    }
    static types() {
        return {
            enable: 'boolean',
            sections: { 'type': 'array', 'itemType': ShiftAddRequestSettingLateBackSettingSections },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ShiftAddRequestSettingLateBackSetting = ShiftAddRequestSettingLateBackSetting;
class ShiftAddRequestSettingTopRestTimeList extends $tea.Model {
    static names() {
        return {
            across: 'across',
            checkTime: 'checkTime',
            checkType: 'checkType',
        };
    }
    static types() {
        return {
            across: 'number',
            checkTime: 'number',
            checkType: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ShiftAddRequestSettingTopRestTimeList = ShiftAddRequestSettingTopRestTimeList;
class ShiftAddRequestSetting extends $tea.Model {
    static names() {
        return {
            absenteeismLateMinutes: 'absenteeismLateMinutes',
            attendDays: 'attendDays',
            demandWorkTimeMinutes: 'demandWorkTimeMinutes',
            enableOutsideLateBack: 'enableOutsideLateBack',
            extras: 'extras',
            isFlexible: 'isFlexible',
            lateBackSetting: 'lateBackSetting',
            referenceClassId: 'referenceClassId',
            seriousLateMinutes: 'seriousLateMinutes',
            shiftType: 'shiftType',
            tags: 'tags',
            topRestTimeList: 'topRestTimeList',
        };
    }
    static types() {
        return {
            absenteeismLateMinutes: 'number',
            attendDays: 'number',
            demandWorkTimeMinutes: 'number',
            enableOutsideLateBack: 'boolean',
            extras: { 'type': 'map', 'keyType': 'string', 'valueType': 'any' },
            isFlexible: 'boolean',
            lateBackSetting: ShiftAddRequestSettingLateBackSetting,
            referenceClassId: 'number',
            seriousLateMinutes: 'number',
            shiftType: 'string',
            tags: 'string',
            topRestTimeList: { 'type': 'array', 'itemType': ShiftAddRequestSettingTopRestTimeList },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ShiftAddRequestSetting = ShiftAddRequestSetting;
class ShiftAddResponseBodyResult extends $tea.Model {
    static names() {
        return {
            name: 'name',
            shiftId: 'shiftId',
        };
    }
    static types() {
        return {
            name: 'string',
            shiftId: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.ShiftAddResponseBodyResult = ShiftAddResponseBodyResult;
class SyncScheduleInfoRequestScheduleInfos extends $tea.Model {
    static names() {
        return {
            planId: 'planId',
            positionKeys: 'positionKeys',
            retainAttendanceCheck: 'retainAttendanceCheck',
            wifiKeys: 'wifiKeys',
        };
    }
    static types() {
        return {
            planId: 'number',
            positionKeys: { 'type': 'array', 'itemType': 'string' },
            retainAttendanceCheck: 'boolean',
            wifiKeys: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.SyncScheduleInfoRequestScheduleInfos = SyncScheduleInfoRequestScheduleInfos;
class UpdateLeaveTypeRequestLeaveCertificate extends $tea.Model {
    static names() {
        return {
            duration: 'duration',
            enable: 'enable',
            promptInformation: 'promptInformation',
            unit: 'unit',
        };
    }
    static types() {
        return {
            duration: 'number',
            enable: 'boolean',
            promptInformation: 'string',
            unit: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateLeaveTypeRequestLeaveCertificate = UpdateLeaveTypeRequestLeaveCertificate;
class UpdateLeaveTypeRequestSubmitTimeRule extends $tea.Model {
    static names() {
        return {
            enableTimeLimit: 'enableTimeLimit',
            timeType: 'timeType',
            timeUnit: 'timeUnit',
            timeValue: 'timeValue',
        };
    }
    static types() {
        return {
            enableTimeLimit: 'boolean',
            timeType: 'string',
            timeUnit: 'string',
            timeValue: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateLeaveTypeRequestSubmitTimeRule = UpdateLeaveTypeRequestSubmitTimeRule;
class UpdateLeaveTypeRequestVisibilityRules extends $tea.Model {
    static names() {
        return {
            type: 'type',
            visible: 'visible',
        };
    }
    static types() {
        return {
            type: 'string',
            visible: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateLeaveTypeRequestVisibilityRules = UpdateLeaveTypeRequestVisibilityRules;
class UpdateLeaveTypeResponseBodyResultLeaveCertificate extends $tea.Model {
    static names() {
        return {
            duration: 'duration',
            enable: 'enable',
            promptInformation: 'promptInformation',
            unit: 'unit',
        };
    }
    static types() {
        return {
            duration: 'number',
            enable: 'boolean',
            promptInformation: 'string',
            unit: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateLeaveTypeResponseBodyResultLeaveCertificate = UpdateLeaveTypeResponseBodyResultLeaveCertificate;
class UpdateLeaveTypeResponseBodyResultSubmitTimeRule extends $tea.Model {
    static names() {
        return {
            enableTimeLimit: 'enableTimeLimit',
            timeType: 'timeType',
            timeUnit: 'timeUnit',
            timeValue: 'timeValue',
        };
    }
    static types() {
        return {
            enableTimeLimit: 'boolean',
            timeType: 'string',
            timeUnit: 'string',
            timeValue: 'number',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateLeaveTypeResponseBodyResultSubmitTimeRule = UpdateLeaveTypeResponseBodyResultSubmitTimeRule;
class UpdateLeaveTypeResponseBodyResultVisibilityRules extends $tea.Model {
    static names() {
        return {
            type: 'type',
            visible: 'visible',
        };
    }
    static types() {
        return {
            type: 'string',
            visible: { 'type': 'array', 'itemType': 'string' },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateLeaveTypeResponseBodyResultVisibilityRules = UpdateLeaveTypeResponseBodyResultVisibilityRules;
class UpdateLeaveTypeResponseBodyResult extends $tea.Model {
    static names() {
        return {
            bizType: 'bizType',
            freedomLeave: 'freedomLeave',
            hoursInPerDay: 'hoursInPerDay',
            leaveCertificate: 'leaveCertificate',
            leaveCode: 'leaveCode',
            leaveName: 'leaveName',
            leaveViewUnit: 'leaveViewUnit',
            naturalDayLeave: 'naturalDayLeave',
            submitTimeRule: 'submitTimeRule',
            visibilityRules: 'visibilityRules',
        };
    }
    static types() {
        return {
            bizType: 'string',
            freedomLeave: 'boolean',
            hoursInPerDay: 'number',
            leaveCertificate: UpdateLeaveTypeResponseBodyResultLeaveCertificate,
            leaveCode: 'string',
            leaveName: 'string',
            leaveViewUnit: 'string',
            naturalDayLeave: 'boolean',
            submitTimeRule: UpdateLeaveTypeResponseBodyResultSubmitTimeRule,
            visibilityRules: { 'type': 'array', 'itemType': UpdateLeaveTypeResponseBodyResultVisibilityRules },
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateLeaveTypeResponseBodyResult = UpdateLeaveTypeResponseBodyResult;
class UpdateVacationQuotaRequestBody extends $tea.Model {
    static names() {
        return {
            actionType: 'actionType',
            endTime: 'endTime',
            leaveCode: 'leaveCode',
            quotaCycle: 'quotaCycle',
            quotaNumPerDay: 'quotaNumPerDay',
            quotaNumPerHour: 'quotaNumPerHour',
            reason: 'reason',
            startTime: 'startTime',
            userId: 'userId',
        };
    }
    static types() {
        return {
            actionType: 'string',
            endTime: 'number',
            leaveCode: 'string',
            quotaCycle: 'string',
            quotaNumPerDay: 'number',
            quotaNumPerHour: 'number',
            reason: 'string',
            startTime: 'number',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateVacationQuotaRequestBody = UpdateVacationQuotaRequestBody;
class UpdateVacationQuotaResponseBodyResultQuota extends $tea.Model {
    static names() {
        return {
            leaveCode: 'leaveCode',
            quotaCycle: 'quotaCycle',
            userId: 'userId',
        };
    }
    static types() {
        return {
            leaveCode: 'string',
            quotaCycle: 'string',
            userId: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateVacationQuotaResponseBodyResultQuota = UpdateVacationQuotaResponseBodyResultQuota;
class UpdateVacationQuotaResponseBodyResult extends $tea.Model {
    static names() {
        return {
            quota: 'quota',
            reason: 'reason',
        };
    }
    static types() {
        return {
            quota: UpdateVacationQuotaResponseBodyResultQuota,
            reason: 'string',
        };
    }
    constructor(map) {
        super(map);
    }
}
exports.UpdateVacationQuotaResponseBodyResult = UpdateVacationQuotaResponseBodyResult;
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 - AddLeaveTypeRequest
     * @param headers - AddLeaveTypeHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns AddLeaveTypeResponse
     */
    async addLeaveTypeWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.opUserId)) {
            query["opUserId"] = request.opUserId;
        }
        let body = {};
        if (!tea_util_1.default.isUnset(request.bizType)) {
            body["bizType"] = request.bizType;
        }
        if (!tea_util_1.default.isUnset(request.extras)) {
            body["extras"] = request.extras;
        }
        if (!tea_util_1.default.isUnset(request.freedomLeave)) {
            body["freedomLeave"] = request.freedomLeave;
        }
        if (!tea_util_1.default.isUnset(request.hoursInPerDay)) {
            body["hoursInPerDay"] = request.hoursInPerDay;
        }
        if (!tea_util_1.default.isUnset(request.leaveCertificate)) {
            body["leaveCertificate"] = request.leaveCertificate;
        }
        if (!tea_util_1.default.isUnset(request.leaveHourCeil)) {
            body["leaveHourCeil"] = request.leaveHourCeil;
        }
        if (!tea_util_1.default.isUnset(request.leaveName)) {
            body["leaveName"] = request.leaveName;
        }
        if (!tea_util_1.default.isUnset(request.leaveTimeCeil)) {
            body["leaveTimeCeil"] = request.leaveTimeCeil;
        }
        if (!tea_util_1.default.isUnset(request.leaveTimeCeilMinUnit)) {
            body["leaveTimeCeilMinUnit"] = request.leaveTimeCeilMinUnit;
        }
        if (!tea_util_1.default.isUnset(request.leaveViewUnit)) {
            body["leaveViewUnit"] = request.leaveViewUnit;
        }
        if (!tea_util_1.default.isUnset(request.maxLeaveTime)) {
            body["maxLeaveTime"] = request.maxLeaveTime;
        }
        if (!tea_util_1.default.isUnset(request.minLeaveHour)) {
            body["minLeaveHour"] = request.minLeaveHour;
        }
        if (!tea_util_1.default.isUnset(request.naturalDayLeave)) {
            body["naturalDayLeave"] = request.naturalDayLeave;
        }
        if (!tea_util_1.default.isUnset(request.paidLeave)) {
            body["paidLeave"] = request.paidLeave;
        }
        if (!tea_util_1.default.isUnset(request.submitTimeRule)) {
            body["submitTimeRule"] = request.submitTimeRule;
        }
        if (!tea_util_1.default.isUnset(request.visibilityRules)) {
            body["visibilityRules"] = request.visibilityRules;
        }
        if (!tea_util_1.default.isUnset(request.whenCanLeave)) {
            body["whenCanLeave"] = request.whenCanLeave;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "AddLeaveType",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/leaves/types`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new AddLeaveTypeResponse({}));
    }
    /**
     * 添加假期规则
     *
     * @param request - AddLeaveTypeRequest
     * @returns AddLeaveTypeResponse
     */
    async addLeaveType(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new AddLeaveTypeHeaders({});
        return await this.addLeaveTypeWithOptions(request, headers, runtime);
    }
    /**
     * 批量给考勤组添加蓝牙设备
     *
     * @param request - AttendanceBleDevicesAddRequest
     * @param headers - AttendanceBleDevicesAddHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns AttendanceBleDevicesAddResponse
     */
    async attendanceBleDevicesAddWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.deviceIdList)) {
            body["deviceIdList"] = request.deviceIdList;
        }
        if (!tea_util_1.default.isUnset(request.groupKey)) {
            body["groupKey"] = request.groupKey;
        }
        if (!tea_util_1.default.isUnset(request.opUserId)) {
            body["opUserId"] = request.opUserId;
        }
        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: "AttendanceBleDevicesAdd",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/group/bledevices`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "json",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new AttendanceBleDevicesAddResponse({}));
    }
    /**
     * 批量给考勤组添加蓝牙设备
     *
     * @param request - AttendanceBleDevicesAddRequest
     * @returns AttendanceBleDevicesAddResponse
     */
    async attendanceBleDevicesAdd(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new AttendanceBleDevicesAddHeaders({});
        return await this.attendanceBleDevicesAddWithOptions(request, headers, runtime);
    }
    /**
     * 批量查询蓝牙设备
     *
     * @param request - AttendanceBleDevicesQueryRequest
     * @param headers - AttendanceBleDevicesQueryHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns AttendanceBleDevicesQueryResponse
     */
    async attendanceBleDevicesQueryWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.groupKey)) {
            body["groupKey"] = request.groupKey;
        }
        if (!tea_util_1.default.isUnset(request.opUserId)) {
            body["opUserId"] = request.opUserId;
        }
        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: "AttendanceBleDevicesQuery",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/group/bledevices/query`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "json",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new AttendanceBleDevicesQueryResponse({}));
    }
    /**
     * 批量查询蓝牙设备
     *
     * @param request - AttendanceBleDevicesQueryRequest
     * @returns AttendanceBleDevicesQueryResponse
     */
    async attendanceBleDevicesQuery(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new AttendanceBleDevicesQueryHeaders({});
        return await this.attendanceBleDevicesQueryWithOptions(request, headers, runtime);
    }
    /**
     * 批量删除考勤组的蓝牙设备
     *
     * @param request - AttendanceBleDevicesRemoveRequest
     * @param headers - AttendanceBleDevicesRemoveHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns AttendanceBleDevicesRemoveResponse
     */
    async attendanceBleDevicesRemoveWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.deviceIdList)) {
            body["deviceIdList"] = request.deviceIdList;
        }
        if (!tea_util_1.default.isUnset(request.groupKey)) {
            body["groupKey"] = request.groupKey;
        }
        if (!tea_util_1.default.isUnset(request.opUserId)) {
            body["opUserId"] = request.opUserId;
        }
        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: "AttendanceBleDevicesRemove",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/group/bledevices/remove`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "json",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new AttendanceBleDevicesRemoveResponse({}));
    }
    /**
     * 批量删除考勤组的蓝牙设备
     *
     * @param request - AttendanceBleDevicesRemoveRequest
     * @returns AttendanceBleDevicesRemoveResponse
     */
    async attendanceBleDevicesRemove(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new AttendanceBleDevicesRemoveHeaders({});
        return await this.attendanceBleDevicesRemoveWithOptions(request, headers, runtime);
    }
    /**
     * 批量修改考勤结果
     *
     * @param request - BatchBossCheckRequest
     * @param headers - BatchBossCheckHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns BatchBossCheckResponse
     */
    async batchBossCheckWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.opUserId)) {
            query["opUserId"] = request.opUserId;
        }
        let body = {};
        if (!tea_util_1.default.isUnset(request.models)) {
            body["models"] = request.models;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "BatchBossCheck",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/results/batch`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new BatchBossCheckResponse({}));
    }
    /**
     * 批量修改考勤结果
     *
     * @param request - BatchBossCheckRequest
     * @returns BatchBossCheckResponse
     */
    async batchBossCheck(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new BatchBossCheckHeaders({});
        return await this.batchBossCheckWithOptions(request, headers, runtime);
    }
    /**
     * 预计算时长
     *
     * @param request - CalculateDurationRequest
     * @param headers - CalculateDurationHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns CalculateDurationResponse
     */
    async calculateDurationWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.userId)) {
            query["userId"] = request.userId;
        }
        let body = {};
        if (!tea_util_1.default.isUnset(request.bizType)) {
            body["bizType"] = request.bizType;
        }
        if (!tea_util_1.default.isUnset(request.calculateModel)) {
            body["calculateModel"] = request.calculateModel;
        }
        if (!tea_util_1.default.isUnset(request.durationUnit)) {
            body["durationUnit"] = request.durationUnit;
        }
        if (!tea_util_1.default.isUnset(request.fromTime)) {
            body["fromTime"] = request.fromTime;
        }
        if (!tea_util_1.default.isUnset(request.leaveCode)) {
            body["leaveCode"] = request.leaveCode;
        }
        if (!tea_util_1.default.isUnset(request.toTime)) {
            body["toTime"] = request.toTime;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "CalculateDuration",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/approvals/durations/calculate`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new CalculateDurationResponse({}));
    }
    /**
     * 预计算时长
     *
     * @param request - CalculateDurationRequest
     * @returns CalculateDurationResponse
     */
    async calculateDuration(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new CalculateDurationHeaders({});
        return await this.calculateDurationWithOptions(request, headers, runtime);
    }
    /**
     * 针对某些员工某段时间内封账状态的查询
     *
     * @param request - CheckClosingAccountRequest
     * @param headers - CheckClosingAccountHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns CheckClosingAccountResponse
     */
    async checkClosingAccountWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.bizCode)) {
            body["bizCode"] = request.bizCode;
        }
        if (!tea_util_1.default.isUnset(request.userIds)) {
            body["userIds"] = request.userIds;
        }
        if (!tea_util_1.default.isUnset(request.userTimeRange)) {
            body["userTimeRange"] = request.userTimeRange;
        }
        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: "CheckClosingAccount",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/closingAccounts/status/query`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "json",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new CheckClosingAccountResponse({}));
    }
    /**
     * 针对某些员工某段时间内封账状态的查询
     *
     * @param request - CheckClosingAccountRequest
     * @returns CheckClosingAccountResponse
     */
    async checkClosingAccount(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new CheckClosingAccountHeaders({});
        return await this.checkClosingAccountWithOptions(request, headers, runtime);
    }
    /**
     * 考勤资源的写权限查询
     *
     * @param request - CheckWritePermissionRequest
     * @param headers - CheckWritePermissionHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns CheckWritePermissionResponse
     */
    async checkWritePermissionWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.category)) {
            body["category"] = request.category;
        }
        if (!tea_util_1.default.isUnset(request.entityIds)) {
            body["entityIds"] = request.entityIds;
        }
        if (!tea_util_1.default.isUnset(request.opUserId)) {
            body["opUserId"] = request.opUserId;
        }
        if (!tea_util_1.default.isUnset(request.resourceKey)) {
            body["resourceKey"] = request.resourceKey;
        }
        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: "CheckWritePermission",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/writePermissions/query`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new CheckWritePermissionResponse({}));
    }
    /**
     * 考勤资源的写权限查询
     *
     * @param request - CheckWritePermissionRequest
     * @returns CheckWritePermissionResponse
     */
    async checkWritePermission(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new CheckWritePermissionHeaders({});
        return await this.checkWritePermissionWithOptions(request, headers, runtime);
    }
    /**
     * 创建考勤打卡审批单
     *
     * @param request - CreateApproveRequest
     * @param headers - CreateApproveHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns CreateApproveResponse
     */
    async createApproveWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.approveId)) {
            body["approveId"] = request.approveId;
        }
        if (!tea_util_1.default.isUnset(request.opUserid)) {
            body["opUserid"] = request.opUserid;
        }
        if (!tea_util_1.default.isUnset(request.punchParam)) {
            body["punchParam"] = request.punchParam;
        }
        if (!tea_util_1.default.isUnset(request.subType)) {
            body["subType"] = request.subType;
        }
        if (!tea_util_1.default.isUnset(request.tagName)) {
            body["tagName"] = request.tagName;
        }
        if (!tea_util_1.default.isUnset(request.userid)) {
            body["userid"] = request.userid;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "CreateApprove",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/approves`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "json",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new CreateApproveResponse({}));
    }
    /**
     * 创建考勤打卡审批单
     *
     * @param request - CreateApproveRequest
     * @returns CreateApproveResponse
     */
    async createApprove(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new CreateApproveHeaders({});
        return await this.createApproveWithOptions(request, headers, runtime);
    }
    /**
     * 撤销请假
     *
     * @param request - DeleteLeaveRequestRequest
     * @param headers - DeleteLeaveRequestHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns DeleteLeaveRequestResponse
     */
    async deleteLeaveRequestWithOptions(unionId, request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.outerId)) {
            body["outerId"] = request.outerId;
        }
        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: "DeleteLeaveRequest",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/users/${unionId}/vacations/records/revoke`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new DeleteLeaveRequestResponse({}));
    }
    /**
     * 撤销请假
     *
     * @param request - DeleteLeaveRequestRequest
     * @returns DeleteLeaveRequestResponse
     */
    async deleteLeaveRequest(unionId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new DeleteLeaveRequestHeaders({});
        return await this.deleteLeaveRequestWithOptions(unionId, request, headers, runtime);
    }
    /**
     * 删除水印模板
     *
     * @param request - DeleteWaterMarkTemplateRequest
     * @param headers - DeleteWaterMarkTemplateHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns DeleteWaterMarkTemplateResponse
     */
    async deleteWaterMarkTemplateWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.formCode)) {
            query["formCode"] = request.formCode;
        }
        if (!tea_util_1.default.isUnset(request.formContent)) {
            query["formContent"] = request.formContent;
        }
        if (!tea_util_1.default.isUnset(request.openConversationId)) {
            query["openConversationId"] = request.openConversationId;
        }
        if (!tea_util_1.default.isUnset(request.systemTemplate)) {
            query["systemTemplate"] = request.systemTemplate;
        }
        if (!tea_util_1.default.isUnset(request.userId)) {
            query["userId"] = request.userId;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
        });
        let params = new $OpenApi.Params({
            action: "DeleteWaterMarkTemplate",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/watermarks/templates`,
            method: "DELETE",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new DeleteWaterMarkTemplateResponse({}));
    }
    /**
     * 删除水印模板
     *
     * @param request - DeleteWaterMarkTemplateRequest
     * @returns DeleteWaterMarkTemplateResponse
     */
    async deleteWaterMarkTemplate(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new DeleteWaterMarkTemplateHeaders({});
        return await this.deleteWaterMarkTemplateWithOptions(request, headers, runtime);
    }
    /**
     * 钉钉安全检查
     *
     * @param request - DingTalkSecurityCheckRequest
     * @param headers - DingTalkSecurityCheckHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns DingTalkSecurityCheckResponse
     */
    async dingTalkSecurityCheckWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.clientVer)) {
            body["clientVer"] = request.clientVer;
        }
        if (!tea_util_1.default.isUnset(request.platform)) {
            body["platform"] = request.platform;
        }
        if (!tea_util_1.default.isUnset(request.platformVer)) {
            body["platformVer"] = request.platformVer;
        }
        if (!tea_util_1.default.isUnset(request.sec)) {
            body["sec"] = request.sec;
        }
        if (!tea_util_1.default.isUnset(request.userId)) {
            body["userId"] = request.userId;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "DingTalkSecurityCheck",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/securities/check`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new DingTalkSecurityCheckResponse({}));
    }
    /**
     * 钉钉安全检查
     *
     * @param request - DingTalkSecurityCheckRequest
     * @returns DingTalkSecurityCheckResponse
     */
    async dingTalkSecurityCheck(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new DingTalkSecurityCheckHeaders({});
        return await this.dingTalkSecurityCheckWithOptions(request, headers, runtime);
    }
    /**
     * 查询管理员管理范围下的userid
     *
     * @param request - GetATManageScopeRequest
     * @param headers - GetATManageScopeHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetATManageScopeResponse
     */
    async getATManageScopeWithOptions(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.userId)) {
            query["userId"] = request.userId;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
        });
        let params = new $OpenApi.Params({
            action: "GetATManageScope",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/manageScopes`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetATManageScopeResponse({}));
    }
    /**
     * 查询管理员管理范围下的userid
     *
     * @param request - GetATManageScopeRequest
     * @returns GetATManageScopeResponse
     */
    async getATManageScope(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetATManageScopeHeaders({});
        return await this.getATManageScopeWithOptions(request, headers, runtime);
    }
    /**
     * 获取补卡规则列表
     *
     * @param request - GetAdjustmentsRequest
     * @param headers - GetAdjustmentsHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetAdjustmentsResponse
     */
    async getAdjustmentsWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.pageNumber)) {
            query["pageNumber"] = request.pageNumber;
        }
        if (!tea_util_1.default.isUnset(request.pageSize)) {
            query["pageSize"] = request.pageSize;
        }
        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: "GetAdjustments",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/adjustments`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetAdjustmentsResponse({}));
    }
    /**
     * 获取补卡规则列表
     *
     * @param request - GetAdjustmentsRequest
     * @returns GetAdjustmentsResponse
     */
    async getAdjustments(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetAdjustmentsHeaders({});
        return await this.getAdjustmentsWithOptions(request, headers, runtime);
    }
    /**
     * 获取水印打卡模板
     *
     * @param request - GetCheckInSchemaTemplateRequest
     * @param headers - GetCheckInSchemaTemplateHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetCheckInSchemaTemplateResponse
     */
    async getCheckInSchemaTemplateWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.bizCode)) {
            query["bizCode"] = request.bizCode;
        }
        if (!tea_util_1.default.isUnset(request.openConversationId)) {
            query["openConversationId"] = request.openConversationId;
        }
        if (!tea_util_1.default.isUnset(request.sceneCode)) {
            query["sceneCode"] = request.sceneCode;
        }
        if (!tea_util_1.default.isUnset(request.userId)) {
            query["userId"] = request.userId;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
        });
        let params = new $OpenApi.Params({
            action: "GetCheckInSchemaTemplate",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/watermarks/templates`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetCheckInSchemaTemplateResponse({}));
    }
    /**
     * 获取水印打卡模板
     *
     * @param request - GetCheckInSchemaTemplateRequest
     * @returns GetCheckInSchemaTemplateResponse
     */
    async getCheckInSchemaTemplate(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetCheckInSchemaTemplateHeaders({});
        return await this.getCheckInSchemaTemplateWithOptions(request, headers, runtime);
    }
    /**
     * 调用本接口，获取用户签到记录。
     *
     * @param request - GetCheckinRecordByUserRequest
     * @param headers - GetCheckinRecordByUserHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetCheckinRecordByUserResponse
     */
    async getCheckinRecordByUserWithOptions(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.maxResults)) {
            body["maxResults"] = request.maxResults;
        }
        if (!tea_util_1.default.isUnset(request.nextToken)) {
            body["nextToken"] = request.nextToken;
        }
        if (!tea_util_1.default.isUnset(request.operatorUserId)) {
            body["operatorUserId"] = request.operatorUserId;
        }
        if (!tea_util_1.default.isUnset(request.startTime)) {
            body["startTime"] = request.startTime;
        }
        if (!tea_util_1.default.isUnset(request.userIdList)) {
            body["userIdList"] = request.userIdList;
        }
        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: "GetCheckinRecordByUser",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/checkin/records/query`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetCheckinRecordByUserResponse({}));
    }
    /**
     * 调用本接口，获取用户签到记录。
     *
     * @param request - GetCheckinRecordByUserRequest
     * @returns GetCheckinRecordByUserResponse
     */
    async getCheckinRecordByUser(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetCheckinRecordByUserHeaders({});
        return await this.getCheckinRecordByUserWithOptions(request, headers, runtime);
    }
    /**
     * 班次查询（包含已删除班次）
     *
     * @param headers - GetClassWithDeletedHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetClassWithDeletedResponse
     */
    async getClassWithDeletedWithOptions(classId, 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: "GetClassWithDeleted",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/classWithDeleted/${classId}`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetClassWithDeletedResponse({}));
    }
    /**
     * 班次查询（包含已删除班次）
     * @returns GetClassWithDeletedResponse
     */
    async getClassWithDeleted(classId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetClassWithDeletedHeaders({});
        return await this.getClassWithDeletedWithOptions(classId, headers, runtime);
    }
    /**
     * 查询指定用户的封账规则
     *
     * @param request - GetClosingAccountsRequest
     * @param headers - GetClosingAccountsHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetClosingAccountsResponse
     */
    async getClosingAccountsWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.userIds)) {
            body["userIds"] = request.userIds;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "GetClosingAccounts",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/closingAccounts/rules/query`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetClosingAccountsResponse({}));
    }
    /**
     * 查询指定用户的封账规则
     *
     * @param request - GetClosingAccountsRequest
     * @returns GetClosingAccountsResponse
     */
    async getClosingAccounts(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetClosingAccountsHeaders({});
        return await this.getClosingAccountsWithOptions(request, headers, runtime);
    }
    /**
     * 获取多个用户的智能考勤报表的列值
     *
     * @param request - GetColumnvalsRequest
     * @param headers - GetColumnvalsHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetColumnvalsResponse
     */
    async getColumnvalsWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.columnIdList)) {
            body["columnIdList"] = request.columnIdList;
        }
        if (!tea_util_1.default.isUnset(request.fromDate)) {
            body["fromDate"] = request.fromDate;
        }
        if (!tea_util_1.default.isUnset(request.toDate)) {
            body["toDate"] = request.toDate;
        }
        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: "GetColumnvals",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/columnValues/query`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetColumnvalsResponse({}));
    }
    /**
     * 获取多个用户的智能考勤报表的列值
     *
     * @param request - GetColumnvalsRequest
     * @returns GetColumnvalsResponse
     */
    async getColumnvals(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetColumnvalsHeaders({});
        return await this.getColumnvalsWithOptions(request, headers, runtime);
    }
    /**
     * 批量查询员工假期余额变更记录
     *
     * @param request - GetLeaveRecordsRequest
     * @param headers - GetLeaveRecordsHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetLeaveRecordsResponse
     */
    async getLeaveRecordsWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.leaveCode)) {
            body["leaveCode"] = request.leaveCode;
        }
        if (!tea_util_1.default.isUnset(request.opUserId)) {
            body["opUserId"] = request.opUserId;
        }
        if (!tea_util_1.default.isUnset(request.pageNumber)) {
            body["pageNumber"] = request.pageNumber;
        }
        if (!tea_util_1.default.isUnset(request.pageSize)) {
            body["pageSize"] = request.pageSize;
        }
        if (!tea_util_1.default.isUnset(request.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: "GetLeaveRecords",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/vacations/records/query`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetLeaveRecordsResponse({}));
    }
    /**
     * 批量查询员工假期余额变更记录
     *
     * @param request - GetLeaveRecordsRequest
     * @returns GetLeaveRecordsResponse
     */
    async getLeaveRecords(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetLeaveRecordsHeaders({});
        return await this.getLeaveRecordsWithOptions(request, headers, runtime);
    }
    /**
     * 查询假期规则列表
     *
     * @param request - GetLeaveTypeRequest
     * @param headers - GetLeaveTypeHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetLeaveTypeResponse
     */
    async getLeaveTypeWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.opUserId)) {
            query["opUserId"] = request.opUserId;
        }
        if (!tea_util_1.default.isUnset(request.vacationSource)) {
            query["vacationSource"] = request.vacationSource;
        }
        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: "GetLeaveType",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/leaves/types`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetLeaveTypeResponse({}));
    }
    /**
     * 查询假期规则列表
     *
     * @param request - GetLeaveTypeRequest
     * @returns GetLeaveTypeResponse
     */
    async getLeaveType(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetLeaveTypeHeaders({});
        return await this.getLeaveTypeWithOptions(request, headers, runtime);
    }
    /**
     * 根据设备id获取考勤机信息
     *
     * @param headers - GetMachineHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetMachineResponse
     */
    async getMachineWithOptions(devId, 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: "GetMachine",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/machines/${devId}`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "json",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetMachineResponse({}));
    }
    /**
     * 根据设备id获取考勤机信息
     * @returns GetMachineResponse
     */
    async getMachine(devId) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetMachineHeaders({});
        return await this.getMachineWithOptions(devId, headers, runtime);
    }
    /**
     * 根据设备id获取员工信息
     *
     * @param request - GetMachineUserRequest
     * @param headers - GetMachineUserHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetMachineUserResponse
     */
    async getMachineUserWithOptions(devId, 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: "GetMachineUser",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/machines/getUser/${devId}`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "json",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetMachineUserResponse({}));
    }
    /**
     * 根据设备id获取员工信息
     *
     * @param request - GetMachineUserRequest
     * @returns GetMachineUserResponse
     */
    async getMachineUser(devId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetMachineUserHeaders({});
        return await this.getMachineUserWithOptions(devId, request, headers, runtime);
    }
    /**
     * 假期透支信息查询
     *
     * @param request - GetOverdraftInfoRequest
     * @param headers - GetOverdraftInfoHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetOverdraftInfoResponse
     */
    async getOverdraftInfoWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.leaveCode)) {
            body["leaveCode"] = request.leaveCode;
        }
        if (!tea_util_1.default.isUnset(request.userIdList)) {
            body["userIdList"] = request.userIdList;
        }
        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: "GetOverdraftInfo",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/vacations/overdraft/get`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetOverdraftInfoResponse({}));
    }
    /**
     * 假期透支信息查询
     *
     * @param request - GetOverdraftInfoRequest
     * @returns GetOverdraftInfoResponse
     */
    async getOverdraftInfo(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetOverdraftInfoHeaders({});
        return await this.getOverdraftInfoWithOptions(request, headers, runtime);
    }
    /**
     * 批量获取加班规则设置
     *
     * @param request - GetOvertimeSettingRequest
     * @param headers - GetOvertimeSettingHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetOvertimeSettingResponse
     */
    async getOvertimeSettingWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.overtimeSettingIds)) {
            body["overtimeSettingIds"] = request.overtimeSettingIds;
        }
        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: "GetOvertimeSetting",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/overtimeSettings/query`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetOvertimeSettingResponse({}));
    }
    /**
     * 批量获取加班规则设置
     *
     * @param request - GetOvertimeSettingRequest
     * @returns GetOvertimeSettingResponse
     */
    async getOvertimeSetting(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetOvertimeSettingHeaders({});
        return await this.getOvertimeSettingWithOptions(request, headers, runtime);
    }
    /**
     * 班次详情
     *
     * @param request - GetShiftRequest
     * @param headers - GetShiftHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetShiftResponse
     */
    async getShiftWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.opUserId)) {
            query["opUserId"] = request.opUserId;
        }
        if (!tea_util_1.default.isUnset(request.shiftId)) {
            query["shiftId"] = request.shiftId;
        }
        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: "GetShift",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/shifts`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetShiftResponse({}));
    }
    /**
     * 班次详情
     *
     * @param request - GetShiftRequest
     * @returns GetShiftResponse
     */
    async getShift(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetShiftHeaders({});
        return await this.getShiftWithOptions(request, headers, runtime);
    }
    /**
     * 获取考勤组列表详情
     *
     * @param request - GetSimpleGroupsRequest
     * @param headers - GetSimpleGroupsHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetSimpleGroupsResponse
     */
    async getSimpleGroupsWithOptions(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: "GetSimpleGroups",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/groupDetails`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetSimpleGroupsResponse({}));
    }
    /**
     * 获取考勤组列表详情
     *
     * @param request - GetSimpleGroupsRequest
     * @returns GetSimpleGroupsResponse
     */
    async getSimpleGroups(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetSimpleGroupsHeaders({});
        return await this.getSimpleGroupsWithOptions(request, headers, runtime);
    }
    /**
     * 加班规则列表
     *
     * @param request - GetSimpleOvertimeSettingRequest
     * @param headers - GetSimpleOvertimeSettingHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetSimpleOvertimeSettingResponse
     */
    async getSimpleOvertimeSettingWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.pageNumber)) {
            query["pageNumber"] = request.pageNumber;
        }
        if (!tea_util_1.default.isUnset(request.pageSize)) {
            query["pageSize"] = request.pageSize;
        }
        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: "GetSimpleOvertimeSetting",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/overtimeSettings`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetSimpleOvertimeSettingResponse({}));
    }
    /**
     * 加班规则列表
     *
     * @param request - GetSimpleOvertimeSettingRequest
     * @returns GetSimpleOvertimeSettingResponse
     */
    async getSimpleOvertimeSetting(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetSimpleOvertimeSettingHeaders({});
        return await this.getSimpleOvertimeSettingWithOptions(request, headers, runtime);
    }
    /**
     * 查询员工某段时间的假期
     *
     * @param request - GetUserHolidaysRequest
     * @param headers - GetUserHolidaysHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GetUserHolidaysResponse
     */
    async getUserHolidaysWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.userIds)) {
            body["userIds"] = request.userIds;
        }
        if (!tea_util_1.default.isUnset(request.workDateFrom)) {
            body["workDateFrom"] = request.workDateFrom;
        }
        if (!tea_util_1.default.isUnset(request.workDateTo)) {
            body["workDateTo"] = request.workDateTo;
        }
        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: "GetUserHolidays",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/holidays`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "json",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GetUserHolidaysResponse({}));
    }
    /**
     * 查询员工某段时间的假期
     *
     * @param request - GetUserHolidaysRequest
     * @returns GetUserHolidaysResponse
     */
    async getUserHolidays(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GetUserHolidaysHeaders({});
        return await this.getUserHolidaysWithOptions(request, headers, runtime);
    }
    /**
     * 创建考勤组
     *
     * @param request - GroupAddRequest
     * @param headers - GroupAddHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GroupAddResponse
     */
    async groupAddWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.opUserId)) {
            query["opUserId"] = request.opUserId;
        }
        let body = {};
        if (!tea_util_1.default.isUnset(request.adjustmentSettingId)) {
            body["adjustmentSettingId"] = request.adjustmentSettingId;
        }
        if (!tea_util_1.default.isUnset(request.bleDeviceList)) {
            body["bleDeviceList"] = request.bleDeviceList;
        }
        if (!tea_util_1.default.isUnset(request.checkNeedHealthyCode)) {
            body["checkNeedHealthyCode"] = request.checkNeedHealthyCode;
        }
        if (!tea_util_1.default.isUnset(request.defaultClassId)) {
            body["defaultClassId"] = request.defaultClassId;
        }
        if (!tea_util_1.default.isUnset(request.disableCheckWhenRest)) {
            body["disableCheckWhenRest"] = request.disableCheckWhenRest;
        }
        if (!tea_util_1.default.isUnset(request.disableCheckWithoutSchedule)) {
            body["disableCheckWithoutSchedule"] = request.disableCheckWithoutSchedule;
        }
        if (!tea_util_1.default.isUnset(request.enableCameraCheck)) {
            body["enableCameraCheck"] = request.enableCameraCheck;
        }
        if (!tea_util_1.default.isUnset(request.enableEmpSelectClass)) {
            body["enableEmpSelectClass"] = request.enableEmpSelectClass;
        }
        if (!tea_util_1.default.isUnset(request.enableFaceCheck)) {
            body["enableFaceCheck"] = request.enableFaceCheck;
        }
        if (!tea_util_1.default.isUnset(request.enableFaceStrictMode)) {
            body["enableFaceStrictMode"] = request.enableFaceStrictMode;
        }
        if (!tea_util_1.default.isUnset(request.enableNextDay)) {
            body["enableNextDay"] = request.enableNextDay;
        }
        if (!tea_util_1.default.isUnset(request.enableOutSideUpdateNormalCheck)) {
            body["enableOutSideUpdateNormalCheck"] = request.enableOutSideUpdateNormalCheck;
        }
        if (!tea_util_1.default.isUnset(request.enableOutsideApply)) {
            body["enableOutsideApply"] = request.enableOutsideApply;
        }
        if (!tea_util_1.default.isUnset(request.enableOutsideCameraCheck)) {
            body["enableOutsideCameraCheck"] = request.enableOutsideCameraCheck;
        }
        if (!tea_util_1.default.isUnset(request.enableOutsideCheck)) {
            body["enableOutsideCheck"] = request.enableOutsideCheck;
        }
        if (!tea_util_1.default.isUnset(request.enableOutsideRemark)) {
            body["enableOutsideRemark"] = request.enableOutsideRemark;
        }
        if (!tea_util_1.default.isUnset(request.enablePositionBle)) {
            body["enablePositionBle"] = request.enablePositionBle;
        }
        if (!tea_util_1.default.isUnset(request.enableTrimDistance)) {
            body["enableTrimDistance"] = request.enableTrimDistance;
        }
        if (!tea_util_1.default.isUnset(request.forbidHideOutSideAddress)) {
            body["forbidHideOutSideAddress"] = request.forbidHideOutSideAddress;
        }
        if (!tea_util_1.default.isUnset(request.freeCheckDemandWorkMinutes)) {
            body["freeCheckDemandWorkMinutes"] = request.freeCheckDemandWorkMinutes;
        }
        if (!tea_util_1.default.isUnset(request.freeCheckSetting)) {
            body["freeCheckSetting"] = request.freeCheckSetting;
        }
        if (!tea_util_1.default.isUnset(request.freeCheckTypeId)) {
            body["freeCheckTypeId"] = request.freeCheckTypeId;
        }
        if (!tea_util_1.default.isUnset(request.freecheckDayStartMinOffset)) {
            body["freecheckDayStartMinOffset"] = request.freecheckDayStartMinOffset;
        }
        if (!tea_util_1.default.isUnset(request.freecheckWorkDays)) {
            body["freecheckWorkDays"] = request.freecheckWorkDays;
        }
        if (!tea_util_1.default.isUnset(request.groupId)) {
            body["groupId"] = request.groupId;
        }
        if (!tea_util_1.default.isUnset(request.groupName)) {
            body["groupName"] = request.groupName;
        }
        if (!tea_util_1.default.isUnset(request.managerList)) {
            body["managerList"] = request.managerList;
        }
        if (!tea_util_1.default.isUnset(request.members)) {
            body["members"] = request.members;
        }
        if (!tea_util_1.default.isUnset(request.modifyMember)) {
            body["modifyMember"] = request.modifyMember;
        }
        if (!tea_util_1.default.isUnset(request.offset)) {
            body["offset"] = request.offset;
        }
        if (!tea_util_1.default.isUnset(request.onlyMachineCheck)) {
            body["onlyMachineCheck"] = request.onlyMachineCheck;
        }
        if (!tea_util_1.default.isUnset(request.openCameraCheck)) {
            body["openCameraCheck"] = request.openCameraCheck;
        }
        if (!tea_util_1.default.isUnset(request.openFaceCheck)) {
            body["openFaceCheck"] = request.openFaceCheck;
        }
        if (!tea_util_1.default.isUnset(request.outsideCheckApproveModeId)) {
            body["outsideCheckApproveModeId"] = request.outsideCheckApproveModeId;
        }
        if (!tea_util_1.default.isUnset(request.overtimeSettingId)) {
            body["overtimeSettingId"] = request.overtimeSettingId;
        }
        if (!tea_util_1.default.isUnset(request.owner)) {
            body["owner"] = request.owner;
        }
        if (!tea_util_1.default.isUnset(request.positions)) {
            body["positions"] = request.positions;
        }
        if (!tea_util_1.default.isUnset(request.resourcePermissionMap)) {
            body["resourcePermissionMap"] = request.resourcePermissionMap;
        }
        if (!tea_util_1.default.isUnset(request.shiftVOList)) {
            body["shiftVOList"] = request.shiftVOList;
        }
        if (!tea_util_1.default.isUnset(request.skipHolidays)) {
            body["skipHolidays"] = request.skipHolidays;
        }
        if (!tea_util_1.default.isUnset(request.specialDays)) {
            body["specialDays"] = request.specialDays;
        }
        if (!tea_util_1.default.isUnset(request.trimDistance)) {
            body["trimDistance"] = request.trimDistance;
        }
        if (!tea_util_1.default.isUnset(request.type)) {
            body["type"] = request.type;
        }
        if (!tea_util_1.default.isUnset(request.wifis)) {
            body["wifis"] = request.wifis;
        }
        if (!tea_util_1.default.isUnset(request.workdayClassList)) {
            body["workdayClassList"] = request.workdayClassList;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "GroupAdd",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/groups`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GroupAddResponse({}));
    }
    /**
     * 创建考勤组
     *
     * @param request - GroupAddRequest
     * @returns GroupAddResponse
     */
    async groupAdd(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GroupAddHeaders({});
        return await this.groupAddWithOptions(request, headers, runtime);
    }
    /**
     * 修改考勤组
     *
     * @param request - GroupUpdateRequest
     * @param headers - GroupUpdateHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns GroupUpdateResponse
     */
    async groupUpdateWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.opUserId)) {
            query["opUserId"] = request.opUserId;
        }
        let body = {};
        if (!tea_util_1.default.isUnset(request.adjustmentSettingId)) {
            body["adjustmentSettingId"] = request.adjustmentSettingId;
        }
        if (!tea_util_1.default.isUnset(request.defaultClassId)) {
            body["defaultClassId"] = request.defaultClassId;
        }
        if (!tea_util_1.default.isUnset(request.disableCheckWhenRest)) {
            body["disableCheckWhenRest"] = request.disableCheckWhenRest;
        }
        if (!tea_util_1.default.isUnset(request.disableCheckWithoutSchedule)) {
            body["disableCheckWithoutSchedule"] = request.disableCheckWithoutSchedule;
        }
        if (!tea_util_1.default.isUnset(request.enableCameraCheck)) {
            body["enableCameraCheck"] = request.enableCameraCheck;
        }
        if (!tea_util_1.default.isUnset(request.enableEmpSelectClass)) {
            body["enableEmpSelectClass"] = request.enableEmpSelectClass;
        }
        if (!tea_util_1.default.isUnset(request.enableFaceCheck)) {
            body["enableFaceCheck"] = request.enableFaceCheck;
        }
        if (!tea_util_1.default.isUnset(request.enableFaceStrictMode)) {
            body["enableFaceStrictMode"] = request.enableFaceStrictMode;
        }
        if (!tea_util_1.default.isUnset(request.enableOutSideUpdateNormalCheck)) {
            body["enableOutSideUpdateNormalCheck"] = request.enableOutSideUpdateNormalCheck;
        }
        if (!tea_util_1.default.isUnset(request.enableOutsideApply)) {
            body["enableOutsideApply"] = request.enableOutsideApply;
        }
        if (!tea_util_1.default.isUnset(request.enableOutsideCameraCheck)) {
            body["enableOutsideCameraCheck"] = request.enableOutsideCameraCheck;
        }
        if (!tea_util_1.default.isUnset(request.enableOutsideCheck)) {
            body["enableOutsideCheck"] = request.enableOutsideCheck;
        }
        if (!tea_util_1.default.isUnset(request.enableOutsideRemark)) {
            body["enableOutsideRemark"] = request.enableOutsideRemark;
        }
        if (!tea_util_1.default.isUnset(request.enableTrimDistance)) {
            body["enableTrimDistance"] = request.enableTrimDistance;
        }
        if (!tea_util_1.default.isUnset(request.forbidHideOutSideAddress)) {
            body["forbidHideOutSideAddress"] = request.forbidHideOutSideAddress;
        }
        if (!tea_util_1.default.isUnset(request.freeCheckSetting)) {
            body["freeCheckSetting"] = request.freeCheckSetting;
        }
        if (!tea_util_1.default.isUnset(request.freeCheckTypeId)) {
            body["freeCheckTypeId"] = request.freeCheckTypeId;
        }
        if (!tea_util_1.default.isUnset(request.freecheckDayStartMinOffset)) {
            body["freecheckDayStartMinOffset"] = request.freecheckDayStartMinOffset;
        }
        if (!tea_util_1.default.isUnset(request.groupId)) {
            body["groupId"] = request.groupId;
        }
        if (!tea_util_1.default.isUnset(request.groupName)) {
            body["groupName"] = request.groupName;
        }
        if (!tea_util_1.default.isUnset(request.managerList)) {
            body["managerList"] = request.managerList;
        }
        if (!tea_util_1.default.isUnset(request.offset)) {
            body["offset"] = request.offset;
        }
        if (!tea_util_1.default.isUnset(request.onlyMachineCheck)) {
            body["onlyMachineCheck"] = request.onlyMachineCheck;
        }
        if (!tea_util_1.default.isUnset(request.openCameraCheck)) {
            body["openCameraCheck"] = request.openCameraCheck;
        }
        if (!tea_util_1.default.isUnset(request.openFaceCheck)) {
            body["openFaceCheck"] = request.openFaceCheck;
        }
        if (!tea_util_1.default.isUnset(request.outsideCheckApproveModeId)) {
            body["outsideCheckApproveModeId"] = request.outsideCheckApproveModeId;
        }
        if (!tea_util_1.default.isUnset(request.overtimeSettingId)) {
            body["overtimeSettingId"] = request.overtimeSettingId;
        }
        if (!tea_util_1.default.isUnset(request.owner)) {
            body["owner"] = request.owner;
        }
        if (!tea_util_1.default.isUnset(request.positions)) {
            body["positions"] = request.positions;
        }
        if (!tea_util_1.default.isUnset(request.resourcePermissionMap)) {
            body["resourcePermissionMap"] = request.resourcePermissionMap;
        }
        if (!tea_util_1.default.isUnset(request.shiftVOList)) {
            body["shiftVOList"] = request.shiftVOList;
        }
        if (!tea_util_1.default.isUnset(request.skipHolidays)) {
            body["skipHolidays"] = request.skipHolidays;
        }
        if (!tea_util_1.default.isUnset(request.trimDistance)) {
            body["trimDistance"] = request.trimDistance;
        }
        if (!tea_util_1.default.isUnset(request.workdayClassList)) {
            body["workdayClassList"] = request.workdayClassList;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "GroupUpdate",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/groups`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new GroupUpdateResponse({}));
    }
    /**
     * 修改考勤组
     *
     * @param request - GroupUpdateRequest
     * @returns GroupUpdateResponse
     */
    async groupUpdate(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new GroupUpdateHeaders({});
        return await this.groupUpdateWithOptions(request, headers, runtime);
    }
    /**
     * 生态系统假期初始化查询余额接口
     *
     * @param request - InitAndGetLeaveALlocationQuotasRequest
     * @param headers - InitAndGetLeaveALlocationQuotasHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns InitAndGetLeaveALlocationQuotasResponse
     */
    async initAndGetLeaveALlocationQuotasWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.leaveCode)) {
            query["leaveCode"] = request.leaveCode;
        }
        if (!tea_util_1.default.isUnset(request.opUserId)) {
            query["opUserId"] = request.opUserId;
        }
        if (!tea_util_1.default.isUnset(request.userId)) {
            query["userId"] = request.userId;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
        });
        let params = new $OpenApi.Params({
            action: "InitAndGetLeaveALlocationQuotas",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/leaves/initializations/balances`,
            method: "GET",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new InitAndGetLeaveALlocationQuotasResponse({}));
    }
    /**
     * 生态系统假期初始化查询余额接口
     *
     * @param request - InitAndGetLeaveALlocationQuotasRequest
     * @returns InitAndGetLeaveALlocationQuotasResponse
     */
    async initAndGetLeaveALlocationQuotas(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new InitAndGetLeaveALlocationQuotasHeaders({});
        return await this.initAndGetLeaveALlocationQuotasWithOptions(request, headers, runtime);
    }
    /**
     * 获取用户某段时间内同步到考勤的审批单信息
     *
     * @param request - ListApproveByUsersRequest
     * @param headers - ListApproveByUsersHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ListApproveByUsersResponse
     */
    async listApproveByUsersWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.bizTypes)) {
            body["bizTypes"] = request.bizTypes;
        }
        if (!tea_util_1.default.isUnset(request.fromDateTime)) {
            body["fromDateTime"] = request.fromDateTime;
        }
        if (!tea_util_1.default.isUnset(request.toDateTime)) {
            body["toDateTime"] = request.toDateTime;
        }
        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: "ListApproveByUsers",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/approvals/query`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new ListApproveByUsersResponse({}));
    }
    /**
     * 获取用户某段时间内同步到考勤的审批单信息
     *
     * @param request - ListApproveByUsersRequest
     * @returns ListApproveByUsersResponse
     */
    async listApproveByUsers(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new ListApproveByUsersHeaders({});
        return await this.listApproveByUsersWithOptions(request, headers, runtime);
    }
    /**
     * 修改水印模板
     *
     * @param request - ModifyWaterMarkTemplateRequest
     * @param headers - ModifyWaterMarkTemplateHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ModifyWaterMarkTemplateResponse
     */
    async modifyWaterMarkTemplateWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.openConversationId)) {
            query["openConversationId"] = request.openConversationId;
        }
        if (!tea_util_1.default.isUnset(request.userId)) {
            query["userId"] = request.userId;
        }
        let body = {};
        if (!tea_util_1.default.isUnset(request.formCode)) {
            body["formCode"] = request.formCode;
        }
        if (!tea_util_1.default.isUnset(request.icon)) {
            body["icon"] = request.icon;
        }
        if (!tea_util_1.default.isUnset(request.layoutDesignId)) {
            body["layoutDesignId"] = request.layoutDesignId;
        }
        if (!tea_util_1.default.isUnset(request.schemaContent)) {
            body["schemaContent"] = request.schemaContent;
        }
        if (!tea_util_1.default.isUnset(request.title)) {
            body["title"] = request.title;
        }
        if (!tea_util_1.default.isUnset(request.waterMarkId)) {
            body["waterMarkId"] = request.waterMarkId;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "ModifyWaterMarkTemplate",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/watermarks/templates`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new ModifyWaterMarkTemplateResponse({}));
    }
    /**
     * 修改水印模板
     *
     * @param request - ModifyWaterMarkTemplateRequest
     * @returns ModifyWaterMarkTemplateResponse
     */
    async modifyWaterMarkTemplate(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new ModifyWaterMarkTemplateHeaders({});
        return await this.modifyWaterMarkTemplateWithOptions(request, headers, runtime);
    }
    /**
     * 创建考勤打卡审批单
     *
     * @param request - ProcessApproveCreateRequest
     * @param headers - ProcessApproveCreateHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ProcessApproveCreateResponse
     */
    async processApproveCreateWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.approveId)) {
            body["approveId"] = request.approveId;
        }
        if (!tea_util_1.default.isUnset(request.opUserId)) {
            body["opUserId"] = request.opUserId;
        }
        if (!tea_util_1.default.isUnset(request.punchParam)) {
            body["punchParam"] = request.punchParam;
        }
        if (!tea_util_1.default.isUnset(request.subType)) {
            body["subType"] = request.subType;
        }
        if (!tea_util_1.default.isUnset(request.tagName)) {
            body["tagName"] = request.tagName;
        }
        if (!tea_util_1.default.isUnset(request.userId)) {
            body["userId"] = request.userId;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "ProcessApproveCreate",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/workflows/checkInForms`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new ProcessApproveCreateResponse({}));
    }
    /**
     * 创建考勤打卡审批单
     *
     * @param request - ProcessApproveCreateRequest
     * @returns ProcessApproveCreateResponse
     */
    async processApproveCreate(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new ProcessApproveCreateHeaders({});
        return await this.processApproveCreateWithOptions(request, headers, runtime);
    }
    /**
     * 通知审批通过
     *
     * @param request - ProcessApproveFinishRequest
     * @param headers - ProcessApproveFinishHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ProcessApproveFinishResponse
     */
    async processApproveFinishWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.userId)) {
            query["userId"] = request.userId;
        }
        let body = {};
        if (!tea_util_1.default.isUnset(request.approveId)) {
            body["approveId"] = request.approveId;
        }
        if (!tea_util_1.default.isUnset(request.jumpUrl)) {
            body["jumpUrl"] = request.jumpUrl;
        }
        if (!tea_util_1.default.isUnset(request.overTimeToMore)) {
            body["overTimeToMore"] = request.overTimeToMore;
        }
        if (!tea_util_1.default.isUnset(request.overtimeDuration)) {
            body["overtimeDuration"] = request.overtimeDuration;
        }
        if (!tea_util_1.default.isUnset(request.subType)) {
            body["subType"] = request.subType;
        }
        if (!tea_util_1.default.isUnset(request.tagName)) {
            body["tagName"] = request.tagName;
        }
        if (!tea_util_1.default.isUnset(request.topCalculateApproveDurationParam)) {
            body["topCalculateApproveDurationParam"] = request.topCalculateApproveDurationParam;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "ProcessApproveFinish",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/approvals/finish`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new ProcessApproveFinishResponse({}));
    }
    /**
     * 通知审批通过
     *
     * @param request - ProcessApproveFinishRequest
     * @returns ProcessApproveFinishResponse
     */
    async processApproveFinish(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new ProcessApproveFinishHeaders({});
        return await this.processApproveFinishWithOptions(request, headers, runtime);
    }
    /**
     * 考勤高级排班OEM应用升级
     *
     * @param request - ProcessHhOemUpdateRequest
     * @param headers - ProcessHhOemUpdateHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ProcessHhOemUpdateResponse
     */
    async processHhOemUpdateWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.bindOemApp)) {
            body["bindOemApp"] = request.bindOemApp;
        }
        if (!tea_util_1.default.isUnset(request.corpIdList)) {
            body["corpIdList"] = request.corpIdList;
        }
        if (!tea_util_1.default.isUnset(request.useOemApp)) {
            body["useOemApp"] = request.useOemApp;
        }
        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: "ProcessHhOemUpdate",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/oemApps`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new ProcessHhOemUpdateResponse({}));
    }
    /**
     * 考勤高级排班OEM应用升级
     *
     * @param request - ProcessHhOemUpdateRequest
     * @returns ProcessHhOemUpdateResponse
     */
    async processHhOemUpdate(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new ProcessHhOemUpdateHeaders({});
        return await this.processHhOemUpdateWithOptions(request, headers, runtime);
    }
    /**
     * 扣减员工假期余额
     *
     * @param request - ReduceQuotaWithLeaveRecordRequest
     * @param headers - ReduceQuotaWithLeaveRecordHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ReduceQuotaWithLeaveRecordResponse
     */
    async reduceQuotaWithLeaveRecordWithOptions(unionId, 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.leaveCode)) {
            body["leaveCode"] = request.leaveCode;
        }
        if (!tea_util_1.default.isUnset(request.outerId)) {
            body["outerId"] = request.outerId;
        }
        if (!tea_util_1.default.isUnset(request.quotaNum)) {
            body["quotaNum"] = request.quotaNum;
        }
        if (!tea_util_1.default.isUnset(request.reason)) {
            body["reason"] = request.reason;
        }
        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: "ReduceQuotaWithLeaveRecord",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/users/${unionId}/vacations/records/modify`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new ReduceQuotaWithLeaveRecordResponse({}));
    }
    /**
     * 扣减员工假期余额
     *
     * @param request - ReduceQuotaWithLeaveRecordRequest
     * @returns ReduceQuotaWithLeaveRecordResponse
     */
    async reduceQuotaWithLeaveRecord(unionId, request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new ReduceQuotaWithLeaveRecordHeaders({});
        return await this.reduceQuotaWithLeaveRecordWithOptions(unionId, request, headers, runtime);
    }
    /**
     * 修改假期规则来源
     *
     * @param request - RetainLeaveTypesRequest
     * @param headers - RetainLeaveTypesHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns RetainLeaveTypesResponse
     */
    async retainLeaveTypesWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.leaveCodes)) {
            body["leaveCodes"] = request.leaveCodes;
        }
        if (!tea_util_1.default.isUnset(request.opUserId)) {
            body["opUserId"] = request.opUserId;
        }
        if (!tea_util_1.default.isUnset(request.source)) {
            body["source"] = request.source;
        }
        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: "RetainLeaveTypes",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/vacations/types/change`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new RetainLeaveTypesResponse({}));
    }
    /**
     * 修改假期规则来源
     *
     * @param request - RetainLeaveTypesRequest
     * @returns RetainLeaveTypesResponse
     */
    async retainLeaveTypes(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new RetainLeaveTypesHeaders({});
        return await this.retainLeaveTypesWithOptions(request, headers, runtime);
    }
    /**
     * 提供给高级假期的试用订单回退
     *
     * @param request - ReverseTrialAdvancedLeaveRequest
     * @param headers - ReverseTrialAdvancedLeaveHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ReverseTrialAdvancedLeaveResponse
     */
    async reverseTrialAdvancedLeaveWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.opUserId)) {
            query["opUserId"] = request.opUserId;
        }
        if (!tea_util_1.default.isUnset(request.servCode)) {
            query["servCode"] = request.servCode;
        }
        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: "ReverseTrialAdvancedLeave",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/leaves/reverse`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new ReverseTrialAdvancedLeaveResponse({}));
    }
    /**
     * 提供给高级假期的试用订单回退
     *
     * @param request - ReverseTrialAdvancedLeaveRequest
     * @returns ReverseTrialAdvancedLeaveResponse
     */
    async reverseTrialAdvancedLeave(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new ReverseTrialAdvancedLeaveHeaders({});
        return await this.reverseTrialAdvancedLeaveWithOptions(request, headers, runtime);
    }
    /**
     * 薪酬三方数据写入
     *
     * @param request - SalaryThirdDataIntegrationRequest
     * @param headers - SalaryThirdDataIntegrationHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns SalaryThirdDataIntegrationResponse
     */
    async salaryThirdDataIntegrationWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.bizType)) {
            body["bizType"] = request.bizType;
        }
        if (!tea_util_1.default.isUnset(request.items)) {
            body["items"] = request.items;
        }
        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: "SalaryThirdDataIntegration",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/salaries/tripartiteDatas/write`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new SalaryThirdDataIntegrationResponse({}));
    }
    /**
     * 薪酬三方数据写入
     *
     * @param request - SalaryThirdDataIntegrationRequest
     * @returns SalaryThirdDataIntegrationResponse
     */
    async salaryThirdDataIntegration(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new SalaryThirdDataIntegrationHeaders({});
        return await this.salaryThirdDataIntegrationWithOptions(request, headers, runtime);
    }
    /**
     * 新增水印签到模板
     *
     * @param request - SaveCustomWaterMarkTemplateRequest
     * @param headers - SaveCustomWaterMarkTemplateHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns SaveCustomWaterMarkTemplateResponse
     */
    async saveCustomWaterMarkTemplateWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.openConversationId)) {
            query["openConversationId"] = request.openConversationId;
        }
        if (!tea_util_1.default.isUnset(request.userId)) {
            query["userId"] = request.userId;
        }
        let body = {};
        if (!tea_util_1.default.isUnset(request.bizCode)) {
            body["bizCode"] = request.bizCode;
        }
        if (!tea_util_1.default.isUnset(request.icon)) {
            body["icon"] = request.icon;
        }
        if (!tea_util_1.default.isUnset(request.layoutDesignId)) {
            body["layoutDesignId"] = request.layoutDesignId;
        }
        if (!tea_util_1.default.isUnset(request.sceneCode)) {
            body["sceneCode"] = request.sceneCode;
        }
        if (!tea_util_1.default.isUnset(request.schemaContent)) {
            body["schemaContent"] = request.schemaContent;
        }
        if (!tea_util_1.default.isUnset(request.title)) {
            body["title"] = request.title;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "SaveCustomWaterMarkTemplate",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/watermarks/templates`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new SaveCustomWaterMarkTemplateResponse({}));
    }
    /**
     * 新增水印签到模板
     *
     * @param request - SaveCustomWaterMarkTemplateRequest
     * @returns SaveCustomWaterMarkTemplateResponse
     */
    async saveCustomWaterMarkTemplate(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new SaveCustomWaterMarkTemplateHeaders({});
        return await this.saveCustomWaterMarkTemplateWithOptions(request, headers, runtime);
    }
    /**
     * 创建班次
     *
     * @param request - ShiftAddRequest
     * @param headers - ShiftAddHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns ShiftAddResponse
     */
    async shiftAddWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.opUserId)) {
            query["opUserId"] = request.opUserId;
        }
        let body = {};
        if (!tea_util_1.default.isUnset(request.name)) {
            body["name"] = request.name;
        }
        if (!tea_util_1.default.isUnset(request.owner)) {
            body["owner"] = request.owner;
        }
        if (!tea_util_1.default.isUnset(request.sections)) {
            body["sections"] = request.sections;
        }
        if (!tea_util_1.default.isUnset(request.serviceId)) {
            body["serviceId"] = request.serviceId;
        }
        if (!tea_util_1.default.isUnset(request.setting)) {
            body["setting"] = request.setting;
        }
        if (!tea_util_1.default.isUnset(request.shiftId)) {
            body["shiftId"] = request.shiftId;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "ShiftAdd",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/shifts`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new ShiftAddResponse({}));
    }
    /**
     * 创建班次
     *
     * @param request - ShiftAddRequest
     * @returns ShiftAddResponse
     */
    async shiftAdd(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new ShiftAddHeaders({});
        return await this.shiftAddWithOptions(request, headers, runtime);
    }
    /**
     * 用于考勤排班附加信息，例如打卡位置，打卡wifi等
     *
     * @param request - SyncScheduleInfoRequest
     * @param headers - SyncScheduleInfoHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns SyncScheduleInfoResponse
     */
    async syncScheduleInfoWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let body = {};
        if (!tea_util_1.default.isUnset(request.opUserId)) {
            body["opUserId"] = request.opUserId;
        }
        if (!tea_util_1.default.isUnset(request.scheduleInfos)) {
            body["scheduleInfos"] = request.scheduleInfos;
        }
        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: "SyncScheduleInfo",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/schedules/additionalInfo`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "none",
        });
        return $tea.cast(await this.execute(params, req, runtime), new SyncScheduleInfoResponse({}));
    }
    /**
     * 用于考勤排班附加信息，例如打卡位置，打卡wifi等
     *
     * @param request - SyncScheduleInfoRequest
     * @returns SyncScheduleInfoResponse
     */
    async syncScheduleInfo(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new SyncScheduleInfoHeaders({});
        return await this.syncScheduleInfoWithOptions(request, headers, runtime);
    }
    /**
     * 更新假期规则
     *
     * @param request - UpdateLeaveTypeRequest
     * @param headers - UpdateLeaveTypeHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateLeaveTypeResponse
     */
    async updateLeaveTypeWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.opUserId)) {
            query["opUserId"] = request.opUserId;
        }
        let body = {};
        if (!tea_util_1.default.isUnset(request.bizType)) {
            body["bizType"] = request.bizType;
        }
        if (!tea_util_1.default.isUnset(request.extras)) {
            body["extras"] = request.extras;
        }
        if (!tea_util_1.default.isUnset(request.freedomLeave)) {
            body["freedomLeave"] = request.freedomLeave;
        }
        if (!tea_util_1.default.isUnset(request.hoursInPerDay)) {
            body["hoursInPerDay"] = request.hoursInPerDay;
        }
        if (!tea_util_1.default.isUnset(request.leaveCertificate)) {
            body["leaveCertificate"] = request.leaveCertificate;
        }
        if (!tea_util_1.default.isUnset(request.leaveCode)) {
            body["leaveCode"] = request.leaveCode;
        }
        if (!tea_util_1.default.isUnset(request.leaveName)) {
            body["leaveName"] = request.leaveName;
        }
        if (!tea_util_1.default.isUnset(request.leaveViewUnit)) {
            body["leaveViewUnit"] = request.leaveViewUnit;
        }
        if (!tea_util_1.default.isUnset(request.naturalDayLeave)) {
            body["naturalDayLeave"] = request.naturalDayLeave;
        }
        if (!tea_util_1.default.isUnset(request.submitTimeRule)) {
            body["submitTimeRule"] = request.submitTimeRule;
        }
        if (!tea_util_1.default.isUnset(request.visibilityRules)) {
            body["visibilityRules"] = request.visibilityRules;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
            body: openapi_util_1.default.parseToMap(body),
        });
        let params = new $OpenApi.Params({
            action: "UpdateLeaveType",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/leaves/types`,
            method: "PUT",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateLeaveTypeResponse({}));
    }
    /**
     * 更新假期规则
     *
     * @param request - UpdateLeaveTypeRequest
     * @returns UpdateLeaveTypeResponse
     */
    async updateLeaveType(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateLeaveTypeHeaders({});
        return await this.updateLeaveTypeWithOptions(request, headers, runtime);
    }
    /**
     * 批量更新余额
     *
     * @param request - UpdateVacationQuotaRequest
     * @param headers - UpdateVacationQuotaHeaders
     * @param runtime - runtime options for this request RuntimeOptions
     * @returns UpdateVacationQuotaResponse
     */
    async updateVacationQuotaWithOptions(request, headers, runtime) {
        tea_util_1.default.validateModel(request);
        let query = {};
        if (!tea_util_1.default.isUnset(request.opUserId)) {
            query["opUserId"] = request.opUserId;
        }
        let realHeaders = {};
        if (!tea_util_1.default.isUnset(headers.commonHeaders)) {
            realHeaders = headers.commonHeaders;
        }
        if (!tea_util_1.default.isUnset(headers.xAcsDingtalkAccessToken)) {
            realHeaders["x-acs-dingtalk-access-token"] = tea_util_1.default.toJSONString(headers.xAcsDingtalkAccessToken);
        }
        let req = new $OpenApi.OpenApiRequest({
            headers: realHeaders,
            query: openapi_util_1.default.query(query),
            body: tea_util_1.default.toArray(request.body),
        });
        let params = new $OpenApi.Params({
            action: "UpdateVacationQuota",
            version: "attendance_1.0",
            protocol: "HTTP",
            pathname: `/v1.0/attendance/leaves/quota`,
            method: "POST",
            authType: "AK",
            style: "ROA",
            reqBodyType: "none",
            bodyType: "json",
        });
        return $tea.cast(await this.execute(params, req, runtime), new UpdateVacationQuotaResponse({}));
    }
    /**
     * 批量更新余额
     *
     * @param request - UpdateVacationQuotaRequest
     * @returns UpdateVacationQuotaResponse
     */
    async updateVacationQuota(request) {
        let runtime = new $Util.RuntimeOptions({});
        let headers = new UpdateVacationQuotaHeaders({});
        return await this.updateVacationQuotaWithOptions(request, headers, runtime);
    }
}
exports.default = Client;
//# sourceMappingURL=client.js.map