gitee.com/larksuite/oapi-sdk-go/v3@v3.0.3/service/docx/v1/model.go (about) 1 // Package docx 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 larkdocx 15 16 import ( 17 "fmt" 18 19 "context" 20 "errors" 21 22 "gitee.com/larksuite/oapi-sdk-go/v3/core" 23 ) 24 25 const ( 26 LangZH = 0 // 中文 27 LangEN = 1 // 英文 28 LangJP = 2 // 日文 29 30 ) 31 32 const ( 33 UserIdTypeUserId = "user_id" // 以user_id来识别用户 34 UserIdTypeUnionId = "union_id" // 以union_id来识别用户 35 UserIdTypeOpenId = "open_id" // 以open_id来识别用户 36 ) 37 38 const ( 39 UserIdTypeGetDocumentBlockUserId = "user_id" // 以user_id来识别用户 40 UserIdTypeGetDocumentBlockUnionId = "union_id" // 以union_id来识别用户 41 UserIdTypeGetDocumentBlockOpenId = "open_id" // 以open_id来识别用户 42 ) 43 44 const ( 45 UserIdTypeListDocumentBlockUserId = "user_id" // 以user_id来识别用户 46 UserIdTypeListDocumentBlockUnionId = "union_id" // 以union_id来识别用户 47 UserIdTypeListDocumentBlockOpenId = "open_id" // 以open_id来识别用户 48 ) 49 50 const ( 51 UserIdTypePatchDocumentBlockUserId = "user_id" // 以user_id来识别用户 52 UserIdTypePatchDocumentBlockUnionId = "union_id" // 以union_id来识别用户 53 UserIdTypePatchDocumentBlockOpenId = "open_id" // 以open_id来识别用户 54 ) 55 56 const ( 57 UserIdTypeCreateDocumentBlockChildrenUserId = "user_id" // 以user_id来识别用户 58 UserIdTypeCreateDocumentBlockChildrenUnionId = "union_id" // 以union_id来识别用户 59 UserIdTypeCreateDocumentBlockChildrenOpenId = "open_id" // 以open_id来识别用户 60 ) 61 62 const ( 63 UserIdTypeGetDocumentBlockChildrenUserId = "user_id" // 以user_id来识别用户 64 UserIdTypeGetDocumentBlockChildrenUnionId = "union_id" // 以union_id来识别用户 65 UserIdTypeGetDocumentBlockChildrenOpenId = "open_id" // 以open_id来识别用户 66 ) 67 68 type Bitable struct { 69 Token *string `json:"token,omitempty"` // 多维表格文档 Token 70 ViewType *int `json:"view_type,omitempty"` // 类型 71 } 72 73 type BitableBuilder struct { 74 token string // 多维表格文档 Token 75 tokenFlag bool 76 viewType int // 类型 77 viewTypeFlag bool 78 } 79 80 func NewBitableBuilder() *BitableBuilder { 81 builder := &BitableBuilder{} 82 return builder 83 } 84 85 // 多维表格文档 Token 86 // 87 // 示例值:basbcqH9FfRn3sWCCBOtdNVpCsb_tblSAh8fEwhuMXQg 88 func (builder *BitableBuilder) Token(token string) *BitableBuilder { 89 builder.token = token 90 builder.tokenFlag = true 91 return builder 92 } 93 94 // 类型 95 // 96 // 示例值:1 97 func (builder *BitableBuilder) ViewType(viewType int) *BitableBuilder { 98 builder.viewType = viewType 99 builder.viewTypeFlag = true 100 return builder 101 } 102 103 func (builder *BitableBuilder) Build() *Bitable { 104 req := &Bitable{} 105 if builder.tokenFlag { 106 req.Token = &builder.token 107 108 } 109 if builder.viewTypeFlag { 110 req.ViewType = &builder.viewType 111 112 } 113 return req 114 } 115 116 type Block struct { 117 BlockId *string `json:"block_id,omitempty"` // Block 唯一标识 118 ParentId *string `json:"parent_id,omitempty"` // block 的父亲 id 119 Children []string `json:"children,omitempty"` // block 的孩子 id 列表 120 BlockType *int `json:"block_type,omitempty"` // block 类型 121 Page *Text `json:"page,omitempty"` // 文档 Block 122 Text *Text `json:"text,omitempty"` // 文本 Block 123 Heading1 *Text `json:"heading1,omitempty"` // 一级标题 Block 124 Heading2 *Text `json:"heading2,omitempty"` // 二级标题 Block 125 Heading3 *Text `json:"heading3,omitempty"` // 三级标题 Block 126 Heading4 *Text `json:"heading4,omitempty"` // 四级标题 Block 127 Heading5 *Text `json:"heading5,omitempty"` // 五级标题 Block 128 Heading6 *Text `json:"heading6,omitempty"` // 六级标题 Block 129 Heading7 *Text `json:"heading7,omitempty"` // 七级标题 Block 130 Heading8 *Text `json:"heading8,omitempty"` // 八级标题 Block 131 Heading9 *Text `json:"heading9,omitempty"` // 九级标题 Block 132 Bullet *Text `json:"bullet,omitempty"` // 无序列表 Block 133 Ordered *Text `json:"ordered,omitempty"` // 有序列表 Block 134 Code *Text `json:"code,omitempty"` // 代码块 Block 135 Quote *Text `json:"quote,omitempty"` // 引用 Block 136 Equation *Text `json:"equation,omitempty"` // 公式 Block 137 Todo *Text `json:"todo,omitempty"` // 任务 Block 138 Bitable *Bitable `json:"bitable,omitempty"` // 多维表格 Block 139 Callout *Callout `json:"callout,omitempty"` // 高亮块 Block 140 ChatCard *ChatCard `json:"chat_card,omitempty"` // 群聊卡片 Block 141 Diagram *Diagram `json:"diagram,omitempty"` // 流程图/UML Block 142 Divider *Divider `json:"divider,omitempty"` // 分割线 Block 143 File *File `json:"file,omitempty"` // 文件 Block 144 Grid *Grid `json:"grid,omitempty"` // 分栏 Block 145 GridColumn *GridColumn `json:"grid_column,omitempty"` // 分栏列 Block 146 Iframe *Iframe `json:"iframe,omitempty"` // 内嵌 Block 147 Image *Image `json:"image,omitempty"` // 图片 Block 148 Isv *Isv `json:"isv,omitempty"` // 三方 Block 149 Mindnote *Mindnote `json:"mindnote,omitempty"` // 思维笔记 Block 150 Sheet *Sheet `json:"sheet,omitempty"` // 电子表格 Block 151 Table *Table `json:"table,omitempty"` // 表格 Block 152 TableCell *TableCell `json:"table_cell,omitempty"` // 单元格 Block 153 View *View `json:"view,omitempty"` // 视图 Block 154 Undefined *Undefined `json:"undefined,omitempty"` // 未支持 Block 155 QuoteContainer *QuoteContainer `json:"quote_container,omitempty"` // 引用容器 Block 156 Task *Task `json:"task,omitempty"` // 任务 Block 157 Okr *Okr `json:"okr,omitempty"` // OKR Block 158 OkrObjective *OkrObjective `json:"okr_objective,omitempty"` // OKR Objective 159 OkrKeyResult *OkrKeyResult `json:"okr_key_result,omitempty"` // OKR Key Result 160 OkrProgress *OkrProgress `json:"okr_progress,omitempty"` // OKR 进展信息 161 } 162 163 type BlockBuilder struct { 164 blockId string // Block 唯一标识 165 blockIdFlag bool 166 parentId string // block 的父亲 id 167 parentIdFlag bool 168 children []string // block 的孩子 id 列表 169 childrenFlag bool 170 blockType int // block 类型 171 blockTypeFlag bool 172 page *Text // 文档 Block 173 pageFlag bool 174 text *Text // 文本 Block 175 textFlag bool 176 heading1 *Text // 一级标题 Block 177 heading1Flag bool 178 heading2 *Text // 二级标题 Block 179 heading2Flag bool 180 heading3 *Text // 三级标题 Block 181 heading3Flag bool 182 heading4 *Text // 四级标题 Block 183 heading4Flag bool 184 heading5 *Text // 五级标题 Block 185 heading5Flag bool 186 heading6 *Text // 六级标题 Block 187 heading6Flag bool 188 heading7 *Text // 七级标题 Block 189 heading7Flag bool 190 heading8 *Text // 八级标题 Block 191 heading8Flag bool 192 heading9 *Text // 九级标题 Block 193 heading9Flag bool 194 bullet *Text // 无序列表 Block 195 bulletFlag bool 196 ordered *Text // 有序列表 Block 197 orderedFlag bool 198 code *Text // 代码块 Block 199 codeFlag bool 200 quote *Text // 引用 Block 201 quoteFlag bool 202 equation *Text // 公式 Block 203 equationFlag bool 204 todo *Text // 任务 Block 205 todoFlag bool 206 bitable *Bitable // 多维表格 Block 207 bitableFlag bool 208 callout *Callout // 高亮块 Block 209 calloutFlag bool 210 chatCard *ChatCard // 群聊卡片 Block 211 chatCardFlag bool 212 diagram *Diagram // 流程图/UML Block 213 diagramFlag bool 214 divider *Divider // 分割线 Block 215 dividerFlag bool 216 file *File // 文件 Block 217 fileFlag bool 218 grid *Grid // 分栏 Block 219 gridFlag bool 220 gridColumn *GridColumn // 分栏列 Block 221 gridColumnFlag bool 222 iframe *Iframe // 内嵌 Block 223 iframeFlag bool 224 image *Image // 图片 Block 225 imageFlag bool 226 isv *Isv // 三方 Block 227 isvFlag bool 228 mindnote *Mindnote // 思维笔记 Block 229 mindnoteFlag bool 230 sheet *Sheet // 电子表格 Block 231 sheetFlag bool 232 table *Table // 表格 Block 233 tableFlag bool 234 tableCell *TableCell // 单元格 Block 235 tableCellFlag bool 236 view *View // 视图 Block 237 viewFlag bool 238 undefined *Undefined // 未支持 Block 239 undefinedFlag bool 240 quoteContainer *QuoteContainer // 引用容器 Block 241 quoteContainerFlag bool 242 task *Task // 任务 Block 243 taskFlag bool 244 okr *Okr // OKR Block 245 okrFlag bool 246 okrObjective *OkrObjective // OKR Objective 247 okrObjectiveFlag bool 248 okrKeyResult *OkrKeyResult // OKR Key Result 249 okrKeyResultFlag bool 250 okrProgress *OkrProgress // OKR 进展信息 251 okrProgressFlag bool 252 } 253 254 func NewBlockBuilder() *BlockBuilder { 255 builder := &BlockBuilder{} 256 return builder 257 } 258 259 // Block 唯一标识 260 // 261 // 示例值:doxcnSS4ouQkQEouGSUkTg9NJPe 262 func (builder *BlockBuilder) BlockId(blockId string) *BlockBuilder { 263 builder.blockId = blockId 264 builder.blockIdFlag = true 265 return builder 266 } 267 268 // block 的父亲 id 269 // 270 // 示例值:doxcnePuYufKa49ISjhD8Ih0ikh 271 func (builder *BlockBuilder) ParentId(parentId string) *BlockBuilder { 272 builder.parentId = parentId 273 builder.parentIdFlag = true 274 return builder 275 } 276 277 // block 的孩子 id 列表 278 // 279 // 示例值:[doxcnO6UW6wAw2qIcYf4hZpFIth] 280 func (builder *BlockBuilder) Children(children []string) *BlockBuilder { 281 builder.children = children 282 builder.childrenFlag = true 283 return builder 284 } 285 286 // block 类型 287 // 288 // 示例值:1 289 func (builder *BlockBuilder) BlockType(blockType int) *BlockBuilder { 290 builder.blockType = blockType 291 builder.blockTypeFlag = true 292 return builder 293 } 294 295 // 文档 Block 296 // 297 // 示例值: 298 func (builder *BlockBuilder) Page(page *Text) *BlockBuilder { 299 builder.page = page 300 builder.pageFlag = true 301 return builder 302 } 303 304 // 文本 Block 305 // 306 // 示例值: 307 func (builder *BlockBuilder) Text(text *Text) *BlockBuilder { 308 builder.text = text 309 builder.textFlag = true 310 return builder 311 } 312 313 // 一级标题 Block 314 // 315 // 示例值: 316 func (builder *BlockBuilder) Heading1(heading1 *Text) *BlockBuilder { 317 builder.heading1 = heading1 318 builder.heading1Flag = true 319 return builder 320 } 321 322 // 二级标题 Block 323 // 324 // 示例值: 325 func (builder *BlockBuilder) Heading2(heading2 *Text) *BlockBuilder { 326 builder.heading2 = heading2 327 builder.heading2Flag = true 328 return builder 329 } 330 331 // 三级标题 Block 332 // 333 // 示例值: 334 func (builder *BlockBuilder) Heading3(heading3 *Text) *BlockBuilder { 335 builder.heading3 = heading3 336 builder.heading3Flag = true 337 return builder 338 } 339 340 // 四级标题 Block 341 // 342 // 示例值: 343 func (builder *BlockBuilder) Heading4(heading4 *Text) *BlockBuilder { 344 builder.heading4 = heading4 345 builder.heading4Flag = true 346 return builder 347 } 348 349 // 五级标题 Block 350 // 351 // 示例值: 352 func (builder *BlockBuilder) Heading5(heading5 *Text) *BlockBuilder { 353 builder.heading5 = heading5 354 builder.heading5Flag = true 355 return builder 356 } 357 358 // 六级标题 Block 359 // 360 // 示例值: 361 func (builder *BlockBuilder) Heading6(heading6 *Text) *BlockBuilder { 362 builder.heading6 = heading6 363 builder.heading6Flag = true 364 return builder 365 } 366 367 // 七级标题 Block 368 // 369 // 示例值: 370 func (builder *BlockBuilder) Heading7(heading7 *Text) *BlockBuilder { 371 builder.heading7 = heading7 372 builder.heading7Flag = true 373 return builder 374 } 375 376 // 八级标题 Block 377 // 378 // 示例值: 379 func (builder *BlockBuilder) Heading8(heading8 *Text) *BlockBuilder { 380 builder.heading8 = heading8 381 builder.heading8Flag = true 382 return builder 383 } 384 385 // 九级标题 Block 386 // 387 // 示例值: 388 func (builder *BlockBuilder) Heading9(heading9 *Text) *BlockBuilder { 389 builder.heading9 = heading9 390 builder.heading9Flag = true 391 return builder 392 } 393 394 // 无序列表 Block 395 // 396 // 示例值: 397 func (builder *BlockBuilder) Bullet(bullet *Text) *BlockBuilder { 398 builder.bullet = bullet 399 builder.bulletFlag = true 400 return builder 401 } 402 403 // 有序列表 Block 404 // 405 // 示例值: 406 func (builder *BlockBuilder) Ordered(ordered *Text) *BlockBuilder { 407 builder.ordered = ordered 408 builder.orderedFlag = true 409 return builder 410 } 411 412 // 代码块 Block 413 // 414 // 示例值: 415 func (builder *BlockBuilder) Code(code *Text) *BlockBuilder { 416 builder.code = code 417 builder.codeFlag = true 418 return builder 419 } 420 421 // 引用 Block 422 // 423 // 示例值: 424 func (builder *BlockBuilder) Quote(quote *Text) *BlockBuilder { 425 builder.quote = quote 426 builder.quoteFlag = true 427 return builder 428 } 429 430 // 公式 Block 431 // 432 // 示例值: 433 func (builder *BlockBuilder) Equation(equation *Text) *BlockBuilder { 434 builder.equation = equation 435 builder.equationFlag = true 436 return builder 437 } 438 439 // 任务 Block 440 // 441 // 示例值: 442 func (builder *BlockBuilder) Todo(todo *Text) *BlockBuilder { 443 builder.todo = todo 444 builder.todoFlag = true 445 return builder 446 } 447 448 // 多维表格 Block 449 // 450 // 示例值: 451 func (builder *BlockBuilder) Bitable(bitable *Bitable) *BlockBuilder { 452 builder.bitable = bitable 453 builder.bitableFlag = true 454 return builder 455 } 456 457 // 高亮块 Block 458 // 459 // 示例值: 460 func (builder *BlockBuilder) Callout(callout *Callout) *BlockBuilder { 461 builder.callout = callout 462 builder.calloutFlag = true 463 return builder 464 } 465 466 // 群聊卡片 Block 467 // 468 // 示例值: 469 func (builder *BlockBuilder) ChatCard(chatCard *ChatCard) *BlockBuilder { 470 builder.chatCard = chatCard 471 builder.chatCardFlag = true 472 return builder 473 } 474 475 // 流程图/UML Block 476 // 477 // 示例值: 478 func (builder *BlockBuilder) Diagram(diagram *Diagram) *BlockBuilder { 479 builder.diagram = diagram 480 builder.diagramFlag = true 481 return builder 482 } 483 484 // 分割线 Block 485 // 486 // 示例值: 487 func (builder *BlockBuilder) Divider(divider *Divider) *BlockBuilder { 488 builder.divider = divider 489 builder.dividerFlag = true 490 return builder 491 } 492 493 // 文件 Block 494 // 495 // 示例值: 496 func (builder *BlockBuilder) File(file *File) *BlockBuilder { 497 builder.file = file 498 builder.fileFlag = true 499 return builder 500 } 501 502 // 分栏 Block 503 // 504 // 示例值: 505 func (builder *BlockBuilder) Grid(grid *Grid) *BlockBuilder { 506 builder.grid = grid 507 builder.gridFlag = true 508 return builder 509 } 510 511 // 分栏列 Block 512 // 513 // 示例值: 514 func (builder *BlockBuilder) GridColumn(gridColumn *GridColumn) *BlockBuilder { 515 builder.gridColumn = gridColumn 516 builder.gridColumnFlag = true 517 return builder 518 } 519 520 // 内嵌 Block 521 // 522 // 示例值: 523 func (builder *BlockBuilder) Iframe(iframe *Iframe) *BlockBuilder { 524 builder.iframe = iframe 525 builder.iframeFlag = true 526 return builder 527 } 528 529 // 图片 Block 530 // 531 // 示例值: 532 func (builder *BlockBuilder) Image(image *Image) *BlockBuilder { 533 builder.image = image 534 builder.imageFlag = true 535 return builder 536 } 537 538 // 三方 Block 539 // 540 // 示例值: 541 func (builder *BlockBuilder) Isv(isv *Isv) *BlockBuilder { 542 builder.isv = isv 543 builder.isvFlag = true 544 return builder 545 } 546 547 // 思维笔记 Block 548 // 549 // 示例值: 550 func (builder *BlockBuilder) Mindnote(mindnote *Mindnote) *BlockBuilder { 551 builder.mindnote = mindnote 552 builder.mindnoteFlag = true 553 return builder 554 } 555 556 // 电子表格 Block 557 // 558 // 示例值: 559 func (builder *BlockBuilder) Sheet(sheet *Sheet) *BlockBuilder { 560 builder.sheet = sheet 561 builder.sheetFlag = true 562 return builder 563 } 564 565 // 表格 Block 566 // 567 // 示例值: 568 func (builder *BlockBuilder) Table(table *Table) *BlockBuilder { 569 builder.table = table 570 builder.tableFlag = true 571 return builder 572 } 573 574 // 单元格 Block 575 // 576 // 示例值: 577 func (builder *BlockBuilder) TableCell(tableCell *TableCell) *BlockBuilder { 578 builder.tableCell = tableCell 579 builder.tableCellFlag = true 580 return builder 581 } 582 583 // 视图 Block 584 // 585 // 示例值: 586 func (builder *BlockBuilder) View(view *View) *BlockBuilder { 587 builder.view = view 588 builder.viewFlag = true 589 return builder 590 } 591 592 // 未支持 Block 593 // 594 // 示例值: 595 func (builder *BlockBuilder) Undefined(undefined *Undefined) *BlockBuilder { 596 builder.undefined = undefined 597 builder.undefinedFlag = true 598 return builder 599 } 600 601 // 引用容器 Block 602 // 603 // 示例值: 604 func (builder *BlockBuilder) QuoteContainer(quoteContainer *QuoteContainer) *BlockBuilder { 605 builder.quoteContainer = quoteContainer 606 builder.quoteContainerFlag = true 607 return builder 608 } 609 610 // 任务 Block 611 // 612 // 示例值: 613 func (builder *BlockBuilder) Task(task *Task) *BlockBuilder { 614 builder.task = task 615 builder.taskFlag = true 616 return builder 617 } 618 619 // OKR Block 620 // 621 // 示例值: 622 func (builder *BlockBuilder) Okr(okr *Okr) *BlockBuilder { 623 builder.okr = okr 624 builder.okrFlag = true 625 return builder 626 } 627 628 // OKR Objective 629 // 630 // 示例值: 631 func (builder *BlockBuilder) OkrObjective(okrObjective *OkrObjective) *BlockBuilder { 632 builder.okrObjective = okrObjective 633 builder.okrObjectiveFlag = true 634 return builder 635 } 636 637 // OKR Key Result 638 // 639 // 示例值: 640 func (builder *BlockBuilder) OkrKeyResult(okrKeyResult *OkrKeyResult) *BlockBuilder { 641 builder.okrKeyResult = okrKeyResult 642 builder.okrKeyResultFlag = true 643 return builder 644 } 645 646 // OKR 进展信息 647 // 648 // 示例值: 649 func (builder *BlockBuilder) OkrProgress(okrProgress *OkrProgress) *BlockBuilder { 650 builder.okrProgress = okrProgress 651 builder.okrProgressFlag = true 652 return builder 653 } 654 655 func (builder *BlockBuilder) Build() *Block { 656 req := &Block{} 657 if builder.blockIdFlag { 658 req.BlockId = &builder.blockId 659 660 } 661 if builder.parentIdFlag { 662 req.ParentId = &builder.parentId 663 664 } 665 if builder.childrenFlag { 666 req.Children = builder.children 667 } 668 if builder.blockTypeFlag { 669 req.BlockType = &builder.blockType 670 671 } 672 if builder.pageFlag { 673 req.Page = builder.page 674 } 675 if builder.textFlag { 676 req.Text = builder.text 677 } 678 if builder.heading1Flag { 679 req.Heading1 = builder.heading1 680 } 681 if builder.heading2Flag { 682 req.Heading2 = builder.heading2 683 } 684 if builder.heading3Flag { 685 req.Heading3 = builder.heading3 686 } 687 if builder.heading4Flag { 688 req.Heading4 = builder.heading4 689 } 690 if builder.heading5Flag { 691 req.Heading5 = builder.heading5 692 } 693 if builder.heading6Flag { 694 req.Heading6 = builder.heading6 695 } 696 if builder.heading7Flag { 697 req.Heading7 = builder.heading7 698 } 699 if builder.heading8Flag { 700 req.Heading8 = builder.heading8 701 } 702 if builder.heading9Flag { 703 req.Heading9 = builder.heading9 704 } 705 if builder.bulletFlag { 706 req.Bullet = builder.bullet 707 } 708 if builder.orderedFlag { 709 req.Ordered = builder.ordered 710 } 711 if builder.codeFlag { 712 req.Code = builder.code 713 } 714 if builder.quoteFlag { 715 req.Quote = builder.quote 716 } 717 if builder.equationFlag { 718 req.Equation = builder.equation 719 } 720 if builder.todoFlag { 721 req.Todo = builder.todo 722 } 723 if builder.bitableFlag { 724 req.Bitable = builder.bitable 725 } 726 if builder.calloutFlag { 727 req.Callout = builder.callout 728 } 729 if builder.chatCardFlag { 730 req.ChatCard = builder.chatCard 731 } 732 if builder.diagramFlag { 733 req.Diagram = builder.diagram 734 } 735 if builder.dividerFlag { 736 req.Divider = builder.divider 737 } 738 if builder.fileFlag { 739 req.File = builder.file 740 } 741 if builder.gridFlag { 742 req.Grid = builder.grid 743 } 744 if builder.gridColumnFlag { 745 req.GridColumn = builder.gridColumn 746 } 747 if builder.iframeFlag { 748 req.Iframe = builder.iframe 749 } 750 if builder.imageFlag { 751 req.Image = builder.image 752 } 753 if builder.isvFlag { 754 req.Isv = builder.isv 755 } 756 if builder.mindnoteFlag { 757 req.Mindnote = builder.mindnote 758 } 759 if builder.sheetFlag { 760 req.Sheet = builder.sheet 761 } 762 if builder.tableFlag { 763 req.Table = builder.table 764 } 765 if builder.tableCellFlag { 766 req.TableCell = builder.tableCell 767 } 768 if builder.viewFlag { 769 req.View = builder.view 770 } 771 if builder.undefinedFlag { 772 req.Undefined = builder.undefined 773 } 774 if builder.quoteContainerFlag { 775 req.QuoteContainer = builder.quoteContainer 776 } 777 if builder.taskFlag { 778 req.Task = builder.task 779 } 780 if builder.okrFlag { 781 req.Okr = builder.okr 782 } 783 if builder.okrObjectiveFlag { 784 req.OkrObjective = builder.okrObjective 785 } 786 if builder.okrKeyResultFlag { 787 req.OkrKeyResult = builder.okrKeyResult 788 } 789 if builder.okrProgressFlag { 790 req.OkrProgress = builder.okrProgress 791 } 792 return req 793 } 794 795 type Callout struct { 796 BackgroundColor *int `json:"background_color,omitempty"` // 高亮块背景色 797 BorderColor *int `json:"border_color,omitempty"` // 边框色 798 TextColor *int `json:"text_color,omitempty"` // 文字颜色 799 EmojiId *string `json:"emoji_id,omitempty"` // 高亮块图标 800 } 801 802 type CalloutBuilder struct { 803 backgroundColor int // 高亮块背景色 804 backgroundColorFlag bool 805 borderColor int // 边框色 806 borderColorFlag bool 807 textColor int // 文字颜色 808 textColorFlag bool 809 emojiId string // 高亮块图标 810 emojiIdFlag bool 811 } 812 813 func NewCalloutBuilder() *CalloutBuilder { 814 builder := &CalloutBuilder{} 815 return builder 816 } 817 818 // 高亮块背景色 819 // 820 // 示例值:1 821 func (builder *CalloutBuilder) BackgroundColor(backgroundColor int) *CalloutBuilder { 822 builder.backgroundColor = backgroundColor 823 builder.backgroundColorFlag = true 824 return builder 825 } 826 827 // 边框色 828 // 829 // 示例值:1 830 func (builder *CalloutBuilder) BorderColor(borderColor int) *CalloutBuilder { 831 builder.borderColor = borderColor 832 builder.borderColorFlag = true 833 return builder 834 } 835 836 // 文字颜色 837 // 838 // 示例值:1 839 func (builder *CalloutBuilder) TextColor(textColor int) *CalloutBuilder { 840 builder.textColor = textColor 841 builder.textColorFlag = true 842 return builder 843 } 844 845 // 高亮块图标 846 // 847 // 示例值:pushpin 848 func (builder *CalloutBuilder) EmojiId(emojiId string) *CalloutBuilder { 849 builder.emojiId = emojiId 850 builder.emojiIdFlag = true 851 return builder 852 } 853 854 func (builder *CalloutBuilder) Build() *Callout { 855 req := &Callout{} 856 if builder.backgroundColorFlag { 857 req.BackgroundColor = &builder.backgroundColor 858 859 } 860 if builder.borderColorFlag { 861 req.BorderColor = &builder.borderColor 862 863 } 864 if builder.textColorFlag { 865 req.TextColor = &builder.textColor 866 867 } 868 if builder.emojiIdFlag { 869 req.EmojiId = &builder.emojiId 870 871 } 872 return req 873 } 874 875 type ChatCard struct { 876 ChatId *string `json:"chat_id,omitempty"` // 群聊天会话 ID 877 Align *int `json:"align,omitempty"` // 对齐方式 878 } 879 880 type ChatCardBuilder struct { 881 chatId string // 群聊天会话 ID 882 chatIdFlag bool 883 align int // 对齐方式 884 alignFlag bool 885 } 886 887 func NewChatCardBuilder() *ChatCardBuilder { 888 builder := &ChatCardBuilder{} 889 return builder 890 } 891 892 // 群聊天会话 ID 893 // 894 // 示例值:7052227140476993555 895 func (builder *ChatCardBuilder) ChatId(chatId string) *ChatCardBuilder { 896 builder.chatId = chatId 897 builder.chatIdFlag = true 898 return builder 899 } 900 901 // 对齐方式 902 // 903 // 示例值:1 904 func (builder *ChatCardBuilder) Align(align int) *ChatCardBuilder { 905 builder.align = align 906 builder.alignFlag = true 907 return builder 908 } 909 910 func (builder *ChatCardBuilder) Build() *ChatCard { 911 req := &ChatCard{} 912 if builder.chatIdFlag { 913 req.ChatId = &builder.chatId 914 915 } 916 if builder.alignFlag { 917 req.Align = &builder.align 918 919 } 920 return req 921 } 922 923 type DeleteGridColumnRequest struct { 924 ColumnIndex *int `json:"column_index,omitempty"` // 删除列索引,从 0 开始,如 0 表示删除第一列(-1表示删除最后一列) 925 } 926 927 type DeleteGridColumnRequestBuilder struct { 928 columnIndex int // 删除列索引,从 0 开始,如 0 表示删除第一列(-1表示删除最后一列) 929 columnIndexFlag bool 930 } 931 932 func NewDeleteGridColumnRequestBuilder() *DeleteGridColumnRequestBuilder { 933 builder := &DeleteGridColumnRequestBuilder{} 934 return builder 935 } 936 937 // 删除列索引,从 0 开始,如 0 表示删除第一列(-1表示删除最后一列) 938 // 939 // 示例值:0 940 func (builder *DeleteGridColumnRequestBuilder) ColumnIndex(columnIndex int) *DeleteGridColumnRequestBuilder { 941 builder.columnIndex = columnIndex 942 builder.columnIndexFlag = true 943 return builder 944 } 945 946 func (builder *DeleteGridColumnRequestBuilder) Build() *DeleteGridColumnRequest { 947 req := &DeleteGridColumnRequest{} 948 if builder.columnIndexFlag { 949 req.ColumnIndex = &builder.columnIndex 950 951 } 952 return req 953 } 954 955 type DeleteTableColumnsRequest struct { 956 ColumnStartIndex *int `json:"column_start_index,omitempty"` // 列开始索引(区间左闭右开) 957 ColumnEndIndex *int `json:"column_end_index,omitempty"` // 列结束索引(区间左闭右开) 958 } 959 960 type DeleteTableColumnsRequestBuilder struct { 961 columnStartIndex int // 列开始索引(区间左闭右开) 962 columnStartIndexFlag bool 963 columnEndIndex int // 列结束索引(区间左闭右开) 964 columnEndIndexFlag bool 965 } 966 967 func NewDeleteTableColumnsRequestBuilder() *DeleteTableColumnsRequestBuilder { 968 builder := &DeleteTableColumnsRequestBuilder{} 969 return builder 970 } 971 972 // 列开始索引(区间左闭右开) 973 // 974 // 示例值:0 975 func (builder *DeleteTableColumnsRequestBuilder) ColumnStartIndex(columnStartIndex int) *DeleteTableColumnsRequestBuilder { 976 builder.columnStartIndex = columnStartIndex 977 builder.columnStartIndexFlag = true 978 return builder 979 } 980 981 // 列结束索引(区间左闭右开) 982 // 983 // 示例值:1 984 func (builder *DeleteTableColumnsRequestBuilder) ColumnEndIndex(columnEndIndex int) *DeleteTableColumnsRequestBuilder { 985 builder.columnEndIndex = columnEndIndex 986 builder.columnEndIndexFlag = true 987 return builder 988 } 989 990 func (builder *DeleteTableColumnsRequestBuilder) Build() *DeleteTableColumnsRequest { 991 req := &DeleteTableColumnsRequest{} 992 if builder.columnStartIndexFlag { 993 req.ColumnStartIndex = &builder.columnStartIndex 994 995 } 996 if builder.columnEndIndexFlag { 997 req.ColumnEndIndex = &builder.columnEndIndex 998 999 } 1000 return req 1001 } 1002 1003 type DeleteTableRowsRequest struct { 1004 RowStartIndex *int `json:"row_start_index,omitempty"` // 行开始索引(区间左闭右开) 1005 RowEndIndex *int `json:"row_end_index,omitempty"` // 行结束索引(区间左闭右开) 1006 } 1007 1008 type DeleteTableRowsRequestBuilder struct { 1009 rowStartIndex int // 行开始索引(区间左闭右开) 1010 rowStartIndexFlag bool 1011 rowEndIndex int // 行结束索引(区间左闭右开) 1012 rowEndIndexFlag bool 1013 } 1014 1015 func NewDeleteTableRowsRequestBuilder() *DeleteTableRowsRequestBuilder { 1016 builder := &DeleteTableRowsRequestBuilder{} 1017 return builder 1018 } 1019 1020 // 行开始索引(区间左闭右开) 1021 // 1022 // 示例值:0 1023 func (builder *DeleteTableRowsRequestBuilder) RowStartIndex(rowStartIndex int) *DeleteTableRowsRequestBuilder { 1024 builder.rowStartIndex = rowStartIndex 1025 builder.rowStartIndexFlag = true 1026 return builder 1027 } 1028 1029 // 行结束索引(区间左闭右开) 1030 // 1031 // 示例值:1 1032 func (builder *DeleteTableRowsRequestBuilder) RowEndIndex(rowEndIndex int) *DeleteTableRowsRequestBuilder { 1033 builder.rowEndIndex = rowEndIndex 1034 builder.rowEndIndexFlag = true 1035 return builder 1036 } 1037 1038 func (builder *DeleteTableRowsRequestBuilder) Build() *DeleteTableRowsRequest { 1039 req := &DeleteTableRowsRequest{} 1040 if builder.rowStartIndexFlag { 1041 req.RowStartIndex = &builder.rowStartIndex 1042 1043 } 1044 if builder.rowEndIndexFlag { 1045 req.RowEndIndex = &builder.rowEndIndex 1046 1047 } 1048 return req 1049 } 1050 1051 type Diagram struct { 1052 DiagramType *int `json:"diagram_type,omitempty"` // 绘图类型 1053 } 1054 1055 type DiagramBuilder struct { 1056 diagramType int // 绘图类型 1057 diagramTypeFlag bool 1058 } 1059 1060 func NewDiagramBuilder() *DiagramBuilder { 1061 builder := &DiagramBuilder{} 1062 return builder 1063 } 1064 1065 // 绘图类型 1066 // 1067 // 示例值:1 1068 func (builder *DiagramBuilder) DiagramType(diagramType int) *DiagramBuilder { 1069 builder.diagramType = diagramType 1070 builder.diagramTypeFlag = true 1071 return builder 1072 } 1073 1074 func (builder *DiagramBuilder) Build() *Diagram { 1075 req := &Diagram{} 1076 if builder.diagramTypeFlag { 1077 req.DiagramType = &builder.diagramType 1078 1079 } 1080 return req 1081 } 1082 1083 type Divider struct { 1084 } 1085 1086 type Document struct { 1087 DocumentId *string `json:"document_id,omitempty"` // 文档唯一标识 1088 RevisionId *int `json:"revision_id,omitempty"` // 文档版本 ID 1089 Title *string `json:"title,omitempty"` // 文档标题 1090 } 1091 1092 type DocumentBuilder struct { 1093 documentId string // 文档唯一标识 1094 documentIdFlag bool 1095 revisionId int // 文档版本 ID 1096 revisionIdFlag bool 1097 title string // 文档标题 1098 titleFlag bool 1099 } 1100 1101 func NewDocumentBuilder() *DocumentBuilder { 1102 builder := &DocumentBuilder{} 1103 return builder 1104 } 1105 1106 // 文档唯一标识 1107 // 1108 // 示例值:doxcni6mOy7jLRWbEylaKKC7K88 1109 func (builder *DocumentBuilder) DocumentId(documentId string) *DocumentBuilder { 1110 builder.documentId = documentId 1111 builder.documentIdFlag = true 1112 return builder 1113 } 1114 1115 // 文档版本 ID 1116 // 1117 // 示例值:1 1118 func (builder *DocumentBuilder) RevisionId(revisionId int) *DocumentBuilder { 1119 builder.revisionId = revisionId 1120 builder.revisionIdFlag = true 1121 return builder 1122 } 1123 1124 // 文档标题 1125 // 1126 // 示例值:undefined 1127 func (builder *DocumentBuilder) Title(title string) *DocumentBuilder { 1128 builder.title = title 1129 builder.titleFlag = true 1130 return builder 1131 } 1132 1133 func (builder *DocumentBuilder) Build() *Document { 1134 req := &Document{} 1135 if builder.documentIdFlag { 1136 req.DocumentId = &builder.documentId 1137 1138 } 1139 if builder.revisionIdFlag { 1140 req.RevisionId = &builder.revisionId 1141 1142 } 1143 if builder.titleFlag { 1144 req.Title = &builder.title 1145 1146 } 1147 return req 1148 } 1149 1150 type Equation struct { 1151 Content *string `json:"content,omitempty"` // 符合 KaTeX 语法的公式内容,语法规则请参考:https://katex.org/docs/supported.html 1152 } 1153 1154 type EquationBuilder struct { 1155 content string // 符合 KaTeX 语法的公式内容,语法规则请参考:https://katex.org/docs/supported.html 1156 contentFlag bool 1157 } 1158 1159 func NewEquationBuilder() *EquationBuilder { 1160 builder := &EquationBuilder{} 1161 return builder 1162 } 1163 1164 // 符合 KaTeX 语法的公式内容,语法规则请参考:https://katex.org/docs/supported.html 1165 // 1166 // 示例值:E=mc^2\n 1167 func (builder *EquationBuilder) Content(content string) *EquationBuilder { 1168 builder.content = content 1169 builder.contentFlag = true 1170 return builder 1171 } 1172 1173 func (builder *EquationBuilder) Build() *Equation { 1174 req := &Equation{} 1175 if builder.contentFlag { 1176 req.Content = &builder.content 1177 1178 } 1179 return req 1180 } 1181 1182 type File struct { 1183 Token *string `json:"token,omitempty"` // 附件 Token 1184 Name *string `json:"name,omitempty"` // 文件名 1185 } 1186 1187 type FileBuilder struct { 1188 token string // 附件 Token 1189 tokenFlag bool 1190 name string // 文件名 1191 nameFlag bool 1192 } 1193 1194 func NewFileBuilder() *FileBuilder { 1195 builder := &FileBuilder{} 1196 return builder 1197 } 1198 1199 // 附件 Token 1200 // 1201 // 示例值:boxbcOj88GDkmWGm2zsTyCBqoLb 1202 func (builder *FileBuilder) Token(token string) *FileBuilder { 1203 builder.token = token 1204 builder.tokenFlag = true 1205 return builder 1206 } 1207 1208 // 文件名 1209 // 1210 // 示例值:文件名 1211 func (builder *FileBuilder) Name(name string) *FileBuilder { 1212 builder.name = name 1213 builder.nameFlag = true 1214 return builder 1215 } 1216 1217 func (builder *FileBuilder) Build() *File { 1218 req := &File{} 1219 if builder.tokenFlag { 1220 req.Token = &builder.token 1221 1222 } 1223 if builder.nameFlag { 1224 req.Name = &builder.name 1225 1226 } 1227 return req 1228 } 1229 1230 type Grid struct { 1231 ColumnSize *int `json:"column_size,omitempty"` // 分栏列数量 1232 } 1233 1234 type GridBuilder struct { 1235 columnSize int // 分栏列数量 1236 columnSizeFlag bool 1237 } 1238 1239 func NewGridBuilder() *GridBuilder { 1240 builder := &GridBuilder{} 1241 return builder 1242 } 1243 1244 // 分栏列数量 1245 // 1246 // 示例值:2 1247 func (builder *GridBuilder) ColumnSize(columnSize int) *GridBuilder { 1248 builder.columnSize = columnSize 1249 builder.columnSizeFlag = true 1250 return builder 1251 } 1252 1253 func (builder *GridBuilder) Build() *Grid { 1254 req := &Grid{} 1255 if builder.columnSizeFlag { 1256 req.ColumnSize = &builder.columnSize 1257 1258 } 1259 return req 1260 } 1261 1262 type GridColumn struct { 1263 WidthRatio *int `json:"width_ratio,omitempty"` // 当前分栏列占整个分栏的比例 1264 } 1265 1266 type GridColumnBuilder struct { 1267 widthRatio int // 当前分栏列占整个分栏的比例 1268 widthRatioFlag bool 1269 } 1270 1271 func NewGridColumnBuilder() *GridColumnBuilder { 1272 builder := &GridColumnBuilder{} 1273 return builder 1274 } 1275 1276 // 当前分栏列占整个分栏的比例 1277 // 1278 // 示例值:50 1279 func (builder *GridColumnBuilder) WidthRatio(widthRatio int) *GridColumnBuilder { 1280 builder.widthRatio = widthRatio 1281 builder.widthRatioFlag = true 1282 return builder 1283 } 1284 1285 func (builder *GridColumnBuilder) Build() *GridColumn { 1286 req := &GridColumn{} 1287 if builder.widthRatioFlag { 1288 req.WidthRatio = &builder.widthRatio 1289 1290 } 1291 return req 1292 } 1293 1294 type Iframe struct { 1295 Component *IframeComponent `json:"component,omitempty"` // iframe 的组成元素 1296 } 1297 1298 type IframeBuilder struct { 1299 component *IframeComponent // iframe 的组成元素 1300 componentFlag bool 1301 } 1302 1303 func NewIframeBuilder() *IframeBuilder { 1304 builder := &IframeBuilder{} 1305 return builder 1306 } 1307 1308 // iframe 的组成元素 1309 // 1310 // 示例值: 1311 func (builder *IframeBuilder) Component(component *IframeComponent) *IframeBuilder { 1312 builder.component = component 1313 builder.componentFlag = true 1314 return builder 1315 } 1316 1317 func (builder *IframeBuilder) Build() *Iframe { 1318 req := &Iframe{} 1319 if builder.componentFlag { 1320 req.Component = builder.component 1321 } 1322 return req 1323 } 1324 1325 type IframeComponent struct { 1326 IframeType *int `json:"iframe_type,omitempty"` // iframe 类型 1327 Url *string `json:"url,omitempty"` // iframe 目标 url(需要进行 url_encode) 1328 } 1329 1330 type IframeComponentBuilder struct { 1331 iframeType int // iframe 类型 1332 iframeTypeFlag bool 1333 url string // iframe 目标 url(需要进行 url_encode) 1334 urlFlag bool 1335 } 1336 1337 func NewIframeComponentBuilder() *IframeComponentBuilder { 1338 builder := &IframeComponentBuilder{} 1339 return builder 1340 } 1341 1342 // iframe 类型 1343 // 1344 // 示例值:1 1345 func (builder *IframeComponentBuilder) IframeType(iframeType int) *IframeComponentBuilder { 1346 builder.iframeType = iframeType 1347 builder.iframeTypeFlag = true 1348 return builder 1349 } 1350 1351 // iframe 目标 url(需要进行 url_encode) 1352 // 1353 // 示例值:https%3A%2F%2Fwww.bilibili.com%2Fvideo%2FBV1Hi4y1w7V7 1354 func (builder *IframeComponentBuilder) Url(url string) *IframeComponentBuilder { 1355 builder.url = url 1356 builder.urlFlag = true 1357 return builder 1358 } 1359 1360 func (builder *IframeComponentBuilder) Build() *IframeComponent { 1361 req := &IframeComponent{} 1362 if builder.iframeTypeFlag { 1363 req.IframeType = &builder.iframeType 1364 1365 } 1366 if builder.urlFlag { 1367 req.Url = &builder.url 1368 1369 } 1370 return req 1371 } 1372 1373 type Image struct { 1374 Width *int `json:"width,omitempty"` // 宽度单位 px 1375 Height *int `json:"height,omitempty"` // 高度 1376 Token *string `json:"token,omitempty"` // 图片 Token 1377 } 1378 1379 type ImageBuilder struct { 1380 width int // 宽度单位 px 1381 widthFlag bool 1382 height int // 高度 1383 heightFlag bool 1384 token string // 图片 Token 1385 tokenFlag bool 1386 } 1387 1388 func NewImageBuilder() *ImageBuilder { 1389 builder := &ImageBuilder{} 1390 return builder 1391 } 1392 1393 // 宽度单位 px 1394 // 1395 // 示例值:4069 1396 func (builder *ImageBuilder) Width(width int) *ImageBuilder { 1397 builder.width = width 1398 builder.widthFlag = true 1399 return builder 1400 } 1401 1402 // 高度 1403 // 1404 // 示例值:2480 1405 func (builder *ImageBuilder) Height(height int) *ImageBuilder { 1406 builder.height = height 1407 builder.heightFlag = true 1408 return builder 1409 } 1410 1411 // 图片 Token 1412 // 1413 // 示例值:boxbcVA91JtFgNhaCgy6s6wK4he 1414 func (builder *ImageBuilder) Token(token string) *ImageBuilder { 1415 builder.token = token 1416 builder.tokenFlag = true 1417 return builder 1418 } 1419 1420 func (builder *ImageBuilder) Build() *Image { 1421 req := &Image{} 1422 if builder.widthFlag { 1423 req.Width = &builder.width 1424 1425 } 1426 if builder.heightFlag { 1427 req.Height = &builder.height 1428 1429 } 1430 if builder.tokenFlag { 1431 req.Token = &builder.token 1432 1433 } 1434 return req 1435 } 1436 1437 type InlineBlock struct { 1438 BlockId *string `json:"block_id,omitempty"` // 关联的内联状态的 block 的 block_id 1439 } 1440 1441 type InlineBlockBuilder struct { 1442 blockId string // 关联的内联状态的 block 的 block_id 1443 blockIdFlag bool 1444 } 1445 1446 func NewInlineBlockBuilder() *InlineBlockBuilder { 1447 builder := &InlineBlockBuilder{} 1448 return builder 1449 } 1450 1451 // 关联的内联状态的 block 的 block_id 1452 // 1453 // 示例值:doxcnPFi0R56ctbvh2MjkkROFWf 1454 func (builder *InlineBlockBuilder) BlockId(blockId string) *InlineBlockBuilder { 1455 builder.blockId = blockId 1456 builder.blockIdFlag = true 1457 return builder 1458 } 1459 1460 func (builder *InlineBlockBuilder) Build() *InlineBlock { 1461 req := &InlineBlock{} 1462 if builder.blockIdFlag { 1463 req.BlockId = &builder.blockId 1464 1465 } 1466 return req 1467 } 1468 1469 type InlineFile struct { 1470 FileToken *string `json:"file_token,omitempty"` // 附件 token 1471 SourceBlockId *string `json:"source_block_id,omitempty"` // 当前文档中该附件所处的 block 的 id 1472 } 1473 1474 type InlineFileBuilder struct { 1475 fileToken string // 附件 token 1476 fileTokenFlag bool 1477 sourceBlockId string // 当前文档中该附件所处的 block 的 id 1478 sourceBlockIdFlag bool 1479 } 1480 1481 func NewInlineFileBuilder() *InlineFileBuilder { 1482 builder := &InlineFileBuilder{} 1483 return builder 1484 } 1485 1486 // 附件 token 1487 // 1488 // 示例值:boxcnOj88GDkmWGm2zsTyCBqoLb 1489 func (builder *InlineFileBuilder) FileToken(fileToken string) *InlineFileBuilder { 1490 builder.fileToken = fileToken 1491 builder.fileTokenFlag = true 1492 return builder 1493 } 1494 1495 // 当前文档中该附件所处的 block 的 id 1496 // 1497 // 示例值:doxcnM46kSWSkgUMW04ldKsJDsc 1498 func (builder *InlineFileBuilder) SourceBlockId(sourceBlockId string) *InlineFileBuilder { 1499 builder.sourceBlockId = sourceBlockId 1500 builder.sourceBlockIdFlag = true 1501 return builder 1502 } 1503 1504 func (builder *InlineFileBuilder) Build() *InlineFile { 1505 req := &InlineFile{} 1506 if builder.fileTokenFlag { 1507 req.FileToken = &builder.fileToken 1508 1509 } 1510 if builder.sourceBlockIdFlag { 1511 req.SourceBlockId = &builder.sourceBlockId 1512 1513 } 1514 return req 1515 } 1516 1517 type InsertGridColumnRequest struct { 1518 ColumnIndex *int `json:"column_index,omitempty"` // 插入列索引,从 1 开始,如 1 表示在第一列后插入,注意不允许传 0(-1表示在最后一列后插入) 1519 } 1520 1521 type InsertGridColumnRequestBuilder struct { 1522 columnIndex int // 插入列索引,从 1 开始,如 1 表示在第一列后插入,注意不允许传 0(-1表示在最后一列后插入) 1523 columnIndexFlag bool 1524 } 1525 1526 func NewInsertGridColumnRequestBuilder() *InsertGridColumnRequestBuilder { 1527 builder := &InsertGridColumnRequestBuilder{} 1528 return builder 1529 } 1530 1531 // 插入列索引,从 1 开始,如 1 表示在第一列后插入,注意不允许传 0(-1表示在最后一列后插入) 1532 // 1533 // 示例值:1 1534 func (builder *InsertGridColumnRequestBuilder) ColumnIndex(columnIndex int) *InsertGridColumnRequestBuilder { 1535 builder.columnIndex = columnIndex 1536 builder.columnIndexFlag = true 1537 return builder 1538 } 1539 1540 func (builder *InsertGridColumnRequestBuilder) Build() *InsertGridColumnRequest { 1541 req := &InsertGridColumnRequest{} 1542 if builder.columnIndexFlag { 1543 req.ColumnIndex = &builder.columnIndex 1544 1545 } 1546 return req 1547 } 1548 1549 type InsertTableColumnRequest struct { 1550 ColumnIndex *int `json:"column_index,omitempty"` // 插入的列在表格中的索引。(-1表示在表格末尾插入一列) 1551 } 1552 1553 type InsertTableColumnRequestBuilder struct { 1554 columnIndex int // 插入的列在表格中的索引。(-1表示在表格末尾插入一列) 1555 columnIndexFlag bool 1556 } 1557 1558 func NewInsertTableColumnRequestBuilder() *InsertTableColumnRequestBuilder { 1559 builder := &InsertTableColumnRequestBuilder{} 1560 return builder 1561 } 1562 1563 // 插入的列在表格中的索引。(-1表示在表格末尾插入一列) 1564 // 1565 // 示例值:-1 1566 func (builder *InsertTableColumnRequestBuilder) ColumnIndex(columnIndex int) *InsertTableColumnRequestBuilder { 1567 builder.columnIndex = columnIndex 1568 builder.columnIndexFlag = true 1569 return builder 1570 } 1571 1572 func (builder *InsertTableColumnRequestBuilder) Build() *InsertTableColumnRequest { 1573 req := &InsertTableColumnRequest{} 1574 if builder.columnIndexFlag { 1575 req.ColumnIndex = &builder.columnIndex 1576 1577 } 1578 return req 1579 } 1580 1581 type InsertTableRowRequest struct { 1582 RowIndex *int `json:"row_index,omitempty"` // 插入的行在表格中的索引。(-1表示在表格末尾插入一行) 1583 } 1584 1585 type InsertTableRowRequestBuilder struct { 1586 rowIndex int // 插入的行在表格中的索引。(-1表示在表格末尾插入一行) 1587 rowIndexFlag bool 1588 } 1589 1590 func NewInsertTableRowRequestBuilder() *InsertTableRowRequestBuilder { 1591 builder := &InsertTableRowRequestBuilder{} 1592 return builder 1593 } 1594 1595 // 插入的行在表格中的索引。(-1表示在表格末尾插入一行) 1596 // 1597 // 示例值:-1 1598 func (builder *InsertTableRowRequestBuilder) RowIndex(rowIndex int) *InsertTableRowRequestBuilder { 1599 builder.rowIndex = rowIndex 1600 builder.rowIndexFlag = true 1601 return builder 1602 } 1603 1604 func (builder *InsertTableRowRequestBuilder) Build() *InsertTableRowRequest { 1605 req := &InsertTableRowRequest{} 1606 if builder.rowIndexFlag { 1607 req.RowIndex = &builder.rowIndex 1608 1609 } 1610 return req 1611 } 1612 1613 type Isv struct { 1614 ComponentId *string `json:"component_id,omitempty"` // 团队互动应用唯一ID 1615 ComponentTypeId *string `json:"component_type_id,omitempty"` // 团队互动应用类型,比如信息收集"blk_5f992038c64240015d280958" 1616 } 1617 1618 type IsvBuilder struct { 1619 componentId string // 团队互动应用唯一ID 1620 componentIdFlag bool 1621 componentTypeId string // 团队互动应用类型,比如信息收集"blk_5f992038c64240015d280958" 1622 componentTypeIdFlag bool 1623 } 1624 1625 func NewIsvBuilder() *IsvBuilder { 1626 builder := &IsvBuilder{} 1627 return builder 1628 } 1629 1630 // 团队互动应用唯一ID 1631 // 1632 // 示例值:7056882725002051603 1633 func (builder *IsvBuilder) ComponentId(componentId string) *IsvBuilder { 1634 builder.componentId = componentId 1635 builder.componentIdFlag = true 1636 return builder 1637 } 1638 1639 // 团队互动应用类型,比如信息收集"blk_5f992038c64240015d280958" 1640 // 1641 // 示例值:blk_5f992038c64240015d280958 1642 func (builder *IsvBuilder) ComponentTypeId(componentTypeId string) *IsvBuilder { 1643 builder.componentTypeId = componentTypeId 1644 builder.componentTypeIdFlag = true 1645 return builder 1646 } 1647 1648 func (builder *IsvBuilder) Build() *Isv { 1649 req := &Isv{} 1650 if builder.componentIdFlag { 1651 req.ComponentId = &builder.componentId 1652 1653 } 1654 if builder.componentTypeIdFlag { 1655 req.ComponentTypeId = &builder.componentTypeId 1656 1657 } 1658 return req 1659 } 1660 1661 type Link struct { 1662 Url *string `json:"url,omitempty"` // 超链接指向的 url (需要 url_encode) 1663 } 1664 1665 type LinkBuilder struct { 1666 url string // 超链接指向的 url (需要 url_encode) 1667 urlFlag bool 1668 } 1669 1670 func NewLinkBuilder() *LinkBuilder { 1671 builder := &LinkBuilder{} 1672 return builder 1673 } 1674 1675 // 超链接指向的 url (需要 url_encode) 1676 // 1677 // 示例值:https%3A%2F%2Fopen.feishu.cn%2F 1678 func (builder *LinkBuilder) Url(url string) *LinkBuilder { 1679 builder.url = url 1680 builder.urlFlag = true 1681 return builder 1682 } 1683 1684 func (builder *LinkBuilder) Build() *Link { 1685 req := &Link{} 1686 if builder.urlFlag { 1687 req.Url = &builder.url 1688 1689 } 1690 return req 1691 } 1692 1693 type MentionDoc struct { 1694 Token *string `json:"token,omitempty"` // 云文档 token 1695 ObjType *int `json:"obj_type,omitempty"` // 云文档类型 1696 Url *string `json:"url,omitempty"` // 云文档链接(需要 url_encode) 1697 Title *string `json:"title,omitempty"` // 文档标题,只读属性 1698 } 1699 1700 type MentionDocBuilder struct { 1701 token string // 云文档 token 1702 tokenFlag bool 1703 objType int // 云文档类型 1704 objTypeFlag bool 1705 url string // 云文档链接(需要 url_encode) 1706 urlFlag bool 1707 title string // 文档标题,只读属性 1708 titleFlag bool 1709 } 1710 1711 func NewMentionDocBuilder() *MentionDocBuilder { 1712 builder := &MentionDocBuilder{} 1713 return builder 1714 } 1715 1716 // 云文档 token 1717 // 1718 // 示例值:doxbc873Y7cXD153gXqb76G1Y9b 1719 func (builder *MentionDocBuilder) Token(token string) *MentionDocBuilder { 1720 builder.token = token 1721 builder.tokenFlag = true 1722 return builder 1723 } 1724 1725 // 云文档类型 1726 // 1727 // 示例值:22 1728 func (builder *MentionDocBuilder) ObjType(objType int) *MentionDocBuilder { 1729 builder.objType = objType 1730 builder.objTypeFlag = true 1731 return builder 1732 } 1733 1734 // 云文档链接(需要 url_encode) 1735 // 1736 // 示例值:https%3A%2F%2Fbytedance.feishu-boe.cn%2Fdocx%2Fdoxbc873Y7cXD153gXqb76G1Y9b 1737 func (builder *MentionDocBuilder) Url(url string) *MentionDocBuilder { 1738 builder.url = url 1739 builder.urlFlag = true 1740 return builder 1741 } 1742 1743 // 文档标题,只读属性 1744 // 1745 // 示例值:undefined 1746 func (builder *MentionDocBuilder) Title(title string) *MentionDocBuilder { 1747 builder.title = title 1748 builder.titleFlag = true 1749 return builder 1750 } 1751 1752 func (builder *MentionDocBuilder) Build() *MentionDoc { 1753 req := &MentionDoc{} 1754 if builder.tokenFlag { 1755 req.Token = &builder.token 1756 1757 } 1758 if builder.objTypeFlag { 1759 req.ObjType = &builder.objType 1760 1761 } 1762 if builder.urlFlag { 1763 req.Url = &builder.url 1764 1765 } 1766 if builder.titleFlag { 1767 req.Title = &builder.title 1768 1769 } 1770 return req 1771 } 1772 1773 type MentionUser struct { 1774 UserId *string `json:"user_id,omitempty"` // 用户 OpenID 1775 } 1776 1777 type MentionUserBuilder struct { 1778 userId string // 用户 OpenID 1779 userIdFlag bool 1780 } 1781 1782 func NewMentionUserBuilder() *MentionUserBuilder { 1783 builder := &MentionUserBuilder{} 1784 return builder 1785 } 1786 1787 // 用户 OpenID 1788 // 1789 // 示例值:ou_3bbe8a09c20e89cce9bff989ed840674 1790 func (builder *MentionUserBuilder) UserId(userId string) *MentionUserBuilder { 1791 builder.userId = userId 1792 builder.userIdFlag = true 1793 return builder 1794 } 1795 1796 func (builder *MentionUserBuilder) Build() *MentionUser { 1797 req := &MentionUser{} 1798 if builder.userIdFlag { 1799 req.UserId = &builder.userId 1800 1801 } 1802 return req 1803 } 1804 1805 type MergeTableCellsRequest struct { 1806 RowStartIndex *int `json:"row_start_index,omitempty"` // 行起始索引(区间左闭右开) 1807 RowEndIndex *int `json:"row_end_index,omitempty"` // 行结束索引(区间左闭右开) 1808 ColumnStartIndex *int `json:"column_start_index,omitempty"` // 列起始索引(区间左闭右开) 1809 ColumnEndIndex *int `json:"column_end_index,omitempty"` // 列结束索引(区间左闭右开) 1810 } 1811 1812 type MergeTableCellsRequestBuilder struct { 1813 rowStartIndex int // 行起始索引(区间左闭右开) 1814 rowStartIndexFlag bool 1815 rowEndIndex int // 行结束索引(区间左闭右开) 1816 rowEndIndexFlag bool 1817 columnStartIndex int // 列起始索引(区间左闭右开) 1818 columnStartIndexFlag bool 1819 columnEndIndex int // 列结束索引(区间左闭右开) 1820 columnEndIndexFlag bool 1821 } 1822 1823 func NewMergeTableCellsRequestBuilder() *MergeTableCellsRequestBuilder { 1824 builder := &MergeTableCellsRequestBuilder{} 1825 return builder 1826 } 1827 1828 // 行起始索引(区间左闭右开) 1829 // 1830 // 示例值:0 1831 func (builder *MergeTableCellsRequestBuilder) RowStartIndex(rowStartIndex int) *MergeTableCellsRequestBuilder { 1832 builder.rowStartIndex = rowStartIndex 1833 builder.rowStartIndexFlag = true 1834 return builder 1835 } 1836 1837 // 行结束索引(区间左闭右开) 1838 // 1839 // 示例值:1 1840 func (builder *MergeTableCellsRequestBuilder) RowEndIndex(rowEndIndex int) *MergeTableCellsRequestBuilder { 1841 builder.rowEndIndex = rowEndIndex 1842 builder.rowEndIndexFlag = true 1843 return builder 1844 } 1845 1846 // 列起始索引(区间左闭右开) 1847 // 1848 // 示例值:0 1849 func (builder *MergeTableCellsRequestBuilder) ColumnStartIndex(columnStartIndex int) *MergeTableCellsRequestBuilder { 1850 builder.columnStartIndex = columnStartIndex 1851 builder.columnStartIndexFlag = true 1852 return builder 1853 } 1854 1855 // 列结束索引(区间左闭右开) 1856 // 1857 // 示例值:1 1858 func (builder *MergeTableCellsRequestBuilder) ColumnEndIndex(columnEndIndex int) *MergeTableCellsRequestBuilder { 1859 builder.columnEndIndex = columnEndIndex 1860 builder.columnEndIndexFlag = true 1861 return builder 1862 } 1863 1864 func (builder *MergeTableCellsRequestBuilder) Build() *MergeTableCellsRequest { 1865 req := &MergeTableCellsRequest{} 1866 if builder.rowStartIndexFlag { 1867 req.RowStartIndex = &builder.rowStartIndex 1868 1869 } 1870 if builder.rowEndIndexFlag { 1871 req.RowEndIndex = &builder.rowEndIndex 1872 1873 } 1874 if builder.columnStartIndexFlag { 1875 req.ColumnStartIndex = &builder.columnStartIndex 1876 1877 } 1878 if builder.columnEndIndexFlag { 1879 req.ColumnEndIndex = &builder.columnEndIndex 1880 1881 } 1882 return req 1883 } 1884 1885 type Mindnote struct { 1886 Token *string `json:"token,omitempty"` // 思维导图 token 1887 } 1888 1889 type MindnoteBuilder struct { 1890 token string // 思维导图 token 1891 tokenFlag bool 1892 } 1893 1894 func NewMindnoteBuilder() *MindnoteBuilder { 1895 builder := &MindnoteBuilder{} 1896 return builder 1897 } 1898 1899 // 思维导图 token 1900 // 1901 // 示例值:bmnbcXXGPWfJMwDfGCbCiU14c6f 1902 func (builder *MindnoteBuilder) Token(token string) *MindnoteBuilder { 1903 builder.token = token 1904 builder.tokenFlag = true 1905 return builder 1906 } 1907 1908 func (builder *MindnoteBuilder) Build() *Mindnote { 1909 req := &Mindnote{} 1910 if builder.tokenFlag { 1911 req.Token = &builder.token 1912 1913 } 1914 return req 1915 } 1916 1917 type ObjectiveIdWithKrId struct { 1918 ObjectiveId *string `json:"objective_id,omitempty"` // okr 中 objective 的 ID 1919 KrIds []string `json:"kr_ids,omitempty"` // key result 的 ID 列表,此值为空时插入当前 objective 下的所有 key result 1920 } 1921 1922 type ObjectiveIdWithKrIdBuilder struct { 1923 objectiveId string // okr 中 objective 的 ID 1924 objectiveIdFlag bool 1925 krIds []string // key result 的 ID 列表,此值为空时插入当前 objective 下的所有 key result 1926 krIdsFlag bool 1927 } 1928 1929 func NewObjectiveIdWithKrIdBuilder() *ObjectiveIdWithKrIdBuilder { 1930 builder := &ObjectiveIdWithKrIdBuilder{} 1931 return builder 1932 } 1933 1934 // okr 中 objective 的 ID 1935 // 1936 // 示例值:"7109022409227026460" 1937 func (builder *ObjectiveIdWithKrIdBuilder) ObjectiveId(objectiveId string) *ObjectiveIdWithKrIdBuilder { 1938 builder.objectiveId = objectiveId 1939 builder.objectiveIdFlag = true 1940 return builder 1941 } 1942 1943 // key result 的 ID 列表,此值为空时插入当前 objective 下的所有 key result 1944 // 1945 // 示例值:["7109022573011894300","7109022546444517404"] 1946 func (builder *ObjectiveIdWithKrIdBuilder) KrIds(krIds []string) *ObjectiveIdWithKrIdBuilder { 1947 builder.krIds = krIds 1948 builder.krIdsFlag = true 1949 return builder 1950 } 1951 1952 func (builder *ObjectiveIdWithKrIdBuilder) Build() *ObjectiveIdWithKrId { 1953 req := &ObjectiveIdWithKrId{} 1954 if builder.objectiveIdFlag { 1955 req.ObjectiveId = &builder.objectiveId 1956 1957 } 1958 if builder.krIdsFlag { 1959 req.KrIds = builder.krIds 1960 } 1961 return req 1962 } 1963 1964 type Okr struct { 1965 OkrId *string `json:"okr_id,omitempty"` // OKR ID 1966 Objectives []*ObjectiveIdWithKrId `json:"objectives,omitempty"` // OKR Block 中的 objective ID 和 key result ID,此值为空时插入 okr 下所有的 objective 和 key result 1967 PeriodDisplayStatus *string `json:"period_display_status,omitempty"` // 周期的状态 1968 PeriodNameZh *string `json:"period_name_zh,omitempty"` // 周期名 - 中文 1969 PeriodNameEn *string `json:"period_name_en,omitempty"` // 周期名 - 英文 1970 UserId *string `json:"user_id,omitempty"` // OKR 所属的用户 ID 1971 VisibleSetting *OkrVisibleSetting `json:"visible_setting,omitempty"` // 可见性设置 1972 } 1973 1974 type OkrBuilder struct { 1975 okrId string // OKR ID 1976 okrIdFlag bool 1977 objectives []*ObjectiveIdWithKrId // OKR Block 中的 objective ID 和 key result ID,此值为空时插入 okr 下所有的 objective 和 key result 1978 objectivesFlag bool 1979 periodDisplayStatus string // 周期的状态 1980 periodDisplayStatusFlag bool 1981 periodNameZh string // 周期名 - 中文 1982 periodNameZhFlag bool 1983 periodNameEn string // 周期名 - 英文 1984 periodNameEnFlag bool 1985 userId string // OKR 所属的用户 ID 1986 userIdFlag bool 1987 visibleSetting *OkrVisibleSetting // 可见性设置 1988 visibleSettingFlag bool 1989 } 1990 1991 func NewOkrBuilder() *OkrBuilder { 1992 builder := &OkrBuilder{} 1993 return builder 1994 } 1995 1996 // OKR ID 1997 // 1998 // 示例值:"7076349900476448796" 1999 func (builder *OkrBuilder) OkrId(okrId string) *OkrBuilder { 2000 builder.okrId = okrId 2001 builder.okrIdFlag = true 2002 return builder 2003 } 2004 2005 // OKR Block 中的 objective ID 和 key result ID,此值为空时插入 okr 下所有的 objective 和 key result 2006 // 2007 // 示例值: 2008 func (builder *OkrBuilder) Objectives(objectives []*ObjectiveIdWithKrId) *OkrBuilder { 2009 builder.objectives = objectives 2010 builder.objectivesFlag = true 2011 return builder 2012 } 2013 2014 // 周期的状态 2015 // 2016 // 示例值:"default" 2017 func (builder *OkrBuilder) PeriodDisplayStatus(periodDisplayStatus string) *OkrBuilder { 2018 builder.periodDisplayStatus = periodDisplayStatus 2019 builder.periodDisplayStatusFlag = true 2020 return builder 2021 } 2022 2023 // 周期名 - 中文 2024 // 2025 // 示例值:"2022 年 4 月 - 6 月" 2026 func (builder *OkrBuilder) PeriodNameZh(periodNameZh string) *OkrBuilder { 2027 builder.periodNameZh = periodNameZh 2028 builder.periodNameZhFlag = true 2029 return builder 2030 } 2031 2032 // 周期名 - 英文 2033 // 2034 // 示例值:"Apr - Jun 2022" 2035 func (builder *OkrBuilder) PeriodNameEn(periodNameEn string) *OkrBuilder { 2036 builder.periodNameEn = periodNameEn 2037 builder.periodNameEnFlag = true 2038 return builder 2039 } 2040 2041 // OKR 所属的用户 ID 2042 // 2043 // 示例值:"ou_3bbe8a09c20e89cce9bff989ed840674" 2044 func (builder *OkrBuilder) UserId(userId string) *OkrBuilder { 2045 builder.userId = userId 2046 builder.userIdFlag = true 2047 return builder 2048 } 2049 2050 // 可见性设置 2051 // 2052 // 示例值: 2053 func (builder *OkrBuilder) VisibleSetting(visibleSetting *OkrVisibleSetting) *OkrBuilder { 2054 builder.visibleSetting = visibleSetting 2055 builder.visibleSettingFlag = true 2056 return builder 2057 } 2058 2059 func (builder *OkrBuilder) Build() *Okr { 2060 req := &Okr{} 2061 if builder.okrIdFlag { 2062 req.OkrId = &builder.okrId 2063 2064 } 2065 if builder.objectivesFlag { 2066 req.Objectives = builder.objectives 2067 } 2068 if builder.periodDisplayStatusFlag { 2069 req.PeriodDisplayStatus = &builder.periodDisplayStatus 2070 2071 } 2072 if builder.periodNameZhFlag { 2073 req.PeriodNameZh = &builder.periodNameZh 2074 2075 } 2076 if builder.periodNameEnFlag { 2077 req.PeriodNameEn = &builder.periodNameEn 2078 2079 } 2080 if builder.userIdFlag { 2081 req.UserId = &builder.userId 2082 2083 } 2084 if builder.visibleSettingFlag { 2085 req.VisibleSetting = builder.visibleSetting 2086 } 2087 return req 2088 } 2089 2090 type OkrKeyResult struct { 2091 KrId *string `json:"kr_id,omitempty"` // key result 的 ID 2092 Confidential *bool `json:"confidential,omitempty"` // 是否设置过私密权限 2093 Position *int `json:"position,omitempty"` // key result 的位置编号,对应 Block 中 KR1、KR2 的 1、2。 2094 Score *int `json:"score,omitempty"` // 打分信息 2095 Visible *bool `json:"visible,omitempty"` // OKR Block 中此 key result 是否可见 2096 Weight *float64 `json:"weight,omitempty"` // key result 的权重 2097 ProgressRate *OkrProgressRate `json:"progress_rate,omitempty"` // 进展信息 2098 Content *Text `json:"content,omitempty"` // key result 的文本内容 2099 } 2100 2101 type OkrKeyResultBuilder struct { 2102 krId string // key result 的 ID 2103 krIdFlag bool 2104 confidential bool // 是否设置过私密权限 2105 confidentialFlag bool 2106 position int // key result 的位置编号,对应 Block 中 KR1、KR2 的 1、2。 2107 positionFlag bool 2108 score int // 打分信息 2109 scoreFlag bool 2110 visible bool // OKR Block 中此 key result 是否可见 2111 visibleFlag bool 2112 weight float64 // key result 的权重 2113 weightFlag bool 2114 progressRate *OkrProgressRate // 进展信息 2115 progressRateFlag bool 2116 content *Text // key result 的文本内容 2117 contentFlag bool 2118 } 2119 2120 func NewOkrKeyResultBuilder() *OkrKeyResultBuilder { 2121 builder := &OkrKeyResultBuilder{} 2122 return builder 2123 } 2124 2125 // key result 的 ID 2126 // 2127 // 示例值:"7109022573011894300" 2128 func (builder *OkrKeyResultBuilder) KrId(krId string) *OkrKeyResultBuilder { 2129 builder.krId = krId 2130 builder.krIdFlag = true 2131 return builder 2132 } 2133 2134 // 是否设置过私密权限 2135 // 2136 // 示例值:false 2137 func (builder *OkrKeyResultBuilder) Confidential(confidential bool) *OkrKeyResultBuilder { 2138 builder.confidential = confidential 2139 builder.confidentialFlag = true 2140 return builder 2141 } 2142 2143 // key result 的位置编号,对应 Block 中 KR1、KR2 的 1、2。 2144 // 2145 // 示例值:1 2146 func (builder *OkrKeyResultBuilder) Position(position int) *OkrKeyResultBuilder { 2147 builder.position = position 2148 builder.positionFlag = true 2149 return builder 2150 } 2151 2152 // 打分信息 2153 // 2154 // 示例值:0 2155 func (builder *OkrKeyResultBuilder) Score(score int) *OkrKeyResultBuilder { 2156 builder.score = score 2157 builder.scoreFlag = true 2158 return builder 2159 } 2160 2161 // OKR Block 中此 key result 是否可见 2162 // 2163 // 示例值:true 2164 func (builder *OkrKeyResultBuilder) Visible(visible bool) *OkrKeyResultBuilder { 2165 builder.visible = visible 2166 builder.visibleFlag = true 2167 return builder 2168 } 2169 2170 // key result 的权重 2171 // 2172 // 示例值:0.5 2173 func (builder *OkrKeyResultBuilder) Weight(weight float64) *OkrKeyResultBuilder { 2174 builder.weight = weight 2175 builder.weightFlag = true 2176 return builder 2177 } 2178 2179 // 进展信息 2180 // 2181 // 示例值: 2182 func (builder *OkrKeyResultBuilder) ProgressRate(progressRate *OkrProgressRate) *OkrKeyResultBuilder { 2183 builder.progressRate = progressRate 2184 builder.progressRateFlag = true 2185 return builder 2186 } 2187 2188 // key result 的文本内容 2189 // 2190 // 示例值: 2191 func (builder *OkrKeyResultBuilder) Content(content *Text) *OkrKeyResultBuilder { 2192 builder.content = content 2193 builder.contentFlag = true 2194 return builder 2195 } 2196 2197 func (builder *OkrKeyResultBuilder) Build() *OkrKeyResult { 2198 req := &OkrKeyResult{} 2199 if builder.krIdFlag { 2200 req.KrId = &builder.krId 2201 2202 } 2203 if builder.confidentialFlag { 2204 req.Confidential = &builder.confidential 2205 2206 } 2207 if builder.positionFlag { 2208 req.Position = &builder.position 2209 2210 } 2211 if builder.scoreFlag { 2212 req.Score = &builder.score 2213 2214 } 2215 if builder.visibleFlag { 2216 req.Visible = &builder.visible 2217 2218 } 2219 if builder.weightFlag { 2220 req.Weight = &builder.weight 2221 2222 } 2223 if builder.progressRateFlag { 2224 req.ProgressRate = builder.progressRate 2225 } 2226 if builder.contentFlag { 2227 req.Content = builder.content 2228 } 2229 return req 2230 } 2231 2232 type OkrObjective struct { 2233 ObjectiveId *string `json:"objective_id,omitempty"` // objective ID 2234 Confidential *bool `json:"confidential,omitempty"` // 是否设置过私密权限 2235 Position *int `json:"position,omitempty"` // objective 的位置编号,对应 Block 中 O1、O2 的 1、2 2236 Score *int `json:"score,omitempty"` // 打分信息 2237 Visible *bool `json:"visible,omitempty"` // OKR Block 中是否展示该 objective 2238 Weight *float64 `json:"weight,omitempty"` // objective 的权重 2239 ProgressRate *OkrProgressRate `json:"progress_rate,omitempty"` // 进展信息 2240 Content *Text `json:"content,omitempty"` // objective 的文本内容 2241 } 2242 2243 type OkrObjectiveBuilder struct { 2244 objectiveId string // objective ID 2245 objectiveIdFlag bool 2246 confidential bool // 是否设置过私密权限 2247 confidentialFlag bool 2248 position int // objective 的位置编号,对应 Block 中 O1、O2 的 1、2 2249 positionFlag bool 2250 score int // 打分信息 2251 scoreFlag bool 2252 visible bool // OKR Block 中是否展示该 objective 2253 visibleFlag bool 2254 weight float64 // objective 的权重 2255 weightFlag bool 2256 progressRate *OkrProgressRate // 进展信息 2257 progressRateFlag bool 2258 content *Text // objective 的文本内容 2259 contentFlag bool 2260 } 2261 2262 func NewOkrObjectiveBuilder() *OkrObjectiveBuilder { 2263 builder := &OkrObjectiveBuilder{} 2264 return builder 2265 } 2266 2267 // objective ID 2268 // 2269 // 示例值:"7109022409227026460" 2270 func (builder *OkrObjectiveBuilder) ObjectiveId(objectiveId string) *OkrObjectiveBuilder { 2271 builder.objectiveId = objectiveId 2272 builder.objectiveIdFlag = true 2273 return builder 2274 } 2275 2276 // 是否设置过私密权限 2277 // 2278 // 示例值:false 2279 func (builder *OkrObjectiveBuilder) Confidential(confidential bool) *OkrObjectiveBuilder { 2280 builder.confidential = confidential 2281 builder.confidentialFlag = true 2282 return builder 2283 } 2284 2285 // objective 的位置编号,对应 Block 中 O1、O2 的 1、2 2286 // 2287 // 示例值:1 2288 func (builder *OkrObjectiveBuilder) Position(position int) *OkrObjectiveBuilder { 2289 builder.position = position 2290 builder.positionFlag = true 2291 return builder 2292 } 2293 2294 // 打分信息 2295 // 2296 // 示例值:0 2297 func (builder *OkrObjectiveBuilder) Score(score int) *OkrObjectiveBuilder { 2298 builder.score = score 2299 builder.scoreFlag = true 2300 return builder 2301 } 2302 2303 // OKR Block 中是否展示该 objective 2304 // 2305 // 示例值:true 2306 func (builder *OkrObjectiveBuilder) Visible(visible bool) *OkrObjectiveBuilder { 2307 builder.visible = visible 2308 builder.visibleFlag = true 2309 return builder 2310 } 2311 2312 // objective 的权重 2313 // 2314 // 示例值:1.0 2315 func (builder *OkrObjectiveBuilder) Weight(weight float64) *OkrObjectiveBuilder { 2316 builder.weight = weight 2317 builder.weightFlag = true 2318 return builder 2319 } 2320 2321 // 进展信息 2322 // 2323 // 示例值: 2324 func (builder *OkrObjectiveBuilder) ProgressRate(progressRate *OkrProgressRate) *OkrObjectiveBuilder { 2325 builder.progressRate = progressRate 2326 builder.progressRateFlag = true 2327 return builder 2328 } 2329 2330 // objective 的文本内容 2331 // 2332 // 示例值: 2333 func (builder *OkrObjectiveBuilder) Content(content *Text) *OkrObjectiveBuilder { 2334 builder.content = content 2335 builder.contentFlag = true 2336 return builder 2337 } 2338 2339 func (builder *OkrObjectiveBuilder) Build() *OkrObjective { 2340 req := &OkrObjective{} 2341 if builder.objectiveIdFlag { 2342 req.ObjectiveId = &builder.objectiveId 2343 2344 } 2345 if builder.confidentialFlag { 2346 req.Confidential = &builder.confidential 2347 2348 } 2349 if builder.positionFlag { 2350 req.Position = &builder.position 2351 2352 } 2353 if builder.scoreFlag { 2354 req.Score = &builder.score 2355 2356 } 2357 if builder.visibleFlag { 2358 req.Visible = &builder.visible 2359 2360 } 2361 if builder.weightFlag { 2362 req.Weight = &builder.weight 2363 2364 } 2365 if builder.progressRateFlag { 2366 req.ProgressRate = builder.progressRate 2367 } 2368 if builder.contentFlag { 2369 req.Content = builder.content 2370 } 2371 return req 2372 } 2373 2374 type OkrProgress struct { 2375 } 2376 2377 type OkrProgressRate struct { 2378 Mode *string `json:"mode,omitempty"` // 状态模式 2379 Current *float64 `json:"current,omitempty"` // 当前进度 2380 Percent *float64 `json:"percent,omitempty"` // 当前进度百分比,simple mode 下使用 2381 ProgressStatus *string `json:"progress_status,omitempty"` // 进展状态 2382 Start *float64 `json:"start,omitempty"` // 进度起始值,advanced模式使用 2383 StatusType *string `json:"status_type,omitempty"` // 状态类型 2384 Target *float64 `json:"target,omitempty"` // 进度目标值,advanced模式使用 2385 } 2386 2387 type OkrProgressRateBuilder struct { 2388 mode string // 状态模式 2389 modeFlag bool 2390 current float64 // 当前进度 2391 currentFlag bool 2392 percent float64 // 当前进度百分比,simple mode 下使用 2393 percentFlag bool 2394 progressStatus string // 进展状态 2395 progressStatusFlag bool 2396 start float64 // 进度起始值,advanced模式使用 2397 startFlag bool 2398 statusType string // 状态类型 2399 statusTypeFlag bool 2400 target float64 // 进度目标值,advanced模式使用 2401 targetFlag bool 2402 } 2403 2404 func NewOkrProgressRateBuilder() *OkrProgressRateBuilder { 2405 builder := &OkrProgressRateBuilder{} 2406 return builder 2407 } 2408 2409 // 状态模式 2410 // 2411 // 示例值:"simple" 2412 func (builder *OkrProgressRateBuilder) Mode(mode string) *OkrProgressRateBuilder { 2413 builder.mode = mode 2414 builder.modeFlag = true 2415 return builder 2416 } 2417 2418 // 当前进度 2419 // 2420 // 示例值:0 2421 func (builder *OkrProgressRateBuilder) Current(current float64) *OkrProgressRateBuilder { 2422 builder.current = current 2423 builder.currentFlag = true 2424 return builder 2425 } 2426 2427 // 当前进度百分比,simple mode 下使用 2428 // 2429 // 示例值:100 2430 func (builder *OkrProgressRateBuilder) Percent(percent float64) *OkrProgressRateBuilder { 2431 builder.percent = percent 2432 builder.percentFlag = true 2433 return builder 2434 } 2435 2436 // 进展状态 2437 // 2438 // 示例值:"normal" 2439 func (builder *OkrProgressRateBuilder) ProgressStatus(progressStatus string) *OkrProgressRateBuilder { 2440 builder.progressStatus = progressStatus 2441 builder.progressStatusFlag = true 2442 return builder 2443 } 2444 2445 // 进度起始值,advanced模式使用 2446 // 2447 // 示例值:0 2448 func (builder *OkrProgressRateBuilder) Start(start float64) *OkrProgressRateBuilder { 2449 builder.start = start 2450 builder.startFlag = true 2451 return builder 2452 } 2453 2454 // 状态类型 2455 // 2456 // 示例值:"default" 2457 func (builder *OkrProgressRateBuilder) StatusType(statusType string) *OkrProgressRateBuilder { 2458 builder.statusType = statusType 2459 builder.statusTypeFlag = true 2460 return builder 2461 } 2462 2463 // 进度目标值,advanced模式使用 2464 // 2465 // 示例值: 2466 func (builder *OkrProgressRateBuilder) Target(target float64) *OkrProgressRateBuilder { 2467 builder.target = target 2468 builder.targetFlag = true 2469 return builder 2470 } 2471 2472 func (builder *OkrProgressRateBuilder) Build() *OkrProgressRate { 2473 req := &OkrProgressRate{} 2474 if builder.modeFlag { 2475 req.Mode = &builder.mode 2476 2477 } 2478 if builder.currentFlag { 2479 req.Current = &builder.current 2480 2481 } 2482 if builder.percentFlag { 2483 req.Percent = &builder.percent 2484 2485 } 2486 if builder.progressStatusFlag { 2487 req.ProgressStatus = &builder.progressStatus 2488 2489 } 2490 if builder.startFlag { 2491 req.Start = &builder.start 2492 2493 } 2494 if builder.statusTypeFlag { 2495 req.StatusType = &builder.statusType 2496 2497 } 2498 if builder.targetFlag { 2499 req.Target = &builder.target 2500 2501 } 2502 return req 2503 } 2504 2505 type OkrVisibleSetting struct { 2506 ProgressFillAreaVisible *bool `json:"progress_fill_area_visible,omitempty"` // 进展编辑区域是否可见 2507 ProgressStatusVisible *bool `json:"progress_status_visible,omitempty"` // 状态是否可见 2508 ScoreVisible *bool `json:"score_visible,omitempty"` // 分数是否可见 2509 } 2510 2511 type OkrVisibleSettingBuilder struct { 2512 progressFillAreaVisible bool // 进展编辑区域是否可见 2513 progressFillAreaVisibleFlag bool 2514 progressStatusVisible bool // 状态是否可见 2515 progressStatusVisibleFlag bool 2516 scoreVisible bool // 分数是否可见 2517 scoreVisibleFlag bool 2518 } 2519 2520 func NewOkrVisibleSettingBuilder() *OkrVisibleSettingBuilder { 2521 builder := &OkrVisibleSettingBuilder{} 2522 return builder 2523 } 2524 2525 // 进展编辑区域是否可见 2526 // 2527 // 示例值:true 2528 func (builder *OkrVisibleSettingBuilder) ProgressFillAreaVisible(progressFillAreaVisible bool) *OkrVisibleSettingBuilder { 2529 builder.progressFillAreaVisible = progressFillAreaVisible 2530 builder.progressFillAreaVisibleFlag = true 2531 return builder 2532 } 2533 2534 // 状态是否可见 2535 // 2536 // 示例值:true 2537 func (builder *OkrVisibleSettingBuilder) ProgressStatusVisible(progressStatusVisible bool) *OkrVisibleSettingBuilder { 2538 builder.progressStatusVisible = progressStatusVisible 2539 builder.progressStatusVisibleFlag = true 2540 return builder 2541 } 2542 2543 // 分数是否可见 2544 // 2545 // 示例值:true 2546 func (builder *OkrVisibleSettingBuilder) ScoreVisible(scoreVisible bool) *OkrVisibleSettingBuilder { 2547 builder.scoreVisible = scoreVisible 2548 builder.scoreVisibleFlag = true 2549 return builder 2550 } 2551 2552 func (builder *OkrVisibleSettingBuilder) Build() *OkrVisibleSetting { 2553 req := &OkrVisibleSetting{} 2554 if builder.progressFillAreaVisibleFlag { 2555 req.ProgressFillAreaVisible = &builder.progressFillAreaVisible 2556 2557 } 2558 if builder.progressStatusVisibleFlag { 2559 req.ProgressStatusVisible = &builder.progressStatusVisible 2560 2561 } 2562 if builder.scoreVisibleFlag { 2563 req.ScoreVisible = &builder.scoreVisible 2564 2565 } 2566 return req 2567 } 2568 2569 type QuoteContainer struct { 2570 } 2571 2572 type Reminder struct { 2573 CreateUserId *string `json:"create_user_id,omitempty"` // 创建者用户 ID 2574 IsNotify *bool `json:"is_notify,omitempty"` // 是否通知 2575 IsWholeDay *bool `json:"is_whole_day,omitempty"` // 是日期还是整点小时 2576 ExpireTime *string `json:"expire_time,omitempty"` // 事件发生的时间(毫秒级事件戳) 2577 NotifyTime *string `json:"notify_time,omitempty"` // 触发通知的时间(毫秒级时间戳) 2578 } 2579 2580 type ReminderBuilder struct { 2581 createUserId string // 创建者用户 ID 2582 createUserIdFlag bool 2583 isNotify bool // 是否通知 2584 isNotifyFlag bool 2585 isWholeDay bool // 是日期还是整点小时 2586 isWholeDayFlag bool 2587 expireTime string // 事件发生的时间(毫秒级事件戳) 2588 expireTimeFlag bool 2589 notifyTime string // 触发通知的时间(毫秒级时间戳) 2590 notifyTimeFlag bool 2591 } 2592 2593 func NewReminderBuilder() *ReminderBuilder { 2594 builder := &ReminderBuilder{} 2595 return builder 2596 } 2597 2598 // 创建者用户 ID 2599 // 2600 // 示例值:0e2633a3-aa1a-4171-af9e-0768ff863566 2601 func (builder *ReminderBuilder) CreateUserId(createUserId string) *ReminderBuilder { 2602 builder.createUserId = createUserId 2603 builder.createUserIdFlag = true 2604 return builder 2605 } 2606 2607 // 是否通知 2608 // 2609 // 示例值:true 2610 func (builder *ReminderBuilder) IsNotify(isNotify bool) *ReminderBuilder { 2611 builder.isNotify = isNotify 2612 builder.isNotifyFlag = true 2613 return builder 2614 } 2615 2616 // 是日期还是整点小时 2617 // 2618 // 示例值:true 2619 func (builder *ReminderBuilder) IsWholeDay(isWholeDay bool) *ReminderBuilder { 2620 builder.isWholeDay = isWholeDay 2621 builder.isWholeDayFlag = true 2622 return builder 2623 } 2624 2625 // 事件发生的时间(毫秒级事件戳) 2626 // 2627 // 示例值:1641967200000 2628 func (builder *ReminderBuilder) ExpireTime(expireTime string) *ReminderBuilder { 2629 builder.expireTime = expireTime 2630 builder.expireTimeFlag = true 2631 return builder 2632 } 2633 2634 // 触发通知的时间(毫秒级时间戳) 2635 // 2636 // 示例值:1643166000000 2637 func (builder *ReminderBuilder) NotifyTime(notifyTime string) *ReminderBuilder { 2638 builder.notifyTime = notifyTime 2639 builder.notifyTimeFlag = true 2640 return builder 2641 } 2642 2643 func (builder *ReminderBuilder) Build() *Reminder { 2644 req := &Reminder{} 2645 if builder.createUserIdFlag { 2646 req.CreateUserId = &builder.createUserId 2647 2648 } 2649 if builder.isNotifyFlag { 2650 req.IsNotify = &builder.isNotify 2651 2652 } 2653 if builder.isWholeDayFlag { 2654 req.IsWholeDay = &builder.isWholeDay 2655 2656 } 2657 if builder.expireTimeFlag { 2658 req.ExpireTime = &builder.expireTime 2659 2660 } 2661 if builder.notifyTimeFlag { 2662 req.NotifyTime = &builder.notifyTime 2663 2664 } 2665 return req 2666 } 2667 2668 type ReplaceFileRequest struct { 2669 Token *string `json:"token,omitempty"` // 附件 token 2670 } 2671 2672 type ReplaceFileRequestBuilder struct { 2673 token string // 附件 token 2674 tokenFlag bool 2675 } 2676 2677 func NewReplaceFileRequestBuilder() *ReplaceFileRequestBuilder { 2678 builder := &ReplaceFileRequestBuilder{} 2679 return builder 2680 } 2681 2682 // 附件 token 2683 // 2684 // 示例值:boxbckbfvfcqEg22hAzN8Dh9gJd 2685 func (builder *ReplaceFileRequestBuilder) Token(token string) *ReplaceFileRequestBuilder { 2686 builder.token = token 2687 builder.tokenFlag = true 2688 return builder 2689 } 2690 2691 func (builder *ReplaceFileRequestBuilder) Build() *ReplaceFileRequest { 2692 req := &ReplaceFileRequest{} 2693 if builder.tokenFlag { 2694 req.Token = &builder.token 2695 2696 } 2697 return req 2698 } 2699 2700 type ReplaceImageRequest struct { 2701 Token *string `json:"token,omitempty"` // 图片 token 2702 } 2703 2704 type ReplaceImageRequestBuilder struct { 2705 token string // 图片 token 2706 tokenFlag bool 2707 } 2708 2709 func NewReplaceImageRequestBuilder() *ReplaceImageRequestBuilder { 2710 builder := &ReplaceImageRequestBuilder{} 2711 return builder 2712 } 2713 2714 // 图片 token 2715 // 2716 // 示例值:boxbckbfvfcqEg22hAzN8Dh9gJd 2717 func (builder *ReplaceImageRequestBuilder) Token(token string) *ReplaceImageRequestBuilder { 2718 builder.token = token 2719 builder.tokenFlag = true 2720 return builder 2721 } 2722 2723 func (builder *ReplaceImageRequestBuilder) Build() *ReplaceImageRequest { 2724 req := &ReplaceImageRequest{} 2725 if builder.tokenFlag { 2726 req.Token = &builder.token 2727 2728 } 2729 return req 2730 } 2731 2732 type Sheet struct { 2733 Token *string `json:"token,omitempty"` // 电子表格 block 的 token 2734 RowSize *int `json:"row_size,omitempty"` // 电子表格行数量 2735 ColumnSize *int `json:"column_size,omitempty"` // 电子表格列数量 2736 } 2737 2738 type SheetBuilder struct { 2739 token string // 电子表格 block 的 token 2740 tokenFlag bool 2741 rowSize int // 电子表格行数量 2742 rowSizeFlag bool 2743 columnSize int // 电子表格列数量 2744 columnSizeFlag bool 2745 } 2746 2747 func NewSheetBuilder() *SheetBuilder { 2748 builder := &SheetBuilder{} 2749 return builder 2750 } 2751 2752 // 电子表格 block 的 token 2753 // 2754 // 示例值:shtbcW6ufcUtRRet7Hz6Iv4ytzg 2755 func (builder *SheetBuilder) Token(token string) *SheetBuilder { 2756 builder.token = token 2757 builder.tokenFlag = true 2758 return builder 2759 } 2760 2761 // 电子表格行数量 2762 // 2763 // 示例值:2 2764 func (builder *SheetBuilder) RowSize(rowSize int) *SheetBuilder { 2765 builder.rowSize = rowSize 2766 builder.rowSizeFlag = true 2767 return builder 2768 } 2769 2770 // 电子表格列数量 2771 // 2772 // 示例值:2 2773 func (builder *SheetBuilder) ColumnSize(columnSize int) *SheetBuilder { 2774 builder.columnSize = columnSize 2775 builder.columnSizeFlag = true 2776 return builder 2777 } 2778 2779 func (builder *SheetBuilder) Build() *Sheet { 2780 req := &Sheet{} 2781 if builder.tokenFlag { 2782 req.Token = &builder.token 2783 2784 } 2785 if builder.rowSizeFlag { 2786 req.RowSize = &builder.rowSize 2787 2788 } 2789 if builder.columnSizeFlag { 2790 req.ColumnSize = &builder.columnSize 2791 2792 } 2793 return req 2794 } 2795 2796 type Table struct { 2797 Cells []string `json:"cells,omitempty"` // 单元格数组,数组元素为 Table Cell Block 的 ID 2798 Property *TableProperty `json:"property,omitempty"` // 表格属性 2799 } 2800 2801 type TableBuilder struct { 2802 cells []string // 单元格数组,数组元素为 Table Cell Block 的 ID 2803 cellsFlag bool 2804 property *TableProperty // 表格属性 2805 propertyFlag bool 2806 } 2807 2808 func NewTableBuilder() *TableBuilder { 2809 builder := &TableBuilder{} 2810 return builder 2811 } 2812 2813 // 单元格数组,数组元素为 Table Cell Block 的 ID 2814 // 2815 // 示例值: 2816 func (builder *TableBuilder) Cells(cells []string) *TableBuilder { 2817 builder.cells = cells 2818 builder.cellsFlag = true 2819 return builder 2820 } 2821 2822 // 表格属性 2823 // 2824 // 示例值: 2825 func (builder *TableBuilder) Property(property *TableProperty) *TableBuilder { 2826 builder.property = property 2827 builder.propertyFlag = true 2828 return builder 2829 } 2830 2831 func (builder *TableBuilder) Build() *Table { 2832 req := &Table{} 2833 if builder.cellsFlag { 2834 req.Cells = builder.cells 2835 } 2836 if builder.propertyFlag { 2837 req.Property = builder.property 2838 } 2839 return req 2840 } 2841 2842 type TableCell struct { 2843 } 2844 2845 type TableMergeInfo struct { 2846 RowSpan *int `json:"row_span,omitempty"` // 从当前行索引起被合并的连续行数 2847 ColSpan *int `json:"col_span,omitempty"` // 从当前列索引起被合并的连续列数 2848 } 2849 2850 type TableMergeInfoBuilder struct { 2851 rowSpan int // 从当前行索引起被合并的连续行数 2852 rowSpanFlag bool 2853 colSpan int // 从当前列索引起被合并的连续列数 2854 colSpanFlag bool 2855 } 2856 2857 func NewTableMergeInfoBuilder() *TableMergeInfoBuilder { 2858 builder := &TableMergeInfoBuilder{} 2859 return builder 2860 } 2861 2862 // 从当前行索引起被合并的连续行数 2863 // 2864 // 示例值:2 2865 func (builder *TableMergeInfoBuilder) RowSpan(rowSpan int) *TableMergeInfoBuilder { 2866 builder.rowSpan = rowSpan 2867 builder.rowSpanFlag = true 2868 return builder 2869 } 2870 2871 // 从当前列索引起被合并的连续列数 2872 // 2873 // 示例值:2 2874 func (builder *TableMergeInfoBuilder) ColSpan(colSpan int) *TableMergeInfoBuilder { 2875 builder.colSpan = colSpan 2876 builder.colSpanFlag = true 2877 return builder 2878 } 2879 2880 func (builder *TableMergeInfoBuilder) Build() *TableMergeInfo { 2881 req := &TableMergeInfo{} 2882 if builder.rowSpanFlag { 2883 req.RowSpan = &builder.rowSpan 2884 2885 } 2886 if builder.colSpanFlag { 2887 req.ColSpan = &builder.colSpan 2888 2889 } 2890 return req 2891 } 2892 2893 type TableProperty struct { 2894 RowSize *int `json:"row_size,omitempty"` // 行数 2895 ColumnSize *int `json:"column_size,omitempty"` // 列数 2896 ColumnWidth []int `json:"column_width,omitempty"` // 列宽,单位px 2897 MergeInfo []*TableMergeInfo `json:"merge_info,omitempty"` // 单元格合并信息 2898 } 2899 2900 type TablePropertyBuilder struct { 2901 rowSize int // 行数 2902 rowSizeFlag bool 2903 columnSize int // 列数 2904 columnSizeFlag bool 2905 columnWidth []int // 列宽,单位px 2906 columnWidthFlag bool 2907 mergeInfo []*TableMergeInfo // 单元格合并信息 2908 mergeInfoFlag bool 2909 } 2910 2911 func NewTablePropertyBuilder() *TablePropertyBuilder { 2912 builder := &TablePropertyBuilder{} 2913 return builder 2914 } 2915 2916 // 行数 2917 // 2918 // 示例值:1 2919 func (builder *TablePropertyBuilder) RowSize(rowSize int) *TablePropertyBuilder { 2920 builder.rowSize = rowSize 2921 builder.rowSizeFlag = true 2922 return builder 2923 } 2924 2925 // 列数 2926 // 2927 // 示例值:1 2928 func (builder *TablePropertyBuilder) ColumnSize(columnSize int) *TablePropertyBuilder { 2929 builder.columnSize = columnSize 2930 builder.columnSizeFlag = true 2931 return builder 2932 } 2933 2934 // 列宽,单位px 2935 // 2936 // 示例值:100 2937 func (builder *TablePropertyBuilder) ColumnWidth(columnWidth []int) *TablePropertyBuilder { 2938 builder.columnWidth = columnWidth 2939 builder.columnWidthFlag = true 2940 return builder 2941 } 2942 2943 // 单元格合并信息 2944 // 2945 // 示例值: 2946 func (builder *TablePropertyBuilder) MergeInfo(mergeInfo []*TableMergeInfo) *TablePropertyBuilder { 2947 builder.mergeInfo = mergeInfo 2948 builder.mergeInfoFlag = true 2949 return builder 2950 } 2951 2952 func (builder *TablePropertyBuilder) Build() *TableProperty { 2953 req := &TableProperty{} 2954 if builder.rowSizeFlag { 2955 req.RowSize = &builder.rowSize 2956 2957 } 2958 if builder.columnSizeFlag { 2959 req.ColumnSize = &builder.columnSize 2960 2961 } 2962 if builder.columnWidthFlag { 2963 req.ColumnWidth = builder.columnWidth 2964 } 2965 if builder.mergeInfoFlag { 2966 req.MergeInfo = builder.mergeInfo 2967 } 2968 return req 2969 } 2970 2971 type Task struct { 2972 TaskId *string `json:"task_id,omitempty"` // 任务 ID,查询具体任务详情见 https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task/create 2973 } 2974 2975 type TaskBuilder struct { 2976 taskId string // 任务 ID,查询具体任务详情见 https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task/create 2977 taskIdFlag bool 2978 } 2979 2980 func NewTaskBuilder() *TaskBuilder { 2981 builder := &TaskBuilder{} 2982 return builder 2983 } 2984 2985 // 任务 ID,查询具体任务详情见 https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/task-v1/task/create 2986 // 2987 // 示例值: 2988 func (builder *TaskBuilder) TaskId(taskId string) *TaskBuilder { 2989 builder.taskId = taskId 2990 builder.taskIdFlag = true 2991 return builder 2992 } 2993 2994 func (builder *TaskBuilder) Build() *Task { 2995 req := &Task{} 2996 if builder.taskIdFlag { 2997 req.TaskId = &builder.taskId 2998 2999 } 3000 return req 3001 } 3002 3003 type Text struct { 3004 Style *TextStyle `json:"style,omitempty"` // 文本样式 3005 Elements []*TextElement `json:"elements,omitempty"` // 文本元素 3006 } 3007 3008 type TextBuilder struct { 3009 style *TextStyle // 文本样式 3010 styleFlag bool 3011 elements []*TextElement // 文本元素 3012 elementsFlag bool 3013 } 3014 3015 func NewTextBuilder() *TextBuilder { 3016 builder := &TextBuilder{} 3017 return builder 3018 } 3019 3020 // 文本样式 3021 // 3022 // 示例值: 3023 func (builder *TextBuilder) Style(style *TextStyle) *TextBuilder { 3024 builder.style = style 3025 builder.styleFlag = true 3026 return builder 3027 } 3028 3029 // 文本元素 3030 // 3031 // 示例值: 3032 func (builder *TextBuilder) Elements(elements []*TextElement) *TextBuilder { 3033 builder.elements = elements 3034 builder.elementsFlag = true 3035 return builder 3036 } 3037 3038 func (builder *TextBuilder) Build() *Text { 3039 req := &Text{} 3040 if builder.styleFlag { 3041 req.Style = builder.style 3042 } 3043 if builder.elementsFlag { 3044 req.Elements = builder.elements 3045 } 3046 return req 3047 } 3048 3049 type TextElement struct { 3050 TextRun *TextRun `json:"text_run,omitempty"` // 文字 3051 MentionUser *MentionUser `json:"mention_user,omitempty"` // @用户 3052 MentionDoc *MentionDoc `json:"mention_doc,omitempty"` // @文档 3053 Reminder *Reminder `json:"reminder,omitempty"` // 日期提醒 3054 File *InlineFile `json:"file,omitempty"` // 内联附件 3055 Undefined *UndefinedElement `json:"undefined,omitempty"` // 未支持的 TextElement 3056 InlineBlock *InlineBlock `json:"inline_block,omitempty"` // 内联 block 3057 Equation *Equation `json:"equation,omitempty"` // 公式 3058 } 3059 3060 type TextElementBuilder struct { 3061 textRun *TextRun // 文字 3062 textRunFlag bool 3063 mentionUser *MentionUser // @用户 3064 mentionUserFlag bool 3065 mentionDoc *MentionDoc // @文档 3066 mentionDocFlag bool 3067 reminder *Reminder // 日期提醒 3068 reminderFlag bool 3069 file *InlineFile // 内联附件 3070 fileFlag bool 3071 undefined *UndefinedElement // 未支持的 TextElement 3072 undefinedFlag bool 3073 inlineBlock *InlineBlock // 内联 block 3074 inlineBlockFlag bool 3075 equation *Equation // 公式 3076 equationFlag bool 3077 } 3078 3079 func NewTextElementBuilder() *TextElementBuilder { 3080 builder := &TextElementBuilder{} 3081 return builder 3082 } 3083 3084 // 文字 3085 // 3086 // 示例值: 3087 func (builder *TextElementBuilder) TextRun(textRun *TextRun) *TextElementBuilder { 3088 builder.textRun = textRun 3089 builder.textRunFlag = true 3090 return builder 3091 } 3092 3093 // @用户 3094 // 3095 // 示例值: 3096 func (builder *TextElementBuilder) MentionUser(mentionUser *MentionUser) *TextElementBuilder { 3097 builder.mentionUser = mentionUser 3098 builder.mentionUserFlag = true 3099 return builder 3100 } 3101 3102 // @文档 3103 // 3104 // 示例值: 3105 func (builder *TextElementBuilder) MentionDoc(mentionDoc *MentionDoc) *TextElementBuilder { 3106 builder.mentionDoc = mentionDoc 3107 builder.mentionDocFlag = true 3108 return builder 3109 } 3110 3111 // 日期提醒 3112 // 3113 // 示例值: 3114 func (builder *TextElementBuilder) Reminder(reminder *Reminder) *TextElementBuilder { 3115 builder.reminder = reminder 3116 builder.reminderFlag = true 3117 return builder 3118 } 3119 3120 // 内联附件 3121 // 3122 // 示例值: 3123 func (builder *TextElementBuilder) File(file *InlineFile) *TextElementBuilder { 3124 builder.file = file 3125 builder.fileFlag = true 3126 return builder 3127 } 3128 3129 // 未支持的 TextElement 3130 // 3131 // 示例值: 3132 func (builder *TextElementBuilder) Undefined(undefined *UndefinedElement) *TextElementBuilder { 3133 builder.undefined = undefined 3134 builder.undefinedFlag = true 3135 return builder 3136 } 3137 3138 // 内联 block 3139 // 3140 // 示例值: 3141 func (builder *TextElementBuilder) InlineBlock(inlineBlock *InlineBlock) *TextElementBuilder { 3142 builder.inlineBlock = inlineBlock 3143 builder.inlineBlockFlag = true 3144 return builder 3145 } 3146 3147 // 公式 3148 // 3149 // 示例值: 3150 func (builder *TextElementBuilder) Equation(equation *Equation) *TextElementBuilder { 3151 builder.equation = equation 3152 builder.equationFlag = true 3153 return builder 3154 } 3155 3156 func (builder *TextElementBuilder) Build() *TextElement { 3157 req := &TextElement{} 3158 if builder.textRunFlag { 3159 req.TextRun = builder.textRun 3160 } 3161 if builder.mentionUserFlag { 3162 req.MentionUser = builder.mentionUser 3163 } 3164 if builder.mentionDocFlag { 3165 req.MentionDoc = builder.mentionDoc 3166 } 3167 if builder.reminderFlag { 3168 req.Reminder = builder.reminder 3169 } 3170 if builder.fileFlag { 3171 req.File = builder.file 3172 } 3173 if builder.undefinedFlag { 3174 req.Undefined = builder.undefined 3175 } 3176 if builder.inlineBlockFlag { 3177 req.InlineBlock = builder.inlineBlock 3178 } 3179 if builder.equationFlag { 3180 req.Equation = builder.equation 3181 } 3182 return req 3183 } 3184 3185 type TextElementStyle struct { 3186 Bold *bool `json:"bold,omitempty"` // 加粗 3187 Italic *bool `json:"italic,omitempty"` // 斜体 3188 Strikethrough *bool `json:"strikethrough,omitempty"` // 删除线 3189 Underline *bool `json:"underline,omitempty"` // 下划线 3190 InlineCode *bool `json:"inline_code,omitempty"` // inline 代码 3191 BackgroundColor *int `json:"background_color,omitempty"` // 背景色 3192 TextColor *int `json:"text_color,omitempty"` // 字体颜色 3193 Link *Link `json:"link,omitempty"` // 链接 3194 } 3195 3196 type TextElementStyleBuilder struct { 3197 bold bool // 加粗 3198 boldFlag bool 3199 italic bool // 斜体 3200 italicFlag bool 3201 strikethrough bool // 删除线 3202 strikethroughFlag bool 3203 underline bool // 下划线 3204 underlineFlag bool 3205 inlineCode bool // inline 代码 3206 inlineCodeFlag bool 3207 backgroundColor int // 背景色 3208 backgroundColorFlag bool 3209 textColor int // 字体颜色 3210 textColorFlag bool 3211 link *Link // 链接 3212 linkFlag bool 3213 } 3214 3215 func NewTextElementStyleBuilder() *TextElementStyleBuilder { 3216 builder := &TextElementStyleBuilder{} 3217 return builder 3218 } 3219 3220 // 加粗 3221 // 3222 // 示例值:true 3223 func (builder *TextElementStyleBuilder) Bold(bold bool) *TextElementStyleBuilder { 3224 builder.bold = bold 3225 builder.boldFlag = true 3226 return builder 3227 } 3228 3229 // 斜体 3230 // 3231 // 示例值:true 3232 func (builder *TextElementStyleBuilder) Italic(italic bool) *TextElementStyleBuilder { 3233 builder.italic = italic 3234 builder.italicFlag = true 3235 return builder 3236 } 3237 3238 // 删除线 3239 // 3240 // 示例值:true 3241 func (builder *TextElementStyleBuilder) Strikethrough(strikethrough bool) *TextElementStyleBuilder { 3242 builder.strikethrough = strikethrough 3243 builder.strikethroughFlag = true 3244 return builder 3245 } 3246 3247 // 下划线 3248 // 3249 // 示例值:true 3250 func (builder *TextElementStyleBuilder) Underline(underline bool) *TextElementStyleBuilder { 3251 builder.underline = underline 3252 builder.underlineFlag = true 3253 return builder 3254 } 3255 3256 // inline 代码 3257 // 3258 // 示例值:true 3259 func (builder *TextElementStyleBuilder) InlineCode(inlineCode bool) *TextElementStyleBuilder { 3260 builder.inlineCode = inlineCode 3261 builder.inlineCodeFlag = true 3262 return builder 3263 } 3264 3265 // 背景色 3266 // 3267 // 示例值:1 3268 func (builder *TextElementStyleBuilder) BackgroundColor(backgroundColor int) *TextElementStyleBuilder { 3269 builder.backgroundColor = backgroundColor 3270 builder.backgroundColorFlag = true 3271 return builder 3272 } 3273 3274 // 字体颜色 3275 // 3276 // 示例值:1 3277 func (builder *TextElementStyleBuilder) TextColor(textColor int) *TextElementStyleBuilder { 3278 builder.textColor = textColor 3279 builder.textColorFlag = true 3280 return builder 3281 } 3282 3283 // 链接 3284 // 3285 // 示例值: 3286 func (builder *TextElementStyleBuilder) Link(link *Link) *TextElementStyleBuilder { 3287 builder.link = link 3288 builder.linkFlag = true 3289 return builder 3290 } 3291 3292 func (builder *TextElementStyleBuilder) Build() *TextElementStyle { 3293 req := &TextElementStyle{} 3294 if builder.boldFlag { 3295 req.Bold = &builder.bold 3296 3297 } 3298 if builder.italicFlag { 3299 req.Italic = &builder.italic 3300 3301 } 3302 if builder.strikethroughFlag { 3303 req.Strikethrough = &builder.strikethrough 3304 3305 } 3306 if builder.underlineFlag { 3307 req.Underline = &builder.underline 3308 3309 } 3310 if builder.inlineCodeFlag { 3311 req.InlineCode = &builder.inlineCode 3312 3313 } 3314 if builder.backgroundColorFlag { 3315 req.BackgroundColor = &builder.backgroundColor 3316 3317 } 3318 if builder.textColorFlag { 3319 req.TextColor = &builder.textColor 3320 3321 } 3322 if builder.linkFlag { 3323 req.Link = builder.link 3324 } 3325 return req 3326 } 3327 3328 type TextRun struct { 3329 Content *string `json:"content,omitempty"` // 文本内容 3330 TextElementStyle *TextElementStyle `json:"text_element_style,omitempty"` // 文本局部样式 3331 } 3332 3333 type TextRunBuilder struct { 3334 content string // 文本内容 3335 contentFlag bool 3336 textElementStyle *TextElementStyle // 文本局部样式 3337 textElementStyleFlag bool 3338 } 3339 3340 func NewTextRunBuilder() *TextRunBuilder { 3341 builder := &TextRunBuilder{} 3342 return builder 3343 } 3344 3345 // 文本内容 3346 // 3347 // 示例值:文本 3348 func (builder *TextRunBuilder) Content(content string) *TextRunBuilder { 3349 builder.content = content 3350 builder.contentFlag = true 3351 return builder 3352 } 3353 3354 // 文本局部样式 3355 // 3356 // 示例值: 3357 func (builder *TextRunBuilder) TextElementStyle(textElementStyle *TextElementStyle) *TextRunBuilder { 3358 builder.textElementStyle = textElementStyle 3359 builder.textElementStyleFlag = true 3360 return builder 3361 } 3362 3363 func (builder *TextRunBuilder) Build() *TextRun { 3364 req := &TextRun{} 3365 if builder.contentFlag { 3366 req.Content = &builder.content 3367 3368 } 3369 if builder.textElementStyleFlag { 3370 req.TextElementStyle = builder.textElementStyle 3371 } 3372 return req 3373 } 3374 3375 type TextStyle struct { 3376 Align *int `json:"align,omitempty"` // 对齐方式 3377 Done *bool `json:"done,omitempty"` // todo 的完成状态 3378 Folded *bool `json:"folded,omitempty"` // 文本的折叠状态 3379 Language *int `json:"language,omitempty"` // 代码块语言 3380 Wrap *bool `json:"wrap,omitempty"` // 代码块是否自动换行 3381 } 3382 3383 type TextStyleBuilder struct { 3384 align int // 对齐方式 3385 alignFlag bool 3386 done bool // todo 的完成状态 3387 doneFlag bool 3388 folded bool // 文本的折叠状态 3389 foldedFlag bool 3390 language int // 代码块语言 3391 languageFlag bool 3392 wrap bool // 代码块是否自动换行 3393 wrapFlag bool 3394 } 3395 3396 func NewTextStyleBuilder() *TextStyleBuilder { 3397 builder := &TextStyleBuilder{} 3398 return builder 3399 } 3400 3401 // 对齐方式 3402 // 3403 // 示例值:1 3404 func (builder *TextStyleBuilder) Align(align int) *TextStyleBuilder { 3405 builder.align = align 3406 builder.alignFlag = true 3407 return builder 3408 } 3409 3410 // todo 的完成状态 3411 // 3412 // 示例值:true 3413 func (builder *TextStyleBuilder) Done(done bool) *TextStyleBuilder { 3414 builder.done = done 3415 builder.doneFlag = true 3416 return builder 3417 } 3418 3419 // 文本的折叠状态 3420 // 3421 // 示例值:true 3422 func (builder *TextStyleBuilder) Folded(folded bool) *TextStyleBuilder { 3423 builder.folded = folded 3424 builder.foldedFlag = true 3425 return builder 3426 } 3427 3428 // 代码块语言 3429 // 3430 // 示例值:1 3431 func (builder *TextStyleBuilder) Language(language int) *TextStyleBuilder { 3432 builder.language = language 3433 builder.languageFlag = true 3434 return builder 3435 } 3436 3437 // 代码块是否自动换行 3438 // 3439 // 示例值:true 3440 func (builder *TextStyleBuilder) Wrap(wrap bool) *TextStyleBuilder { 3441 builder.wrap = wrap 3442 builder.wrapFlag = true 3443 return builder 3444 } 3445 3446 func (builder *TextStyleBuilder) Build() *TextStyle { 3447 req := &TextStyle{} 3448 if builder.alignFlag { 3449 req.Align = &builder.align 3450 3451 } 3452 if builder.doneFlag { 3453 req.Done = &builder.done 3454 3455 } 3456 if builder.foldedFlag { 3457 req.Folded = &builder.folded 3458 3459 } 3460 if builder.languageFlag { 3461 req.Language = &builder.language 3462 3463 } 3464 if builder.wrapFlag { 3465 req.Wrap = &builder.wrap 3466 3467 } 3468 return req 3469 } 3470 3471 type Undefined struct { 3472 } 3473 3474 type UndefinedElement struct { 3475 } 3476 3477 type UnmergeTableCellsRequest struct { 3478 RowIndex *int `json:"row_index,omitempty"` // table 行索引 3479 ColumnIndex *int `json:"column_index,omitempty"` // table 列索引 3480 } 3481 3482 type UnmergeTableCellsRequestBuilder struct { 3483 rowIndex int // table 行索引 3484 rowIndexFlag bool 3485 columnIndex int // table 列索引 3486 columnIndexFlag bool 3487 } 3488 3489 func NewUnmergeTableCellsRequestBuilder() *UnmergeTableCellsRequestBuilder { 3490 builder := &UnmergeTableCellsRequestBuilder{} 3491 return builder 3492 } 3493 3494 // table 行索引 3495 // 3496 // 示例值:0 3497 func (builder *UnmergeTableCellsRequestBuilder) RowIndex(rowIndex int) *UnmergeTableCellsRequestBuilder { 3498 builder.rowIndex = rowIndex 3499 builder.rowIndexFlag = true 3500 return builder 3501 } 3502 3503 // table 列索引 3504 // 3505 // 示例值:0 3506 func (builder *UnmergeTableCellsRequestBuilder) ColumnIndex(columnIndex int) *UnmergeTableCellsRequestBuilder { 3507 builder.columnIndex = columnIndex 3508 builder.columnIndexFlag = true 3509 return builder 3510 } 3511 3512 func (builder *UnmergeTableCellsRequestBuilder) Build() *UnmergeTableCellsRequest { 3513 req := &UnmergeTableCellsRequest{} 3514 if builder.rowIndexFlag { 3515 req.RowIndex = &builder.rowIndex 3516 3517 } 3518 if builder.columnIndexFlag { 3519 req.ColumnIndex = &builder.columnIndex 3520 3521 } 3522 return req 3523 } 3524 3525 type UpdateBlockRequest struct { 3526 UpdateTextElements *UpdateTextElementsRequest `json:"update_text_elements,omitempty"` // 更新文本元素请求 3527 UpdateTextStyle *UpdateTextStyleRequest `json:"update_text_style,omitempty"` // 更新文本样式请求 3528 UpdateTableProperty *UpdateTablePropertyRequest `json:"update_table_property,omitempty"` // 更新表格属性请求 3529 InsertTableRow *InsertTableRowRequest `json:"insert_table_row,omitempty"` // 表格插入新行请求 3530 InsertTableColumn *InsertTableColumnRequest `json:"insert_table_column,omitempty"` // 表格插入新列请求 3531 DeleteTableRows *DeleteTableRowsRequest `json:"delete_table_rows,omitempty"` // 表格批量删除行请求 3532 DeleteTableColumns *DeleteTableColumnsRequest `json:"delete_table_columns,omitempty"` // 表格批量删除列请求 3533 MergeTableCells *MergeTableCellsRequest `json:"merge_table_cells,omitempty"` // 表格合并单元格请求 3534 UnmergeTableCells *UnmergeTableCellsRequest `json:"unmerge_table_cells,omitempty"` // 表格取消单元格合并状态请求 3535 InsertGridColumn *InsertGridColumnRequest `json:"insert_grid_column,omitempty"` // 分栏插入新的分栏列请求 3536 DeleteGridColumn *DeleteGridColumnRequest `json:"delete_grid_column,omitempty"` // 分栏删除列请求 3537 UpdateGridColumnWidthRatio *UpdateGridColumnWidthRatioRequest `json:"update_grid_column_width_ratio,omitempty"` // 更新分栏列宽比例请求 3538 ReplaceImage *ReplaceImageRequest `json:"replace_image,omitempty"` // 替换图片请求 3539 ReplaceFile *ReplaceFileRequest `json:"replace_file,omitempty"` // 替换附件请求 3540 BlockId *string `json:"block_id,omitempty"` // Block 唯一标识 3541 UpdateText *UpdateTextRequest `json:"update_text,omitempty"` // 更新文本元素及样式请求 3542 } 3543 3544 type UpdateBlockRequestBuilder struct { 3545 updateTextElements *UpdateTextElementsRequest // 更新文本元素请求 3546 updateTextElementsFlag bool 3547 updateTextStyle *UpdateTextStyleRequest // 更新文本样式请求 3548 updateTextStyleFlag bool 3549 updateTableProperty *UpdateTablePropertyRequest // 更新表格属性请求 3550 updateTablePropertyFlag bool 3551 insertTableRow *InsertTableRowRequest // 表格插入新行请求 3552 insertTableRowFlag bool 3553 insertTableColumn *InsertTableColumnRequest // 表格插入新列请求 3554 insertTableColumnFlag bool 3555 deleteTableRows *DeleteTableRowsRequest // 表格批量删除行请求 3556 deleteTableRowsFlag bool 3557 deleteTableColumns *DeleteTableColumnsRequest // 表格批量删除列请求 3558 deleteTableColumnsFlag bool 3559 mergeTableCells *MergeTableCellsRequest // 表格合并单元格请求 3560 mergeTableCellsFlag bool 3561 unmergeTableCells *UnmergeTableCellsRequest // 表格取消单元格合并状态请求 3562 unmergeTableCellsFlag bool 3563 insertGridColumn *InsertGridColumnRequest // 分栏插入新的分栏列请求 3564 insertGridColumnFlag bool 3565 deleteGridColumn *DeleteGridColumnRequest // 分栏删除列请求 3566 deleteGridColumnFlag bool 3567 updateGridColumnWidthRatio *UpdateGridColumnWidthRatioRequest // 更新分栏列宽比例请求 3568 updateGridColumnWidthRatioFlag bool 3569 replaceImage *ReplaceImageRequest // 替换图片请求 3570 replaceImageFlag bool 3571 replaceFile *ReplaceFileRequest // 替换附件请求 3572 replaceFileFlag bool 3573 blockId string // Block 唯一标识 3574 blockIdFlag bool 3575 updateText *UpdateTextRequest // 更新文本元素及样式请求 3576 updateTextFlag bool 3577 } 3578 3579 func NewUpdateBlockRequestBuilder() *UpdateBlockRequestBuilder { 3580 builder := &UpdateBlockRequestBuilder{} 3581 return builder 3582 } 3583 3584 // 更新文本元素请求 3585 // 3586 // 示例值: 3587 func (builder *UpdateBlockRequestBuilder) UpdateTextElements(updateTextElements *UpdateTextElementsRequest) *UpdateBlockRequestBuilder { 3588 builder.updateTextElements = updateTextElements 3589 builder.updateTextElementsFlag = true 3590 return builder 3591 } 3592 3593 // 更新文本样式请求 3594 // 3595 // 示例值: 3596 func (builder *UpdateBlockRequestBuilder) UpdateTextStyle(updateTextStyle *UpdateTextStyleRequest) *UpdateBlockRequestBuilder { 3597 builder.updateTextStyle = updateTextStyle 3598 builder.updateTextStyleFlag = true 3599 return builder 3600 } 3601 3602 // 更新表格属性请求 3603 // 3604 // 示例值: 3605 func (builder *UpdateBlockRequestBuilder) UpdateTableProperty(updateTableProperty *UpdateTablePropertyRequest) *UpdateBlockRequestBuilder { 3606 builder.updateTableProperty = updateTableProperty 3607 builder.updateTablePropertyFlag = true 3608 return builder 3609 } 3610 3611 // 表格插入新行请求 3612 // 3613 // 示例值: 3614 func (builder *UpdateBlockRequestBuilder) InsertTableRow(insertTableRow *InsertTableRowRequest) *UpdateBlockRequestBuilder { 3615 builder.insertTableRow = insertTableRow 3616 builder.insertTableRowFlag = true 3617 return builder 3618 } 3619 3620 // 表格插入新列请求 3621 // 3622 // 示例值: 3623 func (builder *UpdateBlockRequestBuilder) InsertTableColumn(insertTableColumn *InsertTableColumnRequest) *UpdateBlockRequestBuilder { 3624 builder.insertTableColumn = insertTableColumn 3625 builder.insertTableColumnFlag = true 3626 return builder 3627 } 3628 3629 // 表格批量删除行请求 3630 // 3631 // 示例值: 3632 func (builder *UpdateBlockRequestBuilder) DeleteTableRows(deleteTableRows *DeleteTableRowsRequest) *UpdateBlockRequestBuilder { 3633 builder.deleteTableRows = deleteTableRows 3634 builder.deleteTableRowsFlag = true 3635 return builder 3636 } 3637 3638 // 表格批量删除列请求 3639 // 3640 // 示例值: 3641 func (builder *UpdateBlockRequestBuilder) DeleteTableColumns(deleteTableColumns *DeleteTableColumnsRequest) *UpdateBlockRequestBuilder { 3642 builder.deleteTableColumns = deleteTableColumns 3643 builder.deleteTableColumnsFlag = true 3644 return builder 3645 } 3646 3647 // 表格合并单元格请求 3648 // 3649 // 示例值: 3650 func (builder *UpdateBlockRequestBuilder) MergeTableCells(mergeTableCells *MergeTableCellsRequest) *UpdateBlockRequestBuilder { 3651 builder.mergeTableCells = mergeTableCells 3652 builder.mergeTableCellsFlag = true 3653 return builder 3654 } 3655 3656 // 表格取消单元格合并状态请求 3657 // 3658 // 示例值: 3659 func (builder *UpdateBlockRequestBuilder) UnmergeTableCells(unmergeTableCells *UnmergeTableCellsRequest) *UpdateBlockRequestBuilder { 3660 builder.unmergeTableCells = unmergeTableCells 3661 builder.unmergeTableCellsFlag = true 3662 return builder 3663 } 3664 3665 // 分栏插入新的分栏列请求 3666 // 3667 // 示例值: 3668 func (builder *UpdateBlockRequestBuilder) InsertGridColumn(insertGridColumn *InsertGridColumnRequest) *UpdateBlockRequestBuilder { 3669 builder.insertGridColumn = insertGridColumn 3670 builder.insertGridColumnFlag = true 3671 return builder 3672 } 3673 3674 // 分栏删除列请求 3675 // 3676 // 示例值: 3677 func (builder *UpdateBlockRequestBuilder) DeleteGridColumn(deleteGridColumn *DeleteGridColumnRequest) *UpdateBlockRequestBuilder { 3678 builder.deleteGridColumn = deleteGridColumn 3679 builder.deleteGridColumnFlag = true 3680 return builder 3681 } 3682 3683 // 更新分栏列宽比例请求 3684 // 3685 // 示例值: 3686 func (builder *UpdateBlockRequestBuilder) UpdateGridColumnWidthRatio(updateGridColumnWidthRatio *UpdateGridColumnWidthRatioRequest) *UpdateBlockRequestBuilder { 3687 builder.updateGridColumnWidthRatio = updateGridColumnWidthRatio 3688 builder.updateGridColumnWidthRatioFlag = true 3689 return builder 3690 } 3691 3692 // 替换图片请求 3693 // 3694 // 示例值: 3695 func (builder *UpdateBlockRequestBuilder) ReplaceImage(replaceImage *ReplaceImageRequest) *UpdateBlockRequestBuilder { 3696 builder.replaceImage = replaceImage 3697 builder.replaceImageFlag = true 3698 return builder 3699 } 3700 3701 // 替换附件请求 3702 // 3703 // 示例值: 3704 func (builder *UpdateBlockRequestBuilder) ReplaceFile(replaceFile *ReplaceFileRequest) *UpdateBlockRequestBuilder { 3705 builder.replaceFile = replaceFile 3706 builder.replaceFileFlag = true 3707 return builder 3708 } 3709 3710 // Block 唯一标识 3711 // 3712 // 示例值:doxcnSS4ouQkQEouGSUkTg9NJPe 3713 func (builder *UpdateBlockRequestBuilder) BlockId(blockId string) *UpdateBlockRequestBuilder { 3714 builder.blockId = blockId 3715 builder.blockIdFlag = true 3716 return builder 3717 } 3718 3719 // 更新文本元素及样式请求 3720 // 3721 // 示例值: 3722 func (builder *UpdateBlockRequestBuilder) UpdateText(updateText *UpdateTextRequest) *UpdateBlockRequestBuilder { 3723 builder.updateText = updateText 3724 builder.updateTextFlag = true 3725 return builder 3726 } 3727 3728 func (builder *UpdateBlockRequestBuilder) Build() *UpdateBlockRequest { 3729 req := &UpdateBlockRequest{} 3730 if builder.updateTextElementsFlag { 3731 req.UpdateTextElements = builder.updateTextElements 3732 } 3733 if builder.updateTextStyleFlag { 3734 req.UpdateTextStyle = builder.updateTextStyle 3735 } 3736 if builder.updateTablePropertyFlag { 3737 req.UpdateTableProperty = builder.updateTableProperty 3738 } 3739 if builder.insertTableRowFlag { 3740 req.InsertTableRow = builder.insertTableRow 3741 } 3742 if builder.insertTableColumnFlag { 3743 req.InsertTableColumn = builder.insertTableColumn 3744 } 3745 if builder.deleteTableRowsFlag { 3746 req.DeleteTableRows = builder.deleteTableRows 3747 } 3748 if builder.deleteTableColumnsFlag { 3749 req.DeleteTableColumns = builder.deleteTableColumns 3750 } 3751 if builder.mergeTableCellsFlag { 3752 req.MergeTableCells = builder.mergeTableCells 3753 } 3754 if builder.unmergeTableCellsFlag { 3755 req.UnmergeTableCells = builder.unmergeTableCells 3756 } 3757 if builder.insertGridColumnFlag { 3758 req.InsertGridColumn = builder.insertGridColumn 3759 } 3760 if builder.deleteGridColumnFlag { 3761 req.DeleteGridColumn = builder.deleteGridColumn 3762 } 3763 if builder.updateGridColumnWidthRatioFlag { 3764 req.UpdateGridColumnWidthRatio = builder.updateGridColumnWidthRatio 3765 } 3766 if builder.replaceImageFlag { 3767 req.ReplaceImage = builder.replaceImage 3768 } 3769 if builder.replaceFileFlag { 3770 req.ReplaceFile = builder.replaceFile 3771 } 3772 if builder.blockIdFlag { 3773 req.BlockId = &builder.blockId 3774 3775 } 3776 if builder.updateTextFlag { 3777 req.UpdateText = builder.updateText 3778 } 3779 return req 3780 } 3781 3782 type UpdateGridColumnWidthRatioRequest struct { 3783 WidthRatios []int `json:"width_ratios,omitempty"` // 更新列宽比例时,需要传入所有列宽占比 3784 } 3785 3786 type UpdateGridColumnWidthRatioRequestBuilder struct { 3787 widthRatios []int // 更新列宽比例时,需要传入所有列宽占比 3788 widthRatiosFlag bool 3789 } 3790 3791 func NewUpdateGridColumnWidthRatioRequestBuilder() *UpdateGridColumnWidthRatioRequestBuilder { 3792 builder := &UpdateGridColumnWidthRatioRequestBuilder{} 3793 return builder 3794 } 3795 3796 // 更新列宽比例时,需要传入所有列宽占比 3797 // 3798 // 示例值:50 3799 func (builder *UpdateGridColumnWidthRatioRequestBuilder) WidthRatios(widthRatios []int) *UpdateGridColumnWidthRatioRequestBuilder { 3800 builder.widthRatios = widthRatios 3801 builder.widthRatiosFlag = true 3802 return builder 3803 } 3804 3805 func (builder *UpdateGridColumnWidthRatioRequestBuilder) Build() *UpdateGridColumnWidthRatioRequest { 3806 req := &UpdateGridColumnWidthRatioRequest{} 3807 if builder.widthRatiosFlag { 3808 req.WidthRatios = builder.widthRatios 3809 } 3810 return req 3811 } 3812 3813 type UpdateTablePropertyRequest struct { 3814 ColumnWidth *int `json:"column_width,omitempty"` // 表格列宽 3815 ColumnIndex *int `json:"column_index,omitempty"` // 需要修改列宽的表格列的索引 3816 } 3817 3818 type UpdateTablePropertyRequestBuilder struct { 3819 columnWidth int // 表格列宽 3820 columnWidthFlag bool 3821 columnIndex int // 需要修改列宽的表格列的索引 3822 columnIndexFlag bool 3823 } 3824 3825 func NewUpdateTablePropertyRequestBuilder() *UpdateTablePropertyRequestBuilder { 3826 builder := &UpdateTablePropertyRequestBuilder{} 3827 return builder 3828 } 3829 3830 // 表格列宽 3831 // 3832 // 示例值:100 3833 func (builder *UpdateTablePropertyRequestBuilder) ColumnWidth(columnWidth int) *UpdateTablePropertyRequestBuilder { 3834 builder.columnWidth = columnWidth 3835 builder.columnWidthFlag = true 3836 return builder 3837 } 3838 3839 // 需要修改列宽的表格列的索引 3840 // 3841 // 示例值:0 3842 func (builder *UpdateTablePropertyRequestBuilder) ColumnIndex(columnIndex int) *UpdateTablePropertyRequestBuilder { 3843 builder.columnIndex = columnIndex 3844 builder.columnIndexFlag = true 3845 return builder 3846 } 3847 3848 func (builder *UpdateTablePropertyRequestBuilder) Build() *UpdateTablePropertyRequest { 3849 req := &UpdateTablePropertyRequest{} 3850 if builder.columnWidthFlag { 3851 req.ColumnWidth = &builder.columnWidth 3852 3853 } 3854 if builder.columnIndexFlag { 3855 req.ColumnIndex = &builder.columnIndex 3856 3857 } 3858 return req 3859 } 3860 3861 type UpdateTextElementsRequest struct { 3862 Elements []*TextElement `json:"elements,omitempty"` // 更新的文本元素列表,单次更新中 reminder 上限 30 个,mention_doc 上限 50 个,mention_user 上限 100 个 3863 } 3864 3865 type UpdateTextElementsRequestBuilder struct { 3866 elements []*TextElement // 更新的文本元素列表,单次更新中 reminder 上限 30 个,mention_doc 上限 50 个,mention_user 上限 100 个 3867 elementsFlag bool 3868 } 3869 3870 func NewUpdateTextElementsRequestBuilder() *UpdateTextElementsRequestBuilder { 3871 builder := &UpdateTextElementsRequestBuilder{} 3872 return builder 3873 } 3874 3875 // 更新的文本元素列表,单次更新中 reminder 上限 30 个,mention_doc 上限 50 个,mention_user 上限 100 个 3876 // 3877 // 示例值: 3878 func (builder *UpdateTextElementsRequestBuilder) Elements(elements []*TextElement) *UpdateTextElementsRequestBuilder { 3879 builder.elements = elements 3880 builder.elementsFlag = true 3881 return builder 3882 } 3883 3884 func (builder *UpdateTextElementsRequestBuilder) Build() *UpdateTextElementsRequest { 3885 req := &UpdateTextElementsRequest{} 3886 if builder.elementsFlag { 3887 req.Elements = builder.elements 3888 } 3889 return req 3890 } 3891 3892 type UpdateTextRequest struct { 3893 Elements []*TextElement `json:"elements,omitempty"` // 更新的文本元素列表,单次更新中 reminder 上限 30 个,mention_doc 上限 50 个,mention_user 上限 100 个 3894 Style *TextStyle `json:"style,omitempty"` // 更新的文本样式 3895 Fields []int `json:"fields,omitempty"` // 文本样式中应更新的字段,必须至少指定一个字段。例如,要调整 Block 对齐方式,请设置 fields 为 [1]。 3896 } 3897 3898 type UpdateTextRequestBuilder struct { 3899 elements []*TextElement // 更新的文本元素列表,单次更新中 reminder 上限 30 个,mention_doc 上限 50 个,mention_user 上限 100 个 3900 elementsFlag bool 3901 style *TextStyle // 更新的文本样式 3902 styleFlag bool 3903 fields []int // 文本样式中应更新的字段,必须至少指定一个字段。例如,要调整 Block 对齐方式,请设置 fields 为 [1]。 3904 fieldsFlag bool 3905 } 3906 3907 func NewUpdateTextRequestBuilder() *UpdateTextRequestBuilder { 3908 builder := &UpdateTextRequestBuilder{} 3909 return builder 3910 } 3911 3912 // 更新的文本元素列表,单次更新中 reminder 上限 30 个,mention_doc 上限 50 个,mention_user 上限 100 个 3913 // 3914 // 示例值: 3915 func (builder *UpdateTextRequestBuilder) Elements(elements []*TextElement) *UpdateTextRequestBuilder { 3916 builder.elements = elements 3917 builder.elementsFlag = true 3918 return builder 3919 } 3920 3921 // 更新的文本样式 3922 // 3923 // 示例值: 3924 func (builder *UpdateTextRequestBuilder) Style(style *TextStyle) *UpdateTextRequestBuilder { 3925 builder.style = style 3926 builder.styleFlag = true 3927 return builder 3928 } 3929 3930 // 文本样式中应更新的字段,必须至少指定一个字段。例如,要调整 Block 对齐方式,请设置 fields 为 [1]。 3931 // 3932 // 示例值:[1] 3933 func (builder *UpdateTextRequestBuilder) Fields(fields []int) *UpdateTextRequestBuilder { 3934 builder.fields = fields 3935 builder.fieldsFlag = true 3936 return builder 3937 } 3938 3939 func (builder *UpdateTextRequestBuilder) Build() *UpdateTextRequest { 3940 req := &UpdateTextRequest{} 3941 if builder.elementsFlag { 3942 req.Elements = builder.elements 3943 } 3944 if builder.styleFlag { 3945 req.Style = builder.style 3946 } 3947 if builder.fieldsFlag { 3948 req.Fields = builder.fields 3949 } 3950 return req 3951 } 3952 3953 type UpdateTextStyleRequest struct { 3954 Style *TextStyle `json:"style,omitempty"` // 文本样式 3955 Fields []int `json:"fields,omitempty"` // 应更新的字段,必须至少指定一个字段。例如,要调整 Block 对齐方式,请设置 fields 为 [1]。 3956 } 3957 3958 type UpdateTextStyleRequestBuilder struct { 3959 style *TextStyle // 文本样式 3960 styleFlag bool 3961 fields []int // 应更新的字段,必须至少指定一个字段。例如,要调整 Block 对齐方式,请设置 fields 为 [1]。 3962 fieldsFlag bool 3963 } 3964 3965 func NewUpdateTextStyleRequestBuilder() *UpdateTextStyleRequestBuilder { 3966 builder := &UpdateTextStyleRequestBuilder{} 3967 return builder 3968 } 3969 3970 // 文本样式 3971 // 3972 // 示例值: 3973 func (builder *UpdateTextStyleRequestBuilder) Style(style *TextStyle) *UpdateTextStyleRequestBuilder { 3974 builder.style = style 3975 builder.styleFlag = true 3976 return builder 3977 } 3978 3979 // 应更新的字段,必须至少指定一个字段。例如,要调整 Block 对齐方式,请设置 fields 为 [1]。 3980 // 3981 // 示例值:修改的文字样式属性 3982 func (builder *UpdateTextStyleRequestBuilder) Fields(fields []int) *UpdateTextStyleRequestBuilder { 3983 builder.fields = fields 3984 builder.fieldsFlag = true 3985 return builder 3986 } 3987 3988 func (builder *UpdateTextStyleRequestBuilder) Build() *UpdateTextStyleRequest { 3989 req := &UpdateTextStyleRequest{} 3990 if builder.styleFlag { 3991 req.Style = builder.style 3992 } 3993 if builder.fieldsFlag { 3994 req.Fields = builder.fields 3995 } 3996 return req 3997 } 3998 3999 type View struct { 4000 ViewType *int `json:"view_type,omitempty"` // 视图类型 4001 } 4002 4003 type ViewBuilder struct { 4004 viewType int // 视图类型 4005 viewTypeFlag bool 4006 } 4007 4008 func NewViewBuilder() *ViewBuilder { 4009 builder := &ViewBuilder{} 4010 return builder 4011 } 4012 4013 // 视图类型 4014 // 4015 // 示例值:1 4016 func (builder *ViewBuilder) ViewType(viewType int) *ViewBuilder { 4017 builder.viewType = viewType 4018 builder.viewTypeFlag = true 4019 return builder 4020 } 4021 4022 func (builder *ViewBuilder) Build() *View { 4023 req := &View{} 4024 if builder.viewTypeFlag { 4025 req.ViewType = &builder.viewType 4026 4027 } 4028 return req 4029 } 4030 4031 type CreateDocumentReqBodyBuilder struct { 4032 folderToken string // 文件夹 token,获取方式见云文档接口快速入门;空表示根目录,tenant_access_token应用权限仅允许操作应用创建的目录 4033 folderTokenFlag bool 4034 title string // 文档标题,只支持纯文本 4035 titleFlag bool 4036 } 4037 4038 func NewCreateDocumentReqBodyBuilder() *CreateDocumentReqBodyBuilder { 4039 builder := &CreateDocumentReqBodyBuilder{} 4040 return builder 4041 } 4042 4043 // 文件夹 token,获取方式见云文档接口快速入门;空表示根目录,tenant_access_token应用权限仅允许操作应用创建的目录 4044 // 4045 //示例值:fldcnqquW1svRIYVT2Np6IuLCKd 4046 func (builder *CreateDocumentReqBodyBuilder) FolderToken(folderToken string) *CreateDocumentReqBodyBuilder { 4047 builder.folderToken = folderToken 4048 builder.folderTokenFlag = true 4049 return builder 4050 } 4051 4052 // 文档标题,只支持纯文本 4053 // 4054 //示例值:undefined 4055 func (builder *CreateDocumentReqBodyBuilder) Title(title string) *CreateDocumentReqBodyBuilder { 4056 builder.title = title 4057 builder.titleFlag = true 4058 return builder 4059 } 4060 4061 func (builder *CreateDocumentReqBodyBuilder) Build() *CreateDocumentReqBody { 4062 req := &CreateDocumentReqBody{} 4063 if builder.folderTokenFlag { 4064 req.FolderToken = &builder.folderToken 4065 } 4066 if builder.titleFlag { 4067 req.Title = &builder.title 4068 } 4069 return req 4070 } 4071 4072 type CreateDocumentPathReqBodyBuilder struct { 4073 folderToken string // 文件夹 token,获取方式见云文档接口快速入门;空表示根目录,tenant_access_token应用权限仅允许操作应用创建的目录 4074 folderTokenFlag bool 4075 title string // 文档标题,只支持纯文本 4076 titleFlag bool 4077 } 4078 4079 func NewCreateDocumentPathReqBodyBuilder() *CreateDocumentPathReqBodyBuilder { 4080 builder := &CreateDocumentPathReqBodyBuilder{} 4081 return builder 4082 } 4083 4084 // 文件夹 token,获取方式见云文档接口快速入门;空表示根目录,tenant_access_token应用权限仅允许操作应用创建的目录 4085 // 4086 // 示例值:fldcnqquW1svRIYVT2Np6IuLCKd 4087 func (builder *CreateDocumentPathReqBodyBuilder) FolderToken(folderToken string) *CreateDocumentPathReqBodyBuilder { 4088 builder.folderToken = folderToken 4089 builder.folderTokenFlag = true 4090 return builder 4091 } 4092 4093 // 文档标题,只支持纯文本 4094 // 4095 // 示例值:undefined 4096 func (builder *CreateDocumentPathReqBodyBuilder) Title(title string) *CreateDocumentPathReqBodyBuilder { 4097 builder.title = title 4098 builder.titleFlag = true 4099 return builder 4100 } 4101 4102 func (builder *CreateDocumentPathReqBodyBuilder) Build() (*CreateDocumentReqBody, error) { 4103 req := &CreateDocumentReqBody{} 4104 if builder.folderTokenFlag { 4105 req.FolderToken = &builder.folderToken 4106 } 4107 if builder.titleFlag { 4108 req.Title = &builder.title 4109 } 4110 return req, nil 4111 } 4112 4113 type CreateDocumentReqBuilder struct { 4114 apiReq *larkcore.ApiReq 4115 body *CreateDocumentReqBody 4116 } 4117 4118 func NewCreateDocumentReqBuilder() *CreateDocumentReqBuilder { 4119 builder := &CreateDocumentReqBuilder{} 4120 builder.apiReq = &larkcore.ApiReq{ 4121 PathParams: larkcore.PathParams{}, 4122 QueryParams: larkcore.QueryParams{}, 4123 } 4124 return builder 4125 } 4126 4127 // 创建新版文档,文档标题和目录可选。 4128 func (builder *CreateDocumentReqBuilder) Body(body *CreateDocumentReqBody) *CreateDocumentReqBuilder { 4129 builder.body = body 4130 return builder 4131 } 4132 4133 func (builder *CreateDocumentReqBuilder) Build() *CreateDocumentReq { 4134 req := &CreateDocumentReq{} 4135 req.apiReq = &larkcore.ApiReq{} 4136 req.apiReq.Body = builder.body 4137 return req 4138 } 4139 4140 type CreateDocumentReqBody struct { 4141 FolderToken *string `json:"folder_token,omitempty"` // 文件夹 token,获取方式见云文档接口快速入门;空表示根目录,tenant_access_token应用权限仅允许操作应用创建的目录 4142 Title *string `json:"title,omitempty"` // 文档标题,只支持纯文本 4143 } 4144 4145 type CreateDocumentReq struct { 4146 apiReq *larkcore.ApiReq 4147 Body *CreateDocumentReqBody `body:""` 4148 } 4149 4150 type CreateDocumentRespData struct { 4151 Document *Document `json:"document,omitempty"` // 新建文档的文档信息 4152 } 4153 4154 type CreateDocumentResp struct { 4155 *larkcore.ApiResp `json:"-"` 4156 larkcore.CodeError 4157 Data *CreateDocumentRespData `json:"data"` // 业务数据 4158 } 4159 4160 func (resp *CreateDocumentResp) Success() bool { 4161 return resp.Code == 0 4162 } 4163 4164 type GetDocumentReqBuilder struct { 4165 apiReq *larkcore.ApiReq 4166 } 4167 4168 func NewGetDocumentReqBuilder() *GetDocumentReqBuilder { 4169 builder := &GetDocumentReqBuilder{} 4170 builder.apiReq = &larkcore.ApiReq{ 4171 PathParams: larkcore.PathParams{}, 4172 QueryParams: larkcore.QueryParams{}, 4173 } 4174 return builder 4175 } 4176 4177 // 文档的唯一标识 4178 // 4179 // 示例值:doxcnePuYufKa49ISjhD8Ih0ikh 4180 func (builder *GetDocumentReqBuilder) DocumentId(documentId string) *GetDocumentReqBuilder { 4181 builder.apiReq.PathParams.Set("document_id", fmt.Sprint(documentId)) 4182 return builder 4183 } 4184 4185 func (builder *GetDocumentReqBuilder) Build() *GetDocumentReq { 4186 req := &GetDocumentReq{} 4187 req.apiReq = &larkcore.ApiReq{} 4188 req.apiReq.PathParams = builder.apiReq.PathParams 4189 return req 4190 } 4191 4192 type GetDocumentReq struct { 4193 apiReq *larkcore.ApiReq 4194 } 4195 4196 type GetDocumentRespData struct { 4197 Document *Document `json:"document,omitempty"` // 文档信息 4198 } 4199 4200 type GetDocumentResp struct { 4201 *larkcore.ApiResp `json:"-"` 4202 larkcore.CodeError 4203 Data *GetDocumentRespData `json:"data"` // 业务数据 4204 } 4205 4206 func (resp *GetDocumentResp) Success() bool { 4207 return resp.Code == 0 4208 } 4209 4210 type RawContentDocumentReqBuilder struct { 4211 apiReq *larkcore.ApiReq 4212 } 4213 4214 func NewRawContentDocumentReqBuilder() *RawContentDocumentReqBuilder { 4215 builder := &RawContentDocumentReqBuilder{} 4216 builder.apiReq = &larkcore.ApiReq{ 4217 PathParams: larkcore.PathParams{}, 4218 QueryParams: larkcore.QueryParams{}, 4219 } 4220 return builder 4221 } 4222 4223 // 文档的唯一标识 4224 // 4225 // 示例值:doxbcmEtbFrbbq10nPNu8gO1F3b 4226 func (builder *RawContentDocumentReqBuilder) DocumentId(documentId string) *RawContentDocumentReqBuilder { 4227 builder.apiReq.PathParams.Set("document_id", fmt.Sprint(documentId)) 4228 return builder 4229 } 4230 4231 // 语言(用于 MentionUser 语言的选取) 4232 // 4233 // 示例值:0 4234 func (builder *RawContentDocumentReqBuilder) Lang(lang int) *RawContentDocumentReqBuilder { 4235 builder.apiReq.QueryParams.Set("lang", fmt.Sprint(lang)) 4236 return builder 4237 } 4238 4239 func (builder *RawContentDocumentReqBuilder) Build() *RawContentDocumentReq { 4240 req := &RawContentDocumentReq{} 4241 req.apiReq = &larkcore.ApiReq{} 4242 req.apiReq.PathParams = builder.apiReq.PathParams 4243 req.apiReq.QueryParams = builder.apiReq.QueryParams 4244 return req 4245 } 4246 4247 type RawContentDocumentReq struct { 4248 apiReq *larkcore.ApiReq 4249 } 4250 4251 type RawContentDocumentRespData struct { 4252 Content *string `json:"content,omitempty"` // 文档纯文本 4253 } 4254 4255 type RawContentDocumentResp struct { 4256 *larkcore.ApiResp `json:"-"` 4257 larkcore.CodeError 4258 Data *RawContentDocumentRespData `json:"data"` // 业务数据 4259 } 4260 4261 func (resp *RawContentDocumentResp) Success() bool { 4262 return resp.Code == 0 4263 } 4264 4265 type BatchUpdateDocumentBlockReqBodyBuilder struct { 4266 requests []*UpdateBlockRequest // 批量更新 Block 4267 requestsFlag bool 4268 } 4269 4270 func NewBatchUpdateDocumentBlockReqBodyBuilder() *BatchUpdateDocumentBlockReqBodyBuilder { 4271 builder := &BatchUpdateDocumentBlockReqBodyBuilder{} 4272 return builder 4273 } 4274 4275 // 批量更新 Block 4276 // 4277 //示例值: 4278 func (builder *BatchUpdateDocumentBlockReqBodyBuilder) Requests(requests []*UpdateBlockRequest) *BatchUpdateDocumentBlockReqBodyBuilder { 4279 builder.requests = requests 4280 builder.requestsFlag = true 4281 return builder 4282 } 4283 4284 func (builder *BatchUpdateDocumentBlockReqBodyBuilder) Build() *BatchUpdateDocumentBlockReqBody { 4285 req := &BatchUpdateDocumentBlockReqBody{} 4286 if builder.requestsFlag { 4287 req.Requests = builder.requests 4288 } 4289 return req 4290 } 4291 4292 type BatchUpdateDocumentBlockPathReqBodyBuilder struct { 4293 requests []*UpdateBlockRequest // 批量更新 Block 4294 requestsFlag bool 4295 } 4296 4297 func NewBatchUpdateDocumentBlockPathReqBodyBuilder() *BatchUpdateDocumentBlockPathReqBodyBuilder { 4298 builder := &BatchUpdateDocumentBlockPathReqBodyBuilder{} 4299 return builder 4300 } 4301 4302 // 批量更新 Block 4303 // 4304 // 示例值: 4305 func (builder *BatchUpdateDocumentBlockPathReqBodyBuilder) Requests(requests []*UpdateBlockRequest) *BatchUpdateDocumentBlockPathReqBodyBuilder { 4306 builder.requests = requests 4307 builder.requestsFlag = true 4308 return builder 4309 } 4310 4311 func (builder *BatchUpdateDocumentBlockPathReqBodyBuilder) Build() (*BatchUpdateDocumentBlockReqBody, error) { 4312 req := &BatchUpdateDocumentBlockReqBody{} 4313 if builder.requestsFlag { 4314 req.Requests = builder.requests 4315 } 4316 return req, nil 4317 } 4318 4319 type BatchUpdateDocumentBlockReqBuilder struct { 4320 apiReq *larkcore.ApiReq 4321 body *BatchUpdateDocumentBlockReqBody 4322 } 4323 4324 func NewBatchUpdateDocumentBlockReqBuilder() *BatchUpdateDocumentBlockReqBuilder { 4325 builder := &BatchUpdateDocumentBlockReqBuilder{} 4326 builder.apiReq = &larkcore.ApiReq{ 4327 PathParams: larkcore.PathParams{}, 4328 QueryParams: larkcore.QueryParams{}, 4329 } 4330 return builder 4331 } 4332 4333 // 文档的唯一标识 4334 // 4335 // 示例值:doxcnePuYufKa49ISjhD8Ih0ikh 4336 func (builder *BatchUpdateDocumentBlockReqBuilder) DocumentId(documentId string) *BatchUpdateDocumentBlockReqBuilder { 4337 builder.apiReq.PathParams.Set("document_id", fmt.Sprint(documentId)) 4338 return builder 4339 } 4340 4341 // 操作的文档版本,-1表示文档最新版本。若此时操作的版本为文档最新版本,则需要持有文档的阅读权限;若此时操作的版本为文档的历史版本,则需要持有文档的编辑权限。 4342 // 4343 // 示例值:-1 4344 func (builder *BatchUpdateDocumentBlockReqBuilder) DocumentRevisionId(documentRevisionId int) *BatchUpdateDocumentBlockReqBuilder { 4345 builder.apiReq.QueryParams.Set("document_revision_id", fmt.Sprint(documentRevisionId)) 4346 return builder 4347 } 4348 4349 // 操作的唯一标识,与接口返回值的 client_token 相对应,用于幂等的进行更新操作。此值为空表示将发起一次新的请求,此值非空表示幂等的进行更新操作。 4350 // 4351 // 示例值:0e2633a3-aa1a-4171-af9e-0768ff863566 4352 func (builder *BatchUpdateDocumentBlockReqBuilder) ClientToken(clientToken string) *BatchUpdateDocumentBlockReqBuilder { 4353 builder.apiReq.QueryParams.Set("client_token", fmt.Sprint(clientToken)) 4354 return builder 4355 } 4356 4357 // 此次调用中使用的用户ID的类型 4358 // 4359 // 示例值: 4360 func (builder *BatchUpdateDocumentBlockReqBuilder) UserIdType(userIdType string) *BatchUpdateDocumentBlockReqBuilder { 4361 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 4362 return builder 4363 } 4364 4365 // 批量更新块的富文本内容。 4366 func (builder *BatchUpdateDocumentBlockReqBuilder) Body(body *BatchUpdateDocumentBlockReqBody) *BatchUpdateDocumentBlockReqBuilder { 4367 builder.body = body 4368 return builder 4369 } 4370 4371 func (builder *BatchUpdateDocumentBlockReqBuilder) Build() *BatchUpdateDocumentBlockReq { 4372 req := &BatchUpdateDocumentBlockReq{} 4373 req.apiReq = &larkcore.ApiReq{} 4374 req.apiReq.PathParams = builder.apiReq.PathParams 4375 req.apiReq.QueryParams = builder.apiReq.QueryParams 4376 req.apiReq.Body = builder.body 4377 return req 4378 } 4379 4380 type BatchUpdateDocumentBlockReqBody struct { 4381 Requests []*UpdateBlockRequest `json:"requests,omitempty"` // 批量更新 Block 4382 } 4383 4384 type BatchUpdateDocumentBlockReq struct { 4385 apiReq *larkcore.ApiReq 4386 Body *BatchUpdateDocumentBlockReqBody `body:""` 4387 } 4388 4389 type BatchUpdateDocumentBlockRespData struct { 4390 Blocks []*Block `json:"blocks,omitempty"` // 批量更新的 Block 4391 DocumentRevisionId *int `json:"document_revision_id,omitempty"` // 当前更新成功后文档的版本号 4392 ClientToken *string `json:"client_token,omitempty"` // 操作的唯一标识,更新请求中使用此值表示幂等的进行此次更新 4393 } 4394 4395 type BatchUpdateDocumentBlockResp struct { 4396 *larkcore.ApiResp `json:"-"` 4397 larkcore.CodeError 4398 Data *BatchUpdateDocumentBlockRespData `json:"data"` // 业务数据 4399 } 4400 4401 func (resp *BatchUpdateDocumentBlockResp) Success() bool { 4402 return resp.Code == 0 4403 } 4404 4405 type GetDocumentBlockReqBuilder struct { 4406 apiReq *larkcore.ApiReq 4407 } 4408 4409 func NewGetDocumentBlockReqBuilder() *GetDocumentBlockReqBuilder { 4410 builder := &GetDocumentBlockReqBuilder{} 4411 builder.apiReq = &larkcore.ApiReq{ 4412 PathParams: larkcore.PathParams{}, 4413 QueryParams: larkcore.QueryParams{}, 4414 } 4415 return builder 4416 } 4417 4418 // 文档的唯一标识 4419 // 4420 // 示例值:doxcnePuYufKa49ISjhD8Ih0ikh 4421 func (builder *GetDocumentBlockReqBuilder) DocumentId(documentId string) *GetDocumentBlockReqBuilder { 4422 builder.apiReq.PathParams.Set("document_id", fmt.Sprint(documentId)) 4423 return builder 4424 } 4425 4426 // Block 的唯一标识 4427 // 4428 // 示例值:doxcnO6UW6wAw2qIcYf4hZpFIth 4429 func (builder *GetDocumentBlockReqBuilder) BlockId(blockId string) *GetDocumentBlockReqBuilder { 4430 builder.apiReq.PathParams.Set("block_id", fmt.Sprint(blockId)) 4431 return builder 4432 } 4433 4434 // 查询的文档版本,-1表示文档最新版本。若此时查询的版本为文档最新版本,则需要持有文档的阅读权限;若此时查询的版本为文档的历史版本,则需要持有文档的编辑权限。 4435 // 4436 // 示例值:-1 4437 func (builder *GetDocumentBlockReqBuilder) DocumentRevisionId(documentRevisionId int) *GetDocumentBlockReqBuilder { 4438 builder.apiReq.QueryParams.Set("document_revision_id", fmt.Sprint(documentRevisionId)) 4439 return builder 4440 } 4441 4442 // 此次调用中使用的用户ID的类型 4443 // 4444 // 示例值: 4445 func (builder *GetDocumentBlockReqBuilder) UserIdType(userIdType string) *GetDocumentBlockReqBuilder { 4446 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 4447 return builder 4448 } 4449 4450 func (builder *GetDocumentBlockReqBuilder) Build() *GetDocumentBlockReq { 4451 req := &GetDocumentBlockReq{} 4452 req.apiReq = &larkcore.ApiReq{} 4453 req.apiReq.PathParams = builder.apiReq.PathParams 4454 req.apiReq.QueryParams = builder.apiReq.QueryParams 4455 return req 4456 } 4457 4458 type GetDocumentBlockReq struct { 4459 apiReq *larkcore.ApiReq 4460 } 4461 4462 type GetDocumentBlockRespData struct { 4463 Block *Block `json:"block,omitempty"` // 查询的 Block 的信息 4464 } 4465 4466 type GetDocumentBlockResp struct { 4467 *larkcore.ApiResp `json:"-"` 4468 larkcore.CodeError 4469 Data *GetDocumentBlockRespData `json:"data"` // 业务数据 4470 } 4471 4472 func (resp *GetDocumentBlockResp) Success() bool { 4473 return resp.Code == 0 4474 } 4475 4476 type ListDocumentBlockReqBuilder struct { 4477 apiReq *larkcore.ApiReq 4478 limit int // 最大返回多少记录,当使用迭代器访问时才有效 4479 } 4480 4481 func NewListDocumentBlockReqBuilder() *ListDocumentBlockReqBuilder { 4482 builder := &ListDocumentBlockReqBuilder{} 4483 builder.apiReq = &larkcore.ApiReq{ 4484 PathParams: larkcore.PathParams{}, 4485 QueryParams: larkcore.QueryParams{}, 4486 } 4487 return builder 4488 } 4489 4490 // 最大返回多少记录,当使用迭代器访问时才有效 4491 func (builder *ListDocumentBlockReqBuilder) Limit(limit int) *ListDocumentBlockReqBuilder { 4492 builder.limit = limit 4493 return builder 4494 } 4495 4496 // 文档的唯一标识 4497 // 4498 // 示例值:doxcnePuYufKa49ISjhD8Ih0ikh 4499 func (builder *ListDocumentBlockReqBuilder) DocumentId(documentId string) *ListDocumentBlockReqBuilder { 4500 builder.apiReq.PathParams.Set("document_id", fmt.Sprint(documentId)) 4501 return builder 4502 } 4503 4504 // 分页大小 4505 // 4506 // 示例值:500 4507 func (builder *ListDocumentBlockReqBuilder) PageSize(pageSize int) *ListDocumentBlockReqBuilder { 4508 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 4509 return builder 4510 } 4511 4512 // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果 4513 // 4514 // 示例值:aw7DoMKBFMOGwqHCrcO8w6jCmMOvw6ILeADCvsKNw57Di8O5XGV3LG4_w5HCqhFxSnDCrCzCn0BgZcOYUg85EMOYcEAcwqYOw4ojw5QFwofCu8KoIMO3K8Ktw4IuNMOBBHNYw4bCgCV3U1zDu8K-J8KSR8Kgw7Y0fsKZdsKvW3d9w53DnkHDrcO5bDkYwrvDisOEPcOtVFJ-I03CnsOILMOoAmLDknd6dsKqG1bClAjDuS3CvcOTwo7Dg8OrwovDsRdqIcKxw5HDohTDtXN9w5rCkWo 4515 func (builder *ListDocumentBlockReqBuilder) PageToken(pageToken string) *ListDocumentBlockReqBuilder { 4516 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 4517 return builder 4518 } 4519 4520 // 查询的文档版本,-1表示文档最新版本。若此时查询的版本为文档最新版本,则需要持有文档的阅读权限;若此时查询的版本为文档的历史版本,则需要持有文档的编辑权限。 4521 // 4522 // 示例值:-1 4523 func (builder *ListDocumentBlockReqBuilder) DocumentRevisionId(documentRevisionId int) *ListDocumentBlockReqBuilder { 4524 builder.apiReq.QueryParams.Set("document_revision_id", fmt.Sprint(documentRevisionId)) 4525 return builder 4526 } 4527 4528 // 此次调用中使用的用户ID的类型 4529 // 4530 // 示例值: 4531 func (builder *ListDocumentBlockReqBuilder) UserIdType(userIdType string) *ListDocumentBlockReqBuilder { 4532 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 4533 return builder 4534 } 4535 4536 func (builder *ListDocumentBlockReqBuilder) Build() *ListDocumentBlockReq { 4537 req := &ListDocumentBlockReq{} 4538 req.apiReq = &larkcore.ApiReq{} 4539 req.Limit = builder.limit 4540 req.apiReq.PathParams = builder.apiReq.PathParams 4541 req.apiReq.QueryParams = builder.apiReq.QueryParams 4542 return req 4543 } 4544 4545 type ListDocumentBlockReq struct { 4546 apiReq *larkcore.ApiReq 4547 Limit int // 最多返回多少记录,只有在使用迭代器访问时,才有效 4548 4549 } 4550 4551 type ListDocumentBlockRespData struct { 4552 Items []*Block `json:"items,omitempty"` // 文档的 Block 信息 4553 PageToken *string `json:"page_token,omitempty"` // 下一个分页的分页标记 4554 HasMore *bool `json:"has_more,omitempty"` // 是否还有下一个分页 4555 } 4556 4557 type ListDocumentBlockResp struct { 4558 *larkcore.ApiResp `json:"-"` 4559 larkcore.CodeError 4560 Data *ListDocumentBlockRespData `json:"data"` // 业务数据 4561 } 4562 4563 func (resp *ListDocumentBlockResp) Success() bool { 4564 return resp.Code == 0 4565 } 4566 4567 type PatchDocumentBlockReqBuilder struct { 4568 apiReq *larkcore.ApiReq 4569 updateBlockRequest *UpdateBlockRequest 4570 } 4571 4572 func NewPatchDocumentBlockReqBuilder() *PatchDocumentBlockReqBuilder { 4573 builder := &PatchDocumentBlockReqBuilder{} 4574 builder.apiReq = &larkcore.ApiReq{ 4575 PathParams: larkcore.PathParams{}, 4576 QueryParams: larkcore.QueryParams{}, 4577 } 4578 return builder 4579 } 4580 4581 // 文档的唯一标识 4582 // 4583 // 示例值:doxcnePuYufKa49ISjhD8Ih0ikh 4584 func (builder *PatchDocumentBlockReqBuilder) DocumentId(documentId string) *PatchDocumentBlockReqBuilder { 4585 builder.apiReq.PathParams.Set("document_id", fmt.Sprint(documentId)) 4586 return builder 4587 } 4588 4589 // Block 的唯一标识 4590 // 4591 // 示例值:doxcnO6UW6wAw2qIcYf4hZpFIth 4592 func (builder *PatchDocumentBlockReqBuilder) BlockId(blockId string) *PatchDocumentBlockReqBuilder { 4593 builder.apiReq.PathParams.Set("block_id", fmt.Sprint(blockId)) 4594 return builder 4595 } 4596 4597 // 操作的文档版本,-1表示文档最新版本。若此时操作的版本为文档最新版本,则需要持有文档的阅读权限;若此时操作的版本为文档的历史版本,则需要持有文档的编辑权限。 4598 // 4599 // 示例值:-1 4600 func (builder *PatchDocumentBlockReqBuilder) DocumentRevisionId(documentRevisionId int) *PatchDocumentBlockReqBuilder { 4601 builder.apiReq.QueryParams.Set("document_revision_id", fmt.Sprint(documentRevisionId)) 4602 return builder 4603 } 4604 4605 // 操作的唯一标识,与接口返回值的 client_token 相对应,用于幂等的进行更新操作。此值为空表示将发起一次新的请求,此值非空表示幂等的进行更新操作。 4606 // 4607 // 示例值:0e2633a3-aa1a-4171-af9e-0768ff863566 4608 func (builder *PatchDocumentBlockReqBuilder) ClientToken(clientToken string) *PatchDocumentBlockReqBuilder { 4609 builder.apiReq.QueryParams.Set("client_token", fmt.Sprint(clientToken)) 4610 return builder 4611 } 4612 4613 // 此次调用中使用的用户ID的类型 4614 // 4615 // 示例值: 4616 func (builder *PatchDocumentBlockReqBuilder) UserIdType(userIdType string) *PatchDocumentBlockReqBuilder { 4617 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 4618 return builder 4619 } 4620 4621 // 更新指定的块。 4622 func (builder *PatchDocumentBlockReqBuilder) UpdateBlockRequest(updateBlockRequest *UpdateBlockRequest) *PatchDocumentBlockReqBuilder { 4623 builder.updateBlockRequest = updateBlockRequest 4624 return builder 4625 } 4626 4627 func (builder *PatchDocumentBlockReqBuilder) Build() *PatchDocumentBlockReq { 4628 req := &PatchDocumentBlockReq{} 4629 req.apiReq = &larkcore.ApiReq{} 4630 req.apiReq.PathParams = builder.apiReq.PathParams 4631 req.apiReq.QueryParams = builder.apiReq.QueryParams 4632 req.apiReq.Body = builder.updateBlockRequest 4633 return req 4634 } 4635 4636 type PatchDocumentBlockReq struct { 4637 apiReq *larkcore.ApiReq 4638 UpdateBlockRequest *UpdateBlockRequest `body:""` 4639 } 4640 4641 type PatchDocumentBlockRespData struct { 4642 Block *Block `json:"block,omitempty"` // 更新后的 block 信息 4643 DocumentRevisionId *int `json:"document_revision_id,omitempty"` // 当前更新成功后文档的版本号 4644 ClientToken *string `json:"client_token,omitempty"` // 操作的唯一标识,更新请求中使用此值表示幂等的进行此次更新 4645 } 4646 4647 type PatchDocumentBlockResp struct { 4648 *larkcore.ApiResp `json:"-"` 4649 larkcore.CodeError 4650 Data *PatchDocumentBlockRespData `json:"data"` // 业务数据 4651 } 4652 4653 func (resp *PatchDocumentBlockResp) Success() bool { 4654 return resp.Code == 0 4655 } 4656 4657 type BatchDeleteDocumentBlockChildrenReqBodyBuilder struct { 4658 startIndex int // 删除的起始索引(操作区间左闭右开) 4659 startIndexFlag bool 4660 endIndex int // 删除的末尾索引(操作区间左闭右开) 4661 endIndexFlag bool 4662 } 4663 4664 func NewBatchDeleteDocumentBlockChildrenReqBodyBuilder() *BatchDeleteDocumentBlockChildrenReqBodyBuilder { 4665 builder := &BatchDeleteDocumentBlockChildrenReqBodyBuilder{} 4666 return builder 4667 } 4668 4669 // 删除的起始索引(操作区间左闭右开) 4670 // 4671 //示例值:0 4672 func (builder *BatchDeleteDocumentBlockChildrenReqBodyBuilder) StartIndex(startIndex int) *BatchDeleteDocumentBlockChildrenReqBodyBuilder { 4673 builder.startIndex = startIndex 4674 builder.startIndexFlag = true 4675 return builder 4676 } 4677 4678 // 删除的末尾索引(操作区间左闭右开) 4679 // 4680 //示例值:1 4681 func (builder *BatchDeleteDocumentBlockChildrenReqBodyBuilder) EndIndex(endIndex int) *BatchDeleteDocumentBlockChildrenReqBodyBuilder { 4682 builder.endIndex = endIndex 4683 builder.endIndexFlag = true 4684 return builder 4685 } 4686 4687 func (builder *BatchDeleteDocumentBlockChildrenReqBodyBuilder) Build() *BatchDeleteDocumentBlockChildrenReqBody { 4688 req := &BatchDeleteDocumentBlockChildrenReqBody{} 4689 if builder.startIndexFlag { 4690 req.StartIndex = &builder.startIndex 4691 } 4692 if builder.endIndexFlag { 4693 req.EndIndex = &builder.endIndex 4694 } 4695 return req 4696 } 4697 4698 type BatchDeleteDocumentBlockChildrenPathReqBodyBuilder struct { 4699 startIndex int // 删除的起始索引(操作区间左闭右开) 4700 startIndexFlag bool 4701 endIndex int // 删除的末尾索引(操作区间左闭右开) 4702 endIndexFlag bool 4703 } 4704 4705 func NewBatchDeleteDocumentBlockChildrenPathReqBodyBuilder() *BatchDeleteDocumentBlockChildrenPathReqBodyBuilder { 4706 builder := &BatchDeleteDocumentBlockChildrenPathReqBodyBuilder{} 4707 return builder 4708 } 4709 4710 // 删除的起始索引(操作区间左闭右开) 4711 // 4712 // 示例值:0 4713 func (builder *BatchDeleteDocumentBlockChildrenPathReqBodyBuilder) StartIndex(startIndex int) *BatchDeleteDocumentBlockChildrenPathReqBodyBuilder { 4714 builder.startIndex = startIndex 4715 builder.startIndexFlag = true 4716 return builder 4717 } 4718 4719 // 删除的末尾索引(操作区间左闭右开) 4720 // 4721 // 示例值:1 4722 func (builder *BatchDeleteDocumentBlockChildrenPathReqBodyBuilder) EndIndex(endIndex int) *BatchDeleteDocumentBlockChildrenPathReqBodyBuilder { 4723 builder.endIndex = endIndex 4724 builder.endIndexFlag = true 4725 return builder 4726 } 4727 4728 func (builder *BatchDeleteDocumentBlockChildrenPathReqBodyBuilder) Build() (*BatchDeleteDocumentBlockChildrenReqBody, error) { 4729 req := &BatchDeleteDocumentBlockChildrenReqBody{} 4730 if builder.startIndexFlag { 4731 req.StartIndex = &builder.startIndex 4732 } 4733 if builder.endIndexFlag { 4734 req.EndIndex = &builder.endIndex 4735 } 4736 return req, nil 4737 } 4738 4739 type BatchDeleteDocumentBlockChildrenReqBuilder struct { 4740 apiReq *larkcore.ApiReq 4741 body *BatchDeleteDocumentBlockChildrenReqBody 4742 } 4743 4744 func NewBatchDeleteDocumentBlockChildrenReqBuilder() *BatchDeleteDocumentBlockChildrenReqBuilder { 4745 builder := &BatchDeleteDocumentBlockChildrenReqBuilder{} 4746 builder.apiReq = &larkcore.ApiReq{ 4747 PathParams: larkcore.PathParams{}, 4748 QueryParams: larkcore.QueryParams{}, 4749 } 4750 return builder 4751 } 4752 4753 // 文档的唯一标识 4754 // 4755 // 示例值:doxcnePuYufKa49ISjhD8Ih0ikh 4756 func (builder *BatchDeleteDocumentBlockChildrenReqBuilder) DocumentId(documentId string) *BatchDeleteDocumentBlockChildrenReqBuilder { 4757 builder.apiReq.PathParams.Set("document_id", fmt.Sprint(documentId)) 4758 return builder 4759 } 4760 4761 // 父 Block 的唯一标识 4762 // 4763 // 示例值:doxcnO6UW6wAw2qIcYf4hZpFIth 4764 func (builder *BatchDeleteDocumentBlockChildrenReqBuilder) BlockId(blockId string) *BatchDeleteDocumentBlockChildrenReqBuilder { 4765 builder.apiReq.PathParams.Set("block_id", fmt.Sprint(blockId)) 4766 return builder 4767 } 4768 4769 // 操作的文档版本,-1表示文档最新版本。若此时操作的版本为文档最新版本,则需要持有文档的阅读权限;若此时操作的版本为文档的历史版本,则需要持有文档的编辑权限。 4770 // 4771 // 示例值:-1 4772 func (builder *BatchDeleteDocumentBlockChildrenReqBuilder) DocumentRevisionId(documentRevisionId int) *BatchDeleteDocumentBlockChildrenReqBuilder { 4773 builder.apiReq.QueryParams.Set("document_revision_id", fmt.Sprint(documentRevisionId)) 4774 return builder 4775 } 4776 4777 // 操作的唯一标识,与接口返回值的 client_token 相对应,用于幂等的进行更新操作。此值为空表示将发起一次新的请求,此值非空表示幂等的进行更新操作。 4778 // 4779 // 示例值:fe599b60-450f-46ff-b2ef-9f6675625b97 4780 func (builder *BatchDeleteDocumentBlockChildrenReqBuilder) ClientToken(clientToken string) *BatchDeleteDocumentBlockChildrenReqBuilder { 4781 builder.apiReq.QueryParams.Set("client_token", fmt.Sprint(clientToken)) 4782 return builder 4783 } 4784 4785 // 指定需要操作的块,删除其指定范围的子块。如果操作成功,接口将返回应用删除操作后的文档版本号。 4786 func (builder *BatchDeleteDocumentBlockChildrenReqBuilder) Body(body *BatchDeleteDocumentBlockChildrenReqBody) *BatchDeleteDocumentBlockChildrenReqBuilder { 4787 builder.body = body 4788 return builder 4789 } 4790 4791 func (builder *BatchDeleteDocumentBlockChildrenReqBuilder) Build() *BatchDeleteDocumentBlockChildrenReq { 4792 req := &BatchDeleteDocumentBlockChildrenReq{} 4793 req.apiReq = &larkcore.ApiReq{} 4794 req.apiReq.PathParams = builder.apiReq.PathParams 4795 req.apiReq.QueryParams = builder.apiReq.QueryParams 4796 req.apiReq.Body = builder.body 4797 return req 4798 } 4799 4800 type BatchDeleteDocumentBlockChildrenReqBody struct { 4801 StartIndex *int `json:"start_index,omitempty"` // 删除的起始索引(操作区间左闭右开) 4802 EndIndex *int `json:"end_index,omitempty"` // 删除的末尾索引(操作区间左闭右开) 4803 } 4804 4805 type BatchDeleteDocumentBlockChildrenReq struct { 4806 apiReq *larkcore.ApiReq 4807 Body *BatchDeleteDocumentBlockChildrenReqBody `body:""` 4808 } 4809 4810 type BatchDeleteDocumentBlockChildrenRespData struct { 4811 DocumentRevisionId *int `json:"document_revision_id,omitempty"` // 当前删除操作成功后文档的版本号 4812 ClientToken *string `json:"client_token,omitempty"` // 操作的唯一标识,更新请求中使用此值表示幂等的进行此次更新 4813 } 4814 4815 type BatchDeleteDocumentBlockChildrenResp struct { 4816 *larkcore.ApiResp `json:"-"` 4817 larkcore.CodeError 4818 Data *BatchDeleteDocumentBlockChildrenRespData `json:"data"` // 业务数据 4819 } 4820 4821 func (resp *BatchDeleteDocumentBlockChildrenResp) Success() bool { 4822 return resp.Code == 0 4823 } 4824 4825 type CreateDocumentBlockChildrenReqBodyBuilder struct { 4826 children []*Block // 添加的孩子列表。 4827 childrenFlag bool 4828 index int // 当前 block 在 children 中的插入位置,起始值为 0,最大值为原 children 长度 4829 indexFlag bool 4830 } 4831 4832 func NewCreateDocumentBlockChildrenReqBodyBuilder() *CreateDocumentBlockChildrenReqBodyBuilder { 4833 builder := &CreateDocumentBlockChildrenReqBodyBuilder{} 4834 return builder 4835 } 4836 4837 // 添加的孩子列表。 4838 // 4839 //示例值: 4840 func (builder *CreateDocumentBlockChildrenReqBodyBuilder) Children(children []*Block) *CreateDocumentBlockChildrenReqBodyBuilder { 4841 builder.children = children 4842 builder.childrenFlag = true 4843 return builder 4844 } 4845 4846 // 当前 block 在 children 中的插入位置,起始值为 0,最大值为原 children 长度 4847 // 4848 //示例值:0 4849 func (builder *CreateDocumentBlockChildrenReqBodyBuilder) Index(index int) *CreateDocumentBlockChildrenReqBodyBuilder { 4850 builder.index = index 4851 builder.indexFlag = true 4852 return builder 4853 } 4854 4855 func (builder *CreateDocumentBlockChildrenReqBodyBuilder) Build() *CreateDocumentBlockChildrenReqBody { 4856 req := &CreateDocumentBlockChildrenReqBody{} 4857 if builder.childrenFlag { 4858 req.Children = builder.children 4859 } 4860 if builder.indexFlag { 4861 req.Index = &builder.index 4862 } 4863 return req 4864 } 4865 4866 type CreateDocumentBlockChildrenPathReqBodyBuilder struct { 4867 children []*Block // 添加的孩子列表。 4868 childrenFlag bool 4869 index int // 当前 block 在 children 中的插入位置,起始值为 0,最大值为原 children 长度 4870 indexFlag bool 4871 } 4872 4873 func NewCreateDocumentBlockChildrenPathReqBodyBuilder() *CreateDocumentBlockChildrenPathReqBodyBuilder { 4874 builder := &CreateDocumentBlockChildrenPathReqBodyBuilder{} 4875 return builder 4876 } 4877 4878 // 添加的孩子列表。 4879 // 4880 // 示例值: 4881 func (builder *CreateDocumentBlockChildrenPathReqBodyBuilder) Children(children []*Block) *CreateDocumentBlockChildrenPathReqBodyBuilder { 4882 builder.children = children 4883 builder.childrenFlag = true 4884 return builder 4885 } 4886 4887 // 当前 block 在 children 中的插入位置,起始值为 0,最大值为原 children 长度 4888 // 4889 // 示例值:0 4890 func (builder *CreateDocumentBlockChildrenPathReqBodyBuilder) Index(index int) *CreateDocumentBlockChildrenPathReqBodyBuilder { 4891 builder.index = index 4892 builder.indexFlag = true 4893 return builder 4894 } 4895 4896 func (builder *CreateDocumentBlockChildrenPathReqBodyBuilder) Build() (*CreateDocumentBlockChildrenReqBody, error) { 4897 req := &CreateDocumentBlockChildrenReqBody{} 4898 if builder.childrenFlag { 4899 req.Children = builder.children 4900 } 4901 if builder.indexFlag { 4902 req.Index = &builder.index 4903 } 4904 return req, nil 4905 } 4906 4907 type CreateDocumentBlockChildrenReqBuilder struct { 4908 apiReq *larkcore.ApiReq 4909 body *CreateDocumentBlockChildrenReqBody 4910 } 4911 4912 func NewCreateDocumentBlockChildrenReqBuilder() *CreateDocumentBlockChildrenReqBuilder { 4913 builder := &CreateDocumentBlockChildrenReqBuilder{} 4914 builder.apiReq = &larkcore.ApiReq{ 4915 PathParams: larkcore.PathParams{}, 4916 QueryParams: larkcore.QueryParams{}, 4917 } 4918 return builder 4919 } 4920 4921 // 文档的唯一标识 4922 // 4923 // 示例值:doxcnePuYufKa49ISjhD8Ih0ikh 4924 func (builder *CreateDocumentBlockChildrenReqBuilder) DocumentId(documentId string) *CreateDocumentBlockChildrenReqBuilder { 4925 builder.apiReq.PathParams.Set("document_id", fmt.Sprint(documentId)) 4926 return builder 4927 } 4928 4929 // Block 的唯一标识 4930 // 4931 // 示例值:doxcnO6UW6wAw2qIcYf4hZpFIth 4932 func (builder *CreateDocumentBlockChildrenReqBuilder) BlockId(blockId string) *CreateDocumentBlockChildrenReqBuilder { 4933 builder.apiReq.PathParams.Set("block_id", fmt.Sprint(blockId)) 4934 return builder 4935 } 4936 4937 // 操作的文档版本,-1表示文档最新版本。若此时操作的版本为文档最新版本,则需要持有文档的阅读权限;若此时操作的版本为文档的历史版本,则需要持有文档的编辑权限。 4938 // 4939 // 示例值:-1 4940 func (builder *CreateDocumentBlockChildrenReqBuilder) DocumentRevisionId(documentRevisionId int) *CreateDocumentBlockChildrenReqBuilder { 4941 builder.apiReq.QueryParams.Set("document_revision_id", fmt.Sprint(documentRevisionId)) 4942 return builder 4943 } 4944 4945 // 操作的唯一标识,与接口返回值的 client_token 相对应,用于幂等的进行更新操作。此值为空表示将发起一次新的请求,此值非空表示幂等的进行更新操作。 4946 // 4947 // 示例值:fe599b60-450f-46ff-b2ef-9f6675625b97 4948 func (builder *CreateDocumentBlockChildrenReqBuilder) ClientToken(clientToken string) *CreateDocumentBlockChildrenReqBuilder { 4949 builder.apiReq.QueryParams.Set("client_token", fmt.Sprint(clientToken)) 4950 return builder 4951 } 4952 4953 // 此次调用中使用的用户ID的类型 4954 // 4955 // 示例值: 4956 func (builder *CreateDocumentBlockChildrenReqBuilder) UserIdType(userIdType string) *CreateDocumentBlockChildrenReqBuilder { 4957 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 4958 return builder 4959 } 4960 4961 // 指定需要操作的块,为其创建一批子块,并插入到指定位置。如果操作成功,接口将返回新创建子块的富文本内容。 4962 func (builder *CreateDocumentBlockChildrenReqBuilder) Body(body *CreateDocumentBlockChildrenReqBody) *CreateDocumentBlockChildrenReqBuilder { 4963 builder.body = body 4964 return builder 4965 } 4966 4967 func (builder *CreateDocumentBlockChildrenReqBuilder) Build() *CreateDocumentBlockChildrenReq { 4968 req := &CreateDocumentBlockChildrenReq{} 4969 req.apiReq = &larkcore.ApiReq{} 4970 req.apiReq.PathParams = builder.apiReq.PathParams 4971 req.apiReq.QueryParams = builder.apiReq.QueryParams 4972 req.apiReq.Body = builder.body 4973 return req 4974 } 4975 4976 type CreateDocumentBlockChildrenReqBody struct { 4977 Children []*Block `json:"children,omitempty"` // 添加的孩子列表。 4978 Index *int `json:"index,omitempty"` // 当前 block 在 children 中的插入位置,起始值为 0,最大值为原 children 长度 4979 } 4980 4981 type CreateDocumentBlockChildrenReq struct { 4982 apiReq *larkcore.ApiReq 4983 Body *CreateDocumentBlockChildrenReqBody `body:""` 4984 } 4985 4986 type CreateDocumentBlockChildrenRespData struct { 4987 Children []*Block `json:"children,omitempty"` // 所添加的孩子的 Block 信息 4988 DocumentRevisionId *int `json:"document_revision_id,omitempty"` // 当前 block children 创建成功后文档的版本号 4989 ClientToken *string `json:"client_token,omitempty"` // 操作的唯一标识,更新请求中使用此值表示幂等的进行此次更新 4990 } 4991 4992 type CreateDocumentBlockChildrenResp struct { 4993 *larkcore.ApiResp `json:"-"` 4994 larkcore.CodeError 4995 Data *CreateDocumentBlockChildrenRespData `json:"data"` // 业务数据 4996 } 4997 4998 func (resp *CreateDocumentBlockChildrenResp) Success() bool { 4999 return resp.Code == 0 5000 } 5001 5002 type GetDocumentBlockChildrenReqBuilder struct { 5003 apiReq *larkcore.ApiReq 5004 limit int // 最大返回多少记录,当使用迭代器访问时才有效 5005 } 5006 5007 func NewGetDocumentBlockChildrenReqBuilder() *GetDocumentBlockChildrenReqBuilder { 5008 builder := &GetDocumentBlockChildrenReqBuilder{} 5009 builder.apiReq = &larkcore.ApiReq{ 5010 PathParams: larkcore.PathParams{}, 5011 QueryParams: larkcore.QueryParams{}, 5012 } 5013 return builder 5014 } 5015 5016 // 最大返回多少记录,当使用迭代器访问时才有效 5017 func (builder *GetDocumentBlockChildrenReqBuilder) Limit(limit int) *GetDocumentBlockChildrenReqBuilder { 5018 builder.limit = limit 5019 return builder 5020 } 5021 5022 // 文档的唯一标识 5023 // 5024 // 示例值:doxcnePuYufKa49ISjhD8Ih0ikh 5025 func (builder *GetDocumentBlockChildrenReqBuilder) DocumentId(documentId string) *GetDocumentBlockChildrenReqBuilder { 5026 builder.apiReq.PathParams.Set("document_id", fmt.Sprint(documentId)) 5027 return builder 5028 } 5029 5030 // Block 的唯一标识 5031 // 5032 // 示例值:doxcnO6UW6wAw2qIcYf4hZpFIth 5033 func (builder *GetDocumentBlockChildrenReqBuilder) BlockId(blockId string) *GetDocumentBlockChildrenReqBuilder { 5034 builder.apiReq.PathParams.Set("block_id", fmt.Sprint(blockId)) 5035 return builder 5036 } 5037 5038 // 操作的文档版本,-1表示文档最新版本。若此时操作的版本为文档最新版本,则需要持有文档的阅读权限;若此时操作的版本为文档的历史版本,则需要持有文档的编辑权限。 5039 // 5040 // 示例值:-1 5041 func (builder *GetDocumentBlockChildrenReqBuilder) DocumentRevisionId(documentRevisionId int) *GetDocumentBlockChildrenReqBuilder { 5042 builder.apiReq.QueryParams.Set("document_revision_id", fmt.Sprint(documentRevisionId)) 5043 return builder 5044 } 5045 5046 // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果 5047 // 5048 // 示例值:aw7DoMKBFMOGwqHCrcO8w6jCmMOvw6ILeADCvsKNw57Di8O5XGV3LG4_w5HCqhFxSnDCrCzCn0BgZcOYUg85EMOYcEAcwqYOw4ojw5QFwofCu8KoIMO3K8Ktw4IuNMOBBHNYw4bCgCV3U1zDu8K-J8KSR8Kgw7Y0fsKZdsKvW3d9w53DnkHDrcO5bDkYwrvDisOEPcOtVFJ-I03CnsOILMOoAmLDknd6dsKqG1bClAjDuS3CvcOTwo7Dg8OrwovDsRdqIcKxw5HDohTDtXN9w5rCkWo 5049 func (builder *GetDocumentBlockChildrenReqBuilder) PageToken(pageToken string) *GetDocumentBlockChildrenReqBuilder { 5050 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 5051 return builder 5052 } 5053 5054 // 分页大小 5055 // 5056 // 示例值:500 5057 func (builder *GetDocumentBlockChildrenReqBuilder) PageSize(pageSize int) *GetDocumentBlockChildrenReqBuilder { 5058 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 5059 return builder 5060 } 5061 5062 // 此次调用中使用的用户ID的类型 5063 // 5064 // 示例值: 5065 func (builder *GetDocumentBlockChildrenReqBuilder) UserIdType(userIdType string) *GetDocumentBlockChildrenReqBuilder { 5066 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 5067 return builder 5068 } 5069 5070 func (builder *GetDocumentBlockChildrenReqBuilder) Build() *GetDocumentBlockChildrenReq { 5071 req := &GetDocumentBlockChildrenReq{} 5072 req.apiReq = &larkcore.ApiReq{} 5073 req.Limit = builder.limit 5074 req.apiReq.PathParams = builder.apiReq.PathParams 5075 req.apiReq.QueryParams = builder.apiReq.QueryParams 5076 return req 5077 } 5078 5079 type GetDocumentBlockChildrenReq struct { 5080 apiReq *larkcore.ApiReq 5081 Limit int // 最多返回多少记录,只有在使用迭代器访问时,才有效 5082 5083 } 5084 5085 type GetDocumentBlockChildrenRespData struct { 5086 Items []*Block `json:"items,omitempty"` // block 的 children 列表 5087 PageToken *string `json:"page_token,omitempty"` // 下一个分页的分页标记 5088 HasMore *bool `json:"has_more,omitempty"` // 是否还有下一个分页 5089 } 5090 5091 type GetDocumentBlockChildrenResp struct { 5092 *larkcore.ApiResp `json:"-"` 5093 larkcore.CodeError 5094 Data *GetDocumentBlockChildrenRespData `json:"data"` // 业务数据 5095 } 5096 5097 func (resp *GetDocumentBlockChildrenResp) Success() bool { 5098 return resp.Code == 0 5099 } 5100 5101 type ListDocumentBlockIterator struct { 5102 nextPageToken *string 5103 items []*Block 5104 index int 5105 limit int 5106 ctx context.Context 5107 req *ListDocumentBlockReq 5108 listFunc func(ctx context.Context, req *ListDocumentBlockReq, options ...larkcore.RequestOptionFunc) (*ListDocumentBlockResp, error) 5109 options []larkcore.RequestOptionFunc 5110 curlNum int 5111 } 5112 5113 func (iterator *ListDocumentBlockIterator) Next() (bool, *Block, error) { 5114 // 达到最大量,则返回 5115 if iterator.limit > 0 && iterator.curlNum >= iterator.limit { 5116 return false, nil, nil 5117 } 5118 5119 // 为0则拉取数据 5120 if iterator.index == 0 || iterator.index >= len(iterator.items) { 5121 if iterator.index != 0 && iterator.nextPageToken == nil { 5122 return false, nil, nil 5123 } 5124 if iterator.nextPageToken != nil { 5125 iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken) 5126 } 5127 resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...) 5128 if err != nil { 5129 return false, nil, err 5130 } 5131 5132 if resp.Code != 0 { 5133 return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg)) 5134 } 5135 5136 if len(resp.Data.Items) == 0 { 5137 return false, nil, nil 5138 } 5139 5140 iterator.nextPageToken = resp.Data.PageToken 5141 iterator.items = resp.Data.Items 5142 iterator.index = 0 5143 } 5144 5145 block := iterator.items[iterator.index] 5146 iterator.index++ 5147 iterator.curlNum++ 5148 return true, block, nil 5149 } 5150 5151 func (iterator *ListDocumentBlockIterator) NextPageToken() *string { 5152 return iterator.nextPageToken 5153 } 5154 5155 type GetDocumentBlockChildrenIterator struct { 5156 nextPageToken *string 5157 items []*Block 5158 index int 5159 limit int 5160 ctx context.Context 5161 req *GetDocumentBlockChildrenReq 5162 listFunc func(ctx context.Context, req *GetDocumentBlockChildrenReq, options ...larkcore.RequestOptionFunc) (*GetDocumentBlockChildrenResp, error) 5163 options []larkcore.RequestOptionFunc 5164 curlNum int 5165 } 5166 5167 func (iterator *GetDocumentBlockChildrenIterator) Next() (bool, *Block, error) { 5168 // 达到最大量,则返回 5169 if iterator.limit > 0 && iterator.curlNum >= iterator.limit { 5170 return false, nil, nil 5171 } 5172 5173 // 为0则拉取数据 5174 if iterator.index == 0 || iterator.index >= len(iterator.items) { 5175 if iterator.index != 0 && iterator.nextPageToken == nil { 5176 return false, nil, nil 5177 } 5178 if iterator.nextPageToken != nil { 5179 iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken) 5180 } 5181 resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...) 5182 if err != nil { 5183 return false, nil, err 5184 } 5185 5186 if resp.Code != 0 { 5187 return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg)) 5188 } 5189 5190 if len(resp.Data.Items) == 0 { 5191 return false, nil, nil 5192 } 5193 5194 iterator.nextPageToken = resp.Data.PageToken 5195 iterator.items = resp.Data.Items 5196 iterator.index = 0 5197 } 5198 5199 block := iterator.items[iterator.index] 5200 iterator.index++ 5201 iterator.curlNum++ 5202 return true, block, nil 5203 } 5204 5205 func (iterator *GetDocumentBlockChildrenIterator) NextPageToken() *string { 5206 return iterator.nextPageToken 5207 }