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

     1  // Package im 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 larkim
    15  
    16  import (
    17  	"io"
    18  
    19  	"bytes"
    20  
    21  	"io/ioutil"
    22  
    23  	"fmt"
    24  
    25  	"context"
    26  	"errors"
    27  
    28  	"gitee.com/larksuite/oapi-sdk-go/v3/event"
    29  
    30  	"gitee.com/larksuite/oapi-sdk-go/v3/core"
    31  )
    32  
    33  const (
    34  	UserIdTypeUserId  = "user_id"  // 以user_id来识别用户
    35  	UserIdTypeUnionId = "union_id" // 以union_id来识别用户
    36  	UserIdTypeOpenId  = "open_id"  // 以open_id来识别用户
    37  )
    38  
    39  const (
    40  	UserIdTypeGetChatUserId  = "user_id"  // 以user_id来识别用户
    41  	UserIdTypeGetChatUnionId = "union_id" // 以union_id来识别用户
    42  	UserIdTypeGetChatOpenId  = "open_id"  // 以open_id来识别用户
    43  )
    44  
    45  const (
    46  	UserIdTypeListChatUserId  = "user_id"  // 以user_id来识别用户
    47  	UserIdTypeListChatUnionId = "union_id" // 以union_id来识别用户
    48  	UserIdTypeListChatOpenId  = "open_id"  // 以open_id来识别用户
    49  )
    50  
    51  const (
    52  	UserIdTypeSearchChatUserId  = "user_id"  // 以user_id来识别用户
    53  	UserIdTypeSearchChatUnionId = "union_id" // 以union_id来识别用户
    54  	UserIdTypeSearchChatOpenId  = "open_id"  // 以open_id来识别用户
    55  )
    56  
    57  const (
    58  	UserIdTypeUpdateChatUserId  = "user_id"  // 以user_id来识别用户
    59  	UserIdTypeUpdateChatUnionId = "union_id" // 以union_id来识别用户
    60  	UserIdTypeUpdateChatOpenId  = "open_id"  // 以open_id来识别用户
    61  )
    62  
    63  const (
    64  	UserIdTypeGetChatAnnouncementUserId  = "user_id"  // 以user_id来识别用户
    65  	UserIdTypeGetChatAnnouncementUnionId = "union_id" // 以union_id来识别用户
    66  	UserIdTypeGetChatAnnouncementOpenId  = "open_id"  // 以open_id来识别用户
    67  )
    68  
    69  const (
    70  	MemberIdTypeUserId  = "user_id"  // 以user_id来识别成员
    71  	MemberIdTypeUnionId = "union_id" // 以union_id来识别成员
    72  	MemberIdTypeOpenId  = "open_id"  // 以open_id来识别成员
    73  	MemberIdTypeAppId   = "app_id"   // 以app_id来识别成员
    74  )
    75  
    76  const (
    77  	MemberIdTypeDeleteManagersChatManagersUserId  = "user_id"  // 以user_id来识别成员
    78  	MemberIdTypeDeleteManagersChatManagersUnionId = "union_id" // 以union_id来识别成员
    79  	MemberIdTypeDeleteManagersChatManagersOpenId  = "open_id"  // 以open_id来识别成员
    80  	MemberIdTypeDeleteManagersChatManagersAppId   = "app_id"   // 以app_id来识别成员
    81  )
    82  
    83  const (
    84  	MemberIdTypeCreateChatMembersUserId  = "user_id"  // 以user_id来识别成员
    85  	MemberIdTypeCreateChatMembersUnionId = "union_id" // 以union_id来识别成员
    86  	MemberIdTypeCreateChatMembersOpenId  = "open_id"  // 以open_id来识别成员
    87  	MemberIdTypeCreateChatMembersAppId   = "app_id"   // 以app_id来识别成员
    88  )
    89  
    90  const (
    91  	SucceedType0 = 0 // 保持以前的策略,存在不可用的 ID 会拉群失败,返回错误响应
    92  	SucceedType1 = 1 // 将可用 ID 全部拉入群,返回拉群成功的响应,并展示不可用的
    93  	SucceedType2 = 2 // 存在不可用的 ID 会拉群失败,返回错误响应,并展示出不可用的 ID
    94  
    95  )
    96  
    97  const (
    98  	MemberIdTypeDeleteChatMembersUserId  = "user_id"  // 以user_id来识别成员
    99  	MemberIdTypeDeleteChatMembersUnionId = "union_id" // 以union_id来识别成员
   100  	MemberIdTypeDeleteChatMembersOpenId  = "open_id"  // 以open_id来识别成员
   101  	MemberIdTypeDeleteChatMembersAppId   = "app_id"   // 以app_id来识别成员
   102  )
   103  
   104  const (
   105  	MemberIdTypeGetChatMembersUserId  = "user_id"  // 以user_id来识别成员
   106  	MemberIdTypeGetChatMembersUnionId = "union_id" // 以union_id来识别成员
   107  	MemberIdTypeGetChatMembersOpenId  = "open_id"  // 以open_id来识别成员
   108  )
   109  
   110  const (
   111  	UserIdTypeGetChatModerationUserId  = "user_id"  // 以user_id来识别用户
   112  	UserIdTypeGetChatModerationUnionId = "union_id" // 以union_id来识别用户
   113  	UserIdTypeGetChatModerationOpenId  = "open_id"  // 以open_id来识别用户
   114  )
   115  
   116  const (
   117  	UserIdTypeUpdateChatModerationUserId  = "user_id"  // 以user_id来识别用户
   118  	UserIdTypeUpdateChatModerationUnionId = "union_id" // 以union_id来识别用户
   119  	UserIdTypeUpdateChatModerationOpenId  = "open_id"  // 以open_id来识别用户
   120  )
   121  
   122  const (
   123  	FileTypeOpus   = "opus"   // 上传opus音频文件
   124  	FileTypeMp4    = "mp4"    // 上传mp4视频文件
   125  	FileTypePdf    = "pdf"    // 上传pdf格式文件
   126  	FileTypeDoc    = "doc"    // 上传doc格式文件
   127  	FileTypeXls    = "xls"    // 上传xls格式文件
   128  	FileTypePpt    = "ppt"    // 上传ppt格式文件
   129  	FileTypeStream = "stream" // 上传stream格式文件
   130  )
   131  
   132  const (
   133  	ImageTypeMessage = "message" // 用于发送消息
   134  	ImageTypeAvatar  = "avatar"  // 用于设置头像
   135  )
   136  
   137  const (
   138  	ReceiveIdTypeOpenId  = "open_id"  // 以open_id来识别用户
   139  	ReceiveIdTypeUserId  = "user_id"  // 以user_id来识别用户
   140  	ReceiveIdTypeUnionId = "union_id" // 以union_id来识别用户
   141  	ReceiveIdTypeEmail   = "email"    // 以email来识别用户
   142  	ReceiveIdTypeChatId  = "chat_id"  // 以chat_id来识别群聊
   143  )
   144  
   145  const (
   146  	UserIdTypeReadUsersMessageUserId  = "user_id"  // 以user_id来识别用户
   147  	UserIdTypeReadUsersMessageUnionId = "union_id" // 以union_id来识别用户
   148  	UserIdTypeReadUsersMessageOpenId  = "open_id"  // 以open_id来识别用户
   149  )
   150  
   151  const (
   152  	UserIdTypeUrgentAppMessageUserId  = "user_id"  // 以user_id来识别用户
   153  	UserIdTypeUrgentAppMessageUnionId = "union_id" // 以union_id来识别用户
   154  	UserIdTypeUrgentAppMessageOpenId  = "open_id"  // 以open_id来识别用户
   155  )
   156  
   157  const (
   158  	UserIdTypeUrgentPhoneMessageUserId  = "user_id"  // 以user_id来识别用户
   159  	UserIdTypeUrgentPhoneMessageUnionId = "union_id" // 以union_id来识别用户
   160  	UserIdTypeUrgentPhoneMessageOpenId  = "open_id"  // 以open_id来识别用户
   161  )
   162  
   163  const (
   164  	UserIdTypeUrgentSmsMessageUserId  = "user_id"  // 以user_id来识别用户
   165  	UserIdTypeUrgentSmsMessageUnionId = "union_id" // 以union_id来识别用户
   166  	UserIdTypeUrgentSmsMessageOpenId  = "open_id"  // 以open_id来识别用户
   167  )
   168  
   169  const (
   170  	UserIdTypeListMessageReactionOpenId  = "open_id"  //
   171  	UserIdTypeListMessageReactionUnionId = "union_id" //
   172  	UserIdTypeListMessageReactionUserId  = "user_id"  //
   173  )
   174  
   175  type BatchMessage struct {
   176  	BatchMessageId      *string              `json:"batch_message_id,omitempty"`      // 批量发消息的批次号,代表某次批量发送消息的唯一标识
   177  	BatchSendProgress   *BatchSendProgress   `json:"batch_send_progress,omitempty"`   // 发送进度
   178  	BatchRecallProgress *BatchRecallProgress `json:"batch_recall_progress,omitempty"` // 撤回进度
   179  }
   180  
   181  type BatchMessageBuilder struct {
   182  	batchMessageId          string // 批量发消息的批次号,代表某次批量发送消息的唯一标识
   183  	batchMessageIdFlag      bool
   184  	batchSendProgress       *BatchSendProgress // 发送进度
   185  	batchSendProgressFlag   bool
   186  	batchRecallProgress     *BatchRecallProgress // 撤回进度
   187  	batchRecallProgressFlag bool
   188  }
   189  
   190  func NewBatchMessageBuilder() *BatchMessageBuilder {
   191  	builder := &BatchMessageBuilder{}
   192  	return builder
   193  }
   194  
   195  // 批量发消息的批次号,代表某次批量发送消息的唯一标识
   196  //
   197  // 示例值:bm_dc13264520392913993dd051dba21dcf
   198  func (builder *BatchMessageBuilder) BatchMessageId(batchMessageId string) *BatchMessageBuilder {
   199  	builder.batchMessageId = batchMessageId
   200  	builder.batchMessageIdFlag = true
   201  	return builder
   202  }
   203  
   204  // 发送进度
   205  //
   206  // 示例值:json结构
   207  func (builder *BatchMessageBuilder) BatchSendProgress(batchSendProgress *BatchSendProgress) *BatchMessageBuilder {
   208  	builder.batchSendProgress = batchSendProgress
   209  	builder.batchSendProgressFlag = true
   210  	return builder
   211  }
   212  
   213  // 撤回进度
   214  //
   215  // 示例值:json结构
   216  func (builder *BatchMessageBuilder) BatchRecallProgress(batchRecallProgress *BatchRecallProgress) *BatchMessageBuilder {
   217  	builder.batchRecallProgress = batchRecallProgress
   218  	builder.batchRecallProgressFlag = true
   219  	return builder
   220  }
   221  
   222  func (builder *BatchMessageBuilder) Build() *BatchMessage {
   223  	req := &BatchMessage{}
   224  	if builder.batchMessageIdFlag {
   225  		req.BatchMessageId = &builder.batchMessageId
   226  
   227  	}
   228  	if builder.batchSendProgressFlag {
   229  		req.BatchSendProgress = builder.batchSendProgress
   230  	}
   231  	if builder.batchRecallProgressFlag {
   232  		req.BatchRecallProgress = builder.batchRecallProgress
   233  	}
   234  	return req
   235  }
   236  
   237  type BatchMessageReadUser struct {
   238  	ReadCount  *string `json:"read_count,omitempty"`  // 已读的人数
   239  	TotalCount *string `json:"total_count,omitempty"` // 推送的总人数
   240  }
   241  
   242  type BatchMessageReadUserBuilder struct {
   243  	readCount      string // 已读的人数
   244  	readCountFlag  bool
   245  	totalCount     string // 推送的总人数
   246  	totalCountFlag bool
   247  }
   248  
   249  func NewBatchMessageReadUserBuilder() *BatchMessageReadUserBuilder {
   250  	builder := &BatchMessageReadUserBuilder{}
   251  	return builder
   252  }
   253  
   254  // 已读的人数
   255  //
   256  // 示例值:
   257  func (builder *BatchMessageReadUserBuilder) ReadCount(readCount string) *BatchMessageReadUserBuilder {
   258  	builder.readCount = readCount
   259  	builder.readCountFlag = true
   260  	return builder
   261  }
   262  
   263  // 推送的总人数
   264  //
   265  // 示例值:
   266  func (builder *BatchMessageReadUserBuilder) TotalCount(totalCount string) *BatchMessageReadUserBuilder {
   267  	builder.totalCount = totalCount
   268  	builder.totalCountFlag = true
   269  	return builder
   270  }
   271  
   272  func (builder *BatchMessageReadUserBuilder) Build() *BatchMessageReadUser {
   273  	req := &BatchMessageReadUser{}
   274  	if builder.readCountFlag {
   275  		req.ReadCount = &builder.readCount
   276  
   277  	}
   278  	if builder.totalCountFlag {
   279  		req.TotalCount = &builder.totalCount
   280  
   281  	}
   282  	return req
   283  }
   284  
   285  type BatchMessageRecallProgress struct {
   286  	Recall      *bool `json:"recall,omitempty"`       // 该条批量消息是否被执行过撤回操作
   287  	RecallCount *int  `json:"recall_count,omitempty"` // 已经成功撤回的消息数量
   288  }
   289  
   290  type BatchMessageRecallProgressBuilder struct {
   291  	recall          bool // 该条批量消息是否被执行过撤回操作
   292  	recallFlag      bool
   293  	recallCount     int // 已经成功撤回的消息数量
   294  	recallCountFlag bool
   295  }
   296  
   297  func NewBatchMessageRecallProgressBuilder() *BatchMessageRecallProgressBuilder {
   298  	builder := &BatchMessageRecallProgressBuilder{}
   299  	return builder
   300  }
   301  
   302  // 该条批量消息是否被执行过撤回操作
   303  //
   304  // 示例值:true
   305  func (builder *BatchMessageRecallProgressBuilder) Recall(recall bool) *BatchMessageRecallProgressBuilder {
   306  	builder.recall = recall
   307  	builder.recallFlag = true
   308  	return builder
   309  }
   310  
   311  // 已经成功撤回的消息数量
   312  //
   313  // 示例值:100
   314  func (builder *BatchMessageRecallProgressBuilder) RecallCount(recallCount int) *BatchMessageRecallProgressBuilder {
   315  	builder.recallCount = recallCount
   316  	builder.recallCountFlag = true
   317  	return builder
   318  }
   319  
   320  func (builder *BatchMessageRecallProgressBuilder) Build() *BatchMessageRecallProgress {
   321  	req := &BatchMessageRecallProgress{}
   322  	if builder.recallFlag {
   323  		req.Recall = &builder.recall
   324  
   325  	}
   326  	if builder.recallCountFlag {
   327  		req.RecallCount = &builder.recallCount
   328  
   329  	}
   330  	return req
   331  }
   332  
   333  type BatchMessageSendProgress struct {
   334  	ValidUserIdsCount   *int `json:"valid_user_ids_count,omitempty"`   // 批量请求中有效的userid数量(包含机器人不可见用户);;* 注: ;当valid_user_ids_count为0有两种情况:;1. 批量任务还没有开始被调度(请等待一会再调用该接口);2. 批量发送消息时传入的所有openIDs、employeID、departmentiIDs都不包含有效的用户
   335  	SuccessUserIdsCount *int `json:"success_user_ids_count,omitempty"` // 已经成功给用户发送成功的消息数量;;* 注:最终success_user_ids_count不一定等于valid_user_ids_count, 因为valid_user_ids_count包含了对机器人不可见的用户
   336  	ReadUserIdsCount    *int `json:"read_user_ids_count,omitempty"`    // 已读信息用户数量
   337  }
   338  
   339  type BatchMessageSendProgressBuilder struct {
   340  	validUserIdsCount       int // 批量请求中有效的userid数量(包含机器人不可见用户);;* 注: ;当valid_user_ids_count为0有两种情况:;1. 批量任务还没有开始被调度(请等待一会再调用该接口);2. 批量发送消息时传入的所有openIDs、employeID、departmentiIDs都不包含有效的用户
   341  	validUserIdsCountFlag   bool
   342  	successUserIdsCount     int // 已经成功给用户发送成功的消息数量;;* 注:最终success_user_ids_count不一定等于valid_user_ids_count, 因为valid_user_ids_count包含了对机器人不可见的用户
   343  	successUserIdsCountFlag bool
   344  	readUserIdsCount        int // 已读信息用户数量
   345  	readUserIdsCountFlag    bool
   346  }
   347  
   348  func NewBatchMessageSendProgressBuilder() *BatchMessageSendProgressBuilder {
   349  	builder := &BatchMessageSendProgressBuilder{}
   350  	return builder
   351  }
   352  
   353  // 批量请求中有效的userid数量(包含机器人不可见用户);;* 注: ;当valid_user_ids_count为0有两种情况:;1. 批量任务还没有开始被调度(请等待一会再调用该接口);2. 批量发送消息时传入的所有openIDs、employeID、departmentiIDs都不包含有效的用户
   354  //
   355  // 示例值:204
   356  func (builder *BatchMessageSendProgressBuilder) ValidUserIdsCount(validUserIdsCount int) *BatchMessageSendProgressBuilder {
   357  	builder.validUserIdsCount = validUserIdsCount
   358  	builder.validUserIdsCountFlag = true
   359  	return builder
   360  }
   361  
   362  // 已经成功给用户发送成功的消息数量;;* 注:最终success_user_ids_count不一定等于valid_user_ids_count, 因为valid_user_ids_count包含了对机器人不可见的用户
   363  //
   364  // 示例值:200
   365  func (builder *BatchMessageSendProgressBuilder) SuccessUserIdsCount(successUserIdsCount int) *BatchMessageSendProgressBuilder {
   366  	builder.successUserIdsCount = successUserIdsCount
   367  	builder.successUserIdsCountFlag = true
   368  	return builder
   369  }
   370  
   371  // 已读信息用户数量
   372  //
   373  // 示例值:150
   374  func (builder *BatchMessageSendProgressBuilder) ReadUserIdsCount(readUserIdsCount int) *BatchMessageSendProgressBuilder {
   375  	builder.readUserIdsCount = readUserIdsCount
   376  	builder.readUserIdsCountFlag = true
   377  	return builder
   378  }
   379  
   380  func (builder *BatchMessageSendProgressBuilder) Build() *BatchMessageSendProgress {
   381  	req := &BatchMessageSendProgress{}
   382  	if builder.validUserIdsCountFlag {
   383  		req.ValidUserIdsCount = &builder.validUserIdsCount
   384  
   385  	}
   386  	if builder.successUserIdsCountFlag {
   387  		req.SuccessUserIdsCount = &builder.successUserIdsCount
   388  
   389  	}
   390  	if builder.readUserIdsCountFlag {
   391  		req.ReadUserIdsCount = &builder.readUserIdsCount
   392  
   393  	}
   394  	return req
   395  }
   396  
   397  type BatchRecallProgress struct {
   398  	RecallCount      *string `json:"recall_count,omitempty"`       // 撤回成功的消息条数
   399  	TotalRecallCount *string `json:"total_recall_count,omitempty"` // 计划撤回的消息条数
   400  }
   401  
   402  type BatchRecallProgressBuilder struct {
   403  	recallCount          string // 撤回成功的消息条数
   404  	recallCountFlag      bool
   405  	totalRecallCount     string // 计划撤回的消息条数
   406  	totalRecallCountFlag bool
   407  }
   408  
   409  func NewBatchRecallProgressBuilder() *BatchRecallProgressBuilder {
   410  	builder := &BatchRecallProgressBuilder{}
   411  	return builder
   412  }
   413  
   414  // 撤回成功的消息条数
   415  //
   416  // 示例值:
   417  func (builder *BatchRecallProgressBuilder) RecallCount(recallCount string) *BatchRecallProgressBuilder {
   418  	builder.recallCount = recallCount
   419  	builder.recallCountFlag = true
   420  	return builder
   421  }
   422  
   423  // 计划撤回的消息条数
   424  //
   425  // 示例值:
   426  func (builder *BatchRecallProgressBuilder) TotalRecallCount(totalRecallCount string) *BatchRecallProgressBuilder {
   427  	builder.totalRecallCount = totalRecallCount
   428  	builder.totalRecallCountFlag = true
   429  	return builder
   430  }
   431  
   432  func (builder *BatchRecallProgressBuilder) Build() *BatchRecallProgress {
   433  	req := &BatchRecallProgress{}
   434  	if builder.recallCountFlag {
   435  		req.RecallCount = &builder.recallCount
   436  
   437  	}
   438  	if builder.totalRecallCountFlag {
   439  		req.TotalRecallCount = &builder.totalRecallCount
   440  
   441  	}
   442  	return req
   443  }
   444  
   445  type BatchSendProgress struct {
   446  	SendCount      *string `json:"send_count,omitempty"`       // 发送成功的消息条数
   447  	TotalSendCount *string `json:"total_send_count,omitempty"` // 总的计划发送的消息条数
   448  }
   449  
   450  type BatchSendProgressBuilder struct {
   451  	sendCount          string // 发送成功的消息条数
   452  	sendCountFlag      bool
   453  	totalSendCount     string // 总的计划发送的消息条数
   454  	totalSendCountFlag bool
   455  }
   456  
   457  func NewBatchSendProgressBuilder() *BatchSendProgressBuilder {
   458  	builder := &BatchSendProgressBuilder{}
   459  	return builder
   460  }
   461  
   462  // 发送成功的消息条数
   463  //
   464  // 示例值:
   465  func (builder *BatchSendProgressBuilder) SendCount(sendCount string) *BatchSendProgressBuilder {
   466  	builder.sendCount = sendCount
   467  	builder.sendCountFlag = true
   468  	return builder
   469  }
   470  
   471  // 总的计划发送的消息条数
   472  //
   473  // 示例值:
   474  func (builder *BatchSendProgressBuilder) TotalSendCount(totalSendCount string) *BatchSendProgressBuilder {
   475  	builder.totalSendCount = totalSendCount
   476  	builder.totalSendCountFlag = true
   477  	return builder
   478  }
   479  
   480  func (builder *BatchSendProgressBuilder) Build() *BatchSendProgress {
   481  	req := &BatchSendProgress{}
   482  	if builder.sendCountFlag {
   483  		req.SendCount = &builder.sendCount
   484  
   485  	}
   486  	if builder.totalSendCountFlag {
   487  		req.TotalSendCount = &builder.totalSendCount
   488  
   489  	}
   490  	return req
   491  }
   492  
   493  type Chat struct {
   494  	ChatId         *string    `json:"chat_id,omitempty"`           // chat_id of the conversation
   495  	Avatar         *string    `json:"avatar,omitempty"`            // avatar of the conversation
   496  	Name           *string    `json:"name,omitempty"`              // name of the conversation
   497  	Description    *string    `json:"description,omitempty"`       // description of the conversation
   498  	I18nNames      *I18nNames `json:"i18n_names,omitempty"`        // i18_names of the conversation
   499  	OnlyOwnerAdd   *bool      `json:"only_owner_add,omitempty"`    // whether only the owner of the converation can add others
   500  	ShareAllowed   *bool      `json:"share_allowed,omitempty"`     // whether the converation can be shared
   501  	OnlyOwnerAtAll *bool      `json:"only_owner_at_all,omitempty"` // whether only the owner of the converation can @all
   502  	OnlyOwnerEdit  *bool      `json:"only_owner_edit,omitempty"`   // whether only the owner of the converation can edit the converation info
   503  	OwnerUserId    *string    `json:"owner_user_id,omitempty"`     // owner_id
   504  	Type           *string    `json:"type,omitempty"`              // type
   505  
   506  }
   507  
   508  type ChatBuilder struct {
   509  	chatId             string // chat_id of the conversation
   510  	chatIdFlag         bool
   511  	avatar             string // avatar of the conversation
   512  	avatarFlag         bool
   513  	name               string // name of the conversation
   514  	nameFlag           bool
   515  	description        string // description of the conversation
   516  	descriptionFlag    bool
   517  	i18nNames          *I18nNames // i18_names of the conversation
   518  	i18nNamesFlag      bool
   519  	onlyOwnerAdd       bool // whether only the owner of the converation can add others
   520  	onlyOwnerAddFlag   bool
   521  	shareAllowed       bool // whether the converation can be shared
   522  	shareAllowedFlag   bool
   523  	onlyOwnerAtAll     bool // whether only the owner of the converation can @all
   524  	onlyOwnerAtAllFlag bool
   525  	onlyOwnerEdit      bool // whether only the owner of the converation can edit the converation info
   526  	onlyOwnerEditFlag  bool
   527  	ownerUserId        string // owner_id
   528  	ownerUserIdFlag    bool
   529  	type_              string // type
   530  	typeFlag           bool
   531  }
   532  
   533  func NewChatBuilder() *ChatBuilder {
   534  	builder := &ChatBuilder{}
   535  	return builder
   536  }
   537  
   538  // chat_id of the conversation
   539  //
   540  // 示例值:
   541  func (builder *ChatBuilder) ChatId(chatId string) *ChatBuilder {
   542  	builder.chatId = chatId
   543  	builder.chatIdFlag = true
   544  	return builder
   545  }
   546  
   547  // avatar of the conversation
   548  //
   549  // 示例值:
   550  func (builder *ChatBuilder) Avatar(avatar string) *ChatBuilder {
   551  	builder.avatar = avatar
   552  	builder.avatarFlag = true
   553  	return builder
   554  }
   555  
   556  // name of the conversation
   557  //
   558  // 示例值:
   559  func (builder *ChatBuilder) Name(name string) *ChatBuilder {
   560  	builder.name = name
   561  	builder.nameFlag = true
   562  	return builder
   563  }
   564  
   565  // description of the conversation
   566  //
   567  // 示例值:
   568  func (builder *ChatBuilder) Description(description string) *ChatBuilder {
   569  	builder.description = description
   570  	builder.descriptionFlag = true
   571  	return builder
   572  }
   573  
   574  // i18_names of the conversation
   575  //
   576  // 示例值:
   577  func (builder *ChatBuilder) I18nNames(i18nNames *I18nNames) *ChatBuilder {
   578  	builder.i18nNames = i18nNames
   579  	builder.i18nNamesFlag = true
   580  	return builder
   581  }
   582  
   583  // whether only the owner of the converation can add others
   584  //
   585  // 示例值:
   586  func (builder *ChatBuilder) OnlyOwnerAdd(onlyOwnerAdd bool) *ChatBuilder {
   587  	builder.onlyOwnerAdd = onlyOwnerAdd
   588  	builder.onlyOwnerAddFlag = true
   589  	return builder
   590  }
   591  
   592  // whether the converation can be shared
   593  //
   594  // 示例值:
   595  func (builder *ChatBuilder) ShareAllowed(shareAllowed bool) *ChatBuilder {
   596  	builder.shareAllowed = shareAllowed
   597  	builder.shareAllowedFlag = true
   598  	return builder
   599  }
   600  
   601  // whether only the owner of the converation can @all
   602  //
   603  // 示例值:
   604  func (builder *ChatBuilder) OnlyOwnerAtAll(onlyOwnerAtAll bool) *ChatBuilder {
   605  	builder.onlyOwnerAtAll = onlyOwnerAtAll
   606  	builder.onlyOwnerAtAllFlag = true
   607  	return builder
   608  }
   609  
   610  // whether only the owner of the converation can edit the converation info
   611  //
   612  // 示例值:
   613  func (builder *ChatBuilder) OnlyOwnerEdit(onlyOwnerEdit bool) *ChatBuilder {
   614  	builder.onlyOwnerEdit = onlyOwnerEdit
   615  	builder.onlyOwnerEditFlag = true
   616  	return builder
   617  }
   618  
   619  // owner_id
   620  //
   621  // 示例值:
   622  func (builder *ChatBuilder) OwnerUserId(ownerUserId string) *ChatBuilder {
   623  	builder.ownerUserId = ownerUserId
   624  	builder.ownerUserIdFlag = true
   625  	return builder
   626  }
   627  
   628  // type
   629  //
   630  // 示例值:
   631  func (builder *ChatBuilder) Type(type_ string) *ChatBuilder {
   632  	builder.type_ = type_
   633  	builder.typeFlag = true
   634  	return builder
   635  }
   636  
   637  func (builder *ChatBuilder) Build() *Chat {
   638  	req := &Chat{}
   639  	if builder.chatIdFlag {
   640  		req.ChatId = &builder.chatId
   641  
   642  	}
   643  	if builder.avatarFlag {
   644  		req.Avatar = &builder.avatar
   645  
   646  	}
   647  	if builder.nameFlag {
   648  		req.Name = &builder.name
   649  
   650  	}
   651  	if builder.descriptionFlag {
   652  		req.Description = &builder.description
   653  
   654  	}
   655  	if builder.i18nNamesFlag {
   656  		req.I18nNames = builder.i18nNames
   657  	}
   658  	if builder.onlyOwnerAddFlag {
   659  		req.OnlyOwnerAdd = &builder.onlyOwnerAdd
   660  
   661  	}
   662  	if builder.shareAllowedFlag {
   663  		req.ShareAllowed = &builder.shareAllowed
   664  
   665  	}
   666  	if builder.onlyOwnerAtAllFlag {
   667  		req.OnlyOwnerAtAll = &builder.onlyOwnerAtAll
   668  
   669  	}
   670  	if builder.onlyOwnerEditFlag {
   671  		req.OnlyOwnerEdit = &builder.onlyOwnerEdit
   672  
   673  	}
   674  	if builder.ownerUserIdFlag {
   675  		req.OwnerUserId = &builder.ownerUserId
   676  
   677  	}
   678  	if builder.typeFlag {
   679  		req.Type = &builder.type_
   680  
   681  	}
   682  
   683  	return req
   684  }
   685  
   686  type ChatAnnouncement struct {
   687  }
   688  
   689  type ChatManagers struct {
   690  	ManagerId *string `json:"manager_id,omitempty"` // 群管理员ID
   691  }
   692  
   693  type ChatManagersBuilder struct {
   694  	managerId     string // 群管理员ID
   695  	managerIdFlag bool
   696  }
   697  
   698  func NewChatManagersBuilder() *ChatManagersBuilder {
   699  	builder := &ChatManagersBuilder{}
   700  	return builder
   701  }
   702  
   703  // 群管理员ID
   704  //
   705  // 示例值:
   706  func (builder *ChatManagersBuilder) ManagerId(managerId string) *ChatManagersBuilder {
   707  	builder.managerId = managerId
   708  	builder.managerIdFlag = true
   709  	return builder
   710  }
   711  
   712  func (builder *ChatManagersBuilder) Build() *ChatManagers {
   713  	req := &ChatManagers{}
   714  	if builder.managerIdFlag {
   715  		req.ManagerId = &builder.managerId
   716  
   717  	}
   718  	return req
   719  }
   720  
   721  type ChatMember struct {
   722  	UserId *string `json:"user_id,omitempty"` // user_id
   723  }
   724  
   725  type ChatMemberBuilder struct {
   726  	userId     string // user_id
   727  	userIdFlag bool
   728  }
   729  
   730  func NewChatMemberBuilder() *ChatMemberBuilder {
   731  	builder := &ChatMemberBuilder{}
   732  	return builder
   733  }
   734  
   735  // user_id
   736  //
   737  // 示例值:
   738  func (builder *ChatMemberBuilder) UserId(userId string) *ChatMemberBuilder {
   739  	builder.userId = userId
   740  	builder.userIdFlag = true
   741  	return builder
   742  }
   743  
   744  func (builder *ChatMemberBuilder) Build() *ChatMember {
   745  	req := &ChatMember{}
   746  	if builder.userIdFlag {
   747  		req.UserId = &builder.userId
   748  
   749  	}
   750  	return req
   751  }
   752  
   753  type ChatMemberBot struct {
   754  	BotId *string `json:"bot_id,omitempty"` // bot_id
   755  }
   756  
   757  type ChatMemberBotBuilder struct {
   758  	botId     string // bot_id
   759  	botIdFlag bool
   760  }
   761  
   762  func NewChatMemberBotBuilder() *ChatMemberBotBuilder {
   763  	builder := &ChatMemberBotBuilder{}
   764  	return builder
   765  }
   766  
   767  // bot_id
   768  //
   769  // 示例值:
   770  func (builder *ChatMemberBotBuilder) BotId(botId string) *ChatMemberBotBuilder {
   771  	builder.botId = botId
   772  	builder.botIdFlag = true
   773  	return builder
   774  }
   775  
   776  func (builder *ChatMemberBotBuilder) Build() *ChatMemberBot {
   777  	req := &ChatMemberBot{}
   778  	if builder.botIdFlag {
   779  		req.BotId = &builder.botId
   780  
   781  	}
   782  	return req
   783  }
   784  
   785  type ChatMemberUser struct {
   786  	Name      *string `json:"name,omitempty"`       // 用户名字
   787  	TenantKey *string `json:"tenant_key,omitempty"` // 租户 Key
   788  	UserId    *UserId `json:"user_id,omitempty"`    // 用户 ID
   789  }
   790  
   791  type ChatMemberUserBuilder struct {
   792  	name          string // 用户名字
   793  	nameFlag      bool
   794  	tenantKey     string // 租户 Key
   795  	tenantKeyFlag bool
   796  	userId        *UserId // 用户 ID
   797  	userIdFlag    bool
   798  }
   799  
   800  func NewChatMemberUserBuilder() *ChatMemberUserBuilder {
   801  	builder := &ChatMemberUserBuilder{}
   802  	return builder
   803  }
   804  
   805  // 用户名字
   806  //
   807  // 示例值:user name
   808  func (builder *ChatMemberUserBuilder) Name(name string) *ChatMemberUserBuilder {
   809  	builder.name = name
   810  	builder.nameFlag = true
   811  	return builder
   812  }
   813  
   814  // 租户 Key
   815  //
   816  // 示例值:3774yuu3743
   817  func (builder *ChatMemberUserBuilder) TenantKey(tenantKey string) *ChatMemberUserBuilder {
   818  	builder.tenantKey = tenantKey
   819  	builder.tenantKeyFlag = true
   820  	return builder
   821  }
   822  
   823  // 用户 ID
   824  //
   825  // 示例值:
   826  func (builder *ChatMemberUserBuilder) UserId(userId *UserId) *ChatMemberUserBuilder {
   827  	builder.userId = userId
   828  	builder.userIdFlag = true
   829  	return builder
   830  }
   831  
   832  func (builder *ChatMemberUserBuilder) Build() *ChatMemberUser {
   833  	req := &ChatMemberUser{}
   834  	if builder.nameFlag {
   835  		req.Name = &builder.name
   836  
   837  	}
   838  	if builder.tenantKeyFlag {
   839  		req.TenantKey = &builder.tenantKey
   840  
   841  	}
   842  	if builder.userIdFlag {
   843  		req.UserId = builder.userId
   844  	}
   845  	return req
   846  }
   847  
   848  type ChatMembers struct {
   849  	UserId *string `json:"user_id,omitempty"` // user_id
   850  }
   851  
   852  type ChatMembersBuilder struct {
   853  	userId     string // user_id
   854  	userIdFlag bool
   855  }
   856  
   857  func NewChatMembersBuilder() *ChatMembersBuilder {
   858  	builder := &ChatMembersBuilder{}
   859  	return builder
   860  }
   861  
   862  // user_id
   863  //
   864  // 示例值:
   865  func (builder *ChatMembersBuilder) UserId(userId string) *ChatMembersBuilder {
   866  	builder.userId = userId
   867  	builder.userIdFlag = true
   868  	return builder
   869  }
   870  
   871  func (builder *ChatMembersBuilder) Build() *ChatMembers {
   872  	req := &ChatMembers{}
   873  	if builder.userIdFlag {
   874  		req.UserId = &builder.userId
   875  
   876  	}
   877  	return req
   878  }
   879  
   880  type ChatTab struct {
   881  	TabId      *string         `json:"tab_id,omitempty"`      // TabID
   882  	TabName    *string         `json:"tab_name,omitempty"`    // Tab名称
   883  	TabType    *string         `json:"tab_type,omitempty"`    // Tab类型
   884  	TabContent *ChatTabContent `json:"tab_content,omitempty"` // Tab内容
   885  }
   886  
   887  type ChatTabBuilder struct {
   888  	tabId          string // TabID
   889  	tabIdFlag      bool
   890  	tabName        string // Tab名称
   891  	tabNameFlag    bool
   892  	tabType        string // Tab类型
   893  	tabTypeFlag    bool
   894  	tabContent     *ChatTabContent // Tab内容
   895  	tabContentFlag bool
   896  }
   897  
   898  func NewChatTabBuilder() *ChatTabBuilder {
   899  	builder := &ChatTabBuilder{}
   900  	return builder
   901  }
   902  
   903  // TabID
   904  //
   905  // 示例值:7101214603622940671
   906  func (builder *ChatTabBuilder) TabId(tabId string) *ChatTabBuilder {
   907  	builder.tabId = tabId
   908  	builder.tabIdFlag = true
   909  	return builder
   910  }
   911  
   912  // Tab名称
   913  //
   914  // 示例值:文档
   915  func (builder *ChatTabBuilder) TabName(tabName string) *ChatTabBuilder {
   916  	builder.tabName = tabName
   917  	builder.tabNameFlag = true
   918  	return builder
   919  }
   920  
   921  // Tab类型
   922  //
   923  // 示例值:doc
   924  func (builder *ChatTabBuilder) TabType(tabType string) *ChatTabBuilder {
   925  	builder.tabType = tabType
   926  	builder.tabTypeFlag = true
   927  	return builder
   928  }
   929  
   930  // Tab内容
   931  //
   932  // 示例值:
   933  func (builder *ChatTabBuilder) TabContent(tabContent *ChatTabContent) *ChatTabBuilder {
   934  	builder.tabContent = tabContent
   935  	builder.tabContentFlag = true
   936  	return builder
   937  }
   938  
   939  func (builder *ChatTabBuilder) Build() *ChatTab {
   940  	req := &ChatTab{}
   941  	if builder.tabIdFlag {
   942  		req.TabId = &builder.tabId
   943  
   944  	}
   945  	if builder.tabNameFlag {
   946  		req.TabName = &builder.tabName
   947  
   948  	}
   949  	if builder.tabTypeFlag {
   950  		req.TabType = &builder.tabType
   951  
   952  	}
   953  	if builder.tabContentFlag {
   954  		req.TabContent = builder.tabContent
   955  	}
   956  	return req
   957  }
   958  
   959  type ChatTopNotice struct {
   960  	ActionType *string `json:"action_type,omitempty"` // 置顶的类型
   961  	MessageId  *string `json:"message_id,omitempty"`  // 消息id
   962  }
   963  
   964  type ChatTopNoticeBuilder struct {
   965  	actionType     string // 置顶的类型
   966  	actionTypeFlag bool
   967  	messageId      string // 消息id
   968  	messageIdFlag  bool
   969  }
   970  
   971  func NewChatTopNoticeBuilder() *ChatTopNoticeBuilder {
   972  	builder := &ChatTopNoticeBuilder{}
   973  	return builder
   974  }
   975  
   976  // 置顶的类型
   977  //
   978  // 示例值:1
   979  func (builder *ChatTopNoticeBuilder) ActionType(actionType string) *ChatTopNoticeBuilder {
   980  	builder.actionType = actionType
   981  	builder.actionTypeFlag = true
   982  	return builder
   983  }
   984  
   985  // 消息id
   986  //
   987  // 示例值:om_dc13264520392913993dd051dba21dcf
   988  func (builder *ChatTopNoticeBuilder) MessageId(messageId string) *ChatTopNoticeBuilder {
   989  	builder.messageId = messageId
   990  	builder.messageIdFlag = true
   991  	return builder
   992  }
   993  
   994  func (builder *ChatTopNoticeBuilder) Build() *ChatTopNotice {
   995  	req := &ChatTopNotice{}
   996  	if builder.actionTypeFlag {
   997  		req.ActionType = &builder.actionType
   998  
   999  	}
  1000  	if builder.messageIdFlag {
  1001  		req.MessageId = &builder.messageId
  1002  
  1003  	}
  1004  	return req
  1005  }
  1006  
  1007  type ChatChange struct {
  1008  	Avatar                 *string    `json:"avatar,omitempty"`                   // 群头像
  1009  	Name                   *string    `json:"name,omitempty"`                     // 群名称
  1010  	Description            *string    `json:"description,omitempty"`              // 群描述
  1011  	I18nNames              *I18nNames `json:"i18n_names,omitempty"`               // 群国际化名称
  1012  	AddMemberPermission    *string    `json:"add_member_permission,omitempty"`    // 加人入群权限(all_members/only_owner/unknown)
  1013  	ShareCardPermission    *string    `json:"share_card_permission,omitempty"`    // 群分享权限(allowed/not_allowed/unknown)
  1014  	AtAllPermission        *string    `json:"at_all_permission,omitempty"`        // at 所有人权限(all_members/only_owner/unknown)
  1015  	EditPermission         *string    `json:"edit_permission,omitempty"`          // 群编辑权限(all_members/only_owner/unknown)
  1016  	MembershipApproval     *string    `json:"membership_approval,omitempty"`      // 加群审批(no_approval_required/approval_required)
  1017  	JoinMessageVisibility  *string    `json:"join_message_visibility,omitempty"`  // 入群消息可见性(only_owner/all_members/not_anyone)
  1018  	LeaveMessageVisibility *string    `json:"leave_message_visibility,omitempty"` // 出群消息可见性(only_owner/all_members/not_anyone)
  1019  	ModerationPermission   *string    `json:"moderation_permission,omitempty"`    // 发言权限(all_members/only_owner)
  1020  	OwnerId                *UserId    `json:"owner_id,omitempty"`                 // 用户 ID
  1021  
  1022  }
  1023  
  1024  type ChatChangeBuilder struct {
  1025  	avatar                     string // 群头像
  1026  	avatarFlag                 bool
  1027  	name                       string // 群名称
  1028  	nameFlag                   bool
  1029  	description                string // 群描述
  1030  	descriptionFlag            bool
  1031  	i18nNames                  *I18nNames // 群国际化名称
  1032  	i18nNamesFlag              bool
  1033  	addMemberPermission        string // 加人入群权限(all_members/only_owner/unknown)
  1034  	addMemberPermissionFlag    bool
  1035  	shareCardPermission        string // 群分享权限(allowed/not_allowed/unknown)
  1036  	shareCardPermissionFlag    bool
  1037  	atAllPermission            string // at 所有人权限(all_members/only_owner/unknown)
  1038  	atAllPermissionFlag        bool
  1039  	editPermission             string // 群编辑权限(all_members/only_owner/unknown)
  1040  	editPermissionFlag         bool
  1041  	membershipApproval         string // 加群审批(no_approval_required/approval_required)
  1042  	membershipApprovalFlag     bool
  1043  	joinMessageVisibility      string // 入群消息可见性(only_owner/all_members/not_anyone)
  1044  	joinMessageVisibilityFlag  bool
  1045  	leaveMessageVisibility     string // 出群消息可见性(only_owner/all_members/not_anyone)
  1046  	leaveMessageVisibilityFlag bool
  1047  	moderationPermission       string // 发言权限(all_members/only_owner)
  1048  	moderationPermissionFlag   bool
  1049  	ownerId                    *UserId // 用户 ID
  1050  	ownerIdFlag                bool
  1051  }
  1052  
  1053  func NewChatChangeBuilder() *ChatChangeBuilder {
  1054  	builder := &ChatChangeBuilder{}
  1055  	return builder
  1056  }
  1057  
  1058  // 群头像
  1059  //
  1060  // 示例值:default-avatar_0cda3662-875a-4354-94d2-83e7393c7123
  1061  func (builder *ChatChangeBuilder) Avatar(avatar string) *ChatChangeBuilder {
  1062  	builder.avatar = avatar
  1063  	builder.avatarFlag = true
  1064  	return builder
  1065  }
  1066  
  1067  // 群名称
  1068  //
  1069  // 示例值:群名称测试
  1070  func (builder *ChatChangeBuilder) Name(name string) *ChatChangeBuilder {
  1071  	builder.name = name
  1072  	builder.nameFlag = true
  1073  	return builder
  1074  }
  1075  
  1076  // 群描述
  1077  //
  1078  // 示例值:群描述测试
  1079  func (builder *ChatChangeBuilder) Description(description string) *ChatChangeBuilder {
  1080  	builder.description = description
  1081  	builder.descriptionFlag = true
  1082  	return builder
  1083  }
  1084  
  1085  // 群国际化名称
  1086  //
  1087  // 示例值:
  1088  func (builder *ChatChangeBuilder) I18nNames(i18nNames *I18nNames) *ChatChangeBuilder {
  1089  	builder.i18nNames = i18nNames
  1090  	builder.i18nNamesFlag = true
  1091  	return builder
  1092  }
  1093  
  1094  // 加人入群权限(all_members/only_owner/unknown)
  1095  //
  1096  // 示例值:all_members
  1097  func (builder *ChatChangeBuilder) AddMemberPermission(addMemberPermission string) *ChatChangeBuilder {
  1098  	builder.addMemberPermission = addMemberPermission
  1099  	builder.addMemberPermissionFlag = true
  1100  	return builder
  1101  }
  1102  
  1103  // 群分享权限(allowed/not_allowed/unknown)
  1104  //
  1105  // 示例值:allowed
  1106  func (builder *ChatChangeBuilder) ShareCardPermission(shareCardPermission string) *ChatChangeBuilder {
  1107  	builder.shareCardPermission = shareCardPermission
  1108  	builder.shareCardPermissionFlag = true
  1109  	return builder
  1110  }
  1111  
  1112  // at 所有人权限(all_members/only_owner/unknown)
  1113  //
  1114  // 示例值:only_owner
  1115  func (builder *ChatChangeBuilder) AtAllPermission(atAllPermission string) *ChatChangeBuilder {
  1116  	builder.atAllPermission = atAllPermission
  1117  	builder.atAllPermissionFlag = true
  1118  	return builder
  1119  }
  1120  
  1121  // 群编辑权限(all_members/only_owner/unknown)
  1122  //
  1123  // 示例值:all_members
  1124  func (builder *ChatChangeBuilder) EditPermission(editPermission string) *ChatChangeBuilder {
  1125  	builder.editPermission = editPermission
  1126  	builder.editPermissionFlag = true
  1127  	return builder
  1128  }
  1129  
  1130  // 加群审批(no_approval_required/approval_required)
  1131  //
  1132  // 示例值:approval_required
  1133  func (builder *ChatChangeBuilder) MembershipApproval(membershipApproval string) *ChatChangeBuilder {
  1134  	builder.membershipApproval = membershipApproval
  1135  	builder.membershipApprovalFlag = true
  1136  	return builder
  1137  }
  1138  
  1139  // 入群消息可见性(only_owner/all_members/not_anyone)
  1140  //
  1141  // 示例值:all_members
  1142  func (builder *ChatChangeBuilder) JoinMessageVisibility(joinMessageVisibility string) *ChatChangeBuilder {
  1143  	builder.joinMessageVisibility = joinMessageVisibility
  1144  	builder.joinMessageVisibilityFlag = true
  1145  	return builder
  1146  }
  1147  
  1148  // 出群消息可见性(only_owner/all_members/not_anyone)
  1149  //
  1150  // 示例值:all_members
  1151  func (builder *ChatChangeBuilder) LeaveMessageVisibility(leaveMessageVisibility string) *ChatChangeBuilder {
  1152  	builder.leaveMessageVisibility = leaveMessageVisibility
  1153  	builder.leaveMessageVisibilityFlag = true
  1154  	return builder
  1155  }
  1156  
  1157  // 发言权限(all_members/only_owner)
  1158  //
  1159  // 示例值:all_members
  1160  func (builder *ChatChangeBuilder) ModerationPermission(moderationPermission string) *ChatChangeBuilder {
  1161  	builder.moderationPermission = moderationPermission
  1162  	builder.moderationPermissionFlag = true
  1163  	return builder
  1164  }
  1165  
  1166  // 用户 ID
  1167  //
  1168  // 示例值:
  1169  func (builder *ChatChangeBuilder) OwnerId(ownerId *UserId) *ChatChangeBuilder {
  1170  	builder.ownerId = ownerId
  1171  	builder.ownerIdFlag = true
  1172  	return builder
  1173  }
  1174  
  1175  func (builder *ChatChangeBuilder) Build() *ChatChange {
  1176  	req := &ChatChange{}
  1177  	if builder.avatarFlag {
  1178  		req.Avatar = &builder.avatar
  1179  
  1180  	}
  1181  	if builder.nameFlag {
  1182  		req.Name = &builder.name
  1183  
  1184  	}
  1185  	if builder.descriptionFlag {
  1186  		req.Description = &builder.description
  1187  
  1188  	}
  1189  	if builder.i18nNamesFlag {
  1190  		req.I18nNames = builder.i18nNames
  1191  	}
  1192  	if builder.addMemberPermissionFlag {
  1193  		req.AddMemberPermission = &builder.addMemberPermission
  1194  
  1195  	}
  1196  	if builder.shareCardPermissionFlag {
  1197  		req.ShareCardPermission = &builder.shareCardPermission
  1198  
  1199  	}
  1200  	if builder.atAllPermissionFlag {
  1201  		req.AtAllPermission = &builder.atAllPermission
  1202  
  1203  	}
  1204  	if builder.editPermissionFlag {
  1205  		req.EditPermission = &builder.editPermission
  1206  
  1207  	}
  1208  	if builder.membershipApprovalFlag {
  1209  		req.MembershipApproval = &builder.membershipApproval
  1210  
  1211  	}
  1212  	if builder.joinMessageVisibilityFlag {
  1213  		req.JoinMessageVisibility = &builder.joinMessageVisibility
  1214  
  1215  	}
  1216  	if builder.leaveMessageVisibilityFlag {
  1217  		req.LeaveMessageVisibility = &builder.leaveMessageVisibility
  1218  
  1219  	}
  1220  	if builder.moderationPermissionFlag {
  1221  		req.ModerationPermission = &builder.moderationPermission
  1222  
  1223  	}
  1224  	if builder.ownerIdFlag {
  1225  		req.OwnerId = builder.ownerId
  1226  	}
  1227  
  1228  	return req
  1229  }
  1230  
  1231  type ChatTabContent struct {
  1232  	Url           *string `json:"url,omitempty"`            // URL类型
  1233  	Doc           *string `json:"doc,omitempty"`            // Doc链接
  1234  	MeetingMinute *string `json:"meeting_minute,omitempty"` // 会议纪要
  1235  }
  1236  
  1237  type ChatTabContentBuilder struct {
  1238  	url               string // URL类型
  1239  	urlFlag           bool
  1240  	doc               string // Doc链接
  1241  	docFlag           bool
  1242  	meetingMinute     string // 会议纪要
  1243  	meetingMinuteFlag bool
  1244  }
  1245  
  1246  func NewChatTabContentBuilder() *ChatTabContentBuilder {
  1247  	builder := &ChatTabContentBuilder{}
  1248  	return builder
  1249  }
  1250  
  1251  // URL类型
  1252  //
  1253  // 示例值:https://www.feishu.cn
  1254  func (builder *ChatTabContentBuilder) Url(url string) *ChatTabContentBuilder {
  1255  	builder.url = url
  1256  	builder.urlFlag = true
  1257  	return builder
  1258  }
  1259  
  1260  // Doc链接
  1261  //
  1262  // 示例值:https://bytedance.feishu.cn/wiki/wikcnPIcqWjJQwkwDzrB9t40123xz
  1263  func (builder *ChatTabContentBuilder) Doc(doc string) *ChatTabContentBuilder {
  1264  	builder.doc = doc
  1265  	builder.docFlag = true
  1266  	return builder
  1267  }
  1268  
  1269  // 会议纪要
  1270  //
  1271  // 示例值:https://bytedance.feishu.cn/docs/doccnvIXbV22i6hSD3utar4123dx
  1272  func (builder *ChatTabContentBuilder) MeetingMinute(meetingMinute string) *ChatTabContentBuilder {
  1273  	builder.meetingMinute = meetingMinute
  1274  	builder.meetingMinuteFlag = true
  1275  	return builder
  1276  }
  1277  
  1278  func (builder *ChatTabContentBuilder) Build() *ChatTabContent {
  1279  	req := &ChatTabContent{}
  1280  	if builder.urlFlag {
  1281  		req.Url = &builder.url
  1282  
  1283  	}
  1284  	if builder.docFlag {
  1285  		req.Doc = &builder.doc
  1286  
  1287  	}
  1288  	if builder.meetingMinuteFlag {
  1289  		req.MeetingMinute = &builder.meetingMinute
  1290  
  1291  	}
  1292  	return req
  1293  }
  1294  
  1295  type Emoji struct {
  1296  	EmojiType *string `json:"emoji_type,omitempty"` // emoji类型 [emoji类型列举](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message-reaction/emojis-introduce)
  1297  }
  1298  
  1299  type EmojiBuilder struct {
  1300  	emojiType     string // emoji类型 [emoji类型列举](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message-reaction/emojis-introduce)
  1301  	emojiTypeFlag bool
  1302  }
  1303  
  1304  func NewEmojiBuilder() *EmojiBuilder {
  1305  	builder := &EmojiBuilder{}
  1306  	return builder
  1307  }
  1308  
  1309  // emoji类型 [emoji类型列举](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message-reaction/emojis-introduce)
  1310  //
  1311  // 示例值:SMILE
  1312  func (builder *EmojiBuilder) EmojiType(emojiType string) *EmojiBuilder {
  1313  	builder.emojiType = emojiType
  1314  	builder.emojiTypeFlag = true
  1315  	return builder
  1316  }
  1317  
  1318  func (builder *EmojiBuilder) Build() *Emoji {
  1319  	req := &Emoji{}
  1320  	if builder.emojiTypeFlag {
  1321  		req.EmojiType = &builder.emojiType
  1322  
  1323  	}
  1324  	return req
  1325  }
  1326  
  1327  type EventMessage struct {
  1328  	MessageId   *string         `json:"message_id,omitempty"`   // 消息的 open_message_id
  1329  	RootId      *string         `json:"root_id,omitempty"`      // 回复消息 根 id
  1330  	ParentId    *string         `json:"parent_id,omitempty"`    // 回复消息 父 id
  1331  	CreateTime  *string         `json:"create_time,omitempty"`  // 消息发送时间 毫秒
  1332  	ChatId      *string         `json:"chat_id,omitempty"`      // 消息所在的群组 id
  1333  	ChatType    *string         `json:"chat_type,omitempty"`    // 消息所在的群组类型,单聊(p2p)或群聊(group)
  1334  	MessageType *string         `json:"message_type,omitempty"` // 消息类型
  1335  	Content     *string         `json:"content,omitempty"`      // 消息内容, json 格式 ;[各类型消息Content](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/im-v1/message/events/message_content)
  1336  	Mentions    []*MentionEvent `json:"mentions,omitempty"`     // 被提及用户的信息
  1337  }
  1338  
  1339  type EventMessageBuilder struct {
  1340  	messageId       string // 消息的 open_message_id
  1341  	messageIdFlag   bool
  1342  	rootId          string // 回复消息 根 id
  1343  	rootIdFlag      bool
  1344  	parentId        string // 回复消息 父 id
  1345  	parentIdFlag    bool
  1346  	createTime      string // 消息发送时间 毫秒
  1347  	createTimeFlag  bool
  1348  	chatId          string // 消息所在的群组 id
  1349  	chatIdFlag      bool
  1350  	chatType        string // 消息所在的群组类型,单聊(p2p)或群聊(group)
  1351  	chatTypeFlag    bool
  1352  	messageType     string // 消息类型
  1353  	messageTypeFlag bool
  1354  	content         string // 消息内容, json 格式 ;[各类型消息Content](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/im-v1/message/events/message_content)
  1355  	contentFlag     bool
  1356  	mentions        []*MentionEvent // 被提及用户的信息
  1357  	mentionsFlag    bool
  1358  }
  1359  
  1360  func NewEventMessageBuilder() *EventMessageBuilder {
  1361  	builder := &EventMessageBuilder{}
  1362  	return builder
  1363  }
  1364  
  1365  // 消息的 open_message_id
  1366  //
  1367  // 示例值:om_5ce6d572455d361153b7cb51da133945
  1368  func (builder *EventMessageBuilder) MessageId(messageId string) *EventMessageBuilder {
  1369  	builder.messageId = messageId
  1370  	builder.messageIdFlag = true
  1371  	return builder
  1372  }
  1373  
  1374  // 回复消息 根 id
  1375  //
  1376  // 示例值:om_5ce6d572455d361153b7cb5xxfsdfsdfdsf
  1377  func (builder *EventMessageBuilder) RootId(rootId string) *EventMessageBuilder {
  1378  	builder.rootId = rootId
  1379  	builder.rootIdFlag = true
  1380  	return builder
  1381  }
  1382  
  1383  // 回复消息 父 id
  1384  //
  1385  // 示例值:om_5ce6d572455d361153b7cb5xxfsdfsdfdsf
  1386  func (builder *EventMessageBuilder) ParentId(parentId string) *EventMessageBuilder {
  1387  	builder.parentId = parentId
  1388  	builder.parentIdFlag = true
  1389  	return builder
  1390  }
  1391  
  1392  // 消息发送时间 毫秒
  1393  //
  1394  // 示例值:1609073151345
  1395  func (builder *EventMessageBuilder) CreateTime(createTime string) *EventMessageBuilder {
  1396  	builder.createTime = createTime
  1397  	builder.createTimeFlag = true
  1398  	return builder
  1399  }
  1400  
  1401  // 消息所在的群组 id
  1402  //
  1403  // 示例值:oc_5ce6d572455d361153b7xx51da133945
  1404  func (builder *EventMessageBuilder) ChatId(chatId string) *EventMessageBuilder {
  1405  	builder.chatId = chatId
  1406  	builder.chatIdFlag = true
  1407  	return builder
  1408  }
  1409  
  1410  // 消息所在的群组类型,单聊(p2p)或群聊(group)
  1411  //
  1412  // 示例值:group
  1413  func (builder *EventMessageBuilder) ChatType(chatType string) *EventMessageBuilder {
  1414  	builder.chatType = chatType
  1415  	builder.chatTypeFlag = true
  1416  	return builder
  1417  }
  1418  
  1419  // 消息类型
  1420  //
  1421  // 示例值:text
  1422  func (builder *EventMessageBuilder) MessageType(messageType string) *EventMessageBuilder {
  1423  	builder.messageType = messageType
  1424  	builder.messageTypeFlag = true
  1425  	return builder
  1426  }
  1427  
  1428  // 消息内容, json 格式 ;[各类型消息Content](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/im-v1/message/events/message_content)
  1429  //
  1430  // 示例值:{\"text\":\"@_user_1 hello\"}
  1431  func (builder *EventMessageBuilder) Content(content string) *EventMessageBuilder {
  1432  	builder.content = content
  1433  	builder.contentFlag = true
  1434  	return builder
  1435  }
  1436  
  1437  // 被提及用户的信息
  1438  //
  1439  // 示例值:
  1440  func (builder *EventMessageBuilder) Mentions(mentions []*MentionEvent) *EventMessageBuilder {
  1441  	builder.mentions = mentions
  1442  	builder.mentionsFlag = true
  1443  	return builder
  1444  }
  1445  
  1446  func (builder *EventMessageBuilder) Build() *EventMessage {
  1447  	req := &EventMessage{}
  1448  	if builder.messageIdFlag {
  1449  		req.MessageId = &builder.messageId
  1450  
  1451  	}
  1452  	if builder.rootIdFlag {
  1453  		req.RootId = &builder.rootId
  1454  
  1455  	}
  1456  	if builder.parentIdFlag {
  1457  		req.ParentId = &builder.parentId
  1458  
  1459  	}
  1460  	if builder.createTimeFlag {
  1461  		req.CreateTime = &builder.createTime
  1462  
  1463  	}
  1464  	if builder.chatIdFlag {
  1465  		req.ChatId = &builder.chatId
  1466  
  1467  	}
  1468  	if builder.chatTypeFlag {
  1469  		req.ChatType = &builder.chatType
  1470  
  1471  	}
  1472  	if builder.messageTypeFlag {
  1473  		req.MessageType = &builder.messageType
  1474  
  1475  	}
  1476  	if builder.contentFlag {
  1477  		req.Content = &builder.content
  1478  
  1479  	}
  1480  	if builder.mentionsFlag {
  1481  		req.Mentions = builder.mentions
  1482  	}
  1483  	return req
  1484  }
  1485  
  1486  type EventMessageReader struct {
  1487  	ReaderId  *UserId `json:"reader_id,omitempty"`  // 用户 ID
  1488  	ReadTime  *string `json:"read_time,omitempty"`  // 阅读时间
  1489  	TenantKey *string `json:"tenant_key,omitempty"` // tenant key
  1490  }
  1491  
  1492  type EventMessageReaderBuilder struct {
  1493  	readerId      *UserId // 用户 ID
  1494  	readerIdFlag  bool
  1495  	readTime      string // 阅读时间
  1496  	readTimeFlag  bool
  1497  	tenantKey     string // tenant key
  1498  	tenantKeyFlag bool
  1499  }
  1500  
  1501  func NewEventMessageReaderBuilder() *EventMessageReaderBuilder {
  1502  	builder := &EventMessageReaderBuilder{}
  1503  	return builder
  1504  }
  1505  
  1506  // 用户 ID
  1507  //
  1508  // 示例值:ou_5ad573a6411d72b8305fda3a9c15c70e
  1509  func (builder *EventMessageReaderBuilder) ReaderId(readerId *UserId) *EventMessageReaderBuilder {
  1510  	builder.readerId = readerId
  1511  	builder.readerIdFlag = true
  1512  	return builder
  1513  }
  1514  
  1515  // 阅读时间
  1516  //
  1517  // 示例值:1609484183000
  1518  func (builder *EventMessageReaderBuilder) ReadTime(readTime string) *EventMessageReaderBuilder {
  1519  	builder.readTime = readTime
  1520  	builder.readTimeFlag = true
  1521  	return builder
  1522  }
  1523  
  1524  // tenant key
  1525  //
  1526  // 示例值:736588c9260f175e
  1527  func (builder *EventMessageReaderBuilder) TenantKey(tenantKey string) *EventMessageReaderBuilder {
  1528  	builder.tenantKey = tenantKey
  1529  	builder.tenantKeyFlag = true
  1530  	return builder
  1531  }
  1532  
  1533  func (builder *EventMessageReaderBuilder) Build() *EventMessageReader {
  1534  	req := &EventMessageReader{}
  1535  	if builder.readerIdFlag {
  1536  		req.ReaderId = builder.readerId
  1537  	}
  1538  	if builder.readTimeFlag {
  1539  		req.ReadTime = &builder.readTime
  1540  
  1541  	}
  1542  	if builder.tenantKeyFlag {
  1543  		req.TenantKey = &builder.tenantKey
  1544  
  1545  	}
  1546  	return req
  1547  }
  1548  
  1549  type EventSender struct {
  1550  	SenderId   *UserId `json:"sender_id,omitempty"`   // 用户 ID
  1551  	SenderType *string `json:"sender_type,omitempty"` // 消息发送者类型。目前只支持用户(user)发送的消息。
  1552  	TenantKey  *string `json:"tenant_key,omitempty"`  // tenant key
  1553  }
  1554  
  1555  type EventSenderBuilder struct {
  1556  	senderId       *UserId // 用户 ID
  1557  	senderIdFlag   bool
  1558  	senderType     string // 消息发送者类型。目前只支持用户(user)发送的消息。
  1559  	senderTypeFlag bool
  1560  	tenantKey      string // tenant key
  1561  	tenantKeyFlag  bool
  1562  }
  1563  
  1564  func NewEventSenderBuilder() *EventSenderBuilder {
  1565  	builder := &EventSenderBuilder{}
  1566  	return builder
  1567  }
  1568  
  1569  // 用户 ID
  1570  //
  1571  // 示例值:ou_5ad573a6411d72b8305fda3a9c15c70e
  1572  func (builder *EventSenderBuilder) SenderId(senderId *UserId) *EventSenderBuilder {
  1573  	builder.senderId = senderId
  1574  	builder.senderIdFlag = true
  1575  	return builder
  1576  }
  1577  
  1578  // 消息发送者类型。目前只支持用户(user)发送的消息。
  1579  //
  1580  // 示例值:user
  1581  func (builder *EventSenderBuilder) SenderType(senderType string) *EventSenderBuilder {
  1582  	builder.senderType = senderType
  1583  	builder.senderTypeFlag = true
  1584  	return builder
  1585  }
  1586  
  1587  // tenant key
  1588  //
  1589  // 示例值:736588c9260f175e
  1590  func (builder *EventSenderBuilder) TenantKey(tenantKey string) *EventSenderBuilder {
  1591  	builder.tenantKey = tenantKey
  1592  	builder.tenantKeyFlag = true
  1593  	return builder
  1594  }
  1595  
  1596  func (builder *EventSenderBuilder) Build() *EventSender {
  1597  	req := &EventSender{}
  1598  	if builder.senderIdFlag {
  1599  		req.SenderId = builder.senderId
  1600  	}
  1601  	if builder.senderTypeFlag {
  1602  		req.SenderType = &builder.senderType
  1603  
  1604  	}
  1605  	if builder.tenantKeyFlag {
  1606  		req.TenantKey = &builder.tenantKey
  1607  
  1608  	}
  1609  	return req
  1610  }
  1611  
  1612  type File struct {
  1613  }
  1614  
  1615  type I18nNames struct {
  1616  	ZhCn *string `json:"zh_cn,omitempty"` // 中文名
  1617  	EnUs *string `json:"en_us,omitempty"` // 英文名
  1618  	JaJp *string `json:"ja_jp,omitempty"` // 日文名
  1619  }
  1620  
  1621  type I18nNamesBuilder struct {
  1622  	zhCn     string // 中文名
  1623  	zhCnFlag bool
  1624  	enUs     string // 英文名
  1625  	enUsFlag bool
  1626  	jaJp     string // 日文名
  1627  	jaJpFlag bool
  1628  }
  1629  
  1630  func NewI18nNamesBuilder() *I18nNamesBuilder {
  1631  	builder := &I18nNamesBuilder{}
  1632  	return builder
  1633  }
  1634  
  1635  // 中文名
  1636  //
  1637  // 示例值:群聊
  1638  func (builder *I18nNamesBuilder) ZhCn(zhCn string) *I18nNamesBuilder {
  1639  	builder.zhCn = zhCn
  1640  	builder.zhCnFlag = true
  1641  	return builder
  1642  }
  1643  
  1644  // 英文名
  1645  //
  1646  // 示例值:group chat
  1647  func (builder *I18nNamesBuilder) EnUs(enUs string) *I18nNamesBuilder {
  1648  	builder.enUs = enUs
  1649  	builder.enUsFlag = true
  1650  	return builder
  1651  }
  1652  
  1653  // 日文名
  1654  //
  1655  // 示例值:グループチャット
  1656  func (builder *I18nNamesBuilder) JaJp(jaJp string) *I18nNamesBuilder {
  1657  	builder.jaJp = jaJp
  1658  	builder.jaJpFlag = true
  1659  	return builder
  1660  }
  1661  
  1662  func (builder *I18nNamesBuilder) Build() *I18nNames {
  1663  	req := &I18nNames{}
  1664  	if builder.zhCnFlag {
  1665  		req.ZhCn = &builder.zhCn
  1666  
  1667  	}
  1668  	if builder.enUsFlag {
  1669  		req.EnUs = &builder.enUs
  1670  
  1671  	}
  1672  	if builder.jaJpFlag {
  1673  		req.JaJp = &builder.jaJp
  1674  
  1675  	}
  1676  	return req
  1677  }
  1678  
  1679  type ImDepthData struct {
  1680  	PDate                   *string  `json:"p_date,omitempty"`                      // 分区日期
  1681  	DepartmentId            *string  `json:"department_id,omitempty"`               // 部门id
  1682  	DepartmentPath          *string  `json:"department_path,omitempty"`             // 部门路径
  1683  	SendMsgRate             *float64 `json:"send_msg_rate,omitempty"`               // 发消息用户渗透率
  1684  	AvgSendMsgCnt           *float64 `json:"avg_send_msg_cnt,omitempty"`            // 人均发消息数量
  1685  	PcSendMsgRate           *float64 `json:"pc_send_msg_rate,omitempty"`            // 仅 PC 端的发消息用户渗透率
  1686  	PcAvgSendMsgCnt         *float64 `json:"pc_avg_send_msg_cnt,omitempty"`         // 仅 PC 端的人均发消息数量
  1687  	MobileSendMsgRate       *float64 `json:"mobile_send_msg_rate,omitempty"`        // 仅移动端的发消息用户渗透率
  1688  	MobileAvgSendMsgCnt     *float64 `json:"mobile_avg_send_msg_cnt,omitempty"`     // 仅移动端的人均发消息数量
  1689  	MeetingGroupSendMsgRate *float64 `json:"meeting_group_send_msg_rate,omitempty"` // 会议群发消息用户渗透率
  1690  	TenantGroupSendMsgRate  *float64 `json:"tenant_group_send_msg_rate,omitempty"`  // 全员群发消息用户渗透率
  1691  	DeptGroupSendMsgRate    *float64 `json:"dept_group_send_msg_rate,omitempty"`    // 部门群发消息用户渗透率
  1692  	TopicGroupSendMsgRate   *float64 `json:"topic_group_send_msg_rate,omitempty"`   // 话题群发消息用户渗透率
  1693  	GroupAtMsgRate          *float64 `json:"group_at_msg_rate,omitempty"`           // 群聊中 @ 消息占比
  1694  	GroupReplyMsgRate       *float64 `json:"group_reply_msg_rate,omitempty"`        // 群聊中回复消息占比
  1695  	ReactionRate            *float64 `json:"reaction_rate,omitempty"`               // 发送 reaction 用户渗透率
  1696  	P2pSendMsgRate          *float64 `json:"p2p_send_msg_rate,omitempty"`           // 发送单聊消息占比
  1697  	ImgSendMsgRate          *float64 `json:"img_send_msg_rate,omitempty"`           // 图片消息用户渗透率
  1698  	FileSendMsgRate         *float64 `json:"file_send_msg_rate,omitempty"`          // 文件消息用户渗透率
  1699  	StickerSendMsgRate      *float64 `json:"sticker_send_msg_rate,omitempty"`       // 表情包消息用户渗透率
  1700  	PostSendMsgRate         *float64 `json:"post_send_msg_rate,omitempty"`          // 富文本消息用户渗透率
  1701  }
  1702  
  1703  type ImDepthDataBuilder struct {
  1704  	pDate                       string // 分区日期
  1705  	pDateFlag                   bool
  1706  	departmentId                string // 部门id
  1707  	departmentIdFlag            bool
  1708  	departmentPath              string // 部门路径
  1709  	departmentPathFlag          bool
  1710  	sendMsgRate                 float64 // 发消息用户渗透率
  1711  	sendMsgRateFlag             bool
  1712  	avgSendMsgCnt               float64 // 人均发消息数量
  1713  	avgSendMsgCntFlag           bool
  1714  	pcSendMsgRate               float64 // 仅 PC 端的发消息用户渗透率
  1715  	pcSendMsgRateFlag           bool
  1716  	pcAvgSendMsgCnt             float64 // 仅 PC 端的人均发消息数量
  1717  	pcAvgSendMsgCntFlag         bool
  1718  	mobileSendMsgRate           float64 // 仅移动端的发消息用户渗透率
  1719  	mobileSendMsgRateFlag       bool
  1720  	mobileAvgSendMsgCnt         float64 // 仅移动端的人均发消息数量
  1721  	mobileAvgSendMsgCntFlag     bool
  1722  	meetingGroupSendMsgRate     float64 // 会议群发消息用户渗透率
  1723  	meetingGroupSendMsgRateFlag bool
  1724  	tenantGroupSendMsgRate      float64 // 全员群发消息用户渗透率
  1725  	tenantGroupSendMsgRateFlag  bool
  1726  	deptGroupSendMsgRate        float64 // 部门群发消息用户渗透率
  1727  	deptGroupSendMsgRateFlag    bool
  1728  	topicGroupSendMsgRate       float64 // 话题群发消息用户渗透率
  1729  	topicGroupSendMsgRateFlag   bool
  1730  	groupAtMsgRate              float64 // 群聊中 @ 消息占比
  1731  	groupAtMsgRateFlag          bool
  1732  	groupReplyMsgRate           float64 // 群聊中回复消息占比
  1733  	groupReplyMsgRateFlag       bool
  1734  	reactionRate                float64 // 发送 reaction 用户渗透率
  1735  	reactionRateFlag            bool
  1736  	p2pSendMsgRate              float64 // 发送单聊消息占比
  1737  	p2pSendMsgRateFlag          bool
  1738  	imgSendMsgRate              float64 // 图片消息用户渗透率
  1739  	imgSendMsgRateFlag          bool
  1740  	fileSendMsgRate             float64 // 文件消息用户渗透率
  1741  	fileSendMsgRateFlag         bool
  1742  	stickerSendMsgRate          float64 // 表情包消息用户渗透率
  1743  	stickerSendMsgRateFlag      bool
  1744  	postSendMsgRate             float64 // 富文本消息用户渗透率
  1745  	postSendMsgRateFlag         bool
  1746  }
  1747  
  1748  func NewImDepthDataBuilder() *ImDepthDataBuilder {
  1749  	builder := &ImDepthDataBuilder{}
  1750  	return builder
  1751  }
  1752  
  1753  // 分区日期
  1754  //
  1755  // 示例值:2022-02-02
  1756  func (builder *ImDepthDataBuilder) PDate(pDate string) *ImDepthDataBuilder {
  1757  	builder.pDate = pDate
  1758  	builder.pDateFlag = true
  1759  	return builder
  1760  }
  1761  
  1762  // 部门id
  1763  //
  1764  // 示例值:123456
  1765  func (builder *ImDepthDataBuilder) DepartmentId(departmentId string) *ImDepthDataBuilder {
  1766  	builder.departmentId = departmentId
  1767  	builder.departmentIdFlag = true
  1768  	return builder
  1769  }
  1770  
  1771  // 部门路径
  1772  //
  1773  // 示例值:test/subtest
  1774  func (builder *ImDepthDataBuilder) DepartmentPath(departmentPath string) *ImDepthDataBuilder {
  1775  	builder.departmentPath = departmentPath
  1776  	builder.departmentPathFlag = true
  1777  	return builder
  1778  }
  1779  
  1780  // 发消息用户渗透率
  1781  //
  1782  // 示例值:0.50
  1783  func (builder *ImDepthDataBuilder) SendMsgRate(sendMsgRate float64) *ImDepthDataBuilder {
  1784  	builder.sendMsgRate = sendMsgRate
  1785  	builder.sendMsgRateFlag = true
  1786  	return builder
  1787  }
  1788  
  1789  // 人均发消息数量
  1790  //
  1791  // 示例值:50
  1792  func (builder *ImDepthDataBuilder) AvgSendMsgCnt(avgSendMsgCnt float64) *ImDepthDataBuilder {
  1793  	builder.avgSendMsgCnt = avgSendMsgCnt
  1794  	builder.avgSendMsgCntFlag = true
  1795  	return builder
  1796  }
  1797  
  1798  // 仅 PC 端的发消息用户渗透率
  1799  //
  1800  // 示例值:0.50
  1801  func (builder *ImDepthDataBuilder) PcSendMsgRate(pcSendMsgRate float64) *ImDepthDataBuilder {
  1802  	builder.pcSendMsgRate = pcSendMsgRate
  1803  	builder.pcSendMsgRateFlag = true
  1804  	return builder
  1805  }
  1806  
  1807  // 仅 PC 端的人均发消息数量
  1808  //
  1809  // 示例值:50
  1810  func (builder *ImDepthDataBuilder) PcAvgSendMsgCnt(pcAvgSendMsgCnt float64) *ImDepthDataBuilder {
  1811  	builder.pcAvgSendMsgCnt = pcAvgSendMsgCnt
  1812  	builder.pcAvgSendMsgCntFlag = true
  1813  	return builder
  1814  }
  1815  
  1816  // 仅移动端的发消息用户渗透率
  1817  //
  1818  // 示例值:0.50
  1819  func (builder *ImDepthDataBuilder) MobileSendMsgRate(mobileSendMsgRate float64) *ImDepthDataBuilder {
  1820  	builder.mobileSendMsgRate = mobileSendMsgRate
  1821  	builder.mobileSendMsgRateFlag = true
  1822  	return builder
  1823  }
  1824  
  1825  // 仅移动端的人均发消息数量
  1826  //
  1827  // 示例值:50
  1828  func (builder *ImDepthDataBuilder) MobileAvgSendMsgCnt(mobileAvgSendMsgCnt float64) *ImDepthDataBuilder {
  1829  	builder.mobileAvgSendMsgCnt = mobileAvgSendMsgCnt
  1830  	builder.mobileAvgSendMsgCntFlag = true
  1831  	return builder
  1832  }
  1833  
  1834  // 会议群发消息用户渗透率
  1835  //
  1836  // 示例值:0.50
  1837  func (builder *ImDepthDataBuilder) MeetingGroupSendMsgRate(meetingGroupSendMsgRate float64) *ImDepthDataBuilder {
  1838  	builder.meetingGroupSendMsgRate = meetingGroupSendMsgRate
  1839  	builder.meetingGroupSendMsgRateFlag = true
  1840  	return builder
  1841  }
  1842  
  1843  // 全员群发消息用户渗透率
  1844  //
  1845  // 示例值:0.50
  1846  func (builder *ImDepthDataBuilder) TenantGroupSendMsgRate(tenantGroupSendMsgRate float64) *ImDepthDataBuilder {
  1847  	builder.tenantGroupSendMsgRate = tenantGroupSendMsgRate
  1848  	builder.tenantGroupSendMsgRateFlag = true
  1849  	return builder
  1850  }
  1851  
  1852  // 部门群发消息用户渗透率
  1853  //
  1854  // 示例值:0.50
  1855  func (builder *ImDepthDataBuilder) DeptGroupSendMsgRate(deptGroupSendMsgRate float64) *ImDepthDataBuilder {
  1856  	builder.deptGroupSendMsgRate = deptGroupSendMsgRate
  1857  	builder.deptGroupSendMsgRateFlag = true
  1858  	return builder
  1859  }
  1860  
  1861  // 话题群发消息用户渗透率
  1862  //
  1863  // 示例值:0.50
  1864  func (builder *ImDepthDataBuilder) TopicGroupSendMsgRate(topicGroupSendMsgRate float64) *ImDepthDataBuilder {
  1865  	builder.topicGroupSendMsgRate = topicGroupSendMsgRate
  1866  	builder.topicGroupSendMsgRateFlag = true
  1867  	return builder
  1868  }
  1869  
  1870  // 群聊中 @ 消息占比
  1871  //
  1872  // 示例值:0.50
  1873  func (builder *ImDepthDataBuilder) GroupAtMsgRate(groupAtMsgRate float64) *ImDepthDataBuilder {
  1874  	builder.groupAtMsgRate = groupAtMsgRate
  1875  	builder.groupAtMsgRateFlag = true
  1876  	return builder
  1877  }
  1878  
  1879  // 群聊中回复消息占比
  1880  //
  1881  // 示例值:0.50
  1882  func (builder *ImDepthDataBuilder) GroupReplyMsgRate(groupReplyMsgRate float64) *ImDepthDataBuilder {
  1883  	builder.groupReplyMsgRate = groupReplyMsgRate
  1884  	builder.groupReplyMsgRateFlag = true
  1885  	return builder
  1886  }
  1887  
  1888  // 发送 reaction 用户渗透率
  1889  //
  1890  // 示例值:0.50
  1891  func (builder *ImDepthDataBuilder) ReactionRate(reactionRate float64) *ImDepthDataBuilder {
  1892  	builder.reactionRate = reactionRate
  1893  	builder.reactionRateFlag = true
  1894  	return builder
  1895  }
  1896  
  1897  // 发送单聊消息占比
  1898  //
  1899  // 示例值:0.50
  1900  func (builder *ImDepthDataBuilder) P2pSendMsgRate(p2pSendMsgRate float64) *ImDepthDataBuilder {
  1901  	builder.p2pSendMsgRate = p2pSendMsgRate
  1902  	builder.p2pSendMsgRateFlag = true
  1903  	return builder
  1904  }
  1905  
  1906  // 图片消息用户渗透率
  1907  //
  1908  // 示例值:0.50
  1909  func (builder *ImDepthDataBuilder) ImgSendMsgRate(imgSendMsgRate float64) *ImDepthDataBuilder {
  1910  	builder.imgSendMsgRate = imgSendMsgRate
  1911  	builder.imgSendMsgRateFlag = true
  1912  	return builder
  1913  }
  1914  
  1915  // 文件消息用户渗透率
  1916  //
  1917  // 示例值:0.50
  1918  func (builder *ImDepthDataBuilder) FileSendMsgRate(fileSendMsgRate float64) *ImDepthDataBuilder {
  1919  	builder.fileSendMsgRate = fileSendMsgRate
  1920  	builder.fileSendMsgRateFlag = true
  1921  	return builder
  1922  }
  1923  
  1924  // 表情包消息用户渗透率
  1925  //
  1926  // 示例值:0.50
  1927  func (builder *ImDepthDataBuilder) StickerSendMsgRate(stickerSendMsgRate float64) *ImDepthDataBuilder {
  1928  	builder.stickerSendMsgRate = stickerSendMsgRate
  1929  	builder.stickerSendMsgRateFlag = true
  1930  	return builder
  1931  }
  1932  
  1933  // 富文本消息用户渗透率
  1934  //
  1935  // 示例值:0.50
  1936  func (builder *ImDepthDataBuilder) PostSendMsgRate(postSendMsgRate float64) *ImDepthDataBuilder {
  1937  	builder.postSendMsgRate = postSendMsgRate
  1938  	builder.postSendMsgRateFlag = true
  1939  	return builder
  1940  }
  1941  
  1942  func (builder *ImDepthDataBuilder) Build() *ImDepthData {
  1943  	req := &ImDepthData{}
  1944  	if builder.pDateFlag {
  1945  		req.PDate = &builder.pDate
  1946  
  1947  	}
  1948  	if builder.departmentIdFlag {
  1949  		req.DepartmentId = &builder.departmentId
  1950  
  1951  	}
  1952  	if builder.departmentPathFlag {
  1953  		req.DepartmentPath = &builder.departmentPath
  1954  
  1955  	}
  1956  	if builder.sendMsgRateFlag {
  1957  		req.SendMsgRate = &builder.sendMsgRate
  1958  
  1959  	}
  1960  	if builder.avgSendMsgCntFlag {
  1961  		req.AvgSendMsgCnt = &builder.avgSendMsgCnt
  1962  
  1963  	}
  1964  	if builder.pcSendMsgRateFlag {
  1965  		req.PcSendMsgRate = &builder.pcSendMsgRate
  1966  
  1967  	}
  1968  	if builder.pcAvgSendMsgCntFlag {
  1969  		req.PcAvgSendMsgCnt = &builder.pcAvgSendMsgCnt
  1970  
  1971  	}
  1972  	if builder.mobileSendMsgRateFlag {
  1973  		req.MobileSendMsgRate = &builder.mobileSendMsgRate
  1974  
  1975  	}
  1976  	if builder.mobileAvgSendMsgCntFlag {
  1977  		req.MobileAvgSendMsgCnt = &builder.mobileAvgSendMsgCnt
  1978  
  1979  	}
  1980  	if builder.meetingGroupSendMsgRateFlag {
  1981  		req.MeetingGroupSendMsgRate = &builder.meetingGroupSendMsgRate
  1982  
  1983  	}
  1984  	if builder.tenantGroupSendMsgRateFlag {
  1985  		req.TenantGroupSendMsgRate = &builder.tenantGroupSendMsgRate
  1986  
  1987  	}
  1988  	if builder.deptGroupSendMsgRateFlag {
  1989  		req.DeptGroupSendMsgRate = &builder.deptGroupSendMsgRate
  1990  
  1991  	}
  1992  	if builder.topicGroupSendMsgRateFlag {
  1993  		req.TopicGroupSendMsgRate = &builder.topicGroupSendMsgRate
  1994  
  1995  	}
  1996  	if builder.groupAtMsgRateFlag {
  1997  		req.GroupAtMsgRate = &builder.groupAtMsgRate
  1998  
  1999  	}
  2000  	if builder.groupReplyMsgRateFlag {
  2001  		req.GroupReplyMsgRate = &builder.groupReplyMsgRate
  2002  
  2003  	}
  2004  	if builder.reactionRateFlag {
  2005  		req.ReactionRate = &builder.reactionRate
  2006  
  2007  	}
  2008  	if builder.p2pSendMsgRateFlag {
  2009  		req.P2pSendMsgRate = &builder.p2pSendMsgRate
  2010  
  2011  	}
  2012  	if builder.imgSendMsgRateFlag {
  2013  		req.ImgSendMsgRate = &builder.imgSendMsgRate
  2014  
  2015  	}
  2016  	if builder.fileSendMsgRateFlag {
  2017  		req.FileSendMsgRate = &builder.fileSendMsgRate
  2018  
  2019  	}
  2020  	if builder.stickerSendMsgRateFlag {
  2021  		req.StickerSendMsgRate = &builder.stickerSendMsgRate
  2022  
  2023  	}
  2024  	if builder.postSendMsgRateFlag {
  2025  		req.PostSendMsgRate = &builder.postSendMsgRate
  2026  
  2027  	}
  2028  	return req
  2029  }
  2030  
  2031  type Image struct {
  2032  }
  2033  
  2034  type ListChat struct {
  2035  	ChatId      *string `json:"chat_id,omitempty"`       // 群组 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  2036  	Avatar      *string `json:"avatar,omitempty"`        // 群头像 URL
  2037  	Name        *string `json:"name,omitempty"`          // 群名称
  2038  	Description *string `json:"description,omitempty"`   // 群描述
  2039  	OwnerId     *string `json:"owner_id,omitempty"`      // 群主 ID
  2040  	OwnerIdType *string `json:"owner_id_type,omitempty"` // 群主 ID 类型
  2041  	External    *bool   `json:"external,omitempty"`      // 是否是外部群
  2042  	TenantKey   *string `json:"tenant_key,omitempty"`    // tenant key
  2043  
  2044  }
  2045  
  2046  type ListChatBuilder struct {
  2047  	chatId          string // 群组 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  2048  	chatIdFlag      bool
  2049  	avatar          string // 群头像 URL
  2050  	avatarFlag      bool
  2051  	name            string // 群名称
  2052  	nameFlag        bool
  2053  	description     string // 群描述
  2054  	descriptionFlag bool
  2055  	ownerId         string // 群主 ID
  2056  	ownerIdFlag     bool
  2057  	ownerIdType     string // 群主 ID 类型
  2058  	ownerIdTypeFlag bool
  2059  	external        bool // 是否是外部群
  2060  	externalFlag    bool
  2061  	tenantKey       string // tenant key
  2062  	tenantKeyFlag   bool
  2063  }
  2064  
  2065  func NewListChatBuilder() *ListChatBuilder {
  2066  	builder := &ListChatBuilder{}
  2067  	return builder
  2068  }
  2069  
  2070  // 群组 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  2071  //
  2072  // 示例值:oc_a0553eda9014c201e6969b478895c230
  2073  func (builder *ListChatBuilder) ChatId(chatId string) *ListChatBuilder {
  2074  	builder.chatId = chatId
  2075  	builder.chatIdFlag = true
  2076  	return builder
  2077  }
  2078  
  2079  // 群头像 URL
  2080  //
  2081  // 示例值:https://p3-lark-file.byteimg.com/img/lark-avatar-staging/default-avatar_44ae0ca3-e140-494b-956f-78091e348435~100x100.jpg
  2082  func (builder *ListChatBuilder) Avatar(avatar string) *ListChatBuilder {
  2083  	builder.avatar = avatar
  2084  	builder.avatarFlag = true
  2085  	return builder
  2086  }
  2087  
  2088  // 群名称
  2089  //
  2090  // 示例值:测试群名称
  2091  func (builder *ListChatBuilder) Name(name string) *ListChatBuilder {
  2092  	builder.name = name
  2093  	builder.nameFlag = true
  2094  	return builder
  2095  }
  2096  
  2097  // 群描述
  2098  //
  2099  // 示例值:测试群描述
  2100  func (builder *ListChatBuilder) Description(description string) *ListChatBuilder {
  2101  	builder.description = description
  2102  	builder.descriptionFlag = true
  2103  	return builder
  2104  }
  2105  
  2106  // 群主 ID
  2107  //
  2108  // 示例值:4d7a3c6g
  2109  func (builder *ListChatBuilder) OwnerId(ownerId string) *ListChatBuilder {
  2110  	builder.ownerId = ownerId
  2111  	builder.ownerIdFlag = true
  2112  	return builder
  2113  }
  2114  
  2115  // 群主 ID 类型
  2116  //
  2117  // 示例值:user_id
  2118  func (builder *ListChatBuilder) OwnerIdType(ownerIdType string) *ListChatBuilder {
  2119  	builder.ownerIdType = ownerIdType
  2120  	builder.ownerIdTypeFlag = true
  2121  	return builder
  2122  }
  2123  
  2124  // 是否是外部群
  2125  //
  2126  // 示例值:false
  2127  func (builder *ListChatBuilder) External(external bool) *ListChatBuilder {
  2128  	builder.external = external
  2129  	builder.externalFlag = true
  2130  	return builder
  2131  }
  2132  
  2133  // tenant key
  2134  //
  2135  // 示例值:736588c9260f175e
  2136  func (builder *ListChatBuilder) TenantKey(tenantKey string) *ListChatBuilder {
  2137  	builder.tenantKey = tenantKey
  2138  	builder.tenantKeyFlag = true
  2139  	return builder
  2140  }
  2141  
  2142  func (builder *ListChatBuilder) Build() *ListChat {
  2143  	req := &ListChat{}
  2144  	if builder.chatIdFlag {
  2145  		req.ChatId = &builder.chatId
  2146  
  2147  	}
  2148  	if builder.avatarFlag {
  2149  		req.Avatar = &builder.avatar
  2150  
  2151  	}
  2152  	if builder.nameFlag {
  2153  		req.Name = &builder.name
  2154  
  2155  	}
  2156  	if builder.descriptionFlag {
  2157  		req.Description = &builder.description
  2158  
  2159  	}
  2160  	if builder.ownerIdFlag {
  2161  		req.OwnerId = &builder.ownerId
  2162  
  2163  	}
  2164  	if builder.ownerIdTypeFlag {
  2165  		req.OwnerIdType = &builder.ownerIdType
  2166  
  2167  	}
  2168  	if builder.externalFlag {
  2169  		req.External = &builder.external
  2170  
  2171  	}
  2172  	if builder.tenantKeyFlag {
  2173  		req.TenantKey = &builder.tenantKey
  2174  
  2175  	}
  2176  
  2177  	return req
  2178  }
  2179  
  2180  type ListEventModerator struct {
  2181  	TenantKey *string `json:"tenant_key,omitempty"` // 租户 Key
  2182  	UserId    *UserId `json:"user_id,omitempty"`    // 用户 ID
  2183  }
  2184  
  2185  type ListEventModeratorBuilder struct {
  2186  	tenantKey     string // 租户 Key
  2187  	tenantKeyFlag bool
  2188  	userId        *UserId // 用户 ID
  2189  	userIdFlag    bool
  2190  }
  2191  
  2192  func NewListEventModeratorBuilder() *ListEventModeratorBuilder {
  2193  	builder := &ListEventModeratorBuilder{}
  2194  	return builder
  2195  }
  2196  
  2197  // 租户 Key
  2198  //
  2199  // 示例值:86gwe65
  2200  func (builder *ListEventModeratorBuilder) TenantKey(tenantKey string) *ListEventModeratorBuilder {
  2201  	builder.tenantKey = tenantKey
  2202  	builder.tenantKeyFlag = true
  2203  	return builder
  2204  }
  2205  
  2206  // 用户 ID
  2207  //
  2208  // 示例值:
  2209  func (builder *ListEventModeratorBuilder) UserId(userId *UserId) *ListEventModeratorBuilder {
  2210  	builder.userId = userId
  2211  	builder.userIdFlag = true
  2212  	return builder
  2213  }
  2214  
  2215  func (builder *ListEventModeratorBuilder) Build() *ListEventModerator {
  2216  	req := &ListEventModerator{}
  2217  	if builder.tenantKeyFlag {
  2218  		req.TenantKey = &builder.tenantKey
  2219  
  2220  	}
  2221  	if builder.userIdFlag {
  2222  		req.UserId = builder.userId
  2223  	}
  2224  	return req
  2225  }
  2226  
  2227  type ListMember struct {
  2228  	MemberIdType *string `json:"member_id_type,omitempty"` // 成员的用户 ID 类型,与查询参数中的 member_id_type 相同。取值为:`open_id`、`user_id`、`union_id`其中之一。
  2229  	MemberId     *string `json:"member_id,omitempty"`      // 成员的用户ID,ID值与查询参数中的 member_id_type 对应。;;不同 ID 的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  2230  	Name         *string `json:"name,omitempty"`           // 名字
  2231  	TenantKey    *string `json:"tenant_key,omitempty"`     // tenant key
  2232  }
  2233  
  2234  type ListMemberBuilder struct {
  2235  	memberIdType     string // 成员的用户 ID 类型,与查询参数中的 member_id_type 相同。取值为:`open_id`、`user_id`、`union_id`其中之一。
  2236  	memberIdTypeFlag bool
  2237  	memberId         string // 成员的用户ID,ID值与查询参数中的 member_id_type 对应。;;不同 ID 的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  2238  	memberIdFlag     bool
  2239  	name             string // 名字
  2240  	nameFlag         bool
  2241  	tenantKey        string // tenant key
  2242  	tenantKeyFlag    bool
  2243  }
  2244  
  2245  func NewListMemberBuilder() *ListMemberBuilder {
  2246  	builder := &ListMemberBuilder{}
  2247  	return builder
  2248  }
  2249  
  2250  // 成员的用户 ID 类型,与查询参数中的 member_id_type 相同。取值为:`open_id`、`user_id`、`union_id`其中之一。
  2251  //
  2252  // 示例值:open_id
  2253  func (builder *ListMemberBuilder) MemberIdType(memberIdType string) *ListMemberBuilder {
  2254  	builder.memberIdType = memberIdType
  2255  	builder.memberIdTypeFlag = true
  2256  	return builder
  2257  }
  2258  
  2259  // 成员的用户ID,ID值与查询参数中的 member_id_type 对应。;;不同 ID 的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  2260  //
  2261  // 示例值:ou_9204a37300b3700d61effaa439f34295
  2262  func (builder *ListMemberBuilder) MemberId(memberId string) *ListMemberBuilder {
  2263  	builder.memberId = memberId
  2264  	builder.memberIdFlag = true
  2265  	return builder
  2266  }
  2267  
  2268  // 名字
  2269  //
  2270  // 示例值:张三
  2271  func (builder *ListMemberBuilder) Name(name string) *ListMemberBuilder {
  2272  	builder.name = name
  2273  	builder.nameFlag = true
  2274  	return builder
  2275  }
  2276  
  2277  // tenant key
  2278  //
  2279  // 示例值:736588c9260f175d
  2280  func (builder *ListMemberBuilder) TenantKey(tenantKey string) *ListMemberBuilder {
  2281  	builder.tenantKey = tenantKey
  2282  	builder.tenantKeyFlag = true
  2283  	return builder
  2284  }
  2285  
  2286  func (builder *ListMemberBuilder) Build() *ListMember {
  2287  	req := &ListMember{}
  2288  	if builder.memberIdTypeFlag {
  2289  		req.MemberIdType = &builder.memberIdType
  2290  
  2291  	}
  2292  	if builder.memberIdFlag {
  2293  		req.MemberId = &builder.memberId
  2294  
  2295  	}
  2296  	if builder.nameFlag {
  2297  		req.Name = &builder.name
  2298  
  2299  	}
  2300  	if builder.tenantKeyFlag {
  2301  		req.TenantKey = &builder.tenantKey
  2302  
  2303  	}
  2304  	return req
  2305  }
  2306  
  2307  type ListModerator struct {
  2308  	UserIdType *string `json:"user_id_type,omitempty"` // 可发言用户 ID 类型
  2309  	UserId     *string `json:"user_id,omitempty"`      // 可发言用户 ID
  2310  	TenantKey  *string `json:"tenant_key,omitempty"`   // tenant key
  2311  }
  2312  
  2313  type ListModeratorBuilder struct {
  2314  	userIdType     string // 可发言用户 ID 类型
  2315  	userIdTypeFlag bool
  2316  	userId         string // 可发言用户 ID
  2317  	userIdFlag     bool
  2318  	tenantKey      string // tenant key
  2319  	tenantKeyFlag  bool
  2320  }
  2321  
  2322  func NewListModeratorBuilder() *ListModeratorBuilder {
  2323  	builder := &ListModeratorBuilder{}
  2324  	return builder
  2325  }
  2326  
  2327  // 可发言用户 ID 类型
  2328  //
  2329  // 示例值:user_id
  2330  func (builder *ListModeratorBuilder) UserIdType(userIdType string) *ListModeratorBuilder {
  2331  	builder.userIdType = userIdType
  2332  	builder.userIdTypeFlag = true
  2333  	return builder
  2334  }
  2335  
  2336  // 可发言用户 ID
  2337  //
  2338  // 示例值:4d7a3c6g
  2339  func (builder *ListModeratorBuilder) UserId(userId string) *ListModeratorBuilder {
  2340  	builder.userId = userId
  2341  	builder.userIdFlag = true
  2342  	return builder
  2343  }
  2344  
  2345  // tenant key
  2346  //
  2347  // 示例值:2ca1d211f64f6438
  2348  func (builder *ListModeratorBuilder) TenantKey(tenantKey string) *ListModeratorBuilder {
  2349  	builder.tenantKey = tenantKey
  2350  	builder.tenantKeyFlag = true
  2351  	return builder
  2352  }
  2353  
  2354  func (builder *ListModeratorBuilder) Build() *ListModerator {
  2355  	req := &ListModerator{}
  2356  	if builder.userIdTypeFlag {
  2357  		req.UserIdType = &builder.userIdType
  2358  
  2359  	}
  2360  	if builder.userIdFlag {
  2361  		req.UserId = &builder.userId
  2362  
  2363  	}
  2364  	if builder.tenantKeyFlag {
  2365  		req.TenantKey = &builder.tenantKey
  2366  
  2367  	}
  2368  	return req
  2369  }
  2370  
  2371  type Mention struct {
  2372  	Key       *string `json:"key,omitempty"`        // 被@的用户或机器人的序号。例如,第3个被@到的成员,值为“@_user_3”
  2373  	Id        *string `json:"id,omitempty"`         // 被@的用户或者机器人的open_id
  2374  	IdType    *string `json:"id_type,omitempty"`    // 被@的用户或机器人 id 类型,目前仅支持 `open_id` ([什么是 Open ID?](/ssl:ttdoc/home/user-identity-introduction/open-id))
  2375  	Name      *string `json:"name,omitempty"`       // 被@的用户或机器人的姓名
  2376  	TenantKey *string `json:"tenant_key,omitempty"` // 为租户在飞书上的唯一标识,用来换取对应的tenant_access_token,也可以用作租户在应用里面的唯一标识
  2377  }
  2378  
  2379  type MentionBuilder struct {
  2380  	key           string // 被@的用户或机器人的序号。例如,第3个被@到的成员,值为“@_user_3”
  2381  	keyFlag       bool
  2382  	id            string // 被@的用户或者机器人的open_id
  2383  	idFlag        bool
  2384  	idType        string // 被@的用户或机器人 id 类型,目前仅支持 `open_id` ([什么是 Open ID?](/ssl:ttdoc/home/user-identity-introduction/open-id))
  2385  	idTypeFlag    bool
  2386  	name          string // 被@的用户或机器人的姓名
  2387  	nameFlag      bool
  2388  	tenantKey     string // 为租户在飞书上的唯一标识,用来换取对应的tenant_access_token,也可以用作租户在应用里面的唯一标识
  2389  	tenantKeyFlag bool
  2390  }
  2391  
  2392  func NewMentionBuilder() *MentionBuilder {
  2393  	builder := &MentionBuilder{}
  2394  	return builder
  2395  }
  2396  
  2397  // 被@的用户或机器人的序号。例如,第3个被@到的成员,值为“@_user_3”
  2398  //
  2399  // 示例值:@_user_1
  2400  func (builder *MentionBuilder) Key(key string) *MentionBuilder {
  2401  	builder.key = key
  2402  	builder.keyFlag = true
  2403  	return builder
  2404  }
  2405  
  2406  // 被@的用户或者机器人的open_id
  2407  //
  2408  // 示例值:ou_155184d1e73cbfb8973e5a9e698e74f2
  2409  func (builder *MentionBuilder) Id(id string) *MentionBuilder {
  2410  	builder.id = id
  2411  	builder.idFlag = true
  2412  	return builder
  2413  }
  2414  
  2415  // 被@的用户或机器人 id 类型,目前仅支持 `open_id` ([什么是 Open ID?](/ssl:ttdoc/home/user-identity-introduction/open-id))
  2416  //
  2417  // 示例值:open_id
  2418  func (builder *MentionBuilder) IdType(idType string) *MentionBuilder {
  2419  	builder.idType = idType
  2420  	builder.idTypeFlag = true
  2421  	return builder
  2422  }
  2423  
  2424  // 被@的用户或机器人的姓名
  2425  //
  2426  // 示例值:Tom
  2427  func (builder *MentionBuilder) Name(name string) *MentionBuilder {
  2428  	builder.name = name
  2429  	builder.nameFlag = true
  2430  	return builder
  2431  }
  2432  
  2433  // 为租户在飞书上的唯一标识,用来换取对应的tenant_access_token,也可以用作租户在应用里面的唯一标识
  2434  //
  2435  // 示例值:736588c9260f175e
  2436  func (builder *MentionBuilder) TenantKey(tenantKey string) *MentionBuilder {
  2437  	builder.tenantKey = tenantKey
  2438  	builder.tenantKeyFlag = true
  2439  	return builder
  2440  }
  2441  
  2442  func (builder *MentionBuilder) Build() *Mention {
  2443  	req := &Mention{}
  2444  	if builder.keyFlag {
  2445  		req.Key = &builder.key
  2446  
  2447  	}
  2448  	if builder.idFlag {
  2449  		req.Id = &builder.id
  2450  
  2451  	}
  2452  	if builder.idTypeFlag {
  2453  		req.IdType = &builder.idType
  2454  
  2455  	}
  2456  	if builder.nameFlag {
  2457  		req.Name = &builder.name
  2458  
  2459  	}
  2460  	if builder.tenantKeyFlag {
  2461  		req.TenantKey = &builder.tenantKey
  2462  
  2463  	}
  2464  	return req
  2465  }
  2466  
  2467  type MentionEvent struct {
  2468  	Key       *string `json:"key,omitempty"`        // mention key
  2469  	Id        *UserId `json:"id,omitempty"`         // 用户 ID
  2470  	Name      *string `json:"name,omitempty"`       // 用户姓名
  2471  	TenantKey *string `json:"tenant_key,omitempty"` // tenant key
  2472  }
  2473  
  2474  type MentionEventBuilder struct {
  2475  	key           string // mention key
  2476  	keyFlag       bool
  2477  	id            *UserId // 用户 ID
  2478  	idFlag        bool
  2479  	name          string // 用户姓名
  2480  	nameFlag      bool
  2481  	tenantKey     string // tenant key
  2482  	tenantKeyFlag bool
  2483  }
  2484  
  2485  func NewMentionEventBuilder() *MentionEventBuilder {
  2486  	builder := &MentionEventBuilder{}
  2487  	return builder
  2488  }
  2489  
  2490  // mention key
  2491  //
  2492  // 示例值:@_user_1
  2493  func (builder *MentionEventBuilder) Key(key string) *MentionEventBuilder {
  2494  	builder.key = key
  2495  	builder.keyFlag = true
  2496  	return builder
  2497  }
  2498  
  2499  // 用户 ID
  2500  //
  2501  // 示例值:
  2502  func (builder *MentionEventBuilder) Id(id *UserId) *MentionEventBuilder {
  2503  	builder.id = id
  2504  	builder.idFlag = true
  2505  	return builder
  2506  }
  2507  
  2508  // 用户姓名
  2509  //
  2510  // 示例值:Tom
  2511  func (builder *MentionEventBuilder) Name(name string) *MentionEventBuilder {
  2512  	builder.name = name
  2513  	builder.nameFlag = true
  2514  	return builder
  2515  }
  2516  
  2517  // tenant key
  2518  //
  2519  // 示例值:736588c9260f175e
  2520  func (builder *MentionEventBuilder) TenantKey(tenantKey string) *MentionEventBuilder {
  2521  	builder.tenantKey = tenantKey
  2522  	builder.tenantKeyFlag = true
  2523  	return builder
  2524  }
  2525  
  2526  func (builder *MentionEventBuilder) Build() *MentionEvent {
  2527  	req := &MentionEvent{}
  2528  	if builder.keyFlag {
  2529  		req.Key = &builder.key
  2530  
  2531  	}
  2532  	if builder.idFlag {
  2533  		req.Id = builder.id
  2534  	}
  2535  	if builder.nameFlag {
  2536  		req.Name = &builder.name
  2537  
  2538  	}
  2539  	if builder.tenantKeyFlag {
  2540  		req.TenantKey = &builder.tenantKey
  2541  
  2542  	}
  2543  	return req
  2544  }
  2545  
  2546  type Message struct {
  2547  	MessageId      *string      `json:"message_id,omitempty"`       // 消息id,说明参见:[消息ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro#ac79c1c2)
  2548  	RootId         *string      `json:"root_id,omitempty"`          // 根消息id,说明参见:[消息ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro#ac79c1c2)
  2549  	ParentId       *string      `json:"parent_id,omitempty"`        // 父消息的id,说明参见:[消息ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro#ac79c1c2)
  2550  	MsgType        *string      `json:"msg_type,omitempty"`         // 消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,类型定义请参考[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json)
  2551  	CreateTime     *string      `json:"create_time,omitempty"`      // 消息生成的时间戳(毫秒)
  2552  	UpdateTime     *string      `json:"update_time,omitempty"`      // 消息更新的时间戳(毫秒)
  2553  	Deleted        *bool        `json:"deleted,omitempty"`          // 消息是否被撤回
  2554  	Updated        *bool        `json:"updated,omitempty"`          // 消息是否被更新
  2555  	ChatId         *string      `json:"chat_id,omitempty"`          // 所属的群
  2556  	Sender         *Sender      `json:"sender,omitempty"`           // 发送者,可以是用户或应用
  2557  	Body           *MessageBody `json:"body,omitempty"`             // 消息内容
  2558  	Mentions       []*Mention   `json:"mentions,omitempty"`         // 被@的用户或机器人的id列表
  2559  	UpperMessageId *string      `json:"upper_message_id,omitempty"` // 合并转发消息中,上一层级的消息id message_id,说明参见:[消息ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro#ac79c1c2)
  2560  }
  2561  
  2562  type MessageBuilder struct {
  2563  	messageId          string // 消息id,说明参见:[消息ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro#ac79c1c2)
  2564  	messageIdFlag      bool
  2565  	rootId             string // 根消息id,说明参见:[消息ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro#ac79c1c2)
  2566  	rootIdFlag         bool
  2567  	parentId           string // 父消息的id,说明参见:[消息ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro#ac79c1c2)
  2568  	parentIdFlag       bool
  2569  	msgType            string // 消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,类型定义请参考[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json)
  2570  	msgTypeFlag        bool
  2571  	createTime         string // 消息生成的时间戳(毫秒)
  2572  	createTimeFlag     bool
  2573  	updateTime         string // 消息更新的时间戳(毫秒)
  2574  	updateTimeFlag     bool
  2575  	deleted            bool // 消息是否被撤回
  2576  	deletedFlag        bool
  2577  	updated            bool // 消息是否被更新
  2578  	updatedFlag        bool
  2579  	chatId             string // 所属的群
  2580  	chatIdFlag         bool
  2581  	sender             *Sender // 发送者,可以是用户或应用
  2582  	senderFlag         bool
  2583  	body               *MessageBody // 消息内容
  2584  	bodyFlag           bool
  2585  	mentions           []*Mention // 被@的用户或机器人的id列表
  2586  	mentionsFlag       bool
  2587  	upperMessageId     string // 合并转发消息中,上一层级的消息id message_id,说明参见:[消息ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro#ac79c1c2)
  2588  	upperMessageIdFlag bool
  2589  }
  2590  
  2591  func NewMessageBuilder() *MessageBuilder {
  2592  	builder := &MessageBuilder{}
  2593  	return builder
  2594  }
  2595  
  2596  // 消息id,说明参见:[消息ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro#ac79c1c2)
  2597  //
  2598  // 示例值:om_dc13264520392913993dd051dba21dcf
  2599  func (builder *MessageBuilder) MessageId(messageId string) *MessageBuilder {
  2600  	builder.messageId = messageId
  2601  	builder.messageIdFlag = true
  2602  	return builder
  2603  }
  2604  
  2605  // 根消息id,说明参见:[消息ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro#ac79c1c2)
  2606  //
  2607  // 示例值:om_40eb06e7b84dc71c03e009ad3c754195
  2608  func (builder *MessageBuilder) RootId(rootId string) *MessageBuilder {
  2609  	builder.rootId = rootId
  2610  	builder.rootIdFlag = true
  2611  	return builder
  2612  }
  2613  
  2614  // 父消息的id,说明参见:[消息ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro#ac79c1c2)
  2615  //
  2616  // 示例值:om_d4be107c616aed9c1da8ed8068570a9f
  2617  func (builder *MessageBuilder) ParentId(parentId string) *MessageBuilder {
  2618  	builder.parentId = parentId
  2619  	builder.parentIdFlag = true
  2620  	return builder
  2621  }
  2622  
  2623  // 消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,类型定义请参考[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json)
  2624  //
  2625  // 示例值:card
  2626  func (builder *MessageBuilder) MsgType(msgType string) *MessageBuilder {
  2627  	builder.msgType = msgType
  2628  	builder.msgTypeFlag = true
  2629  	return builder
  2630  }
  2631  
  2632  // 消息生成的时间戳(毫秒)
  2633  //
  2634  // 示例值:1615380573411
  2635  func (builder *MessageBuilder) CreateTime(createTime string) *MessageBuilder {
  2636  	builder.createTime = createTime
  2637  	builder.createTimeFlag = true
  2638  	return builder
  2639  }
  2640  
  2641  // 消息更新的时间戳(毫秒)
  2642  //
  2643  // 示例值:1615380573411
  2644  func (builder *MessageBuilder) UpdateTime(updateTime string) *MessageBuilder {
  2645  	builder.updateTime = updateTime
  2646  	builder.updateTimeFlag = true
  2647  	return builder
  2648  }
  2649  
  2650  // 消息是否被撤回
  2651  //
  2652  // 示例值:false
  2653  func (builder *MessageBuilder) Deleted(deleted bool) *MessageBuilder {
  2654  	builder.deleted = deleted
  2655  	builder.deletedFlag = true
  2656  	return builder
  2657  }
  2658  
  2659  // 消息是否被更新
  2660  //
  2661  // 示例值:false
  2662  func (builder *MessageBuilder) Updated(updated bool) *MessageBuilder {
  2663  	builder.updated = updated
  2664  	builder.updatedFlag = true
  2665  	return builder
  2666  }
  2667  
  2668  // 所属的群
  2669  //
  2670  // 示例值:oc_5ad11d72b830411d72b836c20
  2671  func (builder *MessageBuilder) ChatId(chatId string) *MessageBuilder {
  2672  	builder.chatId = chatId
  2673  	builder.chatIdFlag = true
  2674  	return builder
  2675  }
  2676  
  2677  // 发送者,可以是用户或应用
  2678  //
  2679  // 示例值:object
  2680  func (builder *MessageBuilder) Sender(sender *Sender) *MessageBuilder {
  2681  	builder.sender = sender
  2682  	builder.senderFlag = true
  2683  	return builder
  2684  }
  2685  
  2686  // 消息内容
  2687  //
  2688  // 示例值:json结构
  2689  func (builder *MessageBuilder) Body(body *MessageBody) *MessageBuilder {
  2690  	builder.body = body
  2691  	builder.bodyFlag = true
  2692  	return builder
  2693  }
  2694  
  2695  // 被@的用户或机器人的id列表
  2696  //
  2697  // 示例值:
  2698  func (builder *MessageBuilder) Mentions(mentions []*Mention) *MessageBuilder {
  2699  	builder.mentions = mentions
  2700  	builder.mentionsFlag = true
  2701  	return builder
  2702  }
  2703  
  2704  // 合并转发消息中,上一层级的消息id message_id,说明参见:[消息ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message/intro#ac79c1c2)
  2705  //
  2706  // 示例值:om_40eb06e7b84dc71c03e009ad3c754195
  2707  func (builder *MessageBuilder) UpperMessageId(upperMessageId string) *MessageBuilder {
  2708  	builder.upperMessageId = upperMessageId
  2709  	builder.upperMessageIdFlag = true
  2710  	return builder
  2711  }
  2712  
  2713  func (builder *MessageBuilder) Build() *Message {
  2714  	req := &Message{}
  2715  	if builder.messageIdFlag {
  2716  		req.MessageId = &builder.messageId
  2717  
  2718  	}
  2719  	if builder.rootIdFlag {
  2720  		req.RootId = &builder.rootId
  2721  
  2722  	}
  2723  	if builder.parentIdFlag {
  2724  		req.ParentId = &builder.parentId
  2725  
  2726  	}
  2727  	if builder.msgTypeFlag {
  2728  		req.MsgType = &builder.msgType
  2729  
  2730  	}
  2731  	if builder.createTimeFlag {
  2732  		req.CreateTime = &builder.createTime
  2733  
  2734  	}
  2735  	if builder.updateTimeFlag {
  2736  		req.UpdateTime = &builder.updateTime
  2737  
  2738  	}
  2739  	if builder.deletedFlag {
  2740  		req.Deleted = &builder.deleted
  2741  
  2742  	}
  2743  	if builder.updatedFlag {
  2744  		req.Updated = &builder.updated
  2745  
  2746  	}
  2747  	if builder.chatIdFlag {
  2748  		req.ChatId = &builder.chatId
  2749  
  2750  	}
  2751  	if builder.senderFlag {
  2752  		req.Sender = builder.sender
  2753  	}
  2754  	if builder.bodyFlag {
  2755  		req.Body = builder.body
  2756  	}
  2757  	if builder.mentionsFlag {
  2758  		req.Mentions = builder.mentions
  2759  	}
  2760  	if builder.upperMessageIdFlag {
  2761  		req.UpperMessageId = &builder.upperMessageId
  2762  
  2763  	}
  2764  	return req
  2765  }
  2766  
  2767  type MessageReaction struct {
  2768  	ReactionId   *string   `json:"reaction_id,omitempty"`   // reaction资源ID
  2769  	Operator     *Operator `json:"operator,omitempty"`      // 添加reaction的操作人
  2770  	ActionTime   *string   `json:"action_time,omitempty"`   // reaction动作的的unix timestamp(单位:ms)
  2771  	ReactionType *Emoji    `json:"reaction_type,omitempty"` // reaction资源类型
  2772  }
  2773  
  2774  type MessageReactionBuilder struct {
  2775  	reactionId       string // reaction资源ID
  2776  	reactionIdFlag   bool
  2777  	operator         *Operator // 添加reaction的操作人
  2778  	operatorFlag     bool
  2779  	actionTime       string // reaction动作的的unix timestamp(单位:ms)
  2780  	actionTimeFlag   bool
  2781  	reactionType     *Emoji // reaction资源类型
  2782  	reactionTypeFlag bool
  2783  }
  2784  
  2785  func NewMessageReactionBuilder() *MessageReactionBuilder {
  2786  	builder := &MessageReactionBuilder{}
  2787  	return builder
  2788  }
  2789  
  2790  // reaction资源ID
  2791  //
  2792  // 示例值:ZCaCIjUBVVWSrm5L-3ZTw*************sNa8dHVplEzzSfJVUVLMLcS_
  2793  func (builder *MessageReactionBuilder) ReactionId(reactionId string) *MessageReactionBuilder {
  2794  	builder.reactionId = reactionId
  2795  	builder.reactionIdFlag = true
  2796  	return builder
  2797  }
  2798  
  2799  // 添加reaction的操作人
  2800  //
  2801  // 示例值:
  2802  func (builder *MessageReactionBuilder) Operator(operator *Operator) *MessageReactionBuilder {
  2803  	builder.operator = operator
  2804  	builder.operatorFlag = true
  2805  	return builder
  2806  }
  2807  
  2808  // reaction动作的的unix timestamp(单位:ms)
  2809  //
  2810  // 示例值:1626086391570
  2811  func (builder *MessageReactionBuilder) ActionTime(actionTime string) *MessageReactionBuilder {
  2812  	builder.actionTime = actionTime
  2813  	builder.actionTimeFlag = true
  2814  	return builder
  2815  }
  2816  
  2817  // reaction资源类型
  2818  //
  2819  // 示例值:
  2820  func (builder *MessageReactionBuilder) ReactionType(reactionType *Emoji) *MessageReactionBuilder {
  2821  	builder.reactionType = reactionType
  2822  	builder.reactionTypeFlag = true
  2823  	return builder
  2824  }
  2825  
  2826  func (builder *MessageReactionBuilder) Build() *MessageReaction {
  2827  	req := &MessageReaction{}
  2828  	if builder.reactionIdFlag {
  2829  		req.ReactionId = &builder.reactionId
  2830  
  2831  	}
  2832  	if builder.operatorFlag {
  2833  		req.Operator = builder.operator
  2834  	}
  2835  	if builder.actionTimeFlag {
  2836  		req.ActionTime = &builder.actionTime
  2837  
  2838  	}
  2839  	if builder.reactionTypeFlag {
  2840  		req.ReactionType = builder.reactionType
  2841  	}
  2842  	return req
  2843  }
  2844  
  2845  type MessageResource struct {
  2846  }
  2847  
  2848  type MessageBody struct {
  2849  	Content *string `json:"content,omitempty"` // 消息内容,json结构序列化后的字符串。不同msg_type对应不同内容。消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,类型定义请参考:[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json)
  2850  }
  2851  
  2852  type MessageBodyBuilder struct {
  2853  	content     string // 消息内容,json结构序列化后的字符串。不同msg_type对应不同内容。消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,类型定义请参考:[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json)
  2854  	contentFlag bool
  2855  }
  2856  
  2857  func NewMessageBodyBuilder() *MessageBodyBuilder {
  2858  	builder := &MessageBodyBuilder{}
  2859  	return builder
  2860  }
  2861  
  2862  // 消息内容,json结构序列化后的字符串。不同msg_type对应不同内容。消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,类型定义请参考:[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json)
  2863  //
  2864  // 示例值:text:测试消息
  2865  func (builder *MessageBodyBuilder) Content(content string) *MessageBodyBuilder {
  2866  	builder.content = content
  2867  	builder.contentFlag = true
  2868  	return builder
  2869  }
  2870  
  2871  func (builder *MessageBodyBuilder) Build() *MessageBody {
  2872  	req := &MessageBody{}
  2873  	if builder.contentFlag {
  2874  		req.Content = &builder.content
  2875  
  2876  	}
  2877  	return req
  2878  }
  2879  
  2880  type ModeratorList struct {
  2881  	AddedMemberList   []*ListEventModerator `json:"added_member_list,omitempty"`   // 被添加进可发言名单的用户列表(列表中一定会有owner)
  2882  	RemovedMemberList []*ListEventModerator `json:"removed_member_list,omitempty"` // 被移除出可发言名单的用户列表
  2883  }
  2884  
  2885  type ModeratorListBuilder struct {
  2886  	addedMemberList       []*ListEventModerator // 被添加进可发言名单的用户列表(列表中一定会有owner)
  2887  	addedMemberListFlag   bool
  2888  	removedMemberList     []*ListEventModerator // 被移除出可发言名单的用户列表
  2889  	removedMemberListFlag bool
  2890  }
  2891  
  2892  func NewModeratorListBuilder() *ModeratorListBuilder {
  2893  	builder := &ModeratorListBuilder{}
  2894  	return builder
  2895  }
  2896  
  2897  // 被添加进可发言名单的用户列表(列表中一定会有owner)
  2898  //
  2899  // 示例值:
  2900  func (builder *ModeratorListBuilder) AddedMemberList(addedMemberList []*ListEventModerator) *ModeratorListBuilder {
  2901  	builder.addedMemberList = addedMemberList
  2902  	builder.addedMemberListFlag = true
  2903  	return builder
  2904  }
  2905  
  2906  // 被移除出可发言名单的用户列表
  2907  //
  2908  // 示例值:
  2909  func (builder *ModeratorListBuilder) RemovedMemberList(removedMemberList []*ListEventModerator) *ModeratorListBuilder {
  2910  	builder.removedMemberList = removedMemberList
  2911  	builder.removedMemberListFlag = true
  2912  	return builder
  2913  }
  2914  
  2915  func (builder *ModeratorListBuilder) Build() *ModeratorList {
  2916  	req := &ModeratorList{}
  2917  	if builder.addedMemberListFlag {
  2918  		req.AddedMemberList = builder.addedMemberList
  2919  	}
  2920  	if builder.removedMemberListFlag {
  2921  		req.RemovedMemberList = builder.removedMemberList
  2922  	}
  2923  	return req
  2924  }
  2925  
  2926  type MsgProcessData struct {
  2927  	PDate                   *string  `json:"p_date,omitempty"`                        // 分区日期
  2928  	DepartmentId            *string  `json:"department_id,omitempty"`                 // 部门id
  2929  	DepartmentPath          *string  `json:"department_path,omitempty"`               // 部门路径
  2930  	AvgImpMsgReadRate12h    *float64 `json:"avg_imp_msg_read_rate_12h,omitempty"`     // 人均重要消息 12 小时阅读率
  2931  	MsgReadRate12h          *float64 `json:"msg_read_rate_12h,omitempty"`             // 人均 12 小时阅读率
  2932  	AvgReceiveMsgCnt        *float64 `json:"avg_receive_msg_cnt,omitempty"`           // 人均接收消息数
  2933  	AvgReadMsgCnt           *float64 `json:"avg_read_msg_cnt,omitempty"`              // 人均阅读消息数
  2934  	AvgImpReadMsgCnt        *float64 `json:"avg_imp_read_msg_cnt,omitempty"`          // 人均重要消息阅读数
  2935  	AvgImpReceiveMsgCnt     *float64 `json:"avg_imp_receive_msg_cnt,omitempty"`       // 人均重要消息接收数
  2936  	HighLoadRate            *float64 `json:"high_load_rate,omitempty"`                // 信息高负载员工占比
  2937  	BigGroupMsgRate         *float64 `json:"big_group_msg_rate,omitempty"`            // 大群(100人以上)消息占比
  2938  	BigGroupTopicMsgRate    *float64 `json:"big_group_topic_msg_rate,omitempty"`      // 大群消息中话题消息占比
  2939  	AvgReceiveBotMsgCnt     *float64 `json:"avg_receive_bot_msg_cnt,omitempty"`       // 人均接收 bot 消息数
  2940  	AvgBotImpMsgReadRate12h *float64 `json:"avg_bot_imp_msg_read_rate_12h,omitempty"` // 重要 bot 消息 12 小时阅读率
  2941  	ReceiveBotMsgRate       *float64 `json:"receive_bot_msg_rate,omitempty"`          // 接收 bot 消息占比
  2942  	UseChatBoxRate          *float64 `json:"use_chat_box_rate,omitempty"`             // 会话盒子使用率
  2943  	ReceiveMuteMsgRate      *float64 `json:"receive_mute_msg_rate,omitempty"`         // 接收消息中 mute 消息占比
  2944  	ReadMuteMsgRate         *float64 `json:"read_mute_msg_rate,omitempty"`            // 阅读消息中 mute 消息占比
  2945  	AvgReceiveImpMsgChatCnt *float64 `json:"avg_receive_imp_msg_chat_cnt,omitempty"`  // 人均有重要消息的会话数
  2946  }
  2947  
  2948  type MsgProcessDataBuilder struct {
  2949  	pDate                       string // 分区日期
  2950  	pDateFlag                   bool
  2951  	departmentId                string // 部门id
  2952  	departmentIdFlag            bool
  2953  	departmentPath              string // 部门路径
  2954  	departmentPathFlag          bool
  2955  	avgImpMsgReadRate12h        float64 // 人均重要消息 12 小时阅读率
  2956  	avgImpMsgReadRate12hFlag    bool
  2957  	msgReadRate12h              float64 // 人均 12 小时阅读率
  2958  	msgReadRate12hFlag          bool
  2959  	avgReceiveMsgCnt            float64 // 人均接收消息数
  2960  	avgReceiveMsgCntFlag        bool
  2961  	avgReadMsgCnt               float64 // 人均阅读消息数
  2962  	avgReadMsgCntFlag           bool
  2963  	avgImpReadMsgCnt            float64 // 人均重要消息阅读数
  2964  	avgImpReadMsgCntFlag        bool
  2965  	avgImpReceiveMsgCnt         float64 // 人均重要消息接收数
  2966  	avgImpReceiveMsgCntFlag     bool
  2967  	highLoadRate                float64 // 信息高负载员工占比
  2968  	highLoadRateFlag            bool
  2969  	bigGroupMsgRate             float64 // 大群(100人以上)消息占比
  2970  	bigGroupMsgRateFlag         bool
  2971  	bigGroupTopicMsgRate        float64 // 大群消息中话题消息占比
  2972  	bigGroupTopicMsgRateFlag    bool
  2973  	avgReceiveBotMsgCnt         float64 // 人均接收 bot 消息数
  2974  	avgReceiveBotMsgCntFlag     bool
  2975  	avgBotImpMsgReadRate12h     float64 // 重要 bot 消息 12 小时阅读率
  2976  	avgBotImpMsgReadRate12hFlag bool
  2977  	receiveBotMsgRate           float64 // 接收 bot 消息占比
  2978  	receiveBotMsgRateFlag       bool
  2979  	useChatBoxRate              float64 // 会话盒子使用率
  2980  	useChatBoxRateFlag          bool
  2981  	receiveMuteMsgRate          float64 // 接收消息中 mute 消息占比
  2982  	receiveMuteMsgRateFlag      bool
  2983  	readMuteMsgRate             float64 // 阅读消息中 mute 消息占比
  2984  	readMuteMsgRateFlag         bool
  2985  	avgReceiveImpMsgChatCnt     float64 // 人均有重要消息的会话数
  2986  	avgReceiveImpMsgChatCntFlag bool
  2987  }
  2988  
  2989  func NewMsgProcessDataBuilder() *MsgProcessDataBuilder {
  2990  	builder := &MsgProcessDataBuilder{}
  2991  	return builder
  2992  }
  2993  
  2994  // 分区日期
  2995  //
  2996  // 示例值:2022-02-02
  2997  func (builder *MsgProcessDataBuilder) PDate(pDate string) *MsgProcessDataBuilder {
  2998  	builder.pDate = pDate
  2999  	builder.pDateFlag = true
  3000  	return builder
  3001  }
  3002  
  3003  // 部门id
  3004  //
  3005  // 示例值:123456
  3006  func (builder *MsgProcessDataBuilder) DepartmentId(departmentId string) *MsgProcessDataBuilder {
  3007  	builder.departmentId = departmentId
  3008  	builder.departmentIdFlag = true
  3009  	return builder
  3010  }
  3011  
  3012  // 部门路径
  3013  //
  3014  // 示例值:test/subtest
  3015  func (builder *MsgProcessDataBuilder) DepartmentPath(departmentPath string) *MsgProcessDataBuilder {
  3016  	builder.departmentPath = departmentPath
  3017  	builder.departmentPathFlag = true
  3018  	return builder
  3019  }
  3020  
  3021  // 人均重要消息 12 小时阅读率
  3022  //
  3023  // 示例值:0.50
  3024  func (builder *MsgProcessDataBuilder) AvgImpMsgReadRate12h(avgImpMsgReadRate12h float64) *MsgProcessDataBuilder {
  3025  	builder.avgImpMsgReadRate12h = avgImpMsgReadRate12h
  3026  	builder.avgImpMsgReadRate12hFlag = true
  3027  	return builder
  3028  }
  3029  
  3030  // 人均 12 小时阅读率
  3031  //
  3032  // 示例值:0.50
  3033  func (builder *MsgProcessDataBuilder) MsgReadRate12h(msgReadRate12h float64) *MsgProcessDataBuilder {
  3034  	builder.msgReadRate12h = msgReadRate12h
  3035  	builder.msgReadRate12hFlag = true
  3036  	return builder
  3037  }
  3038  
  3039  // 人均接收消息数
  3040  //
  3041  // 示例值:50
  3042  func (builder *MsgProcessDataBuilder) AvgReceiveMsgCnt(avgReceiveMsgCnt float64) *MsgProcessDataBuilder {
  3043  	builder.avgReceiveMsgCnt = avgReceiveMsgCnt
  3044  	builder.avgReceiveMsgCntFlag = true
  3045  	return builder
  3046  }
  3047  
  3048  // 人均阅读消息数
  3049  //
  3050  // 示例值:50
  3051  func (builder *MsgProcessDataBuilder) AvgReadMsgCnt(avgReadMsgCnt float64) *MsgProcessDataBuilder {
  3052  	builder.avgReadMsgCnt = avgReadMsgCnt
  3053  	builder.avgReadMsgCntFlag = true
  3054  	return builder
  3055  }
  3056  
  3057  // 人均重要消息阅读数
  3058  //
  3059  // 示例值:50
  3060  func (builder *MsgProcessDataBuilder) AvgImpReadMsgCnt(avgImpReadMsgCnt float64) *MsgProcessDataBuilder {
  3061  	builder.avgImpReadMsgCnt = avgImpReadMsgCnt
  3062  	builder.avgImpReadMsgCntFlag = true
  3063  	return builder
  3064  }
  3065  
  3066  // 人均重要消息接收数
  3067  //
  3068  // 示例值:50
  3069  func (builder *MsgProcessDataBuilder) AvgImpReceiveMsgCnt(avgImpReceiveMsgCnt float64) *MsgProcessDataBuilder {
  3070  	builder.avgImpReceiveMsgCnt = avgImpReceiveMsgCnt
  3071  	builder.avgImpReceiveMsgCntFlag = true
  3072  	return builder
  3073  }
  3074  
  3075  // 信息高负载员工占比
  3076  //
  3077  // 示例值:0.50
  3078  func (builder *MsgProcessDataBuilder) HighLoadRate(highLoadRate float64) *MsgProcessDataBuilder {
  3079  	builder.highLoadRate = highLoadRate
  3080  	builder.highLoadRateFlag = true
  3081  	return builder
  3082  }
  3083  
  3084  // 大群(100人以上)消息占比
  3085  //
  3086  // 示例值:0.50
  3087  func (builder *MsgProcessDataBuilder) BigGroupMsgRate(bigGroupMsgRate float64) *MsgProcessDataBuilder {
  3088  	builder.bigGroupMsgRate = bigGroupMsgRate
  3089  	builder.bigGroupMsgRateFlag = true
  3090  	return builder
  3091  }
  3092  
  3093  // 大群消息中话题消息占比
  3094  //
  3095  // 示例值:0.50
  3096  func (builder *MsgProcessDataBuilder) BigGroupTopicMsgRate(bigGroupTopicMsgRate float64) *MsgProcessDataBuilder {
  3097  	builder.bigGroupTopicMsgRate = bigGroupTopicMsgRate
  3098  	builder.bigGroupTopicMsgRateFlag = true
  3099  	return builder
  3100  }
  3101  
  3102  // 人均接收 bot 消息数
  3103  //
  3104  // 示例值:0.50
  3105  func (builder *MsgProcessDataBuilder) AvgReceiveBotMsgCnt(avgReceiveBotMsgCnt float64) *MsgProcessDataBuilder {
  3106  	builder.avgReceiveBotMsgCnt = avgReceiveBotMsgCnt
  3107  	builder.avgReceiveBotMsgCntFlag = true
  3108  	return builder
  3109  }
  3110  
  3111  // 重要 bot 消息 12 小时阅读率
  3112  //
  3113  // 示例值:0.50
  3114  func (builder *MsgProcessDataBuilder) AvgBotImpMsgReadRate12h(avgBotImpMsgReadRate12h float64) *MsgProcessDataBuilder {
  3115  	builder.avgBotImpMsgReadRate12h = avgBotImpMsgReadRate12h
  3116  	builder.avgBotImpMsgReadRate12hFlag = true
  3117  	return builder
  3118  }
  3119  
  3120  // 接收 bot 消息占比
  3121  //
  3122  // 示例值:0.50
  3123  func (builder *MsgProcessDataBuilder) ReceiveBotMsgRate(receiveBotMsgRate float64) *MsgProcessDataBuilder {
  3124  	builder.receiveBotMsgRate = receiveBotMsgRate
  3125  	builder.receiveBotMsgRateFlag = true
  3126  	return builder
  3127  }
  3128  
  3129  // 会话盒子使用率
  3130  //
  3131  // 示例值:0.50
  3132  func (builder *MsgProcessDataBuilder) UseChatBoxRate(useChatBoxRate float64) *MsgProcessDataBuilder {
  3133  	builder.useChatBoxRate = useChatBoxRate
  3134  	builder.useChatBoxRateFlag = true
  3135  	return builder
  3136  }
  3137  
  3138  // 接收消息中 mute 消息占比
  3139  //
  3140  // 示例值:0.50
  3141  func (builder *MsgProcessDataBuilder) ReceiveMuteMsgRate(receiveMuteMsgRate float64) *MsgProcessDataBuilder {
  3142  	builder.receiveMuteMsgRate = receiveMuteMsgRate
  3143  	builder.receiveMuteMsgRateFlag = true
  3144  	return builder
  3145  }
  3146  
  3147  // 阅读消息中 mute 消息占比
  3148  //
  3149  // 示例值:0.50
  3150  func (builder *MsgProcessDataBuilder) ReadMuteMsgRate(readMuteMsgRate float64) *MsgProcessDataBuilder {
  3151  	builder.readMuteMsgRate = readMuteMsgRate
  3152  	builder.readMuteMsgRateFlag = true
  3153  	return builder
  3154  }
  3155  
  3156  // 人均有重要消息的会话数
  3157  //
  3158  // 示例值:50
  3159  func (builder *MsgProcessDataBuilder) AvgReceiveImpMsgChatCnt(avgReceiveImpMsgChatCnt float64) *MsgProcessDataBuilder {
  3160  	builder.avgReceiveImpMsgChatCnt = avgReceiveImpMsgChatCnt
  3161  	builder.avgReceiveImpMsgChatCntFlag = true
  3162  	return builder
  3163  }
  3164  
  3165  func (builder *MsgProcessDataBuilder) Build() *MsgProcessData {
  3166  	req := &MsgProcessData{}
  3167  	if builder.pDateFlag {
  3168  		req.PDate = &builder.pDate
  3169  
  3170  	}
  3171  	if builder.departmentIdFlag {
  3172  		req.DepartmentId = &builder.departmentId
  3173  
  3174  	}
  3175  	if builder.departmentPathFlag {
  3176  		req.DepartmentPath = &builder.departmentPath
  3177  
  3178  	}
  3179  	if builder.avgImpMsgReadRate12hFlag {
  3180  		req.AvgImpMsgReadRate12h = &builder.avgImpMsgReadRate12h
  3181  
  3182  	}
  3183  	if builder.msgReadRate12hFlag {
  3184  		req.MsgReadRate12h = &builder.msgReadRate12h
  3185  
  3186  	}
  3187  	if builder.avgReceiveMsgCntFlag {
  3188  		req.AvgReceiveMsgCnt = &builder.avgReceiveMsgCnt
  3189  
  3190  	}
  3191  	if builder.avgReadMsgCntFlag {
  3192  		req.AvgReadMsgCnt = &builder.avgReadMsgCnt
  3193  
  3194  	}
  3195  	if builder.avgImpReadMsgCntFlag {
  3196  		req.AvgImpReadMsgCnt = &builder.avgImpReadMsgCnt
  3197  
  3198  	}
  3199  	if builder.avgImpReceiveMsgCntFlag {
  3200  		req.AvgImpReceiveMsgCnt = &builder.avgImpReceiveMsgCnt
  3201  
  3202  	}
  3203  	if builder.highLoadRateFlag {
  3204  		req.HighLoadRate = &builder.highLoadRate
  3205  
  3206  	}
  3207  	if builder.bigGroupMsgRateFlag {
  3208  		req.BigGroupMsgRate = &builder.bigGroupMsgRate
  3209  
  3210  	}
  3211  	if builder.bigGroupTopicMsgRateFlag {
  3212  		req.BigGroupTopicMsgRate = &builder.bigGroupTopicMsgRate
  3213  
  3214  	}
  3215  	if builder.avgReceiveBotMsgCntFlag {
  3216  		req.AvgReceiveBotMsgCnt = &builder.avgReceiveBotMsgCnt
  3217  
  3218  	}
  3219  	if builder.avgBotImpMsgReadRate12hFlag {
  3220  		req.AvgBotImpMsgReadRate12h = &builder.avgBotImpMsgReadRate12h
  3221  
  3222  	}
  3223  	if builder.receiveBotMsgRateFlag {
  3224  		req.ReceiveBotMsgRate = &builder.receiveBotMsgRate
  3225  
  3226  	}
  3227  	if builder.useChatBoxRateFlag {
  3228  		req.UseChatBoxRate = &builder.useChatBoxRate
  3229  
  3230  	}
  3231  	if builder.receiveMuteMsgRateFlag {
  3232  		req.ReceiveMuteMsgRate = &builder.receiveMuteMsgRate
  3233  
  3234  	}
  3235  	if builder.readMuteMsgRateFlag {
  3236  		req.ReadMuteMsgRate = &builder.readMuteMsgRate
  3237  
  3238  	}
  3239  	if builder.avgReceiveImpMsgChatCntFlag {
  3240  		req.AvgReceiveImpMsgChatCnt = &builder.avgReceiveImpMsgChatCnt
  3241  
  3242  	}
  3243  	return req
  3244  }
  3245  
  3246  type Operator struct {
  3247  	OperatorId   *string `json:"operator_id,omitempty"`   // 操作人ID
  3248  	OperatorType *string `json:"operator_type,omitempty"` // 操作人身份,用户或应用
  3249  }
  3250  
  3251  type OperatorBuilder struct {
  3252  	operatorId       string // 操作人ID
  3253  	operatorIdFlag   bool
  3254  	operatorType     string // 操作人身份,用户或应用
  3255  	operatorTypeFlag bool
  3256  }
  3257  
  3258  func NewOperatorBuilder() *OperatorBuilder {
  3259  	builder := &OperatorBuilder{}
  3260  	return builder
  3261  }
  3262  
  3263  // 操作人ID
  3264  //
  3265  // 示例值:ou_ff0b7ba35fb********67dfc8b885136
  3266  func (builder *OperatorBuilder) OperatorId(operatorId string) *OperatorBuilder {
  3267  	builder.operatorId = operatorId
  3268  	builder.operatorIdFlag = true
  3269  	return builder
  3270  }
  3271  
  3272  // 操作人身份,用户或应用
  3273  //
  3274  // 示例值:app/user
  3275  func (builder *OperatorBuilder) OperatorType(operatorType string) *OperatorBuilder {
  3276  	builder.operatorType = operatorType
  3277  	builder.operatorTypeFlag = true
  3278  	return builder
  3279  }
  3280  
  3281  func (builder *OperatorBuilder) Build() *Operator {
  3282  	req := &Operator{}
  3283  	if builder.operatorIdFlag {
  3284  		req.OperatorId = &builder.operatorId
  3285  
  3286  	}
  3287  	if builder.operatorTypeFlag {
  3288  		req.OperatorType = &builder.operatorType
  3289  
  3290  	}
  3291  	return req
  3292  }
  3293  
  3294  type Pin struct {
  3295  	MessageId      *string `json:"message_id,omitempty"`       // Pin的消息ID
  3296  	ChatId         *string `json:"chat_id,omitempty"`          // Pin消息所在的群聊ID
  3297  	OperatorId     *string `json:"operator_id,omitempty"`      // Pin的操作人ID
  3298  	OperatorIdType *string `json:"operator_id_type,omitempty"` // Pin的操作人ID类型
  3299  	CreateTime     *string `json:"create_time,omitempty"`      // Pin的创建时间(毫秒级时间戳)
  3300  }
  3301  
  3302  type PinBuilder struct {
  3303  	messageId          string // Pin的消息ID
  3304  	messageIdFlag      bool
  3305  	chatId             string // Pin消息所在的群聊ID
  3306  	chatIdFlag         bool
  3307  	operatorId         string // Pin的操作人ID
  3308  	operatorIdFlag     bool
  3309  	operatorIdType     string // Pin的操作人ID类型
  3310  	operatorIdTypeFlag bool
  3311  	createTime         string // Pin的创建时间(毫秒级时间戳)
  3312  	createTimeFlag     bool
  3313  }
  3314  
  3315  func NewPinBuilder() *PinBuilder {
  3316  	builder := &PinBuilder{}
  3317  	return builder
  3318  }
  3319  
  3320  // Pin的消息ID
  3321  //
  3322  // 示例值:om_dc13264520392913993dd051dba21dcf
  3323  func (builder *PinBuilder) MessageId(messageId string) *PinBuilder {
  3324  	builder.messageId = messageId
  3325  	builder.messageIdFlag = true
  3326  	return builder
  3327  }
  3328  
  3329  // Pin消息所在的群聊ID
  3330  //
  3331  // 示例值:oc_a0553eda9014c201e6969b478895c230
  3332  func (builder *PinBuilder) ChatId(chatId string) *PinBuilder {
  3333  	builder.chatId = chatId
  3334  	builder.chatIdFlag = true
  3335  	return builder
  3336  }
  3337  
  3338  // Pin的操作人ID
  3339  //
  3340  // 示例值:ou_7d8a6e6df7621556ce0d21922b676706ccs
  3341  func (builder *PinBuilder) OperatorId(operatorId string) *PinBuilder {
  3342  	builder.operatorId = operatorId
  3343  	builder.operatorIdFlag = true
  3344  	return builder
  3345  }
  3346  
  3347  // Pin的操作人ID类型
  3348  //
  3349  // 示例值:open_id
  3350  func (builder *PinBuilder) OperatorIdType(operatorIdType string) *PinBuilder {
  3351  	builder.operatorIdType = operatorIdType
  3352  	builder.operatorIdTypeFlag = true
  3353  	return builder
  3354  }
  3355  
  3356  // Pin的创建时间(毫秒级时间戳)
  3357  //
  3358  // 示例值:1615380573211
  3359  func (builder *PinBuilder) CreateTime(createTime string) *PinBuilder {
  3360  	builder.createTime = createTime
  3361  	builder.createTimeFlag = true
  3362  	return builder
  3363  }
  3364  
  3365  func (builder *PinBuilder) Build() *Pin {
  3366  	req := &Pin{}
  3367  	if builder.messageIdFlag {
  3368  		req.MessageId = &builder.messageId
  3369  
  3370  	}
  3371  	if builder.chatIdFlag {
  3372  		req.ChatId = &builder.chatId
  3373  
  3374  	}
  3375  	if builder.operatorIdFlag {
  3376  		req.OperatorId = &builder.operatorId
  3377  
  3378  	}
  3379  	if builder.operatorIdTypeFlag {
  3380  		req.OperatorIdType = &builder.operatorIdType
  3381  
  3382  	}
  3383  	if builder.createTimeFlag {
  3384  		req.CreateTime = &builder.createTime
  3385  
  3386  	}
  3387  	return req
  3388  }
  3389  
  3390  type PinedMessage struct {
  3391  	Pin     *Pin     `json:"pin,omitempty"`     // Pin的操作信息
  3392  	Message *Message `json:"message,omitempty"` // 被Pin的消息实体
  3393  }
  3394  
  3395  type PinedMessageBuilder struct {
  3396  	pin         *Pin // Pin的操作信息
  3397  	pinFlag     bool
  3398  	message     *Message // 被Pin的消息实体
  3399  	messageFlag bool
  3400  }
  3401  
  3402  func NewPinedMessageBuilder() *PinedMessageBuilder {
  3403  	builder := &PinedMessageBuilder{}
  3404  	return builder
  3405  }
  3406  
  3407  // Pin的操作信息
  3408  //
  3409  // 示例值:
  3410  func (builder *PinedMessageBuilder) Pin(pin *Pin) *PinedMessageBuilder {
  3411  	builder.pin = pin
  3412  	builder.pinFlag = true
  3413  	return builder
  3414  }
  3415  
  3416  // 被Pin的消息实体
  3417  //
  3418  // 示例值:
  3419  func (builder *PinedMessageBuilder) Message(message *Message) *PinedMessageBuilder {
  3420  	builder.message = message
  3421  	builder.messageFlag = true
  3422  	return builder
  3423  }
  3424  
  3425  func (builder *PinedMessageBuilder) Build() *PinedMessage {
  3426  	req := &PinedMessage{}
  3427  	if builder.pinFlag {
  3428  		req.Pin = builder.pin
  3429  	}
  3430  	if builder.messageFlag {
  3431  		req.Message = builder.message
  3432  	}
  3433  	return req
  3434  }
  3435  
  3436  type ReadUser struct {
  3437  	UserIdType *string `json:"user_id_type,omitempty"` // 用户id类型
  3438  	UserId     *string `json:"user_id,omitempty"`      // 用户id
  3439  	Timestamp  *string `json:"timestamp,omitempty"`    // 阅读时间
  3440  	TenantKey  *string `json:"tenant_key,omitempty"`   // tenant key
  3441  }
  3442  
  3443  type ReadUserBuilder struct {
  3444  	userIdType     string // 用户id类型
  3445  	userIdTypeFlag bool
  3446  	userId         string // 用户id
  3447  	userIdFlag     bool
  3448  	timestamp      string // 阅读时间
  3449  	timestampFlag  bool
  3450  	tenantKey      string // tenant key
  3451  	tenantKeyFlag  bool
  3452  }
  3453  
  3454  func NewReadUserBuilder() *ReadUserBuilder {
  3455  	builder := &ReadUserBuilder{}
  3456  	return builder
  3457  }
  3458  
  3459  // 用户id类型
  3460  //
  3461  // 示例值:open_id
  3462  func (builder *ReadUserBuilder) UserIdType(userIdType string) *ReadUserBuilder {
  3463  	builder.userIdType = userIdType
  3464  	builder.userIdTypeFlag = true
  3465  	return builder
  3466  }
  3467  
  3468  // 用户id
  3469  //
  3470  // 示例值:ou_9b851f7b51a9d58d109982337c46f3de
  3471  func (builder *ReadUserBuilder) UserId(userId string) *ReadUserBuilder {
  3472  	builder.userId = userId
  3473  	builder.userIdFlag = true
  3474  	return builder
  3475  }
  3476  
  3477  // 阅读时间
  3478  //
  3479  // 示例值:1609484183000
  3480  func (builder *ReadUserBuilder) Timestamp(timestamp string) *ReadUserBuilder {
  3481  	builder.timestamp = timestamp
  3482  	builder.timestampFlag = true
  3483  	return builder
  3484  }
  3485  
  3486  // tenant key
  3487  //
  3488  // 示例值:736588c9260f175e
  3489  func (builder *ReadUserBuilder) TenantKey(tenantKey string) *ReadUserBuilder {
  3490  	builder.tenantKey = tenantKey
  3491  	builder.tenantKeyFlag = true
  3492  	return builder
  3493  }
  3494  
  3495  func (builder *ReadUserBuilder) Build() *ReadUser {
  3496  	req := &ReadUser{}
  3497  	if builder.userIdTypeFlag {
  3498  		req.UserIdType = &builder.userIdType
  3499  
  3500  	}
  3501  	if builder.userIdFlag {
  3502  		req.UserId = &builder.userId
  3503  
  3504  	}
  3505  	if builder.timestampFlag {
  3506  		req.Timestamp = &builder.timestamp
  3507  
  3508  	}
  3509  	if builder.tenantKeyFlag {
  3510  		req.TenantKey = &builder.tenantKey
  3511  
  3512  	}
  3513  	return req
  3514  }
  3515  
  3516  type Sender struct {
  3517  	Id         *string `json:"id,omitempty"`          // 该字段标识发送者的id
  3518  	IdType     *string `json:"id_type,omitempty"`     // 该字段标识发送者的id类型
  3519  	SenderType *string `json:"sender_type,omitempty"` // 该字段标识发送者的类型
  3520  	TenantKey  *string `json:"tenant_key,omitempty"`  // 为租户在飞书上的唯一标识,用来换取对应的tenant_access_token,也可以用作租户在应用里面的唯一标识
  3521  }
  3522  
  3523  type SenderBuilder struct {
  3524  	id             string // 该字段标识发送者的id
  3525  	idFlag         bool
  3526  	idType         string // 该字段标识发送者的id类型
  3527  	idTypeFlag     bool
  3528  	senderType     string // 该字段标识发送者的类型
  3529  	senderTypeFlag bool
  3530  	tenantKey      string // 为租户在飞书上的唯一标识,用来换取对应的tenant_access_token,也可以用作租户在应用里面的唯一标识
  3531  	tenantKeyFlag  bool
  3532  }
  3533  
  3534  func NewSenderBuilder() *SenderBuilder {
  3535  	builder := &SenderBuilder{}
  3536  	return builder
  3537  }
  3538  
  3539  // 该字段标识发送者的id
  3540  //
  3541  // 示例值:cli_9f427eec54ae901b
  3542  func (builder *SenderBuilder) Id(id string) *SenderBuilder {
  3543  	builder.id = id
  3544  	builder.idFlag = true
  3545  	return builder
  3546  }
  3547  
  3548  // 该字段标识发送者的id类型
  3549  //
  3550  // 示例值:app_id
  3551  func (builder *SenderBuilder) IdType(idType string) *SenderBuilder {
  3552  	builder.idType = idType
  3553  	builder.idTypeFlag = true
  3554  	return builder
  3555  }
  3556  
  3557  // 该字段标识发送者的类型
  3558  //
  3559  // 示例值:app
  3560  func (builder *SenderBuilder) SenderType(senderType string) *SenderBuilder {
  3561  	builder.senderType = senderType
  3562  	builder.senderTypeFlag = true
  3563  	return builder
  3564  }
  3565  
  3566  // 为租户在飞书上的唯一标识,用来换取对应的tenant_access_token,也可以用作租户在应用里面的唯一标识
  3567  //
  3568  // 示例值:736588c9260f175e
  3569  func (builder *SenderBuilder) TenantKey(tenantKey string) *SenderBuilder {
  3570  	builder.tenantKey = tenantKey
  3571  	builder.tenantKeyFlag = true
  3572  	return builder
  3573  }
  3574  
  3575  func (builder *SenderBuilder) Build() *Sender {
  3576  	req := &Sender{}
  3577  	if builder.idFlag {
  3578  		req.Id = &builder.id
  3579  
  3580  	}
  3581  	if builder.idTypeFlag {
  3582  		req.IdType = &builder.idType
  3583  
  3584  	}
  3585  	if builder.senderTypeFlag {
  3586  		req.SenderType = &builder.senderType
  3587  
  3588  	}
  3589  	if builder.tenantKeyFlag {
  3590  		req.TenantKey = &builder.tenantKey
  3591  
  3592  	}
  3593  	return req
  3594  }
  3595  
  3596  type SpecialFocus struct {
  3597  	Id     *string `json:"id,omitempty"`      // 用户id
  3598  	IdType *string `json:"id_type,omitempty"` // id open_id/user_id/union_id/app_id
  3599  }
  3600  
  3601  type SpecialFocusBuilder struct {
  3602  	id         string // 用户id
  3603  	idFlag     bool
  3604  	idType     string // id open_id/user_id/union_id/app_id
  3605  	idTypeFlag bool
  3606  }
  3607  
  3608  func NewSpecialFocusBuilder() *SpecialFocusBuilder {
  3609  	builder := &SpecialFocusBuilder{}
  3610  	return builder
  3611  }
  3612  
  3613  // 用户id
  3614  //
  3615  // 示例值:ou_155184d1e73cbfb8973e5a9e698e74f2
  3616  func (builder *SpecialFocusBuilder) Id(id string) *SpecialFocusBuilder {
  3617  	builder.id = id
  3618  	builder.idFlag = true
  3619  	return builder
  3620  }
  3621  
  3622  // id open_id/user_id/union_id/app_id
  3623  //
  3624  // 示例值:
  3625  func (builder *SpecialFocusBuilder) IdType(idType string) *SpecialFocusBuilder {
  3626  	builder.idType = idType
  3627  	builder.idTypeFlag = true
  3628  	return builder
  3629  }
  3630  
  3631  func (builder *SpecialFocusBuilder) Build() *SpecialFocus {
  3632  	req := &SpecialFocus{}
  3633  	if builder.idFlag {
  3634  		req.Id = &builder.id
  3635  
  3636  	}
  3637  	if builder.idTypeFlag {
  3638  		req.IdType = &builder.idType
  3639  
  3640  	}
  3641  	return req
  3642  }
  3643  
  3644  type SpecialFocusUnread struct {
  3645  	Id          *string `json:"id,omitempty"`           // 用户id
  3646  	IdType      *string `json:"id_type,omitempty"`      // 进群成员id类型 open_id/user_id/union_id/app_id
  3647  	UnreadCount *string `json:"unread_count,omitempty"` // 未读数
  3648  }
  3649  
  3650  type SpecialFocusUnreadBuilder struct {
  3651  	id              string // 用户id
  3652  	idFlag          bool
  3653  	idType          string // 进群成员id类型 open_id/user_id/union_id/app_id
  3654  	idTypeFlag      bool
  3655  	unreadCount     string // 未读数
  3656  	unreadCountFlag bool
  3657  }
  3658  
  3659  func NewSpecialFocusUnreadBuilder() *SpecialFocusUnreadBuilder {
  3660  	builder := &SpecialFocusUnreadBuilder{}
  3661  	return builder
  3662  }
  3663  
  3664  // 用户id
  3665  //
  3666  // 示例值:
  3667  func (builder *SpecialFocusUnreadBuilder) Id(id string) *SpecialFocusUnreadBuilder {
  3668  	builder.id = id
  3669  	builder.idFlag = true
  3670  	return builder
  3671  }
  3672  
  3673  // 进群成员id类型 open_id/user_id/union_id/app_id
  3674  //
  3675  // 示例值:
  3676  func (builder *SpecialFocusUnreadBuilder) IdType(idType string) *SpecialFocusUnreadBuilder {
  3677  	builder.idType = idType
  3678  	builder.idTypeFlag = true
  3679  	return builder
  3680  }
  3681  
  3682  // 未读数
  3683  //
  3684  // 示例值:
  3685  func (builder *SpecialFocusUnreadBuilder) UnreadCount(unreadCount string) *SpecialFocusUnreadBuilder {
  3686  	builder.unreadCount = unreadCount
  3687  	builder.unreadCountFlag = true
  3688  	return builder
  3689  }
  3690  
  3691  func (builder *SpecialFocusUnreadBuilder) Build() *SpecialFocusUnread {
  3692  	req := &SpecialFocusUnread{}
  3693  	if builder.idFlag {
  3694  		req.Id = &builder.id
  3695  
  3696  	}
  3697  	if builder.idTypeFlag {
  3698  		req.IdType = &builder.idType
  3699  
  3700  	}
  3701  	if builder.unreadCountFlag {
  3702  		req.UnreadCount = &builder.unreadCount
  3703  
  3704  	}
  3705  	return req
  3706  }
  3707  
  3708  type Toolkit struct {
  3709  	ToolkitId    *string              `json:"toolkit_id,omitempty"`    // 快捷组件ID
  3710  	ImageKey     *string              `json:"image_key,omitempty"`     // 快捷组件小图标 ;;上传message类型的图片[上传图片](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)
  3711  	ToolkitName  *string              `json:"toolkit_name,omitempty"`  // 快捷组件名称
  3712  	I18nName     *I18nNames           `json:"i18n_name,omitempty"`     // 国际化名称
  3713  	ToolkitType  *string              `json:"toolkit_type,omitempty"`  // 快捷组件类型
  3714  	RedirectLink *ToolkitRedirectLink `json:"redirect_link,omitempty"` // 跳转类型快捷组件
  3715  	Callback     *ToolkitCallback     `json:"callback,omitempty"`      // 回调类型快捷组件
  3716  }
  3717  
  3718  type ToolkitBuilder struct {
  3719  	toolkitId        string // 快捷组件ID
  3720  	toolkitIdFlag    bool
  3721  	imageKey         string // 快捷组件小图标 ;;上传message类型的图片[上传图片](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)
  3722  	imageKeyFlag     bool
  3723  	toolkitName      string // 快捷组件名称
  3724  	toolkitNameFlag  bool
  3725  	i18nName         *I18nNames // 国际化名称
  3726  	i18nNameFlag     bool
  3727  	toolkitType      string // 快捷组件类型
  3728  	toolkitTypeFlag  bool
  3729  	redirectLink     *ToolkitRedirectLink // 跳转类型快捷组件
  3730  	redirectLinkFlag bool
  3731  	callback         *ToolkitCallback // 回调类型快捷组件
  3732  	callbackFlag     bool
  3733  }
  3734  
  3735  func NewToolkitBuilder() *ToolkitBuilder {
  3736  	builder := &ToolkitBuilder{}
  3737  	return builder
  3738  }
  3739  
  3740  // 快捷组件ID
  3741  //
  3742  // 示例值:7101214603622940671
  3743  func (builder *ToolkitBuilder) ToolkitId(toolkitId string) *ToolkitBuilder {
  3744  	builder.toolkitId = toolkitId
  3745  	builder.toolkitIdFlag = true
  3746  	return builder
  3747  }
  3748  
  3749  // 快捷组件小图标 ;;上传message类型的图片[上传图片](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)
  3750  //
  3751  // 示例值:img_v2_2995edd9-a22c-44ca-9559-71bbc1e661bg
  3752  func (builder *ToolkitBuilder) ImageKey(imageKey string) *ToolkitBuilder {
  3753  	builder.imageKey = imageKey
  3754  	builder.imageKeyFlag = true
  3755  	return builder
  3756  }
  3757  
  3758  // 快捷组件名称
  3759  //
  3760  // 示例值:群组
  3761  func (builder *ToolkitBuilder) ToolkitName(toolkitName string) *ToolkitBuilder {
  3762  	builder.toolkitName = toolkitName
  3763  	builder.toolkitNameFlag = true
  3764  	return builder
  3765  }
  3766  
  3767  // 国际化名称
  3768  //
  3769  // 示例值:
  3770  func (builder *ToolkitBuilder) I18nName(i18nName *I18nNames) *ToolkitBuilder {
  3771  	builder.i18nName = i18nName
  3772  	builder.i18nNameFlag = true
  3773  	return builder
  3774  }
  3775  
  3776  // 快捷组件类型
  3777  //
  3778  // 示例值:redirect_link
  3779  func (builder *ToolkitBuilder) ToolkitType(toolkitType string) *ToolkitBuilder {
  3780  	builder.toolkitType = toolkitType
  3781  	builder.toolkitTypeFlag = true
  3782  	return builder
  3783  }
  3784  
  3785  // 跳转类型快捷组件
  3786  //
  3787  // 示例值:
  3788  func (builder *ToolkitBuilder) RedirectLink(redirectLink *ToolkitRedirectLink) *ToolkitBuilder {
  3789  	builder.redirectLink = redirectLink
  3790  	builder.redirectLinkFlag = true
  3791  	return builder
  3792  }
  3793  
  3794  // 回调类型快捷组件
  3795  //
  3796  // 示例值:
  3797  func (builder *ToolkitBuilder) Callback(callback *ToolkitCallback) *ToolkitBuilder {
  3798  	builder.callback = callback
  3799  	builder.callbackFlag = true
  3800  	return builder
  3801  }
  3802  
  3803  func (builder *ToolkitBuilder) Build() *Toolkit {
  3804  	req := &Toolkit{}
  3805  	if builder.toolkitIdFlag {
  3806  		req.ToolkitId = &builder.toolkitId
  3807  
  3808  	}
  3809  	if builder.imageKeyFlag {
  3810  		req.ImageKey = &builder.imageKey
  3811  
  3812  	}
  3813  	if builder.toolkitNameFlag {
  3814  		req.ToolkitName = &builder.toolkitName
  3815  
  3816  	}
  3817  	if builder.i18nNameFlag {
  3818  		req.I18nName = builder.i18nName
  3819  	}
  3820  	if builder.toolkitTypeFlag {
  3821  		req.ToolkitType = &builder.toolkitType
  3822  
  3823  	}
  3824  	if builder.redirectLinkFlag {
  3825  		req.RedirectLink = builder.redirectLink
  3826  	}
  3827  	if builder.callbackFlag {
  3828  		req.Callback = builder.callback
  3829  	}
  3830  	return req
  3831  }
  3832  
  3833  type ToolkitCallback struct {
  3834  	Webhook   *string `json:"webhook,omitempty"`    // 回调地址
  3835  	ActionKey *string `json:"action_key,omitempty"` // 开发者自己识别的action_key,标识快捷组件的作用,回调时会把该字段带到回调地址
  3836  }
  3837  
  3838  type ToolkitCallbackBuilder struct {
  3839  	webhook       string // 回调地址
  3840  	webhookFlag   bool
  3841  	actionKey     string // 开发者自己识别的action_key,标识快捷组件的作用,回调时会把该字段带到回调地址
  3842  	actionKeyFlag bool
  3843  }
  3844  
  3845  func NewToolkitCallbackBuilder() *ToolkitCallbackBuilder {
  3846  	builder := &ToolkitCallbackBuilder{}
  3847  	return builder
  3848  }
  3849  
  3850  // 回调地址
  3851  //
  3852  // 示例值:https://***.com/
  3853  func (builder *ToolkitCallbackBuilder) Webhook(webhook string) *ToolkitCallbackBuilder {
  3854  	builder.webhook = webhook
  3855  	builder.webhookFlag = true
  3856  	return builder
  3857  }
  3858  
  3859  // 开发者自己识别的action_key,标识快捷组件的作用,回调时会把该字段带到回调地址
  3860  //
  3861  // 示例值:SendMessage
  3862  func (builder *ToolkitCallbackBuilder) ActionKey(actionKey string) *ToolkitCallbackBuilder {
  3863  	builder.actionKey = actionKey
  3864  	builder.actionKeyFlag = true
  3865  	return builder
  3866  }
  3867  
  3868  func (builder *ToolkitCallbackBuilder) Build() *ToolkitCallback {
  3869  	req := &ToolkitCallback{}
  3870  	if builder.webhookFlag {
  3871  		req.Webhook = &builder.webhook
  3872  
  3873  	}
  3874  	if builder.actionKeyFlag {
  3875  		req.ActionKey = &builder.actionKey
  3876  
  3877  	}
  3878  	return req
  3879  }
  3880  
  3881  type ToolkitRedirectLink struct {
  3882  	Url *string `json:"url,omitempty"` // 跳转url
  3883  }
  3884  
  3885  type ToolkitRedirectLinkBuilder struct {
  3886  	url     string // 跳转url
  3887  	urlFlag bool
  3888  }
  3889  
  3890  func NewToolkitRedirectLinkBuilder() *ToolkitRedirectLinkBuilder {
  3891  	builder := &ToolkitRedirectLinkBuilder{}
  3892  	return builder
  3893  }
  3894  
  3895  // 跳转url
  3896  //
  3897  // 示例值:https://applink.feishu.cn/client/calendar/open
  3898  func (builder *ToolkitRedirectLinkBuilder) Url(url string) *ToolkitRedirectLinkBuilder {
  3899  	builder.url = url
  3900  	builder.urlFlag = true
  3901  	return builder
  3902  }
  3903  
  3904  func (builder *ToolkitRedirectLinkBuilder) Build() *ToolkitRedirectLink {
  3905  	req := &ToolkitRedirectLink{}
  3906  	if builder.urlFlag {
  3907  		req.Url = &builder.url
  3908  
  3909  	}
  3910  	return req
  3911  }
  3912  
  3913  type UrgentReceivers struct {
  3914  	UserIdList []string `json:"user_id_list,omitempty"` // 目标用户的ID。列表不可为空。
  3915  }
  3916  
  3917  type UrgentReceiversBuilder struct {
  3918  	userIdList     []string // 目标用户的ID。列表不可为空。
  3919  	userIdListFlag bool
  3920  }
  3921  
  3922  func NewUrgentReceiversBuilder() *UrgentReceiversBuilder {
  3923  	builder := &UrgentReceiversBuilder{}
  3924  	return builder
  3925  }
  3926  
  3927  // 目标用户的ID。列表不可为空。
  3928  //
  3929  // 示例值:["ou_6yf8af6bgb9100449565764t3382b168"]
  3930  func (builder *UrgentReceiversBuilder) UserIdList(userIdList []string) *UrgentReceiversBuilder {
  3931  	builder.userIdList = userIdList
  3932  	builder.userIdListFlag = true
  3933  	return builder
  3934  }
  3935  
  3936  func (builder *UrgentReceiversBuilder) Build() *UrgentReceivers {
  3937  	req := &UrgentReceivers{}
  3938  	if builder.userIdListFlag {
  3939  		req.UserIdList = builder.userIdList
  3940  	}
  3941  	return req
  3942  }
  3943  
  3944  type UserId struct {
  3945  	UserId  *string `json:"user_id,omitempty"`  //
  3946  	OpenId  *string `json:"open_id,omitempty"`  //
  3947  	UnionId *string `json:"union_id,omitempty"` //
  3948  }
  3949  
  3950  type UserIdBuilder struct {
  3951  	userId      string //
  3952  	userIdFlag  bool
  3953  	openId      string //
  3954  	openIdFlag  bool
  3955  	unionId     string //
  3956  	unionIdFlag bool
  3957  }
  3958  
  3959  func NewUserIdBuilder() *UserIdBuilder {
  3960  	builder := &UserIdBuilder{}
  3961  	return builder
  3962  }
  3963  
  3964  //
  3965  //
  3966  // 示例值:
  3967  func (builder *UserIdBuilder) UserId(userId string) *UserIdBuilder {
  3968  	builder.userId = userId
  3969  	builder.userIdFlag = true
  3970  	return builder
  3971  }
  3972  
  3973  //
  3974  //
  3975  // 示例值:
  3976  func (builder *UserIdBuilder) OpenId(openId string) *UserIdBuilder {
  3977  	builder.openId = openId
  3978  	builder.openIdFlag = true
  3979  	return builder
  3980  }
  3981  
  3982  //
  3983  //
  3984  // 示例值:
  3985  func (builder *UserIdBuilder) UnionId(unionId string) *UserIdBuilder {
  3986  	builder.unionId = unionId
  3987  	builder.unionIdFlag = true
  3988  	return builder
  3989  }
  3990  
  3991  func (builder *UserIdBuilder) Build() *UserId {
  3992  	req := &UserId{}
  3993  	if builder.userIdFlag {
  3994  		req.UserId = &builder.userId
  3995  
  3996  	}
  3997  	if builder.openIdFlag {
  3998  		req.OpenId = &builder.openId
  3999  
  4000  	}
  4001  	if builder.unionIdFlag {
  4002  		req.UnionId = &builder.unionId
  4003  
  4004  	}
  4005  	return req
  4006  }
  4007  
  4008  type DeleteBatchMessageReqBuilder struct {
  4009  	apiReq *larkcore.ApiReq
  4010  }
  4011  
  4012  func NewDeleteBatchMessageReqBuilder() *DeleteBatchMessageReqBuilder {
  4013  	builder := &DeleteBatchMessageReqBuilder{}
  4014  	builder.apiReq = &larkcore.ApiReq{
  4015  		PathParams:  larkcore.PathParams{},
  4016  		QueryParams: larkcore.QueryParams{},
  4017  	}
  4018  	return builder
  4019  }
  4020  
  4021  // 待撤回的批量消息的ID
  4022  //
  4023  // 示例值:bm-dc13264520392913993dd051dba21dcf
  4024  func (builder *DeleteBatchMessageReqBuilder) BatchMessageId(batchMessageId string) *DeleteBatchMessageReqBuilder {
  4025  	builder.apiReq.PathParams.Set("batch_message_id", fmt.Sprint(batchMessageId))
  4026  	return builder
  4027  }
  4028  
  4029  func (builder *DeleteBatchMessageReqBuilder) Build() *DeleteBatchMessageReq {
  4030  	req := &DeleteBatchMessageReq{}
  4031  	req.apiReq = &larkcore.ApiReq{}
  4032  	req.apiReq.PathParams = builder.apiReq.PathParams
  4033  	return req
  4034  }
  4035  
  4036  type DeleteBatchMessageReq struct {
  4037  	apiReq *larkcore.ApiReq
  4038  }
  4039  
  4040  type DeleteBatchMessageResp struct {
  4041  	*larkcore.ApiResp `json:"-"`
  4042  	larkcore.CodeError
  4043  }
  4044  
  4045  func (resp *DeleteBatchMessageResp) Success() bool {
  4046  	return resp.Code == 0
  4047  }
  4048  
  4049  type GetProgressBatchMessageReqBuilder struct {
  4050  	apiReq *larkcore.ApiReq
  4051  }
  4052  
  4053  func NewGetProgressBatchMessageReqBuilder() *GetProgressBatchMessageReqBuilder {
  4054  	builder := &GetProgressBatchMessageReqBuilder{}
  4055  	builder.apiReq = &larkcore.ApiReq{
  4056  		PathParams:  larkcore.PathParams{},
  4057  		QueryParams: larkcore.QueryParams{},
  4058  	}
  4059  	return builder
  4060  }
  4061  
  4062  // 待查询的批量消息的ID
  4063  //
  4064  // 示例值:bm-0b3d5d1b2df7c6d5dbd1abe2c91e2217
  4065  func (builder *GetProgressBatchMessageReqBuilder) BatchMessageId(batchMessageId string) *GetProgressBatchMessageReqBuilder {
  4066  	builder.apiReq.PathParams.Set("batch_message_id", fmt.Sprint(batchMessageId))
  4067  	return builder
  4068  }
  4069  
  4070  func (builder *GetProgressBatchMessageReqBuilder) Build() *GetProgressBatchMessageReq {
  4071  	req := &GetProgressBatchMessageReq{}
  4072  	req.apiReq = &larkcore.ApiReq{}
  4073  	req.apiReq.PathParams = builder.apiReq.PathParams
  4074  	return req
  4075  }
  4076  
  4077  type GetProgressBatchMessageReq struct {
  4078  	apiReq *larkcore.ApiReq
  4079  }
  4080  
  4081  type GetProgressBatchMessageRespData struct {
  4082  	BatchMessageSendProgress   *BatchMessageSendProgress   `json:"batch_message_send_progress,omitempty"`   // 消息发送进度
  4083  	BatchMessageRecallProgress *BatchMessageRecallProgress `json:"batch_message_recall_progress,omitempty"` // 消息撤回进度
  4084  }
  4085  
  4086  type GetProgressBatchMessageResp struct {
  4087  	*larkcore.ApiResp `json:"-"`
  4088  	larkcore.CodeError
  4089  	Data *GetProgressBatchMessageRespData `json:"data"` // 业务数据
  4090  }
  4091  
  4092  func (resp *GetProgressBatchMessageResp) Success() bool {
  4093  	return resp.Code == 0
  4094  }
  4095  
  4096  type ReadUserBatchMessageReqBuilder struct {
  4097  	apiReq *larkcore.ApiReq
  4098  }
  4099  
  4100  func NewReadUserBatchMessageReqBuilder() *ReadUserBatchMessageReqBuilder {
  4101  	builder := &ReadUserBatchMessageReqBuilder{}
  4102  	builder.apiReq = &larkcore.ApiReq{
  4103  		PathParams:  larkcore.PathParams{},
  4104  		QueryParams: larkcore.QueryParams{},
  4105  	}
  4106  	return builder
  4107  }
  4108  
  4109  // 待查询的批量消息的ID
  4110  //
  4111  // 示例值:bm_dc13264520392913993dd051dba21dcf
  4112  func (builder *ReadUserBatchMessageReqBuilder) BatchMessageId(batchMessageId string) *ReadUserBatchMessageReqBuilder {
  4113  	builder.apiReq.PathParams.Set("batch_message_id", fmt.Sprint(batchMessageId))
  4114  	return builder
  4115  }
  4116  
  4117  func (builder *ReadUserBatchMessageReqBuilder) Build() *ReadUserBatchMessageReq {
  4118  	req := &ReadUserBatchMessageReq{}
  4119  	req.apiReq = &larkcore.ApiReq{}
  4120  	req.apiReq.PathParams = builder.apiReq.PathParams
  4121  	return req
  4122  }
  4123  
  4124  type ReadUserBatchMessageReq struct {
  4125  	apiReq *larkcore.ApiReq
  4126  }
  4127  
  4128  type ReadUserBatchMessageRespData struct {
  4129  	ReadUser *BatchMessageReadUser `json:"read_user,omitempty"` // 批量发送消息的用户阅读情况
  4130  }
  4131  
  4132  type ReadUserBatchMessageResp struct {
  4133  	*larkcore.ApiResp `json:"-"`
  4134  	larkcore.CodeError
  4135  	Data *ReadUserBatchMessageRespData `json:"data"` // 业务数据
  4136  }
  4137  
  4138  func (resp *ReadUserBatchMessageResp) Success() bool {
  4139  	return resp.Code == 0
  4140  }
  4141  
  4142  type CreateChatReqBodyBuilder struct {
  4143  	avatar                     string // 群头像对应的 Image Key,可通过[上传图片](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)获取(注意:上传图片的 ==image_type== 需要指定为 ==avatar==)
  4144  	avatarFlag                 bool
  4145  	name                       string // 群名称;; **注意:** 公开群名称的长度不得少于2个字符
  4146  	nameFlag                   bool
  4147  	description                string // 群描述
  4148  	descriptionFlag            bool
  4149  	i18nNames                  *I18nNames // 群国际化名称
  4150  	i18nNamesFlag              bool
  4151  	ownerId                    string // 创建群时指定的群主,不填时指定建群的机器人为群主。;;群主 ID,ID值与查询参数中的 user_id_type 对应。;;不同 ID 的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  4152  	ownerIdFlag                bool
  4153  	userIdList                 []string // 创建群时邀请的群成员,id 类型为 user_id_type
  4154  	userIdListFlag             bool
  4155  	botIdList                  []string // 创建群时邀请的群机器人; ;**注意:** 拉机器人入群请使用 ==app_id==
  4156  	botIdListFlag              bool
  4157  	chatMode                   string // 群模式;;**可选值有**:;- `group`:群组
  4158  	chatModeFlag               bool
  4159  	chatType                   string // 群类型;;**可选值有**:;- `private`:私有群;- `public`:公开群
  4160  	chatTypeFlag               bool
  4161  	external                   bool // 是否是外部群
  4162  	externalFlag               bool
  4163  	joinMessageVisibility      string // 入群消息可见性;;**可选值有**:;- `only_owner`:仅群主和管理员可见;- `all_members`:所有成员可见;- `not_anyone`:任何人均不可见
  4164  	joinMessageVisibilityFlag  bool
  4165  	leaveMessageVisibility     string // 退群消息可见性;;**可选值有**:;- `only_owner`:仅群主和管理员可见;- `all_members`:所有成员可见;- `not_anyone`:任何人均不可见
  4166  	leaveMessageVisibilityFlag bool
  4167  	membershipApproval         string // 加群审批;;**可选值有**:;- `no_approval_required`:无需审批;- `approval_required`:需要审批
  4168  	membershipApprovalFlag     bool
  4169  }
  4170  
  4171  func NewCreateChatReqBodyBuilder() *CreateChatReqBodyBuilder {
  4172  	builder := &CreateChatReqBodyBuilder{}
  4173  	return builder
  4174  }
  4175  
  4176  // 群头像对应的 Image Key,可通过[上传图片](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)获取(注意:上传图片的 ==image_type== 需要指定为 ==avatar==)
  4177  //
  4178  //示例值:default-avatar_44ae0ca3-e140-494b-956f-78091e348435
  4179  func (builder *CreateChatReqBodyBuilder) Avatar(avatar string) *CreateChatReqBodyBuilder {
  4180  	builder.avatar = avatar
  4181  	builder.avatarFlag = true
  4182  	return builder
  4183  }
  4184  
  4185  // 群名称;; **注意:** 公开群名称的长度不得少于2个字符
  4186  //
  4187  //示例值:测试群名称
  4188  func (builder *CreateChatReqBodyBuilder) Name(name string) *CreateChatReqBodyBuilder {
  4189  	builder.name = name
  4190  	builder.nameFlag = true
  4191  	return builder
  4192  }
  4193  
  4194  // 群描述
  4195  //
  4196  //示例值:测试群描述
  4197  func (builder *CreateChatReqBodyBuilder) Description(description string) *CreateChatReqBodyBuilder {
  4198  	builder.description = description
  4199  	builder.descriptionFlag = true
  4200  	return builder
  4201  }
  4202  
  4203  // 群国际化名称
  4204  //
  4205  //示例值:
  4206  func (builder *CreateChatReqBodyBuilder) I18nNames(i18nNames *I18nNames) *CreateChatReqBodyBuilder {
  4207  	builder.i18nNames = i18nNames
  4208  	builder.i18nNamesFlag = true
  4209  	return builder
  4210  }
  4211  
  4212  // 创建群时指定的群主,不填时指定建群的机器人为群主。;;群主 ID,ID值与查询参数中的 user_id_type 对应。;;不同 ID 的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  4213  //
  4214  //示例值:4d7a3c6g
  4215  func (builder *CreateChatReqBodyBuilder) OwnerId(ownerId string) *CreateChatReqBodyBuilder {
  4216  	builder.ownerId = ownerId
  4217  	builder.ownerIdFlag = true
  4218  	return builder
  4219  }
  4220  
  4221  // 创建群时邀请的群成员,id 类型为 user_id_type
  4222  //
  4223  //示例值:["4d7a3c6g"]
  4224  func (builder *CreateChatReqBodyBuilder) UserIdList(userIdList []string) *CreateChatReqBodyBuilder {
  4225  	builder.userIdList = userIdList
  4226  	builder.userIdListFlag = true
  4227  	return builder
  4228  }
  4229  
  4230  // 创建群时邀请的群机器人; ;**注意:** 拉机器人入群请使用 ==app_id==
  4231  //
  4232  //示例值:["cli_a10fbf7e94b8d01d"]
  4233  func (builder *CreateChatReqBodyBuilder) BotIdList(botIdList []string) *CreateChatReqBodyBuilder {
  4234  	builder.botIdList = botIdList
  4235  	builder.botIdListFlag = true
  4236  	return builder
  4237  }
  4238  
  4239  // 群模式;;**可选值有**:;- `group`:群组
  4240  //
  4241  //示例值:group
  4242  func (builder *CreateChatReqBodyBuilder) ChatMode(chatMode string) *CreateChatReqBodyBuilder {
  4243  	builder.chatMode = chatMode
  4244  	builder.chatModeFlag = true
  4245  	return builder
  4246  }
  4247  
  4248  // 群类型;;**可选值有**:;- `private`:私有群;- `public`:公开群
  4249  //
  4250  //示例值:private
  4251  func (builder *CreateChatReqBodyBuilder) ChatType(chatType string) *CreateChatReqBodyBuilder {
  4252  	builder.chatType = chatType
  4253  	builder.chatTypeFlag = true
  4254  	return builder
  4255  }
  4256  
  4257  // 是否是外部群
  4258  //
  4259  //示例值:false
  4260  func (builder *CreateChatReqBodyBuilder) External(external bool) *CreateChatReqBodyBuilder {
  4261  	builder.external = external
  4262  	builder.externalFlag = true
  4263  	return builder
  4264  }
  4265  
  4266  // 入群消息可见性;;**可选值有**:;- `only_owner`:仅群主和管理员可见;- `all_members`:所有成员可见;- `not_anyone`:任何人均不可见
  4267  //
  4268  //示例值:all_members
  4269  func (builder *CreateChatReqBodyBuilder) JoinMessageVisibility(joinMessageVisibility string) *CreateChatReqBodyBuilder {
  4270  	builder.joinMessageVisibility = joinMessageVisibility
  4271  	builder.joinMessageVisibilityFlag = true
  4272  	return builder
  4273  }
  4274  
  4275  // 退群消息可见性;;**可选值有**:;- `only_owner`:仅群主和管理员可见;- `all_members`:所有成员可见;- `not_anyone`:任何人均不可见
  4276  //
  4277  //示例值:all_members
  4278  func (builder *CreateChatReqBodyBuilder) LeaveMessageVisibility(leaveMessageVisibility string) *CreateChatReqBodyBuilder {
  4279  	builder.leaveMessageVisibility = leaveMessageVisibility
  4280  	builder.leaveMessageVisibilityFlag = true
  4281  	return builder
  4282  }
  4283  
  4284  // 加群审批;;**可选值有**:;- `no_approval_required`:无需审批;- `approval_required`:需要审批
  4285  //
  4286  //示例值:no_approval_required
  4287  func (builder *CreateChatReqBodyBuilder) MembershipApproval(membershipApproval string) *CreateChatReqBodyBuilder {
  4288  	builder.membershipApproval = membershipApproval
  4289  	builder.membershipApprovalFlag = true
  4290  	return builder
  4291  }
  4292  
  4293  func (builder *CreateChatReqBodyBuilder) Build() *CreateChatReqBody {
  4294  	req := &CreateChatReqBody{}
  4295  	if builder.avatarFlag {
  4296  		req.Avatar = &builder.avatar
  4297  	}
  4298  	if builder.nameFlag {
  4299  		req.Name = &builder.name
  4300  	}
  4301  	if builder.descriptionFlag {
  4302  		req.Description = &builder.description
  4303  	}
  4304  	if builder.i18nNamesFlag {
  4305  		req.I18nNames = builder.i18nNames
  4306  	}
  4307  	if builder.ownerIdFlag {
  4308  		req.OwnerId = &builder.ownerId
  4309  	}
  4310  	if builder.userIdListFlag {
  4311  		req.UserIdList = builder.userIdList
  4312  	}
  4313  	if builder.botIdListFlag {
  4314  		req.BotIdList = builder.botIdList
  4315  	}
  4316  	if builder.chatModeFlag {
  4317  		req.ChatMode = &builder.chatMode
  4318  	}
  4319  	if builder.chatTypeFlag {
  4320  		req.ChatType = &builder.chatType
  4321  	}
  4322  	if builder.externalFlag {
  4323  		req.External = &builder.external
  4324  	}
  4325  	if builder.joinMessageVisibilityFlag {
  4326  		req.JoinMessageVisibility = &builder.joinMessageVisibility
  4327  	}
  4328  	if builder.leaveMessageVisibilityFlag {
  4329  		req.LeaveMessageVisibility = &builder.leaveMessageVisibility
  4330  	}
  4331  	if builder.membershipApprovalFlag {
  4332  		req.MembershipApproval = &builder.membershipApproval
  4333  	}
  4334  	return req
  4335  }
  4336  
  4337  type CreateChatPathReqBodyBuilder struct {
  4338  	avatar                     string // 群头像对应的 Image Key,可通过[上传图片](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)获取(注意:上传图片的 ==image_type== 需要指定为 ==avatar==)
  4339  	avatarFlag                 bool
  4340  	name                       string // 群名称;; **注意:** 公开群名称的长度不得少于2个字符
  4341  	nameFlag                   bool
  4342  	description                string // 群描述
  4343  	descriptionFlag            bool
  4344  	i18nNames                  *I18nNames // 群国际化名称
  4345  	i18nNamesFlag              bool
  4346  	ownerId                    string // 创建群时指定的群主,不填时指定建群的机器人为群主。;;群主 ID,ID值与查询参数中的 user_id_type 对应。;;不同 ID 的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  4347  	ownerIdFlag                bool
  4348  	userIdList                 []string // 创建群时邀请的群成员,id 类型为 user_id_type
  4349  	userIdListFlag             bool
  4350  	botIdList                  []string // 创建群时邀请的群机器人; ;**注意:** 拉机器人入群请使用 ==app_id==
  4351  	botIdListFlag              bool
  4352  	chatMode                   string // 群模式;;**可选值有**:;- `group`:群组
  4353  	chatModeFlag               bool
  4354  	chatType                   string // 群类型;;**可选值有**:;- `private`:私有群;- `public`:公开群
  4355  	chatTypeFlag               bool
  4356  	external                   bool // 是否是外部群
  4357  	externalFlag               bool
  4358  	joinMessageVisibility      string // 入群消息可见性;;**可选值有**:;- `only_owner`:仅群主和管理员可见;- `all_members`:所有成员可见;- `not_anyone`:任何人均不可见
  4359  	joinMessageVisibilityFlag  bool
  4360  	leaveMessageVisibility     string // 退群消息可见性;;**可选值有**:;- `only_owner`:仅群主和管理员可见;- `all_members`:所有成员可见;- `not_anyone`:任何人均不可见
  4361  	leaveMessageVisibilityFlag bool
  4362  	membershipApproval         string // 加群审批;;**可选值有**:;- `no_approval_required`:无需审批;- `approval_required`:需要审批
  4363  	membershipApprovalFlag     bool
  4364  	labels                     []string // 群标签
  4365  	labelsFlag                 bool
  4366  	toolkitIds                 []string // 群快捷组件列表
  4367  	toolkitIdsFlag             bool
  4368  }
  4369  
  4370  func NewCreateChatPathReqBodyBuilder() *CreateChatPathReqBodyBuilder {
  4371  	builder := &CreateChatPathReqBodyBuilder{}
  4372  	return builder
  4373  }
  4374  
  4375  // 群头像对应的 Image Key,可通过[上传图片](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)获取(注意:上传图片的 ==image_type== 需要指定为 ==avatar==)
  4376  //
  4377  // 示例值:default-avatar_44ae0ca3-e140-494b-956f-78091e348435
  4378  func (builder *CreateChatPathReqBodyBuilder) Avatar(avatar string) *CreateChatPathReqBodyBuilder {
  4379  	builder.avatar = avatar
  4380  	builder.avatarFlag = true
  4381  	return builder
  4382  }
  4383  
  4384  // 群名称;; **注意:** 公开群名称的长度不得少于2个字符
  4385  //
  4386  // 示例值:测试群名称
  4387  func (builder *CreateChatPathReqBodyBuilder) Name(name string) *CreateChatPathReqBodyBuilder {
  4388  	builder.name = name
  4389  	builder.nameFlag = true
  4390  	return builder
  4391  }
  4392  
  4393  // 群描述
  4394  //
  4395  // 示例值:测试群描述
  4396  func (builder *CreateChatPathReqBodyBuilder) Description(description string) *CreateChatPathReqBodyBuilder {
  4397  	builder.description = description
  4398  	builder.descriptionFlag = true
  4399  	return builder
  4400  }
  4401  
  4402  // 群国际化名称
  4403  //
  4404  // 示例值:
  4405  func (builder *CreateChatPathReqBodyBuilder) I18nNames(i18nNames *I18nNames) *CreateChatPathReqBodyBuilder {
  4406  	builder.i18nNames = i18nNames
  4407  	builder.i18nNamesFlag = true
  4408  	return builder
  4409  }
  4410  
  4411  // 创建群时指定的群主,不填时指定建群的机器人为群主。;;群主 ID,ID值与查询参数中的 user_id_type 对应。;;不同 ID 的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  4412  //
  4413  // 示例值:4d7a3c6g
  4414  func (builder *CreateChatPathReqBodyBuilder) OwnerId(ownerId string) *CreateChatPathReqBodyBuilder {
  4415  	builder.ownerId = ownerId
  4416  	builder.ownerIdFlag = true
  4417  	return builder
  4418  }
  4419  
  4420  // 创建群时邀请的群成员,id 类型为 user_id_type
  4421  //
  4422  // 示例值:["4d7a3c6g"]
  4423  func (builder *CreateChatPathReqBodyBuilder) UserIdList(userIdList []string) *CreateChatPathReqBodyBuilder {
  4424  	builder.userIdList = userIdList
  4425  	builder.userIdListFlag = true
  4426  	return builder
  4427  }
  4428  
  4429  // 创建群时邀请的群机器人; ;**注意:** 拉机器人入群请使用 ==app_id==
  4430  //
  4431  // 示例值:["cli_a10fbf7e94b8d01d"]
  4432  func (builder *CreateChatPathReqBodyBuilder) BotIdList(botIdList []string) *CreateChatPathReqBodyBuilder {
  4433  	builder.botIdList = botIdList
  4434  	builder.botIdListFlag = true
  4435  	return builder
  4436  }
  4437  
  4438  // 群模式;;**可选值有**:;- `group`:群组
  4439  //
  4440  // 示例值:group
  4441  func (builder *CreateChatPathReqBodyBuilder) ChatMode(chatMode string) *CreateChatPathReqBodyBuilder {
  4442  	builder.chatMode = chatMode
  4443  	builder.chatModeFlag = true
  4444  	return builder
  4445  }
  4446  
  4447  // 群类型;;**可选值有**:;- `private`:私有群;- `public`:公开群
  4448  //
  4449  // 示例值:private
  4450  func (builder *CreateChatPathReqBodyBuilder) ChatType(chatType string) *CreateChatPathReqBodyBuilder {
  4451  	builder.chatType = chatType
  4452  	builder.chatTypeFlag = true
  4453  	return builder
  4454  }
  4455  
  4456  // 是否是外部群
  4457  //
  4458  // 示例值:false
  4459  func (builder *CreateChatPathReqBodyBuilder) External(external bool) *CreateChatPathReqBodyBuilder {
  4460  	builder.external = external
  4461  	builder.externalFlag = true
  4462  	return builder
  4463  }
  4464  
  4465  // 入群消息可见性;;**可选值有**:;- `only_owner`:仅群主和管理员可见;- `all_members`:所有成员可见;- `not_anyone`:任何人均不可见
  4466  //
  4467  // 示例值:all_members
  4468  func (builder *CreateChatPathReqBodyBuilder) JoinMessageVisibility(joinMessageVisibility string) *CreateChatPathReqBodyBuilder {
  4469  	builder.joinMessageVisibility = joinMessageVisibility
  4470  	builder.joinMessageVisibilityFlag = true
  4471  	return builder
  4472  }
  4473  
  4474  // 退群消息可见性;;**可选值有**:;- `only_owner`:仅群主和管理员可见;- `all_members`:所有成员可见;- `not_anyone`:任何人均不可见
  4475  //
  4476  // 示例值:all_members
  4477  func (builder *CreateChatPathReqBodyBuilder) LeaveMessageVisibility(leaveMessageVisibility string) *CreateChatPathReqBodyBuilder {
  4478  	builder.leaveMessageVisibility = leaveMessageVisibility
  4479  	builder.leaveMessageVisibilityFlag = true
  4480  	return builder
  4481  }
  4482  
  4483  // 加群审批;;**可选值有**:;- `no_approval_required`:无需审批;- `approval_required`:需要审批
  4484  //
  4485  // 示例值:no_approval_required
  4486  func (builder *CreateChatPathReqBodyBuilder) MembershipApproval(membershipApproval string) *CreateChatPathReqBodyBuilder {
  4487  	builder.membershipApproval = membershipApproval
  4488  	builder.membershipApprovalFlag = true
  4489  	return builder
  4490  }
  4491  
  4492  func (builder *CreateChatPathReqBodyBuilder) Build() (*CreateChatReqBody, error) {
  4493  	req := &CreateChatReqBody{}
  4494  	if builder.avatarFlag {
  4495  		req.Avatar = &builder.avatar
  4496  	}
  4497  	if builder.nameFlag {
  4498  		req.Name = &builder.name
  4499  	}
  4500  	if builder.descriptionFlag {
  4501  		req.Description = &builder.description
  4502  	}
  4503  	if builder.i18nNamesFlag {
  4504  		req.I18nNames = builder.i18nNames
  4505  	}
  4506  	if builder.ownerIdFlag {
  4507  		req.OwnerId = &builder.ownerId
  4508  	}
  4509  	if builder.userIdListFlag {
  4510  		req.UserIdList = builder.userIdList
  4511  	}
  4512  	if builder.botIdListFlag {
  4513  		req.BotIdList = builder.botIdList
  4514  	}
  4515  	if builder.chatModeFlag {
  4516  		req.ChatMode = &builder.chatMode
  4517  	}
  4518  	if builder.chatTypeFlag {
  4519  		req.ChatType = &builder.chatType
  4520  	}
  4521  	if builder.externalFlag {
  4522  		req.External = &builder.external
  4523  	}
  4524  	if builder.joinMessageVisibilityFlag {
  4525  		req.JoinMessageVisibility = &builder.joinMessageVisibility
  4526  	}
  4527  	if builder.leaveMessageVisibilityFlag {
  4528  		req.LeaveMessageVisibility = &builder.leaveMessageVisibility
  4529  	}
  4530  	if builder.membershipApprovalFlag {
  4531  		req.MembershipApproval = &builder.membershipApproval
  4532  	}
  4533  	return req, nil
  4534  }
  4535  
  4536  type CreateChatReqBuilder struct {
  4537  	apiReq *larkcore.ApiReq
  4538  	body   *CreateChatReqBody
  4539  }
  4540  
  4541  func NewCreateChatReqBuilder() *CreateChatReqBuilder {
  4542  	builder := &CreateChatReqBuilder{}
  4543  	builder.apiReq = &larkcore.ApiReq{
  4544  		PathParams:  larkcore.PathParams{},
  4545  		QueryParams: larkcore.QueryParams{},
  4546  	}
  4547  	return builder
  4548  }
  4549  
  4550  // 此次调用中使用的用户ID的类型
  4551  //
  4552  // 示例值:
  4553  func (builder *CreateChatReqBuilder) UserIdType(userIdType string) *CreateChatReqBuilder {
  4554  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  4555  	return builder
  4556  }
  4557  
  4558  // 如果选择了设置群主为指定用户,可以选择是否同时设置创建此群的机器人为管理员,此标志位用于标记是否设置创建群的机器人为管理员
  4559  //
  4560  // 示例值:false
  4561  func (builder *CreateChatReqBuilder) SetBotManager(setBotManager bool) *CreateChatReqBuilder {
  4562  	builder.apiReq.QueryParams.Set("set_bot_manager", fmt.Sprint(setBotManager))
  4563  	return builder
  4564  }
  4565  
  4566  // 创建群并设置群头像、群名、群描述等。
  4567  func (builder *CreateChatReqBuilder) Body(body *CreateChatReqBody) *CreateChatReqBuilder {
  4568  	builder.body = body
  4569  	return builder
  4570  }
  4571  
  4572  func (builder *CreateChatReqBuilder) Build() *CreateChatReq {
  4573  	req := &CreateChatReq{}
  4574  	req.apiReq = &larkcore.ApiReq{}
  4575  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4576  	req.apiReq.Body = builder.body
  4577  	return req
  4578  }
  4579  
  4580  type CreateChatReqBody struct {
  4581  	Avatar                 *string    `json:"avatar,omitempty"`                   // 群头像对应的 Image Key,可通过[上传图片](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)获取(注意:上传图片的 ==image_type== 需要指定为 ==avatar==)
  4582  	Name                   *string    `json:"name,omitempty"`                     // 群名称;; **注意:** 公开群名称的长度不得少于2个字符
  4583  	Description            *string    `json:"description,omitempty"`              // 群描述
  4584  	I18nNames              *I18nNames `json:"i18n_names,omitempty"`               // 群国际化名称
  4585  	OwnerId                *string    `json:"owner_id,omitempty"`                 // 创建群时指定的群主,不填时指定建群的机器人为群主。;;群主 ID,ID值与查询参数中的 user_id_type 对应。;;不同 ID 的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  4586  	UserIdList             []string   `json:"user_id_list,omitempty"`             // 创建群时邀请的群成员,id 类型为 user_id_type
  4587  	BotIdList              []string   `json:"bot_id_list,omitempty"`              // 创建群时邀请的群机器人; ;**注意:** 拉机器人入群请使用 ==app_id==
  4588  	ChatMode               *string    `json:"chat_mode,omitempty"`                // 群模式;;**可选值有**:;- `group`:群组
  4589  	ChatType               *string    `json:"chat_type,omitempty"`                // 群类型;;**可选值有**:;- `private`:私有群;- `public`:公开群
  4590  	External               *bool      `json:"external,omitempty"`                 // 是否是外部群
  4591  	JoinMessageVisibility  *string    `json:"join_message_visibility,omitempty"`  // 入群消息可见性;;**可选值有**:;- `only_owner`:仅群主和管理员可见;- `all_members`:所有成员可见;- `not_anyone`:任何人均不可见
  4592  	LeaveMessageVisibility *string    `json:"leave_message_visibility,omitempty"` // 退群消息可见性;;**可选值有**:;- `only_owner`:仅群主和管理员可见;- `all_members`:所有成员可见;- `not_anyone`:任何人均不可见
  4593  	MembershipApproval     *string    `json:"membership_approval,omitempty"`      // 加群审批;;**可选值有**:;- `no_approval_required`:无需审批;- `approval_required`:需要审批
  4594  
  4595  }
  4596  
  4597  type CreateChatReq struct {
  4598  	apiReq *larkcore.ApiReq
  4599  	Body   *CreateChatReqBody `body:""`
  4600  }
  4601  
  4602  type CreateChatRespData struct {
  4603  	ChatId                 *string    `json:"chat_id,omitempty"`                  // 群 ID,详情参见:[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  4604  	Avatar                 *string    `json:"avatar,omitempty"`                   // 群头像 URL
  4605  	Name                   *string    `json:"name,omitempty"`                     // 群名称
  4606  	Description            *string    `json:"description,omitempty"`              // 群描述
  4607  	I18nNames              *I18nNames `json:"i18n_names,omitempty"`               // 群国际化名称
  4608  	OwnerId                *string    `json:"owner_id,omitempty"`                 // 群主 ID,ID值与查询参数中的 user_id_type 对应。;;不同 ID 的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction);;当群主是机器人时,该字段不返回
  4609  	OwnerIdType            *string    `json:"owner_id_type,omitempty"`            // 群主 ID 对应的ID类型,与查询参数中的 user_id_type 相同。取值为:`open_id`、`user_id`、`union_id`其中之一。;;当群主是机器人时,该字段不返回
  4610  	AddMemberPermission    *string    `json:"add_member_permission,omitempty"`    // 拉 用户或机器人 入群权限;;**可选值有**:;- `only_owner`:仅群主和管理员;- `all_members`:所有成员
  4611  	ShareCardPermission    *string    `json:"share_card_permission,omitempty"`    // 群分享权限;;**可选值有**:;- `allowed`:允许;- `not_allowed`:不允许
  4612  	AtAllPermission        *string    `json:"at_all_permission,omitempty"`        // at 所有人权限;;**可选值有**:;- `only_owner`:仅群主和管理员;- `all_members`:所有成员
  4613  	EditPermission         *string    `json:"edit_permission,omitempty"`          // 群编辑权限;;**可选值有**:;- `only_owner`:仅群主和管理员;- `all_members`:所有成员
  4614  	ChatMode               *string    `json:"chat_mode,omitempty"`                // 群模式;;**可选值有**:;- `group`:群组
  4615  	ChatType               *string    `json:"chat_type,omitempty"`                // 群类型;;**可选值有**:;- `private`:私有群;- `public`:公开群
  4616  	ChatTag                *string    `json:"chat_tag,omitempty"`                 // 群标签,如有多个,则按照下列顺序返回第一个;;**可选值有**:;- `inner`:内部群;- `tenant`:公司群;- `department`:部门群;- `edu`:教育群;- `meeting`:会议群;- `customer_service`:客服群
  4617  	External               *bool      `json:"external,omitempty"`                 // 是否是外部群
  4618  	TenantKey              *string    `json:"tenant_key,omitempty"`               // 租户在飞书上的唯一标识,用来换取对应的tenant_access_token,也可以用作租户在应用里面的唯一标识
  4619  	JoinMessageVisibility  *string    `json:"join_message_visibility,omitempty"`  // 入群消息可见性;;**可选值有**:;- `only_owner`:仅群主和管理员可见;- `all_members`:所有成员可见;- `not_anyone`:任何人均不可见
  4620  	LeaveMessageVisibility *string    `json:"leave_message_visibility,omitempty"` // 出群消息可见性;;**可选值有**:;- `only_owner`:仅群主和管理员可见;- `all_members`:所有成员可见;- `not_anyone`:任何人均不可见
  4621  	MembershipApproval     *string    `json:"membership_approval,omitempty"`      // 加群审批;;**可选值有**:;- `no_approval_required`:无需审批;- `approval_required`:需要审批
  4622  	ModerationPermission   *string    `json:"moderation_permission,omitempty"`    // 发言权限;;**可选值有**:;- `only_owner`:仅群主和管理员;- `all_members`:所有成员;- `moderator_list`:指定群成员
  4623  
  4624  }
  4625  
  4626  type CreateChatResp struct {
  4627  	*larkcore.ApiResp `json:"-"`
  4628  	larkcore.CodeError
  4629  	Data *CreateChatRespData `json:"data"` // 业务数据
  4630  }
  4631  
  4632  func (resp *CreateChatResp) Success() bool {
  4633  	return resp.Code == 0
  4634  }
  4635  
  4636  type DeleteChatReqBuilder struct {
  4637  	apiReq *larkcore.ApiReq
  4638  }
  4639  
  4640  func NewDeleteChatReqBuilder() *DeleteChatReqBuilder {
  4641  	builder := &DeleteChatReqBuilder{}
  4642  	builder.apiReq = &larkcore.ApiReq{
  4643  		PathParams:  larkcore.PathParams{},
  4644  		QueryParams: larkcore.QueryParams{},
  4645  	}
  4646  	return builder
  4647  }
  4648  
  4649  // 群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  4650  //
  4651  // 示例值:oc_a0553eda9014c201e6969b478895c230
  4652  func (builder *DeleteChatReqBuilder) ChatId(chatId string) *DeleteChatReqBuilder {
  4653  	builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId))
  4654  	return builder
  4655  }
  4656  
  4657  func (builder *DeleteChatReqBuilder) Build() *DeleteChatReq {
  4658  	req := &DeleteChatReq{}
  4659  	req.apiReq = &larkcore.ApiReq{}
  4660  	req.apiReq.PathParams = builder.apiReq.PathParams
  4661  	return req
  4662  }
  4663  
  4664  type DeleteChatReq struct {
  4665  	apiReq *larkcore.ApiReq
  4666  }
  4667  
  4668  type DeleteChatResp struct {
  4669  	*larkcore.ApiResp `json:"-"`
  4670  	larkcore.CodeError
  4671  }
  4672  
  4673  func (resp *DeleteChatResp) Success() bool {
  4674  	return resp.Code == 0
  4675  }
  4676  
  4677  type GetChatReqBuilder struct {
  4678  	apiReq *larkcore.ApiReq
  4679  }
  4680  
  4681  func NewGetChatReqBuilder() *GetChatReqBuilder {
  4682  	builder := &GetChatReqBuilder{}
  4683  	builder.apiReq = &larkcore.ApiReq{
  4684  		PathParams:  larkcore.PathParams{},
  4685  		QueryParams: larkcore.QueryParams{},
  4686  	}
  4687  	return builder
  4688  }
  4689  
  4690  // 群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  4691  //
  4692  // 示例值:oc_a0553eda9014c201e6969b478895c230
  4693  func (builder *GetChatReqBuilder) ChatId(chatId string) *GetChatReqBuilder {
  4694  	builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId))
  4695  	return builder
  4696  }
  4697  
  4698  // 此次调用中使用的用户ID的类型
  4699  //
  4700  // 示例值:
  4701  func (builder *GetChatReqBuilder) UserIdType(userIdType string) *GetChatReqBuilder {
  4702  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  4703  	return builder
  4704  }
  4705  
  4706  func (builder *GetChatReqBuilder) Build() *GetChatReq {
  4707  	req := &GetChatReq{}
  4708  	req.apiReq = &larkcore.ApiReq{}
  4709  	req.apiReq.PathParams = builder.apiReq.PathParams
  4710  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4711  	return req
  4712  }
  4713  
  4714  type GetChatReq struct {
  4715  	apiReq *larkcore.ApiReq
  4716  }
  4717  
  4718  type GetChatRespData struct {
  4719  	Avatar                 *string    `json:"avatar,omitempty"`                   // 群头像 URL
  4720  	Name                   *string    `json:"name,omitempty"`                     // 群名称
  4721  	Description            *string    `json:"description,omitempty"`              // 群描述
  4722  	I18nNames              *I18nNames `json:"i18n_names,omitempty"`               // 群国际化名称
  4723  	AddMemberPermission    *string    `json:"add_member_permission,omitempty"`    // 群成员添加权限(all_members/only_owner)
  4724  	ShareCardPermission    *string    `json:"share_card_permission,omitempty"`    // 群分享权限(allowed/not_allowed)
  4725  	AtAllPermission        *string    `json:"at_all_permission,omitempty"`        // at 所有人权限(all_members/only_owner)
  4726  	EditPermission         *string    `json:"edit_permission,omitempty"`          // 群编辑权限(all_members/only_owner)
  4727  	OwnerIdType            *string    `json:"owner_id_type,omitempty"`            // 群主 ID 的类型(open_id/user_id/union_id),群主是机器人时,不返回该字段。
  4728  	OwnerId                *string    `json:"owner_id,omitempty"`                 // 群主 ID,群主是机器人时,不返回该字段。
  4729  	ChatMode               *string    `json:"chat_mode,omitempty"`                // 群模式(group/topic/p2p)
  4730  	ChatType               *string    `json:"chat_type,omitempty"`                // 群类型(private/public)
  4731  	ChatTag                *string    `json:"chat_tag,omitempty"`                 // 优先级最高的一个群tag(inner/tenant/department/edu/meeting/customer_service)
  4732  	JoinMessageVisibility  *string    `json:"join_message_visibility,omitempty"`  // 入群消息可见性(only_owner/all_members/not_anyone)
  4733  	LeaveMessageVisibility *string    `json:"leave_message_visibility,omitempty"` // 出群消息可见性(only_owner/all_members/not_anyone)
  4734  	MembershipApproval     *string    `json:"membership_approval,omitempty"`      // 加群审批(no_approval_required/approval_required)
  4735  	ModerationPermission   *string    `json:"moderation_permission,omitempty"`    // 发言权限(all_members/only_owner/moderator_list)
  4736  	External               *bool      `json:"external,omitempty"`                 // 是否是外部群
  4737  	TenantKey              *string    `json:"tenant_key,omitempty"`               // tenant key
  4738  	UserCount              *string    `json:"user_count,omitempty"`               // 群成员人数
  4739  	BotCount               *string    `json:"bot_count,omitempty"`                // 群机器人数
  4740  
  4741  }
  4742  
  4743  type GetChatResp struct {
  4744  	*larkcore.ApiResp `json:"-"`
  4745  	larkcore.CodeError
  4746  	Data *GetChatRespData `json:"data"` // 业务数据
  4747  }
  4748  
  4749  func (resp *GetChatResp) Success() bool {
  4750  	return resp.Code == 0
  4751  }
  4752  
  4753  type ListChatReqBuilder struct {
  4754  	apiReq *larkcore.ApiReq
  4755  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  4756  }
  4757  
  4758  func NewListChatReqBuilder() *ListChatReqBuilder {
  4759  	builder := &ListChatReqBuilder{}
  4760  	builder.apiReq = &larkcore.ApiReq{
  4761  		PathParams:  larkcore.PathParams{},
  4762  		QueryParams: larkcore.QueryParams{},
  4763  	}
  4764  	return builder
  4765  }
  4766  
  4767  // 最大返回多少记录,当使用迭代器访问时才有效
  4768  func (builder *ListChatReqBuilder) Limit(limit int) *ListChatReqBuilder {
  4769  	builder.limit = limit
  4770  	return builder
  4771  }
  4772  
  4773  // 此次调用中使用的用户ID的类型
  4774  //
  4775  // 示例值:
  4776  func (builder *ListChatReqBuilder) UserIdType(userIdType string) *ListChatReqBuilder {
  4777  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  4778  	return builder
  4779  }
  4780  
  4781  //
  4782  //
  4783  // 示例值:dmJCRHhpd3JRbGV1VEVNRFFyTitRWDY5ZFkybmYrMEUwMUFYT0VMMWdENEtuYUhsNUxGMDIwemtvdE5ORjBNQQ==
  4784  func (builder *ListChatReqBuilder) PageToken(pageToken string) *ListChatReqBuilder {
  4785  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  4786  	return builder
  4787  }
  4788  
  4789  //
  4790  //
  4791  // 示例值:10
  4792  func (builder *ListChatReqBuilder) PageSize(pageSize int) *ListChatReqBuilder {
  4793  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  4794  	return builder
  4795  }
  4796  
  4797  func (builder *ListChatReqBuilder) Build() *ListChatReq {
  4798  	req := &ListChatReq{}
  4799  	req.apiReq = &larkcore.ApiReq{}
  4800  	req.Limit = builder.limit
  4801  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4802  	return req
  4803  }
  4804  
  4805  type ListChatReq struct {
  4806  	apiReq *larkcore.ApiReq
  4807  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
  4808  
  4809  }
  4810  
  4811  type ListChatRespData struct {
  4812  	Items     []*ListChat `json:"items,omitempty"`      // chat 列表
  4813  	PageToken *string     `json:"page_token,omitempty"` //
  4814  	HasMore   *bool       `json:"has_more,omitempty"`   //
  4815  }
  4816  
  4817  type ListChatResp struct {
  4818  	*larkcore.ApiResp `json:"-"`
  4819  	larkcore.CodeError
  4820  	Data *ListChatRespData `json:"data"` // 业务数据
  4821  }
  4822  
  4823  func (resp *ListChatResp) Success() bool {
  4824  	return resp.Code == 0
  4825  }
  4826  
  4827  type SearchChatReqBuilder struct {
  4828  	apiReq *larkcore.ApiReq
  4829  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  4830  }
  4831  
  4832  func NewSearchChatReqBuilder() *SearchChatReqBuilder {
  4833  	builder := &SearchChatReqBuilder{}
  4834  	builder.apiReq = &larkcore.ApiReq{
  4835  		PathParams:  larkcore.PathParams{},
  4836  		QueryParams: larkcore.QueryParams{},
  4837  	}
  4838  	return builder
  4839  }
  4840  
  4841  // 最大返回多少记录,当使用迭代器访问时才有效
  4842  func (builder *SearchChatReqBuilder) Limit(limit int) *SearchChatReqBuilder {
  4843  	builder.limit = limit
  4844  	return builder
  4845  }
  4846  
  4847  // 此次调用中使用的用户ID的类型
  4848  //
  4849  // 示例值:
  4850  func (builder *SearchChatReqBuilder) UserIdType(userIdType string) *SearchChatReqBuilder {
  4851  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  4852  	return builder
  4853  }
  4854  
  4855  // 关键词。注意:如果query为空值将返回空的结果
  4856  //
  4857  // 示例值:abc
  4858  func (builder *SearchChatReqBuilder) Query(query string) *SearchChatReqBuilder {
  4859  	builder.apiReq.QueryParams.Set("query", fmt.Sprint(query))
  4860  	return builder
  4861  }
  4862  
  4863  //
  4864  //
  4865  // 示例值:dmJCRHhpd3JRbGV1VEVNRFFyTitRWDY5ZFkybmYrMEUwMUFYT0VMMWdENEtuYUhsNUxGMDIwemtvdE5ORjBNQQ==
  4866  func (builder *SearchChatReqBuilder) PageToken(pageToken string) *SearchChatReqBuilder {
  4867  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  4868  	return builder
  4869  }
  4870  
  4871  //
  4872  //
  4873  // 示例值:10
  4874  func (builder *SearchChatReqBuilder) PageSize(pageSize int) *SearchChatReqBuilder {
  4875  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  4876  	return builder
  4877  }
  4878  
  4879  func (builder *SearchChatReqBuilder) Build() *SearchChatReq {
  4880  	req := &SearchChatReq{}
  4881  	req.apiReq = &larkcore.ApiReq{}
  4882  	req.Limit = builder.limit
  4883  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4884  	return req
  4885  }
  4886  
  4887  type SearchChatReq struct {
  4888  	apiReq *larkcore.ApiReq
  4889  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
  4890  
  4891  }
  4892  
  4893  type SearchChatRespData struct {
  4894  	Items     []*ListChat `json:"items,omitempty"`      // chat 列表
  4895  	PageToken *string     `json:"page_token,omitempty"` //
  4896  	HasMore   *bool       `json:"has_more,omitempty"`   // 是否还有更多群组
  4897  }
  4898  
  4899  type SearchChatResp struct {
  4900  	*larkcore.ApiResp `json:"-"`
  4901  	larkcore.CodeError
  4902  	Data *SearchChatRespData `json:"data"` // 业务数据
  4903  }
  4904  
  4905  func (resp *SearchChatResp) Success() bool {
  4906  	return resp.Code == 0
  4907  }
  4908  
  4909  type UpdateChatReqBodyBuilder struct {
  4910  	avatar                     string // 群头像对应的 Image Key,可通过[上传图片](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)获取(注意:上传图片的 ==image_type== 需要指定为 ==avatar==)
  4911  	avatarFlag                 bool
  4912  	name                       string // 群名称
  4913  	nameFlag                   bool
  4914  	description                string // 群描述
  4915  	descriptionFlag            bool
  4916  	i18nNames                  *I18nNames // 群国际化名称
  4917  	i18nNamesFlag              bool
  4918  	addMemberPermission        string // 加 user/bot 入群权限(all_members/only_owner)
  4919  	addMemberPermissionFlag    bool
  4920  	shareCardPermission        string // 群分享权限(allowed/not_allowed)
  4921  	shareCardPermissionFlag    bool
  4922  	atAllPermission            string // at 所有人权限(all_members/only_owner)
  4923  	atAllPermissionFlag        bool
  4924  	editPermission             string // 群编辑权限(all_members/only_owner)
  4925  	editPermissionFlag         bool
  4926  	ownerId                    string // 新群主 ID
  4927  	ownerIdFlag                bool
  4928  	joinMessageVisibility      string // 入群消息可见性(only_owner/all_members/not_anyone)
  4929  	joinMessageVisibilityFlag  bool
  4930  	leaveMessageVisibility     string // 出群消息可见性(only_owner/all_members/not_anyone)
  4931  	leaveMessageVisibilityFlag bool
  4932  	membershipApproval         string // 加群审批(no_approval_required/approval_required)
  4933  	membershipApprovalFlag     bool
  4934  }
  4935  
  4936  func NewUpdateChatReqBodyBuilder() *UpdateChatReqBodyBuilder {
  4937  	builder := &UpdateChatReqBodyBuilder{}
  4938  	return builder
  4939  }
  4940  
  4941  // 群头像对应的 Image Key,可通过[上传图片](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)获取(注意:上传图片的 ==image_type== 需要指定为 ==avatar==)
  4942  //
  4943  //示例值:default-avatar_44ae0ca3-e140-494b-956f-78091e348435
  4944  func (builder *UpdateChatReqBodyBuilder) Avatar(avatar string) *UpdateChatReqBodyBuilder {
  4945  	builder.avatar = avatar
  4946  	builder.avatarFlag = true
  4947  	return builder
  4948  }
  4949  
  4950  // 群名称
  4951  //
  4952  //示例值:群聊
  4953  func (builder *UpdateChatReqBodyBuilder) Name(name string) *UpdateChatReqBodyBuilder {
  4954  	builder.name = name
  4955  	builder.nameFlag = true
  4956  	return builder
  4957  }
  4958  
  4959  // 群描述
  4960  //
  4961  //示例值:测试群描述
  4962  func (builder *UpdateChatReqBodyBuilder) Description(description string) *UpdateChatReqBodyBuilder {
  4963  	builder.description = description
  4964  	builder.descriptionFlag = true
  4965  	return builder
  4966  }
  4967  
  4968  // 群国际化名称
  4969  //
  4970  //示例值:
  4971  func (builder *UpdateChatReqBodyBuilder) I18nNames(i18nNames *I18nNames) *UpdateChatReqBodyBuilder {
  4972  	builder.i18nNames = i18nNames
  4973  	builder.i18nNamesFlag = true
  4974  	return builder
  4975  }
  4976  
  4977  // 加 user/bot 入群权限(all_members/only_owner)
  4978  //
  4979  //示例值:all_members
  4980  func (builder *UpdateChatReqBodyBuilder) AddMemberPermission(addMemberPermission string) *UpdateChatReqBodyBuilder {
  4981  	builder.addMemberPermission = addMemberPermission
  4982  	builder.addMemberPermissionFlag = true
  4983  	return builder
  4984  }
  4985  
  4986  // 群分享权限(allowed/not_allowed)
  4987  //
  4988  //示例值:allowed
  4989  func (builder *UpdateChatReqBodyBuilder) ShareCardPermission(shareCardPermission string) *UpdateChatReqBodyBuilder {
  4990  	builder.shareCardPermission = shareCardPermission
  4991  	builder.shareCardPermissionFlag = true
  4992  	return builder
  4993  }
  4994  
  4995  // at 所有人权限(all_members/only_owner)
  4996  //
  4997  //示例值:all_members
  4998  func (builder *UpdateChatReqBodyBuilder) AtAllPermission(atAllPermission string) *UpdateChatReqBodyBuilder {
  4999  	builder.atAllPermission = atAllPermission
  5000  	builder.atAllPermissionFlag = true
  5001  	return builder
  5002  }
  5003  
  5004  // 群编辑权限(all_members/only_owner)
  5005  //
  5006  //示例值:all_members
  5007  func (builder *UpdateChatReqBodyBuilder) EditPermission(editPermission string) *UpdateChatReqBodyBuilder {
  5008  	builder.editPermission = editPermission
  5009  	builder.editPermissionFlag = true
  5010  	return builder
  5011  }
  5012  
  5013  // 新群主 ID
  5014  //
  5015  //示例值:4d7a3c6g
  5016  func (builder *UpdateChatReqBodyBuilder) OwnerId(ownerId string) *UpdateChatReqBodyBuilder {
  5017  	builder.ownerId = ownerId
  5018  	builder.ownerIdFlag = true
  5019  	return builder
  5020  }
  5021  
  5022  // 入群消息可见性(only_owner/all_members/not_anyone)
  5023  //
  5024  //示例值:only_owner
  5025  func (builder *UpdateChatReqBodyBuilder) JoinMessageVisibility(joinMessageVisibility string) *UpdateChatReqBodyBuilder {
  5026  	builder.joinMessageVisibility = joinMessageVisibility
  5027  	builder.joinMessageVisibilityFlag = true
  5028  	return builder
  5029  }
  5030  
  5031  // 出群消息可见性(only_owner/all_members/not_anyone)
  5032  //
  5033  //示例值:only_owner
  5034  func (builder *UpdateChatReqBodyBuilder) LeaveMessageVisibility(leaveMessageVisibility string) *UpdateChatReqBodyBuilder {
  5035  	builder.leaveMessageVisibility = leaveMessageVisibility
  5036  	builder.leaveMessageVisibilityFlag = true
  5037  	return builder
  5038  }
  5039  
  5040  // 加群审批(no_approval_required/approval_required)
  5041  //
  5042  //示例值:no_approval_required
  5043  func (builder *UpdateChatReqBodyBuilder) MembershipApproval(membershipApproval string) *UpdateChatReqBodyBuilder {
  5044  	builder.membershipApproval = membershipApproval
  5045  	builder.membershipApprovalFlag = true
  5046  	return builder
  5047  }
  5048  
  5049  func (builder *UpdateChatReqBodyBuilder) Build() *UpdateChatReqBody {
  5050  	req := &UpdateChatReqBody{}
  5051  	if builder.avatarFlag {
  5052  		req.Avatar = &builder.avatar
  5053  	}
  5054  	if builder.nameFlag {
  5055  		req.Name = &builder.name
  5056  	}
  5057  	if builder.descriptionFlag {
  5058  		req.Description = &builder.description
  5059  	}
  5060  	if builder.i18nNamesFlag {
  5061  		req.I18nNames = builder.i18nNames
  5062  	}
  5063  	if builder.addMemberPermissionFlag {
  5064  		req.AddMemberPermission = &builder.addMemberPermission
  5065  	}
  5066  	if builder.shareCardPermissionFlag {
  5067  		req.ShareCardPermission = &builder.shareCardPermission
  5068  	}
  5069  	if builder.atAllPermissionFlag {
  5070  		req.AtAllPermission = &builder.atAllPermission
  5071  	}
  5072  	if builder.editPermissionFlag {
  5073  		req.EditPermission = &builder.editPermission
  5074  	}
  5075  	if builder.ownerIdFlag {
  5076  		req.OwnerId = &builder.ownerId
  5077  	}
  5078  	if builder.joinMessageVisibilityFlag {
  5079  		req.JoinMessageVisibility = &builder.joinMessageVisibility
  5080  	}
  5081  	if builder.leaveMessageVisibilityFlag {
  5082  		req.LeaveMessageVisibility = &builder.leaveMessageVisibility
  5083  	}
  5084  	if builder.membershipApprovalFlag {
  5085  		req.MembershipApproval = &builder.membershipApproval
  5086  	}
  5087  	return req
  5088  }
  5089  
  5090  type UpdateChatPathReqBodyBuilder struct {
  5091  	avatar                     string // 群头像对应的 Image Key,可通过[上传图片](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)获取(注意:上传图片的 ==image_type== 需要指定为 ==avatar==)
  5092  	avatarFlag                 bool
  5093  	name                       string // 群名称
  5094  	nameFlag                   bool
  5095  	description                string // 群描述
  5096  	descriptionFlag            bool
  5097  	i18nNames                  *I18nNames // 群国际化名称
  5098  	i18nNamesFlag              bool
  5099  	addMemberPermission        string // 加 user/bot 入群权限(all_members/only_owner)
  5100  	addMemberPermissionFlag    bool
  5101  	shareCardPermission        string // 群分享权限(allowed/not_allowed)
  5102  	shareCardPermissionFlag    bool
  5103  	atAllPermission            string // at 所有人权限(all_members/only_owner)
  5104  	atAllPermissionFlag        bool
  5105  	editPermission             string // 群编辑权限(all_members/only_owner)
  5106  	editPermissionFlag         bool
  5107  	ownerId                    string // 新群主 ID
  5108  	ownerIdFlag                bool
  5109  	joinMessageVisibility      string // 入群消息可见性(only_owner/all_members/not_anyone)
  5110  	joinMessageVisibilityFlag  bool
  5111  	leaveMessageVisibility     string // 出群消息可见性(only_owner/all_members/not_anyone)
  5112  	leaveMessageVisibilityFlag bool
  5113  	membershipApproval         string // 加群审批(no_approval_required/approval_required)
  5114  	membershipApprovalFlag     bool
  5115  	labels                     []string // 群标签
  5116  	labelsFlag                 bool
  5117  	toolkitIds                 []string // 群快捷组件列表
  5118  	toolkitIdsFlag             bool
  5119  }
  5120  
  5121  func NewUpdateChatPathReqBodyBuilder() *UpdateChatPathReqBodyBuilder {
  5122  	builder := &UpdateChatPathReqBodyBuilder{}
  5123  	return builder
  5124  }
  5125  
  5126  // 群头像对应的 Image Key,可通过[上传图片](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)获取(注意:上传图片的 ==image_type== 需要指定为 ==avatar==)
  5127  //
  5128  // 示例值:default-avatar_44ae0ca3-e140-494b-956f-78091e348435
  5129  func (builder *UpdateChatPathReqBodyBuilder) Avatar(avatar string) *UpdateChatPathReqBodyBuilder {
  5130  	builder.avatar = avatar
  5131  	builder.avatarFlag = true
  5132  	return builder
  5133  }
  5134  
  5135  // 群名称
  5136  //
  5137  // 示例值:群聊
  5138  func (builder *UpdateChatPathReqBodyBuilder) Name(name string) *UpdateChatPathReqBodyBuilder {
  5139  	builder.name = name
  5140  	builder.nameFlag = true
  5141  	return builder
  5142  }
  5143  
  5144  // 群描述
  5145  //
  5146  // 示例值:测试群描述
  5147  func (builder *UpdateChatPathReqBodyBuilder) Description(description string) *UpdateChatPathReqBodyBuilder {
  5148  	builder.description = description
  5149  	builder.descriptionFlag = true
  5150  	return builder
  5151  }
  5152  
  5153  // 群国际化名称
  5154  //
  5155  // 示例值:
  5156  func (builder *UpdateChatPathReqBodyBuilder) I18nNames(i18nNames *I18nNames) *UpdateChatPathReqBodyBuilder {
  5157  	builder.i18nNames = i18nNames
  5158  	builder.i18nNamesFlag = true
  5159  	return builder
  5160  }
  5161  
  5162  // 加 user/bot 入群权限(all_members/only_owner)
  5163  //
  5164  // 示例值:all_members
  5165  func (builder *UpdateChatPathReqBodyBuilder) AddMemberPermission(addMemberPermission string) *UpdateChatPathReqBodyBuilder {
  5166  	builder.addMemberPermission = addMemberPermission
  5167  	builder.addMemberPermissionFlag = true
  5168  	return builder
  5169  }
  5170  
  5171  // 群分享权限(allowed/not_allowed)
  5172  //
  5173  // 示例值:allowed
  5174  func (builder *UpdateChatPathReqBodyBuilder) ShareCardPermission(shareCardPermission string) *UpdateChatPathReqBodyBuilder {
  5175  	builder.shareCardPermission = shareCardPermission
  5176  	builder.shareCardPermissionFlag = true
  5177  	return builder
  5178  }
  5179  
  5180  // at 所有人权限(all_members/only_owner)
  5181  //
  5182  // 示例值:all_members
  5183  func (builder *UpdateChatPathReqBodyBuilder) AtAllPermission(atAllPermission string) *UpdateChatPathReqBodyBuilder {
  5184  	builder.atAllPermission = atAllPermission
  5185  	builder.atAllPermissionFlag = true
  5186  	return builder
  5187  }
  5188  
  5189  // 群编辑权限(all_members/only_owner)
  5190  //
  5191  // 示例值:all_members
  5192  func (builder *UpdateChatPathReqBodyBuilder) EditPermission(editPermission string) *UpdateChatPathReqBodyBuilder {
  5193  	builder.editPermission = editPermission
  5194  	builder.editPermissionFlag = true
  5195  	return builder
  5196  }
  5197  
  5198  // 新群主 ID
  5199  //
  5200  // 示例值:4d7a3c6g
  5201  func (builder *UpdateChatPathReqBodyBuilder) OwnerId(ownerId string) *UpdateChatPathReqBodyBuilder {
  5202  	builder.ownerId = ownerId
  5203  	builder.ownerIdFlag = true
  5204  	return builder
  5205  }
  5206  
  5207  // 入群消息可见性(only_owner/all_members/not_anyone)
  5208  //
  5209  // 示例值:only_owner
  5210  func (builder *UpdateChatPathReqBodyBuilder) JoinMessageVisibility(joinMessageVisibility string) *UpdateChatPathReqBodyBuilder {
  5211  	builder.joinMessageVisibility = joinMessageVisibility
  5212  	builder.joinMessageVisibilityFlag = true
  5213  	return builder
  5214  }
  5215  
  5216  // 出群消息可见性(only_owner/all_members/not_anyone)
  5217  //
  5218  // 示例值:only_owner
  5219  func (builder *UpdateChatPathReqBodyBuilder) LeaveMessageVisibility(leaveMessageVisibility string) *UpdateChatPathReqBodyBuilder {
  5220  	builder.leaveMessageVisibility = leaveMessageVisibility
  5221  	builder.leaveMessageVisibilityFlag = true
  5222  	return builder
  5223  }
  5224  
  5225  // 加群审批(no_approval_required/approval_required)
  5226  //
  5227  // 示例值:no_approval_required
  5228  func (builder *UpdateChatPathReqBodyBuilder) MembershipApproval(membershipApproval string) *UpdateChatPathReqBodyBuilder {
  5229  	builder.membershipApproval = membershipApproval
  5230  	builder.membershipApprovalFlag = true
  5231  	return builder
  5232  }
  5233  
  5234  func (builder *UpdateChatPathReqBodyBuilder) Build() (*UpdateChatReqBody, error) {
  5235  	req := &UpdateChatReqBody{}
  5236  	if builder.avatarFlag {
  5237  		req.Avatar = &builder.avatar
  5238  	}
  5239  	if builder.nameFlag {
  5240  		req.Name = &builder.name
  5241  	}
  5242  	if builder.descriptionFlag {
  5243  		req.Description = &builder.description
  5244  	}
  5245  	if builder.i18nNamesFlag {
  5246  		req.I18nNames = builder.i18nNames
  5247  	}
  5248  	if builder.addMemberPermissionFlag {
  5249  		req.AddMemberPermission = &builder.addMemberPermission
  5250  	}
  5251  	if builder.shareCardPermissionFlag {
  5252  		req.ShareCardPermission = &builder.shareCardPermission
  5253  	}
  5254  	if builder.atAllPermissionFlag {
  5255  		req.AtAllPermission = &builder.atAllPermission
  5256  	}
  5257  	if builder.editPermissionFlag {
  5258  		req.EditPermission = &builder.editPermission
  5259  	}
  5260  	if builder.ownerIdFlag {
  5261  		req.OwnerId = &builder.ownerId
  5262  	}
  5263  	if builder.joinMessageVisibilityFlag {
  5264  		req.JoinMessageVisibility = &builder.joinMessageVisibility
  5265  	}
  5266  	if builder.leaveMessageVisibilityFlag {
  5267  		req.LeaveMessageVisibility = &builder.leaveMessageVisibility
  5268  	}
  5269  	if builder.membershipApprovalFlag {
  5270  		req.MembershipApproval = &builder.membershipApproval
  5271  	}
  5272  	return req, nil
  5273  }
  5274  
  5275  type UpdateChatReqBuilder struct {
  5276  	apiReq *larkcore.ApiReq
  5277  	body   *UpdateChatReqBody
  5278  }
  5279  
  5280  func NewUpdateChatReqBuilder() *UpdateChatReqBuilder {
  5281  	builder := &UpdateChatReqBuilder{}
  5282  	builder.apiReq = &larkcore.ApiReq{
  5283  		PathParams:  larkcore.PathParams{},
  5284  		QueryParams: larkcore.QueryParams{},
  5285  	}
  5286  	return builder
  5287  }
  5288  
  5289  // 群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  5290  //
  5291  // 示例值:oc_a0553eda9014c201e6969b478895c230
  5292  func (builder *UpdateChatReqBuilder) ChatId(chatId string) *UpdateChatReqBuilder {
  5293  	builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId))
  5294  	return builder
  5295  }
  5296  
  5297  // 此次调用中使用的用户ID的类型
  5298  //
  5299  // 示例值:
  5300  func (builder *UpdateChatReqBuilder) UserIdType(userIdType string) *UpdateChatReqBuilder {
  5301  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  5302  	return builder
  5303  }
  5304  
  5305  // 更新群头像、群名称、群描述、群配置、转让群主等。
  5306  func (builder *UpdateChatReqBuilder) Body(body *UpdateChatReqBody) *UpdateChatReqBuilder {
  5307  	builder.body = body
  5308  	return builder
  5309  }
  5310  
  5311  func (builder *UpdateChatReqBuilder) Build() *UpdateChatReq {
  5312  	req := &UpdateChatReq{}
  5313  	req.apiReq = &larkcore.ApiReq{}
  5314  	req.apiReq.PathParams = builder.apiReq.PathParams
  5315  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  5316  	req.apiReq.Body = builder.body
  5317  	return req
  5318  }
  5319  
  5320  type UpdateChatReqBody struct {
  5321  	Avatar                 *string    `json:"avatar,omitempty"`                   // 群头像对应的 Image Key,可通过[上传图片](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/im-v1/image/create)获取(注意:上传图片的 ==image_type== 需要指定为 ==avatar==)
  5322  	Name                   *string    `json:"name,omitempty"`                     // 群名称
  5323  	Description            *string    `json:"description,omitempty"`              // 群描述
  5324  	I18nNames              *I18nNames `json:"i18n_names,omitempty"`               // 群国际化名称
  5325  	AddMemberPermission    *string    `json:"add_member_permission,omitempty"`    // 加 user/bot 入群权限(all_members/only_owner)
  5326  	ShareCardPermission    *string    `json:"share_card_permission,omitempty"`    // 群分享权限(allowed/not_allowed)
  5327  	AtAllPermission        *string    `json:"at_all_permission,omitempty"`        // at 所有人权限(all_members/only_owner)
  5328  	EditPermission         *string    `json:"edit_permission,omitempty"`          // 群编辑权限(all_members/only_owner)
  5329  	OwnerId                *string    `json:"owner_id,omitempty"`                 // 新群主 ID
  5330  	JoinMessageVisibility  *string    `json:"join_message_visibility,omitempty"`  // 入群消息可见性(only_owner/all_members/not_anyone)
  5331  	LeaveMessageVisibility *string    `json:"leave_message_visibility,omitempty"` // 出群消息可见性(only_owner/all_members/not_anyone)
  5332  	MembershipApproval     *string    `json:"membership_approval,omitempty"`      // 加群审批(no_approval_required/approval_required)
  5333  
  5334  }
  5335  
  5336  type UpdateChatReq struct {
  5337  	apiReq *larkcore.ApiReq
  5338  	Body   *UpdateChatReqBody `body:""`
  5339  }
  5340  
  5341  type UpdateChatResp struct {
  5342  	*larkcore.ApiResp `json:"-"`
  5343  	larkcore.CodeError
  5344  }
  5345  
  5346  func (resp *UpdateChatResp) Success() bool {
  5347  	return resp.Code == 0
  5348  }
  5349  
  5350  type GetChatAnnouncementReqBuilder struct {
  5351  	apiReq *larkcore.ApiReq
  5352  }
  5353  
  5354  func NewGetChatAnnouncementReqBuilder() *GetChatAnnouncementReqBuilder {
  5355  	builder := &GetChatAnnouncementReqBuilder{}
  5356  	builder.apiReq = &larkcore.ApiReq{
  5357  		PathParams:  larkcore.PathParams{},
  5358  		QueryParams: larkcore.QueryParams{},
  5359  	}
  5360  	return builder
  5361  }
  5362  
  5363  // 待获取公告的群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  5364  //
  5365  // 示例值:oc_5ad11d72b830411d72b836c20
  5366  func (builder *GetChatAnnouncementReqBuilder) ChatId(chatId string) *GetChatAnnouncementReqBuilder {
  5367  	builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId))
  5368  	return builder
  5369  }
  5370  
  5371  // 此次调用中使用的用户ID的类型
  5372  //
  5373  // 示例值:open_id
  5374  func (builder *GetChatAnnouncementReqBuilder) UserIdType(userIdType string) *GetChatAnnouncementReqBuilder {
  5375  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  5376  	return builder
  5377  }
  5378  
  5379  func (builder *GetChatAnnouncementReqBuilder) Build() *GetChatAnnouncementReq {
  5380  	req := &GetChatAnnouncementReq{}
  5381  	req.apiReq = &larkcore.ApiReq{}
  5382  	req.apiReq.PathParams = builder.apiReq.PathParams
  5383  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  5384  	return req
  5385  }
  5386  
  5387  type GetChatAnnouncementReq struct {
  5388  	apiReq *larkcore.ApiReq
  5389  }
  5390  
  5391  type GetChatAnnouncementRespData struct {
  5392  	Content        *string `json:"content,omitempty"`          // 云文档序列化信息
  5393  	Revision       *string `json:"revision,omitempty"`         // 文档当前版本号 纯数字
  5394  	CreateTime     *string `json:"create_time,omitempty"`      // 文档生成的时间戳(秒)
  5395  	UpdateTime     *string `json:"update_time,omitempty"`      // 文档更新的时间戳(秒)
  5396  	OwnerIdType    *string `json:"owner_id_type,omitempty"`    // 文档所有者的 ID 类型;;- 如果所有者是用户,则与查询参数中的user_id_type 相同;取值为`open_id` `user_id` `union_id` 其中之一,不同 ID 的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction);- 如果所有者是机器人,为机器人应用的 `app_id`,详情参见  [获取应用身份访问凭证](/ssl:ttdoc/ukTMukTMukTM/ukDNz4SO0MjL5QzM/g)
  5397  	OwnerId        *string `json:"owner_id,omitempty"`         // 文档所有者 ID,ID 值与owner_id_type 中的ID类型对应
  5398  	ModifierIdType *string `json:"modifier_id_type,omitempty"` // 文档最新修改者 id 类型;; - 如果修改者是用户,则与查询参数中的user_id_type 相同;取值为`open_id` `user_id` `union_id` 其中之一,不同 ID 的说明参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction);- 如果修改者是机器人,为机器人应用的 `app_id`,详情参见  [获取应用身份访问凭证](/ssl:ttdoc/ukTMukTMukTM/ukDNz4SO0MjL5QzM/g)
  5399  	ModifierId     *string `json:"modifier_id,omitempty"`      // 文档最新修改者 ID,ID 值与modifier_id_type 中的ID类型对应
  5400  }
  5401  
  5402  type GetChatAnnouncementResp struct {
  5403  	*larkcore.ApiResp `json:"-"`
  5404  	larkcore.CodeError
  5405  	Data *GetChatAnnouncementRespData `json:"data"` // 业务数据
  5406  }
  5407  
  5408  func (resp *GetChatAnnouncementResp) Success() bool {
  5409  	return resp.Code == 0
  5410  }
  5411  
  5412  type PatchChatAnnouncementReqBodyBuilder struct {
  5413  	revision     string // 文档当前版本号 int64 类型,get 接口会返回
  5414  	revisionFlag bool
  5415  	requests     []string // 修改文档请求的序列化字段;;更新公告信息的格式和更新[云文档](/ssl:ttdoc/ukTMukTMukTM/uAzM5YjLwMTO24CMzkjN)格式相同
  5416  	requestsFlag bool
  5417  }
  5418  
  5419  func NewPatchChatAnnouncementReqBodyBuilder() *PatchChatAnnouncementReqBodyBuilder {
  5420  	builder := &PatchChatAnnouncementReqBodyBuilder{}
  5421  	return builder
  5422  }
  5423  
  5424  // 文档当前版本号 int64 类型,get 接口会返回
  5425  //
  5426  //示例值:12
  5427  func (builder *PatchChatAnnouncementReqBodyBuilder) Revision(revision string) *PatchChatAnnouncementReqBodyBuilder {
  5428  	builder.revision = revision
  5429  	builder.revisionFlag = true
  5430  	return builder
  5431  }
  5432  
  5433  // 修改文档请求的序列化字段;;更新公告信息的格式和更新[云文档](/ssl:ttdoc/ukTMukTMukTM/uAzM5YjLwMTO24CMzkjN)格式相同
  5434  //
  5435  //示例值:xxx
  5436  func (builder *PatchChatAnnouncementReqBodyBuilder) Requests(requests []string) *PatchChatAnnouncementReqBodyBuilder {
  5437  	builder.requests = requests
  5438  	builder.requestsFlag = true
  5439  	return builder
  5440  }
  5441  
  5442  func (builder *PatchChatAnnouncementReqBodyBuilder) Build() *PatchChatAnnouncementReqBody {
  5443  	req := &PatchChatAnnouncementReqBody{}
  5444  	if builder.revisionFlag {
  5445  		req.Revision = &builder.revision
  5446  	}
  5447  	if builder.requestsFlag {
  5448  		req.Requests = builder.requests
  5449  	}
  5450  	return req
  5451  }
  5452  
  5453  type PatchChatAnnouncementPathReqBodyBuilder struct {
  5454  	revision     string // 文档当前版本号 int64 类型,get 接口会返回
  5455  	revisionFlag bool
  5456  	requests     []string // 修改文档请求的序列化字段;;更新公告信息的格式和更新[云文档](/ssl:ttdoc/ukTMukTMukTM/uAzM5YjLwMTO24CMzkjN)格式相同
  5457  	requestsFlag bool
  5458  }
  5459  
  5460  func NewPatchChatAnnouncementPathReqBodyBuilder() *PatchChatAnnouncementPathReqBodyBuilder {
  5461  	builder := &PatchChatAnnouncementPathReqBodyBuilder{}
  5462  	return builder
  5463  }
  5464  
  5465  // 文档当前版本号 int64 类型,get 接口会返回
  5466  //
  5467  // 示例值:12
  5468  func (builder *PatchChatAnnouncementPathReqBodyBuilder) Revision(revision string) *PatchChatAnnouncementPathReqBodyBuilder {
  5469  	builder.revision = revision
  5470  	builder.revisionFlag = true
  5471  	return builder
  5472  }
  5473  
  5474  // 修改文档请求的序列化字段;;更新公告信息的格式和更新[云文档](/ssl:ttdoc/ukTMukTMukTM/uAzM5YjLwMTO24CMzkjN)格式相同
  5475  //
  5476  // 示例值:xxx
  5477  func (builder *PatchChatAnnouncementPathReqBodyBuilder) Requests(requests []string) *PatchChatAnnouncementPathReqBodyBuilder {
  5478  	builder.requests = requests
  5479  	builder.requestsFlag = true
  5480  	return builder
  5481  }
  5482  
  5483  func (builder *PatchChatAnnouncementPathReqBodyBuilder) Build() (*PatchChatAnnouncementReqBody, error) {
  5484  	req := &PatchChatAnnouncementReqBody{}
  5485  	if builder.revisionFlag {
  5486  		req.Revision = &builder.revision
  5487  	}
  5488  	if builder.requestsFlag {
  5489  		req.Requests = builder.requests
  5490  	}
  5491  	return req, nil
  5492  }
  5493  
  5494  type PatchChatAnnouncementReqBuilder struct {
  5495  	apiReq *larkcore.ApiReq
  5496  	body   *PatchChatAnnouncementReqBody
  5497  }
  5498  
  5499  func NewPatchChatAnnouncementReqBuilder() *PatchChatAnnouncementReqBuilder {
  5500  	builder := &PatchChatAnnouncementReqBuilder{}
  5501  	builder.apiReq = &larkcore.ApiReq{
  5502  		PathParams:  larkcore.PathParams{},
  5503  		QueryParams: larkcore.QueryParams{},
  5504  	}
  5505  	return builder
  5506  }
  5507  
  5508  // 待修改公告的群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  5509  //
  5510  // 示例值:oc_5ad11d72b830411d72b836c20
  5511  func (builder *PatchChatAnnouncementReqBuilder) ChatId(chatId string) *PatchChatAnnouncementReqBuilder {
  5512  	builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId))
  5513  	return builder
  5514  }
  5515  
  5516  // 更新会话中的群公告信息,更新公告信息的格式和更新[云文档](https://open.feishu.cn/document/ukTMukTMukTM/uAzM5YjLwMTO24CMzkjN)格式相同。
  5517  func (builder *PatchChatAnnouncementReqBuilder) Body(body *PatchChatAnnouncementReqBody) *PatchChatAnnouncementReqBuilder {
  5518  	builder.body = body
  5519  	return builder
  5520  }
  5521  
  5522  func (builder *PatchChatAnnouncementReqBuilder) Build() *PatchChatAnnouncementReq {
  5523  	req := &PatchChatAnnouncementReq{}
  5524  	req.apiReq = &larkcore.ApiReq{}
  5525  	req.apiReq.PathParams = builder.apiReq.PathParams
  5526  	req.apiReq.Body = builder.body
  5527  	return req
  5528  }
  5529  
  5530  type PatchChatAnnouncementReqBody struct {
  5531  	Revision *string  `json:"revision,omitempty"` // 文档当前版本号 int64 类型,get 接口会返回
  5532  	Requests []string `json:"requests,omitempty"` // 修改文档请求的序列化字段;;更新公告信息的格式和更新[云文档](/ssl:ttdoc/ukTMukTMukTM/uAzM5YjLwMTO24CMzkjN)格式相同
  5533  }
  5534  
  5535  type PatchChatAnnouncementReq struct {
  5536  	apiReq *larkcore.ApiReq
  5537  	Body   *PatchChatAnnouncementReqBody `body:""`
  5538  }
  5539  
  5540  type PatchChatAnnouncementResp struct {
  5541  	*larkcore.ApiResp `json:"-"`
  5542  	larkcore.CodeError
  5543  }
  5544  
  5545  func (resp *PatchChatAnnouncementResp) Success() bool {
  5546  	return resp.Code == 0
  5547  }
  5548  
  5549  type AddManagersChatManagersReqBodyBuilder struct {
  5550  	managerIds     []string // 要增加的 manager_id
  5551  	managerIdsFlag bool
  5552  }
  5553  
  5554  func NewAddManagersChatManagersReqBodyBuilder() *AddManagersChatManagersReqBodyBuilder {
  5555  	builder := &AddManagersChatManagersReqBodyBuilder{}
  5556  	return builder
  5557  }
  5558  
  5559  // 要增加的 manager_id
  5560  //
  5561  //示例值:["ou_9204a37300b3700d61effaa439f34295"]
  5562  func (builder *AddManagersChatManagersReqBodyBuilder) ManagerIds(managerIds []string) *AddManagersChatManagersReqBodyBuilder {
  5563  	builder.managerIds = managerIds
  5564  	builder.managerIdsFlag = true
  5565  	return builder
  5566  }
  5567  
  5568  func (builder *AddManagersChatManagersReqBodyBuilder) Build() *AddManagersChatManagersReqBody {
  5569  	req := &AddManagersChatManagersReqBody{}
  5570  	if builder.managerIdsFlag {
  5571  		req.ManagerIds = builder.managerIds
  5572  	}
  5573  	return req
  5574  }
  5575  
  5576  type AddManagersChatManagersPathReqBodyBuilder struct {
  5577  	managerIds     []string // 要增加的 manager_id
  5578  	managerIdsFlag bool
  5579  }
  5580  
  5581  func NewAddManagersChatManagersPathReqBodyBuilder() *AddManagersChatManagersPathReqBodyBuilder {
  5582  	builder := &AddManagersChatManagersPathReqBodyBuilder{}
  5583  	return builder
  5584  }
  5585  
  5586  // 要增加的 manager_id
  5587  //
  5588  // 示例值:["ou_9204a37300b3700d61effaa439f34295"]
  5589  func (builder *AddManagersChatManagersPathReqBodyBuilder) ManagerIds(managerIds []string) *AddManagersChatManagersPathReqBodyBuilder {
  5590  	builder.managerIds = managerIds
  5591  	builder.managerIdsFlag = true
  5592  	return builder
  5593  }
  5594  
  5595  func (builder *AddManagersChatManagersPathReqBodyBuilder) Build() (*AddManagersChatManagersReqBody, error) {
  5596  	req := &AddManagersChatManagersReqBody{}
  5597  	if builder.managerIdsFlag {
  5598  		req.ManagerIds = builder.managerIds
  5599  	}
  5600  	return req, nil
  5601  }
  5602  
  5603  type AddManagersChatManagersReqBuilder struct {
  5604  	apiReq *larkcore.ApiReq
  5605  	body   *AddManagersChatManagersReqBody
  5606  }
  5607  
  5608  func NewAddManagersChatManagersReqBuilder() *AddManagersChatManagersReqBuilder {
  5609  	builder := &AddManagersChatManagersReqBuilder{}
  5610  	builder.apiReq = &larkcore.ApiReq{
  5611  		PathParams:  larkcore.PathParams{},
  5612  		QueryParams: larkcore.QueryParams{},
  5613  	}
  5614  	return builder
  5615  }
  5616  
  5617  // 群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  5618  //
  5619  // 示例值:oc_a0553eda9014c201e6969b478895c230
  5620  func (builder *AddManagersChatManagersReqBuilder) ChatId(chatId string) *AddManagersChatManagersReqBuilder {
  5621  	builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId))
  5622  	return builder
  5623  }
  5624  
  5625  // 群成员 id 类型 open_id/user_id/union_id/app_id
  5626  //
  5627  // 示例值:open_id
  5628  func (builder *AddManagersChatManagersReqBuilder) MemberIdType(memberIdType string) *AddManagersChatManagersReqBuilder {
  5629  	builder.apiReq.QueryParams.Set("member_id_type", fmt.Sprint(memberIdType))
  5630  	return builder
  5631  }
  5632  
  5633  // 将用户或机器人指定为群管理员。
  5634  func (builder *AddManagersChatManagersReqBuilder) Body(body *AddManagersChatManagersReqBody) *AddManagersChatManagersReqBuilder {
  5635  	builder.body = body
  5636  	return builder
  5637  }
  5638  
  5639  func (builder *AddManagersChatManagersReqBuilder) Build() *AddManagersChatManagersReq {
  5640  	req := &AddManagersChatManagersReq{}
  5641  	req.apiReq = &larkcore.ApiReq{}
  5642  	req.apiReq.PathParams = builder.apiReq.PathParams
  5643  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  5644  	req.apiReq.Body = builder.body
  5645  	return req
  5646  }
  5647  
  5648  type AddManagersChatManagersReqBody struct {
  5649  	ManagerIds []string `json:"manager_ids,omitempty"` // 要增加的 manager_id
  5650  }
  5651  
  5652  type AddManagersChatManagersReq struct {
  5653  	apiReq *larkcore.ApiReq
  5654  	Body   *AddManagersChatManagersReqBody `body:""`
  5655  }
  5656  
  5657  type AddManagersChatManagersRespData struct {
  5658  	ChatManagers    []string `json:"chat_managers,omitempty"`     // 群目前用户类型的管理员 id
  5659  	ChatBotManagers []string `json:"chat_bot_managers,omitempty"` // 群目前机器人类型的管理员 id
  5660  }
  5661  
  5662  type AddManagersChatManagersResp struct {
  5663  	*larkcore.ApiResp `json:"-"`
  5664  	larkcore.CodeError
  5665  	Data *AddManagersChatManagersRespData `json:"data"` // 业务数据
  5666  }
  5667  
  5668  func (resp *AddManagersChatManagersResp) Success() bool {
  5669  	return resp.Code == 0
  5670  }
  5671  
  5672  type DeleteManagersChatManagersReqBodyBuilder struct {
  5673  	managerIds     []string // 要删除的 manager_id
  5674  	managerIdsFlag bool
  5675  }
  5676  
  5677  func NewDeleteManagersChatManagersReqBodyBuilder() *DeleteManagersChatManagersReqBodyBuilder {
  5678  	builder := &DeleteManagersChatManagersReqBodyBuilder{}
  5679  	return builder
  5680  }
  5681  
  5682  // 要删除的 manager_id
  5683  //
  5684  //示例值:["ou_9204a37300b3700d61effaa439f34295"]
  5685  func (builder *DeleteManagersChatManagersReqBodyBuilder) ManagerIds(managerIds []string) *DeleteManagersChatManagersReqBodyBuilder {
  5686  	builder.managerIds = managerIds
  5687  	builder.managerIdsFlag = true
  5688  	return builder
  5689  }
  5690  
  5691  func (builder *DeleteManagersChatManagersReqBodyBuilder) Build() *DeleteManagersChatManagersReqBody {
  5692  	req := &DeleteManagersChatManagersReqBody{}
  5693  	if builder.managerIdsFlag {
  5694  		req.ManagerIds = builder.managerIds
  5695  	}
  5696  	return req
  5697  }
  5698  
  5699  type DeleteManagersChatManagersPathReqBodyBuilder struct {
  5700  	managerIds     []string // 要删除的 manager_id
  5701  	managerIdsFlag bool
  5702  }
  5703  
  5704  func NewDeleteManagersChatManagersPathReqBodyBuilder() *DeleteManagersChatManagersPathReqBodyBuilder {
  5705  	builder := &DeleteManagersChatManagersPathReqBodyBuilder{}
  5706  	return builder
  5707  }
  5708  
  5709  // 要删除的 manager_id
  5710  //
  5711  // 示例值:["ou_9204a37300b3700d61effaa439f34295"]
  5712  func (builder *DeleteManagersChatManagersPathReqBodyBuilder) ManagerIds(managerIds []string) *DeleteManagersChatManagersPathReqBodyBuilder {
  5713  	builder.managerIds = managerIds
  5714  	builder.managerIdsFlag = true
  5715  	return builder
  5716  }
  5717  
  5718  func (builder *DeleteManagersChatManagersPathReqBodyBuilder) Build() (*DeleteManagersChatManagersReqBody, error) {
  5719  	req := &DeleteManagersChatManagersReqBody{}
  5720  	if builder.managerIdsFlag {
  5721  		req.ManagerIds = builder.managerIds
  5722  	}
  5723  	return req, nil
  5724  }
  5725  
  5726  type DeleteManagersChatManagersReqBuilder struct {
  5727  	apiReq *larkcore.ApiReq
  5728  	body   *DeleteManagersChatManagersReqBody
  5729  }
  5730  
  5731  func NewDeleteManagersChatManagersReqBuilder() *DeleteManagersChatManagersReqBuilder {
  5732  	builder := &DeleteManagersChatManagersReqBuilder{}
  5733  	builder.apiReq = &larkcore.ApiReq{
  5734  		PathParams:  larkcore.PathParams{},
  5735  		QueryParams: larkcore.QueryParams{},
  5736  	}
  5737  	return builder
  5738  }
  5739  
  5740  // 群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  5741  //
  5742  // 示例值:oc_a0553eda9014c201e6969b478895c230
  5743  func (builder *DeleteManagersChatManagersReqBuilder) ChatId(chatId string) *DeleteManagersChatManagersReqBuilder {
  5744  	builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId))
  5745  	return builder
  5746  }
  5747  
  5748  // 群成员 id 类型 open_id/user_id/union_id/app_id
  5749  //
  5750  // 示例值:open_id
  5751  func (builder *DeleteManagersChatManagersReqBuilder) MemberIdType(memberIdType string) *DeleteManagersChatManagersReqBuilder {
  5752  	builder.apiReq.QueryParams.Set("member_id_type", fmt.Sprint(memberIdType))
  5753  	return builder
  5754  }
  5755  
  5756  // 删除指定的群管理员(用户或机器人)
  5757  func (builder *DeleteManagersChatManagersReqBuilder) Body(body *DeleteManagersChatManagersReqBody) *DeleteManagersChatManagersReqBuilder {
  5758  	builder.body = body
  5759  	return builder
  5760  }
  5761  
  5762  func (builder *DeleteManagersChatManagersReqBuilder) Build() *DeleteManagersChatManagersReq {
  5763  	req := &DeleteManagersChatManagersReq{}
  5764  	req.apiReq = &larkcore.ApiReq{}
  5765  	req.apiReq.PathParams = builder.apiReq.PathParams
  5766  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  5767  	req.apiReq.Body = builder.body
  5768  	return req
  5769  }
  5770  
  5771  type DeleteManagersChatManagersReqBody struct {
  5772  	ManagerIds []string `json:"manager_ids,omitempty"` // 要删除的 manager_id
  5773  }
  5774  
  5775  type DeleteManagersChatManagersReq struct {
  5776  	apiReq *larkcore.ApiReq
  5777  	Body   *DeleteManagersChatManagersReqBody `body:""`
  5778  }
  5779  
  5780  type DeleteManagersChatManagersRespData struct {
  5781  	ChatManagers    []string `json:"chat_managers,omitempty"`     // 群目前用户类型的管理员 id
  5782  	ChatBotManagers []string `json:"chat_bot_managers,omitempty"` // 群目前机器人类型的管理员 id
  5783  }
  5784  
  5785  type DeleteManagersChatManagersResp struct {
  5786  	*larkcore.ApiResp `json:"-"`
  5787  	larkcore.CodeError
  5788  	Data *DeleteManagersChatManagersRespData `json:"data"` // 业务数据
  5789  }
  5790  
  5791  func (resp *DeleteManagersChatManagersResp) Success() bool {
  5792  	return resp.Code == 0
  5793  }
  5794  
  5795  type CreateChatMembersReqBodyBuilder struct {
  5796  	idList     []string // 成员列表;;<b>注意:</b>每次请求,最多拉50个用户或者5个机器人,并且群组最多容纳15个机器人
  5797  	idListFlag bool
  5798  }
  5799  
  5800  func NewCreateChatMembersReqBodyBuilder() *CreateChatMembersReqBodyBuilder {
  5801  	builder := &CreateChatMembersReqBodyBuilder{}
  5802  	return builder
  5803  }
  5804  
  5805  // 成员列表;;<b>注意:</b>每次请求,最多拉50个用户或者5个机器人,并且群组最多容纳15个机器人
  5806  //
  5807  //示例值:["ou_9204a37300b3700d61effaa439f34295"]
  5808  func (builder *CreateChatMembersReqBodyBuilder) IdList(idList []string) *CreateChatMembersReqBodyBuilder {
  5809  	builder.idList = idList
  5810  	builder.idListFlag = true
  5811  	return builder
  5812  }
  5813  
  5814  func (builder *CreateChatMembersReqBodyBuilder) Build() *CreateChatMembersReqBody {
  5815  	req := &CreateChatMembersReqBody{}
  5816  	if builder.idListFlag {
  5817  		req.IdList = builder.idList
  5818  	}
  5819  	return req
  5820  }
  5821  
  5822  type CreateChatMembersPathReqBodyBuilder struct {
  5823  	idList     []string // 成员列表;;<b>注意:</b>每次请求,最多拉50个用户或者5个机器人,并且群组最多容纳15个机器人
  5824  	idListFlag bool
  5825  }
  5826  
  5827  func NewCreateChatMembersPathReqBodyBuilder() *CreateChatMembersPathReqBodyBuilder {
  5828  	builder := &CreateChatMembersPathReqBodyBuilder{}
  5829  	return builder
  5830  }
  5831  
  5832  // 成员列表;;<b>注意:</b>每次请求,最多拉50个用户或者5个机器人,并且群组最多容纳15个机器人
  5833  //
  5834  // 示例值:["ou_9204a37300b3700d61effaa439f34295"]
  5835  func (builder *CreateChatMembersPathReqBodyBuilder) IdList(idList []string) *CreateChatMembersPathReqBodyBuilder {
  5836  	builder.idList = idList
  5837  	builder.idListFlag = true
  5838  	return builder
  5839  }
  5840  
  5841  func (builder *CreateChatMembersPathReqBodyBuilder) Build() (*CreateChatMembersReqBody, error) {
  5842  	req := &CreateChatMembersReqBody{}
  5843  	if builder.idListFlag {
  5844  		req.IdList = builder.idList
  5845  	}
  5846  	return req, nil
  5847  }
  5848  
  5849  type CreateChatMembersReqBuilder struct {
  5850  	apiReq *larkcore.ApiReq
  5851  	body   *CreateChatMembersReqBody
  5852  }
  5853  
  5854  func NewCreateChatMembersReqBuilder() *CreateChatMembersReqBuilder {
  5855  	builder := &CreateChatMembersReqBuilder{}
  5856  	builder.apiReq = &larkcore.ApiReq{
  5857  		PathParams:  larkcore.PathParams{},
  5858  		QueryParams: larkcore.QueryParams{},
  5859  	}
  5860  	return builder
  5861  }
  5862  
  5863  // 群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  5864  //
  5865  // 示例值:oc_a0553eda9014c201e6969b478895c230
  5866  func (builder *CreateChatMembersReqBuilder) ChatId(chatId string) *CreateChatMembersReqBuilder {
  5867  	builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId))
  5868  	return builder
  5869  }
  5870  
  5871  // 进群成员 id 类型 open_id/user_id/union_id/app_id;;<b>注意:</b>拉机器人入群请使用 ==app_id==
  5872  //
  5873  // 示例值:open_id
  5874  func (builder *CreateChatMembersReqBuilder) MemberIdType(memberIdType string) *CreateChatMembersReqBuilder {
  5875  	builder.apiReq.QueryParams.Set("member_id_type", fmt.Sprint(memberIdType))
  5876  	return builder
  5877  }
  5878  
  5879  // 出现不可用ID后的处理方式 0/1/2
  5880  //
  5881  // 示例值:0
  5882  func (builder *CreateChatMembersReqBuilder) SucceedType(succeedType int) *CreateChatMembersReqBuilder {
  5883  	builder.apiReq.QueryParams.Set("succeed_type", fmt.Sprint(succeedType))
  5884  	return builder
  5885  }
  5886  
  5887  // 将用户或机器人拉入群聊。
  5888  func (builder *CreateChatMembersReqBuilder) Body(body *CreateChatMembersReqBody) *CreateChatMembersReqBuilder {
  5889  	builder.body = body
  5890  	return builder
  5891  }
  5892  
  5893  func (builder *CreateChatMembersReqBuilder) Build() *CreateChatMembersReq {
  5894  	req := &CreateChatMembersReq{}
  5895  	req.apiReq = &larkcore.ApiReq{}
  5896  	req.apiReq.PathParams = builder.apiReq.PathParams
  5897  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  5898  	req.apiReq.Body = builder.body
  5899  	return req
  5900  }
  5901  
  5902  type CreateChatMembersReqBody struct {
  5903  	IdList []string `json:"id_list,omitempty"` // 成员列表;;<b>注意:</b>每次请求,最多拉50个用户或者5个机器人,并且群组最多容纳15个机器人
  5904  }
  5905  
  5906  type CreateChatMembersReq struct {
  5907  	apiReq *larkcore.ApiReq
  5908  	Body   *CreateChatMembersReqBody `body:""`
  5909  }
  5910  
  5911  type CreateChatMembersRespData struct {
  5912  	InvalidIdList    []string `json:"invalid_id_list,omitempty"`     // 无效成员列表
  5913  	NotExistedIdList []string `json:"not_existed_id_list,omitempty"` // ID不存在的成员列表
  5914  }
  5915  
  5916  type CreateChatMembersResp struct {
  5917  	*larkcore.ApiResp `json:"-"`
  5918  	larkcore.CodeError
  5919  	Data *CreateChatMembersRespData `json:"data"` // 业务数据
  5920  }
  5921  
  5922  func (resp *CreateChatMembersResp) Success() bool {
  5923  	return resp.Code == 0
  5924  }
  5925  
  5926  type DeleteChatMembersReqBodyBuilder struct {
  5927  	idList     []string // 成员列表
  5928  	idListFlag bool
  5929  }
  5930  
  5931  func NewDeleteChatMembersReqBodyBuilder() *DeleteChatMembersReqBodyBuilder {
  5932  	builder := &DeleteChatMembersReqBodyBuilder{}
  5933  	return builder
  5934  }
  5935  
  5936  // 成员列表
  5937  //
  5938  //示例值:["ou_9204a37300b3700d61effaa439f34295"]
  5939  func (builder *DeleteChatMembersReqBodyBuilder) IdList(idList []string) *DeleteChatMembersReqBodyBuilder {
  5940  	builder.idList = idList
  5941  	builder.idListFlag = true
  5942  	return builder
  5943  }
  5944  
  5945  func (builder *DeleteChatMembersReqBodyBuilder) Build() *DeleteChatMembersReqBody {
  5946  	req := &DeleteChatMembersReqBody{}
  5947  	if builder.idListFlag {
  5948  		req.IdList = builder.idList
  5949  	}
  5950  	return req
  5951  }
  5952  
  5953  type DeleteChatMembersPathReqBodyBuilder struct {
  5954  	idList     []string // 成员列表
  5955  	idListFlag bool
  5956  }
  5957  
  5958  func NewDeleteChatMembersPathReqBodyBuilder() *DeleteChatMembersPathReqBodyBuilder {
  5959  	builder := &DeleteChatMembersPathReqBodyBuilder{}
  5960  	return builder
  5961  }
  5962  
  5963  // 成员列表
  5964  //
  5965  // 示例值:["ou_9204a37300b3700d61effaa439f34295"]
  5966  func (builder *DeleteChatMembersPathReqBodyBuilder) IdList(idList []string) *DeleteChatMembersPathReqBodyBuilder {
  5967  	builder.idList = idList
  5968  	builder.idListFlag = true
  5969  	return builder
  5970  }
  5971  
  5972  func (builder *DeleteChatMembersPathReqBodyBuilder) Build() (*DeleteChatMembersReqBody, error) {
  5973  	req := &DeleteChatMembersReqBody{}
  5974  	if builder.idListFlag {
  5975  		req.IdList = builder.idList
  5976  	}
  5977  	return req, nil
  5978  }
  5979  
  5980  type DeleteChatMembersReqBuilder struct {
  5981  	apiReq *larkcore.ApiReq
  5982  	body   *DeleteChatMembersReqBody
  5983  }
  5984  
  5985  func NewDeleteChatMembersReqBuilder() *DeleteChatMembersReqBuilder {
  5986  	builder := &DeleteChatMembersReqBuilder{}
  5987  	builder.apiReq = &larkcore.ApiReq{
  5988  		PathParams:  larkcore.PathParams{},
  5989  		QueryParams: larkcore.QueryParams{},
  5990  	}
  5991  	return builder
  5992  }
  5993  
  5994  // 群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  5995  //
  5996  // 示例值:oc_a0553eda9014c201e6969b478895c230
  5997  func (builder *DeleteChatMembersReqBuilder) ChatId(chatId string) *DeleteChatMembersReqBuilder {
  5998  	builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId))
  5999  	return builder
  6000  }
  6001  
  6002  // 出群成员 id 类型 open_id/user_id/union_id/app_id
  6003  //
  6004  // 示例值:open_id
  6005  func (builder *DeleteChatMembersReqBuilder) MemberIdType(memberIdType string) *DeleteChatMembersReqBuilder {
  6006  	builder.apiReq.QueryParams.Set("member_id_type", fmt.Sprint(memberIdType))
  6007  	return builder
  6008  }
  6009  
  6010  // 将用户或机器人移出群聊。
  6011  func (builder *DeleteChatMembersReqBuilder) Body(body *DeleteChatMembersReqBody) *DeleteChatMembersReqBuilder {
  6012  	builder.body = body
  6013  	return builder
  6014  }
  6015  
  6016  func (builder *DeleteChatMembersReqBuilder) Build() *DeleteChatMembersReq {
  6017  	req := &DeleteChatMembersReq{}
  6018  	req.apiReq = &larkcore.ApiReq{}
  6019  	req.apiReq.PathParams = builder.apiReq.PathParams
  6020  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  6021  	req.apiReq.Body = builder.body
  6022  	return req
  6023  }
  6024  
  6025  type DeleteChatMembersReqBody struct {
  6026  	IdList []string `json:"id_list,omitempty"` // 成员列表
  6027  }
  6028  
  6029  type DeleteChatMembersReq struct {
  6030  	apiReq *larkcore.ApiReq
  6031  	Body   *DeleteChatMembersReqBody `body:""`
  6032  }
  6033  
  6034  type DeleteChatMembersRespData struct {
  6035  	InvalidIdList []string `json:"invalid_id_list,omitempty"` // 无效成员列表
  6036  }
  6037  
  6038  type DeleteChatMembersResp struct {
  6039  	*larkcore.ApiResp `json:"-"`
  6040  	larkcore.CodeError
  6041  	Data *DeleteChatMembersRespData `json:"data"` // 业务数据
  6042  }
  6043  
  6044  func (resp *DeleteChatMembersResp) Success() bool {
  6045  	return resp.Code == 0
  6046  }
  6047  
  6048  type GetChatMembersReqBuilder struct {
  6049  	apiReq *larkcore.ApiReq
  6050  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  6051  }
  6052  
  6053  func NewGetChatMembersReqBuilder() *GetChatMembersReqBuilder {
  6054  	builder := &GetChatMembersReqBuilder{}
  6055  	builder.apiReq = &larkcore.ApiReq{
  6056  		PathParams:  larkcore.PathParams{},
  6057  		QueryParams: larkcore.QueryParams{},
  6058  	}
  6059  	return builder
  6060  }
  6061  
  6062  // 最大返回多少记录,当使用迭代器访问时才有效
  6063  func (builder *GetChatMembersReqBuilder) Limit(limit int) *GetChatMembersReqBuilder {
  6064  	builder.limit = limit
  6065  	return builder
  6066  }
  6067  
  6068  // 群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  6069  //
  6070  // 示例值:oc_a0553eda9014c201e6969b478895c230
  6071  func (builder *GetChatMembersReqBuilder) ChatId(chatId string) *GetChatMembersReqBuilder {
  6072  	builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId))
  6073  	return builder
  6074  }
  6075  
  6076  // 群成员 用户 ID 类型,详情参见 [用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  6077  //
  6078  // 示例值:open_id
  6079  func (builder *GetChatMembersReqBuilder) MemberIdType(memberIdType string) *GetChatMembersReqBuilder {
  6080  	builder.apiReq.QueryParams.Set("member_id_type", fmt.Sprint(memberIdType))
  6081  	return builder
  6082  }
  6083  
  6084  //
  6085  //
  6086  // 示例值:dmJCRHhpd3JRbGV1VEVNRFFyTitRWDY5ZFkybmYrMEUwMUFYT0VMMWdENEtuYUhsNUxGMDIwemtvdE5ORjBNQQ==
  6087  func (builder *GetChatMembersReqBuilder) PageToken(pageToken string) *GetChatMembersReqBuilder {
  6088  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  6089  	return builder
  6090  }
  6091  
  6092  //
  6093  //
  6094  // 示例值:10
  6095  func (builder *GetChatMembersReqBuilder) PageSize(pageSize int) *GetChatMembersReqBuilder {
  6096  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  6097  	return builder
  6098  }
  6099  
  6100  func (builder *GetChatMembersReqBuilder) Build() *GetChatMembersReq {
  6101  	req := &GetChatMembersReq{}
  6102  	req.apiReq = &larkcore.ApiReq{}
  6103  	req.Limit = builder.limit
  6104  	req.apiReq.PathParams = builder.apiReq.PathParams
  6105  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  6106  	return req
  6107  }
  6108  
  6109  type GetChatMembersReq struct {
  6110  	apiReq *larkcore.ApiReq
  6111  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
  6112  
  6113  }
  6114  
  6115  type GetChatMembersRespData struct {
  6116  	Items       []*ListMember `json:"items,omitempty"`        // 成员列表
  6117  	PageToken   *string       `json:"page_token,omitempty"`   //
  6118  	HasMore     *bool         `json:"has_more,omitempty"`     //
  6119  	MemberTotal *int          `json:"member_total,omitempty"` // 成员总数
  6120  }
  6121  
  6122  type GetChatMembersResp struct {
  6123  	*larkcore.ApiResp `json:"-"`
  6124  	larkcore.CodeError
  6125  	Data *GetChatMembersRespData `json:"data"` // 业务数据
  6126  }
  6127  
  6128  func (resp *GetChatMembersResp) Success() bool {
  6129  	return resp.Code == 0
  6130  }
  6131  
  6132  type IsInChatChatMembersReqBuilder struct {
  6133  	apiReq *larkcore.ApiReq
  6134  }
  6135  
  6136  func NewIsInChatChatMembersReqBuilder() *IsInChatChatMembersReqBuilder {
  6137  	builder := &IsInChatChatMembersReqBuilder{}
  6138  	builder.apiReq = &larkcore.ApiReq{
  6139  		PathParams:  larkcore.PathParams{},
  6140  		QueryParams: larkcore.QueryParams{},
  6141  	}
  6142  	return builder
  6143  }
  6144  
  6145  // 群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  6146  //
  6147  // 示例值:oc_a0553eda9014c201e6969b478895c230
  6148  func (builder *IsInChatChatMembersReqBuilder) ChatId(chatId string) *IsInChatChatMembersReqBuilder {
  6149  	builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId))
  6150  	return builder
  6151  }
  6152  
  6153  func (builder *IsInChatChatMembersReqBuilder) Build() *IsInChatChatMembersReq {
  6154  	req := &IsInChatChatMembersReq{}
  6155  	req.apiReq = &larkcore.ApiReq{}
  6156  	req.apiReq.PathParams = builder.apiReq.PathParams
  6157  	return req
  6158  }
  6159  
  6160  type IsInChatChatMembersReq struct {
  6161  	apiReq *larkcore.ApiReq
  6162  }
  6163  
  6164  type IsInChatChatMembersRespData struct {
  6165  	IsInChat *bool `json:"is_in_chat,omitempty"` // 用户或者机器人是否在群中
  6166  }
  6167  
  6168  type IsInChatChatMembersResp struct {
  6169  	*larkcore.ApiResp `json:"-"`
  6170  	larkcore.CodeError
  6171  	Data *IsInChatChatMembersRespData `json:"data"` // 业务数据
  6172  }
  6173  
  6174  func (resp *IsInChatChatMembersResp) Success() bool {
  6175  	return resp.Code == 0
  6176  }
  6177  
  6178  type MeJoinChatMembersReqBuilder struct {
  6179  	apiReq *larkcore.ApiReq
  6180  }
  6181  
  6182  func NewMeJoinChatMembersReqBuilder() *MeJoinChatMembersReqBuilder {
  6183  	builder := &MeJoinChatMembersReqBuilder{}
  6184  	builder.apiReq = &larkcore.ApiReq{
  6185  		PathParams:  larkcore.PathParams{},
  6186  		QueryParams: larkcore.QueryParams{},
  6187  	}
  6188  	return builder
  6189  }
  6190  
  6191  // 群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  6192  //
  6193  // 示例值:oc_a0553eda9014c201e6969b478895c230
  6194  func (builder *MeJoinChatMembersReqBuilder) ChatId(chatId string) *MeJoinChatMembersReqBuilder {
  6195  	builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId))
  6196  	return builder
  6197  }
  6198  
  6199  func (builder *MeJoinChatMembersReqBuilder) Build() *MeJoinChatMembersReq {
  6200  	req := &MeJoinChatMembersReq{}
  6201  	req.apiReq = &larkcore.ApiReq{}
  6202  	req.apiReq.PathParams = builder.apiReq.PathParams
  6203  	return req
  6204  }
  6205  
  6206  type MeJoinChatMembersReq struct {
  6207  	apiReq *larkcore.ApiReq
  6208  }
  6209  
  6210  type MeJoinChatMembersResp struct {
  6211  	*larkcore.ApiResp `json:"-"`
  6212  	larkcore.CodeError
  6213  }
  6214  
  6215  func (resp *MeJoinChatMembersResp) Success() bool {
  6216  	return resp.Code == 0
  6217  }
  6218  
  6219  type GetChatModerationReqBuilder struct {
  6220  	apiReq *larkcore.ApiReq
  6221  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  6222  }
  6223  
  6224  func NewGetChatModerationReqBuilder() *GetChatModerationReqBuilder {
  6225  	builder := &GetChatModerationReqBuilder{}
  6226  	builder.apiReq = &larkcore.ApiReq{
  6227  		PathParams:  larkcore.PathParams{},
  6228  		QueryParams: larkcore.QueryParams{},
  6229  	}
  6230  	return builder
  6231  }
  6232  
  6233  // 最大返回多少记录,当使用迭代器访问时才有效
  6234  func (builder *GetChatModerationReqBuilder) Limit(limit int) *GetChatModerationReqBuilder {
  6235  	builder.limit = limit
  6236  	return builder
  6237  }
  6238  
  6239  // 群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  6240  //
  6241  // 示例值:oc_a0553eda9014c201e6969b478895c230
  6242  func (builder *GetChatModerationReqBuilder) ChatId(chatId string) *GetChatModerationReqBuilder {
  6243  	builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId))
  6244  	return builder
  6245  }
  6246  
  6247  // 此次调用中使用的用户ID的类型
  6248  //
  6249  // 示例值:
  6250  func (builder *GetChatModerationReqBuilder) UserIdType(userIdType string) *GetChatModerationReqBuilder {
  6251  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  6252  	return builder
  6253  }
  6254  
  6255  //
  6256  //
  6257  // 示例值:dmJCRHhpd3JRbGV1VEVNRFFyTitRWDY5ZFkybmYrMEUwMUFYT0VMMWdENEtuYUhsNUxGMDIwemtvdE5ORjBNQQ==
  6258  func (builder *GetChatModerationReqBuilder) PageToken(pageToken string) *GetChatModerationReqBuilder {
  6259  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  6260  	return builder
  6261  }
  6262  
  6263  //
  6264  //
  6265  // 示例值:10
  6266  func (builder *GetChatModerationReqBuilder) PageSize(pageSize int) *GetChatModerationReqBuilder {
  6267  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  6268  	return builder
  6269  }
  6270  
  6271  func (builder *GetChatModerationReqBuilder) Build() *GetChatModerationReq {
  6272  	req := &GetChatModerationReq{}
  6273  	req.apiReq = &larkcore.ApiReq{}
  6274  	req.Limit = builder.limit
  6275  	req.apiReq.PathParams = builder.apiReq.PathParams
  6276  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  6277  	return req
  6278  }
  6279  
  6280  type GetChatModerationReq struct {
  6281  	apiReq *larkcore.ApiReq
  6282  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
  6283  
  6284  }
  6285  
  6286  type GetChatModerationRespData struct {
  6287  	ModerationSetting *string          `json:"moderation_setting,omitempty"` // 群发言模式(all_members/only_owner/moderator_list,其中 moderator_list 表示部分用户可发言的模式)
  6288  	PageToken         *string          `json:"page_token,omitempty"`         //
  6289  	HasMore           *bool            `json:"has_more,omitempty"`           //
  6290  	Items             []*ListModerator `json:"items,omitempty"`              // 可发言用户列表
  6291  }
  6292  
  6293  type GetChatModerationResp struct {
  6294  	*larkcore.ApiResp `json:"-"`
  6295  	larkcore.CodeError
  6296  	Data *GetChatModerationRespData `json:"data"` // 业务数据
  6297  }
  6298  
  6299  func (resp *GetChatModerationResp) Success() bool {
  6300  	return resp.Code == 0
  6301  }
  6302  
  6303  type UpdateChatModerationReqBodyBuilder struct {
  6304  	moderationSetting        string // 群发言模式(all_members/only_owner/moderator_list,其中 moderator_list 表示部分用户可发言的模式)
  6305  	moderationSettingFlag    bool
  6306  	moderatorAddedList       []string // 选择部分用户可发言模式时,添加的可发言用户列表(自动过滤不在群内的用户)
  6307  	moderatorAddedListFlag   bool
  6308  	moderatorRemovedList     []string // 选择部分用户可发言模式时,移除的可发言用户列表(自动过滤不在群内的用户)
  6309  	moderatorRemovedListFlag bool
  6310  }
  6311  
  6312  func NewUpdateChatModerationReqBodyBuilder() *UpdateChatModerationReqBodyBuilder {
  6313  	builder := &UpdateChatModerationReqBodyBuilder{}
  6314  	return builder
  6315  }
  6316  
  6317  // 群发言模式(all_members/only_owner/moderator_list,其中 moderator_list 表示部分用户可发言的模式)
  6318  //
  6319  //示例值:moderator_list
  6320  func (builder *UpdateChatModerationReqBodyBuilder) ModerationSetting(moderationSetting string) *UpdateChatModerationReqBodyBuilder {
  6321  	builder.moderationSetting = moderationSetting
  6322  	builder.moderationSettingFlag = true
  6323  	return builder
  6324  }
  6325  
  6326  // 选择部分用户可发言模式时,添加的可发言用户列表(自动过滤不在群内的用户)
  6327  //
  6328  //示例值:["4d7a3c6g"]
  6329  func (builder *UpdateChatModerationReqBodyBuilder) ModeratorAddedList(moderatorAddedList []string) *UpdateChatModerationReqBodyBuilder {
  6330  	builder.moderatorAddedList = moderatorAddedList
  6331  	builder.moderatorAddedListFlag = true
  6332  	return builder
  6333  }
  6334  
  6335  // 选择部分用户可发言模式时,移除的可发言用户列表(自动过滤不在群内的用户)
  6336  //
  6337  //示例值:["4d7a3ih6"]
  6338  func (builder *UpdateChatModerationReqBodyBuilder) ModeratorRemovedList(moderatorRemovedList []string) *UpdateChatModerationReqBodyBuilder {
  6339  	builder.moderatorRemovedList = moderatorRemovedList
  6340  	builder.moderatorRemovedListFlag = true
  6341  	return builder
  6342  }
  6343  
  6344  func (builder *UpdateChatModerationReqBodyBuilder) Build() *UpdateChatModerationReqBody {
  6345  	req := &UpdateChatModerationReqBody{}
  6346  	if builder.moderationSettingFlag {
  6347  		req.ModerationSetting = &builder.moderationSetting
  6348  	}
  6349  	if builder.moderatorAddedListFlag {
  6350  		req.ModeratorAddedList = builder.moderatorAddedList
  6351  	}
  6352  	if builder.moderatorRemovedListFlag {
  6353  		req.ModeratorRemovedList = builder.moderatorRemovedList
  6354  	}
  6355  	return req
  6356  }
  6357  
  6358  type UpdateChatModerationPathReqBodyBuilder struct {
  6359  	moderationSetting        string // 群发言模式(all_members/only_owner/moderator_list,其中 moderator_list 表示部分用户可发言的模式)
  6360  	moderationSettingFlag    bool
  6361  	moderatorAddedList       []string // 选择部分用户可发言模式时,添加的可发言用户列表(自动过滤不在群内的用户)
  6362  	moderatorAddedListFlag   bool
  6363  	moderatorRemovedList     []string // 选择部分用户可发言模式时,移除的可发言用户列表(自动过滤不在群内的用户)
  6364  	moderatorRemovedListFlag bool
  6365  }
  6366  
  6367  func NewUpdateChatModerationPathReqBodyBuilder() *UpdateChatModerationPathReqBodyBuilder {
  6368  	builder := &UpdateChatModerationPathReqBodyBuilder{}
  6369  	return builder
  6370  }
  6371  
  6372  // 群发言模式(all_members/only_owner/moderator_list,其中 moderator_list 表示部分用户可发言的模式)
  6373  //
  6374  // 示例值:moderator_list
  6375  func (builder *UpdateChatModerationPathReqBodyBuilder) ModerationSetting(moderationSetting string) *UpdateChatModerationPathReqBodyBuilder {
  6376  	builder.moderationSetting = moderationSetting
  6377  	builder.moderationSettingFlag = true
  6378  	return builder
  6379  }
  6380  
  6381  // 选择部分用户可发言模式时,添加的可发言用户列表(自动过滤不在群内的用户)
  6382  //
  6383  // 示例值:["4d7a3c6g"]
  6384  func (builder *UpdateChatModerationPathReqBodyBuilder) ModeratorAddedList(moderatorAddedList []string) *UpdateChatModerationPathReqBodyBuilder {
  6385  	builder.moderatorAddedList = moderatorAddedList
  6386  	builder.moderatorAddedListFlag = true
  6387  	return builder
  6388  }
  6389  
  6390  // 选择部分用户可发言模式时,移除的可发言用户列表(自动过滤不在群内的用户)
  6391  //
  6392  // 示例值:["4d7a3ih6"]
  6393  func (builder *UpdateChatModerationPathReqBodyBuilder) ModeratorRemovedList(moderatorRemovedList []string) *UpdateChatModerationPathReqBodyBuilder {
  6394  	builder.moderatorRemovedList = moderatorRemovedList
  6395  	builder.moderatorRemovedListFlag = true
  6396  	return builder
  6397  }
  6398  
  6399  func (builder *UpdateChatModerationPathReqBodyBuilder) Build() (*UpdateChatModerationReqBody, error) {
  6400  	req := &UpdateChatModerationReqBody{}
  6401  	if builder.moderationSettingFlag {
  6402  		req.ModerationSetting = &builder.moderationSetting
  6403  	}
  6404  	if builder.moderatorAddedListFlag {
  6405  		req.ModeratorAddedList = builder.moderatorAddedList
  6406  	}
  6407  	if builder.moderatorRemovedListFlag {
  6408  		req.ModeratorRemovedList = builder.moderatorRemovedList
  6409  	}
  6410  	return req, nil
  6411  }
  6412  
  6413  type UpdateChatModerationReqBuilder struct {
  6414  	apiReq *larkcore.ApiReq
  6415  	body   *UpdateChatModerationReqBody
  6416  }
  6417  
  6418  func NewUpdateChatModerationReqBuilder() *UpdateChatModerationReqBuilder {
  6419  	builder := &UpdateChatModerationReqBuilder{}
  6420  	builder.apiReq = &larkcore.ApiReq{
  6421  		PathParams:  larkcore.PathParams{},
  6422  		QueryParams: larkcore.QueryParams{},
  6423  	}
  6424  	return builder
  6425  }
  6426  
  6427  // 群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  6428  //
  6429  // 示例值:oc_a0553eda9014c201e6969b478895c230
  6430  func (builder *UpdateChatModerationReqBuilder) ChatId(chatId string) *UpdateChatModerationReqBuilder {
  6431  	builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId))
  6432  	return builder
  6433  }
  6434  
  6435  // 此次调用中使用的用户ID的类型
  6436  //
  6437  // 示例值:
  6438  func (builder *UpdateChatModerationReqBuilder) UserIdType(userIdType string) *UpdateChatModerationReqBuilder {
  6439  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  6440  	return builder
  6441  }
  6442  
  6443  // 更新群组的发言权限设置,可设置为全员可发言、仅管理员可发言  或 指定用户可发言。
  6444  func (builder *UpdateChatModerationReqBuilder) Body(body *UpdateChatModerationReqBody) *UpdateChatModerationReqBuilder {
  6445  	builder.body = body
  6446  	return builder
  6447  }
  6448  
  6449  func (builder *UpdateChatModerationReqBuilder) Build() *UpdateChatModerationReq {
  6450  	req := &UpdateChatModerationReq{}
  6451  	req.apiReq = &larkcore.ApiReq{}
  6452  	req.apiReq.PathParams = builder.apiReq.PathParams
  6453  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  6454  	req.apiReq.Body = builder.body
  6455  	return req
  6456  }
  6457  
  6458  type UpdateChatModerationReqBody struct {
  6459  	ModerationSetting    *string  `json:"moderation_setting,omitempty"`     // 群发言模式(all_members/only_owner/moderator_list,其中 moderator_list 表示部分用户可发言的模式)
  6460  	ModeratorAddedList   []string `json:"moderator_added_list,omitempty"`   // 选择部分用户可发言模式时,添加的可发言用户列表(自动过滤不在群内的用户)
  6461  	ModeratorRemovedList []string `json:"moderator_removed_list,omitempty"` // 选择部分用户可发言模式时,移除的可发言用户列表(自动过滤不在群内的用户)
  6462  }
  6463  
  6464  type UpdateChatModerationReq struct {
  6465  	apiReq *larkcore.ApiReq
  6466  	Body   *UpdateChatModerationReqBody `body:""`
  6467  }
  6468  
  6469  type UpdateChatModerationResp struct {
  6470  	*larkcore.ApiResp `json:"-"`
  6471  	larkcore.CodeError
  6472  }
  6473  
  6474  func (resp *UpdateChatModerationResp) Success() bool {
  6475  	return resp.Code == 0
  6476  }
  6477  
  6478  type CreateChatTabReqBodyBuilder struct {
  6479  	chatTabs     []*ChatTab // 会话标签页
  6480  	chatTabsFlag bool
  6481  }
  6482  
  6483  func NewCreateChatTabReqBodyBuilder() *CreateChatTabReqBodyBuilder {
  6484  	builder := &CreateChatTabReqBodyBuilder{}
  6485  	return builder
  6486  }
  6487  
  6488  // 会话标签页
  6489  //
  6490  //示例值:
  6491  func (builder *CreateChatTabReqBodyBuilder) ChatTabs(chatTabs []*ChatTab) *CreateChatTabReqBodyBuilder {
  6492  	builder.chatTabs = chatTabs
  6493  	builder.chatTabsFlag = true
  6494  	return builder
  6495  }
  6496  
  6497  func (builder *CreateChatTabReqBodyBuilder) Build() *CreateChatTabReqBody {
  6498  	req := &CreateChatTabReqBody{}
  6499  	if builder.chatTabsFlag {
  6500  		req.ChatTabs = builder.chatTabs
  6501  	}
  6502  	return req
  6503  }
  6504  
  6505  type CreateChatTabPathReqBodyBuilder struct {
  6506  	chatTabs     []*ChatTab // 会话标签页
  6507  	chatTabsFlag bool
  6508  }
  6509  
  6510  func NewCreateChatTabPathReqBodyBuilder() *CreateChatTabPathReqBodyBuilder {
  6511  	builder := &CreateChatTabPathReqBodyBuilder{}
  6512  	return builder
  6513  }
  6514  
  6515  // 会话标签页
  6516  //
  6517  // 示例值:
  6518  func (builder *CreateChatTabPathReqBodyBuilder) ChatTabs(chatTabs []*ChatTab) *CreateChatTabPathReqBodyBuilder {
  6519  	builder.chatTabs = chatTabs
  6520  	builder.chatTabsFlag = true
  6521  	return builder
  6522  }
  6523  
  6524  func (builder *CreateChatTabPathReqBodyBuilder) Build() (*CreateChatTabReqBody, error) {
  6525  	req := &CreateChatTabReqBody{}
  6526  	if builder.chatTabsFlag {
  6527  		req.ChatTabs = builder.chatTabs
  6528  	}
  6529  	return req, nil
  6530  }
  6531  
  6532  type CreateChatTabReqBuilder struct {
  6533  	apiReq *larkcore.ApiReq
  6534  	body   *CreateChatTabReqBody
  6535  }
  6536  
  6537  func NewCreateChatTabReqBuilder() *CreateChatTabReqBuilder {
  6538  	builder := &CreateChatTabReqBuilder{}
  6539  	builder.apiReq = &larkcore.ApiReq{
  6540  		PathParams:  larkcore.PathParams{},
  6541  		QueryParams: larkcore.QueryParams{},
  6542  	}
  6543  	return builder
  6544  }
  6545  
  6546  // 群ID
  6547  //
  6548  // 示例值:oc_a0553eda9014c201e6969b478895c230
  6549  func (builder *CreateChatTabReqBuilder) ChatId(chatId string) *CreateChatTabReqBuilder {
  6550  	builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId))
  6551  	return builder
  6552  }
  6553  
  6554  // 添加自定义会话标签页
  6555  func (builder *CreateChatTabReqBuilder) Body(body *CreateChatTabReqBody) *CreateChatTabReqBuilder {
  6556  	builder.body = body
  6557  	return builder
  6558  }
  6559  
  6560  func (builder *CreateChatTabReqBuilder) Build() *CreateChatTabReq {
  6561  	req := &CreateChatTabReq{}
  6562  	req.apiReq = &larkcore.ApiReq{}
  6563  	req.apiReq.PathParams = builder.apiReq.PathParams
  6564  	req.apiReq.Body = builder.body
  6565  	return req
  6566  }
  6567  
  6568  type CreateChatTabReqBody struct {
  6569  	ChatTabs []*ChatTab `json:"chat_tabs,omitempty"` // 会话标签页
  6570  }
  6571  
  6572  type CreateChatTabReq struct {
  6573  	apiReq *larkcore.ApiReq
  6574  	Body   *CreateChatTabReqBody `body:""`
  6575  }
  6576  
  6577  type CreateChatTabRespData struct {
  6578  	ChatTabs []*ChatTab `json:"chat_tabs,omitempty"` // 会话标签页
  6579  }
  6580  
  6581  type CreateChatTabResp struct {
  6582  	*larkcore.ApiResp `json:"-"`
  6583  	larkcore.CodeError
  6584  	Data *CreateChatTabRespData `json:"data"` // 业务数据
  6585  }
  6586  
  6587  func (resp *CreateChatTabResp) Success() bool {
  6588  	return resp.Code == 0
  6589  }
  6590  
  6591  type DeleteTabsChatTabReqBodyBuilder struct {
  6592  	tabIds     []string // 会话标签页id列表
  6593  	tabIdsFlag bool
  6594  }
  6595  
  6596  func NewDeleteTabsChatTabReqBodyBuilder() *DeleteTabsChatTabReqBodyBuilder {
  6597  	builder := &DeleteTabsChatTabReqBodyBuilder{}
  6598  	return builder
  6599  }
  6600  
  6601  // 会话标签页id列表
  6602  //
  6603  //示例值:["7101214603622940671", "7101214603622940672"]
  6604  func (builder *DeleteTabsChatTabReqBodyBuilder) TabIds(tabIds []string) *DeleteTabsChatTabReqBodyBuilder {
  6605  	builder.tabIds = tabIds
  6606  	builder.tabIdsFlag = true
  6607  	return builder
  6608  }
  6609  
  6610  func (builder *DeleteTabsChatTabReqBodyBuilder) Build() *DeleteTabsChatTabReqBody {
  6611  	req := &DeleteTabsChatTabReqBody{}
  6612  	if builder.tabIdsFlag {
  6613  		req.TabIds = builder.tabIds
  6614  	}
  6615  	return req
  6616  }
  6617  
  6618  type DeleteTabsChatTabPathReqBodyBuilder struct {
  6619  	tabIds     []string // 会话标签页id列表
  6620  	tabIdsFlag bool
  6621  }
  6622  
  6623  func NewDeleteTabsChatTabPathReqBodyBuilder() *DeleteTabsChatTabPathReqBodyBuilder {
  6624  	builder := &DeleteTabsChatTabPathReqBodyBuilder{}
  6625  	return builder
  6626  }
  6627  
  6628  // 会话标签页id列表
  6629  //
  6630  // 示例值:["7101214603622940671", "7101214603622940672"]
  6631  func (builder *DeleteTabsChatTabPathReqBodyBuilder) TabIds(tabIds []string) *DeleteTabsChatTabPathReqBodyBuilder {
  6632  	builder.tabIds = tabIds
  6633  	builder.tabIdsFlag = true
  6634  	return builder
  6635  }
  6636  
  6637  func (builder *DeleteTabsChatTabPathReqBodyBuilder) Build() (*DeleteTabsChatTabReqBody, error) {
  6638  	req := &DeleteTabsChatTabReqBody{}
  6639  	if builder.tabIdsFlag {
  6640  		req.TabIds = builder.tabIds
  6641  	}
  6642  	return req, nil
  6643  }
  6644  
  6645  type DeleteTabsChatTabReqBuilder struct {
  6646  	apiReq *larkcore.ApiReq
  6647  	body   *DeleteTabsChatTabReqBody
  6648  }
  6649  
  6650  func NewDeleteTabsChatTabReqBuilder() *DeleteTabsChatTabReqBuilder {
  6651  	builder := &DeleteTabsChatTabReqBuilder{}
  6652  	builder.apiReq = &larkcore.ApiReq{
  6653  		PathParams:  larkcore.PathParams{},
  6654  		QueryParams: larkcore.QueryParams{},
  6655  	}
  6656  	return builder
  6657  }
  6658  
  6659  // 群ID
  6660  //
  6661  // 示例值:oc_a0553eda9014c201e6969b478895c230
  6662  func (builder *DeleteTabsChatTabReqBuilder) ChatId(chatId string) *DeleteTabsChatTabReqBuilder {
  6663  	builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId))
  6664  	return builder
  6665  }
  6666  
  6667  // 删除会话标签页
  6668  func (builder *DeleteTabsChatTabReqBuilder) Body(body *DeleteTabsChatTabReqBody) *DeleteTabsChatTabReqBuilder {
  6669  	builder.body = body
  6670  	return builder
  6671  }
  6672  
  6673  func (builder *DeleteTabsChatTabReqBuilder) Build() *DeleteTabsChatTabReq {
  6674  	req := &DeleteTabsChatTabReq{}
  6675  	req.apiReq = &larkcore.ApiReq{}
  6676  	req.apiReq.PathParams = builder.apiReq.PathParams
  6677  	req.apiReq.Body = builder.body
  6678  	return req
  6679  }
  6680  
  6681  type DeleteTabsChatTabReqBody struct {
  6682  	TabIds []string `json:"tab_ids,omitempty"` // 会话标签页id列表
  6683  }
  6684  
  6685  type DeleteTabsChatTabReq struct {
  6686  	apiReq *larkcore.ApiReq
  6687  	Body   *DeleteTabsChatTabReqBody `body:""`
  6688  }
  6689  
  6690  type DeleteTabsChatTabRespData struct {
  6691  	ChatTabs []*ChatTab `json:"chat_tabs,omitempty"` // 会话标签页
  6692  }
  6693  
  6694  type DeleteTabsChatTabResp struct {
  6695  	*larkcore.ApiResp `json:"-"`
  6696  	larkcore.CodeError
  6697  	Data *DeleteTabsChatTabRespData `json:"data"` // 业务数据
  6698  }
  6699  
  6700  func (resp *DeleteTabsChatTabResp) Success() bool {
  6701  	return resp.Code == 0
  6702  }
  6703  
  6704  type ListTabsChatTabReqBuilder struct {
  6705  	apiReq *larkcore.ApiReq
  6706  }
  6707  
  6708  func NewListTabsChatTabReqBuilder() *ListTabsChatTabReqBuilder {
  6709  	builder := &ListTabsChatTabReqBuilder{}
  6710  	builder.apiReq = &larkcore.ApiReq{
  6711  		PathParams:  larkcore.PathParams{},
  6712  		QueryParams: larkcore.QueryParams{},
  6713  	}
  6714  	return builder
  6715  }
  6716  
  6717  // 群ID
  6718  //
  6719  // 示例值:oc_a0553eda9014c201e6969b478895c230
  6720  func (builder *ListTabsChatTabReqBuilder) ChatId(chatId string) *ListTabsChatTabReqBuilder {
  6721  	builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId))
  6722  	return builder
  6723  }
  6724  
  6725  func (builder *ListTabsChatTabReqBuilder) Build() *ListTabsChatTabReq {
  6726  	req := &ListTabsChatTabReq{}
  6727  	req.apiReq = &larkcore.ApiReq{}
  6728  	req.apiReq.PathParams = builder.apiReq.PathParams
  6729  	return req
  6730  }
  6731  
  6732  type ListTabsChatTabReq struct {
  6733  	apiReq *larkcore.ApiReq
  6734  }
  6735  
  6736  type ListTabsChatTabRespData struct {
  6737  	ChatTabs []*ChatTab `json:"chat_tabs,omitempty"` // 会话标签页
  6738  }
  6739  
  6740  type ListTabsChatTabResp struct {
  6741  	*larkcore.ApiResp `json:"-"`
  6742  	larkcore.CodeError
  6743  	Data *ListTabsChatTabRespData `json:"data"` // 业务数据
  6744  }
  6745  
  6746  func (resp *ListTabsChatTabResp) Success() bool {
  6747  	return resp.Code == 0
  6748  }
  6749  
  6750  type SortTabsChatTabReqBodyBuilder struct {
  6751  	tabIds     []string // 会话标签页ID列表
  6752  	tabIdsFlag bool
  6753  }
  6754  
  6755  func NewSortTabsChatTabReqBodyBuilder() *SortTabsChatTabReqBodyBuilder {
  6756  	builder := &SortTabsChatTabReqBodyBuilder{}
  6757  	return builder
  6758  }
  6759  
  6760  // 会话标签页ID列表
  6761  //
  6762  //示例值:["7101214603622940671", "7101214603622940672"]
  6763  func (builder *SortTabsChatTabReqBodyBuilder) TabIds(tabIds []string) *SortTabsChatTabReqBodyBuilder {
  6764  	builder.tabIds = tabIds
  6765  	builder.tabIdsFlag = true
  6766  	return builder
  6767  }
  6768  
  6769  func (builder *SortTabsChatTabReqBodyBuilder) Build() *SortTabsChatTabReqBody {
  6770  	req := &SortTabsChatTabReqBody{}
  6771  	if builder.tabIdsFlag {
  6772  		req.TabIds = builder.tabIds
  6773  	}
  6774  	return req
  6775  }
  6776  
  6777  type SortTabsChatTabPathReqBodyBuilder struct {
  6778  	tabIds     []string // 会话标签页ID列表
  6779  	tabIdsFlag bool
  6780  }
  6781  
  6782  func NewSortTabsChatTabPathReqBodyBuilder() *SortTabsChatTabPathReqBodyBuilder {
  6783  	builder := &SortTabsChatTabPathReqBodyBuilder{}
  6784  	return builder
  6785  }
  6786  
  6787  // 会话标签页ID列表
  6788  //
  6789  // 示例值:["7101214603622940671", "7101214603622940672"]
  6790  func (builder *SortTabsChatTabPathReqBodyBuilder) TabIds(tabIds []string) *SortTabsChatTabPathReqBodyBuilder {
  6791  	builder.tabIds = tabIds
  6792  	builder.tabIdsFlag = true
  6793  	return builder
  6794  }
  6795  
  6796  func (builder *SortTabsChatTabPathReqBodyBuilder) Build() (*SortTabsChatTabReqBody, error) {
  6797  	req := &SortTabsChatTabReqBody{}
  6798  	if builder.tabIdsFlag {
  6799  		req.TabIds = builder.tabIds
  6800  	}
  6801  	return req, nil
  6802  }
  6803  
  6804  type SortTabsChatTabReqBuilder struct {
  6805  	apiReq *larkcore.ApiReq
  6806  	body   *SortTabsChatTabReqBody
  6807  }
  6808  
  6809  func NewSortTabsChatTabReqBuilder() *SortTabsChatTabReqBuilder {
  6810  	builder := &SortTabsChatTabReqBuilder{}
  6811  	builder.apiReq = &larkcore.ApiReq{
  6812  		PathParams:  larkcore.PathParams{},
  6813  		QueryParams: larkcore.QueryParams{},
  6814  	}
  6815  	return builder
  6816  }
  6817  
  6818  // 群ID
  6819  //
  6820  // 示例值:oc_a0553eda9014c201e6969b478895c230
  6821  func (builder *SortTabsChatTabReqBuilder) ChatId(chatId string) *SortTabsChatTabReqBuilder {
  6822  	builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId))
  6823  	return builder
  6824  }
  6825  
  6826  // 会话标签页排序
  6827  func (builder *SortTabsChatTabReqBuilder) Body(body *SortTabsChatTabReqBody) *SortTabsChatTabReqBuilder {
  6828  	builder.body = body
  6829  	return builder
  6830  }
  6831  
  6832  func (builder *SortTabsChatTabReqBuilder) Build() *SortTabsChatTabReq {
  6833  	req := &SortTabsChatTabReq{}
  6834  	req.apiReq = &larkcore.ApiReq{}
  6835  	req.apiReq.PathParams = builder.apiReq.PathParams
  6836  	req.apiReq.Body = builder.body
  6837  	return req
  6838  }
  6839  
  6840  type SortTabsChatTabReqBody struct {
  6841  	TabIds []string `json:"tab_ids,omitempty"` // 会话标签页ID列表
  6842  }
  6843  
  6844  type SortTabsChatTabReq struct {
  6845  	apiReq *larkcore.ApiReq
  6846  	Body   *SortTabsChatTabReqBody `body:""`
  6847  }
  6848  
  6849  type SortTabsChatTabRespData struct {
  6850  	ChatTabs []*ChatTab `json:"chat_tabs,omitempty"` // 会话标签页
  6851  }
  6852  
  6853  type SortTabsChatTabResp struct {
  6854  	*larkcore.ApiResp `json:"-"`
  6855  	larkcore.CodeError
  6856  	Data *SortTabsChatTabRespData `json:"data"` // 业务数据
  6857  }
  6858  
  6859  func (resp *SortTabsChatTabResp) Success() bool {
  6860  	return resp.Code == 0
  6861  }
  6862  
  6863  type UpdateTabsChatTabReqBodyBuilder struct {
  6864  	chatTabs     []*ChatTab // 会话标签页
  6865  	chatTabsFlag bool
  6866  }
  6867  
  6868  func NewUpdateTabsChatTabReqBodyBuilder() *UpdateTabsChatTabReqBodyBuilder {
  6869  	builder := &UpdateTabsChatTabReqBodyBuilder{}
  6870  	return builder
  6871  }
  6872  
  6873  // 会话标签页
  6874  //
  6875  //示例值:
  6876  func (builder *UpdateTabsChatTabReqBodyBuilder) ChatTabs(chatTabs []*ChatTab) *UpdateTabsChatTabReqBodyBuilder {
  6877  	builder.chatTabs = chatTabs
  6878  	builder.chatTabsFlag = true
  6879  	return builder
  6880  }
  6881  
  6882  func (builder *UpdateTabsChatTabReqBodyBuilder) Build() *UpdateTabsChatTabReqBody {
  6883  	req := &UpdateTabsChatTabReqBody{}
  6884  	if builder.chatTabsFlag {
  6885  		req.ChatTabs = builder.chatTabs
  6886  	}
  6887  	return req
  6888  }
  6889  
  6890  type UpdateTabsChatTabPathReqBodyBuilder struct {
  6891  	chatTabs     []*ChatTab // 会话标签页
  6892  	chatTabsFlag bool
  6893  }
  6894  
  6895  func NewUpdateTabsChatTabPathReqBodyBuilder() *UpdateTabsChatTabPathReqBodyBuilder {
  6896  	builder := &UpdateTabsChatTabPathReqBodyBuilder{}
  6897  	return builder
  6898  }
  6899  
  6900  // 会话标签页
  6901  //
  6902  // 示例值:
  6903  func (builder *UpdateTabsChatTabPathReqBodyBuilder) ChatTabs(chatTabs []*ChatTab) *UpdateTabsChatTabPathReqBodyBuilder {
  6904  	builder.chatTabs = chatTabs
  6905  	builder.chatTabsFlag = true
  6906  	return builder
  6907  }
  6908  
  6909  func (builder *UpdateTabsChatTabPathReqBodyBuilder) Build() (*UpdateTabsChatTabReqBody, error) {
  6910  	req := &UpdateTabsChatTabReqBody{}
  6911  	if builder.chatTabsFlag {
  6912  		req.ChatTabs = builder.chatTabs
  6913  	}
  6914  	return req, nil
  6915  }
  6916  
  6917  type UpdateTabsChatTabReqBuilder struct {
  6918  	apiReq *larkcore.ApiReq
  6919  	body   *UpdateTabsChatTabReqBody
  6920  }
  6921  
  6922  func NewUpdateTabsChatTabReqBuilder() *UpdateTabsChatTabReqBuilder {
  6923  	builder := &UpdateTabsChatTabReqBuilder{}
  6924  	builder.apiReq = &larkcore.ApiReq{
  6925  		PathParams:  larkcore.PathParams{},
  6926  		QueryParams: larkcore.QueryParams{},
  6927  	}
  6928  	return builder
  6929  }
  6930  
  6931  // 群ID
  6932  //
  6933  // 示例值:oc_a0553eda9014c201e6969b478895c230
  6934  func (builder *UpdateTabsChatTabReqBuilder) ChatId(chatId string) *UpdateTabsChatTabReqBuilder {
  6935  	builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId))
  6936  	return builder
  6937  }
  6938  
  6939  // 更新会话标签页
  6940  func (builder *UpdateTabsChatTabReqBuilder) Body(body *UpdateTabsChatTabReqBody) *UpdateTabsChatTabReqBuilder {
  6941  	builder.body = body
  6942  	return builder
  6943  }
  6944  
  6945  func (builder *UpdateTabsChatTabReqBuilder) Build() *UpdateTabsChatTabReq {
  6946  	req := &UpdateTabsChatTabReq{}
  6947  	req.apiReq = &larkcore.ApiReq{}
  6948  	req.apiReq.PathParams = builder.apiReq.PathParams
  6949  	req.apiReq.Body = builder.body
  6950  	return req
  6951  }
  6952  
  6953  type UpdateTabsChatTabReqBody struct {
  6954  	ChatTabs []*ChatTab `json:"chat_tabs,omitempty"` // 会话标签页
  6955  }
  6956  
  6957  type UpdateTabsChatTabReq struct {
  6958  	apiReq *larkcore.ApiReq
  6959  	Body   *UpdateTabsChatTabReqBody `body:""`
  6960  }
  6961  
  6962  type UpdateTabsChatTabRespData struct {
  6963  	ChatTabs []*ChatTab `json:"chat_tabs,omitempty"` // 群标签
  6964  }
  6965  
  6966  type UpdateTabsChatTabResp struct {
  6967  	*larkcore.ApiResp `json:"-"`
  6968  	larkcore.CodeError
  6969  	Data *UpdateTabsChatTabRespData `json:"data"` // 业务数据
  6970  }
  6971  
  6972  func (resp *UpdateTabsChatTabResp) Success() bool {
  6973  	return resp.Code == 0
  6974  }
  6975  
  6976  type DeleteTopNoticeChatTopNoticeReqBuilder struct {
  6977  	apiReq *larkcore.ApiReq
  6978  }
  6979  
  6980  func NewDeleteTopNoticeChatTopNoticeReqBuilder() *DeleteTopNoticeChatTopNoticeReqBuilder {
  6981  	builder := &DeleteTopNoticeChatTopNoticeReqBuilder{}
  6982  	builder.apiReq = &larkcore.ApiReq{
  6983  		PathParams:  larkcore.PathParams{},
  6984  		QueryParams: larkcore.QueryParams{},
  6985  	}
  6986  	return builder
  6987  }
  6988  
  6989  // 待撤销置顶的群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  6990  //
  6991  // 示例值:oc_5ad11d72b830411d72b836c20
  6992  func (builder *DeleteTopNoticeChatTopNoticeReqBuilder) ChatId(chatId string) *DeleteTopNoticeChatTopNoticeReqBuilder {
  6993  	builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId))
  6994  	return builder
  6995  }
  6996  
  6997  func (builder *DeleteTopNoticeChatTopNoticeReqBuilder) Build() *DeleteTopNoticeChatTopNoticeReq {
  6998  	req := &DeleteTopNoticeChatTopNoticeReq{}
  6999  	req.apiReq = &larkcore.ApiReq{}
  7000  	req.apiReq.PathParams = builder.apiReq.PathParams
  7001  	return req
  7002  }
  7003  
  7004  type DeleteTopNoticeChatTopNoticeReq struct {
  7005  	apiReq *larkcore.ApiReq
  7006  }
  7007  
  7008  type DeleteTopNoticeChatTopNoticeResp struct {
  7009  	*larkcore.ApiResp `json:"-"`
  7010  	larkcore.CodeError
  7011  }
  7012  
  7013  func (resp *DeleteTopNoticeChatTopNoticeResp) Success() bool {
  7014  	return resp.Code == 0
  7015  }
  7016  
  7017  type PutTopNoticeChatTopNoticeReqBodyBuilder struct {
  7018  	chatTopNotice     []*ChatTopNotice // 要进行发布的群置顶
  7019  	chatTopNoticeFlag bool
  7020  }
  7021  
  7022  func NewPutTopNoticeChatTopNoticeReqBodyBuilder() *PutTopNoticeChatTopNoticeReqBodyBuilder {
  7023  	builder := &PutTopNoticeChatTopNoticeReqBodyBuilder{}
  7024  	return builder
  7025  }
  7026  
  7027  // 要进行发布的群置顶
  7028  //
  7029  //示例值:
  7030  func (builder *PutTopNoticeChatTopNoticeReqBodyBuilder) ChatTopNotice(chatTopNotice []*ChatTopNotice) *PutTopNoticeChatTopNoticeReqBodyBuilder {
  7031  	builder.chatTopNotice = chatTopNotice
  7032  	builder.chatTopNoticeFlag = true
  7033  	return builder
  7034  }
  7035  
  7036  func (builder *PutTopNoticeChatTopNoticeReqBodyBuilder) Build() *PutTopNoticeChatTopNoticeReqBody {
  7037  	req := &PutTopNoticeChatTopNoticeReqBody{}
  7038  	if builder.chatTopNoticeFlag {
  7039  		req.ChatTopNotice = builder.chatTopNotice
  7040  	}
  7041  	return req
  7042  }
  7043  
  7044  type PutTopNoticeChatTopNoticePathReqBodyBuilder struct {
  7045  	chatTopNotice     []*ChatTopNotice // 要进行发布的群置顶
  7046  	chatTopNoticeFlag bool
  7047  }
  7048  
  7049  func NewPutTopNoticeChatTopNoticePathReqBodyBuilder() *PutTopNoticeChatTopNoticePathReqBodyBuilder {
  7050  	builder := &PutTopNoticeChatTopNoticePathReqBodyBuilder{}
  7051  	return builder
  7052  }
  7053  
  7054  // 要进行发布的群置顶
  7055  //
  7056  // 示例值:
  7057  func (builder *PutTopNoticeChatTopNoticePathReqBodyBuilder) ChatTopNotice(chatTopNotice []*ChatTopNotice) *PutTopNoticeChatTopNoticePathReqBodyBuilder {
  7058  	builder.chatTopNotice = chatTopNotice
  7059  	builder.chatTopNoticeFlag = true
  7060  	return builder
  7061  }
  7062  
  7063  func (builder *PutTopNoticeChatTopNoticePathReqBodyBuilder) Build() (*PutTopNoticeChatTopNoticeReqBody, error) {
  7064  	req := &PutTopNoticeChatTopNoticeReqBody{}
  7065  	if builder.chatTopNoticeFlag {
  7066  		req.ChatTopNotice = builder.chatTopNotice
  7067  	}
  7068  	return req, nil
  7069  }
  7070  
  7071  type PutTopNoticeChatTopNoticeReqBuilder struct {
  7072  	apiReq *larkcore.ApiReq
  7073  	body   *PutTopNoticeChatTopNoticeReqBody
  7074  }
  7075  
  7076  func NewPutTopNoticeChatTopNoticeReqBuilder() *PutTopNoticeChatTopNoticeReqBuilder {
  7077  	builder := &PutTopNoticeChatTopNoticeReqBuilder{}
  7078  	builder.apiReq = &larkcore.ApiReq{
  7079  		PathParams:  larkcore.PathParams{},
  7080  		QueryParams: larkcore.QueryParams{},
  7081  	}
  7082  	return builder
  7083  }
  7084  
  7085  // 待修改置顶的群 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  7086  //
  7087  // 示例值:oc_5ad11d72b830411d72b836c20
  7088  func (builder *PutTopNoticeChatTopNoticeReqBuilder) ChatId(chatId string) *PutTopNoticeChatTopNoticeReqBuilder {
  7089  	builder.apiReq.PathParams.Set("chat_id", fmt.Sprint(chatId))
  7090  	return builder
  7091  }
  7092  
  7093  // 更新会话中的群置顶信息,可以将群中的某一条消息,或者群公告置顶显示。
  7094  func (builder *PutTopNoticeChatTopNoticeReqBuilder) Body(body *PutTopNoticeChatTopNoticeReqBody) *PutTopNoticeChatTopNoticeReqBuilder {
  7095  	builder.body = body
  7096  	return builder
  7097  }
  7098  
  7099  func (builder *PutTopNoticeChatTopNoticeReqBuilder) Build() *PutTopNoticeChatTopNoticeReq {
  7100  	req := &PutTopNoticeChatTopNoticeReq{}
  7101  	req.apiReq = &larkcore.ApiReq{}
  7102  	req.apiReq.PathParams = builder.apiReq.PathParams
  7103  	req.apiReq.Body = builder.body
  7104  	return req
  7105  }
  7106  
  7107  type PutTopNoticeChatTopNoticeReqBody struct {
  7108  	ChatTopNotice []*ChatTopNotice `json:"chat_top_notice,omitempty"` // 要进行发布的群置顶
  7109  }
  7110  
  7111  type PutTopNoticeChatTopNoticeReq struct {
  7112  	apiReq *larkcore.ApiReq
  7113  	Body   *PutTopNoticeChatTopNoticeReqBody `body:""`
  7114  }
  7115  
  7116  type PutTopNoticeChatTopNoticeResp struct {
  7117  	*larkcore.ApiResp `json:"-"`
  7118  	larkcore.CodeError
  7119  }
  7120  
  7121  func (resp *PutTopNoticeChatTopNoticeResp) Success() bool {
  7122  	return resp.Code == 0
  7123  }
  7124  
  7125  type CreateFileReqBodyBuilder struct {
  7126  	fileType     string // 文件类型
  7127  	fileTypeFlag bool
  7128  	fileName     string // 带后缀的文件名
  7129  	fileNameFlag bool
  7130  	duration     int // 文件的时长(视频,音频),单位:毫秒。不填充时无法显示具体时长。
  7131  	durationFlag bool
  7132  	file         io.Reader // 文件内容
  7133  	fileFlag     bool
  7134  }
  7135  
  7136  func NewCreateFileReqBodyBuilder() *CreateFileReqBodyBuilder {
  7137  	builder := &CreateFileReqBodyBuilder{}
  7138  	return builder
  7139  }
  7140  
  7141  // 文件类型
  7142  //
  7143  //示例值:mp4
  7144  func (builder *CreateFileReqBodyBuilder) FileType(fileType string) *CreateFileReqBodyBuilder {
  7145  	builder.fileType = fileType
  7146  	builder.fileTypeFlag = true
  7147  	return builder
  7148  }
  7149  
  7150  // 带后缀的文件名
  7151  //
  7152  //示例值:测试视频.mp4
  7153  func (builder *CreateFileReqBodyBuilder) FileName(fileName string) *CreateFileReqBodyBuilder {
  7154  	builder.fileName = fileName
  7155  	builder.fileNameFlag = true
  7156  	return builder
  7157  }
  7158  
  7159  // 文件的时长(视频,音频),单位:毫秒。不填充时无法显示具体时长。
  7160  //
  7161  //示例值:3000
  7162  func (builder *CreateFileReqBodyBuilder) Duration(duration int) *CreateFileReqBodyBuilder {
  7163  	builder.duration = duration
  7164  	builder.durationFlag = true
  7165  	return builder
  7166  }
  7167  
  7168  // 文件内容
  7169  //
  7170  //示例值:二进制文件
  7171  func (builder *CreateFileReqBodyBuilder) File(file io.Reader) *CreateFileReqBodyBuilder {
  7172  	builder.file = file
  7173  	builder.fileFlag = true
  7174  	return builder
  7175  }
  7176  
  7177  func (builder *CreateFileReqBodyBuilder) Build() *CreateFileReqBody {
  7178  	req := &CreateFileReqBody{}
  7179  	if builder.fileTypeFlag {
  7180  		req.FileType = &builder.fileType
  7181  	}
  7182  	if builder.fileNameFlag {
  7183  		req.FileName = &builder.fileName
  7184  	}
  7185  	if builder.durationFlag {
  7186  		req.Duration = &builder.duration
  7187  	}
  7188  	if builder.fileFlag {
  7189  		req.File = builder.file
  7190  	}
  7191  	return req
  7192  }
  7193  
  7194  type CreateFilePathReqBodyBuilder struct {
  7195  	fileType     string // 文件类型
  7196  	fileTypeFlag bool
  7197  	fileName     string // 带后缀的文件名
  7198  	fileNameFlag bool
  7199  	duration     int // 文件的时长(视频,音频),单位:毫秒。不填充时无法显示具体时长。
  7200  	durationFlag bool
  7201  	filePath     string // 文件内容
  7202  	filePathFlag bool
  7203  }
  7204  
  7205  func NewCreateFilePathReqBodyBuilder() *CreateFilePathReqBodyBuilder {
  7206  	builder := &CreateFilePathReqBodyBuilder{}
  7207  	return builder
  7208  }
  7209  
  7210  // 文件类型
  7211  //
  7212  // 示例值:mp4
  7213  func (builder *CreateFilePathReqBodyBuilder) FileType(fileType string) *CreateFilePathReqBodyBuilder {
  7214  	builder.fileType = fileType
  7215  	builder.fileTypeFlag = true
  7216  	return builder
  7217  }
  7218  
  7219  // 带后缀的文件名
  7220  //
  7221  // 示例值:测试视频.mp4
  7222  func (builder *CreateFilePathReqBodyBuilder) FileName(fileName string) *CreateFilePathReqBodyBuilder {
  7223  	builder.fileName = fileName
  7224  	builder.fileNameFlag = true
  7225  	return builder
  7226  }
  7227  
  7228  // 文件的时长(视频,音频),单位:毫秒。不填充时无法显示具体时长。
  7229  //
  7230  // 示例值:3000
  7231  func (builder *CreateFilePathReqBodyBuilder) Duration(duration int) *CreateFilePathReqBodyBuilder {
  7232  	builder.duration = duration
  7233  	builder.durationFlag = true
  7234  	return builder
  7235  }
  7236  
  7237  // 文件内容
  7238  //
  7239  // 示例值:二进制文件
  7240  func (builder *CreateFilePathReqBodyBuilder) FilePath(filePath string) *CreateFilePathReqBodyBuilder {
  7241  	builder.filePath = filePath
  7242  	builder.filePathFlag = true
  7243  	return builder
  7244  }
  7245  
  7246  func (builder *CreateFilePathReqBodyBuilder) Build() (*CreateFileReqBody, error) {
  7247  	req := &CreateFileReqBody{}
  7248  	if builder.fileTypeFlag {
  7249  		req.FileType = &builder.fileType
  7250  	}
  7251  	if builder.fileNameFlag {
  7252  		req.FileName = &builder.fileName
  7253  	}
  7254  	if builder.durationFlag {
  7255  		req.Duration = &builder.duration
  7256  	}
  7257  	if builder.filePathFlag {
  7258  		data, err := larkcore.File2Bytes(builder.filePath)
  7259  		if err != nil {
  7260  			return nil, err
  7261  		}
  7262  		req.File = bytes.NewBuffer(data)
  7263  	}
  7264  	return req, nil
  7265  }
  7266  
  7267  type CreateFileReqBuilder struct {
  7268  	apiReq *larkcore.ApiReq
  7269  	body   *CreateFileReqBody
  7270  }
  7271  
  7272  func NewCreateFileReqBuilder() *CreateFileReqBuilder {
  7273  	builder := &CreateFileReqBuilder{}
  7274  	builder.apiReq = &larkcore.ApiReq{
  7275  		PathParams:  larkcore.PathParams{},
  7276  		QueryParams: larkcore.QueryParams{},
  7277  	}
  7278  	return builder
  7279  }
  7280  
  7281  // 上传文件,可以上传视频,音频和常见的文件类型
  7282  func (builder *CreateFileReqBuilder) Body(body *CreateFileReqBody) *CreateFileReqBuilder {
  7283  	builder.body = body
  7284  	return builder
  7285  }
  7286  
  7287  func (builder *CreateFileReqBuilder) Build() *CreateFileReq {
  7288  	req := &CreateFileReq{}
  7289  	req.apiReq = &larkcore.ApiReq{}
  7290  	req.apiReq.Body = builder.body
  7291  	return req
  7292  }
  7293  
  7294  type CreateFileReqBody struct {
  7295  	FileType *string   `json:"file_type,omitempty"` // 文件类型
  7296  	FileName *string   `json:"file_name,omitempty"` // 带后缀的文件名
  7297  	Duration *int      `json:"duration,omitempty"`  // 文件的时长(视频,音频),单位:毫秒。不填充时无法显示具体时长。
  7298  	File     io.Reader `json:"file,omitempty"`      // 文件内容
  7299  }
  7300  
  7301  type CreateFileReq struct {
  7302  	apiReq *larkcore.ApiReq
  7303  	Body   *CreateFileReqBody `body:""`
  7304  }
  7305  
  7306  type CreateFileRespData struct {
  7307  	FileKey *string `json:"file_key,omitempty"` // 文件的key
  7308  }
  7309  
  7310  type CreateFileResp struct {
  7311  	*larkcore.ApiResp `json:"-"`
  7312  	larkcore.CodeError
  7313  	Data *CreateFileRespData `json:"data"` // 业务数据
  7314  }
  7315  
  7316  func (resp *CreateFileResp) Success() bool {
  7317  	return resp.Code == 0
  7318  }
  7319  
  7320  type GetFileReqBuilder struct {
  7321  	apiReq *larkcore.ApiReq
  7322  }
  7323  
  7324  func NewGetFileReqBuilder() *GetFileReqBuilder {
  7325  	builder := &GetFileReqBuilder{}
  7326  	builder.apiReq = &larkcore.ApiReq{
  7327  		PathParams:  larkcore.PathParams{},
  7328  		QueryParams: larkcore.QueryParams{},
  7329  	}
  7330  	return builder
  7331  }
  7332  
  7333  // 文件的key
  7334  //
  7335  // 示例值:file_456a92d6-c6ea-4de4-ac3f-7afcf44ac78g
  7336  func (builder *GetFileReqBuilder) FileKey(fileKey string) *GetFileReqBuilder {
  7337  	builder.apiReq.PathParams.Set("file_key", fmt.Sprint(fileKey))
  7338  	return builder
  7339  }
  7340  
  7341  func (builder *GetFileReqBuilder) Build() *GetFileReq {
  7342  	req := &GetFileReq{}
  7343  	req.apiReq = &larkcore.ApiReq{}
  7344  	req.apiReq.PathParams = builder.apiReq.PathParams
  7345  	return req
  7346  }
  7347  
  7348  type GetFileReq struct {
  7349  	apiReq *larkcore.ApiReq
  7350  }
  7351  
  7352  type GetFileResp struct {
  7353  	*larkcore.ApiResp `json:"-"`
  7354  	larkcore.CodeError
  7355  	File     io.Reader `json:"-"`
  7356  	FileName string    `json:"-"`
  7357  }
  7358  
  7359  func (resp *GetFileResp) Success() bool {
  7360  	return resp.Code == 0
  7361  }
  7362  
  7363  func (resp *GetFileResp) WriteFile(fileName string) error {
  7364  	bs, err := ioutil.ReadAll(resp.File)
  7365  	if err != nil {
  7366  		return err
  7367  	}
  7368  
  7369  	err = ioutil.WriteFile(fileName, bs, 0666)
  7370  	if err != nil {
  7371  		return err
  7372  	}
  7373  	return nil
  7374  }
  7375  
  7376  type CreateImageReqBodyBuilder struct {
  7377  	imageType     string // 图片类型
  7378  	imageTypeFlag bool
  7379  	image         io.Reader // 图片内容;; **注意:** 上传的图片大小不能超过10MB
  7380  	imageFlag     bool
  7381  }
  7382  
  7383  func NewCreateImageReqBodyBuilder() *CreateImageReqBodyBuilder {
  7384  	builder := &CreateImageReqBodyBuilder{}
  7385  	return builder
  7386  }
  7387  
  7388  // 图片类型
  7389  //
  7390  //示例值:message
  7391  func (builder *CreateImageReqBodyBuilder) ImageType(imageType string) *CreateImageReqBodyBuilder {
  7392  	builder.imageType = imageType
  7393  	builder.imageTypeFlag = true
  7394  	return builder
  7395  }
  7396  
  7397  // 图片内容;; **注意:** 上传的图片大小不能超过10MB
  7398  //
  7399  //示例值:二进制文件
  7400  func (builder *CreateImageReqBodyBuilder) Image(image io.Reader) *CreateImageReqBodyBuilder {
  7401  	builder.image = image
  7402  	builder.imageFlag = true
  7403  	return builder
  7404  }
  7405  
  7406  func (builder *CreateImageReqBodyBuilder) Build() *CreateImageReqBody {
  7407  	req := &CreateImageReqBody{}
  7408  	if builder.imageTypeFlag {
  7409  		req.ImageType = &builder.imageType
  7410  	}
  7411  	if builder.imageFlag {
  7412  		req.Image = builder.image
  7413  	}
  7414  	return req
  7415  }
  7416  
  7417  type CreateImagePathReqBodyBuilder struct {
  7418  	imageType     string // 图片类型
  7419  	imageTypeFlag bool
  7420  	imagePath     string // 图片内容;; **注意:** 上传的图片大小不能超过10MB
  7421  	imagePathFlag bool
  7422  }
  7423  
  7424  func NewCreateImagePathReqBodyBuilder() *CreateImagePathReqBodyBuilder {
  7425  	builder := &CreateImagePathReqBodyBuilder{}
  7426  	return builder
  7427  }
  7428  
  7429  // 图片类型
  7430  //
  7431  // 示例值:message
  7432  func (builder *CreateImagePathReqBodyBuilder) ImageType(imageType string) *CreateImagePathReqBodyBuilder {
  7433  	builder.imageType = imageType
  7434  	builder.imageTypeFlag = true
  7435  	return builder
  7436  }
  7437  
  7438  // 图片内容;; **注意:** 上传的图片大小不能超过10MB
  7439  //
  7440  // 示例值:二进制文件
  7441  func (builder *CreateImagePathReqBodyBuilder) ImagePath(imagePath string) *CreateImagePathReqBodyBuilder {
  7442  	builder.imagePath = imagePath
  7443  	builder.imagePathFlag = true
  7444  	return builder
  7445  }
  7446  
  7447  func (builder *CreateImagePathReqBodyBuilder) Build() (*CreateImageReqBody, error) {
  7448  	req := &CreateImageReqBody{}
  7449  	if builder.imageTypeFlag {
  7450  		req.ImageType = &builder.imageType
  7451  	}
  7452  	if builder.imagePathFlag {
  7453  		data, err := larkcore.File2Bytes(builder.imagePath)
  7454  		if err != nil {
  7455  			return nil, err
  7456  		}
  7457  		req.Image = bytes.NewBuffer(data)
  7458  	}
  7459  	return req, nil
  7460  }
  7461  
  7462  type CreateImageReqBuilder struct {
  7463  	apiReq *larkcore.ApiReq
  7464  	body   *CreateImageReqBody
  7465  }
  7466  
  7467  func NewCreateImageReqBuilder() *CreateImageReqBuilder {
  7468  	builder := &CreateImageReqBuilder{}
  7469  	builder.apiReq = &larkcore.ApiReq{
  7470  		PathParams:  larkcore.PathParams{},
  7471  		QueryParams: larkcore.QueryParams{},
  7472  	}
  7473  	return builder
  7474  }
  7475  
  7476  // 上传图片接口,可以上传 JPEG、PNG、WEBP、GIF、TIFF、BMP、ICO格式图片
  7477  func (builder *CreateImageReqBuilder) Body(body *CreateImageReqBody) *CreateImageReqBuilder {
  7478  	builder.body = body
  7479  	return builder
  7480  }
  7481  
  7482  func (builder *CreateImageReqBuilder) Build() *CreateImageReq {
  7483  	req := &CreateImageReq{}
  7484  	req.apiReq = &larkcore.ApiReq{}
  7485  	req.apiReq.Body = builder.body
  7486  	return req
  7487  }
  7488  
  7489  type CreateImageReqBody struct {
  7490  	ImageType *string   `json:"image_type,omitempty"` // 图片类型
  7491  	Image     io.Reader `json:"image,omitempty"`      // 图片内容;; **注意:** 上传的图片大小不能超过10MB
  7492  }
  7493  
  7494  type CreateImageReq struct {
  7495  	apiReq *larkcore.ApiReq
  7496  	Body   *CreateImageReqBody `body:""`
  7497  }
  7498  
  7499  type CreateImageRespData struct {
  7500  	ImageKey *string `json:"image_key,omitempty"` // 图片的key
  7501  }
  7502  
  7503  type CreateImageResp struct {
  7504  	*larkcore.ApiResp `json:"-"`
  7505  	larkcore.CodeError
  7506  	Data *CreateImageRespData `json:"data"` // 业务数据
  7507  }
  7508  
  7509  func (resp *CreateImageResp) Success() bool {
  7510  	return resp.Code == 0
  7511  }
  7512  
  7513  type GetImageReqBuilder struct {
  7514  	apiReq *larkcore.ApiReq
  7515  }
  7516  
  7517  func NewGetImageReqBuilder() *GetImageReqBuilder {
  7518  	builder := &GetImageReqBuilder{}
  7519  	builder.apiReq = &larkcore.ApiReq{
  7520  		PathParams:  larkcore.PathParams{},
  7521  		QueryParams: larkcore.QueryParams{},
  7522  	}
  7523  	return builder
  7524  }
  7525  
  7526  // 图片的key
  7527  //
  7528  // 示例值:img_8d5181ca-0aed-40f0-b0d1-b1452132afbg
  7529  func (builder *GetImageReqBuilder) ImageKey(imageKey string) *GetImageReqBuilder {
  7530  	builder.apiReq.PathParams.Set("image_key", fmt.Sprint(imageKey))
  7531  	return builder
  7532  }
  7533  
  7534  func (builder *GetImageReqBuilder) Build() *GetImageReq {
  7535  	req := &GetImageReq{}
  7536  	req.apiReq = &larkcore.ApiReq{}
  7537  	req.apiReq.PathParams = builder.apiReq.PathParams
  7538  	return req
  7539  }
  7540  
  7541  type GetImageReq struct {
  7542  	apiReq *larkcore.ApiReq
  7543  }
  7544  
  7545  type GetImageResp struct {
  7546  	*larkcore.ApiResp `json:"-"`
  7547  	larkcore.CodeError
  7548  	File     io.Reader `json:"-"`
  7549  	FileName string    `json:"-"`
  7550  }
  7551  
  7552  func (resp *GetImageResp) Success() bool {
  7553  	return resp.Code == 0
  7554  }
  7555  
  7556  func (resp *GetImageResp) WriteFile(fileName string) error {
  7557  	bs, err := ioutil.ReadAll(resp.File)
  7558  	if err != nil {
  7559  		return err
  7560  	}
  7561  
  7562  	err = ioutil.WriteFile(fileName, bs, 0666)
  7563  	if err != nil {
  7564  		return err
  7565  	}
  7566  	return nil
  7567  }
  7568  
  7569  type CreateMessageReqBodyBuilder struct {
  7570  	receiveId     string // 依据receive_id_type的值,填写对应的消息接收者id
  7571  	receiveIdFlag bool
  7572  	content       string // 消息内容,json结构序列化后的字符串。不同msg_type对应不同内容。消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,具体格式说明参考:[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json);;<b>请求体大小限制</b>:;- 文本消息请求体最大不能超过150KB;- 卡片及富文本消息请求体最大不能超过30KB
  7573  	contentFlag   bool
  7574  	msgType       string // 消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,类型定义请参考[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json)
  7575  	msgTypeFlag   bool
  7576  	uuid          string // 由开发者生成的唯一字符串序列,用于发送消息请求去重;持有相同uuid的请求1小时内至多成功执行一次
  7577  	uuidFlag      bool
  7578  }
  7579  
  7580  func NewCreateMessageReqBodyBuilder() *CreateMessageReqBodyBuilder {
  7581  	builder := &CreateMessageReqBodyBuilder{}
  7582  	return builder
  7583  }
  7584  
  7585  // 依据receive_id_type的值,填写对应的消息接收者id
  7586  //
  7587  //示例值:ou_7d8a6e6df7621556ce0d21922b676706ccs
  7588  func (builder *CreateMessageReqBodyBuilder) ReceiveId(receiveId string) *CreateMessageReqBodyBuilder {
  7589  	builder.receiveId = receiveId
  7590  	builder.receiveIdFlag = true
  7591  	return builder
  7592  }
  7593  
  7594  // 消息内容,json结构序列化后的字符串。不同msg_type对应不同内容。消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,具体格式说明参考:[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json);;<b>请求体大小限制</b>:;- 文本消息请求体最大不能超过150KB;- 卡片及富文本消息请求体最大不能超过30KB
  7595  //
  7596  //示例值:{\"text\":\"<at user_id=\\\"ou_155184d1e73cbfb8973e5a9e698e74f2\\\">Tom</at> test content\"}
  7597  func (builder *CreateMessageReqBodyBuilder) Content(content string) *CreateMessageReqBodyBuilder {
  7598  	builder.content = content
  7599  	builder.contentFlag = true
  7600  	return builder
  7601  }
  7602  
  7603  // 消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,类型定义请参考[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json)
  7604  //
  7605  //示例值:text
  7606  func (builder *CreateMessageReqBodyBuilder) MsgType(msgType string) *CreateMessageReqBodyBuilder {
  7607  	builder.msgType = msgType
  7608  	builder.msgTypeFlag = true
  7609  	return builder
  7610  }
  7611  
  7612  // 由开发者生成的唯一字符串序列,用于发送消息请求去重;持有相同uuid的请求1小时内至多成功执行一次
  7613  //
  7614  //示例值:a0d69e20-1dd1-458b-k525-dfeca4015204
  7615  func (builder *CreateMessageReqBodyBuilder) Uuid(uuid string) *CreateMessageReqBodyBuilder {
  7616  	builder.uuid = uuid
  7617  	builder.uuidFlag = true
  7618  	return builder
  7619  }
  7620  
  7621  func (builder *CreateMessageReqBodyBuilder) Build() *CreateMessageReqBody {
  7622  	req := &CreateMessageReqBody{}
  7623  	if builder.receiveIdFlag {
  7624  		req.ReceiveId = &builder.receiveId
  7625  	}
  7626  	if builder.contentFlag {
  7627  		req.Content = &builder.content
  7628  	}
  7629  	if builder.msgTypeFlag {
  7630  		req.MsgType = &builder.msgType
  7631  	}
  7632  	if builder.uuidFlag {
  7633  		req.Uuid = &builder.uuid
  7634  	}
  7635  	return req
  7636  }
  7637  
  7638  type CreateMessagePathReqBodyBuilder struct {
  7639  	receiveId     string // 依据receive_id_type的值,填写对应的消息接收者id
  7640  	receiveIdFlag bool
  7641  	content       string // 消息内容,json结构序列化后的字符串。不同msg_type对应不同内容。消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,具体格式说明参考:[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json);;<b>请求体大小限制</b>:;- 文本消息请求体最大不能超过150KB;- 卡片及富文本消息请求体最大不能超过30KB
  7642  	contentFlag   bool
  7643  	msgType       string // 消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,类型定义请参考[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json)
  7644  	msgTypeFlag   bool
  7645  	uuid          string // 由开发者生成的唯一字符串序列,用于发送消息请求去重;持有相同uuid的请求1小时内至多成功执行一次
  7646  	uuidFlag      bool
  7647  }
  7648  
  7649  func NewCreateMessagePathReqBodyBuilder() *CreateMessagePathReqBodyBuilder {
  7650  	builder := &CreateMessagePathReqBodyBuilder{}
  7651  	return builder
  7652  }
  7653  
  7654  // 依据receive_id_type的值,填写对应的消息接收者id
  7655  //
  7656  // 示例值:ou_7d8a6e6df7621556ce0d21922b676706ccs
  7657  func (builder *CreateMessagePathReqBodyBuilder) ReceiveId(receiveId string) *CreateMessagePathReqBodyBuilder {
  7658  	builder.receiveId = receiveId
  7659  	builder.receiveIdFlag = true
  7660  	return builder
  7661  }
  7662  
  7663  // 消息内容,json结构序列化后的字符串。不同msg_type对应不同内容。消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,具体格式说明参考:[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json);;<b>请求体大小限制</b>:;- 文本消息请求体最大不能超过150KB;- 卡片及富文本消息请求体最大不能超过30KB
  7664  //
  7665  // 示例值:{\"text\":\"<at user_id=\\\"ou_155184d1e73cbfb8973e5a9e698e74f2\\\">Tom</at> test content\"}
  7666  func (builder *CreateMessagePathReqBodyBuilder) Content(content string) *CreateMessagePathReqBodyBuilder {
  7667  	builder.content = content
  7668  	builder.contentFlag = true
  7669  	return builder
  7670  }
  7671  
  7672  // 消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,类型定义请参考[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json)
  7673  //
  7674  // 示例值:text
  7675  func (builder *CreateMessagePathReqBodyBuilder) MsgType(msgType string) *CreateMessagePathReqBodyBuilder {
  7676  	builder.msgType = msgType
  7677  	builder.msgTypeFlag = true
  7678  	return builder
  7679  }
  7680  
  7681  // 由开发者生成的唯一字符串序列,用于发送消息请求去重;持有相同uuid的请求1小时内至多成功执行一次
  7682  //
  7683  // 示例值:a0d69e20-1dd1-458b-k525-dfeca4015204
  7684  func (builder *CreateMessagePathReqBodyBuilder) Uuid(uuid string) *CreateMessagePathReqBodyBuilder {
  7685  	builder.uuid = uuid
  7686  	builder.uuidFlag = true
  7687  	return builder
  7688  }
  7689  
  7690  func (builder *CreateMessagePathReqBodyBuilder) Build() (*CreateMessageReqBody, error) {
  7691  	req := &CreateMessageReqBody{}
  7692  	if builder.receiveIdFlag {
  7693  		req.ReceiveId = &builder.receiveId
  7694  	}
  7695  	if builder.contentFlag {
  7696  		req.Content = &builder.content
  7697  	}
  7698  	if builder.msgTypeFlag {
  7699  		req.MsgType = &builder.msgType
  7700  	}
  7701  	if builder.uuidFlag {
  7702  		req.Uuid = &builder.uuid
  7703  	}
  7704  	return req, nil
  7705  }
  7706  
  7707  type CreateMessageReqBuilder struct {
  7708  	apiReq *larkcore.ApiReq
  7709  	body   *CreateMessageReqBody
  7710  }
  7711  
  7712  func NewCreateMessageReqBuilder() *CreateMessageReqBuilder {
  7713  	builder := &CreateMessageReqBuilder{}
  7714  	builder.apiReq = &larkcore.ApiReq{
  7715  		PathParams:  larkcore.PathParams{},
  7716  		QueryParams: larkcore.QueryParams{},
  7717  	}
  7718  	return builder
  7719  }
  7720  
  7721  // 消息接收者id类型 open_id/user_id/union_id/email/chat_id
  7722  //
  7723  // 示例值:open_id
  7724  func (builder *CreateMessageReqBuilder) ReceiveIdType(receiveIdType string) *CreateMessageReqBuilder {
  7725  	builder.apiReq.QueryParams.Set("receive_id_type", fmt.Sprint(receiveIdType))
  7726  	return builder
  7727  }
  7728  
  7729  // 给指定用户或者会话发送消息,支持文本、富文本、可交互的[消息卡片](/ssl:ttdoc/ukTMukTMukTM/uczM3QjL3MzN04yNzcDN)、群名片、个人名片、图片、视频、音频、文件、表情包。
  7730  func (builder *CreateMessageReqBuilder) Body(body *CreateMessageReqBody) *CreateMessageReqBuilder {
  7731  	builder.body = body
  7732  	return builder
  7733  }
  7734  
  7735  func (builder *CreateMessageReqBuilder) Build() *CreateMessageReq {
  7736  	req := &CreateMessageReq{}
  7737  	req.apiReq = &larkcore.ApiReq{}
  7738  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  7739  	req.apiReq.Body = builder.body
  7740  	return req
  7741  }
  7742  
  7743  type CreateMessageReqBody struct {
  7744  	ReceiveId *string `json:"receive_id,omitempty"` // 依据receive_id_type的值,填写对应的消息接收者id
  7745  	Content   *string `json:"content,omitempty"`    // 消息内容,json结构序列化后的字符串。不同msg_type对应不同内容。消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,具体格式说明参考:[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json);;<b>请求体大小限制</b>:;- 文本消息请求体最大不能超过150KB;- 卡片及富文本消息请求体最大不能超过30KB
  7746  	MsgType   *string `json:"msg_type,omitempty"`   // 消息类型 包括:text、post、image、file、audio、media、sticker、interactive、share_chat、share_user等,类型定义请参考[发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json)
  7747  	Uuid      *string `json:"uuid,omitempty"`       // 由开发者生成的唯一字符串序列,用于发送消息请求去重;持有相同uuid的请求1小时内至多成功执行一次
  7748  }
  7749  
  7750  type CreateMessageReq struct {
  7751  	apiReq *larkcore.ApiReq
  7752  	Body   *CreateMessageReqBody `body:""`
  7753  }
  7754  
  7755  type CreateMessageRespData struct {
  7756  	MessageId      *string      `json:"message_id,omitempty"`       // 消息id open_message_id
  7757  	RootId         *string      `json:"root_id,omitempty"`          // 根消息id open_message_id
  7758  	ParentId       *string      `json:"parent_id,omitempty"`        // 父消息的id open_message_id
  7759  	MsgType        *string      `json:"msg_type,omitempty"`         // 消息类型 text post card image等等
  7760  	CreateTime     *string      `json:"create_time,omitempty"`      // 消息生成的时间戳(毫秒)
  7761  	UpdateTime     *string      `json:"update_time,omitempty"`      // 消息更新的时间戳
  7762  	Deleted        *bool        `json:"deleted,omitempty"`          // 消息是否被撤回
  7763  	Updated        *bool        `json:"updated,omitempty"`          // 消息是否被更新
  7764  	ChatId         *string      `json:"chat_id,omitempty"`          // 所属的群
  7765  	Sender         *Sender      `json:"sender,omitempty"`           // 发送者,可以是用户或应用
  7766  	Body           *MessageBody `json:"body,omitempty"`             // 消息内容,json结构
  7767  	Mentions       []*Mention   `json:"mentions,omitempty"`         // 被艾特的人或应用的id
  7768  	UpperMessageId *string      `json:"upper_message_id,omitempty"` // 合并消息的上一层级消息id open_message_id
  7769  }
  7770  
  7771  type CreateMessageResp struct {
  7772  	*larkcore.ApiResp `json:"-"`
  7773  	larkcore.CodeError
  7774  	Data *CreateMessageRespData `json:"data"` // 业务数据
  7775  }
  7776  
  7777  func (resp *CreateMessageResp) Success() bool {
  7778  	return resp.Code == 0
  7779  }
  7780  
  7781  type DeleteMessageReqBuilder struct {
  7782  	apiReq *larkcore.ApiReq
  7783  }
  7784  
  7785  func NewDeleteMessageReqBuilder() *DeleteMessageReqBuilder {
  7786  	builder := &DeleteMessageReqBuilder{}
  7787  	builder.apiReq = &larkcore.ApiReq{
  7788  		PathParams:  larkcore.PathParams{},
  7789  		QueryParams: larkcore.QueryParams{},
  7790  	}
  7791  	return builder
  7792  }
  7793  
  7794  // 待撤回的消息的ID
  7795  //
  7796  // 示例值:om_dc13264520392913993dd051dba21dcf
  7797  func (builder *DeleteMessageReqBuilder) MessageId(messageId string) *DeleteMessageReqBuilder {
  7798  	builder.apiReq.PathParams.Set("message_id", fmt.Sprint(messageId))
  7799  	return builder
  7800  }
  7801  
  7802  func (builder *DeleteMessageReqBuilder) Build() *DeleteMessageReq {
  7803  	req := &DeleteMessageReq{}
  7804  	req.apiReq = &larkcore.ApiReq{}
  7805  	req.apiReq.PathParams = builder.apiReq.PathParams
  7806  	return req
  7807  }
  7808  
  7809  type DeleteMessageReq struct {
  7810  	apiReq *larkcore.ApiReq
  7811  }
  7812  
  7813  type DeleteMessageResp struct {
  7814  	*larkcore.ApiResp `json:"-"`
  7815  	larkcore.CodeError
  7816  }
  7817  
  7818  func (resp *DeleteMessageResp) Success() bool {
  7819  	return resp.Code == 0
  7820  }
  7821  
  7822  type GetMessageReqBuilder struct {
  7823  	apiReq *larkcore.ApiReq
  7824  }
  7825  
  7826  func NewGetMessageReqBuilder() *GetMessageReqBuilder {
  7827  	builder := &GetMessageReqBuilder{}
  7828  	builder.apiReq = &larkcore.ApiReq{
  7829  		PathParams:  larkcore.PathParams{},
  7830  		QueryParams: larkcore.QueryParams{},
  7831  	}
  7832  	return builder
  7833  }
  7834  
  7835  // 待获取消息内容的消息的ID
  7836  //
  7837  // 示例值:om_dc13264520392913993dd051dba21dcf
  7838  func (builder *GetMessageReqBuilder) MessageId(messageId string) *GetMessageReqBuilder {
  7839  	builder.apiReq.PathParams.Set("message_id", fmt.Sprint(messageId))
  7840  	return builder
  7841  }
  7842  
  7843  func (builder *GetMessageReqBuilder) Build() *GetMessageReq {
  7844  	req := &GetMessageReq{}
  7845  	req.apiReq = &larkcore.ApiReq{}
  7846  	req.apiReq.PathParams = builder.apiReq.PathParams
  7847  	return req
  7848  }
  7849  
  7850  type GetMessageReq struct {
  7851  	apiReq *larkcore.ApiReq
  7852  }
  7853  
  7854  type GetMessageRespData struct {
  7855  	Items []*Message `json:"items,omitempty"` // -
  7856  }
  7857  
  7858  type GetMessageResp struct {
  7859  	*larkcore.ApiResp `json:"-"`
  7860  	larkcore.CodeError
  7861  	Data *GetMessageRespData `json:"data"` // 业务数据
  7862  }
  7863  
  7864  func (resp *GetMessageResp) Success() bool {
  7865  	return resp.Code == 0
  7866  }
  7867  
  7868  type ListMessageReqBuilder struct {
  7869  	apiReq *larkcore.ApiReq
  7870  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  7871  }
  7872  
  7873  func NewListMessageReqBuilder() *ListMessageReqBuilder {
  7874  	builder := &ListMessageReqBuilder{}
  7875  	builder.apiReq = &larkcore.ApiReq{
  7876  		PathParams:  larkcore.PathParams{},
  7877  		QueryParams: larkcore.QueryParams{},
  7878  	}
  7879  	return builder
  7880  }
  7881  
  7882  // 最大返回多少记录,当使用迭代器访问时才有效
  7883  func (builder *ListMessageReqBuilder) Limit(limit int) *ListMessageReqBuilder {
  7884  	builder.limit = limit
  7885  	return builder
  7886  }
  7887  
  7888  // 容器类型 ,目前可选值仅有"chat",包含单聊(p2p)和群聊(group)
  7889  //
  7890  // 示例值:chat
  7891  func (builder *ListMessageReqBuilder) ContainerIdType(containerIdType string) *ListMessageReqBuilder {
  7892  	builder.apiReq.QueryParams.Set("container_id_type", fmt.Sprint(containerIdType))
  7893  	return builder
  7894  }
  7895  
  7896  // 容器的id,即chat的id
  7897  //
  7898  // 示例值:oc_234jsi43d3ssi993d43545f
  7899  func (builder *ListMessageReqBuilder) ContainerId(containerId string) *ListMessageReqBuilder {
  7900  	builder.apiReq.QueryParams.Set("container_id", fmt.Sprint(containerId))
  7901  	return builder
  7902  }
  7903  
  7904  // 历史信息的起始时间(秒级时间戳)
  7905  //
  7906  // 示例值:1609296809
  7907  func (builder *ListMessageReqBuilder) StartTime(startTime string) *ListMessageReqBuilder {
  7908  	builder.apiReq.QueryParams.Set("start_time", fmt.Sprint(startTime))
  7909  	return builder
  7910  }
  7911  
  7912  // 历史信息的结束时间(秒级时间戳)
  7913  //
  7914  // 示例值:1608594809
  7915  func (builder *ListMessageReqBuilder) EndTime(endTime string) *ListMessageReqBuilder {
  7916  	builder.apiReq.QueryParams.Set("end_time", fmt.Sprint(endTime))
  7917  	return builder
  7918  }
  7919  
  7920  //
  7921  //
  7922  // 示例值:GxmvlNRvP0NdQZpa7yIqf_Lv_QuBwTQ8tXkX7w-irAghVD_TvuYd1aoJ1LQph86O-XImC4X9j9FhUPhXQDvtrQ==
  7923  func (builder *ListMessageReqBuilder) PageToken(pageToken string) *ListMessageReqBuilder {
  7924  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  7925  	return builder
  7926  }
  7927  
  7928  //
  7929  //
  7930  // 示例值:10
  7931  func (builder *ListMessageReqBuilder) PageSize(pageSize int) *ListMessageReqBuilder {
  7932  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  7933  	return builder
  7934  }
  7935  
  7936  func (builder *ListMessageReqBuilder) Build() *ListMessageReq {
  7937  	req := &ListMessageReq{}
  7938  	req.apiReq = &larkcore.ApiReq{}
  7939  	req.Limit = builder.limit
  7940  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  7941  	return req
  7942  }
  7943  
  7944  type ListMessageReq struct {
  7945  	apiReq *larkcore.ApiReq
  7946  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
  7947  
  7948  }
  7949  
  7950  type ListMessageRespData struct {
  7951  	HasMore   *bool      `json:"has_more,omitempty"`   // 是否还有后续翻页
  7952  	PageToken *string    `json:"page_token,omitempty"` // 下一页分页的token
  7953  	Items     []*Message `json:"items,omitempty"`      // message[]
  7954  }
  7955  
  7956  type ListMessageResp struct {
  7957  	*larkcore.ApiResp `json:"-"`
  7958  	larkcore.CodeError
  7959  	Data *ListMessageRespData `json:"data"` // 业务数据
  7960  }
  7961  
  7962  func (resp *ListMessageResp) Success() bool {
  7963  	return resp.Code == 0
  7964  }
  7965  
  7966  type PatchMessageReqBodyBuilder struct {
  7967  	content     string // 消息内容 json 格式,[发送消息 content 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json),参考文档中的卡片格式
  7968  	contentFlag bool
  7969  }
  7970  
  7971  func NewPatchMessageReqBodyBuilder() *PatchMessageReqBodyBuilder {
  7972  	builder := &PatchMessageReqBodyBuilder{}
  7973  	return builder
  7974  }
  7975  
  7976  // 消息内容 json 格式,[发送消息 content 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json),参考文档中的卡片格式
  7977  //
  7978  //示例值:参考链接
  7979  func (builder *PatchMessageReqBodyBuilder) Content(content string) *PatchMessageReqBodyBuilder {
  7980  	builder.content = content
  7981  	builder.contentFlag = true
  7982  	return builder
  7983  }
  7984  
  7985  func (builder *PatchMessageReqBodyBuilder) Build() *PatchMessageReqBody {
  7986  	req := &PatchMessageReqBody{}
  7987  	if builder.contentFlag {
  7988  		req.Content = &builder.content
  7989  	}
  7990  	return req
  7991  }
  7992  
  7993  type PatchMessagePathReqBodyBuilder struct {
  7994  	content     string // 消息内容 json 格式,[发送消息 content 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json),参考文档中的卡片格式
  7995  	contentFlag bool
  7996  }
  7997  
  7998  func NewPatchMessagePathReqBodyBuilder() *PatchMessagePathReqBodyBuilder {
  7999  	builder := &PatchMessagePathReqBodyBuilder{}
  8000  	return builder
  8001  }
  8002  
  8003  // 消息内容 json 格式,[发送消息 content 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json),参考文档中的卡片格式
  8004  //
  8005  // 示例值:参考链接
  8006  func (builder *PatchMessagePathReqBodyBuilder) Content(content string) *PatchMessagePathReqBodyBuilder {
  8007  	builder.content = content
  8008  	builder.contentFlag = true
  8009  	return builder
  8010  }
  8011  
  8012  func (builder *PatchMessagePathReqBodyBuilder) Build() (*PatchMessageReqBody, error) {
  8013  	req := &PatchMessageReqBody{}
  8014  	if builder.contentFlag {
  8015  		req.Content = &builder.content
  8016  	}
  8017  	return req, nil
  8018  }
  8019  
  8020  type PatchMessageReqBuilder struct {
  8021  	apiReq *larkcore.ApiReq
  8022  	body   *PatchMessageReqBody
  8023  }
  8024  
  8025  func NewPatchMessageReqBuilder() *PatchMessageReqBuilder {
  8026  	builder := &PatchMessageReqBuilder{}
  8027  	builder.apiReq = &larkcore.ApiReq{
  8028  		PathParams:  larkcore.PathParams{},
  8029  		QueryParams: larkcore.QueryParams{},
  8030  	}
  8031  	return builder
  8032  }
  8033  
  8034  // 待更新的消息的ID
  8035  //
  8036  // 示例值:om_dc13264520392913993dd051dba21dcf
  8037  func (builder *PatchMessageReqBuilder) MessageId(messageId string) *PatchMessageReqBuilder {
  8038  	builder.apiReq.PathParams.Set("message_id", fmt.Sprint(messageId))
  8039  	return builder
  8040  }
  8041  
  8042  // 更新应用已发送的消息卡片内容。
  8043  func (builder *PatchMessageReqBuilder) Body(body *PatchMessageReqBody) *PatchMessageReqBuilder {
  8044  	builder.body = body
  8045  	return builder
  8046  }
  8047  
  8048  func (builder *PatchMessageReqBuilder) Build() *PatchMessageReq {
  8049  	req := &PatchMessageReq{}
  8050  	req.apiReq = &larkcore.ApiReq{}
  8051  	req.apiReq.PathParams = builder.apiReq.PathParams
  8052  	req.apiReq.Body = builder.body
  8053  	return req
  8054  }
  8055  
  8056  type PatchMessageReqBody struct {
  8057  	Content *string `json:"content,omitempty"` // 消息内容 json 格式,[发送消息 content 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json),参考文档中的卡片格式
  8058  }
  8059  
  8060  type PatchMessageReq struct {
  8061  	apiReq *larkcore.ApiReq
  8062  	Body   *PatchMessageReqBody `body:""`
  8063  }
  8064  
  8065  type PatchMessageResp struct {
  8066  	*larkcore.ApiResp `json:"-"`
  8067  	larkcore.CodeError
  8068  }
  8069  
  8070  func (resp *PatchMessageResp) Success() bool {
  8071  	return resp.Code == 0
  8072  }
  8073  
  8074  type ReadUsersMessageReqBuilder struct {
  8075  	apiReq *larkcore.ApiReq
  8076  }
  8077  
  8078  func NewReadUsersMessageReqBuilder() *ReadUsersMessageReqBuilder {
  8079  	builder := &ReadUsersMessageReqBuilder{}
  8080  	builder.apiReq = &larkcore.ApiReq{
  8081  		PathParams:  larkcore.PathParams{},
  8082  		QueryParams: larkcore.QueryParams{},
  8083  	}
  8084  	return builder
  8085  }
  8086  
  8087  // 待查询的消息的ID,请注意不支持查询批量消息
  8088  //
  8089  // 示例值:om_dc13264520392913993dd051dba21dcf
  8090  func (builder *ReadUsersMessageReqBuilder) MessageId(messageId string) *ReadUsersMessageReqBuilder {
  8091  	builder.apiReq.PathParams.Set("message_id", fmt.Sprint(messageId))
  8092  	return builder
  8093  }
  8094  
  8095  // 此次调用中使用的用户ID的类型
  8096  //
  8097  // 示例值:
  8098  func (builder *ReadUsersMessageReqBuilder) UserIdType(userIdType string) *ReadUsersMessageReqBuilder {
  8099  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  8100  	return builder
  8101  }
  8102  
  8103  // 此次调用中使用的分页的大小
  8104  //
  8105  // 示例值:20
  8106  func (builder *ReadUsersMessageReqBuilder) PageSize(pageSize int) *ReadUsersMessageReqBuilder {
  8107  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  8108  	return builder
  8109  }
  8110  
  8111  // 下一页分页的token
  8112  //
  8113  // 示例值:GxmvlNRvP0NdQZpa7yIqf_Lv_QuBwTQ8tXkX7w-irAghVD_TvuYd1aoJ1LQph86O-XImC4X9j9FhUPhXQDvtrQ==
  8114  func (builder *ReadUsersMessageReqBuilder) PageToken(pageToken string) *ReadUsersMessageReqBuilder {
  8115  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  8116  	return builder
  8117  }
  8118  
  8119  func (builder *ReadUsersMessageReqBuilder) Build() *ReadUsersMessageReq {
  8120  	req := &ReadUsersMessageReq{}
  8121  	req.apiReq = &larkcore.ApiReq{}
  8122  	req.apiReq.PathParams = builder.apiReq.PathParams
  8123  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  8124  	return req
  8125  }
  8126  
  8127  type ReadUsersMessageReq struct {
  8128  	apiReq *larkcore.ApiReq
  8129  }
  8130  
  8131  type ReadUsersMessageRespData struct {
  8132  	Items     []*ReadUser `json:"items,omitempty"`      // -
  8133  	HasMore   *bool       `json:"has_more,omitempty"`   // 是否还有下一页
  8134  	PageToken *string     `json:"page_token,omitempty"` // 下一页分页的token
  8135  }
  8136  
  8137  type ReadUsersMessageResp struct {
  8138  	*larkcore.ApiResp `json:"-"`
  8139  	larkcore.CodeError
  8140  	Data *ReadUsersMessageRespData `json:"data"` // 业务数据
  8141  }
  8142  
  8143  func (resp *ReadUsersMessageResp) Success() bool {
  8144  	return resp.Code == 0
  8145  }
  8146  
  8147  type ReplyMessageReqBodyBuilder struct {
  8148  	content     string // 消息内容 json 格式,格式说明参考: [发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json)
  8149  	contentFlag bool
  8150  	msgType     string // 消息类型,包括:text、post、image、file、audio、media、sticker、interactive、share_card、share_user
  8151  	msgTypeFlag bool
  8152  	uuid        string // 由开发者生成的唯一字符串序列,用于回复消息请求去重;持有相同uuid的请求1小时内至多成功执行一次
  8153  	uuidFlag    bool
  8154  }
  8155  
  8156  func NewReplyMessageReqBodyBuilder() *ReplyMessageReqBodyBuilder {
  8157  	builder := &ReplyMessageReqBodyBuilder{}
  8158  	return builder
  8159  }
  8160  
  8161  // 消息内容 json 格式,格式说明参考: [发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json)
  8162  //
  8163  //示例值:{\"text\":\"<at user_id=\\\"ou_155184d1e73cbfb8973e5a9e698e74f2\\\">Tom</at> test content\"}
  8164  func (builder *ReplyMessageReqBodyBuilder) Content(content string) *ReplyMessageReqBodyBuilder {
  8165  	builder.content = content
  8166  	builder.contentFlag = true
  8167  	return builder
  8168  }
  8169  
  8170  // 消息类型,包括:text、post、image、file、audio、media、sticker、interactive、share_card、share_user
  8171  //
  8172  //示例值:text
  8173  func (builder *ReplyMessageReqBodyBuilder) MsgType(msgType string) *ReplyMessageReqBodyBuilder {
  8174  	builder.msgType = msgType
  8175  	builder.msgTypeFlag = true
  8176  	return builder
  8177  }
  8178  
  8179  // 由开发者生成的唯一字符串序列,用于回复消息请求去重;持有相同uuid的请求1小时内至多成功执行一次
  8180  //
  8181  //示例值:a0d69e20-1dd1-458b-k525-dfeca4015204
  8182  func (builder *ReplyMessageReqBodyBuilder) Uuid(uuid string) *ReplyMessageReqBodyBuilder {
  8183  	builder.uuid = uuid
  8184  	builder.uuidFlag = true
  8185  	return builder
  8186  }
  8187  
  8188  func (builder *ReplyMessageReqBodyBuilder) Build() *ReplyMessageReqBody {
  8189  	req := &ReplyMessageReqBody{}
  8190  	if builder.contentFlag {
  8191  		req.Content = &builder.content
  8192  	}
  8193  	if builder.msgTypeFlag {
  8194  		req.MsgType = &builder.msgType
  8195  	}
  8196  	if builder.uuidFlag {
  8197  		req.Uuid = &builder.uuid
  8198  	}
  8199  	return req
  8200  }
  8201  
  8202  type ReplyMessagePathReqBodyBuilder struct {
  8203  	content     string // 消息内容 json 格式,格式说明参考: [发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json)
  8204  	contentFlag bool
  8205  	msgType     string // 消息类型,包括:text、post、image、file、audio、media、sticker、interactive、share_card、share_user
  8206  	msgTypeFlag bool
  8207  	uuid        string // 由开发者生成的唯一字符串序列,用于回复消息请求去重;持有相同uuid的请求1小时内至多成功执行一次
  8208  	uuidFlag    bool
  8209  }
  8210  
  8211  func NewReplyMessagePathReqBodyBuilder() *ReplyMessagePathReqBodyBuilder {
  8212  	builder := &ReplyMessagePathReqBodyBuilder{}
  8213  	return builder
  8214  }
  8215  
  8216  // 消息内容 json 格式,格式说明参考: [发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json)
  8217  //
  8218  // 示例值:{\"text\":\"<at user_id=\\\"ou_155184d1e73cbfb8973e5a9e698e74f2\\\">Tom</at> test content\"}
  8219  func (builder *ReplyMessagePathReqBodyBuilder) Content(content string) *ReplyMessagePathReqBodyBuilder {
  8220  	builder.content = content
  8221  	builder.contentFlag = true
  8222  	return builder
  8223  }
  8224  
  8225  // 消息类型,包括:text、post、image、file、audio、media、sticker、interactive、share_card、share_user
  8226  //
  8227  // 示例值:text
  8228  func (builder *ReplyMessagePathReqBodyBuilder) MsgType(msgType string) *ReplyMessagePathReqBodyBuilder {
  8229  	builder.msgType = msgType
  8230  	builder.msgTypeFlag = true
  8231  	return builder
  8232  }
  8233  
  8234  // 由开发者生成的唯一字符串序列,用于回复消息请求去重;持有相同uuid的请求1小时内至多成功执行一次
  8235  //
  8236  // 示例值:a0d69e20-1dd1-458b-k525-dfeca4015204
  8237  func (builder *ReplyMessagePathReqBodyBuilder) Uuid(uuid string) *ReplyMessagePathReqBodyBuilder {
  8238  	builder.uuid = uuid
  8239  	builder.uuidFlag = true
  8240  	return builder
  8241  }
  8242  
  8243  func (builder *ReplyMessagePathReqBodyBuilder) Build() (*ReplyMessageReqBody, error) {
  8244  	req := &ReplyMessageReqBody{}
  8245  	if builder.contentFlag {
  8246  		req.Content = &builder.content
  8247  	}
  8248  	if builder.msgTypeFlag {
  8249  		req.MsgType = &builder.msgType
  8250  	}
  8251  	if builder.uuidFlag {
  8252  		req.Uuid = &builder.uuid
  8253  	}
  8254  	return req, nil
  8255  }
  8256  
  8257  type ReplyMessageReqBuilder struct {
  8258  	apiReq *larkcore.ApiReq
  8259  	body   *ReplyMessageReqBody
  8260  }
  8261  
  8262  func NewReplyMessageReqBuilder() *ReplyMessageReqBuilder {
  8263  	builder := &ReplyMessageReqBuilder{}
  8264  	builder.apiReq = &larkcore.ApiReq{
  8265  		PathParams:  larkcore.PathParams{},
  8266  		QueryParams: larkcore.QueryParams{},
  8267  	}
  8268  	return builder
  8269  }
  8270  
  8271  // 待回复的消息的ID
  8272  //
  8273  // 示例值:om_dc13264520392913993dd051dba21dcf
  8274  func (builder *ReplyMessageReqBuilder) MessageId(messageId string) *ReplyMessageReqBuilder {
  8275  	builder.apiReq.PathParams.Set("message_id", fmt.Sprint(messageId))
  8276  	return builder
  8277  }
  8278  
  8279  // 回复指定消息,支持文本、富文本、卡片、群名片、个人名片、图片、视频、文件等多种消息类型。
  8280  func (builder *ReplyMessageReqBuilder) Body(body *ReplyMessageReqBody) *ReplyMessageReqBuilder {
  8281  	builder.body = body
  8282  	return builder
  8283  }
  8284  
  8285  func (builder *ReplyMessageReqBuilder) Build() *ReplyMessageReq {
  8286  	req := &ReplyMessageReq{}
  8287  	req.apiReq = &larkcore.ApiReq{}
  8288  	req.apiReq.PathParams = builder.apiReq.PathParams
  8289  	req.apiReq.Body = builder.body
  8290  	return req
  8291  }
  8292  
  8293  type ReplyMessageReqBody struct {
  8294  	Content *string `json:"content,omitempty"`  // 消息内容 json 格式,格式说明参考: [发送消息content说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/im-v1/message/create_json)
  8295  	MsgType *string `json:"msg_type,omitempty"` // 消息类型,包括:text、post、image、file、audio、media、sticker、interactive、share_card、share_user
  8296  	Uuid    *string `json:"uuid,omitempty"`     // 由开发者生成的唯一字符串序列,用于回复消息请求去重;持有相同uuid的请求1小时内至多成功执行一次
  8297  }
  8298  
  8299  type ReplyMessageReq struct {
  8300  	apiReq *larkcore.ApiReq
  8301  	Body   *ReplyMessageReqBody `body:""`
  8302  }
  8303  
  8304  type ReplyMessageRespData struct {
  8305  	MessageId      *string      `json:"message_id,omitempty"`       // 消息id open_message_id
  8306  	RootId         *string      `json:"root_id,omitempty"`          // 根消息id open_message_id
  8307  	ParentId       *string      `json:"parent_id,omitempty"`        // 父消息的id open_message_id
  8308  	MsgType        *string      `json:"msg_type,omitempty"`         // 消息类型 text post card image等等
  8309  	CreateTime     *string      `json:"create_time,omitempty"`      // 消息生成的时间戳(毫秒)
  8310  	UpdateTime     *string      `json:"update_time,omitempty"`      // 消息更新的时间戳
  8311  	Deleted        *bool        `json:"deleted,omitempty"`          // 消息是否被撤回
  8312  	Updated        *bool        `json:"updated,omitempty"`          // 消息是否被更新
  8313  	ChatId         *string      `json:"chat_id,omitempty"`          // 所属的群
  8314  	Sender         *Sender      `json:"sender,omitempty"`           // 发送者,可以是用户或应用
  8315  	Body           *MessageBody `json:"body,omitempty"`             // 消息内容,json结构
  8316  	Mentions       []*Mention   `json:"mentions,omitempty"`         // 被艾特的人或应用的id
  8317  	UpperMessageId *string      `json:"upper_message_id,omitempty"` // 合并消息的上一层级消息id open_message_id
  8318  }
  8319  
  8320  type ReplyMessageResp struct {
  8321  	*larkcore.ApiResp `json:"-"`
  8322  	larkcore.CodeError
  8323  	Data *ReplyMessageRespData `json:"data"` // 业务数据
  8324  }
  8325  
  8326  func (resp *ReplyMessageResp) Success() bool {
  8327  	return resp.Code == 0
  8328  }
  8329  
  8330  type UrgentAppMessageReqBuilder struct {
  8331  	apiReq          *larkcore.ApiReq
  8332  	urgentReceivers *UrgentReceivers
  8333  }
  8334  
  8335  func NewUrgentAppMessageReqBuilder() *UrgentAppMessageReqBuilder {
  8336  	builder := &UrgentAppMessageReqBuilder{}
  8337  	builder.apiReq = &larkcore.ApiReq{
  8338  		PathParams:  larkcore.PathParams{},
  8339  		QueryParams: larkcore.QueryParams{},
  8340  	}
  8341  	return builder
  8342  }
  8343  
  8344  // 待加急的消息ID。注意不支持批量消息ID(bm_xxx)
  8345  //
  8346  // 示例值:om_dc13264520392913993dd051dba21dcf
  8347  func (builder *UrgentAppMessageReqBuilder) MessageId(messageId string) *UrgentAppMessageReqBuilder {
  8348  	builder.apiReq.PathParams.Set("message_id", fmt.Sprint(messageId))
  8349  	return builder
  8350  }
  8351  
  8352  // 此次调用中使用的用户ID的类型
  8353  //
  8354  // 示例值:
  8355  func (builder *UrgentAppMessageReqBuilder) UserIdType(userIdType string) *UrgentAppMessageReqBuilder {
  8356  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  8357  	return builder
  8358  }
  8359  
  8360  // 对指定消息进行应用内加急。
  8361  func (builder *UrgentAppMessageReqBuilder) UrgentReceivers(urgentReceivers *UrgentReceivers) *UrgentAppMessageReqBuilder {
  8362  	builder.urgentReceivers = urgentReceivers
  8363  	return builder
  8364  }
  8365  
  8366  func (builder *UrgentAppMessageReqBuilder) Build() *UrgentAppMessageReq {
  8367  	req := &UrgentAppMessageReq{}
  8368  	req.apiReq = &larkcore.ApiReq{}
  8369  	req.apiReq.PathParams = builder.apiReq.PathParams
  8370  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  8371  	req.apiReq.Body = builder.urgentReceivers
  8372  	return req
  8373  }
  8374  
  8375  type UrgentAppMessageReq struct {
  8376  	apiReq          *larkcore.ApiReq
  8377  	UrgentReceivers *UrgentReceivers `body:""`
  8378  }
  8379  
  8380  type UrgentAppMessageRespData struct {
  8381  	InvalidUserIdList []string `json:"invalid_user_id_list,omitempty"` // 无效的用户ID
  8382  }
  8383  
  8384  type UrgentAppMessageResp struct {
  8385  	*larkcore.ApiResp `json:"-"`
  8386  	larkcore.CodeError
  8387  	Data *UrgentAppMessageRespData `json:"data"` // 业务数据
  8388  }
  8389  
  8390  func (resp *UrgentAppMessageResp) Success() bool {
  8391  	return resp.Code == 0
  8392  }
  8393  
  8394  type UrgentPhoneMessageReqBuilder struct {
  8395  	apiReq          *larkcore.ApiReq
  8396  	urgentReceivers *UrgentReceivers
  8397  }
  8398  
  8399  func NewUrgentPhoneMessageReqBuilder() *UrgentPhoneMessageReqBuilder {
  8400  	builder := &UrgentPhoneMessageReqBuilder{}
  8401  	builder.apiReq = &larkcore.ApiReq{
  8402  		PathParams:  larkcore.PathParams{},
  8403  		QueryParams: larkcore.QueryParams{},
  8404  	}
  8405  	return builder
  8406  }
  8407  
  8408  // 待加急的消息的ID。注意不支持批量消息ID(bm_xxx)
  8409  //
  8410  // 示例值:om_dc13264520392913993dd051dba21dcf
  8411  func (builder *UrgentPhoneMessageReqBuilder) MessageId(messageId string) *UrgentPhoneMessageReqBuilder {
  8412  	builder.apiReq.PathParams.Set("message_id", fmt.Sprint(messageId))
  8413  	return builder
  8414  }
  8415  
  8416  // 此次调用中使用的用户ID的类型
  8417  //
  8418  // 示例值:
  8419  func (builder *UrgentPhoneMessageReqBuilder) UserIdType(userIdType string) *UrgentPhoneMessageReqBuilder {
  8420  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  8421  	return builder
  8422  }
  8423  
  8424  // 对指定消息进行应用内加急与电话加急
  8425  func (builder *UrgentPhoneMessageReqBuilder) UrgentReceivers(urgentReceivers *UrgentReceivers) *UrgentPhoneMessageReqBuilder {
  8426  	builder.urgentReceivers = urgentReceivers
  8427  	return builder
  8428  }
  8429  
  8430  func (builder *UrgentPhoneMessageReqBuilder) Build() *UrgentPhoneMessageReq {
  8431  	req := &UrgentPhoneMessageReq{}
  8432  	req.apiReq = &larkcore.ApiReq{}
  8433  	req.apiReq.PathParams = builder.apiReq.PathParams
  8434  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  8435  	req.apiReq.Body = builder.urgentReceivers
  8436  	return req
  8437  }
  8438  
  8439  type UrgentPhoneMessageReq struct {
  8440  	apiReq          *larkcore.ApiReq
  8441  	UrgentReceivers *UrgentReceivers `body:""`
  8442  }
  8443  
  8444  type UrgentPhoneMessageRespData struct {
  8445  	InvalidUserIdList []string `json:"invalid_user_id_list,omitempty"` // 无效的用户ID
  8446  }
  8447  
  8448  type UrgentPhoneMessageResp struct {
  8449  	*larkcore.ApiResp `json:"-"`
  8450  	larkcore.CodeError
  8451  	Data *UrgentPhoneMessageRespData `json:"data"` // 业务数据
  8452  }
  8453  
  8454  func (resp *UrgentPhoneMessageResp) Success() bool {
  8455  	return resp.Code == 0
  8456  }
  8457  
  8458  type UrgentSmsMessageReqBuilder struct {
  8459  	apiReq          *larkcore.ApiReq
  8460  	urgentReceivers *UrgentReceivers
  8461  }
  8462  
  8463  func NewUrgentSmsMessageReqBuilder() *UrgentSmsMessageReqBuilder {
  8464  	builder := &UrgentSmsMessageReqBuilder{}
  8465  	builder.apiReq = &larkcore.ApiReq{
  8466  		PathParams:  larkcore.PathParams{},
  8467  		QueryParams: larkcore.QueryParams{},
  8468  	}
  8469  	return builder
  8470  }
  8471  
  8472  // 待加急的消息ID。注意不支持批量消息ID(bm_xxx)
  8473  //
  8474  // 示例值:om_dc13264520392913993dd051dba21dcf
  8475  func (builder *UrgentSmsMessageReqBuilder) MessageId(messageId string) *UrgentSmsMessageReqBuilder {
  8476  	builder.apiReq.PathParams.Set("message_id", fmt.Sprint(messageId))
  8477  	return builder
  8478  }
  8479  
  8480  // 此次调用中使用的用户ID的类型
  8481  //
  8482  // 示例值:
  8483  func (builder *UrgentSmsMessageReqBuilder) UserIdType(userIdType string) *UrgentSmsMessageReqBuilder {
  8484  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  8485  	return builder
  8486  }
  8487  
  8488  // 对指定消息进行应用内加急与短信加急。
  8489  func (builder *UrgentSmsMessageReqBuilder) UrgentReceivers(urgentReceivers *UrgentReceivers) *UrgentSmsMessageReqBuilder {
  8490  	builder.urgentReceivers = urgentReceivers
  8491  	return builder
  8492  }
  8493  
  8494  func (builder *UrgentSmsMessageReqBuilder) Build() *UrgentSmsMessageReq {
  8495  	req := &UrgentSmsMessageReq{}
  8496  	req.apiReq = &larkcore.ApiReq{}
  8497  	req.apiReq.PathParams = builder.apiReq.PathParams
  8498  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  8499  	req.apiReq.Body = builder.urgentReceivers
  8500  	return req
  8501  }
  8502  
  8503  type UrgentSmsMessageReq struct {
  8504  	apiReq          *larkcore.ApiReq
  8505  	UrgentReceivers *UrgentReceivers `body:""`
  8506  }
  8507  
  8508  type UrgentSmsMessageRespData struct {
  8509  	InvalidUserIdList []string `json:"invalid_user_id_list,omitempty"` // 无效的用户ID
  8510  }
  8511  
  8512  type UrgentSmsMessageResp struct {
  8513  	*larkcore.ApiResp `json:"-"`
  8514  	larkcore.CodeError
  8515  	Data *UrgentSmsMessageRespData `json:"data"` // 业务数据
  8516  }
  8517  
  8518  func (resp *UrgentSmsMessageResp) Success() bool {
  8519  	return resp.Code == 0
  8520  }
  8521  
  8522  type CreateMessageReactionReqBodyBuilder struct {
  8523  	reactionType     *Emoji // reaction资源类型
  8524  	reactionTypeFlag bool
  8525  }
  8526  
  8527  func NewCreateMessageReactionReqBodyBuilder() *CreateMessageReactionReqBodyBuilder {
  8528  	builder := &CreateMessageReactionReqBodyBuilder{}
  8529  	return builder
  8530  }
  8531  
  8532  // reaction资源类型
  8533  //
  8534  //示例值:
  8535  func (builder *CreateMessageReactionReqBodyBuilder) ReactionType(reactionType *Emoji) *CreateMessageReactionReqBodyBuilder {
  8536  	builder.reactionType = reactionType
  8537  	builder.reactionTypeFlag = true
  8538  	return builder
  8539  }
  8540  
  8541  func (builder *CreateMessageReactionReqBodyBuilder) Build() *CreateMessageReactionReqBody {
  8542  	req := &CreateMessageReactionReqBody{}
  8543  	if builder.reactionTypeFlag {
  8544  		req.ReactionType = builder.reactionType
  8545  	}
  8546  	return req
  8547  }
  8548  
  8549  type CreateMessageReactionPathReqBodyBuilder struct {
  8550  	reactionType     *Emoji // reaction资源类型
  8551  	reactionTypeFlag bool
  8552  }
  8553  
  8554  func NewCreateMessageReactionPathReqBodyBuilder() *CreateMessageReactionPathReqBodyBuilder {
  8555  	builder := &CreateMessageReactionPathReqBodyBuilder{}
  8556  	return builder
  8557  }
  8558  
  8559  // reaction资源类型
  8560  //
  8561  // 示例值:
  8562  func (builder *CreateMessageReactionPathReqBodyBuilder) ReactionType(reactionType *Emoji) *CreateMessageReactionPathReqBodyBuilder {
  8563  	builder.reactionType = reactionType
  8564  	builder.reactionTypeFlag = true
  8565  	return builder
  8566  }
  8567  
  8568  func (builder *CreateMessageReactionPathReqBodyBuilder) Build() (*CreateMessageReactionReqBody, error) {
  8569  	req := &CreateMessageReactionReqBody{}
  8570  	if builder.reactionTypeFlag {
  8571  		req.ReactionType = builder.reactionType
  8572  	}
  8573  	return req, nil
  8574  }
  8575  
  8576  type CreateMessageReactionReqBuilder struct {
  8577  	apiReq *larkcore.ApiReq
  8578  	body   *CreateMessageReactionReqBody
  8579  }
  8580  
  8581  func NewCreateMessageReactionReqBuilder() *CreateMessageReactionReqBuilder {
  8582  	builder := &CreateMessageReactionReqBuilder{}
  8583  	builder.apiReq = &larkcore.ApiReq{
  8584  		PathParams:  larkcore.PathParams{},
  8585  		QueryParams: larkcore.QueryParams{},
  8586  	}
  8587  	return builder
  8588  }
  8589  
  8590  // 待添加reaction的消息ID
  8591  //
  8592  // 示例值:om_a8f2294b************a1a38afaac9d
  8593  func (builder *CreateMessageReactionReqBuilder) MessageId(messageId string) *CreateMessageReactionReqBuilder {
  8594  	builder.apiReq.PathParams.Set("message_id", fmt.Sprint(messageId))
  8595  	return builder
  8596  }
  8597  
  8598  // 给指定消息添加指定类型的表情回复(reaction即表情回复,本说明文档统一用“reaction”代称)。
  8599  func (builder *CreateMessageReactionReqBuilder) Body(body *CreateMessageReactionReqBody) *CreateMessageReactionReqBuilder {
  8600  	builder.body = body
  8601  	return builder
  8602  }
  8603  
  8604  func (builder *CreateMessageReactionReqBuilder) Build() *CreateMessageReactionReq {
  8605  	req := &CreateMessageReactionReq{}
  8606  	req.apiReq = &larkcore.ApiReq{}
  8607  	req.apiReq.PathParams = builder.apiReq.PathParams
  8608  	req.apiReq.Body = builder.body
  8609  	return req
  8610  }
  8611  
  8612  type CreateMessageReactionReqBody struct {
  8613  	ReactionType *Emoji `json:"reaction_type,omitempty"` // reaction资源类型
  8614  }
  8615  
  8616  type CreateMessageReactionReq struct {
  8617  	apiReq *larkcore.ApiReq
  8618  	Body   *CreateMessageReactionReqBody `body:""`
  8619  }
  8620  
  8621  type CreateMessageReactionRespData struct {
  8622  	ReactionId   *string   `json:"reaction_id,omitempty"`   // reaction资源ID
  8623  	Operator     *Operator `json:"operator,omitempty"`      // 添加reaction的操作人
  8624  	ActionTime   *string   `json:"action_time,omitempty"`   // reaction动作的的unix timestamp(单位:ms)
  8625  	ReactionType *Emoji    `json:"reaction_type,omitempty"` // reaction资源类型
  8626  }
  8627  
  8628  type CreateMessageReactionResp struct {
  8629  	*larkcore.ApiResp `json:"-"`
  8630  	larkcore.CodeError
  8631  	Data *CreateMessageReactionRespData `json:"data"` // 业务数据
  8632  }
  8633  
  8634  func (resp *CreateMessageReactionResp) Success() bool {
  8635  	return resp.Code == 0
  8636  }
  8637  
  8638  type DeleteMessageReactionReqBuilder struct {
  8639  	apiReq *larkcore.ApiReq
  8640  }
  8641  
  8642  func NewDeleteMessageReactionReqBuilder() *DeleteMessageReactionReqBuilder {
  8643  	builder := &DeleteMessageReactionReqBuilder{}
  8644  	builder.apiReq = &larkcore.ApiReq{
  8645  		PathParams:  larkcore.PathParams{},
  8646  		QueryParams: larkcore.QueryParams{},
  8647  	}
  8648  	return builder
  8649  }
  8650  
  8651  // 待删除reaction的消息ID
  8652  //
  8653  // 示例值:om_8964d1b4*********2b31383276113
  8654  func (builder *DeleteMessageReactionReqBuilder) MessageId(messageId string) *DeleteMessageReactionReqBuilder {
  8655  	builder.apiReq.PathParams.Set("message_id", fmt.Sprint(messageId))
  8656  	return builder
  8657  }
  8658  
  8659  // 待删除reaction的资源id
  8660  //
  8661  // 示例值:ZCaCIjUBVVWSrm5L-3ZTw*************sNa8dHVplEzzSfJVUVLMLcS_
  8662  func (builder *DeleteMessageReactionReqBuilder) ReactionId(reactionId string) *DeleteMessageReactionReqBuilder {
  8663  	builder.apiReq.PathParams.Set("reaction_id", fmt.Sprint(reactionId))
  8664  	return builder
  8665  }
  8666  
  8667  func (builder *DeleteMessageReactionReqBuilder) Build() *DeleteMessageReactionReq {
  8668  	req := &DeleteMessageReactionReq{}
  8669  	req.apiReq = &larkcore.ApiReq{}
  8670  	req.apiReq.PathParams = builder.apiReq.PathParams
  8671  	return req
  8672  }
  8673  
  8674  type DeleteMessageReactionReq struct {
  8675  	apiReq *larkcore.ApiReq
  8676  }
  8677  
  8678  type DeleteMessageReactionRespData struct {
  8679  	ReactionId   *string   `json:"reaction_id,omitempty"`   // reaction资源ID
  8680  	Operator     *Operator `json:"operator,omitempty"`      // 添加reaction的操作人
  8681  	ActionTime   *string   `json:"action_time,omitempty"`   // reaction动作的的unix timestamp(单位:ms)
  8682  	ReactionType *Emoji    `json:"reaction_type,omitempty"` // reaction资源类型
  8683  }
  8684  
  8685  type DeleteMessageReactionResp struct {
  8686  	*larkcore.ApiResp `json:"-"`
  8687  	larkcore.CodeError
  8688  	Data *DeleteMessageReactionRespData `json:"data"` // 业务数据
  8689  }
  8690  
  8691  func (resp *DeleteMessageReactionResp) Success() bool {
  8692  	return resp.Code == 0
  8693  }
  8694  
  8695  type ListMessageReactionReqBuilder struct {
  8696  	apiReq *larkcore.ApiReq
  8697  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  8698  }
  8699  
  8700  func NewListMessageReactionReqBuilder() *ListMessageReactionReqBuilder {
  8701  	builder := &ListMessageReactionReqBuilder{}
  8702  	builder.apiReq = &larkcore.ApiReq{
  8703  		PathParams:  larkcore.PathParams{},
  8704  		QueryParams: larkcore.QueryParams{},
  8705  	}
  8706  	return builder
  8707  }
  8708  
  8709  // 最大返回多少记录,当使用迭代器访问时才有效
  8710  func (builder *ListMessageReactionReqBuilder) Limit(limit int) *ListMessageReactionReqBuilder {
  8711  	builder.limit = limit
  8712  	return builder
  8713  }
  8714  
  8715  // 待获取reaction的消息ID
  8716  //
  8717  // 示例值:om_8964d1b4*********2b31383276113
  8718  func (builder *ListMessageReactionReqBuilder) MessageId(messageId string) *ListMessageReactionReqBuilder {
  8719  	builder.apiReq.PathParams.Set("message_id", fmt.Sprint(messageId))
  8720  	return builder
  8721  }
  8722  
  8723  // 待查询消息reaction的类型[emoji类型列举](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/message-reaction/emojis-introduce)。;;- 不传入该参数,表示拉取所有类型reaction
  8724  //
  8725  // 示例值:LAUGH
  8726  func (builder *ListMessageReactionReqBuilder) ReactionType(reactionType string) *ListMessageReactionReqBuilder {
  8727  	builder.apiReq.QueryParams.Set("reaction_type", fmt.Sprint(reactionType))
  8728  	return builder
  8729  }
  8730  
  8731  // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时,会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果
  8732  //
  8733  // 示例值:YhljsPiGfUgnVAg9urvRFd-BvSqRL20wMZNAWfa9xXkud6UKCybPuUgQ1vM26dj6
  8734  func (builder *ListMessageReactionReqBuilder) PageToken(pageToken string) *ListMessageReactionReqBuilder {
  8735  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  8736  	return builder
  8737  }
  8738  
  8739  // 分页大小
  8740  //
  8741  // 示例值:10
  8742  func (builder *ListMessageReactionReqBuilder) PageSize(pageSize int) *ListMessageReactionReqBuilder {
  8743  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  8744  	return builder
  8745  }
  8746  
  8747  // 当操作人为用户时返回用户ID的类型
  8748  //
  8749  // 示例值:
  8750  func (builder *ListMessageReactionReqBuilder) UserIdType(userIdType string) *ListMessageReactionReqBuilder {
  8751  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  8752  	return builder
  8753  }
  8754  
  8755  func (builder *ListMessageReactionReqBuilder) Build() *ListMessageReactionReq {
  8756  	req := &ListMessageReactionReq{}
  8757  	req.apiReq = &larkcore.ApiReq{}
  8758  	req.Limit = builder.limit
  8759  	req.apiReq.PathParams = builder.apiReq.PathParams
  8760  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  8761  	return req
  8762  }
  8763  
  8764  type ListMessageReactionReq struct {
  8765  	apiReq *larkcore.ApiReq
  8766  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
  8767  
  8768  }
  8769  
  8770  type ListMessageReactionRespData struct {
  8771  	Items     []*MessageReaction `json:"items,omitempty"`      //  查询指定reaction_type返回的reaction列表
  8772  	HasMore   *bool              `json:"has_more,omitempty"`   // 是否还有后续翻页
  8773  	PageToken *string            `json:"page_token,omitempty"` //  下一页分页的token
  8774  }
  8775  
  8776  type ListMessageReactionResp struct {
  8777  	*larkcore.ApiResp `json:"-"`
  8778  	larkcore.CodeError
  8779  	Data *ListMessageReactionRespData `json:"data"` // 业务数据
  8780  }
  8781  
  8782  func (resp *ListMessageReactionResp) Success() bool {
  8783  	return resp.Code == 0
  8784  }
  8785  
  8786  type GetMessageResourceReqBuilder struct {
  8787  	apiReq *larkcore.ApiReq
  8788  }
  8789  
  8790  func NewGetMessageResourceReqBuilder() *GetMessageResourceReqBuilder {
  8791  	builder := &GetMessageResourceReqBuilder{}
  8792  	builder.apiReq = &larkcore.ApiReq{
  8793  		PathParams:  larkcore.PathParams{},
  8794  		QueryParams: larkcore.QueryParams{},
  8795  	}
  8796  	return builder
  8797  }
  8798  
  8799  // 待查询资源对应的消息ID
  8800  //
  8801  // 示例值:om_dc13264520392913993dd051dba21dcf
  8802  func (builder *GetMessageResourceReqBuilder) MessageId(messageId string) *GetMessageResourceReqBuilder {
  8803  	builder.apiReq.PathParams.Set("message_id", fmt.Sprint(messageId))
  8804  	return builder
  8805  }
  8806  
  8807  // 待查询资源的key
  8808  //
  8809  // 示例值:file_456a92d6-c6ea-4de4-ac3f-7afcf44ac78g
  8810  func (builder *GetMessageResourceReqBuilder) FileKey(fileKey string) *GetMessageResourceReqBuilder {
  8811  	builder.apiReq.PathParams.Set("file_key", fmt.Sprint(fileKey))
  8812  	return builder
  8813  }
  8814  
  8815  // 资源类型,可选"image, file“; image对应消息中的 图片,富文本消息中的图片。  file对应消息中的 文件、音频、视频、(表情包除外)
  8816  //
  8817  // 示例值:image
  8818  func (builder *GetMessageResourceReqBuilder) Type(type_ string) *GetMessageResourceReqBuilder {
  8819  	builder.apiReq.QueryParams.Set("type", fmt.Sprint(type_))
  8820  	return builder
  8821  }
  8822  
  8823  func (builder *GetMessageResourceReqBuilder) Build() *GetMessageResourceReq {
  8824  	req := &GetMessageResourceReq{}
  8825  	req.apiReq = &larkcore.ApiReq{}
  8826  	req.apiReq.PathParams = builder.apiReq.PathParams
  8827  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  8828  	return req
  8829  }
  8830  
  8831  type GetMessageResourceReq struct {
  8832  	apiReq *larkcore.ApiReq
  8833  }
  8834  
  8835  type GetMessageResourceResp struct {
  8836  	*larkcore.ApiResp `json:"-"`
  8837  	larkcore.CodeError
  8838  	File     io.Reader `json:"-"`
  8839  	FileName string    `json:"-"`
  8840  }
  8841  
  8842  func (resp *GetMessageResourceResp) Success() bool {
  8843  	return resp.Code == 0
  8844  }
  8845  
  8846  func (resp *GetMessageResourceResp) WriteFile(fileName string) error {
  8847  	bs, err := ioutil.ReadAll(resp.File)
  8848  	if err != nil {
  8849  		return err
  8850  	}
  8851  
  8852  	err = ioutil.WriteFile(fileName, bs, 0666)
  8853  	if err != nil {
  8854  		return err
  8855  	}
  8856  	return nil
  8857  }
  8858  
  8859  type P2ChatDisbandedV1Data struct {
  8860  	ChatId            *string `json:"chat_id,omitempty"`             // 群组 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  8861  	OperatorId        *UserId `json:"operator_id,omitempty"`         // 用户 ID
  8862  	External          *bool   `json:"external,omitempty"`            // 是否是外部群
  8863  	OperatorTenantKey *string `json:"operator_tenant_key,omitempty"` // 操作者的租户 Key
  8864  }
  8865  
  8866  type P2ChatDisbandedV1 struct {
  8867  	*larkevent.EventV2Base                        // 事件基础数据
  8868  	*larkevent.EventReq                           // 请求原生数据
  8869  	Event                  *P2ChatDisbandedV1Data `json:"event"` // 事件内容
  8870  }
  8871  
  8872  func (m *P2ChatDisbandedV1) RawReq(req *larkevent.EventReq) {
  8873  	m.EventReq = req
  8874  }
  8875  
  8876  type P2ChatUpdatedV1Data struct {
  8877  	ChatId            *string        `json:"chat_id,omitempty"`             // 群组 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  8878  	OperatorId        *UserId        `json:"operator_id,omitempty"`         // 用户 ID
  8879  	External          *bool          `json:"external,omitempty"`            // 是否是外部群
  8880  	OperatorTenantKey *string        `json:"operator_tenant_key,omitempty"` // 操作者租户 Key
  8881  	AfterChange       *ChatChange    `json:"after_change,omitempty"`        // 更新后的群信息
  8882  	BeforeChange      *ChatChange    `json:"before_change,omitempty"`       // 更新前的群信息
  8883  	ModeratorList     *ModeratorList `json:"moderator_list,omitempty"`      // 群可发言成员名单的变更信息
  8884  }
  8885  
  8886  type P2ChatUpdatedV1 struct {
  8887  	*larkevent.EventV2Base                      // 事件基础数据
  8888  	*larkevent.EventReq                         // 请求原生数据
  8889  	Event                  *P2ChatUpdatedV1Data `json:"event"` // 事件内容
  8890  }
  8891  
  8892  func (m *P2ChatUpdatedV1) RawReq(req *larkevent.EventReq) {
  8893  	m.EventReq = req
  8894  }
  8895  
  8896  type P2ChatMemberBotAddedV1Data struct {
  8897  	ChatId            *string `json:"chat_id,omitempty"`             // 群组 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  8898  	OperatorId        *UserId `json:"operator_id,omitempty"`         // 用户 ID
  8899  	External          *bool   `json:"external,omitempty"`            // 是否是外部群
  8900  	OperatorTenantKey *string `json:"operator_tenant_key,omitempty"` // operator tenant key
  8901  }
  8902  
  8903  type P2ChatMemberBotAddedV1 struct {
  8904  	*larkevent.EventV2Base                             // 事件基础数据
  8905  	*larkevent.EventReq                                // 请求原生数据
  8906  	Event                  *P2ChatMemberBotAddedV1Data `json:"event"` // 事件内容
  8907  }
  8908  
  8909  func (m *P2ChatMemberBotAddedV1) RawReq(req *larkevent.EventReq) {
  8910  	m.EventReq = req
  8911  }
  8912  
  8913  type P2ChatMemberBotDeletedV1Data struct {
  8914  	ChatId            *string `json:"chat_id,omitempty"`             // 群组 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  8915  	OperatorId        *UserId `json:"operator_id,omitempty"`         // 用户 ID
  8916  	External          *bool   `json:"external,omitempty"`            // 是否是外部群
  8917  	OperatorTenantKey *string `json:"operator_tenant_key,omitempty"` // 操作者租户 Key
  8918  }
  8919  
  8920  type P2ChatMemberBotDeletedV1 struct {
  8921  	*larkevent.EventV2Base                               // 事件基础数据
  8922  	*larkevent.EventReq                                  // 请求原生数据
  8923  	Event                  *P2ChatMemberBotDeletedV1Data `json:"event"` // 事件内容
  8924  }
  8925  
  8926  func (m *P2ChatMemberBotDeletedV1) RawReq(req *larkevent.EventReq) {
  8927  	m.EventReq = req
  8928  }
  8929  
  8930  type P2ChatMemberUserAddedV1Data struct {
  8931  	ChatId            *string           `json:"chat_id,omitempty"`             // 群组 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  8932  	OperatorId        *UserId           `json:"operator_id,omitempty"`         // 用户 ID
  8933  	External          *bool             `json:"external,omitempty"`            // 是否是外部群
  8934  	OperatorTenantKey *string           `json:"operator_tenant_key,omitempty"` // 操作者租户 Key
  8935  	Users             []*ChatMemberUser `json:"users,omitempty"`               // 被添加的用户列表
  8936  }
  8937  
  8938  type P2ChatMemberUserAddedV1 struct {
  8939  	*larkevent.EventV2Base                              // 事件基础数据
  8940  	*larkevent.EventReq                                 // 请求原生数据
  8941  	Event                  *P2ChatMemberUserAddedV1Data `json:"event"` // 事件内容
  8942  }
  8943  
  8944  func (m *P2ChatMemberUserAddedV1) RawReq(req *larkevent.EventReq) {
  8945  	m.EventReq = req
  8946  }
  8947  
  8948  type P2ChatMemberUserDeletedV1Data struct {
  8949  	ChatId            *string           `json:"chat_id,omitempty"`             // 群组 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  8950  	OperatorId        *UserId           `json:"operator_id,omitempty"`         // 用户 ID
  8951  	External          *bool             `json:"external,omitempty"`            // 是否是外部群
  8952  	OperatorTenantKey *string           `json:"operator_tenant_key,omitempty"` // 操作者租户 Key
  8953  	Users             []*ChatMemberUser `json:"users,omitempty"`               // 被移除用户列表
  8954  }
  8955  
  8956  type P2ChatMemberUserDeletedV1 struct {
  8957  	*larkevent.EventV2Base                                // 事件基础数据
  8958  	*larkevent.EventReq                                   // 请求原生数据
  8959  	Event                  *P2ChatMemberUserDeletedV1Data `json:"event"` // 事件内容
  8960  }
  8961  
  8962  func (m *P2ChatMemberUserDeletedV1) RawReq(req *larkevent.EventReq) {
  8963  	m.EventReq = req
  8964  }
  8965  
  8966  type P2ChatMemberUserWithdrawnV1Data struct {
  8967  	ChatId            *string           `json:"chat_id,omitempty"`             // 群组 ID,详情参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  8968  	OperatorId        *UserId           `json:"operator_id,omitempty"`         // 用户 ID
  8969  	External          *bool             `json:"external,omitempty"`            // 是否是外部群
  8970  	OperatorTenantKey *string           `json:"operator_tenant_key,omitempty"` // operator tenant key
  8971  	Users             []*ChatMemberUser `json:"users,omitempty"`               // 被撤销加群的用户列表
  8972  }
  8973  
  8974  type P2ChatMemberUserWithdrawnV1 struct {
  8975  	*larkevent.EventV2Base                                  // 事件基础数据
  8976  	*larkevent.EventReq                                     // 请求原生数据
  8977  	Event                  *P2ChatMemberUserWithdrawnV1Data `json:"event"` // 事件内容
  8978  }
  8979  
  8980  func (m *P2ChatMemberUserWithdrawnV1) RawReq(req *larkevent.EventReq) {
  8981  	m.EventReq = req
  8982  }
  8983  
  8984  type P2MessageReadV1Data struct {
  8985  	Reader        *EventMessageReader `json:"reader,omitempty"`          // -
  8986  	MessageIdList []string            `json:"message_id_list,omitempty"` // 消息列表
  8987  }
  8988  
  8989  type P2MessageReadV1 struct {
  8990  	*larkevent.EventV2Base                      // 事件基础数据
  8991  	*larkevent.EventReq                         // 请求原生数据
  8992  	Event                  *P2MessageReadV1Data `json:"event"` // 事件内容
  8993  }
  8994  
  8995  func (m *P2MessageReadV1) RawReq(req *larkevent.EventReq) {
  8996  	m.EventReq = req
  8997  }
  8998  
  8999  type P2MessageReceiveV1Data struct {
  9000  	Sender  *EventSender  `json:"sender,omitempty"`  // 事件的发送者
  9001  	Message *EventMessage `json:"message,omitempty"` // 事件中包含的消息内容
  9002  }
  9003  
  9004  type P2MessageReceiveV1 struct {
  9005  	*larkevent.EventV2Base                         // 事件基础数据
  9006  	*larkevent.EventReq                            // 请求原生数据
  9007  	Event                  *P2MessageReceiveV1Data `json:"event"` // 事件内容
  9008  }
  9009  
  9010  func (m *P2MessageReceiveV1) RawReq(req *larkevent.EventReq) {
  9011  	m.EventReq = req
  9012  }
  9013  
  9014  type P2MessageReactionCreatedV1Data struct {
  9015  	MessageId    *string `json:"message_id,omitempty"`    // 消息的 open_message_id
  9016  	ReactionType *Emoji  `json:"reaction_type,omitempty"` // 表情回复的资源类型
  9017  	OperatorType *string `json:"operator_type,omitempty"` // 操作人类型
  9018  	UserId       *UserId `json:"user_id,omitempty"`       // 用户 ID
  9019  	AppId        *string `json:"app_id,omitempty"`        // 应用 ID
  9020  	ActionTime   *string `json:"action_time,omitempty"`   // 添加表情回复时间戳(单位:ms)
  9021  }
  9022  
  9023  type P2MessageReactionCreatedV1 struct {
  9024  	*larkevent.EventV2Base                                 // 事件基础数据
  9025  	*larkevent.EventReq                                    // 请求原生数据
  9026  	Event                  *P2MessageReactionCreatedV1Data `json:"event"` // 事件内容
  9027  }
  9028  
  9029  func (m *P2MessageReactionCreatedV1) RawReq(req *larkevent.EventReq) {
  9030  	m.EventReq = req
  9031  }
  9032  
  9033  type P2MessageReactionDeletedV1Data struct {
  9034  	MessageId    *string `json:"message_id,omitempty"`    // 消息的 open_message_id
  9035  	ReactionType *Emoji  `json:"reaction_type,omitempty"` // 表情回复的资源类型
  9036  	OperatorType *string `json:"operator_type,omitempty"` // 操作人类型
  9037  	UserId       *UserId `json:"user_id,omitempty"`       // 用户 ID
  9038  	AppId        *string `json:"app_id,omitempty"`        // 应用 ID
  9039  	ActionTime   *string `json:"action_time,omitempty"`   // 表情回复被添加时的时间戳(单位:ms)
  9040  }
  9041  
  9042  type P2MessageReactionDeletedV1 struct {
  9043  	*larkevent.EventV2Base                                 // 事件基础数据
  9044  	*larkevent.EventReq                                    // 请求原生数据
  9045  	Event                  *P2MessageReactionDeletedV1Data `json:"event"` // 事件内容
  9046  }
  9047  
  9048  func (m *P2MessageReactionDeletedV1) RawReq(req *larkevent.EventReq) {
  9049  	m.EventReq = req
  9050  }
  9051  
  9052  type ListChatIterator struct {
  9053  	nextPageToken *string
  9054  	items         []*ListChat
  9055  	index         int
  9056  	limit         int
  9057  	ctx           context.Context
  9058  	req           *ListChatReq
  9059  	listFunc      func(ctx context.Context, req *ListChatReq, options ...larkcore.RequestOptionFunc) (*ListChatResp, error)
  9060  	options       []larkcore.RequestOptionFunc
  9061  	curlNum       int
  9062  }
  9063  
  9064  func (iterator *ListChatIterator) Next() (bool, *ListChat, error) {
  9065  	// 达到最大量,则返回
  9066  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  9067  		return false, nil, nil
  9068  	}
  9069  
  9070  	// 为0则拉取数据
  9071  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  9072  		if iterator.index != 0 && iterator.nextPageToken == nil {
  9073  			return false, nil, nil
  9074  		}
  9075  		if iterator.nextPageToken != nil {
  9076  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  9077  		}
  9078  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  9079  		if err != nil {
  9080  			return false, nil, err
  9081  		}
  9082  
  9083  		if resp.Code != 0 {
  9084  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  9085  		}
  9086  
  9087  		if len(resp.Data.Items) == 0 {
  9088  			return false, nil, nil
  9089  		}
  9090  
  9091  		iterator.nextPageToken = resp.Data.PageToken
  9092  		iterator.items = resp.Data.Items
  9093  		iterator.index = 0
  9094  	}
  9095  
  9096  	block := iterator.items[iterator.index]
  9097  	iterator.index++
  9098  	iterator.curlNum++
  9099  	return true, block, nil
  9100  }
  9101  
  9102  func (iterator *ListChatIterator) NextPageToken() *string {
  9103  	return iterator.nextPageToken
  9104  }
  9105  
  9106  type SearchChatIterator struct {
  9107  	nextPageToken *string
  9108  	items         []*ListChat
  9109  	index         int
  9110  	limit         int
  9111  	ctx           context.Context
  9112  	req           *SearchChatReq
  9113  	listFunc      func(ctx context.Context, req *SearchChatReq, options ...larkcore.RequestOptionFunc) (*SearchChatResp, error)
  9114  	options       []larkcore.RequestOptionFunc
  9115  	curlNum       int
  9116  }
  9117  
  9118  func (iterator *SearchChatIterator) Next() (bool, *ListChat, error) {
  9119  	// 达到最大量,则返回
  9120  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  9121  		return false, nil, nil
  9122  	}
  9123  
  9124  	// 为0则拉取数据
  9125  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  9126  		if iterator.index != 0 && iterator.nextPageToken == nil {
  9127  			return false, nil, nil
  9128  		}
  9129  		if iterator.nextPageToken != nil {
  9130  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  9131  		}
  9132  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  9133  		if err != nil {
  9134  			return false, nil, err
  9135  		}
  9136  
  9137  		if resp.Code != 0 {
  9138  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  9139  		}
  9140  
  9141  		if len(resp.Data.Items) == 0 {
  9142  			return false, nil, nil
  9143  		}
  9144  
  9145  		iterator.nextPageToken = resp.Data.PageToken
  9146  		iterator.items = resp.Data.Items
  9147  		iterator.index = 0
  9148  	}
  9149  
  9150  	block := iterator.items[iterator.index]
  9151  	iterator.index++
  9152  	iterator.curlNum++
  9153  	return true, block, nil
  9154  }
  9155  
  9156  func (iterator *SearchChatIterator) NextPageToken() *string {
  9157  	return iterator.nextPageToken
  9158  }
  9159  
  9160  type GetChatMembersIterator struct {
  9161  	nextPageToken *string
  9162  	items         []*ListMember
  9163  	index         int
  9164  	limit         int
  9165  	ctx           context.Context
  9166  	req           *GetChatMembersReq
  9167  	listFunc      func(ctx context.Context, req *GetChatMembersReq, options ...larkcore.RequestOptionFunc) (*GetChatMembersResp, error)
  9168  	options       []larkcore.RequestOptionFunc
  9169  	curlNum       int
  9170  }
  9171  
  9172  func (iterator *GetChatMembersIterator) Next() (bool, *ListMember, error) {
  9173  	// 达到最大量,则返回
  9174  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  9175  		return false, nil, nil
  9176  	}
  9177  
  9178  	// 为0则拉取数据
  9179  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  9180  		if iterator.index != 0 && iterator.nextPageToken == nil {
  9181  			return false, nil, nil
  9182  		}
  9183  		if iterator.nextPageToken != nil {
  9184  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  9185  		}
  9186  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  9187  		if err != nil {
  9188  			return false, nil, err
  9189  		}
  9190  
  9191  		if resp.Code != 0 {
  9192  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  9193  		}
  9194  
  9195  		if len(resp.Data.Items) == 0 {
  9196  			return false, nil, nil
  9197  		}
  9198  
  9199  		iterator.nextPageToken = resp.Data.PageToken
  9200  		iterator.items = resp.Data.Items
  9201  		iterator.index = 0
  9202  	}
  9203  
  9204  	block := iterator.items[iterator.index]
  9205  	iterator.index++
  9206  	iterator.curlNum++
  9207  	return true, block, nil
  9208  }
  9209  
  9210  func (iterator *GetChatMembersIterator) NextPageToken() *string {
  9211  	return iterator.nextPageToken
  9212  }
  9213  
  9214  type GetChatModerationIterator struct {
  9215  	nextPageToken *string
  9216  	items         []*ListModerator
  9217  	index         int
  9218  	limit         int
  9219  	ctx           context.Context
  9220  	req           *GetChatModerationReq
  9221  	listFunc      func(ctx context.Context, req *GetChatModerationReq, options ...larkcore.RequestOptionFunc) (*GetChatModerationResp, error)
  9222  	options       []larkcore.RequestOptionFunc
  9223  	curlNum       int
  9224  }
  9225  
  9226  func (iterator *GetChatModerationIterator) Next() (bool, *ListModerator, error) {
  9227  	// 达到最大量,则返回
  9228  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  9229  		return false, nil, nil
  9230  	}
  9231  
  9232  	// 为0则拉取数据
  9233  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  9234  		if iterator.index != 0 && iterator.nextPageToken == nil {
  9235  			return false, nil, nil
  9236  		}
  9237  		if iterator.nextPageToken != nil {
  9238  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  9239  		}
  9240  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  9241  		if err != nil {
  9242  			return false, nil, err
  9243  		}
  9244  
  9245  		if resp.Code != 0 {
  9246  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  9247  		}
  9248  
  9249  		if len(resp.Data.Items) == 0 {
  9250  			return false, nil, nil
  9251  		}
  9252  
  9253  		iterator.nextPageToken = resp.Data.PageToken
  9254  		iterator.items = resp.Data.Items
  9255  		iterator.index = 0
  9256  	}
  9257  
  9258  	block := iterator.items[iterator.index]
  9259  	iterator.index++
  9260  	iterator.curlNum++
  9261  	return true, block, nil
  9262  }
  9263  
  9264  func (iterator *GetChatModerationIterator) NextPageToken() *string {
  9265  	return iterator.nextPageToken
  9266  }
  9267  
  9268  type ListMessageIterator struct {
  9269  	nextPageToken *string
  9270  	items         []*Message
  9271  	index         int
  9272  	limit         int
  9273  	ctx           context.Context
  9274  	req           *ListMessageReq
  9275  	listFunc      func(ctx context.Context, req *ListMessageReq, options ...larkcore.RequestOptionFunc) (*ListMessageResp, error)
  9276  	options       []larkcore.RequestOptionFunc
  9277  	curlNum       int
  9278  }
  9279  
  9280  func (iterator *ListMessageIterator) Next() (bool, *Message, error) {
  9281  	// 达到最大量,则返回
  9282  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  9283  		return false, nil, nil
  9284  	}
  9285  
  9286  	// 为0则拉取数据
  9287  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  9288  		if iterator.index != 0 && iterator.nextPageToken == nil {
  9289  			return false, nil, nil
  9290  		}
  9291  		if iterator.nextPageToken != nil {
  9292  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  9293  		}
  9294  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  9295  		if err != nil {
  9296  			return false, nil, err
  9297  		}
  9298  
  9299  		if resp.Code != 0 {
  9300  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  9301  		}
  9302  
  9303  		if len(resp.Data.Items) == 0 {
  9304  			return false, nil, nil
  9305  		}
  9306  
  9307  		iterator.nextPageToken = resp.Data.PageToken
  9308  		iterator.items = resp.Data.Items
  9309  		iterator.index = 0
  9310  	}
  9311  
  9312  	block := iterator.items[iterator.index]
  9313  	iterator.index++
  9314  	iterator.curlNum++
  9315  	return true, block, nil
  9316  }
  9317  
  9318  func (iterator *ListMessageIterator) NextPageToken() *string {
  9319  	return iterator.nextPageToken
  9320  }
  9321  
  9322  type ListMessageReactionIterator struct {
  9323  	nextPageToken *string
  9324  	items         []*MessageReaction
  9325  	index         int
  9326  	limit         int
  9327  	ctx           context.Context
  9328  	req           *ListMessageReactionReq
  9329  	listFunc      func(ctx context.Context, req *ListMessageReactionReq, options ...larkcore.RequestOptionFunc) (*ListMessageReactionResp, error)
  9330  	options       []larkcore.RequestOptionFunc
  9331  	curlNum       int
  9332  }
  9333  
  9334  func (iterator *ListMessageReactionIterator) Next() (bool, *MessageReaction, error) {
  9335  	// 达到最大量,则返回
  9336  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  9337  		return false, nil, nil
  9338  	}
  9339  
  9340  	// 为0则拉取数据
  9341  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  9342  		if iterator.index != 0 && iterator.nextPageToken == nil {
  9343  			return false, nil, nil
  9344  		}
  9345  		if iterator.nextPageToken != nil {
  9346  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  9347  		}
  9348  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  9349  		if err != nil {
  9350  			return false, nil, err
  9351  		}
  9352  
  9353  		if resp.Code != 0 {
  9354  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  9355  		}
  9356  
  9357  		if len(resp.Data.Items) == 0 {
  9358  			return false, nil, nil
  9359  		}
  9360  
  9361  		iterator.nextPageToken = resp.Data.PageToken
  9362  		iterator.items = resp.Data.Items
  9363  		iterator.index = 0
  9364  	}
  9365  
  9366  	block := iterator.items[iterator.index]
  9367  	iterator.index++
  9368  	iterator.curlNum++
  9369  	return true, block, nil
  9370  }
  9371  
  9372  func (iterator *ListMessageReactionIterator) NextPageToken() *string {
  9373  	return iterator.nextPageToken
  9374  }