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  }