dingtalk/python/alibabacloud_dingtalk/attendance_1_0/client.py (4,487 lines of code) (raw):

# -*- coding: utf-8 -*- # This file is auto-generated, don't edit it. Thanks. from Tea.core import TeaCore from alibabacloud_tea_openapi.client import Client as OpenApiClient from alibabacloud_tea_openapi import models as open_api_models from alibabacloud_gateway_dingtalk.client import Client as GatewayClientClient from alibabacloud_tea_util.client import Client as UtilClient from alibabacloud_dingtalk.attendance_1_0 import models as dingtalkattendance__1__0_models from alibabacloud_tea_util import models as util_models from alibabacloud_openapi_util.client import Client as OpenApiUtilClient class Client(OpenApiClient): """ *\ """ def __init__( self, config: open_api_models.Config, ): super().__init__(config) gateway_client = GatewayClientClient() self._spi = gateway_client self._endpoint_rule = '' if UtilClient.empty(self._endpoint): self._endpoint = 'api.dingtalk.com' def add_leave_type_with_options( self, request: dingtalkattendance__1__0_models.AddLeaveTypeRequest, headers: dingtalkattendance__1__0_models.AddLeaveTypeHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.AddLeaveTypeResponse: """ @summary 添加假期规则 @param request: AddLeaveTypeRequest @param headers: AddLeaveTypeHeaders @param runtime: runtime options for this request RuntimeOptions @return: AddLeaveTypeResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.op_user_id): query['opUserId'] = request.op_user_id body = {} if not UtilClient.is_unset(request.biz_type): body['bizType'] = request.biz_type if not UtilClient.is_unset(request.extras): body['extras'] = request.extras if not UtilClient.is_unset(request.freedom_leave): body['freedomLeave'] = request.freedom_leave if not UtilClient.is_unset(request.hours_in_per_day): body['hoursInPerDay'] = request.hours_in_per_day if not UtilClient.is_unset(request.leave_certificate): body['leaveCertificate'] = request.leave_certificate if not UtilClient.is_unset(request.leave_hour_ceil): body['leaveHourCeil'] = request.leave_hour_ceil if not UtilClient.is_unset(request.leave_name): body['leaveName'] = request.leave_name if not UtilClient.is_unset(request.leave_time_ceil): body['leaveTimeCeil'] = request.leave_time_ceil if not UtilClient.is_unset(request.leave_time_ceil_min_unit): body['leaveTimeCeilMinUnit'] = request.leave_time_ceil_min_unit if not UtilClient.is_unset(request.leave_view_unit): body['leaveViewUnit'] = request.leave_view_unit if not UtilClient.is_unset(request.max_leave_time): body['maxLeaveTime'] = request.max_leave_time if not UtilClient.is_unset(request.min_leave_hour): body['minLeaveHour'] = request.min_leave_hour if not UtilClient.is_unset(request.natural_day_leave): body['naturalDayLeave'] = request.natural_day_leave if not UtilClient.is_unset(request.paid_leave): body['paidLeave'] = request.paid_leave if not UtilClient.is_unset(request.submit_time_rule): body['submitTimeRule'] = request.submit_time_rule if not UtilClient.is_unset(request.visibility_rules): body['visibilityRules'] = request.visibility_rules if not UtilClient.is_unset(request.when_can_leave): body['whenCanLeave'] = request.when_can_leave real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query), body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='AddLeaveType', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/leaves/types', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.AddLeaveTypeResponse(), self.execute(params, req, runtime) ) async def add_leave_type_with_options_async( self, request: dingtalkattendance__1__0_models.AddLeaveTypeRequest, headers: dingtalkattendance__1__0_models.AddLeaveTypeHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.AddLeaveTypeResponse: """ @summary 添加假期规则 @param request: AddLeaveTypeRequest @param headers: AddLeaveTypeHeaders @param runtime: runtime options for this request RuntimeOptions @return: AddLeaveTypeResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.op_user_id): query['opUserId'] = request.op_user_id body = {} if not UtilClient.is_unset(request.biz_type): body['bizType'] = request.biz_type if not UtilClient.is_unset(request.extras): body['extras'] = request.extras if not UtilClient.is_unset(request.freedom_leave): body['freedomLeave'] = request.freedom_leave if not UtilClient.is_unset(request.hours_in_per_day): body['hoursInPerDay'] = request.hours_in_per_day if not UtilClient.is_unset(request.leave_certificate): body['leaveCertificate'] = request.leave_certificate if not UtilClient.is_unset(request.leave_hour_ceil): body['leaveHourCeil'] = request.leave_hour_ceil if not UtilClient.is_unset(request.leave_name): body['leaveName'] = request.leave_name if not UtilClient.is_unset(request.leave_time_ceil): body['leaveTimeCeil'] = request.leave_time_ceil if not UtilClient.is_unset(request.leave_time_ceil_min_unit): body['leaveTimeCeilMinUnit'] = request.leave_time_ceil_min_unit if not UtilClient.is_unset(request.leave_view_unit): body['leaveViewUnit'] = request.leave_view_unit if not UtilClient.is_unset(request.max_leave_time): body['maxLeaveTime'] = request.max_leave_time if not UtilClient.is_unset(request.min_leave_hour): body['minLeaveHour'] = request.min_leave_hour if not UtilClient.is_unset(request.natural_day_leave): body['naturalDayLeave'] = request.natural_day_leave if not UtilClient.is_unset(request.paid_leave): body['paidLeave'] = request.paid_leave if not UtilClient.is_unset(request.submit_time_rule): body['submitTimeRule'] = request.submit_time_rule if not UtilClient.is_unset(request.visibility_rules): body['visibilityRules'] = request.visibility_rules if not UtilClient.is_unset(request.when_can_leave): body['whenCanLeave'] = request.when_can_leave real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query), body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='AddLeaveType', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/leaves/types', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.AddLeaveTypeResponse(), await self.execute_async(params, req, runtime) ) def add_leave_type( self, request: dingtalkattendance__1__0_models.AddLeaveTypeRequest, ) -> dingtalkattendance__1__0_models.AddLeaveTypeResponse: """ @summary 添加假期规则 @param request: AddLeaveTypeRequest @return: AddLeaveTypeResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.AddLeaveTypeHeaders() return self.add_leave_type_with_options(request, headers, runtime) async def add_leave_type_async( self, request: dingtalkattendance__1__0_models.AddLeaveTypeRequest, ) -> dingtalkattendance__1__0_models.AddLeaveTypeResponse: """ @summary 添加假期规则 @param request: AddLeaveTypeRequest @return: AddLeaveTypeResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.AddLeaveTypeHeaders() return await self.add_leave_type_with_options_async(request, headers, runtime) def attendance_ble_devices_add_with_options( self, request: dingtalkattendance__1__0_models.AttendanceBleDevicesAddRequest, headers: dingtalkattendance__1__0_models.AttendanceBleDevicesAddHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.AttendanceBleDevicesAddResponse: """ @summary 批量给考勤组添加蓝牙设备 @param request: AttendanceBleDevicesAddRequest @param headers: AttendanceBleDevicesAddHeaders @param runtime: runtime options for this request RuntimeOptions @return: AttendanceBleDevicesAddResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.device_id_list): body['deviceIdList'] = request.device_id_list if not UtilClient.is_unset(request.group_key): body['groupKey'] = request.group_key if not UtilClient.is_unset(request.op_user_id): body['opUserId'] = request.op_user_id real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='AttendanceBleDevicesAdd', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/group/bledevices', method='POST', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.AttendanceBleDevicesAddResponse(), self.execute(params, req, runtime) ) async def attendance_ble_devices_add_with_options_async( self, request: dingtalkattendance__1__0_models.AttendanceBleDevicesAddRequest, headers: dingtalkattendance__1__0_models.AttendanceBleDevicesAddHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.AttendanceBleDevicesAddResponse: """ @summary 批量给考勤组添加蓝牙设备 @param request: AttendanceBleDevicesAddRequest @param headers: AttendanceBleDevicesAddHeaders @param runtime: runtime options for this request RuntimeOptions @return: AttendanceBleDevicesAddResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.device_id_list): body['deviceIdList'] = request.device_id_list if not UtilClient.is_unset(request.group_key): body['groupKey'] = request.group_key if not UtilClient.is_unset(request.op_user_id): body['opUserId'] = request.op_user_id real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='AttendanceBleDevicesAdd', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/group/bledevices', method='POST', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.AttendanceBleDevicesAddResponse(), await self.execute_async(params, req, runtime) ) def attendance_ble_devices_add( self, request: dingtalkattendance__1__0_models.AttendanceBleDevicesAddRequest, ) -> dingtalkattendance__1__0_models.AttendanceBleDevicesAddResponse: """ @summary 批量给考勤组添加蓝牙设备 @param request: AttendanceBleDevicesAddRequest @return: AttendanceBleDevicesAddResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.AttendanceBleDevicesAddHeaders() return self.attendance_ble_devices_add_with_options(request, headers, runtime) async def attendance_ble_devices_add_async( self, request: dingtalkattendance__1__0_models.AttendanceBleDevicesAddRequest, ) -> dingtalkattendance__1__0_models.AttendanceBleDevicesAddResponse: """ @summary 批量给考勤组添加蓝牙设备 @param request: AttendanceBleDevicesAddRequest @return: AttendanceBleDevicesAddResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.AttendanceBleDevicesAddHeaders() return await self.attendance_ble_devices_add_with_options_async(request, headers, runtime) def attendance_ble_devices_query_with_options( self, request: dingtalkattendance__1__0_models.AttendanceBleDevicesQueryRequest, headers: dingtalkattendance__1__0_models.AttendanceBleDevicesQueryHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.AttendanceBleDevicesQueryResponse: """ @summary 批量查询蓝牙设备 @param request: AttendanceBleDevicesQueryRequest @param headers: AttendanceBleDevicesQueryHeaders @param runtime: runtime options for this request RuntimeOptions @return: AttendanceBleDevicesQueryResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.group_key): body['groupKey'] = request.group_key if not UtilClient.is_unset(request.op_user_id): body['opUserId'] = request.op_user_id real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='AttendanceBleDevicesQuery', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/group/bledevices/query', method='POST', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.AttendanceBleDevicesQueryResponse(), self.execute(params, req, runtime) ) async def attendance_ble_devices_query_with_options_async( self, request: dingtalkattendance__1__0_models.AttendanceBleDevicesQueryRequest, headers: dingtalkattendance__1__0_models.AttendanceBleDevicesQueryHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.AttendanceBleDevicesQueryResponse: """ @summary 批量查询蓝牙设备 @param request: AttendanceBleDevicesQueryRequest @param headers: AttendanceBleDevicesQueryHeaders @param runtime: runtime options for this request RuntimeOptions @return: AttendanceBleDevicesQueryResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.group_key): body['groupKey'] = request.group_key if not UtilClient.is_unset(request.op_user_id): body['opUserId'] = request.op_user_id real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='AttendanceBleDevicesQuery', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/group/bledevices/query', method='POST', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.AttendanceBleDevicesQueryResponse(), await self.execute_async(params, req, runtime) ) def attendance_ble_devices_query( self, request: dingtalkattendance__1__0_models.AttendanceBleDevicesQueryRequest, ) -> dingtalkattendance__1__0_models.AttendanceBleDevicesQueryResponse: """ @summary 批量查询蓝牙设备 @param request: AttendanceBleDevicesQueryRequest @return: AttendanceBleDevicesQueryResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.AttendanceBleDevicesQueryHeaders() return self.attendance_ble_devices_query_with_options(request, headers, runtime) async def attendance_ble_devices_query_async( self, request: dingtalkattendance__1__0_models.AttendanceBleDevicesQueryRequest, ) -> dingtalkattendance__1__0_models.AttendanceBleDevicesQueryResponse: """ @summary 批量查询蓝牙设备 @param request: AttendanceBleDevicesQueryRequest @return: AttendanceBleDevicesQueryResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.AttendanceBleDevicesQueryHeaders() return await self.attendance_ble_devices_query_with_options_async(request, headers, runtime) def attendance_ble_devices_remove_with_options( self, request: dingtalkattendance__1__0_models.AttendanceBleDevicesRemoveRequest, headers: dingtalkattendance__1__0_models.AttendanceBleDevicesRemoveHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.AttendanceBleDevicesRemoveResponse: """ @summary 批量删除考勤组的蓝牙设备 @param request: AttendanceBleDevicesRemoveRequest @param headers: AttendanceBleDevicesRemoveHeaders @param runtime: runtime options for this request RuntimeOptions @return: AttendanceBleDevicesRemoveResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.device_id_list): body['deviceIdList'] = request.device_id_list if not UtilClient.is_unset(request.group_key): body['groupKey'] = request.group_key if not UtilClient.is_unset(request.op_user_id): body['opUserId'] = request.op_user_id real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='AttendanceBleDevicesRemove', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/group/bledevices/remove', method='POST', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.AttendanceBleDevicesRemoveResponse(), self.execute(params, req, runtime) ) async def attendance_ble_devices_remove_with_options_async( self, request: dingtalkattendance__1__0_models.AttendanceBleDevicesRemoveRequest, headers: dingtalkattendance__1__0_models.AttendanceBleDevicesRemoveHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.AttendanceBleDevicesRemoveResponse: """ @summary 批量删除考勤组的蓝牙设备 @param request: AttendanceBleDevicesRemoveRequest @param headers: AttendanceBleDevicesRemoveHeaders @param runtime: runtime options for this request RuntimeOptions @return: AttendanceBleDevicesRemoveResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.device_id_list): body['deviceIdList'] = request.device_id_list if not UtilClient.is_unset(request.group_key): body['groupKey'] = request.group_key if not UtilClient.is_unset(request.op_user_id): body['opUserId'] = request.op_user_id real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='AttendanceBleDevicesRemove', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/group/bledevices/remove', method='POST', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.AttendanceBleDevicesRemoveResponse(), await self.execute_async(params, req, runtime) ) def attendance_ble_devices_remove( self, request: dingtalkattendance__1__0_models.AttendanceBleDevicesRemoveRequest, ) -> dingtalkattendance__1__0_models.AttendanceBleDevicesRemoveResponse: """ @summary 批量删除考勤组的蓝牙设备 @param request: AttendanceBleDevicesRemoveRequest @return: AttendanceBleDevicesRemoveResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.AttendanceBleDevicesRemoveHeaders() return self.attendance_ble_devices_remove_with_options(request, headers, runtime) async def attendance_ble_devices_remove_async( self, request: dingtalkattendance__1__0_models.AttendanceBleDevicesRemoveRequest, ) -> dingtalkattendance__1__0_models.AttendanceBleDevicesRemoveResponse: """ @summary 批量删除考勤组的蓝牙设备 @param request: AttendanceBleDevicesRemoveRequest @return: AttendanceBleDevicesRemoveResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.AttendanceBleDevicesRemoveHeaders() return await self.attendance_ble_devices_remove_with_options_async(request, headers, runtime) def batch_boss_check_with_options( self, request: dingtalkattendance__1__0_models.BatchBossCheckRequest, headers: dingtalkattendance__1__0_models.BatchBossCheckHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.BatchBossCheckResponse: """ @summary 批量修改考勤结果 @param request: BatchBossCheckRequest @param headers: BatchBossCheckHeaders @param runtime: runtime options for this request RuntimeOptions @return: BatchBossCheckResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.op_user_id): query['opUserId'] = request.op_user_id body = {} if not UtilClient.is_unset(request.models): body['models'] = request.models real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query), body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='BatchBossCheck', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/results/batch', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.BatchBossCheckResponse(), self.execute(params, req, runtime) ) async def batch_boss_check_with_options_async( self, request: dingtalkattendance__1__0_models.BatchBossCheckRequest, headers: dingtalkattendance__1__0_models.BatchBossCheckHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.BatchBossCheckResponse: """ @summary 批量修改考勤结果 @param request: BatchBossCheckRequest @param headers: BatchBossCheckHeaders @param runtime: runtime options for this request RuntimeOptions @return: BatchBossCheckResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.op_user_id): query['opUserId'] = request.op_user_id body = {} if not UtilClient.is_unset(request.models): body['models'] = request.models real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query), body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='BatchBossCheck', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/results/batch', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.BatchBossCheckResponse(), await self.execute_async(params, req, runtime) ) def batch_boss_check( self, request: dingtalkattendance__1__0_models.BatchBossCheckRequest, ) -> dingtalkattendance__1__0_models.BatchBossCheckResponse: """ @summary 批量修改考勤结果 @param request: BatchBossCheckRequest @return: BatchBossCheckResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.BatchBossCheckHeaders() return self.batch_boss_check_with_options(request, headers, runtime) async def batch_boss_check_async( self, request: dingtalkattendance__1__0_models.BatchBossCheckRequest, ) -> dingtalkattendance__1__0_models.BatchBossCheckResponse: """ @summary 批量修改考勤结果 @param request: BatchBossCheckRequest @return: BatchBossCheckResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.BatchBossCheckHeaders() return await self.batch_boss_check_with_options_async(request, headers, runtime) def calculate_duration_with_options( self, request: dingtalkattendance__1__0_models.CalculateDurationRequest, headers: dingtalkattendance__1__0_models.CalculateDurationHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.CalculateDurationResponse: """ @summary 预计算时长 @param request: CalculateDurationRequest @param headers: CalculateDurationHeaders @param runtime: runtime options for this request RuntimeOptions @return: CalculateDurationResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.user_id): query['userId'] = request.user_id body = {} if not UtilClient.is_unset(request.biz_type): body['bizType'] = request.biz_type if not UtilClient.is_unset(request.calculate_model): body['calculateModel'] = request.calculate_model if not UtilClient.is_unset(request.duration_unit): body['durationUnit'] = request.duration_unit if not UtilClient.is_unset(request.from_time): body['fromTime'] = request.from_time if not UtilClient.is_unset(request.leave_code): body['leaveCode'] = request.leave_code if not UtilClient.is_unset(request.to_time): body['toTime'] = request.to_time real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query), body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='CalculateDuration', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/approvals/durations/calculate', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.CalculateDurationResponse(), self.execute(params, req, runtime) ) async def calculate_duration_with_options_async( self, request: dingtalkattendance__1__0_models.CalculateDurationRequest, headers: dingtalkattendance__1__0_models.CalculateDurationHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.CalculateDurationResponse: """ @summary 预计算时长 @param request: CalculateDurationRequest @param headers: CalculateDurationHeaders @param runtime: runtime options for this request RuntimeOptions @return: CalculateDurationResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.user_id): query['userId'] = request.user_id body = {} if not UtilClient.is_unset(request.biz_type): body['bizType'] = request.biz_type if not UtilClient.is_unset(request.calculate_model): body['calculateModel'] = request.calculate_model if not UtilClient.is_unset(request.duration_unit): body['durationUnit'] = request.duration_unit if not UtilClient.is_unset(request.from_time): body['fromTime'] = request.from_time if not UtilClient.is_unset(request.leave_code): body['leaveCode'] = request.leave_code if not UtilClient.is_unset(request.to_time): body['toTime'] = request.to_time real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query), body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='CalculateDuration', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/approvals/durations/calculate', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.CalculateDurationResponse(), await self.execute_async(params, req, runtime) ) def calculate_duration( self, request: dingtalkattendance__1__0_models.CalculateDurationRequest, ) -> dingtalkattendance__1__0_models.CalculateDurationResponse: """ @summary 预计算时长 @param request: CalculateDurationRequest @return: CalculateDurationResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.CalculateDurationHeaders() return self.calculate_duration_with_options(request, headers, runtime) async def calculate_duration_async( self, request: dingtalkattendance__1__0_models.CalculateDurationRequest, ) -> dingtalkattendance__1__0_models.CalculateDurationResponse: """ @summary 预计算时长 @param request: CalculateDurationRequest @return: CalculateDurationResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.CalculateDurationHeaders() return await self.calculate_duration_with_options_async(request, headers, runtime) def check_closing_account_with_options( self, request: dingtalkattendance__1__0_models.CheckClosingAccountRequest, headers: dingtalkattendance__1__0_models.CheckClosingAccountHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.CheckClosingAccountResponse: """ @summary 针对某些员工某段时间内封账状态的查询 @param request: CheckClosingAccountRequest @param headers: CheckClosingAccountHeaders @param runtime: runtime options for this request RuntimeOptions @return: CheckClosingAccountResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.biz_code): body['bizCode'] = request.biz_code if not UtilClient.is_unset(request.user_ids): body['userIds'] = request.user_ids if not UtilClient.is_unset(request.user_time_range): body['userTimeRange'] = request.user_time_range real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='CheckClosingAccount', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/closingAccounts/status/query', method='POST', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.CheckClosingAccountResponse(), self.execute(params, req, runtime) ) async def check_closing_account_with_options_async( self, request: dingtalkattendance__1__0_models.CheckClosingAccountRequest, headers: dingtalkattendance__1__0_models.CheckClosingAccountHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.CheckClosingAccountResponse: """ @summary 针对某些员工某段时间内封账状态的查询 @param request: CheckClosingAccountRequest @param headers: CheckClosingAccountHeaders @param runtime: runtime options for this request RuntimeOptions @return: CheckClosingAccountResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.biz_code): body['bizCode'] = request.biz_code if not UtilClient.is_unset(request.user_ids): body['userIds'] = request.user_ids if not UtilClient.is_unset(request.user_time_range): body['userTimeRange'] = request.user_time_range real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='CheckClosingAccount', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/closingAccounts/status/query', method='POST', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.CheckClosingAccountResponse(), await self.execute_async(params, req, runtime) ) def check_closing_account( self, request: dingtalkattendance__1__0_models.CheckClosingAccountRequest, ) -> dingtalkattendance__1__0_models.CheckClosingAccountResponse: """ @summary 针对某些员工某段时间内封账状态的查询 @param request: CheckClosingAccountRequest @return: CheckClosingAccountResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.CheckClosingAccountHeaders() return self.check_closing_account_with_options(request, headers, runtime) async def check_closing_account_async( self, request: dingtalkattendance__1__0_models.CheckClosingAccountRequest, ) -> dingtalkattendance__1__0_models.CheckClosingAccountResponse: """ @summary 针对某些员工某段时间内封账状态的查询 @param request: CheckClosingAccountRequest @return: CheckClosingAccountResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.CheckClosingAccountHeaders() return await self.check_closing_account_with_options_async(request, headers, runtime) def check_write_permission_with_options( self, request: dingtalkattendance__1__0_models.CheckWritePermissionRequest, headers: dingtalkattendance__1__0_models.CheckWritePermissionHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.CheckWritePermissionResponse: """ @summary 考勤资源的写权限查询 @param request: CheckWritePermissionRequest @param headers: CheckWritePermissionHeaders @param runtime: runtime options for this request RuntimeOptions @return: CheckWritePermissionResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.category): body['category'] = request.category if not UtilClient.is_unset(request.entity_ids): body['entityIds'] = request.entity_ids if not UtilClient.is_unset(request.op_user_id): body['opUserId'] = request.op_user_id if not UtilClient.is_unset(request.resource_key): body['resourceKey'] = request.resource_key real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='CheckWritePermission', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/writePermissions/query', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.CheckWritePermissionResponse(), self.execute(params, req, runtime) ) async def check_write_permission_with_options_async( self, request: dingtalkattendance__1__0_models.CheckWritePermissionRequest, headers: dingtalkattendance__1__0_models.CheckWritePermissionHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.CheckWritePermissionResponse: """ @summary 考勤资源的写权限查询 @param request: CheckWritePermissionRequest @param headers: CheckWritePermissionHeaders @param runtime: runtime options for this request RuntimeOptions @return: CheckWritePermissionResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.category): body['category'] = request.category if not UtilClient.is_unset(request.entity_ids): body['entityIds'] = request.entity_ids if not UtilClient.is_unset(request.op_user_id): body['opUserId'] = request.op_user_id if not UtilClient.is_unset(request.resource_key): body['resourceKey'] = request.resource_key real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='CheckWritePermission', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/writePermissions/query', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.CheckWritePermissionResponse(), await self.execute_async(params, req, runtime) ) def check_write_permission( self, request: dingtalkattendance__1__0_models.CheckWritePermissionRequest, ) -> dingtalkattendance__1__0_models.CheckWritePermissionResponse: """ @summary 考勤资源的写权限查询 @param request: CheckWritePermissionRequest @return: CheckWritePermissionResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.CheckWritePermissionHeaders() return self.check_write_permission_with_options(request, headers, runtime) async def check_write_permission_async( self, request: dingtalkattendance__1__0_models.CheckWritePermissionRequest, ) -> dingtalkattendance__1__0_models.CheckWritePermissionResponse: """ @summary 考勤资源的写权限查询 @param request: CheckWritePermissionRequest @return: CheckWritePermissionResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.CheckWritePermissionHeaders() return await self.check_write_permission_with_options_async(request, headers, runtime) def create_approve_with_options( self, request: dingtalkattendance__1__0_models.CreateApproveRequest, headers: dingtalkattendance__1__0_models.CreateApproveHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.CreateApproveResponse: """ @summary 创建考勤打卡审批单 @param request: CreateApproveRequest @param headers: CreateApproveHeaders @param runtime: runtime options for this request RuntimeOptions @return: CreateApproveResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.approve_id): body['approveId'] = request.approve_id if not UtilClient.is_unset(request.op_userid): body['opUserid'] = request.op_userid if not UtilClient.is_unset(request.punch_param): body['punchParam'] = request.punch_param if not UtilClient.is_unset(request.sub_type): body['subType'] = request.sub_type if not UtilClient.is_unset(request.tag_name): body['tagName'] = request.tag_name if not UtilClient.is_unset(request.userid): body['userid'] = request.userid real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='CreateApprove', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/approves', method='POST', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.CreateApproveResponse(), self.execute(params, req, runtime) ) async def create_approve_with_options_async( self, request: dingtalkattendance__1__0_models.CreateApproveRequest, headers: dingtalkattendance__1__0_models.CreateApproveHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.CreateApproveResponse: """ @summary 创建考勤打卡审批单 @param request: CreateApproveRequest @param headers: CreateApproveHeaders @param runtime: runtime options for this request RuntimeOptions @return: CreateApproveResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.approve_id): body['approveId'] = request.approve_id if not UtilClient.is_unset(request.op_userid): body['opUserid'] = request.op_userid if not UtilClient.is_unset(request.punch_param): body['punchParam'] = request.punch_param if not UtilClient.is_unset(request.sub_type): body['subType'] = request.sub_type if not UtilClient.is_unset(request.tag_name): body['tagName'] = request.tag_name if not UtilClient.is_unset(request.userid): body['userid'] = request.userid real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='CreateApprove', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/approves', method='POST', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.CreateApproveResponse(), await self.execute_async(params, req, runtime) ) def create_approve( self, request: dingtalkattendance__1__0_models.CreateApproveRequest, ) -> dingtalkattendance__1__0_models.CreateApproveResponse: """ @summary 创建考勤打卡审批单 @param request: CreateApproveRequest @return: CreateApproveResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.CreateApproveHeaders() return self.create_approve_with_options(request, headers, runtime) async def create_approve_async( self, request: dingtalkattendance__1__0_models.CreateApproveRequest, ) -> dingtalkattendance__1__0_models.CreateApproveResponse: """ @summary 创建考勤打卡审批单 @param request: CreateApproveRequest @return: CreateApproveResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.CreateApproveHeaders() return await self.create_approve_with_options_async(request, headers, runtime) def delete_leave_request_with_options( self, union_id: str, request: dingtalkattendance__1__0_models.DeleteLeaveRequestRequest, headers: dingtalkattendance__1__0_models.DeleteLeaveRequestHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.DeleteLeaveRequestResponse: """ @summary 撤销请假 @param request: DeleteLeaveRequestRequest @param headers: DeleteLeaveRequestHeaders @param runtime: runtime options for this request RuntimeOptions @return: DeleteLeaveRequestResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.outer_id): body['outerId'] = request.outer_id real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='DeleteLeaveRequest', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/users/{union_id}/vacations/records/revoke', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.DeleteLeaveRequestResponse(), self.execute(params, req, runtime) ) async def delete_leave_request_with_options_async( self, union_id: str, request: dingtalkattendance__1__0_models.DeleteLeaveRequestRequest, headers: dingtalkattendance__1__0_models.DeleteLeaveRequestHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.DeleteLeaveRequestResponse: """ @summary 撤销请假 @param request: DeleteLeaveRequestRequest @param headers: DeleteLeaveRequestHeaders @param runtime: runtime options for this request RuntimeOptions @return: DeleteLeaveRequestResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.outer_id): body['outerId'] = request.outer_id real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='DeleteLeaveRequest', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/users/{union_id}/vacations/records/revoke', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.DeleteLeaveRequestResponse(), await self.execute_async(params, req, runtime) ) def delete_leave_request( self, union_id: str, request: dingtalkattendance__1__0_models.DeleteLeaveRequestRequest, ) -> dingtalkattendance__1__0_models.DeleteLeaveRequestResponse: """ @summary 撤销请假 @param request: DeleteLeaveRequestRequest @return: DeleteLeaveRequestResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.DeleteLeaveRequestHeaders() return self.delete_leave_request_with_options(union_id, request, headers, runtime) async def delete_leave_request_async( self, union_id: str, request: dingtalkattendance__1__0_models.DeleteLeaveRequestRequest, ) -> dingtalkattendance__1__0_models.DeleteLeaveRequestResponse: """ @summary 撤销请假 @param request: DeleteLeaveRequestRequest @return: DeleteLeaveRequestResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.DeleteLeaveRequestHeaders() return await self.delete_leave_request_with_options_async(union_id, request, headers, runtime) def delete_water_mark_template_with_options( self, request: dingtalkattendance__1__0_models.DeleteWaterMarkTemplateRequest, headers: dingtalkattendance__1__0_models.DeleteWaterMarkTemplateHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.DeleteWaterMarkTemplateResponse: """ @summary 删除水印模板 @param request: DeleteWaterMarkTemplateRequest @param headers: DeleteWaterMarkTemplateHeaders @param runtime: runtime options for this request RuntimeOptions @return: DeleteWaterMarkTemplateResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.form_code): query['formCode'] = request.form_code if not UtilClient.is_unset(request.form_content): query['formContent'] = request.form_content if not UtilClient.is_unset(request.open_conversation_id): query['openConversationId'] = request.open_conversation_id if not UtilClient.is_unset(request.system_template): query['systemTemplate'] = request.system_template if not UtilClient.is_unset(request.user_id): query['userId'] = request.user_id real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( action='DeleteWaterMarkTemplate', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/watermarks/templates', method='DELETE', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.DeleteWaterMarkTemplateResponse(), self.execute(params, req, runtime) ) async def delete_water_mark_template_with_options_async( self, request: dingtalkattendance__1__0_models.DeleteWaterMarkTemplateRequest, headers: dingtalkattendance__1__0_models.DeleteWaterMarkTemplateHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.DeleteWaterMarkTemplateResponse: """ @summary 删除水印模板 @param request: DeleteWaterMarkTemplateRequest @param headers: DeleteWaterMarkTemplateHeaders @param runtime: runtime options for this request RuntimeOptions @return: DeleteWaterMarkTemplateResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.form_code): query['formCode'] = request.form_code if not UtilClient.is_unset(request.form_content): query['formContent'] = request.form_content if not UtilClient.is_unset(request.open_conversation_id): query['openConversationId'] = request.open_conversation_id if not UtilClient.is_unset(request.system_template): query['systemTemplate'] = request.system_template if not UtilClient.is_unset(request.user_id): query['userId'] = request.user_id real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( action='DeleteWaterMarkTemplate', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/watermarks/templates', method='DELETE', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.DeleteWaterMarkTemplateResponse(), await self.execute_async(params, req, runtime) ) def delete_water_mark_template( self, request: dingtalkattendance__1__0_models.DeleteWaterMarkTemplateRequest, ) -> dingtalkattendance__1__0_models.DeleteWaterMarkTemplateResponse: """ @summary 删除水印模板 @param request: DeleteWaterMarkTemplateRequest @return: DeleteWaterMarkTemplateResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.DeleteWaterMarkTemplateHeaders() return self.delete_water_mark_template_with_options(request, headers, runtime) async def delete_water_mark_template_async( self, request: dingtalkattendance__1__0_models.DeleteWaterMarkTemplateRequest, ) -> dingtalkattendance__1__0_models.DeleteWaterMarkTemplateResponse: """ @summary 删除水印模板 @param request: DeleteWaterMarkTemplateRequest @return: DeleteWaterMarkTemplateResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.DeleteWaterMarkTemplateHeaders() return await self.delete_water_mark_template_with_options_async(request, headers, runtime) def ding_talk_security_check_with_options( self, request: dingtalkattendance__1__0_models.DingTalkSecurityCheckRequest, headers: dingtalkattendance__1__0_models.DingTalkSecurityCheckHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.DingTalkSecurityCheckResponse: """ @summary 钉钉安全检查 @param request: DingTalkSecurityCheckRequest @param headers: DingTalkSecurityCheckHeaders @param runtime: runtime options for this request RuntimeOptions @return: DingTalkSecurityCheckResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.client_ver): body['clientVer'] = request.client_ver if not UtilClient.is_unset(request.platform): body['platform'] = request.platform if not UtilClient.is_unset(request.platform_ver): body['platformVer'] = request.platform_ver if not UtilClient.is_unset(request.sec): body['sec'] = request.sec if not UtilClient.is_unset(request.user_id): body['userId'] = request.user_id real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='DingTalkSecurityCheck', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/securities/check', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.DingTalkSecurityCheckResponse(), self.execute(params, req, runtime) ) async def ding_talk_security_check_with_options_async( self, request: dingtalkattendance__1__0_models.DingTalkSecurityCheckRequest, headers: dingtalkattendance__1__0_models.DingTalkSecurityCheckHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.DingTalkSecurityCheckResponse: """ @summary 钉钉安全检查 @param request: DingTalkSecurityCheckRequest @param headers: DingTalkSecurityCheckHeaders @param runtime: runtime options for this request RuntimeOptions @return: DingTalkSecurityCheckResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.client_ver): body['clientVer'] = request.client_ver if not UtilClient.is_unset(request.platform): body['platform'] = request.platform if not UtilClient.is_unset(request.platform_ver): body['platformVer'] = request.platform_ver if not UtilClient.is_unset(request.sec): body['sec'] = request.sec if not UtilClient.is_unset(request.user_id): body['userId'] = request.user_id real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='DingTalkSecurityCheck', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/securities/check', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.DingTalkSecurityCheckResponse(), await self.execute_async(params, req, runtime) ) def ding_talk_security_check( self, request: dingtalkattendance__1__0_models.DingTalkSecurityCheckRequest, ) -> dingtalkattendance__1__0_models.DingTalkSecurityCheckResponse: """ @summary 钉钉安全检查 @param request: DingTalkSecurityCheckRequest @return: DingTalkSecurityCheckResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.DingTalkSecurityCheckHeaders() return self.ding_talk_security_check_with_options(request, headers, runtime) async def ding_talk_security_check_async( self, request: dingtalkattendance__1__0_models.DingTalkSecurityCheckRequest, ) -> dingtalkattendance__1__0_models.DingTalkSecurityCheckResponse: """ @summary 钉钉安全检查 @param request: DingTalkSecurityCheckRequest @return: DingTalkSecurityCheckResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.DingTalkSecurityCheckHeaders() return await self.ding_talk_security_check_with_options_async(request, headers, runtime) def get_atmanage_scope_with_options( self, request: dingtalkattendance__1__0_models.GetATManageScopeRequest, headers: dingtalkattendance__1__0_models.GetATManageScopeHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetATManageScopeResponse: """ @summary 查询管理员管理范围下的userid @param request: GetATManageScopeRequest @param headers: GetATManageScopeHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetATManageScopeResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.max_results): query['maxResults'] = request.max_results if not UtilClient.is_unset(request.next_token): query['nextToken'] = request.next_token if not UtilClient.is_unset(request.user_id): query['userId'] = request.user_id real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( action='GetATManageScope', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/manageScopes', method='GET', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetATManageScopeResponse(), self.execute(params, req, runtime) ) async def get_atmanage_scope_with_options_async( self, request: dingtalkattendance__1__0_models.GetATManageScopeRequest, headers: dingtalkattendance__1__0_models.GetATManageScopeHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetATManageScopeResponse: """ @summary 查询管理员管理范围下的userid @param request: GetATManageScopeRequest @param headers: GetATManageScopeHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetATManageScopeResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.max_results): query['maxResults'] = request.max_results if not UtilClient.is_unset(request.next_token): query['nextToken'] = request.next_token if not UtilClient.is_unset(request.user_id): query['userId'] = request.user_id real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( action='GetATManageScope', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/manageScopes', method='GET', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetATManageScopeResponse(), await self.execute_async(params, req, runtime) ) def get_atmanage_scope( self, request: dingtalkattendance__1__0_models.GetATManageScopeRequest, ) -> dingtalkattendance__1__0_models.GetATManageScopeResponse: """ @summary 查询管理员管理范围下的userid @param request: GetATManageScopeRequest @return: GetATManageScopeResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetATManageScopeHeaders() return self.get_atmanage_scope_with_options(request, headers, runtime) async def get_atmanage_scope_async( self, request: dingtalkattendance__1__0_models.GetATManageScopeRequest, ) -> dingtalkattendance__1__0_models.GetATManageScopeResponse: """ @summary 查询管理员管理范围下的userid @param request: GetATManageScopeRequest @return: GetATManageScopeResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetATManageScopeHeaders() return await self.get_atmanage_scope_with_options_async(request, headers, runtime) def get_adjustments_with_options( self, request: dingtalkattendance__1__0_models.GetAdjustmentsRequest, headers: dingtalkattendance__1__0_models.GetAdjustmentsHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetAdjustmentsResponse: """ @summary 获取补卡规则列表 @param request: GetAdjustmentsRequest @param headers: GetAdjustmentsHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetAdjustmentsResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.page_number): query['pageNumber'] = request.page_number if not UtilClient.is_unset(request.page_size): query['pageSize'] = request.page_size real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( action='GetAdjustments', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/adjustments', method='GET', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetAdjustmentsResponse(), self.execute(params, req, runtime) ) async def get_adjustments_with_options_async( self, request: dingtalkattendance__1__0_models.GetAdjustmentsRequest, headers: dingtalkattendance__1__0_models.GetAdjustmentsHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetAdjustmentsResponse: """ @summary 获取补卡规则列表 @param request: GetAdjustmentsRequest @param headers: GetAdjustmentsHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetAdjustmentsResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.page_number): query['pageNumber'] = request.page_number if not UtilClient.is_unset(request.page_size): query['pageSize'] = request.page_size real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( action='GetAdjustments', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/adjustments', method='GET', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetAdjustmentsResponse(), await self.execute_async(params, req, runtime) ) def get_adjustments( self, request: dingtalkattendance__1__0_models.GetAdjustmentsRequest, ) -> dingtalkattendance__1__0_models.GetAdjustmentsResponse: """ @summary 获取补卡规则列表 @param request: GetAdjustmentsRequest @return: GetAdjustmentsResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetAdjustmentsHeaders() return self.get_adjustments_with_options(request, headers, runtime) async def get_adjustments_async( self, request: dingtalkattendance__1__0_models.GetAdjustmentsRequest, ) -> dingtalkattendance__1__0_models.GetAdjustmentsResponse: """ @summary 获取补卡规则列表 @param request: GetAdjustmentsRequest @return: GetAdjustmentsResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetAdjustmentsHeaders() return await self.get_adjustments_with_options_async(request, headers, runtime) def get_check_in_schema_template_with_options( self, request: dingtalkattendance__1__0_models.GetCheckInSchemaTemplateRequest, headers: dingtalkattendance__1__0_models.GetCheckInSchemaTemplateHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetCheckInSchemaTemplateResponse: """ @summary 获取水印打卡模板 @param request: GetCheckInSchemaTemplateRequest @param headers: GetCheckInSchemaTemplateHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetCheckInSchemaTemplateResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.biz_code): query['bizCode'] = request.biz_code if not UtilClient.is_unset(request.open_conversation_id): query['openConversationId'] = request.open_conversation_id if not UtilClient.is_unset(request.scene_code): query['sceneCode'] = request.scene_code if not UtilClient.is_unset(request.user_id): query['userId'] = request.user_id real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( action='GetCheckInSchemaTemplate', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/watermarks/templates', method='GET', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetCheckInSchemaTemplateResponse(), self.execute(params, req, runtime) ) async def get_check_in_schema_template_with_options_async( self, request: dingtalkattendance__1__0_models.GetCheckInSchemaTemplateRequest, headers: dingtalkattendance__1__0_models.GetCheckInSchemaTemplateHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetCheckInSchemaTemplateResponse: """ @summary 获取水印打卡模板 @param request: GetCheckInSchemaTemplateRequest @param headers: GetCheckInSchemaTemplateHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetCheckInSchemaTemplateResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.biz_code): query['bizCode'] = request.biz_code if not UtilClient.is_unset(request.open_conversation_id): query['openConversationId'] = request.open_conversation_id if not UtilClient.is_unset(request.scene_code): query['sceneCode'] = request.scene_code if not UtilClient.is_unset(request.user_id): query['userId'] = request.user_id real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( action='GetCheckInSchemaTemplate', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/watermarks/templates', method='GET', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetCheckInSchemaTemplateResponse(), await self.execute_async(params, req, runtime) ) def get_check_in_schema_template( self, request: dingtalkattendance__1__0_models.GetCheckInSchemaTemplateRequest, ) -> dingtalkattendance__1__0_models.GetCheckInSchemaTemplateResponse: """ @summary 获取水印打卡模板 @param request: GetCheckInSchemaTemplateRequest @return: GetCheckInSchemaTemplateResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetCheckInSchemaTemplateHeaders() return self.get_check_in_schema_template_with_options(request, headers, runtime) async def get_check_in_schema_template_async( self, request: dingtalkattendance__1__0_models.GetCheckInSchemaTemplateRequest, ) -> dingtalkattendance__1__0_models.GetCheckInSchemaTemplateResponse: """ @summary 获取水印打卡模板 @param request: GetCheckInSchemaTemplateRequest @return: GetCheckInSchemaTemplateResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetCheckInSchemaTemplateHeaders() return await self.get_check_in_schema_template_with_options_async(request, headers, runtime) def get_checkin_record_by_user_with_options( self, request: dingtalkattendance__1__0_models.GetCheckinRecordByUserRequest, headers: dingtalkattendance__1__0_models.GetCheckinRecordByUserHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetCheckinRecordByUserResponse: """ @summary 调用本接口,获取用户签到记录。 @param request: GetCheckinRecordByUserRequest @param headers: GetCheckinRecordByUserHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetCheckinRecordByUserResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.end_time): body['endTime'] = request.end_time if not UtilClient.is_unset(request.max_results): body['maxResults'] = request.max_results if not UtilClient.is_unset(request.next_token): body['nextToken'] = request.next_token if not UtilClient.is_unset(request.operator_user_id): body['operatorUserId'] = request.operator_user_id if not UtilClient.is_unset(request.start_time): body['startTime'] = request.start_time if not UtilClient.is_unset(request.user_id_list): body['userIdList'] = request.user_id_list real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='GetCheckinRecordByUser', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/checkin/records/query', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetCheckinRecordByUserResponse(), self.execute(params, req, runtime) ) async def get_checkin_record_by_user_with_options_async( self, request: dingtalkattendance__1__0_models.GetCheckinRecordByUserRequest, headers: dingtalkattendance__1__0_models.GetCheckinRecordByUserHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetCheckinRecordByUserResponse: """ @summary 调用本接口,获取用户签到记录。 @param request: GetCheckinRecordByUserRequest @param headers: GetCheckinRecordByUserHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetCheckinRecordByUserResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.end_time): body['endTime'] = request.end_time if not UtilClient.is_unset(request.max_results): body['maxResults'] = request.max_results if not UtilClient.is_unset(request.next_token): body['nextToken'] = request.next_token if not UtilClient.is_unset(request.operator_user_id): body['operatorUserId'] = request.operator_user_id if not UtilClient.is_unset(request.start_time): body['startTime'] = request.start_time if not UtilClient.is_unset(request.user_id_list): body['userIdList'] = request.user_id_list real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='GetCheckinRecordByUser', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/checkin/records/query', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetCheckinRecordByUserResponse(), await self.execute_async(params, req, runtime) ) def get_checkin_record_by_user( self, request: dingtalkattendance__1__0_models.GetCheckinRecordByUserRequest, ) -> dingtalkattendance__1__0_models.GetCheckinRecordByUserResponse: """ @summary 调用本接口,获取用户签到记录。 @param request: GetCheckinRecordByUserRequest @return: GetCheckinRecordByUserResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetCheckinRecordByUserHeaders() return self.get_checkin_record_by_user_with_options(request, headers, runtime) async def get_checkin_record_by_user_async( self, request: dingtalkattendance__1__0_models.GetCheckinRecordByUserRequest, ) -> dingtalkattendance__1__0_models.GetCheckinRecordByUserResponse: """ @summary 调用本接口,获取用户签到记录。 @param request: GetCheckinRecordByUserRequest @return: GetCheckinRecordByUserResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetCheckinRecordByUserHeaders() return await self.get_checkin_record_by_user_with_options_async(request, headers, runtime) def get_class_with_deleted_with_options( self, class_id: str, headers: dingtalkattendance__1__0_models.GetClassWithDeletedHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetClassWithDeletedResponse: """ @summary 班次查询(包含已删除班次) @param headers: GetClassWithDeletedHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetClassWithDeletedResponse """ real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers ) params = open_api_models.Params( action='GetClassWithDeleted', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/classWithDeleted/{class_id}', method='GET', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetClassWithDeletedResponse(), self.execute(params, req, runtime) ) async def get_class_with_deleted_with_options_async( self, class_id: str, headers: dingtalkattendance__1__0_models.GetClassWithDeletedHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetClassWithDeletedResponse: """ @summary 班次查询(包含已删除班次) @param headers: GetClassWithDeletedHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetClassWithDeletedResponse """ real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers ) params = open_api_models.Params( action='GetClassWithDeleted', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/classWithDeleted/{class_id}', method='GET', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetClassWithDeletedResponse(), await self.execute_async(params, req, runtime) ) def get_class_with_deleted( self, class_id: str, ) -> dingtalkattendance__1__0_models.GetClassWithDeletedResponse: """ @summary 班次查询(包含已删除班次) @return: GetClassWithDeletedResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetClassWithDeletedHeaders() return self.get_class_with_deleted_with_options(class_id, headers, runtime) async def get_class_with_deleted_async( self, class_id: str, ) -> dingtalkattendance__1__0_models.GetClassWithDeletedResponse: """ @summary 班次查询(包含已删除班次) @return: GetClassWithDeletedResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetClassWithDeletedHeaders() return await self.get_class_with_deleted_with_options_async(class_id, headers, runtime) def get_closing_accounts_with_options( self, request: dingtalkattendance__1__0_models.GetClosingAccountsRequest, headers: dingtalkattendance__1__0_models.GetClosingAccountsHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetClosingAccountsResponse: """ @summary 查询指定用户的封账规则 @param request: GetClosingAccountsRequest @param headers: GetClosingAccountsHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetClosingAccountsResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.user_ids): body['userIds'] = request.user_ids real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='GetClosingAccounts', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/closingAccounts/rules/query', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetClosingAccountsResponse(), self.execute(params, req, runtime) ) async def get_closing_accounts_with_options_async( self, request: dingtalkattendance__1__0_models.GetClosingAccountsRequest, headers: dingtalkattendance__1__0_models.GetClosingAccountsHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetClosingAccountsResponse: """ @summary 查询指定用户的封账规则 @param request: GetClosingAccountsRequest @param headers: GetClosingAccountsHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetClosingAccountsResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.user_ids): body['userIds'] = request.user_ids real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='GetClosingAccounts', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/closingAccounts/rules/query', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetClosingAccountsResponse(), await self.execute_async(params, req, runtime) ) def get_closing_accounts( self, request: dingtalkattendance__1__0_models.GetClosingAccountsRequest, ) -> dingtalkattendance__1__0_models.GetClosingAccountsResponse: """ @summary 查询指定用户的封账规则 @param request: GetClosingAccountsRequest @return: GetClosingAccountsResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetClosingAccountsHeaders() return self.get_closing_accounts_with_options(request, headers, runtime) async def get_closing_accounts_async( self, request: dingtalkattendance__1__0_models.GetClosingAccountsRequest, ) -> dingtalkattendance__1__0_models.GetClosingAccountsResponse: """ @summary 查询指定用户的封账规则 @param request: GetClosingAccountsRequest @return: GetClosingAccountsResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetClosingAccountsHeaders() return await self.get_closing_accounts_with_options_async(request, headers, runtime) def get_columnvals_with_options( self, request: dingtalkattendance__1__0_models.GetColumnvalsRequest, headers: dingtalkattendance__1__0_models.GetColumnvalsHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetColumnvalsResponse: """ @summary 获取多个用户的智能考勤报表的列值 @param request: GetColumnvalsRequest @param headers: GetColumnvalsHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetColumnvalsResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.column_id_list): body['columnIdList'] = request.column_id_list if not UtilClient.is_unset(request.from_date): body['fromDate'] = request.from_date if not UtilClient.is_unset(request.to_date): body['toDate'] = request.to_date if not UtilClient.is_unset(request.user_ids): body['userIds'] = request.user_ids real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='GetColumnvals', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/columnValues/query', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetColumnvalsResponse(), self.execute(params, req, runtime) ) async def get_columnvals_with_options_async( self, request: dingtalkattendance__1__0_models.GetColumnvalsRequest, headers: dingtalkattendance__1__0_models.GetColumnvalsHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetColumnvalsResponse: """ @summary 获取多个用户的智能考勤报表的列值 @param request: GetColumnvalsRequest @param headers: GetColumnvalsHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetColumnvalsResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.column_id_list): body['columnIdList'] = request.column_id_list if not UtilClient.is_unset(request.from_date): body['fromDate'] = request.from_date if not UtilClient.is_unset(request.to_date): body['toDate'] = request.to_date if not UtilClient.is_unset(request.user_ids): body['userIds'] = request.user_ids real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='GetColumnvals', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/columnValues/query', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetColumnvalsResponse(), await self.execute_async(params, req, runtime) ) def get_columnvals( self, request: dingtalkattendance__1__0_models.GetColumnvalsRequest, ) -> dingtalkattendance__1__0_models.GetColumnvalsResponse: """ @summary 获取多个用户的智能考勤报表的列值 @param request: GetColumnvalsRequest @return: GetColumnvalsResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetColumnvalsHeaders() return self.get_columnvals_with_options(request, headers, runtime) async def get_columnvals_async( self, request: dingtalkattendance__1__0_models.GetColumnvalsRequest, ) -> dingtalkattendance__1__0_models.GetColumnvalsResponse: """ @summary 获取多个用户的智能考勤报表的列值 @param request: GetColumnvalsRequest @return: GetColumnvalsResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetColumnvalsHeaders() return await self.get_columnvals_with_options_async(request, headers, runtime) def get_leave_records_with_options( self, request: dingtalkattendance__1__0_models.GetLeaveRecordsRequest, headers: dingtalkattendance__1__0_models.GetLeaveRecordsHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetLeaveRecordsResponse: """ @summary 批量查询员工假期余额变更记录 @param request: GetLeaveRecordsRequest @param headers: GetLeaveRecordsHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetLeaveRecordsResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.leave_code): body['leaveCode'] = request.leave_code if not UtilClient.is_unset(request.op_user_id): body['opUserId'] = request.op_user_id if not UtilClient.is_unset(request.page_number): body['pageNumber'] = request.page_number if not UtilClient.is_unset(request.page_size): body['pageSize'] = request.page_size if not UtilClient.is_unset(request.user_ids): body['userIds'] = request.user_ids real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='GetLeaveRecords', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/vacations/records/query', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetLeaveRecordsResponse(), self.execute(params, req, runtime) ) async def get_leave_records_with_options_async( self, request: dingtalkattendance__1__0_models.GetLeaveRecordsRequest, headers: dingtalkattendance__1__0_models.GetLeaveRecordsHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetLeaveRecordsResponse: """ @summary 批量查询员工假期余额变更记录 @param request: GetLeaveRecordsRequest @param headers: GetLeaveRecordsHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetLeaveRecordsResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.leave_code): body['leaveCode'] = request.leave_code if not UtilClient.is_unset(request.op_user_id): body['opUserId'] = request.op_user_id if not UtilClient.is_unset(request.page_number): body['pageNumber'] = request.page_number if not UtilClient.is_unset(request.page_size): body['pageSize'] = request.page_size if not UtilClient.is_unset(request.user_ids): body['userIds'] = request.user_ids real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='GetLeaveRecords', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/vacations/records/query', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetLeaveRecordsResponse(), await self.execute_async(params, req, runtime) ) def get_leave_records( self, request: dingtalkattendance__1__0_models.GetLeaveRecordsRequest, ) -> dingtalkattendance__1__0_models.GetLeaveRecordsResponse: """ @summary 批量查询员工假期余额变更记录 @param request: GetLeaveRecordsRequest @return: GetLeaveRecordsResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetLeaveRecordsHeaders() return self.get_leave_records_with_options(request, headers, runtime) async def get_leave_records_async( self, request: dingtalkattendance__1__0_models.GetLeaveRecordsRequest, ) -> dingtalkattendance__1__0_models.GetLeaveRecordsResponse: """ @summary 批量查询员工假期余额变更记录 @param request: GetLeaveRecordsRequest @return: GetLeaveRecordsResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetLeaveRecordsHeaders() return await self.get_leave_records_with_options_async(request, headers, runtime) def get_leave_type_with_options( self, request: dingtalkattendance__1__0_models.GetLeaveTypeRequest, headers: dingtalkattendance__1__0_models.GetLeaveTypeHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetLeaveTypeResponse: """ @summary 查询假期规则列表 @param request: GetLeaveTypeRequest @param headers: GetLeaveTypeHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetLeaveTypeResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.op_user_id): query['opUserId'] = request.op_user_id if not UtilClient.is_unset(request.vacation_source): query['vacationSource'] = request.vacation_source real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( action='GetLeaveType', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/leaves/types', method='GET', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetLeaveTypeResponse(), self.execute(params, req, runtime) ) async def get_leave_type_with_options_async( self, request: dingtalkattendance__1__0_models.GetLeaveTypeRequest, headers: dingtalkattendance__1__0_models.GetLeaveTypeHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetLeaveTypeResponse: """ @summary 查询假期规则列表 @param request: GetLeaveTypeRequest @param headers: GetLeaveTypeHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetLeaveTypeResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.op_user_id): query['opUserId'] = request.op_user_id if not UtilClient.is_unset(request.vacation_source): query['vacationSource'] = request.vacation_source real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( action='GetLeaveType', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/leaves/types', method='GET', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetLeaveTypeResponse(), await self.execute_async(params, req, runtime) ) def get_leave_type( self, request: dingtalkattendance__1__0_models.GetLeaveTypeRequest, ) -> dingtalkattendance__1__0_models.GetLeaveTypeResponse: """ @summary 查询假期规则列表 @param request: GetLeaveTypeRequest @return: GetLeaveTypeResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetLeaveTypeHeaders() return self.get_leave_type_with_options(request, headers, runtime) async def get_leave_type_async( self, request: dingtalkattendance__1__0_models.GetLeaveTypeRequest, ) -> dingtalkattendance__1__0_models.GetLeaveTypeResponse: """ @summary 查询假期规则列表 @param request: GetLeaveTypeRequest @return: GetLeaveTypeResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetLeaveTypeHeaders() return await self.get_leave_type_with_options_async(request, headers, runtime) def get_machine_with_options( self, dev_id: str, headers: dingtalkattendance__1__0_models.GetMachineHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetMachineResponse: """ @summary 根据设备id获取考勤机信息 @param headers: GetMachineHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetMachineResponse """ real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers ) params = open_api_models.Params( action='GetMachine', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/machines/{dev_id}', method='GET', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetMachineResponse(), self.execute(params, req, runtime) ) async def get_machine_with_options_async( self, dev_id: str, headers: dingtalkattendance__1__0_models.GetMachineHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetMachineResponse: """ @summary 根据设备id获取考勤机信息 @param headers: GetMachineHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetMachineResponse """ real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers ) params = open_api_models.Params( action='GetMachine', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/machines/{dev_id}', method='GET', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetMachineResponse(), await self.execute_async(params, req, runtime) ) def get_machine( self, dev_id: str, ) -> dingtalkattendance__1__0_models.GetMachineResponse: """ @summary 根据设备id获取考勤机信息 @return: GetMachineResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetMachineHeaders() return self.get_machine_with_options(dev_id, headers, runtime) async def get_machine_async( self, dev_id: str, ) -> dingtalkattendance__1__0_models.GetMachineResponse: """ @summary 根据设备id获取考勤机信息 @return: GetMachineResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetMachineHeaders() return await self.get_machine_with_options_async(dev_id, headers, runtime) def get_machine_user_with_options( self, dev_id: str, request: dingtalkattendance__1__0_models.GetMachineUserRequest, headers: dingtalkattendance__1__0_models.GetMachineUserHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetMachineUserResponse: """ @summary 根据设备id获取员工信息 @param request: GetMachineUserRequest @param headers: GetMachineUserHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetMachineUserResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.max_results): query['maxResults'] = request.max_results if not UtilClient.is_unset(request.next_token): query['nextToken'] = request.next_token real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( action='GetMachineUser', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/machines/getUser/{dev_id}', method='GET', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetMachineUserResponse(), self.execute(params, req, runtime) ) async def get_machine_user_with_options_async( self, dev_id: str, request: dingtalkattendance__1__0_models.GetMachineUserRequest, headers: dingtalkattendance__1__0_models.GetMachineUserHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetMachineUserResponse: """ @summary 根据设备id获取员工信息 @param request: GetMachineUserRequest @param headers: GetMachineUserHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetMachineUserResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.max_results): query['maxResults'] = request.max_results if not UtilClient.is_unset(request.next_token): query['nextToken'] = request.next_token real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( action='GetMachineUser', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/machines/getUser/{dev_id}', method='GET', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetMachineUserResponse(), await self.execute_async(params, req, runtime) ) def get_machine_user( self, dev_id: str, request: dingtalkattendance__1__0_models.GetMachineUserRequest, ) -> dingtalkattendance__1__0_models.GetMachineUserResponse: """ @summary 根据设备id获取员工信息 @param request: GetMachineUserRequest @return: GetMachineUserResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetMachineUserHeaders() return self.get_machine_user_with_options(dev_id, request, headers, runtime) async def get_machine_user_async( self, dev_id: str, request: dingtalkattendance__1__0_models.GetMachineUserRequest, ) -> dingtalkattendance__1__0_models.GetMachineUserResponse: """ @summary 根据设备id获取员工信息 @param request: GetMachineUserRequest @return: GetMachineUserResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetMachineUserHeaders() return await self.get_machine_user_with_options_async(dev_id, request, headers, runtime) def get_overdraft_info_with_options( self, request: dingtalkattendance__1__0_models.GetOverdraftInfoRequest, headers: dingtalkattendance__1__0_models.GetOverdraftInfoHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetOverdraftInfoResponse: """ @summary 假期透支信息查询 @param request: GetOverdraftInfoRequest @param headers: GetOverdraftInfoHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetOverdraftInfoResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.leave_code): body['leaveCode'] = request.leave_code if not UtilClient.is_unset(request.user_id_list): body['userIdList'] = request.user_id_list real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='GetOverdraftInfo', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/vacations/overdraft/get', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetOverdraftInfoResponse(), self.execute(params, req, runtime) ) async def get_overdraft_info_with_options_async( self, request: dingtalkattendance__1__0_models.GetOverdraftInfoRequest, headers: dingtalkattendance__1__0_models.GetOverdraftInfoHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetOverdraftInfoResponse: """ @summary 假期透支信息查询 @param request: GetOverdraftInfoRequest @param headers: GetOverdraftInfoHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetOverdraftInfoResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.leave_code): body['leaveCode'] = request.leave_code if not UtilClient.is_unset(request.user_id_list): body['userIdList'] = request.user_id_list real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='GetOverdraftInfo', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/vacations/overdraft/get', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetOverdraftInfoResponse(), await self.execute_async(params, req, runtime) ) def get_overdraft_info( self, request: dingtalkattendance__1__0_models.GetOverdraftInfoRequest, ) -> dingtalkattendance__1__0_models.GetOverdraftInfoResponse: """ @summary 假期透支信息查询 @param request: GetOverdraftInfoRequest @return: GetOverdraftInfoResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetOverdraftInfoHeaders() return self.get_overdraft_info_with_options(request, headers, runtime) async def get_overdraft_info_async( self, request: dingtalkattendance__1__0_models.GetOverdraftInfoRequest, ) -> dingtalkattendance__1__0_models.GetOverdraftInfoResponse: """ @summary 假期透支信息查询 @param request: GetOverdraftInfoRequest @return: GetOverdraftInfoResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetOverdraftInfoHeaders() return await self.get_overdraft_info_with_options_async(request, headers, runtime) def get_overtime_setting_with_options( self, request: dingtalkattendance__1__0_models.GetOvertimeSettingRequest, headers: dingtalkattendance__1__0_models.GetOvertimeSettingHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetOvertimeSettingResponse: """ @summary 批量获取加班规则设置 @param request: GetOvertimeSettingRequest @param headers: GetOvertimeSettingHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetOvertimeSettingResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.overtime_setting_ids): body['overtimeSettingIds'] = request.overtime_setting_ids real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='GetOvertimeSetting', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/overtimeSettings/query', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetOvertimeSettingResponse(), self.execute(params, req, runtime) ) async def get_overtime_setting_with_options_async( self, request: dingtalkattendance__1__0_models.GetOvertimeSettingRequest, headers: dingtalkattendance__1__0_models.GetOvertimeSettingHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetOvertimeSettingResponse: """ @summary 批量获取加班规则设置 @param request: GetOvertimeSettingRequest @param headers: GetOvertimeSettingHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetOvertimeSettingResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.overtime_setting_ids): body['overtimeSettingIds'] = request.overtime_setting_ids real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='GetOvertimeSetting', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/overtimeSettings/query', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetOvertimeSettingResponse(), await self.execute_async(params, req, runtime) ) def get_overtime_setting( self, request: dingtalkattendance__1__0_models.GetOvertimeSettingRequest, ) -> dingtalkattendance__1__0_models.GetOvertimeSettingResponse: """ @summary 批量获取加班规则设置 @param request: GetOvertimeSettingRequest @return: GetOvertimeSettingResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetOvertimeSettingHeaders() return self.get_overtime_setting_with_options(request, headers, runtime) async def get_overtime_setting_async( self, request: dingtalkattendance__1__0_models.GetOvertimeSettingRequest, ) -> dingtalkattendance__1__0_models.GetOvertimeSettingResponse: """ @summary 批量获取加班规则设置 @param request: GetOvertimeSettingRequest @return: GetOvertimeSettingResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetOvertimeSettingHeaders() return await self.get_overtime_setting_with_options_async(request, headers, runtime) def get_shift_with_options( self, request: dingtalkattendance__1__0_models.GetShiftRequest, headers: dingtalkattendance__1__0_models.GetShiftHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetShiftResponse: """ @summary 班次详情 @param request: GetShiftRequest @param headers: GetShiftHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetShiftResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.op_user_id): query['opUserId'] = request.op_user_id if not UtilClient.is_unset(request.shift_id): query['shiftId'] = request.shift_id real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( action='GetShift', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/shifts', method='GET', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetShiftResponse(), self.execute(params, req, runtime) ) async def get_shift_with_options_async( self, request: dingtalkattendance__1__0_models.GetShiftRequest, headers: dingtalkattendance__1__0_models.GetShiftHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetShiftResponse: """ @summary 班次详情 @param request: GetShiftRequest @param headers: GetShiftHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetShiftResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.op_user_id): query['opUserId'] = request.op_user_id if not UtilClient.is_unset(request.shift_id): query['shiftId'] = request.shift_id real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( action='GetShift', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/shifts', method='GET', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetShiftResponse(), await self.execute_async(params, req, runtime) ) def get_shift( self, request: dingtalkattendance__1__0_models.GetShiftRequest, ) -> dingtalkattendance__1__0_models.GetShiftResponse: """ @summary 班次详情 @param request: GetShiftRequest @return: GetShiftResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetShiftHeaders() return self.get_shift_with_options(request, headers, runtime) async def get_shift_async( self, request: dingtalkattendance__1__0_models.GetShiftRequest, ) -> dingtalkattendance__1__0_models.GetShiftResponse: """ @summary 班次详情 @param request: GetShiftRequest @return: GetShiftResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetShiftHeaders() return await self.get_shift_with_options_async(request, headers, runtime) def get_simple_groups_with_options( self, request: dingtalkattendance__1__0_models.GetSimpleGroupsRequest, headers: dingtalkattendance__1__0_models.GetSimpleGroupsHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetSimpleGroupsResponse: """ @summary 获取考勤组列表详情 @param request: GetSimpleGroupsRequest @param headers: GetSimpleGroupsHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetSimpleGroupsResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.max_results): query['maxResults'] = request.max_results if not UtilClient.is_unset(request.next_token): query['nextToken'] = request.next_token real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( action='GetSimpleGroups', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/groupDetails', method='GET', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetSimpleGroupsResponse(), self.execute(params, req, runtime) ) async def get_simple_groups_with_options_async( self, request: dingtalkattendance__1__0_models.GetSimpleGroupsRequest, headers: dingtalkattendance__1__0_models.GetSimpleGroupsHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetSimpleGroupsResponse: """ @summary 获取考勤组列表详情 @param request: GetSimpleGroupsRequest @param headers: GetSimpleGroupsHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetSimpleGroupsResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.max_results): query['maxResults'] = request.max_results if not UtilClient.is_unset(request.next_token): query['nextToken'] = request.next_token real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( action='GetSimpleGroups', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/groupDetails', method='GET', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetSimpleGroupsResponse(), await self.execute_async(params, req, runtime) ) def get_simple_groups( self, request: dingtalkattendance__1__0_models.GetSimpleGroupsRequest, ) -> dingtalkattendance__1__0_models.GetSimpleGroupsResponse: """ @summary 获取考勤组列表详情 @param request: GetSimpleGroupsRequest @return: GetSimpleGroupsResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetSimpleGroupsHeaders() return self.get_simple_groups_with_options(request, headers, runtime) async def get_simple_groups_async( self, request: dingtalkattendance__1__0_models.GetSimpleGroupsRequest, ) -> dingtalkattendance__1__0_models.GetSimpleGroupsResponse: """ @summary 获取考勤组列表详情 @param request: GetSimpleGroupsRequest @return: GetSimpleGroupsResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetSimpleGroupsHeaders() return await self.get_simple_groups_with_options_async(request, headers, runtime) def get_simple_overtime_setting_with_options( self, request: dingtalkattendance__1__0_models.GetSimpleOvertimeSettingRequest, headers: dingtalkattendance__1__0_models.GetSimpleOvertimeSettingHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetSimpleOvertimeSettingResponse: """ @summary 加班规则列表 @param request: GetSimpleOvertimeSettingRequest @param headers: GetSimpleOvertimeSettingHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetSimpleOvertimeSettingResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.page_number): query['pageNumber'] = request.page_number if not UtilClient.is_unset(request.page_size): query['pageSize'] = request.page_size real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( action='GetSimpleOvertimeSetting', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/overtimeSettings', method='GET', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetSimpleOvertimeSettingResponse(), self.execute(params, req, runtime) ) async def get_simple_overtime_setting_with_options_async( self, request: dingtalkattendance__1__0_models.GetSimpleOvertimeSettingRequest, headers: dingtalkattendance__1__0_models.GetSimpleOvertimeSettingHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetSimpleOvertimeSettingResponse: """ @summary 加班规则列表 @param request: GetSimpleOvertimeSettingRequest @param headers: GetSimpleOvertimeSettingHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetSimpleOvertimeSettingResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.page_number): query['pageNumber'] = request.page_number if not UtilClient.is_unset(request.page_size): query['pageSize'] = request.page_size real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( action='GetSimpleOvertimeSetting', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/overtimeSettings', method='GET', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetSimpleOvertimeSettingResponse(), await self.execute_async(params, req, runtime) ) def get_simple_overtime_setting( self, request: dingtalkattendance__1__0_models.GetSimpleOvertimeSettingRequest, ) -> dingtalkattendance__1__0_models.GetSimpleOvertimeSettingResponse: """ @summary 加班规则列表 @param request: GetSimpleOvertimeSettingRequest @return: GetSimpleOvertimeSettingResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetSimpleOvertimeSettingHeaders() return self.get_simple_overtime_setting_with_options(request, headers, runtime) async def get_simple_overtime_setting_async( self, request: dingtalkattendance__1__0_models.GetSimpleOvertimeSettingRequest, ) -> dingtalkattendance__1__0_models.GetSimpleOvertimeSettingResponse: """ @summary 加班规则列表 @param request: GetSimpleOvertimeSettingRequest @return: GetSimpleOvertimeSettingResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetSimpleOvertimeSettingHeaders() return await self.get_simple_overtime_setting_with_options_async(request, headers, runtime) def get_user_holidays_with_options( self, request: dingtalkattendance__1__0_models.GetUserHolidaysRequest, headers: dingtalkattendance__1__0_models.GetUserHolidaysHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetUserHolidaysResponse: """ @summary 查询员工某段时间的假期 @param request: GetUserHolidaysRequest @param headers: GetUserHolidaysHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetUserHolidaysResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.user_ids): body['userIds'] = request.user_ids if not UtilClient.is_unset(request.work_date_from): body['workDateFrom'] = request.work_date_from if not UtilClient.is_unset(request.work_date_to): body['workDateTo'] = request.work_date_to real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='GetUserHolidays', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/holidays', method='POST', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetUserHolidaysResponse(), self.execute(params, req, runtime) ) async def get_user_holidays_with_options_async( self, request: dingtalkattendance__1__0_models.GetUserHolidaysRequest, headers: dingtalkattendance__1__0_models.GetUserHolidaysHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GetUserHolidaysResponse: """ @summary 查询员工某段时间的假期 @param request: GetUserHolidaysRequest @param headers: GetUserHolidaysHeaders @param runtime: runtime options for this request RuntimeOptions @return: GetUserHolidaysResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.user_ids): body['userIds'] = request.user_ids if not UtilClient.is_unset(request.work_date_from): body['workDateFrom'] = request.work_date_from if not UtilClient.is_unset(request.work_date_to): body['workDateTo'] = request.work_date_to real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='GetUserHolidays', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/holidays', method='POST', auth_type='AK', style='ROA', req_body_type='json', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GetUserHolidaysResponse(), await self.execute_async(params, req, runtime) ) def get_user_holidays( self, request: dingtalkattendance__1__0_models.GetUserHolidaysRequest, ) -> dingtalkattendance__1__0_models.GetUserHolidaysResponse: """ @summary 查询员工某段时间的假期 @param request: GetUserHolidaysRequest @return: GetUserHolidaysResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetUserHolidaysHeaders() return self.get_user_holidays_with_options(request, headers, runtime) async def get_user_holidays_async( self, request: dingtalkattendance__1__0_models.GetUserHolidaysRequest, ) -> dingtalkattendance__1__0_models.GetUserHolidaysResponse: """ @summary 查询员工某段时间的假期 @param request: GetUserHolidaysRequest @return: GetUserHolidaysResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GetUserHolidaysHeaders() return await self.get_user_holidays_with_options_async(request, headers, runtime) def group_add_with_options( self, request: dingtalkattendance__1__0_models.GroupAddRequest, headers: dingtalkattendance__1__0_models.GroupAddHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GroupAddResponse: """ @summary 创建考勤组 @param request: GroupAddRequest @param headers: GroupAddHeaders @param runtime: runtime options for this request RuntimeOptions @return: GroupAddResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.op_user_id): query['opUserId'] = request.op_user_id body = {} if not UtilClient.is_unset(request.adjustment_setting_id): body['adjustmentSettingId'] = request.adjustment_setting_id if not UtilClient.is_unset(request.ble_device_list): body['bleDeviceList'] = request.ble_device_list if not UtilClient.is_unset(request.check_need_healthy_code): body['checkNeedHealthyCode'] = request.check_need_healthy_code if not UtilClient.is_unset(request.default_class_id): body['defaultClassId'] = request.default_class_id if not UtilClient.is_unset(request.disable_check_when_rest): body['disableCheckWhenRest'] = request.disable_check_when_rest if not UtilClient.is_unset(request.disable_check_without_schedule): body['disableCheckWithoutSchedule'] = request.disable_check_without_schedule if not UtilClient.is_unset(request.enable_camera_check): body['enableCameraCheck'] = request.enable_camera_check if not UtilClient.is_unset(request.enable_emp_select_class): body['enableEmpSelectClass'] = request.enable_emp_select_class if not UtilClient.is_unset(request.enable_face_check): body['enableFaceCheck'] = request.enable_face_check if not UtilClient.is_unset(request.enable_face_strict_mode): body['enableFaceStrictMode'] = request.enable_face_strict_mode if not UtilClient.is_unset(request.enable_next_day): body['enableNextDay'] = request.enable_next_day if not UtilClient.is_unset(request.enable_out_side_update_normal_check): body['enableOutSideUpdateNormalCheck'] = request.enable_out_side_update_normal_check if not UtilClient.is_unset(request.enable_outside_apply): body['enableOutsideApply'] = request.enable_outside_apply if not UtilClient.is_unset(request.enable_outside_camera_check): body['enableOutsideCameraCheck'] = request.enable_outside_camera_check if not UtilClient.is_unset(request.enable_outside_check): body['enableOutsideCheck'] = request.enable_outside_check if not UtilClient.is_unset(request.enable_outside_remark): body['enableOutsideRemark'] = request.enable_outside_remark if not UtilClient.is_unset(request.enable_position_ble): body['enablePositionBle'] = request.enable_position_ble if not UtilClient.is_unset(request.enable_trim_distance): body['enableTrimDistance'] = request.enable_trim_distance if not UtilClient.is_unset(request.forbid_hide_out_side_address): body['forbidHideOutSideAddress'] = request.forbid_hide_out_side_address if not UtilClient.is_unset(request.free_check_setting): body['freeCheckSetting'] = request.free_check_setting if not UtilClient.is_unset(request.free_check_type_id): body['freeCheckTypeId'] = request.free_check_type_id if not UtilClient.is_unset(request.freecheck_day_start_min_offset): body['freecheckDayStartMinOffset'] = request.freecheck_day_start_min_offset if not UtilClient.is_unset(request.freecheck_work_days): body['freecheckWorkDays'] = request.freecheck_work_days if not UtilClient.is_unset(request.group_id): body['groupId'] = request.group_id if not UtilClient.is_unset(request.group_name): body['groupName'] = request.group_name if not UtilClient.is_unset(request.manager_list): body['managerList'] = request.manager_list if not UtilClient.is_unset(request.members): body['members'] = request.members if not UtilClient.is_unset(request.modify_member): body['modifyMember'] = request.modify_member if not UtilClient.is_unset(request.offset): body['offset'] = request.offset if not UtilClient.is_unset(request.only_machine_check): body['onlyMachineCheck'] = request.only_machine_check if not UtilClient.is_unset(request.open_camera_check): body['openCameraCheck'] = request.open_camera_check if not UtilClient.is_unset(request.open_face_check): body['openFaceCheck'] = request.open_face_check if not UtilClient.is_unset(request.outside_check_approve_mode_id): body['outsideCheckApproveModeId'] = request.outside_check_approve_mode_id if not UtilClient.is_unset(request.overtime_setting_id): body['overtimeSettingId'] = request.overtime_setting_id if not UtilClient.is_unset(request.owner): body['owner'] = request.owner if not UtilClient.is_unset(request.positions): body['positions'] = request.positions if not UtilClient.is_unset(request.resource_permission_map): body['resourcePermissionMap'] = request.resource_permission_map if not UtilClient.is_unset(request.shift_volist): body['shiftVOList'] = request.shift_volist if not UtilClient.is_unset(request.skip_holidays): body['skipHolidays'] = request.skip_holidays if not UtilClient.is_unset(request.special_days): body['specialDays'] = request.special_days if not UtilClient.is_unset(request.trim_distance): body['trimDistance'] = request.trim_distance if not UtilClient.is_unset(request.type): body['type'] = request.type if not UtilClient.is_unset(request.wifis): body['wifis'] = request.wifis if not UtilClient.is_unset(request.workday_class_list): body['workdayClassList'] = request.workday_class_list real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query), body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='GroupAdd', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/groups', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GroupAddResponse(), self.execute(params, req, runtime) ) async def group_add_with_options_async( self, request: dingtalkattendance__1__0_models.GroupAddRequest, headers: dingtalkattendance__1__0_models.GroupAddHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GroupAddResponse: """ @summary 创建考勤组 @param request: GroupAddRequest @param headers: GroupAddHeaders @param runtime: runtime options for this request RuntimeOptions @return: GroupAddResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.op_user_id): query['opUserId'] = request.op_user_id body = {} if not UtilClient.is_unset(request.adjustment_setting_id): body['adjustmentSettingId'] = request.adjustment_setting_id if not UtilClient.is_unset(request.ble_device_list): body['bleDeviceList'] = request.ble_device_list if not UtilClient.is_unset(request.check_need_healthy_code): body['checkNeedHealthyCode'] = request.check_need_healthy_code if not UtilClient.is_unset(request.default_class_id): body['defaultClassId'] = request.default_class_id if not UtilClient.is_unset(request.disable_check_when_rest): body['disableCheckWhenRest'] = request.disable_check_when_rest if not UtilClient.is_unset(request.disable_check_without_schedule): body['disableCheckWithoutSchedule'] = request.disable_check_without_schedule if not UtilClient.is_unset(request.enable_camera_check): body['enableCameraCheck'] = request.enable_camera_check if not UtilClient.is_unset(request.enable_emp_select_class): body['enableEmpSelectClass'] = request.enable_emp_select_class if not UtilClient.is_unset(request.enable_face_check): body['enableFaceCheck'] = request.enable_face_check if not UtilClient.is_unset(request.enable_face_strict_mode): body['enableFaceStrictMode'] = request.enable_face_strict_mode if not UtilClient.is_unset(request.enable_next_day): body['enableNextDay'] = request.enable_next_day if not UtilClient.is_unset(request.enable_out_side_update_normal_check): body['enableOutSideUpdateNormalCheck'] = request.enable_out_side_update_normal_check if not UtilClient.is_unset(request.enable_outside_apply): body['enableOutsideApply'] = request.enable_outside_apply if not UtilClient.is_unset(request.enable_outside_camera_check): body['enableOutsideCameraCheck'] = request.enable_outside_camera_check if not UtilClient.is_unset(request.enable_outside_check): body['enableOutsideCheck'] = request.enable_outside_check if not UtilClient.is_unset(request.enable_outside_remark): body['enableOutsideRemark'] = request.enable_outside_remark if not UtilClient.is_unset(request.enable_position_ble): body['enablePositionBle'] = request.enable_position_ble if not UtilClient.is_unset(request.enable_trim_distance): body['enableTrimDistance'] = request.enable_trim_distance if not UtilClient.is_unset(request.forbid_hide_out_side_address): body['forbidHideOutSideAddress'] = request.forbid_hide_out_side_address if not UtilClient.is_unset(request.free_check_setting): body['freeCheckSetting'] = request.free_check_setting if not UtilClient.is_unset(request.free_check_type_id): body['freeCheckTypeId'] = request.free_check_type_id if not UtilClient.is_unset(request.freecheck_day_start_min_offset): body['freecheckDayStartMinOffset'] = request.freecheck_day_start_min_offset if not UtilClient.is_unset(request.freecheck_work_days): body['freecheckWorkDays'] = request.freecheck_work_days if not UtilClient.is_unset(request.group_id): body['groupId'] = request.group_id if not UtilClient.is_unset(request.group_name): body['groupName'] = request.group_name if not UtilClient.is_unset(request.manager_list): body['managerList'] = request.manager_list if not UtilClient.is_unset(request.members): body['members'] = request.members if not UtilClient.is_unset(request.modify_member): body['modifyMember'] = request.modify_member if not UtilClient.is_unset(request.offset): body['offset'] = request.offset if not UtilClient.is_unset(request.only_machine_check): body['onlyMachineCheck'] = request.only_machine_check if not UtilClient.is_unset(request.open_camera_check): body['openCameraCheck'] = request.open_camera_check if not UtilClient.is_unset(request.open_face_check): body['openFaceCheck'] = request.open_face_check if not UtilClient.is_unset(request.outside_check_approve_mode_id): body['outsideCheckApproveModeId'] = request.outside_check_approve_mode_id if not UtilClient.is_unset(request.overtime_setting_id): body['overtimeSettingId'] = request.overtime_setting_id if not UtilClient.is_unset(request.owner): body['owner'] = request.owner if not UtilClient.is_unset(request.positions): body['positions'] = request.positions if not UtilClient.is_unset(request.resource_permission_map): body['resourcePermissionMap'] = request.resource_permission_map if not UtilClient.is_unset(request.shift_volist): body['shiftVOList'] = request.shift_volist if not UtilClient.is_unset(request.skip_holidays): body['skipHolidays'] = request.skip_holidays if not UtilClient.is_unset(request.special_days): body['specialDays'] = request.special_days if not UtilClient.is_unset(request.trim_distance): body['trimDistance'] = request.trim_distance if not UtilClient.is_unset(request.type): body['type'] = request.type if not UtilClient.is_unset(request.wifis): body['wifis'] = request.wifis if not UtilClient.is_unset(request.workday_class_list): body['workdayClassList'] = request.workday_class_list real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query), body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='GroupAdd', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/groups', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GroupAddResponse(), await self.execute_async(params, req, runtime) ) def group_add( self, request: dingtalkattendance__1__0_models.GroupAddRequest, ) -> dingtalkattendance__1__0_models.GroupAddResponse: """ @summary 创建考勤组 @param request: GroupAddRequest @return: GroupAddResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GroupAddHeaders() return self.group_add_with_options(request, headers, runtime) async def group_add_async( self, request: dingtalkattendance__1__0_models.GroupAddRequest, ) -> dingtalkattendance__1__0_models.GroupAddResponse: """ @summary 创建考勤组 @param request: GroupAddRequest @return: GroupAddResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GroupAddHeaders() return await self.group_add_with_options_async(request, headers, runtime) def group_update_with_options( self, request: dingtalkattendance__1__0_models.GroupUpdateRequest, headers: dingtalkattendance__1__0_models.GroupUpdateHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GroupUpdateResponse: """ @summary 修改考勤组 @param request: GroupUpdateRequest @param headers: GroupUpdateHeaders @param runtime: runtime options for this request RuntimeOptions @return: GroupUpdateResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.op_user_id): query['opUserId'] = request.op_user_id body = {} if not UtilClient.is_unset(request.adjustment_setting_id): body['adjustmentSettingId'] = request.adjustment_setting_id if not UtilClient.is_unset(request.disable_check_when_rest): body['disableCheckWhenRest'] = request.disable_check_when_rest if not UtilClient.is_unset(request.disable_check_without_schedule): body['disableCheckWithoutSchedule'] = request.disable_check_without_schedule if not UtilClient.is_unset(request.enable_camera_check): body['enableCameraCheck'] = request.enable_camera_check if not UtilClient.is_unset(request.enable_emp_select_class): body['enableEmpSelectClass'] = request.enable_emp_select_class if not UtilClient.is_unset(request.enable_face_check): body['enableFaceCheck'] = request.enable_face_check if not UtilClient.is_unset(request.enable_face_strict_mode): body['enableFaceStrictMode'] = request.enable_face_strict_mode if not UtilClient.is_unset(request.enable_out_side_update_normal_check): body['enableOutSideUpdateNormalCheck'] = request.enable_out_side_update_normal_check if not UtilClient.is_unset(request.enable_outside_apply): body['enableOutsideApply'] = request.enable_outside_apply if not UtilClient.is_unset(request.enable_outside_check): body['enableOutsideCheck'] = request.enable_outside_check if not UtilClient.is_unset(request.enable_outside_remark): body['enableOutsideRemark'] = request.enable_outside_remark if not UtilClient.is_unset(request.enable_trim_distance): body['enableTrimDistance'] = request.enable_trim_distance if not UtilClient.is_unset(request.forbid_hide_out_side_address): body['forbidHideOutSideAddress'] = request.forbid_hide_out_side_address if not UtilClient.is_unset(request.free_check_setting): body['freeCheckSetting'] = request.free_check_setting if not UtilClient.is_unset(request.free_check_type_id): body['freeCheckTypeId'] = request.free_check_type_id if not UtilClient.is_unset(request.freecheck_day_start_min_offset): body['freecheckDayStartMinOffset'] = request.freecheck_day_start_min_offset if not UtilClient.is_unset(request.group_id): body['groupId'] = request.group_id if not UtilClient.is_unset(request.group_name): body['groupName'] = request.group_name if not UtilClient.is_unset(request.manager_list): body['managerList'] = request.manager_list if not UtilClient.is_unset(request.offset): body['offset'] = request.offset if not UtilClient.is_unset(request.only_machine_check): body['onlyMachineCheck'] = request.only_machine_check if not UtilClient.is_unset(request.open_camera_check): body['openCameraCheck'] = request.open_camera_check if not UtilClient.is_unset(request.open_face_check): body['openFaceCheck'] = request.open_face_check if not UtilClient.is_unset(request.outside_check_approve_mode_id): body['outsideCheckApproveModeId'] = request.outside_check_approve_mode_id if not UtilClient.is_unset(request.overtime_setting_id): body['overtimeSettingId'] = request.overtime_setting_id if not UtilClient.is_unset(request.owner): body['owner'] = request.owner if not UtilClient.is_unset(request.positions): body['positions'] = request.positions if not UtilClient.is_unset(request.resource_permission_map): body['resourcePermissionMap'] = request.resource_permission_map if not UtilClient.is_unset(request.shift_volist): body['shiftVOList'] = request.shift_volist if not UtilClient.is_unset(request.skip_holidays): body['skipHolidays'] = request.skip_holidays if not UtilClient.is_unset(request.trim_distance): body['trimDistance'] = request.trim_distance if not UtilClient.is_unset(request.workday_class_list): body['workdayClassList'] = request.workday_class_list real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query), body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='GroupUpdate', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/groups', method='PUT', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GroupUpdateResponse(), self.execute(params, req, runtime) ) async def group_update_with_options_async( self, request: dingtalkattendance__1__0_models.GroupUpdateRequest, headers: dingtalkattendance__1__0_models.GroupUpdateHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.GroupUpdateResponse: """ @summary 修改考勤组 @param request: GroupUpdateRequest @param headers: GroupUpdateHeaders @param runtime: runtime options for this request RuntimeOptions @return: GroupUpdateResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.op_user_id): query['opUserId'] = request.op_user_id body = {} if not UtilClient.is_unset(request.adjustment_setting_id): body['adjustmentSettingId'] = request.adjustment_setting_id if not UtilClient.is_unset(request.disable_check_when_rest): body['disableCheckWhenRest'] = request.disable_check_when_rest if not UtilClient.is_unset(request.disable_check_without_schedule): body['disableCheckWithoutSchedule'] = request.disable_check_without_schedule if not UtilClient.is_unset(request.enable_camera_check): body['enableCameraCheck'] = request.enable_camera_check if not UtilClient.is_unset(request.enable_emp_select_class): body['enableEmpSelectClass'] = request.enable_emp_select_class if not UtilClient.is_unset(request.enable_face_check): body['enableFaceCheck'] = request.enable_face_check if not UtilClient.is_unset(request.enable_face_strict_mode): body['enableFaceStrictMode'] = request.enable_face_strict_mode if not UtilClient.is_unset(request.enable_out_side_update_normal_check): body['enableOutSideUpdateNormalCheck'] = request.enable_out_side_update_normal_check if not UtilClient.is_unset(request.enable_outside_apply): body['enableOutsideApply'] = request.enable_outside_apply if not UtilClient.is_unset(request.enable_outside_check): body['enableOutsideCheck'] = request.enable_outside_check if not UtilClient.is_unset(request.enable_outside_remark): body['enableOutsideRemark'] = request.enable_outside_remark if not UtilClient.is_unset(request.enable_trim_distance): body['enableTrimDistance'] = request.enable_trim_distance if not UtilClient.is_unset(request.forbid_hide_out_side_address): body['forbidHideOutSideAddress'] = request.forbid_hide_out_side_address if not UtilClient.is_unset(request.free_check_setting): body['freeCheckSetting'] = request.free_check_setting if not UtilClient.is_unset(request.free_check_type_id): body['freeCheckTypeId'] = request.free_check_type_id if not UtilClient.is_unset(request.freecheck_day_start_min_offset): body['freecheckDayStartMinOffset'] = request.freecheck_day_start_min_offset if not UtilClient.is_unset(request.group_id): body['groupId'] = request.group_id if not UtilClient.is_unset(request.group_name): body['groupName'] = request.group_name if not UtilClient.is_unset(request.manager_list): body['managerList'] = request.manager_list if not UtilClient.is_unset(request.offset): body['offset'] = request.offset if not UtilClient.is_unset(request.only_machine_check): body['onlyMachineCheck'] = request.only_machine_check if not UtilClient.is_unset(request.open_camera_check): body['openCameraCheck'] = request.open_camera_check if not UtilClient.is_unset(request.open_face_check): body['openFaceCheck'] = request.open_face_check if not UtilClient.is_unset(request.outside_check_approve_mode_id): body['outsideCheckApproveModeId'] = request.outside_check_approve_mode_id if not UtilClient.is_unset(request.overtime_setting_id): body['overtimeSettingId'] = request.overtime_setting_id if not UtilClient.is_unset(request.owner): body['owner'] = request.owner if not UtilClient.is_unset(request.positions): body['positions'] = request.positions if not UtilClient.is_unset(request.resource_permission_map): body['resourcePermissionMap'] = request.resource_permission_map if not UtilClient.is_unset(request.shift_volist): body['shiftVOList'] = request.shift_volist if not UtilClient.is_unset(request.skip_holidays): body['skipHolidays'] = request.skip_holidays if not UtilClient.is_unset(request.trim_distance): body['trimDistance'] = request.trim_distance if not UtilClient.is_unset(request.workday_class_list): body['workdayClassList'] = request.workday_class_list real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query), body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='GroupUpdate', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/groups', method='PUT', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.GroupUpdateResponse(), await self.execute_async(params, req, runtime) ) def group_update( self, request: dingtalkattendance__1__0_models.GroupUpdateRequest, ) -> dingtalkattendance__1__0_models.GroupUpdateResponse: """ @summary 修改考勤组 @param request: GroupUpdateRequest @return: GroupUpdateResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GroupUpdateHeaders() return self.group_update_with_options(request, headers, runtime) async def group_update_async( self, request: dingtalkattendance__1__0_models.GroupUpdateRequest, ) -> dingtalkattendance__1__0_models.GroupUpdateResponse: """ @summary 修改考勤组 @param request: GroupUpdateRequest @return: GroupUpdateResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.GroupUpdateHeaders() return await self.group_update_with_options_async(request, headers, runtime) def init_and_get_leave_allocation_quotas_with_options( self, request: dingtalkattendance__1__0_models.InitAndGetLeaveALlocationQuotasRequest, headers: dingtalkattendance__1__0_models.InitAndGetLeaveALlocationQuotasHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.InitAndGetLeaveALlocationQuotasResponse: """ @summary 生态系统假期初始化查询余额接口 @param request: InitAndGetLeaveALlocationQuotasRequest @param headers: InitAndGetLeaveALlocationQuotasHeaders @param runtime: runtime options for this request RuntimeOptions @return: InitAndGetLeaveALlocationQuotasResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.leave_code): query['leaveCode'] = request.leave_code if not UtilClient.is_unset(request.op_user_id): query['opUserId'] = request.op_user_id if not UtilClient.is_unset(request.user_id): query['userId'] = request.user_id real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( action='InitAndGetLeaveALlocationQuotas', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/leaves/initializations/balances', method='GET', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.InitAndGetLeaveALlocationQuotasResponse(), self.execute(params, req, runtime) ) async def init_and_get_leave_allocation_quotas_with_options_async( self, request: dingtalkattendance__1__0_models.InitAndGetLeaveALlocationQuotasRequest, headers: dingtalkattendance__1__0_models.InitAndGetLeaveALlocationQuotasHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.InitAndGetLeaveALlocationQuotasResponse: """ @summary 生态系统假期初始化查询余额接口 @param request: InitAndGetLeaveALlocationQuotasRequest @param headers: InitAndGetLeaveALlocationQuotasHeaders @param runtime: runtime options for this request RuntimeOptions @return: InitAndGetLeaveALlocationQuotasResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.leave_code): query['leaveCode'] = request.leave_code if not UtilClient.is_unset(request.op_user_id): query['opUserId'] = request.op_user_id if not UtilClient.is_unset(request.user_id): query['userId'] = request.user_id real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( action='InitAndGetLeaveALlocationQuotas', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/leaves/initializations/balances', method='GET', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.InitAndGetLeaveALlocationQuotasResponse(), await self.execute_async(params, req, runtime) ) def init_and_get_leave_allocation_quotas( self, request: dingtalkattendance__1__0_models.InitAndGetLeaveALlocationQuotasRequest, ) -> dingtalkattendance__1__0_models.InitAndGetLeaveALlocationQuotasResponse: """ @summary 生态系统假期初始化查询余额接口 @param request: InitAndGetLeaveALlocationQuotasRequest @return: InitAndGetLeaveALlocationQuotasResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.InitAndGetLeaveALlocationQuotasHeaders() return self.init_and_get_leave_allocation_quotas_with_options(request, headers, runtime) async def init_and_get_leave_allocation_quotas_async( self, request: dingtalkattendance__1__0_models.InitAndGetLeaveALlocationQuotasRequest, ) -> dingtalkattendance__1__0_models.InitAndGetLeaveALlocationQuotasResponse: """ @summary 生态系统假期初始化查询余额接口 @param request: InitAndGetLeaveALlocationQuotasRequest @return: InitAndGetLeaveALlocationQuotasResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.InitAndGetLeaveALlocationQuotasHeaders() return await self.init_and_get_leave_allocation_quotas_with_options_async(request, headers, runtime) def list_approve_by_users_with_options( self, request: dingtalkattendance__1__0_models.ListApproveByUsersRequest, headers: dingtalkattendance__1__0_models.ListApproveByUsersHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.ListApproveByUsersResponse: """ @summary 获取用户某段时间内同步到考勤的审批单信息 @param request: ListApproveByUsersRequest @param headers: ListApproveByUsersHeaders @param runtime: runtime options for this request RuntimeOptions @return: ListApproveByUsersResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.biz_types): body['bizTypes'] = request.biz_types if not UtilClient.is_unset(request.from_date_time): body['fromDateTime'] = request.from_date_time if not UtilClient.is_unset(request.to_date_time): body['toDateTime'] = request.to_date_time if not UtilClient.is_unset(request.user_ids): body['userIds'] = request.user_ids real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='ListApproveByUsers', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/approvals/query', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.ListApproveByUsersResponse(), self.execute(params, req, runtime) ) async def list_approve_by_users_with_options_async( self, request: dingtalkattendance__1__0_models.ListApproveByUsersRequest, headers: dingtalkattendance__1__0_models.ListApproveByUsersHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.ListApproveByUsersResponse: """ @summary 获取用户某段时间内同步到考勤的审批单信息 @param request: ListApproveByUsersRequest @param headers: ListApproveByUsersHeaders @param runtime: runtime options for this request RuntimeOptions @return: ListApproveByUsersResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.biz_types): body['bizTypes'] = request.biz_types if not UtilClient.is_unset(request.from_date_time): body['fromDateTime'] = request.from_date_time if not UtilClient.is_unset(request.to_date_time): body['toDateTime'] = request.to_date_time if not UtilClient.is_unset(request.user_ids): body['userIds'] = request.user_ids real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='ListApproveByUsers', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/approvals/query', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.ListApproveByUsersResponse(), await self.execute_async(params, req, runtime) ) def list_approve_by_users( self, request: dingtalkattendance__1__0_models.ListApproveByUsersRequest, ) -> dingtalkattendance__1__0_models.ListApproveByUsersResponse: """ @summary 获取用户某段时间内同步到考勤的审批单信息 @param request: ListApproveByUsersRequest @return: ListApproveByUsersResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.ListApproveByUsersHeaders() return self.list_approve_by_users_with_options(request, headers, runtime) async def list_approve_by_users_async( self, request: dingtalkattendance__1__0_models.ListApproveByUsersRequest, ) -> dingtalkattendance__1__0_models.ListApproveByUsersResponse: """ @summary 获取用户某段时间内同步到考勤的审批单信息 @param request: ListApproveByUsersRequest @return: ListApproveByUsersResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.ListApproveByUsersHeaders() return await self.list_approve_by_users_with_options_async(request, headers, runtime) def modify_water_mark_template_with_options( self, request: dingtalkattendance__1__0_models.ModifyWaterMarkTemplateRequest, headers: dingtalkattendance__1__0_models.ModifyWaterMarkTemplateHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.ModifyWaterMarkTemplateResponse: """ @summary 修改水印模板 @param request: ModifyWaterMarkTemplateRequest @param headers: ModifyWaterMarkTemplateHeaders @param runtime: runtime options for this request RuntimeOptions @return: ModifyWaterMarkTemplateResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.open_conversation_id): query['openConversationId'] = request.open_conversation_id if not UtilClient.is_unset(request.user_id): query['userId'] = request.user_id body = {} if not UtilClient.is_unset(request.form_code): body['formCode'] = request.form_code if not UtilClient.is_unset(request.icon): body['icon'] = request.icon if not UtilClient.is_unset(request.layout_design_id): body['layoutDesignId'] = request.layout_design_id if not UtilClient.is_unset(request.schema_content): body['schemaContent'] = request.schema_content if not UtilClient.is_unset(request.title): body['title'] = request.title if not UtilClient.is_unset(request.water_mark_id): body['waterMarkId'] = request.water_mark_id real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query), body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='ModifyWaterMarkTemplate', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/watermarks/templates', method='PUT', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.ModifyWaterMarkTemplateResponse(), self.execute(params, req, runtime) ) async def modify_water_mark_template_with_options_async( self, request: dingtalkattendance__1__0_models.ModifyWaterMarkTemplateRequest, headers: dingtalkattendance__1__0_models.ModifyWaterMarkTemplateHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.ModifyWaterMarkTemplateResponse: """ @summary 修改水印模板 @param request: ModifyWaterMarkTemplateRequest @param headers: ModifyWaterMarkTemplateHeaders @param runtime: runtime options for this request RuntimeOptions @return: ModifyWaterMarkTemplateResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.open_conversation_id): query['openConversationId'] = request.open_conversation_id if not UtilClient.is_unset(request.user_id): query['userId'] = request.user_id body = {} if not UtilClient.is_unset(request.form_code): body['formCode'] = request.form_code if not UtilClient.is_unset(request.icon): body['icon'] = request.icon if not UtilClient.is_unset(request.layout_design_id): body['layoutDesignId'] = request.layout_design_id if not UtilClient.is_unset(request.schema_content): body['schemaContent'] = request.schema_content if not UtilClient.is_unset(request.title): body['title'] = request.title if not UtilClient.is_unset(request.water_mark_id): body['waterMarkId'] = request.water_mark_id real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query), body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='ModifyWaterMarkTemplate', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/watermarks/templates', method='PUT', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.ModifyWaterMarkTemplateResponse(), await self.execute_async(params, req, runtime) ) def modify_water_mark_template( self, request: dingtalkattendance__1__0_models.ModifyWaterMarkTemplateRequest, ) -> dingtalkattendance__1__0_models.ModifyWaterMarkTemplateResponse: """ @summary 修改水印模板 @param request: ModifyWaterMarkTemplateRequest @return: ModifyWaterMarkTemplateResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.ModifyWaterMarkTemplateHeaders() return self.modify_water_mark_template_with_options(request, headers, runtime) async def modify_water_mark_template_async( self, request: dingtalkattendance__1__0_models.ModifyWaterMarkTemplateRequest, ) -> dingtalkattendance__1__0_models.ModifyWaterMarkTemplateResponse: """ @summary 修改水印模板 @param request: ModifyWaterMarkTemplateRequest @return: ModifyWaterMarkTemplateResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.ModifyWaterMarkTemplateHeaders() return await self.modify_water_mark_template_with_options_async(request, headers, runtime) def process_approve_create_with_options( self, request: dingtalkattendance__1__0_models.ProcessApproveCreateRequest, headers: dingtalkattendance__1__0_models.ProcessApproveCreateHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.ProcessApproveCreateResponse: """ @summary 创建考勤打卡审批单 @param request: ProcessApproveCreateRequest @param headers: ProcessApproveCreateHeaders @param runtime: runtime options for this request RuntimeOptions @return: ProcessApproveCreateResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.approve_id): body['approveId'] = request.approve_id if not UtilClient.is_unset(request.op_user_id): body['opUserId'] = request.op_user_id if not UtilClient.is_unset(request.punch_param): body['punchParam'] = request.punch_param if not UtilClient.is_unset(request.sub_type): body['subType'] = request.sub_type if not UtilClient.is_unset(request.tag_name): body['tagName'] = request.tag_name if not UtilClient.is_unset(request.user_id): body['userId'] = request.user_id real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='ProcessApproveCreate', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/workflows/checkInForms', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.ProcessApproveCreateResponse(), self.execute(params, req, runtime) ) async def process_approve_create_with_options_async( self, request: dingtalkattendance__1__0_models.ProcessApproveCreateRequest, headers: dingtalkattendance__1__0_models.ProcessApproveCreateHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.ProcessApproveCreateResponse: """ @summary 创建考勤打卡审批单 @param request: ProcessApproveCreateRequest @param headers: ProcessApproveCreateHeaders @param runtime: runtime options for this request RuntimeOptions @return: ProcessApproveCreateResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.approve_id): body['approveId'] = request.approve_id if not UtilClient.is_unset(request.op_user_id): body['opUserId'] = request.op_user_id if not UtilClient.is_unset(request.punch_param): body['punchParam'] = request.punch_param if not UtilClient.is_unset(request.sub_type): body['subType'] = request.sub_type if not UtilClient.is_unset(request.tag_name): body['tagName'] = request.tag_name if not UtilClient.is_unset(request.user_id): body['userId'] = request.user_id real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='ProcessApproveCreate', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/workflows/checkInForms', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.ProcessApproveCreateResponse(), await self.execute_async(params, req, runtime) ) def process_approve_create( self, request: dingtalkattendance__1__0_models.ProcessApproveCreateRequest, ) -> dingtalkattendance__1__0_models.ProcessApproveCreateResponse: """ @summary 创建考勤打卡审批单 @param request: ProcessApproveCreateRequest @return: ProcessApproveCreateResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.ProcessApproveCreateHeaders() return self.process_approve_create_with_options(request, headers, runtime) async def process_approve_create_async( self, request: dingtalkattendance__1__0_models.ProcessApproveCreateRequest, ) -> dingtalkattendance__1__0_models.ProcessApproveCreateResponse: """ @summary 创建考勤打卡审批单 @param request: ProcessApproveCreateRequest @return: ProcessApproveCreateResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.ProcessApproveCreateHeaders() return await self.process_approve_create_with_options_async(request, headers, runtime) def process_approve_finish_with_options( self, request: dingtalkattendance__1__0_models.ProcessApproveFinishRequest, headers: dingtalkattendance__1__0_models.ProcessApproveFinishHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.ProcessApproveFinishResponse: """ @summary 通知审批通过 @param request: ProcessApproveFinishRequest @param headers: ProcessApproveFinishHeaders @param runtime: runtime options for this request RuntimeOptions @return: ProcessApproveFinishResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.user_id): query['userId'] = request.user_id body = {} if not UtilClient.is_unset(request.approve_id): body['approveId'] = request.approve_id if not UtilClient.is_unset(request.jump_url): body['jumpUrl'] = request.jump_url if not UtilClient.is_unset(request.over_time_to_more): body['overTimeToMore'] = request.over_time_to_more if not UtilClient.is_unset(request.overtime_duration): body['overtimeDuration'] = request.overtime_duration if not UtilClient.is_unset(request.sub_type): body['subType'] = request.sub_type if not UtilClient.is_unset(request.tag_name): body['tagName'] = request.tag_name if not UtilClient.is_unset(request.top_calculate_approve_duration_param): body['topCalculateApproveDurationParam'] = request.top_calculate_approve_duration_param real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query), body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='ProcessApproveFinish', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/approvals/finish', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.ProcessApproveFinishResponse(), self.execute(params, req, runtime) ) async def process_approve_finish_with_options_async( self, request: dingtalkattendance__1__0_models.ProcessApproveFinishRequest, headers: dingtalkattendance__1__0_models.ProcessApproveFinishHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.ProcessApproveFinishResponse: """ @summary 通知审批通过 @param request: ProcessApproveFinishRequest @param headers: ProcessApproveFinishHeaders @param runtime: runtime options for this request RuntimeOptions @return: ProcessApproveFinishResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.user_id): query['userId'] = request.user_id body = {} if not UtilClient.is_unset(request.approve_id): body['approveId'] = request.approve_id if not UtilClient.is_unset(request.jump_url): body['jumpUrl'] = request.jump_url if not UtilClient.is_unset(request.over_time_to_more): body['overTimeToMore'] = request.over_time_to_more if not UtilClient.is_unset(request.overtime_duration): body['overtimeDuration'] = request.overtime_duration if not UtilClient.is_unset(request.sub_type): body['subType'] = request.sub_type if not UtilClient.is_unset(request.tag_name): body['tagName'] = request.tag_name if not UtilClient.is_unset(request.top_calculate_approve_duration_param): body['topCalculateApproveDurationParam'] = request.top_calculate_approve_duration_param real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query), body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='ProcessApproveFinish', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/approvals/finish', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.ProcessApproveFinishResponse(), await self.execute_async(params, req, runtime) ) def process_approve_finish( self, request: dingtalkattendance__1__0_models.ProcessApproveFinishRequest, ) -> dingtalkattendance__1__0_models.ProcessApproveFinishResponse: """ @summary 通知审批通过 @param request: ProcessApproveFinishRequest @return: ProcessApproveFinishResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.ProcessApproveFinishHeaders() return self.process_approve_finish_with_options(request, headers, runtime) async def process_approve_finish_async( self, request: dingtalkattendance__1__0_models.ProcessApproveFinishRequest, ) -> dingtalkattendance__1__0_models.ProcessApproveFinishResponse: """ @summary 通知审批通过 @param request: ProcessApproveFinishRequest @return: ProcessApproveFinishResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.ProcessApproveFinishHeaders() return await self.process_approve_finish_with_options_async(request, headers, runtime) def reduce_quota_with_leave_record_with_options( self, union_id: str, request: dingtalkattendance__1__0_models.ReduceQuotaWithLeaveRecordRequest, headers: dingtalkattendance__1__0_models.ReduceQuotaWithLeaveRecordHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.ReduceQuotaWithLeaveRecordResponse: """ @summary 扣减员工假期余额 @param request: ReduceQuotaWithLeaveRecordRequest @param headers: ReduceQuotaWithLeaveRecordHeaders @param runtime: runtime options for this request RuntimeOptions @return: ReduceQuotaWithLeaveRecordResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.end_time): body['endTime'] = request.end_time if not UtilClient.is_unset(request.leave_code): body['leaveCode'] = request.leave_code if not UtilClient.is_unset(request.outer_id): body['outerId'] = request.outer_id if not UtilClient.is_unset(request.quota_num): body['quotaNum'] = request.quota_num if not UtilClient.is_unset(request.reason): body['reason'] = request.reason if not UtilClient.is_unset(request.start_time): body['startTime'] = request.start_time real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='ReduceQuotaWithLeaveRecord', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/users/{union_id}/vacations/records/modify', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.ReduceQuotaWithLeaveRecordResponse(), self.execute(params, req, runtime) ) async def reduce_quota_with_leave_record_with_options_async( self, union_id: str, request: dingtalkattendance__1__0_models.ReduceQuotaWithLeaveRecordRequest, headers: dingtalkattendance__1__0_models.ReduceQuotaWithLeaveRecordHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.ReduceQuotaWithLeaveRecordResponse: """ @summary 扣减员工假期余额 @param request: ReduceQuotaWithLeaveRecordRequest @param headers: ReduceQuotaWithLeaveRecordHeaders @param runtime: runtime options for this request RuntimeOptions @return: ReduceQuotaWithLeaveRecordResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.end_time): body['endTime'] = request.end_time if not UtilClient.is_unset(request.leave_code): body['leaveCode'] = request.leave_code if not UtilClient.is_unset(request.outer_id): body['outerId'] = request.outer_id if not UtilClient.is_unset(request.quota_num): body['quotaNum'] = request.quota_num if not UtilClient.is_unset(request.reason): body['reason'] = request.reason if not UtilClient.is_unset(request.start_time): body['startTime'] = request.start_time real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='ReduceQuotaWithLeaveRecord', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/users/{union_id}/vacations/records/modify', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.ReduceQuotaWithLeaveRecordResponse(), await self.execute_async(params, req, runtime) ) def reduce_quota_with_leave_record( self, union_id: str, request: dingtalkattendance__1__0_models.ReduceQuotaWithLeaveRecordRequest, ) -> dingtalkattendance__1__0_models.ReduceQuotaWithLeaveRecordResponse: """ @summary 扣减员工假期余额 @param request: ReduceQuotaWithLeaveRecordRequest @return: ReduceQuotaWithLeaveRecordResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.ReduceQuotaWithLeaveRecordHeaders() return self.reduce_quota_with_leave_record_with_options(union_id, request, headers, runtime) async def reduce_quota_with_leave_record_async( self, union_id: str, request: dingtalkattendance__1__0_models.ReduceQuotaWithLeaveRecordRequest, ) -> dingtalkattendance__1__0_models.ReduceQuotaWithLeaveRecordResponse: """ @summary 扣减员工假期余额 @param request: ReduceQuotaWithLeaveRecordRequest @return: ReduceQuotaWithLeaveRecordResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.ReduceQuotaWithLeaveRecordHeaders() return await self.reduce_quota_with_leave_record_with_options_async(union_id, request, headers, runtime) def retain_leave_types_with_options( self, request: dingtalkattendance__1__0_models.RetainLeaveTypesRequest, headers: dingtalkattendance__1__0_models.RetainLeaveTypesHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.RetainLeaveTypesResponse: """ @summary 修改假期规则来源 @param request: RetainLeaveTypesRequest @param headers: RetainLeaveTypesHeaders @param runtime: runtime options for this request RuntimeOptions @return: RetainLeaveTypesResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.leave_codes): body['leaveCodes'] = request.leave_codes if not UtilClient.is_unset(request.op_user_id): body['opUserId'] = request.op_user_id if not UtilClient.is_unset(request.source): body['source'] = request.source real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='RetainLeaveTypes', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/vacations/types/change', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.RetainLeaveTypesResponse(), self.execute(params, req, runtime) ) async def retain_leave_types_with_options_async( self, request: dingtalkattendance__1__0_models.RetainLeaveTypesRequest, headers: dingtalkattendance__1__0_models.RetainLeaveTypesHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.RetainLeaveTypesResponse: """ @summary 修改假期规则来源 @param request: RetainLeaveTypesRequest @param headers: RetainLeaveTypesHeaders @param runtime: runtime options for this request RuntimeOptions @return: RetainLeaveTypesResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.leave_codes): body['leaveCodes'] = request.leave_codes if not UtilClient.is_unset(request.op_user_id): body['opUserId'] = request.op_user_id if not UtilClient.is_unset(request.source): body['source'] = request.source real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='RetainLeaveTypes', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/vacations/types/change', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.RetainLeaveTypesResponse(), await self.execute_async(params, req, runtime) ) def retain_leave_types( self, request: dingtalkattendance__1__0_models.RetainLeaveTypesRequest, ) -> dingtalkattendance__1__0_models.RetainLeaveTypesResponse: """ @summary 修改假期规则来源 @param request: RetainLeaveTypesRequest @return: RetainLeaveTypesResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.RetainLeaveTypesHeaders() return self.retain_leave_types_with_options(request, headers, runtime) async def retain_leave_types_async( self, request: dingtalkattendance__1__0_models.RetainLeaveTypesRequest, ) -> dingtalkattendance__1__0_models.RetainLeaveTypesResponse: """ @summary 修改假期规则来源 @param request: RetainLeaveTypesRequest @return: RetainLeaveTypesResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.RetainLeaveTypesHeaders() return await self.retain_leave_types_with_options_async(request, headers, runtime) def reverse_trial_advanced_leave_with_options( self, request: dingtalkattendance__1__0_models.ReverseTrialAdvancedLeaveRequest, headers: dingtalkattendance__1__0_models.ReverseTrialAdvancedLeaveHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.ReverseTrialAdvancedLeaveResponse: """ @summary 提供给高级假期的试用订单回退 @param request: ReverseTrialAdvancedLeaveRequest @param headers: ReverseTrialAdvancedLeaveHeaders @param runtime: runtime options for this request RuntimeOptions @return: ReverseTrialAdvancedLeaveResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.op_user_id): query['opUserId'] = request.op_user_id if not UtilClient.is_unset(request.serv_code): query['servCode'] = request.serv_code real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( action='ReverseTrialAdvancedLeave', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/leaves/reverse', method='PUT', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.ReverseTrialAdvancedLeaveResponse(), self.execute(params, req, runtime) ) async def reverse_trial_advanced_leave_with_options_async( self, request: dingtalkattendance__1__0_models.ReverseTrialAdvancedLeaveRequest, headers: dingtalkattendance__1__0_models.ReverseTrialAdvancedLeaveHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.ReverseTrialAdvancedLeaveResponse: """ @summary 提供给高级假期的试用订单回退 @param request: ReverseTrialAdvancedLeaveRequest @param headers: ReverseTrialAdvancedLeaveHeaders @param runtime: runtime options for this request RuntimeOptions @return: ReverseTrialAdvancedLeaveResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.op_user_id): query['opUserId'] = request.op_user_id if not UtilClient.is_unset(request.serv_code): query['servCode'] = request.serv_code real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query) ) params = open_api_models.Params( action='ReverseTrialAdvancedLeave', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/leaves/reverse', method='PUT', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.ReverseTrialAdvancedLeaveResponse(), await self.execute_async(params, req, runtime) ) def reverse_trial_advanced_leave( self, request: dingtalkattendance__1__0_models.ReverseTrialAdvancedLeaveRequest, ) -> dingtalkattendance__1__0_models.ReverseTrialAdvancedLeaveResponse: """ @summary 提供给高级假期的试用订单回退 @param request: ReverseTrialAdvancedLeaveRequest @return: ReverseTrialAdvancedLeaveResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.ReverseTrialAdvancedLeaveHeaders() return self.reverse_trial_advanced_leave_with_options(request, headers, runtime) async def reverse_trial_advanced_leave_async( self, request: dingtalkattendance__1__0_models.ReverseTrialAdvancedLeaveRequest, ) -> dingtalkattendance__1__0_models.ReverseTrialAdvancedLeaveResponse: """ @summary 提供给高级假期的试用订单回退 @param request: ReverseTrialAdvancedLeaveRequest @return: ReverseTrialAdvancedLeaveResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.ReverseTrialAdvancedLeaveHeaders() return await self.reverse_trial_advanced_leave_with_options_async(request, headers, runtime) def salary_third_data_integration_with_options( self, request: dingtalkattendance__1__0_models.SalaryThirdDataIntegrationRequest, headers: dingtalkattendance__1__0_models.SalaryThirdDataIntegrationHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.SalaryThirdDataIntegrationResponse: """ @summary 薪酬三方数据写入 @param request: SalaryThirdDataIntegrationRequest @param headers: SalaryThirdDataIntegrationHeaders @param runtime: runtime options for this request RuntimeOptions @return: SalaryThirdDataIntegrationResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.biz_type): body['bizType'] = request.biz_type if not UtilClient.is_unset(request.items): body['items'] = request.items real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='SalaryThirdDataIntegration', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/salaries/tripartiteDatas/write', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.SalaryThirdDataIntegrationResponse(), self.execute(params, req, runtime) ) async def salary_third_data_integration_with_options_async( self, request: dingtalkattendance__1__0_models.SalaryThirdDataIntegrationRequest, headers: dingtalkattendance__1__0_models.SalaryThirdDataIntegrationHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.SalaryThirdDataIntegrationResponse: """ @summary 薪酬三方数据写入 @param request: SalaryThirdDataIntegrationRequest @param headers: SalaryThirdDataIntegrationHeaders @param runtime: runtime options for this request RuntimeOptions @return: SalaryThirdDataIntegrationResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.biz_type): body['bizType'] = request.biz_type if not UtilClient.is_unset(request.items): body['items'] = request.items real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='SalaryThirdDataIntegration', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/salaries/tripartiteDatas/write', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.SalaryThirdDataIntegrationResponse(), await self.execute_async(params, req, runtime) ) def salary_third_data_integration( self, request: dingtalkattendance__1__0_models.SalaryThirdDataIntegrationRequest, ) -> dingtalkattendance__1__0_models.SalaryThirdDataIntegrationResponse: """ @summary 薪酬三方数据写入 @param request: SalaryThirdDataIntegrationRequest @return: SalaryThirdDataIntegrationResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.SalaryThirdDataIntegrationHeaders() return self.salary_third_data_integration_with_options(request, headers, runtime) async def salary_third_data_integration_async( self, request: dingtalkattendance__1__0_models.SalaryThirdDataIntegrationRequest, ) -> dingtalkattendance__1__0_models.SalaryThirdDataIntegrationResponse: """ @summary 薪酬三方数据写入 @param request: SalaryThirdDataIntegrationRequest @return: SalaryThirdDataIntegrationResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.SalaryThirdDataIntegrationHeaders() return await self.salary_third_data_integration_with_options_async(request, headers, runtime) def save_custom_water_mark_template_with_options( self, request: dingtalkattendance__1__0_models.SaveCustomWaterMarkTemplateRequest, headers: dingtalkattendance__1__0_models.SaveCustomWaterMarkTemplateHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.SaveCustomWaterMarkTemplateResponse: """ @summary 新增水印签到模板 @param request: SaveCustomWaterMarkTemplateRequest @param headers: SaveCustomWaterMarkTemplateHeaders @param runtime: runtime options for this request RuntimeOptions @return: SaveCustomWaterMarkTemplateResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.open_conversation_id): query['openConversationId'] = request.open_conversation_id if not UtilClient.is_unset(request.user_id): query['userId'] = request.user_id body = {} if not UtilClient.is_unset(request.biz_code): body['bizCode'] = request.biz_code if not UtilClient.is_unset(request.icon): body['icon'] = request.icon if not UtilClient.is_unset(request.layout_design_id): body['layoutDesignId'] = request.layout_design_id if not UtilClient.is_unset(request.scene_code): body['sceneCode'] = request.scene_code if not UtilClient.is_unset(request.schema_content): body['schemaContent'] = request.schema_content if not UtilClient.is_unset(request.title): body['title'] = request.title real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query), body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='SaveCustomWaterMarkTemplate', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/watermarks/templates', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.SaveCustomWaterMarkTemplateResponse(), self.execute(params, req, runtime) ) async def save_custom_water_mark_template_with_options_async( self, request: dingtalkattendance__1__0_models.SaveCustomWaterMarkTemplateRequest, headers: dingtalkattendance__1__0_models.SaveCustomWaterMarkTemplateHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.SaveCustomWaterMarkTemplateResponse: """ @summary 新增水印签到模板 @param request: SaveCustomWaterMarkTemplateRequest @param headers: SaveCustomWaterMarkTemplateHeaders @param runtime: runtime options for this request RuntimeOptions @return: SaveCustomWaterMarkTemplateResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.open_conversation_id): query['openConversationId'] = request.open_conversation_id if not UtilClient.is_unset(request.user_id): query['userId'] = request.user_id body = {} if not UtilClient.is_unset(request.biz_code): body['bizCode'] = request.biz_code if not UtilClient.is_unset(request.icon): body['icon'] = request.icon if not UtilClient.is_unset(request.layout_design_id): body['layoutDesignId'] = request.layout_design_id if not UtilClient.is_unset(request.scene_code): body['sceneCode'] = request.scene_code if not UtilClient.is_unset(request.schema_content): body['schemaContent'] = request.schema_content if not UtilClient.is_unset(request.title): body['title'] = request.title real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query), body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='SaveCustomWaterMarkTemplate', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/watermarks/templates', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.SaveCustomWaterMarkTemplateResponse(), await self.execute_async(params, req, runtime) ) def save_custom_water_mark_template( self, request: dingtalkattendance__1__0_models.SaveCustomWaterMarkTemplateRequest, ) -> dingtalkattendance__1__0_models.SaveCustomWaterMarkTemplateResponse: """ @summary 新增水印签到模板 @param request: SaveCustomWaterMarkTemplateRequest @return: SaveCustomWaterMarkTemplateResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.SaveCustomWaterMarkTemplateHeaders() return self.save_custom_water_mark_template_with_options(request, headers, runtime) async def save_custom_water_mark_template_async( self, request: dingtalkattendance__1__0_models.SaveCustomWaterMarkTemplateRequest, ) -> dingtalkattendance__1__0_models.SaveCustomWaterMarkTemplateResponse: """ @summary 新增水印签到模板 @param request: SaveCustomWaterMarkTemplateRequest @return: SaveCustomWaterMarkTemplateResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.SaveCustomWaterMarkTemplateHeaders() return await self.save_custom_water_mark_template_with_options_async(request, headers, runtime) def shift_add_with_options( self, request: dingtalkattendance__1__0_models.ShiftAddRequest, headers: dingtalkattendance__1__0_models.ShiftAddHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.ShiftAddResponse: """ @summary 创建班次 @param request: ShiftAddRequest @param headers: ShiftAddHeaders @param runtime: runtime options for this request RuntimeOptions @return: ShiftAddResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.op_user_id): query['opUserId'] = request.op_user_id body = {} if not UtilClient.is_unset(request.name): body['name'] = request.name if not UtilClient.is_unset(request.owner): body['owner'] = request.owner if not UtilClient.is_unset(request.sections): body['sections'] = request.sections if not UtilClient.is_unset(request.service_id): body['serviceId'] = request.service_id if not UtilClient.is_unset(request.setting): body['setting'] = request.setting if not UtilClient.is_unset(request.shift_id): body['shiftId'] = request.shift_id real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query), body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='ShiftAdd', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/shifts', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.ShiftAddResponse(), self.execute(params, req, runtime) ) async def shift_add_with_options_async( self, request: dingtalkattendance__1__0_models.ShiftAddRequest, headers: dingtalkattendance__1__0_models.ShiftAddHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.ShiftAddResponse: """ @summary 创建班次 @param request: ShiftAddRequest @param headers: ShiftAddHeaders @param runtime: runtime options for this request RuntimeOptions @return: ShiftAddResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.op_user_id): query['opUserId'] = request.op_user_id body = {} if not UtilClient.is_unset(request.name): body['name'] = request.name if not UtilClient.is_unset(request.owner): body['owner'] = request.owner if not UtilClient.is_unset(request.sections): body['sections'] = request.sections if not UtilClient.is_unset(request.service_id): body['serviceId'] = request.service_id if not UtilClient.is_unset(request.setting): body['setting'] = request.setting if not UtilClient.is_unset(request.shift_id): body['shiftId'] = request.shift_id real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query), body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='ShiftAdd', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/shifts', method='POST', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.ShiftAddResponse(), await self.execute_async(params, req, runtime) ) def shift_add( self, request: dingtalkattendance__1__0_models.ShiftAddRequest, ) -> dingtalkattendance__1__0_models.ShiftAddResponse: """ @summary 创建班次 @param request: ShiftAddRequest @return: ShiftAddResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.ShiftAddHeaders() return self.shift_add_with_options(request, headers, runtime) async def shift_add_async( self, request: dingtalkattendance__1__0_models.ShiftAddRequest, ) -> dingtalkattendance__1__0_models.ShiftAddResponse: """ @summary 创建班次 @param request: ShiftAddRequest @return: ShiftAddResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.ShiftAddHeaders() return await self.shift_add_with_options_async(request, headers, runtime) def sync_schedule_info_with_options( self, request: dingtalkattendance__1__0_models.SyncScheduleInfoRequest, headers: dingtalkattendance__1__0_models.SyncScheduleInfoHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.SyncScheduleInfoResponse: """ @summary 用于考勤排班附加信息,例如打卡位置,打卡wifi等 @param request: SyncScheduleInfoRequest @param headers: SyncScheduleInfoHeaders @param runtime: runtime options for this request RuntimeOptions @return: SyncScheduleInfoResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.op_user_id): body['opUserId'] = request.op_user_id if not UtilClient.is_unset(request.schedule_infos): body['scheduleInfos'] = request.schedule_infos real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='SyncScheduleInfo', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/schedules/additionalInfo', method='PUT', auth_type='AK', style='ROA', req_body_type='none', body_type='none' ) return TeaCore.from_map( dingtalkattendance__1__0_models.SyncScheduleInfoResponse(), self.execute(params, req, runtime) ) async def sync_schedule_info_with_options_async( self, request: dingtalkattendance__1__0_models.SyncScheduleInfoRequest, headers: dingtalkattendance__1__0_models.SyncScheduleInfoHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.SyncScheduleInfoResponse: """ @summary 用于考勤排班附加信息,例如打卡位置,打卡wifi等 @param request: SyncScheduleInfoRequest @param headers: SyncScheduleInfoHeaders @param runtime: runtime options for this request RuntimeOptions @return: SyncScheduleInfoResponse """ UtilClient.validate_model(request) body = {} if not UtilClient.is_unset(request.op_user_id): body['opUserId'] = request.op_user_id if not UtilClient.is_unset(request.schedule_infos): body['scheduleInfos'] = request.schedule_infos real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='SyncScheduleInfo', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/schedules/additionalInfo', method='PUT', auth_type='AK', style='ROA', req_body_type='none', body_type='none' ) return TeaCore.from_map( dingtalkattendance__1__0_models.SyncScheduleInfoResponse(), await self.execute_async(params, req, runtime) ) def sync_schedule_info( self, request: dingtalkattendance__1__0_models.SyncScheduleInfoRequest, ) -> dingtalkattendance__1__0_models.SyncScheduleInfoResponse: """ @summary 用于考勤排班附加信息,例如打卡位置,打卡wifi等 @param request: SyncScheduleInfoRequest @return: SyncScheduleInfoResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.SyncScheduleInfoHeaders() return self.sync_schedule_info_with_options(request, headers, runtime) async def sync_schedule_info_async( self, request: dingtalkattendance__1__0_models.SyncScheduleInfoRequest, ) -> dingtalkattendance__1__0_models.SyncScheduleInfoResponse: """ @summary 用于考勤排班附加信息,例如打卡位置,打卡wifi等 @param request: SyncScheduleInfoRequest @return: SyncScheduleInfoResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.SyncScheduleInfoHeaders() return await self.sync_schedule_info_with_options_async(request, headers, runtime) def update_leave_type_with_options( self, request: dingtalkattendance__1__0_models.UpdateLeaveTypeRequest, headers: dingtalkattendance__1__0_models.UpdateLeaveTypeHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.UpdateLeaveTypeResponse: """ @summary 更新假期规则 @param request: UpdateLeaveTypeRequest @param headers: UpdateLeaveTypeHeaders @param runtime: runtime options for this request RuntimeOptions @return: UpdateLeaveTypeResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.op_user_id): query['opUserId'] = request.op_user_id body = {} if not UtilClient.is_unset(request.biz_type): body['bizType'] = request.biz_type if not UtilClient.is_unset(request.extras): body['extras'] = request.extras if not UtilClient.is_unset(request.freedom_leave): body['freedomLeave'] = request.freedom_leave if not UtilClient.is_unset(request.hours_in_per_day): body['hoursInPerDay'] = request.hours_in_per_day if not UtilClient.is_unset(request.leave_certificate): body['leaveCertificate'] = request.leave_certificate if not UtilClient.is_unset(request.leave_code): body['leaveCode'] = request.leave_code if not UtilClient.is_unset(request.leave_name): body['leaveName'] = request.leave_name if not UtilClient.is_unset(request.leave_view_unit): body['leaveViewUnit'] = request.leave_view_unit if not UtilClient.is_unset(request.natural_day_leave): body['naturalDayLeave'] = request.natural_day_leave if not UtilClient.is_unset(request.submit_time_rule): body['submitTimeRule'] = request.submit_time_rule if not UtilClient.is_unset(request.visibility_rules): body['visibilityRules'] = request.visibility_rules real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query), body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='UpdateLeaveType', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/leaves/types', method='PUT', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.UpdateLeaveTypeResponse(), self.execute(params, req, runtime) ) async def update_leave_type_with_options_async( self, request: dingtalkattendance__1__0_models.UpdateLeaveTypeRequest, headers: dingtalkattendance__1__0_models.UpdateLeaveTypeHeaders, runtime: util_models.RuntimeOptions, ) -> dingtalkattendance__1__0_models.UpdateLeaveTypeResponse: """ @summary 更新假期规则 @param request: UpdateLeaveTypeRequest @param headers: UpdateLeaveTypeHeaders @param runtime: runtime options for this request RuntimeOptions @return: UpdateLeaveTypeResponse """ UtilClient.validate_model(request) query = {} if not UtilClient.is_unset(request.op_user_id): query['opUserId'] = request.op_user_id body = {} if not UtilClient.is_unset(request.biz_type): body['bizType'] = request.biz_type if not UtilClient.is_unset(request.extras): body['extras'] = request.extras if not UtilClient.is_unset(request.freedom_leave): body['freedomLeave'] = request.freedom_leave if not UtilClient.is_unset(request.hours_in_per_day): body['hoursInPerDay'] = request.hours_in_per_day if not UtilClient.is_unset(request.leave_certificate): body['leaveCertificate'] = request.leave_certificate if not UtilClient.is_unset(request.leave_code): body['leaveCode'] = request.leave_code if not UtilClient.is_unset(request.leave_name): body['leaveName'] = request.leave_name if not UtilClient.is_unset(request.leave_view_unit): body['leaveViewUnit'] = request.leave_view_unit if not UtilClient.is_unset(request.natural_day_leave): body['naturalDayLeave'] = request.natural_day_leave if not UtilClient.is_unset(request.submit_time_rule): body['submitTimeRule'] = request.submit_time_rule if not UtilClient.is_unset(request.visibility_rules): body['visibilityRules'] = request.visibility_rules real_headers = {} if not UtilClient.is_unset(headers.common_headers): real_headers = headers.common_headers if not UtilClient.is_unset(headers.x_acs_dingtalk_access_token): real_headers['x-acs-dingtalk-access-token'] = UtilClient.to_jsonstring(headers.x_acs_dingtalk_access_token) req = open_api_models.OpenApiRequest( headers=real_headers, query=OpenApiUtilClient.query(query), body=OpenApiUtilClient.parse_to_map(body) ) params = open_api_models.Params( action='UpdateLeaveType', version='attendance_1.0', protocol='HTTP', pathname=f'/v1.0/attendance/leaves/types', method='PUT', auth_type='AK', style='ROA', req_body_type='none', body_type='json' ) return TeaCore.from_map( dingtalkattendance__1__0_models.UpdateLeaveTypeResponse(), await self.execute_async(params, req, runtime) ) def update_leave_type( self, request: dingtalkattendance__1__0_models.UpdateLeaveTypeRequest, ) -> dingtalkattendance__1__0_models.UpdateLeaveTypeResponse: """ @summary 更新假期规则 @param request: UpdateLeaveTypeRequest @return: UpdateLeaveTypeResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.UpdateLeaveTypeHeaders() return self.update_leave_type_with_options(request, headers, runtime) async def update_leave_type_async( self, request: dingtalkattendance__1__0_models.UpdateLeaveTypeRequest, ) -> dingtalkattendance__1__0_models.UpdateLeaveTypeResponse: """ @summary 更新假期规则 @param request: UpdateLeaveTypeRequest @return: UpdateLeaveTypeResponse """ runtime = util_models.RuntimeOptions() headers = dingtalkattendance__1__0_models.UpdateLeaveTypeHeaders() return await self.update_leave_type_with_options_async(request, headers, runtime)