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

     1  // Package mail 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 larkmail
    15  
    16  import (
    17  	"fmt"
    18  
    19  	"context"
    20  	"errors"
    21  
    22  	"gitee.com/larksuite/oapi-sdk-go/v3/core"
    23  )
    24  
    25  const (
    26  	WhoCanSendMailANYONE           = "ANYONE"             // Any Internet user can send mail to this mail group
    27  	WhoCanSendMailALLINTERNALUSERS = "ALL_INTERNAL_USERS" // Anyone in the team can send mail to this mail group
    28  	WhoCanSendMailALLGROUPMEMBERS  = "ALL_GROUP_MEMBERS"  // Any group member can send mail to this mail group
    29  	WhoCanSendMailCUSTOMMEMBERS    = "CUSTOM_MEMBERS"     // Only custom members can send mail to this mail group, define in mailgroup.permission_members resoure
    30  )
    31  
    32  const (
    33  	UserIdTypeUserId  = "user_id"  // 以user_id来识别用户
    34  	UserIdTypeUnionId = "union_id" // 以union_id来识别用户
    35  	UserIdTypeOpenId  = "open_id"  // 以open_id来识别用户
    36  )
    37  
    38  const (
    39  	WhoCanSendMailPatchMailgroupANYONE           = "ANYONE"             // Any Internet user can send mail to this mail group
    40  	WhoCanSendMailPatchMailgroupALLINTERNALUSERS = "ALL_INTERNAL_USERS" // Anyone in the team can send mail to this mail group
    41  	WhoCanSendMailPatchMailgroupALLGROUPMEMBERS  = "ALL_GROUP_MEMBERS"  // Any group member can send mail to this mail group
    42  	WhoCanSendMailPatchMailgroupCUSTOMMEMBERS    = "CUSTOM_MEMBERS"     // Only custom members can send mail to this mail group, define in mailgroup.permission_members resoure
    43  )
    44  
    45  const (
    46  	WhoCanSendMailUpdateMailgroupANYONE           = "ANYONE"             // Any Internet user can send mail to this mail group
    47  	WhoCanSendMailUpdateMailgroupALLINTERNALUSERS = "ALL_INTERNAL_USERS" // Anyone in the team can send mail to this mail group
    48  	WhoCanSendMailUpdateMailgroupALLGROUPMEMBERS  = "ALL_GROUP_MEMBERS"  // Any group member can send mail to this mail group
    49  	WhoCanSendMailUpdateMailgroupCUSTOMMEMBERS    = "CUSTOM_MEMBERS"     // Only custom members can send mail to this mail group, define in mailgroup.permission_members resoure
    50  )
    51  
    52  const (
    53  	TypeUSER          = "USER"           // internal user in the team
    54  	TypeDEPARTMENT    = "DEPARTMENT"     // member is a department
    55  	TypeCOMPANY       = "COMPANY"        // member is the company
    56  	TypeEXTERNALUSER  = "EXTERNAL_USER"  // internet user outside the organization
    57  	TypeMAILGROUP     = "MAIL_GROUP"     // member is another mail group
    58  	TypePUBLICMAILBOX = "PUBLIC_MAILBOX" // member is a public mailbox
    59  	TypeOTHERMEMBER   = "OTHER_MEMBER"   // other internal member
    60  )
    61  
    62  const (
    63  	UserIdTypeCreateMailgroupMemberUserId  = "user_id"  // 以user_id来识别用户
    64  	UserIdTypeCreateMailgroupMemberUnionId = "union_id" // 以union_id来识别用户
    65  	UserIdTypeCreateMailgroupMemberOpenId  = "open_id"  // 以open_id来识别用户
    66  )
    67  
    68  const (
    69  	DepartmentIdTypeDepartmentId     = "department_id"      // 以自定义department_id来标识部门
    70  	DepartmentIdTypeOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
    71  )
    72  
    73  const (
    74  	UserIdTypeGetMailgroupMemberUserId  = "user_id"  // 以user_id来识别用户
    75  	UserIdTypeGetMailgroupMemberUnionId = "union_id" // 以union_id来识别用户
    76  	UserIdTypeGetMailgroupMemberOpenId  = "open_id"  // 以open_id来识别用户
    77  )
    78  
    79  const (
    80  	DepartmentIdTypeGetMailgroupMemberDepartmentId     = "department_id"      // 以自定义department_id来标识部门
    81  	DepartmentIdTypeGetMailgroupMemberOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
    82  )
    83  
    84  const (
    85  	UserIdTypeListMailgroupMemberUserId  = "user_id"  // 以user_id来识别用户
    86  	UserIdTypeListMailgroupMemberUnionId = "union_id" // 以union_id来识别用户
    87  	UserIdTypeListMailgroupMemberOpenId  = "open_id"  // 以open_id来识别用户
    88  )
    89  
    90  const (
    91  	DepartmentIdTypeListMailgroupMemberDepartmentId     = "department_id"      // 以自定义department_id来标识部门
    92  	DepartmentIdTypeListMailgroupMemberOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
    93  )
    94  
    95  const (
    96  	TypeCreateMailgroupPermissionMemberUSER       = "USER"       // internal user in the team
    97  	TypeCreateMailgroupPermissionMemberDEPARTMENT = "DEPARTMENT" // member is a department
    98  )
    99  
   100  const (
   101  	UserIdTypeCreateMailgroupPermissionMemberUserId  = "user_id"  // 以user_id来识别用户
   102  	UserIdTypeCreateMailgroupPermissionMemberUnionId = "union_id" // 以union_id来识别用户
   103  	UserIdTypeCreateMailgroupPermissionMemberOpenId  = "open_id"  // 以open_id来识别用户
   104  )
   105  
   106  const (
   107  	DepartmentIdTypeCreateMailgroupPermissionMemberDepartmentId     = "department_id"      // 以自定义department_id来标识部门
   108  	DepartmentIdTypeCreateMailgroupPermissionMemberOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
   109  )
   110  
   111  const (
   112  	UserIdTypeGetMailgroupPermissionMemberUserId  = "user_id"  // 以user_id来识别用户
   113  	UserIdTypeGetMailgroupPermissionMemberUnionId = "union_id" // 以union_id来识别用户
   114  	UserIdTypeGetMailgroupPermissionMemberOpenId  = "open_id"  // 以open_id来识别用户
   115  )
   116  
   117  const (
   118  	DepartmentIdTypeGetMailgroupPermissionMemberDepartmentId     = "department_id"      // 以自定义department_id来标识部门
   119  	DepartmentIdTypeGetMailgroupPermissionMemberOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
   120  )
   121  
   122  const (
   123  	UserIdTypeListMailgroupPermissionMemberUserId  = "user_id"  // 以user_id来识别用户
   124  	UserIdTypeListMailgroupPermissionMemberUnionId = "union_id" // 以union_id来识别用户
   125  	UserIdTypeListMailgroupPermissionMemberOpenId  = "open_id"  // 以open_id来识别用户
   126  )
   127  
   128  const (
   129  	DepartmentIdTypeListMailgroupPermissionMemberDepartmentId     = "department_id"      // 以自定义department_id来标识部门
   130  	DepartmentIdTypeListMailgroupPermissionMemberOpenDepartmentId = "open_department_id" // 以open_department_id来标识部门
   131  )
   132  
   133  const (
   134  	TypeCreatePublicMailboxMemberUSER = "USER" // internal user in the team
   135  )
   136  
   137  const (
   138  	UserIdTypeCreatePublicMailboxMemberUserId  = "user_id"  // 以user_id来识别用户
   139  	UserIdTypeCreatePublicMailboxMemberUnionId = "union_id" // 以union_id来识别用户
   140  	UserIdTypeCreatePublicMailboxMemberOpenId  = "open_id"  // 以open_id来识别用户
   141  )
   142  
   143  const (
   144  	UserIdTypeGetPublicMailboxMemberUserId  = "user_id"  // 以user_id来识别用户
   145  	UserIdTypeGetPublicMailboxMemberUnionId = "union_id" // 以union_id来识别用户
   146  	UserIdTypeGetPublicMailboxMemberOpenId  = "open_id"  // 以open_id来识别用户
   147  )
   148  
   149  const (
   150  	UserIdTypeListPublicMailboxMemberUserId  = "user_id"  // 以user_id来识别用户
   151  	UserIdTypeListPublicMailboxMemberUnionId = "union_id" // 以union_id来识别用户
   152  	UserIdTypeListPublicMailboxMemberOpenId  = "open_id"  // 以open_id来识别用户
   153  )
   154  
   155  type EmailAlias struct {
   156  	PrimaryEmail *string `json:"primary_email,omitempty"` // 主邮箱地址
   157  	EmailAlias   *string `json:"email_alias,omitempty"`   // 邮箱别名
   158  }
   159  
   160  type EmailAliasBuilder struct {
   161  	primaryEmail     string // 主邮箱地址
   162  	primaryEmailFlag bool
   163  	emailAlias       string // 邮箱别名
   164  	emailAliasFlag   bool
   165  }
   166  
   167  func NewEmailAliasBuilder() *EmailAliasBuilder {
   168  	builder := &EmailAliasBuilder{}
   169  	return builder
   170  }
   171  
   172  // 主邮箱地址
   173  //
   174  // 示例值:xxx@xx.xxx
   175  func (builder *EmailAliasBuilder) PrimaryEmail(primaryEmail string) *EmailAliasBuilder {
   176  	builder.primaryEmail = primaryEmail
   177  	builder.primaryEmailFlag = true
   178  	return builder
   179  }
   180  
   181  // 邮箱别名
   182  //
   183  // 示例值:xxx@xx.xxx
   184  func (builder *EmailAliasBuilder) EmailAlias(emailAlias string) *EmailAliasBuilder {
   185  	builder.emailAlias = emailAlias
   186  	builder.emailAliasFlag = true
   187  	return builder
   188  }
   189  
   190  func (builder *EmailAliasBuilder) Build() *EmailAlias {
   191  	req := &EmailAlias{}
   192  	if builder.primaryEmailFlag {
   193  		req.PrimaryEmail = &builder.primaryEmail
   194  
   195  	}
   196  	if builder.emailAliasFlag {
   197  		req.EmailAlias = &builder.emailAlias
   198  
   199  	}
   200  	return req
   201  }
   202  
   203  type Mailgroup struct {
   204  	MailgroupId             *string `json:"mailgroup_id,omitempty"`               // 邮件组ID
   205  	Email                   *string `json:"email,omitempty"`                      // 邮件组地址
   206  	Name                    *string `json:"name,omitempty"`                       // 邮件组名称
   207  	Description             *string `json:"description,omitempty"`                // 邮件组描述
   208  	DirectMembersCount      *string `json:"direct_members_count,omitempty"`       // 邮件组成员数量
   209  	IncludeExternalMember   *bool   `json:"include_external_member,omitempty"`    // 是否包含外部成员
   210  	IncludeAllCompanyMember *bool   `json:"include_all_company_member,omitempty"` // 是否是全员邮件组
   211  	WhoCanSendMail          *string `json:"who_can_send_mail,omitempty"`          // 谁可发送邮件到此邮件组
   212  }
   213  
   214  type MailgroupBuilder struct {
   215  	mailgroupId                 string // 邮件组ID
   216  	mailgroupIdFlag             bool
   217  	email                       string // 邮件组地址
   218  	emailFlag                   bool
   219  	name                        string // 邮件组名称
   220  	nameFlag                    bool
   221  	description                 string // 邮件组描述
   222  	descriptionFlag             bool
   223  	directMembersCount          string // 邮件组成员数量
   224  	directMembersCountFlag      bool
   225  	includeExternalMember       bool // 是否包含外部成员
   226  	includeExternalMemberFlag   bool
   227  	includeAllCompanyMember     bool // 是否是全员邮件组
   228  	includeAllCompanyMemberFlag bool
   229  	whoCanSendMail              string // 谁可发送邮件到此邮件组
   230  	whoCanSendMailFlag          bool
   231  }
   232  
   233  func NewMailgroupBuilder() *MailgroupBuilder {
   234  	builder := &MailgroupBuilder{}
   235  	return builder
   236  }
   237  
   238  // 邮件组ID
   239  //
   240  // 示例值:xxxxxxxxxxxxxxx
   241  func (builder *MailgroupBuilder) MailgroupId(mailgroupId string) *MailgroupBuilder {
   242  	builder.mailgroupId = mailgroupId
   243  	builder.mailgroupIdFlag = true
   244  	return builder
   245  }
   246  
   247  // 邮件组地址
   248  //
   249  // 示例值:test_mail_group@xxx.xx
   250  func (builder *MailgroupBuilder) Email(email string) *MailgroupBuilder {
   251  	builder.email = email
   252  	builder.emailFlag = true
   253  	return builder
   254  }
   255  
   256  // 邮件组名称
   257  //
   258  // 示例值:test mail group
   259  func (builder *MailgroupBuilder) Name(name string) *MailgroupBuilder {
   260  	builder.name = name
   261  	builder.nameFlag = true
   262  	return builder
   263  }
   264  
   265  // 邮件组描述
   266  //
   267  // 示例值:mail group for testing
   268  func (builder *MailgroupBuilder) Description(description string) *MailgroupBuilder {
   269  	builder.description = description
   270  	builder.descriptionFlag = true
   271  	return builder
   272  }
   273  
   274  // 邮件组成员数量
   275  //
   276  // 示例值:10
   277  func (builder *MailgroupBuilder) DirectMembersCount(directMembersCount string) *MailgroupBuilder {
   278  	builder.directMembersCount = directMembersCount
   279  	builder.directMembersCountFlag = true
   280  	return builder
   281  }
   282  
   283  // 是否包含外部成员
   284  //
   285  // 示例值:true
   286  func (builder *MailgroupBuilder) IncludeExternalMember(includeExternalMember bool) *MailgroupBuilder {
   287  	builder.includeExternalMember = includeExternalMember
   288  	builder.includeExternalMemberFlag = true
   289  	return builder
   290  }
   291  
   292  // 是否是全员邮件组
   293  //
   294  // 示例值:false
   295  func (builder *MailgroupBuilder) IncludeAllCompanyMember(includeAllCompanyMember bool) *MailgroupBuilder {
   296  	builder.includeAllCompanyMember = includeAllCompanyMember
   297  	builder.includeAllCompanyMemberFlag = true
   298  	return builder
   299  }
   300  
   301  // 谁可发送邮件到此邮件组
   302  //
   303  // 示例值:ALL_INTERNAL_USERS
   304  func (builder *MailgroupBuilder) WhoCanSendMail(whoCanSendMail string) *MailgroupBuilder {
   305  	builder.whoCanSendMail = whoCanSendMail
   306  	builder.whoCanSendMailFlag = true
   307  	return builder
   308  }
   309  
   310  func (builder *MailgroupBuilder) Build() *Mailgroup {
   311  	req := &Mailgroup{}
   312  	if builder.mailgroupIdFlag {
   313  		req.MailgroupId = &builder.mailgroupId
   314  
   315  	}
   316  	if builder.emailFlag {
   317  		req.Email = &builder.email
   318  
   319  	}
   320  	if builder.nameFlag {
   321  		req.Name = &builder.name
   322  
   323  	}
   324  	if builder.descriptionFlag {
   325  		req.Description = &builder.description
   326  
   327  	}
   328  	if builder.directMembersCountFlag {
   329  		req.DirectMembersCount = &builder.directMembersCount
   330  
   331  	}
   332  	if builder.includeExternalMemberFlag {
   333  		req.IncludeExternalMember = &builder.includeExternalMember
   334  
   335  	}
   336  	if builder.includeAllCompanyMemberFlag {
   337  		req.IncludeAllCompanyMember = &builder.includeAllCompanyMember
   338  
   339  	}
   340  	if builder.whoCanSendMailFlag {
   341  		req.WhoCanSendMail = &builder.whoCanSendMail
   342  
   343  	}
   344  	return req
   345  }
   346  
   347  type MailgroupMember struct {
   348  	MemberId     *string `json:"member_id,omitempty"`     // 邮件组内成员唯一标识
   349  	Email        *string `json:"email,omitempty"`         // 成员邮箱地址(当成员类型是EXTERNAL_USER/MAIL_GROUP/OTHER_MEMBER时有值)
   350  	UserId       *string `json:"user_id,omitempty"`       // 租户内用户的唯一标识(当成员类型是USER时有值)
   351  	DepartmentId *string `json:"department_id,omitempty"` // 租户内部门的唯一标识(当成员类型是DEPARTMENT时有值)
   352  	Type         *string `json:"type,omitempty"`          // 成员类型
   353  }
   354  
   355  type MailgroupMemberBuilder struct {
   356  	memberId         string // 邮件组内成员唯一标识
   357  	memberIdFlag     bool
   358  	email            string // 成员邮箱地址(当成员类型是EXTERNAL_USER/MAIL_GROUP/OTHER_MEMBER时有值)
   359  	emailFlag        bool
   360  	userId           string // 租户内用户的唯一标识(当成员类型是USER时有值)
   361  	userIdFlag       bool
   362  	departmentId     string // 租户内部门的唯一标识(当成员类型是DEPARTMENT时有值)
   363  	departmentIdFlag bool
   364  	type_            string // 成员类型
   365  	typeFlag         bool
   366  }
   367  
   368  func NewMailgroupMemberBuilder() *MailgroupMemberBuilder {
   369  	builder := &MailgroupMemberBuilder{}
   370  	return builder
   371  }
   372  
   373  // 邮件组内成员唯一标识
   374  //
   375  // 示例值:xxxxxxxxxxxxxxx
   376  func (builder *MailgroupMemberBuilder) MemberId(memberId string) *MailgroupMemberBuilder {
   377  	builder.memberId = memberId
   378  	builder.memberIdFlag = true
   379  	return builder
   380  }
   381  
   382  // 成员邮箱地址(当成员类型是EXTERNAL_USER/MAIL_GROUP/OTHER_MEMBER时有值)
   383  //
   384  // 示例值:test_memeber@xxx.xx
   385  func (builder *MailgroupMemberBuilder) Email(email string) *MailgroupMemberBuilder {
   386  	builder.email = email
   387  	builder.emailFlag = true
   388  	return builder
   389  }
   390  
   391  // 租户内用户的唯一标识(当成员类型是USER时有值)
   392  //
   393  // 示例值:xxxxxxxxxx
   394  func (builder *MailgroupMemberBuilder) UserId(userId string) *MailgroupMemberBuilder {
   395  	builder.userId = userId
   396  	builder.userIdFlag = true
   397  	return builder
   398  }
   399  
   400  // 租户内部门的唯一标识(当成员类型是DEPARTMENT时有值)
   401  //
   402  // 示例值:xxxxxxxxxx
   403  func (builder *MailgroupMemberBuilder) DepartmentId(departmentId string) *MailgroupMemberBuilder {
   404  	builder.departmentId = departmentId
   405  	builder.departmentIdFlag = true
   406  	return builder
   407  }
   408  
   409  // 成员类型
   410  //
   411  // 示例值:USER
   412  func (builder *MailgroupMemberBuilder) Type(type_ string) *MailgroupMemberBuilder {
   413  	builder.type_ = type_
   414  	builder.typeFlag = true
   415  	return builder
   416  }
   417  
   418  func (builder *MailgroupMemberBuilder) Build() *MailgroupMember {
   419  	req := &MailgroupMember{}
   420  	if builder.memberIdFlag {
   421  		req.MemberId = &builder.memberId
   422  
   423  	}
   424  	if builder.emailFlag {
   425  		req.Email = &builder.email
   426  
   427  	}
   428  	if builder.userIdFlag {
   429  		req.UserId = &builder.userId
   430  
   431  	}
   432  	if builder.departmentIdFlag {
   433  		req.DepartmentId = &builder.departmentId
   434  
   435  	}
   436  	if builder.typeFlag {
   437  		req.Type = &builder.type_
   438  
   439  	}
   440  	return req
   441  }
   442  
   443  type MailgroupPermissionMember struct {
   444  	PermissionMemberId *string `json:"permission_member_id,omitempty"` // 权限组内成员唯一标识
   445  	UserId             *string `json:"user_id,omitempty"`              // 租户内用户的唯一标识(当成员类型是USER时有值)
   446  	DepartmentId       *string `json:"department_id,omitempty"`        // 租户内部门的唯一标识(当成员类型是DEPARTMENT时有值)
   447  	Type               *string `json:"type,omitempty"`                 // 成员类型
   448  }
   449  
   450  type MailgroupPermissionMemberBuilder struct {
   451  	permissionMemberId     string // 权限组内成员唯一标识
   452  	permissionMemberIdFlag bool
   453  	userId                 string // 租户内用户的唯一标识(当成员类型是USER时有值)
   454  	userIdFlag             bool
   455  	departmentId           string // 租户内部门的唯一标识(当成员类型是DEPARTMENT时有值)
   456  	departmentIdFlag       bool
   457  	type_                  string // 成员类型
   458  	typeFlag               bool
   459  }
   460  
   461  func NewMailgroupPermissionMemberBuilder() *MailgroupPermissionMemberBuilder {
   462  	builder := &MailgroupPermissionMemberBuilder{}
   463  	return builder
   464  }
   465  
   466  // 权限组内成员唯一标识
   467  //
   468  // 示例值:xxxxxxxxxxxxxxx
   469  func (builder *MailgroupPermissionMemberBuilder) PermissionMemberId(permissionMemberId string) *MailgroupPermissionMemberBuilder {
   470  	builder.permissionMemberId = permissionMemberId
   471  	builder.permissionMemberIdFlag = true
   472  	return builder
   473  }
   474  
   475  // 租户内用户的唯一标识(当成员类型是USER时有值)
   476  //
   477  // 示例值:xxxxxxxxxx
   478  func (builder *MailgroupPermissionMemberBuilder) UserId(userId string) *MailgroupPermissionMemberBuilder {
   479  	builder.userId = userId
   480  	builder.userIdFlag = true
   481  	return builder
   482  }
   483  
   484  // 租户内部门的唯一标识(当成员类型是DEPARTMENT时有值)
   485  //
   486  // 示例值:xxxxxxxxxx
   487  func (builder *MailgroupPermissionMemberBuilder) DepartmentId(departmentId string) *MailgroupPermissionMemberBuilder {
   488  	builder.departmentId = departmentId
   489  	builder.departmentIdFlag = true
   490  	return builder
   491  }
   492  
   493  // 成员类型
   494  //
   495  // 示例值:USER
   496  func (builder *MailgroupPermissionMemberBuilder) Type(type_ string) *MailgroupPermissionMemberBuilder {
   497  	builder.type_ = type_
   498  	builder.typeFlag = true
   499  	return builder
   500  }
   501  
   502  func (builder *MailgroupPermissionMemberBuilder) Build() *MailgroupPermissionMember {
   503  	req := &MailgroupPermissionMember{}
   504  	if builder.permissionMemberIdFlag {
   505  		req.PermissionMemberId = &builder.permissionMemberId
   506  
   507  	}
   508  	if builder.userIdFlag {
   509  		req.UserId = &builder.userId
   510  
   511  	}
   512  	if builder.departmentIdFlag {
   513  		req.DepartmentId = &builder.departmentId
   514  
   515  	}
   516  	if builder.typeFlag {
   517  		req.Type = &builder.type_
   518  
   519  	}
   520  	return req
   521  }
   522  
   523  type Message struct {
   524  	Raw *string `json:"raw,omitempty"` // MIME邮件数据,基于base64url编码
   525  }
   526  
   527  type MessageBuilder struct {
   528  	raw     string // MIME邮件数据,基于base64url编码
   529  	rawFlag bool
   530  }
   531  
   532  func NewMessageBuilder() *MessageBuilder {
   533  	builder := &MessageBuilder{}
   534  	return builder
   535  }
   536  
   537  // MIME邮件数据,基于base64url编码
   538  //
   539  // 示例值:Q29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJ1cy1hc2NpaSIKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogN2JpdAp0bzogdG9AeHh4Lnh4CmZyb206IHNlbmRlckB4eHgueHgKc3ViamVjdDogdGhpcyBpcyBhIHN1YmplY3QKCnRoaXMgaXMgdGhlIG1lc3NhZ2UgYm9keS4=
   540  func (builder *MessageBuilder) Raw(raw string) *MessageBuilder {
   541  	builder.raw = raw
   542  	builder.rawFlag = true
   543  	return builder
   544  }
   545  
   546  func (builder *MessageBuilder) Build() *Message {
   547  	req := &Message{}
   548  	if builder.rawFlag {
   549  		req.Raw = &builder.raw
   550  
   551  	}
   552  	return req
   553  }
   554  
   555  type PublicMailbox struct {
   556  	PublicMailboxId *string `json:"public_mailbox_id,omitempty"` // 公共邮箱唯一标识
   557  	Email           *string `json:"email,omitempty"`             // 公共邮箱地址
   558  	Name            *string `json:"name,omitempty"`              // 公共邮箱名称
   559  }
   560  
   561  type PublicMailboxBuilder struct {
   562  	publicMailboxId     string // 公共邮箱唯一标识
   563  	publicMailboxIdFlag bool
   564  	email               string // 公共邮箱地址
   565  	emailFlag           bool
   566  	name                string // 公共邮箱名称
   567  	nameFlag            bool
   568  }
   569  
   570  func NewPublicMailboxBuilder() *PublicMailboxBuilder {
   571  	builder := &PublicMailboxBuilder{}
   572  	return builder
   573  }
   574  
   575  // 公共邮箱唯一标识
   576  //
   577  // 示例值:xxxxxxxxxxxxxxx
   578  func (builder *PublicMailboxBuilder) PublicMailboxId(publicMailboxId string) *PublicMailboxBuilder {
   579  	builder.publicMailboxId = publicMailboxId
   580  	builder.publicMailboxIdFlag = true
   581  	return builder
   582  }
   583  
   584  // 公共邮箱地址
   585  //
   586  // 示例值:test_public_mailbox@xxx.xx
   587  func (builder *PublicMailboxBuilder) Email(email string) *PublicMailboxBuilder {
   588  	builder.email = email
   589  	builder.emailFlag = true
   590  	return builder
   591  }
   592  
   593  // 公共邮箱名称
   594  //
   595  // 示例值:test public mailbox
   596  func (builder *PublicMailboxBuilder) Name(name string) *PublicMailboxBuilder {
   597  	builder.name = name
   598  	builder.nameFlag = true
   599  	return builder
   600  }
   601  
   602  func (builder *PublicMailboxBuilder) Build() *PublicMailbox {
   603  	req := &PublicMailbox{}
   604  	if builder.publicMailboxIdFlag {
   605  		req.PublicMailboxId = &builder.publicMailboxId
   606  
   607  	}
   608  	if builder.emailFlag {
   609  		req.Email = &builder.email
   610  
   611  	}
   612  	if builder.nameFlag {
   613  		req.Name = &builder.name
   614  
   615  	}
   616  	return req
   617  }
   618  
   619  type PublicMailboxMember struct {
   620  	MemberId *string `json:"member_id,omitempty"` // 公共邮箱内成员唯一标识
   621  	UserId   *string `json:"user_id,omitempty"`   // 租户内用户的唯一标识(当成员类型是USER时有值)
   622  	Type     *string `json:"type,omitempty"`      // 成员类型
   623  }
   624  
   625  type PublicMailboxMemberBuilder struct {
   626  	memberId     string // 公共邮箱内成员唯一标识
   627  	memberIdFlag bool
   628  	userId       string // 租户内用户的唯一标识(当成员类型是USER时有值)
   629  	userIdFlag   bool
   630  	type_        string // 成员类型
   631  	typeFlag     bool
   632  }
   633  
   634  func NewPublicMailboxMemberBuilder() *PublicMailboxMemberBuilder {
   635  	builder := &PublicMailboxMemberBuilder{}
   636  	return builder
   637  }
   638  
   639  // 公共邮箱内成员唯一标识
   640  //
   641  // 示例值:xxxxxxxxxxxxxxx
   642  func (builder *PublicMailboxMemberBuilder) MemberId(memberId string) *PublicMailboxMemberBuilder {
   643  	builder.memberId = memberId
   644  	builder.memberIdFlag = true
   645  	return builder
   646  }
   647  
   648  // 租户内用户的唯一标识(当成员类型是USER时有值)
   649  //
   650  // 示例值:xxxxxxxxxx
   651  func (builder *PublicMailboxMemberBuilder) UserId(userId string) *PublicMailboxMemberBuilder {
   652  	builder.userId = userId
   653  	builder.userIdFlag = true
   654  	return builder
   655  }
   656  
   657  // 成员类型
   658  //
   659  // 示例值:USER
   660  func (builder *PublicMailboxMemberBuilder) Type(type_ string) *PublicMailboxMemberBuilder {
   661  	builder.type_ = type_
   662  	builder.typeFlag = true
   663  	return builder
   664  }
   665  
   666  func (builder *PublicMailboxMemberBuilder) Build() *PublicMailboxMember {
   667  	req := &PublicMailboxMember{}
   668  	if builder.memberIdFlag {
   669  		req.MemberId = &builder.memberId
   670  
   671  	}
   672  	if builder.userIdFlag {
   673  		req.UserId = &builder.userId
   674  
   675  	}
   676  	if builder.typeFlag {
   677  		req.Type = &builder.type_
   678  
   679  	}
   680  	return req
   681  }
   682  
   683  type User struct {
   684  	Email  *string `json:"email,omitempty"`  // 邮箱地址
   685  	Status *int    `json:"status,omitempty"` // 邮箱地址状态
   686  	Type   *int    `json:"type,omitempty"`   // 邮箱地址类型
   687  }
   688  
   689  type UserBuilder struct {
   690  	email      string // 邮箱地址
   691  	emailFlag  bool
   692  	status     int // 邮箱地址状态
   693  	statusFlag bool
   694  	type_      int // 邮箱地址类型
   695  	typeFlag   bool
   696  }
   697  
   698  func NewUserBuilder() *UserBuilder {
   699  	builder := &UserBuilder{}
   700  	return builder
   701  }
   702  
   703  // 邮箱地址
   704  //
   705  // 示例值:aaa@lark.com
   706  func (builder *UserBuilder) Email(email string) *UserBuilder {
   707  	builder.email = email
   708  	builder.emailFlag = true
   709  	return builder
   710  }
   711  
   712  // 邮箱地址状态
   713  //
   714  // 示例值:4
   715  func (builder *UserBuilder) Status(status int) *UserBuilder {
   716  	builder.status = status
   717  	builder.statusFlag = true
   718  	return builder
   719  }
   720  
   721  // 邮箱地址类型
   722  //
   723  // 示例值:1
   724  func (builder *UserBuilder) Type(type_ int) *UserBuilder {
   725  	builder.type_ = type_
   726  	builder.typeFlag = true
   727  	return builder
   728  }
   729  
   730  func (builder *UserBuilder) Build() *User {
   731  	req := &User{}
   732  	if builder.emailFlag {
   733  		req.Email = &builder.email
   734  
   735  	}
   736  	if builder.statusFlag {
   737  		req.Status = &builder.status
   738  
   739  	}
   740  	if builder.typeFlag {
   741  		req.Type = &builder.type_
   742  
   743  	}
   744  	return req
   745  }
   746  
   747  type CreateMailgroupReqBuilder struct {
   748  	apiReq    *larkcore.ApiReq
   749  	mailgroup *Mailgroup
   750  }
   751  
   752  func NewCreateMailgroupReqBuilder() *CreateMailgroupReqBuilder {
   753  	builder := &CreateMailgroupReqBuilder{}
   754  	builder.apiReq = &larkcore.ApiReq{
   755  		PathParams:  larkcore.PathParams{},
   756  		QueryParams: larkcore.QueryParams{},
   757  	}
   758  	return builder
   759  }
   760  
   761  // 创建一个邮件组
   762  func (builder *CreateMailgroupReqBuilder) Mailgroup(mailgroup *Mailgroup) *CreateMailgroupReqBuilder {
   763  	builder.mailgroup = mailgroup
   764  	return builder
   765  }
   766  
   767  func (builder *CreateMailgroupReqBuilder) Build() *CreateMailgroupReq {
   768  	req := &CreateMailgroupReq{}
   769  	req.apiReq = &larkcore.ApiReq{}
   770  	req.apiReq.Body = builder.mailgroup
   771  	return req
   772  }
   773  
   774  type CreateMailgroupReq struct {
   775  	apiReq    *larkcore.ApiReq
   776  	Mailgroup *Mailgroup `body:""`
   777  }
   778  
   779  type CreateMailgroupRespData struct {
   780  	MailgroupId             *string `json:"mailgroup_id,omitempty"`               // The unique ID of a mail group
   781  	Email                   *string `json:"email,omitempty"`                      // The mail group's email address
   782  	Name                    *string `json:"name,omitempty"`                       // The mail group's display name
   783  	Description             *string `json:"description,omitempty"`                // The mail group's description
   784  	DirectMembersCount      *string `json:"direct_members_count,omitempty"`       // The number of mail group's direct members
   785  	IncludeExternalMember   *bool   `json:"include_external_member,omitempty"`    // Value is true if this mail group has external member
   786  	IncludeAllCompanyMember *bool   `json:"include_all_company_member,omitempty"` // Value is true if all company members are in this mail group
   787  	WhoCanSendMail          *string `json:"who_can_send_mail,omitempty"`          // Who can send mail to this mail group. Possible values are:;- ANYONE: Any Internet user can send mail to this mail group;- ALL_INTERNAL_USERS: Anyone in the team can send mail to this mail group;- ALL_GROUP_MEMBERS: Any group member can send mail to this mail group;- CUSTOM_MEMBERS: Only custom members can send mail to this mail group, define in mailgroup.permission_members resoure
   788  }
   789  
   790  type CreateMailgroupResp struct {
   791  	*larkcore.ApiResp `json:"-"`
   792  	larkcore.CodeError
   793  	Data *CreateMailgroupRespData `json:"data"` // 业务数据
   794  }
   795  
   796  func (resp *CreateMailgroupResp) Success() bool {
   797  	return resp.Code == 0
   798  }
   799  
   800  type DeleteMailgroupReqBuilder struct {
   801  	apiReq *larkcore.ApiReq
   802  }
   803  
   804  func NewDeleteMailgroupReqBuilder() *DeleteMailgroupReqBuilder {
   805  	builder := &DeleteMailgroupReqBuilder{}
   806  	builder.apiReq = &larkcore.ApiReq{
   807  		PathParams:  larkcore.PathParams{},
   808  		QueryParams: larkcore.QueryParams{},
   809  	}
   810  	return builder
   811  }
   812  
   813  // 邮件组ID或者邮件组地址
   814  //
   815  // 示例值:xxxxxxxxxxxxxxx 或 test_mail_group@xxx.xx
   816  func (builder *DeleteMailgroupReqBuilder) MailgroupId(mailgroupId string) *DeleteMailgroupReqBuilder {
   817  	builder.apiReq.PathParams.Set("mailgroup_id", fmt.Sprint(mailgroupId))
   818  	return builder
   819  }
   820  
   821  func (builder *DeleteMailgroupReqBuilder) Build() *DeleteMailgroupReq {
   822  	req := &DeleteMailgroupReq{}
   823  	req.apiReq = &larkcore.ApiReq{}
   824  	req.apiReq.PathParams = builder.apiReq.PathParams
   825  	return req
   826  }
   827  
   828  type DeleteMailgroupReq struct {
   829  	apiReq *larkcore.ApiReq
   830  }
   831  
   832  type DeleteMailgroupResp struct {
   833  	*larkcore.ApiResp `json:"-"`
   834  	larkcore.CodeError
   835  }
   836  
   837  func (resp *DeleteMailgroupResp) Success() bool {
   838  	return resp.Code == 0
   839  }
   840  
   841  type GetMailgroupReqBuilder struct {
   842  	apiReq *larkcore.ApiReq
   843  }
   844  
   845  func NewGetMailgroupReqBuilder() *GetMailgroupReqBuilder {
   846  	builder := &GetMailgroupReqBuilder{}
   847  	builder.apiReq = &larkcore.ApiReq{
   848  		PathParams:  larkcore.PathParams{},
   849  		QueryParams: larkcore.QueryParams{},
   850  	}
   851  	return builder
   852  }
   853  
   854  // 邮件组ID或者邮件组地址
   855  //
   856  // 示例值:xxxxxxxxxxxxxxx 或 test_mail_group@xxx.xx
   857  func (builder *GetMailgroupReqBuilder) MailgroupId(mailgroupId string) *GetMailgroupReqBuilder {
   858  	builder.apiReq.PathParams.Set("mailgroup_id", fmt.Sprint(mailgroupId))
   859  	return builder
   860  }
   861  
   862  func (builder *GetMailgroupReqBuilder) Build() *GetMailgroupReq {
   863  	req := &GetMailgroupReq{}
   864  	req.apiReq = &larkcore.ApiReq{}
   865  	req.apiReq.PathParams = builder.apiReq.PathParams
   866  	return req
   867  }
   868  
   869  type GetMailgroupReq struct {
   870  	apiReq *larkcore.ApiReq
   871  }
   872  
   873  type GetMailgroupRespData struct {
   874  	MailgroupId             *string `json:"mailgroup_id,omitempty"`               // The unique ID of a mail group
   875  	Email                   *string `json:"email,omitempty"`                      // The mail group's email address
   876  	Name                    *string `json:"name,omitempty"`                       // The mail group's display name
   877  	Description             *string `json:"description,omitempty"`                // The mail group's description
   878  	DirectMembersCount      *string `json:"direct_members_count,omitempty"`       // The number of mail group's direct members
   879  	IncludeExternalMember   *bool   `json:"include_external_member,omitempty"`    // Value is true if this mail group has external member
   880  	IncludeAllCompanyMember *bool   `json:"include_all_company_member,omitempty"` // Value is true if all company members are in this mail group
   881  	WhoCanSendMail          *string `json:"who_can_send_mail,omitempty"`          // Who can send mail to this mail group. Possible values are:;- ANYONE: Any Internet user can send mail to this mail group;- ALL_INTERNAL_USERS: Anyone in the team can send mail to this mail group;- ALL_GROUP_MEMBERS: Any group member can send mail to this mail group;- CUSTOM_MEMBERS: Only custom members can send mail to this mail group, define in mailgroup.permission_members resoure
   882  }
   883  
   884  type GetMailgroupResp struct {
   885  	*larkcore.ApiResp `json:"-"`
   886  	larkcore.CodeError
   887  	Data *GetMailgroupRespData `json:"data"` // 业务数据
   888  }
   889  
   890  func (resp *GetMailgroupResp) Success() bool {
   891  	return resp.Code == 0
   892  }
   893  
   894  type ListMailgroupReqBuilder struct {
   895  	apiReq *larkcore.ApiReq
   896  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
   897  }
   898  
   899  func NewListMailgroupReqBuilder() *ListMailgroupReqBuilder {
   900  	builder := &ListMailgroupReqBuilder{}
   901  	builder.apiReq = &larkcore.ApiReq{
   902  		PathParams:  larkcore.PathParams{},
   903  		QueryParams: larkcore.QueryParams{},
   904  	}
   905  	return builder
   906  }
   907  
   908  // 最大返回多少记录,当使用迭代器访问时才有效
   909  func (builder *ListMailgroupReqBuilder) Limit(limit int) *ListMailgroupReqBuilder {
   910  	builder.limit = limit
   911  	return builder
   912  }
   913  
   914  // 邮件组管理员用户ID,用于获取该用户有管理权限的邮件组
   915  //
   916  // 示例值:ou_xxxxxx
   917  func (builder *ListMailgroupReqBuilder) ManagerUserId(managerUserId string) *ListMailgroupReqBuilder {
   918  	builder.apiReq.QueryParams.Set("manager_user_id", fmt.Sprint(managerUserId))
   919  	return builder
   920  }
   921  
   922  // 此次调用中使用的用户ID的类型
   923  //
   924  // 示例值:
   925  func (builder *ListMailgroupReqBuilder) UserIdType(userIdType string) *ListMailgroupReqBuilder {
   926  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
   927  	return builder
   928  }
   929  
   930  //
   931  //
   932  // 示例值:xxx
   933  func (builder *ListMailgroupReqBuilder) PageToken(pageToken string) *ListMailgroupReqBuilder {
   934  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
   935  	return builder
   936  }
   937  
   938  //
   939  //
   940  // 示例值:10
   941  func (builder *ListMailgroupReqBuilder) PageSize(pageSize int) *ListMailgroupReqBuilder {
   942  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
   943  	return builder
   944  }
   945  
   946  func (builder *ListMailgroupReqBuilder) Build() *ListMailgroupReq {
   947  	req := &ListMailgroupReq{}
   948  	req.apiReq = &larkcore.ApiReq{}
   949  	req.Limit = builder.limit
   950  	req.apiReq.QueryParams = builder.apiReq.QueryParams
   951  	return req
   952  }
   953  
   954  type ListMailgroupReq struct {
   955  	apiReq *larkcore.ApiReq
   956  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
   957  
   958  }
   959  
   960  type ListMailgroupRespData struct {
   961  	HasMore   *bool        `json:"has_more,omitempty"`   // 是否有下一页数据
   962  	PageToken *string      `json:"page_token,omitempty"` // 下一页分页的token
   963  	Items     []*Mailgroup `json:"items,omitempty"`      // 邮件组列表
   964  }
   965  
   966  type ListMailgroupResp struct {
   967  	*larkcore.ApiResp `json:"-"`
   968  	larkcore.CodeError
   969  	Data *ListMailgroupRespData `json:"data"` // 业务数据
   970  }
   971  
   972  func (resp *ListMailgroupResp) Success() bool {
   973  	return resp.Code == 0
   974  }
   975  
   976  type PatchMailgroupReqBuilder struct {
   977  	apiReq    *larkcore.ApiReq
   978  	mailgroup *Mailgroup
   979  }
   980  
   981  func NewPatchMailgroupReqBuilder() *PatchMailgroupReqBuilder {
   982  	builder := &PatchMailgroupReqBuilder{}
   983  	builder.apiReq = &larkcore.ApiReq{
   984  		PathParams:  larkcore.PathParams{},
   985  		QueryParams: larkcore.QueryParams{},
   986  	}
   987  	return builder
   988  }
   989  
   990  // 邮件组ID或者邮件组地址
   991  //
   992  // 示例值:xxxxxxxxxxxxxxx 或 test_mail_group@xxx.xx
   993  func (builder *PatchMailgroupReqBuilder) MailgroupId(mailgroupId string) *PatchMailgroupReqBuilder {
   994  	builder.apiReq.PathParams.Set("mailgroup_id", fmt.Sprint(mailgroupId))
   995  	return builder
   996  }
   997  
   998  // 更新邮件组部分字段,没有填写的字段不会被更新
   999  func (builder *PatchMailgroupReqBuilder) Mailgroup(mailgroup *Mailgroup) *PatchMailgroupReqBuilder {
  1000  	builder.mailgroup = mailgroup
  1001  	return builder
  1002  }
  1003  
  1004  func (builder *PatchMailgroupReqBuilder) Build() *PatchMailgroupReq {
  1005  	req := &PatchMailgroupReq{}
  1006  	req.apiReq = &larkcore.ApiReq{}
  1007  	req.apiReq.PathParams = builder.apiReq.PathParams
  1008  	req.apiReq.Body = builder.mailgroup
  1009  	return req
  1010  }
  1011  
  1012  type PatchMailgroupReq struct {
  1013  	apiReq    *larkcore.ApiReq
  1014  	Mailgroup *Mailgroup `body:""`
  1015  }
  1016  
  1017  type PatchMailgroupRespData struct {
  1018  	MailgroupId             *string `json:"mailgroup_id,omitempty"`               // The unique ID of a mail group
  1019  	Email                   *string `json:"email,omitempty"`                      // The mail group's email address
  1020  	Name                    *string `json:"name,omitempty"`                       // The mail group's display name
  1021  	Description             *string `json:"description,omitempty"`                // The mail group's description
  1022  	DirectMembersCount      *string `json:"direct_members_count,omitempty"`       // The number of mail group's direct members
  1023  	IncludeExternalMember   *bool   `json:"include_external_member,omitempty"`    // Value is true if this mail group has external member
  1024  	IncludeAllCompanyMember *bool   `json:"include_all_company_member,omitempty"` // Value is true if all company members are in this mail group
  1025  	WhoCanSendMail          *string `json:"who_can_send_mail,omitempty"`          // Who can send mail to this mail group. Possible values are:;- ANYONE: Any Internet user can send mail to this mail group;- ALL_INTERNAL_USERS: Anyone in the team can send mail to this mail group;- ALL_GROUP_MEMBERS: Any group member can send mail to this mail group;- CUSTOM_MEMBERS: Only custom members can send mail to this mail group, define in mailgroup.permission_members resoure
  1026  }
  1027  
  1028  type PatchMailgroupResp struct {
  1029  	*larkcore.ApiResp `json:"-"`
  1030  	larkcore.CodeError
  1031  	Data *PatchMailgroupRespData `json:"data"` // 业务数据
  1032  }
  1033  
  1034  func (resp *PatchMailgroupResp) Success() bool {
  1035  	return resp.Code == 0
  1036  }
  1037  
  1038  type UpdateMailgroupReqBuilder struct {
  1039  	apiReq    *larkcore.ApiReq
  1040  	mailgroup *Mailgroup
  1041  }
  1042  
  1043  func NewUpdateMailgroupReqBuilder() *UpdateMailgroupReqBuilder {
  1044  	builder := &UpdateMailgroupReqBuilder{}
  1045  	builder.apiReq = &larkcore.ApiReq{
  1046  		PathParams:  larkcore.PathParams{},
  1047  		QueryParams: larkcore.QueryParams{},
  1048  	}
  1049  	return builder
  1050  }
  1051  
  1052  // 邮件组ID或者邮件组地址
  1053  //
  1054  // 示例值:xxxxxxxxxxxxxxx 或 test_mail_group@xxx.xx
  1055  func (builder *UpdateMailgroupReqBuilder) MailgroupId(mailgroupId string) *UpdateMailgroupReqBuilder {
  1056  	builder.apiReq.PathParams.Set("mailgroup_id", fmt.Sprint(mailgroupId))
  1057  	return builder
  1058  }
  1059  
  1060  // 更新邮件组所有信息
  1061  func (builder *UpdateMailgroupReqBuilder) Mailgroup(mailgroup *Mailgroup) *UpdateMailgroupReqBuilder {
  1062  	builder.mailgroup = mailgroup
  1063  	return builder
  1064  }
  1065  
  1066  func (builder *UpdateMailgroupReqBuilder) Build() *UpdateMailgroupReq {
  1067  	req := &UpdateMailgroupReq{}
  1068  	req.apiReq = &larkcore.ApiReq{}
  1069  	req.apiReq.PathParams = builder.apiReq.PathParams
  1070  	req.apiReq.Body = builder.mailgroup
  1071  	return req
  1072  }
  1073  
  1074  type UpdateMailgroupReq struct {
  1075  	apiReq    *larkcore.ApiReq
  1076  	Mailgroup *Mailgroup `body:""`
  1077  }
  1078  
  1079  type UpdateMailgroupRespData struct {
  1080  	MailgroupId             *string `json:"mailgroup_id,omitempty"`               // The unique ID of a mail group
  1081  	Email                   *string `json:"email,omitempty"`                      // The mail group's email address
  1082  	Name                    *string `json:"name,omitempty"`                       // The mail group's display name
  1083  	Description             *string `json:"description,omitempty"`                // The mail group's description
  1084  	DirectMembersCount      *string `json:"direct_members_count,omitempty"`       // The number of mail group's direct members
  1085  	IncludeExternalMember   *bool   `json:"include_external_member,omitempty"`    // Value is true if this mail group has external member
  1086  	IncludeAllCompanyMember *bool   `json:"include_all_company_member,omitempty"` // Value is true if all company members are in this mail group
  1087  	WhoCanSendMail          *string `json:"who_can_send_mail,omitempty"`          // Who can send mail to this mail group. Possible values are:;- ANYONE: Any Internet user can send mail to this mail group;- ALL_INTERNAL_USERS: Anyone in the team can send mail to this mail group;- ALL_GROUP_MEMBERS: Any group member can send mail to this mail group;- CUSTOM_MEMBERS: Only custom members can send mail to this mail group, define in mailgroup.permission_members resoure
  1088  }
  1089  
  1090  type UpdateMailgroupResp struct {
  1091  	*larkcore.ApiResp `json:"-"`
  1092  	larkcore.CodeError
  1093  	Data *UpdateMailgroupRespData `json:"data"` // 业务数据
  1094  }
  1095  
  1096  func (resp *UpdateMailgroupResp) Success() bool {
  1097  	return resp.Code == 0
  1098  }
  1099  
  1100  type CreateMailgroupAliasReqBuilder struct {
  1101  	apiReq     *larkcore.ApiReq
  1102  	emailAlias *EmailAlias
  1103  }
  1104  
  1105  func NewCreateMailgroupAliasReqBuilder() *CreateMailgroupAliasReqBuilder {
  1106  	builder := &CreateMailgroupAliasReqBuilder{}
  1107  	builder.apiReq = &larkcore.ApiReq{
  1108  		PathParams:  larkcore.PathParams{},
  1109  		QueryParams: larkcore.QueryParams{},
  1110  	}
  1111  	return builder
  1112  }
  1113  
  1114  // 邮件组id或邮件组邮箱地址
  1115  //
  1116  // 示例值:xxxxxx 或者 xxx@xx.xxx
  1117  func (builder *CreateMailgroupAliasReqBuilder) MailgroupId(mailgroupId string) *CreateMailgroupAliasReqBuilder {
  1118  	builder.apiReq.PathParams.Set("mailgroup_id", fmt.Sprint(mailgroupId))
  1119  	return builder
  1120  }
  1121  
  1122  // 创建邮件组别名
  1123  func (builder *CreateMailgroupAliasReqBuilder) EmailAlias(emailAlias *EmailAlias) *CreateMailgroupAliasReqBuilder {
  1124  	builder.emailAlias = emailAlias
  1125  	return builder
  1126  }
  1127  
  1128  func (builder *CreateMailgroupAliasReqBuilder) Build() *CreateMailgroupAliasReq {
  1129  	req := &CreateMailgroupAliasReq{}
  1130  	req.apiReq = &larkcore.ApiReq{}
  1131  	req.apiReq.PathParams = builder.apiReq.PathParams
  1132  	req.apiReq.Body = builder.emailAlias
  1133  	return req
  1134  }
  1135  
  1136  type CreateMailgroupAliasReq struct {
  1137  	apiReq     *larkcore.ApiReq
  1138  	EmailAlias *EmailAlias `body:""`
  1139  }
  1140  
  1141  type CreateMailgroupAliasRespData struct {
  1142  	MailgroupAlias *EmailAlias `json:"mailgroup_alias,omitempty"` // 邮件组别名
  1143  }
  1144  
  1145  type CreateMailgroupAliasResp struct {
  1146  	*larkcore.ApiResp `json:"-"`
  1147  	larkcore.CodeError
  1148  	Data *CreateMailgroupAliasRespData `json:"data"` // 业务数据
  1149  }
  1150  
  1151  func (resp *CreateMailgroupAliasResp) Success() bool {
  1152  	return resp.Code == 0
  1153  }
  1154  
  1155  type DeleteMailgroupAliasReqBuilder struct {
  1156  	apiReq *larkcore.ApiReq
  1157  }
  1158  
  1159  func NewDeleteMailgroupAliasReqBuilder() *DeleteMailgroupAliasReqBuilder {
  1160  	builder := &DeleteMailgroupAliasReqBuilder{}
  1161  	builder.apiReq = &larkcore.ApiReq{
  1162  		PathParams:  larkcore.PathParams{},
  1163  		QueryParams: larkcore.QueryParams{},
  1164  	}
  1165  	return builder
  1166  }
  1167  
  1168  // 邮件组id或邮件组邮箱地址
  1169  //
  1170  // 示例值:xxxxxx 或 test_group@xx.xxx
  1171  func (builder *DeleteMailgroupAliasReqBuilder) MailgroupId(mailgroupId string) *DeleteMailgroupAliasReqBuilder {
  1172  	builder.apiReq.PathParams.Set("mailgroup_id", fmt.Sprint(mailgroupId))
  1173  	return builder
  1174  }
  1175  
  1176  // 邮件组别名邮箱地址
  1177  //
  1178  // 示例值:xxx@xx.xxx
  1179  func (builder *DeleteMailgroupAliasReqBuilder) AliasId(aliasId string) *DeleteMailgroupAliasReqBuilder {
  1180  	builder.apiReq.PathParams.Set("alias_id", fmt.Sprint(aliasId))
  1181  	return builder
  1182  }
  1183  
  1184  func (builder *DeleteMailgroupAliasReqBuilder) Build() *DeleteMailgroupAliasReq {
  1185  	req := &DeleteMailgroupAliasReq{}
  1186  	req.apiReq = &larkcore.ApiReq{}
  1187  	req.apiReq.PathParams = builder.apiReq.PathParams
  1188  	return req
  1189  }
  1190  
  1191  type DeleteMailgroupAliasReq struct {
  1192  	apiReq *larkcore.ApiReq
  1193  }
  1194  
  1195  type DeleteMailgroupAliasResp struct {
  1196  	*larkcore.ApiResp `json:"-"`
  1197  	larkcore.CodeError
  1198  }
  1199  
  1200  func (resp *DeleteMailgroupAliasResp) Success() bool {
  1201  	return resp.Code == 0
  1202  }
  1203  
  1204  type ListMailgroupAliasReqBuilder struct {
  1205  	apiReq *larkcore.ApiReq
  1206  }
  1207  
  1208  func NewListMailgroupAliasReqBuilder() *ListMailgroupAliasReqBuilder {
  1209  	builder := &ListMailgroupAliasReqBuilder{}
  1210  	builder.apiReq = &larkcore.ApiReq{
  1211  		PathParams:  larkcore.PathParams{},
  1212  		QueryParams: larkcore.QueryParams{},
  1213  	}
  1214  	return builder
  1215  }
  1216  
  1217  // 邮件组id或邮件组邮箱地址
  1218  //
  1219  // 示例值:xxxxxxxxxxxxxxx 或 test_mail_group@xxx.xx
  1220  func (builder *ListMailgroupAliasReqBuilder) MailgroupId(mailgroupId string) *ListMailgroupAliasReqBuilder {
  1221  	builder.apiReq.PathParams.Set("mailgroup_id", fmt.Sprint(mailgroupId))
  1222  	return builder
  1223  }
  1224  
  1225  func (builder *ListMailgroupAliasReqBuilder) Build() *ListMailgroupAliasReq {
  1226  	req := &ListMailgroupAliasReq{}
  1227  	req.apiReq = &larkcore.ApiReq{}
  1228  	req.apiReq.PathParams = builder.apiReq.PathParams
  1229  	return req
  1230  }
  1231  
  1232  type ListMailgroupAliasReq struct {
  1233  	apiReq *larkcore.ApiReq
  1234  }
  1235  
  1236  type ListMailgroupAliasRespData struct {
  1237  	Items []*EmailAlias `json:"items,omitempty"` // 邮件组别名
  1238  }
  1239  
  1240  type ListMailgroupAliasResp struct {
  1241  	*larkcore.ApiResp `json:"-"`
  1242  	larkcore.CodeError
  1243  	Data *ListMailgroupAliasRespData `json:"data"` // 业务数据
  1244  }
  1245  
  1246  func (resp *ListMailgroupAliasResp) Success() bool {
  1247  	return resp.Code == 0
  1248  }
  1249  
  1250  type CreateMailgroupMemberReqBuilder struct {
  1251  	apiReq          *larkcore.ApiReq
  1252  	mailgroupMember *MailgroupMember
  1253  }
  1254  
  1255  func NewCreateMailgroupMemberReqBuilder() *CreateMailgroupMemberReqBuilder {
  1256  	builder := &CreateMailgroupMemberReqBuilder{}
  1257  	builder.apiReq = &larkcore.ApiReq{
  1258  		PathParams:  larkcore.PathParams{},
  1259  		QueryParams: larkcore.QueryParams{},
  1260  	}
  1261  	return builder
  1262  }
  1263  
  1264  // 邮件组ID或者邮件组地址
  1265  //
  1266  // 示例值:xxxxxxxxxxxxxxx 或 test_mail_group@xxx.xx
  1267  func (builder *CreateMailgroupMemberReqBuilder) MailgroupId(mailgroupId string) *CreateMailgroupMemberReqBuilder {
  1268  	builder.apiReq.PathParams.Set("mailgroup_id", fmt.Sprint(mailgroupId))
  1269  	return builder
  1270  }
  1271  
  1272  // 此次调用中使用的用户ID的类型
  1273  //
  1274  // 示例值:
  1275  func (builder *CreateMailgroupMemberReqBuilder) UserIdType(userIdType string) *CreateMailgroupMemberReqBuilder {
  1276  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  1277  	return builder
  1278  }
  1279  
  1280  // 此次调用中使用的部门ID的类型
  1281  //
  1282  // 示例值:open_department_id
  1283  func (builder *CreateMailgroupMemberReqBuilder) DepartmentIdType(departmentIdType string) *CreateMailgroupMemberReqBuilder {
  1284  	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
  1285  	return builder
  1286  }
  1287  
  1288  // 向邮件组添加单个成员
  1289  func (builder *CreateMailgroupMemberReqBuilder) MailgroupMember(mailgroupMember *MailgroupMember) *CreateMailgroupMemberReqBuilder {
  1290  	builder.mailgroupMember = mailgroupMember
  1291  	return builder
  1292  }
  1293  
  1294  func (builder *CreateMailgroupMemberReqBuilder) Build() *CreateMailgroupMemberReq {
  1295  	req := &CreateMailgroupMemberReq{}
  1296  	req.apiReq = &larkcore.ApiReq{}
  1297  	req.apiReq.PathParams = builder.apiReq.PathParams
  1298  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  1299  	req.apiReq.Body = builder.mailgroupMember
  1300  	return req
  1301  }
  1302  
  1303  type CreateMailgroupMemberReq struct {
  1304  	apiReq          *larkcore.ApiReq
  1305  	MailgroupMember *MailgroupMember `body:""`
  1306  }
  1307  
  1308  type CreateMailgroupMemberRespData struct {
  1309  	MemberId     *string `json:"member_id,omitempty"`     // The unique ID of a member in this mail group
  1310  	Email        *string `json:"email,omitempty"`         // The member's email address. Value is valid when type is one of USER/EXTERNAL_USER/MAIL_GROUP/PUBLIC_MAILBOX/OTHER_MEMBER
  1311  	UserId       *string `json:"user_id,omitempty"`       // The member's user id. Value is valid when type is USER
  1312  	DepartmentId *string `json:"department_id,omitempty"` // The member's department id. Value is valid when type is DEPARTMENT
  1313  	Type         *string `json:"type,omitempty"`          // The type of member. Possible values are:;- USER: internal user in the team;- DEPARTMENT: member is a department;- COMPANY: member is the company;- EXTERNAL_USER: internet user outside the organization;- MAIL_GROUP: member is another mail group;- PUBLIC_MAILBOX: member is a public mailbox;- OTHER_MEMBER: other internal member
  1314  }
  1315  
  1316  type CreateMailgroupMemberResp struct {
  1317  	*larkcore.ApiResp `json:"-"`
  1318  	larkcore.CodeError
  1319  	Data *CreateMailgroupMemberRespData `json:"data"` // 业务数据
  1320  }
  1321  
  1322  func (resp *CreateMailgroupMemberResp) Success() bool {
  1323  	return resp.Code == 0
  1324  }
  1325  
  1326  type DeleteMailgroupMemberReqBuilder struct {
  1327  	apiReq *larkcore.ApiReq
  1328  }
  1329  
  1330  func NewDeleteMailgroupMemberReqBuilder() *DeleteMailgroupMemberReqBuilder {
  1331  	builder := &DeleteMailgroupMemberReqBuilder{}
  1332  	builder.apiReq = &larkcore.ApiReq{
  1333  		PathParams:  larkcore.PathParams{},
  1334  		QueryParams: larkcore.QueryParams{},
  1335  	}
  1336  	return builder
  1337  }
  1338  
  1339  // The unique ID or email address of a mail group
  1340  //
  1341  // 示例值:xxxxxxxxxxxxxxx or test_mail_group@xxx.xx
  1342  func (builder *DeleteMailgroupMemberReqBuilder) MailgroupId(mailgroupId string) *DeleteMailgroupMemberReqBuilder {
  1343  	builder.apiReq.PathParams.Set("mailgroup_id", fmt.Sprint(mailgroupId))
  1344  	return builder
  1345  }
  1346  
  1347  // The unique ID of a member in this mail group
  1348  //
  1349  // 示例值:xxxxxxxxxxxxxxx
  1350  func (builder *DeleteMailgroupMemberReqBuilder) MemberId(memberId string) *DeleteMailgroupMemberReqBuilder {
  1351  	builder.apiReq.PathParams.Set("member_id", fmt.Sprint(memberId))
  1352  	return builder
  1353  }
  1354  
  1355  func (builder *DeleteMailgroupMemberReqBuilder) Build() *DeleteMailgroupMemberReq {
  1356  	req := &DeleteMailgroupMemberReq{}
  1357  	req.apiReq = &larkcore.ApiReq{}
  1358  	req.apiReq.PathParams = builder.apiReq.PathParams
  1359  	return req
  1360  }
  1361  
  1362  type DeleteMailgroupMemberReq struct {
  1363  	apiReq *larkcore.ApiReq
  1364  }
  1365  
  1366  type DeleteMailgroupMemberResp struct {
  1367  	*larkcore.ApiResp `json:"-"`
  1368  	larkcore.CodeError
  1369  }
  1370  
  1371  func (resp *DeleteMailgroupMemberResp) Success() bool {
  1372  	return resp.Code == 0
  1373  }
  1374  
  1375  type GetMailgroupMemberReqBuilder struct {
  1376  	apiReq *larkcore.ApiReq
  1377  }
  1378  
  1379  func NewGetMailgroupMemberReqBuilder() *GetMailgroupMemberReqBuilder {
  1380  	builder := &GetMailgroupMemberReqBuilder{}
  1381  	builder.apiReq = &larkcore.ApiReq{
  1382  		PathParams:  larkcore.PathParams{},
  1383  		QueryParams: larkcore.QueryParams{},
  1384  	}
  1385  	return builder
  1386  }
  1387  
  1388  // 邮件组ID或者邮件组地址
  1389  //
  1390  // 示例值:xxxxxxxxxxxxxxx 或 test_mail_group@xxx.xx
  1391  func (builder *GetMailgroupMemberReqBuilder) MailgroupId(mailgroupId string) *GetMailgroupMemberReqBuilder {
  1392  	builder.apiReq.PathParams.Set("mailgroup_id", fmt.Sprint(mailgroupId))
  1393  	return builder
  1394  }
  1395  
  1396  // 邮件组内成员唯一标识
  1397  //
  1398  // 示例值:xxxxxxxxxxxxxxx
  1399  func (builder *GetMailgroupMemberReqBuilder) MemberId(memberId string) *GetMailgroupMemberReqBuilder {
  1400  	builder.apiReq.PathParams.Set("member_id", fmt.Sprint(memberId))
  1401  	return builder
  1402  }
  1403  
  1404  // 此次调用中使用的用户ID的类型
  1405  //
  1406  // 示例值:
  1407  func (builder *GetMailgroupMemberReqBuilder) UserIdType(userIdType string) *GetMailgroupMemberReqBuilder {
  1408  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  1409  	return builder
  1410  }
  1411  
  1412  // 此次调用中使用的部门ID的类型
  1413  //
  1414  // 示例值:open_department_id
  1415  func (builder *GetMailgroupMemberReqBuilder) DepartmentIdType(departmentIdType string) *GetMailgroupMemberReqBuilder {
  1416  	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
  1417  	return builder
  1418  }
  1419  
  1420  func (builder *GetMailgroupMemberReqBuilder) Build() *GetMailgroupMemberReq {
  1421  	req := &GetMailgroupMemberReq{}
  1422  	req.apiReq = &larkcore.ApiReq{}
  1423  	req.apiReq.PathParams = builder.apiReq.PathParams
  1424  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  1425  	return req
  1426  }
  1427  
  1428  type GetMailgroupMemberReq struct {
  1429  	apiReq *larkcore.ApiReq
  1430  }
  1431  
  1432  type GetMailgroupMemberRespData struct {
  1433  	MemberId     *string `json:"member_id,omitempty"`     // The unique ID of a member in this mail group
  1434  	Email        *string `json:"email,omitempty"`         // The member's email address. Value is valid when type is one of USER/EXTERNAL_USER/MAIL_GROUP/PUBLIC_MAILBOX/OTHER_MEMBER
  1435  	UserId       *string `json:"user_id,omitempty"`       // The member's user id. Value is valid when type is USER
  1436  	DepartmentId *string `json:"department_id,omitempty"` // The member's department id. Value is valid when type is DEPARTMENT
  1437  	Type         *string `json:"type,omitempty"`          // The type of member. Possible values are:;- USER: internal user in the team;- DEPARTMENT: member is a department;- COMPANY: member is the company;- EXTERNAL_USER: internet user outside the organization;- MAIL_GROUP: member is another mail group;- PUBLIC_MAILBOX: member is a public mailbox;- OTHER_MEMBER: other internal member
  1438  }
  1439  
  1440  type GetMailgroupMemberResp struct {
  1441  	*larkcore.ApiResp `json:"-"`
  1442  	larkcore.CodeError
  1443  	Data *GetMailgroupMemberRespData `json:"data"` // 业务数据
  1444  }
  1445  
  1446  func (resp *GetMailgroupMemberResp) Success() bool {
  1447  	return resp.Code == 0
  1448  }
  1449  
  1450  type ListMailgroupMemberReqBuilder struct {
  1451  	apiReq *larkcore.ApiReq
  1452  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  1453  }
  1454  
  1455  func NewListMailgroupMemberReqBuilder() *ListMailgroupMemberReqBuilder {
  1456  	builder := &ListMailgroupMemberReqBuilder{}
  1457  	builder.apiReq = &larkcore.ApiReq{
  1458  		PathParams:  larkcore.PathParams{},
  1459  		QueryParams: larkcore.QueryParams{},
  1460  	}
  1461  	return builder
  1462  }
  1463  
  1464  // 最大返回多少记录,当使用迭代器访问时才有效
  1465  func (builder *ListMailgroupMemberReqBuilder) Limit(limit int) *ListMailgroupMemberReqBuilder {
  1466  	builder.limit = limit
  1467  	return builder
  1468  }
  1469  
  1470  // The unique ID or email address of a mail group
  1471  //
  1472  // 示例值:xxxxxxxxxxxxxxx or test_mail_group@xxx.xx
  1473  func (builder *ListMailgroupMemberReqBuilder) MailgroupId(mailgroupId string) *ListMailgroupMemberReqBuilder {
  1474  	builder.apiReq.PathParams.Set("mailgroup_id", fmt.Sprint(mailgroupId))
  1475  	return builder
  1476  }
  1477  
  1478  // 此次调用中使用的用户ID的类型
  1479  //
  1480  // 示例值:
  1481  func (builder *ListMailgroupMemberReqBuilder) UserIdType(userIdType string) *ListMailgroupMemberReqBuilder {
  1482  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  1483  	return builder
  1484  }
  1485  
  1486  // 此次调用中使用的部门ID的类型
  1487  //
  1488  // 示例值:open_department_id
  1489  func (builder *ListMailgroupMemberReqBuilder) DepartmentIdType(departmentIdType string) *ListMailgroupMemberReqBuilder {
  1490  	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
  1491  	return builder
  1492  }
  1493  
  1494  //
  1495  //
  1496  // 示例值:xxx
  1497  func (builder *ListMailgroupMemberReqBuilder) PageToken(pageToken string) *ListMailgroupMemberReqBuilder {
  1498  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  1499  	return builder
  1500  }
  1501  
  1502  //
  1503  //
  1504  // 示例值:10
  1505  func (builder *ListMailgroupMemberReqBuilder) PageSize(pageSize int) *ListMailgroupMemberReqBuilder {
  1506  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  1507  	return builder
  1508  }
  1509  
  1510  func (builder *ListMailgroupMemberReqBuilder) Build() *ListMailgroupMemberReq {
  1511  	req := &ListMailgroupMemberReq{}
  1512  	req.apiReq = &larkcore.ApiReq{}
  1513  	req.Limit = builder.limit
  1514  	req.apiReq.PathParams = builder.apiReq.PathParams
  1515  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  1516  	return req
  1517  }
  1518  
  1519  type ListMailgroupMemberReq struct {
  1520  	apiReq *larkcore.ApiReq
  1521  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
  1522  
  1523  }
  1524  
  1525  type ListMailgroupMemberRespData struct {
  1526  	HasMore   *bool              `json:"has_more,omitempty"`   // 是否有下一页数据
  1527  	PageToken *string            `json:"page_token,omitempty"` // 下一页分页的token
  1528  	Items     []*MailgroupMember `json:"items,omitempty"`      // 邮件组成员列表
  1529  }
  1530  
  1531  type ListMailgroupMemberResp struct {
  1532  	*larkcore.ApiResp `json:"-"`
  1533  	larkcore.CodeError
  1534  	Data *ListMailgroupMemberRespData `json:"data"` // 业务数据
  1535  }
  1536  
  1537  func (resp *ListMailgroupMemberResp) Success() bool {
  1538  	return resp.Code == 0
  1539  }
  1540  
  1541  type CreateMailgroupPermissionMemberReqBuilder struct {
  1542  	apiReq                    *larkcore.ApiReq
  1543  	mailgroupPermissionMember *MailgroupPermissionMember
  1544  }
  1545  
  1546  func NewCreateMailgroupPermissionMemberReqBuilder() *CreateMailgroupPermissionMemberReqBuilder {
  1547  	builder := &CreateMailgroupPermissionMemberReqBuilder{}
  1548  	builder.apiReq = &larkcore.ApiReq{
  1549  		PathParams:  larkcore.PathParams{},
  1550  		QueryParams: larkcore.QueryParams{},
  1551  	}
  1552  	return builder
  1553  }
  1554  
  1555  // 邮件组ID或者邮件组地址
  1556  //
  1557  // 示例值:xxxxxxxxxxxxxxx 或 test_mail_group@xxx.xx
  1558  func (builder *CreateMailgroupPermissionMemberReqBuilder) MailgroupId(mailgroupId string) *CreateMailgroupPermissionMemberReqBuilder {
  1559  	builder.apiReq.PathParams.Set("mailgroup_id", fmt.Sprint(mailgroupId))
  1560  	return builder
  1561  }
  1562  
  1563  // 此次调用中使用的用户ID的类型
  1564  //
  1565  // 示例值:
  1566  func (builder *CreateMailgroupPermissionMemberReqBuilder) UserIdType(userIdType string) *CreateMailgroupPermissionMemberReqBuilder {
  1567  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  1568  	return builder
  1569  }
  1570  
  1571  // 此次调用中使用的部门ID的类型
  1572  //
  1573  // 示例值:xxx
  1574  func (builder *CreateMailgroupPermissionMemberReqBuilder) DepartmentIdType(departmentIdType string) *CreateMailgroupPermissionMemberReqBuilder {
  1575  	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
  1576  	return builder
  1577  }
  1578  
  1579  // 向邮件组添加单个自定义权限成员,添加后该成员可发送邮件到该邮件组
  1580  func (builder *CreateMailgroupPermissionMemberReqBuilder) MailgroupPermissionMember(mailgroupPermissionMember *MailgroupPermissionMember) *CreateMailgroupPermissionMemberReqBuilder {
  1581  	builder.mailgroupPermissionMember = mailgroupPermissionMember
  1582  	return builder
  1583  }
  1584  
  1585  func (builder *CreateMailgroupPermissionMemberReqBuilder) Build() *CreateMailgroupPermissionMemberReq {
  1586  	req := &CreateMailgroupPermissionMemberReq{}
  1587  	req.apiReq = &larkcore.ApiReq{}
  1588  	req.apiReq.PathParams = builder.apiReq.PathParams
  1589  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  1590  	req.apiReq.Body = builder.mailgroupPermissionMember
  1591  	return req
  1592  }
  1593  
  1594  type CreateMailgroupPermissionMemberReq struct {
  1595  	apiReq                    *larkcore.ApiReq
  1596  	MailgroupPermissionMember *MailgroupPermissionMember `body:""`
  1597  }
  1598  
  1599  type CreateMailgroupPermissionMemberRespData struct {
  1600  	PermissionMemberId *string `json:"permission_member_id,omitempty"` // The unique ID of a member in this permission group
  1601  	UserId             *string `json:"user_id,omitempty"`              // The member's user id. Value is valid when type is USER
  1602  	DepartmentId       *string `json:"department_id,omitempty"`        // The member's department id. Value is valid when type is DEPARTMENT
  1603  	Type               *string `json:"type,omitempty"`                 // The type of member. Possible values are:;- USER: internal user in the team;- DEPARTMENT: member is a department
  1604  }
  1605  
  1606  type CreateMailgroupPermissionMemberResp struct {
  1607  	*larkcore.ApiResp `json:"-"`
  1608  	larkcore.CodeError
  1609  	Data *CreateMailgroupPermissionMemberRespData `json:"data"` // 业务数据
  1610  }
  1611  
  1612  func (resp *CreateMailgroupPermissionMemberResp) Success() bool {
  1613  	return resp.Code == 0
  1614  }
  1615  
  1616  type DeleteMailgroupPermissionMemberReqBuilder struct {
  1617  	apiReq *larkcore.ApiReq
  1618  }
  1619  
  1620  func NewDeleteMailgroupPermissionMemberReqBuilder() *DeleteMailgroupPermissionMemberReqBuilder {
  1621  	builder := &DeleteMailgroupPermissionMemberReqBuilder{}
  1622  	builder.apiReq = &larkcore.ApiReq{
  1623  		PathParams:  larkcore.PathParams{},
  1624  		QueryParams: larkcore.QueryParams{},
  1625  	}
  1626  	return builder
  1627  }
  1628  
  1629  // The unique ID or email address of a mail group
  1630  //
  1631  // 示例值:xxxxxxxxxxxxxxx or test_mail_group@xxx.xx
  1632  func (builder *DeleteMailgroupPermissionMemberReqBuilder) MailgroupId(mailgroupId string) *DeleteMailgroupPermissionMemberReqBuilder {
  1633  	builder.apiReq.PathParams.Set("mailgroup_id", fmt.Sprint(mailgroupId))
  1634  	return builder
  1635  }
  1636  
  1637  // The unique ID of a member in this permission group
  1638  //
  1639  // 示例值:xxxxxxxxxxxxxxx
  1640  func (builder *DeleteMailgroupPermissionMemberReqBuilder) PermissionMemberId(permissionMemberId string) *DeleteMailgroupPermissionMemberReqBuilder {
  1641  	builder.apiReq.PathParams.Set("permission_member_id", fmt.Sprint(permissionMemberId))
  1642  	return builder
  1643  }
  1644  
  1645  func (builder *DeleteMailgroupPermissionMemberReqBuilder) Build() *DeleteMailgroupPermissionMemberReq {
  1646  	req := &DeleteMailgroupPermissionMemberReq{}
  1647  	req.apiReq = &larkcore.ApiReq{}
  1648  	req.apiReq.PathParams = builder.apiReq.PathParams
  1649  	return req
  1650  }
  1651  
  1652  type DeleteMailgroupPermissionMemberReq struct {
  1653  	apiReq *larkcore.ApiReq
  1654  }
  1655  
  1656  type DeleteMailgroupPermissionMemberResp struct {
  1657  	*larkcore.ApiResp `json:"-"`
  1658  	larkcore.CodeError
  1659  }
  1660  
  1661  func (resp *DeleteMailgroupPermissionMemberResp) Success() bool {
  1662  	return resp.Code == 0
  1663  }
  1664  
  1665  type GetMailgroupPermissionMemberReqBuilder struct {
  1666  	apiReq *larkcore.ApiReq
  1667  }
  1668  
  1669  func NewGetMailgroupPermissionMemberReqBuilder() *GetMailgroupPermissionMemberReqBuilder {
  1670  	builder := &GetMailgroupPermissionMemberReqBuilder{}
  1671  	builder.apiReq = &larkcore.ApiReq{
  1672  		PathParams:  larkcore.PathParams{},
  1673  		QueryParams: larkcore.QueryParams{},
  1674  	}
  1675  	return builder
  1676  }
  1677  
  1678  // 邮件组ID或者邮件组地址
  1679  //
  1680  // 示例值:xxxxxxxxxxxxxxx 或 test_mail_group@xxx.xx
  1681  func (builder *GetMailgroupPermissionMemberReqBuilder) MailgroupId(mailgroupId string) *GetMailgroupPermissionMemberReqBuilder {
  1682  	builder.apiReq.PathParams.Set("mailgroup_id", fmt.Sprint(mailgroupId))
  1683  	return builder
  1684  }
  1685  
  1686  // 权限组内成员唯一标识
  1687  //
  1688  // 示例值:xxxxxxxxxxxxxxx
  1689  func (builder *GetMailgroupPermissionMemberReqBuilder) PermissionMemberId(permissionMemberId string) *GetMailgroupPermissionMemberReqBuilder {
  1690  	builder.apiReq.PathParams.Set("permission_member_id", fmt.Sprint(permissionMemberId))
  1691  	return builder
  1692  }
  1693  
  1694  // 此次调用中使用的用户ID的类型
  1695  //
  1696  // 示例值:
  1697  func (builder *GetMailgroupPermissionMemberReqBuilder) UserIdType(userIdType string) *GetMailgroupPermissionMemberReqBuilder {
  1698  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  1699  	return builder
  1700  }
  1701  
  1702  // 此次调用中使用的部门ID的类型
  1703  //
  1704  // 示例值:open_department_id
  1705  func (builder *GetMailgroupPermissionMemberReqBuilder) DepartmentIdType(departmentIdType string) *GetMailgroupPermissionMemberReqBuilder {
  1706  	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
  1707  	return builder
  1708  }
  1709  
  1710  func (builder *GetMailgroupPermissionMemberReqBuilder) Build() *GetMailgroupPermissionMemberReq {
  1711  	req := &GetMailgroupPermissionMemberReq{}
  1712  	req.apiReq = &larkcore.ApiReq{}
  1713  	req.apiReq.PathParams = builder.apiReq.PathParams
  1714  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  1715  	return req
  1716  }
  1717  
  1718  type GetMailgroupPermissionMemberReq struct {
  1719  	apiReq *larkcore.ApiReq
  1720  }
  1721  
  1722  type GetMailgroupPermissionMemberRespData struct {
  1723  	PermissionMemberId *string `json:"permission_member_id,omitempty"` // The unique ID of a member in this permission group
  1724  	UserId             *string `json:"user_id,omitempty"`              // The member's user id. Value is valid when type is USER
  1725  	DepartmentId       *string `json:"department_id,omitempty"`        // The member's department id. Value is valid when type is DEPARTMENT
  1726  	Type               *string `json:"type,omitempty"`                 // The type of member. Possible values are:;- USER: internal user in the team;- DEPARTMENT: member is a department
  1727  }
  1728  
  1729  type GetMailgroupPermissionMemberResp struct {
  1730  	*larkcore.ApiResp `json:"-"`
  1731  	larkcore.CodeError
  1732  	Data *GetMailgroupPermissionMemberRespData `json:"data"` // 业务数据
  1733  }
  1734  
  1735  func (resp *GetMailgroupPermissionMemberResp) Success() bool {
  1736  	return resp.Code == 0
  1737  }
  1738  
  1739  type ListMailgroupPermissionMemberReqBuilder struct {
  1740  	apiReq *larkcore.ApiReq
  1741  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  1742  }
  1743  
  1744  func NewListMailgroupPermissionMemberReqBuilder() *ListMailgroupPermissionMemberReqBuilder {
  1745  	builder := &ListMailgroupPermissionMemberReqBuilder{}
  1746  	builder.apiReq = &larkcore.ApiReq{
  1747  		PathParams:  larkcore.PathParams{},
  1748  		QueryParams: larkcore.QueryParams{},
  1749  	}
  1750  	return builder
  1751  }
  1752  
  1753  // 最大返回多少记录,当使用迭代器访问时才有效
  1754  func (builder *ListMailgroupPermissionMemberReqBuilder) Limit(limit int) *ListMailgroupPermissionMemberReqBuilder {
  1755  	builder.limit = limit
  1756  	return builder
  1757  }
  1758  
  1759  // 邮件组ID或者邮件组地址
  1760  //
  1761  // 示例值:xxxxxxxxxxxxxxx 或 test_mail_group@xxx.xx
  1762  func (builder *ListMailgroupPermissionMemberReqBuilder) MailgroupId(mailgroupId string) *ListMailgroupPermissionMemberReqBuilder {
  1763  	builder.apiReq.PathParams.Set("mailgroup_id", fmt.Sprint(mailgroupId))
  1764  	return builder
  1765  }
  1766  
  1767  // 此次调用中使用的用户ID的类型
  1768  //
  1769  // 示例值:
  1770  func (builder *ListMailgroupPermissionMemberReqBuilder) UserIdType(userIdType string) *ListMailgroupPermissionMemberReqBuilder {
  1771  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  1772  	return builder
  1773  }
  1774  
  1775  // 此次调用中使用的部门ID的类型
  1776  //
  1777  // 示例值:open_department_id
  1778  func (builder *ListMailgroupPermissionMemberReqBuilder) DepartmentIdType(departmentIdType string) *ListMailgroupPermissionMemberReqBuilder {
  1779  	builder.apiReq.QueryParams.Set("department_id_type", fmt.Sprint(departmentIdType))
  1780  	return builder
  1781  }
  1782  
  1783  //
  1784  //
  1785  // 示例值:xxx
  1786  func (builder *ListMailgroupPermissionMemberReqBuilder) PageToken(pageToken string) *ListMailgroupPermissionMemberReqBuilder {
  1787  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  1788  	return builder
  1789  }
  1790  
  1791  //
  1792  //
  1793  // 示例值:10
  1794  func (builder *ListMailgroupPermissionMemberReqBuilder) PageSize(pageSize int) *ListMailgroupPermissionMemberReqBuilder {
  1795  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  1796  	return builder
  1797  }
  1798  
  1799  func (builder *ListMailgroupPermissionMemberReqBuilder) Build() *ListMailgroupPermissionMemberReq {
  1800  	req := &ListMailgroupPermissionMemberReq{}
  1801  	req.apiReq = &larkcore.ApiReq{}
  1802  	req.Limit = builder.limit
  1803  	req.apiReq.PathParams = builder.apiReq.PathParams
  1804  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  1805  	return req
  1806  }
  1807  
  1808  type ListMailgroupPermissionMemberReq struct {
  1809  	apiReq *larkcore.ApiReq
  1810  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
  1811  
  1812  }
  1813  
  1814  type ListMailgroupPermissionMemberRespData struct {
  1815  	HasMore   *bool                        `json:"has_more,omitempty"`   // 是否有下一页数据
  1816  	PageToken *string                      `json:"page_token,omitempty"` // 下一页分页的token
  1817  	Items     []*MailgroupPermissionMember `json:"items,omitempty"`      // 邮件组权限成员列表
  1818  }
  1819  
  1820  type ListMailgroupPermissionMemberResp struct {
  1821  	*larkcore.ApiResp `json:"-"`
  1822  	larkcore.CodeError
  1823  	Data *ListMailgroupPermissionMemberRespData `json:"data"` // 业务数据
  1824  }
  1825  
  1826  func (resp *ListMailgroupPermissionMemberResp) Success() bool {
  1827  	return resp.Code == 0
  1828  }
  1829  
  1830  type CreatePublicMailboxReqBuilder struct {
  1831  	apiReq        *larkcore.ApiReq
  1832  	publicMailbox *PublicMailbox
  1833  }
  1834  
  1835  func NewCreatePublicMailboxReqBuilder() *CreatePublicMailboxReqBuilder {
  1836  	builder := &CreatePublicMailboxReqBuilder{}
  1837  	builder.apiReq = &larkcore.ApiReq{
  1838  		PathParams:  larkcore.PathParams{},
  1839  		QueryParams: larkcore.QueryParams{},
  1840  	}
  1841  	return builder
  1842  }
  1843  
  1844  // 创建一个公共邮箱
  1845  func (builder *CreatePublicMailboxReqBuilder) PublicMailbox(publicMailbox *PublicMailbox) *CreatePublicMailboxReqBuilder {
  1846  	builder.publicMailbox = publicMailbox
  1847  	return builder
  1848  }
  1849  
  1850  func (builder *CreatePublicMailboxReqBuilder) Build() *CreatePublicMailboxReq {
  1851  	req := &CreatePublicMailboxReq{}
  1852  	req.apiReq = &larkcore.ApiReq{}
  1853  	req.apiReq.Body = builder.publicMailbox
  1854  	return req
  1855  }
  1856  
  1857  type CreatePublicMailboxReq struct {
  1858  	apiReq        *larkcore.ApiReq
  1859  	PublicMailbox *PublicMailbox `body:""`
  1860  }
  1861  
  1862  type CreatePublicMailboxRespData struct {
  1863  	PublicMailboxId *string `json:"public_mailbox_id,omitempty"` // The unique ID of a public mailbox
  1864  	Email           *string `json:"email,omitempty"`             // The public mailbox's email address
  1865  	Name            *string `json:"name,omitempty"`              // The public mailbox's display name
  1866  }
  1867  
  1868  type CreatePublicMailboxResp struct {
  1869  	*larkcore.ApiResp `json:"-"`
  1870  	larkcore.CodeError
  1871  	Data *CreatePublicMailboxRespData `json:"data"` // 业务数据
  1872  }
  1873  
  1874  func (resp *CreatePublicMailboxResp) Success() bool {
  1875  	return resp.Code == 0
  1876  }
  1877  
  1878  type DeletePublicMailboxReqBuilder struct {
  1879  	apiReq *larkcore.ApiReq
  1880  }
  1881  
  1882  func NewDeletePublicMailboxReqBuilder() *DeletePublicMailboxReqBuilder {
  1883  	builder := &DeletePublicMailboxReqBuilder{}
  1884  	builder.apiReq = &larkcore.ApiReq{
  1885  		PathParams:  larkcore.PathParams{},
  1886  		QueryParams: larkcore.QueryParams{},
  1887  	}
  1888  	return builder
  1889  }
  1890  
  1891  // 要释放的公共邮箱地址
  1892  //
  1893  // 示例值:xxxxxx@abc.com
  1894  func (builder *DeletePublicMailboxReqBuilder) PublicMailboxId(publicMailboxId string) *DeletePublicMailboxReqBuilder {
  1895  	builder.apiReq.PathParams.Set("public_mailbox_id", fmt.Sprint(publicMailboxId))
  1896  	return builder
  1897  }
  1898  
  1899  func (builder *DeletePublicMailboxReqBuilder) Build() *DeletePublicMailboxReq {
  1900  	req := &DeletePublicMailboxReq{}
  1901  	req.apiReq = &larkcore.ApiReq{}
  1902  	req.apiReq.PathParams = builder.apiReq.PathParams
  1903  	return req
  1904  }
  1905  
  1906  type DeletePublicMailboxReq struct {
  1907  	apiReq *larkcore.ApiReq
  1908  }
  1909  
  1910  type DeletePublicMailboxResp struct {
  1911  	*larkcore.ApiResp `json:"-"`
  1912  	larkcore.CodeError
  1913  }
  1914  
  1915  func (resp *DeletePublicMailboxResp) Success() bool {
  1916  	return resp.Code == 0
  1917  }
  1918  
  1919  type GetPublicMailboxReqBuilder struct {
  1920  	apiReq *larkcore.ApiReq
  1921  }
  1922  
  1923  func NewGetPublicMailboxReqBuilder() *GetPublicMailboxReqBuilder {
  1924  	builder := &GetPublicMailboxReqBuilder{}
  1925  	builder.apiReq = &larkcore.ApiReq{
  1926  		PathParams:  larkcore.PathParams{},
  1927  		QueryParams: larkcore.QueryParams{},
  1928  	}
  1929  	return builder
  1930  }
  1931  
  1932  // 公共邮箱唯一标识或公共邮箱地址
  1933  //
  1934  // 示例值:xxxxxxxxxxxxxxx 或 test_public_mailbox@xxx.xx
  1935  func (builder *GetPublicMailboxReqBuilder) PublicMailboxId(publicMailboxId string) *GetPublicMailboxReqBuilder {
  1936  	builder.apiReq.PathParams.Set("public_mailbox_id", fmt.Sprint(publicMailboxId))
  1937  	return builder
  1938  }
  1939  
  1940  func (builder *GetPublicMailboxReqBuilder) Build() *GetPublicMailboxReq {
  1941  	req := &GetPublicMailboxReq{}
  1942  	req.apiReq = &larkcore.ApiReq{}
  1943  	req.apiReq.PathParams = builder.apiReq.PathParams
  1944  	return req
  1945  }
  1946  
  1947  type GetPublicMailboxReq struct {
  1948  	apiReq *larkcore.ApiReq
  1949  }
  1950  
  1951  type GetPublicMailboxRespData struct {
  1952  	PublicMailboxId *string `json:"public_mailbox_id,omitempty"` // The unique ID of a public mailbox
  1953  	Email           *string `json:"email,omitempty"`             // The public mailbox's email address
  1954  	Name            *string `json:"name,omitempty"`              // The public mailbox's display name
  1955  }
  1956  
  1957  type GetPublicMailboxResp struct {
  1958  	*larkcore.ApiResp `json:"-"`
  1959  	larkcore.CodeError
  1960  	Data *GetPublicMailboxRespData `json:"data"` // 业务数据
  1961  }
  1962  
  1963  func (resp *GetPublicMailboxResp) Success() bool {
  1964  	return resp.Code == 0
  1965  }
  1966  
  1967  type ListPublicMailboxReqBuilder struct {
  1968  	apiReq *larkcore.ApiReq
  1969  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  1970  }
  1971  
  1972  func NewListPublicMailboxReqBuilder() *ListPublicMailboxReqBuilder {
  1973  	builder := &ListPublicMailboxReqBuilder{}
  1974  	builder.apiReq = &larkcore.ApiReq{
  1975  		PathParams:  larkcore.PathParams{},
  1976  		QueryParams: larkcore.QueryParams{},
  1977  	}
  1978  	return builder
  1979  }
  1980  
  1981  // 最大返回多少记录,当使用迭代器访问时才有效
  1982  func (builder *ListPublicMailboxReqBuilder) Limit(limit int) *ListPublicMailboxReqBuilder {
  1983  	builder.limit = limit
  1984  	return builder
  1985  }
  1986  
  1987  //
  1988  //
  1989  // 示例值:xxx
  1990  func (builder *ListPublicMailboxReqBuilder) PageToken(pageToken string) *ListPublicMailboxReqBuilder {
  1991  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  1992  	return builder
  1993  }
  1994  
  1995  //
  1996  //
  1997  // 示例值:10
  1998  func (builder *ListPublicMailboxReqBuilder) PageSize(pageSize int) *ListPublicMailboxReqBuilder {
  1999  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  2000  	return builder
  2001  }
  2002  
  2003  func (builder *ListPublicMailboxReqBuilder) Build() *ListPublicMailboxReq {
  2004  	req := &ListPublicMailboxReq{}
  2005  	req.apiReq = &larkcore.ApiReq{}
  2006  	req.Limit = builder.limit
  2007  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  2008  	return req
  2009  }
  2010  
  2011  type ListPublicMailboxReq struct {
  2012  	apiReq *larkcore.ApiReq
  2013  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
  2014  
  2015  }
  2016  
  2017  type ListPublicMailboxRespData struct {
  2018  	HasMore   *bool            `json:"has_more,omitempty"`   // 是否有下一页数据
  2019  	PageToken *string          `json:"page_token,omitempty"` // 下一页分页的token
  2020  	Items     []*PublicMailbox `json:"items,omitempty"`      // 公共邮箱列表
  2021  }
  2022  
  2023  type ListPublicMailboxResp struct {
  2024  	*larkcore.ApiResp `json:"-"`
  2025  	larkcore.CodeError
  2026  	Data *ListPublicMailboxRespData `json:"data"` // 业务数据
  2027  }
  2028  
  2029  func (resp *ListPublicMailboxResp) Success() bool {
  2030  	return resp.Code == 0
  2031  }
  2032  
  2033  type PatchPublicMailboxReqBuilder struct {
  2034  	apiReq        *larkcore.ApiReq
  2035  	publicMailbox *PublicMailbox
  2036  }
  2037  
  2038  func NewPatchPublicMailboxReqBuilder() *PatchPublicMailboxReqBuilder {
  2039  	builder := &PatchPublicMailboxReqBuilder{}
  2040  	builder.apiReq = &larkcore.ApiReq{
  2041  		PathParams:  larkcore.PathParams{},
  2042  		QueryParams: larkcore.QueryParams{},
  2043  	}
  2044  	return builder
  2045  }
  2046  
  2047  // 公共邮箱唯一标识或公共邮箱地址
  2048  //
  2049  // 示例值:xxxxxxxxxxxxxxx 或 test_public_mailbox@xxx.xx
  2050  func (builder *PatchPublicMailboxReqBuilder) PublicMailboxId(publicMailboxId string) *PatchPublicMailboxReqBuilder {
  2051  	builder.apiReq.PathParams.Set("public_mailbox_id", fmt.Sprint(publicMailboxId))
  2052  	return builder
  2053  }
  2054  
  2055  // 更新公共邮箱部分字段,没有填写的字段不会被更新
  2056  func (builder *PatchPublicMailboxReqBuilder) PublicMailbox(publicMailbox *PublicMailbox) *PatchPublicMailboxReqBuilder {
  2057  	builder.publicMailbox = publicMailbox
  2058  	return builder
  2059  }
  2060  
  2061  func (builder *PatchPublicMailboxReqBuilder) Build() *PatchPublicMailboxReq {
  2062  	req := &PatchPublicMailboxReq{}
  2063  	req.apiReq = &larkcore.ApiReq{}
  2064  	req.apiReq.PathParams = builder.apiReq.PathParams
  2065  	req.apiReq.Body = builder.publicMailbox
  2066  	return req
  2067  }
  2068  
  2069  type PatchPublicMailboxReq struct {
  2070  	apiReq        *larkcore.ApiReq
  2071  	PublicMailbox *PublicMailbox `body:""`
  2072  }
  2073  
  2074  type PatchPublicMailboxRespData struct {
  2075  	PublicMailboxId *string `json:"public_mailbox_id,omitempty"` // The unique ID of a public mailbox
  2076  	Email           *string `json:"email,omitempty"`             // The public mailbox's email address
  2077  	Name            *string `json:"name,omitempty"`              // The public mailbox's display name
  2078  }
  2079  
  2080  type PatchPublicMailboxResp struct {
  2081  	*larkcore.ApiResp `json:"-"`
  2082  	larkcore.CodeError
  2083  	Data *PatchPublicMailboxRespData `json:"data"` // 业务数据
  2084  }
  2085  
  2086  func (resp *PatchPublicMailboxResp) Success() bool {
  2087  	return resp.Code == 0
  2088  }
  2089  
  2090  type UpdatePublicMailboxReqBuilder struct {
  2091  	apiReq        *larkcore.ApiReq
  2092  	publicMailbox *PublicMailbox
  2093  }
  2094  
  2095  func NewUpdatePublicMailboxReqBuilder() *UpdatePublicMailboxReqBuilder {
  2096  	builder := &UpdatePublicMailboxReqBuilder{}
  2097  	builder.apiReq = &larkcore.ApiReq{
  2098  		PathParams:  larkcore.PathParams{},
  2099  		QueryParams: larkcore.QueryParams{},
  2100  	}
  2101  	return builder
  2102  }
  2103  
  2104  // 公共邮箱唯一标识或公共邮箱地址
  2105  //
  2106  // 示例值:xxxxxxxxxxxxxxx 或 test_public_mailbox@xxx.xx
  2107  func (builder *UpdatePublicMailboxReqBuilder) PublicMailboxId(publicMailboxId string) *UpdatePublicMailboxReqBuilder {
  2108  	builder.apiReq.PathParams.Set("public_mailbox_id", fmt.Sprint(publicMailboxId))
  2109  	return builder
  2110  }
  2111  
  2112  // 更新公共邮箱所有信息
  2113  func (builder *UpdatePublicMailboxReqBuilder) PublicMailbox(publicMailbox *PublicMailbox) *UpdatePublicMailboxReqBuilder {
  2114  	builder.publicMailbox = publicMailbox
  2115  	return builder
  2116  }
  2117  
  2118  func (builder *UpdatePublicMailboxReqBuilder) Build() *UpdatePublicMailboxReq {
  2119  	req := &UpdatePublicMailboxReq{}
  2120  	req.apiReq = &larkcore.ApiReq{}
  2121  	req.apiReq.PathParams = builder.apiReq.PathParams
  2122  	req.apiReq.Body = builder.publicMailbox
  2123  	return req
  2124  }
  2125  
  2126  type UpdatePublicMailboxReq struct {
  2127  	apiReq        *larkcore.ApiReq
  2128  	PublicMailbox *PublicMailbox `body:""`
  2129  }
  2130  
  2131  type UpdatePublicMailboxRespData struct {
  2132  	PublicMailboxId *string `json:"public_mailbox_id,omitempty"` // The unique ID of a public mailbox
  2133  	Email           *string `json:"email,omitempty"`             // The public mailbox's email address
  2134  	Name            *string `json:"name,omitempty"`              // The public mailbox's display name
  2135  }
  2136  
  2137  type UpdatePublicMailboxResp struct {
  2138  	*larkcore.ApiResp `json:"-"`
  2139  	larkcore.CodeError
  2140  	Data *UpdatePublicMailboxRespData `json:"data"` // 业务数据
  2141  }
  2142  
  2143  func (resp *UpdatePublicMailboxResp) Success() bool {
  2144  	return resp.Code == 0
  2145  }
  2146  
  2147  type CreatePublicMailboxAliasReqBuilder struct {
  2148  	apiReq     *larkcore.ApiReq
  2149  	emailAlias *EmailAlias
  2150  }
  2151  
  2152  func NewCreatePublicMailboxAliasReqBuilder() *CreatePublicMailboxAliasReqBuilder {
  2153  	builder := &CreatePublicMailboxAliasReqBuilder{}
  2154  	builder.apiReq = &larkcore.ApiReq{
  2155  		PathParams:  larkcore.PathParams{},
  2156  		QueryParams: larkcore.QueryParams{},
  2157  	}
  2158  	return builder
  2159  }
  2160  
  2161  // 公共邮箱id或公共邮箱地址
  2162  //
  2163  // 示例值:xxxxxx 或 xxx@xx.xxx
  2164  func (builder *CreatePublicMailboxAliasReqBuilder) PublicMailboxId(publicMailboxId string) *CreatePublicMailboxAliasReqBuilder {
  2165  	builder.apiReq.PathParams.Set("public_mailbox_id", fmt.Sprint(publicMailboxId))
  2166  	return builder
  2167  }
  2168  
  2169  // 创建公共邮箱别名
  2170  func (builder *CreatePublicMailboxAliasReqBuilder) EmailAlias(emailAlias *EmailAlias) *CreatePublicMailboxAliasReqBuilder {
  2171  	builder.emailAlias = emailAlias
  2172  	return builder
  2173  }
  2174  
  2175  func (builder *CreatePublicMailboxAliasReqBuilder) Build() *CreatePublicMailboxAliasReq {
  2176  	req := &CreatePublicMailboxAliasReq{}
  2177  	req.apiReq = &larkcore.ApiReq{}
  2178  	req.apiReq.PathParams = builder.apiReq.PathParams
  2179  	req.apiReq.Body = builder.emailAlias
  2180  	return req
  2181  }
  2182  
  2183  type CreatePublicMailboxAliasReq struct {
  2184  	apiReq     *larkcore.ApiReq
  2185  	EmailAlias *EmailAlias `body:""`
  2186  }
  2187  
  2188  type CreatePublicMailboxAliasRespData struct {
  2189  	PublicMailboxAlias *EmailAlias `json:"public_mailbox_alias,omitempty"` // 公共邮箱别名
  2190  }
  2191  
  2192  type CreatePublicMailboxAliasResp struct {
  2193  	*larkcore.ApiResp `json:"-"`
  2194  	larkcore.CodeError
  2195  	Data *CreatePublicMailboxAliasRespData `json:"data"` // 业务数据
  2196  }
  2197  
  2198  func (resp *CreatePublicMailboxAliasResp) Success() bool {
  2199  	return resp.Code == 0
  2200  }
  2201  
  2202  type DeletePublicMailboxAliasReqBuilder struct {
  2203  	apiReq *larkcore.ApiReq
  2204  }
  2205  
  2206  func NewDeletePublicMailboxAliasReqBuilder() *DeletePublicMailboxAliasReqBuilder {
  2207  	builder := &DeletePublicMailboxAliasReqBuilder{}
  2208  	builder.apiReq = &larkcore.ApiReq{
  2209  		PathParams:  larkcore.PathParams{},
  2210  		QueryParams: larkcore.QueryParams{},
  2211  	}
  2212  	return builder
  2213  }
  2214  
  2215  // 公共邮箱id或公共邮箱地址
  2216  //
  2217  // 示例值:xxxxxx 或 xxx@xx.xxx
  2218  func (builder *DeletePublicMailboxAliasReqBuilder) PublicMailboxId(publicMailboxId string) *DeletePublicMailboxAliasReqBuilder {
  2219  	builder.apiReq.PathParams.Set("public_mailbox_id", fmt.Sprint(publicMailboxId))
  2220  	return builder
  2221  }
  2222  
  2223  // 公共邮箱别名
  2224  //
  2225  // 示例值:xxx@xx.xxx
  2226  func (builder *DeletePublicMailboxAliasReqBuilder) AliasId(aliasId string) *DeletePublicMailboxAliasReqBuilder {
  2227  	builder.apiReq.PathParams.Set("alias_id", fmt.Sprint(aliasId))
  2228  	return builder
  2229  }
  2230  
  2231  func (builder *DeletePublicMailboxAliasReqBuilder) Build() *DeletePublicMailboxAliasReq {
  2232  	req := &DeletePublicMailboxAliasReq{}
  2233  	req.apiReq = &larkcore.ApiReq{}
  2234  	req.apiReq.PathParams = builder.apiReq.PathParams
  2235  	return req
  2236  }
  2237  
  2238  type DeletePublicMailboxAliasReq struct {
  2239  	apiReq *larkcore.ApiReq
  2240  }
  2241  
  2242  type DeletePublicMailboxAliasResp struct {
  2243  	*larkcore.ApiResp `json:"-"`
  2244  	larkcore.CodeError
  2245  }
  2246  
  2247  func (resp *DeletePublicMailboxAliasResp) Success() bool {
  2248  	return resp.Code == 0
  2249  }
  2250  
  2251  type ListPublicMailboxAliasReqBuilder struct {
  2252  	apiReq *larkcore.ApiReq
  2253  }
  2254  
  2255  func NewListPublicMailboxAliasReqBuilder() *ListPublicMailboxAliasReqBuilder {
  2256  	builder := &ListPublicMailboxAliasReqBuilder{}
  2257  	builder.apiReq = &larkcore.ApiReq{
  2258  		PathParams:  larkcore.PathParams{},
  2259  		QueryParams: larkcore.QueryParams{},
  2260  	}
  2261  	return builder
  2262  }
  2263  
  2264  // 公共邮箱id或公共邮箱邮件地址
  2265  //
  2266  // 示例值:xxxxxx 或 xxx@xx.xxx
  2267  func (builder *ListPublicMailboxAliasReqBuilder) PublicMailboxId(publicMailboxId string) *ListPublicMailboxAliasReqBuilder {
  2268  	builder.apiReq.PathParams.Set("public_mailbox_id", fmt.Sprint(publicMailboxId))
  2269  	return builder
  2270  }
  2271  
  2272  func (builder *ListPublicMailboxAliasReqBuilder) Build() *ListPublicMailboxAliasReq {
  2273  	req := &ListPublicMailboxAliasReq{}
  2274  	req.apiReq = &larkcore.ApiReq{}
  2275  	req.apiReq.PathParams = builder.apiReq.PathParams
  2276  	return req
  2277  }
  2278  
  2279  type ListPublicMailboxAliasReq struct {
  2280  	apiReq *larkcore.ApiReq
  2281  }
  2282  
  2283  type ListPublicMailboxAliasRespData struct {
  2284  	Items []*EmailAlias `json:"items,omitempty"` // 公共邮箱别名
  2285  }
  2286  
  2287  type ListPublicMailboxAliasResp struct {
  2288  	*larkcore.ApiResp `json:"-"`
  2289  	larkcore.CodeError
  2290  	Data *ListPublicMailboxAliasRespData `json:"data"` // 业务数据
  2291  }
  2292  
  2293  func (resp *ListPublicMailboxAliasResp) Success() bool {
  2294  	return resp.Code == 0
  2295  }
  2296  
  2297  type ClearPublicMailboxMemberReqBuilder struct {
  2298  	apiReq *larkcore.ApiReq
  2299  }
  2300  
  2301  func NewClearPublicMailboxMemberReqBuilder() *ClearPublicMailboxMemberReqBuilder {
  2302  	builder := &ClearPublicMailboxMemberReqBuilder{}
  2303  	builder.apiReq = &larkcore.ApiReq{
  2304  		PathParams:  larkcore.PathParams{},
  2305  		QueryParams: larkcore.QueryParams{},
  2306  	}
  2307  	return builder
  2308  }
  2309  
  2310  // 公共邮箱唯一标识或公共邮箱地址
  2311  //
  2312  // 示例值:xxxxxxxxxxxxxxx 或 test_public_mailbox@xxx.xx
  2313  func (builder *ClearPublicMailboxMemberReqBuilder) PublicMailboxId(publicMailboxId string) *ClearPublicMailboxMemberReqBuilder {
  2314  	builder.apiReq.PathParams.Set("public_mailbox_id", fmt.Sprint(publicMailboxId))
  2315  	return builder
  2316  }
  2317  
  2318  func (builder *ClearPublicMailboxMemberReqBuilder) Build() *ClearPublicMailboxMemberReq {
  2319  	req := &ClearPublicMailboxMemberReq{}
  2320  	req.apiReq = &larkcore.ApiReq{}
  2321  	req.apiReq.PathParams = builder.apiReq.PathParams
  2322  	return req
  2323  }
  2324  
  2325  type ClearPublicMailboxMemberReq struct {
  2326  	apiReq *larkcore.ApiReq
  2327  }
  2328  
  2329  type ClearPublicMailboxMemberResp struct {
  2330  	*larkcore.ApiResp `json:"-"`
  2331  	larkcore.CodeError
  2332  }
  2333  
  2334  func (resp *ClearPublicMailboxMemberResp) Success() bool {
  2335  	return resp.Code == 0
  2336  }
  2337  
  2338  type CreatePublicMailboxMemberReqBuilder struct {
  2339  	apiReq              *larkcore.ApiReq
  2340  	publicMailboxMember *PublicMailboxMember
  2341  }
  2342  
  2343  func NewCreatePublicMailboxMemberReqBuilder() *CreatePublicMailboxMemberReqBuilder {
  2344  	builder := &CreatePublicMailboxMemberReqBuilder{}
  2345  	builder.apiReq = &larkcore.ApiReq{
  2346  		PathParams:  larkcore.PathParams{},
  2347  		QueryParams: larkcore.QueryParams{},
  2348  	}
  2349  	return builder
  2350  }
  2351  
  2352  // 公共邮箱唯一标识或公共邮箱地址
  2353  //
  2354  // 示例值:xxxxxxxxxxxxxxx 或 test_public_mailbox@xxx.xx
  2355  func (builder *CreatePublicMailboxMemberReqBuilder) PublicMailboxId(publicMailboxId string) *CreatePublicMailboxMemberReqBuilder {
  2356  	builder.apiReq.PathParams.Set("public_mailbox_id", fmt.Sprint(publicMailboxId))
  2357  	return builder
  2358  }
  2359  
  2360  // 此次调用中使用的用户ID的类型
  2361  //
  2362  // 示例值:
  2363  func (builder *CreatePublicMailboxMemberReqBuilder) UserIdType(userIdType string) *CreatePublicMailboxMemberReqBuilder {
  2364  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  2365  	return builder
  2366  }
  2367  
  2368  // 向公共邮箱添加单个成员
  2369  func (builder *CreatePublicMailboxMemberReqBuilder) PublicMailboxMember(publicMailboxMember *PublicMailboxMember) *CreatePublicMailboxMemberReqBuilder {
  2370  	builder.publicMailboxMember = publicMailboxMember
  2371  	return builder
  2372  }
  2373  
  2374  func (builder *CreatePublicMailboxMemberReqBuilder) Build() *CreatePublicMailboxMemberReq {
  2375  	req := &CreatePublicMailboxMemberReq{}
  2376  	req.apiReq = &larkcore.ApiReq{}
  2377  	req.apiReq.PathParams = builder.apiReq.PathParams
  2378  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  2379  	req.apiReq.Body = builder.publicMailboxMember
  2380  	return req
  2381  }
  2382  
  2383  type CreatePublicMailboxMemberReq struct {
  2384  	apiReq              *larkcore.ApiReq
  2385  	PublicMailboxMember *PublicMailboxMember `body:""`
  2386  }
  2387  
  2388  type CreatePublicMailboxMemberRespData struct {
  2389  	MemberId *string `json:"member_id,omitempty"` // The unique ID of a member in this public mailbox
  2390  	UserId   *string `json:"user_id,omitempty"`   // The member's user id. Value is valid when type is USER
  2391  	Type     *string `json:"type,omitempty"`      // The type of member. Possible values are:;- USER: internal user in the team
  2392  }
  2393  
  2394  type CreatePublicMailboxMemberResp struct {
  2395  	*larkcore.ApiResp `json:"-"`
  2396  	larkcore.CodeError
  2397  	Data *CreatePublicMailboxMemberRespData `json:"data"` // 业务数据
  2398  }
  2399  
  2400  func (resp *CreatePublicMailboxMemberResp) Success() bool {
  2401  	return resp.Code == 0
  2402  }
  2403  
  2404  type DeletePublicMailboxMemberReqBuilder struct {
  2405  	apiReq *larkcore.ApiReq
  2406  }
  2407  
  2408  func NewDeletePublicMailboxMemberReqBuilder() *DeletePublicMailboxMemberReqBuilder {
  2409  	builder := &DeletePublicMailboxMemberReqBuilder{}
  2410  	builder.apiReq = &larkcore.ApiReq{
  2411  		PathParams:  larkcore.PathParams{},
  2412  		QueryParams: larkcore.QueryParams{},
  2413  	}
  2414  	return builder
  2415  }
  2416  
  2417  // 公共邮箱唯一标识或公共邮箱地址
  2418  //
  2419  // 示例值:xxxxxxxxxxxxxxx 或 test_public_mailbox@xxx.xx
  2420  func (builder *DeletePublicMailboxMemberReqBuilder) PublicMailboxId(publicMailboxId string) *DeletePublicMailboxMemberReqBuilder {
  2421  	builder.apiReq.PathParams.Set("public_mailbox_id", fmt.Sprint(publicMailboxId))
  2422  	return builder
  2423  }
  2424  
  2425  // 公共邮箱内成员唯一标识
  2426  //
  2427  // 示例值:xxxxxxxxxxxxxxx
  2428  func (builder *DeletePublicMailboxMemberReqBuilder) MemberId(memberId string) *DeletePublicMailboxMemberReqBuilder {
  2429  	builder.apiReq.PathParams.Set("member_id", fmt.Sprint(memberId))
  2430  	return builder
  2431  }
  2432  
  2433  func (builder *DeletePublicMailboxMemberReqBuilder) Build() *DeletePublicMailboxMemberReq {
  2434  	req := &DeletePublicMailboxMemberReq{}
  2435  	req.apiReq = &larkcore.ApiReq{}
  2436  	req.apiReq.PathParams = builder.apiReq.PathParams
  2437  	return req
  2438  }
  2439  
  2440  type DeletePublicMailboxMemberReq struct {
  2441  	apiReq *larkcore.ApiReq
  2442  }
  2443  
  2444  type DeletePublicMailboxMemberResp struct {
  2445  	*larkcore.ApiResp `json:"-"`
  2446  	larkcore.CodeError
  2447  }
  2448  
  2449  func (resp *DeletePublicMailboxMemberResp) Success() bool {
  2450  	return resp.Code == 0
  2451  }
  2452  
  2453  type GetPublicMailboxMemberReqBuilder struct {
  2454  	apiReq *larkcore.ApiReq
  2455  }
  2456  
  2457  func NewGetPublicMailboxMemberReqBuilder() *GetPublicMailboxMemberReqBuilder {
  2458  	builder := &GetPublicMailboxMemberReqBuilder{}
  2459  	builder.apiReq = &larkcore.ApiReq{
  2460  		PathParams:  larkcore.PathParams{},
  2461  		QueryParams: larkcore.QueryParams{},
  2462  	}
  2463  	return builder
  2464  }
  2465  
  2466  // 公共邮箱唯一标识或公共邮箱地址
  2467  //
  2468  // 示例值:xxxxxxxxxxxxxxx 或 test_public_mailbox@xxx.xx
  2469  func (builder *GetPublicMailboxMemberReqBuilder) PublicMailboxId(publicMailboxId string) *GetPublicMailboxMemberReqBuilder {
  2470  	builder.apiReq.PathParams.Set("public_mailbox_id", fmt.Sprint(publicMailboxId))
  2471  	return builder
  2472  }
  2473  
  2474  // 公共邮箱内成员唯一标识
  2475  //
  2476  // 示例值:xxxxxxxxxxxxxxx
  2477  func (builder *GetPublicMailboxMemberReqBuilder) MemberId(memberId string) *GetPublicMailboxMemberReqBuilder {
  2478  	builder.apiReq.PathParams.Set("member_id", fmt.Sprint(memberId))
  2479  	return builder
  2480  }
  2481  
  2482  // 此次调用中使用的用户ID的类型
  2483  //
  2484  // 示例值:
  2485  func (builder *GetPublicMailboxMemberReqBuilder) UserIdType(userIdType string) *GetPublicMailboxMemberReqBuilder {
  2486  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  2487  	return builder
  2488  }
  2489  
  2490  func (builder *GetPublicMailboxMemberReqBuilder) Build() *GetPublicMailboxMemberReq {
  2491  	req := &GetPublicMailboxMemberReq{}
  2492  	req.apiReq = &larkcore.ApiReq{}
  2493  	req.apiReq.PathParams = builder.apiReq.PathParams
  2494  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  2495  	return req
  2496  }
  2497  
  2498  type GetPublicMailboxMemberReq struct {
  2499  	apiReq *larkcore.ApiReq
  2500  }
  2501  
  2502  type GetPublicMailboxMemberRespData struct {
  2503  	MemberId *string `json:"member_id,omitempty"` // The unique ID of a member in this public mailbox
  2504  	UserId   *string `json:"user_id,omitempty"`   // The member's user id. Value is valid when type is USER
  2505  	Type     *string `json:"type,omitempty"`      // The type of member. Possible values are:;- USER: internal user in the team
  2506  }
  2507  
  2508  type GetPublicMailboxMemberResp struct {
  2509  	*larkcore.ApiResp `json:"-"`
  2510  	larkcore.CodeError
  2511  	Data *GetPublicMailboxMemberRespData `json:"data"` // 业务数据
  2512  }
  2513  
  2514  func (resp *GetPublicMailboxMemberResp) Success() bool {
  2515  	return resp.Code == 0
  2516  }
  2517  
  2518  type ListPublicMailboxMemberReqBuilder struct {
  2519  	apiReq *larkcore.ApiReq
  2520  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  2521  }
  2522  
  2523  func NewListPublicMailboxMemberReqBuilder() *ListPublicMailboxMemberReqBuilder {
  2524  	builder := &ListPublicMailboxMemberReqBuilder{}
  2525  	builder.apiReq = &larkcore.ApiReq{
  2526  		PathParams:  larkcore.PathParams{},
  2527  		QueryParams: larkcore.QueryParams{},
  2528  	}
  2529  	return builder
  2530  }
  2531  
  2532  // 最大返回多少记录,当使用迭代器访问时才有效
  2533  func (builder *ListPublicMailboxMemberReqBuilder) Limit(limit int) *ListPublicMailboxMemberReqBuilder {
  2534  	builder.limit = limit
  2535  	return builder
  2536  }
  2537  
  2538  // The unique ID or email address of a public mailbox
  2539  //
  2540  // 示例值:xxxxxxxxxxxxxxx or test_public_mailbox@xxx.xx
  2541  func (builder *ListPublicMailboxMemberReqBuilder) PublicMailboxId(publicMailboxId string) *ListPublicMailboxMemberReqBuilder {
  2542  	builder.apiReq.PathParams.Set("public_mailbox_id", fmt.Sprint(publicMailboxId))
  2543  	return builder
  2544  }
  2545  
  2546  // 此次调用中使用的用户ID的类型
  2547  //
  2548  // 示例值:
  2549  func (builder *ListPublicMailboxMemberReqBuilder) UserIdType(userIdType string) *ListPublicMailboxMemberReqBuilder {
  2550  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  2551  	return builder
  2552  }
  2553  
  2554  //
  2555  //
  2556  // 示例值:xxx
  2557  func (builder *ListPublicMailboxMemberReqBuilder) PageToken(pageToken string) *ListPublicMailboxMemberReqBuilder {
  2558  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  2559  	return builder
  2560  }
  2561  
  2562  //
  2563  //
  2564  // 示例值:10
  2565  func (builder *ListPublicMailboxMemberReqBuilder) PageSize(pageSize int) *ListPublicMailboxMemberReqBuilder {
  2566  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  2567  	return builder
  2568  }
  2569  
  2570  func (builder *ListPublicMailboxMemberReqBuilder) Build() *ListPublicMailboxMemberReq {
  2571  	req := &ListPublicMailboxMemberReq{}
  2572  	req.apiReq = &larkcore.ApiReq{}
  2573  	req.Limit = builder.limit
  2574  	req.apiReq.PathParams = builder.apiReq.PathParams
  2575  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  2576  	return req
  2577  }
  2578  
  2579  type ListPublicMailboxMemberReq struct {
  2580  	apiReq *larkcore.ApiReq
  2581  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
  2582  
  2583  }
  2584  
  2585  type ListPublicMailboxMemberRespData struct {
  2586  	HasMore   *bool                  `json:"has_more,omitempty"`   // 是否有下一页数据
  2587  	PageToken *string                `json:"page_token,omitempty"` // 下一页分页的token
  2588  	Items     []*PublicMailboxMember `json:"items,omitempty"`      // 公共邮箱成员列表
  2589  }
  2590  
  2591  type ListPublicMailboxMemberResp struct {
  2592  	*larkcore.ApiResp `json:"-"`
  2593  	larkcore.CodeError
  2594  	Data *ListPublicMailboxMemberRespData `json:"data"` // 业务数据
  2595  }
  2596  
  2597  func (resp *ListPublicMailboxMemberResp) Success() bool {
  2598  	return resp.Code == 0
  2599  }
  2600  
  2601  type QueryUserReqBodyBuilder struct {
  2602  	emailList     []string // 需要查询的邮箱地址列表
  2603  	emailListFlag bool
  2604  }
  2605  
  2606  func NewQueryUserReqBodyBuilder() *QueryUserReqBodyBuilder {
  2607  	builder := &QueryUserReqBodyBuilder{}
  2608  	return builder
  2609  }
  2610  
  2611  // 需要查询的邮箱地址列表
  2612  //
  2613  //示例值:["aaa@lark.com","bbb@lark.com"]
  2614  func (builder *QueryUserReqBodyBuilder) EmailList(emailList []string) *QueryUserReqBodyBuilder {
  2615  	builder.emailList = emailList
  2616  	builder.emailListFlag = true
  2617  	return builder
  2618  }
  2619  
  2620  func (builder *QueryUserReqBodyBuilder) Build() *QueryUserReqBody {
  2621  	req := &QueryUserReqBody{}
  2622  	if builder.emailListFlag {
  2623  		req.EmailList = builder.emailList
  2624  	}
  2625  	return req
  2626  }
  2627  
  2628  type QueryUserPathReqBodyBuilder struct {
  2629  	emailList     []string // 需要查询的邮箱地址列表
  2630  	emailListFlag bool
  2631  }
  2632  
  2633  func NewQueryUserPathReqBodyBuilder() *QueryUserPathReqBodyBuilder {
  2634  	builder := &QueryUserPathReqBodyBuilder{}
  2635  	return builder
  2636  }
  2637  
  2638  // 需要查询的邮箱地址列表
  2639  //
  2640  // 示例值:["aaa@lark.com","bbb@lark.com"]
  2641  func (builder *QueryUserPathReqBodyBuilder) EmailList(emailList []string) *QueryUserPathReqBodyBuilder {
  2642  	builder.emailList = emailList
  2643  	builder.emailListFlag = true
  2644  	return builder
  2645  }
  2646  
  2647  func (builder *QueryUserPathReqBodyBuilder) Build() (*QueryUserReqBody, error) {
  2648  	req := &QueryUserReqBody{}
  2649  	if builder.emailListFlag {
  2650  		req.EmailList = builder.emailList
  2651  	}
  2652  	return req, nil
  2653  }
  2654  
  2655  type QueryUserReqBuilder struct {
  2656  	apiReq *larkcore.ApiReq
  2657  	body   *QueryUserReqBody
  2658  }
  2659  
  2660  func NewQueryUserReqBuilder() *QueryUserReqBuilder {
  2661  	builder := &QueryUserReqBuilder{}
  2662  	builder.apiReq = &larkcore.ApiReq{
  2663  		PathParams:  larkcore.PathParams{},
  2664  		QueryParams: larkcore.QueryParams{},
  2665  	}
  2666  	return builder
  2667  }
  2668  
  2669  // 使用邮箱状态查询接口,可以输入邮箱地址,查询出该邮箱地址对应的类型以及状态
  2670  func (builder *QueryUserReqBuilder) Body(body *QueryUserReqBody) *QueryUserReqBuilder {
  2671  	builder.body = body
  2672  	return builder
  2673  }
  2674  
  2675  func (builder *QueryUserReqBuilder) Build() *QueryUserReq {
  2676  	req := &QueryUserReq{}
  2677  	req.apiReq = &larkcore.ApiReq{}
  2678  	req.apiReq.Body = builder.body
  2679  	return req
  2680  }
  2681  
  2682  type QueryUserReqBody struct {
  2683  	EmailList []string `json:"email_list,omitempty"` // 需要查询的邮箱地址列表
  2684  }
  2685  
  2686  type QueryUserReq struct {
  2687  	apiReq *larkcore.ApiReq
  2688  	Body   *QueryUserReqBody `body:""`
  2689  }
  2690  
  2691  type QueryUserRespData struct {
  2692  	UserList []*User `json:"user_list,omitempty"` // 邮箱地址以及其对应的类型类型和状态
  2693  }
  2694  
  2695  type QueryUserResp struct {
  2696  	*larkcore.ApiResp `json:"-"`
  2697  	larkcore.CodeError
  2698  	Data *QueryUserRespData `json:"data"` // 业务数据
  2699  }
  2700  
  2701  func (resp *QueryUserResp) Success() bool {
  2702  	return resp.Code == 0
  2703  }
  2704  
  2705  type DeleteUserMailboxReqBuilder struct {
  2706  	apiReq *larkcore.ApiReq
  2707  }
  2708  
  2709  func NewDeleteUserMailboxReqBuilder() *DeleteUserMailboxReqBuilder {
  2710  	builder := &DeleteUserMailboxReqBuilder{}
  2711  	builder.apiReq = &larkcore.ApiReq{
  2712  		PathParams:  larkcore.PathParams{},
  2713  		QueryParams: larkcore.QueryParams{},
  2714  	}
  2715  	return builder
  2716  }
  2717  
  2718  // 要释放的邮箱地址
  2719  //
  2720  // 示例值:111111@abc.com
  2721  func (builder *DeleteUserMailboxReqBuilder) UserMailboxId(userMailboxId string) *DeleteUserMailboxReqBuilder {
  2722  	builder.apiReq.PathParams.Set("user_mailbox_id", fmt.Sprint(userMailboxId))
  2723  	return builder
  2724  }
  2725  
  2726  // 用于接受转移的邮箱地址
  2727  //
  2728  // 示例值:888888@abc.com
  2729  func (builder *DeleteUserMailboxReqBuilder) TransferMailbox(transferMailbox string) *DeleteUserMailboxReqBuilder {
  2730  	builder.apiReq.QueryParams.Set("transfer_mailbox", fmt.Sprint(transferMailbox))
  2731  	return builder
  2732  }
  2733  
  2734  func (builder *DeleteUserMailboxReqBuilder) Build() *DeleteUserMailboxReq {
  2735  	req := &DeleteUserMailboxReq{}
  2736  	req.apiReq = &larkcore.ApiReq{}
  2737  	req.apiReq.PathParams = builder.apiReq.PathParams
  2738  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  2739  	return req
  2740  }
  2741  
  2742  type DeleteUserMailboxReq struct {
  2743  	apiReq *larkcore.ApiReq
  2744  }
  2745  
  2746  type DeleteUserMailboxResp struct {
  2747  	*larkcore.ApiResp `json:"-"`
  2748  	larkcore.CodeError
  2749  }
  2750  
  2751  func (resp *DeleteUserMailboxResp) Success() bool {
  2752  	return resp.Code == 0
  2753  }
  2754  
  2755  type CreateUserMailboxAliasReqBuilder struct {
  2756  	apiReq     *larkcore.ApiReq
  2757  	emailAlias *EmailAlias
  2758  }
  2759  
  2760  func NewCreateUserMailboxAliasReqBuilder() *CreateUserMailboxAliasReqBuilder {
  2761  	builder := &CreateUserMailboxAliasReqBuilder{}
  2762  	builder.apiReq = &larkcore.ApiReq{
  2763  		PathParams:  larkcore.PathParams{},
  2764  		QueryParams: larkcore.QueryParams{},
  2765  	}
  2766  	return builder
  2767  }
  2768  
  2769  // 用户邮箱地址
  2770  //
  2771  // 示例值:user@xxx.xx
  2772  func (builder *CreateUserMailboxAliasReqBuilder) UserMailboxId(userMailboxId string) *CreateUserMailboxAliasReqBuilder {
  2773  	builder.apiReq.PathParams.Set("user_mailbox_id", fmt.Sprint(userMailboxId))
  2774  	return builder
  2775  }
  2776  
  2777  // 创建用户邮箱别名
  2778  func (builder *CreateUserMailboxAliasReqBuilder) EmailAlias(emailAlias *EmailAlias) *CreateUserMailboxAliasReqBuilder {
  2779  	builder.emailAlias = emailAlias
  2780  	return builder
  2781  }
  2782  
  2783  func (builder *CreateUserMailboxAliasReqBuilder) Build() *CreateUserMailboxAliasReq {
  2784  	req := &CreateUserMailboxAliasReq{}
  2785  	req.apiReq = &larkcore.ApiReq{}
  2786  	req.apiReq.PathParams = builder.apiReq.PathParams
  2787  	req.apiReq.Body = builder.emailAlias
  2788  	return req
  2789  }
  2790  
  2791  type CreateUserMailboxAliasReq struct {
  2792  	apiReq     *larkcore.ApiReq
  2793  	EmailAlias *EmailAlias `body:""`
  2794  }
  2795  
  2796  type CreateUserMailboxAliasRespData struct {
  2797  	UserMailboxAlias *EmailAlias `json:"user_mailbox_alias,omitempty"` // 用户邮箱别名
  2798  }
  2799  
  2800  type CreateUserMailboxAliasResp struct {
  2801  	*larkcore.ApiResp `json:"-"`
  2802  	larkcore.CodeError
  2803  	Data *CreateUserMailboxAliasRespData `json:"data"` // 业务数据
  2804  }
  2805  
  2806  func (resp *CreateUserMailboxAliasResp) Success() bool {
  2807  	return resp.Code == 0
  2808  }
  2809  
  2810  type DeleteUserMailboxAliasReqBuilder struct {
  2811  	apiReq *larkcore.ApiReq
  2812  }
  2813  
  2814  func NewDeleteUserMailboxAliasReqBuilder() *DeleteUserMailboxAliasReqBuilder {
  2815  	builder := &DeleteUserMailboxAliasReqBuilder{}
  2816  	builder.apiReq = &larkcore.ApiReq{
  2817  		PathParams:  larkcore.PathParams{},
  2818  		QueryParams: larkcore.QueryParams{},
  2819  	}
  2820  	return builder
  2821  }
  2822  
  2823  // 用户邮箱地址
  2824  //
  2825  // 示例值:user@xxx.xx
  2826  func (builder *DeleteUserMailboxAliasReqBuilder) UserMailboxId(userMailboxId string) *DeleteUserMailboxAliasReqBuilder {
  2827  	builder.apiReq.PathParams.Set("user_mailbox_id", fmt.Sprint(userMailboxId))
  2828  	return builder
  2829  }
  2830  
  2831  // 别名邮箱地址
  2832  //
  2833  // 示例值:user_alias@xxx.xx
  2834  func (builder *DeleteUserMailboxAliasReqBuilder) AliasId(aliasId string) *DeleteUserMailboxAliasReqBuilder {
  2835  	builder.apiReq.PathParams.Set("alias_id", fmt.Sprint(aliasId))
  2836  	return builder
  2837  }
  2838  
  2839  func (builder *DeleteUserMailboxAliasReqBuilder) Build() *DeleteUserMailboxAliasReq {
  2840  	req := &DeleteUserMailboxAliasReq{}
  2841  	req.apiReq = &larkcore.ApiReq{}
  2842  	req.apiReq.PathParams = builder.apiReq.PathParams
  2843  	return req
  2844  }
  2845  
  2846  type DeleteUserMailboxAliasReq struct {
  2847  	apiReq *larkcore.ApiReq
  2848  }
  2849  
  2850  type DeleteUserMailboxAliasResp struct {
  2851  	*larkcore.ApiResp `json:"-"`
  2852  	larkcore.CodeError
  2853  }
  2854  
  2855  func (resp *DeleteUserMailboxAliasResp) Success() bool {
  2856  	return resp.Code == 0
  2857  }
  2858  
  2859  type ListUserMailboxAliasReqBuilder struct {
  2860  	apiReq *larkcore.ApiReq
  2861  }
  2862  
  2863  func NewListUserMailboxAliasReqBuilder() *ListUserMailboxAliasReqBuilder {
  2864  	builder := &ListUserMailboxAliasReqBuilder{}
  2865  	builder.apiReq = &larkcore.ApiReq{
  2866  		PathParams:  larkcore.PathParams{},
  2867  		QueryParams: larkcore.QueryParams{},
  2868  	}
  2869  	return builder
  2870  }
  2871  
  2872  // 用户邮箱地址
  2873  //
  2874  // 示例值:user@xxx.xx
  2875  func (builder *ListUserMailboxAliasReqBuilder) UserMailboxId(userMailboxId string) *ListUserMailboxAliasReqBuilder {
  2876  	builder.apiReq.PathParams.Set("user_mailbox_id", fmt.Sprint(userMailboxId))
  2877  	return builder
  2878  }
  2879  
  2880  //
  2881  //
  2882  // 示例值:xxx
  2883  func (builder *ListUserMailboxAliasReqBuilder) PageToken(pageToken string) *ListUserMailboxAliasReqBuilder {
  2884  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  2885  	return builder
  2886  }
  2887  
  2888  //
  2889  //
  2890  // 示例值:10
  2891  func (builder *ListUserMailboxAliasReqBuilder) PageSize(pageSize int) *ListUserMailboxAliasReqBuilder {
  2892  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  2893  	return builder
  2894  }
  2895  
  2896  func (builder *ListUserMailboxAliasReqBuilder) Build() *ListUserMailboxAliasReq {
  2897  	req := &ListUserMailboxAliasReq{}
  2898  	req.apiReq = &larkcore.ApiReq{}
  2899  	req.apiReq.PathParams = builder.apiReq.PathParams
  2900  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  2901  	return req
  2902  }
  2903  
  2904  type ListUserMailboxAliasReq struct {
  2905  	apiReq *larkcore.ApiReq
  2906  }
  2907  
  2908  type ListUserMailboxAliasRespData struct {
  2909  	Items []*EmailAlias `json:"items,omitempty"` // 用户邮箱别名
  2910  }
  2911  
  2912  type ListUserMailboxAliasResp struct {
  2913  	*larkcore.ApiResp `json:"-"`
  2914  	larkcore.CodeError
  2915  	Data *ListUserMailboxAliasRespData `json:"data"` // 业务数据
  2916  }
  2917  
  2918  func (resp *ListUserMailboxAliasResp) Success() bool {
  2919  	return resp.Code == 0
  2920  }
  2921  
  2922  type ListMailgroupIterator struct {
  2923  	nextPageToken *string
  2924  	items         []*Mailgroup
  2925  	index         int
  2926  	limit         int
  2927  	ctx           context.Context
  2928  	req           *ListMailgroupReq
  2929  	listFunc      func(ctx context.Context, req *ListMailgroupReq, options ...larkcore.RequestOptionFunc) (*ListMailgroupResp, error)
  2930  	options       []larkcore.RequestOptionFunc
  2931  	curlNum       int
  2932  }
  2933  
  2934  func (iterator *ListMailgroupIterator) Next() (bool, *Mailgroup, error) {
  2935  	// 达到最大量,则返回
  2936  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  2937  		return false, nil, nil
  2938  	}
  2939  
  2940  	// 为0则拉取数据
  2941  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  2942  		if iterator.index != 0 && iterator.nextPageToken == nil {
  2943  			return false, nil, nil
  2944  		}
  2945  		if iterator.nextPageToken != nil {
  2946  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  2947  		}
  2948  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  2949  		if err != nil {
  2950  			return false, nil, err
  2951  		}
  2952  
  2953  		if resp.Code != 0 {
  2954  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  2955  		}
  2956  
  2957  		if len(resp.Data.Items) == 0 {
  2958  			return false, nil, nil
  2959  		}
  2960  
  2961  		iterator.nextPageToken = resp.Data.PageToken
  2962  		iterator.items = resp.Data.Items
  2963  		iterator.index = 0
  2964  	}
  2965  
  2966  	block := iterator.items[iterator.index]
  2967  	iterator.index++
  2968  	iterator.curlNum++
  2969  	return true, block, nil
  2970  }
  2971  
  2972  func (iterator *ListMailgroupIterator) NextPageToken() *string {
  2973  	return iterator.nextPageToken
  2974  }
  2975  
  2976  type ListMailgroupMemberIterator struct {
  2977  	nextPageToken *string
  2978  	items         []*MailgroupMember
  2979  	index         int
  2980  	limit         int
  2981  	ctx           context.Context
  2982  	req           *ListMailgroupMemberReq
  2983  	listFunc      func(ctx context.Context, req *ListMailgroupMemberReq, options ...larkcore.RequestOptionFunc) (*ListMailgroupMemberResp, error)
  2984  	options       []larkcore.RequestOptionFunc
  2985  	curlNum       int
  2986  }
  2987  
  2988  func (iterator *ListMailgroupMemberIterator) Next() (bool, *MailgroupMember, error) {
  2989  	// 达到最大量,则返回
  2990  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  2991  		return false, nil, nil
  2992  	}
  2993  
  2994  	// 为0则拉取数据
  2995  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  2996  		if iterator.index != 0 && iterator.nextPageToken == nil {
  2997  			return false, nil, nil
  2998  		}
  2999  		if iterator.nextPageToken != nil {
  3000  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  3001  		}
  3002  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  3003  		if err != nil {
  3004  			return false, nil, err
  3005  		}
  3006  
  3007  		if resp.Code != 0 {
  3008  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  3009  		}
  3010  
  3011  		if len(resp.Data.Items) == 0 {
  3012  			return false, nil, nil
  3013  		}
  3014  
  3015  		iterator.nextPageToken = resp.Data.PageToken
  3016  		iterator.items = resp.Data.Items
  3017  		iterator.index = 0
  3018  	}
  3019  
  3020  	block := iterator.items[iterator.index]
  3021  	iterator.index++
  3022  	iterator.curlNum++
  3023  	return true, block, nil
  3024  }
  3025  
  3026  func (iterator *ListMailgroupMemberIterator) NextPageToken() *string {
  3027  	return iterator.nextPageToken
  3028  }
  3029  
  3030  type ListMailgroupPermissionMemberIterator struct {
  3031  	nextPageToken *string
  3032  	items         []*MailgroupPermissionMember
  3033  	index         int
  3034  	limit         int
  3035  	ctx           context.Context
  3036  	req           *ListMailgroupPermissionMemberReq
  3037  	listFunc      func(ctx context.Context, req *ListMailgroupPermissionMemberReq, options ...larkcore.RequestOptionFunc) (*ListMailgroupPermissionMemberResp, error)
  3038  	options       []larkcore.RequestOptionFunc
  3039  	curlNum       int
  3040  }
  3041  
  3042  func (iterator *ListMailgroupPermissionMemberIterator) Next() (bool, *MailgroupPermissionMember, error) {
  3043  	// 达到最大量,则返回
  3044  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  3045  		return false, nil, nil
  3046  	}
  3047  
  3048  	// 为0则拉取数据
  3049  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  3050  		if iterator.index != 0 && iterator.nextPageToken == nil {
  3051  			return false, nil, nil
  3052  		}
  3053  		if iterator.nextPageToken != nil {
  3054  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  3055  		}
  3056  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  3057  		if err != nil {
  3058  			return false, nil, err
  3059  		}
  3060  
  3061  		if resp.Code != 0 {
  3062  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  3063  		}
  3064  
  3065  		if len(resp.Data.Items) == 0 {
  3066  			return false, nil, nil
  3067  		}
  3068  
  3069  		iterator.nextPageToken = resp.Data.PageToken
  3070  		iterator.items = resp.Data.Items
  3071  		iterator.index = 0
  3072  	}
  3073  
  3074  	block := iterator.items[iterator.index]
  3075  	iterator.index++
  3076  	iterator.curlNum++
  3077  	return true, block, nil
  3078  }
  3079  
  3080  func (iterator *ListMailgroupPermissionMemberIterator) NextPageToken() *string {
  3081  	return iterator.nextPageToken
  3082  }
  3083  
  3084  type ListPublicMailboxIterator struct {
  3085  	nextPageToken *string
  3086  	items         []*PublicMailbox
  3087  	index         int
  3088  	limit         int
  3089  	ctx           context.Context
  3090  	req           *ListPublicMailboxReq
  3091  	listFunc      func(ctx context.Context, req *ListPublicMailboxReq, options ...larkcore.RequestOptionFunc) (*ListPublicMailboxResp, error)
  3092  	options       []larkcore.RequestOptionFunc
  3093  	curlNum       int
  3094  }
  3095  
  3096  func (iterator *ListPublicMailboxIterator) Next() (bool, *PublicMailbox, error) {
  3097  	// 达到最大量,则返回
  3098  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  3099  		return false, nil, nil
  3100  	}
  3101  
  3102  	// 为0则拉取数据
  3103  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  3104  		if iterator.index != 0 && iterator.nextPageToken == nil {
  3105  			return false, nil, nil
  3106  		}
  3107  		if iterator.nextPageToken != nil {
  3108  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  3109  		}
  3110  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  3111  		if err != nil {
  3112  			return false, nil, err
  3113  		}
  3114  
  3115  		if resp.Code != 0 {
  3116  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  3117  		}
  3118  
  3119  		if len(resp.Data.Items) == 0 {
  3120  			return false, nil, nil
  3121  		}
  3122  
  3123  		iterator.nextPageToken = resp.Data.PageToken
  3124  		iterator.items = resp.Data.Items
  3125  		iterator.index = 0
  3126  	}
  3127  
  3128  	block := iterator.items[iterator.index]
  3129  	iterator.index++
  3130  	iterator.curlNum++
  3131  	return true, block, nil
  3132  }
  3133  
  3134  func (iterator *ListPublicMailboxIterator) NextPageToken() *string {
  3135  	return iterator.nextPageToken
  3136  }
  3137  
  3138  type ListPublicMailboxMemberIterator struct {
  3139  	nextPageToken *string
  3140  	items         []*PublicMailboxMember
  3141  	index         int
  3142  	limit         int
  3143  	ctx           context.Context
  3144  	req           *ListPublicMailboxMemberReq
  3145  	listFunc      func(ctx context.Context, req *ListPublicMailboxMemberReq, options ...larkcore.RequestOptionFunc) (*ListPublicMailboxMemberResp, error)
  3146  	options       []larkcore.RequestOptionFunc
  3147  	curlNum       int
  3148  }
  3149  
  3150  func (iterator *ListPublicMailboxMemberIterator) Next() (bool, *PublicMailboxMember, error) {
  3151  	// 达到最大量,则返回
  3152  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  3153  		return false, nil, nil
  3154  	}
  3155  
  3156  	// 为0则拉取数据
  3157  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  3158  		if iterator.index != 0 && iterator.nextPageToken == nil {
  3159  			return false, nil, nil
  3160  		}
  3161  		if iterator.nextPageToken != nil {
  3162  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  3163  		}
  3164  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  3165  		if err != nil {
  3166  			return false, nil, err
  3167  		}
  3168  
  3169  		if resp.Code != 0 {
  3170  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  3171  		}
  3172  
  3173  		if len(resp.Data.Items) == 0 {
  3174  			return false, nil, nil
  3175  		}
  3176  
  3177  		iterator.nextPageToken = resp.Data.PageToken
  3178  		iterator.items = resp.Data.Items
  3179  		iterator.index = 0
  3180  	}
  3181  
  3182  	block := iterator.items[iterator.index]
  3183  	iterator.index++
  3184  	iterator.curlNum++
  3185  	return true, block, nil
  3186  }
  3187  
  3188  func (iterator *ListPublicMailboxMemberIterator) NextPageToken() *string {
  3189  	return iterator.nextPageToken
  3190  }