@larksuiteoapi/lark-mcp
Version:
Feishu/Lark OpenAPI MCP
945 lines (944 loc) • 113 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.attendanceV1Tools = exports.attendanceV1UserTaskQuery = exports.attendanceV1UserTaskRemedyQueryUserAllowedRemedys = exports.attendanceV1UserTaskRemedyQuery = exports.attendanceV1UserTaskRemedyCreate = exports.attendanceV1UserStatsViewUpdate = exports.attendanceV1UserStatsViewQuery = exports.attendanceV1UserStatsFieldQuery = exports.attendanceV1UserStatsDataQuery = exports.attendanceV1UserSettingQuery = exports.attendanceV1UserSettingModify = exports.attendanceV1UserFlowQuery = exports.attendanceV1UserFlowGet = exports.attendanceV1UserFlowBatchDel = exports.attendanceV1UserFlowBatchCreate = exports.attendanceV1UserDailyShiftQuery = exports.attendanceV1UserDailyShiftBatchCreateTemp = exports.attendanceV1UserDailyShiftBatchCreate = exports.attendanceV1UserApprovalQuery = exports.attendanceV1UserApprovalCreate = exports.attendanceV1ShiftQuery = exports.attendanceV1ShiftList = exports.attendanceV1ShiftGet = exports.attendanceV1ShiftDelete = exports.attendanceV1ShiftCreate = exports.attendanceV1LeaveEmployExpireRecordGet = exports.attendanceV1LeaveAccrualRecordPatch = exports.attendanceV1GroupSearch = exports.attendanceV1GroupListUser = exports.attendanceV1GroupList = exports.attendanceV1GroupGet = exports.attendanceV1GroupDelete = exports.attendanceV1GroupCreate = exports.attendanceV1ArchiveRuleUserStatsFieldsQuery = exports.attendanceV1ArchiveRuleUploadReport = exports.attendanceV1ArchiveRuleList = exports.attendanceV1ArchiveRuleDelReport = exports.attendanceV1ApprovalInfoProcess = void 0;
const zod_1 = require("zod");
exports.attendanceV1ApprovalInfoProcess = {
project: 'attendance',
name: 'attendance.v1.approvalInfo.process',
sdkName: 'attendance.v1.approvalInfo.process',
path: '/open-apis/attendance/v1/approval_infos/process',
httpMethod: 'POST',
description: '[Feishu/Lark]-考勤打卡-假勤审批-通知审批状态更新-对于只使用飞书考勤系统而未使用飞书审批系统的企业,可以通过该接口更新写入飞书考勤系统中的三方系统审批状态,例如请假、加班、外出、出差、补卡等审批,状态包括通过、不通过、撤销等',
accessTokens: ['tenant'],
schema: {
data: zod_1.z.object({
approval_id: zod_1.z
.string()
.describe('审批实例 ID,获取方式:1)[获取审批通过数据] 2)[写入审批结果] 3)[通知补卡审批发起(补卡情况下)]'),
approval_type: zod_1.z
.string()
.describe('审批类型- `leave`:请假- `out`:外出- `overtime`:加班- `trip`:出差- `remedy`:补卡'),
status: zod_1.z
.number()
.describe('审批状态- `1`:不通过- `2`:通过- `4`:撤销**注意**- **请假、外出、加班、出差**只支持传**撤销**- **补卡**支持传**不通过、通过和撤销**'),
}),
},
};
exports.attendanceV1ArchiveRuleDelReport = {
project: 'attendance',
name: 'attendance.v1.archiveRule.delReport',
sdkName: 'attendance.v1.archiveRule.delReport',
path: '/open-apis/attendance/v1/archive_rule/del_report',
httpMethod: 'POST',
description: '[Feishu/Lark]-考勤打卡-归档报表-删除归档报表行数据-按月份、用户和归档规则ID直接删除归档报表行数据',
accessTokens: ['tenant', 'user'],
schema: {
data: zod_1.z.object({
month: zod_1.z.string().describe('月份,格式yyyyMM'),
operator_id: zod_1.z.string().describe('操作者ID,对应employee_type'),
archive_rule_id: zod_1.z.string().describe('归档规则id,可根据[查询所有归档规则]获得'),
user_ids: zod_1.z.array(zod_1.z.string()).describe('用户id,对应employee_type').optional(),
}),
params: zod_1.z.object({
employee_type: zod_1.z
.string()
.describe('请求体中的 user_ids 和响应体中的 user_id 的员工ID类型。如果没有后台管理权限,可使用[通过手机号或邮箱获取用户 ID]* `employee_id `:员工 employee ID,即[飞书管理后台] > 组织架构 > 成员与部门 > 成员详情中的用户 ID* `employee_no`:员工工号,即[飞书管理后台] > 组织架构 > 成员与部门 > 成员详情中的工号'),
}),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.attendanceV1ArchiveRuleList = {
project: 'attendance',
name: 'attendance.v1.archiveRule.list',
sdkName: 'attendance.v1.archiveRule.list',
path: '/open-apis/attendance/v1/archive_rule',
httpMethod: 'GET',
description: '[Feishu/Lark]-考勤打卡-归档报表-查询所有归档规则-查询所有归档规则,对应后台假勤管理-考勤统计-报表-[归档报表]功能',
accessTokens: ['tenant', 'user'],
schema: {
params: zod_1.z
.object({
page_size: zod_1.z.number().describe('分页大小,必填参数').optional(),
page_token: zod_1.z
.string()
.describe('分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果')
.optional(),
})
.optional(),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.attendanceV1ArchiveRuleUploadReport = {
project: 'attendance',
name: 'attendance.v1.archiveRule.uploadReport',
sdkName: 'attendance.v1.archiveRule.uploadReport',
path: '/open-apis/attendance/v1/archive_rule/upload_report',
httpMethod: 'POST',
description: '[Feishu/Lark]-考勤打卡-归档报表-写入归档报表结果-写入归档报表结果,对应假勤管理-考勤统计-报表-[归档报表]页签,点击报表名称进入后的导入功能。可以将数据直接写入归档报表',
accessTokens: ['tenant', 'user'],
schema: {
data: zod_1.z.object({
month: zod_1.z.string().describe('月份,格式为yyyyMM'),
operator_id: zod_1.z.string().describe('操作者ID,对应employee_type'),
archive_report_datas: zod_1.z
.array(zod_1.z.object({
member_id: zod_1.z.string().describe('用户ID,对应employee_type'),
start_time: zod_1.z.string().describe('考勤开始时间,格式为yyyyMMdd'),
end_time: zod_1.z.string().describe('考勤结束时间,格式为yyyyMMdd'),
field_datas: zod_1.z
.array(zod_1.z.object({
code: zod_1.z.string().describe('字段编码,可根据[查询归档报表表头] 获取'),
value: zod_1.z.string().describe('字段结果值').optional(),
}))
.describe('字段结果(不超过200个)')
.optional(),
}))
.describe('归档报表内容(不超过50个)')
.optional(),
archive_rule_id: zod_1.z.string().describe('归档规则id,可根据[查询所有归档规则]获得'),
}),
params: zod_1.z.object({
employee_type: zod_1.z
.string()
.describe('请求体中的 user_ids 和响应体中的 user_id 的员工ID类型。如果没有后台管理权限,可使用[通过手机号或邮箱获取用户 ID]* `employee_id `:员工 employee ID,即[飞书管理后台] > 组织架构 > 成员与部门 > 成员详情中的用户 ID* `employee_no`:员工工号,即[飞书管理后台] > 组织架构 > 成员与部门 > 成员详情中的工号'),
}),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.attendanceV1ArchiveRuleUserStatsFieldsQuery = {
project: 'attendance',
name: 'attendance.v1.archiveRule.userStatsFieldsQuery',
sdkName: 'attendance.v1.archiveRule.userStatsFieldsQuery',
path: '/open-apis/attendance/v1/archive_rule/user_stats_fields_query',
httpMethod: 'POST',
description: '[Feishu/Lark]-考勤打卡-归档报表-查询归档报表表头-查询归档报表表头,对应后台假勤管理-考勤统计-报表-[归档报表]中一个归档报表的表头信息。归档报表支持引用系统报表,可设置归档时间和数据归档周期,并且支持根据部门/人员、国家/地区、人员类型、工作地点、职级、序列、职务进行人员圈选',
accessTokens: ['tenant', 'user'],
schema: {
data: zod_1.z.object({
locale: zod_1.z.string().describe('语言类型。默认为zh。可选值有:* `en`:英语* `ja`:日语* `zh`:中文').optional(),
month: zod_1.z.string().describe('月份,日期格式为yyyyMM'),
archive_rule_id: zod_1.z.string().describe('归档规则id,可根据[查询所有归档规则]获得'),
operator_id: zod_1.z.string().describe('操作者id,对应employee_type'),
}),
params: zod_1.z.object({
employee_type: zod_1.z
.string()
.describe('请求体中的 user_ids 和响应体中的 user_id 的员工ID类型。如果没有后台管理权限,可使用[通过手机号或邮箱获取用户 ID]* `employee_id `:员工 employee ID,即[飞书管理后台] > 组织架构 > 成员与部门 > 成员详情中的用户 ID* `employee_no`:员工工号,即[飞书管理后台] > 组织架构 > 成员与部门 > 成员详情中的工号'),
}),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.attendanceV1GroupCreate = {
project: 'attendance',
name: 'attendance.v1.group.create',
sdkName: 'attendance.v1.group.create',
path: '/open-apis/attendance/v1/groups',
httpMethod: 'POST',
description: '[Feishu/Lark]-考勤打卡-考勤组管理-创建或修改考勤组-考勤组,是对部门或者员工在某个特定场所及特定时间段内的出勤情况(包括上下班、迟到、早退、病假、婚假、丧假、公休、工作时间、加班情况等)的一种规则设定。通过设置考勤组,可以从部门、员工两个维度,来设定考勤方式、考勤时间、考勤地点等考勤规则。对应功能同设置-假勤设置-[考勤组]的“新建”功能',
accessTokens: ['tenant'],
schema: {
data: zod_1.z.object({
group: zod_1.z
.object({
group_id: zod_1.z
.string()
.describe('考勤组 ID(仅修改时提供), 需要从[按名称查询考勤组]或[查询所有考勤组]接口中获取 groupId。如果不填的话,会创建新的考勤组')
.optional(),
group_name: zod_1.z.string().describe('考勤组名称'),
time_zone: zod_1.z.string().describe('时区'),
bind_dept_ids: zod_1.z
.array(zod_1.z.string().describe('参加考勤的部门id列表'))
.describe('绑定的部门 ID(与「need_punch_members」同时使用时,以当前字段为准)。对应dept_type')
.optional(),
except_dept_ids: zod_1.z
.array(zod_1.z.string().describe('无需考勤的部门id列表'))
.describe('排除的部门 ID(该字段已下线)')
.optional(),
bind_user_ids: zod_1.z
.array(zod_1.z.string().describe('参加考勤的人员id列表'))
.describe('绑定的用户 ID(与「need_punch_members」同时使用时,以当前字段为准),对应employee_type')
.optional(),
except_user_ids: zod_1.z
.array(zod_1.z.string().describe('参加考勤的人员id列表'))
.describe('排除的用户 ID(该字段已下线)')
.optional(),
group_leader_ids: zod_1.z
.array(zod_1.z.string().describe('考勤组主负责人id列表'))
.describe('考勤主负责人 ID 列表,必选字段(需至少拥有考勤组管理员权限),对应employee_type'),
sub_group_leader_ids: zod_1.z
.array(zod_1.z.string().describe('考勤组子负责人id列表'))
.describe('考勤子负责人 ID 列表,对应employee_type')
.optional(),
allow_out_punch: zod_1.z.boolean().describe('是否允许外勤打卡,默认为空').optional(),
out_punch_need_approval: zod_1.z
.boolean()
.describe('外勤打卡需审批(需要允许外勤打卡才能设置生效),默认为空')
.optional(),
out_punch_need_post_approval: zod_1.z
.boolean()
.describe('外勤打卡需审批,先打卡后审批(需要允许外勤打卡才能设置生效)')
.optional(),
out_punch_need_remark: zod_1.z
.boolean()
.describe('外勤打卡需填写备注(需要允许外勤打卡才能设置生效),默认为空')
.optional(),
out_punch_need_photo: zod_1.z
.boolean()
.describe('外勤打卡需拍照(需要允许外勤打卡才能设置生效),默认为空')
.optional(),
out_punch_allowed_hide_addr: zod_1.z
.boolean()
.describe('外勤打卡允许员工隐藏详细地址(需要允许外勤打卡才能设置生效),默认为空')
.optional(),
out_punch_allowed_adjust_addr: zod_1.z
.boolean()
.describe('外勤打卡允许微调地址(需要允许外勤打卡才能设置生效)')
.optional(),
adjust_range: zod_1.z.number().describe('微调范围,默认为 50 米').optional(),
allow_pc_punch: zod_1.z.boolean().describe('是否允许 PC 端打卡,默认为空').optional(),
allow_remedy: zod_1.z.boolean().describe('是否限制补卡,默认为空').optional(),
remedy_limit: zod_1.z.boolean().describe('是否限制补卡次数,默认为空').optional(),
remedy_limit_count: zod_1.z.number().describe('补卡次数,默认为空').optional(),
remedy_date_limit: zod_1.z.boolean().describe('是否限制补卡时间,默认为空').optional(),
remedy_date_num: zod_1.z.number().describe('补卡时间,几天内补卡,默认为空').optional(),
allow_remedy_type_lack: zod_1.z.boolean().describe('允许缺卡补卡(需要允许补卡才能设置生效),默认为空').optional(),
allow_remedy_type_late: zod_1.z.boolean().describe('允许迟到补卡(需要允许补卡才能设置生效),默认为空').optional(),
allow_remedy_type_early: zod_1.z
.boolean()
.describe('允许早退补卡(需要允许补卡才能设置生效),默认为空')
.optional(),
allow_remedy_type_normal: zod_1.z
.boolean()
.describe('允许正常补卡(需要允许补卡才能设置生效),默认为空')
.optional(),
show_cumulative_time: zod_1.z.boolean().describe('是否展示累计时长,默认为空').optional(),
show_over_time: zod_1.z.boolean().describe('是否展示加班时长,默认为空').optional(),
hide_staff_punch_time: zod_1.z.boolean().describe('是否隐藏员工打卡详情,默认为空').optional(),
hide_clock_in_rule: zod_1.z
.boolean()
.describe('是否隐藏打卡规则(仅灰度租户有效,如需使用请联系技术支持)')
.optional(),
face_punch: zod_1.z.boolean().describe('是否开启人脸识别打卡,默认为空').optional(),
face_punch_cfg: zod_1.z
.number()
.describe('人脸识别打卡规则,默认为空**可选值有:*** 1:每次打卡均需人脸识别* 2:疑似作弊打卡时需要人脸识别')
.optional(),
face_live_need_action: zod_1.z
.boolean()
.describe('人脸打卡规则,默认为空**可选值有:*** false:表示开启活体验证 * true:表示动作验证,仅在 face_punch_cfg = 1 时有效')
.optional(),
face_downgrade: zod_1.z.boolean().describe('人脸识别失败时是否允许普通拍照打卡,默认为空').optional(),
replace_basic_pic: zod_1.z.boolean().describe('人脸识别失败时是否允许替换基准图片,默认为空').optional(),
anti_cheat_punch_config: zod_1.z
.object({
intercept_suspected_cheat_punch: zod_1.z
.boolean()
.describe('是否拦截疑似作弊打卡,不传入时默认关闭/不更新;关闭时,其余防作弊开关都会关闭'),
check_cheat_software_punch: zod_1.z
.boolean()
.describe('是否校验疑似作弊软件打卡,不传入时默认关闭/不更新')
.optional(),
check_buddy_punch: zod_1.z.boolean().describe('是否校验疑似他人代打卡,不传入时默认关闭/不更新').optional(),
check_simulate_wifi_punch: zod_1.z
.boolean()
.describe('是否校验疑似模拟 WI-FI 打卡,不传入时默认关闭/不更新(仅灰度租户有效,如需使用请联系技术支持)')
.optional(),
check_change_device_punch: zod_1.z
.boolean()
.describe('是否校验更换设备打卡,不传入时默认关闭/不更新')
.optional(),
allow_change_device_num: zod_1.z
.number()
.describe('同一考勤人员最多可绑定打卡设备数量上限,开启校验更换设备打卡时必填')
.optional(),
suspected_cheat_handle_method: zod_1.z
.number()
.describe('疑似作弊打卡时的处理方式,开启拦截疑似作弊打卡时必填 Options:1(use_face_punch 使用人脸识别打卡),2(only_record_cheat_info 仅记录疑似作弊信息)')
.optional(),
})
.describe('防作弊打卡配置,不传入时默认关闭/不更新(仅灰度租户有效,如需使用请联系技术支持)')
.optional(),
machines: zod_1.z
.array(zod_1.z.object({
machine_sn: zod_1.z.string().describe('考勤机序列号'),
machine_name: zod_1.z.string().describe('考勤机名称'),
}))
.describe('考勤机列表')
.optional(),
gps_range: zod_1.z.number().describe('GPS 打卡的有效范围').optional(),
locations: zod_1.z
.array(zod_1.z.object({
location_name: zod_1.z.string().describe('地址名称'),
location_type: zod_1.z.number().describe('地址类型**可选值有:*** 1:GPS* 2:Wi-Fi* 8:IP'),
latitude: zod_1.z.number().describe('地址纬度(需配合gps_range使用)').optional(),
longitude: zod_1.z.number().describe('地址经度(需配合gps_range使用)').optional(),
ssid: zod_1.z.string().describe('Wi-Fi 名称').optional(),
bssid: zod_1.z.string().describe('Wi-Fi 的 MAC 地址').optional(),
map_type: zod_1.z.number().describe('地图类型,1:高德, 2:谷歌').optional(),
address: zod_1.z.string().describe('地址名称').optional(),
ip: zod_1.z.string().describe('IP 地址').optional(),
feature: zod_1.z.string().describe('额外信息,例如:运营商信息').optional(),
gps_range: zod_1.z.number().describe('GPS 打卡的有效范围(历史无效字段)').optional(),
}))
.describe('地址列表(仅追加,不会覆盖之前的列表)')
.optional(),
group_type: zod_1.z.number().describe('考勤类型**可选值有:*** 1:固定班制* 2:排班制* 3:自由班制'),
punch_day_shift_ids: zod_1.z
.array(zod_1.z.string())
.describe('班次 ID 列表。当考勤类型参数(group_type)设置为固定班制时,必须填够 7 个(从周一至周日)。当考勤类型参数(group_type)设置为排班制或自由班制时,请传入空数组。班次 ID 可以通过[查询所有班次] 和[按名称查询班次] 获取。休息日填0'),
free_punch_cfg: zod_1.z
.object({
free_start_time: zod_1.z
.string()
.describe('自由班制打卡开始时间,格式为x点x分,注意这里小时如果小于10点,是不需要补零的'),
free_end_time: zod_1.z
.string()
.describe('自由班制打卡结束时间,格式为x点x分,注意这里小时如果小于10点,是不需要补零的'),
punch_day: zod_1.z.number().describe('打卡的时间,为 7 位数字,每一位依次代表周一到周日,0 为不上班,1 为上班'),
work_day_no_punch_as_lack: zod_1.z.boolean().describe('工作日不打卡是否记为缺卡,默认为空').optional(),
work_hours_demand: zod_1.z.boolean().describe('工作日出勤是否需满足时长要求,默认为空').optional(),
work_hours: zod_1.z.number().describe('每日工作时长(分钟),范围[0,1440]').optional(),
})
.describe('配置自由班制')
.optional(),
calendar_id: zod_1.z
.number()
.describe('国家日历 ID**可选值有:*** 0:不根据国家日历排休* 1:中国大陆* 2:美国* 3:日本* 4:印度* 5:新加坡'),
need_punch_special_days: zod_1.z
.array(zod_1.z.object({
punch_day: zod_1.z.number().describe('打卡日期,格式为yyyyMMdd'),
shift_id: zod_1.z.string().describe('班次 ID,可根据[查询所有班次] 和[按名称查询班次] 获得'),
}))
.describe('必须打卡的特殊日期')
.optional(),
no_need_punch_special_days: zod_1.z
.array(zod_1.z.object({
punch_day: zod_1.z.number().describe('打卡日期,格式为yyyyMMdd'),
shift_id: zod_1.z.string().describe('班次 ID,可根据[查询所有班次] 和[按名称查询班次] 获得'),
}))
.describe('无需打卡的特殊日期')
.optional(),
work_day_no_punch_as_lack: zod_1.z.boolean().describe('自由班制下工作日不打卡是否记为缺卡,默认为空').optional(),
effect_now: zod_1.z.boolean().describe('是否立即生效,默认 false').optional(),
remedy_period_type: zod_1.z.number().describe('补卡周期类型* 1:按月* 2:自定义').optional(),
remedy_period_custom_date: zod_1.z.number().describe('补卡自定义周期起始日期,范围0-28号').optional(),
punch_type: zod_1.z
.number()
.describe('打卡类型。位运算,即如需设置 1 和 2 两种打卡类型,则需要传入加和值 3。**可选值**:* 1:GPS 打卡* 2:Wi-Fi 打卡* 4:考勤机打卡* 8:IP 打卡')
.optional(),
rest_clockIn_need_approval: zod_1.z
.boolean()
.describe('休息日打卡需审批。当设置 `rest_clockIn_need_approval=true` 时,休息日一天开始时间会被重置为 4:00。默认为空')
.optional(),
clockIn_need_photo: zod_1.z.boolean().describe('每次打卡均需拍照,默认为空').optional(),
member_status_change: zod_1.z
.object({
onboarding_on_no_need_punch: zod_1.z.boolean().describe('是否入职日上班无需打卡,默认为空').optional(),
onboarding_off_no_need_punch: zod_1.z.boolean().describe('是否入职日下班无需打卡,默认为空').optional(),
offboarding_on_no_need_punch: zod_1.z.boolean().describe('是否离职日上班无需打卡,默认为空').optional(),
offboarding_off_no_need_punch: zod_1.z.boolean().describe('是否离职日下班无需打卡,默认为空').optional(),
})
.describe('人员异动打卡设置')
.optional(),
leave_need_punch: zod_1.z.boolean().describe('请假离岗或返岗是否需打卡,默认为空').optional(),
leave_need_punch_cfg: zod_1.z
.object({
late_minutes_as_late: zod_1.z.number().describe('晚到超过多久记为迟到').optional(),
late_minutes_as_lack: zod_1.z.number().describe('晚到超过多久记为缺卡').optional(),
early_minutes_as_early: zod_1.z.number().describe('早走超过多久记为早退').optional(),
early_minutes_as_lack: zod_1.z.number().describe('早走超过多久记为缺卡').optional(),
not_during_shift: zod_1.z
.boolean()
.describe('班次中间请假,无需在离岗前或返岗后打卡(仅灰度租户有效,如需使用请联系技术支持)')
.optional(),
})
.describe('请假离岗或返岗打卡规则,单位:分钟')
.optional(),
go_out_need_punch: zod_1.z
.number()
.describe('外出期间是否需打卡,默认为0。0:无需打卡,1:需在上下班时间打卡,2:需在离岗前或返岗后打卡')
.optional(),
go_out_need_punch_cfg: zod_1.z
.object({
late_minutes_as_late: zod_1.z.number().describe('晚到超过多久记为迟到').optional(),
late_minutes_as_lack: zod_1.z.number().describe('晚到超过多久记为缺卡').optional(),
early_minutes_as_early: zod_1.z.number().describe('早走超过多久记为早退').optional(),
early_minutes_as_lack: zod_1.z.number().describe('早走超过多久记为缺卡').optional(),
not_during_shift: zod_1.z
.boolean()
.describe('班次中间外出,无需在离岗前或返岗后打卡(仅灰度租户有效,如需使用请联系技术支持)')
.optional(),
})
.describe('外出期间打卡规则,单位:分钟')
.optional(),
travel_need_punch: zod_1.z
.number()
.describe('出差期间是否需打卡,默认为0。0:无需打卡,1:需在上了下班时间打卡,2:需在离岗前或返岗后打卡')
.optional(),
travel_need_punch_cfg: zod_1.z
.object({
late_minutes_as_late: zod_1.z.number().describe('晚到超过多久记为迟到').optional(),
late_minutes_as_lack: zod_1.z.number().describe('晚到超过多久记为缺卡').optional(),
early_minutes_as_early: zod_1.z.number().describe('早走超过多久记为早退').optional(),
early_minutes_as_lack: zod_1.z.number().describe('早走超过多久记为缺卡').optional(),
not_during_shift: zod_1.z.boolean().describe('无需在出差离岗前或返岗后打卡(出差不生效)').optional(),
})
.describe('出差期间打卡规则,单位:分钟')
.optional(),
need_punch_members: zod_1.z
.array(zod_1.z.object({
rule_scope_type: zod_1.z.number().describe('圈人方式:* `0`:无 * `1`:全部 * `2`:自定义').optional(),
scope_group_list: zod_1.z
.object({
scope_value_type: zod_1.z
.number()
.describe('**类型**:* 1: 部门* 2:人员* 3: 国家地区* 4: 员工类型* 5: 工作城市* 6: 职级* 7: 序列* 8: 职务(企业版)* 9: 工时制度(企业版)* 100: 自定义字段(企业版)')
.optional(),
operation_type: zod_1.z
.number()
.describe('范围类型(是否包含)* 1: 包含* 2: 不包含* 3: 相等* 4: 小于等于* 5: 大于等于* 6: 大于* 7: 小于* 8: 不相等')
.optional(),
right: zod_1.z
.array(zod_1.z.object({
key: zod_1.z.string().describe('标识Key').optional(),
name: zod_1.z.string().describe('名称').optional(),
}))
.describe('如果是人员/部门类型 不需要使用该字段')
.optional(),
member_ids: zod_1.z
.array(zod_1.z.string())
.describe('部门/人员 ID 列表(根据 scope_value_type 判断为部门或人员)')
.optional(),
custom_field_ID: zod_1.z
.string()
.describe('企业版自定义字段唯一键 ID, 需要从飞书人事获取(暂不支持)')
.optional(),
custom_field_obj_type: zod_1.z
.string()
.describe('企业版自定义字段对象类型(暂不支持)* "Employment": 主数据对象,员工雇佣信息 * "Person": 主数据对象,个人')
.optional(),
})
.describe('圈人规则列表')
.optional(),
}))
.describe('需要打卡的人员集合(仅当不传「bind_dept_ids」和「bind_user_ids」时,才会使用该字段)')
.optional(),
no_need_punch_members: zod_1.z
.array(zod_1.z.object({
rule_scope_type: zod_1.z.number().describe('圈人方式:* `0`:无 * `1`:全部 * `2`:自定义').optional(),
scope_group_list: zod_1.z
.object({
scope_value_type: zod_1.z
.number()
.describe('**类型**:* 1: 部门* 2:人员* 3: 国家地区* 4: 员工类型* 5: 工作城市* 6: 职级* 7: 序列* 8: 职务(企业版)* 9: 工时制度(企业版)* 100: 自定义字段(企业版)')
.optional(),
operation_type: zod_1.z
.number()
.describe('范围类型(是否包含)* 1: 包含* 2: 不包含* 3: 相等* 4: 小于等于* 5: 大于等于* 6: 大于* 7: 小于* 8: 不相等')
.optional(),
right: zod_1.z
.array(zod_1.z.object({
key: zod_1.z.string().describe('标识Key').optional(),
name: zod_1.z.string().describe('名称').optional(),
}))
.describe('如果是人员/部门类型 不需要使用该字段')
.optional(),
member_ids: zod_1.z
.array(zod_1.z.string())
.describe('部门/人员 ID 列表(根据 scope_value_type 判断为部门或人员)')
.optional(),
custom_field_ID: zod_1.z
.string()
.describe('企业版自定义字段唯一键 ID, 需要从飞书人事获取(暂不支持)')
.optional(),
custom_field_obj_type: zod_1.z
.string()
.describe('企业版自定义字段对象类型(暂不支持)* "Employment": 主数据对象,员工雇佣信息 * "Person": 主数据对象,个人')
.optional(),
})
.describe('圈人规则列表')
.optional(),
}))
.describe('无需打卡的人员集合(仅当不传「bind_default_dept_ids」和「bind_default_user_ids」时,才会使用该字段)')
.optional(),
save_auto_changes: zod_1.z
.boolean()
.describe('是否允许保存有冲突人员的考勤组。如果 true,则冲突人员将被自动拉入到当前设置的考勤组中,并从原考勤组中移除;如果 false,则需手动调整冲突人员。默认为 false')
.optional(),
org_change_auto_adjust: zod_1.z
.boolean()
.describe('当有新员工入职或人员异动,符合条件的人员是否自动加入考勤组。默认为空')
.optional(),
bind_default_dept_ids: zod_1.z
.array(zod_1.z.string().describe('默认出勤的部门id列表'))
.describe('参与无需打卡的部门 ID 列表(与「no_need_punch_members」同时使用时,以当前字段为准),对应dept_type')
.optional(),
bind_default_user_ids: zod_1.z
.array(zod_1.z.string().describe('默认出勤的用户ID列表'))
.describe('参与无需打卡的人员 ID 列表(与「no_need_punch_members」同时使用时,以当前字段为准),对应employee_type')
.optional(),
overtime_clock_cfg: zod_1.z
.object({
allow_punch_approval: zod_1.z
.boolean()
.describe('是否允许在非打卡时段申请打卡(仅灰度租户有效,如需使用请联系技术支持)')
.optional(),
need_clock_over_time_start_and_end: zod_1.z
.boolean()
.describe('加班开始和结束需打卡(仅灰度租户有效,如需使用请联系技术支持)')
.optional(),
})
.describe('加班打卡规则')
.optional(),
new_calendar_id: zod_1.z
.string()
.describe('节假日id,(如果考勤组使用了自定义节假日,请用此参数传入节假日id,可在假勤设置-节假日模块页面路径获取)')
.optional(),
allow_apply_punch: zod_1.z.boolean().describe('定位不准时是否允许申请打卡').optional(),
clock_in_abnormal_settings: zod_1.z
.object({
ignore_until_latest_clockout: zod_1.z
.boolean()
.describe('在最晚下班打卡之前忽略异常卡(仅灰度租户有效,如需使用请联系技术支持)')
.optional(),
})
.describe('异常卡豁免配置')
.optional(),
})
.describe('考勤组信息'),
operator_id: zod_1.z
.string()
.describe('操作人uid,对应employee_type,如果您未操作[考勤管理后台“API 接入”流程],则此字段为必填字段')
.optional(),
}),
params: zod_1.z.object({
employee_type: zod_1.z
.enum(['employee_id', 'employee_no'])
.describe('响应体中的 user_id 的员工ID类型。如果没有后台管理权限,可使用[通过手机号或邮箱获取用户 ID] Options:employee_id(员工 employee ID,即[飞书管理后台] > 组织架构 > 成员与部门 > 成员详情中的用户 ID),employee_no(员工工号,即[飞书管理后台] > 组织架构 > 成员与部门 > 成员详情中的工号)'),
dept_type: zod_1.z
.literal('open_id')
.describe('部门 ID 的类型 Options:open_id(暂时只支持部门的 openid。具体概念请参考[部门资源介绍]中的open_department_id)'),
}),
},
};
exports.attendanceV1GroupDelete = {
project: 'attendance',
name: 'attendance.v1.group.delete',
sdkName: 'attendance.v1.group.delete',
path: '/open-apis/attendance/v1/groups/:group_id',
httpMethod: 'DELETE',
description: '[Feishu/Lark]-考勤打卡-考勤组管理-删除考勤组-通过考勤组 ID 删除考勤组。对应设置-假勤设置-[考勤组]操作列的删除功能',
accessTokens: ['tenant'],
schema: {
path: zod_1.z.object({
group_id: zod_1.z
.string()
.describe('考勤组 ID,获取方式:1)[创建或修改考勤组] 2)[按名称查询考勤组] 3)[获取打卡结果]'),
}),
},
};
exports.attendanceV1GroupGet = {
project: 'attendance',
name: 'attendance.v1.group.get',
sdkName: 'attendance.v1.group.get',
path: '/open-apis/attendance/v1/groups/:group_id',
httpMethod: 'GET',
description: '[Feishu/Lark]-考勤打卡-考勤组管理-按 ID 查询考勤组-通过考勤组 ID 获取考勤组详情。包含基本信息、考勤班次、考勤方式、考勤设置信息',
accessTokens: ['tenant'],
schema: {
params: zod_1.z.object({
employee_type: zod_1.z
.enum(['employee_id', 'employee_no'])
.describe('请求体和响应体中的 user_id 和 creator_id 的员工id类型。如果没有后台管理权限,可使用[通过手机号或邮箱获取用户 ID] Options:employee_id(员工 employee ID,即[飞书管理后台] > 组织架构 > 成员与部门 > 成员详情中的用户 ID),employee_no(员工工号,即[飞书管理后台] > 组织架构 > 成员与部门 > 成员详情中的工号)'),
dept_type: zod_1.z
.literal('open_id')
.describe('部门 ID 的类型 Options:open_id(暂时只支持部门的 openid。具体概念请参考[部门资源介绍]中的open_department_id)'),
}),
path: zod_1.z.object({
group_id: zod_1.z
.string()
.describe('考勤组 ID,获取方式:1)[创建或修改考勤组] 2)[按名称查询考勤组] 3)[获取打卡结果]'),
}),
},
};
exports.attendanceV1GroupList = {
project: 'attendance',
name: 'attendance.v1.group.list',
sdkName: 'attendance.v1.group.list',
path: '/open-apis/attendance/v1/groups',
httpMethod: 'GET',
description: '[Feishu/Lark]-考勤打卡-考勤组管理-查询所有考勤组-翻页获取所有考勤组列表。列表中的数据为考勤组信息,字段包含考勤组名称和考勤组id',
accessTokens: ['tenant'],
schema: {
params: zod_1.z
.object({
page_size: zod_1.z.number().describe('分页大小').optional(),
page_token: zod_1.z
.string()
.describe('分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果')
.optional(),
})
.optional(),
},
};
exports.attendanceV1GroupListUser = {
project: 'attendance',
name: 'attendance.v1.group.listUser',
sdkName: 'attendance.v1.group.listUser',
path: '/open-apis/attendance/v1/groups/:group_id/list_user',
httpMethod: 'GET',
description: '[Feishu/Lark]-考勤打卡-考勤组管理-查询考勤组下所有成员-查询指定考勤组下的所有成员',
accessTokens: ['tenant', 'user'],
schema: {
params: zod_1.z.object({
employee_type: zod_1.z
.string()
.describe('响应体中 user_id 的员工 ID 类型。如果没有后台管理权限,可使用[通过手机号或邮箱获取用户 ID]<b>可选值有</b>:1. employee_id:员工 employee ID,即[飞书管理后台] > 组织架构 > 成员与部门 > 成员详情中的用户 ID2. employee_no:员工工号,即[飞书管理后台] > 组织架构 > 成员与部门 > 成员详情中的工号'),
dept_type: zod_1.z
.string()
.describe('响应体中 department_ids 的部门 ID 的类型<b>可选值有</b>:1. open_id:暂时只支持部门的 openid。具体概念请参考[部门资源介绍]中的open_department_id'),
page_size: zod_1.z.number().describe('分页大小').optional(),
page_token: zod_1.z
.string()
.describe('分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果')
.optional(),
member_clock_type: zod_1.z
.number()
.describe('查询的考勤组成员的打卡类型<b>可选值有</b>:<ul><li>0:全部打卡类型</li><li>1:需要打卡类型</li><li>2:无需打卡类型</li></ul>'),
}),
path: zod_1.z.object({
group_id: zod_1.z
.string()
.describe('考勤组 ID,获取方式:1)[创建或修改考勤组] 2)[按名称查询考勤组] 3)[获取打卡结果]'),
}),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.attendanceV1GroupSearch = {
project: 'attendance',
name: 'attendance.v1.group.search',
sdkName: 'attendance.v1.group.search',
path: '/open-apis/attendance/v1/groups/search',
httpMethod: 'POST',
description: '[Feishu/Lark]-考勤打卡-考勤组管理-按名称查询考勤组-按考勤组名称查询考勤组摘要信息。查询条件支持名称精确匹配和模糊匹配两种方式。查询结果按考勤组修改时间 desc 排序,且最大记录数为 10 条。对应页面设置-假勤设置-[考勤组]的名称搜索功能',
accessTokens: ['tenant'],
schema: {
data: zod_1.z.object({ group_name: zod_1.z.string().describe('考勤组名称') }),
},
};
exports.attendanceV1LeaveAccrualRecordPatch = {
project: 'attendance',
name: 'attendance.v1.leaveAccrualRecord.patch',
sdkName: 'attendance.v1.leaveAccrualRecord.patch',
path: '/open-apis/attendance/v1/leave_accrual_record/:leave_id',
httpMethod: 'PATCH',
description: '[Feishu/Lark]-考勤打卡-休假发放记录-修改发放记录-更新发放记录的发放数量和失效日期,对应假勤管理-休假管理-[发放记录]',
accessTokens: ['tenant'],
schema: {
data: zod_1.z.object({
leave_granting_record_id: zod_1.z.string().describe('发放记录的唯一ID,可通过[创建假期发放记录]'),
employment_id: zod_1.z.string().describe('员工ID,类型对应user_id_type'),
leave_type_id: zod_1.z.string().describe('假期类型ID,可通过[获取假期类型列表]获取'),
reason: zod_1.z
.array(zod_1.z.object({ lang: zod_1.z.string().describe('语言码'), value: zod_1.z.string().describe('语言码对应的文本') }))
.describe('修改发放记录原因'),
time_offset: zod_1.z.number().describe('时间偏移,东八区:480 8*60').optional(),
expiration_date: zod_1.z.string().describe('失效日期,格式"2020-01-01"').optional(),
quantity: zod_1.z.string().describe('修改发放数量').optional(),
}),
params: zod_1.z
.object({
user_id_type: zod_1.z.enum(['open_id', 'union_id', 'user_id', 'people_corehr_id']).describe('用户ID类型').optional(),
})
.optional(),
path: zod_1.z.object({ leave_id: zod_1.z.string().describe('假期类型ID,可通过[获取假期类型列表]获取').optional() }).optional(),
},
};
exports.attendanceV1LeaveEmployExpireRecordGet = {
project: 'attendance',
name: 'attendance.v1.leaveEmployExpireRecord.get',
sdkName: 'attendance.v1.leaveEmployExpireRecord.get',
path: '/open-apis/attendance/v1/leave_employ_expire_records/:leave_id',
httpMethod: 'GET',
description: '[Feishu/Lark]-考勤打卡-休假获取过期发放记录-通过过期时间获取发放记录-只能获取到对应时间段过期的发放记录',
accessTokens: ['tenant'],
schema: {
data: zod_1.z.object({
employment_id: zod_1.z.string().describe('员工ID,与user_id_type保持一致'),
leave_type_id: zod_1.z.string().describe('假期类型ID,可通过[获取假期类型列表]获取'),
start_expiration_date: zod_1.z.string().describe('失效最早日期,格式为yyyy-MM-dd'),
end_expiration_date: zod_1.z.string().describe('失效最晚日期,格式为yyyy-MM-dd'),
time_offset: zod_1.z.number().describe('时间偏移,东八区:480 8*60, 如果没有这个参数,默认东八区').optional(),
}),
params: zod_1.z
.object({
user_id_type: zod_1.z.enum(['open_id', 'union_id', 'user_id', 'people_corehr_id']).describe('用户ID类型').optional(),
})
.optional(),
path: zod_1.z.object({ leave_id: zod_1.z.string().describe('假期类型ID,可通过[获取假期类型列表]获取').optional() }).optional(),
},
};
exports.attendanceV1ShiftCreate = {
project: 'attendance',
name: 'attendance.v1.shift.create',
sdkName: 'attendance.v1.shift.create',
path: '/open-apis/attendance/v1/shifts',
httpMethod: 'POST',
description: '[Feishu/Lark]-考勤打卡-考勤班次-创建班次-班次是描述一次考勤任务时间规则的统称,比如一天打多少次卡,每次卡的上下班时间,晚到多长时间算迟到,晚到多长时间算缺卡等。在假勤设置-[班次设置]中点击班次名称可以进行班次详情查看。如果入参中传入了班次id,那么支持编辑班次的能力',
accessTokens: ['tenant'],
schema: {
data: zod_1.z.object({
shift_name: zod_1.z.string().describe('班次名称,不可重复'),
punch_times: zod_1.z.number().describe('打卡次数(历史字段,已无用,以punch_time_rule为准)'),
sub_shift_leader_ids: zod_1.z
.array(zod_1.z.string().describe('排班组子负责人id列表'))
.describe('班次负责人,与employee_type类型对应')
.optional(),
is_flexible: zod_1.z.boolean().describe('是否弹性打卡,默认为false,不开启').optional(),
flexible_minutes: zod_1.z
.number()
.describe('弹性打卡时间,单位:分钟,设置【上班最多可晚到】与【下班最多可早走】时间。仅当未设置 flexible_rule 参数时,该参数生效。如果设置了 flexible_rule 参数,则该参数不生效')
.optional(),
flexible_rule: zod_1.z
.array(zod_1.z.object({
flexible_early_minutes: zod_1.z
.number()
.describe('下班最多可早走,单位:分钟(上班早到几分钟,下班可早走几分钟)'),
flexible_late_minutes: zod_1.z
.number()
.describe('上班最多可晚到,单位:分钟(上班晚到几分钟,下班须晚走几分钟)'),
}))
.describe('弹性打卡时间设置')
.optional(),
no_need_off: zod_1.z.boolean().describe('true为不需要打下班卡。默认为false,需要下班打卡').optional(),
punch_time_rule: zod_1.z
.array(zod_1.z.object({
on_time: zod_1.z.string().describe('上班时间'),
off_time: zod_1.z
.string()
.describe('下班时间。如果下班时间跨天,则需要在 24 小时的基础上累加时间。例如,第二天凌晨 2 点取值为 26:00'),
late_minutes_as_late: zod_1.z.number().describe('晚到多久记为迟到。单位:分钟'),
late_minutes_as_lack: zod_1.z.number().describe('晚到多久记为缺卡。单位:分钟'),
on_advance_minutes: zod_1.z.number().describe('最早多久可打上班卡。最大值为 720。单位:分钟'),
early_minutes_as_early: zod_1.z.number().describe('早退多久记为早退。单位:分钟'),
early_minutes_as_lack: zod_1.z.number().describe('早退多久记为缺卡。单位:分钟'),
off_delay_minutes: zod_1.z.number().describe('最晚多久可打下班卡。最大值为 960。单位:分钟'),
late_minutes_as_serious_late: zod_1.z.number().describe('晚到多久记为严重迟到。单位:分钟').optional(),
no_need_on: zod_1.z
.boolean()
.describe('true为不需要打上班卡,这里需要特别注意,第一段打卡规则须为false。后续可按需配置')
.optional(),
no_need_off: zod_1.z
.boolean()
.describe('true为不需要打下班卡。默认为false,需要下班打卡(优先级高于data.shift.no_need_off)')
.optional(),
}))
.describe('打卡规则'),
late_off_late_on_rule: zod_1.z
.array(zod_1.z.object({
late_off_minutes: zod_1.z.number().describe('晚走多久。单位:分钟'),
late_on_minutes: zod_1.z.number().describe('晚到多久。单位:分钟'),
}))
.describe('晚走晚到规则(仅飞书人事企业版可用)')
.optional(),
rest_time_rule: zod_1.z
.array(zod_1.z.object({
rest_begin_time: zod_1.z.string().describe('休息开始'),
rest_end_time: zod_1.z.string().describe('休息结束'),
}))
.describe('休息规则')
.optional(),
overtime_rule: zod_1.z
.array(zod_1.z.object({ on_overtime: zod_1.z.string().describe('开始时间'), off_overtime: zod_1.z.string().describe('结束时间') }))
.describe('加班时段(仅飞书人事企业版可用)')
.optional(),
day_type: zod_1.z
.number()
.describe('日期类型,【是否弹性打卡 = ture】时,不可设置为“休息日” 可选值:1:工作日 2:休息日。默认值:1')
.optional(),
overtime_rest_time_rule: zod_1.z
.array(zod_1.z.object({
rest_begin_time: zod_1.z.string().describe('休息开始'),
rest_end_time: zod_1.z.string().describe('休息结束'),
}))
.describe('班外休息规则')
.optional(),
late_minutes_as_serious_late: zod_1.z
.number()
.describe('晚到多久记为严重迟到。单位:分钟(优先级高于data.shift.punch_time_rule.late_minutes_as_serious_late)')
.optional(),
shift_middle_time_rule: zod_1.z
.object({
middle_time_type: zod_1.z
.number()
.describe('半天分割类型 Options:0(DefaultWithRest 按全天班次时长(含休息)的中点分割),1(DefaultWithoutRest 按全天班次时长(不含休息)的中点分割),2(BaseInRest 按休息时间分割),3(BaseInFixed 按固定时间点分割)')
.optional(),
fixed_middle_time: zod_1.z.string().describe('固定分割时间点(middle_time_type 为 3 时有效)').optional(),
})
.describe('半天分割规则(仅飞书人事企业版可用)')
.optional(),
shift_attendance_time_config: zod_1.z
.object({
attendance_time: zod_1.z.number().describe('应出勤时长').optional(),
on_attendance_time: zod_1.z.number().describe('上半天应出勤时长').optional(),
off_attendance_time: zod_1.z.number().describe('下半天应出勤时长').optional(),
})
.describe('应出勤配置(灰度中,暂未开放)')
.optional(),
late_off_late_on_setting: zod_1.z
.object({
late_off_base_on_time_type: zod_1.z
.number()
.describe('当日晚走时间计算规则 Options:0(FlexibleType 弹性规则),1(FixedType 固定规则)')
.optional(),
late_on_base_on_time_type: zod_1.z
.number()
.describe('次日晚到时间计算规则 Options:0(FixedType 固定规则),1(FlexibleType 弹性规则)')
.optional(),
})
.describe('晚走次日晚到配置规则')
.optional(),
id: zod_1.z.string().describe('班次id(更新班次时需要传递),获取方式:1)[按名称查询班次] 2)[创建班次]').optional(),
}),
params: zod_1.z
.object({
employee_type: zod_1.z
.enum(['employee_id', 'employee_no'])
.describe('请求体中的 user_ids 和响应体中的 user_id 的员工ID类型。如果没有后台管理权限,可使用[通过手机号或邮箱获取用户 ID] Options:employee_id(员工 employee ID,即[飞书管理后台] > 组织架构 > 成员与部门 > 成员详情中的用户 ID,或者[通过手机号或邮箱获取用户 ID]获取的userid。),employee_no(员工工号,即[飞书管理后台] > 组织架构 > 成员与部门 > 成员详情中的工号)')
.optional(),
})
.optional(),
},
};
exports.attendanceV1ShiftDelete = {
project: 'attendance',
name: 'attendance.v1.shift.delete',
sdkName: 'attendance.v1.shift.delete',
path: '/open-apis/attendance/v1/shifts/:shift_id',
httpMethod: 'DELETE',
description: '[Feishu/Lark]-考勤打卡-考勤班次-删除班次-通过班次 ID 删除班次。对应功能为假勤设置-[班次设置]班次列表中操作栏的删除按钮',
accessTokens: ['tenant'],
schema: {
path: zod_1.z.object({ shift_id: zod_1.z.string().describe('班次 ID,获取方式:1)[按名称查询班次] 2)[创建班次]') }),
},
};
exports.attendanceV1ShiftGet = {
project: 'attendance',
name: 'attendance.v1.shift.get',
sdkName: 'attendance.v1.shift.get',
path: '/open-apis/attendance/v1/shifts/:shift_id',
httpMethod: 'GET',
description: '[Feishu/Lark]-考勤打卡-考勤班次-按 ID 查询班次-通过班次 ID 获取班次详情。对应功能为假勤设置-[班次设置]班次列表中的具体班次,班次信息可以点击班次名称查看',
accessTokens: ['tenant'],
schema: {
path: zod_1.z.object({ shift_id: zod_1.z.string().describe('班次 ID,获取方式:1)[按名称查询班次] 2)[创建班次]') }),
},
};
exports.attendanceV1ShiftList = {
project: 'attendance',
name: 'attendance.v1.shift.list',
sdkName: 'attendance.v1.shift.list',
path: '/open-apis/attendance/v1/shifts',
httpMethod: 'GET',
description: '[Feishu/Lark]-考勤打卡-考勤班次-查询所有班次-飞书人事管理后台中假勤设置-[班次配置]中的翻页查询所有班次功能,展示班次名称、打卡规则、弹性班次规则、休息规则等',
accessTokens: ['tenant'],
schema: {
params: zod_1.z
.object({
page_size: zod_1.z.number().describe('分页大小').optional(),
page_token: zod_1.z
.string()
.describe('分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果')
.optional(),
})
.optional(),
},
};
exports.attendanceV1ShiftQuery = {
project: 'attendance',
name: 'attendance.v1.shift.query',
sdkName: 'attendance.v1.shift.query',
path: '/open-apis/attendance/v1/shifts/query',
httpMethod: 'POST',
description: '[Feishu/Lark]-考勤打卡-考勤班次-按名称查询班次-飞书人事管理后台中假勤设置-[班次配置]中的搜索班次名称功能,展示班次名称、打卡规则、弹性班次规则、休息规则等',
accessTokens: ['tenant'],
schema: {
params: zod_1.z.object({ shift_name: zod_1.z.string().describe('班次名称,支持模糊匹配') }),
},
};
exports.attendanceV1UserApprovalCreate = {
project: 'attendance',
name: 'attendance.v1.userApproval.create',
sdkName: 'attendance.v1.userApproval.create',
path: '/open-apis/attendance/v1/user_approvals',
httpMethod: 'POST',
description: '[Feishu/Lark]-考勤打卡-假勤审批-写入审批结果-由于部分企业使用的是自己的审批系统,而不是飞书审批系统,因此员工的请假、加班等数据无法流入到飞书考勤系统中,导致员工在请假时间段内依然收到打卡提醒,并且被记为缺卡。对于这些只使用飞书考勤系统,而未使用飞书审批系统的企业,可以通过考勤开放接口的形式,将三方审批结果数据回写到飞书考勤系统中',
accessTokens: ['tenant'],
schema: {
data: zod_1.z
.object({
user_approval: zod_1.z
.object({
user_id: zod_1.z.string().describe('审批提交人 ID。传入的ID类型需要与employee_type的取值一致'),
date: zod_1.z.string().describe('审批作用日期,格式为yyyyMMdd'),
outs: zod_1.z
.array(zod_1.z.object({
uniq_id: zod_1.z
.string()
.describe('外出类型唯一 ID,代表一种外出类型,长度小于 14* 如何获取?可以选择填入三方的外出类型id。如市内外出、市外外出的id'),
unit: zod_1.z
.number()
.describe('外出时长单位 Options:1(Day 天),2(Hour 小时),3(HalfDay 半天),4(HalfHour 半小时)'),
interval: zod_1.z.number().describe('关联审批单外出时长,单位为秒,与unit无关'),
start_time: zod_1.z.string().describe('开始时间,时间格式为 yyyy-MM-dd HH:mm:ss'),
end_time: zod_1.z.string().describe('结束时间,时间格式为 yyyy-MM-dd HH:mm:ss'),
i18n_names: zod_1.z
.object({
ch: zod_1.z.string().describe('中文描述').optional(),
en: zod_1.z.string().describe('英语描述').optional(),
ja: zod_1.z.string().describe('日语描述').optional(),
})
.describe('外出多语言展示,格式为 map,key 为 ["ch"、"en"、"ja"],其中 ch 代表中文、en 代表英语、ja 代表日语'),
default_locale: zod_1.z
.string()
.describe('默认语言类型,由于飞书客户端支持中、英、日三种语言,当用户切换语言时,如果假期名称没有所对应的语言,会使用默认语言的名称'),
reason: zod_1.z.string().describe('外出理由'),
idempotent_id: zod_1.z
.string()
.describe('外出记录的唯一幂等键,用于避免外出记录重复创建,可以填入三方的外出记录id')
.optional(),
correct_process_id: zod_1.z
.array(zod_1.z.string())
.describe('更正流程实例 ID。该字段由系统自动生成,在写入审批结果时,无需传入该参数')
.optional(),
cancel_process_id: zod_1.z
.array(zod_1.z.string())
.describe('撤销流程实例 ID。该字段由系统自动生成,在写入审批结果时,无需传入该参数')
.optional(),
process_id: zod_1.z
.array(zod_1.z.string())
.describe('发起流程实例 ID。该字段由系统自动生成,在写入审批结果时,无需传入该参数')
.optional(),
}))
.describe('外出信息')
.optional(),
leaves: zod_1.z
.array(zod_1.z.object({
uniq_id: zod_1.z.string().describe('审批实例id').optional(),
unit: zod_1.z
.number()
.describe('假期时长单位 Options:1(Day 天),2(Hour 小时),3(HalfDay 半天),4(HalfHour 半小时)'),
interval: zod_1.z.number().describe('关联审批单假期时长,单位为秒,与unit无关'),
start_time: zod_1.z.string().describe('开始时间,时间格式为 yyyy-MM-dd HH:mm:ss'),
end_time: zod_1.z.string().describe('结束时间,时间格式为 yyyy-MM-dd HH:mm:ss'),
i18n_names: zod_1.z
.object({
ch: zod_1.z.string().describe('中文描述').optional(),
en: zod_1.z.string().describe('英语描述').optional(),
ja: zod_1.z.string().describe('日语描述').optional(),
})
.describe('假期多语言展示,格式为 map,key 为 ["ch"、"en"、"ja"],其中 ch 代表中文、en 代表英语、ja 代表日语'),
default_locale: zod_1.z
.enum(['ch', 'en', 'ja'])
.describe('默认语言类型,由于飞书客户端支持中、英、日三种语言,当用户切换语言时,如果假期名称没有所对应的语言,会使用默认语言的名称 Options:ch(中文),en(英文),ja(日文)'),
reason: zod_1.z.string().describe('请假理由,必选字段'),