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 }