@larksuiteoapi/lark-mcp
Version:
Feishu/Lark OpenAPI MCP
902 lines • 133 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.taskV2TasklistRemoveMembers = exports.taskV2TasklistPatch = exports.taskV2TasklistList = exports.taskV2TasklistGet = exports.taskV2TasklistDelete = exports.taskV2TasklistCreate = exports.taskV2TasklistAddMembers = exports.taskV2TasklistActivitySubscriptionPatch = exports.taskV2TasklistActivitySubscriptionList = exports.taskV2TasklistActivitySubscriptionGet = exports.taskV2TasklistActivitySubscriptionDelete = exports.taskV2TasklistActivitySubscriptionCreate = exports.taskV2TaskTasklists = exports.taskV2TaskSubtaskList = exports.taskV2TaskSubtaskCreate = exports.taskV2TaskRemoveTasklist = exports.taskV2TaskRemoveReminders = exports.taskV2TaskRemoveMembers = exports.taskV2TaskRemoveDependencies = exports.taskV2TaskPatch = exports.taskV2TaskList = exports.taskV2TaskGet = exports.taskV2TaskDelete = exports.taskV2TaskCreate = exports.taskV2TaskAddTasklist = exports.taskV2TaskAddReminders = exports.taskV2TaskAddMembers = exports.taskV2TaskAddDependencies = exports.taskV2SectionTasks = exports.taskV2SectionPatch = exports.taskV2SectionList = exports.taskV2SectionGet = exports.taskV2SectionDelete = exports.taskV2SectionCreate = exports.taskV2CustomFieldRemove = exports.taskV2CustomFieldPatch = exports.taskV2CustomFieldOptionPatch = exports.taskV2CustomFieldOptionCreate = exports.taskV2CustomFieldList = exports.taskV2CustomFieldGet = exports.taskV2CustomFieldCreate = exports.taskV2CustomFieldAdd = exports.taskV2CommentPatch = exports.taskV2CommentList = exports.taskV2CommentGet = exports.taskV2CommentDelete = exports.taskV2CommentCreate = exports.taskV2AttachmentList = exports.taskV2AttachmentGet = exports.taskV2AttachmentDelete = void 0;
exports.taskV2Tools = exports.taskV2TasklistTasks = void 0;
const zod_1 = require("zod");
exports.taskV2AttachmentDelete = {
project: 'task',
name: 'task.v2.attachment.delete',
sdkName: 'task.v2.attachment.delete',
path: '/open-apis/task/v2/attachments/:attachment_guid',
httpMethod: 'DELETE',
description: '[Feishu/Lark]-任务-附件-删除附件-提供一个附件GUID,删除该附件。删除后该附件不可再恢复',
accessTokens: ['tenant', 'user'],
schema: {
path: zod_1.z.object({
attachment_guid: zod_1.z
.string()
.describe('要删除附件的GUID。可以通过创建接口创建, 或者通过接口查询得到')
.optional(),
}),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.taskV2AttachmentGet = {
project: 'task',
name: 'task.v2.attachment.get',
sdkName: 'task.v2.attachment.get',
path: '/open-apis/task/v2/attachments/:attachment_guid',
httpMethod: 'GET',
description: '[Feishu/Lark]-任务-附件-获取附件-提供一个附件GUID,返回附件的详细信息,包括GUID,名称,大小,上传时间,临时可下载链接等',
accessTokens: ['tenant', 'user'],
schema: {
params: zod_1.z.object({ user_id_type: zod_1.z.string().describe('用户ID类型').optional() }),
path: zod_1.z.object({
attachment_guid: zod_1.z
.string()
.describe('获取详情的附件GUID。可以通过创建接口创建, 或者通过接口查询得到'),
}),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.taskV2AttachmentList = {
project: 'task',
name: 'task.v2.attachment.list',
sdkName: 'task.v2.attachment.list',
path: '/open-apis/task/v2/attachments',
httpMethod: 'GET',
description: '[Feishu/Lark]-任务-附件-列取附件-列取一个资源的所有附件。返回的附件列表支持分页,按照附件上传时间排序。每个附件会返回一个可供下载的临时url,有效期为3分钟,最多可以支持3次下载。如果超过使用限制,需要通过本接口获取新的临时url',
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(),
resource_type: zod_1.z.string().describe('附件归属的资源类型。目前只支持"task"').optional(),
resource_id: zod_1.z
.string()
.describe('附件归属资源的id,配合resource_type使用。例如希望获取任务的附件,需要设置 resource_type为task, resource_id为任务GUID。任务GUID的获取方式可以参考'),
user_id_type: zod_1.z.string().describe('用户ID类型').optional(),
}),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.taskV2CommentCreate = {
project: 'task',
name: 'task.v2.comment.create',
sdkName: 'task.v2.comment.create',
path: '/open-apis/task/v2/comments',
httpMethod: 'POST',
description: '[Feishu/Lark]-任务-评论-创建评论-为一个任务创建评论,或者回复该任务的某个评论。若要创建一个回复评论,需要在创建时设置`reply_to_comment_id`字段。被回复的评论和新建的评论必须属于同一个任务',
accessTokens: ['tenant', 'user'],
schema: {
data: zod_1.z.object({
content: zod_1.z.string().describe('评论内容。不允许为空,最长3000个utf8字符'),
reply_to_comment_id: zod_1.z.string().describe('回复给评论的评论ID。如果不填写表示创建非回复评论').optional(),
resource_type: zod_1.z.string().describe('评论归属的资源类型,目前只支持任务“task”,默认为"task"').optional(),
resource_id: zod_1.z.string().describe('评论归属的资源ID。当归属资源类型为"task"时,这里应填写任务的GUID').optional(),
}),
params: zod_1.z.object({ user_id_type: zod_1.z.string().describe('用户ID类型').optional() }),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.taskV2CommentDelete = {
project: 'task',
name: 'task.v2.comment.delete',
sdkName: 'task.v2.comment.delete',
path: '/open-apis/task/v2/comments/:comment_id',
httpMethod: 'DELETE',
description: '[Feishu/Lark]-任务-评论-删除评论-删除一条评论。评论被删除后,将无法进行任何操作,也无法恢复',
accessTokens: ['tenant', 'user'],
schema: {
path: zod_1.z.object({ comment_id: zod_1.z.string().describe('要删除的评论id') }),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.taskV2CommentGet = {
project: 'task',
name: 'task.v2.comment.get',
sdkName: 'task.v2.comment.get',
path: '/open-apis/task/v2/comments/:comment_id',
httpMethod: 'GET',
description: '[Feishu/Lark]-任务-评论-获取评论详情-给定一个评论的ID,返回评论的详情,包括内容,创建人,创建时间和更新时间等信息',
accessTokens: ['tenant', 'user'],
schema: {
params: zod_1.z.object({ user_id_type: zod_1.z.string().describe('用户ID类型').optional() }),
path: zod_1.z.object({ comment_id: zod_1.z.string().describe('要获取评论详情的评论ID') }),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.taskV2CommentList = {
project: 'task',
name: 'task.v2.comment.list',
sdkName: 'task.v2.comment.list',
path: '/open-apis/task/v2/comments',
httpMethod: 'GET',
description: '[Feishu/Lark]-任务-评论-获取评论列表-给定一个资源,返回该资源的评论列表。支持分页。评论可以按照创建时间的正序(asc, 从最老到最新),或者逆序(desc,从最老到最新),返回数据',
accessTokens: ['tenant', 'user'],
schema: {
params: zod_1.z.object({
page_size: zod_1.z.number().describe('分页大小,默认为50').optional(),
page_token: zod_1.z
.string()
.describe('分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果')
.optional(),
resource_type: zod_1.z.string().describe('要获取评论列表的资源类型,目前只支持"task",默认为"task"').optional(),
resource_id: zod_1.z.string().describe('要获取评论的资源ID。例如要获取任务的评论列表,此处应该填写任务全局唯一ID'),
direction: zod_1.z
.enum(['asc', 'desc'])
.describe('返回数据的排序方式。"asc"表示从最老到最新顺序返回;"desc"表示从最新到最老顺序返回。默认为"asc"。 Options:asc(评论发表时间升序),desc(评论发表时间降序)')
.optional(),
user_id_type: zod_1.z.string().describe('用户ID类型').optional(),
}),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.taskV2CommentPatch = {
project: 'task',
name: 'task.v2.comment.patch',
sdkName: 'task.v2.comment.patch',
path: '/open-apis/task/v2/comments/:comment_id',
httpMethod: 'PATCH',
description: '[Feishu/Lark]-任务-评论-更新评论-更新一条评论。更新时,将`update_fields`字段中填写所有要修改的评论的字段名,同时在`comment`字段中填写要修改的字段的新值即可。更新接口规范详情见中的“ 关于资源的更新”章节。目前只支持更新评论的"conent"字段',
accessTokens: ['tenant', 'user'],
schema: {
data: zod_1.z.object({
comment: zod_1.z
.object({
content: zod_1.z
.string()
.describe('要更新的评论内容。如果更新该字段,不允许设为空,最大支持3000个utf8字符')
.optional(),
})
.describe('要更新的评论数据'),
update_fields: zod_1.z
.array(zod_1.z.string())
.describe('要更新的字段,支持<md-enum><md-enum-item key="content" >评论内容</md-enum-item></md-enum>'),
}),
params: zod_1.z.object({ user_id_type: zod_1.z.string().describe('用户ID类型').optional() }),
path: zod_1.z.object({ comment_id: zod_1.z.string().describe('要更新的评论ID') }),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.taskV2CustomFieldAdd = {
project: 'task',
name: 'task.v2.customField.add',
sdkName: 'task.v2.customField.add',
path: '/open-apis/task/v2/custom_fields/:custom_field_guid/add',
httpMethod: 'POST',
description: '[Feishu/Lark]-任务-自定义字段-将自定义字段加入资源-将自定义字段加入一个资源。目前资源类型支持清单tasklist。一个自定义字段可以加入多个清单中。加入后,该清单可以展示任务的该字段的值,同时基于该字段实现筛选,分组等功能。如果自定义字段的设置被更新,字段加入的所有字段都能收到这个更新,并进行相应的展示',
accessTokens: ['tenant', 'user'],
schema: {
data: zod_1.z.object({
resource_type: zod_1.z.string().describe('要将自定义字段添加到一个资源的资源类型。目前只支持tasklist'),
resource_id: zod_1.z.string().describe('要将自定义字段添加到的资源id,目前只支持tasklist_guid'),
}),
path: zod_1.z.object({
custom_field_guid: zod_1.z
.string()
.describe('自定义字段GUID。自定义字段GUID。可以通过接口创建, 或者通过接口查询得到'),
}),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.taskV2CustomFieldCreate = {
project: 'task',
name: 'task.v2.customField.create',
sdkName: 'task.v2.customField.create',
path: '/open-apis/task/v2/custom_fields',
httpMethod: 'POST',
description: '[Feishu/Lark]-任务-自定义字段-创建自定义字段-创建一个自定义字段,并将其加入一个资源上(目前资源只支持清单)。创建自定义字段必须提供字段名称,类型和相应类型的设置。目前任务自定义字段支持数字(number),成员(member),日期(datetime),单选(single_select),多选(multi_select), 文本(text)几种类型。分别使用"number_setting", "member_setting", "datetime_setting", "single_select_setting", "multi_select_setting","text_setting"来设置。例如创建一个数字类型的自定义字段,并添加到guid为"ec5ed63d-a4a9-44de-a935-7ba243471c0a"的清单,可以这样发请求。```POST /task/v2/custom_fields{ "name": "价格", "type": "number", "resource_type": "tasklist", "resource_id": "ec5ed63d-a4a9-44de-a935-7ba243471c0a", "number_setting": { "format": "cny", "decimal_count": 2, "separator": "thousand" }}```表示创建一个叫做“价格”的自定义字段,保留两位小数。在界面上显示时采用人民币的格式,并显示千分位分割符。类似的,创建一个单选字段,可以这样调用接口:```POST /task/v2/custom_fields{ "name": "优先级", "type": "single_select", "resource_type": "tasklist", "resource_id": "ec5ed63d-a4a9-44de-a935-7ba243471c0a", "single_select_setting": { "options": [ { "name": "高", "color_index": 1 }, { "name": "中", "color_index": 11 }, { "name": "低", "color_index": 16 } ] }}```表示创建一个叫“优先级”的单选,包含“高”,“中”,“低”三个选项,每个选项设置一个颜色值',
accessTokens: ['tenant', 'user'],
schema: {
data: zod_1.z.object({
resource_type: zod_1.z.string().describe('自定义字段要归属的资源类型,支持"tasklist"'),
resource_id: zod_1.z.string().describe('自定义字段要归属的资源ID,当`resource_type`为"tasklist"时必须填写清单的GUID'),
name: zod_1.z.string().describe('字段名称,最大50个字符'),
type: zod_1.z
.enum(['number', 'datetime', 'member', 'single_select', 'multi_select', 'text'])
.describe('自定义字段类型。 Options:number(数字),datetime(日期),member(成员),single_select(单选),multi_select(多选),text(文本)'),
number_setting: zod_1.z
.object({
format: zod_1.z
.enum(['normal', 'percentage', 'cny', 'usd', 'custom'])
.describe('数字类型的自定义字段的值在App展示的格式。注意本设置仅影响App中的数字类型字段的字段值的显示格式,并不会影响openapi中输入/输出的字段值的格式。 Options:normal(常规数字),percentage(百分比格式),cny(人民币格式),usd(美元格式),custom(自定义符号)')
.optional(),
custom_symbol: zod_1.z
.string()
.describe('当`format`设为"custom"时,设置具体的自定义符号。注意本设置仅影响App中的数字类型字段的字段值的显示格式,并不会影响openapi输入/输出的字段值的格式')
.optional(),
custom_symbol_position: zod_1.z
.enum(['left', 'right'])
.describe('当`format`设为"custom"时,自定义符号相对于数字的显示位置。注意本设置仅影响App中的数字类型字段的字段值的显示格式,并不会影响openapi输入/输出的字段值的格式。 Options:left(letf 自定义符号显示在数字左边),right(自定义符号显示在数字右边)')
.optional(),
separator: zod_1.z
.enum(['none', 'thousand'])
.describe('数字类型自定义字段整数部分的分隔符样式。注意本设置仅影响App中的数字类型字段的字段值的显示格式,并不会影响openapi输入/输出的字段值的格式。 Options:none(无分隔符),thousand(千分位分隔符)')
.optional(),
decimal_count: zod_1.z
.number()
.describe('数字类型自定义字段的值保留的小数位数。多余的位数将被四舍五入。默认为0')
.optional(),
})
.describe('数字类型的字段设置')
.optional(),
member_setting: zod_1.z
.object({ multi: zod_1.z.boolean().describe('是否支持多选。默认为false').optional() })
.describe('人员类型的字段设置')
.optional(),
datetime_setting: zod_1.z
.object({
format: zod_1.z
.string()
.describe('日期时间格式,支持<md-enum><md-enum-item key="yyyy-mm-dd" >以短横分隔的年月日,例如2023-08-24</md-enum-item><md-enum-item key="yyyy/mm/dd" >以斜杠分隔的年月日,例如2023/08/04</md-enum-item><md-enum-item key="mm/dd/yyyy" >以斜杠分隔的月日年,例如08/24/2023</md-enum-item><md-enum-item key="dd/mm/yyyy" >以斜杠分隔的日月年,例如24/08/2023</md-enum-item></md-enum>默认为"yyyy-mm-dd"。注意本设置仅影响App中的时间日期类型字段的字段值的显示格式,并不会影响openapi输入/输出的字段值的格式')
.optional(),
})
.describe('时间日期类型的字段设置')
.optional(),
single_select_setting: zod_1.z
.object({
options: zod_1.z
.array(zod_1.z.object({
name: zod_1.z.string().describe('选项名称,不能为空,最大50个字符'),
color_index: zod_1.z
.number()
.describe('选项的颜色索引值,取值0~54。如不填写会自动从未使用的颜色索引值中随机选一个')
.optional(),
is_hidden: zod_1.z
.boolean()
.describe('选项是否隐藏。隐藏后的选项在界面不可见,也不可以再通过openapi将字段值设为该选项')
.optional(),
}))
.describe('单选选项')
.optional(),
})
.describe('单选设置')
.optional(),
multi_select_setting: zod_1.z
.object({
options: zod_1.z
.array(zod_1.z.object({
name: zod_1.z.string().describe('选项名称,不能为空,最大50个字符'),
color_index: zod_1.z
.number()
.describe('选项的颜色索引值,可以是0~54中的一个数字。如果不填写则会随机选一个')
.optional(),
is_hidden: zod_1.z
.boolean()
.describe('选项是否隐藏。隐藏后的选项在App界面不可见,也不可以通过oapi将字段值设为该选项')
.optional(),
}))
.describe('多选选项')
.optional(),
})
.describe('多选设置')
.optional(),
text_setting: zod_1.z.object({}).describe('文本类型设置(目前文本类型没有可设置项)').optional(),
}),
params: zod_1.z.object({ user_id_type: zod_1.z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型').optional() }),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.taskV2CustomFieldGet = {
project: 'task',
name: 'task.v2.customField.get',
sdkName: 'task.v2.customField.get',
path: '/open-apis/task/v2/custom_fields/:custom_field_guid',
httpMethod: 'GET',
description: '[Feishu/Lark]-任务-自定义字段-获取自定义字段-根据一个自定义字段的GUID,获取其详细的设置信息',
accessTokens: ['tenant', 'user'],
schema: {
params: zod_1.z.object({ user_id_type: zod_1.z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型').optional() }),
path: zod_1.z.object({
custom_field_guid: zod_1.z
.string()
.describe('自定义字段GUID。可以通过接口创建, 或者通过接口查询得到'),
}),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.taskV2CustomFieldList = {
project: 'task',
name: 'task.v2.customField.list',
sdkName: 'task.v2.customField.list',
path: '/open-apis/task/v2/custom_fields',
httpMethod: 'GET',
description: '[Feishu/Lark]-任务-自定义字段-列取自定义字段-列取用户可访问的自定义字段列表。如果不提供`resource_type`和`resource_id`参数,则返回用户可访问的所有自定义字段。如果提供`resource_type`和`resource_id`,则返回该资源下的自定义字段。目前`resource_type`仅支持"tasklist",此时`resource_id`应为一个清单的tasklist_guid。该接口支持分页',
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(),
user_id_type: zod_1.z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型').optional(),
resource_type: zod_1.z
.string()
.describe('资源类型,如提供表示仅查询特定资源下的自定义字段。目前只支持tasklist')
.optional(),
resource_id: zod_1.z.string().describe('要查询自定义字段的归属resource_id').optional(),
}),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.taskV2CustomFieldOptionCreate = {
project: 'task',
name: 'task.v2.customFieldOption.create',
sdkName: 'task.v2.customFieldOption.create',
path: '/open-apis/task/v2/custom_fields/:custom_field_guid/options',
httpMethod: 'POST',
description: '[Feishu/Lark]-任务-自定义字段选项-创建自定义任务选项-为单选或多选字段添加一个自定义选项。一个单选/多选字段最大支持100个选项。新添加的选项如果不隐藏,其名字不能和已存在的不隐藏选项的名字重复',
accessTokens: ['tenant', 'user'],
schema: {
data: zod_1.z.object({
name: zod_1.z.string().describe('选项名称,最大50个字符').optional(),
color_index: zod_1.z.number().describe('颜色索引值,支持0~54中的一个数字。如果不填写,则会随机选一个').optional(),
insert_before: zod_1.z.string().describe('要放到某个option之前的option_guid').optional(),
insert_after: zod_1.z.string().describe('要放到某个option之后的option_guid').optional(),
is_hidden: zod_1.z.boolean().describe('是否隐藏').optional(),
}),
path: zod_1.z.object({ custom_field_guid: zod_1.z.string().describe('要添加选项的自定义字段GUID,该字段必须是') }),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.taskV2CustomFieldOptionPatch = {
project: 'task',
name: 'task.v2.customFieldOption.patch',
sdkName: 'task.v2.customFieldOption.patch',
path: '/open-apis/task/v2/custom_fields/:custom_field_guid/options/:option_guid',
httpMethod: 'PATCH',
description: '[Feishu/Lark]-任务-自定义字段选项-更新自定义字段选项-根据一个自定义字段的GUID和其选项的GUID,更新该选项的数据。要更新的字段必须是单选或者多选类型,且要更新的字段必须归属于该字段。更新时,将`update_fields`字段中填写所有要修改的任务字段名,同时在`option`字段中填写要修改的字段的新值即可。`update_fields`支持的字段包括:* `name`: 选项名称* `color_index`: 选项的颜色索引值* `is_hidden`: 是否从界面上隐藏* `insert_before`: 将当前option放到同字段某个option之前的那个option_guid。* `insert_after`: 将当前option放到同字段某个option之后的那个option_guid',
accessTokens: ['tenant', 'user'],
schema: {
data: zod_1.z.object({
option: zod_1.z
.object({
name: zod_1.z.string().describe('选项名称,最大50个字符').optional(),
color_index: zod_1.z.number().describe('颜色索引值,支持0~54中的一个数字').optional(),
insert_before: zod_1.z.string().describe('要放到某个option之前的option_guid').optional(),
insert_after: zod_1.z.string().describe('要放到某个option之后的option_guid').optional(),
is_hidden: zod_1.z.boolean().describe('是否隐藏').optional(),
})
.describe('要更新的option数据')
.optional(),
update_fields: zod_1.z
.array(zod_1.z.string())
.describe('要更新的字段名,支持* `name`: 选项名称* `color_index`: 选项的颜色索引值* `is_hidden`: 是否从界面上隐藏* `insert_before`: 将当前option放到同字段某个option之前。* `insert_after`: 将当前option放到同字段某个option之后')
.optional(),
}),
path: zod_1.z.object({
custom_field_guid: zod_1.z.string().describe('要更新的选项的自定义字段GUID'),
option_guid: zod_1.z.string().describe('要更新的选项的GUID'),
}),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.taskV2CustomFieldPatch = {
project: 'task',
name: 'task.v2.customField.patch',
sdkName: 'task.v2.customField.patch',
path: '/open-apis/task/v2/custom_fields/:custom_field_guid',
httpMethod: 'PATCH',
description: '[Feishu/Lark]-任务-自定义字段-更新自定义字段-更新一个自定义字段的名称和设定。更新时,将`update_fields`字段中填写所有要修改的任务字段名,同时在`custom_field`字段中填写要修改的字段的新值即可。自定义字段不允许修改类型,只能根据类型修改其设置。`update_fields`支持更新的字段包括:* `name`:自定义字段名称* `number_setting` :数字类型设置(当且仅当要更新的自定义字段类型是数字时)* `member_setting` :人员类型设置(当且仅当要更新的自定义字段类型是人员时)* `datetime_setting` :日期类型设置 (当且仅当要更新的自定义字段类型是日期时)* `single_select_setting`:单选类型设置 (当且仅当要更新的自定义字段类型是单选时)* `multi_select_setting`:多选类型设置 (当且仅当要更新的自定义字段类型是多选时)* `text_setting`: 文本类型设置(目前文本类型没有可设置项)当更改某个设置时,如果不填写一个字段,表示不覆盖原有的设定。比如,对于一个数字,原有的setting是:```json"number_setting": { "format": "normal", "decimal_count": 2, "separator": "none", "custom_symbol": "L", "custom_symbol_position": "right"}```使用如下参数调用接口:```PATCH /task/v2/custom_fields/:custom_field_guid{ "custom_field": { "number_setting": { "decimal_count": 4 } }, "update_fields": ["number_setting"]}```表示仅仅将小数位数从2改为4,其余的设置`format`, `separator`, `custom_field`等都不变。对于单选/多选类型的自定义字段,其设定是一个选项列表。更新时,使用方式接近使用App的界面。使用者不必传入字段的所有选项,而是只需要提供最终希望界面可见(is_hidden=false) 的选项。原有字段中的选项如果没有出现在输入中,则被置为`is_hidden=true`并放到所有可见选项之后。对于某一个更新的选项,如果提供了option_guid,将视作更新该选项(此时option_guid必须存在于当前字段,否则会返回错误);如果不提供,将视作新建一个选项(新的选项的option_guid会在reponse中被返回)。例如,一个单选字段原来有3个选项A,B,C,D。其中C是隐藏的。用户可以这样更新选项:```PATCH /task/v2/custom_fields/:custom_field_guid{ "custom_field": { "single_select_setting": { "optoins": [ { "name": "E", "color_index": 25 }, { "guid": "<option_guid of A>" "name": "A2" }, { "guid": "<option_guid of C>", }, ] } }, "update_fields": ["single_select_setting"]}```调用后最终得到了新的选项列表E, A, C, B, D。其中:* 选项E被新建出来,其`color_index`被设为了25。* 选项A被更新,其名称被改为了"A2"。但其color_index因为没有设置而保持不变;* 选项整体顺序遵循用户的输入顺序,即E,A,C。同时E,A,C作为直接的输入,其is_hidden均被设为了false,其中,C原本是is_hidden=true,也会被设置为is_hidden=false。* 选项B和D因为用户没有输入,其`is_hidden`被置为了true,并且被放到了所有用户输入的选项之后。如果只是单纯的希望修改用户可见的选项的顺序,比如从原本的选项A,B,C修改为C,B,A,可以这样调用接口:```PATCH /task/v2/custom_fields/:custom_field_guid{ "custom_field": { "single_select_setting": { "optoins": [ { "guid": "<option_guid_of_C>" }, { "guid": "<option_guid of B>" }, { "guid": "<option_guid of A>", }, ] } }, "update_fields": ["single_select_setting"]}```如果希望直接将字段里的所有选项都标记为不可见,可以这样调用接口:```PATCH /task/v2/custom_fields/:custom_field_guid{ "custom_field": { "single_select_setting": { "optoins": [] } }, "update_fields": ["single_select_setting"]}```更新单选/多选字段的选项必须满足“可见选项名字不能重复”的约束。否则会返回错误。开发者需要自行保证输入的选项名不可以重复。如希望只更新单个选项,或者希望单独设置某个选项的is_hidden,本接口无法支持,但可以使用接口实现',
accessTokens: ['tenant', 'user'],
schema: {
data: zod_1.z.object({
custom_field: zod_1.z
.object({
name: zod_1.z.string().describe('字段名称,支持最大50个字符').optional(),
number_setting: zod_1.z
.object({
format: zod_1.z
.enum(['normal', 'percentage', 'cny', 'usd', 'custom'])
.describe('数字展示的格式 Options:normal(常规数字),percentage(百分比格式),cny(人民币格式),usd(美元格式),custom(自定义符号)')
.optional(),
custom_symbol: zod_1.z
.string()
.describe('自定义符号,支持最大4个字符。只有`format`设为"custom"时才会生效')
.optional(),
custom_symbol_position: zod_1.z
.enum(['left', 'right'])
.describe('自定义符号显示的位置。 Options:left(letf 自定义符号放在数字左边),right(自定义符号放在数字右边)')
.optional(),
separator: zod_1.z
.enum(['none', 'thousand'])
.describe('分隔符样式 Options:none(无分隔符),thousand(千分位分隔符)')
.optional(),
decimal_count: zod_1.z
.number()
.describe('保留小数位数。输入的数字值的小数位数如果比该设置多,多余的位数将被四舍五入后舍弃。如果`format`为"percentage",表示变为百分数之后的小数位数')
.optional(),
})
.describe('数字类型的字段设置')
.optional(),
member_setting: zod_1.z
.object({ multi: zod_1.z.boolean().describe('是否支持多选').optional() })
.describe('人员类型的字段设置')
.optional(),
datetime_setting: zod_1.z
.object({
format: zod_1.z
.string()
.describe('日期显示格式。支持<md-enum><md-enum-item key="yyyy-mm-dd">以短横分隔的年月日,例如2023-08-24</md-enum-item><md-enum-item key="yyyy/mm/dd">以斜杠分隔的年月日,例如2023/08/04</md-enum-item><md-enum-item key="mm/dd/yyyy">以斜杠分隔的月日年,例如08/24/2023</md-enum-item><md-enum-item key="dd/mm/yyyy">以斜杠分隔的日月年,例如24/08/2023</md-enum-item></md-enum>')
.optional(),
})
.describe('时间日期类型的字段设置')
.optional(),
single_select_setting: zod_1.z
.object({
options: zod_1.z
.array(zod_1.z.object({
guid: zod_1.z.string().describe('选项的GUID。如果填写表示更新;不填写表示新建').optional(),
name: zod_1.z.string().describe('选项名称,最大50个字符').optional(),
color_index: zod_1.z.number().describe('选项的颜色索引值,可以是0~54中的一个数字').optional(),
}))
.describe('单选选项')
.optional(),
})
.describe('单选设置')
.optional(),
multi_select_setting: zod_1.z
.object({
options: zod_1.z
.array(zod_1.z.object({
guid: zod_1.z.string().describe('选项的GUID。如果填写表示更新;不填写表示新建').optional(),
name: zod_1.z.string().describe('选项名称,最大50个字符').optional(),
color_index: zod_1.z.number().describe('选项的颜色索引值,可以是0~54中的一个数字').optional(),
}))
.describe('多选选项')
.optional(),
})
.describe('多选设置')
.optional(),
text_setting: zod_1.z.object({}).describe('文本类型设置').optional(),
})
.describe('要修改的自定义字段数据')
.optional(),
update_fields: zod_1.z
.array(zod_1.z.string())
.describe('要修改的自定义字段类型,支持:* `name`:自定义字段名称。* `number_setting` :数字类型设置(当且仅当要更新的自定义字段类型是数字时)* `member_setting` :人员类型设置(当且仅当要更新的自定义字段类型是人员时)* `datetime_setting` :日期类型设置 (当且仅当要更新的自定义字段类型是日期时)* `single_select_setting`:单选类型设置 (当且仅当要更新的自定义字段类型是单选时)* `multi_select_setting`:多选类型设置 (当且仅当要更新的自定义字段类型是多选时)* `text_setting`: 文本类型设置(当前无可设置项)')
.optional(),
}),
params: zod_1.z.object({ user_id_type: zod_1.z.enum(['open_id', 'union_id', 'user_id']).describe('用户ID类型').optional() }),
path: zod_1.z.object({
custom_field_guid: zod_1.z
.string()
.describe('自定义字段GUID。自定义字段GUID。可以通过接口创建, 或者通过接口查询得到'),
}),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.taskV2CustomFieldRemove = {
project: 'task',
name: 'task.v2.customField.remove',
sdkName: 'task.v2.customField.remove',
path: '/open-apis/task/v2/custom_fields/:custom_field_guid/remove',
httpMethod: 'POST',
description: '[Feishu/Lark]-任务-自定义字段-将自定义字段移出资源-将自定义字段从资源中移出。移除后,该资源将无法再使用该字段。目前资源的类型支持"tasklist"。如果要移除自定义字段本来就不存在于资源,本接口将正常返回。注意自定义字段是通过清单来实现授权的,如果将自定义字段从所有关联的清单中移除,就意味着任何调用身份都无法再访问改自定义字段',
accessTokens: ['tenant', 'user'],
schema: {
data: zod_1.z.object({
resource_type: zod_1.z.string().describe('要从某个资源移除自定义字段的资源类型,目前只支持清单'),
resource_id: zod_1.z
.string()
.describe('要从某个资源移除自定义字段的资源id,`resource_type`为"tasklist"时,需填写清单的GUID'),
}),
path: zod_1.z.object({
custom_field_guid: zod_1.z
.string()
.describe('自定义字段GUID。自定义字段GUID。可以通过接口创建, 或者通过接口查询得到'),
}),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.taskV2SectionCreate = {
project: 'task',
name: 'task.v2.section.create',
sdkName: 'task.v2.section.create',
path: '/open-apis/task/v2/sections',
httpMethod: 'POST',
description: '[Feishu/Lark]-任务-自定义分组-创建自定义分组-为清单或我负责的任务列表创建一个自定义分组。创建时可以需要提供名称和可选的配置。如果不指定位置,新分组会放到指定resource的自定义分组列表的最后。当在清单中创建自定义分组时,需要设置`resourse_type`为"tasklist", `resource_id`设为清单的GUID。当为我负责任务列表中创建自定义分组时,需要设置`resource_type`为"my_tasks",不需要设置`resource_id`。调用身份只能为自己的我负责的任务列表创建自定义分组',
accessTokens: ['tenant', 'user'],
schema: {
data: zod_1.z.object({
name: zod_1.z.string().describe('自定义分组名。不允许为空,最大100个utf8字符'),
resource_type: zod_1.z.string().describe('自定义分组的资源类型,支持"tasklist"(清单)或者"my_tasks"(我负责的)'),
resource_id: zod_1.z
.string()
.describe('自定义分组要归属的资源id。当`resource_type`为"tasklist"时这里需要填写清单的GUID;当`resource_type`为"my_tasks"时,无需填写')
.optional(),
insert_before: zod_1.z
.string()
.describe('要将新分组插入到自定义分分组的前面的目标分组的guid。`insert_before`和`insert_after`均不设置时表示将新分组放到已有的所有自定义分组之后。如果同时设置`insert_before`和`insert_after`,接口会报错')
.optional(),
insert_after: zod_1.z
.string()
.describe('要将新分组插入到自定义分分组的后面的目标分组的guid。`insert_before`和`insert_after`均不设置时表示将新分组放到已有的所有自定义分组之后。如果同时设置`insert_before`和`insert_after`,接口会报错')
.optional(),
}),
params: zod_1.z.object({ user_id_type: zod_1.z.string().describe('用户ID类型').optional() }),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.taskV2SectionDelete = {
project: 'task',
name: 'task.v2.section.delete',
sdkName: 'task.v2.section.delete',
path: '/open-apis/task/v2/sections/:section_guid',
httpMethod: 'DELETE',
description: '[Feishu/Lark]-任务-自定义分组-删除自定义分组-删除一个自定义分组。删除后该自定义分组中的任务会被移动到被删除自定义分组所属资源的默认自定义分组中。不能删除默认的自定义分组',
accessTokens: ['tenant', 'user'],
schema: {
path: zod_1.z.object({ section_guid: zod_1.z.string().describe('要删除的自定义分组全局唯一ID') }),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.taskV2SectionGet = {
project: 'task',
name: 'task.v2.section.get',
sdkName: 'task.v2.section.get',
path: '/open-apis/task/v2/sections/:section_guid',
httpMethod: 'GET',
description: '[Feishu/Lark]-任务-自定义分组-获取自定义分组详情-获取一个自定义分组详情,包括名称,创建人等信息。如果该自定义分组归属于一个清单,还会返回清单的摘要信息',
accessTokens: ['tenant', 'user'],
schema: {
params: zod_1.z.object({ user_id_type: zod_1.z.string().describe('用户ID类型').optional() }),
path: zod_1.z.object({ section_guid: zod_1.z.string().describe('要获取的自定义分组GUID') }),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.taskV2SectionList = {
project: 'task',
name: 'task.v2.section.list',
sdkName: 'task.v2.section.list',
path: '/open-apis/task/v2/sections',
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(),
resource_type: zod_1.z
.string()
.describe('自定义分组所属的资源类型。支持my_tasks(我负责的)和tasklist(清单)。当使用tasklist时,需要用resource_id提供清单的全局唯一ID'),
resource_id: zod_1.z
.string()
.describe('如`resource_type`为"tasklist",这里需要填写要列取自定义分组的清单的GUID')
.optional(),
user_id_type: zod_1.z.string().describe('用户ID类型').optional(),
}),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.taskV2SectionPatch = {
project: 'task',
name: 'task.v2.section.patch',
sdkName: 'task.v2.section.patch',
path: '/open-apis/task/v2/sections/:section_guid',
httpMethod: 'PATCH',
description: '[Feishu/Lark]-任务-自定义分组-更新自定义分组-更新自定义分组,可以更新自定义分组的名称和位置。更新时,将`update_fields`字段中填写所有要修改的字段名,同时在`section`字段中填写要修改的字段的新值即可。调用约定详情见中的“ 关于资源的更新”章节。目前支持更新的字段包括:* `name` - 自定义字段名字;* `insert_before` - 要让当前自定义分组放到某个自定义分组前面的secion_guid,用于改变当前自定义分组的位置;* `insert_after` - 要让当前自定义分组放到某个自定义分组后面的secion_guid,用于改变当前自定义分组的位置。`insert_before`和`insert_after`如果填写,必须是同一个资源的合法section_guid。注意不能同时设置`insert_before`和`insert_after`',
accessTokens: ['tenant', 'user'],
schema: {
data: zod_1.z.object({
section: zod_1.z
.object({
name: zod_1.z.string().describe('自定义分组名。如更新,不允许设为空,支持最大100个utf8字符').optional(),
insert_before: zod_1.z.string().describe('要将新分组插入到自定义分分组的前面的目标分组的guid').optional(),
insert_after: zod_1.z.string().describe('要将新分组插入到自定义分分组的后面的目标分组的guid').optional(),
})
.describe('要更新的自定义分组的数据'),
update_fields: zod_1.z
.array(zod_1.z.string())
.describe('要更新的字段名,支持:* `name` - 自定义字段名字* `insert_before` - 要让当前自定义分组放到某个自定义分组前面的secion_guid,用于改变当前自定义分组的位置。* `insert_after` - 要让当前自定义分组放到某个自定义分组后面的secion_guid,用于改变当前自定义分组的位置'),
}),
params: zod_1.z.object({ user_id_type: zod_1.z.string().describe('用户ID类型').optional() }),
path: zod_1.z.object({ section_guid: zod_1.z.string().describe('要更新的自定义分组GUID') }),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.taskV2SectionTasks = {
project: 'task',
name: 'task.v2.section.tasks',
sdkName: 'task.v2.section.tasks',
path: '/open-apis/task/v2/sections/:section_guid/tasks',
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(),
completed: zod_1.z.boolean().describe('按照任务状态过滤,如果不填写则表示不按完成状态过滤').optional(),
created_from: zod_1.z.string().describe('按照创建时间筛选的起始时间戳(ms),如不填写则为首个任务的创建时刻').optional(),
created_to: zod_1.z.string().describe('按照创建时间筛选的起始时间戳(ms),如不填写则为最后任务的创建时刻').optional(),
}),
path: zod_1.z.object({ section_guid: zod_1.z.string().describe('要获取任务的自定义分组全局唯一ID') }),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.taskV2TaskAddDependencies = {
project: 'task',
name: 'task.v2.task.addDependencies',
sdkName: 'task.v2.task.addDependencies',
path: '/open-apis/task/v2/tasks/:task_guid/add_dependencies',
httpMethod: 'POST',
description: '[Feishu/Lark]-任务-任务-添加依赖-为一个任务添加一个或多个依赖。可以添加任务的前置依赖和后置依赖。存在依赖关系的任务如果在同一个清单,可以通过清单的甘特图来展示其依赖关系。本接口也可以用于修改一个现有依赖的类型(前置改为后置或者后置改为前置)。注意:添加的依赖的`task_guid`不能重复,也不能添加当前任务为自己的依赖。尝试添加一个已经存在的依赖会被自动忽略',
accessTokens: ['tenant', 'user'],
schema: {
data: zod_1.z.object({
dependencies: zod_1.z
.array(zod_1.z.object({
type: zod_1.z.enum(['prev', 'next']).describe('依赖类型 Options:prev(前置依赖),next(后置依赖)'),
task_guid: zod_1.z.string().describe('依赖任务的GUID'),
}))
.describe('要添加的依赖')
.optional(),
}),
path: zod_1.z.object({ task_guid: zod_1.z.string().describe('任务GUID') }),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.taskV2TaskAddMembers = {
project: 'task',
name: 'task.v2.task.addMembers',
sdkName: 'task.v2.task.addMembers',
path: '/open-apis/task/v2/tasks/:task_guid/add_members',
httpMethod: 'POST',
description: '[Feishu/Lark]-任务-任务-添加任务成员-添加任务的负责人或者关注人。一次性可以添加多个成员。返回任务的实体中会返回最终任务成员的列表。* 关于member的格式,详见中的“ 如何表示任务和清单的成员?”章节。* 成员的角色支持"assignee"和"follower"。* 成员类型支持"user"和"app"。* 如果要添加的成员已经在任务中,则自动被忽略',
accessTokens: ['tenant', 'user'],
schema: {
data: zod_1.z.object({
members: zod_1.z
.array(zod_1.z.object({
id: zod_1.z.string().describe('表示member的id'),
type: zod_1.z.string().describe('成员类型').optional(),
role: zod_1.z.string().describe('成员的角色,支持"assignee"或"follower"'),
}))
.describe('要添加的members列表,单请求支持最大50个成员(去重后)。关于member的格式,详见中的“ 如何表示任务和清单的成员?”章节'),
client_token: zod_1.z
.string()
.describe('幂等token,如果提供则实现幂等行为。详见中的“ 幂等调用 ”章节')
.optional(),
}),
params: zod_1.z.object({ user_id_type: zod_1.z.string().describe('用户ID类型').optional() }),
path: zod_1.z.object({ task_guid: zod_1.z.string().describe('要添加负责人的任务全局唯一ID') }),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.taskV2TaskAddReminders = {
project: 'task',
name: 'task.v2.task.addReminders',
sdkName: 'task.v2.task.addReminders',
path: '/open-apis/task/v2/tasks/:task_guid/add_reminders',
httpMethod: 'POST',
description: '[Feishu/Lark]-任务-任务-添加任务提醒-为一个任务添加提醒。提醒是基于任务的截止时间计算得到的一个时刻。为了设置提醒,任务必须首先拥有截止时间(due)。可以在时设置截止时间,或者通过设置一个截止时间。目前一个任务只能设置1个提醒。但接口的形式可以在未来扩充为一个任务支持多个提醒。如果当前任务已经有提醒了,要更新提醒的设置,需要先调用接口移除原有提醒。再调用本接口添加提醒',
accessTokens: ['tenant', 'user'],
schema: {
data: zod_1.z.object({
reminders: zod_1.z
.array(zod_1.z.object({
relative_fire_minute: zod_1.z
.number()
.describe('相对于截止时间的提醒时间分钟数。例如30表示截止时间前30分钟提醒;0表示截止时提醒。不支持负数'),
}))
.describe('要添加的reminder的列表,目前1个任务只支持一个提醒'),
}),
params: zod_1.z.object({ user_id_type: zod_1.z.string().describe('用户ID类型').optional() }),
path: zod_1.z.object({ task_guid: zod_1.z.string().describe('要添加负责人的任务全局唯一ID') }),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.taskV2TaskAddTasklist = {
project: 'task',
name: 'task.v2.task.addTasklist',
sdkName: 'task.v2.task.addTasklist',
path: '/open-apis/task/v2/tasks/:task_guid/add_tasklist',
httpMethod: 'POST',
description: '[Feishu/Lark]-任务-任务-任务加入清单-将一个任务加入清单。返回任务的详细信息,包括任务所在的所有清单信息。如果任务已经在该清单,接口将返回成功',
accessTokens: ['tenant', 'user'],
schema: {
data: zod_1.z.object({
tasklist_guid: zod_1.z.string().describe('要添加到的清单的全局唯一ID'),
section_guid: zod_1.z.string().describe('要添加到清单的自定义分组全局唯一ID,如不填写表示添加到默认分组').optional(),
}),
params: zod_1.z.object({ user_id_type: zod_1.z.string().describe('用户ID类型').optional() }),
path: zod_1.z.object({ task_guid: zod_1.z.string().describe('要添加到清单的任务的全局唯一ID') }),
useUAT: zod_1.z.boolean().describe('使用用户身份请求, 否则使用应用身份').optional(),
},
};
exports.taskV2TaskCreate = {
project: 'task',
name: 'task.v2.task.create',
sdkName: 'task.v2.task.create',
path: '/open-apis/task/v2/tasks',
httpMethod: 'POST',
description: '[Feishu/Lark]-任务-任务-创建任务-该接口可以创建一个任务,在创建任务时,支持填写任务的基本信息(如标题、描述、负责人等),此外,还可以设置任务的开始时间、截止时间提醒等条件,此外,还可以通过传入 tasklists 字段将新任务加到多个清单中。创建任务时,可以通过设置`members`字段来设置任务的负责人和关注人。关于member的格式,详见中的“ 如何表示任务和清单的成员? ”章节。如果要设置任务的开始时间和截止时间,需要遵守任务时间的格式和约束。详见中的“ 如何使用开始时间和截止时间?”章节。如要设置自定义字段值,可以设置`custom_fields`字段。但因为自定义字段归属于清单,因此要填写的自定义字段的guid必须归属于要添加的清单(通过`tasklists`设置)。详见。通过设置`client_token`实现幂等调用。详见中的“ 幂等调用 ”章节。如要创建一个任务的子任务,需要使用接口。创建任务时可以一并设置自定义字段值。但根据自定义字段的权限关系,任务只能添加`tasklists`字段设置的清单中关联的自定义字段的值。详见中的介绍',
accessTokens: ['tenant', 'user'],
schema: {
data: zod_1.z.object({
summary: zod_1.z.string().describe('任务标题。不能为空,支持最大3000个utf8字符'),
description: zod_1.z.string().describe('任务摘要。支持最大3000个utf8字符').optional(),
due: zod_1.z
.object({
timestamp: zod_1.z
.string()
.describe('截止时间/日期的时间戳,距1970-01-01 00:00:00 UTC的毫秒数。如果截止时间是一个日期,需要把日期转换成时间戳,并设置 is_all_day=true')
.optional(),
is_all_day: zod_1.z
.boolean()
.describe('是否截止到一个日期。如果设为true,timestamp中只有日期的部分会被解析和存储')
.optional(),
})
.describe('任务截止时间。详见中的“ 如何使用开始时间和截止时间?”章节')
.optional(),
origin: zod_1.z
.object({
platform_i18n_name: zod_1.z
.object({
en_us: zod_1.z.string().describe('英文').optional(),
zh_cn: zod_1.z.string().describe('中文').optional(),
zh_hk: zod_1.z.string().describe('中文(香港地区)').optional(),
zh_tw: zod_1.z.string().describe('中文(台湾地区)').optional(),
ja_jp: zod_1.z.string().describe('日语').optional(),
fr_fr: zod_1.z.string().describe('法语').optional(),
it_it: zod_1.z.string().describe('意大利语').optional(),
de_de: zod_1.z.string().describe('德语').optional(),
ru_ru: zod_1.z.string().describe('俄语').optional(),
th_th: zod_1.z.string().describe('泰语').optional(),
es_es: zod_1.z.string().describe('西班牙语').optional(),
ko_kr: zod_1.z.string().describe('韩语').optional(),
})
.describe('任务导入来源的名称,用于在任务中心详情页展示。需提供多语言版本')
.optional(),
href: zod_1.z
.object({
url: zod_1.z
.string()
.describe('来源链接对应的地址,如填写必须以https://或者http://开头。**说明**:如需调整 PC 端链接打开方式,可在飞书客户端的 **设置** > **效率** > **链接打开方式** 内调整')
.optional(),
title: zod_1.z.string().describe('来源链接对应的标题').optional(),
})
.describe('任务关联的来源平台详情页链接')
.optional(),
})
.describe('任务关联的第三方平台来源信息,用于来源信息在飞书任务界面的展示。只能创建任务时设置,一旦设置后就不可变更。详见中的“ 如何使用Origin? ”章节')
.optional(),
extra: zod_1.z
.string()
.describe('调用者可以传入的任意附带到任务上的数据。在获取任务详情时会原样返回。如果是二进制数据可以使用Base64编码')
.optional(),
completed_at: zod_1.z
.string()
.describe('任务的完成时刻时间戳(ms)。不填写或者设为0表示创建一个未完成任务;填写一个具体的时间戳表示创建一个已完成任务')
.optional(),
members: zod_1.z
.array(zod_1.z.object({
id: zod_1.z.string().describe('表示member的id'),
type: zod_1.z.string().describe('成员的类型,可以是user或者app').optional(),
role: zod_1.z.string().describe('成员角色,可以是"assignee"或者"follower"'),
}))
.describe('任务成员列表,包括负责人和关注人。不填写表示任务无成员。单次请求支持最大50个成员(去重后)。详见中的“ 如何表示任务和清单的成员? ”章节')
.optional(),
repeat_rule: zod_1.z
.string()
.describe('重复任务规则。如果设置,则该任务为“重复任务”。详见中的“如何使用重复任务?”章节')
.optional(),
custom_complete: zod_1.z
.object({
pc: zod_1.z
.object({
href: zod_1.z.string().describe('自定义完成的跳转url').optional(),
tip: zod_1.z
.object({
en_us: zod_1.z.string().describe('英文').optional(),
zh_cn: zod_1.z.string().describe('中文').optional(),
zh_hk: zod_1.z.string().describe('中文(香港地区)').optional(),
zh_tw: zod_1.z.string().describe('中文(台湾地区)').optional(),
ja_jp: zod_1.z.string().describe('日语').optional(),
fr_fr: zod_1.z.string().describe('法语').optional(),
it_it: zod_1.z.string().describe('意大利语').optional(),
de_de: zod_1.z.string().describe('德语').optional(),
ru_ru: zod_1.z.string().describe('俄语').optional(),
th_th: zod_1.z.string().describe('泰语').optional(),
es_es: zod_1.z.string().describe('西班牙语').optional(),
ko_kr: zod_1.z.string().describe('韩语').optional(),
})
.describe('自定义完成的弹出提示')
.optional(),
})
.describe('pc客户端自定义完成配置(含mac和windows)')
.optional(),
ios: zod_1.z
.object({
href: zod_1.z.string().describe('自定义完成的跳转url').optional(),
tip: zod_1.z
.object({
en_us: zod_1.z.string().describe('英文').optional(),
zh_cn: zod_1.z.string().describe('中文').optional(),
zh_hk: zod_1.z.string().describe('中文(香港地区)').optional(),
zh_tw: zod_1.z.string().describe('中文(台湾地区)').optional(),
ja_jp: zod_1.z.string().describe('日语').optional(),
fr_fr: zod_1.z.string().describe('法语').optional(),
it_it: zod_1.z.string().describe('意大利语').optional(),
de_de: zod_1.z.string().describe('德语').optional(),
ru_ru: zod_1.z.string().describe('俄语').optional(),
th_th: zod_1.z.string().describe('泰语').optional(),
es_es: zod_1.z.string().describe('西班牙语').optional(),
ko_kr: zod_1.z.string().describe('韩语').optional(),
})
.describe('自定义完成的弹出提示为')
.optional(),
})
.describe('ios端的自定义完成配置')
.optional(),
android: zod_1.z
.object({
href: zod_1.z.string().describe('自定义完成的跳转url').optional(),
tip: zod_1.z
.object({
en_us: zod_1.z.string().describe('英文').optional(),
zh_cn: zod_1.z.string().describe('中文').optional(),
zh_hk: zod_1.z.string().describe('中文(香港地区)').optional(),
zh_tw: zod_1.z.string().describe('中文(台湾地区)').optional(),
ja_jp: zod_1.z.string().describe('日语').optional(),
fr_fr: zod_1.z.string().describe('法语').optional(),
it_it: zod_1.z.string().describe('意大利语').optional(),
de_de: zod_1.z.string().describe('德语').optional(),
ru_ru: zod_1.z.string().describe('俄语').optional(),
th_th: zod_1.z.string().describe('泰语').optional(),
es_es: zod_1.z.string().describe('西班牙语').optional(),
ko_kr: zod_1.z.string().describe('韩语').optional(),
})
.describe('自定义完成的弹出提示为')
.optional(),
})
.describe('android端的自定义完成配置')
.optional(),
})
.describe('任务自定义完成配置。详见中的“ 如何使用任务自定义完成?”章节')
.optional(),
tasklists: zod_1.z
.array(zod_1.z.object({
tasklist_guid: zod_1.z
.string()
.describe('指定在某个清单中创建任务,需要该清单的可编辑权限。不填写表示不在清单中创建任务')
.optional(),
section_guid: zod_1.z
.string()
.describe('清单中自定义分组的GUID,用于指定在某个清单中创建任务的同时把任务加入到某个具体的分组中。如果填写了清单的GUID,却没填写分组的GUID,则自动加入该清单的默认分组中')
.optional(),
}))
.describe('任务所在清单的信息')
.optional(),
client_token: zod_1.z
.string()
.describe('幂等token。如果提供则触发后端实现幂等行为。详见中的“ 幂等调用 ”章节')
.optional(),
start: zod_1.z
.object({
timestamp: zod_1.z
.string()
.describe('开始时间/日期的时间戳,距1970-01-01 00:00:00的毫秒数。如果开始时间是一个日期,需要把日期转换成时间戳,并设置 is_all_day=true。如果同时设置任务的开始时间和截止时间,开始时间必须<=截止时间,并且开始/截止时间的is_all_day设置必须相同')
.optional(),
is_all_day: zod_1.z
.boolean()
.describe('是否开始于一个日期。如果设为true,timestamp中只有日期的部分会被解析和存储')
.optional(),
})
.describe('任务的开始时间(ms), 详见中的“ 如何使用开始时间和截止时间?”章节')
.optional(),
reminders: zod_1.z
.array(zod_1.z.object({
relative_fire_minute