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

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