gitee.com/larksuite/oapi-sdk-go/v3@v3.0.3/service/mail/v1/api.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  	"context"
    18  	"net/http"
    19  
    20  	"gitee.com/larksuite/oapi-sdk-go/v3/core"
    21  )
    22  
    23  func NewService(config *larkcore.Config) *MailService {
    24  	m := &MailService{config: config}
    25  	m.Mailgroup = &mailgroup{service: m}
    26  	m.MailgroupAlias = &mailgroupAlias{service: m}
    27  	m.MailgroupMember = &mailgroupMember{service: m}
    28  	m.MailgroupPermissionMember = &mailgroupPermissionMember{service: m}
    29  	m.PublicMailbox = &publicMailbox{service: m}
    30  	m.PublicMailboxAlias = &publicMailboxAlias{service: m}
    31  	m.PublicMailboxMember = &publicMailboxMember{service: m}
    32  	m.User = &user{service: m}
    33  	m.UserMailbox = &userMailbox{service: m}
    34  	m.UserMailboxAlias = &userMailboxAlias{service: m}
    35  	return m
    36  }
    37  
    38  type MailService struct {
    39  	config                    *larkcore.Config
    40  	Mailgroup                 *mailgroup                 // 邮件组
    41  	MailgroupAlias            *mailgroupAlias            // 邮件组别名
    42  	MailgroupMember           *mailgroupMember           // 邮件组成员
    43  	MailgroupPermissionMember *mailgroupPermissionMember // 邮件组权限成员
    44  	PublicMailbox             *publicMailbox             // 公共邮箱
    45  	PublicMailboxAlias        *publicMailboxAlias        // 公共邮箱别名
    46  	PublicMailboxMember       *publicMailboxMember       // 公共邮箱成员
    47  	User                      *user                      // 邮箱地址
    48  	UserMailbox               *userMailbox               // 用户邮箱
    49  	UserMailboxAlias          *userMailboxAlias          // 用户邮箱别名
    50  }
    51  
    52  type mailgroup struct {
    53  	service *MailService
    54  }
    55  type mailgroupAlias struct {
    56  	service *MailService
    57  }
    58  type mailgroupMember struct {
    59  	service *MailService
    60  }
    61  type mailgroupPermissionMember struct {
    62  	service *MailService
    63  }
    64  type publicMailbox struct {
    65  	service *MailService
    66  }
    67  type publicMailboxAlias struct {
    68  	service *MailService
    69  }
    70  type publicMailboxMember struct {
    71  	service *MailService
    72  }
    73  type user struct {
    74  	service *MailService
    75  }
    76  type userMailbox struct {
    77  	service *MailService
    78  }
    79  type userMailboxAlias struct {
    80  	service *MailService
    81  }
    82  
    83  // 创建邮件组
    84  //
    85  // - 创建一个邮件组
    86  //
    87  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/mailgroup/create
    88  //
    89  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/create_mailgroup.go
    90  func (m *mailgroup) Create(ctx context.Context, req *CreateMailgroupReq, options ...larkcore.RequestOptionFunc) (*CreateMailgroupResp, error) {
    91  	// 发起请求
    92  	apiReq := req.apiReq
    93  	apiReq.ApiPath = "/open-apis/mail/v1/mailgroups"
    94  	apiReq.HttpMethod = http.MethodPost
    95  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
    96  	apiResp, err := larkcore.Request(ctx, apiReq, m.service.config, options...)
    97  	if err != nil {
    98  		return nil, err
    99  	}
   100  	// 反序列响应结果
   101  	resp := &CreateMailgroupResp{ApiResp: apiResp}
   102  	err = apiResp.JSONUnmarshalBody(resp)
   103  	if err != nil {
   104  		return nil, err
   105  	}
   106  	return resp, err
   107  }
   108  
   109  // 删除邮件组
   110  //
   111  // - 删除一个邮件组
   112  //
   113  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/mailgroup/delete
   114  //
   115  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/delete_mailgroup.go
   116  func (m *mailgroup) Delete(ctx context.Context, req *DeleteMailgroupReq, options ...larkcore.RequestOptionFunc) (*DeleteMailgroupResp, error) {
   117  	// 发起请求
   118  	apiReq := req.apiReq
   119  	apiReq.ApiPath = "/open-apis/mail/v1/mailgroups/:mailgroup_id"
   120  	apiReq.HttpMethod = http.MethodDelete
   121  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   122  	apiResp, err := larkcore.Request(ctx, apiReq, m.service.config, options...)
   123  	if err != nil {
   124  		return nil, err
   125  	}
   126  	// 反序列响应结果
   127  	resp := &DeleteMailgroupResp{ApiResp: apiResp}
   128  	err = apiResp.JSONUnmarshalBody(resp)
   129  	if err != nil {
   130  		return nil, err
   131  	}
   132  	return resp, err
   133  }
   134  
   135  // 获取邮件组
   136  //
   137  // - 获取特定邮件组信息
   138  //
   139  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/mailgroup/get
   140  //
   141  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/get_mailgroup.go
   142  func (m *mailgroup) Get(ctx context.Context, req *GetMailgroupReq, options ...larkcore.RequestOptionFunc) (*GetMailgroupResp, error) {
   143  	// 发起请求
   144  	apiReq := req.apiReq
   145  	apiReq.ApiPath = "/open-apis/mail/v1/mailgroups/:mailgroup_id"
   146  	apiReq.HttpMethod = http.MethodGet
   147  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   148  	apiResp, err := larkcore.Request(ctx, apiReq, m.service.config, options...)
   149  	if err != nil {
   150  		return nil, err
   151  	}
   152  	// 反序列响应结果
   153  	resp := &GetMailgroupResp{ApiResp: apiResp}
   154  	err = apiResp.JSONUnmarshalBody(resp)
   155  	if err != nil {
   156  		return nil, err
   157  	}
   158  	return resp, err
   159  }
   160  
   161  // 批量获取邮件组
   162  //
   163  // - 分页批量获取邮件组
   164  //
   165  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/mailgroup/list
   166  //
   167  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/list_mailgroup.go
   168  func (m *mailgroup) List(ctx context.Context, req *ListMailgroupReq, options ...larkcore.RequestOptionFunc) (*ListMailgroupResp, error) {
   169  	// 发起请求
   170  	apiReq := req.apiReq
   171  	apiReq.ApiPath = "/open-apis/mail/v1/mailgroups"
   172  	apiReq.HttpMethod = http.MethodGet
   173  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   174  	apiResp, err := larkcore.Request(ctx, apiReq, m.service.config, options...)
   175  	if err != nil {
   176  		return nil, err
   177  	}
   178  	// 反序列响应结果
   179  	resp := &ListMailgroupResp{ApiResp: apiResp}
   180  	err = apiResp.JSONUnmarshalBody(resp)
   181  	if err != nil {
   182  		return nil, err
   183  	}
   184  	return resp, err
   185  }
   186  func (m *mailgroup) ListByIterator(ctx context.Context, req *ListMailgroupReq, options ...larkcore.RequestOptionFunc) (*ListMailgroupIterator, error) {
   187  	return &ListMailgroupIterator{
   188  		ctx:      ctx,
   189  		req:      req,
   190  		listFunc: m.List,
   191  		options:  options,
   192  		limit:    req.Limit}, nil
   193  }
   194  
   195  // 修改邮件组
   196  //
   197  // - 更新邮件组部分字段,没有填写的字段不会被更新
   198  //
   199  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/mailgroup/patch
   200  //
   201  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/patch_mailgroup.go
   202  func (m *mailgroup) Patch(ctx context.Context, req *PatchMailgroupReq, options ...larkcore.RequestOptionFunc) (*PatchMailgroupResp, error) {
   203  	// 发起请求
   204  	apiReq := req.apiReq
   205  	apiReq.ApiPath = "/open-apis/mail/v1/mailgroups/:mailgroup_id"
   206  	apiReq.HttpMethod = http.MethodPatch
   207  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   208  	apiResp, err := larkcore.Request(ctx, apiReq, m.service.config, options...)
   209  	if err != nil {
   210  		return nil, err
   211  	}
   212  	// 反序列响应结果
   213  	resp := &PatchMailgroupResp{ApiResp: apiResp}
   214  	err = apiResp.JSONUnmarshalBody(resp)
   215  	if err != nil {
   216  		return nil, err
   217  	}
   218  	return resp, err
   219  }
   220  
   221  // 更新邮件组
   222  //
   223  // - 更新邮件组所有信息
   224  //
   225  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/mailgroup/update
   226  //
   227  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/update_mailgroup.go
   228  func (m *mailgroup) Update(ctx context.Context, req *UpdateMailgroupReq, options ...larkcore.RequestOptionFunc) (*UpdateMailgroupResp, error) {
   229  	// 发起请求
   230  	apiReq := req.apiReq
   231  	apiReq.ApiPath = "/open-apis/mail/v1/mailgroups/:mailgroup_id"
   232  	apiReq.HttpMethod = http.MethodPut
   233  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   234  	apiResp, err := larkcore.Request(ctx, apiReq, m.service.config, options...)
   235  	if err != nil {
   236  		return nil, err
   237  	}
   238  	// 反序列响应结果
   239  	resp := &UpdateMailgroupResp{ApiResp: apiResp}
   240  	err = apiResp.JSONUnmarshalBody(resp)
   241  	if err != nil {
   242  		return nil, err
   243  	}
   244  	return resp, err
   245  }
   246  
   247  // 创建邮件组别名
   248  //
   249  // - 创建邮件组别名
   250  //
   251  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/mailgroup-alias/create
   252  //
   253  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/create_mailgroupAlias.go
   254  func (m *mailgroupAlias) Create(ctx context.Context, req *CreateMailgroupAliasReq, options ...larkcore.RequestOptionFunc) (*CreateMailgroupAliasResp, error) {
   255  	// 发起请求
   256  	apiReq := req.apiReq
   257  	apiReq.ApiPath = "/open-apis/mail/v1/mailgroups/:mailgroup_id/aliases"
   258  	apiReq.HttpMethod = http.MethodPost
   259  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   260  	apiResp, err := larkcore.Request(ctx, apiReq, m.service.config, options...)
   261  	if err != nil {
   262  		return nil, err
   263  	}
   264  	// 反序列响应结果
   265  	resp := &CreateMailgroupAliasResp{ApiResp: apiResp}
   266  	err = apiResp.JSONUnmarshalBody(resp)
   267  	if err != nil {
   268  		return nil, err
   269  	}
   270  	return resp, err
   271  }
   272  
   273  // 删除邮件组别名
   274  //
   275  // - 删除邮件组别名
   276  //
   277  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/mailgroup-alias/delete
   278  //
   279  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/delete_mailgroupAlias.go
   280  func (m *mailgroupAlias) Delete(ctx context.Context, req *DeleteMailgroupAliasReq, options ...larkcore.RequestOptionFunc) (*DeleteMailgroupAliasResp, error) {
   281  	// 发起请求
   282  	apiReq := req.apiReq
   283  	apiReq.ApiPath = "/open-apis/mail/v1/mailgroups/:mailgroup_id/aliases/:alias_id"
   284  	apiReq.HttpMethod = http.MethodDelete
   285  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   286  	apiResp, err := larkcore.Request(ctx, apiReq, m.service.config, options...)
   287  	if err != nil {
   288  		return nil, err
   289  	}
   290  	// 反序列响应结果
   291  	resp := &DeleteMailgroupAliasResp{ApiResp: apiResp}
   292  	err = apiResp.JSONUnmarshalBody(resp)
   293  	if err != nil {
   294  		return nil, err
   295  	}
   296  	return resp, err
   297  }
   298  
   299  // 获取邮件组所有别名
   300  //
   301  // - 获取邮件组所有别名
   302  //
   303  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/mailgroup-alias/list
   304  //
   305  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/list_mailgroupAlias.go
   306  func (m *mailgroupAlias) List(ctx context.Context, req *ListMailgroupAliasReq, options ...larkcore.RequestOptionFunc) (*ListMailgroupAliasResp, error) {
   307  	// 发起请求
   308  	apiReq := req.apiReq
   309  	apiReq.ApiPath = "/open-apis/mail/v1/mailgroups/:mailgroup_id/aliases"
   310  	apiReq.HttpMethod = http.MethodGet
   311  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   312  	apiResp, err := larkcore.Request(ctx, apiReq, m.service.config, options...)
   313  	if err != nil {
   314  		return nil, err
   315  	}
   316  	// 反序列响应结果
   317  	resp := &ListMailgroupAliasResp{ApiResp: apiResp}
   318  	err = apiResp.JSONUnmarshalBody(resp)
   319  	if err != nil {
   320  		return nil, err
   321  	}
   322  	return resp, err
   323  }
   324  
   325  // 创建邮件组成员
   326  //
   327  // - 向邮件组添加单个成员
   328  //
   329  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/mailgroup-member/create
   330  //
   331  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/create_mailgroupMember.go
   332  func (m *mailgroupMember) Create(ctx context.Context, req *CreateMailgroupMemberReq, options ...larkcore.RequestOptionFunc) (*CreateMailgroupMemberResp, error) {
   333  	// 发起请求
   334  	apiReq := req.apiReq
   335  	apiReq.ApiPath = "/open-apis/mail/v1/mailgroups/:mailgroup_id/members"
   336  	apiReq.HttpMethod = http.MethodPost
   337  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   338  	apiResp, err := larkcore.Request(ctx, apiReq, m.service.config, options...)
   339  	if err != nil {
   340  		return nil, err
   341  	}
   342  	// 反序列响应结果
   343  	resp := &CreateMailgroupMemberResp{ApiResp: apiResp}
   344  	err = apiResp.JSONUnmarshalBody(resp)
   345  	if err != nil {
   346  		return nil, err
   347  	}
   348  	return resp, err
   349  }
   350  
   351  // 删除邮件组成员
   352  //
   353  // - 删除邮件组单个成员
   354  //
   355  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/mailgroup-member/delete
   356  //
   357  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/delete_mailgroupMember.go
   358  func (m *mailgroupMember) Delete(ctx context.Context, req *DeleteMailgroupMemberReq, options ...larkcore.RequestOptionFunc) (*DeleteMailgroupMemberResp, error) {
   359  	// 发起请求
   360  	apiReq := req.apiReq
   361  	apiReq.ApiPath = "/open-apis/mail/v1/mailgroups/:mailgroup_id/members/:member_id"
   362  	apiReq.HttpMethod = http.MethodDelete
   363  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   364  	apiResp, err := larkcore.Request(ctx, apiReq, m.service.config, options...)
   365  	if err != nil {
   366  		return nil, err
   367  	}
   368  	// 反序列响应结果
   369  	resp := &DeleteMailgroupMemberResp{ApiResp: apiResp}
   370  	err = apiResp.JSONUnmarshalBody(resp)
   371  	if err != nil {
   372  		return nil, err
   373  	}
   374  	return resp, err
   375  }
   376  
   377  // 获取邮件组成员信息
   378  //
   379  // - 获取邮件组单个成员信息
   380  //
   381  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/mailgroup-member/get
   382  //
   383  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/get_mailgroupMember.go
   384  func (m *mailgroupMember) Get(ctx context.Context, req *GetMailgroupMemberReq, options ...larkcore.RequestOptionFunc) (*GetMailgroupMemberResp, error) {
   385  	// 发起请求
   386  	apiReq := req.apiReq
   387  	apiReq.ApiPath = "/open-apis/mail/v1/mailgroups/:mailgroup_id/members/:member_id"
   388  	apiReq.HttpMethod = http.MethodGet
   389  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   390  	apiResp, err := larkcore.Request(ctx, apiReq, m.service.config, options...)
   391  	if err != nil {
   392  		return nil, err
   393  	}
   394  	// 反序列响应结果
   395  	resp := &GetMailgroupMemberResp{ApiResp: apiResp}
   396  	err = apiResp.JSONUnmarshalBody(resp)
   397  	if err != nil {
   398  		return nil, err
   399  	}
   400  	return resp, err
   401  }
   402  
   403  // 批量获取邮件组成员
   404  //
   405  // - 分页批量获取邮件组成员列表
   406  //
   407  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/mailgroup-member/list
   408  //
   409  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/list_mailgroupMember.go
   410  func (m *mailgroupMember) List(ctx context.Context, req *ListMailgroupMemberReq, options ...larkcore.RequestOptionFunc) (*ListMailgroupMemberResp, error) {
   411  	// 发起请求
   412  	apiReq := req.apiReq
   413  	apiReq.ApiPath = "/open-apis/mail/v1/mailgroups/:mailgroup_id/members"
   414  	apiReq.HttpMethod = http.MethodGet
   415  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   416  	apiResp, err := larkcore.Request(ctx, apiReq, m.service.config, options...)
   417  	if err != nil {
   418  		return nil, err
   419  	}
   420  	// 反序列响应结果
   421  	resp := &ListMailgroupMemberResp{ApiResp: apiResp}
   422  	err = apiResp.JSONUnmarshalBody(resp)
   423  	if err != nil {
   424  		return nil, err
   425  	}
   426  	return resp, err
   427  }
   428  func (m *mailgroupMember) ListByIterator(ctx context.Context, req *ListMailgroupMemberReq, options ...larkcore.RequestOptionFunc) (*ListMailgroupMemberIterator, error) {
   429  	return &ListMailgroupMemberIterator{
   430  		ctx:      ctx,
   431  		req:      req,
   432  		listFunc: m.List,
   433  		options:  options,
   434  		limit:    req.Limit}, nil
   435  }
   436  
   437  // 创建邮件组权限成员
   438  //
   439  // - 向邮件组添加单个自定义权限成员,添加后该成员可发送邮件到该邮件组
   440  //
   441  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/mailgroup-permission_member/create
   442  //
   443  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/create_mailgroupPermissionMember.go
   444  func (m *mailgroupPermissionMember) Create(ctx context.Context, req *CreateMailgroupPermissionMemberReq, options ...larkcore.RequestOptionFunc) (*CreateMailgroupPermissionMemberResp, error) {
   445  	// 发起请求
   446  	apiReq := req.apiReq
   447  	apiReq.ApiPath = "/open-apis/mail/v1/mailgroups/:mailgroup_id/permission_members"
   448  	apiReq.HttpMethod = http.MethodPost
   449  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   450  	apiResp, err := larkcore.Request(ctx, apiReq, m.service.config, options...)
   451  	if err != nil {
   452  		return nil, err
   453  	}
   454  	// 反序列响应结果
   455  	resp := &CreateMailgroupPermissionMemberResp{ApiResp: apiResp}
   456  	err = apiResp.JSONUnmarshalBody(resp)
   457  	if err != nil {
   458  		return nil, err
   459  	}
   460  	return resp, err
   461  }
   462  
   463  // 删除邮件组权限成员
   464  //
   465  // - 从自定义成员中删除单个成员,删除后该成员无法发送邮件到该邮件组
   466  //
   467  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/mailgroup-permission_member/delete
   468  //
   469  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/delete_mailgroupPermissionMember.go
   470  func (m *mailgroupPermissionMember) Delete(ctx context.Context, req *DeleteMailgroupPermissionMemberReq, options ...larkcore.RequestOptionFunc) (*DeleteMailgroupPermissionMemberResp, error) {
   471  	// 发起请求
   472  	apiReq := req.apiReq
   473  	apiReq.ApiPath = "/open-apis/mail/v1/mailgroups/:mailgroup_id/permission_members/:permission_member_id"
   474  	apiReq.HttpMethod = http.MethodDelete
   475  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   476  	apiResp, err := larkcore.Request(ctx, apiReq, m.service.config, options...)
   477  	if err != nil {
   478  		return nil, err
   479  	}
   480  	// 反序列响应结果
   481  	resp := &DeleteMailgroupPermissionMemberResp{ApiResp: apiResp}
   482  	err = apiResp.JSONUnmarshalBody(resp)
   483  	if err != nil {
   484  		return nil, err
   485  	}
   486  	return resp, err
   487  }
   488  
   489  // 获取邮件组权限成员
   490  //
   491  // - 获取邮件组单个权限成员信息
   492  //
   493  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/mailgroup-permission_member/get
   494  //
   495  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/get_mailgroupPermissionMember.go
   496  func (m *mailgroupPermissionMember) Get(ctx context.Context, req *GetMailgroupPermissionMemberReq, options ...larkcore.RequestOptionFunc) (*GetMailgroupPermissionMemberResp, error) {
   497  	// 发起请求
   498  	apiReq := req.apiReq
   499  	apiReq.ApiPath = "/open-apis/mail/v1/mailgroups/:mailgroup_id/permission_members/:permission_member_id"
   500  	apiReq.HttpMethod = http.MethodGet
   501  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   502  	apiResp, err := larkcore.Request(ctx, apiReq, m.service.config, options...)
   503  	if err != nil {
   504  		return nil, err
   505  	}
   506  	// 反序列响应结果
   507  	resp := &GetMailgroupPermissionMemberResp{ApiResp: apiResp}
   508  	err = apiResp.JSONUnmarshalBody(resp)
   509  	if err != nil {
   510  		return nil, err
   511  	}
   512  	return resp, err
   513  }
   514  
   515  // 批量获取邮件组权限成员
   516  //
   517  // - 分页批量获取邮件组权限成员列表
   518  //
   519  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/mailgroup-permission_member/list
   520  //
   521  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/list_mailgroupPermissionMember.go
   522  func (m *mailgroupPermissionMember) List(ctx context.Context, req *ListMailgroupPermissionMemberReq, options ...larkcore.RequestOptionFunc) (*ListMailgroupPermissionMemberResp, error) {
   523  	// 发起请求
   524  	apiReq := req.apiReq
   525  	apiReq.ApiPath = "/open-apis/mail/v1/mailgroups/:mailgroup_id/permission_members"
   526  	apiReq.HttpMethod = http.MethodGet
   527  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   528  	apiResp, err := larkcore.Request(ctx, apiReq, m.service.config, options...)
   529  	if err != nil {
   530  		return nil, err
   531  	}
   532  	// 反序列响应结果
   533  	resp := &ListMailgroupPermissionMemberResp{ApiResp: apiResp}
   534  	err = apiResp.JSONUnmarshalBody(resp)
   535  	if err != nil {
   536  		return nil, err
   537  	}
   538  	return resp, err
   539  }
   540  func (m *mailgroupPermissionMember) ListByIterator(ctx context.Context, req *ListMailgroupPermissionMemberReq, options ...larkcore.RequestOptionFunc) (*ListMailgroupPermissionMemberIterator, error) {
   541  	return &ListMailgroupPermissionMemberIterator{
   542  		ctx:      ctx,
   543  		req:      req,
   544  		listFunc: m.List,
   545  		options:  options,
   546  		limit:    req.Limit}, nil
   547  }
   548  
   549  // 创建公共邮箱
   550  //
   551  // - 创建一个公共邮箱
   552  //
   553  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/public_mailbox/create
   554  //
   555  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/create_publicMailbox.go
   556  func (p *publicMailbox) Create(ctx context.Context, req *CreatePublicMailboxReq, options ...larkcore.RequestOptionFunc) (*CreatePublicMailboxResp, error) {
   557  	// 发起请求
   558  	apiReq := req.apiReq
   559  	apiReq.ApiPath = "/open-apis/mail/v1/public_mailboxes"
   560  	apiReq.HttpMethod = http.MethodPost
   561  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   562  	apiResp, err := larkcore.Request(ctx, apiReq, p.service.config, options...)
   563  	if err != nil {
   564  		return nil, err
   565  	}
   566  	// 反序列响应结果
   567  	resp := &CreatePublicMailboxResp{ApiResp: apiResp}
   568  	err = apiResp.JSONUnmarshalBody(resp)
   569  	if err != nil {
   570  		return nil, err
   571  	}
   572  	return resp, err
   573  }
   574  
   575  // 释放公共邮箱地址
   576  //
   577  // - 该接口会永久删除公共邮箱地址。可用于释放邮箱回收站的公共邮箱地址,一旦删除,该邮箱地址将无法恢复。
   578  //
   579  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/public_mailbox/delete
   580  //
   581  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/delete_publicMailbox.go
   582  func (p *publicMailbox) Delete(ctx context.Context, req *DeletePublicMailboxReq, options ...larkcore.RequestOptionFunc) (*DeletePublicMailboxResp, error) {
   583  	// 发起请求
   584  	apiReq := req.apiReq
   585  	apiReq.ApiPath = "/open-apis/mail/v1/public_mailboxes/:public_mailbox_id"
   586  	apiReq.HttpMethod = http.MethodDelete
   587  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   588  	apiResp, err := larkcore.Request(ctx, apiReq, p.service.config, options...)
   589  	if err != nil {
   590  		return nil, err
   591  	}
   592  	// 反序列响应结果
   593  	resp := &DeletePublicMailboxResp{ApiResp: apiResp}
   594  	err = apiResp.JSONUnmarshalBody(resp)
   595  	if err != nil {
   596  		return nil, err
   597  	}
   598  	return resp, err
   599  }
   600  
   601  // 获取公共邮箱
   602  //
   603  // - 获取公共邮箱信息
   604  //
   605  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/public_mailbox/get
   606  //
   607  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/get_publicMailbox.go
   608  func (p *publicMailbox) Get(ctx context.Context, req *GetPublicMailboxReq, options ...larkcore.RequestOptionFunc) (*GetPublicMailboxResp, error) {
   609  	// 发起请求
   610  	apiReq := req.apiReq
   611  	apiReq.ApiPath = "/open-apis/mail/v1/public_mailboxes/:public_mailbox_id"
   612  	apiReq.HttpMethod = http.MethodGet
   613  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   614  	apiResp, err := larkcore.Request(ctx, apiReq, p.service.config, options...)
   615  	if err != nil {
   616  		return nil, err
   617  	}
   618  	// 反序列响应结果
   619  	resp := &GetPublicMailboxResp{ApiResp: apiResp}
   620  	err = apiResp.JSONUnmarshalBody(resp)
   621  	if err != nil {
   622  		return nil, err
   623  	}
   624  	return resp, err
   625  }
   626  
   627  // 批量获取公共邮箱
   628  //
   629  // - 分页批量获取公共邮箱列表
   630  //
   631  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/public_mailbox/list
   632  //
   633  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/list_publicMailbox.go
   634  func (p *publicMailbox) List(ctx context.Context, req *ListPublicMailboxReq, options ...larkcore.RequestOptionFunc) (*ListPublicMailboxResp, error) {
   635  	// 发起请求
   636  	apiReq := req.apiReq
   637  	apiReq.ApiPath = "/open-apis/mail/v1/public_mailboxes"
   638  	apiReq.HttpMethod = http.MethodGet
   639  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   640  	apiResp, err := larkcore.Request(ctx, apiReq, p.service.config, options...)
   641  	if err != nil {
   642  		return nil, err
   643  	}
   644  	// 反序列响应结果
   645  	resp := &ListPublicMailboxResp{ApiResp: apiResp}
   646  	err = apiResp.JSONUnmarshalBody(resp)
   647  	if err != nil {
   648  		return nil, err
   649  	}
   650  	return resp, err
   651  }
   652  func (p *publicMailbox) ListByIterator(ctx context.Context, req *ListPublicMailboxReq, options ...larkcore.RequestOptionFunc) (*ListPublicMailboxIterator, error) {
   653  	return &ListPublicMailboxIterator{
   654  		ctx:      ctx,
   655  		req:      req,
   656  		listFunc: p.List,
   657  		options:  options,
   658  		limit:    req.Limit}, nil
   659  }
   660  
   661  // 修改公共邮箱
   662  //
   663  // - 更新公共邮箱部分字段,没有填写的字段不会被更新
   664  //
   665  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/public_mailbox/patch
   666  //
   667  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/patch_publicMailbox.go
   668  func (p *publicMailbox) Patch(ctx context.Context, req *PatchPublicMailboxReq, options ...larkcore.RequestOptionFunc) (*PatchPublicMailboxResp, error) {
   669  	// 发起请求
   670  	apiReq := req.apiReq
   671  	apiReq.ApiPath = "/open-apis/mail/v1/public_mailboxes/:public_mailbox_id"
   672  	apiReq.HttpMethod = http.MethodPatch
   673  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   674  	apiResp, err := larkcore.Request(ctx, apiReq, p.service.config, options...)
   675  	if err != nil {
   676  		return nil, err
   677  	}
   678  	// 反序列响应结果
   679  	resp := &PatchPublicMailboxResp{ApiResp: apiResp}
   680  	err = apiResp.JSONUnmarshalBody(resp)
   681  	if err != nil {
   682  		return nil, err
   683  	}
   684  	return resp, err
   685  }
   686  
   687  // 更新公共邮箱
   688  //
   689  // - 更新公共邮箱所有信息
   690  //
   691  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/public_mailbox/update
   692  //
   693  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/update_publicMailbox.go
   694  func (p *publicMailbox) Update(ctx context.Context, req *UpdatePublicMailboxReq, options ...larkcore.RequestOptionFunc) (*UpdatePublicMailboxResp, error) {
   695  	// 发起请求
   696  	apiReq := req.apiReq
   697  	apiReq.ApiPath = "/open-apis/mail/v1/public_mailboxes/:public_mailbox_id"
   698  	apiReq.HttpMethod = http.MethodPut
   699  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   700  	apiResp, err := larkcore.Request(ctx, apiReq, p.service.config, options...)
   701  	if err != nil {
   702  		return nil, err
   703  	}
   704  	// 反序列响应结果
   705  	resp := &UpdatePublicMailboxResp{ApiResp: apiResp}
   706  	err = apiResp.JSONUnmarshalBody(resp)
   707  	if err != nil {
   708  		return nil, err
   709  	}
   710  	return resp, err
   711  }
   712  
   713  // 创建公共邮箱别名
   714  //
   715  // - 创建公共邮箱别名
   716  //
   717  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/public_mailbox-alias/create
   718  //
   719  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/create_publicMailboxAlias.go
   720  func (p *publicMailboxAlias) Create(ctx context.Context, req *CreatePublicMailboxAliasReq, options ...larkcore.RequestOptionFunc) (*CreatePublicMailboxAliasResp, error) {
   721  	// 发起请求
   722  	apiReq := req.apiReq
   723  	apiReq.ApiPath = "/open-apis/mail/v1/public_mailboxes/:public_mailbox_id/aliases"
   724  	apiReq.HttpMethod = http.MethodPost
   725  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   726  	apiResp, err := larkcore.Request(ctx, apiReq, p.service.config, options...)
   727  	if err != nil {
   728  		return nil, err
   729  	}
   730  	// 反序列响应结果
   731  	resp := &CreatePublicMailboxAliasResp{ApiResp: apiResp}
   732  	err = apiResp.JSONUnmarshalBody(resp)
   733  	if err != nil {
   734  		return nil, err
   735  	}
   736  	return resp, err
   737  }
   738  
   739  // 删除公共邮箱别名
   740  //
   741  // - 删除公共邮箱别名
   742  //
   743  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/public_mailbox-alias/delete
   744  //
   745  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/delete_publicMailboxAlias.go
   746  func (p *publicMailboxAlias) Delete(ctx context.Context, req *DeletePublicMailboxAliasReq, options ...larkcore.RequestOptionFunc) (*DeletePublicMailboxAliasResp, error) {
   747  	// 发起请求
   748  	apiReq := req.apiReq
   749  	apiReq.ApiPath = "/open-apis/mail/v1/public_mailboxes/:public_mailbox_id/aliases/:alias_id"
   750  	apiReq.HttpMethod = http.MethodDelete
   751  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   752  	apiResp, err := larkcore.Request(ctx, apiReq, p.service.config, options...)
   753  	if err != nil {
   754  		return nil, err
   755  	}
   756  	// 反序列响应结果
   757  	resp := &DeletePublicMailboxAliasResp{ApiResp: apiResp}
   758  	err = apiResp.JSONUnmarshalBody(resp)
   759  	if err != nil {
   760  		return nil, err
   761  	}
   762  	return resp, err
   763  }
   764  
   765  // 获取所有公共邮箱别名
   766  //
   767  // - 获取所有公共邮箱别名
   768  //
   769  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/public_mailbox-alias/list
   770  //
   771  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/list_publicMailboxAlias.go
   772  func (p *publicMailboxAlias) List(ctx context.Context, req *ListPublicMailboxAliasReq, options ...larkcore.RequestOptionFunc) (*ListPublicMailboxAliasResp, error) {
   773  	// 发起请求
   774  	apiReq := req.apiReq
   775  	apiReq.ApiPath = "/open-apis/mail/v1/public_mailboxes/:public_mailbox_id/aliases"
   776  	apiReq.HttpMethod = http.MethodGet
   777  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   778  	apiResp, err := larkcore.Request(ctx, apiReq, p.service.config, options...)
   779  	if err != nil {
   780  		return nil, err
   781  	}
   782  	// 反序列响应结果
   783  	resp := &ListPublicMailboxAliasResp{ApiResp: apiResp}
   784  	err = apiResp.JSONUnmarshalBody(resp)
   785  	if err != nil {
   786  		return nil, err
   787  	}
   788  	return resp, err
   789  }
   790  
   791  // 清空公共邮箱成员
   792  //
   793  // - 删除公共邮箱所有成员
   794  //
   795  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/public_mailbox-member/clear
   796  //
   797  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/clear_publicMailboxMember.go
   798  func (p *publicMailboxMember) Clear(ctx context.Context, req *ClearPublicMailboxMemberReq, options ...larkcore.RequestOptionFunc) (*ClearPublicMailboxMemberResp, error) {
   799  	// 发起请求
   800  	apiReq := req.apiReq
   801  	apiReq.ApiPath = "/open-apis/mail/v1/public_mailboxes/:public_mailbox_id/members/clear"
   802  	apiReq.HttpMethod = http.MethodPost
   803  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   804  	apiResp, err := larkcore.Request(ctx, apiReq, p.service.config, options...)
   805  	if err != nil {
   806  		return nil, err
   807  	}
   808  	// 反序列响应结果
   809  	resp := &ClearPublicMailboxMemberResp{ApiResp: apiResp}
   810  	err = apiResp.JSONUnmarshalBody(resp)
   811  	if err != nil {
   812  		return nil, err
   813  	}
   814  	return resp, err
   815  }
   816  
   817  // 创建公共邮箱成员
   818  //
   819  // - 向公共邮箱添加单个成员
   820  //
   821  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/public_mailbox-member/create
   822  //
   823  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/create_publicMailboxMember.go
   824  func (p *publicMailboxMember) Create(ctx context.Context, req *CreatePublicMailboxMemberReq, options ...larkcore.RequestOptionFunc) (*CreatePublicMailboxMemberResp, error) {
   825  	// 发起请求
   826  	apiReq := req.apiReq
   827  	apiReq.ApiPath = "/open-apis/mail/v1/public_mailboxes/:public_mailbox_id/members"
   828  	apiReq.HttpMethod = http.MethodPost
   829  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   830  	apiResp, err := larkcore.Request(ctx, apiReq, p.service.config, options...)
   831  	if err != nil {
   832  		return nil, err
   833  	}
   834  	// 反序列响应结果
   835  	resp := &CreatePublicMailboxMemberResp{ApiResp: apiResp}
   836  	err = apiResp.JSONUnmarshalBody(resp)
   837  	if err != nil {
   838  		return nil, err
   839  	}
   840  	return resp, err
   841  }
   842  
   843  // 删除公共邮箱成员
   844  //
   845  // - 删除公共邮箱单个成员
   846  //
   847  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/public_mailbox-member/delete
   848  //
   849  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/delete_publicMailboxMember.go
   850  func (p *publicMailboxMember) Delete(ctx context.Context, req *DeletePublicMailboxMemberReq, options ...larkcore.RequestOptionFunc) (*DeletePublicMailboxMemberResp, error) {
   851  	// 发起请求
   852  	apiReq := req.apiReq
   853  	apiReq.ApiPath = "/open-apis/mail/v1/public_mailboxes/:public_mailbox_id/members/:member_id"
   854  	apiReq.HttpMethod = http.MethodDelete
   855  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   856  	apiResp, err := larkcore.Request(ctx, apiReq, p.service.config, options...)
   857  	if err != nil {
   858  		return nil, err
   859  	}
   860  	// 反序列响应结果
   861  	resp := &DeletePublicMailboxMemberResp{ApiResp: apiResp}
   862  	err = apiResp.JSONUnmarshalBody(resp)
   863  	if err != nil {
   864  		return nil, err
   865  	}
   866  	return resp, err
   867  }
   868  
   869  // 获取公共邮箱成员信息
   870  //
   871  // - 获取公共邮箱单个成员信息
   872  //
   873  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/public_mailbox-member/get
   874  //
   875  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/get_publicMailboxMember.go
   876  func (p *publicMailboxMember) Get(ctx context.Context, req *GetPublicMailboxMemberReq, options ...larkcore.RequestOptionFunc) (*GetPublicMailboxMemberResp, error) {
   877  	// 发起请求
   878  	apiReq := req.apiReq
   879  	apiReq.ApiPath = "/open-apis/mail/v1/public_mailboxes/:public_mailbox_id/members/:member_id"
   880  	apiReq.HttpMethod = http.MethodGet
   881  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   882  	apiResp, err := larkcore.Request(ctx, apiReq, p.service.config, options...)
   883  	if err != nil {
   884  		return nil, err
   885  	}
   886  	// 反序列响应结果
   887  	resp := &GetPublicMailboxMemberResp{ApiResp: apiResp}
   888  	err = apiResp.JSONUnmarshalBody(resp)
   889  	if err != nil {
   890  		return nil, err
   891  	}
   892  	return resp, err
   893  }
   894  
   895  // 批量获取公共邮箱成员
   896  //
   897  // - 分页批量获取公共邮箱成员列表
   898  //
   899  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/public_mailbox-member/list
   900  //
   901  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/list_publicMailboxMember.go
   902  func (p *publicMailboxMember) List(ctx context.Context, req *ListPublicMailboxMemberReq, options ...larkcore.RequestOptionFunc) (*ListPublicMailboxMemberResp, error) {
   903  	// 发起请求
   904  	apiReq := req.apiReq
   905  	apiReq.ApiPath = "/open-apis/mail/v1/public_mailboxes/:public_mailbox_id/members"
   906  	apiReq.HttpMethod = http.MethodGet
   907  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   908  	apiResp, err := larkcore.Request(ctx, apiReq, p.service.config, options...)
   909  	if err != nil {
   910  		return nil, err
   911  	}
   912  	// 反序列响应结果
   913  	resp := &ListPublicMailboxMemberResp{ApiResp: apiResp}
   914  	err = apiResp.JSONUnmarshalBody(resp)
   915  	if err != nil {
   916  		return nil, err
   917  	}
   918  	return resp, err
   919  }
   920  func (p *publicMailboxMember) ListByIterator(ctx context.Context, req *ListPublicMailboxMemberReq, options ...larkcore.RequestOptionFunc) (*ListPublicMailboxMemberIterator, error) {
   921  	return &ListPublicMailboxMemberIterator{
   922  		ctx:      ctx,
   923  		req:      req,
   924  		listFunc: p.List,
   925  		options:  options,
   926  		limit:    req.Limit}, nil
   927  }
   928  
   929  // 邮箱状态查询
   930  //
   931  // - 使用邮箱状态查询接口,可以输入邮箱地址,查询出该邮箱地址对应的类型以及状态
   932  //
   933  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user/query
   934  //
   935  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/query_user.go
   936  func (u *user) Query(ctx context.Context, req *QueryUserReq, options ...larkcore.RequestOptionFunc) (*QueryUserResp, error) {
   937  	// 发起请求
   938  	apiReq := req.apiReq
   939  	apiReq.ApiPath = "/open-apis/mail/v1/users/query"
   940  	apiReq.HttpMethod = http.MethodPost
   941  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   942  	apiResp, err := larkcore.Request(ctx, apiReq, u.service.config, options...)
   943  	if err != nil {
   944  		return nil, err
   945  	}
   946  	// 反序列响应结果
   947  	resp := &QueryUserResp{ApiResp: apiResp}
   948  	err = apiResp.JSONUnmarshalBody(resp)
   949  	if err != nil {
   950  		return nil, err
   951  	}
   952  	return resp, err
   953  }
   954  
   955  // 释放用户邮箱地址
   956  //
   957  // - 该接口会永久删除用户邮箱地址。可用于删除位于邮箱回收站中的用户邮箱地址,一旦删除,将无法恢复。该接口支持邮件的转移,可以将被释放邮箱的邮件转移到另外一个可以使用的邮箱中。
   958  //
   959  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox/delete
   960  //
   961  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/delete_userMailbox.go
   962  func (u *userMailbox) Delete(ctx context.Context, req *DeleteUserMailboxReq, options ...larkcore.RequestOptionFunc) (*DeleteUserMailboxResp, error) {
   963  	// 发起请求
   964  	apiReq := req.apiReq
   965  	apiReq.ApiPath = "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id"
   966  	apiReq.HttpMethod = http.MethodDelete
   967  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   968  	apiResp, err := larkcore.Request(ctx, apiReq, u.service.config, options...)
   969  	if err != nil {
   970  		return nil, err
   971  	}
   972  	// 反序列响应结果
   973  	resp := &DeleteUserMailboxResp{ApiResp: apiResp}
   974  	err = apiResp.JSONUnmarshalBody(resp)
   975  	if err != nil {
   976  		return nil, err
   977  	}
   978  	return resp, err
   979  }
   980  
   981  // 创建用户邮箱别名
   982  //
   983  // - 创建用户邮箱别名
   984  //
   985  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-alias/create
   986  //
   987  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/create_userMailboxAlias.go
   988  func (u *userMailboxAlias) Create(ctx context.Context, req *CreateUserMailboxAliasReq, options ...larkcore.RequestOptionFunc) (*CreateUserMailboxAliasResp, error) {
   989  	// 发起请求
   990  	apiReq := req.apiReq
   991  	apiReq.ApiPath = "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/aliases"
   992  	apiReq.HttpMethod = http.MethodPost
   993  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
   994  	apiResp, err := larkcore.Request(ctx, apiReq, u.service.config, options...)
   995  	if err != nil {
   996  		return nil, err
   997  	}
   998  	// 反序列响应结果
   999  	resp := &CreateUserMailboxAliasResp{ApiResp: apiResp}
  1000  	err = apiResp.JSONUnmarshalBody(resp)
  1001  	if err != nil {
  1002  		return nil, err
  1003  	}
  1004  	return resp, err
  1005  }
  1006  
  1007  // 删除用户邮箱别名
  1008  //
  1009  // - 删除用户邮箱别名
  1010  //
  1011  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-alias/delete
  1012  //
  1013  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/delete_userMailboxAlias.go
  1014  func (u *userMailboxAlias) Delete(ctx context.Context, req *DeleteUserMailboxAliasReq, options ...larkcore.RequestOptionFunc) (*DeleteUserMailboxAliasResp, error) {
  1015  	// 发起请求
  1016  	apiReq := req.apiReq
  1017  	apiReq.ApiPath = "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/aliases/:alias_id"
  1018  	apiReq.HttpMethod = http.MethodDelete
  1019  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
  1020  	apiResp, err := larkcore.Request(ctx, apiReq, u.service.config, options...)
  1021  	if err != nil {
  1022  		return nil, err
  1023  	}
  1024  	// 反序列响应结果
  1025  	resp := &DeleteUserMailboxAliasResp{ApiResp: apiResp}
  1026  	err = apiResp.JSONUnmarshalBody(resp)
  1027  	if err != nil {
  1028  		return nil, err
  1029  	}
  1030  	return resp, err
  1031  }
  1032  
  1033  // 获取用户邮箱所有别名
  1034  //
  1035  // - 获取用户邮箱所有别名
  1036  //
  1037  // - 官网API文档链接:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/reference/mail-v1/user_mailbox-alias/list
  1038  //
  1039  // - 使用Demo链接:https://github.com/larksuite/oapi-sdk-go/tree/v3_main/sample/apiall/mailv1/list_userMailboxAlias.go
  1040  func (u *userMailboxAlias) List(ctx context.Context, req *ListUserMailboxAliasReq, options ...larkcore.RequestOptionFunc) (*ListUserMailboxAliasResp, error) {
  1041  	// 发起请求
  1042  	apiReq := req.apiReq
  1043  	apiReq.ApiPath = "/open-apis/mail/v1/user_mailboxes/:user_mailbox_id/aliases"
  1044  	apiReq.HttpMethod = http.MethodGet
  1045  	apiReq.SupportedAccessTokenTypes = []larkcore.AccessTokenType{larkcore.AccessTokenTypeTenant}
  1046  	apiResp, err := larkcore.Request(ctx, apiReq, u.service.config, options...)
  1047  	if err != nil {
  1048  		return nil, err
  1049  	}
  1050  	// 反序列响应结果
  1051  	resp := &ListUserMailboxAliasResp{ApiResp: apiResp}
  1052  	err = apiResp.JSONUnmarshalBody(resp)
  1053  	if err != nil {
  1054  		return nil, err
  1055  	}
  1056  	return resp, err
  1057  }