gitee.com/larksuite/oapi-sdk-go/v3@v3.0.3/service/admin/v1/model.go (about) 1 // Package admin 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 larkadmin 15 16 import ( 17 "io" 18 19 "bytes" 20 21 "fmt" 22 23 "context" 24 "errors" 25 26 "gitee.com/larksuite/oapi-sdk-go/v3/core" 27 ) 28 29 const ( 30 DepartmentIdTypeDepartmentId = "department_id" // 以自定义department_id来标识部门 31 DepartmentIdTypeOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门 32 ) 33 34 const ( 35 UserIdTypeUserId = "user_id" // 以user_id来识别用户 36 UserIdTypeUnionId = "union_id" // 以union_id来识别用户 37 UserIdTypeOpenId = "open_id" // 以open_id来识别用户 38 ) 39 40 const ( 41 DepartmentIdTypeListAdminUserStatDepartmentId = "department_id" // 以自定义department_id来标识部门 42 DepartmentIdTypeListAdminUserStatOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门 43 ) 44 45 const ( 46 GrantTypeManual = 0 // 手动选择有效期 47 GrantTypeJoinTime = 1 // 匹配系统入职时间 48 49 ) 50 51 const ( 52 UserIdTypeCreateBadgeGrantOpenId = "open_id" // 用户的open_id 53 UserIdTypeCreateBadgeGrantUnionId = "union_id" // 用户的union_id 54 UserIdTypeCreateBadgeGrantUserId = "user_id" // 用户的user_id 55 ) 56 57 const ( 58 DepartmentIdTypeCreateBadgeGrantDepartmentId = "department_id" // 以自定义department_id来标识部门 59 DepartmentIdTypeCreateBadgeGrantOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门 60 ) 61 62 const ( 63 UserIdTypeGetBadgeGrantOpenId = "open_id" // 用户的open_id 64 UserIdTypeGetBadgeGrantUnionId = "union_id" // 用户的union_id 65 UserIdTypeGetBadgeGrantUserId = "user_id" // 用户的user_id 66 ) 67 68 const ( 69 DepartmentIdTypeGetBadgeGrantDepartmentId = "department_id" // 以自定义department_id来标识部门 70 DepartmentIdTypeGetBadgeGrantOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门 71 ) 72 73 const ( 74 UserIdTypeListBadgeGrantOpenId = "open_id" // 用户的open_id 75 UserIdTypeListBadgeGrantUnionId = "union_id" // 用户的union_id 76 UserIdTypeListBadgeGrantUserId = "user_id" // 用户的user_id 77 ) 78 79 const ( 80 DepartmentIdTypeListBadgeGrantDepartmentId = "department_id" // 以自定义department_id来标识部门 81 DepartmentIdTypeListBadgeGrantOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门 82 ) 83 84 const ( 85 GrantTypeUpdateBadgeGrantManual = 0 // 手动选择有效期 86 GrantTypeUpdateBadgeGrantJoinTime = 1 // 匹配系统入职时间 87 88 ) 89 90 const ( 91 UserIdTypeUpdateBadgeGrantOpenId = "open_id" // 用户的open_id 92 UserIdTypeUpdateBadgeGrantUnionId = "union_id" // 用户的union_id 93 UserIdTypeUpdateBadgeGrantUserId = "user_id" // 用户的user_id 94 ) 95 96 const ( 97 DepartmentIdTypeUpdateBadgeGrantDepartmentId = "department_id" // 以自定义department_id来标识部门 98 DepartmentIdTypeUpdateBadgeGrantOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门 99 ) 100 101 const ( 102 ImageTypeDetail = 1 // 勋章详情图 103 ImageTypeShow = 2 // 勋章挂饰图 104 105 ) 106 107 const ( 108 UserIdTypeResetPasswordOpenId = "open_id" // open_id 109 UserIdTypeResetPasswordUnionId = "union_id" // union_id 110 UserIdTypeResetPasswordUserId = "user_id" // user_id 111 ) 112 113 type AdminDeptStat struct { 114 Date *string `json:"date,omitempty"` // 日期 115 DepartmentId *string `json:"department_id,omitempty"` // 部门的department_id 或者open_department_id 116 DepartmentName *string `json:"department_name,omitempty"` // 部门名字 117 DepartmentPath *string `json:"department_path,omitempty"` // 部门路径 118 TotalUserNum *int `json:"total_user_num,omitempty"` // 部门总人数 119 ActiveUserNum *int `json:"active_user_num,omitempty"` // 激活人数 120 ActiveUserRate *string `json:"active_user_rate,omitempty"` // 激活率 121 SuiteDau *int `json:"suite_dau,omitempty"` // 活跃人数 122 SuiteActiveRate *string `json:"suite_active_rate,omitempty"` // 活跃率 123 NewUserNum *int `json:"new_user_num,omitempty"` // 新用户数 124 NewActiveNum *int `json:"new_active_num,omitempty"` // 新激活数 125 ResignUserNum *int `json:"resign_user_num,omitempty"` // 离职人数 126 ImDau *int `json:"im_dau,omitempty"` // 消息活跃人数 127 SendMessengerUserNum *int `json:"send_messenger_user_num,omitempty"` // 发送消息人数 128 SendMessengerNum *int `json:"send_messenger_num,omitempty"` // 发送消息数 129 AvgSendMessengerNum *string `json:"avg_send_messenger_num,omitempty"` // 人均发送消息数 130 DocsDau *int `json:"docs_dau,omitempty"` // 云文档活跃人数 131 CreateDocsUserNum *int `json:"create_docs_user_num,omitempty"` // 创建文件人数 132 CreateDocsNum *int `json:"create_docs_num,omitempty"` // 创建文件数 133 AvgCreateDocsNum *string `json:"avg_create_docs_num,omitempty"` // 人均创建文件数 134 CalDau *int `json:"cal_dau,omitempty"` // 日历活跃人数 135 CreateCalUserNum *int `json:"create_cal_user_num,omitempty"` // 创建日程人数 136 CreateCalNum *int `json:"create_cal_num,omitempty"` // 创建日程数 137 AvgCreateCalNum *string `json:"avg_create_cal_num,omitempty"` // 人均创建日程数 138 VcDau *int `json:"vc_dau,omitempty"` // 音视频会议活跃人数 139 VcDuration *int `json:"vc_duration,omitempty"` // 会议时长(分钟) 140 AvgVcDuration *string `json:"avg_vc_duration,omitempty"` // 人均会议时长(分钟) 141 AvgDuration *string `json:"avg_duration,omitempty"` // 人均飞书使用时长(分钟) 142 TaskDau *int `json:"task_dau,omitempty"` // 任务活跃人数 143 CreateTaskUserNum *int `json:"create_task_user_num,omitempty"` // 创建任务人数 144 CreateTaskNum *int `json:"create_task_num,omitempty"` // 创建任务数 145 AvgCreateTaskNum *string `json:"avg_create_task_num,omitempty"` // 人均创建任务数 146 } 147 148 type AdminDeptStatBuilder struct { 149 date string // 日期 150 dateFlag bool 151 departmentId string // 部门的department_id 或者open_department_id 152 departmentIdFlag bool 153 departmentName string // 部门名字 154 departmentNameFlag bool 155 departmentPath string // 部门路径 156 departmentPathFlag bool 157 totalUserNum int // 部门总人数 158 totalUserNumFlag bool 159 activeUserNum int // 激活人数 160 activeUserNumFlag bool 161 activeUserRate string // 激活率 162 activeUserRateFlag bool 163 suiteDau int // 活跃人数 164 suiteDauFlag bool 165 suiteActiveRate string // 活跃率 166 suiteActiveRateFlag bool 167 newUserNum int // 新用户数 168 newUserNumFlag bool 169 newActiveNum int // 新激活数 170 newActiveNumFlag bool 171 resignUserNum int // 离职人数 172 resignUserNumFlag bool 173 imDau int // 消息活跃人数 174 imDauFlag bool 175 sendMessengerUserNum int // 发送消息人数 176 sendMessengerUserNumFlag bool 177 sendMessengerNum int // 发送消息数 178 sendMessengerNumFlag bool 179 avgSendMessengerNum string // 人均发送消息数 180 avgSendMessengerNumFlag bool 181 docsDau int // 云文档活跃人数 182 docsDauFlag bool 183 createDocsUserNum int // 创建文件人数 184 createDocsUserNumFlag bool 185 createDocsNum int // 创建文件数 186 createDocsNumFlag bool 187 avgCreateDocsNum string // 人均创建文件数 188 avgCreateDocsNumFlag bool 189 calDau int // 日历活跃人数 190 calDauFlag bool 191 createCalUserNum int // 创建日程人数 192 createCalUserNumFlag bool 193 createCalNum int // 创建日程数 194 createCalNumFlag bool 195 avgCreateCalNum string // 人均创建日程数 196 avgCreateCalNumFlag bool 197 vcDau int // 音视频会议活跃人数 198 vcDauFlag bool 199 vcDuration int // 会议时长(分钟) 200 vcDurationFlag bool 201 avgVcDuration string // 人均会议时长(分钟) 202 avgVcDurationFlag bool 203 avgDuration string // 人均飞书使用时长(分钟) 204 avgDurationFlag bool 205 taskDau int // 任务活跃人数 206 taskDauFlag bool 207 createTaskUserNum int // 创建任务人数 208 createTaskUserNumFlag bool 209 createTaskNum int // 创建任务数 210 createTaskNumFlag bool 211 avgCreateTaskNum string // 人均创建任务数 212 avgCreateTaskNumFlag bool 213 } 214 215 func NewAdminDeptStatBuilder() *AdminDeptStatBuilder { 216 builder := &AdminDeptStatBuilder{} 217 return builder 218 } 219 220 // 日期 221 // 222 // 示例值:2020-02-15 223 func (builder *AdminDeptStatBuilder) Date(date string) *AdminDeptStatBuilder { 224 builder.date = date 225 builder.dateFlag = true 226 return builder 227 } 228 229 // 部门的department_id 或者open_department_id 230 // 231 // 示例值:od-382e2793cfc9471f892e8a672987654c 232 func (builder *AdminDeptStatBuilder) DepartmentId(departmentId string) *AdminDeptStatBuilder { 233 builder.departmentId = departmentId 234 builder.departmentIdFlag = true 235 return builder 236 } 237 238 // 部门名字 239 // 240 // 示例值:subtestkkk 241 func (builder *AdminDeptStatBuilder) DepartmentName(departmentName string) *AdminDeptStatBuilder { 242 builder.departmentName = departmentName 243 builder.departmentNameFlag = true 244 return builder 245 } 246 247 // 部门路径 248 // 249 // 示例值:testkkk/subtestkkk 250 func (builder *AdminDeptStatBuilder) DepartmentPath(departmentPath string) *AdminDeptStatBuilder { 251 builder.departmentPath = departmentPath 252 builder.departmentPathFlag = true 253 return builder 254 } 255 256 // 部门总人数 257 // 258 // 示例值:2 259 func (builder *AdminDeptStatBuilder) TotalUserNum(totalUserNum int) *AdminDeptStatBuilder { 260 builder.totalUserNum = totalUserNum 261 builder.totalUserNumFlag = true 262 return builder 263 } 264 265 // 激活人数 266 // 267 // 示例值:0 268 func (builder *AdminDeptStatBuilder) ActiveUserNum(activeUserNum int) *AdminDeptStatBuilder { 269 builder.activeUserNum = activeUserNum 270 builder.activeUserNumFlag = true 271 return builder 272 } 273 274 // 激活率 275 // 276 // 示例值:1.00 277 func (builder *AdminDeptStatBuilder) ActiveUserRate(activeUserRate string) *AdminDeptStatBuilder { 278 builder.activeUserRate = activeUserRate 279 builder.activeUserRateFlag = true 280 return builder 281 } 282 283 // 活跃人数 284 // 285 // 示例值:0 286 func (builder *AdminDeptStatBuilder) SuiteDau(suiteDau int) *AdminDeptStatBuilder { 287 builder.suiteDau = suiteDau 288 builder.suiteDauFlag = true 289 return builder 290 } 291 292 // 活跃率 293 // 294 // 示例值:0.00 295 func (builder *AdminDeptStatBuilder) SuiteActiveRate(suiteActiveRate string) *AdminDeptStatBuilder { 296 builder.suiteActiveRate = suiteActiveRate 297 builder.suiteActiveRateFlag = true 298 return builder 299 } 300 301 // 新用户数 302 // 303 // 示例值:0 304 func (builder *AdminDeptStatBuilder) NewUserNum(newUserNum int) *AdminDeptStatBuilder { 305 builder.newUserNum = newUserNum 306 builder.newUserNumFlag = true 307 return builder 308 } 309 310 // 新激活数 311 // 312 // 示例值:0 313 func (builder *AdminDeptStatBuilder) NewActiveNum(newActiveNum int) *AdminDeptStatBuilder { 314 builder.newActiveNum = newActiveNum 315 builder.newActiveNumFlag = true 316 return builder 317 } 318 319 // 离职人数 320 // 321 // 示例值:0 322 func (builder *AdminDeptStatBuilder) ResignUserNum(resignUserNum int) *AdminDeptStatBuilder { 323 builder.resignUserNum = resignUserNum 324 builder.resignUserNumFlag = true 325 return builder 326 } 327 328 // 消息活跃人数 329 // 330 // 示例值:0 331 func (builder *AdminDeptStatBuilder) ImDau(imDau int) *AdminDeptStatBuilder { 332 builder.imDau = imDau 333 builder.imDauFlag = true 334 return builder 335 } 336 337 // 发送消息人数 338 // 339 // 示例值:0 340 func (builder *AdminDeptStatBuilder) SendMessengerUserNum(sendMessengerUserNum int) *AdminDeptStatBuilder { 341 builder.sendMessengerUserNum = sendMessengerUserNum 342 builder.sendMessengerUserNumFlag = true 343 return builder 344 } 345 346 // 发送消息数 347 // 348 // 示例值:0 349 func (builder *AdminDeptStatBuilder) SendMessengerNum(sendMessengerNum int) *AdminDeptStatBuilder { 350 builder.sendMessengerNum = sendMessengerNum 351 builder.sendMessengerNumFlag = true 352 return builder 353 } 354 355 // 人均发送消息数 356 // 357 // 示例值:0.00 358 func (builder *AdminDeptStatBuilder) AvgSendMessengerNum(avgSendMessengerNum string) *AdminDeptStatBuilder { 359 builder.avgSendMessengerNum = avgSendMessengerNum 360 builder.avgSendMessengerNumFlag = true 361 return builder 362 } 363 364 // 云文档活跃人数 365 // 366 // 示例值:0 367 func (builder *AdminDeptStatBuilder) DocsDau(docsDau int) *AdminDeptStatBuilder { 368 builder.docsDau = docsDau 369 builder.docsDauFlag = true 370 return builder 371 } 372 373 // 创建文件人数 374 // 375 // 示例值:0 376 func (builder *AdminDeptStatBuilder) CreateDocsUserNum(createDocsUserNum int) *AdminDeptStatBuilder { 377 builder.createDocsUserNum = createDocsUserNum 378 builder.createDocsUserNumFlag = true 379 return builder 380 } 381 382 // 创建文件数 383 // 384 // 示例值:0 385 func (builder *AdminDeptStatBuilder) CreateDocsNum(createDocsNum int) *AdminDeptStatBuilder { 386 builder.createDocsNum = createDocsNum 387 builder.createDocsNumFlag = true 388 return builder 389 } 390 391 // 人均创建文件数 392 // 393 // 示例值:0.00 394 func (builder *AdminDeptStatBuilder) AvgCreateDocsNum(avgCreateDocsNum string) *AdminDeptStatBuilder { 395 builder.avgCreateDocsNum = avgCreateDocsNum 396 builder.avgCreateDocsNumFlag = true 397 return builder 398 } 399 400 // 日历活跃人数 401 // 402 // 示例值:0 403 func (builder *AdminDeptStatBuilder) CalDau(calDau int) *AdminDeptStatBuilder { 404 builder.calDau = calDau 405 builder.calDauFlag = true 406 return builder 407 } 408 409 // 创建日程人数 410 // 411 // 示例值:0 412 func (builder *AdminDeptStatBuilder) CreateCalUserNum(createCalUserNum int) *AdminDeptStatBuilder { 413 builder.createCalUserNum = createCalUserNum 414 builder.createCalUserNumFlag = true 415 return builder 416 } 417 418 // 创建日程数 419 // 420 // 示例值:0 421 func (builder *AdminDeptStatBuilder) CreateCalNum(createCalNum int) *AdminDeptStatBuilder { 422 builder.createCalNum = createCalNum 423 builder.createCalNumFlag = true 424 return builder 425 } 426 427 // 人均创建日程数 428 // 429 // 示例值:0.00 430 func (builder *AdminDeptStatBuilder) AvgCreateCalNum(avgCreateCalNum string) *AdminDeptStatBuilder { 431 builder.avgCreateCalNum = avgCreateCalNum 432 builder.avgCreateCalNumFlag = true 433 return builder 434 } 435 436 // 音视频会议活跃人数 437 // 438 // 示例值:0 439 func (builder *AdminDeptStatBuilder) VcDau(vcDau int) *AdminDeptStatBuilder { 440 builder.vcDau = vcDau 441 builder.vcDauFlag = true 442 return builder 443 } 444 445 // 会议时长(分钟) 446 // 447 // 示例值:0 448 func (builder *AdminDeptStatBuilder) VcDuration(vcDuration int) *AdminDeptStatBuilder { 449 builder.vcDuration = vcDuration 450 builder.vcDurationFlag = true 451 return builder 452 } 453 454 // 人均会议时长(分钟) 455 // 456 // 示例值:0.00 457 func (builder *AdminDeptStatBuilder) AvgVcDuration(avgVcDuration string) *AdminDeptStatBuilder { 458 builder.avgVcDuration = avgVcDuration 459 builder.avgVcDurationFlag = true 460 return builder 461 } 462 463 // 人均飞书使用时长(分钟) 464 // 465 // 示例值:0.00 466 func (builder *AdminDeptStatBuilder) AvgDuration(avgDuration string) *AdminDeptStatBuilder { 467 builder.avgDuration = avgDuration 468 builder.avgDurationFlag = true 469 return builder 470 } 471 472 // 任务活跃人数 473 // 474 // 示例值:0 475 func (builder *AdminDeptStatBuilder) TaskDau(taskDau int) *AdminDeptStatBuilder { 476 builder.taskDau = taskDau 477 builder.taskDauFlag = true 478 return builder 479 } 480 481 // 创建任务人数 482 // 483 // 示例值:0 484 func (builder *AdminDeptStatBuilder) CreateTaskUserNum(createTaskUserNum int) *AdminDeptStatBuilder { 485 builder.createTaskUserNum = createTaskUserNum 486 builder.createTaskUserNumFlag = true 487 return builder 488 } 489 490 // 创建任务数 491 // 492 // 示例值:0 493 func (builder *AdminDeptStatBuilder) CreateTaskNum(createTaskNum int) *AdminDeptStatBuilder { 494 builder.createTaskNum = createTaskNum 495 builder.createTaskNumFlag = true 496 return builder 497 } 498 499 // 人均创建任务数 500 // 501 // 示例值:0.00 502 func (builder *AdminDeptStatBuilder) AvgCreateTaskNum(avgCreateTaskNum string) *AdminDeptStatBuilder { 503 builder.avgCreateTaskNum = avgCreateTaskNum 504 builder.avgCreateTaskNumFlag = true 505 return builder 506 } 507 508 func (builder *AdminDeptStatBuilder) Build() *AdminDeptStat { 509 req := &AdminDeptStat{} 510 if builder.dateFlag { 511 req.Date = &builder.date 512 513 } 514 if builder.departmentIdFlag { 515 req.DepartmentId = &builder.departmentId 516 517 } 518 if builder.departmentNameFlag { 519 req.DepartmentName = &builder.departmentName 520 521 } 522 if builder.departmentPathFlag { 523 req.DepartmentPath = &builder.departmentPath 524 525 } 526 if builder.totalUserNumFlag { 527 req.TotalUserNum = &builder.totalUserNum 528 529 } 530 if builder.activeUserNumFlag { 531 req.ActiveUserNum = &builder.activeUserNum 532 533 } 534 if builder.activeUserRateFlag { 535 req.ActiveUserRate = &builder.activeUserRate 536 537 } 538 if builder.suiteDauFlag { 539 req.SuiteDau = &builder.suiteDau 540 541 } 542 if builder.suiteActiveRateFlag { 543 req.SuiteActiveRate = &builder.suiteActiveRate 544 545 } 546 if builder.newUserNumFlag { 547 req.NewUserNum = &builder.newUserNum 548 549 } 550 if builder.newActiveNumFlag { 551 req.NewActiveNum = &builder.newActiveNum 552 553 } 554 if builder.resignUserNumFlag { 555 req.ResignUserNum = &builder.resignUserNum 556 557 } 558 if builder.imDauFlag { 559 req.ImDau = &builder.imDau 560 561 } 562 if builder.sendMessengerUserNumFlag { 563 req.SendMessengerUserNum = &builder.sendMessengerUserNum 564 565 } 566 if builder.sendMessengerNumFlag { 567 req.SendMessengerNum = &builder.sendMessengerNum 568 569 } 570 if builder.avgSendMessengerNumFlag { 571 req.AvgSendMessengerNum = &builder.avgSendMessengerNum 572 573 } 574 if builder.docsDauFlag { 575 req.DocsDau = &builder.docsDau 576 577 } 578 if builder.createDocsUserNumFlag { 579 req.CreateDocsUserNum = &builder.createDocsUserNum 580 581 } 582 if builder.createDocsNumFlag { 583 req.CreateDocsNum = &builder.createDocsNum 584 585 } 586 if builder.avgCreateDocsNumFlag { 587 req.AvgCreateDocsNum = &builder.avgCreateDocsNum 588 589 } 590 if builder.calDauFlag { 591 req.CalDau = &builder.calDau 592 593 } 594 if builder.createCalUserNumFlag { 595 req.CreateCalUserNum = &builder.createCalUserNum 596 597 } 598 if builder.createCalNumFlag { 599 req.CreateCalNum = &builder.createCalNum 600 601 } 602 if builder.avgCreateCalNumFlag { 603 req.AvgCreateCalNum = &builder.avgCreateCalNum 604 605 } 606 if builder.vcDauFlag { 607 req.VcDau = &builder.vcDau 608 609 } 610 if builder.vcDurationFlag { 611 req.VcDuration = &builder.vcDuration 612 613 } 614 if builder.avgVcDurationFlag { 615 req.AvgVcDuration = &builder.avgVcDuration 616 617 } 618 if builder.avgDurationFlag { 619 req.AvgDuration = &builder.avgDuration 620 621 } 622 if builder.taskDauFlag { 623 req.TaskDau = &builder.taskDau 624 625 } 626 if builder.createTaskUserNumFlag { 627 req.CreateTaskUserNum = &builder.createTaskUserNum 628 629 } 630 if builder.createTaskNumFlag { 631 req.CreateTaskNum = &builder.createTaskNum 632 633 } 634 if builder.avgCreateTaskNumFlag { 635 req.AvgCreateTaskNum = &builder.avgCreateTaskNum 636 637 } 638 return req 639 } 640 641 type AdminUserStat struct { 642 Date *string `json:"date,omitempty"` // 日期 643 UserId *string `json:"user_id,omitempty"` // 用户ID 644 UserName *string `json:"user_name,omitempty"` // 用户名 645 DepartmentName *string `json:"department_name,omitempty"` // 部门名 646 DepartmentPath *string `json:"department_path,omitempty"` // 部门路径 647 CreateTime *string `json:"create_time,omitempty"` // 账号创建时间 648 UserActiveFlag *int `json:"user_active_flag,omitempty"` // 用户激活状态 649 RegisterTime *string `json:"register_time,omitempty"` // 激活时间 650 SuiteActiveFlag *int `json:"suite_active_flag,omitempty"` // 用户活跃状态,用户在飞书套件任意应用登陆,即为活跃。包括飞书即时消息,文档,日历,会议,开放平台等 651 LastActiveTime *string `json:"last_active_time,omitempty"` // 最近活跃时间 652 ImActiveFlag *int `json:"im_active_flag,omitempty"` // 用户消息活跃状态,发生过如下事件,则认为该用户消息活跃:;发送消息、回复消息、reaction、转发消息、阅读消息、查看会话、发送表情消息等 653 SendMessengerNum *int `json:"send_messenger_num,omitempty"` // 发送消息数 654 DocsActiveFlag *int `json:"docs_active_flag,omitempty"` // 用户云文档活跃状态,"发生过如下事件,则认为该用户云文档活跃: ;事件1:文档/文件打开;事件2:进入docs相关页面:如文档详情页,space的各个页面" 655 CreateDocsNum *int `json:"create_docs_num,omitempty"` // 创建文件数 656 CalActiveFlag *int `json:"cal_active_flag,omitempty"` // 用户日历活跃状态,发生过如下事件,则认为用户日历活跃,包含进入日历、创建日程、收到日程邀请等 657 CreateCalNum *int `json:"create_cal_num,omitempty"` // 创建日程数 658 VcActiveFlag *int `json:"vc_active_flag,omitempty"` // 用户音视频会议活跃状态,用户进入会中状态(不包含妙计和直播)即为活跃 659 VcDuration *int `json:"vc_duration,omitempty"` // 会议时长 660 ActiveOs *string `json:"active_os,omitempty"` // 活跃设备 661 CreateTaskNum *int `json:"create_task_num,omitempty"` // 创建任务数 662 VcNum *int `json:"vc_num,omitempty"` // 会议数 663 AppPackageType *string `json:"app_package_type,omitempty"` // 飞书的应用类型名称 664 OsName *string `json:"os_name,omitempty"` // 操作系统名称 665 } 666 667 type AdminUserStatBuilder struct { 668 date string // 日期 669 dateFlag bool 670 userId string // 用户ID 671 userIdFlag bool 672 userName string // 用户名 673 userNameFlag bool 674 departmentName string // 部门名 675 departmentNameFlag bool 676 departmentPath string // 部门路径 677 departmentPathFlag bool 678 createTime string // 账号创建时间 679 createTimeFlag bool 680 userActiveFlag int // 用户激活状态 681 userActiveFlagFlag bool 682 registerTime string // 激活时间 683 registerTimeFlag bool 684 suiteActiveFlag int // 用户活跃状态,用户在飞书套件任意应用登陆,即为活跃。包括飞书即时消息,文档,日历,会议,开放平台等 685 suiteActiveFlagFlag bool 686 lastActiveTime string // 最近活跃时间 687 lastActiveTimeFlag bool 688 imActiveFlag int // 用户消息活跃状态,发生过如下事件,则认为该用户消息活跃:;发送消息、回复消息、reaction、转发消息、阅读消息、查看会话、发送表情消息等 689 imActiveFlagFlag bool 690 sendMessengerNum int // 发送消息数 691 sendMessengerNumFlag bool 692 docsActiveFlag int // 用户云文档活跃状态,"发生过如下事件,则认为该用户云文档活跃: ;事件1:文档/文件打开;事件2:进入docs相关页面:如文档详情页,space的各个页面" 693 docsActiveFlagFlag bool 694 createDocsNum int // 创建文件数 695 createDocsNumFlag bool 696 calActiveFlag int // 用户日历活跃状态,发生过如下事件,则认为用户日历活跃,包含进入日历、创建日程、收到日程邀请等 697 calActiveFlagFlag bool 698 createCalNum int // 创建日程数 699 createCalNumFlag bool 700 vcActiveFlag int // 用户音视频会议活跃状态,用户进入会中状态(不包含妙计和直播)即为活跃 701 vcActiveFlagFlag bool 702 vcDuration int // 会议时长 703 vcDurationFlag bool 704 activeOs string // 活跃设备 705 activeOsFlag bool 706 createTaskNum int // 创建任务数 707 createTaskNumFlag bool 708 vcNum int // 会议数 709 vcNumFlag bool 710 appPackageType string // 飞书的应用类型名称 711 appPackageTypeFlag bool 712 osName string // 操作系统名称 713 osNameFlag bool 714 } 715 716 func NewAdminUserStatBuilder() *AdminUserStatBuilder { 717 builder := &AdminUserStatBuilder{} 718 return builder 719 } 720 721 // 日期 722 // 723 // 示例值:2020-02-15 724 func (builder *AdminUserStatBuilder) Date(date string) *AdminUserStatBuilder { 725 builder.date = date 726 builder.dateFlag = true 727 return builder 728 } 729 730 // 用户ID 731 // 732 // 示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62 733 func (builder *AdminUserStatBuilder) UserId(userId string) *AdminUserStatBuilder { 734 builder.userId = userId 735 builder.userIdFlag = true 736 return builder 737 } 738 739 // 用户名 740 // 741 // 示例值:Zhang San 742 func (builder *AdminUserStatBuilder) UserName(userName string) *AdminUserStatBuilder { 743 builder.userName = userName 744 builder.userNameFlag = true 745 return builder 746 } 747 748 // 部门名 749 // 750 // 示例值:testcqlbfaaasdasdasd 751 func (builder *AdminUserStatBuilder) DepartmentName(departmentName string) *AdminUserStatBuilder { 752 builder.departmentName = departmentName 753 builder.departmentNameFlag = true 754 return builder 755 } 756 757 // 部门路径 758 // 759 // 示例值:testkkk/testcqlbfaaasdasdasd 760 func (builder *AdminUserStatBuilder) DepartmentPath(departmentPath string) *AdminUserStatBuilder { 761 builder.departmentPath = departmentPath 762 builder.departmentPathFlag = true 763 return builder 764 } 765 766 // 账号创建时间 767 // 768 // 示例值:2020-09-04 11:17:55 769 func (builder *AdminUserStatBuilder) CreateTime(createTime string) *AdminUserStatBuilder { 770 builder.createTime = createTime 771 builder.createTimeFlag = true 772 return builder 773 } 774 775 // 用户激活状态 776 // 777 // 示例值:1 778 func (builder *AdminUserStatBuilder) UserActiveFlag(userActiveFlag int) *AdminUserStatBuilder { 779 builder.userActiveFlag = userActiveFlag 780 builder.userActiveFlagFlag = true 781 return builder 782 } 783 784 // 激活时间 785 // 786 // 示例值:2020-09-04 11:18:32 787 func (builder *AdminUserStatBuilder) RegisterTime(registerTime string) *AdminUserStatBuilder { 788 builder.registerTime = registerTime 789 builder.registerTimeFlag = true 790 return builder 791 } 792 793 // 用户活跃状态,用户在飞书套件任意应用登陆,即为活跃。包括飞书即时消息,文档,日历,会议,开放平台等 794 // 795 // 示例值:1 796 func (builder *AdminUserStatBuilder) SuiteActiveFlag(suiteActiveFlag int) *AdminUserStatBuilder { 797 builder.suiteActiveFlag = suiteActiveFlag 798 builder.suiteActiveFlagFlag = true 799 return builder 800 } 801 802 // 最近活跃时间 803 // 804 // 示例值:2020-12-21 22:21:28 805 func (builder *AdminUserStatBuilder) LastActiveTime(lastActiveTime string) *AdminUserStatBuilder { 806 builder.lastActiveTime = lastActiveTime 807 builder.lastActiveTimeFlag = true 808 return builder 809 } 810 811 // 用户消息活跃状态,发生过如下事件,则认为该用户消息活跃:;发送消息、回复消息、reaction、转发消息、阅读消息、查看会话、发送表情消息等 812 // 813 // 示例值:1 814 func (builder *AdminUserStatBuilder) ImActiveFlag(imActiveFlag int) *AdminUserStatBuilder { 815 builder.imActiveFlag = imActiveFlag 816 builder.imActiveFlagFlag = true 817 return builder 818 } 819 820 // 发送消息数 821 // 822 // 示例值:0 823 func (builder *AdminUserStatBuilder) SendMessengerNum(sendMessengerNum int) *AdminUserStatBuilder { 824 builder.sendMessengerNum = sendMessengerNum 825 builder.sendMessengerNumFlag = true 826 return builder 827 } 828 829 // 用户云文档活跃状态,"发生过如下事件,则认为该用户云文档活跃: ;事件1:文档/文件打开;事件2:进入docs相关页面:如文档详情页,space的各个页面" 830 // 831 // 示例值:1 832 func (builder *AdminUserStatBuilder) DocsActiveFlag(docsActiveFlag int) *AdminUserStatBuilder { 833 builder.docsActiveFlag = docsActiveFlag 834 builder.docsActiveFlagFlag = true 835 return builder 836 } 837 838 // 创建文件数 839 // 840 // 示例值:1 841 func (builder *AdminUserStatBuilder) CreateDocsNum(createDocsNum int) *AdminUserStatBuilder { 842 builder.createDocsNum = createDocsNum 843 builder.createDocsNumFlag = true 844 return builder 845 } 846 847 // 用户日历活跃状态,发生过如下事件,则认为用户日历活跃,包含进入日历、创建日程、收到日程邀请等 848 // 849 // 示例值:1 850 func (builder *AdminUserStatBuilder) CalActiveFlag(calActiveFlag int) *AdminUserStatBuilder { 851 builder.calActiveFlag = calActiveFlag 852 builder.calActiveFlagFlag = true 853 return builder 854 } 855 856 // 创建日程数 857 // 858 // 示例值:0 859 func (builder *AdminUserStatBuilder) CreateCalNum(createCalNum int) *AdminUserStatBuilder { 860 builder.createCalNum = createCalNum 861 builder.createCalNumFlag = true 862 return builder 863 } 864 865 // 用户音视频会议活跃状态,用户进入会中状态(不包含妙计和直播)即为活跃 866 // 867 // 示例值:1 868 func (builder *AdminUserStatBuilder) VcActiveFlag(vcActiveFlag int) *AdminUserStatBuilder { 869 builder.vcActiveFlag = vcActiveFlag 870 builder.vcActiveFlagFlag = true 871 return builder 872 } 873 874 // 会议时长 875 // 876 // 示例值:0 877 func (builder *AdminUserStatBuilder) VcDuration(vcDuration int) *AdminUserStatBuilder { 878 builder.vcDuration = vcDuration 879 builder.vcDurationFlag = true 880 return builder 881 } 882 883 // 活跃设备 884 // 885 // 示例值:'ios 14.2,-','ios 14.2,feishu 3.40.0-alpha' 886 func (builder *AdminUserStatBuilder) ActiveOs(activeOs string) *AdminUserStatBuilder { 887 builder.activeOs = activeOs 888 builder.activeOsFlag = true 889 return builder 890 } 891 892 // 创建任务数 893 // 894 // 示例值:0 895 func (builder *AdminUserStatBuilder) CreateTaskNum(createTaskNum int) *AdminUserStatBuilder { 896 builder.createTaskNum = createTaskNum 897 builder.createTaskNumFlag = true 898 return builder 899 } 900 901 // 会议数 902 // 903 // 示例值:0 904 func (builder *AdminUserStatBuilder) VcNum(vcNum int) *AdminUserStatBuilder { 905 builder.vcNum = vcNum 906 builder.vcNumFlag = true 907 return builder 908 } 909 910 // 飞书的应用类型名称 911 // 912 // 示例值: 913 func (builder *AdminUserStatBuilder) AppPackageType(appPackageType string) *AdminUserStatBuilder { 914 builder.appPackageType = appPackageType 915 builder.appPackageTypeFlag = true 916 return builder 917 } 918 919 // 操作系统名称 920 // 921 // 示例值: 922 func (builder *AdminUserStatBuilder) OsName(osName string) *AdminUserStatBuilder { 923 builder.osName = osName 924 builder.osNameFlag = true 925 return builder 926 } 927 928 func (builder *AdminUserStatBuilder) Build() *AdminUserStat { 929 req := &AdminUserStat{} 930 if builder.dateFlag { 931 req.Date = &builder.date 932 933 } 934 if builder.userIdFlag { 935 req.UserId = &builder.userId 936 937 } 938 if builder.userNameFlag { 939 req.UserName = &builder.userName 940 941 } 942 if builder.departmentNameFlag { 943 req.DepartmentName = &builder.departmentName 944 945 } 946 if builder.departmentPathFlag { 947 req.DepartmentPath = &builder.departmentPath 948 949 } 950 if builder.createTimeFlag { 951 req.CreateTime = &builder.createTime 952 953 } 954 if builder.userActiveFlagFlag { 955 req.UserActiveFlag = &builder.userActiveFlag 956 957 } 958 if builder.registerTimeFlag { 959 req.RegisterTime = &builder.registerTime 960 961 } 962 if builder.suiteActiveFlagFlag { 963 req.SuiteActiveFlag = &builder.suiteActiveFlag 964 965 } 966 if builder.lastActiveTimeFlag { 967 req.LastActiveTime = &builder.lastActiveTime 968 969 } 970 if builder.imActiveFlagFlag { 971 req.ImActiveFlag = &builder.imActiveFlag 972 973 } 974 if builder.sendMessengerNumFlag { 975 req.SendMessengerNum = &builder.sendMessengerNum 976 977 } 978 if builder.docsActiveFlagFlag { 979 req.DocsActiveFlag = &builder.docsActiveFlag 980 981 } 982 if builder.createDocsNumFlag { 983 req.CreateDocsNum = &builder.createDocsNum 984 985 } 986 if builder.calActiveFlagFlag { 987 req.CalActiveFlag = &builder.calActiveFlag 988 989 } 990 if builder.createCalNumFlag { 991 req.CreateCalNum = &builder.createCalNum 992 993 } 994 if builder.vcActiveFlagFlag { 995 req.VcActiveFlag = &builder.vcActiveFlag 996 997 } 998 if builder.vcDurationFlag { 999 req.VcDuration = &builder.vcDuration 1000 1001 } 1002 if builder.activeOsFlag { 1003 req.ActiveOs = &builder.activeOs 1004 1005 } 1006 if builder.createTaskNumFlag { 1007 req.CreateTaskNum = &builder.createTaskNum 1008 1009 } 1010 if builder.vcNumFlag { 1011 req.VcNum = &builder.vcNum 1012 1013 } 1014 if builder.appPackageTypeFlag { 1015 req.AppPackageType = &builder.appPackageType 1016 1017 } 1018 if builder.osNameFlag { 1019 req.OsName = &builder.osName 1020 1021 } 1022 return req 1023 } 1024 1025 type Administrator struct { 1026 UserId *string `json:"user_id,omitempty"` // 1027 IsSuperAdministrator *bool `json:"is_super_administrator,omitempty"` // 用户是否是超级管理员 1028 IsAdministrator *bool `json:"is_administrator,omitempty"` // 用户是否是管理员 1029 } 1030 1031 type AdministratorBuilder struct { 1032 userId string // 1033 userIdFlag bool 1034 isSuperAdministrator bool // 用户是否是超级管理员 1035 isSuperAdministratorFlag bool 1036 isAdministrator bool // 用户是否是管理员 1037 isAdministratorFlag bool 1038 } 1039 1040 func NewAdministratorBuilder() *AdministratorBuilder { 1041 builder := &AdministratorBuilder{} 1042 return builder 1043 } 1044 1045 // 1046 // 1047 // 示例值: 1048 func (builder *AdministratorBuilder) UserId(userId string) *AdministratorBuilder { 1049 builder.userId = userId 1050 builder.userIdFlag = true 1051 return builder 1052 } 1053 1054 // 用户是否是超级管理员 1055 // 1056 // 示例值: 1057 func (builder *AdministratorBuilder) IsSuperAdministrator(isSuperAdministrator bool) *AdministratorBuilder { 1058 builder.isSuperAdministrator = isSuperAdministrator 1059 builder.isSuperAdministratorFlag = true 1060 return builder 1061 } 1062 1063 // 用户是否是管理员 1064 // 1065 // 示例值: 1066 func (builder *AdministratorBuilder) IsAdministrator(isAdministrator bool) *AdministratorBuilder { 1067 builder.isAdministrator = isAdministrator 1068 builder.isAdministratorFlag = true 1069 return builder 1070 } 1071 1072 func (builder *AdministratorBuilder) Build() *Administrator { 1073 req := &Administrator{} 1074 if builder.userIdFlag { 1075 req.UserId = &builder.userId 1076 1077 } 1078 if builder.isSuperAdministratorFlag { 1079 req.IsSuperAdministrator = &builder.isSuperAdministrator 1080 1081 } 1082 if builder.isAdministratorFlag { 1083 req.IsAdministrator = &builder.isAdministrator 1084 1085 } 1086 return req 1087 } 1088 1089 type ApiAuditCommonDrawers struct { 1090 CommonDrawInfoList []*ApiAuditDrawerInfo `json:"common_draw_info_list,omitempty"` // 扩展字段信息 1091 } 1092 1093 type ApiAuditCommonDrawersBuilder struct { 1094 commonDrawInfoList []*ApiAuditDrawerInfo // 扩展字段信息 1095 commonDrawInfoListFlag bool 1096 } 1097 1098 func NewApiAuditCommonDrawersBuilder() *ApiAuditCommonDrawersBuilder { 1099 builder := &ApiAuditCommonDrawersBuilder{} 1100 return builder 1101 } 1102 1103 // 扩展字段信息 1104 // 1105 // 示例值: 1106 func (builder *ApiAuditCommonDrawersBuilder) CommonDrawInfoList(commonDrawInfoList []*ApiAuditDrawerInfo) *ApiAuditCommonDrawersBuilder { 1107 builder.commonDrawInfoList = commonDrawInfoList 1108 builder.commonDrawInfoListFlag = true 1109 return builder 1110 } 1111 1112 func (builder *ApiAuditCommonDrawersBuilder) Build() *ApiAuditCommonDrawers { 1113 req := &ApiAuditCommonDrawers{} 1114 if builder.commonDrawInfoListFlag { 1115 req.CommonDrawInfoList = builder.commonDrawInfoList 1116 } 1117 return req 1118 } 1119 1120 type ApiAuditDrawerInfo struct { 1121 InfoKey *string `json:"info_key,omitempty"` // key信息 1122 InfoVal *string `json:"info_val,omitempty"` // val值 1123 KeyI18nKey *string `json:"key_i18n_key,omitempty"` // key对应的i18nkey 1124 ValType *string `json:"val_type,omitempty"` // val类型 1125 ValI18nKey *string `json:"val_i18n_key,omitempty"` // val对应的i18nkey 1126 } 1127 1128 type ApiAuditDrawerInfoBuilder struct { 1129 infoKey string // key信息 1130 infoKeyFlag bool 1131 infoVal string // val值 1132 infoValFlag bool 1133 keyI18nKey string // key对应的i18nkey 1134 keyI18nKeyFlag bool 1135 valType string // val类型 1136 valTypeFlag bool 1137 valI18nKey string // val对应的i18nkey 1138 valI18nKeyFlag bool 1139 } 1140 1141 func NewApiAuditDrawerInfoBuilder() *ApiAuditDrawerInfoBuilder { 1142 builder := &ApiAuditDrawerInfoBuilder{} 1143 return builder 1144 } 1145 1146 // key信息 1147 // 1148 // 示例值: 1149 func (builder *ApiAuditDrawerInfoBuilder) InfoKey(infoKey string) *ApiAuditDrawerInfoBuilder { 1150 builder.infoKey = infoKey 1151 builder.infoKeyFlag = true 1152 return builder 1153 } 1154 1155 // val值 1156 // 1157 // 示例值: 1158 func (builder *ApiAuditDrawerInfoBuilder) InfoVal(infoVal string) *ApiAuditDrawerInfoBuilder { 1159 builder.infoVal = infoVal 1160 builder.infoValFlag = true 1161 return builder 1162 } 1163 1164 // key对应的i18nkey 1165 // 1166 // 示例值: 1167 func (builder *ApiAuditDrawerInfoBuilder) KeyI18nKey(keyI18nKey string) *ApiAuditDrawerInfoBuilder { 1168 builder.keyI18nKey = keyI18nKey 1169 builder.keyI18nKeyFlag = true 1170 return builder 1171 } 1172 1173 // val类型 1174 // 1175 // 示例值: 1176 func (builder *ApiAuditDrawerInfoBuilder) ValType(valType string) *ApiAuditDrawerInfoBuilder { 1177 builder.valType = valType 1178 builder.valTypeFlag = true 1179 return builder 1180 } 1181 1182 // val对应的i18nkey 1183 // 1184 // 示例值: 1185 func (builder *ApiAuditDrawerInfoBuilder) ValI18nKey(valI18nKey string) *ApiAuditDrawerInfoBuilder { 1186 builder.valI18nKey = valI18nKey 1187 builder.valI18nKeyFlag = true 1188 return builder 1189 } 1190 1191 func (builder *ApiAuditDrawerInfoBuilder) Build() *ApiAuditDrawerInfo { 1192 req := &ApiAuditDrawerInfo{} 1193 if builder.infoKeyFlag { 1194 req.InfoKey = &builder.infoKey 1195 1196 } 1197 if builder.infoValFlag { 1198 req.InfoVal = &builder.infoVal 1199 1200 } 1201 if builder.keyI18nKeyFlag { 1202 req.KeyI18nKey = &builder.keyI18nKey 1203 1204 } 1205 if builder.valTypeFlag { 1206 req.ValType = &builder.valType 1207 1208 } 1209 if builder.valI18nKeyFlag { 1210 req.ValI18nKey = &builder.valI18nKey 1211 1212 } 1213 return req 1214 } 1215 1216 type AuditAndroidContext struct { 1217 Udid *string `json:"udid,omitempty"` // UDID 1218 Did *string `json:"did,omitempty"` // 设备ID 1219 AppVer *string `json:"app_ver,omitempty"` // app的版本 1220 Ver *string `json:"ver,omitempty"` // SecSDK版本 1221 Region *string `json:"region,omitempty"` // 设备语言 1222 IdI *string `json:"id_i,omitempty"` // 安卓版本号 1223 IdR *string `json:"id_r,omitempty"` // 安卓版本 1224 HwBrand *string `json:"hw_brand,omitempty"` // Brand 1225 HwManuf *string `json:"hw_manuf,omitempty"` // 制造商 1226 Wifip *string `json:"wifip,omitempty"` // wifi ip 1227 RouteIip *string `json:"route_iip,omitempty"` // 路由IP 1228 RouteGip *string `json:"route_gip,omitempty"` // 路由网关IP 1229 EnvSu *string `json:"env_su,omitempty"` // 表示当前是否root 1230 EnvTz *string `json:"env_tz,omitempty"` // 手机系统时区 1231 EnvMl *string `json:"env_ml,omitempty"` // 手机系统语言 1232 Location *string `json:"location,omitempty"` // GPS经纬度 1233 ActiveIp *string `json:"active_ip,omitempty"` // 当前设备活跃ip 1234 ActiveIpDetail *string `json:"active_ip_detail,omitempty"` // 当前设备活跃ip对应网卡类型 1235 CellBaseStation *string `json:"cell_base_station,omitempty"` // 基站信息 1236 IP *string `json:"IP,omitempty"` // 公网ip 1237 } 1238 1239 type AuditAndroidContextBuilder struct { 1240 udid string // UDID 1241 udidFlag bool 1242 did string // 设备ID 1243 didFlag bool 1244 appVer string // app的版本 1245 appVerFlag bool 1246 ver string // SecSDK版本 1247 verFlag bool 1248 region string // 设备语言 1249 regionFlag bool 1250 idI string // 安卓版本号 1251 idIFlag bool 1252 idR string // 安卓版本 1253 idRFlag bool 1254 hwBrand string // Brand 1255 hwBrandFlag bool 1256 hwManuf string // 制造商 1257 hwManufFlag bool 1258 wifip string // wifi ip 1259 wifipFlag bool 1260 routeIip string // 路由IP 1261 routeIipFlag bool 1262 routeGip string // 路由网关IP 1263 routeGipFlag bool 1264 envSu string // 表示当前是否root 1265 envSuFlag bool 1266 envTz string // 手机系统时区 1267 envTzFlag bool 1268 envMl string // 手机系统语言 1269 envMlFlag bool 1270 location string // GPS经纬度 1271 locationFlag bool 1272 activeIp string // 当前设备活跃ip 1273 activeIpFlag bool 1274 activeIpDetail string // 当前设备活跃ip对应网卡类型 1275 activeIpDetailFlag bool 1276 cellBaseStation string // 基站信息 1277 cellBaseStationFlag bool 1278 iP string // 公网ip 1279 iPFlag bool 1280 } 1281 1282 func NewAuditAndroidContextBuilder() *AuditAndroidContextBuilder { 1283 builder := &AuditAndroidContextBuilder{} 1284 return builder 1285 } 1286 1287 // UDID 1288 // 1289 // 示例值: 1290 func (builder *AuditAndroidContextBuilder) Udid(udid string) *AuditAndroidContextBuilder { 1291 builder.udid = udid 1292 builder.udidFlag = true 1293 return builder 1294 } 1295 1296 // 设备ID 1297 // 1298 // 示例值: 1299 func (builder *AuditAndroidContextBuilder) Did(did string) *AuditAndroidContextBuilder { 1300 builder.did = did 1301 builder.didFlag = true 1302 return builder 1303 } 1304 1305 // app的版本 1306 // 1307 // 示例值: 1308 func (builder *AuditAndroidContextBuilder) AppVer(appVer string) *AuditAndroidContextBuilder { 1309 builder.appVer = appVer 1310 builder.appVerFlag = true 1311 return builder 1312 } 1313 1314 // SecSDK版本 1315 // 1316 // 示例值: 1317 func (builder *AuditAndroidContextBuilder) Ver(ver string) *AuditAndroidContextBuilder { 1318 builder.ver = ver 1319 builder.verFlag = true 1320 return builder 1321 } 1322 1323 // 设备语言 1324 // 1325 // 示例值: 1326 func (builder *AuditAndroidContextBuilder) Region(region string) *AuditAndroidContextBuilder { 1327 builder.region = region 1328 builder.regionFlag = true 1329 return builder 1330 } 1331 1332 // 安卓版本号 1333 // 1334 // 示例值: 1335 func (builder *AuditAndroidContextBuilder) IdI(idI string) *AuditAndroidContextBuilder { 1336 builder.idI = idI 1337 builder.idIFlag = true 1338 return builder 1339 } 1340 1341 // 安卓版本 1342 // 1343 // 示例值: 1344 func (builder *AuditAndroidContextBuilder) IdR(idR string) *AuditAndroidContextBuilder { 1345 builder.idR = idR 1346 builder.idRFlag = true 1347 return builder 1348 } 1349 1350 // Brand 1351 // 1352 // 示例值: 1353 func (builder *AuditAndroidContextBuilder) HwBrand(hwBrand string) *AuditAndroidContextBuilder { 1354 builder.hwBrand = hwBrand 1355 builder.hwBrandFlag = true 1356 return builder 1357 } 1358 1359 // 制造商 1360 // 1361 // 示例值: 1362 func (builder *AuditAndroidContextBuilder) HwManuf(hwManuf string) *AuditAndroidContextBuilder { 1363 builder.hwManuf = hwManuf 1364 builder.hwManufFlag = true 1365 return builder 1366 } 1367 1368 // wifi ip 1369 // 1370 // 示例值: 1371 func (builder *AuditAndroidContextBuilder) Wifip(wifip string) *AuditAndroidContextBuilder { 1372 builder.wifip = wifip 1373 builder.wifipFlag = true 1374 return builder 1375 } 1376 1377 // 路由IP 1378 // 1379 // 示例值: 1380 func (builder *AuditAndroidContextBuilder) RouteIip(routeIip string) *AuditAndroidContextBuilder { 1381 builder.routeIip = routeIip 1382 builder.routeIipFlag = true 1383 return builder 1384 } 1385 1386 // 路由网关IP 1387 // 1388 // 示例值: 1389 func (builder *AuditAndroidContextBuilder) RouteGip(routeGip string) *AuditAndroidContextBuilder { 1390 builder.routeGip = routeGip 1391 builder.routeGipFlag = true 1392 return builder 1393 } 1394 1395 // 表示当前是否root 1396 // 1397 // 示例值: 1398 func (builder *AuditAndroidContextBuilder) EnvSu(envSu string) *AuditAndroidContextBuilder { 1399 builder.envSu = envSu 1400 builder.envSuFlag = true 1401 return builder 1402 } 1403 1404 // 手机系统时区 1405 // 1406 // 示例值: 1407 func (builder *AuditAndroidContextBuilder) EnvTz(envTz string) *AuditAndroidContextBuilder { 1408 builder.envTz = envTz 1409 builder.envTzFlag = true 1410 return builder 1411 } 1412 1413 // 手机系统语言 1414 // 1415 // 示例值: 1416 func (builder *AuditAndroidContextBuilder) EnvMl(envMl string) *AuditAndroidContextBuilder { 1417 builder.envMl = envMl 1418 builder.envMlFlag = true 1419 return builder 1420 } 1421 1422 // GPS经纬度 1423 // 1424 // 示例值: 1425 func (builder *AuditAndroidContextBuilder) Location(location string) *AuditAndroidContextBuilder { 1426 builder.location = location 1427 builder.locationFlag = true 1428 return builder 1429 } 1430 1431 // 当前设备活跃ip 1432 // 1433 // 示例值: 1434 func (builder *AuditAndroidContextBuilder) ActiveIp(activeIp string) *AuditAndroidContextBuilder { 1435 builder.activeIp = activeIp 1436 builder.activeIpFlag = true 1437 return builder 1438 } 1439 1440 // 当前设备活跃ip对应网卡类型 1441 // 1442 // 示例值: 1443 func (builder *AuditAndroidContextBuilder) ActiveIpDetail(activeIpDetail string) *AuditAndroidContextBuilder { 1444 builder.activeIpDetail = activeIpDetail 1445 builder.activeIpDetailFlag = true 1446 return builder 1447 } 1448 1449 // 基站信息 1450 // 1451 // 示例值: 1452 func (builder *AuditAndroidContextBuilder) CellBaseStation(cellBaseStation string) *AuditAndroidContextBuilder { 1453 builder.cellBaseStation = cellBaseStation 1454 builder.cellBaseStationFlag = true 1455 return builder 1456 } 1457 1458 // 公网ip 1459 // 1460 // 示例值: 1461 func (builder *AuditAndroidContextBuilder) IP(iP string) *AuditAndroidContextBuilder { 1462 builder.iP = iP 1463 builder.iPFlag = true 1464 return builder 1465 } 1466 1467 func (builder *AuditAndroidContextBuilder) Build() *AuditAndroidContext { 1468 req := &AuditAndroidContext{} 1469 if builder.udidFlag { 1470 req.Udid = &builder.udid 1471 1472 } 1473 if builder.didFlag { 1474 req.Did = &builder.did 1475 1476 } 1477 if builder.appVerFlag { 1478 req.AppVer = &builder.appVer 1479 1480 } 1481 if builder.verFlag { 1482 req.Ver = &builder.ver 1483 1484 } 1485 if builder.regionFlag { 1486 req.Region = &builder.region 1487 1488 } 1489 if builder.idIFlag { 1490 req.IdI = &builder.idI 1491 1492 } 1493 if builder.idRFlag { 1494 req.IdR = &builder.idR 1495 1496 } 1497 if builder.hwBrandFlag { 1498 req.HwBrand = &builder.hwBrand 1499 1500 } 1501 if builder.hwManufFlag { 1502 req.HwManuf = &builder.hwManuf 1503 1504 } 1505 if builder.wifipFlag { 1506 req.Wifip = &builder.wifip 1507 1508 } 1509 if builder.routeIipFlag { 1510 req.RouteIip = &builder.routeIip 1511 1512 } 1513 if builder.routeGipFlag { 1514 req.RouteGip = &builder.routeGip 1515 1516 } 1517 if builder.envSuFlag { 1518 req.EnvSu = &builder.envSu 1519 1520 } 1521 if builder.envTzFlag { 1522 req.EnvTz = &builder.envTz 1523 1524 } 1525 if builder.envMlFlag { 1526 req.EnvMl = &builder.envMl 1527 1528 } 1529 if builder.locationFlag { 1530 req.Location = &builder.location 1531 1532 } 1533 if builder.activeIpFlag { 1534 req.ActiveIp = &builder.activeIp 1535 1536 } 1537 if builder.activeIpDetailFlag { 1538 req.ActiveIpDetail = &builder.activeIpDetail 1539 1540 } 1541 if builder.cellBaseStationFlag { 1542 req.CellBaseStation = &builder.cellBaseStation 1543 1544 } 1545 if builder.iPFlag { 1546 req.IP = &builder.iP 1547 1548 } 1549 return req 1550 } 1551 1552 type AuditContext struct { 1553 TerminalType *int `json:"terminal_type,omitempty"` // 终端类型 1554 IosContext *AuditIosContext `json:"ios_context,omitempty"` // ios的环境信息 1555 PcContext *AuditPcContext `json:"pc_context,omitempty"` // pc的环境信息 1556 WebContext *AuditWebContext `json:"web_context,omitempty"` // web的环境信息 1557 AndroidContext *AuditAndroidContext `json:"android_context,omitempty"` // android的环境信息 1558 } 1559 1560 type AuditContextBuilder struct { 1561 terminalType int // 终端类型 1562 terminalTypeFlag bool 1563 iosContext *AuditIosContext // ios的环境信息 1564 iosContextFlag bool 1565 pcContext *AuditPcContext // pc的环境信息 1566 pcContextFlag bool 1567 webContext *AuditWebContext // web的环境信息 1568 webContextFlag bool 1569 androidContext *AuditAndroidContext // android的环境信息 1570 androidContextFlag bool 1571 } 1572 1573 func NewAuditContextBuilder() *AuditContextBuilder { 1574 builder := &AuditContextBuilder{} 1575 return builder 1576 } 1577 1578 // 终端类型 1579 // 1580 // 示例值: 1581 func (builder *AuditContextBuilder) TerminalType(terminalType int) *AuditContextBuilder { 1582 builder.terminalType = terminalType 1583 builder.terminalTypeFlag = true 1584 return builder 1585 } 1586 1587 // ios的环境信息 1588 // 1589 // 示例值: 1590 func (builder *AuditContextBuilder) IosContext(iosContext *AuditIosContext) *AuditContextBuilder { 1591 builder.iosContext = iosContext 1592 builder.iosContextFlag = true 1593 return builder 1594 } 1595 1596 // pc的环境信息 1597 // 1598 // 示例值: 1599 func (builder *AuditContextBuilder) PcContext(pcContext *AuditPcContext) *AuditContextBuilder { 1600 builder.pcContext = pcContext 1601 builder.pcContextFlag = true 1602 return builder 1603 } 1604 1605 // web的环境信息 1606 // 1607 // 示例值: 1608 func (builder *AuditContextBuilder) WebContext(webContext *AuditWebContext) *AuditContextBuilder { 1609 builder.webContext = webContext 1610 builder.webContextFlag = true 1611 return builder 1612 } 1613 1614 // android的环境信息 1615 // 1616 // 示例值: 1617 func (builder *AuditContextBuilder) AndroidContext(androidContext *AuditAndroidContext) *AuditContextBuilder { 1618 builder.androidContext = androidContext 1619 builder.androidContextFlag = true 1620 return builder 1621 } 1622 1623 func (builder *AuditContextBuilder) Build() *AuditContext { 1624 req := &AuditContext{} 1625 if builder.terminalTypeFlag { 1626 req.TerminalType = &builder.terminalType 1627 1628 } 1629 if builder.iosContextFlag { 1630 req.IosContext = builder.iosContext 1631 } 1632 if builder.pcContextFlag { 1633 req.PcContext = builder.pcContext 1634 } 1635 if builder.webContextFlag { 1636 req.WebContext = builder.webContext 1637 } 1638 if builder.androidContextFlag { 1639 req.AndroidContext = builder.androidContext 1640 } 1641 return req 1642 } 1643 1644 type AuditEventExtend struct { 1645 CommentType *string `json:"comment_type,omitempty"` // 评论类型 1646 AppDetail *string `json:"app_detail,omitempty"` // app信息 1647 TwoStepValidation *bool `json:"two_step_validation,omitempty"` // 是否两步验证 1648 LoginMethod *string `json:"login_method,omitempty"` // 登录方式 1649 NewPeopleNumInVideo *int `json:"new_people_num_in_video,omitempty"` // 创建新的{x}人会议/通话 1650 ExternalPeopleNumInVideo *int `json:"external_people_num_in_video,omitempty"` // 将{x}名外部用户加入/退出通话 1651 ExternalPeopleNumInChat *int `json:"external_people_num_in_chat,omitempty"` // 将{x}名外部用户加入/退出群组 1652 JoinGroup *int `json:"join_group,omitempty"` // 创建{x}人数的群组 1653 QuitGroup *int `json:"quit_group,omitempty"` // 解散{x}人数的群组 1654 ExternalPeopleNumInDocShare *int `json:"external_people_num_in_doc_share,omitempty"` // 分享文档给{x}名外部用户 1655 } 1656 1657 type AuditEventExtendBuilder struct { 1658 commentType string // 评论类型 1659 commentTypeFlag bool 1660 appDetail string // app信息 1661 appDetailFlag bool 1662 twoStepValidation bool // 是否两步验证 1663 twoStepValidationFlag bool 1664 loginMethod string // 登录方式 1665 loginMethodFlag bool 1666 newPeopleNumInVideo int // 创建新的{x}人会议/通话 1667 newPeopleNumInVideoFlag bool 1668 externalPeopleNumInVideo int // 将{x}名外部用户加入/退出通话 1669 externalPeopleNumInVideoFlag bool 1670 externalPeopleNumInChat int // 将{x}名外部用户加入/退出群组 1671 externalPeopleNumInChatFlag bool 1672 joinGroup int // 创建{x}人数的群组 1673 joinGroupFlag bool 1674 quitGroup int // 解散{x}人数的群组 1675 quitGroupFlag bool 1676 externalPeopleNumInDocShare int // 分享文档给{x}名外部用户 1677 externalPeopleNumInDocShareFlag bool 1678 } 1679 1680 func NewAuditEventExtendBuilder() *AuditEventExtendBuilder { 1681 builder := &AuditEventExtendBuilder{} 1682 return builder 1683 } 1684 1685 // 评论类型 1686 // 1687 // 示例值: 1688 func (builder *AuditEventExtendBuilder) CommentType(commentType string) *AuditEventExtendBuilder { 1689 builder.commentType = commentType 1690 builder.commentTypeFlag = true 1691 return builder 1692 } 1693 1694 // app信息 1695 // 1696 // 示例值: 1697 func (builder *AuditEventExtendBuilder) AppDetail(appDetail string) *AuditEventExtendBuilder { 1698 builder.appDetail = appDetail 1699 builder.appDetailFlag = true 1700 return builder 1701 } 1702 1703 // 是否两步验证 1704 // 1705 // 示例值: 1706 func (builder *AuditEventExtendBuilder) TwoStepValidation(twoStepValidation bool) *AuditEventExtendBuilder { 1707 builder.twoStepValidation = twoStepValidation 1708 builder.twoStepValidationFlag = true 1709 return builder 1710 } 1711 1712 // 登录方式 1713 // 1714 // 示例值: 1715 func (builder *AuditEventExtendBuilder) LoginMethod(loginMethod string) *AuditEventExtendBuilder { 1716 builder.loginMethod = loginMethod 1717 builder.loginMethodFlag = true 1718 return builder 1719 } 1720 1721 // 创建新的{x}人会议/通话 1722 // 1723 // 示例值: 1724 func (builder *AuditEventExtendBuilder) NewPeopleNumInVideo(newPeopleNumInVideo int) *AuditEventExtendBuilder { 1725 builder.newPeopleNumInVideo = newPeopleNumInVideo 1726 builder.newPeopleNumInVideoFlag = true 1727 return builder 1728 } 1729 1730 // 将{x}名外部用户加入/退出通话 1731 // 1732 // 示例值: 1733 func (builder *AuditEventExtendBuilder) ExternalPeopleNumInVideo(externalPeopleNumInVideo int) *AuditEventExtendBuilder { 1734 builder.externalPeopleNumInVideo = externalPeopleNumInVideo 1735 builder.externalPeopleNumInVideoFlag = true 1736 return builder 1737 } 1738 1739 // 将{x}名外部用户加入/退出群组 1740 // 1741 // 示例值: 1742 func (builder *AuditEventExtendBuilder) ExternalPeopleNumInChat(externalPeopleNumInChat int) *AuditEventExtendBuilder { 1743 builder.externalPeopleNumInChat = externalPeopleNumInChat 1744 builder.externalPeopleNumInChatFlag = true 1745 return builder 1746 } 1747 1748 // 创建{x}人数的群组 1749 // 1750 // 示例值: 1751 func (builder *AuditEventExtendBuilder) JoinGroup(joinGroup int) *AuditEventExtendBuilder { 1752 builder.joinGroup = joinGroup 1753 builder.joinGroupFlag = true 1754 return builder 1755 } 1756 1757 // 解散{x}人数的群组 1758 // 1759 // 示例值: 1760 func (builder *AuditEventExtendBuilder) QuitGroup(quitGroup int) *AuditEventExtendBuilder { 1761 builder.quitGroup = quitGroup 1762 builder.quitGroupFlag = true 1763 return builder 1764 } 1765 1766 // 分享文档给{x}名外部用户 1767 // 1768 // 示例值: 1769 func (builder *AuditEventExtendBuilder) ExternalPeopleNumInDocShare(externalPeopleNumInDocShare int) *AuditEventExtendBuilder { 1770 builder.externalPeopleNumInDocShare = externalPeopleNumInDocShare 1771 builder.externalPeopleNumInDocShareFlag = true 1772 return builder 1773 } 1774 1775 func (builder *AuditEventExtendBuilder) Build() *AuditEventExtend { 1776 req := &AuditEventExtend{} 1777 if builder.commentTypeFlag { 1778 req.CommentType = &builder.commentType 1779 1780 } 1781 if builder.appDetailFlag { 1782 req.AppDetail = &builder.appDetail 1783 1784 } 1785 if builder.twoStepValidationFlag { 1786 req.TwoStepValidation = &builder.twoStepValidation 1787 1788 } 1789 if builder.loginMethodFlag { 1790 req.LoginMethod = &builder.loginMethod 1791 1792 } 1793 if builder.newPeopleNumInVideoFlag { 1794 req.NewPeopleNumInVideo = &builder.newPeopleNumInVideo 1795 1796 } 1797 if builder.externalPeopleNumInVideoFlag { 1798 req.ExternalPeopleNumInVideo = &builder.externalPeopleNumInVideo 1799 1800 } 1801 if builder.externalPeopleNumInChatFlag { 1802 req.ExternalPeopleNumInChat = &builder.externalPeopleNumInChat 1803 1804 } 1805 if builder.joinGroupFlag { 1806 req.JoinGroup = &builder.joinGroup 1807 1808 } 1809 if builder.quitGroupFlag { 1810 req.QuitGroup = &builder.quitGroup 1811 1812 } 1813 if builder.externalPeopleNumInDocShareFlag { 1814 req.ExternalPeopleNumInDocShare = &builder.externalPeopleNumInDocShare 1815 1816 } 1817 return req 1818 } 1819 1820 type AuditInfo struct { 1821 EventId *string `json:"event_id,omitempty"` // 事件id 1822 UniqueId *string `json:"unique_id,omitempty"` // 唯一id 1823 EventName *string `json:"event_name,omitempty"` // 事件名称 1824 DepartmentIds []string `json:"department_ids,omitempty"` // 用户所属部门的ID列表 1825 EventModule *int `json:"event_module,omitempty"` // 模块 1826 OperatorType *int `json:"operator_type,omitempty"` // 操作人类型 1827 OperatorValue *string `json:"operator_value,omitempty"` // 操作人id 1828 Objects []*AuditObjectEntity `json:"objects,omitempty"` // 操作对象列表 1829 Recipients []*AuditRecipientEntity `json:"recipients,omitempty"` // 接收者对象列表 1830 EventTime *int `json:"event_time,omitempty"` // 事件时间 1831 Ip *string `json:"ip,omitempty"` // ip信息 1832 OperatorApp *string `json:"operator_app,omitempty"` // 第三方isvID 1833 AuditContext *AuditContext `json:"audit_context,omitempty"` // 环境信息 1834 Extend *AuditEventExtend `json:"extend,omitempty"` // 事件级别的扩展 1835 OperatorAppName *string `json:"operator_app_name,omitempty"` // 第三方isv名称 1836 CommonDrawers *ApiAuditCommonDrawers `json:"common_drawers,omitempty"` // 扩展字段信息 1837 } 1838 1839 type AuditInfoBuilder struct { 1840 eventId string // 事件id 1841 eventIdFlag bool 1842 uniqueId string // 唯一id 1843 uniqueIdFlag bool 1844 eventName string // 事件名称 1845 eventNameFlag bool 1846 departmentIds []string // 用户所属部门的ID列表 1847 departmentIdsFlag bool 1848 eventModule int // 模块 1849 eventModuleFlag bool 1850 operatorType int // 操作人类型 1851 operatorTypeFlag bool 1852 operatorValue string // 操作人id 1853 operatorValueFlag bool 1854 objects []*AuditObjectEntity // 操作对象列表 1855 objectsFlag bool 1856 recipients []*AuditRecipientEntity // 接收者对象列表 1857 recipientsFlag bool 1858 eventTime int // 事件时间 1859 eventTimeFlag bool 1860 ip string // ip信息 1861 ipFlag bool 1862 operatorApp string // 第三方isvID 1863 operatorAppFlag bool 1864 auditContext *AuditContext // 环境信息 1865 auditContextFlag bool 1866 extend *AuditEventExtend // 事件级别的扩展 1867 extendFlag bool 1868 operatorAppName string // 第三方isv名称 1869 operatorAppNameFlag bool 1870 commonDrawers *ApiAuditCommonDrawers // 扩展字段信息 1871 commonDrawersFlag bool 1872 } 1873 1874 func NewAuditInfoBuilder() *AuditInfoBuilder { 1875 builder := &AuditInfoBuilder{} 1876 return builder 1877 } 1878 1879 // 事件id 1880 // 1881 // 示例值: 1882 func (builder *AuditInfoBuilder) EventId(eventId string) *AuditInfoBuilder { 1883 builder.eventId = eventId 1884 builder.eventIdFlag = true 1885 return builder 1886 } 1887 1888 // 唯一id 1889 // 1890 // 示例值: 1891 func (builder *AuditInfoBuilder) UniqueId(uniqueId string) *AuditInfoBuilder { 1892 builder.uniqueId = uniqueId 1893 builder.uniqueIdFlag = true 1894 return builder 1895 } 1896 1897 // 事件名称 1898 // 1899 // 示例值: 1900 func (builder *AuditInfoBuilder) EventName(eventName string) *AuditInfoBuilder { 1901 builder.eventName = eventName 1902 builder.eventNameFlag = true 1903 return builder 1904 } 1905 1906 // 用户所属部门的ID列表 1907 // 1908 // 示例值: 1909 func (builder *AuditInfoBuilder) DepartmentIds(departmentIds []string) *AuditInfoBuilder { 1910 builder.departmentIds = departmentIds 1911 builder.departmentIdsFlag = true 1912 return builder 1913 } 1914 1915 // 模块 1916 // 1917 // 示例值: 1918 func (builder *AuditInfoBuilder) EventModule(eventModule int) *AuditInfoBuilder { 1919 builder.eventModule = eventModule 1920 builder.eventModuleFlag = true 1921 return builder 1922 } 1923 1924 // 操作人类型 1925 // 1926 // 示例值: 1927 func (builder *AuditInfoBuilder) OperatorType(operatorType int) *AuditInfoBuilder { 1928 builder.operatorType = operatorType 1929 builder.operatorTypeFlag = true 1930 return builder 1931 } 1932 1933 // 操作人id 1934 // 1935 // 示例值: 1936 func (builder *AuditInfoBuilder) OperatorValue(operatorValue string) *AuditInfoBuilder { 1937 builder.operatorValue = operatorValue 1938 builder.operatorValueFlag = true 1939 return builder 1940 } 1941 1942 // 操作对象列表 1943 // 1944 // 示例值: 1945 func (builder *AuditInfoBuilder) Objects(objects []*AuditObjectEntity) *AuditInfoBuilder { 1946 builder.objects = objects 1947 builder.objectsFlag = true 1948 return builder 1949 } 1950 1951 // 接收者对象列表 1952 // 1953 // 示例值: 1954 func (builder *AuditInfoBuilder) Recipients(recipients []*AuditRecipientEntity) *AuditInfoBuilder { 1955 builder.recipients = recipients 1956 builder.recipientsFlag = true 1957 return builder 1958 } 1959 1960 // 事件时间 1961 // 1962 // 示例值: 1963 func (builder *AuditInfoBuilder) EventTime(eventTime int) *AuditInfoBuilder { 1964 builder.eventTime = eventTime 1965 builder.eventTimeFlag = true 1966 return builder 1967 } 1968 1969 // ip信息 1970 // 1971 // 示例值: 1972 func (builder *AuditInfoBuilder) Ip(ip string) *AuditInfoBuilder { 1973 builder.ip = ip 1974 builder.ipFlag = true 1975 return builder 1976 } 1977 1978 // 第三方isvID 1979 // 1980 // 示例值: 1981 func (builder *AuditInfoBuilder) OperatorApp(operatorApp string) *AuditInfoBuilder { 1982 builder.operatorApp = operatorApp 1983 builder.operatorAppFlag = true 1984 return builder 1985 } 1986 1987 // 环境信息 1988 // 1989 // 示例值: 1990 func (builder *AuditInfoBuilder) AuditContext(auditContext *AuditContext) *AuditInfoBuilder { 1991 builder.auditContext = auditContext 1992 builder.auditContextFlag = true 1993 return builder 1994 } 1995 1996 // 事件级别的扩展 1997 // 1998 // 示例值: 1999 func (builder *AuditInfoBuilder) Extend(extend *AuditEventExtend) *AuditInfoBuilder { 2000 builder.extend = extend 2001 builder.extendFlag = true 2002 return builder 2003 } 2004 2005 // 第三方isv名称 2006 // 2007 // 示例值: 2008 func (builder *AuditInfoBuilder) OperatorAppName(operatorAppName string) *AuditInfoBuilder { 2009 builder.operatorAppName = operatorAppName 2010 builder.operatorAppNameFlag = true 2011 return builder 2012 } 2013 2014 // 扩展字段信息 2015 // 2016 // 示例值: 2017 func (builder *AuditInfoBuilder) CommonDrawers(commonDrawers *ApiAuditCommonDrawers) *AuditInfoBuilder { 2018 builder.commonDrawers = commonDrawers 2019 builder.commonDrawersFlag = true 2020 return builder 2021 } 2022 2023 func (builder *AuditInfoBuilder) Build() *AuditInfo { 2024 req := &AuditInfo{} 2025 if builder.eventIdFlag { 2026 req.EventId = &builder.eventId 2027 2028 } 2029 if builder.uniqueIdFlag { 2030 req.UniqueId = &builder.uniqueId 2031 2032 } 2033 if builder.eventNameFlag { 2034 req.EventName = &builder.eventName 2035 2036 } 2037 if builder.departmentIdsFlag { 2038 req.DepartmentIds = builder.departmentIds 2039 } 2040 if builder.eventModuleFlag { 2041 req.EventModule = &builder.eventModule 2042 2043 } 2044 if builder.operatorTypeFlag { 2045 req.OperatorType = &builder.operatorType 2046 2047 } 2048 if builder.operatorValueFlag { 2049 req.OperatorValue = &builder.operatorValue 2050 2051 } 2052 if builder.objectsFlag { 2053 req.Objects = builder.objects 2054 } 2055 if builder.recipientsFlag { 2056 req.Recipients = builder.recipients 2057 } 2058 if builder.eventTimeFlag { 2059 req.EventTime = &builder.eventTime 2060 2061 } 2062 if builder.ipFlag { 2063 req.Ip = &builder.ip 2064 2065 } 2066 if builder.operatorAppFlag { 2067 req.OperatorApp = &builder.operatorApp 2068 2069 } 2070 if builder.auditContextFlag { 2071 req.AuditContext = builder.auditContext 2072 } 2073 if builder.extendFlag { 2074 req.Extend = builder.extend 2075 } 2076 if builder.operatorAppNameFlag { 2077 req.OperatorAppName = &builder.operatorAppName 2078 2079 } 2080 if builder.commonDrawersFlag { 2081 req.CommonDrawers = builder.commonDrawers 2082 } 2083 return req 2084 } 2085 2086 type AuditIosContext struct { 2087 Udid *string `json:"udid,omitempty"` // UDID 2088 Did *string `json:"did,omitempty"` // 设备ID 2089 AppVer *string `json:"app_ver,omitempty"` // app的版本 2090 Ver *string `json:"ver,omitempty"` // SecSDK版本 2091 Os *string `json:"os,omitempty"` // 系统类型及版本 2092 STZone *string `json:"STZone,omitempty"` // 系统时区 2093 ML *string `json:"ML,omitempty"` // 当前语言 2094 Sjd *string `json:"sjd,omitempty"` // 是否越狱 2095 Proxyip *string `json:"proxyip,omitempty"` // 代理ip 2096 Wifip *string `json:"wifip,omitempty"` // wifi ip 2097 Location *string `json:"location,omitempty"` // GPS经纬度 2098 ActiveIp *string `json:"active_ip,omitempty"` // 当前设备活跃ip 2099 ActiveIpDetail *string `json:"active_ip_detail,omitempty"` // 当前设备活跃ip对应网卡类型 2100 CellBaseStation *string `json:"cell_base_station,omitempty"` // 基站信息 2101 IP *string `json:"IP,omitempty"` // 公网ip 2102 } 2103 2104 type AuditIosContextBuilder struct { 2105 udid string // UDID 2106 udidFlag bool 2107 did string // 设备ID 2108 didFlag bool 2109 appVer string // app的版本 2110 appVerFlag bool 2111 ver string // SecSDK版本 2112 verFlag bool 2113 os string // 系统类型及版本 2114 osFlag bool 2115 sTZone string // 系统时区 2116 sTZoneFlag bool 2117 mL string // 当前语言 2118 mLFlag bool 2119 sjd string // 是否越狱 2120 sjdFlag bool 2121 proxyip string // 代理ip 2122 proxyipFlag bool 2123 wifip string // wifi ip 2124 wifipFlag bool 2125 location string // GPS经纬度 2126 locationFlag bool 2127 activeIp string // 当前设备活跃ip 2128 activeIpFlag bool 2129 activeIpDetail string // 当前设备活跃ip对应网卡类型 2130 activeIpDetailFlag bool 2131 cellBaseStation string // 基站信息 2132 cellBaseStationFlag bool 2133 iP string // 公网ip 2134 iPFlag bool 2135 } 2136 2137 func NewAuditIosContextBuilder() *AuditIosContextBuilder { 2138 builder := &AuditIosContextBuilder{} 2139 return builder 2140 } 2141 2142 // UDID 2143 // 2144 // 示例值: 2145 func (builder *AuditIosContextBuilder) Udid(udid string) *AuditIosContextBuilder { 2146 builder.udid = udid 2147 builder.udidFlag = true 2148 return builder 2149 } 2150 2151 // 设备ID 2152 // 2153 // 示例值: 2154 func (builder *AuditIosContextBuilder) Did(did string) *AuditIosContextBuilder { 2155 builder.did = did 2156 builder.didFlag = true 2157 return builder 2158 } 2159 2160 // app的版本 2161 // 2162 // 示例值: 2163 func (builder *AuditIosContextBuilder) AppVer(appVer string) *AuditIosContextBuilder { 2164 builder.appVer = appVer 2165 builder.appVerFlag = true 2166 return builder 2167 } 2168 2169 // SecSDK版本 2170 // 2171 // 示例值: 2172 func (builder *AuditIosContextBuilder) Ver(ver string) *AuditIosContextBuilder { 2173 builder.ver = ver 2174 builder.verFlag = true 2175 return builder 2176 } 2177 2178 // 系统类型及版本 2179 // 2180 // 示例值: 2181 func (builder *AuditIosContextBuilder) Os(os string) *AuditIosContextBuilder { 2182 builder.os = os 2183 builder.osFlag = true 2184 return builder 2185 } 2186 2187 // 系统时区 2188 // 2189 // 示例值: 2190 func (builder *AuditIosContextBuilder) STZone(sTZone string) *AuditIosContextBuilder { 2191 builder.sTZone = sTZone 2192 builder.sTZoneFlag = true 2193 return builder 2194 } 2195 2196 // 当前语言 2197 // 2198 // 示例值: 2199 func (builder *AuditIosContextBuilder) ML(mL string) *AuditIosContextBuilder { 2200 builder.mL = mL 2201 builder.mLFlag = true 2202 return builder 2203 } 2204 2205 // 是否越狱 2206 // 2207 // 示例值: 2208 func (builder *AuditIosContextBuilder) Sjd(sjd string) *AuditIosContextBuilder { 2209 builder.sjd = sjd 2210 builder.sjdFlag = true 2211 return builder 2212 } 2213 2214 // 代理ip 2215 // 2216 // 示例值: 2217 func (builder *AuditIosContextBuilder) Proxyip(proxyip string) *AuditIosContextBuilder { 2218 builder.proxyip = proxyip 2219 builder.proxyipFlag = true 2220 return builder 2221 } 2222 2223 // wifi ip 2224 // 2225 // 示例值: 2226 func (builder *AuditIosContextBuilder) Wifip(wifip string) *AuditIosContextBuilder { 2227 builder.wifip = wifip 2228 builder.wifipFlag = true 2229 return builder 2230 } 2231 2232 // GPS经纬度 2233 // 2234 // 示例值: 2235 func (builder *AuditIosContextBuilder) Location(location string) *AuditIosContextBuilder { 2236 builder.location = location 2237 builder.locationFlag = true 2238 return builder 2239 } 2240 2241 // 当前设备活跃ip 2242 // 2243 // 示例值: 2244 func (builder *AuditIosContextBuilder) ActiveIp(activeIp string) *AuditIosContextBuilder { 2245 builder.activeIp = activeIp 2246 builder.activeIpFlag = true 2247 return builder 2248 } 2249 2250 // 当前设备活跃ip对应网卡类型 2251 // 2252 // 示例值: 2253 func (builder *AuditIosContextBuilder) ActiveIpDetail(activeIpDetail string) *AuditIosContextBuilder { 2254 builder.activeIpDetail = activeIpDetail 2255 builder.activeIpDetailFlag = true 2256 return builder 2257 } 2258 2259 // 基站信息 2260 // 2261 // 示例值: 2262 func (builder *AuditIosContextBuilder) CellBaseStation(cellBaseStation string) *AuditIosContextBuilder { 2263 builder.cellBaseStation = cellBaseStation 2264 builder.cellBaseStationFlag = true 2265 return builder 2266 } 2267 2268 // 公网ip 2269 // 2270 // 示例值: 2271 func (builder *AuditIosContextBuilder) IP(iP string) *AuditIosContextBuilder { 2272 builder.iP = iP 2273 builder.iPFlag = true 2274 return builder 2275 } 2276 2277 func (builder *AuditIosContextBuilder) Build() *AuditIosContext { 2278 req := &AuditIosContext{} 2279 if builder.udidFlag { 2280 req.Udid = &builder.udid 2281 2282 } 2283 if builder.didFlag { 2284 req.Did = &builder.did 2285 2286 } 2287 if builder.appVerFlag { 2288 req.AppVer = &builder.appVer 2289 2290 } 2291 if builder.verFlag { 2292 req.Ver = &builder.ver 2293 2294 } 2295 if builder.osFlag { 2296 req.Os = &builder.os 2297 2298 } 2299 if builder.sTZoneFlag { 2300 req.STZone = &builder.sTZone 2301 2302 } 2303 if builder.mLFlag { 2304 req.ML = &builder.mL 2305 2306 } 2307 if builder.sjdFlag { 2308 req.Sjd = &builder.sjd 2309 2310 } 2311 if builder.proxyipFlag { 2312 req.Proxyip = &builder.proxyip 2313 2314 } 2315 if builder.wifipFlag { 2316 req.Wifip = &builder.wifip 2317 2318 } 2319 if builder.locationFlag { 2320 req.Location = &builder.location 2321 2322 } 2323 if builder.activeIpFlag { 2324 req.ActiveIp = &builder.activeIp 2325 2326 } 2327 if builder.activeIpDetailFlag { 2328 req.ActiveIpDetail = &builder.activeIpDetail 2329 2330 } 2331 if builder.cellBaseStationFlag { 2332 req.CellBaseStation = &builder.cellBaseStation 2333 2334 } 2335 if builder.iPFlag { 2336 req.IP = &builder.iP 2337 2338 } 2339 return req 2340 } 2341 2342 type AuditObjectDetail struct { 2343 CloneSource *string `json:"clone_source,omitempty"` // 克隆来源 2344 TextDetail *string `json:"text_detail,omitempty"` // 其他文本 2345 FileName *string `json:"file_name,omitempty"` // 文件名称 2346 ThirdPartyAppID *string `json:"third_party_appID,omitempty"` // 第三方APPID 2347 ContainFileNum *int `json:"contain_file_num,omitempty"` // 文件或文件夹数量 2348 PermissionSettingType *string `json:"permission_setting_type,omitempty"` // 链接分享设置 2349 PermissionExternalAccessType *bool `json:"permission_external_access_Type,omitempty"` // 是否开启外部访问设置 2350 PermissionShareType *string `json:"permission_share_type,omitempty"` // 分享设置 2351 FileServiceSource *string `json:"file_service_source,omitempty"` // file上传业务来源 2352 OkrDownloadContent *string `json:"okr_download_content,omitempty"` // 下载OKR时的内容范围 2353 ContainerType *string `json:"container_type,omitempty"` // 容器类型,标识是否wiki 2354 ContainerId *string `json:"container_id,omitempty"` // 容器id,wiki标识字段 2355 CurrentPage *string `json:"current_page,omitempty"` // 截屏、录制的开始页面 2356 } 2357 2358 type AuditObjectDetailBuilder struct { 2359 cloneSource string // 克隆来源 2360 cloneSourceFlag bool 2361 textDetail string // 其他文本 2362 textDetailFlag bool 2363 fileName string // 文件名称 2364 fileNameFlag bool 2365 thirdPartyAppID string // 第三方APPID 2366 thirdPartyAppIDFlag bool 2367 containFileNum int // 文件或文件夹数量 2368 containFileNumFlag bool 2369 permissionSettingType string // 链接分享设置 2370 permissionSettingTypeFlag bool 2371 permissionExternalAccessType bool // 是否开启外部访问设置 2372 permissionExternalAccessTypeFlag bool 2373 permissionShareType string // 分享设置 2374 permissionShareTypeFlag bool 2375 fileServiceSource string // file上传业务来源 2376 fileServiceSourceFlag bool 2377 okrDownloadContent string // 下载OKR时的内容范围 2378 okrDownloadContentFlag bool 2379 containerType string // 容器类型,标识是否wiki 2380 containerTypeFlag bool 2381 containerId string // 容器id,wiki标识字段 2382 containerIdFlag bool 2383 currentPage string // 截屏、录制的开始页面 2384 currentPageFlag bool 2385 } 2386 2387 func NewAuditObjectDetailBuilder() *AuditObjectDetailBuilder { 2388 builder := &AuditObjectDetailBuilder{} 2389 return builder 2390 } 2391 2392 // 克隆来源 2393 // 2394 // 示例值: 2395 func (builder *AuditObjectDetailBuilder) CloneSource(cloneSource string) *AuditObjectDetailBuilder { 2396 builder.cloneSource = cloneSource 2397 builder.cloneSourceFlag = true 2398 return builder 2399 } 2400 2401 // 其他文本 2402 // 2403 // 示例值: 2404 func (builder *AuditObjectDetailBuilder) TextDetail(textDetail string) *AuditObjectDetailBuilder { 2405 builder.textDetail = textDetail 2406 builder.textDetailFlag = true 2407 return builder 2408 } 2409 2410 // 文件名称 2411 // 2412 // 示例值: 2413 func (builder *AuditObjectDetailBuilder) FileName(fileName string) *AuditObjectDetailBuilder { 2414 builder.fileName = fileName 2415 builder.fileNameFlag = true 2416 return builder 2417 } 2418 2419 // 第三方APPID 2420 // 2421 // 示例值: 2422 func (builder *AuditObjectDetailBuilder) ThirdPartyAppID(thirdPartyAppID string) *AuditObjectDetailBuilder { 2423 builder.thirdPartyAppID = thirdPartyAppID 2424 builder.thirdPartyAppIDFlag = true 2425 return builder 2426 } 2427 2428 // 文件或文件夹数量 2429 // 2430 // 示例值: 2431 func (builder *AuditObjectDetailBuilder) ContainFileNum(containFileNum int) *AuditObjectDetailBuilder { 2432 builder.containFileNum = containFileNum 2433 builder.containFileNumFlag = true 2434 return builder 2435 } 2436 2437 // 链接分享设置 2438 // 2439 // 示例值: 2440 func (builder *AuditObjectDetailBuilder) PermissionSettingType(permissionSettingType string) *AuditObjectDetailBuilder { 2441 builder.permissionSettingType = permissionSettingType 2442 builder.permissionSettingTypeFlag = true 2443 return builder 2444 } 2445 2446 // 是否开启外部访问设置 2447 // 2448 // 示例值: 2449 func (builder *AuditObjectDetailBuilder) PermissionExternalAccessType(permissionExternalAccessType bool) *AuditObjectDetailBuilder { 2450 builder.permissionExternalAccessType = permissionExternalAccessType 2451 builder.permissionExternalAccessTypeFlag = true 2452 return builder 2453 } 2454 2455 // 分享设置 2456 // 2457 // 示例值: 2458 func (builder *AuditObjectDetailBuilder) PermissionShareType(permissionShareType string) *AuditObjectDetailBuilder { 2459 builder.permissionShareType = permissionShareType 2460 builder.permissionShareTypeFlag = true 2461 return builder 2462 } 2463 2464 // file上传业务来源 2465 // 2466 // 示例值: 2467 func (builder *AuditObjectDetailBuilder) FileServiceSource(fileServiceSource string) *AuditObjectDetailBuilder { 2468 builder.fileServiceSource = fileServiceSource 2469 builder.fileServiceSourceFlag = true 2470 return builder 2471 } 2472 2473 // 下载OKR时的内容范围 2474 // 2475 // 示例值: 2476 func (builder *AuditObjectDetailBuilder) OkrDownloadContent(okrDownloadContent string) *AuditObjectDetailBuilder { 2477 builder.okrDownloadContent = okrDownloadContent 2478 builder.okrDownloadContentFlag = true 2479 return builder 2480 } 2481 2482 // 容器类型,标识是否wiki 2483 // 2484 // 示例值: 2485 func (builder *AuditObjectDetailBuilder) ContainerType(containerType string) *AuditObjectDetailBuilder { 2486 builder.containerType = containerType 2487 builder.containerTypeFlag = true 2488 return builder 2489 } 2490 2491 // 容器id,wiki标识字段 2492 // 2493 // 示例值: 2494 func (builder *AuditObjectDetailBuilder) ContainerId(containerId string) *AuditObjectDetailBuilder { 2495 builder.containerId = containerId 2496 builder.containerIdFlag = true 2497 return builder 2498 } 2499 2500 // 截屏、录制的开始页面 2501 // 2502 // 示例值: 2503 func (builder *AuditObjectDetailBuilder) CurrentPage(currentPage string) *AuditObjectDetailBuilder { 2504 builder.currentPage = currentPage 2505 builder.currentPageFlag = true 2506 return builder 2507 } 2508 2509 func (builder *AuditObjectDetailBuilder) Build() *AuditObjectDetail { 2510 req := &AuditObjectDetail{} 2511 if builder.cloneSourceFlag { 2512 req.CloneSource = &builder.cloneSource 2513 2514 } 2515 if builder.textDetailFlag { 2516 req.TextDetail = &builder.textDetail 2517 2518 } 2519 if builder.fileNameFlag { 2520 req.FileName = &builder.fileName 2521 2522 } 2523 if builder.thirdPartyAppIDFlag { 2524 req.ThirdPartyAppID = &builder.thirdPartyAppID 2525 2526 } 2527 if builder.containFileNumFlag { 2528 req.ContainFileNum = &builder.containFileNum 2529 2530 } 2531 if builder.permissionSettingTypeFlag { 2532 req.PermissionSettingType = &builder.permissionSettingType 2533 2534 } 2535 if builder.permissionExternalAccessTypeFlag { 2536 req.PermissionExternalAccessType = &builder.permissionExternalAccessType 2537 2538 } 2539 if builder.permissionShareTypeFlag { 2540 req.PermissionShareType = &builder.permissionShareType 2541 2542 } 2543 if builder.fileServiceSourceFlag { 2544 req.FileServiceSource = &builder.fileServiceSource 2545 2546 } 2547 if builder.okrDownloadContentFlag { 2548 req.OkrDownloadContent = &builder.okrDownloadContent 2549 2550 } 2551 if builder.containerTypeFlag { 2552 req.ContainerType = &builder.containerType 2553 2554 } 2555 if builder.containerIdFlag { 2556 req.ContainerId = &builder.containerId 2557 2558 } 2559 if builder.currentPageFlag { 2560 req.CurrentPage = &builder.currentPage 2561 2562 } 2563 return req 2564 } 2565 2566 type AuditObjectEntity struct { 2567 ObjectType *string `json:"object_type,omitempty"` // 操作对象类型 2568 ObjectValue *string `json:"object_value,omitempty"` // 操作对象值,可能存在department_id、user_id等,需要进行lark_id的转换 2569 ObjectName *string `json:"object_name,omitempty"` // 操作对象名称,如会话名、文档名等 2570 ObjectOwner *string `json:"object_owner,omitempty"` // 操作对象的所有者 2571 ObjectDetail *AuditObjectDetail `json:"object_detail,omitempty"` // object 详情 2572 } 2573 2574 type AuditObjectEntityBuilder struct { 2575 objectType string // 操作对象类型 2576 objectTypeFlag bool 2577 objectValue string // 操作对象值,可能存在department_id、user_id等,需要进行lark_id的转换 2578 objectValueFlag bool 2579 objectName string // 操作对象名称,如会话名、文档名等 2580 objectNameFlag bool 2581 objectOwner string // 操作对象的所有者 2582 objectOwnerFlag bool 2583 objectDetail *AuditObjectDetail // object 详情 2584 objectDetailFlag bool 2585 } 2586 2587 func NewAuditObjectEntityBuilder() *AuditObjectEntityBuilder { 2588 builder := &AuditObjectEntityBuilder{} 2589 return builder 2590 } 2591 2592 // 操作对象类型 2593 // 2594 // 示例值: 2595 func (builder *AuditObjectEntityBuilder) ObjectType(objectType string) *AuditObjectEntityBuilder { 2596 builder.objectType = objectType 2597 builder.objectTypeFlag = true 2598 return builder 2599 } 2600 2601 // 操作对象值,可能存在department_id、user_id等,需要进行lark_id的转换 2602 // 2603 // 示例值: 2604 func (builder *AuditObjectEntityBuilder) ObjectValue(objectValue string) *AuditObjectEntityBuilder { 2605 builder.objectValue = objectValue 2606 builder.objectValueFlag = true 2607 return builder 2608 } 2609 2610 // 操作对象名称,如会话名、文档名等 2611 // 2612 // 示例值: 2613 func (builder *AuditObjectEntityBuilder) ObjectName(objectName string) *AuditObjectEntityBuilder { 2614 builder.objectName = objectName 2615 builder.objectNameFlag = true 2616 return builder 2617 } 2618 2619 // 操作对象的所有者 2620 // 2621 // 示例值: 2622 func (builder *AuditObjectEntityBuilder) ObjectOwner(objectOwner string) *AuditObjectEntityBuilder { 2623 builder.objectOwner = objectOwner 2624 builder.objectOwnerFlag = true 2625 return builder 2626 } 2627 2628 // object 详情 2629 // 2630 // 示例值: 2631 func (builder *AuditObjectEntityBuilder) ObjectDetail(objectDetail *AuditObjectDetail) *AuditObjectEntityBuilder { 2632 builder.objectDetail = objectDetail 2633 builder.objectDetailFlag = true 2634 return builder 2635 } 2636 2637 func (builder *AuditObjectEntityBuilder) Build() *AuditObjectEntity { 2638 req := &AuditObjectEntity{} 2639 if builder.objectTypeFlag { 2640 req.ObjectType = &builder.objectType 2641 2642 } 2643 if builder.objectValueFlag { 2644 req.ObjectValue = &builder.objectValue 2645 2646 } 2647 if builder.objectNameFlag { 2648 req.ObjectName = &builder.objectName 2649 2650 } 2651 if builder.objectOwnerFlag { 2652 req.ObjectOwner = &builder.objectOwner 2653 2654 } 2655 if builder.objectDetailFlag { 2656 req.ObjectDetail = builder.objectDetail 2657 } 2658 return req 2659 } 2660 2661 type AuditPcContext struct { 2662 Udid *string `json:"udid,omitempty"` // UDID 2663 Did *string `json:"did,omitempty"` // 设备ID 2664 AppVer *string `json:"app_ver,omitempty"` // app的版本 2665 Ver *string `json:"ver,omitempty"` // SecSDK版本 2666 Os *string `json:"os,omitempty"` // 客户端类型 2667 Wifip *string `json:"wifip,omitempty"` // wifi ip 2668 Region *string `json:"region,omitempty"` // 设备区域 2669 IP *string `json:"IP,omitempty"` // 公网ip 2670 } 2671 2672 type AuditPcContextBuilder struct { 2673 udid string // UDID 2674 udidFlag bool 2675 did string // 设备ID 2676 didFlag bool 2677 appVer string // app的版本 2678 appVerFlag bool 2679 ver string // SecSDK版本 2680 verFlag bool 2681 os string // 客户端类型 2682 osFlag bool 2683 wifip string // wifi ip 2684 wifipFlag bool 2685 region string // 设备区域 2686 regionFlag bool 2687 iP string // 公网ip 2688 iPFlag bool 2689 } 2690 2691 func NewAuditPcContextBuilder() *AuditPcContextBuilder { 2692 builder := &AuditPcContextBuilder{} 2693 return builder 2694 } 2695 2696 // UDID 2697 // 2698 // 示例值: 2699 func (builder *AuditPcContextBuilder) Udid(udid string) *AuditPcContextBuilder { 2700 builder.udid = udid 2701 builder.udidFlag = true 2702 return builder 2703 } 2704 2705 // 设备ID 2706 // 2707 // 示例值: 2708 func (builder *AuditPcContextBuilder) Did(did string) *AuditPcContextBuilder { 2709 builder.did = did 2710 builder.didFlag = true 2711 return builder 2712 } 2713 2714 // app的版本 2715 // 2716 // 示例值: 2717 func (builder *AuditPcContextBuilder) AppVer(appVer string) *AuditPcContextBuilder { 2718 builder.appVer = appVer 2719 builder.appVerFlag = true 2720 return builder 2721 } 2722 2723 // SecSDK版本 2724 // 2725 // 示例值: 2726 func (builder *AuditPcContextBuilder) Ver(ver string) *AuditPcContextBuilder { 2727 builder.ver = ver 2728 builder.verFlag = true 2729 return builder 2730 } 2731 2732 // 客户端类型 2733 // 2734 // 示例值: 2735 func (builder *AuditPcContextBuilder) Os(os string) *AuditPcContextBuilder { 2736 builder.os = os 2737 builder.osFlag = true 2738 return builder 2739 } 2740 2741 // wifi ip 2742 // 2743 // 示例值: 2744 func (builder *AuditPcContextBuilder) Wifip(wifip string) *AuditPcContextBuilder { 2745 builder.wifip = wifip 2746 builder.wifipFlag = true 2747 return builder 2748 } 2749 2750 // 设备区域 2751 // 2752 // 示例值: 2753 func (builder *AuditPcContextBuilder) Region(region string) *AuditPcContextBuilder { 2754 builder.region = region 2755 builder.regionFlag = true 2756 return builder 2757 } 2758 2759 // 公网ip 2760 // 2761 // 示例值: 2762 func (builder *AuditPcContextBuilder) IP(iP string) *AuditPcContextBuilder { 2763 builder.iP = iP 2764 builder.iPFlag = true 2765 return builder 2766 } 2767 2768 func (builder *AuditPcContextBuilder) Build() *AuditPcContext { 2769 req := &AuditPcContext{} 2770 if builder.udidFlag { 2771 req.Udid = &builder.udid 2772 2773 } 2774 if builder.didFlag { 2775 req.Did = &builder.did 2776 2777 } 2778 if builder.appVerFlag { 2779 req.AppVer = &builder.appVer 2780 2781 } 2782 if builder.verFlag { 2783 req.Ver = &builder.ver 2784 2785 } 2786 if builder.osFlag { 2787 req.Os = &builder.os 2788 2789 } 2790 if builder.wifipFlag { 2791 req.Wifip = &builder.wifip 2792 2793 } 2794 if builder.regionFlag { 2795 req.Region = &builder.region 2796 2797 } 2798 if builder.iPFlag { 2799 req.IP = &builder.iP 2800 2801 } 2802 return req 2803 } 2804 2805 type AuditRecipientDetail struct { 2806 PermissionActionType *string `json:"permission_action_type,omitempty"` // 修改权限协作者 2807 } 2808 2809 type AuditRecipientDetailBuilder struct { 2810 permissionActionType string // 修改权限协作者 2811 permissionActionTypeFlag bool 2812 } 2813 2814 func NewAuditRecipientDetailBuilder() *AuditRecipientDetailBuilder { 2815 builder := &AuditRecipientDetailBuilder{} 2816 return builder 2817 } 2818 2819 // 修改权限协作者 2820 // 2821 // 示例值: 2822 func (builder *AuditRecipientDetailBuilder) PermissionActionType(permissionActionType string) *AuditRecipientDetailBuilder { 2823 builder.permissionActionType = permissionActionType 2824 builder.permissionActionTypeFlag = true 2825 return builder 2826 } 2827 2828 func (builder *AuditRecipientDetailBuilder) Build() *AuditRecipientDetail { 2829 req := &AuditRecipientDetail{} 2830 if builder.permissionActionTypeFlag { 2831 req.PermissionActionType = &builder.permissionActionType 2832 2833 } 2834 return req 2835 } 2836 2837 type AuditRecipientEntity struct { 2838 RecipientType *string `json:"recipient_type,omitempty"` // 接收者对象类型 2839 RecipientValue *string `json:"recipient_value,omitempty"` // 接收者对象值,可能存在department_id、user_id等,需要进行lark_id的转换 2840 RecipientDetail *AuditRecipientDetail `json:"recipient_detail,omitempty"` // recipient 详情 2841 } 2842 2843 type AuditRecipientEntityBuilder struct { 2844 recipientType string // 接收者对象类型 2845 recipientTypeFlag bool 2846 recipientValue string // 接收者对象值,可能存在department_id、user_id等,需要进行lark_id的转换 2847 recipientValueFlag bool 2848 recipientDetail *AuditRecipientDetail // recipient 详情 2849 recipientDetailFlag bool 2850 } 2851 2852 func NewAuditRecipientEntityBuilder() *AuditRecipientEntityBuilder { 2853 builder := &AuditRecipientEntityBuilder{} 2854 return builder 2855 } 2856 2857 // 接收者对象类型 2858 // 2859 // 示例值: 2860 func (builder *AuditRecipientEntityBuilder) RecipientType(recipientType string) *AuditRecipientEntityBuilder { 2861 builder.recipientType = recipientType 2862 builder.recipientTypeFlag = true 2863 return builder 2864 } 2865 2866 // 接收者对象值,可能存在department_id、user_id等,需要进行lark_id的转换 2867 // 2868 // 示例值: 2869 func (builder *AuditRecipientEntityBuilder) RecipientValue(recipientValue string) *AuditRecipientEntityBuilder { 2870 builder.recipientValue = recipientValue 2871 builder.recipientValueFlag = true 2872 return builder 2873 } 2874 2875 // recipient 详情 2876 // 2877 // 示例值: 2878 func (builder *AuditRecipientEntityBuilder) RecipientDetail(recipientDetail *AuditRecipientDetail) *AuditRecipientEntityBuilder { 2879 builder.recipientDetail = recipientDetail 2880 builder.recipientDetailFlag = true 2881 return builder 2882 } 2883 2884 func (builder *AuditRecipientEntityBuilder) Build() *AuditRecipientEntity { 2885 req := &AuditRecipientEntity{} 2886 if builder.recipientTypeFlag { 2887 req.RecipientType = &builder.recipientType 2888 2889 } 2890 if builder.recipientValueFlag { 2891 req.RecipientValue = &builder.recipientValue 2892 2893 } 2894 if builder.recipientDetailFlag { 2895 req.RecipientDetail = builder.recipientDetail 2896 } 2897 return req 2898 } 2899 2900 type AuditWebContext struct { 2901 UserAgent *string `json:"user_agent,omitempty"` // UA信息 2902 IP *string `json:"IP,omitempty"` // 本机IP 2903 } 2904 2905 type AuditWebContextBuilder struct { 2906 userAgent string // UA信息 2907 userAgentFlag bool 2908 iP string // 本机IP 2909 iPFlag bool 2910 } 2911 2912 func NewAuditWebContextBuilder() *AuditWebContextBuilder { 2913 builder := &AuditWebContextBuilder{} 2914 return builder 2915 } 2916 2917 // UA信息 2918 // 2919 // 示例值: 2920 func (builder *AuditWebContextBuilder) UserAgent(userAgent string) *AuditWebContextBuilder { 2921 builder.userAgent = userAgent 2922 builder.userAgentFlag = true 2923 return builder 2924 } 2925 2926 // 本机IP 2927 // 2928 // 示例值: 2929 func (builder *AuditWebContextBuilder) IP(iP string) *AuditWebContextBuilder { 2930 builder.iP = iP 2931 builder.iPFlag = true 2932 return builder 2933 } 2934 2935 func (builder *AuditWebContextBuilder) Build() *AuditWebContext { 2936 req := &AuditWebContext{} 2937 if builder.userAgentFlag { 2938 req.UserAgent = &builder.userAgent 2939 2940 } 2941 if builder.iPFlag { 2942 req.IP = &builder.iP 2943 2944 } 2945 return req 2946 } 2947 2948 type Badge struct { 2949 Id *string `json:"id,omitempty"` // 租户内勋章的唯一标识,该值由系统随机生成。 2950 Name *string `json:"name,omitempty"` // 租户内唯一的勋章名称,最多30个字符。 2951 Explanation *string `json:"explanation,omitempty"` // 勋章的描述文案,最多100个字符。 2952 DetailImage *string `json:"detail_image,omitempty"` // 企业勋章的详情图Key。1.权限校验:非本租户上传的图片key,不能直接使用;2.时效校验:创建勋章,或者修改勋章图片key时,需使用1h内上传的图片key。 2953 ShowImage *string `json:"show_image,omitempty"` // 企业勋章的头像挂饰图Key。1.权限校验:非本租户上传的图片key,不能直接使用;2.时效校验:创建勋章,或者修改勋章图片key时,需使用1h内上传的图片key。 2954 } 2955 2956 type BadgeBuilder struct { 2957 id string // 租户内勋章的唯一标识,该值由系统随机生成。 2958 idFlag bool 2959 name string // 租户内唯一的勋章名称,最多30个字符。 2960 nameFlag bool 2961 explanation string // 勋章的描述文案,最多100个字符。 2962 explanationFlag bool 2963 detailImage string // 企业勋章的详情图Key。1.权限校验:非本租户上传的图片key,不能直接使用;2.时效校验:创建勋章,或者修改勋章图片key时,需使用1h内上传的图片key。 2964 detailImageFlag bool 2965 showImage string // 企业勋章的头像挂饰图Key。1.权限校验:非本租户上传的图片key,不能直接使用;2.时效校验:创建勋章,或者修改勋章图片key时,需使用1h内上传的图片key。 2966 showImageFlag bool 2967 } 2968 2969 func NewBadgeBuilder() *BadgeBuilder { 2970 builder := &BadgeBuilder{} 2971 return builder 2972 } 2973 2974 // 租户内勋章的唯一标识,该值由系统随机生成。 2975 // 2976 // 示例值:m_MzfKDM 2977 func (builder *BadgeBuilder) Id(id string) *BadgeBuilder { 2978 builder.id = id 2979 builder.idFlag = true 2980 return builder 2981 } 2982 2983 // 租户内唯一的勋章名称,最多30个字符。 2984 // 2985 // 示例值:激励勋章 2986 func (builder *BadgeBuilder) Name(name string) *BadgeBuilder { 2987 builder.name = name 2988 builder.nameFlag = true 2989 return builder 2990 } 2991 2992 // 勋章的描述文案,最多100个字符。 2993 // 2994 // 示例值:这枚勋章为了激励员工颁发。 2995 func (builder *BadgeBuilder) Explanation(explanation string) *BadgeBuilder { 2996 builder.explanation = explanation 2997 builder.explanationFlag = true 2998 return builder 2999 } 3000 3001 // 企业勋章的详情图Key。1.权限校验:非本租户上传的图片key,不能直接使用;2.时效校验:创建勋章,或者修改勋章图片key时,需使用1h内上传的图片key。 3002 // 3003 // 示例值:75a1949f-d9df-4b46-bc88-dacc51e88f3j 3004 func (builder *BadgeBuilder) DetailImage(detailImage string) *BadgeBuilder { 3005 builder.detailImage = detailImage 3006 builder.detailImageFlag = true 3007 return builder 3008 } 3009 3010 // 企业勋章的头像挂饰图Key。1.权限校验:非本租户上传的图片key,不能直接使用;2.时效校验:创建勋章,或者修改勋章图片key时,需使用1h内上传的图片key。 3011 // 3012 // 示例值:03daa74a-159f-49e9-963e-b6c4d76103fj 3013 func (builder *BadgeBuilder) ShowImage(showImage string) *BadgeBuilder { 3014 builder.showImage = showImage 3015 builder.showImageFlag = true 3016 return builder 3017 } 3018 3019 func (builder *BadgeBuilder) Build() *Badge { 3020 req := &Badge{} 3021 if builder.idFlag { 3022 req.Id = &builder.id 3023 3024 } 3025 if builder.nameFlag { 3026 req.Name = &builder.name 3027 3028 } 3029 if builder.explanationFlag { 3030 req.Explanation = &builder.explanation 3031 3032 } 3033 if builder.detailImageFlag { 3034 req.DetailImage = &builder.detailImage 3035 3036 } 3037 if builder.showImageFlag { 3038 req.ShowImage = &builder.showImage 3039 3040 } 3041 return req 3042 } 3043 3044 type File struct { 3045 Title *string `json:"title,omitempty"` // 文档标题 3046 Type *string `json:"type,omitempty"` // 文档类型 3047 Owner *User `json:"owner,omitempty"` // 文档所有者 3048 Size *string `json:"size,omitempty"` // 文档大小 3049 LastOpTime *string `json:"last_op_time,omitempty"` // 更新时间 3050 Status *string `json:"status,omitempty"` // 文档状态 3051 Token *string `json:"token,omitempty"` // 文档token 3052 } 3053 3054 type FileBuilder struct { 3055 title string // 文档标题 3056 titleFlag bool 3057 type_ string // 文档类型 3058 typeFlag bool 3059 owner *User // 文档所有者 3060 ownerFlag bool 3061 size string // 文档大小 3062 sizeFlag bool 3063 lastOpTime string // 更新时间 3064 lastOpTimeFlag bool 3065 status string // 文档状态 3066 statusFlag bool 3067 token string // 文档token 3068 tokenFlag bool 3069 } 3070 3071 func NewFileBuilder() *FileBuilder { 3072 builder := &FileBuilder{} 3073 return builder 3074 } 3075 3076 // 文档标题 3077 // 3078 // 示例值:文件管理综述 3079 func (builder *FileBuilder) Title(title string) *FileBuilder { 3080 builder.title = title 3081 builder.titleFlag = true 3082 return builder 3083 } 3084 3085 // 文档类型 3086 // 3087 // 示例值:doc 3088 func (builder *FileBuilder) Type(type_ string) *FileBuilder { 3089 builder.type_ = type_ 3090 builder.typeFlag = true 3091 return builder 3092 } 3093 3094 // 文档所有者 3095 // 3096 // 示例值: 3097 func (builder *FileBuilder) Owner(owner *User) *FileBuilder { 3098 builder.owner = owner 3099 builder.ownerFlag = true 3100 return builder 3101 } 3102 3103 // 文档大小 3104 // 3105 // 示例值:1024 3106 func (builder *FileBuilder) Size(size string) *FileBuilder { 3107 builder.size = size 3108 builder.sizeFlag = true 3109 return builder 3110 } 3111 3112 // 更新时间 3113 // 3114 // 示例值:1649419092 3115 func (builder *FileBuilder) LastOpTime(lastOpTime string) *FileBuilder { 3116 builder.lastOpTime = lastOpTime 3117 builder.lastOpTimeFlag = true 3118 return builder 3119 } 3120 3121 // 文档状态 3122 // 3123 // 示例值:1 3124 func (builder *FileBuilder) Status(status string) *FileBuilder { 3125 builder.status = status 3126 builder.statusFlag = true 3127 return builder 3128 } 3129 3130 // 文档token 3131 // 3132 // 示例值:doxbcOIyUhrRBWSKpBGfzefQgHe 3133 func (builder *FileBuilder) Token(token string) *FileBuilder { 3134 builder.token = token 3135 builder.tokenFlag = true 3136 return builder 3137 } 3138 3139 func (builder *FileBuilder) Build() *File { 3140 req := &File{} 3141 if builder.titleFlag { 3142 req.Title = &builder.title 3143 3144 } 3145 if builder.typeFlag { 3146 req.Type = &builder.type_ 3147 3148 } 3149 if builder.ownerFlag { 3150 req.Owner = builder.owner 3151 } 3152 if builder.sizeFlag { 3153 req.Size = &builder.size 3154 3155 } 3156 if builder.lastOpTimeFlag { 3157 req.LastOpTime = &builder.lastOpTime 3158 3159 } 3160 if builder.statusFlag { 3161 req.Status = &builder.status 3162 3163 } 3164 if builder.tokenFlag { 3165 req.Token = &builder.token 3166 3167 } 3168 return req 3169 } 3170 3171 type FileList struct { 3172 Files []*File `json:"files,omitempty"` // 文档token 3173 } 3174 3175 type FileListBuilder struct { 3176 files []*File // 文档token 3177 filesFlag bool 3178 } 3179 3180 func NewFileListBuilder() *FileListBuilder { 3181 builder := &FileListBuilder{} 3182 return builder 3183 } 3184 3185 // 文档token 3186 // 3187 // 示例值: 3188 func (builder *FileListBuilder) Files(files []*File) *FileListBuilder { 3189 builder.files = files 3190 builder.filesFlag = true 3191 return builder 3192 } 3193 3194 func (builder *FileListBuilder) Build() *FileList { 3195 req := &FileList{} 3196 if builder.filesFlag { 3197 req.Files = builder.files 3198 } 3199 return req 3200 } 3201 3202 type Grant struct { 3203 Id *string `json:"id,omitempty"` // 租户内授予名单的唯一标识,该值由系统随机生成。 3204 BadgeId *string `json:"badge_id,omitempty"` // 企业勋章的唯一ID 3205 Name *string `json:"name,omitempty"` // 勋章下唯一的授予事项,最多100个字符。 3206 GrantType *int `json:"grant_type,omitempty"` // 授予名单类型 3207 TimeZone *string `json:"time_zone,omitempty"` // 授予名单的生效时间对应的时区,用于检查RuleDetail的时间戳的取值是否规范,取值范围为TZ database name 3208 RuleDetail *RuleDetail `json:"rule_detail,omitempty"` // 规则详情 3209 IsGrantAll *bool `json:"is_grant_all,omitempty"` // 是否授予给全员。1.为false时,需要关联1~500个用户群体。2.为true时,不可关联用户、用户组、部门。 3210 UserIds []string `json:"user_ids,omitempty"` // 授予的用户ID列表,授予名单列表接口返回结果中不返回该字段,只在详情接口返回 3211 DepartmentIds []string `json:"department_ids,omitempty"` // 授予的部门ID列表,授予名单列表接口返回结果中不返回该字段,只在详情接口返回 3212 GroupIds []string `json:"group_ids,omitempty"` // 授予的用户组ID列表,授予名单列表接口返回结果中不返回该字段,只在详情接口返回 3213 } 3214 3215 type GrantBuilder struct { 3216 id string // 租户内授予名单的唯一标识,该值由系统随机生成。 3217 idFlag bool 3218 badgeId string // 企业勋章的唯一ID 3219 badgeIdFlag bool 3220 name string // 勋章下唯一的授予事项,最多100个字符。 3221 nameFlag bool 3222 grantType int // 授予名单类型 3223 grantTypeFlag bool 3224 timeZone string // 授予名单的生效时间对应的时区,用于检查RuleDetail的时间戳的取值是否规范,取值范围为TZ database name 3225 timeZoneFlag bool 3226 ruleDetail *RuleDetail // 规则详情 3227 ruleDetailFlag bool 3228 isGrantAll bool // 是否授予给全员。1.为false时,需要关联1~500个用户群体。2.为true时,不可关联用户、用户组、部门。 3229 isGrantAllFlag bool 3230 userIds []string // 授予的用户ID列表,授予名单列表接口返回结果中不返回该字段,只在详情接口返回 3231 userIdsFlag bool 3232 departmentIds []string // 授予的部门ID列表,授予名单列表接口返回结果中不返回该字段,只在详情接口返回 3233 departmentIdsFlag bool 3234 groupIds []string // 授予的用户组ID列表,授予名单列表接口返回结果中不返回该字段,只在详情接口返回 3235 groupIdsFlag bool 3236 } 3237 3238 func NewGrantBuilder() *GrantBuilder { 3239 builder := &GrantBuilder{} 3240 return builder 3241 } 3242 3243 // 租户内授予名单的唯一标识,该值由系统随机生成。 3244 // 3245 // 示例值:g_49Z7CQ 3246 func (builder *GrantBuilder) Id(id string) *GrantBuilder { 3247 builder.id = id 3248 builder.idFlag = true 3249 return builder 3250 } 3251 3252 // 企业勋章的唯一ID 3253 // 3254 // 示例值:m_qTR2HM 3255 func (builder *GrantBuilder) BadgeId(badgeId string) *GrantBuilder { 3256 builder.badgeId = badgeId 3257 builder.badgeIdFlag = true 3258 return builder 3259 } 3260 3261 // 勋章下唯一的授予事项,最多100个字符。 3262 // 3263 // 示例值:激励勋章的授予名单 3264 func (builder *GrantBuilder) Name(name string) *GrantBuilder { 3265 builder.name = name 3266 builder.nameFlag = true 3267 return builder 3268 } 3269 3270 // 授予名单类型 3271 // 3272 // 示例值:0 3273 func (builder *GrantBuilder) GrantType(grantType int) *GrantBuilder { 3274 builder.grantType = grantType 3275 builder.grantTypeFlag = true 3276 return builder 3277 } 3278 3279 // 授予名单的生效时间对应的时区,用于检查RuleDetail的时间戳的取值是否规范,取值范围为TZ database name 3280 // 3281 // 示例值:Asia/Shanghai 3282 func (builder *GrantBuilder) TimeZone(timeZone string) *GrantBuilder { 3283 builder.timeZone = timeZone 3284 builder.timeZoneFlag = true 3285 return builder 3286 } 3287 3288 // 规则详情 3289 // 3290 // 示例值: 3291 func (builder *GrantBuilder) RuleDetail(ruleDetail *RuleDetail) *GrantBuilder { 3292 builder.ruleDetail = ruleDetail 3293 builder.ruleDetailFlag = true 3294 return builder 3295 } 3296 3297 // 是否授予给全员。1.为false时,需要关联1~500个用户群体。2.为true时,不可关联用户、用户组、部门。 3298 // 3299 // 示例值:false 3300 func (builder *GrantBuilder) IsGrantAll(isGrantAll bool) *GrantBuilder { 3301 builder.isGrantAll = isGrantAll 3302 builder.isGrantAllFlag = true 3303 return builder 3304 } 3305 3306 // 授予的用户ID列表,授予名单列表接口返回结果中不返回该字段,只在详情接口返回 3307 // 3308 // 示例值:[u273y71] 3309 func (builder *GrantBuilder) UserIds(userIds []string) *GrantBuilder { 3310 builder.userIds = userIds 3311 builder.userIdsFlag = true 3312 return builder 3313 } 3314 3315 // 授予的部门ID列表,授予名单列表接口返回结果中不返回该字段,只在详情接口返回 3316 // 3317 // 示例值:[h121921] 3318 func (builder *GrantBuilder) DepartmentIds(departmentIds []string) *GrantBuilder { 3319 builder.departmentIds = departmentIds 3320 builder.departmentIdsFlag = true 3321 return builder 3322 } 3323 3324 // 授予的用户组ID列表,授予名单列表接口返回结果中不返回该字段,只在详情接口返回 3325 // 3326 // 示例值:[g122817] 3327 func (builder *GrantBuilder) GroupIds(groupIds []string) *GrantBuilder { 3328 builder.groupIds = groupIds 3329 builder.groupIdsFlag = true 3330 return builder 3331 } 3332 3333 func (builder *GrantBuilder) Build() *Grant { 3334 req := &Grant{} 3335 if builder.idFlag { 3336 req.Id = &builder.id 3337 3338 } 3339 if builder.badgeIdFlag { 3340 req.BadgeId = &builder.badgeId 3341 3342 } 3343 if builder.nameFlag { 3344 req.Name = &builder.name 3345 3346 } 3347 if builder.grantTypeFlag { 3348 req.GrantType = &builder.grantType 3349 3350 } 3351 if builder.timeZoneFlag { 3352 req.TimeZone = &builder.timeZone 3353 3354 } 3355 if builder.ruleDetailFlag { 3356 req.RuleDetail = builder.ruleDetail 3357 } 3358 if builder.isGrantAllFlag { 3359 req.IsGrantAll = &builder.isGrantAll 3360 3361 } 3362 if builder.userIdsFlag { 3363 req.UserIds = builder.userIds 3364 } 3365 if builder.departmentIdsFlag { 3366 req.DepartmentIds = builder.departmentIds 3367 } 3368 if builder.groupIdsFlag { 3369 req.GroupIds = builder.groupIds 3370 } 3371 return req 3372 } 3373 3374 type Password struct { 3375 EntEmailPassword *string `json:"ent_email_password,omitempty"` // 企业邮箱密码 3376 } 3377 3378 type PasswordBuilder struct { 3379 entEmailPassword string // 企业邮箱密码 3380 entEmailPasswordFlag bool 3381 } 3382 3383 func NewPasswordBuilder() *PasswordBuilder { 3384 builder := &PasswordBuilder{} 3385 return builder 3386 } 3387 3388 // 企业邮箱密码 3389 // 3390 // 示例值:abcd*efg 3391 func (builder *PasswordBuilder) EntEmailPassword(entEmailPassword string) *PasswordBuilder { 3392 builder.entEmailPassword = entEmailPassword 3393 builder.entEmailPasswordFlag = true 3394 return builder 3395 } 3396 3397 func (builder *PasswordBuilder) Build() *Password { 3398 req := &Password{} 3399 if builder.entEmailPasswordFlag { 3400 req.EntEmailPassword = &builder.entEmailPassword 3401 3402 } 3403 return req 3404 } 3405 3406 type RuleDetail struct { 3407 EffectiveTime *string `json:"effective_time,omitempty"` // 开始生效的时间戳。1.手动设置有效期类型勋章,配置有效期限需要配置该字段;2.时间戳必须是所在时区当天的零点时间戳,如时区为Asia/Shanghai时区时的1649606400 3408 ExpirationTime *string `json:"expiration_time,omitempty"` // 结束生效的时间戳。1.手动设置有效期类型勋章,配置有效期限需要配置该字段;2.最大值:不得超过effective_time+100 年;3.非永久有效:时间戳必须是所在时区当天的23:59:59时间戳,如时区为Asia/Shanghai时区时的1649692799;4.永久有效:传值为0即可 3409 Anniversary *int `json:"anniversary,omitempty"` // 入职周年日。根据入职时间发放类型勋章,需要配置该字段。 3410 EffectivePeriod *int `json:"effective_period,omitempty"` // 有效期限。根据入职时间发放类型勋章,需要配置该字段。 3411 } 3412 3413 type RuleDetailBuilder struct { 3414 effectiveTime string // 开始生效的时间戳。1.手动设置有效期类型勋章,配置有效期限需要配置该字段;2.时间戳必须是所在时区当天的零点时间戳,如时区为Asia/Shanghai时区时的1649606400 3415 effectiveTimeFlag bool 3416 expirationTime string // 结束生效的时间戳。1.手动设置有效期类型勋章,配置有效期限需要配置该字段;2.最大值:不得超过effective_time+100 年;3.非永久有效:时间戳必须是所在时区当天的23:59:59时间戳,如时区为Asia/Shanghai时区时的1649692799;4.永久有效:传值为0即可 3417 expirationTimeFlag bool 3418 anniversary int // 入职周年日。根据入职时间发放类型勋章,需要配置该字段。 3419 anniversaryFlag bool 3420 effectivePeriod int // 有效期限。根据入职时间发放类型勋章,需要配置该字段。 3421 effectivePeriodFlag bool 3422 } 3423 3424 func NewRuleDetailBuilder() *RuleDetailBuilder { 3425 builder := &RuleDetailBuilder{} 3426 return builder 3427 } 3428 3429 // 开始生效的时间戳。1.手动设置有效期类型勋章,配置有效期限需要配置该字段;2.时间戳必须是所在时区当天的零点时间戳,如时区为Asia/Shanghai时区时的1649606400 3430 // 3431 // 示例值:1649606400 3432 func (builder *RuleDetailBuilder) EffectiveTime(effectiveTime string) *RuleDetailBuilder { 3433 builder.effectiveTime = effectiveTime 3434 builder.effectiveTimeFlag = true 3435 return builder 3436 } 3437 3438 // 结束生效的时间戳。1.手动设置有效期类型勋章,配置有效期限需要配置该字段;2.最大值:不得超过effective_time+100 年;3.非永久有效:时间戳必须是所在时区当天的23:59:59时间戳,如时区为Asia/Shanghai时区时的1649692799;4.永久有效:传值为0即可 3439 // 3440 // 示例值:1649692799 3441 func (builder *RuleDetailBuilder) ExpirationTime(expirationTime string) *RuleDetailBuilder { 3442 builder.expirationTime = expirationTime 3443 builder.expirationTimeFlag = true 3444 return builder 3445 } 3446 3447 // 入职周年日。根据入职时间发放类型勋章,需要配置该字段。 3448 // 3449 // 示例值:1 3450 func (builder *RuleDetailBuilder) Anniversary(anniversary int) *RuleDetailBuilder { 3451 builder.anniversary = anniversary 3452 builder.anniversaryFlag = true 3453 return builder 3454 } 3455 3456 // 有效期限。根据入职时间发放类型勋章,需要配置该字段。 3457 // 3458 // 示例值:1 3459 func (builder *RuleDetailBuilder) EffectivePeriod(effectivePeriod int) *RuleDetailBuilder { 3460 builder.effectivePeriod = effectivePeriod 3461 builder.effectivePeriodFlag = true 3462 return builder 3463 } 3464 3465 func (builder *RuleDetailBuilder) Build() *RuleDetail { 3466 req := &RuleDetail{} 3467 if builder.effectiveTimeFlag { 3468 req.EffectiveTime = &builder.effectiveTime 3469 3470 } 3471 if builder.expirationTimeFlag { 3472 req.ExpirationTime = &builder.expirationTime 3473 3474 } 3475 if builder.anniversaryFlag { 3476 req.Anniversary = &builder.anniversary 3477 3478 } 3479 if builder.effectivePeriodFlag { 3480 req.EffectivePeriod = &builder.effectivePeriod 3481 3482 } 3483 return req 3484 } 3485 3486 type SplashPageStat struct { 3487 Date *string `json:"date,omitempty"` // 日期 3488 SplashId *string `json:"splash_id,omitempty"` // 开屏素材id 3489 ImpressionCount *int `json:"impression_count,omitempty"` // 曝光数 3490 ClickCount *int `json:"click_count,omitempty"` // 点击数 3491 SkipCount *int `json:"skip_count,omitempty"` // 点击跳过数 3492 ImpressionCountAccumulate *int `json:"impression_count_accumulate,omitempty"` // 累计曝光 3493 ClickCountAccumulate *int `json:"click_count_accumulate,omitempty"` // 累计点击 3494 SkipCountAccumulate *int `json:"skip_count_accumulate,omitempty"` // 累积点击跳过数 3495 } 3496 3497 type SplashPageStatBuilder struct { 3498 date string // 日期 3499 dateFlag bool 3500 splashId string // 开屏素材id 3501 splashIdFlag bool 3502 impressionCount int // 曝光数 3503 impressionCountFlag bool 3504 clickCount int // 点击数 3505 clickCountFlag bool 3506 skipCount int // 点击跳过数 3507 skipCountFlag bool 3508 impressionCountAccumulate int // 累计曝光 3509 impressionCountAccumulateFlag bool 3510 clickCountAccumulate int // 累计点击 3511 clickCountAccumulateFlag bool 3512 skipCountAccumulate int // 累积点击跳过数 3513 skipCountAccumulateFlag bool 3514 } 3515 3516 func NewSplashPageStatBuilder() *SplashPageStatBuilder { 3517 builder := &SplashPageStatBuilder{} 3518 return builder 3519 } 3520 3521 // 日期 3522 // 3523 // 示例值: 3524 func (builder *SplashPageStatBuilder) Date(date string) *SplashPageStatBuilder { 3525 builder.date = date 3526 builder.dateFlag = true 3527 return builder 3528 } 3529 3530 // 开屏素材id 3531 // 3532 // 示例值: 3533 func (builder *SplashPageStatBuilder) SplashId(splashId string) *SplashPageStatBuilder { 3534 builder.splashId = splashId 3535 builder.splashIdFlag = true 3536 return builder 3537 } 3538 3539 // 曝光数 3540 // 3541 // 示例值: 3542 func (builder *SplashPageStatBuilder) ImpressionCount(impressionCount int) *SplashPageStatBuilder { 3543 builder.impressionCount = impressionCount 3544 builder.impressionCountFlag = true 3545 return builder 3546 } 3547 3548 // 点击数 3549 // 3550 // 示例值: 3551 func (builder *SplashPageStatBuilder) ClickCount(clickCount int) *SplashPageStatBuilder { 3552 builder.clickCount = clickCount 3553 builder.clickCountFlag = true 3554 return builder 3555 } 3556 3557 // 点击跳过数 3558 // 3559 // 示例值: 3560 func (builder *SplashPageStatBuilder) SkipCount(skipCount int) *SplashPageStatBuilder { 3561 builder.skipCount = skipCount 3562 builder.skipCountFlag = true 3563 return builder 3564 } 3565 3566 // 累计曝光 3567 // 3568 // 示例值: 3569 func (builder *SplashPageStatBuilder) ImpressionCountAccumulate(impressionCountAccumulate int) *SplashPageStatBuilder { 3570 builder.impressionCountAccumulate = impressionCountAccumulate 3571 builder.impressionCountAccumulateFlag = true 3572 return builder 3573 } 3574 3575 // 累计点击 3576 // 3577 // 示例值: 3578 func (builder *SplashPageStatBuilder) ClickCountAccumulate(clickCountAccumulate int) *SplashPageStatBuilder { 3579 builder.clickCountAccumulate = clickCountAccumulate 3580 builder.clickCountAccumulateFlag = true 3581 return builder 3582 } 3583 3584 // 累积点击跳过数 3585 // 3586 // 示例值: 3587 func (builder *SplashPageStatBuilder) SkipCountAccumulate(skipCountAccumulate int) *SplashPageStatBuilder { 3588 builder.skipCountAccumulate = skipCountAccumulate 3589 builder.skipCountAccumulateFlag = true 3590 return builder 3591 } 3592 3593 func (builder *SplashPageStatBuilder) Build() *SplashPageStat { 3594 req := &SplashPageStat{} 3595 if builder.dateFlag { 3596 req.Date = &builder.date 3597 3598 } 3599 if builder.splashIdFlag { 3600 req.SplashId = &builder.splashId 3601 3602 } 3603 if builder.impressionCountFlag { 3604 req.ImpressionCount = &builder.impressionCount 3605 3606 } 3607 if builder.clickCountFlag { 3608 req.ClickCount = &builder.clickCount 3609 3610 } 3611 if builder.skipCountFlag { 3612 req.SkipCount = &builder.skipCount 3613 3614 } 3615 if builder.impressionCountAccumulateFlag { 3616 req.ImpressionCountAccumulate = &builder.impressionCountAccumulate 3617 3618 } 3619 if builder.clickCountAccumulateFlag { 3620 req.ClickCountAccumulate = &builder.clickCountAccumulate 3621 3622 } 3623 if builder.skipCountAccumulateFlag { 3624 req.SkipCountAccumulate = &builder.skipCountAccumulate 3625 3626 } 3627 return req 3628 } 3629 3630 type User struct { 3631 Name *string `json:"name,omitempty"` // 用户名称 3632 Avatar *string `json:"avatar,omitempty"` // 用户头像 3633 Id *string `json:"id,omitempty"` // 用户ID 3634 } 3635 3636 type UserBuilder struct { 3637 name string // 用户名称 3638 nameFlag bool 3639 avatar string // 用户头像 3640 avatarFlag bool 3641 id string // 用户ID 3642 idFlag bool 3643 } 3644 3645 func NewUserBuilder() *UserBuilder { 3646 builder := &UserBuilder{} 3647 return builder 3648 } 3649 3650 // 用户名称 3651 // 3652 // 示例值:张三 3653 func (builder *UserBuilder) Name(name string) *UserBuilder { 3654 builder.name = name 3655 builder.nameFlag = true 3656 return builder 3657 } 3658 3659 // 用户头像 3660 // 3661 // 示例值:https://internal-api-lark-file.feishu-boe.cn/static-resource/v1/d50ddc01-5ddb-4431-950e-452637e4a09j~?image_size=72x72&cut_type=default-face&quality=&format=png&sticker_format=.webp 3662 func (builder *UserBuilder) Avatar(avatar string) *UserBuilder { 3663 builder.avatar = avatar 3664 builder.avatarFlag = true 3665 return builder 3666 } 3667 3668 // 用户ID 3669 // 3670 // 示例值:6994699009591869459 3671 func (builder *UserBuilder) Id(id string) *UserBuilder { 3672 builder.id = id 3673 builder.idFlag = true 3674 return builder 3675 } 3676 3677 func (builder *UserBuilder) Build() *User { 3678 req := &User{} 3679 if builder.nameFlag { 3680 req.Name = &builder.name 3681 3682 } 3683 if builder.avatarFlag { 3684 req.Avatar = &builder.avatar 3685 3686 } 3687 if builder.idFlag { 3688 req.Id = &builder.id 3689 3690 } 3691 return req 3692 } 3693 3694 type UserAnnualReport struct { 3695 Year2021 *UserReport2021 `json:"year_2021,omitempty"` // 2021用户年度报告 3696 } 3697 3698 type UserAnnualReportBuilder struct { 3699 year2021 *UserReport2021 // 2021用户年度报告 3700 year2021Flag bool 3701 } 3702 3703 func NewUserAnnualReportBuilder() *UserAnnualReportBuilder { 3704 builder := &UserAnnualReportBuilder{} 3705 return builder 3706 } 3707 3708 // 2021用户年度报告 3709 // 3710 // 示例值: 3711 func (builder *UserAnnualReportBuilder) Year2021(year2021 *UserReport2021) *UserAnnualReportBuilder { 3712 builder.year2021 = year2021 3713 builder.year2021Flag = true 3714 return builder 3715 } 3716 3717 func (builder *UserAnnualReportBuilder) Build() *UserAnnualReport { 3718 req := &UserAnnualReport{} 3719 if builder.year2021Flag { 3720 req.Year2021 = builder.year2021 3721 } 3722 return req 3723 } 3724 3725 type UserReport2021 struct { 3726 ActiveDayCount *int `json:"active_day_count,omitempty"` // 活跃时长> 0的天数 3727 BusyWeek *string `json:"busy_week,omitempty"` // 工作日平均活跃最长的一周,「2021W10」格式 3728 P2pChatCount *string `json:"p2p_chat_count,omitempty"` // 单聊过的人数(仅限普通单聊,不包括bot等,不限本人是否有过发送消息) 3729 TalkedChatCount *string `json:"talked_chat_count,omitempty"` // 发过言的群数 3730 FavoriteEmoji *string `json:"favorite_emoji,omitempty"` // 任何场景下发的表情次数最多的一个表情 3731 ReactionCount *string `json:"reaction_count,omitempty"` // 本人使用快捷表情的次数 3732 ConferenceCreateCount *string `json:"conference_create_count,omitempty"` // 创建了日程并发起了视频会议的次数 3733 TotalPartiCount *string `json:"total_parti_count,omitempty"` // 创建日程中涉及到的总人次 3734 MinutesObjectCount *string `json:"minutes_object_count,omitempty"` // 录制了多少篇妙记 3735 MinutesDuration *float64 `json:"minutes_duration,omitempty"` // 录制妙记累积时长(分钟) 3736 CreateEditFileCount *string `json:"create_edit_file_count,omitempty"` // 创建及参与协作的文档篇数 3737 CreateFileCount *string `json:"create_file_count,omitempty"` // 创建文档数 3738 CooperateEditFileCount *string `json:"cooperate_edit_file_count,omitempty"` // 参与协作文档数 3739 LikeRecordCount *string `json:"like_record_count,omitempty"` // 所属的文档共获得多少个点赞 3740 OkrCumOCount *string `json:"okr_cum_o_count,omitempty"` // 填写过的O的数量 3741 OkrCumKrCount *string `json:"okr_cum_kr_count,omitempty"` // 填写过的KR的数量 3742 OkrAlignedUserRankfirst *string `json:"okr_aligned_user_rankfirst,omitempty"` // 被对齐次数最多的用户 3743 ApprovalStartCount *string `json:"approval_start_count,omitempty"` // 发起的审批流程数 3744 ApprovalExecuteCount *string `json:"approval_execute_count,omitempty"` // 处理的审批流程数 3745 ApprovalRelationUserRankfirst *string `json:"approval_relation_user_rankfirst,omitempty"` // 审批协作次数最多的用户(在同一个审批实例中出现过即算为审批协作) 3746 UserId *string `json:"user_id,omitempty"` // 用户id 3747 BusyWeekSumDuration *string `json:"busy_week_sum_duration,omitempty"` // 工作日平均活跃最长的一周 的总活跃时长(分钟) 3748 BusyWeekMdate *string `json:"busy_week_mdate,omitempty"` // 工作日平均活跃最长的一周 的最早工作日 3749 BusyWeekActDays *int `json:"busy_week_act_days,omitempty"` // 工作日平均活跃最长的一周 有活跃的工作日天数 3750 CreateReadUserCount *string `json:"create_read_user_count,omitempty"` // 创建的文档被XXX人阅读过 3751 } 3752 3753 type UserReport2021Builder struct { 3754 activeDayCount int // 活跃时长> 0的天数 3755 activeDayCountFlag bool 3756 busyWeek string // 工作日平均活跃最长的一周,「2021W10」格式 3757 busyWeekFlag bool 3758 p2pChatCount string // 单聊过的人数(仅限普通单聊,不包括bot等,不限本人是否有过发送消息) 3759 p2pChatCountFlag bool 3760 talkedChatCount string // 发过言的群数 3761 talkedChatCountFlag bool 3762 favoriteEmoji string // 任何场景下发的表情次数最多的一个表情 3763 favoriteEmojiFlag bool 3764 reactionCount string // 本人使用快捷表情的次数 3765 reactionCountFlag bool 3766 conferenceCreateCount string // 创建了日程并发起了视频会议的次数 3767 conferenceCreateCountFlag bool 3768 totalPartiCount string // 创建日程中涉及到的总人次 3769 totalPartiCountFlag bool 3770 minutesObjectCount string // 录制了多少篇妙记 3771 minutesObjectCountFlag bool 3772 minutesDuration float64 // 录制妙记累积时长(分钟) 3773 minutesDurationFlag bool 3774 createEditFileCount string // 创建及参与协作的文档篇数 3775 createEditFileCountFlag bool 3776 createFileCount string // 创建文档数 3777 createFileCountFlag bool 3778 cooperateEditFileCount string // 参与协作文档数 3779 cooperateEditFileCountFlag bool 3780 likeRecordCount string // 所属的文档共获得多少个点赞 3781 likeRecordCountFlag bool 3782 okrCumOCount string // 填写过的O的数量 3783 okrCumOCountFlag bool 3784 okrCumKrCount string // 填写过的KR的数量 3785 okrCumKrCountFlag bool 3786 okrAlignedUserRankfirst string // 被对齐次数最多的用户 3787 okrAlignedUserRankfirstFlag bool 3788 approvalStartCount string // 发起的审批流程数 3789 approvalStartCountFlag bool 3790 approvalExecuteCount string // 处理的审批流程数 3791 approvalExecuteCountFlag bool 3792 approvalRelationUserRankfirst string // 审批协作次数最多的用户(在同一个审批实例中出现过即算为审批协作) 3793 approvalRelationUserRankfirstFlag bool 3794 userId string // 用户id 3795 userIdFlag bool 3796 busyWeekSumDuration string // 工作日平均活跃最长的一周 的总活跃时长(分钟) 3797 busyWeekSumDurationFlag bool 3798 busyWeekMdate string // 工作日平均活跃最长的一周 的最早工作日 3799 busyWeekMdateFlag bool 3800 busyWeekActDays int // 工作日平均活跃最长的一周 有活跃的工作日天数 3801 busyWeekActDaysFlag bool 3802 createReadUserCount string // 创建的文档被XXX人阅读过 3803 createReadUserCountFlag bool 3804 } 3805 3806 func NewUserReport2021Builder() *UserReport2021Builder { 3807 builder := &UserReport2021Builder{} 3808 return builder 3809 } 3810 3811 // 活跃时长> 0的天数 3812 // 3813 // 示例值:111 3814 func (builder *UserReport2021Builder) ActiveDayCount(activeDayCount int) *UserReport2021Builder { 3815 builder.activeDayCount = activeDayCount 3816 builder.activeDayCountFlag = true 3817 return builder 3818 } 3819 3820 // 工作日平均活跃最长的一周,「2021W10」格式 3821 // 3822 // 示例值:2021W33 3823 func (builder *UserReport2021Builder) BusyWeek(busyWeek string) *UserReport2021Builder { 3824 builder.busyWeek = busyWeek 3825 builder.busyWeekFlag = true 3826 return builder 3827 } 3828 3829 // 单聊过的人数(仅限普通单聊,不包括bot等,不限本人是否有过发送消息) 3830 // 3831 // 示例值:3 3832 func (builder *UserReport2021Builder) P2pChatCount(p2pChatCount string) *UserReport2021Builder { 3833 builder.p2pChatCount = p2pChatCount 3834 builder.p2pChatCountFlag = true 3835 return builder 3836 } 3837 3838 // 发过言的群数 3839 // 3840 // 示例值:4 3841 func (builder *UserReport2021Builder) TalkedChatCount(talkedChatCount string) *UserReport2021Builder { 3842 builder.talkedChatCount = talkedChatCount 3843 builder.talkedChatCountFlag = true 3844 return builder 3845 } 3846 3847 // 任何场景下发的表情次数最多的一个表情 3848 // 3849 // 示例值:MUSCLE 3850 func (builder *UserReport2021Builder) FavoriteEmoji(favoriteEmoji string) *UserReport2021Builder { 3851 builder.favoriteEmoji = favoriteEmoji 3852 builder.favoriteEmojiFlag = true 3853 return builder 3854 } 3855 3856 // 本人使用快捷表情的次数 3857 // 3858 // 示例值:341 3859 func (builder *UserReport2021Builder) ReactionCount(reactionCount string) *UserReport2021Builder { 3860 builder.reactionCount = reactionCount 3861 builder.reactionCountFlag = true 3862 return builder 3863 } 3864 3865 // 创建了日程并发起了视频会议的次数 3866 // 3867 // 示例值:78 3868 func (builder *UserReport2021Builder) ConferenceCreateCount(conferenceCreateCount string) *UserReport2021Builder { 3869 builder.conferenceCreateCount = conferenceCreateCount 3870 builder.conferenceCreateCountFlag = true 3871 return builder 3872 } 3873 3874 // 创建日程中涉及到的总人次 3875 // 3876 // 示例值:1 3877 func (builder *UserReport2021Builder) TotalPartiCount(totalPartiCount string) *UserReport2021Builder { 3878 builder.totalPartiCount = totalPartiCount 3879 builder.totalPartiCountFlag = true 3880 return builder 3881 } 3882 3883 // 录制了多少篇妙记 3884 // 3885 // 示例值:0 3886 func (builder *UserReport2021Builder) MinutesObjectCount(minutesObjectCount string) *UserReport2021Builder { 3887 builder.minutesObjectCount = minutesObjectCount 3888 builder.minutesObjectCountFlag = true 3889 return builder 3890 } 3891 3892 // 录制妙记累积时长(分钟) 3893 // 3894 // 示例值:0 3895 func (builder *UserReport2021Builder) MinutesDuration(minutesDuration float64) *UserReport2021Builder { 3896 builder.minutesDuration = minutesDuration 3897 builder.minutesDurationFlag = true 3898 return builder 3899 } 3900 3901 // 创建及参与协作的文档篇数 3902 // 3903 // 示例值:0 3904 func (builder *UserReport2021Builder) CreateEditFileCount(createEditFileCount string) *UserReport2021Builder { 3905 builder.createEditFileCount = createEditFileCount 3906 builder.createEditFileCountFlag = true 3907 return builder 3908 } 3909 3910 // 创建文档数 3911 // 3912 // 示例值:0 3913 func (builder *UserReport2021Builder) CreateFileCount(createFileCount string) *UserReport2021Builder { 3914 builder.createFileCount = createFileCount 3915 builder.createFileCountFlag = true 3916 return builder 3917 } 3918 3919 // 参与协作文档数 3920 // 3921 // 示例值:0 3922 func (builder *UserReport2021Builder) CooperateEditFileCount(cooperateEditFileCount string) *UserReport2021Builder { 3923 builder.cooperateEditFileCount = cooperateEditFileCount 3924 builder.cooperateEditFileCountFlag = true 3925 return builder 3926 } 3927 3928 // 所属的文档共获得多少个点赞 3929 // 3930 // 示例值:0 3931 func (builder *UserReport2021Builder) LikeRecordCount(likeRecordCount string) *UserReport2021Builder { 3932 builder.likeRecordCount = likeRecordCount 3933 builder.likeRecordCountFlag = true 3934 return builder 3935 } 3936 3937 // 填写过的O的数量 3938 // 3939 // 示例值:0 3940 func (builder *UserReport2021Builder) OkrCumOCount(okrCumOCount string) *UserReport2021Builder { 3941 builder.okrCumOCount = okrCumOCount 3942 builder.okrCumOCountFlag = true 3943 return builder 3944 } 3945 3946 // 填写过的KR的数量 3947 // 3948 // 示例值:0 3949 func (builder *UserReport2021Builder) OkrCumKrCount(okrCumKrCount string) *UserReport2021Builder { 3950 builder.okrCumKrCount = okrCumKrCount 3951 builder.okrCumKrCountFlag = true 3952 return builder 3953 } 3954 3955 // 被对齐次数最多的用户 3956 // 3957 // 示例值:ou_XXXXXXX 3958 func (builder *UserReport2021Builder) OkrAlignedUserRankfirst(okrAlignedUserRankfirst string) *UserReport2021Builder { 3959 builder.okrAlignedUserRankfirst = okrAlignedUserRankfirst 3960 builder.okrAlignedUserRankfirstFlag = true 3961 return builder 3962 } 3963 3964 // 发起的审批流程数 3965 // 3966 // 示例值:0 3967 func (builder *UserReport2021Builder) ApprovalStartCount(approvalStartCount string) *UserReport2021Builder { 3968 builder.approvalStartCount = approvalStartCount 3969 builder.approvalStartCountFlag = true 3970 return builder 3971 } 3972 3973 // 处理的审批流程数 3974 // 3975 // 示例值:0 3976 func (builder *UserReport2021Builder) ApprovalExecuteCount(approvalExecuteCount string) *UserReport2021Builder { 3977 builder.approvalExecuteCount = approvalExecuteCount 3978 builder.approvalExecuteCountFlag = true 3979 return builder 3980 } 3981 3982 // 审批协作次数最多的用户(在同一个审批实例中出现过即算为审批协作) 3983 // 3984 // 示例值:ou_XXXXXXX 3985 func (builder *UserReport2021Builder) ApprovalRelationUserRankfirst(approvalRelationUserRankfirst string) *UserReport2021Builder { 3986 builder.approvalRelationUserRankfirst = approvalRelationUserRankfirst 3987 builder.approvalRelationUserRankfirstFlag = true 3988 return builder 3989 } 3990 3991 // 用户id 3992 // 3993 // 示例值:ou_XXXXXXX 3994 func (builder *UserReport2021Builder) UserId(userId string) *UserReport2021Builder { 3995 builder.userId = userId 3996 builder.userIdFlag = true 3997 return builder 3998 } 3999 4000 // 工作日平均活跃最长的一周 的总活跃时长(分钟) 4001 // 4002 // 示例值:1816 4003 func (builder *UserReport2021Builder) BusyWeekSumDuration(busyWeekSumDuration string) *UserReport2021Builder { 4004 builder.busyWeekSumDuration = busyWeekSumDuration 4005 builder.busyWeekSumDurationFlag = true 4006 return builder 4007 } 4008 4009 // 工作日平均活跃最长的一周 的最早工作日 4010 // 4011 // 示例值:20210816 4012 func (builder *UserReport2021Builder) BusyWeekMdate(busyWeekMdate string) *UserReport2021Builder { 4013 builder.busyWeekMdate = busyWeekMdate 4014 builder.busyWeekMdateFlag = true 4015 return builder 4016 } 4017 4018 // 工作日平均活跃最长的一周 有活跃的工作日天数 4019 // 4020 // 示例值:4 4021 func (builder *UserReport2021Builder) BusyWeekActDays(busyWeekActDays int) *UserReport2021Builder { 4022 builder.busyWeekActDays = busyWeekActDays 4023 builder.busyWeekActDaysFlag = true 4024 return builder 4025 } 4026 4027 // 创建的文档被XXX人阅读过 4028 // 4029 // 示例值:10 4030 func (builder *UserReport2021Builder) CreateReadUserCount(createReadUserCount string) *UserReport2021Builder { 4031 builder.createReadUserCount = createReadUserCount 4032 builder.createReadUserCountFlag = true 4033 return builder 4034 } 4035 4036 func (builder *UserReport2021Builder) Build() *UserReport2021 { 4037 req := &UserReport2021{} 4038 if builder.activeDayCountFlag { 4039 req.ActiveDayCount = &builder.activeDayCount 4040 4041 } 4042 if builder.busyWeekFlag { 4043 req.BusyWeek = &builder.busyWeek 4044 4045 } 4046 if builder.p2pChatCountFlag { 4047 req.P2pChatCount = &builder.p2pChatCount 4048 4049 } 4050 if builder.talkedChatCountFlag { 4051 req.TalkedChatCount = &builder.talkedChatCount 4052 4053 } 4054 if builder.favoriteEmojiFlag { 4055 req.FavoriteEmoji = &builder.favoriteEmoji 4056 4057 } 4058 if builder.reactionCountFlag { 4059 req.ReactionCount = &builder.reactionCount 4060 4061 } 4062 if builder.conferenceCreateCountFlag { 4063 req.ConferenceCreateCount = &builder.conferenceCreateCount 4064 4065 } 4066 if builder.totalPartiCountFlag { 4067 req.TotalPartiCount = &builder.totalPartiCount 4068 4069 } 4070 if builder.minutesObjectCountFlag { 4071 req.MinutesObjectCount = &builder.minutesObjectCount 4072 4073 } 4074 if builder.minutesDurationFlag { 4075 req.MinutesDuration = &builder.minutesDuration 4076 4077 } 4078 if builder.createEditFileCountFlag { 4079 req.CreateEditFileCount = &builder.createEditFileCount 4080 4081 } 4082 if builder.createFileCountFlag { 4083 req.CreateFileCount = &builder.createFileCount 4084 4085 } 4086 if builder.cooperateEditFileCountFlag { 4087 req.CooperateEditFileCount = &builder.cooperateEditFileCount 4088 4089 } 4090 if builder.likeRecordCountFlag { 4091 req.LikeRecordCount = &builder.likeRecordCount 4092 4093 } 4094 if builder.okrCumOCountFlag { 4095 req.OkrCumOCount = &builder.okrCumOCount 4096 4097 } 4098 if builder.okrCumKrCountFlag { 4099 req.OkrCumKrCount = &builder.okrCumKrCount 4100 4101 } 4102 if builder.okrAlignedUserRankfirstFlag { 4103 req.OkrAlignedUserRankfirst = &builder.okrAlignedUserRankfirst 4104 4105 } 4106 if builder.approvalStartCountFlag { 4107 req.ApprovalStartCount = &builder.approvalStartCount 4108 4109 } 4110 if builder.approvalExecuteCountFlag { 4111 req.ApprovalExecuteCount = &builder.approvalExecuteCount 4112 4113 } 4114 if builder.approvalRelationUserRankfirstFlag { 4115 req.ApprovalRelationUserRankfirst = &builder.approvalRelationUserRankfirst 4116 4117 } 4118 if builder.userIdFlag { 4119 req.UserId = &builder.userId 4120 4121 } 4122 if builder.busyWeekSumDurationFlag { 4123 req.BusyWeekSumDuration = &builder.busyWeekSumDuration 4124 4125 } 4126 if builder.busyWeekMdateFlag { 4127 req.BusyWeekMdate = &builder.busyWeekMdate 4128 4129 } 4130 if builder.busyWeekActDaysFlag { 4131 req.BusyWeekActDays = &builder.busyWeekActDays 4132 4133 } 4134 if builder.createReadUserCountFlag { 4135 req.CreateReadUserCount = &builder.createReadUserCount 4136 4137 } 4138 return req 4139 } 4140 4141 type ListAdminDeptStatReqBuilder struct { 4142 apiReq *larkcore.ApiReq 4143 } 4144 4145 func NewListAdminDeptStatReqBuilder() *ListAdminDeptStatReqBuilder { 4146 builder := &ListAdminDeptStatReqBuilder{} 4147 builder.apiReq = &larkcore.ApiReq{ 4148 PathParams: larkcore.PathParams{}, 4149 QueryParams: larkcore.QueryParams{}, 4150 } 4151 return builder 4152 } 4153 4154 // 部门ID类型 4155 // 4156 // 示例值:open_department_id 4157 func (builder *ListAdminDeptStatReqBuilder) DepartmentIdType(departmentIdType string) *ListAdminDeptStatReqBuilder { 4158 builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType)) 4159 return builder 4160 } 4161 4162 // 起始日期(包含),格式是YYYY-mm-dd 4163 // 4164 // 示例值:2020-02-15 4165 func (builder *ListAdminDeptStatReqBuilder) StartDate(startDate string) *ListAdminDeptStatReqBuilder { 4166 builder.apiReq.QueryParams.Set("start_date", fmt.Sprint(startDate)) 4167 return builder 4168 } 4169 4170 // 终止日期(包含),格式是YYYY-mm-dd,起止日期之间相差不能超过91天(包含91天) 4171 // 4172 // 示例值:2020-02-15 4173 func (builder *ListAdminDeptStatReqBuilder) EndDate(endDate string) *ListAdminDeptStatReqBuilder { 4174 builder.apiReq.QueryParams.Set("end_date", fmt.Sprint(endDate)) 4175 return builder 4176 } 4177 4178 // 部门的 ID,取决于department_id_type,仅支持根部门及其下前4级子部门 4179 // 4180 // 示例值:od-382e2793cfc9471f892e8a672987654c 4181 func (builder *ListAdminDeptStatReqBuilder) DepartmentId(departmentId string) *ListAdminDeptStatReqBuilder { 4182 builder.apiReq.QueryParams.Set("department_id", fmt.Sprint(departmentId)) 4183 return builder 4184 } 4185 4186 // 是否包含子部门,如果该值为false,则只查出本部门直属用户活跃和功能使用数据;如果该值为true,则查出该部门以及其子部门(子部门层级最多不超过根部门下的前4级)的用户活跃和功能使用数据 4187 // 4188 // 示例值:false 4189 func (builder *ListAdminDeptStatReqBuilder) ContainsChildDept(containsChildDept bool) *ListAdminDeptStatReqBuilder { 4190 builder.apiReq.QueryParams.Set("contains_child_dept", fmt.Sprint(containsChildDept)) 4191 return builder 4192 } 4193 4194 // 分页大小,默认是10 4195 // 4196 // 示例值:10 4197 func (builder *ListAdminDeptStatReqBuilder) PageSize(pageSize int) *ListAdminDeptStatReqBuilder { 4198 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 4199 return builder 4200 } 4201 4202 // 分页标记,第一次请求不填,表示从头开始遍历;当返回的has_more为true时,会返回新的page_token,再次调用接口,传入这个page_token,将获得下一页数据 4203 // 4204 // 示例值:2 4205 func (builder *ListAdminDeptStatReqBuilder) PageToken(pageToken string) *ListAdminDeptStatReqBuilder { 4206 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 4207 return builder 4208 } 4209 4210 func (builder *ListAdminDeptStatReqBuilder) Build() *ListAdminDeptStatReq { 4211 req := &ListAdminDeptStatReq{} 4212 req.apiReq = &larkcore.ApiReq{} 4213 req.apiReq.QueryParams = builder.apiReq.QueryParams 4214 return req 4215 } 4216 4217 type ListAdminDeptStatReq struct { 4218 apiReq *larkcore.ApiReq 4219 } 4220 4221 type ListAdminDeptStatRespData struct { 4222 HasMore *bool `json:"has_more,omitempty"` // 分页查询时返回,代表是否还有更多数据 4223 PageToken *string `json:"page_token,omitempty"` // 分页标记,下一页分页的token 4224 Items []*AdminDeptStat `json:"items,omitempty"` // 数据报表 4225 } 4226 4227 type ListAdminDeptStatResp struct { 4228 *larkcore.ApiResp `json:"-"` 4229 larkcore.CodeError 4230 Data *ListAdminDeptStatRespData `json:"data"` // 业务数据 4231 } 4232 4233 func (resp *ListAdminDeptStatResp) Success() bool { 4234 return resp.Code == 0 4235 } 4236 4237 type ListAdminUserStatReqBuilder struct { 4238 apiReq *larkcore.ApiReq 4239 } 4240 4241 func NewListAdminUserStatReqBuilder() *ListAdminUserStatReqBuilder { 4242 builder := &ListAdminUserStatReqBuilder{} 4243 builder.apiReq = &larkcore.ApiReq{ 4244 PathParams: larkcore.PathParams{}, 4245 QueryParams: larkcore.QueryParams{}, 4246 } 4247 return builder 4248 } 4249 4250 // 此次调用中使用的用户ID的类型 4251 // 4252 // 示例值: 4253 func (builder *ListAdminUserStatReqBuilder) UserIdType(userIdType string) *ListAdminUserStatReqBuilder { 4254 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 4255 return builder 4256 } 4257 4258 // 部门ID类型 4259 // 4260 // 示例值:open_department_id 4261 func (builder *ListAdminUserStatReqBuilder) DepartmentIdType(departmentIdType string) *ListAdminUserStatReqBuilder { 4262 builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType)) 4263 return builder 4264 } 4265 4266 // 起始日期(包含),格式是YYYY-mm-dd 4267 // 4268 // 示例值:2020-02-15 4269 func (builder *ListAdminUserStatReqBuilder) StartDate(startDate string) *ListAdminUserStatReqBuilder { 4270 builder.apiReq.QueryParams.Set("start_date", fmt.Sprint(startDate)) 4271 return builder 4272 } 4273 4274 // 终止日期(包含),格式是YYYY-mm-dd。起止日期之间相差不能超过31天(包含31天) 4275 // 4276 // 示例值:2020-02-15 4277 func (builder *ListAdminUserStatReqBuilder) EndDate(endDate string) *ListAdminUserStatReqBuilder { 4278 builder.apiReq.QueryParams.Set("end_date", fmt.Sprint(endDate)) 4279 return builder 4280 } 4281 4282 // 部门的 ID,取决于department_id_type 4283 // 4284 // 示例值:od-382e2793cfc9471f892e8a672987654c 4285 func (builder *ListAdminUserStatReqBuilder) DepartmentId(departmentId string) *ListAdminUserStatReqBuilder { 4286 builder.apiReq.QueryParams.Set("department_id", fmt.Sprint(departmentId)) 4287 return builder 4288 } 4289 4290 // 用户的open_id,user_id或者union_id,取决于user_id_type 4291 // 4292 // 示例值:ou_7dab8a3d3cdcc9da365777c7ad535d62 4293 func (builder *ListAdminUserStatReqBuilder) UserId(userId string) *ListAdminUserStatReqBuilder { 4294 builder.apiReq.QueryParams.Set("user_id", fmt.Sprint(userId)) 4295 return builder 4296 } 4297 4298 // 分页大小,默认是10 4299 // 4300 // 示例值:10 4301 func (builder *ListAdminUserStatReqBuilder) PageSize(pageSize int) *ListAdminUserStatReqBuilder { 4302 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 4303 return builder 4304 } 4305 4306 // 分页标记,第一次请求不填,表示从头开始遍历;当返回的has_more为true时,会返回新的page_token,再次调用接口,传入这个page_token,将获得下一页数据 4307 // 4308 // 示例值:2 4309 func (builder *ListAdminUserStatReqBuilder) PageToken(pageToken string) *ListAdminUserStatReqBuilder { 4310 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 4311 return builder 4312 } 4313 4314 func (builder *ListAdminUserStatReqBuilder) Build() *ListAdminUserStatReq { 4315 req := &ListAdminUserStatReq{} 4316 req.apiReq = &larkcore.ApiReq{} 4317 req.apiReq.QueryParams = builder.apiReq.QueryParams 4318 return req 4319 } 4320 4321 type ListAdminUserStatReq struct { 4322 apiReq *larkcore.ApiReq 4323 } 4324 4325 type ListAdminUserStatRespData struct { 4326 HasMore *bool `json:"has_more,omitempty"` // 是否有下一页数据 4327 PageToken *string `json:"page_token,omitempty"` // 下一页分页的token 4328 Items []*AdminUserStat `json:"items,omitempty"` // 数据报表 4329 } 4330 4331 type ListAdminUserStatResp struct { 4332 *larkcore.ApiResp `json:"-"` 4333 larkcore.CodeError 4334 Data *ListAdminUserStatRespData `json:"data"` // 业务数据 4335 } 4336 4337 func (resp *ListAdminUserStatResp) Success() bool { 4338 return resp.Code == 0 4339 } 4340 4341 type CreateBadgeReqBuilder struct { 4342 apiReq *larkcore.ApiReq 4343 badge *Badge 4344 } 4345 4346 func NewCreateBadgeReqBuilder() *CreateBadgeReqBuilder { 4347 builder := &CreateBadgeReqBuilder{} 4348 builder.apiReq = &larkcore.ApiReq{ 4349 PathParams: larkcore.PathParams{}, 4350 QueryParams: larkcore.QueryParams{}, 4351 } 4352 return builder 4353 } 4354 4355 // 使用该接口可以创建一枚完整的勋章信息,一个租户下最多可创建1000枚勋章。 4356 func (builder *CreateBadgeReqBuilder) Badge(badge *Badge) *CreateBadgeReqBuilder { 4357 builder.badge = badge 4358 return builder 4359 } 4360 4361 func (builder *CreateBadgeReqBuilder) Build() *CreateBadgeReq { 4362 req := &CreateBadgeReq{} 4363 req.apiReq = &larkcore.ApiReq{} 4364 req.apiReq.Body = builder.badge 4365 return req 4366 } 4367 4368 type CreateBadgeReq struct { 4369 apiReq *larkcore.ApiReq 4370 Badge *Badge `body:""` 4371 } 4372 4373 type CreateBadgeRespData struct { 4374 Badge *Badge `json:"badge,omitempty"` // 勋章的信息 4375 } 4376 4377 type CreateBadgeResp struct { 4378 *larkcore.ApiResp `json:"-"` 4379 larkcore.CodeError 4380 Data *CreateBadgeRespData `json:"data"` // 业务数据 4381 } 4382 4383 func (resp *CreateBadgeResp) Success() bool { 4384 return resp.Code == 0 4385 } 4386 4387 type GetBadgeReqBuilder struct { 4388 apiReq *larkcore.ApiReq 4389 } 4390 4391 func NewGetBadgeReqBuilder() *GetBadgeReqBuilder { 4392 builder := &GetBadgeReqBuilder{} 4393 builder.apiReq = &larkcore.ApiReq{ 4394 PathParams: larkcore.PathParams{}, 4395 QueryParams: larkcore.QueryParams{}, 4396 } 4397 return builder 4398 } 4399 4400 // 勋章id 4401 // 4402 // 示例值:m_DjMzaK 4403 func (builder *GetBadgeReqBuilder) BadgeId(badgeId string) *GetBadgeReqBuilder { 4404 builder.apiReq.PathParams.Set("badge_id", fmt.Sprint(badgeId)) 4405 return builder 4406 } 4407 4408 func (builder *GetBadgeReqBuilder) Build() *GetBadgeReq { 4409 req := &GetBadgeReq{} 4410 req.apiReq = &larkcore.ApiReq{} 4411 req.apiReq.PathParams = builder.apiReq.PathParams 4412 return req 4413 } 4414 4415 type GetBadgeReq struct { 4416 apiReq *larkcore.ApiReq 4417 } 4418 4419 type GetBadgeRespData struct { 4420 Badge *Badge `json:"badge,omitempty"` // 勋章信息 4421 } 4422 4423 type GetBadgeResp struct { 4424 *larkcore.ApiResp `json:"-"` 4425 larkcore.CodeError 4426 Data *GetBadgeRespData `json:"data"` // 业务数据 4427 } 4428 4429 func (resp *GetBadgeResp) Success() bool { 4430 return resp.Code == 0 4431 } 4432 4433 type ListBadgeReqBuilder struct { 4434 apiReq *larkcore.ApiReq 4435 limit int // 最大返回多少记录,当使用迭代器访问时才有效 4436 } 4437 4438 func NewListBadgeReqBuilder() *ListBadgeReqBuilder { 4439 builder := &ListBadgeReqBuilder{} 4440 builder.apiReq = &larkcore.ApiReq{ 4441 PathParams: larkcore.PathParams{}, 4442 QueryParams: larkcore.QueryParams{}, 4443 } 4444 return builder 4445 } 4446 4447 // 最大返回多少记录,当使用迭代器访问时才有效 4448 func (builder *ListBadgeReqBuilder) Limit(limit int) *ListBadgeReqBuilder { 4449 builder.limit = limit 4450 return builder 4451 } 4452 4453 // 分页大小 4454 // 4455 // 示例值:10 4456 func (builder *ListBadgeReqBuilder) PageSize(pageSize int) *ListBadgeReqBuilder { 4457 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 4458 return builder 4459 } 4460 4461 // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果 4462 // 4463 // 示例值:b1fmUz 4464 func (builder *ListBadgeReqBuilder) PageToken(pageToken string) *ListBadgeReqBuilder { 4465 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 4466 return builder 4467 } 4468 4469 // 租户内唯一的勋章名称,精确匹配。 4470 // 4471 // 示例值:激励勋章 4472 func (builder *ListBadgeReqBuilder) Name(name string) *ListBadgeReqBuilder { 4473 builder.apiReq.QueryParams.Set("name", fmt.Sprint(name)) 4474 return builder 4475 } 4476 4477 func (builder *ListBadgeReqBuilder) Build() *ListBadgeReq { 4478 req := &ListBadgeReq{} 4479 req.apiReq = &larkcore.ApiReq{} 4480 req.Limit = builder.limit 4481 req.apiReq.QueryParams = builder.apiReq.QueryParams 4482 return req 4483 } 4484 4485 type ListBadgeReq struct { 4486 apiReq *larkcore.ApiReq 4487 Limit int // 最多返回多少记录,只有在使用迭代器访问时,才有效 4488 4489 } 4490 4491 type ListBadgeRespData struct { 4492 Badges []*Badge `json:"badges,omitempty"` // 勋章列表 4493 PageToken *string `json:"page_token,omitempty"` // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果 4494 HasMore *bool `json:"has_more,omitempty"` // 是否已经遍历完,表示本次页面请求已经拿到所有列表数据 4495 } 4496 4497 type ListBadgeResp struct { 4498 *larkcore.ApiResp `json:"-"` 4499 larkcore.CodeError 4500 Data *ListBadgeRespData `json:"data"` // 业务数据 4501 } 4502 4503 func (resp *ListBadgeResp) Success() bool { 4504 return resp.Code == 0 4505 } 4506 4507 type UpdateBadgeReqBuilder struct { 4508 apiReq *larkcore.ApiReq 4509 badge *Badge 4510 } 4511 4512 func NewUpdateBadgeReqBuilder() *UpdateBadgeReqBuilder { 4513 builder := &UpdateBadgeReqBuilder{} 4514 builder.apiReq = &larkcore.ApiReq{ 4515 PathParams: larkcore.PathParams{}, 4516 QueryParams: larkcore.QueryParams{}, 4517 } 4518 return builder 4519 } 4520 4521 // 勋章ID 4522 // 4523 // 示例值:m_MzfKDM 4524 func (builder *UpdateBadgeReqBuilder) BadgeId(badgeId string) *UpdateBadgeReqBuilder { 4525 builder.apiReq.PathParams.Set("badge_id", fmt.Sprint(badgeId)) 4526 return builder 4527 } 4528 4529 // 通过该接口可以修改勋章的信息 4530 func (builder *UpdateBadgeReqBuilder) Badge(badge *Badge) *UpdateBadgeReqBuilder { 4531 builder.badge = badge 4532 return builder 4533 } 4534 4535 func (builder *UpdateBadgeReqBuilder) Build() *UpdateBadgeReq { 4536 req := &UpdateBadgeReq{} 4537 req.apiReq = &larkcore.ApiReq{} 4538 req.apiReq.PathParams = builder.apiReq.PathParams 4539 req.apiReq.Body = builder.badge 4540 return req 4541 } 4542 4543 type UpdateBadgeReq struct { 4544 apiReq *larkcore.ApiReq 4545 Badge *Badge `body:""` 4546 } 4547 4548 type UpdateBadgeRespData struct { 4549 Badge *Badge `json:"badge,omitempty"` // 勋章信息 4550 } 4551 4552 type UpdateBadgeResp struct { 4553 *larkcore.ApiResp `json:"-"` 4554 larkcore.CodeError 4555 Data *UpdateBadgeRespData `json:"data"` // 业务数据 4556 } 4557 4558 func (resp *UpdateBadgeResp) Success() bool { 4559 return resp.Code == 0 4560 } 4561 4562 type CreateBadgeGrantReqBuilder struct { 4563 apiReq *larkcore.ApiReq 4564 grant *Grant 4565 } 4566 4567 func NewCreateBadgeGrantReqBuilder() *CreateBadgeGrantReqBuilder { 4568 builder := &CreateBadgeGrantReqBuilder{} 4569 builder.apiReq = &larkcore.ApiReq{ 4570 PathParams: larkcore.PathParams{}, 4571 QueryParams: larkcore.QueryParams{}, 4572 } 4573 return builder 4574 } 4575 4576 // 勋章ID 4577 // 4578 // 示例值:m_DjMzaK 4579 func (builder *CreateBadgeGrantReqBuilder) BadgeId(badgeId string) *CreateBadgeGrantReqBuilder { 4580 builder.apiReq.PathParams.Set("badge_id", fmt.Sprint(badgeId)) 4581 return builder 4582 } 4583 4584 // 用户 ID 类型 4585 // 4586 // 示例值:open_id 4587 func (builder *CreateBadgeGrantReqBuilder) UserIdType(userIdType string) *CreateBadgeGrantReqBuilder { 4588 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 4589 return builder 4590 } 4591 4592 // 此次调用中使用的部门ID的类型。 4593 // 4594 // 示例值:open_department_id 4595 func (builder *CreateBadgeGrantReqBuilder) DepartmentIdType(departmentIdType string) *CreateBadgeGrantReqBuilder { 4596 builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType)) 4597 return builder 4598 } 4599 4600 // 通过该接口可以为特定勋章创建一份授予名单,一枚勋章下最多可创建1000份授予名单。 4601 func (builder *CreateBadgeGrantReqBuilder) Grant(grant *Grant) *CreateBadgeGrantReqBuilder { 4602 builder.grant = grant 4603 return builder 4604 } 4605 4606 func (builder *CreateBadgeGrantReqBuilder) Build() *CreateBadgeGrantReq { 4607 req := &CreateBadgeGrantReq{} 4608 req.apiReq = &larkcore.ApiReq{} 4609 req.apiReq.PathParams = builder.apiReq.PathParams 4610 req.apiReq.QueryParams = builder.apiReq.QueryParams 4611 req.apiReq.Body = builder.grant 4612 return req 4613 } 4614 4615 type CreateBadgeGrantReq struct { 4616 apiReq *larkcore.ApiReq 4617 Grant *Grant `body:""` 4618 } 4619 4620 type CreateBadgeGrantRespData struct { 4621 Grant *Grant `json:"grant,omitempty"` // 授予名单的信息 4622 } 4623 4624 type CreateBadgeGrantResp struct { 4625 *larkcore.ApiResp `json:"-"` 4626 larkcore.CodeError 4627 Data *CreateBadgeGrantRespData `json:"data"` // 业务数据 4628 } 4629 4630 func (resp *CreateBadgeGrantResp) Success() bool { 4631 return resp.Code == 0 4632 } 4633 4634 type DeleteBadgeGrantReqBuilder struct { 4635 apiReq *larkcore.ApiReq 4636 } 4637 4638 func NewDeleteBadgeGrantReqBuilder() *DeleteBadgeGrantReqBuilder { 4639 builder := &DeleteBadgeGrantReqBuilder{} 4640 builder.apiReq = &larkcore.ApiReq{ 4641 PathParams: larkcore.PathParams{}, 4642 QueryParams: larkcore.QueryParams{}, 4643 } 4644 return builder 4645 } 4646 4647 // 企业勋章的唯一ID 4648 // 4649 // 示例值:m_DjMzaK 4650 func (builder *DeleteBadgeGrantReqBuilder) BadgeId(badgeId string) *DeleteBadgeGrantReqBuilder { 4651 builder.apiReq.PathParams.Set("badge_id", fmt.Sprint(badgeId)) 4652 return builder 4653 } 4654 4655 // 租户内授予名单的唯一标识,该值由系统随机生成。 4656 // 4657 // 示例值:g_uS4yux 4658 func (builder *DeleteBadgeGrantReqBuilder) GrantId(grantId string) *DeleteBadgeGrantReqBuilder { 4659 builder.apiReq.PathParams.Set("grant_id", fmt.Sprint(grantId)) 4660 return builder 4661 } 4662 4663 func (builder *DeleteBadgeGrantReqBuilder) Build() *DeleteBadgeGrantReq { 4664 req := &DeleteBadgeGrantReq{} 4665 req.apiReq = &larkcore.ApiReq{} 4666 req.apiReq.PathParams = builder.apiReq.PathParams 4667 return req 4668 } 4669 4670 type DeleteBadgeGrantReq struct { 4671 apiReq *larkcore.ApiReq 4672 } 4673 4674 type DeleteBadgeGrantResp struct { 4675 *larkcore.ApiResp `json:"-"` 4676 larkcore.CodeError 4677 } 4678 4679 func (resp *DeleteBadgeGrantResp) Success() bool { 4680 return resp.Code == 0 4681 } 4682 4683 type GetBadgeGrantReqBuilder struct { 4684 apiReq *larkcore.ApiReq 4685 } 4686 4687 func NewGetBadgeGrantReqBuilder() *GetBadgeGrantReqBuilder { 4688 builder := &GetBadgeGrantReqBuilder{} 4689 builder.apiReq = &larkcore.ApiReq{ 4690 PathParams: larkcore.PathParams{}, 4691 QueryParams: larkcore.QueryParams{}, 4692 } 4693 return builder 4694 } 4695 4696 // 租户内勋章的唯一标识,该值由系统随机生成。 4697 // 4698 // 示例值:m_DjMzaK 4699 func (builder *GetBadgeGrantReqBuilder) BadgeId(badgeId string) *GetBadgeGrantReqBuilder { 4700 builder.apiReq.PathParams.Set("badge_id", fmt.Sprint(badgeId)) 4701 return builder 4702 } 4703 4704 // 租户内授予名单的唯一标识,该值由系统随机生成。 4705 // 4706 // 示例值:g_uS4yux 4707 func (builder *GetBadgeGrantReqBuilder) GrantId(grantId string) *GetBadgeGrantReqBuilder { 4708 builder.apiReq.PathParams.Set("grant_id", fmt.Sprint(grantId)) 4709 return builder 4710 } 4711 4712 // 用户 ID 类型 4713 // 4714 // 示例值:open_id 4715 func (builder *GetBadgeGrantReqBuilder) UserIdType(userIdType string) *GetBadgeGrantReqBuilder { 4716 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 4717 return builder 4718 } 4719 4720 // 此次调用中使用的部门ID的类型。 4721 // 4722 // 示例值:open_department_id 4723 func (builder *GetBadgeGrantReqBuilder) DepartmentIdType(departmentIdType string) *GetBadgeGrantReqBuilder { 4724 builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType)) 4725 return builder 4726 } 4727 4728 func (builder *GetBadgeGrantReqBuilder) Build() *GetBadgeGrantReq { 4729 req := &GetBadgeGrantReq{} 4730 req.apiReq = &larkcore.ApiReq{} 4731 req.apiReq.PathParams = builder.apiReq.PathParams 4732 req.apiReq.QueryParams = builder.apiReq.QueryParams 4733 return req 4734 } 4735 4736 type GetBadgeGrantReq struct { 4737 apiReq *larkcore.ApiReq 4738 } 4739 4740 type GetBadgeGrantRespData struct { 4741 Grant *Grant `json:"grant,omitempty"` // 授予名单信息 4742 } 4743 4744 type GetBadgeGrantResp struct { 4745 *larkcore.ApiResp `json:"-"` 4746 larkcore.CodeError 4747 Data *GetBadgeGrantRespData `json:"data"` // 业务数据 4748 } 4749 4750 func (resp *GetBadgeGrantResp) Success() bool { 4751 return resp.Code == 0 4752 } 4753 4754 type ListBadgeGrantReqBuilder struct { 4755 apiReq *larkcore.ApiReq 4756 limit int // 最大返回多少记录,当使用迭代器访问时才有效 4757 } 4758 4759 func NewListBadgeGrantReqBuilder() *ListBadgeGrantReqBuilder { 4760 builder := &ListBadgeGrantReqBuilder{} 4761 builder.apiReq = &larkcore.ApiReq{ 4762 PathParams: larkcore.PathParams{}, 4763 QueryParams: larkcore.QueryParams{}, 4764 } 4765 return builder 4766 } 4767 4768 // 最大返回多少记录,当使用迭代器访问时才有效 4769 func (builder *ListBadgeGrantReqBuilder) Limit(limit int) *ListBadgeGrantReqBuilder { 4770 builder.limit = limit 4771 return builder 4772 } 4773 4774 // 企业勋章的唯一ID 4775 // 4776 // 示例值:m_DjMzaK 4777 func (builder *ListBadgeGrantReqBuilder) BadgeId(badgeId string) *ListBadgeGrantReqBuilder { 4778 builder.apiReq.PathParams.Set("badge_id", fmt.Sprint(badgeId)) 4779 return builder 4780 } 4781 4782 // 分页大小 4783 // 4784 // 示例值:10 4785 func (builder *ListBadgeGrantReqBuilder) PageSize(pageSize int) *ListBadgeGrantReqBuilder { 4786 builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize)) 4787 return builder 4788 } 4789 4790 // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果 4791 // 4792 // 示例值:om5fn1 4793 func (builder *ListBadgeGrantReqBuilder) PageToken(pageToken string) *ListBadgeGrantReqBuilder { 4794 builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken)) 4795 return builder 4796 } 4797 4798 // 用户 ID 类型 4799 // 4800 // 示例值:open_id 4801 func (builder *ListBadgeGrantReqBuilder) UserIdType(userIdType string) *ListBadgeGrantReqBuilder { 4802 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 4803 return builder 4804 } 4805 4806 // 此次调用中使用的部门ID的类型。 4807 // 4808 // 示例值:open_department_id 4809 func (builder *ListBadgeGrantReqBuilder) DepartmentIdType(departmentIdType string) *ListBadgeGrantReqBuilder { 4810 builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType)) 4811 return builder 4812 } 4813 4814 func (builder *ListBadgeGrantReqBuilder) Build() *ListBadgeGrantReq { 4815 req := &ListBadgeGrantReq{} 4816 req.apiReq = &larkcore.ApiReq{} 4817 req.Limit = builder.limit 4818 req.apiReq.PathParams = builder.apiReq.PathParams 4819 req.apiReq.QueryParams = builder.apiReq.QueryParams 4820 return req 4821 } 4822 4823 type ListBadgeGrantReq struct { 4824 apiReq *larkcore.ApiReq 4825 Limit int // 最多返回多少记录,只有在使用迭代器访问时,才有效 4826 4827 } 4828 4829 type ListBadgeGrantRespData struct { 4830 Grants []*Grant `json:"grants,omitempty"` // 授予名单列表 4831 PageToken *string `json:"page_token,omitempty"` // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果 4832 HasMore *bool `json:"has_more,omitempty"` // 是否已经遍历完,表示本次页面请求已经拿到所有列表数据 4833 } 4834 4835 type ListBadgeGrantResp struct { 4836 *larkcore.ApiResp `json:"-"` 4837 larkcore.CodeError 4838 Data *ListBadgeGrantRespData `json:"data"` // 业务数据 4839 } 4840 4841 func (resp *ListBadgeGrantResp) Success() bool { 4842 return resp.Code == 0 4843 } 4844 4845 type UpdateBadgeGrantReqBuilder struct { 4846 apiReq *larkcore.ApiReq 4847 grant *Grant 4848 } 4849 4850 func NewUpdateBadgeGrantReqBuilder() *UpdateBadgeGrantReqBuilder { 4851 builder := &UpdateBadgeGrantReqBuilder{} 4852 builder.apiReq = &larkcore.ApiReq{ 4853 PathParams: larkcore.PathParams{}, 4854 QueryParams: larkcore.QueryParams{}, 4855 } 4856 return builder 4857 } 4858 4859 // 勋章ID 4860 // 4861 // 示例值:m_DjMzaK 4862 func (builder *UpdateBadgeGrantReqBuilder) BadgeId(badgeId string) *UpdateBadgeGrantReqBuilder { 4863 builder.apiReq.PathParams.Set("badge_id", fmt.Sprint(badgeId)) 4864 return builder 4865 } 4866 4867 // 授予名单ID 4868 // 4869 // 示例值:g_uS4yux 4870 func (builder *UpdateBadgeGrantReqBuilder) GrantId(grantId string) *UpdateBadgeGrantReqBuilder { 4871 builder.apiReq.PathParams.Set("grant_id", fmt.Sprint(grantId)) 4872 return builder 4873 } 4874 4875 // 用户 ID 类型 4876 // 4877 // 示例值:open_id 4878 func (builder *UpdateBadgeGrantReqBuilder) UserIdType(userIdType string) *UpdateBadgeGrantReqBuilder { 4879 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 4880 return builder 4881 } 4882 4883 // 此次调用中使用的部门ID的类型。 4884 // 4885 // 示例值:open_department_id 4886 func (builder *UpdateBadgeGrantReqBuilder) DepartmentIdType(departmentIdType string) *UpdateBadgeGrantReqBuilder { 4887 builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType)) 4888 return builder 4889 } 4890 4891 // 通过该接口可以修改特定授予名单的相关信息 4892 func (builder *UpdateBadgeGrantReqBuilder) Grant(grant *Grant) *UpdateBadgeGrantReqBuilder { 4893 builder.grant = grant 4894 return builder 4895 } 4896 4897 func (builder *UpdateBadgeGrantReqBuilder) Build() *UpdateBadgeGrantReq { 4898 req := &UpdateBadgeGrantReq{} 4899 req.apiReq = &larkcore.ApiReq{} 4900 req.apiReq.PathParams = builder.apiReq.PathParams 4901 req.apiReq.QueryParams = builder.apiReq.QueryParams 4902 req.apiReq.Body = builder.grant 4903 return req 4904 } 4905 4906 type UpdateBadgeGrantReq struct { 4907 apiReq *larkcore.ApiReq 4908 Grant *Grant `body:""` 4909 } 4910 4911 type UpdateBadgeGrantRespData struct { 4912 Grant *Grant `json:"grant,omitempty"` // 授予名单 4913 } 4914 4915 type UpdateBadgeGrantResp struct { 4916 *larkcore.ApiResp `json:"-"` 4917 larkcore.CodeError 4918 Data *UpdateBadgeGrantRespData `json:"data"` // 业务数据 4919 } 4920 4921 func (resp *UpdateBadgeGrantResp) Success() bool { 4922 return resp.Code == 0 4923 } 4924 4925 type CreateBadgeImageReqBodyBuilder struct { 4926 imageFile io.Reader // 勋章图片的文件,仅支持 PNG 格式,320 x 320 像素,大小不超过 1024 KB。 4927 imageFileFlag bool 4928 imageType int // 图片的类型 4929 imageTypeFlag bool 4930 } 4931 4932 func NewCreateBadgeImageReqBodyBuilder() *CreateBadgeImageReqBodyBuilder { 4933 builder := &CreateBadgeImageReqBodyBuilder{} 4934 return builder 4935 } 4936 4937 // 勋章图片的文件,仅支持 PNG 格式,320 x 320 像素,大小不超过 1024 KB。 4938 // 4939 //示例值:file binary 4940 func (builder *CreateBadgeImageReqBodyBuilder) ImageFile(imageFile io.Reader) *CreateBadgeImageReqBodyBuilder { 4941 builder.imageFile = imageFile 4942 builder.imageFileFlag = true 4943 return builder 4944 } 4945 4946 // 图片的类型 4947 // 4948 //示例值:1 4949 func (builder *CreateBadgeImageReqBodyBuilder) ImageType(imageType int) *CreateBadgeImageReqBodyBuilder { 4950 builder.imageType = imageType 4951 builder.imageTypeFlag = true 4952 return builder 4953 } 4954 4955 func (builder *CreateBadgeImageReqBodyBuilder) Build() *CreateBadgeImageReqBody { 4956 req := &CreateBadgeImageReqBody{} 4957 if builder.imageFileFlag { 4958 req.ImageFile = builder.imageFile 4959 } 4960 if builder.imageTypeFlag { 4961 req.ImageType = &builder.imageType 4962 } 4963 return req 4964 } 4965 4966 type CreateBadgeImagePathReqBodyBuilder struct { 4967 imageFilePath string // 勋章图片的文件,仅支持 PNG 格式,320 x 320 像素,大小不超过 1024 KB。 4968 imageFilePathFlag bool 4969 imageType int // 图片的类型 4970 imageTypeFlag bool 4971 } 4972 4973 func NewCreateBadgeImagePathReqBodyBuilder() *CreateBadgeImagePathReqBodyBuilder { 4974 builder := &CreateBadgeImagePathReqBodyBuilder{} 4975 return builder 4976 } 4977 4978 // 勋章图片的文件,仅支持 PNG 格式,320 x 320 像素,大小不超过 1024 KB。 4979 // 4980 // 示例值:file binary 4981 func (builder *CreateBadgeImagePathReqBodyBuilder) ImageFilePath(imageFilePath string) *CreateBadgeImagePathReqBodyBuilder { 4982 builder.imageFilePath = imageFilePath 4983 builder.imageFilePathFlag = true 4984 return builder 4985 } 4986 4987 // 图片的类型 4988 // 4989 // 示例值:1 4990 func (builder *CreateBadgeImagePathReqBodyBuilder) ImageType(imageType int) *CreateBadgeImagePathReqBodyBuilder { 4991 builder.imageType = imageType 4992 builder.imageTypeFlag = true 4993 return builder 4994 } 4995 4996 func (builder *CreateBadgeImagePathReqBodyBuilder) Build() (*CreateBadgeImageReqBody, error) { 4997 req := &CreateBadgeImageReqBody{} 4998 if builder.imageFilePathFlag { 4999 data, err := larkcore.File2Bytes(builder.imageFilePath) 5000 if err != nil { 5001 return nil, err 5002 } 5003 req.ImageFile = bytes.NewBuffer(data) 5004 } 5005 if builder.imageTypeFlag { 5006 req.ImageType = &builder.imageType 5007 } 5008 return req, nil 5009 } 5010 5011 type CreateBadgeImageReqBuilder struct { 5012 apiReq *larkcore.ApiReq 5013 body *CreateBadgeImageReqBody 5014 } 5015 5016 func NewCreateBadgeImageReqBuilder() *CreateBadgeImageReqBuilder { 5017 builder := &CreateBadgeImageReqBuilder{} 5018 builder.apiReq = &larkcore.ApiReq{ 5019 PathParams: larkcore.PathParams{}, 5020 QueryParams: larkcore.QueryParams{}, 5021 } 5022 return builder 5023 } 5024 5025 // 通过该接口可以上传勋章详情图、挂饰图的文件,获取对应的文件key 5026 func (builder *CreateBadgeImageReqBuilder) Body(body *CreateBadgeImageReqBody) *CreateBadgeImageReqBuilder { 5027 builder.body = body 5028 return builder 5029 } 5030 5031 func (builder *CreateBadgeImageReqBuilder) Build() *CreateBadgeImageReq { 5032 req := &CreateBadgeImageReq{} 5033 req.apiReq = &larkcore.ApiReq{} 5034 req.apiReq.Body = builder.body 5035 return req 5036 } 5037 5038 type CreateBadgeImageReqBody struct { 5039 ImageFile io.Reader `json:"image_file,omitempty"` // 勋章图片的文件,仅支持 PNG 格式,320 x 320 像素,大小不超过 1024 KB。 5040 ImageType *int `json:"image_type,omitempty"` // 图片的类型 5041 } 5042 5043 type CreateBadgeImageReq struct { 5044 apiReq *larkcore.ApiReq 5045 Body *CreateBadgeImageReqBody `body:""` 5046 } 5047 5048 type CreateBadgeImageRespData struct { 5049 ImageKey *string `json:"image_key,omitempty"` // 图片的key 5050 } 5051 5052 type CreateBadgeImageResp struct { 5053 *larkcore.ApiResp `json:"-"` 5054 larkcore.CodeError 5055 Data *CreateBadgeImageRespData `json:"data"` // 业务数据 5056 } 5057 5058 func (resp *CreateBadgeImageResp) Success() bool { 5059 return resp.Code == 0 5060 } 5061 5062 type ResetPasswordReqBodyBuilder struct { 5063 password *Password // 需要重置的密码参数,不少于8个字符,字母、数字和符号,至少三选二 5064 passwordFlag bool 5065 userId string // 待修改密码的用户ID,只针对邮箱登录凭证与企业邮箱(包括别名)相等的用户生效 5066 userIdFlag bool 5067 } 5068 5069 func NewResetPasswordReqBodyBuilder() *ResetPasswordReqBodyBuilder { 5070 builder := &ResetPasswordReqBodyBuilder{} 5071 return builder 5072 } 5073 5074 // 需要重置的密码参数,不少于8个字符,字母、数字和符号,至少三选二 5075 // 5076 //示例值:1234abcd 5077 func (builder *ResetPasswordReqBodyBuilder) Password(password *Password) *ResetPasswordReqBodyBuilder { 5078 builder.password = password 5079 builder.passwordFlag = true 5080 return builder 5081 } 5082 5083 // 待修改密码的用户ID,只针对邮箱登录凭证与企业邮箱(包括别名)相等的用户生效 5084 // 5085 //示例值:abc123 5086 func (builder *ResetPasswordReqBodyBuilder) UserId(userId string) *ResetPasswordReqBodyBuilder { 5087 builder.userId = userId 5088 builder.userIdFlag = true 5089 return builder 5090 } 5091 5092 func (builder *ResetPasswordReqBodyBuilder) Build() *ResetPasswordReqBody { 5093 req := &ResetPasswordReqBody{} 5094 if builder.passwordFlag { 5095 req.Password = builder.password 5096 } 5097 if builder.userIdFlag { 5098 req.UserId = &builder.userId 5099 } 5100 return req 5101 } 5102 5103 type ResetPasswordPathReqBodyBuilder struct { 5104 password *Password // 需要重置的密码参数,不少于8个字符,字母、数字和符号,至少三选二 5105 passwordFlag bool 5106 userId string // 待修改密码的用户ID,只针对邮箱登录凭证与企业邮箱(包括别名)相等的用户生效 5107 userIdFlag bool 5108 } 5109 5110 func NewResetPasswordPathReqBodyBuilder() *ResetPasswordPathReqBodyBuilder { 5111 builder := &ResetPasswordPathReqBodyBuilder{} 5112 return builder 5113 } 5114 5115 // 需要重置的密码参数,不少于8个字符,字母、数字和符号,至少三选二 5116 // 5117 // 示例值:1234abcd 5118 func (builder *ResetPasswordPathReqBodyBuilder) Password(password *Password) *ResetPasswordPathReqBodyBuilder { 5119 builder.password = password 5120 builder.passwordFlag = true 5121 return builder 5122 } 5123 5124 // 待修改密码的用户ID,只针对邮箱登录凭证与企业邮箱(包括别名)相等的用户生效 5125 // 5126 // 示例值:abc123 5127 func (builder *ResetPasswordPathReqBodyBuilder) UserId(userId string) *ResetPasswordPathReqBodyBuilder { 5128 builder.userId = userId 5129 builder.userIdFlag = true 5130 return builder 5131 } 5132 5133 func (builder *ResetPasswordPathReqBodyBuilder) Build() (*ResetPasswordReqBody, error) { 5134 req := &ResetPasswordReqBody{} 5135 if builder.passwordFlag { 5136 req.Password = builder.password 5137 } 5138 if builder.userIdFlag { 5139 req.UserId = &builder.userId 5140 } 5141 return req, nil 5142 } 5143 5144 type ResetPasswordReqBuilder struct { 5145 apiReq *larkcore.ApiReq 5146 body *ResetPasswordReqBody 5147 } 5148 5149 func NewResetPasswordReqBuilder() *ResetPasswordReqBuilder { 5150 builder := &ResetPasswordReqBuilder{} 5151 builder.apiReq = &larkcore.ApiReq{ 5152 PathParams: larkcore.PathParams{}, 5153 QueryParams: larkcore.QueryParams{}, 5154 } 5155 return builder 5156 } 5157 5158 // 5159 // 5160 // 示例值: 5161 func (builder *ResetPasswordReqBuilder) UserIdType(userIdType string) *ResetPasswordReqBuilder { 5162 builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType)) 5163 return builder 5164 } 5165 5166 // 重置用户的企业邮箱密码,仅当用户的邮箱和企业邮箱(别名)一致时生效,可用于处理飞书企业邮箱登录死锁的问题。;;邮箱死锁:当用户的登录凭证与飞书企业邮箱一致时,目前飞书登录流程要求用户输入验证码,由于飞书邮箱无单独的帐号体系,则未登录时无法收取邮箱验证码,即陷入死锁 5167 func (builder *ResetPasswordReqBuilder) Body(body *ResetPasswordReqBody) *ResetPasswordReqBuilder { 5168 builder.body = body 5169 return builder 5170 } 5171 5172 func (builder *ResetPasswordReqBuilder) Build() *ResetPasswordReq { 5173 req := &ResetPasswordReq{} 5174 req.apiReq = &larkcore.ApiReq{} 5175 req.apiReq.QueryParams = builder.apiReq.QueryParams 5176 req.apiReq.Body = builder.body 5177 return req 5178 } 5179 5180 type ResetPasswordReqBody struct { 5181 Password *Password `json:"password,omitempty"` // 需要重置的密码参数,不少于8个字符,字母、数字和符号,至少三选二 5182 UserId *string `json:"user_id,omitempty"` // 待修改密码的用户ID,只针对邮箱登录凭证与企业邮箱(包括别名)相等的用户生效 5183 } 5184 5185 type ResetPasswordReq struct { 5186 apiReq *larkcore.ApiReq 5187 Body *ResetPasswordReqBody `body:""` 5188 } 5189 5190 type ResetPasswordResp struct { 5191 *larkcore.ApiResp `json:"-"` 5192 larkcore.CodeError 5193 } 5194 5195 func (resp *ResetPasswordResp) Success() bool { 5196 return resp.Code == 0 5197 } 5198 5199 type ListBadgeIterator struct { 5200 nextPageToken *string 5201 items []*Badge 5202 index int 5203 limit int 5204 ctx context.Context 5205 req *ListBadgeReq 5206 listFunc func(ctx context.Context, req *ListBadgeReq, options ...larkcore.RequestOptionFunc) (*ListBadgeResp, error) 5207 options []larkcore.RequestOptionFunc 5208 curlNum int 5209 } 5210 5211 func (iterator *ListBadgeIterator) Next() (bool, *Badge, error) { 5212 // 达到最大量,则返回 5213 if iterator.limit > 0 && iterator.curlNum >= iterator.limit { 5214 return false, nil, nil 5215 } 5216 5217 // 为0则拉取数据 5218 if iterator.index == 0 || iterator.index >= len(iterator.items) { 5219 if iterator.index != 0 && iterator.nextPageToken == nil { 5220 return false, nil, nil 5221 } 5222 if iterator.nextPageToken != nil { 5223 iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken) 5224 } 5225 resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...) 5226 if err != nil { 5227 return false, nil, err 5228 } 5229 5230 if resp.Code != 0 { 5231 return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg)) 5232 } 5233 5234 if len(resp.Data.Badges) == 0 { 5235 return false, nil, nil 5236 } 5237 5238 iterator.nextPageToken = resp.Data.PageToken 5239 iterator.items = resp.Data.Badges 5240 iterator.index = 0 5241 } 5242 5243 block := iterator.items[iterator.index] 5244 iterator.index++ 5245 iterator.curlNum++ 5246 return true, block, nil 5247 } 5248 5249 func (iterator *ListBadgeIterator) NextPageToken() *string { 5250 return iterator.nextPageToken 5251 } 5252 5253 type ListBadgeGrantIterator struct { 5254 nextPageToken *string 5255 items []*Grant 5256 index int 5257 limit int 5258 ctx context.Context 5259 req *ListBadgeGrantReq 5260 listFunc func(ctx context.Context, req *ListBadgeGrantReq, options ...larkcore.RequestOptionFunc) (*ListBadgeGrantResp, error) 5261 options []larkcore.RequestOptionFunc 5262 curlNum int 5263 } 5264 5265 func (iterator *ListBadgeGrantIterator) Next() (bool, *Grant, error) { 5266 // 达到最大量,则返回 5267 if iterator.limit > 0 && iterator.curlNum >= iterator.limit { 5268 return false, nil, nil 5269 } 5270 5271 // 为0则拉取数据 5272 if iterator.index == 0 || iterator.index >= len(iterator.items) { 5273 if iterator.index != 0 && iterator.nextPageToken == nil { 5274 return false, nil, nil 5275 } 5276 if iterator.nextPageToken != nil { 5277 iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken) 5278 } 5279 resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...) 5280 if err != nil { 5281 return false, nil, err 5282 } 5283 5284 if resp.Code != 0 { 5285 return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg)) 5286 } 5287 5288 if len(resp.Data.Grants) == 0 { 5289 return false, nil, nil 5290 } 5291 5292 iterator.nextPageToken = resp.Data.PageToken 5293 iterator.items = resp.Data.Grants 5294 iterator.index = 0 5295 } 5296 5297 block := iterator.items[iterator.index] 5298 iterator.index++ 5299 iterator.curlNum++ 5300 return true, block, nil 5301 } 5302 5303 func (iterator *ListBadgeGrantIterator) NextPageToken() *string { 5304 return iterator.nextPageToken 5305 }