gitee.com/larksuite/oapi-sdk-go/v3@v3.0.3/service/wiki/v2/model.go (about)

     1  // Package wiki 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 larkwiki
    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  	ObjTypeObjTypeDoc      = "doc"      // doc
    27  	ObjTypeObjTypeSheet    = "sheet"    // sheet
    28  	ObjTypeObjTypeMindNote = "mindnote" // mindnote
    29  	ObjTypeObjTypeBitable  = "bitable"  // bitable
    30  	ObjTypeObjTypeFile     = "file"     // file
    31  	ObjTypeObjTypeDocx     = "docx"     // docx
    32  )
    33  
    34  const (
    35  	NodeTypeNodeTypeEntity   = "origin"   // 实体
    36  	NodeTypeNodeTypeShortCut = "shortcut" // 快捷方式
    37  )
    38  
    39  const (
    40  	MoveDocsToWikiObjTypeObjTypeDoc      = "doc"      // doc(文档)
    41  	MoveDocsToWikiObjTypeObjTypeSheet    = "sheet"    // sheet(表格)
    42  	MoveDocsToWikiObjTypeObjTypeBitable  = "bitable"  // bitable(多维表格)
    43  	MoveDocsToWikiObjTypeObjTypeMindNote = "mindnote" // mindnote(思维导图)
    44  	MoveDocsToWikiObjTypeObjTypeDocx     = "docx"     // docx
    45  	MoveDocsToWikiObjTypeObjTypeFile     = "file"     // file (文件)
    46  )
    47  
    48  const (
    49  	TaskTypeMove = "move" // MoveDocsToWiki任务
    50  )
    51  
    52  type Member struct {
    53  	MemberType *string `json:"member_type,omitempty"` // “openchat” - 群id ;;“userid” - 用户id;;“email” - 邮箱;;“opendepartmentid” - 部门id;;“openid” - 应用openid;;“unionid” - unionid
    54  	MemberId   *string `json:"member_id,omitempty"`   // 用户id
    55  	MemberRole *string `json:"member_role,omitempty"` // 角色:;;“admin” - 管理员;;“member” - 成员
    56  }
    57  
    58  type MemberBuilder struct {
    59  	memberType     string // “openchat” - 群id ;;“userid” - 用户id;;“email” - 邮箱;;“opendepartmentid” - 部门id;;“openid” - 应用openid;;“unionid” - unionid
    60  	memberTypeFlag bool
    61  	memberId       string // 用户id
    62  	memberIdFlag   bool
    63  	memberRole     string // 角色:;;“admin” - 管理员;;“member” - 成员
    64  	memberRoleFlag bool
    65  }
    66  
    67  func NewMemberBuilder() *MemberBuilder {
    68  	builder := &MemberBuilder{}
    69  	return builder
    70  }
    71  
    72  // “openchat” - 群id ;;“userid” - 用户id;;“email” - 邮箱;;“opendepartmentid” - 部门id;;“openid” - 应用openid;;“unionid” - unionid
    73  //
    74  // 示例值:userid
    75  func (builder *MemberBuilder) MemberType(memberType string) *MemberBuilder {
    76  	builder.memberType = memberType
    77  	builder.memberTypeFlag = true
    78  	return builder
    79  }
    80  
    81  // 用户id
    82  //
    83  // 示例值:1565676577122621
    84  func (builder *MemberBuilder) MemberId(memberId string) *MemberBuilder {
    85  	builder.memberId = memberId
    86  	builder.memberIdFlag = true
    87  	return builder
    88  }
    89  
    90  // 角色:;;“admin” - 管理员;;“member” - 成员
    91  //
    92  // 示例值:admin
    93  func (builder *MemberBuilder) MemberRole(memberRole string) *MemberBuilder {
    94  	builder.memberRole = memberRole
    95  	builder.memberRoleFlag = true
    96  	return builder
    97  }
    98  
    99  func (builder *MemberBuilder) Build() *Member {
   100  	req := &Member{}
   101  	if builder.memberTypeFlag {
   102  		req.MemberType = &builder.memberType
   103  
   104  	}
   105  	if builder.memberIdFlag {
   106  		req.MemberId = &builder.memberId
   107  
   108  	}
   109  	if builder.memberRoleFlag {
   110  		req.MemberRole = &builder.memberRole
   111  
   112  	}
   113  	return req
   114  }
   115  
   116  type MoveResult struct {
   117  	Node      *Node   `json:"node,omitempty"`       // 移动完成的节点信息
   118  	Status    *int    `json:"status,omitempty"`     // 节点移动状态码
   119  	StatusMsg *string `json:"status_msg,omitempty"` // 节点移动状态信息
   120  }
   121  
   122  type MoveResultBuilder struct {
   123  	node          *Node // 移动完成的节点信息
   124  	nodeFlag      bool
   125  	status        int // 节点移动状态码
   126  	statusFlag    bool
   127  	statusMsg     string // 节点移动状态信息
   128  	statusMsgFlag bool
   129  }
   130  
   131  func NewMoveResultBuilder() *MoveResultBuilder {
   132  	builder := &MoveResultBuilder{}
   133  	return builder
   134  }
   135  
   136  // 移动完成的节点信息
   137  //
   138  // 示例值:
   139  func (builder *MoveResultBuilder) Node(node *Node) *MoveResultBuilder {
   140  	builder.node = node
   141  	builder.nodeFlag = true
   142  	return builder
   143  }
   144  
   145  // 节点移动状态码
   146  //
   147  // 示例值:0
   148  func (builder *MoveResultBuilder) Status(status int) *MoveResultBuilder {
   149  	builder.status = status
   150  	builder.statusFlag = true
   151  	return builder
   152  }
   153  
   154  // 节点移动状态信息
   155  //
   156  // 示例值:success
   157  func (builder *MoveResultBuilder) StatusMsg(statusMsg string) *MoveResultBuilder {
   158  	builder.statusMsg = statusMsg
   159  	builder.statusMsgFlag = true
   160  	return builder
   161  }
   162  
   163  func (builder *MoveResultBuilder) Build() *MoveResult {
   164  	req := &MoveResult{}
   165  	if builder.nodeFlag {
   166  		req.Node = builder.node
   167  	}
   168  	if builder.statusFlag {
   169  		req.Status = &builder.status
   170  
   171  	}
   172  	if builder.statusMsgFlag {
   173  		req.StatusMsg = &builder.statusMsg
   174  
   175  	}
   176  	return req
   177  }
   178  
   179  type Node struct {
   180  	SpaceId         *string `json:"space_id,omitempty"`          // 知识库id
   181  	NodeToken       *string `json:"node_token,omitempty"`        // 节点token
   182  	ObjToken        *string `json:"obj_token,omitempty"`         // 文档token,可以根据obj_type判断是属于doc、sheet还是mindnote的token(对于快捷方式,该字段是对应的实体的obj_token)
   183  	ObjType         *string `json:"obj_type,omitempty"`          // 文档类型,对于快捷方式,该字段是对应的实体的obj_type
   184  	ParentNodeToken *string `json:"parent_node_token,omitempty"` // 节点的父亲token。当节点为一级节点时,父亲token为空。
   185  	NodeType        *string `json:"node_type,omitempty"`         // 节点类型
   186  	OriginNodeToken *string `json:"origin_node_token,omitempty"` // 快捷方式对应的实体node_token,当创建节点为快捷方式时,需要传该值
   187  	OriginSpaceId   *string `json:"origin_space_id,omitempty"`   // 快捷方式对应的实体所在的spaceid
   188  	HasChild        *bool   `json:"has_child,omitempty"`         // 是否有子节点
   189  	Title           *string `json:"title,omitempty"`             // 文档标题
   190  	ObjCreateTime   *string `json:"obj_create_time,omitempty"`   // 文档创建时间
   191  	ObjEditTime     *string `json:"obj_edit_time,omitempty"`     // 文档最近编辑时间
   192  	NodeCreateTime  *string `json:"node_create_time,omitempty"`  // 节点创建时间
   193  	Creator         *string `json:"creator,omitempty"`           // 节点创建者
   194  	Owner           *string `json:"owner,omitempty"`             // 节点所有者
   195  }
   196  
   197  type NodeBuilder struct {
   198  	spaceId             string // 知识库id
   199  	spaceIdFlag         bool
   200  	nodeToken           string // 节点token
   201  	nodeTokenFlag       bool
   202  	objToken            string // 文档token,可以根据obj_type判断是属于doc、sheet还是mindnote的token(对于快捷方式,该字段是对应的实体的obj_token)
   203  	objTokenFlag        bool
   204  	objType             string // 文档类型,对于快捷方式,该字段是对应的实体的obj_type
   205  	objTypeFlag         bool
   206  	parentNodeToken     string // 节点的父亲token。当节点为一级节点时,父亲token为空。
   207  	parentNodeTokenFlag bool
   208  	nodeType            string // 节点类型
   209  	nodeTypeFlag        bool
   210  	originNodeToken     string // 快捷方式对应的实体node_token,当创建节点为快捷方式时,需要传该值
   211  	originNodeTokenFlag bool
   212  	originSpaceId       string // 快捷方式对应的实体所在的spaceid
   213  	originSpaceIdFlag   bool
   214  	hasChild            bool // 是否有子节点
   215  	hasChildFlag        bool
   216  	title               string // 文档标题
   217  	titleFlag           bool
   218  	objCreateTime       string // 文档创建时间
   219  	objCreateTimeFlag   bool
   220  	objEditTime         string // 文档最近编辑时间
   221  	objEditTimeFlag     bool
   222  	nodeCreateTime      string // 节点创建时间
   223  	nodeCreateTimeFlag  bool
   224  	creator             string // 节点创建者
   225  	creatorFlag         bool
   226  	owner               string // 节点所有者
   227  	ownerFlag           bool
   228  }
   229  
   230  func NewNodeBuilder() *NodeBuilder {
   231  	builder := &NodeBuilder{}
   232  	return builder
   233  }
   234  
   235  // 知识库id
   236  //
   237  // 示例值:6946843325487912356
   238  func (builder *NodeBuilder) SpaceId(spaceId string) *NodeBuilder {
   239  	builder.spaceId = spaceId
   240  	builder.spaceIdFlag = true
   241  	return builder
   242  }
   243  
   244  // 节点token
   245  //
   246  // 示例值:wikcnKQ1k3pcuo5uSK4t8Vabcef
   247  func (builder *NodeBuilder) NodeToken(nodeToken string) *NodeBuilder {
   248  	builder.nodeToken = nodeToken
   249  	builder.nodeTokenFlag = true
   250  	return builder
   251  }
   252  
   253  // 文档token,可以根据obj_type判断是属于doc、sheet还是mindnote的token(对于快捷方式,该字段是对应的实体的obj_token)
   254  //
   255  // 示例值:doccnzAaODNqykc8g9hOWabcdef
   256  func (builder *NodeBuilder) ObjToken(objToken string) *NodeBuilder {
   257  	builder.objToken = objToken
   258  	builder.objTokenFlag = true
   259  	return builder
   260  }
   261  
   262  // 文档类型,对于快捷方式,该字段是对应的实体的obj_type
   263  //
   264  // 示例值:doc/sheet/mindnote
   265  func (builder *NodeBuilder) ObjType(objType string) *NodeBuilder {
   266  	builder.objType = objType
   267  	builder.objTypeFlag = true
   268  	return builder
   269  }
   270  
   271  // 节点的父亲token。当节点为一级节点时,父亲token为空。
   272  //
   273  // 示例值:wikcnKQ1k3pcuo5uSK4t8Vabcef
   274  func (builder *NodeBuilder) ParentNodeToken(parentNodeToken string) *NodeBuilder {
   275  	builder.parentNodeToken = parentNodeToken
   276  	builder.parentNodeTokenFlag = true
   277  	return builder
   278  }
   279  
   280  // 节点类型
   281  //
   282  // 示例值:origin/shortcut
   283  func (builder *NodeBuilder) NodeType(nodeType string) *NodeBuilder {
   284  	builder.nodeType = nodeType
   285  	builder.nodeTypeFlag = true
   286  	return builder
   287  }
   288  
   289  // 快捷方式对应的实体node_token,当创建节点为快捷方式时,需要传该值
   290  //
   291  // 示例值:wikcnKQ1k3pcuo5uSK4t8Vabcef
   292  func (builder *NodeBuilder) OriginNodeToken(originNodeToken string) *NodeBuilder {
   293  	builder.originNodeToken = originNodeToken
   294  	builder.originNodeTokenFlag = true
   295  	return builder
   296  }
   297  
   298  // 快捷方式对应的实体所在的spaceid
   299  //
   300  // 示例值:6946843325487912356
   301  func (builder *NodeBuilder) OriginSpaceId(originSpaceId string) *NodeBuilder {
   302  	builder.originSpaceId = originSpaceId
   303  	builder.originSpaceIdFlag = true
   304  	return builder
   305  }
   306  
   307  // 是否有子节点
   308  //
   309  // 示例值:false
   310  func (builder *NodeBuilder) HasChild(hasChild bool) *NodeBuilder {
   311  	builder.hasChild = hasChild
   312  	builder.hasChildFlag = true
   313  	return builder
   314  }
   315  
   316  // 文档标题
   317  //
   318  // 示例值:标题
   319  func (builder *NodeBuilder) Title(title string) *NodeBuilder {
   320  	builder.title = title
   321  	builder.titleFlag = true
   322  	return builder
   323  }
   324  
   325  // 文档创建时间
   326  //
   327  // 示例值:1642402428
   328  func (builder *NodeBuilder) ObjCreateTime(objCreateTime string) *NodeBuilder {
   329  	builder.objCreateTime = objCreateTime
   330  	builder.objCreateTimeFlag = true
   331  	return builder
   332  }
   333  
   334  // 文档最近编辑时间
   335  //
   336  // 示例值:1642402428
   337  func (builder *NodeBuilder) ObjEditTime(objEditTime string) *NodeBuilder {
   338  	builder.objEditTime = objEditTime
   339  	builder.objEditTimeFlag = true
   340  	return builder
   341  }
   342  
   343  // 节点创建时间
   344  //
   345  // 示例值:1642402428
   346  func (builder *NodeBuilder) NodeCreateTime(nodeCreateTime string) *NodeBuilder {
   347  	builder.nodeCreateTime = nodeCreateTime
   348  	builder.nodeCreateTimeFlag = true
   349  	return builder
   350  }
   351  
   352  // 节点创建者
   353  //
   354  // 示例值:ou_xxxxx
   355  func (builder *NodeBuilder) Creator(creator string) *NodeBuilder {
   356  	builder.creator = creator
   357  	builder.creatorFlag = true
   358  	return builder
   359  }
   360  
   361  // 节点所有者
   362  //
   363  // 示例值:ou_xxxxx
   364  func (builder *NodeBuilder) Owner(owner string) *NodeBuilder {
   365  	builder.owner = owner
   366  	builder.ownerFlag = true
   367  	return builder
   368  }
   369  
   370  func (builder *NodeBuilder) Build() *Node {
   371  	req := &Node{}
   372  	if builder.spaceIdFlag {
   373  		req.SpaceId = &builder.spaceId
   374  
   375  	}
   376  	if builder.nodeTokenFlag {
   377  		req.NodeToken = &builder.nodeToken
   378  
   379  	}
   380  	if builder.objTokenFlag {
   381  		req.ObjToken = &builder.objToken
   382  
   383  	}
   384  	if builder.objTypeFlag {
   385  		req.ObjType = &builder.objType
   386  
   387  	}
   388  	if builder.parentNodeTokenFlag {
   389  		req.ParentNodeToken = &builder.parentNodeToken
   390  
   391  	}
   392  	if builder.nodeTypeFlag {
   393  		req.NodeType = &builder.nodeType
   394  
   395  	}
   396  	if builder.originNodeTokenFlag {
   397  		req.OriginNodeToken = &builder.originNodeToken
   398  
   399  	}
   400  	if builder.originSpaceIdFlag {
   401  		req.OriginSpaceId = &builder.originSpaceId
   402  
   403  	}
   404  	if builder.hasChildFlag {
   405  		req.HasChild = &builder.hasChild
   406  
   407  	}
   408  	if builder.titleFlag {
   409  		req.Title = &builder.title
   410  
   411  	}
   412  	if builder.objCreateTimeFlag {
   413  		req.ObjCreateTime = &builder.objCreateTime
   414  
   415  	}
   416  	if builder.objEditTimeFlag {
   417  		req.ObjEditTime = &builder.objEditTime
   418  
   419  	}
   420  	if builder.nodeCreateTimeFlag {
   421  		req.NodeCreateTime = &builder.nodeCreateTime
   422  
   423  	}
   424  	if builder.creatorFlag {
   425  		req.Creator = &builder.creator
   426  
   427  	}
   428  	if builder.ownerFlag {
   429  		req.Owner = &builder.owner
   430  
   431  	}
   432  	return req
   433  }
   434  
   435  type NodeSearch struct {
   436  	NodeId   *string  `json:"node_id,omitempty"`   // node的唯一标识
   437  	SpaceId  *string  `json:"space_id,omitempty"`  // 所属空间id
   438  	ParentId *string  `json:"parent_id,omitempty"` // 父节点id
   439  	ObjType  *int     `json:"obj_type,omitempty"`  // wiki类型
   440  	Title    *string  `json:"title,omitempty"`     // wiki标题
   441  	Url      *string  `json:"url,omitempty"`       // wiki的访问url
   442  	Icon     *string  `json:"icon,omitempty"`      // wiki对应图标的url
   443  	AreaId   *string  `json:"area_id,omitempty"`   // 所属权限范围id
   444  	SortId   *float64 `json:"sort_id,omitempty"`   // 序号
   445  	Domain   *string  `json:"domain,omitempty"`    // 所在域名
   446  	ObjToken *string  `json:"obj_token,omitempty"` // objToken
   447  }
   448  
   449  type NodeSearchBuilder struct {
   450  	nodeId       string // node的唯一标识
   451  	nodeIdFlag   bool
   452  	spaceId      string // 所属空间id
   453  	spaceIdFlag  bool
   454  	parentId     string // 父节点id
   455  	parentIdFlag bool
   456  	objType      int // wiki类型
   457  	objTypeFlag  bool
   458  	title        string // wiki标题
   459  	titleFlag    bool
   460  	url          string // wiki的访问url
   461  	urlFlag      bool
   462  	icon         string // wiki对应图标的url
   463  	iconFlag     bool
   464  	areaId       string // 所属权限范围id
   465  	areaIdFlag   bool
   466  	sortId       float64 // 序号
   467  	sortIdFlag   bool
   468  	domain       string // 所在域名
   469  	domainFlag   bool
   470  	objToken     string // objToken
   471  	objTokenFlag bool
   472  }
   473  
   474  func NewNodeSearchBuilder() *NodeSearchBuilder {
   475  	builder := &NodeSearchBuilder{}
   476  	return builder
   477  }
   478  
   479  // node的唯一标识
   480  //
   481  // 示例值:wikbcIbccBl4Mik9GQ2KskO6hsf
   482  func (builder *NodeSearchBuilder) NodeId(nodeId string) *NodeSearchBuilder {
   483  	builder.nodeId = nodeId
   484  	builder.nodeIdFlag = true
   485  	return builder
   486  }
   487  
   488  // 所属空间id
   489  //
   490  // 示例值:7067522558521770004
   491  func (builder *NodeSearchBuilder) SpaceId(spaceId string) *NodeSearchBuilder {
   492  	builder.spaceId = spaceId
   493  	builder.spaceIdFlag = true
   494  	return builder
   495  }
   496  
   497  // 父节点id
   498  //
   499  // 示例值:
   500  func (builder *NodeSearchBuilder) ParentId(parentId string) *NodeSearchBuilder {
   501  	builder.parentId = parentId
   502  	builder.parentIdFlag = true
   503  	return builder
   504  }
   505  
   506  // wiki类型
   507  //
   508  // 示例值:1
   509  func (builder *NodeSearchBuilder) ObjType(objType int) *NodeSearchBuilder {
   510  	builder.objType = objType
   511  	builder.objTypeFlag = true
   512  	return builder
   513  }
   514  
   515  // wiki标题
   516  //
   517  // 示例值:文档标题
   518  func (builder *NodeSearchBuilder) Title(title string) *NodeSearchBuilder {
   519  	builder.title = title
   520  	builder.titleFlag = true
   521  	return builder
   522  }
   523  
   524  // wiki的访问url
   525  //
   526  // 示例值:https://single-container.feishu.cn/wiki/wikbcPkzIoLp52Dh2Pj3nQaYPFO
   527  func (builder *NodeSearchBuilder) Url(url string) *NodeSearchBuilder {
   528  	builder.url = url
   529  	builder.urlFlag = true
   530  	return builder
   531  }
   532  
   533  // wiki对应图标的url
   534  //
   535  // 示例值:
   536  func (builder *NodeSearchBuilder) Icon(icon string) *NodeSearchBuilder {
   537  	builder.icon = icon
   538  	builder.iconFlag = true
   539  	return builder
   540  }
   541  
   542  // 所属权限范围id
   543  //
   544  // 示例值:
   545  func (builder *NodeSearchBuilder) AreaId(areaId string) *NodeSearchBuilder {
   546  	builder.areaId = areaId
   547  	builder.areaIdFlag = true
   548  	return builder
   549  }
   550  
   551  // 序号
   552  //
   553  // 示例值:1
   554  func (builder *NodeSearchBuilder) SortId(sortId float64) *NodeSearchBuilder {
   555  	builder.sortId = sortId
   556  	builder.sortIdFlag = true
   557  	return builder
   558  }
   559  
   560  // 所在域名
   561  //
   562  // 示例值:
   563  func (builder *NodeSearchBuilder) Domain(domain string) *NodeSearchBuilder {
   564  	builder.domain = domain
   565  	builder.domainFlag = true
   566  	return builder
   567  }
   568  
   569  // objToken
   570  //
   571  // 示例值:doxbcBBOM3vQxO5NztUhKpTBNQd
   572  func (builder *NodeSearchBuilder) ObjToken(objToken string) *NodeSearchBuilder {
   573  	builder.objToken = objToken
   574  	builder.objTokenFlag = true
   575  	return builder
   576  }
   577  
   578  func (builder *NodeSearchBuilder) Build() *NodeSearch {
   579  	req := &NodeSearch{}
   580  	if builder.nodeIdFlag {
   581  		req.NodeId = &builder.nodeId
   582  
   583  	}
   584  	if builder.spaceIdFlag {
   585  		req.SpaceId = &builder.spaceId
   586  
   587  	}
   588  	if builder.parentIdFlag {
   589  		req.ParentId = &builder.parentId
   590  
   591  	}
   592  	if builder.objTypeFlag {
   593  		req.ObjType = &builder.objType
   594  
   595  	}
   596  	if builder.titleFlag {
   597  		req.Title = &builder.title
   598  
   599  	}
   600  	if builder.urlFlag {
   601  		req.Url = &builder.url
   602  
   603  	}
   604  	if builder.iconFlag {
   605  		req.Icon = &builder.icon
   606  
   607  	}
   608  	if builder.areaIdFlag {
   609  		req.AreaId = &builder.areaId
   610  
   611  	}
   612  	if builder.sortIdFlag {
   613  		req.SortId = &builder.sortId
   614  
   615  	}
   616  	if builder.domainFlag {
   617  		req.Domain = &builder.domain
   618  
   619  	}
   620  	if builder.objTokenFlag {
   621  		req.ObjToken = &builder.objToken
   622  
   623  	}
   624  	return req
   625  }
   626  
   627  type Setting struct {
   628  	CreateSetting   *string `json:"create_setting,omitempty"`   // 谁可以创建空间的一级页面: "admin_and_member" = 管理员和成员 "admin"  - 仅管理员
   629  	SecuritySetting *string `json:"security_setting,omitempty"` // 可阅读用户可否创建副本/打印/导出/复制: "allow" - 允许 "not_allow" - 不允许
   630  	CommentSetting  *string `json:"comment_setting,omitempty"`  // 可阅读用户可否评论: "allow" - 允许 "not_allow" - 不允许
   631  }
   632  
   633  type SettingBuilder struct {
   634  	createSetting       string // 谁可以创建空间的一级页面: "admin_and_member" = 管理员和成员 "admin"  - 仅管理员
   635  	createSettingFlag   bool
   636  	securitySetting     string // 可阅读用户可否创建副本/打印/导出/复制: "allow" - 允许 "not_allow" - 不允许
   637  	securitySettingFlag bool
   638  	commentSetting      string // 可阅读用户可否评论: "allow" - 允许 "not_allow" - 不允许
   639  	commentSettingFlag  bool
   640  }
   641  
   642  func NewSettingBuilder() *SettingBuilder {
   643  	builder := &SettingBuilder{}
   644  	return builder
   645  }
   646  
   647  // 谁可以创建空间的一级页面: "admin_and_member" = 管理员和成员 "admin"  - 仅管理员
   648  //
   649  // 示例值:admin/admin_and_member
   650  func (builder *SettingBuilder) CreateSetting(createSetting string) *SettingBuilder {
   651  	builder.createSetting = createSetting
   652  	builder.createSettingFlag = true
   653  	return builder
   654  }
   655  
   656  // 可阅读用户可否创建副本/打印/导出/复制: "allow" - 允许 "not_allow" - 不允许
   657  //
   658  // 示例值:allow/not_allow
   659  func (builder *SettingBuilder) SecuritySetting(securitySetting string) *SettingBuilder {
   660  	builder.securitySetting = securitySetting
   661  	builder.securitySettingFlag = true
   662  	return builder
   663  }
   664  
   665  // 可阅读用户可否评论: "allow" - 允许 "not_allow" - 不允许
   666  //
   667  // 示例值:allow/not_allow
   668  func (builder *SettingBuilder) CommentSetting(commentSetting string) *SettingBuilder {
   669  	builder.commentSetting = commentSetting
   670  	builder.commentSettingFlag = true
   671  	return builder
   672  }
   673  
   674  func (builder *SettingBuilder) Build() *Setting {
   675  	req := &Setting{}
   676  	if builder.createSettingFlag {
   677  		req.CreateSetting = &builder.createSetting
   678  
   679  	}
   680  	if builder.securitySettingFlag {
   681  		req.SecuritySetting = &builder.securitySetting
   682  
   683  	}
   684  	if builder.commentSettingFlag {
   685  		req.CommentSetting = &builder.commentSetting
   686  
   687  	}
   688  	return req
   689  }
   690  
   691  type Space struct {
   692  	Name        *string `json:"name,omitempty"`        // 知识空间名称
   693  	Description *string `json:"description,omitempty"` // 知识空间描述
   694  	SpaceId     *string `json:"space_id,omitempty"`    // 知识空间id
   695  	SpaceType   *string `json:"space_type,omitempty"`  // 表示知识空间类型(团队空间 或 个人空间)
   696  	Visibility  *string `json:"visibility,omitempty"`  // 表示知识空间可见性(公开空间 或 私有空间)
   697  }
   698  
   699  type SpaceBuilder struct {
   700  	name            string // 知识空间名称
   701  	nameFlag        bool
   702  	description     string // 知识空间描述
   703  	descriptionFlag bool
   704  	spaceId         string // 知识空间id
   705  	spaceIdFlag     bool
   706  	spaceType       string // 表示知识空间类型(团队空间 或 个人空间)
   707  	spaceTypeFlag   bool
   708  	visibility      string // 表示知识空间可见性(公开空间 或 私有空间)
   709  	visibilityFlag  bool
   710  }
   711  
   712  func NewSpaceBuilder() *SpaceBuilder {
   713  	builder := &SpaceBuilder{}
   714  	return builder
   715  }
   716  
   717  // 知识空间名称
   718  //
   719  // 示例值:知识空间
   720  func (builder *SpaceBuilder) Name(name string) *SpaceBuilder {
   721  	builder.name = name
   722  	builder.nameFlag = true
   723  	return builder
   724  }
   725  
   726  // 知识空间描述
   727  //
   728  // 示例值:知识空间描述
   729  func (builder *SpaceBuilder) Description(description string) *SpaceBuilder {
   730  	builder.description = description
   731  	builder.descriptionFlag = true
   732  	return builder
   733  }
   734  
   735  // 知识空间id
   736  //
   737  // 示例值:1565676577122621
   738  func (builder *SpaceBuilder) SpaceId(spaceId string) *SpaceBuilder {
   739  	builder.spaceId = spaceId
   740  	builder.spaceIdFlag = true
   741  	return builder
   742  }
   743  
   744  // 表示知识空间类型(团队空间 或 个人空间)
   745  //
   746  // 示例值:team
   747  func (builder *SpaceBuilder) SpaceType(spaceType string) *SpaceBuilder {
   748  	builder.spaceType = spaceType
   749  	builder.spaceTypeFlag = true
   750  	return builder
   751  }
   752  
   753  // 表示知识空间可见性(公开空间 或 私有空间)
   754  //
   755  // 示例值:private
   756  func (builder *SpaceBuilder) Visibility(visibility string) *SpaceBuilder {
   757  	builder.visibility = visibility
   758  	builder.visibilityFlag = true
   759  	return builder
   760  }
   761  
   762  func (builder *SpaceBuilder) Build() *Space {
   763  	req := &Space{}
   764  	if builder.nameFlag {
   765  		req.Name = &builder.name
   766  
   767  	}
   768  	if builder.descriptionFlag {
   769  		req.Description = &builder.description
   770  
   771  	}
   772  	if builder.spaceIdFlag {
   773  		req.SpaceId = &builder.spaceId
   774  
   775  	}
   776  	if builder.spaceTypeFlag {
   777  		req.SpaceType = &builder.spaceType
   778  
   779  	}
   780  	if builder.visibilityFlag {
   781  		req.Visibility = &builder.visibility
   782  
   783  	}
   784  	return req
   785  }
   786  
   787  type TaskResult struct {
   788  	TaskId     *string       `json:"task_id,omitempty"`     // 任务id
   789  	MoveResult []*MoveResult `json:"move_result,omitempty"` // MoveDocsToWiki任务结果
   790  }
   791  
   792  type TaskResultBuilder struct {
   793  	taskId         string // 任务id
   794  	taskIdFlag     bool
   795  	moveResult     []*MoveResult // MoveDocsToWiki任务结果
   796  	moveResultFlag bool
   797  }
   798  
   799  func NewTaskResultBuilder() *TaskResultBuilder {
   800  	builder := &TaskResultBuilder{}
   801  	return builder
   802  }
   803  
   804  // 任务id
   805  //
   806  // 示例值:7037044037068177428-075c9481e6a0007c1df689dfbe5b55a08b6b06f7
   807  func (builder *TaskResultBuilder) TaskId(taskId string) *TaskResultBuilder {
   808  	builder.taskId = taskId
   809  	builder.taskIdFlag = true
   810  	return builder
   811  }
   812  
   813  // MoveDocsToWiki任务结果
   814  //
   815  // 示例值:
   816  func (builder *TaskResultBuilder) MoveResult(moveResult []*MoveResult) *TaskResultBuilder {
   817  	builder.moveResult = moveResult
   818  	builder.moveResultFlag = true
   819  	return builder
   820  }
   821  
   822  func (builder *TaskResultBuilder) Build() *TaskResult {
   823  	req := &TaskResult{}
   824  	if builder.taskIdFlag {
   825  		req.TaskId = &builder.taskId
   826  
   827  	}
   828  	if builder.moveResultFlag {
   829  		req.MoveResult = builder.moveResult
   830  	}
   831  	return req
   832  }
   833  
   834  type CreateSpaceReqBuilder struct {
   835  	apiReq *larkcore.ApiReq
   836  	space  *Space
   837  }
   838  
   839  func NewCreateSpaceReqBuilder() *CreateSpaceReqBuilder {
   840  	builder := &CreateSpaceReqBuilder{}
   841  	builder.apiReq = &larkcore.ApiReq{
   842  		PathParams:  larkcore.PathParams{},
   843  		QueryParams: larkcore.QueryParams{},
   844  	}
   845  	return builder
   846  }
   847  
   848  // 此接口用于创建知识空间
   849  func (builder *CreateSpaceReqBuilder) Space(space *Space) *CreateSpaceReqBuilder {
   850  	builder.space = space
   851  	return builder
   852  }
   853  
   854  func (builder *CreateSpaceReqBuilder) Build() *CreateSpaceReq {
   855  	req := &CreateSpaceReq{}
   856  	req.apiReq = &larkcore.ApiReq{}
   857  	req.apiReq.Body = builder.space
   858  	return req
   859  }
   860  
   861  type CreateSpaceReq struct {
   862  	apiReq *larkcore.ApiReq
   863  	Space  *Space `body:""`
   864  }
   865  
   866  type CreateSpaceRespData struct {
   867  	Space *Space `json:"space,omitempty"` // 知识空间
   868  }
   869  
   870  type CreateSpaceResp struct {
   871  	*larkcore.ApiResp `json:"-"`
   872  	larkcore.CodeError
   873  	Data *CreateSpaceRespData `json:"data"` // 业务数据
   874  }
   875  
   876  func (resp *CreateSpaceResp) Success() bool {
   877  	return resp.Code == 0
   878  }
   879  
   880  type GetSpaceReqBuilder struct {
   881  	apiReq *larkcore.ApiReq
   882  }
   883  
   884  func NewGetSpaceReqBuilder() *GetSpaceReqBuilder {
   885  	builder := &GetSpaceReqBuilder{}
   886  	builder.apiReq = &larkcore.ApiReq{
   887  		PathParams:  larkcore.PathParams{},
   888  		QueryParams: larkcore.QueryParams{},
   889  	}
   890  	return builder
   891  }
   892  
   893  // 知识空间id
   894  //
   895  // 示例值:6870403571079249922
   896  func (builder *GetSpaceReqBuilder) SpaceId(spaceId string) *GetSpaceReqBuilder {
   897  	builder.apiReq.PathParams.Set("space_id", fmt.Sprint(spaceId))
   898  	return builder
   899  }
   900  
   901  func (builder *GetSpaceReqBuilder) Build() *GetSpaceReq {
   902  	req := &GetSpaceReq{}
   903  	req.apiReq = &larkcore.ApiReq{}
   904  	req.apiReq.PathParams = builder.apiReq.PathParams
   905  	return req
   906  }
   907  
   908  type GetSpaceReq struct {
   909  	apiReq *larkcore.ApiReq
   910  }
   911  
   912  type GetSpaceRespData struct {
   913  	Space *Space `json:"space,omitempty"` // 知识空间
   914  }
   915  
   916  type GetSpaceResp struct {
   917  	*larkcore.ApiResp `json:"-"`
   918  	larkcore.CodeError
   919  	Data *GetSpaceRespData `json:"data"` // 业务数据
   920  }
   921  
   922  func (resp *GetSpaceResp) Success() bool {
   923  	return resp.Code == 0
   924  }
   925  
   926  type GetNodeSpaceReqBuilder struct {
   927  	apiReq *larkcore.ApiReq
   928  }
   929  
   930  func NewGetNodeSpaceReqBuilder() *GetNodeSpaceReqBuilder {
   931  	builder := &GetNodeSpaceReqBuilder{}
   932  	builder.apiReq = &larkcore.ApiReq{
   933  		PathParams:  larkcore.PathParams{},
   934  		QueryParams: larkcore.QueryParams{},
   935  	}
   936  	return builder
   937  }
   938  
   939  // 文档的wiki token
   940  //
   941  // 示例值:wikcnKQ1k3pcuo5uSK4t8VN6kVf
   942  func (builder *GetNodeSpaceReqBuilder) Token(token string) *GetNodeSpaceReqBuilder {
   943  	builder.apiReq.QueryParams.Set("token", fmt.Sprint(token))
   944  	return builder
   945  }
   946  
   947  func (builder *GetNodeSpaceReqBuilder) Build() *GetNodeSpaceReq {
   948  	req := &GetNodeSpaceReq{}
   949  	req.apiReq = &larkcore.ApiReq{}
   950  	req.apiReq.QueryParams = builder.apiReq.QueryParams
   951  	return req
   952  }
   953  
   954  type GetNodeSpaceReq struct {
   955  	apiReq *larkcore.ApiReq
   956  }
   957  
   958  type GetNodeSpaceRespData struct {
   959  	Node *Node `json:"node,omitempty"` // 节点信息
   960  }
   961  
   962  type GetNodeSpaceResp struct {
   963  	*larkcore.ApiResp `json:"-"`
   964  	larkcore.CodeError
   965  	Data *GetNodeSpaceRespData `json:"data"` // 业务数据
   966  }
   967  
   968  func (resp *GetNodeSpaceResp) Success() bool {
   969  	return resp.Code == 0
   970  }
   971  
   972  type ListSpaceReqBuilder struct {
   973  	apiReq *larkcore.ApiReq
   974  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
   975  }
   976  
   977  func NewListSpaceReqBuilder() *ListSpaceReqBuilder {
   978  	builder := &ListSpaceReqBuilder{}
   979  	builder.apiReq = &larkcore.ApiReq{
   980  		PathParams:  larkcore.PathParams{},
   981  		QueryParams: larkcore.QueryParams{},
   982  	}
   983  	return builder
   984  }
   985  
   986  // 最大返回多少记录,当使用迭代器访问时才有效
   987  func (builder *ListSpaceReqBuilder) Limit(limit int) *ListSpaceReqBuilder {
   988  	builder.limit = limit
   989  	return builder
   990  }
   991  
   992  // 分页大小
   993  //
   994  // 示例值:10
   995  func (builder *ListSpaceReqBuilder) PageSize(pageSize int) *ListSpaceReqBuilder {
   996  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
   997  	return builder
   998  }
   999  
  1000  // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果
  1001  //
  1002  // 示例值:1565676577122621
  1003  func (builder *ListSpaceReqBuilder) PageToken(pageToken string) *ListSpaceReqBuilder {
  1004  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  1005  	return builder
  1006  }
  1007  
  1008  func (builder *ListSpaceReqBuilder) Build() *ListSpaceReq {
  1009  	req := &ListSpaceReq{}
  1010  	req.apiReq = &larkcore.ApiReq{}
  1011  	req.Limit = builder.limit
  1012  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  1013  	return req
  1014  }
  1015  
  1016  type ListSpaceReq struct {
  1017  	apiReq *larkcore.ApiReq
  1018  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
  1019  
  1020  }
  1021  
  1022  type ListSpaceRespData struct {
  1023  	Items     []*Space `json:"items,omitempty"`      // 数据列表
  1024  	PageToken *string  `json:"page_token,omitempty"` //
  1025  	HasMore   *bool    `json:"has_more,omitempty"`   //
  1026  }
  1027  
  1028  type ListSpaceResp struct {
  1029  	*larkcore.ApiResp `json:"-"`
  1030  	larkcore.CodeError
  1031  	Data *ListSpaceRespData `json:"data"` // 业务数据
  1032  }
  1033  
  1034  func (resp *ListSpaceResp) Success() bool {
  1035  	return resp.Code == 0
  1036  }
  1037  
  1038  type CreateSpaceMemberReqBuilder struct {
  1039  	apiReq *larkcore.ApiReq
  1040  	member *Member
  1041  }
  1042  
  1043  func NewCreateSpaceMemberReqBuilder() *CreateSpaceMemberReqBuilder {
  1044  	builder := &CreateSpaceMemberReqBuilder{}
  1045  	builder.apiReq = &larkcore.ApiReq{
  1046  		PathParams:  larkcore.PathParams{},
  1047  		QueryParams: larkcore.QueryParams{},
  1048  	}
  1049  	return builder
  1050  }
  1051  
  1052  // 知识空间id
  1053  //
  1054  // 示例值:1565676577122621
  1055  func (builder *CreateSpaceMemberReqBuilder) SpaceId(spaceId string) *CreateSpaceMemberReqBuilder {
  1056  	builder.apiReq.PathParams.Set("space_id", fmt.Sprint(spaceId))
  1057  	return builder
  1058  }
  1059  
  1060  // 添加权限后是否通知对方
  1061  //
  1062  // 示例值:true/fasle
  1063  func (builder *CreateSpaceMemberReqBuilder) NeedNotification(needNotification bool) *CreateSpaceMemberReqBuilder {
  1064  	builder.apiReq.QueryParams.Set("need_notification", fmt.Sprint(needNotification))
  1065  	return builder
  1066  }
  1067  
  1068  // 添加知识空间成员(管理员)。;;- 公开知识空间(visibility为public)对租户所有用户可见,因此不支持再添加成员,但可以添加管理员。;;  相关错误:131101 public wiki space can't create member.;- 个人知识空间 (type为person)为个人管理的知识空间,不支持添加其他管理员(包括应用/机器人)。但可以添加成员。;;  相关错误:131101 person wiki space can't create admin.
  1069  func (builder *CreateSpaceMemberReqBuilder) Member(member *Member) *CreateSpaceMemberReqBuilder {
  1070  	builder.member = member
  1071  	return builder
  1072  }
  1073  
  1074  func (builder *CreateSpaceMemberReqBuilder) Build() *CreateSpaceMemberReq {
  1075  	req := &CreateSpaceMemberReq{}
  1076  	req.apiReq = &larkcore.ApiReq{}
  1077  	req.apiReq.PathParams = builder.apiReq.PathParams
  1078  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  1079  	req.apiReq.Body = builder.member
  1080  	return req
  1081  }
  1082  
  1083  type CreateSpaceMemberReq struct {
  1084  	apiReq *larkcore.ApiReq
  1085  	Member *Member `body:""`
  1086  }
  1087  
  1088  type CreateSpaceMemberRespData struct {
  1089  	Member *Member `json:"member,omitempty"` // 知识空间成员
  1090  }
  1091  
  1092  type CreateSpaceMemberResp struct {
  1093  	*larkcore.ApiResp `json:"-"`
  1094  	larkcore.CodeError
  1095  	Data *CreateSpaceMemberRespData `json:"data"` // 业务数据
  1096  }
  1097  
  1098  func (resp *CreateSpaceMemberResp) Success() bool {
  1099  	return resp.Code == 0
  1100  }
  1101  
  1102  type DeleteSpaceMemberReqBuilder struct {
  1103  	apiReq *larkcore.ApiReq
  1104  	member *Member
  1105  }
  1106  
  1107  func NewDeleteSpaceMemberReqBuilder() *DeleteSpaceMemberReqBuilder {
  1108  	builder := &DeleteSpaceMemberReqBuilder{}
  1109  	builder.apiReq = &larkcore.ApiReq{
  1110  		PathParams:  larkcore.PathParams{},
  1111  		QueryParams: larkcore.QueryParams{},
  1112  	}
  1113  	return builder
  1114  }
  1115  
  1116  // 知识空间id
  1117  //
  1118  // 示例值:7008061636015554580
  1119  func (builder *DeleteSpaceMemberReqBuilder) SpaceId(spaceId string) *DeleteSpaceMemberReqBuilder {
  1120  	builder.apiReq.PathParams.Set("space_id", fmt.Sprint(spaceId))
  1121  	return builder
  1122  }
  1123  
  1124  // 成员id
  1125  //
  1126  // 示例值:g64fb7g7
  1127  func (builder *DeleteSpaceMemberReqBuilder) MemberId(memberId string) *DeleteSpaceMemberReqBuilder {
  1128  	builder.apiReq.PathParams.Set("member_id", fmt.Sprint(memberId))
  1129  	return builder
  1130  }
  1131  
  1132  // 此接口用于删除知识空间成员。;;- 公开知识空间(visibility为public)对租户所有用户可见,因此不支持再删除成员,但可以删除管理员。;;- 个人知识空间 (type为person)为个人管理的知识空间,不支持删除管理员。但可以删除成员。
  1133  func (builder *DeleteSpaceMemberReqBuilder) Member(member *Member) *DeleteSpaceMemberReqBuilder {
  1134  	builder.member = member
  1135  	return builder
  1136  }
  1137  
  1138  func (builder *DeleteSpaceMemberReqBuilder) Build() *DeleteSpaceMemberReq {
  1139  	req := &DeleteSpaceMemberReq{}
  1140  	req.apiReq = &larkcore.ApiReq{}
  1141  	req.apiReq.PathParams = builder.apiReq.PathParams
  1142  	req.apiReq.Body = builder.member
  1143  	return req
  1144  }
  1145  
  1146  type DeleteSpaceMemberReq struct {
  1147  	apiReq *larkcore.ApiReq
  1148  	Member *Member `body:""`
  1149  }
  1150  
  1151  type DeleteSpaceMemberRespData struct {
  1152  	Member *Member `json:"member,omitempty"` // 成员信息
  1153  }
  1154  
  1155  type DeleteSpaceMemberResp struct {
  1156  	*larkcore.ApiResp `json:"-"`
  1157  	larkcore.CodeError
  1158  	Data *DeleteSpaceMemberRespData `json:"data"` // 业务数据
  1159  }
  1160  
  1161  func (resp *DeleteSpaceMemberResp) Success() bool {
  1162  	return resp.Code == 0
  1163  }
  1164  
  1165  type CopySpaceNodeReqBodyBuilder struct {
  1166  	targetParentToken     string // 目标父节点token
  1167  	targetParentTokenFlag bool
  1168  	targetSpaceId         string // 目标知识空间id
  1169  	targetSpaceIdFlag     bool
  1170  	title                 string // 复制后的新标题。如果填空,则新标题为空。如果不填,则使用原节点标题。
  1171  	titleFlag             bool
  1172  }
  1173  
  1174  func NewCopySpaceNodeReqBodyBuilder() *CopySpaceNodeReqBodyBuilder {
  1175  	builder := &CopySpaceNodeReqBodyBuilder{}
  1176  	return builder
  1177  }
  1178  
  1179  // 目标父节点token
  1180  //
  1181  //示例值:wikcnKQ1k3pcuo5uSK4t8Vabcef
  1182  func (builder *CopySpaceNodeReqBodyBuilder) TargetParentToken(targetParentToken string) *CopySpaceNodeReqBodyBuilder {
  1183  	builder.targetParentToken = targetParentToken
  1184  	builder.targetParentTokenFlag = true
  1185  	return builder
  1186  }
  1187  
  1188  // 目标知识空间id
  1189  //
  1190  //示例值:6946843325487912356
  1191  func (builder *CopySpaceNodeReqBodyBuilder) TargetSpaceId(targetSpaceId string) *CopySpaceNodeReqBodyBuilder {
  1192  	builder.targetSpaceId = targetSpaceId
  1193  	builder.targetSpaceIdFlag = true
  1194  	return builder
  1195  }
  1196  
  1197  // 复制后的新标题。如果填空,则新标题为空。如果不填,则使用原节点标题。
  1198  //
  1199  //示例值:新标题
  1200  func (builder *CopySpaceNodeReqBodyBuilder) Title(title string) *CopySpaceNodeReqBodyBuilder {
  1201  	builder.title = title
  1202  	builder.titleFlag = true
  1203  	return builder
  1204  }
  1205  
  1206  func (builder *CopySpaceNodeReqBodyBuilder) Build() *CopySpaceNodeReqBody {
  1207  	req := &CopySpaceNodeReqBody{}
  1208  	if builder.targetParentTokenFlag {
  1209  		req.TargetParentToken = &builder.targetParentToken
  1210  	}
  1211  	if builder.targetSpaceIdFlag {
  1212  		req.TargetSpaceId = &builder.targetSpaceId
  1213  	}
  1214  	if builder.titleFlag {
  1215  		req.Title = &builder.title
  1216  	}
  1217  	return req
  1218  }
  1219  
  1220  type CopySpaceNodePathReqBodyBuilder struct {
  1221  	targetParentToken     string // 目标父节点token
  1222  	targetParentTokenFlag bool
  1223  	targetSpaceId         string // 目标知识空间id
  1224  	targetSpaceIdFlag     bool
  1225  	title                 string // 复制后的新标题。如果填空,则新标题为空。如果不填,则使用原节点标题。
  1226  	titleFlag             bool
  1227  }
  1228  
  1229  func NewCopySpaceNodePathReqBodyBuilder() *CopySpaceNodePathReqBodyBuilder {
  1230  	builder := &CopySpaceNodePathReqBodyBuilder{}
  1231  	return builder
  1232  }
  1233  
  1234  // 目标父节点token
  1235  //
  1236  // 示例值:wikcnKQ1k3pcuo5uSK4t8Vabcef
  1237  func (builder *CopySpaceNodePathReqBodyBuilder) TargetParentToken(targetParentToken string) *CopySpaceNodePathReqBodyBuilder {
  1238  	builder.targetParentToken = targetParentToken
  1239  	builder.targetParentTokenFlag = true
  1240  	return builder
  1241  }
  1242  
  1243  // 目标知识空间id
  1244  //
  1245  // 示例值:6946843325487912356
  1246  func (builder *CopySpaceNodePathReqBodyBuilder) TargetSpaceId(targetSpaceId string) *CopySpaceNodePathReqBodyBuilder {
  1247  	builder.targetSpaceId = targetSpaceId
  1248  	builder.targetSpaceIdFlag = true
  1249  	return builder
  1250  }
  1251  
  1252  // 复制后的新标题。如果填空,则新标题为空。如果不填,则使用原节点标题。
  1253  //
  1254  // 示例值:新标题
  1255  func (builder *CopySpaceNodePathReqBodyBuilder) Title(title string) *CopySpaceNodePathReqBodyBuilder {
  1256  	builder.title = title
  1257  	builder.titleFlag = true
  1258  	return builder
  1259  }
  1260  
  1261  func (builder *CopySpaceNodePathReqBodyBuilder) Build() (*CopySpaceNodeReqBody, error) {
  1262  	req := &CopySpaceNodeReqBody{}
  1263  	if builder.targetParentTokenFlag {
  1264  		req.TargetParentToken = &builder.targetParentToken
  1265  	}
  1266  	if builder.targetSpaceIdFlag {
  1267  		req.TargetSpaceId = &builder.targetSpaceId
  1268  	}
  1269  	if builder.titleFlag {
  1270  		req.Title = &builder.title
  1271  	}
  1272  	return req, nil
  1273  }
  1274  
  1275  type CopySpaceNodeReqBuilder struct {
  1276  	apiReq *larkcore.ApiReq
  1277  	body   *CopySpaceNodeReqBody
  1278  }
  1279  
  1280  func NewCopySpaceNodeReqBuilder() *CopySpaceNodeReqBuilder {
  1281  	builder := &CopySpaceNodeReqBuilder{}
  1282  	builder.apiReq = &larkcore.ApiReq{
  1283  		PathParams:  larkcore.PathParams{},
  1284  		QueryParams: larkcore.QueryParams{},
  1285  	}
  1286  	return builder
  1287  }
  1288  
  1289  // 知识空间id
  1290  //
  1291  // 示例值:6946843325487912356
  1292  func (builder *CopySpaceNodeReqBuilder) SpaceId(spaceId string) *CopySpaceNodeReqBuilder {
  1293  	builder.apiReq.PathParams.Set("space_id", fmt.Sprint(spaceId))
  1294  	return builder
  1295  }
  1296  
  1297  // 节点token
  1298  //
  1299  // 示例值:wikcnKQ1k3pcuo5uSK4t8Vabcef
  1300  func (builder *CopySpaceNodeReqBuilder) NodeToken(nodeToken string) *CopySpaceNodeReqBuilder {
  1301  	builder.apiReq.PathParams.Set("node_token", fmt.Sprint(nodeToken))
  1302  	return builder
  1303  }
  1304  
  1305  // 此接口用于创建节点副本到指定地点。
  1306  func (builder *CopySpaceNodeReqBuilder) Body(body *CopySpaceNodeReqBody) *CopySpaceNodeReqBuilder {
  1307  	builder.body = body
  1308  	return builder
  1309  }
  1310  
  1311  func (builder *CopySpaceNodeReqBuilder) Build() *CopySpaceNodeReq {
  1312  	req := &CopySpaceNodeReq{}
  1313  	req.apiReq = &larkcore.ApiReq{}
  1314  	req.apiReq.PathParams = builder.apiReq.PathParams
  1315  	req.apiReq.Body = builder.body
  1316  	return req
  1317  }
  1318  
  1319  type CopySpaceNodeReqBody struct {
  1320  	TargetParentToken *string `json:"target_parent_token,omitempty"` // 目标父节点token
  1321  	TargetSpaceId     *string `json:"target_space_id,omitempty"`     // 目标知识空间id
  1322  	Title             *string `json:"title,omitempty"`               // 复制后的新标题。如果填空,则新标题为空。如果不填,则使用原节点标题。
  1323  }
  1324  
  1325  type CopySpaceNodeReq struct {
  1326  	apiReq *larkcore.ApiReq
  1327  	Body   *CopySpaceNodeReqBody `body:""`
  1328  }
  1329  
  1330  type CopySpaceNodeRespData struct {
  1331  	Node *Node `json:"node,omitempty"` // copy后的节点
  1332  }
  1333  
  1334  type CopySpaceNodeResp struct {
  1335  	*larkcore.ApiResp `json:"-"`
  1336  	larkcore.CodeError
  1337  	Data *CopySpaceNodeRespData `json:"data"` // 业务数据
  1338  }
  1339  
  1340  func (resp *CopySpaceNodeResp) Success() bool {
  1341  	return resp.Code == 0
  1342  }
  1343  
  1344  type CreateSpaceNodeReqBuilder struct {
  1345  	apiReq *larkcore.ApiReq
  1346  	node   *Node
  1347  }
  1348  
  1349  func NewCreateSpaceNodeReqBuilder() *CreateSpaceNodeReqBuilder {
  1350  	builder := &CreateSpaceNodeReqBuilder{}
  1351  	builder.apiReq = &larkcore.ApiReq{
  1352  		PathParams:  larkcore.PathParams{},
  1353  		QueryParams: larkcore.QueryParams{},
  1354  	}
  1355  	return builder
  1356  }
  1357  
  1358  // 知识空间id
  1359  //
  1360  // 示例值:6704147935988285963
  1361  func (builder *CreateSpaceNodeReqBuilder) SpaceId(spaceId string) *CreateSpaceNodeReqBuilder {
  1362  	builder.apiReq.PathParams.Set("space_id", fmt.Sprint(spaceId))
  1363  	return builder
  1364  }
  1365  
  1366  // 此接口用于在知识库里创建节点。
  1367  func (builder *CreateSpaceNodeReqBuilder) Node(node *Node) *CreateSpaceNodeReqBuilder {
  1368  	builder.node = node
  1369  	return builder
  1370  }
  1371  
  1372  func (builder *CreateSpaceNodeReqBuilder) Build() *CreateSpaceNodeReq {
  1373  	req := &CreateSpaceNodeReq{}
  1374  	req.apiReq = &larkcore.ApiReq{}
  1375  	req.apiReq.PathParams = builder.apiReq.PathParams
  1376  	req.apiReq.Body = builder.node
  1377  	return req
  1378  }
  1379  
  1380  type CreateSpaceNodeReq struct {
  1381  	apiReq *larkcore.ApiReq
  1382  	Node   *Node `body:""`
  1383  }
  1384  
  1385  type CreateSpaceNodeRespData struct {
  1386  	Node *Node `json:"node,omitempty"` // 节点
  1387  }
  1388  
  1389  type CreateSpaceNodeResp struct {
  1390  	*larkcore.ApiResp `json:"-"`
  1391  	larkcore.CodeError
  1392  	Data *CreateSpaceNodeRespData `json:"data"` // 业务数据
  1393  }
  1394  
  1395  func (resp *CreateSpaceNodeResp) Success() bool {
  1396  	return resp.Code == 0
  1397  }
  1398  
  1399  type ListSpaceNodeReqBuilder struct {
  1400  	apiReq *larkcore.ApiReq
  1401  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  1402  }
  1403  
  1404  func NewListSpaceNodeReqBuilder() *ListSpaceNodeReqBuilder {
  1405  	builder := &ListSpaceNodeReqBuilder{}
  1406  	builder.apiReq = &larkcore.ApiReq{
  1407  		PathParams:  larkcore.PathParams{},
  1408  		QueryParams: larkcore.QueryParams{},
  1409  	}
  1410  	return builder
  1411  }
  1412  
  1413  // 最大返回多少记录,当使用迭代器访问时才有效
  1414  func (builder *ListSpaceNodeReqBuilder) Limit(limit int) *ListSpaceNodeReqBuilder {
  1415  	builder.limit = limit
  1416  	return builder
  1417  }
  1418  
  1419  // 知识空间id
  1420  //
  1421  // 示例值:6946843325487906839
  1422  func (builder *ListSpaceNodeReqBuilder) SpaceId(spaceId string) *ListSpaceNodeReqBuilder {
  1423  	builder.apiReq.PathParams.Set("space_id", fmt.Sprint(spaceId))
  1424  	return builder
  1425  }
  1426  
  1427  // 分页大小
  1428  //
  1429  // 示例值:10
  1430  func (builder *ListSpaceNodeReqBuilder) PageSize(pageSize int) *ListSpaceNodeReqBuilder {
  1431  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  1432  	return builder
  1433  }
  1434  
  1435  // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果
  1436  //
  1437  // 示例值:6946843325487456878
  1438  func (builder *ListSpaceNodeReqBuilder) PageToken(pageToken string) *ListSpaceNodeReqBuilder {
  1439  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  1440  	return builder
  1441  }
  1442  
  1443  // 父节点token
  1444  //
  1445  // 示例值:wikcnKQ1k3pcuo5uSK4t8VN6kVf
  1446  func (builder *ListSpaceNodeReqBuilder) ParentNodeToken(parentNodeToken string) *ListSpaceNodeReqBuilder {
  1447  	builder.apiReq.QueryParams.Set("parent_node_token", fmt.Sprint(parentNodeToken))
  1448  	return builder
  1449  }
  1450  
  1451  func (builder *ListSpaceNodeReqBuilder) Build() *ListSpaceNodeReq {
  1452  	req := &ListSpaceNodeReq{}
  1453  	req.apiReq = &larkcore.ApiReq{}
  1454  	req.Limit = builder.limit
  1455  	req.apiReq.PathParams = builder.apiReq.PathParams
  1456  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  1457  	return req
  1458  }
  1459  
  1460  type ListSpaceNodeReq struct {
  1461  	apiReq *larkcore.ApiReq
  1462  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
  1463  
  1464  }
  1465  
  1466  type ListSpaceNodeRespData struct {
  1467  	Items     []*Node `json:"items,omitempty"`      // 数据列表
  1468  	PageToken *string `json:"page_token,omitempty"` //
  1469  	HasMore   *bool   `json:"has_more,omitempty"`   //
  1470  }
  1471  
  1472  type ListSpaceNodeResp struct {
  1473  	*larkcore.ApiResp `json:"-"`
  1474  	larkcore.CodeError
  1475  	Data *ListSpaceNodeRespData `json:"data"` // 业务数据
  1476  }
  1477  
  1478  func (resp *ListSpaceNodeResp) Success() bool {
  1479  	return resp.Code == 0
  1480  }
  1481  
  1482  type MoveSpaceNodeReqBodyBuilder struct {
  1483  	targetParentToken     string // 移动到的父节点token
  1484  	targetParentTokenFlag bool
  1485  	targetSpaceId         string // 移动到的知识空间ID
  1486  	targetSpaceIdFlag     bool
  1487  }
  1488  
  1489  func NewMoveSpaceNodeReqBodyBuilder() *MoveSpaceNodeReqBodyBuilder {
  1490  	builder := &MoveSpaceNodeReqBodyBuilder{}
  1491  	return builder
  1492  }
  1493  
  1494  // 移动到的父节点token
  1495  //
  1496  //示例值:wikbcd6ydSUyOEzbdlt1BfpA5Yc
  1497  func (builder *MoveSpaceNodeReqBodyBuilder) TargetParentToken(targetParentToken string) *MoveSpaceNodeReqBodyBuilder {
  1498  	builder.targetParentToken = targetParentToken
  1499  	builder.targetParentTokenFlag = true
  1500  	return builder
  1501  }
  1502  
  1503  // 移动到的知识空间ID
  1504  //
  1505  //示例值:
  1506  func (builder *MoveSpaceNodeReqBodyBuilder) TargetSpaceId(targetSpaceId string) *MoveSpaceNodeReqBodyBuilder {
  1507  	builder.targetSpaceId = targetSpaceId
  1508  	builder.targetSpaceIdFlag = true
  1509  	return builder
  1510  }
  1511  
  1512  func (builder *MoveSpaceNodeReqBodyBuilder) Build() *MoveSpaceNodeReqBody {
  1513  	req := &MoveSpaceNodeReqBody{}
  1514  	if builder.targetParentTokenFlag {
  1515  		req.TargetParentToken = &builder.targetParentToken
  1516  	}
  1517  	if builder.targetSpaceIdFlag {
  1518  		req.TargetSpaceId = &builder.targetSpaceId
  1519  	}
  1520  	return req
  1521  }
  1522  
  1523  type MoveSpaceNodePathReqBodyBuilder struct {
  1524  	targetParentToken     string // 移动到的父节点token
  1525  	targetParentTokenFlag bool
  1526  	targetSpaceId         string // 移动到的知识空间ID
  1527  	targetSpaceIdFlag     bool
  1528  }
  1529  
  1530  func NewMoveSpaceNodePathReqBodyBuilder() *MoveSpaceNodePathReqBodyBuilder {
  1531  	builder := &MoveSpaceNodePathReqBodyBuilder{}
  1532  	return builder
  1533  }
  1534  
  1535  // 移动到的父节点token
  1536  //
  1537  // 示例值:wikbcd6ydSUyOEzbdlt1BfpA5Yc
  1538  func (builder *MoveSpaceNodePathReqBodyBuilder) TargetParentToken(targetParentToken string) *MoveSpaceNodePathReqBodyBuilder {
  1539  	builder.targetParentToken = targetParentToken
  1540  	builder.targetParentTokenFlag = true
  1541  	return builder
  1542  }
  1543  
  1544  // 移动到的知识空间ID
  1545  //
  1546  // 示例值:
  1547  func (builder *MoveSpaceNodePathReqBodyBuilder) TargetSpaceId(targetSpaceId string) *MoveSpaceNodePathReqBodyBuilder {
  1548  	builder.targetSpaceId = targetSpaceId
  1549  	builder.targetSpaceIdFlag = true
  1550  	return builder
  1551  }
  1552  
  1553  func (builder *MoveSpaceNodePathReqBodyBuilder) Build() (*MoveSpaceNodeReqBody, error) {
  1554  	req := &MoveSpaceNodeReqBody{}
  1555  	if builder.targetParentTokenFlag {
  1556  		req.TargetParentToken = &builder.targetParentToken
  1557  	}
  1558  	if builder.targetSpaceIdFlag {
  1559  		req.TargetSpaceId = &builder.targetSpaceId
  1560  	}
  1561  	return req, nil
  1562  }
  1563  
  1564  type MoveSpaceNodeReqBuilder struct {
  1565  	apiReq *larkcore.ApiReq
  1566  	body   *MoveSpaceNodeReqBody
  1567  }
  1568  
  1569  func NewMoveSpaceNodeReqBuilder() *MoveSpaceNodeReqBuilder {
  1570  	builder := &MoveSpaceNodeReqBuilder{}
  1571  	builder.apiReq = &larkcore.ApiReq{
  1572  		PathParams:  larkcore.PathParams{},
  1573  		QueryParams: larkcore.QueryParams{},
  1574  	}
  1575  	return builder
  1576  }
  1577  
  1578  // 知识空间id
  1579  //
  1580  // 示例值:7008061636015554580
  1581  func (builder *MoveSpaceNodeReqBuilder) SpaceId(spaceId string) *MoveSpaceNodeReqBuilder {
  1582  	builder.apiReq.PathParams.Set("space_id", fmt.Sprint(spaceId))
  1583  	return builder
  1584  }
  1585  
  1586  // 需要迁移的节点token
  1587  //
  1588  // 示例值:wikbcd6ydSUyOEzbdlt1BfpA5Yc
  1589  func (builder *MoveSpaceNodeReqBuilder) NodeToken(nodeToken string) *MoveSpaceNodeReqBuilder {
  1590  	builder.apiReq.PathParams.Set("node_token", fmt.Sprint(nodeToken))
  1591  	return builder
  1592  }
  1593  
  1594  // 此方法用于在Wiki内移动节点,支持跨知识空间移动。如果有子节点,会携带子节点一起移动。
  1595  func (builder *MoveSpaceNodeReqBuilder) Body(body *MoveSpaceNodeReqBody) *MoveSpaceNodeReqBuilder {
  1596  	builder.body = body
  1597  	return builder
  1598  }
  1599  
  1600  func (builder *MoveSpaceNodeReqBuilder) Build() *MoveSpaceNodeReq {
  1601  	req := &MoveSpaceNodeReq{}
  1602  	req.apiReq = &larkcore.ApiReq{}
  1603  	req.apiReq.PathParams = builder.apiReq.PathParams
  1604  	req.apiReq.Body = builder.body
  1605  	return req
  1606  }
  1607  
  1608  type MoveSpaceNodeReqBody struct {
  1609  	TargetParentToken *string `json:"target_parent_token,omitempty"` // 移动到的父节点token
  1610  	TargetSpaceId     *string `json:"target_space_id,omitempty"`     // 移动到的知识空间ID
  1611  }
  1612  
  1613  type MoveSpaceNodeReq struct {
  1614  	apiReq *larkcore.ApiReq
  1615  	Body   *MoveSpaceNodeReqBody `body:""`
  1616  }
  1617  
  1618  type MoveSpaceNodeRespData struct {
  1619  	Node *Node `json:"node,omitempty"` // 移动后的节点信息
  1620  }
  1621  
  1622  type MoveSpaceNodeResp struct {
  1623  	*larkcore.ApiResp `json:"-"`
  1624  	larkcore.CodeError
  1625  	Data *MoveSpaceNodeRespData `json:"data"` // 业务数据
  1626  }
  1627  
  1628  func (resp *MoveSpaceNodeResp) Success() bool {
  1629  	return resp.Code == 0
  1630  }
  1631  
  1632  type MoveDocsToWikiSpaceNodeReqBodyBuilder struct {
  1633  	parentWikiToken     string // 节点的父亲token
  1634  	parentWikiTokenFlag bool
  1635  	objType             string // 文档类型
  1636  	objTypeFlag         bool
  1637  	objToken            string // 文档token
  1638  	objTokenFlag        bool
  1639  	apply               bool // 没有权限时,是否申请迁入文档
  1640  	applyFlag           bool
  1641  }
  1642  
  1643  func NewMoveDocsToWikiSpaceNodeReqBodyBuilder() *MoveDocsToWikiSpaceNodeReqBodyBuilder {
  1644  	builder := &MoveDocsToWikiSpaceNodeReqBodyBuilder{}
  1645  	return builder
  1646  }
  1647  
  1648  // 节点的父亲token
  1649  //
  1650  //示例值:wikbcOHIFxB0PJS2UTd2kF2SP6c
  1651  func (builder *MoveDocsToWikiSpaceNodeReqBodyBuilder) ParentWikiToken(parentWikiToken string) *MoveDocsToWikiSpaceNodeReqBodyBuilder {
  1652  	builder.parentWikiToken = parentWikiToken
  1653  	builder.parentWikiTokenFlag = true
  1654  	return builder
  1655  }
  1656  
  1657  // 文档类型
  1658  //
  1659  //示例值:doc
  1660  func (builder *MoveDocsToWikiSpaceNodeReqBodyBuilder) ObjType(objType string) *MoveDocsToWikiSpaceNodeReqBodyBuilder {
  1661  	builder.objType = objType
  1662  	builder.objTypeFlag = true
  1663  	return builder
  1664  }
  1665  
  1666  // 文档token
  1667  //
  1668  //示例值:docbc6e1qBqt1O5mCBVA1QUKVEg
  1669  func (builder *MoveDocsToWikiSpaceNodeReqBodyBuilder) ObjToken(objToken string) *MoveDocsToWikiSpaceNodeReqBodyBuilder {
  1670  	builder.objToken = objToken
  1671  	builder.objTokenFlag = true
  1672  	return builder
  1673  }
  1674  
  1675  // 没有权限时,是否申请迁入文档
  1676  //
  1677  //示例值:true
  1678  func (builder *MoveDocsToWikiSpaceNodeReqBodyBuilder) Apply(apply bool) *MoveDocsToWikiSpaceNodeReqBodyBuilder {
  1679  	builder.apply = apply
  1680  	builder.applyFlag = true
  1681  	return builder
  1682  }
  1683  
  1684  func (builder *MoveDocsToWikiSpaceNodeReqBodyBuilder) Build() *MoveDocsToWikiSpaceNodeReqBody {
  1685  	req := &MoveDocsToWikiSpaceNodeReqBody{}
  1686  	if builder.parentWikiTokenFlag {
  1687  		req.ParentWikiToken = &builder.parentWikiToken
  1688  	}
  1689  	if builder.objTypeFlag {
  1690  		req.ObjType = &builder.objType
  1691  	}
  1692  	if builder.objTokenFlag {
  1693  		req.ObjToken = &builder.objToken
  1694  	}
  1695  	if builder.applyFlag {
  1696  		req.Apply = &builder.apply
  1697  	}
  1698  	return req
  1699  }
  1700  
  1701  type MoveDocsToWikiSpaceNodePathReqBodyBuilder struct {
  1702  	parentWikiToken     string // 节点的父亲token
  1703  	parentWikiTokenFlag bool
  1704  	objType             string // 文档类型
  1705  	objTypeFlag         bool
  1706  	objToken            string // 文档token
  1707  	objTokenFlag        bool
  1708  	apply               bool // 没有权限时,是否申请迁入文档
  1709  	applyFlag           bool
  1710  }
  1711  
  1712  func NewMoveDocsToWikiSpaceNodePathReqBodyBuilder() *MoveDocsToWikiSpaceNodePathReqBodyBuilder {
  1713  	builder := &MoveDocsToWikiSpaceNodePathReqBodyBuilder{}
  1714  	return builder
  1715  }
  1716  
  1717  // 节点的父亲token
  1718  //
  1719  // 示例值:wikbcOHIFxB0PJS2UTd2kF2SP6c
  1720  func (builder *MoveDocsToWikiSpaceNodePathReqBodyBuilder) ParentWikiToken(parentWikiToken string) *MoveDocsToWikiSpaceNodePathReqBodyBuilder {
  1721  	builder.parentWikiToken = parentWikiToken
  1722  	builder.parentWikiTokenFlag = true
  1723  	return builder
  1724  }
  1725  
  1726  // 文档类型
  1727  //
  1728  // 示例值:doc
  1729  func (builder *MoveDocsToWikiSpaceNodePathReqBodyBuilder) ObjType(objType string) *MoveDocsToWikiSpaceNodePathReqBodyBuilder {
  1730  	builder.objType = objType
  1731  	builder.objTypeFlag = true
  1732  	return builder
  1733  }
  1734  
  1735  // 文档token
  1736  //
  1737  // 示例值:docbc6e1qBqt1O5mCBVA1QUKVEg
  1738  func (builder *MoveDocsToWikiSpaceNodePathReqBodyBuilder) ObjToken(objToken string) *MoveDocsToWikiSpaceNodePathReqBodyBuilder {
  1739  	builder.objToken = objToken
  1740  	builder.objTokenFlag = true
  1741  	return builder
  1742  }
  1743  
  1744  // 没有权限时,是否申请迁入文档
  1745  //
  1746  // 示例值:true
  1747  func (builder *MoveDocsToWikiSpaceNodePathReqBodyBuilder) Apply(apply bool) *MoveDocsToWikiSpaceNodePathReqBodyBuilder {
  1748  	builder.apply = apply
  1749  	builder.applyFlag = true
  1750  	return builder
  1751  }
  1752  
  1753  func (builder *MoveDocsToWikiSpaceNodePathReqBodyBuilder) Build() (*MoveDocsToWikiSpaceNodeReqBody, error) {
  1754  	req := &MoveDocsToWikiSpaceNodeReqBody{}
  1755  	if builder.parentWikiTokenFlag {
  1756  		req.ParentWikiToken = &builder.parentWikiToken
  1757  	}
  1758  	if builder.objTypeFlag {
  1759  		req.ObjType = &builder.objType
  1760  	}
  1761  	if builder.objTokenFlag {
  1762  		req.ObjToken = &builder.objToken
  1763  	}
  1764  	if builder.applyFlag {
  1765  		req.Apply = &builder.apply
  1766  	}
  1767  	return req, nil
  1768  }
  1769  
  1770  type MoveDocsToWikiSpaceNodeReqBuilder struct {
  1771  	apiReq *larkcore.ApiReq
  1772  	body   *MoveDocsToWikiSpaceNodeReqBody
  1773  }
  1774  
  1775  func NewMoveDocsToWikiSpaceNodeReqBuilder() *MoveDocsToWikiSpaceNodeReqBuilder {
  1776  	builder := &MoveDocsToWikiSpaceNodeReqBuilder{}
  1777  	builder.apiReq = &larkcore.ApiReq{
  1778  		PathParams:  larkcore.PathParams{},
  1779  		QueryParams: larkcore.QueryParams{},
  1780  	}
  1781  	return builder
  1782  }
  1783  
  1784  // 知识库id
  1785  //
  1786  // 示例值:1565676577122621
  1787  func (builder *MoveDocsToWikiSpaceNodeReqBuilder) SpaceId(spaceId string) *MoveDocsToWikiSpaceNodeReqBuilder {
  1788  	builder.apiReq.PathParams.Set("space_id", fmt.Sprint(spaceId))
  1789  	return builder
  1790  }
  1791  
  1792  // 该接口允许添加已有云文档至知识库,并挂载在指定父页面下
  1793  func (builder *MoveDocsToWikiSpaceNodeReqBuilder) Body(body *MoveDocsToWikiSpaceNodeReqBody) *MoveDocsToWikiSpaceNodeReqBuilder {
  1794  	builder.body = body
  1795  	return builder
  1796  }
  1797  
  1798  func (builder *MoveDocsToWikiSpaceNodeReqBuilder) Build() *MoveDocsToWikiSpaceNodeReq {
  1799  	req := &MoveDocsToWikiSpaceNodeReq{}
  1800  	req.apiReq = &larkcore.ApiReq{}
  1801  	req.apiReq.PathParams = builder.apiReq.PathParams
  1802  	req.apiReq.Body = builder.body
  1803  	return req
  1804  }
  1805  
  1806  type MoveDocsToWikiSpaceNodeReqBody struct {
  1807  	ParentWikiToken *string `json:"parent_wiki_token,omitempty"` // 节点的父亲token
  1808  	ObjType         *string `json:"obj_type,omitempty"`          // 文档类型
  1809  	ObjToken        *string `json:"obj_token,omitempty"`         // 文档token
  1810  	Apply           *bool   `json:"apply,omitempty"`             // 没有权限时,是否申请迁入文档
  1811  }
  1812  
  1813  type MoveDocsToWikiSpaceNodeReq struct {
  1814  	apiReq *larkcore.ApiReq
  1815  	Body   *MoveDocsToWikiSpaceNodeReqBody `body:""`
  1816  }
  1817  
  1818  type MoveDocsToWikiSpaceNodeRespData struct {
  1819  	WikiToken *string `json:"wiki_token,omitempty"` // 移动后的知识库token
  1820  	TaskId    *string `json:"task_id,omitempty"`    // 任务id
  1821  	Applied   *bool   `json:"applied,omitempty"`    // 是否提交了文档迁入申请
  1822  }
  1823  
  1824  type MoveDocsToWikiSpaceNodeResp struct {
  1825  	*larkcore.ApiResp `json:"-"`
  1826  	larkcore.CodeError
  1827  	Data *MoveDocsToWikiSpaceNodeRespData `json:"data"` // 业务数据
  1828  }
  1829  
  1830  func (resp *MoveDocsToWikiSpaceNodeResp) Success() bool {
  1831  	return resp.Code == 0
  1832  }
  1833  
  1834  type UpdateTitleSpaceNodeReqBodyBuilder struct {
  1835  	title     string // 节点新标题
  1836  	titleFlag bool
  1837  }
  1838  
  1839  func NewUpdateTitleSpaceNodeReqBodyBuilder() *UpdateTitleSpaceNodeReqBodyBuilder {
  1840  	builder := &UpdateTitleSpaceNodeReqBodyBuilder{}
  1841  	return builder
  1842  }
  1843  
  1844  // 节点新标题
  1845  //
  1846  //示例值:新标题
  1847  func (builder *UpdateTitleSpaceNodeReqBodyBuilder) Title(title string) *UpdateTitleSpaceNodeReqBodyBuilder {
  1848  	builder.title = title
  1849  	builder.titleFlag = true
  1850  	return builder
  1851  }
  1852  
  1853  func (builder *UpdateTitleSpaceNodeReqBodyBuilder) Build() *UpdateTitleSpaceNodeReqBody {
  1854  	req := &UpdateTitleSpaceNodeReqBody{}
  1855  	if builder.titleFlag {
  1856  		req.Title = &builder.title
  1857  	}
  1858  	return req
  1859  }
  1860  
  1861  type UpdateTitleSpaceNodePathReqBodyBuilder struct {
  1862  	title     string // 节点新标题
  1863  	titleFlag bool
  1864  }
  1865  
  1866  func NewUpdateTitleSpaceNodePathReqBodyBuilder() *UpdateTitleSpaceNodePathReqBodyBuilder {
  1867  	builder := &UpdateTitleSpaceNodePathReqBodyBuilder{}
  1868  	return builder
  1869  }
  1870  
  1871  // 节点新标题
  1872  //
  1873  // 示例值:新标题
  1874  func (builder *UpdateTitleSpaceNodePathReqBodyBuilder) Title(title string) *UpdateTitleSpaceNodePathReqBodyBuilder {
  1875  	builder.title = title
  1876  	builder.titleFlag = true
  1877  	return builder
  1878  }
  1879  
  1880  func (builder *UpdateTitleSpaceNodePathReqBodyBuilder) Build() (*UpdateTitleSpaceNodeReqBody, error) {
  1881  	req := &UpdateTitleSpaceNodeReqBody{}
  1882  	if builder.titleFlag {
  1883  		req.Title = &builder.title
  1884  	}
  1885  	return req, nil
  1886  }
  1887  
  1888  type UpdateTitleSpaceNodeReqBuilder struct {
  1889  	apiReq *larkcore.ApiReq
  1890  	body   *UpdateTitleSpaceNodeReqBody
  1891  }
  1892  
  1893  func NewUpdateTitleSpaceNodeReqBuilder() *UpdateTitleSpaceNodeReqBuilder {
  1894  	builder := &UpdateTitleSpaceNodeReqBuilder{}
  1895  	builder.apiReq = &larkcore.ApiReq{
  1896  		PathParams:  larkcore.PathParams{},
  1897  		QueryParams: larkcore.QueryParams{},
  1898  	}
  1899  	return builder
  1900  }
  1901  
  1902  // 知识空间ID
  1903  //
  1904  // 示例值:6946843325487912356
  1905  func (builder *UpdateTitleSpaceNodeReqBuilder) SpaceId(spaceId string) *UpdateTitleSpaceNodeReqBuilder {
  1906  	builder.apiReq.PathParams.Set("space_id", fmt.Sprint(spaceId))
  1907  	return builder
  1908  }
  1909  
  1910  // 节点token
  1911  //
  1912  // 示例值:wikcnKQ1k3pcuo5uSK4t8Vabcef
  1913  func (builder *UpdateTitleSpaceNodeReqBuilder) NodeToken(nodeToken string) *UpdateTitleSpaceNodeReqBuilder {
  1914  	builder.apiReq.PathParams.Set("node_token", fmt.Sprint(nodeToken))
  1915  	return builder
  1916  }
  1917  
  1918  // 此接口用于更新节点标题
  1919  func (builder *UpdateTitleSpaceNodeReqBuilder) Body(body *UpdateTitleSpaceNodeReqBody) *UpdateTitleSpaceNodeReqBuilder {
  1920  	builder.body = body
  1921  	return builder
  1922  }
  1923  
  1924  func (builder *UpdateTitleSpaceNodeReqBuilder) Build() *UpdateTitleSpaceNodeReq {
  1925  	req := &UpdateTitleSpaceNodeReq{}
  1926  	req.apiReq = &larkcore.ApiReq{}
  1927  	req.apiReq.PathParams = builder.apiReq.PathParams
  1928  	req.apiReq.Body = builder.body
  1929  	return req
  1930  }
  1931  
  1932  type UpdateTitleSpaceNodeReqBody struct {
  1933  	Title *string `json:"title,omitempty"` // 节点新标题
  1934  }
  1935  
  1936  type UpdateTitleSpaceNodeReq struct {
  1937  	apiReq *larkcore.ApiReq
  1938  	Body   *UpdateTitleSpaceNodeReqBody `body:""`
  1939  }
  1940  
  1941  type UpdateTitleSpaceNodeResp struct {
  1942  	*larkcore.ApiResp `json:"-"`
  1943  	larkcore.CodeError
  1944  }
  1945  
  1946  func (resp *UpdateTitleSpaceNodeResp) Success() bool {
  1947  	return resp.Code == 0
  1948  }
  1949  
  1950  type UpdateSpaceSettingReqBuilder struct {
  1951  	apiReq  *larkcore.ApiReq
  1952  	setting *Setting
  1953  }
  1954  
  1955  func NewUpdateSpaceSettingReqBuilder() *UpdateSpaceSettingReqBuilder {
  1956  	builder := &UpdateSpaceSettingReqBuilder{}
  1957  	builder.apiReq = &larkcore.ApiReq{
  1958  		PathParams:  larkcore.PathParams{},
  1959  		QueryParams: larkcore.QueryParams{},
  1960  	}
  1961  	return builder
  1962  }
  1963  
  1964  // 知识空间id
  1965  //
  1966  // 示例值:1565676577122621
  1967  func (builder *UpdateSpaceSettingReqBuilder) SpaceId(spaceId string) *UpdateSpaceSettingReqBuilder {
  1968  	builder.apiReq.PathParams.Set("space_id", fmt.Sprint(spaceId))
  1969  	return builder
  1970  }
  1971  
  1972  // 根据space_id更新知识空间公共设置
  1973  func (builder *UpdateSpaceSettingReqBuilder) Setting(setting *Setting) *UpdateSpaceSettingReqBuilder {
  1974  	builder.setting = setting
  1975  	return builder
  1976  }
  1977  
  1978  func (builder *UpdateSpaceSettingReqBuilder) Build() *UpdateSpaceSettingReq {
  1979  	req := &UpdateSpaceSettingReq{}
  1980  	req.apiReq = &larkcore.ApiReq{}
  1981  	req.apiReq.PathParams = builder.apiReq.PathParams
  1982  	req.apiReq.Body = builder.setting
  1983  	return req
  1984  }
  1985  
  1986  type UpdateSpaceSettingReq struct {
  1987  	apiReq  *larkcore.ApiReq
  1988  	Setting *Setting `body:""`
  1989  }
  1990  
  1991  type UpdateSpaceSettingRespData struct {
  1992  	Setting *Setting `json:"setting,omitempty"` // 知识空间设置
  1993  }
  1994  
  1995  type UpdateSpaceSettingResp struct {
  1996  	*larkcore.ApiResp `json:"-"`
  1997  	larkcore.CodeError
  1998  	Data *UpdateSpaceSettingRespData `json:"data"` // 业务数据
  1999  }
  2000  
  2001  func (resp *UpdateSpaceSettingResp) Success() bool {
  2002  	return resp.Code == 0
  2003  }
  2004  
  2005  type GetTaskReqBuilder struct {
  2006  	apiReq *larkcore.ApiReq
  2007  }
  2008  
  2009  func NewGetTaskReqBuilder() *GetTaskReqBuilder {
  2010  	builder := &GetTaskReqBuilder{}
  2011  	builder.apiReq = &larkcore.ApiReq{
  2012  		PathParams:  larkcore.PathParams{},
  2013  		QueryParams: larkcore.QueryParams{},
  2014  	}
  2015  	return builder
  2016  }
  2017  
  2018  // 任务id
  2019  //
  2020  // 示例值:7037044037068177428-075c9481e6a0007c1df689dfbe5b55a08b6b06f7
  2021  func (builder *GetTaskReqBuilder) TaskId(taskId string) *GetTaskReqBuilder {
  2022  	builder.apiReq.PathParams.Set("task_id", fmt.Sprint(taskId))
  2023  	return builder
  2024  }
  2025  
  2026  // 任务类型
  2027  //
  2028  // 示例值:move
  2029  func (builder *GetTaskReqBuilder) TaskType(taskType string) *GetTaskReqBuilder {
  2030  	builder.apiReq.QueryParams.Set("task_type", fmt.Sprint(taskType))
  2031  	return builder
  2032  }
  2033  
  2034  func (builder *GetTaskReqBuilder) Build() *GetTaskReq {
  2035  	req := &GetTaskReq{}
  2036  	req.apiReq = &larkcore.ApiReq{}
  2037  	req.apiReq.PathParams = builder.apiReq.PathParams
  2038  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  2039  	return req
  2040  }
  2041  
  2042  type GetTaskReq struct {
  2043  	apiReq *larkcore.ApiReq
  2044  }
  2045  
  2046  type GetTaskRespData struct {
  2047  	Task *TaskResult `json:"task,omitempty"` // 任务结果
  2048  }
  2049  
  2050  type GetTaskResp struct {
  2051  	*larkcore.ApiResp `json:"-"`
  2052  	larkcore.CodeError
  2053  	Data *GetTaskRespData `json:"data"` // 业务数据
  2054  }
  2055  
  2056  func (resp *GetTaskResp) Success() bool {
  2057  	return resp.Code == 0
  2058  }
  2059  
  2060  type ListSpaceIterator struct {
  2061  	nextPageToken *string
  2062  	items         []*Space
  2063  	index         int
  2064  	limit         int
  2065  	ctx           context.Context
  2066  	req           *ListSpaceReq
  2067  	listFunc      func(ctx context.Context, req *ListSpaceReq, options ...larkcore.RequestOptionFunc) (*ListSpaceResp, error)
  2068  	options       []larkcore.RequestOptionFunc
  2069  	curlNum       int
  2070  }
  2071  
  2072  func (iterator *ListSpaceIterator) Next() (bool, *Space, error) {
  2073  	// 达到最大量,则返回
  2074  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  2075  		return false, nil, nil
  2076  	}
  2077  
  2078  	// 为0则拉取数据
  2079  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  2080  		if iterator.index != 0 && iterator.nextPageToken == nil {
  2081  			return false, nil, nil
  2082  		}
  2083  		if iterator.nextPageToken != nil {
  2084  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  2085  		}
  2086  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  2087  		if err != nil {
  2088  			return false, nil, err
  2089  		}
  2090  
  2091  		if resp.Code != 0 {
  2092  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  2093  		}
  2094  
  2095  		if len(resp.Data.Items) == 0 {
  2096  			return false, nil, nil
  2097  		}
  2098  
  2099  		iterator.nextPageToken = resp.Data.PageToken
  2100  		iterator.items = resp.Data.Items
  2101  		iterator.index = 0
  2102  	}
  2103  
  2104  	block := iterator.items[iterator.index]
  2105  	iterator.index++
  2106  	iterator.curlNum++
  2107  	return true, block, nil
  2108  }
  2109  
  2110  func (iterator *ListSpaceIterator) NextPageToken() *string {
  2111  	return iterator.nextPageToken
  2112  }
  2113  
  2114  type ListSpaceNodeIterator struct {
  2115  	nextPageToken *string
  2116  	items         []*Node
  2117  	index         int
  2118  	limit         int
  2119  	ctx           context.Context
  2120  	req           *ListSpaceNodeReq
  2121  	listFunc      func(ctx context.Context, req *ListSpaceNodeReq, options ...larkcore.RequestOptionFunc) (*ListSpaceNodeResp, error)
  2122  	options       []larkcore.RequestOptionFunc
  2123  	curlNum       int
  2124  }
  2125  
  2126  func (iterator *ListSpaceNodeIterator) Next() (bool, *Node, error) {
  2127  	// 达到最大量,则返回
  2128  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  2129  		return false, nil, nil
  2130  	}
  2131  
  2132  	// 为0则拉取数据
  2133  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  2134  		if iterator.index != 0 && iterator.nextPageToken == nil {
  2135  			return false, nil, nil
  2136  		}
  2137  		if iterator.nextPageToken != nil {
  2138  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  2139  		}
  2140  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  2141  		if err != nil {
  2142  			return false, nil, err
  2143  		}
  2144  
  2145  		if resp.Code != 0 {
  2146  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  2147  		}
  2148  
  2149  		if len(resp.Data.Items) == 0 {
  2150  			return false, nil, nil
  2151  		}
  2152  
  2153  		iterator.nextPageToken = resp.Data.PageToken
  2154  		iterator.items = resp.Data.Items
  2155  		iterator.index = 0
  2156  	}
  2157  
  2158  	block := iterator.items[iterator.index]
  2159  	iterator.index++
  2160  	iterator.curlNum++
  2161  	return true, block, nil
  2162  }
  2163  
  2164  func (iterator *ListSpaceNodeIterator) NextPageToken() *string {
  2165  	return iterator.nextPageToken
  2166  }