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

     1  // Package baike 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 larkbaike
    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  	UserIdTypeUserId  = "user_id"  // 以user_id来识别用户
    27  	UserIdTypeUnionId = "union_id" // 以union_id来识别用户
    28  	UserIdTypeOpenId  = "open_id"  // 以open_id来识别用户
    29  )
    30  
    31  const (
    32  	UserIdTypeUpdateDraftUserId  = "user_id"  // 以user_id来识别用户
    33  	UserIdTypeUpdateDraftUnionId = "union_id" // 以union_id来识别用户
    34  	UserIdTypeUpdateDraftOpenId  = "open_id"  // 以open_id来识别用户
    35  )
    36  
    37  const (
    38  	UserIdTypeCreateEntityUserId  = "user_id"  // 以user_id来识别用户
    39  	UserIdTypeCreateEntityUnionId = "union_id" // 以union_id来识别用户
    40  	UserIdTypeCreateEntityOpenId  = "open_id"  // 以open_id来识别用户
    41  )
    42  
    43  const (
    44  	UserIdTypeGetEntityUserId  = "user_id"  // 以user_id来识别用户
    45  	UserIdTypeGetEntityUnionId = "union_id" // 以union_id来识别用户
    46  	UserIdTypeGetEntityOpenId  = "open_id"  // 以open_id来识别用户
    47  )
    48  
    49  const (
    50  	UserIdTypeListEntityUserId  = "user_id"  // 以user_id来识别用户
    51  	UserIdTypeListEntityUnionId = "union_id" // 以union_id来识别用户
    52  	UserIdTypeListEntityOpenId  = "open_id"  // 以open_id来识别用户
    53  )
    54  
    55  const (
    56  	UserIdTypeSearchEntityUserId  = "user_id"  // 以user_id来识别用户
    57  	UserIdTypeSearchEntityUnionId = "union_id" // 以union_id来识别用户
    58  	UserIdTypeSearchEntityOpenId  = "open_id"  // 以open_id来识别用户
    59  )
    60  
    61  const (
    62  	UserIdTypeUpdateEntityUserId  = "user_id"  // 以user_id来识别用户
    63  	UserIdTypeUpdateEntityUnionId = "union_id" // 以union_id来识别用户
    64  	UserIdTypeUpdateEntityOpenId  = "open_id"  // 以open_id来识别用户
    65  )
    66  
    67  type Abbreviation struct {
    68  	Id *string `json:"id,omitempty"` // 相关词条 ID
    69  }
    70  
    71  type AbbreviationBuilder struct {
    72  	id     string // 相关词条 ID
    73  	idFlag bool
    74  }
    75  
    76  func NewAbbreviationBuilder() *AbbreviationBuilder {
    77  	builder := &AbbreviationBuilder{}
    78  	return builder
    79  }
    80  
    81  // 相关词条 ID
    82  //
    83  // 示例值:enterprise_51587960
    84  func (builder *AbbreviationBuilder) Id(id string) *AbbreviationBuilder {
    85  	builder.id = id
    86  	builder.idFlag = true
    87  	return builder
    88  }
    89  
    90  func (builder *AbbreviationBuilder) Build() *Abbreviation {
    91  	req := &Abbreviation{}
    92  	if builder.idFlag {
    93  		req.Id = &builder.id
    94  
    95  	}
    96  	return req
    97  }
    98  
    99  type Classification struct {
   100  	Id       *string `json:"id,omitempty"`        // 二级分类 ID
   101  	Name     *string `json:"name,omitempty"`      // 二级分类名称
   102  	FatherId *string `json:"father_id,omitempty"` // 对应一级分类 ID
   103  }
   104  
   105  type ClassificationBuilder struct {
   106  	id           string // 二级分类 ID
   107  	idFlag       bool
   108  	name         string // 二级分类名称
   109  	nameFlag     bool
   110  	fatherId     string // 对应一级分类 ID
   111  	fatherIdFlag bool
   112  }
   113  
   114  func NewClassificationBuilder() *ClassificationBuilder {
   115  	builder := &ClassificationBuilder{}
   116  	return builder
   117  }
   118  
   119  // 二级分类 ID
   120  //
   121  // 示例值:7049606926702837761
   122  func (builder *ClassificationBuilder) Id(id string) *ClassificationBuilder {
   123  	builder.id = id
   124  	builder.idFlag = true
   125  	return builder
   126  }
   127  
   128  // 二级分类名称
   129  //
   130  // 示例值:行业术语
   131  func (builder *ClassificationBuilder) Name(name string) *ClassificationBuilder {
   132  	builder.name = name
   133  	builder.nameFlag = true
   134  	return builder
   135  }
   136  
   137  // 对应一级分类 ID
   138  //
   139  // 示例值:7049606926702837777
   140  func (builder *ClassificationBuilder) FatherId(fatherId string) *ClassificationBuilder {
   141  	builder.fatherId = fatherId
   142  	builder.fatherIdFlag = true
   143  	return builder
   144  }
   145  
   146  func (builder *ClassificationBuilder) Build() *Classification {
   147  	req := &Classification{}
   148  	if builder.idFlag {
   149  		req.Id = &builder.id
   150  
   151  	}
   152  	if builder.nameFlag {
   153  		req.Name = &builder.name
   154  
   155  	}
   156  	if builder.fatherIdFlag {
   157  		req.FatherId = &builder.fatherId
   158  
   159  	}
   160  	return req
   161  }
   162  
   163  type DisplayStatus struct {
   164  	AllowHighlight *bool `json:"allow_highlight,omitempty"` // 对应名称是否在消息/云文档高亮
   165  	AllowSearch    *bool `json:"allow_search,omitempty"`    // 对应名称是否在搜索结果中展示
   166  }
   167  
   168  type DisplayStatusBuilder struct {
   169  	allowHighlight     bool // 对应名称是否在消息/云文档高亮
   170  	allowHighlightFlag bool
   171  	allowSearch        bool // 对应名称是否在搜索结果中展示
   172  	allowSearchFlag    bool
   173  }
   174  
   175  func NewDisplayStatusBuilder() *DisplayStatusBuilder {
   176  	builder := &DisplayStatusBuilder{}
   177  	return builder
   178  }
   179  
   180  // 对应名称是否在消息/云文档高亮
   181  //
   182  // 示例值:true
   183  func (builder *DisplayStatusBuilder) AllowHighlight(allowHighlight bool) *DisplayStatusBuilder {
   184  	builder.allowHighlight = allowHighlight
   185  	builder.allowHighlightFlag = true
   186  	return builder
   187  }
   188  
   189  // 对应名称是否在搜索结果中展示
   190  //
   191  // 示例值:true
   192  func (builder *DisplayStatusBuilder) AllowSearch(allowSearch bool) *DisplayStatusBuilder {
   193  	builder.allowSearch = allowSearch
   194  	builder.allowSearchFlag = true
   195  	return builder
   196  }
   197  
   198  func (builder *DisplayStatusBuilder) Build() *DisplayStatus {
   199  	req := &DisplayStatus{}
   200  	if builder.allowHighlightFlag {
   201  		req.AllowHighlight = &builder.allowHighlight
   202  
   203  	}
   204  	if builder.allowSearchFlag {
   205  		req.AllowSearch = &builder.allowSearch
   206  
   207  	}
   208  	return req
   209  }
   210  
   211  type Draft struct {
   212  	DraftId *string `json:"draft_id,omitempty"` // 草稿 ID
   213  	Entity  *Entity `json:"entity,omitempty"`   // 词条信息
   214  }
   215  
   216  type DraftBuilder struct {
   217  	draftId     string // 草稿 ID
   218  	draftIdFlag bool
   219  	entity      *Entity // 词条信息
   220  	entityFlag  bool
   221  }
   222  
   223  func NewDraftBuilder() *DraftBuilder {
   224  	builder := &DraftBuilder{}
   225  	return builder
   226  }
   227  
   228  // 草稿 ID
   229  //
   230  // 示例值:42322
   231  func (builder *DraftBuilder) DraftId(draftId string) *DraftBuilder {
   232  	builder.draftId = draftId
   233  	builder.draftIdFlag = true
   234  	return builder
   235  }
   236  
   237  // 词条信息
   238  //
   239  // 示例值:
   240  func (builder *DraftBuilder) Entity(entity *Entity) *DraftBuilder {
   241  	builder.entity = entity
   242  	builder.entityFlag = true
   243  	return builder
   244  }
   245  
   246  func (builder *DraftBuilder) Build() *Draft {
   247  	req := &Draft{}
   248  	if builder.draftIdFlag {
   249  		req.DraftId = &builder.draftId
   250  
   251  	}
   252  	if builder.entityFlag {
   253  		req.Entity = builder.entity
   254  	}
   255  	return req
   256  }
   257  
   258  type Entity struct {
   259  	Id       *string `json:"id,omitempty"`        // 词条 ID (需要更新某个词条时填写,若是创建新词条可不填写)
   260  	MainKeys []*Term `json:"main_keys,omitempty"` // 词条名
   261  
   262  	Aliases     []*Term      `json:"aliases,omitempty"`      // 别名
   263  	Description *string      `json:"description,omitempty"`  // 词条释义(纯文本格式)
   264  	CreateTime  *string      `json:"create_time,omitempty"`  // 词条创建时间
   265  	UpdateTime  *string      `json:"update_time,omitempty"`  // 词条最近更新时间
   266  	RelatedMeta *RelatedMeta `json:"related_meta,omitempty"` // 更多相关信息
   267  	Categories  []string     `json:"categories,omitempty"`   // 词条标签
   268  	Statistics  *Statistics  `json:"statistics,omitempty"`   // 当前词条收到的反馈数据
   269  	OuterInfo   *OuterInfo   `json:"outer_info,omitempty"`   // 外部系统关联数据
   270  	RichText    *string      `json:"rich_text,omitempty"`    // 富文本格式(当填写富文本内容时,description字段将会失效可不填写),支持的格式参考[企业百科指南](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/baike-v1/overview)中的释义部分
   271  }
   272  
   273  type EntityBuilder struct {
   274  	id           string // 词条 ID (需要更新某个词条时填写,若是创建新词条可不填写)
   275  	idFlag       bool
   276  	mainKeys     []*Term // 词条名
   277  	mainKeysFlag bool
   278  
   279  	aliases         []*Term // 别名
   280  	aliasesFlag     bool
   281  	description     string // 词条释义(纯文本格式)
   282  	descriptionFlag bool
   283  	createTime      string // 词条创建时间
   284  	createTimeFlag  bool
   285  	updateTime      string // 词条最近更新时间
   286  	updateTimeFlag  bool
   287  	relatedMeta     *RelatedMeta // 更多相关信息
   288  	relatedMetaFlag bool
   289  	categories      []string // 词条标签
   290  	categoriesFlag  bool
   291  	statistics      *Statistics // 当前词条收到的反馈数据
   292  	statisticsFlag  bool
   293  	outerInfo       *OuterInfo // 外部系统关联数据
   294  	outerInfoFlag   bool
   295  	richText        string // 富文本格式(当填写富文本内容时,description字段将会失效可不填写),支持的格式参考[企业百科指南](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/baike-v1/overview)中的释义部分
   296  	richTextFlag    bool
   297  }
   298  
   299  func NewEntityBuilder() *EntityBuilder {
   300  	builder := &EntityBuilder{}
   301  	return builder
   302  }
   303  
   304  // 词条 ID (需要更新某个词条时填写,若是创建新词条可不填写)
   305  //
   306  // 示例值:enterprise_40217521
   307  func (builder *EntityBuilder) Id(id string) *EntityBuilder {
   308  	builder.id = id
   309  	builder.idFlag = true
   310  	return builder
   311  }
   312  
   313  // 词条名
   314  //
   315  // 示例值:
   316  func (builder *EntityBuilder) MainKeys(mainKeys []*Term) *EntityBuilder {
   317  	builder.mainKeys = mainKeys
   318  	builder.mainKeysFlag = true
   319  	return builder
   320  }
   321  
   322  // 别名
   323  //
   324  // 示例值:
   325  func (builder *EntityBuilder) Aliases(aliases []*Term) *EntityBuilder {
   326  	builder.aliases = aliases
   327  	builder.aliasesFlag = true
   328  	return builder
   329  }
   330  
   331  // 词条释义(纯文本格式)
   332  //
   333  // 示例值:企业百科是飞书提供的一款知识管理工具,通过企业百科可以帮助企业将分散的知识信息进行聚合,并通过UGC的方式,促进企业知识的保鲜和流通
   334  func (builder *EntityBuilder) Description(description string) *EntityBuilder {
   335  	builder.description = description
   336  	builder.descriptionFlag = true
   337  	return builder
   338  }
   339  
   340  // 词条创建时间
   341  //
   342  // 示例值:1649318125
   343  func (builder *EntityBuilder) CreateTime(createTime string) *EntityBuilder {
   344  	builder.createTime = createTime
   345  	builder.createTimeFlag = true
   346  	return builder
   347  }
   348  
   349  // 词条最近更新时间
   350  //
   351  // 示例值:1649318125
   352  func (builder *EntityBuilder) UpdateTime(updateTime string) *EntityBuilder {
   353  	builder.updateTime = updateTime
   354  	builder.updateTimeFlag = true
   355  	return builder
   356  }
   357  
   358  // 更多相关信息
   359  //
   360  // 示例值:
   361  func (builder *EntityBuilder) RelatedMeta(relatedMeta *RelatedMeta) *EntityBuilder {
   362  	builder.relatedMeta = relatedMeta
   363  	builder.relatedMetaFlag = true
   364  	return builder
   365  }
   366  
   367  // 词条标签
   368  //
   369  // 示例值:
   370  func (builder *EntityBuilder) Categories(categories []string) *EntityBuilder {
   371  	builder.categories = categories
   372  	builder.categoriesFlag = true
   373  	return builder
   374  }
   375  
   376  // 当前词条收到的反馈数据
   377  //
   378  // 示例值:
   379  func (builder *EntityBuilder) Statistics(statistics *Statistics) *EntityBuilder {
   380  	builder.statistics = statistics
   381  	builder.statisticsFlag = true
   382  	return builder
   383  }
   384  
   385  // 外部系统关联数据
   386  //
   387  // 示例值:
   388  func (builder *EntityBuilder) OuterInfo(outerInfo *OuterInfo) *EntityBuilder {
   389  	builder.outerInfo = outerInfo
   390  	builder.outerInfoFlag = true
   391  	return builder
   392  }
   393  
   394  // 富文本格式(当填写富文本内容时,description字段将会失效可不填写),支持的格式参考[企业百科指南](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/baike-v1/overview)中的释义部分
   395  //
   396  // 示例值:<b>加粗</b><i>斜体</i><p><a href=\"https://feishu.cn\">链接</a></p><p><span>企业百科是飞书提供的一款知识管理工具,通过企业百科可以帮助企业将分散的知识信息进行聚合,并通过UGC的方式,促进企业知识的保鲜和流通</span></p>
   397  func (builder *EntityBuilder) RichText(richText string) *EntityBuilder {
   398  	builder.richText = richText
   399  	builder.richTextFlag = true
   400  	return builder
   401  }
   402  
   403  func (builder *EntityBuilder) Build() *Entity {
   404  	req := &Entity{}
   405  	if builder.idFlag {
   406  		req.Id = &builder.id
   407  
   408  	}
   409  	if builder.mainKeysFlag {
   410  		req.MainKeys = builder.mainKeys
   411  	}
   412  
   413  	if builder.aliasesFlag {
   414  		req.Aliases = builder.aliases
   415  	}
   416  	if builder.descriptionFlag {
   417  		req.Description = &builder.description
   418  
   419  	}
   420  	if builder.createTimeFlag {
   421  		req.CreateTime = &builder.createTime
   422  
   423  	}
   424  	if builder.updateTimeFlag {
   425  		req.UpdateTime = &builder.updateTime
   426  
   427  	}
   428  	if builder.relatedMetaFlag {
   429  		req.RelatedMeta = builder.relatedMeta
   430  	}
   431  	if builder.categoriesFlag {
   432  		req.Categories = builder.categories
   433  	}
   434  	if builder.statisticsFlag {
   435  		req.Statistics = builder.statistics
   436  	}
   437  	if builder.outerInfoFlag {
   438  		req.OuterInfo = builder.outerInfo
   439  	}
   440  	if builder.richTextFlag {
   441  		req.RichText = &builder.richText
   442  
   443  	}
   444  	return req
   445  }
   446  
   447  type MatchInfo struct {
   448  	EntityId *string `json:"entity_id,omitempty"` // 词条 ID
   449  	Type     *int    `json:"type,omitempty"`      // 命中的字段
   450  }
   451  
   452  type MatchInfoBuilder struct {
   453  	entityId     string // 词条 ID
   454  	entityIdFlag bool
   455  	type_        int // 命中的字段
   456  	typeFlag     bool
   457  }
   458  
   459  func NewMatchInfoBuilder() *MatchInfoBuilder {
   460  	builder := &MatchInfoBuilder{}
   461  	return builder
   462  }
   463  
   464  // 词条 ID
   465  //
   466  // 示例值:enterprise_34809584
   467  func (builder *MatchInfoBuilder) EntityId(entityId string) *MatchInfoBuilder {
   468  	builder.entityId = entityId
   469  	builder.entityIdFlag = true
   470  	return builder
   471  }
   472  
   473  // 命中的字段
   474  //
   475  // 示例值:0
   476  func (builder *MatchInfoBuilder) Type(type_ int) *MatchInfoBuilder {
   477  	builder.type_ = type_
   478  	builder.typeFlag = true
   479  	return builder
   480  }
   481  
   482  func (builder *MatchInfoBuilder) Build() *MatchInfo {
   483  	req := &MatchInfo{}
   484  	if builder.entityIdFlag {
   485  		req.EntityId = &builder.entityId
   486  
   487  	}
   488  	if builder.typeFlag {
   489  		req.Type = &builder.type_
   490  
   491  	}
   492  	return req
   493  }
   494  
   495  type OuterInfo struct {
   496  	Provider *string `json:"provider,omitempty"` // 外部系统(不能包含中横线 "-")
   497  	OuterId  *string `json:"outer_id,omitempty"` // 词条在外部系统中对应的唯一 ID(不能包含中横线 "-")
   498  }
   499  
   500  type OuterInfoBuilder struct {
   501  	provider     string // 外部系统(不能包含中横线 "-")
   502  	providerFlag bool
   503  	outerId      string // 词条在外部系统中对应的唯一 ID(不能包含中横线 "-")
   504  	outerIdFlag  bool
   505  }
   506  
   507  func NewOuterInfoBuilder() *OuterInfoBuilder {
   508  	builder := &OuterInfoBuilder{}
   509  	return builder
   510  }
   511  
   512  // 外部系统(不能包含中横线 "-")
   513  //
   514  // 示例值:星云
   515  func (builder *OuterInfoBuilder) Provider(provider string) *OuterInfoBuilder {
   516  	builder.provider = provider
   517  	builder.providerFlag = true
   518  	return builder
   519  }
   520  
   521  // 词条在外部系统中对应的唯一 ID(不能包含中横线 "-")
   522  //
   523  // 示例值:client_6539i3498d
   524  func (builder *OuterInfoBuilder) OuterId(outerId string) *OuterInfoBuilder {
   525  	builder.outerId = outerId
   526  	builder.outerIdFlag = true
   527  	return builder
   528  }
   529  
   530  func (builder *OuterInfoBuilder) Build() *OuterInfo {
   531  	req := &OuterInfo{}
   532  	if builder.providerFlag {
   533  		req.Provider = &builder.provider
   534  
   535  	}
   536  	if builder.outerIdFlag {
   537  		req.OuterId = &builder.outerId
   538  
   539  	}
   540  	return req
   541  }
   542  
   543  type Phrase struct {
   544  	Name      *string  `json:"name,omitempty"`       // 识别到的关键词
   545  	EntityIds []string `json:"entity_ids,omitempty"` // 对应的词条 ID
   546  	Span      *Span    `json:"span,omitempty"`       // 词条所在位置
   547  }
   548  
   549  type PhraseBuilder struct {
   550  	name          string // 识别到的关键词
   551  	nameFlag      bool
   552  	entityIds     []string // 对应的词条 ID
   553  	entityIdsFlag bool
   554  	span          *Span // 词条所在位置
   555  	spanFlag      bool
   556  }
   557  
   558  func NewPhraseBuilder() *PhraseBuilder {
   559  	builder := &PhraseBuilder{}
   560  	return builder
   561  }
   562  
   563  // 识别到的关键词
   564  //
   565  // 示例值:企业百科
   566  func (builder *PhraseBuilder) Name(name string) *PhraseBuilder {
   567  	builder.name = name
   568  	builder.nameFlag = true
   569  	return builder
   570  }
   571  
   572  // 对应的词条 ID
   573  //
   574  // 示例值:
   575  func (builder *PhraseBuilder) EntityIds(entityIds []string) *PhraseBuilder {
   576  	builder.entityIds = entityIds
   577  	builder.entityIdsFlag = true
   578  	return builder
   579  }
   580  
   581  // 词条所在位置
   582  //
   583  // 示例值:
   584  func (builder *PhraseBuilder) Span(span *Span) *PhraseBuilder {
   585  	builder.span = span
   586  	builder.spanFlag = true
   587  	return builder
   588  }
   589  
   590  func (builder *PhraseBuilder) Build() *Phrase {
   591  	req := &Phrase{}
   592  	if builder.nameFlag {
   593  		req.Name = &builder.name
   594  
   595  	}
   596  	if builder.entityIdsFlag {
   597  		req.EntityIds = builder.entityIds
   598  	}
   599  	if builder.spanFlag {
   600  		req.Span = builder.span
   601  	}
   602  	return req
   603  }
   604  
   605  type Referer struct {
   606  	Id    *string `json:"id,omitempty"`    // 对应相关信息 ID
   607  	Title *string `json:"title,omitempty"` // 对应相关信息的描述,如相关联系人的描述、相关链接的标题
   608  	Url   *string `json:"url,omitempty"`   // 链接地址
   609  }
   610  
   611  type RefererBuilder struct {
   612  	id        string // 对应相关信息 ID
   613  	idFlag    bool
   614  	title     string // 对应相关信息的描述,如相关联系人的描述、相关链接的标题
   615  	titleFlag bool
   616  	url       string // 链接地址
   617  	urlFlag   bool
   618  }
   619  
   620  func NewRefererBuilder() *RefererBuilder {
   621  	builder := &RefererBuilder{}
   622  	return builder
   623  }
   624  
   625  // 对应相关信息 ID
   626  //
   627  // 示例值:格式请看请求体示例
   628  func (builder *RefererBuilder) Id(id string) *RefererBuilder {
   629  	builder.id = id
   630  	builder.idFlag = true
   631  	return builder
   632  }
   633  
   634  // 对应相关信息的描述,如相关联系人的描述、相关链接的标题
   635  //
   636  // 示例值:企业百科帮助中心
   637  func (builder *RefererBuilder) Title(title string) *RefererBuilder {
   638  	builder.title = title
   639  	builder.titleFlag = true
   640  	return builder
   641  }
   642  
   643  // 链接地址
   644  //
   645  // 示例值:https://www.feishu.cn/hc/zh-CN
   646  func (builder *RefererBuilder) Url(url string) *RefererBuilder {
   647  	builder.url = url
   648  	builder.urlFlag = true
   649  	return builder
   650  }
   651  
   652  func (builder *RefererBuilder) Build() *Referer {
   653  	req := &Referer{}
   654  	if builder.idFlag {
   655  		req.Id = &builder.id
   656  
   657  	}
   658  	if builder.titleFlag {
   659  		req.Title = &builder.title
   660  
   661  	}
   662  	if builder.urlFlag {
   663  		req.Url = &builder.url
   664  
   665  	}
   666  	return req
   667  }
   668  
   669  type RelatedMeta struct {
   670  	Users           []*Referer        `json:"users,omitempty"`           // 相关联系人
   671  	Chats           []*Referer        `json:"chats,omitempty"`           // 相关服务中的相关公开群
   672  	Docs            []*Referer        `json:"docs,omitempty"`            // 相关云文档
   673  	Oncalls         []*Referer        `json:"oncalls,omitempty"`         // 相关服务中的相关值班号
   674  	Links           []*Referer        `json:"links,omitempty"`           // 相关链接
   675  	Abbreviations   []*Abbreviation   `json:"abbreviations,omitempty"`   // 相关词条
   676  	Classifications []*Classification `json:"classifications,omitempty"` // 当前词条所属分类;词条只能属于二级分类,且每个一级分类下只能选择一个二级分类。
   677  }
   678  
   679  type RelatedMetaBuilder struct {
   680  	users               []*Referer // 相关联系人
   681  	usersFlag           bool
   682  	chats               []*Referer // 相关服务中的相关公开群
   683  	chatsFlag           bool
   684  	docs                []*Referer // 相关云文档
   685  	docsFlag            bool
   686  	oncalls             []*Referer // 相关服务中的相关值班号
   687  	oncallsFlag         bool
   688  	links               []*Referer // 相关链接
   689  	linksFlag           bool
   690  	abbreviations       []*Abbreviation // 相关词条
   691  	abbreviationsFlag   bool
   692  	classifications     []*Classification // 当前词条所属分类;词条只能属于二级分类,且每个一级分类下只能选择一个二级分类。
   693  	classificationsFlag bool
   694  }
   695  
   696  func NewRelatedMetaBuilder() *RelatedMetaBuilder {
   697  	builder := &RelatedMetaBuilder{}
   698  	return builder
   699  }
   700  
   701  // 相关联系人
   702  //
   703  // 示例值:
   704  func (builder *RelatedMetaBuilder) Users(users []*Referer) *RelatedMetaBuilder {
   705  	builder.users = users
   706  	builder.usersFlag = true
   707  	return builder
   708  }
   709  
   710  // 相关服务中的相关公开群
   711  //
   712  // 示例值:
   713  func (builder *RelatedMetaBuilder) Chats(chats []*Referer) *RelatedMetaBuilder {
   714  	builder.chats = chats
   715  	builder.chatsFlag = true
   716  	return builder
   717  }
   718  
   719  // 相关云文档
   720  //
   721  // 示例值:
   722  func (builder *RelatedMetaBuilder) Docs(docs []*Referer) *RelatedMetaBuilder {
   723  	builder.docs = docs
   724  	builder.docsFlag = true
   725  	return builder
   726  }
   727  
   728  // 相关服务中的相关值班号
   729  //
   730  // 示例值:
   731  func (builder *RelatedMetaBuilder) Oncalls(oncalls []*Referer) *RelatedMetaBuilder {
   732  	builder.oncalls = oncalls
   733  	builder.oncallsFlag = true
   734  	return builder
   735  }
   736  
   737  // 相关链接
   738  //
   739  // 示例值:
   740  func (builder *RelatedMetaBuilder) Links(links []*Referer) *RelatedMetaBuilder {
   741  	builder.links = links
   742  	builder.linksFlag = true
   743  	return builder
   744  }
   745  
   746  // 相关词条
   747  //
   748  // 示例值:
   749  func (builder *RelatedMetaBuilder) Abbreviations(abbreviations []*Abbreviation) *RelatedMetaBuilder {
   750  	builder.abbreviations = abbreviations
   751  	builder.abbreviationsFlag = true
   752  	return builder
   753  }
   754  
   755  // 当前词条所属分类;词条只能属于二级分类,且每个一级分类下只能选择一个二级分类。
   756  //
   757  // 示例值:
   758  func (builder *RelatedMetaBuilder) Classifications(classifications []*Classification) *RelatedMetaBuilder {
   759  	builder.classifications = classifications
   760  	builder.classificationsFlag = true
   761  	return builder
   762  }
   763  
   764  func (builder *RelatedMetaBuilder) Build() *RelatedMeta {
   765  	req := &RelatedMeta{}
   766  	if builder.usersFlag {
   767  		req.Users = builder.users
   768  	}
   769  	if builder.chatsFlag {
   770  		req.Chats = builder.chats
   771  	}
   772  	if builder.docsFlag {
   773  		req.Docs = builder.docs
   774  	}
   775  	if builder.oncallsFlag {
   776  		req.Oncalls = builder.oncalls
   777  	}
   778  	if builder.linksFlag {
   779  		req.Links = builder.links
   780  	}
   781  	if builder.abbreviationsFlag {
   782  		req.Abbreviations = builder.abbreviations
   783  	}
   784  	if builder.classificationsFlag {
   785  		req.Classifications = builder.classifications
   786  	}
   787  	return req
   788  }
   789  
   790  type Span struct {
   791  	Start *int `json:"start,omitempty"` // 关键词开始位置,从 0 开始计数(编码格式采用 utf-8)
   792  	End   *int `json:"end,omitempty"`   // 关键词结束位置,从 0 开始计数(编码格式采用 utf-8)
   793  }
   794  
   795  type SpanBuilder struct {
   796  	start     int // 关键词开始位置,从 0 开始计数(编码格式采用 utf-8)
   797  	startFlag bool
   798  	end       int // 关键词结束位置,从 0 开始计数(编码格式采用 utf-8)
   799  	endFlag   bool
   800  }
   801  
   802  func NewSpanBuilder() *SpanBuilder {
   803  	builder := &SpanBuilder{}
   804  	return builder
   805  }
   806  
   807  // 关键词开始位置,从 0 开始计数(编码格式采用 utf-8)
   808  //
   809  // 示例值:0
   810  func (builder *SpanBuilder) Start(start int) *SpanBuilder {
   811  	builder.start = start
   812  	builder.startFlag = true
   813  	return builder
   814  }
   815  
   816  // 关键词结束位置,从 0 开始计数(编码格式采用 utf-8)
   817  //
   818  // 示例值:4
   819  func (builder *SpanBuilder) End(end int) *SpanBuilder {
   820  	builder.end = end
   821  	builder.endFlag = true
   822  	return builder
   823  }
   824  
   825  func (builder *SpanBuilder) Build() *Span {
   826  	req := &Span{}
   827  	if builder.startFlag {
   828  		req.Start = &builder.start
   829  
   830  	}
   831  	if builder.endFlag {
   832  		req.End = &builder.end
   833  
   834  	}
   835  	return req
   836  }
   837  
   838  type Statistics struct {
   839  	LikeCount    *int `json:"like_count,omitempty"`    // 累计点赞
   840  	DislikeCount *int `json:"dislike_count,omitempty"` // 当前词条版本收到的负反馈数量
   841  }
   842  
   843  type StatisticsBuilder struct {
   844  	likeCount        int // 累计点赞
   845  	likeCountFlag    bool
   846  	dislikeCount     int // 当前词条版本收到的负反馈数量
   847  	dislikeCountFlag bool
   848  }
   849  
   850  func NewStatisticsBuilder() *StatisticsBuilder {
   851  	builder := &StatisticsBuilder{}
   852  	return builder
   853  }
   854  
   855  // 累计点赞
   856  //
   857  // 示例值:55
   858  func (builder *StatisticsBuilder) LikeCount(likeCount int) *StatisticsBuilder {
   859  	builder.likeCount = likeCount
   860  	builder.likeCountFlag = true
   861  	return builder
   862  }
   863  
   864  // 当前词条版本收到的负反馈数量
   865  //
   866  // 示例值:3
   867  func (builder *StatisticsBuilder) DislikeCount(dislikeCount int) *StatisticsBuilder {
   868  	builder.dislikeCount = dislikeCount
   869  	builder.dislikeCountFlag = true
   870  	return builder
   871  }
   872  
   873  func (builder *StatisticsBuilder) Build() *Statistics {
   874  	req := &Statistics{}
   875  	if builder.likeCountFlag {
   876  		req.LikeCount = &builder.likeCount
   877  
   878  	}
   879  	if builder.dislikeCountFlag {
   880  		req.DislikeCount = &builder.dislikeCount
   881  
   882  	}
   883  	return req
   884  }
   885  
   886  type Term struct {
   887  	Key           *string        `json:"key,omitempty"`            // 名称的值
   888  	DisplayStatus *DisplayStatus `json:"display_status,omitempty"` // 名称展示范围
   889  }
   890  
   891  type TermBuilder struct {
   892  	key               string // 名称的值
   893  	keyFlag           bool
   894  	displayStatus     *DisplayStatus // 名称展示范围
   895  	displayStatusFlag bool
   896  }
   897  
   898  func NewTermBuilder() *TermBuilder {
   899  	builder := &TermBuilder{}
   900  	return builder
   901  }
   902  
   903  // 名称的值
   904  //
   905  // 示例值:企业百科
   906  func (builder *TermBuilder) Key(key string) *TermBuilder {
   907  	builder.key = key
   908  	builder.keyFlag = true
   909  	return builder
   910  }
   911  
   912  // 名称展示范围
   913  //
   914  // 示例值:
   915  func (builder *TermBuilder) DisplayStatus(displayStatus *DisplayStatus) *TermBuilder {
   916  	builder.displayStatus = displayStatus
   917  	builder.displayStatusFlag = true
   918  	return builder
   919  }
   920  
   921  func (builder *TermBuilder) Build() *Term {
   922  	req := &Term{}
   923  	if builder.keyFlag {
   924  		req.Key = &builder.key
   925  
   926  	}
   927  	if builder.displayStatusFlag {
   928  		req.DisplayStatus = builder.displayStatus
   929  	}
   930  	return req
   931  }
   932  
   933  type ListClassificationReqBuilder struct {
   934  	apiReq *larkcore.ApiReq
   935  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
   936  }
   937  
   938  func NewListClassificationReqBuilder() *ListClassificationReqBuilder {
   939  	builder := &ListClassificationReqBuilder{}
   940  	builder.apiReq = &larkcore.ApiReq{
   941  		PathParams:  larkcore.PathParams{},
   942  		QueryParams: larkcore.QueryParams{},
   943  	}
   944  	return builder
   945  }
   946  
   947  // 最大返回多少记录,当使用迭代器访问时才有效
   948  func (builder *ListClassificationReqBuilder) Limit(limit int) *ListClassificationReqBuilder {
   949  	builder.limit = limit
   950  	return builder
   951  }
   952  
   953  // 分页大小
   954  //
   955  // 示例值:20
   956  func (builder *ListClassificationReqBuilder) PageSize(pageSize int) *ListClassificationReqBuilder {
   957  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
   958  	return builder
   959  }
   960  
   961  // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果
   962  //
   963  // 示例值:408ecac018b2e3518db37275e812aad7bb8ad3e755fc886f322ac6c430ba
   964  func (builder *ListClassificationReqBuilder) PageToken(pageToken string) *ListClassificationReqBuilder {
   965  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
   966  	return builder
   967  }
   968  
   969  func (builder *ListClassificationReqBuilder) Build() *ListClassificationReq {
   970  	req := &ListClassificationReq{}
   971  	req.apiReq = &larkcore.ApiReq{}
   972  	req.Limit = builder.limit
   973  	req.apiReq.QueryParams = builder.apiReq.QueryParams
   974  	return req
   975  }
   976  
   977  type ListClassificationReq struct {
   978  	apiReq *larkcore.ApiReq
   979  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
   980  
   981  }
   982  
   983  type ListClassificationRespData struct {
   984  	Items     []*Classification `json:"items,omitempty"`      // 分类
   985  	PageToken *string           `json:"page_token,omitempty"` // 分页标记,当还有下一页时会返回新的 page_token,否则 page_token 为空
   986  }
   987  
   988  type ListClassificationResp struct {
   989  	*larkcore.ApiResp `json:"-"`
   990  	larkcore.CodeError
   991  	Data *ListClassificationRespData `json:"data"` // 业务数据
   992  }
   993  
   994  func (resp *ListClassificationResp) Success() bool {
   995  	return resp.Code == 0
   996  }
   997  
   998  type CreateDraftReqBuilder struct {
   999  	apiReq *larkcore.ApiReq
  1000  	entity *Entity
  1001  }
  1002  
  1003  func NewCreateDraftReqBuilder() *CreateDraftReqBuilder {
  1004  	builder := &CreateDraftReqBuilder{}
  1005  	builder.apiReq = &larkcore.ApiReq{
  1006  		PathParams:  larkcore.PathParams{},
  1007  		QueryParams: larkcore.QueryParams{},
  1008  	}
  1009  	return builder
  1010  }
  1011  
  1012  // 此次调用中使用的用户ID的类型
  1013  //
  1014  // 示例值:
  1015  func (builder *CreateDraftReqBuilder) UserIdType(userIdType string) *CreateDraftReqBuilder {
  1016  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  1017  	return builder
  1018  }
  1019  
  1020  // 草稿并非百科词条,而是指通过 API 发起创建新词条或更新现有词条的申请。百科管理员审核通过后,草稿将变为新的词条或覆盖已有词条。
  1021  func (builder *CreateDraftReqBuilder) Entity(entity *Entity) *CreateDraftReqBuilder {
  1022  	builder.entity = entity
  1023  	return builder
  1024  }
  1025  
  1026  func (builder *CreateDraftReqBuilder) Build() *CreateDraftReq {
  1027  	req := &CreateDraftReq{}
  1028  	req.apiReq = &larkcore.ApiReq{}
  1029  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  1030  	req.apiReq.Body = builder.entity
  1031  	return req
  1032  }
  1033  
  1034  type CreateDraftReq struct {
  1035  	apiReq *larkcore.ApiReq
  1036  	Entity *Entity `body:""`
  1037  }
  1038  
  1039  type CreateDraftRespData struct {
  1040  	Draft *Draft `json:"draft,omitempty"` // 草稿信息
  1041  }
  1042  
  1043  type CreateDraftResp struct {
  1044  	*larkcore.ApiResp `json:"-"`
  1045  	larkcore.CodeError
  1046  	Data *CreateDraftRespData `json:"data"` // 业务数据
  1047  }
  1048  
  1049  func (resp *CreateDraftResp) Success() bool {
  1050  	return resp.Code == 0
  1051  }
  1052  
  1053  type UpdateDraftReqBuilder struct {
  1054  	apiReq *larkcore.ApiReq
  1055  	entity *Entity
  1056  }
  1057  
  1058  func NewUpdateDraftReqBuilder() *UpdateDraftReqBuilder {
  1059  	builder := &UpdateDraftReqBuilder{}
  1060  	builder.apiReq = &larkcore.ApiReq{
  1061  		PathParams:  larkcore.PathParams{},
  1062  		QueryParams: larkcore.QueryParams{},
  1063  	}
  1064  	return builder
  1065  }
  1066  
  1067  // 草稿 ID
  1068  //
  1069  // 示例值:5347
  1070  func (builder *UpdateDraftReqBuilder) DraftId(draftId string) *UpdateDraftReqBuilder {
  1071  	builder.apiReq.PathParams.Set("draft_id", fmt.Sprint(draftId))
  1072  	return builder
  1073  }
  1074  
  1075  // 此次调用中使用的用户ID的类型
  1076  //
  1077  // 示例值:
  1078  func (builder *UpdateDraftReqBuilder) UserIdType(userIdType string) *UpdateDraftReqBuilder {
  1079  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  1080  	return builder
  1081  }
  1082  
  1083  // 根据 draft_id 更新草稿内容,已审批的草稿无法编辑
  1084  func (builder *UpdateDraftReqBuilder) Entity(entity *Entity) *UpdateDraftReqBuilder {
  1085  	builder.entity = entity
  1086  	return builder
  1087  }
  1088  
  1089  func (builder *UpdateDraftReqBuilder) Build() *UpdateDraftReq {
  1090  	req := &UpdateDraftReq{}
  1091  	req.apiReq = &larkcore.ApiReq{}
  1092  	req.apiReq.PathParams = builder.apiReq.PathParams
  1093  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  1094  	req.apiReq.Body = builder.entity
  1095  	return req
  1096  }
  1097  
  1098  type UpdateDraftReq struct {
  1099  	apiReq *larkcore.ApiReq
  1100  	Entity *Entity `body:""`
  1101  }
  1102  
  1103  type UpdateDraftRespData struct {
  1104  	Draft *Draft `json:"draft,omitempty"` // 草稿
  1105  }
  1106  
  1107  type UpdateDraftResp struct {
  1108  	*larkcore.ApiResp `json:"-"`
  1109  	larkcore.CodeError
  1110  	Data *UpdateDraftRespData `json:"data"` // 业务数据
  1111  }
  1112  
  1113  func (resp *UpdateDraftResp) Success() bool {
  1114  	return resp.Code == 0
  1115  }
  1116  
  1117  type CreateEntityReqBuilder struct {
  1118  	apiReq *larkcore.ApiReq
  1119  	entity *Entity
  1120  }
  1121  
  1122  func NewCreateEntityReqBuilder() *CreateEntityReqBuilder {
  1123  	builder := &CreateEntityReqBuilder{}
  1124  	builder.apiReq = &larkcore.ApiReq{
  1125  		PathParams:  larkcore.PathParams{},
  1126  		QueryParams: larkcore.QueryParams{},
  1127  	}
  1128  	return builder
  1129  }
  1130  
  1131  // 此次调用中使用的用户ID的类型
  1132  //
  1133  // 示例值:
  1134  func (builder *CreateEntityReqBuilder) UserIdType(userIdType string) *CreateEntityReqBuilder {
  1135  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  1136  	return builder
  1137  }
  1138  
  1139  // 通过此接口创建的词条,不需要百科管理员审核可直接写入词库,请慎重使用【租户管理员请慎重审批】
  1140  func (builder *CreateEntityReqBuilder) Entity(entity *Entity) *CreateEntityReqBuilder {
  1141  	builder.entity = entity
  1142  	return builder
  1143  }
  1144  
  1145  func (builder *CreateEntityReqBuilder) Build() *CreateEntityReq {
  1146  	req := &CreateEntityReq{}
  1147  	req.apiReq = &larkcore.ApiReq{}
  1148  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  1149  	req.apiReq.Body = builder.entity
  1150  	return req
  1151  }
  1152  
  1153  type CreateEntityReq struct {
  1154  	apiReq *larkcore.ApiReq
  1155  	Entity *Entity `body:""`
  1156  }
  1157  
  1158  type CreateEntityRespData struct {
  1159  	Entity *Entity `json:"entity,omitempty"` // 词条信息
  1160  }
  1161  
  1162  type CreateEntityResp struct {
  1163  	*larkcore.ApiResp `json:"-"`
  1164  	larkcore.CodeError
  1165  	Data *CreateEntityRespData `json:"data"` // 业务数据
  1166  }
  1167  
  1168  func (resp *CreateEntityResp) Success() bool {
  1169  	return resp.Code == 0
  1170  }
  1171  
  1172  type GetEntityReqBuilder struct {
  1173  	apiReq *larkcore.ApiReq
  1174  }
  1175  
  1176  func NewGetEntityReqBuilder() *GetEntityReqBuilder {
  1177  	builder := &GetEntityReqBuilder{}
  1178  	builder.apiReq = &larkcore.ApiReq{
  1179  		PathParams:  larkcore.PathParams{},
  1180  		QueryParams: larkcore.QueryParams{},
  1181  	}
  1182  	return builder
  1183  }
  1184  
  1185  // 词条 ID
  1186  //
  1187  // 示例值:enterprise_515879
  1188  func (builder *GetEntityReqBuilder) EntityId(entityId string) *GetEntityReqBuilder {
  1189  	builder.apiReq.PathParams.Set("entity_id", fmt.Sprint(entityId))
  1190  	return builder
  1191  }
  1192  
  1193  // 外部系统
  1194  //
  1195  // 示例值:星云
  1196  func (builder *GetEntityReqBuilder) Provider(provider string) *GetEntityReqBuilder {
  1197  	builder.apiReq.QueryParams.Set("provider", fmt.Sprint(provider))
  1198  	return builder
  1199  }
  1200  
  1201  // 词条在外部系统中对应的唯一 ID
  1202  //
  1203  // 示例值:12345
  1204  func (builder *GetEntityReqBuilder) OuterId(outerId string) *GetEntityReqBuilder {
  1205  	builder.apiReq.QueryParams.Set("outer_id", fmt.Sprint(outerId))
  1206  	return builder
  1207  }
  1208  
  1209  // 此次调用中使用的用户ID的类型
  1210  //
  1211  // 示例值:
  1212  func (builder *GetEntityReqBuilder) UserIdType(userIdType string) *GetEntityReqBuilder {
  1213  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  1214  	return builder
  1215  }
  1216  
  1217  func (builder *GetEntityReqBuilder) Build() *GetEntityReq {
  1218  	req := &GetEntityReq{}
  1219  	req.apiReq = &larkcore.ApiReq{}
  1220  	req.apiReq.PathParams = builder.apiReq.PathParams
  1221  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  1222  	return req
  1223  }
  1224  
  1225  type GetEntityReq struct {
  1226  	apiReq *larkcore.ApiReq
  1227  }
  1228  
  1229  type GetEntityRespData struct {
  1230  	Entity *Entity `json:"entity,omitempty"` // 实体词
  1231  }
  1232  
  1233  type GetEntityResp struct {
  1234  	*larkcore.ApiResp `json:"-"`
  1235  	larkcore.CodeError
  1236  	Data *GetEntityRespData `json:"data"` // 业务数据
  1237  }
  1238  
  1239  func (resp *GetEntityResp) Success() bool {
  1240  	return resp.Code == 0
  1241  }
  1242  
  1243  type HighlightEntityReqBodyBuilder struct {
  1244  	text     string // 需要识别百科词条的内容(不超过1000字)
  1245  	textFlag bool
  1246  }
  1247  
  1248  func NewHighlightEntityReqBodyBuilder() *HighlightEntityReqBodyBuilder {
  1249  	builder := &HighlightEntityReqBodyBuilder{}
  1250  	return builder
  1251  }
  1252  
  1253  // 需要识别百科词条的内容(不超过1000字)
  1254  //
  1255  //示例值:企业百科是飞书提供的一款知识管理工具
  1256  func (builder *HighlightEntityReqBodyBuilder) Text(text string) *HighlightEntityReqBodyBuilder {
  1257  	builder.text = text
  1258  	builder.textFlag = true
  1259  	return builder
  1260  }
  1261  
  1262  func (builder *HighlightEntityReqBodyBuilder) Build() *HighlightEntityReqBody {
  1263  	req := &HighlightEntityReqBody{}
  1264  	if builder.textFlag {
  1265  		req.Text = &builder.text
  1266  	}
  1267  	return req
  1268  }
  1269  
  1270  type HighlightEntityPathReqBodyBuilder struct {
  1271  	text     string // 需要识别百科词条的内容(不超过1000字)
  1272  	textFlag bool
  1273  }
  1274  
  1275  func NewHighlightEntityPathReqBodyBuilder() *HighlightEntityPathReqBodyBuilder {
  1276  	builder := &HighlightEntityPathReqBodyBuilder{}
  1277  	return builder
  1278  }
  1279  
  1280  // 需要识别百科词条的内容(不超过1000字)
  1281  //
  1282  // 示例值:企业百科是飞书提供的一款知识管理工具
  1283  func (builder *HighlightEntityPathReqBodyBuilder) Text(text string) *HighlightEntityPathReqBodyBuilder {
  1284  	builder.text = text
  1285  	builder.textFlag = true
  1286  	return builder
  1287  }
  1288  
  1289  func (builder *HighlightEntityPathReqBodyBuilder) Build() (*HighlightEntityReqBody, error) {
  1290  	req := &HighlightEntityReqBody{}
  1291  	if builder.textFlag {
  1292  		req.Text = &builder.text
  1293  	}
  1294  	return req, nil
  1295  }
  1296  
  1297  type HighlightEntityReqBuilder struct {
  1298  	apiReq *larkcore.ApiReq
  1299  	body   *HighlightEntityReqBody
  1300  }
  1301  
  1302  func NewHighlightEntityReqBuilder() *HighlightEntityReqBuilder {
  1303  	builder := &HighlightEntityReqBuilder{}
  1304  	builder.apiReq = &larkcore.ApiReq{
  1305  		PathParams:  larkcore.PathParams{},
  1306  		QueryParams: larkcore.QueryParams{},
  1307  	}
  1308  	return builder
  1309  }
  1310  
  1311  // 传入一句话,智能识别句中对应的词条,并返回词条位置和 entity_id,可在外部系统中快速实现百科词条智能高亮
  1312  func (builder *HighlightEntityReqBuilder) Body(body *HighlightEntityReqBody) *HighlightEntityReqBuilder {
  1313  	builder.body = body
  1314  	return builder
  1315  }
  1316  
  1317  func (builder *HighlightEntityReqBuilder) Build() *HighlightEntityReq {
  1318  	req := &HighlightEntityReq{}
  1319  	req.apiReq = &larkcore.ApiReq{}
  1320  	req.apiReq.Body = builder.body
  1321  	return req
  1322  }
  1323  
  1324  type HighlightEntityReqBody struct {
  1325  	Text *string `json:"text,omitempty"` // 需要识别百科词条的内容(不超过1000字)
  1326  }
  1327  
  1328  type HighlightEntityReq struct {
  1329  	apiReq *larkcore.ApiReq
  1330  	Body   *HighlightEntityReqBody `body:""`
  1331  }
  1332  
  1333  type HighlightEntityRespData struct {
  1334  	Phrases []*Phrase `json:"phrases,omitempty"` // 识别到的词条信息
  1335  }
  1336  
  1337  type HighlightEntityResp struct {
  1338  	*larkcore.ApiResp `json:"-"`
  1339  	larkcore.CodeError
  1340  	Data *HighlightEntityRespData `json:"data"` // 业务数据
  1341  }
  1342  
  1343  func (resp *HighlightEntityResp) Success() bool {
  1344  	return resp.Code == 0
  1345  }
  1346  
  1347  type ListEntityReqBuilder struct {
  1348  	apiReq *larkcore.ApiReq
  1349  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  1350  }
  1351  
  1352  func NewListEntityReqBuilder() *ListEntityReqBuilder {
  1353  	builder := &ListEntityReqBuilder{}
  1354  	builder.apiReq = &larkcore.ApiReq{
  1355  		PathParams:  larkcore.PathParams{},
  1356  		QueryParams: larkcore.QueryParams{},
  1357  	}
  1358  	return builder
  1359  }
  1360  
  1361  // 最大返回多少记录,当使用迭代器访问时才有效
  1362  func (builder *ListEntityReqBuilder) Limit(limit int) *ListEntityReqBuilder {
  1363  	builder.limit = limit
  1364  	return builder
  1365  }
  1366  
  1367  // 分页大小
  1368  //
  1369  // 示例值:20
  1370  func (builder *ListEntityReqBuilder) PageSize(pageSize int) *ListEntityReqBuilder {
  1371  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  1372  	return builder
  1373  }
  1374  
  1375  // 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果
  1376  //
  1377  // 示例值:b152fa6e6f62a291019a04c3a93f365f8ac641910506ff15ff4cad6534e087cb4ed8fa2c
  1378  func (builder *ListEntityReqBuilder) PageToken(pageToken string) *ListEntityReqBuilder {
  1379  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  1380  	return builder
  1381  }
  1382  
  1383  // 相关外部系统【可用来过滤词条数据】
  1384  //
  1385  // 示例值:星云
  1386  func (builder *ListEntityReqBuilder) Provider(provider string) *ListEntityReqBuilder {
  1387  	builder.apiReq.QueryParams.Set("provider", fmt.Sprint(provider))
  1388  	return builder
  1389  }
  1390  
  1391  // 此次调用中使用的用户ID的类型
  1392  //
  1393  // 示例值:
  1394  func (builder *ListEntityReqBuilder) UserIdType(userIdType string) *ListEntityReqBuilder {
  1395  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  1396  	return builder
  1397  }
  1398  
  1399  func (builder *ListEntityReqBuilder) Build() *ListEntityReq {
  1400  	req := &ListEntityReq{}
  1401  	req.apiReq = &larkcore.ApiReq{}
  1402  	req.Limit = builder.limit
  1403  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  1404  	return req
  1405  }
  1406  
  1407  type ListEntityReq struct {
  1408  	apiReq *larkcore.ApiReq
  1409  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
  1410  
  1411  }
  1412  
  1413  type ListEntityRespData struct {
  1414  	Entities  []*Entity `json:"entities,omitempty"`   // 词条列表
  1415  	PageToken *string   `json:"page_token,omitempty"` // 分页标记,当还有下一页时会返回新的 page_token,否则 page_token 为空
  1416  }
  1417  
  1418  type ListEntityResp struct {
  1419  	*larkcore.ApiResp `json:"-"`
  1420  	larkcore.CodeError
  1421  	Data *ListEntityRespData `json:"data"` // 业务数据
  1422  }
  1423  
  1424  func (resp *ListEntityResp) Success() bool {
  1425  	return resp.Code == 0
  1426  }
  1427  
  1428  type MatchEntityReqBodyBuilder struct {
  1429  	word     string // 搜索关键词,将与词条名、别名进行精准匹配
  1430  	wordFlag bool
  1431  }
  1432  
  1433  func NewMatchEntityReqBodyBuilder() *MatchEntityReqBodyBuilder {
  1434  	builder := &MatchEntityReqBodyBuilder{}
  1435  	return builder
  1436  }
  1437  
  1438  // 搜索关键词,将与词条名、别名进行精准匹配
  1439  //
  1440  //示例值:企业百科
  1441  func (builder *MatchEntityReqBodyBuilder) Word(word string) *MatchEntityReqBodyBuilder {
  1442  	builder.word = word
  1443  	builder.wordFlag = true
  1444  	return builder
  1445  }
  1446  
  1447  func (builder *MatchEntityReqBodyBuilder) Build() *MatchEntityReqBody {
  1448  	req := &MatchEntityReqBody{}
  1449  	if builder.wordFlag {
  1450  		req.Word = &builder.word
  1451  	}
  1452  	return req
  1453  }
  1454  
  1455  type MatchEntityPathReqBodyBuilder struct {
  1456  	word     string // 搜索关键词,将与词条名、别名进行精准匹配
  1457  	wordFlag bool
  1458  }
  1459  
  1460  func NewMatchEntityPathReqBodyBuilder() *MatchEntityPathReqBodyBuilder {
  1461  	builder := &MatchEntityPathReqBodyBuilder{}
  1462  	return builder
  1463  }
  1464  
  1465  // 搜索关键词,将与词条名、别名进行精准匹配
  1466  //
  1467  // 示例值:企业百科
  1468  func (builder *MatchEntityPathReqBodyBuilder) Word(word string) *MatchEntityPathReqBodyBuilder {
  1469  	builder.word = word
  1470  	builder.wordFlag = true
  1471  	return builder
  1472  }
  1473  
  1474  func (builder *MatchEntityPathReqBodyBuilder) Build() (*MatchEntityReqBody, error) {
  1475  	req := &MatchEntityReqBody{}
  1476  	if builder.wordFlag {
  1477  		req.Word = &builder.word
  1478  	}
  1479  	return req, nil
  1480  }
  1481  
  1482  type MatchEntityReqBuilder struct {
  1483  	apiReq *larkcore.ApiReq
  1484  	body   *MatchEntityReqBody
  1485  }
  1486  
  1487  func NewMatchEntityReqBuilder() *MatchEntityReqBuilder {
  1488  	builder := &MatchEntityReqBuilder{}
  1489  	builder.apiReq = &larkcore.ApiReq{
  1490  		PathParams:  larkcore.PathParams{},
  1491  		QueryParams: larkcore.QueryParams{},
  1492  	}
  1493  	return builder
  1494  }
  1495  
  1496  // 将关键词与词条名、别名精准匹配,并返回对应的 词条 ID
  1497  func (builder *MatchEntityReqBuilder) Body(body *MatchEntityReqBody) *MatchEntityReqBuilder {
  1498  	builder.body = body
  1499  	return builder
  1500  }
  1501  
  1502  func (builder *MatchEntityReqBuilder) Build() *MatchEntityReq {
  1503  	req := &MatchEntityReq{}
  1504  	req.apiReq = &larkcore.ApiReq{}
  1505  	req.apiReq.Body = builder.body
  1506  	return req
  1507  }
  1508  
  1509  type MatchEntityReqBody struct {
  1510  	Word *string `json:"word,omitempty"` // 搜索关键词,将与词条名、别名进行精准匹配
  1511  }
  1512  
  1513  type MatchEntityReq struct {
  1514  	apiReq *larkcore.ApiReq
  1515  	Body   *MatchEntityReqBody `body:""`
  1516  }
  1517  
  1518  type MatchEntityRespData struct {
  1519  	Results []*MatchInfo `json:"results,omitempty"` // 搜索结果
  1520  }
  1521  
  1522  type MatchEntityResp struct {
  1523  	*larkcore.ApiResp `json:"-"`
  1524  	larkcore.CodeError
  1525  	Data *MatchEntityRespData `json:"data"` // 业务数据
  1526  }
  1527  
  1528  func (resp *MatchEntityResp) Success() bool {
  1529  	return resp.Code == 0
  1530  }
  1531  
  1532  type SearchEntityReqBodyBuilder struct {
  1533  	query     string // 搜索关键词
  1534  	queryFlag bool
  1535  }
  1536  
  1537  func NewSearchEntityReqBodyBuilder() *SearchEntityReqBodyBuilder {
  1538  	builder := &SearchEntityReqBodyBuilder{}
  1539  	return builder
  1540  }
  1541  
  1542  // 搜索关键词
  1543  //
  1544  //示例值:百科
  1545  func (builder *SearchEntityReqBodyBuilder) Query(query string) *SearchEntityReqBodyBuilder {
  1546  	builder.query = query
  1547  	builder.queryFlag = true
  1548  	return builder
  1549  }
  1550  
  1551  func (builder *SearchEntityReqBodyBuilder) Build() *SearchEntityReqBody {
  1552  	req := &SearchEntityReqBody{}
  1553  	if builder.queryFlag {
  1554  		req.Query = &builder.query
  1555  	}
  1556  	return req
  1557  }
  1558  
  1559  type SearchEntityPathReqBodyBuilder struct {
  1560  	query     string // 搜索关键词
  1561  	queryFlag bool
  1562  }
  1563  
  1564  func NewSearchEntityPathReqBodyBuilder() *SearchEntityPathReqBodyBuilder {
  1565  	builder := &SearchEntityPathReqBodyBuilder{}
  1566  	return builder
  1567  }
  1568  
  1569  // 搜索关键词
  1570  //
  1571  // 示例值:百科
  1572  func (builder *SearchEntityPathReqBodyBuilder) Query(query string) *SearchEntityPathReqBodyBuilder {
  1573  	builder.query = query
  1574  	builder.queryFlag = true
  1575  	return builder
  1576  }
  1577  
  1578  func (builder *SearchEntityPathReqBodyBuilder) Build() (*SearchEntityReqBody, error) {
  1579  	req := &SearchEntityReqBody{}
  1580  	if builder.queryFlag {
  1581  		req.Query = &builder.query
  1582  	}
  1583  	return req, nil
  1584  }
  1585  
  1586  type SearchEntityReqBuilder struct {
  1587  	apiReq *larkcore.ApiReq
  1588  	body   *SearchEntityReqBody
  1589  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  1590  }
  1591  
  1592  func NewSearchEntityReqBuilder() *SearchEntityReqBuilder {
  1593  	builder := &SearchEntityReqBuilder{}
  1594  	builder.apiReq = &larkcore.ApiReq{
  1595  		PathParams:  larkcore.PathParams{},
  1596  		QueryParams: larkcore.QueryParams{},
  1597  	}
  1598  	return builder
  1599  }
  1600  
  1601  // 最大返回多少记录,当使用迭代器访问时才有效
  1602  func (builder *SearchEntityReqBuilder) Limit(limit int) *SearchEntityReqBuilder {
  1603  	builder.limit = limit
  1604  	return builder
  1605  }
  1606  
  1607  //
  1608  //
  1609  // 示例值:b152fa6e6f62a291019a04c3a93f365f8ac641910506ff15ff4cad6534e087cb4ed8fa2c
  1610  func (builder *SearchEntityReqBuilder) PageToken(pageToken string) *SearchEntityReqBuilder {
  1611  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  1612  	return builder
  1613  }
  1614  
  1615  //
  1616  //
  1617  // 示例值:10
  1618  func (builder *SearchEntityReqBuilder) PageSize(pageSize int) *SearchEntityReqBuilder {
  1619  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  1620  	return builder
  1621  }
  1622  
  1623  // 此次调用中使用的用户ID的类型
  1624  //
  1625  // 示例值:
  1626  func (builder *SearchEntityReqBuilder) UserIdType(userIdType string) *SearchEntityReqBuilder {
  1627  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  1628  	return builder
  1629  }
  1630  
  1631  // 传入关键词,与词条名、别名、释义等信息进行模糊匹配,返回搜到的词条信息
  1632  func (builder *SearchEntityReqBuilder) Body(body *SearchEntityReqBody) *SearchEntityReqBuilder {
  1633  	builder.body = body
  1634  	return builder
  1635  }
  1636  
  1637  func (builder *SearchEntityReqBuilder) Build() *SearchEntityReq {
  1638  	req := &SearchEntityReq{}
  1639  	req.apiReq = &larkcore.ApiReq{}
  1640  	req.Limit = builder.limit
  1641  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  1642  	req.apiReq.Body = builder.body
  1643  	return req
  1644  }
  1645  
  1646  type SearchEntityReqBody struct {
  1647  	Query *string `json:"query,omitempty"` // 搜索关键词
  1648  }
  1649  
  1650  type SearchEntityReq struct {
  1651  	apiReq *larkcore.ApiReq
  1652  	Body   *SearchEntityReqBody `body:""`
  1653  	Limit  int                  // 最多返回多少记录,只有在使用迭代器访问时,才有效
  1654  
  1655  }
  1656  
  1657  type SearchEntityRespData struct {
  1658  	Entities  []*Entity `json:"entities,omitempty"`   // 搜索结果
  1659  	PageToken *string   `json:"page_token,omitempty"` // 分页标记,当还有下一页时会返回新的 page_token,否则 page_token 为空
  1660  }
  1661  
  1662  type SearchEntityResp struct {
  1663  	*larkcore.ApiResp `json:"-"`
  1664  	larkcore.CodeError
  1665  	Data *SearchEntityRespData `json:"data"` // 业务数据
  1666  }
  1667  
  1668  func (resp *SearchEntityResp) Success() bool {
  1669  	return resp.Code == 0
  1670  }
  1671  
  1672  type UpdateEntityReqBuilder struct {
  1673  	apiReq *larkcore.ApiReq
  1674  	entity *Entity
  1675  }
  1676  
  1677  func NewUpdateEntityReqBuilder() *UpdateEntityReqBuilder {
  1678  	builder := &UpdateEntityReqBuilder{}
  1679  	builder.apiReq = &larkcore.ApiReq{
  1680  		PathParams:  larkcore.PathParams{},
  1681  		QueryParams: larkcore.QueryParams{},
  1682  	}
  1683  	return builder
  1684  }
  1685  
  1686  // 实体词 ID
  1687  //
  1688  // 示例值:enterprise_40217521
  1689  func (builder *UpdateEntityReqBuilder) EntityId(entityId string) *UpdateEntityReqBuilder {
  1690  	builder.apiReq.PathParams.Set("entity_id", fmt.Sprint(entityId))
  1691  	return builder
  1692  }
  1693  
  1694  // 此次调用中使用的用户ID的类型
  1695  //
  1696  // 示例值:
  1697  func (builder *UpdateEntityReqBuilder) UserIdType(userIdType string) *UpdateEntityReqBuilder {
  1698  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  1699  	return builder
  1700  }
  1701  
  1702  // 通过此接口更新已有的词条,不需要百科管理员审核可直接写入词库,请慎重使用【租户管理员请慎重审批】
  1703  func (builder *UpdateEntityReqBuilder) Entity(entity *Entity) *UpdateEntityReqBuilder {
  1704  	builder.entity = entity
  1705  	return builder
  1706  }
  1707  
  1708  func (builder *UpdateEntityReqBuilder) Build() *UpdateEntityReq {
  1709  	req := &UpdateEntityReq{}
  1710  	req.apiReq = &larkcore.ApiReq{}
  1711  	req.apiReq.PathParams = builder.apiReq.PathParams
  1712  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  1713  	req.apiReq.Body = builder.entity
  1714  	return req
  1715  }
  1716  
  1717  type UpdateEntityReq struct {
  1718  	apiReq *larkcore.ApiReq
  1719  	Entity *Entity `body:""`
  1720  }
  1721  
  1722  type UpdateEntityRespData struct {
  1723  	Entity *Entity `json:"entity,omitempty"` // 词条信息
  1724  }
  1725  
  1726  type UpdateEntityResp struct {
  1727  	*larkcore.ApiResp `json:"-"`
  1728  	larkcore.CodeError
  1729  	Data *UpdateEntityRespData `json:"data"` // 业务数据
  1730  }
  1731  
  1732  func (resp *UpdateEntityResp) Success() bool {
  1733  	return resp.Code == 0
  1734  }
  1735  
  1736  type ListClassificationIterator struct {
  1737  	nextPageToken *string
  1738  	items         []*Classification
  1739  	index         int
  1740  	limit         int
  1741  	ctx           context.Context
  1742  	req           *ListClassificationReq
  1743  	listFunc      func(ctx context.Context, req *ListClassificationReq, options ...larkcore.RequestOptionFunc) (*ListClassificationResp, error)
  1744  	options       []larkcore.RequestOptionFunc
  1745  	curlNum       int
  1746  }
  1747  
  1748  func (iterator *ListClassificationIterator) Next() (bool, *Classification, error) {
  1749  	// 达到最大量,则返回
  1750  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  1751  		return false, nil, nil
  1752  	}
  1753  
  1754  	// 为0则拉取数据
  1755  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  1756  		if iterator.index != 0 && iterator.nextPageToken == nil {
  1757  			return false, nil, nil
  1758  		}
  1759  		if iterator.nextPageToken != nil {
  1760  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  1761  		}
  1762  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  1763  		if err != nil {
  1764  			return false, nil, err
  1765  		}
  1766  
  1767  		if resp.Code != 0 {
  1768  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  1769  		}
  1770  
  1771  		if len(resp.Data.Items) == 0 {
  1772  			return false, nil, nil
  1773  		}
  1774  
  1775  		iterator.nextPageToken = resp.Data.PageToken
  1776  		iterator.items = resp.Data.Items
  1777  		iterator.index = 0
  1778  	}
  1779  
  1780  	block := iterator.items[iterator.index]
  1781  	iterator.index++
  1782  	iterator.curlNum++
  1783  	return true, block, nil
  1784  }
  1785  
  1786  func (iterator *ListClassificationIterator) NextPageToken() *string {
  1787  	return iterator.nextPageToken
  1788  }
  1789  
  1790  type ListEntityIterator struct {
  1791  	nextPageToken *string
  1792  	items         []*Entity
  1793  	index         int
  1794  	limit         int
  1795  	ctx           context.Context
  1796  	req           *ListEntityReq
  1797  	listFunc      func(ctx context.Context, req *ListEntityReq, options ...larkcore.RequestOptionFunc) (*ListEntityResp, error)
  1798  	options       []larkcore.RequestOptionFunc
  1799  	curlNum       int
  1800  }
  1801  
  1802  func (iterator *ListEntityIterator) Next() (bool, *Entity, error) {
  1803  	// 达到最大量,则返回
  1804  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  1805  		return false, nil, nil
  1806  	}
  1807  
  1808  	// 为0则拉取数据
  1809  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  1810  		if iterator.index != 0 && iterator.nextPageToken == nil {
  1811  			return false, nil, nil
  1812  		}
  1813  		if iterator.nextPageToken != nil {
  1814  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  1815  		}
  1816  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  1817  		if err != nil {
  1818  			return false, nil, err
  1819  		}
  1820  
  1821  		if resp.Code != 0 {
  1822  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  1823  		}
  1824  
  1825  		if len(resp.Data.Entities) == 0 {
  1826  			return false, nil, nil
  1827  		}
  1828  
  1829  		iterator.nextPageToken = resp.Data.PageToken
  1830  		iterator.items = resp.Data.Entities
  1831  		iterator.index = 0
  1832  	}
  1833  
  1834  	block := iterator.items[iterator.index]
  1835  	iterator.index++
  1836  	iterator.curlNum++
  1837  	return true, block, nil
  1838  }
  1839  
  1840  func (iterator *ListEntityIterator) NextPageToken() *string {
  1841  	return iterator.nextPageToken
  1842  }
  1843  
  1844  type SearchEntityIterator struct {
  1845  	nextPageToken *string
  1846  	items         []*Entity
  1847  	index         int
  1848  	limit         int
  1849  	ctx           context.Context
  1850  	req           *SearchEntityReq
  1851  	listFunc      func(ctx context.Context, req *SearchEntityReq, options ...larkcore.RequestOptionFunc) (*SearchEntityResp, error)
  1852  	options       []larkcore.RequestOptionFunc
  1853  	curlNum       int
  1854  }
  1855  
  1856  func (iterator *SearchEntityIterator) Next() (bool, *Entity, error) {
  1857  	// 达到最大量,则返回
  1858  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  1859  		return false, nil, nil
  1860  	}
  1861  
  1862  	// 为0则拉取数据
  1863  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  1864  		if iterator.index != 0 && iterator.nextPageToken == nil {
  1865  			return false, nil, nil
  1866  		}
  1867  		if iterator.nextPageToken != nil {
  1868  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  1869  		}
  1870  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  1871  		if err != nil {
  1872  			return false, nil, err
  1873  		}
  1874  
  1875  		if resp.Code != 0 {
  1876  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  1877  		}
  1878  
  1879  		if len(resp.Data.Entities) == 0 {
  1880  			return false, nil, nil
  1881  		}
  1882  
  1883  		iterator.nextPageToken = resp.Data.PageToken
  1884  		iterator.items = resp.Data.Entities
  1885  		iterator.index = 0
  1886  	}
  1887  
  1888  	block := iterator.items[iterator.index]
  1889  	iterator.index++
  1890  	iterator.curlNum++
  1891  	return true, block, nil
  1892  }
  1893  
  1894  func (iterator *SearchEntityIterator) NextPageToken() *string {
  1895  	return iterator.nextPageToken
  1896  }