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

     1  // Package vc 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 larkvc
    15  
    16  import (
    17  	"fmt"
    18  
    19  	"context"
    20  	"errors"
    21  
    22  	"gitee.com/larksuite/oapi-sdk-go/v3/event"
    23  
    24  	"gitee.com/larksuite/oapi-sdk-go/v3/core"
    25  )
    26  
    27  const (
    28  	UserIdTypeUserId  = "user_id"  // 以user_id来识别用户
    29  	UserIdTypeUnionId = "union_id" // 以union_id来识别用户
    30  	UserIdTypeOpenId  = "open_id"  // 以open_id来识别用户(推荐)
    31  )
    32  
    33  const (
    34  	UserIdTypeParticipantListExportUserId  = "user_id"  // 以user_id来识别用户
    35  	UserIdTypeParticipantListExportUnionId = "union_id" // 以union_id来识别用户
    36  	UserIdTypeParticipantListExportOpenId  = "open_id"  // 以open_id来识别用户(推荐)
    37  )
    38  
    39  const (
    40  	UserIdTypeParticipantQualityListExportUserId  = "user_id"  // 以user_id来识别用户
    41  	UserIdTypeParticipantQualityListExportUnionId = "union_id" // 以union_id来识别用户
    42  	UserIdTypeParticipantQualityListExportOpenId  = "open_id"  // 以open_id来识别用户(推荐)
    43  )
    44  
    45  const (
    46  	UserIdTypeGetMeetingUserId  = "user_id"  // 以user_id来识别用户
    47  	UserIdTypeGetMeetingUnionId = "union_id" // 以union_id来识别用户
    48  	UserIdTypeGetMeetingOpenId  = "open_id"  // 以open_id来识别用户(推荐)
    49  )
    50  
    51  const (
    52  	UserIdTypeInviteMeetingUserId  = "user_id"  // 以user_id来识别用户
    53  	UserIdTypeInviteMeetingUnionId = "union_id" // 以union_id来识别用户
    54  	UserIdTypeInviteMeetingOpenId  = "open_id"  // 以open_id来识别用户(推荐)
    55  )
    56  
    57  const (
    58  	UserIdTypeKickoutMeetingUserId  = "user_id"  // 以user_id来识别用户
    59  	UserIdTypeKickoutMeetingUnionId = "union_id" // 以union_id来识别用户
    60  	UserIdTypeKickoutMeetingOpenId  = "open_id"  // 以open_id来识别用户(推荐)
    61  )
    62  
    63  const (
    64  	UserIdTypeSetHostMeetingUserId  = "user_id"  // 以user_id来识别用户
    65  	UserIdTypeSetHostMeetingUnionId = "union_id" // 以union_id来识别用户
    66  	UserIdTypeSetHostMeetingOpenId  = "open_id"  // 以open_id来识别用户(推荐)
    67  )
    68  
    69  const (
    70  	UserIdTypeSetPermissionMeetingRecordingUserId  = "user_id"  // 以user_id来识别用户
    71  	UserIdTypeSetPermissionMeetingRecordingUnionId = "union_id" // 以union_id来识别用户
    72  	UserIdTypeSetPermissionMeetingRecordingOpenId  = "open_id"  // 以open_id来识别用户(推荐)
    73  )
    74  
    75  const (
    76  	TopUserOrderByMeetingCount    = 1 // 会议数量
    77  	TopUserOrderByMeetingDuration = 2 // 会议时长
    78  
    79  )
    80  
    81  const (
    82  	UserIdTypeGetTopUserReportUserId  = "user_id"  // 以user_id来识别用户
    83  	UserIdTypeGetTopUserReportUnionId = "union_id" // 以union_id来识别用户
    84  	UserIdTypeGetTopUserReportOpenId  = "open_id"  // 以open_id来识别用户
    85  )
    86  
    87  const (
    88  	UserIdTypeApplyReserveUserId  = "user_id"  // 以user_id来识别用户
    89  	UserIdTypeApplyReserveUnionId = "union_id" // 以union_id来识别用户
    90  	UserIdTypeApplyReserveOpenId  = "open_id"  // 以open_id来识别用户(推荐)
    91  )
    92  
    93  const (
    94  	UserIdTypeGetReserveUserId  = "user_id"  // 以user_id来识别用户
    95  	UserIdTypeGetReserveUnionId = "union_id" // 以union_id来识别用户
    96  	UserIdTypeGetReserveOpenId  = "open_id"  // 以open_id来识别用户
    97  )
    98  
    99  const (
   100  	UserIdTypeGetActiveMeetingReserveUserId  = "user_id"  // 以user_id来识别用户
   101  	UserIdTypeGetActiveMeetingReserveUnionId = "union_id" // 以union_id来识别用户
   102  	UserIdTypeGetActiveMeetingReserveOpenId  = "open_id"  // 以open_id来识别用户
   103  )
   104  
   105  const (
   106  	UserIdTypeUpdateReserveUserId  = "user_id"  // 以user_id来识别用户
   107  	UserIdTypeUpdateReserveUnionId = "union_id" // 以union_id来识别用户
   108  	UserIdTypeUpdateReserveOpenId  = "open_id"  // 以open_id来识别用户(推荐)
   109  )
   110  
   111  const (
   112  	NodeScopeTenant          = 1 // 租户
   113  	NodeScopeCountryDistrict = 2 // 国家/地区
   114  	NodeScopeCity            = 3 // 城市
   115  	NodeScopeBuilding        = 4 // 建筑
   116  	NodeScopeFloor           = 5 // 楼层
   117  	NodeScopeRoom            = 6 // 会议室
   118  
   119  )
   120  
   121  const (
   122  	UserIdTypeQueryRoomConfigUserId  = "user_id"  // 以user_id来识别用户
   123  	UserIdTypeQueryRoomConfigUnionId = "union_id" // 以union_id来识别用户
   124  	UserIdTypeQueryRoomConfigOpenId  = "open_id"  // 以open_id来识别用户(推荐)
   125  )
   126  
   127  const (
   128  	NodeScopeSetRoomConfigTenant          = 1 // 租户
   129  	NodeScopeSetRoomConfigCountryDistrict = 2 // 国家/地区
   130  	NodeScopeSetRoomConfigCity            = 3 // 城市
   131  	NodeScopeSetRoomConfigBuilding        = 4 // 建筑
   132  	NodeScopeSetRoomConfigFloor           = 5 // 楼层
   133  	NodeScopeSetRoomConfigRoom            = 6 // 会议室
   134  
   135  )
   136  
   137  const (
   138  	UserIdTypeSetRoomConfigUserId  = "user_id"  // 以user_id来识别用户
   139  	UserIdTypeSetRoomConfigUnionId = "union_id" // 以union_id来识别用户
   140  	UserIdTypeSetRoomConfigOpenId  = "open_id"  // 以open_id来识别用户(推荐)
   141  )
   142  
   143  type Material struct {
   144  	Name           *string `json:"name,omitempty"`            // 素材名称
   145  	FileToken      *string `json:"file_token,omitempty"`      // 文件上传drive后的token
   146  	FileSize       *int    `json:"file_size,omitempty"`       // 文件大小(KB)
   147  	DeviceType     *int    `json:"device_type,omitempty"`     // 素材适用设备类型
   148  	MaterialType   *int    `json:"material_type,omitempty"`   // 素材类型
   149  	ReviewResult   *int    `json:"review_result,omitempty"`   // 审核结果
   150  	MaterialSource *int    `json:"material_source,omitempty"` // 素材来源
   151  }
   152  
   153  type MaterialBuilder struct {
   154  	name               string // 素材名称
   155  	nameFlag           bool
   156  	fileToken          string // 文件上传drive后的token
   157  	fileTokenFlag      bool
   158  	fileSize           int // 文件大小(KB)
   159  	fileSizeFlag       bool
   160  	deviceType         int // 素材适用设备类型
   161  	deviceTypeFlag     bool
   162  	materialType       int // 素材类型
   163  	materialTypeFlag   bool
   164  	reviewResult       int // 审核结果
   165  	reviewResultFlag   bool
   166  	materialSource     int // 素材来源
   167  	materialSourceFlag bool
   168  }
   169  
   170  func NewMaterialBuilder() *MaterialBuilder {
   171  	builder := &MaterialBuilder{}
   172  	return builder
   173  }
   174  
   175  // 素材名称
   176  //
   177  // 示例值:green
   178  func (builder *MaterialBuilder) Name(name string) *MaterialBuilder {
   179  	builder.name = name
   180  	builder.nameFlag = true
   181  	return builder
   182  }
   183  
   184  // 文件上传drive后的token
   185  //
   186  // 示例值:u8ajdjadau8wqu
   187  func (builder *MaterialBuilder) FileToken(fileToken string) *MaterialBuilder {
   188  	builder.fileToken = fileToken
   189  	builder.fileTokenFlag = true
   190  	return builder
   191  }
   192  
   193  // 文件大小(KB)
   194  //
   195  // 示例值:1024
   196  func (builder *MaterialBuilder) FileSize(fileSize int) *MaterialBuilder {
   197  	builder.fileSize = fileSize
   198  	builder.fileSizeFlag = true
   199  	return builder
   200  }
   201  
   202  // 素材适用设备类型
   203  //
   204  // 示例值:2
   205  func (builder *MaterialBuilder) DeviceType(deviceType int) *MaterialBuilder {
   206  	builder.deviceType = deviceType
   207  	builder.deviceTypeFlag = true
   208  	return builder
   209  }
   210  
   211  // 素材类型
   212  //
   213  // 示例值:2
   214  func (builder *MaterialBuilder) MaterialType(materialType int) *MaterialBuilder {
   215  	builder.materialType = materialType
   216  	builder.materialTypeFlag = true
   217  	return builder
   218  }
   219  
   220  // 审核结果
   221  //
   222  // 示例值:2
   223  func (builder *MaterialBuilder) ReviewResult(reviewResult int) *MaterialBuilder {
   224  	builder.reviewResult = reviewResult
   225  	builder.reviewResultFlag = true
   226  	return builder
   227  }
   228  
   229  // 素材来源
   230  //
   231  // 示例值:2
   232  func (builder *MaterialBuilder) MaterialSource(materialSource int) *MaterialBuilder {
   233  	builder.materialSource = materialSource
   234  	builder.materialSourceFlag = true
   235  	return builder
   236  }
   237  
   238  func (builder *MaterialBuilder) Build() *Material {
   239  	req := &Material{}
   240  	if builder.nameFlag {
   241  		req.Name = &builder.name
   242  
   243  	}
   244  	if builder.fileTokenFlag {
   245  		req.FileToken = &builder.fileToken
   246  
   247  	}
   248  	if builder.fileSizeFlag {
   249  		req.FileSize = &builder.fileSize
   250  
   251  	}
   252  	if builder.deviceTypeFlag {
   253  		req.DeviceType = &builder.deviceType
   254  
   255  	}
   256  	if builder.materialTypeFlag {
   257  		req.MaterialType = &builder.materialType
   258  
   259  	}
   260  	if builder.reviewResultFlag {
   261  		req.ReviewResult = &builder.reviewResult
   262  
   263  	}
   264  	if builder.materialSourceFlag {
   265  		req.MaterialSource = &builder.materialSource
   266  
   267  	}
   268  	return req
   269  }
   270  
   271  type MaterialDeleteResult struct {
   272  	FileToken *string `json:"file_token,omitempty"` // 文件上传drive后的token
   273  	Result    *int    `json:"result,omitempty"`     // 删除结果
   274  }
   275  
   276  type MaterialDeleteResultBuilder struct {
   277  	fileToken     string // 文件上传drive后的token
   278  	fileTokenFlag bool
   279  	result        int // 删除结果
   280  	resultFlag    bool
   281  }
   282  
   283  func NewMaterialDeleteResultBuilder() *MaterialDeleteResultBuilder {
   284  	builder := &MaterialDeleteResultBuilder{}
   285  	return builder
   286  }
   287  
   288  // 文件上传drive后的token
   289  //
   290  // 示例值:u8ajdjadau8wqu
   291  func (builder *MaterialDeleteResultBuilder) FileToken(fileToken string) *MaterialDeleteResultBuilder {
   292  	builder.fileToken = fileToken
   293  	builder.fileTokenFlag = true
   294  	return builder
   295  }
   296  
   297  // 删除结果
   298  //
   299  // 示例值:1
   300  func (builder *MaterialDeleteResultBuilder) Result(result int) *MaterialDeleteResultBuilder {
   301  	builder.result = result
   302  	builder.resultFlag = true
   303  	return builder
   304  }
   305  
   306  func (builder *MaterialDeleteResultBuilder) Build() *MaterialDeleteResult {
   307  	req := &MaterialDeleteResult{}
   308  	if builder.fileTokenFlag {
   309  		req.FileToken = &builder.fileToken
   310  
   311  	}
   312  	if builder.resultFlag {
   313  		req.Result = &builder.result
   314  
   315  	}
   316  	return req
   317  }
   318  
   319  type MaterialReviewResult struct {
   320  	FileToken *string `json:"file_token,omitempty"` // 文件上传drive后的token
   321  	Result    *int    `json:"result,omitempty"`     // 审核结果
   322  }
   323  
   324  type MaterialReviewResultBuilder struct {
   325  	fileToken     string // 文件上传drive后的token
   326  	fileTokenFlag bool
   327  	result        int // 审核结果
   328  	resultFlag    bool
   329  }
   330  
   331  func NewMaterialReviewResultBuilder() *MaterialReviewResultBuilder {
   332  	builder := &MaterialReviewResultBuilder{}
   333  	return builder
   334  }
   335  
   336  // 文件上传drive后的token
   337  //
   338  // 示例值:u8ajdjadau8wqu
   339  func (builder *MaterialReviewResultBuilder) FileToken(fileToken string) *MaterialReviewResultBuilder {
   340  	builder.fileToken = fileToken
   341  	builder.fileTokenFlag = true
   342  	return builder
   343  }
   344  
   345  // 审核结果
   346  //
   347  // 示例值:1
   348  func (builder *MaterialReviewResultBuilder) Result(result int) *MaterialReviewResultBuilder {
   349  	builder.result = result
   350  	builder.resultFlag = true
   351  	return builder
   352  }
   353  
   354  func (builder *MaterialReviewResultBuilder) Build() *MaterialReviewResult {
   355  	req := &MaterialReviewResult{}
   356  	if builder.fileTokenFlag {
   357  		req.FileToken = &builder.fileToken
   358  
   359  	}
   360  	if builder.resultFlag {
   361  		req.Result = &builder.result
   362  
   363  	}
   364  	return req
   365  }
   366  
   367  type MaterialUploadResult struct {
   368  	FileToken *string `json:"file_token,omitempty"` // 文件上传drive后的token
   369  	Result    *int    `json:"result,omitempty"`     // 上传结果
   370  }
   371  
   372  type MaterialUploadResultBuilder struct {
   373  	fileToken     string // 文件上传drive后的token
   374  	fileTokenFlag bool
   375  	result        int // 上传结果
   376  	resultFlag    bool
   377  }
   378  
   379  func NewMaterialUploadResultBuilder() *MaterialUploadResultBuilder {
   380  	builder := &MaterialUploadResultBuilder{}
   381  	return builder
   382  }
   383  
   384  // 文件上传drive后的token
   385  //
   386  // 示例值:u8ajdjadau8wqu
   387  func (builder *MaterialUploadResultBuilder) FileToken(fileToken string) *MaterialUploadResultBuilder {
   388  	builder.fileToken = fileToken
   389  	builder.fileTokenFlag = true
   390  	return builder
   391  }
   392  
   393  // 上传结果
   394  //
   395  // 示例值:1
   396  func (builder *MaterialUploadResultBuilder) Result(result int) *MaterialUploadResultBuilder {
   397  	builder.result = result
   398  	builder.resultFlag = true
   399  	return builder
   400  }
   401  
   402  func (builder *MaterialUploadResultBuilder) Build() *MaterialUploadResult {
   403  	req := &MaterialUploadResult{}
   404  	if builder.fileTokenFlag {
   405  		req.FileToken = &builder.fileToken
   406  
   407  	}
   408  	if builder.resultFlag {
   409  		req.Result = &builder.result
   410  
   411  	}
   412  	return req
   413  }
   414  
   415  type Meeting struct {
   416  	Id                          *string               `json:"id,omitempty"`                            // 会议ID(视频会议的唯一标识,视频会议开始后才会产生)
   417  	Topic                       *string               `json:"topic,omitempty"`                         // 会议主题
   418  	Url                         *string               `json:"url,omitempty"`                           // 会议链接(飞书用户可通过点击会议链接快捷入会)
   419  	MeetingNo                   *string               `json:"meeting_no,omitempty"`                    // 会议号
   420  	CreateTime                  *string               `json:"create_time,omitempty"`                   // 会议创建时间(unix时间,单位sec)
   421  	StartTime                   *string               `json:"start_time,omitempty"`                    // 会议开始时间(unix时间,单位sec)
   422  	EndTime                     *string               `json:"end_time,omitempty"`                      // 会议结束时间(unix时间,单位sec)
   423  	HostUser                    *MeetingUser          `json:"host_user,omitempty"`                     // 主持人
   424  	Status                      *int                  `json:"status,omitempty"`                        // 会议状态
   425  	ParticipantCount            *string               `json:"participant_count,omitempty"`             // 参会人数
   426  	ParticipantCountAccumulated *string               `json:"participant_count_accumulated,omitempty"` // 累计参会人数
   427  	Participants                []*MeetingParticipant `json:"participants,omitempty"`                  // 参会人列表
   428  	Ability                     *MeetingAbility       `json:"ability,omitempty"`                       // 会中使用的能力
   429  }
   430  
   431  type MeetingBuilder struct {
   432  	id                              string // 会议ID(视频会议的唯一标识,视频会议开始后才会产生)
   433  	idFlag                          bool
   434  	topic                           string // 会议主题
   435  	topicFlag                       bool
   436  	url                             string // 会议链接(飞书用户可通过点击会议链接快捷入会)
   437  	urlFlag                         bool
   438  	meetingNo                       string // 会议号
   439  	meetingNoFlag                   bool
   440  	createTime                      string // 会议创建时间(unix时间,单位sec)
   441  	createTimeFlag                  bool
   442  	startTime                       string // 会议开始时间(unix时间,单位sec)
   443  	startTimeFlag                   bool
   444  	endTime                         string // 会议结束时间(unix时间,单位sec)
   445  	endTimeFlag                     bool
   446  	hostUser                        *MeetingUser // 主持人
   447  	hostUserFlag                    bool
   448  	status                          int // 会议状态
   449  	statusFlag                      bool
   450  	participantCount                string // 参会人数
   451  	participantCountFlag            bool
   452  	participantCountAccumulated     string // 累计参会人数
   453  	participantCountAccumulatedFlag bool
   454  	participants                    []*MeetingParticipant // 参会人列表
   455  	participantsFlag                bool
   456  	ability                         *MeetingAbility // 会中使用的能力
   457  	abilityFlag                     bool
   458  }
   459  
   460  func NewMeetingBuilder() *MeetingBuilder {
   461  	builder := &MeetingBuilder{}
   462  	return builder
   463  }
   464  
   465  // 会议ID(视频会议的唯一标识,视频会议开始后才会产生)
   466  //
   467  // 示例值:6911188411934433028
   468  func (builder *MeetingBuilder) Id(id string) *MeetingBuilder {
   469  	builder.id = id
   470  	builder.idFlag = true
   471  	return builder
   472  }
   473  
   474  // 会议主题
   475  //
   476  // 示例值:my meeting
   477  func (builder *MeetingBuilder) Topic(topic string) *MeetingBuilder {
   478  	builder.topic = topic
   479  	builder.topicFlag = true
   480  	return builder
   481  }
   482  
   483  // 会议链接(飞书用户可通过点击会议链接快捷入会)
   484  //
   485  // 示例值:https://vc.feishu.cn/j/337736498
   486  func (builder *MeetingBuilder) Url(url string) *MeetingBuilder {
   487  	builder.url = url
   488  	builder.urlFlag = true
   489  	return builder
   490  }
   491  
   492  // 会议号
   493  //
   494  // 示例值:123456789
   495  func (builder *MeetingBuilder) MeetingNo(meetingNo string) *MeetingBuilder {
   496  	builder.meetingNo = meetingNo
   497  	builder.meetingNoFlag = true
   498  	return builder
   499  }
   500  
   501  // 会议创建时间(unix时间,单位sec)
   502  //
   503  // 示例值:1608885566
   504  func (builder *MeetingBuilder) CreateTime(createTime string) *MeetingBuilder {
   505  	builder.createTime = createTime
   506  	builder.createTimeFlag = true
   507  	return builder
   508  }
   509  
   510  // 会议开始时间(unix时间,单位sec)
   511  //
   512  // 示例值:1608883322
   513  func (builder *MeetingBuilder) StartTime(startTime string) *MeetingBuilder {
   514  	builder.startTime = startTime
   515  	builder.startTimeFlag = true
   516  	return builder
   517  }
   518  
   519  // 会议结束时间(unix时间,单位sec)
   520  //
   521  // 示例值:1608888867
   522  func (builder *MeetingBuilder) EndTime(endTime string) *MeetingBuilder {
   523  	builder.endTime = endTime
   524  	builder.endTimeFlag = true
   525  	return builder
   526  }
   527  
   528  // 主持人
   529  //
   530  // 示例值:
   531  func (builder *MeetingBuilder) HostUser(hostUser *MeetingUser) *MeetingBuilder {
   532  	builder.hostUser = hostUser
   533  	builder.hostUserFlag = true
   534  	return builder
   535  }
   536  
   537  // 会议状态
   538  //
   539  // 示例值:2
   540  func (builder *MeetingBuilder) Status(status int) *MeetingBuilder {
   541  	builder.status = status
   542  	builder.statusFlag = true
   543  	return builder
   544  }
   545  
   546  // 参会人数
   547  //
   548  // 示例值:10
   549  func (builder *MeetingBuilder) ParticipantCount(participantCount string) *MeetingBuilder {
   550  	builder.participantCount = participantCount
   551  	builder.participantCountFlag = true
   552  	return builder
   553  }
   554  
   555  // 累计参会人数
   556  //
   557  // 示例值:10
   558  func (builder *MeetingBuilder) ParticipantCountAccumulated(participantCountAccumulated string) *MeetingBuilder {
   559  	builder.participantCountAccumulated = participantCountAccumulated
   560  	builder.participantCountAccumulatedFlag = true
   561  	return builder
   562  }
   563  
   564  // 参会人列表
   565  //
   566  // 示例值:
   567  func (builder *MeetingBuilder) Participants(participants []*MeetingParticipant) *MeetingBuilder {
   568  	builder.participants = participants
   569  	builder.participantsFlag = true
   570  	return builder
   571  }
   572  
   573  // 会中使用的能力
   574  //
   575  // 示例值:
   576  func (builder *MeetingBuilder) Ability(ability *MeetingAbility) *MeetingBuilder {
   577  	builder.ability = ability
   578  	builder.abilityFlag = true
   579  	return builder
   580  }
   581  
   582  func (builder *MeetingBuilder) Build() *Meeting {
   583  	req := &Meeting{}
   584  	if builder.idFlag {
   585  		req.Id = &builder.id
   586  
   587  	}
   588  	if builder.topicFlag {
   589  		req.Topic = &builder.topic
   590  
   591  	}
   592  	if builder.urlFlag {
   593  		req.Url = &builder.url
   594  
   595  	}
   596  	if builder.meetingNoFlag {
   597  		req.MeetingNo = &builder.meetingNo
   598  
   599  	}
   600  	if builder.createTimeFlag {
   601  		req.CreateTime = &builder.createTime
   602  
   603  	}
   604  	if builder.startTimeFlag {
   605  		req.StartTime = &builder.startTime
   606  
   607  	}
   608  	if builder.endTimeFlag {
   609  		req.EndTime = &builder.endTime
   610  
   611  	}
   612  	if builder.hostUserFlag {
   613  		req.HostUser = builder.hostUser
   614  	}
   615  	if builder.statusFlag {
   616  		req.Status = &builder.status
   617  
   618  	}
   619  	if builder.participantCountFlag {
   620  		req.ParticipantCount = &builder.participantCount
   621  
   622  	}
   623  	if builder.participantCountAccumulatedFlag {
   624  		req.ParticipantCountAccumulated = &builder.participantCountAccumulated
   625  
   626  	}
   627  	if builder.participantsFlag {
   628  		req.Participants = builder.participants
   629  	}
   630  	if builder.abilityFlag {
   631  		req.Ability = builder.ability
   632  	}
   633  	return req
   634  }
   635  
   636  type MeetingRecording struct {
   637  	Id        *string `json:"id,omitempty"`         // 录制ID
   638  	MeetingId *string `json:"meeting_id,omitempty"` // 会议ID
   639  	Url       *string `json:"url,omitempty"`        // 录制文件URL
   640  	Duration  *string `json:"duration,omitempty"`   // 录制总时长(单位msec)
   641  }
   642  
   643  type MeetingRecordingBuilder struct {
   644  	id            string // 录制ID
   645  	idFlag        bool
   646  	meetingId     string // 会议ID
   647  	meetingIdFlag bool
   648  	url           string // 录制文件URL
   649  	urlFlag       bool
   650  	duration      string // 录制总时长(单位msec)
   651  	durationFlag  bool
   652  }
   653  
   654  func NewMeetingRecordingBuilder() *MeetingRecordingBuilder {
   655  	builder := &MeetingRecordingBuilder{}
   656  	return builder
   657  }
   658  
   659  // 录制ID
   660  //
   661  // 示例值:6911188411932033028
   662  func (builder *MeetingRecordingBuilder) Id(id string) *MeetingRecordingBuilder {
   663  	builder.id = id
   664  	builder.idFlag = true
   665  	return builder
   666  }
   667  
   668  // 会议ID
   669  //
   670  // 示例值:6911188411932033028
   671  func (builder *MeetingRecordingBuilder) MeetingId(meetingId string) *MeetingRecordingBuilder {
   672  	builder.meetingId = meetingId
   673  	builder.meetingIdFlag = true
   674  	return builder
   675  }
   676  
   677  // 录制文件URL
   678  //
   679  // 示例值:https://meetings.feishu.cn/minutes/obcn37dxcftoc3656rgyejm7
   680  func (builder *MeetingRecordingBuilder) Url(url string) *MeetingRecordingBuilder {
   681  	builder.url = url
   682  	builder.urlFlag = true
   683  	return builder
   684  }
   685  
   686  // 录制总时长(单位msec)
   687  //
   688  // 示例值:30000
   689  func (builder *MeetingRecordingBuilder) Duration(duration string) *MeetingRecordingBuilder {
   690  	builder.duration = duration
   691  	builder.durationFlag = true
   692  	return builder
   693  }
   694  
   695  func (builder *MeetingRecordingBuilder) Build() *MeetingRecording {
   696  	req := &MeetingRecording{}
   697  	if builder.idFlag {
   698  		req.Id = &builder.id
   699  
   700  	}
   701  	if builder.meetingIdFlag {
   702  		req.MeetingId = &builder.meetingId
   703  
   704  	}
   705  	if builder.urlFlag {
   706  		req.Url = &builder.url
   707  
   708  	}
   709  	if builder.durationFlag {
   710  		req.Duration = &builder.duration
   711  
   712  	}
   713  	return req
   714  }
   715  
   716  type MeetingAbility struct {
   717  	UseVideo        *bool `json:"use_video,omitempty"`         // 是否使用视频
   718  	UseAudio        *bool `json:"use_audio,omitempty"`         // 是否使用音频
   719  	UseShareScreen  *bool `json:"use_share_screen,omitempty"`  // 是否使用共享屏幕
   720  	UseFollowScreen *bool `json:"use_follow_screen,omitempty"` // 是否使用妙享(magic share)
   721  	UseRecording    *bool `json:"use_recording,omitempty"`     // 是否使用录制
   722  	UsePstn         *bool `json:"use_pstn,omitempty"`          // 是否使用PSTN
   723  }
   724  
   725  type MeetingAbilityBuilder struct {
   726  	useVideo            bool // 是否使用视频
   727  	useVideoFlag        bool
   728  	useAudio            bool // 是否使用音频
   729  	useAudioFlag        bool
   730  	useShareScreen      bool // 是否使用共享屏幕
   731  	useShareScreenFlag  bool
   732  	useFollowScreen     bool // 是否使用妙享(magic share)
   733  	useFollowScreenFlag bool
   734  	useRecording        bool // 是否使用录制
   735  	useRecordingFlag    bool
   736  	usePstn             bool // 是否使用PSTN
   737  	usePstnFlag         bool
   738  }
   739  
   740  func NewMeetingAbilityBuilder() *MeetingAbilityBuilder {
   741  	builder := &MeetingAbilityBuilder{}
   742  	return builder
   743  }
   744  
   745  // 是否使用视频
   746  //
   747  // 示例值:true
   748  func (builder *MeetingAbilityBuilder) UseVideo(useVideo bool) *MeetingAbilityBuilder {
   749  	builder.useVideo = useVideo
   750  	builder.useVideoFlag = true
   751  	return builder
   752  }
   753  
   754  // 是否使用音频
   755  //
   756  // 示例值:true
   757  func (builder *MeetingAbilityBuilder) UseAudio(useAudio bool) *MeetingAbilityBuilder {
   758  	builder.useAudio = useAudio
   759  	builder.useAudioFlag = true
   760  	return builder
   761  }
   762  
   763  // 是否使用共享屏幕
   764  //
   765  // 示例值:true
   766  func (builder *MeetingAbilityBuilder) UseShareScreen(useShareScreen bool) *MeetingAbilityBuilder {
   767  	builder.useShareScreen = useShareScreen
   768  	builder.useShareScreenFlag = true
   769  	return builder
   770  }
   771  
   772  // 是否使用妙享(magic share)
   773  //
   774  // 示例值:true
   775  func (builder *MeetingAbilityBuilder) UseFollowScreen(useFollowScreen bool) *MeetingAbilityBuilder {
   776  	builder.useFollowScreen = useFollowScreen
   777  	builder.useFollowScreenFlag = true
   778  	return builder
   779  }
   780  
   781  // 是否使用录制
   782  //
   783  // 示例值:true
   784  func (builder *MeetingAbilityBuilder) UseRecording(useRecording bool) *MeetingAbilityBuilder {
   785  	builder.useRecording = useRecording
   786  	builder.useRecordingFlag = true
   787  	return builder
   788  }
   789  
   790  // 是否使用PSTN
   791  //
   792  // 示例值:true
   793  func (builder *MeetingAbilityBuilder) UsePstn(usePstn bool) *MeetingAbilityBuilder {
   794  	builder.usePstn = usePstn
   795  	builder.usePstnFlag = true
   796  	return builder
   797  }
   798  
   799  func (builder *MeetingAbilityBuilder) Build() *MeetingAbility {
   800  	req := &MeetingAbility{}
   801  	if builder.useVideoFlag {
   802  		req.UseVideo = &builder.useVideo
   803  
   804  	}
   805  	if builder.useAudioFlag {
   806  		req.UseAudio = &builder.useAudio
   807  
   808  	}
   809  	if builder.useShareScreenFlag {
   810  		req.UseShareScreen = &builder.useShareScreen
   811  
   812  	}
   813  	if builder.useFollowScreenFlag {
   814  		req.UseFollowScreen = &builder.useFollowScreen
   815  
   816  	}
   817  	if builder.useRecordingFlag {
   818  		req.UseRecording = &builder.useRecording
   819  
   820  	}
   821  	if builder.usePstnFlag {
   822  		req.UsePstn = &builder.usePstn
   823  
   824  	}
   825  	return req
   826  }
   827  
   828  type MeetingEventMeeting struct {
   829  	Id        *string           `json:"id,omitempty"`         // 会议ID(视频会议的唯一标识,视频会议开始后才会产生)
   830  	Topic     *string           `json:"topic,omitempty"`      // 会议主题
   831  	MeetingNo *string           `json:"meeting_no,omitempty"` // 9位会议号(飞书用户可通过输入9位会议号快捷入会)
   832  	StartTime *string           `json:"start_time,omitempty"` // 会议开始时间(unix时间,单位sec)
   833  	EndTime   *string           `json:"end_time,omitempty"`   // 会议结束时间(unix时间,单位sec)
   834  	HostUser  *MeetingEventUser `json:"host_user,omitempty"`  // 会议主持人
   835  	Owner     *MeetingEventUser `json:"owner,omitempty"`      // 会议拥有者
   836  }
   837  
   838  type MeetingEventMeetingBuilder struct {
   839  	id            string // 会议ID(视频会议的唯一标识,视频会议开始后才会产生)
   840  	idFlag        bool
   841  	topic         string // 会议主题
   842  	topicFlag     bool
   843  	meetingNo     string // 9位会议号(飞书用户可通过输入9位会议号快捷入会)
   844  	meetingNoFlag bool
   845  	startTime     string // 会议开始时间(unix时间,单位sec)
   846  	startTimeFlag bool
   847  	endTime       string // 会议结束时间(unix时间,单位sec)
   848  	endTimeFlag   bool
   849  	hostUser      *MeetingEventUser // 会议主持人
   850  	hostUserFlag  bool
   851  	owner         *MeetingEventUser // 会议拥有者
   852  	ownerFlag     bool
   853  }
   854  
   855  func NewMeetingEventMeetingBuilder() *MeetingEventMeetingBuilder {
   856  	builder := &MeetingEventMeetingBuilder{}
   857  	return builder
   858  }
   859  
   860  // 会议ID(视频会议的唯一标识,视频会议开始后才会产生)
   861  //
   862  // 示例值:6911188411934433028
   863  func (builder *MeetingEventMeetingBuilder) Id(id string) *MeetingEventMeetingBuilder {
   864  	builder.id = id
   865  	builder.idFlag = true
   866  	return builder
   867  }
   868  
   869  // 会议主题
   870  //
   871  // 示例值:my meeting
   872  func (builder *MeetingEventMeetingBuilder) Topic(topic string) *MeetingEventMeetingBuilder {
   873  	builder.topic = topic
   874  	builder.topicFlag = true
   875  	return builder
   876  }
   877  
   878  // 9位会议号(飞书用户可通过输入9位会议号快捷入会)
   879  //
   880  // 示例值:235812466
   881  func (builder *MeetingEventMeetingBuilder) MeetingNo(meetingNo string) *MeetingEventMeetingBuilder {
   882  	builder.meetingNo = meetingNo
   883  	builder.meetingNoFlag = true
   884  	return builder
   885  }
   886  
   887  // 会议开始时间(unix时间,单位sec)
   888  //
   889  // 示例值:1608883322
   890  func (builder *MeetingEventMeetingBuilder) StartTime(startTime string) *MeetingEventMeetingBuilder {
   891  	builder.startTime = startTime
   892  	builder.startTimeFlag = true
   893  	return builder
   894  }
   895  
   896  // 会议结束时间(unix时间,单位sec)
   897  //
   898  // 示例值:1608883899
   899  func (builder *MeetingEventMeetingBuilder) EndTime(endTime string) *MeetingEventMeetingBuilder {
   900  	builder.endTime = endTime
   901  	builder.endTimeFlag = true
   902  	return builder
   903  }
   904  
   905  // 会议主持人
   906  //
   907  // 示例值:
   908  func (builder *MeetingEventMeetingBuilder) HostUser(hostUser *MeetingEventUser) *MeetingEventMeetingBuilder {
   909  	builder.hostUser = hostUser
   910  	builder.hostUserFlag = true
   911  	return builder
   912  }
   913  
   914  // 会议拥有者
   915  //
   916  // 示例值:
   917  func (builder *MeetingEventMeetingBuilder) Owner(owner *MeetingEventUser) *MeetingEventMeetingBuilder {
   918  	builder.owner = owner
   919  	builder.ownerFlag = true
   920  	return builder
   921  }
   922  
   923  func (builder *MeetingEventMeetingBuilder) Build() *MeetingEventMeeting {
   924  	req := &MeetingEventMeeting{}
   925  	if builder.idFlag {
   926  		req.Id = &builder.id
   927  
   928  	}
   929  	if builder.topicFlag {
   930  		req.Topic = &builder.topic
   931  
   932  	}
   933  	if builder.meetingNoFlag {
   934  		req.MeetingNo = &builder.meetingNo
   935  
   936  	}
   937  	if builder.startTimeFlag {
   938  		req.StartTime = &builder.startTime
   939  
   940  	}
   941  	if builder.endTimeFlag {
   942  		req.EndTime = &builder.endTime
   943  
   944  	}
   945  	if builder.hostUserFlag {
   946  		req.HostUser = builder.hostUser
   947  	}
   948  	if builder.ownerFlag {
   949  		req.Owner = builder.owner
   950  	}
   951  	return req
   952  }
   953  
   954  type MeetingEventUser struct {
   955  	Id       *UserId `json:"id,omitempty"`        // 用户 ID
   956  	UserRole *int    `json:"user_role,omitempty"` // 用户会中角色
   957  	UserType *int    `json:"user_type,omitempty"` // 用户类型
   958  }
   959  
   960  type MeetingEventUserBuilder struct {
   961  	id           *UserId // 用户 ID
   962  	idFlag       bool
   963  	userRole     int // 用户会中角色
   964  	userRoleFlag bool
   965  	userType     int // 用户类型
   966  	userTypeFlag bool
   967  }
   968  
   969  func NewMeetingEventUserBuilder() *MeetingEventUserBuilder {
   970  	builder := &MeetingEventUserBuilder{}
   971  	return builder
   972  }
   973  
   974  // 用户 ID
   975  //
   976  // 示例值:ou_3ec3f6a28a0d08c45d895276e8e5e19b
   977  func (builder *MeetingEventUserBuilder) Id(id *UserId) *MeetingEventUserBuilder {
   978  	builder.id = id
   979  	builder.idFlag = true
   980  	return builder
   981  }
   982  
   983  // 用户会中角色
   984  //
   985  // 示例值:1
   986  func (builder *MeetingEventUserBuilder) UserRole(userRole int) *MeetingEventUserBuilder {
   987  	builder.userRole = userRole
   988  	builder.userRoleFlag = true
   989  	return builder
   990  }
   991  
   992  // 用户类型
   993  //
   994  // 示例值:1
   995  func (builder *MeetingEventUserBuilder) UserType(userType int) *MeetingEventUserBuilder {
   996  	builder.userType = userType
   997  	builder.userTypeFlag = true
   998  	return builder
   999  }
  1000  
  1001  func (builder *MeetingEventUserBuilder) Build() *MeetingEventUser {
  1002  	req := &MeetingEventUser{}
  1003  	if builder.idFlag {
  1004  		req.Id = builder.id
  1005  	}
  1006  	if builder.userRoleFlag {
  1007  		req.UserRole = &builder.userRole
  1008  
  1009  	}
  1010  	if builder.userTypeFlag {
  1011  		req.UserType = &builder.userType
  1012  
  1013  	}
  1014  	return req
  1015  }
  1016  
  1017  type MeetingInviteStatus struct {
  1018  	Id       *string `json:"id,omitempty"`        // 用户ID
  1019  	UserType *int    `json:"user_type,omitempty"` // 用户类型
  1020  	Status   *int    `json:"status,omitempty"`    // 邀请结果
  1021  }
  1022  
  1023  type MeetingInviteStatusBuilder struct {
  1024  	id           string // 用户ID
  1025  	idFlag       bool
  1026  	userType     int // 用户类型
  1027  	userTypeFlag bool
  1028  	status       int // 邀请结果
  1029  	statusFlag   bool
  1030  }
  1031  
  1032  func NewMeetingInviteStatusBuilder() *MeetingInviteStatusBuilder {
  1033  	builder := &MeetingInviteStatusBuilder{}
  1034  	return builder
  1035  }
  1036  
  1037  // 用户ID
  1038  //
  1039  // 示例值:ou_3ec3f6a28a0d08c45d895276e8e5e19b
  1040  func (builder *MeetingInviteStatusBuilder) Id(id string) *MeetingInviteStatusBuilder {
  1041  	builder.id = id
  1042  	builder.idFlag = true
  1043  	return builder
  1044  }
  1045  
  1046  // 用户类型
  1047  //
  1048  // 示例值:1
  1049  func (builder *MeetingInviteStatusBuilder) UserType(userType int) *MeetingInviteStatusBuilder {
  1050  	builder.userType = userType
  1051  	builder.userTypeFlag = true
  1052  	return builder
  1053  }
  1054  
  1055  // 邀请结果
  1056  //
  1057  // 示例值:1
  1058  func (builder *MeetingInviteStatusBuilder) Status(status int) *MeetingInviteStatusBuilder {
  1059  	builder.status = status
  1060  	builder.statusFlag = true
  1061  	return builder
  1062  }
  1063  
  1064  func (builder *MeetingInviteStatusBuilder) Build() *MeetingInviteStatus {
  1065  	req := &MeetingInviteStatus{}
  1066  	if builder.idFlag {
  1067  		req.Id = &builder.id
  1068  
  1069  	}
  1070  	if builder.userTypeFlag {
  1071  		req.UserType = &builder.userType
  1072  
  1073  	}
  1074  	if builder.statusFlag {
  1075  		req.Status = &builder.status
  1076  
  1077  	}
  1078  	return req
  1079  }
  1080  
  1081  type MeetingParticipant struct {
  1082  	Id                *string `json:"id,omitempty"`                  // 用户ID
  1083  	FirstJoinTime     *string `json:"first_join_time,omitempty"`     // 首次入会时间,秒级Unix时间戳
  1084  	FinalLeaveTime    *string `json:"final_leave_time,omitempty"`    // 最终离会时间,秒级Unix时间戳
  1085  	InMeetingDuration *string `json:"in_meeting_duration,omitempty"` // 累计在会中时间,时间单位:秒
  1086  	UserType          *int    `json:"user_type,omitempty"`           // 用户类型
  1087  	IsHost            *bool   `json:"is_host,omitempty"`             // 是否为主持人
  1088  	IsCohost          *bool   `json:"is_cohost,omitempty"`           // 是否为联席主持人
  1089  	IsExternal        *bool   `json:"is_external,omitempty"`         // 是否为外部参会人
  1090  	Status            *int    `json:"status,omitempty"`              // 参会人状态
  1091  }
  1092  
  1093  type MeetingParticipantBuilder struct {
  1094  	id                    string // 用户ID
  1095  	idFlag                bool
  1096  	firstJoinTime         string // 首次入会时间,秒级Unix时间戳
  1097  	firstJoinTimeFlag     bool
  1098  	finalLeaveTime        string // 最终离会时间,秒级Unix时间戳
  1099  	finalLeaveTimeFlag    bool
  1100  	inMeetingDuration     string // 累计在会中时间,时间单位:秒
  1101  	inMeetingDurationFlag bool
  1102  	userType              int // 用户类型
  1103  	userTypeFlag          bool
  1104  	isHost                bool // 是否为主持人
  1105  	isHostFlag            bool
  1106  	isCohost              bool // 是否为联席主持人
  1107  	isCohostFlag          bool
  1108  	isExternal            bool // 是否为外部参会人
  1109  	isExternalFlag        bool
  1110  	status                int // 参会人状态
  1111  	statusFlag            bool
  1112  }
  1113  
  1114  func NewMeetingParticipantBuilder() *MeetingParticipantBuilder {
  1115  	builder := &MeetingParticipantBuilder{}
  1116  	return builder
  1117  }
  1118  
  1119  // 用户ID
  1120  //
  1121  // 示例值:ou_3ec3f6a28a0d08c45d895276e8e5e19b
  1122  func (builder *MeetingParticipantBuilder) Id(id string) *MeetingParticipantBuilder {
  1123  	builder.id = id
  1124  	builder.idFlag = true
  1125  	return builder
  1126  }
  1127  
  1128  // 首次入会时间,秒级Unix时间戳
  1129  //
  1130  // 示例值:1624438144
  1131  func (builder *MeetingParticipantBuilder) FirstJoinTime(firstJoinTime string) *MeetingParticipantBuilder {
  1132  	builder.firstJoinTime = firstJoinTime
  1133  	builder.firstJoinTimeFlag = true
  1134  	return builder
  1135  }
  1136  
  1137  // 最终离会时间,秒级Unix时间戳
  1138  //
  1139  // 示例值:1624438144
  1140  func (builder *MeetingParticipantBuilder) FinalLeaveTime(finalLeaveTime string) *MeetingParticipantBuilder {
  1141  	builder.finalLeaveTime = finalLeaveTime
  1142  	builder.finalLeaveTimeFlag = true
  1143  	return builder
  1144  }
  1145  
  1146  // 累计在会中时间,时间单位:秒
  1147  //
  1148  // 示例值:123
  1149  func (builder *MeetingParticipantBuilder) InMeetingDuration(inMeetingDuration string) *MeetingParticipantBuilder {
  1150  	builder.inMeetingDuration = inMeetingDuration
  1151  	builder.inMeetingDurationFlag = true
  1152  	return builder
  1153  }
  1154  
  1155  // 用户类型
  1156  //
  1157  // 示例值:1
  1158  func (builder *MeetingParticipantBuilder) UserType(userType int) *MeetingParticipantBuilder {
  1159  	builder.userType = userType
  1160  	builder.userTypeFlag = true
  1161  	return builder
  1162  }
  1163  
  1164  // 是否为主持人
  1165  //
  1166  // 示例值:true
  1167  func (builder *MeetingParticipantBuilder) IsHost(isHost bool) *MeetingParticipantBuilder {
  1168  	builder.isHost = isHost
  1169  	builder.isHostFlag = true
  1170  	return builder
  1171  }
  1172  
  1173  // 是否为联席主持人
  1174  //
  1175  // 示例值:false
  1176  func (builder *MeetingParticipantBuilder) IsCohost(isCohost bool) *MeetingParticipantBuilder {
  1177  	builder.isCohost = isCohost
  1178  	builder.isCohostFlag = true
  1179  	return builder
  1180  }
  1181  
  1182  // 是否为外部参会人
  1183  //
  1184  // 示例值:false
  1185  func (builder *MeetingParticipantBuilder) IsExternal(isExternal bool) *MeetingParticipantBuilder {
  1186  	builder.isExternal = isExternal
  1187  	builder.isExternalFlag = true
  1188  	return builder
  1189  }
  1190  
  1191  // 参会人状态
  1192  //
  1193  // 示例值:2
  1194  func (builder *MeetingParticipantBuilder) Status(status int) *MeetingParticipantBuilder {
  1195  	builder.status = status
  1196  	builder.statusFlag = true
  1197  	return builder
  1198  }
  1199  
  1200  func (builder *MeetingParticipantBuilder) Build() *MeetingParticipant {
  1201  	req := &MeetingParticipant{}
  1202  	if builder.idFlag {
  1203  		req.Id = &builder.id
  1204  
  1205  	}
  1206  	if builder.firstJoinTimeFlag {
  1207  		req.FirstJoinTime = &builder.firstJoinTime
  1208  
  1209  	}
  1210  	if builder.finalLeaveTimeFlag {
  1211  		req.FinalLeaveTime = &builder.finalLeaveTime
  1212  
  1213  	}
  1214  	if builder.inMeetingDurationFlag {
  1215  		req.InMeetingDuration = &builder.inMeetingDuration
  1216  
  1217  	}
  1218  	if builder.userTypeFlag {
  1219  		req.UserType = &builder.userType
  1220  
  1221  	}
  1222  	if builder.isHostFlag {
  1223  		req.IsHost = &builder.isHost
  1224  
  1225  	}
  1226  	if builder.isCohostFlag {
  1227  		req.IsCohost = &builder.isCohost
  1228  
  1229  	}
  1230  	if builder.isExternalFlag {
  1231  		req.IsExternal = &builder.isExternal
  1232  
  1233  	}
  1234  	if builder.statusFlag {
  1235  		req.Status = &builder.status
  1236  
  1237  	}
  1238  	return req
  1239  }
  1240  
  1241  type MeetingParticipantResult struct {
  1242  	Id       *string `json:"id,omitempty"`        // 用户ID
  1243  	UserType *int    `json:"user_type,omitempty"` // 用户类型
  1244  	Result   *int    `json:"result,omitempty"`    // 邀请结果
  1245  }
  1246  
  1247  type MeetingParticipantResultBuilder struct {
  1248  	id           string // 用户ID
  1249  	idFlag       bool
  1250  	userType     int // 用户类型
  1251  	userTypeFlag bool
  1252  	result       int // 邀请结果
  1253  	resultFlag   bool
  1254  }
  1255  
  1256  func NewMeetingParticipantResultBuilder() *MeetingParticipantResultBuilder {
  1257  	builder := &MeetingParticipantResultBuilder{}
  1258  	return builder
  1259  }
  1260  
  1261  // 用户ID
  1262  //
  1263  // 示例值:ou_3ec3f6a28a0d08c45d895276e8e5e19b
  1264  func (builder *MeetingParticipantResultBuilder) Id(id string) *MeetingParticipantResultBuilder {
  1265  	builder.id = id
  1266  	builder.idFlag = true
  1267  	return builder
  1268  }
  1269  
  1270  // 用户类型
  1271  //
  1272  // 示例值:1
  1273  func (builder *MeetingParticipantResultBuilder) UserType(userType int) *MeetingParticipantResultBuilder {
  1274  	builder.userType = userType
  1275  	builder.userTypeFlag = true
  1276  	return builder
  1277  }
  1278  
  1279  // 邀请结果
  1280  //
  1281  // 示例值:1
  1282  func (builder *MeetingParticipantResultBuilder) Result(result int) *MeetingParticipantResultBuilder {
  1283  	builder.result = result
  1284  	builder.resultFlag = true
  1285  	return builder
  1286  }
  1287  
  1288  func (builder *MeetingParticipantResultBuilder) Build() *MeetingParticipantResult {
  1289  	req := &MeetingParticipantResult{}
  1290  	if builder.idFlag {
  1291  		req.Id = &builder.id
  1292  
  1293  	}
  1294  	if builder.userTypeFlag {
  1295  		req.UserType = &builder.userType
  1296  
  1297  	}
  1298  	if builder.resultFlag {
  1299  		req.Result = &builder.result
  1300  
  1301  	}
  1302  	return req
  1303  }
  1304  
  1305  type MeetingUser struct {
  1306  	Id       *string `json:"id,omitempty"`        // 用户ID
  1307  	UserType *int    `json:"user_type,omitempty"` // 用户类型
  1308  }
  1309  
  1310  type MeetingUserBuilder struct {
  1311  	id           string // 用户ID
  1312  	idFlag       bool
  1313  	userType     int // 用户类型
  1314  	userTypeFlag bool
  1315  }
  1316  
  1317  func NewMeetingUserBuilder() *MeetingUserBuilder {
  1318  	builder := &MeetingUserBuilder{}
  1319  	return builder
  1320  }
  1321  
  1322  // 用户ID
  1323  //
  1324  // 示例值:ou_3ec3f6a28a0d08c45d895276e8e5e19b
  1325  func (builder *MeetingUserBuilder) Id(id string) *MeetingUserBuilder {
  1326  	builder.id = id
  1327  	builder.idFlag = true
  1328  	return builder
  1329  }
  1330  
  1331  // 用户类型
  1332  //
  1333  // 示例值:1
  1334  func (builder *MeetingUserBuilder) UserType(userType int) *MeetingUserBuilder {
  1335  	builder.userType = userType
  1336  	builder.userTypeFlag = true
  1337  	return builder
  1338  }
  1339  
  1340  func (builder *MeetingUserBuilder) Build() *MeetingUser {
  1341  	req := &MeetingUser{}
  1342  	if builder.idFlag {
  1343  		req.Id = &builder.id
  1344  
  1345  	}
  1346  	if builder.userTypeFlag {
  1347  		req.UserType = &builder.userType
  1348  
  1349  	}
  1350  	return req
  1351  }
  1352  
  1353  type PstnSipInfo struct {
  1354  	Nickname    *string `json:"nickname,omitempty"`     // 给pstn/sip用户设置的临时昵称
  1355  	MainAddress *string `json:"main_address,omitempty"` // pstn/sip主机号,格式为:[国际冠字]-[电话区号][电话号码],当前仅支持国内手机及固定电话号码
  1356  }
  1357  
  1358  type PstnSipInfoBuilder struct {
  1359  	nickname        string // 给pstn/sip用户设置的临时昵称
  1360  	nicknameFlag    bool
  1361  	mainAddress     string // pstn/sip主机号,格式为:[国际冠字]-[电话区号][电话号码],当前仅支持国内手机及固定电话号码
  1362  	mainAddressFlag bool
  1363  }
  1364  
  1365  func NewPstnSipInfoBuilder() *PstnSipInfoBuilder {
  1366  	builder := &PstnSipInfoBuilder{}
  1367  	return builder
  1368  }
  1369  
  1370  // 给pstn/sip用户设置的临时昵称
  1371  //
  1372  // 示例值:dodo
  1373  func (builder *PstnSipInfoBuilder) Nickname(nickname string) *PstnSipInfoBuilder {
  1374  	builder.nickname = nickname
  1375  	builder.nicknameFlag = true
  1376  	return builder
  1377  }
  1378  
  1379  // pstn/sip主机号,格式为:[国际冠字]-[电话区号][电话号码],当前仅支持国内手机及固定电话号码
  1380  //
  1381  // 示例值:+86-02187654321
  1382  func (builder *PstnSipInfoBuilder) MainAddress(mainAddress string) *PstnSipInfoBuilder {
  1383  	builder.mainAddress = mainAddress
  1384  	builder.mainAddressFlag = true
  1385  	return builder
  1386  }
  1387  
  1388  func (builder *PstnSipInfoBuilder) Build() *PstnSipInfo {
  1389  	req := &PstnSipInfo{}
  1390  	if builder.nicknameFlag {
  1391  		req.Nickname = &builder.nickname
  1392  
  1393  	}
  1394  	if builder.mainAddressFlag {
  1395  		req.MainAddress = &builder.mainAddress
  1396  
  1397  	}
  1398  	return req
  1399  }
  1400  
  1401  type RecordingPermissionObject struct {
  1402  	Id         *string `json:"id,omitempty"`         // 授权对象ID
  1403  	Type       *int    `json:"type,omitempty"`       // 授权对象类型
  1404  	Permission *int    `json:"permission,omitempty"` // 权限
  1405  }
  1406  
  1407  type RecordingPermissionObjectBuilder struct {
  1408  	id             string // 授权对象ID
  1409  	idFlag         bool
  1410  	type_          int // 授权对象类型
  1411  	typeFlag       bool
  1412  	permission     int // 权限
  1413  	permissionFlag bool
  1414  }
  1415  
  1416  func NewRecordingPermissionObjectBuilder() *RecordingPermissionObjectBuilder {
  1417  	builder := &RecordingPermissionObjectBuilder{}
  1418  	return builder
  1419  }
  1420  
  1421  // 授权对象ID
  1422  //
  1423  // 示例值:ou_3ec3f6a28a0d08c45d895276e8e5e19b
  1424  func (builder *RecordingPermissionObjectBuilder) Id(id string) *RecordingPermissionObjectBuilder {
  1425  	builder.id = id
  1426  	builder.idFlag = true
  1427  	return builder
  1428  }
  1429  
  1430  // 授权对象类型
  1431  //
  1432  // 示例值:1
  1433  func (builder *RecordingPermissionObjectBuilder) Type(type_ int) *RecordingPermissionObjectBuilder {
  1434  	builder.type_ = type_
  1435  	builder.typeFlag = true
  1436  	return builder
  1437  }
  1438  
  1439  // 权限
  1440  //
  1441  // 示例值:1
  1442  func (builder *RecordingPermissionObjectBuilder) Permission(permission int) *RecordingPermissionObjectBuilder {
  1443  	builder.permission = permission
  1444  	builder.permissionFlag = true
  1445  	return builder
  1446  }
  1447  
  1448  func (builder *RecordingPermissionObjectBuilder) Build() *RecordingPermissionObject {
  1449  	req := &RecordingPermissionObject{}
  1450  	if builder.idFlag {
  1451  		req.Id = &builder.id
  1452  
  1453  	}
  1454  	if builder.typeFlag {
  1455  		req.Type = &builder.type_
  1456  
  1457  	}
  1458  	if builder.permissionFlag {
  1459  		req.Permission = &builder.permission
  1460  
  1461  	}
  1462  	return req
  1463  }
  1464  
  1465  type Report struct {
  1466  	TotalMeetingCount     *string               `json:"total_meeting_count,omitempty"`     // 总会议数量
  1467  	TotalMeetingDuration  *string               `json:"total_meeting_duration,omitempty"`  // 总会议时长(单位sec)
  1468  	TotalParticipantCount *string               `json:"total_participant_count,omitempty"` // 总参会人数
  1469  	DailyReport           []*ReportMeetingDaily `json:"daily_report,omitempty"`            // 每日会议报告列表
  1470  }
  1471  
  1472  type ReportBuilder struct {
  1473  	totalMeetingCount         string // 总会议数量
  1474  	totalMeetingCountFlag     bool
  1475  	totalMeetingDuration      string // 总会议时长(单位sec)
  1476  	totalMeetingDurationFlag  bool
  1477  	totalParticipantCount     string // 总参会人数
  1478  	totalParticipantCountFlag bool
  1479  	dailyReport               []*ReportMeetingDaily // 每日会议报告列表
  1480  	dailyReportFlag           bool
  1481  }
  1482  
  1483  func NewReportBuilder() *ReportBuilder {
  1484  	builder := &ReportBuilder{}
  1485  	return builder
  1486  }
  1487  
  1488  // 总会议数量
  1489  //
  1490  // 示例值:100
  1491  func (builder *ReportBuilder) TotalMeetingCount(totalMeetingCount string) *ReportBuilder {
  1492  	builder.totalMeetingCount = totalMeetingCount
  1493  	builder.totalMeetingCountFlag = true
  1494  	return builder
  1495  }
  1496  
  1497  // 总会议时长(单位sec)
  1498  //
  1499  // 示例值:300000
  1500  func (builder *ReportBuilder) TotalMeetingDuration(totalMeetingDuration string) *ReportBuilder {
  1501  	builder.totalMeetingDuration = totalMeetingDuration
  1502  	builder.totalMeetingDurationFlag = true
  1503  	return builder
  1504  }
  1505  
  1506  // 总参会人数
  1507  //
  1508  // 示例值:20000
  1509  func (builder *ReportBuilder) TotalParticipantCount(totalParticipantCount string) *ReportBuilder {
  1510  	builder.totalParticipantCount = totalParticipantCount
  1511  	builder.totalParticipantCountFlag = true
  1512  	return builder
  1513  }
  1514  
  1515  // 每日会议报告列表
  1516  //
  1517  // 示例值:
  1518  func (builder *ReportBuilder) DailyReport(dailyReport []*ReportMeetingDaily) *ReportBuilder {
  1519  	builder.dailyReport = dailyReport
  1520  	builder.dailyReportFlag = true
  1521  	return builder
  1522  }
  1523  
  1524  func (builder *ReportBuilder) Build() *Report {
  1525  	req := &Report{}
  1526  	if builder.totalMeetingCountFlag {
  1527  		req.TotalMeetingCount = &builder.totalMeetingCount
  1528  
  1529  	}
  1530  	if builder.totalMeetingDurationFlag {
  1531  		req.TotalMeetingDuration = &builder.totalMeetingDuration
  1532  
  1533  	}
  1534  	if builder.totalParticipantCountFlag {
  1535  		req.TotalParticipantCount = &builder.totalParticipantCount
  1536  
  1537  	}
  1538  	if builder.dailyReportFlag {
  1539  		req.DailyReport = builder.dailyReport
  1540  	}
  1541  	return req
  1542  }
  1543  
  1544  type ReportMeetingDaily struct {
  1545  	Date             *string `json:"date,omitempty"`              // 日期(unix时间,单位sec)
  1546  	MeetingCount     *string `json:"meeting_count,omitempty"`     // 会议数量
  1547  	MeetingDuration  *string `json:"meeting_duration,omitempty"`  // 会议时长(单位sec)
  1548  	ParticipantCount *string `json:"participant_count,omitempty"` // 参会人数
  1549  }
  1550  
  1551  type ReportMeetingDailyBuilder struct {
  1552  	date                 string // 日期(unix时间,单位sec)
  1553  	dateFlag             bool
  1554  	meetingCount         string // 会议数量
  1555  	meetingCountFlag     bool
  1556  	meetingDuration      string // 会议时长(单位sec)
  1557  	meetingDurationFlag  bool
  1558  	participantCount     string // 参会人数
  1559  	participantCountFlag bool
  1560  }
  1561  
  1562  func NewReportMeetingDailyBuilder() *ReportMeetingDailyBuilder {
  1563  	builder := &ReportMeetingDailyBuilder{}
  1564  	return builder
  1565  }
  1566  
  1567  // 日期(unix时间,单位sec)
  1568  //
  1569  // 示例值:1609113600
  1570  func (builder *ReportMeetingDailyBuilder) Date(date string) *ReportMeetingDailyBuilder {
  1571  	builder.date = date
  1572  	builder.dateFlag = true
  1573  	return builder
  1574  }
  1575  
  1576  // 会议数量
  1577  //
  1578  // 示例值:100
  1579  func (builder *ReportMeetingDailyBuilder) MeetingCount(meetingCount string) *ReportMeetingDailyBuilder {
  1580  	builder.meetingCount = meetingCount
  1581  	builder.meetingCountFlag = true
  1582  	return builder
  1583  }
  1584  
  1585  // 会议时长(单位sec)
  1586  //
  1587  // 示例值:147680
  1588  func (builder *ReportMeetingDailyBuilder) MeetingDuration(meetingDuration string) *ReportMeetingDailyBuilder {
  1589  	builder.meetingDuration = meetingDuration
  1590  	builder.meetingDurationFlag = true
  1591  	return builder
  1592  }
  1593  
  1594  // 参会人数
  1595  //
  1596  // 示例值:2000
  1597  func (builder *ReportMeetingDailyBuilder) ParticipantCount(participantCount string) *ReportMeetingDailyBuilder {
  1598  	builder.participantCount = participantCount
  1599  	builder.participantCountFlag = true
  1600  	return builder
  1601  }
  1602  
  1603  func (builder *ReportMeetingDailyBuilder) Build() *ReportMeetingDaily {
  1604  	req := &ReportMeetingDaily{}
  1605  	if builder.dateFlag {
  1606  		req.Date = &builder.date
  1607  
  1608  	}
  1609  	if builder.meetingCountFlag {
  1610  		req.MeetingCount = &builder.meetingCount
  1611  
  1612  	}
  1613  	if builder.meetingDurationFlag {
  1614  		req.MeetingDuration = &builder.meetingDuration
  1615  
  1616  	}
  1617  	if builder.participantCountFlag {
  1618  		req.ParticipantCount = &builder.participantCount
  1619  
  1620  	}
  1621  	return req
  1622  }
  1623  
  1624  type ReportTopUser struct {
  1625  	Id              *string `json:"id,omitempty"`               // 用户ID
  1626  	Name            *string `json:"name,omitempty"`             // 用户名
  1627  	UserType        *int    `json:"user_type,omitempty"`        // 用户类型
  1628  	MeetingCount    *string `json:"meeting_count,omitempty"`    // 会议数量
  1629  	MeetingDuration *string `json:"meeting_duration,omitempty"` // 会议时长(单位min)
  1630  }
  1631  
  1632  type ReportTopUserBuilder struct {
  1633  	id                  string // 用户ID
  1634  	idFlag              bool
  1635  	name                string // 用户名
  1636  	nameFlag            bool
  1637  	userType            int // 用户类型
  1638  	userTypeFlag        bool
  1639  	meetingCount        string // 会议数量
  1640  	meetingCountFlag    bool
  1641  	meetingDuration     string // 会议时长(单位min)
  1642  	meetingDurationFlag bool
  1643  }
  1644  
  1645  func NewReportTopUserBuilder() *ReportTopUserBuilder {
  1646  	builder := &ReportTopUserBuilder{}
  1647  	return builder
  1648  }
  1649  
  1650  // 用户ID
  1651  //
  1652  // 示例值:ou_3ec3f6a28a0d08c45d895276e8e5e19b
  1653  func (builder *ReportTopUserBuilder) Id(id string) *ReportTopUserBuilder {
  1654  	builder.id = id
  1655  	builder.idFlag = true
  1656  	return builder
  1657  }
  1658  
  1659  // 用户名
  1660  //
  1661  // 示例值:name
  1662  func (builder *ReportTopUserBuilder) Name(name string) *ReportTopUserBuilder {
  1663  	builder.name = name
  1664  	builder.nameFlag = true
  1665  	return builder
  1666  }
  1667  
  1668  // 用户类型
  1669  //
  1670  // 示例值:1
  1671  func (builder *ReportTopUserBuilder) UserType(userType int) *ReportTopUserBuilder {
  1672  	builder.userType = userType
  1673  	builder.userTypeFlag = true
  1674  	return builder
  1675  }
  1676  
  1677  // 会议数量
  1678  //
  1679  // 示例值:100
  1680  func (builder *ReportTopUserBuilder) MeetingCount(meetingCount string) *ReportTopUserBuilder {
  1681  	builder.meetingCount = meetingCount
  1682  	builder.meetingCountFlag = true
  1683  	return builder
  1684  }
  1685  
  1686  // 会议时长(单位min)
  1687  //
  1688  // 示例值:3000
  1689  func (builder *ReportTopUserBuilder) MeetingDuration(meetingDuration string) *ReportTopUserBuilder {
  1690  	builder.meetingDuration = meetingDuration
  1691  	builder.meetingDurationFlag = true
  1692  	return builder
  1693  }
  1694  
  1695  func (builder *ReportTopUserBuilder) Build() *ReportTopUser {
  1696  	req := &ReportTopUser{}
  1697  	if builder.idFlag {
  1698  		req.Id = &builder.id
  1699  
  1700  	}
  1701  	if builder.nameFlag {
  1702  		req.Name = &builder.name
  1703  
  1704  	}
  1705  	if builder.userTypeFlag {
  1706  		req.UserType = &builder.userType
  1707  
  1708  	}
  1709  	if builder.meetingCountFlag {
  1710  		req.MeetingCount = &builder.meetingCount
  1711  
  1712  	}
  1713  	if builder.meetingDurationFlag {
  1714  		req.MeetingDuration = &builder.meetingDuration
  1715  
  1716  	}
  1717  	return req
  1718  }
  1719  
  1720  type Reserve struct {
  1721  	Id              *string                `json:"id,omitempty"`               // 预约ID(预约的唯一标识)
  1722  	MeetingNo       *string                `json:"meeting_no,omitempty"`       // 9位会议号(飞书用户可通过输入9位会议号快捷入会)
  1723  	Url             *string                `json:"url,omitempty"`              // 会议链接(飞书用户可通过点击会议链接快捷入会)
  1724  	AppLink         *string                `json:"app_link,omitempty"`         // APPLink用于唤起飞书APP入会。"{?}"为占位符,用于配置入会参数,使用时需替换具体值:0表示关闭,1表示打开。preview为入会前的设置页,mic为麦克风,speaker为扬声器,camera为摄像头
  1725  	LiveLink        *string                `json:"live_link,omitempty"`        // 直播链接
  1726  	EndTime         *string                `json:"end_time,omitempty"`         // 预约到期时间(unix时间,单位sec)
  1727  	ExpireStatus    *int                   `json:"expire_status,omitempty"`    // 过期状态
  1728  	ReserveUserId   *string                `json:"reserve_user_id,omitempty"`  // 预约人ID
  1729  	MeetingSettings *ReserveMeetingSetting `json:"meeting_settings,omitempty"` // 会议设置
  1730  }
  1731  
  1732  type ReserveBuilder struct {
  1733  	id                  string // 预约ID(预约的唯一标识)
  1734  	idFlag              bool
  1735  	meetingNo           string // 9位会议号(飞书用户可通过输入9位会议号快捷入会)
  1736  	meetingNoFlag       bool
  1737  	url                 string // 会议链接(飞书用户可通过点击会议链接快捷入会)
  1738  	urlFlag             bool
  1739  	appLink             string // APPLink用于唤起飞书APP入会。"{?}"为占位符,用于配置入会参数,使用时需替换具体值:0表示关闭,1表示打开。preview为入会前的设置页,mic为麦克风,speaker为扬声器,camera为摄像头
  1740  	appLinkFlag         bool
  1741  	liveLink            string // 直播链接
  1742  	liveLinkFlag        bool
  1743  	endTime             string // 预约到期时间(unix时间,单位sec)
  1744  	endTimeFlag         bool
  1745  	expireStatus        int // 过期状态
  1746  	expireStatusFlag    bool
  1747  	reserveUserId       string // 预约人ID
  1748  	reserveUserIdFlag   bool
  1749  	meetingSettings     *ReserveMeetingSetting // 会议设置
  1750  	meetingSettingsFlag bool
  1751  }
  1752  
  1753  func NewReserveBuilder() *ReserveBuilder {
  1754  	builder := &ReserveBuilder{}
  1755  	return builder
  1756  }
  1757  
  1758  // 预约ID(预约的唯一标识)
  1759  //
  1760  // 示例值:6911188411934973028
  1761  func (builder *ReserveBuilder) Id(id string) *ReserveBuilder {
  1762  	builder.id = id
  1763  	builder.idFlag = true
  1764  	return builder
  1765  }
  1766  
  1767  // 9位会议号(飞书用户可通过输入9位会议号快捷入会)
  1768  //
  1769  // 示例值:112000358
  1770  func (builder *ReserveBuilder) MeetingNo(meetingNo string) *ReserveBuilder {
  1771  	builder.meetingNo = meetingNo
  1772  	builder.meetingNoFlag = true
  1773  	return builder
  1774  }
  1775  
  1776  // 会议链接(飞书用户可通过点击会议链接快捷入会)
  1777  //
  1778  // 示例值:https://vc.feishu.cn/j/337736498
  1779  func (builder *ReserveBuilder) Url(url string) *ReserveBuilder {
  1780  	builder.url = url
  1781  	builder.urlFlag = true
  1782  	return builder
  1783  }
  1784  
  1785  // APPLink用于唤起飞书APP入会。"{?}"为占位符,用于配置入会参数,使用时需替换具体值:0表示关闭,1表示打开。preview为入会前的设置页,mic为麦克风,speaker为扬声器,camera为摄像头
  1786  //
  1787  // 示例值:https://applink.feishu.cn/client/videochat/open?source=openplatform&action=join&idtype=reservationid&id={?}&preview={?}&mic={?}&speaker={?}&camera={?}
  1788  func (builder *ReserveBuilder) AppLink(appLink string) *ReserveBuilder {
  1789  	builder.appLink = appLink
  1790  	builder.appLinkFlag = true
  1791  	return builder
  1792  }
  1793  
  1794  // 直播链接
  1795  //
  1796  // 示例值:https://meetings.feishu.cn/s/1gub381l4gglv
  1797  func (builder *ReserveBuilder) LiveLink(liveLink string) *ReserveBuilder {
  1798  	builder.liveLink = liveLink
  1799  	builder.liveLinkFlag = true
  1800  	return builder
  1801  }
  1802  
  1803  // 预约到期时间(unix时间,单位sec)
  1804  //
  1805  // 示例值:1608883322
  1806  func (builder *ReserveBuilder) EndTime(endTime string) *ReserveBuilder {
  1807  	builder.endTime = endTime
  1808  	builder.endTimeFlag = true
  1809  	return builder
  1810  }
  1811  
  1812  // 过期状态
  1813  //
  1814  // 示例值:0
  1815  func (builder *ReserveBuilder) ExpireStatus(expireStatus int) *ReserveBuilder {
  1816  	builder.expireStatus = expireStatus
  1817  	builder.expireStatusFlag = true
  1818  	return builder
  1819  }
  1820  
  1821  // 预约人ID
  1822  //
  1823  // 示例值:ou_3ec3f6a28a0d08c45d895276e8e5e19b
  1824  func (builder *ReserveBuilder) ReserveUserId(reserveUserId string) *ReserveBuilder {
  1825  	builder.reserveUserId = reserveUserId
  1826  	builder.reserveUserIdFlag = true
  1827  	return builder
  1828  }
  1829  
  1830  // 会议设置
  1831  //
  1832  // 示例值:
  1833  func (builder *ReserveBuilder) MeetingSettings(meetingSettings *ReserveMeetingSetting) *ReserveBuilder {
  1834  	builder.meetingSettings = meetingSettings
  1835  	builder.meetingSettingsFlag = true
  1836  	return builder
  1837  }
  1838  
  1839  func (builder *ReserveBuilder) Build() *Reserve {
  1840  	req := &Reserve{}
  1841  	if builder.idFlag {
  1842  		req.Id = &builder.id
  1843  
  1844  	}
  1845  	if builder.meetingNoFlag {
  1846  		req.MeetingNo = &builder.meetingNo
  1847  
  1848  	}
  1849  	if builder.urlFlag {
  1850  		req.Url = &builder.url
  1851  
  1852  	}
  1853  	if builder.appLinkFlag {
  1854  		req.AppLink = &builder.appLink
  1855  
  1856  	}
  1857  	if builder.liveLinkFlag {
  1858  		req.LiveLink = &builder.liveLink
  1859  
  1860  	}
  1861  	if builder.endTimeFlag {
  1862  		req.EndTime = &builder.endTime
  1863  
  1864  	}
  1865  	if builder.expireStatusFlag {
  1866  		req.ExpireStatus = &builder.expireStatus
  1867  
  1868  	}
  1869  	if builder.reserveUserIdFlag {
  1870  		req.ReserveUserId = &builder.reserveUserId
  1871  
  1872  	}
  1873  	if builder.meetingSettingsFlag {
  1874  		req.MeetingSettings = builder.meetingSettings
  1875  	}
  1876  	return req
  1877  }
  1878  
  1879  type ReserveActionPermission struct {
  1880  	Permission         *int                        `json:"permission,omitempty"`          // 权限项
  1881  	PermissionCheckers []*ReservePermissionChecker `json:"permission_checkers,omitempty"` // 权限检查器列表,权限检查器之间为"逻辑或"的关系(即 有一个为true则拥有该权限)
  1882  }
  1883  
  1884  type ReserveActionPermissionBuilder struct {
  1885  	permission             int // 权限项
  1886  	permissionFlag         bool
  1887  	permissionCheckers     []*ReservePermissionChecker // 权限检查器列表,权限检查器之间为"逻辑或"的关系(即 有一个为true则拥有该权限)
  1888  	permissionCheckersFlag bool
  1889  }
  1890  
  1891  func NewReserveActionPermissionBuilder() *ReserveActionPermissionBuilder {
  1892  	builder := &ReserveActionPermissionBuilder{}
  1893  	return builder
  1894  }
  1895  
  1896  // 权限项
  1897  //
  1898  // 示例值:1
  1899  func (builder *ReserveActionPermissionBuilder) Permission(permission int) *ReserveActionPermissionBuilder {
  1900  	builder.permission = permission
  1901  	builder.permissionFlag = true
  1902  	return builder
  1903  }
  1904  
  1905  // 权限检查器列表,权限检查器之间为"逻辑或"的关系(即 有一个为true则拥有该权限)
  1906  //
  1907  // 示例值:
  1908  func (builder *ReserveActionPermissionBuilder) PermissionCheckers(permissionCheckers []*ReservePermissionChecker) *ReserveActionPermissionBuilder {
  1909  	builder.permissionCheckers = permissionCheckers
  1910  	builder.permissionCheckersFlag = true
  1911  	return builder
  1912  }
  1913  
  1914  func (builder *ReserveActionPermissionBuilder) Build() *ReserveActionPermission {
  1915  	req := &ReserveActionPermission{}
  1916  	if builder.permissionFlag {
  1917  		req.Permission = &builder.permission
  1918  
  1919  	}
  1920  	if builder.permissionCheckersFlag {
  1921  		req.PermissionCheckers = builder.permissionCheckers
  1922  	}
  1923  	return req
  1924  }
  1925  
  1926  type ReserveCallSetting struct {
  1927  	Callee *ReserveCallee `json:"callee,omitempty"` // 被呼叫的用户
  1928  }
  1929  
  1930  type ReserveCallSettingBuilder struct {
  1931  	callee     *ReserveCallee // 被呼叫的用户
  1932  	calleeFlag bool
  1933  }
  1934  
  1935  func NewReserveCallSettingBuilder() *ReserveCallSettingBuilder {
  1936  	builder := &ReserveCallSettingBuilder{}
  1937  	return builder
  1938  }
  1939  
  1940  // 被呼叫的用户
  1941  //
  1942  // 示例值:
  1943  func (builder *ReserveCallSettingBuilder) Callee(callee *ReserveCallee) *ReserveCallSettingBuilder {
  1944  	builder.callee = callee
  1945  	builder.calleeFlag = true
  1946  	return builder
  1947  }
  1948  
  1949  func (builder *ReserveCallSettingBuilder) Build() *ReserveCallSetting {
  1950  	req := &ReserveCallSetting{}
  1951  	if builder.calleeFlag {
  1952  		req.Callee = builder.callee
  1953  	}
  1954  	return req
  1955  }
  1956  
  1957  type ReserveCallee struct {
  1958  	Id          *string      `json:"id,omitempty"`            // 用户ID
  1959  	UserType    *int         `json:"user_type,omitempty"`     // 用户类型,当前仅支持用户类型6(pstn用户)
  1960  	PstnSipInfo *PstnSipInfo `json:"pstn_sip_info,omitempty"` // pstn/sip信息
  1961  }
  1962  
  1963  type ReserveCalleeBuilder struct {
  1964  	id              string // 用户ID
  1965  	idFlag          bool
  1966  	userType        int // 用户类型,当前仅支持用户类型6(pstn用户)
  1967  	userTypeFlag    bool
  1968  	pstnSipInfo     *PstnSipInfo // pstn/sip信息
  1969  	pstnSipInfoFlag bool
  1970  }
  1971  
  1972  func NewReserveCalleeBuilder() *ReserveCalleeBuilder {
  1973  	builder := &ReserveCalleeBuilder{}
  1974  	return builder
  1975  }
  1976  
  1977  // 用户ID
  1978  //
  1979  // 示例值:ou_3ec3f6a28a0d08c45d895276e8e5e19b
  1980  func (builder *ReserveCalleeBuilder) Id(id string) *ReserveCalleeBuilder {
  1981  	builder.id = id
  1982  	builder.idFlag = true
  1983  	return builder
  1984  }
  1985  
  1986  // 用户类型,当前仅支持用户类型6(pstn用户)
  1987  //
  1988  // 示例值:1
  1989  func (builder *ReserveCalleeBuilder) UserType(userType int) *ReserveCalleeBuilder {
  1990  	builder.userType = userType
  1991  	builder.userTypeFlag = true
  1992  	return builder
  1993  }
  1994  
  1995  // pstn/sip信息
  1996  //
  1997  // 示例值:
  1998  func (builder *ReserveCalleeBuilder) PstnSipInfo(pstnSipInfo *PstnSipInfo) *ReserveCalleeBuilder {
  1999  	builder.pstnSipInfo = pstnSipInfo
  2000  	builder.pstnSipInfoFlag = true
  2001  	return builder
  2002  }
  2003  
  2004  func (builder *ReserveCalleeBuilder) Build() *ReserveCallee {
  2005  	req := &ReserveCallee{}
  2006  	if builder.idFlag {
  2007  		req.Id = &builder.id
  2008  
  2009  	}
  2010  	if builder.userTypeFlag {
  2011  		req.UserType = &builder.userType
  2012  
  2013  	}
  2014  	if builder.pstnSipInfoFlag {
  2015  		req.PstnSipInfo = builder.pstnSipInfo
  2016  	}
  2017  	return req
  2018  }
  2019  
  2020  type ReserveMeetingSetting struct {
  2021  	Topic              *string                    `json:"topic,omitempty"`                // 会议主题
  2022  	ActionPermissions  []*ReserveActionPermission `json:"action_permissions,omitempty"`   // 会议权限配置列表,如果存在相同的权限配置项则它们之间为"逻辑或"的关系(即 有一个为true则拥有该权限)
  2023  	MeetingInitialType *int                       `json:"meeting_initial_type,omitempty"` // 会议初始类型
  2024  	CallSetting        *ReserveCallSetting        `json:"call_setting,omitempty"`         // 1v1呼叫相关参数
  2025  	AutoRecord         *bool                      `json:"auto_record,omitempty"`          // 使用飞书视频会议时,是否开启自动录制,默认false
  2026  }
  2027  
  2028  type ReserveMeetingSettingBuilder struct {
  2029  	topic                  string // 会议主题
  2030  	topicFlag              bool
  2031  	actionPermissions      []*ReserveActionPermission // 会议权限配置列表,如果存在相同的权限配置项则它们之间为"逻辑或"的关系(即 有一个为true则拥有该权限)
  2032  	actionPermissionsFlag  bool
  2033  	meetingInitialType     int // 会议初始类型
  2034  	meetingInitialTypeFlag bool
  2035  	callSetting            *ReserveCallSetting // 1v1呼叫相关参数
  2036  	callSettingFlag        bool
  2037  	autoRecord             bool // 使用飞书视频会议时,是否开启自动录制,默认false
  2038  	autoRecordFlag         bool
  2039  }
  2040  
  2041  func NewReserveMeetingSettingBuilder() *ReserveMeetingSettingBuilder {
  2042  	builder := &ReserveMeetingSettingBuilder{}
  2043  	return builder
  2044  }
  2045  
  2046  // 会议主题
  2047  //
  2048  // 示例值:my meeting
  2049  func (builder *ReserveMeetingSettingBuilder) Topic(topic string) *ReserveMeetingSettingBuilder {
  2050  	builder.topic = topic
  2051  	builder.topicFlag = true
  2052  	return builder
  2053  }
  2054  
  2055  // 会议权限配置列表,如果存在相同的权限配置项则它们之间为"逻辑或"的关系(即 有一个为true则拥有该权限)
  2056  //
  2057  // 示例值:
  2058  func (builder *ReserveMeetingSettingBuilder) ActionPermissions(actionPermissions []*ReserveActionPermission) *ReserveMeetingSettingBuilder {
  2059  	builder.actionPermissions = actionPermissions
  2060  	builder.actionPermissionsFlag = true
  2061  	return builder
  2062  }
  2063  
  2064  // 会议初始类型
  2065  //
  2066  // 示例值:1
  2067  func (builder *ReserveMeetingSettingBuilder) MeetingInitialType(meetingInitialType int) *ReserveMeetingSettingBuilder {
  2068  	builder.meetingInitialType = meetingInitialType
  2069  	builder.meetingInitialTypeFlag = true
  2070  	return builder
  2071  }
  2072  
  2073  // 1v1呼叫相关参数
  2074  //
  2075  // 示例值:
  2076  func (builder *ReserveMeetingSettingBuilder) CallSetting(callSetting *ReserveCallSetting) *ReserveMeetingSettingBuilder {
  2077  	builder.callSetting = callSetting
  2078  	builder.callSettingFlag = true
  2079  	return builder
  2080  }
  2081  
  2082  // 使用飞书视频会议时,是否开启自动录制,默认false
  2083  //
  2084  // 示例值:true
  2085  func (builder *ReserveMeetingSettingBuilder) AutoRecord(autoRecord bool) *ReserveMeetingSettingBuilder {
  2086  	builder.autoRecord = autoRecord
  2087  	builder.autoRecordFlag = true
  2088  	return builder
  2089  }
  2090  
  2091  func (builder *ReserveMeetingSettingBuilder) Build() *ReserveMeetingSetting {
  2092  	req := &ReserveMeetingSetting{}
  2093  	if builder.topicFlag {
  2094  		req.Topic = &builder.topic
  2095  
  2096  	}
  2097  	if builder.actionPermissionsFlag {
  2098  		req.ActionPermissions = builder.actionPermissions
  2099  	}
  2100  	if builder.meetingInitialTypeFlag {
  2101  		req.MeetingInitialType = &builder.meetingInitialType
  2102  
  2103  	}
  2104  	if builder.callSettingFlag {
  2105  		req.CallSetting = builder.callSetting
  2106  	}
  2107  	if builder.autoRecordFlag {
  2108  		req.AutoRecord = &builder.autoRecord
  2109  
  2110  	}
  2111  	return req
  2112  }
  2113  
  2114  type ReservePermissionChecker struct {
  2115  	CheckField *int     `json:"check_field,omitempty"` // 检查字段类型
  2116  	CheckMode  *int     `json:"check_mode,omitempty"`  // 检查方式
  2117  	CheckList  []string `json:"check_list,omitempty"`  // 检查字段列表
  2118  }
  2119  
  2120  type ReservePermissionCheckerBuilder struct {
  2121  	checkField     int // 检查字段类型
  2122  	checkFieldFlag bool
  2123  	checkMode      int // 检查方式
  2124  	checkModeFlag  bool
  2125  	checkList      []string // 检查字段列表
  2126  	checkListFlag  bool
  2127  }
  2128  
  2129  func NewReservePermissionCheckerBuilder() *ReservePermissionCheckerBuilder {
  2130  	builder := &ReservePermissionCheckerBuilder{}
  2131  	return builder
  2132  }
  2133  
  2134  // 检查字段类型
  2135  //
  2136  // 示例值:1
  2137  func (builder *ReservePermissionCheckerBuilder) CheckField(checkField int) *ReservePermissionCheckerBuilder {
  2138  	builder.checkField = checkField
  2139  	builder.checkFieldFlag = true
  2140  	return builder
  2141  }
  2142  
  2143  // 检查方式
  2144  //
  2145  // 示例值:1
  2146  func (builder *ReservePermissionCheckerBuilder) CheckMode(checkMode int) *ReservePermissionCheckerBuilder {
  2147  	builder.checkMode = checkMode
  2148  	builder.checkModeFlag = true
  2149  	return builder
  2150  }
  2151  
  2152  // 检查字段列表
  2153  //
  2154  // 示例值:123
  2155  func (builder *ReservePermissionCheckerBuilder) CheckList(checkList []string) *ReservePermissionCheckerBuilder {
  2156  	builder.checkList = checkList
  2157  	builder.checkListFlag = true
  2158  	return builder
  2159  }
  2160  
  2161  func (builder *ReservePermissionCheckerBuilder) Build() *ReservePermissionChecker {
  2162  	req := &ReservePermissionChecker{}
  2163  	if builder.checkFieldFlag {
  2164  		req.CheckField = &builder.checkField
  2165  
  2166  	}
  2167  	if builder.checkModeFlag {
  2168  		req.CheckMode = &builder.checkMode
  2169  
  2170  	}
  2171  	if builder.checkListFlag {
  2172  		req.CheckList = builder.checkList
  2173  	}
  2174  	return req
  2175  }
  2176  
  2177  type RoomConfig struct {
  2178  	RoomBackground        *string             `json:"room_background,omitempty"`          // 飞书会议室背景图
  2179  	DisplayBackground     *string             `json:"display_background,omitempty"`       // 飞书签到板背景图
  2180  	DigitalSignage        *RoomDigitalSignage `json:"digital_signage,omitempty"`          // 飞书会议室数字标牌
  2181  	RoomBoxDigitalSignage *RoomDigitalSignage `json:"room_box_digital_signage,omitempty"` // 飞书投屏盒子数字标牌
  2182  	RoomStatus            *RoomStatus         `json:"room_status,omitempty"`              // 会议室状态
  2183  }
  2184  
  2185  type RoomConfigBuilder struct {
  2186  	roomBackground            string // 飞书会议室背景图
  2187  	roomBackgroundFlag        bool
  2188  	displayBackground         string // 飞书签到板背景图
  2189  	displayBackgroundFlag     bool
  2190  	digitalSignage            *RoomDigitalSignage // 飞书会议室数字标牌
  2191  	digitalSignageFlag        bool
  2192  	roomBoxDigitalSignage     *RoomDigitalSignage // 飞书投屏盒子数字标牌
  2193  	roomBoxDigitalSignageFlag bool
  2194  	roomStatus                *RoomStatus // 会议室状态
  2195  	roomStatusFlag            bool
  2196  }
  2197  
  2198  func NewRoomConfigBuilder() *RoomConfigBuilder {
  2199  	builder := &RoomConfigBuilder{}
  2200  	return builder
  2201  }
  2202  
  2203  // 飞书会议室背景图
  2204  //
  2205  // 示例值:https://lf1-ttcdn-tos.pstatp.com/obj/xxx
  2206  func (builder *RoomConfigBuilder) RoomBackground(roomBackground string) *RoomConfigBuilder {
  2207  	builder.roomBackground = roomBackground
  2208  	builder.roomBackgroundFlag = true
  2209  	return builder
  2210  }
  2211  
  2212  // 飞书签到板背景图
  2213  //
  2214  // 示例值:https://lf1-ttcdn-tos.pstatp.com/obj/xxx
  2215  func (builder *RoomConfigBuilder) DisplayBackground(displayBackground string) *RoomConfigBuilder {
  2216  	builder.displayBackground = displayBackground
  2217  	builder.displayBackgroundFlag = true
  2218  	return builder
  2219  }
  2220  
  2221  // 飞书会议室数字标牌
  2222  //
  2223  // 示例值:
  2224  func (builder *RoomConfigBuilder) DigitalSignage(digitalSignage *RoomDigitalSignage) *RoomConfigBuilder {
  2225  	builder.digitalSignage = digitalSignage
  2226  	builder.digitalSignageFlag = true
  2227  	return builder
  2228  }
  2229  
  2230  // 飞书投屏盒子数字标牌
  2231  //
  2232  // 示例值:
  2233  func (builder *RoomConfigBuilder) RoomBoxDigitalSignage(roomBoxDigitalSignage *RoomDigitalSignage) *RoomConfigBuilder {
  2234  	builder.roomBoxDigitalSignage = roomBoxDigitalSignage
  2235  	builder.roomBoxDigitalSignageFlag = true
  2236  	return builder
  2237  }
  2238  
  2239  // 会议室状态
  2240  //
  2241  // 示例值:
  2242  func (builder *RoomConfigBuilder) RoomStatus(roomStatus *RoomStatus) *RoomConfigBuilder {
  2243  	builder.roomStatus = roomStatus
  2244  	builder.roomStatusFlag = true
  2245  	return builder
  2246  }
  2247  
  2248  func (builder *RoomConfigBuilder) Build() *RoomConfig {
  2249  	req := &RoomConfig{}
  2250  	if builder.roomBackgroundFlag {
  2251  		req.RoomBackground = &builder.roomBackground
  2252  
  2253  	}
  2254  	if builder.displayBackgroundFlag {
  2255  		req.DisplayBackground = &builder.displayBackground
  2256  
  2257  	}
  2258  	if builder.digitalSignageFlag {
  2259  		req.DigitalSignage = builder.digitalSignage
  2260  	}
  2261  	if builder.roomBoxDigitalSignageFlag {
  2262  		req.RoomBoxDigitalSignage = builder.roomBoxDigitalSignage
  2263  	}
  2264  	if builder.roomStatusFlag {
  2265  		req.RoomStatus = builder.roomStatus
  2266  	}
  2267  	return req
  2268  }
  2269  
  2270  type RoomDigitalSignage struct {
  2271  	Enable       *bool                         `json:"enable,omitempty"`        // 是否开启数字标牌功能
  2272  	Mute         *bool                         `json:"mute,omitempty"`          // 是否静音播放
  2273  	StartDisplay *int                          `json:"start_display,omitempty"` // 日程会议开始前n分钟结束播放
  2274  	StopDisplay  *int                          `json:"stop_display,omitempty"`  // 会议结束后n分钟开始播放
  2275  	Materials    []*RoomDigitalSignageMaterial `json:"materials,omitempty"`     // 素材列表
  2276  }
  2277  
  2278  type RoomDigitalSignageBuilder struct {
  2279  	enable           bool // 是否开启数字标牌功能
  2280  	enableFlag       bool
  2281  	mute             bool // 是否静音播放
  2282  	muteFlag         bool
  2283  	startDisplay     int // 日程会议开始前n分钟结束播放
  2284  	startDisplayFlag bool
  2285  	stopDisplay      int // 会议结束后n分钟开始播放
  2286  	stopDisplayFlag  bool
  2287  	materials        []*RoomDigitalSignageMaterial // 素材列表
  2288  	materialsFlag    bool
  2289  }
  2290  
  2291  func NewRoomDigitalSignageBuilder() *RoomDigitalSignageBuilder {
  2292  	builder := &RoomDigitalSignageBuilder{}
  2293  	return builder
  2294  }
  2295  
  2296  // 是否开启数字标牌功能
  2297  //
  2298  // 示例值:true
  2299  func (builder *RoomDigitalSignageBuilder) Enable(enable bool) *RoomDigitalSignageBuilder {
  2300  	builder.enable = enable
  2301  	builder.enableFlag = true
  2302  	return builder
  2303  }
  2304  
  2305  // 是否静音播放
  2306  //
  2307  // 示例值:true
  2308  func (builder *RoomDigitalSignageBuilder) Mute(mute bool) *RoomDigitalSignageBuilder {
  2309  	builder.mute = mute
  2310  	builder.muteFlag = true
  2311  	return builder
  2312  }
  2313  
  2314  // 日程会议开始前n分钟结束播放
  2315  //
  2316  // 示例值:3
  2317  func (builder *RoomDigitalSignageBuilder) StartDisplay(startDisplay int) *RoomDigitalSignageBuilder {
  2318  	builder.startDisplay = startDisplay
  2319  	builder.startDisplayFlag = true
  2320  	return builder
  2321  }
  2322  
  2323  // 会议结束后n分钟开始播放
  2324  //
  2325  // 示例值:3
  2326  func (builder *RoomDigitalSignageBuilder) StopDisplay(stopDisplay int) *RoomDigitalSignageBuilder {
  2327  	builder.stopDisplay = stopDisplay
  2328  	builder.stopDisplayFlag = true
  2329  	return builder
  2330  }
  2331  
  2332  // 素材列表
  2333  //
  2334  // 示例值:
  2335  func (builder *RoomDigitalSignageBuilder) Materials(materials []*RoomDigitalSignageMaterial) *RoomDigitalSignageBuilder {
  2336  	builder.materials = materials
  2337  	builder.materialsFlag = true
  2338  	return builder
  2339  }
  2340  
  2341  func (builder *RoomDigitalSignageBuilder) Build() *RoomDigitalSignage {
  2342  	req := &RoomDigitalSignage{}
  2343  	if builder.enableFlag {
  2344  		req.Enable = &builder.enable
  2345  
  2346  	}
  2347  	if builder.muteFlag {
  2348  		req.Mute = &builder.mute
  2349  
  2350  	}
  2351  	if builder.startDisplayFlag {
  2352  		req.StartDisplay = &builder.startDisplay
  2353  
  2354  	}
  2355  	if builder.stopDisplayFlag {
  2356  		req.StopDisplay = &builder.stopDisplay
  2357  
  2358  	}
  2359  	if builder.materialsFlag {
  2360  		req.Materials = builder.materials
  2361  	}
  2362  	return req
  2363  }
  2364  
  2365  type RoomDigitalSignageMaterial struct {
  2366  	Id           *string `json:"id,omitempty"`            // 素材ID
  2367  	Name         *string `json:"name,omitempty"`          // 素材名称
  2368  	MaterialType *int    `json:"material_type,omitempty"` // 素材类型
  2369  	Url          *string `json:"url,omitempty"`           // 素材url
  2370  	Duration     *int    `json:"duration,omitempty"`      // 播放时长(单位sec)
  2371  	Cover        *string `json:"cover,omitempty"`         // 素材封面url
  2372  	Md5          *string `json:"md5,omitempty"`           // 素材文件md5
  2373  	Vid          *string `json:"vid,omitempty"`           // 素材文件vid
  2374  	Size         *string `json:"size,omitempty"`          // 素材文件大小(单位byte)
  2375  }
  2376  
  2377  type RoomDigitalSignageMaterialBuilder struct {
  2378  	id               string // 素材ID
  2379  	idFlag           bool
  2380  	name             string // 素材名称
  2381  	nameFlag         bool
  2382  	materialType     int // 素材类型
  2383  	materialTypeFlag bool
  2384  	url              string // 素材url
  2385  	urlFlag          bool
  2386  	duration         int // 播放时长(单位sec)
  2387  	durationFlag     bool
  2388  	cover            string // 素材封面url
  2389  	coverFlag        bool
  2390  	md5              string // 素材文件md5
  2391  	md5Flag          bool
  2392  	vid              string // 素材文件vid
  2393  	vidFlag          bool
  2394  	size             string // 素材文件大小(单位byte)
  2395  	sizeFlag         bool
  2396  }
  2397  
  2398  func NewRoomDigitalSignageMaterialBuilder() *RoomDigitalSignageMaterialBuilder {
  2399  	builder := &RoomDigitalSignageMaterialBuilder{}
  2400  	return builder
  2401  }
  2402  
  2403  // 素材ID
  2404  //
  2405  // 示例值:7847784676276
  2406  func (builder *RoomDigitalSignageMaterialBuilder) Id(id string) *RoomDigitalSignageMaterialBuilder {
  2407  	builder.id = id
  2408  	builder.idFlag = true
  2409  	return builder
  2410  }
  2411  
  2412  // 素材名称
  2413  //
  2414  // 示例值:name
  2415  func (builder *RoomDigitalSignageMaterialBuilder) Name(name string) *RoomDigitalSignageMaterialBuilder {
  2416  	builder.name = name
  2417  	builder.nameFlag = true
  2418  	return builder
  2419  }
  2420  
  2421  // 素材类型
  2422  //
  2423  // 示例值:0
  2424  func (builder *RoomDigitalSignageMaterialBuilder) MaterialType(materialType int) *RoomDigitalSignageMaterialBuilder {
  2425  	builder.materialType = materialType
  2426  	builder.materialTypeFlag = true
  2427  	return builder
  2428  }
  2429  
  2430  // 素材url
  2431  //
  2432  // 示例值:url
  2433  func (builder *RoomDigitalSignageMaterialBuilder) Url(url string) *RoomDigitalSignageMaterialBuilder {
  2434  	builder.url = url
  2435  	builder.urlFlag = true
  2436  	return builder
  2437  }
  2438  
  2439  // 播放时长(单位sec)
  2440  //
  2441  // 示例值:15
  2442  func (builder *RoomDigitalSignageMaterialBuilder) Duration(duration int) *RoomDigitalSignageMaterialBuilder {
  2443  	builder.duration = duration
  2444  	builder.durationFlag = true
  2445  	return builder
  2446  }
  2447  
  2448  // 素材封面url
  2449  //
  2450  // 示例值:url
  2451  func (builder *RoomDigitalSignageMaterialBuilder) Cover(cover string) *RoomDigitalSignageMaterialBuilder {
  2452  	builder.cover = cover
  2453  	builder.coverFlag = true
  2454  	return builder
  2455  }
  2456  
  2457  // 素材文件md5
  2458  //
  2459  // 示例值:md5
  2460  func (builder *RoomDigitalSignageMaterialBuilder) Md5(md5 string) *RoomDigitalSignageMaterialBuilder {
  2461  	builder.md5 = md5
  2462  	builder.md5Flag = true
  2463  	return builder
  2464  }
  2465  
  2466  // 素材文件vid
  2467  //
  2468  // 示例值:vid
  2469  func (builder *RoomDigitalSignageMaterialBuilder) Vid(vid string) *RoomDigitalSignageMaterialBuilder {
  2470  	builder.vid = vid
  2471  	builder.vidFlag = true
  2472  	return builder
  2473  }
  2474  
  2475  // 素材文件大小(单位byte)
  2476  //
  2477  // 示例值:100
  2478  func (builder *RoomDigitalSignageMaterialBuilder) Size(size string) *RoomDigitalSignageMaterialBuilder {
  2479  	builder.size = size
  2480  	builder.sizeFlag = true
  2481  	return builder
  2482  }
  2483  
  2484  func (builder *RoomDigitalSignageMaterialBuilder) Build() *RoomDigitalSignageMaterial {
  2485  	req := &RoomDigitalSignageMaterial{}
  2486  	if builder.idFlag {
  2487  		req.Id = &builder.id
  2488  
  2489  	}
  2490  	if builder.nameFlag {
  2491  		req.Name = &builder.name
  2492  
  2493  	}
  2494  	if builder.materialTypeFlag {
  2495  		req.MaterialType = &builder.materialType
  2496  
  2497  	}
  2498  	if builder.urlFlag {
  2499  		req.Url = &builder.url
  2500  
  2501  	}
  2502  	if builder.durationFlag {
  2503  		req.Duration = &builder.duration
  2504  
  2505  	}
  2506  	if builder.coverFlag {
  2507  		req.Cover = &builder.cover
  2508  
  2509  	}
  2510  	if builder.md5Flag {
  2511  		req.Md5 = &builder.md5
  2512  
  2513  	}
  2514  	if builder.vidFlag {
  2515  		req.Vid = &builder.vid
  2516  
  2517  	}
  2518  	if builder.sizeFlag {
  2519  		req.Size = &builder.size
  2520  
  2521  	}
  2522  	return req
  2523  }
  2524  
  2525  type RoomStatus struct {
  2526  	Status           *bool    `json:"status,omitempty"`             // 是否启用会议室
  2527  	ScheduleStatus   *bool    `json:"schedule_status,omitempty"`    // 会议室未来状态为启用或禁用
  2528  	DisableStartTime *string  `json:"disable_start_time,omitempty"` // 禁用开始时间(unix时间,单位sec)
  2529  	DisableEndTime   *string  `json:"disable_end_time,omitempty"`   // 禁用结束时间(unix时间,单位sec,数值0表示永久禁用)
  2530  	DisableReason    *string  `json:"disable_reason,omitempty"`     // 禁用原因
  2531  	ContactIds       []string `json:"contact_ids,omitempty"`        // 联系人列表,id类型由user_id_type参数决定
  2532  	DisableNotice    *bool    `json:"disable_notice,omitempty"`     // 是否在禁用时发送通知给预定了该会议室的员工
  2533  	ResumeNotice     *bool    `json:"resume_notice,omitempty"`      // 是否在恢复启用时发送通知给预定了该会议室的员工
  2534  }
  2535  
  2536  type RoomStatusBuilder struct {
  2537  	status               bool // 是否启用会议室
  2538  	statusFlag           bool
  2539  	scheduleStatus       bool // 会议室未来状态为启用或禁用
  2540  	scheduleStatusFlag   bool
  2541  	disableStartTime     string // 禁用开始时间(unix时间,单位sec)
  2542  	disableStartTimeFlag bool
  2543  	disableEndTime       string // 禁用结束时间(unix时间,单位sec,数值0表示永久禁用)
  2544  	disableEndTimeFlag   bool
  2545  	disableReason        string // 禁用原因
  2546  	disableReasonFlag    bool
  2547  	contactIds           []string // 联系人列表,id类型由user_id_type参数决定
  2548  	contactIdsFlag       bool
  2549  	disableNotice        bool // 是否在禁用时发送通知给预定了该会议室的员工
  2550  	disableNoticeFlag    bool
  2551  	resumeNotice         bool // 是否在恢复启用时发送通知给预定了该会议室的员工
  2552  	resumeNoticeFlag     bool
  2553  }
  2554  
  2555  func NewRoomStatusBuilder() *RoomStatusBuilder {
  2556  	builder := &RoomStatusBuilder{}
  2557  	return builder
  2558  }
  2559  
  2560  // 是否启用会议室
  2561  //
  2562  // 示例值:true
  2563  func (builder *RoomStatusBuilder) Status(status bool) *RoomStatusBuilder {
  2564  	builder.status = status
  2565  	builder.statusFlag = true
  2566  	return builder
  2567  }
  2568  
  2569  // 会议室未来状态为启用或禁用
  2570  //
  2571  // 示例值:true
  2572  func (builder *RoomStatusBuilder) ScheduleStatus(scheduleStatus bool) *RoomStatusBuilder {
  2573  	builder.scheduleStatus = scheduleStatus
  2574  	builder.scheduleStatusFlag = true
  2575  	return builder
  2576  }
  2577  
  2578  // 禁用开始时间(unix时间,单位sec)
  2579  //
  2580  // 示例值:1652356050
  2581  func (builder *RoomStatusBuilder) DisableStartTime(disableStartTime string) *RoomStatusBuilder {
  2582  	builder.disableStartTime = disableStartTime
  2583  	builder.disableStartTimeFlag = true
  2584  	return builder
  2585  }
  2586  
  2587  // 禁用结束时间(unix时间,单位sec,数值0表示永久禁用)
  2588  //
  2589  // 示例值:1652442450
  2590  func (builder *RoomStatusBuilder) DisableEndTime(disableEndTime string) *RoomStatusBuilder {
  2591  	builder.disableEndTime = disableEndTime
  2592  	builder.disableEndTimeFlag = true
  2593  	return builder
  2594  }
  2595  
  2596  // 禁用原因
  2597  //
  2598  // 示例值:测试占用
  2599  func (builder *RoomStatusBuilder) DisableReason(disableReason string) *RoomStatusBuilder {
  2600  	builder.disableReason = disableReason
  2601  	builder.disableReasonFlag = true
  2602  	return builder
  2603  }
  2604  
  2605  // 联系人列表,id类型由user_id_type参数决定
  2606  //
  2607  // 示例值:["ou_3ec3f6a28a0d08c45d895276e8e5e19b"]
  2608  func (builder *RoomStatusBuilder) ContactIds(contactIds []string) *RoomStatusBuilder {
  2609  	builder.contactIds = contactIds
  2610  	builder.contactIdsFlag = true
  2611  	return builder
  2612  }
  2613  
  2614  // 是否在禁用时发送通知给预定了该会议室的员工
  2615  //
  2616  // 示例值:true
  2617  func (builder *RoomStatusBuilder) DisableNotice(disableNotice bool) *RoomStatusBuilder {
  2618  	builder.disableNotice = disableNotice
  2619  	builder.disableNoticeFlag = true
  2620  	return builder
  2621  }
  2622  
  2623  // 是否在恢复启用时发送通知给预定了该会议室的员工
  2624  //
  2625  // 示例值:true
  2626  func (builder *RoomStatusBuilder) ResumeNotice(resumeNotice bool) *RoomStatusBuilder {
  2627  	builder.resumeNotice = resumeNotice
  2628  	builder.resumeNoticeFlag = true
  2629  	return builder
  2630  }
  2631  
  2632  func (builder *RoomStatusBuilder) Build() *RoomStatus {
  2633  	req := &RoomStatus{}
  2634  	if builder.statusFlag {
  2635  		req.Status = &builder.status
  2636  
  2637  	}
  2638  	if builder.scheduleStatusFlag {
  2639  		req.ScheduleStatus = &builder.scheduleStatus
  2640  
  2641  	}
  2642  	if builder.disableStartTimeFlag {
  2643  		req.DisableStartTime = &builder.disableStartTime
  2644  
  2645  	}
  2646  	if builder.disableEndTimeFlag {
  2647  		req.DisableEndTime = &builder.disableEndTime
  2648  
  2649  	}
  2650  	if builder.disableReasonFlag {
  2651  		req.DisableReason = &builder.disableReason
  2652  
  2653  	}
  2654  	if builder.contactIdsFlag {
  2655  		req.ContactIds = builder.contactIds
  2656  	}
  2657  	if builder.disableNoticeFlag {
  2658  		req.DisableNotice = &builder.disableNotice
  2659  
  2660  	}
  2661  	if builder.resumeNoticeFlag {
  2662  		req.ResumeNotice = &builder.resumeNotice
  2663  
  2664  	}
  2665  	return req
  2666  }
  2667  
  2668  type UserId struct {
  2669  	UserId  *string `json:"user_id,omitempty"`  //
  2670  	OpenId  *string `json:"open_id,omitempty"`  //
  2671  	UnionId *string `json:"union_id,omitempty"` //
  2672  }
  2673  
  2674  type UserIdBuilder struct {
  2675  	userId      string //
  2676  	userIdFlag  bool
  2677  	openId      string //
  2678  	openIdFlag  bool
  2679  	unionId     string //
  2680  	unionIdFlag bool
  2681  }
  2682  
  2683  func NewUserIdBuilder() *UserIdBuilder {
  2684  	builder := &UserIdBuilder{}
  2685  	return builder
  2686  }
  2687  
  2688  //
  2689  //
  2690  // 示例值:
  2691  func (builder *UserIdBuilder) UserId(userId string) *UserIdBuilder {
  2692  	builder.userId = userId
  2693  	builder.userIdFlag = true
  2694  	return builder
  2695  }
  2696  
  2697  //
  2698  //
  2699  // 示例值:
  2700  func (builder *UserIdBuilder) OpenId(openId string) *UserIdBuilder {
  2701  	builder.openId = openId
  2702  	builder.openIdFlag = true
  2703  	return builder
  2704  }
  2705  
  2706  //
  2707  //
  2708  // 示例值:
  2709  func (builder *UserIdBuilder) UnionId(unionId string) *UserIdBuilder {
  2710  	builder.unionId = unionId
  2711  	builder.unionIdFlag = true
  2712  	return builder
  2713  }
  2714  
  2715  func (builder *UserIdBuilder) Build() *UserId {
  2716  	req := &UserId{}
  2717  	if builder.userIdFlag {
  2718  		req.UserId = &builder.userId
  2719  
  2720  	}
  2721  	if builder.openIdFlag {
  2722  		req.OpenId = &builder.openId
  2723  
  2724  	}
  2725  	if builder.unionIdFlag {
  2726  		req.UnionId = &builder.unionId
  2727  
  2728  	}
  2729  	return req
  2730  }
  2731  
  2732  type GetExportReqBuilder struct {
  2733  	apiReq *larkcore.ApiReq
  2734  }
  2735  
  2736  func NewGetExportReqBuilder() *GetExportReqBuilder {
  2737  	builder := &GetExportReqBuilder{}
  2738  	builder.apiReq = &larkcore.ApiReq{
  2739  		PathParams:  larkcore.PathParams{},
  2740  		QueryParams: larkcore.QueryParams{},
  2741  	}
  2742  	return builder
  2743  }
  2744  
  2745  // 任务id
  2746  //
  2747  // 示例值:7108646852144136212
  2748  func (builder *GetExportReqBuilder) TaskId(taskId string) *GetExportReqBuilder {
  2749  	builder.apiReq.PathParams.Set("task_id", fmt.Sprint(taskId))
  2750  	return builder
  2751  }
  2752  
  2753  func (builder *GetExportReqBuilder) Build() *GetExportReq {
  2754  	req := &GetExportReq{}
  2755  	req.apiReq = &larkcore.ApiReq{}
  2756  	req.apiReq.PathParams = builder.apiReq.PathParams
  2757  	return req
  2758  }
  2759  
  2760  type GetExportReq struct {
  2761  	apiReq *larkcore.ApiReq
  2762  }
  2763  
  2764  type GetExportRespData struct {
  2765  	Status *int    `json:"status,omitempty"` // 任务状态
  2766  	Url    *string `json:"url,omitempty"`    // 文件下载地址
  2767  }
  2768  
  2769  type GetExportResp struct {
  2770  	*larkcore.ApiResp `json:"-"`
  2771  	larkcore.CodeError
  2772  	Data *GetExportRespData `json:"data"` // 业务数据
  2773  }
  2774  
  2775  func (resp *GetExportResp) Success() bool {
  2776  	return resp.Code == 0
  2777  }
  2778  
  2779  type MeetingListExportReqBodyBuilder struct {
  2780  	startTime     string // 查询开始时间(unix时间,单位sec)
  2781  	startTimeFlag bool
  2782  	endTime       string // 查询结束时间(unix时间,单位sec)
  2783  	endTimeFlag   bool
  2784  	meetingNo     string // 按9位会议号筛选(最多一个筛选条件)
  2785  	meetingNoFlag bool
  2786  	userId        string // 按参会Lark用户筛选(最多一个筛选条件)
  2787  	userIdFlag    bool
  2788  	roomId        string // 按参会Rooms筛选(最多一个筛选条件)
  2789  	roomIdFlag    bool
  2790  }
  2791  
  2792  func NewMeetingListExportReqBodyBuilder() *MeetingListExportReqBodyBuilder {
  2793  	builder := &MeetingListExportReqBodyBuilder{}
  2794  	return builder
  2795  }
  2796  
  2797  // 查询开始时间(unix时间,单位sec)
  2798  //
  2799  //示例值:1655276858
  2800  func (builder *MeetingListExportReqBodyBuilder) StartTime(startTime string) *MeetingListExportReqBodyBuilder {
  2801  	builder.startTime = startTime
  2802  	builder.startTimeFlag = true
  2803  	return builder
  2804  }
  2805  
  2806  // 查询结束时间(unix时间,单位sec)
  2807  //
  2808  //示例值:1655276858
  2809  func (builder *MeetingListExportReqBodyBuilder) EndTime(endTime string) *MeetingListExportReqBodyBuilder {
  2810  	builder.endTime = endTime
  2811  	builder.endTimeFlag = true
  2812  	return builder
  2813  }
  2814  
  2815  // 按9位会议号筛选(最多一个筛选条件)
  2816  //
  2817  //示例值:123456789
  2818  func (builder *MeetingListExportReqBodyBuilder) MeetingNo(meetingNo string) *MeetingListExportReqBodyBuilder {
  2819  	builder.meetingNo = meetingNo
  2820  	builder.meetingNoFlag = true
  2821  	return builder
  2822  }
  2823  
  2824  // 按参会Lark用户筛选(最多一个筛选条件)
  2825  //
  2826  //示例值:ou_3ec3f6a28a0d08c45d895276e8e5e19b
  2827  func (builder *MeetingListExportReqBodyBuilder) UserId(userId string) *MeetingListExportReqBodyBuilder {
  2828  	builder.userId = userId
  2829  	builder.userIdFlag = true
  2830  	return builder
  2831  }
  2832  
  2833  // 按参会Rooms筛选(最多一个筛选条件)
  2834  //
  2835  //示例值:omm_eada1d61a550955240c28757e7dec3af
  2836  func (builder *MeetingListExportReqBodyBuilder) RoomId(roomId string) *MeetingListExportReqBodyBuilder {
  2837  	builder.roomId = roomId
  2838  	builder.roomIdFlag = true
  2839  	return builder
  2840  }
  2841  
  2842  func (builder *MeetingListExportReqBodyBuilder) Build() *MeetingListExportReqBody {
  2843  	req := &MeetingListExportReqBody{}
  2844  	if builder.startTimeFlag {
  2845  		req.StartTime = &builder.startTime
  2846  	}
  2847  	if builder.endTimeFlag {
  2848  		req.EndTime = &builder.endTime
  2849  	}
  2850  	if builder.meetingNoFlag {
  2851  		req.MeetingNo = &builder.meetingNo
  2852  	}
  2853  	if builder.userIdFlag {
  2854  		req.UserId = &builder.userId
  2855  	}
  2856  	if builder.roomIdFlag {
  2857  		req.RoomId = &builder.roomId
  2858  	}
  2859  	return req
  2860  }
  2861  
  2862  type MeetingListExportPathReqBodyBuilder struct {
  2863  	startTime     string // 查询开始时间(unix时间,单位sec)
  2864  	startTimeFlag bool
  2865  	endTime       string // 查询结束时间(unix时间,单位sec)
  2866  	endTimeFlag   bool
  2867  	meetingNo     string // 按9位会议号筛选(最多一个筛选条件)
  2868  	meetingNoFlag bool
  2869  	userId        string // 按参会Lark用户筛选(最多一个筛选条件)
  2870  	userIdFlag    bool
  2871  	roomId        string // 按参会Rooms筛选(最多一个筛选条件)
  2872  	roomIdFlag    bool
  2873  }
  2874  
  2875  func NewMeetingListExportPathReqBodyBuilder() *MeetingListExportPathReqBodyBuilder {
  2876  	builder := &MeetingListExportPathReqBodyBuilder{}
  2877  	return builder
  2878  }
  2879  
  2880  // 查询开始时间(unix时间,单位sec)
  2881  //
  2882  // 示例值:1655276858
  2883  func (builder *MeetingListExportPathReqBodyBuilder) StartTime(startTime string) *MeetingListExportPathReqBodyBuilder {
  2884  	builder.startTime = startTime
  2885  	builder.startTimeFlag = true
  2886  	return builder
  2887  }
  2888  
  2889  // 查询结束时间(unix时间,单位sec)
  2890  //
  2891  // 示例值:1655276858
  2892  func (builder *MeetingListExportPathReqBodyBuilder) EndTime(endTime string) *MeetingListExportPathReqBodyBuilder {
  2893  	builder.endTime = endTime
  2894  	builder.endTimeFlag = true
  2895  	return builder
  2896  }
  2897  
  2898  // 按9位会议号筛选(最多一个筛选条件)
  2899  //
  2900  // 示例值:123456789
  2901  func (builder *MeetingListExportPathReqBodyBuilder) MeetingNo(meetingNo string) *MeetingListExportPathReqBodyBuilder {
  2902  	builder.meetingNo = meetingNo
  2903  	builder.meetingNoFlag = true
  2904  	return builder
  2905  }
  2906  
  2907  // 按参会Lark用户筛选(最多一个筛选条件)
  2908  //
  2909  // 示例值:ou_3ec3f6a28a0d08c45d895276e8e5e19b
  2910  func (builder *MeetingListExportPathReqBodyBuilder) UserId(userId string) *MeetingListExportPathReqBodyBuilder {
  2911  	builder.userId = userId
  2912  	builder.userIdFlag = true
  2913  	return builder
  2914  }
  2915  
  2916  // 按参会Rooms筛选(最多一个筛选条件)
  2917  //
  2918  // 示例值:omm_eada1d61a550955240c28757e7dec3af
  2919  func (builder *MeetingListExportPathReqBodyBuilder) RoomId(roomId string) *MeetingListExportPathReqBodyBuilder {
  2920  	builder.roomId = roomId
  2921  	builder.roomIdFlag = true
  2922  	return builder
  2923  }
  2924  
  2925  func (builder *MeetingListExportPathReqBodyBuilder) Build() (*MeetingListExportReqBody, error) {
  2926  	req := &MeetingListExportReqBody{}
  2927  	if builder.startTimeFlag {
  2928  		req.StartTime = &builder.startTime
  2929  	}
  2930  	if builder.endTimeFlag {
  2931  		req.EndTime = &builder.endTime
  2932  	}
  2933  	if builder.meetingNoFlag {
  2934  		req.MeetingNo = &builder.meetingNo
  2935  	}
  2936  	if builder.userIdFlag {
  2937  		req.UserId = &builder.userId
  2938  	}
  2939  	if builder.roomIdFlag {
  2940  		req.RoomId = &builder.roomId
  2941  	}
  2942  	return req, nil
  2943  }
  2944  
  2945  type MeetingListExportReqBuilder struct {
  2946  	apiReq *larkcore.ApiReq
  2947  	body   *MeetingListExportReqBody
  2948  }
  2949  
  2950  func NewMeetingListExportReqBuilder() *MeetingListExportReqBuilder {
  2951  	builder := &MeetingListExportReqBuilder{}
  2952  	builder.apiReq = &larkcore.ApiReq{
  2953  		PathParams:  larkcore.PathParams{},
  2954  		QueryParams: larkcore.QueryParams{},
  2955  	}
  2956  	return builder
  2957  }
  2958  
  2959  // 此次调用中使用的用户ID的类型,默认使用open_id可不填
  2960  //
  2961  // 示例值:
  2962  func (builder *MeetingListExportReqBuilder) UserIdType(userIdType string) *MeetingListExportReqBuilder {
  2963  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  2964  	return builder
  2965  }
  2966  
  2967  // 导出会议明细
  2968  func (builder *MeetingListExportReqBuilder) Body(body *MeetingListExportReqBody) *MeetingListExportReqBuilder {
  2969  	builder.body = body
  2970  	return builder
  2971  }
  2972  
  2973  func (builder *MeetingListExportReqBuilder) Build() *MeetingListExportReq {
  2974  	req := &MeetingListExportReq{}
  2975  	req.apiReq = &larkcore.ApiReq{}
  2976  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  2977  	req.apiReq.Body = builder.body
  2978  	return req
  2979  }
  2980  
  2981  type MeetingListExportReqBody struct {
  2982  	StartTime *string `json:"start_time,omitempty"` // 查询开始时间(unix时间,单位sec)
  2983  	EndTime   *string `json:"end_time,omitempty"`   // 查询结束时间(unix时间,单位sec)
  2984  	MeetingNo *string `json:"meeting_no,omitempty"` // 按9位会议号筛选(最多一个筛选条件)
  2985  	UserId    *string `json:"user_id,omitempty"`    // 按参会Lark用户筛选(最多一个筛选条件)
  2986  	RoomId    *string `json:"room_id,omitempty"`    // 按参会Rooms筛选(最多一个筛选条件)
  2987  }
  2988  
  2989  type MeetingListExportReq struct {
  2990  	apiReq *larkcore.ApiReq
  2991  	Body   *MeetingListExportReqBody `body:""`
  2992  }
  2993  
  2994  type MeetingListExportRespData struct {
  2995  	TaskId *string `json:"task_id,omitempty"` // 任务id
  2996  }
  2997  
  2998  type MeetingListExportResp struct {
  2999  	*larkcore.ApiResp `json:"-"`
  3000  	larkcore.CodeError
  3001  	Data *MeetingListExportRespData `json:"data"` // 业务数据
  3002  }
  3003  
  3004  func (resp *MeetingListExportResp) Success() bool {
  3005  	return resp.Code == 0
  3006  }
  3007  
  3008  type ParticipantListExportReqBodyBuilder struct {
  3009  	meetingStartTime     string // 会议开始时间(unix时间,单位sec)
  3010  	meetingStartTimeFlag bool
  3011  	meetingEndTime       string // 会议结束时间(unix时间,单位sec)
  3012  	meetingEndTimeFlag   bool
  3013  	meetingNo            string // 9位会议号
  3014  	meetingNoFlag        bool
  3015  	userId               string // 按参会Lark用户筛选(最多一个筛选条件)
  3016  	userIdFlag           bool
  3017  	roomId               string // 按参会Rooms筛选(最多一个筛选条件)
  3018  	roomIdFlag           bool
  3019  }
  3020  
  3021  func NewParticipantListExportReqBodyBuilder() *ParticipantListExportReqBodyBuilder {
  3022  	builder := &ParticipantListExportReqBodyBuilder{}
  3023  	return builder
  3024  }
  3025  
  3026  // 会议开始时间(unix时间,单位sec)
  3027  //
  3028  //示例值:1655276858
  3029  func (builder *ParticipantListExportReqBodyBuilder) MeetingStartTime(meetingStartTime string) *ParticipantListExportReqBodyBuilder {
  3030  	builder.meetingStartTime = meetingStartTime
  3031  	builder.meetingStartTimeFlag = true
  3032  	return builder
  3033  }
  3034  
  3035  // 会议结束时间(unix时间,单位sec)
  3036  //
  3037  //示例值:1655276858
  3038  func (builder *ParticipantListExportReqBodyBuilder) MeetingEndTime(meetingEndTime string) *ParticipantListExportReqBodyBuilder {
  3039  	builder.meetingEndTime = meetingEndTime
  3040  	builder.meetingEndTimeFlag = true
  3041  	return builder
  3042  }
  3043  
  3044  // 9位会议号
  3045  //
  3046  //示例值:123456789
  3047  func (builder *ParticipantListExportReqBodyBuilder) MeetingNo(meetingNo string) *ParticipantListExportReqBodyBuilder {
  3048  	builder.meetingNo = meetingNo
  3049  	builder.meetingNoFlag = true
  3050  	return builder
  3051  }
  3052  
  3053  // 按参会Lark用户筛选(最多一个筛选条件)
  3054  //
  3055  //示例值:ou_3ec3f6a28a0d08c45d895276e8e5e19b
  3056  func (builder *ParticipantListExportReqBodyBuilder) UserId(userId string) *ParticipantListExportReqBodyBuilder {
  3057  	builder.userId = userId
  3058  	builder.userIdFlag = true
  3059  	return builder
  3060  }
  3061  
  3062  // 按参会Rooms筛选(最多一个筛选条件)
  3063  //
  3064  //示例值:omm_eada1d61a550955240c28757e7dec3af
  3065  func (builder *ParticipantListExportReqBodyBuilder) RoomId(roomId string) *ParticipantListExportReqBodyBuilder {
  3066  	builder.roomId = roomId
  3067  	builder.roomIdFlag = true
  3068  	return builder
  3069  }
  3070  
  3071  func (builder *ParticipantListExportReqBodyBuilder) Build() *ParticipantListExportReqBody {
  3072  	req := &ParticipantListExportReqBody{}
  3073  	if builder.meetingStartTimeFlag {
  3074  		req.MeetingStartTime = &builder.meetingStartTime
  3075  	}
  3076  	if builder.meetingEndTimeFlag {
  3077  		req.MeetingEndTime = &builder.meetingEndTime
  3078  	}
  3079  	if builder.meetingNoFlag {
  3080  		req.MeetingNo = &builder.meetingNo
  3081  	}
  3082  	if builder.userIdFlag {
  3083  		req.UserId = &builder.userId
  3084  	}
  3085  	if builder.roomIdFlag {
  3086  		req.RoomId = &builder.roomId
  3087  	}
  3088  	return req
  3089  }
  3090  
  3091  type ParticipantListExportPathReqBodyBuilder struct {
  3092  	meetingStartTime     string // 会议开始时间(unix时间,单位sec)
  3093  	meetingStartTimeFlag bool
  3094  	meetingEndTime       string // 会议结束时间(unix时间,单位sec)
  3095  	meetingEndTimeFlag   bool
  3096  	meetingNo            string // 9位会议号
  3097  	meetingNoFlag        bool
  3098  	userId               string // 按参会Lark用户筛选(最多一个筛选条件)
  3099  	userIdFlag           bool
  3100  	roomId               string // 按参会Rooms筛选(最多一个筛选条件)
  3101  	roomIdFlag           bool
  3102  }
  3103  
  3104  func NewParticipantListExportPathReqBodyBuilder() *ParticipantListExportPathReqBodyBuilder {
  3105  	builder := &ParticipantListExportPathReqBodyBuilder{}
  3106  	return builder
  3107  }
  3108  
  3109  // 会议开始时间(unix时间,单位sec)
  3110  //
  3111  // 示例值:1655276858
  3112  func (builder *ParticipantListExportPathReqBodyBuilder) MeetingStartTime(meetingStartTime string) *ParticipantListExportPathReqBodyBuilder {
  3113  	builder.meetingStartTime = meetingStartTime
  3114  	builder.meetingStartTimeFlag = true
  3115  	return builder
  3116  }
  3117  
  3118  // 会议结束时间(unix时间,单位sec)
  3119  //
  3120  // 示例值:1655276858
  3121  func (builder *ParticipantListExportPathReqBodyBuilder) MeetingEndTime(meetingEndTime string) *ParticipantListExportPathReqBodyBuilder {
  3122  	builder.meetingEndTime = meetingEndTime
  3123  	builder.meetingEndTimeFlag = true
  3124  	return builder
  3125  }
  3126  
  3127  // 9位会议号
  3128  //
  3129  // 示例值:123456789
  3130  func (builder *ParticipantListExportPathReqBodyBuilder) MeetingNo(meetingNo string) *ParticipantListExportPathReqBodyBuilder {
  3131  	builder.meetingNo = meetingNo
  3132  	builder.meetingNoFlag = true
  3133  	return builder
  3134  }
  3135  
  3136  // 按参会Lark用户筛选(最多一个筛选条件)
  3137  //
  3138  // 示例值:ou_3ec3f6a28a0d08c45d895276e8e5e19b
  3139  func (builder *ParticipantListExportPathReqBodyBuilder) UserId(userId string) *ParticipantListExportPathReqBodyBuilder {
  3140  	builder.userId = userId
  3141  	builder.userIdFlag = true
  3142  	return builder
  3143  }
  3144  
  3145  // 按参会Rooms筛选(最多一个筛选条件)
  3146  //
  3147  // 示例值:omm_eada1d61a550955240c28757e7dec3af
  3148  func (builder *ParticipantListExportPathReqBodyBuilder) RoomId(roomId string) *ParticipantListExportPathReqBodyBuilder {
  3149  	builder.roomId = roomId
  3150  	builder.roomIdFlag = true
  3151  	return builder
  3152  }
  3153  
  3154  func (builder *ParticipantListExportPathReqBodyBuilder) Build() (*ParticipantListExportReqBody, error) {
  3155  	req := &ParticipantListExportReqBody{}
  3156  	if builder.meetingStartTimeFlag {
  3157  		req.MeetingStartTime = &builder.meetingStartTime
  3158  	}
  3159  	if builder.meetingEndTimeFlag {
  3160  		req.MeetingEndTime = &builder.meetingEndTime
  3161  	}
  3162  	if builder.meetingNoFlag {
  3163  		req.MeetingNo = &builder.meetingNo
  3164  	}
  3165  	if builder.userIdFlag {
  3166  		req.UserId = &builder.userId
  3167  	}
  3168  	if builder.roomIdFlag {
  3169  		req.RoomId = &builder.roomId
  3170  	}
  3171  	return req, nil
  3172  }
  3173  
  3174  type ParticipantListExportReqBuilder struct {
  3175  	apiReq *larkcore.ApiReq
  3176  	body   *ParticipantListExportReqBody
  3177  }
  3178  
  3179  func NewParticipantListExportReqBuilder() *ParticipantListExportReqBuilder {
  3180  	builder := &ParticipantListExportReqBuilder{}
  3181  	builder.apiReq = &larkcore.ApiReq{
  3182  		PathParams:  larkcore.PathParams{},
  3183  		QueryParams: larkcore.QueryParams{},
  3184  	}
  3185  	return builder
  3186  }
  3187  
  3188  // 此次调用中使用的用户ID的类型,默认使用open_id可不填
  3189  //
  3190  // 示例值:
  3191  func (builder *ParticipantListExportReqBuilder) UserIdType(userIdType string) *ParticipantListExportReqBuilder {
  3192  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  3193  	return builder
  3194  }
  3195  
  3196  // 导出某个会议的参会人详情列表
  3197  func (builder *ParticipantListExportReqBuilder) Body(body *ParticipantListExportReqBody) *ParticipantListExportReqBuilder {
  3198  	builder.body = body
  3199  	return builder
  3200  }
  3201  
  3202  func (builder *ParticipantListExportReqBuilder) Build() *ParticipantListExportReq {
  3203  	req := &ParticipantListExportReq{}
  3204  	req.apiReq = &larkcore.ApiReq{}
  3205  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  3206  	req.apiReq.Body = builder.body
  3207  	return req
  3208  }
  3209  
  3210  type ParticipantListExportReqBody struct {
  3211  	MeetingStartTime *string `json:"meeting_start_time,omitempty"` // 会议开始时间(unix时间,单位sec)
  3212  	MeetingEndTime   *string `json:"meeting_end_time,omitempty"`   // 会议结束时间(unix时间,单位sec)
  3213  	MeetingNo        *string `json:"meeting_no,omitempty"`         // 9位会议号
  3214  	UserId           *string `json:"user_id,omitempty"`            // 按参会Lark用户筛选(最多一个筛选条件)
  3215  	RoomId           *string `json:"room_id,omitempty"`            // 按参会Rooms筛选(最多一个筛选条件)
  3216  }
  3217  
  3218  type ParticipantListExportReq struct {
  3219  	apiReq *larkcore.ApiReq
  3220  	Body   *ParticipantListExportReqBody `body:""`
  3221  }
  3222  
  3223  type ParticipantListExportRespData struct {
  3224  	TaskId *string `json:"task_id,omitempty"` // 任务id
  3225  }
  3226  
  3227  type ParticipantListExportResp struct {
  3228  	*larkcore.ApiResp `json:"-"`
  3229  	larkcore.CodeError
  3230  	Data *ParticipantListExportRespData `json:"data"` // 业务数据
  3231  }
  3232  
  3233  func (resp *ParticipantListExportResp) Success() bool {
  3234  	return resp.Code == 0
  3235  }
  3236  
  3237  type ParticipantQualityListExportReqBodyBuilder struct {
  3238  	meetingStartTime     string // 会议开始时间(unix时间,单位sec)
  3239  	meetingStartTimeFlag bool
  3240  	meetingEndTime       string // 会议结束时间(unix时间,单位sec)
  3241  	meetingEndTimeFlag   bool
  3242  	meetingNo            string // 9位会议号
  3243  	meetingNoFlag        bool
  3244  	joinTime             string // 参会人入会时间(unix时间,单位sec)
  3245  	joinTimeFlag         bool
  3246  	userId               string // 参会人为Lark用户时填入
  3247  	userIdFlag           bool
  3248  	roomId               string // 参会人为Rooms时填入
  3249  	roomIdFlag           bool
  3250  }
  3251  
  3252  func NewParticipantQualityListExportReqBodyBuilder() *ParticipantQualityListExportReqBodyBuilder {
  3253  	builder := &ParticipantQualityListExportReqBodyBuilder{}
  3254  	return builder
  3255  }
  3256  
  3257  // 会议开始时间(unix时间,单位sec)
  3258  //
  3259  //示例值:1655276858
  3260  func (builder *ParticipantQualityListExportReqBodyBuilder) MeetingStartTime(meetingStartTime string) *ParticipantQualityListExportReqBodyBuilder {
  3261  	builder.meetingStartTime = meetingStartTime
  3262  	builder.meetingStartTimeFlag = true
  3263  	return builder
  3264  }
  3265  
  3266  // 会议结束时间(unix时间,单位sec)
  3267  //
  3268  //示例值:1655276858
  3269  func (builder *ParticipantQualityListExportReqBodyBuilder) MeetingEndTime(meetingEndTime string) *ParticipantQualityListExportReqBodyBuilder {
  3270  	builder.meetingEndTime = meetingEndTime
  3271  	builder.meetingEndTimeFlag = true
  3272  	return builder
  3273  }
  3274  
  3275  // 9位会议号
  3276  //
  3277  //示例值:123456789
  3278  func (builder *ParticipantQualityListExportReqBodyBuilder) MeetingNo(meetingNo string) *ParticipantQualityListExportReqBodyBuilder {
  3279  	builder.meetingNo = meetingNo
  3280  	builder.meetingNoFlag = true
  3281  	return builder
  3282  }
  3283  
  3284  // 参会人入会时间(unix时间,单位sec)
  3285  //
  3286  //示例值:1655276858
  3287  func (builder *ParticipantQualityListExportReqBodyBuilder) JoinTime(joinTime string) *ParticipantQualityListExportReqBodyBuilder {
  3288  	builder.joinTime = joinTime
  3289  	builder.joinTimeFlag = true
  3290  	return builder
  3291  }
  3292  
  3293  // 参会人为Lark用户时填入
  3294  //
  3295  //示例值:ou_3ec3f6a28a0d08c45d895276e8e5e19b
  3296  func (builder *ParticipantQualityListExportReqBodyBuilder) UserId(userId string) *ParticipantQualityListExportReqBodyBuilder {
  3297  	builder.userId = userId
  3298  	builder.userIdFlag = true
  3299  	return builder
  3300  }
  3301  
  3302  // 参会人为Rooms时填入
  3303  //
  3304  //示例值:omm_eada1d61a550955240c28757e7dec3af
  3305  func (builder *ParticipantQualityListExportReqBodyBuilder) RoomId(roomId string) *ParticipantQualityListExportReqBodyBuilder {
  3306  	builder.roomId = roomId
  3307  	builder.roomIdFlag = true
  3308  	return builder
  3309  }
  3310  
  3311  func (builder *ParticipantQualityListExportReqBodyBuilder) Build() *ParticipantQualityListExportReqBody {
  3312  	req := &ParticipantQualityListExportReqBody{}
  3313  	if builder.meetingStartTimeFlag {
  3314  		req.MeetingStartTime = &builder.meetingStartTime
  3315  	}
  3316  	if builder.meetingEndTimeFlag {
  3317  		req.MeetingEndTime = &builder.meetingEndTime
  3318  	}
  3319  	if builder.meetingNoFlag {
  3320  		req.MeetingNo = &builder.meetingNo
  3321  	}
  3322  	if builder.joinTimeFlag {
  3323  		req.JoinTime = &builder.joinTime
  3324  	}
  3325  	if builder.userIdFlag {
  3326  		req.UserId = &builder.userId
  3327  	}
  3328  	if builder.roomIdFlag {
  3329  		req.RoomId = &builder.roomId
  3330  	}
  3331  	return req
  3332  }
  3333  
  3334  type ParticipantQualityListExportPathReqBodyBuilder struct {
  3335  	meetingStartTime     string // 会议开始时间(unix时间,单位sec)
  3336  	meetingStartTimeFlag bool
  3337  	meetingEndTime       string // 会议结束时间(unix时间,单位sec)
  3338  	meetingEndTimeFlag   bool
  3339  	meetingNo            string // 9位会议号
  3340  	meetingNoFlag        bool
  3341  	joinTime             string // 参会人入会时间(unix时间,单位sec)
  3342  	joinTimeFlag         bool
  3343  	userId               string // 参会人为Lark用户时填入
  3344  	userIdFlag           bool
  3345  	roomId               string // 参会人为Rooms时填入
  3346  	roomIdFlag           bool
  3347  }
  3348  
  3349  func NewParticipantQualityListExportPathReqBodyBuilder() *ParticipantQualityListExportPathReqBodyBuilder {
  3350  	builder := &ParticipantQualityListExportPathReqBodyBuilder{}
  3351  	return builder
  3352  }
  3353  
  3354  // 会议开始时间(unix时间,单位sec)
  3355  //
  3356  // 示例值:1655276858
  3357  func (builder *ParticipantQualityListExportPathReqBodyBuilder) MeetingStartTime(meetingStartTime string) *ParticipantQualityListExportPathReqBodyBuilder {
  3358  	builder.meetingStartTime = meetingStartTime
  3359  	builder.meetingStartTimeFlag = true
  3360  	return builder
  3361  }
  3362  
  3363  // 会议结束时间(unix时间,单位sec)
  3364  //
  3365  // 示例值:1655276858
  3366  func (builder *ParticipantQualityListExportPathReqBodyBuilder) MeetingEndTime(meetingEndTime string) *ParticipantQualityListExportPathReqBodyBuilder {
  3367  	builder.meetingEndTime = meetingEndTime
  3368  	builder.meetingEndTimeFlag = true
  3369  	return builder
  3370  }
  3371  
  3372  // 9位会议号
  3373  //
  3374  // 示例值:123456789
  3375  func (builder *ParticipantQualityListExportPathReqBodyBuilder) MeetingNo(meetingNo string) *ParticipantQualityListExportPathReqBodyBuilder {
  3376  	builder.meetingNo = meetingNo
  3377  	builder.meetingNoFlag = true
  3378  	return builder
  3379  }
  3380  
  3381  // 参会人入会时间(unix时间,单位sec)
  3382  //
  3383  // 示例值:1655276858
  3384  func (builder *ParticipantQualityListExportPathReqBodyBuilder) JoinTime(joinTime string) *ParticipantQualityListExportPathReqBodyBuilder {
  3385  	builder.joinTime = joinTime
  3386  	builder.joinTimeFlag = true
  3387  	return builder
  3388  }
  3389  
  3390  // 参会人为Lark用户时填入
  3391  //
  3392  // 示例值:ou_3ec3f6a28a0d08c45d895276e8e5e19b
  3393  func (builder *ParticipantQualityListExportPathReqBodyBuilder) UserId(userId string) *ParticipantQualityListExportPathReqBodyBuilder {
  3394  	builder.userId = userId
  3395  	builder.userIdFlag = true
  3396  	return builder
  3397  }
  3398  
  3399  // 参会人为Rooms时填入
  3400  //
  3401  // 示例值:omm_eada1d61a550955240c28757e7dec3af
  3402  func (builder *ParticipantQualityListExportPathReqBodyBuilder) RoomId(roomId string) *ParticipantQualityListExportPathReqBodyBuilder {
  3403  	builder.roomId = roomId
  3404  	builder.roomIdFlag = true
  3405  	return builder
  3406  }
  3407  
  3408  func (builder *ParticipantQualityListExportPathReqBodyBuilder) Build() (*ParticipantQualityListExportReqBody, error) {
  3409  	req := &ParticipantQualityListExportReqBody{}
  3410  	if builder.meetingStartTimeFlag {
  3411  		req.MeetingStartTime = &builder.meetingStartTime
  3412  	}
  3413  	if builder.meetingEndTimeFlag {
  3414  		req.MeetingEndTime = &builder.meetingEndTime
  3415  	}
  3416  	if builder.meetingNoFlag {
  3417  		req.MeetingNo = &builder.meetingNo
  3418  	}
  3419  	if builder.joinTimeFlag {
  3420  		req.JoinTime = &builder.joinTime
  3421  	}
  3422  	if builder.userIdFlag {
  3423  		req.UserId = &builder.userId
  3424  	}
  3425  	if builder.roomIdFlag {
  3426  		req.RoomId = &builder.roomId
  3427  	}
  3428  	return req, nil
  3429  }
  3430  
  3431  type ParticipantQualityListExportReqBuilder struct {
  3432  	apiReq *larkcore.ApiReq
  3433  	body   *ParticipantQualityListExportReqBody
  3434  }
  3435  
  3436  func NewParticipantQualityListExportReqBuilder() *ParticipantQualityListExportReqBuilder {
  3437  	builder := &ParticipantQualityListExportReqBuilder{}
  3438  	builder.apiReq = &larkcore.ApiReq{
  3439  		PathParams:  larkcore.PathParams{},
  3440  		QueryParams: larkcore.QueryParams{},
  3441  	}
  3442  	return builder
  3443  }
  3444  
  3445  // 此次调用中使用的用户ID的类型,默认使用open_id可不填
  3446  //
  3447  // 示例值:
  3448  func (builder *ParticipantQualityListExportReqBuilder) UserIdType(userIdType string) *ParticipantQualityListExportReqBuilder {
  3449  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  3450  	return builder
  3451  }
  3452  
  3453  // 导出某场会议某个参会人的音视频&共享质量数据
  3454  func (builder *ParticipantQualityListExportReqBuilder) Body(body *ParticipantQualityListExportReqBody) *ParticipantQualityListExportReqBuilder {
  3455  	builder.body = body
  3456  	return builder
  3457  }
  3458  
  3459  func (builder *ParticipantQualityListExportReqBuilder) Build() *ParticipantQualityListExportReq {
  3460  	req := &ParticipantQualityListExportReq{}
  3461  	req.apiReq = &larkcore.ApiReq{}
  3462  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  3463  	req.apiReq.Body = builder.body
  3464  	return req
  3465  }
  3466  
  3467  type ParticipantQualityListExportReqBody struct {
  3468  	MeetingStartTime *string `json:"meeting_start_time,omitempty"` // 会议开始时间(unix时间,单位sec)
  3469  	MeetingEndTime   *string `json:"meeting_end_time,omitempty"`   // 会议结束时间(unix时间,单位sec)
  3470  	MeetingNo        *string `json:"meeting_no,omitempty"`         // 9位会议号
  3471  	JoinTime         *string `json:"join_time,omitempty"`          // 参会人入会时间(unix时间,单位sec)
  3472  	UserId           *string `json:"user_id,omitempty"`            // 参会人为Lark用户时填入
  3473  	RoomId           *string `json:"room_id,omitempty"`            // 参会人为Rooms时填入
  3474  }
  3475  
  3476  type ParticipantQualityListExportReq struct {
  3477  	apiReq *larkcore.ApiReq
  3478  	Body   *ParticipantQualityListExportReqBody `body:""`
  3479  }
  3480  
  3481  type ParticipantQualityListExportRespData struct {
  3482  	TaskId *string `json:"task_id,omitempty"` // 任务id
  3483  }
  3484  
  3485  type ParticipantQualityListExportResp struct {
  3486  	*larkcore.ApiResp `json:"-"`
  3487  	larkcore.CodeError
  3488  	Data *ParticipantQualityListExportRespData `json:"data"` // 业务数据
  3489  }
  3490  
  3491  func (resp *ParticipantQualityListExportResp) Success() bool {
  3492  	return resp.Code == 0
  3493  }
  3494  
  3495  type EndMeetingReqBuilder struct {
  3496  	apiReq *larkcore.ApiReq
  3497  }
  3498  
  3499  func NewEndMeetingReqBuilder() *EndMeetingReqBuilder {
  3500  	builder := &EndMeetingReqBuilder{}
  3501  	builder.apiReq = &larkcore.ApiReq{
  3502  		PathParams:  larkcore.PathParams{},
  3503  		QueryParams: larkcore.QueryParams{},
  3504  	}
  3505  	return builder
  3506  }
  3507  
  3508  // 会议ID(视频会议的唯一标识,视频会议开始后才会产生)
  3509  //
  3510  // 示例值:6911188411932033028
  3511  func (builder *EndMeetingReqBuilder) MeetingId(meetingId string) *EndMeetingReqBuilder {
  3512  	builder.apiReq.PathParams.Set("meeting_id", fmt.Sprint(meetingId))
  3513  	return builder
  3514  }
  3515  
  3516  func (builder *EndMeetingReqBuilder) Build() *EndMeetingReq {
  3517  	req := &EndMeetingReq{}
  3518  	req.apiReq = &larkcore.ApiReq{}
  3519  	req.apiReq.PathParams = builder.apiReq.PathParams
  3520  	return req
  3521  }
  3522  
  3523  type EndMeetingReq struct {
  3524  	apiReq *larkcore.ApiReq
  3525  }
  3526  
  3527  type EndMeetingResp struct {
  3528  	*larkcore.ApiResp `json:"-"`
  3529  	larkcore.CodeError
  3530  }
  3531  
  3532  func (resp *EndMeetingResp) Success() bool {
  3533  	return resp.Code == 0
  3534  }
  3535  
  3536  type GetMeetingReqBuilder struct {
  3537  	apiReq *larkcore.ApiReq
  3538  }
  3539  
  3540  func NewGetMeetingReqBuilder() *GetMeetingReqBuilder {
  3541  	builder := &GetMeetingReqBuilder{}
  3542  	builder.apiReq = &larkcore.ApiReq{
  3543  		PathParams:  larkcore.PathParams{},
  3544  		QueryParams: larkcore.QueryParams{},
  3545  	}
  3546  	return builder
  3547  }
  3548  
  3549  // 会议ID(视频会议的唯一标识,视频会议开始后才会产生)
  3550  //
  3551  // 示例值:6911188411932033028
  3552  func (builder *GetMeetingReqBuilder) MeetingId(meetingId string) *GetMeetingReqBuilder {
  3553  	builder.apiReq.PathParams.Set("meeting_id", fmt.Sprint(meetingId))
  3554  	return builder
  3555  }
  3556  
  3557  // 是否需要参会人列表
  3558  //
  3559  // 示例值:false
  3560  func (builder *GetMeetingReqBuilder) WithParticipants(withParticipants bool) *GetMeetingReqBuilder {
  3561  	builder.apiReq.QueryParams.Set("with_participants", fmt.Sprint(withParticipants))
  3562  	return builder
  3563  }
  3564  
  3565  // 是否需要会中使用能力统计(仅限tenant_access_token)
  3566  //
  3567  // 示例值:false
  3568  func (builder *GetMeetingReqBuilder) WithMeetingAbility(withMeetingAbility bool) *GetMeetingReqBuilder {
  3569  	builder.apiReq.QueryParams.Set("with_meeting_ability", fmt.Sprint(withMeetingAbility))
  3570  	return builder
  3571  }
  3572  
  3573  // 此次调用中使用的用户ID的类型,默认使用open_id可不填
  3574  //
  3575  // 示例值:
  3576  func (builder *GetMeetingReqBuilder) UserIdType(userIdType string) *GetMeetingReqBuilder {
  3577  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  3578  	return builder
  3579  }
  3580  
  3581  func (builder *GetMeetingReqBuilder) Build() *GetMeetingReq {
  3582  	req := &GetMeetingReq{}
  3583  	req.apiReq = &larkcore.ApiReq{}
  3584  	req.apiReq.PathParams = builder.apiReq.PathParams
  3585  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  3586  	return req
  3587  }
  3588  
  3589  type GetMeetingReq struct {
  3590  	apiReq *larkcore.ApiReq
  3591  }
  3592  
  3593  type GetMeetingRespData struct {
  3594  	Meeting *Meeting `json:"meeting,omitempty"` // 会议数据
  3595  }
  3596  
  3597  type GetMeetingResp struct {
  3598  	*larkcore.ApiResp `json:"-"`
  3599  	larkcore.CodeError
  3600  	Data *GetMeetingRespData `json:"data"` // 业务数据
  3601  }
  3602  
  3603  func (resp *GetMeetingResp) Success() bool {
  3604  	return resp.Code == 0
  3605  }
  3606  
  3607  type InviteMeetingReqBodyBuilder struct {
  3608  	invitees     []*MeetingUser // 被邀请的用户列表
  3609  	inviteesFlag bool
  3610  }
  3611  
  3612  func NewInviteMeetingReqBodyBuilder() *InviteMeetingReqBodyBuilder {
  3613  	builder := &InviteMeetingReqBodyBuilder{}
  3614  	return builder
  3615  }
  3616  
  3617  // 被邀请的用户列表
  3618  //
  3619  //示例值:
  3620  func (builder *InviteMeetingReqBodyBuilder) Invitees(invitees []*MeetingUser) *InviteMeetingReqBodyBuilder {
  3621  	builder.invitees = invitees
  3622  	builder.inviteesFlag = true
  3623  	return builder
  3624  }
  3625  
  3626  func (builder *InviteMeetingReqBodyBuilder) Build() *InviteMeetingReqBody {
  3627  	req := &InviteMeetingReqBody{}
  3628  	if builder.inviteesFlag {
  3629  		req.Invitees = builder.invitees
  3630  	}
  3631  	return req
  3632  }
  3633  
  3634  type InviteMeetingPathReqBodyBuilder struct {
  3635  	invitees     []*MeetingUser // 被邀请的用户列表
  3636  	inviteesFlag bool
  3637  }
  3638  
  3639  func NewInviteMeetingPathReqBodyBuilder() *InviteMeetingPathReqBodyBuilder {
  3640  	builder := &InviteMeetingPathReqBodyBuilder{}
  3641  	return builder
  3642  }
  3643  
  3644  // 被邀请的用户列表
  3645  //
  3646  // 示例值:
  3647  func (builder *InviteMeetingPathReqBodyBuilder) Invitees(invitees []*MeetingUser) *InviteMeetingPathReqBodyBuilder {
  3648  	builder.invitees = invitees
  3649  	builder.inviteesFlag = true
  3650  	return builder
  3651  }
  3652  
  3653  func (builder *InviteMeetingPathReqBodyBuilder) Build() (*InviteMeetingReqBody, error) {
  3654  	req := &InviteMeetingReqBody{}
  3655  	if builder.inviteesFlag {
  3656  		req.Invitees = builder.invitees
  3657  	}
  3658  	return req, nil
  3659  }
  3660  
  3661  type InviteMeetingReqBuilder struct {
  3662  	apiReq *larkcore.ApiReq
  3663  	body   *InviteMeetingReqBody
  3664  }
  3665  
  3666  func NewInviteMeetingReqBuilder() *InviteMeetingReqBuilder {
  3667  	builder := &InviteMeetingReqBuilder{}
  3668  	builder.apiReq = &larkcore.ApiReq{
  3669  		PathParams:  larkcore.PathParams{},
  3670  		QueryParams: larkcore.QueryParams{},
  3671  	}
  3672  	return builder
  3673  }
  3674  
  3675  // 会议ID(视频会议的唯一标识,视频会议开始后才会产生)
  3676  //
  3677  // 示例值:6911188411932033028
  3678  func (builder *InviteMeetingReqBuilder) MeetingId(meetingId string) *InviteMeetingReqBuilder {
  3679  	builder.apiReq.PathParams.Set("meeting_id", fmt.Sprint(meetingId))
  3680  	return builder
  3681  }
  3682  
  3683  // 此次调用中使用的用户ID的类型,默认使用open_id可不填
  3684  //
  3685  // 示例值:
  3686  func (builder *InviteMeetingReqBuilder) UserIdType(userIdType string) *InviteMeetingReqBuilder {
  3687  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  3688  	return builder
  3689  }
  3690  
  3691  // 邀请参会人进入会议
  3692  func (builder *InviteMeetingReqBuilder) Body(body *InviteMeetingReqBody) *InviteMeetingReqBuilder {
  3693  	builder.body = body
  3694  	return builder
  3695  }
  3696  
  3697  func (builder *InviteMeetingReqBuilder) Build() *InviteMeetingReq {
  3698  	req := &InviteMeetingReq{}
  3699  	req.apiReq = &larkcore.ApiReq{}
  3700  	req.apiReq.PathParams = builder.apiReq.PathParams
  3701  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  3702  	req.apiReq.Body = builder.body
  3703  	return req
  3704  }
  3705  
  3706  type InviteMeetingReqBody struct {
  3707  	Invitees []*MeetingUser `json:"invitees,omitempty"` // 被邀请的用户列表
  3708  }
  3709  
  3710  type InviteMeetingReq struct {
  3711  	apiReq *larkcore.ApiReq
  3712  	Body   *InviteMeetingReqBody `body:""`
  3713  }
  3714  
  3715  type InviteMeetingRespData struct {
  3716  	InviteResults []*MeetingInviteStatus `json:"invite_results,omitempty"` // 邀请结果
  3717  }
  3718  
  3719  type InviteMeetingResp struct {
  3720  	*larkcore.ApiResp `json:"-"`
  3721  	larkcore.CodeError
  3722  	Data *InviteMeetingRespData `json:"data"` // 业务数据
  3723  }
  3724  
  3725  func (resp *InviteMeetingResp) Success() bool {
  3726  	return resp.Code == 0
  3727  }
  3728  
  3729  type KickoutMeetingReqBodyBuilder struct {
  3730  	kickoutUsers     []*MeetingUser // 需踢出的用户列表
  3731  	kickoutUsersFlag bool
  3732  }
  3733  
  3734  func NewKickoutMeetingReqBodyBuilder() *KickoutMeetingReqBodyBuilder {
  3735  	builder := &KickoutMeetingReqBodyBuilder{}
  3736  	return builder
  3737  }
  3738  
  3739  // 需踢出的用户列表
  3740  //
  3741  //示例值:
  3742  func (builder *KickoutMeetingReqBodyBuilder) KickoutUsers(kickoutUsers []*MeetingUser) *KickoutMeetingReqBodyBuilder {
  3743  	builder.kickoutUsers = kickoutUsers
  3744  	builder.kickoutUsersFlag = true
  3745  	return builder
  3746  }
  3747  
  3748  func (builder *KickoutMeetingReqBodyBuilder) Build() *KickoutMeetingReqBody {
  3749  	req := &KickoutMeetingReqBody{}
  3750  	if builder.kickoutUsersFlag {
  3751  		req.KickoutUsers = builder.kickoutUsers
  3752  	}
  3753  	return req
  3754  }
  3755  
  3756  type KickoutMeetingPathReqBodyBuilder struct {
  3757  	kickoutUsers     []*MeetingUser // 需踢出的用户列表
  3758  	kickoutUsersFlag bool
  3759  }
  3760  
  3761  func NewKickoutMeetingPathReqBodyBuilder() *KickoutMeetingPathReqBodyBuilder {
  3762  	builder := &KickoutMeetingPathReqBodyBuilder{}
  3763  	return builder
  3764  }
  3765  
  3766  // 需踢出的用户列表
  3767  //
  3768  // 示例值:
  3769  func (builder *KickoutMeetingPathReqBodyBuilder) KickoutUsers(kickoutUsers []*MeetingUser) *KickoutMeetingPathReqBodyBuilder {
  3770  	builder.kickoutUsers = kickoutUsers
  3771  	builder.kickoutUsersFlag = true
  3772  	return builder
  3773  }
  3774  
  3775  func (builder *KickoutMeetingPathReqBodyBuilder) Build() (*KickoutMeetingReqBody, error) {
  3776  	req := &KickoutMeetingReqBody{}
  3777  	if builder.kickoutUsersFlag {
  3778  		req.KickoutUsers = builder.kickoutUsers
  3779  	}
  3780  	return req, nil
  3781  }
  3782  
  3783  type KickoutMeetingReqBuilder struct {
  3784  	apiReq *larkcore.ApiReq
  3785  	body   *KickoutMeetingReqBody
  3786  }
  3787  
  3788  func NewKickoutMeetingReqBuilder() *KickoutMeetingReqBuilder {
  3789  	builder := &KickoutMeetingReqBuilder{}
  3790  	builder.apiReq = &larkcore.ApiReq{
  3791  		PathParams:  larkcore.PathParams{},
  3792  		QueryParams: larkcore.QueryParams{},
  3793  	}
  3794  	return builder
  3795  }
  3796  
  3797  // 会议ID
  3798  //
  3799  // 示例值:6911188411932033028
  3800  func (builder *KickoutMeetingReqBuilder) MeetingId(meetingId string) *KickoutMeetingReqBuilder {
  3801  	builder.apiReq.PathParams.Set("meeting_id", fmt.Sprint(meetingId))
  3802  	return builder
  3803  }
  3804  
  3805  // 此次调用中使用的用户ID的类型,默认使用open_id可不填
  3806  //
  3807  // 示例值:
  3808  func (builder *KickoutMeetingReqBuilder) UserIdType(userIdType string) *KickoutMeetingReqBuilder {
  3809  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  3810  	return builder
  3811  }
  3812  
  3813  // 将参会人从会议中移除
  3814  func (builder *KickoutMeetingReqBuilder) Body(body *KickoutMeetingReqBody) *KickoutMeetingReqBuilder {
  3815  	builder.body = body
  3816  	return builder
  3817  }
  3818  
  3819  func (builder *KickoutMeetingReqBuilder) Build() *KickoutMeetingReq {
  3820  	req := &KickoutMeetingReq{}
  3821  	req.apiReq = &larkcore.ApiReq{}
  3822  	req.apiReq.PathParams = builder.apiReq.PathParams
  3823  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  3824  	req.apiReq.Body = builder.body
  3825  	return req
  3826  }
  3827  
  3828  type KickoutMeetingReqBody struct {
  3829  	KickoutUsers []*MeetingUser `json:"kickout_users,omitempty"` // 需踢出的用户列表
  3830  }
  3831  
  3832  type KickoutMeetingReq struct {
  3833  	apiReq *larkcore.ApiReq
  3834  	Body   *KickoutMeetingReqBody `body:""`
  3835  }
  3836  
  3837  type KickoutMeetingRespData struct {
  3838  	KickoutResults []*MeetingParticipantResult `json:"kickout_results,omitempty"` // 踢出结果
  3839  }
  3840  
  3841  type KickoutMeetingResp struct {
  3842  	*larkcore.ApiResp `json:"-"`
  3843  	larkcore.CodeError
  3844  	Data *KickoutMeetingRespData `json:"data"` // 业务数据
  3845  }
  3846  
  3847  func (resp *KickoutMeetingResp) Success() bool {
  3848  	return resp.Code == 0
  3849  }
  3850  
  3851  type ListByNoMeetingReqBuilder struct {
  3852  	apiReq *larkcore.ApiReq
  3853  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  3854  }
  3855  
  3856  func NewListByNoMeetingReqBuilder() *ListByNoMeetingReqBuilder {
  3857  	builder := &ListByNoMeetingReqBuilder{}
  3858  	builder.apiReq = &larkcore.ApiReq{
  3859  		PathParams:  larkcore.PathParams{},
  3860  		QueryParams: larkcore.QueryParams{},
  3861  	}
  3862  	return builder
  3863  }
  3864  
  3865  // 最大返回多少记录,当使用迭代器访问时才有效
  3866  func (builder *ListByNoMeetingReqBuilder) Limit(limit int) *ListByNoMeetingReqBuilder {
  3867  	builder.limit = limit
  3868  	return builder
  3869  }
  3870  
  3871  // 9位会议号
  3872  //
  3873  // 示例值:123456789
  3874  func (builder *ListByNoMeetingReqBuilder) MeetingNo(meetingNo string) *ListByNoMeetingReqBuilder {
  3875  	builder.apiReq.QueryParams.Set("meeting_no", fmt.Sprint(meetingNo))
  3876  	return builder
  3877  }
  3878  
  3879  // 查询开始时间(unix时间,单位sec)
  3880  //
  3881  // 示例值:1608888867
  3882  func (builder *ListByNoMeetingReqBuilder) StartTime(startTime string) *ListByNoMeetingReqBuilder {
  3883  	builder.apiReq.QueryParams.Set("start_time", fmt.Sprint(startTime))
  3884  	return builder
  3885  }
  3886  
  3887  // 查询结束时间(unix时间,单位sec)
  3888  //
  3889  // 示例值:1608888867
  3890  func (builder *ListByNoMeetingReqBuilder) EndTime(endTime string) *ListByNoMeetingReqBuilder {
  3891  	builder.apiReq.QueryParams.Set("end_time", fmt.Sprint(endTime))
  3892  	return builder
  3893  }
  3894  
  3895  //
  3896  //
  3897  // 示例值:5
  3898  func (builder *ListByNoMeetingReqBuilder) PageToken(pageToken string) *ListByNoMeetingReqBuilder {
  3899  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  3900  	return builder
  3901  }
  3902  
  3903  //
  3904  //
  3905  // 示例值:10
  3906  func (builder *ListByNoMeetingReqBuilder) PageSize(pageSize int) *ListByNoMeetingReqBuilder {
  3907  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  3908  	return builder
  3909  }
  3910  
  3911  func (builder *ListByNoMeetingReqBuilder) Build() *ListByNoMeetingReq {
  3912  	req := &ListByNoMeetingReq{}
  3913  	req.apiReq = &larkcore.ApiReq{}
  3914  	req.Limit = builder.limit
  3915  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  3916  	return req
  3917  }
  3918  
  3919  type ListByNoMeetingReq struct {
  3920  	apiReq *larkcore.ApiReq
  3921  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
  3922  
  3923  }
  3924  
  3925  type ListByNoMeetingRespData struct {
  3926  	HasMore       *bool      `json:"has_more,omitempty"`       // 是否还有数据
  3927  	PageToken     *string    `json:"page_token,omitempty"`     // 下一页分页的token,下次请求时传入
  3928  	MeetingBriefs []*Meeting `json:"meeting_briefs,omitempty"` // 会议简要信息列表
  3929  }
  3930  
  3931  type ListByNoMeetingResp struct {
  3932  	*larkcore.ApiResp `json:"-"`
  3933  	larkcore.CodeError
  3934  	Data *ListByNoMeetingRespData `json:"data"` // 业务数据
  3935  }
  3936  
  3937  func (resp *ListByNoMeetingResp) Success() bool {
  3938  	return resp.Code == 0
  3939  }
  3940  
  3941  type SetHostMeetingReqBodyBuilder struct {
  3942  	hostUser        *MeetingUser // 将要设置的主持人
  3943  	hostUserFlag    bool
  3944  	oldHostUser     *MeetingUser // 当前主持人(CAS并发安全:如果和会中当前主持人不符则会设置失败,可使用返回的最新数据重新设置)
  3945  	oldHostUserFlag bool
  3946  }
  3947  
  3948  func NewSetHostMeetingReqBodyBuilder() *SetHostMeetingReqBodyBuilder {
  3949  	builder := &SetHostMeetingReqBodyBuilder{}
  3950  	return builder
  3951  }
  3952  
  3953  // 将要设置的主持人
  3954  //
  3955  //示例值:
  3956  func (builder *SetHostMeetingReqBodyBuilder) HostUser(hostUser *MeetingUser) *SetHostMeetingReqBodyBuilder {
  3957  	builder.hostUser = hostUser
  3958  	builder.hostUserFlag = true
  3959  	return builder
  3960  }
  3961  
  3962  // 当前主持人(CAS并发安全:如果和会中当前主持人不符则会设置失败,可使用返回的最新数据重新设置)
  3963  //
  3964  //示例值:
  3965  func (builder *SetHostMeetingReqBodyBuilder) OldHostUser(oldHostUser *MeetingUser) *SetHostMeetingReqBodyBuilder {
  3966  	builder.oldHostUser = oldHostUser
  3967  	builder.oldHostUserFlag = true
  3968  	return builder
  3969  }
  3970  
  3971  func (builder *SetHostMeetingReqBodyBuilder) Build() *SetHostMeetingReqBody {
  3972  	req := &SetHostMeetingReqBody{}
  3973  	if builder.hostUserFlag {
  3974  		req.HostUser = builder.hostUser
  3975  	}
  3976  	if builder.oldHostUserFlag {
  3977  		req.OldHostUser = builder.oldHostUser
  3978  	}
  3979  	return req
  3980  }
  3981  
  3982  type SetHostMeetingPathReqBodyBuilder struct {
  3983  	hostUser        *MeetingUser // 将要设置的主持人
  3984  	hostUserFlag    bool
  3985  	oldHostUser     *MeetingUser // 当前主持人(CAS并发安全:如果和会中当前主持人不符则会设置失败,可使用返回的最新数据重新设置)
  3986  	oldHostUserFlag bool
  3987  }
  3988  
  3989  func NewSetHostMeetingPathReqBodyBuilder() *SetHostMeetingPathReqBodyBuilder {
  3990  	builder := &SetHostMeetingPathReqBodyBuilder{}
  3991  	return builder
  3992  }
  3993  
  3994  // 将要设置的主持人
  3995  //
  3996  // 示例值:
  3997  func (builder *SetHostMeetingPathReqBodyBuilder) HostUser(hostUser *MeetingUser) *SetHostMeetingPathReqBodyBuilder {
  3998  	builder.hostUser = hostUser
  3999  	builder.hostUserFlag = true
  4000  	return builder
  4001  }
  4002  
  4003  // 当前主持人(CAS并发安全:如果和会中当前主持人不符则会设置失败,可使用返回的最新数据重新设置)
  4004  //
  4005  // 示例值:
  4006  func (builder *SetHostMeetingPathReqBodyBuilder) OldHostUser(oldHostUser *MeetingUser) *SetHostMeetingPathReqBodyBuilder {
  4007  	builder.oldHostUser = oldHostUser
  4008  	builder.oldHostUserFlag = true
  4009  	return builder
  4010  }
  4011  
  4012  func (builder *SetHostMeetingPathReqBodyBuilder) Build() (*SetHostMeetingReqBody, error) {
  4013  	req := &SetHostMeetingReqBody{}
  4014  	if builder.hostUserFlag {
  4015  		req.HostUser = builder.hostUser
  4016  	}
  4017  	if builder.oldHostUserFlag {
  4018  		req.OldHostUser = builder.oldHostUser
  4019  	}
  4020  	return req, nil
  4021  }
  4022  
  4023  type SetHostMeetingReqBuilder struct {
  4024  	apiReq *larkcore.ApiReq
  4025  	body   *SetHostMeetingReqBody
  4026  }
  4027  
  4028  func NewSetHostMeetingReqBuilder() *SetHostMeetingReqBuilder {
  4029  	builder := &SetHostMeetingReqBuilder{}
  4030  	builder.apiReq = &larkcore.ApiReq{
  4031  		PathParams:  larkcore.PathParams{},
  4032  		QueryParams: larkcore.QueryParams{},
  4033  	}
  4034  	return builder
  4035  }
  4036  
  4037  // 会议ID(视频会议的唯一标识,视频会议开始后才会产生)
  4038  //
  4039  // 示例值:6911188411932033028
  4040  func (builder *SetHostMeetingReqBuilder) MeetingId(meetingId string) *SetHostMeetingReqBuilder {
  4041  	builder.apiReq.PathParams.Set("meeting_id", fmt.Sprint(meetingId))
  4042  	return builder
  4043  }
  4044  
  4045  // 此次调用中使用的用户ID的类型,默认使用open_id可不填
  4046  //
  4047  // 示例值:
  4048  func (builder *SetHostMeetingReqBuilder) UserIdType(userIdType string) *SetHostMeetingReqBuilder {
  4049  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  4050  	return builder
  4051  }
  4052  
  4053  // 设置会议的主持人
  4054  func (builder *SetHostMeetingReqBuilder) Body(body *SetHostMeetingReqBody) *SetHostMeetingReqBuilder {
  4055  	builder.body = body
  4056  	return builder
  4057  }
  4058  
  4059  func (builder *SetHostMeetingReqBuilder) Build() *SetHostMeetingReq {
  4060  	req := &SetHostMeetingReq{}
  4061  	req.apiReq = &larkcore.ApiReq{}
  4062  	req.apiReq.PathParams = builder.apiReq.PathParams
  4063  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4064  	req.apiReq.Body = builder.body
  4065  	return req
  4066  }
  4067  
  4068  type SetHostMeetingReqBody struct {
  4069  	HostUser    *MeetingUser `json:"host_user,omitempty"`     // 将要设置的主持人
  4070  	OldHostUser *MeetingUser `json:"old_host_user,omitempty"` // 当前主持人(CAS并发安全:如果和会中当前主持人不符则会设置失败,可使用返回的最新数据重新设置)
  4071  }
  4072  
  4073  type SetHostMeetingReq struct {
  4074  	apiReq *larkcore.ApiReq
  4075  	Body   *SetHostMeetingReqBody `body:""`
  4076  }
  4077  
  4078  type SetHostMeetingRespData struct {
  4079  	HostUser *MeetingUser `json:"host_user,omitempty"` // 会中当前主持人
  4080  }
  4081  
  4082  type SetHostMeetingResp struct {
  4083  	*larkcore.ApiResp `json:"-"`
  4084  	larkcore.CodeError
  4085  	Data *SetHostMeetingRespData `json:"data"` // 业务数据
  4086  }
  4087  
  4088  func (resp *SetHostMeetingResp) Success() bool {
  4089  	return resp.Code == 0
  4090  }
  4091  
  4092  type GetMeetingRecordingReqBuilder struct {
  4093  	apiReq *larkcore.ApiReq
  4094  }
  4095  
  4096  func NewGetMeetingRecordingReqBuilder() *GetMeetingRecordingReqBuilder {
  4097  	builder := &GetMeetingRecordingReqBuilder{}
  4098  	builder.apiReq = &larkcore.ApiReq{
  4099  		PathParams:  larkcore.PathParams{},
  4100  		QueryParams: larkcore.QueryParams{},
  4101  	}
  4102  	return builder
  4103  }
  4104  
  4105  // 会议ID(视频会议的唯一标识,视频会议开始后才会产生)
  4106  //
  4107  // 示例值:6911188411932033028
  4108  func (builder *GetMeetingRecordingReqBuilder) MeetingId(meetingId string) *GetMeetingRecordingReqBuilder {
  4109  	builder.apiReq.PathParams.Set("meeting_id", fmt.Sprint(meetingId))
  4110  	return builder
  4111  }
  4112  
  4113  func (builder *GetMeetingRecordingReqBuilder) Build() *GetMeetingRecordingReq {
  4114  	req := &GetMeetingRecordingReq{}
  4115  	req.apiReq = &larkcore.ApiReq{}
  4116  	req.apiReq.PathParams = builder.apiReq.PathParams
  4117  	return req
  4118  }
  4119  
  4120  type GetMeetingRecordingReq struct {
  4121  	apiReq *larkcore.ApiReq
  4122  }
  4123  
  4124  type GetMeetingRecordingRespData struct {
  4125  	Recording *MeetingRecording `json:"recording,omitempty"` // 录制文件数据
  4126  }
  4127  
  4128  type GetMeetingRecordingResp struct {
  4129  	*larkcore.ApiResp `json:"-"`
  4130  	larkcore.CodeError
  4131  	Data *GetMeetingRecordingRespData `json:"data"` // 业务数据
  4132  }
  4133  
  4134  func (resp *GetMeetingRecordingResp) Success() bool {
  4135  	return resp.Code == 0
  4136  }
  4137  
  4138  type SetPermissionMeetingRecordingReqBodyBuilder struct {
  4139  	permissionObjects     []*RecordingPermissionObject // 授权对象列表
  4140  	permissionObjectsFlag bool
  4141  }
  4142  
  4143  func NewSetPermissionMeetingRecordingReqBodyBuilder() *SetPermissionMeetingRecordingReqBodyBuilder {
  4144  	builder := &SetPermissionMeetingRecordingReqBodyBuilder{}
  4145  	return builder
  4146  }
  4147  
  4148  // 授权对象列表
  4149  //
  4150  //示例值:
  4151  func (builder *SetPermissionMeetingRecordingReqBodyBuilder) PermissionObjects(permissionObjects []*RecordingPermissionObject) *SetPermissionMeetingRecordingReqBodyBuilder {
  4152  	builder.permissionObjects = permissionObjects
  4153  	builder.permissionObjectsFlag = true
  4154  	return builder
  4155  }
  4156  
  4157  func (builder *SetPermissionMeetingRecordingReqBodyBuilder) Build() *SetPermissionMeetingRecordingReqBody {
  4158  	req := &SetPermissionMeetingRecordingReqBody{}
  4159  	if builder.permissionObjectsFlag {
  4160  		req.PermissionObjects = builder.permissionObjects
  4161  	}
  4162  	return req
  4163  }
  4164  
  4165  type SetPermissionMeetingRecordingPathReqBodyBuilder struct {
  4166  	permissionObjects     []*RecordingPermissionObject // 授权对象列表
  4167  	permissionObjectsFlag bool
  4168  }
  4169  
  4170  func NewSetPermissionMeetingRecordingPathReqBodyBuilder() *SetPermissionMeetingRecordingPathReqBodyBuilder {
  4171  	builder := &SetPermissionMeetingRecordingPathReqBodyBuilder{}
  4172  	return builder
  4173  }
  4174  
  4175  // 授权对象列表
  4176  //
  4177  // 示例值:
  4178  func (builder *SetPermissionMeetingRecordingPathReqBodyBuilder) PermissionObjects(permissionObjects []*RecordingPermissionObject) *SetPermissionMeetingRecordingPathReqBodyBuilder {
  4179  	builder.permissionObjects = permissionObjects
  4180  	builder.permissionObjectsFlag = true
  4181  	return builder
  4182  }
  4183  
  4184  func (builder *SetPermissionMeetingRecordingPathReqBodyBuilder) Build() (*SetPermissionMeetingRecordingReqBody, error) {
  4185  	req := &SetPermissionMeetingRecordingReqBody{}
  4186  	if builder.permissionObjectsFlag {
  4187  		req.PermissionObjects = builder.permissionObjects
  4188  	}
  4189  	return req, nil
  4190  }
  4191  
  4192  type SetPermissionMeetingRecordingReqBuilder struct {
  4193  	apiReq *larkcore.ApiReq
  4194  	body   *SetPermissionMeetingRecordingReqBody
  4195  }
  4196  
  4197  func NewSetPermissionMeetingRecordingReqBuilder() *SetPermissionMeetingRecordingReqBuilder {
  4198  	builder := &SetPermissionMeetingRecordingReqBuilder{}
  4199  	builder.apiReq = &larkcore.ApiReq{
  4200  		PathParams:  larkcore.PathParams{},
  4201  		QueryParams: larkcore.QueryParams{},
  4202  	}
  4203  	return builder
  4204  }
  4205  
  4206  // 会议ID(视频会议的唯一标识,视频会议开始后才会产生)
  4207  //
  4208  // 示例值:6911188411932033028
  4209  func (builder *SetPermissionMeetingRecordingReqBuilder) MeetingId(meetingId string) *SetPermissionMeetingRecordingReqBuilder {
  4210  	builder.apiReq.PathParams.Set("meeting_id", fmt.Sprint(meetingId))
  4211  	return builder
  4212  }
  4213  
  4214  // 此次调用中使用的用户ID的类型,默认使用open_id可不填
  4215  //
  4216  // 示例值:
  4217  func (builder *SetPermissionMeetingRecordingReqBuilder) UserIdType(userIdType string) *SetPermissionMeetingRecordingReqBuilder {
  4218  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  4219  	return builder
  4220  }
  4221  
  4222  // 将一个会议的录制文件授权给组织、用户或公开到公网
  4223  func (builder *SetPermissionMeetingRecordingReqBuilder) Body(body *SetPermissionMeetingRecordingReqBody) *SetPermissionMeetingRecordingReqBuilder {
  4224  	builder.body = body
  4225  	return builder
  4226  }
  4227  
  4228  func (builder *SetPermissionMeetingRecordingReqBuilder) Build() *SetPermissionMeetingRecordingReq {
  4229  	req := &SetPermissionMeetingRecordingReq{}
  4230  	req.apiReq = &larkcore.ApiReq{}
  4231  	req.apiReq.PathParams = builder.apiReq.PathParams
  4232  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4233  	req.apiReq.Body = builder.body
  4234  	return req
  4235  }
  4236  
  4237  type SetPermissionMeetingRecordingReqBody struct {
  4238  	PermissionObjects []*RecordingPermissionObject `json:"permission_objects,omitempty"` // 授权对象列表
  4239  }
  4240  
  4241  type SetPermissionMeetingRecordingReq struct {
  4242  	apiReq *larkcore.ApiReq
  4243  	Body   *SetPermissionMeetingRecordingReqBody `body:""`
  4244  }
  4245  
  4246  type SetPermissionMeetingRecordingResp struct {
  4247  	*larkcore.ApiResp `json:"-"`
  4248  	larkcore.CodeError
  4249  }
  4250  
  4251  func (resp *SetPermissionMeetingRecordingResp) Success() bool {
  4252  	return resp.Code == 0
  4253  }
  4254  
  4255  type StartMeetingRecordingReqBodyBuilder struct {
  4256  	timezone     int // 录制文件时间显示使用的时区[-12,12]
  4257  	timezoneFlag bool
  4258  }
  4259  
  4260  func NewStartMeetingRecordingReqBodyBuilder() *StartMeetingRecordingReqBodyBuilder {
  4261  	builder := &StartMeetingRecordingReqBodyBuilder{}
  4262  	return builder
  4263  }
  4264  
  4265  // 录制文件时间显示使用的时区[-12,12]
  4266  //
  4267  //示例值:8
  4268  func (builder *StartMeetingRecordingReqBodyBuilder) Timezone(timezone int) *StartMeetingRecordingReqBodyBuilder {
  4269  	builder.timezone = timezone
  4270  	builder.timezoneFlag = true
  4271  	return builder
  4272  }
  4273  
  4274  func (builder *StartMeetingRecordingReqBodyBuilder) Build() *StartMeetingRecordingReqBody {
  4275  	req := &StartMeetingRecordingReqBody{}
  4276  	if builder.timezoneFlag {
  4277  		req.Timezone = &builder.timezone
  4278  	}
  4279  	return req
  4280  }
  4281  
  4282  type StartMeetingRecordingPathReqBodyBuilder struct {
  4283  	timezone     int // 录制文件时间显示使用的时区[-12,12]
  4284  	timezoneFlag bool
  4285  }
  4286  
  4287  func NewStartMeetingRecordingPathReqBodyBuilder() *StartMeetingRecordingPathReqBodyBuilder {
  4288  	builder := &StartMeetingRecordingPathReqBodyBuilder{}
  4289  	return builder
  4290  }
  4291  
  4292  // 录制文件时间显示使用的时区[-12,12]
  4293  //
  4294  // 示例值:8
  4295  func (builder *StartMeetingRecordingPathReqBodyBuilder) Timezone(timezone int) *StartMeetingRecordingPathReqBodyBuilder {
  4296  	builder.timezone = timezone
  4297  	builder.timezoneFlag = true
  4298  	return builder
  4299  }
  4300  
  4301  func (builder *StartMeetingRecordingPathReqBodyBuilder) Build() (*StartMeetingRecordingReqBody, error) {
  4302  	req := &StartMeetingRecordingReqBody{}
  4303  	if builder.timezoneFlag {
  4304  		req.Timezone = &builder.timezone
  4305  	}
  4306  	return req, nil
  4307  }
  4308  
  4309  type StartMeetingRecordingReqBuilder struct {
  4310  	apiReq *larkcore.ApiReq
  4311  	body   *StartMeetingRecordingReqBody
  4312  }
  4313  
  4314  func NewStartMeetingRecordingReqBuilder() *StartMeetingRecordingReqBuilder {
  4315  	builder := &StartMeetingRecordingReqBuilder{}
  4316  	builder.apiReq = &larkcore.ApiReq{
  4317  		PathParams:  larkcore.PathParams{},
  4318  		QueryParams: larkcore.QueryParams{},
  4319  	}
  4320  	return builder
  4321  }
  4322  
  4323  // 会议ID(视频会议的唯一标识,视频会议开始后才会产生)
  4324  //
  4325  // 示例值:6911188411932033028
  4326  func (builder *StartMeetingRecordingReqBuilder) MeetingId(meetingId string) *StartMeetingRecordingReqBuilder {
  4327  	builder.apiReq.PathParams.Set("meeting_id", fmt.Sprint(meetingId))
  4328  	return builder
  4329  }
  4330  
  4331  // 在会议中开始录制。
  4332  func (builder *StartMeetingRecordingReqBuilder) Body(body *StartMeetingRecordingReqBody) *StartMeetingRecordingReqBuilder {
  4333  	builder.body = body
  4334  	return builder
  4335  }
  4336  
  4337  func (builder *StartMeetingRecordingReqBuilder) Build() *StartMeetingRecordingReq {
  4338  	req := &StartMeetingRecordingReq{}
  4339  	req.apiReq = &larkcore.ApiReq{}
  4340  	req.apiReq.PathParams = builder.apiReq.PathParams
  4341  	req.apiReq.Body = builder.body
  4342  	return req
  4343  }
  4344  
  4345  type StartMeetingRecordingReqBody struct {
  4346  	Timezone *int `json:"timezone,omitempty"` // 录制文件时间显示使用的时区[-12,12]
  4347  }
  4348  
  4349  type StartMeetingRecordingReq struct {
  4350  	apiReq *larkcore.ApiReq
  4351  	Body   *StartMeetingRecordingReqBody `body:""`
  4352  }
  4353  
  4354  type StartMeetingRecordingResp struct {
  4355  	*larkcore.ApiResp `json:"-"`
  4356  	larkcore.CodeError
  4357  }
  4358  
  4359  func (resp *StartMeetingRecordingResp) Success() bool {
  4360  	return resp.Code == 0
  4361  }
  4362  
  4363  type StopMeetingRecordingReqBuilder struct {
  4364  	apiReq *larkcore.ApiReq
  4365  }
  4366  
  4367  func NewStopMeetingRecordingReqBuilder() *StopMeetingRecordingReqBuilder {
  4368  	builder := &StopMeetingRecordingReqBuilder{}
  4369  	builder.apiReq = &larkcore.ApiReq{
  4370  		PathParams:  larkcore.PathParams{},
  4371  		QueryParams: larkcore.QueryParams{},
  4372  	}
  4373  	return builder
  4374  }
  4375  
  4376  // 会议ID(视频会议的唯一标识,视频会议开始后才会产生)
  4377  //
  4378  // 示例值:6911188411932033028
  4379  func (builder *StopMeetingRecordingReqBuilder) MeetingId(meetingId string) *StopMeetingRecordingReqBuilder {
  4380  	builder.apiReq.PathParams.Set("meeting_id", fmt.Sprint(meetingId))
  4381  	return builder
  4382  }
  4383  
  4384  func (builder *StopMeetingRecordingReqBuilder) Build() *StopMeetingRecordingReq {
  4385  	req := &StopMeetingRecordingReq{}
  4386  	req.apiReq = &larkcore.ApiReq{}
  4387  	req.apiReq.PathParams = builder.apiReq.PathParams
  4388  	return req
  4389  }
  4390  
  4391  type StopMeetingRecordingReq struct {
  4392  	apiReq *larkcore.ApiReq
  4393  }
  4394  
  4395  type StopMeetingRecordingResp struct {
  4396  	*larkcore.ApiResp `json:"-"`
  4397  	larkcore.CodeError
  4398  }
  4399  
  4400  func (resp *StopMeetingRecordingResp) Success() bool {
  4401  	return resp.Code == 0
  4402  }
  4403  
  4404  type GetDailyReportReqBuilder struct {
  4405  	apiReq *larkcore.ApiReq
  4406  }
  4407  
  4408  func NewGetDailyReportReqBuilder() *GetDailyReportReqBuilder {
  4409  	builder := &GetDailyReportReqBuilder{}
  4410  	builder.apiReq = &larkcore.ApiReq{
  4411  		PathParams:  larkcore.PathParams{},
  4412  		QueryParams: larkcore.QueryParams{},
  4413  	}
  4414  	return builder
  4415  }
  4416  
  4417  // 开始时间(unix时间,单位sec)
  4418  //
  4419  // 示例值:1608888867
  4420  func (builder *GetDailyReportReqBuilder) StartTime(startTime string) *GetDailyReportReqBuilder {
  4421  	builder.apiReq.QueryParams.Set("start_time", fmt.Sprint(startTime))
  4422  	return builder
  4423  }
  4424  
  4425  // 结束时间(unix时间,单位sec)
  4426  //
  4427  // 示例值:1608888966
  4428  func (builder *GetDailyReportReqBuilder) EndTime(endTime string) *GetDailyReportReqBuilder {
  4429  	builder.apiReq.QueryParams.Set("end_time", fmt.Sprint(endTime))
  4430  	return builder
  4431  }
  4432  
  4433  func (builder *GetDailyReportReqBuilder) Build() *GetDailyReportReq {
  4434  	req := &GetDailyReportReq{}
  4435  	req.apiReq = &larkcore.ApiReq{}
  4436  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4437  	return req
  4438  }
  4439  
  4440  type GetDailyReportReq struct {
  4441  	apiReq *larkcore.ApiReq
  4442  }
  4443  
  4444  type GetDailyReportRespData struct {
  4445  	MeetingReport *Report `json:"meeting_report,omitempty"` // 会议报告
  4446  }
  4447  
  4448  type GetDailyReportResp struct {
  4449  	*larkcore.ApiResp `json:"-"`
  4450  	larkcore.CodeError
  4451  	Data *GetDailyReportRespData `json:"data"` // 业务数据
  4452  }
  4453  
  4454  func (resp *GetDailyReportResp) Success() bool {
  4455  	return resp.Code == 0
  4456  }
  4457  
  4458  type GetTopUserReportReqBuilder struct {
  4459  	apiReq *larkcore.ApiReq
  4460  }
  4461  
  4462  func NewGetTopUserReportReqBuilder() *GetTopUserReportReqBuilder {
  4463  	builder := &GetTopUserReportReqBuilder{}
  4464  	builder.apiReq = &larkcore.ApiReq{
  4465  		PathParams:  larkcore.PathParams{},
  4466  		QueryParams: larkcore.QueryParams{},
  4467  	}
  4468  	return builder
  4469  }
  4470  
  4471  // 开始时间(unix时间,单位sec)
  4472  //
  4473  // 示例值:1608888867
  4474  func (builder *GetTopUserReportReqBuilder) StartTime(startTime string) *GetTopUserReportReqBuilder {
  4475  	builder.apiReq.QueryParams.Set("start_time", fmt.Sprint(startTime))
  4476  	return builder
  4477  }
  4478  
  4479  // 结束时间(unix时间,单位sec)
  4480  //
  4481  // 示例值:1608889966
  4482  func (builder *GetTopUserReportReqBuilder) EndTime(endTime string) *GetTopUserReportReqBuilder {
  4483  	builder.apiReq.QueryParams.Set("end_time", fmt.Sprint(endTime))
  4484  	return builder
  4485  }
  4486  
  4487  // 取前多少位
  4488  //
  4489  // 示例值:10
  4490  func (builder *GetTopUserReportReqBuilder) Limit(limit int) *GetTopUserReportReqBuilder {
  4491  	builder.apiReq.QueryParams.Set("limit", fmt.Sprint(limit))
  4492  	return builder
  4493  }
  4494  
  4495  // 排序依据(降序)
  4496  //
  4497  // 示例值:1
  4498  func (builder *GetTopUserReportReqBuilder) OrderBy(orderBy int) *GetTopUserReportReqBuilder {
  4499  	builder.apiReq.QueryParams.Set("order_by", fmt.Sprint(orderBy))
  4500  	return builder
  4501  }
  4502  
  4503  // 此次调用中使用的用户ID的类型
  4504  //
  4505  // 示例值:
  4506  func (builder *GetTopUserReportReqBuilder) UserIdType(userIdType string) *GetTopUserReportReqBuilder {
  4507  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  4508  	return builder
  4509  }
  4510  
  4511  func (builder *GetTopUserReportReqBuilder) Build() *GetTopUserReportReq {
  4512  	req := &GetTopUserReportReq{}
  4513  	req.apiReq = &larkcore.ApiReq{}
  4514  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4515  	return req
  4516  }
  4517  
  4518  type GetTopUserReportReq struct {
  4519  	apiReq *larkcore.ApiReq
  4520  }
  4521  
  4522  type GetTopUserReportRespData struct {
  4523  	TopUserReport []*ReportTopUser `json:"top_user_report,omitempty"` // top用户列表
  4524  }
  4525  
  4526  type GetTopUserReportResp struct {
  4527  	*larkcore.ApiResp `json:"-"`
  4528  	larkcore.CodeError
  4529  	Data *GetTopUserReportRespData `json:"data"` // 业务数据
  4530  }
  4531  
  4532  func (resp *GetTopUserReportResp) Success() bool {
  4533  	return resp.Code == 0
  4534  }
  4535  
  4536  type ApplyReserveReqBodyBuilder struct {
  4537  	endTime             string // 预约到期时间(unix时间,单位sec),多人会议必填
  4538  	endTimeFlag         bool
  4539  	meetingSettings     *ReserveMeetingSetting // 会议设置
  4540  	meetingSettingsFlag bool
  4541  }
  4542  
  4543  func NewApplyReserveReqBodyBuilder() *ApplyReserveReqBodyBuilder {
  4544  	builder := &ApplyReserveReqBodyBuilder{}
  4545  	return builder
  4546  }
  4547  
  4548  // 预约到期时间(unix时间,单位sec),多人会议必填
  4549  //
  4550  //示例值:1608888867
  4551  func (builder *ApplyReserveReqBodyBuilder) EndTime(endTime string) *ApplyReserveReqBodyBuilder {
  4552  	builder.endTime = endTime
  4553  	builder.endTimeFlag = true
  4554  	return builder
  4555  }
  4556  
  4557  // 会议设置
  4558  //
  4559  //示例值:
  4560  func (builder *ApplyReserveReqBodyBuilder) MeetingSettings(meetingSettings *ReserveMeetingSetting) *ApplyReserveReqBodyBuilder {
  4561  	builder.meetingSettings = meetingSettings
  4562  	builder.meetingSettingsFlag = true
  4563  	return builder
  4564  }
  4565  
  4566  func (builder *ApplyReserveReqBodyBuilder) Build() *ApplyReserveReqBody {
  4567  	req := &ApplyReserveReqBody{}
  4568  	if builder.endTimeFlag {
  4569  		req.EndTime = &builder.endTime
  4570  	}
  4571  	if builder.meetingSettingsFlag {
  4572  		req.MeetingSettings = builder.meetingSettings
  4573  	}
  4574  	return req
  4575  }
  4576  
  4577  type ApplyReservePathReqBodyBuilder struct {
  4578  	endTime             string // 预约到期时间(unix时间,单位sec),多人会议必填
  4579  	endTimeFlag         bool
  4580  	meetingSettings     *ReserveMeetingSetting // 会议设置
  4581  	meetingSettingsFlag bool
  4582  }
  4583  
  4584  func NewApplyReservePathReqBodyBuilder() *ApplyReservePathReqBodyBuilder {
  4585  	builder := &ApplyReservePathReqBodyBuilder{}
  4586  	return builder
  4587  }
  4588  
  4589  // 预约到期时间(unix时间,单位sec),多人会议必填
  4590  //
  4591  // 示例值:1608888867
  4592  func (builder *ApplyReservePathReqBodyBuilder) EndTime(endTime string) *ApplyReservePathReqBodyBuilder {
  4593  	builder.endTime = endTime
  4594  	builder.endTimeFlag = true
  4595  	return builder
  4596  }
  4597  
  4598  // 会议设置
  4599  //
  4600  // 示例值:
  4601  func (builder *ApplyReservePathReqBodyBuilder) MeetingSettings(meetingSettings *ReserveMeetingSetting) *ApplyReservePathReqBodyBuilder {
  4602  	builder.meetingSettings = meetingSettings
  4603  	builder.meetingSettingsFlag = true
  4604  	return builder
  4605  }
  4606  
  4607  func (builder *ApplyReservePathReqBodyBuilder) Build() (*ApplyReserveReqBody, error) {
  4608  	req := &ApplyReserveReqBody{}
  4609  	if builder.endTimeFlag {
  4610  		req.EndTime = &builder.endTime
  4611  	}
  4612  	if builder.meetingSettingsFlag {
  4613  		req.MeetingSettings = builder.meetingSettings
  4614  	}
  4615  	return req, nil
  4616  }
  4617  
  4618  type ApplyReserveReqBuilder struct {
  4619  	apiReq *larkcore.ApiReq
  4620  	body   *ApplyReserveReqBody
  4621  }
  4622  
  4623  func NewApplyReserveReqBuilder() *ApplyReserveReqBuilder {
  4624  	builder := &ApplyReserveReqBuilder{}
  4625  	builder.apiReq = &larkcore.ApiReq{
  4626  		PathParams:  larkcore.PathParams{},
  4627  		QueryParams: larkcore.QueryParams{},
  4628  	}
  4629  	return builder
  4630  }
  4631  
  4632  // 此次调用中使用的用户ID的类型,默认使用open_id可不填
  4633  //
  4634  // 示例值:
  4635  func (builder *ApplyReserveReqBuilder) UserIdType(userIdType string) *ApplyReserveReqBuilder {
  4636  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  4637  	return builder
  4638  }
  4639  
  4640  // 创建一个会议预约。
  4641  func (builder *ApplyReserveReqBuilder) Body(body *ApplyReserveReqBody) *ApplyReserveReqBuilder {
  4642  	builder.body = body
  4643  	return builder
  4644  }
  4645  
  4646  func (builder *ApplyReserveReqBuilder) Build() *ApplyReserveReq {
  4647  	req := &ApplyReserveReq{}
  4648  	req.apiReq = &larkcore.ApiReq{}
  4649  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4650  	req.apiReq.Body = builder.body
  4651  	return req
  4652  }
  4653  
  4654  type ApplyReserveReqBody struct {
  4655  	EndTime         *string                `json:"end_time,omitempty"`         // 预约到期时间(unix时间,单位sec),多人会议必填
  4656  	MeetingSettings *ReserveMeetingSetting `json:"meeting_settings,omitempty"` // 会议设置
  4657  }
  4658  
  4659  type ApplyReserveReq struct {
  4660  	apiReq *larkcore.ApiReq
  4661  	Body   *ApplyReserveReqBody `body:""`
  4662  }
  4663  
  4664  type ApplyReserveRespData struct {
  4665  	Reserve *Reserve `json:"reserve,omitempty"` // 预约数据
  4666  }
  4667  
  4668  type ApplyReserveResp struct {
  4669  	*larkcore.ApiResp `json:"-"`
  4670  	larkcore.CodeError
  4671  	Data *ApplyReserveRespData `json:"data"` // 业务数据
  4672  }
  4673  
  4674  func (resp *ApplyReserveResp) Success() bool {
  4675  	return resp.Code == 0
  4676  }
  4677  
  4678  type DeleteReserveReqBuilder struct {
  4679  	apiReq *larkcore.ApiReq
  4680  }
  4681  
  4682  func NewDeleteReserveReqBuilder() *DeleteReserveReqBuilder {
  4683  	builder := &DeleteReserveReqBuilder{}
  4684  	builder.apiReq = &larkcore.ApiReq{
  4685  		PathParams:  larkcore.PathParams{},
  4686  		QueryParams: larkcore.QueryParams{},
  4687  	}
  4688  	return builder
  4689  }
  4690  
  4691  // 预约ID(预约的唯一标识)
  4692  //
  4693  // 示例值:6911188411932033028
  4694  func (builder *DeleteReserveReqBuilder) ReserveId(reserveId string) *DeleteReserveReqBuilder {
  4695  	builder.apiReq.PathParams.Set("reserve_id", fmt.Sprint(reserveId))
  4696  	return builder
  4697  }
  4698  
  4699  func (builder *DeleteReserveReqBuilder) Build() *DeleteReserveReq {
  4700  	req := &DeleteReserveReq{}
  4701  	req.apiReq = &larkcore.ApiReq{}
  4702  	req.apiReq.PathParams = builder.apiReq.PathParams
  4703  	return req
  4704  }
  4705  
  4706  type DeleteReserveReq struct {
  4707  	apiReq *larkcore.ApiReq
  4708  }
  4709  
  4710  type DeleteReserveResp struct {
  4711  	*larkcore.ApiResp `json:"-"`
  4712  	larkcore.CodeError
  4713  }
  4714  
  4715  func (resp *DeleteReserveResp) Success() bool {
  4716  	return resp.Code == 0
  4717  }
  4718  
  4719  type GetReserveReqBuilder struct {
  4720  	apiReq *larkcore.ApiReq
  4721  }
  4722  
  4723  func NewGetReserveReqBuilder() *GetReserveReqBuilder {
  4724  	builder := &GetReserveReqBuilder{}
  4725  	builder.apiReq = &larkcore.ApiReq{
  4726  		PathParams:  larkcore.PathParams{},
  4727  		QueryParams: larkcore.QueryParams{},
  4728  	}
  4729  	return builder
  4730  }
  4731  
  4732  // 预约ID(预约的唯一标识)
  4733  //
  4734  // 示例值:6911188411932033028
  4735  func (builder *GetReserveReqBuilder) ReserveId(reserveId string) *GetReserveReqBuilder {
  4736  	builder.apiReq.PathParams.Set("reserve_id", fmt.Sprint(reserveId))
  4737  	return builder
  4738  }
  4739  
  4740  // 此次调用中使用的用户ID的类型
  4741  //
  4742  // 示例值:
  4743  func (builder *GetReserveReqBuilder) UserIdType(userIdType string) *GetReserveReqBuilder {
  4744  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  4745  	return builder
  4746  }
  4747  
  4748  func (builder *GetReserveReqBuilder) Build() *GetReserveReq {
  4749  	req := &GetReserveReq{}
  4750  	req.apiReq = &larkcore.ApiReq{}
  4751  	req.apiReq.PathParams = builder.apiReq.PathParams
  4752  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4753  	return req
  4754  }
  4755  
  4756  type GetReserveReq struct {
  4757  	apiReq *larkcore.ApiReq
  4758  }
  4759  
  4760  type GetReserveRespData struct {
  4761  	Reserve *Reserve `json:"reserve,omitempty"` // 预约数据
  4762  }
  4763  
  4764  type GetReserveResp struct {
  4765  	*larkcore.ApiResp `json:"-"`
  4766  	larkcore.CodeError
  4767  	Data *GetReserveRespData `json:"data"` // 业务数据
  4768  }
  4769  
  4770  func (resp *GetReserveResp) Success() bool {
  4771  	return resp.Code == 0
  4772  }
  4773  
  4774  type GetActiveMeetingReserveReqBuilder struct {
  4775  	apiReq *larkcore.ApiReq
  4776  }
  4777  
  4778  func NewGetActiveMeetingReserveReqBuilder() *GetActiveMeetingReserveReqBuilder {
  4779  	builder := &GetActiveMeetingReserveReqBuilder{}
  4780  	builder.apiReq = &larkcore.ApiReq{
  4781  		PathParams:  larkcore.PathParams{},
  4782  		QueryParams: larkcore.QueryParams{},
  4783  	}
  4784  	return builder
  4785  }
  4786  
  4787  // 预约ID(预约的唯一标识)
  4788  //
  4789  // 示例值:6911188411932033028
  4790  func (builder *GetActiveMeetingReserveReqBuilder) ReserveId(reserveId string) *GetActiveMeetingReserveReqBuilder {
  4791  	builder.apiReq.PathParams.Set("reserve_id", fmt.Sprint(reserveId))
  4792  	return builder
  4793  }
  4794  
  4795  // 是否需要参会人列表,默认为false
  4796  //
  4797  // 示例值:false
  4798  func (builder *GetActiveMeetingReserveReqBuilder) WithParticipants(withParticipants bool) *GetActiveMeetingReserveReqBuilder {
  4799  	builder.apiReq.QueryParams.Set("with_participants", fmt.Sprint(withParticipants))
  4800  	return builder
  4801  }
  4802  
  4803  // 此次调用中使用的用户ID的类型
  4804  //
  4805  // 示例值:
  4806  func (builder *GetActiveMeetingReserveReqBuilder) UserIdType(userIdType string) *GetActiveMeetingReserveReqBuilder {
  4807  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  4808  	return builder
  4809  }
  4810  
  4811  func (builder *GetActiveMeetingReserveReqBuilder) Build() *GetActiveMeetingReserveReq {
  4812  	req := &GetActiveMeetingReserveReq{}
  4813  	req.apiReq = &larkcore.ApiReq{}
  4814  	req.apiReq.PathParams = builder.apiReq.PathParams
  4815  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4816  	return req
  4817  }
  4818  
  4819  type GetActiveMeetingReserveReq struct {
  4820  	apiReq *larkcore.ApiReq
  4821  }
  4822  
  4823  type GetActiveMeetingReserveRespData struct {
  4824  	Meeting *Meeting `json:"meeting,omitempty"` // 会议数据
  4825  }
  4826  
  4827  type GetActiveMeetingReserveResp struct {
  4828  	*larkcore.ApiResp `json:"-"`
  4829  	larkcore.CodeError
  4830  	Data *GetActiveMeetingReserveRespData `json:"data"` // 业务数据
  4831  }
  4832  
  4833  func (resp *GetActiveMeetingReserveResp) Success() bool {
  4834  	return resp.Code == 0
  4835  }
  4836  
  4837  type UpdateReserveReqBodyBuilder struct {
  4838  	endTime             string // 预约到期时间(unix时间,单位sec)
  4839  	endTimeFlag         bool
  4840  	meetingSettings     *ReserveMeetingSetting // 会议设置
  4841  	meetingSettingsFlag bool
  4842  }
  4843  
  4844  func NewUpdateReserveReqBodyBuilder() *UpdateReserveReqBodyBuilder {
  4845  	builder := &UpdateReserveReqBodyBuilder{}
  4846  	return builder
  4847  }
  4848  
  4849  // 预约到期时间(unix时间,单位sec)
  4850  //
  4851  //示例值:1608888867
  4852  func (builder *UpdateReserveReqBodyBuilder) EndTime(endTime string) *UpdateReserveReqBodyBuilder {
  4853  	builder.endTime = endTime
  4854  	builder.endTimeFlag = true
  4855  	return builder
  4856  }
  4857  
  4858  // 会议设置
  4859  //
  4860  //示例值:
  4861  func (builder *UpdateReserveReqBodyBuilder) MeetingSettings(meetingSettings *ReserveMeetingSetting) *UpdateReserveReqBodyBuilder {
  4862  	builder.meetingSettings = meetingSettings
  4863  	builder.meetingSettingsFlag = true
  4864  	return builder
  4865  }
  4866  
  4867  func (builder *UpdateReserveReqBodyBuilder) Build() *UpdateReserveReqBody {
  4868  	req := &UpdateReserveReqBody{}
  4869  	if builder.endTimeFlag {
  4870  		req.EndTime = &builder.endTime
  4871  	}
  4872  	if builder.meetingSettingsFlag {
  4873  		req.MeetingSettings = builder.meetingSettings
  4874  	}
  4875  	return req
  4876  }
  4877  
  4878  type UpdateReservePathReqBodyBuilder struct {
  4879  	endTime             string // 预约到期时间(unix时间,单位sec)
  4880  	endTimeFlag         bool
  4881  	meetingSettings     *ReserveMeetingSetting // 会议设置
  4882  	meetingSettingsFlag bool
  4883  }
  4884  
  4885  func NewUpdateReservePathReqBodyBuilder() *UpdateReservePathReqBodyBuilder {
  4886  	builder := &UpdateReservePathReqBodyBuilder{}
  4887  	return builder
  4888  }
  4889  
  4890  // 预约到期时间(unix时间,单位sec)
  4891  //
  4892  // 示例值:1608888867
  4893  func (builder *UpdateReservePathReqBodyBuilder) EndTime(endTime string) *UpdateReservePathReqBodyBuilder {
  4894  	builder.endTime = endTime
  4895  	builder.endTimeFlag = true
  4896  	return builder
  4897  }
  4898  
  4899  // 会议设置
  4900  //
  4901  // 示例值:
  4902  func (builder *UpdateReservePathReqBodyBuilder) MeetingSettings(meetingSettings *ReserveMeetingSetting) *UpdateReservePathReqBodyBuilder {
  4903  	builder.meetingSettings = meetingSettings
  4904  	builder.meetingSettingsFlag = true
  4905  	return builder
  4906  }
  4907  
  4908  func (builder *UpdateReservePathReqBodyBuilder) Build() (*UpdateReserveReqBody, error) {
  4909  	req := &UpdateReserveReqBody{}
  4910  	if builder.endTimeFlag {
  4911  		req.EndTime = &builder.endTime
  4912  	}
  4913  	if builder.meetingSettingsFlag {
  4914  		req.MeetingSettings = builder.meetingSettings
  4915  	}
  4916  	return req, nil
  4917  }
  4918  
  4919  type UpdateReserveReqBuilder struct {
  4920  	apiReq *larkcore.ApiReq
  4921  	body   *UpdateReserveReqBody
  4922  }
  4923  
  4924  func NewUpdateReserveReqBuilder() *UpdateReserveReqBuilder {
  4925  	builder := &UpdateReserveReqBuilder{}
  4926  	builder.apiReq = &larkcore.ApiReq{
  4927  		PathParams:  larkcore.PathParams{},
  4928  		QueryParams: larkcore.QueryParams{},
  4929  	}
  4930  	return builder
  4931  }
  4932  
  4933  // 预约ID(预约的唯一标识)
  4934  //
  4935  // 示例值:6911188411932033028
  4936  func (builder *UpdateReserveReqBuilder) ReserveId(reserveId string) *UpdateReserveReqBuilder {
  4937  	builder.apiReq.PathParams.Set("reserve_id", fmt.Sprint(reserveId))
  4938  	return builder
  4939  }
  4940  
  4941  // 此次调用中使用的用户ID的类型,默认使用open_id可不填
  4942  //
  4943  // 示例值:
  4944  func (builder *UpdateReserveReqBuilder) UserIdType(userIdType string) *UpdateReserveReqBuilder {
  4945  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  4946  	return builder
  4947  }
  4948  
  4949  // 更新一个预约
  4950  func (builder *UpdateReserveReqBuilder) Body(body *UpdateReserveReqBody) *UpdateReserveReqBuilder {
  4951  	builder.body = body
  4952  	return builder
  4953  }
  4954  
  4955  func (builder *UpdateReserveReqBuilder) Build() *UpdateReserveReq {
  4956  	req := &UpdateReserveReq{}
  4957  	req.apiReq = &larkcore.ApiReq{}
  4958  	req.apiReq.PathParams = builder.apiReq.PathParams
  4959  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4960  	req.apiReq.Body = builder.body
  4961  	return req
  4962  }
  4963  
  4964  type UpdateReserveReqBody struct {
  4965  	EndTime         *string                `json:"end_time,omitempty"`         // 预约到期时间(unix时间,单位sec)
  4966  	MeetingSettings *ReserveMeetingSetting `json:"meeting_settings,omitempty"` // 会议设置
  4967  }
  4968  
  4969  type UpdateReserveReq struct {
  4970  	apiReq *larkcore.ApiReq
  4971  	Body   *UpdateReserveReqBody `body:""`
  4972  }
  4973  
  4974  type UpdateReserveRespData struct {
  4975  	Reserve *Reserve `json:"reserve,omitempty"` // 预约数据
  4976  }
  4977  
  4978  type UpdateReserveResp struct {
  4979  	*larkcore.ApiResp `json:"-"`
  4980  	larkcore.CodeError
  4981  	Data *UpdateReserveRespData `json:"data"` // 业务数据
  4982  }
  4983  
  4984  func (resp *UpdateReserveResp) Success() bool {
  4985  	return resp.Code == 0
  4986  }
  4987  
  4988  type QueryRoomConfigReqBuilder struct {
  4989  	apiReq *larkcore.ApiReq
  4990  }
  4991  
  4992  func NewQueryRoomConfigReqBuilder() *QueryRoomConfigReqBuilder {
  4993  	builder := &QueryRoomConfigReqBuilder{}
  4994  	builder.apiReq = &larkcore.ApiReq{
  4995  		PathParams:  larkcore.PathParams{},
  4996  		QueryParams: larkcore.QueryParams{},
  4997  	}
  4998  	return builder
  4999  }
  5000  
  5001  // 查询节点范围
  5002  //
  5003  // 示例值:5
  5004  func (builder *QueryRoomConfigReqBuilder) Scope(scope int) *QueryRoomConfigReqBuilder {
  5005  	builder.apiReq.QueryParams.Set("scope", fmt.Sprint(scope))
  5006  	return builder
  5007  }
  5008  
  5009  // 国家/地区ID scope为2,3时需要此参数
  5010  //
  5011  // 示例值:086
  5012  func (builder *QueryRoomConfigReqBuilder) CountryId(countryId string) *QueryRoomConfigReqBuilder {
  5013  	builder.apiReq.QueryParams.Set("country_id", fmt.Sprint(countryId))
  5014  	return builder
  5015  }
  5016  
  5017  // 城市ID scope为3时需要此参数
  5018  //
  5019  // 示例值:001
  5020  func (builder *QueryRoomConfigReqBuilder) DistrictId(districtId string) *QueryRoomConfigReqBuilder {
  5021  	builder.apiReq.QueryParams.Set("district_id", fmt.Sprint(districtId))
  5022  	return builder
  5023  }
  5024  
  5025  // 建筑ID scope为4,5时需要此参数
  5026  //
  5027  // 示例值:22
  5028  func (builder *QueryRoomConfigReqBuilder) BuildingId(buildingId string) *QueryRoomConfigReqBuilder {
  5029  	builder.apiReq.QueryParams.Set("building_id", fmt.Sprint(buildingId))
  5030  	return builder
  5031  }
  5032  
  5033  // 楼层 scope为5时需要此参数
  5034  //
  5035  // 示例值:4
  5036  func (builder *QueryRoomConfigReqBuilder) FloorName(floorName string) *QueryRoomConfigReqBuilder {
  5037  	builder.apiReq.QueryParams.Set("floor_name", fmt.Sprint(floorName))
  5038  	return builder
  5039  }
  5040  
  5041  // 会议室ID scope为6时需要此参数
  5042  //
  5043  // 示例值:6383786266263
  5044  func (builder *QueryRoomConfigReqBuilder) RoomId(roomId string) *QueryRoomConfigReqBuilder {
  5045  	builder.apiReq.QueryParams.Set("room_id", fmt.Sprint(roomId))
  5046  	return builder
  5047  }
  5048  
  5049  // 此次调用中使用的用户ID的类型,默认使用open_id可不填
  5050  //
  5051  // 示例值:
  5052  func (builder *QueryRoomConfigReqBuilder) UserIdType(userIdType string) *QueryRoomConfigReqBuilder {
  5053  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  5054  	return builder
  5055  }
  5056  
  5057  func (builder *QueryRoomConfigReqBuilder) Build() *QueryRoomConfigReq {
  5058  	req := &QueryRoomConfigReq{}
  5059  	req.apiReq = &larkcore.ApiReq{}
  5060  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  5061  	return req
  5062  }
  5063  
  5064  type QueryRoomConfigReq struct {
  5065  	apiReq *larkcore.ApiReq
  5066  }
  5067  
  5068  type QueryRoomConfigRespData struct {
  5069  	RoomBackground        *string             `json:"room_background,omitempty"`          // 飞书会议室背景图
  5070  	DisplayBackground     *string             `json:"display_background,omitempty"`       // 飞书签到板背景图
  5071  	DigitalSignage        *RoomDigitalSignage `json:"digital_signage,omitempty"`          // 飞书会议室数字标牌
  5072  	RoomBoxDigitalSignage *RoomDigitalSignage `json:"room_box_digital_signage,omitempty"` // 飞书投屏盒子数字标牌
  5073  	RoomStatus            *RoomStatus         `json:"room_status,omitempty"`              // 会议室状态
  5074  }
  5075  
  5076  type QueryRoomConfigResp struct {
  5077  	*larkcore.ApiResp `json:"-"`
  5078  	larkcore.CodeError
  5079  	Data *QueryRoomConfigRespData `json:"data"` // 业务数据
  5080  }
  5081  
  5082  func (resp *QueryRoomConfigResp) Success() bool {
  5083  	return resp.Code == 0
  5084  }
  5085  
  5086  type SetRoomConfigReqBodyBuilder struct {
  5087  	scope          int // 设置节点范围
  5088  	scopeFlag      bool
  5089  	countryId      string // 国家/地区ID scope为2,3时需要此参数
  5090  	countryIdFlag  bool
  5091  	districtId     string // 城市ID scope为3时需要此参数
  5092  	districtIdFlag bool
  5093  	buildingId     string // 建筑ID scope为4,5时需要此参数
  5094  	buildingIdFlag bool
  5095  	floorName      string // 楼层 scope为5时需要此参数
  5096  	floorNameFlag  bool
  5097  	roomId         string // 会议室ID scope为6时需要此参数
  5098  	roomIdFlag     bool
  5099  	roomConfig     *RoomConfig // 会议室设置
  5100  	roomConfigFlag bool
  5101  }
  5102  
  5103  func NewSetRoomConfigReqBodyBuilder() *SetRoomConfigReqBodyBuilder {
  5104  	builder := &SetRoomConfigReqBodyBuilder{}
  5105  	return builder
  5106  }
  5107  
  5108  // 设置节点范围
  5109  //
  5110  //示例值:5
  5111  func (builder *SetRoomConfigReqBodyBuilder) Scope(scope int) *SetRoomConfigReqBodyBuilder {
  5112  	builder.scope = scope
  5113  	builder.scopeFlag = true
  5114  	return builder
  5115  }
  5116  
  5117  // 国家/地区ID scope为2,3时需要此参数
  5118  //
  5119  //示例值:086
  5120  func (builder *SetRoomConfigReqBodyBuilder) CountryId(countryId string) *SetRoomConfigReqBodyBuilder {
  5121  	builder.countryId = countryId
  5122  	builder.countryIdFlag = true
  5123  	return builder
  5124  }
  5125  
  5126  // 城市ID scope为3时需要此参数
  5127  //
  5128  //示例值:223
  5129  func (builder *SetRoomConfigReqBodyBuilder) DistrictId(districtId string) *SetRoomConfigReqBodyBuilder {
  5130  	builder.districtId = districtId
  5131  	builder.districtIdFlag = true
  5132  	return builder
  5133  }
  5134  
  5135  // 建筑ID scope为4,5时需要此参数
  5136  //
  5137  //示例值:66
  5138  func (builder *SetRoomConfigReqBodyBuilder) BuildingId(buildingId string) *SetRoomConfigReqBodyBuilder {
  5139  	builder.buildingId = buildingId
  5140  	builder.buildingIdFlag = true
  5141  	return builder
  5142  }
  5143  
  5144  // 楼层 scope为5时需要此参数
  5145  //
  5146  //示例值:3
  5147  func (builder *SetRoomConfigReqBodyBuilder) FloorName(floorName string) *SetRoomConfigReqBodyBuilder {
  5148  	builder.floorName = floorName
  5149  	builder.floorNameFlag = true
  5150  	return builder
  5151  }
  5152  
  5153  // 会议室ID scope为6时需要此参数
  5154  //
  5155  //示例值:67687262867363
  5156  func (builder *SetRoomConfigReqBodyBuilder) RoomId(roomId string) *SetRoomConfigReqBodyBuilder {
  5157  	builder.roomId = roomId
  5158  	builder.roomIdFlag = true
  5159  	return builder
  5160  }
  5161  
  5162  // 会议室设置
  5163  //
  5164  //示例值:
  5165  func (builder *SetRoomConfigReqBodyBuilder) RoomConfig(roomConfig *RoomConfig) *SetRoomConfigReqBodyBuilder {
  5166  	builder.roomConfig = roomConfig
  5167  	builder.roomConfigFlag = true
  5168  	return builder
  5169  }
  5170  
  5171  func (builder *SetRoomConfigReqBodyBuilder) Build() *SetRoomConfigReqBody {
  5172  	req := &SetRoomConfigReqBody{}
  5173  	if builder.scopeFlag {
  5174  		req.Scope = &builder.scope
  5175  	}
  5176  	if builder.countryIdFlag {
  5177  		req.CountryId = &builder.countryId
  5178  	}
  5179  	if builder.districtIdFlag {
  5180  		req.DistrictId = &builder.districtId
  5181  	}
  5182  	if builder.buildingIdFlag {
  5183  		req.BuildingId = &builder.buildingId
  5184  	}
  5185  	if builder.floorNameFlag {
  5186  		req.FloorName = &builder.floorName
  5187  	}
  5188  	if builder.roomIdFlag {
  5189  		req.RoomId = &builder.roomId
  5190  	}
  5191  	if builder.roomConfigFlag {
  5192  		req.RoomConfig = builder.roomConfig
  5193  	}
  5194  	return req
  5195  }
  5196  
  5197  type SetRoomConfigPathReqBodyBuilder struct {
  5198  	scope          int // 设置节点范围
  5199  	scopeFlag      bool
  5200  	countryId      string // 国家/地区ID scope为2,3时需要此参数
  5201  	countryIdFlag  bool
  5202  	districtId     string // 城市ID scope为3时需要此参数
  5203  	districtIdFlag bool
  5204  	buildingId     string // 建筑ID scope为4,5时需要此参数
  5205  	buildingIdFlag bool
  5206  	floorName      string // 楼层 scope为5时需要此参数
  5207  	floorNameFlag  bool
  5208  	roomId         string // 会议室ID scope为6时需要此参数
  5209  	roomIdFlag     bool
  5210  	roomConfig     *RoomConfig // 会议室设置
  5211  	roomConfigFlag bool
  5212  }
  5213  
  5214  func NewSetRoomConfigPathReqBodyBuilder() *SetRoomConfigPathReqBodyBuilder {
  5215  	builder := &SetRoomConfigPathReqBodyBuilder{}
  5216  	return builder
  5217  }
  5218  
  5219  // 设置节点范围
  5220  //
  5221  // 示例值:5
  5222  func (builder *SetRoomConfigPathReqBodyBuilder) Scope(scope int) *SetRoomConfigPathReqBodyBuilder {
  5223  	builder.scope = scope
  5224  	builder.scopeFlag = true
  5225  	return builder
  5226  }
  5227  
  5228  // 国家/地区ID scope为2,3时需要此参数
  5229  //
  5230  // 示例值:086
  5231  func (builder *SetRoomConfigPathReqBodyBuilder) CountryId(countryId string) *SetRoomConfigPathReqBodyBuilder {
  5232  	builder.countryId = countryId
  5233  	builder.countryIdFlag = true
  5234  	return builder
  5235  }
  5236  
  5237  // 城市ID scope为3时需要此参数
  5238  //
  5239  // 示例值:223
  5240  func (builder *SetRoomConfigPathReqBodyBuilder) DistrictId(districtId string) *SetRoomConfigPathReqBodyBuilder {
  5241  	builder.districtId = districtId
  5242  	builder.districtIdFlag = true
  5243  	return builder
  5244  }
  5245  
  5246  // 建筑ID scope为4,5时需要此参数
  5247  //
  5248  // 示例值:66
  5249  func (builder *SetRoomConfigPathReqBodyBuilder) BuildingId(buildingId string) *SetRoomConfigPathReqBodyBuilder {
  5250  	builder.buildingId = buildingId
  5251  	builder.buildingIdFlag = true
  5252  	return builder
  5253  }
  5254  
  5255  // 楼层 scope为5时需要此参数
  5256  //
  5257  // 示例值:3
  5258  func (builder *SetRoomConfigPathReqBodyBuilder) FloorName(floorName string) *SetRoomConfigPathReqBodyBuilder {
  5259  	builder.floorName = floorName
  5260  	builder.floorNameFlag = true
  5261  	return builder
  5262  }
  5263  
  5264  // 会议室ID scope为6时需要此参数
  5265  //
  5266  // 示例值:67687262867363
  5267  func (builder *SetRoomConfigPathReqBodyBuilder) RoomId(roomId string) *SetRoomConfigPathReqBodyBuilder {
  5268  	builder.roomId = roomId
  5269  	builder.roomIdFlag = true
  5270  	return builder
  5271  }
  5272  
  5273  // 会议室设置
  5274  //
  5275  // 示例值:
  5276  func (builder *SetRoomConfigPathReqBodyBuilder) RoomConfig(roomConfig *RoomConfig) *SetRoomConfigPathReqBodyBuilder {
  5277  	builder.roomConfig = roomConfig
  5278  	builder.roomConfigFlag = true
  5279  	return builder
  5280  }
  5281  
  5282  func (builder *SetRoomConfigPathReqBodyBuilder) Build() (*SetRoomConfigReqBody, error) {
  5283  	req := &SetRoomConfigReqBody{}
  5284  	if builder.scopeFlag {
  5285  		req.Scope = &builder.scope
  5286  	}
  5287  	if builder.countryIdFlag {
  5288  		req.CountryId = &builder.countryId
  5289  	}
  5290  	if builder.districtIdFlag {
  5291  		req.DistrictId = &builder.districtId
  5292  	}
  5293  	if builder.buildingIdFlag {
  5294  		req.BuildingId = &builder.buildingId
  5295  	}
  5296  	if builder.floorNameFlag {
  5297  		req.FloorName = &builder.floorName
  5298  	}
  5299  	if builder.roomIdFlag {
  5300  		req.RoomId = &builder.roomId
  5301  	}
  5302  	if builder.roomConfigFlag {
  5303  		req.RoomConfig = builder.roomConfig
  5304  	}
  5305  	return req, nil
  5306  }
  5307  
  5308  type SetRoomConfigReqBuilder struct {
  5309  	apiReq *larkcore.ApiReq
  5310  	body   *SetRoomConfigReqBody
  5311  }
  5312  
  5313  func NewSetRoomConfigReqBuilder() *SetRoomConfigReqBuilder {
  5314  	builder := &SetRoomConfigReqBuilder{}
  5315  	builder.apiReq = &larkcore.ApiReq{
  5316  		PathParams:  larkcore.PathParams{},
  5317  		QueryParams: larkcore.QueryParams{},
  5318  	}
  5319  	return builder
  5320  }
  5321  
  5322  // 此次调用中使用的用户ID的类型,默认使用open_id可不填
  5323  //
  5324  // 示例值:
  5325  func (builder *SetRoomConfigReqBuilder) UserIdType(userIdType string) *SetRoomConfigReqBuilder {
  5326  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  5327  	return builder
  5328  }
  5329  
  5330  // 设置一个范围内的会议室配置。
  5331  func (builder *SetRoomConfigReqBuilder) Body(body *SetRoomConfigReqBody) *SetRoomConfigReqBuilder {
  5332  	builder.body = body
  5333  	return builder
  5334  }
  5335  
  5336  func (builder *SetRoomConfigReqBuilder) Build() *SetRoomConfigReq {
  5337  	req := &SetRoomConfigReq{}
  5338  	req.apiReq = &larkcore.ApiReq{}
  5339  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  5340  	req.apiReq.Body = builder.body
  5341  	return req
  5342  }
  5343  
  5344  type SetRoomConfigReqBody struct {
  5345  	Scope      *int        `json:"scope,omitempty"`       // 设置节点范围
  5346  	CountryId  *string     `json:"country_id,omitempty"`  // 国家/地区ID scope为2,3时需要此参数
  5347  	DistrictId *string     `json:"district_id,omitempty"` // 城市ID scope为3时需要此参数
  5348  	BuildingId *string     `json:"building_id,omitempty"` // 建筑ID scope为4,5时需要此参数
  5349  	FloorName  *string     `json:"floor_name,omitempty"`  // 楼层 scope为5时需要此参数
  5350  	RoomId     *string     `json:"room_id,omitempty"`     // 会议室ID scope为6时需要此参数
  5351  	RoomConfig *RoomConfig `json:"room_config,omitempty"` // 会议室设置
  5352  }
  5353  
  5354  type SetRoomConfigReq struct {
  5355  	apiReq *larkcore.ApiReq
  5356  	Body   *SetRoomConfigReqBody `body:""`
  5357  }
  5358  
  5359  type SetRoomConfigResp struct {
  5360  	*larkcore.ApiResp `json:"-"`
  5361  	larkcore.CodeError
  5362  }
  5363  
  5364  func (resp *SetRoomConfigResp) Success() bool {
  5365  	return resp.Code == 0
  5366  }
  5367  
  5368  type P2MeetingJoinMeetingV1Data struct {
  5369  	Meeting  *MeetingEventMeeting `json:"meeting,omitempty"`  // 会议数据
  5370  	Operator *MeetingEventUser    `json:"operator,omitempty"` // 事件操作人
  5371  }
  5372  
  5373  type P2MeetingJoinMeetingV1 struct {
  5374  	*larkevent.EventV2Base                             // 事件基础数据
  5375  	*larkevent.EventReq                                // 请求原生数据
  5376  	Event                  *P2MeetingJoinMeetingV1Data `json:"event"` // 事件内容
  5377  }
  5378  
  5379  func (m *P2MeetingJoinMeetingV1) RawReq(req *larkevent.EventReq) {
  5380  	m.EventReq = req
  5381  }
  5382  
  5383  type P2MeetingLeaveMeetingV1Data struct {
  5384  	Meeting     *MeetingEventMeeting `json:"meeting,omitempty"`      // 会议数据
  5385  	Operator    *MeetingEventUser    `json:"operator,omitempty"`     // 事件操作人
  5386  	LeaveReason *int                 `json:"leave_reason,omitempty"` // 离开会议原因
  5387  }
  5388  
  5389  type P2MeetingLeaveMeetingV1 struct {
  5390  	*larkevent.EventV2Base                              // 事件基础数据
  5391  	*larkevent.EventReq                                 // 请求原生数据
  5392  	Event                  *P2MeetingLeaveMeetingV1Data `json:"event"` // 事件内容
  5393  }
  5394  
  5395  func (m *P2MeetingLeaveMeetingV1) RawReq(req *larkevent.EventReq) {
  5396  	m.EventReq = req
  5397  }
  5398  
  5399  type P2MeetingEndedV1Data struct {
  5400  	Meeting  *MeetingEventMeeting `json:"meeting,omitempty"`  // 会议数据
  5401  	Operator *MeetingEventUser    `json:"operator,omitempty"` // 事件操作人
  5402  }
  5403  
  5404  type P2MeetingEndedV1 struct {
  5405  	*larkevent.EventV2Base                       // 事件基础数据
  5406  	*larkevent.EventReq                          // 请求原生数据
  5407  	Event                  *P2MeetingEndedV1Data `json:"event"` // 事件内容
  5408  }
  5409  
  5410  func (m *P2MeetingEndedV1) RawReq(req *larkevent.EventReq) {
  5411  	m.EventReq = req
  5412  }
  5413  
  5414  type P2MeetingStartedV1Data struct {
  5415  	Meeting  *MeetingEventMeeting `json:"meeting,omitempty"`  // 会议数据
  5416  	Operator *MeetingEventUser    `json:"operator,omitempty"` // 事件操作人
  5417  }
  5418  
  5419  type P2MeetingStartedV1 struct {
  5420  	*larkevent.EventV2Base                         // 事件基础数据
  5421  	*larkevent.EventReq                            // 请求原生数据
  5422  	Event                  *P2MeetingStartedV1Data `json:"event"` // 事件内容
  5423  }
  5424  
  5425  func (m *P2MeetingStartedV1) RawReq(req *larkevent.EventReq) {
  5426  	m.EventReq = req
  5427  }
  5428  
  5429  type P2MeetingRecordingEndedV1Data struct {
  5430  	Meeting  *MeetingEventMeeting `json:"meeting,omitempty"`  // 会议数据
  5431  	Operator *MeetingEventUser    `json:"operator,omitempty"` // 事件操作人
  5432  }
  5433  
  5434  type P2MeetingRecordingEndedV1 struct {
  5435  	*larkevent.EventV2Base                                // 事件基础数据
  5436  	*larkevent.EventReq                                   // 请求原生数据
  5437  	Event                  *P2MeetingRecordingEndedV1Data `json:"event"` // 事件内容
  5438  }
  5439  
  5440  func (m *P2MeetingRecordingEndedV1) RawReq(req *larkevent.EventReq) {
  5441  	m.EventReq = req
  5442  }
  5443  
  5444  type P2MeetingRecordingReadyV1Data struct {
  5445  	Meeting  *MeetingEventMeeting `json:"meeting,omitempty"`  // 会议数据
  5446  	Url      *string              `json:"url,omitempty"`      // 会议录制链接
  5447  	Duration *string              `json:"duration,omitempty"` // 录制总时长(单位msec)
  5448  }
  5449  
  5450  type P2MeetingRecordingReadyV1 struct {
  5451  	*larkevent.EventV2Base                                // 事件基础数据
  5452  	*larkevent.EventReq                                   // 请求原生数据
  5453  	Event                  *P2MeetingRecordingReadyV1Data `json:"event"` // 事件内容
  5454  }
  5455  
  5456  func (m *P2MeetingRecordingReadyV1) RawReq(req *larkevent.EventReq) {
  5457  	m.EventReq = req
  5458  }
  5459  
  5460  type P2MeetingRecordingStartedV1Data struct {
  5461  	Meeting  *MeetingEventMeeting `json:"meeting,omitempty"`  // 会议数据
  5462  	Operator *MeetingEventUser    `json:"operator,omitempty"` // 事件操作人
  5463  }
  5464  
  5465  type P2MeetingRecordingStartedV1 struct {
  5466  	*larkevent.EventV2Base                                  // 事件基础数据
  5467  	*larkevent.EventReq                                     // 请求原生数据
  5468  	Event                  *P2MeetingRecordingStartedV1Data `json:"event"` // 事件内容
  5469  }
  5470  
  5471  func (m *P2MeetingRecordingStartedV1) RawReq(req *larkevent.EventReq) {
  5472  	m.EventReq = req
  5473  }
  5474  
  5475  type P2MeetingShareEndedV1Data struct {
  5476  	Meeting  *MeetingEventMeeting `json:"meeting,omitempty"`  // 会议数据
  5477  	Operator *MeetingEventUser    `json:"operator,omitempty"` // 事件操作人
  5478  }
  5479  
  5480  type P2MeetingShareEndedV1 struct {
  5481  	*larkevent.EventV2Base                            // 事件基础数据
  5482  	*larkevent.EventReq                               // 请求原生数据
  5483  	Event                  *P2MeetingShareEndedV1Data `json:"event"` // 事件内容
  5484  }
  5485  
  5486  func (m *P2MeetingShareEndedV1) RawReq(req *larkevent.EventReq) {
  5487  	m.EventReq = req
  5488  }
  5489  
  5490  type P2MeetingShareStartedV1Data struct {
  5491  	Meeting  *MeetingEventMeeting `json:"meeting,omitempty"`  // 会议数据
  5492  	Operator *MeetingEventUser    `json:"operator,omitempty"` // 事件操作人
  5493  }
  5494  
  5495  type P2MeetingShareStartedV1 struct {
  5496  	*larkevent.EventV2Base                              // 事件基础数据
  5497  	*larkevent.EventReq                                 // 请求原生数据
  5498  	Event                  *P2MeetingShareStartedV1Data `json:"event"` // 事件内容
  5499  }
  5500  
  5501  func (m *P2MeetingShareStartedV1) RawReq(req *larkevent.EventReq) {
  5502  	m.EventReq = req
  5503  }
  5504  
  5505  type ListByNoMeetingIterator struct {
  5506  	nextPageToken *string
  5507  	items         []*Meeting
  5508  	index         int
  5509  	limit         int
  5510  	ctx           context.Context
  5511  	req           *ListByNoMeetingReq
  5512  	listFunc      func(ctx context.Context, req *ListByNoMeetingReq, options ...larkcore.RequestOptionFunc) (*ListByNoMeetingResp, error)
  5513  	options       []larkcore.RequestOptionFunc
  5514  	curlNum       int
  5515  }
  5516  
  5517  func (iterator *ListByNoMeetingIterator) Next() (bool, *Meeting, error) {
  5518  	// 达到最大量,则返回
  5519  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  5520  		return false, nil, nil
  5521  	}
  5522  
  5523  	// 为0则拉取数据
  5524  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  5525  		if iterator.index != 0 && iterator.nextPageToken == nil {
  5526  			return false, nil, nil
  5527  		}
  5528  		if iterator.nextPageToken != nil {
  5529  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  5530  		}
  5531  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  5532  		if err != nil {
  5533  			return false, nil, err
  5534  		}
  5535  
  5536  		if resp.Code != 0 {
  5537  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  5538  		}
  5539  
  5540  		if len(resp.Data.MeetingBriefs) == 0 {
  5541  			return false, nil, nil
  5542  		}
  5543  
  5544  		iterator.nextPageToken = resp.Data.PageToken
  5545  		iterator.items = resp.Data.MeetingBriefs
  5546  		iterator.index = 0
  5547  	}
  5548  
  5549  	block := iterator.items[iterator.index]
  5550  	iterator.index++
  5551  	iterator.curlNum++
  5552  	return true, block, nil
  5553  }
  5554  
  5555  func (iterator *ListByNoMeetingIterator) NextPageToken() *string {
  5556  	return iterator.nextPageToken
  5557  }