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

     1  // Package calendar 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 larkcalendar
    15  
    16  import (
    17  	"fmt"
    18  
    19  	"context"
    20  	"errors"
    21  
    22  	"gitee.com/larksuite/oapi-sdk-go/v3/event"
    23  
    24  	"gitee.com/larksuite/oapi-sdk-go/v3/core"
    25  )
    26  
    27  const (
    28  	EventPermissionsPrivate          = "private"             // 私密
    29  	EventPermissionsShowOnlyFreeBusy = "show_only_free_busy" // 仅展示忙闲信息
    30  	EventPermissionsPublic           = "public"              // 他人可查看日程详情
    31  )
    32  
    33  const (
    34  	EventPermissionsPatchCalendarPrivate          = "private"             // 私密
    35  	EventPermissionsPatchCalendarShowOnlyFreeBusy = "show_only_free_busy" // 仅展示忙闲信息
    36  	EventPermissionsPatchCalendarPublic           = "public"              // 他人可查看日程详情
    37  )
    38  
    39  const (
    40  	UserIdTypeUserId  = "user_id"  // 以user_id来识别用户id
    41  	UserIdTypeUnionId = "union_id" // 以union_id来识别用户id
    42  	UserIdTypeOpenId  = "open_id"  // 以open_id来识别用户id
    43  )
    44  
    45  const (
    46  	CalendarAccessRoleUnkonwn        = "unknown"          // 未知权限
    47  	CalendarAccessRoleFreeBusyReader = "free_busy_reader" // 游客,只能看到忙碌/空闲信息
    48  	CalendarAccessRoleReader         = "reader"           // 订阅者,查看所有日程详情
    49  	CalendarAccessRoleWriter         = "writer"           // 编辑者,创建及修改日程
    50  	CalendarAccessRoleOwner          = "owner"            // 管理员,管理日历及共享设置
    51  )
    52  
    53  const (
    54  	UserIdTypeCreateCalendarAclUserId  = "user_id"  // 以user_id来识别用户
    55  	UserIdTypeCreateCalendarAclUnionId = "union_id" // 以union_id来识别用户
    56  	UserIdTypeCreateCalendarAclOpenId  = "open_id"  // 以open_id来识别用户
    57  )
    58  
    59  const (
    60  	UserIdTypeListCalendarAclUserId  = "user_id"  // 以user_id来识别用户id
    61  	UserIdTypeListCalendarAclUnionId = "union_id" // 以union_id来识别用户id
    62  	UserIdTypeListCalendarAclOpenId  = "open_id"  // 以open_id来识别用户id
    63  )
    64  
    65  const (
    66  	EventVisibilityDefault = "default" // 默认权限,仅向他人显示是否“忙碌”
    67  	EventVisibilityPublic  = "public"  // 公开,显示日程详情
    68  	EventVisibilityPrivate = "private" // 私密,仅自己可见
    69  )
    70  
    71  const (
    72  	EventAttendeeAbilityNone            = "none"              // 无法编辑日程、无法邀请其它参与人、无法查看参与人列表
    73  	EventAttendeeAbilityCanSeeOthers    = "can_see_others"    // 无法编辑日程、无法邀请其它参与人、可以查看参与人列表
    74  	EventAttendeeAbilityCanInviteOthers = "can_invite_others" // 无法编辑日程、可以邀请其它参与人、可以查看参与人列表
    75  	EventAttendeeAbilityCanModifyEvent  = "can_modify_event"  // 可以编辑日程、可以邀请其它参与人、可以查看参与人列表
    76  )
    77  
    78  const (
    79  	EventFreeBusyStatusBusy = "busy" // 忙碌
    80  	EventFreeBusyStatusFree = "free" // 空闲
    81  )
    82  
    83  const (
    84  	NeedNotificationTrue  = true  //
    85  	NeedNotificationFalse = false //
    86  
    87  )
    88  
    89  const (
    90  	EventVisibilityPatchCalendarEventDefault = "default" // 默认权限,仅向他人显示是否“忙碌”
    91  	EventVisibilityPatchCalendarEventPublic  = "public"  // 公开,显示日程详情
    92  	EventVisibilityPatchCalendarEventPrivate = "private" // 私密,仅自己可见
    93  )
    94  
    95  const (
    96  	EventAttendeeAbilityPatchCalendarEventNone            = "none"              // 无法编辑日程、无法邀请其它参与人、无法查看参与人列表
    97  	EventAttendeeAbilityPatchCalendarEventCanSeeOthers    = "can_see_others"    // 无法编辑日程、无法邀请其它参与人、可以查看参与人列表
    98  	EventAttendeeAbilityPatchCalendarEventCanInviteOthers = "can_invite_others" // 无法编辑日程、可以邀请其它参与人、可以查看参与人列表
    99  	EventAttendeeAbilityPatchCalendarEventCanModifyEvent  = "can_modify_event"  // 可以编辑日程、可以邀请其它参与人、可以查看参与人列表
   100  )
   101  
   102  const (
   103  	EventFreeBusyStatusPatchCalendarEventBusy = "busy" // 忙碌
   104  	EventFreeBusyStatusPatchCalendarEventFree = "free" // 空闲
   105  )
   106  
   107  const (
   108  	UserIdTypeSearchCalendarEventUserId  = "user_id"  // 以user_id来识别用户id
   109  	UserIdTypeSearchCalendarEventUnionId = "union_id" // 以union_id来识别用户id
   110  	UserIdTypeSearchCalendarEventOpenId  = "open_id"  // 以open_id来识别用户id
   111  )
   112  
   113  const (
   114  	UserIdTypeBatchDeleteCalendarEventAttendeeUserId  = "user_id"  // 以user_id来识别用户id
   115  	UserIdTypeBatchDeleteCalendarEventAttendeeUnionId = "union_id" // 以union_id来识别用户id
   116  	UserIdTypeBatchDeleteCalendarEventAttendeeOpenId  = "open_id"  // 以open_id来识别用户id
   117  )
   118  
   119  const (
   120  	UserIdTypeCreateCalendarEventAttendeeUserId  = "user_id"  // 以user_id来识别用户id
   121  	UserIdTypeCreateCalendarEventAttendeeUnionId = "union_id" // 以union_id来识别用户id
   122  	UserIdTypeCreateCalendarEventAttendeeOpenId  = "open_id"  // 以open_id来识别用户id
   123  )
   124  
   125  const (
   126  	UserIdTypeListCalendarEventAttendeeUserId  = "user_id"  // 以user_id来识别用户id
   127  	UserIdTypeListCalendarEventAttendeeUnionId = "union_id" // 以union_id来识别用户id
   128  	UserIdTypeListCalendarEventAttendeeOpenId  = "open_id"  // 以open_id来识别用户id
   129  )
   130  
   131  const (
   132  	UserIdTypeListCalendarEventAttendeeChatMemberUserId  = "user_id"  // 以user_id来识别用户
   133  	UserIdTypeListCalendarEventAttendeeChatMemberUnionId = "union_id" // 以union_id来识别用户
   134  	UserIdTypeListCalendarEventAttendeeChatMemberOpenId  = "open_id"  // 以open_id来识别用户
   135  )
   136  
   137  const (
   138  	UserIdTypeCreateExchangeBindingUserId  = "user_id"  // 以user_id来识别用户
   139  	UserIdTypeCreateExchangeBindingUnionId = "union_id" // 以union_id来识别用户
   140  	UserIdTypeCreateExchangeBindingOpenId  = "open_id"  // 以open_id来识别用户
   141  )
   142  
   143  const (
   144  	UserIdTypeGetExchangeBindingUserId  = "user_id"  // 以user_id来识别用户
   145  	UserIdTypeGetExchangeBindingUnionId = "union_id" // 以union_id来识别用户
   146  	UserIdTypeGetExchangeBindingOpenId  = "open_id"  // 以open_id来识别用户
   147  )
   148  
   149  const (
   150  	UserIdTypeListFreebusyUserId  = "user_id"  // 以user_id来识别用户id
   151  	UserIdTypeListFreebusyUnionId = "union_id" // 以union_id来识别用户id
   152  	UserIdTypeListFreebusyOpenId  = "open_id"  // 以open_id来识别用户id
   153  )
   154  
   155  const (
   156  	UserIdTypeCreateTimeoffEventUserId  = "user_id"  // 以user_id来识别用户id
   157  	UserIdTypeCreateTimeoffEventUnionId = "union_id" // 以union_id来识别用户id
   158  	UserIdTypeCreateTimeoffEventOpenId  = "open_id"  // 以open_id来识别用户id
   159  )
   160  
   161  type AclScope struct {
   162  	Type   *string `json:"type,omitempty"`    // 权限类型,当type为User时,值为open_id/user_id/union_id
   163  	UserId *string `json:"user_id,omitempty"` // 用户ID,参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
   164  }
   165  
   166  type AclScopeBuilder struct {
   167  	type_      string // 权限类型,当type为User时,值为open_id/user_id/union_id
   168  	typeFlag   bool
   169  	userId     string // 用户ID,参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
   170  	userIdFlag bool
   171  }
   172  
   173  func NewAclScopeBuilder() *AclScopeBuilder {
   174  	builder := &AclScopeBuilder{}
   175  	return builder
   176  }
   177  
   178  // 权限类型,当type为User时,值为open_id/user_id/union_id
   179  //
   180  // 示例值:user
   181  func (builder *AclScopeBuilder) Type(type_ string) *AclScopeBuilder {
   182  	builder.type_ = type_
   183  	builder.typeFlag = true
   184  	return builder
   185  }
   186  
   187  // 用户ID,参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
   188  //
   189  // 示例值:ou_xxxxxx
   190  func (builder *AclScopeBuilder) UserId(userId string) *AclScopeBuilder {
   191  	builder.userId = userId
   192  	builder.userIdFlag = true
   193  	return builder
   194  }
   195  
   196  func (builder *AclScopeBuilder) Build() *AclScope {
   197  	req := &AclScope{}
   198  	if builder.typeFlag {
   199  		req.Type = &builder.type_
   200  
   201  	}
   202  	if builder.userIdFlag {
   203  		req.UserId = &builder.userId
   204  
   205  	}
   206  	return req
   207  }
   208  
   209  type AclScopeEvent struct {
   210  	Type   *string `json:"type,omitempty"`    // 权限类型,当type为User时,值为open_id/user_id/union_id
   211  	UserId *UserId `json:"user_id,omitempty"` // 用户 ID
   212  }
   213  
   214  type AclScopeEventBuilder struct {
   215  	type_      string // 权限类型,当type为User时,值为open_id/user_id/union_id
   216  	typeFlag   bool
   217  	userId     *UserId // 用户 ID
   218  	userIdFlag bool
   219  }
   220  
   221  func NewAclScopeEventBuilder() *AclScopeEventBuilder {
   222  	builder := &AclScopeEventBuilder{}
   223  	return builder
   224  }
   225  
   226  // 权限类型,当type为User时,值为open_id/user_id/union_id
   227  //
   228  // 示例值:user
   229  func (builder *AclScopeEventBuilder) Type(type_ string) *AclScopeEventBuilder {
   230  	builder.type_ = type_
   231  	builder.typeFlag = true
   232  	return builder
   233  }
   234  
   235  // 用户 ID
   236  //
   237  // 示例值:
   238  func (builder *AclScopeEventBuilder) UserId(userId *UserId) *AclScopeEventBuilder {
   239  	builder.userId = userId
   240  	builder.userIdFlag = true
   241  	return builder
   242  }
   243  
   244  func (builder *AclScopeEventBuilder) Build() *AclScopeEvent {
   245  	req := &AclScopeEvent{}
   246  	if builder.typeFlag {
   247  		req.Type = &builder.type_
   248  
   249  	}
   250  	if builder.userIdFlag {
   251  		req.UserId = builder.userId
   252  	}
   253  	return req
   254  }
   255  
   256  type AttendeeChatMember struct {
   257  	RsvpStatus  *string `json:"rsvp_status,omitempty"`  // 参与人RSVP状态
   258  	IsOptional  *bool   `json:"is_optional,omitempty"`  // 参与人是否为「可选参加」
   259  	DisplayName *string `json:"display_name,omitempty"` // 参与人名称
   260  	IsOrganizer *bool   `json:"is_organizer,omitempty"` // 参与人是否为日程组织者
   261  	IsExternal  *bool   `json:"is_external,omitempty"`  // 参与人是否为外部参与人
   262  }
   263  
   264  type AttendeeChatMemberBuilder struct {
   265  	rsvpStatus      string // 参与人RSVP状态
   266  	rsvpStatusFlag  bool
   267  	isOptional      bool // 参与人是否为「可选参加」
   268  	isOptionalFlag  bool
   269  	displayName     string // 参与人名称
   270  	displayNameFlag bool
   271  	isOrganizer     bool // 参与人是否为日程组织者
   272  	isOrganizerFlag bool
   273  	isExternal      bool // 参与人是否为外部参与人
   274  	isExternalFlag  bool
   275  }
   276  
   277  func NewAttendeeChatMemberBuilder() *AttendeeChatMemberBuilder {
   278  	builder := &AttendeeChatMemberBuilder{}
   279  	return builder
   280  }
   281  
   282  // 参与人RSVP状态
   283  //
   284  // 示例值:needs_action
   285  func (builder *AttendeeChatMemberBuilder) RsvpStatus(rsvpStatus string) *AttendeeChatMemberBuilder {
   286  	builder.rsvpStatus = rsvpStatus
   287  	builder.rsvpStatusFlag = true
   288  	return builder
   289  }
   290  
   291  // 参与人是否为「可选参加」
   292  //
   293  // 示例值:true
   294  func (builder *AttendeeChatMemberBuilder) IsOptional(isOptional bool) *AttendeeChatMemberBuilder {
   295  	builder.isOptional = isOptional
   296  	builder.isOptionalFlag = true
   297  	return builder
   298  }
   299  
   300  // 参与人名称
   301  //
   302  // 示例值:Group
   303  func (builder *AttendeeChatMemberBuilder) DisplayName(displayName string) *AttendeeChatMemberBuilder {
   304  	builder.displayName = displayName
   305  	builder.displayNameFlag = true
   306  	return builder
   307  }
   308  
   309  // 参与人是否为日程组织者
   310  //
   311  // 示例值:false
   312  func (builder *AttendeeChatMemberBuilder) IsOrganizer(isOrganizer bool) *AttendeeChatMemberBuilder {
   313  	builder.isOrganizer = isOrganizer
   314  	builder.isOrganizerFlag = true
   315  	return builder
   316  }
   317  
   318  // 参与人是否为外部参与人
   319  //
   320  // 示例值:false
   321  func (builder *AttendeeChatMemberBuilder) IsExternal(isExternal bool) *AttendeeChatMemberBuilder {
   322  	builder.isExternal = isExternal
   323  	builder.isExternalFlag = true
   324  	return builder
   325  }
   326  
   327  func (builder *AttendeeChatMemberBuilder) Build() *AttendeeChatMember {
   328  	req := &AttendeeChatMember{}
   329  	if builder.rsvpStatusFlag {
   330  		req.RsvpStatus = &builder.rsvpStatus
   331  
   332  	}
   333  	if builder.isOptionalFlag {
   334  		req.IsOptional = &builder.isOptional
   335  
   336  	}
   337  	if builder.displayNameFlag {
   338  		req.DisplayName = &builder.displayName
   339  
   340  	}
   341  	if builder.isOrganizerFlag {
   342  		req.IsOrganizer = &builder.isOrganizer
   343  
   344  	}
   345  	if builder.isExternalFlag {
   346  		req.IsExternal = &builder.isExternal
   347  
   348  	}
   349  	return req
   350  }
   351  
   352  type Calendar struct {
   353  	CalendarId   *string `json:"calendar_id,omitempty"`    // 日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
   354  	Summary      *string `json:"summary,omitempty"`        // 日历标题
   355  	Description  *string `json:"description,omitempty"`    // 日历描述
   356  	Permissions  *string `json:"permissions,omitempty"`    // 日历公开范围
   357  	Color        *int    `json:"color,omitempty"`          // 日历颜色,颜色RGB值的int32表示。客户端展示时会映射到色板上最接近的一种颜色。仅对当前身份生效
   358  	Type         *string `json:"type,omitempty"`           // 日历类型
   359  	SummaryAlias *string `json:"summary_alias,omitempty"`  // 日历备注名,修改或添加后仅对当前身份生效
   360  	IsDeleted    *bool   `json:"is_deleted,omitempty"`     // 对于当前身份,日历是否已经被标记为删除
   361  	IsThirdParty *bool   `json:"is_third_party,omitempty"` // 当前日历是否是第三方数据;三方日历及日程只支持读,不支持写入
   362  	Role         *string `json:"role,omitempty"`           // 当前身份对于该日历的访问权限
   363  }
   364  
   365  type CalendarBuilder struct {
   366  	calendarId       string // 日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
   367  	calendarIdFlag   bool
   368  	summary          string // 日历标题
   369  	summaryFlag      bool
   370  	description      string // 日历描述
   371  	descriptionFlag  bool
   372  	permissions      string // 日历公开范围
   373  	permissionsFlag  bool
   374  	color            int // 日历颜色,颜色RGB值的int32表示。客户端展示时会映射到色板上最接近的一种颜色。仅对当前身份生效
   375  	colorFlag        bool
   376  	type_            string // 日历类型
   377  	typeFlag         bool
   378  	summaryAlias     string // 日历备注名,修改或添加后仅对当前身份生效
   379  	summaryAliasFlag bool
   380  	isDeleted        bool // 对于当前身份,日历是否已经被标记为删除
   381  	isDeletedFlag    bool
   382  	isThirdParty     bool // 当前日历是否是第三方数据;三方日历及日程只支持读,不支持写入
   383  	isThirdPartyFlag bool
   384  	role             string // 当前身份对于该日历的访问权限
   385  	roleFlag         bool
   386  }
   387  
   388  func NewCalendarBuilder() *CalendarBuilder {
   389  	builder := &CalendarBuilder{}
   390  	return builder
   391  }
   392  
   393  // 日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
   394  //
   395  // 示例值:feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn
   396  func (builder *CalendarBuilder) CalendarId(calendarId string) *CalendarBuilder {
   397  	builder.calendarId = calendarId
   398  	builder.calendarIdFlag = true
   399  	return builder
   400  }
   401  
   402  // 日历标题
   403  //
   404  // 示例值:测试日历
   405  func (builder *CalendarBuilder) Summary(summary string) *CalendarBuilder {
   406  	builder.summary = summary
   407  	builder.summaryFlag = true
   408  	return builder
   409  }
   410  
   411  // 日历描述
   412  //
   413  // 示例值:使用开放接口创建日历
   414  func (builder *CalendarBuilder) Description(description string) *CalendarBuilder {
   415  	builder.description = description
   416  	builder.descriptionFlag = true
   417  	return builder
   418  }
   419  
   420  // 日历公开范围
   421  //
   422  // 示例值:private
   423  func (builder *CalendarBuilder) Permissions(permissions string) *CalendarBuilder {
   424  	builder.permissions = permissions
   425  	builder.permissionsFlag = true
   426  	return builder
   427  }
   428  
   429  // 日历颜色,颜色RGB值的int32表示。客户端展示时会映射到色板上最接近的一种颜色。仅对当前身份生效
   430  //
   431  // 示例值:-1
   432  func (builder *CalendarBuilder) Color(color int) *CalendarBuilder {
   433  	builder.color = color
   434  	builder.colorFlag = true
   435  	return builder
   436  }
   437  
   438  // 日历类型
   439  //
   440  // 示例值:shared
   441  func (builder *CalendarBuilder) Type(type_ string) *CalendarBuilder {
   442  	builder.type_ = type_
   443  	builder.typeFlag = true
   444  	return builder
   445  }
   446  
   447  // 日历备注名,修改或添加后仅对当前身份生效
   448  //
   449  // 示例值:日历备注名
   450  func (builder *CalendarBuilder) SummaryAlias(summaryAlias string) *CalendarBuilder {
   451  	builder.summaryAlias = summaryAlias
   452  	builder.summaryAliasFlag = true
   453  	return builder
   454  }
   455  
   456  // 对于当前身份,日历是否已经被标记为删除
   457  //
   458  // 示例值:false
   459  func (builder *CalendarBuilder) IsDeleted(isDeleted bool) *CalendarBuilder {
   460  	builder.isDeleted = isDeleted
   461  	builder.isDeletedFlag = true
   462  	return builder
   463  }
   464  
   465  // 当前日历是否是第三方数据;三方日历及日程只支持读,不支持写入
   466  //
   467  // 示例值:false
   468  func (builder *CalendarBuilder) IsThirdParty(isThirdParty bool) *CalendarBuilder {
   469  	builder.isThirdParty = isThirdParty
   470  	builder.isThirdPartyFlag = true
   471  	return builder
   472  }
   473  
   474  // 当前身份对于该日历的访问权限
   475  //
   476  // 示例值:owner
   477  func (builder *CalendarBuilder) Role(role string) *CalendarBuilder {
   478  	builder.role = role
   479  	builder.roleFlag = true
   480  	return builder
   481  }
   482  
   483  func (builder *CalendarBuilder) Build() *Calendar {
   484  	req := &Calendar{}
   485  	if builder.calendarIdFlag {
   486  		req.CalendarId = &builder.calendarId
   487  
   488  	}
   489  	if builder.summaryFlag {
   490  		req.Summary = &builder.summary
   491  
   492  	}
   493  	if builder.descriptionFlag {
   494  		req.Description = &builder.description
   495  
   496  	}
   497  	if builder.permissionsFlag {
   498  		req.Permissions = &builder.permissions
   499  
   500  	}
   501  	if builder.colorFlag {
   502  		req.Color = &builder.color
   503  
   504  	}
   505  	if builder.typeFlag {
   506  		req.Type = &builder.type_
   507  
   508  	}
   509  	if builder.summaryAliasFlag {
   510  		req.SummaryAlias = &builder.summaryAlias
   511  
   512  	}
   513  	if builder.isDeletedFlag {
   514  		req.IsDeleted = &builder.isDeleted
   515  
   516  	}
   517  	if builder.isThirdPartyFlag {
   518  		req.IsThirdParty = &builder.isThirdParty
   519  
   520  	}
   521  	if builder.roleFlag {
   522  		req.Role = &builder.role
   523  
   524  	}
   525  	return req
   526  }
   527  
   528  type CalendarAcl struct {
   529  	AclId *string   `json:"acl_id,omitempty"` // acl资源ID。参见[ACL ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-acl/introduction)
   530  	Role  *string   `json:"role,omitempty"`   // 对日历的访问权限
   531  	Scope *AclScope `json:"scope,omitempty"`  // 权限范围
   532  }
   533  
   534  type CalendarAclBuilder struct {
   535  	aclId     string // acl资源ID。参见[ACL ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-acl/introduction)
   536  	aclIdFlag bool
   537  	role      string // 对日历的访问权限
   538  	roleFlag  bool
   539  	scope     *AclScope // 权限范围
   540  	scopeFlag bool
   541  }
   542  
   543  func NewCalendarAclBuilder() *CalendarAclBuilder {
   544  	builder := &CalendarAclBuilder{}
   545  	return builder
   546  }
   547  
   548  // acl资源ID。参见[ACL ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-acl/introduction)
   549  //
   550  // 示例值:user_xxxxxx
   551  func (builder *CalendarAclBuilder) AclId(aclId string) *CalendarAclBuilder {
   552  	builder.aclId = aclId
   553  	builder.aclIdFlag = true
   554  	return builder
   555  }
   556  
   557  // 对日历的访问权限
   558  //
   559  // 示例值:writer
   560  func (builder *CalendarAclBuilder) Role(role string) *CalendarAclBuilder {
   561  	builder.role = role
   562  	builder.roleFlag = true
   563  	return builder
   564  }
   565  
   566  // 权限范围
   567  //
   568  // 示例值:
   569  func (builder *CalendarAclBuilder) Scope(scope *AclScope) *CalendarAclBuilder {
   570  	builder.scope = scope
   571  	builder.scopeFlag = true
   572  	return builder
   573  }
   574  
   575  func (builder *CalendarAclBuilder) Build() *CalendarAcl {
   576  	req := &CalendarAcl{}
   577  	if builder.aclIdFlag {
   578  		req.AclId = &builder.aclId
   579  
   580  	}
   581  	if builder.roleFlag {
   582  		req.Role = &builder.role
   583  
   584  	}
   585  	if builder.scopeFlag {
   586  		req.Scope = builder.scope
   587  	}
   588  	return req
   589  }
   590  
   591  type CalendarAclEvent struct {
   592  	AclId      *string        `json:"acl_id,omitempty"`       // acl资源ID
   593  	Role       *string        `json:"role,omitempty"`         // 对日历的访问权限
   594  	Scope      *AclScopeEvent `json:"scope,omitempty"`        // 权限范围
   595  	UserIdList []*UserId      `json:"user_id_list,omitempty"` // 需要推送事件的用户列表
   596  }
   597  
   598  type CalendarAclEventBuilder struct {
   599  	aclId          string // acl资源ID
   600  	aclIdFlag      bool
   601  	role           string // 对日历的访问权限
   602  	roleFlag       bool
   603  	scope          *AclScopeEvent // 权限范围
   604  	scopeFlag      bool
   605  	userIdList     []*UserId // 需要推送事件的用户列表
   606  	userIdListFlag bool
   607  }
   608  
   609  func NewCalendarAclEventBuilder() *CalendarAclEventBuilder {
   610  	builder := &CalendarAclEventBuilder{}
   611  	return builder
   612  }
   613  
   614  // acl资源ID
   615  //
   616  // 示例值:user_xxxxx
   617  func (builder *CalendarAclEventBuilder) AclId(aclId string) *CalendarAclEventBuilder {
   618  	builder.aclId = aclId
   619  	builder.aclIdFlag = true
   620  	return builder
   621  }
   622  
   623  // 对日历的访问权限
   624  //
   625  // 示例值:unknown
   626  func (builder *CalendarAclEventBuilder) Role(role string) *CalendarAclEventBuilder {
   627  	builder.role = role
   628  	builder.roleFlag = true
   629  	return builder
   630  }
   631  
   632  // 权限范围
   633  //
   634  // 示例值:
   635  func (builder *CalendarAclEventBuilder) Scope(scope *AclScopeEvent) *CalendarAclEventBuilder {
   636  	builder.scope = scope
   637  	builder.scopeFlag = true
   638  	return builder
   639  }
   640  
   641  // 需要推送事件的用户列表
   642  //
   643  // 示例值:
   644  func (builder *CalendarAclEventBuilder) UserIdList(userIdList []*UserId) *CalendarAclEventBuilder {
   645  	builder.userIdList = userIdList
   646  	builder.userIdListFlag = true
   647  	return builder
   648  }
   649  
   650  func (builder *CalendarAclEventBuilder) Build() *CalendarAclEvent {
   651  	req := &CalendarAclEvent{}
   652  	if builder.aclIdFlag {
   653  		req.AclId = &builder.aclId
   654  
   655  	}
   656  	if builder.roleFlag {
   657  		req.Role = &builder.role
   658  
   659  	}
   660  	if builder.scopeFlag {
   661  		req.Scope = builder.scope
   662  	}
   663  	if builder.userIdListFlag {
   664  		req.UserIdList = builder.userIdList
   665  	}
   666  	return req
   667  }
   668  
   669  type CalendarAttendeeResourceCustomization struct {
   670  	IndexKey     *string                `json:"index_key,omitempty"`     // 每个配置的唯一ID
   671  	InputContent *string                `json:"input_content,omitempty"` // 当type类型为填空时,该参数需要填入
   672  	Options      []*CustomizationOption `json:"options,omitempty"`       // 每个配置的选项
   673  }
   674  
   675  type CalendarAttendeeResourceCustomizationBuilder struct {
   676  	indexKey         string // 每个配置的唯一ID
   677  	indexKeyFlag     bool
   678  	inputContent     string // 当type类型为填空时,该参数需要填入
   679  	inputContentFlag bool
   680  	options          []*CustomizationOption // 每个配置的选项
   681  	optionsFlag      bool
   682  }
   683  
   684  func NewCalendarAttendeeResourceCustomizationBuilder() *CalendarAttendeeResourceCustomizationBuilder {
   685  	builder := &CalendarAttendeeResourceCustomizationBuilder{}
   686  	return builder
   687  }
   688  
   689  // 每个配置的唯一ID
   690  //
   691  // 示例值:16281481596100
   692  func (builder *CalendarAttendeeResourceCustomizationBuilder) IndexKey(indexKey string) *CalendarAttendeeResourceCustomizationBuilder {
   693  	builder.indexKey = indexKey
   694  	builder.indexKeyFlag = true
   695  	return builder
   696  }
   697  
   698  // 当type类型为填空时,该参数需要填入
   699  //
   700  // 示例值:xxx
   701  func (builder *CalendarAttendeeResourceCustomizationBuilder) InputContent(inputContent string) *CalendarAttendeeResourceCustomizationBuilder {
   702  	builder.inputContent = inputContent
   703  	builder.inputContentFlag = true
   704  	return builder
   705  }
   706  
   707  // 每个配置的选项
   708  //
   709  // 示例值:
   710  func (builder *CalendarAttendeeResourceCustomizationBuilder) Options(options []*CustomizationOption) *CalendarAttendeeResourceCustomizationBuilder {
   711  	builder.options = options
   712  	builder.optionsFlag = true
   713  	return builder
   714  }
   715  
   716  func (builder *CalendarAttendeeResourceCustomizationBuilder) Build() *CalendarAttendeeResourceCustomization {
   717  	req := &CalendarAttendeeResourceCustomization{}
   718  	if builder.indexKeyFlag {
   719  		req.IndexKey = &builder.indexKey
   720  
   721  	}
   722  	if builder.inputContentFlag {
   723  		req.InputContent = &builder.inputContent
   724  
   725  	}
   726  	if builder.optionsFlag {
   727  		req.Options = builder.options
   728  	}
   729  	return req
   730  }
   731  
   732  type CalendarEvent struct {
   733  	EventId             *string        `json:"event_id,omitempty"`              // 日程ID。参见[日程ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event/introduction)
   734  	OrganizerCalendarId *string        `json:"organizer_calendar_id,omitempty"` // 日程组织者日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
   735  	Summary             *string        `json:"summary,omitempty"`               // 日程标题
   736  	Description         *string        `json:"description,omitempty"`           // 日程描述;目前不支持编辑富文本描述,如果日程描述通过客户端编辑过,更新描述会导致富文本格式丢失
   737  	NeedNotification    *bool          `json:"need_notification,omitempty"`     // 更新日程是否给日程参与人发送bot通知,默认为true
   738  	StartTime           *TimeInfo      `json:"start_time,omitempty"`            // 日程开始时间
   739  	EndTime             *TimeInfo      `json:"end_time,omitempty"`              // 日程结束时间
   740  	Vchat               *Vchat         `json:"vchat,omitempty"`                 // 视频会议信息。
   741  	Visibility          *string        `json:"visibility,omitempty"`            // 日程公开范围,新建日程默认为Default;仅新建日程时对所有参与人生效,之后修改该属性仅对当前身份生效
   742  	AttendeeAbility     *string        `json:"attendee_ability,omitempty"`      // 参与人权限
   743  	FreeBusyStatus      *string        `json:"free_busy_status,omitempty"`      // 日程占用的忙闲状态,新建日程默认为Busy;仅新建日程时对所有参与人生效,之后修改该属性仅对当前身份生效
   744  	Location            *EventLocation `json:"location,omitempty"`              // 日程地点
   745  	Color               *int           `json:"color,omitempty"`                 // 日程颜色,颜色RGB值的int32表示。仅对当前身份生效;客户端展示时会映射到色板上最接近的一种颜色;值为0或-1时默认跟随日历颜色。
   746  	Reminders           []*Reminder    `json:"reminders,omitempty"`             // 日程提醒列表
   747  	Recurrence          *string        `json:"recurrence,omitempty"`            // 重复日程的重复性规则;参考[rfc5545](https://datatracker.ietf.org/doc/html/rfc5545#section-3.3.10);;- 不支持COUNT和UNTIL同时出现;;- 预定会议室重复日程长度不得超过两年。
   748  	Status              *string        `json:"status,omitempty"`                // 日程状态
   749  	IsException         *bool          `json:"is_exception,omitempty"`          // 日程是否是一个重复日程的例外日程
   750  	RecurringEventId    *string        `json:"recurring_event_id,omitempty"`    // 例外日程的原重复日程的event_id
   751  	Schemas             []*Schema      `json:"schemas,omitempty"`               // 日程自定义信息;控制日程详情页的ui展示。
   752  }
   753  
   754  type CalendarEventBuilder struct {
   755  	eventId                 string // 日程ID。参见[日程ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event/introduction)
   756  	eventIdFlag             bool
   757  	organizerCalendarId     string // 日程组织者日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
   758  	organizerCalendarIdFlag bool
   759  	summary                 string // 日程标题
   760  	summaryFlag             bool
   761  	description             string // 日程描述;目前不支持编辑富文本描述,如果日程描述通过客户端编辑过,更新描述会导致富文本格式丢失
   762  	descriptionFlag         bool
   763  	needNotification        bool // 更新日程是否给日程参与人发送bot通知,默认为true
   764  	needNotificationFlag    bool
   765  	startTime               *TimeInfo // 日程开始时间
   766  	startTimeFlag           bool
   767  	endTime                 *TimeInfo // 日程结束时间
   768  	endTimeFlag             bool
   769  	vchat                   *Vchat // 视频会议信息。
   770  	vchatFlag               bool
   771  	visibility              string // 日程公开范围,新建日程默认为Default;仅新建日程时对所有参与人生效,之后修改该属性仅对当前身份生效
   772  	visibilityFlag          bool
   773  	attendeeAbility         string // 参与人权限
   774  	attendeeAbilityFlag     bool
   775  	freeBusyStatus          string // 日程占用的忙闲状态,新建日程默认为Busy;仅新建日程时对所有参与人生效,之后修改该属性仅对当前身份生效
   776  	freeBusyStatusFlag      bool
   777  	location                *EventLocation // 日程地点
   778  	locationFlag            bool
   779  	color                   int // 日程颜色,颜色RGB值的int32表示。仅对当前身份生效;客户端展示时会映射到色板上最接近的一种颜色;值为0或-1时默认跟随日历颜色。
   780  	colorFlag               bool
   781  	reminders               []*Reminder // 日程提醒列表
   782  	remindersFlag           bool
   783  	recurrence              string // 重复日程的重复性规则;参考[rfc5545](https://datatracker.ietf.org/doc/html/rfc5545#section-3.3.10);;- 不支持COUNT和UNTIL同时出现;;- 预定会议室重复日程长度不得超过两年。
   784  	recurrenceFlag          bool
   785  	status                  string // 日程状态
   786  	statusFlag              bool
   787  	isException             bool // 日程是否是一个重复日程的例外日程
   788  	isExceptionFlag         bool
   789  	recurringEventId        string // 例外日程的原重复日程的event_id
   790  	recurringEventIdFlag    bool
   791  	schemas                 []*Schema // 日程自定义信息;控制日程详情页的ui展示。
   792  	schemasFlag             bool
   793  }
   794  
   795  func NewCalendarEventBuilder() *CalendarEventBuilder {
   796  	builder := &CalendarEventBuilder{}
   797  	return builder
   798  }
   799  
   800  // 日程ID。参见[日程ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event/introduction)
   801  //
   802  // 示例值:00592a0e-7edf-4678-bc9d-1b77383ef08e_0
   803  func (builder *CalendarEventBuilder) EventId(eventId string) *CalendarEventBuilder {
   804  	builder.eventId = eventId
   805  	builder.eventIdFlag = true
   806  	return builder
   807  }
   808  
   809  // 日程组织者日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
   810  //
   811  // 示例值:feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn
   812  func (builder *CalendarEventBuilder) OrganizerCalendarId(organizerCalendarId string) *CalendarEventBuilder {
   813  	builder.organizerCalendarId = organizerCalendarId
   814  	builder.organizerCalendarIdFlag = true
   815  	return builder
   816  }
   817  
   818  // 日程标题
   819  //
   820  // 示例值:日程标题
   821  func (builder *CalendarEventBuilder) Summary(summary string) *CalendarEventBuilder {
   822  	builder.summary = summary
   823  	builder.summaryFlag = true
   824  	return builder
   825  }
   826  
   827  // 日程描述;目前不支持编辑富文本描述,如果日程描述通过客户端编辑过,更新描述会导致富文本格式丢失
   828  //
   829  // 示例值:日程描述
   830  func (builder *CalendarEventBuilder) Description(description string) *CalendarEventBuilder {
   831  	builder.description = description
   832  	builder.descriptionFlag = true
   833  	return builder
   834  }
   835  
   836  // 更新日程是否给日程参与人发送bot通知,默认为true
   837  //
   838  // 示例值:false
   839  func (builder *CalendarEventBuilder) NeedNotification(needNotification bool) *CalendarEventBuilder {
   840  	builder.needNotification = needNotification
   841  	builder.needNotificationFlag = true
   842  	return builder
   843  }
   844  
   845  // 日程开始时间
   846  //
   847  // 示例值:
   848  func (builder *CalendarEventBuilder) StartTime(startTime *TimeInfo) *CalendarEventBuilder {
   849  	builder.startTime = startTime
   850  	builder.startTimeFlag = true
   851  	return builder
   852  }
   853  
   854  // 日程结束时间
   855  //
   856  // 示例值:
   857  func (builder *CalendarEventBuilder) EndTime(endTime *TimeInfo) *CalendarEventBuilder {
   858  	builder.endTime = endTime
   859  	builder.endTimeFlag = true
   860  	return builder
   861  }
   862  
   863  // 视频会议信息。
   864  //
   865  // 示例值:
   866  func (builder *CalendarEventBuilder) Vchat(vchat *Vchat) *CalendarEventBuilder {
   867  	builder.vchat = vchat
   868  	builder.vchatFlag = true
   869  	return builder
   870  }
   871  
   872  // 日程公开范围,新建日程默认为Default;仅新建日程时对所有参与人生效,之后修改该属性仅对当前身份生效
   873  //
   874  // 示例值:default
   875  func (builder *CalendarEventBuilder) Visibility(visibility string) *CalendarEventBuilder {
   876  	builder.visibility = visibility
   877  	builder.visibilityFlag = true
   878  	return builder
   879  }
   880  
   881  // 参与人权限
   882  //
   883  // 示例值:can_see_others
   884  func (builder *CalendarEventBuilder) AttendeeAbility(attendeeAbility string) *CalendarEventBuilder {
   885  	builder.attendeeAbility = attendeeAbility
   886  	builder.attendeeAbilityFlag = true
   887  	return builder
   888  }
   889  
   890  // 日程占用的忙闲状态,新建日程默认为Busy;仅新建日程时对所有参与人生效,之后修改该属性仅对当前身份生效
   891  //
   892  // 示例值:busy
   893  func (builder *CalendarEventBuilder) FreeBusyStatus(freeBusyStatus string) *CalendarEventBuilder {
   894  	builder.freeBusyStatus = freeBusyStatus
   895  	builder.freeBusyStatusFlag = true
   896  	return builder
   897  }
   898  
   899  // 日程地点
   900  //
   901  // 示例值:
   902  func (builder *CalendarEventBuilder) Location(location *EventLocation) *CalendarEventBuilder {
   903  	builder.location = location
   904  	builder.locationFlag = true
   905  	return builder
   906  }
   907  
   908  // 日程颜色,颜色RGB值的int32表示。仅对当前身份生效;客户端展示时会映射到色板上最接近的一种颜色;值为0或-1时默认跟随日历颜色。
   909  //
   910  // 示例值:-1
   911  func (builder *CalendarEventBuilder) Color(color int) *CalendarEventBuilder {
   912  	builder.color = color
   913  	builder.colorFlag = true
   914  	return builder
   915  }
   916  
   917  // 日程提醒列表
   918  //
   919  // 示例值:
   920  func (builder *CalendarEventBuilder) Reminders(reminders []*Reminder) *CalendarEventBuilder {
   921  	builder.reminders = reminders
   922  	builder.remindersFlag = true
   923  	return builder
   924  }
   925  
   926  // 重复日程的重复性规则;参考[rfc5545](https://datatracker.ietf.org/doc/html/rfc5545#section-3.3.10);;- 不支持COUNT和UNTIL同时出现;;- 预定会议室重复日程长度不得超过两年。
   927  //
   928  // 示例值:FREQ=DAILY;INTERVAL=1
   929  func (builder *CalendarEventBuilder) Recurrence(recurrence string) *CalendarEventBuilder {
   930  	builder.recurrence = recurrence
   931  	builder.recurrenceFlag = true
   932  	return builder
   933  }
   934  
   935  // 日程状态
   936  //
   937  // 示例值:confirmed
   938  func (builder *CalendarEventBuilder) Status(status string) *CalendarEventBuilder {
   939  	builder.status = status
   940  	builder.statusFlag = true
   941  	return builder
   942  }
   943  
   944  // 日程是否是一个重复日程的例外日程
   945  //
   946  // 示例值:false
   947  func (builder *CalendarEventBuilder) IsException(isException bool) *CalendarEventBuilder {
   948  	builder.isException = isException
   949  	builder.isExceptionFlag = true
   950  	return builder
   951  }
   952  
   953  // 例外日程的原重复日程的event_id
   954  //
   955  // 示例值:1cd45aaa-fa70-4195-80b7-c93b2e208f45
   956  func (builder *CalendarEventBuilder) RecurringEventId(recurringEventId string) *CalendarEventBuilder {
   957  	builder.recurringEventId = recurringEventId
   958  	builder.recurringEventIdFlag = true
   959  	return builder
   960  }
   961  
   962  // 日程自定义信息;控制日程详情页的ui展示。
   963  //
   964  // 示例值:
   965  func (builder *CalendarEventBuilder) Schemas(schemas []*Schema) *CalendarEventBuilder {
   966  	builder.schemas = schemas
   967  	builder.schemasFlag = true
   968  	return builder
   969  }
   970  
   971  func (builder *CalendarEventBuilder) Build() *CalendarEvent {
   972  	req := &CalendarEvent{}
   973  	if builder.eventIdFlag {
   974  		req.EventId = &builder.eventId
   975  
   976  	}
   977  	if builder.organizerCalendarIdFlag {
   978  		req.OrganizerCalendarId = &builder.organizerCalendarId
   979  
   980  	}
   981  	if builder.summaryFlag {
   982  		req.Summary = &builder.summary
   983  
   984  	}
   985  	if builder.descriptionFlag {
   986  		req.Description = &builder.description
   987  
   988  	}
   989  	if builder.needNotificationFlag {
   990  		req.NeedNotification = &builder.needNotification
   991  
   992  	}
   993  	if builder.startTimeFlag {
   994  		req.StartTime = builder.startTime
   995  	}
   996  	if builder.endTimeFlag {
   997  		req.EndTime = builder.endTime
   998  	}
   999  	if builder.vchatFlag {
  1000  		req.Vchat = builder.vchat
  1001  	}
  1002  	if builder.visibilityFlag {
  1003  		req.Visibility = &builder.visibility
  1004  
  1005  	}
  1006  	if builder.attendeeAbilityFlag {
  1007  		req.AttendeeAbility = &builder.attendeeAbility
  1008  
  1009  	}
  1010  	if builder.freeBusyStatusFlag {
  1011  		req.FreeBusyStatus = &builder.freeBusyStatus
  1012  
  1013  	}
  1014  	if builder.locationFlag {
  1015  		req.Location = builder.location
  1016  	}
  1017  	if builder.colorFlag {
  1018  		req.Color = &builder.color
  1019  
  1020  	}
  1021  	if builder.remindersFlag {
  1022  		req.Reminders = builder.reminders
  1023  	}
  1024  	if builder.recurrenceFlag {
  1025  		req.Recurrence = &builder.recurrence
  1026  
  1027  	}
  1028  	if builder.statusFlag {
  1029  		req.Status = &builder.status
  1030  
  1031  	}
  1032  	if builder.isExceptionFlag {
  1033  		req.IsException = &builder.isException
  1034  
  1035  	}
  1036  	if builder.recurringEventIdFlag {
  1037  		req.RecurringEventId = &builder.recurringEventId
  1038  
  1039  	}
  1040  	if builder.schemasFlag {
  1041  		req.Schemas = builder.schemas
  1042  	}
  1043  	return req
  1044  }
  1045  
  1046  type CalendarEventAttendee struct {
  1047  	Type                  *string                                  `json:"type,omitempty"`                   // 参与人类型
  1048  	AttendeeId            *string                                  `json:"attendee_id,omitempty"`            // 参与人ID。参见[参与人ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event-attendee/introduction#4998889c)
  1049  	RsvpStatus            *string                                  `json:"rsvp_status,omitempty"`            // 参与人RSVP状态
  1050  	IsOptional            *bool                                    `json:"is_optional,omitempty"`            // 参与人是否为「可选参加」,无法编辑群参与人的此字段
  1051  	IsOrganizer           *bool                                    `json:"is_organizer,omitempty"`           // 参与人是否为日程组织者
  1052  	IsExternal            *bool                                    `json:"is_external,omitempty"`            // 参与人是否为外部参与人;外部参与人不支持编辑
  1053  	DisplayName           *string                                  `json:"display_name,omitempty"`           // 参与人名称
  1054  	ChatMembers           []*AttendeeChatMember                    `json:"chat_members,omitempty"`           // 群中的群成员,当type为Chat时有效;群成员不支持编辑
  1055  	UserId                *string                                  `json:"user_id,omitempty"`                // 参与人的用户id,依赖于user_id_type返回对应的取值,当is_external为true时,此字段只会返回open_id或者union_id,参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  1056  	ChatId                *string                                  `json:"chat_id,omitempty"`                // chat类型参与人的群组chat_id,参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  1057  	RoomId                *string                                  `json:"room_id,omitempty"`                // resource类型参与人的会议室room_id
  1058  	ThirdPartyEmail       *string                                  `json:"third_party_email,omitempty"`      // third_party类型参与人的邮箱
  1059  	OperateId             *string                                  `json:"operate_id,omitempty"`             // 如果日程是使用应用身份创建的,在添加会议室的时候,用来指定会议室的联系人,在会议室视图展示。参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  1060  	ResourceCustomization []*CalendarAttendeeResourceCustomization `json:"resource_customization,omitempty"` // 会议室的个性化配置
  1061  }
  1062  
  1063  type CalendarEventAttendeeBuilder struct {
  1064  	type_                     string // 参与人类型
  1065  	typeFlag                  bool
  1066  	attendeeId                string // 参与人ID。参见[参与人ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event-attendee/introduction#4998889c)
  1067  	attendeeIdFlag            bool
  1068  	rsvpStatus                string // 参与人RSVP状态
  1069  	rsvpStatusFlag            bool
  1070  	isOptional                bool // 参与人是否为「可选参加」,无法编辑群参与人的此字段
  1071  	isOptionalFlag            bool
  1072  	isOrganizer               bool // 参与人是否为日程组织者
  1073  	isOrganizerFlag           bool
  1074  	isExternal                bool // 参与人是否为外部参与人;外部参与人不支持编辑
  1075  	isExternalFlag            bool
  1076  	displayName               string // 参与人名称
  1077  	displayNameFlag           bool
  1078  	chatMembers               []*AttendeeChatMember // 群中的群成员,当type为Chat时有效;群成员不支持编辑
  1079  	chatMembersFlag           bool
  1080  	userId                    string // 参与人的用户id,依赖于user_id_type返回对应的取值,当is_external为true时,此字段只会返回open_id或者union_id,参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  1081  	userIdFlag                bool
  1082  	chatId                    string // chat类型参与人的群组chat_id,参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  1083  	chatIdFlag                bool
  1084  	roomId                    string // resource类型参与人的会议室room_id
  1085  	roomIdFlag                bool
  1086  	thirdPartyEmail           string // third_party类型参与人的邮箱
  1087  	thirdPartyEmailFlag       bool
  1088  	operateId                 string // 如果日程是使用应用身份创建的,在添加会议室的时候,用来指定会议室的联系人,在会议室视图展示。参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  1089  	operateIdFlag             bool
  1090  	resourceCustomization     []*CalendarAttendeeResourceCustomization // 会议室的个性化配置
  1091  	resourceCustomizationFlag bool
  1092  }
  1093  
  1094  func NewCalendarEventAttendeeBuilder() *CalendarEventAttendeeBuilder {
  1095  	builder := &CalendarEventAttendeeBuilder{}
  1096  	return builder
  1097  }
  1098  
  1099  // 参与人类型
  1100  //
  1101  // 示例值:user
  1102  func (builder *CalendarEventAttendeeBuilder) Type(type_ string) *CalendarEventAttendeeBuilder {
  1103  	builder.type_ = type_
  1104  	builder.typeFlag = true
  1105  	return builder
  1106  }
  1107  
  1108  // 参与人ID。参见[参与人ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event-attendee/introduction#4998889c)
  1109  //
  1110  // 示例值:user_xxxxxx
  1111  func (builder *CalendarEventAttendeeBuilder) AttendeeId(attendeeId string) *CalendarEventAttendeeBuilder {
  1112  	builder.attendeeId = attendeeId
  1113  	builder.attendeeIdFlag = true
  1114  	return builder
  1115  }
  1116  
  1117  // 参与人RSVP状态
  1118  //
  1119  // 示例值:needs_action
  1120  func (builder *CalendarEventAttendeeBuilder) RsvpStatus(rsvpStatus string) *CalendarEventAttendeeBuilder {
  1121  	builder.rsvpStatus = rsvpStatus
  1122  	builder.rsvpStatusFlag = true
  1123  	return builder
  1124  }
  1125  
  1126  // 参与人是否为「可选参加」,无法编辑群参与人的此字段
  1127  //
  1128  // 示例值:true
  1129  func (builder *CalendarEventAttendeeBuilder) IsOptional(isOptional bool) *CalendarEventAttendeeBuilder {
  1130  	builder.isOptional = isOptional
  1131  	builder.isOptionalFlag = true
  1132  	return builder
  1133  }
  1134  
  1135  // 参与人是否为日程组织者
  1136  //
  1137  // 示例值:true
  1138  func (builder *CalendarEventAttendeeBuilder) IsOrganizer(isOrganizer bool) *CalendarEventAttendeeBuilder {
  1139  	builder.isOrganizer = isOrganizer
  1140  	builder.isOrganizerFlag = true
  1141  	return builder
  1142  }
  1143  
  1144  // 参与人是否为外部参与人;外部参与人不支持编辑
  1145  //
  1146  // 示例值:false
  1147  func (builder *CalendarEventAttendeeBuilder) IsExternal(isExternal bool) *CalendarEventAttendeeBuilder {
  1148  	builder.isExternal = isExternal
  1149  	builder.isExternalFlag = true
  1150  	return builder
  1151  }
  1152  
  1153  // 参与人名称
  1154  //
  1155  // 示例值:Zhang San
  1156  func (builder *CalendarEventAttendeeBuilder) DisplayName(displayName string) *CalendarEventAttendeeBuilder {
  1157  	builder.displayName = displayName
  1158  	builder.displayNameFlag = true
  1159  	return builder
  1160  }
  1161  
  1162  // 群中的群成员,当type为Chat时有效;群成员不支持编辑
  1163  //
  1164  // 示例值:
  1165  func (builder *CalendarEventAttendeeBuilder) ChatMembers(chatMembers []*AttendeeChatMember) *CalendarEventAttendeeBuilder {
  1166  	builder.chatMembers = chatMembers
  1167  	builder.chatMembersFlag = true
  1168  	return builder
  1169  }
  1170  
  1171  // 参与人的用户id,依赖于user_id_type返回对应的取值,当is_external为true时,此字段只会返回open_id或者union_id,参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  1172  //
  1173  // 示例值:ou_xxxxxxxx
  1174  func (builder *CalendarEventAttendeeBuilder) UserId(userId string) *CalendarEventAttendeeBuilder {
  1175  	builder.userId = userId
  1176  	builder.userIdFlag = true
  1177  	return builder
  1178  }
  1179  
  1180  // chat类型参与人的群组chat_id,参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  1181  //
  1182  // 示例值:oc_xxxxxxxxx
  1183  func (builder *CalendarEventAttendeeBuilder) ChatId(chatId string) *CalendarEventAttendeeBuilder {
  1184  	builder.chatId = chatId
  1185  	builder.chatIdFlag = true
  1186  	return builder
  1187  }
  1188  
  1189  // resource类型参与人的会议室room_id
  1190  //
  1191  // 示例值:omm_xxxxxxxx
  1192  func (builder *CalendarEventAttendeeBuilder) RoomId(roomId string) *CalendarEventAttendeeBuilder {
  1193  	builder.roomId = roomId
  1194  	builder.roomIdFlag = true
  1195  	return builder
  1196  }
  1197  
  1198  // third_party类型参与人的邮箱
  1199  //
  1200  // 示例值:wangwu@email.com
  1201  func (builder *CalendarEventAttendeeBuilder) ThirdPartyEmail(thirdPartyEmail string) *CalendarEventAttendeeBuilder {
  1202  	builder.thirdPartyEmail = thirdPartyEmail
  1203  	builder.thirdPartyEmailFlag = true
  1204  	return builder
  1205  }
  1206  
  1207  // 如果日程是使用应用身份创建的,在添加会议室的时候,用来指定会议室的联系人,在会议室视图展示。参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  1208  //
  1209  // 示例值:ou_xxxxxxxx
  1210  func (builder *CalendarEventAttendeeBuilder) OperateId(operateId string) *CalendarEventAttendeeBuilder {
  1211  	builder.operateId = operateId
  1212  	builder.operateIdFlag = true
  1213  	return builder
  1214  }
  1215  
  1216  // 会议室的个性化配置
  1217  //
  1218  // 示例值:
  1219  func (builder *CalendarEventAttendeeBuilder) ResourceCustomization(resourceCustomization []*CalendarAttendeeResourceCustomization) *CalendarEventAttendeeBuilder {
  1220  	builder.resourceCustomization = resourceCustomization
  1221  	builder.resourceCustomizationFlag = true
  1222  	return builder
  1223  }
  1224  
  1225  func (builder *CalendarEventAttendeeBuilder) Build() *CalendarEventAttendee {
  1226  	req := &CalendarEventAttendee{}
  1227  	if builder.typeFlag {
  1228  		req.Type = &builder.type_
  1229  
  1230  	}
  1231  	if builder.attendeeIdFlag {
  1232  		req.AttendeeId = &builder.attendeeId
  1233  
  1234  	}
  1235  	if builder.rsvpStatusFlag {
  1236  		req.RsvpStatus = &builder.rsvpStatus
  1237  
  1238  	}
  1239  	if builder.isOptionalFlag {
  1240  		req.IsOptional = &builder.isOptional
  1241  
  1242  	}
  1243  	if builder.isOrganizerFlag {
  1244  		req.IsOrganizer = &builder.isOrganizer
  1245  
  1246  	}
  1247  	if builder.isExternalFlag {
  1248  		req.IsExternal = &builder.isExternal
  1249  
  1250  	}
  1251  	if builder.displayNameFlag {
  1252  		req.DisplayName = &builder.displayName
  1253  
  1254  	}
  1255  	if builder.chatMembersFlag {
  1256  		req.ChatMembers = builder.chatMembers
  1257  	}
  1258  	if builder.userIdFlag {
  1259  		req.UserId = &builder.userId
  1260  
  1261  	}
  1262  	if builder.chatIdFlag {
  1263  		req.ChatId = &builder.chatId
  1264  
  1265  	}
  1266  	if builder.roomIdFlag {
  1267  		req.RoomId = &builder.roomId
  1268  
  1269  	}
  1270  	if builder.thirdPartyEmailFlag {
  1271  		req.ThirdPartyEmail = &builder.thirdPartyEmail
  1272  
  1273  	}
  1274  	if builder.operateIdFlag {
  1275  		req.OperateId = &builder.operateId
  1276  
  1277  	}
  1278  	if builder.resourceCustomizationFlag {
  1279  		req.ResourceCustomization = builder.resourceCustomization
  1280  	}
  1281  	return req
  1282  }
  1283  
  1284  type CalendarEventAttendeeChatMember struct {
  1285  	RsvpStatus  *string `json:"rsvp_status,omitempty"`  // 参与人RSVP状态
  1286  	IsOptional  *bool   `json:"is_optional,omitempty"`  // 参与人是否为「可选参加」
  1287  	DisplayName *string `json:"display_name,omitempty"` // 参与人名称
  1288  	OpenId      *string `json:"open_id,omitempty"`      // 参与人open_id,参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction);;**示例值**:"ou_xxxxxxxx"
  1289  	IsOrganizer *bool   `json:"is_organizer,omitempty"` // 参与人是否为日程组织者
  1290  	IsExternal  *bool   `json:"is_external,omitempty"`  // 参与人是否为外部参与人
  1291  }
  1292  
  1293  type CalendarEventAttendeeChatMemberBuilder struct {
  1294  	rsvpStatus      string // 参与人RSVP状态
  1295  	rsvpStatusFlag  bool
  1296  	isOptional      bool // 参与人是否为「可选参加」
  1297  	isOptionalFlag  bool
  1298  	displayName     string // 参与人名称
  1299  	displayNameFlag bool
  1300  	openId          string // 参与人open_id,参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction);;**示例值**:"ou_xxxxxxxx"
  1301  	openIdFlag      bool
  1302  	isOrganizer     bool // 参与人是否为日程组织者
  1303  	isOrganizerFlag bool
  1304  	isExternal      bool // 参与人是否为外部参与人
  1305  	isExternalFlag  bool
  1306  }
  1307  
  1308  func NewCalendarEventAttendeeChatMemberBuilder() *CalendarEventAttendeeChatMemberBuilder {
  1309  	builder := &CalendarEventAttendeeChatMemberBuilder{}
  1310  	return builder
  1311  }
  1312  
  1313  // 参与人RSVP状态
  1314  //
  1315  // 示例值:needs_action
  1316  func (builder *CalendarEventAttendeeChatMemberBuilder) RsvpStatus(rsvpStatus string) *CalendarEventAttendeeChatMemberBuilder {
  1317  	builder.rsvpStatus = rsvpStatus
  1318  	builder.rsvpStatusFlag = true
  1319  	return builder
  1320  }
  1321  
  1322  // 参与人是否为「可选参加」
  1323  //
  1324  // 示例值:true
  1325  func (builder *CalendarEventAttendeeChatMemberBuilder) IsOptional(isOptional bool) *CalendarEventAttendeeChatMemberBuilder {
  1326  	builder.isOptional = isOptional
  1327  	builder.isOptionalFlag = true
  1328  	return builder
  1329  }
  1330  
  1331  // 参与人名称
  1332  //
  1333  // 示例值:Zhang San
  1334  func (builder *CalendarEventAttendeeChatMemberBuilder) DisplayName(displayName string) *CalendarEventAttendeeChatMemberBuilder {
  1335  	builder.displayName = displayName
  1336  	builder.displayNameFlag = true
  1337  	return builder
  1338  }
  1339  
  1340  // 参与人open_id,参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction);;**示例值**:"ou_xxxxxxxx"
  1341  //
  1342  // 示例值:ou_143669c5a53647f00f6c80a0253aa68b
  1343  func (builder *CalendarEventAttendeeChatMemberBuilder) OpenId(openId string) *CalendarEventAttendeeChatMemberBuilder {
  1344  	builder.openId = openId
  1345  	builder.openIdFlag = true
  1346  	return builder
  1347  }
  1348  
  1349  // 参与人是否为日程组织者
  1350  //
  1351  // 示例值:true
  1352  func (builder *CalendarEventAttendeeChatMemberBuilder) IsOrganizer(isOrganizer bool) *CalendarEventAttendeeChatMemberBuilder {
  1353  	builder.isOrganizer = isOrganizer
  1354  	builder.isOrganizerFlag = true
  1355  	return builder
  1356  }
  1357  
  1358  // 参与人是否为外部参与人
  1359  //
  1360  // 示例值:false
  1361  func (builder *CalendarEventAttendeeChatMemberBuilder) IsExternal(isExternal bool) *CalendarEventAttendeeChatMemberBuilder {
  1362  	builder.isExternal = isExternal
  1363  	builder.isExternalFlag = true
  1364  	return builder
  1365  }
  1366  
  1367  func (builder *CalendarEventAttendeeChatMemberBuilder) Build() *CalendarEventAttendeeChatMember {
  1368  	req := &CalendarEventAttendeeChatMember{}
  1369  	if builder.rsvpStatusFlag {
  1370  		req.RsvpStatus = &builder.rsvpStatus
  1371  
  1372  	}
  1373  	if builder.isOptionalFlag {
  1374  		req.IsOptional = &builder.isOptional
  1375  
  1376  	}
  1377  	if builder.displayNameFlag {
  1378  		req.DisplayName = &builder.displayName
  1379  
  1380  	}
  1381  	if builder.openIdFlag {
  1382  		req.OpenId = &builder.openId
  1383  
  1384  	}
  1385  	if builder.isOrganizerFlag {
  1386  		req.IsOrganizer = &builder.isOrganizer
  1387  
  1388  	}
  1389  	if builder.isExternalFlag {
  1390  		req.IsExternal = &builder.isExternal
  1391  
  1392  	}
  1393  	return req
  1394  }
  1395  
  1396  type CalendarEventAttendeeId struct {
  1397  	Type            *string `json:"type,omitempty"`              // 参与人类型,仅当新建参与人时可设置类型
  1398  	AttendeeId      *string `json:"attendee_id,omitempty"`       // 参与人ID
  1399  	UserId          *string `json:"user_id,omitempty"`           // 参与人的用户id,依赖于user_id_type返回对应的取值,当is_external为true时,此字段只会返回open_id或者union_id
  1400  	ChatId          *string `json:"chat_id,omitempty"`           // chat类型参与人的群组chat_id
  1401  	RoomId          *string `json:"room_id,omitempty"`           // resource类型参与人的会议室room_id
  1402  	ThirdPartyEmail *string `json:"third_party_email,omitempty"` // third_party类型参与人的邮箱
  1403  }
  1404  
  1405  type CalendarEventAttendeeIdBuilder struct {
  1406  	type_               string // 参与人类型,仅当新建参与人时可设置类型
  1407  	typeFlag            bool
  1408  	attendeeId          string // 参与人ID
  1409  	attendeeIdFlag      bool
  1410  	userId              string // 参与人的用户id,依赖于user_id_type返回对应的取值,当is_external为true时,此字段只会返回open_id或者union_id
  1411  	userIdFlag          bool
  1412  	chatId              string // chat类型参与人的群组chat_id
  1413  	chatIdFlag          bool
  1414  	roomId              string // resource类型参与人的会议室room_id
  1415  	roomIdFlag          bool
  1416  	thirdPartyEmail     string // third_party类型参与人的邮箱
  1417  	thirdPartyEmailFlag bool
  1418  }
  1419  
  1420  func NewCalendarEventAttendeeIdBuilder() *CalendarEventAttendeeIdBuilder {
  1421  	builder := &CalendarEventAttendeeIdBuilder{}
  1422  	return builder
  1423  }
  1424  
  1425  // 参与人类型,仅当新建参与人时可设置类型
  1426  //
  1427  // 示例值:user
  1428  func (builder *CalendarEventAttendeeIdBuilder) Type(type_ string) *CalendarEventAttendeeIdBuilder {
  1429  	builder.type_ = type_
  1430  	builder.typeFlag = true
  1431  	return builder
  1432  }
  1433  
  1434  // 参与人ID
  1435  //
  1436  // 示例值:
  1437  func (builder *CalendarEventAttendeeIdBuilder) AttendeeId(attendeeId string) *CalendarEventAttendeeIdBuilder {
  1438  	builder.attendeeId = attendeeId
  1439  	builder.attendeeIdFlag = true
  1440  	return builder
  1441  }
  1442  
  1443  // 参与人的用户id,依赖于user_id_type返回对应的取值,当is_external为true时,此字段只会返回open_id或者union_id
  1444  //
  1445  // 示例值:ou_xxxxxxxx
  1446  func (builder *CalendarEventAttendeeIdBuilder) UserId(userId string) *CalendarEventAttendeeIdBuilder {
  1447  	builder.userId = userId
  1448  	builder.userIdFlag = true
  1449  	return builder
  1450  }
  1451  
  1452  // chat类型参与人的群组chat_id
  1453  //
  1454  // 示例值:oc_xxxxxxxxx
  1455  func (builder *CalendarEventAttendeeIdBuilder) ChatId(chatId string) *CalendarEventAttendeeIdBuilder {
  1456  	builder.chatId = chatId
  1457  	builder.chatIdFlag = true
  1458  	return builder
  1459  }
  1460  
  1461  // resource类型参与人的会议室room_id
  1462  //
  1463  // 示例值:omm_xxxxxxxx
  1464  func (builder *CalendarEventAttendeeIdBuilder) RoomId(roomId string) *CalendarEventAttendeeIdBuilder {
  1465  	builder.roomId = roomId
  1466  	builder.roomIdFlag = true
  1467  	return builder
  1468  }
  1469  
  1470  // third_party类型参与人的邮箱
  1471  //
  1472  // 示例值:wangwu@email.com
  1473  func (builder *CalendarEventAttendeeIdBuilder) ThirdPartyEmail(thirdPartyEmail string) *CalendarEventAttendeeIdBuilder {
  1474  	builder.thirdPartyEmail = thirdPartyEmail
  1475  	builder.thirdPartyEmailFlag = true
  1476  	return builder
  1477  }
  1478  
  1479  func (builder *CalendarEventAttendeeIdBuilder) Build() *CalendarEventAttendeeId {
  1480  	req := &CalendarEventAttendeeId{}
  1481  	if builder.typeFlag {
  1482  		req.Type = &builder.type_
  1483  
  1484  	}
  1485  	if builder.attendeeIdFlag {
  1486  		req.AttendeeId = &builder.attendeeId
  1487  
  1488  	}
  1489  	if builder.userIdFlag {
  1490  		req.UserId = &builder.userId
  1491  
  1492  	}
  1493  	if builder.chatIdFlag {
  1494  		req.ChatId = &builder.chatId
  1495  
  1496  	}
  1497  	if builder.roomIdFlag {
  1498  		req.RoomId = &builder.roomId
  1499  
  1500  	}
  1501  	if builder.thirdPartyEmailFlag {
  1502  		req.ThirdPartyEmail = &builder.thirdPartyEmail
  1503  
  1504  	}
  1505  	return req
  1506  }
  1507  
  1508  type CalendarEventAttendeeResp struct {
  1509  	Type                  *string                                  `json:"type,omitempty"`                   // 参与人类型,仅当新建参与人时可设置类型。
  1510  	AttendeeId            *string                                  `json:"attendee_id,omitempty"`            // 参与人ID
  1511  	RsvpStatus            *string                                  `json:"rsvp_status,omitempty"`            // 参与人RSVP状态
  1512  	IsOptional            *bool                                    `json:"is_optional,omitempty"`            // 参与人是否为「可选参加」,无法编辑群参与人的此字段
  1513  	IsOrganizer           *bool                                    `json:"is_organizer,omitempty"`           // 参与人是否为日程组织者
  1514  	IsExternal            *bool                                    `json:"is_external,omitempty"`            // 参与人是否为外部参与人;外部参与人不支持编辑
  1515  	DisplayName           *string                                  `json:"display_name,omitempty"`           // 参与人名称
  1516  	ChatMembers           []*AttendeeChatMember                    `json:"chat_members,omitempty"`           // 群中的群成员,当type为Chat时有效;群成员不支持编辑
  1517  	UserId                *string                                  `json:"user_id,omitempty"`                // 参与人的用户id,依赖于user_id_type返回对应的取值,当is_external为true时,此字段只会返回open_id或者union_id
  1518  	ChatId                *string                                  `json:"chat_id,omitempty"`                // chat类型参与人的群组chat_id
  1519  	RoomId                *string                                  `json:"room_id,omitempty"`                // resource类型参与人的会议室room_id
  1520  	ThirdPartyEmail       *string                                  `json:"third_party_email,omitempty"`      // third_party类型参与人的邮箱
  1521  	OperateId             *string                                  `json:"operate_id,omitempty"`             // bot身份操作时,为预定的会议室指定实际预定人
  1522  	ResourceCustomization []*CalendarAttendeeResourceCustomization `json:"resource_customization,omitempty"` // 会议室的个性化配置
  1523  }
  1524  
  1525  type CalendarEventAttendeeRespBuilder struct {
  1526  	type_                     string // 参与人类型,仅当新建参与人时可设置类型。
  1527  	typeFlag                  bool
  1528  	attendeeId                string // 参与人ID
  1529  	attendeeIdFlag            bool
  1530  	rsvpStatus                string // 参与人RSVP状态
  1531  	rsvpStatusFlag            bool
  1532  	isOptional                bool // 参与人是否为「可选参加」,无法编辑群参与人的此字段
  1533  	isOptionalFlag            bool
  1534  	isOrganizer               bool // 参与人是否为日程组织者
  1535  	isOrganizerFlag           bool
  1536  	isExternal                bool // 参与人是否为外部参与人;外部参与人不支持编辑
  1537  	isExternalFlag            bool
  1538  	displayName               string // 参与人名称
  1539  	displayNameFlag           bool
  1540  	chatMembers               []*AttendeeChatMember // 群中的群成员,当type为Chat时有效;群成员不支持编辑
  1541  	chatMembersFlag           bool
  1542  	userId                    string // 参与人的用户id,依赖于user_id_type返回对应的取值,当is_external为true时,此字段只会返回open_id或者union_id
  1543  	userIdFlag                bool
  1544  	chatId                    string // chat类型参与人的群组chat_id
  1545  	chatIdFlag                bool
  1546  	roomId                    string // resource类型参与人的会议室room_id
  1547  	roomIdFlag                bool
  1548  	thirdPartyEmail           string // third_party类型参与人的邮箱
  1549  	thirdPartyEmailFlag       bool
  1550  	operateId                 string // bot身份操作时,为预定的会议室指定实际预定人
  1551  	operateIdFlag             bool
  1552  	resourceCustomization     []*CalendarAttendeeResourceCustomization // 会议室的个性化配置
  1553  	resourceCustomizationFlag bool
  1554  }
  1555  
  1556  func NewCalendarEventAttendeeRespBuilder() *CalendarEventAttendeeRespBuilder {
  1557  	builder := &CalendarEventAttendeeRespBuilder{}
  1558  	return builder
  1559  }
  1560  
  1561  // 参与人类型,仅当新建参与人时可设置类型。
  1562  //
  1563  // 示例值:
  1564  func (builder *CalendarEventAttendeeRespBuilder) Type(type_ string) *CalendarEventAttendeeRespBuilder {
  1565  	builder.type_ = type_
  1566  	builder.typeFlag = true
  1567  	return builder
  1568  }
  1569  
  1570  // 参与人ID
  1571  //
  1572  // 示例值:
  1573  func (builder *CalendarEventAttendeeRespBuilder) AttendeeId(attendeeId string) *CalendarEventAttendeeRespBuilder {
  1574  	builder.attendeeId = attendeeId
  1575  	builder.attendeeIdFlag = true
  1576  	return builder
  1577  }
  1578  
  1579  // 参与人RSVP状态
  1580  //
  1581  // 示例值:
  1582  func (builder *CalendarEventAttendeeRespBuilder) RsvpStatus(rsvpStatus string) *CalendarEventAttendeeRespBuilder {
  1583  	builder.rsvpStatus = rsvpStatus
  1584  	builder.rsvpStatusFlag = true
  1585  	return builder
  1586  }
  1587  
  1588  // 参与人是否为「可选参加」,无法编辑群参与人的此字段
  1589  //
  1590  // 示例值:
  1591  func (builder *CalendarEventAttendeeRespBuilder) IsOptional(isOptional bool) *CalendarEventAttendeeRespBuilder {
  1592  	builder.isOptional = isOptional
  1593  	builder.isOptionalFlag = true
  1594  	return builder
  1595  }
  1596  
  1597  // 参与人是否为日程组织者
  1598  //
  1599  // 示例值:
  1600  func (builder *CalendarEventAttendeeRespBuilder) IsOrganizer(isOrganizer bool) *CalendarEventAttendeeRespBuilder {
  1601  	builder.isOrganizer = isOrganizer
  1602  	builder.isOrganizerFlag = true
  1603  	return builder
  1604  }
  1605  
  1606  // 参与人是否为外部参与人;外部参与人不支持编辑
  1607  //
  1608  // 示例值:
  1609  func (builder *CalendarEventAttendeeRespBuilder) IsExternal(isExternal bool) *CalendarEventAttendeeRespBuilder {
  1610  	builder.isExternal = isExternal
  1611  	builder.isExternalFlag = true
  1612  	return builder
  1613  }
  1614  
  1615  // 参与人名称
  1616  //
  1617  // 示例值:
  1618  func (builder *CalendarEventAttendeeRespBuilder) DisplayName(displayName string) *CalendarEventAttendeeRespBuilder {
  1619  	builder.displayName = displayName
  1620  	builder.displayNameFlag = true
  1621  	return builder
  1622  }
  1623  
  1624  // 群中的群成员,当type为Chat时有效;群成员不支持编辑
  1625  //
  1626  // 示例值:
  1627  func (builder *CalendarEventAttendeeRespBuilder) ChatMembers(chatMembers []*AttendeeChatMember) *CalendarEventAttendeeRespBuilder {
  1628  	builder.chatMembers = chatMembers
  1629  	builder.chatMembersFlag = true
  1630  	return builder
  1631  }
  1632  
  1633  // 参与人的用户id,依赖于user_id_type返回对应的取值,当is_external为true时,此字段只会返回open_id或者union_id
  1634  //
  1635  // 示例值:
  1636  func (builder *CalendarEventAttendeeRespBuilder) UserId(userId string) *CalendarEventAttendeeRespBuilder {
  1637  	builder.userId = userId
  1638  	builder.userIdFlag = true
  1639  	return builder
  1640  }
  1641  
  1642  // chat类型参与人的群组chat_id
  1643  //
  1644  // 示例值:
  1645  func (builder *CalendarEventAttendeeRespBuilder) ChatId(chatId string) *CalendarEventAttendeeRespBuilder {
  1646  	builder.chatId = chatId
  1647  	builder.chatIdFlag = true
  1648  	return builder
  1649  }
  1650  
  1651  // resource类型参与人的会议室room_id
  1652  //
  1653  // 示例值:
  1654  func (builder *CalendarEventAttendeeRespBuilder) RoomId(roomId string) *CalendarEventAttendeeRespBuilder {
  1655  	builder.roomId = roomId
  1656  	builder.roomIdFlag = true
  1657  	return builder
  1658  }
  1659  
  1660  // third_party类型参与人的邮箱
  1661  //
  1662  // 示例值:
  1663  func (builder *CalendarEventAttendeeRespBuilder) ThirdPartyEmail(thirdPartyEmail string) *CalendarEventAttendeeRespBuilder {
  1664  	builder.thirdPartyEmail = thirdPartyEmail
  1665  	builder.thirdPartyEmailFlag = true
  1666  	return builder
  1667  }
  1668  
  1669  // bot身份操作时,为预定的会议室指定实际预定人
  1670  //
  1671  // 示例值:
  1672  func (builder *CalendarEventAttendeeRespBuilder) OperateId(operateId string) *CalendarEventAttendeeRespBuilder {
  1673  	builder.operateId = operateId
  1674  	builder.operateIdFlag = true
  1675  	return builder
  1676  }
  1677  
  1678  // 会议室的个性化配置
  1679  //
  1680  // 示例值:
  1681  func (builder *CalendarEventAttendeeRespBuilder) ResourceCustomization(resourceCustomization []*CalendarAttendeeResourceCustomization) *CalendarEventAttendeeRespBuilder {
  1682  	builder.resourceCustomization = resourceCustomization
  1683  	builder.resourceCustomizationFlag = true
  1684  	return builder
  1685  }
  1686  
  1687  func (builder *CalendarEventAttendeeRespBuilder) Build() *CalendarEventAttendeeResp {
  1688  	req := &CalendarEventAttendeeResp{}
  1689  	if builder.typeFlag {
  1690  		req.Type = &builder.type_
  1691  
  1692  	}
  1693  	if builder.attendeeIdFlag {
  1694  		req.AttendeeId = &builder.attendeeId
  1695  
  1696  	}
  1697  	if builder.rsvpStatusFlag {
  1698  		req.RsvpStatus = &builder.rsvpStatus
  1699  
  1700  	}
  1701  	if builder.isOptionalFlag {
  1702  		req.IsOptional = &builder.isOptional
  1703  
  1704  	}
  1705  	if builder.isOrganizerFlag {
  1706  		req.IsOrganizer = &builder.isOrganizer
  1707  
  1708  	}
  1709  	if builder.isExternalFlag {
  1710  		req.IsExternal = &builder.isExternal
  1711  
  1712  	}
  1713  	if builder.displayNameFlag {
  1714  		req.DisplayName = &builder.displayName
  1715  
  1716  	}
  1717  	if builder.chatMembersFlag {
  1718  		req.ChatMembers = builder.chatMembers
  1719  	}
  1720  	if builder.userIdFlag {
  1721  		req.UserId = &builder.userId
  1722  
  1723  	}
  1724  	if builder.chatIdFlag {
  1725  		req.ChatId = &builder.chatId
  1726  
  1727  	}
  1728  	if builder.roomIdFlag {
  1729  		req.RoomId = &builder.roomId
  1730  
  1731  	}
  1732  	if builder.thirdPartyEmailFlag {
  1733  		req.ThirdPartyEmail = &builder.thirdPartyEmail
  1734  
  1735  	}
  1736  	if builder.operateIdFlag {
  1737  		req.OperateId = &builder.operateId
  1738  
  1739  	}
  1740  	if builder.resourceCustomizationFlag {
  1741  		req.ResourceCustomization = builder.resourceCustomization
  1742  	}
  1743  	return req
  1744  }
  1745  
  1746  type CalendarEventResp struct {
  1747  	EventId             *string        `json:"event_id,omitempty"`              // 日程ID
  1748  	OrganizerCalendarId *string        `json:"organizer_calendar_id,omitempty"` // 日程组织者日历ID
  1749  	Summary             *string        `json:"summary,omitempty"`               // 日程标题
  1750  	Description         *string        `json:"description,omitempty"`           // 日程描述
  1751  	NeedNotification    *bool          `json:"need_notification,omitempty"`     // 是否发送通知消息
  1752  	StartTime           *TimeInfo      `json:"start_time,omitempty"`            // 日程开始时间
  1753  	EndTime             *TimeInfo      `json:"end_time,omitempty"`              // 日程结束时间
  1754  	Vchat               *Vchat         `json:"vchat,omitempty"`                 // 视频会议信息,仅当日程至少有一位attendee时生效
  1755  	Visibility          *string        `json:"visibility,omitempty"`            // 日程公开范围,新建日程默认为Default;仅新建日程时对所有参与人生效,之后修改该属性仅对当前身份生效
  1756  	AttendeeAbility     *string        `json:"attendee_ability,omitempty"`      // 参与人权限
  1757  	FreeBusyStatus      *string        `json:"free_busy_status,omitempty"`      // 日程占用的忙闲状态,新建日程默认为Busy;仅新建日程时对所有参与人生效,之后修改该属性仅对当前身份生效
  1758  	Location            *EventLocation `json:"location,omitempty"`              // 日程地点
  1759  	Color               *int           `json:"color,omitempty"`                 // 日程颜色,颜色RGB值的int32表示。仅对当前身份生效;客户端展示时会映射到色板上最接近的一种颜色;值为0或-1时默认跟随日历颜色。
  1760  	Reminders           []*Reminder    `json:"reminders,omitempty"`             // 日程提醒列表
  1761  	Recurrence          *string        `json:"recurrence,omitempty"`            // 重复日程的重复性规则
  1762  	Status              *string        `json:"status,omitempty"`                // 日程状态
  1763  	IsException         *bool          `json:"is_exception,omitempty"`          // 日程是否是一个重复日程的例外日程
  1764  	RecurringEventId    *string        `json:"recurring_event_id,omitempty"`    // 例外日程的原重复日程的event_id
  1765  	Schemas             []*Schema      `json:"schemas,omitempty"`               // 日程自定义信息
  1766  }
  1767  
  1768  type CalendarEventRespBuilder struct {
  1769  	eventId                 string // 日程ID
  1770  	eventIdFlag             bool
  1771  	organizerCalendarId     string // 日程组织者日历ID
  1772  	organizerCalendarIdFlag bool
  1773  	summary                 string // 日程标题
  1774  	summaryFlag             bool
  1775  	description             string // 日程描述
  1776  	descriptionFlag         bool
  1777  	needNotification        bool // 是否发送通知消息
  1778  	needNotificationFlag    bool
  1779  	startTime               *TimeInfo // 日程开始时间
  1780  	startTimeFlag           bool
  1781  	endTime                 *TimeInfo // 日程结束时间
  1782  	endTimeFlag             bool
  1783  	vchat                   *Vchat // 视频会议信息,仅当日程至少有一位attendee时生效
  1784  	vchatFlag               bool
  1785  	visibility              string // 日程公开范围,新建日程默认为Default;仅新建日程时对所有参与人生效,之后修改该属性仅对当前身份生效
  1786  	visibilityFlag          bool
  1787  	attendeeAbility         string // 参与人权限
  1788  	attendeeAbilityFlag     bool
  1789  	freeBusyStatus          string // 日程占用的忙闲状态,新建日程默认为Busy;仅新建日程时对所有参与人生效,之后修改该属性仅对当前身份生效
  1790  	freeBusyStatusFlag      bool
  1791  	location                *EventLocation // 日程地点
  1792  	locationFlag            bool
  1793  	color                   int // 日程颜色,颜色RGB值的int32表示。仅对当前身份生效;客户端展示时会映射到色板上最接近的一种颜色;值为0或-1时默认跟随日历颜色。
  1794  	colorFlag               bool
  1795  	reminders               []*Reminder // 日程提醒列表
  1796  	remindersFlag           bool
  1797  	recurrence              string // 重复日程的重复性规则
  1798  	recurrenceFlag          bool
  1799  	status                  string // 日程状态
  1800  	statusFlag              bool
  1801  	isException             bool // 日程是否是一个重复日程的例外日程
  1802  	isExceptionFlag         bool
  1803  	recurringEventId        string // 例外日程的原重复日程的event_id
  1804  	recurringEventIdFlag    bool
  1805  	schemas                 []*Schema // 日程自定义信息
  1806  	schemasFlag             bool
  1807  }
  1808  
  1809  func NewCalendarEventRespBuilder() *CalendarEventRespBuilder {
  1810  	builder := &CalendarEventRespBuilder{}
  1811  	return builder
  1812  }
  1813  
  1814  // 日程ID
  1815  //
  1816  // 示例值:
  1817  func (builder *CalendarEventRespBuilder) EventId(eventId string) *CalendarEventRespBuilder {
  1818  	builder.eventId = eventId
  1819  	builder.eventIdFlag = true
  1820  	return builder
  1821  }
  1822  
  1823  // 日程组织者日历ID
  1824  //
  1825  // 示例值:
  1826  func (builder *CalendarEventRespBuilder) OrganizerCalendarId(organizerCalendarId string) *CalendarEventRespBuilder {
  1827  	builder.organizerCalendarId = organizerCalendarId
  1828  	builder.organizerCalendarIdFlag = true
  1829  	return builder
  1830  }
  1831  
  1832  // 日程标题
  1833  //
  1834  // 示例值:
  1835  func (builder *CalendarEventRespBuilder) Summary(summary string) *CalendarEventRespBuilder {
  1836  	builder.summary = summary
  1837  	builder.summaryFlag = true
  1838  	return builder
  1839  }
  1840  
  1841  // 日程描述
  1842  //
  1843  // 示例值:
  1844  func (builder *CalendarEventRespBuilder) Description(description string) *CalendarEventRespBuilder {
  1845  	builder.description = description
  1846  	builder.descriptionFlag = true
  1847  	return builder
  1848  }
  1849  
  1850  // 是否发送通知消息
  1851  //
  1852  // 示例值:
  1853  func (builder *CalendarEventRespBuilder) NeedNotification(needNotification bool) *CalendarEventRespBuilder {
  1854  	builder.needNotification = needNotification
  1855  	builder.needNotificationFlag = true
  1856  	return builder
  1857  }
  1858  
  1859  // 日程开始时间
  1860  //
  1861  // 示例值:
  1862  func (builder *CalendarEventRespBuilder) StartTime(startTime *TimeInfo) *CalendarEventRespBuilder {
  1863  	builder.startTime = startTime
  1864  	builder.startTimeFlag = true
  1865  	return builder
  1866  }
  1867  
  1868  // 日程结束时间
  1869  //
  1870  // 示例值:
  1871  func (builder *CalendarEventRespBuilder) EndTime(endTime *TimeInfo) *CalendarEventRespBuilder {
  1872  	builder.endTime = endTime
  1873  	builder.endTimeFlag = true
  1874  	return builder
  1875  }
  1876  
  1877  // 视频会议信息,仅当日程至少有一位attendee时生效
  1878  //
  1879  // 示例值:
  1880  func (builder *CalendarEventRespBuilder) Vchat(vchat *Vchat) *CalendarEventRespBuilder {
  1881  	builder.vchat = vchat
  1882  	builder.vchatFlag = true
  1883  	return builder
  1884  }
  1885  
  1886  // 日程公开范围,新建日程默认为Default;仅新建日程时对所有参与人生效,之后修改该属性仅对当前身份生效
  1887  //
  1888  // 示例值:
  1889  func (builder *CalendarEventRespBuilder) Visibility(visibility string) *CalendarEventRespBuilder {
  1890  	builder.visibility = visibility
  1891  	builder.visibilityFlag = true
  1892  	return builder
  1893  }
  1894  
  1895  // 参与人权限
  1896  //
  1897  // 示例值:
  1898  func (builder *CalendarEventRespBuilder) AttendeeAbility(attendeeAbility string) *CalendarEventRespBuilder {
  1899  	builder.attendeeAbility = attendeeAbility
  1900  	builder.attendeeAbilityFlag = true
  1901  	return builder
  1902  }
  1903  
  1904  // 日程占用的忙闲状态,新建日程默认为Busy;仅新建日程时对所有参与人生效,之后修改该属性仅对当前身份生效
  1905  //
  1906  // 示例值:
  1907  func (builder *CalendarEventRespBuilder) FreeBusyStatus(freeBusyStatus string) *CalendarEventRespBuilder {
  1908  	builder.freeBusyStatus = freeBusyStatus
  1909  	builder.freeBusyStatusFlag = true
  1910  	return builder
  1911  }
  1912  
  1913  // 日程地点
  1914  //
  1915  // 示例值:
  1916  func (builder *CalendarEventRespBuilder) Location(location *EventLocation) *CalendarEventRespBuilder {
  1917  	builder.location = location
  1918  	builder.locationFlag = true
  1919  	return builder
  1920  }
  1921  
  1922  // 日程颜色,颜色RGB值的int32表示。仅对当前身份生效;客户端展示时会映射到色板上最接近的一种颜色;值为0或-1时默认跟随日历颜色。
  1923  //
  1924  // 示例值:
  1925  func (builder *CalendarEventRespBuilder) Color(color int) *CalendarEventRespBuilder {
  1926  	builder.color = color
  1927  	builder.colorFlag = true
  1928  	return builder
  1929  }
  1930  
  1931  // 日程提醒列表
  1932  //
  1933  // 示例值:
  1934  func (builder *CalendarEventRespBuilder) Reminders(reminders []*Reminder) *CalendarEventRespBuilder {
  1935  	builder.reminders = reminders
  1936  	builder.remindersFlag = true
  1937  	return builder
  1938  }
  1939  
  1940  // 重复日程的重复性规则
  1941  //
  1942  // 示例值:
  1943  func (builder *CalendarEventRespBuilder) Recurrence(recurrence string) *CalendarEventRespBuilder {
  1944  	builder.recurrence = recurrence
  1945  	builder.recurrenceFlag = true
  1946  	return builder
  1947  }
  1948  
  1949  // 日程状态
  1950  //
  1951  // 示例值:
  1952  func (builder *CalendarEventRespBuilder) Status(status string) *CalendarEventRespBuilder {
  1953  	builder.status = status
  1954  	builder.statusFlag = true
  1955  	return builder
  1956  }
  1957  
  1958  // 日程是否是一个重复日程的例外日程
  1959  //
  1960  // 示例值:
  1961  func (builder *CalendarEventRespBuilder) IsException(isException bool) *CalendarEventRespBuilder {
  1962  	builder.isException = isException
  1963  	builder.isExceptionFlag = true
  1964  	return builder
  1965  }
  1966  
  1967  // 例外日程的原重复日程的event_id
  1968  //
  1969  // 示例值:
  1970  func (builder *CalendarEventRespBuilder) RecurringEventId(recurringEventId string) *CalendarEventRespBuilder {
  1971  	builder.recurringEventId = recurringEventId
  1972  	builder.recurringEventIdFlag = true
  1973  	return builder
  1974  }
  1975  
  1976  // 日程自定义信息
  1977  //
  1978  // 示例值:
  1979  func (builder *CalendarEventRespBuilder) Schemas(schemas []*Schema) *CalendarEventRespBuilder {
  1980  	builder.schemas = schemas
  1981  	builder.schemasFlag = true
  1982  	return builder
  1983  }
  1984  
  1985  func (builder *CalendarEventRespBuilder) Build() *CalendarEventResp {
  1986  	req := &CalendarEventResp{}
  1987  	if builder.eventIdFlag {
  1988  		req.EventId = &builder.eventId
  1989  
  1990  	}
  1991  	if builder.organizerCalendarIdFlag {
  1992  		req.OrganizerCalendarId = &builder.organizerCalendarId
  1993  
  1994  	}
  1995  	if builder.summaryFlag {
  1996  		req.Summary = &builder.summary
  1997  
  1998  	}
  1999  	if builder.descriptionFlag {
  2000  		req.Description = &builder.description
  2001  
  2002  	}
  2003  	if builder.needNotificationFlag {
  2004  		req.NeedNotification = &builder.needNotification
  2005  
  2006  	}
  2007  	if builder.startTimeFlag {
  2008  		req.StartTime = builder.startTime
  2009  	}
  2010  	if builder.endTimeFlag {
  2011  		req.EndTime = builder.endTime
  2012  	}
  2013  	if builder.vchatFlag {
  2014  		req.Vchat = builder.vchat
  2015  	}
  2016  	if builder.visibilityFlag {
  2017  		req.Visibility = &builder.visibility
  2018  
  2019  	}
  2020  	if builder.attendeeAbilityFlag {
  2021  		req.AttendeeAbility = &builder.attendeeAbility
  2022  
  2023  	}
  2024  	if builder.freeBusyStatusFlag {
  2025  		req.FreeBusyStatus = &builder.freeBusyStatus
  2026  
  2027  	}
  2028  	if builder.locationFlag {
  2029  		req.Location = builder.location
  2030  	}
  2031  	if builder.colorFlag {
  2032  		req.Color = &builder.color
  2033  
  2034  	}
  2035  	if builder.remindersFlag {
  2036  		req.Reminders = builder.reminders
  2037  	}
  2038  	if builder.recurrenceFlag {
  2039  		req.Recurrence = &builder.recurrence
  2040  
  2041  	}
  2042  	if builder.statusFlag {
  2043  		req.Status = &builder.status
  2044  
  2045  	}
  2046  	if builder.isExceptionFlag {
  2047  		req.IsException = &builder.isException
  2048  
  2049  	}
  2050  	if builder.recurringEventIdFlag {
  2051  		req.RecurringEventId = &builder.recurringEventId
  2052  
  2053  	}
  2054  	if builder.schemasFlag {
  2055  		req.Schemas = builder.schemas
  2056  	}
  2057  	return req
  2058  }
  2059  
  2060  type CalendarFreebusy struct {
  2061  	StartTime  *string `json:"start_time,omitempty"`  // 忙闲信息开始时间,RFC3339 date_time格式
  2062  	EndTime    *string `json:"end_time,omitempty"`    // 忙闲信息结束时间,RFC3339 date_time格式
  2063  	CalendarId *string `json:"calendar_id,omitempty"` // 日历id
  2064  }
  2065  
  2066  type CalendarFreebusyBuilder struct {
  2067  	startTime      string // 忙闲信息开始时间,RFC3339 date_time格式
  2068  	startTimeFlag  bool
  2069  	endTime        string // 忙闲信息结束时间,RFC3339 date_time格式
  2070  	endTimeFlag    bool
  2071  	calendarId     string // 日历id
  2072  	calendarIdFlag bool
  2073  }
  2074  
  2075  func NewCalendarFreebusyBuilder() *CalendarFreebusyBuilder {
  2076  	builder := &CalendarFreebusyBuilder{}
  2077  	return builder
  2078  }
  2079  
  2080  // 忙闲信息开始时间,RFC3339 date_time格式
  2081  //
  2082  // 示例值:
  2083  func (builder *CalendarFreebusyBuilder) StartTime(startTime string) *CalendarFreebusyBuilder {
  2084  	builder.startTime = startTime
  2085  	builder.startTimeFlag = true
  2086  	return builder
  2087  }
  2088  
  2089  // 忙闲信息结束时间,RFC3339 date_time格式
  2090  //
  2091  // 示例值:
  2092  func (builder *CalendarFreebusyBuilder) EndTime(endTime string) *CalendarFreebusyBuilder {
  2093  	builder.endTime = endTime
  2094  	builder.endTimeFlag = true
  2095  	return builder
  2096  }
  2097  
  2098  // 日历id
  2099  //
  2100  // 示例值:
  2101  func (builder *CalendarFreebusyBuilder) CalendarId(calendarId string) *CalendarFreebusyBuilder {
  2102  	builder.calendarId = calendarId
  2103  	builder.calendarIdFlag = true
  2104  	return builder
  2105  }
  2106  
  2107  func (builder *CalendarFreebusyBuilder) Build() *CalendarFreebusy {
  2108  	req := &CalendarFreebusy{}
  2109  	if builder.startTimeFlag {
  2110  		req.StartTime = &builder.startTime
  2111  
  2112  	}
  2113  	if builder.endTimeFlag {
  2114  		req.EndTime = &builder.endTime
  2115  
  2116  	}
  2117  	if builder.calendarIdFlag {
  2118  		req.CalendarId = &builder.calendarId
  2119  
  2120  	}
  2121  	return req
  2122  }
  2123  
  2124  type CalendarFreebusyError struct {
  2125  	CalendarId *string `json:"calendar_id,omitempty"` // 日历id
  2126  	ErrorMsg   *string `json:"error_msg,omitempty"`   // 错误信息
  2127  }
  2128  
  2129  type CalendarFreebusyErrorBuilder struct {
  2130  	calendarId     string // 日历id
  2131  	calendarIdFlag bool
  2132  	errorMsg       string // 错误信息
  2133  	errorMsgFlag   bool
  2134  }
  2135  
  2136  func NewCalendarFreebusyErrorBuilder() *CalendarFreebusyErrorBuilder {
  2137  	builder := &CalendarFreebusyErrorBuilder{}
  2138  	return builder
  2139  }
  2140  
  2141  // 日历id
  2142  //
  2143  // 示例值:
  2144  func (builder *CalendarFreebusyErrorBuilder) CalendarId(calendarId string) *CalendarFreebusyErrorBuilder {
  2145  	builder.calendarId = calendarId
  2146  	builder.calendarIdFlag = true
  2147  	return builder
  2148  }
  2149  
  2150  // 错误信息
  2151  //
  2152  // 示例值:
  2153  func (builder *CalendarFreebusyErrorBuilder) ErrorMsg(errorMsg string) *CalendarFreebusyErrorBuilder {
  2154  	builder.errorMsg = errorMsg
  2155  	builder.errorMsgFlag = true
  2156  	return builder
  2157  }
  2158  
  2159  func (builder *CalendarFreebusyErrorBuilder) Build() *CalendarFreebusyError {
  2160  	req := &CalendarFreebusyError{}
  2161  	if builder.calendarIdFlag {
  2162  		req.CalendarId = &builder.calendarId
  2163  
  2164  	}
  2165  	if builder.errorMsgFlag {
  2166  		req.ErrorMsg = &builder.errorMsg
  2167  
  2168  	}
  2169  	return req
  2170  }
  2171  
  2172  type CustomizationOption struct {
  2173  	OptionKey     *string `json:"option_key,omitempty"`     // 每个选项的唯一ID
  2174  	OthersContent *string `json:"others_content,omitempty"` // 当type类型为其它选项时,该参数需要填入
  2175  }
  2176  
  2177  type CustomizationOptionBuilder struct {
  2178  	optionKey         string // 每个选项的唯一ID
  2179  	optionKeyFlag     bool
  2180  	othersContent     string // 当type类型为其它选项时,该参数需要填入
  2181  	othersContentFlag bool
  2182  }
  2183  
  2184  func NewCustomizationOptionBuilder() *CustomizationOptionBuilder {
  2185  	builder := &CustomizationOptionBuilder{}
  2186  	return builder
  2187  }
  2188  
  2189  // 每个选项的唯一ID
  2190  //
  2191  // 示例值:16281481596185
  2192  func (builder *CustomizationOptionBuilder) OptionKey(optionKey string) *CustomizationOptionBuilder {
  2193  	builder.optionKey = optionKey
  2194  	builder.optionKeyFlag = true
  2195  	return builder
  2196  }
  2197  
  2198  // 当type类型为其它选项时,该参数需要填入
  2199  //
  2200  // 示例值:xxx
  2201  func (builder *CustomizationOptionBuilder) OthersContent(othersContent string) *CustomizationOptionBuilder {
  2202  	builder.othersContent = othersContent
  2203  	builder.othersContentFlag = true
  2204  	return builder
  2205  }
  2206  
  2207  func (builder *CustomizationOptionBuilder) Build() *CustomizationOption {
  2208  	req := &CustomizationOption{}
  2209  	if builder.optionKeyFlag {
  2210  		req.OptionKey = &builder.optionKey
  2211  
  2212  	}
  2213  	if builder.othersContentFlag {
  2214  		req.OthersContent = &builder.othersContent
  2215  
  2216  	}
  2217  	return req
  2218  }
  2219  
  2220  type EventLocation struct {
  2221  	Name      *string  `json:"name,omitempty"`      // 地点名称
  2222  	Address   *string  `json:"address,omitempty"`   // 地点地址
  2223  	Latitude  *float64 `json:"latitude,omitempty"`  // 地点坐标纬度信息,对于国内的地点,采用GCJ-02标准,海外地点采用WGS84标准
  2224  	Longitude *float64 `json:"longitude,omitempty"` // 地点坐标经度信息,对于国内的地点,采用GCJ-02标准,海外地点采用WGS84标准
  2225  }
  2226  
  2227  type EventLocationBuilder struct {
  2228  	name          string // 地点名称
  2229  	nameFlag      bool
  2230  	address       string // 地点地址
  2231  	addressFlag   bool
  2232  	latitude      float64 // 地点坐标纬度信息,对于国内的地点,采用GCJ-02标准,海外地点采用WGS84标准
  2233  	latitudeFlag  bool
  2234  	longitude     float64 // 地点坐标经度信息,对于国内的地点,采用GCJ-02标准,海外地点采用WGS84标准
  2235  	longitudeFlag bool
  2236  }
  2237  
  2238  func NewEventLocationBuilder() *EventLocationBuilder {
  2239  	builder := &EventLocationBuilder{}
  2240  	return builder
  2241  }
  2242  
  2243  // 地点名称
  2244  //
  2245  // 示例值:地点名称
  2246  func (builder *EventLocationBuilder) Name(name string) *EventLocationBuilder {
  2247  	builder.name = name
  2248  	builder.nameFlag = true
  2249  	return builder
  2250  }
  2251  
  2252  // 地点地址
  2253  //
  2254  // 示例值:地点地址
  2255  func (builder *EventLocationBuilder) Address(address string) *EventLocationBuilder {
  2256  	builder.address = address
  2257  	builder.addressFlag = true
  2258  	return builder
  2259  }
  2260  
  2261  // 地点坐标纬度信息,对于国内的地点,采用GCJ-02标准,海外地点采用WGS84标准
  2262  //
  2263  // 示例值:1.100000023841858
  2264  func (builder *EventLocationBuilder) Latitude(latitude float64) *EventLocationBuilder {
  2265  	builder.latitude = latitude
  2266  	builder.latitudeFlag = true
  2267  	return builder
  2268  }
  2269  
  2270  // 地点坐标经度信息,对于国内的地点,采用GCJ-02标准,海外地点采用WGS84标准
  2271  //
  2272  // 示例值:2.200000047683716
  2273  func (builder *EventLocationBuilder) Longitude(longitude float64) *EventLocationBuilder {
  2274  	builder.longitude = longitude
  2275  	builder.longitudeFlag = true
  2276  	return builder
  2277  }
  2278  
  2279  func (builder *EventLocationBuilder) Build() *EventLocation {
  2280  	req := &EventLocation{}
  2281  	if builder.nameFlag {
  2282  		req.Name = &builder.name
  2283  
  2284  	}
  2285  	if builder.addressFlag {
  2286  		req.Address = &builder.address
  2287  
  2288  	}
  2289  	if builder.latitudeFlag {
  2290  		req.Latitude = &builder.latitude
  2291  
  2292  	}
  2293  	if builder.longitudeFlag {
  2294  		req.Longitude = &builder.longitude
  2295  
  2296  	}
  2297  	return req
  2298  }
  2299  
  2300  type EventSearchFilter struct {
  2301  	StartTime *TimeInfo `json:"start_time,omitempty"` // 搜索过滤项,日程搜索区间的开始时间,被搜索日程的事件必须与搜索区间有交集
  2302  	EndTime   *TimeInfo `json:"end_time,omitempty"`   // 搜索过滤项,日程搜索区间的结束时间,被搜索日程的事件必须与搜索区间有交集
  2303  	UserIds   []string  `json:"user_ids,omitempty"`   // 搜索过滤项,参与人的用户ID列表,被搜索日程中必须包含至少一个其中的参与人。参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  2304  	RoomIds   []string  `json:"room_ids,omitempty"`   // 搜索过滤项,会议室ID列表,被搜索日程中必须包含至少一个其中的会议室
  2305  	ChatIds   []string  `json:"chat_ids,omitempty"`   // 搜索过滤项,群ID列表,被搜索日程的参与人中必须包含至少一个其中的群。参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  2306  }
  2307  
  2308  type EventSearchFilterBuilder struct {
  2309  	startTime     *TimeInfo // 搜索过滤项,日程搜索区间的开始时间,被搜索日程的事件必须与搜索区间有交集
  2310  	startTimeFlag bool
  2311  	endTime       *TimeInfo // 搜索过滤项,日程搜索区间的结束时间,被搜索日程的事件必须与搜索区间有交集
  2312  	endTimeFlag   bool
  2313  	userIds       []string // 搜索过滤项,参与人的用户ID列表,被搜索日程中必须包含至少一个其中的参与人。参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  2314  	userIdsFlag   bool
  2315  	roomIds       []string // 搜索过滤项,会议室ID列表,被搜索日程中必须包含至少一个其中的会议室
  2316  	roomIdsFlag   bool
  2317  	chatIds       []string // 搜索过滤项,群ID列表,被搜索日程的参与人中必须包含至少一个其中的群。参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  2318  	chatIdsFlag   bool
  2319  }
  2320  
  2321  func NewEventSearchFilterBuilder() *EventSearchFilterBuilder {
  2322  	builder := &EventSearchFilterBuilder{}
  2323  	return builder
  2324  }
  2325  
  2326  // 搜索过滤项,日程搜索区间的开始时间,被搜索日程的事件必须与搜索区间有交集
  2327  //
  2328  // 示例值:
  2329  func (builder *EventSearchFilterBuilder) StartTime(startTime *TimeInfo) *EventSearchFilterBuilder {
  2330  	builder.startTime = startTime
  2331  	builder.startTimeFlag = true
  2332  	return builder
  2333  }
  2334  
  2335  // 搜索过滤项,日程搜索区间的结束时间,被搜索日程的事件必须与搜索区间有交集
  2336  //
  2337  // 示例值:
  2338  func (builder *EventSearchFilterBuilder) EndTime(endTime *TimeInfo) *EventSearchFilterBuilder {
  2339  	builder.endTime = endTime
  2340  	builder.endTimeFlag = true
  2341  	return builder
  2342  }
  2343  
  2344  // 搜索过滤项,参与人的用户ID列表,被搜索日程中必须包含至少一个其中的参与人。参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  2345  //
  2346  // 示例值:xxxxx
  2347  func (builder *EventSearchFilterBuilder) UserIds(userIds []string) *EventSearchFilterBuilder {
  2348  	builder.userIds = userIds
  2349  	builder.userIdsFlag = true
  2350  	return builder
  2351  }
  2352  
  2353  // 搜索过滤项,会议室ID列表,被搜索日程中必须包含至少一个其中的会议室
  2354  //
  2355  // 示例值:xxxxx
  2356  func (builder *EventSearchFilterBuilder) RoomIds(roomIds []string) *EventSearchFilterBuilder {
  2357  	builder.roomIds = roomIds
  2358  	builder.roomIdsFlag = true
  2359  	return builder
  2360  }
  2361  
  2362  // 搜索过滤项,群ID列表,被搜索日程的参与人中必须包含至少一个其中的群。参见[群ID 说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/im-v1/chat-id-description)
  2363  //
  2364  // 示例值:xxxxx
  2365  func (builder *EventSearchFilterBuilder) ChatIds(chatIds []string) *EventSearchFilterBuilder {
  2366  	builder.chatIds = chatIds
  2367  	builder.chatIdsFlag = true
  2368  	return builder
  2369  }
  2370  
  2371  func (builder *EventSearchFilterBuilder) Build() *EventSearchFilter {
  2372  	req := &EventSearchFilter{}
  2373  	if builder.startTimeFlag {
  2374  		req.StartTime = builder.startTime
  2375  	}
  2376  	if builder.endTimeFlag {
  2377  		req.EndTime = builder.endTime
  2378  	}
  2379  	if builder.userIdsFlag {
  2380  		req.UserIds = builder.userIds
  2381  	}
  2382  	if builder.roomIdsFlag {
  2383  		req.RoomIds = builder.roomIds
  2384  	}
  2385  	if builder.chatIdsFlag {
  2386  		req.ChatIds = builder.chatIds
  2387  	}
  2388  	return req
  2389  }
  2390  
  2391  type EventTime struct {
  2392  	TimeStamp *string `json:"time_stamp,omitempty"` //
  2393  }
  2394  
  2395  type EventTimeBuilder struct {
  2396  	timeStamp     string //
  2397  	timeStampFlag bool
  2398  }
  2399  
  2400  func NewEventTimeBuilder() *EventTimeBuilder {
  2401  	builder := &EventTimeBuilder{}
  2402  	return builder
  2403  }
  2404  
  2405  //
  2406  //
  2407  // 示例值:
  2408  func (builder *EventTimeBuilder) TimeStamp(timeStamp string) *EventTimeBuilder {
  2409  	builder.timeStamp = timeStamp
  2410  	builder.timeStampFlag = true
  2411  	return builder
  2412  }
  2413  
  2414  func (builder *EventTimeBuilder) Build() *EventTime {
  2415  	req := &EventTime{}
  2416  	if builder.timeStampFlag {
  2417  		req.TimeStamp = &builder.timeStamp
  2418  
  2419  	}
  2420  	return req
  2421  }
  2422  
  2423  type ExchangeBinding struct {
  2424  	AdminAccount      *string `json:"admin_account,omitempty"`       // admin账户
  2425  	ExchangeAccount   *string `json:"exchange_account,omitempty"`    // 用户绑定的exchange账户
  2426  	UserId            *string `json:"user_id,omitempty"`             // exchange账户绑定user唯一标识id,参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  2427  	Status            *string `json:"status,omitempty"`              // exchange账户同步状态
  2428  	ExchangeBindingId *string `json:"exchange_binding_id,omitempty"` // exchange绑定唯一标识id。参见[exchange绑定ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/exchange_binding/introduction#12533d5e)
  2429  }
  2430  
  2431  type ExchangeBindingBuilder struct {
  2432  	adminAccount          string // admin账户
  2433  	adminAccountFlag      bool
  2434  	exchangeAccount       string // 用户绑定的exchange账户
  2435  	exchangeAccountFlag   bool
  2436  	userId                string // exchange账户绑定user唯一标识id,参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  2437  	userIdFlag            bool
  2438  	status                string // exchange账户同步状态
  2439  	statusFlag            bool
  2440  	exchangeBindingId     string // exchange绑定唯一标识id。参见[exchange绑定ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/exchange_binding/introduction#12533d5e)
  2441  	exchangeBindingIdFlag bool
  2442  }
  2443  
  2444  func NewExchangeBindingBuilder() *ExchangeBindingBuilder {
  2445  	builder := &ExchangeBindingBuilder{}
  2446  	return builder
  2447  }
  2448  
  2449  // admin账户
  2450  //
  2451  // 示例值:email_admin_example@outlook.com
  2452  func (builder *ExchangeBindingBuilder) AdminAccount(adminAccount string) *ExchangeBindingBuilder {
  2453  	builder.adminAccount = adminAccount
  2454  	builder.adminAccountFlag = true
  2455  	return builder
  2456  }
  2457  
  2458  // 用户绑定的exchange账户
  2459  //
  2460  // 示例值:email_account_example@outlook.com
  2461  func (builder *ExchangeBindingBuilder) ExchangeAccount(exchangeAccount string) *ExchangeBindingBuilder {
  2462  	builder.exchangeAccount = exchangeAccount
  2463  	builder.exchangeAccountFlag = true
  2464  	return builder
  2465  }
  2466  
  2467  // exchange账户绑定user唯一标识id,参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  2468  //
  2469  // 示例值:ou_xxxxxxxxxxxxxxxxxx
  2470  func (builder *ExchangeBindingBuilder) UserId(userId string) *ExchangeBindingBuilder {
  2471  	builder.userId = userId
  2472  	builder.userIdFlag = true
  2473  	return builder
  2474  }
  2475  
  2476  // exchange账户同步状态
  2477  //
  2478  // 示例值:doing
  2479  func (builder *ExchangeBindingBuilder) Status(status string) *ExchangeBindingBuilder {
  2480  	builder.status = status
  2481  	builder.statusFlag = true
  2482  	return builder
  2483  }
  2484  
  2485  // exchange绑定唯一标识id。参见[exchange绑定ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/exchange_binding/introduction#12533d5e)
  2486  //
  2487  // 示例值:ZW1haWxfYWRtaW5fZXhhbXBsZUBvdXRsb29rLmNvbSBlbWFpbF9hY2NvdW50X2V4YW1wbGVAb3V0bG9vay5jb20=
  2488  func (builder *ExchangeBindingBuilder) ExchangeBindingId(exchangeBindingId string) *ExchangeBindingBuilder {
  2489  	builder.exchangeBindingId = exchangeBindingId
  2490  	builder.exchangeBindingIdFlag = true
  2491  	return builder
  2492  }
  2493  
  2494  func (builder *ExchangeBindingBuilder) Build() *ExchangeBinding {
  2495  	req := &ExchangeBinding{}
  2496  	if builder.adminAccountFlag {
  2497  		req.AdminAccount = &builder.adminAccount
  2498  
  2499  	}
  2500  	if builder.exchangeAccountFlag {
  2501  		req.ExchangeAccount = &builder.exchangeAccount
  2502  
  2503  	}
  2504  	if builder.userIdFlag {
  2505  		req.UserId = &builder.userId
  2506  
  2507  	}
  2508  	if builder.statusFlag {
  2509  		req.Status = &builder.status
  2510  
  2511  	}
  2512  	if builder.exchangeBindingIdFlag {
  2513  		req.ExchangeBindingId = &builder.exchangeBindingId
  2514  
  2515  	}
  2516  	return req
  2517  }
  2518  
  2519  type Freebusy struct {
  2520  	StartTime *string `json:"start_time,omitempty"` // 忙闲信息开始时间,RFC3339 date_time 格式
  2521  	EndTime   *string `json:"end_time,omitempty"`   // 忙闲信息结束时间,RFC3339 date_time 格式
  2522  }
  2523  
  2524  type FreebusyBuilder struct {
  2525  	startTime     string // 忙闲信息开始时间,RFC3339 date_time 格式
  2526  	startTimeFlag bool
  2527  	endTime       string // 忙闲信息结束时间,RFC3339 date_time 格式
  2528  	endTimeFlag   bool
  2529  }
  2530  
  2531  func NewFreebusyBuilder() *FreebusyBuilder {
  2532  	builder := &FreebusyBuilder{}
  2533  	return builder
  2534  }
  2535  
  2536  // 忙闲信息开始时间,RFC3339 date_time 格式
  2537  //
  2538  // 示例值:2020-10-28T22:30:00+08:00
  2539  func (builder *FreebusyBuilder) StartTime(startTime string) *FreebusyBuilder {
  2540  	builder.startTime = startTime
  2541  	builder.startTimeFlag = true
  2542  	return builder
  2543  }
  2544  
  2545  // 忙闲信息结束时间,RFC3339 date_time 格式
  2546  //
  2547  // 示例值:2020-10-28T22:45:00+08:00
  2548  func (builder *FreebusyBuilder) EndTime(endTime string) *FreebusyBuilder {
  2549  	builder.endTime = endTime
  2550  	builder.endTimeFlag = true
  2551  	return builder
  2552  }
  2553  
  2554  func (builder *FreebusyBuilder) Build() *Freebusy {
  2555  	req := &Freebusy{}
  2556  	if builder.startTimeFlag {
  2557  		req.StartTime = &builder.startTime
  2558  
  2559  	}
  2560  	if builder.endTimeFlag {
  2561  		req.EndTime = &builder.endTime
  2562  
  2563  	}
  2564  	return req
  2565  }
  2566  
  2567  type Reminder struct {
  2568  	Minutes *int `json:"minutes,omitempty"` // 日程提醒时间的偏移量,正数时表示在日程开始前X分钟提醒,负数时表示在日程开始后X分钟提醒;新建或更新日程时传入该字段,仅对当前身份生效
  2569  }
  2570  
  2571  type ReminderBuilder struct {
  2572  	minutes     int // 日程提醒时间的偏移量,正数时表示在日程开始前X分钟提醒,负数时表示在日程开始后X分钟提醒;新建或更新日程时传入该字段,仅对当前身份生效
  2573  	minutesFlag bool
  2574  }
  2575  
  2576  func NewReminderBuilder() *ReminderBuilder {
  2577  	builder := &ReminderBuilder{}
  2578  	return builder
  2579  }
  2580  
  2581  // 日程提醒时间的偏移量,正数时表示在日程开始前X分钟提醒,负数时表示在日程开始后X分钟提醒;新建或更新日程时传入该字段,仅对当前身份生效
  2582  //
  2583  // 示例值:5
  2584  func (builder *ReminderBuilder) Minutes(minutes int) *ReminderBuilder {
  2585  	builder.minutes = minutes
  2586  	builder.minutesFlag = true
  2587  	return builder
  2588  }
  2589  
  2590  func (builder *ReminderBuilder) Build() *Reminder {
  2591  	req := &Reminder{}
  2592  	if builder.minutesFlag {
  2593  		req.Minutes = &builder.minutes
  2594  
  2595  	}
  2596  	return req
  2597  }
  2598  
  2599  type Schema struct {
  2600  	UiName   *string `json:"ui_name,omitempty"`   // UI名称。取值范围如下: ;- ForwardIcon: 日程转发按钮 ;- MeetingChatIcon: 会议群聊按钮 ;- MeetingMinutesIcon: 会议纪要按钮 ;- MeetingVideo: 视频会议区域 ;- RSVP: 接受/拒绝/待定区域 ;- Attendee: 参与者区域 ;- OrganizerOrCreator: 组织者/创建者区域
  2601  	UiStatus *string `json:"ui_status,omitempty"` // UI项自定义状态。**目前只支持hide**
  2602  	AppLink  *string `json:"app_link,omitempty"`  // 按钮点击后跳转的链接; **该字段暂不支持传入。**
  2603  }
  2604  
  2605  type SchemaBuilder struct {
  2606  	uiName       string // UI名称。取值范围如下: ;- ForwardIcon: 日程转发按钮 ;- MeetingChatIcon: 会议群聊按钮 ;- MeetingMinutesIcon: 会议纪要按钮 ;- MeetingVideo: 视频会议区域 ;- RSVP: 接受/拒绝/待定区域 ;- Attendee: 参与者区域 ;- OrganizerOrCreator: 组织者/创建者区域
  2607  	uiNameFlag   bool
  2608  	uiStatus     string // UI项自定义状态。**目前只支持hide**
  2609  	uiStatusFlag bool
  2610  	appLink      string // 按钮点击后跳转的链接; **该字段暂不支持传入。**
  2611  	appLinkFlag  bool
  2612  }
  2613  
  2614  func NewSchemaBuilder() *SchemaBuilder {
  2615  	builder := &SchemaBuilder{}
  2616  	return builder
  2617  }
  2618  
  2619  // UI名称。取值范围如下: ;- ForwardIcon: 日程转发按钮 ;- MeetingChatIcon: 会议群聊按钮 ;- MeetingMinutesIcon: 会议纪要按钮 ;- MeetingVideo: 视频会议区域 ;- RSVP: 接受/拒绝/待定区域 ;- Attendee: 参与者区域 ;- OrganizerOrCreator: 组织者/创建者区域
  2620  //
  2621  // 示例值:ForwardIcon
  2622  func (builder *SchemaBuilder) UiName(uiName string) *SchemaBuilder {
  2623  	builder.uiName = uiName
  2624  	builder.uiNameFlag = true
  2625  	return builder
  2626  }
  2627  
  2628  // UI项自定义状态。**目前只支持hide**
  2629  //
  2630  // 示例值:hide
  2631  func (builder *SchemaBuilder) UiStatus(uiStatus string) *SchemaBuilder {
  2632  	builder.uiStatus = uiStatus
  2633  	builder.uiStatusFlag = true
  2634  	return builder
  2635  }
  2636  
  2637  // 按钮点击后跳转的链接; **该字段暂不支持传入。**
  2638  //
  2639  // 示例值:https://applink.feishu.cn/client/calendar/event/detail?calendarId=xxxxxx&key=xxxxxx&originalTime=xxxxxx&startTime=xxxxxx
  2640  func (builder *SchemaBuilder) AppLink(appLink string) *SchemaBuilder {
  2641  	builder.appLink = appLink
  2642  	builder.appLinkFlag = true
  2643  	return builder
  2644  }
  2645  
  2646  func (builder *SchemaBuilder) Build() *Schema {
  2647  	req := &Schema{}
  2648  	if builder.uiNameFlag {
  2649  		req.UiName = &builder.uiName
  2650  
  2651  	}
  2652  	if builder.uiStatusFlag {
  2653  		req.UiStatus = &builder.uiStatus
  2654  
  2655  	}
  2656  	if builder.appLinkFlag {
  2657  		req.AppLink = &builder.appLink
  2658  
  2659  	}
  2660  	return req
  2661  }
  2662  
  2663  type Setting struct {
  2664  }
  2665  
  2666  type TimeInfo struct {
  2667  	Date      *string `json:"date,omitempty"`      // 仅全天日程使用该字段,如2018-09-01。需满足 RFC3339 格式。不能与 timestamp 同时指定
  2668  	Timestamp *string `json:"timestamp,omitempty"` // 秒级时间戳,如1602504000(表示2020/10/12 20:0:00 +8时区)
  2669  	Timezone  *string `json:"timezone,omitempty"`  // 时区名称,使用IANA Time Zone Database标准,如Asia/Shanghai;全天日程时区固定为UTC,非全天日程时区默认为Asia/Shanghai
  2670  }
  2671  
  2672  type TimeInfoBuilder struct {
  2673  	date          string // 仅全天日程使用该字段,如2018-09-01。需满足 RFC3339 格式。不能与 timestamp 同时指定
  2674  	dateFlag      bool
  2675  	timestamp     string // 秒级时间戳,如1602504000(表示2020/10/12 20:0:00 +8时区)
  2676  	timestampFlag bool
  2677  	timezone      string // 时区名称,使用IANA Time Zone Database标准,如Asia/Shanghai;全天日程时区固定为UTC,非全天日程时区默认为Asia/Shanghai
  2678  	timezoneFlag  bool
  2679  }
  2680  
  2681  func NewTimeInfoBuilder() *TimeInfoBuilder {
  2682  	builder := &TimeInfoBuilder{}
  2683  	return builder
  2684  }
  2685  
  2686  // 仅全天日程使用该字段,如2018-09-01。需满足 RFC3339 格式。不能与 timestamp 同时指定
  2687  //
  2688  // 示例值:2018-09-01
  2689  func (builder *TimeInfoBuilder) Date(date string) *TimeInfoBuilder {
  2690  	builder.date = date
  2691  	builder.dateFlag = true
  2692  	return builder
  2693  }
  2694  
  2695  // 秒级时间戳,如1602504000(表示2020/10/12 20:0:00 +8时区)
  2696  //
  2697  // 示例值:1602504000
  2698  func (builder *TimeInfoBuilder) Timestamp(timestamp string) *TimeInfoBuilder {
  2699  	builder.timestamp = timestamp
  2700  	builder.timestampFlag = true
  2701  	return builder
  2702  }
  2703  
  2704  // 时区名称,使用IANA Time Zone Database标准,如Asia/Shanghai;全天日程时区固定为UTC,非全天日程时区默认为Asia/Shanghai
  2705  //
  2706  // 示例值:Asia/Shanghai
  2707  func (builder *TimeInfoBuilder) Timezone(timezone string) *TimeInfoBuilder {
  2708  	builder.timezone = timezone
  2709  	builder.timezoneFlag = true
  2710  	return builder
  2711  }
  2712  
  2713  func (builder *TimeInfoBuilder) Build() *TimeInfo {
  2714  	req := &TimeInfo{}
  2715  	if builder.dateFlag {
  2716  		req.Date = &builder.date
  2717  
  2718  	}
  2719  	if builder.timestampFlag {
  2720  		req.Timestamp = &builder.timestamp
  2721  
  2722  	}
  2723  	if builder.timezoneFlag {
  2724  		req.Timezone = &builder.timezone
  2725  
  2726  	}
  2727  	return req
  2728  }
  2729  
  2730  type TimeoffEvent struct {
  2731  	TimeoffEventId *string `json:"timeoff_event_id,omitempty"` // 请假日程ID。参见[请假日程ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/timeoff_event/introduction#b6611a02)
  2732  	UserId         *string `json:"user_id,omitempty"`          // 用户id,参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  2733  	Timezone       *string `json:"timezone,omitempty"`         // 时区
  2734  	StartTime      *string `json:"start_time,omitempty"`       // 休假开始时间:;有时间戳(1609430400)和日期(2021-01-01)两种格式,其它格式无效;;时间戳格式是按小时休假日程,日期格式是全天休假日程;;start_time与end_time格式需保持一致,否则无效。
  2735  	EndTime        *string `json:"end_time,omitempty"`         // 休假结束时间:;有时间戳(1609430400)和日期(2021-01-01)两种格式,其它格式无效;;时间戳格式是按小时休假日程,日期格式是全天休假日程;;start_time与end_time格式需保持一致,否则无效。
  2736  	Title          *string `json:"title,omitempty"`            // 自定义请假日程标题,没有设置则为默认日程标题
  2737  	Description    *string `json:"description,omitempty"`      // 自定义请假日程描述,没有设置则为默认日程描述
  2738  }
  2739  
  2740  type TimeoffEventBuilder struct {
  2741  	timeoffEventId     string // 请假日程ID。参见[请假日程ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/timeoff_event/introduction#b6611a02)
  2742  	timeoffEventIdFlag bool
  2743  	userId             string // 用户id,参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  2744  	userIdFlag         bool
  2745  	timezone           string // 时区
  2746  	timezoneFlag       bool
  2747  	startTime          string // 休假开始时间:;有时间戳(1609430400)和日期(2021-01-01)两种格式,其它格式无效;;时间戳格式是按小时休假日程,日期格式是全天休假日程;;start_time与end_time格式需保持一致,否则无效。
  2748  	startTimeFlag      bool
  2749  	endTime            string // 休假结束时间:;有时间戳(1609430400)和日期(2021-01-01)两种格式,其它格式无效;;时间戳格式是按小时休假日程,日期格式是全天休假日程;;start_time与end_time格式需保持一致,否则无效。
  2750  	endTimeFlag        bool
  2751  	title              string // 自定义请假日程标题,没有设置则为默认日程标题
  2752  	titleFlag          bool
  2753  	description        string // 自定义请假日程描述,没有设置则为默认日程描述
  2754  	descriptionFlag    bool
  2755  }
  2756  
  2757  func NewTimeoffEventBuilder() *TimeoffEventBuilder {
  2758  	builder := &TimeoffEventBuilder{}
  2759  	return builder
  2760  }
  2761  
  2762  // 请假日程ID。参见[请假日程ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/timeoff_event/introduction#b6611a02)
  2763  //
  2764  // 示例值:timeoff:XXXXXX-XXXX-0917-1623-aa493d591a39-XXXXXX
  2765  func (builder *TimeoffEventBuilder) TimeoffEventId(timeoffEventId string) *TimeoffEventBuilder {
  2766  	builder.timeoffEventId = timeoffEventId
  2767  	builder.timeoffEventIdFlag = true
  2768  	return builder
  2769  }
  2770  
  2771  // 用户id,参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  2772  //
  2773  // 示例值:ou_XXXXXXXXXX
  2774  func (builder *TimeoffEventBuilder) UserId(userId string) *TimeoffEventBuilder {
  2775  	builder.userId = userId
  2776  	builder.userIdFlag = true
  2777  	return builder
  2778  }
  2779  
  2780  // 时区
  2781  //
  2782  // 示例值:Asia/Shanghai
  2783  func (builder *TimeoffEventBuilder) Timezone(timezone string) *TimeoffEventBuilder {
  2784  	builder.timezone = timezone
  2785  	builder.timezoneFlag = true
  2786  	return builder
  2787  }
  2788  
  2789  // 休假开始时间:;有时间戳(1609430400)和日期(2021-01-01)两种格式,其它格式无效;;时间戳格式是按小时休假日程,日期格式是全天休假日程;;start_time与end_time格式需保持一致,否则无效。
  2790  //
  2791  // 示例值:2021-01-01
  2792  func (builder *TimeoffEventBuilder) StartTime(startTime string) *TimeoffEventBuilder {
  2793  	builder.startTime = startTime
  2794  	builder.startTimeFlag = true
  2795  	return builder
  2796  }
  2797  
  2798  // 休假结束时间:;有时间戳(1609430400)和日期(2021-01-01)两种格式,其它格式无效;;时间戳格式是按小时休假日程,日期格式是全天休假日程;;start_time与end_time格式需保持一致,否则无效。
  2799  //
  2800  // 示例值:2021-01-01
  2801  func (builder *TimeoffEventBuilder) EndTime(endTime string) *TimeoffEventBuilder {
  2802  	builder.endTime = endTime
  2803  	builder.endTimeFlag = true
  2804  	return builder
  2805  }
  2806  
  2807  // 自定义请假日程标题,没有设置则为默认日程标题
  2808  //
  2809  // 示例值:请假中(全天) / 1-Day Time Off
  2810  func (builder *TimeoffEventBuilder) Title(title string) *TimeoffEventBuilder {
  2811  	builder.title = title
  2812  	builder.titleFlag = true
  2813  	return builder
  2814  }
  2815  
  2816  // 自定义请假日程描述,没有设置则为默认日程描述
  2817  //
  2818  // 示例值:若删除此日程,飞书中相应的“请假”标签将自动消失,而请假系统中的休假申请不会被撤销。
  2819  func (builder *TimeoffEventBuilder) Description(description string) *TimeoffEventBuilder {
  2820  	builder.description = description
  2821  	builder.descriptionFlag = true
  2822  	return builder
  2823  }
  2824  
  2825  func (builder *TimeoffEventBuilder) Build() *TimeoffEvent {
  2826  	req := &TimeoffEvent{}
  2827  	if builder.timeoffEventIdFlag {
  2828  		req.TimeoffEventId = &builder.timeoffEventId
  2829  
  2830  	}
  2831  	if builder.userIdFlag {
  2832  		req.UserId = &builder.userId
  2833  
  2834  	}
  2835  	if builder.timezoneFlag {
  2836  		req.Timezone = &builder.timezone
  2837  
  2838  	}
  2839  	if builder.startTimeFlag {
  2840  		req.StartTime = &builder.startTime
  2841  
  2842  	}
  2843  	if builder.endTimeFlag {
  2844  		req.EndTime = &builder.endTime
  2845  
  2846  	}
  2847  	if builder.titleFlag {
  2848  		req.Title = &builder.title
  2849  
  2850  	}
  2851  	if builder.descriptionFlag {
  2852  		req.Description = &builder.description
  2853  
  2854  	}
  2855  	return req
  2856  }
  2857  
  2858  type UserCalendar struct {
  2859  	Calendar *Calendar `json:"calendar,omitempty"` // 日历实体信息
  2860  	UserId   *string   `json:"user_id,omitempty"`  // 日历的创建者user ID,参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  2861  }
  2862  
  2863  type UserCalendarBuilder struct {
  2864  	calendar     *Calendar // 日历实体信息
  2865  	calendarFlag bool
  2866  	userId       string // 日历的创建者user ID,参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  2867  	userIdFlag   bool
  2868  }
  2869  
  2870  func NewUserCalendarBuilder() *UserCalendarBuilder {
  2871  	builder := &UserCalendarBuilder{}
  2872  	return builder
  2873  }
  2874  
  2875  // 日历实体信息
  2876  //
  2877  // 示例值:
  2878  func (builder *UserCalendarBuilder) Calendar(calendar *Calendar) *UserCalendarBuilder {
  2879  	builder.calendar = calendar
  2880  	builder.calendarFlag = true
  2881  	return builder
  2882  }
  2883  
  2884  // 日历的创建者user ID,参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  2885  //
  2886  // 示例值:ou_xxxxxx
  2887  func (builder *UserCalendarBuilder) UserId(userId string) *UserCalendarBuilder {
  2888  	builder.userId = userId
  2889  	builder.userIdFlag = true
  2890  	return builder
  2891  }
  2892  
  2893  func (builder *UserCalendarBuilder) Build() *UserCalendar {
  2894  	req := &UserCalendar{}
  2895  	if builder.calendarFlag {
  2896  		req.Calendar = builder.calendar
  2897  	}
  2898  	if builder.userIdFlag {
  2899  		req.UserId = &builder.userId
  2900  
  2901  	}
  2902  	return req
  2903  }
  2904  
  2905  type UserId struct {
  2906  	UserId  *string `json:"user_id,omitempty"`  //
  2907  	OpenId  *string `json:"open_id,omitempty"`  //
  2908  	UnionId *string `json:"union_id,omitempty"` //
  2909  }
  2910  
  2911  type UserIdBuilder struct {
  2912  	userId      string //
  2913  	userIdFlag  bool
  2914  	openId      string //
  2915  	openIdFlag  bool
  2916  	unionId     string //
  2917  	unionIdFlag bool
  2918  }
  2919  
  2920  func NewUserIdBuilder() *UserIdBuilder {
  2921  	builder := &UserIdBuilder{}
  2922  	return builder
  2923  }
  2924  
  2925  //
  2926  //
  2927  // 示例值:
  2928  func (builder *UserIdBuilder) UserId(userId string) *UserIdBuilder {
  2929  	builder.userId = userId
  2930  	builder.userIdFlag = true
  2931  	return builder
  2932  }
  2933  
  2934  //
  2935  //
  2936  // 示例值:
  2937  func (builder *UserIdBuilder) OpenId(openId string) *UserIdBuilder {
  2938  	builder.openId = openId
  2939  	builder.openIdFlag = true
  2940  	return builder
  2941  }
  2942  
  2943  //
  2944  //
  2945  // 示例值:
  2946  func (builder *UserIdBuilder) UnionId(unionId string) *UserIdBuilder {
  2947  	builder.unionId = unionId
  2948  	builder.unionIdFlag = true
  2949  	return builder
  2950  }
  2951  
  2952  func (builder *UserIdBuilder) Build() *UserId {
  2953  	req := &UserId{}
  2954  	if builder.userIdFlag {
  2955  		req.UserId = &builder.userId
  2956  
  2957  	}
  2958  	if builder.openIdFlag {
  2959  		req.OpenId = &builder.openId
  2960  
  2961  	}
  2962  	if builder.unionIdFlag {
  2963  		req.UnionId = &builder.unionId
  2964  
  2965  	}
  2966  	return req
  2967  }
  2968  
  2969  type Vchat struct {
  2970  	VcType      *string `json:"vc_type,omitempty"`     // 视频会议类型
  2971  	IconType    *string `json:"icon_type,omitempty"`   // 第三方视频会议icon类型;可以为空,为空展示默认icon。
  2972  	Description *string `json:"description,omitempty"` // 第三方视频会议文案,可以为空,为空展示默认文案
  2973  	MeetingUrl  *string `json:"meeting_url,omitempty"` // 视频会议URL
  2974  }
  2975  
  2976  type VchatBuilder struct {
  2977  	vcType          string // 视频会议类型
  2978  	vcTypeFlag      bool
  2979  	iconType        string // 第三方视频会议icon类型;可以为空,为空展示默认icon。
  2980  	iconTypeFlag    bool
  2981  	description     string // 第三方视频会议文案,可以为空,为空展示默认文案
  2982  	descriptionFlag bool
  2983  	meetingUrl      string // 视频会议URL
  2984  	meetingUrlFlag  bool
  2985  }
  2986  
  2987  func NewVchatBuilder() *VchatBuilder {
  2988  	builder := &VchatBuilder{}
  2989  	return builder
  2990  }
  2991  
  2992  // 视频会议类型
  2993  //
  2994  // 示例值:third_party
  2995  func (builder *VchatBuilder) VcType(vcType string) *VchatBuilder {
  2996  	builder.vcType = vcType
  2997  	builder.vcTypeFlag = true
  2998  	return builder
  2999  }
  3000  
  3001  // 第三方视频会议icon类型;可以为空,为空展示默认icon。
  3002  //
  3003  // 示例值:vc
  3004  func (builder *VchatBuilder) IconType(iconType string) *VchatBuilder {
  3005  	builder.iconType = iconType
  3006  	builder.iconTypeFlag = true
  3007  	return builder
  3008  }
  3009  
  3010  // 第三方视频会议文案,可以为空,为空展示默认文案
  3011  //
  3012  // 示例值:发起视频会议
  3013  func (builder *VchatBuilder) Description(description string) *VchatBuilder {
  3014  	builder.description = description
  3015  	builder.descriptionFlag = true
  3016  	return builder
  3017  }
  3018  
  3019  // 视频会议URL
  3020  //
  3021  // 示例值:https://example.com
  3022  func (builder *VchatBuilder) MeetingUrl(meetingUrl string) *VchatBuilder {
  3023  	builder.meetingUrl = meetingUrl
  3024  	builder.meetingUrlFlag = true
  3025  	return builder
  3026  }
  3027  
  3028  func (builder *VchatBuilder) Build() *Vchat {
  3029  	req := &Vchat{}
  3030  	if builder.vcTypeFlag {
  3031  		req.VcType = &builder.vcType
  3032  
  3033  	}
  3034  	if builder.iconTypeFlag {
  3035  		req.IconType = &builder.iconType
  3036  
  3037  	}
  3038  	if builder.descriptionFlag {
  3039  		req.Description = &builder.description
  3040  
  3041  	}
  3042  	if builder.meetingUrlFlag {
  3043  		req.MeetingUrl = &builder.meetingUrl
  3044  
  3045  	}
  3046  	return req
  3047  }
  3048  
  3049  type CreateCalendarReqBuilder struct {
  3050  	apiReq   *larkcore.ApiReq
  3051  	calendar *Calendar
  3052  }
  3053  
  3054  func NewCreateCalendarReqBuilder() *CreateCalendarReqBuilder {
  3055  	builder := &CreateCalendarReqBuilder{}
  3056  	builder.apiReq = &larkcore.ApiReq{
  3057  		PathParams:  larkcore.PathParams{},
  3058  		QueryParams: larkcore.QueryParams{},
  3059  	}
  3060  	return builder
  3061  }
  3062  
  3063  // 该接口用于为当前身份(应用 / 用户)创建一个共享日历。;;身份由 Header Authorization 的 Token 类型决定。
  3064  func (builder *CreateCalendarReqBuilder) Calendar(calendar *Calendar) *CreateCalendarReqBuilder {
  3065  	builder.calendar = calendar
  3066  	return builder
  3067  }
  3068  
  3069  func (builder *CreateCalendarReqBuilder) Build() *CreateCalendarReq {
  3070  	req := &CreateCalendarReq{}
  3071  	req.apiReq = &larkcore.ApiReq{}
  3072  	req.apiReq.Body = builder.calendar
  3073  	return req
  3074  }
  3075  
  3076  type CreateCalendarReq struct {
  3077  	apiReq   *larkcore.ApiReq
  3078  	Calendar *Calendar `body:""`
  3079  }
  3080  
  3081  type CreateCalendarRespData struct {
  3082  	Calendar *Calendar `json:"calendar,omitempty"` // 新创建的日历实体
  3083  }
  3084  
  3085  type CreateCalendarResp struct {
  3086  	*larkcore.ApiResp `json:"-"`
  3087  	larkcore.CodeError
  3088  	Data *CreateCalendarRespData `json:"data"` // 业务数据
  3089  }
  3090  
  3091  func (resp *CreateCalendarResp) Success() bool {
  3092  	return resp.Code == 0
  3093  }
  3094  
  3095  type DeleteCalendarReqBuilder struct {
  3096  	apiReq *larkcore.ApiReq
  3097  }
  3098  
  3099  func NewDeleteCalendarReqBuilder() *DeleteCalendarReqBuilder {
  3100  	builder := &DeleteCalendarReqBuilder{}
  3101  	builder.apiReq = &larkcore.ApiReq{
  3102  		PathParams:  larkcore.PathParams{},
  3103  		QueryParams: larkcore.QueryParams{},
  3104  	}
  3105  	return builder
  3106  }
  3107  
  3108  // 日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
  3109  //
  3110  // 示例值:feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn
  3111  func (builder *DeleteCalendarReqBuilder) CalendarId(calendarId string) *DeleteCalendarReqBuilder {
  3112  	builder.apiReq.PathParams.Set("calendar_id", fmt.Sprint(calendarId))
  3113  	return builder
  3114  }
  3115  
  3116  func (builder *DeleteCalendarReqBuilder) Build() *DeleteCalendarReq {
  3117  	req := &DeleteCalendarReq{}
  3118  	req.apiReq = &larkcore.ApiReq{}
  3119  	req.apiReq.PathParams = builder.apiReq.PathParams
  3120  	return req
  3121  }
  3122  
  3123  type DeleteCalendarReq struct {
  3124  	apiReq *larkcore.ApiReq
  3125  }
  3126  
  3127  type DeleteCalendarResp struct {
  3128  	*larkcore.ApiResp `json:"-"`
  3129  	larkcore.CodeError
  3130  }
  3131  
  3132  func (resp *DeleteCalendarResp) Success() bool {
  3133  	return resp.Code == 0
  3134  }
  3135  
  3136  type GetCalendarReqBuilder struct {
  3137  	apiReq *larkcore.ApiReq
  3138  }
  3139  
  3140  func NewGetCalendarReqBuilder() *GetCalendarReqBuilder {
  3141  	builder := &GetCalendarReqBuilder{}
  3142  	builder.apiReq = &larkcore.ApiReq{
  3143  		PathParams:  larkcore.PathParams{},
  3144  		QueryParams: larkcore.QueryParams{},
  3145  	}
  3146  	return builder
  3147  }
  3148  
  3149  // 日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
  3150  //
  3151  // 示例值:feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn
  3152  func (builder *GetCalendarReqBuilder) CalendarId(calendarId string) *GetCalendarReqBuilder {
  3153  	builder.apiReq.PathParams.Set("calendar_id", fmt.Sprint(calendarId))
  3154  	return builder
  3155  }
  3156  
  3157  func (builder *GetCalendarReqBuilder) Build() *GetCalendarReq {
  3158  	req := &GetCalendarReq{}
  3159  	req.apiReq = &larkcore.ApiReq{}
  3160  	req.apiReq.PathParams = builder.apiReq.PathParams
  3161  	return req
  3162  }
  3163  
  3164  type GetCalendarReq struct {
  3165  	apiReq *larkcore.ApiReq
  3166  }
  3167  
  3168  type GetCalendarRespData struct {
  3169  	CalendarId   *string `json:"calendar_id,omitempty"`    // 日历OpenId
  3170  	Summary      *string `json:"summary,omitempty"`        // 日历标题
  3171  	Description  *string `json:"description,omitempty"`    // 日历描述
  3172  	Permissions  *string `json:"permissions,omitempty"`    //
  3173  	Color        *int    `json:"color,omitempty"`          // 日历颜色,颜色RGB值的int32表示。客户端展示时会映射到色板上最接近的一种颜色。仅对当前身份生效
  3174  	Type         *string `json:"type,omitempty"`           // 日历类型
  3175  	SummaryAlias *string `json:"summary_alias,omitempty"`  // 日历备注名,修改或添加后仅对当前身份生效
  3176  	IsDeleted    *bool   `json:"is_deleted,omitempty"`     // 对于当前身份,日历是否已经被标记为删除
  3177  	IsThirdParty *bool   `json:"is_third_party,omitempty"` // 当前日历是否是第三方数据;三方日历及日程只支持读,不支持写入
  3178  	Role         *string `json:"role,omitempty"`           // 当前身份对于该日历的访问权限
  3179  }
  3180  
  3181  type GetCalendarResp struct {
  3182  	*larkcore.ApiResp `json:"-"`
  3183  	larkcore.CodeError
  3184  	Data *GetCalendarRespData `json:"data"` // 业务数据
  3185  }
  3186  
  3187  func (resp *GetCalendarResp) Success() bool {
  3188  	return resp.Code == 0
  3189  }
  3190  
  3191  type ListCalendarReqBuilder struct {
  3192  	apiReq *larkcore.ApiReq
  3193  }
  3194  
  3195  func NewListCalendarReqBuilder() *ListCalendarReqBuilder {
  3196  	builder := &ListCalendarReqBuilder{}
  3197  	builder.apiReq = &larkcore.ApiReq{
  3198  		PathParams:  larkcore.PathParams{},
  3199  		QueryParams: larkcore.QueryParams{},
  3200  	}
  3201  	return builder
  3202  }
  3203  
  3204  // 一次请求要求返回最大数量,默认500,取值范围为[50. 1000]
  3205  //
  3206  // 示例值:50
  3207  func (builder *ListCalendarReqBuilder) PageSize(pageSize int) *ListCalendarReqBuilder {
  3208  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  3209  	return builder
  3210  }
  3211  
  3212  // 上次请求Response返回的分页标记,首次请求时为空
  3213  //
  3214  // 示例值:ListCalendarsPageToken_xxx
  3215  func (builder *ListCalendarReqBuilder) PageToken(pageToken string) *ListCalendarReqBuilder {
  3216  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  3217  	return builder
  3218  }
  3219  
  3220  // 上次请求Response返回的增量同步标记,分页请求未结束时为空
  3221  //
  3222  // 示例值:ListCalendarsSyncToken_xxx
  3223  func (builder *ListCalendarReqBuilder) SyncToken(syncToken string) *ListCalendarReqBuilder {
  3224  	builder.apiReq.QueryParams.Set("sync_token", fmt.Sprint(syncToken))
  3225  	return builder
  3226  }
  3227  
  3228  func (builder *ListCalendarReqBuilder) Build() *ListCalendarReq {
  3229  	req := &ListCalendarReq{}
  3230  	req.apiReq = &larkcore.ApiReq{}
  3231  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  3232  	return req
  3233  }
  3234  
  3235  type ListCalendarReq struct {
  3236  	apiReq *larkcore.ApiReq
  3237  }
  3238  
  3239  type ListCalendarRespData struct {
  3240  	HasMore      *bool       `json:"has_more,omitempty"`      // 是否还有更多数据
  3241  	PageToken    *string     `json:"page_token,omitempty"`    // 下次请求需要带上的分页标记,90 天有效期
  3242  	SyncToken    *string     `json:"sync_token,omitempty"`    // 下次请求需要带上的增量同步标记,90 天有效期
  3243  	CalendarList []*Calendar `json:"calendar_list,omitempty"` // 分页加载的日历数据列表
  3244  }
  3245  
  3246  type ListCalendarResp struct {
  3247  	*larkcore.ApiResp `json:"-"`
  3248  	larkcore.CodeError
  3249  	Data *ListCalendarRespData `json:"data"` // 业务数据
  3250  }
  3251  
  3252  func (resp *ListCalendarResp) Success() bool {
  3253  	return resp.Code == 0
  3254  }
  3255  
  3256  type PatchCalendarReqBuilder struct {
  3257  	apiReq   *larkcore.ApiReq
  3258  	calendar *Calendar
  3259  }
  3260  
  3261  func NewPatchCalendarReqBuilder() *PatchCalendarReqBuilder {
  3262  	builder := &PatchCalendarReqBuilder{}
  3263  	builder.apiReq = &larkcore.ApiReq{
  3264  		PathParams:  larkcore.PathParams{},
  3265  		QueryParams: larkcore.QueryParams{},
  3266  	}
  3267  	return builder
  3268  }
  3269  
  3270  // 日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
  3271  //
  3272  // 示例值:feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn
  3273  func (builder *PatchCalendarReqBuilder) CalendarId(calendarId string) *PatchCalendarReqBuilder {
  3274  	builder.apiReq.PathParams.Set("calendar_id", fmt.Sprint(calendarId))
  3275  	return builder
  3276  }
  3277  
  3278  // 该接口用于以当前身份(应用 / 用户)修改日历信息。;;身份由 Header Authorization 的 Token 类型决定。
  3279  func (builder *PatchCalendarReqBuilder) Calendar(calendar *Calendar) *PatchCalendarReqBuilder {
  3280  	builder.calendar = calendar
  3281  	return builder
  3282  }
  3283  
  3284  func (builder *PatchCalendarReqBuilder) Build() *PatchCalendarReq {
  3285  	req := &PatchCalendarReq{}
  3286  	req.apiReq = &larkcore.ApiReq{}
  3287  	req.apiReq.PathParams = builder.apiReq.PathParams
  3288  	req.apiReq.Body = builder.calendar
  3289  	return req
  3290  }
  3291  
  3292  type PatchCalendarReq struct {
  3293  	apiReq   *larkcore.ApiReq
  3294  	Calendar *Calendar `body:""`
  3295  }
  3296  
  3297  type PatchCalendarRespData struct {
  3298  	Calendar *Calendar `json:"calendar,omitempty"` // 更新后的日历实体
  3299  }
  3300  
  3301  type PatchCalendarResp struct {
  3302  	*larkcore.ApiResp `json:"-"`
  3303  	larkcore.CodeError
  3304  	Data *PatchCalendarRespData `json:"data"` // 业务数据
  3305  }
  3306  
  3307  func (resp *PatchCalendarResp) Success() bool {
  3308  	return resp.Code == 0
  3309  }
  3310  
  3311  type PrimaryCalendarReqBuilder struct {
  3312  	apiReq *larkcore.ApiReq
  3313  }
  3314  
  3315  func NewPrimaryCalendarReqBuilder() *PrimaryCalendarReqBuilder {
  3316  	builder := &PrimaryCalendarReqBuilder{}
  3317  	builder.apiReq = &larkcore.ApiReq{
  3318  		PathParams:  larkcore.PathParams{},
  3319  		QueryParams: larkcore.QueryParams{},
  3320  	}
  3321  	return builder
  3322  }
  3323  
  3324  // 此次调用中使用的用户ID的类型
  3325  //
  3326  // 示例值:
  3327  func (builder *PrimaryCalendarReqBuilder) UserIdType(userIdType string) *PrimaryCalendarReqBuilder {
  3328  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  3329  	return builder
  3330  }
  3331  
  3332  func (builder *PrimaryCalendarReqBuilder) Build() *PrimaryCalendarReq {
  3333  	req := &PrimaryCalendarReq{}
  3334  	req.apiReq = &larkcore.ApiReq{}
  3335  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  3336  	return req
  3337  }
  3338  
  3339  type PrimaryCalendarReq struct {
  3340  	apiReq *larkcore.ApiReq
  3341  }
  3342  
  3343  type PrimaryCalendarRespData struct {
  3344  	Calendars []*UserCalendar `json:"calendars,omitempty"` // 主日历列表
  3345  }
  3346  
  3347  type PrimaryCalendarResp struct {
  3348  	*larkcore.ApiResp `json:"-"`
  3349  	larkcore.CodeError
  3350  	Data *PrimaryCalendarRespData `json:"data"` // 业务数据
  3351  }
  3352  
  3353  func (resp *PrimaryCalendarResp) Success() bool {
  3354  	return resp.Code == 0
  3355  }
  3356  
  3357  type SearchCalendarReqBodyBuilder struct {
  3358  	query     string // 搜索关键字
  3359  	queryFlag bool
  3360  }
  3361  
  3362  func NewSearchCalendarReqBodyBuilder() *SearchCalendarReqBodyBuilder {
  3363  	builder := &SearchCalendarReqBodyBuilder{}
  3364  	return builder
  3365  }
  3366  
  3367  // 搜索关键字
  3368  //
  3369  //示例值:query words
  3370  func (builder *SearchCalendarReqBodyBuilder) Query(query string) *SearchCalendarReqBodyBuilder {
  3371  	builder.query = query
  3372  	builder.queryFlag = true
  3373  	return builder
  3374  }
  3375  
  3376  func (builder *SearchCalendarReqBodyBuilder) Build() *SearchCalendarReqBody {
  3377  	req := &SearchCalendarReqBody{}
  3378  	if builder.queryFlag {
  3379  		req.Query = &builder.query
  3380  	}
  3381  	return req
  3382  }
  3383  
  3384  type SearchCalendarPathReqBodyBuilder struct {
  3385  	query     string // 搜索关键字
  3386  	queryFlag bool
  3387  }
  3388  
  3389  func NewSearchCalendarPathReqBodyBuilder() *SearchCalendarPathReqBodyBuilder {
  3390  	builder := &SearchCalendarPathReqBodyBuilder{}
  3391  	return builder
  3392  }
  3393  
  3394  // 搜索关键字
  3395  //
  3396  // 示例值:query words
  3397  func (builder *SearchCalendarPathReqBodyBuilder) Query(query string) *SearchCalendarPathReqBodyBuilder {
  3398  	builder.query = query
  3399  	builder.queryFlag = true
  3400  	return builder
  3401  }
  3402  
  3403  func (builder *SearchCalendarPathReqBodyBuilder) Build() (*SearchCalendarReqBody, error) {
  3404  	req := &SearchCalendarReqBody{}
  3405  	if builder.queryFlag {
  3406  		req.Query = &builder.query
  3407  	}
  3408  	return req, nil
  3409  }
  3410  
  3411  type SearchCalendarReqBuilder struct {
  3412  	apiReq *larkcore.ApiReq
  3413  	body   *SearchCalendarReqBody
  3414  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  3415  }
  3416  
  3417  func NewSearchCalendarReqBuilder() *SearchCalendarReqBuilder {
  3418  	builder := &SearchCalendarReqBuilder{}
  3419  	builder.apiReq = &larkcore.ApiReq{
  3420  		PathParams:  larkcore.PathParams{},
  3421  		QueryParams: larkcore.QueryParams{},
  3422  	}
  3423  	return builder
  3424  }
  3425  
  3426  // 最大返回多少记录,当使用迭代器访问时才有效
  3427  func (builder *SearchCalendarReqBuilder) Limit(limit int) *SearchCalendarReqBuilder {
  3428  	builder.limit = limit
  3429  	return builder
  3430  }
  3431  
  3432  //
  3433  //
  3434  // 示例值:10
  3435  func (builder *SearchCalendarReqBuilder) PageToken(pageToken string) *SearchCalendarReqBuilder {
  3436  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  3437  	return builder
  3438  }
  3439  
  3440  //
  3441  //
  3442  // 示例值:10
  3443  func (builder *SearchCalendarReqBuilder) PageSize(pageSize int) *SearchCalendarReqBuilder {
  3444  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  3445  	return builder
  3446  }
  3447  
  3448  // 该接口用于通过关键字查询公共日历或用户主日历。
  3449  func (builder *SearchCalendarReqBuilder) Body(body *SearchCalendarReqBody) *SearchCalendarReqBuilder {
  3450  	builder.body = body
  3451  	return builder
  3452  }
  3453  
  3454  func (builder *SearchCalendarReqBuilder) Build() *SearchCalendarReq {
  3455  	req := &SearchCalendarReq{}
  3456  	req.apiReq = &larkcore.ApiReq{}
  3457  	req.Limit = builder.limit
  3458  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  3459  	req.apiReq.Body = builder.body
  3460  	return req
  3461  }
  3462  
  3463  type SearchCalendarReqBody struct {
  3464  	Query *string `json:"query,omitempty"` // 搜索关键字
  3465  }
  3466  
  3467  type SearchCalendarReq struct {
  3468  	apiReq *larkcore.ApiReq
  3469  	Body   *SearchCalendarReqBody `body:""`
  3470  	Limit  int                    // 最多返回多少记录,只有在使用迭代器访问时,才有效
  3471  
  3472  }
  3473  
  3474  type SearchCalendarRespData struct {
  3475  	Items     []*Calendar `json:"items,omitempty"`      // 搜索命中的日历列表
  3476  	PageToken *string     `json:"page_token,omitempty"` // 下次请求需要带上的分页标记
  3477  }
  3478  
  3479  type SearchCalendarResp struct {
  3480  	*larkcore.ApiResp `json:"-"`
  3481  	larkcore.CodeError
  3482  	Data *SearchCalendarRespData `json:"data"` // 业务数据
  3483  }
  3484  
  3485  func (resp *SearchCalendarResp) Success() bool {
  3486  	return resp.Code == 0
  3487  }
  3488  
  3489  type SubscribeCalendarReqBuilder struct {
  3490  	apiReq *larkcore.ApiReq
  3491  }
  3492  
  3493  func NewSubscribeCalendarReqBuilder() *SubscribeCalendarReqBuilder {
  3494  	builder := &SubscribeCalendarReqBuilder{}
  3495  	builder.apiReq = &larkcore.ApiReq{
  3496  		PathParams:  larkcore.PathParams{},
  3497  		QueryParams: larkcore.QueryParams{},
  3498  	}
  3499  	return builder
  3500  }
  3501  
  3502  // 日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
  3503  //
  3504  // 示例值:feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn
  3505  func (builder *SubscribeCalendarReqBuilder) CalendarId(calendarId string) *SubscribeCalendarReqBuilder {
  3506  	builder.apiReq.PathParams.Set("calendar_id", fmt.Sprint(calendarId))
  3507  	return builder
  3508  }
  3509  
  3510  func (builder *SubscribeCalendarReqBuilder) Build() *SubscribeCalendarReq {
  3511  	req := &SubscribeCalendarReq{}
  3512  	req.apiReq = &larkcore.ApiReq{}
  3513  	req.apiReq.PathParams = builder.apiReq.PathParams
  3514  	return req
  3515  }
  3516  
  3517  type SubscribeCalendarReq struct {
  3518  	apiReq *larkcore.ApiReq
  3519  }
  3520  
  3521  type SubscribeCalendarRespData struct {
  3522  	Calendar *Calendar `json:"calendar,omitempty"` // 订阅的日历实体
  3523  }
  3524  
  3525  type SubscribeCalendarResp struct {
  3526  	*larkcore.ApiResp `json:"-"`
  3527  	larkcore.CodeError
  3528  	Data *SubscribeCalendarRespData `json:"data"` // 业务数据
  3529  }
  3530  
  3531  func (resp *SubscribeCalendarResp) Success() bool {
  3532  	return resp.Code == 0
  3533  }
  3534  
  3535  type SubscriptionCalendarResp struct {
  3536  	*larkcore.ApiResp `json:"-"`
  3537  	larkcore.CodeError
  3538  }
  3539  
  3540  func (resp *SubscriptionCalendarResp) Success() bool {
  3541  	return resp.Code == 0
  3542  }
  3543  
  3544  type UnsubscribeCalendarReqBuilder struct {
  3545  	apiReq *larkcore.ApiReq
  3546  }
  3547  
  3548  func NewUnsubscribeCalendarReqBuilder() *UnsubscribeCalendarReqBuilder {
  3549  	builder := &UnsubscribeCalendarReqBuilder{}
  3550  	builder.apiReq = &larkcore.ApiReq{
  3551  		PathParams:  larkcore.PathParams{},
  3552  		QueryParams: larkcore.QueryParams{},
  3553  	}
  3554  	return builder
  3555  }
  3556  
  3557  // 日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
  3558  //
  3559  // 示例值:feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn
  3560  func (builder *UnsubscribeCalendarReqBuilder) CalendarId(calendarId string) *UnsubscribeCalendarReqBuilder {
  3561  	builder.apiReq.PathParams.Set("calendar_id", fmt.Sprint(calendarId))
  3562  	return builder
  3563  }
  3564  
  3565  func (builder *UnsubscribeCalendarReqBuilder) Build() *UnsubscribeCalendarReq {
  3566  	req := &UnsubscribeCalendarReq{}
  3567  	req.apiReq = &larkcore.ApiReq{}
  3568  	req.apiReq.PathParams = builder.apiReq.PathParams
  3569  	return req
  3570  }
  3571  
  3572  type UnsubscribeCalendarReq struct {
  3573  	apiReq *larkcore.ApiReq
  3574  }
  3575  
  3576  type UnsubscribeCalendarResp struct {
  3577  	*larkcore.ApiResp `json:"-"`
  3578  	larkcore.CodeError
  3579  }
  3580  
  3581  func (resp *UnsubscribeCalendarResp) Success() bool {
  3582  	return resp.Code == 0
  3583  }
  3584  
  3585  type UnsubscriptionCalendarResp struct {
  3586  	*larkcore.ApiResp `json:"-"`
  3587  	larkcore.CodeError
  3588  }
  3589  
  3590  func (resp *UnsubscriptionCalendarResp) Success() bool {
  3591  	return resp.Code == 0
  3592  }
  3593  
  3594  type CreateCalendarAclReqBuilder struct {
  3595  	apiReq      *larkcore.ApiReq
  3596  	calendarAcl *CalendarAcl
  3597  }
  3598  
  3599  func NewCreateCalendarAclReqBuilder() *CreateCalendarAclReqBuilder {
  3600  	builder := &CreateCalendarAclReqBuilder{}
  3601  	builder.apiReq = &larkcore.ApiReq{
  3602  		PathParams:  larkcore.PathParams{},
  3603  		QueryParams: larkcore.QueryParams{},
  3604  	}
  3605  	return builder
  3606  }
  3607  
  3608  // 日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
  3609  //
  3610  // 示例值:feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn
  3611  func (builder *CreateCalendarAclReqBuilder) CalendarId(calendarId string) *CreateCalendarAclReqBuilder {
  3612  	builder.apiReq.PathParams.Set("calendar_id", fmt.Sprint(calendarId))
  3613  	return builder
  3614  }
  3615  
  3616  // 此次调用中使用的用户ID的类型
  3617  //
  3618  // 示例值:
  3619  func (builder *CreateCalendarAclReqBuilder) UserIdType(userIdType string) *CreateCalendarAclReqBuilder {
  3620  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  3621  	return builder
  3622  }
  3623  
  3624  // 该接口用于以当前身份(应用 / 用户)给日历添加访问控制权限,即日历成员。;;身份由 Header Authorization 的 Token 类型决定。
  3625  func (builder *CreateCalendarAclReqBuilder) CalendarAcl(calendarAcl *CalendarAcl) *CreateCalendarAclReqBuilder {
  3626  	builder.calendarAcl = calendarAcl
  3627  	return builder
  3628  }
  3629  
  3630  func (builder *CreateCalendarAclReqBuilder) Build() *CreateCalendarAclReq {
  3631  	req := &CreateCalendarAclReq{}
  3632  	req.apiReq = &larkcore.ApiReq{}
  3633  	req.apiReq.PathParams = builder.apiReq.PathParams
  3634  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  3635  	req.apiReq.Body = builder.calendarAcl
  3636  	return req
  3637  }
  3638  
  3639  type CreateCalendarAclReq struct {
  3640  	apiReq      *larkcore.ApiReq
  3641  	CalendarAcl *CalendarAcl `body:""`
  3642  }
  3643  
  3644  type CreateCalendarAclRespData struct {
  3645  	AclId *string   `json:"acl_id,omitempty"` // acl资源ID
  3646  	Role  *string   `json:"role,omitempty"`   // 对日历的访问权限
  3647  	Scope *AclScope `json:"scope,omitempty"`  // 权限范围
  3648  }
  3649  
  3650  type CreateCalendarAclResp struct {
  3651  	*larkcore.ApiResp `json:"-"`
  3652  	larkcore.CodeError
  3653  	Data *CreateCalendarAclRespData `json:"data"` // 业务数据
  3654  }
  3655  
  3656  func (resp *CreateCalendarAclResp) Success() bool {
  3657  	return resp.Code == 0
  3658  }
  3659  
  3660  type DeleteCalendarAclReqBuilder struct {
  3661  	apiReq *larkcore.ApiReq
  3662  }
  3663  
  3664  func NewDeleteCalendarAclReqBuilder() *DeleteCalendarAclReqBuilder {
  3665  	builder := &DeleteCalendarAclReqBuilder{}
  3666  	builder.apiReq = &larkcore.ApiReq{
  3667  		PathParams:  larkcore.PathParams{},
  3668  		QueryParams: larkcore.QueryParams{},
  3669  	}
  3670  	return builder
  3671  }
  3672  
  3673  // 日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
  3674  //
  3675  // 示例值:feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn
  3676  func (builder *DeleteCalendarAclReqBuilder) CalendarId(calendarId string) *DeleteCalendarAclReqBuilder {
  3677  	builder.apiReq.PathParams.Set("calendar_id", fmt.Sprint(calendarId))
  3678  	return builder
  3679  }
  3680  
  3681  // acl资源ID。参见[ACL ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-acl/introduction)
  3682  //
  3683  // 示例值:user_xxxxxx
  3684  func (builder *DeleteCalendarAclReqBuilder) AclId(aclId string) *DeleteCalendarAclReqBuilder {
  3685  	builder.apiReq.PathParams.Set("acl_id", fmt.Sprint(aclId))
  3686  	return builder
  3687  }
  3688  
  3689  func (builder *DeleteCalendarAclReqBuilder) Build() *DeleteCalendarAclReq {
  3690  	req := &DeleteCalendarAclReq{}
  3691  	req.apiReq = &larkcore.ApiReq{}
  3692  	req.apiReq.PathParams = builder.apiReq.PathParams
  3693  	return req
  3694  }
  3695  
  3696  type DeleteCalendarAclReq struct {
  3697  	apiReq *larkcore.ApiReq
  3698  }
  3699  
  3700  type DeleteCalendarAclResp struct {
  3701  	*larkcore.ApiResp `json:"-"`
  3702  	larkcore.CodeError
  3703  }
  3704  
  3705  func (resp *DeleteCalendarAclResp) Success() bool {
  3706  	return resp.Code == 0
  3707  }
  3708  
  3709  type ListCalendarAclReqBuilder struct {
  3710  	apiReq *larkcore.ApiReq
  3711  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  3712  }
  3713  
  3714  func NewListCalendarAclReqBuilder() *ListCalendarAclReqBuilder {
  3715  	builder := &ListCalendarAclReqBuilder{}
  3716  	builder.apiReq = &larkcore.ApiReq{
  3717  		PathParams:  larkcore.PathParams{},
  3718  		QueryParams: larkcore.QueryParams{},
  3719  	}
  3720  	return builder
  3721  }
  3722  
  3723  // 最大返回多少记录,当使用迭代器访问时才有效
  3724  func (builder *ListCalendarAclReqBuilder) Limit(limit int) *ListCalendarAclReqBuilder {
  3725  	builder.limit = limit
  3726  	return builder
  3727  }
  3728  
  3729  // 日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
  3730  //
  3731  // 示例值:feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn
  3732  func (builder *ListCalendarAclReqBuilder) CalendarId(calendarId string) *ListCalendarAclReqBuilder {
  3733  	builder.apiReq.PathParams.Set("calendar_id", fmt.Sprint(calendarId))
  3734  	return builder
  3735  }
  3736  
  3737  // 此次调用中使用的用户ID的类型
  3738  //
  3739  // 示例值:
  3740  func (builder *ListCalendarAclReqBuilder) UserIdType(userIdType string) *ListCalendarAclReqBuilder {
  3741  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  3742  	return builder
  3743  }
  3744  
  3745  //
  3746  //
  3747  // 示例值:xxx
  3748  func (builder *ListCalendarAclReqBuilder) PageToken(pageToken string) *ListCalendarAclReqBuilder {
  3749  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  3750  	return builder
  3751  }
  3752  
  3753  //
  3754  //
  3755  // 示例值:10,小于10取10
  3756  func (builder *ListCalendarAclReqBuilder) PageSize(pageSize int) *ListCalendarAclReqBuilder {
  3757  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  3758  	return builder
  3759  }
  3760  
  3761  func (builder *ListCalendarAclReqBuilder) Build() *ListCalendarAclReq {
  3762  	req := &ListCalendarAclReq{}
  3763  	req.apiReq = &larkcore.ApiReq{}
  3764  	req.Limit = builder.limit
  3765  	req.apiReq.PathParams = builder.apiReq.PathParams
  3766  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  3767  	return req
  3768  }
  3769  
  3770  type ListCalendarAclReq struct {
  3771  	apiReq *larkcore.ApiReq
  3772  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
  3773  
  3774  }
  3775  
  3776  type ListCalendarAclRespData struct {
  3777  	Acls      []*CalendarAcl `json:"acls,omitempty"`       // 入参日历对应的acl列表
  3778  	HasMore   *bool          `json:"has_more,omitempty"`   // 是否有下一页数据
  3779  	PageToken *string        `json:"page_token,omitempty"` // 下次请求需要带上的分页标记,90 天有效期
  3780  }
  3781  
  3782  type ListCalendarAclResp struct {
  3783  	*larkcore.ApiResp `json:"-"`
  3784  	larkcore.CodeError
  3785  	Data *ListCalendarAclRespData `json:"data"` // 业务数据
  3786  }
  3787  
  3788  func (resp *ListCalendarAclResp) Success() bool {
  3789  	return resp.Code == 0
  3790  }
  3791  
  3792  type SubscriptionCalendarAclReqBuilder struct {
  3793  	apiReq *larkcore.ApiReq
  3794  }
  3795  
  3796  func NewSubscriptionCalendarAclReqBuilder() *SubscriptionCalendarAclReqBuilder {
  3797  	builder := &SubscriptionCalendarAclReqBuilder{}
  3798  	builder.apiReq = &larkcore.ApiReq{
  3799  		PathParams:  larkcore.PathParams{},
  3800  		QueryParams: larkcore.QueryParams{},
  3801  	}
  3802  	return builder
  3803  }
  3804  
  3805  // 日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
  3806  //
  3807  // 示例值:feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn
  3808  func (builder *SubscriptionCalendarAclReqBuilder) CalendarId(calendarId string) *SubscriptionCalendarAclReqBuilder {
  3809  	builder.apiReq.PathParams.Set("calendar_id", fmt.Sprint(calendarId))
  3810  	return builder
  3811  }
  3812  
  3813  func (builder *SubscriptionCalendarAclReqBuilder) Build() *SubscriptionCalendarAclReq {
  3814  	req := &SubscriptionCalendarAclReq{}
  3815  	req.apiReq = &larkcore.ApiReq{}
  3816  	req.apiReq.PathParams = builder.apiReq.PathParams
  3817  	return req
  3818  }
  3819  
  3820  type SubscriptionCalendarAclReq struct {
  3821  	apiReq *larkcore.ApiReq
  3822  }
  3823  
  3824  type SubscriptionCalendarAclResp struct {
  3825  	*larkcore.ApiResp `json:"-"`
  3826  	larkcore.CodeError
  3827  }
  3828  
  3829  func (resp *SubscriptionCalendarAclResp) Success() bool {
  3830  	return resp.Code == 0
  3831  }
  3832  
  3833  type UnsubscriptionCalendarAclReqBuilder struct {
  3834  	apiReq *larkcore.ApiReq
  3835  }
  3836  
  3837  func NewUnsubscriptionCalendarAclReqBuilder() *UnsubscriptionCalendarAclReqBuilder {
  3838  	builder := &UnsubscriptionCalendarAclReqBuilder{}
  3839  	builder.apiReq = &larkcore.ApiReq{
  3840  		PathParams:  larkcore.PathParams{},
  3841  		QueryParams: larkcore.QueryParams{},
  3842  	}
  3843  	return builder
  3844  }
  3845  
  3846  // 日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
  3847  //
  3848  // 示例值:feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn
  3849  func (builder *UnsubscriptionCalendarAclReqBuilder) CalendarId(calendarId string) *UnsubscriptionCalendarAclReqBuilder {
  3850  	builder.apiReq.PathParams.Set("calendar_id", fmt.Sprint(calendarId))
  3851  	return builder
  3852  }
  3853  
  3854  func (builder *UnsubscriptionCalendarAclReqBuilder) Build() *UnsubscriptionCalendarAclReq {
  3855  	req := &UnsubscriptionCalendarAclReq{}
  3856  	req.apiReq = &larkcore.ApiReq{}
  3857  	req.apiReq.PathParams = builder.apiReq.PathParams
  3858  	return req
  3859  }
  3860  
  3861  type UnsubscriptionCalendarAclReq struct {
  3862  	apiReq *larkcore.ApiReq
  3863  }
  3864  
  3865  type UnsubscriptionCalendarAclResp struct {
  3866  	*larkcore.ApiResp `json:"-"`
  3867  	larkcore.CodeError
  3868  }
  3869  
  3870  func (resp *UnsubscriptionCalendarAclResp) Success() bool {
  3871  	return resp.Code == 0
  3872  }
  3873  
  3874  type CreateCalendarEventReqBuilder struct {
  3875  	apiReq        *larkcore.ApiReq
  3876  	calendarEvent *CalendarEvent
  3877  }
  3878  
  3879  func NewCreateCalendarEventReqBuilder() *CreateCalendarEventReqBuilder {
  3880  	builder := &CreateCalendarEventReqBuilder{}
  3881  	builder.apiReq = &larkcore.ApiReq{
  3882  		PathParams:  larkcore.PathParams{},
  3883  		QueryParams: larkcore.QueryParams{},
  3884  	}
  3885  	return builder
  3886  }
  3887  
  3888  // 日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
  3889  //
  3890  // 示例值:feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn
  3891  func (builder *CreateCalendarEventReqBuilder) CalendarId(calendarId string) *CreateCalendarEventReqBuilder {
  3892  	builder.apiReq.PathParams.Set("calendar_id", fmt.Sprint(calendarId))
  3893  	return builder
  3894  }
  3895  
  3896  // 该接口用于以当前身份(应用 / 用户)在日历上创建一个日程。;;身份由 Header Authorization 的 Token 类型决定。
  3897  func (builder *CreateCalendarEventReqBuilder) CalendarEvent(calendarEvent *CalendarEvent) *CreateCalendarEventReqBuilder {
  3898  	builder.calendarEvent = calendarEvent
  3899  	return builder
  3900  }
  3901  
  3902  func (builder *CreateCalendarEventReqBuilder) Build() *CreateCalendarEventReq {
  3903  	req := &CreateCalendarEventReq{}
  3904  	req.apiReq = &larkcore.ApiReq{}
  3905  	req.apiReq.PathParams = builder.apiReq.PathParams
  3906  	req.apiReq.Body = builder.calendarEvent
  3907  	return req
  3908  }
  3909  
  3910  type CreateCalendarEventReq struct {
  3911  	apiReq        *larkcore.ApiReq
  3912  	CalendarEvent *CalendarEvent `body:""`
  3913  }
  3914  
  3915  type CreateCalendarEventRespData struct {
  3916  	Event *CalendarEvent `json:"event,omitempty"` // 新创建的日程实体
  3917  }
  3918  
  3919  type CreateCalendarEventResp struct {
  3920  	*larkcore.ApiResp `json:"-"`
  3921  	larkcore.CodeError
  3922  	Data *CreateCalendarEventRespData `json:"data"` // 业务数据
  3923  }
  3924  
  3925  func (resp *CreateCalendarEventResp) Success() bool {
  3926  	return resp.Code == 0
  3927  }
  3928  
  3929  type DeleteCalendarEventReqBuilder struct {
  3930  	apiReq *larkcore.ApiReq
  3931  }
  3932  
  3933  func NewDeleteCalendarEventReqBuilder() *DeleteCalendarEventReqBuilder {
  3934  	builder := &DeleteCalendarEventReqBuilder{}
  3935  	builder.apiReq = &larkcore.ApiReq{
  3936  		PathParams:  larkcore.PathParams{},
  3937  		QueryParams: larkcore.QueryParams{},
  3938  	}
  3939  	return builder
  3940  }
  3941  
  3942  // 日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
  3943  //
  3944  // 示例值:feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn
  3945  func (builder *DeleteCalendarEventReqBuilder) CalendarId(calendarId string) *DeleteCalendarEventReqBuilder {
  3946  	builder.apiReq.PathParams.Set("calendar_id", fmt.Sprint(calendarId))
  3947  	return builder
  3948  }
  3949  
  3950  // 日程ID。参见[日程ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event/introduction)
  3951  //
  3952  // 示例值:xxxxxxxxx_0
  3953  func (builder *DeleteCalendarEventReqBuilder) EventId(eventId string) *DeleteCalendarEventReqBuilder {
  3954  	builder.apiReq.PathParams.Set("event_id", fmt.Sprint(eventId))
  3955  	return builder
  3956  }
  3957  
  3958  // 删除日程是否给日程参与人发送bot通知,默认为true
  3959  //
  3960  // 示例值:false
  3961  func (builder *DeleteCalendarEventReqBuilder) NeedNotification(needNotification bool) *DeleteCalendarEventReqBuilder {
  3962  	builder.apiReq.QueryParams.Set("need_notification", fmt.Sprint(needNotification))
  3963  	return builder
  3964  }
  3965  
  3966  func (builder *DeleteCalendarEventReqBuilder) Build() *DeleteCalendarEventReq {
  3967  	req := &DeleteCalendarEventReq{}
  3968  	req.apiReq = &larkcore.ApiReq{}
  3969  	req.apiReq.PathParams = builder.apiReq.PathParams
  3970  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  3971  	return req
  3972  }
  3973  
  3974  type DeleteCalendarEventReq struct {
  3975  	apiReq *larkcore.ApiReq
  3976  }
  3977  
  3978  type DeleteCalendarEventResp struct {
  3979  	*larkcore.ApiResp `json:"-"`
  3980  	larkcore.CodeError
  3981  }
  3982  
  3983  func (resp *DeleteCalendarEventResp) Success() bool {
  3984  	return resp.Code == 0
  3985  }
  3986  
  3987  type GetCalendarEventReqBuilder struct {
  3988  	apiReq *larkcore.ApiReq
  3989  }
  3990  
  3991  func NewGetCalendarEventReqBuilder() *GetCalendarEventReqBuilder {
  3992  	builder := &GetCalendarEventReqBuilder{}
  3993  	builder.apiReq = &larkcore.ApiReq{
  3994  		PathParams:  larkcore.PathParams{},
  3995  		QueryParams: larkcore.QueryParams{},
  3996  	}
  3997  	return builder
  3998  }
  3999  
  4000  // 日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
  4001  //
  4002  // 示例值:feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn
  4003  func (builder *GetCalendarEventReqBuilder) CalendarId(calendarId string) *GetCalendarEventReqBuilder {
  4004  	builder.apiReq.PathParams.Set("calendar_id", fmt.Sprint(calendarId))
  4005  	return builder
  4006  }
  4007  
  4008  // 日程ID。参见[日程ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event/introduction)
  4009  //
  4010  // 示例值:xxxxxxxxx_0
  4011  func (builder *GetCalendarEventReqBuilder) EventId(eventId string) *GetCalendarEventReqBuilder {
  4012  	builder.apiReq.PathParams.Set("event_id", fmt.Sprint(eventId))
  4013  	return builder
  4014  }
  4015  
  4016  func (builder *GetCalendarEventReqBuilder) Build() *GetCalendarEventReq {
  4017  	req := &GetCalendarEventReq{}
  4018  	req.apiReq = &larkcore.ApiReq{}
  4019  	req.apiReq.PathParams = builder.apiReq.PathParams
  4020  	return req
  4021  }
  4022  
  4023  type GetCalendarEventReq struct {
  4024  	apiReq *larkcore.ApiReq
  4025  }
  4026  
  4027  type GetCalendarEventRespData struct {
  4028  	Event *CalendarEvent `json:"event,omitempty"` // 日程实体
  4029  }
  4030  
  4031  type GetCalendarEventResp struct {
  4032  	*larkcore.ApiResp `json:"-"`
  4033  	larkcore.CodeError
  4034  	Data *GetCalendarEventRespData `json:"data"` // 业务数据
  4035  }
  4036  
  4037  func (resp *GetCalendarEventResp) Success() bool {
  4038  	return resp.Code == 0
  4039  }
  4040  
  4041  type ListCalendarEventReqBuilder struct {
  4042  	apiReq *larkcore.ApiReq
  4043  }
  4044  
  4045  func NewListCalendarEventReqBuilder() *ListCalendarEventReqBuilder {
  4046  	builder := &ListCalendarEventReqBuilder{}
  4047  	builder.apiReq = &larkcore.ApiReq{
  4048  		PathParams:  larkcore.PathParams{},
  4049  		QueryParams: larkcore.QueryParams{},
  4050  	}
  4051  	return builder
  4052  }
  4053  
  4054  // 日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
  4055  //
  4056  // 示例值:feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn
  4057  func (builder *ListCalendarEventReqBuilder) CalendarId(calendarId string) *ListCalendarEventReqBuilder {
  4058  	builder.apiReq.PathParams.Set("calendar_id", fmt.Sprint(calendarId))
  4059  	return builder
  4060  }
  4061  
  4062  // 一次请求要求返回最大数量,默认500,取值范围为[50, 1000]
  4063  //
  4064  // 示例值:50
  4065  func (builder *ListCalendarEventReqBuilder) PageSize(pageSize int) *ListCalendarEventReqBuilder {
  4066  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  4067  	return builder
  4068  }
  4069  
  4070  // 拉取anchor_time之后的日程,为timestamp
  4071  //
  4072  // 示例值:1609430400
  4073  func (builder *ListCalendarEventReqBuilder) AnchorTime(anchorTime string) *ListCalendarEventReqBuilder {
  4074  	builder.apiReq.QueryParams.Set("anchor_time", fmt.Sprint(anchorTime))
  4075  	return builder
  4076  }
  4077  
  4078  // 上次请求Response返回的分页标记,首次请求时为空
  4079  //
  4080  // 示例值:ListCalendarsPageToken_1632452910_1632539310
  4081  func (builder *ListCalendarEventReqBuilder) PageToken(pageToken string) *ListCalendarEventReqBuilder {
  4082  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  4083  	return builder
  4084  }
  4085  
  4086  // 上次请求Response返回的增量同步标记,分页请求未结束时为空
  4087  //
  4088  // 示例值:ListCalendarsSyncToken_1632452910
  4089  func (builder *ListCalendarEventReqBuilder) SyncToken(syncToken string) *ListCalendarEventReqBuilder {
  4090  	builder.apiReq.QueryParams.Set("sync_token", fmt.Sprint(syncToken))
  4091  	return builder
  4092  }
  4093  
  4094  // 日程开始Unix时间戳,单位为秒
  4095  //
  4096  // 示例值:1631777271
  4097  func (builder *ListCalendarEventReqBuilder) StartTime(startTime string) *ListCalendarEventReqBuilder {
  4098  	builder.apiReq.QueryParams.Set("start_time", fmt.Sprint(startTime))
  4099  	return builder
  4100  }
  4101  
  4102  // 日程结束Unix时间戳,单位为秒
  4103  //
  4104  // 示例值:1631777271
  4105  func (builder *ListCalendarEventReqBuilder) EndTime(endTime string) *ListCalendarEventReqBuilder {
  4106  	builder.apiReq.QueryParams.Set("end_time", fmt.Sprint(endTime))
  4107  	return builder
  4108  }
  4109  
  4110  func (builder *ListCalendarEventReqBuilder) Build() *ListCalendarEventReq {
  4111  	req := &ListCalendarEventReq{}
  4112  	req.apiReq = &larkcore.ApiReq{}
  4113  	req.apiReq.PathParams = builder.apiReq.PathParams
  4114  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4115  	return req
  4116  }
  4117  
  4118  type ListCalendarEventReq struct {
  4119  	apiReq *larkcore.ApiReq
  4120  }
  4121  
  4122  type ListCalendarEventRespData struct {
  4123  	HasMore   *bool            `json:"has_more,omitempty"`   // 是否有下一页数据
  4124  	PageToken *string          `json:"page_token,omitempty"` // 下次请求需要带上的分页标记,90 天有效期
  4125  	SyncToken *string          `json:"sync_token,omitempty"` // 下次请求需要带上的增量同步标记,90 天有效期
  4126  	Items     []*CalendarEvent `json:"items,omitempty"`      // 日程列表
  4127  }
  4128  
  4129  type ListCalendarEventResp struct {
  4130  	*larkcore.ApiResp `json:"-"`
  4131  	larkcore.CodeError
  4132  	Data *ListCalendarEventRespData `json:"data"` // 业务数据
  4133  }
  4134  
  4135  func (resp *ListCalendarEventResp) Success() bool {
  4136  	return resp.Code == 0
  4137  }
  4138  
  4139  type PatchCalendarEventReqBuilder struct {
  4140  	apiReq        *larkcore.ApiReq
  4141  	calendarEvent *CalendarEvent
  4142  }
  4143  
  4144  func NewPatchCalendarEventReqBuilder() *PatchCalendarEventReqBuilder {
  4145  	builder := &PatchCalendarEventReqBuilder{}
  4146  	builder.apiReq = &larkcore.ApiReq{
  4147  		PathParams:  larkcore.PathParams{},
  4148  		QueryParams: larkcore.QueryParams{},
  4149  	}
  4150  	return builder
  4151  }
  4152  
  4153  // 日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
  4154  //
  4155  // 示例值:feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn
  4156  func (builder *PatchCalendarEventReqBuilder) CalendarId(calendarId string) *PatchCalendarEventReqBuilder {
  4157  	builder.apiReq.PathParams.Set("calendar_id", fmt.Sprint(calendarId))
  4158  	return builder
  4159  }
  4160  
  4161  // 日程ID。参见[日程ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event/introduction)
  4162  //
  4163  // 示例值:00592a0e-7edf-4678-bc9d-1b77383ef08e_0
  4164  func (builder *PatchCalendarEventReqBuilder) EventId(eventId string) *PatchCalendarEventReqBuilder {
  4165  	builder.apiReq.PathParams.Set("event_id", fmt.Sprint(eventId))
  4166  	return builder
  4167  }
  4168  
  4169  // 该接口用于以当前身份(应用 / 用户)更新日历上的一个日程。;;身份由 Header Authorization 的 Token 类型决定。
  4170  func (builder *PatchCalendarEventReqBuilder) CalendarEvent(calendarEvent *CalendarEvent) *PatchCalendarEventReqBuilder {
  4171  	builder.calendarEvent = calendarEvent
  4172  	return builder
  4173  }
  4174  
  4175  func (builder *PatchCalendarEventReqBuilder) Build() *PatchCalendarEventReq {
  4176  	req := &PatchCalendarEventReq{}
  4177  	req.apiReq = &larkcore.ApiReq{}
  4178  	req.apiReq.PathParams = builder.apiReq.PathParams
  4179  	req.apiReq.Body = builder.calendarEvent
  4180  	return req
  4181  }
  4182  
  4183  type PatchCalendarEventReq struct {
  4184  	apiReq        *larkcore.ApiReq
  4185  	CalendarEvent *CalendarEvent `body:""`
  4186  }
  4187  
  4188  type PatchCalendarEventRespData struct {
  4189  	Event *CalendarEvent `json:"event,omitempty"` // 更新后的日程实体
  4190  }
  4191  
  4192  type PatchCalendarEventResp struct {
  4193  	*larkcore.ApiResp `json:"-"`
  4194  	larkcore.CodeError
  4195  	Data *PatchCalendarEventRespData `json:"data"` // 业务数据
  4196  }
  4197  
  4198  func (resp *PatchCalendarEventResp) Success() bool {
  4199  	return resp.Code == 0
  4200  }
  4201  
  4202  type SearchCalendarEventReqBodyBuilder struct {
  4203  	query      string // 搜索关键字
  4204  	queryFlag  bool
  4205  	filter     *EventSearchFilter // 搜索过滤器
  4206  	filterFlag bool
  4207  }
  4208  
  4209  func NewSearchCalendarEventReqBodyBuilder() *SearchCalendarEventReqBodyBuilder {
  4210  	builder := &SearchCalendarEventReqBodyBuilder{}
  4211  	return builder
  4212  }
  4213  
  4214  // 搜索关键字
  4215  //
  4216  //示例值:query words
  4217  func (builder *SearchCalendarEventReqBodyBuilder) Query(query string) *SearchCalendarEventReqBodyBuilder {
  4218  	builder.query = query
  4219  	builder.queryFlag = true
  4220  	return builder
  4221  }
  4222  
  4223  // 搜索过滤器
  4224  //
  4225  //示例值:
  4226  func (builder *SearchCalendarEventReqBodyBuilder) Filter(filter *EventSearchFilter) *SearchCalendarEventReqBodyBuilder {
  4227  	builder.filter = filter
  4228  	builder.filterFlag = true
  4229  	return builder
  4230  }
  4231  
  4232  func (builder *SearchCalendarEventReqBodyBuilder) Build() *SearchCalendarEventReqBody {
  4233  	req := &SearchCalendarEventReqBody{}
  4234  	if builder.queryFlag {
  4235  		req.Query = &builder.query
  4236  	}
  4237  	if builder.filterFlag {
  4238  		req.Filter = builder.filter
  4239  	}
  4240  	return req
  4241  }
  4242  
  4243  type SearchCalendarEventPathReqBodyBuilder struct {
  4244  	query      string // 搜索关键字
  4245  	queryFlag  bool
  4246  	filter     *EventSearchFilter // 搜索过滤器
  4247  	filterFlag bool
  4248  }
  4249  
  4250  func NewSearchCalendarEventPathReqBodyBuilder() *SearchCalendarEventPathReqBodyBuilder {
  4251  	builder := &SearchCalendarEventPathReqBodyBuilder{}
  4252  	return builder
  4253  }
  4254  
  4255  // 搜索关键字
  4256  //
  4257  // 示例值:query words
  4258  func (builder *SearchCalendarEventPathReqBodyBuilder) Query(query string) *SearchCalendarEventPathReqBodyBuilder {
  4259  	builder.query = query
  4260  	builder.queryFlag = true
  4261  	return builder
  4262  }
  4263  
  4264  // 搜索过滤器
  4265  //
  4266  // 示例值:
  4267  func (builder *SearchCalendarEventPathReqBodyBuilder) Filter(filter *EventSearchFilter) *SearchCalendarEventPathReqBodyBuilder {
  4268  	builder.filter = filter
  4269  	builder.filterFlag = true
  4270  	return builder
  4271  }
  4272  
  4273  func (builder *SearchCalendarEventPathReqBodyBuilder) Build() (*SearchCalendarEventReqBody, error) {
  4274  	req := &SearchCalendarEventReqBody{}
  4275  	if builder.queryFlag {
  4276  		req.Query = &builder.query
  4277  	}
  4278  	if builder.filterFlag {
  4279  		req.Filter = builder.filter
  4280  	}
  4281  	return req, nil
  4282  }
  4283  
  4284  type SearchCalendarEventReqBuilder struct {
  4285  	apiReq *larkcore.ApiReq
  4286  	body   *SearchCalendarEventReqBody
  4287  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  4288  }
  4289  
  4290  func NewSearchCalendarEventReqBuilder() *SearchCalendarEventReqBuilder {
  4291  	builder := &SearchCalendarEventReqBuilder{}
  4292  	builder.apiReq = &larkcore.ApiReq{
  4293  		PathParams:  larkcore.PathParams{},
  4294  		QueryParams: larkcore.QueryParams{},
  4295  	}
  4296  	return builder
  4297  }
  4298  
  4299  // 最大返回多少记录,当使用迭代器访问时才有效
  4300  func (builder *SearchCalendarEventReqBuilder) Limit(limit int) *SearchCalendarEventReqBuilder {
  4301  	builder.limit = limit
  4302  	return builder
  4303  }
  4304  
  4305  // 日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
  4306  //
  4307  // 示例值:feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn
  4308  func (builder *SearchCalendarEventReqBuilder) CalendarId(calendarId string) *SearchCalendarEventReqBuilder {
  4309  	builder.apiReq.PathParams.Set("calendar_id", fmt.Sprint(calendarId))
  4310  	return builder
  4311  }
  4312  
  4313  // 此次调用中使用的用户ID的类型
  4314  //
  4315  // 示例值:
  4316  func (builder *SearchCalendarEventReqBuilder) UserIdType(userIdType string) *SearchCalendarEventReqBuilder {
  4317  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  4318  	return builder
  4319  }
  4320  
  4321  //
  4322  //
  4323  // 示例值:xxxxx
  4324  func (builder *SearchCalendarEventReqBuilder) PageToken(pageToken string) *SearchCalendarEventReqBuilder {
  4325  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  4326  	return builder
  4327  }
  4328  
  4329  //
  4330  //
  4331  // 示例值:10
  4332  func (builder *SearchCalendarEventReqBuilder) PageSize(pageSize int) *SearchCalendarEventReqBuilder {
  4333  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  4334  	return builder
  4335  }
  4336  
  4337  // 该接口用于以用户身份搜索某日历下的相关日程。;;身份由 Header Authorization 的 Token 类型决定。
  4338  func (builder *SearchCalendarEventReqBuilder) Body(body *SearchCalendarEventReqBody) *SearchCalendarEventReqBuilder {
  4339  	builder.body = body
  4340  	return builder
  4341  }
  4342  
  4343  func (builder *SearchCalendarEventReqBuilder) Build() *SearchCalendarEventReq {
  4344  	req := &SearchCalendarEventReq{}
  4345  	req.apiReq = &larkcore.ApiReq{}
  4346  	req.Limit = builder.limit
  4347  	req.apiReq.PathParams = builder.apiReq.PathParams
  4348  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4349  	req.apiReq.Body = builder.body
  4350  	return req
  4351  }
  4352  
  4353  type SearchCalendarEventReqBody struct {
  4354  	Query  *string            `json:"query,omitempty"`  // 搜索关键字
  4355  	Filter *EventSearchFilter `json:"filter,omitempty"` // 搜索过滤器
  4356  }
  4357  
  4358  type SearchCalendarEventReq struct {
  4359  	apiReq *larkcore.ApiReq
  4360  	Body   *SearchCalendarEventReqBody `body:""`
  4361  	Limit  int                         // 最多返回多少记录,只有在使用迭代器访问时,才有效
  4362  
  4363  }
  4364  
  4365  type SearchCalendarEventRespData struct {
  4366  	Items     []*CalendarEvent `json:"items,omitempty"`      // 搜索命中的日程列表
  4367  	PageToken *string          `json:"page_token,omitempty"` // 下次请求需要带上的分页标记
  4368  }
  4369  
  4370  type SearchCalendarEventResp struct {
  4371  	*larkcore.ApiResp `json:"-"`
  4372  	larkcore.CodeError
  4373  	Data *SearchCalendarEventRespData `json:"data"` // 业务数据
  4374  }
  4375  
  4376  func (resp *SearchCalendarEventResp) Success() bool {
  4377  	return resp.Code == 0
  4378  }
  4379  
  4380  type SubscriptionCalendarEventReqBuilder struct {
  4381  	apiReq *larkcore.ApiReq
  4382  }
  4383  
  4384  func NewSubscriptionCalendarEventReqBuilder() *SubscriptionCalendarEventReqBuilder {
  4385  	builder := &SubscriptionCalendarEventReqBuilder{}
  4386  	builder.apiReq = &larkcore.ApiReq{
  4387  		PathParams:  larkcore.PathParams{},
  4388  		QueryParams: larkcore.QueryParams{},
  4389  	}
  4390  	return builder
  4391  }
  4392  
  4393  // 日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
  4394  //
  4395  // 示例值:feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn
  4396  func (builder *SubscriptionCalendarEventReqBuilder) CalendarId(calendarId string) *SubscriptionCalendarEventReqBuilder {
  4397  	builder.apiReq.PathParams.Set("calendar_id", fmt.Sprint(calendarId))
  4398  	return builder
  4399  }
  4400  
  4401  func (builder *SubscriptionCalendarEventReqBuilder) Build() *SubscriptionCalendarEventReq {
  4402  	req := &SubscriptionCalendarEventReq{}
  4403  	req.apiReq = &larkcore.ApiReq{}
  4404  	req.apiReq.PathParams = builder.apiReq.PathParams
  4405  	return req
  4406  }
  4407  
  4408  type SubscriptionCalendarEventReq struct {
  4409  	apiReq *larkcore.ApiReq
  4410  }
  4411  
  4412  type SubscriptionCalendarEventResp struct {
  4413  	*larkcore.ApiResp `json:"-"`
  4414  	larkcore.CodeError
  4415  }
  4416  
  4417  func (resp *SubscriptionCalendarEventResp) Success() bool {
  4418  	return resp.Code == 0
  4419  }
  4420  
  4421  type UnsubscriptionCalendarEventReqBuilder struct {
  4422  	apiReq *larkcore.ApiReq
  4423  }
  4424  
  4425  func NewUnsubscriptionCalendarEventReqBuilder() *UnsubscriptionCalendarEventReqBuilder {
  4426  	builder := &UnsubscriptionCalendarEventReqBuilder{}
  4427  	builder.apiReq = &larkcore.ApiReq{
  4428  		PathParams:  larkcore.PathParams{},
  4429  		QueryParams: larkcore.QueryParams{},
  4430  	}
  4431  	return builder
  4432  }
  4433  
  4434  // 日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
  4435  //
  4436  // 示例值:feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn
  4437  func (builder *UnsubscriptionCalendarEventReqBuilder) CalendarId(calendarId string) *UnsubscriptionCalendarEventReqBuilder {
  4438  	builder.apiReq.PathParams.Set("calendar_id", fmt.Sprint(calendarId))
  4439  	return builder
  4440  }
  4441  
  4442  func (builder *UnsubscriptionCalendarEventReqBuilder) Build() *UnsubscriptionCalendarEventReq {
  4443  	req := &UnsubscriptionCalendarEventReq{}
  4444  	req.apiReq = &larkcore.ApiReq{}
  4445  	req.apiReq.PathParams = builder.apiReq.PathParams
  4446  	return req
  4447  }
  4448  
  4449  type UnsubscriptionCalendarEventReq struct {
  4450  	apiReq *larkcore.ApiReq
  4451  }
  4452  
  4453  type UnsubscriptionCalendarEventResp struct {
  4454  	*larkcore.ApiResp `json:"-"`
  4455  	larkcore.CodeError
  4456  }
  4457  
  4458  func (resp *UnsubscriptionCalendarEventResp) Success() bool {
  4459  	return resp.Code == 0
  4460  }
  4461  
  4462  type BatchDeleteCalendarEventAttendeeReqBodyBuilder struct {
  4463  	attendeeIds                []string // 要移除的参与人 ID 列表。参见[参与人ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event-attendee/introduction#4998889c)
  4464  	attendeeIdsFlag            bool
  4465  	deleteIds                  []*CalendarEventAttendeeId // 需要删除的参与人类型实体ID,作为attendee_ids字段的补充。
  4466  	deleteIdsFlag              bool
  4467  	needNotification           bool // 删除日程参与人时是否要给参与人发送bot通知,默认为true
  4468  	needNotificationFlag       bool
  4469  	instanceStartTimeAdmin     string // 使用管理员身份访问时要修改的实例
  4470  	instanceStartTimeAdminFlag bool
  4471  	isEnableAdmin              bool // 是否启用管理员身份(需先在管理后台设置某人为会议室管理员)
  4472  	isEnableAdminFlag          bool
  4473  }
  4474  
  4475  func NewBatchDeleteCalendarEventAttendeeReqBodyBuilder() *BatchDeleteCalendarEventAttendeeReqBodyBuilder {
  4476  	builder := &BatchDeleteCalendarEventAttendeeReqBodyBuilder{}
  4477  	return builder
  4478  }
  4479  
  4480  // 要移除的参与人 ID 列表。参见[参与人ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event-attendee/introduction#4998889c)
  4481  //
  4482  //示例值:["user_xxxxx", "chat_xxxxx", "resource_xxxxx", "third_party_xxxxx"]
  4483  func (builder *BatchDeleteCalendarEventAttendeeReqBodyBuilder) AttendeeIds(attendeeIds []string) *BatchDeleteCalendarEventAttendeeReqBodyBuilder {
  4484  	builder.attendeeIds = attendeeIds
  4485  	builder.attendeeIdsFlag = true
  4486  	return builder
  4487  }
  4488  
  4489  // 需要删除的参与人类型实体ID,作为attendee_ids字段的补充。
  4490  //
  4491  //示例值:
  4492  func (builder *BatchDeleteCalendarEventAttendeeReqBodyBuilder) DeleteIds(deleteIds []*CalendarEventAttendeeId) *BatchDeleteCalendarEventAttendeeReqBodyBuilder {
  4493  	builder.deleteIds = deleteIds
  4494  	builder.deleteIdsFlag = true
  4495  	return builder
  4496  }
  4497  
  4498  // 删除日程参与人时是否要给参与人发送bot通知,默认为true
  4499  //
  4500  //示例值:false
  4501  func (builder *BatchDeleteCalendarEventAttendeeReqBodyBuilder) NeedNotification(needNotification bool) *BatchDeleteCalendarEventAttendeeReqBodyBuilder {
  4502  	builder.needNotification = needNotification
  4503  	builder.needNotificationFlag = true
  4504  	return builder
  4505  }
  4506  
  4507  // 使用管理员身份访问时要修改的实例
  4508  //
  4509  //示例值:1647320400
  4510  func (builder *BatchDeleteCalendarEventAttendeeReqBodyBuilder) InstanceStartTimeAdmin(instanceStartTimeAdmin string) *BatchDeleteCalendarEventAttendeeReqBodyBuilder {
  4511  	builder.instanceStartTimeAdmin = instanceStartTimeAdmin
  4512  	builder.instanceStartTimeAdminFlag = true
  4513  	return builder
  4514  }
  4515  
  4516  // 是否启用管理员身份(需先在管理后台设置某人为会议室管理员)
  4517  //
  4518  //示例值:false
  4519  func (builder *BatchDeleteCalendarEventAttendeeReqBodyBuilder) IsEnableAdmin(isEnableAdmin bool) *BatchDeleteCalendarEventAttendeeReqBodyBuilder {
  4520  	builder.isEnableAdmin = isEnableAdmin
  4521  	builder.isEnableAdminFlag = true
  4522  	return builder
  4523  }
  4524  
  4525  func (builder *BatchDeleteCalendarEventAttendeeReqBodyBuilder) Build() *BatchDeleteCalendarEventAttendeeReqBody {
  4526  	req := &BatchDeleteCalendarEventAttendeeReqBody{}
  4527  	if builder.attendeeIdsFlag {
  4528  		req.AttendeeIds = builder.attendeeIds
  4529  	}
  4530  	if builder.deleteIdsFlag {
  4531  		req.DeleteIds = builder.deleteIds
  4532  	}
  4533  	if builder.needNotificationFlag {
  4534  		req.NeedNotification = &builder.needNotification
  4535  	}
  4536  	if builder.instanceStartTimeAdminFlag {
  4537  		req.InstanceStartTimeAdmin = &builder.instanceStartTimeAdmin
  4538  	}
  4539  	if builder.isEnableAdminFlag {
  4540  		req.IsEnableAdmin = &builder.isEnableAdmin
  4541  	}
  4542  	return req
  4543  }
  4544  
  4545  type BatchDeleteCalendarEventAttendeePathReqBodyBuilder struct {
  4546  	attendeeIds                []string // 要移除的参与人 ID 列表。参见[参与人ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event-attendee/introduction#4998889c)
  4547  	attendeeIdsFlag            bool
  4548  	deleteIds                  []*CalendarEventAttendeeId // 需要删除的参与人类型实体ID,作为attendee_ids字段的补充。
  4549  	deleteIdsFlag              bool
  4550  	needNotification           bool // 删除日程参与人时是否要给参与人发送bot通知,默认为true
  4551  	needNotificationFlag       bool
  4552  	instanceStartTimeAdmin     string // 使用管理员身份访问时要修改的实例
  4553  	instanceStartTimeAdminFlag bool
  4554  	isEnableAdmin              bool // 是否启用管理员身份(需先在管理后台设置某人为会议室管理员)
  4555  	isEnableAdminFlag          bool
  4556  }
  4557  
  4558  func NewBatchDeleteCalendarEventAttendeePathReqBodyBuilder() *BatchDeleteCalendarEventAttendeePathReqBodyBuilder {
  4559  	builder := &BatchDeleteCalendarEventAttendeePathReqBodyBuilder{}
  4560  	return builder
  4561  }
  4562  
  4563  // 要移除的参与人 ID 列表。参见[参与人ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event-attendee/introduction#4998889c)
  4564  //
  4565  // 示例值:["user_xxxxx", "chat_xxxxx", "resource_xxxxx", "third_party_xxxxx"]
  4566  func (builder *BatchDeleteCalendarEventAttendeePathReqBodyBuilder) AttendeeIds(attendeeIds []string) *BatchDeleteCalendarEventAttendeePathReqBodyBuilder {
  4567  	builder.attendeeIds = attendeeIds
  4568  	builder.attendeeIdsFlag = true
  4569  	return builder
  4570  }
  4571  
  4572  // 需要删除的参与人类型实体ID,作为attendee_ids字段的补充。
  4573  //
  4574  // 示例值:
  4575  func (builder *BatchDeleteCalendarEventAttendeePathReqBodyBuilder) DeleteIds(deleteIds []*CalendarEventAttendeeId) *BatchDeleteCalendarEventAttendeePathReqBodyBuilder {
  4576  	builder.deleteIds = deleteIds
  4577  	builder.deleteIdsFlag = true
  4578  	return builder
  4579  }
  4580  
  4581  // 删除日程参与人时是否要给参与人发送bot通知,默认为true
  4582  //
  4583  // 示例值:false
  4584  func (builder *BatchDeleteCalendarEventAttendeePathReqBodyBuilder) NeedNotification(needNotification bool) *BatchDeleteCalendarEventAttendeePathReqBodyBuilder {
  4585  	builder.needNotification = needNotification
  4586  	builder.needNotificationFlag = true
  4587  	return builder
  4588  }
  4589  
  4590  // 使用管理员身份访问时要修改的实例
  4591  //
  4592  // 示例值:1647320400
  4593  func (builder *BatchDeleteCalendarEventAttendeePathReqBodyBuilder) InstanceStartTimeAdmin(instanceStartTimeAdmin string) *BatchDeleteCalendarEventAttendeePathReqBodyBuilder {
  4594  	builder.instanceStartTimeAdmin = instanceStartTimeAdmin
  4595  	builder.instanceStartTimeAdminFlag = true
  4596  	return builder
  4597  }
  4598  
  4599  // 是否启用管理员身份(需先在管理后台设置某人为会议室管理员)
  4600  //
  4601  // 示例值:false
  4602  func (builder *BatchDeleteCalendarEventAttendeePathReqBodyBuilder) IsEnableAdmin(isEnableAdmin bool) *BatchDeleteCalendarEventAttendeePathReqBodyBuilder {
  4603  	builder.isEnableAdmin = isEnableAdmin
  4604  	builder.isEnableAdminFlag = true
  4605  	return builder
  4606  }
  4607  
  4608  func (builder *BatchDeleteCalendarEventAttendeePathReqBodyBuilder) Build() (*BatchDeleteCalendarEventAttendeeReqBody, error) {
  4609  	req := &BatchDeleteCalendarEventAttendeeReqBody{}
  4610  	if builder.attendeeIdsFlag {
  4611  		req.AttendeeIds = builder.attendeeIds
  4612  	}
  4613  	if builder.deleteIdsFlag {
  4614  		req.DeleteIds = builder.deleteIds
  4615  	}
  4616  	if builder.needNotificationFlag {
  4617  		req.NeedNotification = &builder.needNotification
  4618  	}
  4619  	if builder.instanceStartTimeAdminFlag {
  4620  		req.InstanceStartTimeAdmin = &builder.instanceStartTimeAdmin
  4621  	}
  4622  	if builder.isEnableAdminFlag {
  4623  		req.IsEnableAdmin = &builder.isEnableAdmin
  4624  	}
  4625  	return req, nil
  4626  }
  4627  
  4628  type BatchDeleteCalendarEventAttendeeReqBuilder struct {
  4629  	apiReq *larkcore.ApiReq
  4630  	body   *BatchDeleteCalendarEventAttendeeReqBody
  4631  }
  4632  
  4633  func NewBatchDeleteCalendarEventAttendeeReqBuilder() *BatchDeleteCalendarEventAttendeeReqBuilder {
  4634  	builder := &BatchDeleteCalendarEventAttendeeReqBuilder{}
  4635  	builder.apiReq = &larkcore.ApiReq{
  4636  		PathParams:  larkcore.PathParams{},
  4637  		QueryParams: larkcore.QueryParams{},
  4638  	}
  4639  	return builder
  4640  }
  4641  
  4642  // 日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
  4643  //
  4644  // 示例值:feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn
  4645  func (builder *BatchDeleteCalendarEventAttendeeReqBuilder) CalendarId(calendarId string) *BatchDeleteCalendarEventAttendeeReqBuilder {
  4646  	builder.apiReq.PathParams.Set("calendar_id", fmt.Sprint(calendarId))
  4647  	return builder
  4648  }
  4649  
  4650  // 日程ID。参见[日程ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event/introduction)
  4651  //
  4652  // 示例值:xxxxxxxxx_0
  4653  func (builder *BatchDeleteCalendarEventAttendeeReqBuilder) EventId(eventId string) *BatchDeleteCalendarEventAttendeeReqBuilder {
  4654  	builder.apiReq.PathParams.Set("event_id", fmt.Sprint(eventId))
  4655  	return builder
  4656  }
  4657  
  4658  // 此次调用中使用的用户ID的类型
  4659  //
  4660  // 示例值:
  4661  func (builder *BatchDeleteCalendarEventAttendeeReqBuilder) UserIdType(userIdType string) *BatchDeleteCalendarEventAttendeeReqBuilder {
  4662  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  4663  	return builder
  4664  }
  4665  
  4666  // 批量删除日程的参与人。
  4667  func (builder *BatchDeleteCalendarEventAttendeeReqBuilder) Body(body *BatchDeleteCalendarEventAttendeeReqBody) *BatchDeleteCalendarEventAttendeeReqBuilder {
  4668  	builder.body = body
  4669  	return builder
  4670  }
  4671  
  4672  func (builder *BatchDeleteCalendarEventAttendeeReqBuilder) Build() *BatchDeleteCalendarEventAttendeeReq {
  4673  	req := &BatchDeleteCalendarEventAttendeeReq{}
  4674  	req.apiReq = &larkcore.ApiReq{}
  4675  	req.apiReq.PathParams = builder.apiReq.PathParams
  4676  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4677  	req.apiReq.Body = builder.body
  4678  	return req
  4679  }
  4680  
  4681  type BatchDeleteCalendarEventAttendeeReqBody struct {
  4682  	AttendeeIds            []string                   `json:"attendee_ids,omitempty"`              // 要移除的参与人 ID 列表。参见[参与人ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event-attendee/introduction#4998889c)
  4683  	DeleteIds              []*CalendarEventAttendeeId `json:"delete_ids,omitempty"`                // 需要删除的参与人类型实体ID,作为attendee_ids字段的补充。
  4684  	NeedNotification       *bool                      `json:"need_notification,omitempty"`         // 删除日程参与人时是否要给参与人发送bot通知,默认为true
  4685  	InstanceStartTimeAdmin *string                    `json:"instance_start_time_admin,omitempty"` // 使用管理员身份访问时要修改的实例
  4686  	IsEnableAdmin          *bool                      `json:"is_enable_admin,omitempty"`           // 是否启用管理员身份(需先在管理后台设置某人为会议室管理员)
  4687  }
  4688  
  4689  type BatchDeleteCalendarEventAttendeeReq struct {
  4690  	apiReq *larkcore.ApiReq
  4691  	Body   *BatchDeleteCalendarEventAttendeeReqBody `body:""`
  4692  }
  4693  
  4694  type BatchDeleteCalendarEventAttendeeResp struct {
  4695  	*larkcore.ApiResp `json:"-"`
  4696  	larkcore.CodeError
  4697  }
  4698  
  4699  func (resp *BatchDeleteCalendarEventAttendeeResp) Success() bool {
  4700  	return resp.Code == 0
  4701  }
  4702  
  4703  type CreateCalendarEventAttendeeReqBodyBuilder struct {
  4704  	attendees                  []*CalendarEventAttendee // 新增参与人列表;;- 单次请求会议室的数量限制为100。
  4705  	attendeesFlag              bool
  4706  	needNotification           bool // 是否给参与人发送bot通知 默认为true
  4707  	needNotificationFlag       bool
  4708  	instanceStartTimeAdmin     string // 使用管理员身份访问时要修改的实例(仅用于重复日程修改其中的一个实例,非重复日程无需填此字段)
  4709  	instanceStartTimeAdminFlag bool
  4710  	isEnableAdmin              bool // 是否启用管理员身份(需先在管理后台设置某人为会议室管理员)
  4711  	isEnableAdminFlag          bool
  4712  }
  4713  
  4714  func NewCreateCalendarEventAttendeeReqBodyBuilder() *CreateCalendarEventAttendeeReqBodyBuilder {
  4715  	builder := &CreateCalendarEventAttendeeReqBodyBuilder{}
  4716  	return builder
  4717  }
  4718  
  4719  // 新增参与人列表;;- 单次请求会议室的数量限制为100。
  4720  //
  4721  //示例值:
  4722  func (builder *CreateCalendarEventAttendeeReqBodyBuilder) Attendees(attendees []*CalendarEventAttendee) *CreateCalendarEventAttendeeReqBodyBuilder {
  4723  	builder.attendees = attendees
  4724  	builder.attendeesFlag = true
  4725  	return builder
  4726  }
  4727  
  4728  // 是否给参与人发送bot通知 默认为true
  4729  //
  4730  //示例值:false
  4731  func (builder *CreateCalendarEventAttendeeReqBodyBuilder) NeedNotification(needNotification bool) *CreateCalendarEventAttendeeReqBodyBuilder {
  4732  	builder.needNotification = needNotification
  4733  	builder.needNotificationFlag = true
  4734  	return builder
  4735  }
  4736  
  4737  // 使用管理员身份访问时要修改的实例(仅用于重复日程修改其中的一个实例,非重复日程无需填此字段)
  4738  //
  4739  //示例值:1647320400
  4740  func (builder *CreateCalendarEventAttendeeReqBodyBuilder) InstanceStartTimeAdmin(instanceStartTimeAdmin string) *CreateCalendarEventAttendeeReqBodyBuilder {
  4741  	builder.instanceStartTimeAdmin = instanceStartTimeAdmin
  4742  	builder.instanceStartTimeAdminFlag = true
  4743  	return builder
  4744  }
  4745  
  4746  // 是否启用管理员身份(需先在管理后台设置某人为会议室管理员)
  4747  //
  4748  //示例值:false
  4749  func (builder *CreateCalendarEventAttendeeReqBodyBuilder) IsEnableAdmin(isEnableAdmin bool) *CreateCalendarEventAttendeeReqBodyBuilder {
  4750  	builder.isEnableAdmin = isEnableAdmin
  4751  	builder.isEnableAdminFlag = true
  4752  	return builder
  4753  }
  4754  
  4755  func (builder *CreateCalendarEventAttendeeReqBodyBuilder) Build() *CreateCalendarEventAttendeeReqBody {
  4756  	req := &CreateCalendarEventAttendeeReqBody{}
  4757  	if builder.attendeesFlag {
  4758  		req.Attendees = builder.attendees
  4759  	}
  4760  	if builder.needNotificationFlag {
  4761  		req.NeedNotification = &builder.needNotification
  4762  	}
  4763  	if builder.instanceStartTimeAdminFlag {
  4764  		req.InstanceStartTimeAdmin = &builder.instanceStartTimeAdmin
  4765  	}
  4766  	if builder.isEnableAdminFlag {
  4767  		req.IsEnableAdmin = &builder.isEnableAdmin
  4768  	}
  4769  	return req
  4770  }
  4771  
  4772  type CreateCalendarEventAttendeePathReqBodyBuilder struct {
  4773  	attendees                  []*CalendarEventAttendee // 新增参与人列表;;- 单次请求会议室的数量限制为100。
  4774  	attendeesFlag              bool
  4775  	needNotification           bool // 是否给参与人发送bot通知 默认为true
  4776  	needNotificationFlag       bool
  4777  	instanceStartTimeAdmin     string // 使用管理员身份访问时要修改的实例(仅用于重复日程修改其中的一个实例,非重复日程无需填此字段)
  4778  	instanceStartTimeAdminFlag bool
  4779  	isEnableAdmin              bool // 是否启用管理员身份(需先在管理后台设置某人为会议室管理员)
  4780  	isEnableAdminFlag          bool
  4781  }
  4782  
  4783  func NewCreateCalendarEventAttendeePathReqBodyBuilder() *CreateCalendarEventAttendeePathReqBodyBuilder {
  4784  	builder := &CreateCalendarEventAttendeePathReqBodyBuilder{}
  4785  	return builder
  4786  }
  4787  
  4788  // 新增参与人列表;;- 单次请求会议室的数量限制为100。
  4789  //
  4790  // 示例值:
  4791  func (builder *CreateCalendarEventAttendeePathReqBodyBuilder) Attendees(attendees []*CalendarEventAttendee) *CreateCalendarEventAttendeePathReqBodyBuilder {
  4792  	builder.attendees = attendees
  4793  	builder.attendeesFlag = true
  4794  	return builder
  4795  }
  4796  
  4797  // 是否给参与人发送bot通知 默认为true
  4798  //
  4799  // 示例值:false
  4800  func (builder *CreateCalendarEventAttendeePathReqBodyBuilder) NeedNotification(needNotification bool) *CreateCalendarEventAttendeePathReqBodyBuilder {
  4801  	builder.needNotification = needNotification
  4802  	builder.needNotificationFlag = true
  4803  	return builder
  4804  }
  4805  
  4806  // 使用管理员身份访问时要修改的实例(仅用于重复日程修改其中的一个实例,非重复日程无需填此字段)
  4807  //
  4808  // 示例值:1647320400
  4809  func (builder *CreateCalendarEventAttendeePathReqBodyBuilder) InstanceStartTimeAdmin(instanceStartTimeAdmin string) *CreateCalendarEventAttendeePathReqBodyBuilder {
  4810  	builder.instanceStartTimeAdmin = instanceStartTimeAdmin
  4811  	builder.instanceStartTimeAdminFlag = true
  4812  	return builder
  4813  }
  4814  
  4815  // 是否启用管理员身份(需先在管理后台设置某人为会议室管理员)
  4816  //
  4817  // 示例值:false
  4818  func (builder *CreateCalendarEventAttendeePathReqBodyBuilder) IsEnableAdmin(isEnableAdmin bool) *CreateCalendarEventAttendeePathReqBodyBuilder {
  4819  	builder.isEnableAdmin = isEnableAdmin
  4820  	builder.isEnableAdminFlag = true
  4821  	return builder
  4822  }
  4823  
  4824  func (builder *CreateCalendarEventAttendeePathReqBodyBuilder) Build() (*CreateCalendarEventAttendeeReqBody, error) {
  4825  	req := &CreateCalendarEventAttendeeReqBody{}
  4826  	if builder.attendeesFlag {
  4827  		req.Attendees = builder.attendees
  4828  	}
  4829  	if builder.needNotificationFlag {
  4830  		req.NeedNotification = &builder.needNotification
  4831  	}
  4832  	if builder.instanceStartTimeAdminFlag {
  4833  		req.InstanceStartTimeAdmin = &builder.instanceStartTimeAdmin
  4834  	}
  4835  	if builder.isEnableAdminFlag {
  4836  		req.IsEnableAdmin = &builder.isEnableAdmin
  4837  	}
  4838  	return req, nil
  4839  }
  4840  
  4841  type CreateCalendarEventAttendeeReqBuilder struct {
  4842  	apiReq *larkcore.ApiReq
  4843  	body   *CreateCalendarEventAttendeeReqBody
  4844  }
  4845  
  4846  func NewCreateCalendarEventAttendeeReqBuilder() *CreateCalendarEventAttendeeReqBuilder {
  4847  	builder := &CreateCalendarEventAttendeeReqBuilder{}
  4848  	builder.apiReq = &larkcore.ApiReq{
  4849  		PathParams:  larkcore.PathParams{},
  4850  		QueryParams: larkcore.QueryParams{},
  4851  	}
  4852  	return builder
  4853  }
  4854  
  4855  // 日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
  4856  //
  4857  // 示例值:feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn
  4858  func (builder *CreateCalendarEventAttendeeReqBuilder) CalendarId(calendarId string) *CreateCalendarEventAttendeeReqBuilder {
  4859  	builder.apiReq.PathParams.Set("calendar_id", fmt.Sprint(calendarId))
  4860  	return builder
  4861  }
  4862  
  4863  // 日程ID。参见[日程ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event/introduction)
  4864  //
  4865  // 示例值:xxxxxxxxx_0
  4866  func (builder *CreateCalendarEventAttendeeReqBuilder) EventId(eventId string) *CreateCalendarEventAttendeeReqBuilder {
  4867  	builder.apiReq.PathParams.Set("event_id", fmt.Sprint(eventId))
  4868  	return builder
  4869  }
  4870  
  4871  // 此次调用中使用的用户ID的类型
  4872  //
  4873  // 示例值:
  4874  func (builder *CreateCalendarEventAttendeeReqBuilder) UserIdType(userIdType string) *CreateCalendarEventAttendeeReqBuilder {
  4875  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  4876  	return builder
  4877  }
  4878  
  4879  // 批量给日程添加参与人。
  4880  func (builder *CreateCalendarEventAttendeeReqBuilder) Body(body *CreateCalendarEventAttendeeReqBody) *CreateCalendarEventAttendeeReqBuilder {
  4881  	builder.body = body
  4882  	return builder
  4883  }
  4884  
  4885  func (builder *CreateCalendarEventAttendeeReqBuilder) Build() *CreateCalendarEventAttendeeReq {
  4886  	req := &CreateCalendarEventAttendeeReq{}
  4887  	req.apiReq = &larkcore.ApiReq{}
  4888  	req.apiReq.PathParams = builder.apiReq.PathParams
  4889  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4890  	req.apiReq.Body = builder.body
  4891  	return req
  4892  }
  4893  
  4894  type CreateCalendarEventAttendeeReqBody struct {
  4895  	Attendees              []*CalendarEventAttendee `json:"attendees,omitempty"`                 // 新增参与人列表;;- 单次请求会议室的数量限制为100。
  4896  	NeedNotification       *bool                    `json:"need_notification,omitempty"`         // 是否给参与人发送bot通知 默认为true
  4897  	InstanceStartTimeAdmin *string                  `json:"instance_start_time_admin,omitempty"` // 使用管理员身份访问时要修改的实例(仅用于重复日程修改其中的一个实例,非重复日程无需填此字段)
  4898  	IsEnableAdmin          *bool                    `json:"is_enable_admin,omitempty"`           // 是否启用管理员身份(需先在管理后台设置某人为会议室管理员)
  4899  }
  4900  
  4901  type CreateCalendarEventAttendeeReq struct {
  4902  	apiReq *larkcore.ApiReq
  4903  	Body   *CreateCalendarEventAttendeeReqBody `body:""`
  4904  }
  4905  
  4906  type CreateCalendarEventAttendeeRespData struct {
  4907  	Attendees []*CalendarEventAttendee `json:"attendees,omitempty"` // 新增参与人后的日程所有参与人列表
  4908  }
  4909  
  4910  type CreateCalendarEventAttendeeResp struct {
  4911  	*larkcore.ApiResp `json:"-"`
  4912  	larkcore.CodeError
  4913  	Data *CreateCalendarEventAttendeeRespData `json:"data"` // 业务数据
  4914  }
  4915  
  4916  func (resp *CreateCalendarEventAttendeeResp) Success() bool {
  4917  	return resp.Code == 0
  4918  }
  4919  
  4920  type ListCalendarEventAttendeeReqBuilder struct {
  4921  	apiReq *larkcore.ApiReq
  4922  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  4923  }
  4924  
  4925  func NewListCalendarEventAttendeeReqBuilder() *ListCalendarEventAttendeeReqBuilder {
  4926  	builder := &ListCalendarEventAttendeeReqBuilder{}
  4927  	builder.apiReq = &larkcore.ApiReq{
  4928  		PathParams:  larkcore.PathParams{},
  4929  		QueryParams: larkcore.QueryParams{},
  4930  	}
  4931  	return builder
  4932  }
  4933  
  4934  // 最大返回多少记录,当使用迭代器访问时才有效
  4935  func (builder *ListCalendarEventAttendeeReqBuilder) Limit(limit int) *ListCalendarEventAttendeeReqBuilder {
  4936  	builder.limit = limit
  4937  	return builder
  4938  }
  4939  
  4940  // 日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
  4941  //
  4942  // 示例值:feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn
  4943  func (builder *ListCalendarEventAttendeeReqBuilder) CalendarId(calendarId string) *ListCalendarEventAttendeeReqBuilder {
  4944  	builder.apiReq.PathParams.Set("calendar_id", fmt.Sprint(calendarId))
  4945  	return builder
  4946  }
  4947  
  4948  // 日程ID。参见[日程ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event/introduction)
  4949  //
  4950  // 示例值:xxxxxxxxx_0
  4951  func (builder *ListCalendarEventAttendeeReqBuilder) EventId(eventId string) *ListCalendarEventAttendeeReqBuilder {
  4952  	builder.apiReq.PathParams.Set("event_id", fmt.Sprint(eventId))
  4953  	return builder
  4954  }
  4955  
  4956  // 此次调用中使用的用户ID的类型
  4957  //
  4958  // 示例值:
  4959  func (builder *ListCalendarEventAttendeeReqBuilder) UserIdType(userIdType string) *ListCalendarEventAttendeeReqBuilder {
  4960  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  4961  	return builder
  4962  }
  4963  
  4964  //
  4965  //
  4966  // 示例值:780TRhwXXXXX
  4967  func (builder *ListCalendarEventAttendeeReqBuilder) PageToken(pageToken string) *ListCalendarEventAttendeeReqBuilder {
  4968  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  4969  	return builder
  4970  }
  4971  
  4972  //
  4973  //
  4974  // 示例值:10
  4975  func (builder *ListCalendarEventAttendeeReqBuilder) PageSize(pageSize int) *ListCalendarEventAttendeeReqBuilder {
  4976  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  4977  	return builder
  4978  }
  4979  
  4980  func (builder *ListCalendarEventAttendeeReqBuilder) Build() *ListCalendarEventAttendeeReq {
  4981  	req := &ListCalendarEventAttendeeReq{}
  4982  	req.apiReq = &larkcore.ApiReq{}
  4983  	req.Limit = builder.limit
  4984  	req.apiReq.PathParams = builder.apiReq.PathParams
  4985  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  4986  	return req
  4987  }
  4988  
  4989  type ListCalendarEventAttendeeReq struct {
  4990  	apiReq *larkcore.ApiReq
  4991  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
  4992  
  4993  }
  4994  
  4995  type ListCalendarEventAttendeeRespData struct {
  4996  	Items     []*CalendarEventAttendee `json:"items,omitempty"`      // 日程的参与者列表
  4997  	HasMore   *bool                    `json:"has_more,omitempty"`   // 是否有下一页数据
  4998  	PageToken *string                  `json:"page_token,omitempty"` // 下次请求需要带上的分页标记,90 天有效期
  4999  }
  5000  
  5001  type ListCalendarEventAttendeeResp struct {
  5002  	*larkcore.ApiResp `json:"-"`
  5003  	larkcore.CodeError
  5004  	Data *ListCalendarEventAttendeeRespData `json:"data"` // 业务数据
  5005  }
  5006  
  5007  func (resp *ListCalendarEventAttendeeResp) Success() bool {
  5008  	return resp.Code == 0
  5009  }
  5010  
  5011  type ListCalendarEventAttendeeChatMemberReqBuilder struct {
  5012  	apiReq *larkcore.ApiReq
  5013  	limit  int // 最大返回多少记录,当使用迭代器访问时才有效
  5014  }
  5015  
  5016  func NewListCalendarEventAttendeeChatMemberReqBuilder() *ListCalendarEventAttendeeChatMemberReqBuilder {
  5017  	builder := &ListCalendarEventAttendeeChatMemberReqBuilder{}
  5018  	builder.apiReq = &larkcore.ApiReq{
  5019  		PathParams:  larkcore.PathParams{},
  5020  		QueryParams: larkcore.QueryParams{},
  5021  	}
  5022  	return builder
  5023  }
  5024  
  5025  // 最大返回多少记录,当使用迭代器访问时才有效
  5026  func (builder *ListCalendarEventAttendeeChatMemberReqBuilder) Limit(limit int) *ListCalendarEventAttendeeChatMemberReqBuilder {
  5027  	builder.limit = limit
  5028  	return builder
  5029  }
  5030  
  5031  // 日历ID。参见[日历ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar/introduction)
  5032  //
  5033  // 示例值:feishu.cn_xxxxxxxxxx@group.calendar.feishu.cn
  5034  func (builder *ListCalendarEventAttendeeChatMemberReqBuilder) CalendarId(calendarId string) *ListCalendarEventAttendeeChatMemberReqBuilder {
  5035  	builder.apiReq.PathParams.Set("calendar_id", fmt.Sprint(calendarId))
  5036  	return builder
  5037  }
  5038  
  5039  // 日程ID。参见[日程ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event/introduction)
  5040  //
  5041  // 示例值:xxxxxxxxx_0
  5042  func (builder *ListCalendarEventAttendeeChatMemberReqBuilder) EventId(eventId string) *ListCalendarEventAttendeeChatMemberReqBuilder {
  5043  	builder.apiReq.PathParams.Set("event_id", fmt.Sprint(eventId))
  5044  	return builder
  5045  }
  5046  
  5047  // 群参与人 ID。参见[参与人ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/calendar-event-attendee/introduction#4998889c)
  5048  //
  5049  // 示例值:chat_xxxxxx
  5050  func (builder *ListCalendarEventAttendeeChatMemberReqBuilder) AttendeeId(attendeeId string) *ListCalendarEventAttendeeChatMemberReqBuilder {
  5051  	builder.apiReq.PathParams.Set("attendee_id", fmt.Sprint(attendeeId))
  5052  	return builder
  5053  }
  5054  
  5055  //
  5056  //
  5057  // 示例值:23jhysaxxxxsysy
  5058  func (builder *ListCalendarEventAttendeeChatMemberReqBuilder) PageToken(pageToken string) *ListCalendarEventAttendeeChatMemberReqBuilder {
  5059  	builder.apiReq.QueryParams.Set("page_token", fmt.Sprint(pageToken))
  5060  	return builder
  5061  }
  5062  
  5063  //
  5064  //
  5065  // 示例值:10
  5066  func (builder *ListCalendarEventAttendeeChatMemberReqBuilder) PageSize(pageSize int) *ListCalendarEventAttendeeChatMemberReqBuilder {
  5067  	builder.apiReq.QueryParams.Set("page_size", fmt.Sprint(pageSize))
  5068  	return builder
  5069  }
  5070  
  5071  // 此次调用中使用的用户ID的类型
  5072  //
  5073  // 示例值:
  5074  func (builder *ListCalendarEventAttendeeChatMemberReqBuilder) UserIdType(userIdType string) *ListCalendarEventAttendeeChatMemberReqBuilder {
  5075  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  5076  	return builder
  5077  }
  5078  
  5079  func (builder *ListCalendarEventAttendeeChatMemberReqBuilder) Build() *ListCalendarEventAttendeeChatMemberReq {
  5080  	req := &ListCalendarEventAttendeeChatMemberReq{}
  5081  	req.apiReq = &larkcore.ApiReq{}
  5082  	req.Limit = builder.limit
  5083  	req.apiReq.PathParams = builder.apiReq.PathParams
  5084  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  5085  	return req
  5086  }
  5087  
  5088  type ListCalendarEventAttendeeChatMemberReq struct {
  5089  	apiReq *larkcore.ApiReq
  5090  	Limit  int // 最多返回多少记录,只有在使用迭代器访问时,才有效
  5091  
  5092  }
  5093  
  5094  type ListCalendarEventAttendeeChatMemberRespData struct {
  5095  	Items     []*CalendarEventAttendeeChatMember `json:"items,omitempty"`      // 群中的群成员,当type为chat时有效;群成员不支持编辑
  5096  	HasMore   *bool                              `json:"has_more,omitempty"`   // 是否有下一页数据
  5097  	PageToken *string                            `json:"page_token,omitempty"` // 下次请求需要带上的分页标记
  5098  }
  5099  
  5100  type ListCalendarEventAttendeeChatMemberResp struct {
  5101  	*larkcore.ApiResp `json:"-"`
  5102  	larkcore.CodeError
  5103  	Data *ListCalendarEventAttendeeChatMemberRespData `json:"data"` // 业务数据
  5104  }
  5105  
  5106  func (resp *ListCalendarEventAttendeeChatMemberResp) Success() bool {
  5107  	return resp.Code == 0
  5108  }
  5109  
  5110  type CreateExchangeBindingReqBuilder struct {
  5111  	apiReq          *larkcore.ApiReq
  5112  	exchangeBinding *ExchangeBinding
  5113  }
  5114  
  5115  func NewCreateExchangeBindingReqBuilder() *CreateExchangeBindingReqBuilder {
  5116  	builder := &CreateExchangeBindingReqBuilder{}
  5117  	builder.apiReq = &larkcore.ApiReq{
  5118  		PathParams:  larkcore.PathParams{},
  5119  		QueryParams: larkcore.QueryParams{},
  5120  	}
  5121  	return builder
  5122  }
  5123  
  5124  // 此次调用中使用的用户ID的类型
  5125  //
  5126  // 示例值:
  5127  func (builder *CreateExchangeBindingReqBuilder) UserIdType(userIdType string) *CreateExchangeBindingReqBuilder {
  5128  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  5129  	return builder
  5130  }
  5131  
  5132  // 本接口将Exchange账户绑定到飞书账户,进而支持Exchange日历的导入
  5133  func (builder *CreateExchangeBindingReqBuilder) ExchangeBinding(exchangeBinding *ExchangeBinding) *CreateExchangeBindingReqBuilder {
  5134  	builder.exchangeBinding = exchangeBinding
  5135  	return builder
  5136  }
  5137  
  5138  func (builder *CreateExchangeBindingReqBuilder) Build() *CreateExchangeBindingReq {
  5139  	req := &CreateExchangeBindingReq{}
  5140  	req.apiReq = &larkcore.ApiReq{}
  5141  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  5142  	req.apiReq.Body = builder.exchangeBinding
  5143  	return req
  5144  }
  5145  
  5146  type CreateExchangeBindingReq struct {
  5147  	apiReq          *larkcore.ApiReq
  5148  	ExchangeBinding *ExchangeBinding `body:""`
  5149  }
  5150  
  5151  type CreateExchangeBindingRespData struct {
  5152  	AdminAccount      *string `json:"admin_account,omitempty"`       // admin账户
  5153  	ExchangeAccount   *string `json:"exchange_account,omitempty"`    // 用户绑定的Exchange账户
  5154  	UserId            *string `json:"user_id,omitempty"`             // Exchange账户绑定user唯一标识id
  5155  	Status            *string `json:"status,omitempty"`              // Exchange账户同步状态
  5156  	ExchangeBindingId *string `json:"exchange_binding_id,omitempty"` // exchange绑定唯一标识id
  5157  }
  5158  
  5159  type CreateExchangeBindingResp struct {
  5160  	*larkcore.ApiResp `json:"-"`
  5161  	larkcore.CodeError
  5162  	Data *CreateExchangeBindingRespData `json:"data"` // 业务数据
  5163  }
  5164  
  5165  func (resp *CreateExchangeBindingResp) Success() bool {
  5166  	return resp.Code == 0
  5167  }
  5168  
  5169  type DeleteExchangeBindingReqBuilder struct {
  5170  	apiReq *larkcore.ApiReq
  5171  }
  5172  
  5173  func NewDeleteExchangeBindingReqBuilder() *DeleteExchangeBindingReqBuilder {
  5174  	builder := &DeleteExchangeBindingReqBuilder{}
  5175  	builder.apiReq = &larkcore.ApiReq{
  5176  		PathParams:  larkcore.PathParams{},
  5177  		QueryParams: larkcore.QueryParams{},
  5178  	}
  5179  	return builder
  5180  }
  5181  
  5182  // exchange绑定唯一标识id。参见[exchange绑定ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/exchange_binding/introduction#12533d5e)
  5183  //
  5184  // 示例值:ZW1haWxfYWRtaW5fZXhhbXBsZUBvdXRsb29rLmNvbSBlbWFpbF9hY2NvdW50X2V4YW1wbGVAb3V0bG9vay5jb20=
  5185  func (builder *DeleteExchangeBindingReqBuilder) ExchangeBindingId(exchangeBindingId string) *DeleteExchangeBindingReqBuilder {
  5186  	builder.apiReq.PathParams.Set("exchange_binding_id", fmt.Sprint(exchangeBindingId))
  5187  	return builder
  5188  }
  5189  
  5190  func (builder *DeleteExchangeBindingReqBuilder) Build() *DeleteExchangeBindingReq {
  5191  	req := &DeleteExchangeBindingReq{}
  5192  	req.apiReq = &larkcore.ApiReq{}
  5193  	req.apiReq.PathParams = builder.apiReq.PathParams
  5194  	return req
  5195  }
  5196  
  5197  type DeleteExchangeBindingReq struct {
  5198  	apiReq *larkcore.ApiReq
  5199  }
  5200  
  5201  type DeleteExchangeBindingResp struct {
  5202  	*larkcore.ApiResp `json:"-"`
  5203  	larkcore.CodeError
  5204  }
  5205  
  5206  func (resp *DeleteExchangeBindingResp) Success() bool {
  5207  	return resp.Code == 0
  5208  }
  5209  
  5210  type GetExchangeBindingReqBuilder struct {
  5211  	apiReq *larkcore.ApiReq
  5212  }
  5213  
  5214  func NewGetExchangeBindingReqBuilder() *GetExchangeBindingReqBuilder {
  5215  	builder := &GetExchangeBindingReqBuilder{}
  5216  	builder.apiReq = &larkcore.ApiReq{
  5217  		PathParams:  larkcore.PathParams{},
  5218  		QueryParams: larkcore.QueryParams{},
  5219  	}
  5220  	return builder
  5221  }
  5222  
  5223  // exchange绑定唯一标识id。参见[exchange绑定ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/exchange_binding/introduction#12533d5e)
  5224  //
  5225  // 示例值:ZW1haWxfYWRtaW5fZXhhbXBsZUBvdXRsb29rLmNvbSBlbWFpbF9hY2NvdW50X2V4YW1wbGVAb3V0bG9vay5jb20=
  5226  func (builder *GetExchangeBindingReqBuilder) ExchangeBindingId(exchangeBindingId string) *GetExchangeBindingReqBuilder {
  5227  	builder.apiReq.PathParams.Set("exchange_binding_id", fmt.Sprint(exchangeBindingId))
  5228  	return builder
  5229  }
  5230  
  5231  // 此次调用中使用的用户ID的类型
  5232  //
  5233  // 示例值:
  5234  func (builder *GetExchangeBindingReqBuilder) UserIdType(userIdType string) *GetExchangeBindingReqBuilder {
  5235  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  5236  	return builder
  5237  }
  5238  
  5239  func (builder *GetExchangeBindingReqBuilder) Build() *GetExchangeBindingReq {
  5240  	req := &GetExchangeBindingReq{}
  5241  	req.apiReq = &larkcore.ApiReq{}
  5242  	req.apiReq.PathParams = builder.apiReq.PathParams
  5243  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  5244  	return req
  5245  }
  5246  
  5247  type GetExchangeBindingReq struct {
  5248  	apiReq *larkcore.ApiReq
  5249  }
  5250  
  5251  type GetExchangeBindingRespData struct {
  5252  	AdminAccount      *string `json:"admin_account,omitempty"`       // admin账户
  5253  	ExchangeAccount   *string `json:"exchange_account,omitempty"`    // 用户绑定的Exchange账户
  5254  	UserId            *string `json:"user_id,omitempty"`             // Exchange账户绑定user唯一标识id
  5255  	Status            *string `json:"status,omitempty"`              // Exchange账户同步状态
  5256  	ExchangeBindingId *string `json:"exchange_binding_id,omitempty"` // Exchange绑定关系唯一标识ID
  5257  }
  5258  
  5259  type GetExchangeBindingResp struct {
  5260  	*larkcore.ApiResp `json:"-"`
  5261  	larkcore.CodeError
  5262  	Data *GetExchangeBindingRespData `json:"data"` // 业务数据
  5263  }
  5264  
  5265  func (resp *GetExchangeBindingResp) Success() bool {
  5266  	return resp.Code == 0
  5267  }
  5268  
  5269  type ListFreebusyReqBodyBuilder struct {
  5270  	timeMin     string // 查询时段开始时间,需要url编码
  5271  	timeMinFlag bool
  5272  	timeMax     string // 查询时段结束时间,需要url编码
  5273  	timeMaxFlag bool
  5274  	userId      string // 用户user_id,输入时与 room_id 二选一。参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  5275  	userIdFlag  bool
  5276  	roomId      string // 会议室room_id,输入时与 user_id 二选一
  5277  	roomIdFlag  bool
  5278  }
  5279  
  5280  func NewListFreebusyReqBodyBuilder() *ListFreebusyReqBodyBuilder {
  5281  	builder := &ListFreebusyReqBodyBuilder{}
  5282  	return builder
  5283  }
  5284  
  5285  // 查询时段开始时间,需要url编码
  5286  //
  5287  //示例值:2020-10-28T12:00:00+08:00
  5288  func (builder *ListFreebusyReqBodyBuilder) TimeMin(timeMin string) *ListFreebusyReqBodyBuilder {
  5289  	builder.timeMin = timeMin
  5290  	builder.timeMinFlag = true
  5291  	return builder
  5292  }
  5293  
  5294  // 查询时段结束时间,需要url编码
  5295  //
  5296  //示例值:2020-12-28T12:00:00+08:00
  5297  func (builder *ListFreebusyReqBodyBuilder) TimeMax(timeMax string) *ListFreebusyReqBodyBuilder {
  5298  	builder.timeMax = timeMax
  5299  	builder.timeMaxFlag = true
  5300  	return builder
  5301  }
  5302  
  5303  // 用户user_id,输入时与 room_id 二选一。参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  5304  //
  5305  //示例值:ou_xxxxxxxxxx
  5306  func (builder *ListFreebusyReqBodyBuilder) UserId(userId string) *ListFreebusyReqBodyBuilder {
  5307  	builder.userId = userId
  5308  	builder.userIdFlag = true
  5309  	return builder
  5310  }
  5311  
  5312  // 会议室room_id,输入时与 user_id 二选一
  5313  //
  5314  //示例值:omm_xxxxxxxxxx
  5315  func (builder *ListFreebusyReqBodyBuilder) RoomId(roomId string) *ListFreebusyReqBodyBuilder {
  5316  	builder.roomId = roomId
  5317  	builder.roomIdFlag = true
  5318  	return builder
  5319  }
  5320  
  5321  func (builder *ListFreebusyReqBodyBuilder) Build() *ListFreebusyReqBody {
  5322  	req := &ListFreebusyReqBody{}
  5323  	if builder.timeMinFlag {
  5324  		req.TimeMin = &builder.timeMin
  5325  	}
  5326  	if builder.timeMaxFlag {
  5327  		req.TimeMax = &builder.timeMax
  5328  	}
  5329  	if builder.userIdFlag {
  5330  		req.UserId = &builder.userId
  5331  	}
  5332  	if builder.roomIdFlag {
  5333  		req.RoomId = &builder.roomId
  5334  	}
  5335  	return req
  5336  }
  5337  
  5338  type ListFreebusyPathReqBodyBuilder struct {
  5339  	timeMin     string // 查询时段开始时间,需要url编码
  5340  	timeMinFlag bool
  5341  	timeMax     string // 查询时段结束时间,需要url编码
  5342  	timeMaxFlag bool
  5343  	userId      string // 用户user_id,输入时与 room_id 二选一。参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  5344  	userIdFlag  bool
  5345  	roomId      string // 会议室room_id,输入时与 user_id 二选一
  5346  	roomIdFlag  bool
  5347  }
  5348  
  5349  func NewListFreebusyPathReqBodyBuilder() *ListFreebusyPathReqBodyBuilder {
  5350  	builder := &ListFreebusyPathReqBodyBuilder{}
  5351  	return builder
  5352  }
  5353  
  5354  // 查询时段开始时间,需要url编码
  5355  //
  5356  // 示例值:2020-10-28T12:00:00+08:00
  5357  func (builder *ListFreebusyPathReqBodyBuilder) TimeMin(timeMin string) *ListFreebusyPathReqBodyBuilder {
  5358  	builder.timeMin = timeMin
  5359  	builder.timeMinFlag = true
  5360  	return builder
  5361  }
  5362  
  5363  // 查询时段结束时间,需要url编码
  5364  //
  5365  // 示例值:2020-12-28T12:00:00+08:00
  5366  func (builder *ListFreebusyPathReqBodyBuilder) TimeMax(timeMax string) *ListFreebusyPathReqBodyBuilder {
  5367  	builder.timeMax = timeMax
  5368  	builder.timeMaxFlag = true
  5369  	return builder
  5370  }
  5371  
  5372  // 用户user_id,输入时与 room_id 二选一。参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  5373  //
  5374  // 示例值:ou_xxxxxxxxxx
  5375  func (builder *ListFreebusyPathReqBodyBuilder) UserId(userId string) *ListFreebusyPathReqBodyBuilder {
  5376  	builder.userId = userId
  5377  	builder.userIdFlag = true
  5378  	return builder
  5379  }
  5380  
  5381  // 会议室room_id,输入时与 user_id 二选一
  5382  //
  5383  // 示例值:omm_xxxxxxxxxx
  5384  func (builder *ListFreebusyPathReqBodyBuilder) RoomId(roomId string) *ListFreebusyPathReqBodyBuilder {
  5385  	builder.roomId = roomId
  5386  	builder.roomIdFlag = true
  5387  	return builder
  5388  }
  5389  
  5390  func (builder *ListFreebusyPathReqBodyBuilder) Build() (*ListFreebusyReqBody, error) {
  5391  	req := &ListFreebusyReqBody{}
  5392  	if builder.timeMinFlag {
  5393  		req.TimeMin = &builder.timeMin
  5394  	}
  5395  	if builder.timeMaxFlag {
  5396  		req.TimeMax = &builder.timeMax
  5397  	}
  5398  	if builder.userIdFlag {
  5399  		req.UserId = &builder.userId
  5400  	}
  5401  	if builder.roomIdFlag {
  5402  		req.RoomId = &builder.roomId
  5403  	}
  5404  	return req, nil
  5405  }
  5406  
  5407  type ListFreebusyReqBuilder struct {
  5408  	apiReq *larkcore.ApiReq
  5409  	body   *ListFreebusyReqBody
  5410  }
  5411  
  5412  func NewListFreebusyReqBuilder() *ListFreebusyReqBuilder {
  5413  	builder := &ListFreebusyReqBuilder{}
  5414  	builder.apiReq = &larkcore.ApiReq{
  5415  		PathParams:  larkcore.PathParams{},
  5416  		QueryParams: larkcore.QueryParams{},
  5417  	}
  5418  	return builder
  5419  }
  5420  
  5421  // 此次调用中使用的用户ID的类型
  5422  //
  5423  // 示例值:
  5424  func (builder *ListFreebusyReqBuilder) UserIdType(userIdType string) *ListFreebusyReqBuilder {
  5425  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  5426  	return builder
  5427  }
  5428  
  5429  // 查询用户主日历或会议室的忙闲信息。
  5430  func (builder *ListFreebusyReqBuilder) Body(body *ListFreebusyReqBody) *ListFreebusyReqBuilder {
  5431  	builder.body = body
  5432  	return builder
  5433  }
  5434  
  5435  func (builder *ListFreebusyReqBuilder) Build() *ListFreebusyReq {
  5436  	req := &ListFreebusyReq{}
  5437  	req.apiReq = &larkcore.ApiReq{}
  5438  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  5439  	req.apiReq.Body = builder.body
  5440  	return req
  5441  }
  5442  
  5443  type ListFreebusyReqBody struct {
  5444  	TimeMin *string `json:"time_min,omitempty"` // 查询时段开始时间,需要url编码
  5445  	TimeMax *string `json:"time_max,omitempty"` // 查询时段结束时间,需要url编码
  5446  	UserId  *string `json:"user_id,omitempty"`  // 用户user_id,输入时与 room_id 二选一。参见[用户相关的 ID 概念](/ssl:ttdoc/home/user-identity-introduction/introduction)
  5447  	RoomId  *string `json:"room_id,omitempty"`  // 会议室room_id,输入时与 user_id 二选一
  5448  }
  5449  
  5450  type ListFreebusyReq struct {
  5451  	apiReq *larkcore.ApiReq
  5452  	Body   *ListFreebusyReqBody `body:""`
  5453  }
  5454  
  5455  type ListFreebusyRespData struct {
  5456  	FreebusyList []*Freebusy `json:"freebusy_list,omitempty"` // 日历上请求时间区间内的忙碌时间段信息。
  5457  }
  5458  
  5459  type ListFreebusyResp struct {
  5460  	*larkcore.ApiResp `json:"-"`
  5461  	larkcore.CodeError
  5462  	Data *ListFreebusyRespData `json:"data"` // 业务数据
  5463  }
  5464  
  5465  func (resp *ListFreebusyResp) Success() bool {
  5466  	return resp.Code == 0
  5467  }
  5468  
  5469  type GenerateCaldavConfSettingReqBodyBuilder struct {
  5470  	deviceName     string // 需要同步日历的设备名,在日历中展示用来管理密码
  5471  	deviceNameFlag bool
  5472  }
  5473  
  5474  func NewGenerateCaldavConfSettingReqBodyBuilder() *GenerateCaldavConfSettingReqBodyBuilder {
  5475  	builder := &GenerateCaldavConfSettingReqBodyBuilder{}
  5476  	return builder
  5477  }
  5478  
  5479  // 需要同步日历的设备名,在日历中展示用来管理密码
  5480  //
  5481  //示例值:iPhone
  5482  func (builder *GenerateCaldavConfSettingReqBodyBuilder) DeviceName(deviceName string) *GenerateCaldavConfSettingReqBodyBuilder {
  5483  	builder.deviceName = deviceName
  5484  	builder.deviceNameFlag = true
  5485  	return builder
  5486  }
  5487  
  5488  func (builder *GenerateCaldavConfSettingReqBodyBuilder) Build() *GenerateCaldavConfSettingReqBody {
  5489  	req := &GenerateCaldavConfSettingReqBody{}
  5490  	if builder.deviceNameFlag {
  5491  		req.DeviceName = &builder.deviceName
  5492  	}
  5493  	return req
  5494  }
  5495  
  5496  type GenerateCaldavConfSettingPathReqBodyBuilder struct {
  5497  	deviceName     string // 需要同步日历的设备名,在日历中展示用来管理密码
  5498  	deviceNameFlag bool
  5499  }
  5500  
  5501  func NewGenerateCaldavConfSettingPathReqBodyBuilder() *GenerateCaldavConfSettingPathReqBodyBuilder {
  5502  	builder := &GenerateCaldavConfSettingPathReqBodyBuilder{}
  5503  	return builder
  5504  }
  5505  
  5506  // 需要同步日历的设备名,在日历中展示用来管理密码
  5507  //
  5508  // 示例值:iPhone
  5509  func (builder *GenerateCaldavConfSettingPathReqBodyBuilder) DeviceName(deviceName string) *GenerateCaldavConfSettingPathReqBodyBuilder {
  5510  	builder.deviceName = deviceName
  5511  	builder.deviceNameFlag = true
  5512  	return builder
  5513  }
  5514  
  5515  func (builder *GenerateCaldavConfSettingPathReqBodyBuilder) Build() (*GenerateCaldavConfSettingReqBody, error) {
  5516  	req := &GenerateCaldavConfSettingReqBody{}
  5517  	if builder.deviceNameFlag {
  5518  		req.DeviceName = &builder.deviceName
  5519  	}
  5520  	return req, nil
  5521  }
  5522  
  5523  type GenerateCaldavConfSettingReqBuilder struct {
  5524  	apiReq *larkcore.ApiReq
  5525  	body   *GenerateCaldavConfSettingReqBody
  5526  }
  5527  
  5528  func NewGenerateCaldavConfSettingReqBuilder() *GenerateCaldavConfSettingReqBuilder {
  5529  	builder := &GenerateCaldavConfSettingReqBuilder{}
  5530  	builder.apiReq = &larkcore.ApiReq{
  5531  		PathParams:  larkcore.PathParams{},
  5532  		QueryParams: larkcore.QueryParams{},
  5533  	}
  5534  	return builder
  5535  }
  5536  
  5537  // 用于为当前用户生成一个CalDAV账号密码,用于将飞书日历信息同步到本地设备日历。
  5538  func (builder *GenerateCaldavConfSettingReqBuilder) Body(body *GenerateCaldavConfSettingReqBody) *GenerateCaldavConfSettingReqBuilder {
  5539  	builder.body = body
  5540  	return builder
  5541  }
  5542  
  5543  func (builder *GenerateCaldavConfSettingReqBuilder) Build() *GenerateCaldavConfSettingReq {
  5544  	req := &GenerateCaldavConfSettingReq{}
  5545  	req.apiReq = &larkcore.ApiReq{}
  5546  	req.apiReq.Body = builder.body
  5547  	return req
  5548  }
  5549  
  5550  type GenerateCaldavConfSettingReqBody struct {
  5551  	DeviceName *string `json:"device_name,omitempty"` // 需要同步日历的设备名,在日历中展示用来管理密码
  5552  }
  5553  
  5554  type GenerateCaldavConfSettingReq struct {
  5555  	apiReq *larkcore.ApiReq
  5556  	Body   *GenerateCaldavConfSettingReqBody `body:""`
  5557  }
  5558  
  5559  type GenerateCaldavConfSettingRespData struct {
  5560  	Password      *string `json:"password,omitempty"`       // caldav密码
  5561  	UserName      *string `json:"user_name,omitempty"`      // caldav用户名
  5562  	ServerAddress *string `json:"server_address,omitempty"` // 服务器地址
  5563  	DeviceName    *string `json:"device_name,omitempty"`    // 设备名
  5564  }
  5565  
  5566  type GenerateCaldavConfSettingResp struct {
  5567  	*larkcore.ApiResp `json:"-"`
  5568  	larkcore.CodeError
  5569  	Data *GenerateCaldavConfSettingRespData `json:"data"` // 业务数据
  5570  }
  5571  
  5572  func (resp *GenerateCaldavConfSettingResp) Success() bool {
  5573  	return resp.Code == 0
  5574  }
  5575  
  5576  type CreateTimeoffEventReqBuilder struct {
  5577  	apiReq       *larkcore.ApiReq
  5578  	timeoffEvent *TimeoffEvent
  5579  }
  5580  
  5581  func NewCreateTimeoffEventReqBuilder() *CreateTimeoffEventReqBuilder {
  5582  	builder := &CreateTimeoffEventReqBuilder{}
  5583  	builder.apiReq = &larkcore.ApiReq{
  5584  		PathParams:  larkcore.PathParams{},
  5585  		QueryParams: larkcore.QueryParams{},
  5586  	}
  5587  	return builder
  5588  }
  5589  
  5590  // 此次调用中使用的用户ID的类型
  5591  //
  5592  // 示例值:
  5593  func (builder *CreateTimeoffEventReqBuilder) UserIdType(userIdType string) *CreateTimeoffEventReqBuilder {
  5594  	builder.apiReq.QueryParams.Set("user_id_type", fmt.Sprint(userIdType))
  5595  	return builder
  5596  }
  5597  
  5598  // 为指定用户创建一个请假日程,可以是一个普通请假日程,也可以是一个全天日程。;创建请假日程后,会在相应时间内,在用户个人签名页展示请假信息。
  5599  func (builder *CreateTimeoffEventReqBuilder) TimeoffEvent(timeoffEvent *TimeoffEvent) *CreateTimeoffEventReqBuilder {
  5600  	builder.timeoffEvent = timeoffEvent
  5601  	return builder
  5602  }
  5603  
  5604  func (builder *CreateTimeoffEventReqBuilder) Build() *CreateTimeoffEventReq {
  5605  	req := &CreateTimeoffEventReq{}
  5606  	req.apiReq = &larkcore.ApiReq{}
  5607  	req.apiReq.QueryParams = builder.apiReq.QueryParams
  5608  	req.apiReq.Body = builder.timeoffEvent
  5609  	return req
  5610  }
  5611  
  5612  type CreateTimeoffEventReq struct {
  5613  	apiReq       *larkcore.ApiReq
  5614  	TimeoffEvent *TimeoffEvent `body:""`
  5615  }
  5616  
  5617  type CreateTimeoffEventRespData struct {
  5618  	TimeoffEventId *string `json:"timeoff_event_id,omitempty"` // 休假申请的唯一标识id
  5619  	UserId         *string `json:"user_id,omitempty"`          // 用户的user id
  5620  	Timezone       *string `json:"timezone,omitempty"`         // 休假人的时区
  5621  	StartTime      *string `json:"start_time,omitempty"`       // 休假开始时间(时间戳)/日期(2021-01-01),为日期时将生成全天日程,且与end_time对应,不符合将返回错误
  5622  	EndTime        *string `json:"end_time,omitempty"`         // 休假结束时间(时间戳)/日期(2021-01-01),为日期时将生成全天日程,与start_time对应,不符合将返回错误
  5623  	Title          *string `json:"title,omitempty"`            // 休假日程标题,可自定义例如:"请假中(全天) / 1-Day Time Off","请假中(半天) / 0.5-Day Time Off","长期休假中 / Leave of Absence","请假中"
  5624  	Description    *string `json:"description,omitempty"`      // 休假日程描述,可自定义,例如:;"若拒绝或删除此日程,飞书中相应的“请假”标签将自动消失,而请假系统中的休假申请不会被撤销。;;If the event is rejected or deleted, corresponding "On Leave" tag in Feishu will disappear, while the leave request in the time off system will not be revoked."
  5625  }
  5626  
  5627  type CreateTimeoffEventResp struct {
  5628  	*larkcore.ApiResp `json:"-"`
  5629  	larkcore.CodeError
  5630  	Data *CreateTimeoffEventRespData `json:"data"` // 业务数据
  5631  }
  5632  
  5633  func (resp *CreateTimeoffEventResp) Success() bool {
  5634  	return resp.Code == 0
  5635  }
  5636  
  5637  type DeleteTimeoffEventReqBuilder struct {
  5638  	apiReq *larkcore.ApiReq
  5639  }
  5640  
  5641  func NewDeleteTimeoffEventReqBuilder() *DeleteTimeoffEventReqBuilder {
  5642  	builder := &DeleteTimeoffEventReqBuilder{}
  5643  	builder.apiReq = &larkcore.ApiReq{
  5644  		PathParams:  larkcore.PathParams{},
  5645  		QueryParams: larkcore.QueryParams{},
  5646  	}
  5647  	return builder
  5648  }
  5649  
  5650  // 休假申请的唯一标识id。参见[请假日程ID说明](/ssl:ttdoc/uAjLw4CM/ukTMukTMukTM/reference/calendar-v4/timeoff_event/introduction#b6611a02)
  5651  //
  5652  // 示例值:timeoff:XXXXXX-XXXX-0917-1623-aa493d591a39
  5653  func (builder *DeleteTimeoffEventReqBuilder) TimeoffEventId(timeoffEventId string) *DeleteTimeoffEventReqBuilder {
  5654  	builder.apiReq.PathParams.Set("timeoff_event_id", fmt.Sprint(timeoffEventId))
  5655  	return builder
  5656  }
  5657  
  5658  func (builder *DeleteTimeoffEventReqBuilder) Build() *DeleteTimeoffEventReq {
  5659  	req := &DeleteTimeoffEventReq{}
  5660  	req.apiReq = &larkcore.ApiReq{}
  5661  	req.apiReq.PathParams = builder.apiReq.PathParams
  5662  	return req
  5663  }
  5664  
  5665  type DeleteTimeoffEventReq struct {
  5666  	apiReq *larkcore.ApiReq
  5667  }
  5668  
  5669  type DeleteTimeoffEventResp struct {
  5670  	*larkcore.ApiResp `json:"-"`
  5671  	larkcore.CodeError
  5672  }
  5673  
  5674  func (resp *DeleteTimeoffEventResp) Success() bool {
  5675  	return resp.Code == 0
  5676  }
  5677  
  5678  type P2CalendarChangedV4Data struct {
  5679  	UserIdList []*UserId `json:"user_id_list,omitempty"` // 需要推送事件的用户列表
  5680  }
  5681  
  5682  type P2CalendarChangedV4 struct {
  5683  	*larkevent.EventV2Base                          // 事件基础数据
  5684  	*larkevent.EventReq                             // 请求原生数据
  5685  	Event                  *P2CalendarChangedV4Data `json:"event"` // 事件内容
  5686  }
  5687  
  5688  func (m *P2CalendarChangedV4) RawReq(req *larkevent.EventReq) {
  5689  	m.EventReq = req
  5690  }
  5691  
  5692  type P2CalendarAclCreatedV4Data struct {
  5693  	AclId      *string        `json:"acl_id,omitempty"`       // acl资源ID
  5694  	Role       *string        `json:"role,omitempty"`         // 对日历的访问权限
  5695  	Scope      *AclScopeEvent `json:"scope,omitempty"`        // 权限范围
  5696  	UserIdList []*UserId      `json:"user_id_list,omitempty"` // 需要推送事件的用户列表
  5697  }
  5698  
  5699  type P2CalendarAclCreatedV4 struct {
  5700  	*larkevent.EventV2Base                             // 事件基础数据
  5701  	*larkevent.EventReq                                // 请求原生数据
  5702  	Event                  *P2CalendarAclCreatedV4Data `json:"event"` // 事件内容
  5703  }
  5704  
  5705  func (m *P2CalendarAclCreatedV4) RawReq(req *larkevent.EventReq) {
  5706  	m.EventReq = req
  5707  }
  5708  
  5709  type P2CalendarAclDeletedV4Data struct {
  5710  	AclId      *string        `json:"acl_id,omitempty"`       // acl资源ID
  5711  	Role       *string        `json:"role,omitempty"`         // 对日历的访问权限
  5712  	Scope      *AclScopeEvent `json:"scope,omitempty"`        // 权限范围
  5713  	UserIdList []*UserId      `json:"user_id_list,omitempty"` // 需要推送事件的用户列表
  5714  }
  5715  
  5716  type P2CalendarAclDeletedV4 struct {
  5717  	*larkevent.EventV2Base                             // 事件基础数据
  5718  	*larkevent.EventReq                                // 请求原生数据
  5719  	Event                  *P2CalendarAclDeletedV4Data `json:"event"` // 事件内容
  5720  }
  5721  
  5722  func (m *P2CalendarAclDeletedV4) RawReq(req *larkevent.EventReq) {
  5723  	m.EventReq = req
  5724  }
  5725  
  5726  type P2CalendarEventChangedV4Data struct {
  5727  	CalendarId *string   `json:"calendar_id,omitempty"`  // 日历id
  5728  	UserIdList []*UserId `json:"user_id_list,omitempty"` // 需要推送事件的用户列表
  5729  }
  5730  
  5731  type P2CalendarEventChangedV4 struct {
  5732  	*larkevent.EventV2Base                               // 事件基础数据
  5733  	*larkevent.EventReq                                  // 请求原生数据
  5734  	Event                  *P2CalendarEventChangedV4Data `json:"event"` // 事件内容
  5735  }
  5736  
  5737  func (m *P2CalendarEventChangedV4) RawReq(req *larkevent.EventReq) {
  5738  	m.EventReq = req
  5739  }
  5740  
  5741  type SearchCalendarIterator struct {
  5742  	nextPageToken *string
  5743  	items         []*Calendar
  5744  	index         int
  5745  	limit         int
  5746  	ctx           context.Context
  5747  	req           *SearchCalendarReq
  5748  	listFunc      func(ctx context.Context, req *SearchCalendarReq, options ...larkcore.RequestOptionFunc) (*SearchCalendarResp, error)
  5749  	options       []larkcore.RequestOptionFunc
  5750  	curlNum       int
  5751  }
  5752  
  5753  func (iterator *SearchCalendarIterator) Next() (bool, *Calendar, error) {
  5754  	// 达到最大量,则返回
  5755  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  5756  		return false, nil, nil
  5757  	}
  5758  
  5759  	// 为0则拉取数据
  5760  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  5761  		if iterator.index != 0 && iterator.nextPageToken == nil {
  5762  			return false, nil, nil
  5763  		}
  5764  		if iterator.nextPageToken != nil {
  5765  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  5766  		}
  5767  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  5768  		if err != nil {
  5769  			return false, nil, err
  5770  		}
  5771  
  5772  		if resp.Code != 0 {
  5773  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  5774  		}
  5775  
  5776  		if len(resp.Data.Items) == 0 {
  5777  			return false, nil, nil
  5778  		}
  5779  
  5780  		iterator.nextPageToken = resp.Data.PageToken
  5781  		iterator.items = resp.Data.Items
  5782  		iterator.index = 0
  5783  	}
  5784  
  5785  	block := iterator.items[iterator.index]
  5786  	iterator.index++
  5787  	iterator.curlNum++
  5788  	return true, block, nil
  5789  }
  5790  
  5791  func (iterator *SearchCalendarIterator) NextPageToken() *string {
  5792  	return iterator.nextPageToken
  5793  }
  5794  
  5795  type ListCalendarAclIterator struct {
  5796  	nextPageToken *string
  5797  	items         []*CalendarAcl
  5798  	index         int
  5799  	limit         int
  5800  	ctx           context.Context
  5801  	req           *ListCalendarAclReq
  5802  	listFunc      func(ctx context.Context, req *ListCalendarAclReq, options ...larkcore.RequestOptionFunc) (*ListCalendarAclResp, error)
  5803  	options       []larkcore.RequestOptionFunc
  5804  	curlNum       int
  5805  }
  5806  
  5807  func (iterator *ListCalendarAclIterator) Next() (bool, *CalendarAcl, error) {
  5808  	// 达到最大量,则返回
  5809  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  5810  		return false, nil, nil
  5811  	}
  5812  
  5813  	// 为0则拉取数据
  5814  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  5815  		if iterator.index != 0 && iterator.nextPageToken == nil {
  5816  			return false, nil, nil
  5817  		}
  5818  		if iterator.nextPageToken != nil {
  5819  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  5820  		}
  5821  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  5822  		if err != nil {
  5823  			return false, nil, err
  5824  		}
  5825  
  5826  		if resp.Code != 0 {
  5827  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  5828  		}
  5829  
  5830  		if len(resp.Data.Acls) == 0 {
  5831  			return false, nil, nil
  5832  		}
  5833  
  5834  		iterator.nextPageToken = resp.Data.PageToken
  5835  		iterator.items = resp.Data.Acls
  5836  		iterator.index = 0
  5837  	}
  5838  
  5839  	block := iterator.items[iterator.index]
  5840  	iterator.index++
  5841  	iterator.curlNum++
  5842  	return true, block, nil
  5843  }
  5844  
  5845  func (iterator *ListCalendarAclIterator) NextPageToken() *string {
  5846  	return iterator.nextPageToken
  5847  }
  5848  
  5849  type SearchCalendarEventIterator struct {
  5850  	nextPageToken *string
  5851  	items         []*CalendarEvent
  5852  	index         int
  5853  	limit         int
  5854  	ctx           context.Context
  5855  	req           *SearchCalendarEventReq
  5856  	listFunc      func(ctx context.Context, req *SearchCalendarEventReq, options ...larkcore.RequestOptionFunc) (*SearchCalendarEventResp, error)
  5857  	options       []larkcore.RequestOptionFunc
  5858  	curlNum       int
  5859  }
  5860  
  5861  func (iterator *SearchCalendarEventIterator) Next() (bool, *CalendarEvent, error) {
  5862  	// 达到最大量,则返回
  5863  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  5864  		return false, nil, nil
  5865  	}
  5866  
  5867  	// 为0则拉取数据
  5868  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  5869  		if iterator.index != 0 && iterator.nextPageToken == nil {
  5870  			return false, nil, nil
  5871  		}
  5872  		if iterator.nextPageToken != nil {
  5873  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  5874  		}
  5875  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  5876  		if err != nil {
  5877  			return false, nil, err
  5878  		}
  5879  
  5880  		if resp.Code != 0 {
  5881  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  5882  		}
  5883  
  5884  		if len(resp.Data.Items) == 0 {
  5885  			return false, nil, nil
  5886  		}
  5887  
  5888  		iterator.nextPageToken = resp.Data.PageToken
  5889  		iterator.items = resp.Data.Items
  5890  		iterator.index = 0
  5891  	}
  5892  
  5893  	block := iterator.items[iterator.index]
  5894  	iterator.index++
  5895  	iterator.curlNum++
  5896  	return true, block, nil
  5897  }
  5898  
  5899  func (iterator *SearchCalendarEventIterator) NextPageToken() *string {
  5900  	return iterator.nextPageToken
  5901  }
  5902  
  5903  type ListCalendarEventAttendeeIterator struct {
  5904  	nextPageToken *string
  5905  	items         []*CalendarEventAttendee
  5906  	index         int
  5907  	limit         int
  5908  	ctx           context.Context
  5909  	req           *ListCalendarEventAttendeeReq
  5910  	listFunc      func(ctx context.Context, req *ListCalendarEventAttendeeReq, options ...larkcore.RequestOptionFunc) (*ListCalendarEventAttendeeResp, error)
  5911  	options       []larkcore.RequestOptionFunc
  5912  	curlNum       int
  5913  }
  5914  
  5915  func (iterator *ListCalendarEventAttendeeIterator) Next() (bool, *CalendarEventAttendee, error) {
  5916  	// 达到最大量,则返回
  5917  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  5918  		return false, nil, nil
  5919  	}
  5920  
  5921  	// 为0则拉取数据
  5922  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  5923  		if iterator.index != 0 && iterator.nextPageToken == nil {
  5924  			return false, nil, nil
  5925  		}
  5926  		if iterator.nextPageToken != nil {
  5927  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  5928  		}
  5929  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  5930  		if err != nil {
  5931  			return false, nil, err
  5932  		}
  5933  
  5934  		if resp.Code != 0 {
  5935  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  5936  		}
  5937  
  5938  		if len(resp.Data.Items) == 0 {
  5939  			return false, nil, nil
  5940  		}
  5941  
  5942  		iterator.nextPageToken = resp.Data.PageToken
  5943  		iterator.items = resp.Data.Items
  5944  		iterator.index = 0
  5945  	}
  5946  
  5947  	block := iterator.items[iterator.index]
  5948  	iterator.index++
  5949  	iterator.curlNum++
  5950  	return true, block, nil
  5951  }
  5952  
  5953  func (iterator *ListCalendarEventAttendeeIterator) NextPageToken() *string {
  5954  	return iterator.nextPageToken
  5955  }
  5956  
  5957  type ListCalendarEventAttendeeChatMemberIterator struct {
  5958  	nextPageToken *string
  5959  	items         []*CalendarEventAttendeeChatMember
  5960  	index         int
  5961  	limit         int
  5962  	ctx           context.Context
  5963  	req           *ListCalendarEventAttendeeChatMemberReq
  5964  	listFunc      func(ctx context.Context, req *ListCalendarEventAttendeeChatMemberReq, options ...larkcore.RequestOptionFunc) (*ListCalendarEventAttendeeChatMemberResp, error)
  5965  	options       []larkcore.RequestOptionFunc
  5966  	curlNum       int
  5967  }
  5968  
  5969  func (iterator *ListCalendarEventAttendeeChatMemberIterator) Next() (bool, *CalendarEventAttendeeChatMember, error) {
  5970  	// 达到最大量,则返回
  5971  	if iterator.limit > 0 && iterator.curlNum >= iterator.limit {
  5972  		return false, nil, nil
  5973  	}
  5974  
  5975  	// 为0则拉取数据
  5976  	if iterator.index == 0 || iterator.index >= len(iterator.items) {
  5977  		if iterator.index != 0 && iterator.nextPageToken == nil {
  5978  			return false, nil, nil
  5979  		}
  5980  		if iterator.nextPageToken != nil {
  5981  			iterator.req.apiReq.QueryParams.Set("page_token", *iterator.nextPageToken)
  5982  		}
  5983  		resp, err := iterator.listFunc(iterator.ctx, iterator.req, iterator.options...)
  5984  		if err != nil {
  5985  			return false, nil, err
  5986  		}
  5987  
  5988  		if resp.Code != 0 {
  5989  			return false, nil, errors.New(fmt.Sprintf("Code:%d,Msg:%s", resp.Code, resp.Msg))
  5990  		}
  5991  
  5992  		if len(resp.Data.Items) == 0 {
  5993  			return false, nil, nil
  5994  		}
  5995  
  5996  		iterator.nextPageToken = resp.Data.PageToken
  5997  		iterator.items = resp.Data.Items
  5998  		iterator.index = 0
  5999  	}
  6000  
  6001  	block := iterator.items[iterator.index]
  6002  	iterator.index++
  6003  	iterator.curlNum++
  6004  	return true, block, nil
  6005  }
  6006  
  6007  func (iterator *ListCalendarEventAttendeeChatMemberIterator) NextPageToken() *string {
  6008  	return iterator.nextPageToken
  6009  }