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

     1  // Package contact 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 larkcontact
    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  	UserIdTypeUserId  = "user_id"  // 以user_id来识别用户
    29  	UserIdTypeUnionId = "union_id" // 以union_id来识别用户
    30  	UserIdTypeOpenId  = "open_id"  // 以open_id来识别用户
    31  )
    32  
    33  const (
    34  	DepartmentIdTypeDepartmentId     = "department_id"      // 以自定义department_id来标识部门
    35  	DepartmentIdTypeOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
    36  )
    37  
    38  const (
    39  	UserIdTypeCreateDepartmentUserId  = "user_id"  // 以user_id来识别用户
    40  	UserIdTypeCreateDepartmentUnionId = "union_id" // 以union_id来识别用户
    41  	UserIdTypeCreateDepartmentOpenId  = "open_id"  // 以open_id来识别用户
    42  )
    43  
    44  const (
    45  	DepartmentIdTypeCreateDepartmentDepartmentId     = "department_id"      // 以自定义department_id来标识部门
    46  	DepartmentIdTypeCreateDepartmentOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
    47  )
    48  
    49  const (
    50  	DepartmentIdTypeDeleteDepartmentDepartmentId     = "department_id"      // 以自定义department_id来标识部门
    51  	DepartmentIdTypeDeleteDepartmentOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
    52  )
    53  
    54  const (
    55  	UserIdTypeGetDepartmentUserId  = "user_id"  // 以user_id来识别用户
    56  	UserIdTypeGetDepartmentUnionId = "union_id" // 以union_id来识别用户
    57  	UserIdTypeGetDepartmentOpenId  = "open_id"  // 以open_id来识别用户
    58  )
    59  
    60  const (
    61  	DepartmentIdTypeGetDepartmentDepartmentId     = "department_id"      // 以自定义department_id来标识部门
    62  	DepartmentIdTypeGetDepartmentOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
    63  )
    64  
    65  const (
    66  	UserIdTypeListDepartmentUserId  = "user_id"  // 以user_id来识别用户
    67  	UserIdTypeListDepartmentUnionId = "union_id" // 以union_id来识别用户
    68  	UserIdTypeListDepartmentOpenId  = "open_id"  // 以open_id来识别用户
    69  )
    70  
    71  const (
    72  	DepartmentIdTypeListDepartmentDepartmentId     = "department_id"      // 以自定义department_id来标识部门
    73  	DepartmentIdTypeListDepartmentOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
    74  )
    75  
    76  const (
    77  	UserIdTypeParentDepartmentUserId  = "user_id"  // 以user_id来识别用户
    78  	UserIdTypeParentDepartmentUnionId = "union_id" // 以union_id来识别用户
    79  	UserIdTypeParentDepartmentOpenId  = "open_id"  // 以open_id来识别用户
    80  )
    81  
    82  const (
    83  	DepartmentIdTypeParentDepartmentDepartmentId     = "department_id"      // 以自定义department_id来标识部门
    84  	DepartmentIdTypeParentDepartmentOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
    85  )
    86  
    87  const (
    88  	UserIdTypePatchDepartmentUserId  = "user_id"  // 以user_id来识别用户
    89  	UserIdTypePatchDepartmentUnionId = "union_id" // 以union_id来识别用户
    90  	UserIdTypePatchDepartmentOpenId  = "open_id"  // 以open_id来识别用户
    91  )
    92  
    93  const (
    94  	DepartmentIdTypePatchDepartmentDepartmentId     = "department_id"      // 以自定义department_id来标识部门
    95  	DepartmentIdTypePatchDepartmentOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
    96  )
    97  
    98  const (
    99  	UserIdTypeSearchDepartmentUserId  = "user_id"  // 以 user_id 来识别用户
   100  	UserIdTypeSearchDepartmentUnionId = "union_id" // 以 union_id 来识别用户
   101  	UserIdTypeSearchDepartmentOpenId  = "open_id"  // 以 open_id 来识别用户
   102  )
   103  
   104  const (
   105  	DepartmentIdTypeSearchDepartmentDepartmentId     = "department_id"      // 以自定义 department_id 来标识部门
   106  	DepartmentIdTypeSearchDepartmentOpenDepartmentId = "open_department_id" // 以 open_department_id 来标识部门
   107  )
   108  
   109  const (
   110  	DepartmentIdTypeUnbindDepartmentChatDepartmentDepartmentId     = "department_id"      // 以自定义department_id来标识部门
   111  	DepartmentIdTypeUnbindDepartmentChatDepartmentOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
   112  )
   113  
   114  const (
   115  	UserIdTypeUpdateDepartmentUserId  = "user_id"  // 以user_id来识别用户
   116  	UserIdTypeUpdateDepartmentUnionId = "union_id" // 以union_id来识别用户
   117  	UserIdTypeUpdateDepartmentOpenId  = "open_id"  // 以open_id来识别用户
   118  )
   119  
   120  const (
   121  	DepartmentIdTypeUpdateDepartmentDepartmentId     = "department_id"      // 以自定义department_id来标识部门
   122  	DepartmentIdTypeUpdateDepartmentOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
   123  )
   124  
   125  const (
   126  	EnumTypeDefualt = 1 // 内置类型
   127  	EnumTypeCustom  = 2 // 自定义
   128  
   129  )
   130  
   131  const (
   132  	EnumStatusActive   = 1 // 激活
   133  	EnumStatusInactive = 2 // 未激活
   134  
   135  )
   136  
   137  const (
   138  	EnumTypeUpdateEmployeeTypeEnumDefualt = 1 // 内置类型
   139  	EnumTypeUpdateEmployeeTypeEnumCustom  = 2 // 自定义
   140  
   141  )
   142  
   143  const (
   144  	EnumStatusUpdateEmployeeTypeEnumActive   = 1 // 激活
   145  	EnumStatusUpdateEmployeeTypeEnumInactive = 2 // 未激活
   146  
   147  )
   148  
   149  const (
   150  	GroupTypeAssign = 1 // 普通用户组
   151  
   152  )
   153  
   154  const (
   155  	MemberIdTypeOpenID  = "open_id"  //
   156  	MemberIdTypeUnionID = "union_id" //
   157  	MemberIdTypeUserID  = "user_id"  //
   158  )
   159  
   160  const (
   161  	GroupTypeMemberBelongGroupAssign  = 1 // 普通用户组
   162  	GroupTypeMemberBelongGroupDynamic = 2 // 动态用户组
   163  
   164  )
   165  
   166  const (
   167  	GroupTypeSimplelistGroupAssign  = 1 // 普通用户组
   168  	GroupTypeSimplelistGroupDynamic = 2 // 动态用户组
   169  
   170  )
   171  
   172  const (
   173  	MemberTypeUser = "user" // 用户成员
   174  )
   175  
   176  const (
   177  	MemberIdTypeAddGroupMemberOpenID  = "open_id"  // member_type =user时候,表示用户的open_id
   178  	MemberIdTypeAddGroupMemberUnionID = "union_id" // member_type =user时候,表示用户的union_id
   179  	MemberIdTypeAddGroupMemberUserID  = "user_id"  // member_type =user时候,表示用户的user_id
   180  )
   181  
   182  const (
   183  	MemberTypeRemoveGroupMemberUser = "user" // 表示从用户组中移除用户
   184  )
   185  
   186  const (
   187  	MemberIdTypeRemoveGroupMemberOpenID  = "open_id"  // member_type =user时候,表示用户的open_id
   188  	MemberIdTypeRemoveGroupMemberUnionID = "union_id" // member_type =user时候,表示用户的union_id
   189  	MemberIdTypeRemoveGroupMemberUserID  = "user_id"  // member_type =user时候,表示用户的user_id
   190  )
   191  
   192  const (
   193  	MemberIdTypeSimplelistGroupMemberOpenId       = "open_id"       // member_type=user时候,表示用户的open_id;member_type=department时候,表示部门的open_id
   194  	MemberIdTypeSimplelistGroupMemberUnionId      = "union_id"      // member_type=user时候,表示用户的union_id
   195  	MemberIdTypeSimplelistGroupMemberUserId       = "user_id"       // member_type=user时候,表示用户的user_id
   196  	MemberIdTypeSimplelistGroupMemberDepartmentId = "department_id" // member_type=department时候,表示部门的department_id
   197  )
   198  
   199  const (
   200  	MemberTypeSimplelistGroupMemberUser       = "user"       // 该次获取的用户组的用户成员
   201  	MemberTypeSimplelistGroupMemberDepartment = "department" // 该次获取的用户组的部门成员
   202  )
   203  
   204  const (
   205  	UserIdTypeListScopeOpenId  = "open_id"  // 用户的 open id
   206  	UserIdTypeListScopeUnionId = "union_id" // 用户的 union_id
   207  	UserIdTypeListScopeUserId  = "user_id"  // 用户的 user_id
   208  )
   209  
   210  const (
   211  	DepartmentIdTypeListScopeDepartmentId     = "department_id"      // 以自定义department_id来标识部门
   212  	DepartmentIdTypeListScopeOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
   213  )
   214  
   215  const (
   216  	DepartmentIdTypeBindDepartmentUnitDepartmentId     = "department_id"      // 以自定义department_id来标识部门
   217  	DepartmentIdTypeBindDepartmentUnitOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
   218  )
   219  
   220  const (
   221  	DepartmentIdTypeListDepartmentUnitDepartmentId     = "department_id"      // 以自定义department_id来标识部门
   222  	DepartmentIdTypeListDepartmentUnitOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
   223  )
   224  
   225  const (
   226  	DepartmentIdTypeUnbindDepartmentUnitDepartmentId     = "department_id"      // 以自定义department_id来标识部门
   227  	DepartmentIdTypeUnbindDepartmentUnitOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
   228  )
   229  
   230  const (
   231  	UserIdTypeBatchGetIdUserOpenId  = "open_id"  // 用户的 open id
   232  	UserIdTypeBatchGetIdUserUnionId = "union_id" // 用户的 union id
   233  	UserIdTypeBatchGetIdUserUserId  = "user_id"  // 用户的 user id
   234  )
   235  
   236  const (
   237  	GenderTypeUnkown = 0 // 未知
   238  	GenderTypeMale   = 1 // 男
   239  	GenderTypeFemale = 2 // 女
   240  
   241  )
   242  
   243  const (
   244  	UserIdTypeCreateUserUserId  = "user_id"  // 以user_id来识别用户
   245  	UserIdTypeCreateUserUnionId = "union_id" // 以union_id来识别用户
   246  	UserIdTypeCreateUserOpenId  = "open_id"  // 以open_id来识别用户
   247  )
   248  
   249  const (
   250  	DepartmentIdTypeCreateUserDepartmentId     = "department_id"      // 以自定义department_id来标识部门
   251  	DepartmentIdTypeCreateUserOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
   252  )
   253  
   254  const (
   255  	UserIdTypeDeleteUserUserId  = "user_id"  // 以user_id来识别用户
   256  	UserIdTypeDeleteUserUnionId = "union_id" // 以union_id来识别用户
   257  	UserIdTypeDeleteUserOpenId  = "open_id"  // 以open_id来识别用户
   258  )
   259  
   260  const (
   261  	UserIdTypeFindByDepartmentUserUserId  = "user_id"  // 以user_id来识别用户
   262  	UserIdTypeFindByDepartmentUserUnionId = "union_id" // 以union_id来识别用户
   263  	UserIdTypeFindByDepartmentUserOpenId  = "open_id"  // 以open_id来识别用户
   264  )
   265  
   266  const (
   267  	DepartmentIdTypeFindByDepartmentUserDepartmentId     = "department_id"      // 以自定义department_id来标识部门
   268  	DepartmentIdTypeFindByDepartmentUserOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
   269  )
   270  
   271  const (
   272  	UserIdTypeGetUserUserId  = "user_id"  // 以user_id来识别用户
   273  	UserIdTypeGetUserUnionId = "union_id" // 以union_id来识别用户
   274  	UserIdTypeGetUserOpenId  = "open_id"  // 以open_id来识别用户
   275  )
   276  
   277  const (
   278  	DepartmentIdTypeGetUserDepartmentId     = "department_id"      // 以自定义department_id来标识部门
   279  	DepartmentIdTypeGetUserOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
   280  )
   281  
   282  const (
   283  	UserIdTypeListUserUserId  = "user_id"  // 以user_id来识别用户
   284  	UserIdTypeListUserUnionId = "union_id" // 以union_id来识别用户
   285  	UserIdTypeListUserOpenId  = "open_id"  // 以open_id来识别用户
   286  )
   287  
   288  const (
   289  	DepartmentIdTypeListUserDepartmentId     = "department_id"      // 以自定义department_id来标识部门
   290  	DepartmentIdTypeListUserOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
   291  )
   292  
   293  const (
   294  	GenderTypePatchUserUnkown = 0 // 未知
   295  	GenderTypePatchUserMale   = 1 // 男
   296  	GenderTypePatchUserFemale = 2 // 女
   297  
   298  )
   299  
   300  const (
   301  	UserIdTypePatchUserUserId  = "user_id"  // 以user_id来识别用户
   302  	UserIdTypePatchUserUnionId = "union_id" // 以union_id来识别用户
   303  	UserIdTypePatchUserOpenId  = "open_id"  // 以open_id来识别用户
   304  )
   305  
   306  const (
   307  	DepartmentIdTypePatchUserDepartmentId     = "department_id"      // 以自定义department_id来标识部门
   308  	DepartmentIdTypePatchUserOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
   309  )
   310  
   311  const (
   312  	GenderTypeUpdateUserUnkown = 0 // 未知
   313  	GenderTypeUpdateUserMale   = 1 // 男
   314  	GenderTypeUpdateUserFemale = 2 // 女
   315  
   316  )
   317  
   318  const (
   319  	UserIdTypeUpdateUserUserId  = "user_id"  // 以user_id来识别用户
   320  	UserIdTypeUpdateUserUnionId = "union_id" // 以union_id来识别用户
   321  	UserIdTypeUpdateUserOpenId  = "open_id"  // 以open_id来识别用户
   322  )
   323  
   324  const (
   325  	DepartmentIdTypeUpdateUserDepartmentId     = "department_id"      // 以自定义department_id来标识部门
   326  	DepartmentIdTypeUpdateUserOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
   327  )
   328  
   329  type AvatarInfo struct {
   330  	Avatar72     *string `json:"avatar_72,omitempty"`     // 72*72像素头像链接
   331  	Avatar240    *string `json:"avatar_240,omitempty"`    // 240*240像素头像链接
   332  	Avatar640    *string `json:"avatar_640,omitempty"`    // 640*640像素头像链接
   333  	AvatarOrigin *string `json:"avatar_origin,omitempty"` // 原始头像链接
   334  }
   335  
   336  type AvatarInfoBuilder struct {
   337  	avatar72         string // 72*72像素头像链接
   338  	avatar72Flag     bool
   339  	avatar240        string // 240*240像素头像链接
   340  	avatar240Flag    bool
   341  	avatar640        string // 640*640像素头像链接
   342  	avatar640Flag    bool
   343  	avatarOrigin     string // 原始头像链接
   344  	avatarOriginFlag bool
   345  }
   346  
   347  func NewAvatarInfoBuilder() *AvatarInfoBuilder {
   348  	builder := &AvatarInfoBuilder{}
   349  	return builder
   350  }
   351  
   352  // 72*72像素头像链接
   353  //
   354  // 示例值:https://foo.icon.com/xxxx
   355  func (builder *AvatarInfoBuilder) Avatar72(avatar72 string) *AvatarInfoBuilder {
   356  	builder.avatar72 = avatar72
   357  	builder.avatar72Flag = true
   358  	return builder
   359  }
   360  
   361  // 240*240像素头像链接
   362  //
   363  // 示例值:https://foo.icon.com/xxxx
   364  func (builder *AvatarInfoBuilder) Avatar240(avatar240 string) *AvatarInfoBuilder {
   365  	builder.avatar240 = avatar240
   366  	builder.avatar240Flag = true
   367  	return builder
   368  }
   369  
   370  // 640*640像素头像链接
   371  //
   372  // 示例值:https://foo.icon.com/xxxx
   373  func (builder *AvatarInfoBuilder) Avatar640(avatar640 string) *AvatarInfoBuilder {
   374  	builder.avatar640 = avatar640
   375  	builder.avatar640Flag = true
   376  	return builder
   377  }
   378  
   379  // 原始头像链接
   380  //
   381  // 示例值:https://foo.icon.com/xxxx
   382  func (builder *AvatarInfoBuilder) AvatarOrigin(avatarOrigin string) *AvatarInfoBuilder {
   383  	builder.avatarOrigin = avatarOrigin
   384  	builder.avatarOriginFlag = true
   385  	return builder
   386  }
   387  
   388  func (builder *AvatarInfoBuilder) Build() *AvatarInfo {
   389  	req := &AvatarInfo{}
   390  	if builder.avatar72Flag {
   391  		req.Avatar72 = &builder.avatar72
   392  
   393  	}
   394  	if builder.avatar240Flag {
   395  		req.Avatar240 = &builder.avatar240
   396  
   397  	}
   398  	if builder.avatar640Flag {
   399  		req.Avatar640 = &builder.avatar640
   400  
   401  	}
   402  	if builder.avatarOriginFlag {
   403  		req.AvatarOrigin = &builder.avatarOrigin
   404  
   405  	}
   406  	return req
   407  }
   408  
   409  type CollaborationTenant struct {
   410  	TenantKey   *string     `json:"tenant_key,omitempty"`   // 关联租户ID
   411  	Name        *string     `json:"name,omitempty"`         // 关联租户实际名称
   412  	Nickname    *string     `json:"nickname,omitempty"`     // 别名
   413  	ConnectTime *int        `json:"connect_time,omitempty"` // 关联时间
   414  	Avatar      *AvatarInfo `json:"avatar,omitempty"`       // 租户icon信息
   415  }
   416  
   417  type CollaborationTenantBuilder struct {
   418  	tenantKey       string // 关联租户ID
   419  	tenantKeyFlag   bool
   420  	name            string // 关联租户实际名称
   421  	nameFlag        bool
   422  	nickname        string // 别名
   423  	nicknameFlag    bool
   424  	connectTime     int // 关联时间
   425  	connectTimeFlag bool
   426  	avatar          *AvatarInfo // 租户icon信息
   427  	avatarFlag      bool
   428  }
   429  
   430  func NewCollaborationTenantBuilder() *CollaborationTenantBuilder {
   431  	builder := &CollaborationTenantBuilder{}
   432  	return builder
   433  }
   434  
   435  // 关联租户ID
   436  //
   437  // 示例值:130426ba5b8f174f
   438  func (builder *CollaborationTenantBuilder) TenantKey(tenantKey string) *CollaborationTenantBuilder {
   439  	builder.tenantKey = tenantKey
   440  	builder.tenantKeyFlag = true
   441  	return builder
   442  }
   443  
   444  // 关联租户实际名称
   445  //
   446  // 示例值:testName
   447  func (builder *CollaborationTenantBuilder) Name(name string) *CollaborationTenantBuilder {
   448  	builder.name = name
   449  	builder.nameFlag = true
   450  	return builder
   451  }
   452  
   453  // 别名
   454  //
   455  // 示例值:testNickName
   456  func (builder *CollaborationTenantBuilder) Nickname(nickname string) *CollaborationTenantBuilder {
   457  	builder.nickname = nickname
   458  	builder.nicknameFlag = true
   459  	return builder
   460  }
   461  
   462  // 关联时间
   463  //
   464  // 示例值:1642041636
   465  func (builder *CollaborationTenantBuilder) ConnectTime(connectTime int) *CollaborationTenantBuilder {
   466  	builder.connectTime = connectTime
   467  	builder.connectTimeFlag = true
   468  	return builder
   469  }
   470  
   471  // 租户icon信息
   472  //
   473  // 示例值:
   474  func (builder *CollaborationTenantBuilder) Avatar(avatar *AvatarInfo) *CollaborationTenantBuilder {
   475  	builder.avatar = avatar
   476  	builder.avatarFlag = true
   477  	return builder
   478  }
   479  
   480  func (builder *CollaborationTenantBuilder) Build() *CollaborationTenant {
   481  	req := &CollaborationTenant{}
   482  	if builder.tenantKeyFlag {
   483  		req.TenantKey = &builder.tenantKey
   484  
   485  	}
   486  	if builder.nameFlag {
   487  		req.Name = &builder.name
   488  
   489  	}
   490  	if builder.nicknameFlag {
   491  		req.Nickname = &builder.nickname
   492  
   493  	}
   494  	if builder.connectTimeFlag {
   495  		req.ConnectTime = &builder.connectTime
   496  
   497  	}
   498  	if builder.avatarFlag {
   499  		req.Avatar = builder.avatar
   500  	}
   501  	return req
   502  }
   503  
   504  type CustomAttr struct {
   505  	Id       *string            `json:"id,omitempty"`        // 自定义字段id
   506  	Type     *string            `json:"type,omitempty"`      // 自定义字段类型,可选值有:;- `TEXT`:纯文本,用于纯文本描述人员,如备注;- `HREF`:静态 URL,用于人员 Profile 跳转链接;- `ENUMERATION`:枚举,用于结构化描述人员,如民族;- `GENERIC_USER`:用户,用于描述人和人关系,如 HRBP;- `PICTURE_ENUM`:枚举图片,以结构化的图片描述人员,如在人员 Profile 展示荣誉徽章
   507  	Options  *CustomAttrOptions `json:"options,omitempty"`   // 选项定义,当type为`ENUMERATION`或者`PICTURE_ENUM`时此项有值,列举所有可选项
   508  	I18nName []*I18nContent     `json:"i18n_name,omitempty"` // 自定义字段的字段名称
   509  }
   510  
   511  type CustomAttrBuilder struct {
   512  	id           string // 自定义字段id
   513  	idFlag       bool
   514  	type_        string // 自定义字段类型,可选值有:;- `TEXT`:纯文本,用于纯文本描述人员,如备注;- `HREF`:静态 URL,用于人员 Profile 跳转链接;- `ENUMERATION`:枚举,用于结构化描述人员,如民族;- `GENERIC_USER`:用户,用于描述人和人关系,如 HRBP;- `PICTURE_ENUM`:枚举图片,以结构化的图片描述人员,如在人员 Profile 展示荣誉徽章
   515  	typeFlag     bool
   516  	options      *CustomAttrOptions // 选项定义,当type为`ENUMERATION`或者`PICTURE_ENUM`时此项有值,列举所有可选项
   517  	optionsFlag  bool
   518  	i18nName     []*I18nContent // 自定义字段的字段名称
   519  	i18nNameFlag bool
   520  }
   521  
   522  func NewCustomAttrBuilder() *CustomAttrBuilder {
   523  	builder := &CustomAttrBuilder{}
   524  	return builder
   525  }
   526  
   527  // 自定义字段id
   528  //
   529  // 示例值:C-6965457429001748507
   530  func (builder *CustomAttrBuilder) Id(id string) *CustomAttrBuilder {
   531  	builder.id = id
   532  	builder.idFlag = true
   533  	return builder
   534  }
   535  
   536  // 自定义字段类型,可选值有:;- `TEXT`:纯文本,用于纯文本描述人员,如备注;- `HREF`:静态 URL,用于人员 Profile 跳转链接;- `ENUMERATION`:枚举,用于结构化描述人员,如民族;- `GENERIC_USER`:用户,用于描述人和人关系,如 HRBP;- `PICTURE_ENUM`:枚举图片,以结构化的图片描述人员,如在人员 Profile 展示荣誉徽章
   537  //
   538  // 示例值:TEXT
   539  func (builder *CustomAttrBuilder) Type(type_ string) *CustomAttrBuilder {
   540  	builder.type_ = type_
   541  	builder.typeFlag = true
   542  	return builder
   543  }
   544  
   545  // 选项定义,当type为`ENUMERATION`或者`PICTURE_ENUM`时此项有值,列举所有可选项
   546  //
   547  // 示例值:{}
   548  func (builder *CustomAttrBuilder) Options(options *CustomAttrOptions) *CustomAttrBuilder {
   549  	builder.options = options
   550  	builder.optionsFlag = true
   551  	return builder
   552  }
   553  
   554  // 自定义字段的字段名称
   555  //
   556  // 示例值:{}
   557  func (builder *CustomAttrBuilder) I18nName(i18nName []*I18nContent) *CustomAttrBuilder {
   558  	builder.i18nName = i18nName
   559  	builder.i18nNameFlag = true
   560  	return builder
   561  }
   562  
   563  func (builder *CustomAttrBuilder) Build() *CustomAttr {
   564  	req := &CustomAttr{}
   565  	if builder.idFlag {
   566  		req.Id = &builder.id
   567  
   568  	}
   569  	if builder.typeFlag {
   570  		req.Type = &builder.type_
   571  
   572  	}
   573  	if builder.optionsFlag {
   574  		req.Options = builder.options
   575  	}
   576  	if builder.i18nNameFlag {
   577  		req.I18nName = builder.i18nName
   578  	}
   579  	return req
   580  }
   581  
   582  type CustomAttrEvent struct {
   583  	ContactFieldKey []string `json:"contact_field_key,omitempty"` // 通讯录字段键值
   584  	AllowOpenQuery  *bool    `json:"allow_open_query,omitempty"`  // 开关是否打开
   585  }
   586  
   587  type CustomAttrEventBuilder struct {
   588  	contactFieldKey     []string // 通讯录字段键值
   589  	contactFieldKeyFlag bool
   590  	allowOpenQuery      bool // 开关是否打开
   591  	allowOpenQueryFlag  bool
   592  }
   593  
   594  func NewCustomAttrEventBuilder() *CustomAttrEventBuilder {
   595  	builder := &CustomAttrEventBuilder{}
   596  	return builder
   597  }
   598  
   599  // 通讯录字段键值
   600  //
   601  // 示例值:
   602  func (builder *CustomAttrEventBuilder) ContactFieldKey(contactFieldKey []string) *CustomAttrEventBuilder {
   603  	builder.contactFieldKey = contactFieldKey
   604  	builder.contactFieldKeyFlag = true
   605  	return builder
   606  }
   607  
   608  // 开关是否打开
   609  //
   610  // 示例值:true
   611  func (builder *CustomAttrEventBuilder) AllowOpenQuery(allowOpenQuery bool) *CustomAttrEventBuilder {
   612  	builder.allowOpenQuery = allowOpenQuery
   613  	builder.allowOpenQueryFlag = true
   614  	return builder
   615  }
   616  
   617  func (builder *CustomAttrEventBuilder) Build() *CustomAttrEvent {
   618  	req := &CustomAttrEvent{}
   619  	if builder.contactFieldKeyFlag {
   620  		req.ContactFieldKey = builder.contactFieldKey
   621  	}
   622  	if builder.allowOpenQueryFlag {
   623  		req.AllowOpenQuery = &builder.allowOpenQuery
   624  
   625  	}
   626  	return req
   627  }
   628  
   629  type CustomAttrGenericUser struct {
   630  	Id   *string `json:"id,omitempty"`   // 用户的user_id ,具体参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
   631  	Type *int    `json:"type,omitempty"` // 用户类型:  ;1:用户;;目前固定为1,表示用户类型
   632  }
   633  
   634  type CustomAttrGenericUserBuilder struct {
   635  	id       string // 用户的user_id ,具体参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
   636  	idFlag   bool
   637  	type_    int // 用户类型:  ;1:用户;;目前固定为1,表示用户类型
   638  	typeFlag bool
   639  }
   640  
   641  func NewCustomAttrGenericUserBuilder() *CustomAttrGenericUserBuilder {
   642  	builder := &CustomAttrGenericUserBuilder{}
   643  	return builder
   644  }
   645  
   646  // 用户的user_id ,具体参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
   647  //
   648  // 示例值:9b2fabg5
   649  func (builder *CustomAttrGenericUserBuilder) Id(id string) *CustomAttrGenericUserBuilder {
   650  	builder.id = id
   651  	builder.idFlag = true
   652  	return builder
   653  }
   654  
   655  // 用户类型:  ;1:用户;;目前固定为1,表示用户类型
   656  //
   657  // 示例值:1
   658  func (builder *CustomAttrGenericUserBuilder) Type(type_ int) *CustomAttrGenericUserBuilder {
   659  	builder.type_ = type_
   660  	builder.typeFlag = true
   661  	return builder
   662  }
   663  
   664  func (builder *CustomAttrGenericUserBuilder) Build() *CustomAttrGenericUser {
   665  	req := &CustomAttrGenericUser{}
   666  	if builder.idFlag {
   667  		req.Id = &builder.id
   668  
   669  	}
   670  	if builder.typeFlag {
   671  		req.Type = &builder.type_
   672  
   673  	}
   674  	return req
   675  }
   676  
   677  type CustomAttrOption struct {
   678  	Id    *string `json:"id,omitempty"`    // 枚举类型选项id
   679  	Value *string `json:"value,omitempty"` // 枚举选项值,当option_type为`TEXT`为文本值,当option_type为`PICTURE`时为图片链接
   680  	Name  *string `json:"name,omitempty"`  // 名称,仅option_type为PICTURE时有效
   681  }
   682  
   683  type CustomAttrOptionBuilder struct {
   684  	id        string // 枚举类型选项id
   685  	idFlag    bool
   686  	value     string // 枚举选项值,当option_type为`TEXT`为文本值,当option_type为`PICTURE`时为图片链接
   687  	valueFlag bool
   688  	name      string // 名称,仅option_type为PICTURE时有效
   689  	nameFlag  bool
   690  }
   691  
   692  func NewCustomAttrOptionBuilder() *CustomAttrOptionBuilder {
   693  	builder := &CustomAttrOptionBuilder{}
   694  	return builder
   695  }
   696  
   697  // 枚举类型选项id
   698  //
   699  // 示例值:qasdefgr
   700  func (builder *CustomAttrOptionBuilder) Id(id string) *CustomAttrOptionBuilder {
   701  	builder.id = id
   702  	builder.idFlag = true
   703  	return builder
   704  }
   705  
   706  // 枚举选项值,当option_type为`TEXT`为文本值,当option_type为`PICTURE`时为图片链接
   707  //
   708  // 示例值:Option
   709  func (builder *CustomAttrOptionBuilder) Value(value string) *CustomAttrOptionBuilder {
   710  	builder.value = value
   711  	builder.valueFlag = true
   712  	return builder
   713  }
   714  
   715  // 名称,仅option_type为PICTURE时有效
   716  //
   717  // 示例值:Name
   718  func (builder *CustomAttrOptionBuilder) Name(name string) *CustomAttrOptionBuilder {
   719  	builder.name = name
   720  	builder.nameFlag = true
   721  	return builder
   722  }
   723  
   724  func (builder *CustomAttrOptionBuilder) Build() *CustomAttrOption {
   725  	req := &CustomAttrOption{}
   726  	if builder.idFlag {
   727  		req.Id = &builder.id
   728  
   729  	}
   730  	if builder.valueFlag {
   731  		req.Value = &builder.value
   732  
   733  	}
   734  	if builder.nameFlag {
   735  		req.Name = &builder.name
   736  
   737  	}
   738  	return req
   739  }
   740  
   741  type CustomAttrOptions struct {
   742  	DefaultOptionId *string             `json:"default_option_id,omitempty"` // 默认选项id
   743  	OptionType      *string             `json:"option_type,omitempty"`       // 选项类型
   744  	Options         []*CustomAttrOption `json:"options,omitempty"`           // 选项列表
   745  }
   746  
   747  type CustomAttrOptionsBuilder struct {
   748  	defaultOptionId     string // 默认选项id
   749  	defaultOptionIdFlag bool
   750  	optionType          string // 选项类型
   751  	optionTypeFlag      bool
   752  	options             []*CustomAttrOption // 选项列表
   753  	optionsFlag         bool
   754  }
   755  
   756  func NewCustomAttrOptionsBuilder() *CustomAttrOptionsBuilder {
   757  	builder := &CustomAttrOptionsBuilder{}
   758  	return builder
   759  }
   760  
   761  // 默认选项id
   762  //
   763  // 示例值:qasdefgr
   764  func (builder *CustomAttrOptionsBuilder) DefaultOptionId(defaultOptionId string) *CustomAttrOptionsBuilder {
   765  	builder.defaultOptionId = defaultOptionId
   766  	builder.defaultOptionIdFlag = true
   767  	return builder
   768  }
   769  
   770  // 选项类型
   771  //
   772  // 示例值:TEXT
   773  func (builder *CustomAttrOptionsBuilder) OptionType(optionType string) *CustomAttrOptionsBuilder {
   774  	builder.optionType = optionType
   775  	builder.optionTypeFlag = true
   776  	return builder
   777  }
   778  
   779  // 选项列表
   780  //
   781  // 示例值:[]
   782  func (builder *CustomAttrOptionsBuilder) Options(options []*CustomAttrOption) *CustomAttrOptionsBuilder {
   783  	builder.options = options
   784  	builder.optionsFlag = true
   785  	return builder
   786  }
   787  
   788  func (builder *CustomAttrOptionsBuilder) Build() *CustomAttrOptions {
   789  	req := &CustomAttrOptions{}
   790  	if builder.defaultOptionIdFlag {
   791  		req.DefaultOptionId = &builder.defaultOptionId
   792  
   793  	}
   794  	if builder.optionTypeFlag {
   795  		req.OptionType = &builder.optionType
   796  
   797  	}
   798  	if builder.optionsFlag {
   799  		req.Options = builder.options
   800  	}
   801  	return req
   802  }
   803  
   804  type Department struct {
   805  	Name               *string             `json:"name,omitempty"`                 // 部门名称
   806  	I18nName           *DepartmentI18nName `json:"i18n_name,omitempty"`            // 国际化的部门名称
   807  	ParentDepartmentId *string             `json:"parent_department_id,omitempty"` // 父部门的ID;;* 创建根部门,该参数值为 “0”
   808  	DepartmentId       *string             `json:"department_id,omitempty"`        // 本部门的自定义部门ID;;注意:除需要满足正则规则外,同时不能以`od-`开头
   809  	OpenDepartmentId   *string             `json:"open_department_id,omitempty"`   // 部门的open_id,类型与通过请求的查询参数传入的department_id_type相同
   810  	LeaderUserId       *string             `json:"leader_user_id,omitempty"`       // 部门主管用户ID
   811  	ChatId             *string             `json:"chat_id,omitempty"`              // 部门群ID
   812  	Order              *string             `json:"order,omitempty"`                // 部门的排序,即部门在其同级部门的展示顺序
   813  	UnitIds            []string            `json:"unit_ids,omitempty"`             // 部门单位自定义ID列表,当前只支持一个
   814  	MemberCount        *int                `json:"member_count,omitempty"`         // 部门下用户的个数
   815  	Status             *DepartmentStatus   `json:"status,omitempty"`               // 部门状态
   816  	CreateGroupChat    *bool               `json:"create_group_chat,omitempty"`    // 是否创建部门群,默认不创建
   817  	Leaders            []*DepartmentLeader `json:"leaders,omitempty"`              // 部门负责人
   818  }
   819  
   820  type DepartmentBuilder struct {
   821  	name                   string // 部门名称
   822  	nameFlag               bool
   823  	i18nName               *DepartmentI18nName // 国际化的部门名称
   824  	i18nNameFlag           bool
   825  	parentDepartmentId     string // 父部门的ID;;* 创建根部门,该参数值为 “0”
   826  	parentDepartmentIdFlag bool
   827  	departmentId           string // 本部门的自定义部门ID;;注意:除需要满足正则规则外,同时不能以`od-`开头
   828  	departmentIdFlag       bool
   829  	openDepartmentId       string // 部门的open_id,类型与通过请求的查询参数传入的department_id_type相同
   830  	openDepartmentIdFlag   bool
   831  	leaderUserId           string // 部门主管用户ID
   832  	leaderUserIdFlag       bool
   833  	chatId                 string // 部门群ID
   834  	chatIdFlag             bool
   835  	order                  string // 部门的排序,即部门在其同级部门的展示顺序
   836  	orderFlag              bool
   837  	unitIds                []string // 部门单位自定义ID列表,当前只支持一个
   838  	unitIdsFlag            bool
   839  	memberCount            int // 部门下用户的个数
   840  	memberCountFlag        bool
   841  	status                 *DepartmentStatus // 部门状态
   842  	statusFlag             bool
   843  	createGroupChat        bool // 是否创建部门群,默认不创建
   844  	createGroupChatFlag    bool
   845  	leaders                []*DepartmentLeader // 部门负责人
   846  	leadersFlag            bool
   847  }
   848  
   849  func NewDepartmentBuilder() *DepartmentBuilder {
   850  	builder := &DepartmentBuilder{}
   851  	return builder
   852  }
   853  
   854  // 部门名称
   855  //
   856  // 示例值:DemoName
   857  func (builder *DepartmentBuilder) Name(name string) *DepartmentBuilder {
   858  	builder.name = name
   859  	builder.nameFlag = true
   860  	return builder
   861  }
   862  
   863  // 国际化的部门名称
   864  //
   865  // 示例值:
   866  func (builder *DepartmentBuilder) I18nName(i18nName *DepartmentI18nName) *DepartmentBuilder {
   867  	builder.i18nName = i18nName
   868  	builder.i18nNameFlag = true
   869  	return builder
   870  }
   871  
   872  // 父部门的ID;;* 创建根部门,该参数值为 “0”
   873  //
   874  // 示例值:D067
   875  func (builder *DepartmentBuilder) ParentDepartmentId(parentDepartmentId string) *DepartmentBuilder {
   876  	builder.parentDepartmentId = parentDepartmentId
   877  	builder.parentDepartmentIdFlag = true
   878  	return builder
   879  }
   880  
   881  // 本部门的自定义部门ID;;注意:除需要满足正则规则外,同时不能以`od-`开头
   882  //
   883  // 示例值:D096
   884  func (builder *DepartmentBuilder) DepartmentId(departmentId string) *DepartmentBuilder {
   885  	builder.departmentId = departmentId
   886  	builder.departmentIdFlag = true
   887  	return builder
   888  }
   889  
   890  // 部门的open_id,类型与通过请求的查询参数传入的department_id_type相同
   891  //
   892  // 示例值:od-4e6ac4d14bcd5071a37a39de902c7141
   893  func (builder *DepartmentBuilder) OpenDepartmentId(openDepartmentId string) *DepartmentBuilder {
   894  	builder.openDepartmentId = openDepartmentId
   895  	builder.openDepartmentIdFlag = true
   896  	return builder
   897  }
   898  
   899  // 部门主管用户ID
   900  //
   901  // 示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
   902  func (builder *DepartmentBuilder) LeaderUserId(leaderUserId string) *DepartmentBuilder {
   903  	builder.leaderUserId = leaderUserId
   904  	builder.leaderUserIdFlag = true
   905  	return builder
   906  }
   907  
   908  // 部门群ID
   909  //
   910  // 示例值:oc_5ad11d72b830411d72b836c20
   911  func (builder *DepartmentBuilder) ChatId(chatId string) *DepartmentBuilder {
   912  	builder.chatId = chatId
   913  	builder.chatIdFlag = true
   914  	return builder
   915  }
   916  
   917  // 部门的排序,即部门在其同级部门的展示顺序
   918  //
   919  // 示例值:100
   920  func (builder *DepartmentBuilder) Order(order string) *DepartmentBuilder {
   921  	builder.order = order
   922  	builder.orderFlag = true
   923  	return builder
   924  }
   925  
   926  // 部门单位自定义ID列表,当前只支持一个
   927  //
   928  // 示例值:custom_unit_id
   929  func (builder *DepartmentBuilder) UnitIds(unitIds []string) *DepartmentBuilder {
   930  	builder.unitIds = unitIds
   931  	builder.unitIdsFlag = true
   932  	return builder
   933  }
   934  
   935  // 部门下用户的个数
   936  //
   937  // 示例值:100
   938  func (builder *DepartmentBuilder) MemberCount(memberCount int) *DepartmentBuilder {
   939  	builder.memberCount = memberCount
   940  	builder.memberCountFlag = true
   941  	return builder
   942  }
   943  
   944  // 部门状态
   945  //
   946  // 示例值:
   947  func (builder *DepartmentBuilder) Status(status *DepartmentStatus) *DepartmentBuilder {
   948  	builder.status = status
   949  	builder.statusFlag = true
   950  	return builder
   951  }
   952  
   953  // 是否创建部门群,默认不创建
   954  //
   955  // 示例值:false
   956  func (builder *DepartmentBuilder) CreateGroupChat(createGroupChat bool) *DepartmentBuilder {
   957  	builder.createGroupChat = createGroupChat
   958  	builder.createGroupChatFlag = true
   959  	return builder
   960  }
   961  
   962  // 部门负责人
   963  //
   964  // 示例值:
   965  func (builder *DepartmentBuilder) Leaders(leaders []*DepartmentLeader) *DepartmentBuilder {
   966  	builder.leaders = leaders
   967  	builder.leadersFlag = true
   968  	return builder
   969  }
   970  
   971  func (builder *DepartmentBuilder) Build() *Department {
   972  	req := &Department{}
   973  	if builder.nameFlag {
   974  		req.Name = &builder.name
   975  
   976  	}
   977  	if builder.i18nNameFlag {
   978  		req.I18nName = builder.i18nName
   979  	}
   980  	if builder.parentDepartmentIdFlag {
   981  		req.ParentDepartmentId = &builder.parentDepartmentId
   982  
   983  	}
   984  	if builder.departmentIdFlag {
   985  		req.DepartmentId = &builder.departmentId
   986  
   987  	}
   988  	if builder.openDepartmentIdFlag {
   989  		req.OpenDepartmentId = &builder.openDepartmentId
   990  
   991  	}
   992  	if builder.leaderUserIdFlag {
   993  		req.LeaderUserId = &builder.leaderUserId
   994  
   995  	}
   996  	if builder.chatIdFlag {
   997  		req.ChatId = &builder.chatId
   998  
   999  	}
  1000  	if builder.orderFlag {
  1001  		req.Order = &builder.order
  1002  
  1003  	}
  1004  	if builder.unitIdsFlag {
  1005  		req.UnitIds = builder.unitIds
  1006  	}
  1007  	if builder.memberCountFlag {
  1008  		req.MemberCount = &builder.memberCount
  1009  
  1010  	}
  1011  	if builder.statusFlag {
  1012  		req.Status = builder.status
  1013  	}
  1014  	if builder.createGroupChatFlag {
  1015  		req.CreateGroupChat = &builder.createGroupChat
  1016  
  1017  	}
  1018  	if builder.leadersFlag {
  1019  		req.Leaders = builder.leaders
  1020  	}
  1021  	return req
  1022  }
  1023  
  1024  type DepartmentLeader struct {
  1025  	LeaderType *int    `json:"leaderType,omitempty"` // 负责人类型
  1026  	LeaderID   *string `json:"leaderID,omitempty"`   // 负责人ID
  1027  }
  1028  
  1029  type DepartmentLeaderBuilder struct {
  1030  	leaderType     int // 负责人类型
  1031  	leaderTypeFlag bool
  1032  	leaderID       string // 负责人ID
  1033  	leaderIDFlag   bool
  1034  }
  1035  
  1036  func NewDepartmentLeaderBuilder() *DepartmentLeaderBuilder {
  1037  	builder := &DepartmentLeaderBuilder{}
  1038  	return builder
  1039  }
  1040  
  1041  // 负责人类型
  1042  //
  1043  // 示例值:1
  1044  func (builder *DepartmentLeaderBuilder) LeaderType(leaderType int) *DepartmentLeaderBuilder {
  1045  	builder.leaderType = leaderType
  1046  	builder.leaderTypeFlag = true
  1047  	return builder
  1048  }
  1049  
  1050  // 负责人ID
  1051  //
  1052  // 示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
  1053  func (builder *DepartmentLeaderBuilder) LeaderID(leaderID string) *DepartmentLeaderBuilder {
  1054  	builder.leaderID = leaderID
  1055  	builder.leaderIDFlag = true
  1056  	return builder
  1057  }
  1058  
  1059  func (builder *DepartmentLeaderBuilder) Build() *DepartmentLeader {
  1060  	req := &DepartmentLeader{}
  1061  	if builder.leaderTypeFlag {
  1062  		req.LeaderType = &builder.leaderType
  1063  
  1064  	}
  1065  	if builder.leaderIDFlag {
  1066  		req.LeaderID = &builder.leaderID
  1067  
  1068  	}
  1069  	return req
  1070  }
  1071  
  1072  type DepartmentCount struct {
  1073  	DepartmentId          *string `json:"department_id,omitempty"`           // 部门ID
  1074  	DirectDepartmentCount *int    `json:"direct_department_count,omitempty"` // 部门下的直属部门数量
  1075  	DirectUserCount       *int    `json:"direct_user_count,omitempty"`       // 部门下的直属成员数量,包含部门负责人
  1076  	DepartmentCount       *int    `json:"department_count,omitempty"`        // 部门下所有部门的数量,包含递归的子部门
  1077  	UserCount             *int    `json:"user_count,omitempty"`              // 部门下所有成员数,包含递归子部门的成员,包含部门负责人
  1078  }
  1079  
  1080  type DepartmentCountBuilder struct {
  1081  	departmentId              string // 部门ID
  1082  	departmentIdFlag          bool
  1083  	directDepartmentCount     int // 部门下的直属部门数量
  1084  	directDepartmentCountFlag bool
  1085  	directUserCount           int // 部门下的直属成员数量,包含部门负责人
  1086  	directUserCountFlag       bool
  1087  	departmentCount           int // 部门下所有部门的数量,包含递归的子部门
  1088  	departmentCountFlag       bool
  1089  	userCount                 int // 部门下所有成员数,包含递归子部门的成员,包含部门负责人
  1090  	userCountFlag             bool
  1091  }
  1092  
  1093  func NewDepartmentCountBuilder() *DepartmentCountBuilder {
  1094  	builder := &DepartmentCountBuilder{}
  1095  	return builder
  1096  }
  1097  
  1098  // 部门ID
  1099  //
  1100  // 示例值:
  1101  func (builder *DepartmentCountBuilder) DepartmentId(departmentId string) *DepartmentCountBuilder {
  1102  	builder.departmentId = departmentId
  1103  	builder.departmentIdFlag = true
  1104  	return builder
  1105  }
  1106  
  1107  // 部门下的直属部门数量
  1108  //
  1109  // 示例值:
  1110  func (builder *DepartmentCountBuilder) DirectDepartmentCount(directDepartmentCount int) *DepartmentCountBuilder {
  1111  	builder.directDepartmentCount = directDepartmentCount
  1112  	builder.directDepartmentCountFlag = true
  1113  	return builder
  1114  }
  1115  
  1116  // 部门下的直属成员数量,包含部门负责人
  1117  //
  1118  // 示例值:
  1119  func (builder *DepartmentCountBuilder) DirectUserCount(directUserCount int) *DepartmentCountBuilder {
  1120  	builder.directUserCount = directUserCount
  1121  	builder.directUserCountFlag = true
  1122  	return builder
  1123  }
  1124  
  1125  // 部门下所有部门的数量,包含递归的子部门
  1126  //
  1127  // 示例值:
  1128  func (builder *DepartmentCountBuilder) DepartmentCount(departmentCount int) *DepartmentCountBuilder {
  1129  	builder.departmentCount = departmentCount
  1130  	builder.departmentCountFlag = true
  1131  	return builder
  1132  }
  1133  
  1134  // 部门下所有成员数,包含递归子部门的成员,包含部门负责人
  1135  //
  1136  // 示例值:
  1137  func (builder *DepartmentCountBuilder) UserCount(userCount int) *DepartmentCountBuilder {
  1138  	builder.userCount = userCount
  1139  	builder.userCountFlag = true
  1140  	return builder
  1141  }
  1142  
  1143  func (builder *DepartmentCountBuilder) Build() *DepartmentCount {
  1144  	req := &DepartmentCount{}
  1145  	if builder.departmentIdFlag {
  1146  		req.DepartmentId = &builder.departmentId
  1147  
  1148  	}
  1149  	if builder.directDepartmentCountFlag {
  1150  		req.DirectDepartmentCount = &builder.directDepartmentCount
  1151  
  1152  	}
  1153  	if builder.directUserCountFlag {
  1154  		req.DirectUserCount = &builder.directUserCount
  1155  
  1156  	}
  1157  	if builder.departmentCountFlag {
  1158  		req.DepartmentCount = &builder.departmentCount
  1159  
  1160  	}
  1161  	if builder.userCountFlag {
  1162  		req.UserCount = &builder.userCount
  1163  
  1164  	}
  1165  	return req
  1166  }
  1167  
  1168  type DepartmentEvent struct {
  1169  	Name               *string `json:"name,omitempty"`                 // 部门名称
  1170  	ParentDepartmentId *string `json:"parent_department_id,omitempty"` // 父部门的部门open_department_id [部门相关ID概念](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0)
  1171  	DepartmentId       *string `json:"department_id,omitempty"`        // 本部门的department_id [部门相关ID概念](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0)
  1172  	OpenDepartmentId   *string `json:"open_department_id,omitempty"`   // 部门的open_department_id [部门相关ID概念](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0)
  1173  	LeaderUserId       *string `json:"leader_user_id,omitempty"`       // 部门主管用户open_id [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  1174  	ChatId             *string `json:"chat_id,omitempty"`              // 部门群ID
  1175  	Order              *int    `json:"order,omitempty"`                // 部门的排序
  1176  
  1177  	Status  *DepartmentStatus   `json:"status,omitempty"`  // 部门状态
  1178  	Leaders []*DepartmentLeader `json:"leaders,omitempty"` // 部门负责人
  1179  }
  1180  
  1181  type DepartmentEventBuilder struct {
  1182  	name                   string // 部门名称
  1183  	nameFlag               bool
  1184  	parentDepartmentId     string // 父部门的部门open_department_id [部门相关ID概念](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0)
  1185  	parentDepartmentIdFlag bool
  1186  	departmentId           string // 本部门的department_id [部门相关ID概念](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0)
  1187  	departmentIdFlag       bool
  1188  	openDepartmentId       string // 部门的open_department_id [部门相关ID概念](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0)
  1189  	openDepartmentIdFlag   bool
  1190  	leaderUserId           string // 部门主管用户open_id [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  1191  	leaderUserIdFlag       bool
  1192  	chatId                 string // 部门群ID
  1193  	chatIdFlag             bool
  1194  	order                  int // 部门的排序
  1195  	orderFlag              bool
  1196  
  1197  	status      *DepartmentStatus // 部门状态
  1198  	statusFlag  bool
  1199  	leaders     []*DepartmentLeader // 部门负责人
  1200  	leadersFlag bool
  1201  }
  1202  
  1203  func NewDepartmentEventBuilder() *DepartmentEventBuilder {
  1204  	builder := &DepartmentEventBuilder{}
  1205  	return builder
  1206  }
  1207  
  1208  // 部门名称
  1209  //
  1210  // 示例值:测试部门
  1211  func (builder *DepartmentEventBuilder) Name(name string) *DepartmentEventBuilder {
  1212  	builder.name = name
  1213  	builder.nameFlag = true
  1214  	return builder
  1215  }
  1216  
  1217  // 父部门的部门open_department_id [部门相关ID概念](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0)
  1218  //
  1219  // 示例值:jkfsd89782
  1220  func (builder *DepartmentEventBuilder) ParentDepartmentId(parentDepartmentId string) *DepartmentEventBuilder {
  1221  	builder.parentDepartmentId = parentDepartmentId
  1222  	builder.parentDepartmentIdFlag = true
  1223  	return builder
  1224  }
  1225  
  1226  // 本部门的department_id [部门相关ID概念](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0)
  1227  //
  1228  // 示例值:yd7sa8yf2j
  1229  func (builder *DepartmentEventBuilder) DepartmentId(departmentId string) *DepartmentEventBuilder {
  1230  	builder.departmentId = departmentId
  1231  	builder.departmentIdFlag = true
  1232  	return builder
  1233  }
  1234  
  1235  // 部门的open_department_id [部门相关ID概念](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0)
  1236  //
  1237  // 示例值:od_j10j52hjksd9g0isdfg43
  1238  func (builder *DepartmentEventBuilder) OpenDepartmentId(openDepartmentId string) *DepartmentEventBuilder {
  1239  	builder.openDepartmentId = openDepartmentId
  1240  	builder.openDepartmentIdFlag = true
  1241  	return builder
  1242  }
  1243  
  1244  // 部门主管用户open_id [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  1245  //
  1246  // 示例值:ou_3j1kh45jk18fgh23hf
  1247  func (builder *DepartmentEventBuilder) LeaderUserId(leaderUserId string) *DepartmentEventBuilder {
  1248  	builder.leaderUserId = leaderUserId
  1249  	builder.leaderUserIdFlag = true
  1250  	return builder
  1251  }
  1252  
  1253  // 部门群ID
  1254  //
  1255  // 示例值:oc_uiy325uy23bnv48gdf
  1256  func (builder *DepartmentEventBuilder) ChatId(chatId string) *DepartmentEventBuilder {
  1257  	builder.chatId = chatId
  1258  	builder.chatIdFlag = true
  1259  	return builder
  1260  }
  1261  
  1262  // 部门的排序
  1263  //
  1264  // 示例值:100
  1265  func (builder *DepartmentEventBuilder) Order(order int) *DepartmentEventBuilder {
  1266  	builder.order = order
  1267  	builder.orderFlag = true
  1268  	return builder
  1269  }
  1270  
  1271  // 部门状态
  1272  //
  1273  // 示例值:
  1274  func (builder *DepartmentEventBuilder) Status(status *DepartmentStatus) *DepartmentEventBuilder {
  1275  	builder.status = status
  1276  	builder.statusFlag = true
  1277  	return builder
  1278  }
  1279  
  1280  // 部门负责人
  1281  //
  1282  // 示例值:
  1283  func (builder *DepartmentEventBuilder) Leaders(leaders []*DepartmentLeader) *DepartmentEventBuilder {
  1284  	builder.leaders = leaders
  1285  	builder.leadersFlag = true
  1286  	return builder
  1287  }
  1288  
  1289  func (builder *DepartmentEventBuilder) Build() *DepartmentEvent {
  1290  	req := &DepartmentEvent{}
  1291  	if builder.nameFlag {
  1292  		req.Name = &builder.name
  1293  
  1294  	}
  1295  	if builder.parentDepartmentIdFlag {
  1296  		req.ParentDepartmentId = &builder.parentDepartmentId
  1297  
  1298  	}
  1299  	if builder.departmentIdFlag {
  1300  		req.DepartmentId = &builder.departmentId
  1301  
  1302  	}
  1303  	if builder.openDepartmentIdFlag {
  1304  		req.OpenDepartmentId = &builder.openDepartmentId
  1305  
  1306  	}
  1307  	if builder.leaderUserIdFlag {
  1308  		req.LeaderUserId = &builder.leaderUserId
  1309  
  1310  	}
  1311  	if builder.chatIdFlag {
  1312  		req.ChatId = &builder.chatId
  1313  
  1314  	}
  1315  	if builder.orderFlag {
  1316  		req.Order = &builder.order
  1317  
  1318  	}
  1319  
  1320  	if builder.statusFlag {
  1321  		req.Status = builder.status
  1322  	}
  1323  	if builder.leadersFlag {
  1324  		req.Leaders = builder.leaders
  1325  	}
  1326  	return req
  1327  }
  1328  
  1329  type DepartmentI18nName struct {
  1330  	ZhCn *string `json:"zh_cn,omitempty"` // 部门的中文名
  1331  	JaJp *string `json:"ja_jp,omitempty"` // 部门的日文名
  1332  	EnUs *string `json:"en_us,omitempty"` // 部门的英文名
  1333  }
  1334  
  1335  type DepartmentI18nNameBuilder struct {
  1336  	zhCn     string // 部门的中文名
  1337  	zhCnFlag bool
  1338  	jaJp     string // 部门的日文名
  1339  	jaJpFlag bool
  1340  	enUs     string // 部门的英文名
  1341  	enUsFlag bool
  1342  }
  1343  
  1344  func NewDepartmentI18nNameBuilder() *DepartmentI18nNameBuilder {
  1345  	builder := &DepartmentI18nNameBuilder{}
  1346  	return builder
  1347  }
  1348  
  1349  // 部门的中文名
  1350  //
  1351  // 示例值:Demo名称
  1352  func (builder *DepartmentI18nNameBuilder) ZhCn(zhCn string) *DepartmentI18nNameBuilder {
  1353  	builder.zhCn = zhCn
  1354  	builder.zhCnFlag = true
  1355  	return builder
  1356  }
  1357  
  1358  // 部门的日文名
  1359  //
  1360  // 示例值:デモ名
  1361  func (builder *DepartmentI18nNameBuilder) JaJp(jaJp string) *DepartmentI18nNameBuilder {
  1362  	builder.jaJp = jaJp
  1363  	builder.jaJpFlag = true
  1364  	return builder
  1365  }
  1366  
  1367  // 部门的英文名
  1368  //
  1369  // 示例值:Demo Name
  1370  func (builder *DepartmentI18nNameBuilder) EnUs(enUs string) *DepartmentI18nNameBuilder {
  1371  	builder.enUs = enUs
  1372  	builder.enUsFlag = true
  1373  	return builder
  1374  }
  1375  
  1376  func (builder *DepartmentI18nNameBuilder) Build() *DepartmentI18nName {
  1377  	req := &DepartmentI18nName{}
  1378  	if builder.zhCnFlag {
  1379  		req.ZhCn = &builder.zhCn
  1380  
  1381  	}
  1382  	if builder.jaJpFlag {
  1383  		req.JaJp = &builder.jaJp
  1384  
  1385  	}
  1386  	if builder.enUsFlag {
  1387  		req.EnUs = &builder.enUs
  1388  
  1389  	}
  1390  	return req
  1391  }
  1392  
  1393  type DepartmentParent struct {
  1394  	DepartmentId *string  `json:"department_id,omitempty"` // 部门ID
  1395  	ParentIds    []string `json:"parent_ids,omitempty"`    // 父部门ID列表,从直接父部门到根部门
  1396  }
  1397  
  1398  type DepartmentParentBuilder struct {
  1399  	departmentId     string // 部门ID
  1400  	departmentIdFlag bool
  1401  	parentIds        []string // 父部门ID列表,从直接父部门到根部门
  1402  	parentIdsFlag    bool
  1403  }
  1404  
  1405  func NewDepartmentParentBuilder() *DepartmentParentBuilder {
  1406  	builder := &DepartmentParentBuilder{}
  1407  	return builder
  1408  }
  1409  
  1410  // 部门ID
  1411  //
  1412  // 示例值:
  1413  func (builder *DepartmentParentBuilder) DepartmentId(departmentId string) *DepartmentParentBuilder {
  1414  	builder.departmentId = departmentId
  1415  	builder.departmentIdFlag = true
  1416  	return builder
  1417  }
  1418  
  1419  // 父部门ID列表,从直接父部门到根部门
  1420  //
  1421  // 示例值:
  1422  func (builder *DepartmentParentBuilder) ParentIds(parentIds []string) *DepartmentParentBuilder {
  1423  	builder.parentIds = parentIds
  1424  	builder.parentIdsFlag = true
  1425  	return builder
  1426  }
  1427  
  1428  func (builder *DepartmentParentBuilder) Build() *DepartmentParent {
  1429  	req := &DepartmentParent{}
  1430  	if builder.departmentIdFlag {
  1431  		req.DepartmentId = &builder.departmentId
  1432  
  1433  	}
  1434  	if builder.parentIdsFlag {
  1435  		req.ParentIds = builder.parentIds
  1436  	}
  1437  	return req
  1438  }
  1439  
  1440  type DepartmentStatus struct {
  1441  	IsDeleted *bool `json:"is_deleted,omitempty"` // 是否被删除
  1442  }
  1443  
  1444  type DepartmentStatusBuilder struct {
  1445  	isDeleted     bool // 是否被删除
  1446  	isDeletedFlag bool
  1447  }
  1448  
  1449  func NewDepartmentStatusBuilder() *DepartmentStatusBuilder {
  1450  	builder := &DepartmentStatusBuilder{}
  1451  	return builder
  1452  }
  1453  
  1454  // 是否被删除
  1455  //
  1456  // 示例值:false
  1457  func (builder *DepartmentStatusBuilder) IsDeleted(isDeleted bool) *DepartmentStatusBuilder {
  1458  	builder.isDeleted = isDeleted
  1459  	builder.isDeletedFlag = true
  1460  	return builder
  1461  }
  1462  
  1463  func (builder *DepartmentStatusBuilder) Build() *DepartmentStatus {
  1464  	req := &DepartmentStatus{}
  1465  	if builder.isDeletedFlag {
  1466  		req.IsDeleted = &builder.isDeleted
  1467  
  1468  	}
  1469  	return req
  1470  }
  1471  
  1472  type DepartmentUnit struct {
  1473  	UnitId   *string `json:"unit_id,omitempty"`   // 部门单元自定义ID
  1474  	UnitType *string `json:"unit_type,omitempty"` // 部门单元类型
  1475  	UnitName *string `json:"unit_name,omitempty"` // 部门单元名称
  1476  }
  1477  
  1478  type DepartmentUnitBuilder struct {
  1479  	unitId       string // 部门单元自定义ID
  1480  	unitIdFlag   bool
  1481  	unitType     string // 部门单元类型
  1482  	unitTypeFlag bool
  1483  	unitName     string // 部门单元名称
  1484  	unitNameFlag bool
  1485  }
  1486  
  1487  func NewDepartmentUnitBuilder() *DepartmentUnitBuilder {
  1488  	builder := &DepartmentUnitBuilder{}
  1489  	return builder
  1490  }
  1491  
  1492  // 部门单元自定义ID
  1493  //
  1494  // 示例值:
  1495  func (builder *DepartmentUnitBuilder) UnitId(unitId string) *DepartmentUnitBuilder {
  1496  	builder.unitId = unitId
  1497  	builder.unitIdFlag = true
  1498  	return builder
  1499  }
  1500  
  1501  // 部门单元类型
  1502  //
  1503  // 示例值:
  1504  func (builder *DepartmentUnitBuilder) UnitType(unitType string) *DepartmentUnitBuilder {
  1505  	builder.unitType = unitType
  1506  	builder.unitTypeFlag = true
  1507  	return builder
  1508  }
  1509  
  1510  // 部门单元名称
  1511  //
  1512  // 示例值:
  1513  func (builder *DepartmentUnitBuilder) UnitName(unitName string) *DepartmentUnitBuilder {
  1514  	builder.unitName = unitName
  1515  	builder.unitNameFlag = true
  1516  	return builder
  1517  }
  1518  
  1519  func (builder *DepartmentUnitBuilder) Build() *DepartmentUnit {
  1520  	req := &DepartmentUnit{}
  1521  	if builder.unitIdFlag {
  1522  		req.UnitId = &builder.unitId
  1523  
  1524  	}
  1525  	if builder.unitTypeFlag {
  1526  		req.UnitType = &builder.unitType
  1527  
  1528  	}
  1529  	if builder.unitNameFlag {
  1530  		req.UnitName = &builder.unitName
  1531  
  1532  	}
  1533  	return req
  1534  }
  1535  
  1536  type EmployeeTypeEnum struct {
  1537  	EnumId      *string        `json:"enum_id,omitempty"`      // 枚举值id
  1538  	EnumValue   *string        `json:"enum_value,omitempty"`   // 枚举的编号值,创建新的人员类型后,系统生成对应编号。对应[创建用户接口](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/create)中用户信息的employee_type字段值
  1539  	Content     *string        `json:"content,omitempty"`      // 枚举内容
  1540  	EnumType    *int           `json:"enum_type,omitempty"`    // 类型
  1541  	EnumStatus  *int           `json:"enum_status,omitempty"`  // 使用状态
  1542  	I18nContent []*I18nContent `json:"i18n_content,omitempty"` // i18n定义
  1543  }
  1544  
  1545  type EmployeeTypeEnumBuilder struct {
  1546  	enumId          string // 枚举值id
  1547  	enumIdFlag      bool
  1548  	enumValue       string // 枚举的编号值,创建新的人员类型后,系统生成对应编号。对应[创建用户接口](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/create)中用户信息的employee_type字段值
  1549  	enumValueFlag   bool
  1550  	content         string // 枚举内容
  1551  	contentFlag     bool
  1552  	enumType        int // 类型
  1553  	enumTypeFlag    bool
  1554  	enumStatus      int // 使用状态
  1555  	enumStatusFlag  bool
  1556  	i18nContent     []*I18nContent // i18n定义
  1557  	i18nContentFlag bool
  1558  }
  1559  
  1560  func NewEmployeeTypeEnumBuilder() *EmployeeTypeEnumBuilder {
  1561  	builder := &EmployeeTypeEnumBuilder{}
  1562  	return builder
  1563  }
  1564  
  1565  // 枚举值id
  1566  //
  1567  // 示例值:exGeIjow7zIqWMy+ONkFxA==
  1568  func (builder *EmployeeTypeEnumBuilder) EnumId(enumId string) *EmployeeTypeEnumBuilder {
  1569  	builder.enumId = enumId
  1570  	builder.enumIdFlag = true
  1571  	return builder
  1572  }
  1573  
  1574  // 枚举的编号值,创建新的人员类型后,系统生成对应编号。对应[创建用户接口](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/create)中用户信息的employee_type字段值
  1575  //
  1576  // 示例值:2
  1577  func (builder *EmployeeTypeEnumBuilder) EnumValue(enumValue string) *EmployeeTypeEnumBuilder {
  1578  	builder.enumValue = enumValue
  1579  	builder.enumValueFlag = true
  1580  	return builder
  1581  }
  1582  
  1583  // 枚举内容
  1584  //
  1585  // 示例值:专家
  1586  func (builder *EmployeeTypeEnumBuilder) Content(content string) *EmployeeTypeEnumBuilder {
  1587  	builder.content = content
  1588  	builder.contentFlag = true
  1589  	return builder
  1590  }
  1591  
  1592  // 类型
  1593  //
  1594  // 示例值:2
  1595  func (builder *EmployeeTypeEnumBuilder) EnumType(enumType int) *EmployeeTypeEnumBuilder {
  1596  	builder.enumType = enumType
  1597  	builder.enumTypeFlag = true
  1598  	return builder
  1599  }
  1600  
  1601  // 使用状态
  1602  //
  1603  // 示例值:1
  1604  func (builder *EmployeeTypeEnumBuilder) EnumStatus(enumStatus int) *EmployeeTypeEnumBuilder {
  1605  	builder.enumStatus = enumStatus
  1606  	builder.enumStatusFlag = true
  1607  	return builder
  1608  }
  1609  
  1610  // i18n定义
  1611  //
  1612  // 示例值:
  1613  func (builder *EmployeeTypeEnumBuilder) I18nContent(i18nContent []*I18nContent) *EmployeeTypeEnumBuilder {
  1614  	builder.i18nContent = i18nContent
  1615  	builder.i18nContentFlag = true
  1616  	return builder
  1617  }
  1618  
  1619  func (builder *EmployeeTypeEnumBuilder) Build() *EmployeeTypeEnum {
  1620  	req := &EmployeeTypeEnum{}
  1621  	if builder.enumIdFlag {
  1622  		req.EnumId = &builder.enumId
  1623  
  1624  	}
  1625  	if builder.enumValueFlag {
  1626  		req.EnumValue = &builder.enumValue
  1627  
  1628  	}
  1629  	if builder.contentFlag {
  1630  		req.Content = &builder.content
  1631  
  1632  	}
  1633  	if builder.enumTypeFlag {
  1634  		req.EnumType = &builder.enumType
  1635  
  1636  	}
  1637  	if builder.enumStatusFlag {
  1638  		req.EnumStatus = &builder.enumStatus
  1639  
  1640  	}
  1641  	if builder.i18nContentFlag {
  1642  		req.I18nContent = builder.i18nContent
  1643  	}
  1644  	return req
  1645  }
  1646  
  1647  type Group struct {
  1648  	Id                    *string `json:"id,omitempty"`                      // 用户组ID
  1649  	Name                  *string `json:"name,omitempty"`                    // 用户组名字
  1650  	Description           *string `json:"description,omitempty"`             // 用户组描述
  1651  	MemberUserCount       *int    `json:"member_user_count,omitempty"`       // 用户组成员中用户的数量
  1652  	MemberDepartmentCount *int    `json:"member_department_count,omitempty"` // 普通用户组成员中部门的数量,动态用户组成员中没有部门。
  1653  }
  1654  
  1655  type GroupBuilder struct {
  1656  	id                        string // 用户组ID
  1657  	idFlag                    bool
  1658  	name                      string // 用户组名字
  1659  	nameFlag                  bool
  1660  	description               string // 用户组描述
  1661  	descriptionFlag           bool
  1662  	memberUserCount           int // 用户组成员中用户的数量
  1663  	memberUserCountFlag       bool
  1664  	memberDepartmentCount     int // 普通用户组成员中部门的数量,动态用户组成员中没有部门。
  1665  	memberDepartmentCountFlag bool
  1666  }
  1667  
  1668  func NewGroupBuilder() *GroupBuilder {
  1669  	builder := &GroupBuilder{}
  1670  	return builder
  1671  }
  1672  
  1673  // 用户组ID
  1674  //
  1675  // 示例值:g193821
  1676  func (builder *GroupBuilder) Id(id string) *GroupBuilder {
  1677  	builder.id = id
  1678  	builder.idFlag = true
  1679  	return builder
  1680  }
  1681  
  1682  // 用户组名字
  1683  //
  1684  // 示例值:IT 外包组
  1685  func (builder *GroupBuilder) Name(name string) *GroupBuilder {
  1686  	builder.name = name
  1687  	builder.nameFlag = true
  1688  	return builder
  1689  }
  1690  
  1691  // 用户组描述
  1692  //
  1693  // 示例值:IT 外包组,需要对该组人群进行细颗粒度权限管控。
  1694  func (builder *GroupBuilder) Description(description string) *GroupBuilder {
  1695  	builder.description = description
  1696  	builder.descriptionFlag = true
  1697  	return builder
  1698  }
  1699  
  1700  // 用户组成员中用户的数量
  1701  //
  1702  // 示例值:2
  1703  func (builder *GroupBuilder) MemberUserCount(memberUserCount int) *GroupBuilder {
  1704  	builder.memberUserCount = memberUserCount
  1705  	builder.memberUserCountFlag = true
  1706  	return builder
  1707  }
  1708  
  1709  // 普通用户组成员中部门的数量,动态用户组成员中没有部门。
  1710  //
  1711  // 示例值:0
  1712  func (builder *GroupBuilder) MemberDepartmentCount(memberDepartmentCount int) *GroupBuilder {
  1713  	builder.memberDepartmentCount = memberDepartmentCount
  1714  	builder.memberDepartmentCountFlag = true
  1715  	return builder
  1716  }
  1717  
  1718  func (builder *GroupBuilder) Build() *Group {
  1719  	req := &Group{}
  1720  	if builder.idFlag {
  1721  		req.Id = &builder.id
  1722  
  1723  	}
  1724  	if builder.nameFlag {
  1725  		req.Name = &builder.name
  1726  
  1727  	}
  1728  	if builder.descriptionFlag {
  1729  		req.Description = &builder.description
  1730  
  1731  	}
  1732  	if builder.memberUserCountFlag {
  1733  		req.MemberUserCount = &builder.memberUserCount
  1734  
  1735  	}
  1736  	if builder.memberDepartmentCountFlag {
  1737  		req.MemberDepartmentCount = &builder.memberDepartmentCount
  1738  
  1739  	}
  1740  	return req
  1741  }
  1742  
  1743  type GroupEvent struct {
  1744  	UserGroupId *string `json:"user_group_id,omitempty"` // 用户组的自定义ID
  1745  	Name        *string `json:"name,omitempty"`          // 用户组的名称
  1746  }
  1747  
  1748  type GroupEventBuilder struct {
  1749  	userGroupId     string // 用户组的自定义ID
  1750  	userGroupIdFlag bool
  1751  	name            string // 用户组的名称
  1752  	nameFlag        bool
  1753  }
  1754  
  1755  func NewGroupEventBuilder() *GroupEventBuilder {
  1756  	builder := &GroupEventBuilder{}
  1757  	return builder
  1758  }
  1759  
  1760  // 用户组的自定义ID
  1761  //
  1762  // 示例值:
  1763  func (builder *GroupEventBuilder) UserGroupId(userGroupId string) *GroupEventBuilder {
  1764  	builder.userGroupId = userGroupId
  1765  	builder.userGroupIdFlag = true
  1766  	return builder
  1767  }
  1768  
  1769  // 用户组的名称
  1770  //
  1771  // 示例值:
  1772  func (builder *GroupEventBuilder) Name(name string) *GroupEventBuilder {
  1773  	builder.name = name
  1774  	builder.nameFlag = true
  1775  	return builder
  1776  }
  1777  
  1778  func (builder *GroupEventBuilder) Build() *GroupEvent {
  1779  	req := &GroupEvent{}
  1780  	if builder.userGroupIdFlag {
  1781  		req.UserGroupId = &builder.userGroupId
  1782  
  1783  	}
  1784  	if builder.nameFlag {
  1785  		req.Name = &builder.name
  1786  
  1787  	}
  1788  	return req
  1789  }
  1790  
  1791  type I18nContent struct {
  1792  	Locale *string `json:"locale,omitempty"` // 语言版本
  1793  	Value  *string `json:"value,omitempty"`  // 字段名
  1794  }
  1795  
  1796  type I18nContentBuilder struct {
  1797  	locale     string // 语言版本
  1798  	localeFlag bool
  1799  	value      string // 字段名
  1800  	valueFlag  bool
  1801  }
  1802  
  1803  func NewI18nContentBuilder() *I18nContentBuilder {
  1804  	builder := &I18nContentBuilder{}
  1805  	return builder
  1806  }
  1807  
  1808  // 语言版本
  1809  //
  1810  // 示例值:zh_cn
  1811  func (builder *I18nContentBuilder) Locale(locale string) *I18nContentBuilder {
  1812  	builder.locale = locale
  1813  	builder.localeFlag = true
  1814  	return builder
  1815  }
  1816  
  1817  // 字段名
  1818  //
  1819  // 示例值:专家
  1820  func (builder *I18nContentBuilder) Value(value string) *I18nContentBuilder {
  1821  	builder.value = value
  1822  	builder.valueFlag = true
  1823  	return builder
  1824  }
  1825  
  1826  func (builder *I18nContentBuilder) Build() *I18nContent {
  1827  	req := &I18nContent{}
  1828  	if builder.localeFlag {
  1829  		req.Locale = &builder.locale
  1830  
  1831  	}
  1832  	if builder.valueFlag {
  1833  		req.Value = &builder.value
  1834  
  1835  	}
  1836  	return req
  1837  }
  1838  
  1839  type MemberResult struct {
  1840  	MemberId *string `json:"member_id,omitempty"` // 成员ID
  1841  	Code     *int    `json:"code,omitempty"`      // 结果响应码,0表示成功
  1842  }
  1843  
  1844  type MemberResultBuilder struct {
  1845  	memberId     string // 成员ID
  1846  	memberIdFlag bool
  1847  	code         int // 结果响应码,0表示成功
  1848  	codeFlag     bool
  1849  }
  1850  
  1851  func NewMemberResultBuilder() *MemberResultBuilder {
  1852  	builder := &MemberResultBuilder{}
  1853  	return builder
  1854  }
  1855  
  1856  // 成员ID
  1857  //
  1858  // 示例值:u287xj12
  1859  func (builder *MemberResultBuilder) MemberId(memberId string) *MemberResultBuilder {
  1860  	builder.memberId = memberId
  1861  	builder.memberIdFlag = true
  1862  	return builder
  1863  }
  1864  
  1865  // 结果响应码,0表示成功
  1866  //
  1867  // 示例值:0
  1868  func (builder *MemberResultBuilder) Code(code int) *MemberResultBuilder {
  1869  	builder.code = code
  1870  	builder.codeFlag = true
  1871  	return builder
  1872  }
  1873  
  1874  func (builder *MemberResultBuilder) Build() *MemberResult {
  1875  	req := &MemberResult{}
  1876  	if builder.memberIdFlag {
  1877  		req.MemberId = &builder.memberId
  1878  
  1879  	}
  1880  	if builder.codeFlag {
  1881  		req.Code = &builder.code
  1882  
  1883  	}
  1884  	return req
  1885  }
  1886  
  1887  type Memberlist struct {
  1888  	MemberId     *string `json:"member_id,omitempty"`      // 成员ID
  1889  	MemberType   *string `json:"member_type,omitempty"`    // 用户组成员的类型,取值为 user或department。
  1890  	MemberIdType *string `json:"member_id_type,omitempty"` // 当member_type为user时,member_id_type表示user_id_type,可选值为open_id, union_id, user_id。仅在请求参数中有效,响应体中不会返回此参数。
  1891  }
  1892  
  1893  type MemberlistBuilder struct {
  1894  	memberId         string // 成员ID
  1895  	memberIdFlag     bool
  1896  	memberType       string // 用户组成员的类型,取值为 user或department。
  1897  	memberTypeFlag   bool
  1898  	memberIdType     string // 当member_type为user时,member_id_type表示user_id_type,可选值为open_id, union_id, user_id。仅在请求参数中有效,响应体中不会返回此参数。
  1899  	memberIdTypeFlag bool
  1900  }
  1901  
  1902  func NewMemberlistBuilder() *MemberlistBuilder {
  1903  	builder := &MemberlistBuilder{}
  1904  	return builder
  1905  }
  1906  
  1907  // 成员ID
  1908  //
  1909  // 示例值:u287xj12
  1910  func (builder *MemberlistBuilder) MemberId(memberId string) *MemberlistBuilder {
  1911  	builder.memberId = memberId
  1912  	builder.memberIdFlag = true
  1913  	return builder
  1914  }
  1915  
  1916  // 用户组成员的类型,取值为 user或department。
  1917  //
  1918  // 示例值:user
  1919  func (builder *MemberlistBuilder) MemberType(memberType string) *MemberlistBuilder {
  1920  	builder.memberType = memberType
  1921  	builder.memberTypeFlag = true
  1922  	return builder
  1923  }
  1924  
  1925  // 当member_type为user时,member_id_type表示user_id_type,可选值为open_id, union_id, user_id。仅在请求参数中有效,响应体中不会返回此参数。
  1926  //
  1927  // 示例值:user_id
  1928  func (builder *MemberlistBuilder) MemberIdType(memberIdType string) *MemberlistBuilder {
  1929  	builder.memberIdType = memberIdType
  1930  	builder.memberIdTypeFlag = true
  1931  	return builder
  1932  }
  1933  
  1934  func (builder *MemberlistBuilder) Build() *Memberlist {
  1935  	req := &Memberlist{}
  1936  	if builder.memberIdFlag {
  1937  		req.MemberId = &builder.memberId
  1938  
  1939  	}
  1940  	if builder.memberTypeFlag {
  1941  		req.MemberType = &builder.memberType
  1942  
  1943  	}
  1944  	if builder.memberIdTypeFlag {
  1945  		req.MemberIdType = &builder.memberIdType
  1946  
  1947  	}
  1948  	return req
  1949  }
  1950  
  1951  type NotificationOption struct {
  1952  	Channels []string `json:"channels,omitempty"` // 通道列表
  1953  	Language *string  `json:"language,omitempty"` // 语言类型
  1954  }
  1955  
  1956  type NotificationOptionBuilder struct {
  1957  	channels     []string // 通道列表
  1958  	channelsFlag bool
  1959  	language     string // 语言类型
  1960  	languageFlag bool
  1961  }
  1962  
  1963  func NewNotificationOptionBuilder() *NotificationOptionBuilder {
  1964  	builder := &NotificationOptionBuilder{}
  1965  	return builder
  1966  }
  1967  
  1968  // 通道列表
  1969  //
  1970  // 示例值:["sms", "email"]
  1971  func (builder *NotificationOptionBuilder) Channels(channels []string) *NotificationOptionBuilder {
  1972  	builder.channels = channels
  1973  	builder.channelsFlag = true
  1974  	return builder
  1975  }
  1976  
  1977  // 语言类型
  1978  //
  1979  // 示例值:zh-CN
  1980  func (builder *NotificationOptionBuilder) Language(language string) *NotificationOptionBuilder {
  1981  	builder.language = language
  1982  	builder.languageFlag = true
  1983  	return builder
  1984  }
  1985  
  1986  func (builder *NotificationOptionBuilder) Build() *NotificationOption {
  1987  	req := &NotificationOption{}
  1988  	if builder.channelsFlag {
  1989  		req.Channels = builder.channels
  1990  	}
  1991  	if builder.languageFlag {
  1992  		req.Language = &builder.language
  1993  
  1994  	}
  1995  	return req
  1996  }
  1997  
  1998  type OldDepartmentObject struct {
  1999  	Status           *DepartmentStatus `json:"status,omitempty"`             // 部门状态
  2000  	OpenDepartmentId *string           `json:"open_department_id,omitempty"` // 部门open_id
  2001  }
  2002  
  2003  type OldDepartmentObjectBuilder struct {
  2004  	status               *DepartmentStatus // 部门状态
  2005  	statusFlag           bool
  2006  	openDepartmentId     string // 部门open_id
  2007  	openDepartmentIdFlag bool
  2008  }
  2009  
  2010  func NewOldDepartmentObjectBuilder() *OldDepartmentObjectBuilder {
  2011  	builder := &OldDepartmentObjectBuilder{}
  2012  	return builder
  2013  }
  2014  
  2015  // 部门状态
  2016  //
  2017  // 示例值:
  2018  func (builder *OldDepartmentObjectBuilder) Status(status *DepartmentStatus) *OldDepartmentObjectBuilder {
  2019  	builder.status = status
  2020  	builder.statusFlag = true
  2021  	return builder
  2022  }
  2023  
  2024  // 部门open_id
  2025  //
  2026  // 示例值:od-xxxxxxxx
  2027  func (builder *OldDepartmentObjectBuilder) OpenDepartmentId(openDepartmentId string) *OldDepartmentObjectBuilder {
  2028  	builder.openDepartmentId = openDepartmentId
  2029  	builder.openDepartmentIdFlag = true
  2030  	return builder
  2031  }
  2032  
  2033  func (builder *OldDepartmentObjectBuilder) Build() *OldDepartmentObject {
  2034  	req := &OldDepartmentObject{}
  2035  	if builder.statusFlag {
  2036  		req.Status = builder.status
  2037  	}
  2038  	if builder.openDepartmentIdFlag {
  2039  		req.OpenDepartmentId = &builder.openDepartmentId
  2040  
  2041  	}
  2042  	return req
  2043  }
  2044  
  2045  type OldUserObject struct {
  2046  	DepartmentIds []string `json:"department_ids,omitempty"` // 用户所属部门的ID列表
  2047  	OpenId        *string  `json:"open_id,omitempty"`        // 用户open_id
  2048  }
  2049  
  2050  type OldUserObjectBuilder struct {
  2051  	departmentIds     []string // 用户所属部门的ID列表
  2052  	departmentIdsFlag bool
  2053  	openId            string // 用户open_id
  2054  	openIdFlag        bool
  2055  }
  2056  
  2057  func NewOldUserObjectBuilder() *OldUserObjectBuilder {
  2058  	builder := &OldUserObjectBuilder{}
  2059  	return builder
  2060  }
  2061  
  2062  // 用户所属部门的ID列表
  2063  //
  2064  // 示例值:
  2065  func (builder *OldUserObjectBuilder) DepartmentIds(departmentIds []string) *OldUserObjectBuilder {
  2066  	builder.departmentIds = departmentIds
  2067  	builder.departmentIdsFlag = true
  2068  	return builder
  2069  }
  2070  
  2071  // 用户open_id
  2072  //
  2073  // 示例值:ou_xxxxxxxxxx
  2074  func (builder *OldUserObjectBuilder) OpenId(openId string) *OldUserObjectBuilder {
  2075  	builder.openId = openId
  2076  	builder.openIdFlag = true
  2077  	return builder
  2078  }
  2079  
  2080  func (builder *OldUserObjectBuilder) Build() *OldUserObject {
  2081  	req := &OldUserObject{}
  2082  	if builder.departmentIdsFlag {
  2083  		req.DepartmentIds = builder.departmentIds
  2084  	}
  2085  	if builder.openIdFlag {
  2086  		req.OpenId = &builder.openId
  2087  
  2088  	}
  2089  	return req
  2090  }
  2091  
  2092  type ResourceAcceptor struct {
  2093  	ProcessingType *string `json:"processing_type,omitempty"`  // 资源处理类型
  2094  	AcceptorUserId *string `json:"acceptor_user_id,omitempty"` // 在 processing_type 为 1 (转移资源时),邮件资源接收者
  2095  }
  2096  
  2097  type ResourceAcceptorBuilder struct {
  2098  	processingType     string // 资源处理类型
  2099  	processingTypeFlag bool
  2100  	acceptorUserId     string // 在 processing_type 为 1 (转移资源时),邮件资源接收者
  2101  	acceptorUserIdFlag bool
  2102  }
  2103  
  2104  func NewResourceAcceptorBuilder() *ResourceAcceptorBuilder {
  2105  	builder := &ResourceAcceptorBuilder{}
  2106  	return builder
  2107  }
  2108  
  2109  // 资源处理类型
  2110  //
  2111  // 示例值:1
  2112  func (builder *ResourceAcceptorBuilder) ProcessingType(processingType string) *ResourceAcceptorBuilder {
  2113  	builder.processingType = processingType
  2114  	builder.processingTypeFlag = true
  2115  	return builder
  2116  }
  2117  
  2118  // 在 processing_type 为 1 (转移资源时),邮件资源接收者
  2119  //
  2120  // 示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
  2121  func (builder *ResourceAcceptorBuilder) AcceptorUserId(acceptorUserId string) *ResourceAcceptorBuilder {
  2122  	builder.acceptorUserId = acceptorUserId
  2123  	builder.acceptorUserIdFlag = true
  2124  	return builder
  2125  }
  2126  
  2127  func (builder *ResourceAcceptorBuilder) Build() *ResourceAcceptor {
  2128  	req := &ResourceAcceptor{}
  2129  	if builder.processingTypeFlag {
  2130  		req.ProcessingType = &builder.processingType
  2131  
  2132  	}
  2133  	if builder.acceptorUserIdFlag {
  2134  		req.AcceptorUserId = &builder.acceptorUserId
  2135  
  2136  	}
  2137  	return req
  2138  }
  2139  
  2140  type Scope struct {
  2141  	Departments []*Department `json:"departments,omitempty"` // 部门对象
  2142  	Users       []*User       `json:"users,omitempty"`       // 用户对象
  2143  	UserGroups  []*UserGroup  `json:"user_groups,omitempty"` // 用户组对象
  2144  }
  2145  
  2146  type ScopeBuilder struct {
  2147  	departments     []*Department // 部门对象
  2148  	departmentsFlag bool
  2149  	users           []*User // 用户对象
  2150  	usersFlag       bool
  2151  	userGroups      []*UserGroup // 用户组对象
  2152  	userGroupsFlag  bool
  2153  }
  2154  
  2155  func NewScopeBuilder() *ScopeBuilder {
  2156  	builder := &ScopeBuilder{}
  2157  	return builder
  2158  }
  2159  
  2160  // 部门对象
  2161  //
  2162  // 示例值:
  2163  func (builder *ScopeBuilder) Departments(departments []*Department) *ScopeBuilder {
  2164  	builder.departments = departments
  2165  	builder.departmentsFlag = true
  2166  	return builder
  2167  }
  2168  
  2169  // 用户对象
  2170  //
  2171  // 示例值:
  2172  func (builder *ScopeBuilder) Users(users []*User) *ScopeBuilder {
  2173  	builder.users = users
  2174  	builder.usersFlag = true
  2175  	return builder
  2176  }
  2177  
  2178  // 用户组对象
  2179  //
  2180  // 示例值:
  2181  func (builder *ScopeBuilder) UserGroups(userGroups []*UserGroup) *ScopeBuilder {
  2182  	builder.userGroups = userGroups
  2183  	builder.userGroupsFlag = true
  2184  	return builder
  2185  }
  2186  
  2187  func (builder *ScopeBuilder) Build() *Scope {
  2188  	req := &Scope{}
  2189  	if builder.departmentsFlag {
  2190  		req.Departments = builder.departments
  2191  	}
  2192  	if builder.usersFlag {
  2193  		req.Users = builder.users
  2194  	}
  2195  	if builder.userGroupsFlag {
  2196  		req.UserGroups = builder.userGroups
  2197  	}
  2198  	return req
  2199  }
  2200  
  2201  type ShareDepartment struct {
  2202  	OpenId   *string             `json:"open_id,omitempty"`   // 共享部门的open id
  2203  	Name     *string             `json:"name,omitempty"`      // 部门名称
  2204  	I18nName *DepartmentI18nName `json:"i18n_name,omitempty"` // 国际化的部门名称
  2205  	Order    *string             `json:"order,omitempty"`     // 部门的排序
  2206  }
  2207  
  2208  type ShareDepartmentBuilder struct {
  2209  	openId       string // 共享部门的open id
  2210  	openIdFlag   bool
  2211  	name         string // 部门名称
  2212  	nameFlag     bool
  2213  	i18nName     *DepartmentI18nName // 国际化的部门名称
  2214  	i18nNameFlag bool
  2215  	order        string // 部门的排序
  2216  	orderFlag    bool
  2217  }
  2218  
  2219  func NewShareDepartmentBuilder() *ShareDepartmentBuilder {
  2220  	builder := &ShareDepartmentBuilder{}
  2221  	return builder
  2222  }
  2223  
  2224  // 共享部门的open id
  2225  //
  2226  // 示例值:od-b025f41e599bf3d3fb5dc56b7f86142b
  2227  func (builder *ShareDepartmentBuilder) OpenId(openId string) *ShareDepartmentBuilder {
  2228  	builder.openId = openId
  2229  	builder.openIdFlag = true
  2230  	return builder
  2231  }
  2232  
  2233  // 部门名称
  2234  //
  2235  // 示例值:测试部门
  2236  func (builder *ShareDepartmentBuilder) Name(name string) *ShareDepartmentBuilder {
  2237  	builder.name = name
  2238  	builder.nameFlag = true
  2239  	return builder
  2240  }
  2241  
  2242  // 国际化的部门名称
  2243  //
  2244  // 示例值:
  2245  func (builder *ShareDepartmentBuilder) I18nName(i18nName *DepartmentI18nName) *ShareDepartmentBuilder {
  2246  	builder.i18nName = i18nName
  2247  	builder.i18nNameFlag = true
  2248  	return builder
  2249  }
  2250  
  2251  // 部门的排序
  2252  //
  2253  // 示例值:6000
  2254  func (builder *ShareDepartmentBuilder) Order(order string) *ShareDepartmentBuilder {
  2255  	builder.order = order
  2256  	builder.orderFlag = true
  2257  	return builder
  2258  }
  2259  
  2260  func (builder *ShareDepartmentBuilder) Build() *ShareDepartment {
  2261  	req := &ShareDepartment{}
  2262  	if builder.openIdFlag {
  2263  		req.OpenId = &builder.openId
  2264  
  2265  	}
  2266  	if builder.nameFlag {
  2267  		req.Name = &builder.name
  2268  
  2269  	}
  2270  	if builder.i18nNameFlag {
  2271  		req.I18nName = builder.i18nName
  2272  	}
  2273  	if builder.orderFlag {
  2274  		req.Order = &builder.order
  2275  
  2276  	}
  2277  	return req
  2278  }
  2279  
  2280  type ShareUser struct {
  2281  	OpenId *string     `json:"open_id,omitempty"` // 用户的open_id
  2282  	Name   *string     `json:"name,omitempty"`    // 用户的名称
  2283  	EnName *string     `json:"en_name,omitempty"` // 英文名
  2284  	Avatar *AvatarInfo `json:"avatar,omitempty"`  // 用户头像信息
  2285  }
  2286  
  2287  type ShareUserBuilder struct {
  2288  	openId     string // 用户的open_id
  2289  	openIdFlag bool
  2290  	name       string // 用户的名称
  2291  	nameFlag   bool
  2292  	enName     string // 英文名
  2293  	enNameFlag bool
  2294  	avatar     *AvatarInfo // 用户头像信息
  2295  	avatarFlag bool
  2296  }
  2297  
  2298  func NewShareUserBuilder() *ShareUserBuilder {
  2299  	builder := &ShareUserBuilder{}
  2300  	return builder
  2301  }
  2302  
  2303  // 用户的open_id
  2304  //
  2305  // 示例值:ou_496670738e90fb26f899088a125226c5
  2306  func (builder *ShareUserBuilder) OpenId(openId string) *ShareUserBuilder {
  2307  	builder.openId = openId
  2308  	builder.openIdFlag = true
  2309  	return builder
  2310  }
  2311  
  2312  // 用户的名称
  2313  //
  2314  // 示例值:测试用户
  2315  func (builder *ShareUserBuilder) Name(name string) *ShareUserBuilder {
  2316  	builder.name = name
  2317  	builder.nameFlag = true
  2318  	return builder
  2319  }
  2320  
  2321  // 英文名
  2322  //
  2323  // 示例值:testUser
  2324  func (builder *ShareUserBuilder) EnName(enName string) *ShareUserBuilder {
  2325  	builder.enName = enName
  2326  	builder.enNameFlag = true
  2327  	return builder
  2328  }
  2329  
  2330  // 用户头像信息
  2331  //
  2332  // 示例值:
  2333  func (builder *ShareUserBuilder) Avatar(avatar *AvatarInfo) *ShareUserBuilder {
  2334  	builder.avatar = avatar
  2335  	builder.avatarFlag = true
  2336  	return builder
  2337  }
  2338  
  2339  func (builder *ShareUserBuilder) Build() *ShareUser {
  2340  	req := &ShareUser{}
  2341  	if builder.openIdFlag {
  2342  		req.OpenId = &builder.openId
  2343  
  2344  	}
  2345  	if builder.nameFlag {
  2346  		req.Name = &builder.name
  2347  
  2348  	}
  2349  	if builder.enNameFlag {
  2350  		req.EnName = &builder.enName
  2351  
  2352  	}
  2353  	if builder.avatarFlag {
  2354  		req.Avatar = builder.avatar
  2355  	}
  2356  	return req
  2357  }
  2358  
  2359  type Unit struct {
  2360  	UnitId   *string `json:"unit_id,omitempty"`   // 单位的自定义ID
  2361  	Name     *string `json:"name,omitempty"`      // 单位的名字
  2362  	UnitType *string `json:"unit_type,omitempty"` // 单位的类型
  2363  }
  2364  
  2365  type UnitBuilder struct {
  2366  	unitId       string // 单位的自定义ID
  2367  	unitIdFlag   bool
  2368  	name         string // 单位的名字
  2369  	nameFlag     bool
  2370  	unitType     string // 单位的类型
  2371  	unitTypeFlag bool
  2372  }
  2373  
  2374  func NewUnitBuilder() *UnitBuilder {
  2375  	builder := &UnitBuilder{}
  2376  	return builder
  2377  }
  2378  
  2379  // 单位的自定义ID
  2380  //
  2381  // 示例值:BU121
  2382  func (builder *UnitBuilder) UnitId(unitId string) *UnitBuilder {
  2383  	builder.unitId = unitId
  2384  	builder.unitIdFlag = true
  2385  	return builder
  2386  }
  2387  
  2388  // 单位的名字
  2389  //
  2390  // 示例值:消费者事业部
  2391  func (builder *UnitBuilder) Name(name string) *UnitBuilder {
  2392  	builder.name = name
  2393  	builder.nameFlag = true
  2394  	return builder
  2395  }
  2396  
  2397  // 单位的类型
  2398  //
  2399  // 示例值:事业部
  2400  func (builder *UnitBuilder) UnitType(unitType string) *UnitBuilder {
  2401  	builder.unitType = unitType
  2402  	builder.unitTypeFlag = true
  2403  	return builder
  2404  }
  2405  
  2406  func (builder *UnitBuilder) Build() *Unit {
  2407  	req := &Unit{}
  2408  	if builder.unitIdFlag {
  2409  		req.UnitId = &builder.unitId
  2410  
  2411  	}
  2412  	if builder.nameFlag {
  2413  		req.Name = &builder.name
  2414  
  2415  	}
  2416  	if builder.unitTypeFlag {
  2417  		req.UnitType = &builder.unitType
  2418  
  2419  	}
  2420  	return req
  2421  }
  2422  
  2423  type UnitDepartment struct {
  2424  	UnitId       *string `json:"unit_id,omitempty"`       // 单位ID
  2425  	DepartmentId *string `json:"department_id,omitempty"` // 部门ID
  2426  }
  2427  
  2428  type UnitDepartmentBuilder struct {
  2429  	unitId           string // 单位ID
  2430  	unitIdFlag       bool
  2431  	departmentId     string // 部门ID
  2432  	departmentIdFlag bool
  2433  }
  2434  
  2435  func NewUnitDepartmentBuilder() *UnitDepartmentBuilder {
  2436  	builder := &UnitDepartmentBuilder{}
  2437  	return builder
  2438  }
  2439  
  2440  // 单位ID
  2441  //
  2442  // 示例值:BU121
  2443  func (builder *UnitDepartmentBuilder) UnitId(unitId string) *UnitDepartmentBuilder {
  2444  	builder.unitId = unitId
  2445  	builder.unitIdFlag = true
  2446  	return builder
  2447  }
  2448  
  2449  // 部门ID
  2450  //
  2451  // 示例值:od-4e6ac4d14bcd5071a37a39de902c7141
  2452  func (builder *UnitDepartmentBuilder) DepartmentId(departmentId string) *UnitDepartmentBuilder {
  2453  	builder.departmentId = departmentId
  2454  	builder.departmentIdFlag = true
  2455  	return builder
  2456  }
  2457  
  2458  func (builder *UnitDepartmentBuilder) Build() *UnitDepartment {
  2459  	req := &UnitDepartment{}
  2460  	if builder.unitIdFlag {
  2461  		req.UnitId = &builder.unitId
  2462  
  2463  	}
  2464  	if builder.departmentIdFlag {
  2465  		req.DepartmentId = &builder.departmentId
  2466  
  2467  	}
  2468  	return req
  2469  }
  2470  
  2471  type User struct {
  2472  	UnionId         *string     `json:"union_id,omitempty"`          // 用户的union_id,应用开发商发布的不同应用中同一用户的标识,不同ID的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  2473  	UserId          *string     `json:"user_id,omitempty"`           // 用户的user_id,租户内用户的唯一标识,不同ID的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  2474  	OpenId          *string     `json:"open_id,omitempty"`           // 用户的open_id,应用内用户的唯一标识,不同ID的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  2475  	Name            *string     `json:"name,omitempty"`              // 用户名
  2476  	EnName          *string     `json:"en_name,omitempty"`           // 英文名
  2477  	Nickname        *string     `json:"nickname,omitempty"`          // 别名
  2478  	Email           *string     `json:"email,omitempty"`             // 邮箱;;注意:;1. 非中国大陆手机号成员必须同时添加邮箱;2. 邮箱不可重复
  2479  	Mobile          *string     `json:"mobile,omitempty"`            // 手机号,在本企业内不可重复;未认证企业仅支持添加中国大陆手机号,通过飞书认证的企业允许添加海外手机号,注意国际电话区号前缀中必须包含加号 +
  2480  	MobileVisible   *bool       `json:"mobile_visible,omitempty"`    // 手机号码可见性,true 为可见,false 为不可见,目前默认为 true。不可见时,组织员工将无法查看该员工的手机号码
  2481  	Gender          *int        `json:"gender,omitempty"`            // 性别
  2482  	AvatarKey       *string     `json:"avatar_key,omitempty"`        // 头像的文件Key,可通过“消息与群组/消息/图片信息”中的“上传图片”接口上传并获取头像文件 Key;;“上传图片”功能参见[上传图片](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)
  2483  	Avatar          *AvatarInfo `json:"avatar,omitempty"`            // 用户头像信息
  2484  	Status          *UserStatus `json:"status,omitempty"`            // 用户状态,枚举类型,包括is_frozen、is_resigned、is_activated、is_exited;;用户状态转移参见:[用户状态图](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/field-overview#4302b5a1)
  2485  	DepartmentIds   []string    `json:"department_ids,omitempty"`    // 用户所属部门的ID列表,一个用户可属于多个部门。;;ID值的类型与查询参数中的department_id_type 对应。;;不同 ID 的说明与department_id的获取方式参见 [部门ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0)
  2486  	LeaderUserId    *string     `json:"leader_user_id,omitempty"`    // 用户的直接主管的用户ID,ID值与查询参数中的user_id_type 对应。;;不同 ID 的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction);;获取方式参见[如何获取user_id](/ssl:ttdoc/home/user-identity-introduction/how-to-get)
  2487  	City            *string     `json:"city,omitempty"`              // 工作城市
  2488  	Country         *string     `json:"country,omitempty"`           // 国家或地区Code缩写,具体写入格式请参考 [国家/地区码表](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/country-code-description)
  2489  	WorkStation     *string     `json:"work_station,omitempty"`      // 工位
  2490  	JoinTime        *int        `json:"join_time,omitempty"`         // 入职时间,时间戳格式,表示从1970年1月1日开始所经过的秒数
  2491  	IsTenantManager *bool       `json:"is_tenant_manager,omitempty"` // 是否是租户超级管理员
  2492  	EmployeeNo      *string     `json:"employee_no,omitempty"`       // 工号
  2493  	EmployeeType    *int        `json:"employee_type,omitempty"`     // 员工类型,可选值有:;- `1`:正式员工;- `2`:实习生;- `3`:外包;- `4`:劳务;- `5`:顾问   ;同时可读取到自定义员工类型的 int 值,可通过下方接口获取到该租户的自定义员工类型的名称,参见[获取人员类型](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/employee_type_enum/list)
  2494  
  2495  	Orders          []*UserOrder      `json:"orders,omitempty"`           // 用户排序信息。;;用于标记通讯录下组织架构的人员顺序,人员可能存在多个部门中,且有不同的排序。
  2496  	CustomAttrs     []*UserCustomAttr `json:"custom_attrs,omitempty"`     // 自定义字段,请确保你的组织管理员已在管理后台/组织架构/成员字段管理/自定义字段管理/全局设置中开启了“允许开放平台 API 调用“,否则该字段不会生效/返回。
  2497  	EnterpriseEmail *string           `json:"enterprise_email,omitempty"` // 企业邮箱,请先确保已在管理后台启用飞书邮箱服务
  2498  
  2499  	JobTitle *string `json:"job_title,omitempty"` // 职务
  2500  
  2501  	IsFrozen *bool   `json:"is_frozen,omitempty"` // 是否暂停用户
  2502  	Geo      *string `json:"geo,omitempty"`       // 数据驻留地
  2503  }
  2504  
  2505  type UserBuilder struct {
  2506  	unionId             string // 用户的union_id,应用开发商发布的不同应用中同一用户的标识,不同ID的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  2507  	unionIdFlag         bool
  2508  	userId              string // 用户的user_id,租户内用户的唯一标识,不同ID的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  2509  	userIdFlag          bool
  2510  	openId              string // 用户的open_id,应用内用户的唯一标识,不同ID的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  2511  	openIdFlag          bool
  2512  	name                string // 用户名
  2513  	nameFlag            bool
  2514  	enName              string // 英文名
  2515  	enNameFlag          bool
  2516  	nickname            string // 别名
  2517  	nicknameFlag        bool
  2518  	email               string // 邮箱;;注意:;1. 非中国大陆手机号成员必须同时添加邮箱;2. 邮箱不可重复
  2519  	emailFlag           bool
  2520  	mobile              string // 手机号,在本企业内不可重复;未认证企业仅支持添加中国大陆手机号,通过飞书认证的企业允许添加海外手机号,注意国际电话区号前缀中必须包含加号 +
  2521  	mobileFlag          bool
  2522  	mobileVisible       bool // 手机号码可见性,true 为可见,false 为不可见,目前默认为 true。不可见时,组织员工将无法查看该员工的手机号码
  2523  	mobileVisibleFlag   bool
  2524  	gender              int // 性别
  2525  	genderFlag          bool
  2526  	avatarKey           string // 头像的文件Key,可通过“消息与群组/消息/图片信息”中的“上传图片”接口上传并获取头像文件 Key;;“上传图片”功能参见[上传图片](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)
  2527  	avatarKeyFlag       bool
  2528  	avatar              *AvatarInfo // 用户头像信息
  2529  	avatarFlag          bool
  2530  	status              *UserStatus // 用户状态,枚举类型,包括is_frozen、is_resigned、is_activated、is_exited;;用户状态转移参见:[用户状态图](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/field-overview#4302b5a1)
  2531  	statusFlag          bool
  2532  	departmentIds       []string // 用户所属部门的ID列表,一个用户可属于多个部门。;;ID值的类型与查询参数中的department_id_type 对应。;;不同 ID 的说明与department_id的获取方式参见 [部门ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0)
  2533  	departmentIdsFlag   bool
  2534  	leaderUserId        string // 用户的直接主管的用户ID,ID值与查询参数中的user_id_type 对应。;;不同 ID 的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction);;获取方式参见[如何获取user_id](/ssl:ttdoc/home/user-identity-introduction/how-to-get)
  2535  	leaderUserIdFlag    bool
  2536  	city                string // 工作城市
  2537  	cityFlag            bool
  2538  	country             string // 国家或地区Code缩写,具体写入格式请参考 [国家/地区码表](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/country-code-description)
  2539  	countryFlag         bool
  2540  	workStation         string // 工位
  2541  	workStationFlag     bool
  2542  	joinTime            int // 入职时间,时间戳格式,表示从1970年1月1日开始所经过的秒数
  2543  	joinTimeFlag        bool
  2544  	isTenantManager     bool // 是否是租户超级管理员
  2545  	isTenantManagerFlag bool
  2546  	employeeNo          string // 工号
  2547  	employeeNoFlag      bool
  2548  	employeeType        int // 员工类型,可选值有:;- `1`:正式员工;- `2`:实习生;- `3`:外包;- `4`:劳务;- `5`:顾问   ;同时可读取到自定义员工类型的 int 值,可通过下方接口获取到该租户的自定义员工类型的名称,参见[获取人员类型](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/employee_type_enum/list)
  2549  	employeeTypeFlag    bool
  2550  
  2551  	orders              []*UserOrder // 用户排序信息。;;用于标记通讯录下组织架构的人员顺序,人员可能存在多个部门中,且有不同的排序。
  2552  	ordersFlag          bool
  2553  	customAttrs         []*UserCustomAttr // 自定义字段,请确保你的组织管理员已在管理后台/组织架构/成员字段管理/自定义字段管理/全局设置中开启了“允许开放平台 API 调用“,否则该字段不会生效/返回。
  2554  	customAttrsFlag     bool
  2555  	enterpriseEmail     string // 企业邮箱,请先确保已在管理后台启用飞书邮箱服务
  2556  	enterpriseEmailFlag bool
  2557  
  2558  	jobTitle     string // 职务
  2559  	jobTitleFlag bool
  2560  
  2561  	isFrozen     bool // 是否暂停用户
  2562  	isFrozenFlag bool
  2563  	geo          string // 数据驻留地
  2564  	geoFlag      bool
  2565  }
  2566  
  2567  func NewUserBuilder() *UserBuilder {
  2568  	builder := &UserBuilder{}
  2569  	return builder
  2570  }
  2571  
  2572  // 用户的union_id,应用开发商发布的不同应用中同一用户的标识,不同ID的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  2573  //
  2574  // 示例值:on_94a1ee5551019f18cd73d9f111898cf2
  2575  func (builder *UserBuilder) UnionId(unionId string) *UserBuilder {
  2576  	builder.unionId = unionId
  2577  	builder.unionIdFlag = true
  2578  	return builder
  2579  }
  2580  
  2581  // 用户的user_id,租户内用户的唯一标识,不同ID的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  2582  //
  2583  // 示例值:3e3cf96b
  2584  func (builder *UserBuilder) UserId(userId string) *UserBuilder {
  2585  	builder.userId = userId
  2586  	builder.userIdFlag = true
  2587  	return builder
  2588  }
  2589  
  2590  // 用户的open_id,应用内用户的唯一标识,不同ID的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  2591  //
  2592  // 示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
  2593  func (builder *UserBuilder) OpenId(openId string) *UserBuilder {
  2594  	builder.openId = openId
  2595  	builder.openIdFlag = true
  2596  	return builder
  2597  }
  2598  
  2599  // 用户名
  2600  //
  2601  // 示例值:张三
  2602  func (builder *UserBuilder) Name(name string) *UserBuilder {
  2603  	builder.name = name
  2604  	builder.nameFlag = true
  2605  	return builder
  2606  }
  2607  
  2608  // 英文名
  2609  //
  2610  // 示例值:San Zhang
  2611  func (builder *UserBuilder) EnName(enName string) *UserBuilder {
  2612  	builder.enName = enName
  2613  	builder.enNameFlag = true
  2614  	return builder
  2615  }
  2616  
  2617  // 别名
  2618  //
  2619  // 示例值:Alex Zhang
  2620  func (builder *UserBuilder) Nickname(nickname string) *UserBuilder {
  2621  	builder.nickname = nickname
  2622  	builder.nicknameFlag = true
  2623  	return builder
  2624  }
  2625  
  2626  // 邮箱;;注意:;1. 非中国大陆手机号成员必须同时添加邮箱;2. 邮箱不可重复
  2627  //
  2628  // 示例值:zhangsan@gmail.com
  2629  func (builder *UserBuilder) Email(email string) *UserBuilder {
  2630  	builder.email = email
  2631  	builder.emailFlag = true
  2632  	return builder
  2633  }
  2634  
  2635  // 手机号,在本企业内不可重复;未认证企业仅支持添加中国大陆手机号,通过飞书认证的企业允许添加海外手机号,注意国际电话区号前缀中必须包含加号 +
  2636  //
  2637  // 示例值:13011111111 (其他例子,中国大陆手机号: 13011111111 或 +8613011111111, 非中国大陆手机号:  +41446681800)
  2638  func (builder *UserBuilder) Mobile(mobile string) *UserBuilder {
  2639  	builder.mobile = mobile
  2640  	builder.mobileFlag = true
  2641  	return builder
  2642  }
  2643  
  2644  // 手机号码可见性,true 为可见,false 为不可见,目前默认为 true。不可见时,组织员工将无法查看该员工的手机号码
  2645  //
  2646  // 示例值:false
  2647  func (builder *UserBuilder) MobileVisible(mobileVisible bool) *UserBuilder {
  2648  	builder.mobileVisible = mobileVisible
  2649  	builder.mobileVisibleFlag = true
  2650  	return builder
  2651  }
  2652  
  2653  // 性别
  2654  //
  2655  // 示例值:1
  2656  func (builder *UserBuilder) Gender(gender int) *UserBuilder {
  2657  	builder.gender = gender
  2658  	builder.genderFlag = true
  2659  	return builder
  2660  }
  2661  
  2662  // 头像的文件Key,可通过“消息与群组/消息/图片信息”中的“上传图片”接口上传并获取头像文件 Key;;“上传图片”功能参见[上传图片](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)
  2663  //
  2664  // 示例值:2500c7a9-5fff-4d9a-a2de-3d59614ae28g
  2665  func (builder *UserBuilder) AvatarKey(avatarKey string) *UserBuilder {
  2666  	builder.avatarKey = avatarKey
  2667  	builder.avatarKeyFlag = true
  2668  	return builder
  2669  }
  2670  
  2671  // 用户头像信息
  2672  //
  2673  // 示例值:
  2674  func (builder *UserBuilder) Avatar(avatar *AvatarInfo) *UserBuilder {
  2675  	builder.avatar = avatar
  2676  	builder.avatarFlag = true
  2677  	return builder
  2678  }
  2679  
  2680  // 用户状态,枚举类型,包括is_frozen、is_resigned、is_activated、is_exited;;用户状态转移参见:[用户状态图](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/field-overview#4302b5a1)
  2681  //
  2682  // 示例值:
  2683  func (builder *UserBuilder) Status(status *UserStatus) *UserBuilder {
  2684  	builder.status = status
  2685  	builder.statusFlag = true
  2686  	return builder
  2687  }
  2688  
  2689  // 用户所属部门的ID列表,一个用户可属于多个部门。;;ID值的类型与查询参数中的department_id_type 对应。;;不同 ID 的说明与department_id的获取方式参见 [部门ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0)
  2690  //
  2691  // 示例值:od-4e6ac4d14bcd5071a37a39de902c7141
  2692  func (builder *UserBuilder) DepartmentIds(departmentIds []string) *UserBuilder {
  2693  	builder.departmentIds = departmentIds
  2694  	builder.departmentIdsFlag = true
  2695  	return builder
  2696  }
  2697  
  2698  // 用户的直接主管的用户ID,ID值与查询参数中的user_id_type 对应。;;不同 ID 的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction);;获取方式参见[如何获取user_id](/ssl:ttdoc/home/user-identity-introduction/how-to-get)
  2699  //
  2700  // 示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
  2701  func (builder *UserBuilder) LeaderUserId(leaderUserId string) *UserBuilder {
  2702  	builder.leaderUserId = leaderUserId
  2703  	builder.leaderUserIdFlag = true
  2704  	return builder
  2705  }
  2706  
  2707  // 工作城市
  2708  //
  2709  // 示例值:杭州
  2710  func (builder *UserBuilder) City(city string) *UserBuilder {
  2711  	builder.city = city
  2712  	builder.cityFlag = true
  2713  	return builder
  2714  }
  2715  
  2716  // 国家或地区Code缩写,具体写入格式请参考 [国家/地区码表](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/user/country-code-description)
  2717  //
  2718  // 示例值:CN
  2719  func (builder *UserBuilder) Country(country string) *UserBuilder {
  2720  	builder.country = country
  2721  	builder.countryFlag = true
  2722  	return builder
  2723  }
  2724  
  2725  // 工位
  2726  //
  2727  // 示例值:北楼-H34
  2728  func (builder *UserBuilder) WorkStation(workStation string) *UserBuilder {
  2729  	builder.workStation = workStation
  2730  	builder.workStationFlag = true
  2731  	return builder
  2732  }
  2733  
  2734  // 入职时间,时间戳格式,表示从1970年1月1日开始所经过的秒数
  2735  //
  2736  // 示例值:2147483647
  2737  func (builder *UserBuilder) JoinTime(joinTime int) *UserBuilder {
  2738  	builder.joinTime = joinTime
  2739  	builder.joinTimeFlag = true
  2740  	return builder
  2741  }
  2742  
  2743  // 是否是租户超级管理员
  2744  //
  2745  // 示例值:false
  2746  func (builder *UserBuilder) IsTenantManager(isTenantManager bool) *UserBuilder {
  2747  	builder.isTenantManager = isTenantManager
  2748  	builder.isTenantManagerFlag = true
  2749  	return builder
  2750  }
  2751  
  2752  // 工号
  2753  //
  2754  // 示例值:1
  2755  func (builder *UserBuilder) EmployeeNo(employeeNo string) *UserBuilder {
  2756  	builder.employeeNo = employeeNo
  2757  	builder.employeeNoFlag = true
  2758  	return builder
  2759  }
  2760  
  2761  // 员工类型,可选值有:;- `1`:正式员工;- `2`:实习生;- `3`:外包;- `4`:劳务;- `5`:顾问   ;同时可读取到自定义员工类型的 int 值,可通过下方接口获取到该租户的自定义员工类型的名称,参见[获取人员类型](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/employee_type_enum/list)
  2762  //
  2763  // 示例值:1
  2764  func (builder *UserBuilder) EmployeeType(employeeType int) *UserBuilder {
  2765  	builder.employeeType = employeeType
  2766  	builder.employeeTypeFlag = true
  2767  	return builder
  2768  }
  2769  
  2770  // 用户排序信息。;;用于标记通讯录下组织架构的人员顺序,人员可能存在多个部门中,且有不同的排序。
  2771  //
  2772  // 示例值:
  2773  func (builder *UserBuilder) Orders(orders []*UserOrder) *UserBuilder {
  2774  	builder.orders = orders
  2775  	builder.ordersFlag = true
  2776  	return builder
  2777  }
  2778  
  2779  // 自定义字段,请确保你的组织管理员已在管理后台/组织架构/成员字段管理/自定义字段管理/全局设置中开启了“允许开放平台 API 调用“,否则该字段不会生效/返回。
  2780  //
  2781  // 示例值:
  2782  func (builder *UserBuilder) CustomAttrs(customAttrs []*UserCustomAttr) *UserBuilder {
  2783  	builder.customAttrs = customAttrs
  2784  	builder.customAttrsFlag = true
  2785  	return builder
  2786  }
  2787  
  2788  // 企业邮箱,请先确保已在管理后台启用飞书邮箱服务
  2789  //
  2790  // 示例值:demo@mail.com
  2791  func (builder *UserBuilder) EnterpriseEmail(enterpriseEmail string) *UserBuilder {
  2792  	builder.enterpriseEmail = enterpriseEmail
  2793  	builder.enterpriseEmailFlag = true
  2794  	return builder
  2795  }
  2796  
  2797  // 职务
  2798  //
  2799  // 示例值:xxxxx
  2800  func (builder *UserBuilder) JobTitle(jobTitle string) *UserBuilder {
  2801  	builder.jobTitle = jobTitle
  2802  	builder.jobTitleFlag = true
  2803  	return builder
  2804  }
  2805  
  2806  // 是否暂停用户
  2807  //
  2808  // 示例值:false
  2809  func (builder *UserBuilder) IsFrozen(isFrozen bool) *UserBuilder {
  2810  	builder.isFrozen = isFrozen
  2811  	builder.isFrozenFlag = true
  2812  	return builder
  2813  }
  2814  
  2815  // 数据驻留地
  2816  //
  2817  // 示例值:cn
  2818  func (builder *UserBuilder) Geo(geo string) *UserBuilder {
  2819  	builder.geo = geo
  2820  	builder.geoFlag = true
  2821  	return builder
  2822  }
  2823  
  2824  func (builder *UserBuilder) Build() *User {
  2825  	req := &User{}
  2826  	if builder.unionIdFlag {
  2827  		req.UnionId = &builder.unionId
  2828  
  2829  	}
  2830  	if builder.userIdFlag {
  2831  		req.UserId = &builder.userId
  2832  
  2833  	}
  2834  	if builder.openIdFlag {
  2835  		req.OpenId = &builder.openId
  2836  
  2837  	}
  2838  	if builder.nameFlag {
  2839  		req.Name = &builder.name
  2840  
  2841  	}
  2842  	if builder.enNameFlag {
  2843  		req.EnName = &builder.enName
  2844  
  2845  	}
  2846  	if builder.nicknameFlag {
  2847  		req.Nickname = &builder.nickname
  2848  
  2849  	}
  2850  	if builder.emailFlag {
  2851  		req.Email = &builder.email
  2852  
  2853  	}
  2854  	if builder.mobileFlag {
  2855  		req.Mobile = &builder.mobile
  2856  
  2857  	}
  2858  	if builder.mobileVisibleFlag {
  2859  		req.MobileVisible = &builder.mobileVisible
  2860  
  2861  	}
  2862  	if builder.genderFlag {
  2863  		req.Gender = &builder.gender
  2864  
  2865  	}
  2866  	if builder.avatarKeyFlag {
  2867  		req.AvatarKey = &builder.avatarKey
  2868  
  2869  	}
  2870  	if builder.avatarFlag {
  2871  		req.Avatar = builder.avatar
  2872  	}
  2873  	if builder.statusFlag {
  2874  		req.Status = builder.status
  2875  	}
  2876  	if builder.departmentIdsFlag {
  2877  		req.DepartmentIds = builder.departmentIds
  2878  	}
  2879  	if builder.leaderUserIdFlag {
  2880  		req.LeaderUserId = &builder.leaderUserId
  2881  
  2882  	}
  2883  	if builder.cityFlag {
  2884  		req.City = &builder.city
  2885  
  2886  	}
  2887  	if builder.countryFlag {
  2888  		req.Country = &builder.country
  2889  
  2890  	}
  2891  	if builder.workStationFlag {
  2892  		req.WorkStation = &builder.workStation
  2893  
  2894  	}
  2895  	if builder.joinTimeFlag {
  2896  		req.JoinTime = &builder.joinTime
  2897  
  2898  	}
  2899  	if builder.isTenantManagerFlag {
  2900  		req.IsTenantManager = &builder.isTenantManager
  2901  
  2902  	}
  2903  	if builder.employeeNoFlag {
  2904  		req.EmployeeNo = &builder.employeeNo
  2905  
  2906  	}
  2907  	if builder.employeeTypeFlag {
  2908  		req.EmployeeType = &builder.employeeType
  2909  
  2910  	}
  2911  
  2912  	if builder.ordersFlag {
  2913  		req.Orders = builder.orders
  2914  	}
  2915  	if builder.customAttrsFlag {
  2916  		req.CustomAttrs = builder.customAttrs
  2917  	}
  2918  	if builder.enterpriseEmailFlag {
  2919  		req.EnterpriseEmail = &builder.enterpriseEmail
  2920  
  2921  	}
  2922  
  2923  	if builder.jobTitleFlag {
  2924  		req.JobTitle = &builder.jobTitle
  2925  
  2926  	}
  2927  
  2928  	if builder.isFrozenFlag {
  2929  		req.IsFrozen = &builder.isFrozen
  2930  
  2931  	}
  2932  	if builder.geoFlag {
  2933  		req.Geo = &builder.geo
  2934  
  2935  	}
  2936  	return req
  2937  }
  2938  
  2939  type UserContactInfo struct {
  2940  	UserId *string `json:"user_id,omitempty"` // 用户id,值为user_id_type所指定的类型。如果查询的手机号、邮箱不存在,或者无权限查看对应的用户,则此项为空。
  2941  	Mobile *string `json:"mobile,omitempty"`  // 手机号,通过手机号查询时返回
  2942  	Email  *string `json:"email,omitempty"`   // 邮箱,通过邮箱查询时返回
  2943  }
  2944  
  2945  type UserContactInfoBuilder struct {
  2946  	userId     string // 用户id,值为user_id_type所指定的类型。如果查询的手机号、邮箱不存在,或者无权限查看对应的用户,则此项为空。
  2947  	userIdFlag bool
  2948  	mobile     string // 手机号,通过手机号查询时返回
  2949  	mobileFlag bool
  2950  	email      string // 邮箱,通过邮箱查询时返回
  2951  	emailFlag  bool
  2952  }
  2953  
  2954  func NewUserContactInfoBuilder() *UserContactInfoBuilder {
  2955  	builder := &UserContactInfoBuilder{}
  2956  	return builder
  2957  }
  2958  
  2959  // 用户id,值为user_id_type所指定的类型。如果查询的手机号、邮箱不存在,或者无权限查看对应的用户,则此项为空。
  2960  //
  2961  // 示例值:ou_979112345678741d29069abcdef089d4
  2962  func (builder *UserContactInfoBuilder) UserId(userId string) *UserContactInfoBuilder {
  2963  	builder.userId = userId
  2964  	builder.userIdFlag = true
  2965  	return builder
  2966  }
  2967  
  2968  // 手机号,通过手机号查询时返回
  2969  //
  2970  // 示例值:13812345678
  2971  func (builder *UserContactInfoBuilder) Mobile(mobile string) *UserContactInfoBuilder {
  2972  	builder.mobile = mobile
  2973  	builder.mobileFlag = true
  2974  	return builder
  2975  }
  2976  
  2977  // 邮箱,通过邮箱查询时返回
  2978  //
  2979  // 示例值:lisi@z.com
  2980  func (builder *UserContactInfoBuilder) Email(email string) *UserContactInfoBuilder {
  2981  	builder.email = email
  2982  	builder.emailFlag = true
  2983  	return builder
  2984  }
  2985  
  2986  func (builder *UserContactInfoBuilder) Build() *UserContactInfo {
  2987  	req := &UserContactInfo{}
  2988  	if builder.userIdFlag {
  2989  		req.UserId = &builder.userId
  2990  
  2991  	}
  2992  	if builder.mobileFlag {
  2993  		req.Mobile = &builder.mobile
  2994  
  2995  	}
  2996  	if builder.emailFlag {
  2997  		req.Email = &builder.email
  2998  
  2999  	}
  3000  	return req
  3001  }
  3002  
  3003  type UserCustomAttr struct {
  3004  	Type  *string              `json:"type,omitempty"`  // 自定义字段类型   ;- `TEXT`:文本;- `HREF`:网页;- `ENUMERATION`:枚举;- `PICTURE_ENUM`:图片;- `GENERIC_USER`:用户;;具体说明参见常见问题的[用户接口相关问题](/ssl:ttdoc/ugTN1YjL4UTN24CO1UjN/uQzN1YjL0cTN24CN3UjN#77061525)
  3005  	Id    *string              `json:"id,omitempty"`    // 自定义字段ID
  3006  	Value *UserCustomAttrValue `json:"value,omitempty"` // 自定义字段取值
  3007  }
  3008  
  3009  type UserCustomAttrBuilder struct {
  3010  	type_     string // 自定义字段类型   ;- `TEXT`:文本;- `HREF`:网页;- `ENUMERATION`:枚举;- `PICTURE_ENUM`:图片;- `GENERIC_USER`:用户;;具体说明参见常见问题的[用户接口相关问题](/ssl:ttdoc/ugTN1YjL4UTN24CO1UjN/uQzN1YjL0cTN24CN3UjN#77061525)
  3011  	typeFlag  bool
  3012  	id        string // 自定义字段ID
  3013  	idFlag    bool
  3014  	value     *UserCustomAttrValue // 自定义字段取值
  3015  	valueFlag bool
  3016  }
  3017  
  3018  func NewUserCustomAttrBuilder() *UserCustomAttrBuilder {
  3019  	builder := &UserCustomAttrBuilder{}
  3020  	return builder
  3021  }
  3022  
  3023  // 自定义字段类型   ;- `TEXT`:文本;- `HREF`:网页;- `ENUMERATION`:枚举;- `PICTURE_ENUM`:图片;- `GENERIC_USER`:用户;;具体说明参见常见问题的[用户接口相关问题](/ssl:ttdoc/ugTN1YjL4UTN24CO1UjN/uQzN1YjL0cTN24CN3UjN#77061525)
  3024  //
  3025  // 示例值:TEXT
  3026  func (builder *UserCustomAttrBuilder) Type(type_ string) *UserCustomAttrBuilder {
  3027  	builder.type_ = type_
  3028  	builder.typeFlag = true
  3029  	return builder
  3030  }
  3031  
  3032  // 自定义字段ID
  3033  //
  3034  // 示例值:DemoId
  3035  func (builder *UserCustomAttrBuilder) Id(id string) *UserCustomAttrBuilder {
  3036  	builder.id = id
  3037  	builder.idFlag = true
  3038  	return builder
  3039  }
  3040  
  3041  // 自定义字段取值
  3042  //
  3043  // 示例值:
  3044  func (builder *UserCustomAttrBuilder) Value(value *UserCustomAttrValue) *UserCustomAttrBuilder {
  3045  	builder.value = value
  3046  	builder.valueFlag = true
  3047  	return builder
  3048  }
  3049  
  3050  func (builder *UserCustomAttrBuilder) Build() *UserCustomAttr {
  3051  	req := &UserCustomAttr{}
  3052  	if builder.typeFlag {
  3053  		req.Type = &builder.type_
  3054  
  3055  	}
  3056  	if builder.idFlag {
  3057  		req.Id = &builder.id
  3058  
  3059  	}
  3060  	if builder.valueFlag {
  3061  		req.Value = builder.value
  3062  	}
  3063  	return req
  3064  }
  3065  
  3066  type UserCustomAttrValue struct {
  3067  	Text        *string                `json:"text,omitempty"`         // 字段类型为`TEXT`时该参数定义字段值,必填;字段类型为`HREF`时该参数定义网页标题,必填
  3068  	Url         *string                `json:"url,omitempty"`          // 字段类型为 HREF 时,该参数定义默认 URL,例如手机端跳转小程序,PC端跳转网页
  3069  	PcUrl       *string                `json:"pc_url,omitempty"`       // 字段类型为 HREF 时,该参数定义PC端 URL
  3070  	OptionId    *string                `json:"option_id,omitempty"`    // 字段类型为 ENUMERATION 或 PICTURE_ENUM 时,该参数定义选项值
  3071  	OptionValue *string                `json:"option_value,omitempty"` // 选项类型的值。;;表示 成员详情/自定义字段 中选项选中的值
  3072  	Name        *string                `json:"name,omitempty"`         // 选项类型为图片时,表示图片的名称
  3073  	PictureUrl  *string                `json:"picture_url,omitempty"`  // 图片链接
  3074  	GenericUser *CustomAttrGenericUser `json:"generic_user,omitempty"` // 字段类型为 GENERIC_USER 时,该参数定义引用人员
  3075  }
  3076  
  3077  type UserCustomAttrValueBuilder struct {
  3078  	text            string // 字段类型为`TEXT`时该参数定义字段值,必填;字段类型为`HREF`时该参数定义网页标题,必填
  3079  	textFlag        bool
  3080  	url             string // 字段类型为 HREF 时,该参数定义默认 URL,例如手机端跳转小程序,PC端跳转网页
  3081  	urlFlag         bool
  3082  	pcUrl           string // 字段类型为 HREF 时,该参数定义PC端 URL
  3083  	pcUrlFlag       bool
  3084  	optionId        string // 字段类型为 ENUMERATION 或 PICTURE_ENUM 时,该参数定义选项值
  3085  	optionIdFlag    bool
  3086  	optionValue     string // 选项类型的值。;;表示 成员详情/自定义字段 中选项选中的值
  3087  	optionValueFlag bool
  3088  	name            string // 选项类型为图片时,表示图片的名称
  3089  	nameFlag        bool
  3090  	pictureUrl      string // 图片链接
  3091  	pictureUrlFlag  bool
  3092  	genericUser     *CustomAttrGenericUser // 字段类型为 GENERIC_USER 时,该参数定义引用人员
  3093  	genericUserFlag bool
  3094  }
  3095  
  3096  func NewUserCustomAttrValueBuilder() *UserCustomAttrValueBuilder {
  3097  	builder := &UserCustomAttrValueBuilder{}
  3098  	return builder
  3099  }
  3100  
  3101  // 字段类型为`TEXT`时该参数定义字段值,必填;字段类型为`HREF`时该参数定义网页标题,必填
  3102  //
  3103  // 示例值:DemoText
  3104  func (builder *UserCustomAttrValueBuilder) Text(text string) *UserCustomAttrValueBuilder {
  3105  	builder.text = text
  3106  	builder.textFlag = true
  3107  	return builder
  3108  }
  3109  
  3110  // 字段类型为 HREF 时,该参数定义默认 URL,例如手机端跳转小程序,PC端跳转网页
  3111  //
  3112  // 示例值:http://www.fs.cn
  3113  func (builder *UserCustomAttrValueBuilder) Url(url string) *UserCustomAttrValueBuilder {
  3114  	builder.url = url
  3115  	builder.urlFlag = true
  3116  	return builder
  3117  }
  3118  
  3119  // 字段类型为 HREF 时,该参数定义PC端 URL
  3120  //
  3121  // 示例值:http://www.fs.cn
  3122  func (builder *UserCustomAttrValueBuilder) PcUrl(pcUrl string) *UserCustomAttrValueBuilder {
  3123  	builder.pcUrl = pcUrl
  3124  	builder.pcUrlFlag = true
  3125  	return builder
  3126  }
  3127  
  3128  // 字段类型为 ENUMERATION 或 PICTURE_ENUM 时,该参数定义选项值
  3129  //
  3130  // 示例值:edcvfrtg
  3131  func (builder *UserCustomAttrValueBuilder) OptionId(optionId string) *UserCustomAttrValueBuilder {
  3132  	builder.optionId = optionId
  3133  	builder.optionIdFlag = true
  3134  	return builder
  3135  }
  3136  
  3137  // 选项类型的值。;;表示 成员详情/自定义字段 中选项选中的值
  3138  //
  3139  // 示例值:option
  3140  func (builder *UserCustomAttrValueBuilder) OptionValue(optionValue string) *UserCustomAttrValueBuilder {
  3141  	builder.optionValue = optionValue
  3142  	builder.optionValueFlag = true
  3143  	return builder
  3144  }
  3145  
  3146  // 选项类型为图片时,表示图片的名称
  3147  //
  3148  // 示例值:name
  3149  func (builder *UserCustomAttrValueBuilder) Name(name string) *UserCustomAttrValueBuilder {
  3150  	builder.name = name
  3151  	builder.nameFlag = true
  3152  	return builder
  3153  }
  3154  
  3155  // 图片链接
  3156  //
  3157  // 示例值:https://xxxxxxxxxxxxxxxxxx
  3158  func (builder *UserCustomAttrValueBuilder) PictureUrl(pictureUrl string) *UserCustomAttrValueBuilder {
  3159  	builder.pictureUrl = pictureUrl
  3160  	builder.pictureUrlFlag = true
  3161  	return builder
  3162  }
  3163  
  3164  // 字段类型为 GENERIC_USER 时,该参数定义引用人员
  3165  //
  3166  // 示例值:
  3167  func (builder *UserCustomAttrValueBuilder) GenericUser(genericUser *CustomAttrGenericUser) *UserCustomAttrValueBuilder {
  3168  	builder.genericUser = genericUser
  3169  	builder.genericUserFlag = true
  3170  	return builder
  3171  }
  3172  
  3173  func (builder *UserCustomAttrValueBuilder) Build() *UserCustomAttrValue {
  3174  	req := &UserCustomAttrValue{}
  3175  	if builder.textFlag {
  3176  		req.Text = &builder.text
  3177  
  3178  	}
  3179  	if builder.urlFlag {
  3180  		req.Url = &builder.url
  3181  
  3182  	}
  3183  	if builder.pcUrlFlag {
  3184  		req.PcUrl = &builder.pcUrl
  3185  
  3186  	}
  3187  	if builder.optionIdFlag {
  3188  		req.OptionId = &builder.optionId
  3189  
  3190  	}
  3191  	if builder.optionValueFlag {
  3192  		req.OptionValue = &builder.optionValue
  3193  
  3194  	}
  3195  	if builder.nameFlag {
  3196  		req.Name = &builder.name
  3197  
  3198  	}
  3199  	if builder.pictureUrlFlag {
  3200  		req.PictureUrl = &builder.pictureUrl
  3201  
  3202  	}
  3203  	if builder.genericUserFlag {
  3204  		req.GenericUser = builder.genericUser
  3205  	}
  3206  	return req
  3207  }
  3208  
  3209  type UserEvent struct {
  3210  	OpenId          *string `json:"open_id,omitempty"`          // 用户的open_id [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  3211  	UnionId         *string `json:"union_id,omitempty"`         // 用户的union_id [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  3212  	UserId          *string `json:"user_id,omitempty"`          // 租户内用户的唯一标识 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  3213  	Name            *string `json:"name,omitempty"`             // 用户名
  3214  	EnName          *string `json:"en_name,omitempty"`          // 英文名
  3215  	Nickname        *string `json:"nickname,omitempty"`         // 别名
  3216  	Email           *string `json:"email,omitempty"`            // 邮箱
  3217  	EnterpriseEmail *string `json:"enterprise_email,omitempty"` // 企业邮箱
  3218  	JobTitle        *string `json:"job_title,omitempty"`        // 职务
  3219  	Mobile          *string `json:"mobile,omitempty"`           // 手机号
  3220  
  3221  	Gender        *int        `json:"gender,omitempty"`         // 性别
  3222  	Avatar        *AvatarInfo `json:"avatar,omitempty"`         // 用户头像信息
  3223  	Status        *UserStatus `json:"status,omitempty"`         // 用户状态
  3224  	DepartmentIds []string    `json:"department_ids,omitempty"` // 用户所属部门的ID列表
  3225  	LeaderUserId  *string     `json:"leader_user_id,omitempty"` // 用户的直接主管的用户open_id [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  3226  	City          *string     `json:"city,omitempty"`           // 城市
  3227  	Country       *string     `json:"country,omitempty"`        // 国家
  3228  	WorkStation   *string     `json:"work_station,omitempty"`   // 工位
  3229  	JoinTime      *int        `json:"join_time,omitempty"`      // 入职时间
  3230  
  3231  	EmployeeNo   *string `json:"employee_no,omitempty"`   // 工号
  3232  	EmployeeType *int    `json:"employee_type,omitempty"` // 员工类型
  3233  
  3234  	Orders []*UserOrder `json:"orders,omitempty"` // 用户排序信息
  3235  
  3236  	CustomAttrs []*UserCustomAttr `json:"custom_attrs,omitempty"` // 自定义属性
  3237  }
  3238  
  3239  type UserEventBuilder struct {
  3240  	openId              string // 用户的open_id [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  3241  	openIdFlag          bool
  3242  	unionId             string // 用户的union_id [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  3243  	unionIdFlag         bool
  3244  	userId              string // 租户内用户的唯一标识 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  3245  	userIdFlag          bool
  3246  	name                string // 用户名
  3247  	nameFlag            bool
  3248  	enName              string // 英文名
  3249  	enNameFlag          bool
  3250  	nickname            string // 别名
  3251  	nicknameFlag        bool
  3252  	email               string // 邮箱
  3253  	emailFlag           bool
  3254  	enterpriseEmail     string // 企业邮箱
  3255  	enterpriseEmailFlag bool
  3256  	jobTitle            string // 职务
  3257  	jobTitleFlag        bool
  3258  	mobile              string // 手机号
  3259  	mobileFlag          bool
  3260  
  3261  	gender            int // 性别
  3262  	genderFlag        bool
  3263  	avatar            *AvatarInfo // 用户头像信息
  3264  	avatarFlag        bool
  3265  	status            *UserStatus // 用户状态
  3266  	statusFlag        bool
  3267  	departmentIds     []string // 用户所属部门的ID列表
  3268  	departmentIdsFlag bool
  3269  	leaderUserId      string // 用户的直接主管的用户open_id [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  3270  	leaderUserIdFlag  bool
  3271  	city              string // 城市
  3272  	cityFlag          bool
  3273  	country           string // 国家
  3274  	countryFlag       bool
  3275  	workStation       string // 工位
  3276  	workStationFlag   bool
  3277  	joinTime          int // 入职时间
  3278  	joinTimeFlag      bool
  3279  
  3280  	employeeNo       string // 工号
  3281  	employeeNoFlag   bool
  3282  	employeeType     int // 员工类型
  3283  	employeeTypeFlag bool
  3284  
  3285  	orders     []*UserOrder // 用户排序信息
  3286  	ordersFlag bool
  3287  
  3288  	customAttrs     []*UserCustomAttr // 自定义属性
  3289  	customAttrsFlag bool
  3290  }
  3291  
  3292  func NewUserEventBuilder() *UserEventBuilder {
  3293  	builder := &UserEventBuilder{}
  3294  	return builder
  3295  }
  3296  
  3297  // 用户的open_id [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  3298  //
  3299  // 示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
  3300  func (builder *UserEventBuilder) OpenId(openId string) *UserEventBuilder {
  3301  	builder.openId = openId
  3302  	builder.openIdFlag = true
  3303  	return builder
  3304  }
  3305  
  3306  // 用户的union_id [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  3307  //
  3308  // 示例值:on_576833b917gda3d939b9a3c2d53e72c8
  3309  func (builder *UserEventBuilder) UnionId(unionId string) *UserEventBuilder {
  3310  	builder.unionId = unionId
  3311  	builder.unionIdFlag = true
  3312  	return builder
  3313  }
  3314  
  3315  // 租户内用户的唯一标识 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  3316  //
  3317  // 示例值:e33ggbyz
  3318  func (builder *UserEventBuilder) UserId(userId string) *UserEventBuilder {
  3319  	builder.userId = userId
  3320  	builder.userIdFlag = true
  3321  	return builder
  3322  }
  3323  
  3324  // 用户名
  3325  //
  3326  // 示例值:张三
  3327  func (builder *UserEventBuilder) Name(name string) *UserEventBuilder {
  3328  	builder.name = name
  3329  	builder.nameFlag = true
  3330  	return builder
  3331  }
  3332  
  3333  // 英文名
  3334  //
  3335  // 示例值:San Zhang
  3336  func (builder *UserEventBuilder) EnName(enName string) *UserEventBuilder {
  3337  	builder.enName = enName
  3338  	builder.enNameFlag = true
  3339  	return builder
  3340  }
  3341  
  3342  // 别名
  3343  //
  3344  // 示例值:Sunny Zhang
  3345  func (builder *UserEventBuilder) Nickname(nickname string) *UserEventBuilder {
  3346  	builder.nickname = nickname
  3347  	builder.nicknameFlag = true
  3348  	return builder
  3349  }
  3350  
  3351  // 邮箱
  3352  //
  3353  // 示例值:zhangsan@gmail.com
  3354  func (builder *UserEventBuilder) Email(email string) *UserEventBuilder {
  3355  	builder.email = email
  3356  	builder.emailFlag = true
  3357  	return builder
  3358  }
  3359  
  3360  // 企业邮箱
  3361  //
  3362  // 示例值:demo@mail.com
  3363  func (builder *UserEventBuilder) EnterpriseEmail(enterpriseEmail string) *UserEventBuilder {
  3364  	builder.enterpriseEmail = enterpriseEmail
  3365  	builder.enterpriseEmailFlag = true
  3366  	return builder
  3367  }
  3368  
  3369  // 职务
  3370  //
  3371  // 示例值:软件工程师
  3372  func (builder *UserEventBuilder) JobTitle(jobTitle string) *UserEventBuilder {
  3373  	builder.jobTitle = jobTitle
  3374  	builder.jobTitleFlag = true
  3375  	return builder
  3376  }
  3377  
  3378  // 手机号
  3379  //
  3380  // 示例值:12345678910
  3381  func (builder *UserEventBuilder) Mobile(mobile string) *UserEventBuilder {
  3382  	builder.mobile = mobile
  3383  	builder.mobileFlag = true
  3384  	return builder
  3385  }
  3386  
  3387  // 性别
  3388  //
  3389  // 示例值:1
  3390  func (builder *UserEventBuilder) Gender(gender int) *UserEventBuilder {
  3391  	builder.gender = gender
  3392  	builder.genderFlag = true
  3393  	return builder
  3394  }
  3395  
  3396  // 用户头像信息
  3397  //
  3398  // 示例值:
  3399  func (builder *UserEventBuilder) Avatar(avatar *AvatarInfo) *UserEventBuilder {
  3400  	builder.avatar = avatar
  3401  	builder.avatarFlag = true
  3402  	return builder
  3403  }
  3404  
  3405  // 用户状态
  3406  //
  3407  // 示例值:
  3408  func (builder *UserEventBuilder) Status(status *UserStatus) *UserEventBuilder {
  3409  	builder.status = status
  3410  	builder.statusFlag = true
  3411  	return builder
  3412  }
  3413  
  3414  // 用户所属部门的ID列表
  3415  //
  3416  // 示例值:
  3417  func (builder *UserEventBuilder) DepartmentIds(departmentIds []string) *UserEventBuilder {
  3418  	builder.departmentIds = departmentIds
  3419  	builder.departmentIdsFlag = true
  3420  	return builder
  3421  }
  3422  
  3423  // 用户的直接主管的用户open_id [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  3424  //
  3425  // 示例值:ou_3ghm8a2u0eftg0ff377125s5dd275z09
  3426  func (builder *UserEventBuilder) LeaderUserId(leaderUserId string) *UserEventBuilder {
  3427  	builder.leaderUserId = leaderUserId
  3428  	builder.leaderUserIdFlag = true
  3429  	return builder
  3430  }
  3431  
  3432  // 城市
  3433  //
  3434  // 示例值:杭州
  3435  func (builder *UserEventBuilder) City(city string) *UserEventBuilder {
  3436  	builder.city = city
  3437  	builder.cityFlag = true
  3438  	return builder
  3439  }
  3440  
  3441  // 国家
  3442  //
  3443  // 示例值:中国
  3444  func (builder *UserEventBuilder) Country(country string) *UserEventBuilder {
  3445  	builder.country = country
  3446  	builder.countryFlag = true
  3447  	return builder
  3448  }
  3449  
  3450  // 工位
  3451  //
  3452  // 示例值:杭州
  3453  func (builder *UserEventBuilder) WorkStation(workStation string) *UserEventBuilder {
  3454  	builder.workStation = workStation
  3455  	builder.workStationFlag = true
  3456  	return builder
  3457  }
  3458  
  3459  // 入职时间
  3460  //
  3461  // 示例值:1615381702
  3462  func (builder *UserEventBuilder) JoinTime(joinTime int) *UserEventBuilder {
  3463  	builder.joinTime = joinTime
  3464  	builder.joinTimeFlag = true
  3465  	return builder
  3466  }
  3467  
  3468  // 工号
  3469  //
  3470  // 示例值:e33ggbyz
  3471  func (builder *UserEventBuilder) EmployeeNo(employeeNo string) *UserEventBuilder {
  3472  	builder.employeeNo = employeeNo
  3473  	builder.employeeNoFlag = true
  3474  	return builder
  3475  }
  3476  
  3477  // 员工类型
  3478  //
  3479  // 示例值:1
  3480  func (builder *UserEventBuilder) EmployeeType(employeeType int) *UserEventBuilder {
  3481  	builder.employeeType = employeeType
  3482  	builder.employeeTypeFlag = true
  3483  	return builder
  3484  }
  3485  
  3486  // 用户排序信息
  3487  //
  3488  // 示例值:
  3489  func (builder *UserEventBuilder) Orders(orders []*UserOrder) *UserEventBuilder {
  3490  	builder.orders = orders
  3491  	builder.ordersFlag = true
  3492  	return builder
  3493  }
  3494  
  3495  // 自定义属性
  3496  //
  3497  // 示例值:
  3498  func (builder *UserEventBuilder) CustomAttrs(customAttrs []*UserCustomAttr) *UserEventBuilder {
  3499  	builder.customAttrs = customAttrs
  3500  	builder.customAttrsFlag = true
  3501  	return builder
  3502  }
  3503  
  3504  func (builder *UserEventBuilder) Build() *UserEvent {
  3505  	req := &UserEvent{}
  3506  	if builder.openIdFlag {
  3507  		req.OpenId = &builder.openId
  3508  
  3509  	}
  3510  	if builder.unionIdFlag {
  3511  		req.UnionId = &builder.unionId
  3512  
  3513  	}
  3514  	if builder.userIdFlag {
  3515  		req.UserId = &builder.userId
  3516  
  3517  	}
  3518  	if builder.nameFlag {
  3519  		req.Name = &builder.name
  3520  
  3521  	}
  3522  	if builder.enNameFlag {
  3523  		req.EnName = &builder.enName
  3524  
  3525  	}
  3526  	if builder.nicknameFlag {
  3527  		req.Nickname = &builder.nickname
  3528  
  3529  	}
  3530  	if builder.emailFlag {
  3531  		req.Email = &builder.email
  3532  
  3533  	}
  3534  	if builder.enterpriseEmailFlag {
  3535  		req.EnterpriseEmail = &builder.enterpriseEmail
  3536  
  3537  	}
  3538  	if builder.jobTitleFlag {
  3539  		req.JobTitle = &builder.jobTitle
  3540  
  3541  	}
  3542  	if builder.mobileFlag {
  3543  		req.Mobile = &builder.mobile
  3544  
  3545  	}
  3546  
  3547  	if builder.genderFlag {
  3548  		req.Gender = &builder.gender
  3549  
  3550  	}
  3551  	if builder.avatarFlag {
  3552  		req.Avatar = builder.avatar
  3553  	}
  3554  	if builder.statusFlag {
  3555  		req.Status = builder.status
  3556  	}
  3557  	if builder.departmentIdsFlag {
  3558  		req.DepartmentIds = builder.departmentIds
  3559  	}
  3560  	if builder.leaderUserIdFlag {
  3561  		req.LeaderUserId = &builder.leaderUserId
  3562  
  3563  	}
  3564  	if builder.cityFlag {
  3565  		req.City = &builder.city
  3566  
  3567  	}
  3568  	if builder.countryFlag {
  3569  		req.Country = &builder.country
  3570  
  3571  	}
  3572  	if builder.workStationFlag {
  3573  		req.WorkStation = &builder.workStation
  3574  
  3575  	}
  3576  	if builder.joinTimeFlag {
  3577  		req.JoinTime = &builder.joinTime
  3578  
  3579  	}
  3580  
  3581  	if builder.employeeNoFlag {
  3582  		req.EmployeeNo = &builder.employeeNo
  3583  
  3584  	}
  3585  	if builder.employeeTypeFlag {
  3586  		req.EmployeeType = &builder.employeeType
  3587  
  3588  	}
  3589  
  3590  	if builder.ordersFlag {
  3591  		req.Orders = builder.orders
  3592  	}
  3593  
  3594  	if builder.customAttrsFlag {
  3595  		req.CustomAttrs = builder.customAttrs
  3596  	}
  3597  	return req
  3598  }
  3599  
  3600  type UserGroup struct {
  3601  	UserGroupId *string `json:"user_group_id,omitempty"` // 用户组的自定义ID
  3602  	Name        *string `json:"name,omitempty"`          // 用户组的名称
  3603  	Type        *int    `json:"type,omitempty"`          // 用户组的类型
  3604  	MemberCount *int    `json:"member_count,omitempty"`  // 成员数量
  3605  	Status      *int    `json:"status,omitempty"`        // 用户组状态
  3606  }
  3607  
  3608  type UserGroupBuilder struct {
  3609  	userGroupId     string // 用户组的自定义ID
  3610  	userGroupIdFlag bool
  3611  	name            string // 用户组的名称
  3612  	nameFlag        bool
  3613  	type_           int // 用户组的类型
  3614  	typeFlag        bool
  3615  	memberCount     int // 成员数量
  3616  	memberCountFlag bool
  3617  	status          int // 用户组状态
  3618  	statusFlag      bool
  3619  }
  3620  
  3621  func NewUserGroupBuilder() *UserGroupBuilder {
  3622  	builder := &UserGroupBuilder{}
  3623  	return builder
  3624  }
  3625  
  3626  // 用户组的自定义ID
  3627  //
  3628  // 示例值:test
  3629  func (builder *UserGroupBuilder) UserGroupId(userGroupId string) *UserGroupBuilder {
  3630  	builder.userGroupId = userGroupId
  3631  	builder.userGroupIdFlag = true
  3632  	return builder
  3633  }
  3634  
  3635  // 用户组的名称
  3636  //
  3637  // 示例值:userGroupName
  3638  func (builder *UserGroupBuilder) Name(name string) *UserGroupBuilder {
  3639  	builder.name = name
  3640  	builder.nameFlag = true
  3641  	return builder
  3642  }
  3643  
  3644  // 用户组的类型
  3645  //
  3646  // 示例值:1
  3647  func (builder *UserGroupBuilder) Type(type_ int) *UserGroupBuilder {
  3648  	builder.type_ = type_
  3649  	builder.typeFlag = true
  3650  	return builder
  3651  }
  3652  
  3653  // 成员数量
  3654  //
  3655  // 示例值:10
  3656  func (builder *UserGroupBuilder) MemberCount(memberCount int) *UserGroupBuilder {
  3657  	builder.memberCount = memberCount
  3658  	builder.memberCountFlag = true
  3659  	return builder
  3660  }
  3661  
  3662  // 用户组状态
  3663  //
  3664  // 示例值:1
  3665  func (builder *UserGroupBuilder) Status(status int) *UserGroupBuilder {
  3666  	builder.status = status
  3667  	builder.statusFlag = true
  3668  	return builder
  3669  }
  3670  
  3671  func (builder *UserGroupBuilder) Build() *UserGroup {
  3672  	req := &UserGroup{}
  3673  	if builder.userGroupIdFlag {
  3674  		req.UserGroupId = &builder.userGroupId
  3675  
  3676  	}
  3677  	if builder.nameFlag {
  3678  		req.Name = &builder.name
  3679  
  3680  	}
  3681  	if builder.typeFlag {
  3682  		req.Type = &builder.type_
  3683  
  3684  	}
  3685  	if builder.memberCountFlag {
  3686  		req.MemberCount = &builder.memberCount
  3687  
  3688  	}
  3689  	if builder.statusFlag {
  3690  		req.Status = &builder.status
  3691  
  3692  	}
  3693  	return req
  3694  }
  3695  
  3696  type UserGroupMember struct {
  3697  }
  3698  
  3699  type UserOrder struct {
  3700  	DepartmentId    *string `json:"department_id,omitempty"`    // 排序信息对应的部门ID, ID值与查询参数中的department_id_type 对应。;;表示用户所在的、且需要排序的部门。;;不同 ID 的说明参见及获取方式参见 [部门ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview)
  3701  	UserOrder       *int    `json:"user_order,omitempty"`       // 用户在其直属部门内的排序,数值越大,排序越靠前
  3702  	DepartmentOrder *int    `json:"department_order,omitempty"` // 用户所属的多个部门间的排序,数值越大,排序越靠前
  3703  }
  3704  
  3705  type UserOrderBuilder struct {
  3706  	departmentId        string // 排序信息对应的部门ID, ID值与查询参数中的department_id_type 对应。;;表示用户所在的、且需要排序的部门。;;不同 ID 的说明参见及获取方式参见 [部门ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview)
  3707  	departmentIdFlag    bool
  3708  	userOrder           int // 用户在其直属部门内的排序,数值越大,排序越靠前
  3709  	userOrderFlag       bool
  3710  	departmentOrder     int // 用户所属的多个部门间的排序,数值越大,排序越靠前
  3711  	departmentOrderFlag bool
  3712  }
  3713  
  3714  func NewUserOrderBuilder() *UserOrderBuilder {
  3715  	builder := &UserOrderBuilder{}
  3716  	return builder
  3717  }
  3718  
  3719  // 排序信息对应的部门ID, ID值与查询参数中的department_id_type 对应。;;表示用户所在的、且需要排序的部门。;;不同 ID 的说明参见及获取方式参见 [部门ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview)
  3720  //
  3721  // 示例值:od-4e6ac4d14bcd5071a37a39de902c7141
  3722  func (builder *UserOrderBuilder) DepartmentId(departmentId string) *UserOrderBuilder {
  3723  	builder.departmentId = departmentId
  3724  	builder.departmentIdFlag = true
  3725  	return builder
  3726  }
  3727  
  3728  // 用户在其直属部门内的排序,数值越大,排序越靠前
  3729  //
  3730  // 示例值:100
  3731  func (builder *UserOrderBuilder) UserOrder(userOrder int) *UserOrderBuilder {
  3732  	builder.userOrder = userOrder
  3733  	builder.userOrderFlag = true
  3734  	return builder
  3735  }
  3736  
  3737  // 用户所属的多个部门间的排序,数值越大,排序越靠前
  3738  //
  3739  // 示例值:100
  3740  func (builder *UserOrderBuilder) DepartmentOrder(departmentOrder int) *UserOrderBuilder {
  3741  	builder.departmentOrder = departmentOrder
  3742  	builder.departmentOrderFlag = true
  3743  	return builder
  3744  }
  3745  
  3746  func (builder *UserOrderBuilder) Build() *UserOrder {
  3747  	req := &UserOrder{}
  3748  	if builder.departmentIdFlag {
  3749  		req.DepartmentId = &builder.departmentId
  3750  
  3751  	}
  3752  	if builder.userOrderFlag {
  3753  		req.UserOrder = &builder.userOrder
  3754  
  3755  	}
  3756  	if builder.departmentOrderFlag {
  3757  		req.DepartmentOrder = &builder.departmentOrder
  3758  
  3759  	}
  3760  	return req
  3761  }
  3762  
  3763  type UserPosition struct {
  3764  	PositionCode       *string `json:"position_code,omitempty"`        // 岗位Code
  3765  	PositionName       *string `json:"position_name,omitempty"`        // 岗位名称
  3766  	DepartmentId       *string `json:"department_id,omitempty"`        // 岗位部门ID
  3767  	LeaderUserId       *string `json:"leader_user_id,omitempty"`       // 上级领导ID
  3768  	LeaderPositionCode *string `json:"leader_position_code,omitempty"` // 本岗位领导的岗位code
  3769  	IsMajor            *bool   `json:"is_major,omitempty"`             // 是否主岗,只允许一个主岗sd
  3770  }
  3771  
  3772  type UserPositionBuilder struct {
  3773  	positionCode           string // 岗位Code
  3774  	positionCodeFlag       bool
  3775  	positionName           string // 岗位名称
  3776  	positionNameFlag       bool
  3777  	departmentId           string // 岗位部门ID
  3778  	departmentIdFlag       bool
  3779  	leaderUserId           string // 上级领导ID
  3780  	leaderUserIdFlag       bool
  3781  	leaderPositionCode     string // 本岗位领导的岗位code
  3782  	leaderPositionCodeFlag bool
  3783  	isMajor                bool // 是否主岗,只允许一个主岗sd
  3784  	isMajorFlag            bool
  3785  }
  3786  
  3787  func NewUserPositionBuilder() *UserPositionBuilder {
  3788  	builder := &UserPositionBuilder{}
  3789  	return builder
  3790  }
  3791  
  3792  // 岗位Code
  3793  //
  3794  // 示例值:
  3795  func (builder *UserPositionBuilder) PositionCode(positionCode string) *UserPositionBuilder {
  3796  	builder.positionCode = positionCode
  3797  	builder.positionCodeFlag = true
  3798  	return builder
  3799  }
  3800  
  3801  // 岗位名称
  3802  //
  3803  // 示例值:
  3804  func (builder *UserPositionBuilder) PositionName(positionName string) *UserPositionBuilder {
  3805  	builder.positionName = positionName
  3806  	builder.positionNameFlag = true
  3807  	return builder
  3808  }
  3809  
  3810  // 岗位部门ID
  3811  //
  3812  // 示例值:
  3813  func (builder *UserPositionBuilder) DepartmentId(departmentId string) *UserPositionBuilder {
  3814  	builder.departmentId = departmentId
  3815  	builder.departmentIdFlag = true
  3816  	return builder
  3817  }
  3818  
  3819  // 上级领导ID
  3820  //
  3821  // 示例值:
  3822  func (builder *UserPositionBuilder) LeaderUserId(leaderUserId string) *UserPositionBuilder {
  3823  	builder.leaderUserId = leaderUserId
  3824  	builder.leaderUserIdFlag = true
  3825  	return builder
  3826  }
  3827  
  3828  // 本岗位领导的岗位code
  3829  //
  3830  // 示例值:
  3831  func (builder *UserPositionBuilder) LeaderPositionCode(leaderPositionCode string) *UserPositionBuilder {
  3832  	builder.leaderPositionCode = leaderPositionCode
  3833  	builder.leaderPositionCodeFlag = true
  3834  	return builder
  3835  }
  3836  
  3837  // 是否主岗,只允许一个主岗sd
  3838  //
  3839  // 示例值:
  3840  func (builder *UserPositionBuilder) IsMajor(isMajor bool) *UserPositionBuilder {
  3841  	builder.isMajor = isMajor
  3842  	builder.isMajorFlag = true
  3843  	return builder
  3844  }
  3845  
  3846  func (builder *UserPositionBuilder) Build() *UserPosition {
  3847  	req := &UserPosition{}
  3848  	if builder.positionCodeFlag {
  3849  		req.PositionCode = &builder.positionCode
  3850  
  3851  	}
  3852  	if builder.positionNameFlag {
  3853  		req.PositionName = &builder.positionName
  3854  
  3855  	}
  3856  	if builder.departmentIdFlag {
  3857  		req.DepartmentId = &builder.departmentId
  3858  
  3859  	}
  3860  	if builder.leaderUserIdFlag {
  3861  		req.LeaderUserId = &builder.leaderUserId
  3862  
  3863  	}
  3864  	if builder.leaderPositionCodeFlag {
  3865  		req.LeaderPositionCode = &builder.leaderPositionCode
  3866  
  3867  	}
  3868  	if builder.isMajorFlag {
  3869  		req.IsMajor = &builder.isMajor
  3870  
  3871  	}
  3872  	return req
  3873  }
  3874  
  3875  type UserStatus struct {
  3876  	IsFrozen    *bool `json:"is_frozen,omitempty"`    // 是否暂停
  3877  	IsResigned  *bool `json:"is_resigned,omitempty"`  // 是否离职
  3878  	IsActivated *bool `json:"is_activated,omitempty"` // 是否激活
  3879  	IsExited    *bool `json:"is_exited,omitempty"`    // 是否主动退出,主动退出一段时间后用户会自动转为已离职
  3880  	IsUnjoin    *bool `json:"is_unjoin,omitempty"`    // 是否未加入,需要用户自主确认才能加入团队
  3881  }
  3882  
  3883  type UserStatusBuilder struct {
  3884  	isFrozen        bool // 是否暂停
  3885  	isFrozenFlag    bool
  3886  	isResigned      bool // 是否离职
  3887  	isResignedFlag  bool
  3888  	isActivated     bool // 是否激活
  3889  	isActivatedFlag bool
  3890  	isExited        bool // 是否主动退出,主动退出一段时间后用户会自动转为已离职
  3891  	isExitedFlag    bool
  3892  	isUnjoin        bool // 是否未加入,需要用户自主确认才能加入团队
  3893  	isUnjoinFlag    bool
  3894  }
  3895  
  3896  func NewUserStatusBuilder() *UserStatusBuilder {
  3897  	builder := &UserStatusBuilder{}
  3898  	return builder
  3899  }
  3900  
  3901  // 是否暂停
  3902  //
  3903  // 示例值:false
  3904  func (builder *UserStatusBuilder) IsFrozen(isFrozen bool) *UserStatusBuilder {
  3905  	builder.isFrozen = isFrozen
  3906  	builder.isFrozenFlag = true
  3907  	return builder
  3908  }
  3909  
  3910  // 是否离职
  3911  //
  3912  // 示例值:false
  3913  func (builder *UserStatusBuilder) IsResigned(isResigned bool) *UserStatusBuilder {
  3914  	builder.isResigned = isResigned
  3915  	builder.isResignedFlag = true
  3916  	return builder
  3917  }
  3918  
  3919  // 是否激活
  3920  //
  3921  // 示例值:true
  3922  func (builder *UserStatusBuilder) IsActivated(isActivated bool) *UserStatusBuilder {
  3923  	builder.isActivated = isActivated
  3924  	builder.isActivatedFlag = true
  3925  	return builder
  3926  }
  3927  
  3928  // 是否主动退出,主动退出一段时间后用户会自动转为已离职
  3929  //
  3930  // 示例值:false
  3931  func (builder *UserStatusBuilder) IsExited(isExited bool) *UserStatusBuilder {
  3932  	builder.isExited = isExited
  3933  	builder.isExitedFlag = true
  3934  	return builder
  3935  }
  3936  
  3937  // 是否未加入,需要用户自主确认才能加入团队
  3938  //
  3939  // 示例值:false
  3940  func (builder *UserStatusBuilder) IsUnjoin(isUnjoin bool) *UserStatusBuilder {
  3941  	builder.isUnjoin = isUnjoin
  3942  	builder.isUnjoinFlag = true
  3943  	return builder
  3944  }
  3945  
  3946  func (builder *UserStatusBuilder) Build() *UserStatus {
  3947  	req := &UserStatus{}
  3948  	if builder.isFrozenFlag {
  3949  		req.IsFrozen = &builder.isFrozen
  3950  
  3951  	}
  3952  	if builder.isResignedFlag {
  3953  		req.IsResigned = &builder.isResigned
  3954  
  3955  	}
  3956  	if builder.isActivatedFlag {
  3957  		req.IsActivated = &builder.isActivated
  3958  
  3959  	}
  3960  	if builder.isExitedFlag {
  3961  		req.IsExited = &builder.isExited
  3962  
  3963  	}
  3964  	if builder.isUnjoinFlag {
  3965  		req.IsUnjoin = &builder.isUnjoin
  3966  
  3967  	}
  3968  	return req
  3969  }
  3970  
  3971  type ListCustomAttrReqBuilder struct {
  3972  	apiReq *larkcore.ApiReq
  3973  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  3974  }
  3975  
  3976  func NewListCustomAttrReqBuilder() *ListCustomAttrReqBuilder {
  3977  	builder := &ListCustomAttrReqBuilder{}
  3978  	builder.apiReq = &larkcore.ApiReq{
  3979  		PathParams:  larkcore.PathParams{},
  3980  		QueryParams: larkcore.QueryParams{},
  3981  	}
  3982  	return builder
  3983  }
  3984  
  3985  // 最大返回多少记录,当使用迭代器访问时才有效
  3986  func (builder *ListCustomAttrReqBuilder) Limit(limit int) *ListCustomAttrReqBuilder {
  3987  	builder.limit = limit
  3988  	return builder
  3989  }
  3990  
  3991  // 分页大小
  3992  //
  3993  // 示例值:10
  3994  func (builder *ListCustomAttrReqBuilder) PageSize(pageSize int) *ListCustomAttrReqBuilder {
  3995  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  3996  	return builder
  3997  }
  3998  
  3999  // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果
  4000  //
  4001  // 示例值:AQD9/Rn9eij9Pm39ED40/RYU5lvOM4s6zgbeeNNaWd%2BVKwAsoreeRWk0J2noGvJy
  4002  func (builder *ListCustomAttrReqBuilder) PageToken(pageToken string) *ListCustomAttrReqBuilder {
  4003  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  4004  	return builder
  4005  }
  4006  
  4007  func (builder *ListCustomAttrReqBuilder) Build() *ListCustomAttrReq {
  4008  	req := &ListCustomAttrReq{}
  4009  	req.apiReq = &larkcore.ApiReq{}
  4010  	req.Limit = builder.limit
  4011  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4012  	return req
  4013  }
  4014  
  4015  type ListCustomAttrReq struct {
  4016  	apiReq *larkcore.ApiReq
  4017  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
  4018  
  4019  }
  4020  
  4021  type ListCustomAttrRespData struct {
  4022  	Items     []*CustomAttr `json:"items,omitempty"`      // 自定义字段定义
  4023  	PageToken *string       `json:"page_token,omitempty"` //
  4024  	HasMore   *bool         `json:"has_more,omitempty"`   // 是否还有下一页
  4025  }
  4026  
  4027  type ListCustomAttrResp struct {
  4028  	*larkcore.ApiResp `json:"-"`
  4029  	larkcore.CodeError
  4030  	Data *ListCustomAttrRespData `json:"data"` // 业务数据
  4031  }
  4032  
  4033  func (resp *ListCustomAttrResp) Success() bool {
  4034  	return resp.Code == 0
  4035  }
  4036  
  4037  type ChildrenDepartmentReqBuilder struct {
  4038  	apiReq *larkcore.ApiReq
  4039  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  4040  }
  4041  
  4042  func NewChildrenDepartmentReqBuilder() *ChildrenDepartmentReqBuilder {
  4043  	builder := &ChildrenDepartmentReqBuilder{}
  4044  	builder.apiReq = &larkcore.ApiReq{
  4045  		PathParams:  larkcore.PathParams{},
  4046  		QueryParams: larkcore.QueryParams{},
  4047  	}
  4048  	return builder
  4049  }
  4050  
  4051  // 最大返回多少记录,当使用迭代器访问时才有效
  4052  func (builder *ChildrenDepartmentReqBuilder) Limit(limit int) *ChildrenDepartmentReqBuilder {
  4053  	builder.limit = limit
  4054  	return builder
  4055  }
  4056  
  4057  // 部门ID,根部门的部门ID 为0;;department_id的获取方式参见 [部门ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0)
  4058  //
  4059  // 示例值:od-4e6ac4d14bcd5071a37a39de902c7141
  4060  func (builder *ChildrenDepartmentReqBuilder) DepartmentId(departmentId string) *ChildrenDepartmentReqBuilder {
  4061  	builder.apiReq.PathParams.Set("department_id", fmt.Sprint(departmentId))
  4062  	return builder
  4063  }
  4064  
  4065  // 此次调用中使用的用户ID的类型
  4066  //
  4067  // 示例值:
  4068  func (builder *ChildrenDepartmentReqBuilder) UserIdType(userIdType string) *ChildrenDepartmentReqBuilder {
  4069  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  4070  	return builder
  4071  }
  4072  
  4073  // 此次调用中使用的部门ID的类型;;不同 ID 的说明与department_id的获取方式参见 [部门ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0)
  4074  //
  4075  // 示例值:open_department_id
  4076  func (builder *ChildrenDepartmentReqBuilder) DepartmentIdType(departmentIdType string) *ChildrenDepartmentReqBuilder {
  4077  	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
  4078  	return builder
  4079  }
  4080  
  4081  // 是否递归获取子部门
  4082  //
  4083  // 示例值:false
  4084  func (builder *ChildrenDepartmentReqBuilder) FetchChild(fetchChild bool) *ChildrenDepartmentReqBuilder {
  4085  	builder.apiReq.QueryParams.Set("fetch_child", fmt.Sprint(fetchChild))
  4086  	return builder
  4087  }
  4088  
  4089  // 分页大小
  4090  //
  4091  // 示例值:10
  4092  func (builder *ChildrenDepartmentReqBuilder) PageSize(pageSize int) *ChildrenDepartmentReqBuilder {
  4093  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  4094  	return builder
  4095  }
  4096  
  4097  // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该page_token 获取查询结果
  4098  //
  4099  // 示例值:AQD9/Rn9eij9Pm39ED40/RD/cIFmu77WxpxPB/2oHfQLZ+G8JG6tK7+ZnHiT7COhD2hMSICh/eBl7cpzU6JEC3J7COKNe4jrQ8ExwBCR
  4100  func (builder *ChildrenDepartmentReqBuilder) PageToken(pageToken string) *ChildrenDepartmentReqBuilder {
  4101  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  4102  	return builder
  4103  }
  4104  
  4105  func (builder *ChildrenDepartmentReqBuilder) Build() *ChildrenDepartmentReq {
  4106  	req := &ChildrenDepartmentReq{}
  4107  	req.apiReq = &larkcore.ApiReq{}
  4108  	req.Limit = builder.limit
  4109  	req.apiReq.PathParams = builder.apiReq.PathParams
  4110  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4111  	return req
  4112  }
  4113  
  4114  type ChildrenDepartmentReq struct {
  4115  	apiReq *larkcore.ApiReq
  4116  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
  4117  
  4118  }
  4119  
  4120  type ChildrenDepartmentRespData struct {
  4121  	HasMore   *bool         `json:"has_more,omitempty"`   // 是否有下一页数据
  4122  	PageToken *string       `json:"page_token,omitempty"` // 下一页分页的token
  4123  	Items     []*Department `json:"items,omitempty"`      // 部门列表
  4124  }
  4125  
  4126  type ChildrenDepartmentResp struct {
  4127  	*larkcore.ApiResp `json:"-"`
  4128  	larkcore.CodeError
  4129  	Data *ChildrenDepartmentRespData `json:"data"` // 业务数据
  4130  }
  4131  
  4132  func (resp *ChildrenDepartmentResp) Success() bool {
  4133  	return resp.Code == 0
  4134  }
  4135  
  4136  type CreateDepartmentReqBuilder struct {
  4137  	apiReq     *larkcore.ApiReq
  4138  	department *Department
  4139  }
  4140  
  4141  func NewCreateDepartmentReqBuilder() *CreateDepartmentReqBuilder {
  4142  	builder := &CreateDepartmentReqBuilder{}
  4143  	builder.apiReq = &larkcore.ApiReq{
  4144  		PathParams:  larkcore.PathParams{},
  4145  		QueryParams: larkcore.QueryParams{},
  4146  	}
  4147  	return builder
  4148  }
  4149  
  4150  // 此次调用中使用的用户ID的类型
  4151  //
  4152  // 示例值:
  4153  func (builder *CreateDepartmentReqBuilder) UserIdType(userIdType string) *CreateDepartmentReqBuilder {
  4154  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  4155  	return builder
  4156  }
  4157  
  4158  // 此次调用中使用的部门ID的类型;;不同 ID 的说明参见[部门ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0)
  4159  //
  4160  // 示例值:open_department_id
  4161  func (builder *CreateDepartmentReqBuilder) DepartmentIdType(departmentIdType string) *CreateDepartmentReqBuilder {
  4162  	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
  4163  	return builder
  4164  }
  4165  
  4166  // 用于幂等判断是否为同一请求,避免重复创建。字符串类型,自行生成。
  4167  //
  4168  // 示例值:473469C7-AA6F-4DC5-B3DB-A3DC0DE3C83E
  4169  func (builder *CreateDepartmentReqBuilder) ClientToken(clientToken string) *CreateDepartmentReqBuilder {
  4170  	builder.apiReq.QueryParams.Set("client_token", fmt.Sprint(clientToken))
  4171  	return builder
  4172  }
  4173  
  4174  // 该接口用于向通讯录中创建部门。[常见问题答疑](/ssl:ttdoc/ugTN1YjL4UTN24CO1UjN/uQzN1YjL0cTN24CN3UjN)。
  4175  func (builder *CreateDepartmentReqBuilder) Department(department *Department) *CreateDepartmentReqBuilder {
  4176  	builder.department = department
  4177  	return builder
  4178  }
  4179  
  4180  func (builder *CreateDepartmentReqBuilder) Build() *CreateDepartmentReq {
  4181  	req := &CreateDepartmentReq{}
  4182  	req.apiReq = &larkcore.ApiReq{}
  4183  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4184  	req.apiReq.Body = builder.department
  4185  	return req
  4186  }
  4187  
  4188  type CreateDepartmentReq struct {
  4189  	apiReq     *larkcore.ApiReq
  4190  	Department *Department `body:""`
  4191  }
  4192  
  4193  type CreateDepartmentRespData struct {
  4194  	Department *Department `json:"department,omitempty"` // 部门信息
  4195  }
  4196  
  4197  type CreateDepartmentResp struct {
  4198  	*larkcore.ApiResp `json:"-"`
  4199  	larkcore.CodeError
  4200  	Data *CreateDepartmentRespData `json:"data"` // 业务数据
  4201  }
  4202  
  4203  func (resp *CreateDepartmentResp) Success() bool {
  4204  	return resp.Code == 0
  4205  }
  4206  
  4207  type DeleteDepartmentReqBuilder struct {
  4208  	apiReq *larkcore.ApiReq
  4209  }
  4210  
  4211  func NewDeleteDepartmentReqBuilder() *DeleteDepartmentReqBuilder {
  4212  	builder := &DeleteDepartmentReqBuilder{}
  4213  	builder.apiReq = &larkcore.ApiReq{
  4214  		PathParams:  larkcore.PathParams{},
  4215  		QueryParams: larkcore.QueryParams{},
  4216  	}
  4217  	return builder
  4218  }
  4219  
  4220  // 部门ID,需要与查询参数中传入的department_id_type类型保持一致。
  4221  //
  4222  // 示例值:od-4e6ac4d14bcd5071a37a39de902c7141
  4223  func (builder *DeleteDepartmentReqBuilder) DepartmentId(departmentId string) *DeleteDepartmentReqBuilder {
  4224  	builder.apiReq.PathParams.Set("department_id", fmt.Sprint(departmentId))
  4225  	return builder
  4226  }
  4227  
  4228  // 此次调用中使用的部门ID的类型
  4229  //
  4230  // 示例值:open_department_id
  4231  func (builder *DeleteDepartmentReqBuilder) DepartmentIdType(departmentIdType string) *DeleteDepartmentReqBuilder {
  4232  	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
  4233  	return builder
  4234  }
  4235  
  4236  func (builder *DeleteDepartmentReqBuilder) Build() *DeleteDepartmentReq {
  4237  	req := &DeleteDepartmentReq{}
  4238  	req.apiReq = &larkcore.ApiReq{}
  4239  	req.apiReq.PathParams = builder.apiReq.PathParams
  4240  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4241  	return req
  4242  }
  4243  
  4244  type DeleteDepartmentReq struct {
  4245  	apiReq *larkcore.ApiReq
  4246  }
  4247  
  4248  type DeleteDepartmentResp struct {
  4249  	*larkcore.ApiResp `json:"-"`
  4250  	larkcore.CodeError
  4251  }
  4252  
  4253  func (resp *DeleteDepartmentResp) Success() bool {
  4254  	return resp.Code == 0
  4255  }
  4256  
  4257  type GetDepartmentReqBuilder struct {
  4258  	apiReq *larkcore.ApiReq
  4259  }
  4260  
  4261  func NewGetDepartmentReqBuilder() *GetDepartmentReqBuilder {
  4262  	builder := &GetDepartmentReqBuilder{}
  4263  	builder.apiReq = &larkcore.ApiReq{
  4264  		PathParams:  larkcore.PathParams{},
  4265  		QueryParams: larkcore.QueryParams{},
  4266  	}
  4267  	return builder
  4268  }
  4269  
  4270  // 需要获取的部门ID;;不同 ID 的说明及获取方式 参见[部门ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0)
  4271  //
  4272  // 示例值:od-4e6ac4d14bcd5071a37a39de902c7141
  4273  func (builder *GetDepartmentReqBuilder) DepartmentId(departmentId string) *GetDepartmentReqBuilder {
  4274  	builder.apiReq.PathParams.Set("department_id", fmt.Sprint(departmentId))
  4275  	return builder
  4276  }
  4277  
  4278  // 此次调用中使用的用户ID的类型
  4279  //
  4280  // 示例值:
  4281  func (builder *GetDepartmentReqBuilder) UserIdType(userIdType string) *GetDepartmentReqBuilder {
  4282  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  4283  	return builder
  4284  }
  4285  
  4286  // 此次调用中使用的部门ID的类型;;不同 ID 的说明 [部门ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0)
  4287  //
  4288  // 示例值:open_department_id
  4289  func (builder *GetDepartmentReqBuilder) DepartmentIdType(departmentIdType string) *GetDepartmentReqBuilder {
  4290  	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
  4291  	return builder
  4292  }
  4293  
  4294  func (builder *GetDepartmentReqBuilder) Build() *GetDepartmentReq {
  4295  	req := &GetDepartmentReq{}
  4296  	req.apiReq = &larkcore.ApiReq{}
  4297  	req.apiReq.PathParams = builder.apiReq.PathParams
  4298  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4299  	return req
  4300  }
  4301  
  4302  type GetDepartmentReq struct {
  4303  	apiReq *larkcore.ApiReq
  4304  }
  4305  
  4306  type GetDepartmentRespData struct {
  4307  	Department *Department `json:"department,omitempty"` // 部门信息
  4308  }
  4309  
  4310  type GetDepartmentResp struct {
  4311  	*larkcore.ApiResp `json:"-"`
  4312  	larkcore.CodeError
  4313  	Data *GetDepartmentRespData `json:"data"` // 业务数据
  4314  }
  4315  
  4316  func (resp *GetDepartmentResp) Success() bool {
  4317  	return resp.Code == 0
  4318  }
  4319  
  4320  type ListDepartmentReqBuilder struct {
  4321  	apiReq *larkcore.ApiReq
  4322  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  4323  }
  4324  
  4325  func NewListDepartmentReqBuilder() *ListDepartmentReqBuilder {
  4326  	builder := &ListDepartmentReqBuilder{}
  4327  	builder.apiReq = &larkcore.ApiReq{
  4328  		PathParams:  larkcore.PathParams{},
  4329  		QueryParams: larkcore.QueryParams{},
  4330  	}
  4331  	return builder
  4332  }
  4333  
  4334  // 最大返回多少记录,当使用迭代器访问时才有效
  4335  func (builder *ListDepartmentReqBuilder) Limit(limit int) *ListDepartmentReqBuilder {
  4336  	builder.limit = limit
  4337  	return builder
  4338  }
  4339  
  4340  // 此次调用中使用的用户ID的类型
  4341  //
  4342  // 示例值:
  4343  func (builder *ListDepartmentReqBuilder) UserIdType(userIdType string) *ListDepartmentReqBuilder {
  4344  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  4345  	return builder
  4346  }
  4347  
  4348  // 此次调用中使用的部门ID的类型
  4349  //
  4350  // 示例值:open_department_id
  4351  func (builder *ListDepartmentReqBuilder) DepartmentIdType(departmentIdType string) *ListDepartmentReqBuilder {
  4352  	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
  4353  	return builder
  4354  }
  4355  
  4356  // 父部门的ID,填上获取部门下所有子部门,此处填写的 ID 必须是 department_id_type 指定的 ID。
  4357  //
  4358  // 示例值:od-4e6ac4d14bcd5071a37a39de902c7141
  4359  func (builder *ListDepartmentReqBuilder) ParentDepartmentId(parentDepartmentId string) *ListDepartmentReqBuilder {
  4360  	builder.apiReq.QueryParams.Set("parent_department_id", fmt.Sprint(parentDepartmentId))
  4361  	return builder
  4362  }
  4363  
  4364  // 是否递归获取子部门
  4365  //
  4366  // 示例值:是否递归获取子部门,默认值:false
  4367  func (builder *ListDepartmentReqBuilder) FetchChild(fetchChild bool) *ListDepartmentReqBuilder {
  4368  	builder.apiReq.QueryParams.Set("fetch_child", fmt.Sprint(fetchChild))
  4369  	return builder
  4370  }
  4371  
  4372  //
  4373  //
  4374  // 示例值:AQD9/Rn9eij9Pm39ED40/RD/cIFmu77WxpxPB/2oHfQLZ%2BG8JG6tK7%2BZnHiT7COhD2hMSICh/eBl7cpzU6JEC3J7COKNe4jrQ8ExwBCR
  4375  func (builder *ListDepartmentReqBuilder) PageToken(pageToken string) *ListDepartmentReqBuilder {
  4376  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  4377  	return builder
  4378  }
  4379  
  4380  //
  4381  //
  4382  // 示例值:10
  4383  func (builder *ListDepartmentReqBuilder) PageSize(pageSize int) *ListDepartmentReqBuilder {
  4384  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  4385  	return builder
  4386  }
  4387  
  4388  func (builder *ListDepartmentReqBuilder) Build() *ListDepartmentReq {
  4389  	req := &ListDepartmentReq{}
  4390  	req.apiReq = &larkcore.ApiReq{}
  4391  	req.Limit = builder.limit
  4392  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4393  	return req
  4394  }
  4395  
  4396  type ListDepartmentReq struct {
  4397  	apiReq *larkcore.ApiReq
  4398  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
  4399  
  4400  }
  4401  
  4402  type ListDepartmentRespData struct {
  4403  	HasMore   *bool         `json:"has_more,omitempty"`   // 是否有下一页数据
  4404  	PageToken *string       `json:"page_token,omitempty"` // 下一页分页的token
  4405  	Items     []*Department `json:"items,omitempty"`      //
  4406  }
  4407  
  4408  type ListDepartmentResp struct {
  4409  	*larkcore.ApiResp `json:"-"`
  4410  	larkcore.CodeError
  4411  	Data *ListDepartmentRespData `json:"data"` // 业务数据
  4412  }
  4413  
  4414  func (resp *ListDepartmentResp) Success() bool {
  4415  	return resp.Code == 0
  4416  }
  4417  
  4418  type ParentDepartmentReqBuilder struct {
  4419  	apiReq *larkcore.ApiReq
  4420  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  4421  }
  4422  
  4423  func NewParentDepartmentReqBuilder() *ParentDepartmentReqBuilder {
  4424  	builder := &ParentDepartmentReqBuilder{}
  4425  	builder.apiReq = &larkcore.ApiReq{
  4426  		PathParams:  larkcore.PathParams{},
  4427  		QueryParams: larkcore.QueryParams{},
  4428  	}
  4429  	return builder
  4430  }
  4431  
  4432  // 最大返回多少记录,当使用迭代器访问时才有效
  4433  func (builder *ParentDepartmentReqBuilder) Limit(limit int) *ParentDepartmentReqBuilder {
  4434  	builder.limit = limit
  4435  	return builder
  4436  }
  4437  
  4438  // 此次调用中使用的用户ID的类型
  4439  //
  4440  // 示例值:
  4441  func (builder *ParentDepartmentReqBuilder) UserIdType(userIdType string) *ParentDepartmentReqBuilder {
  4442  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  4443  	return builder
  4444  }
  4445  
  4446  // 此次调用中使用的部门ID的类型
  4447  //
  4448  // 示例值:open_department_id
  4449  func (builder *ParentDepartmentReqBuilder) DepartmentIdType(departmentIdType string) *ParentDepartmentReqBuilder {
  4450  	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
  4451  	return builder
  4452  }
  4453  
  4454  // 部门ID
  4455  //
  4456  // 示例值:od-4e6ac4d14bcd5071a37a39de902c7141
  4457  func (builder *ParentDepartmentReqBuilder) DepartmentId(departmentId string) *ParentDepartmentReqBuilder {
  4458  	builder.apiReq.QueryParams.Set("department_id", fmt.Sprint(departmentId))
  4459  	return builder
  4460  }
  4461  
  4462  //
  4463  //
  4464  // 示例值:AQD9/Rn9eij9Pm39ED40/RD/cIFmu77WxpxPB/2oHfQLZ%2BG8JG6tK7%2BZnHiT7COhD2hMSICh/eBl7cpzU6JEC3J7COKNe4jrQ8ExwBCR
  4465  func (builder *ParentDepartmentReqBuilder) PageToken(pageToken string) *ParentDepartmentReqBuilder {
  4466  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  4467  	return builder
  4468  }
  4469  
  4470  //
  4471  //
  4472  // 示例值:10
  4473  func (builder *ParentDepartmentReqBuilder) PageSize(pageSize int) *ParentDepartmentReqBuilder {
  4474  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  4475  	return builder
  4476  }
  4477  
  4478  func (builder *ParentDepartmentReqBuilder) Build() *ParentDepartmentReq {
  4479  	req := &ParentDepartmentReq{}
  4480  	req.apiReq = &larkcore.ApiReq{}
  4481  	req.Limit = builder.limit
  4482  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4483  	return req
  4484  }
  4485  
  4486  type ParentDepartmentReq struct {
  4487  	apiReq *larkcore.ApiReq
  4488  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
  4489  
  4490  }
  4491  
  4492  type ParentDepartmentRespData struct {
  4493  	HasMore   *bool         `json:"has_more,omitempty"`   // 是否有下一页数据
  4494  	PageToken *string       `json:"page_token,omitempty"` // 下一页分页的token
  4495  	Items     []*Department `json:"items,omitempty"`      //
  4496  }
  4497  
  4498  type ParentDepartmentResp struct {
  4499  	*larkcore.ApiResp `json:"-"`
  4500  	larkcore.CodeError
  4501  	Data *ParentDepartmentRespData `json:"data"` // 业务数据
  4502  }
  4503  
  4504  func (resp *ParentDepartmentResp) Success() bool {
  4505  	return resp.Code == 0
  4506  }
  4507  
  4508  type PatchDepartmentReqBuilder struct {
  4509  	apiReq     *larkcore.ApiReq
  4510  	department *Department
  4511  }
  4512  
  4513  func NewPatchDepartmentReqBuilder() *PatchDepartmentReqBuilder {
  4514  	builder := &PatchDepartmentReqBuilder{}
  4515  	builder.apiReq = &larkcore.ApiReq{
  4516  		PathParams:  larkcore.PathParams{},
  4517  		QueryParams: larkcore.QueryParams{},
  4518  	}
  4519  	return builder
  4520  }
  4521  
  4522  // 部门ID,需要与查询参数中传入的department_id_type类型保持一致。
  4523  //
  4524  // 示例值:od-4e6ac4d14bcd5071a37a39de902c7141
  4525  func (builder *PatchDepartmentReqBuilder) DepartmentId(departmentId string) *PatchDepartmentReqBuilder {
  4526  	builder.apiReq.PathParams.Set("department_id", fmt.Sprint(departmentId))
  4527  	return builder
  4528  }
  4529  
  4530  // 此次调用中使用的用户ID的类型
  4531  //
  4532  // 示例值:
  4533  func (builder *PatchDepartmentReqBuilder) UserIdType(userIdType string) *PatchDepartmentReqBuilder {
  4534  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  4535  	return builder
  4536  }
  4537  
  4538  // 此次调用中使用的部门ID的类型
  4539  //
  4540  // 示例值:open_department_id
  4541  func (builder *PatchDepartmentReqBuilder) DepartmentIdType(departmentIdType string) *PatchDepartmentReqBuilder {
  4542  	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
  4543  	return builder
  4544  }
  4545  
  4546  // 该接口用于更新通讯录中部门的信息中的任一个字段。[常见问题答疑](/ssl:ttdoc/ugTN1YjL4UTN24CO1UjN/uQzN1YjL0cTN24CN3UjN)。
  4547  func (builder *PatchDepartmentReqBuilder) Department(department *Department) *PatchDepartmentReqBuilder {
  4548  	builder.department = department
  4549  	return builder
  4550  }
  4551  
  4552  func (builder *PatchDepartmentReqBuilder) Build() *PatchDepartmentReq {
  4553  	req := &PatchDepartmentReq{}
  4554  	req.apiReq = &larkcore.ApiReq{}
  4555  	req.apiReq.PathParams = builder.apiReq.PathParams
  4556  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4557  	req.apiReq.Body = builder.department
  4558  	return req
  4559  }
  4560  
  4561  type PatchDepartmentReq struct {
  4562  	apiReq     *larkcore.ApiReq
  4563  	Department *Department `body:""`
  4564  }
  4565  
  4566  type PatchDepartmentRespData struct {
  4567  	Department *Department `json:"department,omitempty"` // 部门信息
  4568  }
  4569  
  4570  type PatchDepartmentResp struct {
  4571  	*larkcore.ApiResp `json:"-"`
  4572  	larkcore.CodeError
  4573  	Data *PatchDepartmentRespData `json:"data"` // 业务数据
  4574  }
  4575  
  4576  func (resp *PatchDepartmentResp) Success() bool {
  4577  	return resp.Code == 0
  4578  }
  4579  
  4580  type SearchDepartmentReqBodyBuilder struct {
  4581  	query     string // 搜索关键词,匹配字段为部门名称(不支持匹配部门国际化名称)
  4582  	queryFlag bool
  4583  }
  4584  
  4585  func NewSearchDepartmentReqBodyBuilder() *SearchDepartmentReqBodyBuilder {
  4586  	builder := &SearchDepartmentReqBodyBuilder{}
  4587  	return builder
  4588  }
  4589  
  4590  // 搜索关键词,匹配字段为部门名称(不支持匹配部门国际化名称)
  4591  //
  4592  //示例值:DemoName
  4593  func (builder *SearchDepartmentReqBodyBuilder) Query(query string) *SearchDepartmentReqBodyBuilder {
  4594  	builder.query = query
  4595  	builder.queryFlag = true
  4596  	return builder
  4597  }
  4598  
  4599  func (builder *SearchDepartmentReqBodyBuilder) Build() *SearchDepartmentReqBody {
  4600  	req := &SearchDepartmentReqBody{}
  4601  	if builder.queryFlag {
  4602  		req.Query = &builder.query
  4603  	}
  4604  	return req
  4605  }
  4606  
  4607  type SearchDepartmentPathReqBodyBuilder struct {
  4608  	query     string // 搜索关键词,匹配字段为部门名称(不支持匹配部门国际化名称)
  4609  	queryFlag bool
  4610  }
  4611  
  4612  func NewSearchDepartmentPathReqBodyBuilder() *SearchDepartmentPathReqBodyBuilder {
  4613  	builder := &SearchDepartmentPathReqBodyBuilder{}
  4614  	return builder
  4615  }
  4616  
  4617  // 搜索关键词,匹配字段为部门名称(不支持匹配部门国际化名称)
  4618  //
  4619  // 示例值:DemoName
  4620  func (builder *SearchDepartmentPathReqBodyBuilder) Query(query string) *SearchDepartmentPathReqBodyBuilder {
  4621  	builder.query = query
  4622  	builder.queryFlag = true
  4623  	return builder
  4624  }
  4625  
  4626  func (builder *SearchDepartmentPathReqBodyBuilder) Build() (*SearchDepartmentReqBody, error) {
  4627  	req := &SearchDepartmentReqBody{}
  4628  	if builder.queryFlag {
  4629  		req.Query = &builder.query
  4630  	}
  4631  	return req, nil
  4632  }
  4633  
  4634  type SearchDepartmentReqBuilder struct {
  4635  	apiReq *larkcore.ApiReq
  4636  	body   *SearchDepartmentReqBody
  4637  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  4638  }
  4639  
  4640  func NewSearchDepartmentReqBuilder() *SearchDepartmentReqBuilder {
  4641  	builder := &SearchDepartmentReqBuilder{}
  4642  	builder.apiReq = &larkcore.ApiReq{
  4643  		PathParams:  larkcore.PathParams{},
  4644  		QueryParams: larkcore.QueryParams{},
  4645  	}
  4646  	return builder
  4647  }
  4648  
  4649  // 最大返回多少记录,当使用迭代器访问时才有效
  4650  func (builder *SearchDepartmentReqBuilder) Limit(limit int) *SearchDepartmentReqBuilder {
  4651  	builder.limit = limit
  4652  	return builder
  4653  }
  4654  
  4655  // 此次调用中使用的用户ID的类型
  4656  //
  4657  // 示例值:
  4658  func (builder *SearchDepartmentReqBuilder) UserIdType(userIdType string) *SearchDepartmentReqBuilder {
  4659  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  4660  	return builder
  4661  }
  4662  
  4663  // 此次调用中使用的部门ID的类型
  4664  //
  4665  // 示例值:open_department_id
  4666  func (builder *SearchDepartmentReqBuilder) DepartmentIdType(departmentIdType string) *SearchDepartmentReqBuilder {
  4667  	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
  4668  	return builder
  4669  }
  4670  
  4671  //
  4672  //
  4673  // 示例值:AQD9/Rn9eij9Pm39ED40/RD/cIFmu77WxpxPB/2oHfQLZ+G8JG6tK7+ZnHiT7COhD2hMSICh/eBl7cpzU6JEC3J7COKNe4jrQ8ExwBCR
  4674  func (builder *SearchDepartmentReqBuilder) PageToken(pageToken string) *SearchDepartmentReqBuilder {
  4675  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  4676  	return builder
  4677  }
  4678  
  4679  //
  4680  //
  4681  // 示例值:10
  4682  func (builder *SearchDepartmentReqBuilder) PageSize(pageSize int) *SearchDepartmentReqBuilder {
  4683  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  4684  	return builder
  4685  }
  4686  
  4687  // 搜索部门,用户通过关键词查询可见的部门数据,部门可见性需要管理员在后台配置。[常见问题答疑](/ssl:ttdoc/ugTN1YjL4UTN24CO1UjN/uQzN1YjL0cTN24CN3UjN)。
  4688  func (builder *SearchDepartmentReqBuilder) Body(body *SearchDepartmentReqBody) *SearchDepartmentReqBuilder {
  4689  	builder.body = body
  4690  	return builder
  4691  }
  4692  
  4693  func (builder *SearchDepartmentReqBuilder) Build() *SearchDepartmentReq {
  4694  	req := &SearchDepartmentReq{}
  4695  	req.apiReq = &larkcore.ApiReq{}
  4696  	req.Limit = builder.limit
  4697  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4698  	req.apiReq.Body = builder.body
  4699  	return req
  4700  }
  4701  
  4702  type SearchDepartmentReqBody struct {
  4703  	Query *string `json:"query,omitempty"` // 搜索关键词,匹配字段为部门名称(不支持匹配部门国际化名称)
  4704  }
  4705  
  4706  type SearchDepartmentReq struct {
  4707  	apiReq *larkcore.ApiReq
  4708  	Body   *SearchDepartmentReqBody `body:""`
  4709  	Limit  int                      // 最多返回多少记录,只有在使用迭代器访问时,才有效
  4710  
  4711  }
  4712  
  4713  type SearchDepartmentRespData struct {
  4714  	Items     []*Department `json:"items,omitempty"`      //
  4715  	PageToken *string       `json:"page_token,omitempty"` // 翻页 token,传入返回下一页,首页不需要传入
  4716  	HasMore   *bool         `json:"has_more,omitempty"`   // 是否还有下一页
  4717  }
  4718  
  4719  type SearchDepartmentResp struct {
  4720  	*larkcore.ApiResp `json:"-"`
  4721  	larkcore.CodeError
  4722  	Data *SearchDepartmentRespData `json:"data"` // 业务数据
  4723  }
  4724  
  4725  func (resp *SearchDepartmentResp) Success() bool {
  4726  	return resp.Code == 0
  4727  }
  4728  
  4729  type UnbindDepartmentChatDepartmentReqBodyBuilder struct {
  4730  	departmentId     string // 部门ID
  4731  	departmentIdFlag bool
  4732  }
  4733  
  4734  func NewUnbindDepartmentChatDepartmentReqBodyBuilder() *UnbindDepartmentChatDepartmentReqBodyBuilder {
  4735  	builder := &UnbindDepartmentChatDepartmentReqBodyBuilder{}
  4736  	return builder
  4737  }
  4738  
  4739  // 部门ID
  4740  //
  4741  //示例值:od-4e6ac4d14bcd5071a37a39de902c7141
  4742  func (builder *UnbindDepartmentChatDepartmentReqBodyBuilder) DepartmentId(departmentId string) *UnbindDepartmentChatDepartmentReqBodyBuilder {
  4743  	builder.departmentId = departmentId
  4744  	builder.departmentIdFlag = true
  4745  	return builder
  4746  }
  4747  
  4748  func (builder *UnbindDepartmentChatDepartmentReqBodyBuilder) Build() *UnbindDepartmentChatDepartmentReqBody {
  4749  	req := &UnbindDepartmentChatDepartmentReqBody{}
  4750  	if builder.departmentIdFlag {
  4751  		req.DepartmentId = &builder.departmentId
  4752  	}
  4753  	return req
  4754  }
  4755  
  4756  type UnbindDepartmentChatDepartmentPathReqBodyBuilder struct {
  4757  	departmentId     string // 部门ID
  4758  	departmentIdFlag bool
  4759  }
  4760  
  4761  func NewUnbindDepartmentChatDepartmentPathReqBodyBuilder() *UnbindDepartmentChatDepartmentPathReqBodyBuilder {
  4762  	builder := &UnbindDepartmentChatDepartmentPathReqBodyBuilder{}
  4763  	return builder
  4764  }
  4765  
  4766  // 部门ID
  4767  //
  4768  // 示例值:od-4e6ac4d14bcd5071a37a39de902c7141
  4769  func (builder *UnbindDepartmentChatDepartmentPathReqBodyBuilder) DepartmentId(departmentId string) *UnbindDepartmentChatDepartmentPathReqBodyBuilder {
  4770  	builder.departmentId = departmentId
  4771  	builder.departmentIdFlag = true
  4772  	return builder
  4773  }
  4774  
  4775  func (builder *UnbindDepartmentChatDepartmentPathReqBodyBuilder) Build() (*UnbindDepartmentChatDepartmentReqBody, error) {
  4776  	req := &UnbindDepartmentChatDepartmentReqBody{}
  4777  	if builder.departmentIdFlag {
  4778  		req.DepartmentId = &builder.departmentId
  4779  	}
  4780  	return req, nil
  4781  }
  4782  
  4783  type UnbindDepartmentChatDepartmentReqBuilder struct {
  4784  	apiReq *larkcore.ApiReq
  4785  	body   *UnbindDepartmentChatDepartmentReqBody
  4786  }
  4787  
  4788  func NewUnbindDepartmentChatDepartmentReqBuilder() *UnbindDepartmentChatDepartmentReqBuilder {
  4789  	builder := &UnbindDepartmentChatDepartmentReqBuilder{}
  4790  	builder.apiReq = &larkcore.ApiReq{
  4791  		PathParams:  larkcore.PathParams{},
  4792  		QueryParams: larkcore.QueryParams{},
  4793  	}
  4794  	return builder
  4795  }
  4796  
  4797  // 此次调用中使用的部门ID的类型,默认为"open_department_id"
  4798  //
  4799  // 示例值:open_department_id
  4800  func (builder *UnbindDepartmentChatDepartmentReqBuilder) DepartmentIdType(departmentIdType string) *UnbindDepartmentChatDepartmentReqBuilder {
  4801  	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
  4802  	return builder
  4803  }
  4804  
  4805  // 通过该接口将部门群转为普通群。
  4806  func (builder *UnbindDepartmentChatDepartmentReqBuilder) Body(body *UnbindDepartmentChatDepartmentReqBody) *UnbindDepartmentChatDepartmentReqBuilder {
  4807  	builder.body = body
  4808  	return builder
  4809  }
  4810  
  4811  func (builder *UnbindDepartmentChatDepartmentReqBuilder) Build() *UnbindDepartmentChatDepartmentReq {
  4812  	req := &UnbindDepartmentChatDepartmentReq{}
  4813  	req.apiReq = &larkcore.ApiReq{}
  4814  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4815  	req.apiReq.Body = builder.body
  4816  	return req
  4817  }
  4818  
  4819  type UnbindDepartmentChatDepartmentReqBody struct {
  4820  	DepartmentId *string `json:"department_id,omitempty"` // 部门ID
  4821  }
  4822  
  4823  type UnbindDepartmentChatDepartmentReq struct {
  4824  	apiReq *larkcore.ApiReq
  4825  	Body   *UnbindDepartmentChatDepartmentReqBody `body:""`
  4826  }
  4827  
  4828  type UnbindDepartmentChatDepartmentResp struct {
  4829  	*larkcore.ApiResp `json:"-"`
  4830  	larkcore.CodeError
  4831  }
  4832  
  4833  func (resp *UnbindDepartmentChatDepartmentResp) Success() bool {
  4834  	return resp.Code == 0
  4835  }
  4836  
  4837  type UpdateDepartmentReqBuilder struct {
  4838  	apiReq     *larkcore.ApiReq
  4839  	department *Department
  4840  }
  4841  
  4842  func NewUpdateDepartmentReqBuilder() *UpdateDepartmentReqBuilder {
  4843  	builder := &UpdateDepartmentReqBuilder{}
  4844  	builder.apiReq = &larkcore.ApiReq{
  4845  		PathParams:  larkcore.PathParams{},
  4846  		QueryParams: larkcore.QueryParams{},
  4847  	}
  4848  	return builder
  4849  }
  4850  
  4851  // 部门ID,需要与查询参数中传入的department_id_type类型保持一致。
  4852  //
  4853  // 示例值:od-4e6ac4d14bcd5071a37a39de902c7141
  4854  func (builder *UpdateDepartmentReqBuilder) DepartmentId(departmentId string) *UpdateDepartmentReqBuilder {
  4855  	builder.apiReq.PathParams.Set("department_id", fmt.Sprint(departmentId))
  4856  	return builder
  4857  }
  4858  
  4859  // 此次调用中使用的用户ID的类型
  4860  //
  4861  // 示例值:
  4862  func (builder *UpdateDepartmentReqBuilder) UserIdType(userIdType string) *UpdateDepartmentReqBuilder {
  4863  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  4864  	return builder
  4865  }
  4866  
  4867  // 此次调用中使用的部门ID的类型
  4868  //
  4869  // 示例值:open_department_id
  4870  func (builder *UpdateDepartmentReqBuilder) DepartmentIdType(departmentIdType string) *UpdateDepartmentReqBuilder {
  4871  	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
  4872  	return builder
  4873  }
  4874  
  4875  // 该接口用于更新当前部门所有信息。[常见问题答疑](/ssl:ttdoc/ugTN1YjL4UTN24CO1UjN/uQzN1YjL0cTN24CN3UjN)。
  4876  func (builder *UpdateDepartmentReqBuilder) Department(department *Department) *UpdateDepartmentReqBuilder {
  4877  	builder.department = department
  4878  	return builder
  4879  }
  4880  
  4881  func (builder *UpdateDepartmentReqBuilder) Build() *UpdateDepartmentReq {
  4882  	req := &UpdateDepartmentReq{}
  4883  	req.apiReq = &larkcore.ApiReq{}
  4884  	req.apiReq.PathParams = builder.apiReq.PathParams
  4885  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4886  	req.apiReq.Body = builder.department
  4887  	return req
  4888  }
  4889  
  4890  type UpdateDepartmentReq struct {
  4891  	apiReq     *larkcore.ApiReq
  4892  	Department *Department `body:""`
  4893  }
  4894  
  4895  type UpdateDepartmentRespData struct {
  4896  	Department *Department `json:"department,omitempty"` // 部门信息
  4897  }
  4898  
  4899  type UpdateDepartmentResp struct {
  4900  	*larkcore.ApiResp `json:"-"`
  4901  	larkcore.CodeError
  4902  	Data *UpdateDepartmentRespData `json:"data"` // 业务数据
  4903  }
  4904  
  4905  func (resp *UpdateDepartmentResp) Success() bool {
  4906  	return resp.Code == 0
  4907  }
  4908  
  4909  type CreateEmployeeTypeEnumReqBuilder struct {
  4910  	apiReq           *larkcore.ApiReq
  4911  	employeeTypeEnum *EmployeeTypeEnum
  4912  }
  4913  
  4914  func NewCreateEmployeeTypeEnumReqBuilder() *CreateEmployeeTypeEnumReqBuilder {
  4915  	builder := &CreateEmployeeTypeEnumReqBuilder{}
  4916  	builder.apiReq = &larkcore.ApiReq{
  4917  		PathParams:  larkcore.PathParams{},
  4918  		QueryParams: larkcore.QueryParams{},
  4919  	}
  4920  	return builder
  4921  }
  4922  
  4923  // 新增自定义人员类型
  4924  func (builder *CreateEmployeeTypeEnumReqBuilder) EmployeeTypeEnum(employeeTypeEnum *EmployeeTypeEnum) *CreateEmployeeTypeEnumReqBuilder {
  4925  	builder.employeeTypeEnum = employeeTypeEnum
  4926  	return builder
  4927  }
  4928  
  4929  func (builder *CreateEmployeeTypeEnumReqBuilder) Build() *CreateEmployeeTypeEnumReq {
  4930  	req := &CreateEmployeeTypeEnumReq{}
  4931  	req.apiReq = &larkcore.ApiReq{}
  4932  	req.apiReq.Body = builder.employeeTypeEnum
  4933  	return req
  4934  }
  4935  
  4936  type CreateEmployeeTypeEnumReq struct {
  4937  	apiReq           *larkcore.ApiReq
  4938  	EmployeeTypeEnum *EmployeeTypeEnum `body:""`
  4939  }
  4940  
  4941  type CreateEmployeeTypeEnumRespData struct {
  4942  	EmployeeTypeEnum *EmployeeTypeEnum `json:"employee_type_enum,omitempty"` // 新建的人员类型信息
  4943  }
  4944  
  4945  type CreateEmployeeTypeEnumResp struct {
  4946  	*larkcore.ApiResp `json:"-"`
  4947  	larkcore.CodeError
  4948  	Data *CreateEmployeeTypeEnumRespData `json:"data"` // 业务数据
  4949  }
  4950  
  4951  func (resp *CreateEmployeeTypeEnumResp) Success() bool {
  4952  	return resp.Code == 0
  4953  }
  4954  
  4955  type DeleteEmployeeTypeEnumReqBuilder struct {
  4956  	apiReq *larkcore.ApiReq
  4957  }
  4958  
  4959  func NewDeleteEmployeeTypeEnumReqBuilder() *DeleteEmployeeTypeEnumReqBuilder {
  4960  	builder := &DeleteEmployeeTypeEnumReqBuilder{}
  4961  	builder.apiReq = &larkcore.ApiReq{
  4962  		PathParams:  larkcore.PathParams{},
  4963  		QueryParams: larkcore.QueryParams{},
  4964  	}
  4965  	return builder
  4966  }
  4967  
  4968  // 枚举值id
  4969  //
  4970  // 示例值:exGeIjow7zIqWMy+ONkFxA==
  4971  func (builder *DeleteEmployeeTypeEnumReqBuilder) EnumId(enumId string) *DeleteEmployeeTypeEnumReqBuilder {
  4972  	builder.apiReq.PathParams.Set("enum_id", fmt.Sprint(enumId))
  4973  	return builder
  4974  }
  4975  
  4976  func (builder *DeleteEmployeeTypeEnumReqBuilder) Build() *DeleteEmployeeTypeEnumReq {
  4977  	req := &DeleteEmployeeTypeEnumReq{}
  4978  	req.apiReq = &larkcore.ApiReq{}
  4979  	req.apiReq.PathParams = builder.apiReq.PathParams
  4980  	return req
  4981  }
  4982  
  4983  type DeleteEmployeeTypeEnumReq struct {
  4984  	apiReq *larkcore.ApiReq
  4985  }
  4986  
  4987  type DeleteEmployeeTypeEnumResp struct {
  4988  	*larkcore.ApiResp `json:"-"`
  4989  	larkcore.CodeError
  4990  }
  4991  
  4992  func (resp *DeleteEmployeeTypeEnumResp) Success() bool {
  4993  	return resp.Code == 0
  4994  }
  4995  
  4996  type ListEmployeeTypeEnumReqBuilder struct {
  4997  	apiReq *larkcore.ApiReq
  4998  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  4999  }
  5000  
  5001  func NewListEmployeeTypeEnumReqBuilder() *ListEmployeeTypeEnumReqBuilder {
  5002  	builder := &ListEmployeeTypeEnumReqBuilder{}
  5003  	builder.apiReq = &larkcore.ApiReq{
  5004  		PathParams:  larkcore.PathParams{},
  5005  		QueryParams: larkcore.QueryParams{},
  5006  	}
  5007  	return builder
  5008  }
  5009  
  5010  // 最大返回多少记录,当使用迭代器访问时才有效
  5011  func (builder *ListEmployeeTypeEnumReqBuilder) Limit(limit int) *ListEmployeeTypeEnumReqBuilder {
  5012  	builder.limit = limit
  5013  	return builder
  5014  }
  5015  
  5016  //
  5017  //
  5018  // 示例值:3
  5019  func (builder *ListEmployeeTypeEnumReqBuilder) PageToken(pageToken string) *ListEmployeeTypeEnumReqBuilder {
  5020  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  5021  	return builder
  5022  }
  5023  
  5024  //
  5025  //
  5026  // 示例值:10
  5027  func (builder *ListEmployeeTypeEnumReqBuilder) PageSize(pageSize int) *ListEmployeeTypeEnumReqBuilder {
  5028  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  5029  	return builder
  5030  }
  5031  
  5032  func (builder *ListEmployeeTypeEnumReqBuilder) Build() *ListEmployeeTypeEnumReq {
  5033  	req := &ListEmployeeTypeEnumReq{}
  5034  	req.apiReq = &larkcore.ApiReq{}
  5035  	req.Limit = builder.limit
  5036  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  5037  	return req
  5038  }
  5039  
  5040  type ListEmployeeTypeEnumReq struct {
  5041  	apiReq *larkcore.ApiReq
  5042  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
  5043  
  5044  }
  5045  
  5046  type ListEmployeeTypeEnumRespData struct {
  5047  	Items     []*EmployeeTypeEnum `json:"items,omitempty"`      // 枚举数据
  5048  	HasMore   *bool               `json:"has_more,omitempty"`   // 是否下一页
  5049  	PageToken *string             `json:"page_token,omitempty"` // 分页token
  5050  }
  5051  
  5052  type ListEmployeeTypeEnumResp struct {
  5053  	*larkcore.ApiResp `json:"-"`
  5054  	larkcore.CodeError
  5055  	Data *ListEmployeeTypeEnumRespData `json:"data"` // 业务数据
  5056  }
  5057  
  5058  func (resp *ListEmployeeTypeEnumResp) Success() bool {
  5059  	return resp.Code == 0
  5060  }
  5061  
  5062  type UpdateEmployeeTypeEnumReqBuilder struct {
  5063  	apiReq           *larkcore.ApiReq
  5064  	employeeTypeEnum *EmployeeTypeEnum
  5065  }
  5066  
  5067  func NewUpdateEmployeeTypeEnumReqBuilder() *UpdateEmployeeTypeEnumReqBuilder {
  5068  	builder := &UpdateEmployeeTypeEnumReqBuilder{}
  5069  	builder.apiReq = &larkcore.ApiReq{
  5070  		PathParams:  larkcore.PathParams{},
  5071  		QueryParams: larkcore.QueryParams{},
  5072  	}
  5073  	return builder
  5074  }
  5075  
  5076  // 枚举值id
  5077  //
  5078  // 示例值:exGeIjow7zIqWMy+ONkFxA==
  5079  func (builder *UpdateEmployeeTypeEnumReqBuilder) EnumId(enumId string) *UpdateEmployeeTypeEnumReqBuilder {
  5080  	builder.apiReq.PathParams.Set("enum_id", fmt.Sprint(enumId))
  5081  	return builder
  5082  }
  5083  
  5084  // 更新自定义人员类型
  5085  func (builder *UpdateEmployeeTypeEnumReqBuilder) EmployeeTypeEnum(employeeTypeEnum *EmployeeTypeEnum) *UpdateEmployeeTypeEnumReqBuilder {
  5086  	builder.employeeTypeEnum = employeeTypeEnum
  5087  	return builder
  5088  }
  5089  
  5090  func (builder *UpdateEmployeeTypeEnumReqBuilder) Build() *UpdateEmployeeTypeEnumReq {
  5091  	req := &UpdateEmployeeTypeEnumReq{}
  5092  	req.apiReq = &larkcore.ApiReq{}
  5093  	req.apiReq.PathParams = builder.apiReq.PathParams
  5094  	req.apiReq.Body = builder.employeeTypeEnum
  5095  	return req
  5096  }
  5097  
  5098  type UpdateEmployeeTypeEnumReq struct {
  5099  	apiReq           *larkcore.ApiReq
  5100  	EmployeeTypeEnum *EmployeeTypeEnum `body:""`
  5101  }
  5102  
  5103  type UpdateEmployeeTypeEnumRespData struct {
  5104  	EmployeeTypeEnum *EmployeeTypeEnum `json:"employee_type_enum,omitempty"` // 更新后的人员类型字段
  5105  }
  5106  
  5107  type UpdateEmployeeTypeEnumResp struct {
  5108  	*larkcore.ApiResp `json:"-"`
  5109  	larkcore.CodeError
  5110  	Data *UpdateEmployeeTypeEnumRespData `json:"data"` // 业务数据
  5111  }
  5112  
  5113  func (resp *UpdateEmployeeTypeEnumResp) Success() bool {
  5114  	return resp.Code == 0
  5115  }
  5116  
  5117  type CreateGroupReqBodyBuilder struct {
  5118  	groupId         string // 自定义用户组ID,可在创建时自定义,不自定义则由系统自动生成,已创建用户组不允许修改 group_id 。;;自定义group_id数据校验规则:;;最大长度:64 字符;;校验规则:数字、大小写字母的组合,不能包含空格
  5119  	groupIdFlag     bool
  5120  	name            string // 用户组的名字,企业内唯一,最大长度:100 字符
  5121  	nameFlag        bool
  5122  	description     string // 用户组描述
  5123  	descriptionFlag bool
  5124  	type_           int // 用户组的类型。默认为1表示普通用户组
  5125  	typeFlag        bool
  5126  }
  5127  
  5128  func NewCreateGroupReqBodyBuilder() *CreateGroupReqBodyBuilder {
  5129  	builder := &CreateGroupReqBodyBuilder{}
  5130  	return builder
  5131  }
  5132  
  5133  // 自定义用户组ID,可在创建时自定义,不自定义则由系统自动生成,已创建用户组不允许修改 group_id 。;;自定义group_id数据校验规则:;;最大长度:64 字符;;校验规则:数字、大小写字母的组合,不能包含空格
  5134  //
  5135  //示例值:g122817
  5136  func (builder *CreateGroupReqBodyBuilder) GroupId(groupId string) *CreateGroupReqBodyBuilder {
  5137  	builder.groupId = groupId
  5138  	builder.groupIdFlag = true
  5139  	return builder
  5140  }
  5141  
  5142  // 用户组的名字,企业内唯一,最大长度:100 字符
  5143  //
  5144  //示例值:IT 外包组
  5145  func (builder *CreateGroupReqBodyBuilder) Name(name string) *CreateGroupReqBodyBuilder {
  5146  	builder.name = name
  5147  	builder.nameFlag = true
  5148  	return builder
  5149  }
  5150  
  5151  // 用户组描述
  5152  //
  5153  //示例值:IT服务人员的集合
  5154  func (builder *CreateGroupReqBodyBuilder) Description(description string) *CreateGroupReqBodyBuilder {
  5155  	builder.description = description
  5156  	builder.descriptionFlag = true
  5157  	return builder
  5158  }
  5159  
  5160  // 用户组的类型。默认为1表示普通用户组
  5161  //
  5162  //示例值:1
  5163  func (builder *CreateGroupReqBodyBuilder) Type(type_ int) *CreateGroupReqBodyBuilder {
  5164  	builder.type_ = type_
  5165  	builder.typeFlag = true
  5166  	return builder
  5167  }
  5168  
  5169  func (builder *CreateGroupReqBodyBuilder) Build() *CreateGroupReqBody {
  5170  	req := &CreateGroupReqBody{}
  5171  	if builder.groupIdFlag {
  5172  		req.GroupId = &builder.groupId
  5173  	}
  5174  	if builder.nameFlag {
  5175  		req.Name = &builder.name
  5176  	}
  5177  	if builder.descriptionFlag {
  5178  		req.Description = &builder.description
  5179  	}
  5180  	if builder.typeFlag {
  5181  		req.Type = &builder.type_
  5182  	}
  5183  	return req
  5184  }
  5185  
  5186  type CreateGroupPathReqBodyBuilder struct {
  5187  	groupId         string // 自定义用户组ID,可在创建时自定义,不自定义则由系统自动生成,已创建用户组不允许修改 group_id 。;;自定义group_id数据校验规则:;;最大长度:64 字符;;校验规则:数字、大小写字母的组合,不能包含空格
  5188  	groupIdFlag     bool
  5189  	name            string // 用户组的名字,企业内唯一,最大长度:100 字符
  5190  	nameFlag        bool
  5191  	description     string // 用户组描述
  5192  	descriptionFlag bool
  5193  	type_           int // 用户组的类型。默认为1表示普通用户组
  5194  	typeFlag        bool
  5195  }
  5196  
  5197  func NewCreateGroupPathReqBodyBuilder() *CreateGroupPathReqBodyBuilder {
  5198  	builder := &CreateGroupPathReqBodyBuilder{}
  5199  	return builder
  5200  }
  5201  
  5202  // 自定义用户组ID,可在创建时自定义,不自定义则由系统自动生成,已创建用户组不允许修改 group_id 。;;自定义group_id数据校验规则:;;最大长度:64 字符;;校验规则:数字、大小写字母的组合,不能包含空格
  5203  //
  5204  // 示例值:g122817
  5205  func (builder *CreateGroupPathReqBodyBuilder) GroupId(groupId string) *CreateGroupPathReqBodyBuilder {
  5206  	builder.groupId = groupId
  5207  	builder.groupIdFlag = true
  5208  	return builder
  5209  }
  5210  
  5211  // 用户组的名字,企业内唯一,最大长度:100 字符
  5212  //
  5213  // 示例值:IT 外包组
  5214  func (builder *CreateGroupPathReqBodyBuilder) Name(name string) *CreateGroupPathReqBodyBuilder {
  5215  	builder.name = name
  5216  	builder.nameFlag = true
  5217  	return builder
  5218  }
  5219  
  5220  // 用户组描述
  5221  //
  5222  // 示例值:IT服务人员的集合
  5223  func (builder *CreateGroupPathReqBodyBuilder) Description(description string) *CreateGroupPathReqBodyBuilder {
  5224  	builder.description = description
  5225  	builder.descriptionFlag = true
  5226  	return builder
  5227  }
  5228  
  5229  // 用户组的类型。默认为1表示普通用户组
  5230  //
  5231  // 示例值:1
  5232  func (builder *CreateGroupPathReqBodyBuilder) Type(type_ int) *CreateGroupPathReqBodyBuilder {
  5233  	builder.type_ = type_
  5234  	builder.typeFlag = true
  5235  	return builder
  5236  }
  5237  
  5238  func (builder *CreateGroupPathReqBodyBuilder) Build() (*CreateGroupReqBody, error) {
  5239  	req := &CreateGroupReqBody{}
  5240  	if builder.groupIdFlag {
  5241  		req.GroupId = &builder.groupId
  5242  	}
  5243  	if builder.nameFlag {
  5244  		req.Name = &builder.name
  5245  	}
  5246  	if builder.descriptionFlag {
  5247  		req.Description = &builder.description
  5248  	}
  5249  	if builder.typeFlag {
  5250  		req.Type = &builder.type_
  5251  	}
  5252  	return req, nil
  5253  }
  5254  
  5255  type CreateGroupReqBuilder struct {
  5256  	apiReq *larkcore.ApiReq
  5257  	body   *CreateGroupReqBody
  5258  }
  5259  
  5260  func NewCreateGroupReqBuilder() *CreateGroupReqBuilder {
  5261  	builder := &CreateGroupReqBuilder{}
  5262  	builder.apiReq = &larkcore.ApiReq{
  5263  		PathParams:  larkcore.PathParams{},
  5264  		QueryParams: larkcore.QueryParams{},
  5265  	}
  5266  	return builder
  5267  }
  5268  
  5269  // 使用该接口创建用户组,请注意创建用户组时应用的通讯录权限范围需为“全部员工”,否则会创建失败,[点击了解通讯录权限范围](/ssl:ttdoc/ukTMukTMukTM/uETNz4SM1MjLxUzM/v3/guides/scope_authority)。
  5270  func (builder *CreateGroupReqBuilder) Body(body *CreateGroupReqBody) *CreateGroupReqBuilder {
  5271  	builder.body = body
  5272  	return builder
  5273  }
  5274  
  5275  func (builder *CreateGroupReqBuilder) Build() *CreateGroupReq {
  5276  	req := &CreateGroupReq{}
  5277  	req.apiReq = &larkcore.ApiReq{}
  5278  	req.apiReq.Body = builder.body
  5279  	return req
  5280  }
  5281  
  5282  type CreateGroupReqBody struct {
  5283  	GroupId     *string `json:"group_id,omitempty"`    // 自定义用户组ID,可在创建时自定义,不自定义则由系统自动生成,已创建用户组不允许修改 group_id 。;;自定义group_id数据校验规则:;;最大长度:64 字符;;校验规则:数字、大小写字母的组合,不能包含空格
  5284  	Name        *string `json:"name,omitempty"`        // 用户组的名字,企业内唯一,最大长度:100 字符
  5285  	Description *string `json:"description,omitempty"` // 用户组描述
  5286  	Type        *int    `json:"type,omitempty"`        // 用户组的类型。默认为1表示普通用户组
  5287  }
  5288  
  5289  type CreateGroupReq struct {
  5290  	apiReq *larkcore.ApiReq
  5291  	Body   *CreateGroupReqBody `body:""`
  5292  }
  5293  
  5294  type CreateGroupRespData struct {
  5295  	GroupId *string `json:"group_id,omitempty"` // 用户组ID
  5296  }
  5297  
  5298  type CreateGroupResp struct {
  5299  	*larkcore.ApiResp `json:"-"`
  5300  	larkcore.CodeError
  5301  	Data *CreateGroupRespData `json:"data"` // 业务数据
  5302  }
  5303  
  5304  func (resp *CreateGroupResp) Success() bool {
  5305  	return resp.Code == 0
  5306  }
  5307  
  5308  type DeleteGroupReqBuilder struct {
  5309  	apiReq *larkcore.ApiReq
  5310  }
  5311  
  5312  func NewDeleteGroupReqBuilder() *DeleteGroupReqBuilder {
  5313  	builder := &DeleteGroupReqBuilder{}
  5314  	builder.apiReq = &larkcore.ApiReq{
  5315  		PathParams:  larkcore.PathParams{},
  5316  		QueryParams: larkcore.QueryParams{},
  5317  	}
  5318  	return builder
  5319  }
  5320  
  5321  // 需删除的用户组ID
  5322  //
  5323  // 示例值:g1837191
  5324  func (builder *DeleteGroupReqBuilder) GroupId(groupId string) *DeleteGroupReqBuilder {
  5325  	builder.apiReq.PathParams.Set("group_id", fmt.Sprint(groupId))
  5326  	return builder
  5327  }
  5328  
  5329  func (builder *DeleteGroupReqBuilder) Build() *DeleteGroupReq {
  5330  	req := &DeleteGroupReq{}
  5331  	req.apiReq = &larkcore.ApiReq{}
  5332  	req.apiReq.PathParams = builder.apiReq.PathParams
  5333  	return req
  5334  }
  5335  
  5336  type DeleteGroupReq struct {
  5337  	apiReq *larkcore.ApiReq
  5338  }
  5339  
  5340  type DeleteGroupResp struct {
  5341  	*larkcore.ApiResp `json:"-"`
  5342  	larkcore.CodeError
  5343  }
  5344  
  5345  func (resp *DeleteGroupResp) Success() bool {
  5346  	return resp.Code == 0
  5347  }
  5348  
  5349  type GetGroupReqBuilder struct {
  5350  	apiReq *larkcore.ApiReq
  5351  }
  5352  
  5353  func NewGetGroupReqBuilder() *GetGroupReqBuilder {
  5354  	builder := &GetGroupReqBuilder{}
  5355  	builder.apiReq = &larkcore.ApiReq{
  5356  		PathParams:  larkcore.PathParams{},
  5357  		QueryParams: larkcore.QueryParams{},
  5358  	}
  5359  	return builder
  5360  }
  5361  
  5362  // 用户组ID
  5363  //
  5364  // 示例值:g193821
  5365  func (builder *GetGroupReqBuilder) GroupId(groupId string) *GetGroupReqBuilder {
  5366  	builder.apiReq.PathParams.Set("group_id", fmt.Sprint(groupId))
  5367  	return builder
  5368  }
  5369  
  5370  func (builder *GetGroupReqBuilder) Build() *GetGroupReq {
  5371  	req := &GetGroupReq{}
  5372  	req.apiReq = &larkcore.ApiReq{}
  5373  	req.apiReq.PathParams = builder.apiReq.PathParams
  5374  	return req
  5375  }
  5376  
  5377  type GetGroupReq struct {
  5378  	apiReq *larkcore.ApiReq
  5379  }
  5380  
  5381  type GetGroupRespData struct {
  5382  	Group *Group `json:"group,omitempty"` // 用户组详情
  5383  }
  5384  
  5385  type GetGroupResp struct {
  5386  	*larkcore.ApiResp `json:"-"`
  5387  	larkcore.CodeError
  5388  	Data *GetGroupRespData `json:"data"` // 业务数据
  5389  }
  5390  
  5391  func (resp *GetGroupResp) Success() bool {
  5392  	return resp.Code == 0
  5393  }
  5394  
  5395  type MemberBelongGroupReqBuilder struct {
  5396  	apiReq *larkcore.ApiReq
  5397  }
  5398  
  5399  func NewMemberBelongGroupReqBuilder() *MemberBelongGroupReqBuilder {
  5400  	builder := &MemberBelongGroupReqBuilder{}
  5401  	builder.apiReq = &larkcore.ApiReq{
  5402  		PathParams:  larkcore.PathParams{},
  5403  		QueryParams: larkcore.QueryParams{},
  5404  	}
  5405  	return builder
  5406  }
  5407  
  5408  // 成员ID
  5409  //
  5410  // 示例值:u287xj12
  5411  func (builder *MemberBelongGroupReqBuilder) MemberId(memberId string) *MemberBelongGroupReqBuilder {
  5412  	builder.apiReq.QueryParams.Set("member_id", fmt.Sprint(memberId))
  5413  	return builder
  5414  }
  5415  
  5416  // 成员ID类型
  5417  //
  5418  // 示例值:open_id
  5419  func (builder *MemberBelongGroupReqBuilder) MemberIdType(memberIdType string) *MemberBelongGroupReqBuilder {
  5420  	builder.apiReq.QueryParams.Set("member_id_type", fmt.Sprint(memberIdType))
  5421  	return builder
  5422  }
  5423  
  5424  // 欲获取的用户组类型
  5425  //
  5426  // 示例值:1
  5427  func (builder *MemberBelongGroupReqBuilder) GroupType(groupType int) *MemberBelongGroupReqBuilder {
  5428  	builder.apiReq.QueryParams.Set("group_type", fmt.Sprint(groupType))
  5429  	return builder
  5430  }
  5431  
  5432  // 分页查询大小
  5433  //
  5434  // 示例值:500
  5435  func (builder *MemberBelongGroupReqBuilder) PageSize(pageSize int) *MemberBelongGroupReqBuilder {
  5436  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  5437  	return builder
  5438  }
  5439  
  5440  // 分页查询Token
  5441  //
  5442  // 示例值:AQD9/Rn9eij9Pm39ED40/dk53s4Ebp882DYfFaPFbz00L4CMZJrqGdzNyc8BcZtDbwVUvRmQTvyMYicnGWrde9X56TgdBuS+JKiSIkdexPw=
  5443  func (builder *MemberBelongGroupReqBuilder) PageToken(pageToken string) *MemberBelongGroupReqBuilder {
  5444  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  5445  	return builder
  5446  }
  5447  
  5448  func (builder *MemberBelongGroupReqBuilder) Build() *MemberBelongGroupReq {
  5449  	req := &MemberBelongGroupReq{}
  5450  	req.apiReq = &larkcore.ApiReq{}
  5451  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  5452  	return req
  5453  }
  5454  
  5455  type MemberBelongGroupReq struct {
  5456  	apiReq *larkcore.ApiReq
  5457  }
  5458  
  5459  type MemberBelongGroupRespData struct {
  5460  	GroupList []string `json:"group_list,omitempty"` // 用户组ID列表
  5461  	PageToken *string  `json:"page_token,omitempty"` // 分页查询Token
  5462  	HasMore   *bool    `json:"has_more,omitempty"`   // 是否有更多结果
  5463  }
  5464  
  5465  type MemberBelongGroupResp struct {
  5466  	*larkcore.ApiResp `json:"-"`
  5467  	larkcore.CodeError
  5468  	Data *MemberBelongGroupRespData `json:"data"` // 业务数据
  5469  }
  5470  
  5471  func (resp *MemberBelongGroupResp) Success() bool {
  5472  	return resp.Code == 0
  5473  }
  5474  
  5475  type PatchGroupReqBodyBuilder struct {
  5476  	name            string // 用户组的名字,企业内唯一,最大长度:100 字符
  5477  	nameFlag        bool
  5478  	description     string // 用户组描述信息;最大长度:500 字
  5479  	descriptionFlag bool
  5480  }
  5481  
  5482  func NewPatchGroupReqBodyBuilder() *PatchGroupReqBodyBuilder {
  5483  	builder := &PatchGroupReqBodyBuilder{}
  5484  	return builder
  5485  }
  5486  
  5487  // 用户组的名字,企业内唯一,最大长度:100 字符
  5488  //
  5489  //示例值:外包 IT 用户组
  5490  func (builder *PatchGroupReqBodyBuilder) Name(name string) *PatchGroupReqBodyBuilder {
  5491  	builder.name = name
  5492  	builder.nameFlag = true
  5493  	return builder
  5494  }
  5495  
  5496  // 用户组描述信息;最大长度:500 字
  5497  //
  5498  //示例值:IT 外包用户组,需要进行细粒度权限管控
  5499  func (builder *PatchGroupReqBodyBuilder) Description(description string) *PatchGroupReqBodyBuilder {
  5500  	builder.description = description
  5501  	builder.descriptionFlag = true
  5502  	return builder
  5503  }
  5504  
  5505  func (builder *PatchGroupReqBodyBuilder) Build() *PatchGroupReqBody {
  5506  	req := &PatchGroupReqBody{}
  5507  	if builder.nameFlag {
  5508  		req.Name = &builder.name
  5509  	}
  5510  	if builder.descriptionFlag {
  5511  		req.Description = &builder.description
  5512  	}
  5513  	return req
  5514  }
  5515  
  5516  type PatchGroupPathReqBodyBuilder struct {
  5517  	name            string // 用户组的名字,企业内唯一,最大长度:100 字符
  5518  	nameFlag        bool
  5519  	description     string // 用户组描述信息;最大长度:500 字
  5520  	descriptionFlag bool
  5521  }
  5522  
  5523  func NewPatchGroupPathReqBodyBuilder() *PatchGroupPathReqBodyBuilder {
  5524  	builder := &PatchGroupPathReqBodyBuilder{}
  5525  	return builder
  5526  }
  5527  
  5528  // 用户组的名字,企业内唯一,最大长度:100 字符
  5529  //
  5530  // 示例值:外包 IT 用户组
  5531  func (builder *PatchGroupPathReqBodyBuilder) Name(name string) *PatchGroupPathReqBodyBuilder {
  5532  	builder.name = name
  5533  	builder.nameFlag = true
  5534  	return builder
  5535  }
  5536  
  5537  // 用户组描述信息;最大长度:500 字
  5538  //
  5539  // 示例值:IT 外包用户组,需要进行细粒度权限管控
  5540  func (builder *PatchGroupPathReqBodyBuilder) Description(description string) *PatchGroupPathReqBodyBuilder {
  5541  	builder.description = description
  5542  	builder.descriptionFlag = true
  5543  	return builder
  5544  }
  5545  
  5546  func (builder *PatchGroupPathReqBodyBuilder) Build() (*PatchGroupReqBody, error) {
  5547  	req := &PatchGroupReqBody{}
  5548  	if builder.nameFlag {
  5549  		req.Name = &builder.name
  5550  	}
  5551  	if builder.descriptionFlag {
  5552  		req.Description = &builder.description
  5553  	}
  5554  	return req, nil
  5555  }
  5556  
  5557  type PatchGroupReqBuilder struct {
  5558  	apiReq *larkcore.ApiReq
  5559  	body   *PatchGroupReqBody
  5560  }
  5561  
  5562  func NewPatchGroupReqBuilder() *PatchGroupReqBuilder {
  5563  	builder := &PatchGroupReqBuilder{}
  5564  	builder.apiReq = &larkcore.ApiReq{
  5565  		PathParams:  larkcore.PathParams{},
  5566  		QueryParams: larkcore.QueryParams{},
  5567  	}
  5568  	return builder
  5569  }
  5570  
  5571  // 用户组ID
  5572  //
  5573  // 示例值:g187131
  5574  func (builder *PatchGroupReqBuilder) GroupId(groupId string) *PatchGroupReqBuilder {
  5575  	builder.apiReq.PathParams.Set("group_id", fmt.Sprint(groupId))
  5576  	return builder
  5577  }
  5578  
  5579  // 使用该接口更新用户组信息,请注意更新用户组时应用的通讯录权限范围需为“全部员工”,否则会更新失败。[点击了解通讯录权限范围](/ssl:ttdoc/ukTMukTMukTM/uETNz4SM1MjLxUzM/v3/guides/scope_authority)。
  5580  func (builder *PatchGroupReqBuilder) Body(body *PatchGroupReqBody) *PatchGroupReqBuilder {
  5581  	builder.body = body
  5582  	return builder
  5583  }
  5584  
  5585  func (builder *PatchGroupReqBuilder) Build() *PatchGroupReq {
  5586  	req := &PatchGroupReq{}
  5587  	req.apiReq = &larkcore.ApiReq{}
  5588  	req.apiReq.PathParams = builder.apiReq.PathParams
  5589  	req.apiReq.Body = builder.body
  5590  	return req
  5591  }
  5592  
  5593  type PatchGroupReqBody struct {
  5594  	Name        *string `json:"name,omitempty"`        // 用户组的名字,企业内唯一,最大长度:100 字符
  5595  	Description *string `json:"description,omitempty"` // 用户组描述信息;最大长度:500 字
  5596  }
  5597  
  5598  type PatchGroupReq struct {
  5599  	apiReq *larkcore.ApiReq
  5600  	Body   *PatchGroupReqBody `body:""`
  5601  }
  5602  
  5603  type PatchGroupResp struct {
  5604  	*larkcore.ApiResp `json:"-"`
  5605  	larkcore.CodeError
  5606  }
  5607  
  5608  func (resp *PatchGroupResp) Success() bool {
  5609  	return resp.Code == 0
  5610  }
  5611  
  5612  type SimplelistGroupReqBuilder struct {
  5613  	apiReq *larkcore.ApiReq
  5614  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  5615  }
  5616  
  5617  func NewSimplelistGroupReqBuilder() *SimplelistGroupReqBuilder {
  5618  	builder := &SimplelistGroupReqBuilder{}
  5619  	builder.apiReq = &larkcore.ApiReq{
  5620  		PathParams:  larkcore.PathParams{},
  5621  		QueryParams: larkcore.QueryParams{},
  5622  	}
  5623  	return builder
  5624  }
  5625  
  5626  // 最大返回多少记录,当使用迭代器访问时才有效
  5627  func (builder *SimplelistGroupReqBuilder) Limit(limit int) *SimplelistGroupReqBuilder {
  5628  	builder.limit = limit
  5629  	return builder
  5630  }
  5631  
  5632  // 分页大小
  5633  //
  5634  // 示例值:50
  5635  func (builder *SimplelistGroupReqBuilder) PageSize(pageSize int) *SimplelistGroupReqBuilder {
  5636  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  5637  	return builder
  5638  }
  5639  
  5640  // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果
  5641  //
  5642  // 示例值:AQD9/Rn9eij9Pm39ED40/dk53s4Ebp882DYfFaPFbz00L4CMZJrqGdzNyc8BcZtDbwVUvRmQTvyMYicnGWrde9X56TgdBuS+JKiSIkdexPw=
  5643  func (builder *SimplelistGroupReqBuilder) PageToken(pageToken string) *SimplelistGroupReqBuilder {
  5644  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  5645  	return builder
  5646  }
  5647  
  5648  // 用户组类型
  5649  //
  5650  // 示例值:1
  5651  func (builder *SimplelistGroupReqBuilder) Type(type_ int) *SimplelistGroupReqBuilder {
  5652  	builder.apiReq.QueryParams.Set("type", fmt.Sprint(type_))
  5653  	return builder
  5654  }
  5655  
  5656  func (builder *SimplelistGroupReqBuilder) Build() *SimplelistGroupReq {
  5657  	req := &SimplelistGroupReq{}
  5658  	req.apiReq = &larkcore.ApiReq{}
  5659  	req.Limit = builder.limit
  5660  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  5661  	return req
  5662  }
  5663  
  5664  type SimplelistGroupReq struct {
  5665  	apiReq *larkcore.ApiReq
  5666  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
  5667  
  5668  }
  5669  
  5670  type SimplelistGroupRespData struct {
  5671  	Grouplist []*Group `json:"grouplist,omitempty"`  // 用户组列表
  5672  	PageToken *string  `json:"page_token,omitempty"` // 下次分页获取的page_token
  5673  	HasMore   *bool    `json:"has_more,omitempty"`   // 是否还需要分页获取
  5674  }
  5675  
  5676  type SimplelistGroupResp struct {
  5677  	*larkcore.ApiResp `json:"-"`
  5678  	larkcore.CodeError
  5679  	Data *SimplelistGroupRespData `json:"data"` // 业务数据
  5680  }
  5681  
  5682  func (resp *SimplelistGroupResp) Success() bool {
  5683  	return resp.Code == 0
  5684  }
  5685  
  5686  type AddGroupMemberReqBodyBuilder struct {
  5687  	memberType       string // 用户组成员的类型,取值为 user
  5688  	memberTypeFlag   bool
  5689  	memberIdType     string // 当member_type =user时候,member_id_type表示user_id_type,枚举值为open_id, union_id, user_id
  5690  	memberIdTypeFlag bool
  5691  	memberId         string // 添加的成员ID
  5692  	memberIdFlag     bool
  5693  }
  5694  
  5695  func NewAddGroupMemberReqBodyBuilder() *AddGroupMemberReqBodyBuilder {
  5696  	builder := &AddGroupMemberReqBodyBuilder{}
  5697  	return builder
  5698  }
  5699  
  5700  // 用户组成员的类型,取值为 user
  5701  //
  5702  //示例值:user
  5703  func (builder *AddGroupMemberReqBodyBuilder) MemberType(memberType string) *AddGroupMemberReqBodyBuilder {
  5704  	builder.memberType = memberType
  5705  	builder.memberTypeFlag = true
  5706  	return builder
  5707  }
  5708  
  5709  // 当member_type =user时候,member_id_type表示user_id_type,枚举值为open_id, union_id, user_id
  5710  //
  5711  //示例值:open_id
  5712  func (builder *AddGroupMemberReqBodyBuilder) MemberIdType(memberIdType string) *AddGroupMemberReqBodyBuilder {
  5713  	builder.memberIdType = memberIdType
  5714  	builder.memberIdTypeFlag = true
  5715  	return builder
  5716  }
  5717  
  5718  // 添加的成员ID
  5719  //
  5720  //示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
  5721  func (builder *AddGroupMemberReqBodyBuilder) MemberId(memberId string) *AddGroupMemberReqBodyBuilder {
  5722  	builder.memberId = memberId
  5723  	builder.memberIdFlag = true
  5724  	return builder
  5725  }
  5726  
  5727  func (builder *AddGroupMemberReqBodyBuilder) Build() *AddGroupMemberReqBody {
  5728  	req := &AddGroupMemberReqBody{}
  5729  	if builder.memberTypeFlag {
  5730  		req.MemberType = &builder.memberType
  5731  	}
  5732  	if builder.memberIdTypeFlag {
  5733  		req.MemberIdType = &builder.memberIdType
  5734  	}
  5735  	if builder.memberIdFlag {
  5736  		req.MemberId = &builder.memberId
  5737  	}
  5738  	return req
  5739  }
  5740  
  5741  type AddGroupMemberPathReqBodyBuilder struct {
  5742  	memberType       string // 用户组成员的类型,取值为 user
  5743  	memberTypeFlag   bool
  5744  	memberIdType     string // 当member_type =user时候,member_id_type表示user_id_type,枚举值为open_id, union_id, user_id
  5745  	memberIdTypeFlag bool
  5746  	memberId         string // 添加的成员ID
  5747  	memberIdFlag     bool
  5748  }
  5749  
  5750  func NewAddGroupMemberPathReqBodyBuilder() *AddGroupMemberPathReqBodyBuilder {
  5751  	builder := &AddGroupMemberPathReqBodyBuilder{}
  5752  	return builder
  5753  }
  5754  
  5755  // 用户组成员的类型,取值为 user
  5756  //
  5757  // 示例值:user
  5758  func (builder *AddGroupMemberPathReqBodyBuilder) MemberType(memberType string) *AddGroupMemberPathReqBodyBuilder {
  5759  	builder.memberType = memberType
  5760  	builder.memberTypeFlag = true
  5761  	return builder
  5762  }
  5763  
  5764  // 当member_type =user时候,member_id_type表示user_id_type,枚举值为open_id, union_id, user_id
  5765  //
  5766  // 示例值:open_id
  5767  func (builder *AddGroupMemberPathReqBodyBuilder) MemberIdType(memberIdType string) *AddGroupMemberPathReqBodyBuilder {
  5768  	builder.memberIdType = memberIdType
  5769  	builder.memberIdTypeFlag = true
  5770  	return builder
  5771  }
  5772  
  5773  // 添加的成员ID
  5774  //
  5775  // 示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
  5776  func (builder *AddGroupMemberPathReqBodyBuilder) MemberId(memberId string) *AddGroupMemberPathReqBodyBuilder {
  5777  	builder.memberId = memberId
  5778  	builder.memberIdFlag = true
  5779  	return builder
  5780  }
  5781  
  5782  func (builder *AddGroupMemberPathReqBodyBuilder) Build() (*AddGroupMemberReqBody, error) {
  5783  	req := &AddGroupMemberReqBody{}
  5784  	if builder.memberTypeFlag {
  5785  		req.MemberType = &builder.memberType
  5786  	}
  5787  	if builder.memberIdTypeFlag {
  5788  		req.MemberIdType = &builder.memberIdType
  5789  	}
  5790  	if builder.memberIdFlag {
  5791  		req.MemberId = &builder.memberId
  5792  	}
  5793  	return req, nil
  5794  }
  5795  
  5796  type AddGroupMemberReqBuilder struct {
  5797  	apiReq *larkcore.ApiReq
  5798  	body   *AddGroupMemberReqBody
  5799  }
  5800  
  5801  func NewAddGroupMemberReqBuilder() *AddGroupMemberReqBuilder {
  5802  	builder := &AddGroupMemberReqBuilder{}
  5803  	builder.apiReq = &larkcore.ApiReq{
  5804  		PathParams:  larkcore.PathParams{},
  5805  		QueryParams: larkcore.QueryParams{},
  5806  	}
  5807  	return builder
  5808  }
  5809  
  5810  // 用户组ID
  5811  //
  5812  // 示例值:g281721
  5813  func (builder *AddGroupMemberReqBuilder) GroupId(groupId string) *AddGroupMemberReqBuilder {
  5814  	builder.apiReq.PathParams.Set("group_id", fmt.Sprint(groupId))
  5815  	return builder
  5816  }
  5817  
  5818  // 向用户组中添加成员(目前成员仅支持用户,未来会支持部门),如果应用的通讯录权限范围是“全部员工”,则可将任何成员添加到任何用户组。如果应用的通讯录权限范围不是“全部员工”,则仅可将通讯录权限范围中的成员添加到通讯录权限范围的用户组中,[点击了解通讯录权限范围](/ssl:ttdoc/ukTMukTMukTM/uETNz4SM1MjLxUzM/v3/guides/scope_authority)。
  5819  func (builder *AddGroupMemberReqBuilder) Body(body *AddGroupMemberReqBody) *AddGroupMemberReqBuilder {
  5820  	builder.body = body
  5821  	return builder
  5822  }
  5823  
  5824  func (builder *AddGroupMemberReqBuilder) Build() *AddGroupMemberReq {
  5825  	req := &AddGroupMemberReq{}
  5826  	req.apiReq = &larkcore.ApiReq{}
  5827  	req.apiReq.PathParams = builder.apiReq.PathParams
  5828  	req.apiReq.Body = builder.body
  5829  	return req
  5830  }
  5831  
  5832  type AddGroupMemberReqBody struct {
  5833  	MemberType   *string `json:"member_type,omitempty"`    // 用户组成员的类型,取值为 user
  5834  	MemberIdType *string `json:"member_id_type,omitempty"` // 当member_type =user时候,member_id_type表示user_id_type,枚举值为open_id, union_id, user_id
  5835  	MemberId     *string `json:"member_id,omitempty"`      // 添加的成员ID
  5836  }
  5837  
  5838  type AddGroupMemberReq struct {
  5839  	apiReq *larkcore.ApiReq
  5840  	Body   *AddGroupMemberReqBody `body:""`
  5841  }
  5842  
  5843  type AddGroupMemberResp struct {
  5844  	*larkcore.ApiResp `json:"-"`
  5845  	larkcore.CodeError
  5846  }
  5847  
  5848  func (resp *AddGroupMemberResp) Success() bool {
  5849  	return resp.Code == 0
  5850  }
  5851  
  5852  type BatchAddGroupMemberReqBodyBuilder struct {
  5853  	members     []*Memberlist // 待添加成员
  5854  	membersFlag bool
  5855  }
  5856  
  5857  func NewBatchAddGroupMemberReqBodyBuilder() *BatchAddGroupMemberReqBodyBuilder {
  5858  	builder := &BatchAddGroupMemberReqBodyBuilder{}
  5859  	return builder
  5860  }
  5861  
  5862  // 待添加成员
  5863  //
  5864  //示例值:
  5865  func (builder *BatchAddGroupMemberReqBodyBuilder) Members(members []*Memberlist) *BatchAddGroupMemberReqBodyBuilder {
  5866  	builder.members = members
  5867  	builder.membersFlag = true
  5868  	return builder
  5869  }
  5870  
  5871  func (builder *BatchAddGroupMemberReqBodyBuilder) Build() *BatchAddGroupMemberReqBody {
  5872  	req := &BatchAddGroupMemberReqBody{}
  5873  	if builder.membersFlag {
  5874  		req.Members = builder.members
  5875  	}
  5876  	return req
  5877  }
  5878  
  5879  type BatchAddGroupMemberPathReqBodyBuilder struct {
  5880  	members     []*Memberlist // 待添加成员
  5881  	membersFlag bool
  5882  }
  5883  
  5884  func NewBatchAddGroupMemberPathReqBodyBuilder() *BatchAddGroupMemberPathReqBodyBuilder {
  5885  	builder := &BatchAddGroupMemberPathReqBodyBuilder{}
  5886  	return builder
  5887  }
  5888  
  5889  // 待添加成员
  5890  //
  5891  // 示例值:
  5892  func (builder *BatchAddGroupMemberPathReqBodyBuilder) Members(members []*Memberlist) *BatchAddGroupMemberPathReqBodyBuilder {
  5893  	builder.members = members
  5894  	builder.membersFlag = true
  5895  	return builder
  5896  }
  5897  
  5898  func (builder *BatchAddGroupMemberPathReqBodyBuilder) Build() (*BatchAddGroupMemberReqBody, error) {
  5899  	req := &BatchAddGroupMemberReqBody{}
  5900  	if builder.membersFlag {
  5901  		req.Members = builder.members
  5902  	}
  5903  	return req, nil
  5904  }
  5905  
  5906  type BatchAddGroupMemberReqBuilder struct {
  5907  	apiReq *larkcore.ApiReq
  5908  	body   *BatchAddGroupMemberReqBody
  5909  }
  5910  
  5911  func NewBatchAddGroupMemberReqBuilder() *BatchAddGroupMemberReqBuilder {
  5912  	builder := &BatchAddGroupMemberReqBuilder{}
  5913  	builder.apiReq = &larkcore.ApiReq{
  5914  		PathParams:  larkcore.PathParams{},
  5915  		QueryParams: larkcore.QueryParams{},
  5916  	}
  5917  	return builder
  5918  }
  5919  
  5920  // 用户组ID
  5921  //
  5922  // 示例值:test_group
  5923  func (builder *BatchAddGroupMemberReqBuilder) GroupId(groupId string) *BatchAddGroupMemberReqBuilder {
  5924  	builder.apiReq.PathParams.Set("group_id", fmt.Sprint(groupId))
  5925  	return builder
  5926  }
  5927  
  5928  // 向普通用户组中批量添加成员(目前仅支持添加用户,暂不支持添加部门),如果应用的通讯录权限范围是“全部员工”,则可将任何成员添加到任何用户组。如果应用的通讯录权限范围不是“全部员工”,则仅可将通讯录权限范围中的成员添加到通讯录权限范围的用户组中,[点击了解通讯录权限范围](/ssl:ttdoc/ukTMukTMukTM/uETNz4SM1MjLxUzM/v3/guides/scope_authority)。
  5929  func (builder *BatchAddGroupMemberReqBuilder) Body(body *BatchAddGroupMemberReqBody) *BatchAddGroupMemberReqBuilder {
  5930  	builder.body = body
  5931  	return builder
  5932  }
  5933  
  5934  func (builder *BatchAddGroupMemberReqBuilder) Build() *BatchAddGroupMemberReq {
  5935  	req := &BatchAddGroupMemberReq{}
  5936  	req.apiReq = &larkcore.ApiReq{}
  5937  	req.apiReq.PathParams = builder.apiReq.PathParams
  5938  	req.apiReq.Body = builder.body
  5939  	return req
  5940  }
  5941  
  5942  type BatchAddGroupMemberReqBody struct {
  5943  	Members []*Memberlist `json:"members,omitempty"` // 待添加成员
  5944  }
  5945  
  5946  type BatchAddGroupMemberReq struct {
  5947  	apiReq *larkcore.ApiReq
  5948  	Body   *BatchAddGroupMemberReqBody `body:""`
  5949  }
  5950  
  5951  type BatchAddGroupMemberRespData struct {
  5952  	Results []*MemberResult `json:"results,omitempty"` // 成员添加操作结果
  5953  }
  5954  
  5955  type BatchAddGroupMemberResp struct {
  5956  	*larkcore.ApiResp `json:"-"`
  5957  	larkcore.CodeError
  5958  	Data *BatchAddGroupMemberRespData `json:"data"` // 业务数据
  5959  }
  5960  
  5961  func (resp *BatchAddGroupMemberResp) Success() bool {
  5962  	return resp.Code == 0
  5963  }
  5964  
  5965  type BatchRemoveGroupMemberReqBodyBuilder struct {
  5966  	members     []*Memberlist // 待移除成员
  5967  	membersFlag bool
  5968  }
  5969  
  5970  func NewBatchRemoveGroupMemberReqBodyBuilder() *BatchRemoveGroupMemberReqBodyBuilder {
  5971  	builder := &BatchRemoveGroupMemberReqBodyBuilder{}
  5972  	return builder
  5973  }
  5974  
  5975  // 待移除成员
  5976  //
  5977  //示例值:
  5978  func (builder *BatchRemoveGroupMemberReqBodyBuilder) Members(members []*Memberlist) *BatchRemoveGroupMemberReqBodyBuilder {
  5979  	builder.members = members
  5980  	builder.membersFlag = true
  5981  	return builder
  5982  }
  5983  
  5984  func (builder *BatchRemoveGroupMemberReqBodyBuilder) Build() *BatchRemoveGroupMemberReqBody {
  5985  	req := &BatchRemoveGroupMemberReqBody{}
  5986  	if builder.membersFlag {
  5987  		req.Members = builder.members
  5988  	}
  5989  	return req
  5990  }
  5991  
  5992  type BatchRemoveGroupMemberPathReqBodyBuilder struct {
  5993  	members     []*Memberlist // 待移除成员
  5994  	membersFlag bool
  5995  }
  5996  
  5997  func NewBatchRemoveGroupMemberPathReqBodyBuilder() *BatchRemoveGroupMemberPathReqBodyBuilder {
  5998  	builder := &BatchRemoveGroupMemberPathReqBodyBuilder{}
  5999  	return builder
  6000  }
  6001  
  6002  // 待移除成员
  6003  //
  6004  // 示例值:
  6005  func (builder *BatchRemoveGroupMemberPathReqBodyBuilder) Members(members []*Memberlist) *BatchRemoveGroupMemberPathReqBodyBuilder {
  6006  	builder.members = members
  6007  	builder.membersFlag = true
  6008  	return builder
  6009  }
  6010  
  6011  func (builder *BatchRemoveGroupMemberPathReqBodyBuilder) Build() (*BatchRemoveGroupMemberReqBody, error) {
  6012  	req := &BatchRemoveGroupMemberReqBody{}
  6013  	if builder.membersFlag {
  6014  		req.Members = builder.members
  6015  	}
  6016  	return req, nil
  6017  }
  6018  
  6019  type BatchRemoveGroupMemberReqBuilder struct {
  6020  	apiReq *larkcore.ApiReq
  6021  	body   *BatchRemoveGroupMemberReqBody
  6022  }
  6023  
  6024  func NewBatchRemoveGroupMemberReqBuilder() *BatchRemoveGroupMemberReqBuilder {
  6025  	builder := &BatchRemoveGroupMemberReqBuilder{}
  6026  	builder.apiReq = &larkcore.ApiReq{
  6027  		PathParams:  larkcore.PathParams{},
  6028  		QueryParams: larkcore.QueryParams{},
  6029  	}
  6030  	return builder
  6031  }
  6032  
  6033  // 用户组ID
  6034  //
  6035  // 示例值:test_group
  6036  func (builder *BatchRemoveGroupMemberReqBuilder) GroupId(groupId string) *BatchRemoveGroupMemberReqBuilder {
  6037  	builder.apiReq.PathParams.Set("group_id", fmt.Sprint(groupId))
  6038  	return builder
  6039  }
  6040  
  6041  // 从普通用户组中批量移除成员 (目前仅支持移除用户,暂不支持移除部门)。如果应用的通讯录权限范围是“全部员工”,则可将任何成员移出任何用户组。如果应用的通讯录权限范围不是“全部员工”,则仅可将通讯录权限范围中的成员从通讯录权限范围的用户组中移除, [点击了解通讯录权限范围](/ssl:ttdoc/ukTMukTMukTM/uETNz4SM1MjLxUzM/v3/guides/scope_authority)。
  6042  func (builder *BatchRemoveGroupMemberReqBuilder) Body(body *BatchRemoveGroupMemberReqBody) *BatchRemoveGroupMemberReqBuilder {
  6043  	builder.body = body
  6044  	return builder
  6045  }
  6046  
  6047  func (builder *BatchRemoveGroupMemberReqBuilder) Build() *BatchRemoveGroupMemberReq {
  6048  	req := &BatchRemoveGroupMemberReq{}
  6049  	req.apiReq = &larkcore.ApiReq{}
  6050  	req.apiReq.PathParams = builder.apiReq.PathParams
  6051  	req.apiReq.Body = builder.body
  6052  	return req
  6053  }
  6054  
  6055  type BatchRemoveGroupMemberReqBody struct {
  6056  	Members []*Memberlist `json:"members,omitempty"` // 待移除成员
  6057  }
  6058  
  6059  type BatchRemoveGroupMemberReq struct {
  6060  	apiReq *larkcore.ApiReq
  6061  	Body   *BatchRemoveGroupMemberReqBody `body:""`
  6062  }
  6063  
  6064  type BatchRemoveGroupMemberResp struct {
  6065  	*larkcore.ApiResp `json:"-"`
  6066  	larkcore.CodeError
  6067  }
  6068  
  6069  func (resp *BatchRemoveGroupMemberResp) Success() bool {
  6070  	return resp.Code == 0
  6071  }
  6072  
  6073  type RemoveGroupMemberReqBodyBuilder struct {
  6074  	memberType       string // 用户组成员的类型,取值为 user
  6075  	memberTypeFlag   bool
  6076  	memberId         string // 操作移除的用户组成员ID
  6077  	memberIdFlag     bool
  6078  	memberIdType     string // 当member_type =user时候,member_id_type表示user_id_type,枚举值为open_id, union_id, user_id
  6079  	memberIdTypeFlag bool
  6080  }
  6081  
  6082  func NewRemoveGroupMemberReqBodyBuilder() *RemoveGroupMemberReqBodyBuilder {
  6083  	builder := &RemoveGroupMemberReqBodyBuilder{}
  6084  	return builder
  6085  }
  6086  
  6087  // 用户组成员的类型,取值为 user
  6088  //
  6089  //示例值:user
  6090  func (builder *RemoveGroupMemberReqBodyBuilder) MemberType(memberType string) *RemoveGroupMemberReqBodyBuilder {
  6091  	builder.memberType = memberType
  6092  	builder.memberTypeFlag = true
  6093  	return builder
  6094  }
  6095  
  6096  // 操作移除的用户组成员ID
  6097  //
  6098  //示例值:xj82871k
  6099  func (builder *RemoveGroupMemberReqBodyBuilder) MemberId(memberId string) *RemoveGroupMemberReqBodyBuilder {
  6100  	builder.memberId = memberId
  6101  	builder.memberIdFlag = true
  6102  	return builder
  6103  }
  6104  
  6105  // 当member_type =user时候,member_id_type表示user_id_type,枚举值为open_id, union_id, user_id
  6106  //
  6107  //示例值:open_id
  6108  func (builder *RemoveGroupMemberReqBodyBuilder) MemberIdType(memberIdType string) *RemoveGroupMemberReqBodyBuilder {
  6109  	builder.memberIdType = memberIdType
  6110  	builder.memberIdTypeFlag = true
  6111  	return builder
  6112  }
  6113  
  6114  func (builder *RemoveGroupMemberReqBodyBuilder) Build() *RemoveGroupMemberReqBody {
  6115  	req := &RemoveGroupMemberReqBody{}
  6116  	if builder.memberTypeFlag {
  6117  		req.MemberType = &builder.memberType
  6118  	}
  6119  	if builder.memberIdFlag {
  6120  		req.MemberId = &builder.memberId
  6121  	}
  6122  	if builder.memberIdTypeFlag {
  6123  		req.MemberIdType = &builder.memberIdType
  6124  	}
  6125  	return req
  6126  }
  6127  
  6128  type RemoveGroupMemberPathReqBodyBuilder struct {
  6129  	memberType       string // 用户组成员的类型,取值为 user
  6130  	memberTypeFlag   bool
  6131  	memberId         string // 操作移除的用户组成员ID
  6132  	memberIdFlag     bool
  6133  	memberIdType     string // 当member_type =user时候,member_id_type表示user_id_type,枚举值为open_id, union_id, user_id
  6134  	memberIdTypeFlag bool
  6135  }
  6136  
  6137  func NewRemoveGroupMemberPathReqBodyBuilder() *RemoveGroupMemberPathReqBodyBuilder {
  6138  	builder := &RemoveGroupMemberPathReqBodyBuilder{}
  6139  	return builder
  6140  }
  6141  
  6142  // 用户组成员的类型,取值为 user
  6143  //
  6144  // 示例值:user
  6145  func (builder *RemoveGroupMemberPathReqBodyBuilder) MemberType(memberType string) *RemoveGroupMemberPathReqBodyBuilder {
  6146  	builder.memberType = memberType
  6147  	builder.memberTypeFlag = true
  6148  	return builder
  6149  }
  6150  
  6151  // 操作移除的用户组成员ID
  6152  //
  6153  // 示例值:xj82871k
  6154  func (builder *RemoveGroupMemberPathReqBodyBuilder) MemberId(memberId string) *RemoveGroupMemberPathReqBodyBuilder {
  6155  	builder.memberId = memberId
  6156  	builder.memberIdFlag = true
  6157  	return builder
  6158  }
  6159  
  6160  // 当member_type =user时候,member_id_type表示user_id_type,枚举值为open_id, union_id, user_id
  6161  //
  6162  // 示例值:open_id
  6163  func (builder *RemoveGroupMemberPathReqBodyBuilder) MemberIdType(memberIdType string) *RemoveGroupMemberPathReqBodyBuilder {
  6164  	builder.memberIdType = memberIdType
  6165  	builder.memberIdTypeFlag = true
  6166  	return builder
  6167  }
  6168  
  6169  func (builder *RemoveGroupMemberPathReqBodyBuilder) Build() (*RemoveGroupMemberReqBody, error) {
  6170  	req := &RemoveGroupMemberReqBody{}
  6171  	if builder.memberTypeFlag {
  6172  		req.MemberType = &builder.memberType
  6173  	}
  6174  	if builder.memberIdFlag {
  6175  		req.MemberId = &builder.memberId
  6176  	}
  6177  	if builder.memberIdTypeFlag {
  6178  		req.MemberIdType = &builder.memberIdType
  6179  	}
  6180  	return req, nil
  6181  }
  6182  
  6183  type RemoveGroupMemberReqBuilder struct {
  6184  	apiReq *larkcore.ApiReq
  6185  	body   *RemoveGroupMemberReqBody
  6186  }
  6187  
  6188  func NewRemoveGroupMemberReqBuilder() *RemoveGroupMemberReqBuilder {
  6189  	builder := &RemoveGroupMemberReqBuilder{}
  6190  	builder.apiReq = &larkcore.ApiReq{
  6191  		PathParams:  larkcore.PathParams{},
  6192  		QueryParams: larkcore.QueryParams{},
  6193  	}
  6194  	return builder
  6195  }
  6196  
  6197  // 用户组ID
  6198  //
  6199  // 示例值:g198123
  6200  func (builder *RemoveGroupMemberReqBuilder) GroupId(groupId string) *RemoveGroupMemberReqBuilder {
  6201  	builder.apiReq.PathParams.Set("group_id", fmt.Sprint(groupId))
  6202  	return builder
  6203  }
  6204  
  6205  // 从用户组中移除成员 (目前成员仅支持用户,未来会支持部门),如果应用的通讯录权限范围是“全部员工”,则可将任何成员移出任何用户组。如果应用的通讯录权限范围不是“全部员工”,则仅可将通讯录权限范围中的成员从通讯录权限范围的用户组中移除, [点击了解通讯录权限范围](/ssl:ttdoc/ukTMukTMukTM/uETNz4SM1MjLxUzM/v3/guides/scope_authority)。
  6206  func (builder *RemoveGroupMemberReqBuilder) Body(body *RemoveGroupMemberReqBody) *RemoveGroupMemberReqBuilder {
  6207  	builder.body = body
  6208  	return builder
  6209  }
  6210  
  6211  func (builder *RemoveGroupMemberReqBuilder) Build() *RemoveGroupMemberReq {
  6212  	req := &RemoveGroupMemberReq{}
  6213  	req.apiReq = &larkcore.ApiReq{}
  6214  	req.apiReq.PathParams = builder.apiReq.PathParams
  6215  	req.apiReq.Body = builder.body
  6216  	return req
  6217  }
  6218  
  6219  type RemoveGroupMemberReqBody struct {
  6220  	MemberType   *string `json:"member_type,omitempty"`    // 用户组成员的类型,取值为 user
  6221  	MemberId     *string `json:"member_id,omitempty"`      // 操作移除的用户组成员ID
  6222  	MemberIdType *string `json:"member_id_type,omitempty"` // 当member_type =user时候,member_id_type表示user_id_type,枚举值为open_id, union_id, user_id
  6223  }
  6224  
  6225  type RemoveGroupMemberReq struct {
  6226  	apiReq *larkcore.ApiReq
  6227  	Body   *RemoveGroupMemberReqBody `body:""`
  6228  }
  6229  
  6230  type RemoveGroupMemberResp struct {
  6231  	*larkcore.ApiResp `json:"-"`
  6232  	larkcore.CodeError
  6233  }
  6234  
  6235  func (resp *RemoveGroupMemberResp) Success() bool {
  6236  	return resp.Code == 0
  6237  }
  6238  
  6239  type SimplelistGroupMemberReqBuilder struct {
  6240  	apiReq *larkcore.ApiReq
  6241  }
  6242  
  6243  func NewSimplelistGroupMemberReqBuilder() *SimplelistGroupMemberReqBuilder {
  6244  	builder := &SimplelistGroupMemberReqBuilder{}
  6245  	builder.apiReq = &larkcore.ApiReq{
  6246  		PathParams:  larkcore.PathParams{},
  6247  		QueryParams: larkcore.QueryParams{},
  6248  	}
  6249  	return builder
  6250  }
  6251  
  6252  // 用户组ID
  6253  //
  6254  // 示例值:g128187
  6255  func (builder *SimplelistGroupMemberReqBuilder) GroupId(groupId string) *SimplelistGroupMemberReqBuilder {
  6256  	builder.apiReq.PathParams.Set("group_id", fmt.Sprint(groupId))
  6257  	return builder
  6258  }
  6259  
  6260  // 分页大小
  6261  //
  6262  // 示例值:50
  6263  func (builder *SimplelistGroupMemberReqBuilder) PageSize(pageSize int) *SimplelistGroupMemberReqBuilder {
  6264  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  6265  	return builder
  6266  }
  6267  
  6268  // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果
  6269  //
  6270  // 示例值:AQD9/Rn9eij9Pm39ED40/dk53s4Ebp882DYfFaPFbz00L4CMZJrqGdzNyc8BcZtDbwVUvRmQTvyMYicnGWrde9X56TgdBuS+JKiSIkdexPw=
  6271  func (builder *SimplelistGroupMemberReqBuilder) PageToken(pageToken string) *SimplelistGroupMemberReqBuilder {
  6272  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  6273  	return builder
  6274  }
  6275  
  6276  // 欲获取成员ID类型。;当member_type=user时候,member_id_type表示user_id_type,枚举值open_id, union_id和user_id。;当member_type=department时候,member_id_type表示department_id_type,枚举值open_id和department_id。
  6277  //
  6278  // 示例值:open_id
  6279  func (builder *SimplelistGroupMemberReqBuilder) MemberIdType(memberIdType string) *SimplelistGroupMemberReqBuilder {
  6280  	builder.apiReq.QueryParams.Set("member_id_type", fmt.Sprint(memberIdType))
  6281  	return builder
  6282  }
  6283  
  6284  // 欲获取的用户组成员类型。
  6285  //
  6286  // 示例值:user
  6287  func (builder *SimplelistGroupMemberReqBuilder) MemberType(memberType string) *SimplelistGroupMemberReqBuilder {
  6288  	builder.apiReq.QueryParams.Set("member_type", fmt.Sprint(memberType))
  6289  	return builder
  6290  }
  6291  
  6292  func (builder *SimplelistGroupMemberReqBuilder) Build() *SimplelistGroupMemberReq {
  6293  	req := &SimplelistGroupMemberReq{}
  6294  	req.apiReq = &larkcore.ApiReq{}
  6295  	req.apiReq.PathParams = builder.apiReq.PathParams
  6296  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  6297  	return req
  6298  }
  6299  
  6300  type SimplelistGroupMemberReq struct {
  6301  	apiReq *larkcore.ApiReq
  6302  }
  6303  
  6304  type SimplelistGroupMemberRespData struct {
  6305  	Memberlist []*Memberlist `json:"memberlist,omitempty"` // 成员列表
  6306  	PageToken  *string       `json:"page_token,omitempty"` // 下次分页获取的page_token
  6307  	HasMore    *bool         `json:"has_more,omitempty"`   // 是否还需要分页获取
  6308  }
  6309  
  6310  type SimplelistGroupMemberResp struct {
  6311  	*larkcore.ApiResp `json:"-"`
  6312  	larkcore.CodeError
  6313  	Data *SimplelistGroupMemberRespData `json:"data"` // 业务数据
  6314  }
  6315  
  6316  func (resp *SimplelistGroupMemberResp) Success() bool {
  6317  	return resp.Code == 0
  6318  }
  6319  
  6320  type ListScopeReqBuilder struct {
  6321  	apiReq *larkcore.ApiReq
  6322  }
  6323  
  6324  func NewListScopeReqBuilder() *ListScopeReqBuilder {
  6325  	builder := &ListScopeReqBuilder{}
  6326  	builder.apiReq = &larkcore.ApiReq{
  6327  		PathParams:  larkcore.PathParams{},
  6328  		QueryParams: larkcore.QueryParams{},
  6329  	}
  6330  	return builder
  6331  }
  6332  
  6333  // 返回值的用户ID的类型
  6334  //
  6335  // 示例值:user_id
  6336  func (builder *ListScopeReqBuilder) UserIdType(userIdType string) *ListScopeReqBuilder {
  6337  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  6338  	return builder
  6339  }
  6340  
  6341  // 返回值的部门ID的类型
  6342  //
  6343  // 示例值:department_id
  6344  func (builder *ListScopeReqBuilder) DepartmentIdType(departmentIdType string) *ListScopeReqBuilder {
  6345  	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
  6346  	return builder
  6347  }
  6348  
  6349  // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果
  6350  //
  6351  // 示例值:AQD9/Rn9eij9Pm39ED40/dk53s4Ebp882DYfFaPFbz00L4CMZJrqGdzNyc8BcZtDbwVUvRmQTvyMYicnGWrde9X56TgdBuS+JKiSIkdexPw=
  6352  func (builder *ListScopeReqBuilder) PageToken(pageToken string) *ListScopeReqBuilder {
  6353  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  6354  	return builder
  6355  }
  6356  
  6357  // 分页大小,控制返回值所有列表长度之和
  6358  //
  6359  // 示例值:50
  6360  func (builder *ListScopeReqBuilder) PageSize(pageSize int) *ListScopeReqBuilder {
  6361  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  6362  	return builder
  6363  }
  6364  
  6365  func (builder *ListScopeReqBuilder) Build() *ListScopeReq {
  6366  	req := &ListScopeReq{}
  6367  	req.apiReq = &larkcore.ApiReq{}
  6368  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  6369  	return req
  6370  }
  6371  
  6372  type ListScopeReq struct {
  6373  	apiReq *larkcore.ApiReq
  6374  }
  6375  
  6376  type ListScopeRespData struct {
  6377  	DepartmentIds []string `json:"department_ids,omitempty"` // 已授权部门列表,授权范围为全员可见时返回的是当前企业的所有一级部门列表
  6378  	UserIds       []string `json:"user_ids,omitempty"`       // 已授权用户列表,应用申请了获取用户user_id 权限时返回;当授权范围为全员可见时返回的是当前企业所有顶级部门用户列表
  6379  	GroupIds      []string `json:"group_ids,omitempty"`      // 已授权的用户组,授权范围为全员可见时返回的是当前企业所有用户组
  6380  	HasMore       *bool    `json:"has_more,omitempty"`       // 是否还有更多项
  6381  	PageToken     *string  `json:"page_token,omitempty"`     // 分页标记,当 has_more 为 true 时,会同时返回新的 page_token
  6382  }
  6383  
  6384  type ListScopeResp struct {
  6385  	*larkcore.ApiResp `json:"-"`
  6386  	larkcore.CodeError
  6387  	Data *ListScopeRespData `json:"data"` // 业务数据
  6388  }
  6389  
  6390  func (resp *ListScopeResp) Success() bool {
  6391  	return resp.Code == 0
  6392  }
  6393  
  6394  type BindDepartmentUnitReqBodyBuilder struct {
  6395  	unitId               string // 单位ID
  6396  	unitIdFlag           bool
  6397  	departmentId         string // 单位关联的部门ID
  6398  	departmentIdFlag     bool
  6399  	departmentIdType     string // 此次调用中使用的部门ID的类型
  6400  	departmentIdTypeFlag bool
  6401  }
  6402  
  6403  func NewBindDepartmentUnitReqBodyBuilder() *BindDepartmentUnitReqBodyBuilder {
  6404  	builder := &BindDepartmentUnitReqBodyBuilder{}
  6405  	return builder
  6406  }
  6407  
  6408  // 单位ID
  6409  //
  6410  //示例值:BU121
  6411  func (builder *BindDepartmentUnitReqBodyBuilder) UnitId(unitId string) *BindDepartmentUnitReqBodyBuilder {
  6412  	builder.unitId = unitId
  6413  	builder.unitIdFlag = true
  6414  	return builder
  6415  }
  6416  
  6417  // 单位关联的部门ID
  6418  //
  6419  //示例值:od-4e6ac4d14bcd5071a37a39de902c7141
  6420  func (builder *BindDepartmentUnitReqBodyBuilder) DepartmentId(departmentId string) *BindDepartmentUnitReqBodyBuilder {
  6421  	builder.departmentId = departmentId
  6422  	builder.departmentIdFlag = true
  6423  	return builder
  6424  }
  6425  
  6426  // 此次调用中使用的部门ID的类型
  6427  //
  6428  //示例值:open_department_id
  6429  func (builder *BindDepartmentUnitReqBodyBuilder) DepartmentIdType(departmentIdType string) *BindDepartmentUnitReqBodyBuilder {
  6430  	builder.departmentIdType = departmentIdType
  6431  	builder.departmentIdTypeFlag = true
  6432  	return builder
  6433  }
  6434  
  6435  func (builder *BindDepartmentUnitReqBodyBuilder) Build() *BindDepartmentUnitReqBody {
  6436  	req := &BindDepartmentUnitReqBody{}
  6437  	if builder.unitIdFlag {
  6438  		req.UnitId = &builder.unitId
  6439  	}
  6440  	if builder.departmentIdFlag {
  6441  		req.DepartmentId = &builder.departmentId
  6442  	}
  6443  	if builder.departmentIdTypeFlag {
  6444  		req.DepartmentIdType = &builder.departmentIdType
  6445  	}
  6446  	return req
  6447  }
  6448  
  6449  type BindDepartmentUnitPathReqBodyBuilder struct {
  6450  	unitId               string // 单位ID
  6451  	unitIdFlag           bool
  6452  	departmentId         string // 单位关联的部门ID
  6453  	departmentIdFlag     bool
  6454  	departmentIdType     string // 此次调用中使用的部门ID的类型
  6455  	departmentIdTypeFlag bool
  6456  }
  6457  
  6458  func NewBindDepartmentUnitPathReqBodyBuilder() *BindDepartmentUnitPathReqBodyBuilder {
  6459  	builder := &BindDepartmentUnitPathReqBodyBuilder{}
  6460  	return builder
  6461  }
  6462  
  6463  // 单位ID
  6464  //
  6465  // 示例值:BU121
  6466  func (builder *BindDepartmentUnitPathReqBodyBuilder) UnitId(unitId string) *BindDepartmentUnitPathReqBodyBuilder {
  6467  	builder.unitId = unitId
  6468  	builder.unitIdFlag = true
  6469  	return builder
  6470  }
  6471  
  6472  // 单位关联的部门ID
  6473  //
  6474  // 示例值:od-4e6ac4d14bcd5071a37a39de902c7141
  6475  func (builder *BindDepartmentUnitPathReqBodyBuilder) DepartmentId(departmentId string) *BindDepartmentUnitPathReqBodyBuilder {
  6476  	builder.departmentId = departmentId
  6477  	builder.departmentIdFlag = true
  6478  	return builder
  6479  }
  6480  
  6481  // 此次调用中使用的部门ID的类型
  6482  //
  6483  // 示例值:open_department_id
  6484  func (builder *BindDepartmentUnitPathReqBodyBuilder) DepartmentIdType(departmentIdType string) *BindDepartmentUnitPathReqBodyBuilder {
  6485  	builder.departmentIdType = departmentIdType
  6486  	builder.departmentIdTypeFlag = true
  6487  	return builder
  6488  }
  6489  
  6490  func (builder *BindDepartmentUnitPathReqBodyBuilder) Build() (*BindDepartmentUnitReqBody, error) {
  6491  	req := &BindDepartmentUnitReqBody{}
  6492  	if builder.unitIdFlag {
  6493  		req.UnitId = &builder.unitId
  6494  	}
  6495  	if builder.departmentIdFlag {
  6496  		req.DepartmentId = &builder.departmentId
  6497  	}
  6498  	if builder.departmentIdTypeFlag {
  6499  		req.DepartmentIdType = &builder.departmentIdType
  6500  	}
  6501  	return req, nil
  6502  }
  6503  
  6504  type BindDepartmentUnitReqBuilder struct {
  6505  	apiReq *larkcore.ApiReq
  6506  	body   *BindDepartmentUnitReqBody
  6507  }
  6508  
  6509  func NewBindDepartmentUnitReqBuilder() *BindDepartmentUnitReqBuilder {
  6510  	builder := &BindDepartmentUnitReqBuilder{}
  6511  	builder.apiReq = &larkcore.ApiReq{
  6512  		PathParams:  larkcore.PathParams{},
  6513  		QueryParams: larkcore.QueryParams{},
  6514  	}
  6515  	return builder
  6516  }
  6517  
  6518  // 通过该接口建立部门与单位的绑定关系,需更新单位的权限,需对应部门的通讯录权限。由于单位是旗舰版付费功能,企业需开通相关版本,否则会绑定失败
  6519  func (builder *BindDepartmentUnitReqBuilder) Body(body *BindDepartmentUnitReqBody) *BindDepartmentUnitReqBuilder {
  6520  	builder.body = body
  6521  	return builder
  6522  }
  6523  
  6524  func (builder *BindDepartmentUnitReqBuilder) Build() *BindDepartmentUnitReq {
  6525  	req := &BindDepartmentUnitReq{}
  6526  	req.apiReq = &larkcore.ApiReq{}
  6527  	req.apiReq.Body = builder.body
  6528  	return req
  6529  }
  6530  
  6531  type BindDepartmentUnitReqBody struct {
  6532  	UnitId           *string `json:"unit_id,omitempty"`            // 单位ID
  6533  	DepartmentId     *string `json:"department_id,omitempty"`      // 单位关联的部门ID
  6534  	DepartmentIdType *string `json:"department_id_type,omitempty"` // 此次调用中使用的部门ID的类型
  6535  }
  6536  
  6537  type BindDepartmentUnitReq struct {
  6538  	apiReq *larkcore.ApiReq
  6539  	Body   *BindDepartmentUnitReqBody `body:""`
  6540  }
  6541  
  6542  type BindDepartmentUnitResp struct {
  6543  	*larkcore.ApiResp `json:"-"`
  6544  	larkcore.CodeError
  6545  }
  6546  
  6547  func (resp *BindDepartmentUnitResp) Success() bool {
  6548  	return resp.Code == 0
  6549  }
  6550  
  6551  type CreateUnitReqBodyBuilder struct {
  6552  	unitId       string // 单位自定义ID。不带默认自动生成。1-64字节范围大小,需为数字字母
  6553  	unitIdFlag   bool
  6554  	name         string // 单位的名字,长度范围为1-100个字
  6555  	nameFlag     bool
  6556  	unitType     string // 单位类型,长度范围为1-100个字,创建后不可修改
  6557  	unitTypeFlag bool
  6558  }
  6559  
  6560  func NewCreateUnitReqBodyBuilder() *CreateUnitReqBodyBuilder {
  6561  	builder := &CreateUnitReqBodyBuilder{}
  6562  	return builder
  6563  }
  6564  
  6565  // 单位自定义ID。不带默认自动生成。1-64字节范围大小,需为数字字母
  6566  //
  6567  //示例值:BU121
  6568  func (builder *CreateUnitReqBodyBuilder) UnitId(unitId string) *CreateUnitReqBodyBuilder {
  6569  	builder.unitId = unitId
  6570  	builder.unitIdFlag = true
  6571  	return builder
  6572  }
  6573  
  6574  // 单位的名字,长度范围为1-100个字
  6575  //
  6576  //示例值:消费者事业部
  6577  func (builder *CreateUnitReqBodyBuilder) Name(name string) *CreateUnitReqBodyBuilder {
  6578  	builder.name = name
  6579  	builder.nameFlag = true
  6580  	return builder
  6581  }
  6582  
  6583  // 单位类型,长度范围为1-100个字,创建后不可修改
  6584  //
  6585  //示例值:事业部
  6586  func (builder *CreateUnitReqBodyBuilder) UnitType(unitType string) *CreateUnitReqBodyBuilder {
  6587  	builder.unitType = unitType
  6588  	builder.unitTypeFlag = true
  6589  	return builder
  6590  }
  6591  
  6592  func (builder *CreateUnitReqBodyBuilder) Build() *CreateUnitReqBody {
  6593  	req := &CreateUnitReqBody{}
  6594  	if builder.unitIdFlag {
  6595  		req.UnitId = &builder.unitId
  6596  	}
  6597  	if builder.nameFlag {
  6598  		req.Name = &builder.name
  6599  	}
  6600  	if builder.unitTypeFlag {
  6601  		req.UnitType = &builder.unitType
  6602  	}
  6603  	return req
  6604  }
  6605  
  6606  type CreateUnitPathReqBodyBuilder struct {
  6607  	unitId       string // 单位自定义ID。不带默认自动生成。1-64字节范围大小,需为数字字母
  6608  	unitIdFlag   bool
  6609  	name         string // 单位的名字,长度范围为1-100个字
  6610  	nameFlag     bool
  6611  	unitType     string // 单位类型,长度范围为1-100个字,创建后不可修改
  6612  	unitTypeFlag bool
  6613  }
  6614  
  6615  func NewCreateUnitPathReqBodyBuilder() *CreateUnitPathReqBodyBuilder {
  6616  	builder := &CreateUnitPathReqBodyBuilder{}
  6617  	return builder
  6618  }
  6619  
  6620  // 单位自定义ID。不带默认自动生成。1-64字节范围大小,需为数字字母
  6621  //
  6622  // 示例值:BU121
  6623  func (builder *CreateUnitPathReqBodyBuilder) UnitId(unitId string) *CreateUnitPathReqBodyBuilder {
  6624  	builder.unitId = unitId
  6625  	builder.unitIdFlag = true
  6626  	return builder
  6627  }
  6628  
  6629  // 单位的名字,长度范围为1-100个字
  6630  //
  6631  // 示例值:消费者事业部
  6632  func (builder *CreateUnitPathReqBodyBuilder) Name(name string) *CreateUnitPathReqBodyBuilder {
  6633  	builder.name = name
  6634  	builder.nameFlag = true
  6635  	return builder
  6636  }
  6637  
  6638  // 单位类型,长度范围为1-100个字,创建后不可修改
  6639  //
  6640  // 示例值:事业部
  6641  func (builder *CreateUnitPathReqBodyBuilder) UnitType(unitType string) *CreateUnitPathReqBodyBuilder {
  6642  	builder.unitType = unitType
  6643  	builder.unitTypeFlag = true
  6644  	return builder
  6645  }
  6646  
  6647  func (builder *CreateUnitPathReqBodyBuilder) Build() (*CreateUnitReqBody, error) {
  6648  	req := &CreateUnitReqBody{}
  6649  	if builder.unitIdFlag {
  6650  		req.UnitId = &builder.unitId
  6651  	}
  6652  	if builder.nameFlag {
  6653  		req.Name = &builder.name
  6654  	}
  6655  	if builder.unitTypeFlag {
  6656  		req.UnitType = &builder.unitType
  6657  	}
  6658  	return req, nil
  6659  }
  6660  
  6661  type CreateUnitReqBuilder struct {
  6662  	apiReq *larkcore.ApiReq
  6663  	body   *CreateUnitReqBody
  6664  }
  6665  
  6666  func NewCreateUnitReqBuilder() *CreateUnitReqBuilder {
  6667  	builder := &CreateUnitReqBuilder{}
  6668  	builder.apiReq = &larkcore.ApiReq{
  6669  		PathParams:  larkcore.PathParams{},
  6670  		QueryParams: larkcore.QueryParams{},
  6671  	}
  6672  	return builder
  6673  }
  6674  
  6675  // 使用该接口创建单位,需要有更新单位的权限。注意:单位功能属于旗舰版付费功能,企业需开通对应版本才可以创建单位。
  6676  func (builder *CreateUnitReqBuilder) Body(body *CreateUnitReqBody) *CreateUnitReqBuilder {
  6677  	builder.body = body
  6678  	return builder
  6679  }
  6680  
  6681  func (builder *CreateUnitReqBuilder) Build() *CreateUnitReq {
  6682  	req := &CreateUnitReq{}
  6683  	req.apiReq = &larkcore.ApiReq{}
  6684  	req.apiReq.Body = builder.body
  6685  	return req
  6686  }
  6687  
  6688  type CreateUnitReqBody struct {
  6689  	UnitId   *string `json:"unit_id,omitempty"`   // 单位自定义ID。不带默认自动生成。1-64字节范围大小,需为数字字母
  6690  	Name     *string `json:"name,omitempty"`      // 单位的名字,长度范围为1-100个字
  6691  	UnitType *string `json:"unit_type,omitempty"` // 单位类型,长度范围为1-100个字,创建后不可修改
  6692  }
  6693  
  6694  type CreateUnitReq struct {
  6695  	apiReq *larkcore.ApiReq
  6696  	Body   *CreateUnitReqBody `body:""`
  6697  }
  6698  
  6699  type CreateUnitRespData struct {
  6700  	UnitId *string `json:"unit_id,omitempty"` // 单位的自定义ID
  6701  }
  6702  
  6703  type CreateUnitResp struct {
  6704  	*larkcore.ApiResp `json:"-"`
  6705  	larkcore.CodeError
  6706  	Data *CreateUnitRespData `json:"data"` // 业务数据
  6707  }
  6708  
  6709  func (resp *CreateUnitResp) Success() bool {
  6710  	return resp.Code == 0
  6711  }
  6712  
  6713  type DeleteUnitReqBuilder struct {
  6714  	apiReq *larkcore.ApiReq
  6715  }
  6716  
  6717  func NewDeleteUnitReqBuilder() *DeleteUnitReqBuilder {
  6718  	builder := &DeleteUnitReqBuilder{}
  6719  	builder.apiReq = &larkcore.ApiReq{
  6720  		PathParams:  larkcore.PathParams{},
  6721  		QueryParams: larkcore.QueryParams{},
  6722  	}
  6723  	return builder
  6724  }
  6725  
  6726  // 单位ID
  6727  //
  6728  // 示例值:BU121
  6729  func (builder *DeleteUnitReqBuilder) UnitId(unitId string) *DeleteUnitReqBuilder {
  6730  	builder.apiReq.PathParams.Set("unit_id", fmt.Sprint(unitId))
  6731  	return builder
  6732  }
  6733  
  6734  func (builder *DeleteUnitReqBuilder) Build() *DeleteUnitReq {
  6735  	req := &DeleteUnitReq{}
  6736  	req.apiReq = &larkcore.ApiReq{}
  6737  	req.apiReq.PathParams = builder.apiReq.PathParams
  6738  	return req
  6739  }
  6740  
  6741  type DeleteUnitReq struct {
  6742  	apiReq *larkcore.ApiReq
  6743  }
  6744  
  6745  type DeleteUnitResp struct {
  6746  	*larkcore.ApiResp `json:"-"`
  6747  	larkcore.CodeError
  6748  }
  6749  
  6750  func (resp *DeleteUnitResp) Success() bool {
  6751  	return resp.Code == 0
  6752  }
  6753  
  6754  type GetUnitReqBuilder struct {
  6755  	apiReq *larkcore.ApiReq
  6756  }
  6757  
  6758  func NewGetUnitReqBuilder() *GetUnitReqBuilder {
  6759  	builder := &GetUnitReqBuilder{}
  6760  	builder.apiReq = &larkcore.ApiReq{
  6761  		PathParams:  larkcore.PathParams{},
  6762  		QueryParams: larkcore.QueryParams{},
  6763  	}
  6764  	return builder
  6765  }
  6766  
  6767  // 单位ID
  6768  //
  6769  // 示例值:BU121
  6770  func (builder *GetUnitReqBuilder) UnitId(unitId string) *GetUnitReqBuilder {
  6771  	builder.apiReq.PathParams.Set("unit_id", fmt.Sprint(unitId))
  6772  	return builder
  6773  }
  6774  
  6775  func (builder *GetUnitReqBuilder) Build() *GetUnitReq {
  6776  	req := &GetUnitReq{}
  6777  	req.apiReq = &larkcore.ApiReq{}
  6778  	req.apiReq.PathParams = builder.apiReq.PathParams
  6779  	return req
  6780  }
  6781  
  6782  type GetUnitReq struct {
  6783  	apiReq *larkcore.ApiReq
  6784  }
  6785  
  6786  type GetUnitRespData struct {
  6787  	Unit *Unit `json:"unit,omitempty"` // 单位信息
  6788  }
  6789  
  6790  type GetUnitResp struct {
  6791  	*larkcore.ApiResp `json:"-"`
  6792  	larkcore.CodeError
  6793  	Data *GetUnitRespData `json:"data"` // 业务数据
  6794  }
  6795  
  6796  func (resp *GetUnitResp) Success() bool {
  6797  	return resp.Code == 0
  6798  }
  6799  
  6800  type ListUnitReqBuilder struct {
  6801  	apiReq *larkcore.ApiReq
  6802  }
  6803  
  6804  func NewListUnitReqBuilder() *ListUnitReqBuilder {
  6805  	builder := &ListUnitReqBuilder{}
  6806  	builder.apiReq = &larkcore.ApiReq{
  6807  		PathParams:  larkcore.PathParams{},
  6808  		QueryParams: larkcore.QueryParams{},
  6809  	}
  6810  	return builder
  6811  }
  6812  
  6813  // 分页大小,默认50,取值范围 1-100
  6814  //
  6815  // 示例值:50
  6816  func (builder *ListUnitReqBuilder) PageSize(pageSize int) *ListUnitReqBuilder {
  6817  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  6818  	return builder
  6819  }
  6820  
  6821  // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果
  6822  //
  6823  // 示例值:AQD9/Rn9eij9Pm39ED40/dk53s4Ebp882DYfFaPFbz00L4CMZJrqGdzNyc8BcZtDbwVUvRmQTvyMYicnGWrde9X56TgdBuS+JKiSIkdexPw=
  6824  func (builder *ListUnitReqBuilder) PageToken(pageToken string) *ListUnitReqBuilder {
  6825  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  6826  	return builder
  6827  }
  6828  
  6829  func (builder *ListUnitReqBuilder) Build() *ListUnitReq {
  6830  	req := &ListUnitReq{}
  6831  	req.apiReq = &larkcore.ApiReq{}
  6832  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  6833  	return req
  6834  }
  6835  
  6836  type ListUnitReq struct {
  6837  	apiReq *larkcore.ApiReq
  6838  }
  6839  
  6840  type ListUnitRespData struct {
  6841  	Unitlist  []*Unit `json:"unitlist,omitempty"`   // 单位列表
  6842  	HasMore   *bool   `json:"has_more,omitempty"`   // 是否还有分页数据
  6843  	PageToken *string `json:"page_token,omitempty"` // 分页下次调用的page_token值
  6844  }
  6845  
  6846  type ListUnitResp struct {
  6847  	*larkcore.ApiResp `json:"-"`
  6848  	larkcore.CodeError
  6849  	Data *ListUnitRespData `json:"data"` // 业务数据
  6850  }
  6851  
  6852  func (resp *ListUnitResp) Success() bool {
  6853  	return resp.Code == 0
  6854  }
  6855  
  6856  type ListDepartmentUnitReqBuilder struct {
  6857  	apiReq *larkcore.ApiReq
  6858  }
  6859  
  6860  func NewListDepartmentUnitReqBuilder() *ListDepartmentUnitReqBuilder {
  6861  	builder := &ListDepartmentUnitReqBuilder{}
  6862  	builder.apiReq = &larkcore.ApiReq{
  6863  		PathParams:  larkcore.PathParams{},
  6864  		QueryParams: larkcore.QueryParams{},
  6865  	}
  6866  	return builder
  6867  }
  6868  
  6869  // 单位ID
  6870  //
  6871  // 示例值:BU121
  6872  func (builder *ListDepartmentUnitReqBuilder) UnitId(unitId string) *ListDepartmentUnitReqBuilder {
  6873  	builder.apiReq.QueryParams.Set("unit_id", fmt.Sprint(unitId))
  6874  	return builder
  6875  }
  6876  
  6877  // 此次调用中预获取的部门ID的类型
  6878  //
  6879  // 示例值:open_department_id
  6880  func (builder *ListDepartmentUnitReqBuilder) DepartmentIdType(departmentIdType string) *ListDepartmentUnitReqBuilder {
  6881  	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
  6882  	return builder
  6883  }
  6884  
  6885  // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果
  6886  //
  6887  // 示例值:AQD9/Rn9eij9Pm39ED40/dk53s4Ebp882DYfFaPFbz00L4CMZJrqGdzNyc8BcZtDbwVUvRmQTvyMYicnGWrde9X56TgdBuS+JKiSIkdexPw=
  6888  func (builder *ListDepartmentUnitReqBuilder) PageToken(pageToken string) *ListDepartmentUnitReqBuilder {
  6889  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  6890  	return builder
  6891  }
  6892  
  6893  // 分页大小
  6894  //
  6895  // 示例值:50
  6896  func (builder *ListDepartmentUnitReqBuilder) PageSize(pageSize int) *ListDepartmentUnitReqBuilder {
  6897  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  6898  	return builder
  6899  }
  6900  
  6901  func (builder *ListDepartmentUnitReqBuilder) Build() *ListDepartmentUnitReq {
  6902  	req := &ListDepartmentUnitReq{}
  6903  	req.apiReq = &larkcore.ApiReq{}
  6904  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  6905  	return req
  6906  }
  6907  
  6908  type ListDepartmentUnitReq struct {
  6909  	apiReq *larkcore.ApiReq
  6910  }
  6911  
  6912  type ListDepartmentUnitRespData struct {
  6913  	Departmentlist []*UnitDepartment `json:"departmentlist,omitempty"` // 单位绑定的部门列表
  6914  	HasMore        *bool             `json:"has_more,omitempty"`       // 是否还有分页数据
  6915  	PageToken      *string           `json:"page_token,omitempty"`     // 下次分页请求标记
  6916  }
  6917  
  6918  type ListDepartmentUnitResp struct {
  6919  	*larkcore.ApiResp `json:"-"`
  6920  	larkcore.CodeError
  6921  	Data *ListDepartmentUnitRespData `json:"data"` // 业务数据
  6922  }
  6923  
  6924  func (resp *ListDepartmentUnitResp) Success() bool {
  6925  	return resp.Code == 0
  6926  }
  6927  
  6928  type PatchUnitReqBodyBuilder struct {
  6929  	name     string // 单位的名字
  6930  	nameFlag bool
  6931  }
  6932  
  6933  func NewPatchUnitReqBodyBuilder() *PatchUnitReqBodyBuilder {
  6934  	builder := &PatchUnitReqBodyBuilder{}
  6935  	return builder
  6936  }
  6937  
  6938  // 单位的名字
  6939  //
  6940  //示例值:消费者事业部
  6941  func (builder *PatchUnitReqBodyBuilder) Name(name string) *PatchUnitReqBodyBuilder {
  6942  	builder.name = name
  6943  	builder.nameFlag = true
  6944  	return builder
  6945  }
  6946  
  6947  func (builder *PatchUnitReqBodyBuilder) Build() *PatchUnitReqBody {
  6948  	req := &PatchUnitReqBody{}
  6949  	if builder.nameFlag {
  6950  		req.Name = &builder.name
  6951  	}
  6952  	return req
  6953  }
  6954  
  6955  type PatchUnitPathReqBodyBuilder struct {
  6956  	name     string // 单位的名字
  6957  	nameFlag bool
  6958  }
  6959  
  6960  func NewPatchUnitPathReqBodyBuilder() *PatchUnitPathReqBodyBuilder {
  6961  	builder := &PatchUnitPathReqBodyBuilder{}
  6962  	return builder
  6963  }
  6964  
  6965  // 单位的名字
  6966  //
  6967  // 示例值:消费者事业部
  6968  func (builder *PatchUnitPathReqBodyBuilder) Name(name string) *PatchUnitPathReqBodyBuilder {
  6969  	builder.name = name
  6970  	builder.nameFlag = true
  6971  	return builder
  6972  }
  6973  
  6974  func (builder *PatchUnitPathReqBodyBuilder) Build() (*PatchUnitReqBody, error) {
  6975  	req := &PatchUnitReqBody{}
  6976  	if builder.nameFlag {
  6977  		req.Name = &builder.name
  6978  	}
  6979  	return req, nil
  6980  }
  6981  
  6982  type PatchUnitReqBuilder struct {
  6983  	apiReq *larkcore.ApiReq
  6984  	body   *PatchUnitReqBody
  6985  }
  6986  
  6987  func NewPatchUnitReqBuilder() *PatchUnitReqBuilder {
  6988  	builder := &PatchUnitReqBuilder{}
  6989  	builder.apiReq = &larkcore.ApiReq{
  6990  		PathParams:  larkcore.PathParams{},
  6991  		QueryParams: larkcore.QueryParams{},
  6992  	}
  6993  	return builder
  6994  }
  6995  
  6996  // 单位ID
  6997  //
  6998  // 示例值:BU121
  6999  func (builder *PatchUnitReqBuilder) UnitId(unitId string) *PatchUnitReqBuilder {
  7000  	builder.apiReq.PathParams.Set("unit_id", fmt.Sprint(unitId))
  7001  	return builder
  7002  }
  7003  
  7004  // 调用该接口,需要有更新单位的权限。注意:单位功能属于旗舰版付费功能,企业需开通对应版本才可以修改单位
  7005  func (builder *PatchUnitReqBuilder) Body(body *PatchUnitReqBody) *PatchUnitReqBuilder {
  7006  	builder.body = body
  7007  	return builder
  7008  }
  7009  
  7010  func (builder *PatchUnitReqBuilder) Build() *PatchUnitReq {
  7011  	req := &PatchUnitReq{}
  7012  	req.apiReq = &larkcore.ApiReq{}
  7013  	req.apiReq.PathParams = builder.apiReq.PathParams
  7014  	req.apiReq.Body = builder.body
  7015  	return req
  7016  }
  7017  
  7018  type PatchUnitReqBody struct {
  7019  	Name *string `json:"name,omitempty"` // 单位的名字
  7020  }
  7021  
  7022  type PatchUnitReq struct {
  7023  	apiReq *larkcore.ApiReq
  7024  	Body   *PatchUnitReqBody `body:""`
  7025  }
  7026  
  7027  type PatchUnitResp struct {
  7028  	*larkcore.ApiResp `json:"-"`
  7029  	larkcore.CodeError
  7030  }
  7031  
  7032  func (resp *PatchUnitResp) Success() bool {
  7033  	return resp.Code == 0
  7034  }
  7035  
  7036  type UnbindDepartmentUnitReqBodyBuilder struct {
  7037  	unitId               string // 单位ID
  7038  	unitIdFlag           bool
  7039  	departmentId         string // 预解除关联的部门ID
  7040  	departmentIdFlag     bool
  7041  	departmentIdType     string // 此次调用中使用的部门ID的类型
  7042  	departmentIdTypeFlag bool
  7043  }
  7044  
  7045  func NewUnbindDepartmentUnitReqBodyBuilder() *UnbindDepartmentUnitReqBodyBuilder {
  7046  	builder := &UnbindDepartmentUnitReqBodyBuilder{}
  7047  	return builder
  7048  }
  7049  
  7050  // 单位ID
  7051  //
  7052  //示例值:BU121
  7053  func (builder *UnbindDepartmentUnitReqBodyBuilder) UnitId(unitId string) *UnbindDepartmentUnitReqBodyBuilder {
  7054  	builder.unitId = unitId
  7055  	builder.unitIdFlag = true
  7056  	return builder
  7057  }
  7058  
  7059  // 预解除关联的部门ID
  7060  //
  7061  //示例值:od-4e6ac4d14bcd5071a37a39de902c7141
  7062  func (builder *UnbindDepartmentUnitReqBodyBuilder) DepartmentId(departmentId string) *UnbindDepartmentUnitReqBodyBuilder {
  7063  	builder.departmentId = departmentId
  7064  	builder.departmentIdFlag = true
  7065  	return builder
  7066  }
  7067  
  7068  // 此次调用中使用的部门ID的类型
  7069  //
  7070  //示例值:open_department_id
  7071  func (builder *UnbindDepartmentUnitReqBodyBuilder) DepartmentIdType(departmentIdType string) *UnbindDepartmentUnitReqBodyBuilder {
  7072  	builder.departmentIdType = departmentIdType
  7073  	builder.departmentIdTypeFlag = true
  7074  	return builder
  7075  }
  7076  
  7077  func (builder *UnbindDepartmentUnitReqBodyBuilder) Build() *UnbindDepartmentUnitReqBody {
  7078  	req := &UnbindDepartmentUnitReqBody{}
  7079  	if builder.unitIdFlag {
  7080  		req.UnitId = &builder.unitId
  7081  	}
  7082  	if builder.departmentIdFlag {
  7083  		req.DepartmentId = &builder.departmentId
  7084  	}
  7085  	if builder.departmentIdTypeFlag {
  7086  		req.DepartmentIdType = &builder.departmentIdType
  7087  	}
  7088  	return req
  7089  }
  7090  
  7091  type UnbindDepartmentUnitPathReqBodyBuilder struct {
  7092  	unitId               string // 单位ID
  7093  	unitIdFlag           bool
  7094  	departmentId         string // 预解除关联的部门ID
  7095  	departmentIdFlag     bool
  7096  	departmentIdType     string // 此次调用中使用的部门ID的类型
  7097  	departmentIdTypeFlag bool
  7098  }
  7099  
  7100  func NewUnbindDepartmentUnitPathReqBodyBuilder() *UnbindDepartmentUnitPathReqBodyBuilder {
  7101  	builder := &UnbindDepartmentUnitPathReqBodyBuilder{}
  7102  	return builder
  7103  }
  7104  
  7105  // 单位ID
  7106  //
  7107  // 示例值:BU121
  7108  func (builder *UnbindDepartmentUnitPathReqBodyBuilder) UnitId(unitId string) *UnbindDepartmentUnitPathReqBodyBuilder {
  7109  	builder.unitId = unitId
  7110  	builder.unitIdFlag = true
  7111  	return builder
  7112  }
  7113  
  7114  // 预解除关联的部门ID
  7115  //
  7116  // 示例值:od-4e6ac4d14bcd5071a37a39de902c7141
  7117  func (builder *UnbindDepartmentUnitPathReqBodyBuilder) DepartmentId(departmentId string) *UnbindDepartmentUnitPathReqBodyBuilder {
  7118  	builder.departmentId = departmentId
  7119  	builder.departmentIdFlag = true
  7120  	return builder
  7121  }
  7122  
  7123  // 此次调用中使用的部门ID的类型
  7124  //
  7125  // 示例值:open_department_id
  7126  func (builder *UnbindDepartmentUnitPathReqBodyBuilder) DepartmentIdType(departmentIdType string) *UnbindDepartmentUnitPathReqBodyBuilder {
  7127  	builder.departmentIdType = departmentIdType
  7128  	builder.departmentIdTypeFlag = true
  7129  	return builder
  7130  }
  7131  
  7132  func (builder *UnbindDepartmentUnitPathReqBodyBuilder) Build() (*UnbindDepartmentUnitReqBody, error) {
  7133  	req := &UnbindDepartmentUnitReqBody{}
  7134  	if builder.unitIdFlag {
  7135  		req.UnitId = &builder.unitId
  7136  	}
  7137  	if builder.departmentIdFlag {
  7138  		req.DepartmentId = &builder.departmentId
  7139  	}
  7140  	if builder.departmentIdTypeFlag {
  7141  		req.DepartmentIdType = &builder.departmentIdType
  7142  	}
  7143  	return req, nil
  7144  }
  7145  
  7146  type UnbindDepartmentUnitReqBuilder struct {
  7147  	apiReq *larkcore.ApiReq
  7148  	body   *UnbindDepartmentUnitReqBody
  7149  }
  7150  
  7151  func NewUnbindDepartmentUnitReqBuilder() *UnbindDepartmentUnitReqBuilder {
  7152  	builder := &UnbindDepartmentUnitReqBuilder{}
  7153  	builder.apiReq = &larkcore.ApiReq{
  7154  		PathParams:  larkcore.PathParams{},
  7155  		QueryParams: larkcore.QueryParams{},
  7156  	}
  7157  	return builder
  7158  }
  7159  
  7160  // 通过该接口解除部门与单位的绑定关系,需更新单位的权限,需对应部门的通讯录权限。由于单位是旗舰版付费功能,企业需开通相关功能,否则会解绑失败
  7161  func (builder *UnbindDepartmentUnitReqBuilder) Body(body *UnbindDepartmentUnitReqBody) *UnbindDepartmentUnitReqBuilder {
  7162  	builder.body = body
  7163  	return builder
  7164  }
  7165  
  7166  func (builder *UnbindDepartmentUnitReqBuilder) Build() *UnbindDepartmentUnitReq {
  7167  	req := &UnbindDepartmentUnitReq{}
  7168  	req.apiReq = &larkcore.ApiReq{}
  7169  	req.apiReq.Body = builder.body
  7170  	return req
  7171  }
  7172  
  7173  type UnbindDepartmentUnitReqBody struct {
  7174  	UnitId           *string `json:"unit_id,omitempty"`            // 单位ID
  7175  	DepartmentId     *string `json:"department_id,omitempty"`      // 预解除关联的部门ID
  7176  	DepartmentIdType *string `json:"department_id_type,omitempty"` // 此次调用中使用的部门ID的类型
  7177  }
  7178  
  7179  type UnbindDepartmentUnitReq struct {
  7180  	apiReq *larkcore.ApiReq
  7181  	Body   *UnbindDepartmentUnitReqBody `body:""`
  7182  }
  7183  
  7184  type UnbindDepartmentUnitResp struct {
  7185  	*larkcore.ApiResp `json:"-"`
  7186  	larkcore.CodeError
  7187  }
  7188  
  7189  func (resp *UnbindDepartmentUnitResp) Success() bool {
  7190  	return resp.Code == 0
  7191  }
  7192  
  7193  type BatchGetIdUserReqBodyBuilder struct {
  7194  	emails      []string // 要查询的用户邮箱,最多 50 条。;;注意,emails与mobiles相互独立,每条用户邮箱返回对应的用户ID。;;本接口返回的用户ID数量为emails数量与mobiles数量的和。
  7195  	emailsFlag  bool
  7196  	mobiles     []string // 要查询的用户手机号,最多 50 条。;;注意;1. emails与mobiles相互独立,每条用户手机号返回对应的用户ID。;2.  非中国大陆地区的手机号需要添加以 “+” 开头的国家 / 地区代码。
  7197  	mobilesFlag bool
  7198  }
  7199  
  7200  func NewBatchGetIdUserReqBodyBuilder() *BatchGetIdUserReqBodyBuilder {
  7201  	builder := &BatchGetIdUserReqBodyBuilder{}
  7202  	return builder
  7203  }
  7204  
  7205  // 要查询的用户邮箱,最多 50 条。;;注意,emails与mobiles相互独立,每条用户邮箱返回对应的用户ID。;;本接口返回的用户ID数量为emails数量与mobiles数量的和。
  7206  //
  7207  //示例值:zhangsan@a.com
  7208  func (builder *BatchGetIdUserReqBodyBuilder) Emails(emails []string) *BatchGetIdUserReqBodyBuilder {
  7209  	builder.emails = emails
  7210  	builder.emailsFlag = true
  7211  	return builder
  7212  }
  7213  
  7214  // 要查询的用户手机号,最多 50 条。;;注意;1. emails与mobiles相互独立,每条用户手机号返回对应的用户ID。;2.  非中国大陆地区的手机号需要添加以 “+” 开头的国家 / 地区代码。
  7215  //
  7216  //示例值:13812345678
  7217  func (builder *BatchGetIdUserReqBodyBuilder) Mobiles(mobiles []string) *BatchGetIdUserReqBodyBuilder {
  7218  	builder.mobiles = mobiles
  7219  	builder.mobilesFlag = true
  7220  	return builder
  7221  }
  7222  
  7223  func (builder *BatchGetIdUserReqBodyBuilder) Build() *BatchGetIdUserReqBody {
  7224  	req := &BatchGetIdUserReqBody{}
  7225  	if builder.emailsFlag {
  7226  		req.Emails = builder.emails
  7227  	}
  7228  	if builder.mobilesFlag {
  7229  		req.Mobiles = builder.mobiles
  7230  	}
  7231  	return req
  7232  }
  7233  
  7234  type BatchGetIdUserPathReqBodyBuilder struct {
  7235  	emails      []string // 要查询的用户邮箱,最多 50 条。;;注意,emails与mobiles相互独立,每条用户邮箱返回对应的用户ID。;;本接口返回的用户ID数量为emails数量与mobiles数量的和。
  7236  	emailsFlag  bool
  7237  	mobiles     []string // 要查询的用户手机号,最多 50 条。;;注意;1. emails与mobiles相互独立,每条用户手机号返回对应的用户ID。;2.  非中国大陆地区的手机号需要添加以 “+” 开头的国家 / 地区代码。
  7238  	mobilesFlag bool
  7239  }
  7240  
  7241  func NewBatchGetIdUserPathReqBodyBuilder() *BatchGetIdUserPathReqBodyBuilder {
  7242  	builder := &BatchGetIdUserPathReqBodyBuilder{}
  7243  	return builder
  7244  }
  7245  
  7246  // 要查询的用户邮箱,最多 50 条。;;注意,emails与mobiles相互独立,每条用户邮箱返回对应的用户ID。;;本接口返回的用户ID数量为emails数量与mobiles数量的和。
  7247  //
  7248  // 示例值:zhangsan@a.com
  7249  func (builder *BatchGetIdUserPathReqBodyBuilder) Emails(emails []string) *BatchGetIdUserPathReqBodyBuilder {
  7250  	builder.emails = emails
  7251  	builder.emailsFlag = true
  7252  	return builder
  7253  }
  7254  
  7255  // 要查询的用户手机号,最多 50 条。;;注意;1. emails与mobiles相互独立,每条用户手机号返回对应的用户ID。;2.  非中国大陆地区的手机号需要添加以 “+” 开头的国家 / 地区代码。
  7256  //
  7257  // 示例值:13812345678
  7258  func (builder *BatchGetIdUserPathReqBodyBuilder) Mobiles(mobiles []string) *BatchGetIdUserPathReqBodyBuilder {
  7259  	builder.mobiles = mobiles
  7260  	builder.mobilesFlag = true
  7261  	return builder
  7262  }
  7263  
  7264  func (builder *BatchGetIdUserPathReqBodyBuilder) Build() (*BatchGetIdUserReqBody, error) {
  7265  	req := &BatchGetIdUserReqBody{}
  7266  	if builder.emailsFlag {
  7267  		req.Emails = builder.emails
  7268  	}
  7269  	if builder.mobilesFlag {
  7270  		req.Mobiles = builder.mobiles
  7271  	}
  7272  	return req, nil
  7273  }
  7274  
  7275  type BatchGetIdUserReqBuilder struct {
  7276  	apiReq *larkcore.ApiReq
  7277  	body   *BatchGetIdUserReqBody
  7278  }
  7279  
  7280  func NewBatchGetIdUserReqBuilder() *BatchGetIdUserReqBuilder {
  7281  	builder := &BatchGetIdUserReqBuilder{}
  7282  	builder.apiReq = &larkcore.ApiReq{
  7283  		PathParams:  larkcore.PathParams{},
  7284  		QueryParams: larkcore.QueryParams{},
  7285  	}
  7286  	return builder
  7287  }
  7288  
  7289  // 返回的用户ID的类型
  7290  //
  7291  // 示例值:user_id
  7292  func (builder *BatchGetIdUserReqBuilder) UserIdType(userIdType string) *BatchGetIdUserReqBuilder {
  7293  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  7294  	return builder
  7295  }
  7296  
  7297  // 通过该接口,可使用手机号/邮箱获取用户的 ID 信息,具体获取支持的 ID 类型包括 open_id、user_id、union_id,可通过查询参数指定。
  7298  func (builder *BatchGetIdUserReqBuilder) Body(body *BatchGetIdUserReqBody) *BatchGetIdUserReqBuilder {
  7299  	builder.body = body
  7300  	return builder
  7301  }
  7302  
  7303  func (builder *BatchGetIdUserReqBuilder) Build() *BatchGetIdUserReq {
  7304  	req := &BatchGetIdUserReq{}
  7305  	req.apiReq = &larkcore.ApiReq{}
  7306  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  7307  	req.apiReq.Body = builder.body
  7308  	return req
  7309  }
  7310  
  7311  type BatchGetIdUserReqBody struct {
  7312  	Emails  []string `json:"emails,omitempty"`  // 要查询的用户邮箱,最多 50 条。;;注意,emails与mobiles相互独立,每条用户邮箱返回对应的用户ID。;;本接口返回的用户ID数量为emails数量与mobiles数量的和。
  7313  	Mobiles []string `json:"mobiles,omitempty"` // 要查询的用户手机号,最多 50 条。;;注意;1. emails与mobiles相互独立,每条用户手机号返回对应的用户ID。;2.  非中国大陆地区的手机号需要添加以 “+” 开头的国家 / 地区代码。
  7314  }
  7315  
  7316  type BatchGetIdUserReq struct {
  7317  	apiReq *larkcore.ApiReq
  7318  	Body   *BatchGetIdUserReqBody `body:""`
  7319  }
  7320  
  7321  type BatchGetIdUserRespData struct {
  7322  	UserList []*UserContactInfo `json:"user_list,omitempty"` // 手机号或者邮箱对应的用户id信息
  7323  }
  7324  
  7325  type BatchGetIdUserResp struct {
  7326  	*larkcore.ApiResp `json:"-"`
  7327  	larkcore.CodeError
  7328  	Data *BatchGetIdUserRespData `json:"data"` // 业务数据
  7329  }
  7330  
  7331  func (resp *BatchGetIdUserResp) Success() bool {
  7332  	return resp.Code == 0
  7333  }
  7334  
  7335  type CreateUserReqBuilder struct {
  7336  	apiReq *larkcore.ApiReq
  7337  	user   *User
  7338  }
  7339  
  7340  func NewCreateUserReqBuilder() *CreateUserReqBuilder {
  7341  	builder := &CreateUserReqBuilder{}
  7342  	builder.apiReq = &larkcore.ApiReq{
  7343  		PathParams:  larkcore.PathParams{},
  7344  		QueryParams: larkcore.QueryParams{},
  7345  	}
  7346  	return builder
  7347  }
  7348  
  7349  // 此次调用中使用的用户ID的类型
  7350  //
  7351  // 示例值:
  7352  func (builder *CreateUserReqBuilder) UserIdType(userIdType string) *CreateUserReqBuilder {
  7353  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  7354  	return builder
  7355  }
  7356  
  7357  // 此次调用中使用的部门ID的类型。;;不同 ID 的说明参见[部门ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0)
  7358  //
  7359  // 示例值:open_department_id
  7360  func (builder *CreateUserReqBuilder) DepartmentIdType(departmentIdType string) *CreateUserReqBuilder {
  7361  	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
  7362  	return builder
  7363  }
  7364  
  7365  // 用于幂等判断是否为同一请求,避免重复创建。字符串类型,自行生成。
  7366  //
  7367  // 示例值:xxxx-xxxxx-xxx
  7368  func (builder *CreateUserReqBuilder) ClientToken(clientToken string) *CreateUserReqBuilder {
  7369  	builder.apiReq.QueryParams.Set("client_token", fmt.Sprint(clientToken))
  7370  	return builder
  7371  }
  7372  
  7373  // 使用该接口向通讯录创建一个用户,可以理解为员工入职。创建用户后只返回有数据权限的数据。具体的数据权限的与字段的对应关系请参照[应用权限](/ssl:ttdoc/ukTMukTMukTM/uQjN3QjL0YzN04CN2cDN)。[常见问题答疑](/ssl:ttdoc/ugTN1YjL4UTN24CO1UjN/uQzN1YjL0cTN24CN3UjN)。
  7374  func (builder *CreateUserReqBuilder) User(user *User) *CreateUserReqBuilder {
  7375  	builder.user = user
  7376  	return builder
  7377  }
  7378  
  7379  func (builder *CreateUserReqBuilder) Build() *CreateUserReq {
  7380  	req := &CreateUserReq{}
  7381  	req.apiReq = &larkcore.ApiReq{}
  7382  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  7383  	req.apiReq.Body = builder.user
  7384  	return req
  7385  }
  7386  
  7387  type CreateUserReq struct {
  7388  	apiReq *larkcore.ApiReq
  7389  	User   *User `body:""`
  7390  }
  7391  
  7392  type CreateUserRespData struct {
  7393  	User *User `json:"user,omitempty"` // 用户信息
  7394  }
  7395  
  7396  type CreateUserResp struct {
  7397  	*larkcore.ApiResp `json:"-"`
  7398  	larkcore.CodeError
  7399  	Data *CreateUserRespData `json:"data"` // 业务数据
  7400  }
  7401  
  7402  func (resp *CreateUserResp) Success() bool {
  7403  	return resp.Code == 0
  7404  }
  7405  
  7406  type DeleteUserReqBodyBuilder struct {
  7407  	departmentChatAcceptorUserId     string // 部门群接收者。被删除用户为部门群群主时,转让群主给指定接收者,不指定接收者则默认转让给群内第一个入群的人
  7408  	departmentChatAcceptorUserIdFlag bool
  7409  	externalChatAcceptorUserId       string // 外部群接收者。被删除用户为外部群群主时,转让群主给指定接收者,不指定接收者则默认转让给群内与被删除用户在同一组织的第一个入群的人,如果组织内只有该用户在群里,则解散外部群
  7410  	externalChatAcceptorUserIdFlag   bool
  7411  	docsAcceptorUserId               string // 文档接收者。用户被删除时,其拥有的文档转让给接收者。不指定接收者则默认转让给直属上级,如果无直属上级则将文档资源保留在该用户名下。
  7412  	docsAcceptorUserIdFlag           bool
  7413  	calendarAcceptorUserId           string // 日程接收者。用户被删除时,其拥有的日程转让给接收者,不指定接收者则默认转让给直属上级,如果无直属上级则直接删除日程资源。
  7414  	calendarAcceptorUserIdFlag       bool
  7415  	applicationAcceptorUserId        string // 应用接受者。用户被删除时,其创建的应用转让给接收者,不指定接收者则默认转让给直属上级。如果无直属上级则保留应用在该用户名下,但该用户无法登录开发者后台进行应用管理,管理员可以在管理后台手动转移应用给其他人。
  7416  	applicationAcceptorUserIdFlag    bool
  7417  	helpdeskAcceptorUserId           string // 服务台暂不支持转移,本参数无效。
  7418  	helpdeskAcceptorUserIdFlag       bool
  7419  	minutesAcceptorUserId            string // 妙记接收者。用户被删除时,其拥有的妙记资源转让给接收者。如果不指定接收者,则默认转让给直属上级。如果无直属上级则将妙记保留在该用户名下。
  7420  	minutesAcceptorUserIdFlag        bool
  7421  	surveyAcceptorUserId             string // 飞书问卷接收者。用户被删除时,其拥有的飞书问卷资源转让给接收者,不指定接收者则默认转让给直属上级,如果无直属上级则直接删除飞书问卷资源。
  7422  	surveyAcceptorUserIdFlag         bool
  7423  	emailAcceptor                    *ResourceAcceptor // 用户邮件资源处理方式。用户被删除时,根据传递的操作指令对其拥有的邮件资源做对应处理。未传递指令时默认将邮件资源转让给直属上级,如果无直属上级则保留邮件资源在该用户名下。
  7424  	emailAcceptorFlag                bool
  7425  }
  7426  
  7427  func NewDeleteUserReqBodyBuilder() *DeleteUserReqBodyBuilder {
  7428  	builder := &DeleteUserReqBodyBuilder{}
  7429  	return builder
  7430  }
  7431  
  7432  // 部门群接收者。被删除用户为部门群群主时,转让群主给指定接收者,不指定接收者则默认转让给群内第一个入群的人
  7433  //
  7434  //示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
  7435  func (builder *DeleteUserReqBodyBuilder) DepartmentChatAcceptorUserId(departmentChatAcceptorUserId string) *DeleteUserReqBodyBuilder {
  7436  	builder.departmentChatAcceptorUserId = departmentChatAcceptorUserId
  7437  	builder.departmentChatAcceptorUserIdFlag = true
  7438  	return builder
  7439  }
  7440  
  7441  // 外部群接收者。被删除用户为外部群群主时,转让群主给指定接收者,不指定接收者则默认转让给群内与被删除用户在同一组织的第一个入群的人,如果组织内只有该用户在群里,则解散外部群
  7442  //
  7443  //示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
  7444  func (builder *DeleteUserReqBodyBuilder) ExternalChatAcceptorUserId(externalChatAcceptorUserId string) *DeleteUserReqBodyBuilder {
  7445  	builder.externalChatAcceptorUserId = externalChatAcceptorUserId
  7446  	builder.externalChatAcceptorUserIdFlag = true
  7447  	return builder
  7448  }
  7449  
  7450  // 文档接收者。用户被删除时,其拥有的文档转让给接收者。不指定接收者则默认转让给直属上级,如果无直属上级则将文档资源保留在该用户名下。
  7451  //
  7452  //示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
  7453  func (builder *DeleteUserReqBodyBuilder) DocsAcceptorUserId(docsAcceptorUserId string) *DeleteUserReqBodyBuilder {
  7454  	builder.docsAcceptorUserId = docsAcceptorUserId
  7455  	builder.docsAcceptorUserIdFlag = true
  7456  	return builder
  7457  }
  7458  
  7459  // 日程接收者。用户被删除时,其拥有的日程转让给接收者,不指定接收者则默认转让给直属上级,如果无直属上级则直接删除日程资源。
  7460  //
  7461  //示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
  7462  func (builder *DeleteUserReqBodyBuilder) CalendarAcceptorUserId(calendarAcceptorUserId string) *DeleteUserReqBodyBuilder {
  7463  	builder.calendarAcceptorUserId = calendarAcceptorUserId
  7464  	builder.calendarAcceptorUserIdFlag = true
  7465  	return builder
  7466  }
  7467  
  7468  // 应用接受者。用户被删除时,其创建的应用转让给接收者,不指定接收者则默认转让给直属上级。如果无直属上级则保留应用在该用户名下,但该用户无法登录开发者后台进行应用管理,管理员可以在管理后台手动转移应用给其他人。
  7469  //
  7470  //示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
  7471  func (builder *DeleteUserReqBodyBuilder) ApplicationAcceptorUserId(applicationAcceptorUserId string) *DeleteUserReqBodyBuilder {
  7472  	builder.applicationAcceptorUserId = applicationAcceptorUserId
  7473  	builder.applicationAcceptorUserIdFlag = true
  7474  	return builder
  7475  }
  7476  
  7477  // 服务台暂不支持转移,本参数无效。
  7478  //
  7479  //示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
  7480  func (builder *DeleteUserReqBodyBuilder) HelpdeskAcceptorUserId(helpdeskAcceptorUserId string) *DeleteUserReqBodyBuilder {
  7481  	builder.helpdeskAcceptorUserId = helpdeskAcceptorUserId
  7482  	builder.helpdeskAcceptorUserIdFlag = true
  7483  	return builder
  7484  }
  7485  
  7486  // 妙记接收者。用户被删除时,其拥有的妙记资源转让给接收者。如果不指定接收者,则默认转让给直属上级。如果无直属上级则将妙记保留在该用户名下。
  7487  //
  7488  //示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
  7489  func (builder *DeleteUserReqBodyBuilder) MinutesAcceptorUserId(minutesAcceptorUserId string) *DeleteUserReqBodyBuilder {
  7490  	builder.minutesAcceptorUserId = minutesAcceptorUserId
  7491  	builder.minutesAcceptorUserIdFlag = true
  7492  	return builder
  7493  }
  7494  
  7495  // 飞书问卷接收者。用户被删除时,其拥有的飞书问卷资源转让给接收者,不指定接收者则默认转让给直属上级,如果无直属上级则直接删除飞书问卷资源。
  7496  //
  7497  //示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
  7498  func (builder *DeleteUserReqBodyBuilder) SurveyAcceptorUserId(surveyAcceptorUserId string) *DeleteUserReqBodyBuilder {
  7499  	builder.surveyAcceptorUserId = surveyAcceptorUserId
  7500  	builder.surveyAcceptorUserIdFlag = true
  7501  	return builder
  7502  }
  7503  
  7504  // 用户邮件资源处理方式。用户被删除时,根据传递的操作指令对其拥有的邮件资源做对应处理。未传递指令时默认将邮件资源转让给直属上级,如果无直属上级则保留邮件资源在该用户名下。
  7505  //
  7506  //示例值:
  7507  func (builder *DeleteUserReqBodyBuilder) EmailAcceptor(emailAcceptor *ResourceAcceptor) *DeleteUserReqBodyBuilder {
  7508  	builder.emailAcceptor = emailAcceptor
  7509  	builder.emailAcceptorFlag = true
  7510  	return builder
  7511  }
  7512  
  7513  func (builder *DeleteUserReqBodyBuilder) Build() *DeleteUserReqBody {
  7514  	req := &DeleteUserReqBody{}
  7515  	if builder.departmentChatAcceptorUserIdFlag {
  7516  		req.DepartmentChatAcceptorUserId = &builder.departmentChatAcceptorUserId
  7517  	}
  7518  	if builder.externalChatAcceptorUserIdFlag {
  7519  		req.ExternalChatAcceptorUserId = &builder.externalChatAcceptorUserId
  7520  	}
  7521  	if builder.docsAcceptorUserIdFlag {
  7522  		req.DocsAcceptorUserId = &builder.docsAcceptorUserId
  7523  	}
  7524  	if builder.calendarAcceptorUserIdFlag {
  7525  		req.CalendarAcceptorUserId = &builder.calendarAcceptorUserId
  7526  	}
  7527  	if builder.applicationAcceptorUserIdFlag {
  7528  		req.ApplicationAcceptorUserId = &builder.applicationAcceptorUserId
  7529  	}
  7530  	if builder.helpdeskAcceptorUserIdFlag {
  7531  		req.HelpdeskAcceptorUserId = &builder.helpdeskAcceptorUserId
  7532  	}
  7533  	if builder.minutesAcceptorUserIdFlag {
  7534  		req.MinutesAcceptorUserId = &builder.minutesAcceptorUserId
  7535  	}
  7536  	if builder.surveyAcceptorUserIdFlag {
  7537  		req.SurveyAcceptorUserId = &builder.surveyAcceptorUserId
  7538  	}
  7539  	if builder.emailAcceptorFlag {
  7540  		req.EmailAcceptor = builder.emailAcceptor
  7541  	}
  7542  	return req
  7543  }
  7544  
  7545  type DeleteUserPathReqBodyBuilder struct {
  7546  	departmentChatAcceptorUserId     string // 部门群接收者。被删除用户为部门群群主时,转让群主给指定接收者,不指定接收者则默认转让给群内第一个入群的人
  7547  	departmentChatAcceptorUserIdFlag bool
  7548  	externalChatAcceptorUserId       string // 外部群接收者。被删除用户为外部群群主时,转让群主给指定接收者,不指定接收者则默认转让给群内与被删除用户在同一组织的第一个入群的人,如果组织内只有该用户在群里,则解散外部群
  7549  	externalChatAcceptorUserIdFlag   bool
  7550  	docsAcceptorUserId               string // 文档接收者。用户被删除时,其拥有的文档转让给接收者。不指定接收者则默认转让给直属上级,如果无直属上级则将文档资源保留在该用户名下。
  7551  	docsAcceptorUserIdFlag           bool
  7552  	calendarAcceptorUserId           string // 日程接收者。用户被删除时,其拥有的日程转让给接收者,不指定接收者则默认转让给直属上级,如果无直属上级则直接删除日程资源。
  7553  	calendarAcceptorUserIdFlag       bool
  7554  	applicationAcceptorUserId        string // 应用接受者。用户被删除时,其创建的应用转让给接收者,不指定接收者则默认转让给直属上级。如果无直属上级则保留应用在该用户名下,但该用户无法登录开发者后台进行应用管理,管理员可以在管理后台手动转移应用给其他人。
  7555  	applicationAcceptorUserIdFlag    bool
  7556  	helpdeskAcceptorUserId           string // 服务台暂不支持转移,本参数无效。
  7557  	helpdeskAcceptorUserIdFlag       bool
  7558  	minutesAcceptorUserId            string // 妙记接收者。用户被删除时,其拥有的妙记资源转让给接收者。如果不指定接收者,则默认转让给直属上级。如果无直属上级则将妙记保留在该用户名下。
  7559  	minutesAcceptorUserIdFlag        bool
  7560  	surveyAcceptorUserId             string // 飞书问卷接收者。用户被删除时,其拥有的飞书问卷资源转让给接收者,不指定接收者则默认转让给直属上级,如果无直属上级则直接删除飞书问卷资源。
  7561  	surveyAcceptorUserIdFlag         bool
  7562  	emailAcceptor                    *ResourceAcceptor // 用户邮件资源处理方式。用户被删除时,根据传递的操作指令对其拥有的邮件资源做对应处理。未传递指令时默认将邮件资源转让给直属上级,如果无直属上级则保留邮件资源在该用户名下。
  7563  	emailAcceptorFlag                bool
  7564  }
  7565  
  7566  func NewDeleteUserPathReqBodyBuilder() *DeleteUserPathReqBodyBuilder {
  7567  	builder := &DeleteUserPathReqBodyBuilder{}
  7568  	return builder
  7569  }
  7570  
  7571  // 部门群接收者。被删除用户为部门群群主时,转让群主给指定接收者,不指定接收者则默认转让给群内第一个入群的人
  7572  //
  7573  // 示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
  7574  func (builder *DeleteUserPathReqBodyBuilder) DepartmentChatAcceptorUserId(departmentChatAcceptorUserId string) *DeleteUserPathReqBodyBuilder {
  7575  	builder.departmentChatAcceptorUserId = departmentChatAcceptorUserId
  7576  	builder.departmentChatAcceptorUserIdFlag = true
  7577  	return builder
  7578  }
  7579  
  7580  // 外部群接收者。被删除用户为外部群群主时,转让群主给指定接收者,不指定接收者则默认转让给群内与被删除用户在同一组织的第一个入群的人,如果组织内只有该用户在群里,则解散外部群
  7581  //
  7582  // 示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
  7583  func (builder *DeleteUserPathReqBodyBuilder) ExternalChatAcceptorUserId(externalChatAcceptorUserId string) *DeleteUserPathReqBodyBuilder {
  7584  	builder.externalChatAcceptorUserId = externalChatAcceptorUserId
  7585  	builder.externalChatAcceptorUserIdFlag = true
  7586  	return builder
  7587  }
  7588  
  7589  // 文档接收者。用户被删除时,其拥有的文档转让给接收者。不指定接收者则默认转让给直属上级,如果无直属上级则将文档资源保留在该用户名下。
  7590  //
  7591  // 示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
  7592  func (builder *DeleteUserPathReqBodyBuilder) DocsAcceptorUserId(docsAcceptorUserId string) *DeleteUserPathReqBodyBuilder {
  7593  	builder.docsAcceptorUserId = docsAcceptorUserId
  7594  	builder.docsAcceptorUserIdFlag = true
  7595  	return builder
  7596  }
  7597  
  7598  // 日程接收者。用户被删除时,其拥有的日程转让给接收者,不指定接收者则默认转让给直属上级,如果无直属上级则直接删除日程资源。
  7599  //
  7600  // 示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
  7601  func (builder *DeleteUserPathReqBodyBuilder) CalendarAcceptorUserId(calendarAcceptorUserId string) *DeleteUserPathReqBodyBuilder {
  7602  	builder.calendarAcceptorUserId = calendarAcceptorUserId
  7603  	builder.calendarAcceptorUserIdFlag = true
  7604  	return builder
  7605  }
  7606  
  7607  // 应用接受者。用户被删除时,其创建的应用转让给接收者,不指定接收者则默认转让给直属上级。如果无直属上级则保留应用在该用户名下,但该用户无法登录开发者后台进行应用管理,管理员可以在管理后台手动转移应用给其他人。
  7608  //
  7609  // 示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
  7610  func (builder *DeleteUserPathReqBodyBuilder) ApplicationAcceptorUserId(applicationAcceptorUserId string) *DeleteUserPathReqBodyBuilder {
  7611  	builder.applicationAcceptorUserId = applicationAcceptorUserId
  7612  	builder.applicationAcceptorUserIdFlag = true
  7613  	return builder
  7614  }
  7615  
  7616  // 服务台暂不支持转移,本参数无效。
  7617  //
  7618  // 示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
  7619  func (builder *DeleteUserPathReqBodyBuilder) HelpdeskAcceptorUserId(helpdeskAcceptorUserId string) *DeleteUserPathReqBodyBuilder {
  7620  	builder.helpdeskAcceptorUserId = helpdeskAcceptorUserId
  7621  	builder.helpdeskAcceptorUserIdFlag = true
  7622  	return builder
  7623  }
  7624  
  7625  // 妙记接收者。用户被删除时,其拥有的妙记资源转让给接收者。如果不指定接收者,则默认转让给直属上级。如果无直属上级则将妙记保留在该用户名下。
  7626  //
  7627  // 示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
  7628  func (builder *DeleteUserPathReqBodyBuilder) MinutesAcceptorUserId(minutesAcceptorUserId string) *DeleteUserPathReqBodyBuilder {
  7629  	builder.minutesAcceptorUserId = minutesAcceptorUserId
  7630  	builder.minutesAcceptorUserIdFlag = true
  7631  	return builder
  7632  }
  7633  
  7634  // 飞书问卷接收者。用户被删除时,其拥有的飞书问卷资源转让给接收者,不指定接收者则默认转让给直属上级,如果无直属上级则直接删除飞书问卷资源。
  7635  //
  7636  // 示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
  7637  func (builder *DeleteUserPathReqBodyBuilder) SurveyAcceptorUserId(surveyAcceptorUserId string) *DeleteUserPathReqBodyBuilder {
  7638  	builder.surveyAcceptorUserId = surveyAcceptorUserId
  7639  	builder.surveyAcceptorUserIdFlag = true
  7640  	return builder
  7641  }
  7642  
  7643  // 用户邮件资源处理方式。用户被删除时,根据传递的操作指令对其拥有的邮件资源做对应处理。未传递指令时默认将邮件资源转让给直属上级,如果无直属上级则保留邮件资源在该用户名下。
  7644  //
  7645  // 示例值:
  7646  func (builder *DeleteUserPathReqBodyBuilder) EmailAcceptor(emailAcceptor *ResourceAcceptor) *DeleteUserPathReqBodyBuilder {
  7647  	builder.emailAcceptor = emailAcceptor
  7648  	builder.emailAcceptorFlag = true
  7649  	return builder
  7650  }
  7651  
  7652  func (builder *DeleteUserPathReqBodyBuilder) Build() (*DeleteUserReqBody, error) {
  7653  	req := &DeleteUserReqBody{}
  7654  	if builder.departmentChatAcceptorUserIdFlag {
  7655  		req.DepartmentChatAcceptorUserId = &builder.departmentChatAcceptorUserId
  7656  	}
  7657  	if builder.externalChatAcceptorUserIdFlag {
  7658  		req.ExternalChatAcceptorUserId = &builder.externalChatAcceptorUserId
  7659  	}
  7660  	if builder.docsAcceptorUserIdFlag {
  7661  		req.DocsAcceptorUserId = &builder.docsAcceptorUserId
  7662  	}
  7663  	if builder.calendarAcceptorUserIdFlag {
  7664  		req.CalendarAcceptorUserId = &builder.calendarAcceptorUserId
  7665  	}
  7666  	if builder.applicationAcceptorUserIdFlag {
  7667  		req.ApplicationAcceptorUserId = &builder.applicationAcceptorUserId
  7668  	}
  7669  	if builder.helpdeskAcceptorUserIdFlag {
  7670  		req.HelpdeskAcceptorUserId = &builder.helpdeskAcceptorUserId
  7671  	}
  7672  	if builder.minutesAcceptorUserIdFlag {
  7673  		req.MinutesAcceptorUserId = &builder.minutesAcceptorUserId
  7674  	}
  7675  	if builder.surveyAcceptorUserIdFlag {
  7676  		req.SurveyAcceptorUserId = &builder.surveyAcceptorUserId
  7677  	}
  7678  	if builder.emailAcceptorFlag {
  7679  		req.EmailAcceptor = builder.emailAcceptor
  7680  	}
  7681  	return req, nil
  7682  }
  7683  
  7684  type DeleteUserReqBuilder struct {
  7685  	apiReq *larkcore.ApiReq
  7686  	body   *DeleteUserReqBody
  7687  }
  7688  
  7689  func NewDeleteUserReqBuilder() *DeleteUserReqBuilder {
  7690  	builder := &DeleteUserReqBuilder{}
  7691  	builder.apiReq = &larkcore.ApiReq{
  7692  		PathParams:  larkcore.PathParams{},
  7693  		QueryParams: larkcore.QueryParams{},
  7694  	}
  7695  	return builder
  7696  }
  7697  
  7698  // 用户ID,需要与查询参数中的user_id_type类型保持一致。
  7699  //
  7700  // 示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
  7701  func (builder *DeleteUserReqBuilder) UserId(userId string) *DeleteUserReqBuilder {
  7702  	builder.apiReq.PathParams.Set("user_id", fmt.Sprint(userId))
  7703  	return builder
  7704  }
  7705  
  7706  // 此次调用中使用的用户ID的类型
  7707  //
  7708  // 示例值:
  7709  func (builder *DeleteUserReqBuilder) UserIdType(userIdType string) *DeleteUserReqBuilder {
  7710  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  7711  	return builder
  7712  }
  7713  
  7714  // 该接口向通讯录删除一个用户信息,可以理解为员工离职。[常见问题答疑](/ssl:ttdoc/ugTN1YjL4UTN24CO1UjN/uQzN1YjL0cTN24CN3UjN)。
  7715  func (builder *DeleteUserReqBuilder) Body(body *DeleteUserReqBody) *DeleteUserReqBuilder {
  7716  	builder.body = body
  7717  	return builder
  7718  }
  7719  
  7720  func (builder *DeleteUserReqBuilder) Build() *DeleteUserReq {
  7721  	req := &DeleteUserReq{}
  7722  	req.apiReq = &larkcore.ApiReq{}
  7723  	req.apiReq.PathParams = builder.apiReq.PathParams
  7724  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  7725  	req.apiReq.Body = builder.body
  7726  	return req
  7727  }
  7728  
  7729  type DeleteUserReqBody struct {
  7730  	DepartmentChatAcceptorUserId *string           `json:"department_chat_acceptor_user_id,omitempty"` // 部门群接收者。被删除用户为部门群群主时,转让群主给指定接收者,不指定接收者则默认转让给群内第一个入群的人
  7731  	ExternalChatAcceptorUserId   *string           `json:"external_chat_acceptor_user_id,omitempty"`   // 外部群接收者。被删除用户为外部群群主时,转让群主给指定接收者,不指定接收者则默认转让给群内与被删除用户在同一组织的第一个入群的人,如果组织内只有该用户在群里,则解散外部群
  7732  	DocsAcceptorUserId           *string           `json:"docs_acceptor_user_id,omitempty"`            // 文档接收者。用户被删除时,其拥有的文档转让给接收者。不指定接收者则默认转让给直属上级,如果无直属上级则将文档资源保留在该用户名下。
  7733  	CalendarAcceptorUserId       *string           `json:"calendar_acceptor_user_id,omitempty"`        // 日程接收者。用户被删除时,其拥有的日程转让给接收者,不指定接收者则默认转让给直属上级,如果无直属上级则直接删除日程资源。
  7734  	ApplicationAcceptorUserId    *string           `json:"application_acceptor_user_id,omitempty"`     // 应用接受者。用户被删除时,其创建的应用转让给接收者,不指定接收者则默认转让给直属上级。如果无直属上级则保留应用在该用户名下,但该用户无法登录开发者后台进行应用管理,管理员可以在管理后台手动转移应用给其他人。
  7735  	HelpdeskAcceptorUserId       *string           `json:"helpdesk_acceptor_user_id,omitempty"`        // 服务台暂不支持转移,本参数无效。
  7736  	MinutesAcceptorUserId        *string           `json:"minutes_acceptor_user_id,omitempty"`         // 妙记接收者。用户被删除时,其拥有的妙记资源转让给接收者。如果不指定接收者,则默认转让给直属上级。如果无直属上级则将妙记保留在该用户名下。
  7737  	SurveyAcceptorUserId         *string           `json:"survey_acceptor_user_id,omitempty"`          // 飞书问卷接收者。用户被删除时,其拥有的飞书问卷资源转让给接收者,不指定接收者则默认转让给直属上级,如果无直属上级则直接删除飞书问卷资源。
  7738  	EmailAcceptor                *ResourceAcceptor `json:"email_acceptor,omitempty"`                   // 用户邮件资源处理方式。用户被删除时,根据传递的操作指令对其拥有的邮件资源做对应处理。未传递指令时默认将邮件资源转让给直属上级,如果无直属上级则保留邮件资源在该用户名下。
  7739  }
  7740  
  7741  type DeleteUserReq struct {
  7742  	apiReq *larkcore.ApiReq
  7743  	Body   *DeleteUserReqBody `body:""`
  7744  }
  7745  
  7746  type DeleteUserResp struct {
  7747  	*larkcore.ApiResp `json:"-"`
  7748  	larkcore.CodeError
  7749  }
  7750  
  7751  func (resp *DeleteUserResp) Success() bool {
  7752  	return resp.Code == 0
  7753  }
  7754  
  7755  type FindByDepartmentUserReqBuilder struct {
  7756  	apiReq *larkcore.ApiReq
  7757  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  7758  }
  7759  
  7760  func NewFindByDepartmentUserReqBuilder() *FindByDepartmentUserReqBuilder {
  7761  	builder := &FindByDepartmentUserReqBuilder{}
  7762  	builder.apiReq = &larkcore.ApiReq{
  7763  		PathParams:  larkcore.PathParams{},
  7764  		QueryParams: larkcore.QueryParams{},
  7765  	}
  7766  	return builder
  7767  }
  7768  
  7769  // 最大返回多少记录,当使用迭代器访问时才有效
  7770  func (builder *FindByDepartmentUserReqBuilder) Limit(limit int) *FindByDepartmentUserReqBuilder {
  7771  	builder.limit = limit
  7772  	return builder
  7773  }
  7774  
  7775  // 此次调用中使用的用户ID的类型
  7776  //
  7777  // 示例值:
  7778  func (builder *FindByDepartmentUserReqBuilder) UserIdType(userIdType string) *FindByDepartmentUserReqBuilder {
  7779  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  7780  	return builder
  7781  }
  7782  
  7783  // 此次调用中使用的部门ID的类型;;部门ID类型的区别参见[部门ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0)
  7784  //
  7785  // 示例值:open_department_id
  7786  func (builder *FindByDepartmentUserReqBuilder) DepartmentIdType(departmentIdType string) *FindByDepartmentUserReqBuilder {
  7787  	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
  7788  	return builder
  7789  }
  7790  
  7791  // 填写该字段表示获取该部门下用户,必填。根部门的部门ID为0。;;ID值与查询参数中的department_id_type 对应。;;不同 ID 的说明与department_id的获取方式参见 [部门ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0)
  7792  //
  7793  // 示例值:od-xxxxxxxxxxxxx
  7794  func (builder *FindByDepartmentUserReqBuilder) DepartmentId(departmentId string) *FindByDepartmentUserReqBuilder {
  7795  	builder.apiReq.QueryParams.Set("department_id", fmt.Sprint(departmentId))
  7796  	return builder
  7797  }
  7798  
  7799  // 分页大小
  7800  //
  7801  // 示例值:10
  7802  func (builder *FindByDepartmentUserReqBuilder) PageSize(pageSize int) *FindByDepartmentUserReqBuilder {
  7803  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  7804  	return builder
  7805  }
  7806  
  7807  // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该page_token 获取查询结果
  7808  //
  7809  // 示例值:AQD9/Rn9eij9Pm39ED40/dk53s4Ebp882DYfFaPFbz00L4CMZJrqGdzNyc8BcZtDbwVUvRmQTvyMYicnGWrde9X56TgdBuS+JKiSIkdexPw=
  7810  func (builder *FindByDepartmentUserReqBuilder) PageToken(pageToken string) *FindByDepartmentUserReqBuilder {
  7811  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  7812  	return builder
  7813  }
  7814  
  7815  func (builder *FindByDepartmentUserReqBuilder) Build() *FindByDepartmentUserReq {
  7816  	req := &FindByDepartmentUserReq{}
  7817  	req.apiReq = &larkcore.ApiReq{}
  7818  	req.Limit = builder.limit
  7819  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  7820  	return req
  7821  }
  7822  
  7823  type FindByDepartmentUserReq struct {
  7824  	apiReq *larkcore.ApiReq
  7825  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
  7826  
  7827  }
  7828  
  7829  type FindByDepartmentUserRespData struct {
  7830  	HasMore   *bool   `json:"has_more,omitempty"`   // 是否有下一页数据
  7831  	PageToken *string `json:"page_token,omitempty"` // 下一页分页的token
  7832  	Items     []*User `json:"items,omitempty"`      // 用户信息列表
  7833  }
  7834  
  7835  type FindByDepartmentUserResp struct {
  7836  	*larkcore.ApiResp `json:"-"`
  7837  	larkcore.CodeError
  7838  	Data *FindByDepartmentUserRespData `json:"data"` // 业务数据
  7839  }
  7840  
  7841  func (resp *FindByDepartmentUserResp) Success() bool {
  7842  	return resp.Code == 0
  7843  }
  7844  
  7845  type GetUserReqBuilder struct {
  7846  	apiReq *larkcore.ApiReq
  7847  }
  7848  
  7849  func NewGetUserReqBuilder() *GetUserReqBuilder {
  7850  	builder := &GetUserReqBuilder{}
  7851  	builder.apiReq = &larkcore.ApiReq{
  7852  		PathParams:  larkcore.PathParams{},
  7853  		QueryParams: larkcore.QueryParams{},
  7854  	}
  7855  	return builder
  7856  }
  7857  
  7858  // 用户ID,类型需要与查询参数中的user_id_type保持一致。;;例如user_id_type=open_id,user_id的类型需为open_id;;不同ID的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  7859  //
  7860  // 示例值:7be5fg9a
  7861  func (builder *GetUserReqBuilder) UserId(userId string) *GetUserReqBuilder {
  7862  	builder.apiReq.PathParams.Set("user_id", fmt.Sprint(userId))
  7863  	return builder
  7864  }
  7865  
  7866  // 此次调用中使用的用户ID的类型
  7867  //
  7868  // 示例值:
  7869  func (builder *GetUserReqBuilder) UserIdType(userIdType string) *GetUserReqBuilder {
  7870  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  7871  	return builder
  7872  }
  7873  
  7874  // 此次调用中使用的部门ID的类型;;不同 ID 的说明 [部门ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/contact-v3/department/field-overview#23857fe0)
  7875  //
  7876  // 示例值:open_department_id
  7877  func (builder *GetUserReqBuilder) DepartmentIdType(departmentIdType string) *GetUserReqBuilder {
  7878  	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
  7879  	return builder
  7880  }
  7881  
  7882  func (builder *GetUserReqBuilder) Build() *GetUserReq {
  7883  	req := &GetUserReq{}
  7884  	req.apiReq = &larkcore.ApiReq{}
  7885  	req.apiReq.PathParams = builder.apiReq.PathParams
  7886  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  7887  	return req
  7888  }
  7889  
  7890  type GetUserReq struct {
  7891  	apiReq *larkcore.ApiReq
  7892  }
  7893  
  7894  type GetUserRespData struct {
  7895  	User *User `json:"user,omitempty"` // 用户信息
  7896  }
  7897  
  7898  type GetUserResp struct {
  7899  	*larkcore.ApiResp `json:"-"`
  7900  	larkcore.CodeError
  7901  	Data *GetUserRespData `json:"data"` // 业务数据
  7902  }
  7903  
  7904  func (resp *GetUserResp) Success() bool {
  7905  	return resp.Code == 0
  7906  }
  7907  
  7908  type ListUserReqBuilder struct {
  7909  	apiReq *larkcore.ApiReq
  7910  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  7911  }
  7912  
  7913  func NewListUserReqBuilder() *ListUserReqBuilder {
  7914  	builder := &ListUserReqBuilder{}
  7915  	builder.apiReq = &larkcore.ApiReq{
  7916  		PathParams:  larkcore.PathParams{},
  7917  		QueryParams: larkcore.QueryParams{},
  7918  	}
  7919  	return builder
  7920  }
  7921  
  7922  // 最大返回多少记录,当使用迭代器访问时才有效
  7923  func (builder *ListUserReqBuilder) Limit(limit int) *ListUserReqBuilder {
  7924  	builder.limit = limit
  7925  	return builder
  7926  }
  7927  
  7928  // 此次调用中使用的用户ID的类型
  7929  //
  7930  // 示例值:
  7931  func (builder *ListUserReqBuilder) UserIdType(userIdType string) *ListUserReqBuilder {
  7932  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  7933  	return builder
  7934  }
  7935  
  7936  // 此次调用中使用的部门ID的类型
  7937  //
  7938  // 示例值:open_department_type
  7939  func (builder *ListUserReqBuilder) DepartmentIdType(departmentIdType string) *ListUserReqBuilder {
  7940  	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
  7941  	return builder
  7942  }
  7943  
  7944  // 填写该字段表示获取部门下所有用户,选填。
  7945  //
  7946  // 示例值:od-xxxxxxxxxxxxx
  7947  func (builder *ListUserReqBuilder) DepartmentId(departmentId string) *ListUserReqBuilder {
  7948  	builder.apiReq.QueryParams.Set("department_id", fmt.Sprint(departmentId))
  7949  	return builder
  7950  }
  7951  
  7952  //
  7953  //
  7954  // 示例值:AQD9/Rn9eij9Pm39ED40/dk53s4Ebp882DYfFaPFbz00L4CMZJrqGdzNyc8BcZtDbwVUvRmQTvyMYicnGWrde9X56TgdBuS%2BJKiSIkdexPw=
  7955  func (builder *ListUserReqBuilder) PageToken(pageToken string) *ListUserReqBuilder {
  7956  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  7957  	return builder
  7958  }
  7959  
  7960  //
  7961  //
  7962  // 示例值:10
  7963  func (builder *ListUserReqBuilder) PageSize(pageSize int) *ListUserReqBuilder {
  7964  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  7965  	return builder
  7966  }
  7967  
  7968  func (builder *ListUserReqBuilder) Build() *ListUserReq {
  7969  	req := &ListUserReq{}
  7970  	req.apiReq = &larkcore.ApiReq{}
  7971  	req.Limit = builder.limit
  7972  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  7973  	return req
  7974  }
  7975  
  7976  type ListUserReq struct {
  7977  	apiReq *larkcore.ApiReq
  7978  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
  7979  
  7980  }
  7981  
  7982  type ListUserRespData struct {
  7983  	HasMore   *bool   `json:"has_more,omitempty"`   // 是否有下一页数据
  7984  	PageToken *string `json:"page_token,omitempty"` // 下一页分页的token
  7985  	Items     []*User `json:"items,omitempty"`      // -
  7986  }
  7987  
  7988  type ListUserResp struct {
  7989  	*larkcore.ApiResp `json:"-"`
  7990  	larkcore.CodeError
  7991  	Data *ListUserRespData `json:"data"` // 业务数据
  7992  }
  7993  
  7994  func (resp *ListUserResp) Success() bool {
  7995  	return resp.Code == 0
  7996  }
  7997  
  7998  type PatchUserReqBuilder struct {
  7999  	apiReq *larkcore.ApiReq
  8000  	user   *User
  8001  }
  8002  
  8003  func NewPatchUserReqBuilder() *PatchUserReqBuilder {
  8004  	builder := &PatchUserReqBuilder{}
  8005  	builder.apiReq = &larkcore.ApiReq{
  8006  		PathParams:  larkcore.PathParams{},
  8007  		QueryParams: larkcore.QueryParams{},
  8008  	}
  8009  	return builder
  8010  }
  8011  
  8012  // 用户ID,需要与查询参数中的user_id_type类型保持一致。
  8013  //
  8014  // 示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
  8015  func (builder *PatchUserReqBuilder) UserId(userId string) *PatchUserReqBuilder {
  8016  	builder.apiReq.PathParams.Set("user_id", fmt.Sprint(userId))
  8017  	return builder
  8018  }
  8019  
  8020  // 此次调用中使用的用户ID的类型
  8021  //
  8022  // 示例值:
  8023  func (builder *PatchUserReqBuilder) UserIdType(userIdType string) *PatchUserReqBuilder {
  8024  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  8025  	return builder
  8026  }
  8027  
  8028  // 此次调用中使用的部门ID的类型
  8029  //
  8030  // 示例值:open_department_id
  8031  func (builder *PatchUserReqBuilder) DepartmentIdType(departmentIdType string) *PatchUserReqBuilder {
  8032  	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
  8033  	return builder
  8034  }
  8035  
  8036  // 该接口用于更新通讯录中用户的字段,未传递的参数不会更新。[常见问题答疑](/ssl:ttdoc/ugTN1YjL4UTN24CO1UjN/uQzN1YjL0cTN24CN3UjN)。
  8037  func (builder *PatchUserReqBuilder) User(user *User) *PatchUserReqBuilder {
  8038  	builder.user = user
  8039  	return builder
  8040  }
  8041  
  8042  func (builder *PatchUserReqBuilder) Build() *PatchUserReq {
  8043  	req := &PatchUserReq{}
  8044  	req.apiReq = &larkcore.ApiReq{}
  8045  	req.apiReq.PathParams = builder.apiReq.PathParams
  8046  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  8047  	req.apiReq.Body = builder.user
  8048  	return req
  8049  }
  8050  
  8051  type PatchUserReq struct {
  8052  	apiReq *larkcore.ApiReq
  8053  	User   *User `body:""`
  8054  }
  8055  
  8056  type PatchUserRespData struct {
  8057  	User *User `json:"user,omitempty"` // 用户信息
  8058  }
  8059  
  8060  type PatchUserResp struct {
  8061  	*larkcore.ApiResp `json:"-"`
  8062  	larkcore.CodeError
  8063  	Data *PatchUserRespData `json:"data"` // 业务数据
  8064  }
  8065  
  8066  func (resp *PatchUserResp) Success() bool {
  8067  	return resp.Code == 0
  8068  }
  8069  
  8070  type UpdateUserReqBuilder struct {
  8071  	apiReq *larkcore.ApiReq
  8072  	user   *User
  8073  }
  8074  
  8075  func NewUpdateUserReqBuilder() *UpdateUserReqBuilder {
  8076  	builder := &UpdateUserReqBuilder{}
  8077  	builder.apiReq = &larkcore.ApiReq{
  8078  		PathParams:  larkcore.PathParams{},
  8079  		QueryParams: larkcore.QueryParams{},
  8080  	}
  8081  	return builder
  8082  }
  8083  
  8084  // 用户ID,需要与查询参数中的user_id_type类型保持一致。
  8085  //
  8086  // 示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62
  8087  func (builder *UpdateUserReqBuilder) UserId(userId string) *UpdateUserReqBuilder {
  8088  	builder.apiReq.PathParams.Set("user_id", fmt.Sprint(userId))
  8089  	return builder
  8090  }
  8091  
  8092  // 此次调用中使用的用户ID的类型
  8093  //
  8094  // 示例值:
  8095  func (builder *UpdateUserReqBuilder) UserIdType(userIdType string) *UpdateUserReqBuilder {
  8096  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  8097  	return builder
  8098  }
  8099  
  8100  // 此次调用中使用的部门ID的类型
  8101  //
  8102  // 示例值:open_department_id
  8103  func (builder *UpdateUserReqBuilder) DepartmentIdType(departmentIdType string) *UpdateUserReqBuilder {
  8104  	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
  8105  	return builder
  8106  }
  8107  
  8108  // 该接口用于更新通讯录中用户的字段。[常见问题答疑](/ssl:ttdoc/ugTN1YjL4UTN24CO1UjN/uQzN1YjL0cTN24CN3UjN)。
  8109  func (builder *UpdateUserReqBuilder) User(user *User) *UpdateUserReqBuilder {
  8110  	builder.user = user
  8111  	return builder
  8112  }
  8113  
  8114  func (builder *UpdateUserReqBuilder) Build() *UpdateUserReq {
  8115  	req := &UpdateUserReq{}
  8116  	req.apiReq = &larkcore.ApiReq{}
  8117  	req.apiReq.PathParams = builder.apiReq.PathParams
  8118  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  8119  	req.apiReq.Body = builder.user
  8120  	return req
  8121  }
  8122  
  8123  type UpdateUserReq struct {
  8124  	apiReq *larkcore.ApiReq
  8125  	User   *User `body:""`
  8126  }
  8127  
  8128  type UpdateUserRespData struct {
  8129  	User *User `json:"user,omitempty"` // 用户信息
  8130  }
  8131  
  8132  type UpdateUserResp struct {
  8133  	*larkcore.ApiResp `json:"-"`
  8134  	larkcore.CodeError
  8135  	Data *UpdateUserRespData `json:"data"` // 业务数据
  8136  }
  8137  
  8138  func (resp *UpdateUserResp) Success() bool {
  8139  	return resp.Code == 0
  8140  }
  8141  
  8142  type P2CustomAttrEventUpdatedV3Data struct {
  8143  	Object    *CustomAttrEvent `json:"object,omitempty"`     // 变更后信息
  8144  	OldObject *CustomAttrEvent `json:"old_object,omitempty"` // 变更前信息
  8145  }
  8146  
  8147  type P2CustomAttrEventUpdatedV3 struct {
  8148  	*larkevent.EventV2Base                                 // 事件基础数据
  8149  	*larkevent.EventReq                                    // 请求原生数据
  8150  	Event                  *P2CustomAttrEventUpdatedV3Data `json:"event"` // 事件内容
  8151  }
  8152  
  8153  func (m *P2CustomAttrEventUpdatedV3) RawReq(req *larkevent.EventReq) {
  8154  	m.EventReq = req
  8155  }
  8156  
  8157  type P2DepartmentCreatedV3Data struct {
  8158  	Object *DepartmentEvent `json:"object,omitempty"` // 部门信息
  8159  }
  8160  
  8161  type P2DepartmentCreatedV3 struct {
  8162  	*larkevent.EventV2Base                            // 事件基础数据
  8163  	*larkevent.EventReq                               // 请求原生数据
  8164  	Event                  *P2DepartmentCreatedV3Data `json:"event"` // 事件内容
  8165  }
  8166  
  8167  func (m *P2DepartmentCreatedV3) RawReq(req *larkevent.EventReq) {
  8168  	m.EventReq = req
  8169  }
  8170  
  8171  type P2DepartmentDeletedV3Data struct {
  8172  	Object    *DepartmentEvent     `json:"object,omitempty"`     // 部门信息
  8173  	OldObject *OldDepartmentObject `json:"old_object,omitempty"` // 部门被删除前的信息
  8174  }
  8175  
  8176  type P2DepartmentDeletedV3 struct {
  8177  	*larkevent.EventV2Base                            // 事件基础数据
  8178  	*larkevent.EventReq                               // 请求原生数据
  8179  	Event                  *P2DepartmentDeletedV3Data `json:"event"` // 事件内容
  8180  }
  8181  
  8182  func (m *P2DepartmentDeletedV3) RawReq(req *larkevent.EventReq) {
  8183  	m.EventReq = req
  8184  }
  8185  
  8186  type P2DepartmentUpdatedV3Data struct {
  8187  	Object    *DepartmentEvent `json:"object,omitempty"`     // 更新后信息
  8188  	OldObject *DepartmentEvent `json:"old_object,omitempty"` // 更新前信息
  8189  }
  8190  
  8191  type P2DepartmentUpdatedV3 struct {
  8192  	*larkevent.EventV2Base                            // 事件基础数据
  8193  	*larkevent.EventReq                               // 请求原生数据
  8194  	Event                  *P2DepartmentUpdatedV3Data `json:"event"` // 事件内容
  8195  }
  8196  
  8197  func (m *P2DepartmentUpdatedV3) RawReq(req *larkevent.EventReq) {
  8198  	m.EventReq = req
  8199  }
  8200  
  8201  type P2EmployeeTypeEnumActivedV3Data struct {
  8202  	OldEnum *EmployeeTypeEnum `json:"old_enum,omitempty"` // 旧枚举类型
  8203  	NewEnum *EmployeeTypeEnum `json:"new_enum,omitempty"` // 新枚举类型
  8204  }
  8205  
  8206  type P2EmployeeTypeEnumActivedV3 struct {
  8207  	*larkevent.EventV2Base                                  // 事件基础数据
  8208  	*larkevent.EventReq                                     // 请求原生数据
  8209  	Event                  *P2EmployeeTypeEnumActivedV3Data `json:"event"` // 事件内容
  8210  }
  8211  
  8212  func (m *P2EmployeeTypeEnumActivedV3) RawReq(req *larkevent.EventReq) {
  8213  	m.EventReq = req
  8214  }
  8215  
  8216  type P2EmployeeTypeEnumCreatedV3Data struct {
  8217  	NewEnum *EmployeeTypeEnum `json:"new_enum,omitempty"` // 新枚举类型
  8218  }
  8219  
  8220  type P2EmployeeTypeEnumCreatedV3 struct {
  8221  	*larkevent.EventV2Base                                  // 事件基础数据
  8222  	*larkevent.EventReq                                     // 请求原生数据
  8223  	Event                  *P2EmployeeTypeEnumCreatedV3Data `json:"event"` // 事件内容
  8224  }
  8225  
  8226  func (m *P2EmployeeTypeEnumCreatedV3) RawReq(req *larkevent.EventReq) {
  8227  	m.EventReq = req
  8228  }
  8229  
  8230  type P2EmployeeTypeEnumDeactivatedV3Data struct {
  8231  	OldEnum *EmployeeTypeEnum `json:"old_enum,omitempty"` // 旧枚举类型
  8232  	NewEnum *EmployeeTypeEnum `json:"new_enum,omitempty"` // 新枚举类型
  8233  }
  8234  
  8235  type P2EmployeeTypeEnumDeactivatedV3 struct {
  8236  	*larkevent.EventV2Base                                      // 事件基础数据
  8237  	*larkevent.EventReq                                         // 请求原生数据
  8238  	Event                  *P2EmployeeTypeEnumDeactivatedV3Data `json:"event"` // 事件内容
  8239  }
  8240  
  8241  func (m *P2EmployeeTypeEnumDeactivatedV3) RawReq(req *larkevent.EventReq) {
  8242  	m.EventReq = req
  8243  }
  8244  
  8245  type P2EmployeeTypeEnumDeletedV3Data struct {
  8246  	OldEnum *EmployeeTypeEnum `json:"old_enum,omitempty"` // 旧枚举类型
  8247  }
  8248  
  8249  type P2EmployeeTypeEnumDeletedV3 struct {
  8250  	*larkevent.EventV2Base                                  // 事件基础数据
  8251  	*larkevent.EventReq                                     // 请求原生数据
  8252  	Event                  *P2EmployeeTypeEnumDeletedV3Data `json:"event"` // 事件内容
  8253  }
  8254  
  8255  func (m *P2EmployeeTypeEnumDeletedV3) RawReq(req *larkevent.EventReq) {
  8256  	m.EventReq = req
  8257  }
  8258  
  8259  type P2EmployeeTypeEnumUpdatedV3Data struct {
  8260  	OldEnum *EmployeeTypeEnum `json:"old_enum,omitempty"` // 旧枚举类型
  8261  	NewEnum *EmployeeTypeEnum `json:"new_enum,omitempty"` // 新枚举类型
  8262  }
  8263  
  8264  type P2EmployeeTypeEnumUpdatedV3 struct {
  8265  	*larkevent.EventV2Base                                  // 事件基础数据
  8266  	*larkevent.EventReq                                     // 请求原生数据
  8267  	Event                  *P2EmployeeTypeEnumUpdatedV3Data `json:"event"` // 事件内容
  8268  }
  8269  
  8270  func (m *P2EmployeeTypeEnumUpdatedV3) RawReq(req *larkevent.EventReq) {
  8271  	m.EventReq = req
  8272  }
  8273  
  8274  type P2ScopeUpdatedV3Data struct {
  8275  	Added   *Scope `json:"added,omitempty"`   // 当通讯录范围权限变更时,新增的对象
  8276  	Removed *Scope `json:"removed,omitempty"` // 当通讯录范围权限发生变更时,移除的对象
  8277  }
  8278  
  8279  type P2ScopeUpdatedV3 struct {
  8280  	*larkevent.EventV2Base                       // 事件基础数据
  8281  	*larkevent.EventReq                          // 请求原生数据
  8282  	Event                  *P2ScopeUpdatedV3Data `json:"event"` // 事件内容
  8283  }
  8284  
  8285  func (m *P2ScopeUpdatedV3) RawReq(req *larkevent.EventReq) {
  8286  	m.EventReq = req
  8287  }
  8288  
  8289  type P2UserCreatedV3Data struct {
  8290  	Object *UserEvent `json:"object,omitempty"` // 事件信息
  8291  }
  8292  
  8293  type P2UserCreatedV3 struct {
  8294  	*larkevent.EventV2Base                      // 事件基础数据
  8295  	*larkevent.EventReq                         // 请求原生数据
  8296  	Event                  *P2UserCreatedV3Data `json:"event"` // 事件内容
  8297  }
  8298  
  8299  func (m *P2UserCreatedV3) RawReq(req *larkevent.EventReq) {
  8300  	m.EventReq = req
  8301  }
  8302  
  8303  type P2UserDeletedV3Data struct {
  8304  	Object    *UserEvent     `json:"object,omitempty"`     // 员工信息
  8305  	OldObject *OldUserObject `json:"old_object,omitempty"` // 删除前信息
  8306  }
  8307  
  8308  type P2UserDeletedV3 struct {
  8309  	*larkevent.EventV2Base                      // 事件基础数据
  8310  	*larkevent.EventReq                         // 请求原生数据
  8311  	Event                  *P2UserDeletedV3Data `json:"event"` // 事件内容
  8312  }
  8313  
  8314  func (m *P2UserDeletedV3) RawReq(req *larkevent.EventReq) {
  8315  	m.EventReq = req
  8316  }
  8317  
  8318  type P2UserUpdatedV3Data struct {
  8319  	Object    *UserEvent `json:"object,omitempty"`     // 变更后信息
  8320  	OldObject *UserEvent `json:"old_object,omitempty"` // 变更前信息,body中只包含有变更的字段
  8321  }
  8322  
  8323  type P2UserUpdatedV3 struct {
  8324  	*larkevent.EventV2Base                      // 事件基础数据
  8325  	*larkevent.EventReq                         // 请求原生数据
  8326  	Event                  *P2UserUpdatedV3Data `json:"event"` // 事件内容
  8327  }
  8328  
  8329  func (m *P2UserUpdatedV3) RawReq(req *larkevent.EventReq) {
  8330  	m.EventReq = req
  8331  }
  8332  
  8333  type ListCustomAttrIterator struct {
  8334  	nextPageToken *string
  8335  	items         []*CustomAttr
  8336  	index         int
  8337  	limit         int
  8338  	ctx           context.Context
  8339  	req           *ListCustomAttrReq
  8340  	listFunc      func(ctx context.Context, req *ListCustomAttrReq, options ...larkcore.RequestOptionFunc) (*ListCustomAttrResp, error)
  8341  	options       []larkcore.RequestOptionFunc
  8342  	curlNum       int
  8343  }
  8344  
  8345  func (iterator *ListCustomAttrIterator) Next() (bool, *CustomAttr, error) {
  8346  	// 达到最大量,则返回
  8347  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  8348  		return false, nil, nil
  8349  	}
  8350  
  8351  	// 为0则拉取数据
  8352  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  8353  		if iterator.index != 0 && iterator.nextPageToken == nil {
  8354  			return false, nil, nil
  8355  		}
  8356  		if iterator.nextPageToken != nil {
  8357  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  8358  		}
  8359  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  8360  		if err != nil {
  8361  			return false, nil, err
  8362  		}
  8363  
  8364  		if resp.Code != 0 {
  8365  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  8366  		}
  8367  
  8368  		if len(resp.Data.Items) == 0 {
  8369  			return false, nil, nil
  8370  		}
  8371  
  8372  		iterator.nextPageToken = resp.Data.PageToken
  8373  		iterator.items = resp.Data.Items
  8374  		iterator.index = 0
  8375  	}
  8376  
  8377  	block := iterator.items[iterator.index]
  8378  	iterator.index++
  8379  	iterator.curlNum++
  8380  	return true, block, nil
  8381  }
  8382  
  8383  func (iterator *ListCustomAttrIterator) NextPageToken() *string {
  8384  	return iterator.nextPageToken
  8385  }
  8386  
  8387  type ChildrenDepartmentIterator struct {
  8388  	nextPageToken *string
  8389  	items         []*Department
  8390  	index         int
  8391  	limit         int
  8392  	ctx           context.Context
  8393  	req           *ChildrenDepartmentReq
  8394  	listFunc      func(ctx context.Context, req *ChildrenDepartmentReq, options ...larkcore.RequestOptionFunc) (*ChildrenDepartmentResp, error)
  8395  	options       []larkcore.RequestOptionFunc
  8396  	curlNum       int
  8397  }
  8398  
  8399  func (iterator *ChildrenDepartmentIterator) Next() (bool, *Department, error) {
  8400  	// 达到最大量,则返回
  8401  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  8402  		return false, nil, nil
  8403  	}
  8404  
  8405  	// 为0则拉取数据
  8406  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  8407  		if iterator.index != 0 && iterator.nextPageToken == nil {
  8408  			return false, nil, nil
  8409  		}
  8410  		if iterator.nextPageToken != nil {
  8411  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  8412  		}
  8413  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  8414  		if err != nil {
  8415  			return false, nil, err
  8416  		}
  8417  
  8418  		if resp.Code != 0 {
  8419  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  8420  		}
  8421  
  8422  		if len(resp.Data.Items) == 0 {
  8423  			return false, nil, nil
  8424  		}
  8425  
  8426  		iterator.nextPageToken = resp.Data.PageToken
  8427  		iterator.items = resp.Data.Items
  8428  		iterator.index = 0
  8429  	}
  8430  
  8431  	block := iterator.items[iterator.index]
  8432  	iterator.index++
  8433  	iterator.curlNum++
  8434  	return true, block, nil
  8435  }
  8436  
  8437  func (iterator *ChildrenDepartmentIterator) NextPageToken() *string {
  8438  	return iterator.nextPageToken
  8439  }
  8440  
  8441  type ListDepartmentIterator struct {
  8442  	nextPageToken *string
  8443  	items         []*Department
  8444  	index         int
  8445  	limit         int
  8446  	ctx           context.Context
  8447  	req           *ListDepartmentReq
  8448  	listFunc      func(ctx context.Context, req *ListDepartmentReq, options ...larkcore.RequestOptionFunc) (*ListDepartmentResp, error)
  8449  	options       []larkcore.RequestOptionFunc
  8450  	curlNum       int
  8451  }
  8452  
  8453  func (iterator *ListDepartmentIterator) Next() (bool, *Department, error) {
  8454  	// 达到最大量,则返回
  8455  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  8456  		return false, nil, nil
  8457  	}
  8458  
  8459  	// 为0则拉取数据
  8460  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  8461  		if iterator.index != 0 && iterator.nextPageToken == nil {
  8462  			return false, nil, nil
  8463  		}
  8464  		if iterator.nextPageToken != nil {
  8465  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  8466  		}
  8467  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  8468  		if err != nil {
  8469  			return false, nil, err
  8470  		}
  8471  
  8472  		if resp.Code != 0 {
  8473  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  8474  		}
  8475  
  8476  		if len(resp.Data.Items) == 0 {
  8477  			return false, nil, nil
  8478  		}
  8479  
  8480  		iterator.nextPageToken = resp.Data.PageToken
  8481  		iterator.items = resp.Data.Items
  8482  		iterator.index = 0
  8483  	}
  8484  
  8485  	block := iterator.items[iterator.index]
  8486  	iterator.index++
  8487  	iterator.curlNum++
  8488  	return true, block, nil
  8489  }
  8490  
  8491  func (iterator *ListDepartmentIterator) NextPageToken() *string {
  8492  	return iterator.nextPageToken
  8493  }
  8494  
  8495  type ParentDepartmentIterator struct {
  8496  	nextPageToken *string
  8497  	items         []*Department
  8498  	index         int
  8499  	limit         int
  8500  	ctx           context.Context
  8501  	req           *ParentDepartmentReq
  8502  	listFunc      func(ctx context.Context, req *ParentDepartmentReq, options ...larkcore.RequestOptionFunc) (*ParentDepartmentResp, error)
  8503  	options       []larkcore.RequestOptionFunc
  8504  	curlNum       int
  8505  }
  8506  
  8507  func (iterator *ParentDepartmentIterator) Next() (bool, *Department, error) {
  8508  	// 达到最大量,则返回
  8509  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  8510  		return false, nil, nil
  8511  	}
  8512  
  8513  	// 为0则拉取数据
  8514  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  8515  		if iterator.index != 0 && iterator.nextPageToken == nil {
  8516  			return false, nil, nil
  8517  		}
  8518  		if iterator.nextPageToken != nil {
  8519  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  8520  		}
  8521  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  8522  		if err != nil {
  8523  			return false, nil, err
  8524  		}
  8525  
  8526  		if resp.Code != 0 {
  8527  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  8528  		}
  8529  
  8530  		if len(resp.Data.Items) == 0 {
  8531  			return false, nil, nil
  8532  		}
  8533  
  8534  		iterator.nextPageToken = resp.Data.PageToken
  8535  		iterator.items = resp.Data.Items
  8536  		iterator.index = 0
  8537  	}
  8538  
  8539  	block := iterator.items[iterator.index]
  8540  	iterator.index++
  8541  	iterator.curlNum++
  8542  	return true, block, nil
  8543  }
  8544  
  8545  func (iterator *ParentDepartmentIterator) NextPageToken() *string {
  8546  	return iterator.nextPageToken
  8547  }
  8548  
  8549  type SearchDepartmentIterator struct {
  8550  	nextPageToken *string
  8551  	items         []*Department
  8552  	index         int
  8553  	limit         int
  8554  	ctx           context.Context
  8555  	req           *SearchDepartmentReq
  8556  	listFunc      func(ctx context.Context, req *SearchDepartmentReq, options ...larkcore.RequestOptionFunc) (*SearchDepartmentResp, error)
  8557  	options       []larkcore.RequestOptionFunc
  8558  	curlNum       int
  8559  }
  8560  
  8561  func (iterator *SearchDepartmentIterator) Next() (bool, *Department, error) {
  8562  	// 达到最大量,则返回
  8563  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  8564  		return false, nil, nil
  8565  	}
  8566  
  8567  	// 为0则拉取数据
  8568  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  8569  		if iterator.index != 0 && iterator.nextPageToken == nil {
  8570  			return false, nil, nil
  8571  		}
  8572  		if iterator.nextPageToken != nil {
  8573  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  8574  		}
  8575  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  8576  		if err != nil {
  8577  			return false, nil, err
  8578  		}
  8579  
  8580  		if resp.Code != 0 {
  8581  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  8582  		}
  8583  
  8584  		if len(resp.Data.Items) == 0 {
  8585  			return false, nil, nil
  8586  		}
  8587  
  8588  		iterator.nextPageToken = resp.Data.PageToken
  8589  		iterator.items = resp.Data.Items
  8590  		iterator.index = 0
  8591  	}
  8592  
  8593  	block := iterator.items[iterator.index]
  8594  	iterator.index++
  8595  	iterator.curlNum++
  8596  	return true, block, nil
  8597  }
  8598  
  8599  func (iterator *SearchDepartmentIterator) NextPageToken() *string {
  8600  	return iterator.nextPageToken
  8601  }
  8602  
  8603  type ListEmployeeTypeEnumIterator struct {
  8604  	nextPageToken *string
  8605  	items         []*EmployeeTypeEnum
  8606  	index         int
  8607  	limit         int
  8608  	ctx           context.Context
  8609  	req           *ListEmployeeTypeEnumReq
  8610  	listFunc      func(ctx context.Context, req *ListEmployeeTypeEnumReq, options ...larkcore.RequestOptionFunc) (*ListEmployeeTypeEnumResp, error)
  8611  	options       []larkcore.RequestOptionFunc
  8612  	curlNum       int
  8613  }
  8614  
  8615  func (iterator *ListEmployeeTypeEnumIterator) Next() (bool, *EmployeeTypeEnum, error) {
  8616  	// 达到最大量,则返回
  8617  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  8618  		return false, nil, nil
  8619  	}
  8620  
  8621  	// 为0则拉取数据
  8622  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  8623  		if iterator.index != 0 && iterator.nextPageToken == nil {
  8624  			return false, nil, nil
  8625  		}
  8626  		if iterator.nextPageToken != nil {
  8627  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  8628  		}
  8629  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  8630  		if err != nil {
  8631  			return false, nil, err
  8632  		}
  8633  
  8634  		if resp.Code != 0 {
  8635  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  8636  		}
  8637  
  8638  		if len(resp.Data.Items) == 0 {
  8639  			return false, nil, nil
  8640  		}
  8641  
  8642  		iterator.nextPageToken = resp.Data.PageToken
  8643  		iterator.items = resp.Data.Items
  8644  		iterator.index = 0
  8645  	}
  8646  
  8647  	block := iterator.items[iterator.index]
  8648  	iterator.index++
  8649  	iterator.curlNum++
  8650  	return true, block, nil
  8651  }
  8652  
  8653  func (iterator *ListEmployeeTypeEnumIterator) NextPageToken() *string {
  8654  	return iterator.nextPageToken
  8655  }
  8656  
  8657  type SimplelistGroupIterator struct {
  8658  	nextPageToken *string
  8659  	items         []*Group
  8660  	index         int
  8661  	limit         int
  8662  	ctx           context.Context
  8663  	req           *SimplelistGroupReq
  8664  	listFunc      func(ctx context.Context, req *SimplelistGroupReq, options ...larkcore.RequestOptionFunc) (*SimplelistGroupResp, error)
  8665  	options       []larkcore.RequestOptionFunc
  8666  	curlNum       int
  8667  }
  8668  
  8669  func (iterator *SimplelistGroupIterator) Next() (bool, *Group, error) {
  8670  	// 达到最大量,则返回
  8671  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  8672  		return false, nil, nil
  8673  	}
  8674  
  8675  	// 为0则拉取数据
  8676  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  8677  		if iterator.index != 0 && iterator.nextPageToken == nil {
  8678  			return false, nil, nil
  8679  		}
  8680  		if iterator.nextPageToken != nil {
  8681  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  8682  		}
  8683  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  8684  		if err != nil {
  8685  			return false, nil, err
  8686  		}
  8687  
  8688  		if resp.Code != 0 {
  8689  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  8690  		}
  8691  
  8692  		if len(resp.Data.Grouplist) == 0 {
  8693  			return false, nil, nil
  8694  		}
  8695  
  8696  		iterator.nextPageToken = resp.Data.PageToken
  8697  		iterator.items = resp.Data.Grouplist
  8698  		iterator.index = 0
  8699  	}
  8700  
  8701  	block := iterator.items[iterator.index]
  8702  	iterator.index++
  8703  	iterator.curlNum++
  8704  	return true, block, nil
  8705  }
  8706  
  8707  func (iterator *SimplelistGroupIterator) NextPageToken() *string {
  8708  	return iterator.nextPageToken
  8709  }
  8710  
  8711  type FindByDepartmentUserIterator struct {
  8712  	nextPageToken *string
  8713  	items         []*User
  8714  	index         int
  8715  	limit         int
  8716  	ctx           context.Context
  8717  	req           *FindByDepartmentUserReq
  8718  	listFunc      func(ctx context.Context, req *FindByDepartmentUserReq, options ...larkcore.RequestOptionFunc) (*FindByDepartmentUserResp, error)
  8719  	options       []larkcore.RequestOptionFunc
  8720  	curlNum       int
  8721  }
  8722  
  8723  func (iterator *FindByDepartmentUserIterator) Next() (bool, *User, error) {
  8724  	// 达到最大量,则返回
  8725  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  8726  		return false, nil, nil
  8727  	}
  8728  
  8729  	// 为0则拉取数据
  8730  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  8731  		if iterator.index != 0 && iterator.nextPageToken == nil {
  8732  			return false, nil, nil
  8733  		}
  8734  		if iterator.nextPageToken != nil {
  8735  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  8736  		}
  8737  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  8738  		if err != nil {
  8739  			return false, nil, err
  8740  		}
  8741  
  8742  		if resp.Code != 0 {
  8743  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  8744  		}
  8745  
  8746  		if len(resp.Data.Items) == 0 {
  8747  			return false, nil, nil
  8748  		}
  8749  
  8750  		iterator.nextPageToken = resp.Data.PageToken
  8751  		iterator.items = resp.Data.Items
  8752  		iterator.index = 0
  8753  	}
  8754  
  8755  	block := iterator.items[iterator.index]
  8756  	iterator.index++
  8757  	iterator.curlNum++
  8758  	return true, block, nil
  8759  }
  8760  
  8761  func (iterator *FindByDepartmentUserIterator) NextPageToken() *string {
  8762  	return iterator.nextPageToken
  8763  }
  8764  
  8765  type ListUserIterator struct {
  8766  	nextPageToken *string
  8767  	items         []*User
  8768  	index         int
  8769  	limit         int
  8770  	ctx           context.Context
  8771  	req           *ListUserReq
  8772  	listFunc      func(ctx context.Context, req *ListUserReq, options ...larkcore.RequestOptionFunc) (*ListUserResp, error)
  8773  	options       []larkcore.RequestOptionFunc
  8774  	curlNum       int
  8775  }
  8776  
  8777  func (iterator *ListUserIterator) Next() (bool, *User, error) {
  8778  	// 达到最大量,则返回
  8779  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  8780  		return false, nil, nil
  8781  	}
  8782  
  8783  	// 为0则拉取数据
  8784  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  8785  		if iterator.index != 0 && iterator.nextPageToken == nil {
  8786  			return false, nil, nil
  8787  		}
  8788  		if iterator.nextPageToken != nil {
  8789  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  8790  		}
  8791  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  8792  		if err != nil {
  8793  			return false, nil, err
  8794  		}
  8795  
  8796  		if resp.Code != 0 {
  8797  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  8798  		}
  8799  
  8800  		if len(resp.Data.Items) == 0 {
  8801  			return false, nil, nil
  8802  		}
  8803  
  8804  		iterator.nextPageToken = resp.Data.PageToken
  8805  		iterator.items = resp.Data.Items
  8806  		iterator.index = 0
  8807  	}
  8808  
  8809  	block := iterator.items[iterator.index]
  8810  	iterator.index++
  8811  	iterator.curlNum++
  8812  	return true, block, nil
  8813  }
  8814  
  8815  func (iterator *ListUserIterator) NextPageToken() *string {
  8816  	return iterator.nextPageToken
  8817  }