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

     1  // Package approval 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 larkapproval
    15  
    16  import (
    17  	"fmt"
    18  
    19  	"context"
    20  	"errors"
    21  
    22  	"gitee.com/larksuite/oapi-sdk-go/v3/event"
    23  
    24  	"gitee.com/larksuite/oapi-sdk-go/v3/core"
    25  )
    26  
    27  const (
    28  	DepartmentIdTypeDepartmentId     = "department_id"      // 以自定义department_id来标识部门
    29  	DepartmentIdTypeOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
    30  )
    31  
    32  const (
    33  	UserIdTypeUserId  = "user_id"  // 以user_id来识别用户
    34  	UserIdTypeUnionId = "union_id" // 以union_id来识别用户
    35  	UserIdTypeOpenId  = "open_id"  // 以open_id来识别用户
    36  )
    37  
    38  const (
    39  	LocaleZhcn = "zh-CN" // 中文
    40  	LocaleEnus = "en-US" // 英文
    41  	LocaleJajp = "ja-JP" // 日文
    42  )
    43  
    44  const (
    45  	DepartmentIdTypeCreateExternalApprovalDepartmentId     = "department_id"      // 以自定义department_id来标识部门
    46  	DepartmentIdTypeCreateExternalApprovalOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
    47  )
    48  
    49  const (
    50  	UserIdTypeCreateExternalApprovalUserId  = "user_id"  // 以user_id来识别用户
    51  	UserIdTypeCreateExternalApprovalUnionId = "union_id" // 以union_id来识别用户
    52  	UserIdTypeCreateExternalApprovalOpenId  = "open_id"  // 以open_id来识别用户
    53  )
    54  
    55  const (
    56  	StatusPending  = "PENDING"  // 审批中
    57  	StatusApproved = "APPROVED" // 审批流程结束,结果为同意
    58  	StatusRejected = "REJECTED" // 审批流程结束,结果为拒绝
    59  	StatusCanceled = "CANCELED" // 审批发起人撤回
    60  	StatusDeleted  = "DELETED"  // 审批被删除
    61  	StatusHidden   = "HIDDEN"   // 状态隐藏(不显示状态)
    62  )
    63  
    64  const (
    65  	DisplayMethodBrowser     = "BROWSER"     // 跳转系统默认浏览器打开
    66  	DisplayMethodSIdebar     = "SIDEBAR"     // 飞书中侧边抽屉打开
    67  	DisplayMethodNormal      = "NORMAL"      // 飞书内嵌页面打开
    68  	DisplayMethodTrusteeship = "TRUSTEESHIP" // 以托管打开
    69  )
    70  
    71  const (
    72  	UpdateModeReplace = "REPLACE" // 全量替换,默认值
    73  	UpdateModeUpdate  = "UPDATE"  // 增量更新
    74  )
    75  
    76  const (
    77  	ExternalTaskStatusPending     = "PENDING"     // 审批中
    78  	ExternalTaskStatusApproved    = "APPROVED"    // 审批流程结束,结果为同意
    79  	ExternalTaskStatusRejected    = "REJECTED"    // 审批流程结束,结果为拒绝
    80  	ExternalTaskStatusTransferred = "TRANSFERRED" // 任务转交
    81  	ExternalTaskStatusDone        = "DONE"        // 任务通过但审批人未操作;审批人看不到这个任务, 若想要看到, 可以通过抄送该人.
    82  )
    83  
    84  const (
    85  	AddSignEnumAddSignPre      = 1 // 前加签
    86  	AddSignEnumAddSignPost     = 2 // 后加签
    87  	AddSignEnumAddSignParallel = 3 // 并加签
    88  
    89  )
    90  
    91  const (
    92  	ApprovalMethodEnumOrSign  = 1 // 或签
    93  	ApprovalMethodEnumAddSign = 2 // 会签
    94  
    95  )
    96  
    97  const (
    98  	UserIdTypeCancelInstanceUserId  = "user_id"  // 以user_id来识别用户
    99  	UserIdTypeCancelInstanceUnionId = "union_id" // 以union_id来识别用户
   100  	UserIdTypeCancelInstanceOpenId  = "open_id"  // 以open_id来识别用户
   101  )
   102  
   103  const (
   104  	UserIdTypeCcInstanceUserId  = "user_id"  // 以user_id来识别用户
   105  	UserIdTypeCcInstanceUnionId = "union_id" // 以union_id来识别用户
   106  	UserIdTypeCcInstanceOpenId  = "open_id"  // 以open_id来识别用户
   107  )
   108  
   109  const (
   110  	LocaleGetInstanceZhcn = "zh-CN" // 中文
   111  	LocaleGetInstanceEnus = "en-US" // 英文
   112  	LocaleGetInstanceJajp = "ja-JP" // 日文
   113  )
   114  
   115  const (
   116  	UserIdTypeGetInstanceUserId  = "user_id"  // 以user_id来识别用户
   117  	UserIdTypeGetInstanceOpenId  = "open_id"  // 以open_id来识别用户
   118  	UserIdTypeGetInstanceUnionId = "union_id" // 以union_id来识别用户
   119  )
   120  
   121  const (
   122  	UserIdTypePreviewInstanceOpenId  = "open_id"  // 以open_id来识别用户
   123  	UserIdTypePreviewInstanceUserId  = "user_id"  // 以user_id来识别用户
   124  	UserIdTypePreviewInstanceUnionId = "union_id" // 以union_id来识别用户
   125  )
   126  
   127  const (
   128  	InstanceStatusPending   = "PENDING"  // 审批中
   129  	InstanceStatusRecall    = "RECALL"   // 撤回
   130  	InstanceStatusReject    = "REJECT"   // 拒绝
   131  	InstanceStatusDeleted   = "DELETED"  // 已删除
   132  	InstanceStatusApproverd = "APPROVED" // 通过
   133  	InstanceStatusAll       = "ALL"      // 所有状态
   134  )
   135  
   136  const (
   137  	LocaleQueryInstanceZhCn = "zh-CN" // 中文
   138  	LocaleQueryInstanceEnUs = "en-US" // 英文
   139  	LocaleQueryInstanceJaJp = "ja-JP" // 日文
   140  )
   141  
   142  const (
   143  	UserIdTypeQueryInstanceUserId  = "user_id"  // 以user_id来识别用户
   144  	UserIdTypeQueryInstanceUnionId = "union_id" // 以union_id来识别用户
   145  	UserIdTypeQueryInstanceOpenId  = "open_id"  // 以open_id来识别用户
   146  )
   147  
   148  const (
   149  	ReadStatusREAD   = "READ"   // 已读
   150  	ReadStatusUNREAD = "UNREAD" // 未读
   151  	ReadStatusALL    = "ALL"    // 所有状态
   152  )
   153  
   154  const (
   155  	LocaleSearchCcInstanceZhCn = "zh-CN" // 中文
   156  	LocaleSearchCcInstanceEnUs = "en-US" // 英文
   157  	LocaleSearchCcInstanceJaJp = "ja-JP" // 日文
   158  )
   159  
   160  const (
   161  	UserIdTypeSearchCcInstanceUserId  = "user_id"  // 以user_id来识别用户
   162  	UserIdTypeSearchCcInstanceUnionId = "union_id" // 以union_id来识别用户
   163  	UserIdTypeSearchCcInstanceOpenId  = "open_id"  // 以open_id来识别用户
   164  )
   165  
   166  const (
   167  	UserIdTypeSpecifiedRollbackInstanceUserId  = "user_id"  // 以user_id来识别用户
   168  	UserIdTypeSpecifiedRollbackInstanceUnionId = "union_id" // 以union_id来识别用户
   169  	UserIdTypeSpecifiedRollbackInstanceOpenId  = "open_id"  // 以open_id来识别用户
   170  )
   171  
   172  const (
   173  	UserIdTypeCreateInstanceCommentOpenId  = "open_id"  // open_id(ou_开头)
   174  	UserIdTypeCreateInstanceCommentUserId  = "user_id"  // user_id(字符串)
   175  	UserIdTypeCreateInstanceCommentUnionId = "union_id" // union_id(on_开头)
   176  )
   177  
   178  const (
   179  	UserIdTypeDeleteInstanceCommentOpenId  = "open_id"  // open_id(ou_开头)
   180  	UserIdTypeDeleteInstanceCommentUserId  = "user_id"  // user_id(字符串)
   181  	UserIdTypeDeleteInstanceCommentUnionId = "union_id" // union_id(on_开头)
   182  )
   183  
   184  const (
   185  	UserIdTypeListInstanceCommentOpenId  = "open_id"  // open_id(ou_开头)
   186  	UserIdTypeListInstanceCommentUserId  = "user_id"  // user_id(字符串)
   187  	UserIdTypeListInstanceCommentUnionId = "union_id" // union_id(on_开头)
   188  )
   189  
   190  const (
   191  	UserIdTypeRemoveInstanceCommentOpenId  = "open_id"  // open_id(ou_开头)
   192  	UserIdTypeRemoveInstanceCommentUserId  = "user_id"  // user_id(字符串)
   193  	UserIdTypeRemoveInstanceCommentUnionId = "union_id" // union_id(on_开头)
   194  )
   195  
   196  const (
   197  	UserIdTypeApproveTaskUserId  = "user_id"  // 以user_id来识别用户
   198  	UserIdTypeApproveTaskUnionId = "union_id" // 以union_id来识别用户
   199  	UserIdTypeApproveTaskOpenId  = "open_id"  // 以open_id来识别用户
   200  )
   201  
   202  const (
   203  	TopicTodoApproval      = "1"  // 待办审批
   204  	TopicDoneApproval      = "2"  // 已办审批
   205  	TopicInitiatedApproval = "3"  // 已发起审批
   206  	TopicUnreadNotice      = "17" // 未读知会
   207  	TopicReadNotice        = "18" // 已读知会
   208  )
   209  
   210  const (
   211  	UserIdTypeQueryTaskUserId  = "user_id"  // 以user_id来识别用户
   212  	UserIdTypeQueryTaskUnionId = "union_id" // 以union_id来识别用户
   213  	UserIdTypeQueryTaskOpenId  = "open_id"  // 以open_id来识别用户
   214  )
   215  
   216  const (
   217  	UserIdTypeRejectTaskUserId  = "user_id"  // 以user_id来识别用户
   218  	UserIdTypeRejectTaskUnionId = "union_id" // 以union_id来识别用户
   219  	UserIdTypeRejectTaskOpenId  = "open_id"  // 以open_id来识别用户
   220  )
   221  
   222  const (
   223  	UserIdTypeResubmitTaskUserId  = "user_id"  // 以user_id来识别用户
   224  	UserIdTypeResubmitTaskUnionId = "union_id" // 以union_id来识别用户
   225  	UserIdTypeResubmitTaskOpenId  = "open_id"  // 以open_id来识别用户
   226  )
   227  
   228  const (
   229  	TaskStatusPending     = "PENDING"     // 审批中
   230  	TaskStatusReject      = "REJECTED"    // 拒绝
   231  	TaskStatusApproverd   = "APPROVED"    // 通过
   232  	TaskStatusTRANSFERRED = "TRANSFERRED" // 转交
   233  	TaskStatusDONE        = "DONE"        // 已完成
   234  	TaskStatusRMREPEAT    = "RM_REPEAT"   // 去重
   235  	TaskStatusPROCESSED   = "PROCESSED"   // 已处理
   236  	TaskStatusALL         = "ALL"         // 所有状态
   237  )
   238  
   239  const (
   240  	LocaleSearchTaskZhCn = "zh-CN" // 中文
   241  	LocaleSearchTaskEnUs = "en-US" // 英文
   242  	LocaleSearchTaskJaJp = "ja-JP" // 日文
   243  )
   244  
   245  const (
   246  	UserIdTypeSearchTaskUserId  = "user_id"  // 以user_id来识别用户
   247  	UserIdTypeSearchTaskUnionId = "union_id" // 以union_id来识别用户
   248  	UserIdTypeSearchTaskOpenId  = "open_id"  // 以open_id来识别用户
   249  )
   250  
   251  const (
   252  	UserIdTypeTransferTaskUserId  = "user_id"  // 以user_id来识别用户
   253  	UserIdTypeTransferTaskUnionId = "union_id" // 以union_id来识别用户
   254  	UserIdTypeTransferTaskOpenId  = "open_id"  // 以open_id来识别用户
   255  )
   256  
   257  type ActionConfig struct {
   258  	ActionType       *string `json:"action_type,omitempty"`        // 操作类型,每个任务都可以配置2个操作,会展示审批列表中,当用户操作时,回调请求会带上该字段,表示用户进行了同意操作还是拒绝操作
   259  	ActionName       *string `json:"action_name,omitempty"`        // 操作名称,i18n key 用于前台展示,如果 action_type 不是 APPROVAL和REJECT,则必须提供该字段,用于展示特定的操作名称
   260  	IsNeedReason     *bool   `json:"is_need_reason,omitempty"`     // 是否需要意见, 如果为true,则用户操作时,会跳转到 意见填写页面
   261  	IsReasonRequired *bool   `json:"is_reason_required,omitempty"` // 审批意见是否必填
   262  	IsNeedAttachment *bool   `json:"is_need_attachment,omitempty"` // 意见是否支持上传附件
   263  }
   264  
   265  type ActionConfigBuilder struct {
   266  	actionType           string // 操作类型,每个任务都可以配置2个操作,会展示审批列表中,当用户操作时,回调请求会带上该字段,表示用户进行了同意操作还是拒绝操作
   267  	actionTypeFlag       bool
   268  	actionName           string // 操作名称,i18n key 用于前台展示,如果 action_type 不是 APPROVAL和REJECT,则必须提供该字段,用于展示特定的操作名称
   269  	actionNameFlag       bool
   270  	isNeedReason         bool // 是否需要意见, 如果为true,则用户操作时,会跳转到 意见填写页面
   271  	isNeedReasonFlag     bool
   272  	isReasonRequired     bool // 审批意见是否必填
   273  	isReasonRequiredFlag bool
   274  	isNeedAttachment     bool // 意见是否支持上传附件
   275  	isNeedAttachmentFlag bool
   276  }
   277  
   278  func NewActionConfigBuilder() *ActionConfigBuilder {
   279  	builder := &ActionConfigBuilder{}
   280  	return builder
   281  }
   282  
   283  // 操作类型,每个任务都可以配置2个操作,会展示审批列表中,当用户操作时,回调请求会带上该字段,表示用户进行了同意操作还是拒绝操作
   284  //
   285  // 示例值:APPROVE
   286  func (builder *ActionConfigBuilder) ActionType(actionType string) *ActionConfigBuilder {
   287  	builder.actionType = actionType
   288  	builder.actionTypeFlag = true
   289  	return builder
   290  }
   291  
   292  // 操作名称,i18n key 用于前台展示,如果 action_type 不是 APPROVAL和REJECT,则必须提供该字段,用于展示特定的操作名称
   293  //
   294  // 示例值:@i18n@5
   295  func (builder *ActionConfigBuilder) ActionName(actionName string) *ActionConfigBuilder {
   296  	builder.actionName = actionName
   297  	builder.actionNameFlag = true
   298  	return builder
   299  }
   300  
   301  // 是否需要意见, 如果为true,则用户操作时,会跳转到 意见填写页面
   302  //
   303  // 示例值:false
   304  func (builder *ActionConfigBuilder) IsNeedReason(isNeedReason bool) *ActionConfigBuilder {
   305  	builder.isNeedReason = isNeedReason
   306  	builder.isNeedReasonFlag = true
   307  	return builder
   308  }
   309  
   310  // 审批意见是否必填
   311  //
   312  // 示例值:false
   313  func (builder *ActionConfigBuilder) IsReasonRequired(isReasonRequired bool) *ActionConfigBuilder {
   314  	builder.isReasonRequired = isReasonRequired
   315  	builder.isReasonRequiredFlag = true
   316  	return builder
   317  }
   318  
   319  // 意见是否支持上传附件
   320  //
   321  // 示例值:false
   322  func (builder *ActionConfigBuilder) IsNeedAttachment(isNeedAttachment bool) *ActionConfigBuilder {
   323  	builder.isNeedAttachment = isNeedAttachment
   324  	builder.isNeedAttachmentFlag = true
   325  	return builder
   326  }
   327  
   328  func (builder *ActionConfigBuilder) Build() *ActionConfig {
   329  	req := &ActionConfig{}
   330  	if builder.actionTypeFlag {
   331  		req.ActionType = &builder.actionType
   332  
   333  	}
   334  	if builder.actionNameFlag {
   335  		req.ActionName = &builder.actionName
   336  
   337  	}
   338  	if builder.isNeedReasonFlag {
   339  		req.IsNeedReason = &builder.isNeedReason
   340  
   341  	}
   342  	if builder.isReasonRequiredFlag {
   343  		req.IsReasonRequired = &builder.isReasonRequired
   344  
   345  	}
   346  	if builder.isNeedAttachmentFlag {
   347  		req.IsNeedAttachment = &builder.isNeedAttachment
   348  
   349  	}
   350  	return req
   351  }
   352  
   353  type Approval struct {
   354  	ApprovalCode *string `json:"approval_code,omitempty"` // 审批定义code
   355  	ApprovalName *string `json:"approval_name,omitempty"` // 审批定义名称
   356  }
   357  
   358  type ApprovalBuilder struct {
   359  	approvalCode     string // 审批定义code
   360  	approvalCodeFlag bool
   361  	approvalName     string // 审批定义名称
   362  	approvalNameFlag bool
   363  }
   364  
   365  func NewApprovalBuilder() *ApprovalBuilder {
   366  	builder := &ApprovalBuilder{}
   367  	return builder
   368  }
   369  
   370  // 审批定义code
   371  //
   372  // 示例值:
   373  func (builder *ApprovalBuilder) ApprovalCode(approvalCode string) *ApprovalBuilder {
   374  	builder.approvalCode = approvalCode
   375  	builder.approvalCodeFlag = true
   376  	return builder
   377  }
   378  
   379  // 审批定义名称
   380  //
   381  // 示例值:
   382  func (builder *ApprovalBuilder) ApprovalName(approvalName string) *ApprovalBuilder {
   383  	builder.approvalName = approvalName
   384  	builder.approvalNameFlag = true
   385  	return builder
   386  }
   387  
   388  func (builder *ApprovalBuilder) Build() *Approval {
   389  	req := &Approval{}
   390  	if builder.approvalCodeFlag {
   391  		req.ApprovalCode = &builder.approvalCode
   392  
   393  	}
   394  	if builder.approvalNameFlag {
   395  		req.ApprovalName = &builder.approvalName
   396  
   397  	}
   398  	return req
   399  }
   400  
   401  type ApprovalApproverCcer struct {
   402  	Type   *string `json:"type,omitempty"`    // 审批/抄送人类型, ; 1. 当 type 为 Supervisor、SupervisorTopDown、DepartmentManager 、DepartmentManagerTopDown 这 4 种时,需要在 level 中填写对应的级数,例如:由下往上三级主管审批,level = 3;;; 2. 当 type 为 Personal 时,需要填写对应的user_id ,用于指定用户;;; 3. 当 approver 为 Free 发起人自选时,不需要指定 user_id 和level;;; 4. ccer不支持 Free 发起人自选
   403  	UserId *string `json:"user_id,omitempty"` // 用户id,根据user_id_type填写
   404  	Level  *string `json:"level,omitempty"`   // 审批级数,当 type 为 Supervisor、SupervisorTopDown、DepartmentManager 、DepartmentManagerTopDown 这 4 种时,需要在 level 中填写对应的级数,例如:由下往上三级主管审批,level = 3
   405  }
   406  
   407  type ApprovalApproverCcerBuilder struct {
   408  	type_      string // 审批/抄送人类型, ; 1. 当 type 为 Supervisor、SupervisorTopDown、DepartmentManager 、DepartmentManagerTopDown 这 4 种时,需要在 level 中填写对应的级数,例如:由下往上三级主管审批,level = 3;;; 2. 当 type 为 Personal 时,需要填写对应的user_id ,用于指定用户;;; 3. 当 approver 为 Free 发起人自选时,不需要指定 user_id 和level;;; 4. ccer不支持 Free 发起人自选
   409  	typeFlag   bool
   410  	userId     string // 用户id,根据user_id_type填写
   411  	userIdFlag bool
   412  	level      string // 审批级数,当 type 为 Supervisor、SupervisorTopDown、DepartmentManager 、DepartmentManagerTopDown 这 4 种时,需要在 level 中填写对应的级数,例如:由下往上三级主管审批,level = 3
   413  	levelFlag  bool
   414  }
   415  
   416  func NewApprovalApproverCcerBuilder() *ApprovalApproverCcerBuilder {
   417  	builder := &ApprovalApproverCcerBuilder{}
   418  	return builder
   419  }
   420  
   421  // 审批/抄送人类型, ; 1. 当 type 为 Supervisor、SupervisorTopDown、DepartmentManager 、DepartmentManagerTopDown 这 4 种时,需要在 level 中填写对应的级数,例如:由下往上三级主管审批,level = 3;;; 2. 当 type 为 Personal 时,需要填写对应的user_id ,用于指定用户;;; 3. 当 approver 为 Free 发起人自选时,不需要指定 user_id 和level;;; 4. ccer不支持 Free 发起人自选
   422  //
   423  // 示例值:Supervisor
   424  func (builder *ApprovalApproverCcerBuilder) Type(type_ string) *ApprovalApproverCcerBuilder {
   425  	builder.type_ = type_
   426  	builder.typeFlag = true
   427  	return builder
   428  }
   429  
   430  // 用户id,根据user_id_type填写
   431  //
   432  // 示例值:f7cb567e
   433  func (builder *ApprovalApproverCcerBuilder) UserId(userId string) *ApprovalApproverCcerBuilder {
   434  	builder.userId = userId
   435  	builder.userIdFlag = true
   436  	return builder
   437  }
   438  
   439  // 审批级数,当 type 为 Supervisor、SupervisorTopDown、DepartmentManager 、DepartmentManagerTopDown 这 4 种时,需要在 level 中填写对应的级数,例如:由下往上三级主管审批,level = 3
   440  //
   441  // 示例值:3
   442  func (builder *ApprovalApproverCcerBuilder) Level(level string) *ApprovalApproverCcerBuilder {
   443  	builder.level = level
   444  	builder.levelFlag = true
   445  	return builder
   446  }
   447  
   448  func (builder *ApprovalApproverCcerBuilder) Build() *ApprovalApproverCcer {
   449  	req := &ApprovalApproverCcer{}
   450  	if builder.typeFlag {
   451  		req.Type = &builder.type_
   452  
   453  	}
   454  	if builder.userIdFlag {
   455  		req.UserId = &builder.userId
   456  
   457  	}
   458  	if builder.levelFlag {
   459  		req.Level = &builder.level
   460  
   461  	}
   462  	return req
   463  }
   464  
   465  type ApprovalConfig struct {
   466  	CanUpdateViewer  *bool   `json:"can_update_viewer,omitempty"`  // 允许用户修改可见范围
   467  	CanUpdateForm    *bool   `json:"can_update_form,omitempty"`    // 允许用户更新表单
   468  	CanUpdateProcess *bool   `json:"can_update_process,omitempty"` // 允许用户更新流程定义
   469  	CanUpdateRevert  *bool   `json:"can_update_revert,omitempty"`  // 允许用户更新撤回设置
   470  	HelpUrl          *string `json:"help_url,omitempty"`           // 帮助文档链接
   471  }
   472  
   473  type ApprovalConfigBuilder struct {
   474  	canUpdateViewer      bool // 允许用户修改可见范围
   475  	canUpdateViewerFlag  bool
   476  	canUpdateForm        bool // 允许用户更新表单
   477  	canUpdateFormFlag    bool
   478  	canUpdateProcess     bool // 允许用户更新流程定义
   479  	canUpdateProcessFlag bool
   480  	canUpdateRevert      bool // 允许用户更新撤回设置
   481  	canUpdateRevertFlag  bool
   482  	helpUrl              string // 帮助文档链接
   483  	helpUrlFlag          bool
   484  }
   485  
   486  func NewApprovalConfigBuilder() *ApprovalConfigBuilder {
   487  	builder := &ApprovalConfigBuilder{}
   488  	return builder
   489  }
   490  
   491  // 允许用户修改可见范围
   492  //
   493  // 示例值:false
   494  func (builder *ApprovalConfigBuilder) CanUpdateViewer(canUpdateViewer bool) *ApprovalConfigBuilder {
   495  	builder.canUpdateViewer = canUpdateViewer
   496  	builder.canUpdateViewerFlag = true
   497  	return builder
   498  }
   499  
   500  // 允许用户更新表单
   501  //
   502  // 示例值:false
   503  func (builder *ApprovalConfigBuilder) CanUpdateForm(canUpdateForm bool) *ApprovalConfigBuilder {
   504  	builder.canUpdateForm = canUpdateForm
   505  	builder.canUpdateFormFlag = true
   506  	return builder
   507  }
   508  
   509  // 允许用户更新流程定义
   510  //
   511  // 示例值:false
   512  func (builder *ApprovalConfigBuilder) CanUpdateProcess(canUpdateProcess bool) *ApprovalConfigBuilder {
   513  	builder.canUpdateProcess = canUpdateProcess
   514  	builder.canUpdateProcessFlag = true
   515  	return builder
   516  }
   517  
   518  // 允许用户更新撤回设置
   519  //
   520  // 示例值:false
   521  func (builder *ApprovalConfigBuilder) CanUpdateRevert(canUpdateRevert bool) *ApprovalConfigBuilder {
   522  	builder.canUpdateRevert = canUpdateRevert
   523  	builder.canUpdateRevertFlag = true
   524  	return builder
   525  }
   526  
   527  // 帮助文档链接
   528  //
   529  // 示例值:https://www.baidu.com
   530  func (builder *ApprovalConfigBuilder) HelpUrl(helpUrl string) *ApprovalConfigBuilder {
   531  	builder.helpUrl = helpUrl
   532  	builder.helpUrlFlag = true
   533  	return builder
   534  }
   535  
   536  func (builder *ApprovalConfigBuilder) Build() *ApprovalConfig {
   537  	req := &ApprovalConfig{}
   538  	if builder.canUpdateViewerFlag {
   539  		req.CanUpdateViewer = &builder.canUpdateViewer
   540  
   541  	}
   542  	if builder.canUpdateFormFlag {
   543  		req.CanUpdateForm = &builder.canUpdateForm
   544  
   545  	}
   546  	if builder.canUpdateProcessFlag {
   547  		req.CanUpdateProcess = &builder.canUpdateProcess
   548  
   549  	}
   550  	if builder.canUpdateRevertFlag {
   551  		req.CanUpdateRevert = &builder.canUpdateRevert
   552  
   553  	}
   554  	if builder.helpUrlFlag {
   555  		req.HelpUrl = &builder.helpUrl
   556  
   557  	}
   558  	return req
   559  }
   560  
   561  type ApprovalCreate struct {
   562  	ApprovalName      *string                  `json:"approval_name,omitempty"`       // 审批名称的国际化文案 Key,以 @i18n@ 开头,长度不得少于 9 个字符
   563  	ApprovalCode      *string                  `json:"approval_code,omitempty"`       // 传空表示新建
   564  	Description       *string                  `json:"description,omitempty"`         // 审批描述的国际化文案 Key,以 @i18n@ 开头,长度不得少于 9 个字符
   565  	Viewers           []*ApprovalCreateViewers `json:"viewers,omitempty"`             // viewers 字段指定了哪些人能从审批应用的前台发起该审批。;; 1. 当 view_type 为 USER,需要填写viewer_user_id;;; 2. 当 view_type 为DEPARTMENT,需要填写viewer_department_id;;; 3. 当 view_type 为TENANT或NONE时,viewer_user_id和viewer_department_id无需填写
   566  	Form              *ApprovalForm            `json:"form,omitempty"`                // 审批定义表单
   567  	NodeList          []*ApprovalNode          `json:"node_list,omitempty"`           // 审批定义节点,需要将开始节点作为 list 第一个元素,结束节点作为最后一个元素
   568  	Settings          *ApprovalSetting         `json:"settings,omitempty"`            // 审批定义其他设置
   569  	Config            *ApprovalConfig          `json:"config,omitempty"`              // 审批定义配置项,用于配置对应审批定义是否可以由用户在审批后台进行修改
   570  	Icon              *int                     `json:"icon,omitempty"`                // 审批图标枚举,详见下方说明,默认为 0
   571  	I18nResources     []*I18nResource          `json:"i18n_resources,omitempty"`      // 国际化文案
   572  	ProcessManagerIds []string                 `json:"process_manager_ids,omitempty"` // 根据user_id_type填写流程管理员的用户id
   573  }
   574  
   575  type ApprovalCreateBuilder struct {
   576  	approvalName          string // 审批名称的国际化文案 Key,以 @i18n@ 开头,长度不得少于 9 个字符
   577  	approvalNameFlag      bool
   578  	approvalCode          string // 传空表示新建
   579  	approvalCodeFlag      bool
   580  	description           string // 审批描述的国际化文案 Key,以 @i18n@ 开头,长度不得少于 9 个字符
   581  	descriptionFlag       bool
   582  	viewers               []*ApprovalCreateViewers // viewers 字段指定了哪些人能从审批应用的前台发起该审批。;; 1. 当 view_type 为 USER,需要填写viewer_user_id;;; 2. 当 view_type 为DEPARTMENT,需要填写viewer_department_id;;; 3. 当 view_type 为TENANT或NONE时,viewer_user_id和viewer_department_id无需填写
   583  	viewersFlag           bool
   584  	form                  *ApprovalForm // 审批定义表单
   585  	formFlag              bool
   586  	nodeList              []*ApprovalNode // 审批定义节点,需要将开始节点作为 list 第一个元素,结束节点作为最后一个元素
   587  	nodeListFlag          bool
   588  	settings              *ApprovalSetting // 审批定义其他设置
   589  	settingsFlag          bool
   590  	config                *ApprovalConfig // 审批定义配置项,用于配置对应审批定义是否可以由用户在审批后台进行修改
   591  	configFlag            bool
   592  	icon                  int // 审批图标枚举,详见下方说明,默认为 0
   593  	iconFlag              bool
   594  	i18nResources         []*I18nResource // 国际化文案
   595  	i18nResourcesFlag     bool
   596  	processManagerIds     []string // 根据user_id_type填写流程管理员的用户id
   597  	processManagerIdsFlag bool
   598  }
   599  
   600  func NewApprovalCreateBuilder() *ApprovalCreateBuilder {
   601  	builder := &ApprovalCreateBuilder{}
   602  	return builder
   603  }
   604  
   605  // 审批名称的国际化文案 Key,以 @i18n@ 开头,长度不得少于 9 个字符
   606  //
   607  // 示例值:@i18n@approval_name
   608  func (builder *ApprovalCreateBuilder) ApprovalName(approvalName string) *ApprovalCreateBuilder {
   609  	builder.approvalName = approvalName
   610  	builder.approvalNameFlag = true
   611  	return builder
   612  }
   613  
   614  // 传空表示新建
   615  //
   616  // 示例值:7C468A54-8745-2245-9675-08B7C63E7A85
   617  func (builder *ApprovalCreateBuilder) ApprovalCode(approvalCode string) *ApprovalCreateBuilder {
   618  	builder.approvalCode = approvalCode
   619  	builder.approvalCodeFlag = true
   620  	return builder
   621  }
   622  
   623  // 审批描述的国际化文案 Key,以 @i18n@ 开头,长度不得少于 9 个字符
   624  //
   625  // 示例值:@i18n@description
   626  func (builder *ApprovalCreateBuilder) Description(description string) *ApprovalCreateBuilder {
   627  	builder.description = description
   628  	builder.descriptionFlag = true
   629  	return builder
   630  }
   631  
   632  // viewers 字段指定了哪些人能从审批应用的前台发起该审批。;; 1. 当 view_type 为 USER,需要填写viewer_user_id;;; 2. 当 view_type 为DEPARTMENT,需要填写viewer_department_id;;; 3. 当 view_type 为TENANT或NONE时,viewer_user_id和viewer_department_id无需填写
   633  //
   634  // 示例值:
   635  func (builder *ApprovalCreateBuilder) Viewers(viewers []*ApprovalCreateViewers) *ApprovalCreateBuilder {
   636  	builder.viewers = viewers
   637  	builder.viewersFlag = true
   638  	return builder
   639  }
   640  
   641  // 审批定义表单
   642  //
   643  // 示例值:
   644  func (builder *ApprovalCreateBuilder) Form(form *ApprovalForm) *ApprovalCreateBuilder {
   645  	builder.form = form
   646  	builder.formFlag = true
   647  	return builder
   648  }
   649  
   650  // 审批定义节点,需要将开始节点作为 list 第一个元素,结束节点作为最后一个元素
   651  //
   652  // 示例值:
   653  func (builder *ApprovalCreateBuilder) NodeList(nodeList []*ApprovalNode) *ApprovalCreateBuilder {
   654  	builder.nodeList = nodeList
   655  	builder.nodeListFlag = true
   656  	return builder
   657  }
   658  
   659  // 审批定义其他设置
   660  //
   661  // 示例值:
   662  func (builder *ApprovalCreateBuilder) Settings(settings *ApprovalSetting) *ApprovalCreateBuilder {
   663  	builder.settings = settings
   664  	builder.settingsFlag = true
   665  	return builder
   666  }
   667  
   668  // 审批定义配置项,用于配置对应审批定义是否可以由用户在审批后台进行修改
   669  //
   670  // 示例值:
   671  func (builder *ApprovalCreateBuilder) Config(config *ApprovalConfig) *ApprovalCreateBuilder {
   672  	builder.config = config
   673  	builder.configFlag = true
   674  	return builder
   675  }
   676  
   677  // 审批图标枚举,详见下方说明,默认为 0
   678  //
   679  // 示例值:0
   680  func (builder *ApprovalCreateBuilder) Icon(icon int) *ApprovalCreateBuilder {
   681  	builder.icon = icon
   682  	builder.iconFlag = true
   683  	return builder
   684  }
   685  
   686  // 国际化文案
   687  //
   688  // 示例值:
   689  func (builder *ApprovalCreateBuilder) I18nResources(i18nResources []*I18nResource) *ApprovalCreateBuilder {
   690  	builder.i18nResources = i18nResources
   691  	builder.i18nResourcesFlag = true
   692  	return builder
   693  }
   694  
   695  // 根据user_id_type填写流程管理员的用户id
   696  //
   697  // 示例值:["1c5ea995"]
   698  func (builder *ApprovalCreateBuilder) ProcessManagerIds(processManagerIds []string) *ApprovalCreateBuilder {
   699  	builder.processManagerIds = processManagerIds
   700  	builder.processManagerIdsFlag = true
   701  	return builder
   702  }
   703  
   704  func (builder *ApprovalCreateBuilder) Build() *ApprovalCreate {
   705  	req := &ApprovalCreate{}
   706  	if builder.approvalNameFlag {
   707  		req.ApprovalName = &builder.approvalName
   708  
   709  	}
   710  	if builder.approvalCodeFlag {
   711  		req.ApprovalCode = &builder.approvalCode
   712  
   713  	}
   714  	if builder.descriptionFlag {
   715  		req.Description = &builder.description
   716  
   717  	}
   718  	if builder.viewersFlag {
   719  		req.Viewers = builder.viewers
   720  	}
   721  	if builder.formFlag {
   722  		req.Form = builder.form
   723  	}
   724  	if builder.nodeListFlag {
   725  		req.NodeList = builder.nodeList
   726  	}
   727  	if builder.settingsFlag {
   728  		req.Settings = builder.settings
   729  	}
   730  	if builder.configFlag {
   731  		req.Config = builder.config
   732  	}
   733  	if builder.iconFlag {
   734  		req.Icon = &builder.icon
   735  
   736  	}
   737  	if builder.i18nResourcesFlag {
   738  		req.I18nResources = builder.i18nResources
   739  	}
   740  	if builder.processManagerIdsFlag {
   741  		req.ProcessManagerIds = builder.processManagerIds
   742  	}
   743  	return req
   744  }
   745  
   746  type ApprovalCreateExternal struct {
   747  	BizName                     *string `json:"biz_name,omitempty"`                      // 列表中用于提示审批来自哪里,i18n key, 注意不需要“来自”前缀,审批中心会拼上前缀
   748  	BizType                     *string `json:"biz_type,omitempty"`                      // 审批定义业务类别
   749  	CreateLinkMobile            *string `json:"create_link_mobile,omitempty"`            // 移动端发起链接,如果设置了该链接,则会在移动端审批发起页展示该审批,用户点击后会跳转到该链接进行发起; 如果不填,则在mobile端不显示该审批
   750  	CreateLinkPc                *string `json:"create_link_pc,omitempty"`                // PC端发起链接,如果设置了该链接,则会在PC端审批发起页展示该审批,用户点击后会跳转到该链接进行发起; 如果不填,则在PC端不显示该审批;
   751  	SupportPc                   *bool   `json:"support_pc,omitempty"`                    // 审批实例、审批任务、审批抄送是否要在PC端展示,如果为 true,则PC端列表会展示该定义下的实例信息,否则,不展示
   752  	SupportMobile               *bool   `json:"support_mobile,omitempty"`                // 审批实例、审批任务、审批抄送是否要在移动端展示,如果为 true,则移动端列表会展示该定义下的实例信息,否则,不展示; support_pc和support_mobile不可都为false,否则不展示
   753  	SupportBatchRead            *bool   `json:"support_batch_read,omitempty"`            // 是否支持批量已读
   754  	EnableMarkReaded            *bool   `json:"enable_mark_readed,omitempty"`            // 是否支持标注可读(该字段无效)
   755  	EnableQuickOperate          *bool   `json:"enable_quick_operate,omitempty"`          // 是否支持快速操作
   756  	ActionCallbackUrl           *string `json:"action_callback_url,omitempty"`           // 三方系统的操作回调 url,【待审批】列表的任务审批人点同意或拒绝操作后,审批中心调用该地址通知三方系统,回调地址相关信息可参见:[三方审批快捷审批回调](/ssl:ttdoc/ukTMukTMukTM/ukjNyYjL5YjM24SO2IjN/quick-approval-callback)
   757  	ActionCallbackToken         *string `json:"action_callback_token,omitempty"`         // 回调时带的 token, 用于业务系统验证请求来自审批,具体参考 [开放平台文档](/ssl:ttdoc/ukTMukTMukTM/uUTNz4SN1MjL1UzM)
   758  	ActionCallbackKey           *string `json:"action_callback_key,omitempty"`           // 请求参数加密密钥,如果配置了该参数,则会对请求参数进行加密,业务需要对请求进行解密,加解密算法参考 [关联外部选项说明](/ssl:ttdoc/ukTMukTMukTM/uADM4QjLwADO04CMwgDN)
   759  	AllowBatchOperate           *bool   `json:"allow_batch_operate,omitempty"`           // 是否支持批量审批
   760  	ExcludeEfficiencyStatistics *bool   `json:"exclude_efficiency_statistics,omitempty"` // 审批流程数据是否不纳入效率统计
   761  }
   762  
   763  type ApprovalCreateExternalBuilder struct {
   764  	bizName                         string // 列表中用于提示审批来自哪里,i18n key, 注意不需要“来自”前缀,审批中心会拼上前缀
   765  	bizNameFlag                     bool
   766  	bizType                         string // 审批定义业务类别
   767  	bizTypeFlag                     bool
   768  	createLinkMobile                string // 移动端发起链接,如果设置了该链接,则会在移动端审批发起页展示该审批,用户点击后会跳转到该链接进行发起; 如果不填,则在mobile端不显示该审批
   769  	createLinkMobileFlag            bool
   770  	createLinkPc                    string // PC端发起链接,如果设置了该链接,则会在PC端审批发起页展示该审批,用户点击后会跳转到该链接进行发起; 如果不填,则在PC端不显示该审批;
   771  	createLinkPcFlag                bool
   772  	supportPc                       bool // 审批实例、审批任务、审批抄送是否要在PC端展示,如果为 true,则PC端列表会展示该定义下的实例信息,否则,不展示
   773  	supportPcFlag                   bool
   774  	supportMobile                   bool // 审批实例、审批任务、审批抄送是否要在移动端展示,如果为 true,则移动端列表会展示该定义下的实例信息,否则,不展示; support_pc和support_mobile不可都为false,否则不展示
   775  	supportMobileFlag               bool
   776  	supportBatchRead                bool // 是否支持批量已读
   777  	supportBatchReadFlag            bool
   778  	enableMarkReaded                bool // 是否支持标注可读(该字段无效)
   779  	enableMarkReadedFlag            bool
   780  	enableQuickOperate              bool // 是否支持快速操作
   781  	enableQuickOperateFlag          bool
   782  	actionCallbackUrl               string // 三方系统的操作回调 url,【待审批】列表的任务审批人点同意或拒绝操作后,审批中心调用该地址通知三方系统,回调地址相关信息可参见:[三方审批快捷审批回调](/ssl:ttdoc/ukTMukTMukTM/ukjNyYjL5YjM24SO2IjN/quick-approval-callback)
   783  	actionCallbackUrlFlag           bool
   784  	actionCallbackToken             string // 回调时带的 token, 用于业务系统验证请求来自审批,具体参考 [开放平台文档](/ssl:ttdoc/ukTMukTMukTM/uUTNz4SN1MjL1UzM)
   785  	actionCallbackTokenFlag         bool
   786  	actionCallbackKey               string // 请求参数加密密钥,如果配置了该参数,则会对请求参数进行加密,业务需要对请求进行解密,加解密算法参考 [关联外部选项说明](/ssl:ttdoc/ukTMukTMukTM/uADM4QjLwADO04CMwgDN)
   787  	actionCallbackKeyFlag           bool
   788  	allowBatchOperate               bool // 是否支持批量审批
   789  	allowBatchOperateFlag           bool
   790  	excludeEfficiencyStatistics     bool // 审批流程数据是否不纳入效率统计
   791  	excludeEfficiencyStatisticsFlag bool
   792  }
   793  
   794  func NewApprovalCreateExternalBuilder() *ApprovalCreateExternalBuilder {
   795  	builder := &ApprovalCreateExternalBuilder{}
   796  	return builder
   797  }
   798  
   799  // 列表中用于提示审批来自哪里,i18n key, 注意不需要“来自”前缀,审批中心会拼上前缀
   800  //
   801  // 示例值:@i18n@3
   802  func (builder *ApprovalCreateExternalBuilder) BizName(bizName string) *ApprovalCreateExternalBuilder {
   803  	builder.bizName = bizName
   804  	builder.bizNameFlag = true
   805  	return builder
   806  }
   807  
   808  // 审批定义业务类别
   809  //
   810  // 示例值:permission
   811  func (builder *ApprovalCreateExternalBuilder) BizType(bizType string) *ApprovalCreateExternalBuilder {
   812  	builder.bizType = bizType
   813  	builder.bizTypeFlag = true
   814  	return builder
   815  }
   816  
   817  // 移动端发起链接,如果设置了该链接,则会在移动端审批发起页展示该审批,用户点击后会跳转到该链接进行发起; 如果不填,则在mobile端不显示该审批
   818  //
   819  // 示例值:https://applink.feishu.cn/client/mini_program/open?appId=cli_9c90fc38e07a9101&path=pages/approval-form/index?id=9999
   820  func (builder *ApprovalCreateExternalBuilder) CreateLinkMobile(createLinkMobile string) *ApprovalCreateExternalBuilder {
   821  	builder.createLinkMobile = createLinkMobile
   822  	builder.createLinkMobileFlag = true
   823  	return builder
   824  }
   825  
   826  // PC端发起链接,如果设置了该链接,则会在PC端审批发起页展示该审批,用户点击后会跳转到该链接进行发起; 如果不填,则在PC端不显示该审批;
   827  //
   828  // 示例值:https://applink.feishu.cn/client/mini_program/open?mode=appCenter&appId=cli_9c90fc38e07a9101&path=pc/pages/create-form/index?id=9999
   829  func (builder *ApprovalCreateExternalBuilder) CreateLinkPc(createLinkPc string) *ApprovalCreateExternalBuilder {
   830  	builder.createLinkPc = createLinkPc
   831  	builder.createLinkPcFlag = true
   832  	return builder
   833  }
   834  
   835  // 审批实例、审批任务、审批抄送是否要在PC端展示,如果为 true,则PC端列表会展示该定义下的实例信息,否则,不展示
   836  //
   837  // 示例值:true
   838  func (builder *ApprovalCreateExternalBuilder) SupportPc(supportPc bool) *ApprovalCreateExternalBuilder {
   839  	builder.supportPc = supportPc
   840  	builder.supportPcFlag = true
   841  	return builder
   842  }
   843  
   844  // 审批实例、审批任务、审批抄送是否要在移动端展示,如果为 true,则移动端列表会展示该定义下的实例信息,否则,不展示; support_pc和support_mobile不可都为false,否则不展示
   845  //
   846  // 示例值:true
   847  func (builder *ApprovalCreateExternalBuilder) SupportMobile(supportMobile bool) *ApprovalCreateExternalBuilder {
   848  	builder.supportMobile = supportMobile
   849  	builder.supportMobileFlag = true
   850  	return builder
   851  }
   852  
   853  // 是否支持批量已读
   854  //
   855  // 示例值:true
   856  func (builder *ApprovalCreateExternalBuilder) SupportBatchRead(supportBatchRead bool) *ApprovalCreateExternalBuilder {
   857  	builder.supportBatchRead = supportBatchRead
   858  	builder.supportBatchReadFlag = true
   859  	return builder
   860  }
   861  
   862  // 是否支持标注可读(该字段无效)
   863  //
   864  // 示例值:true
   865  func (builder *ApprovalCreateExternalBuilder) EnableMarkReaded(enableMarkReaded bool) *ApprovalCreateExternalBuilder {
   866  	builder.enableMarkReaded = enableMarkReaded
   867  	builder.enableMarkReadedFlag = true
   868  	return builder
   869  }
   870  
   871  // 是否支持快速操作
   872  //
   873  // 示例值:true
   874  func (builder *ApprovalCreateExternalBuilder) EnableQuickOperate(enableQuickOperate bool) *ApprovalCreateExternalBuilder {
   875  	builder.enableQuickOperate = enableQuickOperate
   876  	builder.enableQuickOperateFlag = true
   877  	return builder
   878  }
   879  
   880  // 三方系统的操作回调 url,【待审批】列表的任务审批人点同意或拒绝操作后,审批中心调用该地址通知三方系统,回调地址相关信息可参见:[三方审批快捷审批回调](/ssl:ttdoc/ukTMukTMukTM/ukjNyYjL5YjM24SO2IjN/quick-approval-callback)
   881  //
   882  // 示例值:http://www.feishu.cn/approval/openapi/instanceOperate
   883  func (builder *ApprovalCreateExternalBuilder) ActionCallbackUrl(actionCallbackUrl string) *ApprovalCreateExternalBuilder {
   884  	builder.actionCallbackUrl = actionCallbackUrl
   885  	builder.actionCallbackUrlFlag = true
   886  	return builder
   887  }
   888  
   889  // 回调时带的 token, 用于业务系统验证请求来自审批,具体参考 [开放平台文档](/ssl:ttdoc/ukTMukTMukTM/uUTNz4SN1MjL1UzM)
   890  //
   891  // 示例值:sdjkljkx9lsadf110
   892  func (builder *ApprovalCreateExternalBuilder) ActionCallbackToken(actionCallbackToken string) *ApprovalCreateExternalBuilder {
   893  	builder.actionCallbackToken = actionCallbackToken
   894  	builder.actionCallbackTokenFlag = true
   895  	return builder
   896  }
   897  
   898  // 请求参数加密密钥,如果配置了该参数,则会对请求参数进行加密,业务需要对请求进行解密,加解密算法参考 [关联外部选项说明](/ssl:ttdoc/ukTMukTMukTM/uADM4QjLwADO04CMwgDN)
   899  //
   900  // 示例值:gfdqedvsadfgfsd
   901  func (builder *ApprovalCreateExternalBuilder) ActionCallbackKey(actionCallbackKey string) *ApprovalCreateExternalBuilder {
   902  	builder.actionCallbackKey = actionCallbackKey
   903  	builder.actionCallbackKeyFlag = true
   904  	return builder
   905  }
   906  
   907  // 是否支持批量审批
   908  //
   909  // 示例值:true
   910  func (builder *ApprovalCreateExternalBuilder) AllowBatchOperate(allowBatchOperate bool) *ApprovalCreateExternalBuilder {
   911  	builder.allowBatchOperate = allowBatchOperate
   912  	builder.allowBatchOperateFlag = true
   913  	return builder
   914  }
   915  
   916  // 审批流程数据是否不纳入效率统计
   917  //
   918  // 示例值:true
   919  func (builder *ApprovalCreateExternalBuilder) ExcludeEfficiencyStatistics(excludeEfficiencyStatistics bool) *ApprovalCreateExternalBuilder {
   920  	builder.excludeEfficiencyStatistics = excludeEfficiencyStatistics
   921  	builder.excludeEfficiencyStatisticsFlag = true
   922  	return builder
   923  }
   924  
   925  func (builder *ApprovalCreateExternalBuilder) Build() *ApprovalCreateExternal {
   926  	req := &ApprovalCreateExternal{}
   927  	if builder.bizNameFlag {
   928  		req.BizName = &builder.bizName
   929  
   930  	}
   931  	if builder.bizTypeFlag {
   932  		req.BizType = &builder.bizType
   933  
   934  	}
   935  	if builder.createLinkMobileFlag {
   936  		req.CreateLinkMobile = &builder.createLinkMobile
   937  
   938  	}
   939  	if builder.createLinkPcFlag {
   940  		req.CreateLinkPc = &builder.createLinkPc
   941  
   942  	}
   943  	if builder.supportPcFlag {
   944  		req.SupportPc = &builder.supportPc
   945  
   946  	}
   947  	if builder.supportMobileFlag {
   948  		req.SupportMobile = &builder.supportMobile
   949  
   950  	}
   951  	if builder.supportBatchReadFlag {
   952  		req.SupportBatchRead = &builder.supportBatchRead
   953  
   954  	}
   955  	if builder.enableMarkReadedFlag {
   956  		req.EnableMarkReaded = &builder.enableMarkReaded
   957  
   958  	}
   959  	if builder.enableQuickOperateFlag {
   960  		req.EnableQuickOperate = &builder.enableQuickOperate
   961  
   962  	}
   963  	if builder.actionCallbackUrlFlag {
   964  		req.ActionCallbackUrl = &builder.actionCallbackUrl
   965  
   966  	}
   967  	if builder.actionCallbackTokenFlag {
   968  		req.ActionCallbackToken = &builder.actionCallbackToken
   969  
   970  	}
   971  	if builder.actionCallbackKeyFlag {
   972  		req.ActionCallbackKey = &builder.actionCallbackKey
   973  
   974  	}
   975  	if builder.allowBatchOperateFlag {
   976  		req.AllowBatchOperate = &builder.allowBatchOperate
   977  
   978  	}
   979  	if builder.excludeEfficiencyStatisticsFlag {
   980  		req.ExcludeEfficiencyStatistics = &builder.excludeEfficiencyStatistics
   981  
   982  	}
   983  	return req
   984  }
   985  
   986  type ApprovalCreateViewers struct {
   987  	ViewerType         *string `json:"viewer_type,omitempty"`          // 可见人类型
   988  	ViewerUserId       *string `json:"viewer_user_id,omitempty"`       // 当 view_type 是 USER,根据user_id_type填写用户id
   989  	ViewerDepartmentId *string `json:"viewer_department_id,omitempty"` // 当 view_type 为DEPARTMENT,根据department_id_type填写部门id
   990  }
   991  
   992  type ApprovalCreateViewersBuilder struct {
   993  	viewerType             string // 可见人类型
   994  	viewerTypeFlag         bool
   995  	viewerUserId           string // 当 view_type 是 USER,根据user_id_type填写用户id
   996  	viewerUserIdFlag       bool
   997  	viewerDepartmentId     string // 当 view_type 为DEPARTMENT,根据department_id_type填写部门id
   998  	viewerDepartmentIdFlag bool
   999  }
  1000  
  1001  func NewApprovalCreateViewersBuilder() *ApprovalCreateViewersBuilder {
  1002  	builder := &ApprovalCreateViewersBuilder{}
  1003  	return builder
  1004  }
  1005  
  1006  // 可见人类型
  1007  //
  1008  // 示例值:USER
  1009  func (builder *ApprovalCreateViewersBuilder) ViewerType(viewerType string) *ApprovalCreateViewersBuilder {
  1010  	builder.viewerType = viewerType
  1011  	builder.viewerTypeFlag = true
  1012  	return builder
  1013  }
  1014  
  1015  // 当 view_type 是 USER,根据user_id_type填写用户id
  1016  //
  1017  // 示例值:19a294c2
  1018  func (builder *ApprovalCreateViewersBuilder) ViewerUserId(viewerUserId string) *ApprovalCreateViewersBuilder {
  1019  	builder.viewerUserId = viewerUserId
  1020  	builder.viewerUserIdFlag = true
  1021  	return builder
  1022  }
  1023  
  1024  // 当 view_type 为DEPARTMENT,根据department_id_type填写部门id
  1025  //
  1026  // 示例值:od-ac9d697abfa990b715dcc33d58a62a9d
  1027  func (builder *ApprovalCreateViewersBuilder) ViewerDepartmentId(viewerDepartmentId string) *ApprovalCreateViewersBuilder {
  1028  	builder.viewerDepartmentId = viewerDepartmentId
  1029  	builder.viewerDepartmentIdFlag = true
  1030  	return builder
  1031  }
  1032  
  1033  func (builder *ApprovalCreateViewersBuilder) Build() *ApprovalCreateViewers {
  1034  	req := &ApprovalCreateViewers{}
  1035  	if builder.viewerTypeFlag {
  1036  		req.ViewerType = &builder.viewerType
  1037  
  1038  	}
  1039  	if builder.viewerUserIdFlag {
  1040  		req.ViewerUserId = &builder.viewerUserId
  1041  
  1042  	}
  1043  	if builder.viewerDepartmentIdFlag {
  1044  		req.ViewerDepartmentId = &builder.viewerDepartmentId
  1045  
  1046  	}
  1047  	return req
  1048  }
  1049  
  1050  type ApprovalEvent struct {
  1051  	ApprovalId       *string `json:"approval_id,omitempty"`        //
  1052  	ApprovalCode     *string `json:"approval_code,omitempty"`      //
  1053  	VersionId        *string `json:"version_id,omitempty"`         //
  1054  	WidgetGroupType  *int    `json:"widget_group_type,omitempty"`  //
  1055  	FormDefinitionId *string `json:"form_definition_id,omitempty"` //
  1056  	ProcessObj       *string `json:"process_obj,omitempty"`        //
  1057  	Timestamp        *string `json:"timestamp,omitempty"`          //
  1058  	Extra            *string `json:"extra,omitempty"`              //
  1059  }
  1060  
  1061  type ApprovalEventBuilder struct {
  1062  	approvalId           string //
  1063  	approvalIdFlag       bool
  1064  	approvalCode         string //
  1065  	approvalCodeFlag     bool
  1066  	versionId            string //
  1067  	versionIdFlag        bool
  1068  	widgetGroupType      int //
  1069  	widgetGroupTypeFlag  bool
  1070  	formDefinitionId     string //
  1071  	formDefinitionIdFlag bool
  1072  	processObj           string //
  1073  	processObjFlag       bool
  1074  	timestamp            string //
  1075  	timestampFlag        bool
  1076  	extra                string //
  1077  	extraFlag            bool
  1078  }
  1079  
  1080  func NewApprovalEventBuilder() *ApprovalEventBuilder {
  1081  	builder := &ApprovalEventBuilder{}
  1082  	return builder
  1083  }
  1084  
  1085  //
  1086  //
  1087  // 示例值:
  1088  func (builder *ApprovalEventBuilder) ApprovalId(approvalId string) *ApprovalEventBuilder {
  1089  	builder.approvalId = approvalId
  1090  	builder.approvalIdFlag = true
  1091  	return builder
  1092  }
  1093  
  1094  //
  1095  //
  1096  // 示例值:
  1097  func (builder *ApprovalEventBuilder) ApprovalCode(approvalCode string) *ApprovalEventBuilder {
  1098  	builder.approvalCode = approvalCode
  1099  	builder.approvalCodeFlag = true
  1100  	return builder
  1101  }
  1102  
  1103  //
  1104  //
  1105  // 示例值:
  1106  func (builder *ApprovalEventBuilder) VersionId(versionId string) *ApprovalEventBuilder {
  1107  	builder.versionId = versionId
  1108  	builder.versionIdFlag = true
  1109  	return builder
  1110  }
  1111  
  1112  //
  1113  //
  1114  // 示例值:
  1115  func (builder *ApprovalEventBuilder) WidgetGroupType(widgetGroupType int) *ApprovalEventBuilder {
  1116  	builder.widgetGroupType = widgetGroupType
  1117  	builder.widgetGroupTypeFlag = true
  1118  	return builder
  1119  }
  1120  
  1121  //
  1122  //
  1123  // 示例值:
  1124  func (builder *ApprovalEventBuilder) FormDefinitionId(formDefinitionId string) *ApprovalEventBuilder {
  1125  	builder.formDefinitionId = formDefinitionId
  1126  	builder.formDefinitionIdFlag = true
  1127  	return builder
  1128  }
  1129  
  1130  //
  1131  //
  1132  // 示例值:
  1133  func (builder *ApprovalEventBuilder) ProcessObj(processObj string) *ApprovalEventBuilder {
  1134  	builder.processObj = processObj
  1135  	builder.processObjFlag = true
  1136  	return builder
  1137  }
  1138  
  1139  //
  1140  //
  1141  // 示例值:
  1142  func (builder *ApprovalEventBuilder) Timestamp(timestamp string) *ApprovalEventBuilder {
  1143  	builder.timestamp = timestamp
  1144  	builder.timestampFlag = true
  1145  	return builder
  1146  }
  1147  
  1148  //
  1149  //
  1150  // 示例值:
  1151  func (builder *ApprovalEventBuilder) Extra(extra string) *ApprovalEventBuilder {
  1152  	builder.extra = extra
  1153  	builder.extraFlag = true
  1154  	return builder
  1155  }
  1156  
  1157  func (builder *ApprovalEventBuilder) Build() *ApprovalEvent {
  1158  	req := &ApprovalEvent{}
  1159  	if builder.approvalIdFlag {
  1160  		req.ApprovalId = &builder.approvalId
  1161  
  1162  	}
  1163  	if builder.approvalCodeFlag {
  1164  		req.ApprovalCode = &builder.approvalCode
  1165  
  1166  	}
  1167  	if builder.versionIdFlag {
  1168  		req.VersionId = &builder.versionId
  1169  
  1170  	}
  1171  	if builder.widgetGroupTypeFlag {
  1172  		req.WidgetGroupType = &builder.widgetGroupType
  1173  
  1174  	}
  1175  	if builder.formDefinitionIdFlag {
  1176  		req.FormDefinitionId = &builder.formDefinitionId
  1177  
  1178  	}
  1179  	if builder.processObjFlag {
  1180  		req.ProcessObj = &builder.processObj
  1181  
  1182  	}
  1183  	if builder.timestampFlag {
  1184  		req.Timestamp = &builder.timestamp
  1185  
  1186  	}
  1187  	if builder.extraFlag {
  1188  		req.Extra = &builder.extra
  1189  
  1190  	}
  1191  	return req
  1192  }
  1193  
  1194  type ApprovalForm struct {
  1195  	FormContent *string `json:"form_content,omitempty"` // 审批定义表单,json 数组,见下方form_content字段说明
  1196  }
  1197  
  1198  type ApprovalFormBuilder struct {
  1199  	formContent     string // 审批定义表单,json 数组,见下方form_content字段说明
  1200  	formContentFlag bool
  1201  }
  1202  
  1203  func NewApprovalFormBuilder() *ApprovalFormBuilder {
  1204  	builder := &ApprovalFormBuilder{}
  1205  	return builder
  1206  }
  1207  
  1208  // 审批定义表单,json 数组,见下方form_content字段说明
  1209  //
  1210  // 示例值:[{\"id\":\"user_name\", \"type\": \"input\", \"required\":true, \"name\":\"@i18n@widget1\"}]
  1211  func (builder *ApprovalFormBuilder) FormContent(formContent string) *ApprovalFormBuilder {
  1212  	builder.formContent = formContent
  1213  	builder.formContentFlag = true
  1214  	return builder
  1215  }
  1216  
  1217  func (builder *ApprovalFormBuilder) Build() *ApprovalForm {
  1218  	req := &ApprovalForm{}
  1219  	if builder.formContentFlag {
  1220  		req.FormContent = &builder.formContent
  1221  
  1222  	}
  1223  	return req
  1224  }
  1225  
  1226  type ApprovalNode struct {
  1227  	Id             *string                 `json:"id,omitempty"`              // 节点 ID,开始节点的 ID 为 START,结束节点的 ID 为 END,开始和结束节点不需要指定 name、node_type 以及 approver
  1228  	Name           *string                 `json:"name,omitempty"`            // 节点名称的国际化文案 Key,以 @i18n@ 开头,长度不得少于 9 个字符
  1229  	NodeType       *string                 `json:"node_type,omitempty"`       // 审批类型枚举,当 node_type 为依次审批时,审批人必须为『发起人自选』
  1230  	Approver       []*ApprovalApproverCcer `json:"approver,omitempty"`        // 审批人列表
  1231  	Ccer           []*ApprovalApproverCcer `json:"ccer,omitempty"`            // 抄送人列表
  1232  	PrivilegeField *FieldGroup             `json:"privilege_field,omitempty"` // 表单项的控件权限
  1233  }
  1234  
  1235  type ApprovalNodeBuilder struct {
  1236  	id                 string // 节点 ID,开始节点的 ID 为 START,结束节点的 ID 为 END,开始和结束节点不需要指定 name、node_type 以及 approver
  1237  	idFlag             bool
  1238  	name               string // 节点名称的国际化文案 Key,以 @i18n@ 开头,长度不得少于 9 个字符
  1239  	nameFlag           bool
  1240  	nodeType           string // 审批类型枚举,当 node_type 为依次审批时,审批人必须为『发起人自选』
  1241  	nodeTypeFlag       bool
  1242  	approver           []*ApprovalApproverCcer // 审批人列表
  1243  	approverFlag       bool
  1244  	ccer               []*ApprovalApproverCcer // 抄送人列表
  1245  	ccerFlag           bool
  1246  	privilegeField     *FieldGroup // 表单项的控件权限
  1247  	privilegeFieldFlag bool
  1248  }
  1249  
  1250  func NewApprovalNodeBuilder() *ApprovalNodeBuilder {
  1251  	builder := &ApprovalNodeBuilder{}
  1252  	return builder
  1253  }
  1254  
  1255  // 节点 ID,开始节点的 ID 为 START,结束节点的 ID 为 END,开始和结束节点不需要指定 name、node_type 以及 approver
  1256  //
  1257  // 示例值:START
  1258  func (builder *ApprovalNodeBuilder) Id(id string) *ApprovalNodeBuilder {
  1259  	builder.id = id
  1260  	builder.idFlag = true
  1261  	return builder
  1262  }
  1263  
  1264  // 节点名称的国际化文案 Key,以 @i18n@ 开头,长度不得少于 9 个字符
  1265  //
  1266  // 示例值:@i18n@node_name
  1267  func (builder *ApprovalNodeBuilder) Name(name string) *ApprovalNodeBuilder {
  1268  	builder.name = name
  1269  	builder.nameFlag = true
  1270  	return builder
  1271  }
  1272  
  1273  // 审批类型枚举,当 node_type 为依次审批时,审批人必须为『发起人自选』
  1274  //
  1275  // 示例值:AND
  1276  func (builder *ApprovalNodeBuilder) NodeType(nodeType string) *ApprovalNodeBuilder {
  1277  	builder.nodeType = nodeType
  1278  	builder.nodeTypeFlag = true
  1279  	return builder
  1280  }
  1281  
  1282  // 审批人列表
  1283  //
  1284  // 示例值:
  1285  func (builder *ApprovalNodeBuilder) Approver(approver []*ApprovalApproverCcer) *ApprovalNodeBuilder {
  1286  	builder.approver = approver
  1287  	builder.approverFlag = true
  1288  	return builder
  1289  }
  1290  
  1291  // 抄送人列表
  1292  //
  1293  // 示例值:
  1294  func (builder *ApprovalNodeBuilder) Ccer(ccer []*ApprovalApproverCcer) *ApprovalNodeBuilder {
  1295  	builder.ccer = ccer
  1296  	builder.ccerFlag = true
  1297  	return builder
  1298  }
  1299  
  1300  // 表单项的控件权限
  1301  //
  1302  // 示例值:
  1303  func (builder *ApprovalNodeBuilder) PrivilegeField(privilegeField *FieldGroup) *ApprovalNodeBuilder {
  1304  	builder.privilegeField = privilegeField
  1305  	builder.privilegeFieldFlag = true
  1306  	return builder
  1307  }
  1308  
  1309  func (builder *ApprovalNodeBuilder) Build() *ApprovalNode {
  1310  	req := &ApprovalNode{}
  1311  	if builder.idFlag {
  1312  		req.Id = &builder.id
  1313  
  1314  	}
  1315  	if builder.nameFlag {
  1316  		req.Name = &builder.name
  1317  
  1318  	}
  1319  	if builder.nodeTypeFlag {
  1320  		req.NodeType = &builder.nodeType
  1321  
  1322  	}
  1323  	if builder.approverFlag {
  1324  		req.Approver = builder.approver
  1325  	}
  1326  	if builder.ccerFlag {
  1327  		req.Ccer = builder.ccer
  1328  	}
  1329  	if builder.privilegeFieldFlag {
  1330  		req.PrivilegeField = builder.privilegeField
  1331  	}
  1332  	return req
  1333  }
  1334  
  1335  type ApprovalNodeInfo struct {
  1336  	Name                *string                `json:"name,omitempty"`                  // 节点名称
  1337  	NeedApprover        *bool                  `json:"need_approver,omitempty"`         // 是否发起人自选节点 true - 发起审批时需要提交审批人
  1338  	NodeId              *string                `json:"node_id,omitempty"`               // 节点 ID
  1339  	CustomNodeId        *string                `json:"custom_node_id,omitempty"`        // 节点自定义 ID,如果没有设置则不返回
  1340  	NodeType            *string                `json:"node_type,omitempty"`             // 审批方式
  1341  	ApproverChosenMulti *bool                  `json:"approver_chosen_multi,omitempty"` // 是否支持多选:true-支持,发起、结束节点该值无意义
  1342  	ApproverChosenRange []*ApproverChosenRange `json:"approver_chosen_range,omitempty"` // 自选范围
  1343  }
  1344  
  1345  type ApprovalNodeInfoBuilder struct {
  1346  	name                    string // 节点名称
  1347  	nameFlag                bool
  1348  	needApprover            bool // 是否发起人自选节点 true - 发起审批时需要提交审批人
  1349  	needApproverFlag        bool
  1350  	nodeId                  string // 节点 ID
  1351  	nodeIdFlag              bool
  1352  	customNodeId            string // 节点自定义 ID,如果没有设置则不返回
  1353  	customNodeIdFlag        bool
  1354  	nodeType                string // 审批方式
  1355  	nodeTypeFlag            bool
  1356  	approverChosenMulti     bool // 是否支持多选:true-支持,发起、结束节点该值无意义
  1357  	approverChosenMultiFlag bool
  1358  	approverChosenRange     []*ApproverChosenRange // 自选范围
  1359  	approverChosenRangeFlag bool
  1360  }
  1361  
  1362  func NewApprovalNodeInfoBuilder() *ApprovalNodeInfoBuilder {
  1363  	builder := &ApprovalNodeInfoBuilder{}
  1364  	return builder
  1365  }
  1366  
  1367  // 节点名称
  1368  //
  1369  // 示例值:Approval
  1370  func (builder *ApprovalNodeInfoBuilder) Name(name string) *ApprovalNodeInfoBuilder {
  1371  	builder.name = name
  1372  	builder.nameFlag = true
  1373  	return builder
  1374  }
  1375  
  1376  // 是否发起人自选节点 true - 发起审批时需要提交审批人
  1377  //
  1378  // 示例值:true
  1379  func (builder *ApprovalNodeInfoBuilder) NeedApprover(needApprover bool) *ApprovalNodeInfoBuilder {
  1380  	builder.needApprover = needApprover
  1381  	builder.needApproverFlag = true
  1382  	return builder
  1383  }
  1384  
  1385  // 节点 ID
  1386  //
  1387  // 示例值:46e6d96cfa756980907209209ec03b64
  1388  func (builder *ApprovalNodeInfoBuilder) NodeId(nodeId string) *ApprovalNodeInfoBuilder {
  1389  	builder.nodeId = nodeId
  1390  	builder.nodeIdFlag = true
  1391  	return builder
  1392  }
  1393  
  1394  // 节点自定义 ID,如果没有设置则不返回
  1395  //
  1396  // 示例值:46e6d96cfa756980907209209ec03b64
  1397  func (builder *ApprovalNodeInfoBuilder) CustomNodeId(customNodeId string) *ApprovalNodeInfoBuilder {
  1398  	builder.customNodeId = customNodeId
  1399  	builder.customNodeIdFlag = true
  1400  	return builder
  1401  }
  1402  
  1403  // 审批方式
  1404  //
  1405  // 示例值:AND
  1406  func (builder *ApprovalNodeInfoBuilder) NodeType(nodeType string) *ApprovalNodeInfoBuilder {
  1407  	builder.nodeType = nodeType
  1408  	builder.nodeTypeFlag = true
  1409  	return builder
  1410  }
  1411  
  1412  // 是否支持多选:true-支持,发起、结束节点该值无意义
  1413  //
  1414  // 示例值:true
  1415  func (builder *ApprovalNodeInfoBuilder) ApproverChosenMulti(approverChosenMulti bool) *ApprovalNodeInfoBuilder {
  1416  	builder.approverChosenMulti = approverChosenMulti
  1417  	builder.approverChosenMultiFlag = true
  1418  	return builder
  1419  }
  1420  
  1421  // 自选范围
  1422  //
  1423  // 示例值:
  1424  func (builder *ApprovalNodeInfoBuilder) ApproverChosenRange(approverChosenRange []*ApproverChosenRange) *ApprovalNodeInfoBuilder {
  1425  	builder.approverChosenRange = approverChosenRange
  1426  	builder.approverChosenRangeFlag = true
  1427  	return builder
  1428  }
  1429  
  1430  func (builder *ApprovalNodeInfoBuilder) Build() *ApprovalNodeInfo {
  1431  	req := &ApprovalNodeInfo{}
  1432  	if builder.nameFlag {
  1433  		req.Name = &builder.name
  1434  
  1435  	}
  1436  	if builder.needApproverFlag {
  1437  		req.NeedApprover = &builder.needApprover
  1438  
  1439  	}
  1440  	if builder.nodeIdFlag {
  1441  		req.NodeId = &builder.nodeId
  1442  
  1443  	}
  1444  	if builder.customNodeIdFlag {
  1445  		req.CustomNodeId = &builder.customNodeId
  1446  
  1447  	}
  1448  	if builder.nodeTypeFlag {
  1449  		req.NodeType = &builder.nodeType
  1450  
  1451  	}
  1452  	if builder.approverChosenMultiFlag {
  1453  		req.ApproverChosenMulti = &builder.approverChosenMulti
  1454  
  1455  	}
  1456  	if builder.approverChosenRangeFlag {
  1457  		req.ApproverChosenRange = builder.approverChosenRange
  1458  	}
  1459  	return req
  1460  }
  1461  
  1462  type ApprovalSetting struct {
  1463  	RevertInterval *int `json:"revert_interval,omitempty"` // 审批实例通过后允许撤回的时间,以秒为单位,默认 31 天,0 为不可撤回
  1464  	RevertOption   *int `json:"revert_option,omitempty"`   // 是否支持审批通过第一个节点后撤回,默认为1,0为不支持
  1465  }
  1466  
  1467  type ApprovalSettingBuilder struct {
  1468  	revertInterval     int // 审批实例通过后允许撤回的时间,以秒为单位,默认 31 天,0 为不可撤回
  1469  	revertIntervalFlag bool
  1470  	revertOption       int // 是否支持审批通过第一个节点后撤回,默认为1,0为不支持
  1471  	revertOptionFlag   bool
  1472  }
  1473  
  1474  func NewApprovalSettingBuilder() *ApprovalSettingBuilder {
  1475  	builder := &ApprovalSettingBuilder{}
  1476  	return builder
  1477  }
  1478  
  1479  // 审批实例通过后允许撤回的时间,以秒为单位,默认 31 天,0 为不可撤回
  1480  //
  1481  // 示例值:0
  1482  func (builder *ApprovalSettingBuilder) RevertInterval(revertInterval int) *ApprovalSettingBuilder {
  1483  	builder.revertInterval = revertInterval
  1484  	builder.revertIntervalFlag = true
  1485  	return builder
  1486  }
  1487  
  1488  // 是否支持审批通过第一个节点后撤回,默认为1,0为不支持
  1489  //
  1490  // 示例值:0
  1491  func (builder *ApprovalSettingBuilder) RevertOption(revertOption int) *ApprovalSettingBuilder {
  1492  	builder.revertOption = revertOption
  1493  	builder.revertOptionFlag = true
  1494  	return builder
  1495  }
  1496  
  1497  func (builder *ApprovalSettingBuilder) Build() *ApprovalSetting {
  1498  	req := &ApprovalSetting{}
  1499  	if builder.revertIntervalFlag {
  1500  		req.RevertInterval = &builder.revertInterval
  1501  
  1502  	}
  1503  	if builder.revertOptionFlag {
  1504  		req.RevertOption = &builder.revertOption
  1505  
  1506  	}
  1507  	return req
  1508  }
  1509  
  1510  type ApprovalViewer struct {
  1511  	Type    *string `json:"type,omitempty"`     // 可见人类型,人员、部门或全体
  1512  	OpenId  *string `json:"open_id,omitempty"`  // 同一个应用中对用户进行标识的id
  1513  	UserId  *string `json:"user_id,omitempty"`  // 用户id
  1514  	UnionId *string `json:"union_id,omitempty"` // 同一个应用开发主体下对用户进行标识的id
  1515  }
  1516  
  1517  type ApprovalViewerBuilder struct {
  1518  	type_       string // 可见人类型,人员、部门或全体
  1519  	typeFlag    bool
  1520  	openId      string // 同一个应用中对用户进行标识的id
  1521  	openIdFlag  bool
  1522  	userId      string // 用户id
  1523  	userIdFlag  bool
  1524  	unionId     string // 同一个应用开发主体下对用户进行标识的id
  1525  	unionIdFlag bool
  1526  }
  1527  
  1528  func NewApprovalViewerBuilder() *ApprovalViewerBuilder {
  1529  	builder := &ApprovalViewerBuilder{}
  1530  	return builder
  1531  }
  1532  
  1533  // 可见人类型,人员、部门或全体
  1534  //
  1535  // 示例值:TENANT
  1536  func (builder *ApprovalViewerBuilder) Type(type_ string) *ApprovalViewerBuilder {
  1537  	builder.type_ = type_
  1538  	builder.typeFlag = true
  1539  	return builder
  1540  }
  1541  
  1542  // 同一个应用中对用户进行标识的id
  1543  //
  1544  // 示例值:ou_e03053f0541cecc3269d7a9dc34a0b21
  1545  func (builder *ApprovalViewerBuilder) OpenId(openId string) *ApprovalViewerBuilder {
  1546  	builder.openId = openId
  1547  	builder.openIdFlag = true
  1548  	return builder
  1549  }
  1550  
  1551  // 用户id
  1552  //
  1553  // 示例值:f7cb567e
  1554  func (builder *ApprovalViewerBuilder) UserId(userId string) *ApprovalViewerBuilder {
  1555  	builder.userId = userId
  1556  	builder.userIdFlag = true
  1557  	return builder
  1558  }
  1559  
  1560  // 同一个应用开发主体下对用户进行标识的id
  1561  //
  1562  // 示例值:f7cb567e
  1563  func (builder *ApprovalViewerBuilder) UnionId(unionId string) *ApprovalViewerBuilder {
  1564  	builder.unionId = unionId
  1565  	builder.unionIdFlag = true
  1566  	return builder
  1567  }
  1568  
  1569  func (builder *ApprovalViewerBuilder) Build() *ApprovalViewer {
  1570  	req := &ApprovalViewer{}
  1571  	if builder.typeFlag {
  1572  		req.Type = &builder.type_
  1573  
  1574  	}
  1575  	if builder.openIdFlag {
  1576  		req.OpenId = &builder.openId
  1577  
  1578  	}
  1579  	if builder.userIdFlag {
  1580  		req.UserId = &builder.userId
  1581  
  1582  	}
  1583  	if builder.unionIdFlag {
  1584  		req.UnionId = &builder.unionId
  1585  
  1586  	}
  1587  	return req
  1588  }
  1589  
  1590  type ApprovalViewerInfo struct {
  1591  	Type   *string `json:"type,omitempty"`    // 可见人类型
  1592  	Id     *string `json:"id,omitempty"`      // 在可见人类型为DEPARTMENT时,id为部门的id ;在可见人类型为USER时,id为用户的id ;在可见人类型为ROLE时,id为角色的id ;在可见人类型为USER_GROUP时,id为用户组的id
  1593  	UserId *string `json:"user_id,omitempty"` // 在可见人类型为USER时,表示可见人用户id
  1594  }
  1595  
  1596  type ApprovalViewerInfoBuilder struct {
  1597  	type_      string // 可见人类型
  1598  	typeFlag   bool
  1599  	id         string // 在可见人类型为DEPARTMENT时,id为部门的id ;在可见人类型为USER时,id为用户的id ;在可见人类型为ROLE时,id为角色的id ;在可见人类型为USER_GROUP时,id为用户组的id
  1600  	idFlag     bool
  1601  	userId     string // 在可见人类型为USER时,表示可见人用户id
  1602  	userIdFlag bool
  1603  }
  1604  
  1605  func NewApprovalViewerInfoBuilder() *ApprovalViewerInfoBuilder {
  1606  	builder := &ApprovalViewerInfoBuilder{}
  1607  	return builder
  1608  }
  1609  
  1610  // 可见人类型
  1611  //
  1612  // 示例值:TENANT
  1613  func (builder *ApprovalViewerInfoBuilder) Type(type_ string) *ApprovalViewerInfoBuilder {
  1614  	builder.type_ = type_
  1615  	builder.typeFlag = true
  1616  	return builder
  1617  }
  1618  
  1619  // 在可见人类型为DEPARTMENT时,id为部门的id ;在可见人类型为USER时,id为用户的id ;在可见人类型为ROLE时,id为角色的id ;在可见人类型为USER_GROUP时,id为用户组的id
  1620  //
  1621  // 示例值:ou_e03053f0541cecc3269d7a9dc34a0b21
  1622  func (builder *ApprovalViewerInfoBuilder) Id(id string) *ApprovalViewerInfoBuilder {
  1623  	builder.id = id
  1624  	builder.idFlag = true
  1625  	return builder
  1626  }
  1627  
  1628  // 在可见人类型为USER时,表示可见人用户id
  1629  //
  1630  // 示例值:f7cb567e
  1631  func (builder *ApprovalViewerInfoBuilder) UserId(userId string) *ApprovalViewerInfoBuilder {
  1632  	builder.userId = userId
  1633  	builder.userIdFlag = true
  1634  	return builder
  1635  }
  1636  
  1637  func (builder *ApprovalViewerInfoBuilder) Build() *ApprovalViewerInfo {
  1638  	req := &ApprovalViewerInfo{}
  1639  	if builder.typeFlag {
  1640  		req.Type = &builder.type_
  1641  
  1642  	}
  1643  	if builder.idFlag {
  1644  		req.Id = &builder.id
  1645  
  1646  	}
  1647  	if builder.userIdFlag {
  1648  		req.UserId = &builder.userId
  1649  
  1650  	}
  1651  	return req
  1652  }
  1653  
  1654  type ApproverChosenRange struct {
  1655  	ApproverRangeType *int     `json:"approver_range_type,omitempty"` // 指定范围:0-all,1-指定角色,2-指定人员
  1656  	ApproverRangeIds  []string `json:"approver_range_ids,omitempty"`  // 根据上面的type,分别存放角色id与userid,type为0时本字段为空列表
  1657  }
  1658  
  1659  type ApproverChosenRangeBuilder struct {
  1660  	approverRangeType     int // 指定范围:0-all,1-指定角色,2-指定人员
  1661  	approverRangeTypeFlag bool
  1662  	approverRangeIds      []string // 根据上面的type,分别存放角色id与userid,type为0时本字段为空列表
  1663  	approverRangeIdsFlag  bool
  1664  }
  1665  
  1666  func NewApproverChosenRangeBuilder() *ApproverChosenRangeBuilder {
  1667  	builder := &ApproverChosenRangeBuilder{}
  1668  	return builder
  1669  }
  1670  
  1671  // 指定范围:0-all,1-指定角色,2-指定人员
  1672  //
  1673  // 示例值:2
  1674  func (builder *ApproverChosenRangeBuilder) ApproverRangeType(approverRangeType int) *ApproverChosenRangeBuilder {
  1675  	builder.approverRangeType = approverRangeType
  1676  	builder.approverRangeTypeFlag = true
  1677  	return builder
  1678  }
  1679  
  1680  // 根据上面的type,分别存放角色id与userid,type为0时本字段为空列表
  1681  //
  1682  // 示例值:
  1683  func (builder *ApproverChosenRangeBuilder) ApproverRangeIds(approverRangeIds []string) *ApproverChosenRangeBuilder {
  1684  	builder.approverRangeIds = approverRangeIds
  1685  	builder.approverRangeIdsFlag = true
  1686  	return builder
  1687  }
  1688  
  1689  func (builder *ApproverChosenRangeBuilder) Build() *ApproverChosenRange {
  1690  	req := &ApproverChosenRange{}
  1691  	if builder.approverRangeTypeFlag {
  1692  		req.ApproverRangeType = &builder.approverRangeType
  1693  
  1694  	}
  1695  	if builder.approverRangeIdsFlag {
  1696  		req.ApproverRangeIds = builder.approverRangeIds
  1697  	}
  1698  	return req
  1699  }
  1700  
  1701  type CcNode struct {
  1702  	CcId          *string               `json:"cc_id,omitempty"`          // 审批实例内唯一标识
  1703  	UserId        *string               `json:"user_id,omitempty"`        // 抄送人 employee id
  1704  	OpenId        *string               `json:"open_id,omitempty"`        // 抄送人 open id,和user id 二选一
  1705  	Links         *ExternalInstanceLink `json:"links,omitempty"`          // 跳转链接,用于【抄送我的】列表中的跳转pc_link 和 mobile_link 必须填一个,填写的是哪一端的链接,即会跳转到该链接,不受平台影响
  1706  	ReadStatus    *string               `json:"read_status,omitempty"`    // 阅读状态,空值表示不支持已读未读:
  1707  	Extra         *string               `json:"extra,omitempty"`          // 扩展 json
  1708  	Title         *string               `json:"title,omitempty"`          // 抄送任务名称
  1709  	CreateTime    *string               `json:"create_time,omitempty"`    // 抄送发起时间,Unix 毫秒时间戳
  1710  	UpdateTime    *string               `json:"update_time,omitempty"`    // 抄送最近更新时间,用于推送数据版本控制更新策略同 instance 的update_time
  1711  	DisplayMethod *string               `json:"display_method,omitempty"` // 列表页打开审批任务的方式
  1712  }
  1713  
  1714  type CcNodeBuilder struct {
  1715  	ccId              string // 审批实例内唯一标识
  1716  	ccIdFlag          bool
  1717  	userId            string // 抄送人 employee id
  1718  	userIdFlag        bool
  1719  	openId            string // 抄送人 open id,和user id 二选一
  1720  	openIdFlag        bool
  1721  	links             *ExternalInstanceLink // 跳转链接,用于【抄送我的】列表中的跳转pc_link 和 mobile_link 必须填一个,填写的是哪一端的链接,即会跳转到该链接,不受平台影响
  1722  	linksFlag         bool
  1723  	readStatus        string // 阅读状态,空值表示不支持已读未读:
  1724  	readStatusFlag    bool
  1725  	extra             string // 扩展 json
  1726  	extraFlag         bool
  1727  	title             string // 抄送任务名称
  1728  	titleFlag         bool
  1729  	createTime        string // 抄送发起时间,Unix 毫秒时间戳
  1730  	createTimeFlag    bool
  1731  	updateTime        string // 抄送最近更新时间,用于推送数据版本控制更新策略同 instance 的update_time
  1732  	updateTimeFlag    bool
  1733  	displayMethod     string // 列表页打开审批任务的方式
  1734  	displayMethodFlag bool
  1735  }
  1736  
  1737  func NewCcNodeBuilder() *CcNodeBuilder {
  1738  	builder := &CcNodeBuilder{}
  1739  	return builder
  1740  }
  1741  
  1742  // 审批实例内唯一标识
  1743  //
  1744  // 示例值:123456
  1745  func (builder *CcNodeBuilder) CcId(ccId string) *CcNodeBuilder {
  1746  	builder.ccId = ccId
  1747  	builder.ccIdFlag = true
  1748  	return builder
  1749  }
  1750  
  1751  // 抄送人 employee id
  1752  //
  1753  // 示例值:12345
  1754  func (builder *CcNodeBuilder) UserId(userId string) *CcNodeBuilder {
  1755  	builder.userId = userId
  1756  	builder.userIdFlag = true
  1757  	return builder
  1758  }
  1759  
  1760  // 抄送人 open id,和user id 二选一
  1761  //
  1762  // 示例值:ou_be73cbc0ee35eb6ca54e9e7cc14998c1
  1763  func (builder *CcNodeBuilder) OpenId(openId string) *CcNodeBuilder {
  1764  	builder.openId = openId
  1765  	builder.openIdFlag = true
  1766  	return builder
  1767  }
  1768  
  1769  // 跳转链接,用于【抄送我的】列表中的跳转pc_link 和 mobile_link 必须填一个,填写的是哪一端的链接,即会跳转到该链接,不受平台影响
  1770  //
  1771  // 示例值:
  1772  func (builder *CcNodeBuilder) Links(links *ExternalInstanceLink) *CcNodeBuilder {
  1773  	builder.links = links
  1774  	builder.linksFlag = true
  1775  	return builder
  1776  }
  1777  
  1778  // 阅读状态,空值表示不支持已读未读:
  1779  //
  1780  // 示例值:READ
  1781  func (builder *CcNodeBuilder) ReadStatus(readStatus string) *CcNodeBuilder {
  1782  	builder.readStatus = readStatus
  1783  	builder.readStatusFlag = true
  1784  	return builder
  1785  }
  1786  
  1787  // 扩展 json
  1788  //
  1789  // 示例值:{\"xxx\":\"xxx\"}
  1790  func (builder *CcNodeBuilder) Extra(extra string) *CcNodeBuilder {
  1791  	builder.extra = extra
  1792  	builder.extraFlag = true
  1793  	return builder
  1794  }
  1795  
  1796  // 抄送任务名称
  1797  //
  1798  // 示例值:xxx
  1799  func (builder *CcNodeBuilder) Title(title string) *CcNodeBuilder {
  1800  	builder.title = title
  1801  	builder.titleFlag = true
  1802  	return builder
  1803  }
  1804  
  1805  // 抄送发起时间,Unix 毫秒时间戳
  1806  //
  1807  // 示例值:1556468012678
  1808  func (builder *CcNodeBuilder) CreateTime(createTime string) *CcNodeBuilder {
  1809  	builder.createTime = createTime
  1810  	builder.createTimeFlag = true
  1811  	return builder
  1812  }
  1813  
  1814  // 抄送最近更新时间,用于推送数据版本控制更新策略同 instance 的update_time
  1815  //
  1816  // 示例值:1556468012678
  1817  func (builder *CcNodeBuilder) UpdateTime(updateTime string) *CcNodeBuilder {
  1818  	builder.updateTime = updateTime
  1819  	builder.updateTimeFlag = true
  1820  	return builder
  1821  }
  1822  
  1823  // 列表页打开审批任务的方式
  1824  //
  1825  // 示例值:BROWSER
  1826  func (builder *CcNodeBuilder) DisplayMethod(displayMethod string) *CcNodeBuilder {
  1827  	builder.displayMethod = displayMethod
  1828  	builder.displayMethodFlag = true
  1829  	return builder
  1830  }
  1831  
  1832  func (builder *CcNodeBuilder) Build() *CcNode {
  1833  	req := &CcNode{}
  1834  	if builder.ccIdFlag {
  1835  		req.CcId = &builder.ccId
  1836  
  1837  	}
  1838  	if builder.userIdFlag {
  1839  		req.UserId = &builder.userId
  1840  
  1841  	}
  1842  	if builder.openIdFlag {
  1843  		req.OpenId = &builder.openId
  1844  
  1845  	}
  1846  	if builder.linksFlag {
  1847  		req.Links = builder.links
  1848  	}
  1849  	if builder.readStatusFlag {
  1850  		req.ReadStatus = &builder.readStatus
  1851  
  1852  	}
  1853  	if builder.extraFlag {
  1854  		req.Extra = &builder.extra
  1855  
  1856  	}
  1857  	if builder.titleFlag {
  1858  		req.Title = &builder.title
  1859  
  1860  	}
  1861  	if builder.createTimeFlag {
  1862  		req.CreateTime = &builder.createTime
  1863  
  1864  	}
  1865  	if builder.updateTimeFlag {
  1866  		req.UpdateTime = &builder.updateTime
  1867  
  1868  	}
  1869  	if builder.displayMethodFlag {
  1870  		req.DisplayMethod = &builder.displayMethod
  1871  
  1872  	}
  1873  	return req
  1874  }
  1875  
  1876  type CcSearch struct {
  1877  	UserId             *string `json:"user_id,omitempty"`              // 根据x_user_type填写用户 id
  1878  	ApprovalCode       *string `json:"approval_code,omitempty"`        // 审批定义 code
  1879  	InstanceCode       *string `json:"instance_code,omitempty"`        // 审批实例 code
  1880  	InstanceExternalId *string `json:"instance_external_id,omitempty"` // 审批实例第三方 id 注:和 approval_code 取并集
  1881  	GroupExternalId    *string `json:"group_external_id,omitempty"`    // 审批定义分组第三方 id 注:和 instance_code 取并集
  1882  	CcTitle            *string `json:"cc_title,omitempty"`             // 审批抄送标题(只有第三方审批有)
  1883  	ReadStatus         *string `json:"read_status,omitempty"`          // 审批抄送状态,注:若不设置,查询全部状态 若不在集合中,报错
  1884  	CcCreateTimeFrom   *string `json:"cc_create_time_from,omitempty"`  // 抄送查询开始时间(unix毫秒时间戳)
  1885  	CcCreateTimeTo     *string `json:"cc_create_time_to,omitempty"`    // 抄送查询结束时间 (unix毫秒时间戳)
  1886  	Locale             *string `json:"locale,omitempty"`               // 地区
  1887  }
  1888  
  1889  type CcSearchBuilder struct {
  1890  	userId                 string // 根据x_user_type填写用户 id
  1891  	userIdFlag             bool
  1892  	approvalCode           string // 审批定义 code
  1893  	approvalCodeFlag       bool
  1894  	instanceCode           string // 审批实例 code
  1895  	instanceCodeFlag       bool
  1896  	instanceExternalId     string // 审批实例第三方 id 注:和 approval_code 取并集
  1897  	instanceExternalIdFlag bool
  1898  	groupExternalId        string // 审批定义分组第三方 id 注:和 instance_code 取并集
  1899  	groupExternalIdFlag    bool
  1900  	ccTitle                string // 审批抄送标题(只有第三方审批有)
  1901  	ccTitleFlag            bool
  1902  	readStatus             string // 审批抄送状态,注:若不设置,查询全部状态 若不在集合中,报错
  1903  	readStatusFlag         bool
  1904  	ccCreateTimeFrom       string // 抄送查询开始时间(unix毫秒时间戳)
  1905  	ccCreateTimeFromFlag   bool
  1906  	ccCreateTimeTo         string // 抄送查询结束时间 (unix毫秒时间戳)
  1907  	ccCreateTimeToFlag     bool
  1908  	locale                 string // 地区
  1909  	localeFlag             bool
  1910  }
  1911  
  1912  func NewCcSearchBuilder() *CcSearchBuilder {
  1913  	builder := &CcSearchBuilder{}
  1914  	return builder
  1915  }
  1916  
  1917  // 根据x_user_type填写用户 id
  1918  //
  1919  // 示例值:lwiu098wj
  1920  func (builder *CcSearchBuilder) UserId(userId string) *CcSearchBuilder {
  1921  	builder.userId = userId
  1922  	builder.userIdFlag = true
  1923  	return builder
  1924  }
  1925  
  1926  // 审批定义 code
  1927  //
  1928  // 示例值:EB828003-9FFE-4B3F-AA50-2E199E2ED942
  1929  func (builder *CcSearchBuilder) ApprovalCode(approvalCode string) *CcSearchBuilder {
  1930  	builder.approvalCode = approvalCode
  1931  	builder.approvalCodeFlag = true
  1932  	return builder
  1933  }
  1934  
  1935  // 审批实例 code
  1936  //
  1937  // 示例值:EB828003-9FFE-4B3F-AA50-2E199E2ED943
  1938  func (builder *CcSearchBuilder) InstanceCode(instanceCode string) *CcSearchBuilder {
  1939  	builder.instanceCode = instanceCode
  1940  	builder.instanceCodeFlag = true
  1941  	return builder
  1942  }
  1943  
  1944  // 审批实例第三方 id 注:和 approval_code 取并集
  1945  //
  1946  // 示例值:EB828003-9FFE-4B3F-AA50-2E199E2ED976
  1947  func (builder *CcSearchBuilder) InstanceExternalId(instanceExternalId string) *CcSearchBuilder {
  1948  	builder.instanceExternalId = instanceExternalId
  1949  	builder.instanceExternalIdFlag = true
  1950  	return builder
  1951  }
  1952  
  1953  // 审批定义分组第三方 id 注:和 instance_code 取并集
  1954  //
  1955  // 示例值:1234567
  1956  func (builder *CcSearchBuilder) GroupExternalId(groupExternalId string) *CcSearchBuilder {
  1957  	builder.groupExternalId = groupExternalId
  1958  	builder.groupExternalIdFlag = true
  1959  	return builder
  1960  }
  1961  
  1962  // 审批抄送标题(只有第三方审批有)
  1963  //
  1964  // 示例值:test
  1965  func (builder *CcSearchBuilder) CcTitle(ccTitle string) *CcSearchBuilder {
  1966  	builder.ccTitle = ccTitle
  1967  	builder.ccTitleFlag = true
  1968  	return builder
  1969  }
  1970  
  1971  // 审批抄送状态,注:若不设置,查询全部状态 若不在集合中,报错
  1972  //
  1973  // 示例值:read
  1974  func (builder *CcSearchBuilder) ReadStatus(readStatus string) *CcSearchBuilder {
  1975  	builder.readStatus = readStatus
  1976  	builder.readStatusFlag = true
  1977  	return builder
  1978  }
  1979  
  1980  // 抄送查询开始时间(unix毫秒时间戳)
  1981  //
  1982  // 示例值:1547654251506
  1983  func (builder *CcSearchBuilder) CcCreateTimeFrom(ccCreateTimeFrom string) *CcSearchBuilder {
  1984  	builder.ccCreateTimeFrom = ccCreateTimeFrom
  1985  	builder.ccCreateTimeFromFlag = true
  1986  	return builder
  1987  }
  1988  
  1989  // 抄送查询结束时间 (unix毫秒时间戳)
  1990  //
  1991  // 示例值:1547654251506
  1992  func (builder *CcSearchBuilder) CcCreateTimeTo(ccCreateTimeTo string) *CcSearchBuilder {
  1993  	builder.ccCreateTimeTo = ccCreateTimeTo
  1994  	builder.ccCreateTimeToFlag = true
  1995  	return builder
  1996  }
  1997  
  1998  // 地区
  1999  //
  2000  // 示例值:zh-CN
  2001  func (builder *CcSearchBuilder) Locale(locale string) *CcSearchBuilder {
  2002  	builder.locale = locale
  2003  	builder.localeFlag = true
  2004  	return builder
  2005  }
  2006  
  2007  func (builder *CcSearchBuilder) Build() *CcSearch {
  2008  	req := &CcSearch{}
  2009  	if builder.userIdFlag {
  2010  		req.UserId = &builder.userId
  2011  
  2012  	}
  2013  	if builder.approvalCodeFlag {
  2014  		req.ApprovalCode = &builder.approvalCode
  2015  
  2016  	}
  2017  	if builder.instanceCodeFlag {
  2018  		req.InstanceCode = &builder.instanceCode
  2019  
  2020  	}
  2021  	if builder.instanceExternalIdFlag {
  2022  		req.InstanceExternalId = &builder.instanceExternalId
  2023  
  2024  	}
  2025  	if builder.groupExternalIdFlag {
  2026  		req.GroupExternalId = &builder.groupExternalId
  2027  
  2028  	}
  2029  	if builder.ccTitleFlag {
  2030  		req.CcTitle = &builder.ccTitle
  2031  
  2032  	}
  2033  	if builder.readStatusFlag {
  2034  		req.ReadStatus = &builder.readStatus
  2035  
  2036  	}
  2037  	if builder.ccCreateTimeFromFlag {
  2038  		req.CcCreateTimeFrom = &builder.ccCreateTimeFrom
  2039  
  2040  	}
  2041  	if builder.ccCreateTimeToFlag {
  2042  		req.CcCreateTimeTo = &builder.ccCreateTimeTo
  2043  
  2044  	}
  2045  	if builder.localeFlag {
  2046  		req.Locale = &builder.locale
  2047  
  2048  	}
  2049  	return req
  2050  }
  2051  
  2052  type CcSearchItem struct {
  2053  	Approval *InstanceSearchApproval `json:"approval,omitempty"` // 审批定义
  2054  	Group    *InstanceSearchGroup    `json:"group,omitempty"`    // 审批定义分组
  2055  	Instance *InstanceSearchNode     `json:"instance,omitempty"` // 审批实例信息
  2056  	Cc       *CcSearchNode           `json:"cc,omitempty"`       // 审批抄送
  2057  }
  2058  
  2059  type CcSearchItemBuilder struct {
  2060  	approval     *InstanceSearchApproval // 审批定义
  2061  	approvalFlag bool
  2062  	group        *InstanceSearchGroup // 审批定义分组
  2063  	groupFlag    bool
  2064  	instance     *InstanceSearchNode // 审批实例信息
  2065  	instanceFlag bool
  2066  	cc           *CcSearchNode // 审批抄送
  2067  	ccFlag       bool
  2068  }
  2069  
  2070  func NewCcSearchItemBuilder() *CcSearchItemBuilder {
  2071  	builder := &CcSearchItemBuilder{}
  2072  	return builder
  2073  }
  2074  
  2075  // 审批定义
  2076  //
  2077  // 示例值:
  2078  func (builder *CcSearchItemBuilder) Approval(approval *InstanceSearchApproval) *CcSearchItemBuilder {
  2079  	builder.approval = approval
  2080  	builder.approvalFlag = true
  2081  	return builder
  2082  }
  2083  
  2084  // 审批定义分组
  2085  //
  2086  // 示例值:
  2087  func (builder *CcSearchItemBuilder) Group(group *InstanceSearchGroup) *CcSearchItemBuilder {
  2088  	builder.group = group
  2089  	builder.groupFlag = true
  2090  	return builder
  2091  }
  2092  
  2093  // 审批实例信息
  2094  //
  2095  // 示例值:
  2096  func (builder *CcSearchItemBuilder) Instance(instance *InstanceSearchNode) *CcSearchItemBuilder {
  2097  	builder.instance = instance
  2098  	builder.instanceFlag = true
  2099  	return builder
  2100  }
  2101  
  2102  // 审批抄送
  2103  //
  2104  // 示例值:
  2105  func (builder *CcSearchItemBuilder) Cc(cc *CcSearchNode) *CcSearchItemBuilder {
  2106  	builder.cc = cc
  2107  	builder.ccFlag = true
  2108  	return builder
  2109  }
  2110  
  2111  func (builder *CcSearchItemBuilder) Build() *CcSearchItem {
  2112  	req := &CcSearchItem{}
  2113  	if builder.approvalFlag {
  2114  		req.Approval = builder.approval
  2115  	}
  2116  	if builder.groupFlag {
  2117  		req.Group = builder.group
  2118  	}
  2119  	if builder.instanceFlag {
  2120  		req.Instance = builder.instance
  2121  	}
  2122  	if builder.ccFlag {
  2123  		req.Cc = builder.cc
  2124  	}
  2125  	return req
  2126  }
  2127  
  2128  type CcSearchNode struct {
  2129  	UserId     *string             `json:"user_id,omitempty"`     // 审批抄送发起人 id
  2130  	CreateTime *string             `json:"create_time,omitempty"` // 审批抄送开始时间
  2131  	ReadStatus *string             `json:"read_status,omitempty"` // 审批抄送状态
  2132  	Title      *string             `json:"title,omitempty"`       // 审批抄送名称(只有第三方审批有)
  2133  	Extra      *string             `json:"extra,omitempty"`       // 审批抄送扩展字段,string型json
  2134  	Link       *InstanceSearchLink `json:"link,omitempty"`        // 审批抄送链接(只有第三方审批有)
  2135  }
  2136  
  2137  type CcSearchNodeBuilder struct {
  2138  	userId         string // 审批抄送发起人 id
  2139  	userIdFlag     bool
  2140  	createTime     string // 审批抄送开始时间
  2141  	createTimeFlag bool
  2142  	readStatus     string // 审批抄送状态
  2143  	readStatusFlag bool
  2144  	title          string // 审批抄送名称(只有第三方审批有)
  2145  	titleFlag      bool
  2146  	extra          string // 审批抄送扩展字段,string型json
  2147  	extraFlag      bool
  2148  	link           *InstanceSearchLink // 审批抄送链接(只有第三方审批有)
  2149  	linkFlag       bool
  2150  }
  2151  
  2152  func NewCcSearchNodeBuilder() *CcSearchNodeBuilder {
  2153  	builder := &CcSearchNodeBuilder{}
  2154  	return builder
  2155  }
  2156  
  2157  // 审批抄送发起人 id
  2158  //
  2159  // 示例值:lwiu098wj
  2160  func (builder *CcSearchNodeBuilder) UserId(userId string) *CcSearchNodeBuilder {
  2161  	builder.userId = userId
  2162  	builder.userIdFlag = true
  2163  	return builder
  2164  }
  2165  
  2166  // 审批抄送开始时间
  2167  //
  2168  // 示例值:1547654251506
  2169  func (builder *CcSearchNodeBuilder) CreateTime(createTime string) *CcSearchNodeBuilder {
  2170  	builder.createTime = createTime
  2171  	builder.createTimeFlag = true
  2172  	return builder
  2173  }
  2174  
  2175  // 审批抄送状态
  2176  //
  2177  // 示例值:read
  2178  func (builder *CcSearchNodeBuilder) ReadStatus(readStatus string) *CcSearchNodeBuilder {
  2179  	builder.readStatus = readStatus
  2180  	builder.readStatusFlag = true
  2181  	return builder
  2182  }
  2183  
  2184  // 审批抄送名称(只有第三方审批有)
  2185  //
  2186  // 示例值:test
  2187  func (builder *CcSearchNodeBuilder) Title(title string) *CcSearchNodeBuilder {
  2188  	builder.title = title
  2189  	builder.titleFlag = true
  2190  	return builder
  2191  }
  2192  
  2193  // 审批抄送扩展字段,string型json
  2194  //
  2195  // 示例值:{}
  2196  func (builder *CcSearchNodeBuilder) Extra(extra string) *CcSearchNodeBuilder {
  2197  	builder.extra = extra
  2198  	builder.extraFlag = true
  2199  	return builder
  2200  }
  2201  
  2202  // 审批抄送链接(只有第三方审批有)
  2203  //
  2204  // 示例值:
  2205  func (builder *CcSearchNodeBuilder) Link(link *InstanceSearchLink) *CcSearchNodeBuilder {
  2206  	builder.link = link
  2207  	builder.linkFlag = true
  2208  	return builder
  2209  }
  2210  
  2211  func (builder *CcSearchNodeBuilder) Build() *CcSearchNode {
  2212  	req := &CcSearchNode{}
  2213  	if builder.userIdFlag {
  2214  		req.UserId = &builder.userId
  2215  
  2216  	}
  2217  	if builder.createTimeFlag {
  2218  		req.CreateTime = &builder.createTime
  2219  
  2220  	}
  2221  	if builder.readStatusFlag {
  2222  		req.ReadStatus = &builder.readStatus
  2223  
  2224  	}
  2225  	if builder.titleFlag {
  2226  		req.Title = &builder.title
  2227  
  2228  	}
  2229  	if builder.extraFlag {
  2230  		req.Extra = &builder.extra
  2231  
  2232  	}
  2233  	if builder.linkFlag {
  2234  		req.Link = builder.link
  2235  	}
  2236  	return req
  2237  }
  2238  
  2239  type Comment struct {
  2240  	Id          *string          `json:"id,omitempty"`           // 评论ID
  2241  	Content     *string          `json:"content,omitempty"`      // 评论内容
  2242  	CreateTime  *string          `json:"create_time,omitempty"`  // 评论创建时间
  2243  	UpdateTime  *string          `json:"update_time,omitempty"`  // 评论更新时间
  2244  	IsDelete    *int             `json:"is_delete,omitempty"`    // 是否删除,0:未删除,1:已删除
  2245  	Replies     []*CommentReply  `json:"replies,omitempty"`      // 评论的回复
  2246  	AtInfoList  []*CommentAtInfo `json:"at_info_list,omitempty"` // 评论中艾特人信息
  2247  	Commentator *string          `json:"commentator,omitempty"`  // 评论创建人
  2248  	Extra       *string          `json:"extra,omitempty"`        // 附加字段
  2249  }
  2250  
  2251  type CommentBuilder struct {
  2252  	id              string // 评论ID
  2253  	idFlag          bool
  2254  	content         string // 评论内容
  2255  	contentFlag     bool
  2256  	createTime      string // 评论创建时间
  2257  	createTimeFlag  bool
  2258  	updateTime      string // 评论更新时间
  2259  	updateTimeFlag  bool
  2260  	isDelete        int // 是否删除,0:未删除,1:已删除
  2261  	isDeleteFlag    bool
  2262  	replies         []*CommentReply // 评论的回复
  2263  	repliesFlag     bool
  2264  	atInfoList      []*CommentAtInfo // 评论中艾特人信息
  2265  	atInfoListFlag  bool
  2266  	commentator     string // 评论创建人
  2267  	commentatorFlag bool
  2268  	extra           string // 附加字段
  2269  	extraFlag       bool
  2270  }
  2271  
  2272  func NewCommentBuilder() *CommentBuilder {
  2273  	builder := &CommentBuilder{}
  2274  	return builder
  2275  }
  2276  
  2277  // 评论ID
  2278  //
  2279  // 示例值:7081516627711524883
  2280  func (builder *CommentBuilder) Id(id string) *CommentBuilder {
  2281  	builder.id = id
  2282  	builder.idFlag = true
  2283  	return builder
  2284  }
  2285  
  2286  // 评论内容
  2287  //
  2288  // 示例值:{\"text\":\"x@王某自小程序的评论111我带了附件,而且我艾特了人 \",\"files\":[{\"url\":\"https://xx-xxx-xxx.bytedance.net/lark-approval-attachment/image/20220401/1/d43216ca-93b5-43a8-8a34-23c66820463a.png~tplv-k7bg0smxju-image.image?x-orig-authkey=boeorigin\&x-orig-expires=1650963890\&x-orig-sign=668QhQbRSt6638x2Ws8wFI%2FxqVg%3D#.png\",\"fileSize\":155149,\"title\":\"9a9fedc5cfb01a4a20c715098.png\",\"type\":\"image\"}]}
  2289  func (builder *CommentBuilder) Content(content string) *CommentBuilder {
  2290  	builder.content = content
  2291  	builder.contentFlag = true
  2292  	return builder
  2293  }
  2294  
  2295  // 评论创建时间
  2296  //
  2297  // 示例值:1648801211000
  2298  func (builder *CommentBuilder) CreateTime(createTime string) *CommentBuilder {
  2299  	builder.createTime = createTime
  2300  	builder.createTimeFlag = true
  2301  	return builder
  2302  }
  2303  
  2304  // 评论更新时间
  2305  //
  2306  // 示例值:1648801211000
  2307  func (builder *CommentBuilder) UpdateTime(updateTime string) *CommentBuilder {
  2308  	builder.updateTime = updateTime
  2309  	builder.updateTimeFlag = true
  2310  	return builder
  2311  }
  2312  
  2313  // 是否删除,0:未删除,1:已删除
  2314  //
  2315  // 示例值:1
  2316  func (builder *CommentBuilder) IsDelete(isDelete int) *CommentBuilder {
  2317  	builder.isDelete = isDelete
  2318  	builder.isDeleteFlag = true
  2319  	return builder
  2320  }
  2321  
  2322  // 评论的回复
  2323  //
  2324  // 示例值:
  2325  func (builder *CommentBuilder) Replies(replies []*CommentReply) *CommentBuilder {
  2326  	builder.replies = replies
  2327  	builder.repliesFlag = true
  2328  	return builder
  2329  }
  2330  
  2331  // 评论中艾特人信息
  2332  //
  2333  // 示例值:
  2334  func (builder *CommentBuilder) AtInfoList(atInfoList []*CommentAtInfo) *CommentBuilder {
  2335  	builder.atInfoList = atInfoList
  2336  	builder.atInfoListFlag = true
  2337  	return builder
  2338  }
  2339  
  2340  // 评论创建人
  2341  //
  2342  // 示例值:893g4c45
  2343  func (builder *CommentBuilder) Commentator(commentator string) *CommentBuilder {
  2344  	builder.commentator = commentator
  2345  	builder.commentatorFlag = true
  2346  	return builder
  2347  }
  2348  
  2349  // 附加字段
  2350  //
  2351  // 示例值:{\"a\":\"a\"}
  2352  func (builder *CommentBuilder) Extra(extra string) *CommentBuilder {
  2353  	builder.extra = extra
  2354  	builder.extraFlag = true
  2355  	return builder
  2356  }
  2357  
  2358  func (builder *CommentBuilder) Build() *Comment {
  2359  	req := &Comment{}
  2360  	if builder.idFlag {
  2361  		req.Id = &builder.id
  2362  
  2363  	}
  2364  	if builder.contentFlag {
  2365  		req.Content = &builder.content
  2366  
  2367  	}
  2368  	if builder.createTimeFlag {
  2369  		req.CreateTime = &builder.createTime
  2370  
  2371  	}
  2372  	if builder.updateTimeFlag {
  2373  		req.UpdateTime = &builder.updateTime
  2374  
  2375  	}
  2376  	if builder.isDeleteFlag {
  2377  		req.IsDelete = &builder.isDelete
  2378  
  2379  	}
  2380  	if builder.repliesFlag {
  2381  		req.Replies = builder.replies
  2382  	}
  2383  	if builder.atInfoListFlag {
  2384  		req.AtInfoList = builder.atInfoList
  2385  	}
  2386  	if builder.commentatorFlag {
  2387  		req.Commentator = &builder.commentator
  2388  
  2389  	}
  2390  	if builder.extraFlag {
  2391  		req.Extra = &builder.extra
  2392  
  2393  	}
  2394  	return req
  2395  }
  2396  
  2397  type CommentAtInfo struct {
  2398  	UserId *string `json:"user_id,omitempty"` // 被艾特人的ID
  2399  	Name   *string `json:"name,omitempty"`    // 被艾特人的姓名
  2400  	Offset *string `json:"offset,omitempty"`  // 被艾特人在评论中的位置,从0开始
  2401  }
  2402  
  2403  type CommentAtInfoBuilder struct {
  2404  	userId     string // 被艾特人的ID
  2405  	userIdFlag bool
  2406  	name       string // 被艾特人的姓名
  2407  	nameFlag   bool
  2408  	offset     string // 被艾特人在评论中的位置,从0开始
  2409  	offsetFlag bool
  2410  }
  2411  
  2412  func NewCommentAtInfoBuilder() *CommentAtInfoBuilder {
  2413  	builder := &CommentAtInfoBuilder{}
  2414  	return builder
  2415  }
  2416  
  2417  // 被艾特人的ID
  2418  //
  2419  // 示例值:579fd9c4
  2420  func (builder *CommentAtInfoBuilder) UserId(userId string) *CommentAtInfoBuilder {
  2421  	builder.userId = userId
  2422  	builder.userIdFlag = true
  2423  	return builder
  2424  }
  2425  
  2426  // 被艾特人的姓名
  2427  //
  2428  // 示例值:张某
  2429  func (builder *CommentAtInfoBuilder) Name(name string) *CommentAtInfoBuilder {
  2430  	builder.name = name
  2431  	builder.nameFlag = true
  2432  	return builder
  2433  }
  2434  
  2435  // 被艾特人在评论中的位置,从0开始
  2436  //
  2437  // 示例值:1
  2438  func (builder *CommentAtInfoBuilder) Offset(offset string) *CommentAtInfoBuilder {
  2439  	builder.offset = offset
  2440  	builder.offsetFlag = true
  2441  	return builder
  2442  }
  2443  
  2444  func (builder *CommentAtInfoBuilder) Build() *CommentAtInfo {
  2445  	req := &CommentAtInfo{}
  2446  	if builder.userIdFlag {
  2447  		req.UserId = &builder.userId
  2448  
  2449  	}
  2450  	if builder.nameFlag {
  2451  		req.Name = &builder.name
  2452  
  2453  	}
  2454  	if builder.offsetFlag {
  2455  		req.Offset = &builder.offset
  2456  
  2457  	}
  2458  	return req
  2459  }
  2460  
  2461  type CommentReply struct {
  2462  	Id          *string          `json:"id,omitempty"`           // 评论ID
  2463  	Content     *string          `json:"content,omitempty"`      // 评论内容
  2464  	CreateTime  *string          `json:"create_time,omitempty"`  // 评论创建时间
  2465  	UpdateTime  *string          `json:"update_time,omitempty"`  // 评论更新时间
  2466  	IsDelete    *int             `json:"is_delete,omitempty"`    // 是否删除,0:未删除,1:已删除
  2467  	AtInfoList  []*CommentAtInfo `json:"at_info_list,omitempty"` // 评论中艾特人信息
  2468  	Commentator *string          `json:"commentator,omitempty"`  // 评论创建人
  2469  	Extra       *string          `json:"extra,omitempty"`        // 附加字段
  2470  }
  2471  
  2472  type CommentReplyBuilder struct {
  2473  	id              string // 评论ID
  2474  	idFlag          bool
  2475  	content         string // 评论内容
  2476  	contentFlag     bool
  2477  	createTime      string // 评论创建时间
  2478  	createTimeFlag  bool
  2479  	updateTime      string // 评论更新时间
  2480  	updateTimeFlag  bool
  2481  	isDelete        int // 是否删除,0:未删除,1:已删除
  2482  	isDeleteFlag    bool
  2483  	atInfoList      []*CommentAtInfo // 评论中艾特人信息
  2484  	atInfoListFlag  bool
  2485  	commentator     string // 评论创建人
  2486  	commentatorFlag bool
  2487  	extra           string // 附加字段
  2488  	extraFlag       bool
  2489  }
  2490  
  2491  func NewCommentReplyBuilder() *CommentReplyBuilder {
  2492  	builder := &CommentReplyBuilder{}
  2493  	return builder
  2494  }
  2495  
  2496  // 评论ID
  2497  //
  2498  // 示例值:7081516611634741268
  2499  func (builder *CommentReplyBuilder) Id(id string) *CommentReplyBuilder {
  2500  	builder.id = id
  2501  	builder.idFlag = true
  2502  	return builder
  2503  }
  2504  
  2505  // 评论内容
  2506  //
  2507  // 示例值:{\"text\":\"x@张某来自小程序的评论111,这是一条回复\",\"files\":[{\"url\":\"https://xx-xxx-xxx.bytedance.net/lark-approval-attachment/image/20220401/1/d43216ca-93b5-43a8-8a34-23c66820463a.png~tplv-k7bg0smxju-image.image?x-orig-authkey=boeorigin\&x-orig-expires=1650963890\&x-orig-sign=668QhQbRSt6638x2Ws8wFI%2FxqVg%3D#.png\",\"fileSize\":155149,\"title\":\"9a9fedc5cfb01a4a20c715098.png\",\"type\":\"image\"}]}
  2508  func (builder *CommentReplyBuilder) Content(content string) *CommentReplyBuilder {
  2509  	builder.content = content
  2510  	builder.contentFlag = true
  2511  	return builder
  2512  }
  2513  
  2514  // 评论创建时间
  2515  //
  2516  // 示例值:1648803677000
  2517  func (builder *CommentReplyBuilder) CreateTime(createTime string) *CommentReplyBuilder {
  2518  	builder.createTime = createTime
  2519  	builder.createTimeFlag = true
  2520  	return builder
  2521  }
  2522  
  2523  // 评论更新时间
  2524  //
  2525  // 示例值:1648803677000
  2526  func (builder *CommentReplyBuilder) UpdateTime(updateTime string) *CommentReplyBuilder {
  2527  	builder.updateTime = updateTime
  2528  	builder.updateTimeFlag = true
  2529  	return builder
  2530  }
  2531  
  2532  // 是否删除,0:未删除,1:已删除
  2533  //
  2534  // 示例值:0
  2535  func (builder *CommentReplyBuilder) IsDelete(isDelete int) *CommentReplyBuilder {
  2536  	builder.isDelete = isDelete
  2537  	builder.isDeleteFlag = true
  2538  	return builder
  2539  }
  2540  
  2541  // 评论中艾特人信息
  2542  //
  2543  // 示例值:
  2544  func (builder *CommentReplyBuilder) AtInfoList(atInfoList []*CommentAtInfo) *CommentReplyBuilder {
  2545  	builder.atInfoList = atInfoList
  2546  	builder.atInfoListFlag = true
  2547  	return builder
  2548  }
  2549  
  2550  // 评论创建人
  2551  //
  2552  // 示例值:893g4c45
  2553  func (builder *CommentReplyBuilder) Commentator(commentator string) *CommentReplyBuilder {
  2554  	builder.commentator = commentator
  2555  	builder.commentatorFlag = true
  2556  	return builder
  2557  }
  2558  
  2559  // 附加字段
  2560  //
  2561  // 示例值:{\"a\":\"a\"}
  2562  func (builder *CommentReplyBuilder) Extra(extra string) *CommentReplyBuilder {
  2563  	builder.extra = extra
  2564  	builder.extraFlag = true
  2565  	return builder
  2566  }
  2567  
  2568  func (builder *CommentReplyBuilder) Build() *CommentReply {
  2569  	req := &CommentReply{}
  2570  	if builder.idFlag {
  2571  		req.Id = &builder.id
  2572  
  2573  	}
  2574  	if builder.contentFlag {
  2575  		req.Content = &builder.content
  2576  
  2577  	}
  2578  	if builder.createTimeFlag {
  2579  		req.CreateTime = &builder.createTime
  2580  
  2581  	}
  2582  	if builder.updateTimeFlag {
  2583  		req.UpdateTime = &builder.updateTime
  2584  
  2585  	}
  2586  	if builder.isDeleteFlag {
  2587  		req.IsDelete = &builder.isDelete
  2588  
  2589  	}
  2590  	if builder.atInfoListFlag {
  2591  		req.AtInfoList = builder.atInfoList
  2592  	}
  2593  	if builder.commentatorFlag {
  2594  		req.Commentator = &builder.commentator
  2595  
  2596  	}
  2597  	if builder.extraFlag {
  2598  		req.Extra = &builder.extra
  2599  
  2600  	}
  2601  	return req
  2602  }
  2603  
  2604  type CommentRequest struct {
  2605  	Content         *string          `json:"content,omitempty"`           // 评论内容,包含艾特人、附件等
  2606  	AtInfoList      []*CommentAtInfo `json:"at_info_list,omitempty"`      // 评论中艾特人信息
  2607  	ParentCommentId *string          `json:"parent_comment_id,omitempty"` // 父评论ID,如果是回复评论,需要传
  2608  	CommentId       *string          `json:"comment_id,omitempty"`        // 评论ID,如果是编辑、删除一条评论,需要传
  2609  	DisableBot      *bool            `json:"disable_bot,omitempty"`       // disable_bot=true只同步数据,不触发bot
  2610  	Extra           *string          `json:"extra,omitempty"`             // 附加字段
  2611  }
  2612  
  2613  type CommentRequestBuilder struct {
  2614  	content             string // 评论内容,包含艾特人、附件等
  2615  	contentFlag         bool
  2616  	atInfoList          []*CommentAtInfo // 评论中艾特人信息
  2617  	atInfoListFlag      bool
  2618  	parentCommentId     string // 父评论ID,如果是回复评论,需要传
  2619  	parentCommentIdFlag bool
  2620  	commentId           string // 评论ID,如果是编辑、删除一条评论,需要传
  2621  	commentIdFlag       bool
  2622  	disableBot          bool // disable_bot=true只同步数据,不触发bot
  2623  	disableBotFlag      bool
  2624  	extra               string // 附加字段
  2625  	extraFlag           bool
  2626  }
  2627  
  2628  func NewCommentRequestBuilder() *CommentRequestBuilder {
  2629  	builder := &CommentRequestBuilder{}
  2630  	return builder
  2631  }
  2632  
  2633  // 评论内容,包含艾特人、附件等
  2634  //
  2635  // 示例值:{\"text\":\"来自小程序的评论111我带附件中有extra \",\"files\":[{\"url\":\"xxx\",\"fileSize\":155149,\"title\":\"9a9fedc5cfb01a4a20c715098.png\",\"type\":\"image\",\"extra\":\"\"}]}
  2636  func (builder *CommentRequestBuilder) Content(content string) *CommentRequestBuilder {
  2637  	builder.content = content
  2638  	builder.contentFlag = true
  2639  	return builder
  2640  }
  2641  
  2642  // 评论中艾特人信息
  2643  //
  2644  // 示例值:
  2645  func (builder *CommentRequestBuilder) AtInfoList(atInfoList []*CommentAtInfo) *CommentRequestBuilder {
  2646  	builder.atInfoList = atInfoList
  2647  	builder.atInfoListFlag = true
  2648  	return builder
  2649  }
  2650  
  2651  // 父评论ID,如果是回复评论,需要传
  2652  //
  2653  // 示例值:7081516627711524883
  2654  func (builder *CommentRequestBuilder) ParentCommentId(parentCommentId string) *CommentRequestBuilder {
  2655  	builder.parentCommentId = parentCommentId
  2656  	builder.parentCommentIdFlag = true
  2657  	return builder
  2658  }
  2659  
  2660  // 评论ID,如果是编辑、删除一条评论,需要传
  2661  //
  2662  // 示例值:7081516627711524883
  2663  func (builder *CommentRequestBuilder) CommentId(commentId string) *CommentRequestBuilder {
  2664  	builder.commentId = commentId
  2665  	builder.commentIdFlag = true
  2666  	return builder
  2667  }
  2668  
  2669  // disable_bot=true只同步数据,不触发bot
  2670  //
  2671  // 示例值:false
  2672  func (builder *CommentRequestBuilder) DisableBot(disableBot bool) *CommentRequestBuilder {
  2673  	builder.disableBot = disableBot
  2674  	builder.disableBotFlag = true
  2675  	return builder
  2676  }
  2677  
  2678  // 附加字段
  2679  //
  2680  // 示例值:{\"a\":\"a\"}
  2681  func (builder *CommentRequestBuilder) Extra(extra string) *CommentRequestBuilder {
  2682  	builder.extra = extra
  2683  	builder.extraFlag = true
  2684  	return builder
  2685  }
  2686  
  2687  func (builder *CommentRequestBuilder) Build() *CommentRequest {
  2688  	req := &CommentRequest{}
  2689  	if builder.contentFlag {
  2690  		req.Content = &builder.content
  2691  
  2692  	}
  2693  	if builder.atInfoListFlag {
  2694  		req.AtInfoList = builder.atInfoList
  2695  	}
  2696  	if builder.parentCommentIdFlag {
  2697  		req.ParentCommentId = &builder.parentCommentId
  2698  
  2699  	}
  2700  	if builder.commentIdFlag {
  2701  		req.CommentId = &builder.commentId
  2702  
  2703  	}
  2704  	if builder.disableBotFlag {
  2705  		req.DisableBot = &builder.disableBot
  2706  
  2707  	}
  2708  	if builder.extraFlag {
  2709  		req.Extra = &builder.extra
  2710  
  2711  	}
  2712  	return req
  2713  }
  2714  
  2715  type Count struct {
  2716  	Total   *int  `json:"total,omitempty"`    // 总数,大于等于 1000 个项目时将返回 999
  2717  	HasMore *bool `json:"has_more,omitempty"` // 还有更多,当大于等于 1000 时将返回 true
  2718  }
  2719  
  2720  type CountBuilder struct {
  2721  	total       int // 总数,大于等于 1000 个项目时将返回 999
  2722  	totalFlag   bool
  2723  	hasMore     bool // 还有更多,当大于等于 1000 时将返回 true
  2724  	hasMoreFlag bool
  2725  }
  2726  
  2727  func NewCountBuilder() *CountBuilder {
  2728  	builder := &CountBuilder{}
  2729  	return builder
  2730  }
  2731  
  2732  // 总数,大于等于 1000 个项目时将返回 999
  2733  //
  2734  // 示例值:123
  2735  func (builder *CountBuilder) Total(total int) *CountBuilder {
  2736  	builder.total = total
  2737  	builder.totalFlag = true
  2738  	return builder
  2739  }
  2740  
  2741  // 还有更多,当大于等于 1000 时将返回 true
  2742  //
  2743  // 示例值:false
  2744  func (builder *CountBuilder) HasMore(hasMore bool) *CountBuilder {
  2745  	builder.hasMore = hasMore
  2746  	builder.hasMoreFlag = true
  2747  	return builder
  2748  }
  2749  
  2750  func (builder *CountBuilder) Build() *Count {
  2751  	req := &Count{}
  2752  	if builder.totalFlag {
  2753  		req.Total = &builder.total
  2754  
  2755  	}
  2756  	if builder.hasMoreFlag {
  2757  		req.HasMore = &builder.hasMore
  2758  
  2759  	}
  2760  	return req
  2761  }
  2762  
  2763  type ExteranlInstanceCheck struct {
  2764  	InstanceId *string                 `json:"instance_id,omitempty"` // 审批实例 id
  2765  	UpdateTime *string                 `json:"update_time,omitempty"` // 审批实例最近更新时间
  2766  	Tasks      []*ExternalInstanceTask `json:"tasks,omitempty"`       // 任务信息
  2767  }
  2768  
  2769  type ExteranlInstanceCheckBuilder struct {
  2770  	instanceId     string // 审批实例 id
  2771  	instanceIdFlag bool
  2772  	updateTime     string // 审批实例最近更新时间
  2773  	updateTimeFlag bool
  2774  	tasks          []*ExternalInstanceTask // 任务信息
  2775  	tasksFlag      bool
  2776  }
  2777  
  2778  func NewExteranlInstanceCheckBuilder() *ExteranlInstanceCheckBuilder {
  2779  	builder := &ExteranlInstanceCheckBuilder{}
  2780  	return builder
  2781  }
  2782  
  2783  // 审批实例 id
  2784  //
  2785  // 示例值:1234234234242423
  2786  func (builder *ExteranlInstanceCheckBuilder) InstanceId(instanceId string) *ExteranlInstanceCheckBuilder {
  2787  	builder.instanceId = instanceId
  2788  	builder.instanceIdFlag = true
  2789  	return builder
  2790  }
  2791  
  2792  // 审批实例最近更新时间
  2793  //
  2794  // 示例值:1591603040000
  2795  func (builder *ExteranlInstanceCheckBuilder) UpdateTime(updateTime string) *ExteranlInstanceCheckBuilder {
  2796  	builder.updateTime = updateTime
  2797  	builder.updateTimeFlag = true
  2798  	return builder
  2799  }
  2800  
  2801  // 任务信息
  2802  //
  2803  // 示例值:
  2804  func (builder *ExteranlInstanceCheckBuilder) Tasks(tasks []*ExternalInstanceTask) *ExteranlInstanceCheckBuilder {
  2805  	builder.tasks = tasks
  2806  	builder.tasksFlag = true
  2807  	return builder
  2808  }
  2809  
  2810  func (builder *ExteranlInstanceCheckBuilder) Build() *ExteranlInstanceCheck {
  2811  	req := &ExteranlInstanceCheck{}
  2812  	if builder.instanceIdFlag {
  2813  		req.InstanceId = &builder.instanceId
  2814  
  2815  	}
  2816  	if builder.updateTimeFlag {
  2817  		req.UpdateTime = &builder.updateTime
  2818  
  2819  	}
  2820  	if builder.tasksFlag {
  2821  		req.Tasks = builder.tasks
  2822  	}
  2823  	return req
  2824  }
  2825  
  2826  type ExteranlInstanceCheckResponse struct {
  2827  	InstanceId *string                 `json:"instance_id,omitempty"` // 审批实例 id
  2828  	UpdateTime *string                 `json:"update_time,omitempty"` // 任务最近更新时间
  2829  	Tasks      []*ExternalInstanceTask `json:"tasks,omitempty"`       // 任务信息
  2830  }
  2831  
  2832  type ExteranlInstanceCheckResponseBuilder struct {
  2833  	instanceId     string // 审批实例 id
  2834  	instanceIdFlag bool
  2835  	updateTime     string // 任务最近更新时间
  2836  	updateTimeFlag bool
  2837  	tasks          []*ExternalInstanceTask // 任务信息
  2838  	tasksFlag      bool
  2839  }
  2840  
  2841  func NewExteranlInstanceCheckResponseBuilder() *ExteranlInstanceCheckResponseBuilder {
  2842  	builder := &ExteranlInstanceCheckResponseBuilder{}
  2843  	return builder
  2844  }
  2845  
  2846  // 审批实例 id
  2847  //
  2848  // 示例值:1234234234242423
  2849  func (builder *ExteranlInstanceCheckResponseBuilder) InstanceId(instanceId string) *ExteranlInstanceCheckResponseBuilder {
  2850  	builder.instanceId = instanceId
  2851  	builder.instanceIdFlag = true
  2852  	return builder
  2853  }
  2854  
  2855  // 任务最近更新时间
  2856  //
  2857  // 示例值:1591603040000
  2858  func (builder *ExteranlInstanceCheckResponseBuilder) UpdateTime(updateTime string) *ExteranlInstanceCheckResponseBuilder {
  2859  	builder.updateTime = updateTime
  2860  	builder.updateTimeFlag = true
  2861  	return builder
  2862  }
  2863  
  2864  // 任务信息
  2865  //
  2866  // 示例值:
  2867  func (builder *ExteranlInstanceCheckResponseBuilder) Tasks(tasks []*ExternalInstanceTask) *ExteranlInstanceCheckResponseBuilder {
  2868  	builder.tasks = tasks
  2869  	builder.tasksFlag = true
  2870  	return builder
  2871  }
  2872  
  2873  func (builder *ExteranlInstanceCheckResponseBuilder) Build() *ExteranlInstanceCheckResponse {
  2874  	req := &ExteranlInstanceCheckResponse{}
  2875  	if builder.instanceIdFlag {
  2876  		req.InstanceId = &builder.instanceId
  2877  
  2878  	}
  2879  	if builder.updateTimeFlag {
  2880  		req.UpdateTime = &builder.updateTime
  2881  
  2882  	}
  2883  	if builder.tasksFlag {
  2884  		req.Tasks = builder.tasks
  2885  	}
  2886  	return req
  2887  }
  2888  
  2889  type ExternalApproval struct {
  2890  	ApprovalName  *string                  `json:"approval_name,omitempty"`  // 审批定义名称,创建审批定义返回的值,表示该实例属于哪个流程;该字段会影响到列表中该实例的标题,标题取自对应定义的 name 字段。
  2891  	ApprovalCode  *string                  `json:"approval_code,omitempty"`  // 审批定义 code,用户自定义,定义的唯一标识,如果不存在该 code,则创建,否则更新
  2892  	GroupCode     *string                  `json:"group_code,omitempty"`     // 审批定义所属审批分组,用户自定义; 如果group_code当前不存在,则会新建审批分组; 如果group_code已经存在,则会使用group_name更新审批分组名称
  2893  	GroupName     *string                  `json:"group_name,omitempty"`     // 分组名称,值的格式是 i18n key,文案放在 i18n_resource; 如果是 group_code 当前不存在,则该 group_name 必填,否则,如果填写了则会更新分组名称,不填则不更新分组名称; 审批发起页 审批定义的分组名称来自该字段
  2894  	Description   *string                  `json:"description,omitempty"`    // 审批定义的说明,值的格式是 i18n key,文案放在 i18n_resource; 审批发起页 审批定义的说明内容来自该字段
  2895  	External      *ApprovalCreateExternal  `json:"external,omitempty"`       // 三方审批相关
  2896  	Viewers       []*ApprovalCreateViewers `json:"viewers,omitempty"`        // 可见人列表,可通知配置多个可见人,只有在配置的范围内用户可以在审批发起也看到该审批,默认不传,则是任何人不可见
  2897  	I18nResources []*I18nResource          `json:"i18n_resources,omitempty"` // 国际化文案
  2898  	Managers      []string                 `json:"managers,omitempty"`       // 根据user_id_type填写流程管理员id
  2899  }
  2900  
  2901  type ExternalApprovalBuilder struct {
  2902  	approvalName      string // 审批定义名称,创建审批定义返回的值,表示该实例属于哪个流程;该字段会影响到列表中该实例的标题,标题取自对应定义的 name 字段。
  2903  	approvalNameFlag  bool
  2904  	approvalCode      string // 审批定义 code,用户自定义,定义的唯一标识,如果不存在该 code,则创建,否则更新
  2905  	approvalCodeFlag  bool
  2906  	groupCode         string // 审批定义所属审批分组,用户自定义; 如果group_code当前不存在,则会新建审批分组; 如果group_code已经存在,则会使用group_name更新审批分组名称
  2907  	groupCodeFlag     bool
  2908  	groupName         string // 分组名称,值的格式是 i18n key,文案放在 i18n_resource; 如果是 group_code 当前不存在,则该 group_name 必填,否则,如果填写了则会更新分组名称,不填则不更新分组名称; 审批发起页 审批定义的分组名称来自该字段
  2909  	groupNameFlag     bool
  2910  	description       string // 审批定义的说明,值的格式是 i18n key,文案放在 i18n_resource; 审批发起页 审批定义的说明内容来自该字段
  2911  	descriptionFlag   bool
  2912  	external          *ApprovalCreateExternal // 三方审批相关
  2913  	externalFlag      bool
  2914  	viewers           []*ApprovalCreateViewers // 可见人列表,可通知配置多个可见人,只有在配置的范围内用户可以在审批发起也看到该审批,默认不传,则是任何人不可见
  2915  	viewersFlag       bool
  2916  	i18nResources     []*I18nResource // 国际化文案
  2917  	i18nResourcesFlag bool
  2918  	managers          []string // 根据user_id_type填写流程管理员id
  2919  	managersFlag      bool
  2920  }
  2921  
  2922  func NewExternalApprovalBuilder() *ExternalApprovalBuilder {
  2923  	builder := &ExternalApprovalBuilder{}
  2924  	return builder
  2925  }
  2926  
  2927  // 审批定义名称,创建审批定义返回的值,表示该实例属于哪个流程;该字段会影响到列表中该实例的标题,标题取自对应定义的 name 字段。
  2928  //
  2929  // 示例值:@i18n@1
  2930  func (builder *ExternalApprovalBuilder) ApprovalName(approvalName string) *ExternalApprovalBuilder {
  2931  	builder.approvalName = approvalName
  2932  	builder.approvalNameFlag = true
  2933  	return builder
  2934  }
  2935  
  2936  // 审批定义 code,用户自定义,定义的唯一标识,如果不存在该 code,则创建,否则更新
  2937  //
  2938  // 示例值:permission_test
  2939  func (builder *ExternalApprovalBuilder) ApprovalCode(approvalCode string) *ExternalApprovalBuilder {
  2940  	builder.approvalCode = approvalCode
  2941  	builder.approvalCodeFlag = true
  2942  	return builder
  2943  }
  2944  
  2945  // 审批定义所属审批分组,用户自定义; 如果group_code当前不存在,则会新建审批分组; 如果group_code已经存在,则会使用group_name更新审批分组名称
  2946  //
  2947  // 示例值:work_group
  2948  func (builder *ExternalApprovalBuilder) GroupCode(groupCode string) *ExternalApprovalBuilder {
  2949  	builder.groupCode = groupCode
  2950  	builder.groupCodeFlag = true
  2951  	return builder
  2952  }
  2953  
  2954  // 分组名称,值的格式是 i18n key,文案放在 i18n_resource; 如果是 group_code 当前不存在,则该 group_name 必填,否则,如果填写了则会更新分组名称,不填则不更新分组名称; 审批发起页 审批定义的分组名称来自该字段
  2955  //
  2956  // 示例值:@i18n@2
  2957  func (builder *ExternalApprovalBuilder) GroupName(groupName string) *ExternalApprovalBuilder {
  2958  	builder.groupName = groupName
  2959  	builder.groupNameFlag = true
  2960  	return builder
  2961  }
  2962  
  2963  // 审批定义的说明,值的格式是 i18n key,文案放在 i18n_resource; 审批发起页 审批定义的说明内容来自该字段
  2964  //
  2965  // 示例值:@i18n@2
  2966  func (builder *ExternalApprovalBuilder) Description(description string) *ExternalApprovalBuilder {
  2967  	builder.description = description
  2968  	builder.descriptionFlag = true
  2969  	return builder
  2970  }
  2971  
  2972  // 三方审批相关
  2973  //
  2974  // 示例值:
  2975  func (builder *ExternalApprovalBuilder) External(external *ApprovalCreateExternal) *ExternalApprovalBuilder {
  2976  	builder.external = external
  2977  	builder.externalFlag = true
  2978  	return builder
  2979  }
  2980  
  2981  // 可见人列表,可通知配置多个可见人,只有在配置的范围内用户可以在审批发起也看到该审批,默认不传,则是任何人不可见
  2982  //
  2983  // 示例值:
  2984  func (builder *ExternalApprovalBuilder) Viewers(viewers []*ApprovalCreateViewers) *ExternalApprovalBuilder {
  2985  	builder.viewers = viewers
  2986  	builder.viewersFlag = true
  2987  	return builder
  2988  }
  2989  
  2990  // 国际化文案
  2991  //
  2992  // 示例值:
  2993  func (builder *ExternalApprovalBuilder) I18nResources(i18nResources []*I18nResource) *ExternalApprovalBuilder {
  2994  	builder.i18nResources = i18nResources
  2995  	builder.i18nResourcesFlag = true
  2996  	return builder
  2997  }
  2998  
  2999  // 根据user_id_type填写流程管理员id
  3000  //
  3001  // 示例值:19a294c2
  3002  func (builder *ExternalApprovalBuilder) Managers(managers []string) *ExternalApprovalBuilder {
  3003  	builder.managers = managers
  3004  	builder.managersFlag = true
  3005  	return builder
  3006  }
  3007  
  3008  func (builder *ExternalApprovalBuilder) Build() *ExternalApproval {
  3009  	req := &ExternalApproval{}
  3010  	if builder.approvalNameFlag {
  3011  		req.ApprovalName = &builder.approvalName
  3012  
  3013  	}
  3014  	if builder.approvalCodeFlag {
  3015  		req.ApprovalCode = &builder.approvalCode
  3016  
  3017  	}
  3018  	if builder.groupCodeFlag {
  3019  		req.GroupCode = &builder.groupCode
  3020  
  3021  	}
  3022  	if builder.groupNameFlag {
  3023  		req.GroupName = &builder.groupName
  3024  
  3025  	}
  3026  	if builder.descriptionFlag {
  3027  		req.Description = &builder.description
  3028  
  3029  	}
  3030  	if builder.externalFlag {
  3031  		req.External = builder.external
  3032  	}
  3033  	if builder.viewersFlag {
  3034  		req.Viewers = builder.viewers
  3035  	}
  3036  	if builder.i18nResourcesFlag {
  3037  		req.I18nResources = builder.i18nResources
  3038  	}
  3039  	if builder.managersFlag {
  3040  		req.Managers = builder.managers
  3041  	}
  3042  	return req
  3043  }
  3044  
  3045  type ExternalInstance struct {
  3046  	ApprovalCode          *string                     `json:"approval_code,omitempty"`            // 审批定义 code, 创建审批定义返回的值,表示该实例属于哪个流程;该字段会影响到列表中该实例的标题,标题取自对应定义的 name 字段
  3047  	Status                *string                     `json:"status,omitempty"`                   // 审批实例状态
  3048  	Extra                 *string                     `json:"extra,omitempty"`                    // 审批实例扩展 JSON
  3049  	InstanceId            *string                     `json:"instance_id,omitempty"`              // 审批实例唯一标识,用户自定义,需确保证租户、应用下唯一
  3050  	Links                 *ExternalInstanceLink       `json:"links,omitempty"`                    // 审批实例链接集合 ,用于【已发起】列表的跳转,跳转回三方系统; pc_link 和 mobile_link 必须填一个,填写的是哪一端的链接,即会跳转到该链接,不受平台影响
  3051  	Title                 *string                     `json:"title,omitempty"`                    // 审批展示名称,如果填写了该字段,则审批列表中的审批名称使用该字段,如果不填该字段,则审批名称使用审批定义的名称
  3052  	Form                  []*ExternalInstanceForm     `json:"form,omitempty"`                     // 用户提交审批时填写的表单数据,用于所有审批列表中展示。可传多个值,但审批中心pc展示前2个,移动端展示前3个,长度不超过2048字符
  3053  	UserId                *string                     `json:"user_id,omitempty"`                  // 审批发起人 user_id,发起人可在【已发起】列表中看到所有已发起的审批; 在【待审批】,【已审批】【抄送我】列表中,该字段展示审批是谁发起的。审批发起人 open id,和 user id 二选一。
  3054  	UserName              *string                     `json:"user_name,omitempty"`                // 审批发起人 用户名,如果发起人不是真实的用户(例如是某个部门),没有 user_id,则可以使用该字段传名称
  3055  	OpenId                *string                     `json:"open_id,omitempty"`                  // 审批发起人 open id,和 user id 二选一
  3056  	DepartmentId          *string                     `json:"department_id,omitempty"`            // 发起人部门,用于列表中展示发起人所属部门。不传则不展示。如果用户没加入任何部门,传 "",将展示租户名称传 department_name 展示部门名称
  3057  	DepartmentName        *string                     `json:"department_name,omitempty"`          // 审批发起人 部门,如果发起人不是真实的用户(例如是某个部门),没有 department_id,则可以使用该字段传名称
  3058  	StartTime             *string                     `json:"start_time,omitempty"`               // 审批发起时间,Unix毫秒时间戳
  3059  	EndTime               *string                     `json:"end_time,omitempty"`                 // 审批实例结束时间:未结束的审批为 0,Unix毫秒时间戳
  3060  	UpdateTime            *string                     `json:"update_time,omitempty"`              // 审批实例最近更新时间;用于推送数据版本控制如果 update_mode 值为 UPDATE,则只有传过来的 update_time 有变化时(变大),才会更新审批中心中的审批实例信息。使用该字段主要用来避免并发时老的数据更新了新的数据
  3061  	DisplayMethod         *string                     `json:"display_method,omitempty"`           // 列表页打开审批实例的方式
  3062  	UpdateMode            *string                     `json:"update_mode,omitempty"`              // 更新方式, 当 update_mode=REPLACE时,每次都以当前推送的数据为最终数据,会删掉审批中心中多余的任务、抄送数据(不在这次推送的数据中); 当 update_mode=UPDATE时,则不会删除审批中心的数据,而只是进行新增和更新实例、任务数据
  3063  	TaskList              []*ExternalInstanceTaskNode `json:"task_list,omitempty"`                // 任务列表
  3064  	CcList                []*CcNode                   `json:"cc_list,omitempty"`                  // 抄送列表
  3065  	I18nResources         []*I18nResource             `json:"i18n_resources,omitempty"`           // 国际化文案
  3066  	TrusteeshipUrlToken   *string                     `json:"trusteeship_url_token,omitempty"`    // 单据托管认证token,托管回调会附带此token,帮助业务方认证
  3067  	TrusteeshipUserIdType *string                     `json:"trusteeship_user_id_type,omitempty"` // 用户的类型,会影响请求参数用户标识域的选择,包括加签操作回传的目标用户, 目前仅支持 "user_id"
  3068  	TrusteeshipUrls       *TrusteeshipUrls            `json:"trusteeship_urls,omitempty"`         // 单据托管回调接入方的接口的URL地址
  3069  }
  3070  
  3071  type ExternalInstanceBuilder struct {
  3072  	approvalCode              string // 审批定义 code, 创建审批定义返回的值,表示该实例属于哪个流程;该字段会影响到列表中该实例的标题,标题取自对应定义的 name 字段
  3073  	approvalCodeFlag          bool
  3074  	status                    string // 审批实例状态
  3075  	statusFlag                bool
  3076  	extra                     string // 审批实例扩展 JSON
  3077  	extraFlag                 bool
  3078  	instanceId                string // 审批实例唯一标识,用户自定义,需确保证租户、应用下唯一
  3079  	instanceIdFlag            bool
  3080  	links                     *ExternalInstanceLink // 审批实例链接集合 ,用于【已发起】列表的跳转,跳转回三方系统; pc_link 和 mobile_link 必须填一个,填写的是哪一端的链接,即会跳转到该链接,不受平台影响
  3081  	linksFlag                 bool
  3082  	title                     string // 审批展示名称,如果填写了该字段,则审批列表中的审批名称使用该字段,如果不填该字段,则审批名称使用审批定义的名称
  3083  	titleFlag                 bool
  3084  	form                      []*ExternalInstanceForm // 用户提交审批时填写的表单数据,用于所有审批列表中展示。可传多个值,但审批中心pc展示前2个,移动端展示前3个,长度不超过2048字符
  3085  	formFlag                  bool
  3086  	userId                    string // 审批发起人 user_id,发起人可在【已发起】列表中看到所有已发起的审批; 在【待审批】,【已审批】【抄送我】列表中,该字段展示审批是谁发起的。审批发起人 open id,和 user id 二选一。
  3087  	userIdFlag                bool
  3088  	userName                  string // 审批发起人 用户名,如果发起人不是真实的用户(例如是某个部门),没有 user_id,则可以使用该字段传名称
  3089  	userNameFlag              bool
  3090  	openId                    string // 审批发起人 open id,和 user id 二选一
  3091  	openIdFlag                bool
  3092  	departmentId              string // 发起人部门,用于列表中展示发起人所属部门。不传则不展示。如果用户没加入任何部门,传 "",将展示租户名称传 department_name 展示部门名称
  3093  	departmentIdFlag          bool
  3094  	departmentName            string // 审批发起人 部门,如果发起人不是真实的用户(例如是某个部门),没有 department_id,则可以使用该字段传名称
  3095  	departmentNameFlag        bool
  3096  	startTime                 string // 审批发起时间,Unix毫秒时间戳
  3097  	startTimeFlag             bool
  3098  	endTime                   string // 审批实例结束时间:未结束的审批为 0,Unix毫秒时间戳
  3099  	endTimeFlag               bool
  3100  	updateTime                string // 审批实例最近更新时间;用于推送数据版本控制如果 update_mode 值为 UPDATE,则只有传过来的 update_time 有变化时(变大),才会更新审批中心中的审批实例信息。使用该字段主要用来避免并发时老的数据更新了新的数据
  3101  	updateTimeFlag            bool
  3102  	displayMethod             string // 列表页打开审批实例的方式
  3103  	displayMethodFlag         bool
  3104  	updateMode                string // 更新方式, 当 update_mode=REPLACE时,每次都以当前推送的数据为最终数据,会删掉审批中心中多余的任务、抄送数据(不在这次推送的数据中); 当 update_mode=UPDATE时,则不会删除审批中心的数据,而只是进行新增和更新实例、任务数据
  3105  	updateModeFlag            bool
  3106  	taskList                  []*ExternalInstanceTaskNode // 任务列表
  3107  	taskListFlag              bool
  3108  	ccList                    []*CcNode // 抄送列表
  3109  	ccListFlag                bool
  3110  	i18nResources             []*I18nResource // 国际化文案
  3111  	i18nResourcesFlag         bool
  3112  	trusteeshipUrlToken       string // 单据托管认证token,托管回调会附带此token,帮助业务方认证
  3113  	trusteeshipUrlTokenFlag   bool
  3114  	trusteeshipUserIdType     string // 用户的类型,会影响请求参数用户标识域的选择,包括加签操作回传的目标用户, 目前仅支持 "user_id"
  3115  	trusteeshipUserIdTypeFlag bool
  3116  	trusteeshipUrls           *TrusteeshipUrls // 单据托管回调接入方的接口的URL地址
  3117  	trusteeshipUrlsFlag       bool
  3118  }
  3119  
  3120  func NewExternalInstanceBuilder() *ExternalInstanceBuilder {
  3121  	builder := &ExternalInstanceBuilder{}
  3122  	return builder
  3123  }
  3124  
  3125  // 审批定义 code, 创建审批定义返回的值,表示该实例属于哪个流程;该字段会影响到列表中该实例的标题,标题取自对应定义的 name 字段
  3126  //
  3127  // 示例值:81D31358-93AF-92D6-7425-01A5D67C4E71
  3128  func (builder *ExternalInstanceBuilder) ApprovalCode(approvalCode string) *ExternalInstanceBuilder {
  3129  	builder.approvalCode = approvalCode
  3130  	builder.approvalCodeFlag = true
  3131  	return builder
  3132  }
  3133  
  3134  // 审批实例状态
  3135  //
  3136  // 示例值:PENDING
  3137  func (builder *ExternalInstanceBuilder) Status(status string) *ExternalInstanceBuilder {
  3138  	builder.status = status
  3139  	builder.statusFlag = true
  3140  	return builder
  3141  }
  3142  
  3143  // 审批实例扩展 JSON
  3144  //
  3145  // 示例值:{\"xxx\":\"xxx\"}
  3146  func (builder *ExternalInstanceBuilder) Extra(extra string) *ExternalInstanceBuilder {
  3147  	builder.extra = extra
  3148  	builder.extraFlag = true
  3149  	return builder
  3150  }
  3151  
  3152  // 审批实例唯一标识,用户自定义,需确保证租户、应用下唯一
  3153  //
  3154  // 示例值:24492654
  3155  func (builder *ExternalInstanceBuilder) InstanceId(instanceId string) *ExternalInstanceBuilder {
  3156  	builder.instanceId = instanceId
  3157  	builder.instanceIdFlag = true
  3158  	return builder
  3159  }
  3160  
  3161  // 审批实例链接集合 ,用于【已发起】列表的跳转,跳转回三方系统; pc_link 和 mobile_link 必须填一个,填写的是哪一端的链接,即会跳转到该链接,不受平台影响
  3162  //
  3163  // 示例值:
  3164  func (builder *ExternalInstanceBuilder) Links(links *ExternalInstanceLink) *ExternalInstanceBuilder {
  3165  	builder.links = links
  3166  	builder.linksFlag = true
  3167  	return builder
  3168  }
  3169  
  3170  // 审批展示名称,如果填写了该字段,则审批列表中的审批名称使用该字段,如果不填该字段,则审批名称使用审批定义的名称
  3171  //
  3172  // 示例值:@i18n@1
  3173  func (builder *ExternalInstanceBuilder) Title(title string) *ExternalInstanceBuilder {
  3174  	builder.title = title
  3175  	builder.titleFlag = true
  3176  	return builder
  3177  }
  3178  
  3179  // 用户提交审批时填写的表单数据,用于所有审批列表中展示。可传多个值,但审批中心pc展示前2个,移动端展示前3个,长度不超过2048字符
  3180  //
  3181  // 示例值:[{ "name": "@i18n@2", "value": "@i18n@3" }]
  3182  func (builder *ExternalInstanceBuilder) Form(form []*ExternalInstanceForm) *ExternalInstanceBuilder {
  3183  	builder.form = form
  3184  	builder.formFlag = true
  3185  	return builder
  3186  }
  3187  
  3188  // 审批发起人 user_id,发起人可在【已发起】列表中看到所有已发起的审批; 在【待审批】,【已审批】【抄送我】列表中,该字段展示审批是谁发起的。审批发起人 open id,和 user id 二选一。
  3189  //
  3190  // 示例值:a987sf9s
  3191  func (builder *ExternalInstanceBuilder) UserId(userId string) *ExternalInstanceBuilder {
  3192  	builder.userId = userId
  3193  	builder.userIdFlag = true
  3194  	return builder
  3195  }
  3196  
  3197  // 审批发起人 用户名,如果发起人不是真实的用户(例如是某个部门),没有 user_id,则可以使用该字段传名称
  3198  //
  3199  // 示例值:@i18n@9
  3200  func (builder *ExternalInstanceBuilder) UserName(userName string) *ExternalInstanceBuilder {
  3201  	builder.userName = userName
  3202  	builder.userNameFlag = true
  3203  	return builder
  3204  }
  3205  
  3206  // 审批发起人 open id,和 user id 二选一
  3207  //
  3208  // 示例值:ou_be73cbc0ee35eb6ca54e9e7cc14998c1
  3209  func (builder *ExternalInstanceBuilder) OpenId(openId string) *ExternalInstanceBuilder {
  3210  	builder.openId = openId
  3211  	builder.openIdFlag = true
  3212  	return builder
  3213  }
  3214  
  3215  // 发起人部门,用于列表中展示发起人所属部门。不传则不展示。如果用户没加入任何部门,传 "",将展示租户名称传 department_name 展示部门名称
  3216  //
  3217  // 示例值:od-8ec33278bc2
  3218  func (builder *ExternalInstanceBuilder) DepartmentId(departmentId string) *ExternalInstanceBuilder {
  3219  	builder.departmentId = departmentId
  3220  	builder.departmentIdFlag = true
  3221  	return builder
  3222  }
  3223  
  3224  // 审批发起人 部门,如果发起人不是真实的用户(例如是某个部门),没有 department_id,则可以使用该字段传名称
  3225  //
  3226  // 示例值:@i18n@10
  3227  func (builder *ExternalInstanceBuilder) DepartmentName(departmentName string) *ExternalInstanceBuilder {
  3228  	builder.departmentName = departmentName
  3229  	builder.departmentNameFlag = true
  3230  	return builder
  3231  }
  3232  
  3233  // 审批发起时间,Unix毫秒时间戳
  3234  //
  3235  // 示例值:1556468012678
  3236  func (builder *ExternalInstanceBuilder) StartTime(startTime string) *ExternalInstanceBuilder {
  3237  	builder.startTime = startTime
  3238  	builder.startTimeFlag = true
  3239  	return builder
  3240  }
  3241  
  3242  // 审批实例结束时间:未结束的审批为 0,Unix毫秒时间戳
  3243  //
  3244  // 示例值:1556468012678
  3245  func (builder *ExternalInstanceBuilder) EndTime(endTime string) *ExternalInstanceBuilder {
  3246  	builder.endTime = endTime
  3247  	builder.endTimeFlag = true
  3248  	return builder
  3249  }
  3250  
  3251  // 审批实例最近更新时间;用于推送数据版本控制如果 update_mode 值为 UPDATE,则只有传过来的 update_time 有变化时(变大),才会更新审批中心中的审批实例信息。使用该字段主要用来避免并发时老的数据更新了新的数据
  3252  //
  3253  // 示例值:1556468012678
  3254  func (builder *ExternalInstanceBuilder) UpdateTime(updateTime string) *ExternalInstanceBuilder {
  3255  	builder.updateTime = updateTime
  3256  	builder.updateTimeFlag = true
  3257  	return builder
  3258  }
  3259  
  3260  // 列表页打开审批实例的方式
  3261  //
  3262  // 示例值:BROWSER
  3263  func (builder *ExternalInstanceBuilder) DisplayMethod(displayMethod string) *ExternalInstanceBuilder {
  3264  	builder.displayMethod = displayMethod
  3265  	builder.displayMethodFlag = true
  3266  	return builder
  3267  }
  3268  
  3269  // 更新方式, 当 update_mode=REPLACE时,每次都以当前推送的数据为最终数据,会删掉审批中心中多余的任务、抄送数据(不在这次推送的数据中); 当 update_mode=UPDATE时,则不会删除审批中心的数据,而只是进行新增和更新实例、任务数据
  3270  //
  3271  // 示例值:UPDATE
  3272  func (builder *ExternalInstanceBuilder) UpdateMode(updateMode string) *ExternalInstanceBuilder {
  3273  	builder.updateMode = updateMode
  3274  	builder.updateModeFlag = true
  3275  	return builder
  3276  }
  3277  
  3278  // 任务列表
  3279  //
  3280  // 示例值:
  3281  func (builder *ExternalInstanceBuilder) TaskList(taskList []*ExternalInstanceTaskNode) *ExternalInstanceBuilder {
  3282  	builder.taskList = taskList
  3283  	builder.taskListFlag = true
  3284  	return builder
  3285  }
  3286  
  3287  // 抄送列表
  3288  //
  3289  // 示例值:
  3290  func (builder *ExternalInstanceBuilder) CcList(ccList []*CcNode) *ExternalInstanceBuilder {
  3291  	builder.ccList = ccList
  3292  	builder.ccListFlag = true
  3293  	return builder
  3294  }
  3295  
  3296  // 国际化文案
  3297  //
  3298  // 示例值:
  3299  func (builder *ExternalInstanceBuilder) I18nResources(i18nResources []*I18nResource) *ExternalInstanceBuilder {
  3300  	builder.i18nResources = i18nResources
  3301  	builder.i18nResourcesFlag = true
  3302  	return builder
  3303  }
  3304  
  3305  // 单据托管认证token,托管回调会附带此token,帮助业务方认证
  3306  //
  3307  // 示例值:788981c886b1c28ac29d1e68efd60683d6d90dfce80938ee9453e2a5f3e9e306
  3308  func (builder *ExternalInstanceBuilder) TrusteeshipUrlToken(trusteeshipUrlToken string) *ExternalInstanceBuilder {
  3309  	builder.trusteeshipUrlToken = trusteeshipUrlToken
  3310  	builder.trusteeshipUrlTokenFlag = true
  3311  	return builder
  3312  }
  3313  
  3314  // 用户的类型,会影响请求参数用户标识域的选择,包括加签操作回传的目标用户, 目前仅支持 "user_id"
  3315  //
  3316  // 示例值:user_id
  3317  func (builder *ExternalInstanceBuilder) TrusteeshipUserIdType(trusteeshipUserIdType string) *ExternalInstanceBuilder {
  3318  	builder.trusteeshipUserIdType = trusteeshipUserIdType
  3319  	builder.trusteeshipUserIdTypeFlag = true
  3320  	return builder
  3321  }
  3322  
  3323  // 单据托管回调接入方的接口的URL地址
  3324  //
  3325  // 示例值:
  3326  func (builder *ExternalInstanceBuilder) TrusteeshipUrls(trusteeshipUrls *TrusteeshipUrls) *ExternalInstanceBuilder {
  3327  	builder.trusteeshipUrls = trusteeshipUrls
  3328  	builder.trusteeshipUrlsFlag = true
  3329  	return builder
  3330  }
  3331  
  3332  func (builder *ExternalInstanceBuilder) Build() *ExternalInstance {
  3333  	req := &ExternalInstance{}
  3334  	if builder.approvalCodeFlag {
  3335  		req.ApprovalCode = &builder.approvalCode
  3336  
  3337  	}
  3338  	if builder.statusFlag {
  3339  		req.Status = &builder.status
  3340  
  3341  	}
  3342  	if builder.extraFlag {
  3343  		req.Extra = &builder.extra
  3344  
  3345  	}
  3346  	if builder.instanceIdFlag {
  3347  		req.InstanceId = &builder.instanceId
  3348  
  3349  	}
  3350  	if builder.linksFlag {
  3351  		req.Links = builder.links
  3352  	}
  3353  	if builder.titleFlag {
  3354  		req.Title = &builder.title
  3355  
  3356  	}
  3357  	if builder.formFlag {
  3358  		req.Form = builder.form
  3359  	}
  3360  	if builder.userIdFlag {
  3361  		req.UserId = &builder.userId
  3362  
  3363  	}
  3364  	if builder.userNameFlag {
  3365  		req.UserName = &builder.userName
  3366  
  3367  	}
  3368  	if builder.openIdFlag {
  3369  		req.OpenId = &builder.openId
  3370  
  3371  	}
  3372  	if builder.departmentIdFlag {
  3373  		req.DepartmentId = &builder.departmentId
  3374  
  3375  	}
  3376  	if builder.departmentNameFlag {
  3377  		req.DepartmentName = &builder.departmentName
  3378  
  3379  	}
  3380  	if builder.startTimeFlag {
  3381  		req.StartTime = &builder.startTime
  3382  
  3383  	}
  3384  	if builder.endTimeFlag {
  3385  		req.EndTime = &builder.endTime
  3386  
  3387  	}
  3388  	if builder.updateTimeFlag {
  3389  		req.UpdateTime = &builder.updateTime
  3390  
  3391  	}
  3392  	if builder.displayMethodFlag {
  3393  		req.DisplayMethod = &builder.displayMethod
  3394  
  3395  	}
  3396  	if builder.updateModeFlag {
  3397  		req.UpdateMode = &builder.updateMode
  3398  
  3399  	}
  3400  	if builder.taskListFlag {
  3401  		req.TaskList = builder.taskList
  3402  	}
  3403  	if builder.ccListFlag {
  3404  		req.CcList = builder.ccList
  3405  	}
  3406  	if builder.i18nResourcesFlag {
  3407  		req.I18nResources = builder.i18nResources
  3408  	}
  3409  	if builder.trusteeshipUrlTokenFlag {
  3410  		req.TrusteeshipUrlToken = &builder.trusteeshipUrlToken
  3411  
  3412  	}
  3413  	if builder.trusteeshipUserIdTypeFlag {
  3414  		req.TrusteeshipUserIdType = &builder.trusteeshipUserIdType
  3415  
  3416  	}
  3417  	if builder.trusteeshipUrlsFlag {
  3418  		req.TrusteeshipUrls = builder.trusteeshipUrls
  3419  	}
  3420  	return req
  3421  }
  3422  
  3423  type ExternalInstanceForm struct {
  3424  	Name  *string `json:"name,omitempty"`  // 表单字段名称
  3425  	Value *string `json:"value,omitempty"` // 表单值
  3426  }
  3427  
  3428  type ExternalInstanceFormBuilder struct {
  3429  	name      string // 表单字段名称
  3430  	nameFlag  bool
  3431  	value     string // 表单值
  3432  	valueFlag bool
  3433  }
  3434  
  3435  func NewExternalInstanceFormBuilder() *ExternalInstanceFormBuilder {
  3436  	builder := &ExternalInstanceFormBuilder{}
  3437  	return builder
  3438  }
  3439  
  3440  // 表单字段名称
  3441  //
  3442  // 示例值:@i18n@2
  3443  func (builder *ExternalInstanceFormBuilder) Name(name string) *ExternalInstanceFormBuilder {
  3444  	builder.name = name
  3445  	builder.nameFlag = true
  3446  	return builder
  3447  }
  3448  
  3449  // 表单值
  3450  //
  3451  // 示例值:@i18n@3
  3452  func (builder *ExternalInstanceFormBuilder) Value(value string) *ExternalInstanceFormBuilder {
  3453  	builder.value = value
  3454  	builder.valueFlag = true
  3455  	return builder
  3456  }
  3457  
  3458  func (builder *ExternalInstanceFormBuilder) Build() *ExternalInstanceForm {
  3459  	req := &ExternalInstanceForm{}
  3460  	if builder.nameFlag {
  3461  		req.Name = &builder.name
  3462  
  3463  	}
  3464  	if builder.valueFlag {
  3465  		req.Value = &builder.value
  3466  
  3467  	}
  3468  	return req
  3469  }
  3470  
  3471  type ExternalInstanceLink struct {
  3472  	PcLink     *string `json:"pc_link,omitempty"`     // pc 端的跳转链接,当用户使用飞书 pc 端时,使用该字段进行跳转
  3473  	MobileLink *string `json:"mobile_link,omitempty"` // 移动端 跳转链接,当用户使用飞书 移动端时,使用该字段进行跳转
  3474  }
  3475  
  3476  type ExternalInstanceLinkBuilder struct {
  3477  	pcLink         string // pc 端的跳转链接,当用户使用飞书 pc 端时,使用该字段进行跳转
  3478  	pcLinkFlag     bool
  3479  	mobileLink     string // 移动端 跳转链接,当用户使用飞书 移动端时,使用该字段进行跳转
  3480  	mobileLinkFlag bool
  3481  }
  3482  
  3483  func NewExternalInstanceLinkBuilder() *ExternalInstanceLinkBuilder {
  3484  	builder := &ExternalInstanceLinkBuilder{}
  3485  	return builder
  3486  }
  3487  
  3488  // pc 端的跳转链接,当用户使用飞书 pc 端时,使用该字段进行跳转
  3489  //
  3490  // 示例值:https://applink.feishu.cn/client/mini_program/open?mode=appCenter&appId=cli_9c90fc38e07a9101&path=pc/pages/detail?id=1234
  3491  func (builder *ExternalInstanceLinkBuilder) PcLink(pcLink string) *ExternalInstanceLinkBuilder {
  3492  	builder.pcLink = pcLink
  3493  	builder.pcLinkFlag = true
  3494  	return builder
  3495  }
  3496  
  3497  // 移动端 跳转链接,当用户使用飞书 移动端时,使用该字段进行跳转
  3498  //
  3499  // 示例值:https://applink.feishu.cn/client/mini_program/open?appId=cli_9c90fc38e07a9101&path=pages/detail?id=1234
  3500  func (builder *ExternalInstanceLinkBuilder) MobileLink(mobileLink string) *ExternalInstanceLinkBuilder {
  3501  	builder.mobileLink = mobileLink
  3502  	builder.mobileLinkFlag = true
  3503  	return builder
  3504  }
  3505  
  3506  func (builder *ExternalInstanceLinkBuilder) Build() *ExternalInstanceLink {
  3507  	req := &ExternalInstanceLink{}
  3508  	if builder.pcLinkFlag {
  3509  		req.PcLink = &builder.pcLink
  3510  
  3511  	}
  3512  	if builder.mobileLinkFlag {
  3513  		req.MobileLink = &builder.mobileLink
  3514  
  3515  	}
  3516  	return req
  3517  }
  3518  
  3519  type ExternalInstanceTask struct {
  3520  	TaskId     *string `json:"task_id,omitempty"`     // 任务 id
  3521  	UpdateTime *string `json:"update_time,omitempty"` // 任务最近更新时间
  3522  }
  3523  
  3524  type ExternalInstanceTaskBuilder struct {
  3525  	taskId         string // 任务 id
  3526  	taskIdFlag     bool
  3527  	updateTime     string // 任务最近更新时间
  3528  	updateTimeFlag bool
  3529  }
  3530  
  3531  func NewExternalInstanceTaskBuilder() *ExternalInstanceTaskBuilder {
  3532  	builder := &ExternalInstanceTaskBuilder{}
  3533  	return builder
  3534  }
  3535  
  3536  // 任务 id
  3537  //
  3538  // 示例值:112253
  3539  func (builder *ExternalInstanceTaskBuilder) TaskId(taskId string) *ExternalInstanceTaskBuilder {
  3540  	builder.taskId = taskId
  3541  	builder.taskIdFlag = true
  3542  	return builder
  3543  }
  3544  
  3545  // 任务最近更新时间
  3546  //
  3547  // 示例值:1591603040000
  3548  func (builder *ExternalInstanceTaskBuilder) UpdateTime(updateTime string) *ExternalInstanceTaskBuilder {
  3549  	builder.updateTime = updateTime
  3550  	builder.updateTimeFlag = true
  3551  	return builder
  3552  }
  3553  
  3554  func (builder *ExternalInstanceTaskBuilder) Build() *ExternalInstanceTask {
  3555  	req := &ExternalInstanceTask{}
  3556  	if builder.taskIdFlag {
  3557  		req.TaskId = &builder.taskId
  3558  
  3559  	}
  3560  	if builder.updateTimeFlag {
  3561  		req.UpdateTime = &builder.updateTime
  3562  
  3563  	}
  3564  	return req
  3565  }
  3566  
  3567  type ExternalInstanceTaskNode struct {
  3568  	TaskId            *string               `json:"task_id,omitempty"`            // 审批实例内的唯一标识,用于更新审批任务时定位数据
  3569  	UserId            *string               `json:"user_id,omitempty"`            // 审批人 user_id,该任务会出现在审批人的【待审批】或【已审批】列表中
  3570  	OpenId            *string               `json:"open_id,omitempty"`            // 审批人 open id,和 user id 二选一
  3571  	Title             *string               `json:"title,omitempty"`              // 审批任务名称
  3572  	Links             *ExternalInstanceLink `json:"links,omitempty"`              // 【待审批】或【已审批】中使用的跳转链接,用于跳转回三方系统pc_link 和 mobile_link 必须填一个,填写的是哪一端的链接,即会跳转到该链接,不受平台影响
  3573  	Status            *string               `json:"status,omitempty"`             // 任务状态
  3574  	Extra             *string               `json:"extra,omitempty"`              // 扩展 json
  3575  	CreateTime        *string               `json:"create_time,omitempty"`        // 任务创建时间,Unix 毫秒时间戳
  3576  	EndTime           *string               `json:"end_time,omitempty"`           // 任务完成时间:未结束的审批为 0,Unix 毫秒时间戳
  3577  	UpdateTime        *string               `json:"update_time,omitempty"`        // task最近更新时间,用于推送数据版本控制; 更新策略同 instance 中的 update_time
  3578  	ActionContext     *string               `json:"action_context,omitempty"`     // 操作上下文,当用户操作时,回调请求中带上该参数,用于传递该任务的上下文数据
  3579  	ActionConfigs     []*ActionConfig       `json:"action_configs,omitempty"`     // 任务级别操作配置,快捷审批目前支持移动端操作
  3580  	DisplayMethod     *string               `json:"display_method,omitempty"`     // 列表页打开审批任务的方式
  3581  	ExcludeStatistics *bool                 `json:"exclude_statistics,omitempty"` // 三方任务支持不纳入效率统计
  3582  }
  3583  
  3584  type ExternalInstanceTaskNodeBuilder struct {
  3585  	taskId                string // 审批实例内的唯一标识,用于更新审批任务时定位数据
  3586  	taskIdFlag            bool
  3587  	userId                string // 审批人 user_id,该任务会出现在审批人的【待审批】或【已审批】列表中
  3588  	userIdFlag            bool
  3589  	openId                string // 审批人 open id,和 user id 二选一
  3590  	openIdFlag            bool
  3591  	title                 string // 审批任务名称
  3592  	titleFlag             bool
  3593  	links                 *ExternalInstanceLink // 【待审批】或【已审批】中使用的跳转链接,用于跳转回三方系统pc_link 和 mobile_link 必须填一个,填写的是哪一端的链接,即会跳转到该链接,不受平台影响
  3594  	linksFlag             bool
  3595  	status                string // 任务状态
  3596  	statusFlag            bool
  3597  	extra                 string // 扩展 json
  3598  	extraFlag             bool
  3599  	createTime            string // 任务创建时间,Unix 毫秒时间戳
  3600  	createTimeFlag        bool
  3601  	endTime               string // 任务完成时间:未结束的审批为 0,Unix 毫秒时间戳
  3602  	endTimeFlag           bool
  3603  	updateTime            string // task最近更新时间,用于推送数据版本控制; 更新策略同 instance 中的 update_time
  3604  	updateTimeFlag        bool
  3605  	actionContext         string // 操作上下文,当用户操作时,回调请求中带上该参数,用于传递该任务的上下文数据
  3606  	actionContextFlag     bool
  3607  	actionConfigs         []*ActionConfig // 任务级别操作配置,快捷审批目前支持移动端操作
  3608  	actionConfigsFlag     bool
  3609  	displayMethod         string // 列表页打开审批任务的方式
  3610  	displayMethodFlag     bool
  3611  	excludeStatistics     bool // 三方任务支持不纳入效率统计
  3612  	excludeStatisticsFlag bool
  3613  }
  3614  
  3615  func NewExternalInstanceTaskNodeBuilder() *ExternalInstanceTaskNodeBuilder {
  3616  	builder := &ExternalInstanceTaskNodeBuilder{}
  3617  	return builder
  3618  }
  3619  
  3620  // 审批实例内的唯一标识,用于更新审批任务时定位数据
  3621  //
  3622  // 示例值:112534
  3623  func (builder *ExternalInstanceTaskNodeBuilder) TaskId(taskId string) *ExternalInstanceTaskNodeBuilder {
  3624  	builder.taskId = taskId
  3625  	builder.taskIdFlag = true
  3626  	return builder
  3627  }
  3628  
  3629  // 审批人 user_id,该任务会出现在审批人的【待审批】或【已审批】列表中
  3630  //
  3631  // 示例值:a987sf9s
  3632  func (builder *ExternalInstanceTaskNodeBuilder) UserId(userId string) *ExternalInstanceTaskNodeBuilder {
  3633  	builder.userId = userId
  3634  	builder.userIdFlag = true
  3635  	return builder
  3636  }
  3637  
  3638  // 审批人 open id,和 user id 二选一
  3639  //
  3640  // 示例值:ou_be73cbc0ee35eb6ca54e9e7cc14998c1
  3641  func (builder *ExternalInstanceTaskNodeBuilder) OpenId(openId string) *ExternalInstanceTaskNodeBuilder {
  3642  	builder.openId = openId
  3643  	builder.openIdFlag = true
  3644  	return builder
  3645  }
  3646  
  3647  // 审批任务名称
  3648  //
  3649  // 示例值:i18n1
  3650  func (builder *ExternalInstanceTaskNodeBuilder) Title(title string) *ExternalInstanceTaskNodeBuilder {
  3651  	builder.title = title
  3652  	builder.titleFlag = true
  3653  	return builder
  3654  }
  3655  
  3656  // 【待审批】或【已审批】中使用的跳转链接,用于跳转回三方系统pc_link 和 mobile_link 必须填一个,填写的是哪一端的链接,即会跳转到该链接,不受平台影响
  3657  //
  3658  // 示例值:
  3659  func (builder *ExternalInstanceTaskNodeBuilder) Links(links *ExternalInstanceLink) *ExternalInstanceTaskNodeBuilder {
  3660  	builder.links = links
  3661  	builder.linksFlag = true
  3662  	return builder
  3663  }
  3664  
  3665  // 任务状态
  3666  //
  3667  // 示例值:PENDING
  3668  func (builder *ExternalInstanceTaskNodeBuilder) Status(status string) *ExternalInstanceTaskNodeBuilder {
  3669  	builder.status = status
  3670  	builder.statusFlag = true
  3671  	return builder
  3672  }
  3673  
  3674  // 扩展 json
  3675  //
  3676  // 示例值:{\"xxx\":\"xxx\"}
  3677  func (builder *ExternalInstanceTaskNodeBuilder) Extra(extra string) *ExternalInstanceTaskNodeBuilder {
  3678  	builder.extra = extra
  3679  	builder.extraFlag = true
  3680  	return builder
  3681  }
  3682  
  3683  // 任务创建时间,Unix 毫秒时间戳
  3684  //
  3685  // 示例值:1556468012678
  3686  func (builder *ExternalInstanceTaskNodeBuilder) CreateTime(createTime string) *ExternalInstanceTaskNodeBuilder {
  3687  	builder.createTime = createTime
  3688  	builder.createTimeFlag = true
  3689  	return builder
  3690  }
  3691  
  3692  // 任务完成时间:未结束的审批为 0,Unix 毫秒时间戳
  3693  //
  3694  // 示例值:1556468012678
  3695  func (builder *ExternalInstanceTaskNodeBuilder) EndTime(endTime string) *ExternalInstanceTaskNodeBuilder {
  3696  	builder.endTime = endTime
  3697  	builder.endTimeFlag = true
  3698  	return builder
  3699  }
  3700  
  3701  // task最近更新时间,用于推送数据版本控制; 更新策略同 instance 中的 update_time
  3702  //
  3703  // 示例值:1556468012678
  3704  func (builder *ExternalInstanceTaskNodeBuilder) UpdateTime(updateTime string) *ExternalInstanceTaskNodeBuilder {
  3705  	builder.updateTime = updateTime
  3706  	builder.updateTimeFlag = true
  3707  	return builder
  3708  }
  3709  
  3710  // 操作上下文,当用户操作时,回调请求中带上该参数,用于传递该任务的上下文数据
  3711  //
  3712  // 示例值:123456
  3713  func (builder *ExternalInstanceTaskNodeBuilder) ActionContext(actionContext string) *ExternalInstanceTaskNodeBuilder {
  3714  	builder.actionContext = actionContext
  3715  	builder.actionContextFlag = true
  3716  	return builder
  3717  }
  3718  
  3719  // 任务级别操作配置,快捷审批目前支持移动端操作
  3720  //
  3721  // 示例值:
  3722  func (builder *ExternalInstanceTaskNodeBuilder) ActionConfigs(actionConfigs []*ActionConfig) *ExternalInstanceTaskNodeBuilder {
  3723  	builder.actionConfigs = actionConfigs
  3724  	builder.actionConfigsFlag = true
  3725  	return builder
  3726  }
  3727  
  3728  // 列表页打开审批任务的方式
  3729  //
  3730  // 示例值:BROWSER
  3731  func (builder *ExternalInstanceTaskNodeBuilder) DisplayMethod(displayMethod string) *ExternalInstanceTaskNodeBuilder {
  3732  	builder.displayMethod = displayMethod
  3733  	builder.displayMethodFlag = true
  3734  	return builder
  3735  }
  3736  
  3737  // 三方任务支持不纳入效率统计
  3738  //
  3739  // 示例值:true
  3740  func (builder *ExternalInstanceTaskNodeBuilder) ExcludeStatistics(excludeStatistics bool) *ExternalInstanceTaskNodeBuilder {
  3741  	builder.excludeStatistics = excludeStatistics
  3742  	builder.excludeStatisticsFlag = true
  3743  	return builder
  3744  }
  3745  
  3746  func (builder *ExternalInstanceTaskNodeBuilder) Build() *ExternalInstanceTaskNode {
  3747  	req := &ExternalInstanceTaskNode{}
  3748  	if builder.taskIdFlag {
  3749  		req.TaskId = &builder.taskId
  3750  
  3751  	}
  3752  	if builder.userIdFlag {
  3753  		req.UserId = &builder.userId
  3754  
  3755  	}
  3756  	if builder.openIdFlag {
  3757  		req.OpenId = &builder.openId
  3758  
  3759  	}
  3760  	if builder.titleFlag {
  3761  		req.Title = &builder.title
  3762  
  3763  	}
  3764  	if builder.linksFlag {
  3765  		req.Links = builder.links
  3766  	}
  3767  	if builder.statusFlag {
  3768  		req.Status = &builder.status
  3769  
  3770  	}
  3771  	if builder.extraFlag {
  3772  		req.Extra = &builder.extra
  3773  
  3774  	}
  3775  	if builder.createTimeFlag {
  3776  		req.CreateTime = &builder.createTime
  3777  
  3778  	}
  3779  	if builder.endTimeFlag {
  3780  		req.EndTime = &builder.endTime
  3781  
  3782  	}
  3783  	if builder.updateTimeFlag {
  3784  		req.UpdateTime = &builder.updateTime
  3785  
  3786  	}
  3787  	if builder.actionContextFlag {
  3788  		req.ActionContext = &builder.actionContext
  3789  
  3790  	}
  3791  	if builder.actionConfigsFlag {
  3792  		req.ActionConfigs = builder.actionConfigs
  3793  	}
  3794  	if builder.displayMethodFlag {
  3795  		req.DisplayMethod = &builder.displayMethod
  3796  
  3797  	}
  3798  	if builder.excludeStatisticsFlag {
  3799  		req.ExcludeStatistics = &builder.excludeStatistics
  3800  
  3801  	}
  3802  	return req
  3803  }
  3804  
  3805  type ExternalTaskItem struct {
  3806  	Id         *string `json:"id,omitempty"`          // 审批任务 ID
  3807  	Status     *string `json:"status,omitempty"`      // 审批任务状态
  3808  	UpdateTime *string `json:"update_time,omitempty"` // 审批任务最后更新时间,单位 毫秒
  3809  }
  3810  
  3811  type ExternalTaskItemBuilder struct {
  3812  	id             string // 审批任务 ID
  3813  	idFlag         bool
  3814  	status         string // 审批任务状态
  3815  	statusFlag     bool
  3816  	updateTime     string // 审批任务最后更新时间,单位 毫秒
  3817  	updateTimeFlag bool
  3818  }
  3819  
  3820  func NewExternalTaskItemBuilder() *ExternalTaskItemBuilder {
  3821  	builder := &ExternalTaskItemBuilder{}
  3822  	return builder
  3823  }
  3824  
  3825  // 审批任务 ID
  3826  //
  3827  // 示例值:310
  3828  func (builder *ExternalTaskItemBuilder) Id(id string) *ExternalTaskItemBuilder {
  3829  	builder.id = id
  3830  	builder.idFlag = true
  3831  	return builder
  3832  }
  3833  
  3834  // 审批任务状态
  3835  //
  3836  // 示例值:PENDING
  3837  func (builder *ExternalTaskItemBuilder) Status(status string) *ExternalTaskItemBuilder {
  3838  	builder.status = status
  3839  	builder.statusFlag = true
  3840  	return builder
  3841  }
  3842  
  3843  // 审批任务最后更新时间,单位 毫秒
  3844  //
  3845  // 示例值:1621863215000
  3846  func (builder *ExternalTaskItemBuilder) UpdateTime(updateTime string) *ExternalTaskItemBuilder {
  3847  	builder.updateTime = updateTime
  3848  	builder.updateTimeFlag = true
  3849  	return builder
  3850  }
  3851  
  3852  func (builder *ExternalTaskItemBuilder) Build() *ExternalTaskItem {
  3853  	req := &ExternalTaskItem{}
  3854  	if builder.idFlag {
  3855  		req.Id = &builder.id
  3856  
  3857  	}
  3858  	if builder.statusFlag {
  3859  		req.Status = &builder.status
  3860  
  3861  	}
  3862  	if builder.updateTimeFlag {
  3863  		req.UpdateTime = &builder.updateTime
  3864  
  3865  	}
  3866  	return req
  3867  }
  3868  
  3869  type ExternalTaskList struct {
  3870  	InstanceId   *string             `json:"instance_id,omitempty"`   // 审批实例 ID
  3871  	ApprovalId   *string             `json:"approval_id,omitempty"`   // 审批的id
  3872  	ApprovalCode *string             `json:"approval_code,omitempty"` // 审批对应的 approval_code
  3873  	Status       *string             `json:"status,omitempty"`        // 审批实例当前的状态
  3874  	UpdateTime   *string             `json:"update_time,omitempty"`   // 审批实例最后更新时间,单位 毫秒
  3875  	Tasks        []*ExternalTaskItem `json:"tasks,omitempty"`         // 审批实例下的审批任务
  3876  }
  3877  
  3878  type ExternalTaskListBuilder struct {
  3879  	instanceId       string // 审批实例 ID
  3880  	instanceIdFlag   bool
  3881  	approvalId       string // 审批的id
  3882  	approvalIdFlag   bool
  3883  	approvalCode     string // 审批对应的 approval_code
  3884  	approvalCodeFlag bool
  3885  	status           string // 审批实例当前的状态
  3886  	statusFlag       bool
  3887  	updateTime       string // 审批实例最后更新时间,单位 毫秒
  3888  	updateTimeFlag   bool
  3889  	tasks            []*ExternalTaskItem // 审批实例下的审批任务
  3890  	tasksFlag        bool
  3891  }
  3892  
  3893  func NewExternalTaskListBuilder() *ExternalTaskListBuilder {
  3894  	builder := &ExternalTaskListBuilder{}
  3895  	return builder
  3896  }
  3897  
  3898  // 审批实例 ID
  3899  //
  3900  // 示例值:29075
  3901  func (builder *ExternalTaskListBuilder) InstanceId(instanceId string) *ExternalTaskListBuilder {
  3902  	builder.instanceId = instanceId
  3903  	builder.instanceIdFlag = true
  3904  	return builder
  3905  }
  3906  
  3907  // 审批的id
  3908  //
  3909  // 示例值:fwwweffff33111133xxx
  3910  func (builder *ExternalTaskListBuilder) ApprovalId(approvalId string) *ExternalTaskListBuilder {
  3911  	builder.approvalId = approvalId
  3912  	builder.approvalIdFlag = true
  3913  	return builder
  3914  }
  3915  
  3916  // 审批对应的 approval_code
  3917  //
  3918  // 示例值:B7B65FFE-C2GC-452F-9F0F-9AA8352363D6
  3919  func (builder *ExternalTaskListBuilder) ApprovalCode(approvalCode string) *ExternalTaskListBuilder {
  3920  	builder.approvalCode = approvalCode
  3921  	builder.approvalCodeFlag = true
  3922  	return builder
  3923  }
  3924  
  3925  // 审批实例当前的状态
  3926  //
  3927  // 示例值:PENDING
  3928  func (builder *ExternalTaskListBuilder) Status(status string) *ExternalTaskListBuilder {
  3929  	builder.status = status
  3930  	builder.statusFlag = true
  3931  	return builder
  3932  }
  3933  
  3934  // 审批实例最后更新时间,单位 毫秒
  3935  //
  3936  // 示例值:1621863215000
  3937  func (builder *ExternalTaskListBuilder) UpdateTime(updateTime string) *ExternalTaskListBuilder {
  3938  	builder.updateTime = updateTime
  3939  	builder.updateTimeFlag = true
  3940  	return builder
  3941  }
  3942  
  3943  // 审批实例下的审批任务
  3944  //
  3945  // 示例值:
  3946  func (builder *ExternalTaskListBuilder) Tasks(tasks []*ExternalTaskItem) *ExternalTaskListBuilder {
  3947  	builder.tasks = tasks
  3948  	builder.tasksFlag = true
  3949  	return builder
  3950  }
  3951  
  3952  func (builder *ExternalTaskListBuilder) Build() *ExternalTaskList {
  3953  	req := &ExternalTaskList{}
  3954  	if builder.instanceIdFlag {
  3955  		req.InstanceId = &builder.instanceId
  3956  
  3957  	}
  3958  	if builder.approvalIdFlag {
  3959  		req.ApprovalId = &builder.approvalId
  3960  
  3961  	}
  3962  	if builder.approvalCodeFlag {
  3963  		req.ApprovalCode = &builder.approvalCode
  3964  
  3965  	}
  3966  	if builder.statusFlag {
  3967  		req.Status = &builder.status
  3968  
  3969  	}
  3970  	if builder.updateTimeFlag {
  3971  		req.UpdateTime = &builder.updateTime
  3972  
  3973  	}
  3974  	if builder.tasksFlag {
  3975  		req.Tasks = builder.tasks
  3976  	}
  3977  	return req
  3978  }
  3979  
  3980  type FieldGroup struct {
  3981  	Writable []string `json:"writable,omitempty"` // 可写权限的表单项的 id列表
  3982  	Readable []string `json:"readable,omitempty"` // 可读权限的表单项的 id列表
  3983  }
  3984  
  3985  type FieldGroupBuilder struct {
  3986  	writable     []string // 可写权限的表单项的 id列表
  3987  	writableFlag bool
  3988  	readable     []string // 可读权限的表单项的 id列表
  3989  	readableFlag bool
  3990  }
  3991  
  3992  func NewFieldGroupBuilder() *FieldGroupBuilder {
  3993  	builder := &FieldGroupBuilder{}
  3994  	return builder
  3995  }
  3996  
  3997  // 可写权限的表单项的 id列表
  3998  //
  3999  // 示例值:9293493
  4000  func (builder *FieldGroupBuilder) Writable(writable []string) *FieldGroupBuilder {
  4001  	builder.writable = writable
  4002  	builder.writableFlag = true
  4003  	return builder
  4004  }
  4005  
  4006  // 可读权限的表单项的 id列表
  4007  //
  4008  // 示例值:9293493
  4009  func (builder *FieldGroupBuilder) Readable(readable []string) *FieldGroupBuilder {
  4010  	builder.readable = readable
  4011  	builder.readableFlag = true
  4012  	return builder
  4013  }
  4014  
  4015  func (builder *FieldGroupBuilder) Build() *FieldGroup {
  4016  	req := &FieldGroup{}
  4017  	if builder.writableFlag {
  4018  		req.Writable = builder.writable
  4019  	}
  4020  	if builder.readableFlag {
  4021  		req.Readable = builder.readable
  4022  	}
  4023  	return req
  4024  }
  4025  
  4026  type File struct {
  4027  	Url      *string `json:"url,omitempty"`       // 附件路径
  4028  	FileSize *int    `json:"file_size,omitempty"` // 附件大小
  4029  	Title    *string `json:"title,omitempty"`     // 附件标题
  4030  	Type     *string `json:"type,omitempty"`      // 附件类别
  4031  }
  4032  
  4033  type FileBuilder struct {
  4034  	url          string // 附件路径
  4035  	urlFlag      bool
  4036  	fileSize     int // 附件大小
  4037  	fileSizeFlag bool
  4038  	title        string // 附件标题
  4039  	titleFlag    bool
  4040  	type_        string // 附件类别
  4041  	typeFlag     bool
  4042  }
  4043  
  4044  func NewFileBuilder() *FileBuilder {
  4045  	builder := &FileBuilder{}
  4046  	return builder
  4047  }
  4048  
  4049  // 附件路径
  4050  //
  4051  // 示例值:https://p3-approval-sign.byteimg.com/lark-approval-attachment/image/20220714/1/332f3596-0845-4746-a4bc-818d54ad435b.png~tplv-ottatrvjsm-image.image?x-expires=1659033558&x-signature=6edF3k%2BaHeAuvfcBRGOkbckoUl4%3D#.png
  4052  func (builder *FileBuilder) Url(url string) *FileBuilder {
  4053  	builder.url = url
  4054  	builder.urlFlag = true
  4055  	return builder
  4056  }
  4057  
  4058  // 附件大小
  4059  //
  4060  // 示例值:186823
  4061  func (builder *FileBuilder) FileSize(fileSize int) *FileBuilder {
  4062  	builder.fileSize = fileSize
  4063  	builder.fileSizeFlag = true
  4064  	return builder
  4065  }
  4066  
  4067  // 附件标题
  4068  //
  4069  // 示例值:e018906140ed9388234bd03b0.png
  4070  func (builder *FileBuilder) Title(title string) *FileBuilder {
  4071  	builder.title = title
  4072  	builder.titleFlag = true
  4073  	return builder
  4074  }
  4075  
  4076  // 附件类别
  4077  //
  4078  // 示例值:image
  4079  func (builder *FileBuilder) Type(type_ string) *FileBuilder {
  4080  	builder.type_ = type_
  4081  	builder.typeFlag = true
  4082  	return builder
  4083  }
  4084  
  4085  func (builder *FileBuilder) Build() *File {
  4086  	req := &File{}
  4087  	if builder.urlFlag {
  4088  		req.Url = &builder.url
  4089  
  4090  	}
  4091  	if builder.fileSizeFlag {
  4092  		req.FileSize = &builder.fileSize
  4093  
  4094  	}
  4095  	if builder.titleFlag {
  4096  		req.Title = &builder.title
  4097  
  4098  	}
  4099  	if builder.typeFlag {
  4100  		req.Type = &builder.type_
  4101  
  4102  	}
  4103  	return req
  4104  }
  4105  
  4106  type I18nResource struct {
  4107  	Locale    *string             `json:"locale,omitempty"`     // 语言可选值有: zh-CN:中文 en-US:英文 ja-JP:日文
  4108  	Texts     []*I18nResourceText `json:"texts,omitempty"`      // 文案 key, value, i18n key 以 @i18n@ 开头; 该字段主要用于做国际化,语序用户同时传多个语言的文案,审批中心会根据用户当前的语音环境使用对应的文案,如果没有传用户当前的语音环境文案,则会使用默认的语言文案。
  4109  	IsDefault *bool               `json:"is_default,omitempty"` // 是否默认语言,默认语言需要包含所有key,非默认语言如果key不存在会使用默认语言代替
  4110  }
  4111  
  4112  type I18nResourceBuilder struct {
  4113  	locale        string // 语言可选值有: zh-CN:中文 en-US:英文 ja-JP:日文
  4114  	localeFlag    bool
  4115  	texts         []*I18nResourceText // 文案 key, value, i18n key 以 @i18n@ 开头; 该字段主要用于做国际化,语序用户同时传多个语言的文案,审批中心会根据用户当前的语音环境使用对应的文案,如果没有传用户当前的语音环境文案,则会使用默认的语言文案。
  4116  	textsFlag     bool
  4117  	isDefault     bool // 是否默认语言,默认语言需要包含所有key,非默认语言如果key不存在会使用默认语言代替
  4118  	isDefaultFlag bool
  4119  }
  4120  
  4121  func NewI18nResourceBuilder() *I18nResourceBuilder {
  4122  	builder := &I18nResourceBuilder{}
  4123  	return builder
  4124  }
  4125  
  4126  // 语言可选值有: zh-CN:中文 en-US:英文 ja-JP:日文
  4127  //
  4128  // 示例值:zh-CN
  4129  func (builder *I18nResourceBuilder) Locale(locale string) *I18nResourceBuilder {
  4130  	builder.locale = locale
  4131  	builder.localeFlag = true
  4132  	return builder
  4133  }
  4134  
  4135  // 文案 key, value, i18n key 以 @i18n@ 开头; 该字段主要用于做国际化,语序用户同时传多个语言的文案,审批中心会根据用户当前的语音环境使用对应的文案,如果没有传用户当前的语音环境文案,则会使用默认的语言文案。
  4136  //
  4137  // 示例值:{ "@i18n@1": "权限申请", "@i18n@2": "OA审批", "@i18n@3": "Permission" }
  4138  func (builder *I18nResourceBuilder) Texts(texts []*I18nResourceText) *I18nResourceBuilder {
  4139  	builder.texts = texts
  4140  	builder.textsFlag = true
  4141  	return builder
  4142  }
  4143  
  4144  // 是否默认语言,默认语言需要包含所有key,非默认语言如果key不存在会使用默认语言代替
  4145  //
  4146  // 示例值:true
  4147  func (builder *I18nResourceBuilder) IsDefault(isDefault bool) *I18nResourceBuilder {
  4148  	builder.isDefault = isDefault
  4149  	builder.isDefaultFlag = true
  4150  	return builder
  4151  }
  4152  
  4153  func (builder *I18nResourceBuilder) Build() *I18nResource {
  4154  	req := &I18nResource{}
  4155  	if builder.localeFlag {
  4156  		req.Locale = &builder.locale
  4157  
  4158  	}
  4159  	if builder.textsFlag {
  4160  		req.Texts = builder.texts
  4161  	}
  4162  	if builder.isDefaultFlag {
  4163  		req.IsDefault = &builder.isDefault
  4164  
  4165  	}
  4166  	return req
  4167  }
  4168  
  4169  type I18nResourceText struct {
  4170  	Key   *string `json:"key,omitempty"`   // 文案key
  4171  	Value *string `json:"value,omitempty"` // 文案
  4172  }
  4173  
  4174  type I18nResourceTextBuilder struct {
  4175  	key       string // 文案key
  4176  	keyFlag   bool
  4177  	value     string // 文案
  4178  	valueFlag bool
  4179  }
  4180  
  4181  func NewI18nResourceTextBuilder() *I18nResourceTextBuilder {
  4182  	builder := &I18nResourceTextBuilder{}
  4183  	return builder
  4184  }
  4185  
  4186  // 文案key
  4187  //
  4188  // 示例值:@i18n@1
  4189  func (builder *I18nResourceTextBuilder) Key(key string) *I18nResourceTextBuilder {
  4190  	builder.key = key
  4191  	builder.keyFlag = true
  4192  	return builder
  4193  }
  4194  
  4195  // 文案
  4196  //
  4197  // 示例值:people
  4198  func (builder *I18nResourceTextBuilder) Value(value string) *I18nResourceTextBuilder {
  4199  	builder.value = value
  4200  	builder.valueFlag = true
  4201  	return builder
  4202  }
  4203  
  4204  func (builder *I18nResourceTextBuilder) Build() *I18nResourceText {
  4205  	req := &I18nResourceText{}
  4206  	if builder.keyFlag {
  4207  		req.Key = &builder.key
  4208  
  4209  	}
  4210  	if builder.valueFlag {
  4211  		req.Value = &builder.value
  4212  
  4213  	}
  4214  	return req
  4215  }
  4216  
  4217  type Instance struct {
  4218  	InstanceCode *string `json:"instance_code,omitempty"` // 审批实例code
  4219  	ApprovalName *string `json:"approval_name,omitempty"` // 审批名称
  4220  	StartTime    *string `json:"start_time,omitempty"`    // 审批实例发起时间戳
  4221  	EndTime      *string `json:"end_time,omitempty"`      // 审批实例结束时间戳
  4222  	UserId       *string `json:"user_id,omitempty"`       // 发起人
  4223  	SerialId     *string `json:"serial_id,omitempty"`     // 申请编号
  4224  }
  4225  
  4226  type InstanceBuilder struct {
  4227  	instanceCode     string // 审批实例code
  4228  	instanceCodeFlag bool
  4229  	approvalName     string // 审批名称
  4230  	approvalNameFlag bool
  4231  	startTime        string // 审批实例发起时间戳
  4232  	startTimeFlag    bool
  4233  	endTime          string // 审批实例结束时间戳
  4234  	endTimeFlag      bool
  4235  	userId           string // 发起人
  4236  	userIdFlag       bool
  4237  	serialId         string // 申请编号
  4238  	serialIdFlag     bool
  4239  }
  4240  
  4241  func NewInstanceBuilder() *InstanceBuilder {
  4242  	builder := &InstanceBuilder{}
  4243  	return builder
  4244  }
  4245  
  4246  // 审批实例code
  4247  //
  4248  // 示例值:
  4249  func (builder *InstanceBuilder) InstanceCode(instanceCode string) *InstanceBuilder {
  4250  	builder.instanceCode = instanceCode
  4251  	builder.instanceCodeFlag = true
  4252  	return builder
  4253  }
  4254  
  4255  // 审批名称
  4256  //
  4257  // 示例值:
  4258  func (builder *InstanceBuilder) ApprovalName(approvalName string) *InstanceBuilder {
  4259  	builder.approvalName = approvalName
  4260  	builder.approvalNameFlag = true
  4261  	return builder
  4262  }
  4263  
  4264  // 审批实例发起时间戳
  4265  //
  4266  // 示例值:
  4267  func (builder *InstanceBuilder) StartTime(startTime string) *InstanceBuilder {
  4268  	builder.startTime = startTime
  4269  	builder.startTimeFlag = true
  4270  	return builder
  4271  }
  4272  
  4273  // 审批实例结束时间戳
  4274  //
  4275  // 示例值:
  4276  func (builder *InstanceBuilder) EndTime(endTime string) *InstanceBuilder {
  4277  	builder.endTime = endTime
  4278  	builder.endTimeFlag = true
  4279  	return builder
  4280  }
  4281  
  4282  // 发起人
  4283  //
  4284  // 示例值:
  4285  func (builder *InstanceBuilder) UserId(userId string) *InstanceBuilder {
  4286  	builder.userId = userId
  4287  	builder.userIdFlag = true
  4288  	return builder
  4289  }
  4290  
  4291  // 申请编号
  4292  //
  4293  // 示例值:
  4294  func (builder *InstanceBuilder) SerialId(serialId string) *InstanceBuilder {
  4295  	builder.serialId = serialId
  4296  	builder.serialIdFlag = true
  4297  	return builder
  4298  }
  4299  
  4300  func (builder *InstanceBuilder) Build() *Instance {
  4301  	req := &Instance{}
  4302  	if builder.instanceCodeFlag {
  4303  		req.InstanceCode = &builder.instanceCode
  4304  
  4305  	}
  4306  	if builder.approvalNameFlag {
  4307  		req.ApprovalName = &builder.approvalName
  4308  
  4309  	}
  4310  	if builder.startTimeFlag {
  4311  		req.StartTime = &builder.startTime
  4312  
  4313  	}
  4314  	if builder.endTimeFlag {
  4315  		req.EndTime = &builder.endTime
  4316  
  4317  	}
  4318  	if builder.userIdFlag {
  4319  		req.UserId = &builder.userId
  4320  
  4321  	}
  4322  	if builder.serialIdFlag {
  4323  		req.SerialId = &builder.serialId
  4324  
  4325  	}
  4326  	return req
  4327  }
  4328  
  4329  type InstanceCancel struct {
  4330  	ApprovalCode *string `json:"approval_code,omitempty"` // 审批定义Code
  4331  	InstanceCode *string `json:"instance_code,omitempty"` // 审批实例Code
  4332  	UserId       *string `json:"user_id,omitempty"`       // 操作用户, 根据user_id_type填写
  4333  }
  4334  
  4335  type InstanceCancelBuilder struct {
  4336  	approvalCode     string // 审批定义Code
  4337  	approvalCodeFlag bool
  4338  	instanceCode     string // 审批实例Code
  4339  	instanceCodeFlag bool
  4340  	userId           string // 操作用户, 根据user_id_type填写
  4341  	userIdFlag       bool
  4342  }
  4343  
  4344  func NewInstanceCancelBuilder() *InstanceCancelBuilder {
  4345  	builder := &InstanceCancelBuilder{}
  4346  	return builder
  4347  }
  4348  
  4349  // 审批定义Code
  4350  //
  4351  // 示例值:7C468A54-8745-2245-9675-08B7C63E7A85
  4352  func (builder *InstanceCancelBuilder) ApprovalCode(approvalCode string) *InstanceCancelBuilder {
  4353  	builder.approvalCode = approvalCode
  4354  	builder.approvalCodeFlag = true
  4355  	return builder
  4356  }
  4357  
  4358  // 审批实例Code
  4359  //
  4360  // 示例值:81D31358-93AF-92D6-7425-01A5D67C4E71
  4361  func (builder *InstanceCancelBuilder) InstanceCode(instanceCode string) *InstanceCancelBuilder {
  4362  	builder.instanceCode = instanceCode
  4363  	builder.instanceCodeFlag = true
  4364  	return builder
  4365  }
  4366  
  4367  // 操作用户, 根据user_id_type填写
  4368  //
  4369  // 示例值:f7cb567e
  4370  func (builder *InstanceCancelBuilder) UserId(userId string) *InstanceCancelBuilder {
  4371  	builder.userId = userId
  4372  	builder.userIdFlag = true
  4373  	return builder
  4374  }
  4375  
  4376  func (builder *InstanceCancelBuilder) Build() *InstanceCancel {
  4377  	req := &InstanceCancel{}
  4378  	if builder.approvalCodeFlag {
  4379  		req.ApprovalCode = &builder.approvalCode
  4380  
  4381  	}
  4382  	if builder.instanceCodeFlag {
  4383  		req.InstanceCode = &builder.instanceCode
  4384  
  4385  	}
  4386  	if builder.userIdFlag {
  4387  		req.UserId = &builder.userId
  4388  
  4389  	}
  4390  	return req
  4391  }
  4392  
  4393  type InstanceCc struct {
  4394  	ApprovalCode *string  `json:"approval_code,omitempty"` // 审批定义 code
  4395  	InstanceCode *string  `json:"instance_code,omitempty"` // 审批实例 code
  4396  	UserId       *string  `json:"user_id,omitempty"`       // 根据user_id_type填写发起抄送的人的用户id
  4397  	CcUserIds    []string `json:"cc_user_ids,omitempty"`   // 根据user_id_type填写被抄送人的 用户id 列表
  4398  	Comment      *string  `json:"comment,omitempty"`       // 抄送留言
  4399  }
  4400  
  4401  type InstanceCcBuilder struct {
  4402  	approvalCode     string // 审批定义 code
  4403  	approvalCodeFlag bool
  4404  	instanceCode     string // 审批实例 code
  4405  	instanceCodeFlag bool
  4406  	userId           string // 根据user_id_type填写发起抄送的人的用户id
  4407  	userIdFlag       bool
  4408  	ccUserIds        []string // 根据user_id_type填写被抄送人的 用户id 列表
  4409  	ccUserIdsFlag    bool
  4410  	comment          string // 抄送留言
  4411  	commentFlag      bool
  4412  }
  4413  
  4414  func NewInstanceCcBuilder() *InstanceCcBuilder {
  4415  	builder := &InstanceCcBuilder{}
  4416  	return builder
  4417  }
  4418  
  4419  // 审批定义 code
  4420  //
  4421  // 示例值:7C468A54-8745-2245-9675-08B7C63E7A85
  4422  func (builder *InstanceCcBuilder) ApprovalCode(approvalCode string) *InstanceCcBuilder {
  4423  	builder.approvalCode = approvalCode
  4424  	builder.approvalCodeFlag = true
  4425  	return builder
  4426  }
  4427  
  4428  // 审批实例 code
  4429  //
  4430  // 示例值:7C468A54-8745-2245-9675-08B7C63E7A85
  4431  func (builder *InstanceCcBuilder) InstanceCode(instanceCode string) *InstanceCcBuilder {
  4432  	builder.instanceCode = instanceCode
  4433  	builder.instanceCodeFlag = true
  4434  	return builder
  4435  }
  4436  
  4437  // 根据user_id_type填写发起抄送的人的用户id
  4438  //
  4439  // 示例值:f7cb567e
  4440  func (builder *InstanceCcBuilder) UserId(userId string) *InstanceCcBuilder {
  4441  	builder.userId = userId
  4442  	builder.userIdFlag = true
  4443  	return builder
  4444  }
  4445  
  4446  // 根据user_id_type填写被抄送人的 用户id 列表
  4447  //
  4448  // 示例值:f7cb567e
  4449  func (builder *InstanceCcBuilder) CcUserIds(ccUserIds []string) *InstanceCcBuilder {
  4450  	builder.ccUserIds = ccUserIds
  4451  	builder.ccUserIdsFlag = true
  4452  	return builder
  4453  }
  4454  
  4455  // 抄送留言
  4456  //
  4457  // 示例值:ok
  4458  func (builder *InstanceCcBuilder) Comment(comment string) *InstanceCcBuilder {
  4459  	builder.comment = comment
  4460  	builder.commentFlag = true
  4461  	return builder
  4462  }
  4463  
  4464  func (builder *InstanceCcBuilder) Build() *InstanceCc {
  4465  	req := &InstanceCc{}
  4466  	if builder.approvalCodeFlag {
  4467  		req.ApprovalCode = &builder.approvalCode
  4468  
  4469  	}
  4470  	if builder.instanceCodeFlag {
  4471  		req.InstanceCode = &builder.instanceCode
  4472  
  4473  	}
  4474  	if builder.userIdFlag {
  4475  		req.UserId = &builder.userId
  4476  
  4477  	}
  4478  	if builder.ccUserIdsFlag {
  4479  		req.CcUserIds = builder.ccUserIds
  4480  	}
  4481  	if builder.commentFlag {
  4482  		req.Comment = &builder.comment
  4483  
  4484  	}
  4485  	return req
  4486  }
  4487  
  4488  type InstanceCcUser struct {
  4489  	UserId *string `json:"user_id,omitempty"` // 抄送人 user id
  4490  	CcId   *string `json:"cc_id,omitempty"`   // 审批实例内抄送唯一标识
  4491  	OpenId *string `json:"open_id,omitempty"` // 抄送人 open id
  4492  }
  4493  
  4494  type InstanceCcUserBuilder struct {
  4495  	userId     string // 抄送人 user id
  4496  	userIdFlag bool
  4497  	ccId       string // 审批实例内抄送唯一标识
  4498  	ccIdFlag   bool
  4499  	openId     string // 抄送人 open id
  4500  	openIdFlag bool
  4501  }
  4502  
  4503  func NewInstanceCcUserBuilder() *InstanceCcUserBuilder {
  4504  	builder := &InstanceCcUserBuilder{}
  4505  	return builder
  4506  }
  4507  
  4508  // 抄送人 user id
  4509  //
  4510  // 示例值:eea5gefe
  4511  func (builder *InstanceCcUserBuilder) UserId(userId string) *InstanceCcUserBuilder {
  4512  	builder.userId = userId
  4513  	builder.userIdFlag = true
  4514  	return builder
  4515  }
  4516  
  4517  // 审批实例内抄送唯一标识
  4518  //
  4519  // 示例值:123445
  4520  func (builder *InstanceCcUserBuilder) CcId(ccId string) *InstanceCcUserBuilder {
  4521  	builder.ccId = ccId
  4522  	builder.ccIdFlag = true
  4523  	return builder
  4524  }
  4525  
  4526  // 抄送人 open id
  4527  //
  4528  // 示例值:ou_12345
  4529  func (builder *InstanceCcUserBuilder) OpenId(openId string) *InstanceCcUserBuilder {
  4530  	builder.openId = openId
  4531  	builder.openIdFlag = true
  4532  	return builder
  4533  }
  4534  
  4535  func (builder *InstanceCcUserBuilder) Build() *InstanceCcUser {
  4536  	req := &InstanceCcUser{}
  4537  	if builder.userIdFlag {
  4538  		req.UserId = &builder.userId
  4539  
  4540  	}
  4541  	if builder.ccIdFlag {
  4542  		req.CcId = &builder.ccId
  4543  
  4544  	}
  4545  	if builder.openIdFlag {
  4546  		req.OpenId = &builder.openId
  4547  
  4548  	}
  4549  	return req
  4550  }
  4551  
  4552  type InstanceComment struct {
  4553  	Id         *string `json:"id,omitempty"`          // 评论 id
  4554  	UserId     *string `json:"user_id,omitempty"`     // 发表评论用户
  4555  	OpenId     *string `json:"open_id,omitempty"`     // 发表评论用户 open id
  4556  	Comment    *string `json:"comment,omitempty"`     // 评论内容
  4557  	CreateTime *string `json:"create_time,omitempty"` // 1564590532967
  4558  	Files      []*File `json:"files,omitempty"`       // 评论附件
  4559  }
  4560  
  4561  type InstanceCommentBuilder struct {
  4562  	id             string // 评论 id
  4563  	idFlag         bool
  4564  	userId         string // 发表评论用户
  4565  	userIdFlag     bool
  4566  	openId         string // 发表评论用户 open id
  4567  	openIdFlag     bool
  4568  	comment        string // 评论内容
  4569  	commentFlag    bool
  4570  	createTime     string // 1564590532967
  4571  	createTimeFlag bool
  4572  	files          []*File // 评论附件
  4573  	filesFlag      bool
  4574  }
  4575  
  4576  func NewInstanceCommentBuilder() *InstanceCommentBuilder {
  4577  	builder := &InstanceCommentBuilder{}
  4578  	return builder
  4579  }
  4580  
  4581  // 评论 id
  4582  //
  4583  // 示例值:1234
  4584  func (builder *InstanceCommentBuilder) Id(id string) *InstanceCommentBuilder {
  4585  	builder.id = id
  4586  	builder.idFlag = true
  4587  	return builder
  4588  }
  4589  
  4590  // 发表评论用户
  4591  //
  4592  // 示例值:f7cb567e
  4593  func (builder *InstanceCommentBuilder) UserId(userId string) *InstanceCommentBuilder {
  4594  	builder.userId = userId
  4595  	builder.userIdFlag = true
  4596  	return builder
  4597  }
  4598  
  4599  // 发表评论用户 open id
  4600  //
  4601  // 示例值:ou_123456
  4602  func (builder *InstanceCommentBuilder) OpenId(openId string) *InstanceCommentBuilder {
  4603  	builder.openId = openId
  4604  	builder.openIdFlag = true
  4605  	return builder
  4606  }
  4607  
  4608  // 评论内容
  4609  //
  4610  // 示例值:ok
  4611  func (builder *InstanceCommentBuilder) Comment(comment string) *InstanceCommentBuilder {
  4612  	builder.comment = comment
  4613  	builder.commentFlag = true
  4614  	return builder
  4615  }
  4616  
  4617  // 1564590532967
  4618  //
  4619  // 示例值:评论时间
  4620  func (builder *InstanceCommentBuilder) CreateTime(createTime string) *InstanceCommentBuilder {
  4621  	builder.createTime = createTime
  4622  	builder.createTimeFlag = true
  4623  	return builder
  4624  }
  4625  
  4626  // 评论附件
  4627  //
  4628  // 示例值:
  4629  func (builder *InstanceCommentBuilder) Files(files []*File) *InstanceCommentBuilder {
  4630  	builder.files = files
  4631  	builder.filesFlag = true
  4632  	return builder
  4633  }
  4634  
  4635  func (builder *InstanceCommentBuilder) Build() *InstanceComment {
  4636  	req := &InstanceComment{}
  4637  	if builder.idFlag {
  4638  		req.Id = &builder.id
  4639  
  4640  	}
  4641  	if builder.userIdFlag {
  4642  		req.UserId = &builder.userId
  4643  
  4644  	}
  4645  	if builder.openIdFlag {
  4646  		req.OpenId = &builder.openId
  4647  
  4648  	}
  4649  	if builder.commentFlag {
  4650  		req.Comment = &builder.comment
  4651  
  4652  	}
  4653  	if builder.createTimeFlag {
  4654  		req.CreateTime = &builder.createTime
  4655  
  4656  	}
  4657  	if builder.filesFlag {
  4658  		req.Files = builder.files
  4659  	}
  4660  	return req
  4661  }
  4662  
  4663  type InstanceCreate struct {
  4664  	ApprovalCode           *string         `json:"approval_code,omitempty"`              // 审批定义 code
  4665  	UserId                 *string         `json:"user_id,omitempty"`                    // 发起审批用户
  4666  	OpenId                 *string         `json:"open_id,omitempty"`                    // 发起审批用户 open id, 如果传了 user_id 则优先使用 user_id
  4667  	DepartmentId           *string         `json:"department_id,omitempty"`              // 发起审批用户部门id,如果用户只属于一个部门,可以不填。如果属于多个部门,默认会选择部门列表第一个部门
  4668  	Form                   *string         `json:"form,omitempty"`                       // json 数组,控件值
  4669  	NodeApproverUserIdList []*NodeApprover `json:"node_approver_user_id_list,omitempty"` // 如果有发起人自选节点,则需要填写对应节点的审批人
  4670  	NodeApproverOpenIdList []*NodeApprover `json:"node_approver_open_id_list,omitempty"` // 审批人发起人自选 open id,与上述node_approver_user_id_list字段取并集
  4671  	NodeCcUserIdList       []*NodeCc       `json:"node_cc_user_id_list,omitempty"`       // 如果有发起人自选节点,则可填写对应节点的抄送人,单个节点最多选择20位抄送人
  4672  	NodeCcOpenIdList       []*NodeCc       `json:"node_cc_open_id_list,omitempty"`       // 抄送人发起人自选 open id 单个节点最多选择20位抄送人
  4673  	Uuid                   *string         `json:"uuid,omitempty"`                       // 审批实例 uuid,用于幂等操作, 每个租户下面的唯一key,同一个 uuid 只能用于创建一个审批实例,如果冲突,返回错误码 60012 ,格式建议为 XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX,不区分大小写
  4674  	AllowResubmit          *bool           `json:"allow_resubmit,omitempty"`             // 可配置是否可以再次提交
  4675  	AllowSubmitAgain       *bool           `json:"allow_submit_again,omitempty"`         // 可配置是否可以重新提交
  4676  }
  4677  
  4678  type InstanceCreateBuilder struct {
  4679  	approvalCode               string // 审批定义 code
  4680  	approvalCodeFlag           bool
  4681  	userId                     string // 发起审批用户
  4682  	userIdFlag                 bool
  4683  	openId                     string // 发起审批用户 open id, 如果传了 user_id 则优先使用 user_id
  4684  	openIdFlag                 bool
  4685  	departmentId               string // 发起审批用户部门id,如果用户只属于一个部门,可以不填。如果属于多个部门,默认会选择部门列表第一个部门
  4686  	departmentIdFlag           bool
  4687  	form                       string // json 数组,控件值
  4688  	formFlag                   bool
  4689  	nodeApproverUserIdList     []*NodeApprover // 如果有发起人自选节点,则需要填写对应节点的审批人
  4690  	nodeApproverUserIdListFlag bool
  4691  	nodeApproverOpenIdList     []*NodeApprover // 审批人发起人自选 open id,与上述node_approver_user_id_list字段取并集
  4692  	nodeApproverOpenIdListFlag bool
  4693  	nodeCcUserIdList           []*NodeCc // 如果有发起人自选节点,则可填写对应节点的抄送人,单个节点最多选择20位抄送人
  4694  	nodeCcUserIdListFlag       bool
  4695  	nodeCcOpenIdList           []*NodeCc // 抄送人发起人自选 open id 单个节点最多选择20位抄送人
  4696  	nodeCcOpenIdListFlag       bool
  4697  	uuid                       string // 审批实例 uuid,用于幂等操作, 每个租户下面的唯一key,同一个 uuid 只能用于创建一个审批实例,如果冲突,返回错误码 60012 ,格式建议为 XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX,不区分大小写
  4698  	uuidFlag                   bool
  4699  	allowResubmit              bool // 可配置是否可以再次提交
  4700  	allowResubmitFlag          bool
  4701  	allowSubmitAgain           bool // 可配置是否可以重新提交
  4702  	allowSubmitAgainFlag       bool
  4703  }
  4704  
  4705  func NewInstanceCreateBuilder() *InstanceCreateBuilder {
  4706  	builder := &InstanceCreateBuilder{}
  4707  	return builder
  4708  }
  4709  
  4710  // 审批定义 code
  4711  //
  4712  // 示例值:7C468A54-8745-2245-9675-08B7C63E7A85
  4713  func (builder *InstanceCreateBuilder) ApprovalCode(approvalCode string) *InstanceCreateBuilder {
  4714  	builder.approvalCode = approvalCode
  4715  	builder.approvalCodeFlag = true
  4716  	return builder
  4717  }
  4718  
  4719  // 发起审批用户
  4720  //
  4721  // 示例值:f7cb567e
  4722  func (builder *InstanceCreateBuilder) UserId(userId string) *InstanceCreateBuilder {
  4723  	builder.userId = userId
  4724  	builder.userIdFlag = true
  4725  	return builder
  4726  }
  4727  
  4728  // 发起审批用户 open id, 如果传了 user_id 则优先使用 user_id
  4729  //
  4730  // 示例值:ou_3cda9c969f737aaa05e6915dce306cb9
  4731  func (builder *InstanceCreateBuilder) OpenId(openId string) *InstanceCreateBuilder {
  4732  	builder.openId = openId
  4733  	builder.openIdFlag = true
  4734  	return builder
  4735  }
  4736  
  4737  // 发起审批用户部门id,如果用户只属于一个部门,可以不填。如果属于多个部门,默认会选择部门列表第一个部门
  4738  //
  4739  // 示例值:9293493ccacbdb9a
  4740  func (builder *InstanceCreateBuilder) DepartmentId(departmentId string) *InstanceCreateBuilder {
  4741  	builder.departmentId = departmentId
  4742  	builder.departmentIdFlag = true
  4743  	return builder
  4744  }
  4745  
  4746  // json 数组,控件值
  4747  //
  4748  // 示例值:[{\"id\":\"111\", \"type\": \"input\", \"value\":\"test\"}]
  4749  func (builder *InstanceCreateBuilder) Form(form string) *InstanceCreateBuilder {
  4750  	builder.form = form
  4751  	builder.formFlag = true
  4752  	return builder
  4753  }
  4754  
  4755  // 如果有发起人自选节点,则需要填写对应节点的审批人
  4756  //
  4757  // 示例值:
  4758  func (builder *InstanceCreateBuilder) NodeApproverUserIdList(nodeApproverUserIdList []*NodeApprover) *InstanceCreateBuilder {
  4759  	builder.nodeApproverUserIdList = nodeApproverUserIdList
  4760  	builder.nodeApproverUserIdListFlag = true
  4761  	return builder
  4762  }
  4763  
  4764  // 审批人发起人自选 open id,与上述node_approver_user_id_list字段取并集
  4765  //
  4766  // 示例值:
  4767  func (builder *InstanceCreateBuilder) NodeApproverOpenIdList(nodeApproverOpenIdList []*NodeApprover) *InstanceCreateBuilder {
  4768  	builder.nodeApproverOpenIdList = nodeApproverOpenIdList
  4769  	builder.nodeApproverOpenIdListFlag = true
  4770  	return builder
  4771  }
  4772  
  4773  // 如果有发起人自选节点,则可填写对应节点的抄送人,单个节点最多选择20位抄送人
  4774  //
  4775  // 示例值:
  4776  func (builder *InstanceCreateBuilder) NodeCcUserIdList(nodeCcUserIdList []*NodeCc) *InstanceCreateBuilder {
  4777  	builder.nodeCcUserIdList = nodeCcUserIdList
  4778  	builder.nodeCcUserIdListFlag = true
  4779  	return builder
  4780  }
  4781  
  4782  // 抄送人发起人自选 open id 单个节点最多选择20位抄送人
  4783  //
  4784  // 示例值:
  4785  func (builder *InstanceCreateBuilder) NodeCcOpenIdList(nodeCcOpenIdList []*NodeCc) *InstanceCreateBuilder {
  4786  	builder.nodeCcOpenIdList = nodeCcOpenIdList
  4787  	builder.nodeCcOpenIdListFlag = true
  4788  	return builder
  4789  }
  4790  
  4791  // 审批实例 uuid,用于幂等操作, 每个租户下面的唯一key,同一个 uuid 只能用于创建一个审批实例,如果冲突,返回错误码 60012 ,格式建议为 XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX,不区分大小写
  4792  //
  4793  // 示例值:7C468A54-8745-2245-9675-08B7C63E7A87
  4794  func (builder *InstanceCreateBuilder) Uuid(uuid string) *InstanceCreateBuilder {
  4795  	builder.uuid = uuid
  4796  	builder.uuidFlag = true
  4797  	return builder
  4798  }
  4799  
  4800  // 可配置是否可以再次提交
  4801  //
  4802  // 示例值:true
  4803  func (builder *InstanceCreateBuilder) AllowResubmit(allowResubmit bool) *InstanceCreateBuilder {
  4804  	builder.allowResubmit = allowResubmit
  4805  	builder.allowResubmitFlag = true
  4806  	return builder
  4807  }
  4808  
  4809  // 可配置是否可以重新提交
  4810  //
  4811  // 示例值:true
  4812  func (builder *InstanceCreateBuilder) AllowSubmitAgain(allowSubmitAgain bool) *InstanceCreateBuilder {
  4813  	builder.allowSubmitAgain = allowSubmitAgain
  4814  	builder.allowSubmitAgainFlag = true
  4815  	return builder
  4816  }
  4817  
  4818  func (builder *InstanceCreateBuilder) Build() *InstanceCreate {
  4819  	req := &InstanceCreate{}
  4820  	if builder.approvalCodeFlag {
  4821  		req.ApprovalCode = &builder.approvalCode
  4822  
  4823  	}
  4824  	if builder.userIdFlag {
  4825  		req.UserId = &builder.userId
  4826  
  4827  	}
  4828  	if builder.openIdFlag {
  4829  		req.OpenId = &builder.openId
  4830  
  4831  	}
  4832  	if builder.departmentIdFlag {
  4833  		req.DepartmentId = &builder.departmentId
  4834  
  4835  	}
  4836  	if builder.formFlag {
  4837  		req.Form = &builder.form
  4838  
  4839  	}
  4840  	if builder.nodeApproverUserIdListFlag {
  4841  		req.NodeApproverUserIdList = builder.nodeApproverUserIdList
  4842  	}
  4843  	if builder.nodeApproverOpenIdListFlag {
  4844  		req.NodeApproverOpenIdList = builder.nodeApproverOpenIdList
  4845  	}
  4846  	if builder.nodeCcUserIdListFlag {
  4847  		req.NodeCcUserIdList = builder.nodeCcUserIdList
  4848  	}
  4849  	if builder.nodeCcOpenIdListFlag {
  4850  		req.NodeCcOpenIdList = builder.nodeCcOpenIdList
  4851  	}
  4852  	if builder.uuidFlag {
  4853  		req.Uuid = &builder.uuid
  4854  
  4855  	}
  4856  	if builder.allowResubmitFlag {
  4857  		req.AllowResubmit = &builder.allowResubmit
  4858  
  4859  	}
  4860  	if builder.allowSubmitAgainFlag {
  4861  		req.AllowSubmitAgain = &builder.allowSubmitAgain
  4862  
  4863  	}
  4864  	return req
  4865  }
  4866  
  4867  type InstanceSearch struct {
  4868  	UserId                *string `json:"user_id,omitempty"`                  // 根据x_user_type填写用户 id
  4869  	ApprovalCode          *string `json:"approval_code,omitempty"`            // 审批定义 code
  4870  	InstanceCode          *string `json:"instance_code,omitempty"`            // 审批实例 code
  4871  	InstanceExternalId    *string `json:"instance_external_id,omitempty"`     // 审批实例第三方 id 注:和 approval_code 取并集
  4872  	GroupExternalId       *string `json:"group_external_id,omitempty"`        // 审批定义分组第三方 id 注:和 instance_code 取并集
  4873  	InstanceTitle         *string `json:"instance_title,omitempty"`           // 审批实例标题(只有第三方审批有)
  4874  	InstanceStatus        *string `json:"instance_status,omitempty"`          // 审批实例状态,注:若不设置,查询全部状态 若不在集合中,报错
  4875  	InstanceStartTimeFrom *string `json:"instance_start_time_from,omitempty"` // 实例查询开始时间(unix毫秒时间戳)
  4876  	InstanceStartTimeTo   *string `json:"instance_start_time_to,omitempty"`   // 实例查询结束时间 (unix毫秒时间戳)
  4877  	Locale                *string `json:"locale,omitempty"`                   // 地区
  4878  }
  4879  
  4880  type InstanceSearchBuilder struct {
  4881  	userId                    string // 根据x_user_type填写用户 id
  4882  	userIdFlag                bool
  4883  	approvalCode              string // 审批定义 code
  4884  	approvalCodeFlag          bool
  4885  	instanceCode              string // 审批实例 code
  4886  	instanceCodeFlag          bool
  4887  	instanceExternalId        string // 审批实例第三方 id 注:和 approval_code 取并集
  4888  	instanceExternalIdFlag    bool
  4889  	groupExternalId           string // 审批定义分组第三方 id 注:和 instance_code 取并集
  4890  	groupExternalIdFlag       bool
  4891  	instanceTitle             string // 审批实例标题(只有第三方审批有)
  4892  	instanceTitleFlag         bool
  4893  	instanceStatus            string // 审批实例状态,注:若不设置,查询全部状态 若不在集合中,报错
  4894  	instanceStatusFlag        bool
  4895  	instanceStartTimeFrom     string // 实例查询开始时间(unix毫秒时间戳)
  4896  	instanceStartTimeFromFlag bool
  4897  	instanceStartTimeTo       string // 实例查询结束时间 (unix毫秒时间戳)
  4898  	instanceStartTimeToFlag   bool
  4899  	locale                    string // 地区
  4900  	localeFlag                bool
  4901  }
  4902  
  4903  func NewInstanceSearchBuilder() *InstanceSearchBuilder {
  4904  	builder := &InstanceSearchBuilder{}
  4905  	return builder
  4906  }
  4907  
  4908  // 根据x_user_type填写用户 id
  4909  //
  4910  // 示例值:lwiu098wj
  4911  func (builder *InstanceSearchBuilder) UserId(userId string) *InstanceSearchBuilder {
  4912  	builder.userId = userId
  4913  	builder.userIdFlag = true
  4914  	return builder
  4915  }
  4916  
  4917  // 审批定义 code
  4918  //
  4919  // 示例值:EB828003-9FFE-4B3F-AA50-2E199E2ED942
  4920  func (builder *InstanceSearchBuilder) ApprovalCode(approvalCode string) *InstanceSearchBuilder {
  4921  	builder.approvalCode = approvalCode
  4922  	builder.approvalCodeFlag = true
  4923  	return builder
  4924  }
  4925  
  4926  // 审批实例 code
  4927  //
  4928  // 示例值:EB828003-9FFE-4B3F-AA50-2E199E2ED943
  4929  func (builder *InstanceSearchBuilder) InstanceCode(instanceCode string) *InstanceSearchBuilder {
  4930  	builder.instanceCode = instanceCode
  4931  	builder.instanceCodeFlag = true
  4932  	return builder
  4933  }
  4934  
  4935  // 审批实例第三方 id 注:和 approval_code 取并集
  4936  //
  4937  // 示例值:EB828003-9FFE-4B3F-AA50-2E199E2ED976
  4938  func (builder *InstanceSearchBuilder) InstanceExternalId(instanceExternalId string) *InstanceSearchBuilder {
  4939  	builder.instanceExternalId = instanceExternalId
  4940  	builder.instanceExternalIdFlag = true
  4941  	return builder
  4942  }
  4943  
  4944  // 审批定义分组第三方 id 注:和 instance_code 取并集
  4945  //
  4946  // 示例值:1234567
  4947  func (builder *InstanceSearchBuilder) GroupExternalId(groupExternalId string) *InstanceSearchBuilder {
  4948  	builder.groupExternalId = groupExternalId
  4949  	builder.groupExternalIdFlag = true
  4950  	return builder
  4951  }
  4952  
  4953  // 审批实例标题(只有第三方审批有)
  4954  //
  4955  // 示例值:test
  4956  func (builder *InstanceSearchBuilder) InstanceTitle(instanceTitle string) *InstanceSearchBuilder {
  4957  	builder.instanceTitle = instanceTitle
  4958  	builder.instanceTitleFlag = true
  4959  	return builder
  4960  }
  4961  
  4962  // 审批实例状态,注:若不设置,查询全部状态 若不在集合中,报错
  4963  //
  4964  // 示例值:PENDING
  4965  func (builder *InstanceSearchBuilder) InstanceStatus(instanceStatus string) *InstanceSearchBuilder {
  4966  	builder.instanceStatus = instanceStatus
  4967  	builder.instanceStatusFlag = true
  4968  	return builder
  4969  }
  4970  
  4971  // 实例查询开始时间(unix毫秒时间戳)
  4972  //
  4973  // 示例值:1547654251506
  4974  func (builder *InstanceSearchBuilder) InstanceStartTimeFrom(instanceStartTimeFrom string) *InstanceSearchBuilder {
  4975  	builder.instanceStartTimeFrom = instanceStartTimeFrom
  4976  	builder.instanceStartTimeFromFlag = true
  4977  	return builder
  4978  }
  4979  
  4980  // 实例查询结束时间 (unix毫秒时间戳)
  4981  //
  4982  // 示例值:1547654251506
  4983  func (builder *InstanceSearchBuilder) InstanceStartTimeTo(instanceStartTimeTo string) *InstanceSearchBuilder {
  4984  	builder.instanceStartTimeTo = instanceStartTimeTo
  4985  	builder.instanceStartTimeToFlag = true
  4986  	return builder
  4987  }
  4988  
  4989  // 地区
  4990  //
  4991  // 示例值:zh-CN
  4992  func (builder *InstanceSearchBuilder) Locale(locale string) *InstanceSearchBuilder {
  4993  	builder.locale = locale
  4994  	builder.localeFlag = true
  4995  	return builder
  4996  }
  4997  
  4998  func (builder *InstanceSearchBuilder) Build() *InstanceSearch {
  4999  	req := &InstanceSearch{}
  5000  	if builder.userIdFlag {
  5001  		req.UserId = &builder.userId
  5002  
  5003  	}
  5004  	if builder.approvalCodeFlag {
  5005  		req.ApprovalCode = &builder.approvalCode
  5006  
  5007  	}
  5008  	if builder.instanceCodeFlag {
  5009  		req.InstanceCode = &builder.instanceCode
  5010  
  5011  	}
  5012  	if builder.instanceExternalIdFlag {
  5013  		req.InstanceExternalId = &builder.instanceExternalId
  5014  
  5015  	}
  5016  	if builder.groupExternalIdFlag {
  5017  		req.GroupExternalId = &builder.groupExternalId
  5018  
  5019  	}
  5020  	if builder.instanceTitleFlag {
  5021  		req.InstanceTitle = &builder.instanceTitle
  5022  
  5023  	}
  5024  	if builder.instanceStatusFlag {
  5025  		req.InstanceStatus = &builder.instanceStatus
  5026  
  5027  	}
  5028  	if builder.instanceStartTimeFromFlag {
  5029  		req.InstanceStartTimeFrom = &builder.instanceStartTimeFrom
  5030  
  5031  	}
  5032  	if builder.instanceStartTimeToFlag {
  5033  		req.InstanceStartTimeTo = &builder.instanceStartTimeTo
  5034  
  5035  	}
  5036  	if builder.localeFlag {
  5037  		req.Locale = &builder.locale
  5038  
  5039  	}
  5040  	return req
  5041  }
  5042  
  5043  type InstanceSearchApproval struct {
  5044  	Code       *string                         `json:"code,omitempty"`        // 审批定义 code
  5045  	Name       *string                         `json:"name,omitempty"`        // 审批定义名称
  5046  	IsExternal *bool                           `json:"is_external,omitempty"` // 是否为第三方审批
  5047  	External   *InstanceSearchApprovalExternal `json:"external,omitempty"`    // 第三方审批信息
  5048  }
  5049  
  5050  type InstanceSearchApprovalBuilder struct {
  5051  	code           string // 审批定义 code
  5052  	codeFlag       bool
  5053  	name           string // 审批定义名称
  5054  	nameFlag       bool
  5055  	isExternal     bool // 是否为第三方审批
  5056  	isExternalFlag bool
  5057  	external       *InstanceSearchApprovalExternal // 第三方审批信息
  5058  	externalFlag   bool
  5059  }
  5060  
  5061  func NewInstanceSearchApprovalBuilder() *InstanceSearchApprovalBuilder {
  5062  	builder := &InstanceSearchApprovalBuilder{}
  5063  	return builder
  5064  }
  5065  
  5066  // 审批定义 code
  5067  //
  5068  // 示例值:EB828003-9FFE-4B3F-AA50-2E199E2ED943
  5069  func (builder *InstanceSearchApprovalBuilder) Code(code string) *InstanceSearchApprovalBuilder {
  5070  	builder.code = code
  5071  	builder.codeFlag = true
  5072  	return builder
  5073  }
  5074  
  5075  // 审批定义名称
  5076  //
  5077  // 示例值:approval
  5078  func (builder *InstanceSearchApprovalBuilder) Name(name string) *InstanceSearchApprovalBuilder {
  5079  	builder.name = name
  5080  	builder.nameFlag = true
  5081  	return builder
  5082  }
  5083  
  5084  // 是否为第三方审批
  5085  //
  5086  // 示例值:true
  5087  func (builder *InstanceSearchApprovalBuilder) IsExternal(isExternal bool) *InstanceSearchApprovalBuilder {
  5088  	builder.isExternal = isExternal
  5089  	builder.isExternalFlag = true
  5090  	return builder
  5091  }
  5092  
  5093  // 第三方审批信息
  5094  //
  5095  // 示例值:
  5096  func (builder *InstanceSearchApprovalBuilder) External(external *InstanceSearchApprovalExternal) *InstanceSearchApprovalBuilder {
  5097  	builder.external = external
  5098  	builder.externalFlag = true
  5099  	return builder
  5100  }
  5101  
  5102  func (builder *InstanceSearchApprovalBuilder) Build() *InstanceSearchApproval {
  5103  	req := &InstanceSearchApproval{}
  5104  	if builder.codeFlag {
  5105  		req.Code = &builder.code
  5106  
  5107  	}
  5108  	if builder.nameFlag {
  5109  		req.Name = &builder.name
  5110  
  5111  	}
  5112  	if builder.isExternalFlag {
  5113  		req.IsExternal = &builder.isExternal
  5114  
  5115  	}
  5116  	if builder.externalFlag {
  5117  		req.External = builder.external
  5118  	}
  5119  	return req
  5120  }
  5121  
  5122  type InstanceSearchApprovalExternal struct {
  5123  	BatchCcRead *bool `json:"batch_cc_read,omitempty"` // 是否支持批量读
  5124  }
  5125  
  5126  type InstanceSearchApprovalExternalBuilder struct {
  5127  	batchCcRead     bool // 是否支持批量读
  5128  	batchCcReadFlag bool
  5129  }
  5130  
  5131  func NewInstanceSearchApprovalExternalBuilder() *InstanceSearchApprovalExternalBuilder {
  5132  	builder := &InstanceSearchApprovalExternalBuilder{}
  5133  	return builder
  5134  }
  5135  
  5136  // 是否支持批量读
  5137  //
  5138  // 示例值:false
  5139  func (builder *InstanceSearchApprovalExternalBuilder) BatchCcRead(batchCcRead bool) *InstanceSearchApprovalExternalBuilder {
  5140  	builder.batchCcRead = batchCcRead
  5141  	builder.batchCcReadFlag = true
  5142  	return builder
  5143  }
  5144  
  5145  func (builder *InstanceSearchApprovalExternalBuilder) Build() *InstanceSearchApprovalExternal {
  5146  	req := &InstanceSearchApprovalExternal{}
  5147  	if builder.batchCcReadFlag {
  5148  		req.BatchCcRead = &builder.batchCcRead
  5149  
  5150  	}
  5151  	return req
  5152  }
  5153  
  5154  type InstanceSearchGroup struct {
  5155  	ExternalId *string `json:"external_id,omitempty"` // 审批定义分组外部 id
  5156  	Name       *string `json:"name,omitempty"`        // 审批定义分组名称
  5157  }
  5158  
  5159  type InstanceSearchGroupBuilder struct {
  5160  	externalId     string // 审批定义分组外部 id
  5161  	externalIdFlag bool
  5162  	name           string // 审批定义分组名称
  5163  	nameFlag       bool
  5164  }
  5165  
  5166  func NewInstanceSearchGroupBuilder() *InstanceSearchGroupBuilder {
  5167  	builder := &InstanceSearchGroupBuilder{}
  5168  	return builder
  5169  }
  5170  
  5171  // 审批定义分组外部 id
  5172  //
  5173  // 示例值:0004
  5174  func (builder *InstanceSearchGroupBuilder) ExternalId(externalId string) *InstanceSearchGroupBuilder {
  5175  	builder.externalId = externalId
  5176  	builder.externalIdFlag = true
  5177  	return builder
  5178  }
  5179  
  5180  // 审批定义分组名称
  5181  //
  5182  // 示例值:groupA
  5183  func (builder *InstanceSearchGroupBuilder) Name(name string) *InstanceSearchGroupBuilder {
  5184  	builder.name = name
  5185  	builder.nameFlag = true
  5186  	return builder
  5187  }
  5188  
  5189  func (builder *InstanceSearchGroupBuilder) Build() *InstanceSearchGroup {
  5190  	req := &InstanceSearchGroup{}
  5191  	if builder.externalIdFlag {
  5192  		req.ExternalId = &builder.externalId
  5193  
  5194  	}
  5195  	if builder.nameFlag {
  5196  		req.Name = &builder.name
  5197  
  5198  	}
  5199  	return req
  5200  }
  5201  
  5202  type InstanceSearchItem struct {
  5203  	Approval *InstanceSearchApproval `json:"approval,omitempty"` // 审批定义
  5204  	Group    *InstanceSearchGroup    `json:"group,omitempty"`    // 审批定义分组
  5205  	Instance *InstanceSearchNode     `json:"instance,omitempty"` // 审批实例信息
  5206  }
  5207  
  5208  type InstanceSearchItemBuilder struct {
  5209  	approval     *InstanceSearchApproval // 审批定义
  5210  	approvalFlag bool
  5211  	group        *InstanceSearchGroup // 审批定义分组
  5212  	groupFlag    bool
  5213  	instance     *InstanceSearchNode // 审批实例信息
  5214  	instanceFlag bool
  5215  }
  5216  
  5217  func NewInstanceSearchItemBuilder() *InstanceSearchItemBuilder {
  5218  	builder := &InstanceSearchItemBuilder{}
  5219  	return builder
  5220  }
  5221  
  5222  // 审批定义
  5223  //
  5224  // 示例值:
  5225  func (builder *InstanceSearchItemBuilder) Approval(approval *InstanceSearchApproval) *InstanceSearchItemBuilder {
  5226  	builder.approval = approval
  5227  	builder.approvalFlag = true
  5228  	return builder
  5229  }
  5230  
  5231  // 审批定义分组
  5232  //
  5233  // 示例值:
  5234  func (builder *InstanceSearchItemBuilder) Group(group *InstanceSearchGroup) *InstanceSearchItemBuilder {
  5235  	builder.group = group
  5236  	builder.groupFlag = true
  5237  	return builder
  5238  }
  5239  
  5240  // 审批实例信息
  5241  //
  5242  // 示例值:
  5243  func (builder *InstanceSearchItemBuilder) Instance(instance *InstanceSearchNode) *InstanceSearchItemBuilder {
  5244  	builder.instance = instance
  5245  	builder.instanceFlag = true
  5246  	return builder
  5247  }
  5248  
  5249  func (builder *InstanceSearchItemBuilder) Build() *InstanceSearchItem {
  5250  	req := &InstanceSearchItem{}
  5251  	if builder.approvalFlag {
  5252  		req.Approval = builder.approval
  5253  	}
  5254  	if builder.groupFlag {
  5255  		req.Group = builder.group
  5256  	}
  5257  	if builder.instanceFlag {
  5258  		req.Instance = builder.instance
  5259  	}
  5260  	return req
  5261  }
  5262  
  5263  type InstanceSearchLink struct {
  5264  	PcLink     *string `json:"pc_link,omitempty"`     // 审批实例 pc 端链接
  5265  	MobileLink *string `json:"mobile_link,omitempty"` // 审批实例移动端链接
  5266  }
  5267  
  5268  type InstanceSearchLinkBuilder struct {
  5269  	pcLink         string // 审批实例 pc 端链接
  5270  	pcLinkFlag     bool
  5271  	mobileLink     string // 审批实例移动端链接
  5272  	mobileLinkFlag bool
  5273  }
  5274  
  5275  func NewInstanceSearchLinkBuilder() *InstanceSearchLinkBuilder {
  5276  	builder := &InstanceSearchLinkBuilder{}
  5277  	return builder
  5278  }
  5279  
  5280  // 审批实例 pc 端链接
  5281  //
  5282  // 示例值:https://www.baidu.com/
  5283  func (builder *InstanceSearchLinkBuilder) PcLink(pcLink string) *InstanceSearchLinkBuilder {
  5284  	builder.pcLink = pcLink
  5285  	builder.pcLinkFlag = true
  5286  	return builder
  5287  }
  5288  
  5289  // 审批实例移动端链接
  5290  //
  5291  // 示例值:https://www.baidu.com/
  5292  func (builder *InstanceSearchLinkBuilder) MobileLink(mobileLink string) *InstanceSearchLinkBuilder {
  5293  	builder.mobileLink = mobileLink
  5294  	builder.mobileLinkFlag = true
  5295  	return builder
  5296  }
  5297  
  5298  func (builder *InstanceSearchLinkBuilder) Build() *InstanceSearchLink {
  5299  	req := &InstanceSearchLink{}
  5300  	if builder.pcLinkFlag {
  5301  		req.PcLink = &builder.pcLink
  5302  
  5303  	}
  5304  	if builder.mobileLinkFlag {
  5305  		req.MobileLink = &builder.mobileLink
  5306  
  5307  	}
  5308  	return req
  5309  }
  5310  
  5311  type InstanceSearchNode struct {
  5312  	Code       *string             `json:"code,omitempty"`        // 审批实例 code
  5313  	ExternalId *string             `json:"external_id,omitempty"` // 审批实例外部 id
  5314  	UserId     *string             `json:"user_id,omitempty"`     // 审批实例发起人 id
  5315  	StartTime  *string             `json:"start_time,omitempty"`  // 审批实例开始时间
  5316  	EndTime    *string             `json:"end_time,omitempty"`    // 审批实例结束时间
  5317  	Status     *string             `json:"status,omitempty"`      // 审批实例状态
  5318  	Title      *string             `json:"title,omitempty"`       // 审批实例名称(只有第三方审批有)
  5319  	Extra      *string             `json:"extra,omitempty"`       // 审批实例扩展字段,string型json
  5320  	SerialId   *string             `json:"serial_id,omitempty"`   // 审批流水号
  5321  	Link       *InstanceSearchLink `json:"link,omitempty"`        // 审批实例链接(只有第三方审批有)
  5322  }
  5323  
  5324  type InstanceSearchNodeBuilder struct {
  5325  	code           string // 审批实例 code
  5326  	codeFlag       bool
  5327  	externalId     string // 审批实例外部 id
  5328  	externalIdFlag bool
  5329  	userId         string // 审批实例发起人 id
  5330  	userIdFlag     bool
  5331  	startTime      string // 审批实例开始时间
  5332  	startTimeFlag  bool
  5333  	endTime        string // 审批实例结束时间
  5334  	endTimeFlag    bool
  5335  	status         string // 审批实例状态
  5336  	statusFlag     bool
  5337  	title          string // 审批实例名称(只有第三方审批有)
  5338  	titleFlag      bool
  5339  	extra          string // 审批实例扩展字段,string型json
  5340  	extraFlag      bool
  5341  	serialId       string // 审批流水号
  5342  	serialIdFlag   bool
  5343  	link           *InstanceSearchLink // 审批实例链接(只有第三方审批有)
  5344  	linkFlag       bool
  5345  }
  5346  
  5347  func NewInstanceSearchNodeBuilder() *InstanceSearchNodeBuilder {
  5348  	builder := &InstanceSearchNodeBuilder{}
  5349  	return builder
  5350  }
  5351  
  5352  // 审批实例 code
  5353  //
  5354  // 示例值:EB828003-9FFE-4B3F-AA50-2E199E2ED943
  5355  func (builder *InstanceSearchNodeBuilder) Code(code string) *InstanceSearchNodeBuilder {
  5356  	builder.code = code
  5357  	builder.codeFlag = true
  5358  	return builder
  5359  }
  5360  
  5361  // 审批实例外部 id
  5362  //
  5363  // 示例值:0004_3ED52DC1-AA6C
  5364  func (builder *InstanceSearchNodeBuilder) ExternalId(externalId string) *InstanceSearchNodeBuilder {
  5365  	builder.externalId = externalId
  5366  	builder.externalIdFlag = true
  5367  	return builder
  5368  }
  5369  
  5370  // 审批实例发起人 id
  5371  //
  5372  // 示例值:lwiu098wj
  5373  func (builder *InstanceSearchNodeBuilder) UserId(userId string) *InstanceSearchNodeBuilder {
  5374  	builder.userId = userId
  5375  	builder.userIdFlag = true
  5376  	return builder
  5377  }
  5378  
  5379  // 审批实例开始时间
  5380  //
  5381  // 示例值:1547654251506
  5382  func (builder *InstanceSearchNodeBuilder) StartTime(startTime string) *InstanceSearchNodeBuilder {
  5383  	builder.startTime = startTime
  5384  	builder.startTimeFlag = true
  5385  	return builder
  5386  }
  5387  
  5388  // 审批实例结束时间
  5389  //
  5390  // 示例值:1547654251506
  5391  func (builder *InstanceSearchNodeBuilder) EndTime(endTime string) *InstanceSearchNodeBuilder {
  5392  	builder.endTime = endTime
  5393  	builder.endTimeFlag = true
  5394  	return builder
  5395  }
  5396  
  5397  // 审批实例状态
  5398  //
  5399  // 示例值:pending
  5400  func (builder *InstanceSearchNodeBuilder) Status(status string) *InstanceSearchNodeBuilder {
  5401  	builder.status = status
  5402  	builder.statusFlag = true
  5403  	return builder
  5404  }
  5405  
  5406  // 审批实例名称(只有第三方审批有)
  5407  //
  5408  // 示例值:test
  5409  func (builder *InstanceSearchNodeBuilder) Title(title string) *InstanceSearchNodeBuilder {
  5410  	builder.title = title
  5411  	builder.titleFlag = true
  5412  	return builder
  5413  }
  5414  
  5415  // 审批实例扩展字段,string型json
  5416  //
  5417  // 示例值:{}
  5418  func (builder *InstanceSearchNodeBuilder) Extra(extra string) *InstanceSearchNodeBuilder {
  5419  	builder.extra = extra
  5420  	builder.extraFlag = true
  5421  	return builder
  5422  }
  5423  
  5424  // 审批流水号
  5425  //
  5426  // 示例值:201902020001
  5427  func (builder *InstanceSearchNodeBuilder) SerialId(serialId string) *InstanceSearchNodeBuilder {
  5428  	builder.serialId = serialId
  5429  	builder.serialIdFlag = true
  5430  	return builder
  5431  }
  5432  
  5433  // 审批实例链接(只有第三方审批有)
  5434  //
  5435  // 示例值:
  5436  func (builder *InstanceSearchNodeBuilder) Link(link *InstanceSearchLink) *InstanceSearchNodeBuilder {
  5437  	builder.link = link
  5438  	builder.linkFlag = true
  5439  	return builder
  5440  }
  5441  
  5442  func (builder *InstanceSearchNodeBuilder) Build() *InstanceSearchNode {
  5443  	req := &InstanceSearchNode{}
  5444  	if builder.codeFlag {
  5445  		req.Code = &builder.code
  5446  
  5447  	}
  5448  	if builder.externalIdFlag {
  5449  		req.ExternalId = &builder.externalId
  5450  
  5451  	}
  5452  	if builder.userIdFlag {
  5453  		req.UserId = &builder.userId
  5454  
  5455  	}
  5456  	if builder.startTimeFlag {
  5457  		req.StartTime = &builder.startTime
  5458  
  5459  	}
  5460  	if builder.endTimeFlag {
  5461  		req.EndTime = &builder.endTime
  5462  
  5463  	}
  5464  	if builder.statusFlag {
  5465  		req.Status = &builder.status
  5466  
  5467  	}
  5468  	if builder.titleFlag {
  5469  		req.Title = &builder.title
  5470  
  5471  	}
  5472  	if builder.extraFlag {
  5473  		req.Extra = &builder.extra
  5474  
  5475  	}
  5476  	if builder.serialIdFlag {
  5477  		req.SerialId = &builder.serialId
  5478  
  5479  	}
  5480  	if builder.linkFlag {
  5481  		req.Link = builder.link
  5482  	}
  5483  	return req
  5484  }
  5485  
  5486  type InstanceTask struct {
  5487  	Id           *string `json:"id,omitempty"`             // task id
  5488  	UserId       *string `json:"user_id,omitempty"`        // 审批人的用户id,自动通过、自动拒绝 时为空
  5489  	OpenId       *string `json:"open_id,omitempty"`        // 审批人 open id
  5490  	Status       *string `json:"status,omitempty"`         // 任务状态
  5491  	NodeId       *string `json:"node_id,omitempty"`        // task 所属节点 id
  5492  	NodeName     *string `json:"node_name,omitempty"`      // task 所属节点名称
  5493  	CustomNodeId *string `json:"custom_node_id,omitempty"` // task 所属节点自定义 id, 如果没设置自定义 id, 则不返回该字段
  5494  	Type         *string `json:"type,omitempty"`           // 审批方式
  5495  	StartTime    *string `json:"start_time,omitempty"`     // task 开始时间
  5496  	EndTime      *string `json:"end_time,omitempty"`       // task 完成时间, 未完成为 0
  5497  }
  5498  
  5499  type InstanceTaskBuilder struct {
  5500  	id               string // task id
  5501  	idFlag           bool
  5502  	userId           string // 审批人的用户id,自动通过、自动拒绝 时为空
  5503  	userIdFlag       bool
  5504  	openId           string // 审批人 open id
  5505  	openIdFlag       bool
  5506  	status           string // 任务状态
  5507  	statusFlag       bool
  5508  	nodeId           string // task 所属节点 id
  5509  	nodeIdFlag       bool
  5510  	nodeName         string // task 所属节点名称
  5511  	nodeNameFlag     bool
  5512  	customNodeId     string // task 所属节点自定义 id, 如果没设置自定义 id, 则不返回该字段
  5513  	customNodeIdFlag bool
  5514  	type_            string // 审批方式
  5515  	typeFlag         bool
  5516  	startTime        string // task 开始时间
  5517  	startTimeFlag    bool
  5518  	endTime          string // task 完成时间, 未完成为 0
  5519  	endTimeFlag      bool
  5520  }
  5521  
  5522  func NewInstanceTaskBuilder() *InstanceTaskBuilder {
  5523  	builder := &InstanceTaskBuilder{}
  5524  	return builder
  5525  }
  5526  
  5527  // task id
  5528  //
  5529  // 示例值:1234
  5530  func (builder *InstanceTaskBuilder) Id(id string) *InstanceTaskBuilder {
  5531  	builder.id = id
  5532  	builder.idFlag = true
  5533  	return builder
  5534  }
  5535  
  5536  // 审批人的用户id,自动通过、自动拒绝 时为空
  5537  //
  5538  // 示例值:f7cb567e
  5539  func (builder *InstanceTaskBuilder) UserId(userId string) *InstanceTaskBuilder {
  5540  	builder.userId = userId
  5541  	builder.userIdFlag = true
  5542  	return builder
  5543  }
  5544  
  5545  // 审批人 open id
  5546  //
  5547  // 示例值:ou_123457
  5548  func (builder *InstanceTaskBuilder) OpenId(openId string) *InstanceTaskBuilder {
  5549  	builder.openId = openId
  5550  	builder.openIdFlag = true
  5551  	return builder
  5552  }
  5553  
  5554  // 任务状态
  5555  //
  5556  // 示例值:PENDING
  5557  func (builder *InstanceTaskBuilder) Status(status string) *InstanceTaskBuilder {
  5558  	builder.status = status
  5559  	builder.statusFlag = true
  5560  	return builder
  5561  }
  5562  
  5563  // task 所属节点 id
  5564  //
  5565  // 示例值:46e6d96cfa756980907209209ec03b64
  5566  func (builder *InstanceTaskBuilder) NodeId(nodeId string) *InstanceTaskBuilder {
  5567  	builder.nodeId = nodeId
  5568  	builder.nodeIdFlag = true
  5569  	return builder
  5570  }
  5571  
  5572  // task 所属节点名称
  5573  //
  5574  // 示例值:开始
  5575  func (builder *InstanceTaskBuilder) NodeName(nodeName string) *InstanceTaskBuilder {
  5576  	builder.nodeName = nodeName
  5577  	builder.nodeNameFlag = true
  5578  	return builder
  5579  }
  5580  
  5581  // task 所属节点自定义 id, 如果没设置自定义 id, 则不返回该字段
  5582  //
  5583  // 示例值:manager
  5584  func (builder *InstanceTaskBuilder) CustomNodeId(customNodeId string) *InstanceTaskBuilder {
  5585  	builder.customNodeId = customNodeId
  5586  	builder.customNodeIdFlag = true
  5587  	return builder
  5588  }
  5589  
  5590  // 审批方式
  5591  //
  5592  // 示例值:AND
  5593  func (builder *InstanceTaskBuilder) Type(type_ string) *InstanceTaskBuilder {
  5594  	builder.type_ = type_
  5595  	builder.typeFlag = true
  5596  	return builder
  5597  }
  5598  
  5599  // task 开始时间
  5600  //
  5601  // 示例值:1564590532967
  5602  func (builder *InstanceTaskBuilder) StartTime(startTime string) *InstanceTaskBuilder {
  5603  	builder.startTime = startTime
  5604  	builder.startTimeFlag = true
  5605  	return builder
  5606  }
  5607  
  5608  // task 完成时间, 未完成为 0
  5609  //
  5610  // 示例值:0
  5611  func (builder *InstanceTaskBuilder) EndTime(endTime string) *InstanceTaskBuilder {
  5612  	builder.endTime = endTime
  5613  	builder.endTimeFlag = true
  5614  	return builder
  5615  }
  5616  
  5617  func (builder *InstanceTaskBuilder) Build() *InstanceTask {
  5618  	req := &InstanceTask{}
  5619  	if builder.idFlag {
  5620  		req.Id = &builder.id
  5621  
  5622  	}
  5623  	if builder.userIdFlag {
  5624  		req.UserId = &builder.userId
  5625  
  5626  	}
  5627  	if builder.openIdFlag {
  5628  		req.OpenId = &builder.openId
  5629  
  5630  	}
  5631  	if builder.statusFlag {
  5632  		req.Status = &builder.status
  5633  
  5634  	}
  5635  	if builder.nodeIdFlag {
  5636  		req.NodeId = &builder.nodeId
  5637  
  5638  	}
  5639  	if builder.nodeNameFlag {
  5640  		req.NodeName = &builder.nodeName
  5641  
  5642  	}
  5643  	if builder.customNodeIdFlag {
  5644  		req.CustomNodeId = &builder.customNodeId
  5645  
  5646  	}
  5647  	if builder.typeFlag {
  5648  		req.Type = &builder.type_
  5649  
  5650  	}
  5651  	if builder.startTimeFlag {
  5652  		req.StartTime = &builder.startTime
  5653  
  5654  	}
  5655  	if builder.endTimeFlag {
  5656  		req.EndTime = &builder.endTime
  5657  
  5658  	}
  5659  	return req
  5660  }
  5661  
  5662  type InstanceTimeline struct {
  5663  	Type       *string           `json:"type,omitempty"`         // 动态类型,不同类型 ext 内的 user_id_list 含义不一样
  5664  	CreateTime *string           `json:"create_time,omitempty"`  // 发生时间
  5665  	UserId     *string           `json:"user_id,omitempty"`      // 动态产生用户
  5666  	OpenId     *string           `json:"open_id,omitempty"`      // 动态产生用户 open id
  5667  	UserIdList []string          `json:"user_id_list,omitempty"` // 被抄送人列表
  5668  	OpenIdList []string          `json:"open_id_list,omitempty"` // 被抄送人列表
  5669  	TaskId     *string           `json:"task_id,omitempty"`      // 产生动态关联的task_id
  5670  	Comment    *string           `json:"comment,omitempty"`      // 理由
  5671  	CcUserList []*InstanceCcUser `json:"cc_user_list,omitempty"` // 抄送人列表
  5672  	Ext        *string           `json:"ext,omitempty"`          // 动态其他信息,json格式,目前包括 user_id_list, user_id,open_id_list,open_id
  5673  	NodeKey    *string           `json:"node_key,omitempty"`     // 产生task的节点key
  5674  	Files      []*File           `json:"files,omitempty"`        // 审批附件
  5675  }
  5676  
  5677  type InstanceTimelineBuilder struct {
  5678  	type_          string // 动态类型,不同类型 ext 内的 user_id_list 含义不一样
  5679  	typeFlag       bool
  5680  	createTime     string // 发生时间
  5681  	createTimeFlag bool
  5682  	userId         string // 动态产生用户
  5683  	userIdFlag     bool
  5684  	openId         string // 动态产生用户 open id
  5685  	openIdFlag     bool
  5686  	userIdList     []string // 被抄送人列表
  5687  	userIdListFlag bool
  5688  	openIdList     []string // 被抄送人列表
  5689  	openIdListFlag bool
  5690  	taskId         string // 产生动态关联的task_id
  5691  	taskIdFlag     bool
  5692  	comment        string // 理由
  5693  	commentFlag    bool
  5694  	ccUserList     []*InstanceCcUser // 抄送人列表
  5695  	ccUserListFlag bool
  5696  	ext            string // 动态其他信息,json格式,目前包括 user_id_list, user_id,open_id_list,open_id
  5697  	extFlag        bool
  5698  	nodeKey        string // 产生task的节点key
  5699  	nodeKeyFlag    bool
  5700  	files          []*File // 审批附件
  5701  	filesFlag      bool
  5702  }
  5703  
  5704  func NewInstanceTimelineBuilder() *InstanceTimelineBuilder {
  5705  	builder := &InstanceTimelineBuilder{}
  5706  	return builder
  5707  }
  5708  
  5709  // 动态类型,不同类型 ext 内的 user_id_list 含义不一样
  5710  //
  5711  // 示例值:PASS
  5712  func (builder *InstanceTimelineBuilder) Type(type_ string) *InstanceTimelineBuilder {
  5713  	builder.type_ = type_
  5714  	builder.typeFlag = true
  5715  	return builder
  5716  }
  5717  
  5718  // 发生时间
  5719  //
  5720  // 示例值:1564590532967
  5721  func (builder *InstanceTimelineBuilder) CreateTime(createTime string) *InstanceTimelineBuilder {
  5722  	builder.createTime = createTime
  5723  	builder.createTimeFlag = true
  5724  	return builder
  5725  }
  5726  
  5727  // 动态产生用户
  5728  //
  5729  // 示例值:f7cb567e
  5730  func (builder *InstanceTimelineBuilder) UserId(userId string) *InstanceTimelineBuilder {
  5731  	builder.userId = userId
  5732  	builder.userIdFlag = true
  5733  	return builder
  5734  }
  5735  
  5736  // 动态产生用户 open id
  5737  //
  5738  // 示例值:ou_123456
  5739  func (builder *InstanceTimelineBuilder) OpenId(openId string) *InstanceTimelineBuilder {
  5740  	builder.openId = openId
  5741  	builder.openIdFlag = true
  5742  	return builder
  5743  }
  5744  
  5745  // 被抄送人列表
  5746  //
  5747  // 示例值:f7cb567e
  5748  func (builder *InstanceTimelineBuilder) UserIdList(userIdList []string) *InstanceTimelineBuilder {
  5749  	builder.userIdList = userIdList
  5750  	builder.userIdListFlag = true
  5751  	return builder
  5752  }
  5753  
  5754  // 被抄送人列表
  5755  //
  5756  // 示例值:ou_123456
  5757  func (builder *InstanceTimelineBuilder) OpenIdList(openIdList []string) *InstanceTimelineBuilder {
  5758  	builder.openIdList = openIdList
  5759  	builder.openIdListFlag = true
  5760  	return builder
  5761  }
  5762  
  5763  // 产生动态关联的task_id
  5764  //
  5765  // 示例值:1234
  5766  func (builder *InstanceTimelineBuilder) TaskId(taskId string) *InstanceTimelineBuilder {
  5767  	builder.taskId = taskId
  5768  	builder.taskIdFlag = true
  5769  	return builder
  5770  }
  5771  
  5772  // 理由
  5773  //
  5774  // 示例值:ok
  5775  func (builder *InstanceTimelineBuilder) Comment(comment string) *InstanceTimelineBuilder {
  5776  	builder.comment = comment
  5777  	builder.commentFlag = true
  5778  	return builder
  5779  }
  5780  
  5781  // 抄送人列表
  5782  //
  5783  // 示例值:
  5784  func (builder *InstanceTimelineBuilder) CcUserList(ccUserList []*InstanceCcUser) *InstanceTimelineBuilder {
  5785  	builder.ccUserList = ccUserList
  5786  	builder.ccUserListFlag = true
  5787  	return builder
  5788  }
  5789  
  5790  // 动态其他信息,json格式,目前包括 user_id_list, user_id,open_id_list,open_id
  5791  //
  5792  // 示例值:{\"user_id\":\"62d4a44c\",\"open_id\":\"ou_123456\"}
  5793  func (builder *InstanceTimelineBuilder) Ext(ext string) *InstanceTimelineBuilder {
  5794  	builder.ext = ext
  5795  	builder.extFlag = true
  5796  	return builder
  5797  }
  5798  
  5799  // 产生task的节点key
  5800  //
  5801  // 示例值:APPROVAL_240330_4058663
  5802  func (builder *InstanceTimelineBuilder) NodeKey(nodeKey string) *InstanceTimelineBuilder {
  5803  	builder.nodeKey = nodeKey
  5804  	builder.nodeKeyFlag = true
  5805  	return builder
  5806  }
  5807  
  5808  // 审批附件
  5809  //
  5810  // 示例值:
  5811  func (builder *InstanceTimelineBuilder) Files(files []*File) *InstanceTimelineBuilder {
  5812  	builder.files = files
  5813  	builder.filesFlag = true
  5814  	return builder
  5815  }
  5816  
  5817  func (builder *InstanceTimelineBuilder) Build() *InstanceTimeline {
  5818  	req := &InstanceTimeline{}
  5819  	if builder.typeFlag {
  5820  		req.Type = &builder.type_
  5821  
  5822  	}
  5823  	if builder.createTimeFlag {
  5824  		req.CreateTime = &builder.createTime
  5825  
  5826  	}
  5827  	if builder.userIdFlag {
  5828  		req.UserId = &builder.userId
  5829  
  5830  	}
  5831  	if builder.openIdFlag {
  5832  		req.OpenId = &builder.openId
  5833  
  5834  	}
  5835  	if builder.userIdListFlag {
  5836  		req.UserIdList = builder.userIdList
  5837  	}
  5838  	if builder.openIdListFlag {
  5839  		req.OpenIdList = builder.openIdList
  5840  	}
  5841  	if builder.taskIdFlag {
  5842  		req.TaskId = &builder.taskId
  5843  
  5844  	}
  5845  	if builder.commentFlag {
  5846  		req.Comment = &builder.comment
  5847  
  5848  	}
  5849  	if builder.ccUserListFlag {
  5850  		req.CcUserList = builder.ccUserList
  5851  	}
  5852  	if builder.extFlag {
  5853  		req.Ext = &builder.ext
  5854  
  5855  	}
  5856  	if builder.nodeKeyFlag {
  5857  		req.NodeKey = &builder.nodeKey
  5858  
  5859  	}
  5860  	if builder.filesFlag {
  5861  		req.Files = builder.files
  5862  	}
  5863  	return req
  5864  }
  5865  
  5866  type Message struct {
  5867  	Id        *string `json:"id,omitempty"`         // 消息id标识
  5868  	ReceiveId *string `json:"receive_id,omitempty"` // 接受消息的各类id
  5869  	Content   *string `json:"content,omitempty"`    // 消息体, json格式
  5870  	MsgType   *string `json:"msg_type,omitempty"`   // 消息类型
  5871  	Config    *string `json:"config,omitempty"`     // 发送配置
  5872  	Extra     *string `json:"extra,omitempty"`      // 特殊配制
  5873  	Uuid      *string `json:"uuid,omitempty"`       // 幂等key
  5874  }
  5875  
  5876  type MessageBuilder struct {
  5877  	id            string // 消息id标识
  5878  	idFlag        bool
  5879  	receiveId     string // 接受消息的各类id
  5880  	receiveIdFlag bool
  5881  	content       string // 消息体, json格式
  5882  	contentFlag   bool
  5883  	msgType       string // 消息类型
  5884  	msgTypeFlag   bool
  5885  	config        string // 发送配置
  5886  	configFlag    bool
  5887  	extra         string // 特殊配制
  5888  	extraFlag     bool
  5889  	uuid          string // 幂等key
  5890  	uuidFlag      bool
  5891  }
  5892  
  5893  func NewMessageBuilder() *MessageBuilder {
  5894  	builder := &MessageBuilder{}
  5895  	return builder
  5896  }
  5897  
  5898  // 消息id标识
  5899  //
  5900  // 示例值:1705036822442409986
  5901  func (builder *MessageBuilder) Id(id string) *MessageBuilder {
  5902  	builder.id = id
  5903  	builder.idFlag = true
  5904  	return builder
  5905  }
  5906  
  5907  // 接受消息的各类id
  5908  //
  5909  // 示例值:ou_xxx
  5910  func (builder *MessageBuilder) ReceiveId(receiveId string) *MessageBuilder {
  5911  	builder.receiveId = receiveId
  5912  	builder.receiveIdFlag = true
  5913  	return builder
  5914  }
  5915  
  5916  // 消息体, json格式
  5917  //
  5918  // 示例值:{}
  5919  func (builder *MessageBuilder) Content(content string) *MessageBuilder {
  5920  	builder.content = content
  5921  	builder.contentFlag = true
  5922  	return builder
  5923  }
  5924  
  5925  // 消息类型
  5926  //
  5927  // 示例值:interactive
  5928  func (builder *MessageBuilder) MsgType(msgType string) *MessageBuilder {
  5929  	builder.msgType = msgType
  5930  	builder.msgTypeFlag = true
  5931  	return builder
  5932  }
  5933  
  5934  // 发送配置
  5935  //
  5936  // 示例值:{}
  5937  func (builder *MessageBuilder) Config(config string) *MessageBuilder {
  5938  	builder.config = config
  5939  	builder.configFlag = true
  5940  	return builder
  5941  }
  5942  
  5943  // 特殊配制
  5944  //
  5945  // 示例值:v2
  5946  func (builder *MessageBuilder) Extra(extra string) *MessageBuilder {
  5947  	builder.extra = extra
  5948  	builder.extraFlag = true
  5949  	return builder
  5950  }
  5951  
  5952  // 幂等key
  5953  //
  5954  // 示例值:a60cfe61268e10f054a3211ab72185c
  5955  func (builder *MessageBuilder) Uuid(uuid string) *MessageBuilder {
  5956  	builder.uuid = uuid
  5957  	builder.uuidFlag = true
  5958  	return builder
  5959  }
  5960  
  5961  func (builder *MessageBuilder) Build() *Message {
  5962  	req := &Message{}
  5963  	if builder.idFlag {
  5964  		req.Id = &builder.id
  5965  
  5966  	}
  5967  	if builder.receiveIdFlag {
  5968  		req.ReceiveId = &builder.receiveId
  5969  
  5970  	}
  5971  	if builder.contentFlag {
  5972  		req.Content = &builder.content
  5973  
  5974  	}
  5975  	if builder.msgTypeFlag {
  5976  		req.MsgType = &builder.msgType
  5977  
  5978  	}
  5979  	if builder.configFlag {
  5980  		req.Config = &builder.config
  5981  
  5982  	}
  5983  	if builder.extraFlag {
  5984  		req.Extra = &builder.extra
  5985  
  5986  	}
  5987  	if builder.uuidFlag {
  5988  		req.Uuid = &builder.uuid
  5989  
  5990  	}
  5991  	return req
  5992  }
  5993  
  5994  type NodeApprover struct {
  5995  	Key   *string  `json:"key,omitempty"`   // node id 或 custom node id,通过 [查看审批定义](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/approval-v4/approval/get) 获取
  5996  	Value []string `json:"value,omitempty"` // value: 审批人列表
  5997  }
  5998  
  5999  type NodeApproverBuilder struct {
  6000  	key       string // node id 或 custom node id,通过 [查看审批定义](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/approval-v4/approval/get) 获取
  6001  	keyFlag   bool
  6002  	value     []string // value: 审批人列表
  6003  	valueFlag bool
  6004  }
  6005  
  6006  func NewNodeApproverBuilder() *NodeApproverBuilder {
  6007  	builder := &NodeApproverBuilder{}
  6008  	return builder
  6009  }
  6010  
  6011  // node id 或 custom node id,通过 [查看审批定义](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/approval-v4/approval/get) 获取
  6012  //
  6013  // 示例值:46e6d96cfa756980907209209ec03b64
  6014  func (builder *NodeApproverBuilder) Key(key string) *NodeApproverBuilder {
  6015  	builder.key = key
  6016  	builder.keyFlag = true
  6017  	return builder
  6018  }
  6019  
  6020  // value: 审批人列表
  6021  //
  6022  // 示例值:["f7cb567e"]
  6023  func (builder *NodeApproverBuilder) Value(value []string) *NodeApproverBuilder {
  6024  	builder.value = value
  6025  	builder.valueFlag = true
  6026  	return builder
  6027  }
  6028  
  6029  func (builder *NodeApproverBuilder) Build() *NodeApprover {
  6030  	req := &NodeApprover{}
  6031  	if builder.keyFlag {
  6032  		req.Key = &builder.key
  6033  
  6034  	}
  6035  	if builder.valueFlag {
  6036  		req.Value = builder.value
  6037  	}
  6038  	return req
  6039  }
  6040  
  6041  type NodeCc struct {
  6042  	Key   *string  `json:"key,omitempty"`   // node id ,通过 [查看审批定义](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/approval-v4/approval/get) 获取
  6043  	Value []string `json:"value,omitempty"` // value: 审批人列表
  6044  }
  6045  
  6046  type NodeCcBuilder struct {
  6047  	key       string // node id ,通过 [查看审批定义](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/approval-v4/approval/get) 获取
  6048  	keyFlag   bool
  6049  	value     []string // value: 审批人列表
  6050  	valueFlag bool
  6051  }
  6052  
  6053  func NewNodeCcBuilder() *NodeCcBuilder {
  6054  	builder := &NodeCcBuilder{}
  6055  	return builder
  6056  }
  6057  
  6058  // node id ,通过 [查看审批定义](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/approval-v4/approval/get) 获取
  6059  //
  6060  // 示例值:46e6d96cfa756980907209209ec03b75
  6061  func (builder *NodeCcBuilder) Key(key string) *NodeCcBuilder {
  6062  	builder.key = key
  6063  	builder.keyFlag = true
  6064  	return builder
  6065  }
  6066  
  6067  // value: 审批人列表
  6068  //
  6069  // 示例值:["f7cb567e"]
  6070  func (builder *NodeCcBuilder) Value(value []string) *NodeCcBuilder {
  6071  	builder.value = value
  6072  	builder.valueFlag = true
  6073  	return builder
  6074  }
  6075  
  6076  func (builder *NodeCcBuilder) Build() *NodeCc {
  6077  	req := &NodeCc{}
  6078  	if builder.keyFlag {
  6079  		req.Key = &builder.key
  6080  
  6081  	}
  6082  	if builder.valueFlag {
  6083  		req.Value = builder.value
  6084  	}
  6085  	return req
  6086  }
  6087  
  6088  type PreviewNode struct {
  6089  	NodeId             *string  `json:"node_id,omitempty"`               // 节点id
  6090  	NodeName           *string  `json:"node_name,omitempty"`             // 节点名称
  6091  	NodeType           *string  `json:"node_type,omitempty"`             // 节点类型 “AND":会签  “OR”:或签
  6092  	Comments           []string `json:"comments,omitempty"`              // 节点描述
  6093  	CustomNodeId       *string  `json:"custom_node_id,omitempty"`        // 租户节点id
  6094  	UserIdList         []string `json:"user_id_list,omitempty"`          // 审批人id列表
  6095  	EndCcIdList        []string `json:"end_cc_id_list,omitempty"`        // 节点结束抄送人id列表
  6096  	IsEmptyLogic       *bool    `json:"is_empty_logic,omitempty"`        // 审批人是否为空
  6097  	IsApproverTypeFree *bool    `json:"is_approver_type_free,omitempty"` // 是否是发起人自选类型
  6098  	HasCcTypeFree      *bool    `json:"has_cc_type_free,omitempty"`      // 是否包含抄送人自选类型
  6099  }
  6100  
  6101  type PreviewNodeBuilder struct {
  6102  	nodeId                 string // 节点id
  6103  	nodeIdFlag             bool
  6104  	nodeName               string // 节点名称
  6105  	nodeNameFlag           bool
  6106  	nodeType               string // 节点类型 “AND":会签  “OR”:或签
  6107  	nodeTypeFlag           bool
  6108  	comments               []string // 节点描述
  6109  	commentsFlag           bool
  6110  	customNodeId           string // 租户节点id
  6111  	customNodeIdFlag       bool
  6112  	userIdList             []string // 审批人id列表
  6113  	userIdListFlag         bool
  6114  	endCcIdList            []string // 节点结束抄送人id列表
  6115  	endCcIdListFlag        bool
  6116  	isEmptyLogic           bool // 审批人是否为空
  6117  	isEmptyLogicFlag       bool
  6118  	isApproverTypeFree     bool // 是否是发起人自选类型
  6119  	isApproverTypeFreeFlag bool
  6120  	hasCcTypeFree          bool // 是否包含抄送人自选类型
  6121  	hasCcTypeFreeFlag      bool
  6122  }
  6123  
  6124  func NewPreviewNodeBuilder() *PreviewNodeBuilder {
  6125  	builder := &PreviewNodeBuilder{}
  6126  	return builder
  6127  }
  6128  
  6129  // 节点id
  6130  //
  6131  // 示例值:
  6132  func (builder *PreviewNodeBuilder) NodeId(nodeId string) *PreviewNodeBuilder {
  6133  	builder.nodeId = nodeId
  6134  	builder.nodeIdFlag = true
  6135  	return builder
  6136  }
  6137  
  6138  // 节点名称
  6139  //
  6140  // 示例值:
  6141  func (builder *PreviewNodeBuilder) NodeName(nodeName string) *PreviewNodeBuilder {
  6142  	builder.nodeName = nodeName
  6143  	builder.nodeNameFlag = true
  6144  	return builder
  6145  }
  6146  
  6147  // 节点类型 “AND":会签  “OR”:或签
  6148  //
  6149  // 示例值:
  6150  func (builder *PreviewNodeBuilder) NodeType(nodeType string) *PreviewNodeBuilder {
  6151  	builder.nodeType = nodeType
  6152  	builder.nodeTypeFlag = true
  6153  	return builder
  6154  }
  6155  
  6156  // 节点描述
  6157  //
  6158  // 示例值:
  6159  func (builder *PreviewNodeBuilder) Comments(comments []string) *PreviewNodeBuilder {
  6160  	builder.comments = comments
  6161  	builder.commentsFlag = true
  6162  	return builder
  6163  }
  6164  
  6165  // 租户节点id
  6166  //
  6167  // 示例值:
  6168  func (builder *PreviewNodeBuilder) CustomNodeId(customNodeId string) *PreviewNodeBuilder {
  6169  	builder.customNodeId = customNodeId
  6170  	builder.customNodeIdFlag = true
  6171  	return builder
  6172  }
  6173  
  6174  // 审批人id列表
  6175  //
  6176  // 示例值:
  6177  func (builder *PreviewNodeBuilder) UserIdList(userIdList []string) *PreviewNodeBuilder {
  6178  	builder.userIdList = userIdList
  6179  	builder.userIdListFlag = true
  6180  	return builder
  6181  }
  6182  
  6183  // 节点结束抄送人id列表
  6184  //
  6185  // 示例值:
  6186  func (builder *PreviewNodeBuilder) EndCcIdList(endCcIdList []string) *PreviewNodeBuilder {
  6187  	builder.endCcIdList = endCcIdList
  6188  	builder.endCcIdListFlag = true
  6189  	return builder
  6190  }
  6191  
  6192  // 审批人是否为空
  6193  //
  6194  // 示例值:
  6195  func (builder *PreviewNodeBuilder) IsEmptyLogic(isEmptyLogic bool) *PreviewNodeBuilder {
  6196  	builder.isEmptyLogic = isEmptyLogic
  6197  	builder.isEmptyLogicFlag = true
  6198  	return builder
  6199  }
  6200  
  6201  // 是否是发起人自选类型
  6202  //
  6203  // 示例值:
  6204  func (builder *PreviewNodeBuilder) IsApproverTypeFree(isApproverTypeFree bool) *PreviewNodeBuilder {
  6205  	builder.isApproverTypeFree = isApproverTypeFree
  6206  	builder.isApproverTypeFreeFlag = true
  6207  	return builder
  6208  }
  6209  
  6210  // 是否包含抄送人自选类型
  6211  //
  6212  // 示例值:
  6213  func (builder *PreviewNodeBuilder) HasCcTypeFree(hasCcTypeFree bool) *PreviewNodeBuilder {
  6214  	builder.hasCcTypeFree = hasCcTypeFree
  6215  	builder.hasCcTypeFreeFlag = true
  6216  	return builder
  6217  }
  6218  
  6219  func (builder *PreviewNodeBuilder) Build() *PreviewNode {
  6220  	req := &PreviewNode{}
  6221  	if builder.nodeIdFlag {
  6222  		req.NodeId = &builder.nodeId
  6223  
  6224  	}
  6225  	if builder.nodeNameFlag {
  6226  		req.NodeName = &builder.nodeName
  6227  
  6228  	}
  6229  	if builder.nodeTypeFlag {
  6230  		req.NodeType = &builder.nodeType
  6231  
  6232  	}
  6233  	if builder.commentsFlag {
  6234  		req.Comments = builder.comments
  6235  	}
  6236  	if builder.customNodeIdFlag {
  6237  		req.CustomNodeId = &builder.customNodeId
  6238  
  6239  	}
  6240  	if builder.userIdListFlag {
  6241  		req.UserIdList = builder.userIdList
  6242  	}
  6243  	if builder.endCcIdListFlag {
  6244  		req.EndCcIdList = builder.endCcIdList
  6245  	}
  6246  	if builder.isEmptyLogicFlag {
  6247  		req.IsEmptyLogic = &builder.isEmptyLogic
  6248  
  6249  	}
  6250  	if builder.isApproverTypeFreeFlag {
  6251  		req.IsApproverTypeFree = &builder.isApproverTypeFree
  6252  
  6253  	}
  6254  	if builder.hasCcTypeFreeFlag {
  6255  		req.HasCcTypeFree = &builder.hasCcTypeFree
  6256  
  6257  	}
  6258  	return req
  6259  }
  6260  
  6261  type Reason struct {
  6262  	Text  *string `json:"text,omitempty"`  // 原因说明
  6263  	Files []*File `json:"files,omitempty"` // 附件集合
  6264  }
  6265  
  6266  type ReasonBuilder struct {
  6267  	text      string // 原因说明
  6268  	textFlag  bool
  6269  	files     []*File // 附件集合
  6270  	filesFlag bool
  6271  }
  6272  
  6273  func NewReasonBuilder() *ReasonBuilder {
  6274  	builder := &ReasonBuilder{}
  6275  	return builder
  6276  }
  6277  
  6278  // 原因说明
  6279  //
  6280  // 示例值:
  6281  func (builder *ReasonBuilder) Text(text string) *ReasonBuilder {
  6282  	builder.text = text
  6283  	builder.textFlag = true
  6284  	return builder
  6285  }
  6286  
  6287  // 附件集合
  6288  //
  6289  // 示例值:
  6290  func (builder *ReasonBuilder) Files(files []*File) *ReasonBuilder {
  6291  	builder.files = files
  6292  	builder.filesFlag = true
  6293  	return builder
  6294  }
  6295  
  6296  func (builder *ReasonBuilder) Build() *Reason {
  6297  	req := &Reason{}
  6298  	if builder.textFlag {
  6299  		req.Text = &builder.text
  6300  
  6301  	}
  6302  	if builder.filesFlag {
  6303  		req.Files = builder.files
  6304  	}
  6305  	return req
  6306  }
  6307  
  6308  type RemedyGroup struct {
  6309  	Type         *string `json:"type,omitempty"`          //
  6310  	InstanceCode *string `json:"instance_code,omitempty"` //
  6311  	EmployeeId   *string `json:"employee_id,omitempty"`   //
  6312  	StartTime    *int    `json:"start_time,omitempty"`    //
  6313  	EndTime      *int    `json:"end_time,omitempty"`      //
  6314  	RemedyTime   *int    `json:"remedy_time,omitempty"`   //
  6315  	RemedyReason *string `json:"remedy_reason,omitempty"` //
  6316  	Status       *string `json:"status,omitempty"`        //
  6317  }
  6318  
  6319  type RemedyGroupBuilder struct {
  6320  	type_            string //
  6321  	typeFlag         bool
  6322  	instanceCode     string //
  6323  	instanceCodeFlag bool
  6324  	employeeId       string //
  6325  	employeeIdFlag   bool
  6326  	startTime        int //
  6327  	startTimeFlag    bool
  6328  	endTime          int //
  6329  	endTimeFlag      bool
  6330  	remedyTime       int //
  6331  	remedyTimeFlag   bool
  6332  	remedyReason     string //
  6333  	remedyReasonFlag bool
  6334  	status           string //
  6335  	statusFlag       bool
  6336  }
  6337  
  6338  func NewRemedyGroupBuilder() *RemedyGroupBuilder {
  6339  	builder := &RemedyGroupBuilder{}
  6340  	return builder
  6341  }
  6342  
  6343  //
  6344  //
  6345  // 示例值:
  6346  func (builder *RemedyGroupBuilder) Type(type_ string) *RemedyGroupBuilder {
  6347  	builder.type_ = type_
  6348  	builder.typeFlag = true
  6349  	return builder
  6350  }
  6351  
  6352  //
  6353  //
  6354  // 示例值:
  6355  func (builder *RemedyGroupBuilder) InstanceCode(instanceCode string) *RemedyGroupBuilder {
  6356  	builder.instanceCode = instanceCode
  6357  	builder.instanceCodeFlag = true
  6358  	return builder
  6359  }
  6360  
  6361  //
  6362  //
  6363  // 示例值:
  6364  func (builder *RemedyGroupBuilder) EmployeeId(employeeId string) *RemedyGroupBuilder {
  6365  	builder.employeeId = employeeId
  6366  	builder.employeeIdFlag = true
  6367  	return builder
  6368  }
  6369  
  6370  //
  6371  //
  6372  // 示例值:
  6373  func (builder *RemedyGroupBuilder) StartTime(startTime int) *RemedyGroupBuilder {
  6374  	builder.startTime = startTime
  6375  	builder.startTimeFlag = true
  6376  	return builder
  6377  }
  6378  
  6379  //
  6380  //
  6381  // 示例值:
  6382  func (builder *RemedyGroupBuilder) EndTime(endTime int) *RemedyGroupBuilder {
  6383  	builder.endTime = endTime
  6384  	builder.endTimeFlag = true
  6385  	return builder
  6386  }
  6387  
  6388  //
  6389  //
  6390  // 示例值:
  6391  func (builder *RemedyGroupBuilder) RemedyTime(remedyTime int) *RemedyGroupBuilder {
  6392  	builder.remedyTime = remedyTime
  6393  	builder.remedyTimeFlag = true
  6394  	return builder
  6395  }
  6396  
  6397  //
  6398  //
  6399  // 示例值:
  6400  func (builder *RemedyGroupBuilder) RemedyReason(remedyReason string) *RemedyGroupBuilder {
  6401  	builder.remedyReason = remedyReason
  6402  	builder.remedyReasonFlag = true
  6403  	return builder
  6404  }
  6405  
  6406  //
  6407  //
  6408  // 示例值:
  6409  func (builder *RemedyGroupBuilder) Status(status string) *RemedyGroupBuilder {
  6410  	builder.status = status
  6411  	builder.statusFlag = true
  6412  	return builder
  6413  }
  6414  
  6415  func (builder *RemedyGroupBuilder) Build() *RemedyGroup {
  6416  	req := &RemedyGroup{}
  6417  	if builder.typeFlag {
  6418  		req.Type = &builder.type_
  6419  
  6420  	}
  6421  	if builder.instanceCodeFlag {
  6422  		req.InstanceCode = &builder.instanceCode
  6423  
  6424  	}
  6425  	if builder.employeeIdFlag {
  6426  		req.EmployeeId = &builder.employeeId
  6427  
  6428  	}
  6429  	if builder.startTimeFlag {
  6430  		req.StartTime = &builder.startTime
  6431  
  6432  	}
  6433  	if builder.endTimeFlag {
  6434  		req.EndTime = &builder.endTime
  6435  
  6436  	}
  6437  	if builder.remedyTimeFlag {
  6438  		req.RemedyTime = &builder.remedyTime
  6439  
  6440  	}
  6441  	if builder.remedyReasonFlag {
  6442  		req.RemedyReason = &builder.remedyReason
  6443  
  6444  	}
  6445  	if builder.statusFlag {
  6446  		req.Status = &builder.status
  6447  
  6448  	}
  6449  	return req
  6450  }
  6451  
  6452  type SignGroup struct {
  6453  	InstanceCode          *string `json:"instance_code,omitempty"`           //
  6454  	UserId                *UserId `json:"user_id,omitempty"`                 //
  6455  	AccountCode           *string `json:"account_code,omitempty"`            //
  6456  	BoilerplateUniqueCode *string `json:"boilerplate_unique_code,omitempty"` //
  6457  	StartTime             *int    `json:"start_time,omitempty"`              //
  6458  	EndTime               *int    `json:"end_time,omitempty"`                //
  6459  	Type                  *string `json:"type,omitempty"`                    //
  6460  }
  6461  
  6462  type SignGroupBuilder struct {
  6463  	instanceCode              string //
  6464  	instanceCodeFlag          bool
  6465  	userId                    *UserId //
  6466  	userIdFlag                bool
  6467  	accountCode               string //
  6468  	accountCodeFlag           bool
  6469  	boilerplateUniqueCode     string //
  6470  	boilerplateUniqueCodeFlag bool
  6471  	startTime                 int //
  6472  	startTimeFlag             bool
  6473  	endTime                   int //
  6474  	endTimeFlag               bool
  6475  	type_                     string //
  6476  	typeFlag                  bool
  6477  }
  6478  
  6479  func NewSignGroupBuilder() *SignGroupBuilder {
  6480  	builder := &SignGroupBuilder{}
  6481  	return builder
  6482  }
  6483  
  6484  //
  6485  //
  6486  // 示例值:
  6487  func (builder *SignGroupBuilder) InstanceCode(instanceCode string) *SignGroupBuilder {
  6488  	builder.instanceCode = instanceCode
  6489  	builder.instanceCodeFlag = true
  6490  	return builder
  6491  }
  6492  
  6493  //
  6494  //
  6495  // 示例值:
  6496  func (builder *SignGroupBuilder) UserId(userId *UserId) *SignGroupBuilder {
  6497  	builder.userId = userId
  6498  	builder.userIdFlag = true
  6499  	return builder
  6500  }
  6501  
  6502  //
  6503  //
  6504  // 示例值:
  6505  func (builder *SignGroupBuilder) AccountCode(accountCode string) *SignGroupBuilder {
  6506  	builder.accountCode = accountCode
  6507  	builder.accountCodeFlag = true
  6508  	return builder
  6509  }
  6510  
  6511  //
  6512  //
  6513  // 示例值:
  6514  func (builder *SignGroupBuilder) BoilerplateUniqueCode(boilerplateUniqueCode string) *SignGroupBuilder {
  6515  	builder.boilerplateUniqueCode = boilerplateUniqueCode
  6516  	builder.boilerplateUniqueCodeFlag = true
  6517  	return builder
  6518  }
  6519  
  6520  //
  6521  //
  6522  // 示例值:
  6523  func (builder *SignGroupBuilder) StartTime(startTime int) *SignGroupBuilder {
  6524  	builder.startTime = startTime
  6525  	builder.startTimeFlag = true
  6526  	return builder
  6527  }
  6528  
  6529  //
  6530  //
  6531  // 示例值:
  6532  func (builder *SignGroupBuilder) EndTime(endTime int) *SignGroupBuilder {
  6533  	builder.endTime = endTime
  6534  	builder.endTimeFlag = true
  6535  	return builder
  6536  }
  6537  
  6538  //
  6539  //
  6540  // 示例值:
  6541  func (builder *SignGroupBuilder) Type(type_ string) *SignGroupBuilder {
  6542  	builder.type_ = type_
  6543  	builder.typeFlag = true
  6544  	return builder
  6545  }
  6546  
  6547  func (builder *SignGroupBuilder) Build() *SignGroup {
  6548  	req := &SignGroup{}
  6549  	if builder.instanceCodeFlag {
  6550  		req.InstanceCode = &builder.instanceCode
  6551  
  6552  	}
  6553  	if builder.userIdFlag {
  6554  		req.UserId = builder.userId
  6555  	}
  6556  	if builder.accountCodeFlag {
  6557  		req.AccountCode = &builder.accountCode
  6558  
  6559  	}
  6560  	if builder.boilerplateUniqueCodeFlag {
  6561  		req.BoilerplateUniqueCode = &builder.boilerplateUniqueCode
  6562  
  6563  	}
  6564  	if builder.startTimeFlag {
  6565  		req.StartTime = &builder.startTime
  6566  
  6567  	}
  6568  	if builder.endTimeFlag {
  6569  		req.EndTime = &builder.endTime
  6570  
  6571  	}
  6572  	if builder.typeFlag {
  6573  		req.Type = &builder.type_
  6574  
  6575  	}
  6576  	return req
  6577  }
  6578  
  6579  type SpecifiedRollback struct {
  6580  	UserId         *string  `json:"user_id,omitempty"`           // 用户ID
  6581  	TaskId         *string  `json:"task_id,omitempty"`           // 回退的任务ID
  6582  	Reason         *string  `json:"reason,omitempty"`            // 退回原因
  6583  	Extra          *string  `json:"extra,omitempty"`             // 扩展字段
  6584  	TaskDefKeyList []string `json:"task_def_key_list,omitempty"` // 退回到节点列表
  6585  }
  6586  
  6587  type SpecifiedRollbackBuilder struct {
  6588  	userId             string // 用户ID
  6589  	userIdFlag         bool
  6590  	taskId             string // 回退的任务ID
  6591  	taskIdFlag         bool
  6592  	reason             string // 退回原因
  6593  	reasonFlag         bool
  6594  	extra              string // 扩展字段
  6595  	extraFlag          bool
  6596  	taskDefKeyList     []string // 退回到节点列表
  6597  	taskDefKeyListFlag bool
  6598  }
  6599  
  6600  func NewSpecifiedRollbackBuilder() *SpecifiedRollbackBuilder {
  6601  	builder := &SpecifiedRollbackBuilder{}
  6602  	return builder
  6603  }
  6604  
  6605  // 用户ID
  6606  //
  6607  // 示例值:893g4c45
  6608  func (builder *SpecifiedRollbackBuilder) UserId(userId string) *SpecifiedRollbackBuilder {
  6609  	builder.userId = userId
  6610  	builder.userIdFlag = true
  6611  	return builder
  6612  }
  6613  
  6614  // 回退的任务ID
  6615  //
  6616  // 示例值:7026591166355210260
  6617  func (builder *SpecifiedRollbackBuilder) TaskId(taskId string) *SpecifiedRollbackBuilder {
  6618  	builder.taskId = taskId
  6619  	builder.taskIdFlag = true
  6620  	return builder
  6621  }
  6622  
  6623  // 退回原因
  6624  //
  6625  // 示例值:申请事项填写不具体,请重新填写
  6626  func (builder *SpecifiedRollbackBuilder) Reason(reason string) *SpecifiedRollbackBuilder {
  6627  	builder.reason = reason
  6628  	builder.reasonFlag = true
  6629  	return builder
  6630  }
  6631  
  6632  // 扩展字段
  6633  //
  6634  // 示例值:暂不填写
  6635  func (builder *SpecifiedRollbackBuilder) Extra(extra string) *SpecifiedRollbackBuilder {
  6636  	builder.extra = extra
  6637  	builder.extraFlag = true
  6638  	return builder
  6639  }
  6640  
  6641  // 退回到节点列表
  6642  //
  6643  // 示例值:["START","APPROVAL_27997_285502","APPROVAL_462205_2734554"]
  6644  func (builder *SpecifiedRollbackBuilder) TaskDefKeyList(taskDefKeyList []string) *SpecifiedRollbackBuilder {
  6645  	builder.taskDefKeyList = taskDefKeyList
  6646  	builder.taskDefKeyListFlag = true
  6647  	return builder
  6648  }
  6649  
  6650  func (builder *SpecifiedRollbackBuilder) Build() *SpecifiedRollback {
  6651  	req := &SpecifiedRollback{}
  6652  	if builder.userIdFlag {
  6653  		req.UserId = &builder.userId
  6654  
  6655  	}
  6656  	if builder.taskIdFlag {
  6657  		req.TaskId = &builder.taskId
  6658  
  6659  	}
  6660  	if builder.reasonFlag {
  6661  		req.Reason = &builder.reason
  6662  
  6663  	}
  6664  	if builder.extraFlag {
  6665  		req.Extra = &builder.extra
  6666  
  6667  	}
  6668  	if builder.taskDefKeyListFlag {
  6669  		req.TaskDefKeyList = builder.taskDefKeyList
  6670  	}
  6671  	return req
  6672  }
  6673  
  6674  type Task struct {
  6675  	Topic               *string   `json:"topic,omitempty"`                 // 任务所属的任务分组,如「待办」、「已办」等
  6676  	UserId              *string   `json:"user_id,omitempty"`               // 任务所属的用户 ID
  6677  	Title               *string   `json:"title,omitempty"`                 // 任务题目
  6678  	Urls                *TaskUrls `json:"urls,omitempty"`                  // 任务相关 URL
  6679  	ProcessExternalId   *string   `json:"process_external_id,omitempty"`   // 流程三方 ID,仅第三方流程,需要在当前租户、当前 APP 内唯一
  6680  	TaskExternalId      *string   `json:"task_external_id,omitempty"`      // 任务三方 ID,仅第三方流程,需要在当前流程实例内唯一
  6681  	Status              *string   `json:"status,omitempty"`                // 任务状态
  6682  	ProcessStatus       *string   `json:"process_status,omitempty"`        // 流程实例状态
  6683  	DefinitionCode      *string   `json:"definition_code,omitempty"`       // 流程定义 Code
  6684  	Initiators          []string  `json:"initiators,omitempty"`            // 发起人 ID 列表
  6685  	InitiatorNames      []string  `json:"initiator_names,omitempty"`       // 发起人姓名列表
  6686  	TaskId              *string   `json:"task_id,omitempty"`               // 任务 ID,全局唯一
  6687  	ProcessId           *string   `json:"process_id,omitempty"`            // 流程 ID,全局唯一
  6688  	ProcessCode         *string   `json:"process_code,omitempty"`          // 流程 Code
  6689  	DefinitionGroupId   *string   `json:"definition_group_id,omitempty"`   // 流程定义分组 ID
  6690  	DefinitionGroupName *string   `json:"definition_group_name,omitempty"` // 流程定义分组名称
  6691  	DefinitionId        *string   `json:"definition_id,omitempty"`         // 流程定义 ID
  6692  	DefinitionName      *string   `json:"definition_name,omitempty"`       // 流程定义名称
  6693  }
  6694  
  6695  type TaskBuilder struct {
  6696  	topic                   string // 任务所属的任务分组,如「待办」、「已办」等
  6697  	topicFlag               bool
  6698  	userId                  string // 任务所属的用户 ID
  6699  	userIdFlag              bool
  6700  	title                   string // 任务题目
  6701  	titleFlag               bool
  6702  	urls                    *TaskUrls // 任务相关 URL
  6703  	urlsFlag                bool
  6704  	processExternalId       string // 流程三方 ID,仅第三方流程,需要在当前租户、当前 APP 内唯一
  6705  	processExternalIdFlag   bool
  6706  	taskExternalId          string // 任务三方 ID,仅第三方流程,需要在当前流程实例内唯一
  6707  	taskExternalIdFlag      bool
  6708  	status                  string // 任务状态
  6709  	statusFlag              bool
  6710  	processStatus           string // 流程实例状态
  6711  	processStatusFlag       bool
  6712  	definitionCode          string // 流程定义 Code
  6713  	definitionCodeFlag      bool
  6714  	initiators              []string // 发起人 ID 列表
  6715  	initiatorsFlag          bool
  6716  	initiatorNames          []string // 发起人姓名列表
  6717  	initiatorNamesFlag      bool
  6718  	taskId                  string // 任务 ID,全局唯一
  6719  	taskIdFlag              bool
  6720  	processId               string // 流程 ID,全局唯一
  6721  	processIdFlag           bool
  6722  	processCode             string // 流程 Code
  6723  	processCodeFlag         bool
  6724  	definitionGroupId       string // 流程定义分组 ID
  6725  	definitionGroupIdFlag   bool
  6726  	definitionGroupName     string // 流程定义分组名称
  6727  	definitionGroupNameFlag bool
  6728  	definitionId            string // 流程定义 ID
  6729  	definitionIdFlag        bool
  6730  	definitionName          string // 流程定义名称
  6731  	definitionNameFlag      bool
  6732  }
  6733  
  6734  func NewTaskBuilder() *TaskBuilder {
  6735  	builder := &TaskBuilder{}
  6736  	return builder
  6737  }
  6738  
  6739  // 任务所属的任务分组,如「待办」、「已办」等
  6740  //
  6741  // 示例值:1
  6742  func (builder *TaskBuilder) Topic(topic string) *TaskBuilder {
  6743  	builder.topic = topic
  6744  	builder.topicFlag = true
  6745  	return builder
  6746  }
  6747  
  6748  // 任务所属的用户 ID
  6749  //
  6750  // 示例值:example_user_id
  6751  func (builder *TaskBuilder) UserId(userId string) *TaskBuilder {
  6752  	builder.userId = userId
  6753  	builder.userIdFlag = true
  6754  	return builder
  6755  }
  6756  
  6757  // 任务题目
  6758  //
  6759  // 示例值:任务题目示例
  6760  func (builder *TaskBuilder) Title(title string) *TaskBuilder {
  6761  	builder.title = title
  6762  	builder.titleFlag = true
  6763  	return builder
  6764  }
  6765  
  6766  // 任务相关 URL
  6767  //
  6768  // 示例值:
  6769  func (builder *TaskBuilder) Urls(urls *TaskUrls) *TaskBuilder {
  6770  	builder.urls = urls
  6771  	builder.urlsFlag = true
  6772  	return builder
  6773  }
  6774  
  6775  // 流程三方 ID,仅第三方流程,需要在当前租户、当前 APP 内唯一
  6776  //
  6777  // 示例值:example_instance_id
  6778  func (builder *TaskBuilder) ProcessExternalId(processExternalId string) *TaskBuilder {
  6779  	builder.processExternalId = processExternalId
  6780  	builder.processExternalIdFlag = true
  6781  	return builder
  6782  }
  6783  
  6784  // 任务三方 ID,仅第三方流程,需要在当前流程实例内唯一
  6785  //
  6786  // 示例值:example_task_id
  6787  func (builder *TaskBuilder) TaskExternalId(taskExternalId string) *TaskBuilder {
  6788  	builder.taskExternalId = taskExternalId
  6789  	builder.taskExternalIdFlag = true
  6790  	return builder
  6791  }
  6792  
  6793  // 任务状态
  6794  //
  6795  // 示例值:Todo
  6796  func (builder *TaskBuilder) Status(status string) *TaskBuilder {
  6797  	builder.status = status
  6798  	builder.statusFlag = true
  6799  	return builder
  6800  }
  6801  
  6802  // 流程实例状态
  6803  //
  6804  // 示例值:Running
  6805  func (builder *TaskBuilder) ProcessStatus(processStatus string) *TaskBuilder {
  6806  	builder.processStatus = processStatus
  6807  	builder.processStatusFlag = true
  6808  	return builder
  6809  }
  6810  
  6811  // 流程定义 Code
  6812  //
  6813  // 示例值:000000-00000000000000-0example
  6814  func (builder *TaskBuilder) DefinitionCode(definitionCode string) *TaskBuilder {
  6815  	builder.definitionCode = definitionCode
  6816  	builder.definitionCodeFlag = true
  6817  	return builder
  6818  }
  6819  
  6820  // 发起人 ID 列表
  6821  //
  6822  // 示例值:
  6823  func (builder *TaskBuilder) Initiators(initiators []string) *TaskBuilder {
  6824  	builder.initiators = initiators
  6825  	builder.initiatorsFlag = true
  6826  	return builder
  6827  }
  6828  
  6829  // 发起人姓名列表
  6830  //
  6831  // 示例值:
  6832  func (builder *TaskBuilder) InitiatorNames(initiatorNames []string) *TaskBuilder {
  6833  	builder.initiatorNames = initiatorNames
  6834  	builder.initiatorNamesFlag = true
  6835  	return builder
  6836  }
  6837  
  6838  // 任务 ID,全局唯一
  6839  //
  6840  // 示例值:1212564555454
  6841  func (builder *TaskBuilder) TaskId(taskId string) *TaskBuilder {
  6842  	builder.taskId = taskId
  6843  	builder.taskIdFlag = true
  6844  	return builder
  6845  }
  6846  
  6847  // 流程 ID,全局唯一
  6848  //
  6849  // 示例值:1214564545474
  6850  func (builder *TaskBuilder) ProcessId(processId string) *TaskBuilder {
  6851  	builder.processId = processId
  6852  	builder.processIdFlag = true
  6853  	return builder
  6854  }
  6855  
  6856  // 流程 Code
  6857  //
  6858  // 示例值:123e4567-e89b-12d3-a456-426655440000
  6859  func (builder *TaskBuilder) ProcessCode(processCode string) *TaskBuilder {
  6860  	builder.processCode = processCode
  6861  	builder.processCodeFlag = true
  6862  	return builder
  6863  }
  6864  
  6865  // 流程定义分组 ID
  6866  //
  6867  // 示例值:1212564555454
  6868  func (builder *TaskBuilder) DefinitionGroupId(definitionGroupId string) *TaskBuilder {
  6869  	builder.definitionGroupId = definitionGroupId
  6870  	builder.definitionGroupIdFlag = true
  6871  	return builder
  6872  }
  6873  
  6874  // 流程定义分组名称
  6875  //
  6876  // 示例值:流程定义名称
  6877  func (builder *TaskBuilder) DefinitionGroupName(definitionGroupName string) *TaskBuilder {
  6878  	builder.definitionGroupName = definitionGroupName
  6879  	builder.definitionGroupNameFlag = true
  6880  	return builder
  6881  }
  6882  
  6883  // 流程定义 ID
  6884  //
  6885  // 示例值:1212564555454
  6886  func (builder *TaskBuilder) DefinitionId(definitionId string) *TaskBuilder {
  6887  	builder.definitionId = definitionId
  6888  	builder.definitionIdFlag = true
  6889  	return builder
  6890  }
  6891  
  6892  // 流程定义名称
  6893  //
  6894  // 示例值:流程定义组名称
  6895  func (builder *TaskBuilder) DefinitionName(definitionName string) *TaskBuilder {
  6896  	builder.definitionName = definitionName
  6897  	builder.definitionNameFlag = true
  6898  	return builder
  6899  }
  6900  
  6901  func (builder *TaskBuilder) Build() *Task {
  6902  	req := &Task{}
  6903  	if builder.topicFlag {
  6904  		req.Topic = &builder.topic
  6905  
  6906  	}
  6907  	if builder.userIdFlag {
  6908  		req.UserId = &builder.userId
  6909  
  6910  	}
  6911  	if builder.titleFlag {
  6912  		req.Title = &builder.title
  6913  
  6914  	}
  6915  	if builder.urlsFlag {
  6916  		req.Urls = builder.urls
  6917  	}
  6918  	if builder.processExternalIdFlag {
  6919  		req.ProcessExternalId = &builder.processExternalId
  6920  
  6921  	}
  6922  	if builder.taskExternalIdFlag {
  6923  		req.TaskExternalId = &builder.taskExternalId
  6924  
  6925  	}
  6926  	if builder.statusFlag {
  6927  		req.Status = &builder.status
  6928  
  6929  	}
  6930  	if builder.processStatusFlag {
  6931  		req.ProcessStatus = &builder.processStatus
  6932  
  6933  	}
  6934  	if builder.definitionCodeFlag {
  6935  		req.DefinitionCode = &builder.definitionCode
  6936  
  6937  	}
  6938  	if builder.initiatorsFlag {
  6939  		req.Initiators = builder.initiators
  6940  	}
  6941  	if builder.initiatorNamesFlag {
  6942  		req.InitiatorNames = builder.initiatorNames
  6943  	}
  6944  	if builder.taskIdFlag {
  6945  		req.TaskId = &builder.taskId
  6946  
  6947  	}
  6948  	if builder.processIdFlag {
  6949  		req.ProcessId = &builder.processId
  6950  
  6951  	}
  6952  	if builder.processCodeFlag {
  6953  		req.ProcessCode = &builder.processCode
  6954  
  6955  	}
  6956  	if builder.definitionGroupIdFlag {
  6957  		req.DefinitionGroupId = &builder.definitionGroupId
  6958  
  6959  	}
  6960  	if builder.definitionGroupNameFlag {
  6961  		req.DefinitionGroupName = &builder.definitionGroupName
  6962  
  6963  	}
  6964  	if builder.definitionIdFlag {
  6965  		req.DefinitionId = &builder.definitionId
  6966  
  6967  	}
  6968  	if builder.definitionNameFlag {
  6969  		req.DefinitionName = &builder.definitionName
  6970  
  6971  	}
  6972  	return req
  6973  }
  6974  
  6975  type TaskApprove struct {
  6976  	ApprovalCode *string `json:"approval_code,omitempty"` // 审批定义 Code
  6977  	InstanceCode *string `json:"instance_code,omitempty"` // 审批实例 Code
  6978  	UserId       *string `json:"user_id,omitempty"`       // 根据user_id_type填写操作用户id
  6979  	Comment      *string `json:"comment,omitempty"`       // 意见
  6980  	TaskId       *string `json:"task_id,omitempty"`       // 任务 ID, 审批实例详情task_list中id
  6981  	Form         *string `json:"form,omitempty"`          // json 数组,控件值
  6982  }
  6983  
  6984  type TaskApproveBuilder struct {
  6985  	approvalCode     string // 审批定义 Code
  6986  	approvalCodeFlag bool
  6987  	instanceCode     string // 审批实例 Code
  6988  	instanceCodeFlag bool
  6989  	userId           string // 根据user_id_type填写操作用户id
  6990  	userIdFlag       bool
  6991  	comment          string // 意见
  6992  	commentFlag      bool
  6993  	taskId           string // 任务 ID, 审批实例详情task_list中id
  6994  	taskIdFlag       bool
  6995  	form             string // json 数组,控件值
  6996  	formFlag         bool
  6997  }
  6998  
  6999  func NewTaskApproveBuilder() *TaskApproveBuilder {
  7000  	builder := &TaskApproveBuilder{}
  7001  	return builder
  7002  }
  7003  
  7004  // 审批定义 Code
  7005  //
  7006  // 示例值:7C468A54-8745-2245-9675-08B7C63E7A85
  7007  func (builder *TaskApproveBuilder) ApprovalCode(approvalCode string) *TaskApproveBuilder {
  7008  	builder.approvalCode = approvalCode
  7009  	builder.approvalCodeFlag = true
  7010  	return builder
  7011  }
  7012  
  7013  // 审批实例 Code
  7014  //
  7015  // 示例值:81D31358-93AF-92D6-7425-01A5D67C4E71
  7016  func (builder *TaskApproveBuilder) InstanceCode(instanceCode string) *TaskApproveBuilder {
  7017  	builder.instanceCode = instanceCode
  7018  	builder.instanceCodeFlag = true
  7019  	return builder
  7020  }
  7021  
  7022  // 根据user_id_type填写操作用户id
  7023  //
  7024  // 示例值:f7cb567e
  7025  func (builder *TaskApproveBuilder) UserId(userId string) *TaskApproveBuilder {
  7026  	builder.userId = userId
  7027  	builder.userIdFlag = true
  7028  	return builder
  7029  }
  7030  
  7031  // 意见
  7032  //
  7033  // 示例值:OK
  7034  func (builder *TaskApproveBuilder) Comment(comment string) *TaskApproveBuilder {
  7035  	builder.comment = comment
  7036  	builder.commentFlag = true
  7037  	return builder
  7038  }
  7039  
  7040  // 任务 ID, 审批实例详情task_list中id
  7041  //
  7042  // 示例值:12345
  7043  func (builder *TaskApproveBuilder) TaskId(taskId string) *TaskApproveBuilder {
  7044  	builder.taskId = taskId
  7045  	builder.taskIdFlag = true
  7046  	return builder
  7047  }
  7048  
  7049  // json 数组,控件值
  7050  //
  7051  // 示例值:[{\"id\":\"111\", \"type\": \"input\", \"value\":\"test\"}]
  7052  func (builder *TaskApproveBuilder) Form(form string) *TaskApproveBuilder {
  7053  	builder.form = form
  7054  	builder.formFlag = true
  7055  	return builder
  7056  }
  7057  
  7058  func (builder *TaskApproveBuilder) Build() *TaskApprove {
  7059  	req := &TaskApprove{}
  7060  	if builder.approvalCodeFlag {
  7061  		req.ApprovalCode = &builder.approvalCode
  7062  
  7063  	}
  7064  	if builder.instanceCodeFlag {
  7065  		req.InstanceCode = &builder.instanceCode
  7066  
  7067  	}
  7068  	if builder.userIdFlag {
  7069  		req.UserId = &builder.userId
  7070  
  7071  	}
  7072  	if builder.commentFlag {
  7073  		req.Comment = &builder.comment
  7074  
  7075  	}
  7076  	if builder.taskIdFlag {
  7077  		req.TaskId = &builder.taskId
  7078  
  7079  	}
  7080  	if builder.formFlag {
  7081  		req.Form = &builder.form
  7082  
  7083  	}
  7084  	return req
  7085  }
  7086  
  7087  type TaskResubmit struct {
  7088  	ApprovalCode *string `json:"approval_code,omitempty"` // 审批定义 Code
  7089  	InstanceCode *string `json:"instance_code,omitempty"` // 审批实例 Code
  7090  	UserId       *string `json:"user_id,omitempty"`       // 根据user_id_type填写操作用户id
  7091  	Comment      *string `json:"comment,omitempty"`       // 意见
  7092  	TaskId       *string `json:"task_id,omitempty"`       // 任务 ID, 审批实例详情task_list中id
  7093  	Form         *string `json:"form,omitempty"`          // json 数组,控件值,同创建审批实例接口中form字段
  7094  }
  7095  
  7096  type TaskResubmitBuilder struct {
  7097  	approvalCode     string // 审批定义 Code
  7098  	approvalCodeFlag bool
  7099  	instanceCode     string // 审批实例 Code
  7100  	instanceCodeFlag bool
  7101  	userId           string // 根据user_id_type填写操作用户id
  7102  	userIdFlag       bool
  7103  	comment          string // 意见
  7104  	commentFlag      bool
  7105  	taskId           string // 任务 ID, 审批实例详情task_list中id
  7106  	taskIdFlag       bool
  7107  	form             string // json 数组,控件值,同创建审批实例接口中form字段
  7108  	formFlag         bool
  7109  }
  7110  
  7111  func NewTaskResubmitBuilder() *TaskResubmitBuilder {
  7112  	builder := &TaskResubmitBuilder{}
  7113  	return builder
  7114  }
  7115  
  7116  // 审批定义 Code
  7117  //
  7118  // 示例值:7C468A54-8745-2245-9675-08B7C63E7A85
  7119  func (builder *TaskResubmitBuilder) ApprovalCode(approvalCode string) *TaskResubmitBuilder {
  7120  	builder.approvalCode = approvalCode
  7121  	builder.approvalCodeFlag = true
  7122  	return builder
  7123  }
  7124  
  7125  // 审批实例 Code
  7126  //
  7127  // 示例值:81D31358-93AF-92D6-7425-01A5D67C4E71
  7128  func (builder *TaskResubmitBuilder) InstanceCode(instanceCode string) *TaskResubmitBuilder {
  7129  	builder.instanceCode = instanceCode
  7130  	builder.instanceCodeFlag = true
  7131  	return builder
  7132  }
  7133  
  7134  // 根据user_id_type填写操作用户id
  7135  //
  7136  // 示例值:f7cb567e
  7137  func (builder *TaskResubmitBuilder) UserId(userId string) *TaskResubmitBuilder {
  7138  	builder.userId = userId
  7139  	builder.userIdFlag = true
  7140  	return builder
  7141  }
  7142  
  7143  // 意见
  7144  //
  7145  // 示例值:{\"text\":\"评论\",\"file_codes\":[\"ABCD1232s\",\"ABC12334d22\"]}
  7146  func (builder *TaskResubmitBuilder) Comment(comment string) *TaskResubmitBuilder {
  7147  	builder.comment = comment
  7148  	builder.commentFlag = true
  7149  	return builder
  7150  }
  7151  
  7152  // 任务 ID, 审批实例详情task_list中id
  7153  //
  7154  // 示例值:12345
  7155  func (builder *TaskResubmitBuilder) TaskId(taskId string) *TaskResubmitBuilder {
  7156  	builder.taskId = taskId
  7157  	builder.taskIdFlag = true
  7158  	return builder
  7159  }
  7160  
  7161  // json 数组,控件值,同创建审批实例接口中form字段
  7162  //
  7163  // 示例值:[{\"id\":\"user_name\", \"type\": \"input\", \"value\":\"test\"}]
  7164  func (builder *TaskResubmitBuilder) Form(form string) *TaskResubmitBuilder {
  7165  	builder.form = form
  7166  	builder.formFlag = true
  7167  	return builder
  7168  }
  7169  
  7170  func (builder *TaskResubmitBuilder) Build() *TaskResubmit {
  7171  	req := &TaskResubmit{}
  7172  	if builder.approvalCodeFlag {
  7173  		req.ApprovalCode = &builder.approvalCode
  7174  
  7175  	}
  7176  	if builder.instanceCodeFlag {
  7177  		req.InstanceCode = &builder.instanceCode
  7178  
  7179  	}
  7180  	if builder.userIdFlag {
  7181  		req.UserId = &builder.userId
  7182  
  7183  	}
  7184  	if builder.commentFlag {
  7185  		req.Comment = &builder.comment
  7186  
  7187  	}
  7188  	if builder.taskIdFlag {
  7189  		req.TaskId = &builder.taskId
  7190  
  7191  	}
  7192  	if builder.formFlag {
  7193  		req.Form = &builder.form
  7194  
  7195  	}
  7196  	return req
  7197  }
  7198  
  7199  type TaskSearch struct {
  7200  	UserId             *string `json:"user_id,omitempty"`              // 根据x_user_type填写用户 id
  7201  	ApprovalCode       *string `json:"approval_code,omitempty"`        // 审批定义 code
  7202  	InstanceCode       *string `json:"instance_code,omitempty"`        // 审批实例 code
  7203  	InstanceExternalId *string `json:"instance_external_id,omitempty"` // 审批实例第三方 id 注:和 approval_code 取并集
  7204  	GroupExternalId    *string `json:"group_external_id,omitempty"`    // 审批定义分组第三方 id 注:和 instance_code 取并集
  7205  	TaskTitle          *string `json:"task_title,omitempty"`           // 审批任务标题(只有第三方审批有)
  7206  	TaskStatus         *string `json:"task_status,omitempty"`          // 审批任务状态,注:若不设置,查询全部状态 若不在集合中,报错
  7207  	TaskStartTimeFrom  *string `json:"task_start_time_from,omitempty"` // 任务查询开始时间(unix毫秒时间戳)
  7208  	TaskStartTimeTo    *string `json:"task_start_time_to,omitempty"`   // 任务查询结束时间 (unix毫秒时间戳)
  7209  	Locale             *string `json:"locale,omitempty"`               // 地区
  7210  }
  7211  
  7212  type TaskSearchBuilder struct {
  7213  	userId                 string // 根据x_user_type填写用户 id
  7214  	userIdFlag             bool
  7215  	approvalCode           string // 审批定义 code
  7216  	approvalCodeFlag       bool
  7217  	instanceCode           string // 审批实例 code
  7218  	instanceCodeFlag       bool
  7219  	instanceExternalId     string // 审批实例第三方 id 注:和 approval_code 取并集
  7220  	instanceExternalIdFlag bool
  7221  	groupExternalId        string // 审批定义分组第三方 id 注:和 instance_code 取并集
  7222  	groupExternalIdFlag    bool
  7223  	taskTitle              string // 审批任务标题(只有第三方审批有)
  7224  	taskTitleFlag          bool
  7225  	taskStatus             string // 审批任务状态,注:若不设置,查询全部状态 若不在集合中,报错
  7226  	taskStatusFlag         bool
  7227  	taskStartTimeFrom      string // 任务查询开始时间(unix毫秒时间戳)
  7228  	taskStartTimeFromFlag  bool
  7229  	taskStartTimeTo        string // 任务查询结束时间 (unix毫秒时间戳)
  7230  	taskStartTimeToFlag    bool
  7231  	locale                 string // 地区
  7232  	localeFlag             bool
  7233  }
  7234  
  7235  func NewTaskSearchBuilder() *TaskSearchBuilder {
  7236  	builder := &TaskSearchBuilder{}
  7237  	return builder
  7238  }
  7239  
  7240  // 根据x_user_type填写用户 id
  7241  //
  7242  // 示例值:lwiu098wj
  7243  func (builder *TaskSearchBuilder) UserId(userId string) *TaskSearchBuilder {
  7244  	builder.userId = userId
  7245  	builder.userIdFlag = true
  7246  	return builder
  7247  }
  7248  
  7249  // 审批定义 code
  7250  //
  7251  // 示例值:EB828003-9FFE-4B3F-AA50-2E199E2ED942
  7252  func (builder *TaskSearchBuilder) ApprovalCode(approvalCode string) *TaskSearchBuilder {
  7253  	builder.approvalCode = approvalCode
  7254  	builder.approvalCodeFlag = true
  7255  	return builder
  7256  }
  7257  
  7258  // 审批实例 code
  7259  //
  7260  // 示例值:EB828003-9FFE-4B3F-AA50-2E199E2ED943
  7261  func (builder *TaskSearchBuilder) InstanceCode(instanceCode string) *TaskSearchBuilder {
  7262  	builder.instanceCode = instanceCode
  7263  	builder.instanceCodeFlag = true
  7264  	return builder
  7265  }
  7266  
  7267  // 审批实例第三方 id 注:和 approval_code 取并集
  7268  //
  7269  // 示例值:EB828003-9FFE-4B3F-AA50-2E199E2ED976
  7270  func (builder *TaskSearchBuilder) InstanceExternalId(instanceExternalId string) *TaskSearchBuilder {
  7271  	builder.instanceExternalId = instanceExternalId
  7272  	builder.instanceExternalIdFlag = true
  7273  	return builder
  7274  }
  7275  
  7276  // 审批定义分组第三方 id 注:和 instance_code 取并集
  7277  //
  7278  // 示例值:1234567
  7279  func (builder *TaskSearchBuilder) GroupExternalId(groupExternalId string) *TaskSearchBuilder {
  7280  	builder.groupExternalId = groupExternalId
  7281  	builder.groupExternalIdFlag = true
  7282  	return builder
  7283  }
  7284  
  7285  // 审批任务标题(只有第三方审批有)
  7286  //
  7287  // 示例值:test
  7288  func (builder *TaskSearchBuilder) TaskTitle(taskTitle string) *TaskSearchBuilder {
  7289  	builder.taskTitle = taskTitle
  7290  	builder.taskTitleFlag = true
  7291  	return builder
  7292  }
  7293  
  7294  // 审批任务状态,注:若不设置,查询全部状态 若不在集合中,报错
  7295  //
  7296  // 示例值:PENDING
  7297  func (builder *TaskSearchBuilder) TaskStatus(taskStatus string) *TaskSearchBuilder {
  7298  	builder.taskStatus = taskStatus
  7299  	builder.taskStatusFlag = true
  7300  	return builder
  7301  }
  7302  
  7303  // 任务查询开始时间(unix毫秒时间戳)
  7304  //
  7305  // 示例值:1547654251506
  7306  func (builder *TaskSearchBuilder) TaskStartTimeFrom(taskStartTimeFrom string) *TaskSearchBuilder {
  7307  	builder.taskStartTimeFrom = taskStartTimeFrom
  7308  	builder.taskStartTimeFromFlag = true
  7309  	return builder
  7310  }
  7311  
  7312  // 任务查询结束时间 (unix毫秒时间戳)
  7313  //
  7314  // 示例值:1547654251506
  7315  func (builder *TaskSearchBuilder) TaskStartTimeTo(taskStartTimeTo string) *TaskSearchBuilder {
  7316  	builder.taskStartTimeTo = taskStartTimeTo
  7317  	builder.taskStartTimeToFlag = true
  7318  	return builder
  7319  }
  7320  
  7321  // 地区
  7322  //
  7323  // 示例值:zh-CN
  7324  func (builder *TaskSearchBuilder) Locale(locale string) *TaskSearchBuilder {
  7325  	builder.locale = locale
  7326  	builder.localeFlag = true
  7327  	return builder
  7328  }
  7329  
  7330  func (builder *TaskSearchBuilder) Build() *TaskSearch {
  7331  	req := &TaskSearch{}
  7332  	if builder.userIdFlag {
  7333  		req.UserId = &builder.userId
  7334  
  7335  	}
  7336  	if builder.approvalCodeFlag {
  7337  		req.ApprovalCode = &builder.approvalCode
  7338  
  7339  	}
  7340  	if builder.instanceCodeFlag {
  7341  		req.InstanceCode = &builder.instanceCode
  7342  
  7343  	}
  7344  	if builder.instanceExternalIdFlag {
  7345  		req.InstanceExternalId = &builder.instanceExternalId
  7346  
  7347  	}
  7348  	if builder.groupExternalIdFlag {
  7349  		req.GroupExternalId = &builder.groupExternalId
  7350  
  7351  	}
  7352  	if builder.taskTitleFlag {
  7353  		req.TaskTitle = &builder.taskTitle
  7354  
  7355  	}
  7356  	if builder.taskStatusFlag {
  7357  		req.TaskStatus = &builder.taskStatus
  7358  
  7359  	}
  7360  	if builder.taskStartTimeFromFlag {
  7361  		req.TaskStartTimeFrom = &builder.taskStartTimeFrom
  7362  
  7363  	}
  7364  	if builder.taskStartTimeToFlag {
  7365  		req.TaskStartTimeTo = &builder.taskStartTimeTo
  7366  
  7367  	}
  7368  	if builder.localeFlag {
  7369  		req.Locale = &builder.locale
  7370  
  7371  	}
  7372  	return req
  7373  }
  7374  
  7375  type TaskSearchItem struct {
  7376  	Approval *InstanceSearchApproval `json:"approval,omitempty"` // 审批定义
  7377  	Group    *InstanceSearchGroup    `json:"group,omitempty"`    // 审批定义分组
  7378  	Instance *InstanceSearchNode     `json:"instance,omitempty"` // 审批实例信息
  7379  	Task     *TaskSearchNode         `json:"task,omitempty"`     // 审批任务
  7380  }
  7381  
  7382  type TaskSearchItemBuilder struct {
  7383  	approval     *InstanceSearchApproval // 审批定义
  7384  	approvalFlag bool
  7385  	group        *InstanceSearchGroup // 审批定义分组
  7386  	groupFlag    bool
  7387  	instance     *InstanceSearchNode // 审批实例信息
  7388  	instanceFlag bool
  7389  	task         *TaskSearchNode // 审批任务
  7390  	taskFlag     bool
  7391  }
  7392  
  7393  func NewTaskSearchItemBuilder() *TaskSearchItemBuilder {
  7394  	builder := &TaskSearchItemBuilder{}
  7395  	return builder
  7396  }
  7397  
  7398  // 审批定义
  7399  //
  7400  // 示例值:
  7401  func (builder *TaskSearchItemBuilder) Approval(approval *InstanceSearchApproval) *TaskSearchItemBuilder {
  7402  	builder.approval = approval
  7403  	builder.approvalFlag = true
  7404  	return builder
  7405  }
  7406  
  7407  // 审批定义分组
  7408  //
  7409  // 示例值:
  7410  func (builder *TaskSearchItemBuilder) Group(group *InstanceSearchGroup) *TaskSearchItemBuilder {
  7411  	builder.group = group
  7412  	builder.groupFlag = true
  7413  	return builder
  7414  }
  7415  
  7416  // 审批实例信息
  7417  //
  7418  // 示例值:
  7419  func (builder *TaskSearchItemBuilder) Instance(instance *InstanceSearchNode) *TaskSearchItemBuilder {
  7420  	builder.instance = instance
  7421  	builder.instanceFlag = true
  7422  	return builder
  7423  }
  7424  
  7425  // 审批任务
  7426  //
  7427  // 示例值:
  7428  func (builder *TaskSearchItemBuilder) Task(task *TaskSearchNode) *TaskSearchItemBuilder {
  7429  	builder.task = task
  7430  	builder.taskFlag = true
  7431  	return builder
  7432  }
  7433  
  7434  func (builder *TaskSearchItemBuilder) Build() *TaskSearchItem {
  7435  	req := &TaskSearchItem{}
  7436  	if builder.approvalFlag {
  7437  		req.Approval = builder.approval
  7438  	}
  7439  	if builder.groupFlag {
  7440  		req.Group = builder.group
  7441  	}
  7442  	if builder.instanceFlag {
  7443  		req.Instance = builder.instance
  7444  	}
  7445  	if builder.taskFlag {
  7446  		req.Task = builder.task
  7447  	}
  7448  	return req
  7449  }
  7450  
  7451  type TaskSearchNode struct {
  7452  	UserId    *string             `json:"user_id,omitempty"`    // 审批任务发起人 id
  7453  	StartTime *string             `json:"start_time,omitempty"` // 审批任务开始时间
  7454  	EndTime   *string             `json:"end_time,omitempty"`   // 审批任务结束时间
  7455  	Status    *string             `json:"status,omitempty"`     // 审批任务状态
  7456  	Title     *string             `json:"title,omitempty"`      // 审批任务名称(只有第三方审批有)
  7457  	Extra     *string             `json:"extra,omitempty"`      // 审批任务扩展字段,string型json
  7458  	Link      *InstanceSearchLink `json:"link,omitempty"`       // 审批任务链接(只有第三方审批有)
  7459  	TaskId    *string             `json:"task_id,omitempty"`    // 任务id
  7460  }
  7461  
  7462  type TaskSearchNodeBuilder struct {
  7463  	userId        string // 审批任务发起人 id
  7464  	userIdFlag    bool
  7465  	startTime     string // 审批任务开始时间
  7466  	startTimeFlag bool
  7467  	endTime       string // 审批任务结束时间
  7468  	endTimeFlag   bool
  7469  	status        string // 审批任务状态
  7470  	statusFlag    bool
  7471  	title         string // 审批任务名称(只有第三方审批有)
  7472  	titleFlag     bool
  7473  	extra         string // 审批任务扩展字段,string型json
  7474  	extraFlag     bool
  7475  	link          *InstanceSearchLink // 审批任务链接(只有第三方审批有)
  7476  	linkFlag      bool
  7477  	taskId        string // 任务id
  7478  	taskIdFlag    bool
  7479  }
  7480  
  7481  func NewTaskSearchNodeBuilder() *TaskSearchNodeBuilder {
  7482  	builder := &TaskSearchNodeBuilder{}
  7483  	return builder
  7484  }
  7485  
  7486  // 审批任务发起人 id
  7487  //
  7488  // 示例值:lwiu098wj
  7489  func (builder *TaskSearchNodeBuilder) UserId(userId string) *TaskSearchNodeBuilder {
  7490  	builder.userId = userId
  7491  	builder.userIdFlag = true
  7492  	return builder
  7493  }
  7494  
  7495  // 审批任务开始时间
  7496  //
  7497  // 示例值:1547654251506
  7498  func (builder *TaskSearchNodeBuilder) StartTime(startTime string) *TaskSearchNodeBuilder {
  7499  	builder.startTime = startTime
  7500  	builder.startTimeFlag = true
  7501  	return builder
  7502  }
  7503  
  7504  // 审批任务结束时间
  7505  //
  7506  // 示例值:1547654251506
  7507  func (builder *TaskSearchNodeBuilder) EndTime(endTime string) *TaskSearchNodeBuilder {
  7508  	builder.endTime = endTime
  7509  	builder.endTimeFlag = true
  7510  	return builder
  7511  }
  7512  
  7513  // 审批任务状态
  7514  //
  7515  // 示例值:pending
  7516  func (builder *TaskSearchNodeBuilder) Status(status string) *TaskSearchNodeBuilder {
  7517  	builder.status = status
  7518  	builder.statusFlag = true
  7519  	return builder
  7520  }
  7521  
  7522  // 审批任务名称(只有第三方审批有)
  7523  //
  7524  // 示例值:test
  7525  func (builder *TaskSearchNodeBuilder) Title(title string) *TaskSearchNodeBuilder {
  7526  	builder.title = title
  7527  	builder.titleFlag = true
  7528  	return builder
  7529  }
  7530  
  7531  // 审批任务扩展字段,string型json
  7532  //
  7533  // 示例值:{}
  7534  func (builder *TaskSearchNodeBuilder) Extra(extra string) *TaskSearchNodeBuilder {
  7535  	builder.extra = extra
  7536  	builder.extraFlag = true
  7537  	return builder
  7538  }
  7539  
  7540  // 审批任务链接(只有第三方审批有)
  7541  //
  7542  // 示例值:
  7543  func (builder *TaskSearchNodeBuilder) Link(link *InstanceSearchLink) *TaskSearchNodeBuilder {
  7544  	builder.link = link
  7545  	builder.linkFlag = true
  7546  	return builder
  7547  }
  7548  
  7549  // 任务id
  7550  //
  7551  // 示例值:7110153401253494803
  7552  func (builder *TaskSearchNodeBuilder) TaskId(taskId string) *TaskSearchNodeBuilder {
  7553  	builder.taskId = taskId
  7554  	builder.taskIdFlag = true
  7555  	return builder
  7556  }
  7557  
  7558  func (builder *TaskSearchNodeBuilder) Build() *TaskSearchNode {
  7559  	req := &TaskSearchNode{}
  7560  	if builder.userIdFlag {
  7561  		req.UserId = &builder.userId
  7562  
  7563  	}
  7564  	if builder.startTimeFlag {
  7565  		req.StartTime = &builder.startTime
  7566  
  7567  	}
  7568  	if builder.endTimeFlag {
  7569  		req.EndTime = &builder.endTime
  7570  
  7571  	}
  7572  	if builder.statusFlag {
  7573  		req.Status = &builder.status
  7574  
  7575  	}
  7576  	if builder.titleFlag {
  7577  		req.Title = &builder.title
  7578  
  7579  	}
  7580  	if builder.extraFlag {
  7581  		req.Extra = &builder.extra
  7582  
  7583  	}
  7584  	if builder.linkFlag {
  7585  		req.Link = builder.link
  7586  	}
  7587  	if builder.taskIdFlag {
  7588  		req.TaskId = &builder.taskId
  7589  
  7590  	}
  7591  	return req
  7592  }
  7593  
  7594  type TaskTransfer struct {
  7595  	ApprovalCode   *string `json:"approval_code,omitempty"`    // 审批定义 Code
  7596  	InstanceCode   *string `json:"instance_code,omitempty"`    // 审批实例 Code
  7597  	UserId         *string `json:"user_id,omitempty"`          // 根据user_id_type填写操作用户id
  7598  	Comment        *string `json:"comment,omitempty"`          // 意见
  7599  	TransferUserId *string `json:"transfer_user_id,omitempty"` // 根据user_id_type填写被转交人唯一 ID
  7600  	TaskId         *string `json:"task_id,omitempty"`          // 任务 ID, 审批实例详情task_list中id
  7601  }
  7602  
  7603  type TaskTransferBuilder struct {
  7604  	approvalCode       string // 审批定义 Code
  7605  	approvalCodeFlag   bool
  7606  	instanceCode       string // 审批实例 Code
  7607  	instanceCodeFlag   bool
  7608  	userId             string // 根据user_id_type填写操作用户id
  7609  	userIdFlag         bool
  7610  	comment            string // 意见
  7611  	commentFlag        bool
  7612  	transferUserId     string // 根据user_id_type填写被转交人唯一 ID
  7613  	transferUserIdFlag bool
  7614  	taskId             string // 任务 ID, 审批实例详情task_list中id
  7615  	taskIdFlag         bool
  7616  }
  7617  
  7618  func NewTaskTransferBuilder() *TaskTransferBuilder {
  7619  	builder := &TaskTransferBuilder{}
  7620  	return builder
  7621  }
  7622  
  7623  // 审批定义 Code
  7624  //
  7625  // 示例值:7C468A54-8745-2245-9675-08B7C63E7A85
  7626  func (builder *TaskTransferBuilder) ApprovalCode(approvalCode string) *TaskTransferBuilder {
  7627  	builder.approvalCode = approvalCode
  7628  	builder.approvalCodeFlag = true
  7629  	return builder
  7630  }
  7631  
  7632  // 审批实例 Code
  7633  //
  7634  // 示例值:81D31358-93AF-92D6-7425-01A5D67C4E71
  7635  func (builder *TaskTransferBuilder) InstanceCode(instanceCode string) *TaskTransferBuilder {
  7636  	builder.instanceCode = instanceCode
  7637  	builder.instanceCodeFlag = true
  7638  	return builder
  7639  }
  7640  
  7641  // 根据user_id_type填写操作用户id
  7642  //
  7643  // 示例值:f7cb567e
  7644  func (builder *TaskTransferBuilder) UserId(userId string) *TaskTransferBuilder {
  7645  	builder.userId = userId
  7646  	builder.userIdFlag = true
  7647  	return builder
  7648  }
  7649  
  7650  // 意见
  7651  //
  7652  // 示例值:OK
  7653  func (builder *TaskTransferBuilder) Comment(comment string) *TaskTransferBuilder {
  7654  	builder.comment = comment
  7655  	builder.commentFlag = true
  7656  	return builder
  7657  }
  7658  
  7659  // 根据user_id_type填写被转交人唯一 ID
  7660  //
  7661  // 示例值:f4ip317q
  7662  func (builder *TaskTransferBuilder) TransferUserId(transferUserId string) *TaskTransferBuilder {
  7663  	builder.transferUserId = transferUserId
  7664  	builder.transferUserIdFlag = true
  7665  	return builder
  7666  }
  7667  
  7668  // 任务 ID, 审批实例详情task_list中id
  7669  //
  7670  // 示例值:12345
  7671  func (builder *TaskTransferBuilder) TaskId(taskId string) *TaskTransferBuilder {
  7672  	builder.taskId = taskId
  7673  	builder.taskIdFlag = true
  7674  	return builder
  7675  }
  7676  
  7677  func (builder *TaskTransferBuilder) Build() *TaskTransfer {
  7678  	req := &TaskTransfer{}
  7679  	if builder.approvalCodeFlag {
  7680  		req.ApprovalCode = &builder.approvalCode
  7681  
  7682  	}
  7683  	if builder.instanceCodeFlag {
  7684  		req.InstanceCode = &builder.instanceCode
  7685  
  7686  	}
  7687  	if builder.userIdFlag {
  7688  		req.UserId = &builder.userId
  7689  
  7690  	}
  7691  	if builder.commentFlag {
  7692  		req.Comment = &builder.comment
  7693  
  7694  	}
  7695  	if builder.transferUserIdFlag {
  7696  		req.TransferUserId = &builder.transferUserId
  7697  
  7698  	}
  7699  	if builder.taskIdFlag {
  7700  		req.TaskId = &builder.taskId
  7701  
  7702  	}
  7703  	return req
  7704  }
  7705  
  7706  type TaskUrls struct {
  7707  	Helpdesk *string `json:"helpdesk,omitempty"` // 帮助服务台 URL
  7708  	Mobile   *string `json:"mobile,omitempty"`   // 移动端 URL
  7709  	Pc       *string `json:"pc,omitempty"`       // PC 端 URL
  7710  }
  7711  
  7712  type TaskUrlsBuilder struct {
  7713  	helpdesk     string // 帮助服务台 URL
  7714  	helpdeskFlag bool
  7715  	mobile       string // 移动端 URL
  7716  	mobileFlag   bool
  7717  	pc           string // PC 端 URL
  7718  	pcFlag       bool
  7719  }
  7720  
  7721  func NewTaskUrlsBuilder() *TaskUrlsBuilder {
  7722  	builder := &TaskUrlsBuilder{}
  7723  	return builder
  7724  }
  7725  
  7726  // 帮助服务台 URL
  7727  //
  7728  // 示例值:https://blabla
  7729  func (builder *TaskUrlsBuilder) Helpdesk(helpdesk string) *TaskUrlsBuilder {
  7730  	builder.helpdesk = helpdesk
  7731  	builder.helpdeskFlag = true
  7732  	return builder
  7733  }
  7734  
  7735  // 移动端 URL
  7736  //
  7737  // 示例值:https://blabla
  7738  func (builder *TaskUrlsBuilder) Mobile(mobile string) *TaskUrlsBuilder {
  7739  	builder.mobile = mobile
  7740  	builder.mobileFlag = true
  7741  	return builder
  7742  }
  7743  
  7744  // PC 端 URL
  7745  //
  7746  // 示例值:https://blabla
  7747  func (builder *TaskUrlsBuilder) Pc(pc string) *TaskUrlsBuilder {
  7748  	builder.pc = pc
  7749  	builder.pcFlag = true
  7750  	return builder
  7751  }
  7752  
  7753  func (builder *TaskUrlsBuilder) Build() *TaskUrls {
  7754  	req := &TaskUrls{}
  7755  	if builder.helpdeskFlag {
  7756  		req.Helpdesk = &builder.helpdesk
  7757  
  7758  	}
  7759  	if builder.mobileFlag {
  7760  		req.Mobile = &builder.mobile
  7761  
  7762  	}
  7763  	if builder.pcFlag {
  7764  		req.Pc = &builder.pc
  7765  
  7766  	}
  7767  	return req
  7768  }
  7769  
  7770  type TripGroup struct {
  7771  	Type         *string              `json:"type,omitempty"`          // 出差类型
  7772  	InstanceCode *string              `json:"instance_code,omitempty"` // 实例code
  7773  	StartUser    *User                `json:"start_user,omitempty"`    // 发起人
  7774  	StartTime    *string              `json:"start_time,omitempty"`    // 开始时间
  7775  	EndTime      *string              `json:"end_time,omitempty"`      // 结束时间
  7776  	TripInterval *string              `json:"trip_interval,omitempty"` // 出差时间
  7777  	TripReason   *string              `json:"trip_reason,omitempty"`   // 出差理由
  7778  	Schedules    []*TripGroupSchedule `json:"schedules,omitempty"`     // 出差计划
  7779  	TripPeers    []*User              `json:"trip_peers,omitempty"`    // 同行人
  7780  }
  7781  
  7782  type TripGroupBuilder struct {
  7783  	type_            string // 出差类型
  7784  	typeFlag         bool
  7785  	instanceCode     string // 实例code
  7786  	instanceCodeFlag bool
  7787  	startUser        *User // 发起人
  7788  	startUserFlag    bool
  7789  	startTime        string // 开始时间
  7790  	startTimeFlag    bool
  7791  	endTime          string // 结束时间
  7792  	endTimeFlag      bool
  7793  	tripInterval     string // 出差时间
  7794  	tripIntervalFlag bool
  7795  	tripReason       string // 出差理由
  7796  	tripReasonFlag   bool
  7797  	schedules        []*TripGroupSchedule // 出差计划
  7798  	schedulesFlag    bool
  7799  	tripPeers        []*User // 同行人
  7800  	tripPeersFlag    bool
  7801  }
  7802  
  7803  func NewTripGroupBuilder() *TripGroupBuilder {
  7804  	builder := &TripGroupBuilder{}
  7805  	return builder
  7806  }
  7807  
  7808  // 出差类型
  7809  //
  7810  // 示例值:
  7811  func (builder *TripGroupBuilder) Type(type_ string) *TripGroupBuilder {
  7812  	builder.type_ = type_
  7813  	builder.typeFlag = true
  7814  	return builder
  7815  }
  7816  
  7817  // 实例code
  7818  //
  7819  // 示例值:
  7820  func (builder *TripGroupBuilder) InstanceCode(instanceCode string) *TripGroupBuilder {
  7821  	builder.instanceCode = instanceCode
  7822  	builder.instanceCodeFlag = true
  7823  	return builder
  7824  }
  7825  
  7826  // 发起人
  7827  //
  7828  // 示例值:
  7829  func (builder *TripGroupBuilder) StartUser(startUser *User) *TripGroupBuilder {
  7830  	builder.startUser = startUser
  7831  	builder.startUserFlag = true
  7832  	return builder
  7833  }
  7834  
  7835  // 开始时间
  7836  //
  7837  // 示例值:
  7838  func (builder *TripGroupBuilder) StartTime(startTime string) *TripGroupBuilder {
  7839  	builder.startTime = startTime
  7840  	builder.startTimeFlag = true
  7841  	return builder
  7842  }
  7843  
  7844  // 结束时间
  7845  //
  7846  // 示例值:
  7847  func (builder *TripGroupBuilder) EndTime(endTime string) *TripGroupBuilder {
  7848  	builder.endTime = endTime
  7849  	builder.endTimeFlag = true
  7850  	return builder
  7851  }
  7852  
  7853  // 出差时间
  7854  //
  7855  // 示例值:
  7856  func (builder *TripGroupBuilder) TripInterval(tripInterval string) *TripGroupBuilder {
  7857  	builder.tripInterval = tripInterval
  7858  	builder.tripIntervalFlag = true
  7859  	return builder
  7860  }
  7861  
  7862  // 出差理由
  7863  //
  7864  // 示例值:
  7865  func (builder *TripGroupBuilder) TripReason(tripReason string) *TripGroupBuilder {
  7866  	builder.tripReason = tripReason
  7867  	builder.tripReasonFlag = true
  7868  	return builder
  7869  }
  7870  
  7871  // 出差计划
  7872  //
  7873  // 示例值:
  7874  func (builder *TripGroupBuilder) Schedules(schedules []*TripGroupSchedule) *TripGroupBuilder {
  7875  	builder.schedules = schedules
  7876  	builder.schedulesFlag = true
  7877  	return builder
  7878  }
  7879  
  7880  // 同行人
  7881  //
  7882  // 示例值:
  7883  func (builder *TripGroupBuilder) TripPeers(tripPeers []*User) *TripGroupBuilder {
  7884  	builder.tripPeers = tripPeers
  7885  	builder.tripPeersFlag = true
  7886  	return builder
  7887  }
  7888  
  7889  func (builder *TripGroupBuilder) Build() *TripGroup {
  7890  	req := &TripGroup{}
  7891  	if builder.typeFlag {
  7892  		req.Type = &builder.type_
  7893  
  7894  	}
  7895  	if builder.instanceCodeFlag {
  7896  		req.InstanceCode = &builder.instanceCode
  7897  
  7898  	}
  7899  	if builder.startUserFlag {
  7900  		req.StartUser = builder.startUser
  7901  	}
  7902  	if builder.startTimeFlag {
  7903  		req.StartTime = &builder.startTime
  7904  
  7905  	}
  7906  	if builder.endTimeFlag {
  7907  		req.EndTime = &builder.endTime
  7908  
  7909  	}
  7910  	if builder.tripIntervalFlag {
  7911  		req.TripInterval = &builder.tripInterval
  7912  
  7913  	}
  7914  	if builder.tripReasonFlag {
  7915  		req.TripReason = &builder.tripReason
  7916  
  7917  	}
  7918  	if builder.schedulesFlag {
  7919  		req.Schedules = builder.schedules
  7920  	}
  7921  	if builder.tripPeersFlag {
  7922  		req.TripPeers = builder.tripPeers
  7923  	}
  7924  	return req
  7925  }
  7926  
  7927  type TripGroupSchedule struct {
  7928  	TripStartTime  *string `json:"trip_start_time,omitempty"` // 开始时间
  7929  	TripEndTime    *string `json:"trip_end_time,omitempty"`   // 结束时间
  7930  	TripInterval   *string `json:"trip_interval,omitempty"`   // 周期
  7931  	Departure      *string `json:"departure,omitempty"`       // 出发地
  7932  	Destination    *string `json:"destination,omitempty"`     // 目的地
  7933  	Transportation *string `json:"transportation,omitempty"`  // 交通工具
  7934  	TripType       *string `json:"trip_type,omitempty"`       // 出差类型
  7935  	Remark         *string `json:"remark,omitempty"`          // 备注
  7936  }
  7937  
  7938  type TripGroupScheduleBuilder struct {
  7939  	tripStartTime      string // 开始时间
  7940  	tripStartTimeFlag  bool
  7941  	tripEndTime        string // 结束时间
  7942  	tripEndTimeFlag    bool
  7943  	tripInterval       string // 周期
  7944  	tripIntervalFlag   bool
  7945  	departure          string // 出发地
  7946  	departureFlag      bool
  7947  	destination        string // 目的地
  7948  	destinationFlag    bool
  7949  	transportation     string // 交通工具
  7950  	transportationFlag bool
  7951  	tripType           string // 出差类型
  7952  	tripTypeFlag       bool
  7953  	remark             string // 备注
  7954  	remarkFlag         bool
  7955  }
  7956  
  7957  func NewTripGroupScheduleBuilder() *TripGroupScheduleBuilder {
  7958  	builder := &TripGroupScheduleBuilder{}
  7959  	return builder
  7960  }
  7961  
  7962  // 开始时间
  7963  //
  7964  // 示例值:
  7965  func (builder *TripGroupScheduleBuilder) TripStartTime(tripStartTime string) *TripGroupScheduleBuilder {
  7966  	builder.tripStartTime = tripStartTime
  7967  	builder.tripStartTimeFlag = true
  7968  	return builder
  7969  }
  7970  
  7971  // 结束时间
  7972  //
  7973  // 示例值:
  7974  func (builder *TripGroupScheduleBuilder) TripEndTime(tripEndTime string) *TripGroupScheduleBuilder {
  7975  	builder.tripEndTime = tripEndTime
  7976  	builder.tripEndTimeFlag = true
  7977  	return builder
  7978  }
  7979  
  7980  // 周期
  7981  //
  7982  // 示例值:
  7983  func (builder *TripGroupScheduleBuilder) TripInterval(tripInterval string) *TripGroupScheduleBuilder {
  7984  	builder.tripInterval = tripInterval
  7985  	builder.tripIntervalFlag = true
  7986  	return builder
  7987  }
  7988  
  7989  // 出发地
  7990  //
  7991  // 示例值:
  7992  func (builder *TripGroupScheduleBuilder) Departure(departure string) *TripGroupScheduleBuilder {
  7993  	builder.departure = departure
  7994  	builder.departureFlag = true
  7995  	return builder
  7996  }
  7997  
  7998  // 目的地
  7999  //
  8000  // 示例值:
  8001  func (builder *TripGroupScheduleBuilder) Destination(destination string) *TripGroupScheduleBuilder {
  8002  	builder.destination = destination
  8003  	builder.destinationFlag = true
  8004  	return builder
  8005  }
  8006  
  8007  // 交通工具
  8008  //
  8009  // 示例值:
  8010  func (builder *TripGroupScheduleBuilder) Transportation(transportation string) *TripGroupScheduleBuilder {
  8011  	builder.transportation = transportation
  8012  	builder.transportationFlag = true
  8013  	return builder
  8014  }
  8015  
  8016  // 出差类型
  8017  //
  8018  // 示例值:
  8019  func (builder *TripGroupScheduleBuilder) TripType(tripType string) *TripGroupScheduleBuilder {
  8020  	builder.tripType = tripType
  8021  	builder.tripTypeFlag = true
  8022  	return builder
  8023  }
  8024  
  8025  // 备注
  8026  //
  8027  // 示例值:
  8028  func (builder *TripGroupScheduleBuilder) Remark(remark string) *TripGroupScheduleBuilder {
  8029  	builder.remark = remark
  8030  	builder.remarkFlag = true
  8031  	return builder
  8032  }
  8033  
  8034  func (builder *TripGroupScheduleBuilder) Build() *TripGroupSchedule {
  8035  	req := &TripGroupSchedule{}
  8036  	if builder.tripStartTimeFlag {
  8037  		req.TripStartTime = &builder.tripStartTime
  8038  
  8039  	}
  8040  	if builder.tripEndTimeFlag {
  8041  		req.TripEndTime = &builder.tripEndTime
  8042  
  8043  	}
  8044  	if builder.tripIntervalFlag {
  8045  		req.TripInterval = &builder.tripInterval
  8046  
  8047  	}
  8048  	if builder.departureFlag {
  8049  		req.Departure = &builder.departure
  8050  
  8051  	}
  8052  	if builder.destinationFlag {
  8053  		req.Destination = &builder.destination
  8054  
  8055  	}
  8056  	if builder.transportationFlag {
  8057  		req.Transportation = &builder.transportation
  8058  
  8059  	}
  8060  	if builder.tripTypeFlag {
  8061  		req.TripType = &builder.tripType
  8062  
  8063  	}
  8064  	if builder.remarkFlag {
  8065  		req.Remark = &builder.remark
  8066  
  8067  	}
  8068  	return req
  8069  }
  8070  
  8071  type TrusteeshipUrls struct {
  8072  	FormDetailUrl       *string `json:"form_detail_url,omitempty"`       // 获取表单schema相关数据的url地址
  8073  	ActionDefinitionUrl *string `json:"action_definition_url,omitempty"` // 表示获取审批操作区数据的url地址
  8074  	ApprovalNodeUrl     *string `json:"approval_node_url,omitempty"`     // 获取审批记录相关数据的url地址
  8075  	ActionCallbackUrl   *string `json:"action_callback_url,omitempty"`   // 进行审批操作时回调的url地址
  8076  }
  8077  
  8078  type TrusteeshipUrlsBuilder struct {
  8079  	formDetailUrl           string // 获取表单schema相关数据的url地址
  8080  	formDetailUrlFlag       bool
  8081  	actionDefinitionUrl     string // 表示获取审批操作区数据的url地址
  8082  	actionDefinitionUrlFlag bool
  8083  	approvalNodeUrl         string // 获取审批记录相关数据的url地址
  8084  	approvalNodeUrlFlag     bool
  8085  	actionCallbackUrl       string // 进行审批操作时回调的url地址
  8086  	actionCallbackUrlFlag   bool
  8087  }
  8088  
  8089  func NewTrusteeshipUrlsBuilder() *TrusteeshipUrlsBuilder {
  8090  	builder := &TrusteeshipUrlsBuilder{}
  8091  	return builder
  8092  }
  8093  
  8094  // 获取表单schema相关数据的url地址
  8095  //
  8096  // 示例值:https://#{your_domain}/api/form_detail
  8097  func (builder *TrusteeshipUrlsBuilder) FormDetailUrl(formDetailUrl string) *TrusteeshipUrlsBuilder {
  8098  	builder.formDetailUrl = formDetailUrl
  8099  	builder.formDetailUrlFlag = true
  8100  	return builder
  8101  }
  8102  
  8103  // 表示获取审批操作区数据的url地址
  8104  //
  8105  // 示例值:https://#{your_domain}/api/action_definition
  8106  func (builder *TrusteeshipUrlsBuilder) ActionDefinitionUrl(actionDefinitionUrl string) *TrusteeshipUrlsBuilder {
  8107  	builder.actionDefinitionUrl = actionDefinitionUrl
  8108  	builder.actionDefinitionUrlFlag = true
  8109  	return builder
  8110  }
  8111  
  8112  // 获取审批记录相关数据的url地址
  8113  //
  8114  // 示例值:https://#{your_domain}/api/approval_node
  8115  func (builder *TrusteeshipUrlsBuilder) ApprovalNodeUrl(approvalNodeUrl string) *TrusteeshipUrlsBuilder {
  8116  	builder.approvalNodeUrl = approvalNodeUrl
  8117  	builder.approvalNodeUrlFlag = true
  8118  	return builder
  8119  }
  8120  
  8121  // 进行审批操作时回调的url地址
  8122  //
  8123  // 示例值:https://#{your_domain}/api/approval_node
  8124  func (builder *TrusteeshipUrlsBuilder) ActionCallbackUrl(actionCallbackUrl string) *TrusteeshipUrlsBuilder {
  8125  	builder.actionCallbackUrl = actionCallbackUrl
  8126  	builder.actionCallbackUrlFlag = true
  8127  	return builder
  8128  }
  8129  
  8130  func (builder *TrusteeshipUrlsBuilder) Build() *TrusteeshipUrls {
  8131  	req := &TrusteeshipUrls{}
  8132  	if builder.formDetailUrlFlag {
  8133  		req.FormDetailUrl = &builder.formDetailUrl
  8134  
  8135  	}
  8136  	if builder.actionDefinitionUrlFlag {
  8137  		req.ActionDefinitionUrl = &builder.actionDefinitionUrl
  8138  
  8139  	}
  8140  	if builder.approvalNodeUrlFlag {
  8141  		req.ApprovalNodeUrl = &builder.approvalNodeUrl
  8142  
  8143  	}
  8144  	if builder.actionCallbackUrlFlag {
  8145  		req.ActionCallbackUrl = &builder.actionCallbackUrl
  8146  
  8147  	}
  8148  	return req
  8149  }
  8150  
  8151  type User struct {
  8152  	Id   *UserId `json:"id,omitempty"`   // 用户id
  8153  	Name *string `json:"name,omitempty"` // 用户名
  8154  }
  8155  
  8156  type UserBuilder struct {
  8157  	id       *UserId // 用户id
  8158  	idFlag   bool
  8159  	name     string // 用户名
  8160  	nameFlag bool
  8161  }
  8162  
  8163  func NewUserBuilder() *UserBuilder {
  8164  	builder := &UserBuilder{}
  8165  	return builder
  8166  }
  8167  
  8168  // 用户id
  8169  //
  8170  // 示例值:
  8171  func (builder *UserBuilder) Id(id *UserId) *UserBuilder {
  8172  	builder.id = id
  8173  	builder.idFlag = true
  8174  	return builder
  8175  }
  8176  
  8177  // 用户名
  8178  //
  8179  // 示例值:
  8180  func (builder *UserBuilder) Name(name string) *UserBuilder {
  8181  	builder.name = name
  8182  	builder.nameFlag = true
  8183  	return builder
  8184  }
  8185  
  8186  func (builder *UserBuilder) Build() *User {
  8187  	req := &User{}
  8188  	if builder.idFlag {
  8189  		req.Id = builder.id
  8190  	}
  8191  	if builder.nameFlag {
  8192  		req.Name = &builder.name
  8193  
  8194  	}
  8195  	return req
  8196  }
  8197  
  8198  type UserId struct {
  8199  	UserId  *string `json:"user_id,omitempty"`  //
  8200  	OpenId  *string `json:"open_id,omitempty"`  //
  8201  	UnionId *string `json:"union_id,omitempty"` //
  8202  }
  8203  
  8204  type UserIdBuilder struct {
  8205  	userId      string //
  8206  	userIdFlag  bool
  8207  	openId      string //
  8208  	openIdFlag  bool
  8209  	unionId     string //
  8210  	unionIdFlag bool
  8211  }
  8212  
  8213  func NewUserIdBuilder() *UserIdBuilder {
  8214  	builder := &UserIdBuilder{}
  8215  	return builder
  8216  }
  8217  
  8218  //
  8219  //
  8220  // 示例值:
  8221  func (builder *UserIdBuilder) UserId(userId string) *UserIdBuilder {
  8222  	builder.userId = userId
  8223  	builder.userIdFlag = true
  8224  	return builder
  8225  }
  8226  
  8227  //
  8228  //
  8229  // 示例值:
  8230  func (builder *UserIdBuilder) OpenId(openId string) *UserIdBuilder {
  8231  	builder.openId = openId
  8232  	builder.openIdFlag = true
  8233  	return builder
  8234  }
  8235  
  8236  //
  8237  //
  8238  // 示例值:
  8239  func (builder *UserIdBuilder) UnionId(unionId string) *UserIdBuilder {
  8240  	builder.unionId = unionId
  8241  	builder.unionIdFlag = true
  8242  	return builder
  8243  }
  8244  
  8245  func (builder *UserIdBuilder) Build() *UserId {
  8246  	req := &UserId{}
  8247  	if builder.userIdFlag {
  8248  		req.UserId = &builder.userId
  8249  
  8250  	}
  8251  	if builder.openIdFlag {
  8252  		req.OpenId = &builder.openId
  8253  
  8254  	}
  8255  	if builder.unionIdFlag {
  8256  		req.UnionId = &builder.unionId
  8257  
  8258  	}
  8259  	return req
  8260  }
  8261  
  8262  type CreateApprovalReqBuilder struct {
  8263  	apiReq         *larkcore.ApiReq
  8264  	approvalCreate *ApprovalCreate
  8265  }
  8266  
  8267  func NewCreateApprovalReqBuilder() *CreateApprovalReqBuilder {
  8268  	builder := &CreateApprovalReqBuilder{}
  8269  	builder.apiReq = &larkcore.ApiReq{
  8270  		PathParams:  larkcore.PathParams{},
  8271  		QueryParams: larkcore.QueryParams{},
  8272  	}
  8273  	return builder
  8274  }
  8275  
  8276  // 此次调用中使用的部门ID的类型
  8277  //
  8278  // 示例值:open_department_id
  8279  func (builder *CreateApprovalReqBuilder) DepartmentIdType(departmentIdType string) *CreateApprovalReqBuilder {
  8280  	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
  8281  	return builder
  8282  }
  8283  
  8284  // 此次调用中使用的用户ID的类型
  8285  //
  8286  // 示例值:
  8287  func (builder *CreateApprovalReqBuilder) UserIdType(userIdType string) *CreateApprovalReqBuilder {
  8288  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  8289  	return builder
  8290  }
  8291  
  8292  // 用于通过接口创建简单的审批定义,可以灵活指定定义的基础信息、表单和流程等。创建成功后,不支持从审批管理后台删除该定义。不推荐企业自建应用使用,如有需要尽量联系管理员在审批管理后台创建定义。
  8293  func (builder *CreateApprovalReqBuilder) ApprovalCreate(approvalCreate *ApprovalCreate) *CreateApprovalReqBuilder {
  8294  	builder.approvalCreate = approvalCreate
  8295  	return builder
  8296  }
  8297  
  8298  func (builder *CreateApprovalReqBuilder) Build() *CreateApprovalReq {
  8299  	req := &CreateApprovalReq{}
  8300  	req.apiReq = &larkcore.ApiReq{}
  8301  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  8302  	req.apiReq.Body = builder.approvalCreate
  8303  	return req
  8304  }
  8305  
  8306  type CreateApprovalReq struct {
  8307  	apiReq         *larkcore.ApiReq
  8308  	ApprovalCreate *ApprovalCreate `body:""`
  8309  }
  8310  
  8311  type CreateApprovalRespData struct {
  8312  	ApprovalCode *string `json:"approval_code,omitempty"` // 审批定义 Code
  8313  	ApprovalId   *string `json:"approval_id,omitempty"`   // 审批定义 id
  8314  }
  8315  
  8316  type CreateApprovalResp struct {
  8317  	*larkcore.ApiResp `json:"-"`
  8318  	larkcore.CodeError
  8319  	Data *CreateApprovalRespData `json:"data"` // 业务数据
  8320  }
  8321  
  8322  func (resp *CreateApprovalResp) Success() bool {
  8323  	return resp.Code == 0
  8324  }
  8325  
  8326  type GetApprovalReqBuilder struct {
  8327  	apiReq *larkcore.ApiReq
  8328  }
  8329  
  8330  func NewGetApprovalReqBuilder() *GetApprovalReqBuilder {
  8331  	builder := &GetApprovalReqBuilder{}
  8332  	builder.apiReq = &larkcore.ApiReq{
  8333  		PathParams:  larkcore.PathParams{},
  8334  		QueryParams: larkcore.QueryParams{},
  8335  	}
  8336  	return builder
  8337  }
  8338  
  8339  // 审批定义 Code
  8340  //
  8341  // 示例值:7C468A54-8745-2245-9675-08B7C63E7A85
  8342  func (builder *GetApprovalReqBuilder) ApprovalCode(approvalCode string) *GetApprovalReqBuilder {
  8343  	builder.apiReq.PathParams.Set("approval_code", fmt.Sprint(approvalCode))
  8344  	return builder
  8345  }
  8346  
  8347  // 语言可选值
  8348  //
  8349  // 示例值:zh-CN
  8350  func (builder *GetApprovalReqBuilder) Locale(locale string) *GetApprovalReqBuilder {
  8351  	builder.apiReq.QueryParams.Set("locale", fmt.Sprint(locale))
  8352  	return builder
  8353  }
  8354  
  8355  func (builder *GetApprovalReqBuilder) Build() *GetApprovalReq {
  8356  	req := &GetApprovalReq{}
  8357  	req.apiReq = &larkcore.ApiReq{}
  8358  	req.apiReq.PathParams = builder.apiReq.PathParams
  8359  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  8360  	return req
  8361  }
  8362  
  8363  type GetApprovalReq struct {
  8364  	apiReq *larkcore.ApiReq
  8365  }
  8366  
  8367  type GetApprovalRespData struct {
  8368  	ApprovalName *string               `json:"approval_name,omitempty"` // 审批名称
  8369  	Status       *string               `json:"status,omitempty"`        // 审批定义状态
  8370  	Form         *string               `json:"form,omitempty"`          // 控件信息,见下方form字段说明
  8371  	NodeList     []*ApprovalNodeInfo   `json:"node_list,omitempty"`     // 节点信息
  8372  	Viewers      []*ApprovalViewerInfo `json:"viewers,omitempty"`       // 可见人列表
  8373  }
  8374  
  8375  type GetApprovalResp struct {
  8376  	*larkcore.ApiResp `json:"-"`
  8377  	larkcore.CodeError
  8378  	Data *GetApprovalRespData `json:"data"` // 业务数据
  8379  }
  8380  
  8381  func (resp *GetApprovalResp) Success() bool {
  8382  	return resp.Code == 0
  8383  }
  8384  
  8385  type SubscribeApprovalReqBuilder struct {
  8386  	apiReq *larkcore.ApiReq
  8387  }
  8388  
  8389  func NewSubscribeApprovalReqBuilder() *SubscribeApprovalReqBuilder {
  8390  	builder := &SubscribeApprovalReqBuilder{}
  8391  	builder.apiReq = &larkcore.ApiReq{
  8392  		PathParams:  larkcore.PathParams{},
  8393  		QueryParams: larkcore.QueryParams{},
  8394  	}
  8395  	return builder
  8396  }
  8397  
  8398  // 审批定义唯一标识
  8399  //
  8400  // 示例值:7C468A54-8745-2245-9675-08B7C63E7A85
  8401  func (builder *SubscribeApprovalReqBuilder) ApprovalCode(approvalCode string) *SubscribeApprovalReqBuilder {
  8402  	builder.apiReq.PathParams.Set("approval_code", fmt.Sprint(approvalCode))
  8403  	return builder
  8404  }
  8405  
  8406  func (builder *SubscribeApprovalReqBuilder) Build() *SubscribeApprovalReq {
  8407  	req := &SubscribeApprovalReq{}
  8408  	req.apiReq = &larkcore.ApiReq{}
  8409  	req.apiReq.PathParams = builder.apiReq.PathParams
  8410  	return req
  8411  }
  8412  
  8413  type SubscribeApprovalReq struct {
  8414  	apiReq *larkcore.ApiReq
  8415  }
  8416  
  8417  type SubscribeApprovalResp struct {
  8418  	*larkcore.ApiResp `json:"-"`
  8419  	larkcore.CodeError
  8420  }
  8421  
  8422  func (resp *SubscribeApprovalResp) Success() bool {
  8423  	return resp.Code == 0
  8424  }
  8425  
  8426  type UnsubscribeApprovalReqBuilder struct {
  8427  	apiReq *larkcore.ApiReq
  8428  }
  8429  
  8430  func NewUnsubscribeApprovalReqBuilder() *UnsubscribeApprovalReqBuilder {
  8431  	builder := &UnsubscribeApprovalReqBuilder{}
  8432  	builder.apiReq = &larkcore.ApiReq{
  8433  		PathParams:  larkcore.PathParams{},
  8434  		QueryParams: larkcore.QueryParams{},
  8435  	}
  8436  	return builder
  8437  }
  8438  
  8439  // 审批定义唯一标识
  8440  //
  8441  // 示例值:7C468A54-8745-2245-9675-08B7C63E7A85
  8442  func (builder *UnsubscribeApprovalReqBuilder) ApprovalCode(approvalCode string) *UnsubscribeApprovalReqBuilder {
  8443  	builder.apiReq.PathParams.Set("approval_code", fmt.Sprint(approvalCode))
  8444  	return builder
  8445  }
  8446  
  8447  func (builder *UnsubscribeApprovalReqBuilder) Build() *UnsubscribeApprovalReq {
  8448  	req := &UnsubscribeApprovalReq{}
  8449  	req.apiReq = &larkcore.ApiReq{}
  8450  	req.apiReq.PathParams = builder.apiReq.PathParams
  8451  	return req
  8452  }
  8453  
  8454  type UnsubscribeApprovalReq struct {
  8455  	apiReq *larkcore.ApiReq
  8456  }
  8457  
  8458  type UnsubscribeApprovalResp struct {
  8459  	*larkcore.ApiResp `json:"-"`
  8460  	larkcore.CodeError
  8461  }
  8462  
  8463  func (resp *UnsubscribeApprovalResp) Success() bool {
  8464  	return resp.Code == 0
  8465  }
  8466  
  8467  type CreateExternalApprovalReqBuilder struct {
  8468  	apiReq           *larkcore.ApiReq
  8469  	externalApproval *ExternalApproval
  8470  }
  8471  
  8472  func NewCreateExternalApprovalReqBuilder() *CreateExternalApprovalReqBuilder {
  8473  	builder := &CreateExternalApprovalReqBuilder{}
  8474  	builder.apiReq = &larkcore.ApiReq{
  8475  		PathParams:  larkcore.PathParams{},
  8476  		QueryParams: larkcore.QueryParams{},
  8477  	}
  8478  	return builder
  8479  }
  8480  
  8481  // 此次调用中使用的部门ID的类型
  8482  //
  8483  // 示例值:open_department_id
  8484  func (builder *CreateExternalApprovalReqBuilder) DepartmentIdType(departmentIdType string) *CreateExternalApprovalReqBuilder {
  8485  	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
  8486  	return builder
  8487  }
  8488  
  8489  // 此次调用中使用的用户ID的类型
  8490  //
  8491  // 示例值:
  8492  func (builder *CreateExternalApprovalReqBuilder) UserIdType(userIdType string) *CreateExternalApprovalReqBuilder {
  8493  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  8494  	return builder
  8495  }
  8496  
  8497  // 审批定义是审批的描述,包括审批名称、图标、描述等基础信息。创建好审批定义,用户就可以在审批应用的发起页中看到审批,如果用户点击发起,则会跳转到配置的发起三方系统地址去发起审批。;;另外,审批定义还配置了审批操作时的回调地址:审批人在待审批列表中进行【同意】【拒绝】操作时,审批中心会调用回调地址通知三方系统。
  8498  func (builder *CreateExternalApprovalReqBuilder) ExternalApproval(externalApproval *ExternalApproval) *CreateExternalApprovalReqBuilder {
  8499  	builder.externalApproval = externalApproval
  8500  	return builder
  8501  }
  8502  
  8503  func (builder *CreateExternalApprovalReqBuilder) Build() *CreateExternalApprovalReq {
  8504  	req := &CreateExternalApprovalReq{}
  8505  	req.apiReq = &larkcore.ApiReq{}
  8506  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  8507  	req.apiReq.Body = builder.externalApproval
  8508  	return req
  8509  }
  8510  
  8511  type CreateExternalApprovalReq struct {
  8512  	apiReq           *larkcore.ApiReq
  8513  	ExternalApproval *ExternalApproval `body:""`
  8514  }
  8515  
  8516  type CreateExternalApprovalRespData struct {
  8517  	ApprovalCode *string `json:"approval_code,omitempty"` // 审批定义 code,用户自定义,定义的唯一标识
  8518  }
  8519  
  8520  type CreateExternalApprovalResp struct {
  8521  	*larkcore.ApiResp `json:"-"`
  8522  	larkcore.CodeError
  8523  	Data *CreateExternalApprovalRespData `json:"data"` // 业务数据
  8524  }
  8525  
  8526  func (resp *CreateExternalApprovalResp) Success() bool {
  8527  	return resp.Code == 0
  8528  }
  8529  
  8530  type CheckExternalInstanceReqBodyBuilder struct {
  8531  	instances     []*ExteranlInstanceCheck // 校验的实例信息
  8532  	instancesFlag bool
  8533  }
  8534  
  8535  func NewCheckExternalInstanceReqBodyBuilder() *CheckExternalInstanceReqBodyBuilder {
  8536  	builder := &CheckExternalInstanceReqBodyBuilder{}
  8537  	return builder
  8538  }
  8539  
  8540  // 校验的实例信息
  8541  //
  8542  //示例值:
  8543  func (builder *CheckExternalInstanceReqBodyBuilder) Instances(instances []*ExteranlInstanceCheck) *CheckExternalInstanceReqBodyBuilder {
  8544  	builder.instances = instances
  8545  	builder.instancesFlag = true
  8546  	return builder
  8547  }
  8548  
  8549  func (builder *CheckExternalInstanceReqBodyBuilder) Build() *CheckExternalInstanceReqBody {
  8550  	req := &CheckExternalInstanceReqBody{}
  8551  	if builder.instancesFlag {
  8552  		req.Instances = builder.instances
  8553  	}
  8554  	return req
  8555  }
  8556  
  8557  type CheckExternalInstancePathReqBodyBuilder struct {
  8558  	instances     []*ExteranlInstanceCheck // 校验的实例信息
  8559  	instancesFlag bool
  8560  }
  8561  
  8562  func NewCheckExternalInstancePathReqBodyBuilder() *CheckExternalInstancePathReqBodyBuilder {
  8563  	builder := &CheckExternalInstancePathReqBodyBuilder{}
  8564  	return builder
  8565  }
  8566  
  8567  // 校验的实例信息
  8568  //
  8569  // 示例值:
  8570  func (builder *CheckExternalInstancePathReqBodyBuilder) Instances(instances []*ExteranlInstanceCheck) *CheckExternalInstancePathReqBodyBuilder {
  8571  	builder.instances = instances
  8572  	builder.instancesFlag = true
  8573  	return builder
  8574  }
  8575  
  8576  func (builder *CheckExternalInstancePathReqBodyBuilder) Build() (*CheckExternalInstanceReqBody, error) {
  8577  	req := &CheckExternalInstanceReqBody{}
  8578  	if builder.instancesFlag {
  8579  		req.Instances = builder.instances
  8580  	}
  8581  	return req, nil
  8582  }
  8583  
  8584  type CheckExternalInstanceReqBuilder struct {
  8585  	apiReq *larkcore.ApiReq
  8586  	body   *CheckExternalInstanceReqBody
  8587  }
  8588  
  8589  func NewCheckExternalInstanceReqBuilder() *CheckExternalInstanceReqBuilder {
  8590  	builder := &CheckExternalInstanceReqBuilder{}
  8591  	builder.apiReq = &larkcore.ApiReq{
  8592  		PathParams:  larkcore.PathParams{},
  8593  		QueryParams: larkcore.QueryParams{},
  8594  	}
  8595  	return builder
  8596  }
  8597  
  8598  // 校验三方审批实例数据,用于判断服务端数据是否为最新的。用户提交实例最新更新时间,如果服务端不存在该实例,或者服务端实例更新时间不是最新的,则返回对应实例 id。;;例如,用户可以每隔5分钟,将最近5分钟产生的实例使用该接口进行对比。
  8599  func (builder *CheckExternalInstanceReqBuilder) Body(body *CheckExternalInstanceReqBody) *CheckExternalInstanceReqBuilder {
  8600  	builder.body = body
  8601  	return builder
  8602  }
  8603  
  8604  func (builder *CheckExternalInstanceReqBuilder) Build() *CheckExternalInstanceReq {
  8605  	req := &CheckExternalInstanceReq{}
  8606  	req.apiReq = &larkcore.ApiReq{}
  8607  	req.apiReq.Body = builder.body
  8608  	return req
  8609  }
  8610  
  8611  type CheckExternalInstanceReqBody struct {
  8612  	Instances []*ExteranlInstanceCheck `json:"instances,omitempty"` // 校验的实例信息
  8613  }
  8614  
  8615  type CheckExternalInstanceReq struct {
  8616  	apiReq *larkcore.ApiReq
  8617  	Body   *CheckExternalInstanceReqBody `body:""`
  8618  }
  8619  
  8620  type CheckExternalInstanceRespData struct {
  8621  	DiffInstances []*ExteranlInstanceCheckResponse `json:"diff_instances,omitempty"` // 更新时间不一致的实例信息
  8622  }
  8623  
  8624  type CheckExternalInstanceResp struct {
  8625  	*larkcore.ApiResp `json:"-"`
  8626  	larkcore.CodeError
  8627  	Data *CheckExternalInstanceRespData `json:"data"` // 业务数据
  8628  }
  8629  
  8630  func (resp *CheckExternalInstanceResp) Success() bool {
  8631  	return resp.Code == 0
  8632  }
  8633  
  8634  type CreateExternalInstanceReqBuilder struct {
  8635  	apiReq           *larkcore.ApiReq
  8636  	externalInstance *ExternalInstance
  8637  }
  8638  
  8639  func NewCreateExternalInstanceReqBuilder() *CreateExternalInstanceReqBuilder {
  8640  	builder := &CreateExternalInstanceReqBuilder{}
  8641  	builder.apiReq = &larkcore.ApiReq{
  8642  		PathParams:  larkcore.PathParams{},
  8643  		QueryParams: larkcore.QueryParams{},
  8644  	}
  8645  	return builder
  8646  }
  8647  
  8648  // 审批中心不负责审批的流转,审批的流转在三方系统,三方系统在审批流转后生成的审批实例、审批任务、审批抄送数据同步到审批中心。;;用户可以在审批中心中浏览三方系统同步过来的实例、任务、抄送信息,并且可以跳转回三方系统进行更详细的查看和操作,其中实例信息在【已发起】列表,任务信息在【待审批】和【已审批】列表,抄送信息在【抄送我】列表;;:::html;<img src="//sf3-cn.feishucdn.com/obj/open-platform-opendoc/9dff4434afbeb0ef69de7f36b9a6e995_z5iwmTzEgg.png" alt="" style="zoom:17%;" />;;;<img src="//sf3-cn.feishucdn.com/obj/open-platform-opendoc/ca6e0e984a7a6d64e1b16a0bac4bf868_tfqjCiaJQM.png" alt="" style="zoom:17%;" />;;;<img src="//sf3-cn.feishucdn.com/obj/open-platform-opendoc/529377e238df78d391bbd22e962ad195_T7eefLI1GA.png" alt="" style="zoom:17%;" />;:::;;对于审批任务,三方系统也可以配置审批任务的回调接口,这样审批人可以在审批中心中直接进行审批操作,审批中心会回调三方系统,三方系统收到回调后更新任务信息,并将新的任务信息同步回审批中心,形成闭环。;;:::html;<img src="//sf3-cn.feishucdn.com/obj/open-platform-opendoc/721c35428bc1187db3318c572f9979ad_je75QpElcg.png" alt=""  style="zoom:25%;" />;:::;<br>
  8649  func (builder *CreateExternalInstanceReqBuilder) ExternalInstance(externalInstance *ExternalInstance) *CreateExternalInstanceReqBuilder {
  8650  	builder.externalInstance = externalInstance
  8651  	return builder
  8652  }
  8653  
  8654  func (builder *CreateExternalInstanceReqBuilder) Build() *CreateExternalInstanceReq {
  8655  	req := &CreateExternalInstanceReq{}
  8656  	req.apiReq = &larkcore.ApiReq{}
  8657  	req.apiReq.Body = builder.externalInstance
  8658  	return req
  8659  }
  8660  
  8661  type CreateExternalInstanceReq struct {
  8662  	apiReq           *larkcore.ApiReq
  8663  	ExternalInstance *ExternalInstance `body:""`
  8664  }
  8665  
  8666  type CreateExternalInstanceRespData struct {
  8667  	Data *ExternalInstance `json:"data,omitempty"` // 同步的实例数据
  8668  }
  8669  
  8670  type CreateExternalInstanceResp struct {
  8671  	*larkcore.ApiResp `json:"-"`
  8672  	larkcore.CodeError
  8673  	Data *CreateExternalInstanceRespData `json:"data"` // 业务数据
  8674  }
  8675  
  8676  func (resp *CreateExternalInstanceResp) Success() bool {
  8677  	return resp.Code == 0
  8678  }
  8679  
  8680  type ListExternalTaskReqBodyBuilder struct {
  8681  	approvalCodes     []string // 审批定义 Code,用于指定只获取这些定义下的数据
  8682  	approvalCodesFlag bool
  8683  	instanceIds       []string // 审批实例 ID, 用于指定只获取这些实例下的数据,最多支持 20 个
  8684  	instanceIdsFlag   bool
  8685  	userIds           []string // 审批人 user_id,用于指定只获取这些用户的数据
  8686  	userIdsFlag       bool
  8687  	status            string // 审批任务状态,用于指定获取该状态下的数据
  8688  	statusFlag        bool
  8689  }
  8690  
  8691  func NewListExternalTaskReqBodyBuilder() *ListExternalTaskReqBodyBuilder {
  8692  	builder := &ListExternalTaskReqBodyBuilder{}
  8693  	return builder
  8694  }
  8695  
  8696  // 审批定义 Code,用于指定只获取这些定义下的数据
  8697  //
  8698  //示例值:B7B65FFE-C2GC-452F-9F0F-9AA8352363D6
  8699  func (builder *ListExternalTaskReqBodyBuilder) ApprovalCodes(approvalCodes []string) *ListExternalTaskReqBodyBuilder {
  8700  	builder.approvalCodes = approvalCodes
  8701  	builder.approvalCodesFlag = true
  8702  	return builder
  8703  }
  8704  
  8705  // 审批实例 ID, 用于指定只获取这些实例下的数据,最多支持 20 个
  8706  //
  8707  //示例值:oa_159160304
  8708  func (builder *ListExternalTaskReqBodyBuilder) InstanceIds(instanceIds []string) *ListExternalTaskReqBodyBuilder {
  8709  	builder.instanceIds = instanceIds
  8710  	builder.instanceIdsFlag = true
  8711  	return builder
  8712  }
  8713  
  8714  // 审批人 user_id,用于指定只获取这些用户的数据
  8715  //
  8716  //示例值:112321
  8717  func (builder *ListExternalTaskReqBodyBuilder) UserIds(userIds []string) *ListExternalTaskReqBodyBuilder {
  8718  	builder.userIds = userIds
  8719  	builder.userIdsFlag = true
  8720  	return builder
  8721  }
  8722  
  8723  // 审批任务状态,用于指定获取该状态下的数据
  8724  //
  8725  //示例值:PENDING
  8726  func (builder *ListExternalTaskReqBodyBuilder) Status(status string) *ListExternalTaskReqBodyBuilder {
  8727  	builder.status = status
  8728  	builder.statusFlag = true
  8729  	return builder
  8730  }
  8731  
  8732  func (builder *ListExternalTaskReqBodyBuilder) Build() *ListExternalTaskReqBody {
  8733  	req := &ListExternalTaskReqBody{}
  8734  	if builder.approvalCodesFlag {
  8735  		req.ApprovalCodes = builder.approvalCodes
  8736  	}
  8737  	if builder.instanceIdsFlag {
  8738  		req.InstanceIds = builder.instanceIds
  8739  	}
  8740  	if builder.userIdsFlag {
  8741  		req.UserIds = builder.userIds
  8742  	}
  8743  	if builder.statusFlag {
  8744  		req.Status = &builder.status
  8745  	}
  8746  	return req
  8747  }
  8748  
  8749  type ListExternalTaskPathReqBodyBuilder struct {
  8750  	approvalCodes     []string // 审批定义 Code,用于指定只获取这些定义下的数据
  8751  	approvalCodesFlag bool
  8752  	instanceIds       []string // 审批实例 ID, 用于指定只获取这些实例下的数据,最多支持 20 个
  8753  	instanceIdsFlag   bool
  8754  	userIds           []string // 审批人 user_id,用于指定只获取这些用户的数据
  8755  	userIdsFlag       bool
  8756  	status            string // 审批任务状态,用于指定获取该状态下的数据
  8757  	statusFlag        bool
  8758  }
  8759  
  8760  func NewListExternalTaskPathReqBodyBuilder() *ListExternalTaskPathReqBodyBuilder {
  8761  	builder := &ListExternalTaskPathReqBodyBuilder{}
  8762  	return builder
  8763  }
  8764  
  8765  // 审批定义 Code,用于指定只获取这些定义下的数据
  8766  //
  8767  // 示例值:B7B65FFE-C2GC-452F-9F0F-9AA8352363D6
  8768  func (builder *ListExternalTaskPathReqBodyBuilder) ApprovalCodes(approvalCodes []string) *ListExternalTaskPathReqBodyBuilder {
  8769  	builder.approvalCodes = approvalCodes
  8770  	builder.approvalCodesFlag = true
  8771  	return builder
  8772  }
  8773  
  8774  // 审批实例 ID, 用于指定只获取这些实例下的数据,最多支持 20 个
  8775  //
  8776  // 示例值:oa_159160304
  8777  func (builder *ListExternalTaskPathReqBodyBuilder) InstanceIds(instanceIds []string) *ListExternalTaskPathReqBodyBuilder {
  8778  	builder.instanceIds = instanceIds
  8779  	builder.instanceIdsFlag = true
  8780  	return builder
  8781  }
  8782  
  8783  // 审批人 user_id,用于指定只获取这些用户的数据
  8784  //
  8785  // 示例值:112321
  8786  func (builder *ListExternalTaskPathReqBodyBuilder) UserIds(userIds []string) *ListExternalTaskPathReqBodyBuilder {
  8787  	builder.userIds = userIds
  8788  	builder.userIdsFlag = true
  8789  	return builder
  8790  }
  8791  
  8792  // 审批任务状态,用于指定获取该状态下的数据
  8793  //
  8794  // 示例值:PENDING
  8795  func (builder *ListExternalTaskPathReqBodyBuilder) Status(status string) *ListExternalTaskPathReqBodyBuilder {
  8796  	builder.status = status
  8797  	builder.statusFlag = true
  8798  	return builder
  8799  }
  8800  
  8801  func (builder *ListExternalTaskPathReqBodyBuilder) Build() (*ListExternalTaskReqBody, error) {
  8802  	req := &ListExternalTaskReqBody{}
  8803  	if builder.approvalCodesFlag {
  8804  		req.ApprovalCodes = builder.approvalCodes
  8805  	}
  8806  	if builder.instanceIdsFlag {
  8807  		req.InstanceIds = builder.instanceIds
  8808  	}
  8809  	if builder.userIdsFlag {
  8810  		req.UserIds = builder.userIds
  8811  	}
  8812  	if builder.statusFlag {
  8813  		req.Status = &builder.status
  8814  	}
  8815  	return req, nil
  8816  }
  8817  
  8818  type ListExternalTaskReqBuilder struct {
  8819  	apiReq *larkcore.ApiReq
  8820  	body   *ListExternalTaskReqBody
  8821  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  8822  }
  8823  
  8824  func NewListExternalTaskReqBuilder() *ListExternalTaskReqBuilder {
  8825  	builder := &ListExternalTaskReqBuilder{}
  8826  	builder.apiReq = &larkcore.ApiReq{
  8827  		PathParams:  larkcore.PathParams{},
  8828  		QueryParams: larkcore.QueryParams{},
  8829  	}
  8830  	return builder
  8831  }
  8832  
  8833  // 最大返回多少记录,当使用迭代器访问时才有效
  8834  func (builder *ListExternalTaskReqBuilder) Limit(limit int) *ListExternalTaskReqBuilder {
  8835  	builder.limit = limit
  8836  	return builder
  8837  }
  8838  
  8839  // 分页大小
  8840  //
  8841  // 示例值:100
  8842  func (builder *ListExternalTaskReqBuilder) PageSize(pageSize int) *ListExternalTaskReqBuilder {
  8843  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  8844  	return builder
  8845  }
  8846  
  8847  // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果
  8848  //
  8849  // 示例值:nF1ZXJ5VGhlbkZldGNoCgAAAAAA6PZwFmUzSldvTC1yU
  8850  func (builder *ListExternalTaskReqBuilder) PageToken(pageToken string) *ListExternalTaskReqBuilder {
  8851  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  8852  	return builder
  8853  }
  8854  
  8855  // 该接口用于获取三方审批的状态。用户传入查询条件,接口返回满足条件的审批实例的状态。该接口支持多种参数的组合,包括如下组合:;;1.通过 instance_ids 获取指定实例的任务状态;;2.通过 user_ids 获取指定用户的任务状态;;3.通过 status 获取指定状态的所有任务;;4.通过page_token获取下一批数据
  8856  func (builder *ListExternalTaskReqBuilder) Body(body *ListExternalTaskReqBody) *ListExternalTaskReqBuilder {
  8857  	builder.body = body
  8858  	return builder
  8859  }
  8860  
  8861  func (builder *ListExternalTaskReqBuilder) Build() *ListExternalTaskReq {
  8862  	req := &ListExternalTaskReq{}
  8863  	req.apiReq = &larkcore.ApiReq{}
  8864  	req.Limit = builder.limit
  8865  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  8866  	req.apiReq.Body = builder.body
  8867  	return req
  8868  }
  8869  
  8870  type ListExternalTaskReqBody struct {
  8871  	ApprovalCodes []string `json:"approval_codes,omitempty"` // 审批定义 Code,用于指定只获取这些定义下的数据
  8872  	InstanceIds   []string `json:"instance_ids,omitempty"`   // 审批实例 ID, 用于指定只获取这些实例下的数据,最多支持 20 个
  8873  	UserIds       []string `json:"user_ids,omitempty"`       // 审批人 user_id,用于指定只获取这些用户的数据
  8874  	Status        *string  `json:"status,omitempty"`         // 审批任务状态,用于指定获取该状态下的数据
  8875  }
  8876  
  8877  type ListExternalTaskReq struct {
  8878  	apiReq *larkcore.ApiReq
  8879  	Body   *ListExternalTaskReqBody `body:""`
  8880  	Limit  int                      // 最多返回多少记录,只有在使用迭代器访问时,才有效
  8881  
  8882  }
  8883  
  8884  type ListExternalTaskRespData struct {
  8885  	Data      []*ExternalTaskList `json:"data,omitempty"`       // 返回数据
  8886  	PageToken *string             `json:"page_token,omitempty"` // 翻页 Token
  8887  	HasMore   *bool               `json:"has_more,omitempty"`   // 是否有更多任务可供拉取
  8888  }
  8889  
  8890  type ListExternalTaskResp struct {
  8891  	*larkcore.ApiResp `json:"-"`
  8892  	larkcore.CodeError
  8893  	Data *ListExternalTaskRespData `json:"data"` // 业务数据
  8894  }
  8895  
  8896  func (resp *ListExternalTaskResp) Success() bool {
  8897  	return resp.Code == 0
  8898  }
  8899  
  8900  type AddSignInstanceReqBodyBuilder struct {
  8901  	userId             string //
  8902  	userIdFlag         bool
  8903  	approvalCode       string //
  8904  	approvalCodeFlag   bool
  8905  	instanceCode       string //
  8906  	instanceCodeFlag   bool
  8907  	taskId             string //
  8908  	taskIdFlag         bool
  8909  	comment            string //
  8910  	commentFlag        bool
  8911  	addSignUserIds     []string //
  8912  	addSignUserIdsFlag bool
  8913  	addSignType        int //
  8914  	addSignTypeFlag    bool
  8915  	approvalMethod     int //
  8916  	approvalMethodFlag bool
  8917  }
  8918  
  8919  func NewAddSignInstanceReqBodyBuilder() *AddSignInstanceReqBodyBuilder {
  8920  	builder := &AddSignInstanceReqBodyBuilder{}
  8921  	return builder
  8922  }
  8923  
  8924  //
  8925  //
  8926  //示例值:
  8927  func (builder *AddSignInstanceReqBodyBuilder) UserId(userId string) *AddSignInstanceReqBodyBuilder {
  8928  	builder.userId = userId
  8929  	builder.userIdFlag = true
  8930  	return builder
  8931  }
  8932  
  8933  //
  8934  //
  8935  //示例值:
  8936  func (builder *AddSignInstanceReqBodyBuilder) ApprovalCode(approvalCode string) *AddSignInstanceReqBodyBuilder {
  8937  	builder.approvalCode = approvalCode
  8938  	builder.approvalCodeFlag = true
  8939  	return builder
  8940  }
  8941  
  8942  //
  8943  //
  8944  //示例值:
  8945  func (builder *AddSignInstanceReqBodyBuilder) InstanceCode(instanceCode string) *AddSignInstanceReqBodyBuilder {
  8946  	builder.instanceCode = instanceCode
  8947  	builder.instanceCodeFlag = true
  8948  	return builder
  8949  }
  8950  
  8951  //
  8952  //
  8953  //示例值:
  8954  func (builder *AddSignInstanceReqBodyBuilder) TaskId(taskId string) *AddSignInstanceReqBodyBuilder {
  8955  	builder.taskId = taskId
  8956  	builder.taskIdFlag = true
  8957  	return builder
  8958  }
  8959  
  8960  //
  8961  //
  8962  //示例值:
  8963  func (builder *AddSignInstanceReqBodyBuilder) Comment(comment string) *AddSignInstanceReqBodyBuilder {
  8964  	builder.comment = comment
  8965  	builder.commentFlag = true
  8966  	return builder
  8967  }
  8968  
  8969  //
  8970  //
  8971  //示例值:
  8972  func (builder *AddSignInstanceReqBodyBuilder) AddSignUserIds(addSignUserIds []string) *AddSignInstanceReqBodyBuilder {
  8973  	builder.addSignUserIds = addSignUserIds
  8974  	builder.addSignUserIdsFlag = true
  8975  	return builder
  8976  }
  8977  
  8978  //
  8979  //
  8980  //示例值:1
  8981  func (builder *AddSignInstanceReqBodyBuilder) AddSignType(addSignType int) *AddSignInstanceReqBodyBuilder {
  8982  	builder.addSignType = addSignType
  8983  	builder.addSignTypeFlag = true
  8984  	return builder
  8985  }
  8986  
  8987  //
  8988  //
  8989  //示例值:1
  8990  func (builder *AddSignInstanceReqBodyBuilder) ApprovalMethod(approvalMethod int) *AddSignInstanceReqBodyBuilder {
  8991  	builder.approvalMethod = approvalMethod
  8992  	builder.approvalMethodFlag = true
  8993  	return builder
  8994  }
  8995  
  8996  func (builder *AddSignInstanceReqBodyBuilder) Build() *AddSignInstanceReqBody {
  8997  	req := &AddSignInstanceReqBody{}
  8998  	if builder.userIdFlag {
  8999  		req.UserId = &builder.userId
  9000  	}
  9001  	if builder.approvalCodeFlag {
  9002  		req.ApprovalCode = &builder.approvalCode
  9003  	}
  9004  	if builder.instanceCodeFlag {
  9005  		req.InstanceCode = &builder.instanceCode
  9006  	}
  9007  	if builder.taskIdFlag {
  9008  		req.TaskId = &builder.taskId
  9009  	}
  9010  	if builder.commentFlag {
  9011  		req.Comment = &builder.comment
  9012  	}
  9013  	if builder.addSignUserIdsFlag {
  9014  		req.AddSignUserIds = builder.addSignUserIds
  9015  	}
  9016  	if builder.addSignTypeFlag {
  9017  		req.AddSignType = &builder.addSignType
  9018  	}
  9019  	if builder.approvalMethodFlag {
  9020  		req.ApprovalMethod = &builder.approvalMethod
  9021  	}
  9022  	return req
  9023  }
  9024  
  9025  type AddSignInstancePathReqBodyBuilder struct {
  9026  	userId             string //
  9027  	userIdFlag         bool
  9028  	approvalCode       string //
  9029  	approvalCodeFlag   bool
  9030  	instanceCode       string //
  9031  	instanceCodeFlag   bool
  9032  	taskId             string //
  9033  	taskIdFlag         bool
  9034  	comment            string //
  9035  	commentFlag        bool
  9036  	addSignUserIds     []string //
  9037  	addSignUserIdsFlag bool
  9038  	addSignType        int //
  9039  	addSignTypeFlag    bool
  9040  	approvalMethod     int //
  9041  	approvalMethodFlag bool
  9042  }
  9043  
  9044  func NewAddSignInstancePathReqBodyBuilder() *AddSignInstancePathReqBodyBuilder {
  9045  	builder := &AddSignInstancePathReqBodyBuilder{}
  9046  	return builder
  9047  }
  9048  
  9049  //
  9050  //
  9051  // 示例值:
  9052  func (builder *AddSignInstancePathReqBodyBuilder) UserId(userId string) *AddSignInstancePathReqBodyBuilder {
  9053  	builder.userId = userId
  9054  	builder.userIdFlag = true
  9055  	return builder
  9056  }
  9057  
  9058  //
  9059  //
  9060  // 示例值:
  9061  func (builder *AddSignInstancePathReqBodyBuilder) ApprovalCode(approvalCode string) *AddSignInstancePathReqBodyBuilder {
  9062  	builder.approvalCode = approvalCode
  9063  	builder.approvalCodeFlag = true
  9064  	return builder
  9065  }
  9066  
  9067  //
  9068  //
  9069  // 示例值:
  9070  func (builder *AddSignInstancePathReqBodyBuilder) InstanceCode(instanceCode string) *AddSignInstancePathReqBodyBuilder {
  9071  	builder.instanceCode = instanceCode
  9072  	builder.instanceCodeFlag = true
  9073  	return builder
  9074  }
  9075  
  9076  //
  9077  //
  9078  // 示例值:
  9079  func (builder *AddSignInstancePathReqBodyBuilder) TaskId(taskId string) *AddSignInstancePathReqBodyBuilder {
  9080  	builder.taskId = taskId
  9081  	builder.taskIdFlag = true
  9082  	return builder
  9083  }
  9084  
  9085  //
  9086  //
  9087  // 示例值:
  9088  func (builder *AddSignInstancePathReqBodyBuilder) Comment(comment string) *AddSignInstancePathReqBodyBuilder {
  9089  	builder.comment = comment
  9090  	builder.commentFlag = true
  9091  	return builder
  9092  }
  9093  
  9094  //
  9095  //
  9096  // 示例值:
  9097  func (builder *AddSignInstancePathReqBodyBuilder) AddSignUserIds(addSignUserIds []string) *AddSignInstancePathReqBodyBuilder {
  9098  	builder.addSignUserIds = addSignUserIds
  9099  	builder.addSignUserIdsFlag = true
  9100  	return builder
  9101  }
  9102  
  9103  //
  9104  //
  9105  // 示例值:1
  9106  func (builder *AddSignInstancePathReqBodyBuilder) AddSignType(addSignType int) *AddSignInstancePathReqBodyBuilder {
  9107  	builder.addSignType = addSignType
  9108  	builder.addSignTypeFlag = true
  9109  	return builder
  9110  }
  9111  
  9112  //
  9113  //
  9114  // 示例值:1
  9115  func (builder *AddSignInstancePathReqBodyBuilder) ApprovalMethod(approvalMethod int) *AddSignInstancePathReqBodyBuilder {
  9116  	builder.approvalMethod = approvalMethod
  9117  	builder.approvalMethodFlag = true
  9118  	return builder
  9119  }
  9120  
  9121  func (builder *AddSignInstancePathReqBodyBuilder) Build() (*AddSignInstanceReqBody, error) {
  9122  	req := &AddSignInstanceReqBody{}
  9123  	if builder.userIdFlag {
  9124  		req.UserId = &builder.userId
  9125  	}
  9126  	if builder.approvalCodeFlag {
  9127  		req.ApprovalCode = &builder.approvalCode
  9128  	}
  9129  	if builder.instanceCodeFlag {
  9130  		req.InstanceCode = &builder.instanceCode
  9131  	}
  9132  	if builder.taskIdFlag {
  9133  		req.TaskId = &builder.taskId
  9134  	}
  9135  	if builder.commentFlag {
  9136  		req.Comment = &builder.comment
  9137  	}
  9138  	if builder.addSignUserIdsFlag {
  9139  		req.AddSignUserIds = builder.addSignUserIds
  9140  	}
  9141  	if builder.addSignTypeFlag {
  9142  		req.AddSignType = &builder.addSignType
  9143  	}
  9144  	if builder.approvalMethodFlag {
  9145  		req.ApprovalMethod = &builder.approvalMethod
  9146  	}
  9147  	return req, nil
  9148  }
  9149  
  9150  type AddSignInstanceReqBuilder struct {
  9151  	apiReq *larkcore.ApiReq
  9152  	body   *AddSignInstanceReqBody
  9153  }
  9154  
  9155  func NewAddSignInstanceReqBuilder() *AddSignInstanceReqBuilder {
  9156  	builder := &AddSignInstanceReqBuilder{}
  9157  	builder.apiReq = &larkcore.ApiReq{
  9158  		PathParams:  larkcore.PathParams{},
  9159  		QueryParams: larkcore.QueryParams{},
  9160  	}
  9161  	return builder
  9162  }
  9163  
  9164  //
  9165  func (builder *AddSignInstanceReqBuilder) Body(body *AddSignInstanceReqBody) *AddSignInstanceReqBuilder {
  9166  	builder.body = body
  9167  	return builder
  9168  }
  9169  
  9170  func (builder *AddSignInstanceReqBuilder) Build() *AddSignInstanceReq {
  9171  	req := &AddSignInstanceReq{}
  9172  	req.apiReq = &larkcore.ApiReq{}
  9173  	req.apiReq.Body = builder.body
  9174  	return req
  9175  }
  9176  
  9177  type AddSignInstanceReqBody struct {
  9178  	UserId         *string  `json:"user_id,omitempty"`           //
  9179  	ApprovalCode   *string  `json:"approval_code,omitempty"`     //
  9180  	InstanceCode   *string  `json:"instance_code,omitempty"`     //
  9181  	TaskId         *string  `json:"task_id,omitempty"`           //
  9182  	Comment        *string  `json:"comment,omitempty"`           //
  9183  	AddSignUserIds []string `json:"add_sign_user_ids,omitempty"` //
  9184  	AddSignType    *int     `json:"add_sign_type,omitempty"`     //
  9185  	ApprovalMethod *int     `json:"approval_method,omitempty"`   //
  9186  }
  9187  
  9188  type AddSignInstanceReq struct {
  9189  	apiReq *larkcore.ApiReq
  9190  	Body   *AddSignInstanceReqBody `body:""`
  9191  }
  9192  
  9193  type AddSignInstanceResp struct {
  9194  	*larkcore.ApiResp `json:"-"`
  9195  	larkcore.CodeError
  9196  }
  9197  
  9198  func (resp *AddSignInstanceResp) Success() bool {
  9199  	return resp.Code == 0
  9200  }
  9201  
  9202  type CancelInstanceReqBuilder struct {
  9203  	apiReq         *larkcore.ApiReq
  9204  	instanceCancel *InstanceCancel
  9205  }
  9206  
  9207  func NewCancelInstanceReqBuilder() *CancelInstanceReqBuilder {
  9208  	builder := &CancelInstanceReqBuilder{}
  9209  	builder.apiReq = &larkcore.ApiReq{
  9210  		PathParams:  larkcore.PathParams{},
  9211  		QueryParams: larkcore.QueryParams{},
  9212  	}
  9213  	return builder
  9214  }
  9215  
  9216  // 此次调用中使用的用户ID的类型
  9217  //
  9218  // 示例值:
  9219  func (builder *CancelInstanceReqBuilder) UserIdType(userIdType string) *CancelInstanceReqBuilder {
  9220  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  9221  	return builder
  9222  }
  9223  
  9224  // 对于状态为“审批中”的单个审批实例进行撤销操作,撤销后审批流程结束
  9225  func (builder *CancelInstanceReqBuilder) InstanceCancel(instanceCancel *InstanceCancel) *CancelInstanceReqBuilder {
  9226  	builder.instanceCancel = instanceCancel
  9227  	return builder
  9228  }
  9229  
  9230  func (builder *CancelInstanceReqBuilder) Build() *CancelInstanceReq {
  9231  	req := &CancelInstanceReq{}
  9232  	req.apiReq = &larkcore.ApiReq{}
  9233  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  9234  	req.apiReq.Body = builder.instanceCancel
  9235  	return req
  9236  }
  9237  
  9238  type CancelInstanceReq struct {
  9239  	apiReq         *larkcore.ApiReq
  9240  	InstanceCancel *InstanceCancel `body:""`
  9241  }
  9242  
  9243  type CancelInstanceResp struct {
  9244  	*larkcore.ApiResp `json:"-"`
  9245  	larkcore.CodeError
  9246  }
  9247  
  9248  func (resp *CancelInstanceResp) Success() bool {
  9249  	return resp.Code == 0
  9250  }
  9251  
  9252  type CcInstanceReqBuilder struct {
  9253  	apiReq     *larkcore.ApiReq
  9254  	instanceCc *InstanceCc
  9255  }
  9256  
  9257  func NewCcInstanceReqBuilder() *CcInstanceReqBuilder {
  9258  	builder := &CcInstanceReqBuilder{}
  9259  	builder.apiReq = &larkcore.ApiReq{
  9260  		PathParams:  larkcore.PathParams{},
  9261  		QueryParams: larkcore.QueryParams{},
  9262  	}
  9263  	return builder
  9264  }
  9265  
  9266  // 此次调用中使用的用户ID的类型
  9267  //
  9268  // 示例值:
  9269  func (builder *CcInstanceReqBuilder) UserIdType(userIdType string) *CcInstanceReqBuilder {
  9270  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  9271  	return builder
  9272  }
  9273  
  9274  // 通过接口可以将当前审批实例抄送给其他人。
  9275  func (builder *CcInstanceReqBuilder) InstanceCc(instanceCc *InstanceCc) *CcInstanceReqBuilder {
  9276  	builder.instanceCc = instanceCc
  9277  	return builder
  9278  }
  9279  
  9280  func (builder *CcInstanceReqBuilder) Build() *CcInstanceReq {
  9281  	req := &CcInstanceReq{}
  9282  	req.apiReq = &larkcore.ApiReq{}
  9283  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  9284  	req.apiReq.Body = builder.instanceCc
  9285  	return req
  9286  }
  9287  
  9288  type CcInstanceReq struct {
  9289  	apiReq     *larkcore.ApiReq
  9290  	InstanceCc *InstanceCc `body:""`
  9291  }
  9292  
  9293  type CcInstanceResp struct {
  9294  	*larkcore.ApiResp `json:"-"`
  9295  	larkcore.CodeError
  9296  }
  9297  
  9298  func (resp *CcInstanceResp) Success() bool {
  9299  	return resp.Code == 0
  9300  }
  9301  
  9302  type CreateInstanceReqBuilder struct {
  9303  	apiReq         *larkcore.ApiReq
  9304  	instanceCreate *InstanceCreate
  9305  }
  9306  
  9307  func NewCreateInstanceReqBuilder() *CreateInstanceReqBuilder {
  9308  	builder := &CreateInstanceReqBuilder{}
  9309  	builder.apiReq = &larkcore.ApiReq{
  9310  		PathParams:  larkcore.PathParams{},
  9311  		QueryParams: larkcore.QueryParams{},
  9312  	}
  9313  	return builder
  9314  }
  9315  
  9316  // 创建一个审批实例,调用方需对审批定义的表单有详细了解,将按照定义的表单结构,将表单 Value 通过接口传入
  9317  func (builder *CreateInstanceReqBuilder) InstanceCreate(instanceCreate *InstanceCreate) *CreateInstanceReqBuilder {
  9318  	builder.instanceCreate = instanceCreate
  9319  	return builder
  9320  }
  9321  
  9322  func (builder *CreateInstanceReqBuilder) Build() *CreateInstanceReq {
  9323  	req := &CreateInstanceReq{}
  9324  	req.apiReq = &larkcore.ApiReq{}
  9325  	req.apiReq.Body = builder.instanceCreate
  9326  	return req
  9327  }
  9328  
  9329  type CreateInstanceReq struct {
  9330  	apiReq         *larkcore.ApiReq
  9331  	InstanceCreate *InstanceCreate `body:""`
  9332  }
  9333  
  9334  type CreateInstanceRespData struct {
  9335  	InstanceCode *string `json:"instance_code,omitempty"` // 审批实例 Code
  9336  }
  9337  
  9338  type CreateInstanceResp struct {
  9339  	*larkcore.ApiResp `json:"-"`
  9340  	larkcore.CodeError
  9341  	Data *CreateInstanceRespData `json:"data"` // 业务数据
  9342  }
  9343  
  9344  func (resp *CreateInstanceResp) Success() bool {
  9345  	return resp.Code == 0
  9346  }
  9347  
  9348  type GetInstanceReqBuilder struct {
  9349  	apiReq *larkcore.ApiReq
  9350  }
  9351  
  9352  func NewGetInstanceReqBuilder() *GetInstanceReqBuilder {
  9353  	builder := &GetInstanceReqBuilder{}
  9354  	builder.apiReq = &larkcore.ApiReq{
  9355  		PathParams:  larkcore.PathParams{},
  9356  		QueryParams: larkcore.QueryParams{},
  9357  	}
  9358  	return builder
  9359  }
  9360  
  9361  // 审批实例 Code, 若在创建的时候传了uuid, 也可以通过传uuid获取
  9362  //
  9363  // 示例值:81D31358-93AF-92D6-7425-01A5D67C4E71
  9364  func (builder *GetInstanceReqBuilder) InstanceId(instanceId string) *GetInstanceReqBuilder {
  9365  	builder.apiReq.PathParams.Set("instance_id", fmt.Sprint(instanceId))
  9366  	return builder
  9367  }
  9368  
  9369  // 语言
  9370  //
  9371  // 示例值:zh-CN
  9372  func (builder *GetInstanceReqBuilder) Locale(locale string) *GetInstanceReqBuilder {
  9373  	builder.apiReq.QueryParams.Set("locale", fmt.Sprint(locale))
  9374  	return builder
  9375  }
  9376  
  9377  // 发起审批用户id,仅自建应用可返回
  9378  //
  9379  // 示例值:f7cb567e
  9380  func (builder *GetInstanceReqBuilder) UserId(userId string) *GetInstanceReqBuilder {
  9381  	builder.apiReq.QueryParams.Set("user_id", fmt.Sprint(userId))
  9382  	return builder
  9383  }
  9384  
  9385  // 此次调用中使用的用户ID的类型
  9386  //
  9387  // 示例值:user_id
  9388  func (builder *GetInstanceReqBuilder) UserIdType(userIdType string) *GetInstanceReqBuilder {
  9389  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  9390  	return builder
  9391  }
  9392  
  9393  func (builder *GetInstanceReqBuilder) Build() *GetInstanceReq {
  9394  	req := &GetInstanceReq{}
  9395  	req.apiReq = &larkcore.ApiReq{}
  9396  	req.apiReq.PathParams = builder.apiReq.PathParams
  9397  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  9398  	return req
  9399  }
  9400  
  9401  type GetInstanceReq struct {
  9402  	apiReq *larkcore.ApiReq
  9403  }
  9404  
  9405  type GetInstanceRespData struct {
  9406  	ApprovalName         *string             `json:"approval_name,omitempty"`          // 审批名称
  9407  	StartTime            *string             `json:"start_time,omitempty"`             // 审批创建时间
  9408  	EndTime              *string             `json:"end_time,omitempty"`               // 审批完成时间,未完成为 0
  9409  	UserId               *string             `json:"user_id,omitempty"`                // 发起审批用户
  9410  	OpenId               *string             `json:"open_id,omitempty"`                // 发起审批用户 open id
  9411  	SerialNumber         *string             `json:"serial_number,omitempty"`          // 审批单编号
  9412  	DepartmentId         *string             `json:"department_id,omitempty"`          // 发起审批用户所在部门
  9413  	Status               *string             `json:"status,omitempty"`                 // 审批实例状态
  9414  	Uuid                 *string             `json:"uuid,omitempty"`                   // 用户的唯一标识id
  9415  	Form                 *string             `json:"form,omitempty"`                   // json字符串,控件值详情见下方
  9416  	TaskList             []*InstanceTask     `json:"task_list,omitempty"`              // 审批任务列表
  9417  	CommentList          []*InstanceComment  `json:"comment_list,omitempty"`           // 评论列表
  9418  	Timeline             []*InstanceTimeline `json:"timeline,omitempty"`               // 审批动态
  9419  	ModifiedInstanceCode *string             `json:"modified_instance_code,omitempty"` // 修改的原实例 code,仅在查询修改实例时显示该字段
  9420  	RevertedInstanceCode *string             `json:"reverted_instance_code,omitempty"` // 撤销的原实例 code,仅在查询撤销实例时显示该字段
  9421  	ApprovalCode         *string             `json:"approval_code,omitempty"`          // 审批定义 Code
  9422  	Reverted             *bool               `json:"reverted,omitempty"`               // 单据是否被撤销
  9423  }
  9424  
  9425  type GetInstanceResp struct {
  9426  	*larkcore.ApiResp `json:"-"`
  9427  	larkcore.CodeError
  9428  	Data *GetInstanceRespData `json:"data"` // 业务数据
  9429  }
  9430  
  9431  func (resp *GetInstanceResp) Success() bool {
  9432  	return resp.Code == 0
  9433  }
  9434  
  9435  type ListInstanceReqBuilder struct {
  9436  	apiReq *larkcore.ApiReq
  9437  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  9438  }
  9439  
  9440  func NewListInstanceReqBuilder() *ListInstanceReqBuilder {
  9441  	builder := &ListInstanceReqBuilder{}
  9442  	builder.apiReq = &larkcore.ApiReq{
  9443  		PathParams:  larkcore.PathParams{},
  9444  		QueryParams: larkcore.QueryParams{},
  9445  	}
  9446  	return builder
  9447  }
  9448  
  9449  // 最大返回多少记录,当使用迭代器访问时才有效
  9450  func (builder *ListInstanceReqBuilder) Limit(limit int) *ListInstanceReqBuilder {
  9451  	builder.limit = limit
  9452  	return builder
  9453  }
  9454  
  9455  // 分页大小
  9456  //
  9457  // 示例值:100
  9458  func (builder *ListInstanceReqBuilder) PageSize(pageSize int) *ListInstanceReqBuilder {
  9459  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  9460  	return builder
  9461  }
  9462  
  9463  // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果
  9464  //
  9465  // 示例值:nF1ZXJ5VGhlbkZldGNoCgAAAAAA6PZwFmUzSldvTC1yU
  9466  func (builder *ListInstanceReqBuilder) PageToken(pageToken string) *ListInstanceReqBuilder {
  9467  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  9468  	return builder
  9469  }
  9470  
  9471  // 审批定义唯一标识
  9472  //
  9473  // 示例值:7C468A54-8745-2245-9675-08B7C63E7A85
  9474  func (builder *ListInstanceReqBuilder) ApprovalCode(approvalCode string) *ListInstanceReqBuilder {
  9475  	builder.apiReq.QueryParams.Set("approval_code", fmt.Sprint(approvalCode))
  9476  	return builder
  9477  }
  9478  
  9479  // 审批实例创建时间区间(毫秒)
  9480  //
  9481  // 示例值:1567690398020
  9482  func (builder *ListInstanceReqBuilder) StartTime(startTime string) *ListInstanceReqBuilder {
  9483  	builder.apiReq.QueryParams.Set("start_time", fmt.Sprint(startTime))
  9484  	return builder
  9485  }
  9486  
  9487  // 审批实例创建时间区间(毫秒)
  9488  //
  9489  // 示例值:1567690398020
  9490  func (builder *ListInstanceReqBuilder) EndTime(endTime string) *ListInstanceReqBuilder {
  9491  	builder.apiReq.QueryParams.Set("end_time", fmt.Sprint(endTime))
  9492  	return builder
  9493  }
  9494  
  9495  func (builder *ListInstanceReqBuilder) Build() *ListInstanceReq {
  9496  	req := &ListInstanceReq{}
  9497  	req.apiReq = &larkcore.ApiReq{}
  9498  	req.Limit = builder.limit
  9499  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  9500  	return req
  9501  }
  9502  
  9503  type ListInstanceReq struct {
  9504  	apiReq *larkcore.ApiReq
  9505  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
  9506  
  9507  }
  9508  
  9509  type ListInstanceRespData struct {
  9510  	InstanceCodeList []string `json:"instance_code_list,omitempty"` // 审批实例 Code
  9511  	PageToken        *string  `json:"page_token,omitempty"`         // 翻页 Token
  9512  	HasMore          *bool    `json:"has_more,omitempty"`           // 是否有更多任务可供拉取
  9513  }
  9514  
  9515  type ListInstanceResp struct {
  9516  	*larkcore.ApiResp `json:"-"`
  9517  	larkcore.CodeError
  9518  	Data *ListInstanceRespData `json:"data"` // 业务数据
  9519  }
  9520  
  9521  func (resp *ListInstanceResp) Success() bool {
  9522  	return resp.Code == 0
  9523  }
  9524  
  9525  type PreviewInstanceReqBodyBuilder struct {
  9526  	userId           string // 用户id
  9527  	userIdFlag       bool
  9528  	approvalCode     string // 审批定义code
  9529  	approvalCodeFlag bool
  9530  	departmentId     string // 部门id
  9531  	departmentIdFlag bool
  9532  	form             string // 表单数据
  9533  	formFlag         bool
  9534  	instanceCode     string // 审批实例code
  9535  	instanceCodeFlag bool
  9536  	locale           string // 语言类型
  9537  	localeFlag       bool
  9538  	taskId           string // 任务id
  9539  	taskIdFlag       bool
  9540  }
  9541  
  9542  func NewPreviewInstanceReqBodyBuilder() *PreviewInstanceReqBodyBuilder {
  9543  	builder := &PreviewInstanceReqBodyBuilder{}
  9544  	return builder
  9545  }
  9546  
  9547  // 用户id
  9548  //
  9549  //示例值:
  9550  func (builder *PreviewInstanceReqBodyBuilder) UserId(userId string) *PreviewInstanceReqBodyBuilder {
  9551  	builder.userId = userId
  9552  	builder.userIdFlag = true
  9553  	return builder
  9554  }
  9555  
  9556  // 审批定义code
  9557  //
  9558  //示例值:
  9559  func (builder *PreviewInstanceReqBodyBuilder) ApprovalCode(approvalCode string) *PreviewInstanceReqBodyBuilder {
  9560  	builder.approvalCode = approvalCode
  9561  	builder.approvalCodeFlag = true
  9562  	return builder
  9563  }
  9564  
  9565  // 部门id
  9566  //
  9567  //示例值:
  9568  func (builder *PreviewInstanceReqBodyBuilder) DepartmentId(departmentId string) *PreviewInstanceReqBodyBuilder {
  9569  	builder.departmentId = departmentId
  9570  	builder.departmentIdFlag = true
  9571  	return builder
  9572  }
  9573  
  9574  // 表单数据
  9575  //
  9576  //示例值:
  9577  func (builder *PreviewInstanceReqBodyBuilder) Form(form string) *PreviewInstanceReqBodyBuilder {
  9578  	builder.form = form
  9579  	builder.formFlag = true
  9580  	return builder
  9581  }
  9582  
  9583  // 审批实例code
  9584  //
  9585  //示例值:
  9586  func (builder *PreviewInstanceReqBodyBuilder) InstanceCode(instanceCode string) *PreviewInstanceReqBodyBuilder {
  9587  	builder.instanceCode = instanceCode
  9588  	builder.instanceCodeFlag = true
  9589  	return builder
  9590  }
  9591  
  9592  // 语言类型
  9593  //
  9594  //示例值:zh-CN: 中文 en-US: 英文
  9595  func (builder *PreviewInstanceReqBodyBuilder) Locale(locale string) *PreviewInstanceReqBodyBuilder {
  9596  	builder.locale = locale
  9597  	builder.localeFlag = true
  9598  	return builder
  9599  }
  9600  
  9601  // 任务id
  9602  //
  9603  //示例值:
  9604  func (builder *PreviewInstanceReqBodyBuilder) TaskId(taskId string) *PreviewInstanceReqBodyBuilder {
  9605  	builder.taskId = taskId
  9606  	builder.taskIdFlag = true
  9607  	return builder
  9608  }
  9609  
  9610  func (builder *PreviewInstanceReqBodyBuilder) Build() *PreviewInstanceReqBody {
  9611  	req := &PreviewInstanceReqBody{}
  9612  	if builder.userIdFlag {
  9613  		req.UserId = &builder.userId
  9614  	}
  9615  	if builder.approvalCodeFlag {
  9616  		req.ApprovalCode = &builder.approvalCode
  9617  	}
  9618  	if builder.departmentIdFlag {
  9619  		req.DepartmentId = &builder.departmentId
  9620  	}
  9621  	if builder.formFlag {
  9622  		req.Form = &builder.form
  9623  	}
  9624  	if builder.instanceCodeFlag {
  9625  		req.InstanceCode = &builder.instanceCode
  9626  	}
  9627  	if builder.localeFlag {
  9628  		req.Locale = &builder.locale
  9629  	}
  9630  	if builder.taskIdFlag {
  9631  		req.TaskId = &builder.taskId
  9632  	}
  9633  	return req
  9634  }
  9635  
  9636  type PreviewInstancePathReqBodyBuilder struct {
  9637  	userId           string // 用户id
  9638  	userIdFlag       bool
  9639  	approvalCode     string // 审批定义code
  9640  	approvalCodeFlag bool
  9641  	departmentId     string // 部门id
  9642  	departmentIdFlag bool
  9643  	form             string // 表单数据
  9644  	formFlag         bool
  9645  	instanceCode     string // 审批实例code
  9646  	instanceCodeFlag bool
  9647  	locale           string // 语言类型
  9648  	localeFlag       bool
  9649  	taskId           string // 任务id
  9650  	taskIdFlag       bool
  9651  }
  9652  
  9653  func NewPreviewInstancePathReqBodyBuilder() *PreviewInstancePathReqBodyBuilder {
  9654  	builder := &PreviewInstancePathReqBodyBuilder{}
  9655  	return builder
  9656  }
  9657  
  9658  // 用户id
  9659  //
  9660  // 示例值:
  9661  func (builder *PreviewInstancePathReqBodyBuilder) UserId(userId string) *PreviewInstancePathReqBodyBuilder {
  9662  	builder.userId = userId
  9663  	builder.userIdFlag = true
  9664  	return builder
  9665  }
  9666  
  9667  // 审批定义code
  9668  //
  9669  // 示例值:
  9670  func (builder *PreviewInstancePathReqBodyBuilder) ApprovalCode(approvalCode string) *PreviewInstancePathReqBodyBuilder {
  9671  	builder.approvalCode = approvalCode
  9672  	builder.approvalCodeFlag = true
  9673  	return builder
  9674  }
  9675  
  9676  // 部门id
  9677  //
  9678  // 示例值:
  9679  func (builder *PreviewInstancePathReqBodyBuilder) DepartmentId(departmentId string) *PreviewInstancePathReqBodyBuilder {
  9680  	builder.departmentId = departmentId
  9681  	builder.departmentIdFlag = true
  9682  	return builder
  9683  }
  9684  
  9685  // 表单数据
  9686  //
  9687  // 示例值:
  9688  func (builder *PreviewInstancePathReqBodyBuilder) Form(form string) *PreviewInstancePathReqBodyBuilder {
  9689  	builder.form = form
  9690  	builder.formFlag = true
  9691  	return builder
  9692  }
  9693  
  9694  // 审批实例code
  9695  //
  9696  // 示例值:
  9697  func (builder *PreviewInstancePathReqBodyBuilder) InstanceCode(instanceCode string) *PreviewInstancePathReqBodyBuilder {
  9698  	builder.instanceCode = instanceCode
  9699  	builder.instanceCodeFlag = true
  9700  	return builder
  9701  }
  9702  
  9703  // 语言类型
  9704  //
  9705  // 示例值:zh-CN: 中文 en-US: 英文
  9706  func (builder *PreviewInstancePathReqBodyBuilder) Locale(locale string) *PreviewInstancePathReqBodyBuilder {
  9707  	builder.locale = locale
  9708  	builder.localeFlag = true
  9709  	return builder
  9710  }
  9711  
  9712  // 任务id
  9713  //
  9714  // 示例值:
  9715  func (builder *PreviewInstancePathReqBodyBuilder) TaskId(taskId string) *PreviewInstancePathReqBodyBuilder {
  9716  	builder.taskId = taskId
  9717  	builder.taskIdFlag = true
  9718  	return builder
  9719  }
  9720  
  9721  func (builder *PreviewInstancePathReqBodyBuilder) Build() (*PreviewInstanceReqBody, error) {
  9722  	req := &PreviewInstanceReqBody{}
  9723  	if builder.userIdFlag {
  9724  		req.UserId = &builder.userId
  9725  	}
  9726  	if builder.approvalCodeFlag {
  9727  		req.ApprovalCode = &builder.approvalCode
  9728  	}
  9729  	if builder.departmentIdFlag {
  9730  		req.DepartmentId = &builder.departmentId
  9731  	}
  9732  	if builder.formFlag {
  9733  		req.Form = &builder.form
  9734  	}
  9735  	if builder.instanceCodeFlag {
  9736  		req.InstanceCode = &builder.instanceCode
  9737  	}
  9738  	if builder.localeFlag {
  9739  		req.Locale = &builder.locale
  9740  	}
  9741  	if builder.taskIdFlag {
  9742  		req.TaskId = &builder.taskId
  9743  	}
  9744  	return req, nil
  9745  }
  9746  
  9747  type PreviewInstanceReqBuilder struct {
  9748  	apiReq *larkcore.ApiReq
  9749  	body   *PreviewInstanceReqBody
  9750  }
  9751  
  9752  func NewPreviewInstanceReqBuilder() *PreviewInstanceReqBuilder {
  9753  	builder := &PreviewInstanceReqBuilder{}
  9754  	builder.apiReq = &larkcore.ApiReq{
  9755  		PathParams:  larkcore.PathParams{},
  9756  		QueryParams: larkcore.QueryParams{},
  9757  	}
  9758  	return builder
  9759  }
  9760  
  9761  // open_id(ou_开头),union_id(on_开头),user_id(字符串)。user_id_type不填默认为open_id
  9762  //
  9763  // 示例值:
  9764  func (builder *PreviewInstanceReqBuilder) UserIdType(userIdType string) *PreviewInstanceReqBuilder {
  9765  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  9766  	return builder
  9767  }
  9768  
  9769  //
  9770  func (builder *PreviewInstanceReqBuilder) Body(body *PreviewInstanceReqBody) *PreviewInstanceReqBuilder {
  9771  	builder.body = body
  9772  	return builder
  9773  }
  9774  
  9775  func (builder *PreviewInstanceReqBuilder) Build() *PreviewInstanceReq {
  9776  	req := &PreviewInstanceReq{}
  9777  	req.apiReq = &larkcore.ApiReq{}
  9778  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  9779  	req.apiReq.Body = builder.body
  9780  	return req
  9781  }
  9782  
  9783  type PreviewInstanceReqBody struct {
  9784  	UserId       *string `json:"user_id,omitempty"`       // 用户id
  9785  	ApprovalCode *string `json:"approval_code,omitempty"` // 审批定义code
  9786  	DepartmentId *string `json:"department_id,omitempty"` // 部门id
  9787  	Form         *string `json:"form,omitempty"`          // 表单数据
  9788  	InstanceCode *string `json:"instance_code,omitempty"` // 审批实例code
  9789  	Locale       *string `json:"locale,omitempty"`        // 语言类型
  9790  	TaskId       *string `json:"task_id,omitempty"`       // 任务id
  9791  }
  9792  
  9793  type PreviewInstanceReq struct {
  9794  	apiReq *larkcore.ApiReq
  9795  	Body   *PreviewInstanceReqBody `body:""`
  9796  }
  9797  
  9798  type PreviewInstanceRespData struct {
  9799  	PreviewNodes []*PreviewNode `json:"preview_nodes,omitempty"` //
  9800  }
  9801  
  9802  type PreviewInstanceResp struct {
  9803  	*larkcore.ApiResp `json:"-"`
  9804  	larkcore.CodeError
  9805  	Data *PreviewInstanceRespData `json:"data"` // 业务数据
  9806  }
  9807  
  9808  func (resp *PreviewInstanceResp) Success() bool {
  9809  	return resp.Code == 0
  9810  }
  9811  
  9812  type QueryInstanceReqBuilder struct {
  9813  	apiReq         *larkcore.ApiReq
  9814  	instanceSearch *InstanceSearch
  9815  	limit          int // 最大返回多少记录,当使用迭代器访问时才有效
  9816  }
  9817  
  9818  func NewQueryInstanceReqBuilder() *QueryInstanceReqBuilder {
  9819  	builder := &QueryInstanceReqBuilder{}
  9820  	builder.apiReq = &larkcore.ApiReq{
  9821  		PathParams:  larkcore.PathParams{},
  9822  		QueryParams: larkcore.QueryParams{},
  9823  	}
  9824  	return builder
  9825  }
  9826  
  9827  // 最大返回多少记录,当使用迭代器访问时才有效
  9828  func (builder *QueryInstanceReqBuilder) Limit(limit int) *QueryInstanceReqBuilder {
  9829  	builder.limit = limit
  9830  	return builder
  9831  }
  9832  
  9833  // 分页大小
  9834  //
  9835  // 示例值:10
  9836  func (builder *QueryInstanceReqBuilder) PageSize(pageSize int) *QueryInstanceReqBuilder {
  9837  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  9838  	return builder
  9839  }
  9840  
  9841  // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果
  9842  //
  9843  // 示例值:nF1ZXJ5VGhlbkZldGNoCgAAAAAA6PZwFmUzSldvTC1yU
  9844  func (builder *QueryInstanceReqBuilder) PageToken(pageToken string) *QueryInstanceReqBuilder {
  9845  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  9846  	return builder
  9847  }
  9848  
  9849  // 此次调用中使用的用户ID的类型
  9850  //
  9851  // 示例值:
  9852  func (builder *QueryInstanceReqBuilder) UserIdType(userIdType string) *QueryInstanceReqBuilder {
  9853  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  9854  	return builder
  9855  }
  9856  
  9857  // 该接口通过不同条件查询审批系统中符合条件的审批实例列表。
  9858  func (builder *QueryInstanceReqBuilder) InstanceSearch(instanceSearch *InstanceSearch) *QueryInstanceReqBuilder {
  9859  	builder.instanceSearch = instanceSearch
  9860  	return builder
  9861  }
  9862  
  9863  func (builder *QueryInstanceReqBuilder) Build() *QueryInstanceReq {
  9864  	req := &QueryInstanceReq{}
  9865  	req.apiReq = &larkcore.ApiReq{}
  9866  	req.Limit = builder.limit
  9867  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  9868  	req.apiReq.Body = builder.instanceSearch
  9869  	return req
  9870  }
  9871  
  9872  type QueryInstanceReq struct {
  9873  	apiReq         *larkcore.ApiReq
  9874  	InstanceSearch *InstanceSearch `body:""`
  9875  	Limit          int             // 最多返回多少记录,只有在使用迭代器访问时,才有效
  9876  
  9877  }
  9878  
  9879  type QueryInstanceRespData struct {
  9880  	Count        *int                  `json:"count,omitempty"`         // 查询返回条数
  9881  	InstanceList []*InstanceSearchItem `json:"instance_list,omitempty"` // 审批实例列表
  9882  	PageToken    *string               `json:"page_token,omitempty"`    // 翻页 Token
  9883  	HasMore      *bool                 `json:"has_more,omitempty"`      // 是否有更多任务可供拉取
  9884  }
  9885  
  9886  type QueryInstanceResp struct {
  9887  	*larkcore.ApiResp `json:"-"`
  9888  	larkcore.CodeError
  9889  	Data *QueryInstanceRespData `json:"data"` // 业务数据
  9890  }
  9891  
  9892  func (resp *QueryInstanceResp) Success() bool {
  9893  	return resp.Code == 0
  9894  }
  9895  
  9896  type SearchCcInstanceReqBuilder struct {
  9897  	apiReq   *larkcore.ApiReq
  9898  	ccSearch *CcSearch
  9899  }
  9900  
  9901  func NewSearchCcInstanceReqBuilder() *SearchCcInstanceReqBuilder {
  9902  	builder := &SearchCcInstanceReqBuilder{}
  9903  	builder.apiReq = &larkcore.ApiReq{
  9904  		PathParams:  larkcore.PathParams{},
  9905  		QueryParams: larkcore.QueryParams{},
  9906  	}
  9907  	return builder
  9908  }
  9909  
  9910  // 分页大小
  9911  //
  9912  // 示例值:10
  9913  func (builder *SearchCcInstanceReqBuilder) PageSize(pageSize int) *SearchCcInstanceReqBuilder {
  9914  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  9915  	return builder
  9916  }
  9917  
  9918  // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果
  9919  //
  9920  // 示例值:nF1ZXJ5VGhlbkZldGNoCgAAAAAA6PZwFmUzSldvTC1yU
  9921  func (builder *SearchCcInstanceReqBuilder) PageToken(pageToken string) *SearchCcInstanceReqBuilder {
  9922  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  9923  	return builder
  9924  }
  9925  
  9926  // 此次调用中使用的用户ID的类型
  9927  //
  9928  // 示例值:
  9929  func (builder *SearchCcInstanceReqBuilder) UserIdType(userIdType string) *SearchCcInstanceReqBuilder {
  9930  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  9931  	return builder
  9932  }
  9933  
  9934  // 该接口通过不同条件查询审批系统中符合条件的审批抄送列表。
  9935  func (builder *SearchCcInstanceReqBuilder) CcSearch(ccSearch *CcSearch) *SearchCcInstanceReqBuilder {
  9936  	builder.ccSearch = ccSearch
  9937  	return builder
  9938  }
  9939  
  9940  func (builder *SearchCcInstanceReqBuilder) Build() *SearchCcInstanceReq {
  9941  	req := &SearchCcInstanceReq{}
  9942  	req.apiReq = &larkcore.ApiReq{}
  9943  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  9944  	req.apiReq.Body = builder.ccSearch
  9945  	return req
  9946  }
  9947  
  9948  type SearchCcInstanceReq struct {
  9949  	apiReq   *larkcore.ApiReq
  9950  	CcSearch *CcSearch `body:""`
  9951  }
  9952  
  9953  type SearchCcInstanceRespData struct {
  9954  	Count     *int            `json:"count,omitempty"`      // 查询返回条数
  9955  	CcList    []*CcSearchItem `json:"cc_list,omitempty"`    // 审批实例列表
  9956  	PageToken *string         `json:"page_token,omitempty"` // 翻页 Token
  9957  	HasMore   *bool           `json:"has_more,omitempty"`   // 是否有更多任务可供拉取
  9958  }
  9959  
  9960  type SearchCcInstanceResp struct {
  9961  	*larkcore.ApiResp `json:"-"`
  9962  	larkcore.CodeError
  9963  	Data *SearchCcInstanceRespData `json:"data"` // 业务数据
  9964  }
  9965  
  9966  func (resp *SearchCcInstanceResp) Success() bool {
  9967  	return resp.Code == 0
  9968  }
  9969  
  9970  type SpecifiedRollbackInstanceReqBuilder struct {
  9971  	apiReq            *larkcore.ApiReq
  9972  	specifiedRollback *SpecifiedRollback
  9973  }
  9974  
  9975  func NewSpecifiedRollbackInstanceReqBuilder() *SpecifiedRollbackInstanceReqBuilder {
  9976  	builder := &SpecifiedRollbackInstanceReqBuilder{}
  9977  	builder.apiReq = &larkcore.ApiReq{
  9978  		PathParams:  larkcore.PathParams{},
  9979  		QueryParams: larkcore.QueryParams{},
  9980  	}
  9981  	return builder
  9982  }
  9983  
  9984  // 此次调用中使用的用户ID的类型
  9985  //
  9986  // 示例值:
  9987  func (builder *SpecifiedRollbackInstanceReqBuilder) UserIdType(userIdType string) *SpecifiedRollbackInstanceReqBuilder {
  9988  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  9989  	return builder
  9990  }
  9991  
  9992  // 从当前审批任务,退回到已审批的一个或多个任务节点。退回后,已审批节点重新生成审批任务
  9993  func (builder *SpecifiedRollbackInstanceReqBuilder) SpecifiedRollback(specifiedRollback *SpecifiedRollback) *SpecifiedRollbackInstanceReqBuilder {
  9994  	builder.specifiedRollback = specifiedRollback
  9995  	return builder
  9996  }
  9997  
  9998  func (builder *SpecifiedRollbackInstanceReqBuilder) Build() *SpecifiedRollbackInstanceReq {
  9999  	req := &SpecifiedRollbackInstanceReq{}
 10000  	req.apiReq = &larkcore.ApiReq{}
 10001  	req.apiReq.QueryParams = builder.apiReq.QueryParams
 10002  	req.apiReq.Body = builder.specifiedRollback
 10003  	return req
 10004  }
 10005  
 10006  type SpecifiedRollbackInstanceReq struct {
 10007  	apiReq            *larkcore.ApiReq
 10008  	SpecifiedRollback *SpecifiedRollback `body:""`
 10009  }
 10010  
 10011  type SpecifiedRollbackInstanceResp struct {
 10012  	*larkcore.ApiResp `json:"-"`
 10013  	larkcore.CodeError
 10014  }
 10015  
 10016  func (resp *SpecifiedRollbackInstanceResp) Success() bool {
 10017  	return resp.Code == 0
 10018  }
 10019  
 10020  type CreateInstanceCommentReqBuilder struct {
 10021  	apiReq         *larkcore.ApiReq
 10022  	commentRequest *CommentRequest
 10023  }
 10024  
 10025  func NewCreateInstanceCommentReqBuilder() *CreateInstanceCommentReqBuilder {
 10026  	builder := &CreateInstanceCommentReqBuilder{}
 10027  	builder.apiReq = &larkcore.ApiReq{
 10028  		PathParams:  larkcore.PathParams{},
 10029  		QueryParams: larkcore.QueryParams{},
 10030  	}
 10031  	return builder
 10032  }
 10033  
 10034  // 审批实例code(或租户自定义审批实例ID)
 10035  //
 10036  // 示例值:6A123516-FB88-470D-A428-9AF58B71B3C0
 10037  func (builder *CreateInstanceCommentReqBuilder) InstanceId(instanceId string) *CreateInstanceCommentReqBuilder {
 10038  	builder.apiReq.PathParams.Set("instance_id", fmt.Sprint(instanceId))
 10039  	return builder
 10040  }
 10041  
 10042  // 用户ID类型,不填默认为open_id
 10043  //
 10044  // 示例值:user_id
 10045  func (builder *CreateInstanceCommentReqBuilder) UserIdType(userIdType string) *CreateInstanceCommentReqBuilder {
 10046  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
 10047  	return builder
 10048  }
 10049  
 10050  // 用户ID
 10051  //
 10052  // 示例值:e5286g26
 10053  func (builder *CreateInstanceCommentReqBuilder) UserId(userId string) *CreateInstanceCommentReqBuilder {
 10054  	builder.apiReq.QueryParams.Set("user_id", fmt.Sprint(userId))
 10055  	return builder
 10056  }
 10057  
 10058  // 在某审批实例下创建、修改评论或评论回复(不包含审批同意、拒绝、转交等附加的理由或意见)。
 10059  func (builder *CreateInstanceCommentReqBuilder) CommentRequest(commentRequest *CommentRequest) *CreateInstanceCommentReqBuilder {
 10060  	builder.commentRequest = commentRequest
 10061  	return builder
 10062  }
 10063  
 10064  func (builder *CreateInstanceCommentReqBuilder) Build() *CreateInstanceCommentReq {
 10065  	req := &CreateInstanceCommentReq{}
 10066  	req.apiReq = &larkcore.ApiReq{}
 10067  	req.apiReq.PathParams = builder.apiReq.PathParams
 10068  	req.apiReq.QueryParams = builder.apiReq.QueryParams
 10069  	req.apiReq.Body = builder.commentRequest
 10070  	return req
 10071  }
 10072  
 10073  type CreateInstanceCommentReq struct {
 10074  	apiReq         *larkcore.ApiReq
 10075  	CommentRequest *CommentRequest `body:""`
 10076  }
 10077  
 10078  type CreateInstanceCommentRespData struct {
 10079  	CommentId *string `json:"comment_id,omitempty"` // 保存成功的comment_id
 10080  }
 10081  
 10082  type CreateInstanceCommentResp struct {
 10083  	*larkcore.ApiResp `json:"-"`
 10084  	larkcore.CodeError
 10085  	Data *CreateInstanceCommentRespData `json:"data"` // 业务数据
 10086  }
 10087  
 10088  func (resp *CreateInstanceCommentResp) Success() bool {
 10089  	return resp.Code == 0
 10090  }
 10091  
 10092  type DeleteInstanceCommentReqBuilder struct {
 10093  	apiReq *larkcore.ApiReq
 10094  }
 10095  
 10096  func NewDeleteInstanceCommentReqBuilder() *DeleteInstanceCommentReqBuilder {
 10097  	builder := &DeleteInstanceCommentReqBuilder{}
 10098  	builder.apiReq = &larkcore.ApiReq{
 10099  		PathParams:  larkcore.PathParams{},
 10100  		QueryParams: larkcore.QueryParams{},
 10101  	}
 10102  	return builder
 10103  }
 10104  
 10105  // 审批实例code(或者租户自定义审批实例ID)
 10106  //
 10107  // 示例值:6A123516-FB88-470D-A428-9AF58B71B3C0
 10108  func (builder *DeleteInstanceCommentReqBuilder) InstanceId(instanceId string) *DeleteInstanceCommentReqBuilder {
 10109  	builder.apiReq.PathParams.Set("instance_id", fmt.Sprint(instanceId))
 10110  	return builder
 10111  }
 10112  
 10113  // 评论ID
 10114  //
 10115  // 示例值:7081516627711606803
 10116  func (builder *DeleteInstanceCommentReqBuilder) CommentId(commentId string) *DeleteInstanceCommentReqBuilder {
 10117  	builder.apiReq.PathParams.Set("comment_id", fmt.Sprint(commentId))
 10118  	return builder
 10119  }
 10120  
 10121  // 用户ID类型,不填默认为open_id
 10122  //
 10123  // 示例值:user_id
 10124  func (builder *DeleteInstanceCommentReqBuilder) UserIdType(userIdType string) *DeleteInstanceCommentReqBuilder {
 10125  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
 10126  	return builder
 10127  }
 10128  
 10129  // 根据user_id_type填写用户ID
 10130  //
 10131  // 示例值:ou_806a18fb5bdf525e38ba219733bdbd73
 10132  func (builder *DeleteInstanceCommentReqBuilder) UserId(userId string) *DeleteInstanceCommentReqBuilder {
 10133  	builder.apiReq.QueryParams.Set("user_id", fmt.Sprint(userId))
 10134  	return builder
 10135  }
 10136  
 10137  func (builder *DeleteInstanceCommentReqBuilder) Build() *DeleteInstanceCommentReq {
 10138  	req := &DeleteInstanceCommentReq{}
 10139  	req.apiReq = &larkcore.ApiReq{}
 10140  	req.apiReq.PathParams = builder.apiReq.PathParams
 10141  	req.apiReq.QueryParams = builder.apiReq.QueryParams
 10142  	return req
 10143  }
 10144  
 10145  type DeleteInstanceCommentReq struct {
 10146  	apiReq *larkcore.ApiReq
 10147  }
 10148  
 10149  type DeleteInstanceCommentRespData struct {
 10150  	CommentId *string `json:"comment_id,omitempty"` // 删除的评论ID
 10151  }
 10152  
 10153  type DeleteInstanceCommentResp struct {
 10154  	*larkcore.ApiResp `json:"-"`
 10155  	larkcore.CodeError
 10156  	Data *DeleteInstanceCommentRespData `json:"data"` // 业务数据
 10157  }
 10158  
 10159  func (resp *DeleteInstanceCommentResp) Success() bool {
 10160  	return resp.Code == 0
 10161  }
 10162  
 10163  type ListInstanceCommentReqBuilder struct {
 10164  	apiReq *larkcore.ApiReq
 10165  }
 10166  
 10167  func NewListInstanceCommentReqBuilder() *ListInstanceCommentReqBuilder {
 10168  	builder := &ListInstanceCommentReqBuilder{}
 10169  	builder.apiReq = &larkcore.ApiReq{
 10170  		PathParams:  larkcore.PathParams{},
 10171  		QueryParams: larkcore.QueryParams{},
 10172  	}
 10173  	return builder
 10174  }
 10175  
 10176  // 审批实例code(或者租户自定义审批实例ID)
 10177  //
 10178  // 示例值:6A123516-FB88-470D-A428-9AF58B71B3C0
 10179  func (builder *ListInstanceCommentReqBuilder) InstanceId(instanceId string) *ListInstanceCommentReqBuilder {
 10180  	builder.apiReq.PathParams.Set("instance_id", fmt.Sprint(instanceId))
 10181  	return builder
 10182  }
 10183  
 10184  // 用户ID类型,不填默认为open_id
 10185  //
 10186  // 示例值:user_id
 10187  func (builder *ListInstanceCommentReqBuilder) UserIdType(userIdType string) *ListInstanceCommentReqBuilder {
 10188  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
 10189  	return builder
 10190  }
 10191  
 10192  // 用户ID
 10193  //
 10194  // 示例值:e5286g26
 10195  func (builder *ListInstanceCommentReqBuilder) UserId(userId string) *ListInstanceCommentReqBuilder {
 10196  	builder.apiReq.QueryParams.Set("user_id", fmt.Sprint(userId))
 10197  	return builder
 10198  }
 10199  
 10200  //
 10201  //
 10202  // 示例值:nF1ZXJ5VGhlbkZldGNoCgAAAAAA6PZwFmUzSldvTC1yU
 10203  func (builder *ListInstanceCommentReqBuilder) PageToken(pageToken string) *ListInstanceCommentReqBuilder {
 10204  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
 10205  	return builder
 10206  }
 10207  
 10208  //
 10209  //
 10210  // 示例值:10
 10211  func (builder *ListInstanceCommentReqBuilder) PageSize(pageSize int) *ListInstanceCommentReqBuilder {
 10212  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
 10213  	return builder
 10214  }
 10215  
 10216  func (builder *ListInstanceCommentReqBuilder) Build() *ListInstanceCommentReq {
 10217  	req := &ListInstanceCommentReq{}
 10218  	req.apiReq = &larkcore.ApiReq{}
 10219  	req.apiReq.PathParams = builder.apiReq.PathParams
 10220  	req.apiReq.QueryParams = builder.apiReq.QueryParams
 10221  	return req
 10222  }
 10223  
 10224  type ListInstanceCommentReq struct {
 10225  	apiReq *larkcore.ApiReq
 10226  }
 10227  
 10228  type ListInstanceCommentRespData struct {
 10229  	Comments []*Comment `json:"comments,omitempty"` // 评论数据列表
 10230  }
 10231  
 10232  type ListInstanceCommentResp struct {
 10233  	*larkcore.ApiResp `json:"-"`
 10234  	larkcore.CodeError
 10235  	Data *ListInstanceCommentRespData `json:"data"` // 业务数据
 10236  }
 10237  
 10238  func (resp *ListInstanceCommentResp) Success() bool {
 10239  	return resp.Code == 0
 10240  }
 10241  
 10242  type RemoveInstanceCommentReqBuilder struct {
 10243  	apiReq *larkcore.ApiReq
 10244  }
 10245  
 10246  func NewRemoveInstanceCommentReqBuilder() *RemoveInstanceCommentReqBuilder {
 10247  	builder := &RemoveInstanceCommentReqBuilder{}
 10248  	builder.apiReq = &larkcore.ApiReq{
 10249  		PathParams:  larkcore.PathParams{},
 10250  		QueryParams: larkcore.QueryParams{},
 10251  	}
 10252  	return builder
 10253  }
 10254  
 10255  // 审批实例code(或者租户自定义审批实例ID)
 10256  //
 10257  // 示例值:6A123516-FB88-470D-A428-9AF58B71B3C0
 10258  func (builder *RemoveInstanceCommentReqBuilder) InstanceId(instanceId string) *RemoveInstanceCommentReqBuilder {
 10259  	builder.apiReq.PathParams.Set("instance_id", fmt.Sprint(instanceId))
 10260  	return builder
 10261  }
 10262  
 10263  // 用户ID类型,不填默认为open_id
 10264  //
 10265  // 示例值:user_id
 10266  func (builder *RemoveInstanceCommentReqBuilder) UserIdType(userIdType string) *RemoveInstanceCommentReqBuilder {
 10267  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
 10268  	return builder
 10269  }
 10270  
 10271  // 根据user_id_type填写用户ID
 10272  //
 10273  // 示例值:ou_806a18fb5bdf525e38ba219733bdbd73
 10274  func (builder *RemoveInstanceCommentReqBuilder) UserId(userId string) *RemoveInstanceCommentReqBuilder {
 10275  	builder.apiReq.QueryParams.Set("user_id", fmt.Sprint(userId))
 10276  	return builder
 10277  }
 10278  
 10279  func (builder *RemoveInstanceCommentReqBuilder) Build() *RemoveInstanceCommentReq {
 10280  	req := &RemoveInstanceCommentReq{}
 10281  	req.apiReq = &larkcore.ApiReq{}
 10282  	req.apiReq.PathParams = builder.apiReq.PathParams
 10283  	req.apiReq.QueryParams = builder.apiReq.QueryParams
 10284  	return req
 10285  }
 10286  
 10287  type RemoveInstanceCommentReq struct {
 10288  	apiReq *larkcore.ApiReq
 10289  }
 10290  
 10291  type RemoveInstanceCommentRespData struct {
 10292  	InstanceId *string `json:"instance_id,omitempty"` // 审批实例code
 10293  	ExternalId *string `json:"external_id,omitempty"` // 租户自定义审批实例ID
 10294  }
 10295  
 10296  type RemoveInstanceCommentResp struct {
 10297  	*larkcore.ApiResp `json:"-"`
 10298  	larkcore.CodeError
 10299  	Data *RemoveInstanceCommentRespData `json:"data"` // 业务数据
 10300  }
 10301  
 10302  func (resp *RemoveInstanceCommentResp) Success() bool {
 10303  	return resp.Code == 0
 10304  }
 10305  
 10306  type ApproveTaskReqBuilder struct {
 10307  	apiReq      *larkcore.ApiReq
 10308  	taskApprove *TaskApprove
 10309  }
 10310  
 10311  func NewApproveTaskReqBuilder() *ApproveTaskReqBuilder {
 10312  	builder := &ApproveTaskReqBuilder{}
 10313  	builder.apiReq = &larkcore.ApiReq{
 10314  		PathParams:  larkcore.PathParams{},
 10315  		QueryParams: larkcore.QueryParams{},
 10316  	}
 10317  	return builder
 10318  }
 10319  
 10320  // 此次调用中使用的用户ID的类型
 10321  //
 10322  // 示例值:
 10323  func (builder *ApproveTaskReqBuilder) UserIdType(userIdType string) *ApproveTaskReqBuilder {
 10324  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
 10325  	return builder
 10326  }
 10327  
 10328  // 对于单个审批任务进行同意操作。同意后审批流程会流转到下一个审批人。
 10329  func (builder *ApproveTaskReqBuilder) TaskApprove(taskApprove *TaskApprove) *ApproveTaskReqBuilder {
 10330  	builder.taskApprove = taskApprove
 10331  	return builder
 10332  }
 10333  
 10334  func (builder *ApproveTaskReqBuilder) Build() *ApproveTaskReq {
 10335  	req := &ApproveTaskReq{}
 10336  	req.apiReq = &larkcore.ApiReq{}
 10337  	req.apiReq.QueryParams = builder.apiReq.QueryParams
 10338  	req.apiReq.Body = builder.taskApprove
 10339  	return req
 10340  }
 10341  
 10342  type ApproveTaskReq struct {
 10343  	apiReq      *larkcore.ApiReq
 10344  	TaskApprove *TaskApprove `body:""`
 10345  }
 10346  
 10347  type ApproveTaskResp struct {
 10348  	*larkcore.ApiResp `json:"-"`
 10349  	larkcore.CodeError
 10350  }
 10351  
 10352  func (resp *ApproveTaskResp) Success() bool {
 10353  	return resp.Code == 0
 10354  }
 10355  
 10356  type QueryTaskReqBuilder struct {
 10357  	apiReq *larkcore.ApiReq
 10358  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
 10359  }
 10360  
 10361  func NewQueryTaskReqBuilder() *QueryTaskReqBuilder {
 10362  	builder := &QueryTaskReqBuilder{}
 10363  	builder.apiReq = &larkcore.ApiReq{
 10364  		PathParams:  larkcore.PathParams{},
 10365  		QueryParams: larkcore.QueryParams{},
 10366  	}
 10367  	return builder
 10368  }
 10369  
 10370  // 最大返回多少记录,当使用迭代器访问时才有效
 10371  func (builder *QueryTaskReqBuilder) Limit(limit int) *QueryTaskReqBuilder {
 10372  	builder.limit = limit
 10373  	return builder
 10374  }
 10375  
 10376  // 分页大小
 10377  //
 10378  // 示例值:100
 10379  func (builder *QueryTaskReqBuilder) PageSize(pageSize int) *QueryTaskReqBuilder {
 10380  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
 10381  	return builder
 10382  }
 10383  
 10384  // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果
 10385  //
 10386  // 示例值:1
 10387  func (builder *QueryTaskReqBuilder) PageToken(pageToken string) *QueryTaskReqBuilder {
 10388  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
 10389  	return builder
 10390  }
 10391  
 10392  // 需要查询的 User ID
 10393  //
 10394  // 示例值:example_user_id
 10395  func (builder *QueryTaskReqBuilder) UserId(userId string) *QueryTaskReqBuilder {
 10396  	builder.apiReq.QueryParams.Set("user_id", fmt.Sprint(userId))
 10397  	return builder
 10398  }
 10399  
 10400  // 需要查询的任务分组主题,如「待办」、「已办」等
 10401  //
 10402  // 示例值:1
 10403  func (builder *QueryTaskReqBuilder) Topic(topic string) *QueryTaskReqBuilder {
 10404  	builder.apiReq.QueryParams.Set("topic", fmt.Sprint(topic))
 10405  	return builder
 10406  }
 10407  
 10408  // 此次调用中使用的用户ID的类型
 10409  //
 10410  // 示例值:
 10411  func (builder *QueryTaskReqBuilder) UserIdType(userIdType string) *QueryTaskReqBuilder {
 10412  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
 10413  	return builder
 10414  }
 10415  
 10416  func (builder *QueryTaskReqBuilder) Build() *QueryTaskReq {
 10417  	req := &QueryTaskReq{}
 10418  	req.apiReq = &larkcore.ApiReq{}
 10419  	req.Limit = builder.limit
 10420  	req.apiReq.QueryParams = builder.apiReq.QueryParams
 10421  	return req
 10422  }
 10423  
 10424  type QueryTaskReq struct {
 10425  	apiReq *larkcore.ApiReq
 10426  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
 10427  
 10428  }
 10429  
 10430  type QueryTaskRespData struct {
 10431  	Tasks     []*Task `json:"tasks,omitempty"`      // 任务列表
 10432  	PageToken *string `json:"page_token,omitempty"` // 翻页 Token
 10433  	HasMore   *bool   `json:"has_more,omitempty"`   // 是否有更多任务可供拉取
 10434  	Count     *Count  `json:"count,omitempty"`      // 列表计数,只在分页第一页返回
 10435  }
 10436  
 10437  type QueryTaskResp struct {
 10438  	*larkcore.ApiResp `json:"-"`
 10439  	larkcore.CodeError
 10440  	Data *QueryTaskRespData `json:"data"` // 业务数据
 10441  }
 10442  
 10443  func (resp *QueryTaskResp) Success() bool {
 10444  	return resp.Code == 0
 10445  }
 10446  
 10447  type RejectTaskReqBuilder struct {
 10448  	apiReq      *larkcore.ApiReq
 10449  	taskApprove *TaskApprove
 10450  }
 10451  
 10452  func NewRejectTaskReqBuilder() *RejectTaskReqBuilder {
 10453  	builder := &RejectTaskReqBuilder{}
 10454  	builder.apiReq = &larkcore.ApiReq{
 10455  		PathParams:  larkcore.PathParams{},
 10456  		QueryParams: larkcore.QueryParams{},
 10457  	}
 10458  	return builder
 10459  }
 10460  
 10461  // 此次调用中使用的用户ID的类型
 10462  //
 10463  // 示例值:
 10464  func (builder *RejectTaskReqBuilder) UserIdType(userIdType string) *RejectTaskReqBuilder {
 10465  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
 10466  	return builder
 10467  }
 10468  
 10469  // 对于单个审批任务进行拒绝操作。拒绝后审批流程结束。
 10470  func (builder *RejectTaskReqBuilder) TaskApprove(taskApprove *TaskApprove) *RejectTaskReqBuilder {
 10471  	builder.taskApprove = taskApprove
 10472  	return builder
 10473  }
 10474  
 10475  func (builder *RejectTaskReqBuilder) Build() *RejectTaskReq {
 10476  	req := &RejectTaskReq{}
 10477  	req.apiReq = &larkcore.ApiReq{}
 10478  	req.apiReq.QueryParams = builder.apiReq.QueryParams
 10479  	req.apiReq.Body = builder.taskApprove
 10480  	return req
 10481  }
 10482  
 10483  type RejectTaskReq struct {
 10484  	apiReq      *larkcore.ApiReq
 10485  	TaskApprove *TaskApprove `body:""`
 10486  }
 10487  
 10488  type RejectTaskResp struct {
 10489  	*larkcore.ApiResp `json:"-"`
 10490  	larkcore.CodeError
 10491  }
 10492  
 10493  func (resp *RejectTaskResp) Success() bool {
 10494  	return resp.Code == 0
 10495  }
 10496  
 10497  type ResubmitTaskReqBuilder struct {
 10498  	apiReq       *larkcore.ApiReq
 10499  	taskResubmit *TaskResubmit
 10500  }
 10501  
 10502  func NewResubmitTaskReqBuilder() *ResubmitTaskReqBuilder {
 10503  	builder := &ResubmitTaskReqBuilder{}
 10504  	builder.apiReq = &larkcore.ApiReq{
 10505  		PathParams:  larkcore.PathParams{},
 10506  		QueryParams: larkcore.QueryParams{},
 10507  	}
 10508  	return builder
 10509  }
 10510  
 10511  // 此次调用中使用的用户ID的类型
 10512  //
 10513  // 示例值:
 10514  func (builder *ResubmitTaskReqBuilder) UserIdType(userIdType string) *ResubmitTaskReqBuilder {
 10515  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
 10516  	return builder
 10517  }
 10518  
 10519  // 对于单个退回到发起人的审批任务进行重新发起操作。发起后审批流程会流转到下一个审批人。
 10520  func (builder *ResubmitTaskReqBuilder) TaskResubmit(taskResubmit *TaskResubmit) *ResubmitTaskReqBuilder {
 10521  	builder.taskResubmit = taskResubmit
 10522  	return builder
 10523  }
 10524  
 10525  func (builder *ResubmitTaskReqBuilder) Build() *ResubmitTaskReq {
 10526  	req := &ResubmitTaskReq{}
 10527  	req.apiReq = &larkcore.ApiReq{}
 10528  	req.apiReq.QueryParams = builder.apiReq.QueryParams
 10529  	req.apiReq.Body = builder.taskResubmit
 10530  	return req
 10531  }
 10532  
 10533  type ResubmitTaskReq struct {
 10534  	apiReq       *larkcore.ApiReq
 10535  	TaskResubmit *TaskResubmit `body:""`
 10536  }
 10537  
 10538  type ResubmitTaskResp struct {
 10539  	*larkcore.ApiResp `json:"-"`
 10540  	larkcore.CodeError
 10541  }
 10542  
 10543  func (resp *ResubmitTaskResp) Success() bool {
 10544  	return resp.Code == 0
 10545  }
 10546  
 10547  type SearchTaskReqBuilder struct {
 10548  	apiReq     *larkcore.ApiReq
 10549  	taskSearch *TaskSearch
 10550  }
 10551  
 10552  func NewSearchTaskReqBuilder() *SearchTaskReqBuilder {
 10553  	builder := &SearchTaskReqBuilder{}
 10554  	builder.apiReq = &larkcore.ApiReq{
 10555  		PathParams:  larkcore.PathParams{},
 10556  		QueryParams: larkcore.QueryParams{},
 10557  	}
 10558  	return builder
 10559  }
 10560  
 10561  // 分页大小
 10562  //
 10563  // 示例值:10
 10564  func (builder *SearchTaskReqBuilder) PageSize(pageSize int) *SearchTaskReqBuilder {
 10565  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
 10566  	return builder
 10567  }
 10568  
 10569  // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果
 10570  //
 10571  // 示例值:nF1ZXJ5VGhlbkZldGNoCgAAAAAA6PZwFmUzSldvTC1yU
 10572  func (builder *SearchTaskReqBuilder) PageToken(pageToken string) *SearchTaskReqBuilder {
 10573  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
 10574  	return builder
 10575  }
 10576  
 10577  // 此次调用中使用的用户ID的类型
 10578  //
 10579  // 示例值:
 10580  func (builder *SearchTaskReqBuilder) UserIdType(userIdType string) *SearchTaskReqBuilder {
 10581  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
 10582  	return builder
 10583  }
 10584  
 10585  // 该接口通过不同条件查询审批系统中符合条件的审批任务列表
 10586  func (builder *SearchTaskReqBuilder) TaskSearch(taskSearch *TaskSearch) *SearchTaskReqBuilder {
 10587  	builder.taskSearch = taskSearch
 10588  	return builder
 10589  }
 10590  
 10591  func (builder *SearchTaskReqBuilder) Build() *SearchTaskReq {
 10592  	req := &SearchTaskReq{}
 10593  	req.apiReq = &larkcore.ApiReq{}
 10594  	req.apiReq.QueryParams = builder.apiReq.QueryParams
 10595  	req.apiReq.Body = builder.taskSearch
 10596  	return req
 10597  }
 10598  
 10599  type SearchTaskReq struct {
 10600  	apiReq     *larkcore.ApiReq
 10601  	TaskSearch *TaskSearch `body:""`
 10602  }
 10603  
 10604  type SearchTaskRespData struct {
 10605  	Count     *int              `json:"count,omitempty"`      // 查询返回条数
 10606  	TaskList  []*TaskSearchItem `json:"task_list,omitempty"`  // 审批任务列表
 10607  	PageToken *string           `json:"page_token,omitempty"` // 翻页 Token
 10608  	HasMore   *bool             `json:"has_more,omitempty"`   // 是否有更多任务可供拉取
 10609  }
 10610  
 10611  type SearchTaskResp struct {
 10612  	*larkcore.ApiResp `json:"-"`
 10613  	larkcore.CodeError
 10614  	Data *SearchTaskRespData `json:"data"` // 业务数据
 10615  }
 10616  
 10617  func (resp *SearchTaskResp) Success() bool {
 10618  	return resp.Code == 0
 10619  }
 10620  
 10621  type TransferTaskReqBuilder struct {
 10622  	apiReq       *larkcore.ApiReq
 10623  	taskTransfer *TaskTransfer
 10624  }
 10625  
 10626  func NewTransferTaskReqBuilder() *TransferTaskReqBuilder {
 10627  	builder := &TransferTaskReqBuilder{}
 10628  	builder.apiReq = &larkcore.ApiReq{
 10629  		PathParams:  larkcore.PathParams{},
 10630  		QueryParams: larkcore.QueryParams{},
 10631  	}
 10632  	return builder
 10633  }
 10634  
 10635  // 此次调用中使用的用户ID的类型
 10636  //
 10637  // 示例值:
 10638  func (builder *TransferTaskReqBuilder) UserIdType(userIdType string) *TransferTaskReqBuilder {
 10639  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
 10640  	return builder
 10641  }
 10642  
 10643  // 对于单个审批任务进行转交操作。转交后审批流程流转给被转交人。
 10644  func (builder *TransferTaskReqBuilder) TaskTransfer(taskTransfer *TaskTransfer) *TransferTaskReqBuilder {
 10645  	builder.taskTransfer = taskTransfer
 10646  	return builder
 10647  }
 10648  
 10649  func (builder *TransferTaskReqBuilder) Build() *TransferTaskReq {
 10650  	req := &TransferTaskReq{}
 10651  	req.apiReq = &larkcore.ApiReq{}
 10652  	req.apiReq.QueryParams = builder.apiReq.QueryParams
 10653  	req.apiReq.Body = builder.taskTransfer
 10654  	return req
 10655  }
 10656  
 10657  type TransferTaskReq struct {
 10658  	apiReq       *larkcore.ApiReq
 10659  	TaskTransfer *TaskTransfer `body:""`
 10660  }
 10661  
 10662  type TransferTaskResp struct {
 10663  	*larkcore.ApiResp `json:"-"`
 10664  	larkcore.CodeError
 10665  }
 10666  
 10667  func (resp *TransferTaskResp) Success() bool {
 10668  	return resp.Code == 0
 10669  }
 10670  
 10671  type P2ApprovalUpdatedV4Data struct {
 10672  	Object *ApprovalEvent `json:"object,omitempty"` //
 10673  }
 10674  
 10675  type P2ApprovalUpdatedV4 struct {
 10676  	*larkevent.EventV2Base                          // 事件基础数据
 10677  	*larkevent.EventReq                             // 请求原生数据
 10678  	Event                  *P2ApprovalUpdatedV4Data `json:"event"` // 事件内容
 10679  }
 10680  
 10681  func (m *P2ApprovalUpdatedV4) RawReq(req *larkevent.EventReq) {
 10682  	m.EventReq = req
 10683  }
 10684  
 10685  type ListExternalTaskIterator struct {
 10686  	nextPageToken *string
 10687  	items         []*ExternalTaskList
 10688  	index         int
 10689  	limit         int
 10690  	ctx           context.Context
 10691  	req           *ListExternalTaskReq
 10692  	listFunc      func(ctx context.Context, req *ListExternalTaskReq, options ...larkcore.RequestOptionFunc) (*ListExternalTaskResp, error)
 10693  	options       []larkcore.RequestOptionFunc
 10694  	curlNum       int
 10695  }
 10696  
 10697  func (iterator *ListExternalTaskIterator) Next() (bool, *ExternalTaskList, error) {
 10698  	// 达到最大量,则返回
 10699  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
 10700  		return false, nil, nil
 10701  	}
 10702  
 10703  	// 为0则拉取数据
 10704  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
 10705  		if iterator.index != 0 && iterator.nextPageToken == nil {
 10706  			return false, nil, nil
 10707  		}
 10708  		if iterator.nextPageToken != nil {
 10709  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
 10710  		}
 10711  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
 10712  		if err != nil {
 10713  			return false, nil, err
 10714  		}
 10715  
 10716  		if resp.Code != 0 {
 10717  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
 10718  		}
 10719  
 10720  		if len(resp.Data.Data) == 0 {
 10721  			return false, nil, nil
 10722  		}
 10723  
 10724  		iterator.nextPageToken = resp.Data.PageToken
 10725  		iterator.items = resp.Data.Data
 10726  		iterator.index = 0
 10727  	}
 10728  
 10729  	block := iterator.items[iterator.index]
 10730  	iterator.index++
 10731  	iterator.curlNum++
 10732  	return true, block, nil
 10733  }
 10734  
 10735  func (iterator *ListExternalTaskIterator) NextPageToken() *string {
 10736  	return iterator.nextPageToken
 10737  }
 10738  
 10739  type ListInstanceIterator struct {
 10740  	nextPageToken *string
 10741  	items         []string
 10742  	index         int
 10743  	limit         int
 10744  	ctx           context.Context
 10745  	req           *ListInstanceReq
 10746  	listFunc      func(ctx context.Context, req *ListInstanceReq, options ...larkcore.RequestOptionFunc) (*ListInstanceResp, error)
 10747  	options       []larkcore.RequestOptionFunc
 10748  	curlNum       int
 10749  }
 10750  
 10751  func (iterator *ListInstanceIterator) Next() (bool, string, error) {
 10752  	// 达到最大量,则返回
 10753  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
 10754  		return false, "", nil
 10755  	}
 10756  
 10757  	// 为0则拉取数据
 10758  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
 10759  		if iterator.index != 0 && iterator.nextPageToken == nil {
 10760  			return false, "", nil
 10761  		}
 10762  		if iterator.nextPageToken != nil {
 10763  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
 10764  		}
 10765  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
 10766  		if err != nil {
 10767  			return false, "", err
 10768  		}
 10769  
 10770  		if resp.Code != 0 {
 10771  			return false, "", errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
 10772  		}
 10773  
 10774  		if len(resp.Data.InstanceCodeList) == 0 {
 10775  			return false, "", nil
 10776  		}
 10777  
 10778  		iterator.nextPageToken = resp.Data.PageToken
 10779  		iterator.items = resp.Data.InstanceCodeList
 10780  		iterator.index = 0
 10781  	}
 10782  
 10783  	block := iterator.items[iterator.index]
 10784  	iterator.index++
 10785  	iterator.curlNum++
 10786  	return true, block, nil
 10787  }
 10788  
 10789  func (iterator *ListInstanceIterator) NextPageToken() *string {
 10790  	return iterator.nextPageToken
 10791  }
 10792  
 10793  type QueryInstanceIterator struct {
 10794  	nextPageToken *string
 10795  	items         []*InstanceSearchItem
 10796  	index         int
 10797  	limit         int
 10798  	ctx           context.Context
 10799  	req           *QueryInstanceReq
 10800  	listFunc      func(ctx context.Context, req *QueryInstanceReq, options ...larkcore.RequestOptionFunc) (*QueryInstanceResp, error)
 10801  	options       []larkcore.RequestOptionFunc
 10802  	curlNum       int
 10803  }
 10804  
 10805  func (iterator *QueryInstanceIterator) Next() (bool, *InstanceSearchItem, error) {
 10806  	// 达到最大量,则返回
 10807  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
 10808  		return false, nil, nil
 10809  	}
 10810  
 10811  	// 为0则拉取数据
 10812  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
 10813  		if iterator.index != 0 && iterator.nextPageToken == nil {
 10814  			return false, nil, nil
 10815  		}
 10816  		if iterator.nextPageToken != nil {
 10817  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
 10818  		}
 10819  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
 10820  		if err != nil {
 10821  			return false, nil, err
 10822  		}
 10823  
 10824  		if resp.Code != 0 {
 10825  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
 10826  		}
 10827  
 10828  		if len(resp.Data.InstanceList) == 0 {
 10829  			return false, nil, nil
 10830  		}
 10831  
 10832  		iterator.nextPageToken = resp.Data.PageToken
 10833  		iterator.items = resp.Data.InstanceList
 10834  		iterator.index = 0
 10835  	}
 10836  
 10837  	block := iterator.items[iterator.index]
 10838  	iterator.index++
 10839  	iterator.curlNum++
 10840  	return true, block, nil
 10841  }
 10842  
 10843  func (iterator *QueryInstanceIterator) NextPageToken() *string {
 10844  	return iterator.nextPageToken
 10845  }
 10846  
 10847  type QueryTaskIterator struct {
 10848  	nextPageToken *string
 10849  	items         []*Task
 10850  	index         int
 10851  	limit         int
 10852  	ctx           context.Context
 10853  	req           *QueryTaskReq
 10854  	listFunc      func(ctx context.Context, req *QueryTaskReq, options ...larkcore.RequestOptionFunc) (*QueryTaskResp, error)
 10855  	options       []larkcore.RequestOptionFunc
 10856  	curlNum       int
 10857  }
 10858  
 10859  func (iterator *QueryTaskIterator) Next() (bool, *Task, error) {
 10860  	// 达到最大量,则返回
 10861  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
 10862  		return false, nil, nil
 10863  	}
 10864  
 10865  	// 为0则拉取数据
 10866  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
 10867  		if iterator.index != 0 && iterator.nextPageToken == nil {
 10868  			return false, nil, nil
 10869  		}
 10870  		if iterator.nextPageToken != nil {
 10871  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
 10872  		}
 10873  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
 10874  		if err != nil {
 10875  			return false, nil, err
 10876  		}
 10877  
 10878  		if resp.Code != 0 {
 10879  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
 10880  		}
 10881  
 10882  		if len(resp.Data.Tasks) == 0 {
 10883  			return false, nil, nil
 10884  		}
 10885  
 10886  		iterator.nextPageToken = resp.Data.PageToken
 10887  		iterator.items = resp.Data.Tasks
 10888  		iterator.index = 0
 10889  	}
 10890  
 10891  	block := iterator.items[iterator.index]
 10892  	iterator.index++
 10893  	iterator.curlNum++
 10894  	return true, block, nil
 10895  }
 10896  
 10897  func (iterator *QueryTaskIterator) NextPageToken() *string {
 10898  	return iterator.nextPageToken
 10899  }