gitee.com/larksuite/oapi-sdk-go/v3@v3.0.3/service/drive/v1/model.go (about) 1 // Package drive code generated by oapi sdk gen 2 /* 3 * MIT License 4 * 5 * Copyright (c) 2022 Lark Technologies Pte. Ltd. 6 * 7 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 8 * 9 * The above copyright notice and this permission notice, shall be included in all copies or substantial portions of the Software. 10 * 11 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 12 */ 13 14 package larkdrive 15 16 import ( 17 "io" 18 19 "bytes" 20 21 "io/ioutil" 22 23 "fmt" 24 25 "context" 26 "errors" 27 28 "gitee.com/larksuite/oapi-sdk-go/v3/event" 29 30 "gitee.com/larksuite/oapi-sdk-go/v3/core" 31 ) 32 33 const ( 34 FileExtensionDocx = "docx" // word docx 格式 35 FileExtensionPdf = "pdf" // pdf 格式 36 FileExtensionXlsx = "xlsx" // excel xlsx 格式 37 ) 38 39 const ( 40 TypeDoc = "doc" // 旧版飞书云文档类型 41 TypeSheet = "sheet" // 飞书电子表格类型 42 TypeBitable = "bitable" // 飞书多维表格类型 43 TypeDocx = "docx" // 新版飞书云文档类型 44 ) 45 46 const ( 47 TypeCopyFileFile = "file" // 文件类型 48 TypeCopyFileDoc = "doc" // 云文档类型 49 TypeCopyFileSheet = "sheet" // 电子表格类型 50 TypeCopyFileBitable = "bitable" // 多维表格类型 51 TypeCopyFileDocx = "docx" // 新版云文档类型 52 TypeCopyFileMindnote = "mindnote" // 思维笔记类型 53 ) 54 55 const ( 56 TypeDeleteFileFile = "file" // 文件类型 57 TypeDeleteFileDocx = "docx" // docx文档类型 58 TypeDeleteFileBitable = "bitable" // 多维表格类型 59 TypeDeleteFileFolder = "folder" // 文件夹类型 60 TypeDeleteFileDoc = "doc" // doc文档类型 61 TypeDeleteFileSheet = "sheet" // 电子表格类型 62 TypeDeleteFileMindnote = "mindnote" // 思维笔记类型 63 TypeDeleteFileShortcut = "shortcut" // 快捷方式类型 64 ) 65 66 const ( 67 TypeMoveFileFile = "file" // 普通文件类型 68 TypeMoveFileDocx = "docx" // 新版文档类型 69 TypeMoveFileBitable = "bitable" // 多维表格类型 70 TypeMoveFileDoc = "doc" // doc文档类型 71 TypeMoveFileSheet = "sheet" // 电子表格类型 72 TypeMoveFileMindnote = "mindnote" // 思维笔记类型 73 TypeMoveFileFolder = "folder" // 文件夹类型 74 ) 75 76 const ( 77 FileTypeDoc = "doc" // 文档 78 FileTypeDocx = "docx" // docx文档 79 FileTypeSheet = "sheet" // 表格 80 FileTypeBitable = "bitable" // 多维表格 81 ) 82 83 const ( 84 ParentTypeExplorer = "explorer" // 云空间 85 ) 86 87 const ( 88 ParentTypeUploadPrepareFileExplorer = "explorer" // 云空间 89 ) 90 91 const ( 92 FileTypeCreateFileCommentDoc = "doc" // 文档 93 FileTypeCreateFileCommentSheet = "sheet" // 表格 94 FileTypeCreateFileCommentFile = "file" // 文件 95 FileTypeCreateFileCommentDocx = "docx" // 新版文档 96 ) 97 98 const ( 99 UserIdTypeUserId = "user_id" // 以user_id来识别用户 100 UserIdTypeUnionId = "union_id" // 以union_id来识别用户 101 UserIdTypeOpenId = "open_id" // 以open_id来识别用户 102 ) 103 104 const ( 105 FileTypeGetFileCommentDoc = "doc" // 文档 106 FileTypeGetFileCommentSheet = "sheet" // 表格 107 FileTypeGetFileCommentFile = "file" // 文件 108 FileTypeGetFileCommentDocx = "docx" // 新版文档 109 ) 110 111 const ( 112 UserIdTypeGetFileCommentUserId = "user_id" // 以user_id来识别用户 113 UserIdTypeGetFileCommentUnionId = "union_id" // 以union_id来识别用户 114 UserIdTypeGetFileCommentOpenId = "open_id" // 以open_id来识别用户 115 ) 116 117 const ( 118 FileTypeListFileCommentDoc = "doc" // 文档 119 FileTypeListFileCommentSheet = "sheet" // 表格 120 FileTypeListFileCommentFile = "file" // 文件 121 FileTypeListFileCommentDocx = "docx" // 新版文档 122 ) 123 124 const ( 125 UserIdTypeListFileCommentUserId = "user_id" // 以user_id来识别用户 126 UserIdTypeListFileCommentUnionId = "union_id" // 以union_id来识别用户 127 UserIdTypeListFileCommentOpenId = "open_id" // 以open_id来识别用户 128 ) 129 130 const ( 131 FileTypePatchFileCommentDoc = "doc" // 文档 132 FileTypePatchFileCommentSheet = "sheet" // 表格 133 FileTypePatchFileCommentFile = "file" // 文件 134 FileTypePatchFileCommentDocx = "docx" // 新版文档 135 ) 136 137 const ( 138 FileTypeDeleteFileCommentReplyDoc = "doc" // 文档 139 FileTypeDeleteFileCommentReplySheet = "sheet" // 表格 140 FileTypeDeleteFileCommentReplyFile = "file" // 文件 141 FileTypeDeleteFileCommentReplyDocx = "docx" // 新版文档 142 ) 143 144 const ( 145 FileTypeUpdateFileCommentReplyDoc = "doc" // 文档 146 FileTypeUpdateFileCommentReplySheet = "sheet" // 表格 147 FileTypeUpdateFileCommentReplyFile = "file" // 文件 148 FileTypeUpdateFileCommentReplyDocx = "docx" // 新版文档 149 ) 150 151 const ( 152 UserIdTypeUpdateFileCommentReplyUserId = "user_id" // 以user_id来识别用户 153 UserIdTypeUpdateFileCommentReplyUnionId = "union_id" // 以union_id来识别用户 154 UserIdTypeUpdateFileCommentReplyOpenId = "open_id" // 以open_id来识别用户 155 ) 156 157 const ( 158 FileTypeGetFileStatisticsDoc = "doc" // doc文档 159 FileTypeGetFileStatisticsSheet = "sheet" // 表格 160 FileTypeGetFileStatisticsMindnote = "mindnote" // 思维笔记 161 FileTypeGetFileStatisticsBitable = "bitable" // 多维表格 162 FileTypeGetFileStatisticsWiki = "wiki" // 知识库wiki 163 FileTypeGetFileStatisticsFile = "file" // 文件 164 FileTypeGetFileStatisticsDocx = "docx" // docx文档 165 ) 166 167 const ( 168 SubscriptionTypeCommentUpdate = "comment_update" // 评论更新 169 ) 170 171 const ( 172 FileTypeCreateFileSubscriptionDoc = "doc" // 文档 173 FileTypeCreateFileSubscriptionDocx = "docx" // 文档2.0 174 FileTypeCreateFileSubscriptionWiki = "wiki" // 知识库wiki 175 ) 176 177 const ( 178 SubscriptionTypeGetFileSubscriptionCommentUpdate = "comment_update" // 评论更新 179 ) 180 181 const ( 182 FileTypeGetFileSubscriptionDoc = "doc" // 文档 183 FileTypeGetFileSubscriptionDocx = "docx" // 文档2.0 184 FileTypeGetFileSubscriptionWiki = "wiki" // 知识库wiki 185 ) 186 187 const ( 188 FileTypePatchFileSubscriptionDoc = "doc" // 文档1.0 189 FileTypePatchFileSubscriptionDocx = "docx" // 文档2.0 190 FileTypePatchFileSubscriptionWiki = "wiki" // 知识库wiki 191 ) 192 193 const ( 194 ParentTypeUploadAllMediaDocImage = "doc_image" // docs图片 195 ParentTypeUploadAllMediaDocxImage = "docx_image" // docx图片 196 ParentTypeUploadAllMediaSheetImage = "sheet_image" // sheet图片 197 ParentTypeUploadAllMediaDocFile = "doc_file" // doc文件 198 ParentTypeUploadAllMediaDocxFile = "docx_file" // docx文件 199 ParentTypeUploadAllMediaSheetFile = "sheet_file" // sheet文件 200 ParentTypeUploadAllMediaVcVirtualBackground = "vc_virtual_background" // vc虚拟背景 201 ParentTypeUploadAllMediaBitableImage = "bitable_image" // 多维表格图片 202 ParentTypeUploadAllMediaBitableFile = "bitable_file" // 多维表格文件 203 ParentTypeUploadAllMediaMoments = "moments" // 同事圈 204 ParentTypeUploadAllMediaCcmImportOpen = "ccm_import_open" // 云文档导入文件 205 ) 206 207 const ( 208 ParentTypeUploadPrepareMediaDocImage = "doc_image" // docs图片 209 ParentTypeUploadPrepareMediaSheetImage = "sheet_image" // sheet图片 210 ParentTypeUploadPrepareMediaDocFile = "doc_file" // doc文件 211 ParentTypeUploadPrepareMediaSheetFile = "sheet_file" // sheet文件 212 ParentTypeUploadPrepareMediaVcVirtualBackground = "vc_virtual_background" // vc虚拟背景 213 ParentTypeUploadPrepareMediaBitableImage = "bitable_image" // bitable图片 214 ParentTypeUploadPrepareMediaBitableFile = "bitable_file" // bitable文件 215 ParentTypeUploadPrepareMediaMoments = "moments" // 同事圈 216 ParentTypeUploadPrepareMediaCcmImportOpen = "ccm_import_open" // 云文档导入文件 217 ) 218 219 const ( 220 UserIdTypeBatchQueryMetaUserId = "user_id" // 以user_id来识别用户 221 UserIdTypeBatchQueryMetaUnionId = "union_id" // 以union_id来识别用户 222 UserIdTypeBatchQueryMetaOpenId = "open_id" // 以open_id来识别用户 223 ) 224 225 const ( 226 MemberTypeEmail = "email" // 飞书邮箱 227 MemberTypeOpenId = "openid" // 开放平台ID 228 MemberTypeOpenChat = "openchat" // 开放平台群组ID 229 MemberTypeOpenDepartmentId = "opendepartmentid" // 开放平台部门ID 230 MemberTypeUserId = "userid" // 用户自定义ID 231 ) 232 233 const ( 234 PermView = "view" // 可阅读角色 235 PermEdit = "edit" // 可编辑角色 236 PermFullAccess = "full_access" // 可管理角色 237 ) 238 239 const ( 240 TokenTypeV2Doc = "doc" // 文档 241 TokenTypeV2Sheet = "sheet" // 电子表格 242 TokenTypeV2File = "file" // 云空间文件 243 TokenTypeV2Wiki = "wiki" // 知识库节点 244 TokenTypeV2Bitable = "bitable" // 多维表格 245 TokenTypeV2Docx = "docx" // 新版文档 246 TokenTypeV2Folder = "folder" // 文件夹 247 TokenTypeV2Mindnote = "mindnote" // 思维笔记 248 ) 249 250 const ( 251 TokenTypeV2DeletePermissionMemberDoc = "doc" // 文档 252 TokenTypeV2DeletePermissionMemberSheet = "sheet" // 电子表格 253 TokenTypeV2DeletePermissionMemberFile = "file" // 云空间文件 254 TokenTypeV2DeletePermissionMemberWiki = "wiki" // 知识库节点 255 TokenTypeV2DeletePermissionMemberBitable = "bitable" // 多维表格 256 TokenTypeV2DeletePermissionMemberDocx = "docx" // 文档 257 TokenTypeV2DeletePermissionMemberFolder = "folder" // 文件夹 258 TokenTypeV2DeletePermissionMemberMindnote = "mindnote" // 思维笔记 259 ) 260 261 const ( 262 MemberTypeDeletePermissionMemberEmail = "email" // 邮箱地址 263 MemberTypeDeletePermissionMemberOpenID = "openid" // 开放平台ID 264 MemberTypeDeletePermissionMemberOpenChatID = "openchat" // 开放平台群ID 265 MemberTypeDeletePermissionMemberOpenDepartmentID = "opendepartmentid" // 开放平台部门ID 266 MemberTypeDeletePermissionMemberUserID = "userid" // 自定义用户ID 267 ) 268 269 const ( 270 MemberTypeUpdatePermissionMemberEmail = "email" // 飞书邮箱 271 MemberTypeUpdatePermissionMemberOpenId = "openid" // 开放平台ID 272 MemberTypeUpdatePermissionMemberOpenChat = "openchat" // 开放平台群组ID 273 MemberTypeUpdatePermissionMemberOpenDepartmentId = "opendepartmentid" // 开放平台部门ID 274 MemberTypeUpdatePermissionMemberUserId = "userid" // 用户自定义ID 275 ) 276 277 const ( 278 PermUpdatePermissionMemberView = "view" // 可阅读角色 279 PermUpdatePermissionMemberEdit = "edit" // 可编辑角色 280 PermUpdatePermissionMemberFullAccess = "full_access" // 可管理角色 281 ) 282 283 const ( 284 TokenTypeDoc = "doc" // 文档 285 TokenTypeSheet = "sheet" // 电子表格 286 TokenTypeFile = "file" // 云空间文件 287 TokenTypeWiki = "wiki" // 知识库节点 288 TokenTypeBitable = "bitable" // 多维表格 289 TokenTypeDocx = "docx" // 文档 290 TokenTypeMindnote = "mindnote" // 思维笔记 291 ) 292 293 const ( 294 TokenTypeGetPermissionPublicDoc = "doc" // 文档 295 TokenTypeGetPermissionPublicSheet = "sheet" // 电子表格 296 TokenTypeGetPermissionPublicFile = "file" // 云空间文件 297 TokenTypeGetPermissionPublicWiki = "wiki" // 知识库节点 298 TokenTypeGetPermissionPublicBitable = "bitable" // 多维表格 299 TokenTypeGetPermissionPublicDocx = "docx" // 文档 300 ) 301 302 const ( 303 SecurityEntityAnyoneCanView = "anyone_can_view" // 拥有可阅读权限的用户 304 SecurityEntityAnyoneCanEdit = "anyone_can_edit" // 拥有可编辑权限的用户 305 SecurityEntityOnlyFullAccess = "only_full_access" // 拥有可管理权限(包括我)的用户 306 ) 307 308 const ( 309 CommentEntityAnyoneCanView = "anyone_can_view" // 拥有可阅读权限的用户 310 CommentEntityAnyoneCanEdit = "anyone_can_edit" // 拥有可编辑权限的用户 311 ) 312 313 const ( 314 ShareEntityAnyone = "anyone" // 所有可阅读或编辑此文档的用户 315 ShareEntitySameTenant = "same_tenant" // 组织内所有可阅读或编辑此文档的用户 316 ShareEntityOnlyFullAccess = "only_full_access" // 拥有可管理权限(包括我)的用户 317 ) 318 319 const ( 320 LinkShareEntityTenantReadable = "tenant_readable" // 组织内获得链接的人可阅读 321 LinkShareEntityTenantEditable = "tenant_editable" // 组织内获得链接的人可编辑 322 LinkShareEntityAnyoneReadable = "anyone_readable" // 互联网上获得链接的任何人可阅读(仅external_access=“true”时有效) 323 LinkShareEntityAnyoneEditable = "anyone_editable" // 互联网上获得链接的任何人可编辑(仅external_access=“true”时有效) 324 LinkShareEntityClosed = "closed" // 关闭链接分享 325 ) 326 327 const ( 328 TokenTypePatchPermissionPublicDoc = "doc" // 文档 329 TokenTypePatchPermissionPublicSheet = "sheet" // 电子表格 330 TokenTypePatchPermissionPublicFile = "file" // 云空间文件 331 TokenTypePatchPermissionPublicWiki = "wiki" // 知识库节点 332 TokenTypePatchPermissionPublicBitable = "bitable" // 多维表格 333 TokenTypePatchPermissionPublicDocx = "docx" // 文档 334 ) 335 336 type ApplyMemberRequest struct { 337 Perm *string `json:"perm,omitempty"` // 需要申请的权限,权限值:"view","edit" 338 Remark *string `json:"remark,omitempty"` // 申请权限备注 339 } 340 341 type ApplyMemberRequestBuilder struct { 342 perm string // 需要申请的权限,权限值:"view","edit" 343 permFlag bool 344 remark string // 申请权限备注 345 remarkFlag bool 346 } 347 348 func NewApplyMemberRequestBuilder() *ApplyMemberRequestBuilder { 349 builder := &ApplyMemberRequestBuilder{} 350 return builder 351 } 352 353 // 需要申请的权限,权限值:"view","edit" 354 // 355 // 示例值:view 356 func (builder *ApplyMemberRequestBuilder) Perm(perm string) *ApplyMemberRequestBuilder { 357 builder.perm = perm 358 builder.permFlag = true 359 return builder 360 } 361 362 // 申请权限备注 363 // 364 // 示例值:apply_remark 365 func (builder *ApplyMemberRequestBuilder) Remark(remark string) *ApplyMemberRequestBuilder { 366 builder.remark = remark 367 builder.remarkFlag = true 368 return builder 369 } 370 371 func (builder *ApplyMemberRequestBuilder) Build() *ApplyMemberRequest { 372 req := &ApplyMemberRequest{} 373 if builder.permFlag { 374 req.Perm = &builder.perm 375 376 } 377 if builder.remarkFlag { 378 req.Remark = &builder.remark 379 380 } 381 return req 382 } 383 384 type BaseMember struct { 385 MemberType *string `json:"member_type,omitempty"` // 协作者 ID 类型,与协作者 ID 需要对应 386 MemberId *string `json:"member_id,omitempty"` // 协作者 ID,与协作者 ID 类型需要对应 387 Perm *string `json:"perm,omitempty"` // 协作者对应的权限角色 388 } 389 390 type BaseMemberBuilder struct { 391 memberType string // 协作者 ID 类型,与协作者 ID 需要对应 392 memberTypeFlag bool 393 memberId string // 协作者 ID,与协作者 ID 类型需要对应 394 memberIdFlag bool 395 perm string // 协作者对应的权限角色 396 permFlag bool 397 } 398 399 func NewBaseMemberBuilder() *BaseMemberBuilder { 400 builder := &BaseMemberBuilder{} 401 return builder 402 } 403 404 // 协作者 ID 类型,与协作者 ID 需要对应 405 // 406 // 示例值:openid 407 func (builder *BaseMemberBuilder) MemberType(memberType string) *BaseMemberBuilder { 408 builder.memberType = memberType 409 builder.memberTypeFlag = true 410 return builder 411 } 412 413 // 协作者 ID,与协作者 ID 类型需要对应 414 // 415 // 示例值:string 416 func (builder *BaseMemberBuilder) MemberId(memberId string) *BaseMemberBuilder { 417 builder.memberId = memberId 418 builder.memberIdFlag = true 419 return builder 420 } 421 422 // 协作者对应的权限角色 423 // 424 // 示例值:view 425 func (builder *BaseMemberBuilder) Perm(perm string) *BaseMemberBuilder { 426 builder.perm = perm 427 builder.permFlag = true 428 return builder 429 } 430 431 func (builder *BaseMemberBuilder) Build() *BaseMember { 432 req := &BaseMember{} 433 if builder.memberTypeFlag { 434 req.MemberType = &builder.memberType 435 436 } 437 if builder.memberIdFlag { 438 req.MemberId = &builder.memberId 439 440 } 441 if builder.permFlag { 442 req.Perm = &builder.perm 443 444 } 445 return req 446 } 447 448 type BitableTableRecordAction struct { 449 RecordId *string `json:"record_id,omitempty"` // 记录 ID 450 Action *string `json:"action,omitempty"` // 操作类型 451 BeforeValue []*BitableTableRecordActionField `json:"before_value,omitempty"` // 操作前的记录值 452 AfterValue []*BitableTableRecordActionField `json:"after_value,omitempty"` // 操作后的记录值 453 } 454 455 type BitableTableRecordActionBuilder struct { 456 recordId string // 记录 ID 457 recordIdFlag bool 458 action string // 操作类型 459 actionFlag bool 460 beforeValue []*BitableTableRecordActionField // 操作前的记录值 461 beforeValueFlag bool 462 afterValue []*BitableTableRecordActionField // 操作后的记录值 463 afterValueFlag bool 464 } 465 466 func NewBitableTableRecordActionBuilder() *BitableTableRecordActionBuilder { 467 builder := &BitableTableRecordActionBuilder{} 468 return builder 469 } 470 471 // 记录 ID 472 // 473 // 示例值: 474 func (builder *BitableTableRecordActionBuilder) RecordId(recordId string) *BitableTableRecordActionBuilder { 475 builder.recordId = recordId 476 builder.recordIdFlag = true 477 return builder 478 } 479 480 // 操作类型 481 // 482 // 示例值: 483 func (builder *BitableTableRecordActionBuilder) Action(action string) *BitableTableRecordActionBuilder { 484 builder.action = action 485 builder.actionFlag = true 486 return builder 487 } 488 489 // 操作前的记录值 490 // 491 // 示例值: 492 func (builder *BitableTableRecordActionBuilder) BeforeValue(beforeValue []*BitableTableRecordActionField) *BitableTableRecordActionBuilder { 493 builder.beforeValue = beforeValue 494 builder.beforeValueFlag = true 495 return builder 496 } 497 498 // 操作后的记录值 499 // 500 // 示例值: 501 func (builder *BitableTableRecordActionBuilder) AfterValue(afterValue []*BitableTableRecordActionField) *BitableTableRecordActionBuilder { 502 builder.afterValue = afterValue 503 builder.afterValueFlag = true 504 return builder 505 } 506 507 func (builder *BitableTableRecordActionBuilder) Build() *BitableTableRecordAction { 508 req := &BitableTableRecordAction{} 509 if builder.recordIdFlag { 510 req.RecordId = &builder.recordId 511 512 } 513 if builder.actionFlag { 514 req.Action = &builder.action 515 516 } 517 if builder.beforeValueFlag { 518 req.BeforeValue = builder.beforeValue 519 } 520 if builder.afterValueFlag { 521 req.AfterValue = builder.afterValue 522 } 523 return req 524 } 525 526 type BitableTableRecordActionField struct { 527 FieldId *string `json:"field_id,omitempty"` // 字段 ID 528 FieldValue *string `json:"field_value,omitempty"` // 字段值 529 } 530 531 type BitableTableRecordActionFieldBuilder struct { 532 fieldId string // 字段 ID 533 fieldIdFlag bool 534 fieldValue string // 字段值 535 fieldValueFlag bool 536 } 537 538 func NewBitableTableRecordActionFieldBuilder() *BitableTableRecordActionFieldBuilder { 539 builder := &BitableTableRecordActionFieldBuilder{} 540 return builder 541 } 542 543 // 字段 ID 544 // 545 // 示例值: 546 func (builder *BitableTableRecordActionFieldBuilder) FieldId(fieldId string) *BitableTableRecordActionFieldBuilder { 547 builder.fieldId = fieldId 548 builder.fieldIdFlag = true 549 return builder 550 } 551 552 // 字段值 553 // 554 // 示例值: 555 func (builder *BitableTableRecordActionFieldBuilder) FieldValue(fieldValue string) *BitableTableRecordActionFieldBuilder { 556 builder.fieldValue = fieldValue 557 builder.fieldValueFlag = true 558 return builder 559 } 560 561 func (builder *BitableTableRecordActionFieldBuilder) Build() *BitableTableRecordActionField { 562 req := &BitableTableRecordActionField{} 563 if builder.fieldIdFlag { 564 req.FieldId = &builder.fieldId 565 566 } 567 if builder.fieldValueFlag { 568 req.FieldValue = &builder.fieldValue 569 570 } 571 return req 572 } 573 574 type Collaborator struct { 575 MemberType *string `json:"member_type,omitempty"` // 协作者类型 "user" or "chat" 576 MemberOpenId *string `json:"member_open_id,omitempty"` // 协作者openid 577 MemberUserId *string `json:"member_user_id,omitempty"` // 协作者userid(仅当member_type="user"时有效) 578 Perm *string `json:"perm,omitempty"` // 协作者权限 (注意: **有"edit"权限的协作者一定有"view"权限**) 579 } 580 581 type CollaboratorBuilder struct { 582 memberType string // 协作者类型 "user" or "chat" 583 memberTypeFlag bool 584 memberOpenId string // 协作者openid 585 memberOpenIdFlag bool 586 memberUserId string // 协作者userid(仅当member_type="user"时有效) 587 memberUserIdFlag bool 588 perm string // 协作者权限 (注意: **有"edit"权限的协作者一定有"view"权限**) 589 permFlag bool 590 } 591 592 func NewCollaboratorBuilder() *CollaboratorBuilder { 593 builder := &CollaboratorBuilder{} 594 return builder 595 } 596 597 // 协作者类型 "user" or "chat" 598 // 599 // 示例值:user 600 func (builder *CollaboratorBuilder) MemberType(memberType string) *CollaboratorBuilder { 601 builder.memberType = memberType 602 builder.memberTypeFlag = true 603 return builder 604 } 605 606 // 协作者openid 607 // 608 // 示例值:ou_65b0affcc6c342a50e4c66f700137b64 609 func (builder *CollaboratorBuilder) MemberOpenId(memberOpenId string) *CollaboratorBuilder { 610 builder.memberOpenId = memberOpenId 611 builder.memberOpenIdFlag = true 612 return builder 613 } 614 615 // 协作者userid(仅当member_type="user"时有效) 616 // 617 // 示例值:96g3c421 618 func (builder *CollaboratorBuilder) MemberUserId(memberUserId string) *CollaboratorBuilder { 619 builder.memberUserId = memberUserId 620 builder.memberUserIdFlag = true 621 return builder 622 } 623 624 // 协作者权限 (注意: **有"edit"权限的协作者一定有"view"权限**) 625 // 626 // 示例值:view 627 func (builder *CollaboratorBuilder) Perm(perm string) *CollaboratorBuilder { 628 builder.perm = perm 629 builder.permFlag = true 630 return builder 631 } 632 633 func (builder *CollaboratorBuilder) Build() *Collaborator { 634 req := &Collaborator{} 635 if builder.memberTypeFlag { 636 req.MemberType = &builder.memberType 637 638 } 639 if builder.memberOpenIdFlag { 640 req.MemberOpenId = &builder.memberOpenId 641 642 } 643 if builder.memberUserIdFlag { 644 req.MemberUserId = &builder.memberUserId 645 646 } 647 if builder.permFlag { 648 req.Perm = &builder.perm 649 650 } 651 return req 652 } 653 654 type DocsLink struct { 655 Url *string `json:"url,omitempty"` // 回复 at云文档 656 } 657 658 type DocsLinkBuilder struct { 659 url string // 回复 at云文档 660 urlFlag bool 661 } 662 663 func NewDocsLinkBuilder() *DocsLinkBuilder { 664 builder := &DocsLinkBuilder{} 665 return builder 666 } 667 668 // 回复 at云文档 669 // 670 // 示例值:https://bytedance.feishu.cn/docs/doccnHh7U87HOFpii5u5Gabcef 671 func (builder *DocsLinkBuilder) Url(url string) *DocsLinkBuilder { 672 builder.url = url 673 builder.urlFlag = true 674 return builder 675 } 676 677 func (builder *DocsLinkBuilder) Build() *DocsLink { 678 req := &DocsLink{} 679 if builder.urlFlag { 680 req.Url = &builder.url 681 682 } 683 return req 684 } 685 686 type ExportTask struct { 687 FileExtension *string `json:"file_extension,omitempty"` // 导出文件扩展名 688 Token *string `json:"token,omitempty"` // 导出文档 token 689 Type *string `json:"type,omitempty"` // 导出文档类型 690 FileName *string `json:"file_name,omitempty"` // 导出文件名 691 FileToken *string `json:"file_token,omitempty"` // 导出文件 drive token 692 FileSize *int `json:"file_size,omitempty"` // 导出文件大小 693 JobErrorMsg *string `json:"job_error_msg,omitempty"` // 任务失败原因 694 JobStatus *int `json:"job_status,omitempty"` // 任务状态 695 } 696 697 type ExportTaskBuilder struct { 698 fileExtension string // 导出文件扩展名 699 fileExtensionFlag bool 700 token string // 导出文档 token 701 tokenFlag bool 702 type_ string // 导出文档类型 703 typeFlag bool 704 fileName string // 导出文件名 705 fileNameFlag bool 706 fileToken string // 导出文件 drive token 707 fileTokenFlag bool 708 fileSize int // 导出文件大小 709 fileSizeFlag bool 710 jobErrorMsg string // 任务失败原因 711 jobErrorMsgFlag bool 712 jobStatus int // 任务状态 713 jobStatusFlag bool 714 } 715 716 func NewExportTaskBuilder() *ExportTaskBuilder { 717 builder := &ExportTaskBuilder{} 718 return builder 719 } 720 721 // 导出文件扩展名 722 // 723 // 示例值:pdf 724 func (builder *ExportTaskBuilder) FileExtension(fileExtension string) *ExportTaskBuilder { 725 builder.fileExtension = fileExtension 726 builder.fileExtensionFlag = true 727 return builder 728 } 729 730 // 导出文档 token 731 // 732 // 示例值:doccnxe5OxxxxxxxSNdsJviENsk 733 func (builder *ExportTaskBuilder) Token(token string) *ExportTaskBuilder { 734 builder.token = token 735 builder.tokenFlag = true 736 return builder 737 } 738 739 // 导出文档类型 740 // 741 // 示例值:doc 742 func (builder *ExportTaskBuilder) Type(type_ string) *ExportTaskBuilder { 743 builder.type_ = type_ 744 builder.typeFlag = true 745 return builder 746 } 747 748 // 导出文件名 749 // 750 // 示例值:docName 751 func (builder *ExportTaskBuilder) FileName(fileName string) *ExportTaskBuilder { 752 builder.fileName = fileName 753 builder.fileNameFlag = true 754 return builder 755 } 756 757 // 导出文件 drive token 758 // 759 // 示例值:boxcnxe5OxxxxxxxSNdsJviENsk 760 func (builder *ExportTaskBuilder) FileToken(fileToken string) *ExportTaskBuilder { 761 builder.fileToken = fileToken 762 builder.fileTokenFlag = true 763 return builder 764 } 765 766 // 导出文件大小 767 // 768 // 示例值:34356 769 func (builder *ExportTaskBuilder) FileSize(fileSize int) *ExportTaskBuilder { 770 builder.fileSize = fileSize 771 builder.fileSizeFlag = true 772 return builder 773 } 774 775 // 任务失败原因 776 // 777 // 示例值:success 778 func (builder *ExportTaskBuilder) JobErrorMsg(jobErrorMsg string) *ExportTaskBuilder { 779 builder.jobErrorMsg = jobErrorMsg 780 builder.jobErrorMsgFlag = true 781 return builder 782 } 783 784 // 任务状态 785 // 786 // 示例值:0 787 func (builder *ExportTaskBuilder) JobStatus(jobStatus int) *ExportTaskBuilder { 788 builder.jobStatus = jobStatus 789 builder.jobStatusFlag = true 790 return builder 791 } 792 793 func (builder *ExportTaskBuilder) Build() *ExportTask { 794 req := &ExportTask{} 795 if builder.fileExtensionFlag { 796 req.FileExtension = &builder.fileExtension 797 798 } 799 if builder.tokenFlag { 800 req.Token = &builder.token 801 802 } 803 if builder.typeFlag { 804 req.Type = &builder.type_ 805 806 } 807 if builder.fileNameFlag { 808 req.FileName = &builder.fileName 809 810 } 811 if builder.fileTokenFlag { 812 req.FileToken = &builder.fileToken 813 814 } 815 if builder.fileSizeFlag { 816 req.FileSize = &builder.fileSize 817 818 } 819 if builder.jobErrorMsgFlag { 820 req.JobErrorMsg = &builder.jobErrorMsg 821 822 } 823 if builder.jobStatusFlag { 824 req.JobStatus = &builder.jobStatus 825 826 } 827 return req 828 } 829 830 type File struct { 831 Token *string `json:"token,omitempty"` // 文件标识 832 Name *string `json:"name,omitempty"` // 文件名 833 Type *string `json:"type,omitempty"` // 文件类型 834 ParentToken *string `json:"parent_token,omitempty"` // 父文件夹标识 835 Url *string `json:"url,omitempty"` // 在浏览器中查看的链接 836 ShortcutInfo *ShortcutInfo `json:"shortcut_info,omitempty"` // 快捷方式文件信息 837 } 838 839 type FileBuilder struct { 840 token string // 文件标识 841 tokenFlag bool 842 name string // 文件名 843 nameFlag bool 844 type_ string // 文件类型 845 typeFlag bool 846 parentToken string // 父文件夹标识 847 parentTokenFlag bool 848 url string // 在浏览器中查看的链接 849 urlFlag bool 850 shortcutInfo *ShortcutInfo // 快捷方式文件信息 851 shortcutInfoFlag bool 852 } 853 854 func NewFileBuilder() *FileBuilder { 855 builder := &FileBuilder{} 856 return builder 857 } 858 859 // 文件标识 860 // 861 // 示例值:boxbc0dGSMu23m7QkC1bvabcef 862 func (builder *FileBuilder) Token(token string) *FileBuilder { 863 builder.token = token 864 builder.tokenFlag = true 865 return builder 866 } 867 868 // 文件名 869 // 870 // 示例值:123.txt 871 func (builder *FileBuilder) Name(name string) *FileBuilder { 872 builder.name = name 873 builder.nameFlag = true 874 return builder 875 } 876 877 // 文件类型 878 // 879 // 示例值:file 880 func (builder *FileBuilder) Type(type_ string) *FileBuilder { 881 builder.type_ = type_ 882 builder.typeFlag = true 883 return builder 884 } 885 886 // 父文件夹标识 887 // 888 // 示例值:fldbcO1UuPz8VwnpPx5a92abcef 889 func (builder *FileBuilder) ParentToken(parentToken string) *FileBuilder { 890 builder.parentToken = parentToken 891 builder.parentTokenFlag = true 892 return builder 893 } 894 895 // 在浏览器中查看的链接 896 // 897 // 示例值:https://bytedance.feishu.cn/file/boxbc0dGSMu23m7QkC1bvabcef 898 func (builder *FileBuilder) Url(url string) *FileBuilder { 899 builder.url = url 900 builder.urlFlag = true 901 return builder 902 } 903 904 // 快捷方式文件信息 905 // 906 // 示例值: 907 func (builder *FileBuilder) ShortcutInfo(shortcutInfo *ShortcutInfo) *FileBuilder { 908 builder.shortcutInfo = shortcutInfo 909 builder.shortcutInfoFlag = true 910 return builder 911 } 912 913 func (builder *FileBuilder) Build() *File { 914 req := &File{} 915 if builder.tokenFlag { 916 req.Token = &builder.token 917 918 } 919 if builder.nameFlag { 920 req.Name = &builder.name 921 922 } 923 if builder.typeFlag { 924 req.Type = &builder.type_ 925 926 } 927 if builder.parentTokenFlag { 928 req.ParentToken = &builder.parentToken 929 930 } 931 if builder.urlFlag { 932 req.Url = &builder.url 933 934 } 935 if builder.shortcutInfoFlag { 936 req.ShortcutInfo = builder.shortcutInfo 937 } 938 return req 939 } 940 941 type FileComment struct { 942 CommentId *string `json:"comment_id,omitempty"` // 评论ID(创建新评论可不填;如填写,则视为回复已有评论) 943 UserId *string `json:"user_id,omitempty"` // 用户ID 944 CreateTime *int `json:"create_time,omitempty"` // 创建时间 945 UpdateTime *int `json:"update_time,omitempty"` // 更新时间 946 IsSolved *bool `json:"is_solved,omitempty"` // 是否已解决 947 SolvedTime *int `json:"solved_time,omitempty"` // 解决评论时间 948 SolverUserId *string `json:"solver_user_id,omitempty"` // 解决评论者的用户ID 949 HasMore *bool `json:"has_more,omitempty"` // 是否有更多回复 950 PageToken *string `json:"page_token,omitempty"` // 回复分页标记 951 IsWhole *bool `json:"is_whole,omitempty"` // 是否是全文评论 952 Quote *string `json:"quote,omitempty"` // 如果是局部评论,引用字段 953 ReplyList *ReplyList `json:"reply_list,omitempty"` // 评论里的回复列表 954 } 955 956 type FileCommentBuilder struct { 957 commentId string // 评论ID(创建新评论可不填;如填写,则视为回复已有评论) 958 commentIdFlag bool 959 userId string // 用户ID 960 userIdFlag bool 961 createTime int // 创建时间 962 createTimeFlag bool 963 updateTime int // 更新时间 964 updateTimeFlag bool 965 isSolved bool // 是否已解决 966 isSolvedFlag bool 967 solvedTime int // 解决评论时间 968 solvedTimeFlag bool 969 solverUserId string // 解决评论者的用户ID 970 solverUserIdFlag bool 971 hasMore bool // 是否有更多回复 972 hasMoreFlag bool 973 pageToken string // 回复分页标记 974 pageTokenFlag bool 975 isWhole bool // 是否是全文评论 976 isWholeFlag bool 977 quote string // 如果是局部评论,引用字段 978 quoteFlag bool 979 replyList *ReplyList // 评论里的回复列表 980 replyListFlag bool 981 } 982 983 func NewFileCommentBuilder() *FileCommentBuilder { 984 builder := &FileCommentBuilder{} 985 return builder 986 } 987 988 // 评论ID(创建新评论可不填;如填写,则视为回复已有评论) 989 // 990 // 示例值:6916106822734512356 991 func (builder *FileCommentBuilder) CommentId(commentId string) *FileCommentBuilder { 992 builder.commentId = commentId 993 builder.commentIdFlag = true 994 return builder 995 } 996 997 // 用户ID 998 // 999 // 示例值:ou_cc19b2bfb93f8a44db4b4d6eababcef 1000 func (builder *FileCommentBuilder) UserId(userId string) *FileCommentBuilder { 1001 builder.userId = userId 1002 builder.userIdFlag = true 1003 return builder 1004 } 1005 1006 // 创建时间 1007 // 1008 // 示例值:1610281603 1009 func (builder *FileCommentBuilder) CreateTime(createTime int) *FileCommentBuilder { 1010 builder.createTime = createTime 1011 builder.createTimeFlag = true 1012 return builder 1013 } 1014 1015 // 更新时间 1016 // 1017 // 示例值:1610281603 1018 func (builder *FileCommentBuilder) UpdateTime(updateTime int) *FileCommentBuilder { 1019 builder.updateTime = updateTime 1020 builder.updateTimeFlag = true 1021 return builder 1022 } 1023 1024 // 是否已解决 1025 // 1026 // 示例值:false 1027 func (builder *FileCommentBuilder) IsSolved(isSolved bool) *FileCommentBuilder { 1028 builder.isSolved = isSolved 1029 builder.isSolvedFlag = true 1030 return builder 1031 } 1032 1033 // 解决评论时间 1034 // 1035 // 示例值:1610281603 1036 func (builder *FileCommentBuilder) SolvedTime(solvedTime int) *FileCommentBuilder { 1037 builder.solvedTime = solvedTime 1038 builder.solvedTimeFlag = true 1039 return builder 1040 } 1041 1042 // 解决评论者的用户ID 1043 // 1044 // 示例值:null 1045 func (builder *FileCommentBuilder) SolverUserId(solverUserId string) *FileCommentBuilder { 1046 builder.solverUserId = solverUserId 1047 builder.solverUserIdFlag = true 1048 return builder 1049 } 1050 1051 // 是否有更多回复 1052 // 1053 // 示例值:false 1054 func (builder *FileCommentBuilder) HasMore(hasMore bool) *FileCommentBuilder { 1055 builder.hasMore = hasMore 1056 builder.hasMoreFlag = true 1057 return builder 1058 } 1059 1060 // 回复分页标记 1061 // 1062 // 示例值:6916106822734512356 1063 func (builder *FileCommentBuilder) PageToken(pageToken string) *FileCommentBuilder { 1064 builder.pageToken = pageToken 1065 builder.pageTokenFlag = true 1066 return builder 1067 } 1068 1069 // 是否是全文评论 1070 // 1071 // 示例值:true 1072 func (builder *FileCommentBuilder) IsWhole(isWhole bool) *FileCommentBuilder { 1073 builder.isWhole = isWhole 1074 builder.isWholeFlag = true 1075 return builder 1076 } 1077 1078 // 如果是局部评论,引用字段 1079 // 1080 // 示例值:划词评论引用内容 1081 func (builder *FileCommentBuilder) Quote(quote string) *FileCommentBuilder { 1082 builder.quote = quote 1083 builder.quoteFlag = true 1084 return builder 1085 } 1086 1087 // 评论里的回复列表 1088 // 1089 // 示例值: 1090 func (builder *FileCommentBuilder) ReplyList(replyList *ReplyList) *FileCommentBuilder { 1091 builder.replyList = replyList 1092 builder.replyListFlag = true 1093 return builder 1094 } 1095 1096 func (builder *FileCommentBuilder) Build() *FileComment { 1097 req := &FileComment{} 1098 if builder.commentIdFlag { 1099 req.CommentId = &builder.commentId 1100 1101 } 1102 if builder.userIdFlag { 1103 req.UserId = &builder.userId 1104 1105 } 1106 if builder.createTimeFlag { 1107 req.CreateTime = &builder.createTime 1108 1109 } 1110 if builder.updateTimeFlag { 1111 req.UpdateTime = &builder.updateTime 1112 1113 } 1114 if builder.isSolvedFlag { 1115 req.IsSolved = &builder.isSolved 1116 1117 } 1118 if builder.solvedTimeFlag { 1119 req.SolvedTime = &builder.solvedTime 1120 1121 } 1122 if builder.solverUserIdFlag { 1123 req.SolverUserId = &builder.solverUserId 1124 1125 } 1126 if builder.hasMoreFlag { 1127 req.HasMore = &builder.hasMore 1128 1129 } 1130 if builder.pageTokenFlag { 1131 req.PageToken = &builder.pageToken 1132 1133 } 1134 if builder.isWholeFlag { 1135 req.IsWhole = &builder.isWhole 1136 1137 } 1138 if builder.quoteFlag { 1139 req.Quote = &builder.quote 1140 1141 } 1142 if builder.replyListFlag { 1143 req.ReplyList = builder.replyList 1144 } 1145 return req 1146 } 1147 1148 type FileCommentReply struct { 1149 ReplyId *string `json:"reply_id,omitempty"` // 回复ID 1150 UserId *string `json:"user_id,omitempty"` // 用户ID 1151 CreateTime *int `json:"create_time,omitempty"` // 创建时间 1152 UpdateTime *int `json:"update_time,omitempty"` // 更新时间 1153 Content *ReplyContent `json:"content,omitempty"` // 回复内容 1154 Extra *ReplyExtra `json:"extra,omitempty"` // 回复的其他内容,图片token等 1155 } 1156 1157 type FileCommentReplyBuilder struct { 1158 replyId string // 回复ID 1159 replyIdFlag bool 1160 userId string // 用户ID 1161 userIdFlag bool 1162 createTime int // 创建时间 1163 createTimeFlag bool 1164 updateTime int // 更新时间 1165 updateTimeFlag bool 1166 content *ReplyContent // 回复内容 1167 contentFlag bool 1168 extra *ReplyExtra // 回复的其他内容,图片token等 1169 extraFlag bool 1170 } 1171 1172 func NewFileCommentReplyBuilder() *FileCommentReplyBuilder { 1173 builder := &FileCommentReplyBuilder{} 1174 return builder 1175 } 1176 1177 // 回复ID 1178 // 1179 // 示例值:6916106822734512356 1180 func (builder *FileCommentReplyBuilder) ReplyId(replyId string) *FileCommentReplyBuilder { 1181 builder.replyId = replyId 1182 builder.replyIdFlag = true 1183 return builder 1184 } 1185 1186 // 用户ID 1187 // 1188 // 示例值:ou_cc19b2bfb93f8a44db4b4d6eab2abcef 1189 func (builder *FileCommentReplyBuilder) UserId(userId string) *FileCommentReplyBuilder { 1190 builder.userId = userId 1191 builder.userIdFlag = true 1192 return builder 1193 } 1194 1195 // 创建时间 1196 // 1197 // 示例值:1610281603 1198 func (builder *FileCommentReplyBuilder) CreateTime(createTime int) *FileCommentReplyBuilder { 1199 builder.createTime = createTime 1200 builder.createTimeFlag = true 1201 return builder 1202 } 1203 1204 // 更新时间 1205 // 1206 // 示例值:1610281603 1207 func (builder *FileCommentReplyBuilder) UpdateTime(updateTime int) *FileCommentReplyBuilder { 1208 builder.updateTime = updateTime 1209 builder.updateTimeFlag = true 1210 return builder 1211 } 1212 1213 // 回复内容 1214 // 1215 // 示例值: 1216 func (builder *FileCommentReplyBuilder) Content(content *ReplyContent) *FileCommentReplyBuilder { 1217 builder.content = content 1218 builder.contentFlag = true 1219 return builder 1220 } 1221 1222 // 回复的其他内容,图片token等 1223 // 1224 // 示例值: 1225 func (builder *FileCommentReplyBuilder) Extra(extra *ReplyExtra) *FileCommentReplyBuilder { 1226 builder.extra = extra 1227 builder.extraFlag = true 1228 return builder 1229 } 1230 1231 func (builder *FileCommentReplyBuilder) Build() *FileCommentReply { 1232 req := &FileCommentReply{} 1233 if builder.replyIdFlag { 1234 req.ReplyId = &builder.replyId 1235 1236 } 1237 if builder.userIdFlag { 1238 req.UserId = &builder.userId 1239 1240 } 1241 if builder.createTimeFlag { 1242 req.CreateTime = &builder.createTime 1243 1244 } 1245 if builder.updateTimeFlag { 1246 req.UpdateTime = &builder.updateTime 1247 1248 } 1249 if builder.contentFlag { 1250 req.Content = builder.content 1251 } 1252 if builder.extraFlag { 1253 req.Extra = builder.extra 1254 } 1255 return req 1256 } 1257 1258 type FileSubscription struct { 1259 SubscriptionId *string `json:"subscription_id,omitempty"` // 订阅关系ID 1260 SubscriptionType *string `json:"subscription_type,omitempty"` // 订阅类型 1261 IsSubcribe *bool `json:"is_subcribe,omitempty"` // 是否订阅 1262 FileType *string `json:"file_type,omitempty"` // 文档类型 1263 } 1264 1265 type FileSubscriptionBuilder struct { 1266 subscriptionId string // 订阅关系ID 1267 subscriptionIdFlag bool 1268 subscriptionType string // 订阅类型 1269 subscriptionTypeFlag bool 1270 isSubcribe bool // 是否订阅 1271 isSubcribeFlag bool 1272 fileType string // 文档类型 1273 fileTypeFlag bool 1274 } 1275 1276 func NewFileSubscriptionBuilder() *FileSubscriptionBuilder { 1277 builder := &FileSubscriptionBuilder{} 1278 return builder 1279 } 1280 1281 // 订阅关系ID 1282 // 1283 // 示例值:1234567890987654321 1284 func (builder *FileSubscriptionBuilder) SubscriptionId(subscriptionId string) *FileSubscriptionBuilder { 1285 builder.subscriptionId = subscriptionId 1286 builder.subscriptionIdFlag = true 1287 return builder 1288 } 1289 1290 // 订阅类型 1291 // 1292 // 示例值:comment_update 1293 func (builder *FileSubscriptionBuilder) SubscriptionType(subscriptionType string) *FileSubscriptionBuilder { 1294 builder.subscriptionType = subscriptionType 1295 builder.subscriptionTypeFlag = true 1296 return builder 1297 } 1298 1299 // 是否订阅 1300 // 1301 // 示例值:true 1302 func (builder *FileSubscriptionBuilder) IsSubcribe(isSubcribe bool) *FileSubscriptionBuilder { 1303 builder.isSubcribe = isSubcribe 1304 builder.isSubcribeFlag = true 1305 return builder 1306 } 1307 1308 // 文档类型 1309 // 1310 // 示例值:doc 1311 func (builder *FileSubscriptionBuilder) FileType(fileType string) *FileSubscriptionBuilder { 1312 builder.fileType = fileType 1313 builder.fileTypeFlag = true 1314 return builder 1315 } 1316 1317 func (builder *FileSubscriptionBuilder) Build() *FileSubscription { 1318 req := &FileSubscription{} 1319 if builder.subscriptionIdFlag { 1320 req.SubscriptionId = &builder.subscriptionId 1321 1322 } 1323 if builder.subscriptionTypeFlag { 1324 req.SubscriptionType = &builder.subscriptionType 1325 1326 } 1327 if builder.isSubcribeFlag { 1328 req.IsSubcribe = &builder.isSubcribe 1329 1330 } 1331 if builder.fileTypeFlag { 1332 req.FileType = &builder.fileType 1333 1334 } 1335 return req 1336 } 1337 1338 type FileSearch struct { 1339 DocsToken *string `json:"docs_token,omitempty"` // 文档token 1340 DocsType *string `json:"docs_type,omitempty"` // 文档类型 1341 Title *string `json:"title,omitempty"` // 标题 1342 OwnerId *string `json:"owner_id,omitempty"` // 文件所有者 1343 } 1344 1345 type FileSearchBuilder struct { 1346 docsToken string // 文档token 1347 docsTokenFlag bool 1348 docsType string // 文档类型 1349 docsTypeFlag bool 1350 title string // 标题 1351 titleFlag bool 1352 ownerId string // 文件所有者 1353 ownerIdFlag bool 1354 } 1355 1356 func NewFileSearchBuilder() *FileSearchBuilder { 1357 builder := &FileSearchBuilder{} 1358 return builder 1359 } 1360 1361 // 文档token 1362 // 1363 // 示例值:doxbcxcAgzUTcPI5xR7c6nGJDGc 1364 func (builder *FileSearchBuilder) DocsToken(docsToken string) *FileSearchBuilder { 1365 builder.docsToken = docsToken 1366 builder.docsTokenFlag = true 1367 return builder 1368 } 1369 1370 // 文档类型 1371 // 1372 // 示例值:sheet 1373 func (builder *FileSearchBuilder) DocsType(docsType string) *FileSearchBuilder { 1374 builder.docsType = docsType 1375 builder.docsTypeFlag = true 1376 return builder 1377 } 1378 1379 // 标题 1380 // 1381 // 示例值:标题 1382 func (builder *FileSearchBuilder) Title(title string) *FileSearchBuilder { 1383 builder.title = title 1384 builder.titleFlag = true 1385 return builder 1386 } 1387 1388 // 文件所有者 1389 // 1390 // 示例值:ou_6e92f20bb8842c89c0f7e4090b13d57a 1391 func (builder *FileSearchBuilder) OwnerId(ownerId string) *FileSearchBuilder { 1392 builder.ownerId = ownerId 1393 builder.ownerIdFlag = true 1394 return builder 1395 } 1396 1397 func (builder *FileSearchBuilder) Build() *FileSearch { 1398 req := &FileSearch{} 1399 if builder.docsTokenFlag { 1400 req.DocsToken = &builder.docsToken 1401 1402 } 1403 if builder.docsTypeFlag { 1404 req.DocsType = &builder.docsType 1405 1406 } 1407 if builder.titleFlag { 1408 req.Title = &builder.title 1409 1410 } 1411 if builder.ownerIdFlag { 1412 req.OwnerId = &builder.ownerId 1413 1414 } 1415 return req 1416 } 1417 1418 type FileStatistics struct { 1419 Uv *int `json:"uv,omitempty"` // 文件历史访问人数,同一用户(user_id)多次访问按一次计算。 1420 Pv *int `json:"pv,omitempty"` // 文件历史访问次数,同一用户(user_id)多次访问按多次计算。(注:同一用户相邻两次访问间隔在半小时内视为一次访问) 1421 LikeCount *int `json:"like_count,omitempty"` // 文件历史点赞总数,若对应的文档类型不支持点赞,返回 -1 1422 Timestamp *int `json:"timestamp,omitempty"` // 时间戳(秒) 1423 } 1424 1425 type FileStatisticsBuilder struct { 1426 uv int // 文件历史访问人数,同一用户(user_id)多次访问按一次计算。 1427 uvFlag bool 1428 pv int // 文件历史访问次数,同一用户(user_id)多次访问按多次计算。(注:同一用户相邻两次访问间隔在半小时内视为一次访问) 1429 pvFlag bool 1430 likeCount int // 文件历史点赞总数,若对应的文档类型不支持点赞,返回 -1 1431 likeCountFlag bool 1432 timestamp int // 时间戳(秒) 1433 timestampFlag bool 1434 } 1435 1436 func NewFileStatisticsBuilder() *FileStatisticsBuilder { 1437 builder := &FileStatisticsBuilder{} 1438 return builder 1439 } 1440 1441 // 文件历史访问人数,同一用户(user_id)多次访问按一次计算。 1442 // 1443 // 示例值:10 1444 func (builder *FileStatisticsBuilder) Uv(uv int) *FileStatisticsBuilder { 1445 builder.uv = uv 1446 builder.uvFlag = true 1447 return builder 1448 } 1449 1450 // 文件历史访问次数,同一用户(user_id)多次访问按多次计算。(注:同一用户相邻两次访问间隔在半小时内视为一次访问) 1451 // 1452 // 示例值:15 1453 func (builder *FileStatisticsBuilder) Pv(pv int) *FileStatisticsBuilder { 1454 builder.pv = pv 1455 builder.pvFlag = true 1456 return builder 1457 } 1458 1459 // 文件历史点赞总数,若对应的文档类型不支持点赞,返回 -1 1460 // 1461 // 示例值:2 1462 func (builder *FileStatisticsBuilder) LikeCount(likeCount int) *FileStatisticsBuilder { 1463 builder.likeCount = likeCount 1464 builder.likeCountFlag = true 1465 return builder 1466 } 1467 1468 // 时间戳(秒) 1469 // 1470 // 示例值:1627367349 1471 func (builder *FileStatisticsBuilder) Timestamp(timestamp int) *FileStatisticsBuilder { 1472 builder.timestamp = timestamp 1473 builder.timestampFlag = true 1474 return builder 1475 } 1476 1477 func (builder *FileStatisticsBuilder) Build() *FileStatistics { 1478 req := &FileStatistics{} 1479 if builder.uvFlag { 1480 req.Uv = &builder.uv 1481 1482 } 1483 if builder.pvFlag { 1484 req.Pv = &builder.pv 1485 1486 } 1487 if builder.likeCountFlag { 1488 req.LikeCount = &builder.likeCount 1489 1490 } 1491 if builder.timestampFlag { 1492 req.Timestamp = &builder.timestamp 1493 1494 } 1495 return req 1496 } 1497 1498 type FileUploadInfo struct { 1499 FileName *string `json:"file_name,omitempty"` // 文件名 1500 ParentType *string `json:"parent_type,omitempty"` // 上传点类型 1501 ParentNode *string `json:"parent_node,omitempty"` // 文件夹的token 1502 Size *int `json:"size,omitempty"` // 文件大小 1503 } 1504 1505 type FileUploadInfoBuilder struct { 1506 fileName string // 文件名 1507 fileNameFlag bool 1508 parentType string // 上传点类型 1509 parentTypeFlag bool 1510 parentNode string // 文件夹的token 1511 parentNodeFlag bool 1512 size int // 文件大小 1513 sizeFlag bool 1514 } 1515 1516 func NewFileUploadInfoBuilder() *FileUploadInfoBuilder { 1517 builder := &FileUploadInfoBuilder{} 1518 return builder 1519 } 1520 1521 // 文件名 1522 // 1523 // 示例值:test.txt 1524 func (builder *FileUploadInfoBuilder) FileName(fileName string) *FileUploadInfoBuilder { 1525 builder.fileName = fileName 1526 builder.fileNameFlag = true 1527 return builder 1528 } 1529 1530 // 上传点类型 1531 // 1532 // 示例值:explorer 1533 func (builder *FileUploadInfoBuilder) ParentType(parentType string) *FileUploadInfoBuilder { 1534 builder.parentType = parentType 1535 builder.parentTypeFlag = true 1536 return builder 1537 } 1538 1539 // 文件夹的token 1540 // 1541 // 示例值:fldbcO1UuPz8VwnpPx5a92abcef 1542 func (builder *FileUploadInfoBuilder) ParentNode(parentNode string) *FileUploadInfoBuilder { 1543 builder.parentNode = parentNode 1544 builder.parentNodeFlag = true 1545 return builder 1546 } 1547 1548 // 文件大小 1549 // 1550 // 示例值:1024 1551 func (builder *FileUploadInfoBuilder) Size(size int) *FileUploadInfoBuilder { 1552 builder.size = size 1553 builder.sizeFlag = true 1554 return builder 1555 } 1556 1557 func (builder *FileUploadInfoBuilder) Build() *FileUploadInfo { 1558 req := &FileUploadInfo{} 1559 if builder.fileNameFlag { 1560 req.FileName = &builder.fileName 1561 1562 } 1563 if builder.parentTypeFlag { 1564 req.ParentType = &builder.parentType 1565 1566 } 1567 if builder.parentNodeFlag { 1568 req.ParentNode = &builder.parentNode 1569 1570 } 1571 if builder.sizeFlag { 1572 req.Size = &builder.size 1573 1574 } 1575 return req 1576 } 1577 1578 type ImportTask struct { 1579 Ticket *string `json:"ticket,omitempty"` // 任务ID 1580 FileExtension *string `json:"file_extension,omitempty"` // 导入文件格式后缀 1581 FileToken *string `json:"file_token,omitempty"` // 导入文件Drive FileToken 1582 Type *string `json:"type,omitempty"` // 导入目标云文档格式 1583 FileName *string `json:"file_name,omitempty"` // 导入目标云文档文件名 ,若为空使用Drive文件名 1584 Point *ImportTaskMountPoint `json:"point,omitempty"` // 挂载点 1585 JobStatus *int `json:"job_status,omitempty"` // 任务状态 1586 JobErrorMsg *string `json:"job_error_msg,omitempty"` // 任务失败原因 1587 Token *string `json:"token,omitempty"` // 导入云文档Token 1588 Url *string `json:"url,omitempty"` // 导入云文档URL 1589 Extra []string `json:"extra,omitempty"` // 任务成功后的提示信息 1590 } 1591 1592 type ImportTaskBuilder struct { 1593 ticket string // 任务ID 1594 ticketFlag bool 1595 fileExtension string // 导入文件格式后缀 1596 fileExtensionFlag bool 1597 fileToken string // 导入文件Drive FileToken 1598 fileTokenFlag bool 1599 type_ string // 导入目标云文档格式 1600 typeFlag bool 1601 fileName string // 导入目标云文档文件名 ,若为空使用Drive文件名 1602 fileNameFlag bool 1603 point *ImportTaskMountPoint // 挂载点 1604 pointFlag bool 1605 jobStatus int // 任务状态 1606 jobStatusFlag bool 1607 jobErrorMsg string // 任务失败原因 1608 jobErrorMsgFlag bool 1609 token string // 导入云文档Token 1610 tokenFlag bool 1611 url string // 导入云文档URL 1612 urlFlag bool 1613 extra []string // 任务成功后的提示信息 1614 extraFlag bool 1615 } 1616 1617 func NewImportTaskBuilder() *ImportTaskBuilder { 1618 builder := &ImportTaskBuilder{} 1619 return builder 1620 } 1621 1622 // 任务ID 1623 // 1624 // 示例值:6990281865xxxxxxxx7843 1625 func (builder *ImportTaskBuilder) Ticket(ticket string) *ImportTaskBuilder { 1626 builder.ticket = ticket 1627 builder.ticketFlag = true 1628 return builder 1629 } 1630 1631 // 导入文件格式后缀 1632 // 1633 // 示例值:xlsx 1634 func (builder *ImportTaskBuilder) FileExtension(fileExtension string) *ImportTaskBuilder { 1635 builder.fileExtension = fileExtension 1636 builder.fileExtensionFlag = true 1637 return builder 1638 } 1639 1640 // 导入文件Drive FileToken 1641 // 1642 // 示例值:boxcnxe5OxxxxxxxSNdsJviENsk 1643 func (builder *ImportTaskBuilder) FileToken(fileToken string) *ImportTaskBuilder { 1644 builder.fileToken = fileToken 1645 builder.fileTokenFlag = true 1646 return builder 1647 } 1648 1649 // 导入目标云文档格式 1650 // 1651 // 示例值:sheet 1652 func (builder *ImportTaskBuilder) Type(type_ string) *ImportTaskBuilder { 1653 builder.type_ = type_ 1654 builder.typeFlag = true 1655 return builder 1656 } 1657 1658 // 导入目标云文档文件名 ,若为空使用Drive文件名 1659 // 1660 // 示例值:test 1661 func (builder *ImportTaskBuilder) FileName(fileName string) *ImportTaskBuilder { 1662 builder.fileName = fileName 1663 builder.fileNameFlag = true 1664 return builder 1665 } 1666 1667 // 挂载点 1668 // 1669 // 示例值: 1670 func (builder *ImportTaskBuilder) Point(point *ImportTaskMountPoint) *ImportTaskBuilder { 1671 builder.point = point 1672 builder.pointFlag = true 1673 return builder 1674 } 1675 1676 // 任务状态 1677 // 1678 // 示例值:0 1679 func (builder *ImportTaskBuilder) JobStatus(jobStatus int) *ImportTaskBuilder { 1680 builder.jobStatus = jobStatus 1681 builder.jobStatusFlag = true 1682 return builder 1683 } 1684 1685 // 任务失败原因 1686 // 1687 // 示例值:success 1688 func (builder *ImportTaskBuilder) JobErrorMsg(jobErrorMsg string) *ImportTaskBuilder { 1689 builder.jobErrorMsg = jobErrorMsg 1690 builder.jobErrorMsgFlag = true 1691 return builder 1692 } 1693 1694 // 导入云文档Token 1695 // 1696 // 示例值:shtcnVBTG6SuxxxxxxxkM2tUX 1697 func (builder *ImportTaskBuilder) Token(token string) *ImportTaskBuilder { 1698 builder.token = token 1699 builder.tokenFlag = true 1700 return builder 1701 } 1702 1703 // 导入云文档URL 1704 // 1705 // 示例值:https://bytedance.feishu.cn/sheets/shtcnVBTG6SuxxxxxxxkM2tUX 1706 func (builder *ImportTaskBuilder) Url(url string) *ImportTaskBuilder { 1707 builder.url = url 1708 builder.urlFlag = true 1709 return builder 1710 } 1711 1712 // 任务成功后的提示信息 1713 // 1714 // 示例值: 1715 func (builder *ImportTaskBuilder) Extra(extra []string) *ImportTaskBuilder { 1716 builder.extra = extra 1717 builder.extraFlag = true 1718 return builder 1719 } 1720 1721 func (builder *ImportTaskBuilder) Build() *ImportTask { 1722 req := &ImportTask{} 1723 if builder.ticketFlag { 1724 req.Ticket = &builder.ticket 1725 1726 } 1727 if builder.fileExtensionFlag { 1728 req.FileExtension = &builder.fileExtension 1729 1730 } 1731 if builder.fileTokenFlag { 1732 req.FileToken = &builder.fileToken 1733 1734 } 1735 if builder.typeFlag { 1736 req.Type = &builder.type_ 1737 1738 } 1739 if builder.fileNameFlag { 1740 req.FileName = &builder.fileName 1741 1742 } 1743 if builder.pointFlag { 1744 req.Point = builder.point 1745 } 1746 if builder.jobStatusFlag { 1747 req.JobStatus = &builder.jobStatus 1748 1749 } 1750 if builder.jobErrorMsgFlag { 1751 req.JobErrorMsg = &builder.jobErrorMsg 1752 1753 } 1754 if builder.tokenFlag { 1755 req.Token = &builder.token 1756 1757 } 1758 if builder.urlFlag { 1759 req.Url = &builder.url 1760 1761 } 1762 if builder.extraFlag { 1763 req.Extra = builder.extra 1764 } 1765 return req 1766 } 1767 1768 type ImportTaskMountPoint struct { 1769 MountType *int `json:"mount_type,omitempty"` // 挂载类型 1770 MountKey *string `json:"mount_key,omitempty"` // 挂载位置,对于mount_type=1, 云空间目录token,空表示根目录 1771 } 1772 1773 type ImportTaskMountPointBuilder struct { 1774 mountType int // 挂载类型 1775 mountTypeFlag bool 1776 mountKey string // 挂载位置,对于mount_type=1, 云空间目录token,空表示根目录 1777 mountKeyFlag bool 1778 } 1779 1780 func NewImportTaskMountPointBuilder() *ImportTaskMountPointBuilder { 1781 builder := &ImportTaskMountPointBuilder{} 1782 return builder 1783 } 1784 1785 // 挂载类型 1786 // 1787 // 示例值:1 1788 func (builder *ImportTaskMountPointBuilder) MountType(mountType int) *ImportTaskMountPointBuilder { 1789 builder.mountType = mountType 1790 builder.mountTypeFlag = true 1791 return builder 1792 } 1793 1794 // 挂载位置,对于mount_type=1, 云空间目录token,空表示根目录 1795 // 1796 // 示例值:fldxxxxxxxx 1797 func (builder *ImportTaskMountPointBuilder) MountKey(mountKey string) *ImportTaskMountPointBuilder { 1798 builder.mountKey = mountKey 1799 builder.mountKeyFlag = true 1800 return builder 1801 } 1802 1803 func (builder *ImportTaskMountPointBuilder) Build() *ImportTaskMountPoint { 1804 req := &ImportTaskMountPoint{} 1805 if builder.mountTypeFlag { 1806 req.MountType = &builder.mountType 1807 1808 } 1809 if builder.mountKeyFlag { 1810 req.MountKey = &builder.mountKey 1811 1812 } 1813 return req 1814 } 1815 1816 type Media struct { 1817 FileToken *string `json:"file_token,omitempty"` // 文件标识符 1818 FileName *string `json:"file_name,omitempty"` // 文件名 1819 Size *int `json:"size,omitempty"` // 文件大小 1820 MimeType *string `json:"mime_type,omitempty"` // 文件MIME类型 1821 } 1822 1823 type MediaBuilder struct { 1824 fileToken string // 文件标识符 1825 fileTokenFlag bool 1826 fileName string // 文件名 1827 fileNameFlag bool 1828 size int // 文件大小 1829 sizeFlag bool 1830 mimeType string // 文件MIME类型 1831 mimeTypeFlag bool 1832 } 1833 1834 func NewMediaBuilder() *MediaBuilder { 1835 builder := &MediaBuilder{} 1836 return builder 1837 } 1838 1839 // 文件标识符 1840 // 1841 // 示例值: 1842 func (builder *MediaBuilder) FileToken(fileToken string) *MediaBuilder { 1843 builder.fileToken = fileToken 1844 builder.fileTokenFlag = true 1845 return builder 1846 } 1847 1848 // 文件名 1849 // 1850 // 示例值: 1851 func (builder *MediaBuilder) FileName(fileName string) *MediaBuilder { 1852 builder.fileName = fileName 1853 builder.fileNameFlag = true 1854 return builder 1855 } 1856 1857 // 文件大小 1858 // 1859 // 示例值: 1860 func (builder *MediaBuilder) Size(size int) *MediaBuilder { 1861 builder.size = size 1862 builder.sizeFlag = true 1863 return builder 1864 } 1865 1866 // 文件MIME类型 1867 // 1868 // 示例值: 1869 func (builder *MediaBuilder) MimeType(mimeType string) *MediaBuilder { 1870 builder.mimeType = mimeType 1871 builder.mimeTypeFlag = true 1872 return builder 1873 } 1874 1875 func (builder *MediaBuilder) Build() *Media { 1876 req := &Media{} 1877 if builder.fileTokenFlag { 1878 req.FileToken = &builder.fileToken 1879 1880 } 1881 if builder.fileNameFlag { 1882 req.FileName = &builder.fileName 1883 1884 } 1885 if builder.sizeFlag { 1886 req.Size = &builder.size 1887 1888 } 1889 if builder.mimeTypeFlag { 1890 req.MimeType = &builder.mimeType 1891 1892 } 1893 return req 1894 } 1895 1896 type MediaUploadInfo struct { 1897 FileName *string `json:"file_name,omitempty"` // 文件名 1898 ParentType *string `json:"parent_type,omitempty"` // 上传点类型 1899 ParentNode *string `json:"parent_node,omitempty"` // 上传点的标识符 1900 Size *int `json:"size,omitempty"` // 文件大小 1901 Extra *string `json:"extra,omitempty"` // 扩展信息(可选) 1902 } 1903 1904 type MediaUploadInfoBuilder struct { 1905 fileName string // 文件名 1906 fileNameFlag bool 1907 parentType string // 上传点类型 1908 parentTypeFlag bool 1909 parentNode string // 上传点的标识符 1910 parentNodeFlag bool 1911 size int // 文件大小 1912 sizeFlag bool 1913 extra string // 扩展信息(可选) 1914 extraFlag bool 1915 } 1916 1917 func NewMediaUploadInfoBuilder() *MediaUploadInfoBuilder { 1918 builder := &MediaUploadInfoBuilder{} 1919 return builder 1920 } 1921 1922 // 文件名 1923 // 1924 // 示例值:demo.jpeg 1925 func (builder *MediaUploadInfoBuilder) FileName(fileName string) *MediaUploadInfoBuilder { 1926 builder.fileName = fileName 1927 builder.fileNameFlag = true 1928 return builder 1929 } 1930 1931 // 上传点类型 1932 // 1933 // 示例值:doc_image 1934 func (builder *MediaUploadInfoBuilder) ParentType(parentType string) *MediaUploadInfoBuilder { 1935 builder.parentType = parentType 1936 builder.parentTypeFlag = true 1937 return builder 1938 } 1939 1940 // 上传点的标识符 1941 // 1942 // 示例值:doccnFivLCfJfblZjGZtxgabcef 1943 func (builder *MediaUploadInfoBuilder) ParentNode(parentNode string) *MediaUploadInfoBuilder { 1944 builder.parentNode = parentNode 1945 builder.parentNodeFlag = true 1946 return builder 1947 } 1948 1949 // 文件大小 1950 // 1951 // 示例值:1024 1952 func (builder *MediaUploadInfoBuilder) Size(size int) *MediaUploadInfoBuilder { 1953 builder.size = size 1954 builder.sizeFlag = true 1955 return builder 1956 } 1957 1958 // 扩展信息(可选) 1959 // 1960 // 示例值:{\"test\":\"test\"} 1961 func (builder *MediaUploadInfoBuilder) Extra(extra string) *MediaUploadInfoBuilder { 1962 builder.extra = extra 1963 builder.extraFlag = true 1964 return builder 1965 } 1966 1967 func (builder *MediaUploadInfoBuilder) Build() *MediaUploadInfo { 1968 req := &MediaUploadInfo{} 1969 if builder.fileNameFlag { 1970 req.FileName = &builder.fileName 1971 1972 } 1973 if builder.parentTypeFlag { 1974 req.ParentType = &builder.parentType 1975 1976 } 1977 if builder.parentNodeFlag { 1978 req.ParentNode = &builder.parentNode 1979 1980 } 1981 if builder.sizeFlag { 1982 req.Size = &builder.size 1983 1984 } 1985 if builder.extraFlag { 1986 req.Extra = &builder.extra 1987 1988 } 1989 return req 1990 } 1991 1992 type Member struct { 1993 MemberType *string `json:"member_type,omitempty"` // 协作者 ID 类型,与协作者 ID 需要对应 1994 MemberId *string `json:"member_id,omitempty"` // 协作者 ID,与协作者 ID 类型需要对应 1995 Perm *string `json:"perm,omitempty"` // 协作者对应的权限角色 1996 Type *string `json:"type,omitempty"` // 协作者的类型 1997 Name *string `json:"name,omitempty"` // 协作者的名字 1998 Avatar *string `json:"avatar,omitempty"` // 协作者的头像 1999 ExternalLabel *bool `json:"external_label,omitempty"` // 协作者的外部标签 2000 } 2001 2002 type MemberBuilder struct { 2003 memberType string // 协作者 ID 类型,与协作者 ID 需要对应 2004 memberTypeFlag bool 2005 memberId string // 协作者 ID,与协作者 ID 类型需要对应 2006 memberIdFlag bool 2007 perm string // 协作者对应的权限角色 2008 permFlag bool 2009 type_ string // 协作者的类型 2010 typeFlag bool 2011 name string // 协作者的名字 2012 nameFlag bool 2013 avatar string // 协作者的头像 2014 avatarFlag bool 2015 externalLabel bool // 协作者的外部标签 2016 externalLabelFlag bool 2017 } 2018 2019 func NewMemberBuilder() *MemberBuilder { 2020 builder := &MemberBuilder{} 2021 return builder 2022 } 2023 2024 // 协作者 ID 类型,与协作者 ID 需要对应 2025 // 2026 // 示例值:openid 2027 func (builder *MemberBuilder) MemberType(memberType string) *MemberBuilder { 2028 builder.memberType = memberType 2029 builder.memberTypeFlag = true 2030 return builder 2031 } 2032 2033 // 协作者 ID,与协作者 ID 类型需要对应 2034 // 2035 // 示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62 2036 func (builder *MemberBuilder) MemberId(memberId string) *MemberBuilder { 2037 builder.memberId = memberId 2038 builder.memberIdFlag = true 2039 return builder 2040 } 2041 2042 // 协作者对应的权限角色 2043 // 2044 // 示例值:view 2045 func (builder *MemberBuilder) Perm(perm string) *MemberBuilder { 2046 builder.perm = perm 2047 builder.permFlag = true 2048 return builder 2049 } 2050 2051 // 协作者的类型 2052 // 2053 // 示例值:user 2054 func (builder *MemberBuilder) Type(type_ string) *MemberBuilder { 2055 builder.type_ = type_ 2056 builder.typeFlag = true 2057 return builder 2058 } 2059 2060 // 协作者的名字 2061 // 2062 // 示例值:zhangsan 2063 func (builder *MemberBuilder) Name(name string) *MemberBuilder { 2064 builder.name = name 2065 builder.nameFlag = true 2066 return builder 2067 } 2068 2069 // 协作者的头像 2070 // 2071 // 示例值:https://foo.icon.com/xxxx 2072 func (builder *MemberBuilder) Avatar(avatar string) *MemberBuilder { 2073 builder.avatar = avatar 2074 builder.avatarFlag = true 2075 return builder 2076 } 2077 2078 // 协作者的外部标签 2079 // 2080 // 示例值:true 2081 func (builder *MemberBuilder) ExternalLabel(externalLabel bool) *MemberBuilder { 2082 builder.externalLabel = externalLabel 2083 builder.externalLabelFlag = true 2084 return builder 2085 } 2086 2087 func (builder *MemberBuilder) Build() *Member { 2088 req := &Member{} 2089 if builder.memberTypeFlag { 2090 req.MemberType = &builder.memberType 2091 2092 } 2093 if builder.memberIdFlag { 2094 req.MemberId = &builder.memberId 2095 2096 } 2097 if builder.permFlag { 2098 req.Perm = &builder.perm 2099 2100 } 2101 if builder.typeFlag { 2102 req.Type = &builder.type_ 2103 2104 } 2105 if builder.nameFlag { 2106 req.Name = &builder.name 2107 2108 } 2109 if builder.avatarFlag { 2110 req.Avatar = &builder.avatar 2111 2112 } 2113 if builder.externalLabelFlag { 2114 req.ExternalLabel = &builder.externalLabel 2115 2116 } 2117 return req 2118 } 2119 2120 type Meta struct { 2121 DocToken *string `json:"doc_token,omitempty"` // 文件token 2122 DocType *string `json:"doc_type,omitempty"` // 文件类型 2123 Title *string `json:"title,omitempty"` // 标题 2124 OwnerId *string `json:"owner_id,omitempty"` // 文件所有者 2125 CreateTime *string `json:"create_time,omitempty"` // 创建时间(Unix时间戳) 2126 LatestModifyUser *string `json:"latest_modify_user,omitempty"` // 最后编辑者 2127 LatestModifyTime *string `json:"latest_modify_time,omitempty"` // 最后编辑时间(Unix时间戳) 2128 Url *string `json:"url,omitempty"` // 文档链接 2129 } 2130 2131 type MetaBuilder struct { 2132 docToken string // 文件token 2133 docTokenFlag bool 2134 docType string // 文件类型 2135 docTypeFlag bool 2136 title string // 标题 2137 titleFlag bool 2138 ownerId string // 文件所有者 2139 ownerIdFlag bool 2140 createTime string // 创建时间(Unix时间戳) 2141 createTimeFlag bool 2142 latestModifyUser string // 最后编辑者 2143 latestModifyUserFlag bool 2144 latestModifyTime string // 最后编辑时间(Unix时间戳) 2145 latestModifyTimeFlag bool 2146 url string // 文档链接 2147 urlFlag bool 2148 } 2149 2150 func NewMetaBuilder() *MetaBuilder { 2151 builder := &MetaBuilder{} 2152 return builder 2153 } 2154 2155 // 文件token 2156 // 2157 // 示例值:doccnfYZzTlvXqZIGTdAHKabcef 2158 func (builder *MetaBuilder) DocToken(docToken string) *MetaBuilder { 2159 builder.docToken = docToken 2160 builder.docTokenFlag = true 2161 return builder 2162 } 2163 2164 // 文件类型 2165 // 2166 // 示例值:doc 2167 func (builder *MetaBuilder) DocType(docType string) *MetaBuilder { 2168 builder.docType = docType 2169 builder.docTypeFlag = true 2170 return builder 2171 } 2172 2173 // 标题 2174 // 2175 // 示例值:sampletitle 2176 func (builder *MetaBuilder) Title(title string) *MetaBuilder { 2177 builder.title = title 2178 builder.titleFlag = true 2179 return builder 2180 } 2181 2182 // 文件所有者 2183 // 2184 // 示例值:ou_b13d41c02edc52ce66aaae67bf1abcef 2185 func (builder *MetaBuilder) OwnerId(ownerId string) *MetaBuilder { 2186 builder.ownerId = ownerId 2187 builder.ownerIdFlag = true 2188 return builder 2189 } 2190 2191 // 创建时间(Unix时间戳) 2192 // 2193 // 示例值:1652066345 2194 func (builder *MetaBuilder) CreateTime(createTime string) *MetaBuilder { 2195 builder.createTime = createTime 2196 builder.createTimeFlag = true 2197 return builder 2198 } 2199 2200 // 最后编辑者 2201 // 2202 // 示例值:ou_b13d41c02edc52ce66aaae67bf1abcef 2203 func (builder *MetaBuilder) LatestModifyUser(latestModifyUser string) *MetaBuilder { 2204 builder.latestModifyUser = latestModifyUser 2205 builder.latestModifyUserFlag = true 2206 return builder 2207 } 2208 2209 // 最后编辑时间(Unix时间戳) 2210 // 2211 // 示例值:1652066345 2212 func (builder *MetaBuilder) LatestModifyTime(latestModifyTime string) *MetaBuilder { 2213 builder.latestModifyTime = latestModifyTime 2214 builder.latestModifyTimeFlag = true 2215 return builder 2216 } 2217 2218 // 文档链接 2219 // 2220 // 示例值:https://sample.feishu.cn/docs/doccnfYZzTlvXqZIGTdAHKabcef 2221 func (builder *MetaBuilder) Url(url string) *MetaBuilder { 2222 builder.url = url 2223 builder.urlFlag = true 2224 return builder 2225 } 2226 2227 func (builder *MetaBuilder) Build() *Meta { 2228 req := &Meta{} 2229 if builder.docTokenFlag { 2230 req.DocToken = &builder.docToken 2231 2232 } 2233 if builder.docTypeFlag { 2234 req.DocType = &builder.docType 2235 2236 } 2237 if builder.titleFlag { 2238 req.Title = &builder.title 2239 2240 } 2241 if builder.ownerIdFlag { 2242 req.OwnerId = &builder.ownerId 2243 2244 } 2245 if builder.createTimeFlag { 2246 req.CreateTime = &builder.createTime 2247 2248 } 2249 if builder.latestModifyUserFlag { 2250 req.LatestModifyUser = &builder.latestModifyUser 2251 2252 } 2253 if builder.latestModifyTimeFlag { 2254 req.LatestModifyTime = &builder.latestModifyTime 2255 2256 } 2257 if builder.urlFlag { 2258 req.Url = &builder.url 2259 2260 } 2261 return req 2262 } 2263 2264 type MetaFailed struct { 2265 Token *string `json:"token,omitempty"` // 获取元数据失败的文档token 2266 Code *int `json:"code,omitempty"` // 获取元数据失败的错误码 2267 } 2268 2269 type MetaFailedBuilder struct { 2270 token string // 获取元数据失败的文档token 2271 tokenFlag bool 2272 code int // 获取元数据失败的错误码 2273 codeFlag bool 2274 } 2275 2276 func NewMetaFailedBuilder() *MetaFailedBuilder { 2277 builder := &MetaFailedBuilder{} 2278 return builder 2279 } 2280 2281 // 获取元数据失败的文档token 2282 // 2283 // 示例值:boxcnrHpsg1QDqXAAAyachabcef 2284 func (builder *MetaFailedBuilder) Token(token string) *MetaFailedBuilder { 2285 builder.token = token 2286 builder.tokenFlag = true 2287 return builder 2288 } 2289 2290 // 获取元数据失败的错误码 2291 // 2292 // 示例值:970005 2293 func (builder *MetaFailedBuilder) Code(code int) *MetaFailedBuilder { 2294 builder.code = code 2295 builder.codeFlag = true 2296 return builder 2297 } 2298 2299 func (builder *MetaFailedBuilder) Build() *MetaFailed { 2300 req := &MetaFailed{} 2301 if builder.tokenFlag { 2302 req.Token = &builder.token 2303 2304 } 2305 if builder.codeFlag { 2306 req.Code = &builder.code 2307 2308 } 2309 return req 2310 } 2311 2312 type MetaRequest struct { 2313 RequestDocs []*RequestDoc `json:"request_docs,omitempty"` // 请求文档, 一次不超过200个 2314 WithUrl *bool `json:"with_url,omitempty"` // 是否获取文档链接 2315 } 2316 2317 type MetaRequestBuilder struct { 2318 requestDocs []*RequestDoc // 请求文档, 一次不超过200个 2319 requestDocsFlag bool 2320 withUrl bool // 是否获取文档链接 2321 withUrlFlag bool 2322 } 2323 2324 func NewMetaRequestBuilder() *MetaRequestBuilder { 2325 builder := &MetaRequestBuilder{} 2326 return builder 2327 } 2328 2329 // 请求文档, 一次不超过200个 2330 // 2331 // 示例值: 2332 func (builder *MetaRequestBuilder) RequestDocs(requestDocs []*RequestDoc) *MetaRequestBuilder { 2333 builder.requestDocs = requestDocs 2334 builder.requestDocsFlag = true 2335 return builder 2336 } 2337 2338 // 是否获取文档链接 2339 // 2340 // 示例值:false 2341 func (builder *MetaRequestBuilder) WithUrl(withUrl bool) *MetaRequestBuilder { 2342 builder.withUrl = withUrl 2343 builder.withUrlFlag = true 2344 return builder 2345 } 2346 2347 func (builder *MetaRequestBuilder) Build() *MetaRequest { 2348 req := &MetaRequest{} 2349 if builder.requestDocsFlag { 2350 req.RequestDocs = builder.requestDocs 2351 } 2352 if builder.withUrlFlag { 2353 req.WithUrl = &builder.withUrl 2354 2355 } 2356 return req 2357 } 2358 2359 type Owner struct { 2360 MemberType *string `json:"member_type,omitempty"` // 文档拥有者的ID类型 2361 MemberId *string `json:"member_id,omitempty"` // 文档拥有者的ID,与文档拥有者的ID类型需要对应 2362 } 2363 2364 type OwnerBuilder struct { 2365 memberType string // 文档拥有者的ID类型 2366 memberTypeFlag bool 2367 memberId string // 文档拥有者的ID,与文档拥有者的ID类型需要对应 2368 memberIdFlag bool 2369 } 2370 2371 func NewOwnerBuilder() *OwnerBuilder { 2372 builder := &OwnerBuilder{} 2373 return builder 2374 } 2375 2376 // 文档拥有者的ID类型 2377 // 2378 // 示例值:openid 2379 func (builder *OwnerBuilder) MemberType(memberType string) *OwnerBuilder { 2380 builder.memberType = memberType 2381 builder.memberTypeFlag = true 2382 return builder 2383 } 2384 2385 // 文档拥有者的ID,与文档拥有者的ID类型需要对应 2386 // 2387 // 示例值:string 2388 func (builder *OwnerBuilder) MemberId(memberId string) *OwnerBuilder { 2389 builder.memberId = memberId 2390 builder.memberIdFlag = true 2391 return builder 2392 } 2393 2394 func (builder *OwnerBuilder) Build() *Owner { 2395 req := &Owner{} 2396 if builder.memberTypeFlag { 2397 req.MemberType = &builder.memberType 2398 2399 } 2400 if builder.memberIdFlag { 2401 req.MemberId = &builder.memberId 2402 2403 } 2404 return req 2405 } 2406 2407 type PermissionPublic struct { 2408 ExternalAccess *bool `json:"external_access,omitempty"` // 允许内容被分享到组织外;;**可选值有:** ;- `true`: 允许;- `false`: 不允许 2409 SecurityEntity *string `json:"security_entity,omitempty"` // 谁可以复制内容、创建副本、打印、下载 2410 CommentEntity *string `json:"comment_entity,omitempty"` // 可评论设置 2411 ShareEntity *string `json:"share_entity,omitempty"` // 谁可以添加和管理协作者 2412 LinkShareEntity *string `json:"link_share_entity,omitempty"` // 链接分享设置 2413 InviteExternal *bool `json:"invite_external,omitempty"` // 允许非「可管理权限」的人分享到组织外 2414 LockSwitch *bool `json:"lock_switch,omitempty"` // 节点加锁状态 2415 } 2416 2417 type PermissionPublicBuilder struct { 2418 externalAccess bool // 允许内容被分享到组织外;;**可选值有:** ;- `true`: 允许;- `false`: 不允许 2419 externalAccessFlag bool 2420 securityEntity string // 谁可以复制内容、创建副本、打印、下载 2421 securityEntityFlag bool 2422 commentEntity string // 可评论设置 2423 commentEntityFlag bool 2424 shareEntity string // 谁可以添加和管理协作者 2425 shareEntityFlag bool 2426 linkShareEntity string // 链接分享设置 2427 linkShareEntityFlag bool 2428 inviteExternal bool // 允许非「可管理权限」的人分享到组织外 2429 inviteExternalFlag bool 2430 lockSwitch bool // 节点加锁状态 2431 lockSwitchFlag bool 2432 } 2433 2434 func NewPermissionPublicBuilder() *PermissionPublicBuilder { 2435 builder := &PermissionPublicBuilder{} 2436 return builder 2437 } 2438 2439 // 允许内容被分享到组织外;;**可选值有:** ;- `true`: 允许;- `false`: 不允许 2440 // 2441 // 示例值:true 2442 func (builder *PermissionPublicBuilder) ExternalAccess(externalAccess bool) *PermissionPublicBuilder { 2443 builder.externalAccess = externalAccess 2444 builder.externalAccessFlag = true 2445 return builder 2446 } 2447 2448 // 谁可以复制内容、创建副本、打印、下载 2449 // 2450 // 示例值:anyone_can_view 2451 func (builder *PermissionPublicBuilder) SecurityEntity(securityEntity string) *PermissionPublicBuilder { 2452 builder.securityEntity = securityEntity 2453 builder.securityEntityFlag = true 2454 return builder 2455 } 2456 2457 // 可评论设置 2458 // 2459 // 示例值:anyone_can_view 2460 func (builder *PermissionPublicBuilder) CommentEntity(commentEntity string) *PermissionPublicBuilder { 2461 builder.commentEntity = commentEntity 2462 builder.commentEntityFlag = true 2463 return builder 2464 } 2465 2466 // 谁可以添加和管理协作者 2467 // 2468 // 示例值:anyone 2469 func (builder *PermissionPublicBuilder) ShareEntity(shareEntity string) *PermissionPublicBuilder { 2470 builder.shareEntity = shareEntity 2471 builder.shareEntityFlag = true 2472 return builder 2473 } 2474 2475 // 链接分享设置 2476 // 2477 // 示例值:tenant_readable 2478 func (builder *PermissionPublicBuilder) LinkShareEntity(linkShareEntity string) *PermissionPublicBuilder { 2479 builder.linkShareEntity = linkShareEntity 2480 builder.linkShareEntityFlag = true 2481 return builder 2482 } 2483 2484 // 允许非「可管理权限」的人分享到组织外 2485 // 2486 // 示例值:true 2487 func (builder *PermissionPublicBuilder) InviteExternal(inviteExternal bool) *PermissionPublicBuilder { 2488 builder.inviteExternal = inviteExternal 2489 builder.inviteExternalFlag = true 2490 return builder 2491 } 2492 2493 // 节点加锁状态 2494 // 2495 // 示例值:false 2496 func (builder *PermissionPublicBuilder) LockSwitch(lockSwitch bool) *PermissionPublicBuilder { 2497 builder.lockSwitch = lockSwitch 2498 builder.lockSwitchFlag = true 2499 return builder 2500 } 2501 2502 func (builder *PermissionPublicBuilder) Build() *PermissionPublic { 2503 req := &PermissionPublic{} 2504 if builder.externalAccessFlag { 2505 req.ExternalAccess = &builder.externalAccess 2506 2507 } 2508 if builder.securityEntityFlag { 2509 req.SecurityEntity = &builder.securityEntity 2510 2511 } 2512 if builder.commentEntityFlag { 2513 req.CommentEntity = &builder.commentEntity 2514 2515 } 2516 if builder.shareEntityFlag { 2517 req.ShareEntity = &builder.shareEntity 2518 2519 } 2520 if builder.linkShareEntityFlag { 2521 req.LinkShareEntity = &builder.linkShareEntity 2522 2523 } 2524 if builder.inviteExternalFlag { 2525 req.InviteExternal = &builder.inviteExternal 2526 2527 } 2528 if builder.lockSwitchFlag { 2529 req.LockSwitch = &builder.lockSwitch 2530 2531 } 2532 return req 2533 } 2534 2535 type PermissionPublicRequest struct { 2536 ExternalAccess *bool `json:"external_access,omitempty"` // 允许内容被分享到组织外 2537 SecurityEntity *string `json:"security_entity,omitempty"` // 谁可以复制内容、创建副本、打印、下载 2538 CommentEntity *string `json:"comment_entity,omitempty"` // 谁可以评论 2539 ShareEntity *string `json:"share_entity,omitempty"` // 谁可以添加和管理协作者 2540 LinkShareEntity *string `json:"link_share_entity,omitempty"` // 链接分享设置 2541 InviteExternal *bool `json:"invite_external,omitempty"` // 允许非「可管理权限」的人分享到组织外 2542 } 2543 2544 type PermissionPublicRequestBuilder struct { 2545 externalAccess bool // 允许内容被分享到组织外 2546 externalAccessFlag bool 2547 securityEntity string // 谁可以复制内容、创建副本、打印、下载 2548 securityEntityFlag bool 2549 commentEntity string // 谁可以评论 2550 commentEntityFlag bool 2551 shareEntity string // 谁可以添加和管理协作者 2552 shareEntityFlag bool 2553 linkShareEntity string // 链接分享设置 2554 linkShareEntityFlag bool 2555 inviteExternal bool // 允许非「可管理权限」的人分享到组织外 2556 inviteExternalFlag bool 2557 } 2558 2559 func NewPermissionPublicRequestBuilder() *PermissionPublicRequestBuilder { 2560 builder := &PermissionPublicRequestBuilder{} 2561 return builder 2562 } 2563 2564 // 允许内容被分享到组织外 2565 // 2566 // 示例值:true 2567 func (builder *PermissionPublicRequestBuilder) ExternalAccess(externalAccess bool) *PermissionPublicRequestBuilder { 2568 builder.externalAccess = externalAccess 2569 builder.externalAccessFlag = true 2570 return builder 2571 } 2572 2573 // 谁可以复制内容、创建副本、打印、下载 2574 // 2575 // 示例值:anyone_can_view 2576 func (builder *PermissionPublicRequestBuilder) SecurityEntity(securityEntity string) *PermissionPublicRequestBuilder { 2577 builder.securityEntity = securityEntity 2578 builder.securityEntityFlag = true 2579 return builder 2580 } 2581 2582 // 谁可以评论 2583 // 2584 // 示例值:anyone_can_view 2585 func (builder *PermissionPublicRequestBuilder) CommentEntity(commentEntity string) *PermissionPublicRequestBuilder { 2586 builder.commentEntity = commentEntity 2587 builder.commentEntityFlag = true 2588 return builder 2589 } 2590 2591 // 谁可以添加和管理协作者 2592 // 2593 // 示例值:anyone 2594 func (builder *PermissionPublicRequestBuilder) ShareEntity(shareEntity string) *PermissionPublicRequestBuilder { 2595 builder.shareEntity = shareEntity 2596 builder.shareEntityFlag = true 2597 return builder 2598 } 2599 2600 // 链接分享设置 2601 // 2602 // 示例值:tenant_readable 2603 func (builder *PermissionPublicRequestBuilder) LinkShareEntity(linkShareEntity string) *PermissionPublicRequestBuilder { 2604 builder.linkShareEntity = linkShareEntity 2605 builder.linkShareEntityFlag = true 2606 return builder 2607 } 2608 2609 // 允许非「可管理权限」的人分享到组织外 2610 // 2611 // 示例值:true 2612 func (builder *PermissionPublicRequestBuilder) InviteExternal(inviteExternal bool) *PermissionPublicRequestBuilder { 2613 builder.inviteExternal = inviteExternal 2614 builder.inviteExternalFlag = true 2615 return builder 2616 } 2617 2618 func (builder *PermissionPublicRequestBuilder) Build() *PermissionPublicRequest { 2619 req := &PermissionPublicRequest{} 2620 if builder.externalAccessFlag { 2621 req.ExternalAccess = &builder.externalAccess 2622 2623 } 2624 if builder.securityEntityFlag { 2625 req.SecurityEntity = &builder.securityEntity 2626 2627 } 2628 if builder.commentEntityFlag { 2629 req.CommentEntity = &builder.commentEntity 2630 2631 } 2632 if builder.shareEntityFlag { 2633 req.ShareEntity = &builder.shareEntity 2634 2635 } 2636 if builder.linkShareEntityFlag { 2637 req.LinkShareEntity = &builder.linkShareEntity 2638 2639 } 2640 if builder.inviteExternalFlag { 2641 req.InviteExternal = &builder.inviteExternal 2642 2643 } 2644 return req 2645 } 2646 2647 type Person struct { 2648 UserId *string `json:"user_id,omitempty"` // 回复 at联系人 2649 } 2650 2651 type PersonBuilder struct { 2652 userId string // 回复 at联系人 2653 userIdFlag bool 2654 } 2655 2656 func NewPersonBuilder() *PersonBuilder { 2657 builder := &PersonBuilder{} 2658 return builder 2659 } 2660 2661 // 回复 at联系人 2662 // 2663 // 示例值:ou_cc19b2bfb93f8a44db4b4d6eababcef 2664 func (builder *PersonBuilder) UserId(userId string) *PersonBuilder { 2665 builder.userId = userId 2666 builder.userIdFlag = true 2667 return builder 2668 } 2669 2670 func (builder *PersonBuilder) Build() *Person { 2671 req := &Person{} 2672 if builder.userIdFlag { 2673 req.UserId = &builder.userId 2674 2675 } 2676 return req 2677 } 2678 2679 type Property struct { 2680 Key *string `json:"key,omitempty"` // 自定义属性键对象 2681 Value *string `json:"value,omitempty"` // 自定义属性值对象 2682 } 2683 2684 type PropertyBuilder struct { 2685 key string // 自定义属性键对象 2686 keyFlag bool 2687 value string // 自定义属性值对象 2688 valueFlag bool 2689 } 2690 2691 func NewPropertyBuilder() *PropertyBuilder { 2692 builder := &PropertyBuilder{} 2693 return builder 2694 } 2695 2696 // 自定义属性键对象 2697 // 2698 // 示例值: 2699 func (builder *PropertyBuilder) Key(key string) *PropertyBuilder { 2700 builder.key = key 2701 builder.keyFlag = true 2702 return builder 2703 } 2704 2705 // 自定义属性值对象 2706 // 2707 // 示例值: 2708 func (builder *PropertyBuilder) Value(value string) *PropertyBuilder { 2709 builder.value = value 2710 builder.valueFlag = true 2711 return builder 2712 } 2713 2714 func (builder *PropertyBuilder) Build() *Property { 2715 req := &Property{} 2716 if builder.keyFlag { 2717 req.Key = &builder.key 2718 2719 } 2720 if builder.valueFlag { 2721 req.Value = &builder.value 2722 2723 } 2724 return req 2725 } 2726 2727 type ReplyContent struct { 2728 Elements []*ReplyElement `json:"elements,omitempty"` // 回复的内容 2729 } 2730 2731 type ReplyContentBuilder struct { 2732 elements []*ReplyElement // 回复的内容 2733 elementsFlag bool 2734 } 2735 2736 func NewReplyContentBuilder() *ReplyContentBuilder { 2737 builder := &ReplyContentBuilder{} 2738 return builder 2739 } 2740 2741 // 回复的内容 2742 // 2743 // 示例值: 2744 func (builder *ReplyContentBuilder) Elements(elements []*ReplyElement) *ReplyContentBuilder { 2745 builder.elements = elements 2746 builder.elementsFlag = true 2747 return builder 2748 } 2749 2750 func (builder *ReplyContentBuilder) Build() *ReplyContent { 2751 req := &ReplyContent{} 2752 if builder.elementsFlag { 2753 req.Elements = builder.elements 2754 } 2755 return req 2756 } 2757 2758 type ReplyElement struct { 2759 Type *string `json:"type,omitempty"` // 回复的内容元素 2760 TextRun *TextRun `json:"text_run,omitempty"` // 文本内容 2761 DocsLink *DocsLink `json:"docs_link,omitempty"` // 文本内容 2762 Person *Person `json:"person,omitempty"` // 文本内容 2763 } 2764 2765 type ReplyElementBuilder struct { 2766 type_ string // 回复的内容元素 2767 typeFlag bool 2768 textRun *TextRun // 文本内容 2769 textRunFlag bool 2770 docsLink *DocsLink // 文本内容 2771 docsLinkFlag bool 2772 person *Person // 文本内容 2773 personFlag bool 2774 } 2775 2776 func NewReplyElementBuilder() *ReplyElementBuilder { 2777 builder := &ReplyElementBuilder{} 2778 return builder 2779 } 2780 2781 // 回复的内容元素 2782 // 2783 // 示例值:text_run 2784 func (builder *ReplyElementBuilder) Type(type_ string) *ReplyElementBuilder { 2785 builder.type_ = type_ 2786 builder.typeFlag = true 2787 return builder 2788 } 2789 2790 // 文本内容 2791 // 2792 // 示例值: 2793 func (builder *ReplyElementBuilder) TextRun(textRun *TextRun) *ReplyElementBuilder { 2794 builder.textRun = textRun 2795 builder.textRunFlag = true 2796 return builder 2797 } 2798 2799 // 文本内容 2800 // 2801 // 示例值: 2802 func (builder *ReplyElementBuilder) DocsLink(docsLink *DocsLink) *ReplyElementBuilder { 2803 builder.docsLink = docsLink 2804 builder.docsLinkFlag = true 2805 return builder 2806 } 2807 2808 // 文本内容 2809 // 2810 // 示例值: 2811 func (builder *ReplyElementBuilder) Person(person *Person) *ReplyElementBuilder { 2812 builder.person = person 2813 builder.personFlag = true 2814 return builder 2815 } 2816 2817 func (builder *ReplyElementBuilder) Build() *ReplyElement { 2818 req := &ReplyElement{} 2819 if builder.typeFlag { 2820 req.Type = &builder.type_ 2821 2822 } 2823 if builder.textRunFlag { 2824 req.TextRun = builder.textRun 2825 } 2826 if builder.docsLinkFlag { 2827 req.DocsLink = builder.docsLink 2828 } 2829 if builder.personFlag { 2830 req.Person = builder.person 2831 } 2832 return req 2833 } 2834 2835 type ReplyExtra struct { 2836 ImageList []string `json:"image_list,omitempty"` // 评论中的图片token list 2837 } 2838 2839 type ReplyExtraBuilder struct { 2840 imageList []string // 评论中的图片token list 2841 imageListFlag bool 2842 } 2843 2844 func NewReplyExtraBuilder() *ReplyExtraBuilder { 2845 builder := &ReplyExtraBuilder{} 2846 return builder 2847 } 2848 2849 // 评论中的图片token list 2850 // 2851 // 示例值: 2852 func (builder *ReplyExtraBuilder) ImageList(imageList []string) *ReplyExtraBuilder { 2853 builder.imageList = imageList 2854 builder.imageListFlag = true 2855 return builder 2856 } 2857 2858 func (builder *ReplyExtraBuilder) Build() *ReplyExtra { 2859 req := &ReplyExtra{} 2860 if builder.imageListFlag { 2861 req.ImageList = builder.imageList 2862 } 2863 return req 2864 } 2865 2866 type ReplyList struct { 2867 Replies []*FileCommentReply `json:"replies,omitempty"` // 回复列表 2868 } 2869 2870 type ReplyListBuilder struct { 2871 replies []*FileCommentReply // 回复列表 2872 repliesFlag bool 2873 } 2874 2875 func NewReplyListBuilder() *ReplyListBuilder { 2876 builder := &ReplyListBuilder{} 2877 return builder 2878 } 2879 2880 // 回复列表 2881 // 2882 // 示例值: 2883 func (builder *ReplyListBuilder) Replies(replies []*FileCommentReply) *ReplyListBuilder { 2884 builder.replies = replies 2885 builder.repliesFlag = true 2886 return builder 2887 } 2888 2889 func (builder *ReplyListBuilder) Build() *ReplyList { 2890 req := &ReplyList{} 2891 if builder.repliesFlag { 2892 req.Replies = builder.replies 2893 } 2894 return req 2895 } 2896 2897 type RequestDoc struct { 2898 DocToken *string `json:"doc_token,omitempty"` // 文件的 token,获取方式见[如何获取云文档资源相关 token](/ssl:ttdoc/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) 2899 DocType *string `json:"doc_type,omitempty"` // 文件类型 2900 } 2901 2902 type RequestDocBuilder struct { 2903 docToken string // 文件的 token,获取方式见[如何获取云文档资源相关 token](/ssl:ttdoc/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) 2904 docTokenFlag bool 2905 docType string // 文件类型 2906 docTypeFlag bool 2907 } 2908 2909 func NewRequestDocBuilder() *RequestDocBuilder { 2910 builder := &RequestDocBuilder{} 2911 return builder 2912 } 2913 2914 // 文件的 token,获取方式见[如何获取云文档资源相关 token](/ssl:ttdoc/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) 2915 // 2916 // 示例值:doccnfYZzTlvXqZIGTdAHKabcef 2917 func (builder *RequestDocBuilder) DocToken(docToken string) *RequestDocBuilder { 2918 builder.docToken = docToken 2919 builder.docTokenFlag = true 2920 return builder 2921 } 2922 2923 // 文件类型 2924 // 2925 // 示例值:doc 2926 func (builder *RequestDocBuilder) DocType(docType string) *RequestDocBuilder { 2927 builder.docType = docType 2928 builder.docTypeFlag = true 2929 return builder 2930 } 2931 2932 func (builder *RequestDocBuilder) Build() *RequestDoc { 2933 req := &RequestDoc{} 2934 if builder.docTokenFlag { 2935 req.DocToken = &builder.docToken 2936 2937 } 2938 if builder.docTypeFlag { 2939 req.DocType = &builder.docType 2940 2941 } 2942 return req 2943 } 2944 2945 type ShortcutInfo struct { 2946 TargetType *string `json:"target_type,omitempty"` // 快捷方式指向的原文件类型 2947 TargetToken *string `json:"target_token,omitempty"` // 快捷方式指向的原文件token 2948 } 2949 2950 type ShortcutInfoBuilder struct { 2951 targetType string // 快捷方式指向的原文件类型 2952 targetTypeFlag bool 2953 targetToken string // 快捷方式指向的原文件token 2954 targetTokenFlag bool 2955 } 2956 2957 func NewShortcutInfoBuilder() *ShortcutInfoBuilder { 2958 builder := &ShortcutInfoBuilder{} 2959 return builder 2960 } 2961 2962 // 快捷方式指向的原文件类型 2963 // 2964 // 示例值: 2965 func (builder *ShortcutInfoBuilder) TargetType(targetType string) *ShortcutInfoBuilder { 2966 builder.targetType = targetType 2967 builder.targetTypeFlag = true 2968 return builder 2969 } 2970 2971 // 快捷方式指向的原文件token 2972 // 2973 // 示例值: 2974 func (builder *ShortcutInfoBuilder) TargetToken(targetToken string) *ShortcutInfoBuilder { 2975 builder.targetToken = targetToken 2976 builder.targetTokenFlag = true 2977 return builder 2978 } 2979 2980 func (builder *ShortcutInfoBuilder) Build() *ShortcutInfo { 2981 req := &ShortcutInfo{} 2982 if builder.targetTypeFlag { 2983 req.TargetType = &builder.targetType 2984 2985 } 2986 if builder.targetTokenFlag { 2987 req.TargetToken = &builder.targetToken 2988 2989 } 2990 return req 2991 } 2992 2993 type TextRun struct { 2994 Text *string `json:"text,omitempty"` // 回复 普通文本 2995 } 2996 2997 type TextRunBuilder struct { 2998 text string // 回复 普通文本 2999 textFlag bool 3000 } 3001 3002 func NewTextRunBuilder() *TextRunBuilder { 3003 builder := &TextRunBuilder{} 3004 return builder 3005 } 3006 3007 // 回复 普通文本 3008 // 3009 // 示例值:comment text 3010 func (builder *TextRunBuilder) Text(text string) *TextRunBuilder { 3011 builder.text = text 3012 builder.textFlag = true 3013 return builder 3014 } 3015 3016 func (builder *TextRunBuilder) Build() *TextRun { 3017 req := &TextRun{} 3018 if builder.textFlag { 3019 req.Text = &builder.text 3020 3021 } 3022 return req 3023 } 3024 3025 type TmpDownloadUrl struct { 3026 FileToken *string `json:"file_token,omitempty"` // 文件标识符 3027 TmpDownloadUrl *string `json:"tmp_download_url,omitempty"` // 文件临时下载链接 3028 } 3029 3030 type TmpDownloadUrlBuilder struct { 3031 fileToken string // 文件标识符 3032 fileTokenFlag bool 3033 tmpDownloadUrl string // 文件临时下载链接 3034 tmpDownloadUrlFlag bool 3035 } 3036 3037 func NewTmpDownloadUrlBuilder() *TmpDownloadUrlBuilder { 3038 builder := &TmpDownloadUrlBuilder{} 3039 return builder 3040 } 3041 3042 // 文件标识符 3043 // 3044 // 示例值:boxcnrHpsg1QDqXAAAyachabcef 3045 func (builder *TmpDownloadUrlBuilder) FileToken(fileToken string) *TmpDownloadUrlBuilder { 3046 builder.fileToken = fileToken 3047 builder.fileTokenFlag = true 3048 return builder 3049 } 3050 3051 // 文件临时下载链接 3052 // 3053 // 示例值:https://internal-api-drive-stream.feishu.cn/space/api/box/stream/download/authcode/?code=ZDA3MzNiNmUwMjE2MGUzZmQ1OGZlOWYzMWQ4YmI0ZjdfMDYzOWNlZjgyMmI1MmY5NTUxZmM0MjJlYWIyMGVjOWZfSUQ6Njk3NjgzMTY0Mjc5OTI5MjQyMl8xNjI0NDMxMDY3OjE2MjQ1MTc0NjdfVjM 3054 func (builder *TmpDownloadUrlBuilder) TmpDownloadUrl(tmpDownloadUrl string) *TmpDownloadUrlBuilder { 3055 builder.tmpDownloadUrl = tmpDownloadUrl 3056 builder.tmpDownloadUrlFlag = true 3057 return builder 3058 } 3059 3060 func (builder *TmpDownloadUrlBuilder) Build() *TmpDownloadUrl { 3061 req := &TmpDownloadUrl{} 3062 if builder.fileTokenFlag { 3063 req.FileToken = &builder.fileToken 3064 3065 } 3066 if builder.tmpDownloadUrlFlag { 3067 req.TmpDownloadUrl = &builder.tmpDownloadUrl 3068 3069 } 3070 return req 3071 } 3072 3073 type TokenType struct { 3074 Token *string `json:"token,omitempty"` // 文件的 token,获取方式见 [对接前说明](/ssl:ttdoc/ukTMukTMukTM/uczNzUjL3czM14yN3MTN)的第 4 项 3075 Type *string `json:"type,omitempty"` // 文档类型 "isv" 3076 } 3077 3078 type TokenTypeBuilder struct { 3079 token string // 文件的 token,获取方式见 [对接前说明](/ssl:ttdoc/ukTMukTMukTM/uczNzUjL3czM14yN3MTN)的第 4 项 3080 tokenFlag bool 3081 type_ string // 文档类型 "isv" 3082 typeFlag bool 3083 } 3084 3085 func NewTokenTypeBuilder() *TokenTypeBuilder { 3086 builder := &TokenTypeBuilder{} 3087 return builder 3088 } 3089 3090 // 文件的 token,获取方式见 [对接前说明](/ssl:ttdoc/ukTMukTMukTM/uczNzUjL3czM14yN3MTN)的第 4 项 3091 // 3092 // 示例值:isvcnBKgoMyY5OMbUG6FioTXuBe 3093 func (builder *TokenTypeBuilder) Token(token string) *TokenTypeBuilder { 3094 builder.token = token 3095 builder.tokenFlag = true 3096 return builder 3097 } 3098 3099 // 文档类型 "isv" 3100 // 3101 // 示例值:isv 3102 func (builder *TokenTypeBuilder) Type(type_ string) *TokenTypeBuilder { 3103 builder.type_ = type_ 3104 builder.typeFlag = true 3105 return builder 3106 } 3107 3108 func (builder *TokenTypeBuilder) Build() *TokenType { 3109 req := &TokenType{} 3110 if builder.tokenFlag { 3111 req.Token = &builder.token 3112 3113 } 3114 if builder.typeFlag { 3115 req.Type = &builder.type_ 3116 3117 } 3118 return req 3119 } 3120 3121 type UploadInfo struct { 3122 FileName *string `json:"file_name,omitempty"` // 文件名 3123 ParentType *string `json:"parent_type,omitempty"` // 父节点类型(父文件系统类型) 3124 ParentNode *string `json:"parent_node,omitempty"` // 父节点 3125 Size *int `json:"size,omitempty"` // 文件大小 3126 } 3127 3128 type UploadInfoBuilder struct { 3129 fileName string // 文件名 3130 fileNameFlag bool 3131 parentType string // 父节点类型(父文件系统类型) 3132 parentTypeFlag bool 3133 parentNode string // 父节点 3134 parentNodeFlag bool 3135 size int // 文件大小 3136 sizeFlag bool 3137 } 3138 3139 func NewUploadInfoBuilder() *UploadInfoBuilder { 3140 builder := &UploadInfoBuilder{} 3141 return builder 3142 } 3143 3144 // 文件名 3145 // 3146 // 示例值: 3147 func (builder *UploadInfoBuilder) FileName(fileName string) *UploadInfoBuilder { 3148 builder.fileName = fileName 3149 builder.fileNameFlag = true 3150 return builder 3151 } 3152 3153 // 父节点类型(父文件系统类型) 3154 // 3155 // 示例值: 3156 func (builder *UploadInfoBuilder) ParentType(parentType string) *UploadInfoBuilder { 3157 builder.parentType = parentType 3158 builder.parentTypeFlag = true 3159 return builder 3160 } 3161 3162 // 父节点 3163 // 3164 // 示例值: 3165 func (builder *UploadInfoBuilder) ParentNode(parentNode string) *UploadInfoBuilder { 3166 builder.parentNode = parentNode 3167 builder.parentNodeFlag = true 3168 return builder 3169 } 3170 3171 // 文件大小 3172 // 3173 // 示例值: 3174 func (builder *UploadInfoBuilder) Size(size int) *UploadInfoBuilder { 3175 builder.size = size 3176 builder.sizeFlag = true 3177 return builder 3178 } 3179 3180 func (builder *UploadInfoBuilder) Build() *UploadInfo { 3181 req := &UploadInfo{} 3182 if builder.fileNameFlag { 3183 req.FileName = &builder.fileName 3184 3185 } 3186 if builder.parentTypeFlag { 3187 req.ParentType = &builder.parentType 3188 3189 } 3190 if builder.parentNodeFlag { 3191 req.ParentNode = &builder.parentNode 3192 3193 } 3194 if builder.sizeFlag { 3195 req.Size = &builder.size 3196 3197 } 3198 return req 3199 } 3200 3201 type UserId struct { 3202 UserId *string `json:"user_id,omitempty"` // 3203 OpenId *string `json:"open_id,omitempty"` // 3204 UnionId *string `json:"union_id,omitempty"` // 3205 } 3206 3207 type UserIdBuilder struct { 3208 userId string // 3209 userIdFlag bool 3210 openId string // 3211 openIdFlag bool 3212 unionId string // 3213 unionIdFlag bool 3214 } 3215 3216 func NewUserIdBuilder() *UserIdBuilder { 3217 builder := &UserIdBuilder{} 3218 return builder 3219 } 3220 3221 // 3222 // 3223 // 示例值: 3224 func (builder *UserIdBuilder) UserId(userId string) *UserIdBuilder { 3225 builder.userId = userId 3226 builder.userIdFlag = true 3227 return builder 3228 } 3229 3230 // 3231 // 3232 // 示例值: 3233 func (builder *UserIdBuilder) OpenId(openId string) *UserIdBuilder { 3234 builder.openId = openId 3235 builder.openIdFlag = true 3236 return builder 3237 } 3238 3239 // 3240 // 3241 // 示例值: 3242 func (builder *UserIdBuilder) UnionId(unionId string) *UserIdBuilder { 3243 builder.unionId = unionId 3244 builder.unionIdFlag = true 3245 return builder 3246 } 3247 3248 func (builder *UserIdBuilder) Build() *UserId { 3249 req := &UserId{} 3250 if builder.userIdFlag { 3251 req.UserId = &builder.userId 3252 3253 } 3254 if builder.openIdFlag { 3255 req.OpenId = &builder.openId 3256 3257 } 3258 if builder.unionIdFlag { 3259 req.UnionId = &builder.unionId 3260 3261 } 3262 return req 3263 } 3264 3265 type CreateExportTaskReqBuilder struct { 3266 apiReq *larkcore.ApiReq 3267 exportTask *ExportTask 3268 } 3269 3270 func NewCreateExportTaskReqBuilder() *CreateExportTaskReqBuilder { 3271 builder := &CreateExportTaskReqBuilder{} 3272 builder.apiReq = &larkcore.ApiReq{ 3273 PathParams: larkcore.PathParams{}, 3274 QueryParams: larkcore.QueryParams{}, 3275 } 3276 return builder 3277 } 3278 3279 // 创建导出任务,将云文档导出为文件 3280 func (builder *CreateExportTaskReqBuilder) ExportTask(exportTask *ExportTask) *CreateExportTaskReqBuilder { 3281 builder.exportTask = exportTask 3282 return builder 3283 } 3284 3285 func (builder *CreateExportTaskReqBuilder) Build() *CreateExportTaskReq { 3286 req := &CreateExportTaskReq{} 3287 req.apiReq = &larkcore.ApiReq{} 3288 req.apiReq.Body = builder.exportTask 3289 return req 3290 } 3291 3292 type CreateExportTaskReq struct { 3293 apiReq *larkcore.ApiReq 3294 ExportTask *ExportTask `body:""` 3295 } 3296 3297 type CreateExportTaskRespData struct { 3298 Ticket *string `json:"ticket,omitempty"` // 导出任务ID 3299 } 3300 3301 type CreateExportTaskResp struct { 3302 *larkcore.ApiResp `json:"-"` 3303 larkcore.CodeError 3304 Data *CreateExportTaskRespData `json:"data"` // 业务数据 3305 } 3306 3307 func (resp *CreateExportTaskResp) Success() bool { 3308 return resp.Code == 0 3309 } 3310 3311 type DownloadExportTaskReqBuilder struct { 3312 apiReq *larkcore.ApiReq 3313 } 3314 3315 func NewDownloadExportTaskReqBuilder() *DownloadExportTaskReqBuilder { 3316 builder := &DownloadExportTaskReqBuilder{} 3317 builder.apiReq = &larkcore.ApiReq{ 3318 PathParams: larkcore.PathParams{}, 3319 QueryParams: larkcore.QueryParams{}, 3320 } 3321 return builder 3322 } 3323 3324 // 导出文档token 3325 // 3326 // 示例值:boxcnNAlfwHxxxxxxxxxxSaLSec 3327 func (builder *DownloadExportTaskReqBuilder) FileToken(fileToken string) *DownloadExportTaskReqBuilder { 3328 builder.apiReq.PathParams.Set("file_token", fmt.Sprint(fileToken)) 3329 return builder 3330 } 3331 3332 func (builder *DownloadExportTaskReqBuilder) Build() *DownloadExportTaskReq { 3333 req := &DownloadExportTaskReq{} 3334 req.apiReq = &larkcore.ApiReq{} 3335 req.apiReq.PathParams = builder.apiReq.PathParams 3336 return req 3337 } 3338 3339 type DownloadExportTaskReq struct { 3340 apiReq *larkcore.ApiReq 3341 } 3342 3343 type DownloadExportTaskResp struct { 3344 *larkcore.ApiResp `json:"-"` 3345 larkcore.CodeError 3346 File io.Reader `json:"-"` 3347 FileName string `json:"-"` 3348 } 3349 3350 func (resp *DownloadExportTaskResp) Success() bool { 3351 return resp.Code == 0 3352 } 3353 3354 func (resp *DownloadExportTaskResp) WriteFile(fileName string) error { 3355 bs, err := ioutil.ReadAll(resp.File) 3356 if err != nil { 3357 return err 3358 } 3359 3360 err = ioutil.WriteFile(fileName, bs, 0666) 3361 if err != nil { 3362 return err 3363 } 3364 return nil 3365 } 3366 3367 type GetExportTaskReqBuilder struct { 3368 apiReq *larkcore.ApiReq 3369 } 3370 3371 func NewGetExportTaskReqBuilder() *GetExportTaskReqBuilder { 3372 builder := &GetExportTaskReqBuilder{} 3373 builder.apiReq = &larkcore.ApiReq{ 3374 PathParams: larkcore.PathParams{}, 3375 QueryParams: larkcore.QueryParams{}, 3376 } 3377 return builder 3378 } 3379 3380 // 导出任务ID 3381 // 3382 // 示例值:6933093124755423251 3383 func (builder *GetExportTaskReqBuilder) Ticket(ticket string) *GetExportTaskReqBuilder { 3384 builder.apiReq.PathParams.Set("ticket", fmt.Sprint(ticket)) 3385 return builder 3386 } 3387 3388 // 导出文档的 token 3389 // 3390 // 示例值:doccnZVxxxxxxxxxxxxGiyBgYqe 3391 func (builder *GetExportTaskReqBuilder) Token(token string) *GetExportTaskReqBuilder { 3392 builder.apiReq.QueryParams.Set("token", fmt.Sprint(token)) 3393 return builder 3394 } 3395 3396 func (builder *GetExportTaskReqBuilder) Build() *GetExportTaskReq { 3397 req := &GetExportTaskReq{} 3398 req.apiReq = &larkcore.ApiReq{} 3399 req.apiReq.PathParams = builder.apiReq.PathParams 3400 req.apiReq.QueryParams = builder.apiReq.QueryParams 3401 return req 3402 } 3403 3404 type GetExportTaskReq struct { 3405 apiReq *larkcore.ApiReq 3406 } 3407 3408 type GetExportTaskRespData struct { 3409 Result *ExportTask `json:"result,omitempty"` // 导出任务结果 3410 } 3411 3412 type GetExportTaskResp struct { 3413 *larkcore.ApiResp `json:"-"` 3414 larkcore.CodeError 3415 Data *GetExportTaskRespData `json:"data"` // 业务数据 3416 } 3417 3418 func (resp *GetExportTaskResp) Success() bool { 3419 return resp.Code == 0 3420 } 3421 3422 type CopyFileReqBodyBuilder struct { 3423 name string // 被复制文件的新名称 3424 nameFlag bool 3425 type_ string // 被复制文件的类型,如果该值为空或者与文件实际类型不匹配,接口会返回失败。 3426 typeFlag bool 3427 folderToken string // 文件被复制到的目标文件夹token 3428 folderTokenFlag bool 3429 extra []*Property // 用户自定义请求附加参数,用于实现特殊的复制语义 3430 extraFlag bool 3431 } 3432 3433 func NewCopyFileReqBodyBuilder() *CopyFileReqBodyBuilder { 3434 builder := &CopyFileReqBodyBuilder{} 3435 return builder 3436 } 3437 3438 // 被复制文件的新名称 3439 // 3440 //示例值:123.txt 3441 func (builder *CopyFileReqBodyBuilder) Name(name string) *CopyFileReqBodyBuilder { 3442 builder.name = name 3443 builder.nameFlag = true 3444 return builder 3445 } 3446 3447 // 被复制文件的类型,如果该值为空或者与文件实际类型不匹配,接口会返回失败。 3448 // 3449 //示例值:file 3450 func (builder *CopyFileReqBodyBuilder) Type(type_ string) *CopyFileReqBodyBuilder { 3451 builder.type_ = type_ 3452 builder.typeFlag = true 3453 return builder 3454 } 3455 3456 // 文件被复制到的目标文件夹token 3457 // 3458 //示例值:fldbcO1UuPz8VwnpPx5a92abcef 3459 func (builder *CopyFileReqBodyBuilder) FolderToken(folderToken string) *CopyFileReqBodyBuilder { 3460 builder.folderToken = folderToken 3461 builder.folderTokenFlag = true 3462 return builder 3463 } 3464 3465 // 用户自定义请求附加参数,用于实现特殊的复制语义 3466 // 3467 //示例值: 3468 func (builder *CopyFileReqBodyBuilder) Extra(extra []*Property) *CopyFileReqBodyBuilder { 3469 builder.extra = extra 3470 builder.extraFlag = true 3471 return builder 3472 } 3473 3474 func (builder *CopyFileReqBodyBuilder) Build() *CopyFileReqBody { 3475 req := &CopyFileReqBody{} 3476 if builder.nameFlag { 3477 req.Name = &builder.name 3478 } 3479 if builder.typeFlag { 3480 req.Type = &builder.type_ 3481 } 3482 if builder.folderTokenFlag { 3483 req.FolderToken = &builder.folderToken 3484 } 3485 if builder.extraFlag { 3486 req.Extra = builder.extra 3487 } 3488 return req 3489 } 3490 3491 type CopyFilePathReqBodyBuilder struct { 3492 name string // 被复制文件的新名称 3493 nameFlag bool 3494 type_ string // 被复制文件的类型,如果该值为空或者与文件实际类型不匹配,接口会返回失败。 3495 typeFlag bool 3496 folderToken string // 文件被复制到的目标文件夹token 3497 folderTokenFlag bool 3498 extra []*Property // 用户自定义请求附加参数,用于实现特殊的复制语义 3499 extraFlag bool 3500 } 3501 3502 func NewCopyFilePathReqBodyBuilder() *CopyFilePathReqBodyBuilder { 3503 builder := &CopyFilePathReqBodyBuilder{} 3504 return builder 3505 } 3506 3507 // 被复制文件的新名称 3508 // 3509 // 示例值:123.txt 3510 func (builder *CopyFilePathReqBodyBuilder) Name(name string) *CopyFilePathReqBodyBuilder { 3511 builder.name = name 3512 builder.nameFlag = true 3513 return builder 3514 } 3515 3516 // 被复制文件的类型,如果该值为空或者与文件实际类型不匹配,接口会返回失败。 3517 // 3518 // 示例值:file 3519 func (builder *CopyFilePathReqBodyBuilder) Type(type_ string) *CopyFilePathReqBodyBuilder { 3520 builder.type_ = type_ 3521 builder.typeFlag = true 3522 return builder 3523 } 3524 3525 // 文件被复制到的目标文件夹token 3526 // 3527 // 示例值:fldbcO1UuPz8VwnpPx5a92abcef 3528 func (builder *CopyFilePathReqBodyBuilder) FolderToken(folderToken string) *CopyFilePathReqBodyBuilder { 3529 builder.folderToken = folderToken 3530 builder.folderTokenFlag = true 3531 return builder 3532 } 3533 3534 // 用户自定义请求附加参数,用于实现特殊的复制语义 3535 // 3536 // 示例值: 3537 func (builder *CopyFilePathReqBodyBuilder) Extra(extra []*Property) *CopyFilePathReqBodyBuilder { 3538 builder.extra = extra 3539 builder.extraFlag = true 3540 return builder 3541 } 3542 3543 func (builder *CopyFilePathReqBodyBuilder) Build() (*CopyFileReqBody, error) { 3544 req := &CopyFileReqBody{} 3545 if builder.nameFlag { 3546 req.Name = &builder.name 3547 } 3548 if builder.typeFlag { 3549 req.Type = &builder.type_ 3550 } 3551 if builder.folderTokenFlag { 3552 req.FolderToken = &builder.folderToken 3553 } 3554 if builder.extraFlag { 3555 req.Extra = builder.extra 3556 } 3557 return req, nil 3558 } 3559 3560 type CopyFileReqBuilder struct { 3561 apiReq *larkcore.ApiReq 3562 body *CopyFileReqBody 3563 } 3564 3565 func NewCopyFileReqBuilder() *CopyFileReqBuilder { 3566 builder := &CopyFileReqBuilder{} 3567 builder.apiReq = &larkcore.ApiReq{ 3568 PathParams: larkcore.PathParams{}, 3569 QueryParams: larkcore.QueryParams{}, 3570 } 3571 return builder 3572 } 3573 3574 // 被复制的文件token 3575 // 3576 // 示例值:boxbc0dGSMu23m7QkC1bvabcef 3577 func (builder *CopyFileReqBuilder) FileToken(fileToken string) *CopyFileReqBuilder { 3578 builder.apiReq.PathParams.Set("file_token", fmt.Sprint(fileToken)) 3579 return builder 3580 } 3581 3582 // 将文件复制到用户云空间的其他文件夹中。不支持复制文件夹。;;如果目标文件夹是我的空间,则复制的文件会在「**我的空间**」的「**归我所有**」列表里。 3583 func (builder *CopyFileReqBuilder) Body(body *CopyFileReqBody) *CopyFileReqBuilder { 3584 builder.body = body 3585 return builder 3586 } 3587 3588 func (builder *CopyFileReqBuilder) Build() *CopyFileReq { 3589 req := &CopyFileReq{} 3590 req.apiReq = &larkcore.ApiReq{} 3591 req.apiReq.PathParams = builder.apiReq.PathParams 3592 req.apiReq.Body = builder.body 3593 return req 3594 } 3595 3596 type CopyFileReqBody struct { 3597 Name *string `json:"name,omitempty"` // 被复制文件的新名称 3598 Type *string `json:"type,omitempty"` // 被复制文件的类型,如果该值为空或者与文件实际类型不匹配,接口会返回失败。 3599 FolderToken *string `json:"folder_token,omitempty"` // 文件被复制到的目标文件夹token 3600 Extra []*Property `json:"extra,omitempty"` // 用户自定义请求附加参数,用于实现特殊的复制语义 3601 } 3602 3603 type CopyFileReq struct { 3604 apiReq *larkcore.ApiReq 3605 Body *CopyFileReqBody `body:""` 3606 } 3607 3608 type CopyFileRespData struct { 3609 File *File `json:"file,omitempty"` // 复制后的文件资源 3610 } 3611 3612 type CopyFileResp struct { 3613 *larkcore.ApiResp `json:"-"` 3614 larkcore.CodeError 3615 Data *CopyFileRespData `json:"data"` // 业务数据 3616 } 3617 3618 func (resp *CopyFileResp) Success() bool { 3619 return resp.Code == 0 3620 } 3621 3622 type CreateFolderFileReqBodyBuilder struct { 3623 name string // 文件夹名称 3624 nameFlag bool 3625 folderToken string // 父文件夹token 3626 folderTokenFlag bool 3627 } 3628 3629 func NewCreateFolderFileReqBodyBuilder() *CreateFolderFileReqBodyBuilder { 3630 builder := &CreateFolderFileReqBodyBuilder{} 3631 return builder 3632 } 3633 3634 // 文件夹名称 3635 // 3636 //示例值:New Folder 3637 func (builder *CreateFolderFileReqBodyBuilder) Name(name string) *CreateFolderFileReqBodyBuilder { 3638 builder.name = name 3639 builder.nameFlag = true 3640 return builder 3641 } 3642 3643 // 父文件夹token 3644 // 3645 //示例值:fldbcO1UuPz8VwnpPx5a92abcef 3646 func (builder *CreateFolderFileReqBodyBuilder) FolderToken(folderToken string) *CreateFolderFileReqBodyBuilder { 3647 builder.folderToken = folderToken 3648 builder.folderTokenFlag = true 3649 return builder 3650 } 3651 3652 func (builder *CreateFolderFileReqBodyBuilder) Build() *CreateFolderFileReqBody { 3653 req := &CreateFolderFileReqBody{} 3654 if builder.nameFlag { 3655 req.Name = &builder.name 3656 } 3657 if builder.folderTokenFlag { 3658 req.FolderToken = &builder.folderToken 3659 } 3660 return req 3661 } 3662 3663 type CreateFolderFilePathReqBodyBuilder struct { 3664 name string // 文件夹名称 3665 nameFlag bool 3666 folderToken string // 父文件夹token 3667 folderTokenFlag bool 3668 } 3669 3670 func NewCreateFolderFilePathReqBodyBuilder() *CreateFolderFilePathReqBodyBuilder { 3671 builder := &CreateFolderFilePathReqBodyBuilder{} 3672 return builder 3673 } 3674 3675 // 文件夹名称 3676 // 3677 // 示例值:New Folder 3678 func (builder *CreateFolderFilePathReqBodyBuilder) Name(name string) *CreateFolderFilePathReqBodyBuilder { 3679 builder.name = name 3680 builder.nameFlag = true 3681 return builder 3682 } 3683 3684 // 父文件夹token 3685 // 3686 // 示例值:fldbcO1UuPz8VwnpPx5a92abcef 3687 func (builder *CreateFolderFilePathReqBodyBuilder) FolderToken(folderToken string) *CreateFolderFilePathReqBodyBuilder { 3688 builder.folderToken = folderToken 3689 builder.folderTokenFlag = true 3690 return builder 3691 } 3692 3693 func (builder *CreateFolderFilePathReqBodyBuilder) Build() (*CreateFolderFileReqBody, error) { 3694 req := &CreateFolderFileReqBody{} 3695 if builder.nameFlag { 3696 req.Name = &builder.name 3697 } 3698 if builder.folderTokenFlag { 3699 req.FolderToken = &builder.folderToken 3700 } 3701 return req, nil 3702 } 3703 3704 type CreateFolderFileReqBuilder struct { 3705 apiReq *larkcore.ApiReq 3706 body *CreateFolderFileReqBody 3707 } 3708 3709 func NewCreateFolderFileReqBuilder() *CreateFolderFileReqBuilder { 3710 builder := &CreateFolderFileReqBuilder{} 3711 builder.apiReq = &larkcore.ApiReq{ 3712 PathParams: larkcore.PathParams{}, 3713 QueryParams: larkcore.QueryParams{}, 3714 } 3715 return builder 3716 } 3717 3718 // 在用户云空间的指定文件夹中创建一个新的空文件夹。 3719 func (builder *CreateFolderFileReqBuilder) Body(body *CreateFolderFileReqBody) *CreateFolderFileReqBuilder { 3720 builder.body = body 3721 return builder 3722 } 3723 3724 func (builder *CreateFolderFileReqBuilder) Build() *CreateFolderFileReq { 3725 req := &CreateFolderFileReq{} 3726 req.apiReq = &larkcore.ApiReq{} 3727 req.apiReq.Body = builder.body 3728 return req 3729 } 3730 3731 type CreateFolderFileReqBody struct { 3732 Name *string `json:"name,omitempty"` // 文件夹名称 3733 FolderToken *string `json:"folder_token,omitempty"` // 父文件夹token 3734 } 3735 3736 type CreateFolderFileReq struct { 3737 apiReq *larkcore.ApiReq 3738 Body *CreateFolderFileReqBody `body:""` 3739 } 3740 3741 type CreateFolderFileRespData struct { 3742 Token *string `json:"token,omitempty"` // 创建文件夹的token 3743 Url *string `json:"url,omitempty"` // 创建文件夹的访问url 3744 } 3745 3746 type CreateFolderFileResp struct { 3747 *larkcore.ApiResp `json:"-"` 3748 larkcore.CodeError 3749 Data *CreateFolderFileRespData `json:"data"` // 业务数据 3750 } 3751 3752 func (resp *CreateFolderFileResp) Success() bool { 3753 return resp.Code == 0 3754 } 3755 3756 type DeleteFileReqBuilder struct { 3757 apiReq *larkcore.ApiReq 3758 } 3759 3760 func NewDeleteFileReqBuilder() *DeleteFileReqBuilder { 3761 builder := &DeleteFileReqBuilder{} 3762 builder.apiReq = &larkcore.ApiReq{ 3763 PathParams: larkcore.PathParams{}, 3764 QueryParams: larkcore.QueryParams{}, 3765 } 3766 return builder 3767 } 3768 3769 // 需要删除的文件token 3770 // 3771 // 示例值:boxcnrHpsg1QDqXAAAyachabcef 3772 func (builder *DeleteFileReqBuilder) FileToken(fileToken string) *DeleteFileReqBuilder { 3773 builder.apiReq.PathParams.Set("file_token", fmt.Sprint(fileToken)) 3774 return builder 3775 } 3776 3777 // 被删除文件的类型 3778 // 3779 // 示例值:file 3780 func (builder *DeleteFileReqBuilder) Type(type_ string) *DeleteFileReqBuilder { 3781 builder.apiReq.QueryParams.Set("type", fmt.Sprint(type_)) 3782 return builder 3783 } 3784 3785 func (builder *DeleteFileReqBuilder) Build() *DeleteFileReq { 3786 req := &DeleteFileReq{} 3787 req.apiReq = &larkcore.ApiReq{} 3788 req.apiReq.PathParams = builder.apiReq.PathParams 3789 req.apiReq.QueryParams = builder.apiReq.QueryParams 3790 return req 3791 } 3792 3793 type DeleteFileReq struct { 3794 apiReq *larkcore.ApiReq 3795 } 3796 3797 type DeleteFileRespData struct { 3798 TaskId *string `json:"task_id,omitempty"` // 异步任务id,删除文件夹时返回 3799 } 3800 3801 type DeleteFileResp struct { 3802 *larkcore.ApiResp `json:"-"` 3803 larkcore.CodeError 3804 Data *DeleteFileRespData `json:"data"` // 业务数据 3805 } 3806 3807 func (resp *DeleteFileResp) Success() bool { 3808 return resp.Code == 0 3809 } 3810 3811 type DownloadFileReqBuilder struct { 3812 apiReq *larkcore.ApiReq 3813 } 3814 3815 func NewDownloadFileReqBuilder() *DownloadFileReqBuilder { 3816 builder := &DownloadFileReqBuilder{} 3817 builder.apiReq = &larkcore.ApiReq{ 3818 PathParams: larkcore.PathParams{}, 3819 QueryParams: larkcore.QueryParams{}, 3820 } 3821 return builder 3822 } 3823 3824 // 文件的 token,获取方式见 [概述](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/files/guide/introduction) 3825 // 3826 // 示例值:boxcnabCdefg12345 3827 func (builder *DownloadFileReqBuilder) FileToken(fileToken string) *DownloadFileReqBuilder { 3828 builder.apiReq.PathParams.Set("file_token", fmt.Sprint(fileToken)) 3829 return builder 3830 } 3831 3832 func (builder *DownloadFileReqBuilder) Build() *DownloadFileReq { 3833 req := &DownloadFileReq{} 3834 req.apiReq = &larkcore.ApiReq{} 3835 req.apiReq.PathParams = builder.apiReq.PathParams 3836 return req 3837 } 3838 3839 type DownloadFileReq struct { 3840 apiReq *larkcore.ApiReq 3841 } 3842 3843 type DownloadFileResp struct { 3844 *larkcore.ApiResp `json:"-"` 3845 larkcore.CodeError 3846 File io.Reader `json:"-"` 3847 FileName string `json:"-"` 3848 } 3849 3850 func (resp *DownloadFileResp) Success() bool { 3851 return resp.Code == 0 3852 } 3853 3854 func (resp *DownloadFileResp) WriteFile(fileName string) error { 3855 bs, err := ioutil.ReadAll(resp.File) 3856 if err != nil { 3857 return err 3858 } 3859 3860 err = ioutil.WriteFile(fileName, bs, 0666) 3861 if err != nil { 3862 return err 3863 } 3864 return nil 3865 } 3866 3867 type ListFileReqBuilder struct { 3868 apiReq *larkcore.ApiReq 3869 } 3870 3871 func NewListFileReqBuilder() *ListFileReqBuilder { 3872 builder := &ListFileReqBuilder{} 3873 builder.apiReq = &larkcore.ApiReq{ 3874 PathParams: larkcore.PathParams{}, 3875 QueryParams: larkcore.QueryParams{}, 3876 } 3877 return builder 3878 } 3879 3880 // 分页大小 3881 // 3882 // 示例值:10 3883 func (builder *ListFileReqBuilder) PageSize(pageSize int) *ListFileReqBuilder { 3884 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 3885 return builder 3886 } 3887 3888 // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果 3889 // 3890 // 示例值:MTY1NTA3MTA1OXw3MTA4NDc2MDc1NzkyOTI0Nabcef 3891 func (builder *ListFileReqBuilder) PageToken(pageToken string) *ListFileReqBuilder { 3892 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 3893 return builder 3894 } 3895 3896 // 文件夹的token 3897 // 3898 // 示例值:fldbcO1UuPz8VwnpPx5a9abcef 3899 func (builder *ListFileReqBuilder) FolderToken(folderToken string) *ListFileReqBuilder { 3900 builder.apiReq.QueryParams.Set("folder_token", fmt.Sprint(folderToken)) 3901 return builder 3902 } 3903 3904 func (builder *ListFileReqBuilder) Build() *ListFileReq { 3905 req := &ListFileReq{} 3906 req.apiReq = &larkcore.ApiReq{} 3907 req.apiReq.QueryParams = builder.apiReq.QueryParams 3908 return req 3909 } 3910 3911 type ListFileReq struct { 3912 apiReq *larkcore.ApiReq 3913 } 3914 3915 type ListFileRespData struct { 3916 Files []*File `json:"files,omitempty"` // 文件夹清单列表 3917 NextPageToken *string `json:"next_page_token,omitempty"` // 分页标记,当 has_more 为 true 时,会同时返回下一次遍历的page_token,否则则不返回 3918 HasMore *bool `json:"has_more,omitempty"` // 3919 } 3920 3921 type ListFileResp struct { 3922 *larkcore.ApiResp `json:"-"` 3923 larkcore.CodeError 3924 Data *ListFileRespData `json:"data"` // 业务数据 3925 } 3926 3927 func (resp *ListFileResp) Success() bool { 3928 return resp.Code == 0 3929 } 3930 3931 type MoveFileReqBodyBuilder struct { 3932 type_ string // 文件类型,如果该值为空或者与文件实际类型不匹配,接口会返回失败。 3933 typeFlag bool 3934 folderToken string // 目标文件夹token 3935 folderTokenFlag bool 3936 } 3937 3938 func NewMoveFileReqBodyBuilder() *MoveFileReqBodyBuilder { 3939 builder := &MoveFileReqBodyBuilder{} 3940 return builder 3941 } 3942 3943 // 文件类型,如果该值为空或者与文件实际类型不匹配,接口会返回失败。 3944 // 3945 //示例值:file 3946 func (builder *MoveFileReqBodyBuilder) Type(type_ string) *MoveFileReqBodyBuilder { 3947 builder.type_ = type_ 3948 builder.typeFlag = true 3949 return builder 3950 } 3951 3952 // 目标文件夹token 3953 // 3954 //示例值:fldbcO1UuPz8VwnpPx5a92abcef 3955 func (builder *MoveFileReqBodyBuilder) FolderToken(folderToken string) *MoveFileReqBodyBuilder { 3956 builder.folderToken = folderToken 3957 builder.folderTokenFlag = true 3958 return builder 3959 } 3960 3961 func (builder *MoveFileReqBodyBuilder) Build() *MoveFileReqBody { 3962 req := &MoveFileReqBody{} 3963 if builder.typeFlag { 3964 req.Type = &builder.type_ 3965 } 3966 if builder.folderTokenFlag { 3967 req.FolderToken = &builder.folderToken 3968 } 3969 return req 3970 } 3971 3972 type MoveFilePathReqBodyBuilder struct { 3973 type_ string // 文件类型,如果该值为空或者与文件实际类型不匹配,接口会返回失败。 3974 typeFlag bool 3975 folderToken string // 目标文件夹token 3976 folderTokenFlag bool 3977 } 3978 3979 func NewMoveFilePathReqBodyBuilder() *MoveFilePathReqBodyBuilder { 3980 builder := &MoveFilePathReqBodyBuilder{} 3981 return builder 3982 } 3983 3984 // 文件类型,如果该值为空或者与文件实际类型不匹配,接口会返回失败。 3985 // 3986 // 示例值:file 3987 func (builder *MoveFilePathReqBodyBuilder) Type(type_ string) *MoveFilePathReqBodyBuilder { 3988 builder.type_ = type_ 3989 builder.typeFlag = true 3990 return builder 3991 } 3992 3993 // 目标文件夹token 3994 // 3995 // 示例值:fldbcO1UuPz8VwnpPx5a92abcef 3996 func (builder *MoveFilePathReqBodyBuilder) FolderToken(folderToken string) *MoveFilePathReqBodyBuilder { 3997 builder.folderToken = folderToken 3998 builder.folderTokenFlag = true 3999 return builder 4000 } 4001 4002 func (builder *MoveFilePathReqBodyBuilder) Build() (*MoveFileReqBody, error) { 4003 req := &MoveFileReqBody{} 4004 if builder.typeFlag { 4005 req.Type = &builder.type_ 4006 } 4007 if builder.folderTokenFlag { 4008 req.FolderToken = &builder.folderToken 4009 } 4010 return req, nil 4011 } 4012 4013 type MoveFileReqBuilder struct { 4014 apiReq *larkcore.ApiReq 4015 body *MoveFileReqBody 4016 } 4017 4018 func NewMoveFileReqBuilder() *MoveFileReqBuilder { 4019 builder := &MoveFileReqBuilder{} 4020 builder.apiReq = &larkcore.ApiReq{ 4021 PathParams: larkcore.PathParams{}, 4022 QueryParams: larkcore.QueryParams{}, 4023 } 4024 return builder 4025 } 4026 4027 // 需要移动的文件token 4028 // 4029 // 示例值:boxcnrHpsg1QDqXAAAyachabcef 4030 func (builder *MoveFileReqBuilder) FileToken(fileToken string) *MoveFileReqBuilder { 4031 builder.apiReq.PathParams.Set("file_token", fmt.Sprint(fileToken)) 4032 return builder 4033 } 4034 4035 // 将文件或者文件夹移动到用户云空间的其他位置。 4036 func (builder *MoveFileReqBuilder) Body(body *MoveFileReqBody) *MoveFileReqBuilder { 4037 builder.body = body 4038 return builder 4039 } 4040 4041 func (builder *MoveFileReqBuilder) Build() *MoveFileReq { 4042 req := &MoveFileReq{} 4043 req.apiReq = &larkcore.ApiReq{} 4044 req.apiReq.PathParams = builder.apiReq.PathParams 4045 req.apiReq.Body = builder.body 4046 return req 4047 } 4048 4049 type MoveFileReqBody struct { 4050 Type *string `json:"type,omitempty"` // 文件类型,如果该值为空或者与文件实际类型不匹配,接口会返回失败。 4051 FolderToken *string `json:"folder_token,omitempty"` // 目标文件夹token 4052 } 4053 4054 type MoveFileReq struct { 4055 apiReq *larkcore.ApiReq 4056 Body *MoveFileReqBody `body:""` 4057 } 4058 4059 type MoveFileRespData struct { 4060 TaskId *string `json:"task_id,omitempty"` // 异步任务id,移动文件夹时返回 4061 } 4062 4063 type MoveFileResp struct { 4064 *larkcore.ApiResp `json:"-"` 4065 larkcore.CodeError 4066 Data *MoveFileRespData `json:"data"` // 业务数据 4067 } 4068 4069 func (resp *MoveFileResp) Success() bool { 4070 return resp.Code == 0 4071 } 4072 4073 type SubscribeFileReqBuilder struct { 4074 apiReq *larkcore.ApiReq 4075 } 4076 4077 func NewSubscribeFileReqBuilder() *SubscribeFileReqBuilder { 4078 builder := &SubscribeFileReqBuilder{} 4079 builder.apiReq = &larkcore.ApiReq{ 4080 PathParams: larkcore.PathParams{}, 4081 QueryParams: larkcore.QueryParams{}, 4082 } 4083 return builder 4084 } 4085 4086 // 文档token 4087 // 4088 // 示例值:doccnxxxxxxxxxxxxxxxxxxxxxx 4089 func (builder *SubscribeFileReqBuilder) FileToken(fileToken string) *SubscribeFileReqBuilder { 4090 builder.apiReq.PathParams.Set("file_token", fmt.Sprint(fileToken)) 4091 return builder 4092 } 4093 4094 // 文档类型 4095 // 4096 // 示例值:doc 4097 func (builder *SubscribeFileReqBuilder) FileType(fileType string) *SubscribeFileReqBuilder { 4098 builder.apiReq.QueryParams.Set("file_type", fmt.Sprint(fileType)) 4099 return builder 4100 } 4101 4102 func (builder *SubscribeFileReqBuilder) Build() *SubscribeFileReq { 4103 req := &SubscribeFileReq{} 4104 req.apiReq = &larkcore.ApiReq{} 4105 req.apiReq.PathParams = builder.apiReq.PathParams 4106 req.apiReq.QueryParams = builder.apiReq.QueryParams 4107 return req 4108 } 4109 4110 type SubscribeFileReq struct { 4111 apiReq *larkcore.ApiReq 4112 } 4113 4114 type SubscribeFileResp struct { 4115 *larkcore.ApiResp `json:"-"` 4116 larkcore.CodeError 4117 } 4118 4119 func (resp *SubscribeFileResp) Success() bool { 4120 return resp.Code == 0 4121 } 4122 4123 type TaskCheckFileReqBuilder struct { 4124 apiReq *larkcore.ApiReq 4125 } 4126 4127 func NewTaskCheckFileReqBuilder() *TaskCheckFileReqBuilder { 4128 builder := &TaskCheckFileReqBuilder{} 4129 builder.apiReq = &larkcore.ApiReq{ 4130 PathParams: larkcore.PathParams{}, 4131 QueryParams: larkcore.QueryParams{}, 4132 } 4133 return builder 4134 } 4135 4136 // 文件相关异步任务id 4137 // 4138 // 示例值:12345 4139 func (builder *TaskCheckFileReqBuilder) TaskId(taskId string) *TaskCheckFileReqBuilder { 4140 builder.apiReq.QueryParams.Set("task_id", fmt.Sprint(taskId)) 4141 return builder 4142 } 4143 4144 func (builder *TaskCheckFileReqBuilder) Build() *TaskCheckFileReq { 4145 req := &TaskCheckFileReq{} 4146 req.apiReq = &larkcore.ApiReq{} 4147 req.apiReq.QueryParams = builder.apiReq.QueryParams 4148 return req 4149 } 4150 4151 type TaskCheckFileReq struct { 4152 apiReq *larkcore.ApiReq 4153 } 4154 4155 type TaskCheckFileRespData struct { 4156 Status *string `json:"status,omitempty"` // 异步任务的执行状态,如果任务执行成功则返回success,如果任务执行失败则返回fail,如果任务还在执行中则返回process。 4157 } 4158 4159 type TaskCheckFileResp struct { 4160 *larkcore.ApiResp `json:"-"` 4161 larkcore.CodeError 4162 Data *TaskCheckFileRespData `json:"data"` // 业务数据 4163 } 4164 4165 func (resp *TaskCheckFileResp) Success() bool { 4166 return resp.Code == 0 4167 } 4168 4169 type UploadAllFileReqBodyBuilder struct { 4170 fileName string // 文件名。 4171 fileNameFlag bool 4172 parentType string // 上传点类型。 4173 parentTypeFlag bool 4174 parentNode string // 文件夹token,;获取方式见 [概述](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/files/guide/introduction) 4175 parentNodeFlag bool 4176 size int // 文件大小(以字节为单位)。 4177 sizeFlag bool 4178 checksum string // 文件adler32校验和(可选)。 4179 checksumFlag bool 4180 file io.Reader // 文件二进制内容。 4181 fileFlag bool 4182 } 4183 4184 func NewUploadAllFileReqBodyBuilder() *UploadAllFileReqBodyBuilder { 4185 builder := &UploadAllFileReqBodyBuilder{} 4186 return builder 4187 } 4188 4189 // 文件名。 4190 // 4191 //示例值:demo.pdf 4192 func (builder *UploadAllFileReqBodyBuilder) FileName(fileName string) *UploadAllFileReqBodyBuilder { 4193 builder.fileName = fileName 4194 builder.fileNameFlag = true 4195 return builder 4196 } 4197 4198 // 上传点类型。 4199 // 4200 //示例值:explorer 4201 func (builder *UploadAllFileReqBodyBuilder) ParentType(parentType string) *UploadAllFileReqBodyBuilder { 4202 builder.parentType = parentType 4203 builder.parentTypeFlag = true 4204 return builder 4205 } 4206 4207 // 文件夹token,;获取方式见 [概述](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/files/guide/introduction) 4208 // 4209 //示例值:fldbcO1UuPz8VwnpPx5a92abcef 4210 func (builder *UploadAllFileReqBodyBuilder) ParentNode(parentNode string) *UploadAllFileReqBodyBuilder { 4211 builder.parentNode = parentNode 4212 builder.parentNodeFlag = true 4213 return builder 4214 } 4215 4216 // 文件大小(以字节为单位)。 4217 // 4218 //示例值:1024 4219 func (builder *UploadAllFileReqBodyBuilder) Size(size int) *UploadAllFileReqBodyBuilder { 4220 builder.size = size 4221 builder.sizeFlag = true 4222 return builder 4223 } 4224 4225 // 文件adler32校验和(可选)。 4226 // 4227 //示例值:123423882374238912356 4228 func (builder *UploadAllFileReqBodyBuilder) Checksum(checksum string) *UploadAllFileReqBodyBuilder { 4229 builder.checksum = checksum 4230 builder.checksumFlag = true 4231 return builder 4232 } 4233 4234 // 文件二进制内容。 4235 // 4236 //示例值:file binary 4237 func (builder *UploadAllFileReqBodyBuilder) File(file io.Reader) *UploadAllFileReqBodyBuilder { 4238 builder.file = file 4239 builder.fileFlag = true 4240 return builder 4241 } 4242 4243 func (builder *UploadAllFileReqBodyBuilder) Build() *UploadAllFileReqBody { 4244 req := &UploadAllFileReqBody{} 4245 if builder.fileNameFlag { 4246 req.FileName = &builder.fileName 4247 } 4248 if builder.parentTypeFlag { 4249 req.ParentType = &builder.parentType 4250 } 4251 if builder.parentNodeFlag { 4252 req.ParentNode = &builder.parentNode 4253 } 4254 if builder.sizeFlag { 4255 req.Size = &builder.size 4256 } 4257 if builder.checksumFlag { 4258 req.Checksum = &builder.checksum 4259 } 4260 if builder.fileFlag { 4261 req.File = builder.file 4262 } 4263 return req 4264 } 4265 4266 type UploadAllFilePathReqBodyBuilder struct { 4267 fileName string // 文件名。 4268 fileNameFlag bool 4269 parentType string // 上传点类型。 4270 parentTypeFlag bool 4271 parentNode string // 文件夹token,;获取方式见 [概述](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/files/guide/introduction) 4272 parentNodeFlag bool 4273 size int // 文件大小(以字节为单位)。 4274 sizeFlag bool 4275 checksum string // 文件adler32校验和(可选)。 4276 checksumFlag bool 4277 filePath string // 文件二进制内容。 4278 filePathFlag bool 4279 } 4280 4281 func NewUploadAllFilePathReqBodyBuilder() *UploadAllFilePathReqBodyBuilder { 4282 builder := &UploadAllFilePathReqBodyBuilder{} 4283 return builder 4284 } 4285 4286 // 文件名。 4287 // 4288 // 示例值:demo.pdf 4289 func (builder *UploadAllFilePathReqBodyBuilder) FileName(fileName string) *UploadAllFilePathReqBodyBuilder { 4290 builder.fileName = fileName 4291 builder.fileNameFlag = true 4292 return builder 4293 } 4294 4295 // 上传点类型。 4296 // 4297 // 示例值:explorer 4298 func (builder *UploadAllFilePathReqBodyBuilder) ParentType(parentType string) *UploadAllFilePathReqBodyBuilder { 4299 builder.parentType = parentType 4300 builder.parentTypeFlag = true 4301 return builder 4302 } 4303 4304 // 文件夹token,;获取方式见 [概述](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/files/guide/introduction) 4305 // 4306 // 示例值:fldbcO1UuPz8VwnpPx5a92abcef 4307 func (builder *UploadAllFilePathReqBodyBuilder) ParentNode(parentNode string) *UploadAllFilePathReqBodyBuilder { 4308 builder.parentNode = parentNode 4309 builder.parentNodeFlag = true 4310 return builder 4311 } 4312 4313 // 文件大小(以字节为单位)。 4314 // 4315 // 示例值:1024 4316 func (builder *UploadAllFilePathReqBodyBuilder) Size(size int) *UploadAllFilePathReqBodyBuilder { 4317 builder.size = size 4318 builder.sizeFlag = true 4319 return builder 4320 } 4321 4322 // 文件adler32校验和(可选)。 4323 // 4324 // 示例值:123423882374238912356 4325 func (builder *UploadAllFilePathReqBodyBuilder) Checksum(checksum string) *UploadAllFilePathReqBodyBuilder { 4326 builder.checksum = checksum 4327 builder.checksumFlag = true 4328 return builder 4329 } 4330 4331 // 文件二进制内容。 4332 // 4333 // 示例值:file binary 4334 func (builder *UploadAllFilePathReqBodyBuilder) FilePath(filePath string) *UploadAllFilePathReqBodyBuilder { 4335 builder.filePath = filePath 4336 builder.filePathFlag = true 4337 return builder 4338 } 4339 4340 func (builder *UploadAllFilePathReqBodyBuilder) Build() (*UploadAllFileReqBody, error) { 4341 req := &UploadAllFileReqBody{} 4342 if builder.fileNameFlag { 4343 req.FileName = &builder.fileName 4344 } 4345 if builder.parentTypeFlag { 4346 req.ParentType = &builder.parentType 4347 } 4348 if builder.parentNodeFlag { 4349 req.ParentNode = &builder.parentNode 4350 } 4351 if builder.sizeFlag { 4352 req.Size = &builder.size 4353 } 4354 if builder.checksumFlag { 4355 req.Checksum = &builder.checksum 4356 } 4357 if builder.filePathFlag { 4358 data, err := larkcore.File2Bytes(builder.filePath) 4359 if err != nil { 4360 return nil, err 4361 } 4362 req.File = bytes.NewBuffer(data) 4363 } 4364 return req, nil 4365 } 4366 4367 type UploadAllFileReqBuilder struct { 4368 apiReq *larkcore.ApiReq 4369 body *UploadAllFileReqBody 4370 } 4371 4372 func NewUploadAllFileReqBuilder() *UploadAllFileReqBuilder { 4373 builder := &UploadAllFileReqBuilder{} 4374 builder.apiReq = &larkcore.ApiReq{ 4375 PathParams: larkcore.PathParams{}, 4376 QueryParams: larkcore.QueryParams{}, 4377 } 4378 return builder 4379 } 4380 4381 // 向云空间指定目录下上传一个小文件。 4382 func (builder *UploadAllFileReqBuilder) Body(body *UploadAllFileReqBody) *UploadAllFileReqBuilder { 4383 builder.body = body 4384 return builder 4385 } 4386 4387 func (builder *UploadAllFileReqBuilder) Build() *UploadAllFileReq { 4388 req := &UploadAllFileReq{} 4389 req.apiReq = &larkcore.ApiReq{} 4390 req.apiReq.Body = builder.body 4391 return req 4392 } 4393 4394 type UploadAllFileReqBody struct { 4395 FileName *string `json:"file_name,omitempty"` // 文件名。 4396 ParentType *string `json:"parent_type,omitempty"` // 上传点类型。 4397 ParentNode *string `json:"parent_node,omitempty"` // 文件夹token,;获取方式见 [概述](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/files/guide/introduction) 4398 Size *int `json:"size,omitempty"` // 文件大小(以字节为单位)。 4399 Checksum *string `json:"checksum,omitempty"` // 文件adler32校验和(可选)。 4400 File io.Reader `json:"file,omitempty"` // 文件二进制内容。 4401 } 4402 4403 type UploadAllFileReq struct { 4404 apiReq *larkcore.ApiReq 4405 Body *UploadAllFileReqBody `body:""` 4406 } 4407 4408 type UploadAllFileRespData struct { 4409 FileToken *string `json:"file_token,omitempty"` // 新创建文件的 token 4410 } 4411 4412 type UploadAllFileResp struct { 4413 *larkcore.ApiResp `json:"-"` 4414 larkcore.CodeError 4415 Data *UploadAllFileRespData `json:"data"` // 业务数据 4416 } 4417 4418 func (resp *UploadAllFileResp) Success() bool { 4419 return resp.Code == 0 4420 } 4421 4422 type UploadFinishFileReqBodyBuilder struct { 4423 uploadId string // 分片上传事务ID 4424 uploadIdFlag bool 4425 blockNum int // 分片数量 4426 blockNumFlag bool 4427 } 4428 4429 func NewUploadFinishFileReqBodyBuilder() *UploadFinishFileReqBodyBuilder { 4430 builder := &UploadFinishFileReqBodyBuilder{} 4431 return builder 4432 } 4433 4434 // 分片上传事务ID 4435 // 4436 //示例值:7111211691345512356 4437 func (builder *UploadFinishFileReqBodyBuilder) UploadId(uploadId string) *UploadFinishFileReqBodyBuilder { 4438 builder.uploadId = uploadId 4439 builder.uploadIdFlag = true 4440 return builder 4441 } 4442 4443 // 分片数量 4444 // 4445 //示例值:1 4446 func (builder *UploadFinishFileReqBodyBuilder) BlockNum(blockNum int) *UploadFinishFileReqBodyBuilder { 4447 builder.blockNum = blockNum 4448 builder.blockNumFlag = true 4449 return builder 4450 } 4451 4452 func (builder *UploadFinishFileReqBodyBuilder) Build() *UploadFinishFileReqBody { 4453 req := &UploadFinishFileReqBody{} 4454 if builder.uploadIdFlag { 4455 req.UploadId = &builder.uploadId 4456 } 4457 if builder.blockNumFlag { 4458 req.BlockNum = &builder.blockNum 4459 } 4460 return req 4461 } 4462 4463 type UploadFinishFilePathReqBodyBuilder struct { 4464 uploadId string // 分片上传事务ID 4465 uploadIdFlag bool 4466 blockNum int // 分片数量 4467 blockNumFlag bool 4468 } 4469 4470 func NewUploadFinishFilePathReqBodyBuilder() *UploadFinishFilePathReqBodyBuilder { 4471 builder := &UploadFinishFilePathReqBodyBuilder{} 4472 return builder 4473 } 4474 4475 // 分片上传事务ID 4476 // 4477 // 示例值:7111211691345512356 4478 func (builder *UploadFinishFilePathReqBodyBuilder) UploadId(uploadId string) *UploadFinishFilePathReqBodyBuilder { 4479 builder.uploadId = uploadId 4480 builder.uploadIdFlag = true 4481 return builder 4482 } 4483 4484 // 分片数量 4485 // 4486 // 示例值:1 4487 func (builder *UploadFinishFilePathReqBodyBuilder) BlockNum(blockNum int) *UploadFinishFilePathReqBodyBuilder { 4488 builder.blockNum = blockNum 4489 builder.blockNumFlag = true 4490 return builder 4491 } 4492 4493 func (builder *UploadFinishFilePathReqBodyBuilder) Build() (*UploadFinishFileReqBody, error) { 4494 req := &UploadFinishFileReqBody{} 4495 if builder.uploadIdFlag { 4496 req.UploadId = &builder.uploadId 4497 } 4498 if builder.blockNumFlag { 4499 req.BlockNum = &builder.blockNum 4500 } 4501 return req, nil 4502 } 4503 4504 type UploadFinishFileReqBuilder struct { 4505 apiReq *larkcore.ApiReq 4506 body *UploadFinishFileReqBody 4507 } 4508 4509 func NewUploadFinishFileReqBuilder() *UploadFinishFileReqBuilder { 4510 builder := &UploadFinishFileReqBuilder{} 4511 builder.apiReq = &larkcore.ApiReq{ 4512 PathParams: larkcore.PathParams{}, 4513 QueryParams: larkcore.QueryParams{}, 4514 } 4515 return builder 4516 } 4517 4518 // 触发完成上传。 4519 func (builder *UploadFinishFileReqBuilder) Body(body *UploadFinishFileReqBody) *UploadFinishFileReqBuilder { 4520 builder.body = body 4521 return builder 4522 } 4523 4524 func (builder *UploadFinishFileReqBuilder) Build() *UploadFinishFileReq { 4525 req := &UploadFinishFileReq{} 4526 req.apiReq = &larkcore.ApiReq{} 4527 req.apiReq.Body = builder.body 4528 return req 4529 } 4530 4531 type UploadFinishFileReqBody struct { 4532 UploadId *string `json:"upload_id,omitempty"` // 分片上传事务ID 4533 BlockNum *int `json:"block_num,omitempty"` // 分片数量 4534 } 4535 4536 type UploadFinishFileReq struct { 4537 apiReq *larkcore.ApiReq 4538 Body *UploadFinishFileReqBody `body:""` 4539 } 4540 4541 type UploadFinishFileRespData struct { 4542 FileToken *string `json:"file_token,omitempty"` // 新创建的文件token 4543 } 4544 4545 type UploadFinishFileResp struct { 4546 *larkcore.ApiResp `json:"-"` 4547 larkcore.CodeError 4548 Data *UploadFinishFileRespData `json:"data"` // 业务数据 4549 } 4550 4551 func (resp *UploadFinishFileResp) Success() bool { 4552 return resp.Code == 0 4553 } 4554 4555 type UploadPartFileReqBodyBuilder struct { 4556 uploadId string // 分片上传事务ID。 4557 uploadIdFlag bool 4558 seq int // 块号,从0开始计数。 4559 seqFlag bool 4560 size int // 块大小(以字节为单位)。 4561 sizeFlag bool 4562 checksum string // 文件分块adler32校验和(可选)。 4563 checksumFlag bool 4564 file io.Reader // 文件分片二进制内容。 4565 fileFlag bool 4566 } 4567 4568 func NewUploadPartFileReqBodyBuilder() *UploadPartFileReqBodyBuilder { 4569 builder := &UploadPartFileReqBodyBuilder{} 4570 return builder 4571 } 4572 4573 // 分片上传事务ID。 4574 // 4575 //示例值:7111211691345512356 4576 func (builder *UploadPartFileReqBodyBuilder) UploadId(uploadId string) *UploadPartFileReqBodyBuilder { 4577 builder.uploadId = uploadId 4578 builder.uploadIdFlag = true 4579 return builder 4580 } 4581 4582 // 块号,从0开始计数。 4583 // 4584 //示例值:0 4585 func (builder *UploadPartFileReqBodyBuilder) Seq(seq int) *UploadPartFileReqBodyBuilder { 4586 builder.seq = seq 4587 builder.seqFlag = true 4588 return builder 4589 } 4590 4591 // 块大小(以字节为单位)。 4592 // 4593 //示例值:4194304 4594 func (builder *UploadPartFileReqBodyBuilder) Size(size int) *UploadPartFileReqBodyBuilder { 4595 builder.size = size 4596 builder.sizeFlag = true 4597 return builder 4598 } 4599 4600 // 文件分块adler32校验和(可选)。 4601 // 4602 //示例值:12342388237783212356 4603 func (builder *UploadPartFileReqBodyBuilder) Checksum(checksum string) *UploadPartFileReqBodyBuilder { 4604 builder.checksum = checksum 4605 builder.checksumFlag = true 4606 return builder 4607 } 4608 4609 // 文件分片二进制内容。 4610 // 4611 //示例值:file binary 4612 func (builder *UploadPartFileReqBodyBuilder) File(file io.Reader) *UploadPartFileReqBodyBuilder { 4613 builder.file = file 4614 builder.fileFlag = true 4615 return builder 4616 } 4617 4618 func (builder *UploadPartFileReqBodyBuilder) Build() *UploadPartFileReqBody { 4619 req := &UploadPartFileReqBody{} 4620 if builder.uploadIdFlag { 4621 req.UploadId = &builder.uploadId 4622 } 4623 if builder.seqFlag { 4624 req.Seq = &builder.seq 4625 } 4626 if builder.sizeFlag { 4627 req.Size = &builder.size 4628 } 4629 if builder.checksumFlag { 4630 req.Checksum = &builder.checksum 4631 } 4632 if builder.fileFlag { 4633 req.File = builder.file 4634 } 4635 return req 4636 } 4637 4638 type UploadPartFilePathReqBodyBuilder struct { 4639 uploadId string // 分片上传事务ID。 4640 uploadIdFlag bool 4641 seq int // 块号,从0开始计数。 4642 seqFlag bool 4643 size int // 块大小(以字节为单位)。 4644 sizeFlag bool 4645 checksum string // 文件分块adler32校验和(可选)。 4646 checksumFlag bool 4647 filePath string // 文件分片二进制内容。 4648 filePathFlag bool 4649 } 4650 4651 func NewUploadPartFilePathReqBodyBuilder() *UploadPartFilePathReqBodyBuilder { 4652 builder := &UploadPartFilePathReqBodyBuilder{} 4653 return builder 4654 } 4655 4656 // 分片上传事务ID。 4657 // 4658 // 示例值:7111211691345512356 4659 func (builder *UploadPartFilePathReqBodyBuilder) UploadId(uploadId string) *UploadPartFilePathReqBodyBuilder { 4660 builder.uploadId = uploadId 4661 builder.uploadIdFlag = true 4662 return builder 4663 } 4664 4665 // 块号,从0开始计数。 4666 // 4667 // 示例值:0 4668 func (builder *UploadPartFilePathReqBodyBuilder) Seq(seq int) *UploadPartFilePathReqBodyBuilder { 4669 builder.seq = seq 4670 builder.seqFlag = true 4671 return builder 4672 } 4673 4674 // 块大小(以字节为单位)。 4675 // 4676 // 示例值:4194304 4677 func (builder *UploadPartFilePathReqBodyBuilder) Size(size int) *UploadPartFilePathReqBodyBuilder { 4678 builder.size = size 4679 builder.sizeFlag = true 4680 return builder 4681 } 4682 4683 // 文件分块adler32校验和(可选)。 4684 // 4685 // 示例值:12342388237783212356 4686 func (builder *UploadPartFilePathReqBodyBuilder) Checksum(checksum string) *UploadPartFilePathReqBodyBuilder { 4687 builder.checksum = checksum 4688 builder.checksumFlag = true 4689 return builder 4690 } 4691 4692 // 文件分片二进制内容。 4693 // 4694 // 示例值:file binary 4695 func (builder *UploadPartFilePathReqBodyBuilder) FilePath(filePath string) *UploadPartFilePathReqBodyBuilder { 4696 builder.filePath = filePath 4697 builder.filePathFlag = true 4698 return builder 4699 } 4700 4701 func (builder *UploadPartFilePathReqBodyBuilder) Build() (*UploadPartFileReqBody, error) { 4702 req := &UploadPartFileReqBody{} 4703 if builder.uploadIdFlag { 4704 req.UploadId = &builder.uploadId 4705 } 4706 if builder.seqFlag { 4707 req.Seq = &builder.seq 4708 } 4709 if builder.sizeFlag { 4710 req.Size = &builder.size 4711 } 4712 if builder.checksumFlag { 4713 req.Checksum = &builder.checksum 4714 } 4715 if builder.filePathFlag { 4716 data, err := larkcore.File2Bytes(builder.filePath) 4717 if err != nil { 4718 return nil, err 4719 } 4720 req.File = bytes.NewBuffer(data) 4721 } 4722 return req, nil 4723 } 4724 4725 type UploadPartFileReqBuilder struct { 4726 apiReq *larkcore.ApiReq 4727 body *UploadPartFileReqBody 4728 } 4729 4730 func NewUploadPartFileReqBuilder() *UploadPartFileReqBuilder { 4731 builder := &UploadPartFileReqBuilder{} 4732 builder.apiReq = &larkcore.ApiReq{ 4733 PathParams: larkcore.PathParams{}, 4734 QueryParams: larkcore.QueryParams{}, 4735 } 4736 return builder 4737 } 4738 4739 // 上传对应的文件块。 4740 func (builder *UploadPartFileReqBuilder) Body(body *UploadPartFileReqBody) *UploadPartFileReqBuilder { 4741 builder.body = body 4742 return builder 4743 } 4744 4745 func (builder *UploadPartFileReqBuilder) Build() *UploadPartFileReq { 4746 req := &UploadPartFileReq{} 4747 req.apiReq = &larkcore.ApiReq{} 4748 req.apiReq.Body = builder.body 4749 return req 4750 } 4751 4752 type UploadPartFileReqBody struct { 4753 UploadId *string `json:"upload_id,omitempty"` // 分片上传事务ID。 4754 Seq *int `json:"seq,omitempty"` // 块号,从0开始计数。 4755 Size *int `json:"size,omitempty"` // 块大小(以字节为单位)。 4756 Checksum *string `json:"checksum,omitempty"` // 文件分块adler32校验和(可选)。 4757 File io.Reader `json:"file,omitempty"` // 文件分片二进制内容。 4758 } 4759 4760 type UploadPartFileReq struct { 4761 apiReq *larkcore.ApiReq 4762 Body *UploadPartFileReqBody `body:""` 4763 } 4764 4765 type UploadPartFileResp struct { 4766 *larkcore.ApiResp `json:"-"` 4767 larkcore.CodeError 4768 } 4769 4770 func (resp *UploadPartFileResp) Success() bool { 4771 return resp.Code == 0 4772 } 4773 4774 type UploadPrepareFileReqBuilder struct { 4775 apiReq *larkcore.ApiReq 4776 fileUploadInfo *FileUploadInfo 4777 } 4778 4779 func NewUploadPrepareFileReqBuilder() *UploadPrepareFileReqBuilder { 4780 builder := &UploadPrepareFileReqBuilder{} 4781 builder.apiReq = &larkcore.ApiReq{ 4782 PathParams: larkcore.PathParams{}, 4783 QueryParams: larkcore.QueryParams{}, 4784 } 4785 return builder 4786 } 4787 4788 // 发送初始化请求获取上传事务ID和分块策略,目前是以4MB大小进行定长分片。 4789 func (builder *UploadPrepareFileReqBuilder) FileUploadInfo(fileUploadInfo *FileUploadInfo) *UploadPrepareFileReqBuilder { 4790 builder.fileUploadInfo = fileUploadInfo 4791 return builder 4792 } 4793 4794 func (builder *UploadPrepareFileReqBuilder) Build() *UploadPrepareFileReq { 4795 req := &UploadPrepareFileReq{} 4796 req.apiReq = &larkcore.ApiReq{} 4797 req.apiReq.Body = builder.fileUploadInfo 4798 return req 4799 } 4800 4801 type UploadPrepareFileReq struct { 4802 apiReq *larkcore.ApiReq 4803 FileUploadInfo *FileUploadInfo `body:""` 4804 } 4805 4806 type UploadPrepareFileRespData struct { 4807 UploadId *string `json:"upload_id,omitempty"` // 分片上传事务ID 4808 BlockSize *int `json:"block_size,omitempty"` // 分片大小策略 4809 BlockNum *int `json:"block_num,omitempty"` // 分片数量 4810 } 4811 4812 type UploadPrepareFileResp struct { 4813 *larkcore.ApiResp `json:"-"` 4814 larkcore.CodeError 4815 Data *UploadPrepareFileRespData `json:"data"` // 业务数据 4816 } 4817 4818 func (resp *UploadPrepareFileResp) Success() bool { 4819 return resp.Code == 0 4820 } 4821 4822 type CreateFileCommentReqBuilder struct { 4823 apiReq *larkcore.ApiReq 4824 fileComment *FileComment 4825 } 4826 4827 func NewCreateFileCommentReqBuilder() *CreateFileCommentReqBuilder { 4828 builder := &CreateFileCommentReqBuilder{} 4829 builder.apiReq = &larkcore.ApiReq{ 4830 PathParams: larkcore.PathParams{}, 4831 QueryParams: larkcore.QueryParams{}, 4832 } 4833 return builder 4834 } 4835 4836 // 文档token 4837 // 4838 // 示例值:doccnGp4UK1UskrOEJwBXd3**** 4839 func (builder *CreateFileCommentReqBuilder) FileToken(fileToken string) *CreateFileCommentReqBuilder { 4840 builder.apiReq.PathParams.Set("file_token", fmt.Sprint(fileToken)) 4841 return builder 4842 } 4843 4844 // 文档类型 4845 // 4846 // 示例值:doc 4847 func (builder *CreateFileCommentReqBuilder) FileType(fileType string) *CreateFileCommentReqBuilder { 4848 builder.apiReq.QueryParams.Set("file_type", fmt.Sprint(fileType)) 4849 return builder 4850 } 4851 4852 // 此次调用中使用的用户ID的类型 4853 // 4854 // 示例值: 4855 func (builder *CreateFileCommentReqBuilder) UserIdType(userIdType string) *CreateFileCommentReqBuilder { 4856 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 4857 return builder 4858 } 4859 4860 // 往云文档添加一条全局评论。 4861 func (builder *CreateFileCommentReqBuilder) FileComment(fileComment *FileComment) *CreateFileCommentReqBuilder { 4862 builder.fileComment = fileComment 4863 return builder 4864 } 4865 4866 func (builder *CreateFileCommentReqBuilder) Build() *CreateFileCommentReq { 4867 req := &CreateFileCommentReq{} 4868 req.apiReq = &larkcore.ApiReq{} 4869 req.apiReq.PathParams = builder.apiReq.PathParams 4870 req.apiReq.QueryParams = builder.apiReq.QueryParams 4871 req.apiReq.Body = builder.fileComment 4872 return req 4873 } 4874 4875 type CreateFileCommentReq struct { 4876 apiReq *larkcore.ApiReq 4877 FileComment *FileComment `body:""` 4878 } 4879 4880 type CreateFileCommentRespData struct { 4881 CommentId *string `json:"comment_id,omitempty"` // 评论ID 4882 UserId *string `json:"user_id,omitempty"` // 用户ID 4883 CreateTime *int `json:"create_time,omitempty"` // 创建时间 4884 UpdateTime *int `json:"update_time,omitempty"` // 更新时间 4885 IsSolved *bool `json:"is_solved,omitempty"` // 是否已解决 4886 SolvedTime *int `json:"solved_time,omitempty"` // 解决评论时间 4887 SolverUserId *string `json:"solver_user_id,omitempty"` // 解决评论者的用户ID 4888 HasMore *bool `json:"has_more,omitempty"` // 是否有更多回复 4889 PageToken *string `json:"page_token,omitempty"` // 回复分页标记 4890 IsWhole *bool `json:"is_whole,omitempty"` // 是否是全文评论 4891 Quote *string `json:"quote,omitempty"` // 如果是局部评论,引用字段 4892 ReplyList *ReplyList `json:"reply_list,omitempty"` // 评论里的回复列表 4893 } 4894 4895 type CreateFileCommentResp struct { 4896 *larkcore.ApiResp `json:"-"` 4897 larkcore.CodeError 4898 Data *CreateFileCommentRespData `json:"data"` // 业务数据 4899 } 4900 4901 func (resp *CreateFileCommentResp) Success() bool { 4902 return resp.Code == 0 4903 } 4904 4905 type GetFileCommentReqBuilder struct { 4906 apiReq *larkcore.ApiReq 4907 } 4908 4909 func NewGetFileCommentReqBuilder() *GetFileCommentReqBuilder { 4910 builder := &GetFileCommentReqBuilder{} 4911 builder.apiReq = &larkcore.ApiReq{ 4912 PathParams: larkcore.PathParams{}, 4913 QueryParams: larkcore.QueryParams{}, 4914 } 4915 return builder 4916 } 4917 4918 // 文档token 4919 // 4920 // 示例值:doccnHh7U87HOFpii5u5G***** 4921 func (builder *GetFileCommentReqBuilder) FileToken(fileToken string) *GetFileCommentReqBuilder { 4922 builder.apiReq.PathParams.Set("file_token", fmt.Sprint(fileToken)) 4923 return builder 4924 } 4925 4926 // 评论ID 4927 // 4928 // 示例值:6916106822734578184 4929 func (builder *GetFileCommentReqBuilder) CommentId(commentId string) *GetFileCommentReqBuilder { 4930 builder.apiReq.PathParams.Set("comment_id", fmt.Sprint(commentId)) 4931 return builder 4932 } 4933 4934 // 文档类型 4935 // 4936 // 示例值:doc 4937 func (builder *GetFileCommentReqBuilder) FileType(fileType string) *GetFileCommentReqBuilder { 4938 builder.apiReq.QueryParams.Set("file_type", fmt.Sprint(fileType)) 4939 return builder 4940 } 4941 4942 // 此次调用中使用的用户ID的类型 4943 // 4944 // 示例值: 4945 func (builder *GetFileCommentReqBuilder) UserIdType(userIdType string) *GetFileCommentReqBuilder { 4946 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 4947 return builder 4948 } 4949 4950 func (builder *GetFileCommentReqBuilder) Build() *GetFileCommentReq { 4951 req := &GetFileCommentReq{} 4952 req.apiReq = &larkcore.ApiReq{} 4953 req.apiReq.PathParams = builder.apiReq.PathParams 4954 req.apiReq.QueryParams = builder.apiReq.QueryParams 4955 return req 4956 } 4957 4958 type GetFileCommentReq struct { 4959 apiReq *larkcore.ApiReq 4960 } 4961 4962 type GetFileCommentRespData struct { 4963 CommentId *string `json:"comment_id,omitempty"` // 评论ID 4964 UserId *string `json:"user_id,omitempty"` // 用户ID 4965 CreateTime *int `json:"create_time,omitempty"` // 创建时间 4966 UpdateTime *int `json:"update_time,omitempty"` // 更新时间 4967 IsSolved *bool `json:"is_solved,omitempty"` // 是否已解决 4968 SolvedTime *int `json:"solved_time,omitempty"` // 解决评论时间 4969 SolverUserId *string `json:"solver_user_id,omitempty"` // 解决评论者的用户ID 4970 HasMore *bool `json:"has_more,omitempty"` // 是否有更多回复 4971 PageToken *string `json:"page_token,omitempty"` // 回复分页标记 4972 IsWhole *bool `json:"is_whole,omitempty"` // 是否是全文评论 4973 Quote *string `json:"quote,omitempty"` // 如果是局部评论,引用字段 4974 ReplyList *ReplyList `json:"reply_list,omitempty"` // 评论里的回复列表 4975 } 4976 4977 type GetFileCommentResp struct { 4978 *larkcore.ApiResp `json:"-"` 4979 larkcore.CodeError 4980 Data *GetFileCommentRespData `json:"data"` // 业务数据 4981 } 4982 4983 func (resp *GetFileCommentResp) Success() bool { 4984 return resp.Code == 0 4985 } 4986 4987 type ListFileCommentReqBuilder struct { 4988 apiReq *larkcore.ApiReq 4989 limit int // 最大返回多少记录,当使用迭代器访问时才有效 4990 } 4991 4992 func NewListFileCommentReqBuilder() *ListFileCommentReqBuilder { 4993 builder := &ListFileCommentReqBuilder{} 4994 builder.apiReq = &larkcore.ApiReq{ 4995 PathParams: larkcore.PathParams{}, 4996 QueryParams: larkcore.QueryParams{}, 4997 } 4998 return builder 4999 } 5000 5001 // 最大返回多少记录,当使用迭代器访问时才有效 5002 func (builder *ListFileCommentReqBuilder) Limit(limit int) *ListFileCommentReqBuilder { 5003 builder.limit = limit 5004 return builder 5005 } 5006 5007 // 文档token 5008 // 5009 // 示例值:doccnHh7U87HOFpii5u5G***** 5010 func (builder *ListFileCommentReqBuilder) FileToken(fileToken string) *ListFileCommentReqBuilder { 5011 builder.apiReq.PathParams.Set("file_token", fmt.Sprint(fileToken)) 5012 return builder 5013 } 5014 5015 // 文档类型 5016 // 5017 // 示例值:doc 5018 func (builder *ListFileCommentReqBuilder) FileType(fileType string) *ListFileCommentReqBuilder { 5019 builder.apiReq.QueryParams.Set("file_type", fmt.Sprint(fileType)) 5020 return builder 5021 } 5022 5023 // 此次调用中使用的用户ID的类型 5024 // 5025 // 示例值: 5026 func (builder *ListFileCommentReqBuilder) UserIdType(userIdType string) *ListFileCommentReqBuilder { 5027 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 5028 return builder 5029 } 5030 5031 // 是否已解决(可选) 5032 // 5033 // 示例值:false 5034 func (builder *ListFileCommentReqBuilder) IsSolved(isSolved bool) *ListFileCommentReqBuilder { 5035 builder.apiReq.QueryParams.Set("is_solved", fmt.Sprint(isSolved)) 5036 return builder 5037 } 5038 5039 // 5040 // 5041 // 示例值:6916106822734578184 5042 func (builder *ListFileCommentReqBuilder) PageToken(pageToken string) *ListFileCommentReqBuilder { 5043 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 5044 return builder 5045 } 5046 5047 // 5048 // 5049 // 示例值:10 5050 func (builder *ListFileCommentReqBuilder) PageSize(pageSize int) *ListFileCommentReqBuilder { 5051 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 5052 return builder 5053 } 5054 5055 func (builder *ListFileCommentReqBuilder) Build() *ListFileCommentReq { 5056 req := &ListFileCommentReq{} 5057 req.apiReq = &larkcore.ApiReq{} 5058 req.Limit = builder.limit 5059 req.apiReq.PathParams = builder.apiReq.PathParams 5060 req.apiReq.QueryParams = builder.apiReq.QueryParams 5061 return req 5062 } 5063 5064 type ListFileCommentReq struct { 5065 apiReq *larkcore.ApiReq 5066 Limit int // 最多返回多少记录,只有在使用迭代器访问时,才有效 5067 5068 } 5069 5070 type ListFileCommentRespData struct { 5071 HasMore *bool `json:"has_more,omitempty"` // 是否有下一页数据 5072 PageToken *string `json:"page_token,omitempty"` // 下一页分页的token 5073 Items []*FileComment `json:"items,omitempty"` // 评论列表 5074 } 5075 5076 type ListFileCommentResp struct { 5077 *larkcore.ApiResp `json:"-"` 5078 larkcore.CodeError 5079 Data *ListFileCommentRespData `json:"data"` // 业务数据 5080 } 5081 5082 func (resp *ListFileCommentResp) Success() bool { 5083 return resp.Code == 0 5084 } 5085 5086 type PatchFileCommentReqBodyBuilder struct { 5087 isSolved bool // 评论解决标志 5088 isSolvedFlag bool 5089 } 5090 5091 func NewPatchFileCommentReqBodyBuilder() *PatchFileCommentReqBodyBuilder { 5092 builder := &PatchFileCommentReqBodyBuilder{} 5093 return builder 5094 } 5095 5096 // 评论解决标志 5097 // 5098 //示例值:true 5099 func (builder *PatchFileCommentReqBodyBuilder) IsSolved(isSolved bool) *PatchFileCommentReqBodyBuilder { 5100 builder.isSolved = isSolved 5101 builder.isSolvedFlag = true 5102 return builder 5103 } 5104 5105 func (builder *PatchFileCommentReqBodyBuilder) Build() *PatchFileCommentReqBody { 5106 req := &PatchFileCommentReqBody{} 5107 if builder.isSolvedFlag { 5108 req.IsSolved = &builder.isSolved 5109 } 5110 return req 5111 } 5112 5113 type PatchFileCommentPathReqBodyBuilder struct { 5114 isSolved bool // 评论解决标志 5115 isSolvedFlag bool 5116 } 5117 5118 func NewPatchFileCommentPathReqBodyBuilder() *PatchFileCommentPathReqBodyBuilder { 5119 builder := &PatchFileCommentPathReqBodyBuilder{} 5120 return builder 5121 } 5122 5123 // 评论解决标志 5124 // 5125 // 示例值:true 5126 func (builder *PatchFileCommentPathReqBodyBuilder) IsSolved(isSolved bool) *PatchFileCommentPathReqBodyBuilder { 5127 builder.isSolved = isSolved 5128 builder.isSolvedFlag = true 5129 return builder 5130 } 5131 5132 func (builder *PatchFileCommentPathReqBodyBuilder) Build() (*PatchFileCommentReqBody, error) { 5133 req := &PatchFileCommentReqBody{} 5134 if builder.isSolvedFlag { 5135 req.IsSolved = &builder.isSolved 5136 } 5137 return req, nil 5138 } 5139 5140 type PatchFileCommentReqBuilder struct { 5141 apiReq *larkcore.ApiReq 5142 body *PatchFileCommentReqBody 5143 } 5144 5145 func NewPatchFileCommentReqBuilder() *PatchFileCommentReqBuilder { 5146 builder := &PatchFileCommentReqBuilder{} 5147 builder.apiReq = &larkcore.ApiReq{ 5148 PathParams: larkcore.PathParams{}, 5149 QueryParams: larkcore.QueryParams{}, 5150 } 5151 return builder 5152 } 5153 5154 // 文档token 5155 // 5156 // 示例值:doccnGp4UK1UskrOEJwBXd3**** 5157 func (builder *PatchFileCommentReqBuilder) FileToken(fileToken string) *PatchFileCommentReqBuilder { 5158 builder.apiReq.PathParams.Set("file_token", fmt.Sprint(fileToken)) 5159 return builder 5160 } 5161 5162 // 评论ID 5163 // 5164 // 示例值:6916106822734578184 5165 func (builder *PatchFileCommentReqBuilder) CommentId(commentId string) *PatchFileCommentReqBuilder { 5166 builder.apiReq.PathParams.Set("comment_id", fmt.Sprint(commentId)) 5167 return builder 5168 } 5169 5170 // 文档类型 5171 // 5172 // 示例值:doc 5173 func (builder *PatchFileCommentReqBuilder) FileType(fileType string) *PatchFileCommentReqBuilder { 5174 builder.apiReq.QueryParams.Set("file_type", fmt.Sprint(fileType)) 5175 return builder 5176 } 5177 5178 // 解决或恢复云文档中的评论。 5179 func (builder *PatchFileCommentReqBuilder) Body(body *PatchFileCommentReqBody) *PatchFileCommentReqBuilder { 5180 builder.body = body 5181 return builder 5182 } 5183 5184 func (builder *PatchFileCommentReqBuilder) Build() *PatchFileCommentReq { 5185 req := &PatchFileCommentReq{} 5186 req.apiReq = &larkcore.ApiReq{} 5187 req.apiReq.PathParams = builder.apiReq.PathParams 5188 req.apiReq.QueryParams = builder.apiReq.QueryParams 5189 req.apiReq.Body = builder.body 5190 return req 5191 } 5192 5193 type PatchFileCommentReqBody struct { 5194 IsSolved *bool `json:"is_solved,omitempty"` // 评论解决标志 5195 } 5196 5197 type PatchFileCommentReq struct { 5198 apiReq *larkcore.ApiReq 5199 Body *PatchFileCommentReqBody `body:""` 5200 } 5201 5202 type PatchFileCommentResp struct { 5203 *larkcore.ApiResp `json:"-"` 5204 larkcore.CodeError 5205 } 5206 5207 func (resp *PatchFileCommentResp) Success() bool { 5208 return resp.Code == 0 5209 } 5210 5211 type DeleteFileCommentReplyReqBuilder struct { 5212 apiReq *larkcore.ApiReq 5213 } 5214 5215 func NewDeleteFileCommentReplyReqBuilder() *DeleteFileCommentReplyReqBuilder { 5216 builder := &DeleteFileCommentReplyReqBuilder{} 5217 builder.apiReq = &larkcore.ApiReq{ 5218 PathParams: larkcore.PathParams{}, 5219 QueryParams: larkcore.QueryParams{}, 5220 } 5221 return builder 5222 } 5223 5224 // 文档token 5225 // 5226 // 示例值:doccnHh7U87HOFpii5u5G***** 5227 func (builder *DeleteFileCommentReplyReqBuilder) FileToken(fileToken string) *DeleteFileCommentReplyReqBuilder { 5228 builder.apiReq.PathParams.Set("file_token", fmt.Sprint(fileToken)) 5229 return builder 5230 } 5231 5232 // 评论ID 5233 // 5234 // 示例值:6916106822734578184 5235 func (builder *DeleteFileCommentReplyReqBuilder) CommentId(commentId string) *DeleteFileCommentReplyReqBuilder { 5236 builder.apiReq.PathParams.Set("comment_id", fmt.Sprint(commentId)) 5237 return builder 5238 } 5239 5240 // 回复ID 5241 // 5242 // 示例值:6916106822734594568 5243 func (builder *DeleteFileCommentReplyReqBuilder) ReplyId(replyId string) *DeleteFileCommentReplyReqBuilder { 5244 builder.apiReq.PathParams.Set("reply_id", fmt.Sprint(replyId)) 5245 return builder 5246 } 5247 5248 // 文档类型 5249 // 5250 // 示例值:doc 5251 func (builder *DeleteFileCommentReplyReqBuilder) FileType(fileType string) *DeleteFileCommentReplyReqBuilder { 5252 builder.apiReq.QueryParams.Set("file_type", fmt.Sprint(fileType)) 5253 return builder 5254 } 5255 5256 func (builder *DeleteFileCommentReplyReqBuilder) Build() *DeleteFileCommentReplyReq { 5257 req := &DeleteFileCommentReplyReq{} 5258 req.apiReq = &larkcore.ApiReq{} 5259 req.apiReq.PathParams = builder.apiReq.PathParams 5260 req.apiReq.QueryParams = builder.apiReq.QueryParams 5261 return req 5262 } 5263 5264 type DeleteFileCommentReplyReq struct { 5265 apiReq *larkcore.ApiReq 5266 } 5267 5268 type DeleteFileCommentReplyResp struct { 5269 *larkcore.ApiResp `json:"-"` 5270 larkcore.CodeError 5271 } 5272 5273 func (resp *DeleteFileCommentReplyResp) Success() bool { 5274 return resp.Code == 0 5275 } 5276 5277 type UpdateFileCommentReplyReqBodyBuilder struct { 5278 content *ReplyContent // 回复内容 5279 contentFlag bool 5280 } 5281 5282 func NewUpdateFileCommentReplyReqBodyBuilder() *UpdateFileCommentReplyReqBodyBuilder { 5283 builder := &UpdateFileCommentReplyReqBodyBuilder{} 5284 return builder 5285 } 5286 5287 // 回复内容 5288 // 5289 //示例值: 5290 func (builder *UpdateFileCommentReplyReqBodyBuilder) Content(content *ReplyContent) *UpdateFileCommentReplyReqBodyBuilder { 5291 builder.content = content 5292 builder.contentFlag = true 5293 return builder 5294 } 5295 5296 func (builder *UpdateFileCommentReplyReqBodyBuilder) Build() *UpdateFileCommentReplyReqBody { 5297 req := &UpdateFileCommentReplyReqBody{} 5298 if builder.contentFlag { 5299 req.Content = builder.content 5300 } 5301 return req 5302 } 5303 5304 type UpdateFileCommentReplyPathReqBodyBuilder struct { 5305 content *ReplyContent // 回复内容 5306 contentFlag bool 5307 } 5308 5309 func NewUpdateFileCommentReplyPathReqBodyBuilder() *UpdateFileCommentReplyPathReqBodyBuilder { 5310 builder := &UpdateFileCommentReplyPathReqBodyBuilder{} 5311 return builder 5312 } 5313 5314 // 回复内容 5315 // 5316 // 示例值: 5317 func (builder *UpdateFileCommentReplyPathReqBodyBuilder) Content(content *ReplyContent) *UpdateFileCommentReplyPathReqBodyBuilder { 5318 builder.content = content 5319 builder.contentFlag = true 5320 return builder 5321 } 5322 5323 func (builder *UpdateFileCommentReplyPathReqBodyBuilder) Build() (*UpdateFileCommentReplyReqBody, error) { 5324 req := &UpdateFileCommentReplyReqBody{} 5325 if builder.contentFlag { 5326 req.Content = builder.content 5327 } 5328 return req, nil 5329 } 5330 5331 type UpdateFileCommentReplyReqBuilder struct { 5332 apiReq *larkcore.ApiReq 5333 body *UpdateFileCommentReplyReqBody 5334 } 5335 5336 func NewUpdateFileCommentReplyReqBuilder() *UpdateFileCommentReplyReqBuilder { 5337 builder := &UpdateFileCommentReplyReqBuilder{} 5338 builder.apiReq = &larkcore.ApiReq{ 5339 PathParams: larkcore.PathParams{}, 5340 QueryParams: larkcore.QueryParams{}, 5341 } 5342 return builder 5343 } 5344 5345 // 文档token 5346 // 5347 // 示例值:doccnHh7U87HOFpii5u5G***** 5348 func (builder *UpdateFileCommentReplyReqBuilder) FileToken(fileToken string) *UpdateFileCommentReplyReqBuilder { 5349 builder.apiReq.PathParams.Set("file_token", fmt.Sprint(fileToken)) 5350 return builder 5351 } 5352 5353 // 评论ID 5354 // 5355 // 示例值:6916106822734578184 5356 func (builder *UpdateFileCommentReplyReqBuilder) CommentId(commentId string) *UpdateFileCommentReplyReqBuilder { 5357 builder.apiReq.PathParams.Set("comment_id", fmt.Sprint(commentId)) 5358 return builder 5359 } 5360 5361 // 回复ID 5362 // 5363 // 示例值:6916106822734594568 5364 func (builder *UpdateFileCommentReplyReqBuilder) ReplyId(replyId string) *UpdateFileCommentReplyReqBuilder { 5365 builder.apiReq.PathParams.Set("reply_id", fmt.Sprint(replyId)) 5366 return builder 5367 } 5368 5369 // 文档类型 5370 // 5371 // 示例值:doc 5372 func (builder *UpdateFileCommentReplyReqBuilder) FileType(fileType string) *UpdateFileCommentReplyReqBuilder { 5373 builder.apiReq.QueryParams.Set("file_type", fmt.Sprint(fileType)) 5374 return builder 5375 } 5376 5377 // 此次调用中使用的用户ID的类型 5378 // 5379 // 示例值: 5380 func (builder *UpdateFileCommentReplyReqBuilder) UserIdType(userIdType string) *UpdateFileCommentReplyReqBuilder { 5381 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 5382 return builder 5383 } 5384 5385 // 更新云文档中的某条回复。 5386 func (builder *UpdateFileCommentReplyReqBuilder) Body(body *UpdateFileCommentReplyReqBody) *UpdateFileCommentReplyReqBuilder { 5387 builder.body = body 5388 return builder 5389 } 5390 5391 func (builder *UpdateFileCommentReplyReqBuilder) Build() *UpdateFileCommentReplyReq { 5392 req := &UpdateFileCommentReplyReq{} 5393 req.apiReq = &larkcore.ApiReq{} 5394 req.apiReq.PathParams = builder.apiReq.PathParams 5395 req.apiReq.QueryParams = builder.apiReq.QueryParams 5396 req.apiReq.Body = builder.body 5397 return req 5398 } 5399 5400 type UpdateFileCommentReplyReqBody struct { 5401 Content *ReplyContent `json:"content,omitempty"` // 回复内容 5402 } 5403 5404 type UpdateFileCommentReplyReq struct { 5405 apiReq *larkcore.ApiReq 5406 Body *UpdateFileCommentReplyReqBody `body:""` 5407 } 5408 5409 type UpdateFileCommentReplyResp struct { 5410 *larkcore.ApiResp `json:"-"` 5411 larkcore.CodeError 5412 } 5413 5414 func (resp *UpdateFileCommentReplyResp) Success() bool { 5415 return resp.Code == 0 5416 } 5417 5418 type GetFileStatisticsReqBuilder struct { 5419 apiReq *larkcore.ApiReq 5420 } 5421 5422 func NewGetFileStatisticsReqBuilder() *GetFileStatisticsReqBuilder { 5423 builder := &GetFileStatisticsReqBuilder{} 5424 builder.apiReq = &larkcore.ApiReq{ 5425 PathParams: larkcore.PathParams{}, 5426 QueryParams: larkcore.QueryParams{}, 5427 } 5428 return builder 5429 } 5430 5431 // 文件 token 5432 // 5433 // 示例值:doccnfYZzTlvXqZIGTdAHKabcef 5434 func (builder *GetFileStatisticsReqBuilder) FileToken(fileToken string) *GetFileStatisticsReqBuilder { 5435 builder.apiReq.PathParams.Set("file_token", fmt.Sprint(fileToken)) 5436 return builder 5437 } 5438 5439 // 文档类型 5440 // 5441 // 示例值:doc 5442 func (builder *GetFileStatisticsReqBuilder) FileType(fileType string) *GetFileStatisticsReqBuilder { 5443 builder.apiReq.QueryParams.Set("file_type", fmt.Sprint(fileType)) 5444 return builder 5445 } 5446 5447 func (builder *GetFileStatisticsReqBuilder) Build() *GetFileStatisticsReq { 5448 req := &GetFileStatisticsReq{} 5449 req.apiReq = &larkcore.ApiReq{} 5450 req.apiReq.PathParams = builder.apiReq.PathParams 5451 req.apiReq.QueryParams = builder.apiReq.QueryParams 5452 return req 5453 } 5454 5455 type GetFileStatisticsReq struct { 5456 apiReq *larkcore.ApiReq 5457 } 5458 5459 type GetFileStatisticsRespData struct { 5460 FileToken *string `json:"file_token,omitempty"` // 文件 token 5461 FileType *string `json:"file_type,omitempty"` // 文件类型 5462 Statistics *FileStatistics `json:"statistics,omitempty"` // 文件统计信息 5463 } 5464 5465 type GetFileStatisticsResp struct { 5466 *larkcore.ApiResp `json:"-"` 5467 larkcore.CodeError 5468 Data *GetFileStatisticsRespData `json:"data"` // 业务数据 5469 } 5470 5471 func (resp *GetFileStatisticsResp) Success() bool { 5472 return resp.Code == 0 5473 } 5474 5475 type CreateFileSubscriptionReqBuilder struct { 5476 apiReq *larkcore.ApiReq 5477 fileSubscription *FileSubscription 5478 } 5479 5480 func NewCreateFileSubscriptionReqBuilder() *CreateFileSubscriptionReqBuilder { 5481 builder := &CreateFileSubscriptionReqBuilder{} 5482 builder.apiReq = &larkcore.ApiReq{ 5483 PathParams: larkcore.PathParams{}, 5484 QueryParams: larkcore.QueryParams{}, 5485 } 5486 return builder 5487 } 5488 5489 // 文档token 5490 // 5491 // 示例值:doxcnxxxxxxxxxxxxxxxxxxxxxx 5492 func (builder *CreateFileSubscriptionReqBuilder) FileToken(fileToken string) *CreateFileSubscriptionReqBuilder { 5493 builder.apiReq.PathParams.Set("file_token", fmt.Sprint(fileToken)) 5494 return builder 5495 } 5496 5497 // 订阅文档中的变更事件,当前支持文档评论订阅,订阅后文档评论更新会有“云文档助手”推送给订阅的用户 5498 func (builder *CreateFileSubscriptionReqBuilder) FileSubscription(fileSubscription *FileSubscription) *CreateFileSubscriptionReqBuilder { 5499 builder.fileSubscription = fileSubscription 5500 return builder 5501 } 5502 5503 func (builder *CreateFileSubscriptionReqBuilder) Build() *CreateFileSubscriptionReq { 5504 req := &CreateFileSubscriptionReq{} 5505 req.apiReq = &larkcore.ApiReq{} 5506 req.apiReq.PathParams = builder.apiReq.PathParams 5507 req.apiReq.Body = builder.fileSubscription 5508 return req 5509 } 5510 5511 type CreateFileSubscriptionReq struct { 5512 apiReq *larkcore.ApiReq 5513 FileSubscription *FileSubscription `body:""` 5514 } 5515 5516 type CreateFileSubscriptionRespData struct { 5517 Subscription *FileSubscription `json:"subscription,omitempty"` // 本次增加的文档订阅信息 5518 } 5519 5520 type CreateFileSubscriptionResp struct { 5521 *larkcore.ApiResp `json:"-"` 5522 larkcore.CodeError 5523 Data *CreateFileSubscriptionRespData `json:"data"` // 业务数据 5524 } 5525 5526 func (resp *CreateFileSubscriptionResp) Success() bool { 5527 return resp.Code == 0 5528 } 5529 5530 type GetFileSubscriptionReqBuilder struct { 5531 apiReq *larkcore.ApiReq 5532 fileSubscription *FileSubscription 5533 } 5534 5535 func NewGetFileSubscriptionReqBuilder() *GetFileSubscriptionReqBuilder { 5536 builder := &GetFileSubscriptionReqBuilder{} 5537 builder.apiReq = &larkcore.ApiReq{ 5538 PathParams: larkcore.PathParams{}, 5539 QueryParams: larkcore.QueryParams{}, 5540 } 5541 return builder 5542 } 5543 5544 // 文档token 5545 // 5546 // 示例值:doxcnxxxxxxxxxxxxxxxxxxxxxx 5547 func (builder *GetFileSubscriptionReqBuilder) FileToken(fileToken string) *GetFileSubscriptionReqBuilder { 5548 builder.apiReq.PathParams.Set("file_token", fmt.Sprint(fileToken)) 5549 return builder 5550 } 5551 5552 // 订阅关系ID 5553 // 5554 // 示例值:1234567890987654321 5555 func (builder *GetFileSubscriptionReqBuilder) SubscriptionId(subscriptionId string) *GetFileSubscriptionReqBuilder { 5556 builder.apiReq.PathParams.Set("subscription_id", fmt.Sprint(subscriptionId)) 5557 return builder 5558 } 5559 5560 // 根据订阅ID获取该订阅的状态 5561 func (builder *GetFileSubscriptionReqBuilder) FileSubscription(fileSubscription *FileSubscription) *GetFileSubscriptionReqBuilder { 5562 builder.fileSubscription = fileSubscription 5563 return builder 5564 } 5565 5566 func (builder *GetFileSubscriptionReqBuilder) Build() *GetFileSubscriptionReq { 5567 req := &GetFileSubscriptionReq{} 5568 req.apiReq = &larkcore.ApiReq{} 5569 req.apiReq.PathParams = builder.apiReq.PathParams 5570 req.apiReq.Body = builder.fileSubscription 5571 return req 5572 } 5573 5574 type GetFileSubscriptionReq struct { 5575 apiReq *larkcore.ApiReq 5576 FileSubscription *FileSubscription `body:""` 5577 } 5578 5579 type GetFileSubscriptionRespData struct { 5580 Subscription *FileSubscription `json:"subscription,omitempty"` // 文档订阅信息 5581 } 5582 5583 type GetFileSubscriptionResp struct { 5584 *larkcore.ApiResp `json:"-"` 5585 larkcore.CodeError 5586 Data *GetFileSubscriptionRespData `json:"data"` // 业务数据 5587 } 5588 5589 func (resp *GetFileSubscriptionResp) Success() bool { 5590 return resp.Code == 0 5591 } 5592 5593 type PatchFileSubscriptionReqBodyBuilder struct { 5594 isSubscribe bool // 是否订阅 5595 isSubscribeFlag bool 5596 fileType string // 文档类型 5597 fileTypeFlag bool 5598 } 5599 5600 func NewPatchFileSubscriptionReqBodyBuilder() *PatchFileSubscriptionReqBodyBuilder { 5601 builder := &PatchFileSubscriptionReqBodyBuilder{} 5602 return builder 5603 } 5604 5605 // 是否订阅 5606 // 5607 //示例值:true 5608 func (builder *PatchFileSubscriptionReqBodyBuilder) IsSubscribe(isSubscribe bool) *PatchFileSubscriptionReqBodyBuilder { 5609 builder.isSubscribe = isSubscribe 5610 builder.isSubscribeFlag = true 5611 return builder 5612 } 5613 5614 // 文档类型 5615 // 5616 //示例值:doc 5617 func (builder *PatchFileSubscriptionReqBodyBuilder) FileType(fileType string) *PatchFileSubscriptionReqBodyBuilder { 5618 builder.fileType = fileType 5619 builder.fileTypeFlag = true 5620 return builder 5621 } 5622 5623 func (builder *PatchFileSubscriptionReqBodyBuilder) Build() *PatchFileSubscriptionReqBody { 5624 req := &PatchFileSubscriptionReqBody{} 5625 if builder.isSubscribeFlag { 5626 req.IsSubscribe = &builder.isSubscribe 5627 } 5628 if builder.fileTypeFlag { 5629 req.FileType = &builder.fileType 5630 } 5631 return req 5632 } 5633 5634 type PatchFileSubscriptionPathReqBodyBuilder struct { 5635 isSubscribe bool // 是否订阅 5636 isSubscribeFlag bool 5637 fileType string // 文档类型 5638 fileTypeFlag bool 5639 } 5640 5641 func NewPatchFileSubscriptionPathReqBodyBuilder() *PatchFileSubscriptionPathReqBodyBuilder { 5642 builder := &PatchFileSubscriptionPathReqBodyBuilder{} 5643 return builder 5644 } 5645 5646 // 是否订阅 5647 // 5648 // 示例值:true 5649 func (builder *PatchFileSubscriptionPathReqBodyBuilder) IsSubscribe(isSubscribe bool) *PatchFileSubscriptionPathReqBodyBuilder { 5650 builder.isSubscribe = isSubscribe 5651 builder.isSubscribeFlag = true 5652 return builder 5653 } 5654 5655 // 文档类型 5656 // 5657 // 示例值:doc 5658 func (builder *PatchFileSubscriptionPathReqBodyBuilder) FileType(fileType string) *PatchFileSubscriptionPathReqBodyBuilder { 5659 builder.fileType = fileType 5660 builder.fileTypeFlag = true 5661 return builder 5662 } 5663 5664 func (builder *PatchFileSubscriptionPathReqBodyBuilder) Build() (*PatchFileSubscriptionReqBody, error) { 5665 req := &PatchFileSubscriptionReqBody{} 5666 if builder.isSubscribeFlag { 5667 req.IsSubscribe = &builder.isSubscribe 5668 } 5669 if builder.fileTypeFlag { 5670 req.FileType = &builder.fileType 5671 } 5672 return req, nil 5673 } 5674 5675 type PatchFileSubscriptionReqBuilder struct { 5676 apiReq *larkcore.ApiReq 5677 body *PatchFileSubscriptionReqBody 5678 } 5679 5680 func NewPatchFileSubscriptionReqBuilder() *PatchFileSubscriptionReqBuilder { 5681 builder := &PatchFileSubscriptionReqBuilder{} 5682 builder.apiReq = &larkcore.ApiReq{ 5683 PathParams: larkcore.PathParams{}, 5684 QueryParams: larkcore.QueryParams{}, 5685 } 5686 return builder 5687 } 5688 5689 // 文档token 5690 // 5691 // 示例值:doxcnxxxxxxxxxxxxxxxxxxxxxx 5692 func (builder *PatchFileSubscriptionReqBuilder) FileToken(fileToken string) *PatchFileSubscriptionReqBuilder { 5693 builder.apiReq.PathParams.Set("file_token", fmt.Sprint(fileToken)) 5694 return builder 5695 } 5696 5697 // 订阅关系ID 5698 // 5699 // 示例值:1234567890987654321 5700 func (builder *PatchFileSubscriptionReqBuilder) SubscriptionId(subscriptionId string) *PatchFileSubscriptionReqBuilder { 5701 builder.apiReq.PathParams.Set("subscription_id", fmt.Sprint(subscriptionId)) 5702 return builder 5703 } 5704 5705 // 根据订阅ID更新订阅状态 5706 func (builder *PatchFileSubscriptionReqBuilder) Body(body *PatchFileSubscriptionReqBody) *PatchFileSubscriptionReqBuilder { 5707 builder.body = body 5708 return builder 5709 } 5710 5711 func (builder *PatchFileSubscriptionReqBuilder) Build() *PatchFileSubscriptionReq { 5712 req := &PatchFileSubscriptionReq{} 5713 req.apiReq = &larkcore.ApiReq{} 5714 req.apiReq.PathParams = builder.apiReq.PathParams 5715 req.apiReq.Body = builder.body 5716 return req 5717 } 5718 5719 type PatchFileSubscriptionReqBody struct { 5720 IsSubscribe *bool `json:"is_subscribe,omitempty"` // 是否订阅 5721 FileType *string `json:"file_type,omitempty"` // 文档类型 5722 } 5723 5724 type PatchFileSubscriptionReq struct { 5725 apiReq *larkcore.ApiReq 5726 Body *PatchFileSubscriptionReqBody `body:""` 5727 } 5728 5729 type PatchFileSubscriptionRespData struct { 5730 Subscription *FileSubscription `json:"subscription,omitempty"` // 本次修改的文档订阅信息 5731 } 5732 5733 type PatchFileSubscriptionResp struct { 5734 *larkcore.ApiResp `json:"-"` 5735 larkcore.CodeError 5736 Data *PatchFileSubscriptionRespData `json:"data"` // 业务数据 5737 } 5738 5739 func (resp *PatchFileSubscriptionResp) Success() bool { 5740 return resp.Code == 0 5741 } 5742 5743 type CreateImportTaskReqBuilder struct { 5744 apiReq *larkcore.ApiReq 5745 importTask *ImportTask 5746 } 5747 5748 func NewCreateImportTaskReqBuilder() *CreateImportTaskReqBuilder { 5749 builder := &CreateImportTaskReqBuilder{} 5750 builder.apiReq = &larkcore.ApiReq{ 5751 PathParams: larkcore.PathParams{}, 5752 QueryParams: larkcore.QueryParams{}, 5753 } 5754 return builder 5755 } 5756 5757 // 创建导入任务。支持导入为 doc、docx、sheet、bitable,参考[导入用户指南](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/import_task/import-user-guide) 5758 func (builder *CreateImportTaskReqBuilder) ImportTask(importTask *ImportTask) *CreateImportTaskReqBuilder { 5759 builder.importTask = importTask 5760 return builder 5761 } 5762 5763 func (builder *CreateImportTaskReqBuilder) Build() *CreateImportTaskReq { 5764 req := &CreateImportTaskReq{} 5765 req.apiReq = &larkcore.ApiReq{} 5766 req.apiReq.Body = builder.importTask 5767 return req 5768 } 5769 5770 type CreateImportTaskReq struct { 5771 apiReq *larkcore.ApiReq 5772 ImportTask *ImportTask `body:""` 5773 } 5774 5775 type CreateImportTaskRespData struct { 5776 Ticket *string `json:"ticket,omitempty"` // 导入任务ID 5777 } 5778 5779 type CreateImportTaskResp struct { 5780 *larkcore.ApiResp `json:"-"` 5781 larkcore.CodeError 5782 Data *CreateImportTaskRespData `json:"data"` // 业务数据 5783 } 5784 5785 func (resp *CreateImportTaskResp) Success() bool { 5786 return resp.Code == 0 5787 } 5788 5789 type GetImportTaskReqBuilder struct { 5790 apiReq *larkcore.ApiReq 5791 } 5792 5793 func NewGetImportTaskReqBuilder() *GetImportTaskReqBuilder { 5794 builder := &GetImportTaskReqBuilder{} 5795 builder.apiReq = &larkcore.ApiReq{ 5796 PathParams: larkcore.PathParams{}, 5797 QueryParams: larkcore.QueryParams{}, 5798 } 5799 return builder 5800 } 5801 5802 // 导入任务ID 5803 // 5804 // 示例值:6990281865xxxxxxxx7843 5805 func (builder *GetImportTaskReqBuilder) Ticket(ticket string) *GetImportTaskReqBuilder { 5806 builder.apiReq.PathParams.Set("ticket", fmt.Sprint(ticket)) 5807 return builder 5808 } 5809 5810 func (builder *GetImportTaskReqBuilder) Build() *GetImportTaskReq { 5811 req := &GetImportTaskReq{} 5812 req.apiReq = &larkcore.ApiReq{} 5813 req.apiReq.PathParams = builder.apiReq.PathParams 5814 return req 5815 } 5816 5817 type GetImportTaskReq struct { 5818 apiReq *larkcore.ApiReq 5819 } 5820 5821 type GetImportTaskRespData struct { 5822 Result *ImportTask `json:"result,omitempty"` // 导入结果 5823 } 5824 5825 type GetImportTaskResp struct { 5826 *larkcore.ApiResp `json:"-"` 5827 larkcore.CodeError 5828 Data *GetImportTaskRespData `json:"data"` // 业务数据 5829 } 5830 5831 func (resp *GetImportTaskResp) Success() bool { 5832 return resp.Code == 0 5833 } 5834 5835 type BatchGetTmpDownloadUrlMediaReqBuilder struct { 5836 apiReq *larkcore.ApiReq 5837 } 5838 5839 func NewBatchGetTmpDownloadUrlMediaReqBuilder() *BatchGetTmpDownloadUrlMediaReqBuilder { 5840 builder := &BatchGetTmpDownloadUrlMediaReqBuilder{} 5841 builder.apiReq = &larkcore.ApiReq{ 5842 PathParams: larkcore.PathParams{}, 5843 QueryParams: larkcore.QueryParams{}, 5844 } 5845 return builder 5846 } 5847 5848 // 文件标识符列表 5849 // 5850 // 示例值:boxcnrHpsg1QDqXAAAyachabcef 5851 func (builder *BatchGetTmpDownloadUrlMediaReqBuilder) FileTokens(fileTokens []string) *BatchGetTmpDownloadUrlMediaReqBuilder { 5852 builder.apiReq.QueryParams.Set("file_tokens", fmt.Sprint(fileTokens)) 5853 return builder 5854 } 5855 5856 // 拓展信息(可选) 5857 // 5858 // 示例值:[请参考-上传点类型及对应Extra说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/media/introduction) 5859 func (builder *BatchGetTmpDownloadUrlMediaReqBuilder) Extra(extra string) *BatchGetTmpDownloadUrlMediaReqBuilder { 5860 builder.apiReq.QueryParams.Set("extra", fmt.Sprint(extra)) 5861 return builder 5862 } 5863 5864 func (builder *BatchGetTmpDownloadUrlMediaReqBuilder) Build() *BatchGetTmpDownloadUrlMediaReq { 5865 req := &BatchGetTmpDownloadUrlMediaReq{} 5866 req.apiReq = &larkcore.ApiReq{} 5867 req.apiReq.QueryParams = builder.apiReq.QueryParams 5868 return req 5869 } 5870 5871 type BatchGetTmpDownloadUrlMediaReq struct { 5872 apiReq *larkcore.ApiReq 5873 } 5874 5875 type BatchGetTmpDownloadUrlMediaRespData struct { 5876 TmpDownloadUrls []*TmpDownloadUrl `json:"tmp_download_urls,omitempty"` // 临时下载列表 5877 } 5878 5879 type BatchGetTmpDownloadUrlMediaResp struct { 5880 *larkcore.ApiResp `json:"-"` 5881 larkcore.CodeError 5882 Data *BatchGetTmpDownloadUrlMediaRespData `json:"data"` // 业务数据 5883 } 5884 5885 func (resp *BatchGetTmpDownloadUrlMediaResp) Success() bool { 5886 return resp.Code == 0 5887 } 5888 5889 type DownloadMediaReqBuilder struct { 5890 apiReq *larkcore.ApiReq 5891 } 5892 5893 func NewDownloadMediaReqBuilder() *DownloadMediaReqBuilder { 5894 builder := &DownloadMediaReqBuilder{} 5895 builder.apiReq = &larkcore.ApiReq{ 5896 PathParams: larkcore.PathParams{}, 5897 QueryParams: larkcore.QueryParams{}, 5898 } 5899 return builder 5900 } 5901 5902 // 文件的 token,获取方式见 [概述](/ssl:ttdoc/ukTMukTMukTM/uUDN04SN0QjL1QDN/files/guide/introduction) 5903 // 5904 // 示例值:boxcnrHpsg1QDqXAAAyachabcef 5905 func (builder *DownloadMediaReqBuilder) FileToken(fileToken string) *DownloadMediaReqBuilder { 5906 builder.apiReq.PathParams.Set("file_token", fmt.Sprint(fileToken)) 5907 return builder 5908 } 5909 5910 // 扩展信息 5911 // 5912 // 示例值:[请参考-上传点类型及对应Extra说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/drive-v1/media/introduction) 5913 func (builder *DownloadMediaReqBuilder) Extra(extra string) *DownloadMediaReqBuilder { 5914 builder.apiReq.QueryParams.Set("extra", fmt.Sprint(extra)) 5915 return builder 5916 } 5917 5918 func (builder *DownloadMediaReqBuilder) Build() *DownloadMediaReq { 5919 req := &DownloadMediaReq{} 5920 req.apiReq = &larkcore.ApiReq{} 5921 req.apiReq.PathParams = builder.apiReq.PathParams 5922 req.apiReq.QueryParams = builder.apiReq.QueryParams 5923 return req 5924 } 5925 5926 type DownloadMediaReq struct { 5927 apiReq *larkcore.ApiReq 5928 } 5929 5930 type DownloadMediaResp struct { 5931 *larkcore.ApiResp `json:"-"` 5932 larkcore.CodeError 5933 File io.Reader `json:"-"` 5934 FileName string `json:"-"` 5935 } 5936 5937 func (resp *DownloadMediaResp) Success() bool { 5938 return resp.Code == 0 5939 } 5940 5941 func (resp *DownloadMediaResp) WriteFile(fileName string) error { 5942 bs, err := ioutil.ReadAll(resp.File) 5943 if err != nil { 5944 return err 5945 } 5946 5947 err = ioutil.WriteFile(fileName, bs, 0666) 5948 if err != nil { 5949 return err 5950 } 5951 return nil 5952 } 5953 5954 type UploadAllMediaReqBodyBuilder struct { 5955 fileName string // 文件名。 5956 fileNameFlag bool 5957 parentType string // 上传点类型。 5958 parentTypeFlag bool 5959 parentNode string // 上传点的token。 5960 parentNodeFlag bool 5961 size int // 文件大小(以字节为单位)。 5962 sizeFlag bool 5963 checksum string // 文件adler32校验和(可选)。 5964 checksumFlag bool 5965 extra string // 扩展信息(可选)。 5966 extraFlag bool 5967 file io.Reader // 文件二进制内容。 5968 fileFlag bool 5969 } 5970 5971 func NewUploadAllMediaReqBodyBuilder() *UploadAllMediaReqBodyBuilder { 5972 builder := &UploadAllMediaReqBodyBuilder{} 5973 return builder 5974 } 5975 5976 // 文件名。 5977 // 5978 //示例值:demo.jpeg 5979 func (builder *UploadAllMediaReqBodyBuilder) FileName(fileName string) *UploadAllMediaReqBodyBuilder { 5980 builder.fileName = fileName 5981 builder.fileNameFlag = true 5982 return builder 5983 } 5984 5985 // 上传点类型。 5986 // 5987 //示例值:doc_image 5988 func (builder *UploadAllMediaReqBodyBuilder) ParentType(parentType string) *UploadAllMediaReqBodyBuilder { 5989 builder.parentType = parentType 5990 builder.parentTypeFlag = true 5991 return builder 5992 } 5993 5994 // 上传点的token。 5995 // 5996 //示例值:doccnFivLCfJfblZjGZtxgabcef 5997 func (builder *UploadAllMediaReqBodyBuilder) ParentNode(parentNode string) *UploadAllMediaReqBodyBuilder { 5998 builder.parentNode = parentNode 5999 builder.parentNodeFlag = true 6000 return builder 6001 } 6002 6003 // 文件大小(以字节为单位)。 6004 // 6005 //示例值:1024 6006 func (builder *UploadAllMediaReqBodyBuilder) Size(size int) *UploadAllMediaReqBodyBuilder { 6007 builder.size = size 6008 builder.sizeFlag = true 6009 return builder 6010 } 6011 6012 // 文件adler32校验和(可选)。 6013 // 6014 //示例值:12345678 6015 func (builder *UploadAllMediaReqBodyBuilder) Checksum(checksum string) *UploadAllMediaReqBodyBuilder { 6016 builder.checksum = checksum 6017 builder.checksumFlag = true 6018 return builder 6019 } 6020 6021 // 扩展信息(可选)。 6022 // 6023 //示例值:{"test":"test"} 6024 func (builder *UploadAllMediaReqBodyBuilder) Extra(extra string) *UploadAllMediaReqBodyBuilder { 6025 builder.extra = extra 6026 builder.extraFlag = true 6027 return builder 6028 } 6029 6030 // 文件二进制内容。 6031 // 6032 //示例值:file binary 6033 func (builder *UploadAllMediaReqBodyBuilder) File(file io.Reader) *UploadAllMediaReqBodyBuilder { 6034 builder.file = file 6035 builder.fileFlag = true 6036 return builder 6037 } 6038 6039 func (builder *UploadAllMediaReqBodyBuilder) Build() *UploadAllMediaReqBody { 6040 req := &UploadAllMediaReqBody{} 6041 if builder.fileNameFlag { 6042 req.FileName = &builder.fileName 6043 } 6044 if builder.parentTypeFlag { 6045 req.ParentType = &builder.parentType 6046 } 6047 if builder.parentNodeFlag { 6048 req.ParentNode = &builder.parentNode 6049 } 6050 if builder.sizeFlag { 6051 req.Size = &builder.size 6052 } 6053 if builder.checksumFlag { 6054 req.Checksum = &builder.checksum 6055 } 6056 if builder.extraFlag { 6057 req.Extra = &builder.extra 6058 } 6059 if builder.fileFlag { 6060 req.File = builder.file 6061 } 6062 return req 6063 } 6064 6065 type UploadAllMediaPathReqBodyBuilder struct { 6066 fileName string // 文件名。 6067 fileNameFlag bool 6068 parentType string // 上传点类型。 6069 parentTypeFlag bool 6070 parentNode string // 上传点的token。 6071 parentNodeFlag bool 6072 size int // 文件大小(以字节为单位)。 6073 sizeFlag bool 6074 checksum string // 文件adler32校验和(可选)。 6075 checksumFlag bool 6076 extra string // 扩展信息(可选)。 6077 extraFlag bool 6078 filePath string // 文件二进制内容。 6079 filePathFlag bool 6080 } 6081 6082 func NewUploadAllMediaPathReqBodyBuilder() *UploadAllMediaPathReqBodyBuilder { 6083 builder := &UploadAllMediaPathReqBodyBuilder{} 6084 return builder 6085 } 6086 6087 // 文件名。 6088 // 6089 // 示例值:demo.jpeg 6090 func (builder *UploadAllMediaPathReqBodyBuilder) FileName(fileName string) *UploadAllMediaPathReqBodyBuilder { 6091 builder.fileName = fileName 6092 builder.fileNameFlag = true 6093 return builder 6094 } 6095 6096 // 上传点类型。 6097 // 6098 // 示例值:doc_image 6099 func (builder *UploadAllMediaPathReqBodyBuilder) ParentType(parentType string) *UploadAllMediaPathReqBodyBuilder { 6100 builder.parentType = parentType 6101 builder.parentTypeFlag = true 6102 return builder 6103 } 6104 6105 // 上传点的token。 6106 // 6107 // 示例值:doccnFivLCfJfblZjGZtxgabcef 6108 func (builder *UploadAllMediaPathReqBodyBuilder) ParentNode(parentNode string) *UploadAllMediaPathReqBodyBuilder { 6109 builder.parentNode = parentNode 6110 builder.parentNodeFlag = true 6111 return builder 6112 } 6113 6114 // 文件大小(以字节为单位)。 6115 // 6116 // 示例值:1024 6117 func (builder *UploadAllMediaPathReqBodyBuilder) Size(size int) *UploadAllMediaPathReqBodyBuilder { 6118 builder.size = size 6119 builder.sizeFlag = true 6120 return builder 6121 } 6122 6123 // 文件adler32校验和(可选)。 6124 // 6125 // 示例值:12345678 6126 func (builder *UploadAllMediaPathReqBodyBuilder) Checksum(checksum string) *UploadAllMediaPathReqBodyBuilder { 6127 builder.checksum = checksum 6128 builder.checksumFlag = true 6129 return builder 6130 } 6131 6132 // 扩展信息(可选)。 6133 // 6134 // 示例值:{"test":"test"} 6135 func (builder *UploadAllMediaPathReqBodyBuilder) Extra(extra string) *UploadAllMediaPathReqBodyBuilder { 6136 builder.extra = extra 6137 builder.extraFlag = true 6138 return builder 6139 } 6140 6141 // 文件二进制内容。 6142 // 6143 // 示例值:file binary 6144 func (builder *UploadAllMediaPathReqBodyBuilder) FilePath(filePath string) *UploadAllMediaPathReqBodyBuilder { 6145 builder.filePath = filePath 6146 builder.filePathFlag = true 6147 return builder 6148 } 6149 6150 func (builder *UploadAllMediaPathReqBodyBuilder) Build() (*UploadAllMediaReqBody, error) { 6151 req := &UploadAllMediaReqBody{} 6152 if builder.fileNameFlag { 6153 req.FileName = &builder.fileName 6154 } 6155 if builder.parentTypeFlag { 6156 req.ParentType = &builder.parentType 6157 } 6158 if builder.parentNodeFlag { 6159 req.ParentNode = &builder.parentNode 6160 } 6161 if builder.sizeFlag { 6162 req.Size = &builder.size 6163 } 6164 if builder.checksumFlag { 6165 req.Checksum = &builder.checksum 6166 } 6167 if builder.extraFlag { 6168 req.Extra = &builder.extra 6169 } 6170 if builder.filePathFlag { 6171 data, err := larkcore.File2Bytes(builder.filePath) 6172 if err != nil { 6173 return nil, err 6174 } 6175 req.File = bytes.NewBuffer(data) 6176 } 6177 return req, nil 6178 } 6179 6180 type UploadAllMediaReqBuilder struct { 6181 apiReq *larkcore.ApiReq 6182 body *UploadAllMediaReqBody 6183 } 6184 6185 func NewUploadAllMediaReqBuilder() *UploadAllMediaReqBuilder { 6186 builder := &UploadAllMediaReqBuilder{} 6187 builder.apiReq = &larkcore.ApiReq{ 6188 PathParams: larkcore.PathParams{}, 6189 QueryParams: larkcore.QueryParams{}, 6190 } 6191 return builder 6192 } 6193 6194 // 将文件、图片、视频等素材文件上传到指定云文档中。素材文件在云空间中不会显示,只会显示在对应云文档中。 6195 func (builder *UploadAllMediaReqBuilder) Body(body *UploadAllMediaReqBody) *UploadAllMediaReqBuilder { 6196 builder.body = body 6197 return builder 6198 } 6199 6200 func (builder *UploadAllMediaReqBuilder) Build() *UploadAllMediaReq { 6201 req := &UploadAllMediaReq{} 6202 req.apiReq = &larkcore.ApiReq{} 6203 req.apiReq.Body = builder.body 6204 return req 6205 } 6206 6207 type UploadAllMediaReqBody struct { 6208 FileName *string `json:"file_name,omitempty"` // 文件名。 6209 ParentType *string `json:"parent_type,omitempty"` // 上传点类型。 6210 ParentNode *string `json:"parent_node,omitempty"` // 上传点的token。 6211 Size *int `json:"size,omitempty"` // 文件大小(以字节为单位)。 6212 Checksum *string `json:"checksum,omitempty"` // 文件adler32校验和(可选)。 6213 Extra *string `json:"extra,omitempty"` // 扩展信息(可选)。 6214 File io.Reader `json:"file,omitempty"` // 文件二进制内容。 6215 } 6216 6217 type UploadAllMediaReq struct { 6218 apiReq *larkcore.ApiReq 6219 Body *UploadAllMediaReqBody `body:""` 6220 } 6221 6222 type UploadAllMediaRespData struct { 6223 FileToken *string `json:"file_token,omitempty"` // 素材文件的 token。 6224 } 6225 6226 type UploadAllMediaResp struct { 6227 *larkcore.ApiResp `json:"-"` 6228 larkcore.CodeError 6229 Data *UploadAllMediaRespData `json:"data"` // 业务数据 6230 } 6231 6232 func (resp *UploadAllMediaResp) Success() bool { 6233 return resp.Code == 0 6234 } 6235 6236 type UploadFinishMediaReqBodyBuilder struct { 6237 uploadId string // 分片上传事务ID 6238 uploadIdFlag bool 6239 blockNum int // 分片数量 6240 blockNumFlag bool 6241 } 6242 6243 func NewUploadFinishMediaReqBodyBuilder() *UploadFinishMediaReqBodyBuilder { 6244 builder := &UploadFinishMediaReqBodyBuilder{} 6245 return builder 6246 } 6247 6248 // 分片上传事务ID 6249 // 6250 //示例值:7111211691345512356 6251 func (builder *UploadFinishMediaReqBodyBuilder) UploadId(uploadId string) *UploadFinishMediaReqBodyBuilder { 6252 builder.uploadId = uploadId 6253 builder.uploadIdFlag = true 6254 return builder 6255 } 6256 6257 // 分片数量 6258 // 6259 //示例值:1 6260 func (builder *UploadFinishMediaReqBodyBuilder) BlockNum(blockNum int) *UploadFinishMediaReqBodyBuilder { 6261 builder.blockNum = blockNum 6262 builder.blockNumFlag = true 6263 return builder 6264 } 6265 6266 func (builder *UploadFinishMediaReqBodyBuilder) Build() *UploadFinishMediaReqBody { 6267 req := &UploadFinishMediaReqBody{} 6268 if builder.uploadIdFlag { 6269 req.UploadId = &builder.uploadId 6270 } 6271 if builder.blockNumFlag { 6272 req.BlockNum = &builder.blockNum 6273 } 6274 return req 6275 } 6276 6277 type UploadFinishMediaPathReqBodyBuilder struct { 6278 uploadId string // 分片上传事务ID 6279 uploadIdFlag bool 6280 blockNum int // 分片数量 6281 blockNumFlag bool 6282 } 6283 6284 func NewUploadFinishMediaPathReqBodyBuilder() *UploadFinishMediaPathReqBodyBuilder { 6285 builder := &UploadFinishMediaPathReqBodyBuilder{} 6286 return builder 6287 } 6288 6289 // 分片上传事务ID 6290 // 6291 // 示例值:7111211691345512356 6292 func (builder *UploadFinishMediaPathReqBodyBuilder) UploadId(uploadId string) *UploadFinishMediaPathReqBodyBuilder { 6293 builder.uploadId = uploadId 6294 builder.uploadIdFlag = true 6295 return builder 6296 } 6297 6298 // 分片数量 6299 // 6300 // 示例值:1 6301 func (builder *UploadFinishMediaPathReqBodyBuilder) BlockNum(blockNum int) *UploadFinishMediaPathReqBodyBuilder { 6302 builder.blockNum = blockNum 6303 builder.blockNumFlag = true 6304 return builder 6305 } 6306 6307 func (builder *UploadFinishMediaPathReqBodyBuilder) Build() (*UploadFinishMediaReqBody, error) { 6308 req := &UploadFinishMediaReqBody{} 6309 if builder.uploadIdFlag { 6310 req.UploadId = &builder.uploadId 6311 } 6312 if builder.blockNumFlag { 6313 req.BlockNum = &builder.blockNum 6314 } 6315 return req, nil 6316 } 6317 6318 type UploadFinishMediaReqBuilder struct { 6319 apiReq *larkcore.ApiReq 6320 body *UploadFinishMediaReqBody 6321 } 6322 6323 func NewUploadFinishMediaReqBuilder() *UploadFinishMediaReqBuilder { 6324 builder := &UploadFinishMediaReqBuilder{} 6325 builder.apiReq = &larkcore.ApiReq{ 6326 PathParams: larkcore.PathParams{}, 6327 QueryParams: larkcore.QueryParams{}, 6328 } 6329 return builder 6330 } 6331 6332 // 触发完成上传。 6333 func (builder *UploadFinishMediaReqBuilder) Body(body *UploadFinishMediaReqBody) *UploadFinishMediaReqBuilder { 6334 builder.body = body 6335 return builder 6336 } 6337 6338 func (builder *UploadFinishMediaReqBuilder) Build() *UploadFinishMediaReq { 6339 req := &UploadFinishMediaReq{} 6340 req.apiReq = &larkcore.ApiReq{} 6341 req.apiReq.Body = builder.body 6342 return req 6343 } 6344 6345 type UploadFinishMediaReqBody struct { 6346 UploadId *string `json:"upload_id,omitempty"` // 分片上传事务ID 6347 BlockNum *int `json:"block_num,omitempty"` // 分片数量 6348 } 6349 6350 type UploadFinishMediaReq struct { 6351 apiReq *larkcore.ApiReq 6352 Body *UploadFinishMediaReqBody `body:""` 6353 } 6354 6355 type UploadFinishMediaRespData struct { 6356 FileToken *string `json:"file_token,omitempty"` // 新创建文件的 token 6357 } 6358 6359 type UploadFinishMediaResp struct { 6360 *larkcore.ApiResp `json:"-"` 6361 larkcore.CodeError 6362 Data *UploadFinishMediaRespData `json:"data"` // 业务数据 6363 } 6364 6365 func (resp *UploadFinishMediaResp) Success() bool { 6366 return resp.Code == 0 6367 } 6368 6369 type UploadPartMediaReqBodyBuilder struct { 6370 uploadId string // 分片上传事务ID。 6371 uploadIdFlag bool 6372 seq int // 块号,从0开始计数。 6373 seqFlag bool 6374 size int // 块大小(以字节为单位)。 6375 sizeFlag bool 6376 checksum string // 文件分块adler32校验和(可选)。 6377 checksumFlag bool 6378 file io.Reader // 文件分片二进制内容。 6379 fileFlag bool 6380 } 6381 6382 func NewUploadPartMediaReqBodyBuilder() *UploadPartMediaReqBodyBuilder { 6383 builder := &UploadPartMediaReqBodyBuilder{} 6384 return builder 6385 } 6386 6387 // 分片上传事务ID。 6388 // 6389 //示例值:7111211691345512356 6390 func (builder *UploadPartMediaReqBodyBuilder) UploadId(uploadId string) *UploadPartMediaReqBodyBuilder { 6391 builder.uploadId = uploadId 6392 builder.uploadIdFlag = true 6393 return builder 6394 } 6395 6396 // 块号,从0开始计数。 6397 // 6398 //示例值:0 6399 func (builder *UploadPartMediaReqBodyBuilder) Seq(seq int) *UploadPartMediaReqBodyBuilder { 6400 builder.seq = seq 6401 builder.seqFlag = true 6402 return builder 6403 } 6404 6405 // 块大小(以字节为单位)。 6406 // 6407 //示例值:4194304 6408 func (builder *UploadPartMediaReqBodyBuilder) Size(size int) *UploadPartMediaReqBodyBuilder { 6409 builder.size = size 6410 builder.sizeFlag = true 6411 return builder 6412 } 6413 6414 // 文件分块adler32校验和(可选)。 6415 // 6416 //示例值:12345678 6417 func (builder *UploadPartMediaReqBodyBuilder) Checksum(checksum string) *UploadPartMediaReqBodyBuilder { 6418 builder.checksum = checksum 6419 builder.checksumFlag = true 6420 return builder 6421 } 6422 6423 // 文件分片二进制内容。 6424 // 6425 //示例值:file binary 6426 func (builder *UploadPartMediaReqBodyBuilder) File(file io.Reader) *UploadPartMediaReqBodyBuilder { 6427 builder.file = file 6428 builder.fileFlag = true 6429 return builder 6430 } 6431 6432 func (builder *UploadPartMediaReqBodyBuilder) Build() *UploadPartMediaReqBody { 6433 req := &UploadPartMediaReqBody{} 6434 if builder.uploadIdFlag { 6435 req.UploadId = &builder.uploadId 6436 } 6437 if builder.seqFlag { 6438 req.Seq = &builder.seq 6439 } 6440 if builder.sizeFlag { 6441 req.Size = &builder.size 6442 } 6443 if builder.checksumFlag { 6444 req.Checksum = &builder.checksum 6445 } 6446 if builder.fileFlag { 6447 req.File = builder.file 6448 } 6449 return req 6450 } 6451 6452 type UploadPartMediaPathReqBodyBuilder struct { 6453 uploadId string // 分片上传事务ID。 6454 uploadIdFlag bool 6455 seq int // 块号,从0开始计数。 6456 seqFlag bool 6457 size int // 块大小(以字节为单位)。 6458 sizeFlag bool 6459 checksum string // 文件分块adler32校验和(可选)。 6460 checksumFlag bool 6461 filePath string // 文件分片二进制内容。 6462 filePathFlag bool 6463 } 6464 6465 func NewUploadPartMediaPathReqBodyBuilder() *UploadPartMediaPathReqBodyBuilder { 6466 builder := &UploadPartMediaPathReqBodyBuilder{} 6467 return builder 6468 } 6469 6470 // 分片上传事务ID。 6471 // 6472 // 示例值:7111211691345512356 6473 func (builder *UploadPartMediaPathReqBodyBuilder) UploadId(uploadId string) *UploadPartMediaPathReqBodyBuilder { 6474 builder.uploadId = uploadId 6475 builder.uploadIdFlag = true 6476 return builder 6477 } 6478 6479 // 块号,从0开始计数。 6480 // 6481 // 示例值:0 6482 func (builder *UploadPartMediaPathReqBodyBuilder) Seq(seq int) *UploadPartMediaPathReqBodyBuilder { 6483 builder.seq = seq 6484 builder.seqFlag = true 6485 return builder 6486 } 6487 6488 // 块大小(以字节为单位)。 6489 // 6490 // 示例值:4194304 6491 func (builder *UploadPartMediaPathReqBodyBuilder) Size(size int) *UploadPartMediaPathReqBodyBuilder { 6492 builder.size = size 6493 builder.sizeFlag = true 6494 return builder 6495 } 6496 6497 // 文件分块adler32校验和(可选)。 6498 // 6499 // 示例值:12345678 6500 func (builder *UploadPartMediaPathReqBodyBuilder) Checksum(checksum string) *UploadPartMediaPathReqBodyBuilder { 6501 builder.checksum = checksum 6502 builder.checksumFlag = true 6503 return builder 6504 } 6505 6506 // 文件分片二进制内容。 6507 // 6508 // 示例值:file binary 6509 func (builder *UploadPartMediaPathReqBodyBuilder) FilePath(filePath string) *UploadPartMediaPathReqBodyBuilder { 6510 builder.filePath = filePath 6511 builder.filePathFlag = true 6512 return builder 6513 } 6514 6515 func (builder *UploadPartMediaPathReqBodyBuilder) Build() (*UploadPartMediaReqBody, error) { 6516 req := &UploadPartMediaReqBody{} 6517 if builder.uploadIdFlag { 6518 req.UploadId = &builder.uploadId 6519 } 6520 if builder.seqFlag { 6521 req.Seq = &builder.seq 6522 } 6523 if builder.sizeFlag { 6524 req.Size = &builder.size 6525 } 6526 if builder.checksumFlag { 6527 req.Checksum = &builder.checksum 6528 } 6529 if builder.filePathFlag { 6530 data, err := larkcore.File2Bytes(builder.filePath) 6531 if err != nil { 6532 return nil, err 6533 } 6534 req.File = bytes.NewBuffer(data) 6535 } 6536 return req, nil 6537 } 6538 6539 type UploadPartMediaReqBuilder struct { 6540 apiReq *larkcore.ApiReq 6541 body *UploadPartMediaReqBody 6542 } 6543 6544 func NewUploadPartMediaReqBuilder() *UploadPartMediaReqBuilder { 6545 builder := &UploadPartMediaReqBuilder{} 6546 builder.apiReq = &larkcore.ApiReq{ 6547 PathParams: larkcore.PathParams{}, 6548 QueryParams: larkcore.QueryParams{}, 6549 } 6550 return builder 6551 } 6552 6553 // 上传对应的文件块。 6554 func (builder *UploadPartMediaReqBuilder) Body(body *UploadPartMediaReqBody) *UploadPartMediaReqBuilder { 6555 builder.body = body 6556 return builder 6557 } 6558 6559 func (builder *UploadPartMediaReqBuilder) Build() *UploadPartMediaReq { 6560 req := &UploadPartMediaReq{} 6561 req.apiReq = &larkcore.ApiReq{} 6562 req.apiReq.Body = builder.body 6563 return req 6564 } 6565 6566 type UploadPartMediaReqBody struct { 6567 UploadId *string `json:"upload_id,omitempty"` // 分片上传事务ID。 6568 Seq *int `json:"seq,omitempty"` // 块号,从0开始计数。 6569 Size *int `json:"size,omitempty"` // 块大小(以字节为单位)。 6570 Checksum *string `json:"checksum,omitempty"` // 文件分块adler32校验和(可选)。 6571 File io.Reader `json:"file,omitempty"` // 文件分片二进制内容。 6572 } 6573 6574 type UploadPartMediaReq struct { 6575 apiReq *larkcore.ApiReq 6576 Body *UploadPartMediaReqBody `body:""` 6577 } 6578 6579 type UploadPartMediaResp struct { 6580 *larkcore.ApiResp `json:"-"` 6581 larkcore.CodeError 6582 } 6583 6584 func (resp *UploadPartMediaResp) Success() bool { 6585 return resp.Code == 0 6586 } 6587 6588 type UploadPrepareMediaReqBuilder struct { 6589 apiReq *larkcore.ApiReq 6590 mediaUploadInfo *MediaUploadInfo 6591 } 6592 6593 func NewUploadPrepareMediaReqBuilder() *UploadPrepareMediaReqBuilder { 6594 builder := &UploadPrepareMediaReqBuilder{} 6595 builder.apiReq = &larkcore.ApiReq{ 6596 PathParams: larkcore.PathParams{}, 6597 QueryParams: larkcore.QueryParams{}, 6598 } 6599 return builder 6600 } 6601 6602 // 发送初始化请求获取上传事务ID和分块策略,目前是以4MB大小进行定长分片。 6603 func (builder *UploadPrepareMediaReqBuilder) MediaUploadInfo(mediaUploadInfo *MediaUploadInfo) *UploadPrepareMediaReqBuilder { 6604 builder.mediaUploadInfo = mediaUploadInfo 6605 return builder 6606 } 6607 6608 func (builder *UploadPrepareMediaReqBuilder) Build() *UploadPrepareMediaReq { 6609 req := &UploadPrepareMediaReq{} 6610 req.apiReq = &larkcore.ApiReq{} 6611 req.apiReq.Body = builder.mediaUploadInfo 6612 return req 6613 } 6614 6615 type UploadPrepareMediaReq struct { 6616 apiReq *larkcore.ApiReq 6617 MediaUploadInfo *MediaUploadInfo `body:""` 6618 } 6619 6620 type UploadPrepareMediaRespData struct { 6621 UploadId *string `json:"upload_id,omitempty"` // 分片上传事务ID 6622 BlockSize *int `json:"block_size,omitempty"` // 分片大小策略 6623 BlockNum *int `json:"block_num,omitempty"` // 分片数量 6624 } 6625 6626 type UploadPrepareMediaResp struct { 6627 *larkcore.ApiResp `json:"-"` 6628 larkcore.CodeError 6629 Data *UploadPrepareMediaRespData `json:"data"` // 业务数据 6630 } 6631 6632 func (resp *UploadPrepareMediaResp) Success() bool { 6633 return resp.Code == 0 6634 } 6635 6636 type BatchQueryMetaReqBuilder struct { 6637 apiReq *larkcore.ApiReq 6638 metaRequest *MetaRequest 6639 } 6640 6641 func NewBatchQueryMetaReqBuilder() *BatchQueryMetaReqBuilder { 6642 builder := &BatchQueryMetaReqBuilder{} 6643 builder.apiReq = &larkcore.ApiReq{ 6644 PathParams: larkcore.PathParams{}, 6645 QueryParams: larkcore.QueryParams{}, 6646 } 6647 return builder 6648 } 6649 6650 // 此次调用中使用的用户ID的类型 6651 // 6652 // 示例值: 6653 func (builder *BatchQueryMetaReqBuilder) UserIdType(userIdType string) *BatchQueryMetaReqBuilder { 6654 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 6655 return builder 6656 } 6657 6658 // 该接口用于根据 token 获取各类文件的元数据 6659 func (builder *BatchQueryMetaReqBuilder) MetaRequest(metaRequest *MetaRequest) *BatchQueryMetaReqBuilder { 6660 builder.metaRequest = metaRequest 6661 return builder 6662 } 6663 6664 func (builder *BatchQueryMetaReqBuilder) Build() *BatchQueryMetaReq { 6665 req := &BatchQueryMetaReq{} 6666 req.apiReq = &larkcore.ApiReq{} 6667 req.apiReq.QueryParams = builder.apiReq.QueryParams 6668 req.apiReq.Body = builder.metaRequest 6669 return req 6670 } 6671 6672 type BatchQueryMetaReq struct { 6673 apiReq *larkcore.ApiReq 6674 MetaRequest *MetaRequest `body:""` 6675 } 6676 6677 type BatchQueryMetaRespData struct { 6678 Metas []*Meta `json:"metas,omitempty"` // 文档元数据列表 6679 FailedList []*MetaFailed `json:"failed_list,omitempty"` // 无法获取元数据的文档列表 6680 } 6681 6682 type BatchQueryMetaResp struct { 6683 *larkcore.ApiResp `json:"-"` 6684 larkcore.CodeError 6685 Data *BatchQueryMetaRespData `json:"data"` // 业务数据 6686 } 6687 6688 func (resp *BatchQueryMetaResp) Success() bool { 6689 return resp.Code == 0 6690 } 6691 6692 type CreatePermissionMemberReqBuilder struct { 6693 apiReq *larkcore.ApiReq 6694 baseMember *BaseMember 6695 } 6696 6697 func NewCreatePermissionMemberReqBuilder() *CreatePermissionMemberReqBuilder { 6698 builder := &CreatePermissionMemberReqBuilder{} 6699 builder.apiReq = &larkcore.ApiReq{ 6700 PathParams: larkcore.PathParams{}, 6701 QueryParams: larkcore.QueryParams{}, 6702 } 6703 return builder 6704 } 6705 6706 // 文件的 token,获取方式见 [如何获取云文档资源相关 token](/ssl:ttdoc/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) 6707 // 6708 // 示例值:doccnBKgoMyY5OMbUG6FioTXuBe 6709 func (builder *CreatePermissionMemberReqBuilder) Token(token string) *CreatePermissionMemberReqBuilder { 6710 builder.apiReq.PathParams.Set("token", fmt.Sprint(token)) 6711 return builder 6712 } 6713 6714 // 文件类型,需要与文件的 token 相匹配 6715 // 6716 // 示例值:doc 6717 func (builder *CreatePermissionMemberReqBuilder) Type(type_ string) *CreatePermissionMemberReqBuilder { 6718 builder.apiReq.QueryParams.Set("type", fmt.Sprint(type_)) 6719 return builder 6720 } 6721 6722 // 添加权限后是否通知对方 6723 // 6724 // 示例值:false 6725 func (builder *CreatePermissionMemberReqBuilder) NeedNotification(needNotification bool) *CreatePermissionMemberReqBuilder { 6726 builder.apiReq.QueryParams.Set("need_notification", fmt.Sprint(needNotification)) 6727 return builder 6728 } 6729 6730 // 该接口用于根据 filetoken 给用户增加文档的权限。 6731 func (builder *CreatePermissionMemberReqBuilder) BaseMember(baseMember *BaseMember) *CreatePermissionMemberReqBuilder { 6732 builder.baseMember = baseMember 6733 return builder 6734 } 6735 6736 func (builder *CreatePermissionMemberReqBuilder) Build() *CreatePermissionMemberReq { 6737 req := &CreatePermissionMemberReq{} 6738 req.apiReq = &larkcore.ApiReq{} 6739 req.apiReq.PathParams = builder.apiReq.PathParams 6740 req.apiReq.QueryParams = builder.apiReq.QueryParams 6741 req.apiReq.Body = builder.baseMember 6742 return req 6743 } 6744 6745 type CreatePermissionMemberReq struct { 6746 apiReq *larkcore.ApiReq 6747 BaseMember *BaseMember `body:""` 6748 } 6749 6750 type CreatePermissionMemberRespData struct { 6751 Member *BaseMember `json:"member,omitempty"` // 本次添加权限的用户信息 6752 } 6753 6754 type CreatePermissionMemberResp struct { 6755 *larkcore.ApiResp `json:"-"` 6756 larkcore.CodeError 6757 Data *CreatePermissionMemberRespData `json:"data"` // 业务数据 6758 } 6759 6760 func (resp *CreatePermissionMemberResp) Success() bool { 6761 return resp.Code == 0 6762 } 6763 6764 type DeletePermissionMemberReqBuilder struct { 6765 apiReq *larkcore.ApiReq 6766 } 6767 6768 func NewDeletePermissionMemberReqBuilder() *DeletePermissionMemberReqBuilder { 6769 builder := &DeletePermissionMemberReqBuilder{} 6770 builder.apiReq = &larkcore.ApiReq{ 6771 PathParams: larkcore.PathParams{}, 6772 QueryParams: larkcore.QueryParams{}, 6773 } 6774 return builder 6775 } 6776 6777 // 文件的 token,获取方式见 [如何获取云文档资源相关 token](/ssl:ttdoc/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) 6778 // 6779 // 示例值:doccnBKgoMyY5OMbUG6FioTXuBe 6780 func (builder *DeletePermissionMemberReqBuilder) Token(token string) *DeletePermissionMemberReqBuilder { 6781 builder.apiReq.PathParams.Set("token", fmt.Sprint(token)) 6782 return builder 6783 } 6784 6785 // 权限成员的ID,与`member_type`相对应 6786 // 6787 // 示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62 6788 func (builder *DeletePermissionMemberReqBuilder) MemberId(memberId string) *DeletePermissionMemberReqBuilder { 6789 builder.apiReq.PathParams.Set("member_id", fmt.Sprint(memberId)) 6790 return builder 6791 } 6792 6793 // 文件类型,放于query参数中,如:`?type=doc` 6794 // 6795 // 示例值:doc 6796 func (builder *DeletePermissionMemberReqBuilder) Type(type_ string) *DeletePermissionMemberReqBuilder { 6797 builder.apiReq.QueryParams.Set("type", fmt.Sprint(type_)) 6798 return builder 6799 } 6800 6801 // 权限成员类型,放于query参数中,如:`?member_type=openid` 6802 // 6803 // 示例值:openid 6804 func (builder *DeletePermissionMemberReqBuilder) MemberType(memberType string) *DeletePermissionMemberReqBuilder { 6805 builder.apiReq.QueryParams.Set("member_type", fmt.Sprint(memberType)) 6806 return builder 6807 } 6808 6809 func (builder *DeletePermissionMemberReqBuilder) Build() *DeletePermissionMemberReq { 6810 req := &DeletePermissionMemberReq{} 6811 req.apiReq = &larkcore.ApiReq{} 6812 req.apiReq.PathParams = builder.apiReq.PathParams 6813 req.apiReq.QueryParams = builder.apiReq.QueryParams 6814 return req 6815 } 6816 6817 type DeletePermissionMemberReq struct { 6818 apiReq *larkcore.ApiReq 6819 } 6820 6821 type DeletePermissionMemberResp struct { 6822 *larkcore.ApiResp `json:"-"` 6823 larkcore.CodeError 6824 } 6825 6826 func (resp *DeletePermissionMemberResp) Success() bool { 6827 return resp.Code == 0 6828 } 6829 6830 type UpdatePermissionMemberReqBuilder struct { 6831 apiReq *larkcore.ApiReq 6832 baseMember *BaseMember 6833 } 6834 6835 func NewUpdatePermissionMemberReqBuilder() *UpdatePermissionMemberReqBuilder { 6836 builder := &UpdatePermissionMemberReqBuilder{} 6837 builder.apiReq = &larkcore.ApiReq{ 6838 PathParams: larkcore.PathParams{}, 6839 QueryParams: larkcore.QueryParams{}, 6840 } 6841 return builder 6842 } 6843 6844 // 文件的 token,获取方式见 [如何获取云文档资源相关 token](/ssl:ttdoc/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) 6845 // 6846 // 示例值:doccnBKgoMyY5OMbUG6FioTXuBe 6847 func (builder *UpdatePermissionMemberReqBuilder) Token(token string) *UpdatePermissionMemberReqBuilder { 6848 builder.apiReq.PathParams.Set("token", fmt.Sprint(token)) 6849 return builder 6850 } 6851 6852 // 权限成员的ID,与`member_type`相对应 6853 // 6854 // 示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62 6855 func (builder *UpdatePermissionMemberReqBuilder) MemberId(memberId string) *UpdatePermissionMemberReqBuilder { 6856 builder.apiReq.PathParams.Set("member_id", fmt.Sprint(memberId)) 6857 return builder 6858 } 6859 6860 // 更新权限后是否通知对方;;**注意:** 使用`tenant_access_token`访问不支持该参数 6861 // 6862 // 示例值:false 6863 func (builder *UpdatePermissionMemberReqBuilder) NeedNotification(needNotification bool) *UpdatePermissionMemberReqBuilder { 6864 builder.apiReq.QueryParams.Set("need_notification", fmt.Sprint(needNotification)) 6865 return builder 6866 } 6867 6868 // 文件类型,放于query参数中,如:`?type=doc` 6869 // 6870 // 示例值:doc 6871 func (builder *UpdatePermissionMemberReqBuilder) Type(type_ string) *UpdatePermissionMemberReqBuilder { 6872 builder.apiReq.QueryParams.Set("type", fmt.Sprint(type_)) 6873 return builder 6874 } 6875 6876 // 该接口用于根据 filetoken 更新文档协作者的权限。 6877 func (builder *UpdatePermissionMemberReqBuilder) BaseMember(baseMember *BaseMember) *UpdatePermissionMemberReqBuilder { 6878 builder.baseMember = baseMember 6879 return builder 6880 } 6881 6882 func (builder *UpdatePermissionMemberReqBuilder) Build() *UpdatePermissionMemberReq { 6883 req := &UpdatePermissionMemberReq{} 6884 req.apiReq = &larkcore.ApiReq{} 6885 req.apiReq.PathParams = builder.apiReq.PathParams 6886 req.apiReq.QueryParams = builder.apiReq.QueryParams 6887 req.apiReq.Body = builder.baseMember 6888 return req 6889 } 6890 6891 type UpdatePermissionMemberReq struct { 6892 apiReq *larkcore.ApiReq 6893 BaseMember *BaseMember `body:""` 6894 } 6895 6896 type UpdatePermissionMemberRespData struct { 6897 Member *BaseMember `json:"member,omitempty"` // 本次更新权限的用户信息 6898 } 6899 6900 type UpdatePermissionMemberResp struct { 6901 *larkcore.ApiResp `json:"-"` 6902 larkcore.CodeError 6903 Data *UpdatePermissionMemberRespData `json:"data"` // 业务数据 6904 } 6905 6906 func (resp *UpdatePermissionMemberResp) Success() bool { 6907 return resp.Code == 0 6908 } 6909 6910 type GetPermissionPublicReqBuilder struct { 6911 apiReq *larkcore.ApiReq 6912 } 6913 6914 func NewGetPermissionPublicReqBuilder() *GetPermissionPublicReqBuilder { 6915 builder := &GetPermissionPublicReqBuilder{} 6916 builder.apiReq = &larkcore.ApiReq{ 6917 PathParams: larkcore.PathParams{}, 6918 QueryParams: larkcore.QueryParams{}, 6919 } 6920 return builder 6921 } 6922 6923 // 文件的 token,获取方式见 [如何获取云文档资源相关 token](/ssl:ttdoc/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) 6924 // 6925 // 示例值:doccnBKgoMyY5OMbUG6FioTXuBe 6926 func (builder *GetPermissionPublicReqBuilder) Token(token string) *GetPermissionPublicReqBuilder { 6927 builder.apiReq.PathParams.Set("token", fmt.Sprint(token)) 6928 return builder 6929 } 6930 6931 // 文件类型,放于query参数中,如:`?type=doc` 6932 // 6933 // 示例值:doc 6934 func (builder *GetPermissionPublicReqBuilder) Type(type_ string) *GetPermissionPublicReqBuilder { 6935 builder.apiReq.QueryParams.Set("type", fmt.Sprint(type_)) 6936 return builder 6937 } 6938 6939 func (builder *GetPermissionPublicReqBuilder) Build() *GetPermissionPublicReq { 6940 req := &GetPermissionPublicReq{} 6941 req.apiReq = &larkcore.ApiReq{} 6942 req.apiReq.PathParams = builder.apiReq.PathParams 6943 req.apiReq.QueryParams = builder.apiReq.QueryParams 6944 return req 6945 } 6946 6947 type GetPermissionPublicReq struct { 6948 apiReq *larkcore.ApiReq 6949 } 6950 6951 type GetPermissionPublicRespData struct { 6952 PermissionPublic *PermissionPublic `json:"permission_public,omitempty"` // 返回的文档权限设置 6953 } 6954 6955 type GetPermissionPublicResp struct { 6956 *larkcore.ApiResp `json:"-"` 6957 larkcore.CodeError 6958 Data *GetPermissionPublicRespData `json:"data"` // 业务数据 6959 } 6960 6961 func (resp *GetPermissionPublicResp) Success() bool { 6962 return resp.Code == 0 6963 } 6964 6965 type PatchPermissionPublicReqBuilder struct { 6966 apiReq *larkcore.ApiReq 6967 permissionPublicRequest *PermissionPublicRequest 6968 } 6969 6970 func NewPatchPermissionPublicReqBuilder() *PatchPermissionPublicReqBuilder { 6971 builder := &PatchPermissionPublicReqBuilder{} 6972 builder.apiReq = &larkcore.ApiReq{ 6973 PathParams: larkcore.PathParams{}, 6974 QueryParams: larkcore.QueryParams{}, 6975 } 6976 return builder 6977 } 6978 6979 // 文件的 token,获取方式见 [如何获取云文档资源相关 token](/ssl:ttdoc/ukTMukTMukTM/uczNzUjL3czM14yN3MTN#08bb5df6) 6980 // 6981 // 示例值:doccnBKgoMyY5OMbUG6FioTXuBe 6982 func (builder *PatchPermissionPublicReqBuilder) Token(token string) *PatchPermissionPublicReqBuilder { 6983 builder.apiReq.PathParams.Set("token", fmt.Sprint(token)) 6984 return builder 6985 } 6986 6987 // 文件类型,放于query参数中,如:`?type=doc` 6988 // 6989 // 示例值:doc 6990 func (builder *PatchPermissionPublicReqBuilder) Type(type_ string) *PatchPermissionPublicReqBuilder { 6991 builder.apiReq.QueryParams.Set("type", fmt.Sprint(type_)) 6992 return builder 6993 } 6994 6995 // 该接口用于根据 filetoken 更新云文档的权限设置。 6996 func (builder *PatchPermissionPublicReqBuilder) PermissionPublicRequest(permissionPublicRequest *PermissionPublicRequest) *PatchPermissionPublicReqBuilder { 6997 builder.permissionPublicRequest = permissionPublicRequest 6998 return builder 6999 } 7000 7001 func (builder *PatchPermissionPublicReqBuilder) Build() *PatchPermissionPublicReq { 7002 req := &PatchPermissionPublicReq{} 7003 req.apiReq = &larkcore.ApiReq{} 7004 req.apiReq.PathParams = builder.apiReq.PathParams 7005 req.apiReq.QueryParams = builder.apiReq.QueryParams 7006 req.apiReq.Body = builder.permissionPublicRequest 7007 return req 7008 } 7009 7010 type PatchPermissionPublicReq struct { 7011 apiReq *larkcore.ApiReq 7012 PermissionPublicRequest *PermissionPublicRequest `body:""` 7013 } 7014 7015 type PatchPermissionPublicRespData struct { 7016 PermissionPublic *PermissionPublic `json:"permission_public,omitempty"` // 本次更新后的文档权限设置 7017 } 7018 7019 type PatchPermissionPublicResp struct { 7020 *larkcore.ApiResp `json:"-"` 7021 larkcore.CodeError 7022 Data *PatchPermissionPublicRespData `json:"data"` // 业务数据 7023 } 7024 7025 func (resp *PatchPermissionPublicResp) Success() bool { 7026 return resp.Code == 0 7027 } 7028 7029 type P2FileDeletedV1Data struct { 7030 FileType *string `json:"file_type,omitempty"` // 文档类型 7031 FileToken *string `json:"file_token,omitempty"` // 文档token 7032 OperatorId *UserId `json:"operator_id,omitempty"` // 操作者id 7033 SubscriberIdList []*UserId `json:"subscriber_id_list,omitempty"` // 订阅用户id列表 7034 } 7035 7036 type P2FileDeletedV1 struct { 7037 *larkevent.EventV2Base // 事件基础数据 7038 *larkevent.EventReq // 请求原生数据 7039 Event *P2FileDeletedV1Data `json:"event"` // 事件内容 7040 } 7041 7042 func (m *P2FileDeletedV1) RawReq(req *larkevent.EventReq) { 7043 m.EventReq = req 7044 } 7045 7046 type P2FileEditV1Data struct { 7047 FileType *string `json:"file_type,omitempty"` // 文档类型 7048 FileToken *string `json:"file_token,omitempty"` // 文档token 7049 OperatorIdList []*UserId `json:"operator_id_list,omitempty"` // 操作者id列表 7050 SubscriberIdList []*UserId `json:"subscriber_id_list,omitempty"` // 订阅用户id列表 7051 SheetId *string `json:"sheet_id,omitempty"` // 表格的子SheetID,当表格发生编辑时将会包含此字段 7052 } 7053 7054 type P2FileEditV1 struct { 7055 *larkevent.EventV2Base // 事件基础数据 7056 *larkevent.EventReq // 请求原生数据 7057 Event *P2FileEditV1Data `json:"event"` // 事件内容 7058 } 7059 7060 func (m *P2FileEditV1) RawReq(req *larkevent.EventReq) { 7061 m.EventReq = req 7062 } 7063 7064 type P2FilePermissionMemberAddedV1Data struct { 7065 FileType *string `json:"file_type,omitempty"` // 文档类型 7066 FileToken *string `json:"file_token,omitempty"` // 文档token 7067 OperatorId *UserId `json:"operator_id,omitempty"` // 操作者id 7068 UserList []*UserId `json:"user_list,omitempty"` // 添加的用户列表 7069 ChatList []string `json:"chat_list,omitempty"` // 7070 OpenDepartmentIdList []string `json:"open_department_id_list,omitempty"` // 7071 SubscriberIdList []*UserId `json:"subscriber_id_list,omitempty"` // 订阅用户id列表 7072 } 7073 7074 type P2FilePermissionMemberAddedV1 struct { 7075 *larkevent.EventV2Base // 事件基础数据 7076 *larkevent.EventReq // 请求原生数据 7077 Event *P2FilePermissionMemberAddedV1Data `json:"event"` // 事件内容 7078 } 7079 7080 func (m *P2FilePermissionMemberAddedV1) RawReq(req *larkevent.EventReq) { 7081 m.EventReq = req 7082 } 7083 7084 type P2FilePermissionMemberRemovedV1Data struct { 7085 FileType *string `json:"file_type,omitempty"` // 文档类型 7086 FileToken *string `json:"file_token,omitempty"` // 文档token 7087 OperatorId *UserId `json:"operator_id,omitempty"` // 操作者id 7088 UserList []*UserId `json:"user_list,omitempty"` // 移除的用户列表 7089 ChatList []string `json:"chat_list,omitempty"` // 7090 OpenDepartmentIdList []string `json:"open_department_id_list,omitempty"` // 7091 SubscriberIdList []*UserId `json:"subscriber_id_list,omitempty"` // 订阅用户id列表 7092 } 7093 7094 type P2FilePermissionMemberRemovedV1 struct { 7095 *larkevent.EventV2Base // 事件基础数据 7096 *larkevent.EventReq // 请求原生数据 7097 Event *P2FilePermissionMemberRemovedV1Data `json:"event"` // 事件内容 7098 } 7099 7100 func (m *P2FilePermissionMemberRemovedV1) RawReq(req *larkevent.EventReq) { 7101 m.EventReq = req 7102 } 7103 7104 type P2FileReadV1Data struct { 7105 FileType *string `json:"file_type,omitempty"` // 文档类型 7106 FileToken *string `json:"file_token,omitempty"` // 文档token 7107 OperatorIdList []*UserId `json:"operator_id_list,omitempty"` // 操作者id列表 7108 SubscriberIdList []*UserId `json:"subscriber_id_list,omitempty"` // 订阅用户id列表 7109 } 7110 7111 type P2FileReadV1 struct { 7112 *larkevent.EventV2Base // 事件基础数据 7113 *larkevent.EventReq // 请求原生数据 7114 Event *P2FileReadV1Data `json:"event"` // 事件内容 7115 } 7116 7117 func (m *P2FileReadV1) RawReq(req *larkevent.EventReq) { 7118 m.EventReq = req 7119 } 7120 7121 type P2FileTitleUpdatedV1Data struct { 7122 FileType *string `json:"file_type,omitempty"` // 文档类型 7123 FileToken *string `json:"file_token,omitempty"` // 文档token 7124 OperatorId *UserId `json:"operator_id,omitempty"` // 操作者id 7125 SubscriberIdList []*UserId `json:"subscriber_id_list,omitempty"` // 订阅用户id列表 7126 } 7127 7128 type P2FileTitleUpdatedV1 struct { 7129 *larkevent.EventV2Base // 事件基础数据 7130 *larkevent.EventReq // 请求原生数据 7131 Event *P2FileTitleUpdatedV1Data `json:"event"` // 事件内容 7132 } 7133 7134 func (m *P2FileTitleUpdatedV1) RawReq(req *larkevent.EventReq) { 7135 m.EventReq = req 7136 } 7137 7138 type P2FileTrashedV1Data struct { 7139 FileType *string `json:"file_type,omitempty"` // 文档类型 7140 FileToken *string `json:"file_token,omitempty"` // 文档token 7141 OperatorId *UserId `json:"operator_id,omitempty"` // 操作者id 7142 SubscriberIdList []*UserId `json:"subscriber_id_list,omitempty"` // 订阅用户id列表 7143 } 7144 7145 type P2FileTrashedV1 struct { 7146 *larkevent.EventV2Base // 事件基础数据 7147 *larkevent.EventReq // 请求原生数据 7148 Event *P2FileTrashedV1Data `json:"event"` // 事件内容 7149 } 7150 7151 func (m *P2FileTrashedV1) RawReq(req *larkevent.EventReq) { 7152 m.EventReq = req 7153 } 7154 7155 type ListFileCommentIterator struct { 7156 nextPageToken *string 7157 items []*FileComment 7158 index int 7159 limit int 7160 ctx context.Context 7161 req *ListFileCommentReq 7162 listFunc func(ctx context.Context, req *ListFileCommentReq, options ...larkcore.RequestOptionFunc) (*ListFileCommentResp, error) 7163 options []larkcore.RequestOptionFunc 7164 curlNum int 7165 } 7166 7167 func (iterator *ListFileCommentIterator) Next() (bool, *FileComment, error) { 7168 // 达到最大量,则返回 7169 if iterator.limit > 0 && iterator.curlNum >= iterator.limit { 7170 return false, nil, nil 7171 } 7172 7173 // 为0则拉取数据 7174 if iterator.index == 0 || iterator.index >= len(iterator.items) { 7175 if iterator.index != 0 && iterator.nextPageToken == nil { 7176 return false, nil, nil 7177 } 7178 if iterator.nextPageToken != nil { 7179 iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken) 7180 } 7181 resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...) 7182 if err != nil { 7183 return false, nil, err 7184 } 7185 7186 if resp.Code != 0 { 7187 return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg)) 7188 } 7189 7190 if len(resp.Data.Items) == 0 { 7191 return false, nil, nil 7192 } 7193 7194 iterator.nextPageToken = resp.Data.PageToken 7195 iterator.items = resp.Data.Items 7196 iterator.index = 0 7197 } 7198 7199 block := iterator.items[iterator.index] 7200 iterator.index++ 7201 iterator.curlNum++ 7202 return true, block, nil 7203 } 7204 7205 func (iterator *ListFileCommentIterator) NextPageToken() *string { 7206 return iterator.nextPageToken 7207 }